Snap for 8426163 from 650b3de9508bdf170ae50f3e67ce08cf02e48f55 to mainline-tzdata2-release

Change-Id: I1dc56d95babcf359e8aecdd46899fd842470b31e
diff --git a/Android.bp b/Android.bp
index bdf31cb..ba958b8 100644
--- a/Android.bp
+++ b/Android.bp
@@ -13,39 +13,6 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-// *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS.  PLEASE
-//     CONSULT THE OWNERS AND opensource-licensing@google.com BEFORE
-//     DEPENDING ON IT IN YOUR PROJECT. ***
-package {
-    default_applicable_licenses: ["external_noto-fonts_license"],
-}
-
-// Added automatically by a large-scale-change that took the approach of
-// 'apply every license found to every target'. While this makes sure we respect
-// every license restriction, it may not be entirely correct.
-//
-// e.g. GPL in an MIT project might only apply to the contrib/ directory.
-//
-// Please consider splitting the single license below into multiple licenses,
-// taking care not to lose any license_kind information, and overriding the
-// default license using the 'licenses: [...]' property on targets as needed.
-//
-// For unused files, consider creating a 'fileGroup' with "//visibility:private"
-// to attach the license to, and including a comment whether the files may be
-// used in the current project.
-// See: http://go/android-license-faq
-license {
-    name: "external_noto-fonts_license",
-    visibility: [":__subpackages__"],
-    license_kinds: [
-        "SPDX-license-identifier-Apache-2.0",
-        "SPDX-license-identifier-MIT",
-        "SPDX-license-identifier-OFL", // by exception only
-        "SPDX-license-identifier-Unicode-DFS",
-    ],
-    // large-scale-change unable to identify any license_text files
-}
-
 filegroup {
     name: "recovery_noto-fonts_dep",
     export_to_make_var: "recovery_noto-fonts_dep",
diff --git a/METADATA b/METADATA
deleted file mode 100644
index 3814b8d..0000000
--- a/METADATA
+++ /dev/null
@@ -1,6 +0,0 @@
-# *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS.  PLEASE
-#     CONSULT THE OWNERS AND opensource-licensing@google.com BEFORE
-#     DEPENDING ON IT IN YOUR PROJECT. ***
-third_party {
-  license_type: BY_EXCEPTION_ONLY
-}
diff --git a/cjk/Android.bp b/cjk/Android.bp
index 1fc3d00..5ff7204 100644
--- a/cjk/Android.bp
+++ b/cjk/Android.bp
@@ -12,40 +12,6 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-// *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS.  PLEASE
-//     CONSULT THE OWNERS AND opensource-licensing@google.com BEFORE
-//     DEPENDING ON IT IN YOUR PROJECT. ***
-package {
-    default_applicable_licenses: ["external_noto-fonts_cjk_license"],
-}
-
-// Added automatically by a large-scale-change that took the approach of
-// 'apply every license found to every target'. While this makes sure we respect
-// every license restriction, it may not be entirely correct.
-//
-// e.g. GPL in an MIT project might only apply to the contrib/ directory.
-//
-// Please consider splitting the single license below into multiple licenses,
-// taking care not to lose any license_kind information, and overriding the
-// default license using the 'licenses: [...]' property on targets as needed.
-//
-// For unused files, consider creating a 'fileGroup' with "//visibility:private"
-// to attach the license to, and including a comment whether the files may be
-// used in the current project.
-// See: http://go/android-license-faq
-license {
-    name: "external_noto-fonts_cjk_license",
-    visibility: [":__subpackages__"],
-    license_kinds: [
-        "SPDX-license-identifier-Apache-2.0",
-        "SPDX-license-identifier-MIT",
-        "SPDX-license-identifier-OFL", // by exception only
-    ],
-    license_text: [
-        "NOTICE",
-    ],
-}
-
 prebuilt_font {
     name: "NotoSansCJK-Regular.ttc",
     src: "NotoSansCJK-Regular.ttc",
diff --git a/cjk/NotoSansCJK-Regular.ttc b/cjk/NotoSansCJK-Regular.ttc
index a0d8773..7fc3586 100644
--- a/cjk/NotoSansCJK-Regular.ttc
+++ b/cjk/NotoSansCJK-Regular.ttc
Binary files differ
diff --git a/cjk/NotoSerifCJK-Regular.ttc b/cjk/NotoSerifCJK-Regular.ttc
index 2820fc9..f4ee450 100644
--- a/cjk/NotoSerifCJK-Regular.ttc
+++ b/cjk/NotoSerifCJK-Regular.ttc
Binary files differ
diff --git a/cjk/README.android b/cjk/README.android
index a3cc355..52ec92f 100644
--- a/cjk/README.android
+++ b/cjk/README.android
@@ -8,4 +8,3 @@
 
 Local Modifications:
 The fonts have been modified by subset_noto_cjk.py to remove cmap entries for characters that should default to emoji style in Android.
-The fonts have been modified by kojii@google.com to have chws table. See https://github.com/kojiishi/contextual-spacing for more details.
diff --git a/cjk/subset_noto_cjk.py b/cjk/subset_noto_cjk.py
index f69248b..5a324bf 100755
--- a/cjk/subset_noto_cjk.py
+++ b/cjk/subset_noto_cjk.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/python
 # coding=UTF-8
 #
 # Copyright 2016 Google Inc. All rights reserved.
@@ -17,10 +17,7 @@
 
 """Create a curated subset of Noto CJK for Android."""
 
-import argparse
-import logging
 import os
-from pathlib import Path
 
 from fontTools import ttLib
 from nototools import font_data
@@ -76,12 +73,10 @@
 }
 
 # We don't want support for ASCII control chars.
-CONTROL_CHARS = tool_utils.parse_int_ranges('0000-001F')
+CONTROL_CHARS = tool_utils.parse_int_ranges('0000-001F');
 
 EXCLUDED_CODEPOINTS = sorted(EMOJI_IN_CJK | ANDROID_EMOJI | CONTROL_CHARS)
 
-TTC_NAMES = ('NotoSansCJK-Regular.ttc', 'NotoSerifCJK-Regular.ttc')
-
 
 def remove_from_cmap(infile, outfile, exclude=frozenset()):
     """Removes a set of characters from a font file's cmap table."""
@@ -90,57 +85,19 @@
     font.save(outfile)
 
 
-def remove_codepoints_from_ttc_using_ttc_utils(ttc_name, out_dir):
-    otf_names = ttc_utils.ttcfile_extract(ttc_name, out_dir)
+TEMP_DIR = 'subsetted'
 
-    with tool_utils.temp_chdir(out_dir):
+def remove_codepoints_from_ttc(ttc_name):
+    otf_names = ttc_utils.ttcfile_extract(ttc_name, TEMP_DIR)
+
+    with tool_utils.temp_chdir(TEMP_DIR):
         for index, otf_name in enumerate(otf_names):
-            logging.info('Subsetting %s...', otf_name)
+            print 'Subsetting %s...' % otf_name
             remove_from_cmap(otf_name, otf_name, exclude=EXCLUDED_CODEPOINTS)
         ttc_utils.ttcfile_build(ttc_name, otf_names)
         for f in otf_names:
             os.remove(f)
 
 
-def remove_codepoints_from_ttc(ttc_path, out_dir):
-    """Removes a set of characters from a TTC font file's cmap table."""
-    logging.info('Loading %s', ttc_path)
-    ttc = ttLib.ttCollection.TTCollection(ttc_path)
-
-    logging.info('Subsetting %d fonts in the collection', len(ttc))
-    for font in ttc:
-        font_data.delete_from_cmap(font, EXCLUDED_CODEPOINTS)
-
-    out_path = out_dir / ttc_path.name
-    logging.info('Saving to %s', out_path)
-    ttc.save(out_path)
-    logging.info('Size: %d --> %d, delta=%d',
-                 ttc_path.stat().st_size,
-                 out_path.stat().st_size,
-                 out_path.stat().st_size - ttc_path.stat().st_size)
-
-
-def main():
-    parser = argparse.ArgumentParser()
-    parser.add_argument('input', default='.', nargs='?')
-    parser.add_argument('-o', '--output', default='subsetted')
-    parser.add_argument('--use-ttc-utils', action='store_true')
-    parser.add_argument('-v', '--verbose', action='count')
-    args = parser.parse_args()
-    if args.verbose:
-        if args.verbose > 1:
-            logging.basicConfig(level=logging.DEBUG)
-        else:
-            logging.basicConfig(level=logging.INFO)
-    in_dir = Path(args.input)
-    out_dir = Path(args.output)
-    out_dir.mkdir(parents=True, exist_ok=True)
-    for ttc_name in TTC_NAMES:
-        if args.use_ttc_utils:
-            remove_codepoints_from_ttc_using_ttc_utils(ttc_name, out_dir)
-        else:
-            remove_codepoints_from_ttc(in_dir / ttc_name, out_dir)
-
-
-if __name__ == "__main__":
-    main()
+remove_codepoints_from_ttc('NotoSansCJK-Regular.ttc')
+remove_codepoints_from_ttc('NotoSerifCJK-Regular.ttc')
diff --git a/emoji-compat-flatbuffers/build.gradle b/emoji-compat-flatbuffers/build.gradle
deleted file mode 100644
index 20d8dfb..0000000
--- a/emoji-compat-flatbuffers/build.gradle
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-plugins {
-    id("java")
-}
-
-sourceSets {
-    main {
-        java.srcDirs = ['src/java']
-    }
-}
-
-compileJava {
-    sourceCompatibility = JavaVersion.VERSION_1_7
-    targetCompatibility = JavaVersion.VERSION_1_7
-}
-
-dependencies {
-    implementation("com.google.flatbuffers:flatbuffers-java:1.12.0")
-}
-
-// The "javadoc" task is unused so we don't want it to appear in the output of `./gradlew tasks`
-// So, we set the group to null
-tasks["javadoc"].group = null
diff --git a/emoji-compat-flatbuffers/src/java/androidx/text/emoji/flatbuffer/MetadataItem.java b/emoji-compat-flatbuffers/src/java/androidx/text/emoji/flatbuffer/MetadataItem.java
deleted file mode 100644
index 0b2a694..0000000
--- a/emoji-compat-flatbuffers/src/java/androidx/text/emoji/flatbuffer/MetadataItem.java
+++ /dev/null
@@ -1,89 +0,0 @@
-// CHECKSTYLE:OFF Generated code
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// automatically generated by the FlatBuffers compiler, do not modify
-
-package androidx.text.emoji.flatbuffer;
-
-import java.nio.*;
-import java.lang.*;
-import java.util.*;
-import com.google.flatbuffers.*;
-
-@SuppressWarnings("unused")
-public final class MetadataItem extends Table {
-  public static void ValidateVersion() { Constants.FLATBUFFERS_1_12_0(); }
-  public static MetadataItem getRootAsMetadataItem(ByteBuffer _bb) { return getRootAsMetadataItem(_bb, new MetadataItem()); }
-  public static MetadataItem getRootAsMetadataItem(ByteBuffer _bb, MetadataItem obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); }
-  public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); }
-  public MetadataItem __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; }
-
-  public int id() { int o = __offset(4); return o != 0 ? bb.getInt(o + bb_pos) : 0; }
-  public boolean emojiStyle() { int o = __offset(6); return o != 0 ? 0!=bb.get(o + bb_pos) : false; }
-  public short sdkAdded() { int o = __offset(8); return o != 0 ? bb.getShort(o + bb_pos) : 0; }
-  public short compatAdded() { int o = __offset(10); return o != 0 ? bb.getShort(o + bb_pos) : 0; }
-  public short width() { int o = __offset(12); return o != 0 ? bb.getShort(o + bb_pos) : 0; }
-  public short height() { int o = __offset(14); return o != 0 ? bb.getShort(o + bb_pos) : 0; }
-  public int codepoints(int j) { int o = __offset(16); return o != 0 ? bb.getInt(__vector(o) + j * 4) : 0; }
-  public int codepointsLength() { int o = __offset(16); return o != 0 ? __vector_len(o) : 0; }
-  public IntVector codepointsVector() { return codepointsVector(new IntVector()); }
-  public IntVector codepointsVector(IntVector obj) { int o = __offset(16); return o != 0 ? obj.__assign(__vector(o), bb) : null; }
-  public ByteBuffer codepointsAsByteBuffer() { return __vector_as_bytebuffer(16, 4); }
-  public ByteBuffer codepointsInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 16, 4); }
-
-  public static int createMetadataItem(FlatBufferBuilder builder,
-      int id,
-      boolean emojiStyle,
-      short sdkAdded,
-      short compatAdded,
-      short width,
-      short height,
-      int codepointsOffset) {
-    builder.startTable(7);
-    MetadataItem.addCodepoints(builder, codepointsOffset);
-    MetadataItem.addId(builder, id);
-    MetadataItem.addHeight(builder, height);
-    MetadataItem.addWidth(builder, width);
-    MetadataItem.addCompatAdded(builder, compatAdded);
-    MetadataItem.addSdkAdded(builder, sdkAdded);
-    MetadataItem.addEmojiStyle(builder, emojiStyle);
-    return MetadataItem.endMetadataItem(builder);
-  }
-
-  public static void startMetadataItem(FlatBufferBuilder builder) { builder.startTable(7); }
-  public static void addId(FlatBufferBuilder builder, int id) { builder.addInt(0, id, 0); }
-  public static void addEmojiStyle(FlatBufferBuilder builder, boolean emojiStyle) { builder.addBoolean(1, emojiStyle, false); }
-  public static void addSdkAdded(FlatBufferBuilder builder, short sdkAdded) { builder.addShort(2, sdkAdded, 0); }
-  public static void addCompatAdded(FlatBufferBuilder builder, short compatAdded) { builder.addShort(3, compatAdded, 0); }
-  public static void addWidth(FlatBufferBuilder builder, short width) { builder.addShort(4, width, 0); }
-  public static void addHeight(FlatBufferBuilder builder, short height) { builder.addShort(5, height, 0); }
-  public static void addCodepoints(FlatBufferBuilder builder, int codepointsOffset) { builder.addOffset(6, codepointsOffset, 0); }
-  public static int createCodepointsVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addInt(data[i]); return builder.endVector(); }
-  public static void startCodepointsVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); }
-  public static int endMetadataItem(FlatBufferBuilder builder) {
-    int o = builder.endTable();
-    return o;
-  }
-
-  public static final class Vector extends BaseVector {
-    public Vector __assign(int _vector, int _element_size, ByteBuffer _bb) { __reset(_vector, _element_size, _bb); return this; }
-
-    public MetadataItem get(int j) { return get(new MetadataItem(), j); }
-    public MetadataItem get(MetadataItem obj, int j) {  return obj.__assign(__indirect(__element(j), bb), bb); }
-  }
-}
-
diff --git a/emoji-compat-flatbuffers/src/java/androidx/text/emoji/flatbuffer/MetadataList.java b/emoji-compat-flatbuffers/src/java/androidx/text/emoji/flatbuffer/MetadataList.java
deleted file mode 100644
index 6330098..0000000
--- a/emoji-compat-flatbuffers/src/java/androidx/text/emoji/flatbuffer/MetadataList.java
+++ /dev/null
@@ -1,76 +0,0 @@
-// CHECKSTYLE:OFF Generated code
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// automatically generated by the FlatBuffers compiler, do not modify
-
-package androidx.text.emoji.flatbuffer;
-
-import java.nio.*;
-import java.lang.*;
-import java.util.*;
-import com.google.flatbuffers.*;
-
-@SuppressWarnings("unused")
-public final class MetadataList extends Table {
-  public static void ValidateVersion() { Constants.FLATBUFFERS_1_12_0(); }
-  public static MetadataList getRootAsMetadataList(ByteBuffer _bb) { return getRootAsMetadataList(_bb, new MetadataList()); }
-  public static MetadataList getRootAsMetadataList(ByteBuffer _bb, MetadataList obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); }
-  public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); }
-  public MetadataList __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; }
-
-  public int version() { int o = __offset(4); return o != 0 ? bb.getInt(o + bb_pos) : 0; }
-  public androidx.text.emoji.flatbuffer.MetadataItem list(int j) { return list(new androidx.text.emoji.flatbuffer.MetadataItem(), j); }
-  public androidx.text.emoji.flatbuffer.MetadataItem list(androidx.text.emoji.flatbuffer.MetadataItem obj, int j) { int o = __offset(6); return o != 0 ? obj.__assign(__indirect(__vector(o) + j * 4), bb) : null; }
-  public int listLength() { int o = __offset(6); return o != 0 ? __vector_len(o) : 0; }
-  public androidx.text.emoji.flatbuffer.MetadataItem.Vector listVector() { return listVector(new androidx.text.emoji.flatbuffer.MetadataItem.Vector()); }
-  public androidx.text.emoji.flatbuffer.MetadataItem.Vector listVector(androidx.text.emoji.flatbuffer.MetadataItem.Vector obj) { int o = __offset(6); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; }
-  public String sourceSha() { int o = __offset(8); return o != 0 ? __string(o + bb_pos) : null; }
-  public ByteBuffer sourceShaAsByteBuffer() { return __vector_as_bytebuffer(8, 1); }
-  public ByteBuffer sourceShaInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 8, 1); }
-
-  public static int createMetadataList(FlatBufferBuilder builder,
-      int version,
-      int listOffset,
-      int sourceShaOffset) {
-    builder.startTable(3);
-    MetadataList.addSourceSha(builder, sourceShaOffset);
-    MetadataList.addList(builder, listOffset);
-    MetadataList.addVersion(builder, version);
-    return MetadataList.endMetadataList(builder);
-  }
-
-  public static void startMetadataList(FlatBufferBuilder builder) { builder.startTable(3); }
-  public static void addVersion(FlatBufferBuilder builder, int version) { builder.addInt(0, version, 0); }
-  public static void addList(FlatBufferBuilder builder, int listOffset) { builder.addOffset(1, listOffset, 0); }
-  public static int createListVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); }
-  public static void startListVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); }
-  public static void addSourceSha(FlatBufferBuilder builder, int sourceShaOffset) { builder.addOffset(2, sourceShaOffset, 0); }
-  public static int endMetadataList(FlatBufferBuilder builder) {
-    int o = builder.endTable();
-    return o;
-  }
-  public static void finishMetadataListBuffer(FlatBufferBuilder builder, int offset) { builder.finish(offset); }
-  public static void finishSizePrefixedMetadataListBuffer(FlatBufferBuilder builder, int offset) { builder.finishSizePrefixed(offset); }
-
-  public static final class Vector extends BaseVector {
-    public Vector __assign(int _vector, int _element_size, ByteBuffer _bb) { __reset(_vector, _element_size, _bb); return this; }
-
-    public MetadataList get(int j) { return get(new MetadataList(), j); }
-    public MetadataList get(MetadataList obj, int j) {  return obj.__assign(__indirect(__element(j), bb), bb); }
-  }
-}
-
diff --git a/emoji-compat/Android.bp b/emoji-compat/Android.bp
deleted file mode 100644
index d43e880..0000000
--- a/emoji-compat/Android.bp
+++ /dev/null
@@ -1,70 +0,0 @@
-// Copyright (C) 2019 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS.  PLEASE
-//     CONSULT THE OWNERS AND opensource-licensing@google.com BEFORE
-//     DEPENDING ON IT IN YOUR PROJECT. ***
-package {
-    default_applicable_licenses: ["external_noto-fonts_emoji_license"],
-}
-
-// Added automatically by a large-scale-change that took the approach of
-// 'apply every license found to every target'. While this makes sure we respect
-// every license restriction, it may not be entirely correct.
-//
-// e.g. GPL in an MIT project might only apply to the contrib/ directory.
-//
-// Please consider splitting the single license below into multiple licenses,
-// taking care not to lose any license_kind information, and overriding the
-// default license using the 'licenses: [...]' property on targets as needed.
-//
-// For unused files, consider creating a 'fileGroup' with "//visibility:private"
-// to attach the license to, and including a comment whether the files may be
-// used in the current project.
-// See: http://go/android-license-faq
-license {
-    name: "external_noto-fonts_emoji_license",
-    visibility: [":__subpackages__"],
-    license_kinds: [
-        "SPDX-license-identifier-Unicode-DFS",
-        "SPDX-license-identifier-OFL", // by exception only
-    ],
-    license_text: [
-        "LICENSE_OFL",
-        "LICENSE_UNICODE",
-    ],
-}
-
-prebuilt_font {
-    name: "NotoColorEmoji.ttf",
-    src: "font/NotoColorEmojiCompat.ttf",
-    dist: {
-        targets: ["droidcore"],
-    },
-}
-
-prebuilt_font {
-    name: "NotoColorEmojiFlags.ttf",
-    src: "font/NotoColorEmojiFlags.ttf",
-}
-
-// To use in other build rules.
-// Renamed instead of removed to avoid merge conflicts.
-// TODO: remove this.
-genrule {
-    name: "Unused_NotoColorEmojiTtf",
-    srcs: ["font/NotoColorEmojiCompat.ttf"],
-    out: ["NotoColorEmoji.ttf"],
-    cmd: "cp $(in) $(out)",
-}
diff --git a/emoji-compat-flatbuffers/Android.mk b/emoji-compat/Android.mk
similarity index 86%
rename from emoji-compat-flatbuffers/Android.mk
rename to emoji-compat/Android.mk
index 00721b9..bc47046 100644
--- a/emoji-compat-flatbuffers/Android.mk
+++ b/emoji-compat/Android.mk
@@ -15,9 +15,7 @@
 LOCAL_PATH := $(call my-dir)
 
 include $(CLEAR_VARS)
-LOCAL_MODULE := noto-emoji-compat-flatbuffers-java
-LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
-LOCAL_LICENSE_CONDITIONS := notice
+LOCAL_MODULE := noto-emoji-compat-java
 LOCAL_SRC_FILES := $(call all-java-files-under, src/java)
 LOCAL_SDK_VERSION := current
 
diff --git a/emoji-compat/build.gradle b/emoji-compat/build.gradle
new file mode 100644
index 0000000..34acb79
--- /dev/null
+++ b/emoji-compat/build.gradle
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+apply plugin: 'java'
+apply plugin: 'org.anarres.jarjar'
+apply plugin: 'maven'
+
+ext {
+    flatbuffersDir = '../../flatbuffers'
+}
+
+buildscript {
+    boolean unbundleBuild = (new File("unbundled-build")).exists()
+    repositories {
+        maven { url '../../../prebuilts/androidx/external' }
+        if (unbundleBuild) {
+            jcenter()
+        }
+    }
+
+    dependencies {
+        classpath 'org.anarres.jarjar:jarjar-gradle:1.0.1'
+    }
+}
+
+sourceSets {
+    main {
+        java.srcDirs = ['src/java']
+    }
+}
+
+compileJava {
+    sourceCompatibility = JavaVersion.VERSION_1_7
+    targetCompatibility = JavaVersion.VERSION_1_7
+}
+
+dependencies {
+    compile 'com.google.flatbuffers:flatbuffers-java:1.8.0'
+}
+
+jarjar.repackage('rename') {
+    destinationName "noto-emoji-compat-java.jar"
+    from 'com.google.flatbuffers:flatbuffers-java:1.8.0'
+    from files(sourceSets.main.output.classesDirs)
+    dependsOn sourceSets.main.output
+    classRename 'com.google.flatbuffers.**', 'androidx.text.emoji.flatbuffer.@1'
+}
+
+configurations {
+    parser
+}
+
+artifacts {
+    parser(rename.destinationPath) {
+        name 'noto-emoji-compat'
+        type 'jar'
+        builtBy rename
+    }
+}
+
+// The "javadoc" task is unused so we don't want it to appear in the output of `./gradlew tasks`
+// So, we set the group to null
+tasks["javadoc"].group = null
diff --git a/emoji-compat/createfont.py b/emoji-compat/createfont.py
index fb8e810..fb9dc5a 100755
--- a/emoji-compat/createfont.py
+++ b/emoji-compat/createfont.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/python
 #
 # Copyright (C) 2017 The Android Open Source Project
 #
@@ -43,35 +43,33 @@
 - src/java/android/support/text/emoji/flatbuffer/*
 """
 
+from __future__ import print_function
+
 import contextlib
 import csv
 import hashlib
 import itertools
 import json
 import os
-import re
 import shutil
-import subprocess
 import sys
 import tempfile
 from fontTools import ttLib
-from fontTools.ttLib.tables import otTables
-from nototools import font_data
 
 ########### UPDATE OR CHECK WHEN A NEW FONT IS BEING GENERATED ###########
 # Last Android SDK Version
-SDK_VERSION = 30
+SDK_VERSION = 29
 # metadata version that will be embedded into font. If there are updates to the font that would
 # cause data/emoji_metadata.txt to change, this integer number should be incremented. This number
 # defines in which EmojiCompat metadata version the emoji is added to the font.
-METADATA_VERSION = 7
+METADATA_VERSION = 5
 
 ####### main directories where output files are created #######
 SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__))
 FONT_DIR = os.path.join(SCRIPT_DIR, 'font')
 DATA_DIR = os.path.join(SCRIPT_DIR, 'data')
 SUPPORTED_EMOJIS_DIR = os.path.join(SCRIPT_DIR, 'supported-emojis')
-JAVA_SRC_DIR = os.path.join('src', 'java')
+JAVA_SRC_DIR = os.path.join(SCRIPT_DIR, 'src', 'java')
 ####### output files #######
 # font file
 FONT_PATH = os.path.join(FONT_DIR, 'NotoColorEmojiCompat.ttf')
@@ -93,12 +91,10 @@
 EMOJI_STYLE_OVERRIDE_FILE = os.path.join('additions', 'emoji-data.txt')
 # emoji metadata file
 INPUT_META_FILE = OUTPUT_META_FILE
-# default flatbuffer module location (if not specified by caller)
-FLATBUFFER_MODULE_DIR = os.path.join(SCRIPT_DIR, '..', 'emoji-compat-flatbuffers')
 # flatbuffer schema
-FLATBUFFER_SCHEMA = os.path.join(FLATBUFFER_MODULE_DIR, 'data', 'emoji_metadata.fbs')
+FLATBUFFER_SCHEMA = os.path.join(DATA_DIR, 'emoji_metadata.fbs')
 # file path for java header, it will be prepended to flatbuffer java files
-FLATBUFFER_HEADER = os.path.join(FLATBUFFER_MODULE_DIR, 'data', 'flatbuffer_header.txt')
+FLATBUFFER_HEADER = os.path.join(DATA_DIR, "flatbuffer_header.txt")
 # temporary emoji metadata json output file
 OUTPUT_JSON_FILE_NAME = 'emoji_metadata.json'
 # temporary binary file generated by flatbuffer
@@ -110,7 +106,7 @@
 FLATBUFFER_METADATA_LIST_JAVA = "MetadataList.java"
 FLATBUFFER_METADATA_ITEM_JAVA = "MetadataItem.java"
 # directory under source where flatbuffer java files will be copied into
-FLATBUFFER_JAVA_TARGET = os.path.join(FLATBUFFER_MODULE_DIR, JAVA_SRC_DIR, FLATBUFFER_PACKAGE_PATH)
+FLATBUFFER_JAVA_TARGET = os.path.join(JAVA_SRC_DIR, FLATBUFFER_PACKAGE_PATH)
 # meta tag name used in the font to embed the emoji metadata. This value is also used in
 # MetadataListReader.java in order to locate the metadata location.
 EMOJI_META_TAG_NAME = 'Emji'
@@ -123,12 +119,6 @@
 DEFAULT_EMOJI_ID = 0xF0001
 EMOJI_STYLE_VS = 0xFE0F
 
-# The reference code point to be used for filling metrics of wartermark glyph
-WATERMARK_REF_CODE_POINT = 0x1F600
-# The code point and glyph name used for watermark.
-WATERMARK_NEW_CODE_POINT = 0x10FF00
-WATERMARK_NEW_GLYPH_ID = 'u10FF00'
-
 def to_hex_str(value):
     """Converts given int value to hex without the 0x prefix"""
     return format(value, 'X')
@@ -141,28 +131,29 @@
     """Converts a list of codepoints into a string separated with space."""
     return ' '.join([to_hex_str(x) for x in codepoints])
 
-def prepend_header_to_file(file_path, header_path):
+def prepend_header_to_file(file_path):
     """Prepends the header to the file. Used to update flatbuffer java files with header, comments
     and annotations."""
     with open(file_path, "r+") as original_file:
-        with open(header_path, "r") as copyright_file:
+        with open(FLATBUFFER_HEADER, "r") as copyright_file:
             original_content = original_file.read()
+            start_index = original_content.index("public final class")
             original_file.seek(0)
-            original_file.write(copyright_file.read() + "\n" + original_content)
+            original_file.write(copyright_file.read() + "\n" + original_content[start_index:])
 
 
-def update_flatbuffer_java_files(flatbuffer_java_dir, header_dir, target_dir):
+def update_flatbuffer_java_files(flatbuffer_java_dir):
     """Prepends headers to flatbuffer java files and copies to the final destination"""
     tmp_metadata_list = flatbuffer_java_dir + FLATBUFFER_METADATA_LIST_JAVA
     tmp_metadata_item = flatbuffer_java_dir + FLATBUFFER_METADATA_ITEM_JAVA
-    prepend_header_to_file(tmp_metadata_list, header_dir)
-    prepend_header_to_file(tmp_metadata_item, header_dir)
+    prepend_header_to_file(tmp_metadata_list)
+    prepend_header_to_file(tmp_metadata_item)
 
-    if not os.path.exists(target_dir):
-        os.makedirs(target_dir)
+    if not os.path.exists(FLATBUFFER_JAVA_TARGET):
+        os.makedirs(FLATBUFFER_JAVA_TARGET)
 
-    shutil.copy(tmp_metadata_list, os.path.join(target_dir, FLATBUFFER_METADATA_LIST_JAVA))
-    shutil.copy(tmp_metadata_item, os.path.join(target_dir, FLATBUFFER_METADATA_ITEM_JAVA))
+    shutil.copy(tmp_metadata_list, FLATBUFFER_JAVA_TARGET + FLATBUFFER_METADATA_LIST_JAVA)
+    shutil.copy(tmp_metadata_item, FLATBUFFER_JAVA_TARGET + FLATBUFFER_METADATA_ITEM_JAVA)
 
 def create_test_data(unicode_path):
     """Read all the emojis in the unicode files and update the test file"""
@@ -431,14 +422,14 @@
     if not 'meta' in ttf:
         ttf['meta'] = ttLib.getTableClass('meta')()
     meta = ttf['meta']
-    with open(flatbuffer_bin_filename, 'rb') as flatbuffer_bin_file:
+    with open(flatbuffer_bin_filename) as flatbuffer_bin_file:
         meta.data[EMOJI_META_TAG_NAME] = flatbuffer_bin_file.read()
 
     # sort meta tables for faster access
     update_ttlib_orig_sort()
 
 
-def validate_input_files(font_path, unicode_path, flatbuffer_path):
+def validate_input_files(font_path, unicode_path):
     """Validate the existence of font file and the unicode files"""
     if not os.path.isfile(font_path):
         raise ValueError("Font file does not exist: " + font_path)
@@ -454,20 +445,10 @@
         if not os.path.isfile(emoji_filename):
             raise ValueError("Unicode emoji data file does not exist: " + emoji_filename)
 
-    if not os.path.isdir(flatbuffer_path):
-        raise ValueError(
-            "Flatbuffer directory does not exist or is not a directory " + flatbuffer_path)
-
-    flatbuffer_filenames = [os.path.join(flatbuffer_path, FLATBUFFER_SCHEMA),
-                            os.path.join(flatbuffer_path, FLATBUFFER_HEADER)]
-    for flatbuffer_filename in flatbuffer_filenames:
-        if not os.path.isfile(flatbuffer_filename):
-            raise ValueError("Flatbuffer file does not exist: " + flatbuffer_filename)
-
 
 def add_file_to_sha(sha_algo, file_path):
     with open(file_path, 'rb') as input_file:
-        for data in iter(lambda: input_file.read(8192), b''):
+        for data in iter(lambda: input_file.read(8192), ''):
             sha_algo.update(data)
 
 def create_sha_from_source_files(font_paths):
@@ -482,7 +463,7 @@
     """Creates the EmojiCompat font"""
 
     def __init__(self, font_path, unicode_path):
-        validate_input_files(font_path, unicode_path, FLATBUFFER_MODULE_DIR)
+        validate_input_files(font_path, unicode_path)
 
         self.font_path = font_path
         self.unicode_path = unicode_path
@@ -510,7 +491,7 @@
         """Read image size data from CBDT."""
         cbdt = ttf['CBDT']
         for strike_data in cbdt.strikeData:
-            for key, data in strike_data.items():
+            for key, data in strike_data.iteritems():
                 data.decompile()
                 self.glyph_to_image_metrics_map[key] = data.metrics
 
@@ -520,7 +501,7 @@
         cmap = ttf['cmap']
         for table in cmap.tables:
             if table.format == 12 and table.platformID == 3 and table.platEncID == 10:
-                for codepoint, glyph_name in table.cmap.items():
+                for codepoint, glyph_name in table.cmap.iteritems():
                     glyph_to_codepoint_map[glyph_name] = codepoint
                     self.update_emoji_data([codepoint], glyph_name)
                 return table
@@ -565,7 +546,7 @@
                         glyph_names = [x["input"] for x in seq]
                         codepoints = [glyph_to_codepoint_map[x] for x in glyph_names]
                         outputs = [x["output"] for x in seq if x["output"]]
-                        nonempty_outputs = list(filter(lambda x: x.strip() , outputs))
+                        nonempty_outputs = filter(lambda x: x.strip() , outputs)
                         if len(nonempty_outputs) == 0:
                             print("Warning: no output glyph is set for " + str(glyph_names))
                             continue
@@ -580,12 +561,12 @@
     def get_substitutions(self, lookup_list, index):
         result = []
         for x in lookup_list.Lookup[index].SubTable:
-            for input, output in x.mapping.items():
+            for input, output in x.mapping.iteritems():
                 result.append({"input": input, "output": output})
         return result
 
     def add_gsub_ligature_subtable(self, subtable, glyph_to_codepoint_map):
-        for name, ligatures in subtable.ligatures.items():
+        for name, ligatures in subtable.ligatures.iteritems():
             for ligature in ligatures:
                 glyph_names = [name] + ligature.Component
                 codepoints = [glyph_to_codepoint_map[x] for x in glyph_names]
@@ -623,46 +604,6 @@
             for emoji_data in emoji_data_list:
                 csvwriter.writerow(emoji_data.create_txt_row())
 
-    def add_watermark(self, ttf):
-        cmap = ttf.getBestCmap()
-        gsub = ttf['GSUB'].table
-
-        # Obtain Version string
-        m = re.search('^Version (\d*)\.(\d*)', font_data.font_version(ttf))
-        if not m:
-            raise ValueError('The font does not have proper version string.')
-        major = m.group(1)
-        minor = m.group(2)
-        # Replace the dot with space since NotoColorEmoji does not have glyph for dot.
-        glyphs = [cmap[ord(x)] for x in '%s %s' % (major, minor)]
-
-        # Update Glyph metrics
-        ttf.getGlyphOrder().append(WATERMARK_NEW_GLYPH_ID)
-        refGlyphId = cmap[WATERMARK_REF_CODE_POINT]
-        ttf['hmtx'].metrics[WATERMARK_NEW_GLYPH_ID] = ttf['hmtx'].metrics[refGlyphId]
-        ttf['vmtx'].metrics[WATERMARK_NEW_GLYPH_ID] = ttf['vmtx'].metrics[refGlyphId]
-
-        # Add new Glyph to cmap
-        font_data.add_to_cmap(ttf, { WATERMARK_NEW_CODE_POINT : WATERMARK_NEW_GLYPH_ID })
-
-        # Add lookup table for the version string.
-        lookups = gsub.LookupList.Lookup
-        new_lookup = otTables.Lookup()
-        new_lookup.LookupType = 2  # Multiple Substitution Subtable.
-        new_lookup.LookupFlag = 0
-        new_subtable = otTables.MultipleSubst()
-        new_subtable.mapping = { WATERMARK_NEW_GLYPH_ID : tuple(glyphs) }
-        new_lookup.SubTable = [ new_subtable ]
-        new_lookup_index = len(lookups)
-        lookups.append(new_lookup)
-
-        # Add feature
-        feature = next(x for x in gsub.FeatureList.FeatureRecord if x.FeatureTag == 'ccmp')
-        if not feature:
-            raise ValueError("Font doesn't contain ccmp feature.")
-
-        feature.Feature.LookupListIndex.append(new_lookup_index)
-
     def create_font(self):
         """Creates the EmojiCompat font.
         :param font_path: path to Android NotoColorEmoji font
@@ -708,21 +649,12 @@
             total_emoji_count = self.write_metadata_json(output_json_file)
 
             # create the flatbuffers binary and java classes
-            flatc_command = ['flatc',
-                             '-o',
-                             tmp_dir,
-                             '-b',
-                             '-j',
-                             FLATBUFFER_SCHEMA,
-                             output_json_file]
-            subprocess.check_output(flatc_command)
+            sys_command = 'flatc -o {0} -b -j {1} {2}'
+            os.system(sys_command.format(tmp_dir, FLATBUFFER_SCHEMA, output_json_file))
 
             # inject metadata binary into font
             inject_meta_into_font(ttf, flatbuffer_bin_file)
 
-            # add wartermark glyph for manual verification.
-            self.add_watermark(ttf)
-
             # update CBDT and CBLC versions since older android versions cannot read > 2.0
             ttf['CBDT'].version = 2.0
             ttf['CBLC'].version = 2.0
@@ -730,9 +662,7 @@
             # save the new font
             ttf.save(FONT_PATH)
 
-            update_flatbuffer_java_files(flatbuffer_java_dir, #tmp dir
-                                         FLATBUFFER_HEADER,
-                                         FLATBUFFER_JAVA_TARGET)
+            update_flatbuffer_java_files(flatbuffer_java_dir)
 
             create_test_data(self.unicode_path)
 
@@ -748,17 +678,9 @@
     print("Please specify a path to font and unicode files.\n"
           "usage: createfont.py noto-color-emoji-path unicode-dir-path")
 
-def parse_args(argv):
-    # parse manually to avoid any extra dependencies
-    if len(argv) < 3:
-        print_usage()
-        sys.exit(1)
-    return (sys.argv[1], sys.argv[2])
-
-def main():
-    font_file, unicode_dir = parse_args(sys.argv)
-    EmojiFontCreator(font_file, unicode_dir).create_font()
-
 
 if __name__ == '__main__':
-    main()
+    if len(sys.argv) < 3:
+        print_usage()
+        sys.exit(1)
+    EmojiFontCreator(sys.argv[1], sys.argv[2]).create_font()
diff --git a/emoji-compat-flatbuffers/data/emoji_metadata.fbs b/emoji-compat/data/emoji_metadata.fbs
similarity index 100%
rename from emoji-compat-flatbuffers/data/emoji_metadata.fbs
rename to emoji-compat/data/emoji_metadata.fbs
diff --git a/emoji-compat/data/emoji_metadata.txt b/emoji-compat/data/emoji_metadata.txt
index 6bee6fa..3c5cdf4 100644
--- a/emoji-compat/data/emoji_metadata.txt
+++ b/emoji-compat/data/emoji_metadata.txt
@@ -3244,337 +3244,3 @@
 F0CDF 29 5 1F9D1 200D 1F9B3

 F0CE0 29 5 1F9D1 200D 1F9BC

 F0CE1 29 5 1F9D1 200D 1F9BD

-F0CE2 30 6 26A7

-F0CE3 30 6 1F6D6

-F0CE4 30 6 1F6D7

-F0CE5 30 6 1F6FB

-F0CE6 30 6 1F6FC

-F0CE7 30 6 1F90C

-F0CE8 30 6 1F972

-F0CE9 30 6 1F977

-F0CEA 30 6 1F978

-F0CEB 30 6 1F9A3

-F0CEC 30 6 1F9A4

-F0CED 30 6 1F9AB

-F0CEE 30 6 1F9AC

-F0CEF 30 6 1F9AD

-F0CF0 30 6 1F9CB

-F0CF1 30 6 1FA74

-F0CF2 30 6 1FA83

-F0CF3 30 6 1FA84

-F0CF4 30 6 1FA85

-F0CF5 30 6 1FA86

-F0CF6 30 6 1FA96

-F0CF7 30 6 1FA97

-F0CF8 30 6 1FA98

-F0CF9 30 6 1FA99

-F0CFA 30 6 1FA9A

-F0CFB 30 6 1FA9B

-F0CFC 30 6 1FA9C

-F0CFD 30 6 1FA9D

-F0CFE 30 6 1FA9E

-F0CFF 30 6 1FA9F

-F0D00 30 6 1FAA0

-F0D01 30 6 1FAA1

-F0D02 30 6 1FAA2

-F0D03 30 6 1FAA3

-F0D04 30 6 1FAA4

-F0D05 30 6 1FAA5

-F0D06 30 6 1FAA6

-F0D07 30 6 1FAA7

-F0D08 30 6 1FAA8

-F0D09 30 6 1FAB0

-F0D0A 30 6 1FAB1

-F0D0B 30 6 1FAB2

-F0D0C 30 6 1FAB3

-F0D0D 30 6 1FAB4

-F0D0E 30 6 1FAB5

-F0D0F 30 6 1FAB6

-F0D10 30 6 1FAC0

-F0D11 30 6 1FAC1

-F0D12 30 6 1FAC2

-F0D13 30 6 1FAD0

-F0D14 30 6 1FAD1

-F0D15 30 6 1FAD2

-F0D16 30 6 1FAD3

-F0D17 30 6 1FAD4

-F0D18 30 6 1FAD5

-F0D19 30 6 1FAD6

-F0D1A 30 6 1F3F3 200D 26A7

-F0D1B 30 6 1F408 200D 2B1B

-F0D1C 30 6 1F43B 200D 2744

-F0D1D 30 6 1F468 1F3FB 200D 1F37C

-F0D1E 30 6 1F468 1F3FC 200D 1F37C

-F0D1F 30 6 1F468 1F3FD 200D 1F37C

-F0D20 30 6 1F468 1F3FE 200D 1F37C

-F0D21 30 6 1F468 1F3FF 200D 1F37C

-F0D22 30 6 1F468 200D 1F37C

-F0D23 30 6 1F469 1F3FB 200D 1F37C

-F0D24 30 6 1F469 1F3FC 200D 1F37C

-F0D25 30 6 1F469 1F3FD 200D 1F37C

-F0D26 30 6 1F469 1F3FE 200D 1F37C

-F0D27 30 6 1F469 1F3FF 200D 1F37C

-F0D28 30 6 1F469 200D 1F37C

-F0D29 30 6 1F470 1F3FB 200D 2640

-F0D2A 30 6 1F470 1F3FB 200D 2642

-F0D2B 30 6 1F470 1F3FC 200D 2640

-F0D2C 30 6 1F470 1F3FC 200D 2642

-F0D2D 30 6 1F470 1F3FD 200D 2640

-F0D2E 30 6 1F470 1F3FD 200D 2642

-F0D2F 30 6 1F470 1F3FE 200D 2640

-F0D30 30 6 1F470 1F3FE 200D 2642

-F0D31 30 6 1F470 1F3FF 200D 2640

-F0D32 30 6 1F470 1F3FF 200D 2642

-F0D33 30 6 1F470 200D 2640

-F0D34 30 6 1F470 200D 2642

-F0D35 30 6 1F90C 1F3FB

-F0D36 30 6 1F90C 1F3FC

-F0D37 30 6 1F90C 1F3FD

-F0D38 30 6 1F90C 1F3FE

-F0D39 30 6 1F90C 1F3FF

-F0D3A 30 6 1F935 1F3FB 200D 2640

-F0D3B 30 6 1F935 1F3FB 200D 2642

-F0D3C 30 6 1F935 1F3FC 200D 2640

-F0D3D 30 6 1F935 1F3FC 200D 2642

-F0D3E 30 6 1F935 1F3FD 200D 2640

-F0D3F 30 6 1F935 1F3FD 200D 2642

-F0D40 30 6 1F935 1F3FE 200D 2640

-F0D41 30 6 1F935 1F3FE 200D 2642

-F0D42 30 6 1F935 1F3FF 200D 2640

-F0D43 30 6 1F935 1F3FF 200D 2642

-F0D44 30 6 1F935 200D 2640

-F0D45 30 6 1F935 200D 2642

-F0D46 30 6 1F977 1F3FB

-F0D47 30 6 1F977 1F3FC

-F0D48 30 6 1F977 1F3FD

-F0D49 30 6 1F977 1F3FE

-F0D4A 30 6 1F977 1F3FF

-F0D4B 30 6 1F9D1 1F3FB 200D 1F37C

-F0D4C 30 6 1F9D1 1F3FB 200D 1F384

-F0D4D 30 6 1F9D1 1F3FC 200D 1F37C

-F0D4E 30 6 1F9D1 1F3FC 200D 1F384

-F0D4F 30 6 1F9D1 1F3FD 200D 1F37C

-F0D50 30 6 1F9D1 1F3FD 200D 1F384

-F0D51 30 6 1F9D1 1F3FE 200D 1F37C

-F0D52 30 6 1F9D1 1F3FE 200D 1F384

-F0D53 30 6 1F9D1 1F3FF 200D 1F37C

-F0D54 30 6 1F9D1 1F3FF 200D 1F384

-F0D55 30 6 1F9D1 200D 1F37C

-F0D56 30 6 1F9D1 200D 1F384

-F0D57 30 7 2764 200D 1F525

-F0D58 30 7 2764 200D 1FA79

-F0D59 30 7 1F468 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FB

-F0D5A 30 7 1F468 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FC

-F0D5B 30 7 1F468 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FD

-F0D5C 30 7 1F468 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FE

-F0D5D 30 7 1F468 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FF

-F0D5E 30 7 1F468 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FB

-F0D5F 30 7 1F468 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FC

-F0D60 30 7 1F468 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FD

-F0D61 30 7 1F468 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FE

-F0D62 30 7 1F468 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FF

-F0D63 30 7 1F468 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FB

-F0D64 30 7 1F468 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FC

-F0D65 30 7 1F468 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FD

-F0D66 30 7 1F468 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FE

-F0D67 30 7 1F468 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FF

-F0D68 30 7 1F468 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FB

-F0D69 30 7 1F468 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FC

-F0D6A 30 7 1F468 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FD

-F0D6B 30 7 1F468 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FE

-F0D6C 30 7 1F468 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FF

-F0D6D 30 7 1F468 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FB

-F0D6E 30 7 1F468 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FC

-F0D6F 30 7 1F468 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FD

-F0D70 30 7 1F468 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FE

-F0D71 30 7 1F468 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FF

-F0D72 30 7 1F468 1F3FB 200D 2764 200D 1F468 1F3FB

-F0D73 30 7 1F468 1F3FB 200D 2764 200D 1F468 1F3FC

-F0D74 30 7 1F468 1F3FB 200D 2764 200D 1F468 1F3FD

-F0D75 30 7 1F468 1F3FB 200D 2764 200D 1F468 1F3FE

-F0D76 30 7 1F468 1F3FB 200D 2764 200D 1F468 1F3FF

-F0D77 30 7 1F468 1F3FC 200D 2764 200D 1F468 1F3FB

-F0D78 30 7 1F468 1F3FC 200D 2764 200D 1F468 1F3FC

-F0D79 30 7 1F468 1F3FC 200D 2764 200D 1F468 1F3FD

-F0D7A 30 7 1F468 1F3FC 200D 2764 200D 1F468 1F3FE

-F0D7B 30 7 1F468 1F3FC 200D 2764 200D 1F468 1F3FF

-F0D7C 30 7 1F468 1F3FD 200D 2764 200D 1F468 1F3FB

-F0D7D 30 7 1F468 1F3FD 200D 2764 200D 1F468 1F3FC

-F0D7E 30 7 1F468 1F3FD 200D 2764 200D 1F468 1F3FD

-F0D7F 30 7 1F468 1F3FD 200D 2764 200D 1F468 1F3FE

-F0D80 30 7 1F468 1F3FD 200D 2764 200D 1F468 1F3FF

-F0D81 30 7 1F468 1F3FE 200D 2764 200D 1F468 1F3FB

-F0D82 30 7 1F468 1F3FE 200D 2764 200D 1F468 1F3FC

-F0D83 30 7 1F468 1F3FE 200D 2764 200D 1F468 1F3FD

-F0D84 30 7 1F468 1F3FE 200D 2764 200D 1F468 1F3FE

-F0D85 30 7 1F468 1F3FE 200D 2764 200D 1F468 1F3FF

-F0D86 30 7 1F468 1F3FF 200D 2764 200D 1F468 1F3FB

-F0D87 30 7 1F468 1F3FF 200D 2764 200D 1F468 1F3FC

-F0D88 30 7 1F468 1F3FF 200D 2764 200D 1F468 1F3FD

-F0D89 30 7 1F468 1F3FF 200D 2764 200D 1F468 1F3FE

-F0D8A 30 7 1F468 1F3FF 200D 2764 200D 1F468 1F3FF

-F0D8B 30 7 1F469 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FB

-F0D8C 30 7 1F469 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FC

-F0D8D 30 7 1F469 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FD

-F0D8E 30 7 1F469 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FE

-F0D8F 30 7 1F469 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FF

-F0D90 30 7 1F469 1F3FB 200D 2764 200D 1F48B 200D 1F469 1F3FB

-F0D91 30 7 1F469 1F3FB 200D 2764 200D 1F48B 200D 1F469 1F3FC

-F0D92 30 7 1F469 1F3FB 200D 2764 200D 1F48B 200D 1F469 1F3FD

-F0D93 30 7 1F469 1F3FB 200D 2764 200D 1F48B 200D 1F469 1F3FE

-F0D94 30 7 1F469 1F3FB 200D 2764 200D 1F48B 200D 1F469 1F3FF

-F0D95 30 7 1F469 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FB

-F0D96 30 7 1F469 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FC

-F0D97 30 7 1F469 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FD

-F0D98 30 7 1F469 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FE

-F0D99 30 7 1F469 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FF

-F0D9A 30 7 1F469 1F3FC 200D 2764 200D 1F48B 200D 1F469 1F3FB

-F0D9B 30 7 1F469 1F3FC 200D 2764 200D 1F48B 200D 1F469 1F3FC

-F0D9C 30 7 1F469 1F3FC 200D 2764 200D 1F48B 200D 1F469 1F3FD

-F0D9D 30 7 1F469 1F3FC 200D 2764 200D 1F48B 200D 1F469 1F3FE

-F0D9E 30 7 1F469 1F3FC 200D 2764 200D 1F48B 200D 1F469 1F3FF

-F0D9F 30 7 1F469 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FB

-F0DA0 30 7 1F469 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FC

-F0DA1 30 7 1F469 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FD

-F0DA2 30 7 1F469 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FE

-F0DA3 30 7 1F469 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FF

-F0DA4 30 7 1F469 1F3FD 200D 2764 200D 1F48B 200D 1F469 1F3FB

-F0DA5 30 7 1F469 1F3FD 200D 2764 200D 1F48B 200D 1F469 1F3FC

-F0DA6 30 7 1F469 1F3FD 200D 2764 200D 1F48B 200D 1F469 1F3FD

-F0DA7 30 7 1F469 1F3FD 200D 2764 200D 1F48B 200D 1F469 1F3FE

-F0DA8 30 7 1F469 1F3FD 200D 2764 200D 1F48B 200D 1F469 1F3FF

-F0DA9 30 7 1F469 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FB

-F0DAA 30 7 1F469 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FC

-F0DAB 30 7 1F469 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FD

-F0DAC 30 7 1F469 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FE

-F0DAD 30 7 1F469 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FF

-F0DAE 30 7 1F469 1F3FE 200D 2764 200D 1F48B 200D 1F469 1F3FB

-F0DAF 30 7 1F469 1F3FE 200D 2764 200D 1F48B 200D 1F469 1F3FC

-F0DB0 30 7 1F469 1F3FE 200D 2764 200D 1F48B 200D 1F469 1F3FD

-F0DB1 30 7 1F469 1F3FE 200D 2764 200D 1F48B 200D 1F469 1F3FE

-F0DB2 30 7 1F469 1F3FE 200D 2764 200D 1F48B 200D 1F469 1F3FF

-F0DB3 30 7 1F469 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FB

-F0DB4 30 7 1F469 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FC

-F0DB5 30 7 1F469 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FD

-F0DB6 30 7 1F469 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FE

-F0DB7 30 7 1F469 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FF

-F0DB8 30 7 1F469 1F3FF 200D 2764 200D 1F48B 200D 1F469 1F3FB

-F0DB9 30 7 1F469 1F3FF 200D 2764 200D 1F48B 200D 1F469 1F3FC

-F0DBA 30 7 1F469 1F3FF 200D 2764 200D 1F48B 200D 1F469 1F3FD

-F0DBB 30 7 1F469 1F3FF 200D 2764 200D 1F48B 200D 1F469 1F3FE

-F0DBC 30 7 1F469 1F3FF 200D 2764 200D 1F48B 200D 1F469 1F3FF

-F0DBD 30 7 1F469 1F3FB 200D 2764 200D 1F468 1F3FB

-F0DBE 30 7 1F469 1F3FB 200D 2764 200D 1F468 1F3FC

-F0DBF 30 7 1F469 1F3FB 200D 2764 200D 1F468 1F3FD

-F0DC0 30 7 1F469 1F3FB 200D 2764 200D 1F468 1F3FE

-F0DC1 30 7 1F469 1F3FB 200D 2764 200D 1F468 1F3FF

-F0DC2 30 7 1F469 1F3FB 200D 2764 200D 1F469 1F3FB

-F0DC3 30 7 1F469 1F3FB 200D 2764 200D 1F469 1F3FC

-F0DC4 30 7 1F469 1F3FB 200D 2764 200D 1F469 1F3FD

-F0DC5 30 7 1F469 1F3FB 200D 2764 200D 1F469 1F3FE

-F0DC6 30 7 1F469 1F3FB 200D 2764 200D 1F469 1F3FF

-F0DC7 30 7 1F469 1F3FC 200D 2764 200D 1F468 1F3FB

-F0DC8 30 7 1F469 1F3FC 200D 2764 200D 1F468 1F3FC

-F0DC9 30 7 1F469 1F3FC 200D 2764 200D 1F468 1F3FD

-F0DCA 30 7 1F469 1F3FC 200D 2764 200D 1F468 1F3FE

-F0DCB 30 7 1F469 1F3FC 200D 2764 200D 1F468 1F3FF

-F0DCC 30 7 1F469 1F3FC 200D 2764 200D 1F469 1F3FB

-F0DCD 30 7 1F469 1F3FC 200D 2764 200D 1F469 1F3FC

-F0DCE 30 7 1F469 1F3FC 200D 2764 200D 1F469 1F3FD

-F0DCF 30 7 1F469 1F3FC 200D 2764 200D 1F469 1F3FE

-F0DD0 30 7 1F469 1F3FC 200D 2764 200D 1F469 1F3FF

-F0DD1 30 7 1F469 1F3FD 200D 2764 200D 1F468 1F3FB

-F0DD2 30 7 1F469 1F3FD 200D 2764 200D 1F468 1F3FC

-F0DD3 30 7 1F469 1F3FD 200D 2764 200D 1F468 1F3FD

-F0DD4 30 7 1F469 1F3FD 200D 2764 200D 1F468 1F3FE

-F0DD5 30 7 1F469 1F3FD 200D 2764 200D 1F468 1F3FF

-F0DD6 30 7 1F469 1F3FD 200D 2764 200D 1F469 1F3FB

-F0DD7 30 7 1F469 1F3FD 200D 2764 200D 1F469 1F3FC

-F0DD8 30 7 1F469 1F3FD 200D 2764 200D 1F469 1F3FD

-F0DD9 30 7 1F469 1F3FD 200D 2764 200D 1F469 1F3FE

-F0DDA 30 7 1F469 1F3FD 200D 2764 200D 1F469 1F3FF

-F0DDB 30 7 1F469 1F3FE 200D 2764 200D 1F468 1F3FB

-F0DDC 30 7 1F469 1F3FE 200D 2764 200D 1F468 1F3FC

-F0DDD 30 7 1F469 1F3FE 200D 2764 200D 1F468 1F3FD

-F0DDE 30 7 1F469 1F3FE 200D 2764 200D 1F468 1F3FE

-F0DDF 30 7 1F469 1F3FE 200D 2764 200D 1F468 1F3FF

-F0DE0 30 7 1F469 1F3FE 200D 2764 200D 1F469 1F3FB

-F0DE1 30 7 1F469 1F3FE 200D 2764 200D 1F469 1F3FC

-F0DE2 30 7 1F469 1F3FE 200D 2764 200D 1F469 1F3FD

-F0DE3 30 7 1F469 1F3FE 200D 2764 200D 1F469 1F3FE

-F0DE4 30 7 1F469 1F3FE 200D 2764 200D 1F469 1F3FF

-F0DE5 30 7 1F469 1F3FF 200D 2764 200D 1F468 1F3FB

-F0DE6 30 7 1F469 1F3FF 200D 2764 200D 1F468 1F3FC

-F0DE7 30 7 1F469 1F3FF 200D 2764 200D 1F468 1F3FD

-F0DE8 30 7 1F469 1F3FF 200D 2764 200D 1F468 1F3FE

-F0DE9 30 7 1F469 1F3FF 200D 2764 200D 1F468 1F3FF

-F0DEA 30 7 1F469 1F3FF 200D 2764 200D 1F469 1F3FB

-F0DEB 30 7 1F469 1F3FF 200D 2764 200D 1F469 1F3FC

-F0DEC 30 7 1F469 1F3FF 200D 2764 200D 1F469 1F3FD

-F0DED 30 7 1F469 1F3FF 200D 2764 200D 1F469 1F3FE

-F0DEE 30 7 1F469 1F3FF 200D 2764 200D 1F469 1F3FF

-F0DEF 30 7 1F48F 1F3FB

-F0DF0 30 7 1F48F 1F3FC

-F0DF1 30 7 1F48F 1F3FD

-F0DF2 30 7 1F48F 1F3FE

-F0DF3 30 7 1F48F 1F3FF

-F0DF4 30 7 1F491 1F3FB

-F0DF5 30 7 1F491 1F3FC

-F0DF6 30 7 1F491 1F3FD

-F0DF7 30 7 1F491 1F3FE

-F0DF8 30 7 1F491 1F3FF

-F0DF9 30 7 1F62E 200D 1F4A8

-F0DFA 30 7 1F635 200D 1F4AB

-F0DFB 30 7 1F636 200D 1F32B

-F0DFC 30 7 1F9D1 1F3FB 200D 2764 200D 1F48B 200D 1F9D1 1F3FC

-F0DFD 30 7 1F9D1 1F3FB 200D 2764 200D 1F48B 200D 1F9D1 1F3FD

-F0DFE 30 7 1F9D1 1F3FB 200D 2764 200D 1F48B 200D 1F9D1 1F3FE

-F0DFF 30 7 1F9D1 1F3FB 200D 2764 200D 1F48B 200D 1F9D1 1F3FF

-F0E00 30 7 1F9D1 1F3FC 200D 2764 200D 1F48B 200D 1F9D1 1F3FB

-F0E01 30 7 1F9D1 1F3FC 200D 2764 200D 1F48B 200D 1F9D1 1F3FD

-F0E02 30 7 1F9D1 1F3FC 200D 2764 200D 1F48B 200D 1F9D1 1F3FE

-F0E03 30 7 1F9D1 1F3FC 200D 2764 200D 1F48B 200D 1F9D1 1F3FF

-F0E04 30 7 1F9D1 1F3FD 200D 2764 200D 1F48B 200D 1F9D1 1F3FB

-F0E05 30 7 1F9D1 1F3FD 200D 2764 200D 1F48B 200D 1F9D1 1F3FC

-F0E06 30 7 1F9D1 1F3FD 200D 2764 200D 1F48B 200D 1F9D1 1F3FE

-F0E07 30 7 1F9D1 1F3FD 200D 2764 200D 1F48B 200D 1F9D1 1F3FF

-F0E08 30 7 1F9D1 1F3FE 200D 2764 200D 1F48B 200D 1F9D1 1F3FB

-F0E09 30 7 1F9D1 1F3FE 200D 2764 200D 1F48B 200D 1F9D1 1F3FC

-F0E0A 30 7 1F9D1 1F3FE 200D 2764 200D 1F48B 200D 1F9D1 1F3FD

-F0E0B 30 7 1F9D1 1F3FE 200D 2764 200D 1F48B 200D 1F9D1 1F3FF

-F0E0C 30 7 1F9D1 1F3FF 200D 2764 200D 1F48B 200D 1F9D1 1F3FB

-F0E0D 30 7 1F9D1 1F3FF 200D 2764 200D 1F48B 200D 1F9D1 1F3FC

-F0E0E 30 7 1F9D1 1F3FF 200D 2764 200D 1F48B 200D 1F9D1 1F3FD

-F0E0F 30 7 1F9D1 1F3FF 200D 2764 200D 1F48B 200D 1F9D1 1F3FE

-F0E10 30 7 1F9D1 1F3FB 200D 2764 200D 1F9D1 1F3FC

-F0E11 30 7 1F9D1 1F3FB 200D 2764 200D 1F9D1 1F3FD

-F0E12 30 7 1F9D1 1F3FB 200D 2764 200D 1F9D1 1F3FE

-F0E13 30 7 1F9D1 1F3FB 200D 2764 200D 1F9D1 1F3FF

-F0E14 30 7 1F9D1 1F3FC 200D 2764 200D 1F9D1 1F3FB

-F0E15 30 7 1F9D1 1F3FC 200D 2764 200D 1F9D1 1F3FD

-F0E16 30 7 1F9D1 1F3FC 200D 2764 200D 1F9D1 1F3FE

-F0E17 30 7 1F9D1 1F3FC 200D 2764 200D 1F9D1 1F3FF

-F0E18 30 7 1F9D1 1F3FD 200D 2764 200D 1F9D1 1F3FB

-F0E19 30 7 1F9D1 1F3FD 200D 2764 200D 1F9D1 1F3FC

-F0E1A 30 7 1F9D1 1F3FD 200D 2764 200D 1F9D1 1F3FE

-F0E1B 30 7 1F9D1 1F3FD 200D 2764 200D 1F9D1 1F3FF

-F0E1C 30 7 1F9D1 1F3FE 200D 2764 200D 1F9D1 1F3FB

-F0E1D 30 7 1F9D1 1F3FE 200D 2764 200D 1F9D1 1F3FC

-F0E1E 30 7 1F9D1 1F3FE 200D 2764 200D 1F9D1 1F3FD

-F0E1F 30 7 1F9D1 1F3FE 200D 2764 200D 1F9D1 1F3FF

-F0E20 30 7 1F9D1 1F3FF 200D 2764 200D 1F9D1 1F3FB

-F0E21 30 7 1F9D1 1F3FF 200D 2764 200D 1F9D1 1F3FC

-F0E22 30 7 1F9D1 1F3FF 200D 2764 200D 1F9D1 1F3FD

-F0E23 30 7 1F9D1 1F3FF 200D 2764 200D 1F9D1 1F3FE

-F0E24 30 7 1F9D4 1F3FB 200D 2640

-F0E25 30 7 1F9D4 1F3FB 200D 2642

-F0E26 30 7 1F9D4 1F3FC 200D 2640

-F0E27 30 7 1F9D4 1F3FC 200D 2642

-F0E28 30 7 1F9D4 1F3FD 200D 2640

-F0E29 30 7 1F9D4 1F3FD 200D 2642

-F0E2A 30 7 1F9D4 1F3FE 200D 2640

-F0E2B 30 7 1F9D4 1F3FE 200D 2642

-F0E2C 30 7 1F9D4 1F3FF 200D 2640

-F0E2D 30 7 1F9D4 1F3FF 200D 2642

-F0E2E 30 7 1F9D4 200D 2640

-F0E2F 30 7 1F9D4 200D 2642

diff --git a/emoji-compat-flatbuffers/data/flatbuffer_header.txt b/emoji-compat/data/flatbuffer_header.txt
similarity index 69%
rename from emoji-compat-flatbuffers/data/flatbuffer_header.txt
rename to emoji-compat/data/flatbuffer_header.txt
index 2b40a04..d67f3a8 100644
--- a/emoji-compat-flatbuffers/data/flatbuffer_header.txt
+++ b/emoji-compat/data/flatbuffer_header.txt
@@ -14,3 +14,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
+package androidx.text.emoji.flatbuffer;
+
+import com.google.flatbuffers.FlatBufferBuilder;
+import com.google.flatbuffers.Table;
+
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+
+/**
+ * Automatically generated by the FlatBuffers compiler, do not modify.
+ */
+@SuppressWarnings("unused")
\ No newline at end of file
diff --git a/emoji-compat/font/NotoColorEmojiCompat.ttf b/emoji-compat/font/NotoColorEmojiCompat.ttf
index 4a7a981..20d32a8 100644
--- a/emoji-compat/font/NotoColorEmojiCompat.ttf
+++ b/emoji-compat/font/NotoColorEmojiCompat.ttf
Binary files differ
diff --git a/emoji-compat/font/NotoColorEmojiFlags.ttf b/emoji-compat/font/NotoColorEmojiFlags.ttf
deleted file mode 100644
index 7c1afac..0000000
--- a/emoji-compat/font/NotoColorEmojiFlags.ttf
+++ /dev/null
Binary files differ
diff --git a/emoji-compat-flatbuffers/jarjar-rules.txt b/emoji-compat/jarjar-rules.txt
similarity index 100%
rename from emoji-compat-flatbuffers/jarjar-rules.txt
rename to emoji-compat/jarjar-rules.txt
diff --git a/emoji-compat-flatbuffers/settings.gradle b/emoji-compat/settings.gradle
similarity index 100%
rename from emoji-compat-flatbuffers/settings.gradle
rename to emoji-compat/settings.gradle
diff --git a/emoji-compat/src/java/androidx/text/emoji/flatbuffer/MetadataItem.java b/emoji-compat/src/java/androidx/text/emoji/flatbuffer/MetadataItem.java
new file mode 100644
index 0000000..49a1e2b
--- /dev/null
+++ b/emoji-compat/src/java/androidx/text/emoji/flatbuffer/MetadataItem.java
@@ -0,0 +1,160 @@
+// CHECKSTYLE:OFF Generated code
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package androidx.text.emoji.flatbuffer;
+
+import com.google.flatbuffers.FlatBufferBuilder;
+import com.google.flatbuffers.Table;
+
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+
+/**
+ * Automatically generated by the FlatBuffers compiler, do not modify.
+ */
+@SuppressWarnings("unused")
+public final class MetadataItem extends Table {
+    public static MetadataItem getRootAsMetadataItem(ByteBuffer _bb) {
+        return getRootAsMetadataItem(_bb, new MetadataItem());
+    }
+
+    public static MetadataItem getRootAsMetadataItem(ByteBuffer _bb, MetadataItem obj) {
+        _bb.order(ByteOrder.LITTLE_ENDIAN);
+        return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb));
+    }
+
+    public void __init(int _i, ByteBuffer _bb) {
+        bb_pos = _i;
+        bb = _bb;
+    }
+
+    public MetadataItem __assign(int _i, ByteBuffer _bb) {
+        __init(_i, _bb);
+        return this;
+    }
+
+    public int id() {
+        int o = __offset(4);
+        return o != 0 ? bb.getInt(o + bb_pos) : 0;
+    }
+
+    public boolean emojiStyle() {
+        int o = __offset(6);
+        return o != 0 ? 0 != bb.get(o + bb_pos) : false;
+    }
+
+    public short sdkAdded() {
+        int o = __offset(8);
+        return o != 0 ? bb.getShort(o + bb_pos) : 0;
+    }
+
+    public short compatAdded() {
+        int o = __offset(10);
+        return o != 0 ? bb.getShort(o + bb_pos) : 0;
+    }
+
+    public short width() {
+        int o = __offset(12);
+        return o != 0 ? bb.getShort(o + bb_pos) : 0;
+    }
+
+    public short height() {
+        int o = __offset(14);
+        return o != 0 ? bb.getShort(o + bb_pos) : 0;
+    }
+
+    public int codepoints(int j) {
+        int o = __offset(16);
+        return o != 0 ? bb.getInt(__vector(o) + j * 4) : 0;
+    }
+
+    public int codepointsLength() {
+        int o = __offset(16);
+        return o != 0 ? __vector_len(o) : 0;
+    }
+
+    public ByteBuffer codepointsAsByteBuffer() {
+        return __vector_as_bytebuffer(16, 4);
+    }
+
+    public static int createMetadataItem(FlatBufferBuilder builder,
+            int id,
+            boolean emojiStyle,
+            short sdkAdded,
+            short compatAdded,
+            short width,
+            short height,
+            int codepointsOffset) {
+        builder.startObject(7);
+        MetadataItem.addCodepoints(builder, codepointsOffset);
+        MetadataItem.addId(builder, id);
+        MetadataItem.addHeight(builder, height);
+        MetadataItem.addWidth(builder, width);
+        MetadataItem.addCompatAdded(builder, compatAdded);
+        MetadataItem.addSdkAdded(builder, sdkAdded);
+        MetadataItem.addEmojiStyle(builder, emojiStyle);
+        return MetadataItem.endMetadataItem(builder);
+    }
+
+    public static void startMetadataItem(FlatBufferBuilder builder) {
+        builder.startObject(7);
+    }
+
+    public static void addId(FlatBufferBuilder builder, int id) {
+        builder.addInt(0, id, 0);
+    }
+
+    public static void addEmojiStyle(FlatBufferBuilder builder, boolean emojiStyle) {
+        builder.addBoolean(1, emojiStyle, false);
+    }
+
+    public static void addSdkAdded(FlatBufferBuilder builder, short sdkAdded) {
+        builder.addShort(2, sdkAdded, 0);
+    }
+
+    public static void addCompatAdded(FlatBufferBuilder builder, short compatAdded) {
+        builder.addShort(3, compatAdded, 0);
+    }
+
+    public static void addWidth(FlatBufferBuilder builder, short width) {
+        builder.addShort(4, width, 0);
+    }
+
+    public static void addHeight(FlatBufferBuilder builder, short height) {
+        builder.addShort(5, height, 0);
+    }
+
+    public static void addCodepoints(FlatBufferBuilder builder, int codepointsOffset) {
+        builder.addOffset(6, codepointsOffset, 0);
+    }
+
+    public static int createCodepointsVector(FlatBufferBuilder builder, int[] data) {
+        builder.startVector(4, data.length, 4);
+        for (int i = data.length - 1; i >= 0; i--) builder.addInt(data[i]);
+        return builder.endVector();
+    }
+
+    public static void startCodepointsVector(FlatBufferBuilder builder, int numElems) {
+        builder.startVector(4, numElems, 4);
+    }
+
+    public static int endMetadataItem(FlatBufferBuilder builder) {
+        int o = builder.endObject();
+        return o;
+    }
+}
+
diff --git a/emoji-compat/src/java/androidx/text/emoji/flatbuffer/MetadataList.java b/emoji-compat/src/java/androidx/text/emoji/flatbuffer/MetadataList.java
new file mode 100644
index 0000000..97b12a4
--- /dev/null
+++ b/emoji-compat/src/java/androidx/text/emoji/flatbuffer/MetadataList.java
@@ -0,0 +1,124 @@
+// CHECKSTYLE:OFF Generated code
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package androidx.text.emoji.flatbuffer;
+
+import com.google.flatbuffers.FlatBufferBuilder;
+import com.google.flatbuffers.Table;
+
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+
+/**
+ * Automatically generated by the FlatBuffers compiler, do not modify.
+ */
+@SuppressWarnings("unused")
+public final class MetadataList extends Table {
+    public static MetadataList getRootAsMetadataList(ByteBuffer _bb) {
+        return getRootAsMetadataList(_bb, new MetadataList());
+    }
+
+    public static MetadataList getRootAsMetadataList(ByteBuffer _bb, MetadataList obj) {
+        _bb.order(ByteOrder.LITTLE_ENDIAN);
+        return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb));
+    }
+
+    public void __init(int _i, ByteBuffer _bb) {
+        bb_pos = _i;
+        bb = _bb;
+    }
+
+    public MetadataList __assign(int _i, ByteBuffer _bb) {
+        __init(_i, _bb);
+        return this;
+    }
+
+    public int version() {
+        int o = __offset(4);
+        return o != 0 ? bb.getInt(o + bb_pos) : 0;
+    }
+
+    public MetadataItem list(int j) {
+        return list(new MetadataItem(), j);
+    }
+
+    public MetadataItem list(MetadataItem obj, int j) {
+        int o = __offset(6);
+        return o != 0 ? obj.__assign(__indirect(__vector(o) + j * 4), bb) : null;
+    }
+
+    public int listLength() {
+        int o = __offset(6);
+        return o != 0 ? __vector_len(o) : 0;
+    }
+
+    public String sourceSha() {
+        int o = __offset(8);
+        return o != 0 ? __string(o + bb_pos) : null;
+    }
+
+    public ByteBuffer sourceShaAsByteBuffer() {
+        return __vector_as_bytebuffer(8, 1);
+    }
+
+    public static int createMetadataList(FlatBufferBuilder builder,
+            int version,
+            int listOffset,
+            int sourceShaOffset) {
+        builder.startObject(3);
+        MetadataList.addSourceSha(builder, sourceShaOffset);
+        MetadataList.addList(builder, listOffset);
+        MetadataList.addVersion(builder, version);
+        return MetadataList.endMetadataList(builder);
+    }
+
+    public static void startMetadataList(FlatBufferBuilder builder) {
+        builder.startObject(3);
+    }
+
+    public static void addVersion(FlatBufferBuilder builder, int version) {
+        builder.addInt(0, version, 0);
+    }
+
+    public static void addList(FlatBufferBuilder builder, int listOffset) {
+        builder.addOffset(1, listOffset, 0);
+    }
+
+    public static int createListVector(FlatBufferBuilder builder, int[] data) {
+        builder.startVector(4, data.length, 4);
+        for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]);
+        return builder.endVector();
+    }
+
+    public static void startListVector(FlatBufferBuilder builder, int numElems) {
+        builder.startVector(4, numElems, 4);
+    }
+
+    public static void addSourceSha(FlatBufferBuilder builder, int sourceShaOffset) {
+        builder.addOffset(2, sourceShaOffset, 0);
+    }
+
+    public static int endMetadataList(FlatBufferBuilder builder) {
+        int o = builder.endObject();
+        return o;
+    }
+
+    public static void finishMetadataListBuffer(FlatBufferBuilder builder, int offset) {
+        builder.finish(offset);
+    }
+}
+
diff --git a/emoji-compat/supported-emojis/emojis.txt b/emoji-compat/supported-emojis/emojis.txt
index a4818c0..f39c2e2 100644
--- a/emoji-compat/supported-emojis/emojis.txt
+++ b/emoji-compat/supported-emojis/emojis.txt
@@ -670,7 +670,6 @@
 1F3F0
 1F3F3 FE0F
 1F3F3 FE0F 200D 1F308
-1F3F3 FE0F 200D 26A7 FE0F
 1F3F4
 1F3F4 200D 2620 FE0F
 1F3F4 E0067 E0062 E0065 E006E E0067 E007F
@@ -695,7 +694,6 @@
 1F406
 1F407
 1F408
-1F408 200D 2B1B
 1F408 FE0F
 1F409
 1F40A
@@ -752,7 +750,6 @@
 1F439
 1F43A
 1F43B
-1F43B 200D 2744 FE0F
 1F43C
 1F43D
 1F43E
@@ -885,7 +882,6 @@
 1F468 1F3FB
 1F468 1F3FB 200D 1F33E
 1F468 1F3FB 200D 1F373
-1F468 1F3FB 200D 1F37C
 1F468 1F3FB 200D 1F393
 1F468 1F3FB 200D 1F3A4
 1F468 1F3FB 200D 1F3A8
@@ -911,20 +907,9 @@
 1F468 1F3FB 200D 2695 FE0F
 1F468 1F3FB 200D 2696 FE0F
 1F468 1F3FB 200D 2708 FE0F
-1F468 1F3FB 200D 2764 FE0F 200D 1F468 1F3FB
-1F468 1F3FB 200D 2764 FE0F 200D 1F468 1F3FC
-1F468 1F3FB 200D 2764 FE0F 200D 1F468 1F3FD
-1F468 1F3FB 200D 2764 FE0F 200D 1F468 1F3FE
-1F468 1F3FB 200D 2764 FE0F 200D 1F468 1F3FF
-1F468 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB
-1F468 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC
-1F468 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD
-1F468 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE
-1F468 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF
 1F468 1F3FC
 1F468 1F3FC 200D 1F33E
 1F468 1F3FC 200D 1F373
-1F468 1F3FC 200D 1F37C
 1F468 1F3FC 200D 1F393
 1F468 1F3FC 200D 1F3A4
 1F468 1F3FC 200D 1F3A8
@@ -950,20 +935,9 @@
 1F468 1F3FC 200D 2695 FE0F
 1F468 1F3FC 200D 2696 FE0F
 1F468 1F3FC 200D 2708 FE0F
-1F468 1F3FC 200D 2764 FE0F 200D 1F468 1F3FB
-1F468 1F3FC 200D 2764 FE0F 200D 1F468 1F3FC
-1F468 1F3FC 200D 2764 FE0F 200D 1F468 1F3FD
-1F468 1F3FC 200D 2764 FE0F 200D 1F468 1F3FE
-1F468 1F3FC 200D 2764 FE0F 200D 1F468 1F3FF
-1F468 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB
-1F468 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC
-1F468 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD
-1F468 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE
-1F468 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF
 1F468 1F3FD
 1F468 1F3FD 200D 1F33E
 1F468 1F3FD 200D 1F373
-1F468 1F3FD 200D 1F37C
 1F468 1F3FD 200D 1F393
 1F468 1F3FD 200D 1F3A4
 1F468 1F3FD 200D 1F3A8
@@ -989,20 +963,9 @@
 1F468 1F3FD 200D 2695 FE0F
 1F468 1F3FD 200D 2696 FE0F
 1F468 1F3FD 200D 2708 FE0F
-1F468 1F3FD 200D 2764 FE0F 200D 1F468 1F3FB
-1F468 1F3FD 200D 2764 FE0F 200D 1F468 1F3FC
-1F468 1F3FD 200D 2764 FE0F 200D 1F468 1F3FD
-1F468 1F3FD 200D 2764 FE0F 200D 1F468 1F3FE
-1F468 1F3FD 200D 2764 FE0F 200D 1F468 1F3FF
-1F468 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB
-1F468 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC
-1F468 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD
-1F468 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE
-1F468 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF
 1F468 1F3FE
 1F468 1F3FE 200D 1F33E
 1F468 1F3FE 200D 1F373
-1F468 1F3FE 200D 1F37C
 1F468 1F3FE 200D 1F393
 1F468 1F3FE 200D 1F3A4
 1F468 1F3FE 200D 1F3A8
@@ -1028,20 +991,9 @@
 1F468 1F3FE 200D 2695 FE0F
 1F468 1F3FE 200D 2696 FE0F
 1F468 1F3FE 200D 2708 FE0F
-1F468 1F3FE 200D 2764 FE0F 200D 1F468 1F3FB
-1F468 1F3FE 200D 2764 FE0F 200D 1F468 1F3FC
-1F468 1F3FE 200D 2764 FE0F 200D 1F468 1F3FD
-1F468 1F3FE 200D 2764 FE0F 200D 1F468 1F3FE
-1F468 1F3FE 200D 2764 FE0F 200D 1F468 1F3FF
-1F468 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB
-1F468 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC
-1F468 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD
-1F468 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE
-1F468 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF
 1F468 1F3FF
 1F468 1F3FF 200D 1F33E
 1F468 1F3FF 200D 1F373
-1F468 1F3FF 200D 1F37C
 1F468 1F3FF 200D 1F393
 1F468 1F3FF 200D 1F3A4
 1F468 1F3FF 200D 1F3A8
@@ -1067,19 +1019,8 @@
 1F468 1F3FF 200D 2695 FE0F
 1F468 1F3FF 200D 2696 FE0F
 1F468 1F3FF 200D 2708 FE0F
-1F468 1F3FF 200D 2764 FE0F 200D 1F468 1F3FB
-1F468 1F3FF 200D 2764 FE0F 200D 1F468 1F3FC
-1F468 1F3FF 200D 2764 FE0F 200D 1F468 1F3FD
-1F468 1F3FF 200D 2764 FE0F 200D 1F468 1F3FE
-1F468 1F3FF 200D 2764 FE0F 200D 1F468 1F3FF
-1F468 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB
-1F468 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC
-1F468 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD
-1F468 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE
-1F468 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF
 1F468 200D 1F33E
 1F468 200D 1F373
-1F468 200D 1F37C
 1F468 200D 1F393
 1F468 200D 1F3A4
 1F468 200D 1F3A8
@@ -1122,7 +1063,6 @@
 1F469 1F3FB
 1F469 1F3FB 200D 1F33E
 1F469 1F3FB 200D 1F373
-1F469 1F3FB 200D 1F37C
 1F469 1F3FB 200D 1F393
 1F469 1F3FB 200D 1F3A4
 1F469 1F3FB 200D 1F3A8
@@ -1152,30 +1092,9 @@
 1F469 1F3FB 200D 2695 FE0F
 1F469 1F3FB 200D 2696 FE0F
 1F469 1F3FB 200D 2708 FE0F
-1F469 1F3FB 200D 2764 FE0F 200D 1F468 1F3FB
-1F469 1F3FB 200D 2764 FE0F 200D 1F468 1F3FC
-1F469 1F3FB 200D 2764 FE0F 200D 1F468 1F3FD
-1F469 1F3FB 200D 2764 FE0F 200D 1F468 1F3FE
-1F469 1F3FB 200D 2764 FE0F 200D 1F468 1F3FF
-1F469 1F3FB 200D 2764 FE0F 200D 1F469 1F3FB
-1F469 1F3FB 200D 2764 FE0F 200D 1F469 1F3FC
-1F469 1F3FB 200D 2764 FE0F 200D 1F469 1F3FD
-1F469 1F3FB 200D 2764 FE0F 200D 1F469 1F3FE
-1F469 1F3FB 200D 2764 FE0F 200D 1F469 1F3FF
-1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB
-1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC
-1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD
-1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE
-1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF
-1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FB
-1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FC
-1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FD
-1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FE
-1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FF
 1F469 1F3FC
 1F469 1F3FC 200D 1F33E
 1F469 1F3FC 200D 1F373
-1F469 1F3FC 200D 1F37C
 1F469 1F3FC 200D 1F393
 1F469 1F3FC 200D 1F3A4
 1F469 1F3FC 200D 1F3A8
@@ -1205,30 +1124,9 @@
 1F469 1F3FC 200D 2695 FE0F
 1F469 1F3FC 200D 2696 FE0F
 1F469 1F3FC 200D 2708 FE0F
-1F469 1F3FC 200D 2764 FE0F 200D 1F468 1F3FB
-1F469 1F3FC 200D 2764 FE0F 200D 1F468 1F3FC
-1F469 1F3FC 200D 2764 FE0F 200D 1F468 1F3FD
-1F469 1F3FC 200D 2764 FE0F 200D 1F468 1F3FE
-1F469 1F3FC 200D 2764 FE0F 200D 1F468 1F3FF
-1F469 1F3FC 200D 2764 FE0F 200D 1F469 1F3FB
-1F469 1F3FC 200D 2764 FE0F 200D 1F469 1F3FC
-1F469 1F3FC 200D 2764 FE0F 200D 1F469 1F3FD
-1F469 1F3FC 200D 2764 FE0F 200D 1F469 1F3FE
-1F469 1F3FC 200D 2764 FE0F 200D 1F469 1F3FF
-1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB
-1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC
-1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD
-1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE
-1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF
-1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FB
-1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FC
-1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FD
-1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FE
-1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FF
 1F469 1F3FD
 1F469 1F3FD 200D 1F33E
 1F469 1F3FD 200D 1F373
-1F469 1F3FD 200D 1F37C
 1F469 1F3FD 200D 1F393
 1F469 1F3FD 200D 1F3A4
 1F469 1F3FD 200D 1F3A8
@@ -1258,30 +1156,9 @@
 1F469 1F3FD 200D 2695 FE0F
 1F469 1F3FD 200D 2696 FE0F
 1F469 1F3FD 200D 2708 FE0F
-1F469 1F3FD 200D 2764 FE0F 200D 1F468 1F3FB
-1F469 1F3FD 200D 2764 FE0F 200D 1F468 1F3FC
-1F469 1F3FD 200D 2764 FE0F 200D 1F468 1F3FD
-1F469 1F3FD 200D 2764 FE0F 200D 1F468 1F3FE
-1F469 1F3FD 200D 2764 FE0F 200D 1F468 1F3FF
-1F469 1F3FD 200D 2764 FE0F 200D 1F469 1F3FB
-1F469 1F3FD 200D 2764 FE0F 200D 1F469 1F3FC
-1F469 1F3FD 200D 2764 FE0F 200D 1F469 1F3FD
-1F469 1F3FD 200D 2764 FE0F 200D 1F469 1F3FE
-1F469 1F3FD 200D 2764 FE0F 200D 1F469 1F3FF
-1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB
-1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC
-1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD
-1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE
-1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF
-1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FB
-1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FC
-1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FD
-1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FE
-1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FF
 1F469 1F3FE
 1F469 1F3FE 200D 1F33E
 1F469 1F3FE 200D 1F373
-1F469 1F3FE 200D 1F37C
 1F469 1F3FE 200D 1F393
 1F469 1F3FE 200D 1F3A4
 1F469 1F3FE 200D 1F3A8
@@ -1311,30 +1188,9 @@
 1F469 1F3FE 200D 2695 FE0F
 1F469 1F3FE 200D 2696 FE0F
 1F469 1F3FE 200D 2708 FE0F
-1F469 1F3FE 200D 2764 FE0F 200D 1F468 1F3FB
-1F469 1F3FE 200D 2764 FE0F 200D 1F468 1F3FC
-1F469 1F3FE 200D 2764 FE0F 200D 1F468 1F3FD
-1F469 1F3FE 200D 2764 FE0F 200D 1F468 1F3FE
-1F469 1F3FE 200D 2764 FE0F 200D 1F468 1F3FF
-1F469 1F3FE 200D 2764 FE0F 200D 1F469 1F3FB
-1F469 1F3FE 200D 2764 FE0F 200D 1F469 1F3FC
-1F469 1F3FE 200D 2764 FE0F 200D 1F469 1F3FD
-1F469 1F3FE 200D 2764 FE0F 200D 1F469 1F3FE
-1F469 1F3FE 200D 2764 FE0F 200D 1F469 1F3FF
-1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB
-1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC
-1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD
-1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE
-1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF
-1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FB
-1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FC
-1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FD
-1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FE
-1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FF
 1F469 1F3FF
 1F469 1F3FF 200D 1F33E
 1F469 1F3FF 200D 1F373
-1F469 1F3FF 200D 1F37C
 1F469 1F3FF 200D 1F393
 1F469 1F3FF 200D 1F3A4
 1F469 1F3FF 200D 1F3A8
@@ -1364,29 +1220,8 @@
 1F469 1F3FF 200D 2695 FE0F
 1F469 1F3FF 200D 2696 FE0F
 1F469 1F3FF 200D 2708 FE0F
-1F469 1F3FF 200D 2764 FE0F 200D 1F468 1F3FB
-1F469 1F3FF 200D 2764 FE0F 200D 1F468 1F3FC
-1F469 1F3FF 200D 2764 FE0F 200D 1F468 1F3FD
-1F469 1F3FF 200D 2764 FE0F 200D 1F468 1F3FE
-1F469 1F3FF 200D 2764 FE0F 200D 1F468 1F3FF
-1F469 1F3FF 200D 2764 FE0F 200D 1F469 1F3FB
-1F469 1F3FF 200D 2764 FE0F 200D 1F469 1F3FC
-1F469 1F3FF 200D 2764 FE0F 200D 1F469 1F3FD
-1F469 1F3FF 200D 2764 FE0F 200D 1F469 1F3FE
-1F469 1F3FF 200D 2764 FE0F 200D 1F469 1F3FF
-1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB
-1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC
-1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD
-1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE
-1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF
-1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FB
-1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FC
-1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FD
-1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FE
-1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FF
 1F469 200D 1F33E
 1F469 200D 1F373
-1F469 200D 1F37C
 1F469 200D 1F393
 1F469 200D 1F3A4
 1F469 200D 1F3A8
@@ -1465,22 +1300,10 @@
 1F46F 200D 2642 FE0F
 1F470
 1F470 1F3FB
-1F470 1F3FB 200D 2640 FE0F
-1F470 1F3FB 200D 2642 FE0F
 1F470 1F3FC
-1F470 1F3FC 200D 2640 FE0F
-1F470 1F3FC 200D 2642 FE0F
 1F470 1F3FD
-1F470 1F3FD 200D 2640 FE0F
-1F470 1F3FD 200D 2642 FE0F
 1F470 1F3FE
-1F470 1F3FE 200D 2640 FE0F
-1F470 1F3FE 200D 2642 FE0F
 1F470 1F3FF
-1F470 1F3FF 200D 2640 FE0F
-1F470 1F3FF 200D 2642 FE0F
-1F470 200D 2640 FE0F
-1F470 200D 2642 FE0F
 1F471
 1F471 1F3FB
 1F471 1F3FB 200D 2640 FE0F
@@ -1672,18 +1495,8 @@
 1F48D
 1F48E
 1F48F
-1F48F 1F3FB
-1F48F 1F3FC
-1F48F 1F3FD
-1F48F 1F3FE
-1F48F 1F3FF
 1F490
 1F491
-1F491 1F3FB
-1F491 1F3FC
-1F491 1F3FD
-1F491 1F3FE
-1F491 1F3FF
 1F492
 1F493
 1F494
@@ -2071,7 +1884,6 @@
 1F62C
 1F62D
 1F62E
-1F62E 200D 1F4A8
 1F62F
 1F630
 1F631
@@ -2079,9 +1891,7 @@
 1F633
 1F634
 1F635
-1F635 200D 1F4AB
 1F636
-1F636 200D 1F32B FE0F
 1F637
 1F638
 1F639
@@ -2386,8 +2196,6 @@
 1F6D1
 1F6D2
 1F6D5
-1F6D6
-1F6D7
 1F6E0 FE0F
 1F6E1 FE0F
 1F6E2 FE0F
@@ -2406,8 +2214,6 @@
 1F6F8
 1F6F9
 1F6FA
-1F6FB
-1F6FC
 1F7E0
 1F7E1
 1F7E2
@@ -2420,12 +2226,6 @@
 1F7E9
 1F7EA
 1F7EB
-1F90C
-1F90C 1F3FB
-1F90C 1F3FC
-1F90C 1F3FD
-1F90C 1F3FE
-1F90C 1F3FF
 1F90D
 1F90E
 1F90F
@@ -2555,22 +2355,10 @@
 1F934 1F3FF
 1F935
 1F935 1F3FB
-1F935 1F3FB 200D 2640 FE0F
-1F935 1F3FB 200D 2642 FE0F
 1F935 1F3FC
-1F935 1F3FC 200D 2640 FE0F
-1F935 1F3FC 200D 2642 FE0F
 1F935 1F3FD
-1F935 1F3FD 200D 2640 FE0F
-1F935 1F3FD 200D 2642 FE0F
 1F935 1F3FE
-1F935 1F3FE 200D 2640 FE0F
-1F935 1F3FE 200D 2642 FE0F
 1F935 1F3FF
-1F935 1F3FF 200D 2640 FE0F
-1F935 1F3FF 200D 2642 FE0F
-1F935 200D 2640 FE0F
-1F935 200D 2642 FE0F
 1F936
 1F936 1F3FB
 1F936 1F3FC
@@ -2736,18 +2524,10 @@
 1F96F
 1F970
 1F971
-1F972
 1F973
 1F974
 1F975
 1F976
-1F977
-1F977 1F3FB
-1F977 1F3FC
-1F977 1F3FD
-1F977 1F3FE
-1F977 1F3FF
-1F978
 1F97A
 1F97B
 1F97C
@@ -2789,17 +2569,12 @@
 1F9A0
 1F9A1
 1F9A2
-1F9A3
-1F9A4
 1F9A5
 1F9A6
 1F9A7
 1F9A8
 1F9A9
 1F9AA
-1F9AB
-1F9AC
-1F9AD
 1F9AE
 1F9AF
 1F9B0
@@ -2878,7 +2653,6 @@
 1F9C8
 1F9C9
 1F9CA
-1F9CB
 1F9CD
 1F9CD 1F3FB
 1F9CD 1F3FB 200D 2640 FE0F
@@ -2938,8 +2712,6 @@
 1F9D1 1F3FB
 1F9D1 1F3FB 200D 1F33E
 1F9D1 1F3FB 200D 1F373
-1F9D1 1F3FB 200D 1F37C
-1F9D1 1F3FB 200D 1F384
 1F9D1 1F3FB 200D 1F393
 1F9D1 1F3FB 200D 1F3A4
 1F9D1 1F3FB 200D 1F3A8
@@ -2966,19 +2738,9 @@
 1F9D1 1F3FB 200D 2695 FE0F
 1F9D1 1F3FB 200D 2696 FE0F
 1F9D1 1F3FB 200D 2708 FE0F
-1F9D1 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FC
-1F9D1 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FD
-1F9D1 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FE
-1F9D1 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FF
-1F9D1 1F3FB 200D 2764 FE0F 200D 1F9D1 1F3FC
-1F9D1 1F3FB 200D 2764 FE0F 200D 1F9D1 1F3FD
-1F9D1 1F3FB 200D 2764 FE0F 200D 1F9D1 1F3FE
-1F9D1 1F3FB 200D 2764 FE0F 200D 1F9D1 1F3FF
 1F9D1 1F3FC
 1F9D1 1F3FC 200D 1F33E
 1F9D1 1F3FC 200D 1F373
-1F9D1 1F3FC 200D 1F37C
-1F9D1 1F3FC 200D 1F384
 1F9D1 1F3FC 200D 1F393
 1F9D1 1F3FC 200D 1F3A4
 1F9D1 1F3FC 200D 1F3A8
@@ -3005,19 +2767,9 @@
 1F9D1 1F3FC 200D 2695 FE0F
 1F9D1 1F3FC 200D 2696 FE0F
 1F9D1 1F3FC 200D 2708 FE0F
-1F9D1 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FB
-1F9D1 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FD
-1F9D1 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FE
-1F9D1 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FF
-1F9D1 1F3FC 200D 2764 FE0F 200D 1F9D1 1F3FB
-1F9D1 1F3FC 200D 2764 FE0F 200D 1F9D1 1F3FD
-1F9D1 1F3FC 200D 2764 FE0F 200D 1F9D1 1F3FE
-1F9D1 1F3FC 200D 2764 FE0F 200D 1F9D1 1F3FF
 1F9D1 1F3FD
 1F9D1 1F3FD 200D 1F33E
 1F9D1 1F3FD 200D 1F373
-1F9D1 1F3FD 200D 1F37C
-1F9D1 1F3FD 200D 1F384
 1F9D1 1F3FD 200D 1F393
 1F9D1 1F3FD 200D 1F3A4
 1F9D1 1F3FD 200D 1F3A8
@@ -3044,19 +2796,9 @@
 1F9D1 1F3FD 200D 2695 FE0F
 1F9D1 1F3FD 200D 2696 FE0F
 1F9D1 1F3FD 200D 2708 FE0F
-1F9D1 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FB
-1F9D1 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FC
-1F9D1 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FE
-1F9D1 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FF
-1F9D1 1F3FD 200D 2764 FE0F 200D 1F9D1 1F3FB
-1F9D1 1F3FD 200D 2764 FE0F 200D 1F9D1 1F3FC
-1F9D1 1F3FD 200D 2764 FE0F 200D 1F9D1 1F3FE
-1F9D1 1F3FD 200D 2764 FE0F 200D 1F9D1 1F3FF
 1F9D1 1F3FE
 1F9D1 1F3FE 200D 1F33E
 1F9D1 1F3FE 200D 1F373
-1F9D1 1F3FE 200D 1F37C
-1F9D1 1F3FE 200D 1F384
 1F9D1 1F3FE 200D 1F393
 1F9D1 1F3FE 200D 1F3A4
 1F9D1 1F3FE 200D 1F3A8
@@ -3083,19 +2825,9 @@
 1F9D1 1F3FE 200D 2695 FE0F
 1F9D1 1F3FE 200D 2696 FE0F
 1F9D1 1F3FE 200D 2708 FE0F
-1F9D1 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FB
-1F9D1 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FC
-1F9D1 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FD
-1F9D1 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FF
-1F9D1 1F3FE 200D 2764 FE0F 200D 1F9D1 1F3FB
-1F9D1 1F3FE 200D 2764 FE0F 200D 1F9D1 1F3FC
-1F9D1 1F3FE 200D 2764 FE0F 200D 1F9D1 1F3FD
-1F9D1 1F3FE 200D 2764 FE0F 200D 1F9D1 1F3FF
 1F9D1 1F3FF
 1F9D1 1F3FF 200D 1F33E
 1F9D1 1F3FF 200D 1F373
-1F9D1 1F3FF 200D 1F37C
-1F9D1 1F3FF 200D 1F384
 1F9D1 1F3FF 200D 1F393
 1F9D1 1F3FF 200D 1F3A4
 1F9D1 1F3FF 200D 1F3A8
@@ -3122,18 +2854,8 @@
 1F9D1 1F3FF 200D 2695 FE0F
 1F9D1 1F3FF 200D 2696 FE0F
 1F9D1 1F3FF 200D 2708 FE0F
-1F9D1 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FB
-1F9D1 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FC
-1F9D1 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FD
-1F9D1 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FE
-1F9D1 1F3FF 200D 2764 FE0F 200D 1F9D1 1F3FB
-1F9D1 1F3FF 200D 2764 FE0F 200D 1F9D1 1F3FC
-1F9D1 1F3FF 200D 2764 FE0F 200D 1F9D1 1F3FD
-1F9D1 1F3FF 200D 2764 FE0F 200D 1F9D1 1F3FE
 1F9D1 200D 1F33E
 1F9D1 200D 1F373
-1F9D1 200D 1F37C
-1F9D1 200D 1F384
 1F9D1 200D 1F393
 1F9D1 200D 1F3A4
 1F9D1 200D 1F3A8
@@ -3170,22 +2892,10 @@
 1F9D3 1F3FF
 1F9D4
 1F9D4 1F3FB
-1F9D4 1F3FB 200D 2640 FE0F
-1F9D4 1F3FB 200D 2642 FE0F
 1F9D4 1F3FC
-1F9D4 1F3FC 200D 2640 FE0F
-1F9D4 1F3FC 200D 2642 FE0F
 1F9D4 1F3FD
-1F9D4 1F3FD 200D 2640 FE0F
-1F9D4 1F3FD 200D 2642 FE0F
 1F9D4 1F3FE
-1F9D4 1F3FE 200D 2640 FE0F
-1F9D4 1F3FE 200D 2642 FE0F
 1F9D4 1F3FF
-1F9D4 1F3FF 200D 2640 FE0F
-1F9D4 1F3FF 200D 2642 FE0F
-1F9D4 200D 2640 FE0F
-1F9D4 200D 2642 FE0F
 1F9D5
 1F9D5 1F3FB
 1F9D5 1F3FC
@@ -3378,59 +3088,18 @@
 1FA71
 1FA72
 1FA73
-1FA74
 1FA78
 1FA79
 1FA7A
 1FA80
 1FA81
 1FA82
-1FA83
-1FA84
-1FA85
-1FA86
 1FA90
 1FA91
 1FA92
 1FA93
 1FA94
 1FA95
-1FA96
-1FA97
-1FA98
-1FA99
-1FA9A
-1FA9B
-1FA9C
-1FA9D
-1FA9E
-1FA9F
-1FAA0
-1FAA1
-1FAA2
-1FAA3
-1FAA4
-1FAA5
-1FAA6
-1FAA7
-1FAA8
-1FAB0
-1FAB1
-1FAB2
-1FAB3
-1FAB4
-1FAB5
-1FAB6
-1FAC0
-1FAC1
-1FAC2
-1FAD0
-1FAD1
-1FAD2
-1FAD3
-1FAD4
-1FAD5
-1FAD6
 203C FE0F
 2049 FE0F
 2122 FE0F
@@ -3565,7 +3234,6 @@
 26A0 FE0F
 26A1
 26A1 FE0F
-26A7 FE0F
 26AA
 26AA FE0F
 26AB
@@ -3675,8 +3343,6 @@
 2763 FE0F
 2764
 2764 FE0F
-2764 FE0F 200D 1F525
-2764 FE0F 200D 1FA79
 2795
 2796
 2797
diff --git a/emoji/Android.bp b/emoji/Android.bp
new file mode 100644
index 0000000..7565e43
--- /dev/null
+++ b/emoji/Android.bp
@@ -0,0 +1,18 @@
+// Copyright (C) 2019 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+prebuilt_font {
+    name: "NotoColorEmoji.ttf",
+    src: "NotoColorEmoji.ttf",
+}
diff --git a/emoji/MODULE_LICENSE_OFL b/emoji/MODULE_LICENSE_OFL
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/emoji/MODULE_LICENSE_OFL
diff --git a/emoji/NOTICE b/emoji/NOTICE
new file mode 100644
index 0000000..d952d62
--- /dev/null
+++ b/emoji/NOTICE
@@ -0,0 +1,92 @@
+This Font Software is licensed under the SIL Open Font License,
+Version 1.1.
+
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font
+creation efforts of academic and linguistic communities, and to
+provide a free and open framework in which fonts may be shared and
+improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply to
+any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software
+components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to,
+deleting, or substituting -- in part or in whole -- any of the
+components of the Original Version, by changing formats or by porting
+the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed,
+modify, redistribute, and sell modified and unmodified copies of the
+Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in
+Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the
+corresponding Copyright Holder. This restriction only applies to the
+primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created using
+the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/emoji/NotoColorEmoji.ttf b/emoji/NotoColorEmoji.ttf
new file mode 100644
index 0000000..3fcd23f
--- /dev/null
+++ b/emoji/NotoColorEmoji.ttf
Binary files differ
diff --git a/emoji/README.android b/emoji/README.android
new file mode 100644
index 0000000..62abd6c
--- /dev/null
+++ b/emoji/README.android
@@ -0,0 +1,8 @@
+URL: https://github.com/googlei18n/noto-emoji
+Version: 2.007
+License: OFL 1.1
+License File: NOTICE
+
+Description:
+Noto Color Emoji font.
+
diff --git a/fonts.mk b/fonts.mk
index 67d4e30..13bfbfb 100644
--- a/fonts.mk
+++ b/fonts.mk
@@ -18,7 +18,6 @@
 
 PRODUCT_PACKAGES := \
     NotoColorEmoji.ttf \
-    NotoColorEmojiFlags.ttf \
     NotoNaskhArabic-Bold.ttf \
     NotoNaskhArabic-Regular.ttf \
     NotoNaskhArabicUI-Bold.ttf \
@@ -26,14 +25,20 @@
     NotoSansAdlam-VF.ttf \
     NotoSansAhom-Regular.otf \
     NotoSansAnatolianHieroglyphs-Regular.otf \
-    NotoSansArmenian-VF.ttf \
+    NotoSansArmenian-Bold.otf \
+    NotoSansArmenian-Medium.otf \
+    NotoSansArmenian-Regular.otf \
     NotoSansAvestan-Regular.ttf \
     NotoSansBalinese-Regular.ttf \
     NotoSansBamum-Regular.ttf \
     NotoSansBassaVah-Regular.otf \
     NotoSansBatak-Regular.ttf \
-    NotoSansBengali-VF.ttf \
-    NotoSansBengaliUI-VF.ttf \
+    NotoSansBengali-Bold.otf \
+    NotoSansBengali-Medium.otf \
+    NotoSansBengali-Regular.otf \
+    NotoSansBengaliUI-Bold.otf \
+    NotoSansBengaliUI-Medium.otf \
+    NotoSansBengaliUI-Regular.otf \
     NotoSansBhaiksuki-Regular.otf \
     NotoSansBrahmi-Regular.ttf \
     NotoSansBuginese-Regular.ttf \
@@ -49,22 +54,28 @@
     NotoSansCuneiform-Regular.ttf \
     NotoSansCypriot-Regular.ttf \
     NotoSansDeseret-Regular.ttf \
-    NotoSansDevanagari-VF.ttf \
-    NotoSansDevanagariUI-VF.ttf \
+    NotoSansDevanagari-Bold.otf \
+    NotoSansDevanagari-Medium.otf \
+    NotoSansDevanagari-Regular.otf \
+    NotoSansDevanagariUI-Bold.otf \
+    NotoSansDevanagariUI-Medium.otf \
+    NotoSansDevanagariUI-Regular.otf \
     NotoSansEgyptianHieroglyphs-Regular.ttf \
     NotoSansElbasan-Regular.otf \
-    NotoSansEthiopic-VF.ttf \
+    NotoSansEthiopic-Bold.ttf \
+    NotoSansEthiopic-Regular.ttf \
     NotoSansGeorgian-VF.ttf \
     NotoSansGlagolitic-Regular.ttf \
     NotoSansGothic-Regular.ttf \
-    NotoSansGrantha-Regular.ttf \
     NotoSansGujarati-Bold.ttf \
     NotoSansGujarati-Regular.ttf \
     NotoSansGujaratiUI-Bold.ttf \
     NotoSansGujaratiUI-Regular.ttf \
     NotoSansGunjalaGondi-Regular.otf \
-    NotoSansGurmukhi-VF.ttf \
-    NotoSansGurmukhiUI-VF.ttf \
+    NotoSansGurmukhi-Bold.ttf \
+    NotoSansGurmukhi-Regular.ttf \
+    NotoSansGurmukhiUI-Bold.ttf \
+    NotoSansGurmukhiUI-Regular.ttf \
     NotoSansHanifiRohingya-Regular.otf \
     NotoSansHanunoo-Regular.ttf \
     NotoSansHatran-Regular.otf \
@@ -75,8 +86,10 @@
     NotoSansInscriptionalParthian-Regular.ttf \
     NotoSansJavanese-Regular.otf \
     NotoSansKaithi-Regular.ttf \
-    NotoSansKannada-VF.ttf \
-    NotoSansKannadaUI-VF.ttf \
+    NotoSansKannada-Bold.ttf \
+    NotoSansKannada-Regular.ttf \
+    NotoSansKannadaUI-Bold.ttf \
+    NotoSansKannadaUI-Regular.ttf \
     NotoSansKayahLi-Regular.ttf \
     NotoSansKharoshthi-Regular.ttf \
     NotoSansKhmer-VF.ttf \
@@ -94,17 +107,19 @@
     NotoSansLisu-Regular.ttf \
     NotoSansLycian-Regular.ttf \
     NotoSansLydian-Regular.ttf \
-    NotoSansMalayalam-VF.ttf \
-    NotoSansMalayalamUI-VF.ttf \
+    NotoSansMalayalam-Bold.otf \
+    NotoSansMalayalam-Medium.otf \
+    NotoSansMalayalam-Regular.otf \
+    NotoSansMalayalamUI-Bold.otf \
+    NotoSansMalayalamUI-Medium.otf \
+    NotoSansMalayalamUI-Regular.otf \
     NotoSansMandaic-Regular.ttf \
     NotoSansManichaean-Regular.otf \
     NotoSansMarchen-Regular.otf \
     NotoSansMasaramGondi-Regular.otf \
-    NotoSansMedefaidrin-VF.ttf \
     NotoSansMeeteiMayek-Regular.ttf \
     NotoSansMeroitic-Regular.otf \
     NotoSansMiao-Regular.otf \
-    NotoSansModi-Regular.ttf \
     NotoSansMongolian-Regular.ttf \
     NotoSansMro-Regular.otf \
     NotoSansMultani-Regular.otf \
@@ -143,10 +158,13 @@
     NotoSansSaurashtra-Regular.ttf \
     NotoSansSharada-Regular.otf \
     NotoSansShavian-Regular.ttf \
-    NotoSansSinhala-VF.ttf \
-    NotoSansSinhalaUI-VF.ttf \
+    NotoSansSinhala-Bold.otf \
+    NotoSansSinhala-Medium.otf \
+    NotoSansSinhala-Regular.otf \
+    NotoSansSinhalaUI-Bold.otf \
+    NotoSansSinhalaUI-Medium.otf \
+    NotoSansSinhalaUI-Regular.otf \
     NotoSansSoraSompeng-Regular.otf \
-    NotoSansSoyombo-VF.ttf \
     NotoSansSundanese-Regular.ttf \
     NotoSansSylotiNagri-Regular.ttf \
     NotoSansSymbols-Regular-Subsetted.ttf \
@@ -159,17 +177,24 @@
     NotoSansTaiLe-Regular.ttf \
     NotoSansTaiTham-Regular.ttf \
     NotoSansTaiViet-Regular.ttf \
-    NotoSansTakri-VF.ttf \
-    NotoSansTamil-VF.ttf \
-    NotoSansTamilUI-VF.ttf \
-    NotoSansTelugu-VF.ttf \
-    NotoSansTeluguUI-VF.ttf \
+    NotoSansTamil-Bold.otf \
+    NotoSansTamil-Medium.otf \
+    NotoSansTamil-Regular.otf \
+    NotoSansTamilUI-Bold.otf \
+    NotoSansTamilUI-Medium.otf \
+    NotoSansTamilUI-Regular.otf \
+    NotoSansTelugu-Bold.ttf \
+    NotoSansTelugu-Regular.ttf \
+    NotoSansTeluguUI-Bold.ttf \
+    NotoSansTeluguUI-Regular.ttf \
     NotoSansThaana-Bold.ttf \
     NotoSansThaana-Regular.ttf \
     NotoSansThai-Bold.ttf \
     NotoSansThai-Regular.ttf \
     NotoSansThaiUI-Bold.ttf \
     NotoSansThaiUI-Regular.ttf \
+    NotoSansTibetan-Bold.ttf \
+    NotoSansTibetan-Regular.ttf \
     NotoSansTifinagh-Regular.otf \
     NotoSansUgaritic-Regular.ttf \
     NotoSansVai-Regular.ttf \
@@ -180,30 +205,37 @@
     NotoSerif-BoldItalic.ttf \
     NotoSerif-Italic.ttf \
     NotoSerif-Regular.ttf \
-    NotoSerifArmenian-VF.ttf \
-    NotoSerifBengali-VF.ttf \
+    NotoSerifArmenian-Bold.otf \
+    NotoSerifArmenian-Regular.otf \
+    NotoSerifBengali-Bold.ttf \
+    NotoSerifBengali-Regular.ttf \
     NotoSerifCJK-Regular.ttc \
-    NotoSerifDevanagari-VF.ttf \
-    NotoSerifDogra-Regular.ttf \
-    NotoSerifEthiopic-VF.ttf \
+    NotoSerifDevanagari-Bold.ttf \
+    NotoSerifDevanagari-Regular.ttf \
+    NotoSerifEthiopic-Bold.otf \
+    NotoSerifEthiopic-Regular.otf \
     NotoSerifGeorgian-VF.ttf \
-    NotoSerifGujarati-VF.ttf \
-    NotoSerifGurmukhi-VF.ttf \
+    NotoSerifGujarati-Bold.ttf \
+    NotoSerifGujarati-Regular.ttf \
+    NotoSerifGurmukhi-Bold.otf \
+    NotoSerifGurmukhi-Regular.otf \
     NotoSerifHebrew-Bold.ttf \
     NotoSerifHebrew-Regular.ttf \
-    NotoSerifKannada-VF.ttf \
+    NotoSerifKannada-Bold.ttf \
+    NotoSerifKannada-Regular.ttf \
     NotoSerifKhmer-Bold.otf \
     NotoSerifKhmer-Regular.otf \
     NotoSerifLao-Bold.ttf \
     NotoSerifLao-Regular.ttf \
-    NotoSerifMalayalam-VF.ttf \
+    NotoSerifMalayalam-Bold.ttf \
+    NotoSerifMalayalam-Regular.ttf \
     NotoSerifMyanmar-Bold.otf \
     NotoSerifMyanmar-Regular.otf \
-    NotoSerifNyiakengPuachueHmong-VF.ttf \
-    NotoSerifSinhala-VF.ttf \
-    NotoSerifTamil-VF.ttf \
-    NotoSerifTelugu-VF.ttf \
+    NotoSerifSinhala-Bold.otf \
+    NotoSerifSinhala-Regular.otf \
+    NotoSerifTamil-Bold.otf \
+    NotoSerifTamil-Regular.otf \
+    NotoSerifTelugu-Bold.ttf \
+    NotoSerifTelugu-Regular.ttf \
     NotoSerifThai-Bold.ttf \
-    NotoSerifThai-Regular.ttf \
-    NotoSerifTibetan-VF.ttf \
-    NotoSerifYezidi-VF.ttf
+    NotoSerifThai-Regular.ttf
diff --git a/other-vf/Android.bp b/other-vf/Android.bp
index 4cbc094..4e88ad4 100644
--- a/other-vf/Android.bp
+++ b/other-vf/Android.bp
@@ -12,39 +12,6 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-// *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS.  PLEASE
-//     CONSULT THE OWNERS AND opensource-licensing@google.com BEFORE
-//     DEPENDING ON IT IN YOUR PROJECT. ***
-package {
-    default_applicable_licenses: ["external_noto-fonts_other-vf_license"],
-}
-
-// Added automatically by a large-scale-change that took the approach of
-// 'apply every license found to every target'. While this makes sure we respect
-// every license restriction, it may not be entirely correct.
-//
-// e.g. GPL in an MIT project might only apply to the contrib/ directory.
-//
-// Please consider splitting the single license below into multiple licenses,
-// taking care not to lose any license_kind information, and overriding the
-// default license using the 'licenses: [...]' property on targets as needed.
-//
-// For unused files, consider creating a 'fileGroup' with "//visibility:private"
-// to attach the license to, and including a comment whether the files may be
-// used in the current project.
-// See: http://go/android-license-faq
-license {
-    name: "external_noto-fonts_other-vf_license",
-    visibility: [":__subpackages__"],
-    license_kinds: [
-        "SPDX-license-identifier-MIT",
-        "SPDX-license-identifier-OFL", // by exception only
-    ],
-    license_text: [
-        "NOTICE",
-    ],
-}
-
 prebuilt_font {
     name: "NotoSansKhmer-VF.ttf",
     src: "NotoSansKhmer-VF.ttf",
diff --git a/other/Android.bp b/other/Android.bp
index f218904..7c2cd2b 100644
--- a/other/Android.bp
+++ b/other/Android.bp
@@ -12,41 +12,6 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-// *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS.  PLEASE
-//     CONSULT THE OWNERS AND opensource-licensing@google.com BEFORE
-//     DEPENDING ON IT IN YOUR PROJECT. ***
-package {
-    default_applicable_licenses: ["external_noto-fonts_other_license"],
-}
-
-// Added automatically by a large-scale-change that took the approach of
-// 'apply every license found to every target'. While this makes sure we respect
-// every license restriction, it may not be entirely correct.
-//
-// e.g. GPL in an MIT project might only apply to the contrib/ directory.
-//
-// Please consider splitting the single license below into multiple licenses,
-// taking care not to lose any license_kind information, and overriding the
-// default license using the 'licenses: [...]' property on targets as needed.
-//
-// For unused files, consider creating a 'fileGroup' with "//visibility:private"
-// to attach the license to, and including a comment whether the files may be
-// used in the current project.
-// See: http://go/android-license-faq
-license {
-    name: "external_noto-fonts_other_license",
-    visibility: [":__subpackages__"],
-    license_kinds: [
-        "SPDX-license-identifier-Apache-2.0",
-        "SPDX-license-identifier-MIT",
-        "SPDX-license-identifier-OFL", // by exception only
-        "SPDX-license-identifier-Unicode-DFS",
-    ],
-    license_text: [
-        "NOTICE",
-    ],
-}
-
 prebuilt_font {
     name: "NotoSerif-Regular.ttf",
     src: "NotoSerif-Regular.ttf",
@@ -67,27 +32,6 @@
     src: "NotoSerif-BoldItalic.ttf",
 }
 
-
-prebuilt_font {
-    name: "NotoNaskhArabic-Bold.ttf",
-    src: "NotoNaskhArabic-Bold.ttf",
-}
-
-prebuilt_font {
-    name: "NotoNaskhArabic-Regular.ttf",
-    src: "NotoNaskhArabic-Regular.ttf",
-}
-
-prebuilt_font {
-    name: "NotoNaskhArabicUI-Bold.ttf",
-    src: "NotoNaskhArabicUI-Bold.ttf",
-}
-
-prebuilt_font {
-    name: "NotoNaskhArabicUI-Regular.ttf",
-    src: "NotoNaskhArabicUI-Regular.ttf",
-}
-
 prebuilt_font {
     name: "NotoSansAdlam-VF.ttf",
     src: "NotoSansAdlam-VF.ttf",
@@ -104,11 +48,6 @@
 }
 
 prebuilt_font {
-    name: "NotoSansArmenian-VF.ttf",
-    src: "NotoSansArmenian-VF.ttf",
-}
-
-prebuilt_font {
     name: "NotoSansAvestan-Regular.ttf",
     src: "NotoSansAvestan-Regular.ttf",
 }
@@ -134,13 +73,33 @@
 }
 
 prebuilt_font {
-    name: "NotoSansBengali-VF.ttf",
-    src: "NotoSansBengali-VF.ttf",
+    name: "NotoSansBengali-Bold.otf",
+    src: "NotoSansBengali-Bold.otf",
 }
 
 prebuilt_font {
-    name: "NotoSansBengaliUI-VF.ttf",
-    src: "NotoSansBengaliUI-VF.ttf",
+    name: "NotoSansBengali-Medium.otf",
+    src: "NotoSansBengali-Medium.otf",
+}
+
+prebuilt_font {
+    name: "NotoSansBengali-Regular.otf",
+    src: "NotoSansBengali-Regular.otf",
+}
+
+prebuilt_font {
+    name: "NotoSansBengaliUI-Bold.otf",
+    src: "NotoSansBengaliUI-Bold.otf",
+}
+
+prebuilt_font {
+    name: "NotoSansBengaliUI-Medium.otf",
+    src: "NotoSansBengaliUI-Medium.otf",
+}
+
+prebuilt_font {
+    name: "NotoSansBengaliUI-Regular.otf",
+    src: "NotoSansBengaliUI-Regular.otf",
 }
 
 prebuilt_font {
@@ -214,16 +173,6 @@
 }
 
 prebuilt_font {
-    name: "NotoSansDevanagari-VF.ttf",
-    src: "NotoSansDevanagari-VF.ttf",
-}
-
-prebuilt_font {
-    name: "NotoSansDevanagariUI-VF.ttf",
-    src: "NotoSansDevanagariUI-VF.ttf",
-}
-
-prebuilt_font {
     name: "NotoSansEgyptianHieroglyphs-Regular.ttf",
     src: "NotoSansEgyptianHieroglyphs-Regular.ttf",
 }
@@ -234,13 +183,13 @@
 }
 
 prebuilt_font {
-    name: "NotoSansEthiopic-VF.ttf",
-    src: "NotoSansEthiopic-VF.ttf",
+    name: "NotoSansEthiopic-Bold.ttf",
+    src: "NotoSansEthiopic-Bold.ttf",
 }
 
 prebuilt_font {
-    name: "NotoSansGeorgian-VF.ttf",
-    src: "NotoSansGeorgian-VF.ttf",
+    name: "NotoSansEthiopic-Regular.ttf",
+    src: "NotoSansEthiopic-Regular.ttf",
 }
 
 prebuilt_font {
@@ -254,11 +203,6 @@
 }
 
 prebuilt_font {
-    name: "NotoSansGrantha-Regular.ttf",
-    src: "NotoSansGrantha-Regular.ttf",
-}
-
-prebuilt_font {
     name: "NotoSansGujarati-Bold.ttf",
     src: "NotoSansGujarati-Bold.ttf",
 }
@@ -279,23 +223,23 @@
 }
 
 prebuilt_font {
-    name: "NotoSansGunjalaGondi-Regular.otf",
-    src: "NotoSansGunjalaGondi-Regular.otf",
+    name: "NotoSansGurmukhi-Bold.ttf",
+    src: "NotoSansGurmukhi-Bold.ttf",
 }
 
 prebuilt_font {
-    name: "NotoSansGurmukhi-VF.ttf",
-    src: "NotoSansGurmukhi-VF.ttf",
+    name: "NotoSansGurmukhi-Regular.ttf",
+    src: "NotoSansGurmukhi-Regular.ttf",
 }
 
 prebuilt_font {
-    name: "NotoSansGurmukhiUI-VF.ttf",
-    src: "NotoSansGurmukhiUI-VF.ttf",
+    name: "NotoSansGurmukhiUI-Bold.ttf",
+    src: "NotoSansGurmukhiUI-Bold.ttf",
 }
 
 prebuilt_font {
-    name: "NotoSansHanifiRohingya-Regular.otf",
-    src: "NotoSansHanifiRohingya-Regular.otf",
+    name: "NotoSansGurmukhiUI-Regular.ttf",
+    src: "NotoSansGurmukhiUI-Regular.ttf",
 }
 
 prebuilt_font {
@@ -309,16 +253,6 @@
 }
 
 prebuilt_font {
-    name: "NotoSansHebrew-Bold.ttf",
-    src: "NotoSansHebrew-Bold.ttf",
-}
-
-prebuilt_font {
-    name: "NotoSansHebrew-Regular.ttf",
-    src: "NotoSansHebrew-Regular.ttf",
-}
-
-prebuilt_font {
     name: "NotoSansImperialAramaic-Regular.ttf",
     src: "NotoSansImperialAramaic-Regular.ttf",
 }
@@ -344,13 +278,23 @@
 }
 
 prebuilt_font {
-    name: "NotoSansKannada-VF.ttf",
-    src: "NotoSansKannada-VF.ttf",
+    name: "NotoSansKannada-Bold.ttf",
+    src: "NotoSansKannada-Bold.ttf",
 }
 
 prebuilt_font {
-    name: "NotoSansKannadaUI-VF.ttf",
-    src: "NotoSansKannadaUI-VF.ttf",
+    name: "NotoSansKannada-Regular.ttf",
+    src: "NotoSansKannada-Regular.ttf",
+}
+
+prebuilt_font {
+    name: "NotoSansKannadaUI-Bold.ttf",
+    src: "NotoSansKannadaUI-Bold.ttf",
+}
+
+prebuilt_font {
+    name: "NotoSansKannadaUI-Regular.ttf",
+    src: "NotoSansKannadaUI-Regular.ttf",
 }
 
 prebuilt_font {
@@ -374,11 +318,6 @@
 }
 
 prebuilt_font {
-    name: "NotoSansKhojki-Regular.otf",
-    src: "NotoSansKhojki-Regular.otf",
-}
-
-prebuilt_font {
     name: "NotoSansLao-Bold.ttf",
     src: "NotoSansLao-Bold.ttf",
 }
@@ -434,13 +373,33 @@
 }
 
 prebuilt_font {
-    name: "NotoSansMalayalam-VF.ttf",
-    src: "NotoSansMalayalam-VF.ttf",
+    name: "NotoSansMalayalam-Bold.otf",
+    src: "NotoSansMalayalam-Bold.otf",
 }
 
 prebuilt_font {
-    name: "NotoSansMalayalamUI-VF.ttf",
-    src: "NotoSansMalayalamUI-VF.ttf",
+    name: "NotoSansMalayalam-Medium.otf",
+    src: "NotoSansMalayalam-Medium.otf",
+}
+
+prebuilt_font {
+    name: "NotoSansMalayalam-Regular.otf",
+    src: "NotoSansMalayalam-Regular.otf",
+}
+
+prebuilt_font {
+    name: "NotoSansMalayalamUI-Bold.otf",
+    src: "NotoSansMalayalamUI-Bold.otf",
+}
+
+prebuilt_font {
+    name: "NotoSansMalayalamUI-Medium.otf",
+    src: "NotoSansMalayalamUI-Medium.otf",
+}
+
+prebuilt_font {
+    name: "NotoSansMalayalamUI-Regular.otf",
+    src: "NotoSansMalayalamUI-Regular.otf",
 }
 
 prebuilt_font {
@@ -459,16 +418,6 @@
 }
 
 prebuilt_font {
-    name: "NotoSansMasaramGondi-Regular.otf",
-    src: "NotoSansMasaramGondi-Regular.otf",
-}
-
-prebuilt_font {
-    name: "NotoSansMedefaidrin-VF.ttf",
-    src: "NotoSansMedefaidrin-VF.ttf",
-}
-
-prebuilt_font {
     name: "NotoSansMeeteiMayek-Regular.ttf",
     src: "NotoSansMeeteiMayek-Regular.ttf",
 }
@@ -484,11 +433,6 @@
 }
 
 prebuilt_font {
-    name: "NotoSansModi-Regular.ttf",
-    src: "NotoSansModi-Regular.ttf",
-}
-
-prebuilt_font {
     name: "NotoSansMongolian-Regular.ttf",
     src: "NotoSansMongolian-Regular.ttf",
 }
@@ -679,13 +623,33 @@
 }
 
 prebuilt_font {
-    name: "NotoSansSinhala-VF.ttf",
-    src: "NotoSansSinhala-VF.ttf",
+    name: "NotoSansSinhala-Bold.otf",
+    src: "NotoSansSinhala-Bold.otf",
 }
 
 prebuilt_font {
-    name: "NotoSansSinhalaUI-VF.ttf",
-    src: "NotoSansSinhalaUI-VF.ttf",
+    name: "NotoSansSinhala-Regular.otf",
+    src: "NotoSansSinhala-Regular.otf",
+}
+
+prebuilt_font {
+    name: "NotoSansSinhala-Medium.otf",
+    src: "NotoSansSinhala-Medium.otf",
+}
+
+prebuilt_font {
+    name: "NotoSansSinhalaUI-Bold.otf",
+    src: "NotoSansSinhalaUI-Bold.otf",
+}
+
+prebuilt_font {
+    name: "NotoSansSinhalaUI-Medium.otf",
+    src: "NotoSansSinhalaUI-Medium.otf",
+}
+
+prebuilt_font {
+    name: "NotoSansSinhalaUI-Regular.otf",
+    src: "NotoSansSinhalaUI-Regular.otf",
 }
 
 prebuilt_font {
@@ -694,11 +658,6 @@
 }
 
 prebuilt_font {
-    name: "NotoSansSoyombo-VF.ttf",
-    src: "NotoSansSoyombo-VF.ttf",
-}
-
-prebuilt_font {
     name: "NotoSansSundanese-Regular.ttf",
     src: "NotoSansSundanese-Regular.ttf",
 }
@@ -709,16 +668,6 @@
 }
 
 prebuilt_font {
-    name: "NotoSansSymbols-Regular-Subsetted.ttf",
-    src: "NotoSansSymbols-Regular-Subsetted.ttf",
-}
-
-prebuilt_font {
-    name: "NotoSansSymbols-Regular-Subsetted2.ttf",
-    src: "NotoSansSymbols-Regular-Subsetted2.ttf",
-}
-
-prebuilt_font {
     name: "NotoSansSyriacEastern-Regular.ttf",
     src: "NotoSansSyriacEastern-Regular.ttf",
 }
@@ -759,28 +708,53 @@
 }
 
 prebuilt_font {
-    name: "NotoSansTakri-VF.ttf",
-    src: "NotoSansTakri-VF.ttf",
+    name: "NotoSansTamil-Bold.otf",
+    src: "NotoSansTamil-Bold.otf",
 }
 
 prebuilt_font {
-    name: "NotoSansTamil-VF.ttf",
-    src: "NotoSansTamil-VF.ttf",
+    name: "NotoSansTamil-Medium.otf",
+    src: "NotoSansTamil-Medium.otf",
 }
 
 prebuilt_font {
-    name: "NotoSansTamilUI-VF.ttf",
-    src: "NotoSansTamilUI-VF.ttf",
+    name: "NotoSansTamil-Regular.otf",
+    src: "NotoSansTamil-Regular.otf",
 }
 
 prebuilt_font {
-    name: "NotoSansTelugu-VF.ttf",
-    src: "NotoSansTelugu-VF.ttf",
+    name: "NotoSansTamilUI-Bold.otf",
+    src: "NotoSansTamilUI-Bold.otf",
 }
 
 prebuilt_font {
-    name: "NotoSansTeluguUI-VF.ttf",
-    src: "NotoSansTeluguUI-VF.ttf",
+    name: "NotoSansTamilUI-Medium.otf",
+    src: "NotoSansTamilUI-Medium.otf",
+}
+
+prebuilt_font {
+    name: "NotoSansTamilUI-Regular.otf",
+    src: "NotoSansTamilUI-Regular.otf",
+}
+
+prebuilt_font {
+    name: "NotoSansTelugu-Bold.ttf",
+    src: "NotoSansTelugu-Bold.ttf",
+}
+
+prebuilt_font {
+    name: "NotoSansTelugu-Regular.ttf",
+    src: "NotoSansTelugu-Regular.ttf",
+}
+
+prebuilt_font {
+    name: "NotoSansTeluguUI-Bold.ttf",
+    src: "NotoSansTeluguUI-Bold.ttf",
+}
+
+prebuilt_font {
+    name: "NotoSansTeluguUI-Regular.ttf",
+    src: "NotoSansTeluguUI-Regular.ttf",
 }
 
 prebuilt_font {
@@ -794,28 +768,13 @@
 }
 
 prebuilt_font {
-    name: "NotoSansThai-Bold.ttf",
-    src: "NotoSansThai-Bold.ttf",
+    name: "NotoSansTibetan-Bold.ttf",
+    src: "NotoSansTibetan-Bold.ttf",
 }
 
 prebuilt_font {
-    name: "NotoSansThai-Regular.ttf",
-    src: "NotoSansThai-Regular.ttf",
-}
-
-prebuilt_font {
-    name: "NotoSansThaiUI-Bold.ttf",
-    src: "NotoSansThaiUI-Bold.ttf",
-}
-
-prebuilt_font {
-    name: "NotoSansThaiUI-Regular.ttf",
-    src: "NotoSansThaiUI-Regular.ttf",
-}
-
-prebuilt_font {
-    name: "NotoSansTifinagh-Regular.otf",
-    src: "NotoSansTifinagh-Regular.otf",
+    name: "NotoSansTibetan-Regular.ttf",
+    src: "NotoSansTibetan-Regular.ttf",
 }
 
 prebuilt_font {
@@ -829,6 +788,151 @@
 }
 
 prebuilt_font {
+    name: "NotoSansYi-Regular.ttf",
+    src: "NotoSansYi-Regular.ttf",
+}
+
+prebuilt_font {
+    name: "NotoNaskhArabic-Regular.ttf",
+    src: "NotoNaskhArabic-Regular.ttf",
+}
+
+prebuilt_font {
+    name: "NotoNaskhArabic-Bold.ttf",
+    src: "NotoNaskhArabic-Bold.ttf",
+}
+
+prebuilt_font {
+    name: "NotoNaskhArabicUI-Regular.ttf",
+    src: "NotoNaskhArabicUI-Regular.ttf",
+}
+
+prebuilt_font {
+    name: "NotoNaskhArabicUI-Bold.ttf",
+    src: "NotoNaskhArabicUI-Bold.ttf",
+}
+
+prebuilt_font {
+    name: "NotoSansArmenian-Regular.otf",
+    src: "NotoSansArmenian-Regular.otf",
+}
+
+prebuilt_font {
+    name: "NotoSansArmenian-Bold.otf",
+    src: "NotoSansArmenian-Bold.otf",
+}
+
+prebuilt_font {
+    name: "NotoSansArmenian-Medium.otf",
+    src: "NotoSansArmenian-Medium.otf",
+}
+
+prebuilt_font {
+    name: "NotoSansDevanagari-Regular.otf",
+    src: "NotoSansDevanagari-Regular.otf",
+}
+
+prebuilt_font {
+    name: "NotoSansDevanagari-Bold.otf",
+    src: "NotoSansDevanagari-Bold.otf",
+}
+
+prebuilt_font {
+    name: "NotoSansDevanagari-Medium.otf",
+    src: "NotoSansDevanagari-Medium.otf",
+}
+
+prebuilt_font {
+    name: "NotoSansDevanagariUI-Regular.otf",
+    src: "NotoSansDevanagariUI-Regular.otf",
+}
+
+prebuilt_font {
+    name: "NotoSansDevanagariUI-Bold.otf",
+    src: "NotoSansDevanagariUI-Bold.otf",
+}
+
+prebuilt_font {
+    name: "NotoSansDevanagariUI-Medium.otf",
+    src: "NotoSansDevanagariUI-Medium.otf",
+}
+
+prebuilt_font {
+    name: "NotoSansGeorgian-VF.ttf",
+    src: "NotoSansGeorgian-VF.ttf",
+}
+
+prebuilt_font {
+    name: "NotoSansHebrew-Regular.ttf",
+    src: "NotoSansHebrew-Regular.ttf",
+}
+
+prebuilt_font {
+    name: "NotoSansHebrew-Bold.ttf",
+    src: "NotoSansHebrew-Bold.ttf",
+}
+
+prebuilt_font {
+    name: "NotoSansSymbols-Regular-Subsetted.ttf",
+    src: "NotoSansSymbols-Regular-Subsetted.ttf",
+}
+
+prebuilt_font {
+    name: "NotoSansSymbols-Regular-Subsetted2.ttf",
+    src: "NotoSansSymbols-Regular-Subsetted2.ttf",
+}
+
+prebuilt_font {
+    name: "NotoSansThai-Regular.ttf",
+    src: "NotoSansThai-Regular.ttf",
+}
+
+prebuilt_font {
+    name: "NotoSansThai-Bold.ttf",
+    src: "NotoSansThai-Bold.ttf",
+}
+
+prebuilt_font {
+    name: "NotoSansThaiUI-Regular.ttf",
+    src: "NotoSansThaiUI-Regular.ttf",
+}
+
+prebuilt_font {
+    name: "NotoSansThaiUI-Bold.ttf",
+    src: "NotoSansThaiUI-Bold.ttf",
+}
+
+prebuilt_font {
+    name: "NotoSerifArmenian-Bold.otf",
+    src: "NotoSerifArmenian-Bold.otf",
+}
+
+prebuilt_font {
+    name: "NotoSansGunjalaGondi-Regular.otf",
+    src: "NotoSansGunjalaGondi-Regular.otf",
+}
+
+prebuilt_font {
+    name: "NotoSansHanifiRohingya-Regular.otf",
+    src: "NotoSansHanifiRohingya-Regular.otf",
+}
+
+prebuilt_font {
+    name: "NotoSansKhojki-Regular.otf",
+    src: "NotoSansKhojki-Regular.otf",
+}
+
+prebuilt_font {
+    name: "NotoSansMasaramGondi-Regular.otf",
+    src: "NotoSansMasaramGondi-Regular.otf",
+}
+
+prebuilt_font {
+    name: "NotoSansTifinagh-Regular.otf",
+    src: "NotoSansTifinagh-Regular.otf",
+}
+
+prebuilt_font {
     name: "NotoSansWancho-Regular.otf",
     src: "NotoSansWancho-Regular.otf",
 }
@@ -839,33 +943,38 @@
 }
 
 prebuilt_font {
-    name: "NotoSansYi-Regular.ttf",
-    src: "NotoSansYi-Regular.ttf",
+    name: "NotoSerifArmenian-Regular.otf",
+    src: "NotoSerifArmenian-Regular.otf",
 }
 
 prebuilt_font {
-    name: "NotoSerifArmenian-VF.ttf",
-    src: "NotoSerifArmenian-VF.ttf",
+    name: "NotoSerifBengali-Bold.ttf",
+    src: "NotoSerifBengali-Bold.ttf",
 }
 
 prebuilt_font {
-    name: "NotoSerifBengali-VF.ttf",
-    src: "NotoSerifBengali-VF.ttf",
+    name: "NotoSerifBengali-Regular.ttf",
+    src: "NotoSerifBengali-Regular.ttf",
 }
 
 prebuilt_font {
-    name: "NotoSerifDevanagari-VF.ttf",
-    src: "NotoSerifDevanagari-VF.ttf",
+    name: "NotoSerifDevanagari-Bold.ttf",
+    src: "NotoSerifDevanagari-Bold.ttf",
 }
 
 prebuilt_font {
-    name: "NotoSerifDogra-Regular.ttf",
-    src: "NotoSerifDogra-Regular.ttf",
+    name: "NotoSerifDevanagari-Regular.ttf",
+    src: "NotoSerifDevanagari-Regular.ttf",
 }
 
 prebuilt_font {
-    name: "NotoSerifEthiopic-VF.ttf",
-    src: "NotoSerifEthiopic-VF.ttf",
+    name: "NotoSerifEthiopic-Bold.otf",
+    src: "NotoSerifEthiopic-Bold.otf",
+}
+
+prebuilt_font {
+    name: "NotoSerifEthiopic-Regular.otf",
+    src: "NotoSerifEthiopic-Regular.otf",
 }
 
 prebuilt_font {
@@ -874,13 +983,23 @@
 }
 
 prebuilt_font {
-    name: "NotoSerifGujarati-VF.ttf",
-    src: "NotoSerifGujarati-VF.ttf",
+    name: "NotoSerifGujarati-Bold.ttf",
+    src: "NotoSerifGujarati-Bold.ttf",
 }
 
 prebuilt_font {
-    name: "NotoSerifGurmukhi-VF.ttf",
-    src: "NotoSerifGurmukhi-VF.ttf",
+    name: "NotoSerifGujarati-Regular.ttf",
+    src: "NotoSerifGujarati-Regular.ttf",
+}
+
+prebuilt_font {
+    name: "NotoSerifGurmukhi-Bold.otf",
+    src: "NotoSerifGurmukhi-Bold.otf",
+}
+
+prebuilt_font {
+    name: "NotoSerifGurmukhi-Regular.otf",
+    src: "NotoSerifGurmukhi-Regular.otf",
 }
 
 prebuilt_font {
@@ -894,8 +1013,13 @@
 }
 
 prebuilt_font {
-    name: "NotoSerifKannada-VF.ttf",
-    src: "NotoSerifKannada-VF.ttf",
+    name: "NotoSerifKannada-Bold.ttf",
+    src: "NotoSerifKannada-Bold.ttf",
+}
+
+prebuilt_font {
+    name: "NotoSerifKannada-Regular.ttf",
+    src: "NotoSerifKannada-Regular.ttf",
 }
 
 prebuilt_font {
@@ -919,8 +1043,13 @@
 }
 
 prebuilt_font {
-    name: "NotoSerifMalayalam-VF.ttf",
-    src: "NotoSerifMalayalam-VF.ttf",
+    name: "NotoSerifMalayalam-Bold.ttf",
+    src: "NotoSerifMalayalam-Bold.ttf",
+}
+
+prebuilt_font {
+    name: "NotoSerifMalayalam-Regular.ttf",
+    src: "NotoSerifMalayalam-Regular.ttf",
 }
 
 prebuilt_font {
@@ -934,23 +1063,33 @@
 }
 
 prebuilt_font {
-    name: "NotoSerifNyiakengPuachueHmong-VF.ttf",
-    src: "NotoSerifNyiakengPuachueHmong-VF.ttf",
+    name: "NotoSerifSinhala-Bold.otf",
+    src: "NotoSerifSinhala-Bold.otf",
 }
 
 prebuilt_font {
-    name: "NotoSerifSinhala-VF.ttf",
-    src: "NotoSerifSinhala-VF.ttf",
+    name: "NotoSerifSinhala-Regular.otf",
+    src: "NotoSerifSinhala-Regular.otf",
 }
 
 prebuilt_font {
-    name: "NotoSerifTamil-VF.ttf",
-    src: "NotoSerifTamil-VF.ttf",
+    name: "NotoSerifTamil-Bold.otf",
+    src: "NotoSerifTamil-Bold.otf",
 }
 
 prebuilt_font {
-    name: "NotoSerifTelugu-VF.ttf",
-    src: "NotoSerifTelugu-VF.ttf",
+    name: "NotoSerifTamil-Regular.otf",
+    src: "NotoSerifTamil-Regular.otf",
+}
+
+prebuilt_font {
+    name: "NotoSerifTelugu-Bold.ttf",
+    src: "NotoSerifTelugu-Bold.ttf",
+}
+
+prebuilt_font {
+    name: "NotoSerifTelugu-Regular.ttf",
+    src: "NotoSerifTelugu-Regular.ttf",
 }
 
 prebuilt_font {
@@ -962,13 +1101,3 @@
     name: "NotoSerifThai-Regular.ttf",
     src: "NotoSerifThai-Regular.ttf",
 }
-
-prebuilt_font {
-    name: "NotoSerifTibetan-VF.ttf",
-    src: "NotoSerifTibetan-VF.ttf",
-}
-
-prebuilt_font {
-    name: "NotoSerifYezidi-VF.ttf",
-    src: "NotoSerifYezidi-VF.ttf",
-}
diff --git a/other/NotoSansArmenian-Bold.otf b/other/NotoSansArmenian-Bold.otf
new file mode 100644
index 0000000..11700a9
--- /dev/null
+++ b/other/NotoSansArmenian-Bold.otf
Binary files differ
diff --git a/other/NotoSansArmenian-Medium.otf b/other/NotoSansArmenian-Medium.otf
new file mode 100644
index 0000000..17dbffb
--- /dev/null
+++ b/other/NotoSansArmenian-Medium.otf
Binary files differ
diff --git a/other/NotoSansArmenian-Regular.otf b/other/NotoSansArmenian-Regular.otf
new file mode 100644
index 0000000..60bb53f
--- /dev/null
+++ b/other/NotoSansArmenian-Regular.otf
Binary files differ
diff --git a/other/NotoSansArmenian-VF.ttf b/other/NotoSansArmenian-VF.ttf
deleted file mode 100644
index 769660a..0000000
--- a/other/NotoSansArmenian-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansBengali-Bold.otf b/other/NotoSansBengali-Bold.otf
new file mode 100644
index 0000000..03fa2ce
--- /dev/null
+++ b/other/NotoSansBengali-Bold.otf
Binary files differ
diff --git a/other/NotoSansBengali-Medium.otf b/other/NotoSansBengali-Medium.otf
new file mode 100644
index 0000000..fa98001
--- /dev/null
+++ b/other/NotoSansBengali-Medium.otf
Binary files differ
diff --git a/other/NotoSansBengali-Regular.otf b/other/NotoSansBengali-Regular.otf
new file mode 100644
index 0000000..be3fde0
--- /dev/null
+++ b/other/NotoSansBengali-Regular.otf
Binary files differ
diff --git a/other/NotoSansBengali-VF.ttf b/other/NotoSansBengali-VF.ttf
deleted file mode 100644
index a034779..0000000
--- a/other/NotoSansBengali-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansBengaliUI-Bold.otf b/other/NotoSansBengaliUI-Bold.otf
new file mode 100644
index 0000000..ea58c5a
--- /dev/null
+++ b/other/NotoSansBengaliUI-Bold.otf
Binary files differ
diff --git a/other/NotoSansBengaliUI-Medium.otf b/other/NotoSansBengaliUI-Medium.otf
new file mode 100644
index 0000000..ba35bab
--- /dev/null
+++ b/other/NotoSansBengaliUI-Medium.otf
Binary files differ
diff --git a/other/NotoSansBengaliUI-Regular.otf b/other/NotoSansBengaliUI-Regular.otf
new file mode 100644
index 0000000..491fd93
--- /dev/null
+++ b/other/NotoSansBengaliUI-Regular.otf
Binary files differ
diff --git a/other/NotoSansBengaliUI-VF.ttf b/other/NotoSansBengaliUI-VF.ttf
deleted file mode 100644
index a2bd0c3..0000000
--- a/other/NotoSansBengaliUI-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansDevanagari-Bold.otf b/other/NotoSansDevanagari-Bold.otf
new file mode 100644
index 0000000..383f279
--- /dev/null
+++ b/other/NotoSansDevanagari-Bold.otf
Binary files differ
diff --git a/other/NotoSansDevanagari-Medium.otf b/other/NotoSansDevanagari-Medium.otf
new file mode 100644
index 0000000..c454f83
--- /dev/null
+++ b/other/NotoSansDevanagari-Medium.otf
Binary files differ
diff --git a/other/NotoSansDevanagari-Regular.otf b/other/NotoSansDevanagari-Regular.otf
new file mode 100644
index 0000000..68b2c13
--- /dev/null
+++ b/other/NotoSansDevanagari-Regular.otf
Binary files differ
diff --git a/other/NotoSansDevanagari-VF.ttf b/other/NotoSansDevanagari-VF.ttf
deleted file mode 100644
index f871a48..0000000
--- a/other/NotoSansDevanagari-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansDevanagariUI-Bold.otf b/other/NotoSansDevanagariUI-Bold.otf
new file mode 100644
index 0000000..113ebb4
--- /dev/null
+++ b/other/NotoSansDevanagariUI-Bold.otf
Binary files differ
diff --git a/other/NotoSansDevanagariUI-Medium.otf b/other/NotoSansDevanagariUI-Medium.otf
new file mode 100644
index 0000000..48658e8
--- /dev/null
+++ b/other/NotoSansDevanagariUI-Medium.otf
Binary files differ
diff --git a/other/NotoSansDevanagariUI-Regular.otf b/other/NotoSansDevanagariUI-Regular.otf
new file mode 100644
index 0000000..eda9bef
--- /dev/null
+++ b/other/NotoSansDevanagariUI-Regular.otf
Binary files differ
diff --git a/other/NotoSansDevanagariUI-VF.ttf b/other/NotoSansDevanagariUI-VF.ttf
deleted file mode 100644
index 1c023cf..0000000
--- a/other/NotoSansDevanagariUI-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansEthiopic-Bold.ttf b/other/NotoSansEthiopic-Bold.ttf
new file mode 100644
index 0000000..6465bce
--- /dev/null
+++ b/other/NotoSansEthiopic-Bold.ttf
Binary files differ
diff --git a/other/NotoSansEthiopic-Regular.ttf b/other/NotoSansEthiopic-Regular.ttf
new file mode 100644
index 0000000..1c6194d
--- /dev/null
+++ b/other/NotoSansEthiopic-Regular.ttf
Binary files differ
diff --git a/other/NotoSansEthiopic-VF.ttf b/other/NotoSansEthiopic-VF.ttf
deleted file mode 100644
index e2f46a9..0000000
--- a/other/NotoSansEthiopic-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansGrantha-Regular.ttf b/other/NotoSansGrantha-Regular.ttf
deleted file mode 100644
index 3039d73..0000000
--- a/other/NotoSansGrantha-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansGurmukhi-Bold.ttf b/other/NotoSansGurmukhi-Bold.ttf
new file mode 100644
index 0000000..f9ae322
--- /dev/null
+++ b/other/NotoSansGurmukhi-Bold.ttf
Binary files differ
diff --git a/other/NotoSansGurmukhi-Regular.ttf b/other/NotoSansGurmukhi-Regular.ttf
new file mode 100644
index 0000000..b86bbc6
--- /dev/null
+++ b/other/NotoSansGurmukhi-Regular.ttf
Binary files differ
diff --git a/other/NotoSansGurmukhi-VF.ttf b/other/NotoSansGurmukhi-VF.ttf
deleted file mode 100644
index ba48e40..0000000
--- a/other/NotoSansGurmukhi-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansGurmukhiUI-Bold.ttf b/other/NotoSansGurmukhiUI-Bold.ttf
new file mode 100644
index 0000000..9064d6b
--- /dev/null
+++ b/other/NotoSansGurmukhiUI-Bold.ttf
Binary files differ
diff --git a/other/NotoSansGurmukhiUI-Regular.ttf b/other/NotoSansGurmukhiUI-Regular.ttf
new file mode 100644
index 0000000..6de832d
--- /dev/null
+++ b/other/NotoSansGurmukhiUI-Regular.ttf
Binary files differ
diff --git a/other/NotoSansGurmukhiUI-VF.ttf b/other/NotoSansGurmukhiUI-VF.ttf
deleted file mode 100644
index 930289f..0000000
--- a/other/NotoSansGurmukhiUI-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansKannada-Bold.ttf b/other/NotoSansKannada-Bold.ttf
new file mode 100644
index 0000000..b3c1032
--- /dev/null
+++ b/other/NotoSansKannada-Bold.ttf
Binary files differ
diff --git a/other/NotoSansKannada-Regular.ttf b/other/NotoSansKannada-Regular.ttf
new file mode 100644
index 0000000..be9d761
--- /dev/null
+++ b/other/NotoSansKannada-Regular.ttf
Binary files differ
diff --git a/other/NotoSansKannada-VF.ttf b/other/NotoSansKannada-VF.ttf
deleted file mode 100644
index 7447a89..0000000
--- a/other/NotoSansKannada-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansKannadaUI-Bold.ttf b/other/NotoSansKannadaUI-Bold.ttf
new file mode 100644
index 0000000..715f013
--- /dev/null
+++ b/other/NotoSansKannadaUI-Bold.ttf
Binary files differ
diff --git a/other/NotoSansKannadaUI-Regular.ttf b/other/NotoSansKannadaUI-Regular.ttf
new file mode 100644
index 0000000..bea2878
--- /dev/null
+++ b/other/NotoSansKannadaUI-Regular.ttf
Binary files differ
diff --git a/other/NotoSansKannadaUI-VF.ttf b/other/NotoSansKannadaUI-VF.ttf
deleted file mode 100644
index e7f6400..0000000
--- a/other/NotoSansKannadaUI-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansMalayalam-Bold.otf b/other/NotoSansMalayalam-Bold.otf
new file mode 100644
index 0000000..f748b3b
--- /dev/null
+++ b/other/NotoSansMalayalam-Bold.otf
Binary files differ
diff --git a/other/NotoSansMalayalam-Medium.otf b/other/NotoSansMalayalam-Medium.otf
new file mode 100644
index 0000000..e8cd727
--- /dev/null
+++ b/other/NotoSansMalayalam-Medium.otf
Binary files differ
diff --git a/other/NotoSansMalayalam-Regular.otf b/other/NotoSansMalayalam-Regular.otf
new file mode 100644
index 0000000..1eaa950
--- /dev/null
+++ b/other/NotoSansMalayalam-Regular.otf
Binary files differ
diff --git a/other/NotoSansMalayalam-VF.ttf b/other/NotoSansMalayalam-VF.ttf
deleted file mode 100644
index 8221617..0000000
--- a/other/NotoSansMalayalam-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansMalayalamUI-Bold.otf b/other/NotoSansMalayalamUI-Bold.otf
new file mode 100644
index 0000000..669bf1f
--- /dev/null
+++ b/other/NotoSansMalayalamUI-Bold.otf
Binary files differ
diff --git a/other/NotoSansMalayalamUI-Medium.otf b/other/NotoSansMalayalamUI-Medium.otf
new file mode 100644
index 0000000..0468ce9
--- /dev/null
+++ b/other/NotoSansMalayalamUI-Medium.otf
Binary files differ
diff --git a/other/NotoSansMalayalamUI-Regular.otf b/other/NotoSansMalayalamUI-Regular.otf
new file mode 100644
index 0000000..3e22f89
--- /dev/null
+++ b/other/NotoSansMalayalamUI-Regular.otf
Binary files differ
diff --git a/other/NotoSansMalayalamUI-VF.ttf b/other/NotoSansMalayalamUI-VF.ttf
deleted file mode 100644
index 81abb01..0000000
--- a/other/NotoSansMalayalamUI-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansMedefaidrin-VF.ttf b/other/NotoSansMedefaidrin-VF.ttf
deleted file mode 100644
index 7dda52d..0000000
--- a/other/NotoSansMedefaidrin-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansModi-Regular.ttf b/other/NotoSansModi-Regular.ttf
deleted file mode 100644
index dd4e340..0000000
--- a/other/NotoSansModi-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansSinhala-Bold.otf b/other/NotoSansSinhala-Bold.otf
new file mode 100644
index 0000000..1ccfb67
--- /dev/null
+++ b/other/NotoSansSinhala-Bold.otf
Binary files differ
diff --git a/other/NotoSansSinhala-Medium.otf b/other/NotoSansSinhala-Medium.otf
new file mode 100644
index 0000000..7b62820
--- /dev/null
+++ b/other/NotoSansSinhala-Medium.otf
Binary files differ
diff --git a/other/NotoSansSinhala-Regular.otf b/other/NotoSansSinhala-Regular.otf
new file mode 100644
index 0000000..027fd25
--- /dev/null
+++ b/other/NotoSansSinhala-Regular.otf
Binary files differ
diff --git a/other/NotoSansSinhala-VF.ttf b/other/NotoSansSinhala-VF.ttf
deleted file mode 100644
index cee6ff2..0000000
--- a/other/NotoSansSinhala-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansSinhalaUI-Bold.otf b/other/NotoSansSinhalaUI-Bold.otf
new file mode 100644
index 0000000..8d22bf2
--- /dev/null
+++ b/other/NotoSansSinhalaUI-Bold.otf
Binary files differ
diff --git a/other/NotoSansSinhalaUI-Medium.otf b/other/NotoSansSinhalaUI-Medium.otf
new file mode 100644
index 0000000..8b5e701
--- /dev/null
+++ b/other/NotoSansSinhalaUI-Medium.otf
Binary files differ
diff --git a/other/NotoSansSinhalaUI-Regular.otf b/other/NotoSansSinhalaUI-Regular.otf
new file mode 100644
index 0000000..925536d
--- /dev/null
+++ b/other/NotoSansSinhalaUI-Regular.otf
Binary files differ
diff --git a/other/NotoSansSinhalaUI-VF.ttf b/other/NotoSansSinhalaUI-VF.ttf
deleted file mode 100644
index 681e121..0000000
--- a/other/NotoSansSinhalaUI-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansSoyombo-VF.ttf b/other/NotoSansSoyombo-VF.ttf
deleted file mode 100644
index cba7dc0..0000000
--- a/other/NotoSansSoyombo-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansSymbols-Regular-Subsetted.ttf b/other/NotoSansSymbols-Regular-Subsetted.ttf
index b98dccc..ebea59b 100644
--- a/other/NotoSansSymbols-Regular-Subsetted.ttf
+++ b/other/NotoSansSymbols-Regular-Subsetted.ttf
Binary files differ
diff --git a/other/NotoSansSymbols-Regular-Subsetted2.ttf b/other/NotoSansSymbols-Regular-Subsetted2.ttf
index 1b5d2a3..cc3e29f 100644
--- a/other/NotoSansSymbols-Regular-Subsetted2.ttf
+++ b/other/NotoSansSymbols-Regular-Subsetted2.ttf
Binary files differ
diff --git a/other/NotoSansTakri-VF.ttf b/other/NotoSansTakri-VF.ttf
deleted file mode 100644
index 73f5fbe..0000000
--- a/other/NotoSansTakri-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansTamil-Bold.otf b/other/NotoSansTamil-Bold.otf
new file mode 100644
index 0000000..c9611a3
--- /dev/null
+++ b/other/NotoSansTamil-Bold.otf
Binary files differ
diff --git a/other/NotoSansTamil-Medium.otf b/other/NotoSansTamil-Medium.otf
new file mode 100644
index 0000000..1e84a9b
--- /dev/null
+++ b/other/NotoSansTamil-Medium.otf
Binary files differ
diff --git a/other/NotoSansTamil-Regular.otf b/other/NotoSansTamil-Regular.otf
new file mode 100644
index 0000000..b77a33c
--- /dev/null
+++ b/other/NotoSansTamil-Regular.otf
Binary files differ
diff --git a/other/NotoSansTamil-VF.ttf b/other/NotoSansTamil-VF.ttf
deleted file mode 100644
index da4ee1c..0000000
--- a/other/NotoSansTamil-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansTamilUI-Bold.otf b/other/NotoSansTamilUI-Bold.otf
new file mode 100644
index 0000000..665d6fd
--- /dev/null
+++ b/other/NotoSansTamilUI-Bold.otf
Binary files differ
diff --git a/other/NotoSansTamilUI-Medium.otf b/other/NotoSansTamilUI-Medium.otf
new file mode 100644
index 0000000..64997d3
--- /dev/null
+++ b/other/NotoSansTamilUI-Medium.otf
Binary files differ
diff --git a/other/NotoSansTamilUI-Regular.otf b/other/NotoSansTamilUI-Regular.otf
new file mode 100644
index 0000000..7ee7d4f
--- /dev/null
+++ b/other/NotoSansTamilUI-Regular.otf
Binary files differ
diff --git a/other/NotoSansTamilUI-VF.ttf b/other/NotoSansTamilUI-VF.ttf
deleted file mode 100644
index e97c942..0000000
--- a/other/NotoSansTamilUI-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansTelugu-Bold.ttf b/other/NotoSansTelugu-Bold.ttf
new file mode 100644
index 0000000..cfb2588
--- /dev/null
+++ b/other/NotoSansTelugu-Bold.ttf
Binary files differ
diff --git a/other/NotoSansTelugu-Regular.ttf b/other/NotoSansTelugu-Regular.ttf
new file mode 100644
index 0000000..5134cbd
--- /dev/null
+++ b/other/NotoSansTelugu-Regular.ttf
Binary files differ
diff --git a/other/NotoSansTelugu-VF.ttf b/other/NotoSansTelugu-VF.ttf
deleted file mode 100644
index 591b80d..0000000
--- a/other/NotoSansTelugu-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansTeluguUI-Bold.ttf b/other/NotoSansTeluguUI-Bold.ttf
new file mode 100644
index 0000000..93e1886
--- /dev/null
+++ b/other/NotoSansTeluguUI-Bold.ttf
Binary files differ
diff --git a/other/NotoSansTeluguUI-Regular.ttf b/other/NotoSansTeluguUI-Regular.ttf
new file mode 100644
index 0000000..aa5fea2
--- /dev/null
+++ b/other/NotoSansTeluguUI-Regular.ttf
Binary files differ
diff --git a/other/NotoSansTeluguUI-VF.ttf b/other/NotoSansTeluguUI-VF.ttf
deleted file mode 100644
index 1a47312..0000000
--- a/other/NotoSansTeluguUI-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansTibetan-Bold.ttf b/other/NotoSansTibetan-Bold.ttf
new file mode 100644
index 0000000..7a5144d
--- /dev/null
+++ b/other/NotoSansTibetan-Bold.ttf
Binary files differ
diff --git a/other/NotoSansTibetan-Regular.ttf b/other/NotoSansTibetan-Regular.ttf
new file mode 100644
index 0000000..65f0e93
--- /dev/null
+++ b/other/NotoSansTibetan-Regular.ttf
Binary files differ
diff --git a/other/NotoSansWarangCiti-Regular.otf b/other/NotoSansWarangCiti-Regular.otf
index 2a3b78a..5da59fe 100644
--- a/other/NotoSansWarangCiti-Regular.otf
+++ b/other/NotoSansWarangCiti-Regular.otf
Binary files differ
diff --git a/other/NotoSerifArmenian-Bold.otf b/other/NotoSerifArmenian-Bold.otf
new file mode 100644
index 0000000..7df98e3
--- /dev/null
+++ b/other/NotoSerifArmenian-Bold.otf
Binary files differ
diff --git a/other/NotoSerifArmenian-Regular.otf b/other/NotoSerifArmenian-Regular.otf
new file mode 100644
index 0000000..05df944
--- /dev/null
+++ b/other/NotoSerifArmenian-Regular.otf
Binary files differ
diff --git a/other/NotoSerifArmenian-VF.ttf b/other/NotoSerifArmenian-VF.ttf
deleted file mode 100644
index 5525d52..0000000
--- a/other/NotoSerifArmenian-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifBengali-Bold.ttf b/other/NotoSerifBengali-Bold.ttf
new file mode 100644
index 0000000..05bb9d5
--- /dev/null
+++ b/other/NotoSerifBengali-Bold.ttf
Binary files differ
diff --git a/other/NotoSerifBengali-Regular.ttf b/other/NotoSerifBengali-Regular.ttf
new file mode 100644
index 0000000..56670b7
--- /dev/null
+++ b/other/NotoSerifBengali-Regular.ttf
Binary files differ
diff --git a/other/NotoSerifBengali-VF.ttf b/other/NotoSerifBengali-VF.ttf
deleted file mode 100644
index 24c0774..0000000
--- a/other/NotoSerifBengali-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifDevanagari-Bold.ttf b/other/NotoSerifDevanagari-Bold.ttf
new file mode 100644
index 0000000..2016dd9
--- /dev/null
+++ b/other/NotoSerifDevanagari-Bold.ttf
Binary files differ
diff --git a/other/NotoSerifDevanagari-Regular.ttf b/other/NotoSerifDevanagari-Regular.ttf
new file mode 100644
index 0000000..ebb66f7
--- /dev/null
+++ b/other/NotoSerifDevanagari-Regular.ttf
Binary files differ
diff --git a/other/NotoSerifDevanagari-VF.ttf b/other/NotoSerifDevanagari-VF.ttf
deleted file mode 100644
index bf013a7..0000000
--- a/other/NotoSerifDevanagari-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifDogra-Regular.ttf b/other/NotoSerifDogra-Regular.ttf
deleted file mode 100644
index 74ab75c..0000000
--- a/other/NotoSerifDogra-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifEthiopic-Bold.otf b/other/NotoSerifEthiopic-Bold.otf
new file mode 100644
index 0000000..76758eb
--- /dev/null
+++ b/other/NotoSerifEthiopic-Bold.otf
Binary files differ
diff --git a/other/NotoSerifEthiopic-Regular.otf b/other/NotoSerifEthiopic-Regular.otf
new file mode 100644
index 0000000..0d86e2e
--- /dev/null
+++ b/other/NotoSerifEthiopic-Regular.otf
Binary files differ
diff --git a/other/NotoSerifEthiopic-VF.ttf b/other/NotoSerifEthiopic-VF.ttf
deleted file mode 100644
index 10b5e26..0000000
--- a/other/NotoSerifEthiopic-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifGujarati-Bold.ttf b/other/NotoSerifGujarati-Bold.ttf
new file mode 100644
index 0000000..4981a55
--- /dev/null
+++ b/other/NotoSerifGujarati-Bold.ttf
Binary files differ
diff --git a/other/NotoSerifGujarati-Regular.ttf b/other/NotoSerifGujarati-Regular.ttf
new file mode 100644
index 0000000..ccec6f7
--- /dev/null
+++ b/other/NotoSerifGujarati-Regular.ttf
Binary files differ
diff --git a/other/NotoSerifGujarati-VF.ttf b/other/NotoSerifGujarati-VF.ttf
deleted file mode 100644
index 5861501..0000000
--- a/other/NotoSerifGujarati-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifGurmukhi-Bold.otf b/other/NotoSerifGurmukhi-Bold.otf
new file mode 100644
index 0000000..d362ea2
--- /dev/null
+++ b/other/NotoSerifGurmukhi-Bold.otf
Binary files differ
diff --git a/other/NotoSerifGurmukhi-Regular.otf b/other/NotoSerifGurmukhi-Regular.otf
new file mode 100644
index 0000000..f2595e7
--- /dev/null
+++ b/other/NotoSerifGurmukhi-Regular.otf
Binary files differ
diff --git a/other/NotoSerifGurmukhi-VF.ttf b/other/NotoSerifGurmukhi-VF.ttf
deleted file mode 100644
index 6c104cc..0000000
--- a/other/NotoSerifGurmukhi-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifKannada-Bold.ttf b/other/NotoSerifKannada-Bold.ttf
new file mode 100644
index 0000000..c71ca76
--- /dev/null
+++ b/other/NotoSerifKannada-Bold.ttf
Binary files differ
diff --git a/other/NotoSerifKannada-Regular.ttf b/other/NotoSerifKannada-Regular.ttf
new file mode 100644
index 0000000..6f43122
--- /dev/null
+++ b/other/NotoSerifKannada-Regular.ttf
Binary files differ
diff --git a/other/NotoSerifKannada-VF.ttf b/other/NotoSerifKannada-VF.ttf
deleted file mode 100644
index c523ad7..0000000
--- a/other/NotoSerifKannada-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifMalayalam-Bold.ttf b/other/NotoSerifMalayalam-Bold.ttf
new file mode 100644
index 0000000..dff759a
--- /dev/null
+++ b/other/NotoSerifMalayalam-Bold.ttf
Binary files differ
diff --git a/other/NotoSerifMalayalam-Regular.ttf b/other/NotoSerifMalayalam-Regular.ttf
new file mode 100644
index 0000000..cd2e66f
--- /dev/null
+++ b/other/NotoSerifMalayalam-Regular.ttf
Binary files differ
diff --git a/other/NotoSerifMalayalam-VF.ttf b/other/NotoSerifMalayalam-VF.ttf
deleted file mode 100644
index e270f5d..0000000
--- a/other/NotoSerifMalayalam-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifNyiakengPuachueHmong-VF.ttf b/other/NotoSerifNyiakengPuachueHmong-VF.ttf
deleted file mode 100644
index e87a202..0000000
--- a/other/NotoSerifNyiakengPuachueHmong-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifSinhala-Bold.otf b/other/NotoSerifSinhala-Bold.otf
new file mode 100644
index 0000000..ec8a3f9
--- /dev/null
+++ b/other/NotoSerifSinhala-Bold.otf
Binary files differ
diff --git a/other/NotoSerifSinhala-Regular.otf b/other/NotoSerifSinhala-Regular.otf
new file mode 100644
index 0000000..876c153
--- /dev/null
+++ b/other/NotoSerifSinhala-Regular.otf
Binary files differ
diff --git a/other/NotoSerifSinhala-VF.ttf b/other/NotoSerifSinhala-VF.ttf
deleted file mode 100644
index 9109b83..0000000
--- a/other/NotoSerifSinhala-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifTamil-Bold.otf b/other/NotoSerifTamil-Bold.otf
new file mode 100644
index 0000000..d0d57cd
--- /dev/null
+++ b/other/NotoSerifTamil-Bold.otf
Binary files differ
diff --git a/other/NotoSerifTamil-Regular.otf b/other/NotoSerifTamil-Regular.otf
new file mode 100644
index 0000000..33b2b13
--- /dev/null
+++ b/other/NotoSerifTamil-Regular.otf
Binary files differ
diff --git a/other/NotoSerifTamil-VF.ttf b/other/NotoSerifTamil-VF.ttf
deleted file mode 100644
index 91acc2b..0000000
--- a/other/NotoSerifTamil-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifTelugu-Bold.ttf b/other/NotoSerifTelugu-Bold.ttf
new file mode 100644
index 0000000..a4e7e56
--- /dev/null
+++ b/other/NotoSerifTelugu-Bold.ttf
Binary files differ
diff --git a/other/NotoSerifTelugu-Regular.ttf b/other/NotoSerifTelugu-Regular.ttf
new file mode 100644
index 0000000..2234780
--- /dev/null
+++ b/other/NotoSerifTelugu-Regular.ttf
Binary files differ
diff --git a/other/NotoSerifTelugu-VF.ttf b/other/NotoSerifTelugu-VF.ttf
deleted file mode 100644
index 16a187b..0000000
--- a/other/NotoSerifTelugu-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifTibetan-VF.ttf b/other/NotoSerifTibetan-VF.ttf
deleted file mode 100644
index 6090383..0000000
--- a/other/NotoSerifTibetan-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifYezidi-VF.ttf b/other/NotoSerifYezidi-VF.ttf
deleted file mode 100644
index fabcbbb..0000000
--- a/other/NotoSerifYezidi-VF.ttf
+++ /dev/null
Binary files differ
diff --git a/other/subset_noto_sans_symbols.py b/other/subset_noto_sans_symbols.py
index 6cff884..1e0b395 100755
--- a/other/subset_noto_sans_symbols.py
+++ b/other/subset_noto_sans_symbols.py
@@ -19,13 +19,8 @@
 
 __author__ = 'roozbeh@google.com (Roozbeh Pournader)'
 
-import contextlib
 import os
 import sys
-import tempfile
-
-from fontTools import ttLib
-from pathlib import PurePosixPath
 
 from nototools import subset
 from nototools import unicode_data
@@ -142,15 +137,6 @@
                 android_emoji.add(int(codepoint, 16))
     return android_emoji
 
-def rename_postscript_name(source_font, target_font, new_name):
-    """Rename the post script name to given one"""
-    with contextlib.closing(ttLib.TTFont(source_font)) as ttf:
-      nameTable = ttf['name']
-      for name in nameTable.names:
-        if (name.nameID == 6 and name.platformID == 3 and name.platEncID == 1
-            and name.langID == 0x0409):
-          name.string = new_name
-      ttf.save(target_font)
 
 def main(argv):
     """Subset the Noto Symbols font.
@@ -182,27 +168,18 @@
 
     source_file_name = argv[1]
     target_file_name = argv[2]
-
-    tmp = tempfile.NamedTemporaryFile()
     subset.subset_font(
         source_file_name,
-        tmp.name,
+        target_file_name,
         include=target_coverage)
 
-    # Use given file name as the PostScript name.
-    postScriptName = PurePosixPath(target_file_name).stem
-    rename_postscript_name(tmp.name, target_file_name, postScriptName)
-
     second_subset_coverage = DEFAULT_EMOJI | android_emoji
     second_subset_file_name = argv[3]
     subset.subset_font(
         source_file_name,
-        tmp.name,
+        second_subset_file_name,
         include=second_subset_coverage)
 
-    # Use given file name as the PostScript name.
-    postScriptName = PurePosixPath(second_subset_file_name).stem
-    rename_postscript_name(tmp.name, second_subset_file_name, postScriptName)
 
 if __name__ == '__main__':
     main(sys.argv)