Add emoji search by name

A search box in EmojiPicker filters the flat emoji list by name/keyword
instead of only browsing by category, shared by both the composer's
emoji trigger and the message reaction picker.

Names/keywords didn't exist anywhere in this codebase before (emoji.ts is
just raw unicode characters). Rather than hand-typing entries for all 928
unique emoji -- a lot of manual work, and unlike the codepoints themselves
a wrong name only means a bad search result, not a broken emoji, so the
accuracy argument for hand-typing didn't apply here -- generated
emojiNames.ts once from emojibase-data (MIT licensed), matched against
emoji.ts by codepoint (normalizing variation-selector differences between
the two sources). emojibase-data itself was never added to package.json;
it was only ever a one-time generation tool, so this ships with zero new
runtime dependency.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-16 09:04:59 -06:00
co-authored by Claude Sonnet 5
parent caeff5d6f0
commit 9c275b1b86
3 changed files with 1027 additions and 7 deletions
+25
View File
@@ -35,6 +35,31 @@
right: 0; right: 0;
} }
.emoji-picker-search {
position: sticky;
top: 0;
z-index: 1;
background: var(--ds-surface-2);
border: 1px solid var(--ds-border);
border-radius: var(--radius);
padding: 6px 10px;
color: var(--ds-text);
font-size: 0.82rem;
outline: none;
flex: none;
}
.emoji-picker-search:focus {
border-color: var(--ds-accent);
}
.emoji-picker-no-results {
font-size: 0.82rem;
color: var(--ds-muted);
padding: var(--sp-3) var(--sp-2);
text-align: center;
}
.emoji-picker-category-label { .emoji-picker-category-label {
font-size: 0.7rem; font-size: 0.7rem;
font-weight: 700; font-weight: 700;
+60 -7
View File
@@ -1,5 +1,7 @@
import { useMemo, useState } from 'react'
import { useEscapeKey } from '../hooks/useEscapeKey' import { useEscapeKey } from '../hooks/useEscapeKey'
import { EMOJI_CATEGORIES } from '../lib/emoji' import { ALL_EMOJI, EMOJI_CATEGORIES } from '../lib/emoji'
import { EMOJI_NAMES } from '../lib/emojiNames'
import './EmojiPicker.css' import './EmojiPicker.css'
interface EmojiPickerProps { interface EmojiPickerProps {
@@ -9,8 +11,29 @@ interface EmojiPickerProps {
align?: 'left' | 'right' align?: 'left' | 'right'
} }
function searchEmoji(query: string): string[] {
const q = query.trim().toLowerCase()
if (!q) return []
const seen = new Set<string>()
const results: string[] = []
for (const emoji of ALL_EMOJI) {
if (seen.has(emoji)) continue
const entry = EMOJI_NAMES[emoji]
if (!entry) continue
const matches = entry.name.toLowerCase().includes(q) || entry.keywords.some((k) => k.toLowerCase().includes(q))
if (matches) {
seen.add(emoji)
results.push(emoji)
}
}
return results
}
export function EmojiPicker({ onPick, onClose, placement = 'below', align = 'left' }: EmojiPickerProps) { export function EmojiPicker({ onPick, onClose, placement = 'below', align = 'left' }: EmojiPickerProps) {
useEscapeKey(onClose) useEscapeKey(onClose)
const [query, setQuery] = useState('')
const searchResults = useMemo(() => searchEmoji(query), [query])
const searching = query.trim().length > 0
return ( return (
<> <>
@@ -19,24 +42,54 @@ export function EmojiPicker({ onPick, onClose, placement = 'below', align = 'lef
className={`emoji-picker emoji-picker-${placement} emoji-picker-${align}`} className={`emoji-picker emoji-picker-${placement} emoji-picker-${align}`}
role="menu" role="menu"
> >
{EMOJI_CATEGORIES.map((category) => ( <input
<div key={category.label} className="emoji-picker-category"> type="text"
<div className="emoji-picker-category-label">{category.label}</div> className="emoji-picker-search"
placeholder="Search emoji"
value={query}
onChange={(e) => setQuery(e.target.value)}
autoFocus
/>
{searching ? (
searchResults.length > 0 ? (
<div className="emoji-picker-grid"> <div className="emoji-picker-grid">
{category.emoji.map((emoji) => ( {searchResults.map((emoji) => (
<button <button
key={emoji} key={emoji}
type="button" type="button"
role="menuitem" role="menuitem"
className="emoji-picker-item" className="emoji-picker-item"
title={EMOJI_NAMES[emoji]?.name}
onClick={() => onPick(emoji)} onClick={() => onPick(emoji)}
> >
{emoji} {emoji}
</button> </button>
))} ))}
</div> </div>
</div> ) : (
))} <div className="emoji-picker-no-results">No emoji found</div>
)
) : (
EMOJI_CATEGORIES.map((category) => (
<div key={category.label} className="emoji-picker-category">
<div className="emoji-picker-category-label">{category.label}</div>
<div className="emoji-picker-grid">
{category.emoji.map((emoji) => (
<button
key={emoji}
type="button"
role="menuitem"
className="emoji-picker-item"
title={EMOJI_NAMES[emoji]?.name}
onClick={() => onPick(emoji)}
>
{emoji}
</button>
))}
</div>
</div>
))
)}
</div> </div>
</> </>
) )
+942
View File
@@ -0,0 +1,942 @@
// Names/keywords for search, generated once from emojibase-data (MIT
// licensed, https://github.com/milesj/emojibase -- en/data.json), matched
// against the emoji actually used in emoji.ts. Not a runtime dependency:
// emojibase-data was only ever a dev-time tool to produce this static
// lookup, never added to package.json. Keys use whichever exact codepoint
// sequence emoji.ts uses (with or without a trailing variation selector);
// if emoji.ts ever adds a new entry, this needs regenerating to match.
export interface EmojiNameEntry {
name: string
keywords: string[]
}
export const EMOJI_NAMES: Record<string, EmojiNameEntry> = {
'‼️': { name: 'double exclamation mark', keywords: ['!', '!!', 'bangbang', 'double', 'exclamation', 'mark', 'punctuation'] },
'⁉️': { name: 'exclamation question mark', keywords: ['!', '!?', '?', 'exclamation', 'interrobang', 'mark', 'punctuation', 'question'] },
'⌚': { name: 'watch', keywords: ['clock', 'time'] },
'⌛': { name: 'hourglass done', keywords: ['done', 'hourglass', 'sand', 'time', 'timer'] },
'⌨️': { name: 'keyboard', keywords: ['computer'] },
'⏰': { name: 'alarm clock', keywords: ['alarm', 'clock', 'hours', 'hrs', 'late', 'time', 'waiting'] },
'⏱️': { name: 'stopwatch', keywords: ['clock', 'time'] },
'⏲️': { name: 'timer clock', keywords: ['clock', 'timer'] },
'⏳': { name: 'hourglass not done', keywords: ['done', 'flowing', 'hourglass', 'hours', 'not', 'sand', 'timer', 'waiting', 'yolo'] },
'◻️': { name: 'white medium square', keywords: ['geometric', 'medium', 'square', 'white'] },
'◼️': { name: 'black medium square', keywords: ['black', 'geometric', 'medium', 'square'] },
'☀️': { name: 'sun', keywords: ['bright', 'rays', 'space', 'sunny', 'weather'] },
'☁️': { name: 'cloud', keywords: ['weather'] },
'☃️': { name: 'snowman', keywords: ['cold', 'man', 'snow'] },
'☄️': { name: 'comet', keywords: ['space'] },
'☎️': { name: 'telephone', keywords: ['phone'] },
'☑️': { name: 'check box with check', keywords: ['ballot', 'box', 'check', 'checked', 'done', 'off', 'tick', '✓'] },
'☔': { name: 'umbrella with rain drops', keywords: ['clothing', 'drop', 'drops', 'rain', 'umbrella', 'weather'] },
'☕': { name: 'hot beverage', keywords: ['beverage', 'cafe', 'caffeine', 'chai', 'coffee', 'drink', 'hot', 'morning', 'steaming', 'tea'] },
'☘️': { name: 'shamrock', keywords: ['irish', 'plant'] },
'☝️': { name: 'index pointing up', keywords: ['finger', 'hand', 'index', 'point', 'pointing', 'this', 'up'] },
'☠️': { name: 'skull and crossbones', keywords: ['bone', 'crossbones', 'dead', 'death', 'face', 'monster', 'skull'] },
'☢️': { name: 'radioactive', keywords: ['sign'] },
'☣️': { name: 'biohazard', keywords: ['sign'] },
'☹️': { name: 'frowning face', keywords: ['face', 'frown', 'frowning', 'sad'] },
'♟️': { name: 'chess pawn', keywords: ['chess', 'dupe', 'expendable', 'pawn'] },
'♥️': { name: 'heart suit', keywords: ['card', 'emotion', 'game', 'heart', 'hearts', 'suit'] },
'♻️': { name: 'recycling symbol', keywords: ['recycle', 'recycling', 'symbol'] },
'♾️': { name: 'infinity', keywords: ['forever', 'unbounded', 'universal'] },
'⚒️': { name: 'hammer and pick', keywords: ['hammer', 'pick', 'tool'] },
'⚓': { name: 'anchor', keywords: ['ship', 'tool'] },
'⚔️': { name: 'crossed swords', keywords: ['crossed', 'swords', 'weapon'] },
'⚕️': { name: 'medical symbol', keywords: ['aesculapius', 'medical', 'medicine', 'staff', 'symbol'] },
'⚖️': { name: 'balance scale', keywords: ['balance', 'justice', 'libra', 'scale', 'scales', 'tool', 'weight', 'zodiac'] },
'⚗️': { name: 'alembic', keywords: ['chemistry', 'tool'] },
'⚙️': { name: 'gear', keywords: ['cog', 'cogwheel', 'tool'] },
'⚜️': { name: 'fleur-de-lis', keywords: ['knights'] },
'⚡': { name: 'high voltage', keywords: ['danger', 'electric', 'electricity', 'high', 'lightning', 'nature', 'thunder', 'thunderbolt', 'voltage', 'zap'] },
'⚪': { name: 'white circle', keywords: ['circle', 'geometric', 'white'] },
'⚫': { name: 'black circle', keywords: ['black', 'circle', 'geometric'] },
'⚰️': { name: 'coffin', keywords: ['dead', 'death', 'vampire'] },
'⚽': { name: 'soccer ball', keywords: ['ball', 'football', 'futbol', 'soccer', 'sport'] },
'⚾': { name: 'baseball', keywords: ['ball', 'sport'] },
'⛄': { name: 'snowman without snow', keywords: ['cold', 'man', 'snow', 'snowman'] },
'⛅': { name: 'sun behind cloud', keywords: ['behind', 'cloud', 'cloudy', 'sun', 'weather'] },
'⛈️': { name: 'cloud with lightning and rain', keywords: ['cloud', 'lightning', 'rain', 'thunder', 'thunderstorm'] },
'⛏️': { name: 'pick', keywords: ['hammer', 'mining', 'tool'] },
'⛓️': { name: 'chains', keywords: ['chain'] },
'⛔': { name: 'no entry', keywords: ['do', 'entry', 'fail', 'forbidden', 'no', 'not', 'pass', 'prohibited', 'traffic'] },
'⛩️': { name: 'shinto shrine', keywords: ['religion', 'shinto', 'shrine'] },
'⛪': { name: 'church', keywords: ['bless', 'chapel', 'christian', 'cross', 'religion'] },
'⛰️': { name: 'mountain', keywords: ['mountain'] },
'⛲': { name: 'fountain', keywords: ['fountain'] },
'⛳': { name: 'flag in hole', keywords: ['flag', 'golf', 'hole', 'sport'] },
'⛵': { name: 'sailboat', keywords: ['boat', 'resort', 'sailing', 'sea', 'yacht'] },
'⛷️': { name: 'skier', keywords: ['ski', 'snow'] },
'⛸️': { name: 'ice skate', keywords: ['ice', 'skate', 'skating'] },
'⛹️': { name: 'person bouncing ball', keywords: ['athletic', 'ball', 'basketball', 'bouncing', 'championship', 'dribble', 'net', 'person', 'player', 'throw'] },
'⛺': { name: 'tent', keywords: ['camping'] },
'✂️': { name: 'scissors', keywords: ['cut', 'cutting', 'paper', 'tool'] },
'✅': { name: 'check mark button', keywords: ['button', 'check', 'checked', 'checkmark', 'complete', 'completed', 'done', 'fixed', 'mark', 'tick', '✓'] },
'✈️': { name: 'airplane', keywords: ['aeroplane', 'fly', 'flying', 'jet', 'plane', 'travel'] },
'✊': { name: 'raised fist', keywords: ['clenched', 'fist', 'hand', 'punch', 'raised', 'solidarity'] },
'✋': { name: 'raised hand', keywords: ['5', 'five', 'hand', 'high', 'raised', 'stop'] },
'✌️': { name: 'victory hand', keywords: ['hand', 'peace', 'v', 'victory'] },
'✍️': { name: 'writing hand', keywords: ['hand', 'write', 'writing'] },
'✏️': { name: 'pencil', keywords: ['pencil'] },
'✔️': { name: 'check mark', keywords: ['check', 'checked', 'checkmark', 'done', 'heavy', 'mark', 'tick', '✓'] },
'✖️': { name: 'multiply', keywords: ['cancel', 'multiplication', 'sign', 'x', '×'] },
'✨': { name: 'sparkles', keywords: ['*', 'magic', 'sparkle', 'star'] },
'✳️': { name: 'eight-spoked asterisk', keywords: ['*', 'asterisk', 'eight-spoked'] },
'✴️': { name: 'eight-pointed star', keywords: ['*', 'eight-pointed', 'star'] },
'❄️': { name: 'snowflake', keywords: ['cold', 'snow', 'weather'] },
'❇️': { name: 'sparkle', keywords: ['*'] },
'❌': { name: 'cross mark', keywords: ['cancel', 'cross', 'mark', 'multiplication', 'multiply', 'x', '×'] },
'❎': { name: 'cross mark button', keywords: ['button', 'cross', 'mark', 'multiplication', 'multiply', 'square', 'x', '×'] },
'❓': { name: 'red question mark', keywords: ['?', 'mark', 'punctuation', 'question', 'red'] },
'❔': { name: 'white question mark', keywords: ['?', 'mark', 'outlined', 'punctuation', 'question', 'white'] },
'❕': { name: 'white exclamation mark', keywords: ['!', 'exclamation', 'mark', 'outlined', 'punctuation', 'white'] },
'❗': { name: 'red exclamation mark', keywords: ['!', 'exclamation', 'mark', 'punctuation', 'red'] },
'❤️': { name: 'red heart', keywords: ['emotion', 'heart', 'love', 'red'] },
'❤️‍🔥': { name: 'heart on fire', keywords: ['burn', 'fire', 'heart', 'love', 'lust', 'sacred'] },
'': { name: 'plus', keywords: ['+'] },
'': { name: 'minus', keywords: ['-', 'heavy', 'math', 'sign', ''] },
'➗': { name: 'divide', keywords: ['division', 'heavy', 'math', 'sign', '÷'] },
'⬛': { name: 'black large square', keywords: ['black', 'geometric', 'large', 'square'] },
'⬜': { name: 'white large square', keywords: ['geometric', 'large', 'square', 'white'] },
'⭐': { name: 'star', keywords: ['astronomy', 'medium', 'stars', 'white'] },
'⭕': { name: 'hollow red circle', keywords: ['circle', 'heavy', 'hollow', 'large', 'o', 'red'] },
'〰️': { name: 'wavy dash', keywords: ['dash', 'punctuation', 'wavy'] },
'🀄': { name: 'mahjong red dragon', keywords: ['dragon', 'game', 'mahjong', 'red'] },
'🃏': { name: 'joker', keywords: ['card', 'game', 'wildcard'] },
'🅰️': { name: 'A button (blood type)', keywords: ['blood', 'button', 'type'] },
'🅱️': { name: 'B button (blood type)', keywords: ['b', 'blood', 'button', 'type'] },
'🅾️': { name: 'O button (blood type)', keywords: ['blood', 'button', 'o', 'type'] },
'🆎': { name: 'AB button (blood type)', keywords: ['ab', 'blood', 'button', 'type'] },
'🆒': { name: 'COOL button', keywords: ['button', 'cool'] },
'🆓': { name: 'FREE button', keywords: ['button', 'free'] },
'🆕': { name: 'NEW button', keywords: ['button', 'new'] },
'🆗': { name: 'OK button', keywords: ['button', 'ok', 'okay'] },
'🆙': { name: 'UP! button', keywords: ['button', 'mark', 'up', 'up!'] },
'🇦🇺': { name: 'flag: Australia', keywords: ['AU', 'flag'] },
'🇧🇷': { name: 'flag: Brazil', keywords: ['BR', 'flag'] },
'🇨🇦': { name: 'flag: Canada', keywords: ['CA', 'flag'] },
'🇨🇳': { name: 'flag: China', keywords: ['CN', 'flag'] },
'🇩🇪': { name: 'flag: Germany', keywords: ['DE', 'flag'] },
'🇪🇸': { name: 'flag: Spain', keywords: ['ES', 'flag'] },
'🇫🇷': { name: 'flag: France', keywords: ['FR', 'flag'] },
'🇬🇧': { name: 'flag: United Kingdom', keywords: ['GB', 'flag'] },
'🇮🇪': { name: 'flag: Ireland', keywords: ['IE', 'flag'] },
'🇮🇳': { name: 'flag: India', keywords: ['IN', 'flag'] },
'🇮🇹': { name: 'flag: Italy', keywords: ['IT', 'flag'] },
'🇯🇵': { name: 'flag: Japan', keywords: ['JP', 'flag'] },
'🇰🇷': { name: 'flag: South Korea', keywords: ['KR', 'flag'] },
'🇲🇽': { name: 'flag: Mexico', keywords: ['MX', 'flag'] },
'🇳🇱': { name: 'flag: Netherlands', keywords: ['NL', 'flag'] },
'🇳🇴': { name: 'flag: Norway', keywords: ['NO', 'flag'] },
'🇵🇹': { name: 'flag: Portugal', keywords: ['PT', 'flag'] },
'🇷🇺': { name: 'flag: Russia', keywords: ['RU', 'flag'] },
'🇸🇪': { name: 'flag: Sweden', keywords: ['SE', 'flag'] },
'🇺🇸': { name: 'flag: United States', keywords: ['US', 'flag'] },
'🌀': { name: 'cyclone', keywords: ['dizzy', 'hurricane', 'twister', 'typhoon', 'weather'] },
'🌁': { name: 'foggy', keywords: ['fog'] },
'🌃': { name: 'night with stars', keywords: ['night', 'star', 'stars'] },
'🌄': { name: 'sunrise over mountains', keywords: ['morning', 'mountains', 'over', 'sun', 'sunrise'] },
'🌅': { name: 'sunrise', keywords: ['morning', 'nature', 'sun'] },
'🌆': { name: 'cityscape at dusk', keywords: ['at', 'building', 'city', 'cityscape', 'dusk', 'evening', 'landscape', 'sun', 'sunset'] },
'🌇': { name: 'sunset', keywords: ['building', 'dusk', 'sun'] },
'🌈': { name: 'rainbow', keywords: ['gay', 'genderqueer', 'glbt', 'glbtq', 'lesbian', 'lgbt', 'lgbtq', 'lgbtqia', 'nature', 'pride', 'queer', 'rain', 'trans', 'transgender', 'weather'] },
'🌉': { name: 'bridge at night', keywords: ['at', 'bridge', 'night'] },
'🌋': { name: 'volcano', keywords: ['eruption', 'mountain', 'nature'] },
'🌍': { name: 'globe showing Europe-Africa', keywords: ['africa', 'earth', 'europe', 'europe-africa', 'globe', 'showing', 'world'] },
'🌎': { name: 'globe showing Americas', keywords: ['americas', 'earth', 'globe', 'showing', 'world'] },
'🌏': { name: 'globe showing Asia-Australia', keywords: ['asia', 'asia-australia', 'australia', 'earth', 'globe', 'showing', 'world'] },
'🌑': { name: 'new moon', keywords: ['dark', 'moon', 'new', 'space'] },
'🌒': { name: 'waxing crescent moon', keywords: ['crescent', 'dreams', 'moon', 'space', 'waxing'] },
'🌓': { name: 'first quarter moon', keywords: ['first', 'moon', 'quarter', 'space'] },
'🌔': { name: 'waxing gibbous moon', keywords: ['gibbous', 'moon', 'space', 'waxing'] },
'🌕': { name: 'full moon', keywords: ['full', 'moon', 'space'] },
'🌖': { name: 'waning gibbous moon', keywords: ['gibbous', 'moon', 'space', 'waning'] },
'🌗': { name: 'last quarter moon', keywords: ['last', 'moon', 'quarter', 'space'] },
'🌘': { name: 'waning crescent moon', keywords: ['crescent', 'moon', 'space', 'waning'] },
'🌙': { name: 'crescent moon', keywords: ['crescent', 'moon', 'ramadan', 'space'] },
'🌚': { name: 'new moon face', keywords: ['face', 'moon', 'new', 'space'] },
'🌛': { name: 'first quarter moon face', keywords: ['face', 'first', 'moon', 'quarter', 'space'] },
'🌜': { name: 'last quarter moon face', keywords: ['dreams', 'face', 'last', 'moon', 'quarter'] },
'🌝': { name: 'full moon face', keywords: ['bright', 'face', 'full', 'moon'] },
'🌞': { name: 'sun with face', keywords: ['beach', 'bright', 'day', 'face', 'heat', 'shine', 'sun', 'sunny', 'sunshine', 'weather'] },
'🌟': { name: 'glowing star', keywords: ['glittery', 'glow', 'glowing', 'night', 'shining', 'sparkle', 'star', 'win'] },
'🌤️': { name: 'sun behind small cloud', keywords: ['behind', 'cloud', 'sun', 'weather'] },
'🌥️': { name: 'sun behind large cloud', keywords: ['behind', 'cloud', 'sun', 'weather'] },
'🌦️': { name: 'sun behind rain cloud', keywords: ['behind', 'cloud', 'rain', 'sun', 'weather'] },
'🌧️': { name: 'cloud with rain', keywords: ['cloud', 'rain', 'weather'] },
'🌪️': { name: 'tornado', keywords: ['cloud', 'weather', 'whirlwind'] },
'🌭': { name: 'hot dog', keywords: ['dog', 'frankfurter', 'hot', 'hotdog', 'sausage'] },
'🌮': { name: 'taco', keywords: ['mexican'] },
'🌯': { name: 'burrito', keywords: ['mexican', 'wrap'] },
'🌰': { name: 'chestnut', keywords: ['almond', 'plant'] },
'🌱': { name: 'seedling', keywords: ['plant', 'sapling', 'sprout', 'young'] },
'🌲': { name: 'evergreen tree', keywords: ['christmas', 'evergreen', 'forest', 'pine', 'tree'] },
'🌳': { name: 'deciduous tree', keywords: ['deciduous', 'forest', 'green', 'habitat', 'shedding', 'tree'] },
'🌴': { name: 'palm tree', keywords: ['beach', 'palm', 'plant', 'tree', 'tropical'] },
'🌵': { name: 'cactus', keywords: ['desert', 'drought', 'nature', 'plant'] },
'🌶️': { name: 'hot pepper', keywords: ['hot', 'pepper'] },
'🌷': { name: 'tulip', keywords: ['blossom', 'flower', 'growth', 'plant'] },
'🌸': { name: 'cherry blossom', keywords: ['blossom', 'cherry', 'flower', 'plant', 'spring', 'springtime'] },
'🌹': { name: 'rose', keywords: ['beauty', 'elegant', 'flower', 'love', 'plant', 'red', 'valentine'] },
'🌺': { name: 'hibiscus', keywords: ['flower', 'plant'] },
'🌻': { name: 'sunflower', keywords: ['flower', 'outdoors', 'plant', 'sun'] },
'🌼': { name: 'blossom', keywords: ['buttercup', 'dandelion', 'flower', 'plant'] },
'🌽': { name: 'ear of corn', keywords: ['corn', 'crops', 'ear', 'farm', 'maize', 'maze'] },
'🌾': { name: 'sheaf of rice', keywords: ['ear', 'grain', 'grains', 'plant', 'rice', 'sheaf'] },
'🌿': { name: 'herb', keywords: ['leaf', 'plant'] },
'🍀': { name: 'four leaf clover', keywords: ['4', 'clover', 'four', 'four-leaf', 'irish', 'leaf', 'lucky', 'plant'] },
'🍁': { name: 'maple leaf', keywords: ['falling', 'leaf', 'maple'] },
'🍂': { name: 'fallen leaf', keywords: ['autumn', 'fall', 'fallen', 'falling', 'leaf'] },
'🍃': { name: 'leaf fluttering in wind', keywords: ['blow', 'flutter', 'fluttering', 'leaf', 'wind'] },
'🍄': { name: 'mushroom', keywords: ['fungus', 'toadstool'] },
'🍅': { name: 'tomato', keywords: ['food', 'fruit', 'vegetable'] },
'🍆': { name: 'eggplant', keywords: ['aubergine', 'vegetable'] },
'🍇': { name: 'grapes', keywords: ['dionysus', 'fruit', 'grape'] },
'🍈': { name: 'melon', keywords: ['cantaloupe', 'fruit'] },
'🍉': { name: 'watermelon', keywords: ['fruit'] },
'🍊': { name: 'tangerine', keywords: ['c', 'citrus', 'fruit', 'nectarine', 'orange', 'vitamin'] },
'🍋': { name: 'lemon', keywords: ['citrus', 'fruit', 'sour'] },
'🍌': { name: 'banana', keywords: ['fruit', 'potassium'] },
'🍍': { name: 'pineapple', keywords: ['colada', 'fruit', 'pina', 'tropical'] },
'🍎': { name: 'red apple', keywords: ['apple', 'diet', 'food', 'fruit', 'health', 'red', 'ripe'] },
'🍏': { name: 'green apple', keywords: ['apple', 'fruit', 'green'] },
'🍐': { name: 'pear', keywords: ['fruit'] },
'🍑': { name: 'peach', keywords: ['fruit'] },
'🍒': { name: 'cherries', keywords: ['berries', 'cherry', 'fruit', 'red'] },
'🍓': { name: 'strawberry', keywords: ['berry', 'fruit'] },
'🍔': { name: 'hamburger', keywords: ['burger', 'eat', 'fast', 'food', 'hungry'] },
'🍕': { name: 'pizza', keywords: ['cheese', 'food', 'hungry', 'pepperoni', 'slice'] },
'🍖': { name: 'meat on bone', keywords: ['bone', 'meat'] },
'🍗': { name: 'poultry leg', keywords: ['bone', 'chicken', 'drumstick', 'hungry', 'leg', 'poultry', 'turkey'] },
'🍘': { name: 'rice cracker', keywords: ['cracker', 'food', 'rice'] },
'🍙': { name: 'rice ball', keywords: ['ball', 'food', 'japanese', 'rice'] },
'🍚': { name: 'cooked rice', keywords: ['cooked', 'food', 'rice'] },
'🍛': { name: 'curry rice', keywords: ['curry', 'food', 'rice'] },
'🍜': { name: 'steaming bowl', keywords: ['bowl', 'chopsticks', 'food', 'noodle', 'pho', 'ramen', 'soup', 'steaming'] },
'🍝': { name: 'spaghetti', keywords: ['food', 'meatballs', 'pasta', 'restaurant'] },
'🍞': { name: 'bread', keywords: ['carbs', 'food', 'grain', 'loaf', 'restaurant', 'toast', 'wheat'] },
'🍟': { name: 'french fries', keywords: ['fast', 'food', 'french', 'fries'] },
'🍠': { name: 'roasted sweet potato', keywords: ['food', 'potato', 'roasted', 'sweet'] },
'🍡': { name: 'dango', keywords: ['dessert', 'japanese', 'skewer', 'stick', 'sweet'] },
'🍢': { name: 'oden', keywords: ['food', 'kebab', 'restaurant', 'seafood', 'skewer', 'stick'] },
'🍣': { name: 'sushi', keywords: ['food'] },
'🍤': { name: 'fried shrimp', keywords: ['fried', 'prawn', 'shrimp', 'tempura'] },
'🍥': { name: 'fish cake with swirl', keywords: ['cake', 'fish', 'food', 'pastry', 'restaurant', 'swirl'] },
'🍦': { name: 'soft ice cream', keywords: ['cream', 'dessert', 'food', 'ice', 'icecream', 'restaurant', 'serve', 'soft', 'sweet'] },
'🍧': { name: 'shaved ice', keywords: ['dessert', 'ice', 'restaurant', 'shaved', 'sweet'] },
'🍨': { name: 'ice cream', keywords: ['cream', 'dessert', 'food', 'ice', 'restaurant', 'sweet'] },
'🍩': { name: 'doughnut', keywords: ['breakfast', 'dessert', 'donut', 'food', 'sweet'] },
'🍪': { name: 'cookie', keywords: ['chip', 'chocolate', 'dessert', 'sweet'] },
'🍫': { name: 'chocolate bar', keywords: ['bar', 'candy', 'chocolate', 'dessert', 'halloween', 'sweet', 'tooth'] },
'🍬': { name: 'candy', keywords: ['cavities', 'dessert', 'halloween', 'restaurant', 'sweet', 'tooth', 'wrapper'] },
'🍭': { name: 'lollipop', keywords: ['candy', 'dessert', 'food', 'restaurant', 'sweet'] },
'🍮': { name: 'custard', keywords: ['dessert', 'pudding', 'sweet'] },
'🍯': { name: 'honey pot', keywords: ['barrel', 'bear', 'food', 'honey', 'honeypot', 'jar', 'pot', 'sweet'] },
'🍰': { name: 'shortcake', keywords: ['cake', 'dessert', 'pastry', 'slice', 'sweet'] },
'🍱': { name: 'bento box', keywords: ['bento', 'box', 'food'] },
'🍲': { name: 'pot of food', keywords: ['food', 'pot', 'soup', 'stew'] },
'🍳': { name: 'cooking', keywords: ['breakfast', 'easy', 'egg', 'fry', 'frying', 'over', 'pan', 'restaurant', 'side', 'sunny', 'up'] },
'🍴': { name: 'fork and knife', keywords: ['breakfast', 'breaky', 'cooking', 'cutlery', 'delicious', 'dinner', 'eat', 'feed', 'food', 'fork', 'hungry', 'knife', 'lunch', 'restaurant', 'yum', 'yummy'] },
'🍵': { name: 'teacup without handle', keywords: ['beverage', 'cup', 'drink', 'handle', 'oolong', 'tea', 'teacup'] },
'🍶': { name: 'sake', keywords: ['bar', 'beverage', 'bottle', 'cup', 'drink', 'restaurant'] },
'🍷': { name: 'wine glass', keywords: ['alcohol', 'bar', 'beverage', 'booze', 'club', 'drink', 'drinking', 'drinks', 'glass', 'restaurant', 'wine'] },
'🍸': { name: 'cocktail glass', keywords: ['alcohol', 'bar', 'booze', 'club', 'cocktail', 'drink', 'drinking', 'drinks', 'glass', 'mad', 'martini', 'men'] },
'🍹': { name: 'tropical drink', keywords: ['alcohol', 'bar', 'booze', 'club', 'cocktail', 'drink', 'drinking', 'drinks', 'drunk', 'mai', 'party', 'tai', 'tropical', 'tropics'] },
'🍺': { name: 'beer mug', keywords: ['alcohol', 'ale', 'bar', 'beer', 'booze', 'drink', 'drinking', 'drinks', 'mug', 'octoberfest', 'oktoberfest', 'pint', 'stein', 'summer'] },
'🍻': { name: 'clinking beer mugs', keywords: ['alcohol', 'bar', 'beer', 'booze', 'bottoms', 'cheers', 'clink', 'clinking', 'drinking', 'drinks', 'mugs'] },
'🍼': { name: 'baby bottle', keywords: ['babies', 'baby', 'birth', 'born', 'bottle', 'drink', 'infant', 'milk', 'newborn'] },
'🍽️': { name: 'fork and knife with plate', keywords: ['cooking', 'dinner', 'eat', 'fork', 'knife', 'plate'] },
'🍾': { name: 'bottle with popping cork', keywords: ['bar', 'bottle', 'cork', 'drink', 'popping'] },
'🍿': { name: 'popcorn', keywords: ['corn', 'movie', 'pop'] },
'🎀': { name: 'ribbon', keywords: ['celebration'] },
'🎁': { name: 'wrapped gift', keywords: ['birthday', 'bow', 'box', 'celebration', 'christmas', 'gift', 'present', 'surprise', 'wrapped'] },
'🎂': { name: 'birthday cake', keywords: ['bday', 'birthday', 'cake', 'celebration', 'dessert', 'happy', 'pastry', 'sweet'] },
'🎄': { name: 'Christmas tree', keywords: ['celebration', 'christmas', 'tree'] },
'🎆': { name: 'fireworks', keywords: ['boom', 'celebration', 'entertainment', 'yolo'] },
'🎇': { name: 'sparkler', keywords: ['boom', 'celebration', 'fireworks', 'sparkle'] },
'🎈': { name: 'balloon', keywords: ['birthday', 'celebrate', 'celebration'] },
'🎉': { name: 'party popper', keywords: ['awesome', 'birthday', 'celebrate', 'celebration', 'excited', 'hooray', 'party', 'popper', 'tada', 'woohoo'] },
'🎊': { name: 'confetti ball', keywords: ['ball', 'celebrate', 'celebration', 'confetti', 'party', 'woohoo'] },
'🎌': { name: 'crossed flags', keywords: ['celebration', 'cross', 'crossed', 'flags', 'japanese'] },
'🎍': { name: 'pine decoration', keywords: ['bamboo', 'celebration', 'decoration', 'japanese', 'pine', 'plant'] },
'🎖️': { name: 'military medal', keywords: ['award', 'celebration', 'medal', 'military'] },
'🎗️': { name: 'reminder ribbon', keywords: ['celebration', 'reminder', 'ribbon'] },
'🎠': { name: 'carousel horse', keywords: ['carousel', 'entertainment', 'horse'] },
'🎡': { name: 'ferris wheel', keywords: ['amusement', 'ferris', 'park', 'theme', 'wheel'] },
'🎢': { name: 'roller coaster', keywords: ['amusement', 'coaster', 'park', 'roller', 'theme'] },
'🎣': { name: 'fishing pole', keywords: ['entertainment', 'fish', 'fishing', 'pole', 'sport'] },
'🎤': { name: 'microphone', keywords: ['karaoke', 'mic', 'music', 'sing', 'sound'] },
'🎥': { name: 'movie camera', keywords: ['bollywood', 'camera', 'cinema', 'film', 'hollywood', 'movie', 'record'] },
'🎧': { name: 'headphone', keywords: ['earbud', 'sound'] },
'🎨': { name: 'artist palette', keywords: ['art', 'artist', 'artsy', 'arty', 'colorful', 'creative', 'entertainment', 'museum', 'painter', 'painting', 'palette'] },
'🎪': { name: 'circus tent', keywords: ['circus', 'tent'] },
'🎫': { name: 'ticket', keywords: ['admission', 'stub'] },
'🎬': { name: 'clapper board', keywords: ['action', 'board', 'clapper', 'movie'] },
'🎭': { name: 'performing arts', keywords: ['actor', 'actress', 'art', 'arts', 'entertainment', 'mask', 'performing', 'theater', 'theatre', 'thespian'] },
'🎮': { name: 'video game', keywords: ['controller', 'entertainment', 'game', 'video'] },
'🎯': { name: 'bullseye', keywords: ['bull', 'dart', 'direct', 'entertainment', 'game', 'hit', 'target'] },
'🎰': { name: 'slot machine', keywords: ['casino', 'gamble', 'gambling', 'game', 'machine', 'slot', 'slots'] },
'🎱': { name: 'pool 8 ball', keywords: ['8', '8ball', 'ball', 'billiard', 'eight', 'game', 'pool'] },
'🎲': { name: 'game die', keywords: ['dice', 'die', 'entertainment', 'game'] },
'🎳': { name: 'bowling', keywords: ['ball', 'game', 'sport', 'strike'] },
'🎴': { name: 'flower playing cards', keywords: ['card', 'cards', 'flower', 'game', 'japanese', 'playing'] },
'🎷': { name: 'saxophone', keywords: ['instrument', 'music', 'sax'] },
'🎸': { name: 'guitar', keywords: ['instrument', 'music', 'strat'] },
'🎹': { name: 'musical keyboard', keywords: ['instrument', 'keyboard', 'music', 'musical', 'piano'] },
'🎺': { name: 'trumpet', keywords: ['instrument', 'music'] },
'🎻': { name: 'violin', keywords: ['instrument', 'music'] },
'🎼': { name: 'musical score', keywords: ['music', 'musical', 'note', 'score'] },
'🎽': { name: 'running shirt', keywords: ['athletics', 'running', 'sash', 'shirt'] },
'🎾': { name: 'tennis', keywords: ['ball', 'racquet', 'sport'] },
'🎿': { name: 'skis', keywords: ['ski', 'snow', 'sport'] },
'🏀': { name: 'basketball', keywords: ['ball', 'hoop', 'sport'] },
'🏁': { name: 'chequered flag', keywords: ['checkered', 'chequered', 'finish', 'flag', 'flags', 'game', 'race', 'racing', 'sport', 'win'] },
'🏂': { name: 'snowboarder', keywords: ['ski', 'snow', 'snowboard', 'sport'] },
'🏄': { name: 'person surfing', keywords: ['beach', 'ocean', 'person', 'sport', 'surf', 'surfer', 'surfing', 'swell', 'waves'] },
'🏅': { name: 'sports medal', keywords: ['award', 'gold', 'medal', 'sports', 'winner'] },
'🏆': { name: 'trophy', keywords: ['champion', 'champs', 'prize', 'slay', 'sport', 'victory', 'win', 'winning'] },
'🏇': { name: 'horse racing', keywords: ['horse', 'jockey', 'racehorse', 'racing', 'riding', 'sport'] },
'🏈': { name: 'american football', keywords: ['american', 'ball', 'bowl', 'football', 'sport', 'super'] },
'🏉': { name: 'rugby football', keywords: ['ball', 'football', 'rugby', 'sport'] },
'🏊': { name: 'person swimming', keywords: ['freestyle', 'person', 'sport', 'swim', 'swimmer', 'swimming', 'triathlon'] },
'🏋️': { name: 'person lifting weights', keywords: ['barbell', 'bodybuilder', 'deadlift', 'lifter', 'lifting', 'person', 'powerlifting', 'weight', 'weightlifter', 'weights', 'workout'] },
'🏍️': { name: 'motorcycle', keywords: ['racing'] },
'🏎️': { name: 'racing car', keywords: ['car', 'racing', 'zoom'] },
'🏏': { name: 'cricket game', keywords: ['ball', 'bat', 'cricket', 'game'] },
'🏐': { name: 'volleyball', keywords: ['ball', 'game'] },
'🏑': { name: 'field hockey', keywords: ['ball', 'field', 'game', 'hockey', 'stick'] },
'🏒': { name: 'ice hockey', keywords: ['game', 'hockey', 'ice', 'puck', 'stick'] },
'🏓': { name: 'ping pong', keywords: ['ball', 'bat', 'game', 'paddle', 'ping', 'pingpong', 'pong', 'table', 'tennis'] },
'🏔️': { name: 'snow-capped mountain', keywords: ['cold', 'mountain', 'snow', 'snow-capped'] },
'🏕️': { name: 'camping', keywords: ['camping'] },
'🏖️': { name: 'beach with umbrella', keywords: ['beach', 'umbrella'] },
'🏗️': { name: 'building construction', keywords: ['building', 'construction', 'crane'] },
'🏙️': { name: 'cityscape', keywords: ['city'] },
'🏛️': { name: 'classical building', keywords: ['building', 'classical'] },
'🏜️': { name: 'desert', keywords: ['desert'] },
'🏝️': { name: 'desert island', keywords: ['desert', 'island'] },
'🏟️': { name: 'stadium', keywords: ['stadium'] },
'🏠': { name: 'house', keywords: ['building', 'country', 'heart', 'home', 'ranch', 'settle', 'simple', 'suburban', 'suburbia', 'where'] },
'🏡': { name: 'house with garden', keywords: ['building', 'country', 'garden', 'heart', 'home', 'house', 'ranch', 'settle', 'simple', 'suburban', 'suburbia', 'where'] },
'🏢': { name: 'office building', keywords: ['building', 'city', 'cubical', 'job', 'office'] },
'🏥': { name: 'hospital', keywords: ['building', 'doctor', 'medicine'] },
'🏦': { name: 'bank', keywords: ['building'] },
'🏨': { name: 'hotel', keywords: ['building'] },
'🏫': { name: 'school', keywords: ['building'] },
'🏬': { name: 'department store', keywords: ['building', 'department', 'store'] },
'🏭': { name: 'factory', keywords: ['building'] },
'🏰': { name: 'castle', keywords: ['building', 'european'] },
'🏳️': { name: 'white flag', keywords: ['flag', 'waving', 'white'] },
'🏳️‍🌈': { name: 'rainbow flag', keywords: ['bisexual', 'flag', 'gay', 'genderqueer', 'glbt', 'glbtq', 'lesbian', 'lgbt', 'lgbtq', 'lgbtqia', 'pride', 'queer', 'rainbow', 'trans', 'transgender'] },
'🏴': { name: 'black flag', keywords: ['black', 'flag', 'waving'] },
'🏴‍☠️': { name: 'pirate flag', keywords: ['flag', 'jolly', 'pirate', 'plunder', 'roger', 'treasure'] },
'🏸': { name: 'badminton', keywords: ['birdie', 'game', 'racquet', 'shuttlecock'] },
'🏹': { name: 'bow and arrow', keywords: ['archer', 'archery', 'arrow', 'bow', 'sagittarius', 'tool', 'weapon', 'zodiac'] },
'🐀': { name: 'rat', keywords: ['animal'] },
'🐁': { name: 'mouse', keywords: ['animal', 'animals'] },
'🐂': { name: 'ox', keywords: ['animal', 'animals', 'bull', 'farm', 'taurus', 'zodiac'] },
'🐃': { name: 'water buffalo', keywords: ['animal', 'buffalo', 'water', 'zoo'] },
'🐄': { name: 'cow', keywords: ['animal', 'animals', 'farm', 'milk', 'moo'] },
'🐅': { name: 'tiger', keywords: ['animal', 'big', 'cat', 'predator', 'zoo'] },
'🐆': { name: 'leopard', keywords: ['animal', 'big', 'cat', 'predator', 'zoo'] },
'🐇': { name: 'rabbit', keywords: ['animal', 'bunny', 'pet'] },
'🐈': { name: 'cat', keywords: ['animal', 'animals', 'cats', 'kitten', 'pet'] },
'🐉': { name: 'dragon', keywords: ['animal', 'fairy', 'fairytale', 'knights', 'tale'] },
'🐊': { name: 'crocodile', keywords: ['animal', 'zoo'] },
'🐋': { name: 'whale', keywords: ['animal', 'beach', 'ocean'] },
'🐌': { name: 'snail', keywords: ['animal', 'escargot', 'garden', 'nature', 'slug'] },
'🐍': { name: 'snake', keywords: ['animal', 'bearer', 'ophiuchus', 'serpent', 'zodiac'] },
'🐎': { name: 'horse', keywords: ['animal', 'equestrian', 'farm', 'racehorse', 'racing'] },
'🐐': { name: 'goat', keywords: ['animal', 'capricorn', 'farm', 'milk', 'zodiac'] },
'🐑': { name: 'ewe', keywords: ['animal', 'baa', 'farm', 'female', 'fluffy', 'lamb', 'sheep', 'wool'] },
'🐓': { name: 'rooster', keywords: ['animal', 'bird', 'ornithology'] },
'🐔': { name: 'chicken', keywords: ['animal', 'bird', 'ornithology'] },
'🐕': { name: 'dog', keywords: ['animal', 'animals', 'dogs', 'pet'] },
'🐖': { name: 'pig', keywords: ['animal', 'bacon', 'farm', 'pork', 'sow'] },
'🐗': { name: 'boar', keywords: ['animal', 'pig'] },
'🐘': { name: 'elephant', keywords: ['animal'] },
'🐙': { name: 'octopus', keywords: ['animal', 'creature', 'ocean'] },
'🐚': { name: 'spiral shell', keywords: ['animal', 'beach', 'conch', 'sea', 'shell', 'spiral'] },
'🐛': { name: 'bug', keywords: ['animal', 'garden', 'insect'] },
'🐜': { name: 'ant', keywords: ['animal', 'garden', 'insect'] },
'🐝': { name: 'honeybee', keywords: ['animal', 'bee', 'bumblebee', 'honey', 'insect', 'nature', 'spring'] },
'🐞': { name: 'lady beetle', keywords: ['animal', 'beetle', 'garden', 'insect', 'lady', 'ladybird', 'ladybug', 'nature'] },
'🐟': { name: 'fish', keywords: ['animal', 'dinner', 'fishes', 'fishing', 'pisces', 'zodiac'] },
'🐠': { name: 'tropical fish', keywords: ['animal', 'fish', 'fishes', 'tropical'] },
'🐡': { name: 'blowfish', keywords: ['animal', 'fish'] },
'🐢': { name: 'turtle', keywords: ['animal', 'terrapin', 'tortoise'] },
'🐤': { name: 'baby chick', keywords: ['animal', 'baby', 'bird', 'chick', 'ornithology'] },
'🐥': { name: 'front-facing baby chick', keywords: ['animal', 'baby', 'bird', 'chick', 'front-facing', 'newborn', 'ornithology'] },
'🐦': { name: 'bird', keywords: ['animal', 'ornithology'] },
'🐧': { name: 'penguin', keywords: ['animal', 'antarctica', 'bird', 'ornithology'] },
'🐨': { name: 'koala', keywords: ['animal', 'australia', 'bear', 'down', 'face', 'marsupial', 'under'] },
'🐩': { name: 'poodle', keywords: ['animal', 'dog', 'fluffy'] },
'🐪': { name: 'camel', keywords: ['animal', 'desert', 'dromedary', 'hump', 'one'] },
'🐫': { name: 'two-hump camel', keywords: ['animal', 'bactrian', 'camel', 'desert', 'hump', 'two', 'two-hump'] },
'🐬': { name: 'dolphin', keywords: ['animal', 'beach', 'flipper', 'ocean'] },
'🐭': { name: 'mouse face', keywords: ['animal', 'face', 'mouse'] },
'🐮': { name: 'cow face', keywords: ['animal', 'cow', 'face', 'farm', 'milk', 'moo'] },
'🐯': { name: 'tiger face', keywords: ['animal', 'big', 'cat', 'face', 'predator', 'tiger'] },
'🐰': { name: 'rabbit face', keywords: ['animal', 'bunny', 'face', 'pet', 'rabbit'] },
'🐱': { name: 'cat face', keywords: ['animal', 'cat', 'face', 'kitten', 'kitty', 'pet'] },
'🐳': { name: 'spouting whale', keywords: ['animal', 'beach', 'face', 'ocean', 'spouting', 'whale'] },
'🐴': { name: 'horse face', keywords: ['animal', 'dressage', 'equine', 'face', 'farm', 'horse', 'horses'] },
'🐵': { name: 'monkey face', keywords: ['animal', 'banana', 'face', 'monkey'] },
'🐶': { name: 'dog face', keywords: ['adorbs', 'animal', 'dog', 'face', 'pet', 'puppies', 'puppy'] },
'🐷': { name: 'pig face', keywords: ['animal', 'bacon', 'face', 'farm', 'pig', 'pork'] },
'🐸': { name: 'frog', keywords: ['animal', 'face'] },
'🐹': { name: 'hamster', keywords: ['animal', 'face', 'pet'] },
'🐺': { name: 'wolf', keywords: ['animal', 'face'] },
'🐻': { name: 'bear', keywords: ['animal', 'face', 'grizzly', 'growl', 'honey'] },
'🐼': { name: 'panda', keywords: ['animal', 'bamboo', 'face'] },
'🐽': { name: 'pig nose', keywords: ['animal', 'face', 'farm', 'nose', 'pig', 'smell', 'snout'] },
'🐾': { name: 'paw prints', keywords: ['feet', 'paw', 'paws', 'print', 'prints'] },
'🐿️': { name: 'chipmunk', keywords: ['animal', 'squirrel'] },
'👀': { name: 'eyes', keywords: ['body', 'eye', 'face', 'googly', 'look', 'looking', 'omg', 'peep', 'see', 'seeing'] },
'👁️': { name: 'eye', keywords: ['1', 'body', 'one'] },
'👁️‍🗨️': { name: 'eye in speech bubble', keywords: ['balloon', 'bubble', 'eye', 'speech', 'witness'] },
'👂': { name: 'ear', keywords: ['body', 'ears', 'hear', 'hearing', 'listen', 'listening', 'sound'] },
'👃': { name: 'nose', keywords: ['body', 'noses', 'nosey', 'odor', 'smell', 'smells'] },
'👄': { name: 'mouth', keywords: ['beauty', 'body', 'kiss', 'kissing', 'lips', 'lipstick'] },
'👅': { name: 'tongue', keywords: ['body', 'lick', 'slurp'] },
'👆': { name: 'backhand index pointing up', keywords: ['backhand', 'finger', 'hand', 'index', 'point', 'pointing', 'up'] },
'👇': { name: 'backhand index pointing down', keywords: ['backhand', 'down', 'finger', 'hand', 'index', 'point', 'pointing'] },
'👈': { name: 'backhand index pointing left', keywords: ['backhand', 'finger', 'hand', 'index', 'left', 'point', 'pointing'] },
'👉': { name: 'backhand index pointing right', keywords: ['backhand', 'finger', 'hand', 'index', 'point', 'pointing', 'right'] },
'👊': { name: 'oncoming fist', keywords: ['absolutely', 'agree', 'boom', 'bro', 'bruh', 'bump', 'clenched', 'correct', 'fist', 'hand', 'knuckle', 'oncoming', 'pound', 'punch', 'rock', 'ttyl'] },
'👋': { name: 'waving hand', keywords: ['bye', 'cya', 'g2g', 'greetings', 'gtg', 'hand', 'hello', 'hey', 'hi', 'later', 'outtie', 'ttfn', 'ttyl', 'wave', 'yo', 'you'] },
'👌': { name: 'OK hand', keywords: ['awesome', 'bet', 'dope', 'fleek', 'fosho', 'got', 'gotcha', 'hand', 'legit', 'ok', 'okay', 'pinch', 'rad', 'sure', 'sweet', 'three'] },
'👍': { name: 'thumbs up', keywords: ['+1', 'good', 'hand', 'like', 'thumb', 'up', 'yes'] },
'👎': { name: 'thumbs down', keywords: ['-1', 'bad', 'dislike', 'down', 'good', 'hand', 'no', 'nope', 'thumb', 'thumbs'] },
'👏': { name: 'clapping hands', keywords: ['applause', 'approval', 'awesome', 'clap', 'congrats', 'congratulations', 'excited', 'good', 'great', 'hand', 'homie', 'job', 'nice', 'prayed', 'well', 'yay'] },
'👐': { name: 'open hands', keywords: ['hand', 'hands', 'hug', 'jazz', 'open', 'swerve'] },
'👤': { name: 'bust in silhouette', keywords: ['bust', 'mysterious', 'shadow', 'silhouette'] },
'👥': { name: 'busts in silhouette', keywords: ['bff', 'bust', 'busts', 'everyone', 'friend', 'friends', 'people', 'silhouette'] },
'👦': { name: 'boy', keywords: ['bright-eyed', 'child', 'grandson', 'kid', 'son', 'young', 'younger'] },
'👧': { name: 'girl', keywords: ['bright-eyed', 'child', 'daughter', 'granddaughter', 'kid', 'virgo', 'young', 'younger', 'zodiac'] },
'👨': { name: 'man', keywords: ['adult', 'bro'] },
'👩': { name: 'woman', keywords: ['adult', 'lady'] },
'👱': { name: 'person: blond hair', keywords: ['blond', 'blond-haired', 'human', 'person'] },
'👴': { name: 'old man', keywords: ['adult', 'bald', 'elderly', 'gramps', 'grandfather', 'grandpa', 'man', 'old', 'wise'] },
'👵': { name: 'old woman', keywords: ['adult', 'elderly', 'grandma', 'grandmother', 'granny', 'lady', 'old', 'wise', 'woman'] },
'👶': { name: 'baby', keywords: ['babies', 'children', 'goo', 'infant', 'newborn', 'pregnant', 'young'] },
'👹': { name: 'ogre', keywords: ['creature', 'devil', 'face', 'fairy', 'fairytale', 'fantasy', 'mask', 'monster', 'scary', 'tale'] },
'👺': { name: 'goblin', keywords: ['angry', 'creature', 'face', 'fairy', 'fairytale', 'fantasy', 'mask', 'mean', 'monster', 'tale'] },
'👻': { name: 'ghost', keywords: ['boo', 'creature', 'excited', 'face', 'fairy', 'fairytale', 'fantasy', 'halloween', 'haunting', 'monster', 'scary', 'silly', 'tale'] },
'👽': { name: 'alien', keywords: ['creature', 'extraterrestrial', 'face', 'fairy', 'fairytale', 'fantasy', 'monster', 'space', 'tale', 'ufo'] },
'👾': { name: 'alien monster', keywords: ['alien', 'creature', 'extraterrestrial', 'face', 'fairy', 'fairytale', 'fantasy', 'game', 'gamer', 'games', 'monster', 'pixelated', 'space', 'tale', 'ufo'] },
'👿': { name: 'angry face with horns', keywords: ['angry', 'demon', 'devil', 'evil', 'face', 'fairy', 'fairytale', 'fantasy', 'horns', 'imp', 'mischievous', 'purple', 'shade', 'tale'] },
'💀': { name: 'skull', keywords: ['body', 'dead', 'death', 'face', 'fairy', 'fairytale', 'im', 'lmao', 'monster', 'tale', 'yolo'] },
'💁': { name: 'person tipping hand', keywords: ['fetch', 'flick', 'flip', 'gossip', 'hand', 'person', 'sarcasm', 'sarcastic', 'sassy', 'seriously', 'tipping', 'whatever'] },
'💅': { name: 'nail polish', keywords: ['bored', 'care', 'cosmetics', 'done', 'makeup', 'manicure', 'nail', 'polish', 'whatever'] },
'💉': { name: 'syringe', keywords: ['doctor', 'flu', 'medicine', 'needle', 'shot', 'sick', 'tool', 'vaccination'] },
'💊': { name: 'pill', keywords: ['doctor', 'drugs', 'medicated', 'medicine', 'pills', 'sick', 'vitamin'] },
'💋': { name: 'kiss mark', keywords: ['dating', 'emotion', 'heart', 'kiss', 'kissing', 'lips', 'mark', 'romance', 'sexy'] },
'💌': { name: 'love letter', keywords: ['heart', 'letter', 'love', 'mail', 'romance', 'valentine'] },
'💎': { name: 'gem stone', keywords: ['diamond', 'engagement', 'gem', 'jewel', 'money', 'romance', 'stone', 'wedding'] },
'💐': { name: 'bouquet', keywords: ['anniversary', 'birthday', 'date', 'flower', 'love', 'plant', 'romance'] },
'💒': { name: 'wedding', keywords: ['chapel', 'hitched', 'nuptials', 'romance'] },
'💓': { name: 'beating heart', keywords: ['143', 'beating', 'cardio', 'emotion', 'heart', 'heartbeat', 'ily', 'love', 'pulsating', 'pulse'] },
'💔': { name: 'broken heart', keywords: ['break', 'broken', 'crushed', 'emotion', 'heart', 'heartbroken', 'lonely', 'sad'] },
'💕': { name: 'two hearts', keywords: ['143', 'anniversary', 'date', 'dating', 'emotion', 'heart', 'hearts', 'ily', 'kisses', 'love', 'loving', 'two', 'xoxo'] },
'💖': { name: 'sparkling heart', keywords: ['143', 'emotion', 'excited', 'good', 'heart', 'ily', 'kisses', 'morning', 'night', 'sparkle', 'sparkling', 'xoxo'] },
'💗': { name: 'growing heart', keywords: ['143', 'emotion', 'excited', 'growing', 'heart', 'heartpulse', 'ily', 'kisses', 'muah', 'nervous', 'pulse', 'xoxo'] },
'💘': { name: 'heart with arrow', keywords: ['143', 'adorbs', 'arrow', 'cupid', 'date', 'emotion', 'heart', 'ily', 'love', 'romance', 'valentine'] },
'💙': { name: 'blue heart', keywords: ['143', 'blue', 'emotion', 'heart', 'ily', 'love', 'romance'] },
'💚': { name: 'green heart', keywords: ['143', 'emotion', 'green', 'heart', 'ily', 'love', 'romantic'] },
'💛': { name: 'yellow heart', keywords: ['143', 'cardiac', 'emotion', 'heart', 'ily', 'love', 'yellow'] },
'💜': { name: 'purple heart', keywords: ['143', 'bestest', 'emotion', 'heart', 'ily', 'love', 'purple'] },
'💝': { name: 'heart with ribbon', keywords: ['143', 'anniversary', 'emotion', 'heart', 'ily', 'kisses', 'ribbon', 'valentine', 'xoxo'] },
'💞': { name: 'revolving hearts', keywords: ['143', 'adorbs', 'anniversary', 'emotion', 'heart', 'hearts', 'revolving'] },
'💟': { name: 'heart decoration', keywords: ['143', 'decoration', 'emotion', 'heart', 'hearth', 'purple', 'white'] },
'💠': { name: 'diamond with a dot', keywords: ['comic', 'diamond', 'dot', 'geometric'] },
'💡': { name: 'light bulb', keywords: ['bulb', 'comic', 'electric', 'idea', 'light'] },
'💢': { name: 'anger symbol', keywords: ['anger', 'angry', 'comic', 'mad', 'symbol', 'upset'] },
'💣': { name: 'bomb', keywords: ['boom', 'comic', 'dangerous', 'explosion', 'hot'] },
'💥': { name: 'collision', keywords: ['bomb', 'boom', 'collide', 'comic', 'explode'] },
'💦': { name: 'sweat droplets', keywords: ['comic', 'drip', 'droplet', 'droplets', 'drops', 'splashing', 'squirt', 'sweat', 'water', 'wet', 'work', 'workout'] },
'💧': { name: 'droplet', keywords: ['cold', 'comic', 'drop', 'nature', 'sad', 'sweat', 'tear', 'water', 'weather'] },
'💨': { name: 'dashing away', keywords: ['away', 'cloud', 'comic', 'dash', 'dashing', 'fart', 'fast', 'go', 'gone', 'gotta', 'running', 'smoke'] },
'💩': { name: 'pile of poo', keywords: ['bs', 'comic', 'doo', 'dung', 'face', 'fml', 'monster', 'pile', 'poo', 'poop', 'smelly', 'smh', 'stink', 'stinks', 'stinky', 'turd'] },
'💪': { name: 'flexed biceps', keywords: ['arm', 'beast', 'bench', 'biceps', 'bodybuilder', 'bro', 'curls', 'flex', 'gains', 'gym', 'jacked', 'muscle', 'press', 'ripped', 'strong', 'weightlift'] },
'💫': { name: 'dizzy', keywords: ['comic', 'shining', 'shooting', 'star', 'stars'] },
'💬': { name: 'speech balloon', keywords: ['balloon', 'bubble', 'comic', 'dialog', 'message', 'sms', 'speech', 'talk', 'text', 'typing'] },
'💭': { name: 'thought balloon', keywords: ['balloon', 'bubble', 'cartoon', 'cloud', 'comic', 'daydream', 'decisions', 'dream', 'idea', 'invent', 'invention', 'realize', 'think', 'thoughts', 'wonder'] },
'💯': { name: 'hundred points', keywords: ['100', 'a+', 'agree', 'clearly', 'definitely', 'faithful', 'fleek', 'full', 'hundred', 'keep', 'perfect', 'point', 'score', 'true', 'truth', 'yup'] },
'💰': { name: 'money bag', keywords: ['bag', 'bank', 'bet', 'billion', 'cash', 'cost', 'dollar', 'gold', 'million', 'money', 'moneybag', 'paid', 'paying', 'pot', 'rich', 'win'] },
'💱': { name: 'currency exchange', keywords: ['bank', 'currency', 'exchange', 'money'] },
'💲': { name: 'heavy dollar sign', keywords: ['billion', 'cash', 'charge', 'currency', 'dollar', 'heavy', 'million', 'money', 'pay', 'sign'] },
'💳': { name: 'credit card', keywords: ['bank', 'card', 'cash', 'charge', 'credit', 'money', 'pay'] },
'💴': { name: 'yen banknote', keywords: ['bank', 'banknote', 'bill', 'currency', 'money', 'note', 'yen'] },
'💵': { name: 'dollar banknote', keywords: ['bank', 'banknote', 'bill', 'currency', 'dollar', 'money', 'note'] },
'💶': { name: 'euro banknote', keywords: ['100', 'bank', 'banknote', 'bill', 'currency', 'euro', 'money', 'note', 'rich'] },
'💷': { name: 'pound banknote', keywords: ['bank', 'banknote', 'bill', 'billion', 'cash', 'currency', 'money', 'note', 'pound', 'pounds'] },
'💸': { name: 'money with wings', keywords: ['bank', 'banknote', 'bill', 'billion', 'cash', 'dollar', 'fly', 'million', 'money', 'note', 'pay', 'wings'] },
'💻': { name: 'laptop', keywords: ['computer', 'office', 'pc', 'personal'] },
'💽': { name: 'computer disk', keywords: ['computer', 'disk', 'minidisk', 'optical'] },
'💾': { name: 'floppy disk', keywords: ['computer', 'disk', 'floppy'] },
'💿': { name: 'optical disk', keywords: ['blu-ray', 'cd', 'computer', 'disk', 'dvd', 'optical'] },
'📀': { name: 'dvd', keywords: ['blu-ray', 'cd', 'computer', 'disk', 'optical'] },
'📁': { name: 'file folder', keywords: ['file', 'folder'] },
'📂': { name: 'open file folder', keywords: ['file', 'folder', 'open'] },
'📃': { name: 'page with curl', keywords: ['curl', 'document', 'page', 'paper'] },
'📄': { name: 'page facing up', keywords: ['document', 'facing', 'page', 'paper', 'up'] },
'📅': { name: 'calendar', keywords: ['date'] },
'📆': { name: 'tear-off calendar', keywords: ['calendar', 'tear-off'] },
'📇': { name: 'card index', keywords: ['card', 'index', 'old', 'rolodex', 'school'] },
'📋': { name: 'clipboard', keywords: ['do', 'list', 'notes'] },
'📌': { name: 'pushpin', keywords: ['collage', 'pin'] },
'📎': { name: 'paperclip', keywords: ['paperclip'] },
'📏': { name: 'straight ruler', keywords: ['angle', 'edge', 'math', 'ruler', 'straight', 'straightedge'] },
'📐': { name: 'triangular ruler', keywords: ['angle', 'math', 'rule', 'ruler', 'set', 'slide', 'triangle', 'triangular'] },
'📒': { name: 'ledger', keywords: ['notebook'] },
'📓': { name: 'notebook', keywords: ['notebook'] },
'📔': { name: 'notebook with decorative cover', keywords: ['book', 'cover', 'decorated', 'decorative', 'education', 'notebook', 'school', 'writing'] },
'📕': { name: 'closed book', keywords: ['book', 'closed', 'education'] },
'📖': { name: 'open book', keywords: ['book', 'education', 'fantasy', 'knowledge', 'library', 'novels', 'open', 'reading'] },
'📗': { name: 'green book', keywords: ['book', 'education', 'fantasy', 'green', 'library', 'reading'] },
'📘': { name: 'blue book', keywords: ['blue', 'book', 'education', 'fantasy', 'library', 'reading'] },
'📙': { name: 'orange book', keywords: ['book', 'education', 'fantasy', 'library', 'orange', 'reading'] },
'📚': { name: 'books', keywords: ['book', 'education', 'fantasy', 'knowledge', 'library', 'novels', 'reading', 'school', 'study'] },
'📛': { name: 'name badge', keywords: ['badge', 'name'] },
'📜': { name: 'scroll', keywords: ['paper'] },
'📝': { name: 'memo', keywords: ['communication', 'media', 'notes', 'pencil'] },
'📞': { name: 'telephone receiver', keywords: ['communication', 'phone', 'receiver', 'telephone', 'voip'] },
'📟': { name: 'pager', keywords: ['communication'] },
'📡': { name: 'satellite antenna', keywords: ['aliens', 'antenna', 'contact', 'dish', 'satellite', 'science'] },
'📢': { name: 'loudspeaker', keywords: ['address', 'communication', 'loud', 'public', 'sound'] },
'📣': { name: 'megaphone', keywords: ['cheering', 'sound'] },
'📤': { name: 'outbox tray', keywords: ['box', 'email', 'letter', 'mail', 'outbox', 'sent', 'tray'] },
'📥': { name: 'inbox tray', keywords: ['box', 'email', 'inbox', 'letter', 'mail', 'receive', 'tray', 'zero'] },
'📦': { name: 'package', keywords: ['box', 'communication', 'delivery', 'parcel', 'shipping'] },
'📧': { name: 'e-mail', keywords: ['email', 'letter', 'mail'] },
'📨': { name: 'incoming envelope', keywords: ['delivering', 'e-mail', 'email', 'envelope', 'incoming', 'letter', 'mail', 'receive', 'sent'] },
'📩': { name: 'envelope with arrow', keywords: ['arrow', 'communication', 'down', 'e-mail', 'email', 'envelope', 'letter', 'mail', 'outgoing', 'send', 'sent'] },
'📪': { name: 'closed mailbox with lowered flag', keywords: ['closed', 'flag', 'lowered', 'mail', 'mailbox', 'postbox'] },
'📫': { name: 'closed mailbox with raised flag', keywords: ['closed', 'communication', 'flag', 'mail', 'mailbox', 'postbox', 'raised'] },
'📬': { name: 'open mailbox with raised flag', keywords: ['flag', 'mail', 'mailbox', 'open', 'postbox', 'raised'] },
'📭': { name: 'open mailbox with lowered flag', keywords: ['flag', 'lowered', 'mail', 'mailbox', 'open', 'postbox'] },
'📮': { name: 'postbox', keywords: ['mail', 'mailbox'] },
'📯': { name: 'postal horn', keywords: ['horn', 'post', 'postal'] },
'📰': { name: 'newspaper', keywords: ['communication', 'news', 'paper'] },
'📱': { name: 'mobile phone', keywords: ['cell', 'communication', 'mobile', 'phone', 'telephone'] },
'📵': { name: 'no mobile phones', keywords: ['cell', 'forbidden', 'mobile', 'no', 'not', 'phone', 'phones', 'prohibited', 'telephone'] },
'📷': { name: 'camera', keywords: ['photo', 'selfie', 'snap', 'tbt', 'trip', 'video'] },
'📸': { name: 'camera with flash', keywords: ['camera', 'flash', 'video'] },
'📹': { name: 'video camera', keywords: ['camcorder', 'camera', 'tbt', 'video'] },
'📺': { name: 'television', keywords: ['tv', 'video'] },
'📻': { name: 'radio', keywords: ['entertainment', 'tbt', 'video'] },
'🔇': { name: 'muted speaker', keywords: ['mute', 'muted', 'quiet', 'silent', 'sound', 'speaker'] },
'🔈': { name: 'speaker low volume', keywords: ['low', 'soft', 'sound', 'speaker', 'volume'] },
'🔉': { name: 'speaker medium volume', keywords: ['medium', 'sound', 'speaker', 'volume'] },
'🔊': { name: 'speaker high volume', keywords: ['high', 'loud', 'music', 'sound', 'speaker', 'volume'] },
'🔋': { name: 'battery', keywords: ['battery'] },
'🔌': { name: 'electric plug', keywords: ['electric', 'electricity', 'plug'] },
'🔏': { name: 'locked with pen', keywords: ['ink', 'lock', 'locked', 'nib', 'pen', 'privacy'] },
'🔐': { name: 'locked with key', keywords: ['bike', 'closed', 'key', 'lock', 'locked', 'secure'] },
'🔑': { name: 'key', keywords: ['keys', 'lock', 'major', 'password', 'unlock'] },
'🔒': { name: 'locked', keywords: ['closed', 'lock', 'private'] },
'🔓': { name: 'unlocked', keywords: ['cracked', 'lock', 'open', 'unlock'] },
'🔔': { name: 'bell', keywords: ['break', 'church', 'sound'] },
'🔕': { name: 'bell with slash', keywords: ['bell', 'forbidden', 'mute', 'no', 'not', 'prohibited', 'quiet', 'silent', 'slash', 'sound'] },
'🔖': { name: 'bookmark', keywords: ['mark'] },
'🔞': { name: 'no one under eighteen', keywords: ['18', 'age', 'eighteen', 'forbidden', 'no', 'not', 'one', 'prohibited', 'restriction', 'underage'] },
'🔟': { name: 'keycap: 10', keywords: ['keycap'] },
'🔢': { name: 'input numbers', keywords: ['1234', 'input', 'numbers'] },
'🔣': { name: 'input symbols', keywords: ['%', '&', 'input', 'symbols', '♪', '〒'] },
'🔤': { name: 'input latin letters', keywords: ['abc', 'alphabet', 'input', 'latin', 'letters'] },
'🔥': { name: 'fire', keywords: ['af', 'burn', 'flame', 'hot', 'lit', 'litaf', 'tool'] },
'🔦': { name: 'flashlight', keywords: ['electric', 'light', 'tool', 'torch'] },
'🔧': { name: 'wrench', keywords: ['home', 'improvement', 'spanner', 'tool'] },
'🔨': { name: 'hammer', keywords: ['home', 'improvement', 'repairs', 'tool'] },
'🔩': { name: 'nut and bolt', keywords: ['bolt', 'home', 'improvement', 'nut', 'tool'] },
'🔪': { name: 'kitchen knife', keywords: ['chef', 'cooking', 'hocho', 'kitchen', 'knife', 'tool', 'weapon'] },
'🔫': { name: 'water pistol', keywords: ['gun', 'handgun', 'pistol', 'revolver', 'tool', 'water', 'weapon'] },
'🔬': { name: 'microscope', keywords: ['experiment', 'lab', 'science', 'tool'] },
'🔭': { name: 'telescope', keywords: ['contact', 'extraterrestrial', 'science', 'tool'] },
'🔰': { name: 'Japanese symbol for beginner', keywords: ['beginner', 'chevron', 'green', 'japanese', 'leaf', 'symbol', 'tool', 'yellow'] },
'🔱': { name: 'trident emblem', keywords: ['anchor', 'emblem', 'poseidon', 'ship', 'tool', 'trident'] },
'🔴': { name: 'red circle', keywords: ['circle', 'geometric', 'red'] },
'🔵': { name: 'blue circle', keywords: ['blue', 'circle', 'geometric'] },
'🔶': { name: 'large orange diamond', keywords: ['diamond', 'geometric', 'large', 'orange'] },
'🔷': { name: 'large blue diamond', keywords: ['blue', 'diamond', 'geometric', 'large'] },
'🔸': { name: 'small orange diamond', keywords: ['diamond', 'geometric', 'orange', 'small'] },
'🔹': { name: 'small blue diamond', keywords: ['blue', 'diamond', 'geometric', 'small'] },
'🔺': { name: 'red triangle pointed up', keywords: ['geometric', 'pointed', 'red', 'triangle', 'up'] },
'🔻': { name: 'red triangle pointed down', keywords: ['down', 'geometric', 'pointed', 'red', 'triangle'] },
'🕊️': { name: 'dove', keywords: ['bird', 'fly', 'ornithology', 'peace'] },
'🕌': { name: 'mosque', keywords: ['islam', 'masjid', 'muslim', 'religion'] },
'🕯️': { name: 'candle', keywords: ['light'] },
'🕰️': { name: 'mantelpiece clock', keywords: ['clock', 'mantelpiece', 'time'] },
'🕷️': { name: 'spider', keywords: ['animal', 'insect'] },
'🖊️': { name: 'pen', keywords: ['ballpoint'] },
'🖋️': { name: 'fountain pen', keywords: ['fountain', 'pen'] },
'🖌️': { name: 'paintbrush', keywords: ['painting'] },
'🖍️': { name: 'crayon', keywords: ['crayon'] },
'🖐️': { name: 'hand with fingers splayed', keywords: ['finger', 'fingers', 'hand', 'raised', 'splayed', 'stop'] },
'🖕': { name: 'middle finger', keywords: ['finger', 'hand', 'middle'] },
'🖖': { name: 'vulcan salute', keywords: ['finger', 'hand', 'hands', 'salute', 'vulcan'] },
'🖤': { name: 'black heart', keywords: ['black', 'evil', 'heart', 'wicked'] },
'🖥️': { name: 'desktop computer', keywords: ['computer', 'desktop', 'monitor'] },
'🖨️': { name: 'printer', keywords: ['computer'] },
'🖱️': { name: 'computer mouse', keywords: ['computer', 'mouse'] },
'🗃️': { name: 'card file box', keywords: ['box', 'card', 'file'] },
'🗄️': { name: 'file cabinet', keywords: ['cabinet', 'file', 'filing', 'paper'] },
'🗑️': { name: 'wastebasket', keywords: ['can', 'garbage', 'trash', 'waste'] },
'🗝️': { name: 'old key', keywords: ['clue', 'key', 'lock', 'old'] },
'🗡️': { name: 'dagger', keywords: ['knife', 'weapon'] },
'🗣️': { name: 'speaking head', keywords: ['face', 'head', 'silhouette', 'speak', 'speaking'] },
'🗯️': { name: 'right anger bubble', keywords: ['anger', 'angry', 'balloon', 'bubble', 'mad', 'right'] },
'🗺️': { name: 'world map', keywords: ['map', 'world'] },
'🗼': { name: 'Tokyo tower', keywords: ['tokyo', 'tower'] },
'🗽': { name: 'Statue of Liberty', keywords: ['liberty', 'new', 'ny', 'nyc', 'statue', 'york'] },
'🗿': { name: 'moai', keywords: ['face', 'moyai', 'statue', 'stoneface', 'travel'] },
'😀': { name: 'grinning face', keywords: ['cheerful', 'cheery', 'face', 'grin', 'grinning', 'happy', 'laugh', 'nice', 'smile', 'smiling', 'teeth'] },
'😁': { name: 'beaming face with smiling eyes', keywords: ['beaming', 'eye', 'eyes', 'face', 'grin', 'grinning', 'happy', 'nice', 'smile', 'smiling', 'teeth'] },
'😂': { name: 'face with tears of joy', keywords: ['crying', 'face', 'feels', 'funny', 'haha', 'happy', 'hehe', 'hilarious', 'joy', 'laugh', 'lmao', 'lol', 'rofl', 'roflmao', 'tear'] },
'😃': { name: 'grinning face with big eyes', keywords: ['awesome', 'big', 'eyes', 'face', 'grin', 'grinning', 'happy', 'mouth', 'open', 'smile', 'smiling', 'teeth', 'yay'] },
'😄': { name: 'grinning face with smiling eyes', keywords: ['eye', 'eyes', 'face', 'grin', 'grinning', 'happy', 'laugh', 'lol', 'mouth', 'open', 'smile', 'smiling'] },
'😅': { name: 'grinning face with sweat', keywords: ['cold', 'dejected', 'excited', 'face', 'grinning', 'mouth', 'nervous', 'open', 'smile', 'smiling', 'stress', 'stressed', 'sweat'] },
'😆': { name: 'grinning squinting face', keywords: ['closed', 'eyes', 'face', 'grinning', 'haha', 'hahaha', 'happy', 'laugh', 'lol', 'mouth', 'open', 'rofl', 'smile', 'smiling', 'squinting'] },
'😇': { name: 'smiling face with halo', keywords: ['angel', 'angelic', 'angels', 'blessed', 'face', 'fairy', 'fairytale', 'fantasy', 'halo', 'happy', 'innocent', 'peaceful', 'smile', 'smiling', 'spirit', 'tale'] },
'😈': { name: 'smiling face with horns', keywords: ['demon', 'devil', 'evil', 'face', 'fairy', 'fairytale', 'fantasy', 'horns', 'purple', 'shade', 'smile', 'smiling', 'tale'] },
'😉': { name: 'winking face', keywords: ['face', 'flirt', 'heartbreaker', 'sexy', 'slide', 'tease', 'wink', 'winking', 'winks'] },
'😊': { name: 'smiling face with smiling eyes', keywords: ['blush', 'eye', 'eyes', 'face', 'glad', 'satisfied', 'smile', 'smiling'] },
'😋': { name: 'face savoring food', keywords: ['delicious', 'eat', 'face', 'food', 'full', 'hungry', 'savor', 'smile', 'smiling', 'tasty', 'um', 'yum', 'yummy'] },
'😌': { name: 'relieved face', keywords: ['calm', 'face', 'peace', 'relief', 'relieved', 'zen'] },
'😍': { name: 'smiling face with heart-eyes', keywords: ['143', 'bae', 'eye', 'face', 'feels', 'heart-eyes', 'hearts', 'ily', 'kisses', 'love', 'romance', 'romantic', 'smile', 'xoxo'] },
'😎': { name: 'smiling face with sunglasses', keywords: ['awesome', 'beach', 'bright', 'bro', 'chilling', 'cool', 'face', 'rad', 'relaxed', 'shades', 'slay', 'smile', 'style', 'sunglasses', 'swag', 'win'] },
'😏': { name: 'smirking face', keywords: ['boss', 'dapper', 'face', 'flirt', 'homie', 'kidding', 'leer', 'shade', 'slick', 'sly', 'smirk', 'smug', 'snicker', 'suave', 'suspicious', 'swag'] },
'😐': { name: 'neutral face', keywords: ['awkward', 'blank', 'deadpan', 'expressionless', 'face', 'fine', 'jealous', 'meh', 'neutral', 'oh', 'shade', 'straight', 'unamused', 'unhappy', 'unimpressed', 'whatever'] },
'😑': { name: 'expressionless face', keywords: ['awkward', 'dead', 'expressionless', 'face', 'fine', 'inexpressive', 'jealous', 'meh', 'not', 'oh', 'omg', 'straight', 'uh', 'unhappy', 'unimpressed', 'whatever'] },
'😒': { name: 'unamused face', keywords: ['...', 'bored', 'face', 'fine', 'jealous', 'jel', 'jelly', 'pissed', 'smh', 'ugh', 'uhh', 'unamused', 'unhappy', 'weird', 'whatever'] },
'😓': { name: 'downcast face with sweat', keywords: ['close', 'cold', 'downcast', 'face', 'feels', 'headache', 'nervous', 'sad', 'scared', 'sweat', 'yikes'] },
'😔': { name: 'pensive face', keywords: ['awful', 'bored', 'dejected', 'died', 'disappointed', 'face', 'losing', 'lost', 'pensive', 'sad', 'sucks'] },
'😕': { name: 'confused face', keywords: ['befuddled', 'confused', 'confusing', 'dunno', 'face', 'frown', 'hm', 'meh', 'not', 'sad', 'sorry', 'sure'] },
'😖': { name: 'confounded face', keywords: ['annoyed', 'confounded', 'confused', 'cringe', 'distraught', 'face', 'feels', 'frustrated', 'mad', 'sad'] },
'😗': { name: 'kissing face', keywords: ['143', 'date', 'dating', 'face', 'flirt', 'ily', 'kiss', 'love', 'smooch', 'smooches', 'xoxo', 'you'] },
'😘': { name: 'face blowing a kiss', keywords: ['adorbs', 'bae', 'blowing', 'face', 'flirt', 'heart', 'ily', 'kiss', 'love', 'lover', 'miss', 'muah', 'romantic', 'smooch', 'xoxo', 'you'] },
'😙': { name: 'kissing face with smiling eyes', keywords: ['143', 'closed', 'date', 'dating', 'eye', 'eyes', 'face', 'flirt', 'ily', 'kiss', 'kisses', 'kissing', 'love', 'night', 'smile', 'smiling'] },
'😚': { name: 'kissing face with closed eyes', keywords: ['143', 'bae', 'blush', 'closed', 'date', 'dating', 'eye', 'eyes', 'face', 'flirt', 'ily', 'kisses', 'kissing', 'smooches', 'xoxo'] },
'😛': { name: 'face with tongue', keywords: ['awesome', 'cool', 'face', 'nice', 'party', 'stuck-out', 'sweet', 'tongue'] },
'😜': { name: 'winking face with tongue', keywords: ['crazy', 'epic', 'eye', 'face', 'funny', 'joke', 'loopy', 'nutty', 'party', 'stuck-out', 'tongue', 'wacky', 'weirdo', 'wink', 'winking', 'yolo'] },
'😝': { name: 'squinting face with tongue', keywords: ['closed', 'eye', 'eyes', 'face', 'gross', 'horrible', 'omg', 'squinting', 'stuck-out', 'taste', 'tongue', 'whatever', 'yolo'] },
'😞': { name: 'disappointed face', keywords: ['awful', 'blame', 'dejected', 'disappointed', 'face', 'fail', 'losing', 'sad', 'unhappy'] },
'😟': { name: 'worried face', keywords: ['anxious', 'butterflies', 'face', 'nerves', 'nervous', 'sad', 'stress', 'stressed', 'surprised', 'worried', 'worry'] },
'😠': { name: 'angry face', keywords: ['anger', 'angry', 'blame', 'face', 'feels', 'frustrated', 'mad', 'maddening', 'rage', 'shade', 'unhappy', 'upset'] },
'😡': { name: 'enraged face', keywords: ['anger', 'angry', 'enraged', 'face', 'feels', 'mad', 'maddening', 'pouting', 'rage', 'red', 'shade', 'unhappy', 'upset'] },
'😢': { name: 'crying face', keywords: ['awful', 'cry', 'crying', 'face', 'feels', 'miss', 'sad', 'tear', 'triste', 'unhappy'] },
'😣': { name: 'persevering face', keywords: ['concentrate', 'concentration', 'face', 'focus', 'headache', 'persevere', 'persevering'] },
'😤': { name: 'face with steam from nose', keywords: ['anger', 'angry', 'face', 'feels', 'fume', 'fuming', 'furious', 'fury', 'mad', 'nose', 'steam', 'triumph', 'unhappy', 'won'] },
'😥': { name: 'sad but relieved face', keywords: ['anxious', 'call', 'close', 'complicated', 'disappointed', 'face', 'not', 'relieved', 'sad', 'sweat', 'time', 'whew'] },
'😦': { name: 'frowning face with open mouth', keywords: ['caught', 'face', 'frown', 'frowning', 'guard', 'mouth', 'open', 'scared', 'scary', 'surprise', 'what', 'wow'] },
'😧': { name: 'anguished face', keywords: ['anguished', 'face', 'forgot', 'scared', 'scary', 'stressed', 'surprise', 'unhappy', 'what', 'wow'] },
'😨': { name: 'fearful face', keywords: ['afraid', 'anxious', 'blame', 'face', 'fear', 'fearful', 'scared', 'worried'] },
'😩': { name: 'weary face', keywords: ['crying', 'face', 'fail', 'feels', 'hungry', 'mad', 'nooo', 'sad', 'sleepy', 'tired', 'unhappy', 'weary'] },
'😪': { name: 'sleepy face', keywords: ['crying', 'face', 'good', 'night', 'sad', 'sleep', 'sleeping', 'sleepy', 'tired'] },
'😫': { name: 'tired face', keywords: ['cost', 'face', 'feels', 'nap', 'sad', 'sneeze', 'tired'] },
'😬': { name: 'grimacing face', keywords: ['awk', 'awkward', 'dentist', 'face', 'grimace', 'grimacing', 'grinning', 'smile', 'smiling'] },
'😭': { name: 'loudly crying face', keywords: ['bawling', 'cry', 'crying', 'face', 'loudly', 'sad', 'sob', 'tear', 'tears', 'unhappy'] },
'😮': { name: 'face with open mouth', keywords: ['believe', 'face', 'forgot', 'mouth', 'omg', 'open', 'shocked', 'surprised', 'sympathy', 'unbelievable', 'unreal', 'whoa', 'wow', 'you'] },
'😯': { name: 'hushed face', keywords: ['epic', 'face', 'hushed', 'omg', 'stunned', 'surprised', 'whoa', 'woah'] },
'😰': { name: 'anxious face with sweat', keywords: ['anxious', 'blue', 'cold', 'eek', 'face', 'mouth', 'nervous', 'open', 'rushed', 'scared', 'sweat', 'yikes'] },
'😱': { name: 'face screaming in fear', keywords: ['epic', 'face', 'fear', 'fearful', 'munch', 'scared', 'scream', 'screamer', 'screaming', 'shocked', 'surprised', 'woah'] },
'😲': { name: 'astonished face', keywords: ['astonished', 'cost', 'face', 'no', 'omg', 'shocked', 'totally', 'way'] },
'😳': { name: 'flushed face', keywords: ['amazed', 'awkward', 'crazy', 'dazed', 'dead', 'disbelief', 'embarrassed', 'face', 'flushed', 'geez', 'heat', 'hot', 'impressed', 'jeez', 'what', 'wow'] },
'😴': { name: 'sleeping face', keywords: ['bed', 'bedtime', 'face', 'good', 'goodnight', 'nap', 'night', 'sleep', 'sleeping', 'tired', 'whatever', 'yawn', 'zzz'] },
'😵': { name: 'face with crossed-out eyes', keywords: ['crossed-out', 'dead', 'dizzy', 'eyes', 'face', 'feels', 'knocked', 'out', 'sick', 'tired'] },
'😶': { name: 'face without mouth', keywords: ['awkward', 'blank', 'expressionless', 'face', 'mouth', 'mouthless', 'mute', 'quiet', 'secret', 'silence', 'silent', 'speechless'] },
'😷': { name: 'face with medical mask', keywords: ['cold', 'dentist', 'dermatologist', 'doctor', 'dr', 'face', 'germs', 'mask', 'medical', 'medicine', 'sick'] },
'😸': { name: 'grinning cat with smiling eyes', keywords: ['animal', 'cat', 'eye', 'eyes', 'face', 'grin', 'grinning', 'smile', 'smiling'] },
'😹': { name: 'cat with tears of joy', keywords: ['animal', 'cat', 'face', 'joy', 'laugh', 'laughing', 'lol', 'tear', 'tears'] },
'😺': { name: 'grinning cat', keywords: ['animal', 'cat', 'face', 'grinning', 'mouth', 'open', 'smile', 'smiling'] },
'😻': { name: 'smiling cat with heart-eyes', keywords: ['animal', 'cat', 'eye', 'face', 'heart', 'heart-eyes', 'love', 'smile', 'smiling'] },
'😼': { name: 'cat with wry smile', keywords: ['animal', 'cat', 'face', 'ironic', 'smile', 'wry'] },
'😽': { name: 'kissing cat', keywords: ['animal', 'cat', 'closed', 'eye', 'eyes', 'face', 'kiss', 'kissing'] },
'😾': { name: 'pouting cat', keywords: ['animal', 'cat', 'face', 'pouting'] },
'😿': { name: 'crying cat', keywords: ['animal', 'cat', 'cry', 'crying', 'face', 'sad', 'tear'] },
'🙀': { name: 'weary cat', keywords: ['animal', 'cat', 'face', 'oh', 'surprised', 'weary'] },
'🙁': { name: 'slightly frowning face', keywords: ['face', 'frown', 'frowning', 'sad', 'slightly'] },
'🙂': { name: 'slightly smiling face', keywords: ['face', 'happy', 'slightly', 'smile', 'smiling'] },
'🙃': { name: 'upside-down face', keywords: ['face', 'hehe', 'smile', 'upside-down'] },
'🙄': { name: 'face with rolling eyes', keywords: ['eyeroll', 'eyes', 'face', 'rolling', 'shade', 'ugh', 'whatever'] },
'🙅': { name: 'person gesturing NO', keywords: ['forbidden', 'gesture', 'hand', 'no', 'not', 'person', 'prohibit'] },
'🙆': { name: 'person gesturing OK', keywords: ['exercise', 'gesture', 'gesturing', 'hand', 'ok', 'omg', 'person'] },
'🙇': { name: 'person bowing', keywords: ['apology', 'ask', 'beg', 'bow', 'bowing', 'favor', 'forgive', 'gesture', 'meditate', 'meditation', 'person', 'pity', 'regret', 'sorry'] },
'🙈': { name: 'see-no-evil monkey', keywords: ['embarrassed', 'evil', 'face', 'forbidden', 'forgot', 'gesture', 'hide', 'monkey', 'no', 'omg', 'prohibited', 'scared', 'secret', 'smh', 'watch'] },
'🙉': { name: 'hear-no-evil monkey', keywords: ['animal', 'ears', 'evil', 'face', 'forbidden', 'gesture', 'hear', 'listen', 'monkey', 'no', 'not', 'prohibited', 'secret', 'shh', 'tmi'] },
'🙊': { name: 'speak-no-evil monkey', keywords: ['animal', 'evil', 'face', 'forbidden', 'gesture', 'monkey', 'no', 'not', 'oops', 'prohibited', 'quiet', 'secret', 'speak', 'stealth'] },
'🙋': { name: 'person raising hand', keywords: ['gesture', 'hand', 'here', 'know', 'me', 'person', 'pick', 'question', 'raise', 'raising'] },
'🙌': { name: 'raising hands', keywords: ['celebration', 'gesture', 'hand', 'hands', 'hooray', 'praise', 'raised', 'raising'] },
'🙏': { name: 'folded hands', keywords: ['appreciate', 'ask', 'beg', 'blessed', 'bow', 'cmon', 'five', 'folded', 'gesture', 'hand', 'high', 'please', 'pray', 'thanks', 'thx'] },
'🚀': { name: 'rocket', keywords: ['launch', 'rockets', 'space', 'travel'] },
'🚁': { name: 'helicopter', keywords: ['copter', 'roflcopter', 'travel', 'vehicle'] },
'🚂': { name: 'locomotive', keywords: ['caboose', 'engine', 'railway', 'steam', 'train', 'trains', 'travel'] },
'🚆': { name: 'train', keywords: ['arrived', 'choo', 'railway'] },
'🚇': { name: 'metro', keywords: ['subway', 'travel'] },
'🚌': { name: 'bus', keywords: ['school', 'vehicle'] },
'🚑': { name: 'ambulance', keywords: ['emergency', 'vehicle'] },
'🚒': { name: 'fire engine', keywords: ['engine', 'fire', 'truck'] },
'🚓': { name: 'police car', keywords: ['50', 'car', 'cops', 'patrol', 'police'] },
'🚕': { name: 'taxi', keywords: ['cab', 'cabbie', 'car', 'drive', 'vehicle', 'yellow'] },
'🚗': { name: 'automobile', keywords: ['car', 'driving', 'vehicle'] },
'🚙': { name: 'sport utility vehicle', keywords: ['car', 'drive', 'recreational', 'sport', 'sportutility', 'utility', 'vehicle'] },
'🚚': { name: 'delivery truck', keywords: ['car', 'delivery', 'drive', 'truck', 'vehicle'] },
'🚢': { name: 'ship', keywords: ['boat', 'passenger', 'travel'] },
'🚣': { name: 'person rowing boat', keywords: ['boat', 'canoe', 'cruise', 'fishing', 'lake', 'oar', 'paddle', 'person', 'raft', 'river', 'row', 'rowboat', 'rowing'] },
'🚦': { name: 'vertical traffic light', keywords: ['drove', 'intersection', 'light', 'signal', 'stop', 'stoplight', 'traffic', 'vertical'] },
'🚧': { name: 'construction', keywords: ['barrier'] },
'🚩': { name: 'triangular flag', keywords: ['construction', 'flag', 'golf', 'post', 'triangular'] },
'🚪': { name: 'door', keywords: ['back', 'closet', 'front'] },
'🚫': { name: 'prohibited', keywords: ['entry', 'forbidden', 'no', 'not', 'smoke'] },
'🚬': { name: 'cigarette', keywords: ['smoking'] },
'🚲': { name: 'bicycle', keywords: ['bike', 'class', 'cycle', 'cycling', 'cyclist', 'gang', 'ride', 'spin', 'spinning'] },
'🚴': { name: 'person biking', keywords: ['bicycle', 'bicyclist', 'bike', 'biking', 'cycle', 'cyclist', 'person', 'riding', 'sport'] },
'🚵': { name: 'person mountain biking', keywords: ['bicycle', 'bicyclist', 'bike', 'biking', 'cycle', 'cyclist', 'mountain', 'person', 'riding', 'sport'] },
'🚽': { name: 'toilet', keywords: ['bathroom'] },
'🚿': { name: 'shower', keywords: ['water'] },
'🛁': { name: 'bathtub', keywords: ['bath'] },
'🛋️': { name: 'couch and lamp', keywords: ['couch', 'hotel', 'lamp'] },
'🛎️': { name: 'bellhop bell', keywords: ['bell', 'bellhop', 'hotel'] },
'🛏️': { name: 'bed', keywords: ['hotel', 'sleep'] },
'🛒': { name: 'shopping cart', keywords: ['cart', 'shopping', 'trolley'] },
'🛕': { name: 'hindu temple', keywords: ['hindu', 'temple'] },
'🛠️': { name: 'hammer and wrench', keywords: ['hammer', 'spanner', 'tool', 'wrench'] },
'🛡️': { name: 'shield', keywords: ['weapon'] },
'🛢️': { name: 'oil drum', keywords: ['drum', 'oil'] },
'🛫': { name: 'airplane departure', keywords: ['aeroplane', 'airplane', 'check-in', 'departure', 'departures', 'plane'] },
'🛬': { name: 'airplane arrival', keywords: ['aeroplane', 'airplane', 'arrival', 'arrivals', 'arriving', 'landing', 'plane'] },
'🛴': { name: 'kick scooter', keywords: ['kick', 'scooter'] },
'🛵': { name: 'motor scooter', keywords: ['motor', 'scooter'] },
'🛶': { name: 'canoe', keywords: ['boat'] },
'🛷': { name: 'sled', keywords: ['luge', 'sledge', 'sleigh', 'snow', 'toboggan'] },
'🛸': { name: 'flying saucer', keywords: ['aliens', 'extra', 'flying', 'saucer', 'terrestrial', 'ufo'] },
'🛹': { name: 'skateboard', keywords: ['board', 'skate', 'skater', 'wheels'] },
'🛼': { name: 'roller skate', keywords: ['blades', 'roller', 'skate', 'skates', 'sport'] },
'🟠': { name: 'orange circle', keywords: ['circle', 'orange'] },
'🟡': { name: 'yellow circle', keywords: ['circle', 'yellow'] },
'🟢': { name: 'green circle', keywords: ['circle', 'green'] },
'🟣': { name: 'purple circle', keywords: ['circle', 'purple'] },
'🟤': { name: 'brown circle', keywords: ['brown', 'circle'] },
'🟥': { name: 'red square', keywords: ['card', 'penalty', 'red', 'square'] },
'🟦': { name: 'blue square', keywords: ['blue', 'square'] },
'🟧': { name: 'orange square', keywords: ['orange', 'square'] },
'🟨': { name: 'yellow square', keywords: ['card', 'penalty', 'square', 'yellow'] },
'🟩': { name: 'green square', keywords: ['green', 'square'] },
'🟪': { name: 'purple square', keywords: ['purple', 'square'] },
'🟫': { name: 'brown square', keywords: ['brown', 'square'] },
'🤌': { name: 'pinched fingers', keywords: ['fingers', 'gesture', 'hand', 'hold', 'huh', 'interrogation', 'patience', 'pinched', 'relax', 'sarcastic', 'ugh', 'what', 'zip'] },
'🤍': { name: 'white heart', keywords: ['143', 'heart', 'white'] },
'🤎': { name: 'brown heart', keywords: ['143', 'brown', 'heart'] },
'🤏': { name: 'pinching hand', keywords: ['amount', 'bit', 'fingers', 'hand', 'little', 'pinching', 'small', 'sort'] },
'🤐': { name: 'zipper-mouth face', keywords: ['face', 'keep', 'mouth', 'quiet', 'secret', 'shut', 'zip', 'zipper', 'zipper-mouth'] },
'🤑': { name: 'money-mouth face', keywords: ['face', 'money', 'money-mouth', 'mouth', 'paid'] },
'🤒': { name: 'face with thermometer', keywords: ['face', 'ill', 'sick', 'thermometer'] },
'🤓': { name: 'nerd face', keywords: ['brainy', 'clever', 'expert', 'face', 'geek', 'gifted', 'glasses', 'intelligent', 'nerd', 'smart'] },
'🤔': { name: 'thinking face', keywords: ['chin', 'consider', 'face', 'hmm', 'ponder', 'pondering', 'thinking', 'wondering'] },
'🤕': { name: 'face with head-bandage', keywords: ['bandage', 'face', 'head-bandage', 'hurt', 'injury', 'ouch'] },
'🤖': { name: 'robot', keywords: ['face', 'monster'] },
'🤗': { name: 'smiling face with open hands', keywords: ['face', 'hands', 'hug', 'hugging', 'open', 'smiling'] },
'🤘': { name: 'sign of the horns', keywords: ['finger', 'hand', 'horns', 'rock-on', 'sign'] },
'🤙': { name: 'call me hand', keywords: ['call', 'hand', 'hang', 'loose', 'me', 'shaka'] },
'🤚': { name: 'raised back of hand', keywords: ['back', 'backhand', 'hand', 'raised'] },
'🤛': { name: 'left-facing fist', keywords: ['fist', 'left-facing', 'leftwards'] },
'🤜': { name: 'right-facing fist', keywords: ['fist', 'right-facing', 'rightwards'] },
'🤝': { name: 'handshake', keywords: ['agreement', 'deal', 'hand', 'meeting', 'shake'] },
'🤞': { name: 'crossed fingers', keywords: ['cross', 'crossed', 'finger', 'fingers', 'hand', 'luck'] },
'🤟': { name: 'love-you gesture', keywords: ['fingers', 'gesture', 'hand', 'ily', 'love', 'love-you', 'three', 'you'] },
'🤠': { name: 'cowboy hat face', keywords: ['cowboy', 'cowgirl', 'face', 'hat'] },
'🤡': { name: 'clown face', keywords: ['clown', 'face'] },
'🤢': { name: 'nauseated face', keywords: ['face', 'gross', 'nasty', 'nauseated', 'sick', 'vomit'] },
'🤣': { name: 'rolling on the floor laughing', keywords: ['crying', 'face', 'floor', 'funny', 'haha', 'happy', 'hehe', 'hilarious', 'joy', 'laugh', 'lmao', 'lol', 'rofl', 'roflmao', 'rolling', 'tear'] },
'🤤': { name: 'drooling face', keywords: ['drooling', 'face'] },
'🤥': { name: 'lying face', keywords: ['face', 'liar', 'lie', 'lying', 'pinocchio'] },
'🤦': { name: 'person facepalming', keywords: ['again', 'bewilder', 'disbelief', 'exasperation', 'facepalm', 'no', 'not', 'oh', 'omg', 'person', 'shock', 'smh'] },
'🤧': { name: 'sneezing face', keywords: ['face', 'fever', 'flu', 'gesundheit', 'sick', 'sneeze', 'sneezing'] },
'🤨': { name: 'face with raised eyebrow', keywords: ['disapproval', 'disbelief', 'distrust', 'emoji', 'eyebrow', 'face', 'hmm', 'mild', 'raised', 'skeptic', 'skeptical', 'skepticism', 'surprise', 'what'] },
'🤩': { name: 'star-struck', keywords: ['excited', 'eyes', 'face', 'grinning', 'smile', 'star', 'starry-eyed', 'wow'] },
'🤪': { name: 'zany face', keywords: ['crazy', 'eye', 'eyes', 'face', 'goofy', 'large', 'small', 'zany'] },
'🤫': { name: 'shushing face', keywords: ['face', 'quiet', 'shh', 'shush', 'shushing'] },
'🤬': { name: 'face with symbols on mouth', keywords: ['censor', 'cursing', 'cussing', 'face', 'mad', 'mouth', 'pissed', 'swearing', 'symbols'] },
'🤭': { name: 'face with hand over mouth', keywords: ['face', 'giggle', 'giggling', 'hand', 'mouth', 'oops', 'realization', 'secret', 'shock', 'sudden', 'surprise', 'whoops'] },
'🤮': { name: 'face vomiting', keywords: ['barf', 'ew', 'face', 'gross', 'puke', 'sick', 'spew', 'throw', 'up', 'vomit', 'vomiting'] },
'🤯': { name: 'exploding head', keywords: ['blown', 'explode', 'exploding', 'head', 'mind', 'mindblown', 'no', 'shocked', 'way'] },
'🤲': { name: 'palms up together', keywords: ['cupped', 'dua', 'hands', 'palms', 'pray', 'prayer', 'together', 'up', 'wish'] },
'🤳': { name: 'selfie', keywords: ['camera', 'phone'] },
'🤷': { name: 'person shrugging', keywords: ['doubt', 'dunno', 'guess', 'idk', 'ignorance', 'indifference', 'knows', 'maybe', 'person', 'shrug', 'shrugging', 'whatever', 'who'] },
'🤸': { name: 'person cartwheeling', keywords: ['active', 'cartwheel', 'cartwheeling', 'excited', 'flip', 'gymnastics', 'happy', 'person', 'somersault'] },
'🤹': { name: 'person juggling', keywords: ['act', 'balance', 'balancing', 'handle', 'juggle', 'juggling', 'manage', 'multitask', 'person', 'skill'] },
'🤺': { name: 'person fencing', keywords: ['fencer', 'fencing', 'person', 'sword'] },
'🤼': { name: 'people wrestling', keywords: ['combat', 'duel', 'grapple', 'people', 'ring', 'tournament', 'wrestle', 'wrestling'] },
'🤾': { name: 'person playing handball', keywords: ['athletics', 'ball', 'catch', 'chuck', 'handball', 'hurl', 'lob', 'person', 'pitch', 'playing', 'sport', 'throw', 'toss'] },
'🥀': { name: 'wilted flower', keywords: ['dying', 'flower', 'wilted'] },
'🥁': { name: 'drum', keywords: ['drumsticks', 'music'] },
'🥂': { name: 'clinking glasses', keywords: ['celebrate', 'clink', 'clinking', 'drink', 'glass', 'glasses'] },
'🥃': { name: 'tumbler glass', keywords: ['glass', 'liquor', 'scotch', 'shot', 'tumbler', 'whiskey', 'whisky'] },
'🥄': { name: 'spoon', keywords: ['eat', 'tableware'] },
'🥅': { name: 'goal net', keywords: ['goal', 'net'] },
'🥇': { name: '1st place medal', keywords: ['1st', 'first', 'gold', 'medal', 'place'] },
'🥈': { name: '2nd place medal', keywords: ['2nd', 'medal', 'place', 'second', 'silver'] },
'🥉': { name: '3rd place medal', keywords: ['3rd', 'bronze', 'medal', 'place', 'third'] },
'🥊': { name: 'boxing glove', keywords: ['boxing', 'glove'] },
'🥋': { name: 'martial arts uniform', keywords: ['arts', 'judo', 'karate', 'martial', 'taekwondo', 'uniform'] },
'🥍': { name: 'lacrosse', keywords: ['ball', 'goal', 'sports', 'stick'] },
'🥎': { name: 'softball', keywords: ['ball', 'glove', 'sports', 'underarm'] },
'🥏': { name: 'flying disc', keywords: ['disc', 'flying', 'ultimate'] },
'🥐': { name: 'croissant', keywords: ['bread', 'breakfast', 'crescent', 'food', 'french', 'roll'] },
'🥑': { name: 'avocado', keywords: ['food', 'fruit'] },
'🥒': { name: 'cucumber', keywords: ['food', 'pickle', 'vegetable'] },
'🥓': { name: 'bacon', keywords: ['breakfast', 'food', 'meat'] },
'🥔': { name: 'potato', keywords: ['food', 'vegetable'] },
'🥕': { name: 'carrot', keywords: ['food', 'vegetable'] },
'🥖': { name: 'baguette bread', keywords: ['baguette', 'bread', 'food', 'french'] },
'🥗': { name: 'green salad', keywords: ['food', 'green', 'salad'] },
'🥘': { name: 'shallow pan of food', keywords: ['casserole', 'food', 'paella', 'pan', 'shallow'] },
'🥙': { name: 'stuffed flatbread', keywords: ['falafel', 'flatbread', 'food', 'gyro', 'kebab', 'stuffed'] },
'🥚': { name: 'egg', keywords: ['breakfast', 'food'] },
'🥛': { name: 'glass of milk', keywords: ['drink', 'glass', 'milk'] },
'🥜': { name: 'peanuts', keywords: ['food', 'nut', 'peanut', 'vegetable'] },
'🥝': { name: 'kiwi fruit', keywords: ['food', 'fruit', 'kiwi'] },
'🥞': { name: 'pancakes', keywords: ['breakfast', 'crêpe', 'food', 'hotcake', 'pancake'] },
'🥟': { name: 'dumpling', keywords: ['empanada', 'gyōza', 'jiaozi', 'pierogi', 'potsticker'] },
'🥠': { name: 'fortune cookie', keywords: ['cookie', 'fortune', 'prophecy'] },
'🥡': { name: 'takeout box', keywords: ['box', 'chopsticks', 'delivery', 'food', 'oyster', 'pail', 'takeout'] },
'🥢': { name: 'chopsticks', keywords: ['hashi', 'jeotgarak', 'kuaizi'] },
'🥣': { name: 'bowl with spoon', keywords: ['bowl', 'breakfast', 'cereal', 'congee', 'oatmeal', 'porridge', 'spoon'] },
'🥤': { name: 'cup with straw', keywords: ['cup', 'drink', 'juice', 'malt', 'soda', 'soft', 'straw', 'water'] },
'🥥': { name: 'coconut', keywords: ['colada', 'palm', 'piña'] },
'🥦': { name: 'broccoli', keywords: ['cabbage', 'wild'] },
'🥧': { name: 'pie', keywords: ['apple', 'filling', 'fruit', 'meat', 'pastry', 'pumpkin', 'slice'] },
'🥨': { name: 'pretzel', keywords: ['convoluted', 'twisted'] },
'🥩': { name: 'cut of meat', keywords: ['chop', 'cut', 'lambchop', 'meat', 'porkchop', 'red', 'steak'] },
'🥪': { name: 'sandwich', keywords: ['bread'] },
'🥫': { name: 'canned food', keywords: ['can', 'canned', 'food'] },
'🥬': { name: 'leafy green', keywords: ['bok', 'burgers', 'cabbage', 'choy', 'green', 'kale', 'leafy', 'lettuce', 'salad'] },
'🥭': { name: 'mango', keywords: ['food', 'fruit', 'tropical'] },
'🥮': { name: 'moon cake', keywords: ['autumn', 'cake', 'festival', 'moon', 'yuèbǐng'] },
'🥯': { name: 'bagel', keywords: ['bakery', 'bread', 'breakfast', 'schmear'] },
'🥰': { name: 'smiling face with hearts', keywords: ['3', 'adore', 'crush', 'face', 'heart', 'hearts', 'ily', 'love', 'romance', 'smile', 'smiling', 'you'] },
'🥱': { name: 'yawning face', keywords: ['bedtime', 'bored', 'face', 'goodnight', 'nap', 'night', 'sleep', 'sleepy', 'tired', 'whatever', 'yawn', 'yawning', 'zzz'] },
'🥲': { name: 'smiling face with tear', keywords: ['face', 'glad', 'grateful', 'happy', 'joy', 'pain', 'proud', 'relieved', 'smile', 'smiley', 'smiling', 'tear', 'touched'] },
'🥳': { name: 'partying face', keywords: ['bday', 'birthday', 'celebrate', 'celebration', 'excited', 'face', 'happy', 'hat', 'hooray', 'horn', 'party', 'partying'] },
'🥴': { name: 'woozy face', keywords: ['dizzy', 'drunk', 'eyes', 'face', 'intoxicated', 'mouth', 'tipsy', 'uneven', 'wavy', 'woozy'] },
'🥵': { name: 'hot face', keywords: ['dying', 'face', 'feverish', 'heat', 'hot', 'panting', 'red-faced', 'stroke', 'sweating', 'tongue'] },
'🥶': { name: 'cold face', keywords: ['blue', 'blue-faced', 'cold', 'face', 'freezing', 'frostbite', 'icicles', 'subzero', 'teeth'] },
'🥸': { name: 'disguised face', keywords: ['disguise', 'eyebrow', 'face', 'glasses', 'incognito', 'moustache', 'mustache', 'nose', 'person', 'spy', 'tache', 'tash'] },
'🥹': { name: 'face holding back tears', keywords: ['admiration', 'aww', 'back', 'cry', 'embarrassed', 'face', 'feelings', 'grateful', 'gratitude', 'holding', 'joy', 'please', 'proud', 'resist', 'sad', 'tears'] },
'🥺': { name: 'pleading face', keywords: ['begging', 'big', 'eyes', 'face', 'mercy', 'not', 'pleading', 'please', 'pretty', 'puppy', 'sad', 'why'] },
'🦀': { name: 'crab', keywords: ['cancer', 'zodiac'] },
'🦁': { name: 'lion', keywords: ['alpha', 'animal', 'face', 'leo', 'mane', 'order', 'rawr', 'roar', 'safari', 'strong', 'zodiac'] },
'🦂': { name: 'scorpion', keywords: ['scorpio', 'scorpius', 'zodiac'] },
'🦃': { name: 'turkey', keywords: ['bird', 'gobble', 'thanksgiving'] },
'🦄': { name: 'unicorn', keywords: ['face'] },
'🦅': { name: 'eagle', keywords: ['animal', 'bird', 'ornithology'] },
'🦆': { name: 'duck', keywords: ['animal', 'bird', 'ornithology'] },
'🦇': { name: 'bat', keywords: ['animal', 'vampire'] },
'🦈': { name: 'shark', keywords: ['animal', 'fish'] },
'🦉': { name: 'owl', keywords: ['animal', 'bird', 'ornithology', 'wise'] },
'🦊': { name: 'fox', keywords: ['animal', 'face'] },
'🦋': { name: 'butterfly', keywords: ['insect', 'pretty'] },
'🦌': { name: 'deer', keywords: ['animal'] },
'🦍': { name: 'gorilla', keywords: ['animal'] },
'🦎': { name: 'lizard', keywords: ['animal', 'reptile'] },
'🦏': { name: 'rhinoceros', keywords: ['animal'] },
'🦐': { name: 'shrimp', keywords: ['food', 'shellfish', 'small'] },
'🦑': { name: 'squid', keywords: ['animal', 'food', 'mollusk'] },
'🦒': { name: 'giraffe', keywords: ['animal', 'spots'] },
'🦓': { name: 'zebra', keywords: ['animal', 'stripe'] },
'🦔': { name: 'hedgehog', keywords: ['animal', 'spiny'] },
'🦕': { name: 'sauropod', keywords: ['brachiosaurus', 'brontosaurus', 'dinosaur', 'diplodocus'] },
'🦖': { name: 'T-Rex', keywords: ['dinosaur', 'rex', 't', 't-rex', 'tyrannosaurus'] },
'🦘': { name: 'kangaroo', keywords: ['animal', 'joey', 'jump', 'marsupial'] },
'🦙': { name: 'llama', keywords: ['alpaca', 'animal', 'guanaco', 'vicuña', 'wool'] },
'🦚': { name: 'peacock', keywords: ['animal', 'bird', 'colorful', 'ornithology', 'ostentatious', 'peahen', 'pretty', 'proud'] },
'🦛': { name: 'hippopotamus', keywords: ['animal', 'hippo'] },
'🦜': { name: 'parrot', keywords: ['animal', 'bird', 'ornithology', 'pirate', 'talk'] },
'🦝': { name: 'raccoon', keywords: ['animal', 'curious', 'sly'] },
'🦞': { name: 'lobster', keywords: ['animal', 'bisque', 'claws', 'seafood'] },
'🦡': { name: 'badger', keywords: ['animal', 'honey', 'pester'] },
'🦢': { name: 'swan', keywords: ['animal', 'bird', 'cygnet', 'duckling', 'ornithology', 'ugly'] },
'🦥': { name: 'sloth', keywords: ['lazy', 'slow'] },
'🦦': { name: 'otter', keywords: ['animal', 'fishing', 'playful'] },
'🦨': { name: 'skunk', keywords: ['animal', 'stink'] },
'🦩': { name: 'flamingo', keywords: ['animal', 'bird', 'flamboyant', 'ornithology', 'tropical'] },
'🦪': { name: 'oyster', keywords: ['diving', 'pearl'] },
'🦴': { name: 'bone', keywords: ['bones', 'dog', 'skeleton', 'wishbone'] },
'🦵': { name: 'leg', keywords: ['bent', 'foot', 'kick', 'knee', 'limb'] },
'🦶': { name: 'foot', keywords: ['ankle', 'feet', 'kick', 'stomp'] },
'🦷': { name: 'tooth', keywords: ['dentist', 'pearly', 'teeth', 'white'] },
'🦻': { name: 'ear with hearing aid', keywords: ['accessibility', 'aid', 'ear', 'hard', 'hearing'] },
'🦾': { name: 'mechanical arm', keywords: ['accessibility', 'arm', 'mechanical', 'prosthetic'] },
'🦿': { name: 'mechanical leg', keywords: ['accessibility', 'leg', 'mechanical', 'prosthetic'] },
'🧀': { name: 'cheese wedge', keywords: ['cheese', 'wedge'] },
'🧁': { name: 'cupcake', keywords: ['bakery', 'dessert', 'sprinkles', 'sugar', 'sweet', 'treat'] },
'🧂': { name: 'salt', keywords: ['condiment', 'flavor', 'mad', 'salty', 'shaker', 'taste', 'upset'] },
'🧃': { name: 'beverage box', keywords: ['beverage', 'box', 'juice', 'straw', 'sweet'] },
'🧄': { name: 'garlic', keywords: ['flavoring'] },
'🧅': { name: 'onion', keywords: ['flavoring'] },
'🧆': { name: 'falafel', keywords: ['chickpea', 'meatball'] },
'🧇': { name: 'waffle', keywords: ['breakfast', 'indecisive', 'iron'] },
'🧈': { name: 'butter', keywords: ['dairy'] },
'🧉': { name: 'mate', keywords: ['drink'] },
'🧊': { name: 'ice', keywords: ['cold', 'cube', 'iceberg'] },
'🧋': { name: 'bubble tea', keywords: ['boba', 'bubble', 'food', 'milk', 'pearl', 'tea'] },
'🧏': { name: 'deaf person', keywords: ['accessibility', 'deaf', 'ear', 'gesture', 'hear', 'person'] },
'🧐': { name: 'face with monocle', keywords: ['classy', 'face', 'fancy', 'monocle', 'rich', 'stuffy', 'wealthy'] },
'🧑': { name: 'person', keywords: ['adult'] },
'🧒': { name: 'child', keywords: ['bright-eyed', 'grandchild', 'kid', 'young', 'younger'] },
'🧓': { name: 'older person', keywords: ['adult', 'elderly', 'grandparent', 'old', 'person', 'wise'] },
'🧗': { name: 'person climbing', keywords: ['climb', 'climber', 'climbing', 'mountain', 'person', 'rock', 'scale', 'up'] },
'🧘': { name: 'person in lotus position', keywords: ['cross', 'legged', 'legs', 'lotus', 'meditation', 'peace', 'person', 'position', 'relax', 'serenity', 'yoga', 'yogi', 'zen'] },
'🧠': { name: 'brain', keywords: ['intelligent', 'smart'] },
'🧡': { name: 'orange heart', keywords: ['143', 'heart', 'orange'] },
'🧨': { name: 'firecracker', keywords: ['dynamite', 'explosive', 'fire', 'fireworks', 'light', 'pop', 'popping', 'spark'] },
'🧩': { name: 'puzzle piece', keywords: ['clue', 'interlocking', 'jigsaw', 'piece', 'puzzle'] },
'🧭': { name: 'compass', keywords: ['direction', 'magnetic', 'navigation', 'orienteering'] },
'🧯': { name: 'fire extinguisher', keywords: ['extinguish', 'extinguisher', 'fire', 'quench'] },
'🧰': { name: 'toolbox', keywords: ['box', 'chest', 'mechanic', 'red', 'tool'] },
'🧱': { name: 'brick', keywords: ['bricks', 'clay', 'mortar', 'wall'] },
'🧲': { name: 'magnet', keywords: ['attraction', 'horseshoe', 'magnetic', 'negative', 'positive', 'shape', 'u'] },
'🧳': { name: 'luggage', keywords: ['bag', 'packing', 'roller', 'suitcase', 'travel'] },
'🧴': { name: 'lotion bottle', keywords: ['bottle', 'lotion', 'moisturizer', 'shampoo', 'sunscreen'] },
'🧷': { name: 'safety pin', keywords: ['diaper', 'pin', 'punk', 'rock', 'safety'] },
'🧹': { name: 'broom', keywords: ['cleaning', 'sweeping', 'witch'] },
'🧺': { name: 'basket', keywords: ['farming', 'laundry', 'picnic'] },
'🧻': { name: 'roll of paper', keywords: ['paper', 'roll', 'toilet', 'towels'] },
'🧼': { name: 'soap', keywords: ['bar', 'bathing', 'clean', 'cleaning', 'lather', 'soapdish'] },
'🧽': { name: 'sponge', keywords: ['absorbing', 'cleaning', 'porous', 'soak'] },
'🧾': { name: 'receipt', keywords: ['accounting', 'bookkeeping', 'evidence', 'invoice', 'proof'] },
'🩸': { name: 'drop of blood', keywords: ['bleed', 'blood', 'donation', 'drop', 'injury', 'medicine', 'menstruation'] },
'🩹': { name: 'adhesive bandage', keywords: ['adhesive', 'bandage'] },
'🩺': { name: 'stethoscope', keywords: ['doctor', 'heart', 'medicine'] },
'🪀': { name: 'yo-yo', keywords: ['fluctuate', 'toy'] },
'🪁': { name: 'kite', keywords: ['fly', 'soar'] },
'🪄': { name: 'magic wand', keywords: ['magic', 'magician', 'wand', 'witch', 'wizard'] },
'🪅': { name: 'piñata', keywords: ['candy', 'celebrate', 'celebration', 'cinco', 'de', 'festive', 'mayo', 'party', 'pinada', 'pinata'] },
'🪐': { name: 'ringed planet', keywords: ['planet', 'ringed', 'saturn', 'saturnine'] },
'🪑': { name: 'chair', keywords: ['seat', 'sit'] },
'🪒': { name: 'razor', keywords: ['sharp', 'shave'] },
'🪓': { name: 'axe', keywords: ['ax', 'chop', 'hatchet', 'split', 'wood'] },
'🪔': { name: 'diya lamp', keywords: ['diya', 'lamp', 'light', 'oil'] },
'🪞': { name: 'mirror', keywords: ['makeup', 'reflection', 'reflector', 'speculum'] },
'🪟': { name: 'window', keywords: ['air', 'frame', 'fresh', 'opening', 'transparent', 'view'] },
'🪣': { name: 'bucket', keywords: ['cask', 'pail', 'vat'] },
'🪥': { name: 'toothbrush', keywords: ['bathroom', 'brush', 'clean', 'dental', 'hygiene', 'teeth', 'toiletry'] },
'🪦': { name: 'headstone', keywords: ['cemetery', 'dead', 'grave', 'graveyard', 'memorial', 'rip', 'tomb', 'tombstone'] },
'🪴': { name: 'potted plant', keywords: ['decor', 'grow', 'house', 'nurturing', 'plant', 'pot', 'potted'] },
'🫀': { name: 'anatomical heart', keywords: ['anatomical', 'beat', 'cardiology', 'heart', 'heartbeat', 'organ', 'pulse', 'real', 'red'] },
'🫁': { name: 'lungs', keywords: ['breath', 'breathe', 'exhalation', 'inhalation', 'lung', 'organ', 'respiration'] },
'🫂': { name: 'people hugging', keywords: ['comfort', 'embrace', 'farewell', 'friendship', 'goodbye', 'hello', 'hug', 'hugging', 'love', 'people', 'thanks'] },
'🫐': { name: 'blueberries', keywords: ['berries', 'berry', 'bilberry', 'blue', 'blueberry', 'food', 'fruit'] },
'🫑': { name: 'bell pepper', keywords: ['bell', 'capsicum', 'food', 'pepper', 'vegetable'] },
'🫒': { name: 'olive', keywords: ['food'] },
'🫖': { name: 'teapot', keywords: ['brew', 'drink', 'food', 'pot', 'tea'] },
'🫠': { name: 'melting face', keywords: ['disappear', 'dissolve', 'embarrassed', 'face', 'haha', 'heat', 'hot', 'liquid', 'lol', 'melt', 'melting', 'sarcasm', 'sarcastic'] },
'🫡': { name: 'saluting face', keywords: ['face', 'good', 'luck', 'maam', 'ok', 'respect', 'salute', 'saluting', 'sir', 'troops', 'yes'] },
'🫢': { name: 'face with open eyes and hand over mouth', keywords: ['amazement', 'awe', 'disbelief', 'embarrass', 'eyes', 'face', 'gasp', 'hand', 'mouth', 'omg', 'open', 'over', 'quiet', 'scared', 'shock', 'surprise'] },
'🫣': { name: 'face with peeking eye', keywords: ['captivated', 'embarrass', 'eye', 'face', 'hide', 'hiding', 'peek', 'peeking', 'peep', 'scared', 'shy', 'stare'] },
'🫤': { name: 'face with diagonal mouth', keywords: ['confused', 'confusion', 'diagonal', 'disappointed', 'doubt', 'doubtful', 'face', 'frustrated', 'frustration', 'meh', 'mouth', 'skeptical', 'unsure', 'whatever', 'wtv'] },
'🫥': { name: 'dotted line face', keywords: ['depressed', 'disappear', 'dotted', 'face', 'hidden', 'hide', 'introvert', 'invisible', 'line', 'meh', 'whatever', 'wtv'] },
'🫰': { name: 'hand with index finger and thumb crossed', keywords: ['<3', 'crossed', 'expensive', 'finger', 'hand', 'heart', 'index', 'love', 'money', 'snap', 'thumb'] },
'🫶': { name: 'heart hands', keywords: ['<3', 'hands', 'heart', 'love', 'you'] },
}