diff --git a/src/python/move_emojis/scripts/generate_code.py b/src/python/move_emojis/scripts/generate_code.py
index c65ca658c..0119972f0 100644
--- a/src/python/move_emojis/scripts/generate_code.py
+++ b/src/python/move_emojis/scripts/generate_code.py
@@ -29,11 +29,11 @@
)
TYPESCRIPT_SYMBOL_EMOJIS_PATH = os.path.join(
TYPESCRIPT_PATH_DIR,
- "symbol-emojis.json",
+ "symbol-emojis.ts",
)
TYPESCRIPT_CHAT_EMOJIS_PATH = os.path.join(
TYPESCRIPT_PATH_DIR,
- "chat-emojis.json",
+ "chat-emojis.ts",
)
TYPESCRIPT_SYMBOL_NAMES_PATH = os.path.join(
TYPESCRIPT_PATH_DIR,
@@ -125,11 +125,11 @@ def ensure_write_to_file(data: str | dict[str, Any] | list[str], fp: str):
fp_obj = pathlib.Path(fp)
pathlib.Path(fp_obj.parent).mkdir(exist_ok=True)
- with open(fp, "w") as outfile:
+ with open(fp, "w", encoding="utf-8") as outfile:
if isinstance(data, str):
_ = outfile.write(data)
else:
- json.dump(data, outfile, indent=2)
+ json.dump(data, outfile, indent=2, ensure_ascii=False)
if __name__ == "__main__":
@@ -159,12 +159,8 @@ def ensure_write_to_file(data: str | dict[str, Any] | list[str], fp: str):
ensure_write_to_file(symbol_emojis, SYMBOL_EMOJIS_ALL_DATA_PATH)
typescript_symbol_emojis = as_emoji_to_name_dict(symbol_emojis)
typescript_chat_emojis = as_emoji_to_name_dict(extended_emojis)
- typescript_symbol_names = {k: None for k in typescript_symbol_emojis.values()}
- typescript_chat_names = {k: None for k in typescript_chat_emojis.values()}
ensure_write_to_file(typescript_symbol_emojis, TYPESCRIPT_SYMBOL_EMOJIS_PATH)
- ensure_write_to_file(typescript_symbol_names, TYPESCRIPT_SYMBOL_NAMES_PATH)
ensure_write_to_file(typescript_chat_emojis, TYPESCRIPT_CHAT_EMOJIS_PATH)
- ensure_write_to_file(typescript_chat_names, TYPESCRIPT_CHAT_NAMES_PATH)
# The rust processor uses the `symbol-emojis.json` data at build time, so if the
# path for the directory exists, output the data there as well.
if pathlib.Path(RUST_JSON_PATH).parent.exists():
diff --git a/src/typescript/frontend/src/components/pages/home/components/table-card/LinkOrAnimationTrigger.tsx b/src/typescript/frontend/src/components/pages/home/components/table-card/LinkOrAnimationTrigger.tsx
index 26a71d45b..aec2c0036 100644
--- a/src/typescript/frontend/src/components/pages/home/components/table-card/LinkOrAnimationTrigger.tsx
+++ b/src/typescript/frontend/src/components/pages/home/components/table-card/LinkOrAnimationTrigger.tsx
@@ -1,59 +1,17 @@
import { type SymbolEmojiData } from "@sdk/emoji_data/types";
-import { useGenerateEvent } from "../../test-generate-event/use-generate-event";
import { type PropsWithChildren } from "react";
import { ROUTES } from "router/routes";
import { emojiNamesToPath } from "utils/pathname-helpers";
import Link from "next/link";
-import { VERCEL } from "@sdk/const";
import React from "react";
-/**
- * To facilitate easy visual testing, we swap out the link on the grid table card with a div that triggers a
- * random event when clicked. Note that the test click div will never render in Vercel build mode or in
- * production. You also have to set a specific environment variable to true.
- *
- * We put this component in the grid table card component so that when the user clicks on the card, it will
- * trigger the event (or navigate to the market page if not in test mode).
- *
- * @returns {JSX.Element} The link that goes to the market page, or if in test, the div that emulates triggering a
- * random event in our event state store.
- */
-export const GenerateEventComponent = ({
+export const EmojiMarketPageLink = ({
emojis,
- marketID,
...props
-}: { emojis: SymbolEmojiData[]; marketID: number } & PropsWithChildren) => {
- // Note that without `stateOnly: true`, the event could conflict with other events. This may cause
- // visual artifacts that won't actually appear with real data.
- const generateEvent = useGenerateEvent({ marketID, emojis, stateOnly: true });
+}: { emojis: SymbolEmojiData[] } & PropsWithChildren) => (
+ x.name))}`}>
+ {props.children}
+
+);
- return (
- <>
-
{props.children}
- >
- );
-};
-
-export const LinkOrAnimationTrigger = ({
- emojis,
- marketID,
- ...props
-}: { emojis: SymbolEmojiData[]; marketID: number } & PropsWithChildren) => {
- return (
- <>
- {VERCEL ||
- process.env.NODE_ENV === "production" ||
- process.env.NEXT_PUBLIC_ANIMATION_TEST !== "true" ? (
- x.name))}`}>
- {props.children}
-
- ) : (
-
- {props.children}
-
- )}
- >
- );
-};
-
-export default React.memo(LinkOrAnimationTrigger);
+export default React.memo(EmojiMarketPageLink);
diff --git a/src/typescript/frontend/src/components/pages/home/components/table-card/TableCard.tsx b/src/typescript/frontend/src/components/pages/home/components/table-card/TableCard.tsx
index 52c965075..3ebca81d4 100644
--- a/src/typescript/frontend/src/components/pages/home/components/table-card/TableCard.tsx
+++ b/src/typescript/frontend/src/components/pages/home/components/table-card/TableCard.tsx
@@ -23,7 +23,7 @@ import {
LAYOUT_DURATION,
tableCardVariants,
} from "./animation-variants/grid-variants";
-import LinkOrAnimationTrigger from "./LinkOrAnimationTrigger";
+import EmojiMarketPageLink from "./LinkOrAnimationTrigger";
import { type SymbolEmojiData } from "@sdk/emoji_data";
import { Emoji } from "utils/emoji";
import { SortMarketsBy } from "@sdk/indexer-v2/types/common";
@@ -205,7 +205,7 @@ const TableCard = ({
}}
{...props}
>
-
+
-
+
);
};
diff --git a/src/typescript/frontend/src/components/pages/home/test-generate-event/event-generator.ts b/src/typescript/frontend/src/components/pages/home/test-generate-event/event-generator.ts
deleted file mode 100644
index 406ae5ffb..000000000
--- a/src/typescript/frontend/src/components/pages/home/test-generate-event/event-generator.ts
+++ /dev/null
@@ -1,358 +0,0 @@
-import {
- Ed25519Account,
- AccountAddress,
- type AccountAddressInput,
- type Uint8,
-} from "@aptos-labs/ts-sdk";
-import {
- toEmojicoinEvent,
- type Types,
- type AnyNumberString,
- type AnyEmojicoinEvent,
-} from "@sdk-types";
-import { triggerEnumToRawTrigger, Trigger } from "@sdk/const";
-import { getRandomSymbolEmoji, type EmojicoinSymbol, generateRandomSymbol } from "@sdk/emoji_data";
-import { getEmojicoinData } from "@sdk/markets/utils";
-import type JsonTypes from "@sdk/types/json-types";
-import { STRUCT_STRINGS } from "@sdk/utils";
-import { INTEGRATOR_ADDRESS, INTEGRATOR_FEE_RATE_BPS } from "lib/env";
-import Big from "big.js";
-import { getEventsAsProcessorModels } from "@sdk/mini-processor";
-import { createEmptyEvents, type Events } from "@sdk/emojicoin_dot_fun/events";
-
-/**
- * Note that this data is generated solely for animation purposes. It isn't logically consistent
- * and a lot of the fields are incorrect or inconsistent in terms of what could actually exist
- * on-chain.
- */
-
-type AnimationTriggers =
- | Trigger.MarketRegistration
- | Trigger.SwapBuy
- | Trigger.SwapSell
- | Trigger.ProvideLiquidity
- | Trigger.RemoveLiquidity
- | Trigger.Chat;
-
-const getRandomAnimationTrigger = () => {
- const triggers = [
- Trigger.MarketRegistration,
- Trigger.SwapBuy,
- Trigger.SwapSell,
- Trigger.ProvideLiquidity,
- Trigger.RemoveLiquidity,
- Trigger.Chat,
- ] as const;
- return triggers[Math.floor(Math.random() * triggers.length)];
-};
-
-const triggerToStructString = (trigger: AnimationTriggers) => {
- if (trigger === Trigger.MarketRegistration) return STRUCT_STRINGS.MarketRegistrationEvent;
- if (trigger === Trigger.SwapBuy) return STRUCT_STRINGS.SwapEvent;
- if (trigger === Trigger.SwapSell) return STRUCT_STRINGS.SwapEvent;
- if (trigger === Trigger.ProvideLiquidity) return STRUCT_STRINGS.LiquidityEvent;
- if (trigger === Trigger.RemoveLiquidity) return STRUCT_STRINGS.LiquidityEvent;
- if (trigger === Trigger.Chat) return STRUCT_STRINGS.ChatEvent;
- throw new Error(`Invalid trigger: ${trigger}`);
-};
-
-export type RandomEventArgs = {
- marketID: AnyNumberString;
- time?: AnyNumberString;
- marketNonce?: AnyNumberString;
- emojis?: EmojicoinSymbol;
- trigger?: AnimationTriggers;
- version?: AnyNumberString;
-};
-
-let nonce = 0;
-
-export const generateRandomEvent = ({
- marketID,
- version,
- time = Date.now() * 1000,
- marketNonce = nonce++,
- emojis = generateRandomSymbol().emojis,
- trigger = getRandomAnimationTrigger(),
-}: RandomEventArgs) => {
- const args = {
- marketID,
- time,
- marketNonce,
- emojis,
- };
- const eventType = triggerToStructString(trigger);
- const events: Events = createEmptyEvents();
- const t = eventType;
- const v = Number(version);
- let ev: AnyEmojicoinEvent;
- switch (trigger) {
- case Trigger.MarketRegistration:
- ev = toEmojicoinEvent(t, generateMarketRegistrationJSON(args), v);
- events.marketRegistrationEvents.push(ev as Types["MarketRegistrationEvent"]);
- break;
- case Trigger.SwapBuy:
- ev = toEmojicoinEvent(t, generateSwapJSON({ ...args, isSell: false }), v);
- events.swapEvents.push(ev as Types["SwapEvent"]);
- break;
- case Trigger.SwapSell:
- ev = toEmojicoinEvent(t, generateSwapJSON({ ...args, isSell: true }), v);
- events.swapEvents.push(ev as Types["SwapEvent"]);
- break;
- case Trigger.ProvideLiquidity:
- ev = toEmojicoinEvent(t, generateLiquidityJSON({ ...args, liquidityProvided: true }), v);
- events.liquidityEvents.push(ev as Types["LiquidityEvent"]);
- break;
- case Trigger.RemoveLiquidity:
- ev = toEmojicoinEvent(t, generateLiquidityJSON({ ...args, liquidityProvided: false }), v);
- events.liquidityEvents.push(ev as Types["LiquidityEvent"]);
- break;
- case Trigger.Chat:
- ev = toEmojicoinEvent(t, generateChatJSON(args), v);
- events.chatEvents.push(ev as Types["ChatEvent"]);
- break;
- default:
- throw new Error(`Invalid trigger: ${trigger}`);
- }
- const stateJSON = generateStateJSON({ ...args, trigger: triggerEnumToRawTrigger(trigger) });
- const stateEvent = toEmojicoinEvent(
- STRUCT_STRINGS.StateEvent,
- stateJSON,
- Number(version)
- ) as Types["StateEvent"];
- events.stateEvents.push(stateEvent);
-
- const models = getEventsAsProcessorModels(events, {
- sender: "0x0123",
- entryFunction: "0x1234::some_contract::function",
- version: BigInt(version ?? 7777777),
- time: 0n,
- });
-
- const triggeringEvent = (() => {
- switch (trigger) {
- case Trigger.MarketRegistration:
- return models.marketRegistrationEvents.pop();
- case Trigger.SwapBuy:
- return models.swapEvents.pop();
- case Trigger.SwapSell:
- return models.swapEvents.pop();
- case Trigger.ProvideLiquidity:
- return models.liquidityEvents.pop();
- case Trigger.RemoveLiquidity:
- return models.liquidityEvents.pop();
- case Trigger.Chat:
- return models.chatEvents.pop();
- default:
- throw new Error(`Invalid trigger: ${trigger}`);
- }
- })();
-
- const stateEventModel = models.marketLatestStateEvents.pop();
-
- if (!triggeringEvent || !stateEventModel) {
- throw new Error("Something went wrong and the events were parsed incorrectly.");
- }
-
- return {
- triggeringEvent,
- stateEvent: stateEventModel,
- };
-};
-
-const generateMarketRegistrationJSON = ({
- marketID,
- emojis,
- time,
- registrant = AccountAddress.from(Ed25519Account.generate().accountAddress),
-}: {
- marketID: AnyNumberString;
- emojis: EmojicoinSymbol;
- time: AnyNumberString;
- registrant?: AccountAddressInput;
-}): JsonTypes["MarketRegistrationEvent"] => {
- const { marketAddress, symbolBytes } = getEmojicoinData(emojis);
- return {
- integrator: INTEGRATOR_ADDRESS,
- integrator_fee: "0",
- market_metadata: {
- emoji_bytes: symbolBytes,
- market_address: marketAddress.toString(),
- market_id: marketID.toString(),
- },
- registrant: AccountAddress.from(registrant).toString(),
- time: time.toString(),
- };
-};
-
-const generateLiquidityJSON = ({
- marketID,
- marketNonce,
- time = Date.now() * 1000,
- liquidityProvided,
-}: {
- marketID: AnyNumberString;
- marketNonce: AnyNumberString;
- time?: AnyNumberString;
- liquidityProvided: boolean;
-}): JsonTypes["LiquidityEvent"] => ({
- base_amount: "1524336998",
- liquidity_provided: liquidityProvided,
- lp_coin_amount: "1212122424",
- market_id: marketID.toString(),
- market_nonce: marketNonce.toString(),
- base_donation_claim_amount: "0",
- quote_donation_claim_amount: "0",
- provider: "0xbad225596d685895aa64d92f4f0e14d2f9d8075d3b8adf1e90ae6037f1fcbabe",
- quote_amount: "1200000000",
- time: time.toString(),
-});
-
-const generateStateJSON = ({
- marketID,
- marketNonce,
- trigger,
- emojis,
- time = Date.now() * 1000,
- lastSwapNonce = marketNonce,
- lastSwapTime = Date.now() * 1000,
- isSell = Math.random() > 0.5,
-}: {
- marketID: AnyNumberString;
- marketNonce: AnyNumberString;
- trigger: Uint8;
- emojis: EmojicoinSymbol;
- time?: AnyNumberString;
- lastSwapNonce?: AnyNumberString;
- lastSwapTime?: AnyNumberString;
- isSell?: boolean;
-}): JsonTypes["StateEvent"] => {
- const { marketAddress, symbolBytes } = getEmojicoinData(emojis);
- return {
- clamm_virtual_reserves: {
- base: "49000000000000000",
- quote: "400000000000",
- },
- cpamm_real_reserves: {
- base: "0",
- quote: "0",
- },
- cumulative_stats: {
- base_volume: "0",
- integrator_fees: "100000000",
- n_chat_messages: "3",
- n_swaps: "0",
- pool_fees_base: "0",
- pool_fees_quote: "0",
- quote_volume: "0",
- },
- instantaneous_stats: {
- fully_diluted_value: "367346938775",
- market_cap: "0",
- total_quote_locked: "0",
- total_value_locked: "0",
- },
- last_swap: {
- avg_execution_price_q64: "0",
- base_volume: "0",
- is_sell: isSell,
- nonce: lastSwapNonce.toString(),
- quote_volume: "0",
- time: lastSwapTime.toString(),
- },
- lp_coin_supply: "0",
- market_metadata: {
- emoji_bytes: symbolBytes,
- market_address: marketAddress.toString(),
- market_id: marketID.toString(),
- },
- state_metadata: {
- bump_time: time.toString(),
- market_nonce: marketNonce.toString(),
- trigger,
- },
- };
-};
-
-const generateSwapJSON = ({
- isSell,
- marketID,
- marketNonce,
- inputAmount = Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(),
- time = Date.now() * 1000,
- swapper = AccountAddress.from(Ed25519Account.generate().accountAddress),
- resultsInStateTransition = false,
- startsInBondingCurve = true,
-}: {
- isSell: boolean;
- marketID: AnyNumberString;
- marketNonce: AnyNumberString;
- inputAmount?: AnyNumberString;
- time?: AnyNumberString;
- resultsInStateTransition?: boolean;
- startsInBondingCurve?: boolean;
- swapper?: AccountAddressInput;
-}): JsonTypes["SwapEvent"] => {
- return {
- // The ratios here are based on a random swap in the contract generated on-chain.
- avg_execution_price_q64: Big(153481808316888)
- .div(17302124)
- .mul(inputAmount.toString())
- .round()
- .toString(),
- // prettier-ignore
- base_volume: Big(2079515851811)
- .div(17302124)
- .mul(inputAmount.toString())
- .round()
- .toString(),
- input_amount: inputAmount.toString(),
- integrator: INTEGRATOR_ADDRESS,
- integrator_fee: "0",
- integrator_fee_rate_bps: INTEGRATOR_FEE_RATE_BPS,
- is_sell: isSell,
- market_id: marketID.toString(),
- market_nonce: marketNonce.toString(),
- net_proceeds: "2079515851811",
- pool_fee: "0",
- quote_volume: "17302124",
- results_in_state_transition: resultsInStateTransition,
- starts_in_bonding_curve: startsInBondingCurve,
- swapper: AccountAddress.from(swapper).toString(),
- time: time.toString(),
- balance_as_fraction_of_circulating_supply_before_q64: "0",
- balance_as_fraction_of_circulating_supply_after_q64: "0",
- };
-};
-
-const generateChatJSON = ({
- marketID,
- time = Date.now() * 1000,
- marketNonce,
- emojis,
- user = AccountAddress.from(Ed25519Account.generate().accountAddress),
-}: {
- marketID: AnyNumberString;
- marketNonce: AnyNumberString;
- user?: AccountAddressInput;
- emojis: EmojicoinSymbol;
- time?: AnyNumberString;
-}): JsonTypes["ChatEvent"] => {
- const { marketAddress, symbolBytes } = getEmojicoinData(emojis);
- return {
- balance_as_fraction_of_circulating_supply_q64: "0",
- circulating_supply: "0",
- emit_market_nonce: marketNonce.toString(),
- emit_time: time.toString(),
- market_metadata: {
- emoji_bytes: symbolBytes,
- market_address: marketAddress.toString(),
- market_id: marketID.toString(),
- },
- message: Array.from({ length: Math.random() * 10 })
- .map(() => getRandomSymbolEmoji().emoji)
- .join(""),
- user: AccountAddress.from(user).toString(),
- user_emojicoin_balance: "0",
- };
-};
diff --git a/src/typescript/frontend/src/components/pages/home/test-generate-event/use-generate-event.ts b/src/typescript/frontend/src/components/pages/home/test-generate-event/use-generate-event.ts
deleted file mode 100644
index a95710ee3..000000000
--- a/src/typescript/frontend/src/components/pages/home/test-generate-event/use-generate-event.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { useEventStore } from "context/event-store-context";
-import { generateRandomEvent, type RandomEventArgs } from "./event-generator";
-
-/**
- * Use this hook to generate a random event and store it in state on the client.
- * We can use this to drive and debug animations for visual testing purposes.
- */
-export const useGenerateEvent = (args: RandomEventArgs & { stateOnly?: boolean }) => {
- const pushEvent = useEventStore((s) => s.pushEventFromClient);
-
- const { triggeringEvent, stateEvent } = generateRandomEvent({ ...args, emojis: undefined });
-
- return () => {
- pushEvent(triggeringEvent);
- if (!args.stateOnly) {
- pushEvent(stateEvent);
- }
- };
-};
diff --git a/src/typescript/frontend/src/components/pages/launch-emojicoin/ClientLaunchEmojicoinPage.tsx b/src/typescript/frontend/src/components/pages/launch-emojicoin/ClientLaunchEmojicoinPage.tsx
index 0eb3c9fb6..1c8b1469c 100644
--- a/src/typescript/frontend/src/components/pages/launch-emojicoin/ClientLaunchEmojicoinPage.tsx
+++ b/src/typescript/frontend/src/components/pages/launch-emojicoin/ClientLaunchEmojicoinPage.tsx
@@ -6,8 +6,6 @@ import { startTransition, useCallback, useEffect, useRef, useState } from "react
import { useSearchParams } from "next/navigation";
import { getEmojisInString } from "@sdk/emoji_data";
import { useAptos } from "context/wallet-context/AptosContextProvider";
-import { revalidateTagAction } from "lib/queries/cache-utils/revalidate";
-import { TAGS } from "lib/queries/cache-utils/tags";
import { ROUTES } from "router/routes";
import { useRouter } from "next/navigation";
import path from "path";
@@ -69,14 +67,6 @@ const ClientLaunchEmojicoinPage = () => {
const handleLoading = useCallback(async () => {
const marketRegistrationEvent = lastResponse.current;
if (marketRegistrationEvent) {
- // NOTE: revalidateTagAction may cause a flicker in the loading animation because the server
- // rerenders and sends the RSC components again. To avoid this we'll probably need to finish the animation
- // orchestration with a different animation or cover it up somehow, otherwise I'm not sure how to fix it in a
- // clean way.
-
- // Revalidate the registered markets tag.
- revalidateTagAction(TAGS.RegisteredMarkets);
-
startTransition(() => {
// Parse the emojis from the market registration event.
// We do this in case the emojis are somehow cleared before the response is received. This ensures that
diff --git a/src/typescript/frontend/src/context/providers.tsx b/src/typescript/frontend/src/context/providers.tsx
index fb39e3310..deda0bb23 100644
--- a/src/typescript/frontend/src/context/providers.tsx
+++ b/src/typescript/frontend/src/context/providers.tsx
@@ -69,9 +69,6 @@ const ThemedApp = ({ children }) => {
[]
);
- // Load the data from the emoji picker library and then extract the valid chat emojis from it.
- // This is why it's not necessary to build/import a `chat-emojis.json` set, even though there is `symbol-emojis.json`.
- // NOTE: We don't verify that the length of this set is equal to the number of valid chat emojis in the Move contract.
useEffect(() => {
data.then((d) => {
init({ set: "native", data: d });
diff --git a/src/typescript/frontend/src/context/wallet-context/AptosContextProvider.tsx b/src/typescript/frontend/src/context/wallet-context/AptosContextProvider.tsx
index bda443eb0..d52c4493e 100644
--- a/src/typescript/frontend/src/context/wallet-context/AptosContextProvider.tsx
+++ b/src/typescript/frontend/src/context/wallet-context/AptosContextProvider.tsx
@@ -31,13 +31,13 @@ import {
import { useEventStore } from "context/event-store-context";
import { type TypeTagInput } from "@sdk/emojicoin_dot_fun";
import { DEFAULT_TOAST_CONFIG } from "const";
-import { sleep, UnitOfTime } from "@sdk/utils";
+import { sleep } from "@sdk/utils";
import { useWalletBalance } from "lib/hooks/queries/use-wallet-balance";
import {
getAptBalanceFromChanges,
getCoinBalanceFromChanges,
} from "@sdk/utils/parse-changes-for-balances";
-import { getEventsAsProcessorModelsFromResponse } from "@sdk/mini-processor";
+import { getEventsAsProcessorModelsFromResponse } from "@sdk/indexer-v2/mini-processor";
import { emoji } from "utils";
import useIsUserGeoblocked from "@hooks/use-is-user-geoblocked";
import { getAptosClient } from "@sdk/utils/aptos-client";
@@ -222,9 +222,7 @@ export function AptosContextProvider({ children }: PropsWithChildren) {
error: null,
});
setLastResponseStoredAt(Date.now());
- sleep(DEFAULT_TOAST_CONFIG.autoClose, UnitOfTime.Milliseconds).then(() => {
- setStatus("idle");
- });
+ sleep(DEFAULT_TOAST_CONFIG.autoClose).then(() => setStatus("idle"));
}
} catch (e: unknown) {
if (e instanceof AptosApiError) {
diff --git a/src/typescript/frontend/src/lib/env.ts b/src/typescript/frontend/src/lib/env.ts
index e1410dbfc..8cc4ea1b3 100644
--- a/src/typescript/frontend/src/lib/env.ts
+++ b/src/typescript/frontend/src/lib/env.ts
@@ -12,9 +12,8 @@ export type Links = {
const network = process.env.NEXT_PUBLIC_APTOS_NETWORK;
const APTOS_NETWORK = network as Network;
-// NOTE: We must check it this way instead of with `NetworkToNetworkName[APTOS_NETWORK]` because
-// otherwise the @aptos-labs/ts-sdk package is included in the middleware.ts function and the edge
-// runtime won't build properly.
+// NOTE: Don't use `NetworkToNetworkName[APTOS_NETWORK]` here or the @aptos-labs/ts-sdk package is
+// included in the middleware.ts function in the frontend and the edge runtime won't build properly.
if (!["local", "devnet", "testnet", "mainnet", "custom"].includes(APTOS_NETWORK)) {
throw new Error(`Invalid network: ${network}`);
}
diff --git a/src/typescript/frontend/src/lib/hooks/queries/use-grace-period.ts b/src/typescript/frontend/src/lib/hooks/queries/use-grace-period.ts
index 344fb4dd8..f71021368 100644
--- a/src/typescript/frontend/src/lib/hooks/queries/use-grace-period.ts
+++ b/src/typescript/frontend/src/lib/hooks/queries/use-grace-period.ts
@@ -6,9 +6,7 @@ import { useAptos } from "context/wallet-context/AptosContextProvider";
import { useEffect, useMemo, useState } from "react";
// -------------------------------------------------------------------------------------------------
-//
// Utilities for calculating the number of seconds left.
-//
// -------------------------------------------------------------------------------------------------
const nowSeconds = () => Math.floor(new Date().getTime() / 1000);
@@ -26,9 +24,7 @@ const formattedTimeLeft = (secondsRemaining: number) => {
};
// -------------------------------------------------------------------------------------------------
-//
// Hook to force the component to re-render on an interval basis.
-//
// -------------------------------------------------------------------------------------------------
const useDisplayTimeLeft = (marketRegistrationTime?: bigint) => {
const [timeLeft, setTimeLeft] = useState>();
@@ -51,9 +47,7 @@ const useDisplayTimeLeft = (marketRegistrationTime?: bigint) => {
};
// -------------------------------------------------------------------------------------------------
-//
// `useQuery` hook that fetches the grace period status on an interval basis.
-//
// -------------------------------------------------------------------------------------------------
const useGracePeriod = (symbol: string, hasSwaps: boolean) => {
const { aptos } = useAptos();
@@ -80,9 +74,7 @@ const useGracePeriod = (symbol: string, hasSwaps: boolean) => {
};
// -------------------------------------------------------------------------------------------------
-//
// The actual hook to be used in a component to display the amount of seconds left.
-//
// -------------------------------------------------------------------------------------------------
export const useCanTradeMarket = (symbol: string) => {
const { account } = useAptos();
diff --git a/src/typescript/frontend/src/lib/mqtt.ts b/src/typescript/frontend/src/lib/mqtt.ts
deleted file mode 100644
index 9b880cfee..000000000
--- a/src/typescript/frontend/src/lib/mqtt.ts
+++ /dev/null
@@ -1,115 +0,0 @@
-import { STRUCT_STRINGS } from "../../../sdk/src/utils/type-tags";
-import { type AnyNumberString } from "@sdk-types";
-export class TopicBuilder {
- /**
- * Build an MQTT topic.
- *
- * Null values will be replaced by a wildcard.
- *
- * Examples:
- *
- * ```ts
- * // Get all chat events on market 3
- * let a = buildTopic(STRUCT_STRINGS.ChatEvent, 3)
- * assertEq(a, "0x…::emojicoin_dot_fun::Chat/3")
- * // Get all events on market 2
- * let b = buildTopic(null, 2, '#')
- * assertEq(a, "+/2/#")
- * // Get periodic state events on market 4 with period 60000000
- * let c = buildTopic(STRUCT_STRINGS.MarketRegistrationEvent, 4, '60000000')
- * assertEq(c, "0x…::emojicoin_dot_fun::MarketRegistration/4/60000000")
- * ```
- *
- * Note: some events will have a 3-level topic (e.g.: periodic events which
- * have EVENT_TYPE/MARKET_ID/PERIOD), these will not be matched by "+/MARKET_ID",
- * but will be by "+/MARKET_ID/+" or "+/MARKET_ID/#". Others have 2-level topic
- * (e.g.: market registrations which have EVENT_TYPE/MARKET_ID), these will be
- * matched by "+/MARKET_ID" and "+/MARKET_ID/#" but not by "+/MARKET_ID/+".
- * **Calling this function with only two arguments, like buildTopic(…, …) will
- * thus only subscribe to events with a 2-level topic, and not all topics.**
- */
- public static build(
- eventType: string | null,
- possibleMarketID: AnyNumberString | null,
- ...args: string[]
- ): string {
- const marketID = possibleMarketID ? possibleMarketID.toString() : null;
- let topic = `${eventType !== null ? eventType : "+"}/${marketID !== null ? marketID : "+"}`;
- for (const arg of args) {
- topic = `${topic}/${arg}`;
- }
- return topic;
- }
-
- /**
- * Build an MQTT topic for PeriodicState events.
- *
- * Null values will be replaced by a wildcard.
- */
- public static periodicState(marketID: AnyNumberString | null, period: number | null) {
- return TopicBuilder.build(
- STRUCT_STRINGS.PeriodicStateEvent,
- marketID,
- period !== null ? `${period}` : "+"
- );
- }
-
- /**
- * Build an MQTT topic for Swap events.
- *
- * Null values will be replaced by a wildcard.
- */
- public static swapTopic(
- marketID: AnyNumberString | null,
- resultsInStateTransition: boolean | null
- ) {
- return TopicBuilder.build(
- STRUCT_STRINGS.SwapEvent,
- marketID,
- resultsInStateTransition !== null ? `${resultsInStateTransition}` : "+"
- );
- }
-
- /**
- * Build an MQTT topic for MarketRegistration events.
- *
- * Null values will be replaced by a wildcard.
- */
- public static marketRegistrationTopic(marketID: AnyNumberString | null) {
- return TopicBuilder.build(STRUCT_STRINGS.MarketRegistrationEvent, marketID);
- }
-
- /**
- * Build an MQTT topic for Chat events.
- *
- * Null values will be replaced by a wildcard.
- */
- public static chatTopic(marketID: AnyNumberString | null) {
- return TopicBuilder.build(STRUCT_STRINGS.ChatEvent, marketID);
- }
-
- /**
- * Build an MQTT topic for State events.
- *
- * Null values will be replaced by a wildcard.
- */
- public static stateTopic(marketID: AnyNumberString | null) {
- return TopicBuilder.build(STRUCT_STRINGS.StateEvent, marketID);
- }
-
- /**
- * Build an MQTT topic for Liquidity events.
- *
- * Null values will be replaced by a wildcard.
- */
- public static liquidityTopic(marketID: AnyNumberString | null) {
- return TopicBuilder.build(STRUCT_STRINGS.LiquidityEvent, marketID);
- }
-
- /**
- * Build an MQTT topic for Global State events.
- */
- public static globalStateTopic() {
- return TopicBuilder.build(STRUCT_STRINGS.GlobalStateEvent, null);
- }
-}
diff --git a/src/typescript/frontend/src/lib/queries/cache-utils/cached.ts b/src/typescript/frontend/src/lib/queries/cache-utils/cached.ts
deleted file mode 100644
index 9e8e817eb..000000000
--- a/src/typescript/frontend/src/lib/queries/cache-utils/cached.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { unstable_cache } from "next/cache";
-
-export const cached = unstable_cache;
-export default cached;
diff --git a/src/typescript/frontend/src/lib/queries/cache-utils/revalidate.ts b/src/typescript/frontend/src/lib/queries/cache-utils/revalidate.ts
deleted file mode 100644
index d5b241e1b..000000000
--- a/src/typescript/frontend/src/lib/queries/cache-utils/revalidate.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-"use server";
-
-import { revalidateTag } from "next/cache";
-import { type TAGS } from "./tags";
-
-export const revalidateTagAction = async (tag: TAGS) => {
- revalidateTag(tag);
-};
diff --git a/src/typescript/frontend/src/lib/queries/cache-utils/tags.ts b/src/typescript/frontend/src/lib/queries/cache-utils/tags.ts
deleted file mode 100644
index 576b2a2ac..000000000
--- a/src/typescript/frontend/src/lib/queries/cache-utils/tags.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * Revalidation tags.
- */
-export enum TAGS {
- RegisteredMarkets = "registered-markets",
- SortedMarkets = "sorted-markets",
- FeaturedMarket = "featured-market",
-}
diff --git a/src/typescript/frontend/src/lib/queries/graphql/README.md b/src/typescript/frontend/src/lib/queries/graphql/README.md
deleted file mode 100644
index 5808e1c6f..000000000
--- a/src/typescript/frontend/src/lib/queries/graphql/README.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# Fallback graphql queries
-
-In case our indexer isn't working or is down, we provide fallback queries
-using the GraphQL endpoint.
-
-This endpoint is automatically resolved based on the network type, relying on
-the Aptos Labs hosted GraphQL endpoints or the local endpoint if running on
-localhost.
diff --git a/src/typescript/frontend/src/lib/queries/initial/cache-helper.ts b/src/typescript/frontend/src/lib/queries/initial/cache-helper.ts
deleted file mode 100644
index a99e8f888..000000000
--- a/src/typescript/frontend/src/lib/queries/initial/cache-helper.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-"use server";
-
-import { UnitOfTime, getTime } from "@sdk/utils/misc";
-import { cache } from "react";
-
-/**
- * A helper function to either cache data or fetch it from a static source, because the production
- * endpoint is not set up yet.
- */
-export const fetchInitialWithFallback = async ({
- functionArgs,
- queryFunction,
-}: {
- functionArgs: T2;
- queryFunction: (args: T2) => Promise;
-}) => {
- const currentMinute = Math.floor(getTime(UnitOfTime.Minutes));
- const cachedFunction = cache(
- async (args: { time: number; functionArgs: T2 }) => await queryFunction(args.functionArgs)
- );
- return await cachedFunction({
- time: currentMinute,
- functionArgs,
- });
-};
-
-export default fetchInitialWithFallback;
diff --git a/src/typescript/frontend/src/lib/queries/sorting/types.ts b/src/typescript/frontend/src/lib/queries/sorting/types.ts
index 29c2d822e..bec969da1 100644
--- a/src/typescript/frontend/src/lib/queries/sorting/types.ts
+++ b/src/typescript/frontend/src/lib/queries/sorting/types.ts
@@ -1,6 +1,4 @@
import { DEFAULT_SORT_BY, SortMarketsBy } from "@sdk/indexer-v2/types/common";
-import { type ORDER_BY } from "@sdk/queries/const";
-import { type ValueOf } from "@sdk/utils/utility-types";
export type MarketDataSortByHomePage =
| SortMarketsBy.MarketCap
@@ -8,23 +6,6 @@ export type MarketDataSortByHomePage =
| SortMarketsBy.DailyVolume
| SortMarketsBy.AllTimeVolume;
-export type GetSortedMarketDataQueryArgs = {
- limit?: number;
- page: number;
- orderBy: ValueOf;
- sortBy: SortMarketsBy | SortByPostgrestQueryParams;
- inBondingCurve?: boolean;
- exactCount?: boolean;
- searchBytes?: string;
-};
-
-export type GetMySortedMarketDataQueryArgs = Omit<
- GetSortedMarketDataQueryArgs,
- "exactCount" | "inBondingCurve"
-> & {
- account?: string;
-};
-
export const sortByFilters = {
[SortMarketsBy.MarketCap]: {
forPageQueryParams: "market_cap",
@@ -73,18 +54,6 @@ export type SortByPostgrestQueryParams =
| "one_day_tvl_per_lp_coin_growth_q64"
| "cpamm_real_reserves_quote";
-export const toPageQueryParam = (
- sortBy: SortByPostgrestQueryParams | SortMarketsBy | SortByPageQueryParams
-): SortByPageQueryParams => {
- return sortByFilters[sortBy].forPageQueryParams ?? sortBy;
-};
-
-export const toPostgrestQueryParam = (
- sortBy: SortByPageQueryParams | SortMarketsBy | SortByPostgrestQueryParams
-): SortByPostgrestQueryParams => {
- return sortByFilters[sortBy]?.forPostgrestQuery ?? sortBy;
-};
-
export const toMarketDataSortBy = (
sortBy?: SortByPostgrestQueryParams | SortMarketsBy | SortByPageQueryParams
): SortMarketsBy => {
diff --git a/src/typescript/frontend/src/lib/store/market-data.ts b/src/typescript/frontend/src/lib/store/market-data.ts
deleted file mode 100644
index 1be7975a2..000000000
--- a/src/typescript/frontend/src/lib/store/market-data.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import { createStore } from "zustand/vanilla";
-import { immer } from "zustand/middleware/immer";
-
-export type MarketDataState = {
- numMarkets: number;
-};
-
-export type MarketDataActions = {
- setNumMarkets: (numMarkets: number) => void;
-};
-
-export type MarketDataStore = MarketDataState & MarketDataActions;
-
-export const createMarketDataStore = (initial?: MarketDataStore) => {
- return createStore()(
- immer((set) => ({
- numMarkets: initial?.numMarkets ?? 0,
- setNumMarkets: (numMarkets: number) =>
- set((state) => {
- state.numMarkets = numMarkets;
- }),
- }))
- );
-};
diff --git a/src/typescript/frontend/src/lib/utils/prettify-emoji-name.ts b/src/typescript/frontend/src/lib/utils/prettify-emoji-name.ts
deleted file mode 100644
index 2f0822126..000000000
--- a/src/typescript/frontend/src/lib/utils/prettify-emoji-name.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-export const prettifyEmojiName = (name: string) => {
- return name
- .replace(/: (light|medium-light|medium|medium-dark|dark|) skin tone/g, "")
- .replace(/, beard/g, ": beard")
- .replace(/flag: /g, "");
-};
diff --git a/src/typescript/frontend/tests/e2e/global.setup.ts b/src/typescript/frontend/tests/e2e/global.setup.ts
index d9ef2c102..5674c8fab 100644
--- a/src/typescript/frontend/tests/e2e/global.setup.ts
+++ b/src/typescript/frontend/tests/e2e/global.setup.ts
@@ -1,5 +1,5 @@
import { test as setup } from "@playwright/test";
-import { DockerTestHarness } from "../../../sdk/src/utils/test/docker/docker-test-harness";
+import { DockerTestHarness } from "../../../sdk/tests/utils/docker/docker-test-harness";
setup("setup the Docker containers", async ({}) => {
// Five minute timeout.
diff --git a/src/typescript/frontend/tests/e2e/global.teardown.ts b/src/typescript/frontend/tests/e2e/global.teardown.ts
index f77c20353..46e67dad3 100644
--- a/src/typescript/frontend/tests/e2e/global.teardown.ts
+++ b/src/typescript/frontend/tests/e2e/global.teardown.ts
@@ -1,5 +1,5 @@
/* eslint-disable no-underscore-dangle */
-import { DockerTestHarness } from "../../../sdk/src/utils/test/docker/docker-test-harness";
+import { DockerTestHarness } from "../../../sdk/tests/utils/docker/docker-test-harness";
export default async function postTest() {
await DockerTestHarness.stop({ frontend: true });
diff --git a/src/typescript/frontend/tests/e2e/market-order.spec.ts b/src/typescript/frontend/tests/e2e/market-order.spec.ts
index 2bdf913a3..aa56df24d 100644
--- a/src/typescript/frontend/tests/e2e/market-order.spec.ts
+++ b/src/typescript/frontend/tests/e2e/market-order.spec.ts
@@ -1,6 +1,6 @@
import { test, expect } from "@playwright/test";
import { EmojicoinClient } from "../../../sdk/src/client/emojicoin-client";
-import { getFundedAccount } from "../../../sdk/src/utils/test/test-accounts";
+import { getFundedAccount } from "../../../sdk/tests/utils/test-accounts";
import { ONE_APT_BIGINT, sleep, SYMBOL_EMOJI_DATA } from "../../../sdk/src";
test("check sorting order", async ({ page }) => {
diff --git a/src/typescript/frontend/tests/e2e/search.spec.ts b/src/typescript/frontend/tests/e2e/search.spec.ts
index 1bf140705..2c396ddfe 100644
--- a/src/typescript/frontend/tests/e2e/search.spec.ts
+++ b/src/typescript/frontend/tests/e2e/search.spec.ts
@@ -1,6 +1,6 @@
import { test, expect } from "@playwright/test";
import { EmojicoinClient } from "../../../sdk/src/client/emojicoin-client";
-import { getFundedAccount } from "../../../sdk/src/utils/test/test-accounts";
+import { getFundedAccount } from "../../../sdk/tests/utils/test-accounts";
import { SYMBOL_EMOJI_DATA } from "../../../sdk/src";
test("check search results", async ({ page }) => {
diff --git a/src/typescript/pnpm-lock.yaml b/src/typescript/pnpm-lock.yaml
index ed468d443..71910c475 100644
--- a/src/typescript/pnpm-lock.yaml
+++ b/src/typescript/pnpm-lock.yaml
@@ -298,16 +298,19 @@ importers:
version: 8.57.1
eslint-config-airbnb-base:
specifier: ^15.0.0
- version: 15.0.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1)
+ version: 15.0.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1))(eslint@8.57.1)
eslint-config-airbnb-typescript:
specifier: ^18.0.0
- version: 18.0.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2))(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1)
+ version: 18.0.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2))(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1))(eslint@8.57.1)
eslint-config-prettier:
specifier: ^9.1.0
version: 9.1.0(eslint@8.57.1)
+ eslint-import-resolver-typescript:
+ specifier: ^3.7.0
+ version: 3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1)
eslint-plugin-import:
specifier: ^2.31.0
- version: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)
+ version: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1)
eslint-plugin-prettier:
specifier: ^5.2.1
version: 5.2.1(eslint-config-prettier@9.1.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.3.3)
@@ -2558,6 +2561,19 @@ packages:
eslint-plugin-import-x:
optional: true
+ eslint-import-resolver-typescript@3.7.0:
+ resolution: {integrity: sha512-Vrwyi8HHxY97K5ebydMtffsWAn1SCR9eol49eCd5fJS4O1WV7PaAjbcjmbfJJSMz/t4Mal212Uz/fQZrOB8mow==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '*'
+ eslint-plugin-import: '*'
+ eslint-plugin-import-x: '*'
+ peerDependenciesMeta:
+ eslint-plugin-import:
+ optional: true
+ eslint-plugin-import-x:
+ optional: true
+
eslint-module-utils@2.12.0:
resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==}
engines: {node: '>=4'}
@@ -4122,6 +4138,9 @@ packages:
sprintf-js@1.0.3:
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
+ stable-hash@0.0.4:
+ resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==}
+
stack-generator@2.0.10:
resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==}
@@ -7142,21 +7161,21 @@ snapshots:
escape-string-regexp@4.0.0: {}
- eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1):
+ eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1))(eslint@8.57.1):
dependencies:
confusing-browser-globals: 1.0.11
eslint: 8.57.1
- eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)
+ eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1)
object.assign: 4.1.5
object.entries: 1.1.8
semver: 6.3.1
- eslint-config-airbnb-typescript@18.0.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2))(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1):
+ eslint-config-airbnb-typescript@18.0.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2))(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1))(eslint@8.57.1):
dependencies:
'@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2)
'@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.6.2)
eslint: 8.57.1
- eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1)
+ eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1))(eslint@8.57.1)
transitivePeerDependencies:
- eslint-plugin-import
@@ -7211,6 +7230,22 @@ snapshots:
- eslint-import-resolver-webpack
- supports-color
+ eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1):
+ dependencies:
+ '@nolyfill/is-core-module': 1.0.39
+ debug: 4.3.7
+ enhanced-resolve: 5.17.1
+ eslint: 8.57.1
+ fast-glob: 3.3.2
+ get-tsconfig: 4.8.1
+ is-bun-module: 1.2.1
+ is-glob: 4.0.3
+ stable-hash: 0.0.4
+ optionalDependencies:
+ eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1)
+ transitivePeerDependencies:
+ - supports-color
+
eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1):
dependencies:
debug: 3.2.7
@@ -7222,6 +7257,17 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1):
+ dependencies:
+ debug: 3.2.7
+ optionalDependencies:
+ '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.6.2)
+ eslint: 8.57.1
+ eslint-import-resolver-node: 0.3.9
+ eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1)
+ transitivePeerDependencies:
+ - supports-color
+
eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1):
dependencies:
'@rtsao/scc': 1.1.0
@@ -7251,6 +7297,35 @@ snapshots:
- eslint-import-resolver-webpack
- supports-color
+ eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1):
+ dependencies:
+ '@rtsao/scc': 1.1.0
+ array-includes: 3.1.8
+ array.prototype.findlastindex: 1.2.5
+ array.prototype.flat: 1.3.2
+ array.prototype.flatmap: 1.3.2
+ debug: 3.2.7
+ doctrine: 2.1.0
+ eslint: 8.57.1
+ eslint-import-resolver-node: 0.3.9
+ eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1)
+ hasown: 2.0.2
+ is-core-module: 2.15.1
+ is-glob: 4.0.3
+ minimatch: 3.1.2
+ object.fromentries: 2.0.8
+ object.groupby: 1.0.3
+ object.values: 1.2.0
+ semver: 6.3.1
+ string.prototype.trimend: 1.0.8
+ tsconfig-paths: 3.15.0
+ optionalDependencies:
+ '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.6.2)
+ transitivePeerDependencies:
+ - eslint-import-resolver-typescript
+ - eslint-import-resolver-webpack
+ - supports-color
+
eslint-plugin-jsx-a11y@6.10.0(eslint@8.57.1):
dependencies:
aria-query: 5.1.3
@@ -8996,6 +9071,8 @@ snapshots:
sprintf-js@1.0.3: {}
+ stable-hash@0.0.4: {}
+
stack-generator@2.0.10:
dependencies:
stackframe: 1.3.4
diff --git a/src/typescript/sdk/.eslintrc.js b/src/typescript/sdk/.eslintrc.js
index 9e08c2931..1760e7f2a 100644
--- a/src/typescript/sdk/.eslintrc.js
+++ b/src/typescript/sdk/.eslintrc.js
@@ -5,7 +5,7 @@ module.exports = {
jest: true,
node: true,
},
- ignorePatterns: ["dist/**", "node_modules/**", ".eslintrc.js"],
+ ignorePatterns: ["dist/**", "node_modules/**", ".eslintrc.js", "jest.config.js"],
extends: [
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
@@ -74,9 +74,15 @@ module.exports = {
],
},
settings: {
+ "import/parsers": {
+ "@typescript-eslint/parser": [".ts", ".tsx"],
+ },
"import/resolver": {
+ typescript: {
+ project: ["tsconfig.json", "tests/tsconfig.json"],
+ },
node: {
- extensions: [".js", ".jsx", ".ts", ".tsx"],
+ project: ["tsconfig.json", "tests/tsconfig.json"],
},
},
},
diff --git a/src/typescript/sdk/jest.config.js b/src/typescript/sdk/jest.config.js
index e216581d3..2d8c93f02 100644
--- a/src/typescript/sdk/jest.config.js
+++ b/src/typescript/sdk/jest.config.js
@@ -10,7 +10,7 @@ module.exports = {
customExportConditions: ["react-server", "node", "node-addons"],
},
coveragePathIgnorePatterns: [],
- testPathIgnorePatterns: ["dist/*"],
+ testPathIgnorePatterns: ["dist/*", "tests/utils/*"],
collectCoverage: false,
coverageThreshold: {
global: {
diff --git a/src/typescript/sdk/package.json b/src/typescript/sdk/package.json
index 3aeda850e..a3afa11b0 100644
--- a/src/typescript/sdk/package.json
+++ b/src/typescript/sdk/package.json
@@ -27,6 +27,7 @@
"eslint-config-airbnb-base": "^15.0.0",
"eslint-config-airbnb-typescript": "^18.0.0",
"eslint-config-prettier": "^9.1.0",
+ "eslint-import-resolver-typescript": "^3.7.0",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-prettier": "^5.2.1",
"eslint-plugin-unused-imports": "^3.2.0",
@@ -43,20 +44,15 @@
"node": ">=v20.12.2"
},
"exports": {
- ".": {
- "source": "./src/index.ts",
- "types": "./dist/index.d.ts",
- "default": "./dist/index.js"
- }
+ ".": "./src/*"
},
"files": [
- "dist",
- "src"
+ "dist"
],
"homepage": "https://github.com/econia-labs/emojicoin-dot-fun#readme",
"license": "Apache-2.0",
"main": "dist/index.js",
- "module": "dist/index.mjs",
+ "module": "dist/esm/index.mjs",
"name": "@econia-labs/emojicoin-sdk",
"packageManager": "pnpm@9.4.0+sha512.f549b8a52c9d2b8536762f99c0722205efc5af913e77835dbccc3b0b0b2ca9e7dc8022b78062c17291c48e88749c70ce88eb5a74f1fa8c4bf5e18bb46c8bd83a",
"repository": "github:econia-labs/emojicoin-dot-fun",
@@ -65,6 +61,7 @@
"build": "tsc",
"build:debug": "BUILD_DEBUG=true pnpm run build",
"build:no-checks": "tsc --skipLibCheck",
+ "build:publish": "tsc -p tsconfig.prod.json",
"check": "tsc -p tests/tsconfig.json --noEmit",
"clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist",
"e2e:testnet": "pnpm load-test-env -v NO_TEST_SETUP=true -- pnpm jest tests/e2e/queries/testnet",
@@ -75,6 +72,7 @@
"pre-commit": "pnpm run pre-commit:install && pnpm run pre-commit:run",
"pre-commit:install": "pre-commit install -c ../../../cfg/pre-commit-config.yaml",
"pre-commit:run": "pre-commit run --all-files -c ../../../cfg/pre-commit-config.yaml",
+ "prepublishOnly": "pnpm clean && pnpm i && pnpm check && pnpm build:publish",
"test": "pnpm run test:sdk:parallel && pnpm run test:sdk:sequential && pnpm run test:unit",
"test:e2e": "pnpm run test:sdk:parallel && pnpm run test:sdk:sequential",
"test:sdk:parallel": "pnpm jest --testPathIgnorePatterns=tests/e2e/broker",
@@ -82,5 +80,5 @@
"test:unit": "pnpm jest tests/unit"
},
"typings": "dist/index.d.ts",
- "version": "0.1.0"
+ "version": "0.2.0-rc.3"
}
diff --git a/src/typescript/sdk/src/client/emojicoin-client.ts b/src/typescript/sdk/src/client/emojicoin-client.ts
index b64335992..e0f768447 100644
--- a/src/typescript/sdk/src/client/emojicoin-client.ts
+++ b/src/typescript/sdk/src/client/emojicoin-client.ts
@@ -21,7 +21,7 @@ import {
} from "../emojicoin_dot_fun/emojicoin-dot-fun";
import { type Events } from "../emojicoin_dot_fun/events";
import { getEmojicoinMarketAddressAndTypeTags } from "../markets";
-import { type EventsModels, getEventsAsProcessorModelsFromResponse } from "../mini-processor";
+import { type EventsModels, getEventsAsProcessorModelsFromResponse } from "../indexer-v2";
import { APTOS_CONFIG, getAptosClient } from "../utils/aptos-client";
import { toChatMessageEntryFunctionArgs } from "../emoji_data";
import customExpect from "./expect";
@@ -78,6 +78,9 @@ const waitForEventProcessed = async (
*
* The `utils` functions provides several commonly used utility functions.
*
+ * @param alwaysWaitForIndexer whether or not each transaction should wait for the indexer to
+ * process the event before returning.
+ *
* @example
* ```typescript
* const emojis: MarketSymbolEmojis = ["🌊"];
diff --git a/src/typescript/sdk/src/client/index.ts b/src/typescript/sdk/src/client/index.ts
new file mode 100644
index 000000000..962991f6c
--- /dev/null
+++ b/src/typescript/sdk/src/client/index.ts
@@ -0,0 +1 @@
+export * from "./emojicoin-client";
diff --git a/src/typescript/sdk/src/emoji_data/README.md b/src/typescript/sdk/src/emoji_data/README.md
index 10c06a101..35fe448d5 100644
--- a/src/typescript/sdk/src/emoji_data/README.md
+++ b/src/typescript/sdk/src/emoji_data/README.md
@@ -1,6 +1,6 @@
-# Reproducing the TypeScript `symbol-emojis.json` data
+# Reproducing the TypeScript `*-emojis.ts` data
-To reproduce the data in the TypeScript JSON data file `symbol-emojis.json`
+To reproduce the data in the TypeScript data files `*-emojis.ts`
`cd` to the root of the repo then run the following commands.
```shell
@@ -9,7 +9,25 @@ poetry install
poetry run python -m scripts.generate_code
```
-Note that the `symbol-names.json` and `chat-names.json` are not duplicated data;
-they're merely used for type resolution in TypeScript, since TypeScript can't
-resolve to actual values when resolving to the value field in an imported JSON
-`[key]: value` type.
+Then alter the file such that it's prepended with a `const` declaration:
+
+```json
+{
+ "🥇": "1st place medal",
+ "🥈": "2nd place medal",
+ ...
+}
+```
+
+Becomes:
+
+```typescript
+const SYMBOL_EMOJIS = {
+ "🥇": "1st place medal",
+ "🥈": "2nd place medal",
+ ...
+} as const;
+```
+
+Note the `as const;` at the end of the object. It _must_ be there for the types
+to be resolved correctly.
diff --git a/src/typescript/sdk/src/emoji_data/chat-emojis.json b/src/typescript/sdk/src/emoji_data/chat-emojis.json
deleted file mode 100644
index c6eee6633..000000000
--- a/src/typescript/sdk/src/emoji_data/chat-emojis.json
+++ /dev/null
@@ -1,1213 +0,0 @@
-{
- "\u26d3\ufe0f\u200d\ud83d\udca5": "broken chain",
- "\u26f9\ufe0f\u200d\u2640\ufe0f": "woman bouncing ball",
- "\u26f9\ufe0f\u200d\u2642\ufe0f": "man bouncing ball",
- "\u26f9\ud83c\udffb\u200d\u2640\ufe0f": "woman bouncing ball: light skin tone",
- "\u26f9\ud83c\udffb\u200d\u2642\ufe0f": "man bouncing ball: light skin tone",
- "\u26f9\ud83c\udffc\u200d\u2640\ufe0f": "woman bouncing ball: medium-light skin tone",
- "\u26f9\ud83c\udffc\u200d\u2642\ufe0f": "man bouncing ball: medium-light skin tone",
- "\u26f9\ud83c\udffd\u200d\u2640\ufe0f": "woman bouncing ball: medium skin tone",
- "\u26f9\ud83c\udffd\u200d\u2642\ufe0f": "man bouncing ball: medium skin tone",
- "\u26f9\ud83c\udffe\u200d\u2640\ufe0f": "woman bouncing ball: medium-dark skin tone",
- "\u26f9\ud83c\udffe\u200d\u2642\ufe0f": "man bouncing ball: medium-dark skin tone",
- "\u26f9\ud83c\udfff\u200d\u2640\ufe0f": "woman bouncing ball: dark skin tone",
- "\u26f9\ud83c\udfff\u200d\u2642\ufe0f": "man bouncing ball: dark skin tone",
- "\u2764\ufe0f\u200d\ud83d\udd25": "heart on fire",
- "\u2764\ufe0f\u200d\ud83e\ude79": "mending heart",
- "\ud83c\udf44\u200d\ud83d\udfeb": "brown mushroom",
- "\ud83c\udf4b\u200d\ud83d\udfe9": "lime",
- "\ud83c\udfc3\u200d\u2640\ufe0f": "woman running",
- "\ud83c\udfc3\u200d\u2640\ufe0f\u200d\u27a1\ufe0f": "woman running facing right",
- "\ud83c\udfc3\u200d\u2642\ufe0f": "man running",
- "\ud83c\udfc3\u200d\u2642\ufe0f\u200d\u27a1\ufe0f": "man running facing right",
- "\ud83c\udfc3\u200d\u27a1\ufe0f": "person running facing right",
- "\ud83c\udfc3\ud83c\udffb\u200d\u2640\ufe0f": "woman running: light skin tone",
- "\ud83c\udfc3\ud83c\udffb\u200d\u2640\ufe0f\u200d\u27a1\ufe0f": "woman running facing right: light skin tone",
- "\ud83c\udfc3\ud83c\udffb\u200d\u2642\ufe0f": "man running: light skin tone",
- "\ud83c\udfc3\ud83c\udffb\u200d\u2642\ufe0f\u200d\u27a1\ufe0f": "man running facing right: light skin tone",
- "\ud83c\udfc3\ud83c\udffb\u200d\u27a1\ufe0f": "person running facing right: light skin tone",
- "\ud83c\udfc3\ud83c\udffc\u200d\u2640\ufe0f": "woman running: medium-light skin tone",
- "\ud83c\udfc3\ud83c\udffc\u200d\u2640\ufe0f\u200d\u27a1\ufe0f": "woman running facing right: medium-light skin tone",
- "\ud83c\udfc3\ud83c\udffc\u200d\u2642\ufe0f": "man running: medium-light skin tone",
- "\ud83c\udfc3\ud83c\udffc\u200d\u2642\ufe0f\u200d\u27a1\ufe0f": "man running facing right: medium-light skin tone",
- "\ud83c\udfc3\ud83c\udffc\u200d\u27a1\ufe0f": "person running facing right: medium-light skin tone",
- "\ud83c\udfc3\ud83c\udffd\u200d\u2640\ufe0f": "woman running: medium skin tone",
- "\ud83c\udfc3\ud83c\udffd\u200d\u2640\ufe0f\u200d\u27a1\ufe0f": "woman running facing right: medium skin tone",
- "\ud83c\udfc3\ud83c\udffd\u200d\u2642\ufe0f": "man running: medium skin tone",
- "\ud83c\udfc3\ud83c\udffd\u200d\u2642\ufe0f\u200d\u27a1\ufe0f": "man running facing right: medium skin tone",
- "\ud83c\udfc3\ud83c\udffd\u200d\u27a1\ufe0f": "person running facing right: medium skin tone",
- "\ud83c\udfc3\ud83c\udffe\u200d\u2640\ufe0f": "woman running: medium-dark skin tone",
- "\ud83c\udfc3\ud83c\udffe\u200d\u2640\ufe0f\u200d\u27a1\ufe0f": "woman running facing right: medium-dark skin tone",
- "\ud83c\udfc3\ud83c\udffe\u200d\u2642\ufe0f": "man running: medium-dark skin tone",
- "\ud83c\udfc3\ud83c\udffe\u200d\u2642\ufe0f\u200d\u27a1\ufe0f": "man running facing right: medium-dark skin tone",
- "\ud83c\udfc3\ud83c\udffe\u200d\u27a1\ufe0f": "person running facing right: medium-dark skin tone",
- "\ud83c\udfc3\ud83c\udfff\u200d\u2640\ufe0f": "woman running: dark skin tone",
- "\ud83c\udfc3\ud83c\udfff\u200d\u2640\ufe0f\u200d\u27a1\ufe0f": "woman running facing right: dark skin tone",
- "\ud83c\udfc3\ud83c\udfff\u200d\u2642\ufe0f": "man running: dark skin tone",
- "\ud83c\udfc3\ud83c\udfff\u200d\u2642\ufe0f\u200d\u27a1\ufe0f": "man running facing right: dark skin tone",
- "\ud83c\udfc3\ud83c\udfff\u200d\u27a1\ufe0f": "person running facing right: dark skin tone",
- "\ud83c\udfc4\u200d\u2640\ufe0f": "woman surfing",
- "\ud83c\udfc4\u200d\u2642\ufe0f": "man surfing",
- "\ud83c\udfc4\ud83c\udffb\u200d\u2640\ufe0f": "woman surfing: light skin tone",
- "\ud83c\udfc4\ud83c\udffb\u200d\u2642\ufe0f": "man surfing: light skin tone",
- "\ud83c\udfc4\ud83c\udffc\u200d\u2640\ufe0f": "woman surfing: medium-light skin tone",
- "\ud83c\udfc4\ud83c\udffc\u200d\u2642\ufe0f": "man surfing: medium-light skin tone",
- "\ud83c\udfc4\ud83c\udffd\u200d\u2640\ufe0f": "woman surfing: medium skin tone",
- "\ud83c\udfc4\ud83c\udffd\u200d\u2642\ufe0f": "man surfing: medium skin tone",
- "\ud83c\udfc4\ud83c\udffe\u200d\u2640\ufe0f": "woman surfing: medium-dark skin tone",
- "\ud83c\udfc4\ud83c\udffe\u200d\u2642\ufe0f": "man surfing: medium-dark skin tone",
- "\ud83c\udfc4\ud83c\udfff\u200d\u2640\ufe0f": "woman surfing: dark skin tone",
- "\ud83c\udfc4\ud83c\udfff\u200d\u2642\ufe0f": "man surfing: dark skin tone",
- "\ud83c\udfca\u200d\u2640\ufe0f": "woman swimming",
- "\ud83c\udfca\u200d\u2642\ufe0f": "man swimming",
- "\ud83c\udfca\ud83c\udffb\u200d\u2640\ufe0f": "woman swimming: light skin tone",
- "\ud83c\udfca\ud83c\udffb\u200d\u2642\ufe0f": "man swimming: light skin tone",
- "\ud83c\udfca\ud83c\udffc\u200d\u2640\ufe0f": "woman swimming: medium-light skin tone",
- "\ud83c\udfca\ud83c\udffc\u200d\u2642\ufe0f": "man swimming: medium-light skin tone",
- "\ud83c\udfca\ud83c\udffd\u200d\u2640\ufe0f": "woman swimming: medium skin tone",
- "\ud83c\udfca\ud83c\udffd\u200d\u2642\ufe0f": "man swimming: medium skin tone",
- "\ud83c\udfca\ud83c\udffe\u200d\u2640\ufe0f": "woman swimming: medium-dark skin tone",
- "\ud83c\udfca\ud83c\udffe\u200d\u2642\ufe0f": "man swimming: medium-dark skin tone",
- "\ud83c\udfca\ud83c\udfff\u200d\u2640\ufe0f": "woman swimming: dark skin tone",
- "\ud83c\udfca\ud83c\udfff\u200d\u2642\ufe0f": "man swimming: dark skin tone",
- "\ud83c\udfcb\ufe0f\u200d\u2640\ufe0f": "woman lifting weights",
- "\ud83c\udfcb\ufe0f\u200d\u2642\ufe0f": "man lifting weights",
- "\ud83c\udfcb\ud83c\udffb\u200d\u2640\ufe0f": "woman lifting weights: light skin tone",
- "\ud83c\udfcb\ud83c\udffb\u200d\u2642\ufe0f": "man lifting weights: light skin tone",
- "\ud83c\udfcb\ud83c\udffc\u200d\u2640\ufe0f": "woman lifting weights: medium-light skin tone",
- "\ud83c\udfcb\ud83c\udffc\u200d\u2642\ufe0f": "man lifting weights: medium-light skin tone",
- "\ud83c\udfcb\ud83c\udffd\u200d\u2640\ufe0f": "woman lifting weights: medium skin tone",
- "\ud83c\udfcb\ud83c\udffd\u200d\u2642\ufe0f": "man lifting weights: medium skin tone",
- "\ud83c\udfcb\ud83c\udffe\u200d\u2640\ufe0f": "woman lifting weights: medium-dark skin tone",
- "\ud83c\udfcb\ud83c\udffe\u200d\u2642\ufe0f": "man lifting weights: medium-dark skin tone",
- "\ud83c\udfcb\ud83c\udfff\u200d\u2640\ufe0f": "woman lifting weights: dark skin tone",
- "\ud83c\udfcb\ud83c\udfff\u200d\u2642\ufe0f": "man lifting weights: dark skin tone",
- "\ud83c\udfcc\ufe0f\u200d\u2640\ufe0f": "woman golfing",
- "\ud83c\udfcc\ufe0f\u200d\u2642\ufe0f": "man golfing",
- "\ud83c\udfcc\ud83c\udffb\u200d\u2640\ufe0f": "woman golfing: light skin tone",
- "\ud83c\udfcc\ud83c\udffb\u200d\u2642\ufe0f": "man golfing: light skin tone",
- "\ud83c\udfcc\ud83c\udffc\u200d\u2640\ufe0f": "woman golfing: medium-light skin tone",
- "\ud83c\udfcc\ud83c\udffc\u200d\u2642\ufe0f": "man golfing: medium-light skin tone",
- "\ud83c\udfcc\ud83c\udffd\u200d\u2640\ufe0f": "woman golfing: medium skin tone",
- "\ud83c\udfcc\ud83c\udffd\u200d\u2642\ufe0f": "man golfing: medium skin tone",
- "\ud83c\udfcc\ud83c\udffe\u200d\u2640\ufe0f": "woman golfing: medium-dark skin tone",
- "\ud83c\udfcc\ud83c\udffe\u200d\u2642\ufe0f": "man golfing: medium-dark skin tone",
- "\ud83c\udfcc\ud83c\udfff\u200d\u2640\ufe0f": "woman golfing: dark skin tone",
- "\ud83c\udfcc\ud83c\udfff\u200d\u2642\ufe0f": "man golfing: dark skin tone",
- "\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f": "transgender flag",
- "\ud83c\udff3\ufe0f\u200d\ud83c\udf08": "rainbow flag",
- "\ud83c\udff4\u200d\u2620\ufe0f": "pirate flag",
- "\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f": "flag: England",
- "\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc73\udb40\udc63\udb40\udc74\udb40\udc7f": "flag: Scotland",
- "\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc77\udb40\udc6c\udb40\udc73\udb40\udc7f": "flag: Wales",
- "\ud83d\udc15\u200d\ud83e\uddba": "service dog",
- "\ud83d\udc26\u200d\ud83d\udd25": "phoenix",
- "\ud83d\udc3b\u200d\u2744\ufe0f": "polar bear",
- "\ud83d\udc41\ufe0f\u200d\ud83d\udde8\ufe0f": "eye in speech bubble",
- "\ud83d\udc68\u200d\u2695\ufe0f": "man health worker",
- "\ud83d\udc68\u200d\u2696\ufe0f": "man judge",
- "\ud83d\udc68\u200d\u2708\ufe0f": "man pilot",
- "\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc68": "couple with heart: man, man",
- "\ud83d\udc68\u200d\ud83c\udf3e": "man farmer",
- "\ud83d\udc68\u200d\ud83c\udf73": "man cook",
- "\ud83d\udc68\u200d\ud83c\udf7c": "man feeding baby",
- "\ud83d\udc68\u200d\ud83c\udf93": "man student",
- "\ud83d\udc68\u200d\ud83c\udfa4": "man singer",
- "\ud83d\udc68\u200d\ud83c\udfa8": "man artist",
- "\ud83d\udc68\u200d\ud83c\udfeb": "man teacher",
- "\ud83d\udc68\u200d\ud83c\udfed": "man factory worker",
- "\ud83d\udc68\u200d\ud83d\udc66": "family: man, boy",
- "\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66": "family: man, boy, boy",
- "\ud83d\udc68\u200d\ud83d\udc67": "family: man, girl",
- "\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d\udc66": "family: man, girl, boy",
- "\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d\udc67": "family: man, girl, girl",
- "\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66": "family: man, man, boy",
- "\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66": "family: man, man, boy, boy",
- "\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67": "family: man, man, girl",
- "\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d\udc66": "family: man, man, girl, boy",
- "\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d\udc67": "family: man, man, girl, girl",
- "\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66": "family: man, woman, boy",
- "\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66": "family: man, woman, boy, boy",
- "\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67": "family: man, woman, girl",
- "\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66": "family: man, woman, girl, boy",
- "\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc67": "family: man, woman, girl, girl",
- "\ud83d\udc68\u200d\ud83d\udcbb": "man technologist",
- "\ud83d\udc68\u200d\ud83d\udcbc": "man office worker",
- "\ud83d\udc68\u200d\ud83d\udd27": "man mechanic",
- "\ud83d\udc68\u200d\ud83d\udd2c": "man scientist",
- "\ud83d\udc68\u200d\ud83d\ude80": "man astronaut",
- "\ud83d\udc68\u200d\ud83d\ude92": "man firefighter",
- "\ud83d\udc68\u200d\ud83e\uddaf": "man with white cane",
- "\ud83d\udc68\u200d\ud83e\uddaf\u200d\u27a1\ufe0f": "man with white cane facing right",
- "\ud83d\udc68\u200d\ud83e\uddb0": "man: red hair",
- "\ud83d\udc68\u200d\ud83e\uddb1": "man: curly hair",
- "\ud83d\udc68\u200d\ud83e\uddb2": "man: bald",
- "\ud83d\udc68\u200d\ud83e\uddb3": "man: white hair",
- "\ud83d\udc68\u200d\ud83e\uddbc": "man in motorized wheelchair",
- "\ud83d\udc68\u200d\ud83e\uddbc\u200d\u27a1\ufe0f": "man in motorized wheelchair facing right",
- "\ud83d\udc68\u200d\ud83e\uddbd": "man in manual wheelchair",
- "\ud83d\udc68\u200d\ud83e\uddbd\u200d\u27a1\ufe0f": "man in manual wheelchair facing right",
- "\ud83d\udc68\ud83c\udffb\u200d\u2695\ufe0f": "man health worker: light skin tone",
- "\ud83d\udc68\ud83c\udffb\u200d\u2696\ufe0f": "man judge: light skin tone",
- "\ud83d\udc68\ud83c\udffb\u200d\u2708\ufe0f": "man pilot: light skin tone",
- "\ud83d\udc68\ud83c\udffb\u200d\ud83c\udf3e": "man farmer: light skin tone",
- "\ud83d\udc68\ud83c\udffb\u200d\ud83c\udf73": "man cook: light skin tone",
- "\ud83d\udc68\ud83c\udffb\u200d\ud83c\udf7c": "man feeding baby: light skin tone",
- "\ud83d\udc68\ud83c\udffb\u200d\ud83c\udf93": "man student: light skin tone",
- "\ud83d\udc68\ud83c\udffb\u200d\ud83c\udfa4": "man singer: light skin tone",
- "\ud83d\udc68\ud83c\udffb\u200d\ud83c\udfa8": "man artist: light skin tone",
- "\ud83d\udc68\ud83c\udffb\u200d\ud83c\udfeb": "man teacher: light skin tone",
- "\ud83d\udc68\ud83c\udffb\u200d\ud83c\udfed": "man factory worker: light skin tone",
- "\ud83d\udc68\ud83c\udffb\u200d\ud83d\udcbb": "man technologist: light skin tone",
- "\ud83d\udc68\ud83c\udffb\u200d\ud83d\udcbc": "man office worker: light skin tone",
- "\ud83d\udc68\ud83c\udffb\u200d\ud83d\udd27": "man mechanic: light skin tone",
- "\ud83d\udc68\ud83c\udffb\u200d\ud83d\udd2c": "man scientist: light skin tone",
- "\ud83d\udc68\ud83c\udffb\u200d\ud83d\ude80": "man astronaut: light skin tone",
- "\ud83d\udc68\ud83c\udffb\u200d\ud83d\ude92": "man firefighter: light skin tone",
- "\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddaf": "man with white cane: light skin tone",
- "\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddaf\u200d\u27a1\ufe0f": "man with white cane facing right: light skin tone",
- "\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddb0": "man: light skin tone, red hair",
- "\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddb1": "man: light skin tone, curly hair",
- "\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddb2": "man: light skin tone, bald",
- "\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddb3": "man: light skin tone, white hair",
- "\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddbc": "man in motorized wheelchair: light skin tone",
- "\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddbc\u200d\u27a1\ufe0f": "man in motorized wheelchair facing right: light skin tone",
- "\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddbd": "man in manual wheelchair: light skin tone",
- "\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddbd\u200d\u27a1\ufe0f": "man in manual wheelchair facing right: light skin tone",
- "\ud83d\udc68\ud83c\udffc\u200d\u2695\ufe0f": "man health worker: medium-light skin tone",
- "\ud83d\udc68\ud83c\udffc\u200d\u2696\ufe0f": "man judge: medium-light skin tone",
- "\ud83d\udc68\ud83c\udffc\u200d\u2708\ufe0f": "man pilot: medium-light skin tone",
- "\ud83d\udc68\ud83c\udffc\u200d\ud83c\udf3e": "man farmer: medium-light skin tone",
- "\ud83d\udc68\ud83c\udffc\u200d\ud83c\udf73": "man cook: medium-light skin tone",
- "\ud83d\udc68\ud83c\udffc\u200d\ud83c\udf7c": "man feeding baby: medium-light skin tone",
- "\ud83d\udc68\ud83c\udffc\u200d\ud83c\udf93": "man student: medium-light skin tone",
- "\ud83d\udc68\ud83c\udffc\u200d\ud83c\udfa4": "man singer: medium-light skin tone",
- "\ud83d\udc68\ud83c\udffc\u200d\ud83c\udfa8": "man artist: medium-light skin tone",
- "\ud83d\udc68\ud83c\udffc\u200d\ud83c\udfeb": "man teacher: medium-light skin tone",
- "\ud83d\udc68\ud83c\udffc\u200d\ud83c\udfed": "man factory worker: medium-light skin tone",
- "\ud83d\udc68\ud83c\udffc\u200d\ud83d\udcbb": "man technologist: medium-light skin tone",
- "\ud83d\udc68\ud83c\udffc\u200d\ud83d\udcbc": "man office worker: medium-light skin tone",
- "\ud83d\udc68\ud83c\udffc\u200d\ud83d\udd27": "man mechanic: medium-light skin tone",
- "\ud83d\udc68\ud83c\udffc\u200d\ud83d\udd2c": "man scientist: medium-light skin tone",
- "\ud83d\udc68\ud83c\udffc\u200d\ud83d\ude80": "man astronaut: medium-light skin tone",
- "\ud83d\udc68\ud83c\udffc\u200d\ud83d\ude92": "man firefighter: medium-light skin tone",
- "\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddaf": "man with white cane: medium-light skin tone",
- "\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddaf\u200d\u27a1\ufe0f": "man with white cane facing right: medium-light skin tone",
- "\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddb0": "man: medium-light skin tone, red hair",
- "\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddb1": "man: medium-light skin tone, curly hair",
- "\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddb2": "man: medium-light skin tone, bald",
- "\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddb3": "man: medium-light skin tone, white hair",
- "\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddbc": "man in motorized wheelchair: medium-light skin tone",
- "\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddbc\u200d\u27a1\ufe0f": "man in motorized wheelchair facing right: medium-light skin tone",
- "\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddbd": "man in manual wheelchair: medium-light skin tone",
- "\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddbd\u200d\u27a1\ufe0f": "man in manual wheelchair facing right: medium-light skin tone",
- "\ud83d\udc68\ud83c\udffd\u200d\u2695\ufe0f": "man health worker: medium skin tone",
- "\ud83d\udc68\ud83c\udffd\u200d\u2696\ufe0f": "man judge: medium skin tone",
- "\ud83d\udc68\ud83c\udffd\u200d\u2708\ufe0f": "man pilot: medium skin tone",
- "\ud83d\udc68\ud83c\udffd\u200d\ud83c\udf3e": "man farmer: medium skin tone",
- "\ud83d\udc68\ud83c\udffd\u200d\ud83c\udf73": "man cook: medium skin tone",
- "\ud83d\udc68\ud83c\udffd\u200d\ud83c\udf7c": "man feeding baby: medium skin tone",
- "\ud83d\udc68\ud83c\udffd\u200d\ud83c\udf93": "man student: medium skin tone",
- "\ud83d\udc68\ud83c\udffd\u200d\ud83c\udfa4": "man singer: medium skin tone",
- "\ud83d\udc68\ud83c\udffd\u200d\ud83c\udfa8": "man artist: medium skin tone",
- "\ud83d\udc68\ud83c\udffd\u200d\ud83c\udfeb": "man teacher: medium skin tone",
- "\ud83d\udc68\ud83c\udffd\u200d\ud83c\udfed": "man factory worker: medium skin tone",
- "\ud83d\udc68\ud83c\udffd\u200d\ud83d\udcbb": "man technologist: medium skin tone",
- "\ud83d\udc68\ud83c\udffd\u200d\ud83d\udcbc": "man office worker: medium skin tone",
- "\ud83d\udc68\ud83c\udffd\u200d\ud83d\udd27": "man mechanic: medium skin tone",
- "\ud83d\udc68\ud83c\udffd\u200d\ud83d\udd2c": "man scientist: medium skin tone",
- "\ud83d\udc68\ud83c\udffd\u200d\ud83d\ude80": "man astronaut: medium skin tone",
- "\ud83d\udc68\ud83c\udffd\u200d\ud83d\ude92": "man firefighter: medium skin tone",
- "\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddaf": "man with white cane: medium skin tone",
- "\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddaf\u200d\u27a1\ufe0f": "man with white cane facing right: medium skin tone",
- "\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddb0": "man: medium skin tone, red hair",
- "\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddb1": "man: medium skin tone, curly hair",
- "\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddb2": "man: medium skin tone, bald",
- "\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddb3": "man: medium skin tone, white hair",
- "\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddbc": "man in motorized wheelchair: medium skin tone",
- "\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddbc\u200d\u27a1\ufe0f": "man in motorized wheelchair facing right: medium skin tone",
- "\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddbd": "man in manual wheelchair: medium skin tone",
- "\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddbd\u200d\u27a1\ufe0f": "man in manual wheelchair facing right: medium skin tone",
- "\ud83d\udc68\ud83c\udffe\u200d\u2695\ufe0f": "man health worker: medium-dark skin tone",
- "\ud83d\udc68\ud83c\udffe\u200d\u2696\ufe0f": "man judge: medium-dark skin tone",
- "\ud83d\udc68\ud83c\udffe\u200d\u2708\ufe0f": "man pilot: medium-dark skin tone",
- "\ud83d\udc68\ud83c\udffe\u200d\ud83c\udf3e": "man farmer: medium-dark skin tone",
- "\ud83d\udc68\ud83c\udffe\u200d\ud83c\udf73": "man cook: medium-dark skin tone",
- "\ud83d\udc68\ud83c\udffe\u200d\ud83c\udf7c": "man feeding baby: medium-dark skin tone",
- "\ud83d\udc68\ud83c\udffe\u200d\ud83c\udf93": "man student: medium-dark skin tone",
- "\ud83d\udc68\ud83c\udffe\u200d\ud83c\udfa4": "man singer: medium-dark skin tone",
- "\ud83d\udc68\ud83c\udffe\u200d\ud83c\udfa8": "man artist: medium-dark skin tone",
- "\ud83d\udc68\ud83c\udffe\u200d\ud83c\udfeb": "man teacher: medium-dark skin tone",
- "\ud83d\udc68\ud83c\udffe\u200d\ud83c\udfed": "man factory worker: medium-dark skin tone",
- "\ud83d\udc68\ud83c\udffe\u200d\ud83d\udcbb": "man technologist: medium-dark skin tone",
- "\ud83d\udc68\ud83c\udffe\u200d\ud83d\udcbc": "man office worker: medium-dark skin tone",
- "\ud83d\udc68\ud83c\udffe\u200d\ud83d\udd27": "man mechanic: medium-dark skin tone",
- "\ud83d\udc68\ud83c\udffe\u200d\ud83d\udd2c": "man scientist: medium-dark skin tone",
- "\ud83d\udc68\ud83c\udffe\u200d\ud83d\ude80": "man astronaut: medium-dark skin tone",
- "\ud83d\udc68\ud83c\udffe\u200d\ud83d\ude92": "man firefighter: medium-dark skin tone",
- "\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddaf": "man with white cane: medium-dark skin tone",
- "\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddaf\u200d\u27a1\ufe0f": "man with white cane facing right: medium-dark skin tone",
- "\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddb0": "man: medium-dark skin tone, red hair",
- "\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddb1": "man: medium-dark skin tone, curly hair",
- "\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddb2": "man: medium-dark skin tone, bald",
- "\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddb3": "man: medium-dark skin tone, white hair",
- "\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddbc": "man in motorized wheelchair: medium-dark skin tone",
- "\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddbc\u200d\u27a1\ufe0f": "man in motorized wheelchair facing right: medium-dark skin tone",
- "\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddbd": "man in manual wheelchair: medium-dark skin tone",
- "\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddbd\u200d\u27a1\ufe0f": "man in manual wheelchair facing right: medium-dark skin tone",
- "\ud83d\udc68\ud83c\udfff\u200d\u2695\ufe0f": "man health worker: dark skin tone",
- "\ud83d\udc68\ud83c\udfff\u200d\u2696\ufe0f": "man judge: dark skin tone",
- "\ud83d\udc68\ud83c\udfff\u200d\u2708\ufe0f": "man pilot: dark skin tone",
- "\ud83d\udc68\ud83c\udfff\u200d\ud83c\udf3e": "man farmer: dark skin tone",
- "\ud83d\udc68\ud83c\udfff\u200d\ud83c\udf73": "man cook: dark skin tone",
- "\ud83d\udc68\ud83c\udfff\u200d\ud83c\udf7c": "man feeding baby: dark skin tone",
- "\ud83d\udc68\ud83c\udfff\u200d\ud83c\udf93": "man student: dark skin tone",
- "\ud83d\udc68\ud83c\udfff\u200d\ud83c\udfa4": "man singer: dark skin tone",
- "\ud83d\udc68\ud83c\udfff\u200d\ud83c\udfa8": "man artist: dark skin tone",
- "\ud83d\udc68\ud83c\udfff\u200d\ud83c\udfeb": "man teacher: dark skin tone",
- "\ud83d\udc68\ud83c\udfff\u200d\ud83c\udfed": "man factory worker: dark skin tone",
- "\ud83d\udc68\ud83c\udfff\u200d\ud83d\udcbb": "man technologist: dark skin tone",
- "\ud83d\udc68\ud83c\udfff\u200d\ud83d\udcbc": "man office worker: dark skin tone",
- "\ud83d\udc68\ud83c\udfff\u200d\ud83d\udd27": "man mechanic: dark skin tone",
- "\ud83d\udc68\ud83c\udfff\u200d\ud83d\udd2c": "man scientist: dark skin tone",
- "\ud83d\udc68\ud83c\udfff\u200d\ud83d\ude80": "man astronaut: dark skin tone",
- "\ud83d\udc68\ud83c\udfff\u200d\ud83d\ude92": "man firefighter: dark skin tone",
- "\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddaf": "man with white cane: dark skin tone",
- "\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddaf\u200d\u27a1\ufe0f": "man with white cane facing right: dark skin tone",
- "\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddb0": "man: dark skin tone, red hair",
- "\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddb1": "man: dark skin tone, curly hair",
- "\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddb2": "man: dark skin tone, bald",
- "\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddb3": "man: dark skin tone, white hair",
- "\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddbc": "man in motorized wheelchair: dark skin tone",
- "\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddbc\u200d\u27a1\ufe0f": "man in motorized wheelchair facing right: dark skin tone",
- "\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddbd": "man in manual wheelchair: dark skin tone",
- "\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddbd\u200d\u27a1\ufe0f": "man in manual wheelchair facing right: dark skin tone",
- "\ud83d\udc69\u200d\u2695\ufe0f": "woman health worker",
- "\ud83d\udc69\u200d\u2696\ufe0f": "woman judge",
- "\ud83d\udc69\u200d\u2708\ufe0f": "woman pilot",
- "\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc68": "couple with heart: woman, man",
- "\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc69": "couple with heart: woman, woman",
- "\ud83d\udc69\u200d\ud83c\udf3e": "woman farmer",
- "\ud83d\udc69\u200d\ud83c\udf73": "woman cook",
- "\ud83d\udc69\u200d\ud83c\udf7c": "woman feeding baby",
- "\ud83d\udc69\u200d\ud83c\udf93": "woman student",
- "\ud83d\udc69\u200d\ud83c\udfa4": "woman singer",
- "\ud83d\udc69\u200d\ud83c\udfa8": "woman artist",
- "\ud83d\udc69\u200d\ud83c\udfeb": "woman teacher",
- "\ud83d\udc69\u200d\ud83c\udfed": "woman factory worker",
- "\ud83d\udc69\u200d\ud83d\udc66": "family: woman, boy",
- "\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66": "family: woman, boy, boy",
- "\ud83d\udc69\u200d\ud83d\udc67": "family: woman, girl",
- "\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66": "family: woman, girl, boy",
- "\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc67": "family: woman, girl, girl",
- "\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc66": "family: woman, woman, boy",
- "\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66": "family: woman, woman, boy, boy",
- "\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67": "family: woman, woman, girl",
- "\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66": "family: woman, woman, girl, boy",
- "\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc67": "family: woman, woman, girl, girl",
- "\ud83d\udc69\u200d\ud83d\udcbb": "woman technologist",
- "\ud83d\udc69\u200d\ud83d\udcbc": "woman office worker",
- "\ud83d\udc69\u200d\ud83d\udd27": "woman mechanic",
- "\ud83d\udc69\u200d\ud83d\udd2c": "woman scientist",
- "\ud83d\udc69\u200d\ud83d\ude80": "woman astronaut",
- "\ud83d\udc69\u200d\ud83d\ude92": "woman firefighter",
- "\ud83d\udc69\u200d\ud83e\uddaf": "woman with white cane",
- "\ud83d\udc69\u200d\ud83e\uddaf\u200d\u27a1\ufe0f": "woman with white cane facing right",
- "\ud83d\udc69\u200d\ud83e\uddb0": "woman: red hair",
- "\ud83d\udc69\u200d\ud83e\uddb1": "woman: curly hair",
- "\ud83d\udc69\u200d\ud83e\uddb2": "woman: bald",
- "\ud83d\udc69\u200d\ud83e\uddb3": "woman: white hair",
- "\ud83d\udc69\u200d\ud83e\uddbc": "woman in motorized wheelchair",
- "\ud83d\udc69\u200d\ud83e\uddbc\u200d\u27a1\ufe0f": "woman in motorized wheelchair facing right",
- "\ud83d\udc69\u200d\ud83e\uddbd": "woman in manual wheelchair",
- "\ud83d\udc69\u200d\ud83e\uddbd\u200d\u27a1\ufe0f": "woman in manual wheelchair facing right",
- "\ud83d\udc69\ud83c\udffb\u200d\u2695\ufe0f": "woman health worker: light skin tone",
- "\ud83d\udc69\ud83c\udffb\u200d\u2696\ufe0f": "woman judge: light skin tone",
- "\ud83d\udc69\ud83c\udffb\u200d\u2708\ufe0f": "woman pilot: light skin tone",
- "\ud83d\udc69\ud83c\udffb\u200d\ud83c\udf3e": "woman farmer: light skin tone",
- "\ud83d\udc69\ud83c\udffb\u200d\ud83c\udf73": "woman cook: light skin tone",
- "\ud83d\udc69\ud83c\udffb\u200d\ud83c\udf7c": "woman feeding baby: light skin tone",
- "\ud83d\udc69\ud83c\udffb\u200d\ud83c\udf93": "woman student: light skin tone",
- "\ud83d\udc69\ud83c\udffb\u200d\ud83c\udfa4": "woman singer: light skin tone",
- "\ud83d\udc69\ud83c\udffb\u200d\ud83c\udfa8": "woman artist: light skin tone",
- "\ud83d\udc69\ud83c\udffb\u200d\ud83c\udfeb": "woman teacher: light skin tone",
- "\ud83d\udc69\ud83c\udffb\u200d\ud83c\udfed": "woman factory worker: light skin tone",
- "\ud83d\udc69\ud83c\udffb\u200d\ud83d\udcbb": "woman technologist: light skin tone",
- "\ud83d\udc69\ud83c\udffb\u200d\ud83d\udcbc": "woman office worker: light skin tone",
- "\ud83d\udc69\ud83c\udffb\u200d\ud83d\udd27": "woman mechanic: light skin tone",
- "\ud83d\udc69\ud83c\udffb\u200d\ud83d\udd2c": "woman scientist: light skin tone",
- "\ud83d\udc69\ud83c\udffb\u200d\ud83d\ude80": "woman astronaut: light skin tone",
- "\ud83d\udc69\ud83c\udffb\u200d\ud83d\ude92": "woman firefighter: light skin tone",
- "\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffc": "woman and man holding hands: light skin tone, medium-light skin tone",
- "\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffd": "woman and man holding hands: light skin tone, medium skin tone",
- "\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffe": "woman and man holding hands: light skin tone, medium-dark skin tone",
- "\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udfff": "woman and man holding hands: light skin tone, dark skin tone",
- "\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddaf": "woman with white cane: light skin tone",
- "\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddaf\u200d\u27a1\ufe0f": "woman with white cane facing right: light skin tone",
- "\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddb0": "woman: light skin tone, red hair",
- "\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddb1": "woman: light skin tone, curly hair",
- "\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddb2": "woman: light skin tone, bald",
- "\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddb3": "woman: light skin tone, white hair",
- "\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddbc": "woman in motorized wheelchair: light skin tone",
- "\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddbc\u200d\u27a1\ufe0f": "woman in motorized wheelchair facing right: light skin tone",
- "\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddbd": "woman in manual wheelchair: light skin tone",
- "\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddbd\u200d\u27a1\ufe0f": "woman in manual wheelchair facing right: light skin tone",
- "\ud83d\udc69\ud83c\udffc\u200d\u2695\ufe0f": "woman health worker: medium-light skin tone",
- "\ud83d\udc69\ud83c\udffc\u200d\u2696\ufe0f": "woman judge: medium-light skin tone",
- "\ud83d\udc69\ud83c\udffc\u200d\u2708\ufe0f": "woman pilot: medium-light skin tone",
- "\ud83d\udc69\ud83c\udffc\u200d\ud83c\udf3e": "woman farmer: medium-light skin tone",
- "\ud83d\udc69\ud83c\udffc\u200d\ud83c\udf73": "woman cook: medium-light skin tone",
- "\ud83d\udc69\ud83c\udffc\u200d\ud83c\udf7c": "woman feeding baby: medium-light skin tone",
- "\ud83d\udc69\ud83c\udffc\u200d\ud83c\udf93": "woman student: medium-light skin tone",
- "\ud83d\udc69\ud83c\udffc\u200d\ud83c\udfa4": "woman singer: medium-light skin tone",
- "\ud83d\udc69\ud83c\udffc\u200d\ud83c\udfa8": "woman artist: medium-light skin tone",
- "\ud83d\udc69\ud83c\udffc\u200d\ud83c\udfeb": "woman teacher: medium-light skin tone",
- "\ud83d\udc69\ud83c\udffc\u200d\ud83c\udfed": "woman factory worker: medium-light skin tone",
- "\ud83d\udc69\ud83c\udffc\u200d\ud83d\udcbb": "woman technologist: medium-light skin tone",
- "\ud83d\udc69\ud83c\udffc\u200d\ud83d\udcbc": "woman office worker: medium-light skin tone",
- "\ud83d\udc69\ud83c\udffc\u200d\ud83d\udd27": "woman mechanic: medium-light skin tone",
- "\ud83d\udc69\ud83c\udffc\u200d\ud83d\udd2c": "woman scientist: medium-light skin tone",
- "\ud83d\udc69\ud83c\udffc\u200d\ud83d\ude80": "woman astronaut: medium-light skin tone",
- "\ud83d\udc69\ud83c\udffc\u200d\ud83d\ude92": "woman firefighter: medium-light skin tone",
- "\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffb": "woman and man holding hands: medium-light skin tone, light skin tone",
- "\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffd": "woman and man holding hands: medium-light skin tone, medium skin tone",
- "\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffe": "woman and man holding hands: medium-light skin tone, medium-dark skin tone",
- "\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udfff": "woman and man holding hands: medium-light skin tone, dark skin tone",
- "\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddaf": "woman with white cane: medium-light skin tone",
- "\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddaf\u200d\u27a1\ufe0f": "woman with white cane facing right: medium-light skin tone",
- "\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddb0": "woman: medium-light skin tone, red hair",
- "\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddb1": "woman: medium-light skin tone, curly hair",
- "\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddb2": "woman: medium-light skin tone, bald",
- "\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddb3": "woman: medium-light skin tone, white hair",
- "\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddbc": "woman in motorized wheelchair: medium-light skin tone",
- "\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddbc\u200d\u27a1\ufe0f": "woman in motorized wheelchair facing right: medium-light skin tone",
- "\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddbd": "woman in manual wheelchair: medium-light skin tone",
- "\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddbd\u200d\u27a1\ufe0f": "woman in manual wheelchair facing right: medium-light skin tone",
- "\ud83d\udc69\ud83c\udffd\u200d\u2695\ufe0f": "woman health worker: medium skin tone",
- "\ud83d\udc69\ud83c\udffd\u200d\u2696\ufe0f": "woman judge: medium skin tone",
- "\ud83d\udc69\ud83c\udffd\u200d\u2708\ufe0f": "woman pilot: medium skin tone",
- "\ud83d\udc69\ud83c\udffd\u200d\ud83c\udf3e": "woman farmer: medium skin tone",
- "\ud83d\udc69\ud83c\udffd\u200d\ud83c\udf73": "woman cook: medium skin tone",
- "\ud83d\udc69\ud83c\udffd\u200d\ud83c\udf7c": "woman feeding baby: medium skin tone",
- "\ud83d\udc69\ud83c\udffd\u200d\ud83c\udf93": "woman student: medium skin tone",
- "\ud83d\udc69\ud83c\udffd\u200d\ud83c\udfa4": "woman singer: medium skin tone",
- "\ud83d\udc69\ud83c\udffd\u200d\ud83c\udfa8": "woman artist: medium skin tone",
- "\ud83d\udc69\ud83c\udffd\u200d\ud83c\udfeb": "woman teacher: medium skin tone",
- "\ud83d\udc69\ud83c\udffd\u200d\ud83c\udfed": "woman factory worker: medium skin tone",
- "\ud83d\udc69\ud83c\udffd\u200d\ud83d\udcbb": "woman technologist: medium skin tone",
- "\ud83d\udc69\ud83c\udffd\u200d\ud83d\udcbc": "woman office worker: medium skin tone",
- "\ud83d\udc69\ud83c\udffd\u200d\ud83d\udd27": "woman mechanic: medium skin tone",
- "\ud83d\udc69\ud83c\udffd\u200d\ud83d\udd2c": "woman scientist: medium skin tone",
- "\ud83d\udc69\ud83c\udffd\u200d\ud83d\ude80": "woman astronaut: medium skin tone",
- "\ud83d\udc69\ud83c\udffd\u200d\ud83d\ude92": "woman firefighter: medium skin tone",
- "\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffb": "woman and man holding hands: medium skin tone, light skin tone",
- "\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffc": "woman and man holding hands: medium skin tone, medium-light skin tone",
- "\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffe": "woman and man holding hands: medium skin tone, medium-dark skin tone",
- "\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udfff": "woman and man holding hands: medium skin tone, dark skin tone",
- "\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddaf": "woman with white cane: medium skin tone",
- "\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddaf\u200d\u27a1\ufe0f": "woman with white cane facing right: medium skin tone",
- "\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddb0": "woman: medium skin tone, red hair",
- "\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddb1": "woman: medium skin tone, curly hair",
- "\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddb2": "woman: medium skin tone, bald",
- "\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddb3": "woman: medium skin tone, white hair",
- "\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddbc": "woman in motorized wheelchair: medium skin tone",
- "\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddbc\u200d\u27a1\ufe0f": "woman in motorized wheelchair facing right: medium skin tone",
- "\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddbd": "woman in manual wheelchair: medium skin tone",
- "\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddbd\u200d\u27a1\ufe0f": "woman in manual wheelchair facing right: medium skin tone",
- "\ud83d\udc69\ud83c\udffe\u200d\u2695\ufe0f": "woman health worker: medium-dark skin tone",
- "\ud83d\udc69\ud83c\udffe\u200d\u2696\ufe0f": "woman judge: medium-dark skin tone",
- "\ud83d\udc69\ud83c\udffe\u200d\u2708\ufe0f": "woman pilot: medium-dark skin tone",
- "\ud83d\udc69\ud83c\udffe\u200d\ud83c\udf3e": "woman farmer: medium-dark skin tone",
- "\ud83d\udc69\ud83c\udffe\u200d\ud83c\udf73": "woman cook: medium-dark skin tone",
- "\ud83d\udc69\ud83c\udffe\u200d\ud83c\udf7c": "woman feeding baby: medium-dark skin tone",
- "\ud83d\udc69\ud83c\udffe\u200d\ud83c\udf93": "woman student: medium-dark skin tone",
- "\ud83d\udc69\ud83c\udffe\u200d\ud83c\udfa4": "woman singer: medium-dark skin tone",
- "\ud83d\udc69\ud83c\udffe\u200d\ud83c\udfa8": "woman artist: medium-dark skin tone",
- "\ud83d\udc69\ud83c\udffe\u200d\ud83c\udfeb": "woman teacher: medium-dark skin tone",
- "\ud83d\udc69\ud83c\udffe\u200d\ud83c\udfed": "woman factory worker: medium-dark skin tone",
- "\ud83d\udc69\ud83c\udffe\u200d\ud83d\udcbb": "woman technologist: medium-dark skin tone",
- "\ud83d\udc69\ud83c\udffe\u200d\ud83d\udcbc": "woman office worker: medium-dark skin tone",
- "\ud83d\udc69\ud83c\udffe\u200d\ud83d\udd27": "woman mechanic: medium-dark skin tone",
- "\ud83d\udc69\ud83c\udffe\u200d\ud83d\udd2c": "woman scientist: medium-dark skin tone",
- "\ud83d\udc69\ud83c\udffe\u200d\ud83d\ude80": "woman astronaut: medium-dark skin tone",
- "\ud83d\udc69\ud83c\udffe\u200d\ud83d\ude92": "woman firefighter: medium-dark skin tone",
- "\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffb": "woman and man holding hands: medium-dark skin tone, light skin tone",
- "\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffc": "woman and man holding hands: medium-dark skin tone, medium-light skin tone",
- "\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffd": "woman and man holding hands: medium-dark skin tone, medium skin tone",
- "\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udfff": "woman and man holding hands: medium-dark skin tone, dark skin tone",
- "\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddaf": "woman with white cane: medium-dark skin tone",
- "\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddaf\u200d\u27a1\ufe0f": "woman with white cane facing right: medium-dark skin tone",
- "\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddb0": "woman: medium-dark skin tone, red hair",
- "\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddb1": "woman: medium-dark skin tone, curly hair",
- "\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddb2": "woman: medium-dark skin tone, bald",
- "\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddb3": "woman: medium-dark skin tone, white hair",
- "\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddbc": "woman in motorized wheelchair: medium-dark skin tone",
- "\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddbc\u200d\u27a1\ufe0f": "woman in motorized wheelchair facing right: medium-dark skin tone",
- "\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddbd": "woman in manual wheelchair: medium-dark skin tone",
- "\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddbd\u200d\u27a1\ufe0f": "woman in manual wheelchair facing right: medium-dark skin tone",
- "\ud83d\udc69\ud83c\udfff\u200d\u2695\ufe0f": "woman health worker: dark skin tone",
- "\ud83d\udc69\ud83c\udfff\u200d\u2696\ufe0f": "woman judge: dark skin tone",
- "\ud83d\udc69\ud83c\udfff\u200d\u2708\ufe0f": "woman pilot: dark skin tone",
- "\ud83d\udc69\ud83c\udfff\u200d\ud83c\udf3e": "woman farmer: dark skin tone",
- "\ud83d\udc69\ud83c\udfff\u200d\ud83c\udf73": "woman cook: dark skin tone",
- "\ud83d\udc69\ud83c\udfff\u200d\ud83c\udf7c": "woman feeding baby: dark skin tone",
- "\ud83d\udc69\ud83c\udfff\u200d\ud83c\udf93": "woman student: dark skin tone",
- "\ud83d\udc69\ud83c\udfff\u200d\ud83c\udfa4": "woman singer: dark skin tone",
- "\ud83d\udc69\ud83c\udfff\u200d\ud83c\udfa8": "woman artist: dark skin tone",
- "\ud83d\udc69\ud83c\udfff\u200d\ud83c\udfeb": "woman teacher: dark skin tone",
- "\ud83d\udc69\ud83c\udfff\u200d\ud83c\udfed": "woman factory worker: dark skin tone",
- "\ud83d\udc69\ud83c\udfff\u200d\ud83d\udcbb": "woman technologist: dark skin tone",
- "\ud83d\udc69\ud83c\udfff\u200d\ud83d\udcbc": "woman office worker: dark skin tone",
- "\ud83d\udc69\ud83c\udfff\u200d\ud83d\udd27": "woman mechanic: dark skin tone",
- "\ud83d\udc69\ud83c\udfff\u200d\ud83d\udd2c": "woman scientist: dark skin tone",
- "\ud83d\udc69\ud83c\udfff\u200d\ud83d\ude80": "woman astronaut: dark skin tone",
- "\ud83d\udc69\ud83c\udfff\u200d\ud83d\ude92": "woman firefighter: dark skin tone",
- "\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffb": "woman and man holding hands: dark skin tone, light skin tone",
- "\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffc": "woman and man holding hands: dark skin tone, medium-light skin tone",
- "\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffd": "woman and man holding hands: dark skin tone, medium skin tone",
- "\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffe": "woman and man holding hands: dark skin tone, medium-dark skin tone",
- "\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddaf": "woman with white cane: dark skin tone",
- "\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddaf\u200d\u27a1\ufe0f": "woman with white cane facing right: dark skin tone",
- "\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddb0": "woman: dark skin tone, red hair",
- "\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddb1": "woman: dark skin tone, curly hair",
- "\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddb2": "woman: dark skin tone, bald",
- "\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddb3": "woman: dark skin tone, white hair",
- "\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddbc": "woman in motorized wheelchair: dark skin tone",
- "\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddbc\u200d\u27a1\ufe0f": "woman in motorized wheelchair facing right: dark skin tone",
- "\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddbd": "woman in manual wheelchair: dark skin tone",
- "\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddbd\u200d\u27a1\ufe0f": "woman in manual wheelchair facing right: dark skin tone",
- "\ud83d\udc6e\u200d\u2640\ufe0f": "woman police officer",
- "\ud83d\udc6e\u200d\u2642\ufe0f": "man police officer",
- "\ud83d\udc6e\ud83c\udffb\u200d\u2640\ufe0f": "woman police officer: light skin tone",
- "\ud83d\udc6e\ud83c\udffb\u200d\u2642\ufe0f": "man police officer: light skin tone",
- "\ud83d\udc6e\ud83c\udffc\u200d\u2640\ufe0f": "woman police officer: medium-light skin tone",
- "\ud83d\udc6e\ud83c\udffc\u200d\u2642\ufe0f": "man police officer: medium-light skin tone",
- "\ud83d\udc6e\ud83c\udffd\u200d\u2640\ufe0f": "woman police officer: medium skin tone",
- "\ud83d\udc6e\ud83c\udffd\u200d\u2642\ufe0f": "man police officer: medium skin tone",
- "\ud83d\udc6e\ud83c\udffe\u200d\u2640\ufe0f": "woman police officer: medium-dark skin tone",
- "\ud83d\udc6e\ud83c\udffe\u200d\u2642\ufe0f": "man police officer: medium-dark skin tone",
- "\ud83d\udc6e\ud83c\udfff\u200d\u2640\ufe0f": "woman police officer: dark skin tone",
- "\ud83d\udc6e\ud83c\udfff\u200d\u2642\ufe0f": "man police officer: dark skin tone",
- "\ud83d\udc6f\u200d\u2640\ufe0f": "women with bunny ears",
- "\ud83d\udc6f\u200d\u2642\ufe0f": "men with bunny ears",
- "\ud83d\udc70\u200d\u2640\ufe0f": "woman with veil",
- "\ud83d\udc70\u200d\u2642\ufe0f": "man with veil",
- "\ud83d\udc70\ud83c\udffb\u200d\u2640\ufe0f": "woman with veil: light skin tone",
- "\ud83d\udc70\ud83c\udffb\u200d\u2642\ufe0f": "man with veil: light skin tone",
- "\ud83d\udc70\ud83c\udffc\u200d\u2640\ufe0f": "woman with veil: medium-light skin tone",
- "\ud83d\udc70\ud83c\udffc\u200d\u2642\ufe0f": "man with veil: medium-light skin tone",
- "\ud83d\udc70\ud83c\udffd\u200d\u2640\ufe0f": "woman with veil: medium skin tone",
- "\ud83d\udc70\ud83c\udffd\u200d\u2642\ufe0f": "man with veil: medium skin tone",
- "\ud83d\udc70\ud83c\udffe\u200d\u2640\ufe0f": "woman with veil: medium-dark skin tone",
- "\ud83d\udc70\ud83c\udffe\u200d\u2642\ufe0f": "man with veil: medium-dark skin tone",
- "\ud83d\udc70\ud83c\udfff\u200d\u2640\ufe0f": "woman with veil: dark skin tone",
- "\ud83d\udc70\ud83c\udfff\u200d\u2642\ufe0f": "man with veil: dark skin tone",
- "\ud83d\udc71\u200d\u2640\ufe0f": "woman: blond hair",
- "\ud83d\udc71\u200d\u2642\ufe0f": "man: blond hair",
- "\ud83d\udc71\ud83c\udffb\u200d\u2640\ufe0f": "woman: light skin tone, blond hair",
- "\ud83d\udc71\ud83c\udffb\u200d\u2642\ufe0f": "man: light skin tone, blond hair",
- "\ud83d\udc71\ud83c\udffc\u200d\u2640\ufe0f": "woman: medium-light skin tone, blond hair",
- "\ud83d\udc71\ud83c\udffc\u200d\u2642\ufe0f": "man: medium-light skin tone, blond hair",
- "\ud83d\udc71\ud83c\udffd\u200d\u2640\ufe0f": "woman: medium skin tone, blond hair",
- "\ud83d\udc71\ud83c\udffd\u200d\u2642\ufe0f": "man: medium skin tone, blond hair",
- "\ud83d\udc71\ud83c\udffe\u200d\u2640\ufe0f": "woman: medium-dark skin tone, blond hair",
- "\ud83d\udc71\ud83c\udffe\u200d\u2642\ufe0f": "man: medium-dark skin tone, blond hair",
- "\ud83d\udc71\ud83c\udfff\u200d\u2640\ufe0f": "woman: dark skin tone, blond hair",
- "\ud83d\udc71\ud83c\udfff\u200d\u2642\ufe0f": "man: dark skin tone, blond hair",
- "\ud83d\udc73\u200d\u2640\ufe0f": "woman wearing turban",
- "\ud83d\udc73\u200d\u2642\ufe0f": "man wearing turban",
- "\ud83d\udc73\ud83c\udffb\u200d\u2640\ufe0f": "woman wearing turban: light skin tone",
- "\ud83d\udc73\ud83c\udffb\u200d\u2642\ufe0f": "man wearing turban: light skin tone",
- "\ud83d\udc73\ud83c\udffc\u200d\u2640\ufe0f": "woman wearing turban: medium-light skin tone",
- "\ud83d\udc73\ud83c\udffc\u200d\u2642\ufe0f": "man wearing turban: medium-light skin tone",
- "\ud83d\udc73\ud83c\udffd\u200d\u2640\ufe0f": "woman wearing turban: medium skin tone",
- "\ud83d\udc73\ud83c\udffd\u200d\u2642\ufe0f": "man wearing turban: medium skin tone",
- "\ud83d\udc73\ud83c\udffe\u200d\u2640\ufe0f": "woman wearing turban: medium-dark skin tone",
- "\ud83d\udc73\ud83c\udffe\u200d\u2642\ufe0f": "man wearing turban: medium-dark skin tone",
- "\ud83d\udc73\ud83c\udfff\u200d\u2640\ufe0f": "woman wearing turban: dark skin tone",
- "\ud83d\udc73\ud83c\udfff\u200d\u2642\ufe0f": "man wearing turban: dark skin tone",
- "\ud83d\udc77\u200d\u2640\ufe0f": "woman construction worker",
- "\ud83d\udc77\u200d\u2642\ufe0f": "man construction worker",
- "\ud83d\udc77\ud83c\udffb\u200d\u2640\ufe0f": "woman construction worker: light skin tone",
- "\ud83d\udc77\ud83c\udffb\u200d\u2642\ufe0f": "man construction worker: light skin tone",
- "\ud83d\udc77\ud83c\udffc\u200d\u2640\ufe0f": "woman construction worker: medium-light skin tone",
- "\ud83d\udc77\ud83c\udffc\u200d\u2642\ufe0f": "man construction worker: medium-light skin tone",
- "\ud83d\udc77\ud83c\udffd\u200d\u2640\ufe0f": "woman construction worker: medium skin tone",
- "\ud83d\udc77\ud83c\udffd\u200d\u2642\ufe0f": "man construction worker: medium skin tone",
- "\ud83d\udc77\ud83c\udffe\u200d\u2640\ufe0f": "woman construction worker: medium-dark skin tone",
- "\ud83d\udc77\ud83c\udffe\u200d\u2642\ufe0f": "man construction worker: medium-dark skin tone",
- "\ud83d\udc77\ud83c\udfff\u200d\u2640\ufe0f": "woman construction worker: dark skin tone",
- "\ud83d\udc77\ud83c\udfff\u200d\u2642\ufe0f": "man construction worker: dark skin tone",
- "\ud83d\udc81\u200d\u2640\ufe0f": "woman tipping hand",
- "\ud83d\udc81\u200d\u2642\ufe0f": "man tipping hand",
- "\ud83d\udc81\ud83c\udffb\u200d\u2640\ufe0f": "woman tipping hand: light skin tone",
- "\ud83d\udc81\ud83c\udffb\u200d\u2642\ufe0f": "man tipping hand: light skin tone",
- "\ud83d\udc81\ud83c\udffc\u200d\u2640\ufe0f": "woman tipping hand: medium-light skin tone",
- "\ud83d\udc81\ud83c\udffc\u200d\u2642\ufe0f": "man tipping hand: medium-light skin tone",
- "\ud83d\udc81\ud83c\udffd\u200d\u2640\ufe0f": "woman tipping hand: medium skin tone",
- "\ud83d\udc81\ud83c\udffd\u200d\u2642\ufe0f": "man tipping hand: medium skin tone",
- "\ud83d\udc81\ud83c\udffe\u200d\u2640\ufe0f": "woman tipping hand: medium-dark skin tone",
- "\ud83d\udc81\ud83c\udffe\u200d\u2642\ufe0f": "man tipping hand: medium-dark skin tone",
- "\ud83d\udc81\ud83c\udfff\u200d\u2640\ufe0f": "woman tipping hand: dark skin tone",
- "\ud83d\udc81\ud83c\udfff\u200d\u2642\ufe0f": "man tipping hand: dark skin tone",
- "\ud83d\udc82\u200d\u2640\ufe0f": "woman guard",
- "\ud83d\udc82\u200d\u2642\ufe0f": "man guard",
- "\ud83d\udc82\ud83c\udffb\u200d\u2640\ufe0f": "woman guard: light skin tone",
- "\ud83d\udc82\ud83c\udffb\u200d\u2642\ufe0f": "man guard: light skin tone",
- "\ud83d\udc82\ud83c\udffc\u200d\u2640\ufe0f": "woman guard: medium-light skin tone",
- "\ud83d\udc82\ud83c\udffc\u200d\u2642\ufe0f": "man guard: medium-light skin tone",
- "\ud83d\udc82\ud83c\udffd\u200d\u2640\ufe0f": "woman guard: medium skin tone",
- "\ud83d\udc82\ud83c\udffd\u200d\u2642\ufe0f": "man guard: medium skin tone",
- "\ud83d\udc82\ud83c\udffe\u200d\u2640\ufe0f": "woman guard: medium-dark skin tone",
- "\ud83d\udc82\ud83c\udffe\u200d\u2642\ufe0f": "man guard: medium-dark skin tone",
- "\ud83d\udc82\ud83c\udfff\u200d\u2640\ufe0f": "woman guard: dark skin tone",
- "\ud83d\udc82\ud83c\udfff\u200d\u2642\ufe0f": "man guard: dark skin tone",
- "\ud83d\udc86\u200d\u2640\ufe0f": "woman getting massage",
- "\ud83d\udc86\u200d\u2642\ufe0f": "man getting massage",
- "\ud83d\udc86\ud83c\udffb\u200d\u2640\ufe0f": "woman getting massage: light skin tone",
- "\ud83d\udc86\ud83c\udffb\u200d\u2642\ufe0f": "man getting massage: light skin tone",
- "\ud83d\udc86\ud83c\udffc\u200d\u2640\ufe0f": "woman getting massage: medium-light skin tone",
- "\ud83d\udc86\ud83c\udffc\u200d\u2642\ufe0f": "man getting massage: medium-light skin tone",
- "\ud83d\udc86\ud83c\udffd\u200d\u2640\ufe0f": "woman getting massage: medium skin tone",
- "\ud83d\udc86\ud83c\udffd\u200d\u2642\ufe0f": "man getting massage: medium skin tone",
- "\ud83d\udc86\ud83c\udffe\u200d\u2640\ufe0f": "woman getting massage: medium-dark skin tone",
- "\ud83d\udc86\ud83c\udffe\u200d\u2642\ufe0f": "man getting massage: medium-dark skin tone",
- "\ud83d\udc86\ud83c\udfff\u200d\u2640\ufe0f": "woman getting massage: dark skin tone",
- "\ud83d\udc86\ud83c\udfff\u200d\u2642\ufe0f": "man getting massage: dark skin tone",
- "\ud83d\udc87\u200d\u2640\ufe0f": "woman getting haircut",
- "\ud83d\udc87\u200d\u2642\ufe0f": "man getting haircut",
- "\ud83d\udc87\ud83c\udffb\u200d\u2640\ufe0f": "woman getting haircut: light skin tone",
- "\ud83d\udc87\ud83c\udffb\u200d\u2642\ufe0f": "man getting haircut: light skin tone",
- "\ud83d\udc87\ud83c\udffc\u200d\u2640\ufe0f": "woman getting haircut: medium-light skin tone",
- "\ud83d\udc87\ud83c\udffc\u200d\u2642\ufe0f": "man getting haircut: medium-light skin tone",
- "\ud83d\udc87\ud83c\udffd\u200d\u2640\ufe0f": "woman getting haircut: medium skin tone",
- "\ud83d\udc87\ud83c\udffd\u200d\u2642\ufe0f": "man getting haircut: medium skin tone",
- "\ud83d\udc87\ud83c\udffe\u200d\u2640\ufe0f": "woman getting haircut: medium-dark skin tone",
- "\ud83d\udc87\ud83c\udffe\u200d\u2642\ufe0f": "man getting haircut: medium-dark skin tone",
- "\ud83d\udc87\ud83c\udfff\u200d\u2640\ufe0f": "woman getting haircut: dark skin tone",
- "\ud83d\udc87\ud83c\udfff\u200d\u2642\ufe0f": "man getting haircut: dark skin tone",
- "\ud83d\udd75\ufe0f\u200d\u2640\ufe0f": "woman detective",
- "\ud83d\udd75\ufe0f\u200d\u2642\ufe0f": "man detective",
- "\ud83d\udd75\ud83c\udffb\u200d\u2640\ufe0f": "woman detective: light skin tone",
- "\ud83d\udd75\ud83c\udffb\u200d\u2642\ufe0f": "man detective: light skin tone",
- "\ud83d\udd75\ud83c\udffc\u200d\u2640\ufe0f": "woman detective: medium-light skin tone",
- "\ud83d\udd75\ud83c\udffc\u200d\u2642\ufe0f": "man detective: medium-light skin tone",
- "\ud83d\udd75\ud83c\udffd\u200d\u2640\ufe0f": "woman detective: medium skin tone",
- "\ud83d\udd75\ud83c\udffd\u200d\u2642\ufe0f": "man detective: medium skin tone",
- "\ud83d\udd75\ud83c\udffe\u200d\u2640\ufe0f": "woman detective: medium-dark skin tone",
- "\ud83d\udd75\ud83c\udffe\u200d\u2642\ufe0f": "man detective: medium-dark skin tone",
- "\ud83d\udd75\ud83c\udfff\u200d\u2640\ufe0f": "woman detective: dark skin tone",
- "\ud83d\udd75\ud83c\udfff\u200d\u2642\ufe0f": "man detective: dark skin tone",
- "\ud83d\ude2e\u200d\ud83d\udca8": "face exhaling",
- "\ud83d\ude35\u200d\ud83d\udcab": "face with spiral eyes",
- "\ud83d\ude36\u200d\ud83c\udf2b\ufe0f": "face in clouds",
- "\ud83d\ude42\u200d\u2194\ufe0f": "head shaking horizontally",
- "\ud83d\ude42\u200d\u2195\ufe0f": "head shaking vertically",
- "\ud83d\ude45\u200d\u2640\ufe0f": "woman gesturing NO",
- "\ud83d\ude45\u200d\u2642\ufe0f": "man gesturing NO",
- "\ud83d\ude45\ud83c\udffb\u200d\u2640\ufe0f": "woman gesturing NO: light skin tone",
- "\ud83d\ude45\ud83c\udffb\u200d\u2642\ufe0f": "man gesturing NO: light skin tone",
- "\ud83d\ude45\ud83c\udffc\u200d\u2640\ufe0f": "woman gesturing NO: medium-light skin tone",
- "\ud83d\ude45\ud83c\udffc\u200d\u2642\ufe0f": "man gesturing NO: medium-light skin tone",
- "\ud83d\ude45\ud83c\udffd\u200d\u2640\ufe0f": "woman gesturing NO: medium skin tone",
- "\ud83d\ude45\ud83c\udffd\u200d\u2642\ufe0f": "man gesturing NO: medium skin tone",
- "\ud83d\ude45\ud83c\udffe\u200d\u2640\ufe0f": "woman gesturing NO: medium-dark skin tone",
- "\ud83d\ude45\ud83c\udffe\u200d\u2642\ufe0f": "man gesturing NO: medium-dark skin tone",
- "\ud83d\ude45\ud83c\udfff\u200d\u2640\ufe0f": "woman gesturing NO: dark skin tone",
- "\ud83d\ude45\ud83c\udfff\u200d\u2642\ufe0f": "man gesturing NO: dark skin tone",
- "\ud83d\ude46\u200d\u2640\ufe0f": "woman gesturing OK",
- "\ud83d\ude46\u200d\u2642\ufe0f": "man gesturing OK",
- "\ud83d\ude46\ud83c\udffb\u200d\u2640\ufe0f": "woman gesturing OK: light skin tone",
- "\ud83d\ude46\ud83c\udffb\u200d\u2642\ufe0f": "man gesturing OK: light skin tone",
- "\ud83d\ude46\ud83c\udffc\u200d\u2640\ufe0f": "woman gesturing OK: medium-light skin tone",
- "\ud83d\ude46\ud83c\udffc\u200d\u2642\ufe0f": "man gesturing OK: medium-light skin tone",
- "\ud83d\ude46\ud83c\udffd\u200d\u2640\ufe0f": "woman gesturing OK: medium skin tone",
- "\ud83d\ude46\ud83c\udffd\u200d\u2642\ufe0f": "man gesturing OK: medium skin tone",
- "\ud83d\ude46\ud83c\udffe\u200d\u2640\ufe0f": "woman gesturing OK: medium-dark skin tone",
- "\ud83d\ude46\ud83c\udffe\u200d\u2642\ufe0f": "man gesturing OK: medium-dark skin tone",
- "\ud83d\ude46\ud83c\udfff\u200d\u2640\ufe0f": "woman gesturing OK: dark skin tone",
- "\ud83d\ude46\ud83c\udfff\u200d\u2642\ufe0f": "man gesturing OK: dark skin tone",
- "\ud83d\ude47\u200d\u2640\ufe0f": "woman bowing",
- "\ud83d\ude47\u200d\u2642\ufe0f": "man bowing",
- "\ud83d\ude47\ud83c\udffb\u200d\u2640\ufe0f": "woman bowing: light skin tone",
- "\ud83d\ude47\ud83c\udffb\u200d\u2642\ufe0f": "man bowing: light skin tone",
- "\ud83d\ude47\ud83c\udffc\u200d\u2640\ufe0f": "woman bowing: medium-light skin tone",
- "\ud83d\ude47\ud83c\udffc\u200d\u2642\ufe0f": "man bowing: medium-light skin tone",
- "\ud83d\ude47\ud83c\udffd\u200d\u2640\ufe0f": "woman bowing: medium skin tone",
- "\ud83d\ude47\ud83c\udffd\u200d\u2642\ufe0f": "man bowing: medium skin tone",
- "\ud83d\ude47\ud83c\udffe\u200d\u2640\ufe0f": "woman bowing: medium-dark skin tone",
- "\ud83d\ude47\ud83c\udffe\u200d\u2642\ufe0f": "man bowing: medium-dark skin tone",
- "\ud83d\ude47\ud83c\udfff\u200d\u2640\ufe0f": "woman bowing: dark skin tone",
- "\ud83d\ude47\ud83c\udfff\u200d\u2642\ufe0f": "man bowing: dark skin tone",
- "\ud83d\ude4b\u200d\u2640\ufe0f": "woman raising hand",
- "\ud83d\ude4b\u200d\u2642\ufe0f": "man raising hand",
- "\ud83d\ude4b\ud83c\udffb\u200d\u2640\ufe0f": "woman raising hand: light skin tone",
- "\ud83d\ude4b\ud83c\udffb\u200d\u2642\ufe0f": "man raising hand: light skin tone",
- "\ud83d\ude4b\ud83c\udffc\u200d\u2640\ufe0f": "woman raising hand: medium-light skin tone",
- "\ud83d\ude4b\ud83c\udffc\u200d\u2642\ufe0f": "man raising hand: medium-light skin tone",
- "\ud83d\ude4b\ud83c\udffd\u200d\u2640\ufe0f": "woman raising hand: medium skin tone",
- "\ud83d\ude4b\ud83c\udffd\u200d\u2642\ufe0f": "man raising hand: medium skin tone",
- "\ud83d\ude4b\ud83c\udffe\u200d\u2640\ufe0f": "woman raising hand: medium-dark skin tone",
- "\ud83d\ude4b\ud83c\udffe\u200d\u2642\ufe0f": "man raising hand: medium-dark skin tone",
- "\ud83d\ude4b\ud83c\udfff\u200d\u2640\ufe0f": "woman raising hand: dark skin tone",
- "\ud83d\ude4b\ud83c\udfff\u200d\u2642\ufe0f": "man raising hand: dark skin tone",
- "\ud83d\ude4d\u200d\u2640\ufe0f": "woman frowning",
- "\ud83d\ude4d\u200d\u2642\ufe0f": "man frowning",
- "\ud83d\ude4d\ud83c\udffb\u200d\u2640\ufe0f": "woman frowning: light skin tone",
- "\ud83d\ude4d\ud83c\udffb\u200d\u2642\ufe0f": "man frowning: light skin tone",
- "\ud83d\ude4d\ud83c\udffc\u200d\u2640\ufe0f": "woman frowning: medium-light skin tone",
- "\ud83d\ude4d\ud83c\udffc\u200d\u2642\ufe0f": "man frowning: medium-light skin tone",
- "\ud83d\ude4d\ud83c\udffd\u200d\u2640\ufe0f": "woman frowning: medium skin tone",
- "\ud83d\ude4d\ud83c\udffd\u200d\u2642\ufe0f": "man frowning: medium skin tone",
- "\ud83d\ude4d\ud83c\udffe\u200d\u2640\ufe0f": "woman frowning: medium-dark skin tone",
- "\ud83d\ude4d\ud83c\udffe\u200d\u2642\ufe0f": "man frowning: medium-dark skin tone",
- "\ud83d\ude4d\ud83c\udfff\u200d\u2640\ufe0f": "woman frowning: dark skin tone",
- "\ud83d\ude4d\ud83c\udfff\u200d\u2642\ufe0f": "man frowning: dark skin tone",
- "\ud83d\ude4e\u200d\u2640\ufe0f": "woman pouting",
- "\ud83d\ude4e\u200d\u2642\ufe0f": "man pouting",
- "\ud83d\ude4e\ud83c\udffb\u200d\u2640\ufe0f": "woman pouting: light skin tone",
- "\ud83d\ude4e\ud83c\udffb\u200d\u2642\ufe0f": "man pouting: light skin tone",
- "\ud83d\ude4e\ud83c\udffc\u200d\u2640\ufe0f": "woman pouting: medium-light skin tone",
- "\ud83d\ude4e\ud83c\udffc\u200d\u2642\ufe0f": "man pouting: medium-light skin tone",
- "\ud83d\ude4e\ud83c\udffd\u200d\u2640\ufe0f": "woman pouting: medium skin tone",
- "\ud83d\ude4e\ud83c\udffd\u200d\u2642\ufe0f": "man pouting: medium skin tone",
- "\ud83d\ude4e\ud83c\udffe\u200d\u2640\ufe0f": "woman pouting: medium-dark skin tone",
- "\ud83d\ude4e\ud83c\udffe\u200d\u2642\ufe0f": "man pouting: medium-dark skin tone",
- "\ud83d\ude4e\ud83c\udfff\u200d\u2640\ufe0f": "woman pouting: dark skin tone",
- "\ud83d\ude4e\ud83c\udfff\u200d\u2642\ufe0f": "man pouting: dark skin tone",
- "\ud83d\udea3\u200d\u2640\ufe0f": "woman rowing boat",
- "\ud83d\udea3\u200d\u2642\ufe0f": "man rowing boat",
- "\ud83d\udea3\ud83c\udffb\u200d\u2640\ufe0f": "woman rowing boat: light skin tone",
- "\ud83d\udea3\ud83c\udffb\u200d\u2642\ufe0f": "man rowing boat: light skin tone",
- "\ud83d\udea3\ud83c\udffc\u200d\u2640\ufe0f": "woman rowing boat: medium-light skin tone",
- "\ud83d\udea3\ud83c\udffc\u200d\u2642\ufe0f": "man rowing boat: medium-light skin tone",
- "\ud83d\udea3\ud83c\udffd\u200d\u2640\ufe0f": "woman rowing boat: medium skin tone",
- "\ud83d\udea3\ud83c\udffd\u200d\u2642\ufe0f": "man rowing boat: medium skin tone",
- "\ud83d\udea3\ud83c\udffe\u200d\u2640\ufe0f": "woman rowing boat: medium-dark skin tone",
- "\ud83d\udea3\ud83c\udffe\u200d\u2642\ufe0f": "man rowing boat: medium-dark skin tone",
- "\ud83d\udea3\ud83c\udfff\u200d\u2640\ufe0f": "woman rowing boat: dark skin tone",
- "\ud83d\udea3\ud83c\udfff\u200d\u2642\ufe0f": "man rowing boat: dark skin tone",
- "\ud83d\udeb4\u200d\u2640\ufe0f": "woman biking",
- "\ud83d\udeb4\u200d\u2642\ufe0f": "man biking",
- "\ud83d\udeb4\ud83c\udffb\u200d\u2640\ufe0f": "woman biking: light skin tone",
- "\ud83d\udeb4\ud83c\udffb\u200d\u2642\ufe0f": "man biking: light skin tone",
- "\ud83d\udeb4\ud83c\udffc\u200d\u2640\ufe0f": "woman biking: medium-light skin tone",
- "\ud83d\udeb4\ud83c\udffc\u200d\u2642\ufe0f": "man biking: medium-light skin tone",
- "\ud83d\udeb4\ud83c\udffd\u200d\u2640\ufe0f": "woman biking: medium skin tone",
- "\ud83d\udeb4\ud83c\udffd\u200d\u2642\ufe0f": "man biking: medium skin tone",
- "\ud83d\udeb4\ud83c\udffe\u200d\u2640\ufe0f": "woman biking: medium-dark skin tone",
- "\ud83d\udeb4\ud83c\udffe\u200d\u2642\ufe0f": "man biking: medium-dark skin tone",
- "\ud83d\udeb4\ud83c\udfff\u200d\u2640\ufe0f": "woman biking: dark skin tone",
- "\ud83d\udeb4\ud83c\udfff\u200d\u2642\ufe0f": "man biking: dark skin tone",
- "\ud83d\udeb5\u200d\u2640\ufe0f": "woman mountain biking",
- "\ud83d\udeb5\u200d\u2642\ufe0f": "man mountain biking",
- "\ud83d\udeb5\ud83c\udffb\u200d\u2640\ufe0f": "woman mountain biking: light skin tone",
- "\ud83d\udeb5\ud83c\udffb\u200d\u2642\ufe0f": "man mountain biking: light skin tone",
- "\ud83d\udeb5\ud83c\udffc\u200d\u2640\ufe0f": "woman mountain biking: medium-light skin tone",
- "\ud83d\udeb5\ud83c\udffc\u200d\u2642\ufe0f": "man mountain biking: medium-light skin tone",
- "\ud83d\udeb5\ud83c\udffd\u200d\u2640\ufe0f": "woman mountain biking: medium skin tone",
- "\ud83d\udeb5\ud83c\udffd\u200d\u2642\ufe0f": "man mountain biking: medium skin tone",
- "\ud83d\udeb5\ud83c\udffe\u200d\u2640\ufe0f": "woman mountain biking: medium-dark skin tone",
- "\ud83d\udeb5\ud83c\udffe\u200d\u2642\ufe0f": "man mountain biking: medium-dark skin tone",
- "\ud83d\udeb5\ud83c\udfff\u200d\u2640\ufe0f": "woman mountain biking: dark skin tone",
- "\ud83d\udeb5\ud83c\udfff\u200d\u2642\ufe0f": "man mountain biking: dark skin tone",
- "\ud83d\udeb6\u200d\u2640\ufe0f": "woman walking",
- "\ud83d\udeb6\u200d\u2640\ufe0f\u200d\u27a1\ufe0f": "woman walking facing right",
- "\ud83d\udeb6\u200d\u2642\ufe0f": "man walking",
- "\ud83d\udeb6\u200d\u2642\ufe0f\u200d\u27a1\ufe0f": "man walking facing right",
- "\ud83d\udeb6\u200d\u27a1\ufe0f": "person walking facing right",
- "\ud83d\udeb6\ud83c\udffb\u200d\u2640\ufe0f": "woman walking: light skin tone",
- "\ud83d\udeb6\ud83c\udffb\u200d\u2640\ufe0f\u200d\u27a1\ufe0f": "woman walking facing right: light skin tone",
- "\ud83d\udeb6\ud83c\udffb\u200d\u2642\ufe0f": "man walking: light skin tone",
- "\ud83d\udeb6\ud83c\udffb\u200d\u2642\ufe0f\u200d\u27a1\ufe0f": "man walking facing right: light skin tone",
- "\ud83d\udeb6\ud83c\udffb\u200d\u27a1\ufe0f": "person walking facing right: light skin tone",
- "\ud83d\udeb6\ud83c\udffc\u200d\u2640\ufe0f": "woman walking: medium-light skin tone",
- "\ud83d\udeb6\ud83c\udffc\u200d\u2640\ufe0f\u200d\u27a1\ufe0f": "woman walking facing right: medium-light skin tone",
- "\ud83d\udeb6\ud83c\udffc\u200d\u2642\ufe0f": "man walking: medium-light skin tone",
- "\ud83d\udeb6\ud83c\udffc\u200d\u2642\ufe0f\u200d\u27a1\ufe0f": "man walking facing right: medium-light skin tone",
- "\ud83d\udeb6\ud83c\udffc\u200d\u27a1\ufe0f": "person walking facing right: medium-light skin tone",
- "\ud83d\udeb6\ud83c\udffd\u200d\u2640\ufe0f": "woman walking: medium skin tone",
- "\ud83d\udeb6\ud83c\udffd\u200d\u2640\ufe0f\u200d\u27a1\ufe0f": "woman walking facing right: medium skin tone",
- "\ud83d\udeb6\ud83c\udffd\u200d\u2642\ufe0f": "man walking: medium skin tone",
- "\ud83d\udeb6\ud83c\udffd\u200d\u2642\ufe0f\u200d\u27a1\ufe0f": "man walking facing right: medium skin tone",
- "\ud83d\udeb6\ud83c\udffd\u200d\u27a1\ufe0f": "person walking facing right: medium skin tone",
- "\ud83d\udeb6\ud83c\udffe\u200d\u2640\ufe0f": "woman walking: medium-dark skin tone",
- "\ud83d\udeb6\ud83c\udffe\u200d\u2640\ufe0f\u200d\u27a1\ufe0f": "woman walking facing right: medium-dark skin tone",
- "\ud83d\udeb6\ud83c\udffe\u200d\u2642\ufe0f": "man walking: medium-dark skin tone",
- "\ud83d\udeb6\ud83c\udffe\u200d\u2642\ufe0f\u200d\u27a1\ufe0f": "man walking facing right: medium-dark skin tone",
- "\ud83d\udeb6\ud83c\udffe\u200d\u27a1\ufe0f": "person walking facing right: medium-dark skin tone",
- "\ud83d\udeb6\ud83c\udfff\u200d\u2640\ufe0f": "woman walking: dark skin tone",
- "\ud83d\udeb6\ud83c\udfff\u200d\u2640\ufe0f\u200d\u27a1\ufe0f": "woman walking facing right: dark skin tone",
- "\ud83d\udeb6\ud83c\udfff\u200d\u2642\ufe0f": "man walking: dark skin tone",
- "\ud83d\udeb6\ud83c\udfff\u200d\u2642\ufe0f\u200d\u27a1\ufe0f": "man walking facing right: dark skin tone",
- "\ud83d\udeb6\ud83c\udfff\u200d\u27a1\ufe0f": "person walking facing right: dark skin tone",
- "\ud83e\udd26\u200d\u2640\ufe0f": "woman facepalming",
- "\ud83e\udd26\u200d\u2642\ufe0f": "man facepalming",
- "\ud83e\udd26\ud83c\udffb\u200d\u2640\ufe0f": "woman facepalming: light skin tone",
- "\ud83e\udd26\ud83c\udffb\u200d\u2642\ufe0f": "man facepalming: light skin tone",
- "\ud83e\udd26\ud83c\udffc\u200d\u2640\ufe0f": "woman facepalming: medium-light skin tone",
- "\ud83e\udd26\ud83c\udffc\u200d\u2642\ufe0f": "man facepalming: medium-light skin tone",
- "\ud83e\udd26\ud83c\udffd\u200d\u2640\ufe0f": "woman facepalming: medium skin tone",
- "\ud83e\udd26\ud83c\udffd\u200d\u2642\ufe0f": "man facepalming: medium skin tone",
- "\ud83e\udd26\ud83c\udffe\u200d\u2640\ufe0f": "woman facepalming: medium-dark skin tone",
- "\ud83e\udd26\ud83c\udffe\u200d\u2642\ufe0f": "man facepalming: medium-dark skin tone",
- "\ud83e\udd26\ud83c\udfff\u200d\u2640\ufe0f": "woman facepalming: dark skin tone",
- "\ud83e\udd26\ud83c\udfff\u200d\u2642\ufe0f": "man facepalming: dark skin tone",
- "\ud83e\udd35\u200d\u2640\ufe0f": "woman in tuxedo",
- "\ud83e\udd35\u200d\u2642\ufe0f": "man in tuxedo",
- "\ud83e\udd35\ud83c\udffb\u200d\u2640\ufe0f": "woman in tuxedo: light skin tone",
- "\ud83e\udd35\ud83c\udffb\u200d\u2642\ufe0f": "man in tuxedo: light skin tone",
- "\ud83e\udd35\ud83c\udffc\u200d\u2640\ufe0f": "woman in tuxedo: medium-light skin tone",
- "\ud83e\udd35\ud83c\udffc\u200d\u2642\ufe0f": "man in tuxedo: medium-light skin tone",
- "\ud83e\udd35\ud83c\udffd\u200d\u2640\ufe0f": "woman in tuxedo: medium skin tone",
- "\ud83e\udd35\ud83c\udffd\u200d\u2642\ufe0f": "man in tuxedo: medium skin tone",
- "\ud83e\udd35\ud83c\udffe\u200d\u2640\ufe0f": "woman in tuxedo: medium-dark skin tone",
- "\ud83e\udd35\ud83c\udffe\u200d\u2642\ufe0f": "man in tuxedo: medium-dark skin tone",
- "\ud83e\udd35\ud83c\udfff\u200d\u2640\ufe0f": "woman in tuxedo: dark skin tone",
- "\ud83e\udd35\ud83c\udfff\u200d\u2642\ufe0f": "man in tuxedo: dark skin tone",
- "\ud83e\udd37\u200d\u2640\ufe0f": "woman shrugging",
- "\ud83e\udd37\u200d\u2642\ufe0f": "man shrugging",
- "\ud83e\udd37\ud83c\udffb\u200d\u2640\ufe0f": "woman shrugging: light skin tone",
- "\ud83e\udd37\ud83c\udffb\u200d\u2642\ufe0f": "man shrugging: light skin tone",
- "\ud83e\udd37\ud83c\udffc\u200d\u2640\ufe0f": "woman shrugging: medium-light skin tone",
- "\ud83e\udd37\ud83c\udffc\u200d\u2642\ufe0f": "man shrugging: medium-light skin tone",
- "\ud83e\udd37\ud83c\udffd\u200d\u2640\ufe0f": "woman shrugging: medium skin tone",
- "\ud83e\udd37\ud83c\udffd\u200d\u2642\ufe0f": "man shrugging: medium skin tone",
- "\ud83e\udd37\ud83c\udffe\u200d\u2640\ufe0f": "woman shrugging: medium-dark skin tone",
- "\ud83e\udd37\ud83c\udffe\u200d\u2642\ufe0f": "man shrugging: medium-dark skin tone",
- "\ud83e\udd37\ud83c\udfff\u200d\u2640\ufe0f": "woman shrugging: dark skin tone",
- "\ud83e\udd37\ud83c\udfff\u200d\u2642\ufe0f": "man shrugging: dark skin tone",
- "\ud83e\udd38\u200d\u2640\ufe0f": "woman cartwheeling",
- "\ud83e\udd38\u200d\u2642\ufe0f": "man cartwheeling",
- "\ud83e\udd38\ud83c\udffb\u200d\u2640\ufe0f": "woman cartwheeling: light skin tone",
- "\ud83e\udd38\ud83c\udffb\u200d\u2642\ufe0f": "man cartwheeling: light skin tone",
- "\ud83e\udd38\ud83c\udffc\u200d\u2640\ufe0f": "woman cartwheeling: medium-light skin tone",
- "\ud83e\udd38\ud83c\udffc\u200d\u2642\ufe0f": "man cartwheeling: medium-light skin tone",
- "\ud83e\udd38\ud83c\udffd\u200d\u2640\ufe0f": "woman cartwheeling: medium skin tone",
- "\ud83e\udd38\ud83c\udffd\u200d\u2642\ufe0f": "man cartwheeling: medium skin tone",
- "\ud83e\udd38\ud83c\udffe\u200d\u2640\ufe0f": "woman cartwheeling: medium-dark skin tone",
- "\ud83e\udd38\ud83c\udffe\u200d\u2642\ufe0f": "man cartwheeling: medium-dark skin tone",
- "\ud83e\udd38\ud83c\udfff\u200d\u2640\ufe0f": "woman cartwheeling: dark skin tone",
- "\ud83e\udd38\ud83c\udfff\u200d\u2642\ufe0f": "man cartwheeling: dark skin tone",
- "\ud83e\udd39\u200d\u2640\ufe0f": "woman juggling",
- "\ud83e\udd39\u200d\u2642\ufe0f": "man juggling",
- "\ud83e\udd39\ud83c\udffb\u200d\u2640\ufe0f": "woman juggling: light skin tone",
- "\ud83e\udd39\ud83c\udffb\u200d\u2642\ufe0f": "man juggling: light skin tone",
- "\ud83e\udd39\ud83c\udffc\u200d\u2640\ufe0f": "woman juggling: medium-light skin tone",
- "\ud83e\udd39\ud83c\udffc\u200d\u2642\ufe0f": "man juggling: medium-light skin tone",
- "\ud83e\udd39\ud83c\udffd\u200d\u2640\ufe0f": "woman juggling: medium skin tone",
- "\ud83e\udd39\ud83c\udffd\u200d\u2642\ufe0f": "man juggling: medium skin tone",
- "\ud83e\udd39\ud83c\udffe\u200d\u2640\ufe0f": "woman juggling: medium-dark skin tone",
- "\ud83e\udd39\ud83c\udffe\u200d\u2642\ufe0f": "man juggling: medium-dark skin tone",
- "\ud83e\udd39\ud83c\udfff\u200d\u2640\ufe0f": "woman juggling: dark skin tone",
- "\ud83e\udd39\ud83c\udfff\u200d\u2642\ufe0f": "man juggling: dark skin tone",
- "\ud83e\udd3c\u200d\u2640\ufe0f": "women wrestling",
- "\ud83e\udd3c\u200d\u2642\ufe0f": "men wrestling",
- "\ud83e\udd3d\u200d\u2640\ufe0f": "woman playing water polo",
- "\ud83e\udd3d\u200d\u2642\ufe0f": "man playing water polo",
- "\ud83e\udd3d\ud83c\udffb\u200d\u2640\ufe0f": "woman playing water polo: light skin tone",
- "\ud83e\udd3d\ud83c\udffb\u200d\u2642\ufe0f": "man playing water polo: light skin tone",
- "\ud83e\udd3d\ud83c\udffc\u200d\u2640\ufe0f": "woman playing water polo: medium-light skin tone",
- "\ud83e\udd3d\ud83c\udffc\u200d\u2642\ufe0f": "man playing water polo: medium-light skin tone",
- "\ud83e\udd3d\ud83c\udffd\u200d\u2640\ufe0f": "woman playing water polo: medium skin tone",
- "\ud83e\udd3d\ud83c\udffd\u200d\u2642\ufe0f": "man playing water polo: medium skin tone",
- "\ud83e\udd3d\ud83c\udffe\u200d\u2640\ufe0f": "woman playing water polo: medium-dark skin tone",
- "\ud83e\udd3d\ud83c\udffe\u200d\u2642\ufe0f": "man playing water polo: medium-dark skin tone",
- "\ud83e\udd3d\ud83c\udfff\u200d\u2640\ufe0f": "woman playing water polo: dark skin tone",
- "\ud83e\udd3d\ud83c\udfff\u200d\u2642\ufe0f": "man playing water polo: dark skin tone",
- "\ud83e\udd3e\u200d\u2640\ufe0f": "woman playing handball",
- "\ud83e\udd3e\u200d\u2642\ufe0f": "man playing handball",
- "\ud83e\udd3e\ud83c\udffb\u200d\u2640\ufe0f": "woman playing handball: light skin tone",
- "\ud83e\udd3e\ud83c\udffb\u200d\u2642\ufe0f": "man playing handball: light skin tone",
- "\ud83e\udd3e\ud83c\udffc\u200d\u2640\ufe0f": "woman playing handball: medium-light skin tone",
- "\ud83e\udd3e\ud83c\udffc\u200d\u2642\ufe0f": "man playing handball: medium-light skin tone",
- "\ud83e\udd3e\ud83c\udffd\u200d\u2640\ufe0f": "woman playing handball: medium skin tone",
- "\ud83e\udd3e\ud83c\udffd\u200d\u2642\ufe0f": "man playing handball: medium skin tone",
- "\ud83e\udd3e\ud83c\udffe\u200d\u2640\ufe0f": "woman playing handball: medium-dark skin tone",
- "\ud83e\udd3e\ud83c\udffe\u200d\u2642\ufe0f": "man playing handball: medium-dark skin tone",
- "\ud83e\udd3e\ud83c\udfff\u200d\u2640\ufe0f": "woman playing handball: dark skin tone",
- "\ud83e\udd3e\ud83c\udfff\u200d\u2642\ufe0f": "man playing handball: dark skin tone",
- "\ud83e\uddb8\u200d\u2640\ufe0f": "woman superhero",
- "\ud83e\uddb8\u200d\u2642\ufe0f": "man superhero",
- "\ud83e\uddb8\ud83c\udffb\u200d\u2640\ufe0f": "woman superhero: light skin tone",
- "\ud83e\uddb8\ud83c\udffb\u200d\u2642\ufe0f": "man superhero: light skin tone",
- "\ud83e\uddb8\ud83c\udffc\u200d\u2640\ufe0f": "woman superhero: medium-light skin tone",
- "\ud83e\uddb8\ud83c\udffc\u200d\u2642\ufe0f": "man superhero: medium-light skin tone",
- "\ud83e\uddb8\ud83c\udffd\u200d\u2640\ufe0f": "woman superhero: medium skin tone",
- "\ud83e\uddb8\ud83c\udffd\u200d\u2642\ufe0f": "man superhero: medium skin tone",
- "\ud83e\uddb8\ud83c\udffe\u200d\u2640\ufe0f": "woman superhero: medium-dark skin tone",
- "\ud83e\uddb8\ud83c\udffe\u200d\u2642\ufe0f": "man superhero: medium-dark skin tone",
- "\ud83e\uddb8\ud83c\udfff\u200d\u2640\ufe0f": "woman superhero: dark skin tone",
- "\ud83e\uddb8\ud83c\udfff\u200d\u2642\ufe0f": "man superhero: dark skin tone",
- "\ud83e\uddb9\u200d\u2640\ufe0f": "woman supervillain",
- "\ud83e\uddb9\u200d\u2642\ufe0f": "man supervillain",
- "\ud83e\uddb9\ud83c\udffb\u200d\u2640\ufe0f": "woman supervillain: light skin tone",
- "\ud83e\uddb9\ud83c\udffb\u200d\u2642\ufe0f": "man supervillain: light skin tone",
- "\ud83e\uddb9\ud83c\udffc\u200d\u2640\ufe0f": "woman supervillain: medium-light skin tone",
- "\ud83e\uddb9\ud83c\udffc\u200d\u2642\ufe0f": "man supervillain: medium-light skin tone",
- "\ud83e\uddb9\ud83c\udffd\u200d\u2640\ufe0f": "woman supervillain: medium skin tone",
- "\ud83e\uddb9\ud83c\udffd\u200d\u2642\ufe0f": "man supervillain: medium skin tone",
- "\ud83e\uddb9\ud83c\udffe\u200d\u2640\ufe0f": "woman supervillain: medium-dark skin tone",
- "\ud83e\uddb9\ud83c\udffe\u200d\u2642\ufe0f": "man supervillain: medium-dark skin tone",
- "\ud83e\uddb9\ud83c\udfff\u200d\u2640\ufe0f": "woman supervillain: dark skin tone",
- "\ud83e\uddb9\ud83c\udfff\u200d\u2642\ufe0f": "man supervillain: dark skin tone",
- "\ud83e\uddcd\u200d\u2640\ufe0f": "woman standing",
- "\ud83e\uddcd\u200d\u2642\ufe0f": "man standing",
- "\ud83e\uddcd\ud83c\udffb\u200d\u2640\ufe0f": "woman standing: light skin tone",
- "\ud83e\uddcd\ud83c\udffb\u200d\u2642\ufe0f": "man standing: light skin tone",
- "\ud83e\uddcd\ud83c\udffc\u200d\u2640\ufe0f": "woman standing: medium-light skin tone",
- "\ud83e\uddcd\ud83c\udffc\u200d\u2642\ufe0f": "man standing: medium-light skin tone",
- "\ud83e\uddcd\ud83c\udffd\u200d\u2640\ufe0f": "woman standing: medium skin tone",
- "\ud83e\uddcd\ud83c\udffd\u200d\u2642\ufe0f": "man standing: medium skin tone",
- "\ud83e\uddcd\ud83c\udffe\u200d\u2640\ufe0f": "woman standing: medium-dark skin tone",
- "\ud83e\uddcd\ud83c\udffe\u200d\u2642\ufe0f": "man standing: medium-dark skin tone",
- "\ud83e\uddcd\ud83c\udfff\u200d\u2640\ufe0f": "woman standing: dark skin tone",
- "\ud83e\uddcd\ud83c\udfff\u200d\u2642\ufe0f": "man standing: dark skin tone",
- "\ud83e\uddce\u200d\u2640\ufe0f": "woman kneeling",
- "\ud83e\uddce\u200d\u2640\ufe0f\u200d\u27a1\ufe0f": "woman kneeling facing right",
- "\ud83e\uddce\u200d\u2642\ufe0f": "man kneeling",
- "\ud83e\uddce\u200d\u2642\ufe0f\u200d\u27a1\ufe0f": "man kneeling facing right",
- "\ud83e\uddce\u200d\u27a1\ufe0f": "person kneeling facing right",
- "\ud83e\uddce\ud83c\udffb\u200d\u2640\ufe0f": "woman kneeling: light skin tone",
- "\ud83e\uddce\ud83c\udffb\u200d\u2640\ufe0f\u200d\u27a1\ufe0f": "woman kneeling facing right: light skin tone",
- "\ud83e\uddce\ud83c\udffb\u200d\u2642\ufe0f": "man kneeling: light skin tone",
- "\ud83e\uddce\ud83c\udffb\u200d\u2642\ufe0f\u200d\u27a1\ufe0f": "man kneeling facing right: light skin tone",
- "\ud83e\uddce\ud83c\udffb\u200d\u27a1\ufe0f": "person kneeling facing right: light skin tone",
- "\ud83e\uddce\ud83c\udffc\u200d\u2640\ufe0f": "woman kneeling: medium-light skin tone",
- "\ud83e\uddce\ud83c\udffc\u200d\u2640\ufe0f\u200d\u27a1\ufe0f": "woman kneeling facing right: medium-light skin tone",
- "\ud83e\uddce\ud83c\udffc\u200d\u2642\ufe0f": "man kneeling: medium-light skin tone",
- "\ud83e\uddce\ud83c\udffc\u200d\u2642\ufe0f\u200d\u27a1\ufe0f": "man kneeling facing right: medium-light skin tone",
- "\ud83e\uddce\ud83c\udffc\u200d\u27a1\ufe0f": "person kneeling facing right: medium-light skin tone",
- "\ud83e\uddce\ud83c\udffd\u200d\u2640\ufe0f": "woman kneeling: medium skin tone",
- "\ud83e\uddce\ud83c\udffd\u200d\u2640\ufe0f\u200d\u27a1\ufe0f": "woman kneeling facing right: medium skin tone",
- "\ud83e\uddce\ud83c\udffd\u200d\u2642\ufe0f": "man kneeling: medium skin tone",
- "\ud83e\uddce\ud83c\udffd\u200d\u2642\ufe0f\u200d\u27a1\ufe0f": "man kneeling facing right: medium skin tone",
- "\ud83e\uddce\ud83c\udffd\u200d\u27a1\ufe0f": "person kneeling facing right: medium skin tone",
- "\ud83e\uddce\ud83c\udffe\u200d\u2640\ufe0f": "woman kneeling: medium-dark skin tone",
- "\ud83e\uddce\ud83c\udffe\u200d\u2640\ufe0f\u200d\u27a1\ufe0f": "woman kneeling facing right: medium-dark skin tone",
- "\ud83e\uddce\ud83c\udffe\u200d\u2642\ufe0f": "man kneeling: medium-dark skin tone",
- "\ud83e\uddce\ud83c\udffe\u200d\u2642\ufe0f\u200d\u27a1\ufe0f": "man kneeling facing right: medium-dark skin tone",
- "\ud83e\uddce\ud83c\udffe\u200d\u27a1\ufe0f": "person kneeling facing right: medium-dark skin tone",
- "\ud83e\uddce\ud83c\udfff\u200d\u2640\ufe0f": "woman kneeling: dark skin tone",
- "\ud83e\uddce\ud83c\udfff\u200d\u2640\ufe0f\u200d\u27a1\ufe0f": "woman kneeling facing right: dark skin tone",
- "\ud83e\uddce\ud83c\udfff\u200d\u2642\ufe0f": "man kneeling: dark skin tone",
- "\ud83e\uddce\ud83c\udfff\u200d\u2642\ufe0f\u200d\u27a1\ufe0f": "man kneeling facing right: dark skin tone",
- "\ud83e\uddce\ud83c\udfff\u200d\u27a1\ufe0f": "person kneeling facing right: dark skin tone",
- "\ud83e\uddcf\u200d\u2640\ufe0f": "deaf woman",
- "\ud83e\uddcf\u200d\u2642\ufe0f": "deaf man",
- "\ud83e\uddcf\ud83c\udffb\u200d\u2640\ufe0f": "deaf woman: light skin tone",
- "\ud83e\uddcf\ud83c\udffb\u200d\u2642\ufe0f": "deaf man: light skin tone",
- "\ud83e\uddcf\ud83c\udffc\u200d\u2640\ufe0f": "deaf woman: medium-light skin tone",
- "\ud83e\uddcf\ud83c\udffc\u200d\u2642\ufe0f": "deaf man: medium-light skin tone",
- "\ud83e\uddcf\ud83c\udffd\u200d\u2640\ufe0f": "deaf woman: medium skin tone",
- "\ud83e\uddcf\ud83c\udffd\u200d\u2642\ufe0f": "deaf man: medium skin tone",
- "\ud83e\uddcf\ud83c\udffe\u200d\u2640\ufe0f": "deaf woman: medium-dark skin tone",
- "\ud83e\uddcf\ud83c\udffe\u200d\u2642\ufe0f": "deaf man: medium-dark skin tone",
- "\ud83e\uddcf\ud83c\udfff\u200d\u2640\ufe0f": "deaf woman: dark skin tone",
- "\ud83e\uddcf\ud83c\udfff\u200d\u2642\ufe0f": "deaf man: dark skin tone",
- "\ud83e\uddd1\u200d\u2695\ufe0f": "health worker",
- "\ud83e\uddd1\u200d\u2696\ufe0f": "judge",
- "\ud83e\uddd1\u200d\u2708\ufe0f": "pilot",
- "\ud83e\uddd1\u200d\ud83c\udf3e": "farmer",
- "\ud83e\uddd1\u200d\ud83c\udf73": "cook",
- "\ud83e\uddd1\u200d\ud83c\udf7c": "person feeding baby",
- "\ud83e\uddd1\u200d\ud83c\udf84": "mx claus",
- "\ud83e\uddd1\u200d\ud83c\udf93": "student",
- "\ud83e\uddd1\u200d\ud83c\udfa4": "singer",
- "\ud83e\uddd1\u200d\ud83c\udfa8": "artist",
- "\ud83e\uddd1\u200d\ud83c\udfeb": "teacher",
- "\ud83e\uddd1\u200d\ud83c\udfed": "factory worker",
- "\ud83e\uddd1\u200d\ud83d\udcbb": "technologist",
- "\ud83e\uddd1\u200d\ud83d\udcbc": "office worker",
- "\ud83e\uddd1\u200d\ud83d\udd27": "mechanic",
- "\ud83e\uddd1\u200d\ud83d\udd2c": "scientist",
- "\ud83e\uddd1\u200d\ud83d\ude80": "astronaut",
- "\ud83e\uddd1\u200d\ud83d\ude92": "firefighter",
- "\ud83e\uddd1\u200d\ud83e\udd1d\u200d\ud83e\uddd1": "people holding hands",
- "\ud83e\uddd1\u200d\ud83e\uddaf": "person with white cane",
- "\ud83e\uddd1\u200d\ud83e\uddaf\u200d\u27a1\ufe0f": "person with white cane facing right",
- "\ud83e\uddd1\u200d\ud83e\uddb0": "person: red hair",
- "\ud83e\uddd1\u200d\ud83e\uddb1": "person: curly hair",
- "\ud83e\uddd1\u200d\ud83e\uddb2": "person: bald",
- "\ud83e\uddd1\u200d\ud83e\uddb3": "person: white hair",
- "\ud83e\uddd1\u200d\ud83e\uddbc": "person in motorized wheelchair",
- "\ud83e\uddd1\u200d\ud83e\uddbc\u200d\u27a1\ufe0f": "person in motorized wheelchair facing right",
- "\ud83e\uddd1\u200d\ud83e\uddbd": "person in manual wheelchair",
- "\ud83e\uddd1\u200d\ud83e\uddbd\u200d\u27a1\ufe0f": "person in manual wheelchair facing right",
- "\ud83e\uddd1\u200d\ud83e\uddd1\u200d\ud83e\uddd2": "family: adult, adult, child",
- "\ud83e\uddd1\u200d\ud83e\uddd1\u200d\ud83e\uddd2\u200d\ud83e\uddd2": "family: adult, adult, child, child",
- "\ud83e\uddd1\u200d\ud83e\uddd2": "family: adult, child",
- "\ud83e\uddd1\u200d\ud83e\uddd2\u200d\ud83e\uddd2": "family: adult, child, child",
- "\ud83e\uddd1\ud83c\udffb\u200d\u2695\ufe0f": "health worker: light skin tone",
- "\ud83e\uddd1\ud83c\udffb\u200d\u2696\ufe0f": "judge: light skin tone",
- "\ud83e\uddd1\ud83c\udffb\u200d\u2708\ufe0f": "pilot: light skin tone",
- "\ud83e\uddd1\ud83c\udffb\u200d\ud83c\udf3e": "farmer: light skin tone",
- "\ud83e\uddd1\ud83c\udffb\u200d\ud83c\udf73": "cook: light skin tone",
- "\ud83e\uddd1\ud83c\udffb\u200d\ud83c\udf7c": "person feeding baby: light skin tone",
- "\ud83e\uddd1\ud83c\udffb\u200d\ud83c\udf84": "mx claus: light skin tone",
- "\ud83e\uddd1\ud83c\udffb\u200d\ud83c\udf93": "student: light skin tone",
- "\ud83e\uddd1\ud83c\udffb\u200d\ud83c\udfa4": "singer: light skin tone",
- "\ud83e\uddd1\ud83c\udffb\u200d\ud83c\udfa8": "artist: light skin tone",
- "\ud83e\uddd1\ud83c\udffb\u200d\ud83c\udfeb": "teacher: light skin tone",
- "\ud83e\uddd1\ud83c\udffb\u200d\ud83c\udfed": "factory worker: light skin tone",
- "\ud83e\uddd1\ud83c\udffb\u200d\ud83d\udcbb": "technologist: light skin tone",
- "\ud83e\uddd1\ud83c\udffb\u200d\ud83d\udcbc": "office worker: light skin tone",
- "\ud83e\uddd1\ud83c\udffb\u200d\ud83d\udd27": "mechanic: light skin tone",
- "\ud83e\uddd1\ud83c\udffb\u200d\ud83d\udd2c": "scientist: light skin tone",
- "\ud83e\uddd1\ud83c\udffb\u200d\ud83d\ude80": "astronaut: light skin tone",
- "\ud83e\uddd1\ud83c\udffb\u200d\ud83d\ude92": "firefighter: light skin tone",
- "\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddaf": "person with white cane: light skin tone",
- "\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddaf\u200d\u27a1\ufe0f": "person with white cane facing right: light skin tone",
- "\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddb0": "person: light skin tone, red hair",
- "\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddb1": "person: light skin tone, curly hair",
- "\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddb2": "person: light skin tone, bald",
- "\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddb3": "person: light skin tone, white hair",
- "\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddbc": "person in motorized wheelchair: light skin tone",
- "\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddbc\u200d\u27a1\ufe0f": "person in motorized wheelchair facing right: light skin tone",
- "\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddbd": "person in manual wheelchair: light skin tone",
- "\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddbd\u200d\u27a1\ufe0f": "person in manual wheelchair facing right: light skin tone",
- "\ud83e\uddd1\ud83c\udffc\u200d\u2695\ufe0f": "health worker: medium-light skin tone",
- "\ud83e\uddd1\ud83c\udffc\u200d\u2696\ufe0f": "judge: medium-light skin tone",
- "\ud83e\uddd1\ud83c\udffc\u200d\u2708\ufe0f": "pilot: medium-light skin tone",
- "\ud83e\uddd1\ud83c\udffc\u200d\ud83c\udf3e": "farmer: medium-light skin tone",
- "\ud83e\uddd1\ud83c\udffc\u200d\ud83c\udf73": "cook: medium-light skin tone",
- "\ud83e\uddd1\ud83c\udffc\u200d\ud83c\udf7c": "person feeding baby: medium-light skin tone",
- "\ud83e\uddd1\ud83c\udffc\u200d\ud83c\udf84": "mx claus: medium-light skin tone",
- "\ud83e\uddd1\ud83c\udffc\u200d\ud83c\udf93": "student: medium-light skin tone",
- "\ud83e\uddd1\ud83c\udffc\u200d\ud83c\udfa4": "singer: medium-light skin tone",
- "\ud83e\uddd1\ud83c\udffc\u200d\ud83c\udfa8": "artist: medium-light skin tone",
- "\ud83e\uddd1\ud83c\udffc\u200d\ud83c\udfeb": "teacher: medium-light skin tone",
- "\ud83e\uddd1\ud83c\udffc\u200d\ud83c\udfed": "factory worker: medium-light skin tone",
- "\ud83e\uddd1\ud83c\udffc\u200d\ud83d\udcbb": "technologist: medium-light skin tone",
- "\ud83e\uddd1\ud83c\udffc\u200d\ud83d\udcbc": "office worker: medium-light skin tone",
- "\ud83e\uddd1\ud83c\udffc\u200d\ud83d\udd27": "mechanic: medium-light skin tone",
- "\ud83e\uddd1\ud83c\udffc\u200d\ud83d\udd2c": "scientist: medium-light skin tone",
- "\ud83e\uddd1\ud83c\udffc\u200d\ud83d\ude80": "astronaut: medium-light skin tone",
- "\ud83e\uddd1\ud83c\udffc\u200d\ud83d\ude92": "firefighter: medium-light skin tone",
- "\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddaf": "person with white cane: medium-light skin tone",
- "\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddaf\u200d\u27a1\ufe0f": "person with white cane facing right: medium-light skin tone",
- "\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddb0": "person: medium-light skin tone, red hair",
- "\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddb1": "person: medium-light skin tone, curly hair",
- "\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddb2": "person: medium-light skin tone, bald",
- "\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddb3": "person: medium-light skin tone, white hair",
- "\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddbc": "person in motorized wheelchair: medium-light skin tone",
- "\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddbc\u200d\u27a1\ufe0f": "person in motorized wheelchair facing right: medium-light skin tone",
- "\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddbd": "person in manual wheelchair: medium-light skin tone",
- "\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddbd\u200d\u27a1\ufe0f": "person in manual wheelchair facing right: medium-light skin tone",
- "\ud83e\uddd1\ud83c\udffd\u200d\u2695\ufe0f": "health worker: medium skin tone",
- "\ud83e\uddd1\ud83c\udffd\u200d\u2696\ufe0f": "judge: medium skin tone",
- "\ud83e\uddd1\ud83c\udffd\u200d\u2708\ufe0f": "pilot: medium skin tone",
- "\ud83e\uddd1\ud83c\udffd\u200d\ud83c\udf3e": "farmer: medium skin tone",
- "\ud83e\uddd1\ud83c\udffd\u200d\ud83c\udf73": "cook: medium skin tone",
- "\ud83e\uddd1\ud83c\udffd\u200d\ud83c\udf7c": "person feeding baby: medium skin tone",
- "\ud83e\uddd1\ud83c\udffd\u200d\ud83c\udf84": "mx claus: medium skin tone",
- "\ud83e\uddd1\ud83c\udffd\u200d\ud83c\udf93": "student: medium skin tone",
- "\ud83e\uddd1\ud83c\udffd\u200d\ud83c\udfa4": "singer: medium skin tone",
- "\ud83e\uddd1\ud83c\udffd\u200d\ud83c\udfa8": "artist: medium skin tone",
- "\ud83e\uddd1\ud83c\udffd\u200d\ud83c\udfeb": "teacher: medium skin tone",
- "\ud83e\uddd1\ud83c\udffd\u200d\ud83c\udfed": "factory worker: medium skin tone",
- "\ud83e\uddd1\ud83c\udffd\u200d\ud83d\udcbb": "technologist: medium skin tone",
- "\ud83e\uddd1\ud83c\udffd\u200d\ud83d\udcbc": "office worker: medium skin tone",
- "\ud83e\uddd1\ud83c\udffd\u200d\ud83d\udd27": "mechanic: medium skin tone",
- "\ud83e\uddd1\ud83c\udffd\u200d\ud83d\udd2c": "scientist: medium skin tone",
- "\ud83e\uddd1\ud83c\udffd\u200d\ud83d\ude80": "astronaut: medium skin tone",
- "\ud83e\uddd1\ud83c\udffd\u200d\ud83d\ude92": "firefighter: medium skin tone",
- "\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddaf": "person with white cane: medium skin tone",
- "\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddaf\u200d\u27a1\ufe0f": "person with white cane facing right: medium skin tone",
- "\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddb0": "person: medium skin tone, red hair",
- "\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddb1": "person: medium skin tone, curly hair",
- "\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddb2": "person: medium skin tone, bald",
- "\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddb3": "person: medium skin tone, white hair",
- "\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddbc": "person in motorized wheelchair: medium skin tone",
- "\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddbc\u200d\u27a1\ufe0f": "person in motorized wheelchair facing right: medium skin tone",
- "\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddbd": "person in manual wheelchair: medium skin tone",
- "\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddbd\u200d\u27a1\ufe0f": "person in manual wheelchair facing right: medium skin tone",
- "\ud83e\uddd1\ud83c\udffe\u200d\u2695\ufe0f": "health worker: medium-dark skin tone",
- "\ud83e\uddd1\ud83c\udffe\u200d\u2696\ufe0f": "judge: medium-dark skin tone",
- "\ud83e\uddd1\ud83c\udffe\u200d\u2708\ufe0f": "pilot: medium-dark skin tone",
- "\ud83e\uddd1\ud83c\udffe\u200d\ud83c\udf3e": "farmer: medium-dark skin tone",
- "\ud83e\uddd1\ud83c\udffe\u200d\ud83c\udf73": "cook: medium-dark skin tone",
- "\ud83e\uddd1\ud83c\udffe\u200d\ud83c\udf7c": "person feeding baby: medium-dark skin tone",
- "\ud83e\uddd1\ud83c\udffe\u200d\ud83c\udf84": "mx claus: medium-dark skin tone",
- "\ud83e\uddd1\ud83c\udffe\u200d\ud83c\udf93": "student: medium-dark skin tone",
- "\ud83e\uddd1\ud83c\udffe\u200d\ud83c\udfa4": "singer: medium-dark skin tone",
- "\ud83e\uddd1\ud83c\udffe\u200d\ud83c\udfa8": "artist: medium-dark skin tone",
- "\ud83e\uddd1\ud83c\udffe\u200d\ud83c\udfeb": "teacher: medium-dark skin tone",
- "\ud83e\uddd1\ud83c\udffe\u200d\ud83c\udfed": "factory worker: medium-dark skin tone",
- "\ud83e\uddd1\ud83c\udffe\u200d\ud83d\udcbb": "technologist: medium-dark skin tone",
- "\ud83e\uddd1\ud83c\udffe\u200d\ud83d\udcbc": "office worker: medium-dark skin tone",
- "\ud83e\uddd1\ud83c\udffe\u200d\ud83d\udd27": "mechanic: medium-dark skin tone",
- "\ud83e\uddd1\ud83c\udffe\u200d\ud83d\udd2c": "scientist: medium-dark skin tone",
- "\ud83e\uddd1\ud83c\udffe\u200d\ud83d\ude80": "astronaut: medium-dark skin tone",
- "\ud83e\uddd1\ud83c\udffe\u200d\ud83d\ude92": "firefighter: medium-dark skin tone",
- "\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddaf": "person with white cane: medium-dark skin tone",
- "\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddaf\u200d\u27a1\ufe0f": "person with white cane facing right: medium-dark skin tone",
- "\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddb0": "person: medium-dark skin tone, red hair",
- "\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddb1": "person: medium-dark skin tone, curly hair",
- "\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddb2": "person: medium-dark skin tone, bald",
- "\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddb3": "person: medium-dark skin tone, white hair",
- "\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddbc": "person in motorized wheelchair: medium-dark skin tone",
- "\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddbc\u200d\u27a1\ufe0f": "person in motorized wheelchair facing right: medium-dark skin tone",
- "\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddbd": "person in manual wheelchair: medium-dark skin tone",
- "\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddbd\u200d\u27a1\ufe0f": "person in manual wheelchair facing right: medium-dark skin tone",
- "\ud83e\uddd1\ud83c\udfff\u200d\u2695\ufe0f": "health worker: dark skin tone",
- "\ud83e\uddd1\ud83c\udfff\u200d\u2696\ufe0f": "judge: dark skin tone",
- "\ud83e\uddd1\ud83c\udfff\u200d\u2708\ufe0f": "pilot: dark skin tone",
- "\ud83e\uddd1\ud83c\udfff\u200d\ud83c\udf3e": "farmer: dark skin tone",
- "\ud83e\uddd1\ud83c\udfff\u200d\ud83c\udf73": "cook: dark skin tone",
- "\ud83e\uddd1\ud83c\udfff\u200d\ud83c\udf7c": "person feeding baby: dark skin tone",
- "\ud83e\uddd1\ud83c\udfff\u200d\ud83c\udf84": "mx claus: dark skin tone",
- "\ud83e\uddd1\ud83c\udfff\u200d\ud83c\udf93": "student: dark skin tone",
- "\ud83e\uddd1\ud83c\udfff\u200d\ud83c\udfa4": "singer: dark skin tone",
- "\ud83e\uddd1\ud83c\udfff\u200d\ud83c\udfa8": "artist: dark skin tone",
- "\ud83e\uddd1\ud83c\udfff\u200d\ud83c\udfeb": "teacher: dark skin tone",
- "\ud83e\uddd1\ud83c\udfff\u200d\ud83c\udfed": "factory worker: dark skin tone",
- "\ud83e\uddd1\ud83c\udfff\u200d\ud83d\udcbb": "technologist: dark skin tone",
- "\ud83e\uddd1\ud83c\udfff\u200d\ud83d\udcbc": "office worker: dark skin tone",
- "\ud83e\uddd1\ud83c\udfff\u200d\ud83d\udd27": "mechanic: dark skin tone",
- "\ud83e\uddd1\ud83c\udfff\u200d\ud83d\udd2c": "scientist: dark skin tone",
- "\ud83e\uddd1\ud83c\udfff\u200d\ud83d\ude80": "astronaut: dark skin tone",
- "\ud83e\uddd1\ud83c\udfff\u200d\ud83d\ude92": "firefighter: dark skin tone",
- "\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddaf": "person with white cane: dark skin tone",
- "\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddaf\u200d\u27a1\ufe0f": "person with white cane facing right: dark skin tone",
- "\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddb0": "person: dark skin tone, red hair",
- "\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddb1": "person: dark skin tone, curly hair",
- "\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddb2": "person: dark skin tone, bald",
- "\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddb3": "person: dark skin tone, white hair",
- "\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddbc": "person in motorized wheelchair: dark skin tone",
- "\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddbc\u200d\u27a1\ufe0f": "person in motorized wheelchair facing right: dark skin tone",
- "\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddbd": "person in manual wheelchair: dark skin tone",
- "\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddbd\u200d\u27a1\ufe0f": "person in manual wheelchair facing right: dark skin tone",
- "\ud83e\uddd4\u200d\u2640\ufe0f": "woman: beard",
- "\ud83e\uddd4\u200d\u2642\ufe0f": "man: beard",
- "\ud83e\uddd4\ud83c\udffb\u200d\u2640\ufe0f": "woman: light skin tone, beard",
- "\ud83e\uddd4\ud83c\udffb\u200d\u2642\ufe0f": "man: light skin tone, beard",
- "\ud83e\uddd4\ud83c\udffc\u200d\u2640\ufe0f": "woman: medium-light skin tone, beard",
- "\ud83e\uddd4\ud83c\udffc\u200d\u2642\ufe0f": "man: medium-light skin tone, beard",
- "\ud83e\uddd4\ud83c\udffd\u200d\u2640\ufe0f": "woman: medium skin tone, beard",
- "\ud83e\uddd4\ud83c\udffd\u200d\u2642\ufe0f": "man: medium skin tone, beard",
- "\ud83e\uddd4\ud83c\udffe\u200d\u2640\ufe0f": "woman: medium-dark skin tone, beard",
- "\ud83e\uddd4\ud83c\udffe\u200d\u2642\ufe0f": "man: medium-dark skin tone, beard",
- "\ud83e\uddd4\ud83c\udfff\u200d\u2640\ufe0f": "woman: dark skin tone, beard",
- "\ud83e\uddd4\ud83c\udfff\u200d\u2642\ufe0f": "man: dark skin tone, beard",
- "\ud83e\uddd6\u200d\u2640\ufe0f": "woman in steamy room",
- "\ud83e\uddd6\u200d\u2642\ufe0f": "man in steamy room",
- "\ud83e\uddd6\ud83c\udffb\u200d\u2640\ufe0f": "woman in steamy room: light skin tone",
- "\ud83e\uddd6\ud83c\udffb\u200d\u2642\ufe0f": "man in steamy room: light skin tone",
- "\ud83e\uddd6\ud83c\udffc\u200d\u2640\ufe0f": "woman in steamy room: medium-light skin tone",
- "\ud83e\uddd6\ud83c\udffc\u200d\u2642\ufe0f": "man in steamy room: medium-light skin tone",
- "\ud83e\uddd6\ud83c\udffd\u200d\u2640\ufe0f": "woman in steamy room: medium skin tone",
- "\ud83e\uddd6\ud83c\udffd\u200d\u2642\ufe0f": "man in steamy room: medium skin tone",
- "\ud83e\uddd6\ud83c\udffe\u200d\u2640\ufe0f": "woman in steamy room: medium-dark skin tone",
- "\ud83e\uddd6\ud83c\udffe\u200d\u2642\ufe0f": "man in steamy room: medium-dark skin tone",
- "\ud83e\uddd6\ud83c\udfff\u200d\u2640\ufe0f": "woman in steamy room: dark skin tone",
- "\ud83e\uddd6\ud83c\udfff\u200d\u2642\ufe0f": "man in steamy room: dark skin tone",
- "\ud83e\uddd7\u200d\u2640\ufe0f": "woman climbing",
- "\ud83e\uddd7\u200d\u2642\ufe0f": "man climbing",
- "\ud83e\uddd7\ud83c\udffb\u200d\u2640\ufe0f": "woman climbing: light skin tone",
- "\ud83e\uddd7\ud83c\udffb\u200d\u2642\ufe0f": "man climbing: light skin tone",
- "\ud83e\uddd7\ud83c\udffc\u200d\u2640\ufe0f": "woman climbing: medium-light skin tone",
- "\ud83e\uddd7\ud83c\udffc\u200d\u2642\ufe0f": "man climbing: medium-light skin tone",
- "\ud83e\uddd7\ud83c\udffd\u200d\u2640\ufe0f": "woman climbing: medium skin tone",
- "\ud83e\uddd7\ud83c\udffd\u200d\u2642\ufe0f": "man climbing: medium skin tone",
- "\ud83e\uddd7\ud83c\udffe\u200d\u2640\ufe0f": "woman climbing: medium-dark skin tone",
- "\ud83e\uddd7\ud83c\udffe\u200d\u2642\ufe0f": "man climbing: medium-dark skin tone",
- "\ud83e\uddd7\ud83c\udfff\u200d\u2640\ufe0f": "woman climbing: dark skin tone",
- "\ud83e\uddd7\ud83c\udfff\u200d\u2642\ufe0f": "man climbing: dark skin tone",
- "\ud83e\uddd8\u200d\u2640\ufe0f": "woman in lotus position",
- "\ud83e\uddd8\u200d\u2642\ufe0f": "man in lotus position",
- "\ud83e\uddd8\ud83c\udffb\u200d\u2640\ufe0f": "woman in lotus position: light skin tone",
- "\ud83e\uddd8\ud83c\udffb\u200d\u2642\ufe0f": "man in lotus position: light skin tone",
- "\ud83e\uddd8\ud83c\udffc\u200d\u2640\ufe0f": "woman in lotus position: medium-light skin tone",
- "\ud83e\uddd8\ud83c\udffc\u200d\u2642\ufe0f": "man in lotus position: medium-light skin tone",
- "\ud83e\uddd8\ud83c\udffd\u200d\u2640\ufe0f": "woman in lotus position: medium skin tone",
- "\ud83e\uddd8\ud83c\udffd\u200d\u2642\ufe0f": "man in lotus position: medium skin tone",
- "\ud83e\uddd8\ud83c\udffe\u200d\u2640\ufe0f": "woman in lotus position: medium-dark skin tone",
- "\ud83e\uddd8\ud83c\udffe\u200d\u2642\ufe0f": "man in lotus position: medium-dark skin tone",
- "\ud83e\uddd8\ud83c\udfff\u200d\u2640\ufe0f": "woman in lotus position: dark skin tone",
- "\ud83e\uddd8\ud83c\udfff\u200d\u2642\ufe0f": "man in lotus position: dark skin tone",
- "\ud83e\uddd9\u200d\u2640\ufe0f": "woman mage",
- "\ud83e\uddd9\u200d\u2642\ufe0f": "man mage",
- "\ud83e\uddd9\ud83c\udffb\u200d\u2640\ufe0f": "woman mage: light skin tone",
- "\ud83e\uddd9\ud83c\udffb\u200d\u2642\ufe0f": "man mage: light skin tone",
- "\ud83e\uddd9\ud83c\udffc\u200d\u2640\ufe0f": "woman mage: medium-light skin tone",
- "\ud83e\uddd9\ud83c\udffc\u200d\u2642\ufe0f": "man mage: medium-light skin tone",
- "\ud83e\uddd9\ud83c\udffd\u200d\u2640\ufe0f": "woman mage: medium skin tone",
- "\ud83e\uddd9\ud83c\udffd\u200d\u2642\ufe0f": "man mage: medium skin tone",
- "\ud83e\uddd9\ud83c\udffe\u200d\u2640\ufe0f": "woman mage: medium-dark skin tone",
- "\ud83e\uddd9\ud83c\udffe\u200d\u2642\ufe0f": "man mage: medium-dark skin tone",
- "\ud83e\uddd9\ud83c\udfff\u200d\u2640\ufe0f": "woman mage: dark skin tone",
- "\ud83e\uddd9\ud83c\udfff\u200d\u2642\ufe0f": "man mage: dark skin tone",
- "\ud83e\uddda\u200d\u2640\ufe0f": "woman fairy",
- "\ud83e\uddda\u200d\u2642\ufe0f": "man fairy",
- "\ud83e\uddda\ud83c\udffb\u200d\u2640\ufe0f": "woman fairy: light skin tone",
- "\ud83e\uddda\ud83c\udffb\u200d\u2642\ufe0f": "man fairy: light skin tone",
- "\ud83e\uddda\ud83c\udffc\u200d\u2640\ufe0f": "woman fairy: medium-light skin tone",
- "\ud83e\uddda\ud83c\udffc\u200d\u2642\ufe0f": "man fairy: medium-light skin tone",
- "\ud83e\uddda\ud83c\udffd\u200d\u2640\ufe0f": "woman fairy: medium skin tone",
- "\ud83e\uddda\ud83c\udffd\u200d\u2642\ufe0f": "man fairy: medium skin tone",
- "\ud83e\uddda\ud83c\udffe\u200d\u2640\ufe0f": "woman fairy: medium-dark skin tone",
- "\ud83e\uddda\ud83c\udffe\u200d\u2642\ufe0f": "man fairy: medium-dark skin tone",
- "\ud83e\uddda\ud83c\udfff\u200d\u2640\ufe0f": "woman fairy: dark skin tone",
- "\ud83e\uddda\ud83c\udfff\u200d\u2642\ufe0f": "man fairy: dark skin tone",
- "\ud83e\udddb\u200d\u2640\ufe0f": "woman vampire",
- "\ud83e\udddb\u200d\u2642\ufe0f": "man vampire",
- "\ud83e\udddb\ud83c\udffb\u200d\u2640\ufe0f": "woman vampire: light skin tone",
- "\ud83e\udddb\ud83c\udffb\u200d\u2642\ufe0f": "man vampire: light skin tone",
- "\ud83e\udddb\ud83c\udffc\u200d\u2640\ufe0f": "woman vampire: medium-light skin tone",
- "\ud83e\udddb\ud83c\udffc\u200d\u2642\ufe0f": "man vampire: medium-light skin tone",
- "\ud83e\udddb\ud83c\udffd\u200d\u2640\ufe0f": "woman vampire: medium skin tone",
- "\ud83e\udddb\ud83c\udffd\u200d\u2642\ufe0f": "man vampire: medium skin tone",
- "\ud83e\udddb\ud83c\udffe\u200d\u2640\ufe0f": "woman vampire: medium-dark skin tone",
- "\ud83e\udddb\ud83c\udffe\u200d\u2642\ufe0f": "man vampire: medium-dark skin tone",
- "\ud83e\udddb\ud83c\udfff\u200d\u2640\ufe0f": "woman vampire: dark skin tone",
- "\ud83e\udddb\ud83c\udfff\u200d\u2642\ufe0f": "man vampire: dark skin tone",
- "\ud83e\udddc\u200d\u2640\ufe0f": "mermaid",
- "\ud83e\udddc\u200d\u2642\ufe0f": "merman",
- "\ud83e\udddc\ud83c\udffb\u200d\u2640\ufe0f": "mermaid: light skin tone",
- "\ud83e\udddc\ud83c\udffb\u200d\u2642\ufe0f": "merman: light skin tone",
- "\ud83e\udddc\ud83c\udffc\u200d\u2640\ufe0f": "mermaid: medium-light skin tone",
- "\ud83e\udddc\ud83c\udffc\u200d\u2642\ufe0f": "merman: medium-light skin tone",
- "\ud83e\udddc\ud83c\udffd\u200d\u2640\ufe0f": "mermaid: medium skin tone",
- "\ud83e\udddc\ud83c\udffd\u200d\u2642\ufe0f": "merman: medium skin tone",
- "\ud83e\udddc\ud83c\udffe\u200d\u2640\ufe0f": "mermaid: medium-dark skin tone",
- "\ud83e\udddc\ud83c\udffe\u200d\u2642\ufe0f": "merman: medium-dark skin tone",
- "\ud83e\udddc\ud83c\udfff\u200d\u2640\ufe0f": "mermaid: dark skin tone",
- "\ud83e\udddc\ud83c\udfff\u200d\u2642\ufe0f": "merman: dark skin tone",
- "\ud83e\udddd\u200d\u2640\ufe0f": "woman elf",
- "\ud83e\udddd\u200d\u2642\ufe0f": "man elf",
- "\ud83e\udddd\ud83c\udffb\u200d\u2640\ufe0f": "woman elf: light skin tone",
- "\ud83e\udddd\ud83c\udffb\u200d\u2642\ufe0f": "man elf: light skin tone",
- "\ud83e\udddd\ud83c\udffc\u200d\u2640\ufe0f": "woman elf: medium-light skin tone",
- "\ud83e\udddd\ud83c\udffc\u200d\u2642\ufe0f": "man elf: medium-light skin tone",
- "\ud83e\udddd\ud83c\udffd\u200d\u2640\ufe0f": "woman elf: medium skin tone",
- "\ud83e\udddd\ud83c\udffd\u200d\u2642\ufe0f": "man elf: medium skin tone",
- "\ud83e\udddd\ud83c\udffe\u200d\u2640\ufe0f": "woman elf: medium-dark skin tone",
- "\ud83e\udddd\ud83c\udffe\u200d\u2642\ufe0f": "man elf: medium-dark skin tone",
- "\ud83e\udddd\ud83c\udfff\u200d\u2640\ufe0f": "woman elf: dark skin tone",
- "\ud83e\udddd\ud83c\udfff\u200d\u2642\ufe0f": "man elf: dark skin tone",
- "\ud83e\uddde\u200d\u2640\ufe0f": "woman genie",
- "\ud83e\uddde\u200d\u2642\ufe0f": "man genie",
- "\ud83e\udddf\u200d\u2640\ufe0f": "woman zombie",
- "\ud83e\udddf\u200d\u2642\ufe0f": "man zombie",
- "\ud83e\udef1\ud83c\udffb\u200d\ud83e\udef2\ud83c\udffc": "handshake: light skin tone, medium-light skin tone",
- "\ud83e\udef1\ud83c\udffb\u200d\ud83e\udef2\ud83c\udffd": "handshake: light skin tone, medium skin tone",
- "\ud83e\udef1\ud83c\udffb\u200d\ud83e\udef2\ud83c\udffe": "handshake: light skin tone, medium-dark skin tone",
- "\ud83e\udef1\ud83c\udffb\u200d\ud83e\udef2\ud83c\udfff": "handshake: light skin tone, dark skin tone",
- "\ud83e\udef1\ud83c\udffc\u200d\ud83e\udef2\ud83c\udffb": "handshake: medium-light skin tone, light skin tone",
- "\ud83e\udef1\ud83c\udffc\u200d\ud83e\udef2\ud83c\udffd": "handshake: medium-light skin tone, medium skin tone",
- "\ud83e\udef1\ud83c\udffc\u200d\ud83e\udef2\ud83c\udffe": "handshake: medium-light skin tone, medium-dark skin tone",
- "\ud83e\udef1\ud83c\udffc\u200d\ud83e\udef2\ud83c\udfff": "handshake: medium-light skin tone, dark skin tone",
- "\ud83e\udef1\ud83c\udffd\u200d\ud83e\udef2\ud83c\udffb": "handshake: medium skin tone, light skin tone",
- "\ud83e\udef1\ud83c\udffd\u200d\ud83e\udef2\ud83c\udffc": "handshake: medium skin tone, medium-light skin tone",
- "\ud83e\udef1\ud83c\udffd\u200d\ud83e\udef2\ud83c\udffe": "handshake: medium skin tone, medium-dark skin tone",
- "\ud83e\udef1\ud83c\udffd\u200d\ud83e\udef2\ud83c\udfff": "handshake: medium skin tone, dark skin tone",
- "\ud83e\udef1\ud83c\udffe\u200d\ud83e\udef2\ud83c\udffb": "handshake: medium-dark skin tone, light skin tone",
- "\ud83e\udef1\ud83c\udffe\u200d\ud83e\udef2\ud83c\udffc": "handshake: medium-dark skin tone, medium-light skin tone",
- "\ud83e\udef1\ud83c\udffe\u200d\ud83e\udef2\ud83c\udffd": "handshake: medium-dark skin tone, medium skin tone",
- "\ud83e\udef1\ud83c\udffe\u200d\ud83e\udef2\ud83c\udfff": "handshake: medium-dark skin tone, dark skin tone",
- "\ud83e\udef1\ud83c\udfff\u200d\ud83e\udef2\ud83c\udffb": "handshake: dark skin tone, light skin tone",
- "\ud83e\udef1\ud83c\udfff\u200d\ud83e\udef2\ud83c\udffc": "handshake: dark skin tone, medium-light skin tone",
- "\ud83e\udef1\ud83c\udfff\u200d\ud83e\udef2\ud83c\udffd": "handshake: dark skin tone, medium skin tone",
- "\ud83e\udef1\ud83c\udfff\u200d\ud83e\udef2\ud83c\udffe": "handshake: dark skin tone, medium-dark skin tone"
-}
diff --git a/src/typescript/sdk/src/emoji_data/chat-emojis.ts b/src/typescript/sdk/src/emoji_data/chat-emojis.ts
new file mode 100644
index 000000000..67d606e43
--- /dev/null
+++ b/src/typescript/sdk/src/emoji_data/chat-emojis.ts
@@ -0,0 +1,1215 @@
+// cspell:disable
+
+export const CHAT_EMOJIS = {
+ "🧑🎨": "artist",
+ "🧑🏿🎨": "artist: dark skin tone",
+ "🧑🏻🎨": "artist: light skin tone",
+ "🧑🏽🎨": "artist: medium skin tone",
+ "🧑🏾🎨": "artist: medium-dark skin tone",
+ "🧑🏼🎨": "artist: medium-light skin tone",
+ "🧑🚀": "astronaut",
+ "🧑🏿🚀": "astronaut: dark skin tone",
+ "🧑🏻🚀": "astronaut: light skin tone",
+ "🧑🏽🚀": "astronaut: medium skin tone",
+ "🧑🏾🚀": "astronaut: medium-dark skin tone",
+ "🧑🏼🚀": "astronaut: medium-light skin tone",
+ "⛓️💥": "broken chain",
+ "🍄🟫": "brown mushroom",
+ "🧑🍳": "cook",
+ "🧑🏿🍳": "cook: dark skin tone",
+ "🧑🏻🍳": "cook: light skin tone",
+ "🧑🏽🍳": "cook: medium skin tone",
+ "🧑🏾🍳": "cook: medium-dark skin tone",
+ "🧑🏼🍳": "cook: medium-light skin tone",
+ "👨❤️👨": "couple with heart: man, man",
+ "👩❤️👨": "couple with heart: woman, man",
+ "👩❤️👩": "couple with heart: woman, woman",
+ "🧏♂️": "deaf man",
+ "🧏🏿♂️": "deaf man: dark skin tone",
+ "🧏🏻♂️": "deaf man: light skin tone",
+ "🧏🏽♂️": "deaf man: medium skin tone",
+ "🧏🏾♂️": "deaf man: medium-dark skin tone",
+ "🧏🏼♂️": "deaf man: medium-light skin tone",
+ "🧏♀️": "deaf woman",
+ "🧏🏿♀️": "deaf woman: dark skin tone",
+ "🧏🏻♀️": "deaf woman: light skin tone",
+ "🧏🏽♀️": "deaf woman: medium skin tone",
+ "🧏🏾♀️": "deaf woman: medium-dark skin tone",
+ "🧏🏼♀️": "deaf woman: medium-light skin tone",
+ "👁️🗨️": "eye in speech bubble",
+ "😮💨": "face exhaling",
+ "😶🌫️": "face in clouds",
+ "😵💫": "face with spiral eyes",
+ "🧑🏭": "factory worker",
+ "🧑🏿🏭": "factory worker: dark skin tone",
+ "🧑🏻🏭": "factory worker: light skin tone",
+ "🧑🏽🏭": "factory worker: medium skin tone",
+ "🧑🏾🏭": "factory worker: medium-dark skin tone",
+ "🧑🏼🏭": "factory worker: medium-light skin tone",
+ "🧑🧑🧒": "family: adult, adult, child",
+ "🧑🧑🧒🧒": "family: adult, adult, child, child",
+ "🧑🧒": "family: adult, child",
+ "🧑🧒🧒": "family: adult, child, child",
+ "👨👦": "family: man, boy",
+ "👨👦👦": "family: man, boy, boy",
+ "👨👧": "family: man, girl",
+ "👨👧👦": "family: man, girl, boy",
+ "👨👧👧": "family: man, girl, girl",
+ "👨👨👦": "family: man, man, boy",
+ "👨👨👦👦": "family: man, man, boy, boy",
+ "👨👨👧": "family: man, man, girl",
+ "👨👨👧👦": "family: man, man, girl, boy",
+ "👨👨👧👧": "family: man, man, girl, girl",
+ "👨👩👦": "family: man, woman, boy",
+ "👨👩👦👦": "family: man, woman, boy, boy",
+ "👨👩👧": "family: man, woman, girl",
+ "👨👩👧👦": "family: man, woman, girl, boy",
+ "👨👩👧👧": "family: man, woman, girl, girl",
+ "👩👦": "family: woman, boy",
+ "👩👦👦": "family: woman, boy, boy",
+ "👩👧": "family: woman, girl",
+ "👩👧👦": "family: woman, girl, boy",
+ "👩👧👧": "family: woman, girl, girl",
+ "👩👩👦": "family: woman, woman, boy",
+ "👩👩👦👦": "family: woman, woman, boy, boy",
+ "👩👩👧": "family: woman, woman, girl",
+ "👩👩👧👦": "family: woman, woman, girl, boy",
+ "👩👩👧👧": "family: woman, woman, girl, girl",
+ "🧑🌾": "farmer",
+ "🧑🏿🌾": "farmer: dark skin tone",
+ "🧑🏻🌾": "farmer: light skin tone",
+ "🧑🏽🌾": "farmer: medium skin tone",
+ "🧑🏾🌾": "farmer: medium-dark skin tone",
+ "🧑🏼🌾": "farmer: medium-light skin tone",
+ "🧑🚒": "firefighter",
+ "🧑🏿🚒": "firefighter: dark skin tone",
+ "🧑🏻🚒": "firefighter: light skin tone",
+ "🧑🏽🚒": "firefighter: medium skin tone",
+ "🧑🏾🚒": "firefighter: medium-dark skin tone",
+ "🧑🏼🚒": "firefighter: medium-light skin tone",
+ "🏴": "flag: England",
+ "🏴": "flag: Scotland",
+ "🏴": "flag: Wales",
+ "🫱🏿🫲🏻": "handshake: dark skin tone, light skin tone",
+ "🫱🏿🫲🏽": "handshake: dark skin tone, medium skin tone",
+ "🫱🏿🫲🏾": "handshake: dark skin tone, medium-dark skin tone",
+ "🫱🏿🫲🏼": "handshake: dark skin tone, medium-light skin tone",
+ "🫱🏻🫲🏿": "handshake: light skin tone, dark skin tone",
+ "🫱🏻🫲🏽": "handshake: light skin tone, medium skin tone",
+ "🫱🏻🫲🏾": "handshake: light skin tone, medium-dark skin tone",
+ "🫱🏻🫲🏼": "handshake: light skin tone, medium-light skin tone",
+ "🫱🏽🫲🏿": "handshake: medium skin tone, dark skin tone",
+ "🫱🏽🫲🏻": "handshake: medium skin tone, light skin tone",
+ "🫱🏽🫲🏾": "handshake: medium skin tone, medium-dark skin tone",
+ "🫱🏽🫲🏼": "handshake: medium skin tone, medium-light skin tone",
+ "🫱🏾🫲🏿": "handshake: medium-dark skin tone, dark skin tone",
+ "🫱🏾🫲🏻": "handshake: medium-dark skin tone, light skin tone",
+ "🫱🏾🫲🏽": "handshake: medium-dark skin tone, medium skin tone",
+ "🫱🏾🫲🏼": "handshake: medium-dark skin tone, medium-light skin tone",
+ "🫱🏼🫲🏿": "handshake: medium-light skin tone, dark skin tone",
+ "🫱🏼🫲🏻": "handshake: medium-light skin tone, light skin tone",
+ "🫱🏼🫲🏽": "handshake: medium-light skin tone, medium skin tone",
+ "🫱🏼🫲🏾": "handshake: medium-light skin tone, medium-dark skin tone",
+ "🙂↔️": "head shaking horizontally",
+ "🙂↕️": "head shaking vertically",
+ "🧑⚕️": "health worker",
+ "🧑🏿⚕️": "health worker: dark skin tone",
+ "🧑🏻⚕️": "health worker: light skin tone",
+ "🧑🏽⚕️": "health worker: medium skin tone",
+ "🧑🏾⚕️": "health worker: medium-dark skin tone",
+ "🧑🏼⚕️": "health worker: medium-light skin tone",
+ "❤️🔥": "heart on fire",
+ "🧑⚖️": "judge",
+ "🧑🏿⚖️": "judge: dark skin tone",
+ "🧑🏻⚖️": "judge: light skin tone",
+ "🧑🏽⚖️": "judge: medium skin tone",
+ "🧑🏾⚖️": "judge: medium-dark skin tone",
+ "🧑🏼⚖️": "judge: medium-light skin tone",
+ "🍋🟩": "lime",
+ "👨🎨": "man artist",
+ "👨🏿🎨": "man artist: dark skin tone",
+ "👨🏻🎨": "man artist: light skin tone",
+ "👨🏽🎨": "man artist: medium skin tone",
+ "👨🏾🎨": "man artist: medium-dark skin tone",
+ "👨🏼🎨": "man artist: medium-light skin tone",
+ "👨🚀": "man astronaut",
+ "👨🏿🚀": "man astronaut: dark skin tone",
+ "👨🏻🚀": "man astronaut: light skin tone",
+ "👨🏽🚀": "man astronaut: medium skin tone",
+ "👨🏾🚀": "man astronaut: medium-dark skin tone",
+ "👨🏼🚀": "man astronaut: medium-light skin tone",
+ "🚴♂️": "man biking",
+ "🚴🏿♂️": "man biking: dark skin tone",
+ "🚴🏻♂️": "man biking: light skin tone",
+ "🚴🏽♂️": "man biking: medium skin tone",
+ "🚴🏾♂️": "man biking: medium-dark skin tone",
+ "🚴🏼♂️": "man biking: medium-light skin tone",
+ "⛹️♂️": "man bouncing ball",
+ "⛹🏿♂️": "man bouncing ball: dark skin tone",
+ "⛹🏻♂️": "man bouncing ball: light skin tone",
+ "⛹🏽♂️": "man bouncing ball: medium skin tone",
+ "⛹🏾♂️": "man bouncing ball: medium-dark skin tone",
+ "⛹🏼♂️": "man bouncing ball: medium-light skin tone",
+ "🙇♂️": "man bowing",
+ "🙇🏿♂️": "man bowing: dark skin tone",
+ "🙇🏻♂️": "man bowing: light skin tone",
+ "🙇🏽♂️": "man bowing: medium skin tone",
+ "🙇🏾♂️": "man bowing: medium-dark skin tone",
+ "🙇🏼♂️": "man bowing: medium-light skin tone",
+ "🤸♂️": "man cartwheeling",
+ "🤸🏿♂️": "man cartwheeling: dark skin tone",
+ "🤸🏻♂️": "man cartwheeling: light skin tone",
+ "🤸🏽♂️": "man cartwheeling: medium skin tone",
+ "🤸🏾♂️": "man cartwheeling: medium-dark skin tone",
+ "🤸🏼♂️": "man cartwheeling: medium-light skin tone",
+ "🧗♂️": "man climbing",
+ "🧗🏿♂️": "man climbing: dark skin tone",
+ "🧗🏻♂️": "man climbing: light skin tone",
+ "🧗🏽♂️": "man climbing: medium skin tone",
+ "🧗🏾♂️": "man climbing: medium-dark skin tone",
+ "🧗🏼♂️": "man climbing: medium-light skin tone",
+ "👷♂️": "man construction worker",
+ "👷🏿♂️": "man construction worker: dark skin tone",
+ "👷🏻♂️": "man construction worker: light skin tone",
+ "👷🏽♂️": "man construction worker: medium skin tone",
+ "👷🏾♂️": "man construction worker: medium-dark skin tone",
+ "👷🏼♂️": "man construction worker: medium-light skin tone",
+ "👨🍳": "man cook",
+ "👨🏿🍳": "man cook: dark skin tone",
+ "👨🏻🍳": "man cook: light skin tone",
+ "👨🏽🍳": "man cook: medium skin tone",
+ "👨🏾🍳": "man cook: medium-dark skin tone",
+ "👨🏼🍳": "man cook: medium-light skin tone",
+ "🕵️♂️": "man detective",
+ "🕵🏿♂️": "man detective: dark skin tone",
+ "🕵🏻♂️": "man detective: light skin tone",
+ "🕵🏽♂️": "man detective: medium skin tone",
+ "🕵🏾♂️": "man detective: medium-dark skin tone",
+ "🕵🏼♂️": "man detective: medium-light skin tone",
+ "🧝♂️": "man elf",
+ "🧝🏿♂️": "man elf: dark skin tone",
+ "🧝🏻♂️": "man elf: light skin tone",
+ "🧝🏽♂️": "man elf: medium skin tone",
+ "🧝🏾♂️": "man elf: medium-dark skin tone",
+ "🧝🏼♂️": "man elf: medium-light skin tone",
+ "🤦♂️": "man facepalming",
+ "🤦🏿♂️": "man facepalming: dark skin tone",
+ "🤦🏻♂️": "man facepalming: light skin tone",
+ "🤦🏽♂️": "man facepalming: medium skin tone",
+ "🤦🏾♂️": "man facepalming: medium-dark skin tone",
+ "🤦🏼♂️": "man facepalming: medium-light skin tone",
+ "👨🏭": "man factory worker",
+ "👨🏿🏭": "man factory worker: dark skin tone",
+ "👨🏻🏭": "man factory worker: light skin tone",
+ "👨🏽🏭": "man factory worker: medium skin tone",
+ "👨🏾🏭": "man factory worker: medium-dark skin tone",
+ "👨🏼🏭": "man factory worker: medium-light skin tone",
+ "🧚♂️": "man fairy",
+ "🧚🏿♂️": "man fairy: dark skin tone",
+ "🧚🏻♂️": "man fairy: light skin tone",
+ "🧚🏽♂️": "man fairy: medium skin tone",
+ "🧚🏾♂️": "man fairy: medium-dark skin tone",
+ "🧚🏼♂️": "man fairy: medium-light skin tone",
+ "👨🌾": "man farmer",
+ "👨🏿🌾": "man farmer: dark skin tone",
+ "👨🏻🌾": "man farmer: light skin tone",
+ "👨🏽🌾": "man farmer: medium skin tone",
+ "👨🏾🌾": "man farmer: medium-dark skin tone",
+ "👨🏼🌾": "man farmer: medium-light skin tone",
+ "👨🍼": "man feeding baby",
+ "👨🏿🍼": "man feeding baby: dark skin tone",
+ "👨🏻🍼": "man feeding baby: light skin tone",
+ "👨🏽🍼": "man feeding baby: medium skin tone",
+ "👨🏾🍼": "man feeding baby: medium-dark skin tone",
+ "👨🏼🍼": "man feeding baby: medium-light skin tone",
+ "👨🚒": "man firefighter",
+ "👨🏿🚒": "man firefighter: dark skin tone",
+ "👨🏻🚒": "man firefighter: light skin tone",
+ "👨🏽🚒": "man firefighter: medium skin tone",
+ "👨🏾🚒": "man firefighter: medium-dark skin tone",
+ "👨🏼🚒": "man firefighter: medium-light skin tone",
+ "🙍♂️": "man frowning",
+ "🙍🏿♂️": "man frowning: dark skin tone",
+ "🙍🏻♂️": "man frowning: light skin tone",
+ "🙍🏽♂️": "man frowning: medium skin tone",
+ "🙍🏾♂️": "man frowning: medium-dark skin tone",
+ "🙍🏼♂️": "man frowning: medium-light skin tone",
+ "🧞♂️": "man genie",
+ "🙅♂️": "man gesturing NO",
+ "🙅🏿♂️": "man gesturing NO: dark skin tone",
+ "🙅🏻♂️": "man gesturing NO: light skin tone",
+ "🙅🏽♂️": "man gesturing NO: medium skin tone",
+ "🙅🏾♂️": "man gesturing NO: medium-dark skin tone",
+ "🙅🏼♂️": "man gesturing NO: medium-light skin tone",
+ "🙆♂️": "man gesturing OK",
+ "🙆🏿♂️": "man gesturing OK: dark skin tone",
+ "🙆🏻♂️": "man gesturing OK: light skin tone",
+ "🙆🏽♂️": "man gesturing OK: medium skin tone",
+ "🙆🏾♂️": "man gesturing OK: medium-dark skin tone",
+ "🙆🏼♂️": "man gesturing OK: medium-light skin tone",
+ "💇♂️": "man getting haircut",
+ "💇🏿♂️": "man getting haircut: dark skin tone",
+ "💇🏻♂️": "man getting haircut: light skin tone",
+ "💇🏽♂️": "man getting haircut: medium skin tone",
+ "💇🏾♂️": "man getting haircut: medium-dark skin tone",
+ "💇🏼♂️": "man getting haircut: medium-light skin tone",
+ "💆♂️": "man getting massage",
+ "💆🏿♂️": "man getting massage: dark skin tone",
+ "💆🏻♂️": "man getting massage: light skin tone",
+ "💆🏽♂️": "man getting massage: medium skin tone",
+ "💆🏾♂️": "man getting massage: medium-dark skin tone",
+ "💆🏼♂️": "man getting massage: medium-light skin tone",
+ "🏌️♂️": "man golfing",
+ "🏌🏿♂️": "man golfing: dark skin tone",
+ "🏌🏻♂️": "man golfing: light skin tone",
+ "🏌🏽♂️": "man golfing: medium skin tone",
+ "🏌🏾♂️": "man golfing: medium-dark skin tone",
+ "🏌🏼♂️": "man golfing: medium-light skin tone",
+ "💂♂️": "man guard",
+ "💂🏿♂️": "man guard: dark skin tone",
+ "💂🏻♂️": "man guard: light skin tone",
+ "💂🏽♂️": "man guard: medium skin tone",
+ "💂🏾♂️": "man guard: medium-dark skin tone",
+ "💂🏼♂️": "man guard: medium-light skin tone",
+ "👨⚕️": "man health worker",
+ "👨🏿⚕️": "man health worker: dark skin tone",
+ "👨🏻⚕️": "man health worker: light skin tone",
+ "👨🏽⚕️": "man health worker: medium skin tone",
+ "👨🏾⚕️": "man health worker: medium-dark skin tone",
+ "👨🏼⚕️": "man health worker: medium-light skin tone",
+ "🧘♂️": "man in lotus position",
+ "🧘🏿♂️": "man in lotus position: dark skin tone",
+ "🧘🏻♂️": "man in lotus position: light skin tone",
+ "🧘🏽♂️": "man in lotus position: medium skin tone",
+ "🧘🏾♂️": "man in lotus position: medium-dark skin tone",
+ "🧘🏼♂️": "man in lotus position: medium-light skin tone",
+ "👨🦽": "man in manual wheelchair",
+ "👨🦽➡️": "man in manual wheelchair facing right",
+ "👨🏿🦽➡️": "man in manual wheelchair facing right: dark skin tone",
+ "👨🏻🦽➡️": "man in manual wheelchair facing right: light skin tone",
+ "👨🏽🦽➡️": "man in manual wheelchair facing right: medium skin tone",
+ "👨🏾🦽➡️": "man in manual wheelchair facing right: medium-dark skin tone",
+ "👨🏼🦽➡️": "man in manual wheelchair facing right: medium-light skin tone",
+ "👨🏿🦽": "man in manual wheelchair: dark skin tone",
+ "👨🏻🦽": "man in manual wheelchair: light skin tone",
+ "👨🏽🦽": "man in manual wheelchair: medium skin tone",
+ "👨🏾🦽": "man in manual wheelchair: medium-dark skin tone",
+ "👨🏼🦽": "man in manual wheelchair: medium-light skin tone",
+ "👨🦼": "man in motorized wheelchair",
+ "👨🦼➡️": "man in motorized wheelchair facing right",
+ "👨🏿🦼➡️": "man in motorized wheelchair facing right: dark skin tone",
+ "👨🏻🦼➡️": "man in motorized wheelchair facing right: light skin tone",
+ "👨🏽🦼➡️": "man in motorized wheelchair facing right: medium skin tone",
+ "👨🏾🦼➡️": "man in motorized wheelchair facing right: medium-dark skin tone",
+ "👨🏼🦼➡️": "man in motorized wheelchair facing right: medium-light skin tone",
+ "👨🏿🦼": "man in motorized wheelchair: dark skin tone",
+ "👨🏻🦼": "man in motorized wheelchair: light skin tone",
+ "👨🏽🦼": "man in motorized wheelchair: medium skin tone",
+ "👨🏾🦼": "man in motorized wheelchair: medium-dark skin tone",
+ "👨🏼🦼": "man in motorized wheelchair: medium-light skin tone",
+ "🧖♂️": "man in steamy room",
+ "🧖🏿♂️": "man in steamy room: dark skin tone",
+ "🧖🏻♂️": "man in steamy room: light skin tone",
+ "🧖🏽♂️": "man in steamy room: medium skin tone",
+ "🧖🏾♂️": "man in steamy room: medium-dark skin tone",
+ "🧖🏼♂️": "man in steamy room: medium-light skin tone",
+ "🤵♂️": "man in tuxedo",
+ "🤵🏿♂️": "man in tuxedo: dark skin tone",
+ "🤵🏻♂️": "man in tuxedo: light skin tone",
+ "🤵🏽♂️": "man in tuxedo: medium skin tone",
+ "🤵🏾♂️": "man in tuxedo: medium-dark skin tone",
+ "🤵🏼♂️": "man in tuxedo: medium-light skin tone",
+ "👨⚖️": "man judge",
+ "👨🏿⚖️": "man judge: dark skin tone",
+ "👨🏻⚖️": "man judge: light skin tone",
+ "👨🏽⚖️": "man judge: medium skin tone",
+ "👨🏾⚖️": "man judge: medium-dark skin tone",
+ "👨🏼⚖️": "man judge: medium-light skin tone",
+ "🤹♂️": "man juggling",
+ "🤹🏿♂️": "man juggling: dark skin tone",
+ "🤹🏻♂️": "man juggling: light skin tone",
+ "🤹🏽♂️": "man juggling: medium skin tone",
+ "🤹🏾♂️": "man juggling: medium-dark skin tone",
+ "🤹🏼♂️": "man juggling: medium-light skin tone",
+ "🧎♂️": "man kneeling",
+ "🧎♂️➡️": "man kneeling facing right",
+ "🧎🏿♂️➡️": "man kneeling facing right: dark skin tone",
+ "🧎🏻♂️➡️": "man kneeling facing right: light skin tone",
+ "🧎🏽♂️➡️": "man kneeling facing right: medium skin tone",
+ "🧎🏾♂️➡️": "man kneeling facing right: medium-dark skin tone",
+ "🧎🏼♂️➡️": "man kneeling facing right: medium-light skin tone",
+ "🧎🏿♂️": "man kneeling: dark skin tone",
+ "🧎🏻♂️": "man kneeling: light skin tone",
+ "🧎🏽♂️": "man kneeling: medium skin tone",
+ "🧎🏾♂️": "man kneeling: medium-dark skin tone",
+ "🧎🏼♂️": "man kneeling: medium-light skin tone",
+ "🏋️♂️": "man lifting weights",
+ "🏋🏿♂️": "man lifting weights: dark skin tone",
+ "🏋🏻♂️": "man lifting weights: light skin tone",
+ "🏋🏽♂️": "man lifting weights: medium skin tone",
+ "🏋🏾♂️": "man lifting weights: medium-dark skin tone",
+ "🏋🏼♂️": "man lifting weights: medium-light skin tone",
+ "🧙♂️": "man mage",
+ "🧙🏿♂️": "man mage: dark skin tone",
+ "🧙🏻♂️": "man mage: light skin tone",
+ "🧙🏽♂️": "man mage: medium skin tone",
+ "🧙🏾♂️": "man mage: medium-dark skin tone",
+ "🧙🏼♂️": "man mage: medium-light skin tone",
+ "👨🔧": "man mechanic",
+ "👨🏿🔧": "man mechanic: dark skin tone",
+ "👨🏻🔧": "man mechanic: light skin tone",
+ "👨🏽🔧": "man mechanic: medium skin tone",
+ "👨🏾🔧": "man mechanic: medium-dark skin tone",
+ "👨🏼🔧": "man mechanic: medium-light skin tone",
+ "🚵♂️": "man mountain biking",
+ "🚵🏿♂️": "man mountain biking: dark skin tone",
+ "🚵🏻♂️": "man mountain biking: light skin tone",
+ "🚵🏽♂️": "man mountain biking: medium skin tone",
+ "🚵🏾♂️": "man mountain biking: medium-dark skin tone",
+ "🚵🏼♂️": "man mountain biking: medium-light skin tone",
+ "👨💼": "man office worker",
+ "👨🏿💼": "man office worker: dark skin tone",
+ "👨🏻💼": "man office worker: light skin tone",
+ "👨🏽💼": "man office worker: medium skin tone",
+ "👨🏾💼": "man office worker: medium-dark skin tone",
+ "👨🏼💼": "man office worker: medium-light skin tone",
+ "👨✈️": "man pilot",
+ "👨🏿✈️": "man pilot: dark skin tone",
+ "👨🏻✈️": "man pilot: light skin tone",
+ "👨🏽✈️": "man pilot: medium skin tone",
+ "👨🏾✈️": "man pilot: medium-dark skin tone",
+ "👨🏼✈️": "man pilot: medium-light skin tone",
+ "🤾♂️": "man playing handball",
+ "🤾🏿♂️": "man playing handball: dark skin tone",
+ "🤾🏻♂️": "man playing handball: light skin tone",
+ "🤾🏽♂️": "man playing handball: medium skin tone",
+ "🤾🏾♂️": "man playing handball: medium-dark skin tone",
+ "🤾🏼♂️": "man playing handball: medium-light skin tone",
+ "🤽♂️": "man playing water polo",
+ "🤽🏿♂️": "man playing water polo: dark skin tone",
+ "🤽🏻♂️": "man playing water polo: light skin tone",
+ "🤽🏽♂️": "man playing water polo: medium skin tone",
+ "🤽🏾♂️": "man playing water polo: medium-dark skin tone",
+ "🤽🏼♂️": "man playing water polo: medium-light skin tone",
+ "👮♂️": "man police officer",
+ "👮🏿♂️": "man police officer: dark skin tone",
+ "👮🏻♂️": "man police officer: light skin tone",
+ "👮🏽♂️": "man police officer: medium skin tone",
+ "👮🏾♂️": "man police officer: medium-dark skin tone",
+ "👮🏼♂️": "man police officer: medium-light skin tone",
+ "🙎♂️": "man pouting",
+ "🙎🏿♂️": "man pouting: dark skin tone",
+ "🙎🏻♂️": "man pouting: light skin tone",
+ "🙎🏽♂️": "man pouting: medium skin tone",
+ "🙎🏾♂️": "man pouting: medium-dark skin tone",
+ "🙎🏼♂️": "man pouting: medium-light skin tone",
+ "🙋♂️": "man raising hand",
+ "🙋🏿♂️": "man raising hand: dark skin tone",
+ "🙋🏻♂️": "man raising hand: light skin tone",
+ "🙋🏽♂️": "man raising hand: medium skin tone",
+ "🙋🏾♂️": "man raising hand: medium-dark skin tone",
+ "🙋🏼♂️": "man raising hand: medium-light skin tone",
+ "🚣♂️": "man rowing boat",
+ "🚣🏿♂️": "man rowing boat: dark skin tone",
+ "🚣🏻♂️": "man rowing boat: light skin tone",
+ "🚣🏽♂️": "man rowing boat: medium skin tone",
+ "🚣🏾♂️": "man rowing boat: medium-dark skin tone",
+ "🚣🏼♂️": "man rowing boat: medium-light skin tone",
+ "🏃♂️": "man running",
+ "🏃♂️➡️": "man running facing right",
+ "🏃🏿♂️➡️": "man running facing right: dark skin tone",
+ "🏃🏻♂️➡️": "man running facing right: light skin tone",
+ "🏃🏽♂️➡️": "man running facing right: medium skin tone",
+ "🏃🏾♂️➡️": "man running facing right: medium-dark skin tone",
+ "🏃🏼♂️➡️": "man running facing right: medium-light skin tone",
+ "🏃🏿♂️": "man running: dark skin tone",
+ "🏃🏻♂️": "man running: light skin tone",
+ "🏃🏽♂️": "man running: medium skin tone",
+ "🏃🏾♂️": "man running: medium-dark skin tone",
+ "🏃🏼♂️": "man running: medium-light skin tone",
+ "👨🔬": "man scientist",
+ "👨🏿🔬": "man scientist: dark skin tone",
+ "👨🏻🔬": "man scientist: light skin tone",
+ "👨🏽🔬": "man scientist: medium skin tone",
+ "👨🏾🔬": "man scientist: medium-dark skin tone",
+ "👨🏼🔬": "man scientist: medium-light skin tone",
+ "🤷♂️": "man shrugging",
+ "🤷🏿♂️": "man shrugging: dark skin tone",
+ "🤷🏻♂️": "man shrugging: light skin tone",
+ "🤷🏽♂️": "man shrugging: medium skin tone",
+ "🤷🏾♂️": "man shrugging: medium-dark skin tone",
+ "🤷🏼♂️": "man shrugging: medium-light skin tone",
+ "👨🎤": "man singer",
+ "👨🏿🎤": "man singer: dark skin tone",
+ "👨🏻🎤": "man singer: light skin tone",
+ "👨🏽🎤": "man singer: medium skin tone",
+ "👨🏾🎤": "man singer: medium-dark skin tone",
+ "👨🏼🎤": "man singer: medium-light skin tone",
+ "🧍♂️": "man standing",
+ "🧍🏿♂️": "man standing: dark skin tone",
+ "🧍🏻♂️": "man standing: light skin tone",
+ "🧍🏽♂️": "man standing: medium skin tone",
+ "🧍🏾♂️": "man standing: medium-dark skin tone",
+ "🧍🏼♂️": "man standing: medium-light skin tone",
+ "👨🎓": "man student",
+ "👨🏿🎓": "man student: dark skin tone",
+ "👨🏻🎓": "man student: light skin tone",
+ "👨🏽🎓": "man student: medium skin tone",
+ "👨🏾🎓": "man student: medium-dark skin tone",
+ "👨🏼🎓": "man student: medium-light skin tone",
+ "🦸♂️": "man superhero",
+ "🦸🏿♂️": "man superhero: dark skin tone",
+ "🦸🏻♂️": "man superhero: light skin tone",
+ "🦸🏽♂️": "man superhero: medium skin tone",
+ "🦸🏾♂️": "man superhero: medium-dark skin tone",
+ "🦸🏼♂️": "man superhero: medium-light skin tone",
+ "🦹♂️": "man supervillain",
+ "🦹🏿♂️": "man supervillain: dark skin tone",
+ "🦹🏻♂️": "man supervillain: light skin tone",
+ "🦹🏽♂️": "man supervillain: medium skin tone",
+ "🦹🏾♂️": "man supervillain: medium-dark skin tone",
+ "🦹🏼♂️": "man supervillain: medium-light skin tone",
+ "🏄♂️": "man surfing",
+ "🏄🏿♂️": "man surfing: dark skin tone",
+ "🏄🏻♂️": "man surfing: light skin tone",
+ "🏄🏽♂️": "man surfing: medium skin tone",
+ "🏄🏾♂️": "man surfing: medium-dark skin tone",
+ "🏄🏼♂️": "man surfing: medium-light skin tone",
+ "🏊♂️": "man swimming",
+ "🏊🏿♂️": "man swimming: dark skin tone",
+ "🏊🏻♂️": "man swimming: light skin tone",
+ "🏊🏽♂️": "man swimming: medium skin tone",
+ "🏊🏾♂️": "man swimming: medium-dark skin tone",
+ "🏊🏼♂️": "man swimming: medium-light skin tone",
+ "👨🏫": "man teacher",
+ "👨🏿🏫": "man teacher: dark skin tone",
+ "👨🏻🏫": "man teacher: light skin tone",
+ "👨🏽🏫": "man teacher: medium skin tone",
+ "👨🏾🏫": "man teacher: medium-dark skin tone",
+ "👨🏼🏫": "man teacher: medium-light skin tone",
+ "👨💻": "man technologist",
+ "👨🏿💻": "man technologist: dark skin tone",
+ "👨🏻💻": "man technologist: light skin tone",
+ "👨🏽💻": "man technologist: medium skin tone",
+ "👨🏾💻": "man technologist: medium-dark skin tone",
+ "👨🏼💻": "man technologist: medium-light skin tone",
+ "💁♂️": "man tipping hand",
+ "💁🏿♂️": "man tipping hand: dark skin tone",
+ "💁🏻♂️": "man tipping hand: light skin tone",
+ "💁🏽♂️": "man tipping hand: medium skin tone",
+ "💁🏾♂️": "man tipping hand: medium-dark skin tone",
+ "💁🏼♂️": "man tipping hand: medium-light skin tone",
+ "🧛♂️": "man vampire",
+ "🧛🏿♂️": "man vampire: dark skin tone",
+ "🧛🏻♂️": "man vampire: light skin tone",
+ "🧛🏽♂️": "man vampire: medium skin tone",
+ "🧛🏾♂️": "man vampire: medium-dark skin tone",
+ "🧛🏼♂️": "man vampire: medium-light skin tone",
+ "🚶♂️": "man walking",
+ "🚶♂️➡️": "man walking facing right",
+ "🚶🏿♂️➡️": "man walking facing right: dark skin tone",
+ "🚶🏻♂️➡️": "man walking facing right: light skin tone",
+ "🚶🏽♂️➡️": "man walking facing right: medium skin tone",
+ "🚶🏾♂️➡️": "man walking facing right: medium-dark skin tone",
+ "🚶🏼♂️➡️": "man walking facing right: medium-light skin tone",
+ "🚶🏿♂️": "man walking: dark skin tone",
+ "🚶🏻♂️": "man walking: light skin tone",
+ "🚶🏽♂️": "man walking: medium skin tone",
+ "🚶🏾♂️": "man walking: medium-dark skin tone",
+ "🚶🏼♂️": "man walking: medium-light skin tone",
+ "👳♂️": "man wearing turban",
+ "👳🏿♂️": "man wearing turban: dark skin tone",
+ "👳🏻♂️": "man wearing turban: light skin tone",
+ "👳🏽♂️": "man wearing turban: medium skin tone",
+ "👳🏾♂️": "man wearing turban: medium-dark skin tone",
+ "👳🏼♂️": "man wearing turban: medium-light skin tone",
+ "👰♂️": "man with veil",
+ "👰🏿♂️": "man with veil: dark skin tone",
+ "👰🏻♂️": "man with veil: light skin tone",
+ "👰🏽♂️": "man with veil: medium skin tone",
+ "👰🏾♂️": "man with veil: medium-dark skin tone",
+ "👰🏼♂️": "man with veil: medium-light skin tone",
+ "👨🦯": "man with white cane",
+ "👨🦯➡️": "man with white cane facing right",
+ "👨🏿🦯➡️": "man with white cane facing right: dark skin tone",
+ "👨🏻🦯➡️": "man with white cane facing right: light skin tone",
+ "👨🏽🦯➡️": "man with white cane facing right: medium skin tone",
+ "👨🏾🦯➡️": "man with white cane facing right: medium-dark skin tone",
+ "👨🏼🦯➡️": "man with white cane facing right: medium-light skin tone",
+ "👨🏿🦯": "man with white cane: dark skin tone",
+ "👨🏻🦯": "man with white cane: light skin tone",
+ "👨🏽🦯": "man with white cane: medium skin tone",
+ "👨🏾🦯": "man with white cane: medium-dark skin tone",
+ "👨🏼🦯": "man with white cane: medium-light skin tone",
+ "🧟♂️": "man zombie",
+ "👨🦲": "man: bald",
+ "🧔♂️": "man: beard",
+ "👱♂️": "man: blond hair",
+ "👨🦱": "man: curly hair",
+ "👨🏿🦲": "man: dark skin tone, bald",
+ "🧔🏿♂️": "man: dark skin tone, beard",
+ "👱🏿♂️": "man: dark skin tone, blond hair",
+ "👨🏿🦱": "man: dark skin tone, curly hair",
+ "👨🏿🦰": "man: dark skin tone, red hair",
+ "👨🏿🦳": "man: dark skin tone, white hair",
+ "👨🏻🦲": "man: light skin tone, bald",
+ "🧔🏻♂️": "man: light skin tone, beard",
+ "👱🏻♂️": "man: light skin tone, blond hair",
+ "👨🏻🦱": "man: light skin tone, curly hair",
+ "👨🏻🦰": "man: light skin tone, red hair",
+ "👨🏻🦳": "man: light skin tone, white hair",
+ "👨🏽🦲": "man: medium skin tone, bald",
+ "🧔🏽♂️": "man: medium skin tone, beard",
+ "👱🏽♂️": "man: medium skin tone, blond hair",
+ "👨🏽🦱": "man: medium skin tone, curly hair",
+ "👨🏽🦰": "man: medium skin tone, red hair",
+ "👨🏽🦳": "man: medium skin tone, white hair",
+ "👨🏾🦲": "man: medium-dark skin tone, bald",
+ "🧔🏾♂️": "man: medium-dark skin tone, beard",
+ "👱🏾♂️": "man: medium-dark skin tone, blond hair",
+ "👨🏾🦱": "man: medium-dark skin tone, curly hair",
+ "👨🏾🦰": "man: medium-dark skin tone, red hair",
+ "👨🏾🦳": "man: medium-dark skin tone, white hair",
+ "👨🏼🦲": "man: medium-light skin tone, bald",
+ "🧔🏼♂️": "man: medium-light skin tone, beard",
+ "👱🏼♂️": "man: medium-light skin tone, blond hair",
+ "👨🏼🦱": "man: medium-light skin tone, curly hair",
+ "👨🏼🦰": "man: medium-light skin tone, red hair",
+ "👨🏼🦳": "man: medium-light skin tone, white hair",
+ "👨🦰": "man: red hair",
+ "👨🦳": "man: white hair",
+ "🧑🔧": "mechanic",
+ "🧑🏿🔧": "mechanic: dark skin tone",
+ "🧑🏻🔧": "mechanic: light skin tone",
+ "🧑🏽🔧": "mechanic: medium skin tone",
+ "🧑🏾🔧": "mechanic: medium-dark skin tone",
+ "🧑🏼🔧": "mechanic: medium-light skin tone",
+ "👯♂️": "men with bunny ears",
+ "🤼♂️": "men wrestling",
+ "❤️🩹": "mending heart",
+ "🧜♀️": "mermaid",
+ "🧜🏿♀️": "mermaid: dark skin tone",
+ "🧜🏻♀️": "mermaid: light skin tone",
+ "🧜🏽♀️": "mermaid: medium skin tone",
+ "🧜🏾♀️": "mermaid: medium-dark skin tone",
+ "🧜🏼♀️": "mermaid: medium-light skin tone",
+ "🧜♂️": "merman",
+ "🧜🏿♂️": "merman: dark skin tone",
+ "🧜🏻♂️": "merman: light skin tone",
+ "🧜🏽♂️": "merman: medium skin tone",
+ "🧜🏾♂️": "merman: medium-dark skin tone",
+ "🧜🏼♂️": "merman: medium-light skin tone",
+ "🧑🎄": "mx claus",
+ "🧑🏿🎄": "mx claus: dark skin tone",
+ "🧑🏻🎄": "mx claus: light skin tone",
+ "🧑🏽🎄": "mx claus: medium skin tone",
+ "🧑🏾🎄": "mx claus: medium-dark skin tone",
+ "🧑🏼🎄": "mx claus: medium-light skin tone",
+ "🧑💼": "office worker",
+ "🧑🏿💼": "office worker: dark skin tone",
+ "🧑🏻💼": "office worker: light skin tone",
+ "🧑🏽💼": "office worker: medium skin tone",
+ "🧑🏾💼": "office worker: medium-dark skin tone",
+ "🧑🏼💼": "office worker: medium-light skin tone",
+ "🧑🤝🧑": "people holding hands",
+ "🧑🍼": "person feeding baby",
+ "🧑🏿🍼": "person feeding baby: dark skin tone",
+ "🧑🏻🍼": "person feeding baby: light skin tone",
+ "🧑🏽🍼": "person feeding baby: medium skin tone",
+ "🧑🏾🍼": "person feeding baby: medium-dark skin tone",
+ "🧑🏼🍼": "person feeding baby: medium-light skin tone",
+ "🧑🦽": "person in manual wheelchair",
+ "🧑🦽➡️": "person in manual wheelchair facing right",
+ "🧑🏿🦽➡️": "person in manual wheelchair facing right: dark skin tone",
+ "🧑🏻🦽➡️": "person in manual wheelchair facing right: light skin tone",
+ "🧑🏽🦽➡️": "person in manual wheelchair facing right: medium skin tone",
+ "🧑🏾🦽➡️": "person in manual wheelchair facing right: medium-dark skin tone",
+ "🧑🏼🦽➡️": "person in manual wheelchair facing right: medium-light skin tone",
+ "🧑🏿🦽": "person in manual wheelchair: dark skin tone",
+ "🧑🏻🦽": "person in manual wheelchair: light skin tone",
+ "🧑🏽🦽": "person in manual wheelchair: medium skin tone",
+ "🧑🏾🦽": "person in manual wheelchair: medium-dark skin tone",
+ "🧑🏼🦽": "person in manual wheelchair: medium-light skin tone",
+ "🧑🦼": "person in motorized wheelchair",
+ "🧑🦼➡️": "person in motorized wheelchair facing right",
+ "🧑🏿🦼➡️": "person in motorized wheelchair facing right: dark skin tone",
+ "🧑🏻🦼➡️": "person in motorized wheelchair facing right: light skin tone",
+ "🧑🏽🦼➡️": "person in motorized wheelchair facing right: medium skin tone",
+ "🧑🏾🦼➡️": "person in motorized wheelchair facing right: medium-dark skin tone",
+ "🧑🏼🦼➡️": "person in motorized wheelchair facing right: medium-light skin tone",
+ "🧑🏿🦼": "person in motorized wheelchair: dark skin tone",
+ "🧑🏻🦼": "person in motorized wheelchair: light skin tone",
+ "🧑🏽🦼": "person in motorized wheelchair: medium skin tone",
+ "🧑🏾🦼": "person in motorized wheelchair: medium-dark skin tone",
+ "🧑🏼🦼": "person in motorized wheelchair: medium-light skin tone",
+ "🧎➡️": "person kneeling facing right",
+ "🧎🏿➡️": "person kneeling facing right: dark skin tone",
+ "🧎🏻➡️": "person kneeling facing right: light skin tone",
+ "🧎🏽➡️": "person kneeling facing right: medium skin tone",
+ "🧎🏾➡️": "person kneeling facing right: medium-dark skin tone",
+ "🧎🏼➡️": "person kneeling facing right: medium-light skin tone",
+ "🏃➡️": "person running facing right",
+ "🏃🏿➡️": "person running facing right: dark skin tone",
+ "🏃🏻➡️": "person running facing right: light skin tone",
+ "🏃🏽➡️": "person running facing right: medium skin tone",
+ "🏃🏾➡️": "person running facing right: medium-dark skin tone",
+ "🏃🏼➡️": "person running facing right: medium-light skin tone",
+ "🚶➡️": "person walking facing right",
+ "🚶🏿➡️": "person walking facing right: dark skin tone",
+ "🚶🏻➡️": "person walking facing right: light skin tone",
+ "🚶🏽➡️": "person walking facing right: medium skin tone",
+ "🚶🏾➡️": "person walking facing right: medium-dark skin tone",
+ "🚶🏼➡️": "person walking facing right: medium-light skin tone",
+ "🧑🦯": "person with white cane",
+ "🧑🦯➡️": "person with white cane facing right",
+ "🧑🏿🦯➡️": "person with white cane facing right: dark skin tone",
+ "🧑🏻🦯➡️": "person with white cane facing right: light skin tone",
+ "🧑🏽🦯➡️": "person with white cane facing right: medium skin tone",
+ "🧑🏾🦯➡️": "person with white cane facing right: medium-dark skin tone",
+ "🧑🏼🦯➡️": "person with white cane facing right: medium-light skin tone",
+ "🧑🏿🦯": "person with white cane: dark skin tone",
+ "🧑🏻🦯": "person with white cane: light skin tone",
+ "🧑🏽🦯": "person with white cane: medium skin tone",
+ "🧑🏾🦯": "person with white cane: medium-dark skin tone",
+ "🧑🏼🦯": "person with white cane: medium-light skin tone",
+ "🧑🦲": "person: bald",
+ "🧑🦱": "person: curly hair",
+ "🧑🏿🦲": "person: dark skin tone, bald",
+ "🧑🏿🦱": "person: dark skin tone, curly hair",
+ "🧑🏿🦰": "person: dark skin tone, red hair",
+ "🧑🏿🦳": "person: dark skin tone, white hair",
+ "🧑🏻🦲": "person: light skin tone, bald",
+ "🧑🏻🦱": "person: light skin tone, curly hair",
+ "🧑🏻🦰": "person: light skin tone, red hair",
+ "🧑🏻🦳": "person: light skin tone, white hair",
+ "🧑🏽🦲": "person: medium skin tone, bald",
+ "🧑🏽🦱": "person: medium skin tone, curly hair",
+ "🧑🏽🦰": "person: medium skin tone, red hair",
+ "🧑🏽🦳": "person: medium skin tone, white hair",
+ "🧑🏾🦲": "person: medium-dark skin tone, bald",
+ "🧑🏾🦱": "person: medium-dark skin tone, curly hair",
+ "🧑🏾🦰": "person: medium-dark skin tone, red hair",
+ "🧑🏾🦳": "person: medium-dark skin tone, white hair",
+ "🧑🏼🦲": "person: medium-light skin tone, bald",
+ "🧑🏼🦱": "person: medium-light skin tone, curly hair",
+ "🧑🏼🦰": "person: medium-light skin tone, red hair",
+ "🧑🏼🦳": "person: medium-light skin tone, white hair",
+ "🧑🦰": "person: red hair",
+ "🧑🦳": "person: white hair",
+ "🐦🔥": "phoenix",
+ "🧑✈️": "pilot",
+ "🧑🏿✈️": "pilot: dark skin tone",
+ "🧑🏻✈️": "pilot: light skin tone",
+ "🧑🏽✈️": "pilot: medium skin tone",
+ "🧑🏾✈️": "pilot: medium-dark skin tone",
+ "🧑🏼✈️": "pilot: medium-light skin tone",
+ "🏴☠️": "pirate flag",
+ "🐻❄️": "polar bear",
+ "🏳️🌈": "rainbow flag",
+ "🧑🔬": "scientist",
+ "🧑🏿🔬": "scientist: dark skin tone",
+ "🧑🏻🔬": "scientist: light skin tone",
+ "🧑🏽🔬": "scientist: medium skin tone",
+ "🧑🏾🔬": "scientist: medium-dark skin tone",
+ "🧑🏼🔬": "scientist: medium-light skin tone",
+ "🐕🦺": "service dog",
+ "🧑🎤": "singer",
+ "🧑🏿🎤": "singer: dark skin tone",
+ "🧑🏻🎤": "singer: light skin tone",
+ "🧑🏽🎤": "singer: medium skin tone",
+ "🧑🏾🎤": "singer: medium-dark skin tone",
+ "🧑🏼🎤": "singer: medium-light skin tone",
+ "🧑🎓": "student",
+ "🧑🏿🎓": "student: dark skin tone",
+ "🧑🏻🎓": "student: light skin tone",
+ "🧑🏽🎓": "student: medium skin tone",
+ "🧑🏾🎓": "student: medium-dark skin tone",
+ "🧑🏼🎓": "student: medium-light skin tone",
+ "🧑🏫": "teacher",
+ "🧑🏿🏫": "teacher: dark skin tone",
+ "🧑🏻🏫": "teacher: light skin tone",
+ "🧑🏽🏫": "teacher: medium skin tone",
+ "🧑🏾🏫": "teacher: medium-dark skin tone",
+ "🧑🏼🏫": "teacher: medium-light skin tone",
+ "🧑💻": "technologist",
+ "🧑🏿💻": "technologist: dark skin tone",
+ "🧑🏻💻": "technologist: light skin tone",
+ "🧑🏽💻": "technologist: medium skin tone",
+ "🧑🏾💻": "technologist: medium-dark skin tone",
+ "🧑🏼💻": "technologist: medium-light skin tone",
+ "🏳️⚧️": "transgender flag",
+ "👩🏿🤝👨🏻": "woman and man holding hands: dark skin tone, light skin tone",
+ "👩🏿🤝👨🏽": "woman and man holding hands: dark skin tone, medium skin tone",
+ "👩🏿🤝👨🏾": "woman and man holding hands: dark skin tone, medium-dark skin tone",
+ "👩🏿🤝👨🏼": "woman and man holding hands: dark skin tone, medium-light skin tone",
+ "👩🏻🤝👨🏿": "woman and man holding hands: light skin tone, dark skin tone",
+ "👩🏻🤝👨🏽": "woman and man holding hands: light skin tone, medium skin tone",
+ "👩🏻🤝👨🏾": "woman and man holding hands: light skin tone, medium-dark skin tone",
+ "👩🏻🤝👨🏼": "woman and man holding hands: light skin tone, medium-light skin tone",
+ "👩🏽🤝👨🏿": "woman and man holding hands: medium skin tone, dark skin tone",
+ "👩🏽🤝👨🏻": "woman and man holding hands: medium skin tone, light skin tone",
+ "👩🏽🤝👨🏾": "woman and man holding hands: medium skin tone, medium-dark skin tone",
+ "👩🏽🤝👨🏼": "woman and man holding hands: medium skin tone, medium-light skin tone",
+ "👩🏾🤝👨🏿": "woman and man holding hands: medium-dark skin tone, dark skin tone",
+ "👩🏾🤝👨🏻": "woman and man holding hands: medium-dark skin tone, light skin tone",
+ "👩🏾🤝👨🏽": "woman and man holding hands: medium-dark skin tone, medium skin tone",
+ "👩🏾🤝👨🏼": "woman and man holding hands: medium-dark skin tone, medium-light skin tone",
+ "👩🏼🤝👨🏿": "woman and man holding hands: medium-light skin tone, dark skin tone",
+ "👩🏼🤝👨🏻": "woman and man holding hands: medium-light skin tone, light skin tone",
+ "👩🏼🤝👨🏽": "woman and man holding hands: medium-light skin tone, medium skin tone",
+ "👩🏼🤝👨🏾": "woman and man holding hands: medium-light skin tone, medium-dark skin tone",
+ "👩🎨": "woman artist",
+ "👩🏿🎨": "woman artist: dark skin tone",
+ "👩🏻🎨": "woman artist: light skin tone",
+ "👩🏽🎨": "woman artist: medium skin tone",
+ "👩🏾🎨": "woman artist: medium-dark skin tone",
+ "👩🏼🎨": "woman artist: medium-light skin tone",
+ "👩🚀": "woman astronaut",
+ "👩🏿🚀": "woman astronaut: dark skin tone",
+ "👩🏻🚀": "woman astronaut: light skin tone",
+ "👩🏽🚀": "woman astronaut: medium skin tone",
+ "👩🏾🚀": "woman astronaut: medium-dark skin tone",
+ "👩🏼🚀": "woman astronaut: medium-light skin tone",
+ "🚴♀️": "woman biking",
+ "🚴🏿♀️": "woman biking: dark skin tone",
+ "🚴🏻♀️": "woman biking: light skin tone",
+ "🚴🏽♀️": "woman biking: medium skin tone",
+ "🚴🏾♀️": "woman biking: medium-dark skin tone",
+ "🚴🏼♀️": "woman biking: medium-light skin tone",
+ "⛹️♀️": "woman bouncing ball",
+ "⛹🏿♀️": "woman bouncing ball: dark skin tone",
+ "⛹🏻♀️": "woman bouncing ball: light skin tone",
+ "⛹🏽♀️": "woman bouncing ball: medium skin tone",
+ "⛹🏾♀️": "woman bouncing ball: medium-dark skin tone",
+ "⛹🏼♀️": "woman bouncing ball: medium-light skin tone",
+ "🙇♀️": "woman bowing",
+ "🙇🏿♀️": "woman bowing: dark skin tone",
+ "🙇🏻♀️": "woman bowing: light skin tone",
+ "🙇🏽♀️": "woman bowing: medium skin tone",
+ "🙇🏾♀️": "woman bowing: medium-dark skin tone",
+ "🙇🏼♀️": "woman bowing: medium-light skin tone",
+ "🤸♀️": "woman cartwheeling",
+ "🤸🏿♀️": "woman cartwheeling: dark skin tone",
+ "🤸🏻♀️": "woman cartwheeling: light skin tone",
+ "🤸🏽♀️": "woman cartwheeling: medium skin tone",
+ "🤸🏾♀️": "woman cartwheeling: medium-dark skin tone",
+ "🤸🏼♀️": "woman cartwheeling: medium-light skin tone",
+ "🧗♀️": "woman climbing",
+ "🧗🏿♀️": "woman climbing: dark skin tone",
+ "🧗🏻♀️": "woman climbing: light skin tone",
+ "🧗🏽♀️": "woman climbing: medium skin tone",
+ "🧗🏾♀️": "woman climbing: medium-dark skin tone",
+ "🧗🏼♀️": "woman climbing: medium-light skin tone",
+ "👷♀️": "woman construction worker",
+ "👷🏿♀️": "woman construction worker: dark skin tone",
+ "👷🏻♀️": "woman construction worker: light skin tone",
+ "👷🏽♀️": "woman construction worker: medium skin tone",
+ "👷🏾♀️": "woman construction worker: medium-dark skin tone",
+ "👷🏼♀️": "woman construction worker: medium-light skin tone",
+ "👩🍳": "woman cook",
+ "👩🏿🍳": "woman cook: dark skin tone",
+ "👩🏻🍳": "woman cook: light skin tone",
+ "👩🏽🍳": "woman cook: medium skin tone",
+ "👩🏾🍳": "woman cook: medium-dark skin tone",
+ "👩🏼🍳": "woman cook: medium-light skin tone",
+ "🕵️♀️": "woman detective",
+ "🕵🏿♀️": "woman detective: dark skin tone",
+ "🕵🏻♀️": "woman detective: light skin tone",
+ "🕵🏽♀️": "woman detective: medium skin tone",
+ "🕵🏾♀️": "woman detective: medium-dark skin tone",
+ "🕵🏼♀️": "woman detective: medium-light skin tone",
+ "🧝♀️": "woman elf",
+ "🧝🏿♀️": "woman elf: dark skin tone",
+ "🧝🏻♀️": "woman elf: light skin tone",
+ "🧝🏽♀️": "woman elf: medium skin tone",
+ "🧝🏾♀️": "woman elf: medium-dark skin tone",
+ "🧝🏼♀️": "woman elf: medium-light skin tone",
+ "🤦♀️": "woman facepalming",
+ "🤦🏿♀️": "woman facepalming: dark skin tone",
+ "🤦🏻♀️": "woman facepalming: light skin tone",
+ "🤦🏽♀️": "woman facepalming: medium skin tone",
+ "🤦🏾♀️": "woman facepalming: medium-dark skin tone",
+ "🤦🏼♀️": "woman facepalming: medium-light skin tone",
+ "👩🏭": "woman factory worker",
+ "👩🏿🏭": "woman factory worker: dark skin tone",
+ "👩🏻🏭": "woman factory worker: light skin tone",
+ "👩🏽🏭": "woman factory worker: medium skin tone",
+ "👩🏾🏭": "woman factory worker: medium-dark skin tone",
+ "👩🏼🏭": "woman factory worker: medium-light skin tone",
+ "🧚♀️": "woman fairy",
+ "🧚🏿♀️": "woman fairy: dark skin tone",
+ "🧚🏻♀️": "woman fairy: light skin tone",
+ "🧚🏽♀️": "woman fairy: medium skin tone",
+ "🧚🏾♀️": "woman fairy: medium-dark skin tone",
+ "🧚🏼♀️": "woman fairy: medium-light skin tone",
+ "👩🌾": "woman farmer",
+ "👩🏿🌾": "woman farmer: dark skin tone",
+ "👩🏻🌾": "woman farmer: light skin tone",
+ "👩🏽🌾": "woman farmer: medium skin tone",
+ "👩🏾🌾": "woman farmer: medium-dark skin tone",
+ "👩🏼🌾": "woman farmer: medium-light skin tone",
+ "👩🍼": "woman feeding baby",
+ "👩🏿🍼": "woman feeding baby: dark skin tone",
+ "👩🏻🍼": "woman feeding baby: light skin tone",
+ "👩🏽🍼": "woman feeding baby: medium skin tone",
+ "👩🏾🍼": "woman feeding baby: medium-dark skin tone",
+ "👩🏼🍼": "woman feeding baby: medium-light skin tone",
+ "👩🚒": "woman firefighter",
+ "👩🏿🚒": "woman firefighter: dark skin tone",
+ "👩🏻🚒": "woman firefighter: light skin tone",
+ "👩🏽🚒": "woman firefighter: medium skin tone",
+ "👩🏾🚒": "woman firefighter: medium-dark skin tone",
+ "👩🏼🚒": "woman firefighter: medium-light skin tone",
+ "🙍♀️": "woman frowning",
+ "🙍🏿♀️": "woman frowning: dark skin tone",
+ "🙍🏻♀️": "woman frowning: light skin tone",
+ "🙍🏽♀️": "woman frowning: medium skin tone",
+ "🙍🏾♀️": "woman frowning: medium-dark skin tone",
+ "🙍🏼♀️": "woman frowning: medium-light skin tone",
+ "🧞♀️": "woman genie",
+ "🙅♀️": "woman gesturing NO",
+ "🙅🏿♀️": "woman gesturing NO: dark skin tone",
+ "🙅🏻♀️": "woman gesturing NO: light skin tone",
+ "🙅🏽♀️": "woman gesturing NO: medium skin tone",
+ "🙅🏾♀️": "woman gesturing NO: medium-dark skin tone",
+ "🙅🏼♀️": "woman gesturing NO: medium-light skin tone",
+ "🙆♀️": "woman gesturing OK",
+ "🙆🏿♀️": "woman gesturing OK: dark skin tone",
+ "🙆🏻♀️": "woman gesturing OK: light skin tone",
+ "🙆🏽♀️": "woman gesturing OK: medium skin tone",
+ "🙆🏾♀️": "woman gesturing OK: medium-dark skin tone",
+ "🙆🏼♀️": "woman gesturing OK: medium-light skin tone",
+ "💇♀️": "woman getting haircut",
+ "💇🏿♀️": "woman getting haircut: dark skin tone",
+ "💇🏻♀️": "woman getting haircut: light skin tone",
+ "💇🏽♀️": "woman getting haircut: medium skin tone",
+ "💇🏾♀️": "woman getting haircut: medium-dark skin tone",
+ "💇🏼♀️": "woman getting haircut: medium-light skin tone",
+ "💆♀️": "woman getting massage",
+ "💆🏿♀️": "woman getting massage: dark skin tone",
+ "💆🏻♀️": "woman getting massage: light skin tone",
+ "💆🏽♀️": "woman getting massage: medium skin tone",
+ "💆🏾♀️": "woman getting massage: medium-dark skin tone",
+ "💆🏼♀️": "woman getting massage: medium-light skin tone",
+ "🏌️♀️": "woman golfing",
+ "🏌🏿♀️": "woman golfing: dark skin tone",
+ "🏌🏻♀️": "woman golfing: light skin tone",
+ "🏌🏽♀️": "woman golfing: medium skin tone",
+ "🏌🏾♀️": "woman golfing: medium-dark skin tone",
+ "🏌🏼♀️": "woman golfing: medium-light skin tone",
+ "💂♀️": "woman guard",
+ "💂🏿♀️": "woman guard: dark skin tone",
+ "💂🏻♀️": "woman guard: light skin tone",
+ "💂🏽♀️": "woman guard: medium skin tone",
+ "💂🏾♀️": "woman guard: medium-dark skin tone",
+ "💂🏼♀️": "woman guard: medium-light skin tone",
+ "👩⚕️": "woman health worker",
+ "👩🏿⚕️": "woman health worker: dark skin tone",
+ "👩🏻⚕️": "woman health worker: light skin tone",
+ "👩🏽⚕️": "woman health worker: medium skin tone",
+ "👩🏾⚕️": "woman health worker: medium-dark skin tone",
+ "👩🏼⚕️": "woman health worker: medium-light skin tone",
+ "🧘♀️": "woman in lotus position",
+ "🧘🏿♀️": "woman in lotus position: dark skin tone",
+ "🧘🏻♀️": "woman in lotus position: light skin tone",
+ "🧘🏽♀️": "woman in lotus position: medium skin tone",
+ "🧘🏾♀️": "woman in lotus position: medium-dark skin tone",
+ "🧘🏼♀️": "woman in lotus position: medium-light skin tone",
+ "👩🦽": "woman in manual wheelchair",
+ "👩🦽➡️": "woman in manual wheelchair facing right",
+ "👩🏿🦽➡️": "woman in manual wheelchair facing right: dark skin tone",
+ "👩🏻🦽➡️": "woman in manual wheelchair facing right: light skin tone",
+ "👩🏽🦽➡️": "woman in manual wheelchair facing right: medium skin tone",
+ "👩🏾🦽➡️": "woman in manual wheelchair facing right: medium-dark skin tone",
+ "👩🏼🦽➡️": "woman in manual wheelchair facing right: medium-light skin tone",
+ "👩🏿🦽": "woman in manual wheelchair: dark skin tone",
+ "👩🏻🦽": "woman in manual wheelchair: light skin tone",
+ "👩🏽🦽": "woman in manual wheelchair: medium skin tone",
+ "👩🏾🦽": "woman in manual wheelchair: medium-dark skin tone",
+ "👩🏼🦽": "woman in manual wheelchair: medium-light skin tone",
+ "👩🦼": "woman in motorized wheelchair",
+ "👩🦼➡️": "woman in motorized wheelchair facing right",
+ "👩🏿🦼➡️": "woman in motorized wheelchair facing right: dark skin tone",
+ "👩🏻🦼➡️": "woman in motorized wheelchair facing right: light skin tone",
+ "👩🏽🦼➡️": "woman in motorized wheelchair facing right: medium skin tone",
+ "👩🏾🦼➡️": "woman in motorized wheelchair facing right: medium-dark skin tone",
+ "👩🏼🦼➡️": "woman in motorized wheelchair facing right: medium-light skin tone",
+ "👩🏿🦼": "woman in motorized wheelchair: dark skin tone",
+ "👩🏻🦼": "woman in motorized wheelchair: light skin tone",
+ "👩🏽🦼": "woman in motorized wheelchair: medium skin tone",
+ "👩🏾🦼": "woman in motorized wheelchair: medium-dark skin tone",
+ "👩🏼🦼": "woman in motorized wheelchair: medium-light skin tone",
+ "🧖♀️": "woman in steamy room",
+ "🧖🏿♀️": "woman in steamy room: dark skin tone",
+ "🧖🏻♀️": "woman in steamy room: light skin tone",
+ "🧖🏽♀️": "woman in steamy room: medium skin tone",
+ "🧖🏾♀️": "woman in steamy room: medium-dark skin tone",
+ "🧖🏼♀️": "woman in steamy room: medium-light skin tone",
+ "🤵♀️": "woman in tuxedo",
+ "🤵🏿♀️": "woman in tuxedo: dark skin tone",
+ "🤵🏻♀️": "woman in tuxedo: light skin tone",
+ "🤵🏽♀️": "woman in tuxedo: medium skin tone",
+ "🤵🏾♀️": "woman in tuxedo: medium-dark skin tone",
+ "🤵🏼♀️": "woman in tuxedo: medium-light skin tone",
+ "👩⚖️": "woman judge",
+ "👩🏿⚖️": "woman judge: dark skin tone",
+ "👩🏻⚖️": "woman judge: light skin tone",
+ "👩🏽⚖️": "woman judge: medium skin tone",
+ "👩🏾⚖️": "woman judge: medium-dark skin tone",
+ "👩🏼⚖️": "woman judge: medium-light skin tone",
+ "🤹♀️": "woman juggling",
+ "🤹🏿♀️": "woman juggling: dark skin tone",
+ "🤹🏻♀️": "woman juggling: light skin tone",
+ "🤹🏽♀️": "woman juggling: medium skin tone",
+ "🤹🏾♀️": "woman juggling: medium-dark skin tone",
+ "🤹🏼♀️": "woman juggling: medium-light skin tone",
+ "🧎♀️": "woman kneeling",
+ "🧎♀️➡️": "woman kneeling facing right",
+ "🧎🏿♀️➡️": "woman kneeling facing right: dark skin tone",
+ "🧎🏻♀️➡️": "woman kneeling facing right: light skin tone",
+ "🧎🏽♀️➡️": "woman kneeling facing right: medium skin tone",
+ "🧎🏾♀️➡️": "woman kneeling facing right: medium-dark skin tone",
+ "🧎🏼♀️➡️": "woman kneeling facing right: medium-light skin tone",
+ "🧎🏿♀️": "woman kneeling: dark skin tone",
+ "🧎🏻♀️": "woman kneeling: light skin tone",
+ "🧎🏽♀️": "woman kneeling: medium skin tone",
+ "🧎🏾♀️": "woman kneeling: medium-dark skin tone",
+ "🧎🏼♀️": "woman kneeling: medium-light skin tone",
+ "🏋️♀️": "woman lifting weights",
+ "🏋🏿♀️": "woman lifting weights: dark skin tone",
+ "🏋🏻♀️": "woman lifting weights: light skin tone",
+ "🏋🏽♀️": "woman lifting weights: medium skin tone",
+ "🏋🏾♀️": "woman lifting weights: medium-dark skin tone",
+ "🏋🏼♀️": "woman lifting weights: medium-light skin tone",
+ "🧙♀️": "woman mage",
+ "🧙🏿♀️": "woman mage: dark skin tone",
+ "🧙🏻♀️": "woman mage: light skin tone",
+ "🧙🏽♀️": "woman mage: medium skin tone",
+ "🧙🏾♀️": "woman mage: medium-dark skin tone",
+ "🧙🏼♀️": "woman mage: medium-light skin tone",
+ "👩🔧": "woman mechanic",
+ "👩🏿🔧": "woman mechanic: dark skin tone",
+ "👩🏻🔧": "woman mechanic: light skin tone",
+ "👩🏽🔧": "woman mechanic: medium skin tone",
+ "👩🏾🔧": "woman mechanic: medium-dark skin tone",
+ "👩🏼🔧": "woman mechanic: medium-light skin tone",
+ "🚵♀️": "woman mountain biking",
+ "🚵🏿♀️": "woman mountain biking: dark skin tone",
+ "🚵🏻♀️": "woman mountain biking: light skin tone",
+ "🚵🏽♀️": "woman mountain biking: medium skin tone",
+ "🚵🏾♀️": "woman mountain biking: medium-dark skin tone",
+ "🚵🏼♀️": "woman mountain biking: medium-light skin tone",
+ "👩💼": "woman office worker",
+ "👩🏿💼": "woman office worker: dark skin tone",
+ "👩🏻💼": "woman office worker: light skin tone",
+ "👩🏽💼": "woman office worker: medium skin tone",
+ "👩🏾💼": "woman office worker: medium-dark skin tone",
+ "👩🏼💼": "woman office worker: medium-light skin tone",
+ "👩✈️": "woman pilot",
+ "👩🏿✈️": "woman pilot: dark skin tone",
+ "👩🏻✈️": "woman pilot: light skin tone",
+ "👩🏽✈️": "woman pilot: medium skin tone",
+ "👩🏾✈️": "woman pilot: medium-dark skin tone",
+ "👩🏼✈️": "woman pilot: medium-light skin tone",
+ "🤾♀️": "woman playing handball",
+ "🤾🏿♀️": "woman playing handball: dark skin tone",
+ "🤾🏻♀️": "woman playing handball: light skin tone",
+ "🤾🏽♀️": "woman playing handball: medium skin tone",
+ "🤾🏾♀️": "woman playing handball: medium-dark skin tone",
+ "🤾🏼♀️": "woman playing handball: medium-light skin tone",
+ "🤽♀️": "woman playing water polo",
+ "🤽🏿♀️": "woman playing water polo: dark skin tone",
+ "🤽🏻♀️": "woman playing water polo: light skin tone",
+ "🤽🏽♀️": "woman playing water polo: medium skin tone",
+ "🤽🏾♀️": "woman playing water polo: medium-dark skin tone",
+ "🤽🏼♀️": "woman playing water polo: medium-light skin tone",
+ "👮♀️": "woman police officer",
+ "👮🏿♀️": "woman police officer: dark skin tone",
+ "👮🏻♀️": "woman police officer: light skin tone",
+ "👮🏽♀️": "woman police officer: medium skin tone",
+ "👮🏾♀️": "woman police officer: medium-dark skin tone",
+ "👮🏼♀️": "woman police officer: medium-light skin tone",
+ "🙎♀️": "woman pouting",
+ "🙎🏿♀️": "woman pouting: dark skin tone",
+ "🙎🏻♀️": "woman pouting: light skin tone",
+ "🙎🏽♀️": "woman pouting: medium skin tone",
+ "🙎🏾♀️": "woman pouting: medium-dark skin tone",
+ "🙎🏼♀️": "woman pouting: medium-light skin tone",
+ "🙋♀️": "woman raising hand",
+ "🙋🏿♀️": "woman raising hand: dark skin tone",
+ "🙋🏻♀️": "woman raising hand: light skin tone",
+ "🙋🏽♀️": "woman raising hand: medium skin tone",
+ "🙋🏾♀️": "woman raising hand: medium-dark skin tone",
+ "🙋🏼♀️": "woman raising hand: medium-light skin tone",
+ "🚣♀️": "woman rowing boat",
+ "🚣🏿♀️": "woman rowing boat: dark skin tone",
+ "🚣🏻♀️": "woman rowing boat: light skin tone",
+ "🚣🏽♀️": "woman rowing boat: medium skin tone",
+ "🚣🏾♀️": "woman rowing boat: medium-dark skin tone",
+ "🚣🏼♀️": "woman rowing boat: medium-light skin tone",
+ "🏃♀️": "woman running",
+ "🏃♀️➡️": "woman running facing right",
+ "🏃🏿♀️➡️": "woman running facing right: dark skin tone",
+ "🏃🏻♀️➡️": "woman running facing right: light skin tone",
+ "🏃🏽♀️➡️": "woman running facing right: medium skin tone",
+ "🏃🏾♀️➡️": "woman running facing right: medium-dark skin tone",
+ "🏃🏼♀️➡️": "woman running facing right: medium-light skin tone",
+ "🏃🏿♀️": "woman running: dark skin tone",
+ "🏃🏻♀️": "woman running: light skin tone",
+ "🏃🏽♀️": "woman running: medium skin tone",
+ "🏃🏾♀️": "woman running: medium-dark skin tone",
+ "🏃🏼♀️": "woman running: medium-light skin tone",
+ "👩🔬": "woman scientist",
+ "👩🏿🔬": "woman scientist: dark skin tone",
+ "👩🏻🔬": "woman scientist: light skin tone",
+ "👩🏽🔬": "woman scientist: medium skin tone",
+ "👩🏾🔬": "woman scientist: medium-dark skin tone",
+ "👩🏼🔬": "woman scientist: medium-light skin tone",
+ "🤷♀️": "woman shrugging",
+ "🤷🏿♀️": "woman shrugging: dark skin tone",
+ "🤷🏻♀️": "woman shrugging: light skin tone",
+ "🤷🏽♀️": "woman shrugging: medium skin tone",
+ "🤷🏾♀️": "woman shrugging: medium-dark skin tone",
+ "🤷🏼♀️": "woman shrugging: medium-light skin tone",
+ "👩🎤": "woman singer",
+ "👩🏿🎤": "woman singer: dark skin tone",
+ "👩🏻🎤": "woman singer: light skin tone",
+ "👩🏽🎤": "woman singer: medium skin tone",
+ "👩🏾🎤": "woman singer: medium-dark skin tone",
+ "👩🏼🎤": "woman singer: medium-light skin tone",
+ "🧍♀️": "woman standing",
+ "🧍🏿♀️": "woman standing: dark skin tone",
+ "🧍🏻♀️": "woman standing: light skin tone",
+ "🧍🏽♀️": "woman standing: medium skin tone",
+ "🧍🏾♀️": "woman standing: medium-dark skin tone",
+ "🧍🏼♀️": "woman standing: medium-light skin tone",
+ "👩🎓": "woman student",
+ "👩🏿🎓": "woman student: dark skin tone",
+ "👩🏻🎓": "woman student: light skin tone",
+ "👩🏽🎓": "woman student: medium skin tone",
+ "👩🏾🎓": "woman student: medium-dark skin tone",
+ "👩🏼🎓": "woman student: medium-light skin tone",
+ "🦸♀️": "woman superhero",
+ "🦸🏿♀️": "woman superhero: dark skin tone",
+ "🦸🏻♀️": "woman superhero: light skin tone",
+ "🦸🏽♀️": "woman superhero: medium skin tone",
+ "🦸🏾♀️": "woman superhero: medium-dark skin tone",
+ "🦸🏼♀️": "woman superhero: medium-light skin tone",
+ "🦹♀️": "woman supervillain",
+ "🦹🏿♀️": "woman supervillain: dark skin tone",
+ "🦹🏻♀️": "woman supervillain: light skin tone",
+ "🦹🏽♀️": "woman supervillain: medium skin tone",
+ "🦹🏾♀️": "woman supervillain: medium-dark skin tone",
+ "🦹🏼♀️": "woman supervillain: medium-light skin tone",
+ "🏄♀️": "woman surfing",
+ "🏄🏿♀️": "woman surfing: dark skin tone",
+ "🏄🏻♀️": "woman surfing: light skin tone",
+ "🏄🏽♀️": "woman surfing: medium skin tone",
+ "🏄🏾♀️": "woman surfing: medium-dark skin tone",
+ "🏄🏼♀️": "woman surfing: medium-light skin tone",
+ "🏊♀️": "woman swimming",
+ "🏊🏿♀️": "woman swimming: dark skin tone",
+ "🏊🏻♀️": "woman swimming: light skin tone",
+ "🏊🏽♀️": "woman swimming: medium skin tone",
+ "🏊🏾♀️": "woman swimming: medium-dark skin tone",
+ "🏊🏼♀️": "woman swimming: medium-light skin tone",
+ "👩🏫": "woman teacher",
+ "👩🏿🏫": "woman teacher: dark skin tone",
+ "👩🏻🏫": "woman teacher: light skin tone",
+ "👩🏽🏫": "woman teacher: medium skin tone",
+ "👩🏾🏫": "woman teacher: medium-dark skin tone",
+ "👩🏼🏫": "woman teacher: medium-light skin tone",
+ "👩💻": "woman technologist",
+ "👩🏿💻": "woman technologist: dark skin tone",
+ "👩🏻💻": "woman technologist: light skin tone",
+ "👩🏽💻": "woman technologist: medium skin tone",
+ "👩🏾💻": "woman technologist: medium-dark skin tone",
+ "👩🏼💻": "woman technologist: medium-light skin tone",
+ "💁♀️": "woman tipping hand",
+ "💁🏿♀️": "woman tipping hand: dark skin tone",
+ "💁🏻♀️": "woman tipping hand: light skin tone",
+ "💁🏽♀️": "woman tipping hand: medium skin tone",
+ "💁🏾♀️": "woman tipping hand: medium-dark skin tone",
+ "💁🏼♀️": "woman tipping hand: medium-light skin tone",
+ "🧛♀️": "woman vampire",
+ "🧛🏿♀️": "woman vampire: dark skin tone",
+ "🧛🏻♀️": "woman vampire: light skin tone",
+ "🧛🏽♀️": "woman vampire: medium skin tone",
+ "🧛🏾♀️": "woman vampire: medium-dark skin tone",
+ "🧛🏼♀️": "woman vampire: medium-light skin tone",
+ "🚶♀️": "woman walking",
+ "🚶♀️➡️": "woman walking facing right",
+ "🚶🏿♀️➡️": "woman walking facing right: dark skin tone",
+ "🚶🏻♀️➡️": "woman walking facing right: light skin tone",
+ "🚶🏽♀️➡️": "woman walking facing right: medium skin tone",
+ "🚶🏾♀️➡️": "woman walking facing right: medium-dark skin tone",
+ "🚶🏼♀️➡️": "woman walking facing right: medium-light skin tone",
+ "🚶🏿♀️": "woman walking: dark skin tone",
+ "🚶🏻♀️": "woman walking: light skin tone",
+ "🚶🏽♀️": "woman walking: medium skin tone",
+ "🚶🏾♀️": "woman walking: medium-dark skin tone",
+ "🚶🏼♀️": "woman walking: medium-light skin tone",
+ "👳♀️": "woman wearing turban",
+ "👳🏿♀️": "woman wearing turban: dark skin tone",
+ "👳🏻♀️": "woman wearing turban: light skin tone",
+ "👳🏽♀️": "woman wearing turban: medium skin tone",
+ "👳🏾♀️": "woman wearing turban: medium-dark skin tone",
+ "👳🏼♀️": "woman wearing turban: medium-light skin tone",
+ "👰♀️": "woman with veil",
+ "👰🏿♀️": "woman with veil: dark skin tone",
+ "👰🏻♀️": "woman with veil: light skin tone",
+ "👰🏽♀️": "woman with veil: medium skin tone",
+ "👰🏾♀️": "woman with veil: medium-dark skin tone",
+ "👰🏼♀️": "woman with veil: medium-light skin tone",
+ "👩🦯": "woman with white cane",
+ "👩🦯➡️": "woman with white cane facing right",
+ "👩🏿🦯➡️": "woman with white cane facing right: dark skin tone",
+ "👩🏻🦯➡️": "woman with white cane facing right: light skin tone",
+ "👩🏽🦯➡️": "woman with white cane facing right: medium skin tone",
+ "👩🏾🦯➡️": "woman with white cane facing right: medium-dark skin tone",
+ "👩🏼🦯➡️": "woman with white cane facing right: medium-light skin tone",
+ "👩🏿🦯": "woman with white cane: dark skin tone",
+ "👩🏻🦯": "woman with white cane: light skin tone",
+ "👩🏽🦯": "woman with white cane: medium skin tone",
+ "👩🏾🦯": "woman with white cane: medium-dark skin tone",
+ "👩🏼🦯": "woman with white cane: medium-light skin tone",
+ "🧟♀️": "woman zombie",
+ "👩🦲": "woman: bald",
+ "🧔♀️": "woman: beard",
+ "👱♀️": "woman: blond hair",
+ "👩🦱": "woman: curly hair",
+ "👩🏿🦲": "woman: dark skin tone, bald",
+ "🧔🏿♀️": "woman: dark skin tone, beard",
+ "👱🏿♀️": "woman: dark skin tone, blond hair",
+ "👩🏿🦱": "woman: dark skin tone, curly hair",
+ "👩🏿🦰": "woman: dark skin tone, red hair",
+ "👩🏿🦳": "woman: dark skin tone, white hair",
+ "👩🏻🦲": "woman: light skin tone, bald",
+ "🧔🏻♀️": "woman: light skin tone, beard",
+ "👱🏻♀️": "woman: light skin tone, blond hair",
+ "👩🏻🦱": "woman: light skin tone, curly hair",
+ "👩🏻🦰": "woman: light skin tone, red hair",
+ "👩🏻🦳": "woman: light skin tone, white hair",
+ "👩🏽🦲": "woman: medium skin tone, bald",
+ "🧔🏽♀️": "woman: medium skin tone, beard",
+ "👱🏽♀️": "woman: medium skin tone, blond hair",
+ "👩🏽🦱": "woman: medium skin tone, curly hair",
+ "👩🏽🦰": "woman: medium skin tone, red hair",
+ "👩🏽🦳": "woman: medium skin tone, white hair",
+ "👩🏾🦲": "woman: medium-dark skin tone, bald",
+ "🧔🏾♀️": "woman: medium-dark skin tone, beard",
+ "👱🏾♀️": "woman: medium-dark skin tone, blond hair",
+ "👩🏾🦱": "woman: medium-dark skin tone, curly hair",
+ "👩🏾🦰": "woman: medium-dark skin tone, red hair",
+ "👩🏾🦳": "woman: medium-dark skin tone, white hair",
+ "👩🏼🦲": "woman: medium-light skin tone, bald",
+ "🧔🏼♀️": "woman: medium-light skin tone, beard",
+ "👱🏼♀️": "woman: medium-light skin tone, blond hair",
+ "👩🏼🦱": "woman: medium-light skin tone, curly hair",
+ "👩🏼🦰": "woman: medium-light skin tone, red hair",
+ "👩🏼🦳": "woman: medium-light skin tone, white hair",
+ "👩🦰": "woman: red hair",
+ "👩🦳": "woman: white hair",
+ "👯♀️": "women with bunny ears",
+ "🤼♀️": "women wrestling",
+} as const;
diff --git a/src/typescript/sdk/src/emoji_data/chat-names.json b/src/typescript/sdk/src/emoji_data/chat-names.json
deleted file mode 100644
index d38bba2a1..000000000
--- a/src/typescript/sdk/src/emoji_data/chat-names.json
+++ /dev/null
@@ -1,1213 +0,0 @@
-{
- "artist": null,
- "artist: dark skin tone": null,
- "artist: light skin tone": null,
- "artist: medium skin tone": null,
- "artist: medium-dark skin tone": null,
- "artist: medium-light skin tone": null,
- "astronaut": null,
- "astronaut: dark skin tone": null,
- "astronaut: light skin tone": null,
- "astronaut: medium skin tone": null,
- "astronaut: medium-dark skin tone": null,
- "astronaut: medium-light skin tone": null,
- "broken chain": null,
- "brown mushroom": null,
- "cook": null,
- "cook: dark skin tone": null,
- "cook: light skin tone": null,
- "cook: medium skin tone": null,
- "cook: medium-dark skin tone": null,
- "cook: medium-light skin tone": null,
- "couple with heart: man, man": null,
- "couple with heart: woman, man": null,
- "couple with heart: woman, woman": null,
- "deaf man": null,
- "deaf man: dark skin tone": null,
- "deaf man: light skin tone": null,
- "deaf man: medium skin tone": null,
- "deaf man: medium-dark skin tone": null,
- "deaf man: medium-light skin tone": null,
- "deaf woman": null,
- "deaf woman: dark skin tone": null,
- "deaf woman: light skin tone": null,
- "deaf woman: medium skin tone": null,
- "deaf woman: medium-dark skin tone": null,
- "deaf woman: medium-light skin tone": null,
- "eye in speech bubble": null,
- "face exhaling": null,
- "face in clouds": null,
- "face with spiral eyes": null,
- "factory worker": null,
- "factory worker: dark skin tone": null,
- "factory worker: light skin tone": null,
- "factory worker: medium skin tone": null,
- "factory worker: medium-dark skin tone": null,
- "factory worker: medium-light skin tone": null,
- "family: adult, adult, child": null,
- "family: adult, adult, child, child": null,
- "family: adult, child": null,
- "family: adult, child, child": null,
- "family: man, boy": null,
- "family: man, boy, boy": null,
- "family: man, girl": null,
- "family: man, girl, boy": null,
- "family: man, girl, girl": null,
- "family: man, man, boy": null,
- "family: man, man, boy, boy": null,
- "family: man, man, girl": null,
- "family: man, man, girl, boy": null,
- "family: man, man, girl, girl": null,
- "family: man, woman, boy": null,
- "family: man, woman, boy, boy": null,
- "family: man, woman, girl": null,
- "family: man, woman, girl, boy": null,
- "family: man, woman, girl, girl": null,
- "family: woman, boy": null,
- "family: woman, boy, boy": null,
- "family: woman, girl": null,
- "family: woman, girl, boy": null,
- "family: woman, girl, girl": null,
- "family: woman, woman, boy": null,
- "family: woman, woman, boy, boy": null,
- "family: woman, woman, girl": null,
- "family: woman, woman, girl, boy": null,
- "family: woman, woman, girl, girl": null,
- "farmer": null,
- "farmer: dark skin tone": null,
- "farmer: light skin tone": null,
- "farmer: medium skin tone": null,
- "farmer: medium-dark skin tone": null,
- "farmer: medium-light skin tone": null,
- "firefighter": null,
- "firefighter: dark skin tone": null,
- "firefighter: light skin tone": null,
- "firefighter: medium skin tone": null,
- "firefighter: medium-dark skin tone": null,
- "firefighter: medium-light skin tone": null,
- "flag: England": null,
- "flag: Scotland": null,
- "flag: Wales": null,
- "handshake: dark skin tone, light skin tone": null,
- "handshake: dark skin tone, medium skin tone": null,
- "handshake: dark skin tone, medium-dark skin tone": null,
- "handshake: dark skin tone, medium-light skin tone": null,
- "handshake: light skin tone, dark skin tone": null,
- "handshake: light skin tone, medium skin tone": null,
- "handshake: light skin tone, medium-dark skin tone": null,
- "handshake: light skin tone, medium-light skin tone": null,
- "handshake: medium skin tone, dark skin tone": null,
- "handshake: medium skin tone, light skin tone": null,
- "handshake: medium skin tone, medium-dark skin tone": null,
- "handshake: medium skin tone, medium-light skin tone": null,
- "handshake: medium-dark skin tone, dark skin tone": null,
- "handshake: medium-dark skin tone, light skin tone": null,
- "handshake: medium-dark skin tone, medium skin tone": null,
- "handshake: medium-dark skin tone, medium-light skin tone": null,
- "handshake: medium-light skin tone, dark skin tone": null,
- "handshake: medium-light skin tone, light skin tone": null,
- "handshake: medium-light skin tone, medium skin tone": null,
- "handshake: medium-light skin tone, medium-dark skin tone": null,
- "head shaking horizontally": null,
- "head shaking vertically": null,
- "health worker": null,
- "health worker: dark skin tone": null,
- "health worker: light skin tone": null,
- "health worker: medium skin tone": null,
- "health worker: medium-dark skin tone": null,
- "health worker: medium-light skin tone": null,
- "heart on fire": null,
- "judge": null,
- "judge: dark skin tone": null,
- "judge: light skin tone": null,
- "judge: medium skin tone": null,
- "judge: medium-dark skin tone": null,
- "judge: medium-light skin tone": null,
- "lime": null,
- "man artist": null,
- "man artist: dark skin tone": null,
- "man artist: light skin tone": null,
- "man artist: medium skin tone": null,
- "man artist: medium-dark skin tone": null,
- "man artist: medium-light skin tone": null,
- "man astronaut": null,
- "man astronaut: dark skin tone": null,
- "man astronaut: light skin tone": null,
- "man astronaut: medium skin tone": null,
- "man astronaut: medium-dark skin tone": null,
- "man astronaut: medium-light skin tone": null,
- "man biking": null,
- "man biking: dark skin tone": null,
- "man biking: light skin tone": null,
- "man biking: medium skin tone": null,
- "man biking: medium-dark skin tone": null,
- "man biking: medium-light skin tone": null,
- "man bouncing ball": null,
- "man bouncing ball: dark skin tone": null,
- "man bouncing ball: light skin tone": null,
- "man bouncing ball: medium skin tone": null,
- "man bouncing ball: medium-dark skin tone": null,
- "man bouncing ball: medium-light skin tone": null,
- "man bowing": null,
- "man bowing: dark skin tone": null,
- "man bowing: light skin tone": null,
- "man bowing: medium skin tone": null,
- "man bowing: medium-dark skin tone": null,
- "man bowing: medium-light skin tone": null,
- "man cartwheeling": null,
- "man cartwheeling: dark skin tone": null,
- "man cartwheeling: light skin tone": null,
- "man cartwheeling: medium skin tone": null,
- "man cartwheeling: medium-dark skin tone": null,
- "man cartwheeling: medium-light skin tone": null,
- "man climbing": null,
- "man climbing: dark skin tone": null,
- "man climbing: light skin tone": null,
- "man climbing: medium skin tone": null,
- "man climbing: medium-dark skin tone": null,
- "man climbing: medium-light skin tone": null,
- "man construction worker": null,
- "man construction worker: dark skin tone": null,
- "man construction worker: light skin tone": null,
- "man construction worker: medium skin tone": null,
- "man construction worker: medium-dark skin tone": null,
- "man construction worker: medium-light skin tone": null,
- "man cook": null,
- "man cook: dark skin tone": null,
- "man cook: light skin tone": null,
- "man cook: medium skin tone": null,
- "man cook: medium-dark skin tone": null,
- "man cook: medium-light skin tone": null,
- "man detective": null,
- "man detective: dark skin tone": null,
- "man detective: light skin tone": null,
- "man detective: medium skin tone": null,
- "man detective: medium-dark skin tone": null,
- "man detective: medium-light skin tone": null,
- "man elf": null,
- "man elf: dark skin tone": null,
- "man elf: light skin tone": null,
- "man elf: medium skin tone": null,
- "man elf: medium-dark skin tone": null,
- "man elf: medium-light skin tone": null,
- "man facepalming": null,
- "man facepalming: dark skin tone": null,
- "man facepalming: light skin tone": null,
- "man facepalming: medium skin tone": null,
- "man facepalming: medium-dark skin tone": null,
- "man facepalming: medium-light skin tone": null,
- "man factory worker": null,
- "man factory worker: dark skin tone": null,
- "man factory worker: light skin tone": null,
- "man factory worker: medium skin tone": null,
- "man factory worker: medium-dark skin tone": null,
- "man factory worker: medium-light skin tone": null,
- "man fairy": null,
- "man fairy: dark skin tone": null,
- "man fairy: light skin tone": null,
- "man fairy: medium skin tone": null,
- "man fairy: medium-dark skin tone": null,
- "man fairy: medium-light skin tone": null,
- "man farmer": null,
- "man farmer: dark skin tone": null,
- "man farmer: light skin tone": null,
- "man farmer: medium skin tone": null,
- "man farmer: medium-dark skin tone": null,
- "man farmer: medium-light skin tone": null,
- "man feeding baby": null,
- "man feeding baby: dark skin tone": null,
- "man feeding baby: light skin tone": null,
- "man feeding baby: medium skin tone": null,
- "man feeding baby: medium-dark skin tone": null,
- "man feeding baby: medium-light skin tone": null,
- "man firefighter": null,
- "man firefighter: dark skin tone": null,
- "man firefighter: light skin tone": null,
- "man firefighter: medium skin tone": null,
- "man firefighter: medium-dark skin tone": null,
- "man firefighter: medium-light skin tone": null,
- "man frowning": null,
- "man frowning: dark skin tone": null,
- "man frowning: light skin tone": null,
- "man frowning: medium skin tone": null,
- "man frowning: medium-dark skin tone": null,
- "man frowning: medium-light skin tone": null,
- "man genie": null,
- "man gesturing NO": null,
- "man gesturing NO: dark skin tone": null,
- "man gesturing NO: light skin tone": null,
- "man gesturing NO: medium skin tone": null,
- "man gesturing NO: medium-dark skin tone": null,
- "man gesturing NO: medium-light skin tone": null,
- "man gesturing OK": null,
- "man gesturing OK: dark skin tone": null,
- "man gesturing OK: light skin tone": null,
- "man gesturing OK: medium skin tone": null,
- "man gesturing OK: medium-dark skin tone": null,
- "man gesturing OK: medium-light skin tone": null,
- "man getting haircut": null,
- "man getting haircut: dark skin tone": null,
- "man getting haircut: light skin tone": null,
- "man getting haircut: medium skin tone": null,
- "man getting haircut: medium-dark skin tone": null,
- "man getting haircut: medium-light skin tone": null,
- "man getting massage": null,
- "man getting massage: dark skin tone": null,
- "man getting massage: light skin tone": null,
- "man getting massage: medium skin tone": null,
- "man getting massage: medium-dark skin tone": null,
- "man getting massage: medium-light skin tone": null,
- "man golfing": null,
- "man golfing: dark skin tone": null,
- "man golfing: light skin tone": null,
- "man golfing: medium skin tone": null,
- "man golfing: medium-dark skin tone": null,
- "man golfing: medium-light skin tone": null,
- "man guard": null,
- "man guard: dark skin tone": null,
- "man guard: light skin tone": null,
- "man guard: medium skin tone": null,
- "man guard: medium-dark skin tone": null,
- "man guard: medium-light skin tone": null,
- "man health worker": null,
- "man health worker: dark skin tone": null,
- "man health worker: light skin tone": null,
- "man health worker: medium skin tone": null,
- "man health worker: medium-dark skin tone": null,
- "man health worker: medium-light skin tone": null,
- "man in lotus position": null,
- "man in lotus position: dark skin tone": null,
- "man in lotus position: light skin tone": null,
- "man in lotus position: medium skin tone": null,
- "man in lotus position: medium-dark skin tone": null,
- "man in lotus position: medium-light skin tone": null,
- "man in manual wheelchair": null,
- "man in manual wheelchair facing right": null,
- "man in manual wheelchair facing right: dark skin tone": null,
- "man in manual wheelchair facing right: light skin tone": null,
- "man in manual wheelchair facing right: medium skin tone": null,
- "man in manual wheelchair facing right: medium-dark skin tone": null,
- "man in manual wheelchair facing right: medium-light skin tone": null,
- "man in manual wheelchair: dark skin tone": null,
- "man in manual wheelchair: light skin tone": null,
- "man in manual wheelchair: medium skin tone": null,
- "man in manual wheelchair: medium-dark skin tone": null,
- "man in manual wheelchair: medium-light skin tone": null,
- "man in motorized wheelchair": null,
- "man in motorized wheelchair facing right": null,
- "man in motorized wheelchair facing right: dark skin tone": null,
- "man in motorized wheelchair facing right: light skin tone": null,
- "man in motorized wheelchair facing right: medium skin tone": null,
- "man in motorized wheelchair facing right: medium-dark skin tone": null,
- "man in motorized wheelchair facing right: medium-light skin tone": null,
- "man in motorized wheelchair: dark skin tone": null,
- "man in motorized wheelchair: light skin tone": null,
- "man in motorized wheelchair: medium skin tone": null,
- "man in motorized wheelchair: medium-dark skin tone": null,
- "man in motorized wheelchair: medium-light skin tone": null,
- "man in steamy room": null,
- "man in steamy room: dark skin tone": null,
- "man in steamy room: light skin tone": null,
- "man in steamy room: medium skin tone": null,
- "man in steamy room: medium-dark skin tone": null,
- "man in steamy room: medium-light skin tone": null,
- "man in tuxedo": null,
- "man in tuxedo: dark skin tone": null,
- "man in tuxedo: light skin tone": null,
- "man in tuxedo: medium skin tone": null,
- "man in tuxedo: medium-dark skin tone": null,
- "man in tuxedo: medium-light skin tone": null,
- "man judge": null,
- "man judge: dark skin tone": null,
- "man judge: light skin tone": null,
- "man judge: medium skin tone": null,
- "man judge: medium-dark skin tone": null,
- "man judge: medium-light skin tone": null,
- "man juggling": null,
- "man juggling: dark skin tone": null,
- "man juggling: light skin tone": null,
- "man juggling: medium skin tone": null,
- "man juggling: medium-dark skin tone": null,
- "man juggling: medium-light skin tone": null,
- "man kneeling": null,
- "man kneeling facing right": null,
- "man kneeling facing right: dark skin tone": null,
- "man kneeling facing right: light skin tone": null,
- "man kneeling facing right: medium skin tone": null,
- "man kneeling facing right: medium-dark skin tone": null,
- "man kneeling facing right: medium-light skin tone": null,
- "man kneeling: dark skin tone": null,
- "man kneeling: light skin tone": null,
- "man kneeling: medium skin tone": null,
- "man kneeling: medium-dark skin tone": null,
- "man kneeling: medium-light skin tone": null,
- "man lifting weights": null,
- "man lifting weights: dark skin tone": null,
- "man lifting weights: light skin tone": null,
- "man lifting weights: medium skin tone": null,
- "man lifting weights: medium-dark skin tone": null,
- "man lifting weights: medium-light skin tone": null,
- "man mage": null,
- "man mage: dark skin tone": null,
- "man mage: light skin tone": null,
- "man mage: medium skin tone": null,
- "man mage: medium-dark skin tone": null,
- "man mage: medium-light skin tone": null,
- "man mechanic": null,
- "man mechanic: dark skin tone": null,
- "man mechanic: light skin tone": null,
- "man mechanic: medium skin tone": null,
- "man mechanic: medium-dark skin tone": null,
- "man mechanic: medium-light skin tone": null,
- "man mountain biking": null,
- "man mountain biking: dark skin tone": null,
- "man mountain biking: light skin tone": null,
- "man mountain biking: medium skin tone": null,
- "man mountain biking: medium-dark skin tone": null,
- "man mountain biking: medium-light skin tone": null,
- "man office worker": null,
- "man office worker: dark skin tone": null,
- "man office worker: light skin tone": null,
- "man office worker: medium skin tone": null,
- "man office worker: medium-dark skin tone": null,
- "man office worker: medium-light skin tone": null,
- "man pilot": null,
- "man pilot: dark skin tone": null,
- "man pilot: light skin tone": null,
- "man pilot: medium skin tone": null,
- "man pilot: medium-dark skin tone": null,
- "man pilot: medium-light skin tone": null,
- "man playing handball": null,
- "man playing handball: dark skin tone": null,
- "man playing handball: light skin tone": null,
- "man playing handball: medium skin tone": null,
- "man playing handball: medium-dark skin tone": null,
- "man playing handball: medium-light skin tone": null,
- "man playing water polo": null,
- "man playing water polo: dark skin tone": null,
- "man playing water polo: light skin tone": null,
- "man playing water polo: medium skin tone": null,
- "man playing water polo: medium-dark skin tone": null,
- "man playing water polo: medium-light skin tone": null,
- "man police officer": null,
- "man police officer: dark skin tone": null,
- "man police officer: light skin tone": null,
- "man police officer: medium skin tone": null,
- "man police officer: medium-dark skin tone": null,
- "man police officer: medium-light skin tone": null,
- "man pouting": null,
- "man pouting: dark skin tone": null,
- "man pouting: light skin tone": null,
- "man pouting: medium skin tone": null,
- "man pouting: medium-dark skin tone": null,
- "man pouting: medium-light skin tone": null,
- "man raising hand": null,
- "man raising hand: dark skin tone": null,
- "man raising hand: light skin tone": null,
- "man raising hand: medium skin tone": null,
- "man raising hand: medium-dark skin tone": null,
- "man raising hand: medium-light skin tone": null,
- "man rowing boat": null,
- "man rowing boat: dark skin tone": null,
- "man rowing boat: light skin tone": null,
- "man rowing boat: medium skin tone": null,
- "man rowing boat: medium-dark skin tone": null,
- "man rowing boat: medium-light skin tone": null,
- "man running": null,
- "man running facing right": null,
- "man running facing right: dark skin tone": null,
- "man running facing right: light skin tone": null,
- "man running facing right: medium skin tone": null,
- "man running facing right: medium-dark skin tone": null,
- "man running facing right: medium-light skin tone": null,
- "man running: dark skin tone": null,
- "man running: light skin tone": null,
- "man running: medium skin tone": null,
- "man running: medium-dark skin tone": null,
- "man running: medium-light skin tone": null,
- "man scientist": null,
- "man scientist: dark skin tone": null,
- "man scientist: light skin tone": null,
- "man scientist: medium skin tone": null,
- "man scientist: medium-dark skin tone": null,
- "man scientist: medium-light skin tone": null,
- "man shrugging": null,
- "man shrugging: dark skin tone": null,
- "man shrugging: light skin tone": null,
- "man shrugging: medium skin tone": null,
- "man shrugging: medium-dark skin tone": null,
- "man shrugging: medium-light skin tone": null,
- "man singer": null,
- "man singer: dark skin tone": null,
- "man singer: light skin tone": null,
- "man singer: medium skin tone": null,
- "man singer: medium-dark skin tone": null,
- "man singer: medium-light skin tone": null,
- "man standing": null,
- "man standing: dark skin tone": null,
- "man standing: light skin tone": null,
- "man standing: medium skin tone": null,
- "man standing: medium-dark skin tone": null,
- "man standing: medium-light skin tone": null,
- "man student": null,
- "man student: dark skin tone": null,
- "man student: light skin tone": null,
- "man student: medium skin tone": null,
- "man student: medium-dark skin tone": null,
- "man student: medium-light skin tone": null,
- "man superhero": null,
- "man superhero: dark skin tone": null,
- "man superhero: light skin tone": null,
- "man superhero: medium skin tone": null,
- "man superhero: medium-dark skin tone": null,
- "man superhero: medium-light skin tone": null,
- "man supervillain": null,
- "man supervillain: dark skin tone": null,
- "man supervillain: light skin tone": null,
- "man supervillain: medium skin tone": null,
- "man supervillain: medium-dark skin tone": null,
- "man supervillain: medium-light skin tone": null,
- "man surfing": null,
- "man surfing: dark skin tone": null,
- "man surfing: light skin tone": null,
- "man surfing: medium skin tone": null,
- "man surfing: medium-dark skin tone": null,
- "man surfing: medium-light skin tone": null,
- "man swimming": null,
- "man swimming: dark skin tone": null,
- "man swimming: light skin tone": null,
- "man swimming: medium skin tone": null,
- "man swimming: medium-dark skin tone": null,
- "man swimming: medium-light skin tone": null,
- "man teacher": null,
- "man teacher: dark skin tone": null,
- "man teacher: light skin tone": null,
- "man teacher: medium skin tone": null,
- "man teacher: medium-dark skin tone": null,
- "man teacher: medium-light skin tone": null,
- "man technologist": null,
- "man technologist: dark skin tone": null,
- "man technologist: light skin tone": null,
- "man technologist: medium skin tone": null,
- "man technologist: medium-dark skin tone": null,
- "man technologist: medium-light skin tone": null,
- "man tipping hand": null,
- "man tipping hand: dark skin tone": null,
- "man tipping hand: light skin tone": null,
- "man tipping hand: medium skin tone": null,
- "man tipping hand: medium-dark skin tone": null,
- "man tipping hand: medium-light skin tone": null,
- "man vampire": null,
- "man vampire: dark skin tone": null,
- "man vampire: light skin tone": null,
- "man vampire: medium skin tone": null,
- "man vampire: medium-dark skin tone": null,
- "man vampire: medium-light skin tone": null,
- "man walking": null,
- "man walking facing right": null,
- "man walking facing right: dark skin tone": null,
- "man walking facing right: light skin tone": null,
- "man walking facing right: medium skin tone": null,
- "man walking facing right: medium-dark skin tone": null,
- "man walking facing right: medium-light skin tone": null,
- "man walking: dark skin tone": null,
- "man walking: light skin tone": null,
- "man walking: medium skin tone": null,
- "man walking: medium-dark skin tone": null,
- "man walking: medium-light skin tone": null,
- "man wearing turban": null,
- "man wearing turban: dark skin tone": null,
- "man wearing turban: light skin tone": null,
- "man wearing turban: medium skin tone": null,
- "man wearing turban: medium-dark skin tone": null,
- "man wearing turban: medium-light skin tone": null,
- "man with veil": null,
- "man with veil: dark skin tone": null,
- "man with veil: light skin tone": null,
- "man with veil: medium skin tone": null,
- "man with veil: medium-dark skin tone": null,
- "man with veil: medium-light skin tone": null,
- "man with white cane": null,
- "man with white cane facing right": null,
- "man with white cane facing right: dark skin tone": null,
- "man with white cane facing right: light skin tone": null,
- "man with white cane facing right: medium skin tone": null,
- "man with white cane facing right: medium-dark skin tone": null,
- "man with white cane facing right: medium-light skin tone": null,
- "man with white cane: dark skin tone": null,
- "man with white cane: light skin tone": null,
- "man with white cane: medium skin tone": null,
- "man with white cane: medium-dark skin tone": null,
- "man with white cane: medium-light skin tone": null,
- "man zombie": null,
- "man: bald": null,
- "man: beard": null,
- "man: blond hair": null,
- "man: curly hair": null,
- "man: dark skin tone, bald": null,
- "man: dark skin tone, beard": null,
- "man: dark skin tone, blond hair": null,
- "man: dark skin tone, curly hair": null,
- "man: dark skin tone, red hair": null,
- "man: dark skin tone, white hair": null,
- "man: light skin tone, bald": null,
- "man: light skin tone, beard": null,
- "man: light skin tone, blond hair": null,
- "man: light skin tone, curly hair": null,
- "man: light skin tone, red hair": null,
- "man: light skin tone, white hair": null,
- "man: medium skin tone, bald": null,
- "man: medium skin tone, beard": null,
- "man: medium skin tone, blond hair": null,
- "man: medium skin tone, curly hair": null,
- "man: medium skin tone, red hair": null,
- "man: medium skin tone, white hair": null,
- "man: medium-dark skin tone, bald": null,
- "man: medium-dark skin tone, beard": null,
- "man: medium-dark skin tone, blond hair": null,
- "man: medium-dark skin tone, curly hair": null,
- "man: medium-dark skin tone, red hair": null,
- "man: medium-dark skin tone, white hair": null,
- "man: medium-light skin tone, bald": null,
- "man: medium-light skin tone, beard": null,
- "man: medium-light skin tone, blond hair": null,
- "man: medium-light skin tone, curly hair": null,
- "man: medium-light skin tone, red hair": null,
- "man: medium-light skin tone, white hair": null,
- "man: red hair": null,
- "man: white hair": null,
- "mechanic": null,
- "mechanic: dark skin tone": null,
- "mechanic: light skin tone": null,
- "mechanic: medium skin tone": null,
- "mechanic: medium-dark skin tone": null,
- "mechanic: medium-light skin tone": null,
- "men with bunny ears": null,
- "men wrestling": null,
- "mending heart": null,
- "mermaid": null,
- "mermaid: dark skin tone": null,
- "mermaid: light skin tone": null,
- "mermaid: medium skin tone": null,
- "mermaid: medium-dark skin tone": null,
- "mermaid: medium-light skin tone": null,
- "merman": null,
- "merman: dark skin tone": null,
- "merman: light skin tone": null,
- "merman: medium skin tone": null,
- "merman: medium-dark skin tone": null,
- "merman: medium-light skin tone": null,
- "mx claus": null,
- "mx claus: dark skin tone": null,
- "mx claus: light skin tone": null,
- "mx claus: medium skin tone": null,
- "mx claus: medium-dark skin tone": null,
- "mx claus: medium-light skin tone": null,
- "office worker": null,
- "office worker: dark skin tone": null,
- "office worker: light skin tone": null,
- "office worker: medium skin tone": null,
- "office worker: medium-dark skin tone": null,
- "office worker: medium-light skin tone": null,
- "people holding hands": null,
- "person feeding baby": null,
- "person feeding baby: dark skin tone": null,
- "person feeding baby: light skin tone": null,
- "person feeding baby: medium skin tone": null,
- "person feeding baby: medium-dark skin tone": null,
- "person feeding baby: medium-light skin tone": null,
- "person in manual wheelchair": null,
- "person in manual wheelchair facing right": null,
- "person in manual wheelchair facing right: dark skin tone": null,
- "person in manual wheelchair facing right: light skin tone": null,
- "person in manual wheelchair facing right: medium skin tone": null,
- "person in manual wheelchair facing right: medium-dark skin tone": null,
- "person in manual wheelchair facing right: medium-light skin tone": null,
- "person in manual wheelchair: dark skin tone": null,
- "person in manual wheelchair: light skin tone": null,
- "person in manual wheelchair: medium skin tone": null,
- "person in manual wheelchair: medium-dark skin tone": null,
- "person in manual wheelchair: medium-light skin tone": null,
- "person in motorized wheelchair": null,
- "person in motorized wheelchair facing right": null,
- "person in motorized wheelchair facing right: dark skin tone": null,
- "person in motorized wheelchair facing right: light skin tone": null,
- "person in motorized wheelchair facing right: medium skin tone": null,
- "person in motorized wheelchair facing right: medium-dark skin tone": null,
- "person in motorized wheelchair facing right: medium-light skin tone": null,
- "person in motorized wheelchair: dark skin tone": null,
- "person in motorized wheelchair: light skin tone": null,
- "person in motorized wheelchair: medium skin tone": null,
- "person in motorized wheelchair: medium-dark skin tone": null,
- "person in motorized wheelchair: medium-light skin tone": null,
- "person kneeling facing right": null,
- "person kneeling facing right: dark skin tone": null,
- "person kneeling facing right: light skin tone": null,
- "person kneeling facing right: medium skin tone": null,
- "person kneeling facing right: medium-dark skin tone": null,
- "person kneeling facing right: medium-light skin tone": null,
- "person running facing right": null,
- "person running facing right: dark skin tone": null,
- "person running facing right: light skin tone": null,
- "person running facing right: medium skin tone": null,
- "person running facing right: medium-dark skin tone": null,
- "person running facing right: medium-light skin tone": null,
- "person walking facing right": null,
- "person walking facing right: dark skin tone": null,
- "person walking facing right: light skin tone": null,
- "person walking facing right: medium skin tone": null,
- "person walking facing right: medium-dark skin tone": null,
- "person walking facing right: medium-light skin tone": null,
- "person with white cane": null,
- "person with white cane facing right": null,
- "person with white cane facing right: dark skin tone": null,
- "person with white cane facing right: light skin tone": null,
- "person with white cane facing right: medium skin tone": null,
- "person with white cane facing right: medium-dark skin tone": null,
- "person with white cane facing right: medium-light skin tone": null,
- "person with white cane: dark skin tone": null,
- "person with white cane: light skin tone": null,
- "person with white cane: medium skin tone": null,
- "person with white cane: medium-dark skin tone": null,
- "person with white cane: medium-light skin tone": null,
- "person: bald": null,
- "person: curly hair": null,
- "person: dark skin tone, bald": null,
- "person: dark skin tone, curly hair": null,
- "person: dark skin tone, red hair": null,
- "person: dark skin tone, white hair": null,
- "person: light skin tone, bald": null,
- "person: light skin tone, curly hair": null,
- "person: light skin tone, red hair": null,
- "person: light skin tone, white hair": null,
- "person: medium skin tone, bald": null,
- "person: medium skin tone, curly hair": null,
- "person: medium skin tone, red hair": null,
- "person: medium skin tone, white hair": null,
- "person: medium-dark skin tone, bald": null,
- "person: medium-dark skin tone, curly hair": null,
- "person: medium-dark skin tone, red hair": null,
- "person: medium-dark skin tone, white hair": null,
- "person: medium-light skin tone, bald": null,
- "person: medium-light skin tone, curly hair": null,
- "person: medium-light skin tone, red hair": null,
- "person: medium-light skin tone, white hair": null,
- "person: red hair": null,
- "person: white hair": null,
- "phoenix": null,
- "pilot": null,
- "pilot: dark skin tone": null,
- "pilot: light skin tone": null,
- "pilot: medium skin tone": null,
- "pilot: medium-dark skin tone": null,
- "pilot: medium-light skin tone": null,
- "pirate flag": null,
- "polar bear": null,
- "rainbow flag": null,
- "scientist": null,
- "scientist: dark skin tone": null,
- "scientist: light skin tone": null,
- "scientist: medium skin tone": null,
- "scientist: medium-dark skin tone": null,
- "scientist: medium-light skin tone": null,
- "service dog": null,
- "singer": null,
- "singer: dark skin tone": null,
- "singer: light skin tone": null,
- "singer: medium skin tone": null,
- "singer: medium-dark skin tone": null,
- "singer: medium-light skin tone": null,
- "student": null,
- "student: dark skin tone": null,
- "student: light skin tone": null,
- "student: medium skin tone": null,
- "student: medium-dark skin tone": null,
- "student: medium-light skin tone": null,
- "teacher": null,
- "teacher: dark skin tone": null,
- "teacher: light skin tone": null,
- "teacher: medium skin tone": null,
- "teacher: medium-dark skin tone": null,
- "teacher: medium-light skin tone": null,
- "technologist": null,
- "technologist: dark skin tone": null,
- "technologist: light skin tone": null,
- "technologist: medium skin tone": null,
- "technologist: medium-dark skin tone": null,
- "technologist: medium-light skin tone": null,
- "transgender flag": null,
- "woman and man holding hands: dark skin tone, light skin tone": null,
- "woman and man holding hands: dark skin tone, medium skin tone": null,
- "woman and man holding hands: dark skin tone, medium-dark skin tone": null,
- "woman and man holding hands: dark skin tone, medium-light skin tone": null,
- "woman and man holding hands: light skin tone, dark skin tone": null,
- "woman and man holding hands: light skin tone, medium skin tone": null,
- "woman and man holding hands: light skin tone, medium-dark skin tone": null,
- "woman and man holding hands: light skin tone, medium-light skin tone": null,
- "woman and man holding hands: medium skin tone, dark skin tone": null,
- "woman and man holding hands: medium skin tone, light skin tone": null,
- "woman and man holding hands: medium skin tone, medium-dark skin tone": null,
- "woman and man holding hands: medium skin tone, medium-light skin tone": null,
- "woman and man holding hands: medium-dark skin tone, dark skin tone": null,
- "woman and man holding hands: medium-dark skin tone, light skin tone": null,
- "woman and man holding hands: medium-dark skin tone, medium skin tone": null,
- "woman and man holding hands: medium-dark skin tone, medium-light skin tone": null,
- "woman and man holding hands: medium-light skin tone, dark skin tone": null,
- "woman and man holding hands: medium-light skin tone, light skin tone": null,
- "woman and man holding hands: medium-light skin tone, medium skin tone": null,
- "woman and man holding hands: medium-light skin tone, medium-dark skin tone": null,
- "woman artist": null,
- "woman artist: dark skin tone": null,
- "woman artist: light skin tone": null,
- "woman artist: medium skin tone": null,
- "woman artist: medium-dark skin tone": null,
- "woman artist: medium-light skin tone": null,
- "woman astronaut": null,
- "woman astronaut: dark skin tone": null,
- "woman astronaut: light skin tone": null,
- "woman astronaut: medium skin tone": null,
- "woman astronaut: medium-dark skin tone": null,
- "woman astronaut: medium-light skin tone": null,
- "woman biking": null,
- "woman biking: dark skin tone": null,
- "woman biking: light skin tone": null,
- "woman biking: medium skin tone": null,
- "woman biking: medium-dark skin tone": null,
- "woman biking: medium-light skin tone": null,
- "woman bouncing ball": null,
- "woman bouncing ball: dark skin tone": null,
- "woman bouncing ball: light skin tone": null,
- "woman bouncing ball: medium skin tone": null,
- "woman bouncing ball: medium-dark skin tone": null,
- "woman bouncing ball: medium-light skin tone": null,
- "woman bowing": null,
- "woman bowing: dark skin tone": null,
- "woman bowing: light skin tone": null,
- "woman bowing: medium skin tone": null,
- "woman bowing: medium-dark skin tone": null,
- "woman bowing: medium-light skin tone": null,
- "woman cartwheeling": null,
- "woman cartwheeling: dark skin tone": null,
- "woman cartwheeling: light skin tone": null,
- "woman cartwheeling: medium skin tone": null,
- "woman cartwheeling: medium-dark skin tone": null,
- "woman cartwheeling: medium-light skin tone": null,
- "woman climbing": null,
- "woman climbing: dark skin tone": null,
- "woman climbing: light skin tone": null,
- "woman climbing: medium skin tone": null,
- "woman climbing: medium-dark skin tone": null,
- "woman climbing: medium-light skin tone": null,
- "woman construction worker": null,
- "woman construction worker: dark skin tone": null,
- "woman construction worker: light skin tone": null,
- "woman construction worker: medium skin tone": null,
- "woman construction worker: medium-dark skin tone": null,
- "woman construction worker: medium-light skin tone": null,
- "woman cook": null,
- "woman cook: dark skin tone": null,
- "woman cook: light skin tone": null,
- "woman cook: medium skin tone": null,
- "woman cook: medium-dark skin tone": null,
- "woman cook: medium-light skin tone": null,
- "woman detective": null,
- "woman detective: dark skin tone": null,
- "woman detective: light skin tone": null,
- "woman detective: medium skin tone": null,
- "woman detective: medium-dark skin tone": null,
- "woman detective: medium-light skin tone": null,
- "woman elf": null,
- "woman elf: dark skin tone": null,
- "woman elf: light skin tone": null,
- "woman elf: medium skin tone": null,
- "woman elf: medium-dark skin tone": null,
- "woman elf: medium-light skin tone": null,
- "woman facepalming": null,
- "woman facepalming: dark skin tone": null,
- "woman facepalming: light skin tone": null,
- "woman facepalming: medium skin tone": null,
- "woman facepalming: medium-dark skin tone": null,
- "woman facepalming: medium-light skin tone": null,
- "woman factory worker": null,
- "woman factory worker: dark skin tone": null,
- "woman factory worker: light skin tone": null,
- "woman factory worker: medium skin tone": null,
- "woman factory worker: medium-dark skin tone": null,
- "woman factory worker: medium-light skin tone": null,
- "woman fairy": null,
- "woman fairy: dark skin tone": null,
- "woman fairy: light skin tone": null,
- "woman fairy: medium skin tone": null,
- "woman fairy: medium-dark skin tone": null,
- "woman fairy: medium-light skin tone": null,
- "woman farmer": null,
- "woman farmer: dark skin tone": null,
- "woman farmer: light skin tone": null,
- "woman farmer: medium skin tone": null,
- "woman farmer: medium-dark skin tone": null,
- "woman farmer: medium-light skin tone": null,
- "woman feeding baby": null,
- "woman feeding baby: dark skin tone": null,
- "woman feeding baby: light skin tone": null,
- "woman feeding baby: medium skin tone": null,
- "woman feeding baby: medium-dark skin tone": null,
- "woman feeding baby: medium-light skin tone": null,
- "woman firefighter": null,
- "woman firefighter: dark skin tone": null,
- "woman firefighter: light skin tone": null,
- "woman firefighter: medium skin tone": null,
- "woman firefighter: medium-dark skin tone": null,
- "woman firefighter: medium-light skin tone": null,
- "woman frowning": null,
- "woman frowning: dark skin tone": null,
- "woman frowning: light skin tone": null,
- "woman frowning: medium skin tone": null,
- "woman frowning: medium-dark skin tone": null,
- "woman frowning: medium-light skin tone": null,
- "woman genie": null,
- "woman gesturing NO": null,
- "woman gesturing NO: dark skin tone": null,
- "woman gesturing NO: light skin tone": null,
- "woman gesturing NO: medium skin tone": null,
- "woman gesturing NO: medium-dark skin tone": null,
- "woman gesturing NO: medium-light skin tone": null,
- "woman gesturing OK": null,
- "woman gesturing OK: dark skin tone": null,
- "woman gesturing OK: light skin tone": null,
- "woman gesturing OK: medium skin tone": null,
- "woman gesturing OK: medium-dark skin tone": null,
- "woman gesturing OK: medium-light skin tone": null,
- "woman getting haircut": null,
- "woman getting haircut: dark skin tone": null,
- "woman getting haircut: light skin tone": null,
- "woman getting haircut: medium skin tone": null,
- "woman getting haircut: medium-dark skin tone": null,
- "woman getting haircut: medium-light skin tone": null,
- "woman getting massage": null,
- "woman getting massage: dark skin tone": null,
- "woman getting massage: light skin tone": null,
- "woman getting massage: medium skin tone": null,
- "woman getting massage: medium-dark skin tone": null,
- "woman getting massage: medium-light skin tone": null,
- "woman golfing": null,
- "woman golfing: dark skin tone": null,
- "woman golfing: light skin tone": null,
- "woman golfing: medium skin tone": null,
- "woman golfing: medium-dark skin tone": null,
- "woman golfing: medium-light skin tone": null,
- "woman guard": null,
- "woman guard: dark skin tone": null,
- "woman guard: light skin tone": null,
- "woman guard: medium skin tone": null,
- "woman guard: medium-dark skin tone": null,
- "woman guard: medium-light skin tone": null,
- "woman health worker": null,
- "woman health worker: dark skin tone": null,
- "woman health worker: light skin tone": null,
- "woman health worker: medium skin tone": null,
- "woman health worker: medium-dark skin tone": null,
- "woman health worker: medium-light skin tone": null,
- "woman in lotus position": null,
- "woman in lotus position: dark skin tone": null,
- "woman in lotus position: light skin tone": null,
- "woman in lotus position: medium skin tone": null,
- "woman in lotus position: medium-dark skin tone": null,
- "woman in lotus position: medium-light skin tone": null,
- "woman in manual wheelchair": null,
- "woman in manual wheelchair facing right": null,
- "woman in manual wheelchair facing right: dark skin tone": null,
- "woman in manual wheelchair facing right: light skin tone": null,
- "woman in manual wheelchair facing right: medium skin tone": null,
- "woman in manual wheelchair facing right: medium-dark skin tone": null,
- "woman in manual wheelchair facing right: medium-light skin tone": null,
- "woman in manual wheelchair: dark skin tone": null,
- "woman in manual wheelchair: light skin tone": null,
- "woman in manual wheelchair: medium skin tone": null,
- "woman in manual wheelchair: medium-dark skin tone": null,
- "woman in manual wheelchair: medium-light skin tone": null,
- "woman in motorized wheelchair": null,
- "woman in motorized wheelchair facing right": null,
- "woman in motorized wheelchair facing right: dark skin tone": null,
- "woman in motorized wheelchair facing right: light skin tone": null,
- "woman in motorized wheelchair facing right: medium skin tone": null,
- "woman in motorized wheelchair facing right: medium-dark skin tone": null,
- "woman in motorized wheelchair facing right: medium-light skin tone": null,
- "woman in motorized wheelchair: dark skin tone": null,
- "woman in motorized wheelchair: light skin tone": null,
- "woman in motorized wheelchair: medium skin tone": null,
- "woman in motorized wheelchair: medium-dark skin tone": null,
- "woman in motorized wheelchair: medium-light skin tone": null,
- "woman in steamy room": null,
- "woman in steamy room: dark skin tone": null,
- "woman in steamy room: light skin tone": null,
- "woman in steamy room: medium skin tone": null,
- "woman in steamy room: medium-dark skin tone": null,
- "woman in steamy room: medium-light skin tone": null,
- "woman in tuxedo": null,
- "woman in tuxedo: dark skin tone": null,
- "woman in tuxedo: light skin tone": null,
- "woman in tuxedo: medium skin tone": null,
- "woman in tuxedo: medium-dark skin tone": null,
- "woman in tuxedo: medium-light skin tone": null,
- "woman judge": null,
- "woman judge: dark skin tone": null,
- "woman judge: light skin tone": null,
- "woman judge: medium skin tone": null,
- "woman judge: medium-dark skin tone": null,
- "woman judge: medium-light skin tone": null,
- "woman juggling": null,
- "woman juggling: dark skin tone": null,
- "woman juggling: light skin tone": null,
- "woman juggling: medium skin tone": null,
- "woman juggling: medium-dark skin tone": null,
- "woman juggling: medium-light skin tone": null,
- "woman kneeling": null,
- "woman kneeling facing right": null,
- "woman kneeling facing right: dark skin tone": null,
- "woman kneeling facing right: light skin tone": null,
- "woman kneeling facing right: medium skin tone": null,
- "woman kneeling facing right: medium-dark skin tone": null,
- "woman kneeling facing right: medium-light skin tone": null,
- "woman kneeling: dark skin tone": null,
- "woman kneeling: light skin tone": null,
- "woman kneeling: medium skin tone": null,
- "woman kneeling: medium-dark skin tone": null,
- "woman kneeling: medium-light skin tone": null,
- "woman lifting weights": null,
- "woman lifting weights: dark skin tone": null,
- "woman lifting weights: light skin tone": null,
- "woman lifting weights: medium skin tone": null,
- "woman lifting weights: medium-dark skin tone": null,
- "woman lifting weights: medium-light skin tone": null,
- "woman mage": null,
- "woman mage: dark skin tone": null,
- "woman mage: light skin tone": null,
- "woman mage: medium skin tone": null,
- "woman mage: medium-dark skin tone": null,
- "woman mage: medium-light skin tone": null,
- "woman mechanic": null,
- "woman mechanic: dark skin tone": null,
- "woman mechanic: light skin tone": null,
- "woman mechanic: medium skin tone": null,
- "woman mechanic: medium-dark skin tone": null,
- "woman mechanic: medium-light skin tone": null,
- "woman mountain biking": null,
- "woman mountain biking: dark skin tone": null,
- "woman mountain biking: light skin tone": null,
- "woman mountain biking: medium skin tone": null,
- "woman mountain biking: medium-dark skin tone": null,
- "woman mountain biking: medium-light skin tone": null,
- "woman office worker": null,
- "woman office worker: dark skin tone": null,
- "woman office worker: light skin tone": null,
- "woman office worker: medium skin tone": null,
- "woman office worker: medium-dark skin tone": null,
- "woman office worker: medium-light skin tone": null,
- "woman pilot": null,
- "woman pilot: dark skin tone": null,
- "woman pilot: light skin tone": null,
- "woman pilot: medium skin tone": null,
- "woman pilot: medium-dark skin tone": null,
- "woman pilot: medium-light skin tone": null,
- "woman playing handball": null,
- "woman playing handball: dark skin tone": null,
- "woman playing handball: light skin tone": null,
- "woman playing handball: medium skin tone": null,
- "woman playing handball: medium-dark skin tone": null,
- "woman playing handball: medium-light skin tone": null,
- "woman playing water polo": null,
- "woman playing water polo: dark skin tone": null,
- "woman playing water polo: light skin tone": null,
- "woman playing water polo: medium skin tone": null,
- "woman playing water polo: medium-dark skin tone": null,
- "woman playing water polo: medium-light skin tone": null,
- "woman police officer": null,
- "woman police officer: dark skin tone": null,
- "woman police officer: light skin tone": null,
- "woman police officer: medium skin tone": null,
- "woman police officer: medium-dark skin tone": null,
- "woman police officer: medium-light skin tone": null,
- "woman pouting": null,
- "woman pouting: dark skin tone": null,
- "woman pouting: light skin tone": null,
- "woman pouting: medium skin tone": null,
- "woman pouting: medium-dark skin tone": null,
- "woman pouting: medium-light skin tone": null,
- "woman raising hand": null,
- "woman raising hand: dark skin tone": null,
- "woman raising hand: light skin tone": null,
- "woman raising hand: medium skin tone": null,
- "woman raising hand: medium-dark skin tone": null,
- "woman raising hand: medium-light skin tone": null,
- "woman rowing boat": null,
- "woman rowing boat: dark skin tone": null,
- "woman rowing boat: light skin tone": null,
- "woman rowing boat: medium skin tone": null,
- "woman rowing boat: medium-dark skin tone": null,
- "woman rowing boat: medium-light skin tone": null,
- "woman running": null,
- "woman running facing right": null,
- "woman running facing right: dark skin tone": null,
- "woman running facing right: light skin tone": null,
- "woman running facing right: medium skin tone": null,
- "woman running facing right: medium-dark skin tone": null,
- "woman running facing right: medium-light skin tone": null,
- "woman running: dark skin tone": null,
- "woman running: light skin tone": null,
- "woman running: medium skin tone": null,
- "woman running: medium-dark skin tone": null,
- "woman running: medium-light skin tone": null,
- "woman scientist": null,
- "woman scientist: dark skin tone": null,
- "woman scientist: light skin tone": null,
- "woman scientist: medium skin tone": null,
- "woman scientist: medium-dark skin tone": null,
- "woman scientist: medium-light skin tone": null,
- "woman shrugging": null,
- "woman shrugging: dark skin tone": null,
- "woman shrugging: light skin tone": null,
- "woman shrugging: medium skin tone": null,
- "woman shrugging: medium-dark skin tone": null,
- "woman shrugging: medium-light skin tone": null,
- "woman singer": null,
- "woman singer: dark skin tone": null,
- "woman singer: light skin tone": null,
- "woman singer: medium skin tone": null,
- "woman singer: medium-dark skin tone": null,
- "woman singer: medium-light skin tone": null,
- "woman standing": null,
- "woman standing: dark skin tone": null,
- "woman standing: light skin tone": null,
- "woman standing: medium skin tone": null,
- "woman standing: medium-dark skin tone": null,
- "woman standing: medium-light skin tone": null,
- "woman student": null,
- "woman student: dark skin tone": null,
- "woman student: light skin tone": null,
- "woman student: medium skin tone": null,
- "woman student: medium-dark skin tone": null,
- "woman student: medium-light skin tone": null,
- "woman superhero": null,
- "woman superhero: dark skin tone": null,
- "woman superhero: light skin tone": null,
- "woman superhero: medium skin tone": null,
- "woman superhero: medium-dark skin tone": null,
- "woman superhero: medium-light skin tone": null,
- "woman supervillain": null,
- "woman supervillain: dark skin tone": null,
- "woman supervillain: light skin tone": null,
- "woman supervillain: medium skin tone": null,
- "woman supervillain: medium-dark skin tone": null,
- "woman supervillain: medium-light skin tone": null,
- "woman surfing": null,
- "woman surfing: dark skin tone": null,
- "woman surfing: light skin tone": null,
- "woman surfing: medium skin tone": null,
- "woman surfing: medium-dark skin tone": null,
- "woman surfing: medium-light skin tone": null,
- "woman swimming": null,
- "woman swimming: dark skin tone": null,
- "woman swimming: light skin tone": null,
- "woman swimming: medium skin tone": null,
- "woman swimming: medium-dark skin tone": null,
- "woman swimming: medium-light skin tone": null,
- "woman teacher": null,
- "woman teacher: dark skin tone": null,
- "woman teacher: light skin tone": null,
- "woman teacher: medium skin tone": null,
- "woman teacher: medium-dark skin tone": null,
- "woman teacher: medium-light skin tone": null,
- "woman technologist": null,
- "woman technologist: dark skin tone": null,
- "woman technologist: light skin tone": null,
- "woman technologist: medium skin tone": null,
- "woman technologist: medium-dark skin tone": null,
- "woman technologist: medium-light skin tone": null,
- "woman tipping hand": null,
- "woman tipping hand: dark skin tone": null,
- "woman tipping hand: light skin tone": null,
- "woman tipping hand: medium skin tone": null,
- "woman tipping hand: medium-dark skin tone": null,
- "woman tipping hand: medium-light skin tone": null,
- "woman vampire": null,
- "woman vampire: dark skin tone": null,
- "woman vampire: light skin tone": null,
- "woman vampire: medium skin tone": null,
- "woman vampire: medium-dark skin tone": null,
- "woman vampire: medium-light skin tone": null,
- "woman walking": null,
- "woman walking facing right": null,
- "woman walking facing right: dark skin tone": null,
- "woman walking facing right: light skin tone": null,
- "woman walking facing right: medium skin tone": null,
- "woman walking facing right: medium-dark skin tone": null,
- "woman walking facing right: medium-light skin tone": null,
- "woman walking: dark skin tone": null,
- "woman walking: light skin tone": null,
- "woman walking: medium skin tone": null,
- "woman walking: medium-dark skin tone": null,
- "woman walking: medium-light skin tone": null,
- "woman wearing turban": null,
- "woman wearing turban: dark skin tone": null,
- "woman wearing turban: light skin tone": null,
- "woman wearing turban: medium skin tone": null,
- "woman wearing turban: medium-dark skin tone": null,
- "woman wearing turban: medium-light skin tone": null,
- "woman with veil": null,
- "woman with veil: dark skin tone": null,
- "woman with veil: light skin tone": null,
- "woman with veil: medium skin tone": null,
- "woman with veil: medium-dark skin tone": null,
- "woman with veil: medium-light skin tone": null,
- "woman with white cane": null,
- "woman with white cane facing right": null,
- "woman with white cane facing right: dark skin tone": null,
- "woman with white cane facing right: light skin tone": null,
- "woman with white cane facing right: medium skin tone": null,
- "woman with white cane facing right: medium-dark skin tone": null,
- "woman with white cane facing right: medium-light skin tone": null,
- "woman with white cane: dark skin tone": null,
- "woman with white cane: light skin tone": null,
- "woman with white cane: medium skin tone": null,
- "woman with white cane: medium-dark skin tone": null,
- "woman with white cane: medium-light skin tone": null,
- "woman zombie": null,
- "woman: bald": null,
- "woman: beard": null,
- "woman: blond hair": null,
- "woman: curly hair": null,
- "woman: dark skin tone, bald": null,
- "woman: dark skin tone, beard": null,
- "woman: dark skin tone, blond hair": null,
- "woman: dark skin tone, curly hair": null,
- "woman: dark skin tone, red hair": null,
- "woman: dark skin tone, white hair": null,
- "woman: light skin tone, bald": null,
- "woman: light skin tone, beard": null,
- "woman: light skin tone, blond hair": null,
- "woman: light skin tone, curly hair": null,
- "woman: light skin tone, red hair": null,
- "woman: light skin tone, white hair": null,
- "woman: medium skin tone, bald": null,
- "woman: medium skin tone, beard": null,
- "woman: medium skin tone, blond hair": null,
- "woman: medium skin tone, curly hair": null,
- "woman: medium skin tone, red hair": null,
- "woman: medium skin tone, white hair": null,
- "woman: medium-dark skin tone, bald": null,
- "woman: medium-dark skin tone, beard": null,
- "woman: medium-dark skin tone, blond hair": null,
- "woman: medium-dark skin tone, curly hair": null,
- "woman: medium-dark skin tone, red hair": null,
- "woman: medium-dark skin tone, white hair": null,
- "woman: medium-light skin tone, bald": null,
- "woman: medium-light skin tone, beard": null,
- "woman: medium-light skin tone, blond hair": null,
- "woman: medium-light skin tone, curly hair": null,
- "woman: medium-light skin tone, red hair": null,
- "woman: medium-light skin tone, white hair": null,
- "woman: red hair": null,
- "woman: white hair": null,
- "women with bunny ears": null,
- "women wrestling": null
-}
diff --git a/src/typescript/sdk/src/emoji_data/emoji-data.ts b/src/typescript/sdk/src/emoji_data/emoji-data.ts
index e624d3c2a..2dd0f2144 100644
--- a/src/typescript/sdk/src/emoji_data/emoji-data.ts
+++ b/src/typescript/sdk/src/emoji_data/emoji-data.ts
@@ -1,7 +1,7 @@
import { type HexInput } from "@aptos-labs/ts-sdk";
import { normalizeHex } from "../utils/hex";
-import AllSymbolEmojiJSON from "./symbol-emojis.json";
-import AllChatEmojiJSON from "./chat-emojis.json";
+import { SYMBOL_EMOJIS } from "./symbol-emojis";
+import { CHAT_EMOJIS } from "./chat-emojis";
import {
type SymbolEmojiName,
type SymbolEmoji,
@@ -30,7 +30,7 @@ const createMaps = (entries: Array
};
};
-export const allSymbolEmojis = Object.entries(AllSymbolEmojiJSON).map(([emoji, name]) => {
+export const allSymbolEmojis = Object.entries(SYMBOL_EMOJIS).map(([emoji, name]) => {
const bytes = encoder.encode(emoji);
const hex = normalizeHex(bytes);
return {
@@ -41,7 +41,7 @@ export const allSymbolEmojis = Object.entries(AllSymbolEmojiJSON).map(([emoji, n
};
});
-export const allChatEmojis = Object.entries(AllChatEmojiJSON).map(([emoji, name]) => {
+export const allChatEmojis = Object.entries(CHAT_EMOJIS).map(([emoji, name]) => {
const bytes = encoder.encode(emoji);
const hex = normalizeHex(bytes);
return {
diff --git a/src/typescript/sdk/src/emoji_data/index.ts b/src/typescript/sdk/src/emoji_data/index.ts
index c71baee40..4ca43e37f 100644
--- a/src/typescript/sdk/src/emoji_data/index.ts
+++ b/src/typescript/sdk/src/emoji_data/index.ts
@@ -1,4 +1,6 @@
+export * from "./chat-emojis";
export * from "./chat-message";
export * from "./emoji-data";
+export * from "./symbol-emojis";
export * from "./types";
export * from "./utils";
diff --git a/src/typescript/sdk/src/emoji_data/symbol-emojis.json b/src/typescript/sdk/src/emoji_data/symbol-emojis.json
deleted file mode 100644
index ba3979594..000000000
--- a/src/typescript/sdk/src/emoji_data/symbol-emojis.json
+++ /dev/null
@@ -1,2306 +0,0 @@
-{
- "#\ufe0f\u20e3": "keycap: #",
- "*\ufe0f\u20e3": "keycap: *",
- "0\ufe0f\u20e3": "keycap: 0",
- "1\ufe0f\u20e3": "keycap: 1",
- "2\ufe0f\u20e3": "keycap: 2",
- "3\ufe0f\u20e3": "keycap: 3",
- "4\ufe0f\u20e3": "keycap: 4",
- "5\ufe0f\u20e3": "keycap: 5",
- "6\ufe0f\u20e3": "keycap: 6",
- "7\ufe0f\u20e3": "keycap: 7",
- "8\ufe0f\u20e3": "keycap: 8",
- "9\ufe0f\u20e3": "keycap: 9",
- "\u00a9\ufe0f": "copyright",
- "\u00ae\ufe0f": "registered",
- "\u203c\ufe0f": "double exclamation mark",
- "\u2049\ufe0f": "exclamation question mark",
- "\u2122\ufe0f": "trade mark",
- "\u2139\ufe0f": "information",
- "\u2194\ufe0f": "left-right arrow",
- "\u2195\ufe0f": "up-down arrow",
- "\u2196\ufe0f": "up-left arrow",
- "\u2197\ufe0f": "up-right arrow",
- "\u2198\ufe0f": "down-right arrow",
- "\u2199\ufe0f": "down-left arrow",
- "\u21a9\ufe0f": "right arrow curving left",
- "\u21aa\ufe0f": "left arrow curving right",
- "\u231a": "watch",
- "\u231b": "hourglass done",
- "\u2328\ufe0f": "keyboard",
- "\u23cf\ufe0f": "eject button",
- "\u23e9": "fast-forward button",
- "\u23ea": "fast reverse button",
- "\u23eb": "fast up button",
- "\u23ec": "fast down button",
- "\u23ed\ufe0f": "next track button",
- "\u23ee\ufe0f": "last track button",
- "\u23ef\ufe0f": "play or pause button",
- "\u23f0": "alarm clock",
- "\u23f1\ufe0f": "stopwatch",
- "\u23f2\ufe0f": "timer clock",
- "\u23f3": "hourglass not done",
- "\u23f8\ufe0f": "pause button",
- "\u23f9\ufe0f": "stop button",
- "\u23fa\ufe0f": "record button",
- "\u24c2\ufe0f": "circled M",
- "\u25aa\ufe0f": "black small square",
- "\u25ab\ufe0f": "white small square",
- "\u25b6\ufe0f": "play button",
- "\u25c0\ufe0f": "reverse button",
- "\u25fb\ufe0f": "white medium square",
- "\u25fc\ufe0f": "black medium square",
- "\u25fd": "white medium-small square",
- "\u25fe": "black medium-small square",
- "\u2600\ufe0f": "sun",
- "\u2601\ufe0f": "cloud",
- "\u2602\ufe0f": "umbrella",
- "\u2603\ufe0f": "snowman",
- "\u2604\ufe0f": "comet",
- "\u260e\ufe0f": "telephone",
- "\u2611\ufe0f": "check box with check",
- "\u2614": "umbrella with rain drops",
- "\u2615": "hot beverage",
- "\u2618\ufe0f": "shamrock",
- "\u261d\ufe0f": "index pointing up",
- "\u261d\ud83c\udffb": "index pointing up: light skin tone",
- "\u261d\ud83c\udffc": "index pointing up: medium-light skin tone",
- "\u261d\ud83c\udffd": "index pointing up: medium skin tone",
- "\u261d\ud83c\udffe": "index pointing up: medium-dark skin tone",
- "\u261d\ud83c\udfff": "index pointing up: dark skin tone",
- "\u2620\ufe0f": "skull and crossbones",
- "\u2622\ufe0f": "radioactive",
- "\u2623\ufe0f": "biohazard",
- "\u2626\ufe0f": "orthodox cross",
- "\u262a\ufe0f": "star and crescent",
- "\u262e\ufe0f": "peace symbol",
- "\u262f\ufe0f": "yin yang",
- "\u2638\ufe0f": "wheel of dharma",
- "\u2639\ufe0f": "frowning face",
- "\u263a\ufe0f": "smiling face",
- "\u2640\ufe0f": "female sign",
- "\u2642\ufe0f": "male sign",
- "\u2648": "Aries",
- "\u2649": "Taurus",
- "\u264a": "Gemini",
- "\u264b": "Cancer",
- "\u264c": "Leo",
- "\u264d": "Virgo",
- "\u264e": "Libra",
- "\u264f": "Scorpio",
- "\u2650": "Sagittarius",
- "\u2651": "Capricorn",
- "\u2652": "Aquarius",
- "\u2653": "Pisces",
- "\u265f\ufe0f": "chess pawn",
- "\u2660\ufe0f": "spade suit",
- "\u2663\ufe0f": "club suit",
- "\u2665\ufe0f": "heart suit",
- "\u2666\ufe0f": "diamond suit",
- "\u2668\ufe0f": "hot springs",
- "\u267b\ufe0f": "recycling symbol",
- "\u267e\ufe0f": "infinity",
- "\u267f": "wheelchair symbol",
- "\u2692\ufe0f": "hammer and pick",
- "\u2693": "anchor",
- "\u2694\ufe0f": "crossed swords",
- "\u2695\ufe0f": "medical symbol",
- "\u2696\ufe0f": "balance scale",
- "\u2697\ufe0f": "alembic",
- "\u2699\ufe0f": "gear",
- "\u269b\ufe0f": "atom symbol",
- "\u269c\ufe0f": "fleur-de-lis",
- "\u26a0\ufe0f": "warning",
- "\u26a1": "high voltage",
- "\u26a7\ufe0f": "transgender symbol",
- "\u26aa": "white circle",
- "\u26ab": "black circle",
- "\u26b0\ufe0f": "coffin",
- "\u26b1\ufe0f": "funeral urn",
- "\u26bd": "soccer ball",
- "\u26be": "baseball",
- "\u26c4": "snowman without snow",
- "\u26c5": "sun behind cloud",
- "\u26c8\ufe0f": "cloud with lightning and rain",
- "\u26ce": "Ophiuchus",
- "\u26cf\ufe0f": "pick",
- "\u26d1\ufe0f": "rescue worker's helmet",
- "\u26d3\ufe0f": "chains",
- "\u26d4": "no entry",
- "\u26e9\ufe0f": "shinto shrine",
- "\u26ea": "church",
- "\u26f0\ufe0f": "mountain",
- "\u26f1\ufe0f": "umbrella on ground",
- "\u26f2": "fountain",
- "\u26f3": "flag in hole",
- "\u26f4\ufe0f": "ferry",
- "\u26f5": "sailboat",
- "\u26f7\ufe0f": "skier",
- "\u26f8\ufe0f": "ice skate",
- "\u26f9\ufe0f": "person bouncing ball",
- "\u26f9\ud83c\udffb": "person bouncing ball: light skin tone",
- "\u26f9\ud83c\udffc": "person bouncing ball: medium-light skin tone",
- "\u26f9\ud83c\udffd": "person bouncing ball: medium skin tone",
- "\u26f9\ud83c\udffe": "person bouncing ball: medium-dark skin tone",
- "\u26f9\ud83c\udfff": "person bouncing ball: dark skin tone",
- "\u26fa": "tent",
- "\u26fd": "fuel pump",
- "\u2702\ufe0f": "scissors",
- "\u2705": "check mark button",
- "\u2708\ufe0f": "airplane",
- "\u2709\ufe0f": "envelope",
- "\u270a": "raised fist",
- "\u270a\ud83c\udffb": "raised fist: light skin tone",
- "\u270a\ud83c\udffc": "raised fist: medium-light skin tone",
- "\u270a\ud83c\udffd": "raised fist: medium skin tone",
- "\u270a\ud83c\udffe": "raised fist: medium-dark skin tone",
- "\u270a\ud83c\udfff": "raised fist: dark skin tone",
- "\u270b": "raised hand",
- "\u270b\ud83c\udffb": "raised hand: light skin tone",
- "\u270b\ud83c\udffc": "raised hand: medium-light skin tone",
- "\u270b\ud83c\udffd": "raised hand: medium skin tone",
- "\u270b\ud83c\udffe": "raised hand: medium-dark skin tone",
- "\u270b\ud83c\udfff": "raised hand: dark skin tone",
- "\u270c\ufe0f": "victory hand",
- "\u270c\ud83c\udffb": "victory hand: light skin tone",
- "\u270c\ud83c\udffc": "victory hand: medium-light skin tone",
- "\u270c\ud83c\udffd": "victory hand: medium skin tone",
- "\u270c\ud83c\udffe": "victory hand: medium-dark skin tone",
- "\u270c\ud83c\udfff": "victory hand: dark skin tone",
- "\u270d\ufe0f": "writing hand",
- "\u270d\ud83c\udffb": "writing hand: light skin tone",
- "\u270d\ud83c\udffc": "writing hand: medium-light skin tone",
- "\u270d\ud83c\udffd": "writing hand: medium skin tone",
- "\u270d\ud83c\udffe": "writing hand: medium-dark skin tone",
- "\u270d\ud83c\udfff": "writing hand: dark skin tone",
- "\u270f\ufe0f": "pencil",
- "\u2712\ufe0f": "black nib",
- "\u2714\ufe0f": "check mark",
- "\u2716\ufe0f": "multiply",
- "\u271d\ufe0f": "latin cross",
- "\u2721\ufe0f": "star of David",
- "\u2728": "sparkles",
- "\u2733\ufe0f": "eight-spoked asterisk",
- "\u2734\ufe0f": "eight-pointed star",
- "\u2744\ufe0f": "snowflake",
- "\u2747\ufe0f": "sparkle",
- "\u274c": "cross mark",
- "\u274e": "cross mark button",
- "\u2753": "red question mark",
- "\u2754": "white question mark",
- "\u2755": "white exclamation mark",
- "\u2757": "red exclamation mark",
- "\u2763\ufe0f": "heart exclamation",
- "\u2764\ufe0f": "red heart",
- "\u2795": "plus",
- "\u2796": "minus",
- "\u2797": "divide",
- "\u27a1\ufe0f": "right arrow",
- "\u27b0": "curly loop",
- "\u27bf": "double curly loop",
- "\u2934\ufe0f": "right arrow curving up",
- "\u2935\ufe0f": "right arrow curving down",
- "\u2b05\ufe0f": "left arrow",
- "\u2b06\ufe0f": "up arrow",
- "\u2b07\ufe0f": "down arrow",
- "\u2b1b": "black large square",
- "\u2b1c": "white large square",
- "\u2b50": "star",
- "\u2b55": "hollow red circle",
- "\u3030\ufe0f": "wavy dash",
- "\u303d\ufe0f": "part alternation mark",
- "\u3297\ufe0f": "Japanese \"congratulations\" button",
- "\u3299\ufe0f": "Japanese \"secret\" button",
- "\ud83c\udc04": "mahjong red dragon",
- "\ud83c\udccf": "joker",
- "\ud83c\udd70\ufe0f": "A button (blood type)",
- "\ud83c\udd71\ufe0f": "B button (blood type)",
- "\ud83c\udd7e\ufe0f": "O button (blood type)",
- "\ud83c\udd7f\ufe0f": "P button",
- "\ud83c\udd8e": "AB button (blood type)",
- "\ud83c\udd91": "CL button",
- "\ud83c\udd92": "COOL button",
- "\ud83c\udd93": "FREE button",
- "\ud83c\udd94": "ID button",
- "\ud83c\udd95": "NEW button",
- "\ud83c\udd96": "NG button",
- "\ud83c\udd97": "OK button",
- "\ud83c\udd98": "SOS button",
- "\ud83c\udd99": "UP! button",
- "\ud83c\udd9a": "VS button",
- "\ud83c\udde6\ud83c\udde8": "flag: Ascension Island",
- "\ud83c\udde6\ud83c\udde9": "flag: Andorra",
- "\ud83c\udde6\ud83c\uddea": "flag: United Arab Emirates",
- "\ud83c\udde6\ud83c\uddeb": "flag: Afghanistan",
- "\ud83c\udde6\ud83c\uddec": "flag: Antigua & Barbuda",
- "\ud83c\udde6\ud83c\uddee": "flag: Anguilla",
- "\ud83c\udde6\ud83c\uddf1": "flag: Albania",
- "\ud83c\udde6\ud83c\uddf2": "flag: Armenia",
- "\ud83c\udde6\ud83c\uddf4": "flag: Angola",
- "\ud83c\udde6\ud83c\uddf6": "flag: Antarctica",
- "\ud83c\udde6\ud83c\uddf7": "flag: Argentina",
- "\ud83c\udde6\ud83c\uddf8": "flag: American Samoa",
- "\ud83c\udde6\ud83c\uddf9": "flag: Austria",
- "\ud83c\udde6\ud83c\uddfa": "flag: Australia",
- "\ud83c\udde6\ud83c\uddfc": "flag: Aruba",
- "\ud83c\udde6\ud83c\uddfd": "flag: \u00c5land Islands",
- "\ud83c\udde6\ud83c\uddff": "flag: Azerbaijan",
- "\ud83c\udde7\ud83c\udde6": "flag: Bosnia & Herzegovina",
- "\ud83c\udde7\ud83c\udde7": "flag: Barbados",
- "\ud83c\udde7\ud83c\udde9": "flag: Bangladesh",
- "\ud83c\udde7\ud83c\uddea": "flag: Belgium",
- "\ud83c\udde7\ud83c\uddeb": "flag: Burkina Faso",
- "\ud83c\udde7\ud83c\uddec": "flag: Bulgaria",
- "\ud83c\udde7\ud83c\udded": "flag: Bahrain",
- "\ud83c\udde7\ud83c\uddee": "flag: Burundi",
- "\ud83c\udde7\ud83c\uddef": "flag: Benin",
- "\ud83c\udde7\ud83c\uddf1": "flag: St. Barth\u00e9lemy",
- "\ud83c\udde7\ud83c\uddf2": "flag: Bermuda",
- "\ud83c\udde7\ud83c\uddf3": "flag: Brunei",
- "\ud83c\udde7\ud83c\uddf4": "flag: Bolivia",
- "\ud83c\udde7\ud83c\uddf6": "flag: Caribbean Netherlands",
- "\ud83c\udde7\ud83c\uddf7": "flag: Brazil",
- "\ud83c\udde7\ud83c\uddf8": "flag: Bahamas",
- "\ud83c\udde7\ud83c\uddf9": "flag: Bhutan",
- "\ud83c\udde7\ud83c\uddfb": "flag: Bouvet Island",
- "\ud83c\udde7\ud83c\uddfc": "flag: Botswana",
- "\ud83c\udde7\ud83c\uddfe": "flag: Belarus",
- "\ud83c\udde7\ud83c\uddff": "flag: Belize",
- "\ud83c\udde8\ud83c\udde6": "flag: Canada",
- "\ud83c\udde8\ud83c\udde8": "flag: Cocos (Keeling) Islands",
- "\ud83c\udde8\ud83c\udde9": "flag: Congo - Kinshasa",
- "\ud83c\udde8\ud83c\uddeb": "flag: Central African Republic",
- "\ud83c\udde8\ud83c\uddec": "flag: Congo - Brazzaville",
- "\ud83c\udde8\ud83c\udded": "flag: Switzerland",
- "\ud83c\udde8\ud83c\uddee": "flag: C\u00f4te d'Ivoire",
- "\ud83c\udde8\ud83c\uddf0": "flag: Cook Islands",
- "\ud83c\udde8\ud83c\uddf1": "flag: Chile",
- "\ud83c\udde8\ud83c\uddf2": "flag: Cameroon",
- "\ud83c\udde8\ud83c\uddf3": "flag: China",
- "\ud83c\udde8\ud83c\uddf4": "flag: Colombia",
- "\ud83c\udde8\ud83c\uddf5": "flag: Clipperton Island",
- "\ud83c\udde8\ud83c\uddf7": "flag: Costa Rica",
- "\ud83c\udde8\ud83c\uddfa": "flag: Cuba",
- "\ud83c\udde8\ud83c\uddfb": "flag: Cape Verde",
- "\ud83c\udde8\ud83c\uddfc": "flag: Cura\u00e7ao",
- "\ud83c\udde8\ud83c\uddfd": "flag: Christmas Island",
- "\ud83c\udde8\ud83c\uddfe": "flag: Cyprus",
- "\ud83c\udde8\ud83c\uddff": "flag: Czechia",
- "\ud83c\udde9\ud83c\uddea": "flag: Germany",
- "\ud83c\udde9\ud83c\uddec": "flag: Diego Garcia",
- "\ud83c\udde9\ud83c\uddef": "flag: Djibouti",
- "\ud83c\udde9\ud83c\uddf0": "flag: Denmark",
- "\ud83c\udde9\ud83c\uddf2": "flag: Dominica",
- "\ud83c\udde9\ud83c\uddf4": "flag: Dominican Republic",
- "\ud83c\udde9\ud83c\uddff": "flag: Algeria",
- "\ud83c\uddea\ud83c\udde6": "flag: Ceuta & Melilla",
- "\ud83c\uddea\ud83c\udde8": "flag: Ecuador",
- "\ud83c\uddea\ud83c\uddea": "flag: Estonia",
- "\ud83c\uddea\ud83c\uddec": "flag: Egypt",
- "\ud83c\uddea\ud83c\udded": "flag: Western Sahara",
- "\ud83c\uddea\ud83c\uddf7": "flag: Eritrea",
- "\ud83c\uddea\ud83c\uddf8": "flag: Spain",
- "\ud83c\uddea\ud83c\uddf9": "flag: Ethiopia",
- "\ud83c\uddea\ud83c\uddfa": "flag: European Union",
- "\ud83c\uddeb\ud83c\uddee": "flag: Finland",
- "\ud83c\uddeb\ud83c\uddef": "flag: Fiji",
- "\ud83c\uddeb\ud83c\uddf0": "flag: Falkland Islands",
- "\ud83c\uddeb\ud83c\uddf2": "flag: Micronesia",
- "\ud83c\uddeb\ud83c\uddf4": "flag: Faroe Islands",
- "\ud83c\uddeb\ud83c\uddf7": "flag: France",
- "\ud83c\uddec\ud83c\udde6": "flag: Gabon",
- "\ud83c\uddec\ud83c\udde7": "flag: United Kingdom",
- "\ud83c\uddec\ud83c\udde9": "flag: Grenada",
- "\ud83c\uddec\ud83c\uddea": "flag: Georgia",
- "\ud83c\uddec\ud83c\uddeb": "flag: French Guiana",
- "\ud83c\uddec\ud83c\uddec": "flag: Guernsey",
- "\ud83c\uddec\ud83c\udded": "flag: Ghana",
- "\ud83c\uddec\ud83c\uddee": "flag: Gibraltar",
- "\ud83c\uddec\ud83c\uddf1": "flag: Greenland",
- "\ud83c\uddec\ud83c\uddf2": "flag: Gambia",
- "\ud83c\uddec\ud83c\uddf3": "flag: Guinea",
- "\ud83c\uddec\ud83c\uddf5": "flag: Guadeloupe",
- "\ud83c\uddec\ud83c\uddf6": "flag: Equatorial Guinea",
- "\ud83c\uddec\ud83c\uddf7": "flag: Greece",
- "\ud83c\uddec\ud83c\uddf8": "flag: South Georgia & South Sandwich Islands",
- "\ud83c\uddec\ud83c\uddf9": "flag: Guatemala",
- "\ud83c\uddec\ud83c\uddfa": "flag: Guam",
- "\ud83c\uddec\ud83c\uddfc": "flag: Guinea-Bissau",
- "\ud83c\uddec\ud83c\uddfe": "flag: Guyana",
- "\ud83c\udded\ud83c\uddf0": "flag: Hong Kong SAR China",
- "\ud83c\udded\ud83c\uddf2": "flag: Heard & McDonald Islands",
- "\ud83c\udded\ud83c\uddf3": "flag: Honduras",
- "\ud83c\udded\ud83c\uddf7": "flag: Croatia",
- "\ud83c\udded\ud83c\uddf9": "flag: Haiti",
- "\ud83c\udded\ud83c\uddfa": "flag: Hungary",
- "\ud83c\uddee\ud83c\udde8": "flag: Canary Islands",
- "\ud83c\uddee\ud83c\udde9": "flag: Indonesia",
- "\ud83c\uddee\ud83c\uddea": "flag: Ireland",
- "\ud83c\uddee\ud83c\uddf1": "flag: Israel",
- "\ud83c\uddee\ud83c\uddf2": "flag: Isle of Man",
- "\ud83c\uddee\ud83c\uddf3": "flag: India",
- "\ud83c\uddee\ud83c\uddf4": "flag: British Indian Ocean Territory",
- "\ud83c\uddee\ud83c\uddf6": "flag: Iraq",
- "\ud83c\uddee\ud83c\uddf7": "flag: Iran",
- "\ud83c\uddee\ud83c\uddf8": "flag: Iceland",
- "\ud83c\uddee\ud83c\uddf9": "flag: Italy",
- "\ud83c\uddef\ud83c\uddea": "flag: Jersey",
- "\ud83c\uddef\ud83c\uddf2": "flag: Jamaica",
- "\ud83c\uddef\ud83c\uddf4": "flag: Jordan",
- "\ud83c\uddef\ud83c\uddf5": "flag: Japan",
- "\ud83c\uddf0\ud83c\uddea": "flag: Kenya",
- "\ud83c\uddf0\ud83c\uddec": "flag: Kyrgyzstan",
- "\ud83c\uddf0\ud83c\udded": "flag: Cambodia",
- "\ud83c\uddf0\ud83c\uddee": "flag: Kiribati",
- "\ud83c\uddf0\ud83c\uddf2": "flag: Comoros",
- "\ud83c\uddf0\ud83c\uddf3": "flag: St. Kitts & Nevis",
- "\ud83c\uddf0\ud83c\uddf5": "flag: North Korea",
- "\ud83c\uddf0\ud83c\uddf7": "flag: South Korea",
- "\ud83c\uddf0\ud83c\uddfc": "flag: Kuwait",
- "\ud83c\uddf0\ud83c\uddfe": "flag: Cayman Islands",
- "\ud83c\uddf0\ud83c\uddff": "flag: Kazakhstan",
- "\ud83c\uddf1\ud83c\udde6": "flag: Laos",
- "\ud83c\uddf1\ud83c\udde7": "flag: Lebanon",
- "\ud83c\uddf1\ud83c\udde8": "flag: St. Lucia",
- "\ud83c\uddf1\ud83c\uddee": "flag: Liechtenstein",
- "\ud83c\uddf1\ud83c\uddf0": "flag: Sri Lanka",
- "\ud83c\uddf1\ud83c\uddf7": "flag: Liberia",
- "\ud83c\uddf1\ud83c\uddf8": "flag: Lesotho",
- "\ud83c\uddf1\ud83c\uddf9": "flag: Lithuania",
- "\ud83c\uddf1\ud83c\uddfa": "flag: Luxembourg",
- "\ud83c\uddf1\ud83c\uddfb": "flag: Latvia",
- "\ud83c\uddf1\ud83c\uddfe": "flag: Libya",
- "\ud83c\uddf2\ud83c\udde6": "flag: Morocco",
- "\ud83c\uddf2\ud83c\udde8": "flag: Monaco",
- "\ud83c\uddf2\ud83c\udde9": "flag: Moldova",
- "\ud83c\uddf2\ud83c\uddea": "flag: Montenegro",
- "\ud83c\uddf2\ud83c\uddeb": "flag: St. Martin",
- "\ud83c\uddf2\ud83c\uddec": "flag: Madagascar",
- "\ud83c\uddf2\ud83c\udded": "flag: Marshall Islands",
- "\ud83c\uddf2\ud83c\uddf0": "flag: North Macedonia",
- "\ud83c\uddf2\ud83c\uddf1": "flag: Mali",
- "\ud83c\uddf2\ud83c\uddf2": "flag: Myanmar (Burma)",
- "\ud83c\uddf2\ud83c\uddf3": "flag: Mongolia",
- "\ud83c\uddf2\ud83c\uddf4": "flag: Macao SAR China",
- "\ud83c\uddf2\ud83c\uddf5": "flag: Northern Mariana Islands",
- "\ud83c\uddf2\ud83c\uddf6": "flag: Martinique",
- "\ud83c\uddf2\ud83c\uddf7": "flag: Mauritania",
- "\ud83c\uddf2\ud83c\uddf8": "flag: Montserrat",
- "\ud83c\uddf2\ud83c\uddf9": "flag: Malta",
- "\ud83c\uddf2\ud83c\uddfa": "flag: Mauritius",
- "\ud83c\uddf2\ud83c\uddfb": "flag: Maldives",
- "\ud83c\uddf2\ud83c\uddfc": "flag: Malawi",
- "\ud83c\uddf2\ud83c\uddfd": "flag: Mexico",
- "\ud83c\uddf2\ud83c\uddfe": "flag: Malaysia",
- "\ud83c\uddf2\ud83c\uddff": "flag: Mozambique",
- "\ud83c\uddf3\ud83c\udde6": "flag: Namibia",
- "\ud83c\uddf3\ud83c\udde8": "flag: New Caledonia",
- "\ud83c\uddf3\ud83c\uddea": "flag: Niger",
- "\ud83c\uddf3\ud83c\uddeb": "flag: Norfolk Island",
- "\ud83c\uddf3\ud83c\uddec": "flag: Nigeria",
- "\ud83c\uddf3\ud83c\uddee": "flag: Nicaragua",
- "\ud83c\uddf3\ud83c\uddf1": "flag: Netherlands",
- "\ud83c\uddf3\ud83c\uddf4": "flag: Norway",
- "\ud83c\uddf3\ud83c\uddf5": "flag: Nepal",
- "\ud83c\uddf3\ud83c\uddf7": "flag: Nauru",
- "\ud83c\uddf3\ud83c\uddfa": "flag: Niue",
- "\ud83c\uddf3\ud83c\uddff": "flag: New Zealand",
- "\ud83c\uddf4\ud83c\uddf2": "flag: Oman",
- "\ud83c\uddf5\ud83c\udde6": "flag: Panama",
- "\ud83c\uddf5\ud83c\uddea": "flag: Peru",
- "\ud83c\uddf5\ud83c\uddeb": "flag: French Polynesia",
- "\ud83c\uddf5\ud83c\uddec": "flag: Papua New Guinea",
- "\ud83c\uddf5\ud83c\udded": "flag: Philippines",
- "\ud83c\uddf5\ud83c\uddf0": "flag: Pakistan",
- "\ud83c\uddf5\ud83c\uddf1": "flag: Poland",
- "\ud83c\uddf5\ud83c\uddf2": "flag: St. Pierre & Miquelon",
- "\ud83c\uddf5\ud83c\uddf3": "flag: Pitcairn Islands",
- "\ud83c\uddf5\ud83c\uddf7": "flag: Puerto Rico",
- "\ud83c\uddf5\ud83c\uddf8": "flag: Palestinian Territories",
- "\ud83c\uddf5\ud83c\uddf9": "flag: Portugal",
- "\ud83c\uddf5\ud83c\uddfc": "flag: Palau",
- "\ud83c\uddf5\ud83c\uddfe": "flag: Paraguay",
- "\ud83c\uddf6\ud83c\udde6": "flag: Qatar",
- "\ud83c\uddf7\ud83c\uddea": "flag: R\u00e9union",
- "\ud83c\uddf7\ud83c\uddf4": "flag: Romania",
- "\ud83c\uddf7\ud83c\uddf8": "flag: Serbia",
- "\ud83c\uddf7\ud83c\uddfa": "flag: Russia",
- "\ud83c\uddf7\ud83c\uddfc": "flag: Rwanda",
- "\ud83c\uddf8\ud83c\udde6": "flag: Saudi Arabia",
- "\ud83c\uddf8\ud83c\udde7": "flag: Solomon Islands",
- "\ud83c\uddf8\ud83c\udde8": "flag: Seychelles",
- "\ud83c\uddf8\ud83c\udde9": "flag: Sudan",
- "\ud83c\uddf8\ud83c\uddea": "flag: Sweden",
- "\ud83c\uddf8\ud83c\uddec": "flag: Singapore",
- "\ud83c\uddf8\ud83c\udded": "flag: St. Helena",
- "\ud83c\uddf8\ud83c\uddee": "flag: Slovenia",
- "\ud83c\uddf8\ud83c\uddef": "flag: Svalbard & Jan Mayen",
- "\ud83c\uddf8\ud83c\uddf0": "flag: Slovakia",
- "\ud83c\uddf8\ud83c\uddf1": "flag: Sierra Leone",
- "\ud83c\uddf8\ud83c\uddf2": "flag: San Marino",
- "\ud83c\uddf8\ud83c\uddf3": "flag: Senegal",
- "\ud83c\uddf8\ud83c\uddf4": "flag: Somalia",
- "\ud83c\uddf8\ud83c\uddf7": "flag: Suriname",
- "\ud83c\uddf8\ud83c\uddf8": "flag: South Sudan",
- "\ud83c\uddf8\ud83c\uddf9": "flag: S\u00e3o Tom\u00e9 & Pr\u00edncipe",
- "\ud83c\uddf8\ud83c\uddfb": "flag: El Salvador",
- "\ud83c\uddf8\ud83c\uddfd": "flag: Sint Maarten",
- "\ud83c\uddf8\ud83c\uddfe": "flag: Syria",
- "\ud83c\uddf8\ud83c\uddff": "flag: Eswatini",
- "\ud83c\uddf9\ud83c\udde6": "flag: Tristan da Cunha",
- "\ud83c\uddf9\ud83c\udde8": "flag: Turks & Caicos Islands",
- "\ud83c\uddf9\ud83c\udde9": "flag: Chad",
- "\ud83c\uddf9\ud83c\uddeb": "flag: French Southern Territories",
- "\ud83c\uddf9\ud83c\uddec": "flag: Togo",
- "\ud83c\uddf9\ud83c\udded": "flag: Thailand",
- "\ud83c\uddf9\ud83c\uddef": "flag: Tajikistan",
- "\ud83c\uddf9\ud83c\uddf0": "flag: Tokelau",
- "\ud83c\uddf9\ud83c\uddf1": "flag: Timor-Leste",
- "\ud83c\uddf9\ud83c\uddf2": "flag: Turkmenistan",
- "\ud83c\uddf9\ud83c\uddf3": "flag: Tunisia",
- "\ud83c\uddf9\ud83c\uddf4": "flag: Tonga",
- "\ud83c\uddf9\ud83c\uddf7": "flag: T\u00fcrkiye",
- "\ud83c\uddf9\ud83c\uddf9": "flag: Trinidad & Tobago",
- "\ud83c\uddf9\ud83c\uddfb": "flag: Tuvalu",
- "\ud83c\uddf9\ud83c\uddfc": "flag: Taiwan",
- "\ud83c\uddf9\ud83c\uddff": "flag: Tanzania",
- "\ud83c\uddfa\ud83c\udde6": "flag: Ukraine",
- "\ud83c\uddfa\ud83c\uddec": "flag: Uganda",
- "\ud83c\uddfa\ud83c\uddf2": "flag: U.S. Outlying Islands",
- "\ud83c\uddfa\ud83c\uddf3": "flag: United Nations",
- "\ud83c\uddfa\ud83c\uddf8": "flag: United States",
- "\ud83c\uddfa\ud83c\uddfe": "flag: Uruguay",
- "\ud83c\uddfa\ud83c\uddff": "flag: Uzbekistan",
- "\ud83c\uddfb\ud83c\udde6": "flag: Vatican City",
- "\ud83c\uddfb\ud83c\udde8": "flag: St. Vincent & Grenadines",
- "\ud83c\uddfb\ud83c\uddea": "flag: Venezuela",
- "\ud83c\uddfb\ud83c\uddec": "flag: British Virgin Islands",
- "\ud83c\uddfb\ud83c\uddee": "flag: U.S. Virgin Islands",
- "\ud83c\uddfb\ud83c\uddf3": "flag: Vietnam",
- "\ud83c\uddfb\ud83c\uddfa": "flag: Vanuatu",
- "\ud83c\uddfc\ud83c\uddeb": "flag: Wallis & Futuna",
- "\ud83c\uddfc\ud83c\uddf8": "flag: Samoa",
- "\ud83c\uddfd\ud83c\uddf0": "flag: Kosovo",
- "\ud83c\uddfe\ud83c\uddea": "flag: Yemen",
- "\ud83c\uddfe\ud83c\uddf9": "flag: Mayotte",
- "\ud83c\uddff\ud83c\udde6": "flag: South Africa",
- "\ud83c\uddff\ud83c\uddf2": "flag: Zambia",
- "\ud83c\uddff\ud83c\uddfc": "flag: Zimbabwe",
- "\ud83c\ude01": "Japanese \"here\" button",
- "\ud83c\ude02\ufe0f": "Japanese \"service charge\" button",
- "\ud83c\ude1a": "Japanese \"free of charge\" button",
- "\ud83c\ude2f": "Japanese \"reserved\" button",
- "\ud83c\ude32": "Japanese \"prohibited\" button",
- "\ud83c\ude33": "Japanese \"vacancy\" button",
- "\ud83c\ude34": "Japanese \"passing grade\" button",
- "\ud83c\ude35": "Japanese \"no vacancy\" button",
- "\ud83c\ude36": "Japanese \"not free of charge\" button",
- "\ud83c\ude37\ufe0f": "Japanese \"monthly amount\" button",
- "\ud83c\ude38": "Japanese \"application\" button",
- "\ud83c\ude39": "Japanese \"discount\" button",
- "\ud83c\ude3a": "Japanese \"open for business\" button",
- "\ud83c\ude50": "Japanese \"bargain\" button",
- "\ud83c\ude51": "Japanese \"acceptable\" button",
- "\ud83c\udf00": "cyclone",
- "\ud83c\udf01": "foggy",
- "\ud83c\udf02": "closed umbrella",
- "\ud83c\udf03": "night with stars",
- "\ud83c\udf04": "sunrise over mountains",
- "\ud83c\udf05": "sunrise",
- "\ud83c\udf06": "cityscape at dusk",
- "\ud83c\udf07": "sunset",
- "\ud83c\udf08": "rainbow",
- "\ud83c\udf09": "bridge at night",
- "\ud83c\udf0a": "water wave",
- "\ud83c\udf0b": "volcano",
- "\ud83c\udf0c": "milky way",
- "\ud83c\udf0d": "globe showing Europe-Africa",
- "\ud83c\udf0e": "globe showing Americas",
- "\ud83c\udf0f": "globe showing Asia-Australia",
- "\ud83c\udf10": "globe with meridians",
- "\ud83c\udf11": "new moon",
- "\ud83c\udf12": "waxing crescent moon",
- "\ud83c\udf13": "first quarter moon",
- "\ud83c\udf14": "waxing gibbous moon",
- "\ud83c\udf15": "full moon",
- "\ud83c\udf16": "waning gibbous moon",
- "\ud83c\udf17": "last quarter moon",
- "\ud83c\udf18": "waning crescent moon",
- "\ud83c\udf19": "crescent moon",
- "\ud83c\udf1a": "new moon face",
- "\ud83c\udf1b": "first quarter moon face",
- "\ud83c\udf1c": "last quarter moon face",
- "\ud83c\udf1d": "full moon face",
- "\ud83c\udf1e": "sun with face",
- "\ud83c\udf1f": "glowing star",
- "\ud83c\udf20": "shooting star",
- "\ud83c\udf21\ufe0f": "thermometer",
- "\ud83c\udf24\ufe0f": "sun behind small cloud",
- "\ud83c\udf25\ufe0f": "sun behind large cloud",
- "\ud83c\udf26\ufe0f": "sun behind rain cloud",
- "\ud83c\udf27\ufe0f": "cloud with rain",
- "\ud83c\udf28\ufe0f": "cloud with snow",
- "\ud83c\udf29\ufe0f": "cloud with lightning",
- "\ud83c\udf2a\ufe0f": "tornado",
- "\ud83c\udf2b\ufe0f": "fog",
- "\ud83c\udf2c\ufe0f": "wind face",
- "\ud83c\udf2d": "hot dog",
- "\ud83c\udf2e": "taco",
- "\ud83c\udf2f": "burrito",
- "\ud83c\udf30": "chestnut",
- "\ud83c\udf31": "seedling",
- "\ud83c\udf32": "evergreen tree",
- "\ud83c\udf33": "deciduous tree",
- "\ud83c\udf34": "palm tree",
- "\ud83c\udf35": "cactus",
- "\ud83c\udf36\ufe0f": "hot pepper",
- "\ud83c\udf37": "tulip",
- "\ud83c\udf38": "cherry blossom",
- "\ud83c\udf39": "rose",
- "\ud83c\udf3a": "hibiscus",
- "\ud83c\udf3b": "sunflower",
- "\ud83c\udf3c": "blossom",
- "\ud83c\udf3d": "ear of corn",
- "\ud83c\udf3e": "sheaf of rice",
- "\ud83c\udf3f": "herb",
- "\ud83c\udf40": "four leaf clover",
- "\ud83c\udf41": "maple leaf",
- "\ud83c\udf42": "fallen leaf",
- "\ud83c\udf43": "leaf fluttering in wind",
- "\ud83c\udf44": "mushroom",
- "\ud83c\udf45": "tomato",
- "\ud83c\udf46": "eggplant",
- "\ud83c\udf47": "grapes",
- "\ud83c\udf48": "melon",
- "\ud83c\udf49": "watermelon",
- "\ud83c\udf4a": "tangerine",
- "\ud83c\udf4b": "lemon",
- "\ud83c\udf4c": "banana",
- "\ud83c\udf4d": "pineapple",
- "\ud83c\udf4e": "red apple",
- "\ud83c\udf4f": "green apple",
- "\ud83c\udf50": "pear",
- "\ud83c\udf51": "peach",
- "\ud83c\udf52": "cherries",
- "\ud83c\udf53": "strawberry",
- "\ud83c\udf54": "hamburger",
- "\ud83c\udf55": "pizza",
- "\ud83c\udf56": "meat on bone",
- "\ud83c\udf57": "poultry leg",
- "\ud83c\udf58": "rice cracker",
- "\ud83c\udf59": "rice ball",
- "\ud83c\udf5a": "cooked rice",
- "\ud83c\udf5b": "curry rice",
- "\ud83c\udf5c": "steaming bowl",
- "\ud83c\udf5d": "spaghetti",
- "\ud83c\udf5e": "bread",
- "\ud83c\udf5f": "french fries",
- "\ud83c\udf60": "roasted sweet potato",
- "\ud83c\udf61": "dango",
- "\ud83c\udf62": "oden",
- "\ud83c\udf63": "sushi",
- "\ud83c\udf64": "fried shrimp",
- "\ud83c\udf65": "fish cake with swirl",
- "\ud83c\udf66": "soft ice cream",
- "\ud83c\udf67": "shaved ice",
- "\ud83c\udf68": "ice cream",
- "\ud83c\udf69": "doughnut",
- "\ud83c\udf6a": "cookie",
- "\ud83c\udf6b": "chocolate bar",
- "\ud83c\udf6c": "candy",
- "\ud83c\udf6d": "lollipop",
- "\ud83c\udf6e": "custard",
- "\ud83c\udf6f": "honey pot",
- "\ud83c\udf70": "shortcake",
- "\ud83c\udf71": "bento box",
- "\ud83c\udf72": "pot of food",
- "\ud83c\udf73": "cooking",
- "\ud83c\udf74": "fork and knife",
- "\ud83c\udf75": "teacup without handle",
- "\ud83c\udf76": "sake",
- "\ud83c\udf77": "wine glass",
- "\ud83c\udf78": "cocktail glass",
- "\ud83c\udf79": "tropical drink",
- "\ud83c\udf7a": "beer mug",
- "\ud83c\udf7b": "clinking beer mugs",
- "\ud83c\udf7c": "baby bottle",
- "\ud83c\udf7d\ufe0f": "fork and knife with plate",
- "\ud83c\udf7e": "bottle with popping cork",
- "\ud83c\udf7f": "popcorn",
- "\ud83c\udf80": "ribbon",
- "\ud83c\udf81": "wrapped gift",
- "\ud83c\udf82": "birthday cake",
- "\ud83c\udf83": "jack-o-lantern",
- "\ud83c\udf84": "Christmas tree",
- "\ud83c\udf85": "Santa Claus",
- "\ud83c\udf85\ud83c\udffb": "Santa Claus: light skin tone",
- "\ud83c\udf85\ud83c\udffc": "Santa Claus: medium-light skin tone",
- "\ud83c\udf85\ud83c\udffd": "Santa Claus: medium skin tone",
- "\ud83c\udf85\ud83c\udffe": "Santa Claus: medium-dark skin tone",
- "\ud83c\udf85\ud83c\udfff": "Santa Claus: dark skin tone",
- "\ud83c\udf86": "fireworks",
- "\ud83c\udf87": "sparkler",
- "\ud83c\udf88": "balloon",
- "\ud83c\udf89": "party popper",
- "\ud83c\udf8a": "confetti ball",
- "\ud83c\udf8b": "tanabata tree",
- "\ud83c\udf8c": "crossed flags",
- "\ud83c\udf8d": "pine decoration",
- "\ud83c\udf8e": "Japanese dolls",
- "\ud83c\udf8f": "carp streamer",
- "\ud83c\udf90": "wind chime",
- "\ud83c\udf91": "moon viewing ceremony",
- "\ud83c\udf92": "backpack",
- "\ud83c\udf93": "graduation cap",
- "\ud83c\udf96\ufe0f": "military medal",
- "\ud83c\udf97\ufe0f": "reminder ribbon",
- "\ud83c\udf99\ufe0f": "studio microphone",
- "\ud83c\udf9a\ufe0f": "level slider",
- "\ud83c\udf9b\ufe0f": "control knobs",
- "\ud83c\udf9e\ufe0f": "film frames",
- "\ud83c\udf9f\ufe0f": "admission tickets",
- "\ud83c\udfa0": "carousel horse",
- "\ud83c\udfa1": "ferris wheel",
- "\ud83c\udfa2": "roller coaster",
- "\ud83c\udfa3": "fishing pole",
- "\ud83c\udfa4": "microphone",
- "\ud83c\udfa5": "movie camera",
- "\ud83c\udfa6": "cinema",
- "\ud83c\udfa7": "headphone",
- "\ud83c\udfa8": "artist palette",
- "\ud83c\udfa9": "top hat",
- "\ud83c\udfaa": "circus tent",
- "\ud83c\udfab": "ticket",
- "\ud83c\udfac": "clapper board",
- "\ud83c\udfad": "performing arts",
- "\ud83c\udfae": "video game",
- "\ud83c\udfaf": "bullseye",
- "\ud83c\udfb0": "slot machine",
- "\ud83c\udfb1": "pool 8 ball",
- "\ud83c\udfb2": "game die",
- "\ud83c\udfb3": "bowling",
- "\ud83c\udfb4": "flower playing cards",
- "\ud83c\udfb5": "musical note",
- "\ud83c\udfb6": "musical notes",
- "\ud83c\udfb7": "saxophone",
- "\ud83c\udfb8": "guitar",
- "\ud83c\udfb9": "musical keyboard",
- "\ud83c\udfba": "trumpet",
- "\ud83c\udfbb": "violin",
- "\ud83c\udfbc": "musical score",
- "\ud83c\udfbd": "running shirt",
- "\ud83c\udfbe": "tennis",
- "\ud83c\udfbf": "skis",
- "\ud83c\udfc0": "basketball",
- "\ud83c\udfc1": "chequered flag",
- "\ud83c\udfc2": "snowboarder",
- "\ud83c\udfc2\ud83c\udffb": "snowboarder: light skin tone",
- "\ud83c\udfc2\ud83c\udffc": "snowboarder: medium-light skin tone",
- "\ud83c\udfc2\ud83c\udffd": "snowboarder: medium skin tone",
- "\ud83c\udfc2\ud83c\udffe": "snowboarder: medium-dark skin tone",
- "\ud83c\udfc2\ud83c\udfff": "snowboarder: dark skin tone",
- "\ud83c\udfc3": "person running",
- "\ud83c\udfc3\ud83c\udffb": "person running: light skin tone",
- "\ud83c\udfc3\ud83c\udffc": "person running: medium-light skin tone",
- "\ud83c\udfc3\ud83c\udffd": "person running: medium skin tone",
- "\ud83c\udfc3\ud83c\udffe": "person running: medium-dark skin tone",
- "\ud83c\udfc3\ud83c\udfff": "person running: dark skin tone",
- "\ud83c\udfc4": "person surfing",
- "\ud83c\udfc4\ud83c\udffb": "person surfing: light skin tone",
- "\ud83c\udfc4\ud83c\udffc": "person surfing: medium-light skin tone",
- "\ud83c\udfc4\ud83c\udffd": "person surfing: medium skin tone",
- "\ud83c\udfc4\ud83c\udffe": "person surfing: medium-dark skin tone",
- "\ud83c\udfc4\ud83c\udfff": "person surfing: dark skin tone",
- "\ud83c\udfc5": "sports medal",
- "\ud83c\udfc6": "trophy",
- "\ud83c\udfc7": "horse racing",
- "\ud83c\udfc7\ud83c\udffb": "horse racing: light skin tone",
- "\ud83c\udfc7\ud83c\udffc": "horse racing: medium-light skin tone",
- "\ud83c\udfc7\ud83c\udffd": "horse racing: medium skin tone",
- "\ud83c\udfc7\ud83c\udffe": "horse racing: medium-dark skin tone",
- "\ud83c\udfc7\ud83c\udfff": "horse racing: dark skin tone",
- "\ud83c\udfc8": "american football",
- "\ud83c\udfc9": "rugby football",
- "\ud83c\udfca": "person swimming",
- "\ud83c\udfca\ud83c\udffb": "person swimming: light skin tone",
- "\ud83c\udfca\ud83c\udffc": "person swimming: medium-light skin tone",
- "\ud83c\udfca\ud83c\udffd": "person swimming: medium skin tone",
- "\ud83c\udfca\ud83c\udffe": "person swimming: medium-dark skin tone",
- "\ud83c\udfca\ud83c\udfff": "person swimming: dark skin tone",
- "\ud83c\udfcb\ufe0f": "person lifting weights",
- "\ud83c\udfcb\ud83c\udffb": "person lifting weights: light skin tone",
- "\ud83c\udfcb\ud83c\udffc": "person lifting weights: medium-light skin tone",
- "\ud83c\udfcb\ud83c\udffd": "person lifting weights: medium skin tone",
- "\ud83c\udfcb\ud83c\udffe": "person lifting weights: medium-dark skin tone",
- "\ud83c\udfcb\ud83c\udfff": "person lifting weights: dark skin tone",
- "\ud83c\udfcc\ufe0f": "person golfing",
- "\ud83c\udfcc\ud83c\udffb": "person golfing: light skin tone",
- "\ud83c\udfcc\ud83c\udffc": "person golfing: medium-light skin tone",
- "\ud83c\udfcc\ud83c\udffd": "person golfing: medium skin tone",
- "\ud83c\udfcc\ud83c\udffe": "person golfing: medium-dark skin tone",
- "\ud83c\udfcc\ud83c\udfff": "person golfing: dark skin tone",
- "\ud83c\udfcd\ufe0f": "motorcycle",
- "\ud83c\udfce\ufe0f": "racing car",
- "\ud83c\udfcf": "cricket game",
- "\ud83c\udfd0": "volleyball",
- "\ud83c\udfd1": "field hockey",
- "\ud83c\udfd2": "ice hockey",
- "\ud83c\udfd3": "ping pong",
- "\ud83c\udfd4\ufe0f": "snow-capped mountain",
- "\ud83c\udfd5\ufe0f": "camping",
- "\ud83c\udfd6\ufe0f": "beach with umbrella",
- "\ud83c\udfd7\ufe0f": "building construction",
- "\ud83c\udfd8\ufe0f": "houses",
- "\ud83c\udfd9\ufe0f": "cityscape",
- "\ud83c\udfda\ufe0f": "derelict house",
- "\ud83c\udfdb\ufe0f": "classical building",
- "\ud83c\udfdc\ufe0f": "desert",
- "\ud83c\udfdd\ufe0f": "desert island",
- "\ud83c\udfde\ufe0f": "national park",
- "\ud83c\udfdf\ufe0f": "stadium",
- "\ud83c\udfe0": "house",
- "\ud83c\udfe1": "house with garden",
- "\ud83c\udfe2": "office building",
- "\ud83c\udfe3": "Japanese post office",
- "\ud83c\udfe4": "post office",
- "\ud83c\udfe5": "hospital",
- "\ud83c\udfe6": "bank",
- "\ud83c\udfe7": "ATM sign",
- "\ud83c\udfe8": "hotel",
- "\ud83c\udfe9": "love hotel",
- "\ud83c\udfea": "convenience store",
- "\ud83c\udfeb": "school",
- "\ud83c\udfec": "department store",
- "\ud83c\udfed": "factory",
- "\ud83c\udfee": "red paper lantern",
- "\ud83c\udfef": "Japanese castle",
- "\ud83c\udff0": "castle",
- "\ud83c\udff3\ufe0f": "white flag",
- "\ud83c\udff4": "black flag",
- "\ud83c\udff5\ufe0f": "rosette",
- "\ud83c\udff7\ufe0f": "label",
- "\ud83c\udff8": "badminton",
- "\ud83c\udff9": "bow and arrow",
- "\ud83c\udffa": "amphora",
- "\ud83d\udc00": "rat",
- "\ud83d\udc01": "mouse",
- "\ud83d\udc02": "ox",
- "\ud83d\udc03": "water buffalo",
- "\ud83d\udc04": "cow",
- "\ud83d\udc05": "tiger",
- "\ud83d\udc06": "leopard",
- "\ud83d\udc07": "rabbit",
- "\ud83d\udc08": "cat",
- "\ud83d\udc08\u200d\u2b1b": "black cat",
- "\ud83d\udc09": "dragon",
- "\ud83d\udc0a": "crocodile",
- "\ud83d\udc0b": "whale",
- "\ud83d\udc0c": "snail",
- "\ud83d\udc0d": "snake",
- "\ud83d\udc0e": "horse",
- "\ud83d\udc0f": "ram",
- "\ud83d\udc10": "goat",
- "\ud83d\udc11": "ewe",
- "\ud83d\udc12": "monkey",
- "\ud83d\udc13": "rooster",
- "\ud83d\udc14": "chicken",
- "\ud83d\udc15": "dog",
- "\ud83d\udc16": "pig",
- "\ud83d\udc17": "boar",
- "\ud83d\udc18": "elephant",
- "\ud83d\udc19": "octopus",
- "\ud83d\udc1a": "spiral shell",
- "\ud83d\udc1b": "bug",
- "\ud83d\udc1c": "ant",
- "\ud83d\udc1d": "honeybee",
- "\ud83d\udc1e": "lady beetle",
- "\ud83d\udc1f": "fish",
- "\ud83d\udc20": "tropical fish",
- "\ud83d\udc21": "blowfish",
- "\ud83d\udc22": "turtle",
- "\ud83d\udc23": "hatching chick",
- "\ud83d\udc24": "baby chick",
- "\ud83d\udc25": "front-facing baby chick",
- "\ud83d\udc26": "bird",
- "\ud83d\udc26\u200d\u2b1b": "black bird",
- "\ud83d\udc27": "penguin",
- "\ud83d\udc28": "koala",
- "\ud83d\udc29": "poodle",
- "\ud83d\udc2a": "camel",
- "\ud83d\udc2b": "two-hump camel",
- "\ud83d\udc2c": "dolphin",
- "\ud83d\udc2d": "mouse face",
- "\ud83d\udc2e": "cow face",
- "\ud83d\udc2f": "tiger face",
- "\ud83d\udc30": "rabbit face",
- "\ud83d\udc31": "cat face",
- "\ud83d\udc32": "dragon face",
- "\ud83d\udc33": "spouting whale",
- "\ud83d\udc34": "horse face",
- "\ud83d\udc35": "monkey face",
- "\ud83d\udc36": "dog face",
- "\ud83d\udc37": "pig face",
- "\ud83d\udc38": "frog",
- "\ud83d\udc39": "hamster",
- "\ud83d\udc3a": "wolf",
- "\ud83d\udc3b": "bear",
- "\ud83d\udc3c": "panda",
- "\ud83d\udc3d": "pig nose",
- "\ud83d\udc3e": "paw prints",
- "\ud83d\udc3f\ufe0f": "chipmunk",
- "\ud83d\udc40": "eyes",
- "\ud83d\udc41\ufe0f": "eye",
- "\ud83d\udc42": "ear",
- "\ud83d\udc42\ud83c\udffb": "ear: light skin tone",
- "\ud83d\udc42\ud83c\udffc": "ear: medium-light skin tone",
- "\ud83d\udc42\ud83c\udffd": "ear: medium skin tone",
- "\ud83d\udc42\ud83c\udffe": "ear: medium-dark skin tone",
- "\ud83d\udc42\ud83c\udfff": "ear: dark skin tone",
- "\ud83d\udc43": "nose",
- "\ud83d\udc43\ud83c\udffb": "nose: light skin tone",
- "\ud83d\udc43\ud83c\udffc": "nose: medium-light skin tone",
- "\ud83d\udc43\ud83c\udffd": "nose: medium skin tone",
- "\ud83d\udc43\ud83c\udffe": "nose: medium-dark skin tone",
- "\ud83d\udc43\ud83c\udfff": "nose: dark skin tone",
- "\ud83d\udc44": "mouth",
- "\ud83d\udc45": "tongue",
- "\ud83d\udc46": "backhand index pointing up",
- "\ud83d\udc46\ud83c\udffb": "backhand index pointing up: light skin tone",
- "\ud83d\udc46\ud83c\udffc": "backhand index pointing up: medium-light skin tone",
- "\ud83d\udc46\ud83c\udffd": "backhand index pointing up: medium skin tone",
- "\ud83d\udc46\ud83c\udffe": "backhand index pointing up: medium-dark skin tone",
- "\ud83d\udc46\ud83c\udfff": "backhand index pointing up: dark skin tone",
- "\ud83d\udc47": "backhand index pointing down",
- "\ud83d\udc47\ud83c\udffb": "backhand index pointing down: light skin tone",
- "\ud83d\udc47\ud83c\udffc": "backhand index pointing down: medium-light skin tone",
- "\ud83d\udc47\ud83c\udffd": "backhand index pointing down: medium skin tone",
- "\ud83d\udc47\ud83c\udffe": "backhand index pointing down: medium-dark skin tone",
- "\ud83d\udc47\ud83c\udfff": "backhand index pointing down: dark skin tone",
- "\ud83d\udc48": "backhand index pointing left",
- "\ud83d\udc48\ud83c\udffb": "backhand index pointing left: light skin tone",
- "\ud83d\udc48\ud83c\udffc": "backhand index pointing left: medium-light skin tone",
- "\ud83d\udc48\ud83c\udffd": "backhand index pointing left: medium skin tone",
- "\ud83d\udc48\ud83c\udffe": "backhand index pointing left: medium-dark skin tone",
- "\ud83d\udc48\ud83c\udfff": "backhand index pointing left: dark skin tone",
- "\ud83d\udc49": "backhand index pointing right",
- "\ud83d\udc49\ud83c\udffb": "backhand index pointing right: light skin tone",
- "\ud83d\udc49\ud83c\udffc": "backhand index pointing right: medium-light skin tone",
- "\ud83d\udc49\ud83c\udffd": "backhand index pointing right: medium skin tone",
- "\ud83d\udc49\ud83c\udffe": "backhand index pointing right: medium-dark skin tone",
- "\ud83d\udc49\ud83c\udfff": "backhand index pointing right: dark skin tone",
- "\ud83d\udc4a": "oncoming fist",
- "\ud83d\udc4a\ud83c\udffb": "oncoming fist: light skin tone",
- "\ud83d\udc4a\ud83c\udffc": "oncoming fist: medium-light skin tone",
- "\ud83d\udc4a\ud83c\udffd": "oncoming fist: medium skin tone",
- "\ud83d\udc4a\ud83c\udffe": "oncoming fist: medium-dark skin tone",
- "\ud83d\udc4a\ud83c\udfff": "oncoming fist: dark skin tone",
- "\ud83d\udc4b": "waving hand",
- "\ud83d\udc4b\ud83c\udffb": "waving hand: light skin tone",
- "\ud83d\udc4b\ud83c\udffc": "waving hand: medium-light skin tone",
- "\ud83d\udc4b\ud83c\udffd": "waving hand: medium skin tone",
- "\ud83d\udc4b\ud83c\udffe": "waving hand: medium-dark skin tone",
- "\ud83d\udc4b\ud83c\udfff": "waving hand: dark skin tone",
- "\ud83d\udc4c": "OK hand",
- "\ud83d\udc4c\ud83c\udffb": "OK hand: light skin tone",
- "\ud83d\udc4c\ud83c\udffc": "OK hand: medium-light skin tone",
- "\ud83d\udc4c\ud83c\udffd": "OK hand: medium skin tone",
- "\ud83d\udc4c\ud83c\udffe": "OK hand: medium-dark skin tone",
- "\ud83d\udc4c\ud83c\udfff": "OK hand: dark skin tone",
- "\ud83d\udc4d": "thumbs up",
- "\ud83d\udc4d\ud83c\udffb": "thumbs up: light skin tone",
- "\ud83d\udc4d\ud83c\udffc": "thumbs up: medium-light skin tone",
- "\ud83d\udc4d\ud83c\udffd": "thumbs up: medium skin tone",
- "\ud83d\udc4d\ud83c\udffe": "thumbs up: medium-dark skin tone",
- "\ud83d\udc4d\ud83c\udfff": "thumbs up: dark skin tone",
- "\ud83d\udc4e": "thumbs down",
- "\ud83d\udc4e\ud83c\udffb": "thumbs down: light skin tone",
- "\ud83d\udc4e\ud83c\udffc": "thumbs down: medium-light skin tone",
- "\ud83d\udc4e\ud83c\udffd": "thumbs down: medium skin tone",
- "\ud83d\udc4e\ud83c\udffe": "thumbs down: medium-dark skin tone",
- "\ud83d\udc4e\ud83c\udfff": "thumbs down: dark skin tone",
- "\ud83d\udc4f": "clapping hands",
- "\ud83d\udc4f\ud83c\udffb": "clapping hands: light skin tone",
- "\ud83d\udc4f\ud83c\udffc": "clapping hands: medium-light skin tone",
- "\ud83d\udc4f\ud83c\udffd": "clapping hands: medium skin tone",
- "\ud83d\udc4f\ud83c\udffe": "clapping hands: medium-dark skin tone",
- "\ud83d\udc4f\ud83c\udfff": "clapping hands: dark skin tone",
- "\ud83d\udc50": "open hands",
- "\ud83d\udc50\ud83c\udffb": "open hands: light skin tone",
- "\ud83d\udc50\ud83c\udffc": "open hands: medium-light skin tone",
- "\ud83d\udc50\ud83c\udffd": "open hands: medium skin tone",
- "\ud83d\udc50\ud83c\udffe": "open hands: medium-dark skin tone",
- "\ud83d\udc50\ud83c\udfff": "open hands: dark skin tone",
- "\ud83d\udc51": "crown",
- "\ud83d\udc52": "woman's hat",
- "\ud83d\udc53": "glasses",
- "\ud83d\udc54": "necktie",
- "\ud83d\udc55": "t-shirt",
- "\ud83d\udc56": "jeans",
- "\ud83d\udc57": "dress",
- "\ud83d\udc58": "kimono",
- "\ud83d\udc59": "bikini",
- "\ud83d\udc5a": "woman's clothes",
- "\ud83d\udc5b": "purse",
- "\ud83d\udc5c": "handbag",
- "\ud83d\udc5d": "clutch bag",
- "\ud83d\udc5e": "man's shoe",
- "\ud83d\udc5f": "running shoe",
- "\ud83d\udc60": "high-heeled shoe",
- "\ud83d\udc61": "woman's sandal",
- "\ud83d\udc62": "woman's boot",
- "\ud83d\udc63": "footprints",
- "\ud83d\udc64": "bust in silhouette",
- "\ud83d\udc65": "busts in silhouette",
- "\ud83d\udc66": "boy",
- "\ud83d\udc66\ud83c\udffb": "boy: light skin tone",
- "\ud83d\udc66\ud83c\udffc": "boy: medium-light skin tone",
- "\ud83d\udc66\ud83c\udffd": "boy: medium skin tone",
- "\ud83d\udc66\ud83c\udffe": "boy: medium-dark skin tone",
- "\ud83d\udc66\ud83c\udfff": "boy: dark skin tone",
- "\ud83d\udc67": "girl",
- "\ud83d\udc67\ud83c\udffb": "girl: light skin tone",
- "\ud83d\udc67\ud83c\udffc": "girl: medium-light skin tone",
- "\ud83d\udc67\ud83c\udffd": "girl: medium skin tone",
- "\ud83d\udc67\ud83c\udffe": "girl: medium-dark skin tone",
- "\ud83d\udc67\ud83c\udfff": "girl: dark skin tone",
- "\ud83d\udc68": "man",
- "\ud83d\udc68\ud83c\udffb": "man: light skin tone",
- "\ud83d\udc68\ud83c\udffc": "man: medium-light skin tone",
- "\ud83d\udc68\ud83c\udffd": "man: medium skin tone",
- "\ud83d\udc68\ud83c\udffe": "man: medium-dark skin tone",
- "\ud83d\udc68\ud83c\udfff": "man: dark skin tone",
- "\ud83d\udc69": "woman",
- "\ud83d\udc69\ud83c\udffb": "woman: light skin tone",
- "\ud83d\udc69\ud83c\udffc": "woman: medium-light skin tone",
- "\ud83d\udc69\ud83c\udffd": "woman: medium skin tone",
- "\ud83d\udc69\ud83c\udffe": "woman: medium-dark skin tone",
- "\ud83d\udc69\ud83c\udfff": "woman: dark skin tone",
- "\ud83d\udc6a": "family",
- "\ud83d\udc6b": "woman and man holding hands",
- "\ud83d\udc6b\ud83c\udffb": "woman and man holding hands: light skin tone",
- "\ud83d\udc6b\ud83c\udffc": "woman and man holding hands: medium-light skin tone",
- "\ud83d\udc6b\ud83c\udffd": "woman and man holding hands: medium skin tone",
- "\ud83d\udc6b\ud83c\udffe": "woman and man holding hands: medium-dark skin tone",
- "\ud83d\udc6b\ud83c\udfff": "woman and man holding hands: dark skin tone",
- "\ud83d\udc6c": "men holding hands",
- "\ud83d\udc6c\ud83c\udffb": "men holding hands: light skin tone",
- "\ud83d\udc6c\ud83c\udffc": "men holding hands: medium-light skin tone",
- "\ud83d\udc6c\ud83c\udffd": "men holding hands: medium skin tone",
- "\ud83d\udc6c\ud83c\udffe": "men holding hands: medium-dark skin tone",
- "\ud83d\udc6c\ud83c\udfff": "men holding hands: dark skin tone",
- "\ud83d\udc6d": "women holding hands",
- "\ud83d\udc6d\ud83c\udffb": "women holding hands: light skin tone",
- "\ud83d\udc6d\ud83c\udffc": "women holding hands: medium-light skin tone",
- "\ud83d\udc6d\ud83c\udffd": "women holding hands: medium skin tone",
- "\ud83d\udc6d\ud83c\udffe": "women holding hands: medium-dark skin tone",
- "\ud83d\udc6d\ud83c\udfff": "women holding hands: dark skin tone",
- "\ud83d\udc6e": "police officer",
- "\ud83d\udc6e\ud83c\udffb": "police officer: light skin tone",
- "\ud83d\udc6e\ud83c\udffc": "police officer: medium-light skin tone",
- "\ud83d\udc6e\ud83c\udffd": "police officer: medium skin tone",
- "\ud83d\udc6e\ud83c\udffe": "police officer: medium-dark skin tone",
- "\ud83d\udc6e\ud83c\udfff": "police officer: dark skin tone",
- "\ud83d\udc6f": "people with bunny ears",
- "\ud83d\udc70": "person with veil",
- "\ud83d\udc70\ud83c\udffb": "person with veil: light skin tone",
- "\ud83d\udc70\ud83c\udffc": "person with veil: medium-light skin tone",
- "\ud83d\udc70\ud83c\udffd": "person with veil: medium skin tone",
- "\ud83d\udc70\ud83c\udffe": "person with veil: medium-dark skin tone",
- "\ud83d\udc70\ud83c\udfff": "person with veil: dark skin tone",
- "\ud83d\udc71": "person: blond hair",
- "\ud83d\udc71\ud83c\udffb": "person: light skin tone, blond hair",
- "\ud83d\udc71\ud83c\udffc": "person: medium-light skin tone, blond hair",
- "\ud83d\udc71\ud83c\udffd": "person: medium skin tone, blond hair",
- "\ud83d\udc71\ud83c\udffe": "person: medium-dark skin tone, blond hair",
- "\ud83d\udc71\ud83c\udfff": "person: dark skin tone, blond hair",
- "\ud83d\udc72": "person with skullcap",
- "\ud83d\udc72\ud83c\udffb": "person with skullcap: light skin tone",
- "\ud83d\udc72\ud83c\udffc": "person with skullcap: medium-light skin tone",
- "\ud83d\udc72\ud83c\udffd": "person with skullcap: medium skin tone",
- "\ud83d\udc72\ud83c\udffe": "person with skullcap: medium-dark skin tone",
- "\ud83d\udc72\ud83c\udfff": "person with skullcap: dark skin tone",
- "\ud83d\udc73": "person wearing turban",
- "\ud83d\udc73\ud83c\udffb": "person wearing turban: light skin tone",
- "\ud83d\udc73\ud83c\udffc": "person wearing turban: medium-light skin tone",
- "\ud83d\udc73\ud83c\udffd": "person wearing turban: medium skin tone",
- "\ud83d\udc73\ud83c\udffe": "person wearing turban: medium-dark skin tone",
- "\ud83d\udc73\ud83c\udfff": "person wearing turban: dark skin tone",
- "\ud83d\udc74": "old man",
- "\ud83d\udc74\ud83c\udffb": "old man: light skin tone",
- "\ud83d\udc74\ud83c\udffc": "old man: medium-light skin tone",
- "\ud83d\udc74\ud83c\udffd": "old man: medium skin tone",
- "\ud83d\udc74\ud83c\udffe": "old man: medium-dark skin tone",
- "\ud83d\udc74\ud83c\udfff": "old man: dark skin tone",
- "\ud83d\udc75": "old woman",
- "\ud83d\udc75\ud83c\udffb": "old woman: light skin tone",
- "\ud83d\udc75\ud83c\udffc": "old woman: medium-light skin tone",
- "\ud83d\udc75\ud83c\udffd": "old woman: medium skin tone",
- "\ud83d\udc75\ud83c\udffe": "old woman: medium-dark skin tone",
- "\ud83d\udc75\ud83c\udfff": "old woman: dark skin tone",
- "\ud83d\udc76": "baby",
- "\ud83d\udc76\ud83c\udffb": "baby: light skin tone",
- "\ud83d\udc76\ud83c\udffc": "baby: medium-light skin tone",
- "\ud83d\udc76\ud83c\udffd": "baby: medium skin tone",
- "\ud83d\udc76\ud83c\udffe": "baby: medium-dark skin tone",
- "\ud83d\udc76\ud83c\udfff": "baby: dark skin tone",
- "\ud83d\udc77": "construction worker",
- "\ud83d\udc77\ud83c\udffb": "construction worker: light skin tone",
- "\ud83d\udc77\ud83c\udffc": "construction worker: medium-light skin tone",
- "\ud83d\udc77\ud83c\udffd": "construction worker: medium skin tone",
- "\ud83d\udc77\ud83c\udffe": "construction worker: medium-dark skin tone",
- "\ud83d\udc77\ud83c\udfff": "construction worker: dark skin tone",
- "\ud83d\udc78": "princess",
- "\ud83d\udc78\ud83c\udffb": "princess: light skin tone",
- "\ud83d\udc78\ud83c\udffc": "princess: medium-light skin tone",
- "\ud83d\udc78\ud83c\udffd": "princess: medium skin tone",
- "\ud83d\udc78\ud83c\udffe": "princess: medium-dark skin tone",
- "\ud83d\udc78\ud83c\udfff": "princess: dark skin tone",
- "\ud83d\udc79": "ogre",
- "\ud83d\udc7a": "goblin",
- "\ud83d\udc7b": "ghost",
- "\ud83d\udc7c": "baby angel",
- "\ud83d\udc7c\ud83c\udffb": "baby angel: light skin tone",
- "\ud83d\udc7c\ud83c\udffc": "baby angel: medium-light skin tone",
- "\ud83d\udc7c\ud83c\udffd": "baby angel: medium skin tone",
- "\ud83d\udc7c\ud83c\udffe": "baby angel: medium-dark skin tone",
- "\ud83d\udc7c\ud83c\udfff": "baby angel: dark skin tone",
- "\ud83d\udc7d": "alien",
- "\ud83d\udc7e": "alien monster",
- "\ud83d\udc7f": "angry face with horns",
- "\ud83d\udc80": "skull",
- "\ud83d\udc81": "person tipping hand",
- "\ud83d\udc81\ud83c\udffb": "person tipping hand: light skin tone",
- "\ud83d\udc81\ud83c\udffc": "person tipping hand: medium-light skin tone",
- "\ud83d\udc81\ud83c\udffd": "person tipping hand: medium skin tone",
- "\ud83d\udc81\ud83c\udffe": "person tipping hand: medium-dark skin tone",
- "\ud83d\udc81\ud83c\udfff": "person tipping hand: dark skin tone",
- "\ud83d\udc82": "guard",
- "\ud83d\udc82\ud83c\udffb": "guard: light skin tone",
- "\ud83d\udc82\ud83c\udffc": "guard: medium-light skin tone",
- "\ud83d\udc82\ud83c\udffd": "guard: medium skin tone",
- "\ud83d\udc82\ud83c\udffe": "guard: medium-dark skin tone",
- "\ud83d\udc82\ud83c\udfff": "guard: dark skin tone",
- "\ud83d\udc83": "woman dancing",
- "\ud83d\udc83\ud83c\udffb": "woman dancing: light skin tone",
- "\ud83d\udc83\ud83c\udffc": "woman dancing: medium-light skin tone",
- "\ud83d\udc83\ud83c\udffd": "woman dancing: medium skin tone",
- "\ud83d\udc83\ud83c\udffe": "woman dancing: medium-dark skin tone",
- "\ud83d\udc83\ud83c\udfff": "woman dancing: dark skin tone",
- "\ud83d\udc84": "lipstick",
- "\ud83d\udc85": "nail polish",
- "\ud83d\udc85\ud83c\udffb": "nail polish: light skin tone",
- "\ud83d\udc85\ud83c\udffc": "nail polish: medium-light skin tone",
- "\ud83d\udc85\ud83c\udffd": "nail polish: medium skin tone",
- "\ud83d\udc85\ud83c\udffe": "nail polish: medium-dark skin tone",
- "\ud83d\udc85\ud83c\udfff": "nail polish: dark skin tone",
- "\ud83d\udc86": "person getting massage",
- "\ud83d\udc86\ud83c\udffb": "person getting massage: light skin tone",
- "\ud83d\udc86\ud83c\udffc": "person getting massage: medium-light skin tone",
- "\ud83d\udc86\ud83c\udffd": "person getting massage: medium skin tone",
- "\ud83d\udc86\ud83c\udffe": "person getting massage: medium-dark skin tone",
- "\ud83d\udc86\ud83c\udfff": "person getting massage: dark skin tone",
- "\ud83d\udc87": "person getting haircut",
- "\ud83d\udc87\ud83c\udffb": "person getting haircut: light skin tone",
- "\ud83d\udc87\ud83c\udffc": "person getting haircut: medium-light skin tone",
- "\ud83d\udc87\ud83c\udffd": "person getting haircut: medium skin tone",
- "\ud83d\udc87\ud83c\udffe": "person getting haircut: medium-dark skin tone",
- "\ud83d\udc87\ud83c\udfff": "person getting haircut: dark skin tone",
- "\ud83d\udc88": "barber pole",
- "\ud83d\udc89": "syringe",
- "\ud83d\udc8a": "pill",
- "\ud83d\udc8b": "kiss mark",
- "\ud83d\udc8c": "love letter",
- "\ud83d\udc8d": "ring",
- "\ud83d\udc8e": "gem stone",
- "\ud83d\udc8f": "kiss",
- "\ud83d\udc8f\ud83c\udffb": "kiss: light skin tone",
- "\ud83d\udc8f\ud83c\udffc": "kiss: medium-light skin tone",
- "\ud83d\udc8f\ud83c\udffd": "kiss: medium skin tone",
- "\ud83d\udc8f\ud83c\udffe": "kiss: medium-dark skin tone",
- "\ud83d\udc8f\ud83c\udfff": "kiss: dark skin tone",
- "\ud83d\udc90": "bouquet",
- "\ud83d\udc91": "couple with heart",
- "\ud83d\udc91\ud83c\udffb": "couple with heart: light skin tone",
- "\ud83d\udc91\ud83c\udffc": "couple with heart: medium-light skin tone",
- "\ud83d\udc91\ud83c\udffd": "couple with heart: medium skin tone",
- "\ud83d\udc91\ud83c\udffe": "couple with heart: medium-dark skin tone",
- "\ud83d\udc91\ud83c\udfff": "couple with heart: dark skin tone",
- "\ud83d\udc92": "wedding",
- "\ud83d\udc93": "beating heart",
- "\ud83d\udc94": "broken heart",
- "\ud83d\udc95": "two hearts",
- "\ud83d\udc96": "sparkling heart",
- "\ud83d\udc97": "growing heart",
- "\ud83d\udc98": "heart with arrow",
- "\ud83d\udc99": "blue heart",
- "\ud83d\udc9a": "green heart",
- "\ud83d\udc9b": "yellow heart",
- "\ud83d\udc9c": "purple heart",
- "\ud83d\udc9d": "heart with ribbon",
- "\ud83d\udc9e": "revolving hearts",
- "\ud83d\udc9f": "heart decoration",
- "\ud83d\udca0": "diamond with a dot",
- "\ud83d\udca1": "light bulb",
- "\ud83d\udca2": "anger symbol",
- "\ud83d\udca3": "bomb",
- "\ud83d\udca4": "ZZZ",
- "\ud83d\udca5": "collision",
- "\ud83d\udca6": "sweat droplets",
- "\ud83d\udca7": "droplet",
- "\ud83d\udca8": "dashing away",
- "\ud83d\udca9": "pile of poo",
- "\ud83d\udcaa": "flexed biceps",
- "\ud83d\udcaa\ud83c\udffb": "flexed biceps: light skin tone",
- "\ud83d\udcaa\ud83c\udffc": "flexed biceps: medium-light skin tone",
- "\ud83d\udcaa\ud83c\udffd": "flexed biceps: medium skin tone",
- "\ud83d\udcaa\ud83c\udffe": "flexed biceps: medium-dark skin tone",
- "\ud83d\udcaa\ud83c\udfff": "flexed biceps: dark skin tone",
- "\ud83d\udcab": "dizzy",
- "\ud83d\udcac": "speech balloon",
- "\ud83d\udcad": "thought balloon",
- "\ud83d\udcae": "white flower",
- "\ud83d\udcaf": "hundred points",
- "\ud83d\udcb0": "money bag",
- "\ud83d\udcb1": "currency exchange",
- "\ud83d\udcb2": "heavy dollar sign",
- "\ud83d\udcb3": "credit card",
- "\ud83d\udcb4": "yen banknote",
- "\ud83d\udcb5": "dollar banknote",
- "\ud83d\udcb6": "euro banknote",
- "\ud83d\udcb7": "pound banknote",
- "\ud83d\udcb8": "money with wings",
- "\ud83d\udcb9": "chart increasing with yen",
- "\ud83d\udcba": "seat",
- "\ud83d\udcbb": "laptop",
- "\ud83d\udcbc": "briefcase",
- "\ud83d\udcbd": "computer disk",
- "\ud83d\udcbe": "floppy disk",
- "\ud83d\udcbf": "optical disk",
- "\ud83d\udcc0": "dvd",
- "\ud83d\udcc1": "file folder",
- "\ud83d\udcc2": "open file folder",
- "\ud83d\udcc3": "page with curl",
- "\ud83d\udcc4": "page facing up",
- "\ud83d\udcc5": "calendar",
- "\ud83d\udcc6": "tear-off calendar",
- "\ud83d\udcc7": "card index",
- "\ud83d\udcc8": "chart increasing",
- "\ud83d\udcc9": "chart decreasing",
- "\ud83d\udcca": "bar chart",
- "\ud83d\udccb": "clipboard",
- "\ud83d\udccc": "pushpin",
- "\ud83d\udccd": "round pushpin",
- "\ud83d\udcce": "paperclip",
- "\ud83d\udccf": "straight ruler",
- "\ud83d\udcd0": "triangular ruler",
- "\ud83d\udcd1": "bookmark tabs",
- "\ud83d\udcd2": "ledger",
- "\ud83d\udcd3": "notebook",
- "\ud83d\udcd4": "notebook with decorative cover",
- "\ud83d\udcd5": "closed book",
- "\ud83d\udcd6": "open book",
- "\ud83d\udcd7": "green book",
- "\ud83d\udcd8": "blue book",
- "\ud83d\udcd9": "orange book",
- "\ud83d\udcda": "books",
- "\ud83d\udcdb": "name badge",
- "\ud83d\udcdc": "scroll",
- "\ud83d\udcdd": "memo",
- "\ud83d\udcde": "telephone receiver",
- "\ud83d\udcdf": "pager",
- "\ud83d\udce0": "fax machine",
- "\ud83d\udce1": "satellite antenna",
- "\ud83d\udce2": "loudspeaker",
- "\ud83d\udce3": "megaphone",
- "\ud83d\udce4": "outbox tray",
- "\ud83d\udce5": "inbox tray",
- "\ud83d\udce6": "package",
- "\ud83d\udce7": "e-mail",
- "\ud83d\udce8": "incoming envelope",
- "\ud83d\udce9": "envelope with arrow",
- "\ud83d\udcea": "closed mailbox with lowered flag",
- "\ud83d\udceb": "closed mailbox with raised flag",
- "\ud83d\udcec": "open mailbox with raised flag",
- "\ud83d\udced": "open mailbox with lowered flag",
- "\ud83d\udcee": "postbox",
- "\ud83d\udcef": "postal horn",
- "\ud83d\udcf0": "newspaper",
- "\ud83d\udcf1": "mobile phone",
- "\ud83d\udcf2": "mobile phone with arrow",
- "\ud83d\udcf3": "vibration mode",
- "\ud83d\udcf4": "mobile phone off",
- "\ud83d\udcf5": "no mobile phones",
- "\ud83d\udcf6": "antenna bars",
- "\ud83d\udcf7": "camera",
- "\ud83d\udcf8": "camera with flash",
- "\ud83d\udcf9": "video camera",
- "\ud83d\udcfa": "television",
- "\ud83d\udcfb": "radio",
- "\ud83d\udcfc": "videocassette",
- "\ud83d\udcfd\ufe0f": "film projector",
- "\ud83d\udcff": "prayer beads",
- "\ud83d\udd00": "shuffle tracks button",
- "\ud83d\udd01": "repeat button",
- "\ud83d\udd02": "repeat single button",
- "\ud83d\udd03": "clockwise vertical arrows",
- "\ud83d\udd04": "counterclockwise arrows button",
- "\ud83d\udd05": "dim button",
- "\ud83d\udd06": "bright button",
- "\ud83d\udd07": "muted speaker",
- "\ud83d\udd08": "speaker low volume",
- "\ud83d\udd09": "speaker medium volume",
- "\ud83d\udd0a": "speaker high volume",
- "\ud83d\udd0b": "battery",
- "\ud83d\udd0c": "electric plug",
- "\ud83d\udd0d": "magnifying glass tilted left",
- "\ud83d\udd0e": "magnifying glass tilted right",
- "\ud83d\udd0f": "locked with pen",
- "\ud83d\udd10": "locked with key",
- "\ud83d\udd11": "key",
- "\ud83d\udd12": "locked",
- "\ud83d\udd13": "unlocked",
- "\ud83d\udd14": "bell",
- "\ud83d\udd15": "bell with slash",
- "\ud83d\udd16": "bookmark",
- "\ud83d\udd17": "link",
- "\ud83d\udd18": "radio button",
- "\ud83d\udd19": "BACK arrow",
- "\ud83d\udd1a": "END arrow",
- "\ud83d\udd1b": "ON! arrow",
- "\ud83d\udd1c": "SOON arrow",
- "\ud83d\udd1d": "TOP arrow",
- "\ud83d\udd1e": "no one under eighteen",
- "\ud83d\udd1f": "keycap: 10",
- "\ud83d\udd20": "input latin uppercase",
- "\ud83d\udd21": "input latin lowercase",
- "\ud83d\udd22": "input numbers",
- "\ud83d\udd23": "input symbols",
- "\ud83d\udd24": "input latin letters",
- "\ud83d\udd25": "fire",
- "\ud83d\udd26": "flashlight",
- "\ud83d\udd27": "wrench",
- "\ud83d\udd28": "hammer",
- "\ud83d\udd29": "nut and bolt",
- "\ud83d\udd2a": "kitchen knife",
- "\ud83d\udd2b": "water pistol",
- "\ud83d\udd2c": "microscope",
- "\ud83d\udd2d": "telescope",
- "\ud83d\udd2e": "crystal ball",
- "\ud83d\udd2f": "dotted six-pointed star",
- "\ud83d\udd30": "Japanese symbol for beginner",
- "\ud83d\udd31": "trident emblem",
- "\ud83d\udd32": "black square button",
- "\ud83d\udd33": "white square button",
- "\ud83d\udd34": "red circle",
- "\ud83d\udd35": "blue circle",
- "\ud83d\udd36": "large orange diamond",
- "\ud83d\udd37": "large blue diamond",
- "\ud83d\udd38": "small orange diamond",
- "\ud83d\udd39": "small blue diamond",
- "\ud83d\udd3a": "red triangle pointed up",
- "\ud83d\udd3b": "red triangle pointed down",
- "\ud83d\udd3c": "upwards button",
- "\ud83d\udd3d": "downwards button",
- "\ud83d\udd49\ufe0f": "om",
- "\ud83d\udd4a\ufe0f": "dove",
- "\ud83d\udd4b": "kaaba",
- "\ud83d\udd4c": "mosque",
- "\ud83d\udd4d": "synagogue",
- "\ud83d\udd4e": "menorah",
- "\ud83d\udd50": "one o'clock",
- "\ud83d\udd51": "two o'clock",
- "\ud83d\udd52": "three o'clock",
- "\ud83d\udd53": "four o'clock",
- "\ud83d\udd54": "five o'clock",
- "\ud83d\udd55": "six o'clock",
- "\ud83d\udd56": "seven o'clock",
- "\ud83d\udd57": "eight o'clock",
- "\ud83d\udd58": "nine o'clock",
- "\ud83d\udd59": "ten o'clock",
- "\ud83d\udd5a": "eleven o'clock",
- "\ud83d\udd5b": "twelve o'clock",
- "\ud83d\udd5c": "one-thirty",
- "\ud83d\udd5d": "two-thirty",
- "\ud83d\udd5e": "three-thirty",
- "\ud83d\udd5f": "four-thirty",
- "\ud83d\udd60": "five-thirty",
- "\ud83d\udd61": "six-thirty",
- "\ud83d\udd62": "seven-thirty",
- "\ud83d\udd63": "eight-thirty",
- "\ud83d\udd64": "nine-thirty",
- "\ud83d\udd65": "ten-thirty",
- "\ud83d\udd66": "eleven-thirty",
- "\ud83d\udd67": "twelve-thirty",
- "\ud83d\udd6f\ufe0f": "candle",
- "\ud83d\udd70\ufe0f": "mantelpiece clock",
- "\ud83d\udd73\ufe0f": "hole",
- "\ud83d\udd74\ufe0f": "person in suit levitating",
- "\ud83d\udd74\ud83c\udffb": "person in suit levitating: light skin tone",
- "\ud83d\udd74\ud83c\udffc": "person in suit levitating: medium-light skin tone",
- "\ud83d\udd74\ud83c\udffd": "person in suit levitating: medium skin tone",
- "\ud83d\udd74\ud83c\udffe": "person in suit levitating: medium-dark skin tone",
- "\ud83d\udd74\ud83c\udfff": "person in suit levitating: dark skin tone",
- "\ud83d\udd75\ufe0f": "detective",
- "\ud83d\udd75\ud83c\udffb": "detective: light skin tone",
- "\ud83d\udd75\ud83c\udffc": "detective: medium-light skin tone",
- "\ud83d\udd75\ud83c\udffd": "detective: medium skin tone",
- "\ud83d\udd75\ud83c\udffe": "detective: medium-dark skin tone",
- "\ud83d\udd75\ud83c\udfff": "detective: dark skin tone",
- "\ud83d\udd76\ufe0f": "sunglasses",
- "\ud83d\udd77\ufe0f": "spider",
- "\ud83d\udd78\ufe0f": "spider web",
- "\ud83d\udd79\ufe0f": "joystick",
- "\ud83d\udd7a": "man dancing",
- "\ud83d\udd7a\ud83c\udffb": "man dancing: light skin tone",
- "\ud83d\udd7a\ud83c\udffc": "man dancing: medium-light skin tone",
- "\ud83d\udd7a\ud83c\udffd": "man dancing: medium skin tone",
- "\ud83d\udd7a\ud83c\udffe": "man dancing: medium-dark skin tone",
- "\ud83d\udd7a\ud83c\udfff": "man dancing: dark skin tone",
- "\ud83d\udd87\ufe0f": "linked paperclips",
- "\ud83d\udd8a\ufe0f": "pen",
- "\ud83d\udd8b\ufe0f": "fountain pen",
- "\ud83d\udd8c\ufe0f": "paintbrush",
- "\ud83d\udd8d\ufe0f": "crayon",
- "\ud83d\udd90\ufe0f": "hand with fingers splayed",
- "\ud83d\udd90\ud83c\udffb": "hand with fingers splayed: light skin tone",
- "\ud83d\udd90\ud83c\udffc": "hand with fingers splayed: medium-light skin tone",
- "\ud83d\udd90\ud83c\udffd": "hand with fingers splayed: medium skin tone",
- "\ud83d\udd90\ud83c\udffe": "hand with fingers splayed: medium-dark skin tone",
- "\ud83d\udd90\ud83c\udfff": "hand with fingers splayed: dark skin tone",
- "\ud83d\udd95": "middle finger",
- "\ud83d\udd95\ud83c\udffb": "middle finger: light skin tone",
- "\ud83d\udd95\ud83c\udffc": "middle finger: medium-light skin tone",
- "\ud83d\udd95\ud83c\udffd": "middle finger: medium skin tone",
- "\ud83d\udd95\ud83c\udffe": "middle finger: medium-dark skin tone",
- "\ud83d\udd95\ud83c\udfff": "middle finger: dark skin tone",
- "\ud83d\udd96": "vulcan salute",
- "\ud83d\udd96\ud83c\udffb": "vulcan salute: light skin tone",
- "\ud83d\udd96\ud83c\udffc": "vulcan salute: medium-light skin tone",
- "\ud83d\udd96\ud83c\udffd": "vulcan salute: medium skin tone",
- "\ud83d\udd96\ud83c\udffe": "vulcan salute: medium-dark skin tone",
- "\ud83d\udd96\ud83c\udfff": "vulcan salute: dark skin tone",
- "\ud83d\udda4": "black heart",
- "\ud83d\udda5\ufe0f": "desktop computer",
- "\ud83d\udda8\ufe0f": "printer",
- "\ud83d\uddb1\ufe0f": "computer mouse",
- "\ud83d\uddb2\ufe0f": "trackball",
- "\ud83d\uddbc\ufe0f": "framed picture",
- "\ud83d\uddc2\ufe0f": "card index dividers",
- "\ud83d\uddc3\ufe0f": "card file box",
- "\ud83d\uddc4\ufe0f": "file cabinet",
- "\ud83d\uddd1\ufe0f": "wastebasket",
- "\ud83d\uddd2\ufe0f": "spiral notepad",
- "\ud83d\uddd3\ufe0f": "spiral calendar",
- "\ud83d\udddc\ufe0f": "clamp",
- "\ud83d\udddd\ufe0f": "old key",
- "\ud83d\uddde\ufe0f": "rolled-up newspaper",
- "\ud83d\udde1\ufe0f": "dagger",
- "\ud83d\udde3\ufe0f": "speaking head",
- "\ud83d\udde8\ufe0f": "left speech bubble",
- "\ud83d\uddef\ufe0f": "right anger bubble",
- "\ud83d\uddf3\ufe0f": "ballot box with ballot",
- "\ud83d\uddfa\ufe0f": "world map",
- "\ud83d\uddfb": "mount fuji",
- "\ud83d\uddfc": "Tokyo tower",
- "\ud83d\uddfd": "Statue of Liberty",
- "\ud83d\uddfe": "map of Japan",
- "\ud83d\uddff": "moai",
- "\ud83d\ude00": "grinning face",
- "\ud83d\ude01": "beaming face with smiling eyes",
- "\ud83d\ude02": "face with tears of joy",
- "\ud83d\ude03": "grinning face with big eyes",
- "\ud83d\ude04": "grinning face with smiling eyes",
- "\ud83d\ude05": "grinning face with sweat",
- "\ud83d\ude06": "grinning squinting face",
- "\ud83d\ude07": "smiling face with halo",
- "\ud83d\ude08": "smiling face with horns",
- "\ud83d\ude09": "winking face",
- "\ud83d\ude0a": "smiling face with smiling eyes",
- "\ud83d\ude0b": "face savoring food",
- "\ud83d\ude0c": "relieved face",
- "\ud83d\ude0d": "smiling face with heart-eyes",
- "\ud83d\ude0e": "smiling face with sunglasses",
- "\ud83d\ude0f": "smirking face",
- "\ud83d\ude10": "neutral face",
- "\ud83d\ude11": "expressionless face",
- "\ud83d\ude12": "unamused face",
- "\ud83d\ude13": "downcast face with sweat",
- "\ud83d\ude14": "pensive face",
- "\ud83d\ude15": "confused face",
- "\ud83d\ude16": "confounded face",
- "\ud83d\ude17": "kissing face",
- "\ud83d\ude18": "face blowing a kiss",
- "\ud83d\ude19": "kissing face with smiling eyes",
- "\ud83d\ude1a": "kissing face with closed eyes",
- "\ud83d\ude1b": "face with tongue",
- "\ud83d\ude1c": "winking face with tongue",
- "\ud83d\ude1d": "squinting face with tongue",
- "\ud83d\ude1e": "disappointed face",
- "\ud83d\ude1f": "worried face",
- "\ud83d\ude20": "angry face",
- "\ud83d\ude21": "enraged face",
- "\ud83d\ude22": "crying face",
- "\ud83d\ude23": "persevering face",
- "\ud83d\ude24": "face with steam from nose",
- "\ud83d\ude25": "sad but relieved face",
- "\ud83d\ude26": "frowning face with open mouth",
- "\ud83d\ude27": "anguished face",
- "\ud83d\ude28": "fearful face",
- "\ud83d\ude29": "weary face",
- "\ud83d\ude2a": "sleepy face",
- "\ud83d\ude2b": "tired face",
- "\ud83d\ude2c": "grimacing face",
- "\ud83d\ude2d": "loudly crying face",
- "\ud83d\ude2e": "face with open mouth",
- "\ud83d\ude2f": "hushed face",
- "\ud83d\ude30": "anxious face with sweat",
- "\ud83d\ude31": "face screaming in fear",
- "\ud83d\ude32": "astonished face",
- "\ud83d\ude33": "flushed face",
- "\ud83d\ude34": "sleeping face",
- "\ud83d\ude35": "face with crossed-out eyes",
- "\ud83d\ude36": "face without mouth",
- "\ud83d\ude37": "face with medical mask",
- "\ud83d\ude38": "grinning cat with smiling eyes",
- "\ud83d\ude39": "cat with tears of joy",
- "\ud83d\ude3a": "grinning cat",
- "\ud83d\ude3b": "smiling cat with heart-eyes",
- "\ud83d\ude3c": "cat with wry smile",
- "\ud83d\ude3d": "kissing cat",
- "\ud83d\ude3e": "pouting cat",
- "\ud83d\ude3f": "crying cat",
- "\ud83d\ude40": "weary cat",
- "\ud83d\ude41": "slightly frowning face",
- "\ud83d\ude42": "slightly smiling face",
- "\ud83d\ude43": "upside-down face",
- "\ud83d\ude44": "face with rolling eyes",
- "\ud83d\ude45": "person gesturing NO",
- "\ud83d\ude45\ud83c\udffb": "person gesturing NO: light skin tone",
- "\ud83d\ude45\ud83c\udffc": "person gesturing NO: medium-light skin tone",
- "\ud83d\ude45\ud83c\udffd": "person gesturing NO: medium skin tone",
- "\ud83d\ude45\ud83c\udffe": "person gesturing NO: medium-dark skin tone",
- "\ud83d\ude45\ud83c\udfff": "person gesturing NO: dark skin tone",
- "\ud83d\ude46": "person gesturing OK",
- "\ud83d\ude46\ud83c\udffb": "person gesturing OK: light skin tone",
- "\ud83d\ude46\ud83c\udffc": "person gesturing OK: medium-light skin tone",
- "\ud83d\ude46\ud83c\udffd": "person gesturing OK: medium skin tone",
- "\ud83d\ude46\ud83c\udffe": "person gesturing OK: medium-dark skin tone",
- "\ud83d\ude46\ud83c\udfff": "person gesturing OK: dark skin tone",
- "\ud83d\ude47": "person bowing",
- "\ud83d\ude47\ud83c\udffb": "person bowing: light skin tone",
- "\ud83d\ude47\ud83c\udffc": "person bowing: medium-light skin tone",
- "\ud83d\ude47\ud83c\udffd": "person bowing: medium skin tone",
- "\ud83d\ude47\ud83c\udffe": "person bowing: medium-dark skin tone",
- "\ud83d\ude47\ud83c\udfff": "person bowing: dark skin tone",
- "\ud83d\ude48": "see-no-evil monkey",
- "\ud83d\ude49": "hear-no-evil monkey",
- "\ud83d\ude4a": "speak-no-evil monkey",
- "\ud83d\ude4b": "person raising hand",
- "\ud83d\ude4b\ud83c\udffb": "person raising hand: light skin tone",
- "\ud83d\ude4b\ud83c\udffc": "person raising hand: medium-light skin tone",
- "\ud83d\ude4b\ud83c\udffd": "person raising hand: medium skin tone",
- "\ud83d\ude4b\ud83c\udffe": "person raising hand: medium-dark skin tone",
- "\ud83d\ude4b\ud83c\udfff": "person raising hand: dark skin tone",
- "\ud83d\ude4c": "raising hands",
- "\ud83d\ude4c\ud83c\udffb": "raising hands: light skin tone",
- "\ud83d\ude4c\ud83c\udffc": "raising hands: medium-light skin tone",
- "\ud83d\ude4c\ud83c\udffd": "raising hands: medium skin tone",
- "\ud83d\ude4c\ud83c\udffe": "raising hands: medium-dark skin tone",
- "\ud83d\ude4c\ud83c\udfff": "raising hands: dark skin tone",
- "\ud83d\ude4d": "person frowning",
- "\ud83d\ude4d\ud83c\udffb": "person frowning: light skin tone",
- "\ud83d\ude4d\ud83c\udffc": "person frowning: medium-light skin tone",
- "\ud83d\ude4d\ud83c\udffd": "person frowning: medium skin tone",
- "\ud83d\ude4d\ud83c\udffe": "person frowning: medium-dark skin tone",
- "\ud83d\ude4d\ud83c\udfff": "person frowning: dark skin tone",
- "\ud83d\ude4e": "person pouting",
- "\ud83d\ude4e\ud83c\udffb": "person pouting: light skin tone",
- "\ud83d\ude4e\ud83c\udffc": "person pouting: medium-light skin tone",
- "\ud83d\ude4e\ud83c\udffd": "person pouting: medium skin tone",
- "\ud83d\ude4e\ud83c\udffe": "person pouting: medium-dark skin tone",
- "\ud83d\ude4e\ud83c\udfff": "person pouting: dark skin tone",
- "\ud83d\ude4f": "folded hands",
- "\ud83d\ude4f\ud83c\udffb": "folded hands: light skin tone",
- "\ud83d\ude4f\ud83c\udffc": "folded hands: medium-light skin tone",
- "\ud83d\ude4f\ud83c\udffd": "folded hands: medium skin tone",
- "\ud83d\ude4f\ud83c\udffe": "folded hands: medium-dark skin tone",
- "\ud83d\ude4f\ud83c\udfff": "folded hands: dark skin tone",
- "\ud83d\ude80": "rocket",
- "\ud83d\ude81": "helicopter",
- "\ud83d\ude82": "locomotive",
- "\ud83d\ude83": "railway car",
- "\ud83d\ude84": "high-speed train",
- "\ud83d\ude85": "bullet train",
- "\ud83d\ude86": "train",
- "\ud83d\ude87": "metro",
- "\ud83d\ude88": "light rail",
- "\ud83d\ude89": "station",
- "\ud83d\ude8a": "tram",
- "\ud83d\ude8b": "tram car",
- "\ud83d\ude8c": "bus",
- "\ud83d\ude8d": "oncoming bus",
- "\ud83d\ude8e": "trolleybus",
- "\ud83d\ude8f": "bus stop",
- "\ud83d\ude90": "minibus",
- "\ud83d\ude91": "ambulance",
- "\ud83d\ude92": "fire engine",
- "\ud83d\ude93": "police car",
- "\ud83d\ude94": "oncoming police car",
- "\ud83d\ude95": "taxi",
- "\ud83d\ude96": "oncoming taxi",
- "\ud83d\ude97": "automobile",
- "\ud83d\ude98": "oncoming automobile",
- "\ud83d\ude99": "sport utility vehicle",
- "\ud83d\ude9a": "delivery truck",
- "\ud83d\ude9b": "articulated lorry",
- "\ud83d\ude9c": "tractor",
- "\ud83d\ude9d": "monorail",
- "\ud83d\ude9e": "mountain railway",
- "\ud83d\ude9f": "suspension railway",
- "\ud83d\udea0": "mountain cableway",
- "\ud83d\udea1": "aerial tramway",
- "\ud83d\udea2": "ship",
- "\ud83d\udea3": "person rowing boat",
- "\ud83d\udea3\ud83c\udffb": "person rowing boat: light skin tone",
- "\ud83d\udea3\ud83c\udffc": "person rowing boat: medium-light skin tone",
- "\ud83d\udea3\ud83c\udffd": "person rowing boat: medium skin tone",
- "\ud83d\udea3\ud83c\udffe": "person rowing boat: medium-dark skin tone",
- "\ud83d\udea3\ud83c\udfff": "person rowing boat: dark skin tone",
- "\ud83d\udea4": "speedboat",
- "\ud83d\udea5": "horizontal traffic light",
- "\ud83d\udea6": "vertical traffic light",
- "\ud83d\udea7": "construction",
- "\ud83d\udea8": "police car light",
- "\ud83d\udea9": "triangular flag",
- "\ud83d\udeaa": "door",
- "\ud83d\udeab": "prohibited",
- "\ud83d\udeac": "cigarette",
- "\ud83d\udead": "no smoking",
- "\ud83d\udeae": "litter in bin sign",
- "\ud83d\udeaf": "no littering",
- "\ud83d\udeb0": "potable water",
- "\ud83d\udeb1": "non-potable water",
- "\ud83d\udeb2": "bicycle",
- "\ud83d\udeb3": "no bicycles",
- "\ud83d\udeb4": "person biking",
- "\ud83d\udeb4\ud83c\udffb": "person biking: light skin tone",
- "\ud83d\udeb4\ud83c\udffc": "person biking: medium-light skin tone",
- "\ud83d\udeb4\ud83c\udffd": "person biking: medium skin tone",
- "\ud83d\udeb4\ud83c\udffe": "person biking: medium-dark skin tone",
- "\ud83d\udeb4\ud83c\udfff": "person biking: dark skin tone",
- "\ud83d\udeb5": "person mountain biking",
- "\ud83d\udeb5\ud83c\udffb": "person mountain biking: light skin tone",
- "\ud83d\udeb5\ud83c\udffc": "person mountain biking: medium-light skin tone",
- "\ud83d\udeb5\ud83c\udffd": "person mountain biking: medium skin tone",
- "\ud83d\udeb5\ud83c\udffe": "person mountain biking: medium-dark skin tone",
- "\ud83d\udeb5\ud83c\udfff": "person mountain biking: dark skin tone",
- "\ud83d\udeb6": "person walking",
- "\ud83d\udeb6\ud83c\udffb": "person walking: light skin tone",
- "\ud83d\udeb6\ud83c\udffc": "person walking: medium-light skin tone",
- "\ud83d\udeb6\ud83c\udffd": "person walking: medium skin tone",
- "\ud83d\udeb6\ud83c\udffe": "person walking: medium-dark skin tone",
- "\ud83d\udeb6\ud83c\udfff": "person walking: dark skin tone",
- "\ud83d\udeb7": "no pedestrians",
- "\ud83d\udeb8": "children crossing",
- "\ud83d\udeb9": "men's room",
- "\ud83d\udeba": "women's room",
- "\ud83d\udebb": "restroom",
- "\ud83d\udebc": "baby symbol",
- "\ud83d\udebd": "toilet",
- "\ud83d\udebe": "water closet",
- "\ud83d\udebf": "shower",
- "\ud83d\udec0": "person taking bath",
- "\ud83d\udec0\ud83c\udffb": "person taking bath: light skin tone",
- "\ud83d\udec0\ud83c\udffc": "person taking bath: medium-light skin tone",
- "\ud83d\udec0\ud83c\udffd": "person taking bath: medium skin tone",
- "\ud83d\udec0\ud83c\udffe": "person taking bath: medium-dark skin tone",
- "\ud83d\udec0\ud83c\udfff": "person taking bath: dark skin tone",
- "\ud83d\udec1": "bathtub",
- "\ud83d\udec2": "passport control",
- "\ud83d\udec3": "customs",
- "\ud83d\udec4": "baggage claim",
- "\ud83d\udec5": "left luggage",
- "\ud83d\udecb\ufe0f": "couch and lamp",
- "\ud83d\udecc": "person in bed",
- "\ud83d\udecc\ud83c\udffb": "person in bed: light skin tone",
- "\ud83d\udecc\ud83c\udffc": "person in bed: medium-light skin tone",
- "\ud83d\udecc\ud83c\udffd": "person in bed: medium skin tone",
- "\ud83d\udecc\ud83c\udffe": "person in bed: medium-dark skin tone",
- "\ud83d\udecc\ud83c\udfff": "person in bed: dark skin tone",
- "\ud83d\udecd\ufe0f": "shopping bags",
- "\ud83d\udece\ufe0f": "bellhop bell",
- "\ud83d\udecf\ufe0f": "bed",
- "\ud83d\uded0": "place of worship",
- "\ud83d\uded1": "stop sign",
- "\ud83d\uded2": "shopping cart",
- "\ud83d\uded5": "hindu temple",
- "\ud83d\uded6": "hut",
- "\ud83d\uded7": "elevator",
- "\ud83d\udedc": "wireless",
- "\ud83d\udedd": "playground slide",
- "\ud83d\udede": "wheel",
- "\ud83d\udedf": "ring buoy",
- "\ud83d\udee0\ufe0f": "hammer and wrench",
- "\ud83d\udee1\ufe0f": "shield",
- "\ud83d\udee2\ufe0f": "oil drum",
- "\ud83d\udee3\ufe0f": "motorway",
- "\ud83d\udee4\ufe0f": "railway track",
- "\ud83d\udee5\ufe0f": "motor boat",
- "\ud83d\udee9\ufe0f": "small airplane",
- "\ud83d\udeeb": "airplane departure",
- "\ud83d\udeec": "airplane arrival",
- "\ud83d\udef0\ufe0f": "satellite",
- "\ud83d\udef3\ufe0f": "passenger ship",
- "\ud83d\udef4": "kick scooter",
- "\ud83d\udef5": "motor scooter",
- "\ud83d\udef6": "canoe",
- "\ud83d\udef7": "sled",
- "\ud83d\udef8": "flying saucer",
- "\ud83d\udef9": "skateboard",
- "\ud83d\udefa": "auto rickshaw",
- "\ud83d\udefb": "pickup truck",
- "\ud83d\udefc": "roller skate",
- "\ud83d\udfe0": "orange circle",
- "\ud83d\udfe1": "yellow circle",
- "\ud83d\udfe2": "green circle",
- "\ud83d\udfe3": "purple circle",
- "\ud83d\udfe4": "brown circle",
- "\ud83d\udfe5": "red square",
- "\ud83d\udfe6": "blue square",
- "\ud83d\udfe7": "orange square",
- "\ud83d\udfe8": "yellow square",
- "\ud83d\udfe9": "green square",
- "\ud83d\udfea": "purple square",
- "\ud83d\udfeb": "brown square",
- "\ud83d\udff0": "heavy equals sign",
- "\ud83e\udd0c": "pinched fingers",
- "\ud83e\udd0c\ud83c\udffb": "pinched fingers: light skin tone",
- "\ud83e\udd0c\ud83c\udffc": "pinched fingers: medium-light skin tone",
- "\ud83e\udd0c\ud83c\udffd": "pinched fingers: medium skin tone",
- "\ud83e\udd0c\ud83c\udffe": "pinched fingers: medium-dark skin tone",
- "\ud83e\udd0c\ud83c\udfff": "pinched fingers: dark skin tone",
- "\ud83e\udd0d": "white heart",
- "\ud83e\udd0e": "brown heart",
- "\ud83e\udd0f": "pinching hand",
- "\ud83e\udd0f\ud83c\udffb": "pinching hand: light skin tone",
- "\ud83e\udd0f\ud83c\udffc": "pinching hand: medium-light skin tone",
- "\ud83e\udd0f\ud83c\udffd": "pinching hand: medium skin tone",
- "\ud83e\udd0f\ud83c\udffe": "pinching hand: medium-dark skin tone",
- "\ud83e\udd0f\ud83c\udfff": "pinching hand: dark skin tone",
- "\ud83e\udd10": "zipper-mouth face",
- "\ud83e\udd11": "money-mouth face",
- "\ud83e\udd12": "face with thermometer",
- "\ud83e\udd13": "nerd face",
- "\ud83e\udd14": "thinking face",
- "\ud83e\udd15": "face with head-bandage",
- "\ud83e\udd16": "robot",
- "\ud83e\udd17": "smiling face with open hands",
- "\ud83e\udd18": "sign of the horns",
- "\ud83e\udd18\ud83c\udffb": "sign of the horns: light skin tone",
- "\ud83e\udd18\ud83c\udffc": "sign of the horns: medium-light skin tone",
- "\ud83e\udd18\ud83c\udffd": "sign of the horns: medium skin tone",
- "\ud83e\udd18\ud83c\udffe": "sign of the horns: medium-dark skin tone",
- "\ud83e\udd18\ud83c\udfff": "sign of the horns: dark skin tone",
- "\ud83e\udd19": "call me hand",
- "\ud83e\udd19\ud83c\udffb": "call me hand: light skin tone",
- "\ud83e\udd19\ud83c\udffc": "call me hand: medium-light skin tone",
- "\ud83e\udd19\ud83c\udffd": "call me hand: medium skin tone",
- "\ud83e\udd19\ud83c\udffe": "call me hand: medium-dark skin tone",
- "\ud83e\udd19\ud83c\udfff": "call me hand: dark skin tone",
- "\ud83e\udd1a": "raised back of hand",
- "\ud83e\udd1a\ud83c\udffb": "raised back of hand: light skin tone",
- "\ud83e\udd1a\ud83c\udffc": "raised back of hand: medium-light skin tone",
- "\ud83e\udd1a\ud83c\udffd": "raised back of hand: medium skin tone",
- "\ud83e\udd1a\ud83c\udffe": "raised back of hand: medium-dark skin tone",
- "\ud83e\udd1a\ud83c\udfff": "raised back of hand: dark skin tone",
- "\ud83e\udd1b": "left-facing fist",
- "\ud83e\udd1b\ud83c\udffb": "left-facing fist: light skin tone",
- "\ud83e\udd1b\ud83c\udffc": "left-facing fist: medium-light skin tone",
- "\ud83e\udd1b\ud83c\udffd": "left-facing fist: medium skin tone",
- "\ud83e\udd1b\ud83c\udffe": "left-facing fist: medium-dark skin tone",
- "\ud83e\udd1b\ud83c\udfff": "left-facing fist: dark skin tone",
- "\ud83e\udd1c": "right-facing fist",
- "\ud83e\udd1c\ud83c\udffb": "right-facing fist: light skin tone",
- "\ud83e\udd1c\ud83c\udffc": "right-facing fist: medium-light skin tone",
- "\ud83e\udd1c\ud83c\udffd": "right-facing fist: medium skin tone",
- "\ud83e\udd1c\ud83c\udffe": "right-facing fist: medium-dark skin tone",
- "\ud83e\udd1c\ud83c\udfff": "right-facing fist: dark skin tone",
- "\ud83e\udd1d": "handshake",
- "\ud83e\udd1d\ud83c\udffb": "handshake: light skin tone",
- "\ud83e\udd1d\ud83c\udffc": "handshake: medium-light skin tone",
- "\ud83e\udd1d\ud83c\udffd": "handshake: medium skin tone",
- "\ud83e\udd1d\ud83c\udffe": "handshake: medium-dark skin tone",
- "\ud83e\udd1d\ud83c\udfff": "handshake: dark skin tone",
- "\ud83e\udd1e": "crossed fingers",
- "\ud83e\udd1e\ud83c\udffb": "crossed fingers: light skin tone",
- "\ud83e\udd1e\ud83c\udffc": "crossed fingers: medium-light skin tone",
- "\ud83e\udd1e\ud83c\udffd": "crossed fingers: medium skin tone",
- "\ud83e\udd1e\ud83c\udffe": "crossed fingers: medium-dark skin tone",
- "\ud83e\udd1e\ud83c\udfff": "crossed fingers: dark skin tone",
- "\ud83e\udd1f": "love-you gesture",
- "\ud83e\udd1f\ud83c\udffb": "love-you gesture: light skin tone",
- "\ud83e\udd1f\ud83c\udffc": "love-you gesture: medium-light skin tone",
- "\ud83e\udd1f\ud83c\udffd": "love-you gesture: medium skin tone",
- "\ud83e\udd1f\ud83c\udffe": "love-you gesture: medium-dark skin tone",
- "\ud83e\udd1f\ud83c\udfff": "love-you gesture: dark skin tone",
- "\ud83e\udd20": "cowboy hat face",
- "\ud83e\udd21": "clown face",
- "\ud83e\udd22": "nauseated face",
- "\ud83e\udd23": "rolling on the floor laughing",
- "\ud83e\udd24": "drooling face",
- "\ud83e\udd25": "lying face",
- "\ud83e\udd26": "person facepalming",
- "\ud83e\udd26\ud83c\udffb": "person facepalming: light skin tone",
- "\ud83e\udd26\ud83c\udffc": "person facepalming: medium-light skin tone",
- "\ud83e\udd26\ud83c\udffd": "person facepalming: medium skin tone",
- "\ud83e\udd26\ud83c\udffe": "person facepalming: medium-dark skin tone",
- "\ud83e\udd26\ud83c\udfff": "person facepalming: dark skin tone",
- "\ud83e\udd27": "sneezing face",
- "\ud83e\udd28": "face with raised eyebrow",
- "\ud83e\udd29": "star-struck",
- "\ud83e\udd2a": "zany face",
- "\ud83e\udd2b": "shushing face",
- "\ud83e\udd2c": "face with symbols on mouth",
- "\ud83e\udd2d": "face with hand over mouth",
- "\ud83e\udd2e": "face vomiting",
- "\ud83e\udd2f": "exploding head",
- "\ud83e\udd30": "pregnant woman",
- "\ud83e\udd30\ud83c\udffb": "pregnant woman: light skin tone",
- "\ud83e\udd30\ud83c\udffc": "pregnant woman: medium-light skin tone",
- "\ud83e\udd30\ud83c\udffd": "pregnant woman: medium skin tone",
- "\ud83e\udd30\ud83c\udffe": "pregnant woman: medium-dark skin tone",
- "\ud83e\udd30\ud83c\udfff": "pregnant woman: dark skin tone",
- "\ud83e\udd31": "breast-feeding",
- "\ud83e\udd31\ud83c\udffb": "breast-feeding: light skin tone",
- "\ud83e\udd31\ud83c\udffc": "breast-feeding: medium-light skin tone",
- "\ud83e\udd31\ud83c\udffd": "breast-feeding: medium skin tone",
- "\ud83e\udd31\ud83c\udffe": "breast-feeding: medium-dark skin tone",
- "\ud83e\udd31\ud83c\udfff": "breast-feeding: dark skin tone",
- "\ud83e\udd32": "palms up together",
- "\ud83e\udd32\ud83c\udffb": "palms up together: light skin tone",
- "\ud83e\udd32\ud83c\udffc": "palms up together: medium-light skin tone",
- "\ud83e\udd32\ud83c\udffd": "palms up together: medium skin tone",
- "\ud83e\udd32\ud83c\udffe": "palms up together: medium-dark skin tone",
- "\ud83e\udd32\ud83c\udfff": "palms up together: dark skin tone",
- "\ud83e\udd33": "selfie",
- "\ud83e\udd33\ud83c\udffb": "selfie: light skin tone",
- "\ud83e\udd33\ud83c\udffc": "selfie: medium-light skin tone",
- "\ud83e\udd33\ud83c\udffd": "selfie: medium skin tone",
- "\ud83e\udd33\ud83c\udffe": "selfie: medium-dark skin tone",
- "\ud83e\udd33\ud83c\udfff": "selfie: dark skin tone",
- "\ud83e\udd34": "prince",
- "\ud83e\udd34\ud83c\udffb": "prince: light skin tone",
- "\ud83e\udd34\ud83c\udffc": "prince: medium-light skin tone",
- "\ud83e\udd34\ud83c\udffd": "prince: medium skin tone",
- "\ud83e\udd34\ud83c\udffe": "prince: medium-dark skin tone",
- "\ud83e\udd34\ud83c\udfff": "prince: dark skin tone",
- "\ud83e\udd35": "person in tuxedo",
- "\ud83e\udd35\ud83c\udffb": "person in tuxedo: light skin tone",
- "\ud83e\udd35\ud83c\udffc": "person in tuxedo: medium-light skin tone",
- "\ud83e\udd35\ud83c\udffd": "person in tuxedo: medium skin tone",
- "\ud83e\udd35\ud83c\udffe": "person in tuxedo: medium-dark skin tone",
- "\ud83e\udd35\ud83c\udfff": "person in tuxedo: dark skin tone",
- "\ud83e\udd36": "Mrs. Claus",
- "\ud83e\udd36\ud83c\udffb": "Mrs. Claus: light skin tone",
- "\ud83e\udd36\ud83c\udffc": "Mrs. Claus: medium-light skin tone",
- "\ud83e\udd36\ud83c\udffd": "Mrs. Claus: medium skin tone",
- "\ud83e\udd36\ud83c\udffe": "Mrs. Claus: medium-dark skin tone",
- "\ud83e\udd36\ud83c\udfff": "Mrs. Claus: dark skin tone",
- "\ud83e\udd37": "person shrugging",
- "\ud83e\udd37\ud83c\udffb": "person shrugging: light skin tone",
- "\ud83e\udd37\ud83c\udffc": "person shrugging: medium-light skin tone",
- "\ud83e\udd37\ud83c\udffd": "person shrugging: medium skin tone",
- "\ud83e\udd37\ud83c\udffe": "person shrugging: medium-dark skin tone",
- "\ud83e\udd37\ud83c\udfff": "person shrugging: dark skin tone",
- "\ud83e\udd38": "person cartwheeling",
- "\ud83e\udd38\ud83c\udffb": "person cartwheeling: light skin tone",
- "\ud83e\udd38\ud83c\udffc": "person cartwheeling: medium-light skin tone",
- "\ud83e\udd38\ud83c\udffd": "person cartwheeling: medium skin tone",
- "\ud83e\udd38\ud83c\udffe": "person cartwheeling: medium-dark skin tone",
- "\ud83e\udd38\ud83c\udfff": "person cartwheeling: dark skin tone",
- "\ud83e\udd39": "person juggling",
- "\ud83e\udd39\ud83c\udffb": "person juggling: light skin tone",
- "\ud83e\udd39\ud83c\udffc": "person juggling: medium-light skin tone",
- "\ud83e\udd39\ud83c\udffd": "person juggling: medium skin tone",
- "\ud83e\udd39\ud83c\udffe": "person juggling: medium-dark skin tone",
- "\ud83e\udd39\ud83c\udfff": "person juggling: dark skin tone",
- "\ud83e\udd3a": "person fencing",
- "\ud83e\udd3c": "people wrestling",
- "\ud83e\udd3d": "person playing water polo",
- "\ud83e\udd3d\ud83c\udffb": "person playing water polo: light skin tone",
- "\ud83e\udd3d\ud83c\udffc": "person playing water polo: medium-light skin tone",
- "\ud83e\udd3d\ud83c\udffd": "person playing water polo: medium skin tone",
- "\ud83e\udd3d\ud83c\udffe": "person playing water polo: medium-dark skin tone",
- "\ud83e\udd3d\ud83c\udfff": "person playing water polo: dark skin tone",
- "\ud83e\udd3e": "person playing handball",
- "\ud83e\udd3e\ud83c\udffb": "person playing handball: light skin tone",
- "\ud83e\udd3e\ud83c\udffc": "person playing handball: medium-light skin tone",
- "\ud83e\udd3e\ud83c\udffd": "person playing handball: medium skin tone",
- "\ud83e\udd3e\ud83c\udffe": "person playing handball: medium-dark skin tone",
- "\ud83e\udd3e\ud83c\udfff": "person playing handball: dark skin tone",
- "\ud83e\udd3f": "diving mask",
- "\ud83e\udd40": "wilted flower",
- "\ud83e\udd41": "drum",
- "\ud83e\udd42": "clinking glasses",
- "\ud83e\udd43": "tumbler glass",
- "\ud83e\udd44": "spoon",
- "\ud83e\udd45": "goal net",
- "\ud83e\udd47": "1st place medal",
- "\ud83e\udd48": "2nd place medal",
- "\ud83e\udd49": "3rd place medal",
- "\ud83e\udd4a": "boxing glove",
- "\ud83e\udd4b": "martial arts uniform",
- "\ud83e\udd4c": "curling stone",
- "\ud83e\udd4d": "lacrosse",
- "\ud83e\udd4e": "softball",
- "\ud83e\udd4f": "flying disc",
- "\ud83e\udd50": "croissant",
- "\ud83e\udd51": "avocado",
- "\ud83e\udd52": "cucumber",
- "\ud83e\udd53": "bacon",
- "\ud83e\udd54": "potato",
- "\ud83e\udd55": "carrot",
- "\ud83e\udd56": "baguette bread",
- "\ud83e\udd57": "green salad",
- "\ud83e\udd58": "shallow pan of food",
- "\ud83e\udd59": "stuffed flatbread",
- "\ud83e\udd5a": "egg",
- "\ud83e\udd5b": "glass of milk",
- "\ud83e\udd5c": "peanuts",
- "\ud83e\udd5d": "kiwi fruit",
- "\ud83e\udd5e": "pancakes",
- "\ud83e\udd5f": "dumpling",
- "\ud83e\udd60": "fortune cookie",
- "\ud83e\udd61": "takeout box",
- "\ud83e\udd62": "chopsticks",
- "\ud83e\udd63": "bowl with spoon",
- "\ud83e\udd64": "cup with straw",
- "\ud83e\udd65": "coconut",
- "\ud83e\udd66": "broccoli",
- "\ud83e\udd67": "pie",
- "\ud83e\udd68": "pretzel",
- "\ud83e\udd69": "cut of meat",
- "\ud83e\udd6a": "sandwich",
- "\ud83e\udd6b": "canned food",
- "\ud83e\udd6c": "leafy green",
- "\ud83e\udd6d": "mango",
- "\ud83e\udd6e": "moon cake",
- "\ud83e\udd6f": "bagel",
- "\ud83e\udd70": "smiling face with hearts",
- "\ud83e\udd71": "yawning face",
- "\ud83e\udd72": "smiling face with tear",
- "\ud83e\udd73": "partying face",
- "\ud83e\udd74": "woozy face",
- "\ud83e\udd75": "hot face",
- "\ud83e\udd76": "cold face",
- "\ud83e\udd77": "ninja",
- "\ud83e\udd77\ud83c\udffb": "ninja: light skin tone",
- "\ud83e\udd77\ud83c\udffc": "ninja: medium-light skin tone",
- "\ud83e\udd77\ud83c\udffd": "ninja: medium skin tone",
- "\ud83e\udd77\ud83c\udffe": "ninja: medium-dark skin tone",
- "\ud83e\udd77\ud83c\udfff": "ninja: dark skin tone",
- "\ud83e\udd78": "disguised face",
- "\ud83e\udd79": "face holding back tears",
- "\ud83e\udd7a": "pleading face",
- "\ud83e\udd7b": "sari",
- "\ud83e\udd7c": "lab coat",
- "\ud83e\udd7d": "goggles",
- "\ud83e\udd7e": "hiking boot",
- "\ud83e\udd7f": "flat shoe",
- "\ud83e\udd80": "crab",
- "\ud83e\udd81": "lion",
- "\ud83e\udd82": "scorpion",
- "\ud83e\udd83": "turkey",
- "\ud83e\udd84": "unicorn",
- "\ud83e\udd85": "eagle",
- "\ud83e\udd86": "duck",
- "\ud83e\udd87": "bat",
- "\ud83e\udd88": "shark",
- "\ud83e\udd89": "owl",
- "\ud83e\udd8a": "fox",
- "\ud83e\udd8b": "butterfly",
- "\ud83e\udd8c": "deer",
- "\ud83e\udd8d": "gorilla",
- "\ud83e\udd8e": "lizard",
- "\ud83e\udd8f": "rhinoceros",
- "\ud83e\udd90": "shrimp",
- "\ud83e\udd91": "squid",
- "\ud83e\udd92": "giraffe",
- "\ud83e\udd93": "zebra",
- "\ud83e\udd94": "hedgehog",
- "\ud83e\udd95": "sauropod",
- "\ud83e\udd96": "T-Rex",
- "\ud83e\udd97": "cricket",
- "\ud83e\udd98": "kangaroo",
- "\ud83e\udd99": "llama",
- "\ud83e\udd9a": "peacock",
- "\ud83e\udd9b": "hippopotamus",
- "\ud83e\udd9c": "parrot",
- "\ud83e\udd9d": "raccoon",
- "\ud83e\udd9e": "lobster",
- "\ud83e\udd9f": "mosquito",
- "\ud83e\udda0": "microbe",
- "\ud83e\udda1": "badger",
- "\ud83e\udda2": "swan",
- "\ud83e\udda3": "mammoth",
- "\ud83e\udda4": "dodo",
- "\ud83e\udda5": "sloth",
- "\ud83e\udda6": "otter",
- "\ud83e\udda7": "orangutan",
- "\ud83e\udda8": "skunk",
- "\ud83e\udda9": "flamingo",
- "\ud83e\uddaa": "oyster",
- "\ud83e\uddab": "beaver",
- "\ud83e\uddac": "bison",
- "\ud83e\uddad": "seal",
- "\ud83e\uddae": "guide dog",
- "\ud83e\uddaf": "white cane",
- "\ud83e\uddb4": "bone",
- "\ud83e\uddb5": "leg",
- "\ud83e\uddb5\ud83c\udffb": "leg: light skin tone",
- "\ud83e\uddb5\ud83c\udffc": "leg: medium-light skin tone",
- "\ud83e\uddb5\ud83c\udffd": "leg: medium skin tone",
- "\ud83e\uddb5\ud83c\udffe": "leg: medium-dark skin tone",
- "\ud83e\uddb5\ud83c\udfff": "leg: dark skin tone",
- "\ud83e\uddb6": "foot",
- "\ud83e\uddb6\ud83c\udffb": "foot: light skin tone",
- "\ud83e\uddb6\ud83c\udffc": "foot: medium-light skin tone",
- "\ud83e\uddb6\ud83c\udffd": "foot: medium skin tone",
- "\ud83e\uddb6\ud83c\udffe": "foot: medium-dark skin tone",
- "\ud83e\uddb6\ud83c\udfff": "foot: dark skin tone",
- "\ud83e\uddb7": "tooth",
- "\ud83e\uddb8": "superhero",
- "\ud83e\uddb8\ud83c\udffb": "superhero: light skin tone",
- "\ud83e\uddb8\ud83c\udffc": "superhero: medium-light skin tone",
- "\ud83e\uddb8\ud83c\udffd": "superhero: medium skin tone",
- "\ud83e\uddb8\ud83c\udffe": "superhero: medium-dark skin tone",
- "\ud83e\uddb8\ud83c\udfff": "superhero: dark skin tone",
- "\ud83e\uddb9": "supervillain",
- "\ud83e\uddb9\ud83c\udffb": "supervillain: light skin tone",
- "\ud83e\uddb9\ud83c\udffc": "supervillain: medium-light skin tone",
- "\ud83e\uddb9\ud83c\udffd": "supervillain: medium skin tone",
- "\ud83e\uddb9\ud83c\udffe": "supervillain: medium-dark skin tone",
- "\ud83e\uddb9\ud83c\udfff": "supervillain: dark skin tone",
- "\ud83e\uddba": "safety vest",
- "\ud83e\uddbb": "ear with hearing aid",
- "\ud83e\uddbb\ud83c\udffb": "ear with hearing aid: light skin tone",
- "\ud83e\uddbb\ud83c\udffc": "ear with hearing aid: medium-light skin tone",
- "\ud83e\uddbb\ud83c\udffd": "ear with hearing aid: medium skin tone",
- "\ud83e\uddbb\ud83c\udffe": "ear with hearing aid: medium-dark skin tone",
- "\ud83e\uddbb\ud83c\udfff": "ear with hearing aid: dark skin tone",
- "\ud83e\uddbc": "motorized wheelchair",
- "\ud83e\uddbd": "manual wheelchair",
- "\ud83e\uddbe": "mechanical arm",
- "\ud83e\uddbf": "mechanical leg",
- "\ud83e\uddc0": "cheese wedge",
- "\ud83e\uddc1": "cupcake",
- "\ud83e\uddc2": "salt",
- "\ud83e\uddc3": "beverage box",
- "\ud83e\uddc4": "garlic",
- "\ud83e\uddc5": "onion",
- "\ud83e\uddc6": "falafel",
- "\ud83e\uddc7": "waffle",
- "\ud83e\uddc8": "butter",
- "\ud83e\uddc9": "mate",
- "\ud83e\uddca": "ice",
- "\ud83e\uddcb": "bubble tea",
- "\ud83e\uddcc": "troll",
- "\ud83e\uddcd": "person standing",
- "\ud83e\uddcd\ud83c\udffb": "person standing: light skin tone",
- "\ud83e\uddcd\ud83c\udffc": "person standing: medium-light skin tone",
- "\ud83e\uddcd\ud83c\udffd": "person standing: medium skin tone",
- "\ud83e\uddcd\ud83c\udffe": "person standing: medium-dark skin tone",
- "\ud83e\uddcd\ud83c\udfff": "person standing: dark skin tone",
- "\ud83e\uddce": "person kneeling",
- "\ud83e\uddce\ud83c\udffb": "person kneeling: light skin tone",
- "\ud83e\uddce\ud83c\udffc": "person kneeling: medium-light skin tone",
- "\ud83e\uddce\ud83c\udffd": "person kneeling: medium skin tone",
- "\ud83e\uddce\ud83c\udffe": "person kneeling: medium-dark skin tone",
- "\ud83e\uddce\ud83c\udfff": "person kneeling: dark skin tone",
- "\ud83e\uddcf": "deaf person",
- "\ud83e\uddcf\ud83c\udffb": "deaf person: light skin tone",
- "\ud83e\uddcf\ud83c\udffc": "deaf person: medium-light skin tone",
- "\ud83e\uddcf\ud83c\udffd": "deaf person: medium skin tone",
- "\ud83e\uddcf\ud83c\udffe": "deaf person: medium-dark skin tone",
- "\ud83e\uddcf\ud83c\udfff": "deaf person: dark skin tone",
- "\ud83e\uddd0": "face with monocle",
- "\ud83e\uddd1": "person",
- "\ud83e\uddd1\ud83c\udffb": "person: light skin tone",
- "\ud83e\uddd1\ud83c\udffc": "person: medium-light skin tone",
- "\ud83e\uddd1\ud83c\udffd": "person: medium skin tone",
- "\ud83e\uddd1\ud83c\udffe": "person: medium-dark skin tone",
- "\ud83e\uddd1\ud83c\udfff": "person: dark skin tone",
- "\ud83e\uddd2": "child",
- "\ud83e\uddd2\ud83c\udffb": "child: light skin tone",
- "\ud83e\uddd2\ud83c\udffc": "child: medium-light skin tone",
- "\ud83e\uddd2\ud83c\udffd": "child: medium skin tone",
- "\ud83e\uddd2\ud83c\udffe": "child: medium-dark skin tone",
- "\ud83e\uddd2\ud83c\udfff": "child: dark skin tone",
- "\ud83e\uddd3": "older person",
- "\ud83e\uddd3\ud83c\udffb": "older person: light skin tone",
- "\ud83e\uddd3\ud83c\udffc": "older person: medium-light skin tone",
- "\ud83e\uddd3\ud83c\udffd": "older person: medium skin tone",
- "\ud83e\uddd3\ud83c\udffe": "older person: medium-dark skin tone",
- "\ud83e\uddd3\ud83c\udfff": "older person: dark skin tone",
- "\ud83e\uddd4": "person: beard",
- "\ud83e\uddd4\ud83c\udffb": "person: light skin tone, beard",
- "\ud83e\uddd4\ud83c\udffc": "person: medium-light skin tone, beard",
- "\ud83e\uddd4\ud83c\udffd": "person: medium skin tone, beard",
- "\ud83e\uddd4\ud83c\udffe": "person: medium-dark skin tone, beard",
- "\ud83e\uddd4\ud83c\udfff": "person: dark skin tone, beard",
- "\ud83e\uddd5": "woman with headscarf",
- "\ud83e\uddd5\ud83c\udffb": "woman with headscarf: light skin tone",
- "\ud83e\uddd5\ud83c\udffc": "woman with headscarf: medium-light skin tone",
- "\ud83e\uddd5\ud83c\udffd": "woman with headscarf: medium skin tone",
- "\ud83e\uddd5\ud83c\udffe": "woman with headscarf: medium-dark skin tone",
- "\ud83e\uddd5\ud83c\udfff": "woman with headscarf: dark skin tone",
- "\ud83e\uddd6": "person in steamy room",
- "\ud83e\uddd6\ud83c\udffb": "person in steamy room: light skin tone",
- "\ud83e\uddd6\ud83c\udffc": "person in steamy room: medium-light skin tone",
- "\ud83e\uddd6\ud83c\udffd": "person in steamy room: medium skin tone",
- "\ud83e\uddd6\ud83c\udffe": "person in steamy room: medium-dark skin tone",
- "\ud83e\uddd6\ud83c\udfff": "person in steamy room: dark skin tone",
- "\ud83e\uddd7": "person climbing",
- "\ud83e\uddd7\ud83c\udffb": "person climbing: light skin tone",
- "\ud83e\uddd7\ud83c\udffc": "person climbing: medium-light skin tone",
- "\ud83e\uddd7\ud83c\udffd": "person climbing: medium skin tone",
- "\ud83e\uddd7\ud83c\udffe": "person climbing: medium-dark skin tone",
- "\ud83e\uddd7\ud83c\udfff": "person climbing: dark skin tone",
- "\ud83e\uddd8": "person in lotus position",
- "\ud83e\uddd8\ud83c\udffb": "person in lotus position: light skin tone",
- "\ud83e\uddd8\ud83c\udffc": "person in lotus position: medium-light skin tone",
- "\ud83e\uddd8\ud83c\udffd": "person in lotus position: medium skin tone",
- "\ud83e\uddd8\ud83c\udffe": "person in lotus position: medium-dark skin tone",
- "\ud83e\uddd8\ud83c\udfff": "person in lotus position: dark skin tone",
- "\ud83e\uddd9": "mage",
- "\ud83e\uddd9\ud83c\udffb": "mage: light skin tone",
- "\ud83e\uddd9\ud83c\udffc": "mage: medium-light skin tone",
- "\ud83e\uddd9\ud83c\udffd": "mage: medium skin tone",
- "\ud83e\uddd9\ud83c\udffe": "mage: medium-dark skin tone",
- "\ud83e\uddd9\ud83c\udfff": "mage: dark skin tone",
- "\ud83e\uddda": "fairy",
- "\ud83e\uddda\ud83c\udffb": "fairy: light skin tone",
- "\ud83e\uddda\ud83c\udffc": "fairy: medium-light skin tone",
- "\ud83e\uddda\ud83c\udffd": "fairy: medium skin tone",
- "\ud83e\uddda\ud83c\udffe": "fairy: medium-dark skin tone",
- "\ud83e\uddda\ud83c\udfff": "fairy: dark skin tone",
- "\ud83e\udddb": "vampire",
- "\ud83e\udddb\ud83c\udffb": "vampire: light skin tone",
- "\ud83e\udddb\ud83c\udffc": "vampire: medium-light skin tone",
- "\ud83e\udddb\ud83c\udffd": "vampire: medium skin tone",
- "\ud83e\udddb\ud83c\udffe": "vampire: medium-dark skin tone",
- "\ud83e\udddb\ud83c\udfff": "vampire: dark skin tone",
- "\ud83e\udddc": "merperson",
- "\ud83e\udddc\ud83c\udffb": "merperson: light skin tone",
- "\ud83e\udddc\ud83c\udffc": "merperson: medium-light skin tone",
- "\ud83e\udddc\ud83c\udffd": "merperson: medium skin tone",
- "\ud83e\udddc\ud83c\udffe": "merperson: medium-dark skin tone",
- "\ud83e\udddc\ud83c\udfff": "merperson: dark skin tone",
- "\ud83e\udddd": "elf",
- "\ud83e\udddd\ud83c\udffb": "elf: light skin tone",
- "\ud83e\udddd\ud83c\udffc": "elf: medium-light skin tone",
- "\ud83e\udddd\ud83c\udffd": "elf: medium skin tone",
- "\ud83e\udddd\ud83c\udffe": "elf: medium-dark skin tone",
- "\ud83e\udddd\ud83c\udfff": "elf: dark skin tone",
- "\ud83e\uddde": "genie",
- "\ud83e\udddf": "zombie",
- "\ud83e\udde0": "brain",
- "\ud83e\udde1": "orange heart",
- "\ud83e\udde2": "billed cap",
- "\ud83e\udde3": "scarf",
- "\ud83e\udde4": "gloves",
- "\ud83e\udde5": "coat",
- "\ud83e\udde6": "socks",
- "\ud83e\udde7": "red envelope",
- "\ud83e\udde8": "firecracker",
- "\ud83e\udde9": "puzzle piece",
- "\ud83e\uddea": "test tube",
- "\ud83e\uddeb": "petri dish",
- "\ud83e\uddec": "dna",
- "\ud83e\udded": "compass",
- "\ud83e\uddee": "abacus",
- "\ud83e\uddef": "fire extinguisher",
- "\ud83e\uddf0": "toolbox",
- "\ud83e\uddf1": "brick",
- "\ud83e\uddf2": "magnet",
- "\ud83e\uddf3": "luggage",
- "\ud83e\uddf4": "lotion bottle",
- "\ud83e\uddf5": "thread",
- "\ud83e\uddf6": "yarn",
- "\ud83e\uddf7": "safety pin",
- "\ud83e\uddf8": "teddy bear",
- "\ud83e\uddf9": "broom",
- "\ud83e\uddfa": "basket",
- "\ud83e\uddfb": "roll of paper",
- "\ud83e\uddfc": "soap",
- "\ud83e\uddfd": "sponge",
- "\ud83e\uddfe": "receipt",
- "\ud83e\uddff": "nazar amulet",
- "\ud83e\ude70": "ballet shoes",
- "\ud83e\ude71": "one-piece swimsuit",
- "\ud83e\ude72": "briefs",
- "\ud83e\ude73": "shorts",
- "\ud83e\ude74": "thong sandal",
- "\ud83e\ude75": "light blue heart",
- "\ud83e\ude76": "grey heart",
- "\ud83e\ude77": "pink heart",
- "\ud83e\ude78": "drop of blood",
- "\ud83e\ude79": "adhesive bandage",
- "\ud83e\ude7a": "stethoscope",
- "\ud83e\ude7b": "x-ray",
- "\ud83e\ude7c": "crutch",
- "\ud83e\ude80": "yo-yo",
- "\ud83e\ude81": "kite",
- "\ud83e\ude82": "parachute",
- "\ud83e\ude83": "boomerang",
- "\ud83e\ude84": "magic wand",
- "\ud83e\ude85": "pi\u00f1ata",
- "\ud83e\ude86": "nesting dolls",
- "\ud83e\ude87": "maracas",
- "\ud83e\ude88": "flute",
- "\ud83e\ude90": "ringed planet",
- "\ud83e\ude91": "chair",
- "\ud83e\ude92": "razor",
- "\ud83e\ude93": "axe",
- "\ud83e\ude94": "diya lamp",
- "\ud83e\ude95": "banjo",
- "\ud83e\ude96": "military helmet",
- "\ud83e\ude97": "accordion",
- "\ud83e\ude98": "long drum",
- "\ud83e\ude99": "coin",
- "\ud83e\ude9a": "carpentry saw",
- "\ud83e\ude9b": "screwdriver",
- "\ud83e\ude9c": "ladder",
- "\ud83e\ude9d": "hook",
- "\ud83e\ude9e": "mirror",
- "\ud83e\ude9f": "window",
- "\ud83e\udea0": "plunger",
- "\ud83e\udea1": "sewing needle",
- "\ud83e\udea2": "knot",
- "\ud83e\udea3": "bucket",
- "\ud83e\udea4": "mouse trap",
- "\ud83e\udea5": "toothbrush",
- "\ud83e\udea6": "headstone",
- "\ud83e\udea7": "placard",
- "\ud83e\udea8": "rock",
- "\ud83e\udea9": "mirror ball",
- "\ud83e\udeaa": "identification card",
- "\ud83e\udeab": "low battery",
- "\ud83e\udeac": "hamsa",
- "\ud83e\udead": "folding hand fan",
- "\ud83e\udeae": "hair pick",
- "\ud83e\udeaf": "khanda",
- "\ud83e\udeb0": "fly",
- "\ud83e\udeb1": "worm",
- "\ud83e\udeb2": "beetle",
- "\ud83e\udeb3": "cockroach",
- "\ud83e\udeb4": "potted plant",
- "\ud83e\udeb5": "wood",
- "\ud83e\udeb6": "feather",
- "\ud83e\udeb7": "lotus",
- "\ud83e\udeb8": "coral",
- "\ud83e\udeb9": "empty nest",
- "\ud83e\udeba": "nest with eggs",
- "\ud83e\udebb": "hyacinth",
- "\ud83e\udebc": "jellyfish",
- "\ud83e\udebd": "wing",
- "\ud83e\udebf": "goose",
- "\ud83e\udec0": "anatomical heart",
- "\ud83e\udec1": "lungs",
- "\ud83e\udec2": "people hugging",
- "\ud83e\udec3": "pregnant man",
- "\ud83e\udec3\ud83c\udffb": "pregnant man: light skin tone",
- "\ud83e\udec3\ud83c\udffc": "pregnant man: medium-light skin tone",
- "\ud83e\udec3\ud83c\udffd": "pregnant man: medium skin tone",
- "\ud83e\udec3\ud83c\udffe": "pregnant man: medium-dark skin tone",
- "\ud83e\udec3\ud83c\udfff": "pregnant man: dark skin tone",
- "\ud83e\udec4": "pregnant person",
- "\ud83e\udec4\ud83c\udffb": "pregnant person: light skin tone",
- "\ud83e\udec4\ud83c\udffc": "pregnant person: medium-light skin tone",
- "\ud83e\udec4\ud83c\udffd": "pregnant person: medium skin tone",
- "\ud83e\udec4\ud83c\udffe": "pregnant person: medium-dark skin tone",
- "\ud83e\udec4\ud83c\udfff": "pregnant person: dark skin tone",
- "\ud83e\udec5": "person with crown",
- "\ud83e\udec5\ud83c\udffb": "person with crown: light skin tone",
- "\ud83e\udec5\ud83c\udffc": "person with crown: medium-light skin tone",
- "\ud83e\udec5\ud83c\udffd": "person with crown: medium skin tone",
- "\ud83e\udec5\ud83c\udffe": "person with crown: medium-dark skin tone",
- "\ud83e\udec5\ud83c\udfff": "person with crown: dark skin tone",
- "\ud83e\udece": "moose",
- "\ud83e\udecf": "donkey",
- "\ud83e\uded0": "blueberries",
- "\ud83e\uded1": "bell pepper",
- "\ud83e\uded2": "olive",
- "\ud83e\uded3": "flatbread",
- "\ud83e\uded4": "tamale",
- "\ud83e\uded5": "fondue",
- "\ud83e\uded6": "teapot",
- "\ud83e\uded7": "pouring liquid",
- "\ud83e\uded8": "beans",
- "\ud83e\uded9": "jar",
- "\ud83e\udeda": "ginger root",
- "\ud83e\udedb": "pea pod",
- "\ud83e\udee0": "melting face",
- "\ud83e\udee1": "saluting face",
- "\ud83e\udee2": "face with open eyes and hand over mouth",
- "\ud83e\udee3": "face with peeking eye",
- "\ud83e\udee4": "face with diagonal mouth",
- "\ud83e\udee5": "dotted line face",
- "\ud83e\udee6": "biting lip",
- "\ud83e\udee7": "bubbles",
- "\ud83e\udee8": "shaking face",
- "\ud83e\udef0": "hand with index finger and thumb crossed",
- "\ud83e\udef0\ud83c\udffb": "hand with index finger and thumb crossed: light skin tone",
- "\ud83e\udef0\ud83c\udffc": "hand with index finger and thumb crossed: medium-light skin tone",
- "\ud83e\udef0\ud83c\udffd": "hand with index finger and thumb crossed: medium skin tone",
- "\ud83e\udef0\ud83c\udffe": "hand with index finger and thumb crossed: medium-dark skin tone",
- "\ud83e\udef0\ud83c\udfff": "hand with index finger and thumb crossed: dark skin tone",
- "\ud83e\udef1": "rightwards hand",
- "\ud83e\udef1\ud83c\udffb": "rightwards hand: light skin tone",
- "\ud83e\udef1\ud83c\udffc": "rightwards hand: medium-light skin tone",
- "\ud83e\udef1\ud83c\udffd": "rightwards hand: medium skin tone",
- "\ud83e\udef1\ud83c\udffe": "rightwards hand: medium-dark skin tone",
- "\ud83e\udef1\ud83c\udfff": "rightwards hand: dark skin tone",
- "\ud83e\udef2": "leftwards hand",
- "\ud83e\udef2\ud83c\udffb": "leftwards hand: light skin tone",
- "\ud83e\udef2\ud83c\udffc": "leftwards hand: medium-light skin tone",
- "\ud83e\udef2\ud83c\udffd": "leftwards hand: medium skin tone",
- "\ud83e\udef2\ud83c\udffe": "leftwards hand: medium-dark skin tone",
- "\ud83e\udef2\ud83c\udfff": "leftwards hand: dark skin tone",
- "\ud83e\udef3": "palm down hand",
- "\ud83e\udef3\ud83c\udffb": "palm down hand: light skin tone",
- "\ud83e\udef3\ud83c\udffc": "palm down hand: medium-light skin tone",
- "\ud83e\udef3\ud83c\udffd": "palm down hand: medium skin tone",
- "\ud83e\udef3\ud83c\udffe": "palm down hand: medium-dark skin tone",
- "\ud83e\udef3\ud83c\udfff": "palm down hand: dark skin tone",
- "\ud83e\udef4": "palm up hand",
- "\ud83e\udef4\ud83c\udffb": "palm up hand: light skin tone",
- "\ud83e\udef4\ud83c\udffc": "palm up hand: medium-light skin tone",
- "\ud83e\udef4\ud83c\udffd": "palm up hand: medium skin tone",
- "\ud83e\udef4\ud83c\udffe": "palm up hand: medium-dark skin tone",
- "\ud83e\udef4\ud83c\udfff": "palm up hand: dark skin tone",
- "\ud83e\udef5": "index pointing at the viewer",
- "\ud83e\udef5\ud83c\udffb": "index pointing at the viewer: light skin tone",
- "\ud83e\udef5\ud83c\udffc": "index pointing at the viewer: medium-light skin tone",
- "\ud83e\udef5\ud83c\udffd": "index pointing at the viewer: medium skin tone",
- "\ud83e\udef5\ud83c\udffe": "index pointing at the viewer: medium-dark skin tone",
- "\ud83e\udef5\ud83c\udfff": "index pointing at the viewer: dark skin tone",
- "\ud83e\udef6": "heart hands",
- "\ud83e\udef6\ud83c\udffb": "heart hands: light skin tone",
- "\ud83e\udef6\ud83c\udffc": "heart hands: medium-light skin tone",
- "\ud83e\udef6\ud83c\udffd": "heart hands: medium skin tone",
- "\ud83e\udef6\ud83c\udffe": "heart hands: medium-dark skin tone",
- "\ud83e\udef6\ud83c\udfff": "heart hands: dark skin tone",
- "\ud83e\udef7": "leftwards pushing hand",
- "\ud83e\udef7\ud83c\udffb": "leftwards pushing hand: light skin tone",
- "\ud83e\udef7\ud83c\udffc": "leftwards pushing hand: medium-light skin tone",
- "\ud83e\udef7\ud83c\udffd": "leftwards pushing hand: medium skin tone",
- "\ud83e\udef7\ud83c\udffe": "leftwards pushing hand: medium-dark skin tone",
- "\ud83e\udef7\ud83c\udfff": "leftwards pushing hand: dark skin tone",
- "\ud83e\udef8": "rightwards pushing hand",
- "\ud83e\udef8\ud83c\udffb": "rightwards pushing hand: light skin tone",
- "\ud83e\udef8\ud83c\udffc": "rightwards pushing hand: medium-light skin tone",
- "\ud83e\udef8\ud83c\udffd": "rightwards pushing hand: medium skin tone",
- "\ud83e\udef8\ud83c\udffe": "rightwards pushing hand: medium-dark skin tone",
- "\ud83e\udef8\ud83c\udfff": "rightwards pushing hand: dark skin tone"
-}
diff --git a/src/typescript/sdk/src/emoji_data/symbol-emojis.ts b/src/typescript/sdk/src/emoji_data/symbol-emojis.ts
new file mode 100644
index 000000000..0d16c52bf
--- /dev/null
+++ b/src/typescript/sdk/src/emoji_data/symbol-emojis.ts
@@ -0,0 +1,2308 @@
+// cspell:disable
+
+export const SYMBOL_EMOJIS = {
+ "🥇": "1st place medal",
+ "🥈": "2nd place medal",
+ "🥉": "3rd place medal",
+ "🅰️": "A button (blood type)",
+ "🆎": "AB button (blood type)",
+ "🏧": "ATM sign",
+ "♒": "Aquarius",
+ "♈": "Aries",
+ "🅱️": "B button (blood type)",
+ "🔙": "BACK arrow",
+ "🆑": "CL button",
+ "🆒": "COOL button",
+ "♋": "Cancer",
+ "♑": "Capricorn",
+ "🎄": "Christmas tree",
+ "🔚": "END arrow",
+ "🆓": "FREE button",
+ "♊": "Gemini",
+ "🆔": "ID button",
+ "🉑": 'Japanese "acceptable" button',
+ "🈸": 'Japanese "application" button',
+ "🉐": 'Japanese "bargain" button',
+ "㊗️": 'Japanese "congratulations" button',
+ "🈹": 'Japanese "discount" button',
+ "🈚": 'Japanese "free of charge" button',
+ "🈁": 'Japanese "here" button',
+ "🈷️": 'Japanese "monthly amount" button',
+ "🈵": 'Japanese "no vacancy" button',
+ "🈶": 'Japanese "not free of charge" button',
+ "🈺": 'Japanese "open for business" button',
+ "🈴": 'Japanese "passing grade" button',
+ "🈲": 'Japanese "prohibited" button',
+ "🈯": 'Japanese "reserved" button',
+ "㊙️": 'Japanese "secret" button',
+ "🈂️": 'Japanese "service charge" button',
+ "🈳": 'Japanese "vacancy" button',
+ "🏯": "Japanese castle",
+ "🎎": "Japanese dolls",
+ "🏣": "Japanese post office",
+ "🔰": "Japanese symbol for beginner",
+ "♌": "Leo",
+ "♎": "Libra",
+ "🤶": "Mrs. Claus",
+ "🤶🏿": "Mrs. Claus: dark skin tone",
+ "🤶🏻": "Mrs. Claus: light skin tone",
+ "🤶🏽": "Mrs. Claus: medium skin tone",
+ "🤶🏾": "Mrs. Claus: medium-dark skin tone",
+ "🤶🏼": "Mrs. Claus: medium-light skin tone",
+ "🆕": "NEW button",
+ "🆖": "NG button",
+ "🅾️": "O button (blood type)",
+ "🆗": "OK button",
+ "👌": "OK hand",
+ "👌🏿": "OK hand: dark skin tone",
+ "👌🏻": "OK hand: light skin tone",
+ "👌🏽": "OK hand: medium skin tone",
+ "👌🏾": "OK hand: medium-dark skin tone",
+ "👌🏼": "OK hand: medium-light skin tone",
+ "🔛": "ON! arrow",
+ "⛎": "Ophiuchus",
+ "🅿️": "P button",
+ "♓": "Pisces",
+ "🔜": "SOON arrow",
+ "🆘": "SOS button",
+ "♐": "Sagittarius",
+ "🎅": "Santa Claus",
+ "🎅🏿": "Santa Claus: dark skin tone",
+ "🎅🏻": "Santa Claus: light skin tone",
+ "🎅🏽": "Santa Claus: medium skin tone",
+ "🎅🏾": "Santa Claus: medium-dark skin tone",
+ "🎅🏼": "Santa Claus: medium-light skin tone",
+ "♏": "Scorpio",
+ "🗽": "Statue of Liberty",
+ "🦖": "T-Rex",
+ "🔝": "TOP arrow",
+ "♉": "Taurus",
+ "🗼": "Tokyo tower",
+ "🆙": "UP! button",
+ "🆚": "VS button",
+ "♍": "Virgo",
+ "💤": "ZZZ",
+ "🧮": "abacus",
+ "🪗": "accordion",
+ "🩹": "adhesive bandage",
+ "🎟️": "admission tickets",
+ "🚡": "aerial tramway",
+ "✈️": "airplane",
+ "🛬": "airplane arrival",
+ "🛫": "airplane departure",
+ "⏰": "alarm clock",
+ "⚗️": "alembic",
+ "👽": "alien",
+ "👾": "alien monster",
+ "🚑": "ambulance",
+ "🏈": "american football",
+ "🏺": "amphora",
+ "🫀": "anatomical heart",
+ "⚓": "anchor",
+ "💢": "anger symbol",
+ "😠": "angry face",
+ "👿": "angry face with horns",
+ "😧": "anguished face",
+ "🐜": "ant",
+ "📶": "antenna bars",
+ "😰": "anxious face with sweat",
+ "🚛": "articulated lorry",
+ "🎨": "artist palette",
+ "😲": "astonished face",
+ "⚛️": "atom symbol",
+ "🛺": "auto rickshaw",
+ "🚗": "automobile",
+ "🥑": "avocado",
+ "🪓": "axe",
+ "👶": "baby",
+ "👼": "baby angel",
+ "👼🏿": "baby angel: dark skin tone",
+ "👼🏻": "baby angel: light skin tone",
+ "👼🏽": "baby angel: medium skin tone",
+ "👼🏾": "baby angel: medium-dark skin tone",
+ "👼🏼": "baby angel: medium-light skin tone",
+ "🍼": "baby bottle",
+ "🐤": "baby chick",
+ "🚼": "baby symbol",
+ "👶🏿": "baby: dark skin tone",
+ "👶🏻": "baby: light skin tone",
+ "👶🏽": "baby: medium skin tone",
+ "👶🏾": "baby: medium-dark skin tone",
+ "👶🏼": "baby: medium-light skin tone",
+ "👇": "backhand index pointing down",
+ "👇🏿": "backhand index pointing down: dark skin tone",
+ "👇🏻": "backhand index pointing down: light skin tone",
+ "👇🏽": "backhand index pointing down: medium skin tone",
+ "👇🏾": "backhand index pointing down: medium-dark skin tone",
+ "👇🏼": "backhand index pointing down: medium-light skin tone",
+ "👈": "backhand index pointing left",
+ "👈🏿": "backhand index pointing left: dark skin tone",
+ "👈🏻": "backhand index pointing left: light skin tone",
+ "👈🏽": "backhand index pointing left: medium skin tone",
+ "👈🏾": "backhand index pointing left: medium-dark skin tone",
+ "👈🏼": "backhand index pointing left: medium-light skin tone",
+ "👉": "backhand index pointing right",
+ "👉🏿": "backhand index pointing right: dark skin tone",
+ "👉🏻": "backhand index pointing right: light skin tone",
+ "👉🏽": "backhand index pointing right: medium skin tone",
+ "👉🏾": "backhand index pointing right: medium-dark skin tone",
+ "👉🏼": "backhand index pointing right: medium-light skin tone",
+ "👆": "backhand index pointing up",
+ "👆🏿": "backhand index pointing up: dark skin tone",
+ "👆🏻": "backhand index pointing up: light skin tone",
+ "👆🏽": "backhand index pointing up: medium skin tone",
+ "👆🏾": "backhand index pointing up: medium-dark skin tone",
+ "👆🏼": "backhand index pointing up: medium-light skin tone",
+ "🎒": "backpack",
+ "🥓": "bacon",
+ "🦡": "badger",
+ "🏸": "badminton",
+ "🥯": "bagel",
+ "🛄": "baggage claim",
+ "🥖": "baguette bread",
+ "⚖️": "balance scale",
+ "🩰": "ballet shoes",
+ "🎈": "balloon",
+ "🗳️": "ballot box with ballot",
+ "🍌": "banana",
+ "🪕": "banjo",
+ "🏦": "bank",
+ "📊": "bar chart",
+ "💈": "barber pole",
+ "⚾": "baseball",
+ "🧺": "basket",
+ "🏀": "basketball",
+ "🦇": "bat",
+ "🛁": "bathtub",
+ "🔋": "battery",
+ "🏖️": "beach with umbrella",
+ "😁": "beaming face with smiling eyes",
+ "🫘": "beans",
+ "🐻": "bear",
+ "💓": "beating heart",
+ "🦫": "beaver",
+ "🛏️": "bed",
+ "🍺": "beer mug",
+ "🪲": "beetle",
+ "🔔": "bell",
+ "🫑": "bell pepper",
+ "🔕": "bell with slash",
+ "🛎️": "bellhop bell",
+ "🍱": "bento box",
+ "🧃": "beverage box",
+ "🚲": "bicycle",
+ "👙": "bikini",
+ "🧢": "billed cap",
+ "☣️": "biohazard",
+ "🐦": "bird",
+ "🎂": "birthday cake",
+ "🦬": "bison",
+ "🫦": "biting lip",
+ "🐦⬛": "black bird",
+ "🐈⬛": "black cat",
+ "⚫": "black circle",
+ "🏴": "black flag",
+ "🖤": "black heart",
+ "⬛": "black large square",
+ "◼️": "black medium square",
+ "◾": "black medium-small square",
+ "✒️": "black nib",
+ "▪️": "black small square",
+ "🔲": "black square button",
+ "🌼": "blossom",
+ "🐡": "blowfish",
+ "📘": "blue book",
+ "🔵": "blue circle",
+ "💙": "blue heart",
+ "🟦": "blue square",
+ "🫐": "blueberries",
+ "🐗": "boar",
+ "💣": "bomb",
+ "🦴": "bone",
+ "🔖": "bookmark",
+ "📑": "bookmark tabs",
+ "📚": "books",
+ "🪃": "boomerang",
+ "🍾": "bottle with popping cork",
+ "💐": "bouquet",
+ "🏹": "bow and arrow",
+ "🥣": "bowl with spoon",
+ "🎳": "bowling",
+ "🥊": "boxing glove",
+ "👦": "boy",
+ "👦🏿": "boy: dark skin tone",
+ "👦🏻": "boy: light skin tone",
+ "👦🏽": "boy: medium skin tone",
+ "👦🏾": "boy: medium-dark skin tone",
+ "👦🏼": "boy: medium-light skin tone",
+ "🧠": "brain",
+ "🍞": "bread",
+ "🤱": "breast-feeding",
+ "🤱🏿": "breast-feeding: dark skin tone",
+ "🤱🏻": "breast-feeding: light skin tone",
+ "🤱🏽": "breast-feeding: medium skin tone",
+ "🤱🏾": "breast-feeding: medium-dark skin tone",
+ "🤱🏼": "breast-feeding: medium-light skin tone",
+ "🧱": "brick",
+ "🌉": "bridge at night",
+ "💼": "briefcase",
+ "🩲": "briefs",
+ "🔆": "bright button",
+ "🥦": "broccoli",
+ "💔": "broken heart",
+ "🧹": "broom",
+ "🟤": "brown circle",
+ "🤎": "brown heart",
+ "🟫": "brown square",
+ "🧋": "bubble tea",
+ "🫧": "bubbles",
+ "🪣": "bucket",
+ "🐛": "bug",
+ "🏗️": "building construction",
+ "🚅": "bullet train",
+ "🎯": "bullseye",
+ "🌯": "burrito",
+ "🚌": "bus",
+ "🚏": "bus stop",
+ "👤": "bust in silhouette",
+ "👥": "busts in silhouette",
+ "🧈": "butter",
+ "🦋": "butterfly",
+ "🌵": "cactus",
+ "📅": "calendar",
+ "🤙": "call me hand",
+ "🤙🏿": "call me hand: dark skin tone",
+ "🤙🏻": "call me hand: light skin tone",
+ "🤙🏽": "call me hand: medium skin tone",
+ "🤙🏾": "call me hand: medium-dark skin tone",
+ "🤙🏼": "call me hand: medium-light skin tone",
+ "🐪": "camel",
+ "📷": "camera",
+ "📸": "camera with flash",
+ "🏕️": "camping",
+ "🕯️": "candle",
+ "🍬": "candy",
+ "🥫": "canned food",
+ "🛶": "canoe",
+ "🗃️": "card file box",
+ "📇": "card index",
+ "🗂️": "card index dividers",
+ "🎠": "carousel horse",
+ "🎏": "carp streamer",
+ "🪚": "carpentry saw",
+ "🥕": "carrot",
+ "🏰": "castle",
+ "🐈": "cat",
+ "🐱": "cat face",
+ "😹": "cat with tears of joy",
+ "😼": "cat with wry smile",
+ "⛓️": "chains",
+ "🪑": "chair",
+ "📉": "chart decreasing",
+ "📈": "chart increasing",
+ "💹": "chart increasing with yen",
+ "☑️": "check box with check",
+ "✔️": "check mark",
+ "✅": "check mark button",
+ "🧀": "cheese wedge",
+ "🏁": "chequered flag",
+ "🍒": "cherries",
+ "🌸": "cherry blossom",
+ "♟️": "chess pawn",
+ "🌰": "chestnut",
+ "🐔": "chicken",
+ "🧒": "child",
+ "🧒🏿": "child: dark skin tone",
+ "🧒🏻": "child: light skin tone",
+ "🧒🏽": "child: medium skin tone",
+ "🧒🏾": "child: medium-dark skin tone",
+ "🧒🏼": "child: medium-light skin tone",
+ "🚸": "children crossing",
+ "🐿️": "chipmunk",
+ "🍫": "chocolate bar",
+ "🥢": "chopsticks",
+ "⛪": "church",
+ "🚬": "cigarette",
+ "🎦": "cinema",
+ "Ⓜ️": "circled M",
+ "🎪": "circus tent",
+ "🏙️": "cityscape",
+ "🌆": "cityscape at dusk",
+ "🗜️": "clamp",
+ "🎬": "clapper board",
+ "👏": "clapping hands",
+ "👏🏿": "clapping hands: dark skin tone",
+ "👏🏻": "clapping hands: light skin tone",
+ "👏🏽": "clapping hands: medium skin tone",
+ "👏🏾": "clapping hands: medium-dark skin tone",
+ "👏🏼": "clapping hands: medium-light skin tone",
+ "🏛️": "classical building",
+ "🍻": "clinking beer mugs",
+ "🥂": "clinking glasses",
+ "📋": "clipboard",
+ "🔃": "clockwise vertical arrows",
+ "📕": "closed book",
+ "📪": "closed mailbox with lowered flag",
+ "📫": "closed mailbox with raised flag",
+ "🌂": "closed umbrella",
+ "☁️": "cloud",
+ "🌩️": "cloud with lightning",
+ "⛈️": "cloud with lightning and rain",
+ "🌧️": "cloud with rain",
+ "🌨️": "cloud with snow",
+ "🤡": "clown face",
+ "♣️": "club suit",
+ "👝": "clutch bag",
+ "🧥": "coat",
+ "🪳": "cockroach",
+ "🍸": "cocktail glass",
+ "🥥": "coconut",
+ "⚰️": "coffin",
+ "🪙": "coin",
+ "🥶": "cold face",
+ "💥": "collision",
+ "☄️": "comet",
+ "🧭": "compass",
+ "💽": "computer disk",
+ "🖱️": "computer mouse",
+ "🎊": "confetti ball",
+ "😖": "confounded face",
+ "😕": "confused face",
+ "🚧": "construction",
+ "👷": "construction worker",
+ "👷🏿": "construction worker: dark skin tone",
+ "👷🏻": "construction worker: light skin tone",
+ "👷🏽": "construction worker: medium skin tone",
+ "👷🏾": "construction worker: medium-dark skin tone",
+ "👷🏼": "construction worker: medium-light skin tone",
+ "🎛️": "control knobs",
+ "🏪": "convenience store",
+ "🍚": "cooked rice",
+ "🍪": "cookie",
+ "🍳": "cooking",
+ "©️": "copyright",
+ "🪸": "coral",
+ "🛋️": "couch and lamp",
+ "🔄": "counterclockwise arrows button",
+ "💑": "couple with heart",
+ "💑🏿": "couple with heart: dark skin tone",
+ "💑🏻": "couple with heart: light skin tone",
+ "💑🏽": "couple with heart: medium skin tone",
+ "💑🏾": "couple with heart: medium-dark skin tone",
+ "💑🏼": "couple with heart: medium-light skin tone",
+ "🐄": "cow",
+ "🐮": "cow face",
+ "🤠": "cowboy hat face",
+ "🦀": "crab",
+ "🖍️": "crayon",
+ "💳": "credit card",
+ "🌙": "crescent moon",
+ "🦗": "cricket",
+ "🏏": "cricket game",
+ "🐊": "crocodile",
+ "🥐": "croissant",
+ "❌": "cross mark",
+ "❎": "cross mark button",
+ "🤞": "crossed fingers",
+ "🤞🏿": "crossed fingers: dark skin tone",
+ "🤞🏻": "crossed fingers: light skin tone",
+ "🤞🏽": "crossed fingers: medium skin tone",
+ "🤞🏾": "crossed fingers: medium-dark skin tone",
+ "🤞🏼": "crossed fingers: medium-light skin tone",
+ "🎌": "crossed flags",
+ "⚔️": "crossed swords",
+ "👑": "crown",
+ "🩼": "crutch",
+ "😿": "crying cat",
+ "😢": "crying face",
+ "🔮": "crystal ball",
+ "🥒": "cucumber",
+ "🥤": "cup with straw",
+ "🧁": "cupcake",
+ "🥌": "curling stone",
+ "➰": "curly loop",
+ "💱": "currency exchange",
+ "🍛": "curry rice",
+ "🍮": "custard",
+ "🛃": "customs",
+ "🥩": "cut of meat",
+ "🌀": "cyclone",
+ "🗡️": "dagger",
+ "🍡": "dango",
+ "💨": "dashing away",
+ "🧏": "deaf person",
+ "🧏🏿": "deaf person: dark skin tone",
+ "🧏🏻": "deaf person: light skin tone",
+ "🧏🏽": "deaf person: medium skin tone",
+ "🧏🏾": "deaf person: medium-dark skin tone",
+ "🧏🏼": "deaf person: medium-light skin tone",
+ "🌳": "deciduous tree",
+ "🦌": "deer",
+ "🚚": "delivery truck",
+ "🏬": "department store",
+ "🏚️": "derelict house",
+ "🏜️": "desert",
+ "🏝️": "desert island",
+ "🖥️": "desktop computer",
+ "🕵️": "detective",
+ "🕵🏿": "detective: dark skin tone",
+ "🕵🏻": "detective: light skin tone",
+ "🕵🏽": "detective: medium skin tone",
+ "🕵🏾": "detective: medium-dark skin tone",
+ "🕵🏼": "detective: medium-light skin tone",
+ "♦️": "diamond suit",
+ "💠": "diamond with a dot",
+ "🔅": "dim button",
+ "😞": "disappointed face",
+ "🥸": "disguised face",
+ "➗": "divide",
+ "🤿": "diving mask",
+ "🪔": "diya lamp",
+ "💫": "dizzy",
+ "🧬": "dna",
+ "🦤": "dodo",
+ "🐕": "dog",
+ "🐶": "dog face",
+ "💵": "dollar banknote",
+ "🐬": "dolphin",
+ "🫏": "donkey",
+ "🚪": "door",
+ "🫥": "dotted line face",
+ "🔯": "dotted six-pointed star",
+ "➿": "double curly loop",
+ "‼️": "double exclamation mark",
+ "🍩": "doughnut",
+ "🕊️": "dove",
+ "⬇️": "down arrow",
+ "↙️": "down-left arrow",
+ "↘️": "down-right arrow",
+ "😓": "downcast face with sweat",
+ "🔽": "downwards button",
+ "🐉": "dragon",
+ "🐲": "dragon face",
+ "👗": "dress",
+ "🤤": "drooling face",
+ "🩸": "drop of blood",
+ "💧": "droplet",
+ "🥁": "drum",
+ "🦆": "duck",
+ "🥟": "dumpling",
+ "📀": "dvd",
+ "📧": "e-mail",
+ "🦅": "eagle",
+ "👂": "ear",
+ "🌽": "ear of corn",
+ "🦻": "ear with hearing aid",
+ "🦻🏿": "ear with hearing aid: dark skin tone",
+ "🦻🏻": "ear with hearing aid: light skin tone",
+ "🦻🏽": "ear with hearing aid: medium skin tone",
+ "🦻🏾": "ear with hearing aid: medium-dark skin tone",
+ "🦻🏼": "ear with hearing aid: medium-light skin tone",
+ "👂🏿": "ear: dark skin tone",
+ "👂🏻": "ear: light skin tone",
+ "👂🏽": "ear: medium skin tone",
+ "👂🏾": "ear: medium-dark skin tone",
+ "👂🏼": "ear: medium-light skin tone",
+ "🥚": "egg",
+ "🍆": "eggplant",
+ "🕗": "eight o'clock",
+ "✴️": "eight-pointed star",
+ "✳️": "eight-spoked asterisk",
+ "🕣": "eight-thirty",
+ "⏏️": "eject button",
+ "🔌": "electric plug",
+ "🐘": "elephant",
+ "🛗": "elevator",
+ "🕚": "eleven o'clock",
+ "🕦": "eleven-thirty",
+ "🧝": "elf",
+ "🧝🏿": "elf: dark skin tone",
+ "🧝🏻": "elf: light skin tone",
+ "🧝🏽": "elf: medium skin tone",
+ "🧝🏾": "elf: medium-dark skin tone",
+ "🧝🏼": "elf: medium-light skin tone",
+ "🪹": "empty nest",
+ "😡": "enraged face",
+ "✉️": "envelope",
+ "📩": "envelope with arrow",
+ "💶": "euro banknote",
+ "🌲": "evergreen tree",
+ "🐑": "ewe",
+ "⁉️": "exclamation question mark",
+ "🤯": "exploding head",
+ "😑": "expressionless face",
+ "👁️": "eye",
+ "👀": "eyes",
+ "😘": "face blowing a kiss",
+ "🥹": "face holding back tears",
+ "😋": "face savoring food",
+ "😱": "face screaming in fear",
+ "🤮": "face vomiting",
+ "😵": "face with crossed-out eyes",
+ "🫤": "face with diagonal mouth",
+ "🤭": "face with hand over mouth",
+ "🤕": "face with head-bandage",
+ "😷": "face with medical mask",
+ "🧐": "face with monocle",
+ "🫢": "face with open eyes and hand over mouth",
+ "😮": "face with open mouth",
+ "🫣": "face with peeking eye",
+ "🤨": "face with raised eyebrow",
+ "🙄": "face with rolling eyes",
+ "😤": "face with steam from nose",
+ "🤬": "face with symbols on mouth",
+ "😂": "face with tears of joy",
+ "🤒": "face with thermometer",
+ "😛": "face with tongue",
+ "😶": "face without mouth",
+ "🏭": "factory",
+ "🧚": "fairy",
+ "🧚🏿": "fairy: dark skin tone",
+ "🧚🏻": "fairy: light skin tone",
+ "🧚🏽": "fairy: medium skin tone",
+ "🧚🏾": "fairy: medium-dark skin tone",
+ "🧚🏼": "fairy: medium-light skin tone",
+ "🧆": "falafel",
+ "🍂": "fallen leaf",
+ "👪": "family",
+ "⏬": "fast down button",
+ "⏪": "fast reverse button",
+ "⏫": "fast up button",
+ "⏩": "fast-forward button",
+ "📠": "fax machine",
+ "😨": "fearful face",
+ "🪶": "feather",
+ "♀️": "female sign",
+ "🎡": "ferris wheel",
+ "⛴️": "ferry",
+ "🏑": "field hockey",
+ "🗄️": "file cabinet",
+ "📁": "file folder",
+ "🎞️": "film frames",
+ "📽️": "film projector",
+ "🔥": "fire",
+ "🚒": "fire engine",
+ "🧯": "fire extinguisher",
+ "🧨": "firecracker",
+ "🎆": "fireworks",
+ "🌓": "first quarter moon",
+ "🌛": "first quarter moon face",
+ "🐟": "fish",
+ "🍥": "fish cake with swirl",
+ "🎣": "fishing pole",
+ "🕔": "five o'clock",
+ "🕠": "five-thirty",
+ "⛳": "flag in hole",
+ "🇦🇫": "flag: Afghanistan",
+ "🇦🇱": "flag: Albania",
+ "🇩🇿": "flag: Algeria",
+ "🇦🇸": "flag: American Samoa",
+ "🇦🇩": "flag: Andorra",
+ "🇦🇴": "flag: Angola",
+ "🇦🇮": "flag: Anguilla",
+ "🇦🇶": "flag: Antarctica",
+ "🇦🇬": "flag: Antigua & Barbuda",
+ "🇦🇷": "flag: Argentina",
+ "🇦🇲": "flag: Armenia",
+ "🇦🇼": "flag: Aruba",
+ "🇦🇨": "flag: Ascension Island",
+ "🇦🇺": "flag: Australia",
+ "🇦🇹": "flag: Austria",
+ "🇦🇿": "flag: Azerbaijan",
+ "🇧🇸": "flag: Bahamas",
+ "🇧🇭": "flag: Bahrain",
+ "🇧🇩": "flag: Bangladesh",
+ "🇧🇧": "flag: Barbados",
+ "🇧🇾": "flag: Belarus",
+ "🇧🇪": "flag: Belgium",
+ "🇧🇿": "flag: Belize",
+ "🇧🇯": "flag: Benin",
+ "🇧🇲": "flag: Bermuda",
+ "🇧🇹": "flag: Bhutan",
+ "🇧🇴": "flag: Bolivia",
+ "🇧🇦": "flag: Bosnia & Herzegovina",
+ "🇧🇼": "flag: Botswana",
+ "🇧🇻": "flag: Bouvet Island",
+ "🇧🇷": "flag: Brazil",
+ "🇮🇴": "flag: British Indian Ocean Territory",
+ "🇻🇬": "flag: British Virgin Islands",
+ "🇧🇳": "flag: Brunei",
+ "🇧🇬": "flag: Bulgaria",
+ "🇧🇫": "flag: Burkina Faso",
+ "🇧🇮": "flag: Burundi",
+ "🇰🇭": "flag: Cambodia",
+ "🇨🇲": "flag: Cameroon",
+ "🇨🇦": "flag: Canada",
+ "🇮🇨": "flag: Canary Islands",
+ "🇨🇻": "flag: Cape Verde",
+ "🇧🇶": "flag: Caribbean Netherlands",
+ "🇰🇾": "flag: Cayman Islands",
+ "🇨🇫": "flag: Central African Republic",
+ "🇪🇦": "flag: Ceuta & Melilla",
+ "🇹🇩": "flag: Chad",
+ "🇨🇱": "flag: Chile",
+ "🇨🇳": "flag: China",
+ "🇨🇽": "flag: Christmas Island",
+ "🇨🇵": "flag: Clipperton Island",
+ "🇨🇨": "flag: Cocos (Keeling) Islands",
+ "🇨🇴": "flag: Colombia",
+ "🇰🇲": "flag: Comoros",
+ "🇨🇬": "flag: Congo - Brazzaville",
+ "🇨🇩": "flag: Congo - Kinshasa",
+ "🇨🇰": "flag: Cook Islands",
+ "🇨🇷": "flag: Costa Rica",
+ "🇭🇷": "flag: Croatia",
+ "🇨🇺": "flag: Cuba",
+ "🇨🇼": "flag: Curaçao",
+ "🇨🇾": "flag: Cyprus",
+ "🇨🇿": "flag: Czechia",
+ "🇨🇮": "flag: Côte d'Ivoire",
+ "🇩🇰": "flag: Denmark",
+ "🇩🇬": "flag: Diego Garcia",
+ "🇩🇯": "flag: Djibouti",
+ "🇩🇲": "flag: Dominica",
+ "🇩🇴": "flag: Dominican Republic",
+ "🇪🇨": "flag: Ecuador",
+ "🇪🇬": "flag: Egypt",
+ "🇸🇻": "flag: El Salvador",
+ "🇬🇶": "flag: Equatorial Guinea",
+ "🇪🇷": "flag: Eritrea",
+ "🇪🇪": "flag: Estonia",
+ "🇸🇿": "flag: Eswatini",
+ "🇪🇹": "flag: Ethiopia",
+ "🇪🇺": "flag: European Union",
+ "🇫🇰": "flag: Falkland Islands",
+ "🇫🇴": "flag: Faroe Islands",
+ "🇫🇯": "flag: Fiji",
+ "🇫🇮": "flag: Finland",
+ "🇫🇷": "flag: France",
+ "🇬🇫": "flag: French Guiana",
+ "🇵🇫": "flag: French Polynesia",
+ "🇹🇫": "flag: French Southern Territories",
+ "🇬🇦": "flag: Gabon",
+ "🇬🇲": "flag: Gambia",
+ "🇬🇪": "flag: Georgia",
+ "🇩🇪": "flag: Germany",
+ "🇬🇭": "flag: Ghana",
+ "🇬🇮": "flag: Gibraltar",
+ "🇬🇷": "flag: Greece",
+ "🇬🇱": "flag: Greenland",
+ "🇬🇩": "flag: Grenada",
+ "🇬🇵": "flag: Guadeloupe",
+ "🇬🇺": "flag: Guam",
+ "🇬🇹": "flag: Guatemala",
+ "🇬🇬": "flag: Guernsey",
+ "🇬🇳": "flag: Guinea",
+ "🇬🇼": "flag: Guinea-Bissau",
+ "🇬🇾": "flag: Guyana",
+ "🇭🇹": "flag: Haiti",
+ "🇭🇲": "flag: Heard & McDonald Islands",
+ "🇭🇳": "flag: Honduras",
+ "🇭🇰": "flag: Hong Kong SAR China",
+ "🇭🇺": "flag: Hungary",
+ "🇮🇸": "flag: Iceland",
+ "🇮🇳": "flag: India",
+ "🇮🇩": "flag: Indonesia",
+ "🇮🇷": "flag: Iran",
+ "🇮🇶": "flag: Iraq",
+ "🇮🇪": "flag: Ireland",
+ "🇮🇲": "flag: Isle of Man",
+ "🇮🇱": "flag: Israel",
+ "🇮🇹": "flag: Italy",
+ "🇯🇲": "flag: Jamaica",
+ "🇯🇵": "flag: Japan",
+ "🇯🇪": "flag: Jersey",
+ "🇯🇴": "flag: Jordan",
+ "🇰🇿": "flag: Kazakhstan",
+ "🇰🇪": "flag: Kenya",
+ "🇰🇮": "flag: Kiribati",
+ "🇽🇰": "flag: Kosovo",
+ "🇰🇼": "flag: Kuwait",
+ "🇰🇬": "flag: Kyrgyzstan",
+ "🇱🇦": "flag: Laos",
+ "🇱🇻": "flag: Latvia",
+ "🇱🇧": "flag: Lebanon",
+ "🇱🇸": "flag: Lesotho",
+ "🇱🇷": "flag: Liberia",
+ "🇱🇾": "flag: Libya",
+ "🇱🇮": "flag: Liechtenstein",
+ "🇱🇹": "flag: Lithuania",
+ "🇱🇺": "flag: Luxembourg",
+ "🇲🇴": "flag: Macao SAR China",
+ "🇲🇬": "flag: Madagascar",
+ "🇲🇼": "flag: Malawi",
+ "🇲🇾": "flag: Malaysia",
+ "🇲🇻": "flag: Maldives",
+ "🇲🇱": "flag: Mali",
+ "🇲🇹": "flag: Malta",
+ "🇲🇭": "flag: Marshall Islands",
+ "🇲🇶": "flag: Martinique",
+ "🇲🇷": "flag: Mauritania",
+ "🇲🇺": "flag: Mauritius",
+ "🇾🇹": "flag: Mayotte",
+ "🇲🇽": "flag: Mexico",
+ "🇫🇲": "flag: Micronesia",
+ "🇲🇩": "flag: Moldova",
+ "🇲🇨": "flag: Monaco",
+ "🇲🇳": "flag: Mongolia",
+ "🇲🇪": "flag: Montenegro",
+ "🇲🇸": "flag: Montserrat",
+ "🇲🇦": "flag: Morocco",
+ "🇲🇿": "flag: Mozambique",
+ "🇲🇲": "flag: Myanmar (Burma)",
+ "🇳🇦": "flag: Namibia",
+ "🇳🇷": "flag: Nauru",
+ "🇳🇵": "flag: Nepal",
+ "🇳🇱": "flag: Netherlands",
+ "🇳🇨": "flag: New Caledonia",
+ "🇳🇿": "flag: New Zealand",
+ "🇳🇮": "flag: Nicaragua",
+ "🇳🇪": "flag: Niger",
+ "🇳🇬": "flag: Nigeria",
+ "🇳🇺": "flag: Niue",
+ "🇳🇫": "flag: Norfolk Island",
+ "🇰🇵": "flag: North Korea",
+ "🇲🇰": "flag: North Macedonia",
+ "🇲🇵": "flag: Northern Mariana Islands",
+ "🇳🇴": "flag: Norway",
+ "🇴🇲": "flag: Oman",
+ "🇵🇰": "flag: Pakistan",
+ "🇵🇼": "flag: Palau",
+ "🇵🇸": "flag: Palestinian Territories",
+ "🇵🇦": "flag: Panama",
+ "🇵🇬": "flag: Papua New Guinea",
+ "🇵🇾": "flag: Paraguay",
+ "🇵🇪": "flag: Peru",
+ "🇵🇭": "flag: Philippines",
+ "🇵🇳": "flag: Pitcairn Islands",
+ "🇵🇱": "flag: Poland",
+ "🇵🇹": "flag: Portugal",
+ "🇵🇷": "flag: Puerto Rico",
+ "🇶🇦": "flag: Qatar",
+ "🇷🇴": "flag: Romania",
+ "🇷🇺": "flag: Russia",
+ "🇷🇼": "flag: Rwanda",
+ "🇷🇪": "flag: Réunion",
+ "🇼🇸": "flag: Samoa",
+ "🇸🇲": "flag: San Marino",
+ "🇸🇦": "flag: Saudi Arabia",
+ "🇸🇳": "flag: Senegal",
+ "🇷🇸": "flag: Serbia",
+ "🇸🇨": "flag: Seychelles",
+ "🇸🇱": "flag: Sierra Leone",
+ "🇸🇬": "flag: Singapore",
+ "🇸🇽": "flag: Sint Maarten",
+ "🇸🇰": "flag: Slovakia",
+ "🇸🇮": "flag: Slovenia",
+ "🇸🇧": "flag: Solomon Islands",
+ "🇸🇴": "flag: Somalia",
+ "🇿🇦": "flag: South Africa",
+ "🇬🇸": "flag: South Georgia & South Sandwich Islands",
+ "🇰🇷": "flag: South Korea",
+ "🇸🇸": "flag: South Sudan",
+ "🇪🇸": "flag: Spain",
+ "🇱🇰": "flag: Sri Lanka",
+ "🇧🇱": "flag: St. Barthélemy",
+ "🇸🇭": "flag: St. Helena",
+ "🇰🇳": "flag: St. Kitts & Nevis",
+ "🇱🇨": "flag: St. Lucia",
+ "🇲🇫": "flag: St. Martin",
+ "🇵🇲": "flag: St. Pierre & Miquelon",
+ "🇻🇨": "flag: St. Vincent & Grenadines",
+ "🇸🇩": "flag: Sudan",
+ "🇸🇷": "flag: Suriname",
+ "🇸🇯": "flag: Svalbard & Jan Mayen",
+ "🇸🇪": "flag: Sweden",
+ "🇨🇭": "flag: Switzerland",
+ "🇸🇾": "flag: Syria",
+ "🇸🇹": "flag: São Tomé & Príncipe",
+ "🇹🇼": "flag: Taiwan",
+ "🇹🇯": "flag: Tajikistan",
+ "🇹🇿": "flag: Tanzania",
+ "🇹🇭": "flag: Thailand",
+ "🇹🇱": "flag: Timor-Leste",
+ "🇹🇬": "flag: Togo",
+ "🇹🇰": "flag: Tokelau",
+ "🇹🇴": "flag: Tonga",
+ "🇹🇹": "flag: Trinidad & Tobago",
+ "🇹🇦": "flag: Tristan da Cunha",
+ "🇹🇳": "flag: Tunisia",
+ "🇹🇲": "flag: Turkmenistan",
+ "🇹🇨": "flag: Turks & Caicos Islands",
+ "🇹🇻": "flag: Tuvalu",
+ "🇹🇷": "flag: Türkiye",
+ "🇺🇲": "flag: U.S. Outlying Islands",
+ "🇻🇮": "flag: U.S. Virgin Islands",
+ "🇺🇬": "flag: Uganda",
+ "🇺🇦": "flag: Ukraine",
+ "🇦🇪": "flag: United Arab Emirates",
+ "🇬🇧": "flag: United Kingdom",
+ "🇺🇳": "flag: United Nations",
+ "🇺🇸": "flag: United States",
+ "🇺🇾": "flag: Uruguay",
+ "🇺🇿": "flag: Uzbekistan",
+ "🇻🇺": "flag: Vanuatu",
+ "🇻🇦": "flag: Vatican City",
+ "🇻🇪": "flag: Venezuela",
+ "🇻🇳": "flag: Vietnam",
+ "🇼🇫": "flag: Wallis & Futuna",
+ "🇪🇭": "flag: Western Sahara",
+ "🇾🇪": "flag: Yemen",
+ "🇿🇲": "flag: Zambia",
+ "🇿🇼": "flag: Zimbabwe",
+ "🇦🇽": "flag: Åland Islands",
+ "🦩": "flamingo",
+ "🔦": "flashlight",
+ "🥿": "flat shoe",
+ "🫓": "flatbread",
+ "⚜️": "fleur-de-lis",
+ "💪": "flexed biceps",
+ "💪🏿": "flexed biceps: dark skin tone",
+ "💪🏻": "flexed biceps: light skin tone",
+ "💪🏽": "flexed biceps: medium skin tone",
+ "💪🏾": "flexed biceps: medium-dark skin tone",
+ "💪🏼": "flexed biceps: medium-light skin tone",
+ "💾": "floppy disk",
+ "🎴": "flower playing cards",
+ "😳": "flushed face",
+ "🪈": "flute",
+ "🪰": "fly",
+ "🥏": "flying disc",
+ "🛸": "flying saucer",
+ "🌫️": "fog",
+ "🌁": "foggy",
+ "🙏": "folded hands",
+ "🙏🏿": "folded hands: dark skin tone",
+ "🙏🏻": "folded hands: light skin tone",
+ "🙏🏽": "folded hands: medium skin tone",
+ "🙏🏾": "folded hands: medium-dark skin tone",
+ "🙏🏼": "folded hands: medium-light skin tone",
+ "🪭": "folding hand fan",
+ "🫕": "fondue",
+ "🦶": "foot",
+ "🦶🏿": "foot: dark skin tone",
+ "🦶🏻": "foot: light skin tone",
+ "🦶🏽": "foot: medium skin tone",
+ "🦶🏾": "foot: medium-dark skin tone",
+ "🦶🏼": "foot: medium-light skin tone",
+ "👣": "footprints",
+ "🍴": "fork and knife",
+ "🍽️": "fork and knife with plate",
+ "🥠": "fortune cookie",
+ "⛲": "fountain",
+ "🖋️": "fountain pen",
+ "🍀": "four leaf clover",
+ "🕓": "four o'clock",
+ "🕟": "four-thirty",
+ "🦊": "fox",
+ "🖼️": "framed picture",
+ "🍟": "french fries",
+ "🍤": "fried shrimp",
+ "🐸": "frog",
+ "🐥": "front-facing baby chick",
+ "☹️": "frowning face",
+ "😦": "frowning face with open mouth",
+ "⛽": "fuel pump",
+ "🌕": "full moon",
+ "🌝": "full moon face",
+ "⚱️": "funeral urn",
+ "🎲": "game die",
+ "🧄": "garlic",
+ "⚙️": "gear",
+ "💎": "gem stone",
+ "🧞": "genie",
+ "👻": "ghost",
+ "🫚": "ginger root",
+ "🦒": "giraffe",
+ "👧": "girl",
+ "👧🏿": "girl: dark skin tone",
+ "👧🏻": "girl: light skin tone",
+ "👧🏽": "girl: medium skin tone",
+ "👧🏾": "girl: medium-dark skin tone",
+ "👧🏼": "girl: medium-light skin tone",
+ "🥛": "glass of milk",
+ "👓": "glasses",
+ "🌎": "globe showing Americas",
+ "🌏": "globe showing Asia-Australia",
+ "🌍": "globe showing Europe-Africa",
+ "🌐": "globe with meridians",
+ "🧤": "gloves",
+ "🌟": "glowing star",
+ "🥅": "goal net",
+ "🐐": "goat",
+ "👺": "goblin",
+ "🥽": "goggles",
+ "🪿": "goose",
+ "🦍": "gorilla",
+ "🎓": "graduation cap",
+ "🍇": "grapes",
+ "🍏": "green apple",
+ "📗": "green book",
+ "🟢": "green circle",
+ "💚": "green heart",
+ "🥗": "green salad",
+ "🟩": "green square",
+ "🩶": "grey heart",
+ "😬": "grimacing face",
+ "😺": "grinning cat",
+ "😸": "grinning cat with smiling eyes",
+ "😀": "grinning face",
+ "😃": "grinning face with big eyes",
+ "😄": "grinning face with smiling eyes",
+ "😅": "grinning face with sweat",
+ "😆": "grinning squinting face",
+ "💗": "growing heart",
+ "💂": "guard",
+ "💂🏿": "guard: dark skin tone",
+ "💂🏻": "guard: light skin tone",
+ "💂🏽": "guard: medium skin tone",
+ "💂🏾": "guard: medium-dark skin tone",
+ "💂🏼": "guard: medium-light skin tone",
+ "🦮": "guide dog",
+ "🎸": "guitar",
+ "🪮": "hair pick",
+ "🍔": "hamburger",
+ "🔨": "hammer",
+ "⚒️": "hammer and pick",
+ "🛠️": "hammer and wrench",
+ "🪬": "hamsa",
+ "🐹": "hamster",
+ "🖐️": "hand with fingers splayed",
+ "🖐🏿": "hand with fingers splayed: dark skin tone",
+ "🖐🏻": "hand with fingers splayed: light skin tone",
+ "🖐🏽": "hand with fingers splayed: medium skin tone",
+ "🖐🏾": "hand with fingers splayed: medium-dark skin tone",
+ "🖐🏼": "hand with fingers splayed: medium-light skin tone",
+ "🫰": "hand with index finger and thumb crossed",
+ "🫰🏿": "hand with index finger and thumb crossed: dark skin tone",
+ "🫰🏻": "hand with index finger and thumb crossed: light skin tone",
+ "🫰🏽": "hand with index finger and thumb crossed: medium skin tone",
+ "🫰🏾": "hand with index finger and thumb crossed: medium-dark skin tone",
+ "🫰🏼": "hand with index finger and thumb crossed: medium-light skin tone",
+ "👜": "handbag",
+ "🤝": "handshake",
+ "🤝🏿": "handshake: dark skin tone",
+ "🤝🏻": "handshake: light skin tone",
+ "🤝🏽": "handshake: medium skin tone",
+ "🤝🏾": "handshake: medium-dark skin tone",
+ "🤝🏼": "handshake: medium-light skin tone",
+ "🐣": "hatching chick",
+ "🎧": "headphone",
+ "🪦": "headstone",
+ "🙉": "hear-no-evil monkey",
+ "💟": "heart decoration",
+ "❣️": "heart exclamation",
+ "🫶": "heart hands",
+ "🫶🏿": "heart hands: dark skin tone",
+ "🫶🏻": "heart hands: light skin tone",
+ "🫶🏽": "heart hands: medium skin tone",
+ "🫶🏾": "heart hands: medium-dark skin tone",
+ "🫶🏼": "heart hands: medium-light skin tone",
+ "♥️": "heart suit",
+ "💘": "heart with arrow",
+ "💝": "heart with ribbon",
+ "💲": "heavy dollar sign",
+ "🟰": "heavy equals sign",
+ "🦔": "hedgehog",
+ "🚁": "helicopter",
+ "🌿": "herb",
+ "🌺": "hibiscus",
+ "⚡": "high voltage",
+ "👠": "high-heeled shoe",
+ "🚄": "high-speed train",
+ "🥾": "hiking boot",
+ "🛕": "hindu temple",
+ "🦛": "hippopotamus",
+ "🕳️": "hole",
+ "⭕": "hollow red circle",
+ "🍯": "honey pot",
+ "🐝": "honeybee",
+ "🪝": "hook",
+ "🚥": "horizontal traffic light",
+ "🐎": "horse",
+ "🐴": "horse face",
+ "🏇": "horse racing",
+ "🏇🏿": "horse racing: dark skin tone",
+ "🏇🏻": "horse racing: light skin tone",
+ "🏇🏽": "horse racing: medium skin tone",
+ "🏇🏾": "horse racing: medium-dark skin tone",
+ "🏇🏼": "horse racing: medium-light skin tone",
+ "🏥": "hospital",
+ "☕": "hot beverage",
+ "🌭": "hot dog",
+ "🥵": "hot face",
+ "🌶️": "hot pepper",
+ "♨️": "hot springs",
+ "🏨": "hotel",
+ "⌛": "hourglass done",
+ "⏳": "hourglass not done",
+ "🏠": "house",
+ "🏡": "house with garden",
+ "🏘️": "houses",
+ "💯": "hundred points",
+ "😯": "hushed face",
+ "🛖": "hut",
+ "🪻": "hyacinth",
+ "🧊": "ice",
+ "🍨": "ice cream",
+ "🏒": "ice hockey",
+ "⛸️": "ice skate",
+ "🪪": "identification card",
+ "📥": "inbox tray",
+ "📨": "incoming envelope",
+ "🫵": "index pointing at the viewer",
+ "🫵🏿": "index pointing at the viewer: dark skin tone",
+ "🫵🏻": "index pointing at the viewer: light skin tone",
+ "🫵🏽": "index pointing at the viewer: medium skin tone",
+ "🫵🏾": "index pointing at the viewer: medium-dark skin tone",
+ "🫵🏼": "index pointing at the viewer: medium-light skin tone",
+ "☝️": "index pointing up",
+ "☝🏿": "index pointing up: dark skin tone",
+ "☝🏻": "index pointing up: light skin tone",
+ "☝🏽": "index pointing up: medium skin tone",
+ "☝🏾": "index pointing up: medium-dark skin tone",
+ "☝🏼": "index pointing up: medium-light skin tone",
+ "♾️": "infinity",
+ ℹ️: "information",
+ "🔤": "input latin letters",
+ "🔡": "input latin lowercase",
+ "🔠": "input latin uppercase",
+ "🔢": "input numbers",
+ "🔣": "input symbols",
+ "🎃": "jack-o-lantern",
+ "🫙": "jar",
+ "👖": "jeans",
+ "🪼": "jellyfish",
+ "🃏": "joker",
+ "🕹️": "joystick",
+ "🕋": "kaaba",
+ "🦘": "kangaroo",
+ "🔑": "key",
+ "⌨️": "keyboard",
+ "#️⃣": "keycap: #",
+ "*️⃣": "keycap: *",
+ "0️⃣": "keycap: 0",
+ "1️⃣": "keycap: 1",
+ "🔟": "keycap: 10",
+ "2️⃣": "keycap: 2",
+ "3️⃣": "keycap: 3",
+ "4️⃣": "keycap: 4",
+ "5️⃣": "keycap: 5",
+ "6️⃣": "keycap: 6",
+ "7️⃣": "keycap: 7",
+ "8️⃣": "keycap: 8",
+ "9️⃣": "keycap: 9",
+ "🪯": "khanda",
+ "🛴": "kick scooter",
+ "👘": "kimono",
+ "💏": "kiss",
+ "💋": "kiss mark",
+ "💏🏿": "kiss: dark skin tone",
+ "💏🏻": "kiss: light skin tone",
+ "💏🏽": "kiss: medium skin tone",
+ "💏🏾": "kiss: medium-dark skin tone",
+ "💏🏼": "kiss: medium-light skin tone",
+ "😽": "kissing cat",
+ "😗": "kissing face",
+ "😚": "kissing face with closed eyes",
+ "😙": "kissing face with smiling eyes",
+ "🔪": "kitchen knife",
+ "🪁": "kite",
+ "🥝": "kiwi fruit",
+ "🪢": "knot",
+ "🐨": "koala",
+ "🥼": "lab coat",
+ "🏷️": "label",
+ "🥍": "lacrosse",
+ "🪜": "ladder",
+ "🐞": "lady beetle",
+ "💻": "laptop",
+ "🔷": "large blue diamond",
+ "🔶": "large orange diamond",
+ "🌗": "last quarter moon",
+ "🌜": "last quarter moon face",
+ "⏮️": "last track button",
+ "✝️": "latin cross",
+ "🍃": "leaf fluttering in wind",
+ "🥬": "leafy green",
+ "📒": "ledger",
+ "⬅️": "left arrow",
+ "↪️": "left arrow curving right",
+ "🛅": "left luggage",
+ "🗨️": "left speech bubble",
+ "🤛": "left-facing fist",
+ "🤛🏿": "left-facing fist: dark skin tone",
+ "🤛🏻": "left-facing fist: light skin tone",
+ "🤛🏽": "left-facing fist: medium skin tone",
+ "🤛🏾": "left-facing fist: medium-dark skin tone",
+ "🤛🏼": "left-facing fist: medium-light skin tone",
+ "↔️": "left-right arrow",
+ "🫲": "leftwards hand",
+ "🫲🏿": "leftwards hand: dark skin tone",
+ "🫲🏻": "leftwards hand: light skin tone",
+ "🫲🏽": "leftwards hand: medium skin tone",
+ "🫲🏾": "leftwards hand: medium-dark skin tone",
+ "🫲🏼": "leftwards hand: medium-light skin tone",
+ "🫷": "leftwards pushing hand",
+ "🫷🏿": "leftwards pushing hand: dark skin tone",
+ "🫷🏻": "leftwards pushing hand: light skin tone",
+ "🫷🏽": "leftwards pushing hand: medium skin tone",
+ "🫷🏾": "leftwards pushing hand: medium-dark skin tone",
+ "🫷🏼": "leftwards pushing hand: medium-light skin tone",
+ "🦵": "leg",
+ "🦵🏿": "leg: dark skin tone",
+ "🦵🏻": "leg: light skin tone",
+ "🦵🏽": "leg: medium skin tone",
+ "🦵🏾": "leg: medium-dark skin tone",
+ "🦵🏼": "leg: medium-light skin tone",
+ "🍋": "lemon",
+ "🐆": "leopard",
+ "🎚️": "level slider",
+ "🩵": "light blue heart",
+ "💡": "light bulb",
+ "🚈": "light rail",
+ "🔗": "link",
+ "🖇️": "linked paperclips",
+ "🦁": "lion",
+ "💄": "lipstick",
+ "🚮": "litter in bin sign",
+ "🦎": "lizard",
+ "🦙": "llama",
+ "🦞": "lobster",
+ "🔒": "locked",
+ "🔐": "locked with key",
+ "🔏": "locked with pen",
+ "🚂": "locomotive",
+ "🍭": "lollipop",
+ "🪘": "long drum",
+ "🧴": "lotion bottle",
+ "🪷": "lotus",
+ "😭": "loudly crying face",
+ "📢": "loudspeaker",
+ "🏩": "love hotel",
+ "💌": "love letter",
+ "🤟": "love-you gesture",
+ "🤟🏿": "love-you gesture: dark skin tone",
+ "🤟🏻": "love-you gesture: light skin tone",
+ "🤟🏽": "love-you gesture: medium skin tone",
+ "🤟🏾": "love-you gesture: medium-dark skin tone",
+ "🤟🏼": "love-you gesture: medium-light skin tone",
+ "🪫": "low battery",
+ "🧳": "luggage",
+ "🫁": "lungs",
+ "🤥": "lying face",
+ "🧙": "mage",
+ "🧙🏿": "mage: dark skin tone",
+ "🧙🏻": "mage: light skin tone",
+ "🧙🏽": "mage: medium skin tone",
+ "🧙🏾": "mage: medium-dark skin tone",
+ "🧙🏼": "mage: medium-light skin tone",
+ "🪄": "magic wand",
+ "🧲": "magnet",
+ "🔍": "magnifying glass tilted left",
+ "🔎": "magnifying glass tilted right",
+ "🀄": "mahjong red dragon",
+ "♂️": "male sign",
+ "🦣": "mammoth",
+ "👨": "man",
+ "🕺": "man dancing",
+ "🕺🏿": "man dancing: dark skin tone",
+ "🕺🏻": "man dancing: light skin tone",
+ "🕺🏽": "man dancing: medium skin tone",
+ "🕺🏾": "man dancing: medium-dark skin tone",
+ "🕺🏼": "man dancing: medium-light skin tone",
+ "👞": "man's shoe",
+ "👨🏿": "man: dark skin tone",
+ "👨🏻": "man: light skin tone",
+ "👨🏽": "man: medium skin tone",
+ "👨🏾": "man: medium-dark skin tone",
+ "👨🏼": "man: medium-light skin tone",
+ "🥭": "mango",
+ "🕰️": "mantelpiece clock",
+ "🦽": "manual wheelchair",
+ "🗾": "map of Japan",
+ "🍁": "maple leaf",
+ "🪇": "maracas",
+ "🥋": "martial arts uniform",
+ "🧉": "mate",
+ "🍖": "meat on bone",
+ "🦾": "mechanical arm",
+ "🦿": "mechanical leg",
+ "⚕️": "medical symbol",
+ "📣": "megaphone",
+ "🍈": "melon",
+ "🫠": "melting face",
+ "📝": "memo",
+ "👬": "men holding hands",
+ "👬🏿": "men holding hands: dark skin tone",
+ "👬🏻": "men holding hands: light skin tone",
+ "👬🏽": "men holding hands: medium skin tone",
+ "👬🏾": "men holding hands: medium-dark skin tone",
+ "👬🏼": "men holding hands: medium-light skin tone",
+ "🚹": "men's room",
+ "🕎": "menorah",
+ "🧜": "merperson",
+ "🧜🏿": "merperson: dark skin tone",
+ "🧜🏻": "merperson: light skin tone",
+ "🧜🏽": "merperson: medium skin tone",
+ "🧜🏾": "merperson: medium-dark skin tone",
+ "🧜🏼": "merperson: medium-light skin tone",
+ "🚇": "metro",
+ "🦠": "microbe",
+ "🎤": "microphone",
+ "🔬": "microscope",
+ "🖕": "middle finger",
+ "🖕🏿": "middle finger: dark skin tone",
+ "🖕🏻": "middle finger: light skin tone",
+ "🖕🏽": "middle finger: medium skin tone",
+ "🖕🏾": "middle finger: medium-dark skin tone",
+ "🖕🏼": "middle finger: medium-light skin tone",
+ "🪖": "military helmet",
+ "🎖️": "military medal",
+ "🌌": "milky way",
+ "🚐": "minibus",
+ "➖": "minus",
+ "🪞": "mirror",
+ "🪩": "mirror ball",
+ "🗿": "moai",
+ "📱": "mobile phone",
+ "📴": "mobile phone off",
+ "📲": "mobile phone with arrow",
+ "💰": "money bag",
+ "💸": "money with wings",
+ "🤑": "money-mouth face",
+ "🐒": "monkey",
+ "🐵": "monkey face",
+ "🚝": "monorail",
+ "🥮": "moon cake",
+ "🎑": "moon viewing ceremony",
+ "🫎": "moose",
+ "🕌": "mosque",
+ "🦟": "mosquito",
+ "🛥️": "motor boat",
+ "🛵": "motor scooter",
+ "🏍️": "motorcycle",
+ "🦼": "motorized wheelchair",
+ "🛣️": "motorway",
+ "🗻": "mount fuji",
+ "⛰️": "mountain",
+ "🚠": "mountain cableway",
+ "🚞": "mountain railway",
+ "🐁": "mouse",
+ "🐭": "mouse face",
+ "🪤": "mouse trap",
+ "👄": "mouth",
+ "🎥": "movie camera",
+ "✖️": "multiply",
+ "🍄": "mushroom",
+ "🎹": "musical keyboard",
+ "🎵": "musical note",
+ "🎶": "musical notes",
+ "🎼": "musical score",
+ "🔇": "muted speaker",
+ "💅": "nail polish",
+ "💅🏿": "nail polish: dark skin tone",
+ "💅🏻": "nail polish: light skin tone",
+ "💅🏽": "nail polish: medium skin tone",
+ "💅🏾": "nail polish: medium-dark skin tone",
+ "💅🏼": "nail polish: medium-light skin tone",
+ "📛": "name badge",
+ "🏞️": "national park",
+ "🤢": "nauseated face",
+ "🧿": "nazar amulet",
+ "👔": "necktie",
+ "🤓": "nerd face",
+ "🪺": "nest with eggs",
+ "🪆": "nesting dolls",
+ "😐": "neutral face",
+ "🌑": "new moon",
+ "🌚": "new moon face",
+ "📰": "newspaper",
+ "⏭️": "next track button",
+ "🌃": "night with stars",
+ "🕘": "nine o'clock",
+ "🕤": "nine-thirty",
+ "🥷": "ninja",
+ "🥷🏿": "ninja: dark skin tone",
+ "🥷🏻": "ninja: light skin tone",
+ "🥷🏽": "ninja: medium skin tone",
+ "🥷🏾": "ninja: medium-dark skin tone",
+ "🥷🏼": "ninja: medium-light skin tone",
+ "🚳": "no bicycles",
+ "⛔": "no entry",
+ "🚯": "no littering",
+ "📵": "no mobile phones",
+ "🔞": "no one under eighteen",
+ "🚷": "no pedestrians",
+ "🚭": "no smoking",
+ "🚱": "non-potable water",
+ "👃": "nose",
+ "👃🏿": "nose: dark skin tone",
+ "👃🏻": "nose: light skin tone",
+ "👃🏽": "nose: medium skin tone",
+ "👃🏾": "nose: medium-dark skin tone",
+ "👃🏼": "nose: medium-light skin tone",
+ "📓": "notebook",
+ "📔": "notebook with decorative cover",
+ "🔩": "nut and bolt",
+ "🐙": "octopus",
+ "🍢": "oden",
+ "🏢": "office building",
+ "👹": "ogre",
+ "🛢️": "oil drum",
+ "🗝️": "old key",
+ "👴": "old man",
+ "👴🏿": "old man: dark skin tone",
+ "👴🏻": "old man: light skin tone",
+ "👴🏽": "old man: medium skin tone",
+ "👴🏾": "old man: medium-dark skin tone",
+ "👴🏼": "old man: medium-light skin tone",
+ "👵": "old woman",
+ "👵🏿": "old woman: dark skin tone",
+ "👵🏻": "old woman: light skin tone",
+ "👵🏽": "old woman: medium skin tone",
+ "👵🏾": "old woman: medium-dark skin tone",
+ "👵🏼": "old woman: medium-light skin tone",
+ "🧓": "older person",
+ "🧓🏿": "older person: dark skin tone",
+ "🧓🏻": "older person: light skin tone",
+ "🧓🏽": "older person: medium skin tone",
+ "🧓🏾": "older person: medium-dark skin tone",
+ "🧓🏼": "older person: medium-light skin tone",
+ "🫒": "olive",
+ "🕉️": "om",
+ "🚘": "oncoming automobile",
+ "🚍": "oncoming bus",
+ "👊": "oncoming fist",
+ "👊🏿": "oncoming fist: dark skin tone",
+ "👊🏻": "oncoming fist: light skin tone",
+ "👊🏽": "oncoming fist: medium skin tone",
+ "👊🏾": "oncoming fist: medium-dark skin tone",
+ "👊🏼": "oncoming fist: medium-light skin tone",
+ "🚔": "oncoming police car",
+ "🚖": "oncoming taxi",
+ "🕐": "one o'clock",
+ "🩱": "one-piece swimsuit",
+ "🕜": "one-thirty",
+ "🧅": "onion",
+ "📖": "open book",
+ "📂": "open file folder",
+ "👐": "open hands",
+ "👐🏿": "open hands: dark skin tone",
+ "👐🏻": "open hands: light skin tone",
+ "👐🏽": "open hands: medium skin tone",
+ "👐🏾": "open hands: medium-dark skin tone",
+ "👐🏼": "open hands: medium-light skin tone",
+ "📭": "open mailbox with lowered flag",
+ "📬": "open mailbox with raised flag",
+ "💿": "optical disk",
+ "📙": "orange book",
+ "🟠": "orange circle",
+ "🧡": "orange heart",
+ "🟧": "orange square",
+ "🦧": "orangutan",
+ "☦️": "orthodox cross",
+ "🦦": "otter",
+ "📤": "outbox tray",
+ "🦉": "owl",
+ "🐂": "ox",
+ "🦪": "oyster",
+ "📦": "package",
+ "📄": "page facing up",
+ "📃": "page with curl",
+ "📟": "pager",
+ "🖌️": "paintbrush",
+ "🫳": "palm down hand",
+ "🫳🏿": "palm down hand: dark skin tone",
+ "🫳🏻": "palm down hand: light skin tone",
+ "🫳🏽": "palm down hand: medium skin tone",
+ "🫳🏾": "palm down hand: medium-dark skin tone",
+ "🫳🏼": "palm down hand: medium-light skin tone",
+ "🌴": "palm tree",
+ "🫴": "palm up hand",
+ "🫴🏿": "palm up hand: dark skin tone",
+ "🫴🏻": "palm up hand: light skin tone",
+ "🫴🏽": "palm up hand: medium skin tone",
+ "🫴🏾": "palm up hand: medium-dark skin tone",
+ "🫴🏼": "palm up hand: medium-light skin tone",
+ "🤲": "palms up together",
+ "🤲🏿": "palms up together: dark skin tone",
+ "🤲🏻": "palms up together: light skin tone",
+ "🤲🏽": "palms up together: medium skin tone",
+ "🤲🏾": "palms up together: medium-dark skin tone",
+ "🤲🏼": "palms up together: medium-light skin tone",
+ "🥞": "pancakes",
+ "🐼": "panda",
+ "📎": "paperclip",
+ "🪂": "parachute",
+ "🦜": "parrot",
+ "〽️": "part alternation mark",
+ "🎉": "party popper",
+ "🥳": "partying face",
+ "🛳️": "passenger ship",
+ "🛂": "passport control",
+ "⏸️": "pause button",
+ "🐾": "paw prints",
+ "🫛": "pea pod",
+ "☮️": "peace symbol",
+ "🍑": "peach",
+ "🦚": "peacock",
+ "🥜": "peanuts",
+ "🍐": "pear",
+ "🖊️": "pen",
+ "✏️": "pencil",
+ "🐧": "penguin",
+ "😔": "pensive face",
+ "🫂": "people hugging",
+ "👯": "people with bunny ears",
+ "🤼": "people wrestling",
+ "🎭": "performing arts",
+ "😣": "persevering face",
+ "🧑": "person",
+ "🚴": "person biking",
+ "🚴🏿": "person biking: dark skin tone",
+ "🚴🏻": "person biking: light skin tone",
+ "🚴🏽": "person biking: medium skin tone",
+ "🚴🏾": "person biking: medium-dark skin tone",
+ "🚴🏼": "person biking: medium-light skin tone",
+ "⛹️": "person bouncing ball",
+ "⛹🏿": "person bouncing ball: dark skin tone",
+ "⛹🏻": "person bouncing ball: light skin tone",
+ "⛹🏽": "person bouncing ball: medium skin tone",
+ "⛹🏾": "person bouncing ball: medium-dark skin tone",
+ "⛹🏼": "person bouncing ball: medium-light skin tone",
+ "🙇": "person bowing",
+ "🙇🏿": "person bowing: dark skin tone",
+ "🙇🏻": "person bowing: light skin tone",
+ "🙇🏽": "person bowing: medium skin tone",
+ "🙇🏾": "person bowing: medium-dark skin tone",
+ "🙇🏼": "person bowing: medium-light skin tone",
+ "🤸": "person cartwheeling",
+ "🤸🏿": "person cartwheeling: dark skin tone",
+ "🤸🏻": "person cartwheeling: light skin tone",
+ "🤸🏽": "person cartwheeling: medium skin tone",
+ "🤸🏾": "person cartwheeling: medium-dark skin tone",
+ "🤸🏼": "person cartwheeling: medium-light skin tone",
+ "🧗": "person climbing",
+ "🧗🏿": "person climbing: dark skin tone",
+ "🧗🏻": "person climbing: light skin tone",
+ "🧗🏽": "person climbing: medium skin tone",
+ "🧗🏾": "person climbing: medium-dark skin tone",
+ "🧗🏼": "person climbing: medium-light skin tone",
+ "🤦": "person facepalming",
+ "🤦🏿": "person facepalming: dark skin tone",
+ "🤦🏻": "person facepalming: light skin tone",
+ "🤦🏽": "person facepalming: medium skin tone",
+ "🤦🏾": "person facepalming: medium-dark skin tone",
+ "🤦🏼": "person facepalming: medium-light skin tone",
+ "🤺": "person fencing",
+ "🙍": "person frowning",
+ "🙍🏿": "person frowning: dark skin tone",
+ "🙍🏻": "person frowning: light skin tone",
+ "🙍🏽": "person frowning: medium skin tone",
+ "🙍🏾": "person frowning: medium-dark skin tone",
+ "🙍🏼": "person frowning: medium-light skin tone",
+ "🙅": "person gesturing NO",
+ "🙅🏿": "person gesturing NO: dark skin tone",
+ "🙅🏻": "person gesturing NO: light skin tone",
+ "🙅🏽": "person gesturing NO: medium skin tone",
+ "🙅🏾": "person gesturing NO: medium-dark skin tone",
+ "🙅🏼": "person gesturing NO: medium-light skin tone",
+ "🙆": "person gesturing OK",
+ "🙆🏿": "person gesturing OK: dark skin tone",
+ "🙆🏻": "person gesturing OK: light skin tone",
+ "🙆🏽": "person gesturing OK: medium skin tone",
+ "🙆🏾": "person gesturing OK: medium-dark skin tone",
+ "🙆🏼": "person gesturing OK: medium-light skin tone",
+ "💇": "person getting haircut",
+ "💇🏿": "person getting haircut: dark skin tone",
+ "💇🏻": "person getting haircut: light skin tone",
+ "💇🏽": "person getting haircut: medium skin tone",
+ "💇🏾": "person getting haircut: medium-dark skin tone",
+ "💇🏼": "person getting haircut: medium-light skin tone",
+ "💆": "person getting massage",
+ "💆🏿": "person getting massage: dark skin tone",
+ "💆🏻": "person getting massage: light skin tone",
+ "💆🏽": "person getting massage: medium skin tone",
+ "💆🏾": "person getting massage: medium-dark skin tone",
+ "💆🏼": "person getting massage: medium-light skin tone",
+ "🏌️": "person golfing",
+ "🏌🏿": "person golfing: dark skin tone",
+ "🏌🏻": "person golfing: light skin tone",
+ "🏌🏽": "person golfing: medium skin tone",
+ "🏌🏾": "person golfing: medium-dark skin tone",
+ "🏌🏼": "person golfing: medium-light skin tone",
+ "🛌": "person in bed",
+ "🛌🏿": "person in bed: dark skin tone",
+ "🛌🏻": "person in bed: light skin tone",
+ "🛌🏽": "person in bed: medium skin tone",
+ "🛌🏾": "person in bed: medium-dark skin tone",
+ "🛌🏼": "person in bed: medium-light skin tone",
+ "🧘": "person in lotus position",
+ "🧘🏿": "person in lotus position: dark skin tone",
+ "🧘🏻": "person in lotus position: light skin tone",
+ "🧘🏽": "person in lotus position: medium skin tone",
+ "🧘🏾": "person in lotus position: medium-dark skin tone",
+ "🧘🏼": "person in lotus position: medium-light skin tone",
+ "🧖": "person in steamy room",
+ "🧖🏿": "person in steamy room: dark skin tone",
+ "🧖🏻": "person in steamy room: light skin tone",
+ "🧖🏽": "person in steamy room: medium skin tone",
+ "🧖🏾": "person in steamy room: medium-dark skin tone",
+ "🧖🏼": "person in steamy room: medium-light skin tone",
+ "🕴️": "person in suit levitating",
+ "🕴🏿": "person in suit levitating: dark skin tone",
+ "🕴🏻": "person in suit levitating: light skin tone",
+ "🕴🏽": "person in suit levitating: medium skin tone",
+ "🕴🏾": "person in suit levitating: medium-dark skin tone",
+ "🕴🏼": "person in suit levitating: medium-light skin tone",
+ "🤵": "person in tuxedo",
+ "🤵🏿": "person in tuxedo: dark skin tone",
+ "🤵🏻": "person in tuxedo: light skin tone",
+ "🤵🏽": "person in tuxedo: medium skin tone",
+ "🤵🏾": "person in tuxedo: medium-dark skin tone",
+ "🤵🏼": "person in tuxedo: medium-light skin tone",
+ "🤹": "person juggling",
+ "🤹🏿": "person juggling: dark skin tone",
+ "🤹🏻": "person juggling: light skin tone",
+ "🤹🏽": "person juggling: medium skin tone",
+ "🤹🏾": "person juggling: medium-dark skin tone",
+ "🤹🏼": "person juggling: medium-light skin tone",
+ "🧎": "person kneeling",
+ "🧎🏿": "person kneeling: dark skin tone",
+ "🧎🏻": "person kneeling: light skin tone",
+ "🧎🏽": "person kneeling: medium skin tone",
+ "🧎🏾": "person kneeling: medium-dark skin tone",
+ "🧎🏼": "person kneeling: medium-light skin tone",
+ "🏋️": "person lifting weights",
+ "🏋🏿": "person lifting weights: dark skin tone",
+ "🏋🏻": "person lifting weights: light skin tone",
+ "🏋🏽": "person lifting weights: medium skin tone",
+ "🏋🏾": "person lifting weights: medium-dark skin tone",
+ "🏋🏼": "person lifting weights: medium-light skin tone",
+ "🚵": "person mountain biking",
+ "🚵🏿": "person mountain biking: dark skin tone",
+ "🚵🏻": "person mountain biking: light skin tone",
+ "🚵🏽": "person mountain biking: medium skin tone",
+ "🚵🏾": "person mountain biking: medium-dark skin tone",
+ "🚵🏼": "person mountain biking: medium-light skin tone",
+ "🤾": "person playing handball",
+ "🤾🏿": "person playing handball: dark skin tone",
+ "🤾🏻": "person playing handball: light skin tone",
+ "🤾🏽": "person playing handball: medium skin tone",
+ "🤾🏾": "person playing handball: medium-dark skin tone",
+ "🤾🏼": "person playing handball: medium-light skin tone",
+ "🤽": "person playing water polo",
+ "🤽🏿": "person playing water polo: dark skin tone",
+ "🤽🏻": "person playing water polo: light skin tone",
+ "🤽🏽": "person playing water polo: medium skin tone",
+ "🤽🏾": "person playing water polo: medium-dark skin tone",
+ "🤽🏼": "person playing water polo: medium-light skin tone",
+ "🙎": "person pouting",
+ "🙎🏿": "person pouting: dark skin tone",
+ "🙎🏻": "person pouting: light skin tone",
+ "🙎🏽": "person pouting: medium skin tone",
+ "🙎🏾": "person pouting: medium-dark skin tone",
+ "🙎🏼": "person pouting: medium-light skin tone",
+ "🙋": "person raising hand",
+ "🙋🏿": "person raising hand: dark skin tone",
+ "🙋🏻": "person raising hand: light skin tone",
+ "🙋🏽": "person raising hand: medium skin tone",
+ "🙋🏾": "person raising hand: medium-dark skin tone",
+ "🙋🏼": "person raising hand: medium-light skin tone",
+ "🚣": "person rowing boat",
+ "🚣🏿": "person rowing boat: dark skin tone",
+ "🚣🏻": "person rowing boat: light skin tone",
+ "🚣🏽": "person rowing boat: medium skin tone",
+ "🚣🏾": "person rowing boat: medium-dark skin tone",
+ "🚣🏼": "person rowing boat: medium-light skin tone",
+ "🏃": "person running",
+ "🏃🏿": "person running: dark skin tone",
+ "🏃🏻": "person running: light skin tone",
+ "🏃🏽": "person running: medium skin tone",
+ "🏃🏾": "person running: medium-dark skin tone",
+ "🏃🏼": "person running: medium-light skin tone",
+ "🤷": "person shrugging",
+ "🤷🏿": "person shrugging: dark skin tone",
+ "🤷🏻": "person shrugging: light skin tone",
+ "🤷🏽": "person shrugging: medium skin tone",
+ "🤷🏾": "person shrugging: medium-dark skin tone",
+ "🤷🏼": "person shrugging: medium-light skin tone",
+ "🧍": "person standing",
+ "🧍🏿": "person standing: dark skin tone",
+ "🧍🏻": "person standing: light skin tone",
+ "🧍🏽": "person standing: medium skin tone",
+ "🧍🏾": "person standing: medium-dark skin tone",
+ "🧍🏼": "person standing: medium-light skin tone",
+ "🏄": "person surfing",
+ "🏄🏿": "person surfing: dark skin tone",
+ "🏄🏻": "person surfing: light skin tone",
+ "🏄🏽": "person surfing: medium skin tone",
+ "🏄🏾": "person surfing: medium-dark skin tone",
+ "🏄🏼": "person surfing: medium-light skin tone",
+ "🏊": "person swimming",
+ "🏊🏿": "person swimming: dark skin tone",
+ "🏊🏻": "person swimming: light skin tone",
+ "🏊🏽": "person swimming: medium skin tone",
+ "🏊🏾": "person swimming: medium-dark skin tone",
+ "🏊🏼": "person swimming: medium-light skin tone",
+ "🛀": "person taking bath",
+ "🛀🏿": "person taking bath: dark skin tone",
+ "🛀🏻": "person taking bath: light skin tone",
+ "🛀🏽": "person taking bath: medium skin tone",
+ "🛀🏾": "person taking bath: medium-dark skin tone",
+ "🛀🏼": "person taking bath: medium-light skin tone",
+ "💁": "person tipping hand",
+ "💁🏿": "person tipping hand: dark skin tone",
+ "💁🏻": "person tipping hand: light skin tone",
+ "💁🏽": "person tipping hand: medium skin tone",
+ "💁🏾": "person tipping hand: medium-dark skin tone",
+ "💁🏼": "person tipping hand: medium-light skin tone",
+ "🚶": "person walking",
+ "🚶🏿": "person walking: dark skin tone",
+ "🚶🏻": "person walking: light skin tone",
+ "🚶🏽": "person walking: medium skin tone",
+ "🚶🏾": "person walking: medium-dark skin tone",
+ "🚶🏼": "person walking: medium-light skin tone",
+ "👳": "person wearing turban",
+ "👳🏿": "person wearing turban: dark skin tone",
+ "👳🏻": "person wearing turban: light skin tone",
+ "👳🏽": "person wearing turban: medium skin tone",
+ "👳🏾": "person wearing turban: medium-dark skin tone",
+ "👳🏼": "person wearing turban: medium-light skin tone",
+ "🫅": "person with crown",
+ "🫅🏿": "person with crown: dark skin tone",
+ "🫅🏻": "person with crown: light skin tone",
+ "🫅🏽": "person with crown: medium skin tone",
+ "🫅🏾": "person with crown: medium-dark skin tone",
+ "🫅🏼": "person with crown: medium-light skin tone",
+ "👲": "person with skullcap",
+ "👲🏿": "person with skullcap: dark skin tone",
+ "👲🏻": "person with skullcap: light skin tone",
+ "👲🏽": "person with skullcap: medium skin tone",
+ "👲🏾": "person with skullcap: medium-dark skin tone",
+ "👲🏼": "person with skullcap: medium-light skin tone",
+ "👰": "person with veil",
+ "👰🏿": "person with veil: dark skin tone",
+ "👰🏻": "person with veil: light skin tone",
+ "👰🏽": "person with veil: medium skin tone",
+ "👰🏾": "person with veil: medium-dark skin tone",
+ "👰🏼": "person with veil: medium-light skin tone",
+ "🧔": "person: beard",
+ "👱": "person: blond hair",
+ "🧑🏿": "person: dark skin tone",
+ "🧔🏿": "person: dark skin tone, beard",
+ "👱🏿": "person: dark skin tone, blond hair",
+ "🧑🏻": "person: light skin tone",
+ "🧔🏻": "person: light skin tone, beard",
+ "👱🏻": "person: light skin tone, blond hair",
+ "🧑🏽": "person: medium skin tone",
+ "🧔🏽": "person: medium skin tone, beard",
+ "👱🏽": "person: medium skin tone, blond hair",
+ "🧑🏾": "person: medium-dark skin tone",
+ "🧔🏾": "person: medium-dark skin tone, beard",
+ "👱🏾": "person: medium-dark skin tone, blond hair",
+ "🧑🏼": "person: medium-light skin tone",
+ "🧔🏼": "person: medium-light skin tone, beard",
+ "👱🏼": "person: medium-light skin tone, blond hair",
+ "🧫": "petri dish",
+ "⛏️": "pick",
+ "🛻": "pickup truck",
+ "🥧": "pie",
+ "🐖": "pig",
+ "🐷": "pig face",
+ "🐽": "pig nose",
+ "💩": "pile of poo",
+ "💊": "pill",
+ "🤌": "pinched fingers",
+ "🤌🏿": "pinched fingers: dark skin tone",
+ "🤌🏻": "pinched fingers: light skin tone",
+ "🤌🏽": "pinched fingers: medium skin tone",
+ "🤌🏾": "pinched fingers: medium-dark skin tone",
+ "🤌🏼": "pinched fingers: medium-light skin tone",
+ "🤏": "pinching hand",
+ "🤏🏿": "pinching hand: dark skin tone",
+ "🤏🏻": "pinching hand: light skin tone",
+ "🤏🏽": "pinching hand: medium skin tone",
+ "🤏🏾": "pinching hand: medium-dark skin tone",
+ "🤏🏼": "pinching hand: medium-light skin tone",
+ "🎍": "pine decoration",
+ "🍍": "pineapple",
+ "🏓": "ping pong",
+ "🩷": "pink heart",
+ "🍕": "pizza",
+ "🪅": "piñata",
+ "🪧": "placard",
+ "🛐": "place of worship",
+ "▶️": "play button",
+ "⏯️": "play or pause button",
+ "🛝": "playground slide",
+ "🥺": "pleading face",
+ "🪠": "plunger",
+ "➕": "plus",
+ "🚓": "police car",
+ "🚨": "police car light",
+ "👮": "police officer",
+ "👮🏿": "police officer: dark skin tone",
+ "👮🏻": "police officer: light skin tone",
+ "👮🏽": "police officer: medium skin tone",
+ "👮🏾": "police officer: medium-dark skin tone",
+ "👮🏼": "police officer: medium-light skin tone",
+ "🐩": "poodle",
+ "🎱": "pool 8 ball",
+ "🍿": "popcorn",
+ "🏤": "post office",
+ "📯": "postal horn",
+ "📮": "postbox",
+ "🍲": "pot of food",
+ "🚰": "potable water",
+ "🥔": "potato",
+ "🪴": "potted plant",
+ "🍗": "poultry leg",
+ "💷": "pound banknote",
+ "🫗": "pouring liquid",
+ "😾": "pouting cat",
+ "📿": "prayer beads",
+ "🫃": "pregnant man",
+ "🫃🏿": "pregnant man: dark skin tone",
+ "🫃🏻": "pregnant man: light skin tone",
+ "🫃🏽": "pregnant man: medium skin tone",
+ "🫃🏾": "pregnant man: medium-dark skin tone",
+ "🫃🏼": "pregnant man: medium-light skin tone",
+ "🫄": "pregnant person",
+ "🫄🏿": "pregnant person: dark skin tone",
+ "🫄🏻": "pregnant person: light skin tone",
+ "🫄🏽": "pregnant person: medium skin tone",
+ "🫄🏾": "pregnant person: medium-dark skin tone",
+ "🫄🏼": "pregnant person: medium-light skin tone",
+ "🤰": "pregnant woman",
+ "🤰🏿": "pregnant woman: dark skin tone",
+ "🤰🏻": "pregnant woman: light skin tone",
+ "🤰🏽": "pregnant woman: medium skin tone",
+ "🤰🏾": "pregnant woman: medium-dark skin tone",
+ "🤰🏼": "pregnant woman: medium-light skin tone",
+ "🥨": "pretzel",
+ "🤴": "prince",
+ "🤴🏿": "prince: dark skin tone",
+ "🤴🏻": "prince: light skin tone",
+ "🤴🏽": "prince: medium skin tone",
+ "🤴🏾": "prince: medium-dark skin tone",
+ "🤴🏼": "prince: medium-light skin tone",
+ "👸": "princess",
+ "👸🏿": "princess: dark skin tone",
+ "👸🏻": "princess: light skin tone",
+ "👸🏽": "princess: medium skin tone",
+ "👸🏾": "princess: medium-dark skin tone",
+ "👸🏼": "princess: medium-light skin tone",
+ "🖨️": "printer",
+ "🚫": "prohibited",
+ "🟣": "purple circle",
+ "💜": "purple heart",
+ "🟪": "purple square",
+ "👛": "purse",
+ "📌": "pushpin",
+ "🧩": "puzzle piece",
+ "🐇": "rabbit",
+ "🐰": "rabbit face",
+ "🦝": "raccoon",
+ "🏎️": "racing car",
+ "📻": "radio",
+ "🔘": "radio button",
+ "☢️": "radioactive",
+ "🚃": "railway car",
+ "🛤️": "railway track",
+ "🌈": "rainbow",
+ "🤚": "raised back of hand",
+ "🤚🏿": "raised back of hand: dark skin tone",
+ "🤚🏻": "raised back of hand: light skin tone",
+ "🤚🏽": "raised back of hand: medium skin tone",
+ "🤚🏾": "raised back of hand: medium-dark skin tone",
+ "🤚🏼": "raised back of hand: medium-light skin tone",
+ "✊": "raised fist",
+ "✊🏿": "raised fist: dark skin tone",
+ "✊🏻": "raised fist: light skin tone",
+ "✊🏽": "raised fist: medium skin tone",
+ "✊🏾": "raised fist: medium-dark skin tone",
+ "✊🏼": "raised fist: medium-light skin tone",
+ "✋": "raised hand",
+ "✋🏿": "raised hand: dark skin tone",
+ "✋🏻": "raised hand: light skin tone",
+ "✋🏽": "raised hand: medium skin tone",
+ "✋🏾": "raised hand: medium-dark skin tone",
+ "✋🏼": "raised hand: medium-light skin tone",
+ "🙌": "raising hands",
+ "🙌🏿": "raising hands: dark skin tone",
+ "🙌🏻": "raising hands: light skin tone",
+ "🙌🏽": "raising hands: medium skin tone",
+ "🙌🏾": "raising hands: medium-dark skin tone",
+ "🙌🏼": "raising hands: medium-light skin tone",
+ "🐏": "ram",
+ "🐀": "rat",
+ "🪒": "razor",
+ "🧾": "receipt",
+ "⏺️": "record button",
+ "♻️": "recycling symbol",
+ "🍎": "red apple",
+ "🔴": "red circle",
+ "🧧": "red envelope",
+ "❗": "red exclamation mark",
+ "❤️": "red heart",
+ "🏮": "red paper lantern",
+ "❓": "red question mark",
+ "🟥": "red square",
+ "🔻": "red triangle pointed down",
+ "🔺": "red triangle pointed up",
+ "®️": "registered",
+ "😌": "relieved face",
+ "🎗️": "reminder ribbon",
+ "🔁": "repeat button",
+ "🔂": "repeat single button",
+ "⛑️": "rescue worker's helmet",
+ "🚻": "restroom",
+ "◀️": "reverse button",
+ "💞": "revolving hearts",
+ "🦏": "rhinoceros",
+ "🎀": "ribbon",
+ "🍙": "rice ball",
+ "🍘": "rice cracker",
+ "🗯️": "right anger bubble",
+ "➡️": "right arrow",
+ "⤵️": "right arrow curving down",
+ "↩️": "right arrow curving left",
+ "⤴️": "right arrow curving up",
+ "🤜": "right-facing fist",
+ "🤜🏿": "right-facing fist: dark skin tone",
+ "🤜🏻": "right-facing fist: light skin tone",
+ "🤜🏽": "right-facing fist: medium skin tone",
+ "🤜🏾": "right-facing fist: medium-dark skin tone",
+ "🤜🏼": "right-facing fist: medium-light skin tone",
+ "🫱": "rightwards hand",
+ "🫱🏿": "rightwards hand: dark skin tone",
+ "🫱🏻": "rightwards hand: light skin tone",
+ "🫱🏽": "rightwards hand: medium skin tone",
+ "🫱🏾": "rightwards hand: medium-dark skin tone",
+ "🫱🏼": "rightwards hand: medium-light skin tone",
+ "🫸": "rightwards pushing hand",
+ "🫸🏿": "rightwards pushing hand: dark skin tone",
+ "🫸🏻": "rightwards pushing hand: light skin tone",
+ "🫸🏽": "rightwards pushing hand: medium skin tone",
+ "🫸🏾": "rightwards pushing hand: medium-dark skin tone",
+ "🫸🏼": "rightwards pushing hand: medium-light skin tone",
+ "💍": "ring",
+ "🛟": "ring buoy",
+ "🪐": "ringed planet",
+ "🍠": "roasted sweet potato",
+ "🤖": "robot",
+ "🪨": "rock",
+ "🚀": "rocket",
+ "🧻": "roll of paper",
+ "🗞️": "rolled-up newspaper",
+ "🎢": "roller coaster",
+ "🛼": "roller skate",
+ "🤣": "rolling on the floor laughing",
+ "🐓": "rooster",
+ "🌹": "rose",
+ "🏵️": "rosette",
+ "📍": "round pushpin",
+ "🏉": "rugby football",
+ "🎽": "running shirt",
+ "👟": "running shoe",
+ "😥": "sad but relieved face",
+ "🧷": "safety pin",
+ "🦺": "safety vest",
+ "⛵": "sailboat",
+ "🍶": "sake",
+ "🧂": "salt",
+ "🫡": "saluting face",
+ "🥪": "sandwich",
+ "🥻": "sari",
+ "🛰️": "satellite",
+ "📡": "satellite antenna",
+ "🦕": "sauropod",
+ "🎷": "saxophone",
+ "🧣": "scarf",
+ "🏫": "school",
+ "✂️": "scissors",
+ "🦂": "scorpion",
+ "🪛": "screwdriver",
+ "📜": "scroll",
+ "🦭": "seal",
+ "💺": "seat",
+ "🙈": "see-no-evil monkey",
+ "🌱": "seedling",
+ "🤳": "selfie",
+ "🤳🏿": "selfie: dark skin tone",
+ "🤳🏻": "selfie: light skin tone",
+ "🤳🏽": "selfie: medium skin tone",
+ "🤳🏾": "selfie: medium-dark skin tone",
+ "🤳🏼": "selfie: medium-light skin tone",
+ "🕖": "seven o'clock",
+ "🕢": "seven-thirty",
+ "🪡": "sewing needle",
+ "🫨": "shaking face",
+ "🥘": "shallow pan of food",
+ "☘️": "shamrock",
+ "🦈": "shark",
+ "🍧": "shaved ice",
+ "🌾": "sheaf of rice",
+ "🛡️": "shield",
+ "⛩️": "shinto shrine",
+ "🚢": "ship",
+ "🌠": "shooting star",
+ "🛍️": "shopping bags",
+ "🛒": "shopping cart",
+ "🍰": "shortcake",
+ "🩳": "shorts",
+ "🚿": "shower",
+ "🦐": "shrimp",
+ "🔀": "shuffle tracks button",
+ "🤫": "shushing face",
+ "🤘": "sign of the horns",
+ "🤘🏿": "sign of the horns: dark skin tone",
+ "🤘🏻": "sign of the horns: light skin tone",
+ "🤘🏽": "sign of the horns: medium skin tone",
+ "🤘🏾": "sign of the horns: medium-dark skin tone",
+ "🤘🏼": "sign of the horns: medium-light skin tone",
+ "🕕": "six o'clock",
+ "🕡": "six-thirty",
+ "🛹": "skateboard",
+ "⛷️": "skier",
+ "🎿": "skis",
+ "💀": "skull",
+ "☠️": "skull and crossbones",
+ "🦨": "skunk",
+ "🛷": "sled",
+ "😴": "sleeping face",
+ "😪": "sleepy face",
+ "🙁": "slightly frowning face",
+ "🙂": "slightly smiling face",
+ "🎰": "slot machine",
+ "🦥": "sloth",
+ "🛩️": "small airplane",
+ "🔹": "small blue diamond",
+ "🔸": "small orange diamond",
+ "😻": "smiling cat with heart-eyes",
+ "☺️": "smiling face",
+ "😇": "smiling face with halo",
+ "😍": "smiling face with heart-eyes",
+ "🥰": "smiling face with hearts",
+ "😈": "smiling face with horns",
+ "🤗": "smiling face with open hands",
+ "😊": "smiling face with smiling eyes",
+ "😎": "smiling face with sunglasses",
+ "🥲": "smiling face with tear",
+ "😏": "smirking face",
+ "🐌": "snail",
+ "🐍": "snake",
+ "🤧": "sneezing face",
+ "🏔️": "snow-capped mountain",
+ "🏂": "snowboarder",
+ "🏂🏿": "snowboarder: dark skin tone",
+ "🏂🏻": "snowboarder: light skin tone",
+ "🏂🏽": "snowboarder: medium skin tone",
+ "🏂🏾": "snowboarder: medium-dark skin tone",
+ "🏂🏼": "snowboarder: medium-light skin tone",
+ "❄️": "snowflake",
+ "☃️": "snowman",
+ "⛄": "snowman without snow",
+ "🧼": "soap",
+ "⚽": "soccer ball",
+ "🧦": "socks",
+ "🍦": "soft ice cream",
+ "🥎": "softball",
+ "♠️": "spade suit",
+ "🍝": "spaghetti",
+ "❇️": "sparkle",
+ "🎇": "sparkler",
+ "✨": "sparkles",
+ "💖": "sparkling heart",
+ "🙊": "speak-no-evil monkey",
+ "🔊": "speaker high volume",
+ "🔈": "speaker low volume",
+ "🔉": "speaker medium volume",
+ "🗣️": "speaking head",
+ "💬": "speech balloon",
+ "🚤": "speedboat",
+ "🕷️": "spider",
+ "🕸️": "spider web",
+ "🗓️": "spiral calendar",
+ "🗒️": "spiral notepad",
+ "🐚": "spiral shell",
+ "🧽": "sponge",
+ "🥄": "spoon",
+ "🚙": "sport utility vehicle",
+ "🏅": "sports medal",
+ "🐳": "spouting whale",
+ "🦑": "squid",
+ "😝": "squinting face with tongue",
+ "🏟️": "stadium",
+ "⭐": "star",
+ "☪️": "star and crescent",
+ "✡️": "star of David",
+ "🤩": "star-struck",
+ "🚉": "station",
+ "🍜": "steaming bowl",
+ "🩺": "stethoscope",
+ "⏹️": "stop button",
+ "🛑": "stop sign",
+ "⏱️": "stopwatch",
+ "📏": "straight ruler",
+ "🍓": "strawberry",
+ "🎙️": "studio microphone",
+ "🥙": "stuffed flatbread",
+ "☀️": "sun",
+ "⛅": "sun behind cloud",
+ "🌥️": "sun behind large cloud",
+ "🌦️": "sun behind rain cloud",
+ "🌤️": "sun behind small cloud",
+ "🌞": "sun with face",
+ "🌻": "sunflower",
+ "🕶️": "sunglasses",
+ "🌅": "sunrise",
+ "🌄": "sunrise over mountains",
+ "🌇": "sunset",
+ "🦸": "superhero",
+ "🦸🏿": "superhero: dark skin tone",
+ "🦸🏻": "superhero: light skin tone",
+ "🦸🏽": "superhero: medium skin tone",
+ "🦸🏾": "superhero: medium-dark skin tone",
+ "🦸🏼": "superhero: medium-light skin tone",
+ "🦹": "supervillain",
+ "🦹🏿": "supervillain: dark skin tone",
+ "🦹🏻": "supervillain: light skin tone",
+ "🦹🏽": "supervillain: medium skin tone",
+ "🦹🏾": "supervillain: medium-dark skin tone",
+ "🦹🏼": "supervillain: medium-light skin tone",
+ "🍣": "sushi",
+ "🚟": "suspension railway",
+ "🦢": "swan",
+ "💦": "sweat droplets",
+ "🕍": "synagogue",
+ "💉": "syringe",
+ "👕": "t-shirt",
+ "🌮": "taco",
+ "🥡": "takeout box",
+ "🫔": "tamale",
+ "🎋": "tanabata tree",
+ "🍊": "tangerine",
+ "🚕": "taxi",
+ "🍵": "teacup without handle",
+ "🫖": "teapot",
+ "📆": "tear-off calendar",
+ "🧸": "teddy bear",
+ "☎️": "telephone",
+ "📞": "telephone receiver",
+ "🔭": "telescope",
+ "📺": "television",
+ "🕙": "ten o'clock",
+ "🕥": "ten-thirty",
+ "🎾": "tennis",
+ "⛺": "tent",
+ "🧪": "test tube",
+ "🌡️": "thermometer",
+ "🤔": "thinking face",
+ "🩴": "thong sandal",
+ "💭": "thought balloon",
+ "🧵": "thread",
+ "🕒": "three o'clock",
+ "🕞": "three-thirty",
+ "👎": "thumbs down",
+ "👎🏿": "thumbs down: dark skin tone",
+ "👎🏻": "thumbs down: light skin tone",
+ "👎🏽": "thumbs down: medium skin tone",
+ "👎🏾": "thumbs down: medium-dark skin tone",
+ "👎🏼": "thumbs down: medium-light skin tone",
+ "👍": "thumbs up",
+ "👍🏿": "thumbs up: dark skin tone",
+ "👍🏻": "thumbs up: light skin tone",
+ "👍🏽": "thumbs up: medium skin tone",
+ "👍🏾": "thumbs up: medium-dark skin tone",
+ "👍🏼": "thumbs up: medium-light skin tone",
+ "🎫": "ticket",
+ "🐅": "tiger",
+ "🐯": "tiger face",
+ "⏲️": "timer clock",
+ "😫": "tired face",
+ "🚽": "toilet",
+ "🍅": "tomato",
+ "👅": "tongue",
+ "🧰": "toolbox",
+ "🦷": "tooth",
+ "🪥": "toothbrush",
+ "🎩": "top hat",
+ "🌪️": "tornado",
+ "🖲️": "trackball",
+ "🚜": "tractor",
+ "™️": "trade mark",
+ "🚆": "train",
+ "🚊": "tram",
+ "🚋": "tram car",
+ "⚧️": "transgender symbol",
+ "🚩": "triangular flag",
+ "📐": "triangular ruler",
+ "🔱": "trident emblem",
+ "🧌": "troll",
+ "🚎": "trolleybus",
+ "🏆": "trophy",
+ "🍹": "tropical drink",
+ "🐠": "tropical fish",
+ "🎺": "trumpet",
+ "🌷": "tulip",
+ "🥃": "tumbler glass",
+ "🦃": "turkey",
+ "🐢": "turtle",
+ "🕛": "twelve o'clock",
+ "🕧": "twelve-thirty",
+ "💕": "two hearts",
+ "🕑": "two o'clock",
+ "🐫": "two-hump camel",
+ "🕝": "two-thirty",
+ "☂️": "umbrella",
+ "⛱️": "umbrella on ground",
+ "☔": "umbrella with rain drops",
+ "😒": "unamused face",
+ "🦄": "unicorn",
+ "🔓": "unlocked",
+ "⬆️": "up arrow",
+ "↕️": "up-down arrow",
+ "↖️": "up-left arrow",
+ "↗️": "up-right arrow",
+ "🙃": "upside-down face",
+ "🔼": "upwards button",
+ "🧛": "vampire",
+ "🧛🏿": "vampire: dark skin tone",
+ "🧛🏻": "vampire: light skin tone",
+ "🧛🏽": "vampire: medium skin tone",
+ "🧛🏾": "vampire: medium-dark skin tone",
+ "🧛🏼": "vampire: medium-light skin tone",
+ "🚦": "vertical traffic light",
+ "📳": "vibration mode",
+ "✌️": "victory hand",
+ "✌🏿": "victory hand: dark skin tone",
+ "✌🏻": "victory hand: light skin tone",
+ "✌🏽": "victory hand: medium skin tone",
+ "✌🏾": "victory hand: medium-dark skin tone",
+ "✌🏼": "victory hand: medium-light skin tone",
+ "📹": "video camera",
+ "🎮": "video game",
+ "📼": "videocassette",
+ "🎻": "violin",
+ "🌋": "volcano",
+ "🏐": "volleyball",
+ "🖖": "vulcan salute",
+ "🖖🏿": "vulcan salute: dark skin tone",
+ "🖖🏻": "vulcan salute: light skin tone",
+ "🖖🏽": "vulcan salute: medium skin tone",
+ "🖖🏾": "vulcan salute: medium-dark skin tone",
+ "🖖🏼": "vulcan salute: medium-light skin tone",
+ "🧇": "waffle",
+ "🌘": "waning crescent moon",
+ "🌖": "waning gibbous moon",
+ "⚠️": "warning",
+ "🗑️": "wastebasket",
+ "⌚": "watch",
+ "🐃": "water buffalo",
+ "🚾": "water closet",
+ "🔫": "water pistol",
+ "🌊": "water wave",
+ "🍉": "watermelon",
+ "👋": "waving hand",
+ "👋🏿": "waving hand: dark skin tone",
+ "👋🏻": "waving hand: light skin tone",
+ "👋🏽": "waving hand: medium skin tone",
+ "👋🏾": "waving hand: medium-dark skin tone",
+ "👋🏼": "waving hand: medium-light skin tone",
+ "〰️": "wavy dash",
+ "🌒": "waxing crescent moon",
+ "🌔": "waxing gibbous moon",
+ "🙀": "weary cat",
+ "😩": "weary face",
+ "💒": "wedding",
+ "🐋": "whale",
+ "🛞": "wheel",
+ "☸️": "wheel of dharma",
+ "♿": "wheelchair symbol",
+ "🦯": "white cane",
+ "⚪": "white circle",
+ "❕": "white exclamation mark",
+ "🏳️": "white flag",
+ "💮": "white flower",
+ "🤍": "white heart",
+ "⬜": "white large square",
+ "◻️": "white medium square",
+ "◽": "white medium-small square",
+ "❔": "white question mark",
+ "▫️": "white small square",
+ "🔳": "white square button",
+ "🥀": "wilted flower",
+ "🎐": "wind chime",
+ "🌬️": "wind face",
+ "🪟": "window",
+ "🍷": "wine glass",
+ "🪽": "wing",
+ "😉": "winking face",
+ "😜": "winking face with tongue",
+ "🛜": "wireless",
+ "🐺": "wolf",
+ "👩": "woman",
+ "👫": "woman and man holding hands",
+ "👫🏿": "woman and man holding hands: dark skin tone",
+ "👫🏻": "woman and man holding hands: light skin tone",
+ "👫🏽": "woman and man holding hands: medium skin tone",
+ "👫🏾": "woman and man holding hands: medium-dark skin tone",
+ "👫🏼": "woman and man holding hands: medium-light skin tone",
+ "💃": "woman dancing",
+ "💃🏿": "woman dancing: dark skin tone",
+ "💃🏻": "woman dancing: light skin tone",
+ "💃🏽": "woman dancing: medium skin tone",
+ "💃🏾": "woman dancing: medium-dark skin tone",
+ "💃🏼": "woman dancing: medium-light skin tone",
+ "🧕": "woman with headscarf",
+ "🧕🏿": "woman with headscarf: dark skin tone",
+ "🧕🏻": "woman with headscarf: light skin tone",
+ "🧕🏽": "woman with headscarf: medium skin tone",
+ "🧕🏾": "woman with headscarf: medium-dark skin tone",
+ "🧕🏼": "woman with headscarf: medium-light skin tone",
+ "👢": "woman's boot",
+ "👚": "woman's clothes",
+ "👒": "woman's hat",
+ "👡": "woman's sandal",
+ "👩🏿": "woman: dark skin tone",
+ "👩🏻": "woman: light skin tone",
+ "👩🏽": "woman: medium skin tone",
+ "👩🏾": "woman: medium-dark skin tone",
+ "👩🏼": "woman: medium-light skin tone",
+ "👭": "women holding hands",
+ "👭🏿": "women holding hands: dark skin tone",
+ "👭🏻": "women holding hands: light skin tone",
+ "👭🏽": "women holding hands: medium skin tone",
+ "👭🏾": "women holding hands: medium-dark skin tone",
+ "👭🏼": "women holding hands: medium-light skin tone",
+ "🚺": "women's room",
+ "🪵": "wood",
+ "🥴": "woozy face",
+ "🗺️": "world map",
+ "🪱": "worm",
+ "😟": "worried face",
+ "🎁": "wrapped gift",
+ "🔧": "wrench",
+ "✍️": "writing hand",
+ "✍🏿": "writing hand: dark skin tone",
+ "✍🏻": "writing hand: light skin tone",
+ "✍🏽": "writing hand: medium skin tone",
+ "✍🏾": "writing hand: medium-dark skin tone",
+ "✍🏼": "writing hand: medium-light skin tone",
+ "🩻": "x-ray",
+ "🧶": "yarn",
+ "🥱": "yawning face",
+ "🟡": "yellow circle",
+ "💛": "yellow heart",
+ "🟨": "yellow square",
+ "💴": "yen banknote",
+ "☯️": "yin yang",
+ "🪀": "yo-yo",
+ "🤪": "zany face",
+ "🦓": "zebra",
+ "🤐": "zipper-mouth face",
+ "🧟": "zombie",
+} as const;
diff --git a/src/typescript/sdk/src/emoji_data/symbol-names.json b/src/typescript/sdk/src/emoji_data/symbol-names.json
deleted file mode 100644
index a2829741b..000000000
--- a/src/typescript/sdk/src/emoji_data/symbol-names.json
+++ /dev/null
@@ -1,2306 +0,0 @@
-{
- "1st place medal": null,
- "2nd place medal": null,
- "3rd place medal": null,
- "A button (blood type)": null,
- "AB button (blood type)": null,
- "ATM sign": null,
- "Aquarius": null,
- "Aries": null,
- "B button (blood type)": null,
- "BACK arrow": null,
- "CL button": null,
- "COOL button": null,
- "Cancer": null,
- "Capricorn": null,
- "Christmas tree": null,
- "END arrow": null,
- "FREE button": null,
- "Gemini": null,
- "ID button": null,
- "Japanese \"acceptable\" button": null,
- "Japanese \"application\" button": null,
- "Japanese \"bargain\" button": null,
- "Japanese \"congratulations\" button": null,
- "Japanese \"discount\" button": null,
- "Japanese \"free of charge\" button": null,
- "Japanese \"here\" button": null,
- "Japanese \"monthly amount\" button": null,
- "Japanese \"no vacancy\" button": null,
- "Japanese \"not free of charge\" button": null,
- "Japanese \"open for business\" button": null,
- "Japanese \"passing grade\" button": null,
- "Japanese \"prohibited\" button": null,
- "Japanese \"reserved\" button": null,
- "Japanese \"secret\" button": null,
- "Japanese \"service charge\" button": null,
- "Japanese \"vacancy\" button": null,
- "Japanese castle": null,
- "Japanese dolls": null,
- "Japanese post office": null,
- "Japanese symbol for beginner": null,
- "Leo": null,
- "Libra": null,
- "Mrs. Claus": null,
- "Mrs. Claus: dark skin tone": null,
- "Mrs. Claus: light skin tone": null,
- "Mrs. Claus: medium skin tone": null,
- "Mrs. Claus: medium-dark skin tone": null,
- "Mrs. Claus: medium-light skin tone": null,
- "NEW button": null,
- "NG button": null,
- "O button (blood type)": null,
- "OK button": null,
- "OK hand": null,
- "OK hand: dark skin tone": null,
- "OK hand: light skin tone": null,
- "OK hand: medium skin tone": null,
- "OK hand: medium-dark skin tone": null,
- "OK hand: medium-light skin tone": null,
- "ON! arrow": null,
- "Ophiuchus": null,
- "P button": null,
- "Pisces": null,
- "SOON arrow": null,
- "SOS button": null,
- "Sagittarius": null,
- "Santa Claus": null,
- "Santa Claus: dark skin tone": null,
- "Santa Claus: light skin tone": null,
- "Santa Claus: medium skin tone": null,
- "Santa Claus: medium-dark skin tone": null,
- "Santa Claus: medium-light skin tone": null,
- "Scorpio": null,
- "Statue of Liberty": null,
- "T-Rex": null,
- "TOP arrow": null,
- "Taurus": null,
- "Tokyo tower": null,
- "UP! button": null,
- "VS button": null,
- "Virgo": null,
- "ZZZ": null,
- "abacus": null,
- "accordion": null,
- "adhesive bandage": null,
- "admission tickets": null,
- "aerial tramway": null,
- "airplane": null,
- "airplane arrival": null,
- "airplane departure": null,
- "alarm clock": null,
- "alembic": null,
- "alien": null,
- "alien monster": null,
- "ambulance": null,
- "american football": null,
- "amphora": null,
- "anatomical heart": null,
- "anchor": null,
- "anger symbol": null,
- "angry face": null,
- "angry face with horns": null,
- "anguished face": null,
- "ant": null,
- "antenna bars": null,
- "anxious face with sweat": null,
- "articulated lorry": null,
- "artist palette": null,
- "astonished face": null,
- "atom symbol": null,
- "auto rickshaw": null,
- "automobile": null,
- "avocado": null,
- "axe": null,
- "baby": null,
- "baby angel": null,
- "baby angel: dark skin tone": null,
- "baby angel: light skin tone": null,
- "baby angel: medium skin tone": null,
- "baby angel: medium-dark skin tone": null,
- "baby angel: medium-light skin tone": null,
- "baby bottle": null,
- "baby chick": null,
- "baby symbol": null,
- "baby: dark skin tone": null,
- "baby: light skin tone": null,
- "baby: medium skin tone": null,
- "baby: medium-dark skin tone": null,
- "baby: medium-light skin tone": null,
- "backhand index pointing down": null,
- "backhand index pointing down: dark skin tone": null,
- "backhand index pointing down: light skin tone": null,
- "backhand index pointing down: medium skin tone": null,
- "backhand index pointing down: medium-dark skin tone": null,
- "backhand index pointing down: medium-light skin tone": null,
- "backhand index pointing left": null,
- "backhand index pointing left: dark skin tone": null,
- "backhand index pointing left: light skin tone": null,
- "backhand index pointing left: medium skin tone": null,
- "backhand index pointing left: medium-dark skin tone": null,
- "backhand index pointing left: medium-light skin tone": null,
- "backhand index pointing right": null,
- "backhand index pointing right: dark skin tone": null,
- "backhand index pointing right: light skin tone": null,
- "backhand index pointing right: medium skin tone": null,
- "backhand index pointing right: medium-dark skin tone": null,
- "backhand index pointing right: medium-light skin tone": null,
- "backhand index pointing up": null,
- "backhand index pointing up: dark skin tone": null,
- "backhand index pointing up: light skin tone": null,
- "backhand index pointing up: medium skin tone": null,
- "backhand index pointing up: medium-dark skin tone": null,
- "backhand index pointing up: medium-light skin tone": null,
- "backpack": null,
- "bacon": null,
- "badger": null,
- "badminton": null,
- "bagel": null,
- "baggage claim": null,
- "baguette bread": null,
- "balance scale": null,
- "ballet shoes": null,
- "balloon": null,
- "ballot box with ballot": null,
- "banana": null,
- "banjo": null,
- "bank": null,
- "bar chart": null,
- "barber pole": null,
- "baseball": null,
- "basket": null,
- "basketball": null,
- "bat": null,
- "bathtub": null,
- "battery": null,
- "beach with umbrella": null,
- "beaming face with smiling eyes": null,
- "beans": null,
- "bear": null,
- "beating heart": null,
- "beaver": null,
- "bed": null,
- "beer mug": null,
- "beetle": null,
- "bell": null,
- "bell pepper": null,
- "bell with slash": null,
- "bellhop bell": null,
- "bento box": null,
- "beverage box": null,
- "bicycle": null,
- "bikini": null,
- "billed cap": null,
- "biohazard": null,
- "bird": null,
- "birthday cake": null,
- "bison": null,
- "biting lip": null,
- "black bird": null,
- "black cat": null,
- "black circle": null,
- "black flag": null,
- "black heart": null,
- "black large square": null,
- "black medium square": null,
- "black medium-small square": null,
- "black nib": null,
- "black small square": null,
- "black square button": null,
- "blossom": null,
- "blowfish": null,
- "blue book": null,
- "blue circle": null,
- "blue heart": null,
- "blue square": null,
- "blueberries": null,
- "boar": null,
- "bomb": null,
- "bone": null,
- "bookmark": null,
- "bookmark tabs": null,
- "books": null,
- "boomerang": null,
- "bottle with popping cork": null,
- "bouquet": null,
- "bow and arrow": null,
- "bowl with spoon": null,
- "bowling": null,
- "boxing glove": null,
- "boy": null,
- "boy: dark skin tone": null,
- "boy: light skin tone": null,
- "boy: medium skin tone": null,
- "boy: medium-dark skin tone": null,
- "boy: medium-light skin tone": null,
- "brain": null,
- "bread": null,
- "breast-feeding": null,
- "breast-feeding: dark skin tone": null,
- "breast-feeding: light skin tone": null,
- "breast-feeding: medium skin tone": null,
- "breast-feeding: medium-dark skin tone": null,
- "breast-feeding: medium-light skin tone": null,
- "brick": null,
- "bridge at night": null,
- "briefcase": null,
- "briefs": null,
- "bright button": null,
- "broccoli": null,
- "broken heart": null,
- "broom": null,
- "brown circle": null,
- "brown heart": null,
- "brown square": null,
- "bubble tea": null,
- "bubbles": null,
- "bucket": null,
- "bug": null,
- "building construction": null,
- "bullet train": null,
- "bullseye": null,
- "burrito": null,
- "bus": null,
- "bus stop": null,
- "bust in silhouette": null,
- "busts in silhouette": null,
- "butter": null,
- "butterfly": null,
- "cactus": null,
- "calendar": null,
- "call me hand": null,
- "call me hand: dark skin tone": null,
- "call me hand: light skin tone": null,
- "call me hand: medium skin tone": null,
- "call me hand: medium-dark skin tone": null,
- "call me hand: medium-light skin tone": null,
- "camel": null,
- "camera": null,
- "camera with flash": null,
- "camping": null,
- "candle": null,
- "candy": null,
- "canned food": null,
- "canoe": null,
- "card file box": null,
- "card index": null,
- "card index dividers": null,
- "carousel horse": null,
- "carp streamer": null,
- "carpentry saw": null,
- "carrot": null,
- "castle": null,
- "cat": null,
- "cat face": null,
- "cat with tears of joy": null,
- "cat with wry smile": null,
- "chains": null,
- "chair": null,
- "chart decreasing": null,
- "chart increasing": null,
- "chart increasing with yen": null,
- "check box with check": null,
- "check mark": null,
- "check mark button": null,
- "cheese wedge": null,
- "chequered flag": null,
- "cherries": null,
- "cherry blossom": null,
- "chess pawn": null,
- "chestnut": null,
- "chicken": null,
- "child": null,
- "child: dark skin tone": null,
- "child: light skin tone": null,
- "child: medium skin tone": null,
- "child: medium-dark skin tone": null,
- "child: medium-light skin tone": null,
- "children crossing": null,
- "chipmunk": null,
- "chocolate bar": null,
- "chopsticks": null,
- "church": null,
- "cigarette": null,
- "cinema": null,
- "circled M": null,
- "circus tent": null,
- "cityscape": null,
- "cityscape at dusk": null,
- "clamp": null,
- "clapper board": null,
- "clapping hands": null,
- "clapping hands: dark skin tone": null,
- "clapping hands: light skin tone": null,
- "clapping hands: medium skin tone": null,
- "clapping hands: medium-dark skin tone": null,
- "clapping hands: medium-light skin tone": null,
- "classical building": null,
- "clinking beer mugs": null,
- "clinking glasses": null,
- "clipboard": null,
- "clockwise vertical arrows": null,
- "closed book": null,
- "closed mailbox with lowered flag": null,
- "closed mailbox with raised flag": null,
- "closed umbrella": null,
- "cloud": null,
- "cloud with lightning": null,
- "cloud with lightning and rain": null,
- "cloud with rain": null,
- "cloud with snow": null,
- "clown face": null,
- "club suit": null,
- "clutch bag": null,
- "coat": null,
- "cockroach": null,
- "cocktail glass": null,
- "coconut": null,
- "coffin": null,
- "coin": null,
- "cold face": null,
- "collision": null,
- "comet": null,
- "compass": null,
- "computer disk": null,
- "computer mouse": null,
- "confetti ball": null,
- "confounded face": null,
- "confused face": null,
- "construction": null,
- "construction worker": null,
- "construction worker: dark skin tone": null,
- "construction worker: light skin tone": null,
- "construction worker: medium skin tone": null,
- "construction worker: medium-dark skin tone": null,
- "construction worker: medium-light skin tone": null,
- "control knobs": null,
- "convenience store": null,
- "cooked rice": null,
- "cookie": null,
- "cooking": null,
- "copyright": null,
- "coral": null,
- "couch and lamp": null,
- "counterclockwise arrows button": null,
- "couple with heart": null,
- "couple with heart: dark skin tone": null,
- "couple with heart: light skin tone": null,
- "couple with heart: medium skin tone": null,
- "couple with heart: medium-dark skin tone": null,
- "couple with heart: medium-light skin tone": null,
- "cow": null,
- "cow face": null,
- "cowboy hat face": null,
- "crab": null,
- "crayon": null,
- "credit card": null,
- "crescent moon": null,
- "cricket": null,
- "cricket game": null,
- "crocodile": null,
- "croissant": null,
- "cross mark": null,
- "cross mark button": null,
- "crossed fingers": null,
- "crossed fingers: dark skin tone": null,
- "crossed fingers: light skin tone": null,
- "crossed fingers: medium skin tone": null,
- "crossed fingers: medium-dark skin tone": null,
- "crossed fingers: medium-light skin tone": null,
- "crossed flags": null,
- "crossed swords": null,
- "crown": null,
- "crutch": null,
- "crying cat": null,
- "crying face": null,
- "crystal ball": null,
- "cucumber": null,
- "cup with straw": null,
- "cupcake": null,
- "curling stone": null,
- "curly loop": null,
- "currency exchange": null,
- "curry rice": null,
- "custard": null,
- "customs": null,
- "cut of meat": null,
- "cyclone": null,
- "dagger": null,
- "dango": null,
- "dashing away": null,
- "deaf person": null,
- "deaf person: dark skin tone": null,
- "deaf person: light skin tone": null,
- "deaf person: medium skin tone": null,
- "deaf person: medium-dark skin tone": null,
- "deaf person: medium-light skin tone": null,
- "deciduous tree": null,
- "deer": null,
- "delivery truck": null,
- "department store": null,
- "derelict house": null,
- "desert": null,
- "desert island": null,
- "desktop computer": null,
- "detective": null,
- "detective: dark skin tone": null,
- "detective: light skin tone": null,
- "detective: medium skin tone": null,
- "detective: medium-dark skin tone": null,
- "detective: medium-light skin tone": null,
- "diamond suit": null,
- "diamond with a dot": null,
- "dim button": null,
- "disappointed face": null,
- "disguised face": null,
- "divide": null,
- "diving mask": null,
- "diya lamp": null,
- "dizzy": null,
- "dna": null,
- "dodo": null,
- "dog": null,
- "dog face": null,
- "dollar banknote": null,
- "dolphin": null,
- "donkey": null,
- "door": null,
- "dotted line face": null,
- "dotted six-pointed star": null,
- "double curly loop": null,
- "double exclamation mark": null,
- "doughnut": null,
- "dove": null,
- "down arrow": null,
- "down-left arrow": null,
- "down-right arrow": null,
- "downcast face with sweat": null,
- "downwards button": null,
- "dragon": null,
- "dragon face": null,
- "dress": null,
- "drooling face": null,
- "drop of blood": null,
- "droplet": null,
- "drum": null,
- "duck": null,
- "dumpling": null,
- "dvd": null,
- "e-mail": null,
- "eagle": null,
- "ear": null,
- "ear of corn": null,
- "ear with hearing aid": null,
- "ear with hearing aid: dark skin tone": null,
- "ear with hearing aid: light skin tone": null,
- "ear with hearing aid: medium skin tone": null,
- "ear with hearing aid: medium-dark skin tone": null,
- "ear with hearing aid: medium-light skin tone": null,
- "ear: dark skin tone": null,
- "ear: light skin tone": null,
- "ear: medium skin tone": null,
- "ear: medium-dark skin tone": null,
- "ear: medium-light skin tone": null,
- "egg": null,
- "eggplant": null,
- "eight o'clock": null,
- "eight-pointed star": null,
- "eight-spoked asterisk": null,
- "eight-thirty": null,
- "eject button": null,
- "electric plug": null,
- "elephant": null,
- "elevator": null,
- "eleven o'clock": null,
- "eleven-thirty": null,
- "elf": null,
- "elf: dark skin tone": null,
- "elf: light skin tone": null,
- "elf: medium skin tone": null,
- "elf: medium-dark skin tone": null,
- "elf: medium-light skin tone": null,
- "empty nest": null,
- "enraged face": null,
- "envelope": null,
- "envelope with arrow": null,
- "euro banknote": null,
- "evergreen tree": null,
- "ewe": null,
- "exclamation question mark": null,
- "exploding head": null,
- "expressionless face": null,
- "eye": null,
- "eyes": null,
- "face blowing a kiss": null,
- "face holding back tears": null,
- "face savoring food": null,
- "face screaming in fear": null,
- "face vomiting": null,
- "face with crossed-out eyes": null,
- "face with diagonal mouth": null,
- "face with hand over mouth": null,
- "face with head-bandage": null,
- "face with medical mask": null,
- "face with monocle": null,
- "face with open eyes and hand over mouth": null,
- "face with open mouth": null,
- "face with peeking eye": null,
- "face with raised eyebrow": null,
- "face with rolling eyes": null,
- "face with steam from nose": null,
- "face with symbols on mouth": null,
- "face with tears of joy": null,
- "face with thermometer": null,
- "face with tongue": null,
- "face without mouth": null,
- "factory": null,
- "fairy": null,
- "fairy: dark skin tone": null,
- "fairy: light skin tone": null,
- "fairy: medium skin tone": null,
- "fairy: medium-dark skin tone": null,
- "fairy: medium-light skin tone": null,
- "falafel": null,
- "fallen leaf": null,
- "family": null,
- "fast down button": null,
- "fast reverse button": null,
- "fast up button": null,
- "fast-forward button": null,
- "fax machine": null,
- "fearful face": null,
- "feather": null,
- "female sign": null,
- "ferris wheel": null,
- "ferry": null,
- "field hockey": null,
- "file cabinet": null,
- "file folder": null,
- "film frames": null,
- "film projector": null,
- "fire": null,
- "fire engine": null,
- "fire extinguisher": null,
- "firecracker": null,
- "fireworks": null,
- "first quarter moon": null,
- "first quarter moon face": null,
- "fish": null,
- "fish cake with swirl": null,
- "fishing pole": null,
- "five o'clock": null,
- "five-thirty": null,
- "flag in hole": null,
- "flag: Afghanistan": null,
- "flag: Albania": null,
- "flag: Algeria": null,
- "flag: American Samoa": null,
- "flag: Andorra": null,
- "flag: Angola": null,
- "flag: Anguilla": null,
- "flag: Antarctica": null,
- "flag: Antigua & Barbuda": null,
- "flag: Argentina": null,
- "flag: Armenia": null,
- "flag: Aruba": null,
- "flag: Ascension Island": null,
- "flag: Australia": null,
- "flag: Austria": null,
- "flag: Azerbaijan": null,
- "flag: Bahamas": null,
- "flag: Bahrain": null,
- "flag: Bangladesh": null,
- "flag: Barbados": null,
- "flag: Belarus": null,
- "flag: Belgium": null,
- "flag: Belize": null,
- "flag: Benin": null,
- "flag: Bermuda": null,
- "flag: Bhutan": null,
- "flag: Bolivia": null,
- "flag: Bosnia & Herzegovina": null,
- "flag: Botswana": null,
- "flag: Bouvet Island": null,
- "flag: Brazil": null,
- "flag: British Indian Ocean Territory": null,
- "flag: British Virgin Islands": null,
- "flag: Brunei": null,
- "flag: Bulgaria": null,
- "flag: Burkina Faso": null,
- "flag: Burundi": null,
- "flag: Cambodia": null,
- "flag: Cameroon": null,
- "flag: Canada": null,
- "flag: Canary Islands": null,
- "flag: Cape Verde": null,
- "flag: Caribbean Netherlands": null,
- "flag: Cayman Islands": null,
- "flag: Central African Republic": null,
- "flag: Ceuta & Melilla": null,
- "flag: Chad": null,
- "flag: Chile": null,
- "flag: China": null,
- "flag: Christmas Island": null,
- "flag: Clipperton Island": null,
- "flag: Cocos (Keeling) Islands": null,
- "flag: Colombia": null,
- "flag: Comoros": null,
- "flag: Congo - Brazzaville": null,
- "flag: Congo - Kinshasa": null,
- "flag: Cook Islands": null,
- "flag: Costa Rica": null,
- "flag: Croatia": null,
- "flag: Cuba": null,
- "flag: Cura\u00e7ao": null,
- "flag: Cyprus": null,
- "flag: Czechia": null,
- "flag: C\u00f4te d'Ivoire": null,
- "flag: Denmark": null,
- "flag: Diego Garcia": null,
- "flag: Djibouti": null,
- "flag: Dominica": null,
- "flag: Dominican Republic": null,
- "flag: Ecuador": null,
- "flag: Egypt": null,
- "flag: El Salvador": null,
- "flag: Equatorial Guinea": null,
- "flag: Eritrea": null,
- "flag: Estonia": null,
- "flag: Eswatini": null,
- "flag: Ethiopia": null,
- "flag: European Union": null,
- "flag: Falkland Islands": null,
- "flag: Faroe Islands": null,
- "flag: Fiji": null,
- "flag: Finland": null,
- "flag: France": null,
- "flag: French Guiana": null,
- "flag: French Polynesia": null,
- "flag: French Southern Territories": null,
- "flag: Gabon": null,
- "flag: Gambia": null,
- "flag: Georgia": null,
- "flag: Germany": null,
- "flag: Ghana": null,
- "flag: Gibraltar": null,
- "flag: Greece": null,
- "flag: Greenland": null,
- "flag: Grenada": null,
- "flag: Guadeloupe": null,
- "flag: Guam": null,
- "flag: Guatemala": null,
- "flag: Guernsey": null,
- "flag: Guinea": null,
- "flag: Guinea-Bissau": null,
- "flag: Guyana": null,
- "flag: Haiti": null,
- "flag: Heard & McDonald Islands": null,
- "flag: Honduras": null,
- "flag: Hong Kong SAR China": null,
- "flag: Hungary": null,
- "flag: Iceland": null,
- "flag: India": null,
- "flag: Indonesia": null,
- "flag: Iran": null,
- "flag: Iraq": null,
- "flag: Ireland": null,
- "flag: Isle of Man": null,
- "flag: Israel": null,
- "flag: Italy": null,
- "flag: Jamaica": null,
- "flag: Japan": null,
- "flag: Jersey": null,
- "flag: Jordan": null,
- "flag: Kazakhstan": null,
- "flag: Kenya": null,
- "flag: Kiribati": null,
- "flag: Kosovo": null,
- "flag: Kuwait": null,
- "flag: Kyrgyzstan": null,
- "flag: Laos": null,
- "flag: Latvia": null,
- "flag: Lebanon": null,
- "flag: Lesotho": null,
- "flag: Liberia": null,
- "flag: Libya": null,
- "flag: Liechtenstein": null,
- "flag: Lithuania": null,
- "flag: Luxembourg": null,
- "flag: Macao SAR China": null,
- "flag: Madagascar": null,
- "flag: Malawi": null,
- "flag: Malaysia": null,
- "flag: Maldives": null,
- "flag: Mali": null,
- "flag: Malta": null,
- "flag: Marshall Islands": null,
- "flag: Martinique": null,
- "flag: Mauritania": null,
- "flag: Mauritius": null,
- "flag: Mayotte": null,
- "flag: Mexico": null,
- "flag: Micronesia": null,
- "flag: Moldova": null,
- "flag: Monaco": null,
- "flag: Mongolia": null,
- "flag: Montenegro": null,
- "flag: Montserrat": null,
- "flag: Morocco": null,
- "flag: Mozambique": null,
- "flag: Myanmar (Burma)": null,
- "flag: Namibia": null,
- "flag: Nauru": null,
- "flag: Nepal": null,
- "flag: Netherlands": null,
- "flag: New Caledonia": null,
- "flag: New Zealand": null,
- "flag: Nicaragua": null,
- "flag: Niger": null,
- "flag: Nigeria": null,
- "flag: Niue": null,
- "flag: Norfolk Island": null,
- "flag: North Korea": null,
- "flag: North Macedonia": null,
- "flag: Northern Mariana Islands": null,
- "flag: Norway": null,
- "flag: Oman": null,
- "flag: Pakistan": null,
- "flag: Palau": null,
- "flag: Palestinian Territories": null,
- "flag: Panama": null,
- "flag: Papua New Guinea": null,
- "flag: Paraguay": null,
- "flag: Peru": null,
- "flag: Philippines": null,
- "flag: Pitcairn Islands": null,
- "flag: Poland": null,
- "flag: Portugal": null,
- "flag: Puerto Rico": null,
- "flag: Qatar": null,
- "flag: Romania": null,
- "flag: Russia": null,
- "flag: Rwanda": null,
- "flag: R\u00e9union": null,
- "flag: Samoa": null,
- "flag: San Marino": null,
- "flag: Saudi Arabia": null,
- "flag: Senegal": null,
- "flag: Serbia": null,
- "flag: Seychelles": null,
- "flag: Sierra Leone": null,
- "flag: Singapore": null,
- "flag: Sint Maarten": null,
- "flag: Slovakia": null,
- "flag: Slovenia": null,
- "flag: Solomon Islands": null,
- "flag: Somalia": null,
- "flag: South Africa": null,
- "flag: South Georgia & South Sandwich Islands": null,
- "flag: South Korea": null,
- "flag: South Sudan": null,
- "flag: Spain": null,
- "flag: Sri Lanka": null,
- "flag: St. Barth\u00e9lemy": null,
- "flag: St. Helena": null,
- "flag: St. Kitts & Nevis": null,
- "flag: St. Lucia": null,
- "flag: St. Martin": null,
- "flag: St. Pierre & Miquelon": null,
- "flag: St. Vincent & Grenadines": null,
- "flag: Sudan": null,
- "flag: Suriname": null,
- "flag: Svalbard & Jan Mayen": null,
- "flag: Sweden": null,
- "flag: Switzerland": null,
- "flag: Syria": null,
- "flag: S\u00e3o Tom\u00e9 & Pr\u00edncipe": null,
- "flag: Taiwan": null,
- "flag: Tajikistan": null,
- "flag: Tanzania": null,
- "flag: Thailand": null,
- "flag: Timor-Leste": null,
- "flag: Togo": null,
- "flag: Tokelau": null,
- "flag: Tonga": null,
- "flag: Trinidad & Tobago": null,
- "flag: Tristan da Cunha": null,
- "flag: Tunisia": null,
- "flag: Turkmenistan": null,
- "flag: Turks & Caicos Islands": null,
- "flag: Tuvalu": null,
- "flag: T\u00fcrkiye": null,
- "flag: U.S. Outlying Islands": null,
- "flag: U.S. Virgin Islands": null,
- "flag: Uganda": null,
- "flag: Ukraine": null,
- "flag: United Arab Emirates": null,
- "flag: United Kingdom": null,
- "flag: United Nations": null,
- "flag: United States": null,
- "flag: Uruguay": null,
- "flag: Uzbekistan": null,
- "flag: Vanuatu": null,
- "flag: Vatican City": null,
- "flag: Venezuela": null,
- "flag: Vietnam": null,
- "flag: Wallis & Futuna": null,
- "flag: Western Sahara": null,
- "flag: Yemen": null,
- "flag: Zambia": null,
- "flag: Zimbabwe": null,
- "flag: \u00c5land Islands": null,
- "flamingo": null,
- "flashlight": null,
- "flat shoe": null,
- "flatbread": null,
- "fleur-de-lis": null,
- "flexed biceps": null,
- "flexed biceps: dark skin tone": null,
- "flexed biceps: light skin tone": null,
- "flexed biceps: medium skin tone": null,
- "flexed biceps: medium-dark skin tone": null,
- "flexed biceps: medium-light skin tone": null,
- "floppy disk": null,
- "flower playing cards": null,
- "flushed face": null,
- "flute": null,
- "fly": null,
- "flying disc": null,
- "flying saucer": null,
- "fog": null,
- "foggy": null,
- "folded hands": null,
- "folded hands: dark skin tone": null,
- "folded hands: light skin tone": null,
- "folded hands: medium skin tone": null,
- "folded hands: medium-dark skin tone": null,
- "folded hands: medium-light skin tone": null,
- "folding hand fan": null,
- "fondue": null,
- "foot": null,
- "foot: dark skin tone": null,
- "foot: light skin tone": null,
- "foot: medium skin tone": null,
- "foot: medium-dark skin tone": null,
- "foot: medium-light skin tone": null,
- "footprints": null,
- "fork and knife": null,
- "fork and knife with plate": null,
- "fortune cookie": null,
- "fountain": null,
- "fountain pen": null,
- "four leaf clover": null,
- "four o'clock": null,
- "four-thirty": null,
- "fox": null,
- "framed picture": null,
- "french fries": null,
- "fried shrimp": null,
- "frog": null,
- "front-facing baby chick": null,
- "frowning face": null,
- "frowning face with open mouth": null,
- "fuel pump": null,
- "full moon": null,
- "full moon face": null,
- "funeral urn": null,
- "game die": null,
- "garlic": null,
- "gear": null,
- "gem stone": null,
- "genie": null,
- "ghost": null,
- "ginger root": null,
- "giraffe": null,
- "girl": null,
- "girl: dark skin tone": null,
- "girl: light skin tone": null,
- "girl: medium skin tone": null,
- "girl: medium-dark skin tone": null,
- "girl: medium-light skin tone": null,
- "glass of milk": null,
- "glasses": null,
- "globe showing Americas": null,
- "globe showing Asia-Australia": null,
- "globe showing Europe-Africa": null,
- "globe with meridians": null,
- "gloves": null,
- "glowing star": null,
- "goal net": null,
- "goat": null,
- "goblin": null,
- "goggles": null,
- "goose": null,
- "gorilla": null,
- "graduation cap": null,
- "grapes": null,
- "green apple": null,
- "green book": null,
- "green circle": null,
- "green heart": null,
- "green salad": null,
- "green square": null,
- "grey heart": null,
- "grimacing face": null,
- "grinning cat": null,
- "grinning cat with smiling eyes": null,
- "grinning face": null,
- "grinning face with big eyes": null,
- "grinning face with smiling eyes": null,
- "grinning face with sweat": null,
- "grinning squinting face": null,
- "growing heart": null,
- "guard": null,
- "guard: dark skin tone": null,
- "guard: light skin tone": null,
- "guard: medium skin tone": null,
- "guard: medium-dark skin tone": null,
- "guard: medium-light skin tone": null,
- "guide dog": null,
- "guitar": null,
- "hair pick": null,
- "hamburger": null,
- "hammer": null,
- "hammer and pick": null,
- "hammer and wrench": null,
- "hamsa": null,
- "hamster": null,
- "hand with fingers splayed": null,
- "hand with fingers splayed: dark skin tone": null,
- "hand with fingers splayed: light skin tone": null,
- "hand with fingers splayed: medium skin tone": null,
- "hand with fingers splayed: medium-dark skin tone": null,
- "hand with fingers splayed: medium-light skin tone": null,
- "hand with index finger and thumb crossed": null,
- "hand with index finger and thumb crossed: dark skin tone": null,
- "hand with index finger and thumb crossed: light skin tone": null,
- "hand with index finger and thumb crossed: medium skin tone": null,
- "hand with index finger and thumb crossed: medium-dark skin tone": null,
- "hand with index finger and thumb crossed: medium-light skin tone": null,
- "handbag": null,
- "handshake": null,
- "handshake: dark skin tone": null,
- "handshake: light skin tone": null,
- "handshake: medium skin tone": null,
- "handshake: medium-dark skin tone": null,
- "handshake: medium-light skin tone": null,
- "hatching chick": null,
- "headphone": null,
- "headstone": null,
- "hear-no-evil monkey": null,
- "heart decoration": null,
- "heart exclamation": null,
- "heart hands": null,
- "heart hands: dark skin tone": null,
- "heart hands: light skin tone": null,
- "heart hands: medium skin tone": null,
- "heart hands: medium-dark skin tone": null,
- "heart hands: medium-light skin tone": null,
- "heart suit": null,
- "heart with arrow": null,
- "heart with ribbon": null,
- "heavy dollar sign": null,
- "heavy equals sign": null,
- "hedgehog": null,
- "helicopter": null,
- "herb": null,
- "hibiscus": null,
- "high voltage": null,
- "high-heeled shoe": null,
- "high-speed train": null,
- "hiking boot": null,
- "hindu temple": null,
- "hippopotamus": null,
- "hole": null,
- "hollow red circle": null,
- "honey pot": null,
- "honeybee": null,
- "hook": null,
- "horizontal traffic light": null,
- "horse": null,
- "horse face": null,
- "horse racing": null,
- "horse racing: dark skin tone": null,
- "horse racing: light skin tone": null,
- "horse racing: medium skin tone": null,
- "horse racing: medium-dark skin tone": null,
- "horse racing: medium-light skin tone": null,
- "hospital": null,
- "hot beverage": null,
- "hot dog": null,
- "hot face": null,
- "hot pepper": null,
- "hot springs": null,
- "hotel": null,
- "hourglass done": null,
- "hourglass not done": null,
- "house": null,
- "house with garden": null,
- "houses": null,
- "hundred points": null,
- "hushed face": null,
- "hut": null,
- "hyacinth": null,
- "ice": null,
- "ice cream": null,
- "ice hockey": null,
- "ice skate": null,
- "identification card": null,
- "inbox tray": null,
- "incoming envelope": null,
- "index pointing at the viewer": null,
- "index pointing at the viewer: dark skin tone": null,
- "index pointing at the viewer: light skin tone": null,
- "index pointing at the viewer: medium skin tone": null,
- "index pointing at the viewer: medium-dark skin tone": null,
- "index pointing at the viewer: medium-light skin tone": null,
- "index pointing up": null,
- "index pointing up: dark skin tone": null,
- "index pointing up: light skin tone": null,
- "index pointing up: medium skin tone": null,
- "index pointing up: medium-dark skin tone": null,
- "index pointing up: medium-light skin tone": null,
- "infinity": null,
- "information": null,
- "input latin letters": null,
- "input latin lowercase": null,
- "input latin uppercase": null,
- "input numbers": null,
- "input symbols": null,
- "jack-o-lantern": null,
- "jar": null,
- "jeans": null,
- "jellyfish": null,
- "joker": null,
- "joystick": null,
- "kaaba": null,
- "kangaroo": null,
- "key": null,
- "keyboard": null,
- "keycap: #": null,
- "keycap: *": null,
- "keycap: 0": null,
- "keycap: 1": null,
- "keycap: 10": null,
- "keycap: 2": null,
- "keycap: 3": null,
- "keycap: 4": null,
- "keycap: 5": null,
- "keycap: 6": null,
- "keycap: 7": null,
- "keycap: 8": null,
- "keycap: 9": null,
- "khanda": null,
- "kick scooter": null,
- "kimono": null,
- "kiss": null,
- "kiss mark": null,
- "kiss: dark skin tone": null,
- "kiss: light skin tone": null,
- "kiss: medium skin tone": null,
- "kiss: medium-dark skin tone": null,
- "kiss: medium-light skin tone": null,
- "kissing cat": null,
- "kissing face": null,
- "kissing face with closed eyes": null,
- "kissing face with smiling eyes": null,
- "kitchen knife": null,
- "kite": null,
- "kiwi fruit": null,
- "knot": null,
- "koala": null,
- "lab coat": null,
- "label": null,
- "lacrosse": null,
- "ladder": null,
- "lady beetle": null,
- "laptop": null,
- "large blue diamond": null,
- "large orange diamond": null,
- "last quarter moon": null,
- "last quarter moon face": null,
- "last track button": null,
- "latin cross": null,
- "leaf fluttering in wind": null,
- "leafy green": null,
- "ledger": null,
- "left arrow": null,
- "left arrow curving right": null,
- "left luggage": null,
- "left speech bubble": null,
- "left-facing fist": null,
- "left-facing fist: dark skin tone": null,
- "left-facing fist: light skin tone": null,
- "left-facing fist: medium skin tone": null,
- "left-facing fist: medium-dark skin tone": null,
- "left-facing fist: medium-light skin tone": null,
- "left-right arrow": null,
- "leftwards hand": null,
- "leftwards hand: dark skin tone": null,
- "leftwards hand: light skin tone": null,
- "leftwards hand: medium skin tone": null,
- "leftwards hand: medium-dark skin tone": null,
- "leftwards hand: medium-light skin tone": null,
- "leftwards pushing hand": null,
- "leftwards pushing hand: dark skin tone": null,
- "leftwards pushing hand: light skin tone": null,
- "leftwards pushing hand: medium skin tone": null,
- "leftwards pushing hand: medium-dark skin tone": null,
- "leftwards pushing hand: medium-light skin tone": null,
- "leg": null,
- "leg: dark skin tone": null,
- "leg: light skin tone": null,
- "leg: medium skin tone": null,
- "leg: medium-dark skin tone": null,
- "leg: medium-light skin tone": null,
- "lemon": null,
- "leopard": null,
- "level slider": null,
- "light blue heart": null,
- "light bulb": null,
- "light rail": null,
- "link": null,
- "linked paperclips": null,
- "lion": null,
- "lipstick": null,
- "litter in bin sign": null,
- "lizard": null,
- "llama": null,
- "lobster": null,
- "locked": null,
- "locked with key": null,
- "locked with pen": null,
- "locomotive": null,
- "lollipop": null,
- "long drum": null,
- "lotion bottle": null,
- "lotus": null,
- "loudly crying face": null,
- "loudspeaker": null,
- "love hotel": null,
- "love letter": null,
- "love-you gesture": null,
- "love-you gesture: dark skin tone": null,
- "love-you gesture: light skin tone": null,
- "love-you gesture: medium skin tone": null,
- "love-you gesture: medium-dark skin tone": null,
- "love-you gesture: medium-light skin tone": null,
- "low battery": null,
- "luggage": null,
- "lungs": null,
- "lying face": null,
- "mage": null,
- "mage: dark skin tone": null,
- "mage: light skin tone": null,
- "mage: medium skin tone": null,
- "mage: medium-dark skin tone": null,
- "mage: medium-light skin tone": null,
- "magic wand": null,
- "magnet": null,
- "magnifying glass tilted left": null,
- "magnifying glass tilted right": null,
- "mahjong red dragon": null,
- "male sign": null,
- "mammoth": null,
- "man": null,
- "man dancing": null,
- "man dancing: dark skin tone": null,
- "man dancing: light skin tone": null,
- "man dancing: medium skin tone": null,
- "man dancing: medium-dark skin tone": null,
- "man dancing: medium-light skin tone": null,
- "man's shoe": null,
- "man: dark skin tone": null,
- "man: light skin tone": null,
- "man: medium skin tone": null,
- "man: medium-dark skin tone": null,
- "man: medium-light skin tone": null,
- "mango": null,
- "mantelpiece clock": null,
- "manual wheelchair": null,
- "map of Japan": null,
- "maple leaf": null,
- "maracas": null,
- "martial arts uniform": null,
- "mate": null,
- "meat on bone": null,
- "mechanical arm": null,
- "mechanical leg": null,
- "medical symbol": null,
- "megaphone": null,
- "melon": null,
- "melting face": null,
- "memo": null,
- "men holding hands": null,
- "men holding hands: dark skin tone": null,
- "men holding hands: light skin tone": null,
- "men holding hands: medium skin tone": null,
- "men holding hands: medium-dark skin tone": null,
- "men holding hands: medium-light skin tone": null,
- "men's room": null,
- "menorah": null,
- "merperson": null,
- "merperson: dark skin tone": null,
- "merperson: light skin tone": null,
- "merperson: medium skin tone": null,
- "merperson: medium-dark skin tone": null,
- "merperson: medium-light skin tone": null,
- "metro": null,
- "microbe": null,
- "microphone": null,
- "microscope": null,
- "middle finger": null,
- "middle finger: dark skin tone": null,
- "middle finger: light skin tone": null,
- "middle finger: medium skin tone": null,
- "middle finger: medium-dark skin tone": null,
- "middle finger: medium-light skin tone": null,
- "military helmet": null,
- "military medal": null,
- "milky way": null,
- "minibus": null,
- "minus": null,
- "mirror": null,
- "mirror ball": null,
- "moai": null,
- "mobile phone": null,
- "mobile phone off": null,
- "mobile phone with arrow": null,
- "money bag": null,
- "money with wings": null,
- "money-mouth face": null,
- "monkey": null,
- "monkey face": null,
- "monorail": null,
- "moon cake": null,
- "moon viewing ceremony": null,
- "moose": null,
- "mosque": null,
- "mosquito": null,
- "motor boat": null,
- "motor scooter": null,
- "motorcycle": null,
- "motorized wheelchair": null,
- "motorway": null,
- "mount fuji": null,
- "mountain": null,
- "mountain cableway": null,
- "mountain railway": null,
- "mouse": null,
- "mouse face": null,
- "mouse trap": null,
- "mouth": null,
- "movie camera": null,
- "multiply": null,
- "mushroom": null,
- "musical keyboard": null,
- "musical note": null,
- "musical notes": null,
- "musical score": null,
- "muted speaker": null,
- "nail polish": null,
- "nail polish: dark skin tone": null,
- "nail polish: light skin tone": null,
- "nail polish: medium skin tone": null,
- "nail polish: medium-dark skin tone": null,
- "nail polish: medium-light skin tone": null,
- "name badge": null,
- "national park": null,
- "nauseated face": null,
- "nazar amulet": null,
- "necktie": null,
- "nerd face": null,
- "nest with eggs": null,
- "nesting dolls": null,
- "neutral face": null,
- "new moon": null,
- "new moon face": null,
- "newspaper": null,
- "next track button": null,
- "night with stars": null,
- "nine o'clock": null,
- "nine-thirty": null,
- "ninja": null,
- "ninja: dark skin tone": null,
- "ninja: light skin tone": null,
- "ninja: medium skin tone": null,
- "ninja: medium-dark skin tone": null,
- "ninja: medium-light skin tone": null,
- "no bicycles": null,
- "no entry": null,
- "no littering": null,
- "no mobile phones": null,
- "no one under eighteen": null,
- "no pedestrians": null,
- "no smoking": null,
- "non-potable water": null,
- "nose": null,
- "nose: dark skin tone": null,
- "nose: light skin tone": null,
- "nose: medium skin tone": null,
- "nose: medium-dark skin tone": null,
- "nose: medium-light skin tone": null,
- "notebook": null,
- "notebook with decorative cover": null,
- "nut and bolt": null,
- "octopus": null,
- "oden": null,
- "office building": null,
- "ogre": null,
- "oil drum": null,
- "old key": null,
- "old man": null,
- "old man: dark skin tone": null,
- "old man: light skin tone": null,
- "old man: medium skin tone": null,
- "old man: medium-dark skin tone": null,
- "old man: medium-light skin tone": null,
- "old woman": null,
- "old woman: dark skin tone": null,
- "old woman: light skin tone": null,
- "old woman: medium skin tone": null,
- "old woman: medium-dark skin tone": null,
- "old woman: medium-light skin tone": null,
- "older person": null,
- "older person: dark skin tone": null,
- "older person: light skin tone": null,
- "older person: medium skin tone": null,
- "older person: medium-dark skin tone": null,
- "older person: medium-light skin tone": null,
- "olive": null,
- "om": null,
- "oncoming automobile": null,
- "oncoming bus": null,
- "oncoming fist": null,
- "oncoming fist: dark skin tone": null,
- "oncoming fist: light skin tone": null,
- "oncoming fist: medium skin tone": null,
- "oncoming fist: medium-dark skin tone": null,
- "oncoming fist: medium-light skin tone": null,
- "oncoming police car": null,
- "oncoming taxi": null,
- "one o'clock": null,
- "one-piece swimsuit": null,
- "one-thirty": null,
- "onion": null,
- "open book": null,
- "open file folder": null,
- "open hands": null,
- "open hands: dark skin tone": null,
- "open hands: light skin tone": null,
- "open hands: medium skin tone": null,
- "open hands: medium-dark skin tone": null,
- "open hands: medium-light skin tone": null,
- "open mailbox with lowered flag": null,
- "open mailbox with raised flag": null,
- "optical disk": null,
- "orange book": null,
- "orange circle": null,
- "orange heart": null,
- "orange square": null,
- "orangutan": null,
- "orthodox cross": null,
- "otter": null,
- "outbox tray": null,
- "owl": null,
- "ox": null,
- "oyster": null,
- "package": null,
- "page facing up": null,
- "page with curl": null,
- "pager": null,
- "paintbrush": null,
- "palm down hand": null,
- "palm down hand: dark skin tone": null,
- "palm down hand: light skin tone": null,
- "palm down hand: medium skin tone": null,
- "palm down hand: medium-dark skin tone": null,
- "palm down hand: medium-light skin tone": null,
- "palm tree": null,
- "palm up hand": null,
- "palm up hand: dark skin tone": null,
- "palm up hand: light skin tone": null,
- "palm up hand: medium skin tone": null,
- "palm up hand: medium-dark skin tone": null,
- "palm up hand: medium-light skin tone": null,
- "palms up together": null,
- "palms up together: dark skin tone": null,
- "palms up together: light skin tone": null,
- "palms up together: medium skin tone": null,
- "palms up together: medium-dark skin tone": null,
- "palms up together: medium-light skin tone": null,
- "pancakes": null,
- "panda": null,
- "paperclip": null,
- "parachute": null,
- "parrot": null,
- "part alternation mark": null,
- "party popper": null,
- "partying face": null,
- "passenger ship": null,
- "passport control": null,
- "pause button": null,
- "paw prints": null,
- "pea pod": null,
- "peace symbol": null,
- "peach": null,
- "peacock": null,
- "peanuts": null,
- "pear": null,
- "pen": null,
- "pencil": null,
- "penguin": null,
- "pensive face": null,
- "people hugging": null,
- "people with bunny ears": null,
- "people wrestling": null,
- "performing arts": null,
- "persevering face": null,
- "person": null,
- "person biking": null,
- "person biking: dark skin tone": null,
- "person biking: light skin tone": null,
- "person biking: medium skin tone": null,
- "person biking: medium-dark skin tone": null,
- "person biking: medium-light skin tone": null,
- "person bouncing ball": null,
- "person bouncing ball: dark skin tone": null,
- "person bouncing ball: light skin tone": null,
- "person bouncing ball: medium skin tone": null,
- "person bouncing ball: medium-dark skin tone": null,
- "person bouncing ball: medium-light skin tone": null,
- "person bowing": null,
- "person bowing: dark skin tone": null,
- "person bowing: light skin tone": null,
- "person bowing: medium skin tone": null,
- "person bowing: medium-dark skin tone": null,
- "person bowing: medium-light skin tone": null,
- "person cartwheeling": null,
- "person cartwheeling: dark skin tone": null,
- "person cartwheeling: light skin tone": null,
- "person cartwheeling: medium skin tone": null,
- "person cartwheeling: medium-dark skin tone": null,
- "person cartwheeling: medium-light skin tone": null,
- "person climbing": null,
- "person climbing: dark skin tone": null,
- "person climbing: light skin tone": null,
- "person climbing: medium skin tone": null,
- "person climbing: medium-dark skin tone": null,
- "person climbing: medium-light skin tone": null,
- "person facepalming": null,
- "person facepalming: dark skin tone": null,
- "person facepalming: light skin tone": null,
- "person facepalming: medium skin tone": null,
- "person facepalming: medium-dark skin tone": null,
- "person facepalming: medium-light skin tone": null,
- "person fencing": null,
- "person frowning": null,
- "person frowning: dark skin tone": null,
- "person frowning: light skin tone": null,
- "person frowning: medium skin tone": null,
- "person frowning: medium-dark skin tone": null,
- "person frowning: medium-light skin tone": null,
- "person gesturing NO": null,
- "person gesturing NO: dark skin tone": null,
- "person gesturing NO: light skin tone": null,
- "person gesturing NO: medium skin tone": null,
- "person gesturing NO: medium-dark skin tone": null,
- "person gesturing NO: medium-light skin tone": null,
- "person gesturing OK": null,
- "person gesturing OK: dark skin tone": null,
- "person gesturing OK: light skin tone": null,
- "person gesturing OK: medium skin tone": null,
- "person gesturing OK: medium-dark skin tone": null,
- "person gesturing OK: medium-light skin tone": null,
- "person getting haircut": null,
- "person getting haircut: dark skin tone": null,
- "person getting haircut: light skin tone": null,
- "person getting haircut: medium skin tone": null,
- "person getting haircut: medium-dark skin tone": null,
- "person getting haircut: medium-light skin tone": null,
- "person getting massage": null,
- "person getting massage: dark skin tone": null,
- "person getting massage: light skin tone": null,
- "person getting massage: medium skin tone": null,
- "person getting massage: medium-dark skin tone": null,
- "person getting massage: medium-light skin tone": null,
- "person golfing": null,
- "person golfing: dark skin tone": null,
- "person golfing: light skin tone": null,
- "person golfing: medium skin tone": null,
- "person golfing: medium-dark skin tone": null,
- "person golfing: medium-light skin tone": null,
- "person in bed": null,
- "person in bed: dark skin tone": null,
- "person in bed: light skin tone": null,
- "person in bed: medium skin tone": null,
- "person in bed: medium-dark skin tone": null,
- "person in bed: medium-light skin tone": null,
- "person in lotus position": null,
- "person in lotus position: dark skin tone": null,
- "person in lotus position: light skin tone": null,
- "person in lotus position: medium skin tone": null,
- "person in lotus position: medium-dark skin tone": null,
- "person in lotus position: medium-light skin tone": null,
- "person in steamy room": null,
- "person in steamy room: dark skin tone": null,
- "person in steamy room: light skin tone": null,
- "person in steamy room: medium skin tone": null,
- "person in steamy room: medium-dark skin tone": null,
- "person in steamy room: medium-light skin tone": null,
- "person in suit levitating": null,
- "person in suit levitating: dark skin tone": null,
- "person in suit levitating: light skin tone": null,
- "person in suit levitating: medium skin tone": null,
- "person in suit levitating: medium-dark skin tone": null,
- "person in suit levitating: medium-light skin tone": null,
- "person in tuxedo": null,
- "person in tuxedo: dark skin tone": null,
- "person in tuxedo: light skin tone": null,
- "person in tuxedo: medium skin tone": null,
- "person in tuxedo: medium-dark skin tone": null,
- "person in tuxedo: medium-light skin tone": null,
- "person juggling": null,
- "person juggling: dark skin tone": null,
- "person juggling: light skin tone": null,
- "person juggling: medium skin tone": null,
- "person juggling: medium-dark skin tone": null,
- "person juggling: medium-light skin tone": null,
- "person kneeling": null,
- "person kneeling: dark skin tone": null,
- "person kneeling: light skin tone": null,
- "person kneeling: medium skin tone": null,
- "person kneeling: medium-dark skin tone": null,
- "person kneeling: medium-light skin tone": null,
- "person lifting weights": null,
- "person lifting weights: dark skin tone": null,
- "person lifting weights: light skin tone": null,
- "person lifting weights: medium skin tone": null,
- "person lifting weights: medium-dark skin tone": null,
- "person lifting weights: medium-light skin tone": null,
- "person mountain biking": null,
- "person mountain biking: dark skin tone": null,
- "person mountain biking: light skin tone": null,
- "person mountain biking: medium skin tone": null,
- "person mountain biking: medium-dark skin tone": null,
- "person mountain biking: medium-light skin tone": null,
- "person playing handball": null,
- "person playing handball: dark skin tone": null,
- "person playing handball: light skin tone": null,
- "person playing handball: medium skin tone": null,
- "person playing handball: medium-dark skin tone": null,
- "person playing handball: medium-light skin tone": null,
- "person playing water polo": null,
- "person playing water polo: dark skin tone": null,
- "person playing water polo: light skin tone": null,
- "person playing water polo: medium skin tone": null,
- "person playing water polo: medium-dark skin tone": null,
- "person playing water polo: medium-light skin tone": null,
- "person pouting": null,
- "person pouting: dark skin tone": null,
- "person pouting: light skin tone": null,
- "person pouting: medium skin tone": null,
- "person pouting: medium-dark skin tone": null,
- "person pouting: medium-light skin tone": null,
- "person raising hand": null,
- "person raising hand: dark skin tone": null,
- "person raising hand: light skin tone": null,
- "person raising hand: medium skin tone": null,
- "person raising hand: medium-dark skin tone": null,
- "person raising hand: medium-light skin tone": null,
- "person rowing boat": null,
- "person rowing boat: dark skin tone": null,
- "person rowing boat: light skin tone": null,
- "person rowing boat: medium skin tone": null,
- "person rowing boat: medium-dark skin tone": null,
- "person rowing boat: medium-light skin tone": null,
- "person running": null,
- "person running: dark skin tone": null,
- "person running: light skin tone": null,
- "person running: medium skin tone": null,
- "person running: medium-dark skin tone": null,
- "person running: medium-light skin tone": null,
- "person shrugging": null,
- "person shrugging: dark skin tone": null,
- "person shrugging: light skin tone": null,
- "person shrugging: medium skin tone": null,
- "person shrugging: medium-dark skin tone": null,
- "person shrugging: medium-light skin tone": null,
- "person standing": null,
- "person standing: dark skin tone": null,
- "person standing: light skin tone": null,
- "person standing: medium skin tone": null,
- "person standing: medium-dark skin tone": null,
- "person standing: medium-light skin tone": null,
- "person surfing": null,
- "person surfing: dark skin tone": null,
- "person surfing: light skin tone": null,
- "person surfing: medium skin tone": null,
- "person surfing: medium-dark skin tone": null,
- "person surfing: medium-light skin tone": null,
- "person swimming": null,
- "person swimming: dark skin tone": null,
- "person swimming: light skin tone": null,
- "person swimming: medium skin tone": null,
- "person swimming: medium-dark skin tone": null,
- "person swimming: medium-light skin tone": null,
- "person taking bath": null,
- "person taking bath: dark skin tone": null,
- "person taking bath: light skin tone": null,
- "person taking bath: medium skin tone": null,
- "person taking bath: medium-dark skin tone": null,
- "person taking bath: medium-light skin tone": null,
- "person tipping hand": null,
- "person tipping hand: dark skin tone": null,
- "person tipping hand: light skin tone": null,
- "person tipping hand: medium skin tone": null,
- "person tipping hand: medium-dark skin tone": null,
- "person tipping hand: medium-light skin tone": null,
- "person walking": null,
- "person walking: dark skin tone": null,
- "person walking: light skin tone": null,
- "person walking: medium skin tone": null,
- "person walking: medium-dark skin tone": null,
- "person walking: medium-light skin tone": null,
- "person wearing turban": null,
- "person wearing turban: dark skin tone": null,
- "person wearing turban: light skin tone": null,
- "person wearing turban: medium skin tone": null,
- "person wearing turban: medium-dark skin tone": null,
- "person wearing turban: medium-light skin tone": null,
- "person with crown": null,
- "person with crown: dark skin tone": null,
- "person with crown: light skin tone": null,
- "person with crown: medium skin tone": null,
- "person with crown: medium-dark skin tone": null,
- "person with crown: medium-light skin tone": null,
- "person with skullcap": null,
- "person with skullcap: dark skin tone": null,
- "person with skullcap: light skin tone": null,
- "person with skullcap: medium skin tone": null,
- "person with skullcap: medium-dark skin tone": null,
- "person with skullcap: medium-light skin tone": null,
- "person with veil": null,
- "person with veil: dark skin tone": null,
- "person with veil: light skin tone": null,
- "person with veil: medium skin tone": null,
- "person with veil: medium-dark skin tone": null,
- "person with veil: medium-light skin tone": null,
- "person: beard": null,
- "person: blond hair": null,
- "person: dark skin tone": null,
- "person: dark skin tone, beard": null,
- "person: dark skin tone, blond hair": null,
- "person: light skin tone": null,
- "person: light skin tone, beard": null,
- "person: light skin tone, blond hair": null,
- "person: medium skin tone": null,
- "person: medium skin tone, beard": null,
- "person: medium skin tone, blond hair": null,
- "person: medium-dark skin tone": null,
- "person: medium-dark skin tone, beard": null,
- "person: medium-dark skin tone, blond hair": null,
- "person: medium-light skin tone": null,
- "person: medium-light skin tone, beard": null,
- "person: medium-light skin tone, blond hair": null,
- "petri dish": null,
- "pick": null,
- "pickup truck": null,
- "pie": null,
- "pig": null,
- "pig face": null,
- "pig nose": null,
- "pile of poo": null,
- "pill": null,
- "pinched fingers": null,
- "pinched fingers: dark skin tone": null,
- "pinched fingers: light skin tone": null,
- "pinched fingers: medium skin tone": null,
- "pinched fingers: medium-dark skin tone": null,
- "pinched fingers: medium-light skin tone": null,
- "pinching hand": null,
- "pinching hand: dark skin tone": null,
- "pinching hand: light skin tone": null,
- "pinching hand: medium skin tone": null,
- "pinching hand: medium-dark skin tone": null,
- "pinching hand: medium-light skin tone": null,
- "pine decoration": null,
- "pineapple": null,
- "ping pong": null,
- "pink heart": null,
- "pizza": null,
- "pi\u00f1ata": null,
- "placard": null,
- "place of worship": null,
- "play button": null,
- "play or pause button": null,
- "playground slide": null,
- "pleading face": null,
- "plunger": null,
- "plus": null,
- "police car": null,
- "police car light": null,
- "police officer": null,
- "police officer: dark skin tone": null,
- "police officer: light skin tone": null,
- "police officer: medium skin tone": null,
- "police officer: medium-dark skin tone": null,
- "police officer: medium-light skin tone": null,
- "poodle": null,
- "pool 8 ball": null,
- "popcorn": null,
- "post office": null,
- "postal horn": null,
- "postbox": null,
- "pot of food": null,
- "potable water": null,
- "potato": null,
- "potted plant": null,
- "poultry leg": null,
- "pound banknote": null,
- "pouring liquid": null,
- "pouting cat": null,
- "prayer beads": null,
- "pregnant man": null,
- "pregnant man: dark skin tone": null,
- "pregnant man: light skin tone": null,
- "pregnant man: medium skin tone": null,
- "pregnant man: medium-dark skin tone": null,
- "pregnant man: medium-light skin tone": null,
- "pregnant person": null,
- "pregnant person: dark skin tone": null,
- "pregnant person: light skin tone": null,
- "pregnant person: medium skin tone": null,
- "pregnant person: medium-dark skin tone": null,
- "pregnant person: medium-light skin tone": null,
- "pregnant woman": null,
- "pregnant woman: dark skin tone": null,
- "pregnant woman: light skin tone": null,
- "pregnant woman: medium skin tone": null,
- "pregnant woman: medium-dark skin tone": null,
- "pregnant woman: medium-light skin tone": null,
- "pretzel": null,
- "prince": null,
- "prince: dark skin tone": null,
- "prince: light skin tone": null,
- "prince: medium skin tone": null,
- "prince: medium-dark skin tone": null,
- "prince: medium-light skin tone": null,
- "princess": null,
- "princess: dark skin tone": null,
- "princess: light skin tone": null,
- "princess: medium skin tone": null,
- "princess: medium-dark skin tone": null,
- "princess: medium-light skin tone": null,
- "printer": null,
- "prohibited": null,
- "purple circle": null,
- "purple heart": null,
- "purple square": null,
- "purse": null,
- "pushpin": null,
- "puzzle piece": null,
- "rabbit": null,
- "rabbit face": null,
- "raccoon": null,
- "racing car": null,
- "radio": null,
- "radio button": null,
- "radioactive": null,
- "railway car": null,
- "railway track": null,
- "rainbow": null,
- "raised back of hand": null,
- "raised back of hand: dark skin tone": null,
- "raised back of hand: light skin tone": null,
- "raised back of hand: medium skin tone": null,
- "raised back of hand: medium-dark skin tone": null,
- "raised back of hand: medium-light skin tone": null,
- "raised fist": null,
- "raised fist: dark skin tone": null,
- "raised fist: light skin tone": null,
- "raised fist: medium skin tone": null,
- "raised fist: medium-dark skin tone": null,
- "raised fist: medium-light skin tone": null,
- "raised hand": null,
- "raised hand: dark skin tone": null,
- "raised hand: light skin tone": null,
- "raised hand: medium skin tone": null,
- "raised hand: medium-dark skin tone": null,
- "raised hand: medium-light skin tone": null,
- "raising hands": null,
- "raising hands: dark skin tone": null,
- "raising hands: light skin tone": null,
- "raising hands: medium skin tone": null,
- "raising hands: medium-dark skin tone": null,
- "raising hands: medium-light skin tone": null,
- "ram": null,
- "rat": null,
- "razor": null,
- "receipt": null,
- "record button": null,
- "recycling symbol": null,
- "red apple": null,
- "red circle": null,
- "red envelope": null,
- "red exclamation mark": null,
- "red heart": null,
- "red paper lantern": null,
- "red question mark": null,
- "red square": null,
- "red triangle pointed down": null,
- "red triangle pointed up": null,
- "registered": null,
- "relieved face": null,
- "reminder ribbon": null,
- "repeat button": null,
- "repeat single button": null,
- "rescue worker's helmet": null,
- "restroom": null,
- "reverse button": null,
- "revolving hearts": null,
- "rhinoceros": null,
- "ribbon": null,
- "rice ball": null,
- "rice cracker": null,
- "right anger bubble": null,
- "right arrow": null,
- "right arrow curving down": null,
- "right arrow curving left": null,
- "right arrow curving up": null,
- "right-facing fist": null,
- "right-facing fist: dark skin tone": null,
- "right-facing fist: light skin tone": null,
- "right-facing fist: medium skin tone": null,
- "right-facing fist: medium-dark skin tone": null,
- "right-facing fist: medium-light skin tone": null,
- "rightwards hand": null,
- "rightwards hand: dark skin tone": null,
- "rightwards hand: light skin tone": null,
- "rightwards hand: medium skin tone": null,
- "rightwards hand: medium-dark skin tone": null,
- "rightwards hand: medium-light skin tone": null,
- "rightwards pushing hand": null,
- "rightwards pushing hand: dark skin tone": null,
- "rightwards pushing hand: light skin tone": null,
- "rightwards pushing hand: medium skin tone": null,
- "rightwards pushing hand: medium-dark skin tone": null,
- "rightwards pushing hand: medium-light skin tone": null,
- "ring": null,
- "ring buoy": null,
- "ringed planet": null,
- "roasted sweet potato": null,
- "robot": null,
- "rock": null,
- "rocket": null,
- "roll of paper": null,
- "rolled-up newspaper": null,
- "roller coaster": null,
- "roller skate": null,
- "rolling on the floor laughing": null,
- "rooster": null,
- "rose": null,
- "rosette": null,
- "round pushpin": null,
- "rugby football": null,
- "running shirt": null,
- "running shoe": null,
- "sad but relieved face": null,
- "safety pin": null,
- "safety vest": null,
- "sailboat": null,
- "sake": null,
- "salt": null,
- "saluting face": null,
- "sandwich": null,
- "sari": null,
- "satellite": null,
- "satellite antenna": null,
- "sauropod": null,
- "saxophone": null,
- "scarf": null,
- "school": null,
- "scissors": null,
- "scorpion": null,
- "screwdriver": null,
- "scroll": null,
- "seal": null,
- "seat": null,
- "see-no-evil monkey": null,
- "seedling": null,
- "selfie": null,
- "selfie: dark skin tone": null,
- "selfie: light skin tone": null,
- "selfie: medium skin tone": null,
- "selfie: medium-dark skin tone": null,
- "selfie: medium-light skin tone": null,
- "seven o'clock": null,
- "seven-thirty": null,
- "sewing needle": null,
- "shaking face": null,
- "shallow pan of food": null,
- "shamrock": null,
- "shark": null,
- "shaved ice": null,
- "sheaf of rice": null,
- "shield": null,
- "shinto shrine": null,
- "ship": null,
- "shooting star": null,
- "shopping bags": null,
- "shopping cart": null,
- "shortcake": null,
- "shorts": null,
- "shower": null,
- "shrimp": null,
- "shuffle tracks button": null,
- "shushing face": null,
- "sign of the horns": null,
- "sign of the horns: dark skin tone": null,
- "sign of the horns: light skin tone": null,
- "sign of the horns: medium skin tone": null,
- "sign of the horns: medium-dark skin tone": null,
- "sign of the horns: medium-light skin tone": null,
- "six o'clock": null,
- "six-thirty": null,
- "skateboard": null,
- "skier": null,
- "skis": null,
- "skull": null,
- "skull and crossbones": null,
- "skunk": null,
- "sled": null,
- "sleeping face": null,
- "sleepy face": null,
- "slightly frowning face": null,
- "slightly smiling face": null,
- "slot machine": null,
- "sloth": null,
- "small airplane": null,
- "small blue diamond": null,
- "small orange diamond": null,
- "smiling cat with heart-eyes": null,
- "smiling face": null,
- "smiling face with halo": null,
- "smiling face with heart-eyes": null,
- "smiling face with hearts": null,
- "smiling face with horns": null,
- "smiling face with open hands": null,
- "smiling face with smiling eyes": null,
- "smiling face with sunglasses": null,
- "smiling face with tear": null,
- "smirking face": null,
- "snail": null,
- "snake": null,
- "sneezing face": null,
- "snow-capped mountain": null,
- "snowboarder": null,
- "snowboarder: dark skin tone": null,
- "snowboarder: light skin tone": null,
- "snowboarder: medium skin tone": null,
- "snowboarder: medium-dark skin tone": null,
- "snowboarder: medium-light skin tone": null,
- "snowflake": null,
- "snowman": null,
- "snowman without snow": null,
- "soap": null,
- "soccer ball": null,
- "socks": null,
- "soft ice cream": null,
- "softball": null,
- "spade suit": null,
- "spaghetti": null,
- "sparkle": null,
- "sparkler": null,
- "sparkles": null,
- "sparkling heart": null,
- "speak-no-evil monkey": null,
- "speaker high volume": null,
- "speaker low volume": null,
- "speaker medium volume": null,
- "speaking head": null,
- "speech balloon": null,
- "speedboat": null,
- "spider": null,
- "spider web": null,
- "spiral calendar": null,
- "spiral notepad": null,
- "spiral shell": null,
- "sponge": null,
- "spoon": null,
- "sport utility vehicle": null,
- "sports medal": null,
- "spouting whale": null,
- "squid": null,
- "squinting face with tongue": null,
- "stadium": null,
- "star": null,
- "star and crescent": null,
- "star of David": null,
- "star-struck": null,
- "station": null,
- "steaming bowl": null,
- "stethoscope": null,
- "stop button": null,
- "stop sign": null,
- "stopwatch": null,
- "straight ruler": null,
- "strawberry": null,
- "studio microphone": null,
- "stuffed flatbread": null,
- "sun": null,
- "sun behind cloud": null,
- "sun behind large cloud": null,
- "sun behind rain cloud": null,
- "sun behind small cloud": null,
- "sun with face": null,
- "sunflower": null,
- "sunglasses": null,
- "sunrise": null,
- "sunrise over mountains": null,
- "sunset": null,
- "superhero": null,
- "superhero: dark skin tone": null,
- "superhero: light skin tone": null,
- "superhero: medium skin tone": null,
- "superhero: medium-dark skin tone": null,
- "superhero: medium-light skin tone": null,
- "supervillain": null,
- "supervillain: dark skin tone": null,
- "supervillain: light skin tone": null,
- "supervillain: medium skin tone": null,
- "supervillain: medium-dark skin tone": null,
- "supervillain: medium-light skin tone": null,
- "sushi": null,
- "suspension railway": null,
- "swan": null,
- "sweat droplets": null,
- "synagogue": null,
- "syringe": null,
- "t-shirt": null,
- "taco": null,
- "takeout box": null,
- "tamale": null,
- "tanabata tree": null,
- "tangerine": null,
- "taxi": null,
- "teacup without handle": null,
- "teapot": null,
- "tear-off calendar": null,
- "teddy bear": null,
- "telephone": null,
- "telephone receiver": null,
- "telescope": null,
- "television": null,
- "ten o'clock": null,
- "ten-thirty": null,
- "tennis": null,
- "tent": null,
- "test tube": null,
- "thermometer": null,
- "thinking face": null,
- "thong sandal": null,
- "thought balloon": null,
- "thread": null,
- "three o'clock": null,
- "three-thirty": null,
- "thumbs down": null,
- "thumbs down: dark skin tone": null,
- "thumbs down: light skin tone": null,
- "thumbs down: medium skin tone": null,
- "thumbs down: medium-dark skin tone": null,
- "thumbs down: medium-light skin tone": null,
- "thumbs up": null,
- "thumbs up: dark skin tone": null,
- "thumbs up: light skin tone": null,
- "thumbs up: medium skin tone": null,
- "thumbs up: medium-dark skin tone": null,
- "thumbs up: medium-light skin tone": null,
- "ticket": null,
- "tiger": null,
- "tiger face": null,
- "timer clock": null,
- "tired face": null,
- "toilet": null,
- "tomato": null,
- "tongue": null,
- "toolbox": null,
- "tooth": null,
- "toothbrush": null,
- "top hat": null,
- "tornado": null,
- "trackball": null,
- "tractor": null,
- "trade mark": null,
- "train": null,
- "tram": null,
- "tram car": null,
- "transgender symbol": null,
- "triangular flag": null,
- "triangular ruler": null,
- "trident emblem": null,
- "troll": null,
- "trolleybus": null,
- "trophy": null,
- "tropical drink": null,
- "tropical fish": null,
- "trumpet": null,
- "tulip": null,
- "tumbler glass": null,
- "turkey": null,
- "turtle": null,
- "twelve o'clock": null,
- "twelve-thirty": null,
- "two hearts": null,
- "two o'clock": null,
- "two-hump camel": null,
- "two-thirty": null,
- "umbrella": null,
- "umbrella on ground": null,
- "umbrella with rain drops": null,
- "unamused face": null,
- "unicorn": null,
- "unlocked": null,
- "up arrow": null,
- "up-down arrow": null,
- "up-left arrow": null,
- "up-right arrow": null,
- "upside-down face": null,
- "upwards button": null,
- "vampire": null,
- "vampire: dark skin tone": null,
- "vampire: light skin tone": null,
- "vampire: medium skin tone": null,
- "vampire: medium-dark skin tone": null,
- "vampire: medium-light skin tone": null,
- "vertical traffic light": null,
- "vibration mode": null,
- "victory hand": null,
- "victory hand: dark skin tone": null,
- "victory hand: light skin tone": null,
- "victory hand: medium skin tone": null,
- "victory hand: medium-dark skin tone": null,
- "victory hand: medium-light skin tone": null,
- "video camera": null,
- "video game": null,
- "videocassette": null,
- "violin": null,
- "volcano": null,
- "volleyball": null,
- "vulcan salute": null,
- "vulcan salute: dark skin tone": null,
- "vulcan salute: light skin tone": null,
- "vulcan salute: medium skin tone": null,
- "vulcan salute: medium-dark skin tone": null,
- "vulcan salute: medium-light skin tone": null,
- "waffle": null,
- "waning crescent moon": null,
- "waning gibbous moon": null,
- "warning": null,
- "wastebasket": null,
- "watch": null,
- "water buffalo": null,
- "water closet": null,
- "water pistol": null,
- "water wave": null,
- "watermelon": null,
- "waving hand": null,
- "waving hand: dark skin tone": null,
- "waving hand: light skin tone": null,
- "waving hand: medium skin tone": null,
- "waving hand: medium-dark skin tone": null,
- "waving hand: medium-light skin tone": null,
- "wavy dash": null,
- "waxing crescent moon": null,
- "waxing gibbous moon": null,
- "weary cat": null,
- "weary face": null,
- "wedding": null,
- "whale": null,
- "wheel": null,
- "wheel of dharma": null,
- "wheelchair symbol": null,
- "white cane": null,
- "white circle": null,
- "white exclamation mark": null,
- "white flag": null,
- "white flower": null,
- "white heart": null,
- "white large square": null,
- "white medium square": null,
- "white medium-small square": null,
- "white question mark": null,
- "white small square": null,
- "white square button": null,
- "wilted flower": null,
- "wind chime": null,
- "wind face": null,
- "window": null,
- "wine glass": null,
- "wing": null,
- "winking face": null,
- "winking face with tongue": null,
- "wireless": null,
- "wolf": null,
- "woman": null,
- "woman and man holding hands": null,
- "woman and man holding hands: dark skin tone": null,
- "woman and man holding hands: light skin tone": null,
- "woman and man holding hands: medium skin tone": null,
- "woman and man holding hands: medium-dark skin tone": null,
- "woman and man holding hands: medium-light skin tone": null,
- "woman dancing": null,
- "woman dancing: dark skin tone": null,
- "woman dancing: light skin tone": null,
- "woman dancing: medium skin tone": null,
- "woman dancing: medium-dark skin tone": null,
- "woman dancing: medium-light skin tone": null,
- "woman with headscarf": null,
- "woman with headscarf: dark skin tone": null,
- "woman with headscarf: light skin tone": null,
- "woman with headscarf: medium skin tone": null,
- "woman with headscarf: medium-dark skin tone": null,
- "woman with headscarf: medium-light skin tone": null,
- "woman's boot": null,
- "woman's clothes": null,
- "woman's hat": null,
- "woman's sandal": null,
- "woman: dark skin tone": null,
- "woman: light skin tone": null,
- "woman: medium skin tone": null,
- "woman: medium-dark skin tone": null,
- "woman: medium-light skin tone": null,
- "women holding hands": null,
- "women holding hands: dark skin tone": null,
- "women holding hands: light skin tone": null,
- "women holding hands: medium skin tone": null,
- "women holding hands: medium-dark skin tone": null,
- "women holding hands: medium-light skin tone": null,
- "women's room": null,
- "wood": null,
- "woozy face": null,
- "world map": null,
- "worm": null,
- "worried face": null,
- "wrapped gift": null,
- "wrench": null,
- "writing hand": null,
- "writing hand: dark skin tone": null,
- "writing hand: light skin tone": null,
- "writing hand: medium skin tone": null,
- "writing hand: medium-dark skin tone": null,
- "writing hand: medium-light skin tone": null,
- "x-ray": null,
- "yarn": null,
- "yawning face": null,
- "yellow circle": null,
- "yellow heart": null,
- "yellow square": null,
- "yen banknote": null,
- "yin yang": null,
- "yo-yo": null,
- "zany face": null,
- "zebra": null,
- "zipper-mouth face": null,
- "zombie": null
-}
diff --git a/src/typescript/sdk/src/emoji_data/types.ts b/src/typescript/sdk/src/emoji_data/types.ts
index 8fdd84afa..12968f261 100644
--- a/src/typescript/sdk/src/emoji_data/types.ts
+++ b/src/typescript/sdk/src/emoji_data/types.ts
@@ -1,19 +1,11 @@
import { type MarketMetadataModel } from "../indexer-v2/types";
-import { type getEmojicoinMarketAddressAndTypeTags } from "../markets";
-import type AllSymbolEmojiJSON from "./symbol-emojis.json";
-import type AllChatEmojiJSON from "./chat-emojis.json";
-import { type symbolBytesToEmojis } from "./utils";
-// Note the name data JSON files are not duplicated data, they are purely for type resolution.
-import type SymbolNamesJSON from "./symbol-names.json";
-import type ChatNamesJSON from "./chat-names.json";
+import { type CHAT_EMOJIS } from "./chat-emojis";
+import { type SYMBOL_EMOJIS } from "./symbol-emojis";
-export type AllSymbolEmojiData = typeof AllSymbolEmojiJSON;
-export type SymbolEmoji = keyof AllSymbolEmojiData;
-export type SymbolEmojiName = keyof typeof SymbolNamesJSON;
-
-export type AllChatEmojiData = typeof AllChatEmojiJSON;
-export type ChatEmoji = keyof AllChatEmojiData;
-export type ChatEmojiName = keyof typeof ChatNamesJSON;
+export type SymbolEmoji = keyof typeof SYMBOL_EMOJIS;
+export type SymbolEmojiName = (typeof SYMBOL_EMOJIS)[keyof typeof SYMBOL_EMOJIS];
+export type ChatEmoji = keyof typeof CHAT_EMOJIS;
+export type ChatEmojiName = (typeof CHAT_EMOJIS)[keyof typeof CHAT_EMOJIS];
export type AnyEmoji = SymbolEmoji | ChatEmoji;
export type AnyEmojiName = SymbolEmojiName | ChatEmojiName;
@@ -60,12 +52,3 @@ export type RegisteredMarketInfo = Pick<
MarketMetadataModel,
"marketID" | "emojis" | "symbolEmojis" | "symbolData"
>;
-
-/**
- * Represents either the raw emoji symbol or symbol array or the emoji data.
- * This should *NOT* represent emojis as hex strings/bytes.
- */
-export type EmojicoinSymbol = string | string[] | SymbolEmojiData | SymbolEmojiData[];
-
-export type DerivedEmojicoinData = ReturnType &
- ReturnType & { symbolBytes: `0x${string}` };
diff --git a/src/typescript/sdk/src/emoji_data/utils.ts b/src/typescript/sdk/src/emoji_data/utils.ts
index 70b15ed70..2eb04dc21 100644
--- a/src/typescript/sdk/src/emoji_data/utils.ts
+++ b/src/typescript/sdk/src/emoji_data/utils.ts
@@ -64,37 +64,6 @@ export const getEmojiData = (input: HexInput | SymbolEmojiName): SymbolEmojiData
*/
export const isValidEmoji = (emoji: string): boolean => SYMBOL_EMOJI_DATA.hasEmoji(emoji);
-/**
- * This parses an input string to see if it's a valid symbol.
- * It not only checks that each individual emoji is valid, but also that the total number
- * of bytes is valid as well.
- * @param symbol the symbol to be checked.
- * @returns whether or not the symbol is a valid symbol.
- *
- * @example
- * ```typescript
- * isValidSymbol('🟥🟥'); // true
- * isValidSymbol('🟥🟥🟥🟥🟥'); // false (too long)
- * ```
- */
-export const isValidMarketSymbol = (symbol: string): boolean => {
- const numBytes = new TextEncoder().encode(symbol).length;
- if (numBytes > MAX_SYMBOL_LENGTH || numBytes === 0) {
- return false;
- }
- const emojis = getEmojisInString(symbol);
- const reconstructed = Array.from(emojis).join("");
- if (reconstructed !== symbol) {
- return false;
- }
- for (const emoji of emojis) {
- if (!isValidEmoji(emoji)) {
- return false;
- }
- }
- return true;
-};
-
/**
* Parses a string passed in and maps each individual emoji to its corresponding data.
* If none of the emojis are valid, no error is thrown, the array is just empty.
diff --git a/src/typescript/sdk/src/emojicoin_dot_fun/index.ts b/src/typescript/sdk/src/emojicoin_dot_fun/index.ts
index 96ffaa7e7..348ba2435 100644
--- a/src/typescript/sdk/src/emojicoin_dot_fun/index.ts
+++ b/src/typescript/sdk/src/emojicoin_dot_fun/index.ts
@@ -1,5 +1,7 @@
-export * as AptosFramework from "./aptos-framework";
-export * as EmojicoinDotFun from "./emojicoin-dot-fun";
+export * from "./calculate-swap-price";
+export * from "./events";
+export * from "./serialize-args-to-json";
export * from "./types";
export * from "./utils";
-export * from "./calculate-swap-price";
+export * as AptosFramework from "./aptos-framework";
+export * as EmojicoinDotFun from "./emojicoin-dot-fun";
diff --git a/src/typescript/sdk/src/index.ts b/src/typescript/sdk/src/index.ts
index b77285518..a4fc610b7 100644
--- a/src/typescript/sdk/src/index.ts
+++ b/src/typescript/sdk/src/index.ts
@@ -4,4 +4,3 @@ export * from "./emojicoin_dot_fun";
export * from "./markets";
export * from "./types";
export * from "./utils";
-export * from "./mini-processor";
diff --git a/src/typescript/sdk/src/indexer-v2/index.ts b/src/typescript/sdk/src/indexer-v2/index.ts
new file mode 100644
index 000000000..40754103a
--- /dev/null
+++ b/src/typescript/sdk/src/indexer-v2/index.ts
@@ -0,0 +1,4 @@
+export * from "./json-bigint";
+export * from "./mini-processor";
+export * from "./queries";
+export * from "./types";
diff --git a/src/typescript/sdk/src/mini-processor/event-groups/builder.ts b/src/typescript/sdk/src/indexer-v2/mini-processor/event-groups/builder.ts
similarity index 98%
rename from src/typescript/sdk/src/mini-processor/event-groups/builder.ts
rename to src/typescript/sdk/src/indexer-v2/mini-processor/event-groups/builder.ts
index 4859d953b..e64ecab2a 100644
--- a/src/typescript/sdk/src/mini-processor/event-groups/builder.ts
+++ b/src/typescript/sdk/src/indexer-v2/mini-processor/event-groups/builder.ts
@@ -1,15 +1,15 @@
import { AccountAddress, type TransactionPayloadResponse } from "@aptos-labs/ts-sdk";
+import { type AccountAddressString } from "../../../emojicoin_dot_fun";
import {
- type AnyNumberString,
+ type Types,
isChatEvent,
- isLiquidityEvent,
isMarketRegistrationEvent,
- isPeriodicStateEvent,
- isStateEvent,
isSwapEvent,
- type Types,
-} from "../../types";
-import { type AccountAddressString } from "../../emojicoin_dot_fun/types";
+ isLiquidityEvent,
+ isStateEvent,
+ isPeriodicStateEvent,
+ type AnyNumberString,
+} from "../../../types";
export type TxnInfo = {
version: bigint;
diff --git a/src/typescript/sdk/src/mini-processor/event-groups/index.ts b/src/typescript/sdk/src/indexer-v2/mini-processor/event-groups/index.ts
similarity index 97%
rename from src/typescript/sdk/src/mini-processor/event-groups/index.ts
rename to src/typescript/sdk/src/indexer-v2/mini-processor/event-groups/index.ts
index 3e0235407..9b4dc75c8 100644
--- a/src/typescript/sdk/src/mini-processor/event-groups/index.ts
+++ b/src/typescript/sdk/src/indexer-v2/mini-processor/event-groups/index.ts
@@ -1,13 +1,13 @@
import { type UserTransactionResponse } from "@aptos-labs/ts-sdk";
-import { toMarketEmojiData } from "../../emoji_data";
-import { type AccountAddressString, getMarketAddress, getEvents } from "../../emojicoin_dot_fun";
+import { toMarketEmojiData } from "../../../emoji_data";
+import { type AccountAddressString, getMarketAddress, getEvents } from "../../../emojicoin_dot_fun";
import {
GuidGetters,
type MarketMetadataModel,
type StateEventData,
type DatabaseModels,
type TransactionMetadata,
-} from "../../indexer-v2/types";
+} from "../../types";
import {
EventGroupBuilder,
type EventWithMarket,
@@ -18,7 +18,7 @@ import {
import { getMiscLatestStateEventFieldsFromWriteSet } from "../parse-write-set";
import { addModelsForBumpEvent, toPeriodicStateEventData } from "./utils";
-import { type Events } from "../../emojicoin_dot_fun/events";
+import { type Events } from "../../../emojicoin_dot_fun/events";
export type BumpEventModel =
| DatabaseModels["chat_events"]
diff --git a/src/typescript/sdk/src/mini-processor/event-groups/utils.ts b/src/typescript/sdk/src/indexer-v2/mini-processor/event-groups/utils.ts
similarity index 97%
rename from src/typescript/sdk/src/mini-processor/event-groups/utils.ts
rename to src/typescript/sdk/src/indexer-v2/mini-processor/event-groups/utils.ts
index b43979fa7..1e7100f28 100644
--- a/src/typescript/sdk/src/mini-processor/event-groups/utils.ts
+++ b/src/typescript/sdk/src/indexer-v2/mini-processor/event-groups/utils.ts
@@ -1,5 +1,5 @@
import { type UserTransactionResponse } from "@aptos-labs/ts-sdk";
-import { rawPeriodToEnum } from "../../const";
+import { rawPeriodToEnum } from "../../../const";
import {
GuidGetters,
type MarketMetadataModel,
@@ -7,7 +7,7 @@ import {
type DatabaseModels,
toTransactionMetadataForUserLiquidityPools,
type TransactionMetadata,
-} from "../../indexer-v2/types";
+} from "../../types";
import { type BumpEvent } from "./builder";
import {
isChatEvent,
@@ -15,9 +15,9 @@ import {
isMarketRegistrationEvent,
isSwapEvent,
type Types,
-} from "../../types";
+} from "../../../types";
import { type EventsModels, type UserLiquidityPoolsMap } from ".";
-import { type AccountAddressString } from "../../emojicoin_dot_fun";
+import { type AccountAddressString } from "../../../emojicoin_dot_fun";
import { getLPCoinBalanceFromWriteSet } from "../parse-write-set";
const toChatEventData = (event: Types["ChatEvent"]): DatabaseModels["chat_events"]["chat"] => ({
diff --git a/src/typescript/sdk/src/mini-processor/index.ts b/src/typescript/sdk/src/indexer-v2/mini-processor/index.ts
similarity index 100%
rename from src/typescript/sdk/src/mini-processor/index.ts
rename to src/typescript/sdk/src/indexer-v2/mini-processor/index.ts
diff --git a/src/typescript/sdk/src/mini-processor/parse-write-set.ts b/src/typescript/sdk/src/indexer-v2/mini-processor/parse-write-set.ts
similarity index 88%
rename from src/typescript/sdk/src/mini-processor/parse-write-set.ts
rename to src/typescript/sdk/src/indexer-v2/mini-processor/parse-write-set.ts
index dce213995..f29119ca4 100644
--- a/src/typescript/sdk/src/mini-processor/parse-write-set.ts
+++ b/src/typescript/sdk/src/indexer-v2/mini-processor/parse-write-set.ts
@@ -3,14 +3,14 @@ import {
type HexInput,
type UserTransactionResponse,
} from "@aptos-labs/ts-sdk";
-import { getEvents } from "../emojicoin_dot_fun/utils";
+import { getEvents } from "../../emojicoin_dot_fun/utils";
import {
calculateTvlGrowth,
getEmojicoinMarketAddressAndTypeTags,
getMarketResourceFromWriteSet,
-} from "../markets/utils";
-import { Period, rawPeriodToEnum } from "../const";
-import { getCoinBalanceFromChanges } from "../utils/parse-changes-for-balances";
+} from "../../markets/utils";
+import { Period, rawPeriodToEnum } from "../../const";
+import { getCoinBalanceFromChanges } from "../../utils/parse-changes-for-balances";
export const getMiscLatestStateEventFieldsFromWriteSet = (response: UserTransactionResponse) => {
const events = getEvents(response);
diff --git a/src/typescript/sdk/src/indexer-v2/queries/utils.ts b/src/typescript/sdk/src/indexer-v2/queries/utils.ts
index 5a2212df4..cc5004f61 100644
--- a/src/typescript/sdk/src/indexer-v2/queries/utils.ts
+++ b/src/typescript/sdk/src/indexer-v2/queries/utils.ts
@@ -9,10 +9,8 @@ import {
type PostgrestBuilder,
type PostgrestTransformBuilder,
} from "@supabase/postgrest-js";
-import { type Account, type AccountAddressInput } from "@aptos-labs/ts-sdk";
import { type AnyNumberString } from "../../types/types";
import { type DatabaseJsonType, postgresTimestampToDate, TableName } from "../types/json-types";
-import { toAccountAddress } from "../../utils";
import { postgrest } from "./client";
import { type DatabaseModels } from "../types";
@@ -203,17 +201,3 @@ export function queryHelperWithCount<
return query;
}
-
-/**
- * Strip leading zeroes from an address.
- *
- * @param address either the account object, an account address, or a string.
- * @returns the address without any leading zeroes, still prefixed with "0x".
- *
- */
-/* eslint-disable-next-line import/no-unused-modules */
-export const stripLeadingZeroes = (address: T | AccountAddressInput) =>
- // prettier-ignore
- toAccountAddress(address)
- .toString()
- .replace(/^0x0+/, "0x");
diff --git a/src/typescript/sdk/src/indexer-v2/types/index.ts b/src/typescript/sdk/src/indexer-v2/types/index.ts
index 8ec5a42a3..cfb50140a 100644
--- a/src/typescript/sdk/src/indexer-v2/types/index.ts
+++ b/src/typescript/sdk/src/indexer-v2/types/index.ts
@@ -697,3 +697,7 @@ export const isGlobalStateEventModel = (
export const isEventModelWithMarket = (data: AnyEventModel): data is EventModelWithMarket =>
!isGlobalStateEventModel(data);
+
+export * from "./common";
+export * from "./json-types";
+export * from "./postgres-numeric-types";
diff --git a/src/typescript/sdk/src/indexer-v2/types/json-types.ts b/src/typescript/sdk/src/indexer-v2/types/json-types.ts
index bd2c1b3f0..67d5edb9d 100644
--- a/src/typescript/sdk/src/indexer-v2/types/json-types.ts
+++ b/src/typescript/sdk/src/indexer-v2/types/json-types.ts
@@ -19,7 +19,7 @@ export type PeriodTypeFromDatabase =
| "period_4h"
| "period_1d";
-type PeriodTypeFromBroker =
+export type PeriodTypeFromBroker =
| "OneMinute"
| "FiveMinutes"
| "FifteenMinutes"
@@ -28,7 +28,7 @@ type PeriodTypeFromBroker =
| "FourHours"
| "OneDay";
-type TriggerTypeFromDatabase =
+export type TriggerTypeFromDatabase =
| "package_publication"
| "market_registration"
| "swap_buy"
@@ -37,7 +37,7 @@ type TriggerTypeFromDatabase =
| "remove_liquidity"
| "chat";
-type TriggerTypeFromBroker =
+export type TriggerTypeFromBroker =
| "PackagePublication"
| "MarketRegistration"
| "SwapBuy"
diff --git a/src/typescript/sdk/src/markets/utils.ts b/src/typescript/sdk/src/markets/utils.ts
index 74552e772..b4163e5a0 100644
--- a/src/typescript/sdk/src/markets/utils.ts
+++ b/src/typescript/sdk/src/markets/utils.ts
@@ -38,12 +38,10 @@ import {
} from "../types/types";
import type JsonTypes from "../types/json-types";
import {
- type DerivedEmojicoinData,
- type EmojicoinSymbol,
encodeEmojis,
symbolBytesToEmojis,
- type SymbolEmoji,
type SymbolEmojiData,
+ type SymbolEmoji,
} from "../emoji_data";
import { STRUCT_STRINGS, TYPE_TAGS } from "../utils";
import { getAptosClient } from "../utils/aptos-client";
@@ -94,9 +92,14 @@ export function getEmojicoinMarketAddressAndTypeTags(args: {
/**
* Helper function to get all emoji data based from a symbol.
*
+ * Do *not* pass emojis as hex strings to this function, they should be actual emojis if they're
+ * passed as strings.
+ *
* Note that the market metadata is implicitly derived from the hardcoded module address constant.
*/
-export const getEmojicoinData = (symbol: EmojicoinSymbol): DerivedEmojicoinData => {
+export const getEmojicoinData = (
+ symbol: string | string[] | SymbolEmojiData | SymbolEmojiData[]
+) => {
const symbolArray = Array.isArray(symbol)
? symbol
: ([symbol] as Array | Array);
diff --git a/src/typescript/sdk/src/queries/client-utils/candlestick.ts b/src/typescript/sdk/src/queries/client-utils/candlestick.ts
deleted file mode 100644
index e638bdb05..000000000
--- a/src/typescript/sdk/src/queries/client-utils/candlestick.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-/* eslint-disable import/no-unused-modules */ // Still this bug where it thinks this doesn't export.
-import { PeriodDuration } from "../../const";
-import { type Types } from "../../types";
-
-/**
- * Tip: Use the PeriodDuration enum to access the keys of an object of this type.
- *
- * @example
- * const candlesticks = await getInitialCandlesticks(marketID);
- * const oneDayCandlesticks = candlesticks[PeriodDuration.PERIOD_1D];
- * const oneHourCandlesticks = candlesticks[PeriodDuration.PERIOD_1H];
- * const oneMinuteCandlesticks = candlesticks[PeriodDuration.PERIOD_1M];
- */
-export type GroupedPeriodicStateEvents = Record;
-
-export const createEmptyGroupedCandlesticks = (): GroupedPeriodicStateEvents => ({
- [PeriodDuration.PERIOD_1M]: [],
- [PeriodDuration.PERIOD_5M]: [],
- [PeriodDuration.PERIOD_15M]: [],
- [PeriodDuration.PERIOD_30M]: [],
- [PeriodDuration.PERIOD_1H]: [],
- [PeriodDuration.PERIOD_4H]: [],
- [PeriodDuration.PERIOD_1D]: [],
-});
-
-// TODO: Put this in the event store...?
-/**
- * @see {@link GroupedPeriodicStateEvents}
- */
-export const toGroupedCandlesticks = (candlesticks: Types["PeriodicStateEvent"][]) => {
- const grouped = createEmptyGroupedCandlesticks();
-
- for (const candlestick of candlesticks) {
- const periodInEvent = Number(candlestick.periodicStateMetadata.period) as PeriodDuration;
- grouped[periodInEvent].push(candlestick);
- }
-
- return grouped;
-};
diff --git a/src/typescript/sdk/src/queries/const.ts b/src/typescript/sdk/src/queries/const.ts
index aec5616fc..32db155d5 100644
--- a/src/typescript/sdk/src/queries/const.ts
+++ b/src/typescript/sdk/src/queries/const.ts
@@ -23,17 +23,3 @@ export const toOrderBy = (input: OrderByStrings | OrderBy) => {
throw new Error(`Invalid order by value: ${input}`);
}
};
-
-export const toOrderByString = (input: OrderByStrings | OrderBy): OrderByStrings => {
- if (typeof input === "string") {
- return input;
- }
- switch (input) {
- case ORDER_BY.ASC:
- return "asc";
- case ORDER_BY.DESC:
- return "desc";
- default:
- return "desc";
- }
-};
diff --git a/src/typescript/sdk/src/queries/index.ts b/src/typescript/sdk/src/queries/index.ts
index 8adf250ea..17d8d2f74 100644
--- a/src/typescript/sdk/src/queries/index.ts
+++ b/src/typescript/sdk/src/queries/index.ts
@@ -1,5 +1 @@
-if (process.env.NODE_ENV !== "test") {
- require("server-only");
-}
-
export * from "./const";
diff --git a/src/typescript/sdk/src/server/index.ts b/src/typescript/sdk/src/server/index.ts
new file mode 100644
index 000000000..77b0d3c78
--- /dev/null
+++ b/src/typescript/sdk/src/server/index.ts
@@ -0,0 +1 @@
+export * from "./env";
diff --git a/src/typescript/sdk/src/types/index.ts b/src/typescript/sdk/src/types/index.ts
index 2e1c2a008..3580567d6 100644
--- a/src/typescript/sdk/src/types/index.ts
+++ b/src/typescript/sdk/src/types/index.ts
@@ -1,7 +1,7 @@
export * from "./core";
export { type default as JsonTypes } from "./json-types";
-export * from "./types";
export * from "./postgrest-types";
+export * from "./types";
/**
* Flatten a type to remove any nested properties from unions and intersections.
diff --git a/src/typescript/sdk/src/utils/aptos-utils.ts b/src/typescript/sdk/src/utils/aptos-utils.ts
index 5995b617f..befdd44fe 100644
--- a/src/typescript/sdk/src/utils/aptos-utils.ts
+++ b/src/typescript/sdk/src/utils/aptos-utils.ts
@@ -10,10 +10,6 @@ import {
} from "@aptos-labs/ts-sdk";
import { sha3_256 } from "@noble/hashes/sha3";
-export function toAptos(aptos: Aptos | AptosConfig): Aptos {
- return aptos instanceof Aptos ? aptos : new Aptos(aptos);
-}
-
export function toConfig(aptos: Aptos | AptosConfig): AptosConfig {
return aptos instanceof Aptos ? aptos.config : aptos;
}
diff --git a/src/typescript/sdk/src/utils/index.ts b/src/typescript/sdk/src/utils/index.ts
index b3ec761ed..f586543a2 100644
--- a/src/typescript/sdk/src/utils/index.ts
+++ b/src/typescript/sdk/src/utils/index.ts
@@ -1,6 +1,12 @@
export * from "./account-address";
+export * from "./aptos-client";
+export * from "./aptos-utils";
+export * from "./bonding-curve";
+export * from "./compare-bigint";
export * from "./hex";
export * from "./misc";
+export * from "./nominal-price";
+export * from "./parse-changes-for-balances";
+export * from "./sum-emoji-bytes";
export * from "./type-tags";
-export * from "./compare-bigint";
export * from "./validation";
diff --git a/src/typescript/sdk/src/utils/misc.ts b/src/typescript/sdk/src/utils/misc.ts
index 22c944835..50cbed8ea 100644
--- a/src/typescript/sdk/src/utils/misc.ts
+++ b/src/typescript/sdk/src/utils/misc.ts
@@ -14,69 +14,18 @@ import {
isSwapEvent,
} from "../types";
-// No nanoseconds because dealing with overflow is a pain (aka using a bigint) and we don't need it.
-export enum UnitOfTime {
- Microseconds,
- Milliseconds,
- Seconds,
- Minutes,
- Hours,
- Days,
- Weeks,
-}
-
-// No nanoseconds because dealing with overflow is a pain (aka using a bigint) and we don't need it.
-// NOTE: This specifically for converting from a UnitOfTime to milliseconds.
-export const UNIT_OF_TIME_MULTIPLIERS: Record = {
- [UnitOfTime.Microseconds]: 1 / 1000,
- [UnitOfTime.Milliseconds]: 1,
- [UnitOfTime.Seconds]: 1000,
- [UnitOfTime.Minutes]: 1000 * 60,
- [UnitOfTime.Hours]: 1000 * 60 * 60,
- [UnitOfTime.Days]: 1000 * 60 * 60 * 24,
- [UnitOfTime.Weeks]: 1000 * 60 * 60 * 24 * 7,
-};
-
/**
- * Sleep the current thread for the given amount of time, with an optional specifier
- * for the unit of time.
+ * Sleep for a given amount of time.
*
- *
- * @param amount the numeric amount of time to sleep
- * @param unitOfTime the unit of time to sleep for
- * @default unitOfTime milliseconds.
+ * @param amount the numeric amount of time to sleep in milliseconds.
*
*/
-export async function sleep(
- amount: number,
- unitOfTime: UnitOfTime = UnitOfTime.Milliseconds
-): Promise {
+export async function sleep(amount: number): Promise {
return new Promise((resolve) => {
- setTimeout(resolve, amount * UNIT_OF_TIME_MULTIPLIERS[unitOfTime]);
+ setTimeout(resolve, amount);
});
}
-/**
- *
- * This is a helper function to specify the unit of time for `Date.now()`.
- *
- * Note that this function returns a fractional, floating point value.
- *
- * @param unitOfTime {@link UnitOfTime}
- * @returns the elapsed {@link UnitOfTime} since the Unix epoch, as a floating point number.
- *
- * @example
- * ```
- * const time = getTime(UnitOfTime.Seconds);
- * // `time` is the number of seconds since the Unix epoch.
- * const time = getTime(UnitOfTime.Days);
- * // `time` is the number of days since the Unix epoch.
- * ```
- */
-export function getTime(unitOfTime: UnitOfTime) {
- return Date.now() / UNIT_OF_TIME_MULTIPLIERS[unitOfTime];
-}
-
/**
* This function calculates the period boundary for a swap or state event.
* @param event
diff --git a/src/typescript/sdk/tests/e2e/broker/websockets.test.ts b/src/typescript/sdk/tests/e2e/broker/websockets.test.ts
index efe7b8906..1e0112dd7 100644
--- a/src/typescript/sdk/tests/e2e/broker/websockets.test.ts
+++ b/src/typescript/sdk/tests/e2e/broker/websockets.test.ts
@@ -22,8 +22,8 @@ import {
Swap,
SwapWithRewards,
} from "../../../src/emojicoin_dot_fun/emojicoin-dot-fun";
-import { EXACT_TRANSITION_INPUT_AMOUNT, getAptosClient } from "../../../src/utils/test";
-import { getFundedAccounts } from "../../../src/utils/test/test-accounts";
+import { EXACT_TRANSITION_INPUT_AMOUNT, getAptosClient } from "../../utils";
+import { getFundedAccounts } from "../../utils/test-accounts";
import { type BrokerEvent } from "../../../src/broker-v2/types";
import {
isChatEventModel,
diff --git a/src/typescript/sdk/tests/e2e/calculate-reserves-and-supply.test.ts b/src/typescript/sdk/tests/e2e/calculate-reserves-and-supply.test.ts
index 3a0ffccf8..a47e52d15 100644
--- a/src/typescript/sdk/tests/e2e/calculate-reserves-and-supply.test.ts
+++ b/src/typescript/sdk/tests/e2e/calculate-reserves-and-supply.test.ts
@@ -9,10 +9,10 @@ import {
zip,
} from "../../src";
import { getMarketAddress } from "../../src/emojicoin_dot_fun";
-import { getFundedAccounts } from "../../src/utils/test/test-accounts";
+import { getFundedAccounts } from "../utils/test-accounts";
import { EmojicoinClient } from "../../src/client/emojicoin-client";
import { getCoinBalanceFromChanges } from "../../src/utils/parse-changes-for-balances";
-import { EXACT_TRANSITION_INPUT_AMOUNT } from "../../src/utils/test";
+import { EXACT_TRANSITION_INPUT_AMOUNT } from "../utils/helpers";
import { isInBondingCurve } from "../../src/utils/bonding-curve";
import { type UserTransactionResponse } from "@aptos-labs/ts-sdk";
import { type SwapEventModel } from "../../src/indexer-v2/types";
diff --git a/src/typescript/sdk/tests/e2e/calculate-swap.test.ts b/src/typescript/sdk/tests/e2e/calculate-swap.test.ts
index 4dce14ff5..ef3670ce1 100644
--- a/src/typescript/sdk/tests/e2e/calculate-swap.test.ts
+++ b/src/typescript/sdk/tests/e2e/calculate-swap.test.ts
@@ -14,8 +14,8 @@ import {
zip,
} from "../../src";
import { calculateSwapNetProceeds, getMarketAddress } from "../../src/emojicoin_dot_fun";
-import { getPublishHelpers } from "../../src/utils/test";
-import { getFundedAccounts } from "../../src/utils/test/test-accounts";
+import { getPublishHelpers } from "../utils/helpers";
+import { getFundedAccounts } from "../utils/test-accounts";
import { EmojicoinClient } from "../../src/client/emojicoin-client";
import { TransferCoins } from "../../src/emojicoin_dot_fun/aptos-framework";
import { getExactTransitionInputAmount } from "./helpers/misc";
diff --git a/src/typescript/sdk/tests/e2e/chat.test.ts b/src/typescript/sdk/tests/e2e/chat.test.ts
index d1fb8ee3f..d80064c42 100644
--- a/src/typescript/sdk/tests/e2e/chat.test.ts
+++ b/src/typescript/sdk/tests/e2e/chat.test.ts
@@ -2,10 +2,10 @@ import { Ed25519Account } from "@aptos-labs/ts-sdk";
import { ONE_APT } from "../../src/const";
import { getRegistryAddress, toChatEvent } from "../../src";
import { EmojicoinDotFun } from "../../src/emojicoin_dot_fun";
-import { getPublishHelpers } from "../../src/utils/test";
+import { getPublishHelpers } from "../utils";
import { getEmojicoinMarketAddressAndTypeTags } from "../../src/markets/utils";
import { STRUCT_STRINGS } from "../../src/utils/type-tags";
-import { getFundedAccount } from "../../src/utils/test/test-accounts";
+import { getFundedAccount } from "../utils/test-accounts";
jest.setTimeout(20000);
diff --git a/src/typescript/sdk/tests/e2e/emoji-data.test.ts b/src/typescript/sdk/tests/e2e/emoji-data.test.ts
index 7e929b0c9..014f8236f 100644
--- a/src/typescript/sdk/tests/e2e/emoji-data.test.ts
+++ b/src/typescript/sdk/tests/e2e/emoji-data.test.ts
@@ -1,7 +1,7 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
// cspell:word writeset
import { AccountAddress, type WriteSetChangeWriteTableItem } from "@aptos-labs/ts-sdk";
-import { getPublishHelpers } from "../../src/utils/test/helpers";
+import { getPublishHelpers } from "../utils/helpers";
import {
CHAT_EMOJI_DATA,
SYMBOL_EMOJI_DATA,
@@ -12,11 +12,11 @@ import {
isWriteSetChangeWriteTableItem,
normalizeHex,
} from "../../src";
-import SymbolEmojiJson from "../../src/emoji_data/symbol-emojis.json";
-import ChatEmojiJson from "../../src/emoji_data/chat-emojis.json";
-import { getPublishTransactionFromIndexer } from "../../src/utils/test/get-publish-txn-from-indexer";
-import { getFundedAccount } from "../../src/utils/test/test-accounts";
-import TestHelpers from "../../src/utils/test/helpers";
+import { SYMBOL_EMOJIS } from "../../src/emoji_data/symbol-emojis";
+import { CHAT_EMOJIS } from "../../src/emoji_data/chat-emojis";
+import { getPublishTransactionFromIndexer } from "../utils/get-publish-txn-from-indexer";
+import { getFundedAccount } from "../utils/test-accounts";
+import TestHelpers from "../utils/helpers";
import { waitForEmojicoinIndexer } from "../../src/indexer-v2/queries";
import { fetchMarketRegistrationEvents } from "./queries";
import { ORDER_BY } from "../../src/queries";
@@ -58,7 +58,7 @@ describe("verification of typescript emoji JSON data", () => {
// From the Move changesets.
const numEmojisAdded = symbolEmojisInWriteSets.length;
// From our TS JSON file.
- const jsonEntries = Object.entries(SymbolEmojiJson);
+ const jsonEntries = Object.entries(SYMBOL_EMOJIS);
const encoder = new TextEncoder();
const emojisInJSON = jsonEntries.map(([symbol, _name]) => normalizeHex(encoder.encode(symbol)));
@@ -132,7 +132,7 @@ describe("verification of typescript emoji JSON data", () => {
// From the Move changesets.
const numEmojisAdded = chatEmojisInWriteSet.length;
// From our TS JSON file.
- const jsonEntries = Object.entries(ChatEmojiJson);
+ const jsonEntries = Object.entries(CHAT_EMOJIS);
const encoder = new TextEncoder();
const emojisInJSON = jsonEntries.map(([symbol, _name]) => normalizeHex(encoder.encode(symbol)));
diff --git a/src/typescript/sdk/tests/e2e/exact-transition-amount.test.ts b/src/typescript/sdk/tests/e2e/exact-transition-amount.test.ts
index 0516e29b8..95110407f 100644
--- a/src/typescript/sdk/tests/e2e/exact-transition-amount.test.ts
+++ b/src/typescript/sdk/tests/e2e/exact-transition-amount.test.ts
@@ -1,9 +1,9 @@
import { INTEGRATOR_FEE_RATE_BPS } from "../../src/const";
import { SYMBOL_EMOJI_DATA, type SymbolEmoji, zip } from "../../src";
-import { getFundedAccounts } from "../../src/utils/test/test-accounts";
+import { getFundedAccounts } from "../utils/test-accounts";
import { EmojicoinClient } from "../../src/client/emojicoin-client";
import { getExactTransitionInputAmount } from "./helpers/misc";
-import { EXACT_TRANSITION_INPUT_AMOUNT } from "../../src/utils/test";
+import { EXACT_TRANSITION_INPUT_AMOUNT } from "../utils";
import { isInBondingCurve } from "../../src/utils/bonding-curve";
jest.setTimeout(30000);
diff --git a/src/typescript/sdk/tests/e2e/fund.test.ts b/src/typescript/sdk/tests/e2e/fund.test.ts
index 37f6bcef0..7beb21539 100644
--- a/src/typescript/sdk/tests/e2e/fund.test.ts
+++ b/src/typescript/sdk/tests/e2e/fund.test.ts
@@ -1,6 +1,6 @@
import { Ed25519Account, isUserTransactionResponse } from "@aptos-labs/ts-sdk";
import { ONE_APT } from "../../src";
-import { getAptosClient } from "../../src/utils/test";
+import { getAptosClient } from "../utils";
jest.setTimeout(10000);
diff --git a/src/typescript/sdk/tests/e2e/helpers/misc.ts b/src/typescript/sdk/tests/e2e/helpers/misc.ts
index d0cdcfda4..37ce1fe42 100644
--- a/src/typescript/sdk/tests/e2e/helpers/misc.ts
+++ b/src/typescript/sdk/tests/e2e/helpers/misc.ts
@@ -1,51 +1,7 @@
-import { type AccountAddressInput, type UserTransactionResponse } from "@aptos-labs/ts-sdk";
-import {
- BASIS_POINTS_PER_UNIT,
- getEvents,
- getMarketResourceFromWriteSet,
- INTEGRATOR_FEE_RATE_BPS,
- Period,
- periodEnumToRawDuration,
- rawPeriodToEnum,
- type Types,
-} from "../../../src";
+import { BASIS_POINTS_PER_UNIT, INTEGRATOR_FEE_RATE_BPS } from "../../../src";
import postgres from "postgres";
import Big from "big.js";
-import { EXACT_TRANSITION_INPUT_AMOUNT } from "../../../src/utils/test";
-
-export const getTrackerFromWriteSet = (
- res: UserTransactionResponse,
- marketAddress: AccountAddressInput,
- period: T
-) => {
- const market = getMarketResourceFromWriteSet(res, marketAddress);
- const tracker = market?.periodicStateTrackers.find((t) => rawPeriodToEnum(t.period) === period);
- return tracker;
-};
-
-/**
- * Get the periodic state tracker's period expiry time by converting the start time to
- * milliseconds and adding 1 minute, then converting that to a Date object.
- *
- * @param tracker The periodic state tracker to get the period expiry for.
- * @param period The period to get the expiry for.
- * @returns The period expiry time as a Date object.
- */
-export const getPeriodExpiryDate = (
- tracker: Types["PeriodicStateTracker"],
- period: T
-): Date => {
- // Convert from micro to milliseconds. This value is never fractional, per the smart contract.
- const millisecondStartTime = Number(tracker.startTime / 1000n);
- const periodDuration = periodEnumToRawDuration(period);
- const periodDurationMilliseconds = periodDuration.valueOf() / 1000;
- return new Date(millisecondStartTime + periodDurationMilliseconds);
-};
-
-export const getOneMinutePeriodicStateEvents = (res: UserTransactionResponse) =>
- getEvents(res).periodicStateEvents.filter(
- (e) => rawPeriodToEnum(e.periodicStateMetadata.period) === Period.Period1M
- );
+import { EXACT_TRANSITION_INPUT_AMOUNT } from "../../utils";
export const getDbConnection = () => {
return postgres(process.env.DB_URL!);
diff --git a/src/typescript/sdk/tests/e2e/publish.test.ts b/src/typescript/sdk/tests/e2e/publish.test.ts
index 74e507dd8..7d2df7b93 100644
--- a/src/typescript/sdk/tests/e2e/publish.test.ts
+++ b/src/typescript/sdk/tests/e2e/publish.test.ts
@@ -1,7 +1,7 @@
import { AccountAddress, Network, isUserTransactionResponse } from "@aptos-labs/ts-sdk";
-import { getModuleExists, publishPackage } from "../../src/utils/test/publish";
+import { getModuleExists, publishPackage } from "../utils/publish";
import { EMOJICOIN_DOT_FUN_MODULE_NAME, MODULE_ADDRESS, ONE_APT } from "../../src";
-import { getPublishHelpers } from "../../src/utils/test";
+import { getPublishHelpers } from "../utils";
jest.setTimeout(60000);
jest.retryTimes(3);
diff --git a/src/typescript/sdk/tests/e2e/queries/address.test.ts b/src/typescript/sdk/tests/e2e/queries/address.test.ts
index 88801ad73..af354a5b0 100644
--- a/src/typescript/sdk/tests/e2e/queries/address.test.ts
+++ b/src/typescript/sdk/tests/e2e/queries/address.test.ts
@@ -1,10 +1,10 @@
import { getEvents } from "../../../src";
import { Chat } from "../../../src/emojicoin_dot_fun/emojicoin-dot-fun";
import { fetchChatEvents } from "../../../src/indexer-v2/queries";
-import { getAptosClient } from "../../../src/utils/test";
+import { getAptosClient } from "../../utils";
import RowEqualityChecks from "./equality-checks";
-import { getFundedAccount } from "../../../src/utils/test/test-accounts";
-import TestHelpers from "../../../src/utils/test/helpers";
+import { getFundedAccount } from "../../utils/test-accounts";
+import TestHelpers from "../../utils/helpers";
jest.setTimeout(20000);
diff --git a/src/typescript/sdk/tests/e2e/queries/client/liquidity-pools.test.ts b/src/typescript/sdk/tests/e2e/queries/client/liquidity-pools.test.ts
index c83e462d9..72a62ce1a 100644
--- a/src/typescript/sdk/tests/e2e/queries/client/liquidity-pools.test.ts
+++ b/src/typescript/sdk/tests/e2e/queries/client/liquidity-pools.test.ts
@@ -2,8 +2,8 @@
import { type UserTransactionResponse } from "@aptos-labs/ts-sdk";
import { maxBigInt, ONE_APT, toSequenceNumberOptions, type SymbolEmoji } from "../../../../src";
-import { EXACT_TRANSITION_INPUT_AMOUNT } from "../../../../src/utils/test/helpers";
-import { getFundedAccounts } from "../../../../src/utils/test/test-accounts";
+import { EXACT_TRANSITION_INPUT_AMOUNT } from "../../../utils/helpers";
+import { getFundedAccounts } from "../../../utils/test-accounts";
import { waitForEmojicoinIndexer } from "../../../../src/indexer-v2/queries/utils";
import { fetchMarkets, fetchUserLiquidityPools } from "../../../../src/indexer-v2/queries";
import { LIMIT } from "../../../../src/queries";
diff --git a/src/typescript/sdk/tests/e2e/queries/client/market-state.test.ts b/src/typescript/sdk/tests/e2e/queries/client/market-state.test.ts
index 791ea51fd..691204f87 100644
--- a/src/typescript/sdk/tests/e2e/queries/client/market-state.test.ts
+++ b/src/typescript/sdk/tests/e2e/queries/client/market-state.test.ts
@@ -1,5 +1,5 @@
import { type SymbolEmoji } from "../../../../src";
-import { getFundedAccount } from "../../../../src/utils/test/test-accounts";
+import { getFundedAccount } from "../../../utils/test-accounts";
import { waitForEmojicoinIndexer } from "../../../../src/indexer-v2/queries/utils";
import { fetchMarketState } from "../../../../src/indexer-v2/queries";
import { type MarketStateModel } from "../../../../src/indexer-v2/types";
diff --git a/src/typescript/sdk/tests/e2e/queries/client/submit.test.ts b/src/typescript/sdk/tests/e2e/queries/client/submit.test.ts
index d6c726166..cda9c7ed3 100644
--- a/src/typescript/sdk/tests/e2e/queries/client/submit.test.ts
+++ b/src/typescript/sdk/tests/e2e/queries/client/submit.test.ts
@@ -11,7 +11,7 @@ import {
zip,
type SymbolEmoji,
} from "../../../../src";
-import { getFundedAccount } from "../../../../src/utils/test/test-accounts";
+import { getFundedAccount } from "../../../utils/test-accounts";
import { EmojicoinClient } from "../../../../src/client/emojicoin-client";
import {
Aptos,
@@ -20,8 +20,8 @@ import {
type EntryFunctionPayloadResponse,
Network,
} from "@aptos-labs/ts-sdk";
-import { EXACT_TRANSITION_INPUT_AMOUNT } from "../../../../src/utils/test/helpers";
-import { calculatePeriodBoundariesCrossed } from "../../../../src/utils/test";
+import { EXACT_TRANSITION_INPUT_AMOUNT } from "../../../utils/helpers";
+import { calculatePeriodBoundariesCrossed } from "../../../utils";
jest.setTimeout(15000);
diff --git a/src/typescript/sdk/tests/e2e/queries/liquidity-pools.test.ts b/src/typescript/sdk/tests/e2e/queries/liquidity-pools.test.ts
index 62d3b0c02..f69c550fb 100644
--- a/src/typescript/sdk/tests/e2e/queries/liquidity-pools.test.ts
+++ b/src/typescript/sdk/tests/e2e/queries/liquidity-pools.test.ts
@@ -2,12 +2,12 @@
import { type TypeTag, type UserTransactionResponse } from "@aptos-labs/ts-sdk";
import { maxBigInt, type SymbolEmoji } from "../../../src";
-import TestHelpers, { EXACT_TRANSITION_INPUT_AMOUNT } from "../../../src/utils/test/helpers";
-import { getFundedAccounts } from "../../../src/utils/test/test-accounts";
+import TestHelpers, { EXACT_TRANSITION_INPUT_AMOUNT } from "../../utils/helpers";
+import { getFundedAccounts } from "../../utils/test-accounts";
import { waitForEmojicoinIndexer } from "../../../src/indexer-v2/queries/utils";
import { ProvideLiquidity, Swap } from "../../../src/emojicoin_dot_fun/emojicoin-dot-fun";
-import { getAptosClient } from "../../../src/utils/test";
+import { getAptosClient } from "../../utils";
import { fetchMarkets, fetchUserLiquidityPools } from "../../../src/indexer-v2/queries";
import { LIMIT } from "../../../src/queries";
diff --git a/src/typescript/sdk/tests/e2e/queries/market-state.test.ts b/src/typescript/sdk/tests/e2e/queries/market-state.test.ts
index 721826a5d..ce1abbbe7 100644
--- a/src/typescript/sdk/tests/e2e/queries/market-state.test.ts
+++ b/src/typescript/sdk/tests/e2e/queries/market-state.test.ts
@@ -1,12 +1,13 @@
-import { getEventsAsProcessorModelsFromResponse, type SymbolEmoji } from "../../../src";
-import TestHelpers from "../../../src/utils/test/helpers";
-import { getFundedAccount } from "../../../src/utils/test/test-accounts";
+import { type SymbolEmoji } from "../../../src";
+import TestHelpers from "../../utils/helpers";
+import { getFundedAccount } from "../../utils/test-accounts";
import { waitForEmojicoinIndexer } from "../../../src/indexer-v2/queries/utils";
import { SwapWithRewards } from "../../../src/emojicoin_dot_fun/emojicoin-dot-fun";
-import { getAptosClient } from "../../../src/utils/test";
+import { getAptosClient } from "../../utils";
import { fetchMarketState } from "../../../src/indexer-v2/queries";
import { type MarketStateModel } from "../../../src/indexer-v2/types";
import { type JsonValue } from "../../../src/types/json-types";
+import { getEventsAsProcessorModelsFromResponse } from "../../../src/indexer-v2/mini-processor";
jest.setTimeout(20000);
diff --git a/src/typescript/sdk/tests/e2e/queries/num-markets.test.ts b/src/typescript/sdk/tests/e2e/queries/num-markets.test.ts
index 3f5884efc..be17b9b2c 100644
--- a/src/typescript/sdk/tests/e2e/queries/num-markets.test.ts
+++ b/src/typescript/sdk/tests/e2e/queries/num-markets.test.ts
@@ -2,8 +2,8 @@ import { getRegistryResourceFromWriteSet, toRegistryView } from "../../../src";
import { type SymbolEmojiName } from "../../../src/emoji_data/types";
import { RegistryView } from "../../../src/emojicoin_dot_fun/emojicoin-dot-fun";
import { getAptosClient } from "../../../src/utils/aptos-client";
-import TestHelpers from "../../../src/utils/test/helpers";
-import { getFundedAccounts } from "../../../src/utils/test/test-accounts";
+import TestHelpers from "../../utils/helpers";
+import { getFundedAccounts } from "../../utils/test-accounts";
jest.setTimeout(20000);
diff --git a/src/typescript/sdk/tests/e2e/queries/price-feed.test.ts b/src/typescript/sdk/tests/e2e/queries/price-feed.test.ts
index 42ceb2763..228dc1710 100644
--- a/src/typescript/sdk/tests/e2e/queries/price-feed.test.ts
+++ b/src/typescript/sdk/tests/e2e/queries/price-feed.test.ts
@@ -2,7 +2,7 @@ import {
fetchPriceFeedWithMarketState,
waitForEmojicoinIndexer,
} from "../../../src/indexer-v2/queries";
-import { getFundedAccount } from "../../../src/utils/test/test-accounts";
+import { getFundedAccount } from "../../utils/test-accounts";
import { EmojicoinClient } from "../../../src/client/emojicoin-client";
import {
type AnyNumberString,
diff --git a/src/typescript/sdk/tests/e2e/queries/search-emojis.test.ts b/src/typescript/sdk/tests/e2e/queries/search-emojis.test.ts
index b406fc541..c11508f68 100644
--- a/src/typescript/sdk/tests/e2e/queries/search-emojis.test.ts
+++ b/src/typescript/sdk/tests/e2e/queries/search-emojis.test.ts
@@ -1,6 +1,6 @@
import { type SymbolEmojiName, namesToEmojis } from "../../../src";
-import TestHelpers from "../../../src/utils/test/helpers";
-import { getFundedAccounts } from "../../../src/utils/test/test-accounts";
+import TestHelpers from "../../utils/helpers";
+import { getFundedAccounts } from "../../utils/test-accounts";
import { fetchMarkets } from "../../../src/indexer-v2/queries/app/home";
import { waitForEmojicoinIndexer } from "../../../src/indexer-v2/queries/utils";
diff --git a/src/typescript/sdk/tests/e2e/queries/simple.test.ts b/src/typescript/sdk/tests/e2e/queries/simple.test.ts
index 6ab776b5e..a243a8cf2 100644
--- a/src/typescript/sdk/tests/e2e/queries/simple.test.ts
+++ b/src/typescript/sdk/tests/e2e/queries/simple.test.ts
@@ -1,16 +1,16 @@
import { type SymbolEmojiName, getEvents, ONE_APT } from "../../../src";
-import TestHelpers, { EXACT_TRANSITION_INPUT_AMOUNT } from "../../../src/utils/test/helpers";
+import TestHelpers, { EXACT_TRANSITION_INPUT_AMOUNT } from "../../utils/helpers";
import { Chat, ProvideLiquidity, Swap } from "../../../src/emojicoin_dot_fun/emojicoin-dot-fun";
import {
fetchChatEvents,
fetchSwapEvents,
fetchUserLiquidityPools,
} from "../../../src/indexer-v2/queries";
-import { getAptosClient } from "../../../src/utils/test";
+import { getAptosClient } from "../../utils";
import RowEqualityChecks from "./equality-checks";
import { queryHelper } from "../../../src/indexer-v2/queries/utils";
import { TableName } from "../../../src/indexer-v2/types/json-types";
-import { getFundedAccounts } from "../../../src/utils/test/test-accounts";
+import { getFundedAccounts } from "../../utils/test-accounts";
import { postgrest } from "../../../src/indexer-v2/queries/client";
import { fetchLatestStateEventForMarket, fetchLiquidityEvents } from ".";
diff --git a/src/typescript/sdk/tests/e2e/queries/sorted/sort-queries.test.ts b/src/typescript/sdk/tests/e2e/queries/sorted/sort-queries.test.ts
index ff793143c..527de36c3 100644
--- a/src/typescript/sdk/tests/e2e/queries/sorted/sort-queries.test.ts
+++ b/src/typescript/sdk/tests/e2e/queries/sorted/sort-queries.test.ts
@@ -7,13 +7,12 @@ import {
sleep,
SYMBOL_EMOJI_DATA,
type SymbolEmojiName,
- UnitOfTime,
} from "../../../../src";
-import TestHelpers from "../../../../src/utils/test/helpers";
-import { getFundedAccounts } from "../../../../src/utils/test/test-accounts";
+import TestHelpers from "../../../utils/helpers";
+import { getFundedAccounts } from "../../../utils/test-accounts";
import { waitForEmojicoinIndexer } from "../../../../src/indexer-v2/queries/utils";
import { Swap } from "../../../../src/emojicoin_dot_fun/emojicoin-dot-fun";
-import { getAptosClient } from "../../../../src/utils/test";
+import { getAptosClient } from "../../../utils";
import { fetchMarkets } from "../../../../src/indexer-v2/queries/app/home";
import { SortMarketsBy } from "../../../../src/indexer-v2/types/common";
import {
@@ -66,7 +65,7 @@ describe("sorting queries for the sort filters on the home page", () => {
});
// Sleep in reverse order to mix up the bump order of the markets so it doesn't match
// the volume queries, since the inputAmounts are in order according to the index `i`.
- await sleep(marketEmojiNames.length - i, UnitOfTime.Seconds);
+ await sleep((marketEmojiNames.length - i) * 1000);
const swap = Swap.submit({
aptosConfig: aptos.config,
swapper: registrants[i],
diff --git a/src/typescript/sdk/tests/e2e/queries/volume.test.ts b/src/typescript/sdk/tests/e2e/queries/volume.test.ts
index 465cf5ded..9b5d57e48 100644
--- a/src/typescript/sdk/tests/e2e/queries/volume.test.ts
+++ b/src/typescript/sdk/tests/e2e/queries/volume.test.ts
@@ -3,173 +3,22 @@ import {
type UserTransactionResponse,
type Account,
} from "@aptos-labs/ts-sdk";
-import {
- maxBigInt,
- getEvents,
- getPeriodBoundary,
- getPeriodBoundaryAsDate,
- ONE_APT,
- Period,
- sleep,
- sum,
- sumByKey,
-} from "../../../src";
+import { maxBigInt, getEvents, sum, sumByKey } from "../../../src";
import { Swap } from "../../../src/emojicoin_dot_fun/emojicoin-dot-fun";
-import { getAptosClient } from "../../../src/utils/test";
-import { getFundedAccounts } from "../../../src/utils/test/test-accounts";
+import { getAptosClient } from "../../utils";
+import { getFundedAccounts } from "../../utils/test-accounts";
import { type Events } from "../../../src/emojicoin_dot_fun/events";
-import { getTxnBatchHighestVersion } from "../../../src/utils/test/get-txn-batch-highest-version";
-import TestHelpers from "../../../src/utils/test/helpers";
-import {
- getOneMinutePeriodicStateEvents,
- getPeriodExpiryDate,
- getTrackerFromWriteSet,
-} from "../helpers";
-import {
- fetchDailyVolumeForMarket,
- fetchMarket1MPeriodsInLastDay,
- fetchSwapEventsBySwapper,
-} from ".";
+import { getTxnBatchHighestVersion } from "../../utils/get-txn-batch-highest-version";
+import TestHelpers from "../../utils/helpers";
+import { fetchDailyVolumeForMarket, fetchSwapEventsBySwapper } from ".";
// We need a long timeout because the test must wait for the 1-minute period to expire.
jest.setTimeout(75000);
-const TWENTY_FIVE_SECONDS = 20 * 1000;
-const TWO_SECONDS = 2000;
-
describe("queries swap_events and returns accurate swap row data", () => {
const aptos = getAptosClient();
const fundedAccounts = getFundedAccounts("011", "012", "013", "014", "015", "016");
- it("sums a market's daily volume over multiple 1-minute periods with 3 swaps", async () => {
- // This test needs very specific conditions in order to verify accuracy in a reasonable amount
- // of time. The easiest way to set it up correctly is by aligning the start time of the test
- // with around half a minute before the end of the current 1-minute period. This way, we can
- // ensure that the first swap is in the same period as the second swap, and the third swap
- // creates a new period. This is the only way to ensure that the daily volume is accurately
- // calculated across multiple periods.
- const currentPeriodBoundary = getPeriodBoundaryAsDate(Date.now() * 1000, Period.Period1M);
- const timeUntilNextPeriod = currentPeriodBoundary.getTime() - Date.now();
- if (timeUntilNextPeriod < TWENTY_FIVE_SECONDS) {
- await sleep(timeUntilNextPeriod);
- // There might be some drift between the current time in the js runtime and in the Aptos VM.
- // We'll sleep for a little bit longer to ensure that the period has expired.
- await sleep(2000);
- }
-
- const swapper = fundedAccounts.pop()!;
- const { marketAddress, emojicoin, emojicoinLP, integrator } =
- await TestHelpers.registerMarketFromNames({
- registrant: swapper,
- emojiNames: ["screwdriver"],
- });
-
- const swapCall = (inputAmount: bigint) =>
- Swap.submit({
- aptosConfig: aptos.config,
- swapper,
- marketAddress,
- inputAmount,
- isSell: false,
- typeTags: [emojicoin, emojicoinLP],
- integrator: integrator.accountAddress,
- integratorFeeRateBPs: 0,
- minOutputAmount: 1n,
- });
-
- const rand = Math.random;
- const inputAmounts = [rand(), rand(), rand()]
- .map((v) => v * ONE_APT)
- .map(Math.floor)
- .map(BigInt) as [bigint, bigint, bigint];
-
- const first = await swapCall(inputAmounts[0]);
- const firstQuoteVolume = getEvents(first).swapEvents[0].quoteVolume;
- const firstEvents = getEvents(first);
- const { marketID } = firstEvents.swapEvents[0];
-
- // There should be no periodic state events emitted for the first swap, but right now this test
- // must be flaky due to the way that period boundaries are calculated (explained above), so
- // console.warn if we encounter a periodic state event and then fail + retry.
- if (firstEvents.periodicStateEvents.length > 1) {
- console.warn(
- "This test is inherently flaky and started at an inopportune time with regards to the " +
- "PERIOD_1M boundary. It will now fail- please re-run the tests."
- );
- }
- expect(firstEvents.periodicStateEvents.length).toEqual(0);
-
- const firstTracker = getTrackerFromWriteSet(first, marketAddress, Period.Period1M)!;
- expect(firstTracker).toBeDefined();
- expect(firstTracker.volumeQuote).toEqual(firstQuoteVolume);
- expect(firstTracker.startTime).toEqual(getPeriodBoundary(first.timestamp, Period.Period1M));
-
- await fetchDailyVolumeForMarket({ marketID, minimumVersion: first.version }).then((r) => {
- expect(r[0].dailyVolume).toEqual(firstQuoteVolume);
- });
- let periods = await fetchMarket1MPeriodsInLastDay({ marketID });
- // The first period ever isn't tracked until the *end* of the period- so even with one swap,
- // we won't see a period until this periodic state tracker ends.
- expect(periods.length).toEqual(0);
- const periodExpiry = getPeriodExpiryDate(firstTracker, Period.Period1M);
- const enoughTime = periodExpiry.getTime() - Date.now() > TWO_SECONDS;
- if (!enoughTime) {
- console.warn("There may not be enough time to call the swap functions. The test may fail.");
- }
-
- // Now call a second swap to ensure that it's slotted in with the first swap in the same
- // 1-minute period.
-
- expect(getOneMinutePeriodicStateEvents(first).length).toEqual(0);
- const second = await swapCall(inputAmounts[1]);
- const secondEvents = getEvents(second);
- const secondQuoteVolume = secondEvents.swapEvents[0].quoteVolume;
- const secondTracker = getTrackerFromWriteSet(second, marketAddress, Period.Period1M)!;
- expect(secondTracker).toBeDefined();
- expect(secondTracker.startTime).toEqual(firstTracker.startTime);
- expect(secondTracker.volumeQuote).toEqual(firstQuoteVolume + secondQuoteVolume);
-
- // There should be no periodic state events emitted for the second swap.
- expect(getOneMinutePeriodicStateEvents(second).length).toEqual(0);
-
- await fetchDailyVolumeForMarket({ marketID, minimumVersion: second.version }).then((r) => {
- expect(r[0].dailyVolume).toEqual(firstQuoteVolume + secondQuoteVolume);
- });
- periods = await fetchMarket1MPeriodsInLastDay({ marketID });
- expect(periods.length).toEqual(0);
-
- // Sleep until the period expiry time.
- await sleep(periodExpiry.getTime() - Date.now());
- // There might be some drift between the current time in the js runtime and in the Aptos VM.
- // We'll sleep for a little bit longer to ensure that the period has expired.
- await sleep(2000);
-
- // Now perform another swap and ensure that the daily volume has been accurately updated.
- const third = await swapCall(inputAmounts[2]);
- const thirdSwapTimestamp = BigInt(third.timestamp);
- const thirdTracker = getTrackerFromWriteSet(third, marketAddress, Period.Period1M)!;
- expect(thirdTracker).toBeDefined();
- expect(thirdTracker.startTime).toEqual(getPeriodBoundary(thirdSwapTimestamp, Period.Period1M));
- const thirdEvents = getEvents(third);
- const thirdQuoteVolume = thirdEvents.swapEvents[0].quoteVolume;
- expect(thirdTracker.volumeQuote).toEqual(thirdQuoteVolume);
-
- // *Now* we should see periodic state events being emitted.
- expect(getOneMinutePeriodicStateEvents(third).length).toEqual(1);
-
- // Make sure the indexer processor saw the new periodic state event.
- periods = await fetchMarket1MPeriodsInLastDay({ marketID, minimumVersion: third.version });
- expect(periods.length).toEqual(1);
-
- // Ensure that the total daily volume is accurate.
- const only1MPeriodsVolume = sumByKey(periods, "volume");
- expect(only1MPeriodsVolume).toEqual(firstQuoteVolume + secondQuoteVolume);
-
- await fetchDailyVolumeForMarket({ marketID }).then((r) => {
- expect(r[0].dailyVolume).toEqual(firstQuoteVolume + secondQuoteVolume + thirdQuoteVolume);
- });
- });
-
it("sums the volume by user and market daily volume", async () => {
const swappersAndVolumes = [
[fundedAccounts.pop()!, 100n] as const,
diff --git a/src/typescript/sdk/tests/e2e/register.test.ts b/src/typescript/sdk/tests/e2e/register.test.ts
index 5f4cc6ba6..a394a5fa6 100644
--- a/src/typescript/sdk/tests/e2e/register.test.ts
+++ b/src/typescript/sdk/tests/e2e/register.test.ts
@@ -9,9 +9,9 @@ import {
getRegistryAddress,
} from "../../src";
import { EmojicoinDotFun } from "../../src/emojicoin_dot_fun";
-import { getPublishHelpers } from "../../src/utils/test";
+import { getPublishHelpers } from "../utils";
import { standardizeAddress } from "../../src/utils/account-address";
-import { getFundedAccount } from "../../src/utils/test/test-accounts";
+import { getFundedAccount } from "../utils/test-accounts";
jest.setTimeout(20000);
diff --git a/src/typescript/sdk/tests/e2e/swap.test.ts b/src/typescript/sdk/tests/e2e/swap.test.ts
index 70cf86232..a0c4c8876 100644
--- a/src/typescript/sdk/tests/e2e/swap.test.ts
+++ b/src/typescript/sdk/tests/e2e/swap.test.ts
@@ -7,7 +7,7 @@ import {
import { ONE_APT } from "../../src/const";
import { SYMBOL_EMOJI_DATA } from "../../src";
import { EmojicoinDotFun } from "../../src/emojicoin_dot_fun";
-import { getPublishHelpers } from "../../src/utils/test";
+import { getPublishHelpers } from "../utils";
import {
getEmojicoinMarketAddressAndTypeTags,
getRegistrationGracePeriodFlag,
@@ -18,7 +18,7 @@ import {
getCoinBalanceFromChanges,
getFeeStatement,
} from "../../src/utils/parse-changes-for-balances";
-import { getFundedAccount } from "../../src/utils/test/test-accounts";
+import { getFundedAccount } from "../utils/test-accounts";
jest.setTimeout(90000);
diff --git a/src/typescript/sdk/tests/e2e/views.test.ts b/src/typescript/sdk/tests/e2e/views.test.ts
index 6e83384fc..9415a4bd7 100644
--- a/src/typescript/sdk/tests/e2e/views.test.ts
+++ b/src/typescript/sdk/tests/e2e/views.test.ts
@@ -1,6 +1,6 @@
import { Hex, type HexInput } from "@aptos-labs/ts-sdk";
import * as EmojicoinDotFun from "../../src/emojicoin_dot_fun/emojicoin-dot-fun";
-import { getPublishHelpers } from "../../src/utils/test";
+import { getPublishHelpers } from "../utils";
jest.setTimeout(15000);
diff --git a/src/typescript/sdk/tests/post-test.ts b/src/typescript/sdk/tests/post-test.ts
index 4e0a386be..41f1d3b12 100644
--- a/src/typescript/sdk/tests/post-test.ts
+++ b/src/typescript/sdk/tests/post-test.ts
@@ -1,5 +1,5 @@
/* eslint-disable no-underscore-dangle */
-import { DockerTestHarness } from "../src/utils/test/docker/docker-test-harness";
+import { DockerTestHarness } from "./utils/docker/docker-test-harness";
export default async function postTest() {
await DockerTestHarness.stop({ frontend: false });
diff --git a/src/typescript/sdk/tests/pre-test.ts b/src/typescript/sdk/tests/pre-test.ts
index 52e14def5..f04e5406f 100644
--- a/src/typescript/sdk/tests/pre-test.ts
+++ b/src/typescript/sdk/tests/pre-test.ts
@@ -1,6 +1,6 @@
/* eslint-disable no-underscore-dangle */
import WebSocket from "ws";
-import { DockerTestHarness } from "../src/utils/test/docker/docker-test-harness";
+import { DockerTestHarness } from "./utils/docker/docker-test-harness";
// process.env.NO_TEST_SETUP => to skip the docker container test setup, like for unit tests.
// process.env.FILTER_TEST_LOGS => quiet mode, don't output logs that print to the console a lot.
diff --git a/src/typescript/sdk/tests/tsconfig.json b/src/typescript/sdk/tests/tsconfig.json
index 96155ae09..b133d3b05 100644
--- a/src/typescript/sdk/tests/tsconfig.json
+++ b/src/typescript/sdk/tests/tsconfig.json
@@ -1,7 +1,9 @@
{
+ "compilerOptions": {
+ "noEmit": true
+ },
"extends": "../tsconfig.json",
"include": [
- "**/*.ts",
- "../src/utils/aptos-client.ts"
+ "./**/*"
]
}
diff --git a/src/typescript/sdk/tests/unit/emoji-regex.test.ts b/src/typescript/sdk/tests/unit/emoji-regex.test.ts
index 91ea17abd..88d4a37a1 100644
--- a/src/typescript/sdk/tests/unit/emoji-regex.test.ts
+++ b/src/typescript/sdk/tests/unit/emoji-regex.test.ts
@@ -1,15 +1,8 @@
-import fs from "fs";
-import path from "path";
import { CHAT_EMOJI_DATA, type ChatEmoji, SYMBOL_EMOJI_DATA, type SymbolEmoji } from "../../src";
-import {
- encodeEmojis,
- getEmojisInString,
- isValidMarketSymbol,
- symbolToEmojis,
-} from "../../src/emoji_data/utils";
-import SymbolEmojiData from "../../src/emoji_data/symbol-emojis.json";
-import { getGitRoot } from "../../src/utils/test";
+import { encodeEmojis, getEmojisInString, symbolToEmojis } from "../../src/emoji_data/utils";
+import { SYMBOL_EMOJIS } from "../../src/emoji_data/symbol-emojis";
import { toChatMessageEntryFunctionArgs } from "../../src/emoji_data/chat-message";
+import { isValidMarketSymbol } from "../utils/market-symbol";
describe("tests emojis against the emoji regex to ensure they're properly validated", () => {
it("tests a few single emojis", () => {
@@ -67,8 +60,8 @@ describe("tests the emojis in a string, and the emoji data for each one", () =>
});
it("maps the emojis to their corresponding data", () => {
- const symbols = new Set(Object.keys(SymbolEmojiData));
- const names = new Set(Object.values(SymbolEmojiData));
+ const symbols = new Set(Object.keys(SYMBOL_EMOJIS));
+ const names = new Set(Object.values(SYMBOL_EMOJIS));
const emojis = new Array("🎅", "🎅🏽", "🎅🏼", "🎅🏿", "🌎", "🇧🇷", "⭐").map((v) =>
SYMBOL_EMOJI_DATA.byEmojiStrict(v)
);
@@ -89,8 +82,8 @@ describe("tests the emojis in a string, and the emoji data for each one", () =>
const symbol = " 🎅🎅🏽🎅🏼🎅🏿 🌎🇧🇷 ⭐ ...";
const emojiData = symbolToEmojis(symbol);
expect(emojiData.emojis).toHaveLength(7);
- const symbols = new Set(Object.keys(SymbolEmojiData));
- const names = new Set(Object.values(SymbolEmojiData));
+ const symbols = new Set(Object.keys(SYMBOL_EMOJIS));
+ const names = new Set(Object.values(SYMBOL_EMOJIS));
emojiData.emojis.forEach((emoji) => {
expect(symbols.has(emoji.emoji)).toBe(true);
expect(names.has(emoji.name)).toBe(true);
@@ -119,33 +112,6 @@ describe("tests the emojis in a string, and the emoji data for each one", () =>
}
});
- it("ensures the Rust processor has the same emoji data as the TypeScript SDK", () => {
- const gitRoot = getGitRoot();
- const tsPath = path.join(gitRoot, "src/typescript/sdk/src/emoji_data/symbol-emojis.json");
- const rustPath = path.join(
- gitRoot,
- "src/rust/processor",
- "rust/processor",
- "src/db/common/models/emojicoin_models",
- "parsers/emojis/symbol-emojis.json"
- );
- const tsData = fs.readFileSync(tsPath);
- const tsJSON = JSON.parse(tsData.toString());
- const rustJSON = (() => {
- try {
- const rustData = fs.readFileSync(rustPath).toString();
- return JSON.parse(rustData);
- } catch (e) {
- // File not found. If we're in CI, that's fine. Only need to check this infrequently.
- if (process.env.CI || process.env.GITHUB_ACTIONS) {
- return tsJSON;
- }
- return "[]";
- }
- })();
- expect(JSON.stringify(tsJSON) === JSON.stringify(rustJSON));
- });
-
it("constructs the chat message entry function args with the helper function correctly", () => {
// Symbol emojis.
const a: SymbolEmoji[] = ["⛄", "🎽", "🏃🏻"];
diff --git a/src/typescript/sdk/tests/unit/git-root.test.ts b/src/typescript/sdk/tests/unit/git-root.test.ts
index ead2aa978..f85321336 100644
--- a/src/typescript/sdk/tests/unit/git-root.test.ts
+++ b/src/typescript/sdk/tests/unit/git-root.test.ts
@@ -1,5 +1,5 @@
import path from "path";
-import { getGitRoot } from "../../src/utils/test/helpers";
+import { getGitRoot } from "../utils/helpers";
describe("ensures find git root works as expected", () => {
it("should find the correct git root", () => {
diff --git a/src/typescript/sdk/tests/unit/period-boundaries.test.ts b/src/typescript/sdk/tests/unit/period-boundaries.test.ts
index 2b0939302..610ec055e 100644
--- a/src/typescript/sdk/tests/unit/period-boundaries.test.ts
+++ b/src/typescript/sdk/tests/unit/period-boundaries.test.ts
@@ -1,6 +1,6 @@
import { PERIODS, PeriodDuration, getPeriodStartTime } from "../../src";
-import { calculatePeriodBoundariesCrossed } from "../../src/utils/test";
-import { SAMPLE_STATE_EVENT, SAMPLE_SWAP_EVENT } from "../../src/utils/test/sample-data";
+import { calculatePeriodBoundariesCrossed } from "../utils";
+import { SAMPLE_STATE_EVENT, SAMPLE_SWAP_EVENT } from "../utils/sample-data";
const swap = SAMPLE_SWAP_EVENT;
const state = SAMPLE_STATE_EVENT;
diff --git a/src/typescript/sdk/tests/unit/sleep.test.ts b/src/typescript/sdk/tests/unit/sleep.test.ts
deleted file mode 100644
index 8066adee4..000000000
--- a/src/typescript/sdk/tests/unit/sleep.test.ts
+++ /dev/null
@@ -1,63 +0,0 @@
-import { getTime, sleep, UNIT_OF_TIME_MULTIPLIERS, UnitOfTime } from "../../src";
-
-jest.retryTimes(3);
-
-describe("sleep utility function with units of time", () => {
- it("converts units of time to milliseconds", () => {
- expect(UNIT_OF_TIME_MULTIPLIERS[UnitOfTime.Microseconds]).toEqual(0.001);
- expect(UNIT_OF_TIME_MULTIPLIERS[UnitOfTime.Milliseconds]).toEqual(1);
- expect(UNIT_OF_TIME_MULTIPLIERS[UnitOfTime.Seconds]).toBeCloseTo(1000, 1);
- expect(UNIT_OF_TIME_MULTIPLIERS[UnitOfTime.Minutes]).toBeCloseTo(1000 * 60, 1);
- expect(UNIT_OF_TIME_MULTIPLIERS[UnitOfTime.Hours]).toBeCloseTo(1000 * 60 * 60, 1);
- expect(UNIT_OF_TIME_MULTIPLIERS[UnitOfTime.Days]).toBeCloseTo(1000 * 60 * 60 * 24, 1);
- expect(UNIT_OF_TIME_MULTIPLIERS[UnitOfTime.Weeks]).toBeCloseTo(1000 * 60 * 60 * 24 * 7, 1);
- });
-
- it("sleeps one tenth of a second for each unit of time", async () => {
- const inputs = [
- [UnitOfTime.Microseconds, 100_000],
- [UnitOfTime.Milliseconds, 100],
- [UnitOfTime.Seconds, 0.1],
- [UnitOfTime.Minutes, 0.1 / 60],
- [UnitOfTime.Hours, 0.1 / (60 * 60)],
- [UnitOfTime.Days, 0.1 / (60 * 60 * 24)],
- [UnitOfTime.Weeks, 0.1 / (60 * 60 * 24 * 7)],
- ] as const;
-
- // Note that jest screws up the `startTime` values if you don't index each start time.
- const startTimes = Array.from({ length: inputs.length }, () => 0);
- const results = inputs.map(async ([unit, amt], i) => {
- startTimes[i] = Date.now();
- return sleep(amt, unit).then(() => {
- const endTime = Date.now();
- return endTime - startTimes[i];
- });
- });
- const res = await Promise.all(results);
- res.forEach((r) => {
- // The difference between end time and start time should be 100 milliseconds, with a grace
- // period of 10 ms after the expected time.
- // However, due to rounding errors, this will sometimes appear as having occurred before
- // 100 ms, so we allow a 1 ms leeway (99) on the lower end.
- expect(r).toBeGreaterThanOrEqual(99);
- expect(r).toBeLessThanOrEqual(110);
- });
- });
-
- it("converts the time with microsecond granularity", () => {
- const nowInDays = Date.now() / (1000 * 60 * 60 * 24);
- const res = getTime(UnitOfTime.Days);
- // If the difference is greater than 1 microsecond, then the test is invalid.
- expect((nowInDays - res) * 1_000_000).toBeLessThan(1);
- });
-
- it("should not overflow for 1000 years", () => {
- // In milliseconds.
- const now = Date.now();
- const aThousandYearsFromNow6 = now + UNIT_OF_TIME_MULTIPLIERS[UnitOfTime.Days] * 365 * 1000;
- expect(UNIT_OF_TIME_MULTIPLIERS[UnitOfTime.Microseconds] * aThousandYearsFromNow6).toBeLessThan(
- Number.MAX_SAFE_INTEGER
- );
- expect(aThousandYearsFromNow6).toBeLessThan(Number.MAX_SAFE_INTEGER);
- });
-});
diff --git a/src/typescript/sdk/src/utils/test/calculate-periodic-boundaries-crossed.ts b/src/typescript/sdk/tests/utils/calculate-periodic-boundaries-crossed.ts
similarity index 94%
rename from src/typescript/sdk/src/utils/test/calculate-periodic-boundaries-crossed.ts
rename to src/typescript/sdk/tests/utils/calculate-periodic-boundaries-crossed.ts
index a96365989..4ff21e206 100644
--- a/src/typescript/sdk/src/utils/test/calculate-periodic-boundaries-crossed.ts
+++ b/src/typescript/sdk/tests/utils/calculate-periodic-boundaries-crossed.ts
@@ -1,6 +1,6 @@
-import { type Period, periodEnumToRawDuration, PERIODS } from "../../const";
-import { type AnyNumberString } from "../../types";
-import { getPeriodBoundary } from "../misc";
+import { type Period, periodEnumToRawDuration, PERIODS } from "../../src/const";
+import { type AnyNumberString } from "../../src/types";
+import { getPeriodBoundary } from "../../src/utils/misc";
/**
* Calculates the number of period boundaries crossed between two times. Since this will always
diff --git a/src/typescript/sdk/src/utils/test/docker/docker-test-harness.ts b/src/typescript/sdk/tests/utils/docker/docker-test-harness.ts
similarity index 97%
rename from src/typescript/sdk/src/utils/test/docker/docker-test-harness.ts
rename to src/typescript/sdk/tests/utils/docker/docker-test-harness.ts
index 44a3833f8..41442c0d6 100644
--- a/src/typescript/sdk/src/utils/test/docker/docker-test-harness.ts
+++ b/src/typescript/sdk/tests/utils/docker/docker-test-harness.ts
@@ -4,7 +4,7 @@
import path from "node:path";
import os from "node:os";
import { kill } from "node:process";
-import { waitFor } from "../..";
+import { waitFor } from "../../../src/utils";
import { getGitRoot } from "../helpers";
import { type ContainerName } from "./logs";
import {
@@ -14,8 +14,8 @@ import {
execPromise,
spawnWrapper,
} from "./utils";
-import { EMOJICOIN_INDEXER_URL } from "../../../server/env";
-import { TableName } from "../../../indexer-v2/types/json-types";
+import { EMOJICOIN_INDEXER_URL } from "../../../src/server/env";
+import { TableName } from "../../../src/indexer-v2/types/json-types";
import { readFileSync, writeFileSync } from "node:fs";
import { execSync } from "node:child_process";
diff --git a/src/typescript/sdk/src/utils/test/docker/logs.ts b/src/typescript/sdk/tests/utils/docker/logs.ts
similarity index 100%
rename from src/typescript/sdk/src/utils/test/docker/logs.ts
rename to src/typescript/sdk/tests/utils/docker/logs.ts
diff --git a/src/typescript/sdk/src/utils/test/docker/utils.ts b/src/typescript/sdk/tests/utils/docker/utils.ts
similarity index 100%
rename from src/typescript/sdk/src/utils/test/docker/utils.ts
rename to src/typescript/sdk/tests/utils/docker/utils.ts
diff --git a/src/typescript/sdk/src/utils/test/ensure-write-file-sync.ts b/src/typescript/sdk/tests/utils/ensure-write-file-sync.ts
similarity index 100%
rename from src/typescript/sdk/src/utils/test/ensure-write-file-sync.ts
rename to src/typescript/sdk/tests/utils/ensure-write-file-sync.ts
diff --git a/src/typescript/sdk/src/utils/test/get-publish-txn-from-indexer.ts b/src/typescript/sdk/tests/utils/get-publish-txn-from-indexer.ts
similarity index 91%
rename from src/typescript/sdk/src/utils/test/get-publish-txn-from-indexer.ts
rename to src/typescript/sdk/tests/utils/get-publish-txn-from-indexer.ts
index 186a8f5a8..f0e8de463 100644
--- a/src/typescript/sdk/src/utils/test/get-publish-txn-from-indexer.ts
+++ b/src/typescript/sdk/tests/utils/get-publish-txn-from-indexer.ts
@@ -4,8 +4,8 @@ import {
isUserTransactionResponse,
type TransactionResponse,
} from "@aptos-labs/ts-sdk";
-import { getEvents, Trigger } from "../..";
-import { getAptosClient } from "../aptos-client";
+import { getEvents, Trigger } from "../../src";
+import { getAptosClient } from "../../src/utils/aptos-client";
import { getPublisherPrivateKey } from "./helpers";
export const getPublishTransactionFromIndexer = async () => {
diff --git a/src/typescript/sdk/src/utils/test/get-txn-batch-highest-version.ts b/src/typescript/sdk/tests/utils/get-txn-batch-highest-version.ts
similarity index 84%
rename from src/typescript/sdk/src/utils/test/get-txn-batch-highest-version.ts
rename to src/typescript/sdk/tests/utils/get-txn-batch-highest-version.ts
index 74cedb48a..8a4501739 100644
--- a/src/typescript/sdk/src/utils/test/get-txn-batch-highest-version.ts
+++ b/src/typescript/sdk/tests/utils/get-txn-batch-highest-version.ts
@@ -1,5 +1,5 @@
import { type UserTransactionResponse } from "@aptos-labs/ts-sdk";
-import { compareBigInt } from "../compare-bigint";
+import { compareBigInt } from "../../src/utils/compare-bigint";
export const getTxnBatchHighestVersion = (responses: Array) => {
const response = responses.sort((a, b) => compareBigInt(a.version, b.version)).at(-1);
diff --git a/src/typescript/sdk/src/utils/test/helpers.ts b/src/typescript/sdk/tests/utils/helpers.ts
similarity index 95%
rename from src/typescript/sdk/src/utils/test/helpers.ts
rename to src/typescript/sdk/tests/utils/helpers.ts
index 81f3261f4..b18f10325 100644
--- a/src/typescript/sdk/src/utils/test/helpers.ts
+++ b/src/typescript/sdk/tests/utils/helpers.ts
@@ -7,9 +7,9 @@ import {
} from "@aptos-labs/ts-sdk";
import path from "path";
import findGitRoot from "find-git-root";
-import { getAptosClient } from "../aptos-client";
-import { getEmojicoinMarketAddressAndTypeTags } from "../../markets/utils";
-import { EmojicoinDotFun, getEvents } from "../../emojicoin_dot_fun";
+import { getAptosClient } from "../../src/utils/aptos-client";
+import { getEmojicoinMarketAddressAndTypeTags } from "../../src/markets/utils";
+import { EmojicoinDotFun, getEvents } from "../../src/emojicoin_dot_fun";
import {
generateRandomSymbol,
type JsonTypes,
@@ -20,8 +20,8 @@ import {
type SymbolEmojiName,
toMarketEmojiData,
type Types,
-} from "../..";
-import { type Events } from "../../emojicoin_dot_fun/events";
+} from "../../src";
+import { type Events } from "../../src/emojicoin_dot_fun/events";
// The exact amount of APT to trigger a transition out of the bonding curve. Note that the
// fee integrator rate BPs must be set to 0 for this to work.
diff --git a/src/typescript/sdk/src/utils/test/index.ts b/src/typescript/sdk/tests/utils/index.ts
similarity index 75%
rename from src/typescript/sdk/src/utils/test/index.ts
rename to src/typescript/sdk/tests/utils/index.ts
index f28febebe..3990c2fd3 100644
--- a/src/typescript/sdk/src/utils/test/index.ts
+++ b/src/typescript/sdk/tests/utils/index.ts
@@ -1,4 +1,4 @@
-export * from "../aptos-client";
+export * from "../../src/utils/aptos-client";
export * from "./helpers";
export * from "./publish";
export * from "./load-priv-key";
diff --git a/src/typescript/sdk/src/utils/test/load-priv-key.ts b/src/typescript/sdk/tests/utils/load-priv-key.ts
similarity index 96%
rename from src/typescript/sdk/src/utils/test/load-priv-key.ts
rename to src/typescript/sdk/tests/utils/load-priv-key.ts
index 341044bed..de2fd54fa 100644
--- a/src/typescript/sdk/src/utils/test/load-priv-key.ts
+++ b/src/typescript/sdk/tests/utils/load-priv-key.ts
@@ -1,6 +1,6 @@
/* eslint-disable no-console */
import { Account, AccountAddress, Ed25519PrivateKey } from "@aptos-labs/ts-sdk";
-import { VERCEL } from "../../const";
+import { VERCEL } from "../../src/const";
export const getTestPublisherPrivateKey = () => {
if (VERCEL) {
diff --git a/src/typescript/sdk/tests/utils/market-symbol.ts b/src/typescript/sdk/tests/utils/market-symbol.ts
new file mode 100644
index 000000000..0a1287e50
--- /dev/null
+++ b/src/typescript/sdk/tests/utils/market-symbol.ts
@@ -0,0 +1,32 @@
+import { MAX_SYMBOL_LENGTH, getEmojisInString, isValidEmoji } from "../../src";
+
+/**
+ * This parses an input string to see if it's a valid symbol.
+ * It not only checks that each individual emoji is valid, but also that the total number
+ * of bytes is valid as well.
+ * @param symbol the symbol to be checked.
+ * @returns whether or not the symbol is a valid symbol.
+ *
+ * @example
+ * ```typescript
+ * isValidSymbol('🟥🟥'); // true
+ * isValidSymbol('🟥🟥🟥🟥🟥'); // false (too long)
+ * ```
+ */
+export const isValidMarketSymbol = (symbol: string): boolean => {
+ const numBytes = new TextEncoder().encode(symbol).length;
+ if (numBytes > MAX_SYMBOL_LENGTH || numBytes === 0) {
+ return false;
+ }
+ const emojis = getEmojisInString(symbol);
+ const reconstructed = Array.from(emojis).join("");
+ if (reconstructed !== symbol) {
+ return false;
+ }
+ for (const emoji of emojis) {
+ if (!isValidEmoji(emoji)) {
+ return false;
+ }
+ }
+ return true;
+};
diff --git a/src/typescript/sdk/src/utils/test/print-divider.ts b/src/typescript/sdk/tests/utils/print-divider.ts
similarity index 100%
rename from src/typescript/sdk/src/utils/test/print-divider.ts
rename to src/typescript/sdk/tests/utils/print-divider.ts
diff --git a/src/typescript/sdk/src/utils/test/publish.ts b/src/typescript/sdk/tests/utils/publish.ts
similarity index 98%
rename from src/typescript/sdk/src/utils/test/publish.ts
rename to src/typescript/sdk/tests/utils/publish.ts
index f1f0776df..bd8e3cbd5 100644
--- a/src/typescript/sdk/src/utils/test/publish.ts
+++ b/src/typescript/sdk/tests/utils/publish.ts
@@ -9,8 +9,8 @@ import {
Ed25519PrivateKey,
} from "@aptos-labs/ts-sdk";
import path from "path";
-import { getAptosClient } from "../aptos-client";
-import { MAX_GAS_FOR_PUBLISH, ONE_APT, EMOJICOIN_DOT_FUN_MODULE_NAME } from "../..";
+import { getAptosClient } from "../../src/utils/aptos-client";
+import { MAX_GAS_FOR_PUBLISH, ONE_APT, EMOJICOIN_DOT_FUN_MODULE_NAME } from "../../src";
import { getGitRoot } from "./helpers";
type ResultJSON = {
diff --git a/src/typescript/sdk/src/utils/test/sample-data.ts b/src/typescript/sdk/tests/utils/sample-data.ts
similarity index 94%
rename from src/typescript/sdk/src/utils/test/sample-data.ts
rename to src/typescript/sdk/tests/utils/sample-data.ts
index 279e95f96..56bede1fc 100644
--- a/src/typescript/sdk/src/utils/test/sample-data.ts
+++ b/src/typescript/sdk/tests/utils/sample-data.ts
@@ -1,5 +1,5 @@
-import { Trigger } from "../..";
-import { type Types } from "../../types/types";
+import { Trigger } from "../../src";
+import { type Types } from "../../src/types/types";
export const SAMPLE_SWAP_EVENT: Types["SwapEvent"] = {
marketID: 1n,
diff --git a/src/typescript/sdk/src/utils/test/test-accounts.json b/src/typescript/sdk/tests/utils/test-accounts.json
similarity index 100%
rename from src/typescript/sdk/src/utils/test/test-accounts.json
rename to src/typescript/sdk/tests/utils/test-accounts.json
diff --git a/src/typescript/sdk/src/utils/test/test-accounts.ts b/src/typescript/sdk/tests/utils/test-accounts.ts
similarity index 100%
rename from src/typescript/sdk/src/utils/test/test-accounts.ts
rename to src/typescript/sdk/tests/utils/test-accounts.ts
diff --git a/src/typescript/sdk/tsconfig.json b/src/typescript/sdk/tsconfig.json
index 6029f5013..b187ab821 100644
--- a/src/typescript/sdk/tsconfig.json
+++ b/src/typescript/sdk/tsconfig.json
@@ -17,10 +17,9 @@
"module": "esnext",
"moduleDetection": "force",
"moduleResolution": "bundler",
- "noEmit": false,
+ "noEmit": true,
"noImplicitAny": true,
"noImplicitThis": true,
- "outDir": "./dist",
"preserveWatchOutput": true,
"resolveJsonModule": true,
"skipLibCheck": true,
diff --git a/src/typescript/sdk/tsconfig.publish.json b/src/typescript/sdk/tsconfig.publish.json
new file mode 100644
index 000000000..095bdf6fa
--- /dev/null
+++ b/src/typescript/sdk/tsconfig.publish.json
@@ -0,0 +1,18 @@
+{
+ "compilerOptions": {
+ "noEmit": false,
+ "outDir": "./dist"
+ },
+ "exclude": [
+ "node_modules",
+ "**/*.test.ts",
+ "**/*.spec.ts",
+ "tests/e2e/**/*",
+ "tests/unit/**/*"
+ ],
+ "extends": "./tsconfig.json",
+ "include": [
+ "src",
+ "dist"
+ ]
+}