Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
3cca2516c2
18 changed files with 797 additions and 79 deletions
|
|
@ -22,7 +22,7 @@ set(style_files
|
||||||
|
|
||||||
generate_palette(lib_ui ui/colors.palette)
|
generate_palette(lib_ui ui/colors.palette)
|
||||||
generate_styles(lib_ui ${src_loc} "${style_files}" ui/colors.palette)
|
generate_styles(lib_ui ${src_loc} "${style_files}" ui/colors.palette)
|
||||||
generate_emoji(lib_ui emoji_suggestions/emoji_autocomplete.json)
|
generate_emoji(lib_ui emoji.txt emoji_suggestions/emoji_autocomplete.json)
|
||||||
|
|
||||||
set_target_properties(lib_ui PROPERTIES AUTOMOC ON AUTORCC ON)
|
set_target_properties(lib_ui PROPERTIES AUTOMOC ON AUTORCC ON)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
function(generate_emoji target_name suggestions_json)
|
function(generate_emoji target_name emoji_map suggestions_json)
|
||||||
set(gen_dst ${CMAKE_CURRENT_BINARY_DIR}/gen)
|
set(gen_dst ${CMAKE_CURRENT_BINARY_DIR}/gen)
|
||||||
file(MAKE_DIRECTORY ${gen_dst})
|
file(MAKE_DIRECTORY ${gen_dst})
|
||||||
|
|
||||||
|
|
@ -10,7 +10,10 @@ function(generate_emoji target_name suggestions_json)
|
||||||
${gen_dst}/emoji_suggestions_data.h
|
${gen_dst}/emoji_suggestions_data.h
|
||||||
)
|
)
|
||||||
|
|
||||||
set(gen_src ${CMAKE_CURRENT_SOURCE_DIR}/${suggestions_json})
|
set(gen_src
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/${emoji_map}
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/${suggestions_json}
|
||||||
|
)
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT
|
OUTPUT
|
||||||
${gen_timestamp}
|
${gen_timestamp}
|
||||||
|
|
|
||||||
652
emoji.txt
Normal file
652
emoji.txt
Normal file
|
|
@ -0,0 +1,652 @@
|
||||||
|
"😀", "😃", "😄", "😁", "😆", "😅", "😂", "🤣", "☺️", "😊", "😇", "🙂", "🙃", "😉", "😌", "😍", "🥰", "😘", "😗", "😙", "😚", "😋", "😛", "😝", "😜", "🤪", "🤨", "🧐", "🤓", "😎", "🤩", "🥳", "😏", "😒", "😞", "😔", "😟", "😕", "🙁", "☹️", "😣", "😖", "😫", "😩", "🥺", "😢", "😭", "😤", "😠", "😡", "🤬", "🤯", "😳", "🥵", "🥶", "😱", "😨", "😰", "😥", "😓", "🤗", "🤔", "🤭", "🤫", "🤥", "😶", "😐", "😑", "😬", "🙄", "😯", "😦", "😧", "😮", "😲", "🥱", "😴", "🤤", "😪", "😵", "🤐", "🥴", "🤢", "🤮", "🤧", "😷", "🤒", "🤕", "🤑", "🤠", "😈", "👿", "👹", "👺", "🤡", "💩", "👻", "💀", "☠️", "👽", "👾", "🤖", "🎃", "😺", "😸", "😹", "😻", "😼", "😽", "🙀", "😿", "😾",
|
||||||
|
"🤲", "🤲🏻", "🤲🏼", "🤲🏽", "🤲🏾", "🤲🏿",
|
||||||
|
"👐", "👐🏻", "👐🏼", "👐🏽", "👐🏾", "👐🏿",
|
||||||
|
"🙌", "🙌🏻", "🙌🏼", "🙌🏽", "🙌🏾", "🙌🏿",
|
||||||
|
"👏", "👏🏻", "👏🏼", "👏🏽", "👏🏾", "👏🏿",
|
||||||
|
"🤝",
|
||||||
|
"👍", "👍🏻", "👍🏼", "👍🏽", "👍🏾", "👍🏿",
|
||||||
|
"👎", "👎🏻", "👎🏼", "👎🏽", "👎🏾", "👎🏿",
|
||||||
|
"👊", "👊🏻", "👊🏼", "👊🏽", "👊🏾", "👊🏿",
|
||||||
|
"✊", "✊🏻", "✊🏼", "✊🏽", "✊🏾", "✊🏿",
|
||||||
|
"🤛", "🤛🏻", "🤛🏼", "🤛🏽", "🤛🏾", "🤛🏿",
|
||||||
|
"🤜", "🤜🏻", "🤜🏼", "🤜🏽", "🤜🏾", "🤜🏿",
|
||||||
|
"🤞", "🤞🏻", "🤞🏼", "🤞🏽", "🤞🏾", "🤞🏿",
|
||||||
|
"✌️", "✌🏻", "✌🏼", "✌🏽", "✌🏾", "✌🏿",
|
||||||
|
"🤟", "🤟🏻", "🤟🏼", "🤟🏽", "🤟🏾", "🤟🏿",
|
||||||
|
"🤘", "🤘🏻", "🤘🏼", "🤘🏽", "🤘🏾", "🤘🏿",
|
||||||
|
"👌", "👌🏻", "👌🏼", "👌🏽", "👌🏾", "👌🏿",
|
||||||
|
"🤏", "🤏🏻", "🤏🏼", "🤏🏽", "🤏🏾", "🤏🏿",
|
||||||
|
"👈", "👈🏻", "👈🏼", "👈🏽", "👈🏾", "👈🏿",
|
||||||
|
"👉", "👉🏻", "👉🏼", "👉🏽", "👉🏾", "👉🏿",
|
||||||
|
"👆", "👆🏻", "👆🏼", "👆🏽", "👆🏾", "👆🏿",
|
||||||
|
"👇", "👇🏻", "👇🏼", "👇🏽", "👇🏾", "👇🏿",
|
||||||
|
"☝️", "☝🏻", "☝🏼", "☝🏽", "☝🏾", "☝🏿",
|
||||||
|
"✋", "✋🏻", "✋🏼", "✋🏽", "✋🏾", "✋🏿",
|
||||||
|
"🤚", "🤚🏻", "🤚🏼", "🤚🏽", "🤚🏾", "🤚🏿",
|
||||||
|
"🖐", "🖐🏻", "🖐🏼", "🖐🏽", "🖐🏾", "🖐🏿",
|
||||||
|
"🖖", "🖖🏻", "🖖🏼", "🖖🏽", "🖖🏾", "🖖🏿",
|
||||||
|
"👋", "👋🏻", "👋🏼", "👋🏽", "👋🏾", "👋🏿",
|
||||||
|
"🤙", "🤙🏻", "🤙🏼", "🤙🏽", "🤙🏾", "🤙🏿",
|
||||||
|
"💪", "💪🏻", "💪🏼", "💪🏽", "💪🏾", "💪🏿",
|
||||||
|
"🦾",
|
||||||
|
"🖕", "🖕🏻", "🖕🏼", "🖕🏽", "🖕🏾", "🖕🏿",
|
||||||
|
"✍️", "✍🏻", "✍🏼", "✍🏽", "✍🏾", "✍🏿",
|
||||||
|
"🙏", "🙏🏻", "🙏🏼", "🙏🏽", "🙏🏾", "🙏🏿",
|
||||||
|
"🦶", "🦶🏻", "🦶🏼", "🦶🏽", "🦶🏾", "🦶🏿",
|
||||||
|
"🦵", "🦵🏻", "🦵🏼", "🦵🏽", "🦵🏾", "🦵🏿",
|
||||||
|
"🦿", "💄", "💋", "👄", "🦷", "👅",
|
||||||
|
"👂", "👂🏻", "👂🏼", "👂🏽", "👂🏾", "👂🏿",
|
||||||
|
"🦻", "🦻🏻", "🦻🏼", "🦻🏽", "🦻🏾", "🦻🏿",
|
||||||
|
"👃", "👃🏻", "👃🏼", "👃🏽", "👃🏾", "👃🏿",
|
||||||
|
"👣", "👁", "👀", "🧠", "🗣", "👤", "👥",
|
||||||
|
"👶", "👶🏻", "👶🏼", "👶🏽", "👶🏾", "👶🏿",
|
||||||
|
"👧", "👧🏻", "👧🏼", "👧🏽", "👧🏾", "👧🏿",
|
||||||
|
"🧒", "🧒🏻", "🧒🏼", "🧒🏽", "🧒🏾", "🧒🏿",
|
||||||
|
"👦", "👦🏻", "👦🏼", "👦🏽", "👦🏾", "👦🏿",
|
||||||
|
"👩", "👩🏻", "👩🏼", "👩🏽", "👩🏾", "👩🏿",
|
||||||
|
"🧑", "🧑🏻", "🧑🏼", "🧑🏽", "🧑🏾", "🧑🏿",
|
||||||
|
"👨", "👨🏻", "👨🏼", "👨🏽", "👨🏾", "👨🏿",
|
||||||
|
"👩🦱", "👩🏻🦱", "👩🏼🦱", "👩🏽🦱", "👩🏾🦱", "👩🏿🦱",
|
||||||
|
"🧑🦱", "🧑🏻🦱", "🧑🏼🦱", "🧑🏽🦱", "🧑🏾🦱", "🧑🏿🦱",
|
||||||
|
"👨🦱", "👨🏻🦱", "👨🏼🦱", "👨🏽🦱", "👨🏾🦱", "👨🏿🦱",
|
||||||
|
"👩🦰", "👩🏻🦰", "👩🏼🦰", "👩🏽🦰", "👩🏾🦰", "👩🏿🦰",
|
||||||
|
"🧑🦰", "🧑🏻🦰", "🧑🏼🦰", "🧑🏽🦰", "🧑🏾🦰", "🧑🏿🦰",
|
||||||
|
"👨🦰", "👨🏻🦰", "👨🏼🦰", "👨🏽🦰", "👨🏾🦰", "👨🏿🦰",
|
||||||
|
"👱♀️", "👱🏻♀️", "👱🏼♀️", "👱🏽♀️", "👱🏾♀️", "👱🏿♀️",
|
||||||
|
"👱", "👱🏻", "👱🏼", "👱🏽", "👱🏾", "👱🏿",
|
||||||
|
"👱♂️", "👱🏻♂️", "👱🏼♂️", "👱🏽♂️", "👱🏾♂️", "👱🏿♂️",
|
||||||
|
"👩🦳", "👩🏻🦳", "👩🏼🦳", "👩🏽🦳", "👩🏾🦳", "👩🏿🦳",
|
||||||
|
"🧑🦳", "🧑🏻🦳", "🧑🏼🦳", "🧑🏽🦳", "🧑🏾🦳", "🧑🏿🦳",
|
||||||
|
"👨🦳", "👨🏻🦳", "👨🏼🦳", "👨🏽🦳", "👨🏾🦳", "👨🏿🦳",
|
||||||
|
"👩🦲", "👩🏻🦲", "👩🏼🦲", "👩🏽🦲", "👩🏾🦲", "👩🏿🦲",
|
||||||
|
"🧑🦲", "🧑🏻🦲", "🧑🏼🦲", "🧑🏽🦲", "🧑🏾🦲", "🧑🏿🦲",
|
||||||
|
"👨🦲", "👨🏻🦲", "👨🏼🦲", "👨🏽🦲", "👨🏾🦲", "👨🏿🦲",
|
||||||
|
"🧔", "🧔🏻", "🧔🏼", "🧔🏽", "🧔🏾", "🧔🏿",
|
||||||
|
"👵", "👵🏻", "👵🏼", "👵🏽", "👵🏾", "👵🏿",
|
||||||
|
"🧓", "🧓🏻", "🧓🏼", "🧓🏽", "🧓🏾", "🧓🏿",
|
||||||
|
"👴", "👴🏻", "👴🏼", "👴🏽", "👴🏾", "👴🏿",
|
||||||
|
"👲", "👲🏻", "👲🏼", "👲🏽", "👲🏾", "👲🏿",
|
||||||
|
"👳♀️", "👳🏻♀️", "👳🏼♀️", "👳🏽♀️", "👳🏾♀️", "👳🏿♀️",
|
||||||
|
"👳", "👳🏻", "👳🏼", "👳🏽", "👳🏾", "👳🏿",
|
||||||
|
"👳♂️", "👳🏻♂️", "👳🏼♂️", "👳🏽♂️", "👳🏾♂️", "👳🏿♂️",
|
||||||
|
"🧕", "🧕🏻", "🧕🏼", "🧕🏽", "🧕🏾", "🧕🏿",
|
||||||
|
"👮♀️", "👮🏻♀️", "👮🏼♀️", "👮🏽♀️", "👮🏾♀️", "👮🏿♀️",
|
||||||
|
"👮", "👮🏻", "👮🏼", "👮🏽", "👮🏾", "👮🏿",
|
||||||
|
"👮♂️", "👮🏻♂️", "👮🏼♂️", "👮🏽♂️", "👮🏾♂️", "👮🏿♂️",
|
||||||
|
"👷♀️", "👷🏻♀️", "👷🏼♀️", "👷🏽♀️", "👷🏾♀️", "👷🏿♀️",
|
||||||
|
"👷", "👷🏻", "👷🏼", "👷🏽", "👷🏾", "👷🏿",
|
||||||
|
"👷♂️", "👷🏻♂️", "👷🏼♂️", "👷🏽♂️", "👷🏾♂️", "👷🏿♂️",
|
||||||
|
"💂♀️", "💂🏻♀️", "💂🏼♀️", "💂🏽♀️", "💂🏾♀️", "💂🏿♀️",
|
||||||
|
"💂", "💂🏻", "💂🏼", "💂🏽", "💂🏾", "💂🏿",
|
||||||
|
"💂♂️", "💂🏻♂️", "💂🏼♂️", "💂🏽♂️", "💂🏾♂️", "💂🏿♂️",
|
||||||
|
"🕵️♀️", "🕵🏻♀️", "🕵🏼♀️", "🕵🏽♀️", "🕵🏾♀️", "🕵🏿♀️",
|
||||||
|
"🕵️", "🕵🏻", "🕵🏼", "🕵🏽", "🕵🏾", "🕵🏿",
|
||||||
|
"🕵️♂️", "🕵🏻♂️", "🕵🏼♂️", "🕵🏽♂️", "🕵🏾♂️", "🕵🏿♂️",
|
||||||
|
"👩⚕️", "👩🏻⚕️", "👩🏼⚕️", "👩🏽⚕️", "👩🏾⚕️", "👩🏿⚕️",
|
||||||
|
"🧑⚕️", "🧑🏻⚕️", "🧑🏼⚕️", "🧑🏽⚕️", "🧑🏾⚕️", "🧑🏿⚕️",
|
||||||
|
"👨⚕️", "👨🏻⚕️", "👨🏼⚕️", "👨🏽⚕️", "👨🏾⚕️", "👨🏿⚕️",
|
||||||
|
"👩🌾", "👩🏻🌾", "👩🏼🌾", "👩🏽🌾", "👩🏾🌾", "👩🏿🌾",
|
||||||
|
"🧑🌾", "🧑🏻🌾", "🧑🏼🌾", "🧑🏽🌾", "🧑🏾🌾", "🧑🏿🌾",
|
||||||
|
"👨🌾", "👨🏻🌾", "👨🏼🌾", "👨🏽🌾", "👨🏾🌾", "👨🏿🌾",
|
||||||
|
"👩🍳", "👩🏻🍳", "👩🏼🍳", "👩🏽🍳", "👩🏾🍳", "👩🏿🍳",
|
||||||
|
"🧑🍳", "🧑🏻🍳", "🧑🏼🍳", "🧑🏽🍳", "🧑🏾🍳", "🧑🏿🍳",
|
||||||
|
"👨🍳", "👨🏻🍳", "👨🏼🍳", "👨🏽🍳", "👨🏾🍳", "👨🏿🍳",
|
||||||
|
"👩🎓", "👩🏻🎓", "👩🏼🎓", "👩🏽🎓", "👩🏾🎓", "👩🏿🎓",
|
||||||
|
"🧑🎓", "🧑🏻🎓", "🧑🏼🎓", "🧑🏽🎓", "🧑🏾🎓", "🧑🏿🎓",
|
||||||
|
"👨🎓", "👨🏻🎓", "👨🏼🎓", "👨🏽🎓", "👨🏾🎓", "👨🏿🎓",
|
||||||
|
"👩🎤", "👩🏻🎤", "👩🏼🎤", "👩🏽🎤", "👩🏾🎤", "👩🏿🎤",
|
||||||
|
"🧑🎤", "🧑🏻🎤", "🧑🏼🎤", "🧑🏽🎤", "🧑🏾🎤", "🧑🏿🎤",
|
||||||
|
"👨🎤", "👨🏻🎤", "👨🏼🎤", "👨🏽🎤", "👨🏾🎤", "👨🏿🎤",
|
||||||
|
"👩🏫", "👩🏻🏫", "👩🏼🏫", "👩🏽🏫", "👩🏾🏫", "👩🏿🏫",
|
||||||
|
"🧑🏫", "🧑🏻🏫", "🧑🏼🏫", "🧑🏽🏫", "🧑🏾🏫", "🧑🏿🏫",
|
||||||
|
"👨🏫", "👨🏻🏫", "👨🏼🏫", "👨🏽🏫", "👨🏾🏫", "👨🏿🏫",
|
||||||
|
"👩🏭", "👩🏻🏭", "👩🏼🏭", "👩🏽🏭", "👩🏾🏭", "👩🏿🏭",
|
||||||
|
"🧑🏭", "🧑🏻🏭", "🧑🏼🏭", "🧑🏽🏭", "🧑🏾🏭", "🧑🏿🏭",
|
||||||
|
"👨🏭", "👨🏻🏭", "👨🏼🏭", "👨🏽🏭", "👨🏾🏭", "👨🏿🏭",
|
||||||
|
"👩💻", "👩🏻💻", "👩🏼💻", "👩🏽💻", "👩🏾💻", "👩🏿💻",
|
||||||
|
"🧑💻", "🧑🏻💻", "🧑🏼💻", "🧑🏽💻", "🧑🏾💻", "🧑🏿💻",
|
||||||
|
"👨💻", "👨🏻💻", "👨🏼💻", "👨🏽💻", "👨🏾💻", "👨🏿💻",
|
||||||
|
"👩💼", "👩🏻💼", "👩🏼💼", "👩🏽💼", "👩🏾💼", "👩🏿💼",
|
||||||
|
"🧑💼", "🧑🏻💼", "🧑🏼💼", "🧑🏽💼", "🧑🏾💼", "🧑🏿💼",
|
||||||
|
"👨💼", "👨🏻💼", "👨🏼💼", "👨🏽💼", "👨🏾💼", "👨🏿💼",
|
||||||
|
"👩🔧", "👩🏻🔧", "👩🏼🔧", "👩🏽🔧", "👩🏾🔧", "👩🏿🔧",
|
||||||
|
"🧑🔧", "🧑🏻🔧", "🧑🏼🔧", "🧑🏽🔧", "🧑🏾🔧", "🧑🏿🔧",
|
||||||
|
"👨🔧", "👨🏻🔧", "👨🏼🔧", "👨🏽🔧", "👨🏾🔧", "👨🏿🔧",
|
||||||
|
"👩🔬", "👩🏻🔬", "👩🏼🔬", "👩🏽🔬", "👩🏾🔬", "👩🏿🔬",
|
||||||
|
"🧑🔬", "🧑🏻🔬", "🧑🏼🔬", "🧑🏽🔬", "🧑🏾🔬", "🧑🏿🔬",
|
||||||
|
"👨🔬", "👨🏻🔬", "👨🏼🔬", "👨🏽🔬", "👨🏾🔬", "👨🏿🔬",
|
||||||
|
"👩🎨", "👩🏻🎨", "👩🏼🎨", "👩🏽🎨", "👩🏾🎨", "👩🏿🎨",
|
||||||
|
"🧑🎨", "🧑🏻🎨", "🧑🏼🎨", "🧑🏽🎨", "🧑🏾🎨", "🧑🏿🎨",
|
||||||
|
"👨🎨", "👨🏻🎨", "👨🏼🎨", "👨🏽🎨", "👨🏾🎨", "👨🏿🎨",
|
||||||
|
"👩🚒", "👩🏻🚒", "👩🏼🚒", "👩🏽🚒", "👩🏾🚒", "👩🏿🚒",
|
||||||
|
"🧑🚒", "🧑🏻🚒", "🧑🏼🚒", "🧑🏽🚒", "🧑🏾🚒", "🧑🏿🚒",
|
||||||
|
"👨🚒", "👨🏻🚒", "👨🏼🚒", "👨🏽🚒", "👨🏾🚒", "👨🏿🚒",
|
||||||
|
"👩✈️", "👩🏻✈️", "👩🏼✈️", "👩🏽✈️", "👩🏾✈️", "👩🏿✈️",
|
||||||
|
"🧑✈️", "🧑🏻✈️", "🧑🏼✈️", "🧑🏽✈️", "🧑🏾✈️", "🧑🏿✈️",
|
||||||
|
"👨✈️", "👨🏻✈️", "👨🏼✈️", "👨🏽✈️", "👨🏾✈️", "👨🏿✈️",
|
||||||
|
"👩🚀", "👩🏻🚀", "👩🏼🚀", "👩🏽🚀", "👩🏾🚀", "👩🏿🚀",
|
||||||
|
"🧑🚀", "🧑🏻🚀", "🧑🏼🚀", "🧑🏽🚀", "🧑🏾🚀", "🧑🏿🚀",
|
||||||
|
"👨🚀", "👨🏻🚀", "👨🏼🚀", "👨🏽🚀", "👨🏾🚀", "👨🏿🚀",
|
||||||
|
"👩⚖️", "👩🏻⚖️", "👩🏼⚖️", "👩🏽⚖️", "👩🏾⚖️", "👩🏿⚖️",
|
||||||
|
"🧑⚖️", "🧑🏻⚖️", "🧑🏼⚖️", "🧑🏽⚖️", "🧑🏾⚖️", "🧑🏿⚖️",
|
||||||
|
"👨⚖️", "👨🏻⚖️", "👨🏼⚖️", "👨🏽⚖️", "👨🏾⚖️", "👨🏿⚖️",
|
||||||
|
"👰", "👰🏻", "👰🏼", "👰🏽", "👰🏾", "👰🏿",
|
||||||
|
"🤵", "🤵🏻", "🤵🏼", "🤵🏽", "🤵🏾", "🤵🏿",
|
||||||
|
"👸", "👸🏻", "👸🏼", "👸🏽", "👸🏾", "👸🏿",
|
||||||
|
"🤴", "🤴🏻", "🤴🏼", "🤴🏽", "🤴🏾", "🤴🏿",
|
||||||
|
"🦸♀️", "🦸🏻♀️", "🦸🏼♀️", "🦸🏽♀️", "🦸🏾♀️", "🦸🏿♀️",
|
||||||
|
"🦸", "🦸🏻", "🦸🏼", "🦸🏽", "🦸🏾", "🦸🏿",
|
||||||
|
"🦸♂️", "🦸🏻♂️", "🦸🏼♂️", "🦸🏽♂️", "🦸🏾♂️", "🦸🏿♂️",
|
||||||
|
"🦹♀️", "🦹🏻♀️", "🦹🏼♀️", "🦹🏽♀️", "🦹🏾♀️", "🦹🏿♀️",
|
||||||
|
"🦹", "🦹🏻", "🦹🏼", "🦹🏽", "🦹🏾", "🦹🏿",
|
||||||
|
"🦹♂️", "🦹🏻♂️", "🦹🏼♂️", "🦹🏽♂️", "🦹🏾♂️", "🦹🏿♂️",
|
||||||
|
"🤶", "🤶🏻", "🤶🏼", "🤶🏽", "🤶🏾", "🤶🏿",
|
||||||
|
"🎅", "🎅🏻", "🎅🏼", "🎅🏽", "🎅🏾", "🎅🏿",
|
||||||
|
"🧙♀️", "🧙🏻♀️", "🧙🏼♀️", "🧙🏽♀️", "🧙🏾♀️", "🧙🏿♀️",
|
||||||
|
"🧙", "🧙🏻", "🧙🏼", "🧙🏽", "🧙🏾", "🧙🏿",
|
||||||
|
"🧙♂️", "🧙🏻♂️", "🧙🏼♂️", "🧙🏽♂️", "🧙🏾♂️", "🧙🏿♂️",
|
||||||
|
"🧝♀️", "🧝🏻♀️", "🧝🏼♀️", "🧝🏽♀️", "🧝🏾♀️", "🧝🏿♀️",
|
||||||
|
"🧝", "🧝🏻", "🧝🏼", "🧝🏽", "🧝🏾", "🧝🏿",
|
||||||
|
"🧝♂️", "🧝🏻♂️", "🧝🏼♂️", "🧝🏽♂️", "🧝🏾♂️", "🧝🏿♂️",
|
||||||
|
"🧛♀️", "🧛🏻♀️", "🧛🏼♀️", "🧛🏽♀️", "🧛🏾♀️", "🧛🏿♀️",
|
||||||
|
"🧛", "🧛🏻", "🧛🏼", "🧛🏽", "🧛🏾", "🧛🏿",
|
||||||
|
"🧛♂️", "🧛🏻♂️", "🧛🏼♂️", "🧛🏽♂️", "🧛🏾♂️", "🧛🏿♂️",
|
||||||
|
"🧟♀️", "🧟", "🧟♂️", "🧞♀️", "🧞", "🧞♂️",
|
||||||
|
"🧜♀️", "🧜🏻♀️", "🧜🏼♀️", "🧜🏽♀️", "🧜🏾♀️", "🧜🏿♀️",
|
||||||
|
"🧜", "🧜🏻", "🧜🏼", "🧜🏽", "🧜🏾", "🧜🏿",
|
||||||
|
"🧜♂️", "🧜🏻♂️", "🧜🏼♂️", "🧜🏽♂️", "🧜🏾♂️", "🧜🏿♂️",
|
||||||
|
"🧚♀️", "🧚🏻♀️", "🧚🏼♀️", "🧚🏽♀️", "🧚🏾♀️", "🧚🏿♀️",
|
||||||
|
"🧚", "🧚🏻", "🧚🏼", "🧚🏽", "🧚🏾", "🧚🏿",
|
||||||
|
"🧚♂️", "🧚🏻♂️", "🧚🏼♂️", "🧚🏽♂️", "🧚🏾♂️", "🧚🏿♂️",
|
||||||
|
"👼", "👼🏻", "👼🏼", "👼🏽", "👼🏾", "👼🏿",
|
||||||
|
"🤰", "🤰🏻", "🤰🏼", "🤰🏽", "🤰🏾", "🤰🏿",
|
||||||
|
"🤱", "🤱🏻", "🤱🏼", "🤱🏽", "🤱🏾", "🤱🏿",
|
||||||
|
"🙇♀️", "🙇🏻♀️", "🙇🏼♀️", "🙇🏽♀️", "🙇🏾♀️", "🙇🏿♀️",
|
||||||
|
"🙇", "🙇🏻", "🙇🏼", "🙇🏽", "🙇🏾", "🙇🏿",
|
||||||
|
"🙇♂️", "🙇🏻♂️", "🙇🏼♂️", "🙇🏽♂️", "🙇🏾♂️", "🙇🏿♂️",
|
||||||
|
"💁♀️", "💁🏻♀️", "💁🏼♀️", "💁🏽♀️", "💁🏾♀️", "💁🏿♀️",
|
||||||
|
"💁", "💁🏻", "💁🏼", "💁🏽", "💁🏾", "💁🏿",
|
||||||
|
"💁♂️", "💁🏻♂️", "💁🏼♂️", "💁🏽♂️", "💁🏾♂️", "💁🏿♂️",
|
||||||
|
"🙅♀️", "🙅🏻♀️", "🙅🏼♀️", "🙅🏽♀️", "🙅🏾♀️", "🙅🏿♀️",
|
||||||
|
"🙅", "🙅🏻", "🙅🏼", "🙅🏽", "🙅🏾", "🙅🏿",
|
||||||
|
"🙅♂️", "🙅🏻♂️", "🙅🏼♂️", "🙅🏽♂️", "🙅🏾♂️", "🙅🏿♂️",
|
||||||
|
"🙆♀️", "🙆🏻♀️", "🙆🏼♀️", "🙆🏽♀️", "🙆🏾♀️", "🙆🏿♀️",
|
||||||
|
"🙆", "🙆🏻", "🙆🏼", "🙆🏽", "🙆🏾", "🙆🏿",
|
||||||
|
"🙆♂️", "🙆🏻♂️", "🙆🏼♂️", "🙆🏽♂️", "🙆🏾♂️", "🙆🏿♂️",
|
||||||
|
"🙋♀️", "🙋🏻♀️", "🙋🏼♀️", "🙋🏽♀️", "🙋🏾♀️", "🙋🏿♀️",
|
||||||
|
"🙋", "🙋🏻", "🙋🏼", "🙋🏽", "🙋🏾", "🙋🏿",
|
||||||
|
"🙋♂️", "🙋🏻♂️", "🙋🏼♂️", "🙋🏽♂️", "🙋🏾♂️", "🙋🏿♂️",
|
||||||
|
"🧏♀️", "🧏🏻♀️", "🧏🏼♀️", "🧏🏽♀️", "🧏🏾♀️", "🧏🏿♀️",
|
||||||
|
"🧏", "🧏🏻", "🧏🏼", "🧏🏽", "🧏🏾", "🧏🏿",
|
||||||
|
"🧏♂️", "🧏🏻♂️", "🧏🏼♂️", "🧏🏽♂️", "🧏🏾♂️", "🧏🏿♂️",
|
||||||
|
"🤦♀️", "🤦🏻♀️", "🤦🏼♀️", "🤦🏽♀️", "🤦🏾♀️", "🤦🏿♀️",
|
||||||
|
"🤦", "🤦🏻", "🤦🏼", "🤦🏽", "🤦🏾", "🤦🏿",
|
||||||
|
"🤦♂️", "🤦🏻♂️", "🤦🏼♂️", "🤦🏽♂️", "🤦🏾♂️", "🤦🏿♂️",
|
||||||
|
"🤷♀️", "🤷🏻♀️", "🤷🏼♀️", "🤷🏽♀️", "🤷🏾♀️", "🤷🏿♀️",
|
||||||
|
"🤷", "🤷🏻", "🤷🏼", "🤷🏽", "🤷🏾", "🤷🏿",
|
||||||
|
"🤷♂️", "🤷🏻♂️", "🤷🏼♂️", "🤷🏽♂️", "🤷🏾♂️", "🤷🏿♂️",
|
||||||
|
"🙎♀️", "🙎🏻♀️", "🙎🏼♀️", "🙎🏽♀️", "🙎🏾♀️", "🙎🏿♀️",
|
||||||
|
"🙎", "🙎🏻", "🙎🏼", "🙎🏽", "🙎🏾", "🙎🏿",
|
||||||
|
"🙎♂️", "🙎🏻♂️", "🙎🏼♂️", "🙎🏽♂️", "🙎🏾♂️", "🙎🏿♂️",
|
||||||
|
"🙍♀️", "🙍🏻♀️", "🙍🏼♀️", "🙍🏽♀️", "🙍🏾♀️", "🙍🏿♀️",
|
||||||
|
"🙍", "🙍🏻", "🙍🏼", "🙍🏽", "🙍🏾", "🙍🏿",
|
||||||
|
"🙍♂️", "🙍🏻♂️", "🙍🏼♂️", "🙍🏽♂️", "🙍🏾♂️", "🙍🏿♂️",
|
||||||
|
"💇♀️", "💇🏻♀️", "💇🏼♀️", "💇🏽♀️", "💇🏾♀️", "💇🏿♀️",
|
||||||
|
"💇", "💇🏻", "💇🏼", "💇🏽", "💇🏾", "💇🏿",
|
||||||
|
"💇♂️", "💇🏻♂️", "💇🏼♂️", "💇🏽♂️", "💇🏾♂️", "💇🏿♂️",
|
||||||
|
"💆♀️", "💆🏻♀️", "💆🏼♀️", "💆🏽♀️", "💆🏾♀️", "💆🏿♀️",
|
||||||
|
"💆", "💆🏻", "💆🏼", "💆🏽", "💆🏾", "💆🏿",
|
||||||
|
"💆♂️", "💆🏻♂️", "💆🏼♂️", "💆🏽♂️", "💆🏾♂️", "💆🏿♂️",
|
||||||
|
"🧖♀️", "🧖🏻♀️", "🧖🏼♀️", "🧖🏽♀️", "🧖🏾♀️", "🧖🏿♀️",
|
||||||
|
"🧖", "🧖🏻", "🧖🏼", "🧖🏽", "🧖🏾", "🧖🏿",
|
||||||
|
"🧖♂️", "🧖🏻♂️", "🧖🏼♂️", "🧖🏽♂️", "🧖🏾♂️", "🧖🏿♂️",
|
||||||
|
"💅", "💅🏻", "💅🏼", "💅🏽", "💅🏾", "💅🏿",
|
||||||
|
"🤳", "🤳🏻", "🤳🏼", "🤳🏽", "🤳🏾", "🤳🏿",
|
||||||
|
"💃", "💃🏻", "💃🏼", "💃🏽", "💃🏾", "💃🏿",
|
||||||
|
"🕺", "🕺🏻", "🕺🏼", "🕺🏽", "🕺🏾", "🕺🏿",
|
||||||
|
"👯♀️", "👯", "👯♂️",
|
||||||
|
"🕴", "🕴🏻", "🕴🏼", "🕴🏽", "🕴🏾", "🕴🏿",
|
||||||
|
"👩🦽", "👩🏻🦽", "👩🏼🦽", "👩🏽🦽", "👩🏾🦽", "👩🏿🦽",
|
||||||
|
"🧑🦽", "🧑🏻🦽", "🧑🏼🦽", "🧑🏽🦽", "🧑🏾🦽", "🧑🏿🦽",
|
||||||
|
"👨🦽", "👨🏻🦽", "👨🏼🦽", "👨🏽🦽", "👨🏾🦽", "👨🏿🦽",
|
||||||
|
"👩🦼", "👩🏻🦼", "👩🏼🦼", "👩🏽🦼", "👩🏾🦼", "👩🏿🦼",
|
||||||
|
"🧑🦼", "🧑🏻🦼", "🧑🏼🦼", "🧑🏽🦼", "🧑🏾🦼", "🧑🏿🦼",
|
||||||
|
"👨🦼", "👨🏻🦼", "👨🏼🦼", "👨🏽🦼", "👨🏾🦼", "👨🏿🦼",
|
||||||
|
"🚶♀️", "🚶🏻♀️", "🚶🏼♀️", "🚶🏽♀️", "🚶🏾♀️", "🚶🏿♀️",
|
||||||
|
"🚶", "🚶🏻", "🚶🏼", "🚶🏽", "🚶🏾", "🚶🏿",
|
||||||
|
"🚶♂️", "🚶🏻♂️", "🚶🏼♂️", "🚶🏽♂️", "🚶🏾♂️", "🚶🏿♂️",
|
||||||
|
"👩🦯", "👩🏻🦯", "👩🏼🦯", "👩🏽🦯", "👩🏾🦯", "👩🏿🦯",
|
||||||
|
"🧑🦯", "🧑🏻🦯", "🧑🏼🦯", "🧑🏽🦯", "🧑🏾🦯", "🧑🏿🦯",
|
||||||
|
"👨🦯", "👨🏻🦯", "👨🏼🦯", "👨🏽🦯", "👨🏾🦯", "👨🏿🦯",
|
||||||
|
"🧎♀️", "🧎🏻♀️", "🧎🏼♀️", "🧎🏽♀️", "🧎🏾♀️", "🧎🏿♀️",
|
||||||
|
"🧎", "🧎🏻", "🧎🏼", "🧎🏽", "🧎🏾", "🧎🏿",
|
||||||
|
"🧎♂️", "🧎🏻♂️", "🧎🏼♂️", "🧎🏽♂️", "🧎🏾♂️", "🧎🏿♂️",
|
||||||
|
"🏃♀️", "🏃🏻♀️", "🏃🏼♀️", "🏃🏽♀️", "🏃🏾♀️", "🏃🏿♀️",
|
||||||
|
"🏃", "🏃🏻", "🏃🏼", "🏃🏽", "🏃🏾", "🏃🏿",
|
||||||
|
"🏃♂️", "🏃🏻♂️", "🏃🏼♂️", "🏃🏽♂️", "🏃🏾♂️", "🏃🏿♂️",
|
||||||
|
"🧍♀️", "🧍🏻♀️", "🧍🏼♀️", "🧍🏽♀️", "🧍🏾♀️", "🧍🏿♀️",
|
||||||
|
"🧍", "🧍🏻", "🧍🏼", "🧍🏽", "🧍🏾", "🧍🏿",
|
||||||
|
"🧍♂️", "🧍🏻♂️", "🧍🏼♂️", "🧍🏽♂️", "🧍🏾♂️", "🧍🏿♂️",
|
||||||
|
"👫", "👫🏻", "👩🏻🤝👨🏼", "👩🏻🤝👨🏽", "👩🏻🤝👨🏾", "👩🏻🤝👨🏿", "👩🏼🤝👨🏻", "👫🏼", "👩🏼🤝👨🏽", "👩🏼🤝👨🏾", "👩🏼🤝👨🏿", "👩🏽🤝👨🏻", "👩🏽🤝👨🏼", "👫🏽", "👩🏽🤝👨🏾", "👩🏽🤝👨🏿", "👩🏾🤝👨🏻", "👩🏾🤝👨🏼", "👩🏾🤝👨🏽", "👫🏾", "👩🏾🤝👨🏿", "👩🏿🤝👨🏻", "👩🏿🤝👨🏼", "👩🏿🤝👨🏽", "👩🏿🤝👨🏾", "👫🏿",
|
||||||
|
"👭", "👭🏻", "👩🏻🤝👩🏼", "👩🏻🤝👩🏽", "👩🏻🤝👩🏾", "👩🏻🤝👩🏿", "👩🏼🤝👩🏻", "👭🏼", "👩🏼🤝👩🏽", "👩🏼🤝👩🏾", "👩🏼🤝👩🏿", "👩🏽🤝👩🏻", "👩🏽🤝👩🏼", "👭🏽", "👩🏽🤝👩🏾", "👩🏽🤝👩🏿", "👩🏾🤝👩🏻", "👩🏾🤝👩🏼", "👩🏾🤝👩🏽", "👭🏾", "👩🏾🤝👩🏿", "👩🏿🤝👩🏻", "👩🏿🤝👩🏼", "👩🏿🤝👩🏽", "👩🏿🤝👩🏾", "👭🏿",
|
||||||
|
"👬", "👬🏻", "👨🏻🤝👨🏼", "👨🏻🤝👨🏽", "👨🏻🤝👨🏾", "👨🏻🤝👨🏿", "👨🏼🤝👨🏻", "👬🏼", "👨🏼🤝👨🏽", "👨🏼🤝👨🏾", "👨🏼🤝👨🏿", "👨🏽🤝👨🏻", "👨🏽🤝👨🏼", "👬🏽", "👨🏽🤝👨🏾", "👨🏽🤝👨🏿", "👨🏾🤝👨🏻", "👨🏾🤝👨🏼", "👨🏾🤝👨🏽", "👬🏾", "👨🏾🤝👨🏿", "👨🏿🤝👨🏻", "👨🏿🤝👨🏼", "👨🏿🤝👨🏽", "👨🏿🤝👨🏾", "👬🏿",
|
||||||
|
"👩❤️👨", "👩❤️👩", "👨❤️👨", "👩❤️💋👨", "👩❤️💋👩", "👨❤️💋👨", "👨👩👦", "👨👩👧", "👨👩👧👦", "👨👩👦👦", "👨👩👧👧", "👩👩👦", "👩👩👧", "👩👩👧👦", "👩👩👦👦", "👩👩👧👧", "👨👨👦", "👨👨👧", "👨👨👧👦", "👨👨👦👦", "👨👨👧👧", "👩👦", "👩👧", "👩👧👦", "👩👦👦", "👩👧👧", "👨👦", "👨👧", "👨👧👦", "👨👦👦", "👨👧👧", "🧶", "🧵", "🧥", "🥼", "🦺", "👚", "👕", "👖", "🩲", "🩳", "👔", "👗", "👙", "👘", "🥻", "🩱", "🥿", "👠", "👡", "👢", "👞", "👟", "🥾", "🧦", "🧤", "🧣", "🎩", "🧢", "👒", "🎓", "⛑", "👑", "💍", "👝", "👛", "👜", "💼", "🎒", "🧳", "👓", "🕶", "🥽", "🌂"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"🐶", "🐱", "🐭", "🐹", "🐰", "🦊", "🐻", "🐼", "🐨", "🐯", "🦁", "🐮", "🐷", "🐽", "🐸", "🐵", "🙈", "🙉", "🙊", "🐒", "🐔", "🐧", "🐦", "🐤", "🐣", "🐥", "🦆", "🦅", "🦉", "🦇", "🐺", "🐗", "🐴", "🦄", "🐝", "🐛", "🦋", "🐌", "🐞", "🐜", "🦟", "🦗", "🕷", "🕸", "🦂", "🐢", "🐍", "🦎", "🦖", "🦕", "🐙", "🦑", "🦐", "🦞", "🦀", "🐡", "🐠", "🐟", "🐬", "🐳", "🐋", "🦈", "🐊", "🐅", "🐆", "🦓", "🦍", "🦧", "🐘", "🦛", "🦏", "🐪", "🐫", "🦒", "🦘", "🐃", "🐂", "🐄", "🐎", "🐖", "🐏", "🐑", "🦙", "🐐", "🦌", "🐕", "🐩", "🦮", "🐕🦺", "🐈", "🐓", "🦃", "🦚", "🦜", "🦢", "🦩", "🕊", "🐇", "🦝", "🦨", "🦡", "🦦", "🦥", "🐁", "🐀", "🐿", "🦔", "🐾", "🐉", "🐲", "🌵", "🎄", "🌲", "🌳", "🌴", "🌱", "🌿", "☘️", "🍀", "🎍", "🎋", "🍃", "🍂", "🍁", "🍄", "🐚", "🌾", "💐", "🌷", "🌹", "🥀", "🌺", "🌸", "🌼", "🌻", "🌞", "🌝", "🌛", "🌜", "🌚", "🌕", "🌖", "🌗", "🌘", "🌑", "🌒", "🌓", "🌔", "🌙", "🌎", "🌍", "🌏", "🪐", "💫", "⭐️", "🌟", "✨", "⚡️", "☄️", "💥", "🔥", "🌪", "🌈", "☀️", "🌤", "⛅️", "🌥", "☁️", "🌦", "🌧", "⛈", "🌩", "🌨", "❄️", "☃️", "⛄️", "🌬", "💨", "💧", "💦", "☔️", "☂️", "🌊", "🌫"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"🍏", "🍎", "🍐", "🍊", "🍋", "🍌", "🍉", "🍇", "🍓", "🍈", "🍒", "🍑", "🥭", "🍍", "🥥", "🥝", "🍅", "🍆", "🥑", "🥦", "🥬", "🥒", "🌶", "🌽", "🥕", "🧄", "🧅", "🥔", "🍠", "🥐", "🥯", "🍞", "🥖", "🥨", "🧀", "🥚", "🍳", "🧈", "🥞", "🧇", "🥓", "🥩", "🍗", "🍖", "🦴", "🌭", "🍔", "🍟", "🍕", "🥪", "🥙", "🧆", "🌮", "🌯", "🥗", "🥘", "🥫", "🍝", "🍜", "🍲", "🍛", "🍣", "🍱", "🥟", "🦪", "🍤", "🍙", "🍚", "🍘", "🍥", "🥠", "🥮", "🍢", "🍡", "🍧", "🍨", "🍦", "🥧", "🧁", "🍰", "🎂", "🍮", "🍭", "🍬", "🍫", "🍿", "🍩", "🍪", "🌰", "🥜", "🍯", "🥛", "🍼", "☕️", "🍵", "🧃", "🥤", "🍶", "🍺", "🍻", "🥂", "🍷", "🥃", "🍸", "🍹", "🧉", "🍾", "🧊", "🥄", "🍴", "🍽", "🥣", "🥡", "🥢", "🧂"
|
||||||
|
|
||||||
|
|
||||||
|
"⚽️", "🏀", "🏈", "⚾️", "🥎", "🎾", "🏐", "🏉", "🥏", "🎱", "🪀", "🏓", "🏸", "🏒", "🏑", "🥍", "🏏", "🥅", "⛳️", "🪁", "🏹", "🎣", "🤿", "🥊", "🥋", "🎽", "🛹", "🛷", "⛸", "🥌", "🎿", "⛷", "🏂", "🪂",
|
||||||
|
"🏋️♀️", "🏋🏻♀️", "🏋🏼♀️", "🏋🏽♀️", "🏋🏾♀️", "🏋🏿♀️",
|
||||||
|
"🏋️", "🏋🏻", "🏋🏼", "🏋🏽", "🏋🏾", "🏋🏿",
|
||||||
|
"🏋️♂️", "🏋🏻♂️", "🏋🏼♂️", "🏋🏽♂️", "🏋🏾♂️", "🏋🏿♂️",
|
||||||
|
"🤼♀️", "🤼", "🤼♂️",
|
||||||
|
"🤸♀️", "🤸🏻♀️", "🤸🏼♀️", "🤸🏽♀️", "🤸🏾♀️", "🤸🏿♀️",
|
||||||
|
"🤸", "🤸🏻", "🤸🏼", "🤸🏽", "🤸🏾", "🤸🏿",
|
||||||
|
"🤸♂️", "🤸🏻♂️", "🤸🏼♂️", "🤸🏽♂️", "🤸🏾♂️", "🤸🏿♂️",
|
||||||
|
"⛹️♀️", "⛹🏻♀️", "⛹🏼♀️", "⛹🏽♀️", "⛹🏾♀️", "⛹🏿♀️",
|
||||||
|
"⛹️", "⛹🏻", "⛹🏼", "⛹🏽", "⛹🏾", "⛹🏿",
|
||||||
|
"⛹️♂️", "⛹🏻♂️", "⛹🏼♂️", "⛹🏽♂️", "⛹🏾♂️", "⛹🏿♂️",
|
||||||
|
"🤺",
|
||||||
|
"🤾♀️", "🤾🏻♀️", "🤾🏼♀️", "🤾🏽♀️", "🤾🏾♀️", "🤾🏿♀️",
|
||||||
|
"🤾", "🤾🏻", "🤾🏼", "🤾🏽", "🤾🏾", "🤾🏿",
|
||||||
|
"🤾♂️", "🤾🏻♂️", "🤾🏼♂️", "🤾🏽♂️", "🤾🏾♂️", "🤾🏿♂️",
|
||||||
|
"🏌️♀️", "🏌🏻♀️", "🏌🏼♀️", "🏌🏽♀️", "🏌🏾♀️", "🏌🏿♀️",
|
||||||
|
"🏌️", "🏌🏻", "🏌🏼", "🏌🏽", "🏌🏾", "🏌🏿",
|
||||||
|
"🏌️♂️", "🏌🏻♂️", "🏌🏼♂️", "🏌🏽♂️", "🏌🏾♂️", "🏌🏿♂️",
|
||||||
|
"🏇", "🏇🏻", "🏇🏼", "🏇🏽", "🏇🏾", "🏇🏿",
|
||||||
|
"🧘♀️", "🧘🏻♀️", "🧘🏼♀️", "🧘🏽♀️", "🧘🏾♀️", "🧘🏿♀️",
|
||||||
|
"🧘", "🧘🏻", "🧘🏼", "🧘🏽", "🧘🏾", "🧘🏿",
|
||||||
|
"🧘♂️", "🧘🏻♂️", "🧘🏼♂️", "🧘🏽♂️", "🧘🏾♂️", "🧘🏿♂️",
|
||||||
|
"🏄♀️", "🏄🏻♀️", "🏄🏼♀️", "🏄🏽♀️", "🏄🏾♀️", "🏄🏿♀️",
|
||||||
|
"🏄", "🏄🏻", "🏄🏼", "🏄🏽", "🏄🏾", "🏄🏿",
|
||||||
|
"🏄♂️", "🏄🏻♂️", "🏄🏼♂️", "🏄🏽♂️", "🏄🏾♂️", "🏄🏿♂️",
|
||||||
|
"🏊♀️", "🏊🏻♀️", "🏊🏼♀️", "🏊🏽♀️", "🏊🏾♀️", "🏊🏿♀️",
|
||||||
|
"🏊", "🏊🏻", "🏊🏼", "🏊🏽", "🏊🏾", "🏊🏿",
|
||||||
|
"🏊♂️", "🏊🏻♂️", "🏊🏼♂️", "🏊🏽♂️", "🏊🏾♂️", "🏊🏿♂️",
|
||||||
|
"🤽♀️", "🤽🏻♀️", "🤽🏼♀️", "🤽🏽♀️", "🤽🏾♀️", "🤽🏿♀️",
|
||||||
|
"🤽", "🤽🏻", "🤽🏼", "🤽🏽", "🤽🏾", "🤽🏿",
|
||||||
|
"🤽♂️", "🤽🏻♂️", "🤽🏼♂️", "🤽🏽♂️", "🤽🏾♂️", "🤽🏿♂️",
|
||||||
|
"🚣♀️", "🚣🏻♀️", "🚣🏼♀️", "🚣🏽♀️", "🚣🏾♀️", "🚣🏿♀️",
|
||||||
|
"🚣", "🚣🏻", "🚣🏼", "🚣🏽", "🚣🏾", "🚣🏿",
|
||||||
|
"🚣♂️", "🚣🏻♂️", "🚣🏼♂️", "🚣🏽♂️", "🚣🏾♂️", "🚣🏿♂️",
|
||||||
|
"🧗♀️", "🧗🏻♀️", "🧗🏼♀️", "🧗🏽♀️", "🧗🏾♀️", "🧗🏿♀️",
|
||||||
|
"🧗", "🧗🏻", "🧗🏼", "🧗🏽", "🧗🏾", "🧗🏿",
|
||||||
|
"🧗♂️", "🧗🏻♂️", "🧗🏼♂️", "🧗🏽♂️", "🧗🏾♂️", "🧗🏿♂️",
|
||||||
|
"🚵♀️", "🚵🏻♀️", "🚵🏼♀️", "🚵🏽♀️", "🚵🏾♀️", "🚵🏿♀️",
|
||||||
|
"🚵", "🚵🏻", "🚵🏼", "🚵🏽", "🚵🏾", "🚵🏿",
|
||||||
|
"🚵♂️", "🚵🏻♂️", "🚵🏼♂️", "🚵🏽♂️", "🚵🏾♂️", "🚵🏿♂️",
|
||||||
|
"🚴♀️", "🚴🏻♀️", "🚴🏼♀️", "🚴🏽♀️", "🚴🏾♀️", "🚴🏿♀️",
|
||||||
|
"🚴", "🚴🏻", "🚴🏼", "🚴🏽", "🚴🏾", "🚴🏿",
|
||||||
|
"🚴♂️", "🚴🏻♂️", "🚴🏼♂️", "🚴🏽♂️", "🚴🏾♂️", "🚴🏿♂️",
|
||||||
|
"🏆", "🥇", "🥈", "🥉", "🏅", "🎖", "🏵", "🎗", "🎫", "🎟", "🎪",
|
||||||
|
"🤹♀️", "🤹🏻♀️", "🤹🏼♀️", "🤹🏽♀️", "🤹🏾♀️", "🤹🏿♀️",
|
||||||
|
"🤹", "🤹🏻", "🤹🏼", "🤹🏽", "🤹🏾", "🤹🏿",
|
||||||
|
"🤹♂️", "🤹🏻♂️", "🤹🏼♂️", "🤹🏽♂️", "🤹🏾♂️", "🤹🏿♂️",
|
||||||
|
"🎭", "🩰", "🎨", "🎬", "🎤", "🎧", "🎼", "🎹", "🥁", "🎷", "🎺", "🎸", "🪕", "🎻", "🎲", "♟", "🎯", "🎳", "🎮", "🎰", "🧩"
|
||||||
|
|
||||||
|
|
||||||
|
"🚗", "🚕", "🚙", "🚌", "🚎", "🏎", "🚓", "🚑", "🚒", "🚐", "🚚", "🚛", "🚜", "🦯", "🦽", "🦼", "🛴", "🚲", "🛵", "🏍", "🛺", "🚨", "🚔", "🚍", "🚘", "🚖", "🚡", "🚠", "🚟", "🚃", "🚋", "🚞", "🚝", "🚄", "🚅", "🚈", "🚂", "🚆", "🚇", "🚊", "🚉", "✈️", "🛫", "🛬", "🛩", "💺", "🛰", "🚀", "🛸", "🚁", "🛶", "⛵️", "🚤", "🛥", "🛳", "⛴", "🚢", "⚓️", "⛽️", "🚧", "🚦", "🚥", "🚏", "🗺", "🗿", "🗽", "🗼", "🏰", "🏯", "🏟", "🎡", "🎢", "🎠", "⛲️", "⛱", "🏖", "🏝", "🏜", "🌋", "⛰", "🏔", "🗻", "🏕", "⛺️", "🏠", "🏡", "🏘", "🏚", "🏗", "🏭", "🏢", "🏬", "🏣", "🏤", "🏥", "🏦", "🏨", "🏪", "🏫", "🏩", "💒", "🏛", "⛪️", "🕌", "🕍", "🛕", "🕋", "⛩", "🛤", "🛣", "🗾", "🎑", "🏞", "🌅", "🌄", "🌠", "🎇", "🎆", "🌇", "🌆", "🏙", "🌃", "🌌", "🌉", "🌁"
|
||||||
|
|
||||||
|
|
||||||
|
"⌚️", "📱", "📲", "💻", "⌨️", "🖥", "🖨", "🖱", "🖲", "🕹", "🗜", "💽", "💾", "💿", "📀", "📼", "📷", "📸", "📹", "🎥", "📽", "🎞", "📞", "☎️", "📟", "📠", "📺", "📻", "🎙", "🎚", "🎛", "🧭", "⏱", "⏲", "⏰", "🕰", "⌛️", "⏳", "📡", "🔋", "🔌", "💡", "🔦", "🕯", "🪔", "🧯", "🛢", "💸", "💵", "💴", "💶", "💷", "💰", "💳", "💎", "⚖️", "🧰", "🔧", "🔨", "⚒", "🛠", "⛏", "🔩", "⚙️", "🧱", "⛓", "🧲", "🔫", "💣", "🧨", "🪓", "🔪", "🗡", "⚔️", "🛡", "🚬", "⚰️", "⚱️", "🏺", "🔮", "📿", "🧿", "💈", "⚗️", "🔭", "🔬", "🕳", "🩹", "🩺", "💊", "💉", "🩸", "🧬", "🦠", "🧫", "🧪", "🌡", "🧹", "🧺", "🧻", "🚽", "🚰", "🚿", "🛁",
|
||||||
|
"🛀", "🛀🏻", "🛀🏼", "🛀🏽", "🛀🏾", "🛀🏿",
|
||||||
|
"🧼", "🪒", "🧽", "🧴", "🛎", "🔑", "🗝", "🚪", "🪑", "🛋", "🛏", "🛌", "🧸", "🖼", "🛍", "🛒", "🎁", "🎈", "🎏", "🎀", "🎊", "🎉", "🎎", "🏮", "🎐", "🧧", "✉️", "📩", "📨", "📧", "💌", "📥", "📤", "📦", "🏷", "📪", "📫", "📬", "📭", "📮", "📯📜", "📃", "📄", "📑", "🧾", "📊", "📈", "📉", "🗒", "🗓", "📆", "📅", "🗑", "📇", "🗃", "🗳", "🗄", "📋", "📁", "📂", "🗂", "🗞", "📰", "📓", "📔", "📒", "📕", "📗", "📘", "📙", "📚", "📖", "🔖", "🧷", "🔗", "📎", "🖇", "📐", "📏", "🧮", "📌", "📍", "✂️", "🖊", "🖋", "✒️", "🖌", "🖍", "📝", "✏️", "🔍", "🔎", "🔏", "🔐", "🔒", "🔓"
|
||||||
|
|
||||||
|
|
||||||
|
"❤️", "🧡", "💛", "💚", "💙", "💜", "🖤", "🤍", "🤎", "💔", "❣️", "💕", "💞", "💓", "💗", "💖", "💘", "💝", "💟", "☮️", "✝️", "☪️", "🕉", "☸️", "✡️", "🔯", "🕎", "☯️", "☦️", "🛐", "⛎", "♈️", "♉️", "♊️", "♋️", "♌️", "♍️", "♎️", "♏️", "♐️", "♑️", "♒️", "♓️", "🆔", "⚛️", "🉑", "☢️", "☣️", "📴", "📳", "🈶", "🈚️", "🈸", "🈺", "🈷️", "✴️", "🆚", "💮", "🉐", "㊙️", "㊗️", "🈴", "🈵", "🈹", "🈲", "🅰️", "🅱️", "🆎", "🆑", "🅾️", "🆘", "❌", "⭕️", "🛑", "⛔️", "📛", "🚫", "💯", "💢", "♨️", "🚷", "🚯", "🚳", "🚱", "🔞", "📵", "🚭", "❗️", "❕", "❓", "❔", "‼️", "⁉️", "🔅", "🔆", "〽️", "⚠️", "🚸", "🔱", "⚜️", "🔰", "♻️", "✅", "🈯️", "💹", "❇️", "✳️", "❎", "🌐", "💠", "Ⓜ️", "🌀", "💤", "🏧", "🚾", "♿️", "🅿️", "🈳", "🈂️", "🛂", "🛃", "🛄", "🛅", "🚹", "🚺", "🚼", "🚻", "🚮", "🎦", "📶", "🈁", "🔣", "ℹ️", "🔤", "🔡", "🔠", "🆖", "🆗", "🆙", "🆒", "🆕", "🆓", "0️⃣", "1️⃣", "2️⃣", "3️⃣", "4️⃣", "5️⃣", "6️⃣", "7️⃣", "8️⃣", "9️⃣", "🔟", "🔢", "#️⃣", "*️⃣", "⏏️", "▶️", "⏸", "⏯", "⏹", "⏺", "⏭", "⏮", "⏩", "⏪", "⏫", "⏬", "◀️", "🔼", "🔽", "➡️", "⬅️", "⬆️", "⬇️", "↗️", "↘️", "↙️", "↖️", "↕️", "↔️", "↪️", "↩️", "⤴️", "⤵️", "🔀", "🔁", "🔂", "🔄", "🔃", "🎵", "🎶", "➕", "➖", "➗", "✖️", "♾", "💲", "💱", "™️", "©️", "®️", "👁🗨", "🔚", "🔙", "🔛", "🔝", "🔜", "〰️", "➰", "➿", "✔️", "☑️", "🔘", "🔴", "🟠", "🟡", "🟢", "🔵", "🟣", "⚫️", "⚪️", "🟤", "🔺", "🔻", "🔸", "🔹", "🔶", "🔷", "🔳", "🔲", "▪️", "▫️", "◾️", "◽️", "◼️", "◻️", "🟥", "🟧", "🟨", "🟩", "🟦", "🟪", "⬛️", "⬜️", "🟫", "🔈", "🔇", "🔉", "🔊", "🔔", "🔕", "📣", "📢", "💬", "💭", "🗯", "♠️", "♣️", "♥️", "♦️", "🃏", "🎴", "🀄️", "🕐", "🕑", "🕒", "🕓", "🕔", "🕕", "🕖", "🕗", "🕘", "🕙", "🕚", "🕛", "🕜", "🕝", "🕞", "🕟", "🕠", "🕡", "🕢", "🕣", "🕤", "🕥", "🕦", "🕧"
|
||||||
|
|
||||||
|
|
||||||
|
"🏳️", "🏴", "🏴☠️", "🏁", "🚩", "🏳️🌈", "🇺🇳", "🇦🇫", "🇦🇽", "🇦🇱", "🇩🇿", "🇦🇸", "🇦🇩", "🇦🇴", "🇦🇮", "🇦🇶", "🇦🇬", "🇦🇷", "🇦🇲", "🇦🇼", "🇦🇺", "🇦🇹", "🇦🇿", "🇧🇸", "🇧🇭", "🇧🇩", "🇧🇧", "🇧🇾", "🇧🇪", "🇧🇿", "🇧🇯", "🇧🇲", "🇧🇹", "🇧🇴", "🇧🇦", "🇧🇼", "🇧🇷", "🇮🇴", "🇻🇬", "🇧🇳", "🇧🇬", "🇧🇫", "🇧🇮", "🇰🇭", "🇨🇲", "🇨🇦", "🇮🇨", "🇨🇻", "🇧🇶", "🇰🇾", "🇨🇫", "🇹🇩", "🇨🇱", "🇨🇳", "🇨🇽", "🇨🇨", "🇨🇴", "🇰🇲", "🇨🇬", "🇨🇩", "🇨🇰", "🇨🇷", "🇨🇮", "🇭🇷", "🇨🇺", "🇨🇼", "🇨🇾", "🇨🇿", "🇩🇰", "🇩🇯", "🇩🇲", "🇩🇴", "🇪🇨", "🇪🇬", "🇸🇻", "🇬🇶", "🇪🇷", "🇪🇪", "🇸🇿", "🇪🇹", "🇪🇺", "🇫🇰", "🇫🇴", "🇫🇯", "🇫🇮", "🇫🇷", "🇬🇫", "🇵🇫", "🇹🇫", "🇬🇦", "🇬🇲", "🇬🇪", "🇩🇪", "🇬🇭", "🇬🇮", "🇬🇷", "🇬🇱", "🇬🇩", "🇬🇵", "🇬🇺", "🇬🇹", "🇬🇬", "🇬🇳", "🇬🇼", "🇬🇾", "🇭🇹", "🇭🇳", "🇭🇰", "🇭🇺", "🇮🇸", "🇮🇳", "🇮🇩", "🇮🇷", "🇮🇶", "🇮🇪", "🇮🇲", "🇮🇱", "🇮🇹", "🇯🇲", "🇯🇵", "🎌", "🇯🇪", "🇯🇴", "🇰🇿", "🇰🇪", "🇰🇮", "🇽🇰", "🇰🇼", "🇰🇬", "🇱🇦", "🇱🇻", "🇱🇧", "🇱🇸", "🇱🇷", "🇱🇾", "🇱🇮", "🇱🇹", "🇱🇺", "🇲🇴", "🇲🇬", "🇲🇼", "🇲🇾", "🇲🇻", "🇲🇱", "🇲🇹", "🇲🇭", "🇲🇶", "🇲🇷", "🇲🇺", "🇾🇹", "🇲🇽", "🇫🇲", "🇲🇩", "🇲🇨", "🇲🇳", "🇲🇪", "🇲🇸", "🇲🇦", "🇲🇿", "🇲🇲", "🇳🇦", "🇳🇷", "🇳🇵", "🇳🇱", "🇳🇨", "🇳🇿", "🇳🇮", "🇳🇪", "🇳🇬", "🇳🇺", "🇳🇫", "🇰🇵", "🇲🇰", "🇲🇵", "🇳🇴", "🇴🇲", "🇵🇰", "🇵🇼", "🇵🇸", "🇵🇦", "🇵🇬", "🇵🇾", "🇵🇪", "🇵🇭", "🇵🇳", "🇵🇱", "🇵🇹", "🇵🇷", "🇶🇦", "🇷🇪", "🇷🇴", "🇷🇺", "🇷🇼", "🇼🇸", "🇸🇲", "🇸🇹", "🇸🇦", "🇸🇳", "🇷🇸", "🇸🇨", "🇸🇱", "🇸🇬", "🇸🇽", "🇸🇰", "🇸🇮", "🇬🇸", "🇸🇧", "🇸🇴", "🇿🇦", "🇰🇷", "🇸🇸", "🇪🇸", "🇱🇰", "🇧🇱", "🇸🇭", "🇰🇳", "🇱🇨", "🇵🇲", "🇻🇨", "🇸🇩", "🇸🇷", "🇸🇪", "🇨🇭", "🇸🇾", "🇹🇼", "🇹🇯", "🇹🇿", "🇹🇭", "🇹🇱", "🇹🇬", "🇹🇰", "🇹🇴", "🇹🇹", "🇹🇳", "🇹🇷", "🇹🇲", "🇹🇨", "🇹🇻", "🇻🇮", "🇺🇬", "🇺🇦", "🇦🇪", "🇬🇧", "🏴", "🏴", "🏴", "🇺🇸", "🇺🇾", "🇺🇿", "🇻🇺", "🇻🇦", "🇻🇪", "🇻🇳", "🇼🇫", "🇪🇭", "🇾🇪", "🇿🇲", "🇿🇼"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-----------
|
||||||
|
|
||||||
|
|
||||||
|
"😀", "😃", "😄", "😁", "😆", "😅", "😂", "🤣", "☺️", "😊", "😇", "🙂", "🙃", "😉", "😌", "😍", "🥰", "😘", "😗", "😙", "😚", "😋", "😛", "😝", "😜", "🤪", "🤨", "🧐", "🤓", "😎", "🤩", "🥳", "😏", "😒", "😞", "😔", "😟", "😕", "🙁", "☹️", "😣", "😖", "😫", "😩", "🥺", "😢", "😭", "😤", "😠", "😡", "🤬", "🤯", "😳", "🥵", "🥶", "😱", "😨", "😰", "😥", "😓", "🤗", "🤔", "🤭", "🤫", "🤥", "😶", "😐", "😑", "😬", "🙄", "😯", "😦", "😧", "😮", "😲", "🥱", "😴", "🤤", "😪", "😵", "🤐", "🥴", "🤢", "🤮", "🤧", "😷", "🤒", "🤕", "🤑", "🤠", "😈", "👿", "👹", "👺", "🤡", "💩", "👻", "💀", "☠️", "👽", "👾", "🤖", "🎃", "😺", "😸", "😹", "😻", "😼", "😽", "🙀", "😿", "😾",
|
||||||
|
"🤲",
|
||||||
|
"👐",
|
||||||
|
"🙌",
|
||||||
|
"👏",
|
||||||
|
"🤝",
|
||||||
|
"👍",
|
||||||
|
"👎",
|
||||||
|
"👊",
|
||||||
|
"✊",
|
||||||
|
"🤛",
|
||||||
|
"🤜",
|
||||||
|
"🤞",
|
||||||
|
"✌️",
|
||||||
|
"🤟",
|
||||||
|
"🤘",
|
||||||
|
"👌",
|
||||||
|
"🤏",
|
||||||
|
"👈",
|
||||||
|
"👉",
|
||||||
|
"👆",
|
||||||
|
"👇",
|
||||||
|
"☝️",
|
||||||
|
"✋",
|
||||||
|
"🤚",
|
||||||
|
"🖐",
|
||||||
|
"🖖",
|
||||||
|
"👋",
|
||||||
|
"🤙",
|
||||||
|
"💪",
|
||||||
|
"🦾",
|
||||||
|
"🖕",
|
||||||
|
"✍️",
|
||||||
|
"🙏",
|
||||||
|
"🦶",
|
||||||
|
"🦵",
|
||||||
|
"🦿", "💄", "💋", "👄", "🦷", "👅",
|
||||||
|
"👂",
|
||||||
|
"🦻",
|
||||||
|
"👃",
|
||||||
|
"👣", "👁", "👀", "🧠", "🗣", "👤", "👥",
|
||||||
|
"👶",
|
||||||
|
"👧",
|
||||||
|
"🧒",
|
||||||
|
"👦",
|
||||||
|
"👩",
|
||||||
|
"🧑",
|
||||||
|
"👨",
|
||||||
|
"👩🦱",
|
||||||
|
"🧑🦱",
|
||||||
|
"👨🦱",
|
||||||
|
"👩🦰",
|
||||||
|
"🧑🦰",
|
||||||
|
"👨🦰",
|
||||||
|
"👱♀️",
|
||||||
|
"👱",
|
||||||
|
"👱♂️",
|
||||||
|
"👩🦳",
|
||||||
|
"🧑🦳",
|
||||||
|
"👨🦳",
|
||||||
|
"👩🦲",
|
||||||
|
"🧑🦲",
|
||||||
|
"👨🦲",
|
||||||
|
"🧔",
|
||||||
|
"👵",
|
||||||
|
"🧓",
|
||||||
|
"👴",
|
||||||
|
"👲",
|
||||||
|
"👳♀️",
|
||||||
|
"👳",
|
||||||
|
"👳♂️",
|
||||||
|
"🧕",
|
||||||
|
"👮♀️",
|
||||||
|
"👮",
|
||||||
|
"👮♂️",
|
||||||
|
"👷♀️",
|
||||||
|
"👷",
|
||||||
|
"👷♂️",
|
||||||
|
"💂♀️",
|
||||||
|
"💂",
|
||||||
|
"💂♂️",
|
||||||
|
"🕵️♀️",
|
||||||
|
"🕵️",
|
||||||
|
"🕵️♂️",
|
||||||
|
"👩⚕️",
|
||||||
|
"🧑⚕️",
|
||||||
|
"👨⚕️",
|
||||||
|
"👩🌾",
|
||||||
|
"🧑🌾",
|
||||||
|
"👨🌾",
|
||||||
|
"👩🍳",
|
||||||
|
"🧑🍳",
|
||||||
|
"👨🍳",
|
||||||
|
"👩🎓",
|
||||||
|
"🧑🎓",
|
||||||
|
"👨🎓",
|
||||||
|
"👩🎤",
|
||||||
|
"🧑🎤",
|
||||||
|
"👨🎤",
|
||||||
|
"👩🏫",
|
||||||
|
"🧑🏫",
|
||||||
|
"👨🏫",
|
||||||
|
"👩🏭",
|
||||||
|
"🧑🏭",
|
||||||
|
"👨🏭",
|
||||||
|
"👩💻",
|
||||||
|
"🧑💻",
|
||||||
|
"👨💻",
|
||||||
|
"👩💼",
|
||||||
|
"🧑💼",
|
||||||
|
"👨💼",
|
||||||
|
"👩🔧",
|
||||||
|
"🧑🔧",
|
||||||
|
"👨🔧",
|
||||||
|
"👩🔬",
|
||||||
|
"🧑🔬",
|
||||||
|
"👨🔬",
|
||||||
|
"👩🎨",
|
||||||
|
"🧑🎨",
|
||||||
|
"👨🎨",
|
||||||
|
"👩🚒",
|
||||||
|
"🧑🚒",
|
||||||
|
"👨🚒",
|
||||||
|
"👩✈️",
|
||||||
|
"🧑✈️",
|
||||||
|
"👨✈️",
|
||||||
|
"👩🚀",
|
||||||
|
"🧑🚀",
|
||||||
|
"👨🚀",
|
||||||
|
"👩⚖️",
|
||||||
|
"🧑⚖️",
|
||||||
|
"👨⚖️",
|
||||||
|
"👰",
|
||||||
|
"🤵",
|
||||||
|
"👸",
|
||||||
|
"🤴",
|
||||||
|
"🦸♀️",
|
||||||
|
"🦸",
|
||||||
|
"🦸♂️",
|
||||||
|
"🦹♀️",
|
||||||
|
"🦹",
|
||||||
|
"🦹♂️",
|
||||||
|
"🤶",
|
||||||
|
"🎅",
|
||||||
|
"🧙♀️",
|
||||||
|
"🧙",
|
||||||
|
"🧙♂️",
|
||||||
|
"🧝♀️",
|
||||||
|
"🧝",
|
||||||
|
"🧝♂️",
|
||||||
|
"🧛♀️",
|
||||||
|
"🧛",
|
||||||
|
"🧛♂️",
|
||||||
|
"🧟♀️", "🧟", "🧟♂️", "🧞♀️", "🧞", "🧞♂️",
|
||||||
|
"🧜♀️",
|
||||||
|
"🧜",
|
||||||
|
"🧜♂️",
|
||||||
|
"🧚♀️",
|
||||||
|
"🧚",
|
||||||
|
"🧚♂️",
|
||||||
|
"👼",
|
||||||
|
"🤰",
|
||||||
|
"🤱",
|
||||||
|
"🙇♀️",
|
||||||
|
"🙇",
|
||||||
|
"🙇♂️",
|
||||||
|
"💁♀️",
|
||||||
|
"💁",
|
||||||
|
"💁♂️",
|
||||||
|
"🙅♀️",
|
||||||
|
"🙅",
|
||||||
|
"🙅♂️",
|
||||||
|
"🙆♀️",
|
||||||
|
"🙆",
|
||||||
|
"🙆♂️",
|
||||||
|
"🙋♀️",
|
||||||
|
"🙋",
|
||||||
|
"🙋♂️",
|
||||||
|
"🧏♀️",
|
||||||
|
"🧏",
|
||||||
|
"🧏♂️",
|
||||||
|
"🤦♀️",
|
||||||
|
"🤦",
|
||||||
|
"🤦♂️",
|
||||||
|
"🤷♀️",
|
||||||
|
"🤷",
|
||||||
|
"🤷♂️",
|
||||||
|
"🙎♀️",
|
||||||
|
"🙎",
|
||||||
|
"🙎♂️",
|
||||||
|
"🙍♀️",
|
||||||
|
"🙍",
|
||||||
|
"🙍♂️",
|
||||||
|
"💇♀️",
|
||||||
|
"💇",
|
||||||
|
"💇♂️",
|
||||||
|
"💆♀️",
|
||||||
|
"💆",
|
||||||
|
"💆♂️",
|
||||||
|
"🧖♀️",
|
||||||
|
"🧖",
|
||||||
|
"🧖♂️",
|
||||||
|
"💅",
|
||||||
|
"🤳",
|
||||||
|
"💃",
|
||||||
|
"🕺",
|
||||||
|
"👯♀️", "👯", "👯♂️",
|
||||||
|
"🕴",
|
||||||
|
"👩🦽",
|
||||||
|
"🧑🦽",
|
||||||
|
"👨🦽",
|
||||||
|
"👩🦼",
|
||||||
|
"🧑🦼",
|
||||||
|
"👨🦼",
|
||||||
|
"🚶♀️",
|
||||||
|
"🚶",
|
||||||
|
"🚶♂️",
|
||||||
|
"👩🦯",
|
||||||
|
"🧑🦯",
|
||||||
|
"👨🦯",
|
||||||
|
"🧎♀️",
|
||||||
|
"🧎",
|
||||||
|
"🧎♂️",
|
||||||
|
"🏃♀️",
|
||||||
|
"🏃",
|
||||||
|
"🏃♂️",
|
||||||
|
"🧍♀️",
|
||||||
|
"🧍",
|
||||||
|
"🧍♂️",
|
||||||
|
"👫",
|
||||||
|
"👭",
|
||||||
|
"👬",
|
||||||
|
"👩❤️👨", "👩❤️👩", "👨❤️👨", "👩❤️💋👨", "👩❤️💋👩", "👨❤️💋👨", "👨👩👦", "👨👩👧", "👨👩👧👦", "👨👩👦👦", "👨👩👧👧", "👩👩👦", "👩👩👧", "👩👩👧👦", "👩👩👦👦", "👩👩👧👧", "👨👨👦", "👨👨👧", "👨👨👧👦", "👨👨👦👦", "👨👨👧👧", "👩👦", "👩👧", "👩👧👦", "👩👦👦", "👩👧👧", "👨👦", "👨👧", "👨👧👦", "👨👦👦", "👨👧👧", "🧶", "🧵", "🧥", "🥼", "🦺", "👚", "👕", "👖", "🩲", "🩳", "👔", "👗", "👙", "👘", "🥻", "🩱", "🥿", "👠", "👡", "👢", "👞", "👟", "🥾", "🧦", "🧤", "🧣", "🎩", "🧢", "👒", "🎓", "⛑", "👑", "💍", "👝", "👛", "👜", "💼", "🎒", "🧳", "👓", "🕶", "🥽", "🌂"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"🐶", "🐱", "🐭", "🐹", "🐰", "🦊", "🐻", "🐼", "🐨", "🐯", "🦁", "🐮", "🐷", "🐽", "🐸", "🐵", "🙈", "🙉", "🙊", "🐒", "🐔", "🐧", "🐦", "🐤", "🐣", "🐥", "🦆", "🦅", "🦉", "🦇", "🐺", "🐗", "🐴", "🦄", "🐝", "🐛", "🦋", "🐌", "🐞", "🐜", "🦟", "🦗", "🕷", "🕸", "🦂", "🐢", "🐍", "🦎", "🦖", "🦕", "🐙", "🦑", "🦐", "🦞", "🦀", "🐡", "🐠", "🐟", "🐬", "🐳", "🐋", "🦈", "🐊", "🐅", "🐆", "🦓", "🦍", "🦧", "🐘", "🦛", "🦏", "🐪", "🐫", "🦒", "🦘", "🐃", "🐂", "🐄", "🐎", "🐖", "🐏", "🐑", "🦙", "🐐", "🦌", "🐕", "🐩", "🦮", "🐕🦺", "🐈", "🐓", "🦃", "🦚", "🦜", "🦢", "🦩", "🕊", "🐇", "🦝", "🦨", "🦡", "🦦", "🦥", "🐁", "🐀", "🐿", "🦔", "🐾", "🐉", "🐲", "🌵", "🎄", "🌲", "🌳", "🌴", "🌱", "🌿", "☘️", "🍀", "🎍", "🎋", "🍃", "🍂", "🍁", "🍄", "🐚", "🌾", "💐", "🌷", "🌹", "🥀", "🌺", "🌸", "🌼", "🌻", "🌞", "🌝", "🌛", "🌜", "🌚", "🌕", "🌖", "🌗", "🌘", "🌑", "🌒", "🌓", "🌔", "🌙", "🌎", "🌍", "🌏", "🪐", "💫", "⭐️", "🌟", "✨", "⚡️", "☄️", "💥", "🔥", "🌪", "🌈", "☀️", "🌤", "⛅️", "🌥", "☁️", "🌦", "🌧", "⛈", "🌩", "🌨", "❄️", "☃️", "⛄️", "🌬", "💨", "💧", "💦", "☔️", "☂️", "🌊", "🌫"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"🍏", "🍎", "🍐", "🍊", "🍋", "🍌", "🍉", "🍇", "🍓", "🍈", "🍒", "🍑", "🥭", "🍍", "🥥", "🥝", "🍅", "🍆", "🥑", "🥦", "🥬", "🥒", "🌶", "🌽", "🥕", "🧄", "🧅", "🥔", "🍠", "🥐", "🥯", "🍞", "🥖", "🥨", "🧀", "🥚", "🍳", "🧈", "🥞", "🧇", "🥓", "🥩", "🍗", "🍖", "🦴", "🌭", "🍔", "🍟", "🍕", "🥪", "🥙", "🧆", "🌮", "🌯", "🥗", "🥘", "🥫", "🍝", "🍜", "🍲", "🍛", "🍣", "🍱", "🥟", "🦪", "🍤", "🍙", "🍚", "🍘", "🍥", "🥠", "🥮", "🍢", "🍡", "🍧", "🍨", "🍦", "🥧", "🧁", "🍰", "🎂", "🍮", "🍭", "🍬", "🍫", "🍿", "🍩", "🍪", "🌰", "🥜", "🍯", "🥛", "🍼", "☕️", "🍵", "🧃", "🥤", "🍶", "🍺", "🍻", "🥂", "🍷", "🥃", "🍸", "🍹", "🧉", "🍾", "🧊", "🥄", "🍴", "🍽", "🥣", "🥡", "🥢", "🧂"
|
||||||
|
|
||||||
|
|
||||||
|
"⚽️", "🏀", "🏈", "⚾️", "🥎", "🎾", "🏐", "🏉", "🥏", "🎱", "🪀", "🏓", "🏸", "🏒", "🏑", "🥍", "🏏", "🥅", "⛳️", "🪁", "🏹", "🎣", "🤿", "🥊", "🥋", "🎽", "🛹", "🛷", "⛸", "🥌", "🎿", "⛷", "🏂", "🪂",
|
||||||
|
"🏋️♀️",
|
||||||
|
"🏋️",
|
||||||
|
"🏋️♂️",
|
||||||
|
"🤼♀️", "🤼", "🤼♂️",
|
||||||
|
"🤸♀️",
|
||||||
|
"🤸",
|
||||||
|
"🤸♂️",
|
||||||
|
"⛹️♀️",
|
||||||
|
"⛹️",
|
||||||
|
"⛹️♂️",
|
||||||
|
"🤺",
|
||||||
|
"🤾♀️",
|
||||||
|
"🤾",
|
||||||
|
"🤾♂️",
|
||||||
|
"🏌️♀️",
|
||||||
|
"🏌️",
|
||||||
|
"🏌️♂️",
|
||||||
|
"🏇",
|
||||||
|
"🧘♀️",
|
||||||
|
"🧘",
|
||||||
|
"🧘♂️",
|
||||||
|
"🏄♀️",
|
||||||
|
"🏄",
|
||||||
|
"🏄♂️",
|
||||||
|
"🏊♀️",
|
||||||
|
"🏊",
|
||||||
|
"🏊♂️",
|
||||||
|
"🤽♀️",
|
||||||
|
"🤽",
|
||||||
|
"🤽♂️",
|
||||||
|
"🚣♀️",
|
||||||
|
"🚣",
|
||||||
|
"🚣♂️",
|
||||||
|
"🧗♀️",
|
||||||
|
"🧗",
|
||||||
|
"🧗♂️",
|
||||||
|
"🚵♀️",
|
||||||
|
"🚵",
|
||||||
|
"🚵♂️",
|
||||||
|
"🚴♀️",
|
||||||
|
"🚴",
|
||||||
|
"🚴♂️",
|
||||||
|
"🏆", "🥇", "🥈", "🥉", "🏅", "🎖", "🏵", "🎗", "🎫", "🎟", "🎪",
|
||||||
|
"🤹♀️",
|
||||||
|
"🤹",
|
||||||
|
"🤹♂️",
|
||||||
|
"🎭", "🩰", "🎨", "🎬", "🎤", "🎧", "🎼", "🎹", "🥁", "🎷", "🎺", "🎸", "🪕", "🎻", "🎲", "♟", "🎯", "🎳", "🎮", "🎰", "🧩"
|
||||||
|
|
||||||
|
|
||||||
|
"🚗", "🚕", "🚙", "🚌", "🚎", "🏎", "🚓", "🚑", "🚒", "🚐", "🚚", "🚛", "🚜", "🦯", "🦽", "🦼", "🛴", "🚲", "🛵", "🏍", "🛺", "🚨", "🚔", "🚍", "🚘", "🚖", "🚡", "🚠", "🚟", "🚃", "🚋", "🚞", "🚝", "🚄", "🚅", "🚈", "🚂", "🚆", "🚇", "🚊", "🚉", "✈️", "🛫", "🛬", "🛩", "💺", "🛰", "🚀", "🛸", "🚁", "🛶", "⛵️", "🚤", "🛥", "🛳", "⛴", "🚢", "⚓️", "⛽️", "🚧", "🚦", "🚥", "🚏", "🗺", "🗿", "🗽", "🗼", "🏰", "🏯", "🏟", "🎡", "🎢", "🎠", "⛲️", "⛱", "🏖", "🏝", "🏜", "🌋", "⛰", "🏔", "🗻", "🏕", "⛺️", "🏠", "🏡", "🏘", "🏚", "🏗", "🏭", "🏢", "🏬", "🏣", "🏤", "🏥", "🏦", "🏨", "🏪", "🏫", "🏩", "💒", "🏛", "⛪️", "🕌", "🕍", "🛕", "🕋", "⛩", "🛤", "🛣", "🗾", "🎑", "🏞", "🌅", "🌄", "🌠", "🎇", "🎆", "🌇", "🌆", "🏙", "🌃", "🌌", "🌉", "🌁"
|
||||||
|
|
||||||
|
|
||||||
|
"⌚️", "📱", "📲", "💻", "⌨️", "🖥", "🖨", "🖱", "🖲", "🕹", "🗜", "💽", "💾", "💿", "📀", "📼", "📷", "📸", "📹", "🎥", "📽", "🎞", "📞", "☎️", "📟", "📠", "📺", "📻", "🎙", "🎚", "🎛", "🧭", "⏱", "⏲", "⏰", "🕰", "⌛️", "⏳", "📡", "🔋", "🔌", "💡", "🔦", "🕯", "🪔", "🧯", "🛢", "💸", "💵", "💴", "💶", "💷", "💰", "💳", "💎", "⚖️", "🧰", "🔧", "🔨", "⚒", "🛠", "⛏", "🔩", "⚙️", "🧱", "⛓", "🧲", "🔫", "💣", "🧨", "🪓", "🔪", "🗡", "⚔️", "🛡", "🚬", "⚰️", "⚱️", "🏺", "🔮", "📿", "🧿", "💈", "⚗️", "🔭", "🔬", "🕳", "🩹", "🩺", "💊", "💉", "🩸", "🧬", "🦠", "🧫", "🧪", "🌡", "🧹", "🧺", "🧻", "🚽", "🚰", "🚿", "🛁",
|
||||||
|
"🛀",
|
||||||
|
"🧼", "🪒", "🧽", "🧴", "🛎", "🔑", "🗝", "🚪", "🪑", "🛋", "🛏", "🛌", "🧸", "🖼", "🛍", "🛒", "🎁", "🎈", "🎏", "🎀", "🎊", "🎉", "🎎", "🏮", "🎐", "🧧", "✉️", "📩", "📨", "📧", "💌", "📥", "📤", "📦", "🏷", "📪", "📫", "📬", "📭", "📮", "📯", "📜", "📃", "📄", "📑", "🧾", "📊", "📈", "📉", "🗒", "🗓", "📆", "📅", "🗑", "📇", "🗃", "🗳", "🗄", "📋", "📁", "📂", "🗂", "🗞", "📰", "📓", "📔", "📒", "📕", "📗", "📘", "📙", "📚", "📖", "🔖", "🧷", "🔗", "📎", "🖇", "📐", "📏", "🧮", "📌", "📍", "✂️", "🖊", "🖋", "✒️", "🖌", "🖍", "📝", "✏️", "🔍", "🔎", "🔏", "🔐", "🔒", "🔓"
|
||||||
|
|
||||||
|
|
||||||
|
"❤️", "🧡", "💛", "💚", "💙", "💜", "🖤", "🤍", "🤎", "💔", "❣️", "💕", "💞", "💓", "💗", "💖", "💘", "💝", "💟", "☮️", "✝️", "☪️", "🕉", "☸️", "✡️", "🔯", "🕎", "☯️", "☦️", "🛐", "⛎", "♈️", "♉️", "♊️", "♋️", "♌️", "♍️", "♎️", "♏️", "♐️", "♑️", "♒️", "♓️", "🆔", "⚛️", "🉑", "☢️", "☣️", "📴", "📳", "🈶", "🈚️", "🈸", "🈺", "🈷️", "✴️", "🆚", "💮", "🉐", "㊙️", "㊗️", "🈴", "🈵", "🈹", "🈲", "🅰️", "🅱️", "🆎", "🆑", "🅾️", "🆘", "❌", "⭕️", "🛑", "⛔️", "📛", "🚫", "💯", "💢", "♨️", "🚷", "🚯", "🚳", "🚱", "🔞", "📵", "🚭", "❗️", "❕", "❓", "❔", "‼️", "⁉️", "🔅", "🔆", "〽️", "⚠️", "🚸", "🔱", "⚜️", "🔰", "♻️", "✅", "🈯️", "💹", "❇️", "✳️", "❎", "🌐", "💠", "Ⓜ️", "🌀", "💤", "🏧", "🚾", "♿️", "🅿️", "🈳", "🈂️", "🛂", "🛃", "🛄", "🛅", "🚹", "🚺", "🚼", "🚻", "🚮", "🎦", "📶", "🈁", "🔣", "ℹ️", "🔤", "🔡", "🔠", "🆖", "🆗", "🆙", "🆒", "🆕", "🆓", "0️⃣", "1️⃣", "2️⃣", "3️⃣", "4️⃣", "5️⃣", "6️⃣", "7️⃣", "8️⃣", "9️⃣", "🔟", "🔢", "#️⃣", "*️⃣", "⏏️", "▶️", "⏸", "⏯", "⏹", "⏺", "⏭", "⏮", "⏩", "⏪", "⏫", "⏬", "◀️", "🔼", "🔽", "➡️", "⬅️", "⬆️", "⬇️", "↗️", "↘️", "↙️", "↖️", "↕️", "↔️", "↪️", "↩️", "⤴️", "⤵️", "🔀", "🔁", "🔂", "🔄", "🔃", "🎵", "🎶", "➕", "➖", "➗", "✖️", "♾", "💲", "💱", "™️", "©️", "®️", "👁🗨", "🔚", "🔙", "🔛", "🔝", "🔜", "〰️", "➰", "➿", "✔️", "☑️", "🔘", "🔴", "🟠", "🟡", "🟢", "🔵", "🟣", "⚫️", "⚪️", "🟤", "🔺", "🔻", "🔸", "🔹", "🔶", "🔷", "🔳", "🔲", "▪️", "▫️", "◾️", "◽️", "◼️", "◻️", "🟥", "🟧", "🟨", "🟩", "🟦", "🟪", "⬛️", "⬜️", "🟫", "🔈", "🔇", "🔉", "🔊", "🔔", "🔕", "📣", "📢", "💬", "💭", "🗯", "♠️", "♣️", "♥️", "♦️", "🃏", "🎴", "🀄️", "🕐", "🕑", "🕒", "🕓", "🕔", "🕕", "🕖", "🕗", "🕘", "🕙", "🕚", "🕛", "🕜", "🕝", "🕞", "🕟", "🕠", "🕡", "🕢", "🕣", "🕤", "🕥", "🕦", "🕧"
|
||||||
|
|
||||||
|
|
||||||
|
"🏳️", "🏴", "🏴☠️", "🏁", "🚩", "🏳️🌈", "🇺🇳", "🇦🇫", "🇦🇽", "🇦🇱", "🇩🇿", "🇦🇸", "🇦🇩", "🇦🇴", "🇦🇮", "🇦🇶", "🇦🇬", "🇦🇷", "🇦🇲", "🇦🇼", "🇦🇺", "🇦🇹", "🇦🇿", "🇧🇸", "🇧🇭", "🇧🇩", "🇧🇧", "🇧🇾", "🇧🇪", "🇧🇿", "🇧🇯", "🇧🇲", "🇧🇹", "🇧🇴", "🇧🇦", "🇧🇼", "🇧🇷", "🇮🇴", "🇻🇬", "🇧🇳", "🇧🇬", "🇧🇫", "🇧🇮", "🇰🇭", "🇨🇲", "🇨🇦", "🇮🇨", "🇨🇻", "🇧🇶", "🇰🇾", "🇨🇫", "🇹🇩", "🇨🇱", "🇨🇳", "🇨🇽", "🇨🇨", "🇨🇴", "🇰🇲", "🇨🇬", "🇨🇩", "🇨🇰", "🇨🇷", "🇨🇮", "🇭🇷", "🇨🇺", "🇨🇼", "🇨🇾", "🇨🇿", "🇩🇰", "🇩🇯", "🇩🇲", "🇩🇴", "🇪🇨", "🇪🇬", "🇸🇻", "🇬🇶", "🇪🇷", "🇪🇪", "🇸🇿", "🇪🇹", "🇪🇺", "🇫🇰", "🇫🇴", "🇫🇯", "🇫🇮", "🇫🇷", "🇬🇫", "🇵🇫", "🇹🇫", "🇬🇦", "🇬🇲", "🇬🇪", "🇩🇪", "🇬🇭", "🇬🇮", "🇬🇷", "🇬🇱", "🇬🇩", "🇬🇵", "🇬🇺", "🇬🇹", "🇬🇬", "🇬🇳", "🇬🇼", "🇬🇾", "🇭🇹", "🇭🇳", "🇭🇰", "🇭🇺", "🇮🇸", "🇮🇳", "🇮🇩", "🇮🇷", "🇮🇶", "🇮🇪", "🇮🇲", "🇮🇱", "🇮🇹", "🇯🇲", "🇯🇵", "🎌", "🇯🇪", "🇯🇴", "🇰🇿", "🇰🇪", "🇰🇮", "🇽🇰", "🇰🇼", "🇰🇬", "🇱🇦", "🇱🇻", "🇱🇧", "🇱🇸", "🇱🇷", "🇱🇾", "🇱🇮", "🇱🇹", "🇱🇺", "🇲🇴", "🇲🇬", "🇲🇼", "🇲🇾", "🇲🇻", "🇲🇱", "🇲🇹", "🇲🇭", "🇲🇶", "🇲🇷", "🇲🇺", "🇾🇹", "🇲🇽", "🇫🇲", "🇲🇩", "🇲🇨", "🇲🇳", "🇲🇪", "🇲🇸", "🇲🇦", "🇲🇿", "🇲🇲", "🇳🇦", "🇳🇷", "🇳🇵", "🇳🇱", "🇳🇨", "🇳🇿", "🇳🇮", "🇳🇪", "🇳🇬", "🇳🇺", "🇳🇫", "🇰🇵", "🇲🇰", "🇲🇵", "🇳🇴", "🇴🇲", "🇵🇰", "🇵🇼", "🇵🇸", "🇵🇦", "🇵🇬", "🇵🇾", "🇵🇪", "🇵🇭", "🇵🇳", "🇵🇱", "🇵🇹", "🇵🇷", "🇶🇦", "🇷🇪", "🇷🇴", "🇷🇺", "🇷🇼", "🇼🇸", "🇸🇲", "🇸🇹", "🇸🇦", "🇸🇳", "🇷🇸", "🇸🇨", "🇸🇱", "🇸🇬", "🇸🇽", "🇸🇰", "🇸🇮", "🇬🇸", "🇸🇧", "🇸🇴", "🇿🇦", "🇰🇷", "🇸🇸", "🇪🇸", "🇱🇰", "🇧🇱", "🇸🇭", "🇰🇳", "🇱🇨", "🇵🇲", "🇻🇨", "🇸🇩", "🇸🇷", "🇸🇪", "🇨🇭", "🇸🇾", "🇹🇼", "🇹🇯", "🇹🇿", "🇹🇭", "🇹🇱", "🇹🇬", "🇹🇰", "🇹🇴", "🇹🇹", "🇹🇳", "🇹🇷", "🇹🇲", "🇹🇨", "🇹🇻", "🇻🇮", "🇺🇬", "🇺🇦", "🇦🇪", "🇬🇧", "🏴", "🏴", "🏴", "🇺🇸", "🇺🇾", "🇺🇿", "🇻🇺", "🇻🇦", "🇻🇪", "🇻🇳", "🇼🇫", "🇪🇭", "🇾🇪", "🇿🇲", "🇿🇼"
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
"🤲", "👐", "🙌", "👏", "👍", "👎", "👊", "✊", "🤛", "🤜", "🤞", "✌️", "🤟", "🤘",
|
||||||
|
"👌", "🤏", "👈", "👉", "👆", "👇", "☝️", "✋", "🤚", "🖐", "🖖", "👋", "🤙", "💪",
|
||||||
|
"🖕", "✍️", "🙏", "🦶", "🦵", "👂", "🦻", "👃", "👶", "👧", "🧒", "👦", "👩",
|
||||||
|
"🧑", "👨", "👩🦱", "🧑🦱", "👨🦱", "👩🦰", "🧑🦰", "👨🦰", "👱♀️", "👱", "👱♂️", "👩🦳", "🧑🦳", "👨🦳",
|
||||||
|
"👩🦲", "🧑🦲", "👨🦲", "🧔", "👵", "🧓", "👴", "👲", "👳♀️", "👳", "👳♂️", "🧕", "👮♀️", "👮", "👮♂️", "👷♀️",
|
||||||
|
"👷", "👷♂️", "💂♀️", "💂", "💂♂️", "🕵️♀️", "🕵️", "🕵️♂️", "👩⚕️", "🧑⚕️", "👨⚕️", "👩🌾", "🧑🌾", "👨🌾", "👩🍳", "🧑🍳",
|
||||||
|
"👨🍳", "👩🎓", "🧑🎓", "👨🎓", "👩🎤", "🧑🎤", "👨🎤", "👩🏫", "🧑🏫", "👨🏫", "👩🏭", "🧑🏭", "👨🏭", "👩💻", "🧑💻", "👨💻",
|
||||||
|
"👩💼", "🧑💼", "👨💼", "👩🔧", "🧑🔧", "👨🔧", "👩🔬", "🧑🔬", "👨🔬", "👩🎨", "🧑🎨", "👨🎨", "👩🚒", "🧑🚒", "👨🚒", "👩✈️",
|
||||||
|
"🧑✈️", "👨✈️", "👩🚀", "🧑🚀", "👨🚀", "👩⚖️", "🧑⚖️", "👨⚖️", "👰", "🤵", "👸", "🤴", "🦸♀️", "🦸", "🦸♂️", "🦹♀️",
|
||||||
|
"🦹", "🦹♂️", "🤶", "🎅", "🧙♀️", "🧙", "🧙♂️", "🧝♀️", "🧝", "🧝♂️", "🧛♀️", "🧛", "🧛♂️", "🧜♀️", "🧜",
|
||||||
|
"🧜♂️", "🧚♀️", "🧚", "🧚♂️", "👼", "🤰", "🤱", "🙇♀️", "🙇", "🙇♂️", "💁♀️", "💁", "💁♂️", "🙅♀️", "🙅", "🙅♂️",
|
||||||
|
"🙆♀️", "🙆", "🙆♂️", "🙋♀️", "🙋", "🙋♂️", "🧏♀️", "🧏", "🧏♂️", "🤦♀️", "🤦", "🤦♂️", "🤷♀️", "🤷", "🤷♂️", "🙎♀️",
|
||||||
|
"🙎", "🙎♂️", "🙍♀️", "🙍", "🙍♂️", "💇♀️", "💇", "💇♂️", "💆♀️", "💆", "💆♂️", "🧖♀️", "🧖", "🧖♂️", "💅", "🤳",
|
||||||
|
"💃", "🕺", "🕴", "👩🦽", "🧑🦽", "👨🦽", "👩🦼", "🧑🦼", "👨🦼", "🚶♀️", "🚶", "🚶♂️", "👩🦯", "🧑🦯", "👨🦯", "🧎♀️",
|
||||||
|
"🧎", "🧎♂️", "🏃♀️", "🏃", "🏃♂️", "🧍♀️", "🧍", "🧍♂️", "🏋️♀️", "🏋️", "🏋️♂️", "🤸♀️", "🤸", "🤸♂️", "⛹️♀️", "⛹️",
|
||||||
|
"⛹️♂️", "🤾♀️", "🤾", "🤾♂️", "🏌️♀️", "🏌️", "🏌️♂️", "🏇", "🧘♀️", "🧘", "🧘♂️", "🏄♀️", "🏄", "🏄♂️", "🏊♀️", "🏊",
|
||||||
|
"🏊♂️", "🤽♀️", "🤽", "🤽♂️", "🚣♀️", "🚣", "🚣♂️", "🧗♀️", "🧗", "🧗♂️", "🚵♀️", "🚵", "🚵♂️", "🚴♀️", "🚴", "🚴♂️",
|
||||||
|
"🤹♀️", "🤹", "🤹♂️", "🛀"
|
||||||
|
|
||||||
|
|
||||||
|
"👫", "👭", "👬",
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
"🗨", "💑", "💏", "👪"
|
||||||
Binary file not shown.
Binary file not shown.
BIN
fonts/DAVazirBold.ttf
Normal file
BIN
fonts/DAVazirBold.ttf
Normal file
Binary file not shown.
BIN
fonts/DAVazirMedium.ttf
Normal file
BIN
fonts/DAVazirMedium.ttf
Normal file
Binary file not shown.
BIN
fonts/DAVazirRegular.ttf
Normal file
BIN
fonts/DAVazirRegular.ttf
Normal file
Binary file not shown.
|
|
@ -6,6 +6,9 @@
|
||||||
<file>DAOpenSansBoldItalic.ttf</file>
|
<file>DAOpenSansBoldItalic.ttf</file>
|
||||||
<file>DAOpenSansSemibold.ttf</file>
|
<file>DAOpenSansSemibold.ttf</file>
|
||||||
<file>DAOpenSansSemiboldItalic.ttf</file>
|
<file>DAOpenSansSemiboldItalic.ttf</file>
|
||||||
|
<file>DAVazirRegular.ttf</file>
|
||||||
|
<file>DAVazirBold.ttf</file>
|
||||||
|
<file>DAVazirMedium.ttf</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
<qresource prefix="/fc">
|
<qresource prefix="/fc">
|
||||||
<file>fc-custom.conf</file>
|
<file>fc-custom.conf</file>
|
||||||
|
|
|
||||||
|
|
@ -31,12 +31,18 @@ constexpr auto kUniversalSize = 72;
|
||||||
constexpr auto kImagesPerRow = 32;
|
constexpr auto kImagesPerRow = 32;
|
||||||
constexpr auto kImageRowsPerSprite = 16;
|
constexpr auto kImageRowsPerSprite = 16;
|
||||||
|
|
||||||
constexpr auto kSetVersion = uint32(1);
|
constexpr auto kSetVersion = uint32(2);
|
||||||
constexpr auto kCacheVersion = uint32(4);
|
constexpr auto kCacheVersion = uint32(6);
|
||||||
constexpr auto kMaxId = uint32(1 << 8);
|
constexpr auto kMaxId = uint32(1 << 8);
|
||||||
|
|
||||||
constexpr auto kScaleForTouchBar = 150;
|
constexpr auto kScaleForTouchBar = 150;
|
||||||
|
|
||||||
|
enum class ConfigResult {
|
||||||
|
Invalid,
|
||||||
|
BadVersion,
|
||||||
|
Good,
|
||||||
|
};
|
||||||
|
|
||||||
// Right now we can't allow users of Ui::Emoji to create custom sizes.
|
// Right now we can't allow users of Ui::Emoji to create custom sizes.
|
||||||
// Any Instance::Instance() can invalidate Universal.id() and sprites.
|
// Any Instance::Instance() can invalidate Universal.id() and sprites.
|
||||||
// So all Instance::Instance() should happen before async generations.
|
// So all Instance::Instance() should happen before async generations.
|
||||||
|
|
@ -69,6 +75,7 @@ auto InstanceNormal = std::unique_ptr<Instance>();
|
||||||
auto InstanceLarge = std::unique_ptr<Instance>();
|
auto InstanceLarge = std::unique_ptr<Instance>();
|
||||||
auto Universal = std::shared_ptr<UniversalImages>();
|
auto Universal = std::shared_ptr<UniversalImages>();
|
||||||
auto CanClearUniversal = false;
|
auto CanClearUniversal = false;
|
||||||
|
auto WaitingToSwitchBackToId = 0;
|
||||||
auto Updates = rpl::event_stream<>();
|
auto Updates = rpl::event_stream<>();
|
||||||
|
|
||||||
#if defined Q_OS_MAC && !defined OS_MAC_OLD
|
#if defined Q_OS_MAC && !defined OS_MAC_OLD
|
||||||
|
|
@ -138,7 +145,17 @@ int ReadCurrentSetId() {
|
||||||
: 0;
|
: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ApplyUniversalImages(std::shared_ptr<UniversalImages> images) {
|
||||||
|
Universal = std::move(images);
|
||||||
|
CanClearUniversal = false;
|
||||||
|
MainEmojiMap.clear();
|
||||||
|
OtherEmojiMap.clear();
|
||||||
|
Updates.fire({});
|
||||||
|
}
|
||||||
|
|
||||||
void SwitchToSetPrepared(int id, std::shared_ptr<UniversalImages> images) {
|
void SwitchToSetPrepared(int id, std::shared_ptr<UniversalImages> images) {
|
||||||
|
WaitingToSwitchBackToId = 0;
|
||||||
|
|
||||||
auto setting = QFile(CurrentSettingPath());
|
auto setting = QFile(CurrentSettingPath());
|
||||||
if (!id) {
|
if (!id) {
|
||||||
setting.remove();
|
setting.remove();
|
||||||
|
|
@ -147,11 +164,34 @@ void SwitchToSetPrepared(int id, std::shared_ptr<UniversalImages> images) {
|
||||||
stream.setVersion(QDataStream::Qt_5_1);
|
stream.setVersion(QDataStream::Qt_5_1);
|
||||||
stream << qint32(id);
|
stream << qint32(id);
|
||||||
}
|
}
|
||||||
Universal = std::move(images);
|
ApplyUniversalImages(std::move(images));
|
||||||
CanClearUniversal = false;
|
}
|
||||||
MainEmojiMap.clear();
|
|
||||||
OtherEmojiMap.clear();
|
[[nodiscard]] ConfigResult ValidateConfig(int id) {
|
||||||
Updates.fire({});
|
Expects(IsValidSetId(id));
|
||||||
|
|
||||||
|
if (!id) {
|
||||||
|
return ConfigResult::Good;
|
||||||
|
}
|
||||||
|
constexpr auto kSizeLimit = 65536;
|
||||||
|
auto config = QFile(internal::SetDataPath(id) + "/config.json");
|
||||||
|
if (!config.open(QIODevice::ReadOnly) || config.size() > kSizeLimit) {
|
||||||
|
return ConfigResult::Invalid;
|
||||||
|
}
|
||||||
|
auto error = QJsonParseError{ 0, QJsonParseError::NoError };
|
||||||
|
const auto document = QJsonDocument::fromJson(
|
||||||
|
base::parse::stripComments(config.readAll()),
|
||||||
|
&error);
|
||||||
|
config.close();
|
||||||
|
if (error.error != QJsonParseError::NoError) {
|
||||||
|
return ConfigResult::Invalid;
|
||||||
|
}
|
||||||
|
if (document.object()["id"].toInt() != id) {
|
||||||
|
return ConfigResult::Invalid;
|
||||||
|
} else if (document.object()["version"].toInt() != kSetVersion) {
|
||||||
|
return ConfigResult::BadVersion;
|
||||||
|
}
|
||||||
|
return ConfigResult::Good;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClearCurrentSetIdSync() {
|
void ClearCurrentSetIdSync() {
|
||||||
|
|
@ -161,12 +201,14 @@ void ClearCurrentSetIdSync() {
|
||||||
if (!id) {
|
if (!id) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
QDir(internal::SetDataPath(id)).removeRecursively();
|
|
||||||
|
|
||||||
const auto newId = 0;
|
const auto newId = 0;
|
||||||
auto universal = std::make_shared<UniversalImages>(newId);
|
auto universal = std::make_shared<UniversalImages>(newId);
|
||||||
universal->ensureLoaded();
|
universal->ensureLoaded();
|
||||||
SwitchToSetPrepared(newId, std::move(universal));
|
|
||||||
|
// Start loading the set when possible.
|
||||||
|
ApplyUniversalImages(std::move(universal));
|
||||||
|
WaitingToSwitchBackToId = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SaveToFile(int id, const QImage &image, int size, int index) {
|
void SaveToFile(int id, const QImage &image, int size, int index) {
|
||||||
|
|
@ -288,37 +330,12 @@ std::vector<QImage> LoadSprites(int id) {
|
||||||
}) | ranges::to_vector;
|
}) | ranges::to_vector;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ValidateConfig(int id) {
|
|
||||||
Expects(IsValidSetId(id));
|
|
||||||
|
|
||||||
if (!id) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
constexpr auto kSizeLimit = 65536;
|
|
||||||
auto config = QFile(internal::SetDataPath(id) + "/config.json");
|
|
||||||
if (!config.open(QIODevice::ReadOnly) || config.size() > kSizeLimit) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
auto error = QJsonParseError{ 0, QJsonParseError::NoError };
|
|
||||||
const auto document = QJsonDocument::fromJson(
|
|
||||||
base::parse::stripComments(config.readAll()),
|
|
||||||
&error);
|
|
||||||
config.close();
|
|
||||||
if (error.error != QJsonParseError::NoError) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (document.object()["id"].toInt() != id
|
|
||||||
|| document.object()["version"].toInt() != kSetVersion) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::vector<QImage> LoadAndValidateSprites(int id) {
|
std::vector<QImage> LoadAndValidateSprites(int id) {
|
||||||
Expects(IsValidSetId(id));
|
Expects(IsValidSetId(id));
|
||||||
Expects(SpritesCount > 0);
|
Expects(SpritesCount > 0);
|
||||||
|
|
||||||
if (!ValidateConfig(id)) {
|
const auto config = ValidateConfig(id);
|
||||||
|
if (config != ConfigResult::Good) {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
auto result = LoadSprites(id);
|
auto result = LoadSprites(id);
|
||||||
|
|
@ -526,6 +543,18 @@ int CurrentSetId() {
|
||||||
return Universal->id();
|
return Universal->id();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int NeedToSwitchBackToId() {
|
||||||
|
return WaitingToSwitchBackToId;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ClearNeedSwitchToId() {
|
||||||
|
if (!WaitingToSwitchBackToId) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
WaitingToSwitchBackToId = 0;
|
||||||
|
QFile(CurrentSettingPath()).remove();
|
||||||
|
}
|
||||||
|
|
||||||
void SwitchToSet(int id, Fn<void(bool)> callback) {
|
void SwitchToSet(int id, Fn<void(bool)> callback) {
|
||||||
Expects(IsValidSetId(id));
|
Expects(IsValidSetId(id));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -32,14 +32,16 @@ void ClearIrrelevantCache();
|
||||||
// Thread safe, callback is called on main thread.
|
// Thread safe, callback is called on main thread.
|
||||||
void SwitchToSet(int id, Fn<void(bool)> callback);
|
void SwitchToSet(int id, Fn<void(bool)> callback);
|
||||||
|
|
||||||
int CurrentSetId();
|
[[nodiscard]] int CurrentSetId();
|
||||||
bool SetIsReady(int id);
|
[[nodiscard]] int NeedToSwitchBackToId();
|
||||||
rpl::producer<> Updated();
|
void ClearNeedSwitchToId();
|
||||||
|
[[nodiscard]] bool SetIsReady(int id);
|
||||||
|
[[nodiscard]] rpl::producer<> Updated();
|
||||||
|
|
||||||
int GetSizeNormal();
|
[[nodiscard]] int GetSizeNormal();
|
||||||
int GetSizeLarge();
|
[[nodiscard]] int GetSizeLarge();
|
||||||
#if defined Q_OS_MAC && !defined OS_MAC_OLD
|
#if defined Q_OS_MAC && !defined OS_MAC_OLD
|
||||||
int GetSizeTouchbar();
|
[[nodiscard]] int GetSizeTouchbar();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
class One {
|
class One {
|
||||||
|
|
@ -113,7 +115,7 @@ private:
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
inline EmojiPtr FromUrl(const QString &url) {
|
[[nodiscard]] inline EmojiPtr FromUrl(const QString &url) {
|
||||||
auto start = qstr("emoji://e.");
|
auto start = qstr("emoji://e.");
|
||||||
if (url.startsWith(start)) {
|
if (url.startsWith(start)) {
|
||||||
return internal::ByIndex(url.midRef(start.size()).toInt()); // skip emoji://e.
|
return internal::ByIndex(url.midRef(start.size()).toInt()); // skip emoji://e.
|
||||||
|
|
@ -121,21 +123,21 @@ inline EmojiPtr FromUrl(const QString &url) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline EmojiPtr Find(const QChar *start, const QChar *end, int *outLength = nullptr) {
|
[[nodiscard]] inline EmojiPtr Find(const QChar *start, const QChar *end, int *outLength = nullptr) {
|
||||||
return internal::Find(start, end, outLength);
|
return internal::Find(start, end, outLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline EmojiPtr Find(const QString &text, int *outLength = nullptr) {
|
[[nodiscard]] inline EmojiPtr Find(const QString &text, int *outLength = nullptr) {
|
||||||
return Find(text.constBegin(), text.constEnd(), outLength);
|
return Find(text.constBegin(), text.constEnd(), outLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString IdFromOldKey(uint64 oldKey);
|
[[nodiscard]] QString IdFromOldKey(uint64 oldKey);
|
||||||
|
|
||||||
inline EmojiPtr FromOldKey(uint64 oldKey) {
|
[[nodiscard]] inline EmojiPtr FromOldKey(uint64 oldKey) {
|
||||||
return Find(IdFromOldKey(oldKey));
|
return Find(IdFromOldKey(oldKey));
|
||||||
}
|
}
|
||||||
|
|
||||||
inline int ColorIndexFromCode(uint32 code) {
|
[[nodiscard]] inline int ColorIndexFromCode(uint32 code) {
|
||||||
switch (code) {
|
switch (code) {
|
||||||
case 0xD83CDFFBU: return 1;
|
case 0xD83CDFFBU: return 1;
|
||||||
case 0xD83CDFFCU: return 2;
|
case 0xD83CDFFCU: return 2;
|
||||||
|
|
@ -146,7 +148,7 @@ inline int ColorIndexFromCode(uint32 code) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline int ColorIndexFromOldKey(uint64 oldKey) {
|
[[nodiscard]] inline int ColorIndexFromOldKey(uint64 oldKey) {
|
||||||
return ColorIndexFromCode(uint32(oldKey & 0xFFFFFFFFLLU));
|
return ColorIndexFromCode(uint32(oldKey & 0xFFFFFFFFLLU));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -175,7 +177,7 @@ private:
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const std::shared_ptr<UniversalImages> &SourceImages();
|
[[nodiscard]] const std::shared_ptr<UniversalImages> &SourceImages();
|
||||||
void ClearSourceImages(const std::shared_ptr<UniversalImages> &images);
|
void ClearSourceImages(const std::shared_ptr<UniversalImages> &images);
|
||||||
|
|
||||||
} // namespace Emoji
|
} // namespace Emoji
|
||||||
|
|
|
||||||
|
|
@ -203,6 +203,14 @@ QString FontTypeNames[FontTypesCount] = {
|
||||||
"DAOpenSansSemibold",
|
"DAOpenSansSemibold",
|
||||||
"DAOpenSansSemiboldItalic",
|
"DAOpenSansSemiboldItalic",
|
||||||
};
|
};
|
||||||
|
QString FontTypePersianFallback[FontTypesCount] = {
|
||||||
|
"DAVazirRegular",
|
||||||
|
"DAVazirRegular",
|
||||||
|
"DAVazirBold",
|
||||||
|
"DAVazirBold",
|
||||||
|
"DAVazirMedium",
|
||||||
|
"DAVazirMedium",
|
||||||
|
};
|
||||||
#endif // !DESKTOP_APP_USE_PACKAGED_FONTS
|
#endif // !DESKTOP_APP_USE_PACKAGED_FONTS
|
||||||
int32 FontTypeFlags[FontTypesCount] = {
|
int32 FontTypeFlags[FontTypesCount] = {
|
||||||
0,
|
0,
|
||||||
|
|
@ -218,8 +226,8 @@ QString FontTypeWindowsFallback[FontTypesCount] = {
|
||||||
"Segoe UI",
|
"Segoe UI",
|
||||||
"Segoe UI",
|
"Segoe UI",
|
||||||
"Segoe UI",
|
"Segoe UI",
|
||||||
"Segoe UI Semibold",
|
"Segoe UI",
|
||||||
"Segoe UI Semibold",
|
"Segoe UI",
|
||||||
};
|
};
|
||||||
#endif // Q_OS_WIN
|
#endif // Q_OS_WIN
|
||||||
|
|
||||||
|
|
@ -250,12 +258,17 @@ void StartFonts() {
|
||||||
|
|
||||||
#ifndef DESKTOP_APP_USE_PACKAGED_FONTS
|
#ifndef DESKTOP_APP_USE_PACKAGED_FONTS
|
||||||
if (!UseSystemFont) {
|
if (!UseSystemFont) {
|
||||||
|
LoadCustomFont(":/gui/fonts/DAVazirRegular.ttf", "DAVazirRegular");
|
||||||
|
LoadCustomFont(":/gui/fonts/DAVazirBold.ttf", "DAVazirBold", style::internal::FontBold);
|
||||||
|
LoadCustomFont(":/gui/fonts/DAVazirMedium.ttf", "DAVazirMedium", style::internal::FontSemibold);
|
||||||
|
|
||||||
bool areGood[FontTypesCount] = { false };
|
bool areGood[FontTypesCount] = { false };
|
||||||
for (auto i = 0; i != FontTypesCount; ++i) {
|
for (auto i = 0; i != FontTypesCount; ++i) {
|
||||||
const auto name = FontTypeNames[i];
|
const auto name = FontTypeNames[i];
|
||||||
const auto flags = FontTypeFlags[i];
|
const auto flags = FontTypeFlags[i];
|
||||||
areGood[i] = LoadCustomFont(":/gui/fonts/" + name + ".ttf", name, flags);
|
areGood[i] = LoadCustomFont(":/gui/fonts/" + name + ".ttf", name, flags);
|
||||||
Overrides[i] = name;
|
Overrides[i] = name;
|
||||||
|
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
// Attempt to workaround a strange font bug with Open Sans Semibold not loading.
|
// Attempt to workaround a strange font bug with Open Sans Semibold not loading.
|
||||||
// See https://github.com/telegramdesktop/tdesktop/issues/3276 for details.
|
// See https://github.com/telegramdesktop/tdesktop/issues/3276 for details.
|
||||||
|
|
@ -273,6 +286,11 @@ void StartFonts() {
|
||||||
//
|
//
|
||||||
//QFont::insertSubstitution(name, fallback);
|
//QFont::insertSubstitution(name, fallback);
|
||||||
#endif // Q_OS_WIN
|
#endif // Q_OS_WIN
|
||||||
|
|
||||||
|
#if defined Q_OS_WIN || defined Q_OS_LINUX
|
||||||
|
const auto persianFallback = FontTypePersianFallback[i];
|
||||||
|
QFont::insertSubstitution(name, persianFallback);
|
||||||
|
#endif // Q_OS_WIN || Q_OS_LINUX
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef Q_OS_MAC
|
#ifdef Q_OS_MAC
|
||||||
|
|
@ -329,12 +347,8 @@ QString GetPossibleEmptyOverride(int32 flags) {
|
||||||
}
|
}
|
||||||
|
|
||||||
QString GetFontOverride(int32 flags) {
|
QString GetFontOverride(int32 flags) {
|
||||||
const auto familyName = (flags & FontSemibold)
|
|
||||||
? "Open Sans Semibold"
|
|
||||||
: "Open Sans";
|
|
||||||
|
|
||||||
const auto result = GetPossibleEmptyOverride(flags);
|
const auto result = GetPossibleEmptyOverride(flags);
|
||||||
return result.isEmpty() ? familyName : result;
|
return result.isEmpty() ? "Open Sans" : result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void destroyFonts() {
|
void destroyFonts() {
|
||||||
|
|
@ -384,12 +398,8 @@ FontData::FontData(int size, uint32 flags, int family, Font *other)
|
||||||
if (_flags & FontSemibold) {
|
if (_flags & FontSemibold) {
|
||||||
if (CustomSemiboldIsBold || fontOverride.startsWith("DAOpenSansSemibold")) {
|
if (CustomSemiboldIsBold || fontOverride.startsWith("DAOpenSansSemibold")) {
|
||||||
f.setBold(true);
|
f.setBold(true);
|
||||||
#ifdef DESKTOP_APP_USE_PACKAGED_FONTS
|
|
||||||
} else {
|
} else {
|
||||||
#else // DESKTOP_APP_USE_PACKAGED_FONTS
|
f.setStyleName("Semibold");
|
||||||
} else if (UseSystemFont && overrideIsEmpty) {
|
|
||||||
#endif // !DESKTOP_APP_USE_PACKAGED_FONTS
|
|
||||||
f.setWeight(QFont::DemiBold);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -83,6 +83,7 @@ TextWithEntities PrepareRichFromRich(
|
||||||
(type == EntityType::Cashtag && !parseHashtags) ||
|
(type == EntityType::Cashtag && !parseHashtags) ||
|
||||||
(type == EntityType::BotCommand && !parseBotCommands) || // #TODO entities
|
(type == EntityType::BotCommand && !parseBotCommands) || // #TODO entities
|
||||||
(!parseMarkdown && (type == EntityType::Bold
|
(!parseMarkdown && (type == EntityType::Bold
|
||||||
|
|| type == EntityType::Semibold
|
||||||
|| type == EntityType::Italic
|
|| type == EntityType::Italic
|
||||||
|| type == EntityType::Underline
|
|| type == EntityType::Underline
|
||||||
|| type == EntityType::StrikeOut
|
|| type == EntityType::StrikeOut
|
||||||
|
|
@ -541,6 +542,8 @@ bool Parser::checkEntities() {
|
||||||
const auto entityBegin = _start + _waitingEntity->offset();
|
const auto entityBegin = _start + _waitingEntity->offset();
|
||||||
const auto entityEnd = entityBegin + entityLength;
|
const auto entityEnd = entityBegin + entityLength;
|
||||||
if (entityType == EntityType::Bold) {
|
if (entityType == EntityType::Bold) {
|
||||||
|
flags = TextBlockFBold;
|
||||||
|
} else if (entityType == EntityType::Semibold) {
|
||||||
flags = TextBlockFSemibold;
|
flags = TextBlockFSemibold;
|
||||||
} else if (entityType == EntityType::Italic) {
|
} else if (entityType == EntityType::Italic) {
|
||||||
flags = TextBlockFItalic;
|
flags = TextBlockFItalic;
|
||||||
|
|
@ -3243,7 +3246,8 @@ TextForMimeData String::toText(
|
||||||
auto markdownTrackers = composeEntities
|
auto markdownTrackers = composeEntities
|
||||||
? std::vector<MarkdownTagTracker>{
|
? std::vector<MarkdownTagTracker>{
|
||||||
{ TextBlockFItalic, EntityType::Italic },
|
{ TextBlockFItalic, EntityType::Italic },
|
||||||
{ TextBlockFSemibold, EntityType::Bold },
|
{ TextBlockFBold, EntityType::Bold },
|
||||||
|
{ TextBlockFSemibold, EntityType::Semibold },
|
||||||
{ TextBlockFUnderline, EntityType::Underline },
|
{ TextBlockFUnderline, EntityType::Underline },
|
||||||
{ TextBlockFStrikeOut, EntityType::StrikeOut },
|
{ TextBlockFStrikeOut, EntityType::StrikeOut },
|
||||||
{ TextBlockFCode, EntityType::Code }, // #TODO entities
|
{ TextBlockFCode, EntityType::Code }, // #TODO entities
|
||||||
|
|
|
||||||
|
|
@ -2011,6 +2011,8 @@ EntitiesInText ConvertTextTagsToEntities(const TextWithTags::Tags &tags) {
|
||||||
}
|
}
|
||||||
} else if (tag.id == Ui::InputField::kTagBold) {
|
} else if (tag.id == Ui::InputField::kTagBold) {
|
||||||
push(EntityType::Bold);
|
push(EntityType::Bold);
|
||||||
|
//} else if (tag.id == Ui::InputField::kTagSemibold) {
|
||||||
|
// push(EntityType::Semibold); // Semibold is for UI parts only.
|
||||||
} else if (tag.id == Ui::InputField::kTagItalic) {
|
} else if (tag.id == Ui::InputField::kTagItalic) {
|
||||||
push(EntityType::Italic);
|
push(EntityType::Italic);
|
||||||
} else if (tag.id == Ui::InputField::kTagUnderline) {
|
} else if (tag.id == Ui::InputField::kTagUnderline) {
|
||||||
|
|
@ -2054,6 +2056,9 @@ TextWithTags::Tags ConvertEntitiesToTextTags(const EntitiesInText &entities) {
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
case EntityType::Bold: push(Ui::InputField::kTagBold); break;
|
case EntityType::Bold: push(Ui::InputField::kTagBold); break;
|
||||||
|
//case EntityType::Semibold: // Semibold is for UI parts only.
|
||||||
|
// push(Ui::InputField::kTagSemibold);
|
||||||
|
// break;
|
||||||
case EntityType::Italic: push(Ui::InputField::kTagItalic); break;
|
case EntityType::Italic: push(Ui::InputField::kTagItalic); break;
|
||||||
case EntityType::Underline:
|
case EntityType::Underline:
|
||||||
push(Ui::InputField::kTagUnderline);
|
push(Ui::InputField::kTagUnderline);
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ enum class EntityType {
|
||||||
BotCommand,
|
BotCommand,
|
||||||
|
|
||||||
Bold,
|
Bold,
|
||||||
|
Semibold,
|
||||||
Italic,
|
Italic,
|
||||||
Underline,
|
Underline,
|
||||||
StrikeOut,
|
StrikeOut,
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,10 @@ TextWithEntities Bold(const QString &text) {
|
||||||
return WithSingleEntity(text, EntityType::Bold);
|
return WithSingleEntity(text, EntityType::Bold);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TextWithEntities Semibold(const QString &text) {
|
||||||
|
return WithSingleEntity(text, EntityType::Semibold);
|
||||||
|
}
|
||||||
|
|
||||||
TextWithEntities Italic(const QString &text) {
|
TextWithEntities Italic(const QString &text) {
|
||||||
return WithSingleEntity(text, EntityType::Italic);
|
return WithSingleEntity(text, EntityType::Italic);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,39 +24,44 @@ struct ToUpperType {
|
||||||
} // namespace details
|
} // namespace details
|
||||||
|
|
||||||
inline constexpr auto Upper = details::ToUpperType{};
|
inline constexpr auto Upper = details::ToUpperType{};
|
||||||
TextWithEntities Bold(const QString &text);
|
[[nodiscard]] TextWithEntities Bold(const QString &text);
|
||||||
TextWithEntities Italic(const QString &text);
|
[[nodiscard]] TextWithEntities Semibold(const QString &text);
|
||||||
TextWithEntities Link(
|
[[nodiscard]] TextWithEntities Italic(const QString &text);
|
||||||
|
[[nodiscard]] TextWithEntities Link(
|
||||||
const QString &text,
|
const QString &text,
|
||||||
const QString &url = "internal:action");
|
const QString &url = "internal:action");
|
||||||
TextWithEntities RichLangValue(const QString &text);
|
[[nodiscard]] TextWithEntities RichLangValue(const QString &text);
|
||||||
inline TextWithEntities WithEntities(const QString &text) {
|
[[nodiscard]] inline TextWithEntities WithEntities(const QString &text) {
|
||||||
return { text };
|
return { text };
|
||||||
}
|
}
|
||||||
|
|
||||||
inline auto ToUpper() {
|
[[nodiscard]] inline auto ToUpper() {
|
||||||
return rpl::map(Upper);
|
return rpl::map(Upper);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline auto ToBold() {
|
[[nodiscard]] inline auto ToBold() {
|
||||||
return rpl::map(Bold);
|
return rpl::map(Bold);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline auto ToItalic() {
|
[[nodiscard]] inline auto ToSemibold() {
|
||||||
|
return rpl::map(Semibold);
|
||||||
|
}
|
||||||
|
|
||||||
|
[[nodiscard]] inline auto ToItalic() {
|
||||||
return rpl::map(Italic);
|
return rpl::map(Italic);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline auto ToLink(const QString &url = "internal:action") {
|
[[nodiscard]] inline auto ToLink(const QString &url = "internal:action") {
|
||||||
return rpl::map([=](const QString &text) {
|
return rpl::map([=](const QString &text) {
|
||||||
return Link(text, url);
|
return Link(text, url);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
inline auto ToRichLangValue() {
|
[[nodiscard]] inline auto ToRichLangValue() {
|
||||||
return rpl::map(RichLangValue);
|
return rpl::map(RichLangValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline auto ToWithEntities() {
|
[[nodiscard]] inline auto ToWithEntities() {
|
||||||
return rpl::map(WithEntities);
|
return rpl::map(WithEntities);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -667,7 +667,7 @@ QTextCharFormat PrepareTagFormat(
|
||||||
result.setFont(st.font);
|
result.setFont(st.font);
|
||||||
} else if (tag == kTagBold) {
|
} else if (tag == kTagBold) {
|
||||||
result.setForeground(st.textFg);
|
result.setForeground(st.textFg);
|
||||||
result.setFont(st.font->semibold());
|
result.setFont(st.font->bold());
|
||||||
} else if (tag == kTagItalic) {
|
} else if (tag == kTagItalic) {
|
||||||
result.setForeground(st.textFg);
|
result.setForeground(st.textFg);
|
||||||
result.setFont(st.font->italic());
|
result.setFont(st.font->italic());
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue