Commit 8a2b4545 authored by Igor Drozdov's avatar Igor Drozdov

Merge branch 'ph/15744/reorderEmojiMenu' into 'master'

Updates the gemojione ruby gem

See merge request gitlab-org/gitlab!55068
parents 55250a64 b7f5dd5b
...@@ -293,7 +293,7 @@ gem 'autoprefixer-rails', '10.2.0.0' ...@@ -293,7 +293,7 @@ gem 'autoprefixer-rails', '10.2.0.0'
gem 'terser', '1.0.2' gem 'terser', '1.0.2'
gem 'addressable', '~> 2.7' gem 'addressable', '~> 2.7'
gem 'gemojione', '~> 3.3' gem 'gemojione', '~> 4.3.3'
gem 'gon', '~> 6.2' gem 'gon', '~> 6.2'
gem 'request_store', '~> 1.5' gem 'request_store', '~> 1.5'
gem 'base32', '~> 0.3.0' gem 'base32', '~> 0.3.0'
......
...@@ -412,7 +412,7 @@ GEM ...@@ -412,7 +412,7 @@ GEM
ruby-progressbar (~> 1.4) ruby-progressbar (~> 1.4)
fuzzyurl (0.9.0) fuzzyurl (0.9.0)
gemoji (3.0.1) gemoji (3.0.1)
gemojione (3.3.0) gemojione (4.3.3)
json json
get_process_mem (0.2.5) get_process_mem (0.2.5)
ffi (~> 1.0) ffi (~> 1.0)
...@@ -1414,7 +1414,7 @@ DEPENDENCIES ...@@ -1414,7 +1414,7 @@ DEPENDENCIES
fog-rackspace (~> 0.1.1) fog-rackspace (~> 0.1.1)
fugit (~> 1.2.1) fugit (~> 1.2.1)
fuubar (~> 2.2.0) fuubar (~> 2.2.0)
gemojione (~> 3.3) gemojione (~> 4.3.3)
gettext (~> 3.3) gettext (~> 3.3)
gettext_i18n_rails (~> 1.8.0) gettext_i18n_rails (~> 1.8.0)
gettext_i18n_rails_js (~> 1.3) gettext_i18n_rails_js (~> 1.3)
......
app/assets/images/emoji.png

1.16 MB | W: | H:

app/assets/images/emoji.png

2 MB | W: | H:

app/assets/images/emoji.png
app/assets/images/emoji.png
app/assets/images/emoji.png
app/assets/images/emoji.png
  • 2-up
  • Swipe
  • Onion skin
app/assets/images/emoji@2x.png

2.84 MB | W: | H:

app/assets/images/emoji@2x.png

5.37 MB | W: | H:

app/assets/images/emoji@2x.png
app/assets/images/emoji@2x.png
app/assets/images/emoji@2x.png
app/assets/images/emoji@2x.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -3,10 +3,10 @@ export const FREQUENTLY_USED_COOKIE_KEY = 'frequently_used_emojis'; ...@@ -3,10 +3,10 @@ export const FREQUENTLY_USED_COOKIE_KEY = 'frequently_used_emojis';
export const CATEGORY_ICON_MAP = { export const CATEGORY_ICON_MAP = {
[FREQUENTLY_USED_KEY]: 'history', [FREQUENTLY_USED_KEY]: 'history',
activity: 'dumbbell',
people: 'smiley', people: 'smiley',
nature: 'nature', nature: 'nature',
food: 'food', food: 'food',
activity: 'dumbbell',
travel: 'car', travel: 'car',
objects: 'object', objects: 'object',
symbols: 'heart', symbols: 'heart',
......
...@@ -8,7 +8,7 @@ let emojiMap = null; ...@@ -8,7 +8,7 @@ let emojiMap = null;
let validEmojiNames = null; let validEmojiNames = null;
export const FALLBACK_EMOJI_KEY = 'grey_question'; export const FALLBACK_EMOJI_KEY = 'grey_question';
export const EMOJI_VERSION = '1'; export const EMOJI_VERSION = '2';
const isLocalStorageAvailable = AccessorUtilities.isLocalStorageAccessSafe(); const isLocalStorageAvailable = AccessorUtilities.isLocalStorageAccessSafe();
......
import AccessorUtilities from '../../lib/utils/accessor'; import AccessorUtilities from '../../lib/utils/accessor';
const GL_EMOJI_VERSION = '0.2.0'; const GL_EMOJI_VERSION = '0.3.0';
const unicodeSupportTestMap = { const unicodeSupportTestMap = {
// man, student (emojione does not have any of these yet), http://emojipedia.org/emoji-zwj-sequences/ // man, student (emojione does not have any of these yet), http://emojipedia.org/emoji-zwj-sequences/
...@@ -25,6 +25,8 @@ const unicodeSupportTestMap = { ...@@ -25,6 +25,8 @@ const unicodeSupportTestMap = {
// angel_tone5 // angel_tone5
'\u{1F47C}\u{1F3FF}', '\u{1F47C}\u{1F3FF}',
], ],
// star_struck, http://emojipedia.org/unicode-9.0/
'10.0': '\u{1F929}',
// rofl, http://emojipedia.org/unicode-9.0/ // rofl, http://emojipedia.org/unicode-9.0/
'9.0': '\u{1F923}', '9.0': '\u{1F923}',
// metal, http://emojipedia.org/unicode-8.0/ // metal, http://emojipedia.org/unicode-8.0/
......
This source diff could not be displayed because it is too large. You can view the blob instead.
{ {
"basketball_player":"man_bouncing_ball",
"basketball_player_tone1":"man_bouncing_ball_tone1",
"basketball_player_tone2":"man_bouncing_ball_tone2",
"basketball_player_tone3":"man_bouncing_ball_tone3",
"basketball_player_tone4":"man_bouncing_ball_tone4",
"basketball_player_tone5":"man_bouncing_ball_tone5",
"flight_arrival":"airplane_arriving",
"flight_departure":"airplane_departure",
"small_airplane":"airplane_small", "small_airplane":"airplane_small",
"right_anger_bubble":"anger_right", "right_anger_bubble":"anger_right",
"keycap_asterisk":"asterisk", "keycap_asterisk":"asterisk",
...@@ -12,17 +20,22 @@ ...@@ -12,17 +20,22 @@
"person_with_ball_tone5":"basketball_player_tone5", "person_with_ball_tone5":"basketball_player_tone5",
"beach_with_umbrella":"beach", "beach_with_umbrella":"beach",
"umbrella_on_ground":"beach_umbrella", "umbrella_on_ground":"beach_umbrella",
"parasol_on_ground":"beach_umbrella",
"bellhop_bell":"bellhop", "bellhop_bell":"bellhop",
"biking_man":"bicyclist",
"biohazard_sign":"biohazard", "biohazard_sign":"biohazard",
"bowing_man":"bow",
"archery":"bow_and_arrow", "archery":"bow_and_arrow",
"boxing_gloves":"boxing_glove", "boxing_gloves":"boxing_glove",
"spiral_calendar_pad":"calendar_spiral", "spiral_calendar_pad":"calendar_spiral",
"spiral_calendar":"calendar_spiral",
"call_me_hand":"call_me", "call_me_hand":"call_me",
"call_me_hand_tone1":"call_me_tone1", "call_me_hand_tone1":"call_me_tone1",
"call_me_hand_tone2":"call_me_tone2", "call_me_hand_tone2":"call_me_tone2",
"call_me_hand_tone3":"call_me_tone3", "call_me_hand_tone3":"call_me_tone3",
"call_me_hand_tone4":"call_me_tone4", "call_me_hand_tone4":"call_me_tone4",
"call_me_hand_tone5":"call_me_tone5", "call_me_hand_tone5":"call_me_tone5",
"camera_flash":"camera_with_flash",
"kayak":"canoe", "kayak":"canoe",
"card_file_box":"card_box", "card_file_box":"card_box",
"person_doing_cartwheel":"cartwheel", "person_doing_cartwheel":"cartwheel",
...@@ -33,24 +46,36 @@ ...@@ -33,24 +46,36 @@
"person_doing_cartwheel_tone5":"cartwheel_tone5", "person_doing_cartwheel_tone5":"cartwheel_tone5",
"bottle_with_popping_cork":"champagne", "bottle_with_popping_cork":"champagne",
"clinking_glass":"champagne_glass", "clinking_glass":"champagne_glass",
"clinking_glasses":"champagne_glass",
"cheese_wedge":"cheese", "cheese_wedge":"cheese",
"city_sunrise":"city_sunset", "city_sunrise":"city_sunset",
"mantlepiece_clock":"clock", "mantlepiece_clock":"clock",
"mantelpiece_clock":"clock",
"cloud_with_lightning":"cloud_lightning", "cloud_with_lightning":"cloud_lightning",
"cloud_with_rain":"cloud_rain", "cloud_with_rain":"cloud_rain",
"cloud_with_snow":"cloud_snow", "cloud_with_snow":"cloud_snow",
"cloud_with_tornado":"cloud_tornado", "cloud_with_tornado":"cloud_tornado",
"tornado":"cloud_tornado",
"clown_face":"clown", "clown_face":"clown",
"clamp":"compression",
"building_construction":"construction_site", "building_construction":"construction_site",
"construction_worker_man":"construction_worker",
"fried_egg":"cooking",
"policeman":"cop",
"couch_and_lamp":"couch", "couch_and_lamp":"couch",
"couple_with_heart_mm":"couple_mm", "couple_with_heart_mm":"couple_mm",
"couple_with_heart_man_man":"couple_mm",
"couple_with_heart_woman_man":"couple_with_heart",
"couple_with_heart_ww":"couple_ww", "couple_with_heart_ww":"couple_ww",
"couple_with_heart_woman_woman":"couple_ww",
"couplekiss_man_woman":"couplekiss",
"face_with_cowboy_hat":"cowboy", "face_with_cowboy_hat":"cowboy",
"cowboy_hat_face":"cowboy",
"lower_left_crayon":"crayon", "lower_left_crayon":"crayon",
"cricket_bat_ball":"cricket",
"latin_cross":"cross", "latin_cross":"cross",
"passenger_ship":"cruise_ship", "passenger_ship":"cruise_ship",
"dagger_knife":"dagger", "dagger_knife":"dagger",
"dancing_women":"dancers",
"desktop_computer":"desktop", "desktop_computer":"desktop",
"card_index_dividers":"dividers", "card_index_dividers":"dividers",
"dove_of_peace":"dove", "dove_of_peace":"dove",
...@@ -58,14 +83,33 @@ ...@@ -58,14 +83,33 @@
"drum_with_drumsticks":"drum", "drum_with_drumsticks":"drum",
"email":"e-mail", "email":"e-mail",
"eject_symbol":"eject", "eject_symbol":"eject",
"eye_speech_bubble":"eye_in_speech_bubble",
"facepalm":"face_palm", "facepalm":"face_palm",
"facepalm_tone1":"face_palm_tone1", "facepalm_tone1":"face_palm_tone1",
"facepalm_tone2":"face_palm_tone2", "facepalm_tone2":"face_palm_tone2",
"facepalm_tone3":"face_palm_tone3", "facepalm_tone3":"face_palm_tone3",
"facepalm_tone4":"face_palm_tone4", "facepalm_tone4":"face_palm_tone4",
"facepalm_tone5":"face_palm_tone5", "facepalm_tone5":"face_palm_tone5",
"family_man_woman_boy":"family",
"family_man_man_boy":"family_mmb",
"family_man_man_boy_boy":"family_mmbb",
"family_man_man_girl":"family_mmg",
"family_man_man_girl_boy":"family_mmgb",
"family_man_man_girl_girl":"family_mmgg",
"family_man_woman_boy_boy":"family_mwbb",
"family_man_woman_girl":"family_mwg",
"family_man_woman_girl_boy":"family_mwgb",
"family_man_woman_girl_girl":"family_mwgg",
"family_woman_woman_boy":"family_wwb",
"family_woman_woman_boy_boy":"family_wwbb",
"family_woman_woman_girl":"family_wwg",
"family_woman_woman_girl_boy":"family_wwgb",
"family_woman_woman_girl_girl":"family_wwgg",
"fencing":"fencer", "fencing":"fencer",
"person_fencing":"fencer",
"film_strip":"film_frames",
"hand_with_index_and_middle_finger_crossed":"fingers_crossed", "hand_with_index_and_middle_finger_crossed":"fingers_crossed",
"crossed_fingers":"fingers_crossed",
"hand_with_index_and_middle_fingers_crossed_tone1":"fingers_crossed_tone1", "hand_with_index_and_middle_fingers_crossed_tone1":"fingers_crossed_tone1",
"hand_with_index_and_middle_fingers_crossed_tone2":"fingers_crossed_tone2", "hand_with_index_and_middle_fingers_crossed_tone2":"fingers_crossed_tone2",
"hand_with_index_and_middle_fingers_crossed_tone3":"fingers_crossed_tone3", "hand_with_index_and_middle_fingers_crossed_tone3":"fingers_crossed_tone3",
...@@ -73,274 +117,528 @@ ...@@ -73,274 +117,528 @@
"hand_with_index_and_middle_fingers_crossed_tone5":"fingers_crossed_tone5", "hand_with_index_and_middle_fingers_crossed_tone5":"fingers_crossed_tone5",
"flame":"fire", "flame":"fire",
"first_place_medal":"first_place", "first_place_medal":"first_place",
"1st_place_medal":"first_place",
"fist_raised":"fist",
"ac":"flag_ac", "ac":"flag_ac",
"ascension":"flag_ac",
"ad":"flag_ad", "ad":"flag_ad",
"andorra":"flag_ad",
"ae":"flag_ae", "ae":"flag_ae",
"united_arab_emirates":"flag_ae",
"af":"flag_af", "af":"flag_af",
"afghanistan":"flag_af",
"ag":"flag_ag", "ag":"flag_ag",
"antigua_barbuda":"flag_ag",
"ai":"flag_ai", "ai":"flag_ai",
"anguilla":"flag_ai",
"al":"flag_al", "al":"flag_al",
"albania":"flag_al",
"am":"flag_am", "am":"flag_am",
"armenia":"flag_am",
"ao":"flag_ao", "ao":"flag_ao",
"angola":"flag_ao",
"aq":"flag_aq", "aq":"flag_aq",
"antarctica":"flag_aq",
"ar":"flag_ar", "ar":"flag_ar",
"argentina":"flag_ar",
"as":"flag_as", "as":"flag_as",
"american_samoa":"flag_as",
"at":"flag_at", "at":"flag_at",
"austria":"flag_at",
"au":"flag_au", "au":"flag_au",
"australia":"flag_au",
"aw":"flag_aw", "aw":"flag_aw",
"aruba":"flag_aw",
"ax":"flag_ax", "ax":"flag_ax",
"aland_islands":"flag_ax",
"az":"flag_az", "az":"flag_az",
"azerbaijan":"flag_az",
"ba":"flag_ba", "ba":"flag_ba",
"bosnia_herzegovina":"flag_ba",
"bb":"flag_bb", "bb":"flag_bb",
"barbados":"flag_bb",
"bd":"flag_bd", "bd":"flag_bd",
"bangladesh":"flag_bd",
"be":"flag_be", "be":"flag_be",
"belgium":"flag_be",
"bf":"flag_bf", "bf":"flag_bf",
"burkina_faso":"flag_bf",
"bg":"flag_bg", "bg":"flag_bg",
"bulgaria":"flag_bg",
"bh":"flag_bh", "bh":"flag_bh",
"bahrain":"flag_bh",
"bi":"flag_bi", "bi":"flag_bi",
"burundi":"flag_bi",
"bj":"flag_bj", "bj":"flag_bj",
"benin":"flag_bj",
"bl":"flag_bl", "bl":"flag_bl",
"st_barthelemy":"flag_bl",
"waving_black_flag":"flag_black", "waving_black_flag":"flag_black",
"black_flag":"flag_black",
"bm":"flag_bm", "bm":"flag_bm",
"bermuda":"flag_bm",
"bn":"flag_bn", "bn":"flag_bn",
"brunei":"flag_bn",
"bo":"flag_bo", "bo":"flag_bo",
"bolivia":"flag_bo",
"bq":"flag_bq", "bq":"flag_bq",
"caribbean_netherlands":"flag_bq",
"br":"flag_br", "br":"flag_br",
"brazil":"flag_br",
"bs":"flag_bs", "bs":"flag_bs",
"bahamas":"flag_bs",
"bt":"flag_bt", "bt":"flag_bt",
"bhutan":"flag_bt",
"bv":"flag_bv", "bv":"flag_bv",
"bouvet_island":"flag_bv",
"bw":"flag_bw", "bw":"flag_bw",
"botswana":"flag_bw",
"by":"flag_by", "by":"flag_by",
"belarus":"flag_by",
"bz":"flag_bz", "bz":"flag_bz",
"belize":"flag_bz",
"ca":"flag_ca", "ca":"flag_ca",
"canada":"flag_ca",
"cc":"flag_cc", "cc":"flag_cc",
"cocos_islands":"flag_cc",
"congo":"flag_cd", "congo":"flag_cd",
"congo_kinshasa":"flag_cd",
"cf":"flag_cf", "cf":"flag_cf",
"central_african_republic":"flag_cf",
"cg":"flag_cg", "cg":"flag_cg",
"congo_brazzaville":"flag_cg",
"ch":"flag_ch", "ch":"flag_ch",
"switzerland":"flag_ch",
"ci":"flag_ci", "ci":"flag_ci",
"cote_divoire":"flag_ci",
"ck":"flag_ck", "ck":"flag_ck",
"cook_islands":"flag_ck",
"chile":"flag_cl", "chile":"flag_cl",
"cm":"flag_cm", "cm":"flag_cm",
"cameroon":"flag_cm",
"cn":"flag_cn", "cn":"flag_cn",
"china":"flag_cn",
"co":"flag_co", "co":"flag_co",
"colombia":"flag_co",
"cp":"flag_cp", "cp":"flag_cp",
"clipperton_island":"flag_cp",
"cr":"flag_cr", "cr":"flag_cr",
"costa_rica":"flag_cr",
"cu":"flag_cu", "cu":"flag_cu",
"cuba":"flag_cu",
"cv":"flag_cv", "cv":"flag_cv",
"cape_verde":"flag_cv",
"cw":"flag_cw", "cw":"flag_cw",
"curacao":"flag_cw",
"cx":"flag_cx", "cx":"flag_cx",
"christmas_island":"flag_cx",
"cy":"flag_cy", "cy":"flag_cy",
"cyprus":"flag_cy",
"cz":"flag_cz", "cz":"flag_cz",
"czech_republic":"flag_cz",
"de":"flag_de", "de":"flag_de",
"germany":"flag_de",
"dg":"flag_dg", "dg":"flag_dg",
"diego_garcia":"flag_dg",
"dj":"flag_dj", "dj":"flag_dj",
"djibouti":"flag_dj",
"dk":"flag_dk", "dk":"flag_dk",
"denmark":"flag_dk",
"dm":"flag_dm", "dm":"flag_dm",
"dominica":"flag_dm",
"do":"flag_do", "do":"flag_do",
"dominican_republic":"flag_do",
"dz":"flag_dz", "dz":"flag_dz",
"algeria":"flag_dz",
"ea":"flag_ea", "ea":"flag_ea",
"ceuta_melilla":"flag_ea",
"ec":"flag_ec", "ec":"flag_ec",
"ecuador":"flag_ec",
"ee":"flag_ee", "ee":"flag_ee",
"estonia":"flag_ee",
"eg":"flag_eg", "eg":"flag_eg",
"egypt":"flag_eg",
"eh":"flag_eh", "eh":"flag_eh",
"western_sahara":"flag_eh",
"er":"flag_er", "er":"flag_er",
"eritrea":"flag_er",
"es":"flag_es", "es":"flag_es",
"spain":"flag_es",
"et":"flag_et", "et":"flag_et",
"ethiopia":"flag_et",
"eu":"flag_eu", "eu":"flag_eu",
"european_union":"flag_eu",
"fi":"flag_fi", "fi":"flag_fi",
"finland":"flag_fi",
"fj":"flag_fj", "fj":"flag_fj",
"fiji":"flag_fj",
"fk":"flag_fk", "fk":"flag_fk",
"falkland_islands":"flag_fk",
"fm":"flag_fm", "fm":"flag_fm",
"micronesia":"flag_fm",
"fo":"flag_fo", "fo":"flag_fo",
"faroe_islands":"flag_fo",
"fr":"flag_fr", "fr":"flag_fr",
"france":"flag_fr",
"ga":"flag_ga", "ga":"flag_ga",
"gabon":"flag_ga",
"gb":"flag_gb", "gb":"flag_gb",
"great_britain":"flag_gb",
"gd":"flag_gd", "gd":"flag_gd",
"grenada":"flag_gd",
"ge":"flag_ge", "ge":"flag_ge",
"georgia":"flag_ge",
"gf":"flag_gf", "gf":"flag_gf",
"french_guiana":"flag_gf",
"gg":"flag_gg", "gg":"flag_gg",
"guernsey":"flag_gg",
"gh":"flag_gh", "gh":"flag_gh",
"ghana":"flag_gh",
"gi":"flag_gi", "gi":"flag_gi",
"gibraltar":"flag_gi",
"gl":"flag_gl", "gl":"flag_gl",
"greenland":"flag_gl",
"gm":"flag_gm", "gm":"flag_gm",
"gambia":"flag_gm",
"gn":"flag_gn", "gn":"flag_gn",
"guinea":"flag_gn",
"gp":"flag_gp", "gp":"flag_gp",
"guadeloupe":"flag_gp",
"gq":"flag_gq", "gq":"flag_gq",
"equatorial_guinea":"flag_gq",
"gr":"flag_gr", "gr":"flag_gr",
"greece":"flag_gr",
"gs":"flag_gs", "gs":"flag_gs",
"south_georgia_south_sandwich_islands":"flag_gs",
"gt":"flag_gt", "gt":"flag_gt",
"guatemala":"flag_gt",
"gu":"flag_gu", "gu":"flag_gu",
"guam":"flag_gu",
"gw":"flag_gw", "gw":"flag_gw",
"guinea_bissau":"flag_gw",
"gy":"flag_gy", "gy":"flag_gy",
"guyana":"flag_gy",
"hk":"flag_hk", "hk":"flag_hk",
"hong_kong":"flag_hk",
"hm":"flag_hm", "hm":"flag_hm",
"hn":"flag_hn", "hn":"flag_hn",
"honduras":"flag_hn",
"hr":"flag_hr", "hr":"flag_hr",
"croatia":"flag_hr",
"ht":"flag_ht", "ht":"flag_ht",
"haiti":"flag_ht",
"hu":"flag_hu", "hu":"flag_hu",
"hungary":"flag_hu",
"ic":"flag_ic", "ic":"flag_ic",
"canary_islands":"flag_ic",
"indonesia":"flag_id", "indonesia":"flag_id",
"ie":"flag_ie", "ie":"flag_ie",
"ireland":"flag_ie",
"il":"flag_il", "il":"flag_il",
"israel":"flag_il",
"im":"flag_im", "im":"flag_im",
"isle_of_man":"flag_im",
"in":"flag_in", "in":"flag_in",
"india":"flag_in",
"io":"flag_io", "io":"flag_io",
"british_indian_ocean_territory":"flag_io",
"iq":"flag_iq", "iq":"flag_iq",
"iraq":"flag_iq",
"ir":"flag_ir", "ir":"flag_ir",
"iran":"flag_ir",
"is":"flag_is", "is":"flag_is",
"iceland":"flag_is",
"it":"flag_it", "it":"flag_it",
"italy":"flag_it",
"je":"flag_je", "je":"flag_je",
"jersey":"flag_je",
"jm":"flag_jm", "jm":"flag_jm",
"jamaica":"flag_jm",
"jo":"flag_jo", "jo":"flag_jo",
"jordan":"flag_jo",
"jp":"flag_jp", "jp":"flag_jp",
"japan":"flag_jp",
"ke":"flag_ke", "ke":"flag_ke",
"kenya":"flag_ke",
"kg":"flag_kg", "kg":"flag_kg",
"kyrgyzstan":"flag_kg",
"kh":"flag_kh", "kh":"flag_kh",
"cambodia":"flag_kh",
"ki":"flag_ki", "ki":"flag_ki",
"kiribati":"flag_ki",
"km":"flag_km", "km":"flag_km",
"comoros":"flag_km",
"kn":"flag_kn", "kn":"flag_kn",
"st_kitts_nevis":"flag_kn",
"kp":"flag_kp", "kp":"flag_kp",
"north_korea":"flag_kp",
"kr":"flag_kr", "kr":"flag_kr",
"korea":"flag_kr",
"kw":"flag_kw", "kw":"flag_kw",
"kuwait":"flag_kw",
"ky":"flag_ky", "ky":"flag_ky",
"cayman_islands":"flag_ky",
"kz":"flag_kz", "kz":"flag_kz",
"kazakhstan":"flag_kz",
"la":"flag_la", "la":"flag_la",
"laos":"flag_la",
"lb":"flag_lb", "lb":"flag_lb",
"lebanon":"flag_lb",
"lc":"flag_lc", "lc":"flag_lc",
"st_lucia":"flag_lc",
"li":"flag_li", "li":"flag_li",
"liechtenstein":"flag_li",
"lk":"flag_lk", "lk":"flag_lk",
"sri_lanka":"flag_lk",
"lr":"flag_lr", "lr":"flag_lr",
"liberia":"flag_lr",
"ls":"flag_ls", "ls":"flag_ls",
"lesotho":"flag_ls",
"lt":"flag_lt", "lt":"flag_lt",
"lithuania":"flag_lt",
"lu":"flag_lu", "lu":"flag_lu",
"luxembourg":"flag_lu",
"lv":"flag_lv", "lv":"flag_lv",
"latvia":"flag_lv",
"ly":"flag_ly", "ly":"flag_ly",
"libya":"flag_ly",
"ma":"flag_ma", "ma":"flag_ma",
"morocco":"flag_ma",
"mc":"flag_mc", "mc":"flag_mc",
"monaco":"flag_mc",
"md":"flag_md", "md":"flag_md",
"moldova":"flag_md",
"me":"flag_me", "me":"flag_me",
"montenegro":"flag_me",
"mf":"flag_mf", "mf":"flag_mf",
"saint_martin":"flag_mf",
"mg":"flag_mg", "mg":"flag_mg",
"madagascar":"flag_mg",
"mh":"flag_mh", "mh":"flag_mh",
"marshall_islands":"flag_mh",
"mk":"flag_mk", "mk":"flag_mk",
"macedonia":"flag_mk",
"ml":"flag_ml", "ml":"flag_ml",
"mali":"flag_ml",
"mm":"flag_mm", "mm":"flag_mm",
"myanmar":"flag_mm",
"mn":"flag_mn", "mn":"flag_mn",
"mongolia":"flag_mn",
"mo":"flag_mo", "mo":"flag_mo",
"macau":"flag_mo",
"mp":"flag_mp", "mp":"flag_mp",
"northern_mariana_islands":"flag_mp",
"mq":"flag_mq", "mq":"flag_mq",
"martinique":"flag_mq",
"mr":"flag_mr", "mr":"flag_mr",
"mauritania":"flag_mr",
"ms":"flag_ms", "ms":"flag_ms",
"montserrat":"flag_ms",
"mt":"flag_mt", "mt":"flag_mt",
"malta":"flag_mt",
"mu":"flag_mu", "mu":"flag_mu",
"mauritius":"flag_mu",
"mv":"flag_mv", "mv":"flag_mv",
"maldives":"flag_mv",
"mw":"flag_mw", "mw":"flag_mw",
"malawi":"flag_mw",
"mx":"flag_mx", "mx":"flag_mx",
"mexico":"flag_mx",
"my":"flag_my", "my":"flag_my",
"malaysia":"flag_my",
"mz":"flag_mz", "mz":"flag_mz",
"mozambique":"flag_mz",
"na":"flag_na", "na":"flag_na",
"namibia":"flag_na",
"nc":"flag_nc", "nc":"flag_nc",
"new_caledonia":"flag_nc",
"ne":"flag_ne", "ne":"flag_ne",
"niger":"flag_ne",
"nf":"flag_nf", "nf":"flag_nf",
"norfolk_island":"flag_nf",
"nigeria":"flag_ng", "nigeria":"flag_ng",
"ni":"flag_ni", "ni":"flag_ni",
"nicaragua":"flag_ni",
"nl":"flag_nl", "nl":"flag_nl",
"netherlands":"flag_nl",
"no":"flag_no", "no":"flag_no",
"norway":"flag_no",
"np":"flag_np", "np":"flag_np",
"nepal":"flag_np",
"nr":"flag_nr", "nr":"flag_nr",
"nauru":"flag_nr",
"nu":"flag_nu", "nu":"flag_nu",
"niue":"flag_nu",
"nz":"flag_nz", "nz":"flag_nz",
"new_zealand":"flag_nz",
"om":"flag_om", "om":"flag_om",
"oman":"flag_om",
"pa":"flag_pa", "pa":"flag_pa",
"panama":"flag_pa",
"pe":"flag_pe", "pe":"flag_pe",
"peru":"flag_pe",
"pf":"flag_pf", "pf":"flag_pf",
"french_polynesia":"flag_pf",
"pg":"flag_pg", "pg":"flag_pg",
"papua_new_guinea":"flag_pg",
"ph":"flag_ph", "ph":"flag_ph",
"philippines":"flag_ph",
"pk":"flag_pk", "pk":"flag_pk",
"pakistan":"flag_pk",
"pl":"flag_pl", "pl":"flag_pl",
"poland":"flag_pl",
"pm":"flag_pm", "pm":"flag_pm",
"st_pierre_miquelon":"flag_pm",
"pn":"flag_pn", "pn":"flag_pn",
"pitcairn_islands":"flag_pn",
"pr":"flag_pr", "pr":"flag_pr",
"puerto_rico":"flag_pr",
"ps":"flag_ps", "ps":"flag_ps",
"palestinian_territories":"flag_ps",
"pt":"flag_pt", "pt":"flag_pt",
"portugal":"flag_pt",
"pw":"flag_pw", "pw":"flag_pw",
"palau":"flag_pw",
"py":"flag_py", "py":"flag_py",
"paraguay":"flag_py",
"qa":"flag_qa", "qa":"flag_qa",
"qatar":"flag_qa",
"re":"flag_re", "re":"flag_re",
"reunion":"flag_re",
"ro":"flag_ro", "ro":"flag_ro",
"romania":"flag_ro",
"rs":"flag_rs", "rs":"flag_rs",
"serbia":"flag_rs",
"ru":"flag_ru", "ru":"flag_ru",
"russia":"flag_ru",
"rw":"flag_rw", "rw":"flag_rw",
"rwanda":"flag_rw",
"saudiarabia":"flag_sa", "saudiarabia":"flag_sa",
"saudi":"flag_sa", "saudi":"flag_sa",
"saudi_arabia":"flag_sa",
"sb":"flag_sb", "sb":"flag_sb",
"solomon_islands":"flag_sb",
"sc":"flag_sc", "sc":"flag_sc",
"seychelles":"flag_sc",
"sd":"flag_sd", "sd":"flag_sd",
"sudan":"flag_sd",
"se":"flag_se", "se":"flag_se",
"sweden":"flag_se",
"sg":"flag_sg", "sg":"flag_sg",
"singapore":"flag_sg",
"sh":"flag_sh", "sh":"flag_sh",
"st_helena":"flag_sh",
"si":"flag_si", "si":"flag_si",
"slovenia":"flag_si",
"sj":"flag_sj", "sj":"flag_sj",
"sk":"flag_sk", "sk":"flag_sk",
"slovakia":"flag_sk",
"sl":"flag_sl", "sl":"flag_sl",
"sierra_leone":"flag_sl",
"sm":"flag_sm", "sm":"flag_sm",
"san_marino":"flag_sm",
"sn":"flag_sn", "sn":"flag_sn",
"senegal":"flag_sn",
"so":"flag_so", "so":"flag_so",
"somalia":"flag_so",
"sr":"flag_sr", "sr":"flag_sr",
"suriname":"flag_sr",
"ss":"flag_ss", "ss":"flag_ss",
"south_sudan":"flag_ss",
"st":"flag_st", "st":"flag_st",
"sao_tome_principe":"flag_st",
"sv":"flag_sv", "sv":"flag_sv",
"el_salvador":"flag_sv",
"sx":"flag_sx", "sx":"flag_sx",
"sint_maarten":"flag_sx",
"sy":"flag_sy", "sy":"flag_sy",
"syria":"flag_sy",
"sz":"flag_sz", "sz":"flag_sz",
"swaziland":"flag_sz",
"ta":"flag_ta", "ta":"flag_ta",
"tristan_da_cunha":"flag_ta",
"tc":"flag_tc", "tc":"flag_tc",
"turks_caicos_islands":"flag_tc",
"td":"flag_td", "td":"flag_td",
"chad":"flag_td",
"tf":"flag_tf", "tf":"flag_tf",
"french_southern_territories":"flag_tf",
"tg":"flag_tg", "tg":"flag_tg",
"togo":"flag_tg",
"th":"flag_th", "th":"flag_th",
"thailand":"flag_th",
"tj":"flag_tj", "tj":"flag_tj",
"tajikistan":"flag_tj",
"tk":"flag_tk", "tk":"flag_tk",
"tokelau":"flag_tk",
"tl":"flag_tl", "tl":"flag_tl",
"timor_leste":"flag_tl",
"turkmenistan":"flag_tm", "turkmenistan":"flag_tm",
"tn":"flag_tn", "tn":"flag_tn",
"tunisia":"flag_tn",
"to":"flag_to", "to":"flag_to",
"tonga":"flag_to",
"tr":"flag_tr", "tr":"flag_tr",
"turkey":"flag_tr",
"tt":"flag_tt", "tt":"flag_tt",
"trinidad_tobago":"flag_tt",
"tuvalu":"flag_tv", "tuvalu":"flag_tv",
"tw":"flag_tw", "tw":"flag_tw",
"taiwan":"flag_tw",
"tz":"flag_tz", "tz":"flag_tz",
"tanzania":"flag_tz",
"ua":"flag_ua", "ua":"flag_ua",
"ukraine":"flag_ua",
"ug":"flag_ug", "ug":"flag_ug",
"uganda":"flag_ug",
"um":"flag_um", "um":"flag_um",
"us":"flag_us", "us":"flag_us",
"united_states":"flag_us",
"uy":"flag_uy", "uy":"flag_uy",
"uruguay":"flag_uy",
"uz":"flag_uz", "uz":"flag_uz",
"uzbekistan":"flag_uz",
"va":"flag_va", "va":"flag_va",
"vatican_city":"flag_va",
"vc":"flag_vc", "vc":"flag_vc",
"st_vincent_grenadines":"flag_vc",
"ve":"flag_ve", "ve":"flag_ve",
"venezuela":"flag_ve",
"vg":"flag_vg", "vg":"flag_vg",
"british_virgin_islands":"flag_vg",
"vi":"flag_vi", "vi":"flag_vi",
"us_virgin_islands":"flag_vi",
"vn":"flag_vn", "vn":"flag_vn",
"vietnam":"flag_vn",
"vu":"flag_vu", "vu":"flag_vu",
"vanuatu":"flag_vu",
"wf":"flag_wf", "wf":"flag_wf",
"wallis_futuna":"flag_wf",
"waving_white_flag":"flag_white", "waving_white_flag":"flag_white",
"ws":"flag_ws", "ws":"flag_ws",
"samoa":"flag_ws",
"xk":"flag_xk", "xk":"flag_xk",
"kosovo":"flag_xk",
"ye":"flag_ye", "ye":"flag_ye",
"yemen":"flag_ye",
"yt":"flag_yt", "yt":"flag_yt",
"mayotte":"flag_yt",
"za":"flag_za", "za":"flag_za",
"south_africa":"flag_za",
"zm":"flag_zm", "zm":"flag_zm",
"zambia":"flag_zm",
"zw":"flag_zw", "zw":"flag_zw",
"zimbabwe":"flag_zw",
"fork_and_knife_with_plate":"fork_knife_plate", "fork_and_knife_with_plate":"fork_knife_plate",
"plate_with_cutlery":"fork_knife_plate",
"fox_face":"fox", "fox_face":"fox",
"frame_with_picture":"frame_photo", "frame_with_picture":"frame_photo",
"framed_picture":"frame_photo",
"baguette_bread":"french_bread", "baguette_bread":"french_bread",
"anguished":"frowning",
"white_frowning_face":"frowning2", "white_frowning_face":"frowning2",
"rainbow_flag":"gay_pride_flag", "rainbow_flag":"gay_pride_flag",
"goal_net":"goal", "goal_net":"goal",
"haircut_woman":"haircut",
"hammer_and_pick":"hammer_pick", "hammer_and_pick":"hammer_pick",
"raised_hand_with_fingers_splayed":"hand_splayed", "raised_hand_with_fingers_splayed":"hand_splayed",
"raised_hand_with_fingers_splayed_tone1":"hand_splayed_tone1", "raised_hand_with_fingers_splayed_tone1":"hand_splayed_tone1",
...@@ -349,18 +647,19 @@ ...@@ -349,18 +647,19 @@
"raised_hand_with_fingers_splayed_tone4":"hand_splayed_tone4", "raised_hand_with_fingers_splayed_tone4":"hand_splayed_tone4",
"raised_hand_with_fingers_splayed_tone5":"hand_splayed_tone5", "raised_hand_with_fingers_splayed_tone5":"hand_splayed_tone5",
"shaking_hands":"handshake", "shaking_hands":"handshake",
"shaking_hands_tone1":"handshake_tone1",
"shaking_hands_tone2":"handshake_tone2",
"shaking_hands_tone3":"handshake_tone3",
"shaking_hands_tone4":"handshake_tone4",
"shaking_hands_tone5":"handshake_tone5",
"face_with_head_bandage":"head_bandage", "face_with_head_bandage":"head_bandage",
"heavy_heart_exclamation_mark_ornament":"heart_exclamation", "heavy_heart_exclamation_mark_ornament":"heart_exclamation",
"helmet_with_white_cross":"helmet_with_cross", "helmet_with_white_cross":"helmet_with_cross",
"rescue_worker_helmet":"helmet_with_cross",
"ice_hockey":"hockey",
"house_buildings":"homes", "house_buildings":"homes",
"houses":"homes",
"hot_dog":"hotdog", "hot_dog":"hotdog",
"derelict_house_building":"house_abandoned", "derelict_house_building":"house_abandoned",
"derelict_house":"house_abandoned",
"hugging_face":"hugging", "hugging_face":"hugging",
"hugs":"hugging",
"tipping_hand_woman":"information_desk_person",
"desert_island":"island", "desert_island":"island",
"juggler":"juggling", "juggler":"juggling",
"juggler_tone1":"juggling_tone1", "juggler_tone1":"juggling_tone1",
...@@ -370,16 +669,22 @@ ...@@ -370,16 +669,22 @@
"juggler_tone5":"juggling_tone5", "juggler_tone5":"juggling_tone5",
"old_key":"key2", "old_key":"key2",
"couplekiss_mm":"kiss_mm", "couplekiss_mm":"kiss_mm",
"couplekiss_man_man":"kiss_mm",
"couplekiss_ww":"kiss_ww", "couplekiss_ww":"kiss_ww",
"couplekiss_woman_woman":"kiss_ww",
"kiwifruit":"kiwi", "kiwifruit":"kiwi",
"kiwi_fruit":"kiwi",
"hocho":"knife",
"satisfied":"laughing", "satisfied":"laughing",
"left_fist":"left_facing_fist", "left_fist":"left_facing_fist",
"fist_left":"left_facing_fist",
"left_fist_tone1":"left_facing_fist_tone1", "left_fist_tone1":"left_facing_fist_tone1",
"left_fist_tone2":"left_facing_fist_tone2", "left_fist_tone2":"left_facing_fist_tone2",
"left_fist_tone3":"left_facing_fist_tone3", "left_fist_tone3":"left_facing_fist_tone3",
"left_fist_tone4":"left_facing_fist_tone4", "left_fist_tone4":"left_facing_fist_tone4",
"left_fist_tone5":"left_facing_fist_tone5", "left_fist_tone5":"left_facing_fist_tone5",
"man_in_business_suit_levitating":"levitate", "man_in_business_suit_levitating":"levitate",
"business_suit_levitating":"levitate",
"weight_lifter":"lifter", "weight_lifter":"lifter",
"weight_lifter_tone1":"lifter_tone1", "weight_lifter_tone1":"lifter_tone1",
"weight_lifter_tone2":"lifter_tone2", "weight_lifter_tone2":"lifter_tone2",
...@@ -401,7 +706,9 @@ ...@@ -401,7 +706,9 @@
"tuxedo_tone5":"man_in_tuxedo_tone5", "tuxedo_tone5":"man_in_tuxedo_tone5",
"world_map":"map", "world_map":"map",
"karate_uniform":"martial_arts_uniform", "karate_uniform":"martial_arts_uniform",
"massage_woman":"massage",
"sports_medal":"medal", "sports_medal":"medal",
"medal_sports":"medal",
"sign_of_the_horns":"metal", "sign_of_the_horns":"metal",
"sign_of_the_horns_tone1":"metal_tone1", "sign_of_the_horns_tone1":"metal_tone1",
"sign_of_the_horns_tone2":"metal_tone2", "sign_of_the_horns_tone2":"metal_tone2",
...@@ -415,12 +722,17 @@ ...@@ -415,12 +722,17 @@
"reversed_hand_with_middle_finger_extended_tone3":"middle_finger_tone3", "reversed_hand_with_middle_finger_extended_tone3":"middle_finger_tone3",
"reversed_hand_with_middle_finger_extended_tone4":"middle_finger_tone4", "reversed_hand_with_middle_finger_extended_tone4":"middle_finger_tone4",
"reversed_hand_with_middle_finger_extended_tone5":"middle_finger_tone5", "reversed_hand_with_middle_finger_extended_tone5":"middle_finger_tone5",
"medal_military":"military_medal",
"glass_of_milk":"milk", "glass_of_milk":"milk",
"milk_glass":"milk",
"money_mouth_face":"money_mouth", "money_mouth_face":"money_mouth",
"motorbike":"motor_scooter", "motorbike":"motor_scooter",
"motor_boat":"motorboat",
"racing_motorcycle":"motorcycle", "racing_motorcycle":"motorcycle",
"mountain_biking_man":"mountain_bicyclist",
"snow_capped_mountain":"mountain_snow", "snow_capped_mountain":"mountain_snow",
"three_button_mouse":"mouse_three_button", "three_button_mouse":"mouse_three_button",
"computer_mouse":"mouse_three_button",
"mother_christmas":"mrs_claus", "mother_christmas":"mrs_claus",
"mother_christmas_tone1":"mrs_claus_tone1", "mother_christmas_tone1":"mrs_claus_tone1",
"mother_christmas_tone2":"mrs_claus_tone2", "mother_christmas_tone2":"mrs_claus_tone2",
...@@ -430,7 +742,10 @@ ...@@ -430,7 +742,10 @@
"sick":"nauseated_face", "sick":"nauseated_face",
"nerd_face":"nerd", "nerd_face":"nerd",
"rolled_up_newspaper":"newspaper2", "rolled_up_newspaper":"newspaper2",
"newspaper_roll":"newspaper2",
"no_good_woman":"no_good",
"spiral_note_pad":"notepad_spiral", "spiral_note_pad":"notepad_spiral",
"spiral_notepad":"notepad_spiral",
"stop_sign":"octagonal_sign", "stop_sign":"octagonal_sign",
"oil_drum":"oil", "oil_drum":"oil",
"grandma":"older_woman", "grandma":"older_woman",
...@@ -446,10 +761,16 @@ ...@@ -446,10 +761,16 @@
"peace_symbol":"peace", "peace_symbol":"peace",
"shelled_peanut":"peanuts", "shelled_peanut":"peanuts",
"lower_left_ballpoint_pen":"pen_ballpoint", "lower_left_ballpoint_pen":"pen_ballpoint",
"pen":"pen_ballpoint",
"lower_left_fountain_pen":"pen_fountain", "lower_left_fountain_pen":"pen_fountain",
"fountain_pen":"pen_fountain",
"memo":"pencil", "memo":"pencil",
"frowning_woman":"person_frowning",
"blonde_man":"person_with_blond_hair",
"pouting_woman":"person_with_pouting_face",
"table_tennis":"ping_pong", "table_tennis":"ping_pong",
"worship_symbol":"place_of_worship", "worship_symbol":"place_of_worship",
"play_or_pause_button":"play_pause",
"shit":"poop", "shit":"poop",
"hankey":"poop", "hankey":"poop",
"poo":"poop", "poo":"poop",
...@@ -460,6 +781,7 @@ ...@@ -460,6 +781,7 @@
"expecting_woman_tone4":"pregnant_woman_tone4", "expecting_woman_tone4":"pregnant_woman_tone4",
"expecting_woman_tone5":"pregnant_woman_tone5", "expecting_woman_tone5":"pregnant_woman_tone5",
"film_projector":"projector", "film_projector":"projector",
"fist_oncoming":"punch",
"racing_car":"race_car", "racing_car":"race_car",
"radioactive_sign":"radioactive", "radioactive_sign":"radioactive",
"railroad_track":"railway_track", "railroad_track":"railway_track",
...@@ -469,8 +791,12 @@ ...@@ -469,8 +791,12 @@
"back_of_hand_tone3":"raised_back_of_hand_tone3", "back_of_hand_tone3":"raised_back_of_hand_tone3",
"back_of_hand_tone4":"raised_back_of_hand_tone4", "back_of_hand_tone4":"raised_back_of_hand_tone4",
"back_of_hand_tone5":"raised_back_of_hand_tone5", "back_of_hand_tone5":"raised_back_of_hand_tone5",
"hand":"raised_hand",
"raising_hand_woman":"raising_hand",
"car":"red_car",
"rhinoceros":"rhino", "rhinoceros":"rhino",
"right_fist":"right_facing_fist", "right_fist":"right_facing_fist",
"fist_right":"right_facing_fist",
"right_fist_tone1":"right_facing_fist_tone1", "right_fist_tone1":"right_facing_fist_tone1",
"right_fist_tone2":"right_facing_fist_tone2", "right_fist_tone2":"right_facing_fist_tone2",
"right_fist_tone3":"right_facing_fist_tone3", "right_fist_tone3":"right_facing_fist_tone3",
...@@ -479,12 +805,20 @@ ...@@ -479,12 +805,20 @@
"robot_face":"robot", "robot_face":"robot",
"rolling_on_the_floor_laughing":"rofl", "rolling_on_the_floor_laughing":"rofl",
"face_with_rolling_eyes":"rolling_eyes", "face_with_rolling_eyes":"rolling_eyes",
"roll_eyes":"rolling_eyes",
"rowing_man":"rowboat",
"running_man":"runner",
"green_salad":"salad", "green_salad":"salad",
"artificial_satellite":"satellite_orbital",
"kick_scooter":"scooter",
"second_place_medal":"second_place", "second_place_medal":"second_place",
"2nd_place_medal":"second_place",
"paella":"shallow_pan_of_food", "paella":"shallow_pan_of_food",
"shopping":"shopping_bags",
"shopping_trolley":"shopping_cart", "shopping_trolley":"shopping_cart",
"skeleton":"skull", "skeleton":"skull",
"skull_and_crossbones":"skull_crossbones", "skull_and_crossbones":"skull_crossbones",
"sleeping_bed":"sleeping_accommodation",
"slightly_frowning_face":"slight_frown", "slightly_frowning_face":"slight_frown",
"slightly_smiling_face":"slight_smile", "slightly_smiling_face":"slight_smile",
"sneeze":"sneezing_face", "sneeze":"sneezing_face",
...@@ -497,9 +831,13 @@ ...@@ -497,9 +831,13 @@
"sleuth_or_spy_tone4":"spy_tone4", "sleuth_or_spy_tone4":"spy_tone4",
"sleuth_or_spy_tone5":"spy_tone5", "sleuth_or_spy_tone5":"spy_tone5",
"stuffed_pita":"stuffed_flatbread", "stuffed_pita":"stuffed_flatbread",
"surfing_man":"surfer",
"swimming_man":"swimmer",
"keycap_ten":"ten",
"face_with_thermometer":"thermometer_face", "face_with_thermometer":"thermometer_face",
"thinking_face":"thinking", "thinking_face":"thinking",
"third_place_medal":"third_place", "third_place_medal":"third_place",
"3rd_place_medal":"third_place",
"-1":"thumbsdown", "-1":"thumbsdown",
"-1_tone1":"thumbsdown_tone1", "-1_tone1":"thumbsdown_tone1",
"-1_tone2":"thumbsdown_tone2", "-1_tone2":"thumbsdown_tone2",
...@@ -513,30 +851,770 @@ ...@@ -513,30 +851,770 @@
"+1_tone4":"thumbsup_tone4", "+1_tone4":"thumbsup_tone4",
"+1_tone5":"thumbsup_tone5", "+1_tone5":"thumbsup_tone5",
"thunder_cloud_and_rain":"thunder_cloud_rain", "thunder_cloud_and_rain":"thunder_cloud_rain",
"cloud_with_lightning_and_rain":"thunder_cloud_rain",
"admission_tickets":"tickets", "admission_tickets":"tickets",
"timer_clock":"timer", "timer_clock":"timer",
"hammer_and_wrench":"tools", "hammer_and_wrench":"tools",
"next_track":"track_next", "next_track":"track_next",
"next_track_button":"track_next",
"previous_track":"track_previous", "previous_track":"track_previous",
"previous_track_button":"track_previous",
"whisky":"tumbler_glass", "whisky":"tumbler_glass",
"unicorn_face":"unicorn", "unicorn_face":"unicorn",
"upside_down_face":"upside_down", "upside_down_face":"upside_down",
"funeral_urn":"urn", "funeral_urn":"urn",
"raised_hand_with_part_between_middle_and_ring_fingers":"vulcan", "raised_hand_with_part_between_middle_and_ring_fingers":"vulcan",
"vulcan_salute":"vulcan",
"raised_hand_with_part_between_middle_and_ring_fingers_tone1":"vulcan_tone1", "raised_hand_with_part_between_middle_and_ring_fingers_tone1":"vulcan_tone1",
"raised_hand_with_part_between_middle_and_ring_fingers_tone2":"vulcan_tone2", "raised_hand_with_part_between_middle_and_ring_fingers_tone2":"vulcan_tone2",
"raised_hand_with_part_between_middle_and_ring_fingers_tone3":"vulcan_tone3", "raised_hand_with_part_between_middle_and_ring_fingers_tone3":"vulcan_tone3",
"raised_hand_with_part_between_middle_and_ring_fingers_tone4":"vulcan_tone4", "raised_hand_with_part_between_middle_and_ring_fingers_tone4":"vulcan_tone4",
"raised_hand_with_part_between_middle_and_ring_fingers_tone5":"vulcan_tone5", "raised_hand_with_part_between_middle_and_ring_fingers_tone5":"vulcan_tone5",
"walking_man":"walking",
"moon":"waxing_gibbous_moon",
"white_sun_behind_cloud":"white_sun_cloud", "white_sun_behind_cloud":"white_sun_cloud",
"sun_behind_large_cloud":"white_sun_cloud",
"white_sun_behind_cloud_with_rain":"white_sun_rain_cloud", "white_sun_behind_cloud_with_rain":"white_sun_rain_cloud",
"sun_behind_rain_cloud":"white_sun_rain_cloud",
"white_sun_with_small_cloud":"white_sun_small_cloud", "white_sun_with_small_cloud":"white_sun_small_cloud",
"sun_behind_small_cloud":"white_sun_small_cloud",
"wilted_flower":"wilted_rose", "wilted_flower":"wilted_rose",
"wind_face":"wind_blowing_face",
"wrestling":"wrestlers", "wrestling":"wrestlers",
"wrestling_tone1":"wrestlers_tone1", "zipper_mouth_face":"zipper_mouth",
"wrestling_tone2":"wrestlers_tone2", "snowboarder_light_skin_tone":"snowboarder_tone1",
"wrestling_tone3":"wrestlers_tone3", "snowboarder_medium_light_skin_tone":"snowboarder_tone2",
"wrestling_tone4":"wrestlers_tone4", "snowboarder_medium_skin_tone":"snowboarder_tone3",
"wrestling_tone5":"wrestlers_tone5", "snowboarder_medium_dark_skin_tone":"snowboarder_tone4",
"zipper_mouth_face":"zipper_mouth" "snowboarder_dark_skin_tone":"snowboarder_tone5",
"woman_lifting_weights_light_skin_tone":"woman_lifting_weights_tone1",
"woman_lifting_weights_medium_light_skin_tone":"woman_lifting_weights_tone2",
"woman_lifting_weights_medium_skin_tone":"woman_lifting_weights_tone3",
"woman_lifting_weights_medium_dark_skin_tone":"woman_lifting_weights_tone4",
"woman_lifting_weights_dark_skin_tone":"woman_lifting_weights_tone5",
"man_lifting_weights_light_skin_tone":"man_lifting_weights_tone1",
"man_lifting_weights_medium_light_skin_tone":"man_lifting_weights_tone2",
"man_lifting_weights_medium_skin_tone":"man_lifting_weights_tone3",
"man_lifting_weights_medium_dark_skin_tone":"man_lifting_weights_tone4",
"man_lifting_weights_dark_skin_tone":"man_lifting_weights_tone5",
"woman_cartwheeling_light_skin_tone":"woman_cartwheeling_tone1",
"woman_cartwheeling_medium_light_skin_tone":"woman_cartwheeling_tone2",
"woman_cartwheeling_medium_skin_tone":"woman_cartwheeling_tone3",
"woman_cartwheeling_medium_dark_skin_tone":"woman_cartwheeling_tone4",
"woman_cartwheeling_dark_skin_tone":"woman_cartwheeling_tone5",
"man_cartwheeling_light_skin_tone":"man_cartwheeling_tone1",
"man_cartwheeling_medium_light_skin_tone":"man_cartwheeling_tone2",
"man_cartwheeling_medium_skin_tone":"man_cartwheeling_tone3",
"man_cartwheeling_medium_dark_skin_tone":"man_cartwheeling_tone4",
"man_cartwheeling_dark_skin_tone":"man_cartwheeling_tone5",
"woman_bouncing_ball_light_skin_tone":"woman_bouncing_ball_tone1",
"woman_bouncing_ball_medium_light_skin_tone":"woman_bouncing_ball_tone2",
"woman_bouncing_ball_medium_skin_tone":"woman_bouncing_ball_tone3",
"woman_bouncing_ball_medium_dark_skin_tone":"woman_bouncing_ball_tone4",
"woman_bouncing_ball_dark_skin_tone":"woman_bouncing_ball_tone5",
"man_bouncing_ball_light_skin_tone":"man_bouncing_ball_tone1",
"man_bouncing_ball_medium_light_skin_tone":"man_bouncing_ball_tone2",
"man_bouncing_ball_medium_skin_tone":"man_bouncing_ball_tone3",
"man_bouncing_ball_medium_dark_skin_tone":"man_bouncing_ball_tone4",
"man_bouncing_ball_dark_skin_tone":"man_bouncing_ball_tone5",
"woman_playing_handball_light_skin_tone":"woman_playing_handball_tone1",
"woman_playing_handball_medium_light_skin_tone":"woman_playing_handball_tone2",
"woman_playing_handball_medium_skin_tone":"woman_playing_handball_tone3",
"woman_playing_handball_medium_dark_skin_tone":"woman_playing_handball_tone4",
"woman_playing_handball_dark_skin_tone":"woman_playing_handball_tone5",
"man_playing_handball_light_skin_tone":"man_playing_handball_tone1",
"man_playing_handball_medium_light_skin_tone":"man_playing_handball_tone2",
"man_playing_handball_medium_skin_tone":"man_playing_handball_tone3",
"man_playing_handball_medium_dark_skin_tone":"man_playing_handball_tone4",
"man_playing_handball_dark_skin_tone":"man_playing_handball_tone5",
"person_golfing_light_skin_tone":"person_golfing_tone1",
"person_golfing_medium_light_skin_tone":"person_golfing_tone2",
"person_golfing_medium_skin_tone":"person_golfing_tone3",
"person_golfing_medium_dark_skin_tone":"person_golfing_tone4",
"person_golfing_dark_skin_tone":"person_golfing_tone5",
"woman_golfing_light_skin_tone":"woman_golfing_tone1",
"woman_golfing_medium_light_skin_tone":"woman_golfing_tone2",
"woman_golfing_medium_skin_tone":"woman_golfing_tone3",
"woman_golfing_medium_dark_skin_tone":"woman_golfing_tone4",
"woman_golfing_dark_skin_tone":"woman_golfing_tone5",
"man_golfing_light_skin_tone":"man_golfing_tone1",
"man_golfing_medium_light_skin_tone":"man_golfing_tone2",
"man_golfing_medium_skin_tone":"man_golfing_tone3",
"man_golfing_medium_dark_skin_tone":"man_golfing_tone4",
"man_golfing_dark_skin_tone":"man_golfing_tone5",
"person_in_lotus_position_light_skin_tone":"person_in_lotus_position_tone1",
"person_in_lotus_position_medium_light_skin_tone":"person_in_lotus_position_tone2",
"person_in_lotus_position_medium_skin_tone":"person_in_lotus_position_tone3",
"person_in_lotus_position_medium_dark_skin_tone":"person_in_lotus_position_tone4",
"person_in_lotus_position_dark_skin_tone":"person_in_lotus_position_tone5",
"woman_in_lotus_position_light_skin_tone":"woman_in_lotus_position_tone1",
"woman_in_lotus_position_medium_light_skin_tone":"woman_in_lotus_position_tone2",
"woman_in_lotus_position_medium_skin_tone":"woman_in_lotus_position_tone3",
"woman_in_lotus_position_medium_dark_skin_tone":"woman_in_lotus_position_tone4",
"woman_in_lotus_position_dark_skin_tone":"woman_in_lotus_position_tone5",
"man_in_lotus_position_light_skin_tone":"man_in_lotus_position_tone1",
"man_in_lotus_position_medium_light_skin_tone":"man_in_lotus_position_tone2",
"man_in_lotus_position_medium_skin_tone":"man_in_lotus_position_tone3",
"man_in_lotus_position_medium_dark_skin_tone":"man_in_lotus_position_tone4",
"man_in_lotus_position_dark_skin_tone":"man_in_lotus_position_tone5",
"woman_surfing_light_skin_tone":"woman_surfing_tone1",
"woman_surfing_medium_light_skin_tone":"woman_surfing_tone2",
"woman_surfing_medium_skin_tone":"woman_surfing_tone3",
"woman_surfing_medium_dark_skin_tone":"woman_surfing_tone4",
"woman_surfing_dark_skin_tone":"woman_surfing_tone5",
"man_surfing_light_skin_tone":"man_surfing_tone1",
"man_surfing_medium_light_skin_tone":"man_surfing_tone2",
"man_surfing_medium_skin_tone":"man_surfing_tone3",
"man_surfing_medium_dark_skin_tone":"man_surfing_tone4",
"man_surfing_dark_skin_tone":"man_surfing_tone5",
"woman_swimming_light_skin_tone":"woman_swimming_tone1",
"woman_swimming_medium_light_skin_tone":"woman_swimming_tone2",
"woman_swimming_medium_skin_tone":"woman_swimming_tone3",
"woman_swimming_medium_dark_skin_tone":"woman_swimming_tone4",
"woman_swimming_dark_skin_tone":"woman_swimming_tone5",
"man_swimming_light_skin_tone":"man_swimming_tone1",
"man_swimming_medium_light_skin_tone":"man_swimming_tone2",
"man_swimming_medium_skin_tone":"man_swimming_tone3",
"man_swimming_medium_dark_skin_tone":"man_swimming_tone4",
"man_swimming_dark_skin_tone":"man_swimming_tone5",
"woman_playing_water_polo_light_skin_tone":"woman_playing_water_polo_tone1",
"woman_playing_water_polo_medium_light_skin_tone":"woman_playing_water_polo_tone2",
"woman_playing_water_polo_medium_skin_tone":"woman_playing_water_polo_tone3",
"woman_playing_water_polo_medium_dark_skin_tone":"woman_playing_water_polo_tone4",
"woman_playing_water_polo_dark_skin_tone":"woman_playing_water_polo_tone5",
"man_playing_water_polo_light_skin_tone":"man_playing_water_polo_tone1",
"man_playing_water_polo_medium_light_skin_tone":"man_playing_water_polo_tone2",
"man_playing_water_polo_medium_skin_tone":"man_playing_water_polo_tone3",
"man_playing_water_polo_medium_dark_skin_tone":"man_playing_water_polo_tone4",
"man_playing_water_polo_dark_skin_tone":"man_playing_water_polo_tone5",
"woman_rowing_boat_light_skin_tone":"woman_rowing_boat_tone1",
"woman_rowing_boat_medium_light_skin_tone":"woman_rowing_boat_tone2",
"woman_rowing_boat_medium_skin_tone":"woman_rowing_boat_tone3",
"woman_rowing_boat_medium_dark_skin_tone":"woman_rowing_boat_tone4",
"woman_rowing_boat_dark_skin_tone":"woman_rowing_boat_tone5",
"man_rowing_boat_light_skin_tone":"man_rowing_boat_tone1",
"man_rowing_boat_medium_light_skin_tone":"man_rowing_boat_tone2",
"man_rowing_boat_medium_skin_tone":"man_rowing_boat_tone3",
"man_rowing_boat_medium_dark_skin_tone":"man_rowing_boat_tone4",
"man_rowing_boat_dark_skin_tone":"man_rowing_boat_tone5",
"person_climbing_light_skin_tone":"person_climbing_tone1",
"person_climbing_medium_light_skin_tone":"person_climbing_tone2",
"person_climbing_medium_skin_tone":"person_climbing_tone3",
"person_climbing_medium_dark_skin_tone":"person_climbing_tone4",
"person_climbing_dark_skin_tone":"person_climbing_tone5",
"woman_climbing_light_skin_tone":"woman_climbing_tone1",
"woman_climbing_medium_light_skin_tone":"woman_climbing_tone2",
"woman_climbing_medium_skin_tone":"woman_climbing_tone3",
"woman_climbing_medium_dark_skin_tone":"woman_climbing_tone4",
"woman_climbing_dark_skin_tone":"woman_climbing_tone5",
"man_climbing_light_skin_tone":"man_climbing_tone1",
"man_climbing_medium_light_skin_tone":"man_climbing_tone2",
"man_climbing_medium_skin_tone":"man_climbing_tone3",
"man_climbing_medium_dark_skin_tone":"man_climbing_tone4",
"man_climbing_dark_skin_tone":"man_climbing_tone5",
"woman_mountain_biking_light_skin_tone":"woman_mountain_biking_tone1",
"woman_mountain_biking_medium_light_skin_tone":"woman_mountain_biking_tone2",
"woman_mountain_biking_medium_skin_tone":"woman_mountain_biking_tone3",
"woman_mountain_biking_medium_dark_skin_tone":"woman_mountain_biking_tone4",
"woman_mountain_biking_dark_skin_tone":"woman_mountain_biking_tone5",
"man_mountain_biking_light_skin_tone":"man_mountain_biking_tone1",
"man_mountain_biking_medium_light_skin_tone":"man_mountain_biking_tone2",
"man_mountain_biking_medium_skin_tone":"man_mountain_biking_tone3",
"man_mountain_biking_medium_dark_skin_tone":"man_mountain_biking_tone4",
"man_mountain_biking_dark_skin_tone":"man_mountain_biking_tone5",
"woman_biking_light_skin_tone":"woman_biking_tone1",
"woman_biking_medium_light_skin_tone":"woman_biking_tone2",
"woman_biking_medium_skin_tone":"woman_biking_tone3",
"woman_biking_medium_dark_skin_tone":"woman_biking_tone4",
"woman_biking_dark_skin_tone":"woman_biking_tone5",
"man_biking_light_skin_tone":"man_biking_tone1",
"man_biking_medium_light_skin_tone":"man_biking_tone2",
"man_biking_medium_skin_tone":"man_biking_tone3",
"man_biking_medium_dark_skin_tone":"man_biking_tone4",
"man_biking_dark_skin_tone":"man_biking_tone5",
"woman_juggling_light_skin_tone":"woman_juggling_tone1",
"woman_juggling_medium_light_skin_tone":"woman_juggling_tone2",
"woman_juggling_medium_skin_tone":"woman_juggling_tone3",
"woman_juggling_medium_dark_skin_tone":"woman_juggling_tone4",
"woman_juggling_dark_skin_tone":"woman_juggling_tone5",
"man_juggling_light_skin_tone":"man_juggling_tone1",
"man_juggling_medium_light_skin_tone":"man_juggling_tone2",
"man_juggling_medium_skin_tone":"man_juggling_tone3",
"man_juggling_medium_dark_skin_tone":"man_juggling_tone4",
"man_juggling_dark_skin_tone":"man_juggling_tone5",
"person_in_bed_light_skin_tone":"person_in_bed_tone1",
"person_in_bed_medium_light_skin_tone":"person_in_bed_tone2",
"person_in_bed_medium_skin_tone":"person_in_bed_tone3",
"person_in_bed_medium_dark_skin_tone":"person_in_bed_tone4",
"person_in_bed_dark_skin_tone":"person_in_bed_tone5",
"palms_up_together_light_skin_tone":"palms_up_together_tone1",
"palms_up_together_medium_light_skin_tone":"palms_up_together_tone2",
"palms_up_together_medium_skin_tone":"palms_up_together_tone3",
"palms_up_together_medium_dark_skin_tone":"palms_up_together_tone4",
"palms_up_together_dark_skin_tone":"palms_up_together_tone5",
"love_you_gesture_light_skin_tone":"love_you_gesture_tone1",
"love_you_gesture_medium_light_skin_tone":"love_you_gesture_tone2",
"love_you_gesture_medium_skin_tone":"love_you_gesture_tone3",
"love_you_gesture_medium_dark_skin_tone":"love_you_gesture_tone4",
"love_you_gesture_dark_skin_tone":"love_you_gesture_tone5",
"leg_light_skin_tone":"leg_tone1",
"leg_medium_light_skin_tone":"leg_tone2",
"leg_medium_skin_tone":"leg_tone3",
"leg_medium_dark_skin_tone":"leg_tone4",
"leg_dark_skin_tone":"leg_tone5",
"foot_light_skin_tone":"foot_tone1",
"foot_medium_light_skin_tone":"foot_tone2",
"foot_medium_skin_tone":"foot_tone3",
"foot_medium_dark_skin_tone":"foot_tone4",
"foot_dark_skin_tone":"foot_tone5",
"child_light_skin_tone":"child_tone1",
"child_medium_light_skin_tone":"child_tone2",
"child_medium_skin_tone":"child_tone3",
"child_medium_dark_skin_tone":"child_tone4",
"child_dark_skin_tone":"child_tone5",
"adult_light_skin_tone":"adult_tone1",
"adult_medium_light_skin_tone":"adult_tone2",
"adult_medium_skin_tone":"adult_tone3",
"adult_medium_dark_skin_tone":"adult_tone4",
"adult_dark_skin_tone":"adult_tone5",
"blond-haired_woman_light_skin_tone":"blond-haired_woman_tone1",
"blond-haired_woman_medium_light_skin_tone":"blond-haired_woman_tone2",
"blond-haired_woman_medium_skin_tone":"blond-haired_woman_tone3",
"blond-haired_woman_medium_dark_skin_tone":"blond-haired_woman_tone4",
"blond-haired_woman_dark_skin_tone":"blond-haired_woman_tone5",
"blond-haired_man_light_skin_tone":"blond-haired_man_tone1",
"blond-haired_man_medium_light_skin_tone":"blond-haired_man_tone2",
"blond-haired_man_medium_skin_tone":"blond-haired_man_tone3",
"blond-haired_man_medium_dark_skin_tone":"blond-haired_man_tone4",
"blond-haired_man_dark_skin_tone":"blond-haired_man_tone5",
"woman_red_haired_light_skin_tone":"woman_red_haired_tone1",
"woman_red_haired_medium_light_skin_tone":"woman_red_haired_tone2",
"woman_red_haired_medium_skin_tone":"woman_red_haired_tone3",
"woman_red_haired_medium_dark_skin_tone":"woman_red_haired_tone4",
"woman_red_haired_dark_skin_tone":"woman_red_haired_tone5",
"man_red_haired_light_skin_tone":"man_red_haired_tone1",
"man_red_haired_medium_light_skin_tone":"man_red_haired_tone2",
"man_red_haired_medium_skin_tone":"man_red_haired_tone3",
"man_red_haired_medium_dark_skin_tone":"man_red_haired_tone4",
"man_red_haired_dark_skin_tone":"man_red_haired_tone5",
"woman_curly_haired_light_skin_tone":"woman_curly_haired_tone1",
"woman_curly_haired_medium_light_skin_tone":"woman_curly_haired_tone2",
"woman_curly_haired_medium_skin_tone":"woman_curly_haired_tone3",
"woman_curly_haired_medium_dark_skin_tone":"woman_curly_haired_tone4",
"woman_curly_haired_dark_skin_tone":"woman_curly_haired_tone5",
"man_curly_haired_light_skin_tone":"man_curly_haired_tone1",
"man_curly_haired_medium_light_skin_tone":"man_curly_haired_tone2",
"man_curly_haired_medium_skin_tone":"man_curly_haired_tone3",
"man_curly_haired_medium_dark_skin_tone":"man_curly_haired_tone4",
"man_curly_haired_dark_skin_tone":"man_curly_haired_tone5",
"woman_white_haired_light_skin_tone":"woman_white_haired_tone1",
"woman_white_haired_medium_light_skin_tone":"woman_white_haired_tone2",
"woman_white_haired_medium_skin_tone":"woman_white_haired_tone3",
"woman_white_haired_medium_dark_skin_tone":"woman_white_haired_tone4",
"woman_white_haired_dark_skin_tone":"woman_white_haired_tone5",
"man_white_haired_light_skin_tone":"man_white_haired_tone1",
"man_white_haired_medium_light_skin_tone":"man_white_haired_tone2",
"man_white_haired_medium_skin_tone":"man_white_haired_tone3",
"man_white_haired_medium_dark_skin_tone":"man_white_haired_tone4",
"man_white_haired_dark_skin_tone":"man_white_haired_tone5",
"woman_bald_light_skin_tone":"woman_bald_tone1",
"woman_bald_medium_light_skin_tone":"woman_bald_tone2",
"woman_bald_medium_skin_tone":"woman_bald_tone3",
"woman_bald_medium_dark_skin_tone":"woman_bald_tone4",
"woman_bald_dark_skin_tone":"woman_bald_tone5",
"man_bald_light_skin_tone":"man_bald_tone1",
"man_bald_medium_light_skin_tone":"man_bald_tone2",
"man_bald_medium_skin_tone":"man_bald_tone3",
"man_bald_medium_dark_skin_tone":"man_bald_tone4",
"man_bald_dark_skin_tone":"man_bald_tone5",
"bearded_person_light_skin_tone":"bearded_person_tone1",
"bearded_person_medium_light_skin_tone":"bearded_person_tone2",
"bearded_person_medium_skin_tone":"bearded_person_tone3",
"bearded_person_medium_dark_skin_tone":"bearded_person_tone4",
"bearded_person_dark_skin_tone":"bearded_person_tone5",
"older_adult_light_skin_tone":"older_adult_tone1",
"older_adult_medium_light_skin_tone":"older_adult_tone2",
"older_adult_medium_skin_tone":"older_adult_tone3",
"older_adult_medium_dark_skin_tone":"older_adult_tone4",
"older_adult_dark_skin_tone":"older_adult_tone5",
"woman_wearing_turban_light_skin_tone":"woman_wearing_turban_tone1",
"woman_wearing_turban_medium_light_skin_tone":"woman_wearing_turban_tone2",
"woman_wearing_turban_medium_skin_tone":"woman_wearing_turban_tone3",
"woman_wearing_turban_medium_dark_skin_tone":"woman_wearing_turban_tone4",
"woman_wearing_turban_dark_skin_tone":"woman_wearing_turban_tone5",
"man_wearing_turban_light_skin_tone":"man_wearing_turban_tone1",
"man_wearing_turban_medium_light_skin_tone":"man_wearing_turban_tone2",
"man_wearing_turban_medium_skin_tone":"man_wearing_turban_tone3",
"man_wearing_turban_medium_dark_skin_tone":"man_wearing_turban_tone4",
"man_wearing_turban_dark_skin_tone":"man_wearing_turban_tone5",
"woman_with_headscarf_light_skin_tone":"woman_with_headscarf_tone1",
"woman_with_headscarf_medium_light_skin_tone":"woman_with_headscarf_tone2",
"woman_with_headscarf_medium_skin_tone":"woman_with_headscarf_tone3",
"woman_with_headscarf_medium_dark_skin_tone":"woman_with_headscarf_tone4",
"woman_with_headscarf_dark_skin_tone":"woman_with_headscarf_tone5",
"woman_police_officer_light_skin_tone":"woman_police_officer_tone1",
"woman_police_officer_medium_light_skin_tone":"woman_police_officer_tone2",
"woman_police_officer_medium_skin_tone":"woman_police_officer_tone3",
"woman_police_officer_medium_dark_skin_tone":"woman_police_officer_tone4",
"woman_police_officer_dark_skin_tone":"woman_police_officer_tone5",
"man_police_officer_light_skin_tone":"man_police_officer_tone1",
"man_police_officer_medium_light_skin_tone":"man_police_officer_tone2",
"man_police_officer_medium_skin_tone":"man_police_officer_tone3",
"man_police_officer_medium_dark_skin_tone":"man_police_officer_tone4",
"man_police_officer_dark_skin_tone":"man_police_officer_tone5",
"woman_construction_worker_light_skin_tone":"woman_construction_worker_tone1",
"woman_construction_worker_medium_light_skin_tone":"woman_construction_worker_tone2",
"woman_construction_worker_medium_skin_tone":"woman_construction_worker_tone3",
"woman_construction_worker_medium_dark_skin_tone":"woman_construction_worker_tone4",
"woman_construction_worker_dark_skin_tone":"woman_construction_worker_tone5",
"man_construction_worker_light_skin_tone":"man_construction_worker_tone1",
"man_construction_worker_medium_light_skin_tone":"man_construction_worker_tone2",
"man_construction_worker_medium_skin_tone":"man_construction_worker_tone3",
"man_construction_worker_medium_dark_skin_tone":"man_construction_worker_tone4",
"man_construction_worker_dark_skin_tone":"man_construction_worker_tone5",
"woman_guard_light_skin_tone":"woman_guard_tone1",
"woman_guard_medium_light_skin_tone":"woman_guard_tone2",
"woman_guard_medium_skin_tone":"woman_guard_tone3",
"woman_guard_medium_dark_skin_tone":"woman_guard_tone4",
"woman_guard_dark_skin_tone":"woman_guard_tone5",
"man_guard_light_skin_tone":"man_guard_tone1",
"man_guard_medium_light_skin_tone":"man_guard_tone2",
"man_guard_medium_skin_tone":"man_guard_tone3",
"man_guard_medium_dark_skin_tone":"man_guard_tone4",
"man_guard_dark_skin_tone":"man_guard_tone5",
"woman_detective_light_skin_tone":"woman_detective_tone1",
"woman_detective_medium_light_skin_tone":"woman_detective_tone2",
"woman_detective_medium_skin_tone":"woman_detective_tone3",
"woman_detective_medium_dark_skin_tone":"woman_detective_tone4",
"woman_detective_dark_skin_tone":"woman_detective_tone5",
"man_detective_light_skin_tone":"man_detective_tone1",
"man_detective_medium_light_skin_tone":"man_detective_tone2",
"man_detective_medium_skin_tone":"man_detective_tone3",
"man_detective_medium_dark_skin_tone":"man_detective_tone4",
"man_detective_dark_skin_tone":"man_detective_tone5",
"woman_health_worker_light_skin_tone":"woman_health_worker_tone1",
"woman_health_worker_medium_light_skin_tone":"woman_health_worker_tone2",
"woman_health_worker_medium_skin_tone":"woman_health_worker_tone3",
"woman_health_worker_medium_dark_skin_tone":"woman_health_worker_tone4",
"woman_health_worker_dark_skin_tone":"woman_health_worker_tone5",
"man_health_worker_light_skin_tone":"man_health_worker_tone1",
"man_health_worker_medium_light_skin_tone":"man_health_worker_tone2",
"man_health_worker_medium_skin_tone":"man_health_worker_tone3",
"man_health_worker_medium_dark_skin_tone":"man_health_worker_tone4",
"man_health_worker_dark_skin_tone":"man_health_worker_tone5",
"woman_farmer_light_skin_tone":"woman_farmer_tone1",
"woman_farmer_medium_light_skin_tone":"woman_farmer_tone2",
"woman_farmer_medium_skin_tone":"woman_farmer_tone3",
"woman_farmer_medium_dark_skin_tone":"woman_farmer_tone4",
"woman_farmer_dark_skin_tone":"woman_farmer_tone5",
"man_farmer_light_skin_tone":"man_farmer_tone1",
"man_farmer_medium_light_skin_tone":"man_farmer_tone2",
"man_farmer_medium_skin_tone":"man_farmer_tone3",
"man_farmer_medium_dark_skin_tone":"man_farmer_tone4",
"man_farmer_dark_skin_tone":"man_farmer_tone5",
"woman_cook_light_skin_tone":"woman_cook_tone1",
"woman_cook_medium_light_skin_tone":"woman_cook_tone2",
"woman_cook_medium_skin_tone":"woman_cook_tone3",
"woman_cook_medium_dark_skin_tone":"woman_cook_tone4",
"woman_cook_dark_skin_tone":"woman_cook_tone5",
"man_cook_light_skin_tone":"man_cook_tone1",
"man_cook_medium_light_skin_tone":"man_cook_tone2",
"man_cook_medium_skin_tone":"man_cook_tone3",
"man_cook_medium_dark_skin_tone":"man_cook_tone4",
"man_cook_dark_skin_tone":"man_cook_tone5",
"woman_student_light_skin_tone":"woman_student_tone1",
"woman_student_medium_light_skin_tone":"woman_student_tone2",
"woman_student_medium_skin_tone":"woman_student_tone3",
"woman_student_medium_dark_skin_tone":"woman_student_tone4",
"woman_student_dark_skin_tone":"woman_student_tone5",
"man_student_light_skin_tone":"man_student_tone1",
"man_student_medium_light_skin_tone":"man_student_tone2",
"man_student_medium_skin_tone":"man_student_tone3",
"man_student_medium_dark_skin_tone":"man_student_tone4",
"man_student_dark_skin_tone":"man_student_tone5",
"woman_singer_light_skin_tone":"woman_singer_tone1",
"woman_singer_medium_light_skin_tone":"woman_singer_tone2",
"woman_singer_medium_skin_tone":"woman_singer_tone3",
"woman_singer_medium_dark_skin_tone":"woman_singer_tone4",
"woman_singer_dark_skin_tone":"woman_singer_tone5",
"man_singer_light_skin_tone":"man_singer_tone1",
"man_singer_medium_light_skin_tone":"man_singer_tone2",
"man_singer_medium_skin_tone":"man_singer_tone3",
"man_singer_medium_dark_skin_tone":"man_singer_tone4",
"man_singer_dark_skin_tone":"man_singer_tone5",
"woman_teacher_light_skin_tone":"woman_teacher_tone1",
"woman_teacher_medium_light_skin_tone":"woman_teacher_tone2",
"woman_teacher_medium_skin_tone":"woman_teacher_tone3",
"woman_teacher_medium_dark_skin_tone":"woman_teacher_tone4",
"woman_teacher_dark_skin_tone":"woman_teacher_tone5",
"man_teacher_light_skin_tone":"man_teacher_tone1",
"man_teacher_medium_light_skin_tone":"man_teacher_tone2",
"man_teacher_medium_skin_tone":"man_teacher_tone3",
"man_teacher_medium_dark_skin_tone":"man_teacher_tone4",
"man_teacher_dark_skin_tone":"man_teacher_tone5",
"woman_factory_worker_light_skin_tone":"woman_factory_worker_tone1",
"woman_factory_worker_medium_light_skin_tone":"woman_factory_worker_tone2",
"woman_factory_worker_medium_skin_tone":"woman_factory_worker_tone3",
"woman_factory_worker_medium_dark_skin_tone":"woman_factory_worker_tone4",
"woman_factory_worker_dark_skin_tone":"woman_factory_worker_tone5",
"man_factory_worker_light_skin_tone":"man_factory_worker_tone1",
"man_factory_worker_medium_light_skin_tone":"man_factory_worker_tone2",
"man_factory_worker_medium_skin_tone":"man_factory_worker_tone3",
"man_factory_worker_medium_dark_skin_tone":"man_factory_worker_tone4",
"man_factory_worker_dark_skin_tone":"man_factory_worker_tone5",
"woman_technologist_light_skin_tone":"woman_technologist_tone1",
"woman_technologist_medium_light_skin_tone":"woman_technologist_tone2",
"woman_technologist_medium_skin_tone":"woman_technologist_tone3",
"woman_technologist_medium_dark_skin_tone":"woman_technologist_tone4",
"woman_technologist_dark_skin_tone":"woman_technologist_tone5",
"man_technologist_light_skin_tone":"man_technologist_tone1",
"man_technologist_medium_light_skin_tone":"man_technologist_tone2",
"man_technologist_medium_skin_tone":"man_technologist_tone3",
"man_technologist_medium_dark_skin_tone":"man_technologist_tone4",
"man_technologist_dark_skin_tone":"man_technologist_tone5",
"woman_office_worker_light_skin_tone":"woman_office_worker_tone1",
"woman_office_worker_medium_light_skin_tone":"woman_office_worker_tone2",
"woman_office_worker_medium_skin_tone":"woman_office_worker_tone3",
"woman_office_worker_medium_dark_skin_tone":"woman_office_worker_tone4",
"woman_office_worker_dark_skin_tone":"woman_office_worker_tone5",
"man_office_worker_light_skin_tone":"man_office_worker_tone1",
"man_office_worker_medium_light_skin_tone":"man_office_worker_tone2",
"man_office_worker_medium_skin_tone":"man_office_worker_tone3",
"man_office_worker_medium_dark_skin_tone":"man_office_worker_tone4",
"man_office_worker_dark_skin_tone":"man_office_worker_tone5",
"woman_mechanic_light_skin_tone":"woman_mechanic_tone1",
"woman_mechanic_medium_light_skin_tone":"woman_mechanic_tone2",
"woman_mechanic_medium_skin_tone":"woman_mechanic_tone3",
"woman_mechanic_medium_dark_skin_tone":"woman_mechanic_tone4",
"woman_mechanic_dark_skin_tone":"woman_mechanic_tone5",
"man_mechanic_light_skin_tone":"man_mechanic_tone1",
"man_mechanic_medium_light_skin_tone":"man_mechanic_tone2",
"man_mechanic_medium_skin_tone":"man_mechanic_tone3",
"man_mechanic_medium_dark_skin_tone":"man_mechanic_tone4",
"man_mechanic_dark_skin_tone":"man_mechanic_tone5",
"woman_scientist_light_skin_tone":"woman_scientist_tone1",
"woman_scientist_medium_light_skin_tone":"woman_scientist_tone2",
"woman_scientist_medium_skin_tone":"woman_scientist_tone3",
"woman_scientist_medium_dark_skin_tone":"woman_scientist_tone4",
"woman_scientist_dark_skin_tone":"woman_scientist_tone5",
"man_scientist_light_skin_tone":"man_scientist_tone1",
"man_scientist_medium_light_skin_tone":"man_scientist_tone2",
"man_scientist_medium_skin_tone":"man_scientist_tone3",
"man_scientist_medium_dark_skin_tone":"man_scientist_tone4",
"man_scientist_dark_skin_tone":"man_scientist_tone5",
"woman_artist_light_skin_tone":"woman_artist_tone1",
"woman_artist_medium_light_skin_tone":"woman_artist_tone2",
"woman_artist_medium_skin_tone":"woman_artist_tone3",
"woman_artist_medium_dark_skin_tone":"woman_artist_tone4",
"woman_artist_dark_skin_tone":"woman_artist_tone5",
"man_artist_light_skin_tone":"man_artist_tone1",
"man_artist_medium_light_skin_tone":"man_artist_tone2",
"man_artist_medium_skin_tone":"man_artist_tone3",
"man_artist_medium_dark_skin_tone":"man_artist_tone4",
"man_artist_dark_skin_tone":"man_artist_tone5",
"woman_firefighter_light_skin_tone":"woman_firefighter_tone1",
"woman_firefighter_medium_light_skin_tone":"woman_firefighter_tone2",
"woman_firefighter_medium_skin_tone":"woman_firefighter_tone3",
"woman_firefighter_medium_dark_skin_tone":"woman_firefighter_tone4",
"woman_firefighter_dark_skin_tone":"woman_firefighter_tone5",
"man_firefighter_light_skin_tone":"man_firefighter_tone1",
"man_firefighter_medium_light_skin_tone":"man_firefighter_tone2",
"man_firefighter_medium_skin_tone":"man_firefighter_tone3",
"man_firefighter_medium_dark_skin_tone":"man_firefighter_tone4",
"man_firefighter_dark_skin_tone":"man_firefighter_tone5",
"woman_pilot_light_skin_tone":"woman_pilot_tone1",
"woman_pilot_medium_light_skin_tone":"woman_pilot_tone2",
"woman_pilot_medium_skin_tone":"woman_pilot_tone3",
"woman_pilot_medium_dark_skin_tone":"woman_pilot_tone4",
"woman_pilot_dark_skin_tone":"woman_pilot_tone5",
"man_pilot_light_skin_tone":"man_pilot_tone1",
"man_pilot_medium_light_skin_tone":"man_pilot_tone2",
"man_pilot_medium_skin_tone":"man_pilot_tone3",
"man_pilot_medium_dark_skin_tone":"man_pilot_tone4",
"man_pilot_dark_skin_tone":"man_pilot_tone5",
"woman_astronaut_light_skin_tone":"woman_astronaut_tone1",
"woman_astronaut_medium_light_skin_tone":"woman_astronaut_tone2",
"woman_astronaut_medium_skin_tone":"woman_astronaut_tone3",
"woman_astronaut_medium_dark_skin_tone":"woman_astronaut_tone4",
"woman_astronaut_dark_skin_tone":"woman_astronaut_tone5",
"man_astronaut_light_skin_tone":"man_astronaut_tone1",
"man_astronaut_medium_light_skin_tone":"man_astronaut_tone2",
"man_astronaut_medium_skin_tone":"man_astronaut_tone3",
"man_astronaut_medium_dark_skin_tone":"man_astronaut_tone4",
"man_astronaut_dark_skin_tone":"man_astronaut_tone5",
"woman_judge_light_skin_tone":"woman_judge_tone1",
"woman_judge_medium_light_skin_tone":"woman_judge_tone2",
"woman_judge_medium_skin_tone":"woman_judge_tone3",
"woman_judge_medium_dark_skin_tone":"woman_judge_tone4",
"woman_judge_dark_skin_tone":"woman_judge_tone5",
"man_judge_light_skin_tone":"man_judge_tone1",
"man_judge_medium_light_skin_tone":"man_judge_tone2",
"man_judge_medium_skin_tone":"man_judge_tone3",
"man_judge_medium_dark_skin_tone":"man_judge_tone4",
"man_judge_dark_skin_tone":"man_judge_tone5",
"superhero_light_skin_tone":"superhero_tone1",
"superhero_medium_light_skin_tone":"superhero_tone2",
"superhero_medium_skin_tone":"superhero_tone3",
"superhero_medium_dark_skin_tone":"superhero_tone4",
"superhero_dark_skin_tone":"superhero_tone5",
"woman_superhero_light_skin_tone":"woman_superhero_tone1",
"woman_superhero_medium_light_skin_tone":"woman_superhero_tone2",
"woman_superhero_medium_skin_tone":"woman_superhero_tone3",
"woman_superhero_medium_dark_skin_tone":"woman_superhero_tone4",
"woman_superhero_dark_skin_tone":"woman_superhero_tone5",
"man_superhero_light_skin_tone":"man_superhero_tone1",
"man_superhero_medium_light_skin_tone":"man_superhero_tone2",
"man_superhero_medium_skin_tone":"man_superhero_tone3",
"man_superhero_medium_dark_skin_tone":"man_superhero_tone4",
"man_superhero_dark_skin_tone":"man_superhero_tone5",
"supervillain_light_skin_tone":"supervillain_tone1",
"supervillain_medium_light_skin_tone":"supervillain_tone2",
"supervillain_medium_skin_tone":"supervillain_tone3",
"supervillain_medium_dark_skin_tone":"supervillain_tone4",
"supervillain_dark_skin_tone":"supervillain_tone5",
"woman_supervillain_light_skin_tone":"woman_supervillain_tone1",
"woman_supervillain_medium_light_skin_tone":"woman_supervillain_tone2",
"woman_supervillain_medium_skin_tone":"woman_supervillain_tone3",
"woman_supervillain_medium_dark_skin_tone":"woman_supervillain_tone4",
"woman_supervillain_dark_skin_tone":"woman_supervillain_tone5",
"man_supervillain_light_skin_tone":"man_supervillain_tone1",
"man_supervillain_medium_light_skin_tone":"man_supervillain_tone2",
"man_supervillain_medium_skin_tone":"man_supervillain_tone3",
"man_supervillain_medium_dark_skin_tone":"man_supervillain_tone4",
"man_supervillain_dark_skin_tone":"man_supervillain_tone5",
"mage_light_skin_tone":"mage_tone1",
"mage_medium_light_skin_tone":"mage_tone2",
"mage_medium_skin_tone":"mage_tone3",
"mage_medium_dark_skin_tone":"mage_tone4",
"mage_dark_skin_tone":"mage_tone5",
"woman_mage_light_skin_tone":"woman_mage_tone1",
"woman_mage_medium_light_skin_tone":"woman_mage_tone2",
"woman_mage_medium_skin_tone":"woman_mage_tone3",
"woman_mage_medium_dark_skin_tone":"woman_mage_tone4",
"woman_mage_dark_skin_tone":"woman_mage_tone5",
"man_mage_light_skin_tone":"man_mage_tone1",
"man_mage_medium_light_skin_tone":"man_mage_tone2",
"man_mage_medium_skin_tone":"man_mage_tone3",
"man_mage_medium_dark_skin_tone":"man_mage_tone4",
"man_mage_dark_skin_tone":"man_mage_tone5",
"elf_light_skin_tone":"elf_tone1",
"elf_medium_light_skin_tone":"elf_tone2",
"elf_medium_skin_tone":"elf_tone3",
"elf_medium_dark_skin_tone":"elf_tone4",
"elf_dark_skin_tone":"elf_tone5",
"woman_elf_light_skin_tone":"woman_elf_tone1",
"woman_elf_medium_light_skin_tone":"woman_elf_tone2",
"woman_elf_medium_skin_tone":"woman_elf_tone3",
"woman_elf_medium_dark_skin_tone":"woman_elf_tone4",
"woman_elf_dark_skin_tone":"woman_elf_tone5",
"man_elf_light_skin_tone":"man_elf_tone1",
"man_elf_medium_light_skin_tone":"man_elf_tone2",
"man_elf_medium_skin_tone":"man_elf_tone3",
"man_elf_medium_dark_skin_tone":"man_elf_tone4",
"man_elf_dark_skin_tone":"man_elf_tone5",
"vampire_light_skin_tone":"vampire_tone1",
"vampire_medium_light_skin_tone":"vampire_tone2",
"vampire_medium_skin_tone":"vampire_tone3",
"vampire_medium_dark_skin_tone":"vampire_tone4",
"vampire_dark_skin_tone":"vampire_tone5",
"woman_vampire_light_skin_tone":"woman_vampire_tone1",
"woman_vampire_medium_light_skin_tone":"woman_vampire_tone2",
"woman_vampire_medium_skin_tone":"woman_vampire_tone3",
"woman_vampire_medium_dark_skin_tone":"woman_vampire_tone4",
"woman_vampire_dark_skin_tone":"woman_vampire_tone5",
"man_vampire_light_skin_tone":"man_vampire_tone1",
"man_vampire_medium_light_skin_tone":"man_vampire_tone2",
"man_vampire_medium_skin_tone":"man_vampire_tone3",
"man_vampire_medium_dark_skin_tone":"man_vampire_tone4",
"man_vampire_dark_skin_tone":"man_vampire_tone5",
"merperson_light_skin_tone":"merperson_tone1",
"merperson_medium_light_skin_tone":"merperson_tone2",
"merperson_medium_skin_tone":"merperson_tone3",
"merperson_medium_dark_skin_tone":"merperson_tone4",
"merperson_dark_skin_tone":"merperson_tone5",
"mermaid_light_skin_tone":"mermaid_tone1",
"mermaid_medium_light_skin_tone":"mermaid_tone2",
"mermaid_medium_skin_tone":"mermaid_tone3",
"mermaid_medium_dark_skin_tone":"mermaid_tone4",
"mermaid_dark_skin_tone":"mermaid_tone5",
"merman_light_skin_tone":"merman_tone1",
"merman_medium_light_skin_tone":"merman_tone2",
"merman_medium_skin_tone":"merman_tone3",
"merman_medium_dark_skin_tone":"merman_tone4",
"merman_dark_skin_tone":"merman_tone5",
"fairy_light_skin_tone":"fairy_tone1",
"fairy_medium_light_skin_tone":"fairy_tone2",
"fairy_medium_skin_tone":"fairy_tone3",
"fairy_medium_dark_skin_tone":"fairy_tone4",
"fairy_dark_skin_tone":"fairy_tone5",
"woman_fairy_light_skin_tone":"woman_fairy_tone1",
"woman_fairy_medium_light_skin_tone":"woman_fairy_tone2",
"woman_fairy_medium_skin_tone":"woman_fairy_tone3",
"woman_fairy_medium_dark_skin_tone":"woman_fairy_tone4",
"woman_fairy_dark_skin_tone":"woman_fairy_tone5",
"man_fairy_light_skin_tone":"man_fairy_tone1",
"man_fairy_medium_light_skin_tone":"man_fairy_tone2",
"man_fairy_medium_skin_tone":"man_fairy_tone3",
"man_fairy_medium_dark_skin_tone":"man_fairy_tone4",
"man_fairy_dark_skin_tone":"man_fairy_tone5",
"breast_feeding_light_skin_tone":"breast_feeding_tone1",
"breast_feeding_medium_light_skin_tone":"breast_feeding_tone2",
"breast_feeding_medium_skin_tone":"breast_feeding_tone3",
"breast_feeding_medium_dark_skin_tone":"breast_feeding_tone4",
"breast_feeding_dark_skin_tone":"breast_feeding_tone5",
"woman_bowing_light_skin_tone":"woman_bowing_tone1",
"woman_bowing_medium_light_skin_tone":"woman_bowing_tone2",
"woman_bowing_medium_skin_tone":"woman_bowing_tone3",
"woman_bowing_medium_dark_skin_tone":"woman_bowing_tone4",
"woman_bowing_dark_skin_tone":"woman_bowing_tone5",
"man_bowing_light_skin_tone":"man_bowing_tone1",
"man_bowing_medium_light_skin_tone":"man_bowing_tone2",
"man_bowing_medium_skin_tone":"man_bowing_tone3",
"man_bowing_medium_dark_skin_tone":"man_bowing_tone4",
"man_bowing_dark_skin_tone":"man_bowing_tone5",
"woman_tipping_hand_light_skin_tone":"woman_tipping_hand_tone1",
"woman_tipping_hand_medium_light_skin_tone":"woman_tipping_hand_tone2",
"woman_tipping_hand_medium_skin_tone":"woman_tipping_hand_tone3",
"woman_tipping_hand_medium_dark_skin_tone":"woman_tipping_hand_tone4",
"woman_tipping_hand_dark_skin_tone":"woman_tipping_hand_tone5",
"man_tipping_hand_light_skin_tone":"man_tipping_hand_tone1",
"man_tipping_hand_medium_light_skin_tone":"man_tipping_hand_tone2",
"man_tipping_hand_medium_skin_tone":"man_tipping_hand_tone3",
"man_tipping_hand_medium_dark_skin_tone":"man_tipping_hand_tone4",
"man_tipping_hand_dark_skin_tone":"man_tipping_hand_tone5",
"woman_gesturing_no_light_skin_tone":"woman_gesturing_no_tone1",
"woman_gesturing_no_medium_light_skin_tone":"woman_gesturing_no_tone2",
"woman_gesturing_no_medium_skin_tone":"woman_gesturing_no_tone3",
"woman_gesturing_no_medium_dark_skin_tone":"woman_gesturing_no_tone4",
"woman_gesturing_no_dark_skin_tone":"woman_gesturing_no_tone5",
"man_gesturing_no_light_skin_tone":"man_gesturing_no_tone1",
"man_gesturing_no_medium_light_skin_tone":"man_gesturing_no_tone2",
"man_gesturing_no_medium_skin_tone":"man_gesturing_no_tone3",
"man_gesturing_no_medium_dark_skin_tone":"man_gesturing_no_tone4",
"man_gesturing_no_dark_skin_tone":"man_gesturing_no_tone5",
"woman_gesturing_ok_light_skin_tone":"woman_gesturing_ok_tone1",
"woman_gesturing_ok_medium_light_skin_tone":"woman_gesturing_ok_tone2",
"woman_gesturing_ok_medium_skin_tone":"woman_gesturing_ok_tone3",
"woman_gesturing_ok_medium_dark_skin_tone":"woman_gesturing_ok_tone4",
"woman_gesturing_ok_dark_skin_tone":"woman_gesturing_ok_tone5",
"man_gesturing_ok_light_skin_tone":"man_gesturing_ok_tone1",
"man_gesturing_ok_medium_light_skin_tone":"man_gesturing_ok_tone2",
"man_gesturing_ok_medium_skin_tone":"man_gesturing_ok_tone3",
"man_gesturing_ok_medium_dark_skin_tone":"man_gesturing_ok_tone4",
"man_gesturing_ok_dark_skin_tone":"man_gesturing_ok_tone5",
"woman_raising_hand_light_skin_tone":"woman_raising_hand_tone1",
"woman_raising_hand_medium_light_skin_tone":"woman_raising_hand_tone2",
"woman_raising_hand_medium_skin_tone":"woman_raising_hand_tone3",
"woman_raising_hand_medium_dark_skin_tone":"woman_raising_hand_tone4",
"woman_raising_hand_dark_skin_tone":"woman_raising_hand_tone5",
"man_raising_hand_light_skin_tone":"man_raising_hand_tone1",
"man_raising_hand_medium_light_skin_tone":"man_raising_hand_tone2",
"man_raising_hand_medium_skin_tone":"man_raising_hand_tone3",
"man_raising_hand_medium_dark_skin_tone":"man_raising_hand_tone4",
"man_raising_hand_dark_skin_tone":"man_raising_hand_tone5",
"woman_facepalming_light_skin_tone":"woman_facepalming_tone1",
"woman_facepalming_medium_light_skin_tone":"woman_facepalming_tone2",
"woman_facepalming_medium_skin_tone":"woman_facepalming_tone3",
"woman_facepalming_medium_dark_skin_tone":"woman_facepalming_tone4",
"woman_facepalming_dark_skin_tone":"woman_facepalming_tone5",
"man_facepalming_light_skin_tone":"man_facepalming_tone1",
"man_facepalming_medium_light_skin_tone":"man_facepalming_tone2",
"man_facepalming_medium_skin_tone":"man_facepalming_tone3",
"man_facepalming_medium_dark_skin_tone":"man_facepalming_tone4",
"man_facepalming_dark_skin_tone":"man_facepalming_tone5",
"woman_shrugging_light_skin_tone":"woman_shrugging_tone1",
"woman_shrugging_medium_light_skin_tone":"woman_shrugging_tone2",
"woman_shrugging_medium_skin_tone":"woman_shrugging_tone3",
"woman_shrugging_medium_dark_skin_tone":"woman_shrugging_tone4",
"woman_shrugging_dark_skin_tone":"woman_shrugging_tone5",
"man_shrugging_light_skin_tone":"man_shrugging_tone1",
"man_shrugging_medium_light_skin_tone":"man_shrugging_tone2",
"man_shrugging_medium_skin_tone":"man_shrugging_tone3",
"man_shrugging_medium_dark_skin_tone":"man_shrugging_tone4",
"man_shrugging_dark_skin_tone":"man_shrugging_tone5",
"woman_pouting_light_skin_tone":"woman_pouting_tone1",
"woman_pouting_medium_light_skin_tone":"woman_pouting_tone2",
"woman_pouting_medium_skin_tone":"woman_pouting_tone3",
"woman_pouting_medium_dark_skin_tone":"woman_pouting_tone4",
"woman_pouting_dark_skin_tone":"woman_pouting_tone5",
"man_pouting_light_skin_tone":"man_pouting_tone1",
"man_pouting_medium_light_skin_tone":"man_pouting_tone2",
"man_pouting_medium_skin_tone":"man_pouting_tone3",
"man_pouting_medium_dark_skin_tone":"man_pouting_tone4",
"man_pouting_dark_skin_tone":"man_pouting_tone5",
"woman_frowning_light_skin_tone":"woman_frowning_tone1",
"woman_frowning_medium_light_skin_tone":"woman_frowning_tone2",
"woman_frowning_medium_skin_tone":"woman_frowning_tone3",
"woman_frowning_medium_dark_skin_tone":"woman_frowning_tone4",
"woman_frowning_dark_skin_tone":"woman_frowning_tone5",
"man_frowning_light_skin_tone":"man_frowning_tone1",
"man_frowning_medium_light_skin_tone":"man_frowning_tone2",
"man_frowning_medium_skin_tone":"man_frowning_tone3",
"man_frowning_medium_dark_skin_tone":"man_frowning_tone4",
"man_frowning_dark_skin_tone":"man_frowning_tone5",
"woman_getting_haircut_light_skin_tone":"woman_getting_haircut_tone1",
"woman_getting_haircut_medium_light_skin_tone":"woman_getting_haircut_tone2",
"woman_getting_haircut_medium_skin_tone":"woman_getting_haircut_tone3",
"woman_getting_haircut_medium_dark_skin_tone":"woman_getting_haircut_tone4",
"woman_getting_haircut_dark_skin_tone":"woman_getting_haircut_tone5",
"man_getting_haircut_light_skin_tone":"man_getting_haircut_tone1",
"man_getting_haircut_medium_light_skin_tone":"man_getting_haircut_tone2",
"man_getting_haircut_medium_skin_tone":"man_getting_haircut_tone3",
"man_getting_haircut_medium_dark_skin_tone":"man_getting_haircut_tone4",
"man_getting_haircut_dark_skin_tone":"man_getting_haircut_tone5",
"woman_getting_face_massage_light_skin_tone":"woman_getting_face_massage_tone1",
"woman_getting_face_massage_medium_light_skin_tone":"woman_getting_face_massage_tone2",
"woman_getting_face_massage_medium_skin_tone":"woman_getting_face_massage_tone3",
"woman_getting_face_massage_medium_dark_skin_tone":"woman_getting_face_massage_tone4",
"woman_getting_face_massage_dark_skin_tone":"woman_getting_face_massage_tone5",
"man_getting_face_massage_light_skin_tone":"man_getting_face_massage_tone1",
"man_getting_face_massage_medium_light_skin_tone":"man_getting_face_massage_tone2",
"man_getting_face_massage_medium_skin_tone":"man_getting_face_massage_tone3",
"man_getting_face_massage_medium_dark_skin_tone":"man_getting_face_massage_tone4",
"man_getting_face_massage_dark_skin_tone":"man_getting_face_massage_tone5",
"person_in_steamy_room_light_skin_tone":"person_in_steamy_room_tone1",
"person_in_steamy_room_medium_light_skin_tone":"person_in_steamy_room_tone2",
"person_in_steamy_room_medium_skin_tone":"person_in_steamy_room_tone3",
"person_in_steamy_room_medium_dark_skin_tone":"person_in_steamy_room_tone4",
"person_in_steamy_room_dark_skin_tone":"person_in_steamy_room_tone5",
"woman_in_steamy_room_light_skin_tone":"woman_in_steamy_room_tone1",
"woman_in_steamy_room_medium_light_skin_tone":"woman_in_steamy_room_tone2",
"woman_in_steamy_room_medium_skin_tone":"woman_in_steamy_room_tone3",
"woman_in_steamy_room_medium_dark_skin_tone":"woman_in_steamy_room_tone4",
"woman_in_steamy_room_dark_skin_tone":"woman_in_steamy_room_tone5",
"man_in_steamy_room_light_skin_tone":"man_in_steamy_room_tone1",
"man_in_steamy_room_medium_light_skin_tone":"man_in_steamy_room_tone2",
"man_in_steamy_room_medium_skin_tone":"man_in_steamy_room_tone3",
"man_in_steamy_room_medium_dark_skin_tone":"man_in_steamy_room_tone4",
"man_in_steamy_room_dark_skin_tone":"man_in_steamy_room_tone5",
"man_in_business_suit_levitating_tone1":"levitate_tone1",
"man_in_business_suit_levitating_light_skin_tone":"levitate_tone1",
"man_in_business_suit_levitating_tone2":"levitate_tone2",
"man_in_business_suit_levitating_medium_light_skin_tone":"levitate_tone2",
"man_in_business_suit_levitating_tone3":"levitate_tone3",
"man_in_business_suit_levitating_medium_skin_tone":"levitate_tone3",
"man_in_business_suit_levitating_tone4":"levitate_tone4",
"man_in_business_suit_levitating_medium_dark_skin_tone":"levitate_tone4",
"man_in_business_suit_levitating_tone5":"levitate_tone5",
"man_in_business_suit_levitating_dark_skin_tone":"levitate_tone5",
"woman_walking_light_skin_tone":"woman_walking_tone1",
"woman_walking_medium_light_skin_tone":"woman_walking_tone2",
"woman_walking_medium_skin_tone":"woman_walking_tone3",
"woman_walking_medium_dark_skin_tone":"woman_walking_tone4",
"woman_walking_dark_skin_tone":"woman_walking_tone5",
"man_walking_light_skin_tone":"man_walking_tone1",
"man_walking_medium_light_skin_tone":"man_walking_tone2",
"man_walking_medium_skin_tone":"man_walking_tone3",
"man_walking_medium_dark_skin_tone":"man_walking_tone4",
"man_walking_dark_skin_tone":"man_walking_tone5",
"woman_running_light_skin_tone":"woman_running_tone1",
"woman_running_medium_light_skin_tone":"woman_running_tone2",
"woman_running_medium_skin_tone":"woman_running_tone3",
"woman_running_medium_dark_skin_tone":"woman_running_tone4",
"woman_running_dark_skin_tone":"woman_running_tone5",
"man_running_light_skin_tone":"man_running_tone1",
"man_running_medium_light_skin_tone":"man_running_tone2",
"man_running_medium_skin_tone":"man_running_tone3",
"man_running_medium_dark_skin_tone":"man_running_tone4",
"man_running_dark_skin_tone":"man_running_tone5"
} }
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -8,6 +8,13 @@ module Gitlab ...@@ -8,6 +8,13 @@ module Gitlab
Gemojione.index.instance_variable_get(:@emoji_by_name) Gemojione.index.instance_variable_get(:@emoji_by_name)
end end
def emojis_by_category
Gemojione::Categories.all.values.flatten.flat_map do |emoji|
tone_emojis = (1..5).map { |i| Gemojione.index.find_by_name("#{emoji['name']}_tone#{i}") }
[emoji] + tone_emojis.compact
end
end
def emojis_by_moji def emojis_by_moji
Gemojione.index.instance_variable_get(:@emoji_by_moji) Gemojione.index.instance_variable_get(:@emoji_by_moji)
end end
......
# frozen_string_literal: true # frozen_string_literal: true
EMOJI_VERSION = "2"
namespace :gemojione do namespace :gemojione do
desc 'Generates Emoji SHA256 digests' desc 'Generates Emoji SHA256 digests'
task aliases: ['yarn:check', 'environment'] do task aliases: ['yarn:check', 'environment'] do
require 'json' require 'json'
aliases = {} aliases = {
basketball_player: "man_bouncing_ball",
basketball_player_tone1: "man_bouncing_ball_tone1",
basketball_player_tone2: "man_bouncing_ball_tone2",
basketball_player_tone3: "man_bouncing_ball_tone3",
basketball_player_tone4: "man_bouncing_ball_tone4",
basketball_player_tone5: "man_bouncing_ball_tone5"
}
index_file = File.join(Rails.root, 'fixtures', 'emojis', 'index.json') index_file = File.join(Rails.root, 'fixtures', 'emojis', 'index.json')
index = Gitlab::Json.parse(File.read(index_file)) index = Gitlab::Json.parse(File.read(index_file))
...@@ -36,7 +45,9 @@ namespace :gemojione do ...@@ -36,7 +45,9 @@ namespace :gemojione do
resultant_emoji_map = {} resultant_emoji_map = {}
resultant_emoji_map_new = {} resultant_emoji_map_new = {}
Gitlab::Emoji.emojis.each do |name, emoji_hash| Gitlab::Emoji.emojis_by_category.each do |emoji_hash|
name = emoji_hash['name']
# Ignore aliases # Ignore aliases
unless Gitlab::Emoji.emojis_aliases.key?(name) unless Gitlab::Emoji.emojis_aliases.key?(name)
fpath = File.join(dir, "#{emoji_hash['unicode']}.png") fpath = File.join(dir, "#{emoji_hash['unicode']}.png")
...@@ -74,7 +85,7 @@ namespace :gemojione do ...@@ -74,7 +85,7 @@ namespace :gemojione do
handle.write(Gitlab::Json.pretty_generate(resultant_emoji_map)) handle.write(Gitlab::Json.pretty_generate(resultant_emoji_map))
end end
out_new = File.join(Rails.root, 'public', '-', 'emojis', '1', 'emojis.json') out_new = File.join(Rails.root, 'public', '-', 'emojis', EMOJI_VERSION, 'emojis.json')
File.open(out_new, 'w') do |handle| File.open(out_new, 'w') do |handle|
handle.write(Gitlab::Json.pretty_generate(resultant_emoji_map_new)) handle.write(Gitlab::Json.pretty_generate(resultant_emoji_map_new))
end end
...@@ -101,22 +112,21 @@ namespace :gemojione do ...@@ -101,22 +112,21 @@ namespace :gemojione do
# Update these values to the width and height of the spritesheet when # Update these values to the width and height of the spritesheet when
# new emoji are added. # new emoji are added.
SPRITESHEET_WIDTH = 860 SPRITESHEET_WIDTH = 1080
SPRITESHEET_HEIGHT = 840 SPRITESHEET_HEIGHT = 1060
# Set up a map to rename image files # Set up a map to rename image files
emoji_unicode_string_to_name_map = {} emoji_unicode_string_to_name_map = {}
Gitlab::Emoji.emojis.each do |name, emoji_hash| Gitlab::Emoji.emojis.each do |name, emoji_hash|
# Ignore aliases # Ignore aliases
unless Gitlab::Emoji.emojis_aliases.key?(name) unless Gitlab::Emoji.emojis_aliases.key?(name)
emoji_unicode_string_to_name_map[emoji_hash['unicode']] = name emoji_unicode_string_to_name_map[emoji_hash['unicode'].downcase] = name
end end
end end
# Copy the Gemojione assets to the temporary folder for renaming # Copy the Gemojione assets to the temporary folder for renaming
emoji_dir = "app/assets/images/emoji" emoji_dir = "public/-/emojis/#{EMOJI_VERSION}"
FileUtils.rm_rf(emoji_dir) FileUtils.rm_rf(emoji_dir)
FileUtils.mkdir_p(emoji_dir, mode: 0700)
FileUtils.cp_r(File.join(Gemojione.images_path, '.'), emoji_dir) FileUtils.cp_r(File.join(Gemojione.images_path, '.'), emoji_dir)
Dir[File.join(emoji_dir, "**/*.png")].each do |png| Dir[File.join(emoji_dir, "**/*.png")].each do |png|
image_path = png image_path = png
...@@ -133,7 +143,7 @@ namespace :gemojione do ...@@ -133,7 +143,7 @@ namespace :gemojione do
end end
end end
style_path = Rails.root.join(*%w(app assets stylesheets framework emoji_sprites.scss)) style_path = Rails.root.join(*%w(app assets stylesheets emoji_sprites.scss))
# Combine the resized assets into a packed sprite and re-generate the SCSS # Combine the resized assets into a packed sprite and re-generate the SCSS
SpriteFactory.cssurl = "image-url('$IMAGE')" SpriteFactory.cssurl = "image-url('$IMAGE')"
...@@ -165,6 +175,7 @@ namespace :gemojione do ...@@ -165,6 +175,7 @@ namespace :gemojione do
height: #{SIZE}px; height: #{SIZE}px;
width: #{SIZE}px; width: #{SIZE}px;
/* stylelint-disable media-feature-name-no-vendor-prefix */
@media only screen and (-webkit-min-device-pixel-ratio: 2), @media only screen and (-webkit-min-device-pixel-ratio: 2),
only screen and (min--moz-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2),
only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (-o-min-device-pixel-ratio: 2/1),
...@@ -174,6 +185,7 @@ namespace :gemojione do ...@@ -174,6 +185,7 @@ namespace :gemojione do
background-image: image-url('emoji@2x.png'); background-image: image-url('emoji@2x.png');
background-size: #{SPRITESHEET_WIDTH}px #{SPRITESHEET_HEIGHT}px; background-size: #{SPRITESHEET_WIDTH}px #{SPRITESHEET_HEIGHT}px;
} }
/* stylelint-enable media-feature-name-no-vendor-prefix */
} }
CSS CSS
end end
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -212,11 +212,11 @@ RSpec.describe 'GFM autocomplete', :js do ...@@ -212,11 +212,11 @@ RSpec.describe 'GFM autocomplete', :js do
end end
it 'doesn\'t wrap for emoji values' do it 'doesn\'t wrap for emoji values' do
fill_in 'Comment', with: ':cartwheel_' fill_in 'Comment', with: ':thumb'
find_highlighted_autocomplete_item.click find_highlighted_autocomplete_item.click
expect(find_field('Comment').value).to have_text('cartwheel_tone1') expect(find_field('Comment').value).to have_text('thumbsdown')
end end
it 'doesn\'t open autocomplete after non-word character' do it 'doesn\'t open autocomplete after non-word character' do
......
...@@ -137,11 +137,11 @@ RSpec.describe 'User interacts with awards' do ...@@ -137,11 +137,11 @@ RSpec.describe 'User interacts with awards' do
page.within('.note-actions') do page.within('.note-actions') do
find('.note-emoji-button').click find('.note-emoji-button').click
end end
find('gl-emoji[data-name="8ball"]').click find('gl-emoji[data-name="grinning"]').click
wait_for_requests wait_for_requests
page.within('.note-awards') do page.within('.note-awards') do
expect(page).to have_emoji('8ball') expect(page).to have_emoji('grinning')
end end
expect(note.reload.award_emoji.size).to eq(2) expect(note.reload.award_emoji.size).to eq(2)
end end
......
...@@ -56,13 +56,13 @@ describe('gl_emoji', () => { ...@@ -56,13 +56,13 @@ describe('gl_emoji', () => {
'bomb emoji just with name attribute', 'bomb emoji just with name attribute',
'<gl-emoji data-name="bomb"></gl-emoji>', '<gl-emoji data-name="bomb"></gl-emoji>',
'<gl-emoji data-name="bomb" data-unicode-version="6.0" title="bomb">💣</gl-emoji>', '<gl-emoji data-name="bomb" data-unicode-version="6.0" title="bomb">💣</gl-emoji>',
'<gl-emoji data-name="bomb" data-unicode-version="6.0" title="bomb"><img class="emoji" title=":bomb:" alt=":bomb:" src="/-/emojis/1/bomb.png" width="20" height="20" align="absmiddle"></gl-emoji>', '<gl-emoji data-name="bomb" data-unicode-version="6.0" title="bomb"><img class="emoji" title=":bomb:" alt=":bomb:" src="/-/emojis/2/bomb.png" width="20" height="20" align="absmiddle"></gl-emoji>',
], ],
[ [
'bomb emoji with name attribute and unicode version', 'bomb emoji with name attribute and unicode version',
'<gl-emoji data-name="bomb" data-unicode-version="6.0">💣</gl-emoji>', '<gl-emoji data-name="bomb" data-unicode-version="6.0">💣</gl-emoji>',
'<gl-emoji data-name="bomb" data-unicode-version="6.0">💣</gl-emoji>', '<gl-emoji data-name="bomb" data-unicode-version="6.0">💣</gl-emoji>',
'<gl-emoji data-name="bomb" data-unicode-version="6.0"><img class="emoji" title=":bomb:" alt=":bomb:" src="/-/emojis/1/bomb.png" width="20" height="20" align="absmiddle"></gl-emoji>', '<gl-emoji data-name="bomb" data-unicode-version="6.0"><img class="emoji" title=":bomb:" alt=":bomb:" src="/-/emojis/2/bomb.png" width="20" height="20" align="absmiddle"></gl-emoji>',
], ],
[ [
'bomb emoji with sprite fallback', 'bomb emoji with sprite fallback',
...@@ -80,7 +80,7 @@ describe('gl_emoji', () => { ...@@ -80,7 +80,7 @@ describe('gl_emoji', () => {
'invalid emoji', 'invalid emoji',
'<gl-emoji data-name="invalid_emoji"></gl-emoji>', '<gl-emoji data-name="invalid_emoji"></gl-emoji>',
'<gl-emoji data-name="grey_question" data-unicode-version="6.0" title="white question mark ornament">❔</gl-emoji>', '<gl-emoji data-name="grey_question" data-unicode-version="6.0" title="white question mark ornament">❔</gl-emoji>',
'<gl-emoji data-name="grey_question" data-unicode-version="6.0" title="white question mark ornament"><img class="emoji" title=":grey_question:" alt=":grey_question:" src="/-/emojis/1/grey_question.png" width="20" height="20" align="absmiddle"></gl-emoji>', '<gl-emoji data-name="grey_question" data-unicode-version="6.0" title="white question mark ornament"><img class="emoji" title=":grey_question:" alt=":grey_question:" src="/-/emojis/2/grey_question.png" width="20" height="20" align="absmiddle"></gl-emoji>',
], ],
])('%s', (name, markup, withEmojiSupport, withoutEmojiSupport) => { ])('%s', (name, markup, withEmojiSupport, withoutEmojiSupport) => {
it(`renders correctly with emoji support`, async () => { it(`renders correctly with emoji support`, async () => {
......
...@@ -28,7 +28,7 @@ describe('Unicode Support Map', () => { ...@@ -28,7 +28,7 @@ describe('Unicode Support Map', () => {
expect(getArgs[1][0]).toBe('gl-emoji-user-agent'); expect(getArgs[1][0]).toBe('gl-emoji-user-agent');
expect(setArgs[0][0]).toBe('gl-emoji-version'); expect(setArgs[0][0]).toBe('gl-emoji-version');
expect(setArgs[0][1]).toBe('0.2.0'); expect(setArgs[0][1]).toBe('0.3.0');
expect(setArgs[1][0]).toBe('gl-emoji-user-agent'); expect(setArgs[1][0]).toBe('gl-emoji-user-agent');
expect(setArgs[1][1]).toBe(navigator.userAgent); expect(setArgs[1][1]).toBe(navigator.userAgent);
expect(setArgs[2][0]).toBe('gl-emoji-unicode-support-map'); expect(setArgs[2][0]).toBe('gl-emoji-unicode-support-map');
......
...@@ -183,14 +183,14 @@ describe('User Popover Component', () => { ...@@ -183,14 +183,14 @@ describe('User Popover Component', () => {
it('should show message and emoji', () => { it('should show message and emoji', () => {
const user = { const user = {
...DEFAULT_PROPS.user, ...DEFAULT_PROPS.user,
status: { emoji: 'basketball_player', message_html: 'Hello World' }, status: { emoji: 'thumbsup', message_html: 'Hello World' },
}; };
createWrapper({ user }); createWrapper({ user });
expect(findUserStatus().exists()).toBe(true); expect(findUserStatus().exists()).toBe(true);
expect(wrapper.text()).toContain('Hello World'); expect(wrapper.text()).toContain('Hello World');
expect(wrapper.html()).toContain('<gl-emoji data-name="basketball_player"'); expect(wrapper.html()).toContain('<gl-emoji data-name="thumbsup"');
}); });
it('hides the div when status is null', () => { it('hides the div when status is null', () => {
......
...@@ -16,6 +16,19 @@ RSpec.describe Gitlab::Emoji do ...@@ -16,6 +16,19 @@ RSpec.describe Gitlab::Emoji do
end end
end end
describe '.emojis_by_category' do
it 'contains emojis with tones' do
emojis = described_class.emojis_by_category
angel_index = emojis.find_index { |e| e['name'] == 'angel' }
angel_tones = emojis[angel_index..angel_index + 5].map { |e| e['name'] }
expect(angel_tones).to eq(
%w[angel angel_tone1 angel_tone2 angel_tone3 angel_tone4 angel_tone5]
)
end
end
describe '.emojis_by_moji' do describe '.emojis_by_moji' do
it 'return emojis by moji' do it 'return emojis by moji' do
current_emojis_by_moji = described_class.emojis_by_moji current_emojis_by_moji = described_class.emojis_by_moji
......
...@@ -4388,10 +4388,10 @@ emoji-regex@^8.0.0: ...@@ -4388,10 +4388,10 @@ emoji-regex@^8.0.0:
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
emoji-unicode-version@^0.2.1: emoji-unicode-version@^0.3.0:
version "0.2.1" version "0.3.0"
resolved "https://registry.yarnpkg.com/emoji-unicode-version/-/emoji-unicode-version-0.2.1.tgz#0ebf3666b5414097971d34994e299fce75cdbafc" resolved "https://registry.yarnpkg.com/emoji-unicode-version/-/emoji-unicode-version-0.3.0.tgz#5cfc511d4a7ccacf3cd02887909a5911b6dde5ec"
integrity sha1-Dr82ZrVBQJeXHTSZTimfznXNuvw= integrity sha512-DCHEeGr11QbUy9HMZ70f/NsOJp+cqzMktO5tBMJhX393ZphHDH5WAp3CzZmMawRxfc4Opr1GZTAwWtSGC8/flA==
emojis-list@^3.0.0: emojis-list@^3.0.0:
version "3.0.0" version "3.0.0"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment