text:
# VERSION >= v"1.7.0-DEV.849"
| short name | unicode |
|------------|---------|
| `\:+1:` | 👍 |
| `\:-1:` | 👎 |
| `\:100:` | 💯 |
| `\:1234:` | 🔢 |
| `\:8ball:` | 🎱 |
| `\:a:` | 🅰 |
| `\:ab:` | 🆎 |
| `\:abacus:` | 🧮 |
| `\:abc:` | 🔤 |
| `\:abcd:` | 🔡 |
| `\:accept:` | 🉑 |
| `\:accordion:` | 🪗 |
| `\:adhesive_bandage:` | 🩹 |
| `\:adult:` | 🧑 |
| `\:aerial_tramway:` | 🚡 |
| `\:airplane:` | ✈ |
| `\:airplane_arriving:` | 🛬 |
| `\:airplane_departure:` | 🛫 |
| `\:alarm_clock:` | ⏰ |
| `\:alien:` | 👽 |
| `\:ambulance:` | 🚑 |
| `\:amphora:` | 🏺 |
| `\:anatomical_heart:` | 🫀 |
| `\:anchor:` | ⚓ |
| `\:angel:` | 👼 |
| `\:anger:` | 💢 |
| `\:angry:` | 😠 |
| `\:anguished:` | 😧 |
| `\:ant:` | 🐜 |
| `\:apple:` | 🍎 |
| `\:aquarius:` | ♒ |
| `\:aries:` | ♈ |
| `\:arrow_backward:` | ◀ |
| `\:arrow_double_down:` | ⏬ |
| `\:arrow_double_up:` | ⏫ |
| `\:arrow_down:` | ⬇ |
| `\:arrow_down_small:` | 🔽 |
| `\:arrow_forward:` | ▶ |
| `\:arrow_heading_down:` | ⤵ |
| `\:arrow_heading_up:` | ⤴ |
| `\:arrow_left:` | ⬅ |
| `\:arrow_lower_left:` | ↙ |
| `\:arrow_lower_right:` | ↘ |
| `\:arrow_right:` | ➡ |
| `\:arrow_right_hook:` | ↪ |
| `\:arrow_up:` | ⬆ |
| `\:arrow_up_down:` | ↕ |
| `\:arrow_up_small:` | 🔼 |
| `\:arrow_upper_left:` | ↖ |
| `\:arrow_upper_right:` | ↗ |
| `\:arrows_clockwise:` | 🔃 |
| `\:arrows_counterclockwise:` | 🔄 |
| `\:art:` | 🎨 |
| `\:articulated_lorry:` | 🚛 |
| `\:astonished:` | 😲 |
| `\:athletic_shoe:` | 👟 |
| `\:atm:` | 🏧 |
| `\:auto_rickshaw:` | 🛺 |
| `\:avocado:` | 🥑 |
| `\:axe:` | 🪓 |
| `\:b:` | 🅱 |
| `\:baby:` | 👶 |
| `\:baby_bottle:` | 🍼 |
| `\:baby_chick:` | 🐤 |
| `\:baby_symbol:` | 🚼 |
| `\:back:` | 🔙 |
| `\:bacon:` | 🥓 |
| `\:badger:` | 🦡 |
| `\:badminton_racquet_and_shuttlecock:` | 🏸 |
| `\:bagel:` | 🥯 |
| `\:baggage_claim:` | 🛄 |
| `\:baguette_bread:` | 🥖 |
| `\:ballet_shoes:` | 🩰 |
| `\:balloon:` | 🎈 |
| `\:ballot_box_with_check:` | ☑ |
| `\:bamboo:` | 🎍 |
| `\:banana:` | 🍌 |
| `\:bangbang:` | ‼ |
| `\:banjo:` | 🪕 |
| `\:bank:` | 🏦 |
| `\:bar_chart:` | 📊 |
| `\:barber:` | 💈 |
| `\:baseball:` | ⚾ |
| `\:basket:` | 🧺 |
| `\:basketball:` | 🏀 |
| `\:bat:` | 🦇 |
| `\:bath:` | 🛀 |
| `\:bathtub:` | 🛁 |
| `\:battery:` | 🔋 |
| `\:bear:` | 🐻 |
| `\:bearded_person:` | 🧔 |
| `\:beaver:` | 🦫 |
| `\:bee:` | 🐝 |
| `\:beer:` | 🍺 |
| `\:beers:` | 🍻 |
| `\:beetle:` | 🪲 |
| `\:beginner:` | 🔰 |
| `\:bell:` | 🔔 |
| `\:bell_pepper:` | 🫑 |
| `\:bento:` | 🍱 |
| `\:beverage_box:` | 🧃 |
| `\:bicyclist:` | 🚴 |
| `\:bike:` | 🚲 |
| `\:bikini:` | 👙 |
| `\:billed_cap:` | 🧢 |
| `\:bird:` | 🐦 |
| `\:birthday:` | 🎂 |
| `\:bison:` | 🦬 |
| `\:black_circle:` | ⚫ |
| `\:black_heart:` | 🖤 |
| `\:black_joker:` | 🃏 |
| `\:black_large_square:` | ⬛ |
| `\:black_medium_small_square:` | ◾ |
| `\:black_medium_square:` | ◼ |
| `\:black_nib:` | ✒ |
| `\:black_small_square:` | ▪ |
| `\:black_square_button:` | 🔲 |
| `\:blossom:` | 🌼 |
| `\:blowfish:` | 🐡 |
| `\:blue_book:` | 📘 |
| `\:blue_car:` | 🚙 |
| `\:blue_heart:` | 💙 |
| `\:blueberries:` | 🫐 |
| `\:blush:` | 😊 |
| `\:boar:` | 🐗 |
| `\:boat:` | ⛵ |
| `\:bomb:` | 💣 |
| `\:bone:` | 🦴 |
| `\:book:` | 📖 |
| `\:bookmark:` | 🔖 |
| `\:bookmark_tabs:` | 📑 |
| `\:books:` | 📚 |
| `\:boom:` | 💥 |
| `\:boomerang:` | 🪃 |
| `\:boot:` | 👢 |
| `\:bouquet:` | 💐 |
| `\:bow:` | 🙇 |
| `\:bow_and_arrow:` | 🏹 |
| `\:bowl_with_spoon:` | 🥣 |
| `\:bowling:` | 🎳 |
| `\:boxing_glove:` | 🥊 |
| `\:boy:` | 👦 |
| `\:brain:` | 🧠 |
| `\:bread:` | 🍞 |
| `\:breast-feeding:` | 🤱 |
| `\:bricks:` | 🧱 |
| `\:bride_with_veil:` | 👰 |
| `\:bridge_at_night:` | 🌉 |
| `\:briefcase:` | 💼 |
| `\:briefs:` | 🩲 |
| `\:broccoli:` | 🥦 |
| `\:broken_heart:` | 💔 |
| `\:broom:` | 🧹 |
| `\:brown_heart:` | 🤎 |
| `\:bubble_tea:` | 🧋 |
| `\:bucket:` | 🪣 |
| `\:bug:` | 🐛 |
| `\:bulb:` | 💡 |
| `\:bullettrain_front:` | 🚅 |
| `\:bullettrain_side:` | 🚄 |
| `\:burrito:` | 🌯 |
| `\:bus:` | 🚌 |
| `\:busstop:` | 🚏 |
| `\:bust_in_silhouette:` | 👤 |
| `\:busts_in_silhouette:` | 👥 |
| `\:butter:` | 🧈 |
| `\:butterfly:` | 🦋 |
| `\:cactus:` | 🌵 |
| `\:cake:` | 🍰 |
| `\:calendar:` | 📆 |
| `\:call_me_hand:` | 🤙 |
| `\:calling:` | 📲 |
| `\:camel:` | 🐫 |
| `\:camera:` | 📷 |
| `\:camera_with_flash:` | 📸 |
| `\:cancer:` | ♋ |
| `\:candy:` | 🍬 |
| `\:canned_food:` | 🥫 |
| `\:canoe:` | 🛶 |
| `\:capital_abcd:` | 🔠 |
| `\:capricorn:` | ♑ |
| `\:car:` | 🚗 |
| `\:card_index:` | 📇 |
| `\:carousel_horse:` | 🎠 |
| `\:carpentry_saw:` | 🪚 |
| `\:carrot:` | 🥕 |
| `\:cat2:` | 🐈 |
| `\:cat:` | 🐱 |
| `\:cd:` | 💿 |
| `\:chair:` | 🪑 |
| `\:champagne:` | 🍾 |
| `\:chart:` | 💹 |
| `\:chart_with_downwards_trend:` | 📉 |
| `\:chart_with_upwards_trend:` | 📈 |
| `\:checkered_flag:` | 🏁 |
| `\:cheese_wedge:` | 🧀 |
| `\:cherries:` | 🍒 |
| `\:cherry_blossom:` | 🌸 |
| `\:chestnut:` | 🌰 |
| `\:chicken:` | 🐔 |
| `\:child:` | 🧒 |
| `\:children_crossing:` | 🚸 |
| `\:chocolate_bar:` | 🍫 |
| `\:chopsticks:` | 🥢 |
| `\:christmas_tree:` | 🎄 |
| `\:church:` | ⛪ |
| `\:cinema:` | 🎦 |
| `\:circus_tent:` | 🎪 |
| `\:city_sunrise:` | 🌇 |
| `\:city_sunset:` | 🌆 |
| `\:cl:` | 🆑 |
| `\:clap:` | 👏 |
| `\:clapper:` | 🎬 |
| `\:clinking_glasses:` | 🥂 |
| `\:clipboard:` | 📋 |
| `\:clock1030:` | 🕥 |
| `\:clock10:` | 🕙 |
| `\:clock1130:` | 🕦 |
| `\:clock11:` | 🕚 |
| `\:clock1230:` | 🕧 |
| `\:clock12:` | 🕛 |
| `\:clock130:` | 🕜 |
| `\:clock1:` | 🕐 |
| `\:clock230:` | 🕝 |
| `\:clock2:` | 🕑 |
| `\:clock330:` | 🕞 |
| `\:clock3:` | 🕒 |
| `\:clock430:` | 🕟 |
| `\:clock4:` | 🕓 |
| `\:clock530:` | 🕠 |
| `\:clock5:` | 🕔 |
| `\:clock630:` | 🕡 |
| `\:clock6:` | 🕕 |
| `\:clock730:` | 🕢 |
| `\:clock7:` | 🕖 |
| `\:clock830:` | 🕣 |
| `\:clock8:` | 🕗 |
| `\:clock930:` | 🕤 |
| `\:clock9:` | 🕘 |
| `\:closed_book:` | 📕 |
| `\:closed_lock_with_key:` | 🔐 |
| `\:closed_umbrella:` | 🌂 |
| `\:cloud:` | ☁ |
| `\:clown_face:` | 🤡 |
| `\:clubs:` | ♣ |
| `\:coat:` | 🧥 |
| `\:cockroach:` | 🪳 |
| `\:cocktail:` | 🍸 |
| `\:coconut:` | 🥥 |
| `\:coffee:` | ☕ |
| `\:coin:` | 🪙 |
| `\:cold_face:` | 🥶 |
| `\:cold_sweat:` | 😰 |
| `\:compass:` | 🧭 |
| `\:computer:` | 💻 |
| `\:confetti_ball:` | 🎊 |
| `\:confounded:` | 😖 |
| `\:confused:` | 😕 |
| `\:congratulations:` | ㊗ |
| `\:construction:` | 🚧 |
| `\:construction_worker:` | 👷 |
| `\:convenience_store:` | 🏪 |
| `\:cookie:` | 🍪 |
| `\:cool:` | 🆒 |
| `\:cop:` | 👮 |
| `\:copyright:` | © |
| `\:corn:` | 🌽 |
| `\:couple:` | 👫 |
| `\:couple_with_heart:` | 💑 |
| `\:couplekiss:` | 💏 |
| `\:cow2:` | 🐄 |
| `\:cow:` | 🐮 |
| `\:crab:` | 🦀 |
| `\:credit_card:` | 💳 |
| `\:crescent_moon:` | 🌙 |
| `\:cricket:` | 🦗 |
| `\:cricket_bat_and_ball:` | 🏏 |
| `\:crocodile:` | 🐊 |
| `\:croissant:` | 🥐 |
| `\:crossed_fingers:` | 🤞 |
| `\:crossed_flags:` | 🎌 |
| `\:crown:` | 👑 |
| `\:cry:` | 😢 |
| `\:crying_cat_face:` | 😿 |
| `\:crystal_ball:` | 🔮 |
| `\:cucumber:` | 🥒 |
| `\:cup_with_straw:` | 🥤 |
| `\:cupcake:` | 🧁 |
| `\:cupid:` | 💘 |
| `\:curling_stone:` | 🥌 |
| `\:curly_loop:` | ➰ |
| `\:currency_exchange:` | 💱 |
| `\:curry:` | 🍛 |
| `\:custard:` | 🍮 |
| `\:customs:` | 🛃 |
| `\:cut_of_meat:` | 🥩 |
| `\:cyclone:` | 🌀 |
| `\:dancer:` | 💃 |
| `\:dancers:` | 👯 |
| `\:dango:` | 🍡 |
| `\:dart:` | 🎯 |
| `\:dash:` | 💨 |
| `\:date:` | 📅 |
| `\:deaf_person:` | 🧏 |
| `\:deciduous_tree:` | 🌳 |
| `\:deer:` | 🦌 |
| `\:department_store:` | 🏬 |
| `\:diamond_shape_with_a_dot_inside:` | 💠 |
| `\:diamonds:` | ♦ |
| `\:disappointed:` | 😞 |
| `\:disappointed_relieved:` | 😥 |
| `\:disguised_face:` | 🥸 |
| `\:diving_mask:` | 🤿 |
| `\:diya_lamp:` | 🪔 |
| `\:dizzy:` | 💫 |
| `\:dizzy_face:` | 😵 |
| `\:dna:` | 🧬 |
| `\:do_not_litter:` | 🚯 |
| `\:dodo:` | 🦤 |
| `\:dog2:` | 🐕 |
| `\:dog:` | 🐶 |
| `\:dollar:` | 💵 |
| `\:dolls:` | 🎎 |
| `\:dolphin:` | 🐬 |
| `\:door:` | 🚪 |
| `\:doughnut:` | 🍩 |
| `\:dragon:` | 🐉 |
| `\:dragon_face:` | 🐲 |
| `\:dress:` | 👗 |
| `\:dromedary_camel:` | 🐪 |
| `\:drooling_face:` | 🤤 |
| `\:drop_of_blood:` | 🩸 |
| `\:droplet:` | 💧 |
| `\:drum_with_drumsticks:` | 🥁 |
| `\:duck:` | 🦆 |
| `\:dumpling:` | 🥟 |
| `\:dvd:` | 📀 |
| `\:e-mail:` | 📧 |
| `\:eagle:` | 🦅 |
| `\:ear:` | 👂 |
| `\:ear_of_rice:` | 🌾 |
| `\:ear_with_hearing_aid:` | 🦻 |
| `\:earth_africa:` | 🌍 |
| `\:earth_americas:` | 🌎 |
| `\:earth_asia:` | 🌏 |
| `\:egg:` | 🥚 |
| `\:eggplant:` | 🍆 |
| `\:eight_pointed_black_star:` | ✴ |
| `\:eight_spoked_asterisk:` | ✳ |
| `\:electric_plug:` | 🔌 |
| `\:elephant:` | 🐘 |
| `\:elevator:` | 🛗 |
| `\:elf:` | 🧝 |
| `\:email:` | ✉ |
| `\:end:` | 🔚 |
| `\:envelope_with_arrow:` | 📩 |
| `\:euro:` | 💶 |
| `\:european_castle:` | 🏰 |
| `\:european_post_office:` | 🏤 |
| `\:evergreen_tree:` | 🌲 |
| `\:exclamation:` | ❗ |
| `\:exploding_head:` | 🤯 |
| `\:expressionless:` | 😑 |
| `\:eyeglasses:` | 👓 |
| `\:eyes:` | 👀 |
| `\:face_palm:` | 🤦 |
| `\:face_vomiting:` | 🤮 |
| `\:face_with_cowboy_hat:` | 🤠 |
| `\:face_with_hand_over_mouth:` | 🤭 |
| `\:face_with_head_bandage:` | 🤕 |
| `\:face_with_monocle:` | 🧐 |
| `\:face_with_raised_eyebrow:` | 🤨 |
| `\:face_with_rolling_eyes:` | 🙄 |
| `\:face_with_symbols_on_mouth:` | 🤬 |
| `\:face_with_thermometer:` | 🤒 |
| `\:facepunch:` | 👊 |
| `\:factory:` | 🏭 |
| `\:fairy:` | 🧚 |
| `\:falafel:` | 🧆 |
| `\:fallen_leaf:` | 🍂 |
| `\:family:` | 👪 |
| `\:fast_forward:` | ⏩ |
| `\:fax:` | 📠 |
| `\:fearful:` | 😨 |
| `\:feather:` | 🪶 |
| `\:feet:` | 🐾 |
| `\:fencer:` | 🤺 |
| `\:ferris_wheel:` | 🎡 |
| `\:field_hockey_stick_and_ball:` | 🏑 |
| `\:file_folder:` | 📁 |
| `\:fire:` | 🔥 |
| `\:fire_engine:` | 🚒 |
| `\:fire_extinguisher:` | 🧯 |
| `\:firecracker:` | 🧨 |
| `\:fireworks:` | 🎆 |
| `\:first_place_medal:` | 🥇 |
| `\:first_quarter_moon:` | 🌓 |
| `\:first_quarter_moon_with_face:` | 🌛 |
| `\:fish:` | 🐟 |
| `\:fish_cake:` | 🍥 |
| `\:fishing_pole_and_fish:` | 🎣 |
| `\:fist:` | ✊ |
| `\:flags:` | 🎏 |
| `\:flamingo:` | 🦩 |
| `\:flashlight:` | 🔦 |
| `\:flatbread:` | 🫓 |
| `\:floppy_disk:` | 💾 |
| `\:flower_playing_cards:` | 🎴 |
| `\:flushed:` | 😳 |
| `\:fly:` | 🪰 |
| `\:flying_disc:` | 🥏 |
| `\:flying_saucer:` | 🛸 |
| `\:foggy:` | 🌁 |
| `\:fondue:` | 🫕 |
| `\:foot:` | 🦶 |
| `\:football:` | 🏈 |
| `\:footprints:` | 👣 |
| `\:fork_and_knife:` | 🍴 |
| `\:fortune_cookie:` | 🥠 |
| `\:fountain:` | ⛲ |
| `\:four_leaf_clover:` | 🍀 |
| `\:fox_face:` | 🦊 |
| `\:free:` | 🆓 |
| `\:fried_egg:` | 🍳 |
| `\:fried_shrimp:` | 🍤 |
| `\:fries:` | 🍟 |
| `\:frog:` | 🐸 |
| `\:frowning:` | 😦 |
| `\:fuelpump:` | ⛽ |
| `\:full_moon:` | 🌕 |
| `\:full_moon_with_face:` | 🌝 |
| `\:game_die:` | 🎲 |
| `\:garlic:` | 🧄 |
| `\:gem:` | 💎 |
| `\:gemini:` | ♊ |
| `\:genie:` | 🧞 |
| `\:ghost:` | 👻 |
| `\:gift:` | 🎁 |
| `\:gift_heart:` | 💝 |
| `\:giraffe_face:` | 🦒 |
| `\:girl:` | 👧 |
| `\:glass_of_milk:` | 🥛 |
| `\:globe_with_meridians:` | 🌐 |
| `\:gloves:` | 🧤 |
| `\:goal_net:` | 🥅 |
| `\:goat:` | 🐐 |
| `\:goggles:` | 🥽 |
| `\:golf:` | ⛳ |
| `\:gorilla:` | 🦍 |
| `\:grapes:` | 🍇 |
| `\:green_apple:` | 🍏 |
| `\:green_book:` | 📗 |
| `\:green_heart:` | 💚 |
| `\:green_salad:` | 🥗 |
| `\:grey_exclamation:` | ❕ |
| `\:grey_question:` | ❔ |
| `\:grimacing:` | 😬 |
| `\:grin:` | 😁 |
| `\:grinning:` | 😀 |
| `\:guardsman:` | 💂 |
| `\:guide_dog:` | 🦮 |
| `\:guitar:` | 🎸 |
| `\:gun:` | 🔫 |
| `\:haircut:` | 💇 |
| `\:hamburger:` | 🍔 |
| `\:hammer:` | 🔨 |
| `\:hamster:` | 🐹 |
| `\:hand:` | ✋ |
| `\:handbag:` | 👜 |
| `\:handball:` | 🤾 |
| `\:handshake:` | 🤝 |
| `\:hankey:` | 💩 |
| `\:hatched_chick:` | 🐥 |
| `\:hatching_chick:` | 🐣 |
| `\:headphones:` | 🎧 |
| `\:headstone:` | 🪦 |
| `\:hear_no_evil:` | 🙉 |
| `\:heart:` | ❤ |
| `\:heart_decoration:` | 💟 |
| `\:heart_eyes:` | 😍 |
| `\:heart_eyes_cat:` | 😻 |
| `\:heartbeat:` | 💓 |
| `\:heartpulse:` | 💗 |
| `\:hearts:` | ♥ |
| `\:heavy_check_mark:` | ✔ |
| `\:heavy_division_sign:` | ➗ |
| `\:heavy_dollar_sign:` | 💲 |
| `\:heavy_minus_sign:` | ➖ |
| `\:heavy_multiplication_x:` | ✖ |
| `\:heavy_plus_sign:` | ➕ |
| `\:hedgehog:` | 🦔 |
| `\:helicopter:` | 🚁 |
| `\:herb:` | 🌿 |
| `\:hibiscus:` | 🌺 |
| `\:high_brightness:` | 🔆 |
| `\:high_heel:` | 👠 |
| `\:hiking_boot:` | 🥾 |
| `\:hindu_temple:` | 🛕 |
| `\:hippopotamus:` | 🦛 |
| `\:hocho:` | 🔪 |
| `\:honey_pot:` | 🍯 |
| `\:hook:` | 🪝 |
| `\:horse:` | 🐴 |
| `\:horse_racing:` | 🏇 |
| `\:hospital:` | 🏥 |
| `\:hot_face:` | 🥵 |
| `\:hotdog:` | 🌭 |
| `\:hotel:` | 🏨 |
| `\:hotsprings:` | ♨ |
| `\:hourglass:` | ⌛ |
| `\:hourglass_flowing_sand:` | ⏳ |
| `\:house:` | 🏠 |
| `\:house_with_garden:` | 🏡 |
| `\:hugging_face:` | 🤗 |
| `\:hushed:` | 😯 |
| `\:hut:` | 🛖 |
| `\:i_love_you_hand_sign:` | 🤟 |
| `\:ice_cream:` | 🍨 |
| `\:ice_cube:` | 🧊 |
| `\:ice_hockey_stick_and_puck:` | 🏒 |
| `\:icecream:` | 🍦 |
| `\:id:` | 🆔 |
| `\:ideograph_advantage:` | 🉐 |
| `\:imp:` | 👿 |
| `\:inbox_tray:` | 📥 |
| `\:incoming_envelope:` | 📨 |
| `\:information_desk_person:` | 💁 |
| `\:information_source:` | ℹ |
| `\:innocent:` | 😇 |
| `\:interrobang:` | ⁉ |
| `\:iphone:` | 📱 |
| `\:izakaya_lantern:` | 🏮 |
| `\:jack_o_lantern:` | 🎃 |
| `\:japan:` | 🗾 |
| `\:japanese_castle:` | 🏯 |
| `\:japanese_goblin:` | 👺 |
| `\:japanese_ogre:` | 👹 |
| `\:jeans:` | 👖 |
| `\:jigsaw:` | 🧩 |
| `\:joy:` | 😂 |
| `\:joy_cat:` | 😹 |
| `\:juggling:` | 🤹 |
| `\:kaaba:` | 🕋 |
| `\:kangaroo:` | 🦘 |
| `\:key:` | 🔑 |
| `\:keycap_ten:` | 🔟 |
| `\:kimono:` | 👘 |
| `\:kiss:` | 💋 |
| `\:kissing:` | 😗 |
| `\:kissing_cat:` | 😽 |
| `\:kissing_closed_eyes:` | 😚 |
| `\:kissing_heart:` | 😘 |
| `\:kissing_smiling_eyes:` | 😙 |
| `\:kite:` | 🪁 |
| `\:kiwifruit:` | 🥝 |
| `\:kneeling_person:` | 🧎 |
| `\:knot:` | 🪢 |
| `\:koala:` | 🐨 |
| `\:koko:` | 🈁 |
| `\:lab_coat:` | 🥼 |
| `\:lacrosse:` | 🥍 |
| `\:ladder:` | 🪜 |
| `\:ladybug:` | 🐞 |
| `\:large_blue_circle:` | 🔵 |
| `\:large_blue_diamond:` | 🔷 |
| `\:large_blue_square:` | 🟦 |
| `\:large_brown_circle:` | 🟤 |
| `\:large_brown_square:` | 🟫 |
| `\:large_green_circle:` | 🟢 |
| `\:large_green_square:` | 🟩 |
| `\:large_orange_circle:` | 🟠 |
| `\:large_orange_diamond:` | 🔶 |
| `\:large_orange_square:` | 🟧 |
| `\:large_purple_circle:` | 🟣 |
| `\:large_purple_square:` | 🟪 |
| `\:large_red_square:` | 🟥 |
| `\:large_yellow_circle:` | 🟡 |
| `\:large_yellow_square:` | 🟨 |
| `\:last_quarter_moon:` | 🌗 |
| `\:last_quarter_moon_with_face:` | 🌜 |
| `\:laughing:` | 😆 |
| `\:leafy_green:` | 🥬 |
| `\:leaves:` | 🍃 |
| `\:ledger:` | 📒 |
| `\:left-facing_fist:` | 🤛 |
| `\:left_luggage:` | 🛅 |
| `\:left_right_arrow:` | ↔ |
| `\:leftwards_arrow_with_hook:` | ↩ |
| `\:leg:` | 🦵 |
| `\:lemon:` | 🍋 |
| `\:leo:` | ♌ |
| `\:leopard:` | 🐆 |
| `\:libra:` | ♎ |
| `\:light_rail:` | 🚈 |
| `\:link:` | 🔗 |
| `\:lion_face:` | 🦁 |
| `\:lips:` | 👄 |
| `\:lipstick:` | 💄 |
| `\:lizard:` | 🦎 |
| `\:llama:` | 🦙 |
| `\:lobster:` | 🦞 |
| `\:lock:` | 🔒 |
| `\:lock_with_ink_pen:` | 🔏 |
| `\:lollipop:` | 🍭 |
| `\:long_drum:` | 🪘 |
| `\:loop:` | ➿ |
| `\:lotion_bottle:` | 🧴 |
| `\:loud_sound:` | 🔊 |
| `\:loudspeaker:` | 📢 |
| `\:love_hotel:` | 🏩 |
| `\:love_letter:` | 💌 |
| `\:low_brightness:` | 🔅 |
| `\:luggage:` | 🧳 |
| `\:lungs:` | 🫁 |
| `\:lying_face:` | 🤥 |
| `\:m:` | Ⓜ |
| `\:mag:` | 🔍 |
| `\:mag_right:` | 🔎 |
| `\:mage:` | 🧙 |
| `\:magic_wand:` | 🪄 |
| `\:magnet:` | 🧲 |
| `\:mahjong:` | 🀄 |
| `\:mailbox:` | 📫 |
| `\:mailbox_closed:` | 📪 |
| `\:mailbox_with_mail:` | 📬 |
| `\:mailbox_with_no_mail:` | 📭 |
| `\:mammoth:` | 🦣 |
| `\:man:` | 👨 |
| `\:man_and_woman_holding_hands:` | 👫 |
| `\:man_dancing:` | 🕺 |
| `\:man_with_gua_pi_mao:` | 👲 |
| `\:man_with_turban:` | 👳 |
| `\:mango:` | 🥭 |
| `\:mans_shoe:` | 👞 |
| `\:manual_wheelchair:` | 🦽 |
| `\:maple_leaf:` | 🍁 |
| `\:martial_arts_uniform:` | 🥋 |
| `\:mask:` | 😷 |
| `\:massage:` | 💆 |
| `\:mate_drink:` | 🧉 |
| `\:meat_on_bone:` | 🍖 |
| `\:mechanical_arm:` | 🦾 |
| `\:mechanical_leg:` | 🦿 |
| `\:mega:` | 📣 |
| `\:melon:` | 🍈 |
| `\:memo:` | 📝 |
| `\:menorah_with_nine_branches:` | 🕎 |
| `\:mens:` | 🚹 |
| `\:merperson:` | 🧜 |
| `\:metro:` | 🚇 |
| `\:microbe:` | 🦠 |
| `\:microphone:` | 🎤 |
| `\:microscope:` | 🔬 |
| `\:middle_finger:` | 🖕 |
| `\:military_helmet:` | 🪖 |
| `\:milky_way:` | 🌌 |
| `\:minibus:` | 🚐 |
| `\:minidisc:` | 💽 |
| `\:mirror:` | 🪞 |
| `\:mobile_phone_off:` | 📴 |
| `\:money_mouth_face:` | 🤑 |
| `\:money_with_wings:` | 💸 |
| `\:moneybag:` | 💰 |
| `\:monkey:` | 🐒 |
| `\:monkey_face:` | 🐵 |
| `\:monorail:` | 🚝 |
| `\:moon:` | 🌔 |
| `\:moon_cake:` | 🥮 |
| `\:mortar_board:` | 🎓 |
| `\:mosque:` | 🕌 |
| `\:mosquito:` | 🦟 |
| `\:motor_scooter:` | 🛵 |
| `\:motorized_wheelchair:` | 🦼 |
| `\:mount_fuji:` | 🗻 |
| `\:mountain_bicyclist:` | 🚵 |
| `\:mountain_cableway:` | 🚠 |
| `\:mountain_railway:` | 🚞 |
| `\:mouse2:` | 🐁 |
| `\:mouse:` | 🐭 |
| `\:mouse_trap:` | 🪤 |
| `\:movie_camera:` | 🎥 |
| `\:moyai:` | 🗿 |
| `\:mrs_claus:` | 🤶 |
| `\:muscle:` | 💪 |
| `\:mushroom:` | 🍄 |
| `\:musical_keyboard:` | 🎹 |
| `\:musical_note:` | 🎵 |
| `\:musical_score:` | 🎼 |
| `\:mute:` | 🔇 |
| `\:nail_care:` | 💅 |
| `\:name_badge:` | 📛 |
| `\:nauseated_face:` | 🤢 |
| `\:nazar_amulet:` | 🧿 |
| `\:necktie:` | 👔 |
| `\:negative_squared_cross_mark:` | ❎ |
| `\:nerd_face:` | 🤓 |
| `\:nesting_dolls:` | 🪆 |
| `\:neutral_face:` | 😐 |
| `\:new:` | 🆕 |
| `\:new_moon:` | 🌑 |
| `\:new_moon_with_face:` | 🌚 |
| `\:newspaper:` | 📰 |
| `\:ng:` | 🆖 |
| `\:night_with_stars:` | 🌃 |
| `\:ninja:` | 🥷 |
| `\:no_bell:` | 🔕 |
| `\:no_bicycles:` | 🚳 |
| `\:no_entry:` | ⛔ |
| `\:no_entry_sign:` | 🚫 |
| `\:no_good:` | 🙅 |
| `\:no_mobile_phones:` | 📵 |
| `\:no_mouth:` | 😶 |
| `\:no_pedestrians:` | 🚷 |
| `\:no_smoking:` | 🚭 |
| `\:non-potable_water:` | 🚱 |
| `\:nose:` | 👃 |
| `\:notebook:` | 📓 |
| `\:notebook_with_decorative_cover:` | 📔 |
| `\:notes:` | 🎶 |
| `\:nut_and_bolt:` | 🔩 |
| `\:o2:` | 🅾 |
| `\:o:` | ⭕ |
| `\:ocean:` | 🌊 |
| `\:octagonal_sign:` | 🛑 |
| `\:octopus:` | 🐙 |
| `\:oden:` | 🍢 |
| `\:office:` | 🏢 |
| `\:ok:` | 🆗 |
| `\:ok_hand:` | 👌 |
| `\:ok_woman:` | 🙆 |
| `\:older_adult:` | 🧓 |
| `\:older_man:` | 👴 |
| `\:older_woman:` | 👵 |
| `\:olive:` | 🫒 |
| `\:on:` | 🔛 |
| `\:oncoming_automobile:` | 🚘 |
| `\:oncoming_bus:` | 🚍 |
| `\:oncoming_police_car:` | 🚔 |
| `\:oncoming_taxi:` | 🚖 |
| `\:one-piece_swimsuit:` | 🩱 |
| `\:onion:` | 🧅 |
| `\:open_file_folder:` | 📂 |
| `\:open_hands:` | 👐 |
| `\:open_mouth:` | 😮 |
| `\:ophiuchus:` | ⛎ |
| `\:orange_book:` | 📙 |
| `\:orange_heart:` | 🧡 |
| `\:orangutan:` | 🦧 |
| `\:otter:` | 🦦 |
| `\:outbox_tray:` | 📤 |
| `\:owl:` | 🦉 |
| `\:ox:` | 🐂 |
| `\:oyster:` | 🦪 |
| `\:package:` | 📦 |
| `\:page_facing_up:` | 📄 |
| `\:page_with_curl:` | 📃 |
| `\:pager:` | 📟 |
| `\:palm_tree:` | 🌴 |
| `\:palms_up_together:` | 🤲 |
| `\:pancakes:` | 🥞 |
| `\:panda_face:` | 🐼 |
| `\:paperclip:` | 📎 |
| `\:parachute:` | 🪂 |
| `\:parking:` | 🅿 |
| `\:parrot:` | 🦜 |
| `\:part_alternation_mark:` | 〽 |
| `\:partly_sunny:` | ⛅ |
| `\:partying_face:` | 🥳 |
| `\:passport_control:` | 🛂 |
| `\:peach:` | 🍑 |
| `\:peacock:` | 🦚 |
| `\:peanuts:` | 🥜 |
| `\:pear:` | 🍐 |
| `\:pencil2:` | ✏ |
| `\:penguin:` | 🐧 |
| `\:pensive:` | 😔 |
| `\:people_hugging:` | 🫂 |
| `\:performing_arts:` | 🎭 |
| `\:persevere:` | 😣 |
| `\:person_climbing:` | 🧗 |
| `\:person_doing_cartwheel:` | 🤸 |
| `\:person_frowning:` | 🙍 |
| `\:person_in_lotus_position:` | 🧘 |
| `\:person_in_steamy_room:` | 🧖 |
| `\:person_in_tuxedo:` | 🤵 |
| `\:person_with_blond_hair:` | 👱 |
| `\:person_with_headscarf:` | 🧕 |
| `\:person_with_pouting_face:` | 🙎 |
| `\:petri_dish:` | 🧫 |
| `\:phone:` | ☎ |
| `\:pickup_truck:` | 🛻 |
| `\:pie:` | 🥧 |
| `\:pig2:` | 🐖 |
| `\:pig:` | 🐷 |
| `\:pig_nose:` | 🐽 |
| `\:pill:` | 💊 |
| `\:pinata:` | 🪅 |
| `\:pinched_fingers:` | 🤌 |
| `\:pinching_hand:` | 🤏 |
| `\:pineapple:` | 🍍 |
| `\:pisces:` | ♓ |
| `\:pizza:` | 🍕 |
| `\:placard:` | 🪧 |
| `\:place_of_worship:` | 🛐 |
| `\:pleading_face:` | 🥺 |
| `\:plunger:` | 🪠 |
| `\:point_down:` | 👇 |
| `\:point_left:` | 👈 |
| `\:point_right:` | 👉 |
| `\:point_up:` | ☝ |
| `\:point_up_2:` | 👆 |
| `\:police_car:` | 🚓 |
| `\:poodle:` | 🐩 |
| `\:popcorn:` | 🍿 |
| `\:post_office:` | 🏣 |
| `\:postal_horn:` | 📯 |
| `\:postbox:` | 📮 |
| `\:potable_water:` | 🚰 |
| `\:potato:` | 🥔 |
| `\:potted_plant:` | 🪴 |
| `\:pouch:` | 👝 |
| `\:poultry_leg:` | 🍗 |
| `\:pound:` | 💷 |
| `\:pouting_cat:` | 😾 |
| `\:pray:` | 🙏 |
| `\:prayer_beads:` | 📿 |
| `\:pregnant_woman:` | 🤰 |
| `\:pretzel:` | 🥨 |
| `\:prince:` | 🤴 |
| `\:princess:` | 👸 |
| `\:probing_cane:` | 🦯 |
| `\:purple_heart:` | 💜 |
| `\:purse:` | 👛 |
| `\:pushpin:` | 📌 |
| `\:put_litter_in_its_place:` | 🚮 |
| `\:question:` | ❓ |
| `\:rabbit2:` | 🐇 |
| `\:rabbit:` | 🐰 |
| `\:raccoon:` | 🦝 |
| `\:racehorse:` | 🐎 |
| `\:radio:` | 📻 |
| `\:radio_button:` | 🔘 |
| `\:rage:` | 😡 |
| `\:railway_car:` | 🚃 |
| `\:rainbow:` | 🌈 |
| `\:raised_back_of_hand:` | 🤚 |
| `\:raised_hands:` | 🙌 |
| `\:raising_hand:` | 🙋 |
| `\:ram:` | 🐏 |
| `\:ramen:` | 🍜 |
| `\:rat:` | 🐀 |
| `\:razor:` | 🪒 |
| `\:receipt:` | 🧾 |
| `\:recycle:` | ♻ |
| `\:red_circle:` | 🔴 |
| `\:red_envelope:` | 🧧 |
| `\:registered:` | ® |
| `\:relaxed:` | ☺ |
| `\:relieved:` | 😌 |
| `\:repeat:` | 🔁 |
| `\:repeat_one:` | 🔂 |
| `\:restroom:` | 🚻 |
| `\:revolving_hearts:` | 💞 |
| `\:rewind:` | ⏪ |
| `\:rhinoceros:` | 🦏 |
| `\:ribbon:` | 🎀 |
| `\:rice:` | 🍚 |
| `\:rice_ball:` | 🍙 |
| `\:rice_cracker:` | 🍘 |
| `\:rice_scene:` | 🎑 |
| `\:right-facing_fist:` | 🤜 |
| `\:ring:` | 💍 |
| `\:ringed_planet:` | 🪐 |
| `\:robot_face:` | 🤖 |
| `\:rock:` | 🪨 |
| `\:rocket:` | 🚀 |
| `\:roll_of_paper:` | 🧻 |
| `\:roller_coaster:` | 🎢 |
| `\:roller_skate:` | 🛼 |
| `\:rolling_on_the_floor_laughing:` | 🤣 |
| `\:rooster:` | 🐓 |
| `\:rose:` | 🌹 |
| `\:rotating_light:` | 🚨 |
| `\:round_pushpin:` | 📍 |
| `\:rowboat:` | 🚣 |
| `\:rugby_football:` | 🏉 |
| `\:runner:` | 🏃 |
| `\:running_shirt_with_sash:` | 🎽 |
| `\:sa:` | 🈂 |
| `\:safety_pin:` | 🧷 |
| `\:safety_vest:` | 🦺 |
| `\:sagittarius:` | ♐ |
| `\:sake:` | 🍶 |
| `\:salt:` | 🧂 |
| `\:sandal:` | 👡 |
| `\:sandwich:` | 🥪 |
| `\:santa:` | 🎅 |
| `\:sari:` | 🥻 |
| `\:satellite:` | 📡 |
| `\:satellite_antenna:` | 📡 |
| `\:sauropod:` | 🦕 |
| `\:saxophone:` | 🎷 |
| `\:scarf:` | 🧣 |
| `\:school:` | 🏫 |
| `\:school_satchel:` | 🎒 |
| `\:scissors:` | ✂ |
| `\:scooter:` | 🛴 |
| `\:scorpion:` | 🦂 |
| `\:scorpius:` | ♏ |
| `\:scream:` | 😱 |
| `\:scream_cat:` | 🙀 |
| `\:screwdriver:` | 🪛 |
| `\:scroll:` | 📜 |
| `\:seal:` | 🦭 |
| `\:seat:` | 💺 |
| `\:second_place_medal:` | 🥈 |
| `\:secret:` | ㊙ |
| `\:see_no_evil:` | 🙈 |
| `\:seedling:` | 🌱 |
| `\:selfie:` | 🤳 |
| `\:sewing_needle:` | 🪡 |
| `\:shallow_pan_of_food:` | 🥘 |
| `\:shark:` | 🦈 |
| `\:shaved_ice:` | 🍧 |
| `\:sheep:` | 🐑 |
| `\:shell:` | 🐚 |
| `\:ship:` | 🚢 |
| `\:shirt:` | 👕 |
| `\:shopping_trolley:` | 🛒 |
| `\:shorts:` | 🩳 |
| `\:shower:` | 🚿 |
| `\:shrimp:` | 🦐 |
| `\:shrug:` | 🤷 |
| `\:shushing_face:` | 🤫 |
| `\:signal_strength:` | 📶 |
| `\:six_pointed_star:` | 🔯 |
| `\:skateboard:` | 🛹 |
| `\:ski:` | 🎿 |
| `\:skin-tone-2:` | 🏻 |
| `\:skin-tone-3:` | 🏼 |
| `\:skin-tone-4:` | 🏽 |
| `\:skin-tone-5:` | 🏾 |
| `\:skin-tone-6:` | 🏿 |
| `\:skull:` | 💀 |
| `\:skunk:` | 🦨 |
| `\:sled:` | 🛷 |
| `\:sleeping:` | 😴 |
| `\:sleeping_accommodation:` | 🛌 |
| `\:sleepy:` | 😪 |
| `\:slightly_frowning_face:` | 🙁 |
| `\:slightly_smiling_face:` | 🙂 |
| `\:slot_machine:` | 🎰 |
| `\:sloth:` | 🦥 |
| `\:small_blue_diamond:` | 🔹 |
| `\:small_orange_diamond:` | 🔸 |
| `\:small_red_triangle:` | 🔺 |
| `\:small_red_triangle_down:` | 🔻 |
| `\:smile:` | 😄 |
| `\:smile_cat:` | 😸 |
| `\:smiley:` | 😃 |
| `\:smiley_cat:` | 😺 |
| `\:smiling_face_with_3_hearts:` | 🥰 |
| `\:smiling_face_with_tear:` | 🥲 |
| `\:smiling_imp:` | 😈 |
| `\:smirk:` | 😏 |
| `\:smirk_cat:` | 😼 |
| `\:smoking:` | 🚬 |
| `\:snail:` | 🐌 |
| `\:snake:` | 🐍 |
| `\:sneezing_face:` | 🤧 |
| `\:snowboarder:` | 🏂 |
| `\:snowflake:` | ❄ |
| `\:snowman:` | ⛄ |
| `\:snowman_without_snow:` | ⛄ |
| `\:soap:` | 🧼 |
| `\:sob:` | 😭 |
| `\:soccer:` | ⚽ |
| `\:socks:` | 🧦 |
| `\:softball:` | 🥎 |
| `\:soon:` | 🔜 |
| `\:sos:` | 🆘 |
| `\:sound:` | 🔉 |
| `\:space_invader:` | 👾 |
| `\:spades:` | ♠ |
| `\:spaghetti:` | 🍝 |
| `\:sparkle:` | ❇ |
| `\:sparkler:` | 🎇 |
| `\:sparkles:` | ✨ |
| `\:sparkling_heart:` | 💖 |
| `\:speak_no_evil:` | 🙊 |
| `\:speaker:` | 🔈 |
| `\:speech_balloon:` | 💬 |
| `\:speedboat:` | 🚤 |
| `\:spock-hand:` | 🖖 |
| `\:sponge:` | 🧽 |
| `\:spoon:` | 🥄 |
| `\:sports_medal:` | 🏅 |
| `\:squid:` | 🦑 |
| `\:standing_person:` | 🧍 |
| `\:star-struck:` | 🤩 |
| `\:star2:` | 🌟 |
| `\:star:` | ⭐ |
| `\:stars:` | 🌠 |
| `\:station:` | 🚉 |
| `\:statue_of_liberty:` | 🗽 |
| `\:steam_locomotive:` | 🚂 |
| `\:stethoscope:` | 🩺 |
| `\:stew:` | 🍲 |
| `\:straight_ruler:` | 📏 |
| `\:strawberry:` | 🍓 |
| `\:stuck_out_tongue:` | 😛 |
| `\:stuck_out_tongue_closed_eyes:` | 😝 |
| `\:stuck_out_tongue_winking_eye:` | 😜 |
| `\:stuffed_flatbread:` | 🥙 |
| `\:sun_with_face:` | 🌞 |
| `\:sunflower:` | 🌻 |
| `\:sunglasses:` | 😎 |
| `\:sunny:` | ☀ |
| `\:sunrise:` | 🌅 |
| `\:sunrise_over_mountains:` | 🌄 |
| `\:superhero:` | 🦸 |
| `\:supervillain:` | 🦹 |
| `\:surfer:` | 🏄 |
| `\:sushi:` | 🍣 |
| `\:suspension_railway:` | 🚟 |
| `\:swan:` | 🦢 |
| `\:sweat:` | 😓 |
| `\:sweat_drops:` | 💦 |
| `\:sweat_smile:` | 😅 |
| `\:sweet_potato:` | 🍠 |
| `\:swimmer:` | 🏊 |
| `\:symbols:` | 🔣 |
| `\:synagogue:` | 🕍 |
| `\:syringe:` | 💉 |
| `\:t-rex:` | 🦖 |
| `\:table_tennis_paddle_and_ball:` | 🏓 |
| `\:taco:` | 🌮 |
| `\:tada:` | 🎉 |
| `\:takeout_box:` | 🥡 |
| `\:tamale:` | 🫔 |
| `\:tanabata_tree:` | 🎋 |
| `\:tangerine:` | 🍊 |
| `\:taurus:` | ♉ |
| `\:taxi:` | 🚕 |
| `\:tea:` | 🍵 |
| `\:teapot:` | 🫖 |
| `\:teddy_bear:` | 🧸 |
| `\:telephone_receiver:` | 📞 |
| `\:telescope:` | 🔭 |
| `\:tennis:` | 🎾 |
| `\:tent:` | ⛺ |
| `\:test_tube:` | 🧪 |
| `\:the_horns:` | 🤘 |
| `\:thinking_face:` | 🤔 |
| `\:third_place_medal:` | 🥉 |
| `\:thong_sandal:` | 🩴 |
| `\:thought_balloon:` | 💭 |
| `\:thread:` | 🧵 |
| `\:ticket:` | 🎫 |
| `\:tiger2:` | 🐅 |
| `\:tiger:` | 🐯 |
| `\:tired_face:` | 😫 |
| `\:tm:` | ™ |
| `\:toilet:` | 🚽 |
| `\:tokyo_tower:` | 🗼 |
| `\:tomato:` | 🍅 |
| `\:tongue:` | 👅 |
| `\:toolbox:` | 🧰 |
| `\:tooth:` | 🦷 |
| `\:toothbrush:` | 🪥 |
| `\:top:` | 🔝 |
| `\:tophat:` | 🎩 |
| `\:tractor:` | 🚜 |
| `\:traffic_light:` | 🚥 |
| `\:train2:` | 🚆 |
| `\:train:` | 🚋 |
| `\:tram:` | 🚊 |
| `\:triangular_flag_on_post:` | 🚩 |
| `\:triangular_ruler:` | 📐 |
| `\:trident:` | 🔱 |
| `\:triumph:` | 😤 |
| `\:trolleybus:` | 🚎 |
| `\:trophy:` | 🏆 |
| `\:tropical_drink:` | 🍹 |
| `\:tropical_fish:` | 🐠 |
| `\:truck:` | 🚚 |
| `\:trumpet:` | 🎺 |
| `\:tulip:` | 🌷 |
| `\:tumbler_glass:` | 🥃 |
| `\:turkey:` | 🦃 |
| `\:turtle:` | 🐢 |
| `\:tv:` | 📺 |
| `\:twisted_rightwards_arrows:` | 🔀 |
| `\:two_hearts:` | 💕 |
| `\:two_men_holding_hands:` | 👬 |
| `\:two_women_holding_hands:` | 👭 |
| `\:u5272:` | 🈹 |
| `\:u5408:` | 🈴 |
| `\:u55b6:` | 🈺 |
| `\:u6307:` | 🈯 |
| `\:u6708:` | 🈷 |
| `\:u6709:` | 🈶 |
| `\:u6e80:` | 🈵 |
| `\:u7121:` | 🈚 |
| `\:u7533:` | 🈸 |
| `\:u7981:` | 🈲 |
| `\:u7a7a:` | 🈳 |
| `\:umbrella:` | ☔ |
| `\:umbrella_with_rain_drops:` | ☔ |
| `\:unamused:` | 😒 |
| `\:underage:` | 🔞 |
| `\:unicorn_face:` | 🦄 |
| `\:unlock:` | 🔓 |
| `\:up:` | 🆙 |
| `\:upside_down_face:` | 🙃 |
| `\:v:` | ✌ |
| `\:vampire:` | 🧛 |
| `\:vertical_traffic_light:` | 🚦 |
| `\:vhs:` | 📼 |
| `\:vibration_mode:` | 📳 |
| `\:video_camera:` | 📹 |
| `\:video_game:` | 🎮 |
| `\:violin:` | 🎻 |
| `\:virgo:` | ♍ |
| `\:volcano:` | 🌋 |
| `\:volleyball:` | 🏐 |
| `\:vs:` | 🆚 |
| `\:waffle:` | 🧇 |
| `\:walking:` | 🚶 |
| `\:waning_crescent_moon:` | 🌘 |
| `\:waning_gibbous_moon:` | 🌖 |
| `\:warning:` | ⚠ |
| `\:watch:` | ⌚ |
| `\:water_buffalo:` | 🐃 |
| `\:water_polo:` | 🤽 |
| `\:watermelon:` | 🍉 |
| `\:wave:` | 👋 |
| `\:waving_black_flag:` | 🏴 |
| `\:wavy_dash:` | 〰 |
| `\:waxing_crescent_moon:` | 🌒 |
| `\:wc:` | 🚾 |
| `\:weary:` | 😩 |
| `\:wedding:` | 💒 |
| `\:whale2:` | 🐋 |
| `\:whale:` | 🐳 |
| `\:wheelchair:` | ♿ |
| `\:white_check_mark:` | ✅ |
| `\:white_circle:` | ⚪ |
| `\:white_flower:` | 💮 |
| `\:white_heart:` | 🤍 |
| `\:white_large_square:` | ⬜ |
| `\:white_medium_small_square:` | ◽ |
| `\:white_medium_square:` | ◻ |
| `\:white_small_square:` | ▫ |
| `\:white_square_button:` | 🔳 |
| `\:wilted_flower:` | 🥀 |
| `\:wind_chime:` | 🎐 |
| `\:window:` | 🪟 |
| `\:wine_glass:` | 🍷 |
| `\:wink:` | 😉 |
| `\:wolf:` | 🐺 |
| `\:woman:` | 👩 |
| `\:womans_clothes:` | 👚 |
| `\:womans_flat_shoe:` | 🥿 |
| `\:womans_hat:` | 👒 |
| `\:womens:` | 🚺 |
| `\:wood:` | 🪵 |
| `\:woozy_face:` | 🥴 |
| `\:worm:` | 🪱 |
| `\:worried:` | 😟 |
| `\:wrench:` | 🔧 |
| `\:wrestlers:` | 🤼 |
| `\:x:` | ❌ |
| `\:yarn:` | 🧶 |
| `\:yawning_face:` | 🥱 |
| `\:yellow_heart:` | 💛 |
| `\:yen:` | 💴 |
| `\:yo-yo:` | 🪀 |
| `\:yum:` | 😋 |
| `\:zany_face:` | 🤪 |
| `\:zap:` | ⚡ |
| `\:zebra_face:` | 🦓 |
| `\:zipper_mouth_face:` | 🤐 |
| `\:zombie:` | 🧟 |
| `\:zzz:` | 💤 |

```@raw html
<span title="\:copyright:">©</span>
<span title="\:registered:">®</span>
<span title="\:bangbang:">‼</span>
<span title="\:interrobang:">⁉</span>
<span title="\:tm:">™</span>
<span title="\:information_source:">ℹ</span>
<span title="\:left_right_arrow:">↔</span>
<span title="\:arrow_up_down:">↕</span>
<span title="\:arrow_upper_left:">↖</span>
<span title="\:arrow_upper_right:">↗</span>
<span title="\:arrow_lower_right:">↘</span>
<span title="\:arrow_lower_left:">↙</span>
<span title="\:leftwards_arrow_with_hook:">↩</span>
<span title="\:arrow_right_hook:">↪</span>
<span title="\:watch:">⌚</span>
<span title="\:hourglass:">⌛</span>
<span title="\:fast_forward:">⏩</span>
<span title="\:rewind:">⏪</span>
<span title="\:arrow_double_up:">⏫</span>
<span title="\:arrow_double_down:">⏬</span>
<span title="\:alarm_clock:">⏰</span>
<span title="\:hourglass_flowing_sand:">⏳</span>
<span title="\:m:">Ⓜ</span>
<span title="\:black_small_square:">▪</span>
<span title="\:white_small_square:">▫</span>
<span title="\:arrow_forward:">▶</span>
<span title="\:arrow_backward:">◀</span>
<span title="\:white_medium_square:">◻</span>
<span title="\:black_medium_square:">◼</span>
<span title="\:white_medium_small_square:">◽</span>
<span title="\:black_medium_small_square:">◾</span>
<span title="\:sunny:">☀</span>
<span title="\:cloud:">☁</span>
<span title="\:phone:">☎</span>
<span title="\:ballot_box_with_check:">☑</span>
<span title="\:umbrella_with_rain_drops:">☔</span>
<span title="\:umbrella:">☔</span>
<span title="\:coffee:">☕</span>
<span title="\:point_up:">☝</span>
<span title="\:relaxed:">☺</span>
<span title="\:aries:">♈</span>
<span title="\:taurus:">♉</span>
<span title="\:gemini:">♊</span>
<span title="\:cancer:">♋</span>
<span title="\:leo:">♌</span>
<span title="\:virgo:">♍</span>
<span title="\:libra:">♎</span>
<span title="\:scorpius:">♏</span>
<span title="\:sagittarius:">♐</span>
<span title="\:capricorn:">♑</span>
<span title="\:aquarius:">♒</span>
<span title="\:pisces:">♓</span>
<span title="\:spades:">♠</span>
<span title="\:clubs:">♣</span>
<span title="\:hearts:">♥</span>
<span title="\:diamonds:">♦</span>
<span title="\:hotsprings:">♨</span>
<span title="\:recycle:">♻</span>
<span title="\:wheelchair:">♿</span>
<span title="\:anchor:">⚓</span>
<span title="\:warning:">⚠</span>
<span title="\:zap:">⚡</span>
<span title="\:white_circle:">⚪</span>
<span title="\:black_circle:">⚫</span>
<span title="\:soccer:">⚽</span>
<span title="\:baseball:">⚾</span>
<span title="\:snowman:">⛄</span>
<span title="\:snowman_without_snow:">⛄</span>
<span title="\:partly_sunny:">⛅</span>
<span title="\:ophiuchus:">⛎</span>
<span title="\:no_entry:">⛔</span>
<span title="\:church:">⛪</span>
<span title="\:fountain:">⛲</span>
<span title="\:golf:">⛳</span>
<span title="\:boat:">⛵</span>
<span title="\:tent:">⛺</span>
<span title="\:fuelpump:">⛽</span>
<span title="\:scissors:">✂</span>
<span title="\:white_check_mark:">✅</span>
<span title="\:airplane:">✈</span>
<span title="\:email:">✉</span>
<span title="\:fist:">✊</span>
<span title="\:hand:">✋</span>
<span title="\:v:">✌</span>
<span title="\:pencil2:">✏</span>
<span title="\:black_nib:">✒</span>
<span title="\:heavy_check_mark:">✔</span>
<span title="\:heavy_multiplication_x:">✖</span>
<span title="\:sparkles:">✨</span>
<span title="\:eight_spoked_asterisk:">✳</span>
<span title="\:eight_pointed_black_star:">✴</span>
<span title="\:snowflake:">❄</span>
<span title="\:sparkle:">❇</span>
<span title="\:x:">❌</span>
<span title="\:negative_squared_cross_mark:">❎</span>
<span title="\:question:">❓</span>
<span title="\:grey_question:">❔</span>
<span title="\:grey_exclamation:">❕</span>
<span title="\:exclamation:">❗</span>
<span title="\:heart:">❤</span>
<span title="\:heavy_plus_sign:">➕</span>
<span title="\:heavy_minus_sign:">➖</span>
<span title="\:heavy_division_sign:">➗</span>
<span title="\:arrow_right:">➡</span>
<span title="\:curly_loop:">➰</span>
<span title="\:loop:">➿</span>
<span title="\:arrow_heading_up:">⤴</span>
<span title="\:arrow_heading_down:">⤵</span>
<span title="\:arrow_left:">⬅</span>
<span title="\:arrow_up:">⬆</span>
<span title="\:arrow_down:">⬇</span>
<span title="\:black_large_square:">⬛</span>
<span title="\:white_large_square:">⬜</span>
<span title="\:star:">⭐</span>
<span title="\:o:">⭕</span>
<span title="\:wavy_dash:">〰</span>
<span title="\:part_alternation_mark:">〽</span>
<span title="\:congratulations:">㊗</span>
<span title="\:secret:">㊙</span>
<span title="\:mahjong:">🀄</span>
<span title="\:black_joker:">🃏</span>
<span title="\:a:">🅰</span>
<span title="\:b:">🅱</span>
<span title="\:o2:">🅾</span>
<span title="\:parking:">🅿</span>
<span title="\:ab:">🆎</span>
<span title="\:cl:">🆑</span>
<span title="\:cool:">🆒</span>
<span title="\:free:">🆓</span>
<span title="\:id:">🆔</span>
<span title="\:new:">🆕</span>
<span title="\:ng:">🆖</span>
<span title="\:ok:">🆗</span>
<span title="\:sos:">🆘</span>
<span title="\:up:">🆙</span>
<span title="\:vs:">🆚</span>
<span title="\:koko:">🈁</span>
<span title="\:sa:">🈂</span>
<span title="\:u7121:">🈚</span>
<span title="\:u6307:">🈯</span>
<span title="\:u7981:">🈲</span>
<span title="\:u7a7a:">🈳</span>
<span title="\:u5408:">🈴</span>
<span title="\:u6e80:">🈵</span>
<span title="\:u6709:">🈶</span>
<span title="\:u6708:">🈷</span>
<span title="\:u7533:">🈸</span>
<span title="\:u5272:">🈹</span>
<span title="\:u55b6:">🈺</span>
<span title="\:ideograph_advantage:">🉐</span>
<span title="\:accept:">🉑</span>
<span title="\:cyclone:">🌀</span>
<span title="\:foggy:">🌁</span>
<span title="\:closed_umbrella:">🌂</span>
<span title="\:night_with_stars:">🌃</span>
<span title="\:sunrise_over_mountains:">🌄</span>
<span title="\:sunrise:">🌅</span>
<span title="\:city_sunset:">🌆</span>
<span title="\:city_sunrise:">🌇</span>
<span title="\:rainbow:">🌈</span>
<span title="\:bridge_at_night:">🌉</span>
<span title="\:ocean:">🌊</span>
<span title="\:volcano:">🌋</span>
<span title="\:milky_way:">🌌</span>
<span title="\:earth_africa:">🌍</span>
<span title="\:earth_americas:">🌎</span>
<span title="\:earth_asia:">🌏</span>
<span title="\:globe_with_meridians:">🌐</span>
<span title="\:new_moon:">🌑</span>
<span title="\:waxing_crescent_moon:">🌒</span>
<span title="\:first_quarter_moon:">🌓</span>
<span title="\:moon:">🌔</span>
<span title="\:full_moon:">🌕</span>
<span title="\:waning_gibbous_moon:">🌖</span>
<span title="\:last_quarter_moon:">🌗</span>
<span title="\:waning_crescent_moon:">🌘</span>
<span title="\:crescent_moon:">🌙</span>
<span title="\:new_moon_with_face:">🌚</span>
<span title="\:first_quarter_moon_with_face:">🌛</span>
<span title="\:last_quarter_moon_with_face:">🌜</span>
<span title="\:full_moon_with_face:">🌝</span>
<span title="\:sun_with_face:">🌞</span>
<span title="\:star2:">🌟</span>
<span title="\:stars:">🌠</span>
<span title="\:hotdog:">🌭</span>
<span title="\:taco:">🌮</span>
<span title="\:burrito:">🌯</span>
<span title="\:chestnut:">🌰</span>
<span title="\:seedling:">🌱</span>
<span title="\:evergreen_tree:">🌲</span>
<span title="\:deciduous_tree:">🌳</span>
<span title="\:palm_tree:">🌴</span>
<span title="\:cactus:">🌵</span>
<span title="\:tulip:">🌷</span>
<span title="\:cherry_blossom:">🌸</span>
<span title="\:rose:">🌹</span>
<span title="\:hibiscus:">🌺</span>
<span title="\:sunflower:">🌻</span>
<span title="\:blossom:">🌼</span>
<span title="\:corn:">🌽</span>
<span title="\:ear_of_rice:">🌾</span>
<span title="\:herb:">🌿</span>
<span title="\:four_leaf_clover:">🍀</span>
<span title="\:maple_leaf:">🍁</span>
<span title="\:fallen_leaf:">🍂</span>
<span title="\:leaves:">🍃</span>
<span title="\:mushroom:">🍄</span>
<span title="\:tomato:">🍅</span>
<span title="\:eggplant:">🍆</span>
<span title="\:grapes:">🍇</span>
<span title="\:melon:">🍈</span>
<span title="\:watermelon:">🍉</span>
<span title="\:tangerine:">🍊</span>
<span title="\:lemon:">🍋</span>
<span title="\:banana:">🍌</span>
<span title="\:pineapple:">🍍</span>
<span title="\:apple:">🍎</span>
<span title="\:green_apple:">🍏</span>
<span title="\:pear:">🍐</span>
<span title="\:peach:">🍑</span>
<span title="\:cherries:">🍒</span>
<span title="\:strawberry:">🍓</span>
<span title="\:hamburger:">🍔</span>
<span title="\:pizza:">🍕</span>
<span title="\:meat_on_bone:">🍖</span>
<span title="\:poultry_leg:">🍗</span>
<span title="\:rice_cracker:">🍘</span>
<span title="\:rice_ball:">🍙</span>
<span title="\:rice:">🍚</span>
<span title="\:curry:">🍛</span>
<span title="\:ramen:">🍜</span>
<span title="\:spaghetti:">🍝</span>
<span title="\:bread:">🍞</span>
<span title="\:fries:">🍟</span>
<span title="\:sweet_potato:">🍠</span>
<span title="\:dango:">🍡</span>
<span title="\:oden:">🍢</span>
<span title="\:sushi:">🍣</span>
<span title="\:fried_shrimp:">🍤</span>
<span title="\:fish_cake:">🍥</span>
<span title="\:icecream:">🍦</span>
<span title="\:shaved_ice:">🍧</span>
<span title="\:ice_cream:">🍨</span>
<span title="\:doughnut:">🍩</span>
<span title="\:cookie:">🍪</span>
<span title="\:chocolate_bar:">🍫</span>
<span title="\:candy:">🍬</span>
<span title="\:lollipop:">🍭</span>
<span title="\:custard:">🍮</span>
<span title="\:honey_pot:">🍯</span>
<span title="\:cake:">🍰</span>
<span title="\:bento:">🍱</span>
<span title="\:stew:">🍲</span>
<span title="\:fried_egg:">🍳</span>
<span title="\:fork_and_knife:">🍴</span>
<span title="\:tea:">🍵</span>
<span title="\:sake:">🍶</span>
<span title="\:wine_glass:">🍷</span>
<span title="\:cocktail:">🍸</span>
<span title="\:tropical_drink:">🍹</span>
<span title="\:beer:">🍺</span>
<span title="\:beers:">🍻</span>
<span title="\:baby_bottle:">🍼</span>
<span title="\:champagne:">🍾</span>
<span title="\:popcorn:">🍿</span>
<span title="\:ribbon:">🎀</span>
<span title="\:gift:">🎁</span>
<span title="\:birthday:">🎂</span>
<span title="\:jack_o_lantern:">🎃</span>
<span title="\:christmas_tree:">🎄</span>
<span title="\:santa:">🎅</span>
<span title="\:fireworks:">🎆</span>
<span title="\:sparkler:">🎇</span>
<span title="\:balloon:">🎈</span>
<span title="\:tada:">🎉</span>
<span title="\:confetti_ball:">🎊</span>
<span title="\:tanabata_tree:">🎋</span>
<span title="\:crossed_flags:">🎌</span>
<span title="\:bamboo:">🎍</span>
<span title="\:dolls:">🎎</span>
<span title="\:flags:">🎏</span>
<span title="\:wind_chime:">🎐</span>
<span title="\:rice_scene:">🎑</span>
<span title="\:school_satchel:">🎒</span>
<span title="\:mortar_board:">🎓</span>
<span title="\:carousel_horse:">🎠</span>
<span title="\:ferris_wheel:">🎡</span>
<span title="\:roller_coaster:">🎢</span>
<span title="\:fishing_pole_and_fish:">🎣</span>
<span title="\:microphone:">🎤</span>
<span title="\:movie_camera:">🎥</span>
<span title="\:cinema:">🎦</span>
<span title="\:headphones:">🎧</span>
<span title="\:art:">🎨</span>
<span title="\:tophat:">🎩</span>
<span title="\:circus_tent:">🎪</span>
<span title="\:ticket:">🎫</span>
<span title="\:clapper:">🎬</span>
<span title="\:performing_arts:">🎭</span>
<span title="\:video_game:">🎮</span>
<span title="\:dart:">🎯</span>
<span title="\:slot_machine:">🎰</span>
<span title="\:8ball:">🎱</span>
<span title="\:game_die:">🎲</span>
<span title="\:bowling:">🎳</span>
<span title="\:flower_playing_cards:">🎴</span>
<span title="\:musical_note:">🎵</span>
<span title="\:notes:">🎶</span>
<span title="\:saxophone:">🎷</span>
<span title="\:guitar:">🎸</span>
<span title="\:musical_keyboard:">🎹</span>
<span title="\:trumpet:">🎺</span>
<span title="\:violin:">🎻</span>
<span title="\:musical_score:">🎼</span>
<span title="\:running_shirt_with_sash:">🎽</span>
<span title="\:tennis:">🎾</span>
<span title="\:ski:">🎿</span>
<span title="\:basketball:">🏀</span>
<span title="\:checkered_flag:">🏁</span>
<span title="\:snowboarder:">🏂</span>
<span title="\:runner:">🏃</span>
<span title="\:surfer:">🏄</span>
<span title="\:sports_medal:">🏅</span>
<span title="\:trophy:">🏆</span>
<span title="\:horse_racing:">🏇</span>
<span title="\:football:">🏈</span>
<span title="\:rugby_football:">🏉</span>
<span title="\:swimmer:">🏊</span>
<span title="\:cricket_bat_and_ball:">🏏</span>
<span title="\:volleyball:">🏐</span>
<span title="\:field_hockey_stick_and_ball:">🏑</span>
<span title="\:ice_hockey_stick_and_puck:">🏒</span>
<span title="\:table_tennis_paddle_and_ball:">🏓</span>
<span title="\:house:">🏠</span>
<span title="\:house_with_garden:">🏡</span>
<span title="\:office:">🏢</span>
<span title="\:post_office:">🏣</span>
<span title="\:european_post_office:">🏤</span>
<span title="\:hospital:">🏥</span>
<span title="\:bank:">🏦</span>
<span title="\:atm:">🏧</span>
<span title="\:hotel:">🏨</span>
<span title="\:love_hotel:">🏩</span>
<span title="\:convenience_store:">🏪</span>
<span title="\:school:">🏫</span>
<span title="\:department_store:">🏬</span>
<span title="\:factory:">🏭</span>
<span title="\:izakaya_lantern:">🏮</span>
<span title="\:japanese_castle:">🏯</span>
<span title="\:european_castle:">🏰</span>
<span title="\:waving_black_flag:">🏴</span>
<span title="\:badminton_racquet_and_shuttlecock:">🏸</span>
<span title="\:bow_and_arrow:">🏹</span>
<span title="\:amphora:">🏺</span>
<span title="\:skin-tone-2:">🏻</span>
<span title="\:skin-tone-3:">🏼</span>
<span title="\:skin-tone-4:">🏽</span>
<span title="\:skin-tone-5:">🏾</span>
<span title="\:skin-tone-6:">🏿</span>
<span title="\:rat:">🐀</span>
<span title="\:mouse2:">🐁</span>
<span title="\:ox:">🐂</span>
<span title="\:water_buffalo:">🐃</span>
<span title="\:cow2:">🐄</span>
<span title="\:tiger2:">🐅</span>
<span title="\:leopard:">🐆</span>
<span title="\:rabbit2:">🐇</span>
<span title="\:cat2:">🐈</span>
<span title="\:dragon:">🐉</span>
<span title="\:crocodile:">🐊</span>
<span title="\:whale2:">🐋</span>
<span title="\:snail:">🐌</span>
<span title="\:snake:">🐍</span>
<span title="\:racehorse:">🐎</span>
<span title="\:ram:">🐏</span>
<span title="\:goat:">🐐</span>
<span title="\:sheep:">🐑</span>
<span title="\:monkey:">🐒</span>
<span title="\:rooster:">🐓</span>
<span title="\:chicken:">🐔</span>
<span title="\:dog2:">🐕</span>
<span title="\:pig2:">🐖</span>
<span title="\:boar:">🐗</span>
<span title="\:elephant:">🐘</span>
<span title="\:octopus:">🐙</span>
<span title="\:shell:">🐚</span>
<span title="\:bug:">🐛</span>
<span title="\:ant:">🐜</span>
<span title="\:bee:">🐝</span>
<span title="\:ladybug:">🐞</span>
<span title="\:fish:">🐟</span>
<span title="\:tropical_fish:">🐠</span>
<span title="\:blowfish:">🐡</span>
<span title="\:turtle:">🐢</span>
<span title="\:hatching_chick:">🐣</span>
<span title="\:baby_chick:">🐤</span>
<span title="\:hatched_chick:">🐥</span>
<span title="\:bird:">🐦</span>
<span title="\:penguin:">🐧</span>
<span title="\:koala:">🐨</span>
<span title="\:poodle:">🐩</span>
<span title="\:dromedary_camel:">🐪</span>
<span title="\:camel:">🐫</span>
<span title="\:dolphin:">🐬</span>
<span title="\:mouse:">🐭</span>
<span title="\:cow:">🐮</span>
<span title="\:tiger:">🐯</span>
<span title="\:rabbit:">🐰</span>
<span title="\:cat:">🐱</span>
<span title="\:dragon_face:">🐲</span>
<span title="\:whale:">🐳</span>
<span title="\:horse:">🐴</span>
<span title="\:monkey_face:">🐵</span>
<span title="\:dog:">🐶</span>
<span title="\:pig:">🐷</span>
<span title="\:frog:">🐸</span>
<span title="\:hamster:">🐹</span>
<span title="\:wolf:">🐺</span>
<span title="\:bear:">🐻</span>
<span title="\:panda_face:">🐼</span>
<span title="\:pig_nose:">🐽</span>
<span title="\:feet:">🐾</span>
<span title="\:eyes:">👀</span>
<span title="\:ear:">👂</span>
<span title="\:nose:">👃</span>
<span title="\:lips:">👄</span>
<span title="\:tongue:">👅</span>
<span title="\:point_up_2:">👆</span>
<span title="\:point_down:">👇</span>
<span title="\:point_left:">👈</span>
<span title="\:point_right:">👉</span>
<span title="\:facepunch:">👊</span>
<span title="\:wave:">👋</span>
<span title="\:ok_hand:">👌</span>
<span title="\:+1:">👍</span>
<span title="\:-1:">👎</span>
<span title="\:clap:">👏</span>
<span title="\:open_hands:">👐</span>
<span title="\:crown:">👑</span>
<span title="\:womans_hat:">👒</span>
<span title="\:eyeglasses:">👓</span>
<span title="\:necktie:">👔</span>
<span title="\:shirt:">👕</span>
<span title="\:jeans:">👖</span>
<span title="\:dress:">👗</span>
<span title="\:kimono:">👘</span>
<span title="\:bikini:">👙</span>
<span title="\:womans_clothes:">👚</span>
<span title="\:purse:">👛</span>
<span title="\:handbag:">👜</span>
<span title="\:pouch:">👝</span>
<span title="\:mans_shoe:">👞</span>
<span title="\:athletic_shoe:">👟</span>
<span title="\:high_heel:">👠</span>
<span title="\:sandal:">👡</span>
<span title="\:boot:">👢</span>
<span title="\:footprints:">👣</span>
<span title="\:bust_in_silhouette:">👤</span>
<span title="\:busts_in_silhouette:">👥</span>
<span title="\:boy:">👦</span>
<span title="\:girl:">👧</span>
<span title="\:man:">👨</span>
<span title="\:woman:">👩</span>
<span title="\:family:">👪</span>
<span title="\:couple:">👫</span>
<span title="\:man_and_woman_holding_hands:">👫</span>
<span title="\:two_men_holding_hands:">👬</span>
<span title="\:two_women_holding_hands:">👭</span>
<span title="\:cop:">👮</span>
<span title="\:dancers:">👯</span>
<span title="\:bride_with_veil:">👰</span>
<span title="\:person_with_blond_hair:">👱</span>
<span title="\:man_with_gua_pi_mao:">👲</span>
<span title="\:man_with_turban:">👳</span>
<span title="\:older_man:">👴</span>
<span title="\:older_woman:">👵</span>
<span title="\:baby:">👶</span>
<span title="\:construction_worker:">👷</span>
<span title="\:princess:">👸</span>
<span title="\:japanese_ogre:">👹</span>
<span title="\:japanese_goblin:">👺</span>
<span title="\:ghost:">👻</span>
<span title="\:angel:">👼</span>
<span title="\:alien:">👽</span>
<span title="\:space_invader:">👾</span>
<span title="\:imp:">👿</span>
<span title="\:skull:">💀</span>
<span title="\:information_desk_person:">💁</span>
<span title="\:guardsman:">💂</span>
<span title="\:dancer:">💃</span>
<span title="\:lipstick:">💄</span>
<span title="\:nail_care:">💅</span>
<span title="\:massage:">💆</span>
<span title="\:haircut:">💇</span>
<span title="\:barber:">💈</span>
<span title="\:syringe:">💉</span>
<span title="\:pill:">💊</span>
<span title="\:kiss:">💋</span>
<span title="\:love_letter:">💌</span>
<span title="\:ring:">💍</span>
<span title="\:gem:">💎</span>
<span title="\:couplekiss:">💏</span>
<span title="\:bouquet:">💐</span>
<span title="\:couple_with_heart:">💑</span>
<span title="\:wedding:">💒</span>
<span title="\:heartbeat:">💓</span>
<span title="\:broken_heart:">💔</span>
<span title="\:two_hearts:">💕</span>
<span title="\:sparkling_heart:">💖</span>
<span title="\:heartpulse:">💗</span>
<span title="\:cupid:">💘</span>
<span title="\:blue_heart:">💙</span>
<span title="\:green_heart:">💚</span>
<span title="\:yellow_heart:">💛</span>
<span title="\:purple_heart:">💜</span>
<span title="\:gift_heart:">💝</span>
<span title="\:revolving_hearts:">💞</span>
<span title="\:heart_decoration:">💟</span>
<span title="\:diamond_shape_with_a_dot_inside:">💠</span>
<span title="\:bulb:">💡</span>
<span title="\:anger:">💢</span>
<span title="\:bomb:">💣</span>
<span title="\:zzz:">💤</span>
<span title="\:boom:">💥</span>
<span title="\:sweat_drops:">💦</span>
<span title="\:droplet:">💧</span>
<span title="\:dash:">💨</span>
<span title="\:hankey:">💩</span>
<span title="\:muscle:">💪</span>
<span title="\:dizzy:">💫</span>
<span title="\:speech_balloon:">💬</span>
<span title="\:thought_balloon:">💭</span>
<span title="\:white_flower:">💮</span>
<span title="\:100:">💯</span>
<span title="\:moneybag:">💰</span>
<span title="\:currency_exchange:">💱</span>
<span title="\:heavy_dollar_sign:">💲</span>
<span title="\:credit_card:">💳</span>
<span title="\:yen:">💴</span>
<span title="\:dollar:">💵</span>
<span title="\:euro:">💶</span>
<span title="\:pound:">💷</span>
<span title="\:money_with_wings:">💸</span>
<span title="\:chart:">💹</span>
<span title="\:seat:">💺</span>
<span title="\:computer:">💻</span>
<span title="\:briefcase:">💼</span>
<span title="\:minidisc:">💽</span>
<span title="\:floppy_disk:">💾</span>
<span title="\:cd:">💿</span>
<span title="\:dvd:">📀</span>
<span title="\:file_folder:">📁</span>
<span title="\:open_file_folder:">📂</span>
<span title="\:page_with_curl:">📃</span>
<span title="\:page_facing_up:">📄</span>
<span title="\:date:">📅</span>
<span title="\:calendar:">📆</span>
<span title="\:card_index:">📇</span>
<span title="\:chart_with_upwards_trend:">📈</span>
<span title="\:chart_with_downwards_trend:">📉</span>
<span title="\:bar_chart:">📊</span>
<span title="\:clipboard:">📋</span>
<span title="\:pushpin:">📌</span>
<span title="\:round_pushpin:">📍</span>
<span title="\:paperclip:">📎</span>
<span title="\:straight_ruler:">📏</span>
<span title="\:triangular_ruler:">📐</span>
<span title="\:bookmark_tabs:">📑</span>
<span title="\:ledger:">📒</span>
<span title="\:notebook:">📓</span>
<span title="\:notebook_with_decorative_cover:">📔</span>
<span title="\:closed_book:">📕</span>
<span title="\:book:">📖</span>
<span title="\:green_book:">📗</span>
<span title="\:blue_book:">📘</span>
<span title="\:orange_book:">📙</span>
<span title="\:books:">📚</span>
<span title="\:name_badge:">📛</span>
<span title="\:scroll:">📜</span>
<span title="\:memo:">📝</span>
<span title="\:telephone_receiver:">📞</span>
<span title="\:pager:">📟</span>
<span title="\:fax:">📠</span>
<span title="\:satellite:">📡</span>
<span title="\:satellite_antenna:">📡</span>
<span title="\:loudspeaker:">📢</span>
<span title="\:mega:">📣</span>
<span title="\:outbox_tray:">📤</span>
<span title="\:inbox_tray:">📥</span>
<span title="\:package:">📦</span>
<span title="\:e-mail:">📧</span>
<span title="\:incoming_envelope:">📨</span>
<span title="\:envelope_with_arrow:">📩</span>
<span title="\:mailbox_closed:">📪</span>
<span title="\:mailbox:">📫</span>
<span title="\:mailbox_with_mail:">📬</span>
<span title="\:mailbox_with_no_mail:">📭</span>
<span title="\:postbox:">📮</span>
<span title="\:postal_horn:">📯</span>
<span title="\:newspaper:">📰</span>
<span title="\:iphone:">📱</span>
<span title="\:calling:">📲</span>
<span title="\:vibration_mode:">📳</span>
<span title="\:mobile_phone_off:">📴</span>
<span title="\:no_mobile_phones:">📵</span>
<span title="\:signal_strength:">📶</span>
<span title="\:camera:">📷</span>
<span title="\:camera_with_flash:">📸</span>
<span title="\:video_camera:">📹</span>
<span title="\:tv:">📺</span>
<span title="\:radio:">📻</span>
<span title="\:vhs:">📼</span>
<span title="\:prayer_beads:">📿</span>
<span title="\:twisted_rightwards_arrows:">🔀</span>
<span title="\:repeat:">🔁</span>
<span title="\:repeat_one:">🔂</span>
<span title="\:arrows_clockwise:">🔃</span>
<span title="\:arrows_counterclockwise:">🔄</span>
<span title="\:low_brightness:">🔅</span>
<span title="\:high_brightness:">🔆</span>
<span title="\:mute:">🔇</span>
<span title="\:speaker:">🔈</span>
<span title="\:sound:">🔉</span>
<span title="\:loud_sound:">🔊</span>
<span title="\:battery:">🔋</span>
<span title="\:electric_plug:">🔌</span>
<span title="\:mag:">🔍</span>
<span title="\:mag_right:">🔎</span>
<span title="\:lock_with_ink_pen:">🔏</span>
<span title="\:closed_lock_with_key:">🔐</span>
<span title="\:key:">🔑</span>
<span title="\:lock:">🔒</span>
<span title="\:unlock:">🔓</span>
<span title="\:bell:">🔔</span>
<span title="\:no_bell:">🔕</span>
<span title="\:bookmark:">🔖</span>
<span title="\:link:">🔗</span>
<span title="\:radio_button:">🔘</span>
<span title="\:back:">🔙</span>
<span title="\:end:">🔚</span>
<span title="\:on:">🔛</span>
<span title="\:soon:">🔜</span>
<span title="\:top:">🔝</span>
<span title="\:underage:">🔞</span>
<span title="\:keycap_ten:">🔟</span>
<span title="\:capital_abcd:">🔠</span>
<span title="\:abcd:">🔡</span>
<span title="\:1234:">🔢</span>
<span title="\:symbols:">🔣</span>
<span title="\:abc:">🔤</span>
<span title="\:fire:">🔥</span>
<span title="\:flashlight:">🔦</span>
<span title="\:wrench:">🔧</span>
<span title="\:hammer:">🔨</span>
<span title="\:nut_and_bolt:">🔩</span>
<span title="\:hocho:">🔪</span>
<span title="\:gun:">🔫</span>
<span title="\:microscope:">🔬</span>
<span title="\:telescope:">🔭</span>
<span title="\:crystal_ball:">🔮</span>
<span title="\:six_pointed_star:">🔯</span>
<span title="\:beginner:">🔰</span>
<span title="\:trident:">🔱</span>
<span title="\:black_square_button:">🔲</span>
<span title="\:white_square_button:">🔳</span>
<span title="\:red_circle:">🔴</span>
<span title="\:large_blue_circle:">🔵</span>
<span title="\:large_orange_diamond:">🔶</span>
<span title="\:large_blue_diamond:">🔷</span>
<span title="\:small_orange_diamond:">🔸</span>
<span title="\:small_blue_diamond:">🔹</span>
<span title="\:small_red_triangle:">🔺</span>
<span title="\:small_red_triangle_down:">🔻</span>
<span title="\:arrow_up_small:">🔼</span>
<span title="\:arrow_down_small:">🔽</span>
<span title="\:kaaba:">🕋</span>
<span title="\:mosque:">🕌</span>
<span title="\:synagogue:">🕍</span>
<span title="\:menorah_with_nine_branches:">🕎</span>
<span title="\:clock1:">🕐</span>
<span title="\:clock2:">🕑</span>
<span title="\:clock3:">🕒</span>
<span title="\:clock4:">🕓</span>
<span title="\:clock5:">🕔</span>
<span title="\:clock6:">🕕</span>
<span title="\:clock7:">🕖</span>
<span title="\:clock8:">🕗</span>
<span title="\:clock9:">🕘</span>
<span title="\:clock10:">🕙</span>
<span title="\:clock11:">🕚</span>
<span title="\:clock12:">🕛</span>
<span title="\:clock130:">🕜</span>
<span title="\:clock230:">🕝</span>
<span title="\:clock330:">🕞</span>
<span title="\:clock430:">🕟</span>
<span title="\:clock530:">🕠</span>
<span title="\:clock630:">🕡</span>
<span title="\:clock730:">🕢</span>
<span title="\:clock830:">🕣</span>
<span title="\:clock930:">🕤</span>
<span title="\:clock1030:">🕥</span>
<span title="\:clock1130:">🕦</span>
<span title="\:clock1230:">🕧</span>
<span title="\:man_dancing:">🕺</span>
<span title="\:middle_finger:">🖕</span>
<span title="\:spock-hand:">🖖</span>
<span title="\:black_heart:">🖤</span>
<span title="\:mount_fuji:">🗻</span>
<span title="\:tokyo_tower:">🗼</span>
<span title="\:statue_of_liberty:">🗽</span>
<span title="\:japan:">🗾</span>
<span title="\:moyai:">🗿</span>
<span title="\:grinning:">😀</span>
<span title="\:grin:">😁</span>
<span title="\:joy:">😂</span>
<span title="\:smiley:">😃</span>
<span title="\:smile:">😄</span>
<span title="\:sweat_smile:">😅</span>
<span title="\:laughing:">😆</span>
<span title="\:innocent:">😇</span>
<span title="\:smiling_imp:">😈</span>
<span title="\:wink:">😉</span>
<span title="\:blush:">😊</span>
<span title="\:yum:">😋</span>
<span title="\:relieved:">😌</span>
<span title="\:heart_eyes:">😍</span>
<span title="\:sunglasses:">😎</span>
<span title="\:smirk:">😏</span>
<span title="\:neutral_face:">😐</span>
<span title="\:expressionless:">😑</span>
<span title="\:unamused:">😒</span>
<span title="\:sweat:">😓</span>
<span title="\:pensive:">😔</span>
<span title="\:confused:">😕</span>
<span title="\:confounded:">😖</span>
<span title="\:kissing:">😗</span>
<span title="\:kissing_heart:">😘</span>
<span title="\:kissing_smiling_eyes:">😙</span>
<span title="\:kissing_closed_eyes:">😚</span>
<span title="\:stuck_out_tongue:">😛</span>
<span title="\:stuck_out_tongue_winking_eye:">😜</span>
<span title="\:stuck_out_tongue_closed_eyes:">😝</span>
<span title="\:disappointed:">😞</span>
<span title="\:worried:">😟</span>
<span title="\:angry:">😠</span>
<span title="\:rage:">😡</span>
<span title="\:cry:">😢</span>
<span title="\:persevere:">😣</span>
<span title="\:triumph:">😤</span>
<span title="\:disappointed_relieved:">😥</span>
<span title="\:frowning:">😦</span>
<span title="\:anguished:">😧</span>
<span title="\:fearful:">😨</span>
<span title="\:weary:">😩</span>
<span title="\:sleepy:">😪</span>
<span title="\:tired_face:">😫</span>
<span title="\:grimacing:">😬</span>
<span title="\:sob:">😭</span>
<span title="\:open_mouth:">😮</span>
<span title="\:hushed:">😯</span>
<span title="\:cold_sweat:">😰</span>
<span title="\:scream:">😱</span>
<span title="\:astonished:">😲</span>
<span title="\:flushed:">😳</span>
<span title="\:sleeping:">😴</span>
<span title="\:dizzy_face:">😵</span>
<span title="\:no_mouth:">😶</span>
<span title="\:mask:">😷</span>
<span title="\:smile_cat:">😸</span>
<span title="\:joy_cat:">😹</span>
<span title="\:smiley_cat:">😺</span>
<span title="\:heart_eyes_cat:">😻</span>
<span title="\:smirk_cat:">😼</span>
<span title="\:kissing_cat:">😽</span>
<span title="\:pouting_cat:">😾</span>
<span title="\:crying_cat_face:">😿</span>
<span title="\:scream_cat:">🙀</span>
<span title="\:slightly_frowning_face:">🙁</span>
<span title="\:slightly_smiling_face:">🙂</span>
<span title="\:upside_down_face:">🙃</span>
<span title="\:face_with_rolling_eyes:">🙄</span>
<span title="\:no_good:">🙅</span>
<span title="\:ok_woman:">🙆</span>
<span title="\:bow:">🙇</span>
<span title="\:see_no_evil:">🙈</span>
<span title="\:hear_no_evil:">🙉</span>
<span title="\:speak_no_evil:">🙊</span>
<span title="\:raising_hand:">🙋</span>
<span title="\:raised_hands:">🙌</span>
<span title="\:person_frowning:">🙍</span>
<span title="\:person_with_pouting_face:">🙎</span>
<span title="\:pray:">🙏</span>
<span title="\:rocket:">🚀</span>
<span title="\:helicopter:">🚁</span>
<span title="\:steam_locomotive:">🚂</span>
<span title="\:railway_car:">🚃</span>
<span title="\:bullettrain_side:">🚄</span>
<span title="\:bullettrain_front:">🚅</span>
<span title="\:train2:">🚆</span>
<span title="\:metro:">🚇</span>
<span title="\:light_rail:">🚈</span>
<span title="\:station:">🚉</span>
<span title="\:tram:">🚊</span>
<span title="\:train:">🚋</span>
<span title="\:bus:">🚌</span>
<span title="\:oncoming_bus:">🚍</span>
<span title="\:trolleybus:">🚎</span>
<span title="\:busstop:">🚏</span>
<span title="\:minibus:">🚐</span>
<span title="\:ambulance:">🚑</span>
<span title="\:fire_engine:">🚒</span>
<span title="\:police_car:">🚓</span>
<span title="\:oncoming_police_car:">🚔</span>
<span title="\:taxi:">🚕</span>
<span title="\:oncoming_taxi:">🚖</span>
<span title="\:car:">🚗</span>
<span title="\:oncoming_automobile:">🚘</span>
<span title="\:blue_car:">🚙</span>
<span title="\:truck:">🚚</span>
<span title="\:articulated_lorry:">🚛</span>
<span title="\:tractor:">🚜</span>
<span title="\:monorail:">🚝</span>
<span title="\:mountain_railway:">🚞</span>
<span title="\:suspension_railway:">🚟</span>
<span title="\:mountain_cableway:">🚠</span>
<span title="\:aerial_tramway:">🚡</span>
<span title="\:ship:">🚢</span>
<span title="\:rowboat:">🚣</span>
<span title="\:speedboat:">🚤</span>
<span title="\:traffic_light:">🚥</span>
<span title="\:vertical_traffic_light:">🚦</span>
<span title="\:construction:">🚧</span>
<span title="\:rotating_light:">🚨</span>
<span title="\:triangular_flag_on_post:">🚩</span>
<span title="\:door:">🚪</span>
<span title="\:no_entry_sign:">🚫</span>
<span title="\:smoking:">🚬</span>
<span title="\:no_smoking:">🚭</span>
<span title="\:put_litter_in_its_place:">🚮</span>
<span title="\:do_not_litter:">🚯</span>
<span title="\:potable_water:">🚰</span>
<span title="\:non-potable_water:">🚱</span>
<span title="\:bike:">🚲</span>
<span title="\:no_bicycles:">🚳</span>
<span title="\:bicyclist:">🚴</span>
<span title="\:mountain_bicyclist:">🚵</span>
<span title="\:walking:">🚶</span>
<span title="\:no_pedestrians:">🚷</span>
<span title="\:children_crossing:">🚸</span>
<span title="\:mens:">🚹</span>
<span title="\:womens:">🚺</span>
<span title="\:restroom:">🚻</span>
<span title="\:baby_symbol:">🚼</span>
<span title="\:toilet:">🚽</span>
<span title="\:wc:">🚾</span>
<span title="\:shower:">🚿</span>
<span title="\:bath:">🛀</span>
<span title="\:bathtub:">🛁</span>
<span title="\:passport_control:">🛂</span>
<span title="\:customs:">🛃</span>
<span title="\:baggage_claim:">🛄</span>
<span title="\:left_luggage:">🛅</span>
<span title="\:sleeping_accommodation:">🛌</span>
<span title="\:place_of_worship:">🛐</span>
<span title="\:octagonal_sign:">🛑</span>
<span title="\:shopping_trolley:">🛒</span>
<span title="\:hindu_temple:">🛕</span>
<span title="\:hut:">🛖</span>
<span title="\:elevator:">🛗</span>
<span title="\:airplane_departure:">🛫</span>
<span title="\:airplane_arriving:">🛬</span>
<span title="\:scooter:">🛴</span>
<span title="\:motor_scooter:">🛵</span>
<span title="\:canoe:">🛶</span>
<span title="\:sled:">🛷</span>
<span title="\:flying_saucer:">🛸</span>
<span title="\:skateboard:">🛹</span>
<span title="\:auto_rickshaw:">🛺</span>
<span title="\:pickup_truck:">🛻</span>
<span title="\:roller_skate:">🛼</span>
<span title="\:large_orange_circle:">🟠</span>
<span title="\:large_yellow_circle:">🟡</span>
<span title="\:large_green_circle:">🟢</span>
<span title="\:large_purple_circle:">🟣</span>
<span title="\:large_brown_circle:">🟤</span>
<span title="\:large_red_square:">🟥</span>
<span title="\:large_blue_square:">🟦</span>
<span title="\:large_orange_square:">🟧</span>
<span title="\:large_yellow_square:">🟨</span>
<span title="\:large_green_square:">🟩</span>
<span title="\:large_purple_square:">🟪</span>
<span title="\:large_brown_square:">🟫</span>
<span title="\:pinched_fingers:">🤌</span>
<span title="\:white_heart:">🤍</span>
<span title="\:brown_heart:">🤎</span>
<span title="\:pinching_hand:">🤏</span>
<span title="\:zipper_mouth_face:">🤐</span>
<span title="\:money_mouth_face:">🤑</span>
<span title="\:face_with_thermometer:">🤒</span>
<span title="\:nerd_face:">🤓</span>
<span title="\:thinking_face:">🤔</span>
<span title="\:face_with_head_bandage:">🤕</span>
<span title="\:robot_face:">🤖</span>
<span title="\:hugging_face:">🤗</span>
<span title="\:the_horns:">🤘</span>
<span title="\:call_me_hand:">🤙</span>
<span title="\:raised_back_of_hand:">🤚</span>
<span title="\:left-facing_fist:">🤛</span>
<span title="\:right-facing_fist:">🤜</span>
<span title="\:handshake:">🤝</span>
<span title="\:crossed_fingers:">🤞</span>
<span title="\:i_love_you_hand_sign:">🤟</span>
<span title="\:face_with_cowboy_hat:">🤠</span>
<span title="\:clown_face:">🤡</span>
<span title="\:nauseated_face:">🤢</span>
<span title="\:rolling_on_the_floor_laughing:">🤣</span>
<span title="\:drooling_face:">🤤</span>
<span title="\:lying_face:">🤥</span>
<span title="\:face_palm:">🤦</span>
<span title="\:sneezing_face:">🤧</span>
<span title="\:face_with_raised_eyebrow:">🤨</span>
<span title="\:star-struck:">🤩</span>
<span title="\:zany_face:">🤪</span>
<span title="\:shushing_face:">🤫</span>
<span title="\:face_with_symbols_on_mouth:">🤬</span>
<span title="\:face_with_hand_over_mouth:">🤭</span>
<span title="\:face_vomiting:">🤮</span>
<span title="\:exploding_head:">🤯</span>
<span title="\:pregnant_woman:">🤰</span>
<span title="\:breast-feeding:">🤱</span>
<span title="\:palms_up_together:">🤲</span>
<span title="\:selfie:">�


text:
[![Apache 2.0 License](https://img.shields.io/:license-Apache%202.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.github.research-virtualfortknox/msb-client-websocket/badge.svg?color=blue)](https://maven-badges.herokuapp.com/maven-central/com.github.research-virtualfortknox/msb-client-websocket)
[![Javadoc](https://javadoc.io/badge2/com.github.research-virtualfortknox/msb-client-websocket/javadoc.svg?color=blue)](https://javadoc.io/doc/com.github.research-virtualfortknox/msb-client-websocket)
[![SourceSpy Dashboard](https://sourcespy.com/shield.svg)](https://sourcespy.com/github/researchvirtualfortknoxmsbclientwebsocketjava/)

[![Maven Package](https://github.com/research-virtualfortknox/msb-client-websocket-java/actions/workflows/maven-publish.yml/badge.svg)](https://github.com/research-virtualfortknox/msb-client-websocket-java/actions/workflows/maven-publish.yml)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=research-virtualfortknox_msb-client-websocket-java&metric=alert_status)](https://sonarcloud.io/dashboard?id=research-virtualfortknox_msb-client-websocket-java)
[![Known Vulnerabilities](https://snyk.io/test/github/research-virtualfortknox/msb-client-websocket-java/badge.svg)](https://snyk.io/test/github/research-virtualfortknox/msb-client-websocket-java)
[![Coverage Status](https://coveralls.io/repos/github/research-virtualfortknox/msb-client-websocket-java/badge.svg?branch=master)](https://coveralls.io/github/research-virtualfortknox/msb-client-websocket-java?branch=master)
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fresearch-virtualfortknox%2Fmsb-client-websocket-java.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fresearch-virtualfortknox%2Fmsb-client-websocket-java?ref=badge_shield)

# MSB websocket client library for Java

**Compatibility Matrix**

Client version compatibility to MSB versions:

| | **1.5.x-RELEASE** | **1.6.x-RELEASE** |
|---|:---:|:---:|
| 1.0.x       | x | x |

## Welcome

If you want to contribute, please read the [Contribution Guidelines](.github/CONTRIBUTING.md).

If you want to test this client by using the example project.

If you want to know how to use this client in your own project, read below.

## What is VFK MSB

TODO: Link to general documentation about VFK MSB

You can use this client to connect a java app to VFK MSB.

## Prerequisites

Import to your application via maven

```xml
<properties>
    ...
    <!-- Use the latest version whenever possible. -->
    <msb-client-websocket.version>1.0.6-RELEASE</msb-client-websocket.version>
    ...
</properties>

<dependencies>
    ...
    <dependency>
      <groupId>com.github.research-virtualfortknox</groupId>
      <artifactId>msb-client-websocket</artifactId>
      <version>${msb-client-websocket.version}</version>
    </dependency>
    ...
</dependencies>
```

## Create self-description

The figure below shows a minimal required `self-description model` of a smart object / application.
Every smart object / application requires (must have) a uuid and a token.
The uuid is competent for identification
and the token is used to verify the smart object / application for its owner on the MSB side.

![Self Description](doc/images/self-description.png)

The data model of an application and smart object is identical, both are services.
A smart object represents a physical object which is connected to MSB.
An application is a pure software solution which is connected.

Each service is capable of triggering events and receiving function calls.
The declaration of these elements and the service can be done with the help of annotations or by the constructor.

An **annotation** is a form of syntactic metadata or a specific marker that can be added to Java source code but has no effect on a program construct at run time [see 1].
The annotated instances can be classes, methods, variables, parameters, and packages.
Annotations are embedded in class files and may be retained by the Java VM to become retrievable at run time [see 2, S. 67].

TODO: Here you can find more information about the `self-description structure` and `supported data formats`.

#### Alternative 1 - By annotations:

Declaration of self description:

  - Annotation `@SelfDescription` describes the service

```java
@SelfDescription(
    uuid = "df61a143-6dab-471a-88b4-8feddb4c9e71",
    name = "Drill Machine",
    description = "A small drill-machine, which reminding you of your last visit to the dentist.",
    token = "57e721c9bcdf",
    type = SelfDescription.Type.SMART_OBJECT
)
public class DrillMachine {
    // …
}
```

#### Alternative 2 - By constructor:

If you do not wan to use annotations, use the constructor to define the basic self-description.

```java
public class DrillMachine {
    // …
    SmartObject smartObject = new SmartObject(uuid, name, description, token);
    // …
}
```

### Add Events

Add `events` to your smart object or application which can be send to MSB.

#### Alternative 1 - By annotation:

Declaration of thrown events:

  - Annotation `@Events` excepts a list of event declarations
  - Annotation `@EventDeclaration` describes the event

```java
@Events({
    @EventDeclaration(dataType = Date.class,description = "Timestamp of start machine",name = "Start", eventId = "START"),
    @EventDeclaration(dataType = Date.class,description = "Timestamp of stop machine",name = "Stop", eventId = "STOP"),
    @EventDeclaration(description = "periodical transmitted event", name = "Event pulse", eventId = "PULSE")
})
// …
public class DrillMachine {
    // …
}
```

#### Alternative 2 - By constructor:

The event declaration can be added directly to the created service instance.

```java
public class DrillMachine {
    // …
    public void constructSelfDescription() {
        SmartObject smartObject = new SmartObject(uuid, name, description, token);
        smartObject.addEvent(new Event("TEMPERATURE", "Temperature", "Current temperature", DataFormatParser.parse(float.class)));
        // …
    }
}
```

Or it can be added via the `MsbClientHandler`.

```java
public class DrillMachine {
    // …
    public void constructSelfDescription() {
        // …
        MsbClientHandler handler = msbClient.getClientHandler();
        handler.addEvent(smartObject, "TEMPERATURE", "Temperature", "Current temperature", float.class, EventPriority.MEDIUM);
        // …
    }
}
```

### Add Functions

Add `functions` and their implementations your smart object or application is able to handle.

#### Alternative 1 - By annotation:

Declaration of callable functions:

  - Annotation `@FunctionHandler` signs to a class for package scanning which contains the function calls
  - Annotation `@FunctionCall` signs to a method of this class to make the method be callable over the MSB.
    The combination of the `FunctionHandler` and `FunctionCall` path must be a unique identifier for this method.
    An optional parameter are the responseEvents, which contains a list of before decelerated events.
    This events are the possible return values of this method, which are pushed to the MSB.
  - Annotation `@FunctionParam` sings to a parameter in question

```java
@FunctionHandler(path="/controller")
public class DrillMachineController {

    @FunctionCall(path="/start", description = "start processing", responseEvents = {"START","STOP"})
    public MultipleResponseEvent startProcessing(@FunctionParam(name = "drilling_depth") int drillingDepth) {
      MultipleResponseEvent multipleResponseEvent = new MultipleResponseEvent();
      // …
      if(started) {
        multipleResponseEvent.addResponseEvent("START",new Date());
      } else {
        multipleResponseEvent.addResponseEvent("STOP",new Date());
      }
      return multipleResponseEvent;
    }

    @FunctionCall(path="/stop", description = "stop processing", responseEvents = {"STOP"})
    public Date stopProcessing() {
      // …
      return new Date();
    }

    public void printString(String msg){

    }

}
```

The return value of the method call is used for publishing a response event.
This must therefore correspond to the defined `dataType` of the event referenced in the parameter `responseEvent` of the `FunctionCall` annotation.
For several possible response events there is a special wrapper object `MultipleResponseEvent`.
When publishing the response events, the `correlationId` of the function call is automatically added to the event.

#### Alternative 2 - By constructor:

The function declaration can be added to the constructed service instance directly.
Method invocation not possible in this way, use `FunctionCallsListener` to observe function calls.

```java
public class DrillMachine {
    // …
    public void constructSelfDescription() {
        SmartObject smartObject = new SmartObject(uuid, name, description, token);
        smartObject.addFunction(new Function("printString", "printString", "print a string", DataFormatParser.parse("msg",String.class)));
        // …
        MsbClientHandler handler = msbClient.getClientHandler();
        handler.addFunctionCallsListener(functionCallsListener);
    }

    FunctionCallsListener functionCallsListener = new FunctionCallsListener() {
        @Override
        public void onCallback(String serviceUuid, String functionId, String correlationId, Map<String,Object> functionParameters) {
            // …
        }
    };
}
```

To utilize the method invocation without annotations, the `MsbClientHandler` can be used as follows.

```java
public class DrillMachine {
    // …
    public void constructSelfDescription() {
        SmartObject smartObject = new SmartObject(uuid, name, description, token);
        // …
        MsbClientHandler handler = msbClient.getClientHandler();
        // …
        try {
            Method stringMethod = TestClientFunctionHandler.class.getMethod("printString", String.class);
            handler.addFunction(smartObject, "printString", "printString", "print a string", new String[]{"PULSE"}, new DrillMachineController(), stringMethod);
        } catch (NoSuchMethodException e) {
            LOG.error("NoSuchMethodException",e);
        }

    }
}
```

### Configuration parameters

Configuration parameters are a simple list of key value pairs for the smart object or application.
It is displayed and can be customized in the MSB UI to change your apps behaviour during runtime.

#### Alternative 1 - By annotation:

You can add a configuration parameter declarative with the annotation `@ConfigParam` for a class attribute.
Note that the class need be also annotated with `@SelfDescription`, `@EventDeclaration` or `@FunctionHandler`.

```java
@SelfDescription("...")
public class DrillMachineController {

    @ConfigurationParam(name = "drilling_speed")
    public int drillingSpeed = 100;
    // …
}
```

#### Alternative 2 - By constructor:

The configurations parameters can be added to the constructed service instance directly or via the `MsbClientHandler`.

```java
public class DrillMachine {
    // …
    public void constructSelfDescription() {
        Map<String, ParameterValue> parameters = new HashMap<>();
        parameters.put("drillingSpeed", new ParameterValue(100, PrimitiveType.INTEGER, PrimitiveFormat.INT32));
        parameters.put("scheduled", new ParameterValue(true, PrimitiveType.BOOLEAN));
        Configuration configuration = new Configuration(parameters);

        SmartObject smartObject = new SmartObject(uuid, name, description, token);
        smartObject.setConfiguration(configuration);
        // …
        MsbClientHandler handler = msbClient.getClientHandler();
        handler.addConfigParam("drillingSpeed", "100", PrimitiveFormat.INT32);
        // …
    }
}
```

#### React on configuration change:

To observe configuration parameter updates (after changed in MSB UI) to change your app behaviour, a `ConfigurationListener` implementation must be provided.

```java
public class DrillMachine {
    // …
    public void constructSelfDescription() {
        MsbClientHandler handler = msbClient.getClientHandler();
        // …
        handler.addConfigurationListener(configurationListener);
    }

    ConfigurationListener configurationListener = new ConfigurationListener() {
        @Override
        public void configurationRemoteChanged(ConfigurationMessage configuration) {
            // ...
        }
    };
}
```

## Connect and Register Client

The `MsbClientHandler` provides register methods for passing a package path.
The package path specifies the root package from which the annotations are searched.
So it is a good idea to use this variant of registration if annotation is used to create the self-description of the service.

```java
public class DrillMachine {
    // …
    public void startClient() {
        final String url = "ws://<IP_ADDRESS>:8085";
        MsbClient msbClient = new MsbClient.Builder().url(url).build();
        Future<MsbClientHandler> future = msbClient.connect();
        try {
            MsbClientHandler handler = future.get();
            handler.register("de.fhg.ipa.vfk.msb.client.websocket.test");
        } catch (InterruptedException | ExecutionException | IOException e){
            // …
      }
      // …
  }
}
```

If the self-description is created using constructor, the `MsbClientHandler` also provides register methods for it, as in the following example.

```java
public class DrillMachine {
    // …
    public void startClient(SmartObject smartObject) {
        // …
        try {
            handler.register(smartObject);
        } catch (InterruptedException | ExecutionException | IOException e){
            // …
      }
      // …
  }
}
```

To use certain instances of the classes with `@FunctionHandler`annotation for the method invocation, these can also be passed during registration.

```java
public class DrillMachine {
    // …
    public void startClient(SmartObject smartObject) {
        // …
        try {
            handler.register("de.fhg.ipa.vfk.msb.client.websocket.test", new Object[]{new DrillMachineController()});
        } catch (InterruptedException | ExecutionException | IOException e){
            // …
      }
      // …
  }
}
```

These were only a few examples there are still more variants of the register method.

You will get an `IO_CONNECTED` and `IO_REGISTERED` event from MSB, if successful.
This can be observed by adding a `ConnectionListener` to the `MsbClientHandler` instance.

## Event publishing

For publishing an event to a MSB websocket interface,
only the `eventId` and `data` are required of the already specified event (see above).

```java
public class DrillMachine {
    // …
    public void publishStartEvent() {
        MsbClientHandler handler = msbClient.getClientHandler();
        handler.publish("START", new Date());
    }
    // …
}
```

The MSB responds with an `IO_PUBLISHED` event, if successful.
This can be observed by adding a `ConnectionListener` to the `MsbClientHandler` instance.

By default events are published with a low priority.

It is also possible to `set the priority` of an event.

There are three possible priorities for events like it is shown at the following table.

| `Constant` | `Value` |
|:---:|:---:|
| LOW | 0 |
| MEDIUM| 1 |
| HIGH| 2 |

```java
public class DrillMachine {
    // …
    public void publishHighStartEvent() {
        MsbClientHandler handler = msbClient.getClientHandler();
        handler.publish("START", new Date(), EventPriority.HIGH);
    }
    // …
}
```

Another option is to publish an event as a cached event by setting the cache parameter to true or false,
which deviates the behavior from the global cache setting.

If it is set to true, this means that the event is not deleted if the connection is broken.

```java
public class DrillMachine {
    // …
    public void publishUncachedStartEvent() {
        MsbClientHandler handler = msbClient.getClientHandler();
        handler.publish("START", new Date(), EventPriority.LOW, true);
    }
    // …
}
```

## Function call handling

As shown above the methods of a `@FunctionHandler` annotated class, which are annotated with `@FunctionCall`, are invokable by the client library.
This is done via reflection. It is also possible to pass a specific instance of a function handler to the client during the registration.
Otherwise the client will create an instance of the function handler by itself.
To allow this the default constructor is required at function handler class.

As shown above, the annotated methods `@FunctionCall` of an annotated class `@FunctionHandler` are called from the client library.
This is done by reflection. It is also possible to pass a particular instance of a function handler to the client during registration.
Otherwise, the client itself creates an instance of the function handler.
To enable this, the default constructor is required in the function handler class.

The function invocation can be disabled and function calls can be handled by your own listener implementation.

```java
public class DrillMachine {
    // …
    public void startClient() {
        final String url = "wss://<IP_ADDRESS>:8084";
        MsbClient msbClient = new MsbClient.Builder().url(url).disableFunctionCallsInvocation().build();
       // …
   }
 }
 ```

## SSL/TLS connection configuration

To enable `SSL/TLS`, you need to specify wss:// or https:// in the URL instead of ws:// or http://.

Furthermore, it is necessary to specify a trust store in the client,
which contains the public certificate of the MSB interface, so that it is considered trustworthy.

```java
public class DrillMachine {
    // …
    public void startClient() {
        final String url = "wss://<IP_ADDRESS>:8084";
        final String trustStore = "./truststore.trs";
        final String password = "password";
        MsbClient msbClient = new MsbClient.Builder().url(url).trustStore(trustStore, password).build();
      // …
  }
}
```

Open websocket interface in the browser and export the certificate.
Choose the `X.509 Certificate (DER)` type, so the exported file has a der extension.
Assuming the file is called msb.der, pick the alias 'msb' for this certificate.

Or you use the `openssl s_client` to export the certificate (https://www.openssl.org/docs/man1.1.1/man1/s_client.html)

```sh
$ openssl s_client -host <IP_ADDRESS> -port 8084 -prexit -showcerts
```

Now you can create a new truststore and use it as shown above, e.g. with the following command.

```sh
$ keytool -import -file msb.der -alias msb -keystore CERTS.trs
```

Or you can import the certificate into the existing truststore of your local JVM installation that is used to run the client.
You will be asked for a password, the default is 'changeit'.

```sh
$ keytool -import -alias msb -keystore  <path-to-jre>/lib/security/cacerts -file msb.der
```

If you use an IP instead of a public url during development,
it will be necessary to disable the hostname verification to connect via web socket secure.

```java
public class DrillMachine {
    // …
    public void startClient() {
        final String url = "wss://<IP_ADDRESS>:8084";
        final String trustStore = "./truststore.trs";
        final String password = "password";
        MsbClient msbClient = new MsbClient.Builder().url(url).trustStore(trustStore, password).disableHostnameVerification().build();
      // …
  }
}
```

## Connection recovery

If connection to the common websocket interface is broken the client performs a reconnect.

After a reconnect the registration at the MSB will be redone automatically by the client.

You can also change this interval by setting an integer value in `ms` for the reconnect interval.

```java
public class DrillMachine {
    // …
    public void startClient() {
        final String url = "ws://<IP_ADDRESS>:8085";
        MsbClient msbClient = new MsbClient.Builder().url(url).reconnectInterval(10000).build();
      // …
  }
}
```

Or you can disable the automatic reconnect.

```java
public class DrillMachine {
    // …
    public void startClient() {
        final String url = "ws://<IP_ADDRESS>:8085";
        MsbClient msbClient = new MsbClient.Builder().url(url).disableAutoReconnect().build();
      // …
  }
}
```

## Event caching

If the client loses the connection, the published events are cached in a queue.

After a successful reconnection, the queued events are published to MSB (FIFO principle).
The default size of the queue is 1000 entries. The size can be changed:

```java
public class DrillMachine {
    // …
    public void startClient() {
        final String url = "ws://<IP_ADDRESS>:8085";
        MsbClient msbClient = new MsbClient.Builder().url(url).eventCacheSize(9999).build();
      // …
  }
}
```

If no event caching is needed, you can disable it.

```java
public class DrillMachine {
    // …
    public void startClient() {
        final String url = "ws://<IP_ADDRESS>:8085";
        MsbClient msbClient = new MsbClient.Builder().url(url).disableEventCache().build();
      // …
  }
}
```

## Debug mode

It might be also helpful to enable data format validation, to check if an event value is valid

```java
public class DrillMachine {
    // …
    public void startClient() {
        final String url = "ws://<IP_ADDRESS>:8085";
        MsbClient msbClient = new MsbClient.Builder().url(url).enabledDataFormatValidation().build();

      // …
  }
}
```

## Logging

Logging is implemented with [SLF4J (Simple Logging Facade for Java)](http://www.slf4j.org), which gives access to many logging frameworks
such as Log4j, Logback or java.util.logging. This allows the end user to plug-in the desired logging framework.
This section shows how to use Logback as logging functionality without making any change in application code.

If you want to use [Logback](http://logback.qos.ch) for logging, you only need to add the logback-classic jar to the project dependency.

```xml
<dependency>
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-classic</artifactId>
  <version>${logback.version}</version>
</dependency>
```

To configure the log output, the configuration file logback.xml must be available at the root resource
folder src\main\resources.
The following examples illustrate how to set the root logger to INFO and a specific logger to DEBUG,
which causes info, warning and error messages from all loggers in the application to be logged and also DEBUG for the specific logger:

```xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- set log level in the logback.xml file -->

<configuration>
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <layout class="ch.qos.logback.classic.PatternLayout">
      <Pattern>
        %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
      </Pattern>
    </layout>
  </appender>

  <root level="INFO">
    <appender-ref ref="STDOUT"/>
  </root>

  <logger name="de.fhg.ipa.vfk" level="DEBUG" />

</configuration>
```

## License
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fresearch-virtualfortknox%2Fmsb-client-websocket-java.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fresearch-virtualfortknox%2Fmsb-client-websocket-java?ref=badge_large)

branch_name: refs/heads/master

extension: md

gha_language: Java

license_type: permissive


text:
(c) Copyright 2016-2022 Altair Engineering Inc.
    Licensed under the Apache License, Version 2.0 (the "License"); you may not
    use this file except in compliance with the License.

    You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

    See the License for the specific language governing permissions and
    limitations under the License.

# UGE Python Configuration Library

## Prerequisites

UGE PyCL requires recent versions of the following software:

1. UGE (8.3.1p9, 8.4.0, or later)
2. Python (v2.7.5 or later in v2.7 series)
3. Setuptools (0.9.8 or later; for egg installation)
4. Nose (1.3.7 or later; for testing)
5. Sphinx (1.1.3 or later; for generating documentation)
6. Standard development tools (make)

The software versions listed above were used for prototype development and
testing, on CentOS 7.2 (64-bit). It is likely that any recent version of
Python (such as those that come with current linux distributions) should work.
UGE versions 8.3.1p9 or later or 8.4.0 and later will work with the Configuration API.
Minor modifications to the code that checks versions will have to be made to support
versions greater than 8.4.0.

## Build

In the top level directory run:

```sh
$ make
```

The above command will create UGE PyCL egg package in the `dist` directory, which can be installed using the `easy_install` command. It will also run `sphinx-build` command and generate HTML documentation in the `dist/doc/html` directory.

## Basic API Usage

For simple testing, without installing UGE PyCL egg package, do the following:

1) Setup PYTHONPATH environment variable to point to the top level directory:

```sh
$ export PYTHONPATH=<UGE_PYCL_ROOT>
```

Note that the above step is not needed if UGE PyCL egg package is installed.

2) Source the appropriate UGE setup file:

```sh
$ source <SGE_ROOT>/<SGE_CELL>/settings.sh
```

3) List queues using QconfApi object:

```sh
$ python -c "from uge.api import QconfApi; api = QconfApi(); print api.list_queues()"
```

## Running Test Suite

1) Setup PYTHONPATH environment variable to point to the top level directory:

```sh
$ export PYTHONPATH=<UGE_PYCL_ROOT>
```

This step is not needed if UGE PyCL egg package is installed.

2) Source the appropriate UGE setup file:

```sh
$ source <SGE_ROOT>/<SGE_CELL>/settings.sh
```

3) Run test suite:

  adjust test_values.json according to your needs, esp. the host_names have to be resolvable,
  otherwise some execution host tests might fail

```sh
$ make test
```

repository: gridengine/config-api

gha_language: Python

repo_name: gridengine/config-api


text:
**BEFORE:**

Import data
```
mongoimport --db test --collection grades --drop --file grades.json
```
Creating admin user
```
use admin
db.createUser({user: "root",pwd: "password",roles: ["userAdminAnyDatabase", "dbAdminAnyDatabase", "readWriteAnyDatabase"],})
```
Creating test user
```
use test
db.createUser(
  {
    user: "test",
    pwd: "test123",
    roles: [ { role: "readWrite", db: "test" }]
  }
)
```

**TASKS:**

* ARCHITECTURE
0. Create connection Tool to connect to MongoDB through JAVA
1. Extract connection properties to separated file
2. Prepare configuration class responsible for reading properties (can be singleton)
3. Turn on log4j logging
4. Try to connect to DB (remember about turning on mongod!)

* MONGODB CRUD
1. INSERT COLLECTION
https://www.mkyong.com/mongodb/java-mongodb-insert-a-document/
2. SHOW DOCUMENTS NUMBER INSIDE COLLECTION
3. STUDENTS ID > 100
4. STUDENT GRADES WHERE ID > 100 AND GRADE TYPE = EXAM
5. STUDENT IDS WITH AVG
6. SORT STUDENT IDS
7. INCREMENT ALL EXAM GRADES IF THEY ARE IN RANGE <10,20>
https://docs.mongodb.com/manual/reference/operator/update/max/#up._S_max

**IMPORTANT:**
* https://docs.mongodb.com/manual/crud/
* https://docs.mongodb.com/manual/tutorial/insert-documents/
* https://docs.mongodb.com/manual/tutorial/query-documents/
* https://docs.mongodb.com/manual/tutorial/update-documents/
* https://docs.mongodb.com/manual/tutorial/remove-documents/
* https://docs.mongodb.com/manual/aggregation/

repository: morgulkk/sda-nosql

repo_name: morgulkk/sda-nosql


text:
# TensorFlow NUFFT

[![PyPI](https://badge.fury.io/py/tensorflow-nufft.svg)](https://badge.fury.io/py/tensorflow-nufft)
[![Build](https://github.com/mrphys/tensorflow-nufft/actions/workflows/build-package.yml/badge.svg)](https://github.com/mrphys/tensorflow-nufft/actions/workflows/build-package.yml)
[![Docs](https://img.shields.io/badge/api-reference-blue.svg)](https://mrphys.github.io/tensorflow-nufft)
[![DOI](https://zenodo.org/badge/382718757.svg)](https://zenodo.org/badge/latestdoi/382718757)

<!-- start-intro -->

TensorFlow NUFFT is a fast, native non-uniform fast Fourier transform op for
TensorFlow. It provides:

- Fast CPU/GPU kernels. The TensorFlow framework automatically handles device
  placement as usual.
- A simple, well-documented Python interface.
- Gradient definitions for automatic differentiation.
- Shape functions to support static shape inference.

The underlying algorithm is based on the NUFFT implementation by the Flatiron
Institute. Please refer to
[FINUFFT](https://github.com/flatironinstitute/finufft/) and
[cuFINUFFT](https://github.com/flatironinstitute/cufinufft/) for more details.

<!-- end-intro -->

<!-- start-install -->

## Installation

You can install TensorFlow NUFFT with ``pip``:

```
pip install tensorflow-nufft
```

Note that only Linux wheels are currently being provided.

### TensorFlow compatibility

Each TensorFlow NUFFT release is compiled against a specific version of
TensorFlow. To ensure compatibility, it is recommended to install matching
versions of TensorFlow and TensorFlow NUFFT according to the table below.

| TensorFlow NUFFT Version | TensorFlow Compatibility | Release Date |
| ------------------------ | ------------------------ | ------------ |
| v0.12.0                  | v2.11.x                  | Nov 27, 2022 |
| v0.11.0                  | v2.10.x                  | Oct 12, 2022 |
| v0.10.1                  | v2.10.x                  | Sep 26, 2022 |
| v0.10.0                  | v2.10.x                  | Sep 7, 2022  |
| v0.9.0                   | v2.9.x                   | Sep 5, 2022  |
| v0.8.1                   | v2.9.x                   | Jun 23, 2022 |
| v0.8.0                   | v2.9.x                   | May 20, 2022 |
| v0.7.3                   | v2.8.x                   | May 4, 2022  |
| v0.7.2                   | v2.8.x                   | Apr 29, 2022 |
| v0.7.1                   | v2.8.x                   | Apr 6, 2022  |
| v0.7.0                   | v2.8.x                   | Feb 8, 2022  |
| v0.6.0                   | v2.7.x                   | Jan 27, 2022 |
| v0.5.0                   | v2.7.x                   | Dec 12, 2021 |
| v0.4.0                   | v2.7.x                   | Nov 8, 2021  |
| v0.3.2                   | v2.6.x                   | Aug 18, 2021 |
| v0.3.1                   | v2.6.x                   | Aug 18, 2021 |
| v0.3.0                   | v2.6.x                   | Aug 13, 2021 |

<!-- end-install -->

<!-- start-usage -->

## Usage

Once installed, you can perform NUFFTs in your TensorFlow code simply as:

```python
import tensorflow_nufft as tfft

outputs = tfft.nufft(inputs, points)
```

See the documentation for the
[`tfft.nufft`](https://mrphys.github.io/tensorflow-nufft/api_docs/tfft/nufft)
function to learn more about the different parameters.

<!-- end-usage -->

## Documentation

Visit the [docs](https://mrphys.github.io/tensorflow-nufft/) for the API
reference and examples of usage.

## Issues

If you use this package and something does not work as you expected, please
[file an issue](https://github.com/mrphys/tensorflow-nufft/issues/new)
describing your problem. We're here to help!

## Credits

If you find this software useful in your research, please
[cite us](https://doi.org/10.5281/zenodo.5198288).

## Contributors

See CONTRIBUTORS for a list of people who have contributed to this project.
Thank you!

All contributions are welcome. If there is an issue you would like to address
or a feature you would like to add, you might want to begin by commenting on
the corresponding issue (or if it doesn't exist yet, by creating a new issue).

repository: mrphys/tensorflow-nufft

repo_name: mrphys/tensorflow-nufft


text:
# Test routine

Test routine is a routine ( function, method ) designed to test some aspect of a test unit. A test suite includes test routines, each of which is executed independently of each other. Instructions of test routines are performed sequentially and include test checks that can be combined into test cases and can have a description.

Partitioning of a test suite on the test routines should be designed, taking into account that the routine stops its performance at the first thrown mistake.

### Result of test routine running

A test routine is marked as failed ( red ) if:

- an error was thrown from it;
- there was none test check in it;
- at least one test check fails;
- time out of test routine is over.

Otherwise, a test routine is marked as passed (green).

### Example of a test routine

![test.routine](../../images/test.routine.png)

The figure shows a section of code that contains two test routines. The first routine named `routine1` performs one test of the identity of two values. The second test routine named `routine2` has two test cases, each of which has one test check. Test routines should be mentioned in the definition of the test suite to be executed.

[Back to content](../README.md#Concepts)

license: MIT

repository: Wandalen/wTesting

gha_language: JavaScript

gha_license_id: MIT

repo_name: Wandalen/wTesting