Unicode の全絵文字

# * 0 1 2 3 4 5 6 7 8 9 © ® ‼ ⁉ ™ ℹ ↔ ↕ ↖ ↗ ↘ ↙ ↩ ↪ ⌚ ⌛ ⌨ ⏏ ⏩ ⏪ ⏫ ⏬ ⏭ ⏮ ⏯ ⏰ ⏱ ⏲ ⏳ ⏸ ⏹ ⏺ Ⓜ ▪ ▫ ▶ ◀ ◻ ◼ ◽ ◾ ☀ ☁ ☂ ☃ ☄ ☎ ☑ ☔ ☕ ☘ ☝ ☠ ☢ ☣ ☦ ☪ ☮ ☯ ☸ ☹ ☺ ♀ ♂ ♈ ♉ ♊ ♋ ♌ ♍ ♎ ♏ ♐ ♑ ♒ ♓ ♟ ♠ ♣ ♥ ♦ ♨ ♻ ♾ ♿ ⚒ ⚓ ⚔ ⚕ ⚖ ⚗ ⚙ ⚛ ⚜ ⚠ ⚡ ⚪ ⚫ ⚰ ⚱ ⚽ ⚾ ⛄ ⛅ ⛈ ⛎ ⛏ ⛑ ⛓ ⛔ ⛩ ⛪ ⛰ ⛱ ⛲ ⛳ ⛴ ⛵ ⛷ ⛸ ⛹ ⛺ ⛽ ✂ ✅ ✈ ✉ ✊ ✋ ✌ ✍ ✏ ✒ ✔ ✖ ✝ ✡ ✨ ✳ ✴ ❄ ❇ ❌ ❎ ❓ ❔ ❕ ❗ ❣ ❤ ➕ ➖ ➗ ➡ ➰ ➿ ⤴ ⤵ ⬅ ⬆ ⬇ ⬛ ⬜ ⭐ ⭕ 〰 〽 ㊗ ㊙ 🀄 🃏 🅰 🅱 🅾 🅿 🆎 🆑 🆒 🆓 🆔 🆕 🆖 🆗 🆘 🆙 🆚 🇦 🇧 🇨 🇩 🇪 🇫 🇬 🇭 🇮 🇯 🇰 🇱 🇲 🇳 🇴 🇵 🇶 🇷 🇸 🇹 🇺 🇻 🇼 🇽 🇾 🇿 🈁 🈂 🈚 🈯 🈲 🈳 🈴 🈵 🈶 🈷 🈸 🈹 🈺 🉐 🉑 🌀 🌁 🌂 🌃 🌄 🌅 🌆 🌇 🌈 🌉 🌊 🌋 🌌 🌍 🌎 🌏 🌐 🌑 🌒 🌓 🌔 🌕 🌖 🌗 🌘 🌙 🌚 🌛 🌜 🌝 🌞 🌟 🌠 🌡 🌤 🌥 🌦 🌧 🌨 🌩 🌪 🌫 🌬 🌭 🌮 🌯 🌰 🌱 🌲 🌳 🌴 🌵 🌶 🌷 🌸 🌹 🌺 🌻 🌼 🌽 🌾 🌿 🍀 🍁 🍂 🍃 🍄 🍅 🍆 🍇 🍈 🍉 🍊 🍋 🍌 🍍 🍎 🍏 🍐 🍑 🍒 🍓 🍔 🍕 🍖 🍗 🍘 🍙 🍚 🍛 🍜 🍝 🍞 🍟 🍠 🍡 🍢 🍣 🍤 🍥 🍦 🍧 🍨 🍩 🍪 🍫 🍬 🍭 🍮 🍯 🍰 🍱 🍲 🍳 🍴 🍵 🍶 🍷 🍸 🍹 🍺 🍻 🍼 🍽 🍾 🍿 🎀 🎁 🎂 🎃 🎄 🎅 🎆 🎇 🎈 🎉 🎊 🎋 🎌 🎍 🎎 🎏 🎐 🎑 🎒 🎓 🎖 🎗 🎙 🎚 🎛 🎞 🎟 🎠 🎡 🎢 🎣 🎤 🎥 🎦 🎧 🎨 🎩 🎪 🎫 🎬 🎭 🎮 🎯 🎰 🎱 🎲 🎳 🎴 🎵 🎶 🎷 🎸 🎹 🎺 🎻 🎼 🎽 🎾 🎿 🏀 🏁 🏂 🏃 🏄 🏅 🏆 🏇 🏈 🏉 🏊 🏋 🏌 🏍 🏎 🏏 🏐 🏑 🏒 🏓 🏔 🏕 🏖 🏗 🏘 🏙 🏚 🏛 🏜 🏝 🏞 🏟 🏠 🏡 🏢 🏣 🏤 🏥 🏦 🏧 🏨 🏩 🏪 🏫 🏬 🏭 🏮 🏯 🏰 🏳 🏴 🏵 🏷 🏸 🏹 🏺 🏻 🏼 🏽 🏾 🏿 🐀 🐁 🐂 🐃 🐄 🐅 🐆 🐇 🐈 🐉 🐊 🐋 🐌 🐍 🐎 🐏 🐐 🐑 🐒 🐓 🐔 🐕 🐖 🐗 🐘 🐙 🐚 🐛 🐜 🐝 🐞 🐟 🐠 🐡 🐢 🐣 🐤 🐥 🐦 🐧 🐨 🐩 🐪 🐫 🐬 🐭 🐮 🐯 🐰 🐱 🐲 🐳 🐴 🐵 🐶 🐷 🐸 🐹 🐺 🐻 🐼 🐽 🐾 🐿 👀 👁 👂 👃 👄 👅 👆 👇 👈 👉 👊 👋 👌 👍 👎 👏 👐 👑 👒 👓 👔 👕 👖 👗 👘 👙 👚 👛 👜 👝 👞 👟 👠 👡 👢 👣 👤 👥 👦 👧 👨 👩 👪 👫 👬 👭 👮 👯 👰 👱 👲 👳 👴 👵 👶 👷 👸 👹 👺 👻 👼 👽 👾 👿 💀 💁 💂 💃 💄 💅 💆 💇 💈 💉 💊 💋 💌 💍 💎 💏 💐 💑 💒 💓 💔 💕 💖 💗 💘 💙 💚 💛 💜 💝 💞 💟 💠 💡 💢 💣 💤 💥 💦 💧 💨 💩 💪 💫 💬 💭 💮 💯 💰 💱 💲 💳 💴 💵 💶 💷 💸 💹 💺 💻 💼 💽 💾 💿 📀 📁 📂 📃 📄 📅 📆 📇 📈 📉 📊 📋 📌 📍 📎 📏 📐 📑 📒 📓 📔 📕 📖 📗 📘 📙 📚 📛 📜 📝 📞 📟 📠 📡 📢 📣 📤 📥 📦 📧 📨 📩 📪 📫 📬 📭 📮 📯 📰 📱 📲 📳 📴 📵 📶 📷 📸 📹 📺 📻 📼 📽 📿 🔀 🔁 🔂 🔃 🔄 🔅 🔆 🔇 🔈 🔉 🔊 🔋 🔌 🔍 🔎 🔏 🔐 🔑 🔒 🔓 🔔 🔕 🔖 🔗 🔘 🔙 🔚 🔛 🔜 🔝 🔞 🔟 🔠 🔡 🔢 🔣 🔤 🔥 🔦 🔧 🔨 🔩 🔪 🔫 🔬 🔭 🔮 🔯 🔰 🔱 🔲 🔳 🔴 🔵 🔶 🔷 🔸 🔹 🔺 🔻 🔼 🔽 🕉 🕊 🕋 🕌 🕍 🕎 🕐 🕑 🕒 🕓 🕔 🕕 🕖 🕗 🕘 🕙 🕚 🕛 🕜 🕝 🕞 🕟 🕠 🕡 🕢 🕣 🕤 🕥 🕦 🕧 🕯 🕰 🕳 🕴 🕵 🕶 🕷 🕸 🕹 🕺 🖇 🖊 🖋 🖌 🖍 🖐 🖕 🖖 🖤 🖥 🖨 🖱 🖲 🖼 🗂 🗃 🗄 🗑 🗒 🗓 🗜 🗝 🗞 🗡 🗣 🗨 🗯 🗳 🗺 🗻 🗼 🗽 🗾 🗿 😀 😁 😂 😃 😄 😅 😆 😇 😈 😉 😊 😋 😌 😍 😎 😏 😐 😑 😒 😓 😔 😕 😖 😗 😘 😙 😚 😛 😜 😝 😞 😟 😠 😡 😢 😣 😤 😥 😦 😧 😨 😩 😪 😫 😬 😭 😮 😯 😰 😱 😲 😳 😴 😵 😶 😷 😸 😹 😺 😻 😼 😽 😾 😿 🙀 🙁 🙂 🙃 🙄 🙅 🙆 🙇 🙈 🙉 🙊 🙋 🙌 🙍 🙎 🙏 🚀 🚁 🚂 🚃 🚄 🚅 🚆 🚇 🚈 🚉 🚊 🚋 🚌 🚍 🚎 🚏 🚐 🚑 🚒 🚓 🚔 🚕 🚖 🚗 🚘 🚙 🚚 🚛 🚜 🚝 🚞 🚟 🚠 🚡 🚢 🚣 🚤 🚥 🚦 🚧 🚨 🚩 🚪 🚫 🚬 🚭 🚮 🚯 🚰 🚱 🚲 🚳 🚴 🚵 🚶 🚷 🚸 🚹 🚺 🚻 🚼 🚽 🚾 🚿 🛀 🛁 🛂 🛃 🛄 🛅 🛋 🛌 🛍 🛎 🛏 🛐 🛑 🛒 🛕 🛠 🛡 🛢 🛣 🛤 🛥 🛩 🛫 🛬 🛰 🛳 🛴 🛵 🛶 🛷 🛸 🛹 🛺 🟠 🟡 🟢 🟣 🟤 🟥 🟦 🟧 🟨 🟩 🟪 🟫 🤍 🤎 🤏 🤐 🤑 🤒 🤓 🤔 🤕 🤖 🤗 🤘 🤙 🤚 🤛 🤜 🤝 🤞 🤠 🤡 🤢 🤣 🤤 🤥 🤦 🤧 🤰 🤳 🤴 🤵 🤶 🤷 🤸 🤹 🤺 🤼 🤽 🤾 🤿 🥀 🥁 🥂 🥃 🥄 🥅 🥇 🥈 🥉 🥊 🥋 🥐 🥑 🥒 🥓 🥔 🥕 🥖 🥗 🥘 🥙 🥚 🥛 🥜 🥝 🥞 🥟 🥠 🥡 🥢 🥣 🥤 🥥 🥦 🥧 🥨 🥩 🥪 🥫 🥬 🥭 🥮 🥯 🥰 🥱 🥳 🥴 🥵 🥶 🥺 🥻 🥼 🥽 🥾 🥿 🦀 🦁 🦂 🦃 🦄 🦅 🦆 🦇 🦈 🦉 🦊 🦋 🦌 🦍 🦎 🦏 🦐 🦑 🦒 🦓 🦔 🦕 🦖 🦗 🦘 🦙 🦚 🦛 🦜 🦝 🦞 🦟 🦠 🦡 🦢 🦥 🦦 🦧 🦨 🦩 🦪 🧀 🦮 🦯 🦰 🦱 🦲 🦳 🦴 🦵 🦶 🦷 🦸 🦹 🦺 🦻 🦼 🦽 🦾 🦿 🧀 🧁 🧂 🧃 🧄 🧅 🧆 🧇 🧈 🧉 🧊 🧍 🧎 🧏 🧐 🧑 🧒 🧓 🧔 🧕 🧖 🧗 🧘 🧙 🧚 🧛 🧜 🧝 🧞 🧟 🧠 🧡 🧢 🧣 🧤 🧥 🧦 🧧 🧨 🧩 🧪 🧫 🧬 🧭 🧮 🧯 🧰 🧱 🧲 🧳 🧴 🧵 🧶 🧷 🧸 🧹 🧺 🧻 🧼 🧽 🧾 🩰 🩱 🩲 🩳 🩸 🩹 🩺 🪀 🪁 🪂 🪐 🪑 🪒 🪓 🪔 🪕
PC で見るよりスマホとかでの方がきれいに表示されると思います。

表示用の Ruby コード。Gem 'nokogiri' でこのページスクレイピングする。

require 'open-uri'
require 'nokogiri'

url = "https://ja.wikipedia.org/wiki/Unicode%E3%81%AEEmoji%E3%81%AE%E4%B8%80%E8%A6%A7"
Nokogiri.HTML(URI.open(url)).css('td').each do |x|
  st = x.text
  print ('0x' + st[2..-1]).to_i(0).chr("UTF-8") + " " if st[0, 2] == "U+"
end
puts

 

別ページから

lets-emoji.comこのサイトからスクレイピングしました。

😀 😃 😄 😁 😆 😅 🤣 😂 🙂 🙃 😉 😊 😇 🥰 😍 🤩 😘 😗 ☺ 😚 😙 😋 😛 😜 🤪 😝 🤑 🤗 🤭 🤫 🤔 🤐 🤨 😐 😑 😶 😏 😒 🙄 😬 🤥 😌 😔 😪 🤤 😴 😷 🤒 🤕 🤢 🤮 🤧 🥵 🥶 🥴 😵 🤯 🤠 🥳 😎 🤓 🧐 😕 😟 🙁 ☹ 😮 😯 😲 😳 🥺 😦 😧 😨 😰 😥 😢 😭 😱 😖 😣 😞 😓 😩 😫 🥱 😤 😡 😠 🤬 😈 👿 💀 ☠ 💩 🤡 👹 👺 👻 👽 👾 🤖 😺 😸 😹 😻 😼 😽 🙀 😿 😾 🙈 🙉 🙊 💋 💌 💘 💝 💖 💗 💓 💞 💕 💟 ❣ 💔 ❤ 🧡 💛 💚 💙 💜 🤎 🖤 🤍 💯 💢 💥 💫 💦 💨 🕳 💣 💬 👁 ‍ 🗨 👁 ️ ‍ 🗨 ️ 🗨 🗯 💭 💤
👋 🤚 🖐 ✋ 🖖 👌 🤏 ✌ 🤞 🤟 🤘 🤙 👈 👉 👆 🖕 👇 ☝ 👍 👎 ✊ 👊 🤛 🤜 👏 🙌 👐 🤲 🤝 🙏 ✍ 💅 🤳 💪 🦾 🦿 🦵 🦶 👂 🦻 👃 🧠 🦷 🦴 👀 👁 👅 👄
👋 🏻 🤚 🏻 🖐 🏻 ✋ 🏻 🖖 🏻 👌 🏻 🤏 🏻 ✌ 🏻 🤞 🏻 🤟 🏻 🤘 🏻 🤙 🏻 👈 🏻 👉 🏻 👆 🏻 🖕 🏻 👇 🏻 ☝ 🏻 👍 🏻 👎 🏻 ✊ 🏻 👊 🏻 🤛 🏻 🤜 🏻 👏 🏻 🙌 🏻 👐 🏻 🤲 🏻 🙏 🏻 ✍ 🏻 💅 🏻 🤳 🏻 💪 🏻 🦵 🏻 🦶 🏻 👂 🏻 🦻 🏻 👃 🏻 🧠 🦷 🦴 👀 👁 👅 👄
👋 🏼 🤚 🏼 🖐 🏼 ✋ 🏼 🖖 🏼 👌 🏼 🤏 🏼 ✌ 🏼 🤞 🏼 🤟 🏼 🤘 🏼 🤙 🏼 👈 🏼 👉 🏼 👆 🏼 🖕 🏼 👇 🏼 ☝ 🏼 👍 🏼 👎 🏼 ✊ 🏼 👊 🏼 🤛 🏼 🤜 🏼 👏 🏼 🙌 🏼 👐 🏼 🤲 🏼 🙏 🏼 ✍ 🏼 💅 🏼 🤳 🏼 💪 🏼 🦵 🏼 🦶 🏼 👂 🏼 🦻 🏼 👃 🏼 🧠 🦷 🦴 👀 👁 👅 👄
👋 🏽 🤚 🏽 🖐 🏽 ✋ 🏽 🖖 🏽 👌 🏽 🤏 🏽 ✌ 🏽 🤞 🏽 🤟 🏽 🤘 🏽 🤙 🏽 👈 🏽 👉 🏽 👆 🏽 🖕 🏽 👇 🏽 ☝ 🏽 👍 🏽 👎 🏽 ✊ 🏽 👊 🏽 🤛 🏽 🤜 🏽 👏 🏽 🙌 🏽 👐 🏽 🤲 🏽 🙏 🏽 ✍ 🏽 💅 🏽 🤳 🏽 💪 🏽 🦵 🏽 🦶 🏽 👂 🏽 🦻 🏽 👃 🏽 🧠 🦷 🦴 👀 👁 👅 👄
👋 🏾 🤚 🏾 🖐 🏾 ✋ 🏾 🖖 🏾 👌 🏾 🤏 🏾 ✌ 🏾 🤞 🏾 🤟 🏾 🤘 🏾 🤙 🏾 👈 🏾 👉 🏾 👆 🏾 🖕 🏾 👇 🏾 ☝ 🏾 👍 🏾 👎 🏾 ✊ 🏾 👊 🏾 🤛 🏾 🤜 🏾 👏 🏾 🙌 🏾 👐 🏾 🤲 🏾 🙏 🏾 ✍ 🏾 💅 🏾 🤳 🏾 💪 🏾 🦵 🏾 🦶 🏾 👂 🏾 🦻 🏾 👃 🏾 🧠 🦷 🦴 👀 👁 👅 👄
👋 🏿 🤚 🏿 🖐 🏿 ✋ 🏿 🖖 🏿 👌 🏿 🤏 🏿 ✌ 🏿 🤞 🏿 🤟 🏿 🤘 🏿 🤙 🏿 👈 🏿 👉 🏿 👆 🏿 🖕 🏿 👇 🏿 ☝ 🏿 👍 🏿 👎 🏿 ✊ 🏿 👊 🏿 🤛 🏿 🤜 🏿 👏 🏿 🙌 🏿 👐 🏿 🤲 🏿 🙏 🏿 ✍ 🏿 💅 🏿 🤳 🏿 💪 🏿 🦵 🏿 🦶 🏿 👂 🏿 🦻 🏿 👃 🏿 🧠 🦷 🦴 👀 👁 👅 👄
👶 🧒 👦 👧 🧑 👱 👨 🧔 👱 ‍ ♂ ️ 👨 ‍ 🦰 👨 ‍ 🦱 👨 ‍ 🦳 👨 ‍ 🦲 👩 👱 ‍ ♀ ️ 👩 ‍ 🦰 👩 ‍ 🦱 👩 ‍ 🦳 👩 ‍ 🦲 🧓 👴 👵
👶 🏻 🧒 🏻 👦 🏻 👧 🏻 🧑 🏻 👱 🏻 👨 🏻 🧔 🏻 👱 🏻 ‍ ♂ ️ 👨 🏻 ‍ 🦰 👨 🏻 ‍ 🦱 👨 🏻 ‍ 🦳 👨 🏻 ‍ 🦲 👩 🏻 👱 🏻 ‍ ♀ ️ 👩 🏻 ‍ 🦰 👩 🏻 ‍ 🦱 👩 🏻 ‍ 🦳 👩 🏻 ‍ 🦲 🧓 🏻 👴 🏻 👵 🏻 🏻
👶 🏼 🧒 🏼 👦 🏼 👧 🏼 🧑 🏼 👱 🏼 👨 🏼 🧔 🏼 👱 🏼 ‍ ♂ ️ 👨 🏼 ‍ 🦰 👨 🏼 ‍ 🦱 👨 🏼 ‍ 🦳 👨 🏼 ‍ 🦲 👩 🏼 👱 🏼 ‍ ♀ ️ 👩 🏼 ‍ 🦰 👩 🏼 ‍ 🦱 👩 🏼 ‍ 🦳 👩 🏼 ‍ 🦲 🧓 🏼 👴 🏼 👵 🏼 🏼
👶 🏽 🧒 🏽 👦 🏽 👧 🏽 🧑 🏽 👱 🏽 👨 🏽 🧔 🏽 👱 🏽 ‍ ♂ ️ 👨 🏽 ‍ 🦰 👨 🏽 ‍ 🦱 👨 🏽 ‍ 🦳 👨 🏽 ‍ 🦲 👩 🏽 👱 🏽 ‍ ♀ ️ 👩 🏽 ‍ 🦰 👩 🏽 ‍ 🦱 👩 🏽 ‍ 🦳 👩 🏽 ‍ 🦲 🧓 🏽 👴 🏽 👵 🏽 🏽
👶 🏾 🧒 🏾 👦 🏾 👧 🏾 🧑 🏾 👱 🏾 👨 🏾 🧔 🏾 👱 🏾 ‍ ♂ ️ 👨 🏾 ‍ 🦰 👨 🏾 ‍ 🦱 👨 🏾 ‍ 🦳 👨 🏾 ‍ 🦲 👩 🏾 👱 🏾 ‍ ♀ ️ 👩 🏾 ‍ 🦰 👩 🏾 ‍ 🦱 👩 🏾 ‍ 🦳 👩 🏾 ‍ 🦲 🧓 🏾 👴 🏾 👵 🏾 🏾
👶 🏿 🧒 🏿 👦 🏿 👧 🏿 🧑 🏿 👱 🏿 👨 🏿 🧔 🏿 👱 🏿 ‍ ♂ ️ 👨 🏿 ‍ 🦰 👨 🏿 ‍ 🦱 👨 🏿 ‍ 🦳 👨 🏿 ‍ 🦲 👩 🏿 👱 🏿 ‍ ♀ ️ 👩 🏿 ‍ 🦰 👩 🏿 ‍ 🦱 👩 🏿 ‍ 🦳 👩 🏿 ‍ 🦲 🧓 🏿 👴 🏿 👵 🏿 🏿
🙍 🙍 ‍ ♂ ️ 🙍 ‍ ♀ ️ 🙎 🙎 ‍ ♂ ️ 🙎 ‍ ♀ ️ 🙅 🙅 ‍ ♂ ️ 🙅 ‍ ♀ ️ 🙆 🙆 ‍ ♂ ️ 🙆 ‍ ♀ ️ 💁 💁 ‍ ♂ ️ 💁 ‍ ♀ ️ 🙋 🙋 ‍ ♂ ️ 🙋 ‍ ♀ ️ 🧏 🧏 ‍ ♂ ️ 🧏 ‍ ♀ ️ 🙇 🙇 ‍ ♂ ️ 🙇 ‍ ♀ ️ 🤦 🤦 ‍ ♂ ️ 🤦 ‍ ♀ ️ 🤷 🤷 ‍ ♂ ️ 🤷 ‍ ♀ ️
🙍 🏻 🙍 🏻 ‍ ♂ ️ 🙍 🏻 ‍ ♀ ️ 🙎 🏻 🙎 🏻 ‍ ♂ ️ 🙎 🏻 ‍ ♀ ️ 🙅 🏻 🙅 🏻 ‍ ♂ ️ 🙅 🏻 ‍ ♀ ️ 🙆 🏻 🙆 🏻 ‍ ♂ ️ 🙆 🏻 ‍ ♀ ️ 💁 🏻 💁 🏻 ‍ ♂ ️ 💁 🏻 ‍ ♀ ️ 🙋 🏻 🙋 🏻 ‍ ♂ ️ 🙋 🏻 ‍ ♀ ️ 🧏 🏻 🧏 🏻 ‍ ♂ ️ 🧏 🏻 ‍ ♀ ️ 🙇 🏻 🙇 🏻 ‍ ♂ ️ 🙇 🏻 ‍ ♀ ️ 🤦 🏻 🤦 🏻 ‍ ♂ ️ 🤦 🏻 ‍ ♀ ️ 🤷 🏻 🤷 🏻 ‍ ♂ ️ 🤷 🏻 ‍ ♀ ️
🙍 🏼 🙍 🏼 ‍ ♂ ️ 🙍 🏼 ‍ ♀ ️ 🙎 🏼 🙎 🏼 ‍ ♂ ️ 🙎 🏼 ‍ ♀ ️ 🙅 🏼 🙅 🏼 ‍ ♂ ️ 🙅 🏼 ‍ ♀ ️ 🙆 🏼 🙆 🏼 ‍ ♂ ️ 🙆 🏼 ‍ ♀ ️ 💁 🏼 💁 🏼 ‍ ♂ ️ 💁 🏼 ‍ ♀ ️ 🙋 🏼 🙋 🏼 ‍ ♂ ️ 🙋 🏼 ‍ ♀ ️ 🧏 🏼 🧏 🏼 ‍ ♂ ️ 🧏 🏼 ‍ ♀ ️ 🙇 🏼 🙇 🏼 ‍ ♂ ️ 🙇 🏼 ‍ ♀ ️ 🤦 🏼 🤦 🏼 ‍ ♂ ️ 🤦 🏼 ‍ ♀ ️ 🤷 🏼 🤷 🏼 ‍ ♂ ️ 🤷 🏼 ‍ ♀ ️
🙍 🏽 🙍 🏽 ‍ ♂ ️ 🙍 🏽 ‍ ♀ ️ 🙎 🏽 🙎 🏽 ‍ ♂ ️ 🙎 🏽 ‍ ♀ ️ 🙅 🏽 🙅 🏽 ‍ ♂ ️ 🙅 🏽 ‍ ♀ ️ 🙆 🏽 🙆 🏽 ‍ ♂ ️ 🙆 🏽 ‍ ♀ ️ 💁 🏽 💁 🏽 ‍ ♂ ️ 💁 🏽 ‍ ♀ ️ 🙋 🏽 🙋 🏽 ‍ ♂ ️ 🙋 🏽 ‍ ♀ ️ 🧏 🏽 🧏 🏽 ‍ ♂ ️ 🧏 🏽 ‍ ♀ ️ 🙇 🏽 🙇 🏽 ‍ ♂ ️ 🙇 🏽 ‍ ♀ ️ 🤦 🏽 🤦 🏽 ‍ ♂ ️ 🤦 🏽 ‍ ♀ ️ 🤷 🏽 🤷 🏽 ‍ ♂ ️ 🤷 🏽 ‍ ♀ ️
🙍 🏾 🙍 🏾 ‍ ♂ ️ 🙍 🏾 ‍ ♀ ️ 🙎 🏾 🙎 🏾 ‍ ♂ ️ 🙎 🏾 ‍ ♀ ️ 🙅 🏾 🙅 🏾 ‍ ♂ ️ 🙅 🏾 ‍ ♀ ️ 🙆 🏾 🙆 🏾 ‍ ♂ ️ 🙆 🏾 ‍ ♀ ️ 💁 🏾 💁 🏾 ‍ ♂ ️ 💁 🏾 ‍ ♀ ️ 🙋 🏾 🙋 🏾 ‍ ♂ ️ 🙋 🏾 ‍ ♀ ️ 🧏 🏾 🧏 🏾 ‍ ♂ ️ 🧏 🏾 ‍ ♀ ️ 🙇 🏾 🙇 🏾 ‍ ♂ ️ 🙇 🏾 ‍ ♀ ️ 🤦 🏾 🤦 🏾 ‍ ♂ ️ 🤦 🏾 ‍ ♀ ️ 🤷 🏾 🤷 🏾 ‍ ♂ ️ 🤷 🏾 ‍ ♀ ️
🙍 🏿 🙍 🏿 ‍ ♂ ️ 🙍 🏿 ‍ ♀ ️ 🙎 🏿 🙎 🏿 ‍ ♂ ️ 🙎 🏿 ‍ ♀ ️ 🙅 🏿 🙅 🏿 ‍ ♂ ️ 🙅 🏿 ‍ ♀ ️ 🙆 🏿 🙆 🏿 ‍ ♂ ️ 🙆 🏿 ‍ ♀ ️ 💁 🏿 💁 🏿 ‍ ♂ ️ 💁 🏿 ‍ ♀ ️ 🙋 🏿 🙋 🏿 ‍ ♂ ️ 🙋 🏿 ‍ ♀ ️ 🧏 🏿 🧏 🏿 ‍ ♂ ️ 🧏 🏿 ‍ ♀ ️ 🙇 🏿 🙇 🏿 ‍ ♂ ️ 🙇 🏿 ‍ ♀ ️ 🤦 🏿 🤦 🏿 ‍ ♂ ️ 🤦 🏿 ‍ ♀ ️ 🤷 🏿 🤷 🏿 ‍ ♂ ️ 🤷 🏿 ‍ ♀ ️
👨 ‍ ⚕ ️ 👩 ‍ ⚕ ️ 👨 ‍ 🎓 👩 ‍ 🎓 👨 ‍ 🏫 👩 ‍ 🏫 👨 ‍ ⚖ ️ 👩 ‍ ⚖ ️ 👨 ‍ 🌾 👩 ‍ 🌾 👨 ‍ 🍳 👩 ‍ 🍳 👨 ‍ 🔧 👩 ‍ 🔧 👨 ‍ 🏭 👩 ‍ 🏭 👨 ‍ 💼 👩 ‍ 💼 👨 ‍ 🔬 👩 ‍ 🔬 👨 ‍ 💻 👩 ‍ 💻 👨 ‍ 🎤 👩 ‍ 🎤 👨 ‍ 🎨 👩 ‍ 🎨 👨 ‍ ✈ ️ 👩 ‍ ✈ ️ 👨 ‍ 🚀 👩 ‍ 🚀 👨 ‍ 🚒 👩 ‍ 🚒 👮 👮 ‍ ♂ ️ 👮 ‍ ♀ ️ 🕵 🕵 ️ ‍ ♂ ️ 🕵 ️ ‍ ♀ ️ 💂 💂 ‍ ♂ ️ 💂 ‍ ♀ ️ 👷 👷 ‍ ♂ ️ 👷 ‍ ♀ ️ 🤴 👸 👳 👳 ‍ ♂ ️ 👳 ‍ ♀ ️ 👲 🧕 🤵 👰 🤰 🤱
👨 🏻 ‍ ⚕ ️ 👩 🏻 ‍ ⚕ ️ 👨 🏻 ‍ 🎓 👩 🏻 ‍ 🎓 👨 🏻 ‍ 🏫 👩 🏻 ‍ 🏫 👨 🏻 ‍ ⚖ ️ 👩 🏻 ‍ ⚖ ️ 👨 🏻 ‍ 🌾 👩 🏻 ‍ 🌾 👨 🏻 ‍ 🍳 👩 🏻 ‍ 🍳 👨 🏻 ‍ 🔧 👩 🏻 ‍ 🔧 👨 🏻 ‍ 🏭 👩 🏻 ‍ 🏭 👨 🏻 ‍ 💼 👩 🏻 ‍ 💼 👨 🏻 ‍ 🔬 👩 🏻 ‍ 🔬 👨 🏻 ‍ 💻 👩 🏻 ‍ 💻 👨 🏻 ‍ 🎤 👩 🏻 ‍ 🎤 👨 🏻 ‍ 🎨 👩 🏻 ‍ 🎨 👨 🏻 ‍ ✈ ️ 👩 🏻 ‍ ✈ ️ 👨 🏻 ‍ 🚀 👩 🏻 ‍ 🚀 👨 🏻 ‍ 🚒 👩 🏻 ‍ 🚒 👮 🏻 👮 🏻 ‍ ♂ ️ 👮 🏻 ‍ ♀ ️ 🕵 🏻 🕵 🏻 ‍ ♂ ️ 🕵 🏻 ‍ ♀ ️ 💂 🏻 💂 🏻 ‍ ♂ ️ 💂 🏻 ‍ ♀ ️ 👷 🏻 👷 🏻 ‍ ♂ ️ 👷 🏻 ‍ ♀ ️ 🤴 🏻 👸 🏻 👳 🏻 👳 🏻 ‍ ♂ ️ 👳 🏻 ‍ ♀ ️ 👲 🏻 🧕 🏻 🤵 🏻 👰 🏻 🤰 🏻 🤱 🏻
👨 🏼 ‍ ⚕ ️ 👩 🏼 ‍ ⚕ ️ 👨 🏼 ‍ 🎓 👩 🏼 ‍ 🎓 👨 🏼 ‍ 🏫 👩 🏼 ‍ 🏫 👨 🏼 ‍ ⚖ ️ 👩 🏼 ‍ ⚖ ️ 👨 🏼 ‍ 🌾 👩 🏼 ‍ 🌾 👨 🏼 ‍ 🍳 👩 🏼 ‍ 🍳 👨 🏼 ‍ 🔧 👩 🏼 ‍ 🔧 👨 🏼 ‍ 🏭 👩 🏼 ‍ 🏭 👨 🏼 ‍ 💼 👩 🏼 ‍ 💼 👨 🏼 ‍ 🔬 👩 🏼 ‍ 🔬 👨 🏼 ‍ 💻 👩 🏼 ‍ 💻 👨 🏼 ‍ 🎤 👩 🏼 ‍ 🎤 👨 🏼 ‍ 🎨 👩 🏼 ‍ 🎨 👨 🏼 ‍ ✈ ️ 👩 🏼 ‍ ✈ ️ 👨 🏼 ‍ 🚀 👩 🏼 ‍ 🚀 👨 🏼 ‍ 🚒 👩 🏼 ‍ 🚒 👮 🏼 👮 🏼 ‍ ♂ ️ 👮 🏼 ‍ ♀ ️ 🕵 🏼 🕵 🏼 ‍ ♂ ️ 🕵 🏼 ‍ ♀ ️ 💂 🏼 💂 🏼 ‍ ♂ ️ 💂 🏼 ‍ ♀ ️ 👷 🏼 👷 🏼 ‍ ♂ ️ 👷 🏼 ‍ ♀ ️ 🤴 🏼 👸 🏼 👳 🏼 👳 🏼 ‍ ♂ ️ 👳 🏼 ‍ ♀ ️ 👲 🏼 🧕 🏼 🤵 🏼 👰 🏼 🤰 🏼 🤱 🏼
👨 🏽 ‍ ⚕ ️ 👩 🏽 ‍ ⚕ ️ 👨 🏽 ‍ 🎓 👩 🏽 ‍ 🎓 👨 🏽 ‍ 🏫 👩 🏽 ‍ 🏫 👨 🏽 ‍ ⚖ ️ 👩 🏽 ‍ ⚖ ️ 👨 🏽 ‍ 🌾 👩 🏽 ‍ 🌾 👨 🏽 ‍ 🍳 👩 🏽 ‍ 🍳 👨 🏽 ‍ 🔧 👩 🏽 ‍ 🔧 👨 🏽 ‍ 🏭 👩 🏽 ‍ 🏭 👨 🏽 ‍ 💼 👩 🏽 ‍ 💼 👨 🏽 ‍ 🔬 👩 🏽 ‍ 🔬 👨 🏽 ‍ 💻 👩 🏽 ‍ 💻 👨 🏽 ‍ 🎤 👩 🏽 ‍ 🎤 👨 🏽 ‍ 🎨 👩 🏽 ‍ 🎨 👨 🏽 ‍ ✈ ️ 👩 🏽 ‍ ✈ ️ 👨 🏽 ‍ 🚀 👩 🏽 ‍ 🚀 👨 🏽 ‍ 🚒 👩 🏽 ‍ 🚒 👮 🏽 👮 🏽 ‍ ♂ ️ 👮 🏽 ‍ ♀ ️ 🕵 🏽 🕵 🏽 ‍ ♂ ️ 🕵 🏽 ‍ ♀ ️ 💂 🏽 💂 🏽 ‍ ♂ ️ 💂 🏽 ‍ ♀ ️ 👷 🏽 👷 🏽 ‍ ♂ ️ 👷 🏽 ‍ ♀ ️ 🤴 🏽 👸 🏽 👳 🏽 👳 🏽 ‍ ♂ ️ 👳 🏽 ‍ ♀ ️ 👲 🏽 🧕 🏽 🤵 🏽 👰 🏽 🤰 🏽 🤱 🏽
👨 🏾 ‍ ⚕ ️ 👩 🏾 ‍ ⚕ ️ 👨 🏾 ‍ 🎓 👩 🏾 ‍ 🎓 👨 🏾 ‍ 🏫 👩 🏾 ‍ 🏫 👨 🏾 ‍ ⚖ ️ 👩 🏾 ‍ ⚖ ️ 👨 🏾 ‍ 🌾 👩 🏾 ‍ 🌾 👨 🏾 ‍ 🍳 👩 🏾 ‍ 🍳 👨 🏾 ‍ 🔧 👩 🏾 ‍ 🔧 👨 🏾 ‍ 🏭 👩 🏾 ‍ 🏭 👨 🏾 ‍ 💼 👩 🏾 ‍ 💼 👨 🏾 ‍ 🔬 👩 🏾 ‍ 🔬 👨 🏾 ‍ 💻 👩 🏾 ‍ 💻 👨 🏾 ‍ 🎤 👩 🏾 ‍ 🎤 👨 🏾 ‍ 🎨 👩 🏾 ‍ 🎨 👨 🏾 ‍ ✈ ️ 👩 🏾 ‍ ✈ ️ 👨 🏾 ‍ 🚀 👩 🏾 ‍ 🚀 👨 🏾 ‍ 🚒 👩 🏾 ‍ 🚒 👮 🏾 👮 🏾 ‍ ♂ ️ 👮 🏾 ‍ ♀ ️ 🕵 🏾 🕵 🏾 ‍ ♂ ️ 🕵 🏾 ‍ ♀ ️ 💂 🏾 💂 🏾 ‍ ♂ ️ 💂 🏾 ‍ ♀ ️ 👷 🏾 👷 🏾 ‍ ♂ ️ 👷 🏾 ‍ ♀ ️ 🤴 🏾 👸 🏾 👳 🏾 👳 🏾 ‍ ♂ ️ 👳 🏾 ‍ ♀ ️ 👲 🏾 🧕 🏾 🤵 🏾 👰 🏾 🤰 🏾 🤱 🏾
👨 🏿 ‍ ⚕ ️ 👩 🏿 ‍ ⚕ ️ 👨 🏿 ‍ 🎓 👩 🏿 ‍ 🎓 👨 🏿 ‍ 🏫 👩 🏿 ‍ 🏫 👨 🏿 ‍ ⚖ ️ 👩 🏿 ‍ ⚖ ️ 👨 🏿 ‍ 🌾 👩 🏿 ‍ 🌾 👨 🏿 ‍ 🍳 👩 🏿 ‍ 🍳 👨 🏿 ‍ 🔧 👩 🏿 ‍ 🔧 👨 🏿 ‍ 🏭 👩 🏿 ‍ 🏭 👨 🏿 ‍ 💼 👩 🏿 ‍ 💼 👨 🏿 ‍ 🔬 👩 🏿 ‍ 🔬 👨 🏿 ‍ 💻 👩 🏿 ‍ 💻 👨 🏿 ‍ 🎤 👩 🏿 ‍ 🎤 👨 🏿 ‍ 🎨 👩 🏿 ‍ 🎨 👨 🏿 ‍ ✈ ️ 👩 🏿 ‍ ✈ ️ 👨 🏿 ‍ 🚀 👩 🏿 ‍ 🚀 👨 🏿 ‍ 🚒 👩 🏿 ‍ 🚒 👮 🏿 👮 🏿 ‍ ♂ ️ 👮 🏿 ‍ ♀ ️ 🕵 🏿 🕵 🏿 ‍ ♂ ️ 🕵 🏿 ‍ ♀ ️ 💂 🏿 💂 🏿 ‍ ♂ ️ 💂 🏿 ‍ ♀ ️ 👷 🏿 👷 🏿 ‍ ♂ ️ 👷 🏿 ‍ ♀ ️ 🤴 🏿 👸 🏿 👳 🏿 👳 🏿 ‍ ♂ ️ 👳 🏿 ‍ ♀ ️ 👲 🏿 🧕 🏿 🤵 🏿 👰 🏿 🤰 🏿 🤱 🏿
👼 🎅 🤶 🦸 🦸 ‍ ♂ ️ 🦸 ‍ ♀ ️ 🦹 🦹 ‍ ♂ ️ 🦹 ‍ ♀ ️ 🧙 🧙 ‍ ♂ ️ 🧙 ‍ ♀ ️ 🧚 🧚 ‍ ♂ ️ 🧚 ‍ ♀ ️ 🧛 🧛 ‍ ♂ ️ 🧛 ‍ ♀ ️ 🧜 🧜 ‍ ♂ ️ 🧜 ‍ ♀ ️ 🧝 🧝 ‍ ♀ ️ 🧝 ‍ ♂ ️ 🧞 🧞 ‍ ♂ ️ 🧞 ‍ ♀ ️ 🧟 🧟 ‍ ♂ ️ 🧟 ‍ ♀ ️
👼 🏻 🎅 🏻 🤶 🏻 🦸 🏻 🦸 🏻 ‍ ♂ ️ 🦸 🏻 ‍ ♀ ️ 🦹 🏻 🦹 🏻 ‍ ♂ ️ 🦹 🏻 ‍ ♀ ️ 🧙 🏻 🧙 🏻 ‍ ♂ ️ 🧙 🏻 ‍ ♀ ️ 🧚 🏻 🧚 🏻 ‍ ♂ ️ 🧚 🏻 ‍ ♀ ️ 🧛 🏻 🧛 🏻 ‍ ♂ ️ 🧛 🏻 ‍ ♀ ️ 🧜 🏻 🧜 🏻 ‍ ♂ ️ 🧜 🏻 ‍ ♀ ️ 🧝 🏻 🧝 🏻 ‍ ♀ ️ 🧝 🏻 ‍ ♂ ️ 🧞 🧞 ‍ ♂ ️ 🧞 ‍ ♀ ️ 🧟 🧟 ‍ ♂ ️ 🧟 ‍ ♀ ️
👼 🏼 🎅 🏼 🤶 🏼 🦸 🏼 🦸 🏼 ‍ ♂ ️ 🦸 🏼 ‍ ♀ ️ 🦹 🏼 🦹 🏼 ‍ ♂ ️ 🦹 🏼 ‍ ♀ ️ 🧙 🏼 🧙 🏼 ‍ ♂ ️ 🧙 🏼 ‍ ♀ ️ 🧚 🏼 🧚 🏼 ‍ ♂ ️ 🧚 🏼 ‍ ♀ ️ 🧛 🏼 🧛 🏼 ‍ ♂ ️ 🧛 🏼 ‍ ♀ ️ 🧜 🏼 🧜 🏼 ‍ ♂ ️ 🧜 🏼 ‍ ♀ ️ 🧝 🏼 🧝 🏼 ‍ ♀ ️ 🧝 🏼 ‍ ♂ ️ 🧞 🧞 ‍ ♂ ️ 🧞 ‍ ♀ ️ 🧟 🧟 ‍ ♂ ️ 🧟 ‍ ♀ ️
👼 🏽 🎅 🏽 🤶 🏽 🦸 🏽 🦸 🏽 ‍ ♂ ️ 🦸 🏽 ‍ ♀ ️ 🦹 🏽 🦹 🏽 ‍ ♂ ️ 🦹 🏽 ‍ ♀ ️ 🧙 🏽 🧙 🏽 ‍ ♂ ️ 🧙 🏽 ‍ ♀ ️ 🧚 🏽 🧚 🏽 ‍ ♂ ️ 🧚 🏽 ‍ ♀ ️ 🧛 🏽 🧛 🏽 ‍ ♂ ️ 🧛 🏽 ‍ ♀ ️ 🧜 🏽 🧜 🏽 ‍ ♂ ️ 🧜 🏽 ‍ ♀ ️ 🧝 🏽 🧝 🏽 ‍ ♀ ️ 🧝 🏽 ‍ ♂ ️ 🧞 🧞 ‍ ♂ ️ 🧞 ‍ ♀ ️ 🧟 🧟 ‍ ♂ ️ 🧟 ‍ ♀ ️
👼 🏾 🎅 🏾 🤶 🏾 🦸 🏾 🦸 🏾 ‍ ♂ ️ 🦸 🏾 ‍ ♀ ️ 🦹 🏾 🦹 🏾 ‍ ♂ ️ 🦹 🏾 ‍ ♀ ️ 🧙 🏾 🧙 🏾 ‍ ♂ ️ 🧙 🏾 ‍ ♀ ️ 🧚 🏾 🧚 🏾 ‍ ♂ ️ 🧚 🏾 ‍ ♀ ️ 🧛 🏾 🧛 🏾 ‍ ♂ ️ 🧛 🏾 ‍ ♀ ️ 🧜 🏾 🧜 🏾 ‍ ♂ ️ 🧜 🏾 ‍ ♀ ️ 🧝 🏾 🧝 🏾 ‍ ♀ ️ 🧝 🏾 ‍ ♂ ️ 🧞 🧞 ‍ ♂ ️ 🧞 ‍ ♀ ️ 🧟 🧟 ‍ ♂ ️ 🧟 ‍ ♀ ️
👼 🏿 🎅 🏿 🤶 🏿 🦸 🏿 🦸 🏿 ‍ ♂ ️ 🦸 🏿 ‍ ♀ ️ 🦹 🏿 🦹 🏿 ‍ ♂ ️ 🦹 🏿 ‍ ♀ ️ 🧙 🏿 🧙 🏿 ‍ ♂ ️ 🧙 🏿 ‍ ♀ ️ 🧚 🏿 🧚 🏿 ‍ ♂ ️ 🧚 🏿 ‍ ♀ ️ 🧛 🏿 🧛 🏿 ‍ ♂ ️ 🧛 🏿 ‍ ♀ ️ 🧜 🏿 🧜 🏿 ‍ ♂ ️ 🧜 🏿 ‍ ♀ ️ 🧝 🏿 🧝 🏿 ‍ ♀ ️ 🧝 🏿 ‍ ♂ ️ 🧞 🧞 ‍ ♂ ️ 🧞 ‍ ♀ ️ 🧟 🧟 ‍ ♂ ️ 🧟 ‍ ♀ ️
💆 💆 ‍ ♂ ️ 💆 ‍ ♀ ️ 💇 💇 ‍ ♂ ️ 💇 ‍ ♀ ️ 🚶 🚶 ‍ ♂ ️ 🚶 ‍ ♀ ️ 🧍 🧍 ‍ ♂ ️ 🧍 ‍ ♀ ️ 🧎 🧎 ‍ ♂ ️ 🧎 ‍ ♀ ️ 👨 ‍ 🦯 👩 ‍ 🦯 👨 ‍ 🦼 👩 ‍ 🦼 👨 ‍ 🦽 👩 ‍ 🦽 🏃 🏃 ‍ ♂ ️ 🏃 ‍ ♀ ️ 💃 🕺 🕴 👯 👯 ‍ ♂ ️ 👯 ‍ ♀ ️ 🧖 🧖 ‍ ♂ ️ 🧖 ‍ ♀ ️ 🧗 🧗 ‍ ♂ ️ 🧗 ‍ ♀ ️
💆 🏻 💆 🏻 ‍ ♂ ️ 💆 🏻 ‍ ♀ ️ 💇 🏻 💇 🏻 ‍ ♂ ️ 💇 🏻 ‍ ♀ ️ 🚶 🏻 🚶 🏻 ‍ ♂ ️ 🚶 🏻 ‍ ♀ ️ 🧍 🏻 🧍 🏻 ‍ ♂ ️ 🧍 🏻 ‍ ♀ ️ 🧎 🏻 🧎 🏻 ‍ ♂ ️ 🧎 🏻 ‍ ♀ ️ 👨 🏻 ‍ 🦯 👩 🏻 ‍ 🦯 👨 🏻 ‍ 🦼 👩 🏻 ‍ 🦼 👨 🏻 ‍ 🦽 👩 🏻 ‍ 🦽 🏃 🏻 🏃 🏻 ‍ ♂ ️ 🏃 🏻 ‍ ♀ ️ 💃 🏻 🕺 🏻 🕴 🏻 🧖 🏻 🧖 🏻 ‍ ♂ ️ 🧖 🏻 ‍ ♀ ️ 🧗 🏻 🧗 🏻 ‍ ♂ ️ 🧗 🏻 ‍ ♀ ️
💆 🏼 💆 🏼 ‍ ♂ ️ 💆 🏼 ‍ ♀ ️ 💇 🏼 💇 🏼 ‍ ♂ ️ 💇 🏼 ‍ ♀ ️ 🚶 🏼 🚶 🏼 ‍ ♂ ️ 🚶 🏼 ‍ ♀ ️ 🧍 🏼 🧍 🏼 ‍ ♂ ️ 🧍 🏼 ‍ ♀ ️ 🧎 🏼 🧎 🏼 ‍ ♂ ️ 🧎 🏼 ‍ ♀ ️ 👨 🏼 ‍ 🦯 👩 🏼 ‍ 🦯 👨 🏼 ‍ 🦼 👩 🏼 ‍ 🦼 👨 🏼 ‍ 🦽 👩 🏼 ‍ 🦽 🏃 🏼 🏃 🏼 ‍ ♂ ️ 🏃 🏼 ‍ ♀ ️ 💃 🏼 🕺 🏼 🕴 🏼 🧖 🏼 🧖 🏼 ‍ ♂ ️ 🧖 🏼 ‍ ♀ ️ 🧗 🏼 🧗 🏼 ‍ ♂ ️ 🧗 🏼 ‍ ♀ ️
💆 🏽 💆 🏽 ‍ ♂ ️ 💆 🏽 ‍ ♀ ️ 💇 🏽 💇 🏽 ‍ ♂ ️ 💇 🏽 ‍ ♀ ️ 🚶 🏽 🚶 🏽 ‍ ♂ ️ 🚶 🏽 ‍ ♀ ️ 🧍 🏽 🧍 🏽 ‍ ♂ ️ 🧍 🏽 ‍ ♀ ️ 🧎 🏽 🧎 🏽 ‍ ♂ ️ 🧎 🏽 ‍ ♀ ️ 👨 🏽 ‍ 🦯 👩 🏽 ‍ 🦯 👨 🏽 ‍ 🦼 👩 🏽 ‍ 🦼 👨 🏽 ‍ 🦽 👩 🏽 ‍ 🦽 🏃 🏽 🏃 🏽 ‍ ♂ ️ 🏃 🏽 ‍ ♀ ️ 💃 🏽 🕺 🏽 🕴 🏽 🧖 🏽 🧖 🏾 🧖 🏽 ‍ ♂ ️ 🧖 🏽 ‍ ♀ ️ 🧗 🏽 🧗 🏽 ‍ ♂ ️ 🧗 🏽 ‍ ♀ ️
💆 🏾 💆 🏾 ‍ ♂ ️ 💆 🏾 ‍ ♀ ️ 💇 🏾 💇 🏾 ‍ ♂ ️ 💇 🏾 ‍ ♀ ️ 🚶 🏾 🚶 🏾 ‍ ♂ ️ 🚶 🏾 ‍ ♀ ️ 🧍 🏾 🧍 🏾 ‍ ♂ ️ 🧍 🏾 ‍ ♀ ️ 🧎 🏾 🧎 🏾 ‍ ♂ ️ 🧎 🏾 ‍ ♀ ️ 👨 🏾 ‍ 🦯 👩 🏾 ‍ 🦯 👨 🏾 ‍ 🦼 👩 🏾 ‍ 🦼 👨 🏾 ‍ 🦽 👩 🏾 ‍ 🦽 🏃 🏾 🏃 🏾 ‍ ♂ ️ 🏃 🏾 ‍ ♀ ️ 💃 🏾 🕺 🏾 🕴 🏾 🧖 🏿 🧖 🏾 ‍ ♂ ️ 🧖 🏾 ‍ ♀ ️ 🧗 🏾 🧗 🏾 ‍ ♂ ️ 🧗 🏾 ‍ ♀ ️
💆 🏿 💆 🏿 ‍ ♂ ️ 💆 🏿 ‍ ♀ ️ 💇 🏿 💇 🏿 ‍ ♂ ️ 💇 🏿 ‍ ♀ ️ 🚶 🏿 🚶 🏿 ‍ ♂ ️ 🚶 🏿 ‍ ♀ ️ 🧍 🏿 🧍 🏿 ‍ ♂ ️ 🧍 🏿 ‍ ♀ ️ 🧎 🏿 🧎 🏿 ‍ ♂ ️ 🧎 🏿 ‍ ♀ ️ 👨 🏿 ‍ 🦯 👩 🏿 ‍ 🦯 👨 🏿 ‍ 🦼 👩 🏿 ‍ 🦼 👨 🏿 ‍ 🦽 👩 🏿 ‍ 🦽 🏃 🏿 🏃 🏿 ‍ ♂ ️ 🏃 🏿 ‍ ♀ ️ 💃 🏿 🕺 🏿 🕴 🏿 🧖 🏿 ‍ ♂ ️ 🧖 🏿 ‍ ♀ ️ 🧗 🏿 🧗 🏿 ‍ ♂ ️ 🧗 🏿 ‍ ♀ ️
🤺 🏇 ⛷ 🏂 🏌 🏌 ️ ‍ ♂ ️ 🏌 ️ ‍ ♀ ️ 🏄 🏄 ‍ ♂ ️ 🏄 ‍ ♀ ️ 🚣 🚣 ‍ ♂ ️ 🚣 ‍ ♀ ️ 🏊 🏊 ‍ ♂ ️ 🏊 ‍ ♀ ️ ⛹ ⛹ ️ ‍ ♂ ️ ⛹ ️ ‍ ♀ ️ 🏋 🏋 ️ ‍ ♂ ️ 🏋 ️ ‍ ♀ ️ 🚴 🚴 ‍ ♂ ️ 🚴 ‍ ♀ ️ 🚵 🚵 ‍ ♂ ️ 🚵 ‍ ♀ ️ 🤸 🤸 ‍ ♂ ️ 🤸 ‍ ♀ ️ 🤼 🤼 ‍ ♂ ️ 🤼 ‍ ♀ ️ 🤽 🤽 ‍ ♂ ️ 🤽 ‍ ♀ ️ 🤾 🤾 ‍ ♂ ️ 🤾 ‍ ♀ ️ 🤹 🤹 ‍ ♂ ️ 🤹 ‍ ♀ ️ 🧘 🧘 ‍ ♀ ️ 🧘 ‍ ♂ ️ 🛀 🛌
🤺 🏇 🏻 🏂 🏻 🏌 🏻 🏌 🏻 ‍ ♂ ️ 🏌 🏻 ‍ ♀ ️ 🏄 🏻 🏄 🏻 ‍ ♂ ️ 🏄 🏻 ‍ ♀ ️ 🚣 🏻 🚣 🏻 ‍ ♂ ️ 🚣 🏻 ‍ ♀ ️ 🏊 🏻 🏊 🏻 ‍ ♂ ️ 🏊 🏻 ‍ ♀ ️ ⛹ 🏻 ⛹ 🏻 ‍ ♂ ️ ⛹ 🏻 ‍ ♀ ️ 🏋 🏻 🏋 🏻 ‍ ♂ ️ 🏋 🏻 ‍ ♀ ️ 🚴 🏻 🚴 🏻 ‍ ♂ ️ 🚴 🏻 ‍ ♀ ️ 🚵 🏻 🚵 🏻 ‍ ♂ ️ 🚵 🏻 ‍ ♀ ️ 🤸 🏻 🤸 🏻 ‍ ♂ ️ 🤸 🏻 ‍ ♀ ️ 🤽 🏻 🤽 🏻 ‍ ♂ ️ 🤽 🏻 ‍ ♀ ️ 🤾 🏻 🤾 🏻 ‍ ♂ ️ 🤾 🏻 ‍ ♀ ️ 🤹 🏻 🤹 🏻 ‍ ♂ ️ 🤹 🏻 ‍ ♀ ️ 🧘 🏻 🧘 🏻 ‍ ♀ ️ 🧘 🏻 ‍ ♂ ️ 🛀 🏻 🛌 🏻
🤺 🏇 🏼 🏂 🏼 🏌 🏼 🏌 🏼 ‍ ♂ ️ 🏌 🏼 ‍ ♀ ️ 🏄 🏼 🏄 🏼 ‍ ♂ ️ 🏄 🏼 ‍ ♀ ️ 🚣 🏼 🚣 🏼 ‍ ♂ ️ 🚣 🏼 ‍ ♀ ️ 🏊 🏼 🏊 🏼 ‍ ♂ ️ 🏊 🏼 ‍ ♀ ️ ⛹ 🏼 ⛹ 🏼 ‍ ♂ ️ ⛹ 🏼 ‍ ♀ ️ 🏋 🏼 🏋 🏼 ‍ ♂ ️ 🏋 🏼 ‍ ♀ ️ 🚴 🏼 🚴 🏼 ‍ ♂ ️ 🚴 🏼 ‍ ♀ ️ 🚵 🏼 🚵 🏼 ‍ ♂ ️ 🚵 🏼 ‍ ♀ ️ 🤸 🏼 🤸 🏼 ‍ ♂ ️ 🤸 🏼 ‍ ♀ ️ 🤽 🏼 🤽 🏼 ‍ ♂ ️ 🤽 🏼 ‍ ♀ ️ 🤾 🏼 🤾 🏼 ‍ ♂ ️ 🤾 🏼 ‍ ♀ ️ 🤹 🏼 🤹 🏼 ‍ ♂ ️ 🤹 🏼 ‍ ♀ ️ 🧘 🏼 🧘 🏼 ‍ ♀ ️ 🧘 🏼 ‍ ♂ ️ 🛀 🏼 🛌 🏼
🤺 🏇 🏽 🏂 🏽 🏌 🏽 🏌 🏽 ‍ ♂ ️ 🏌 🏽 ‍ ♀ ️ 🏄 🏽 🏄 🏽 ‍ ♂ ️ 🏄 🏽 ‍ ♀ ️ 🚣 🏽 🚣 🏽 ‍ ♂ ️ 🚣 🏽 ‍ ♀ ️ 🏊 🏽 🏊 🏽 ‍ ♂ ️ 🏊 🏽 ‍ ♀ ️ ⛹ 🏽 ⛹ 🏽 ‍ ♂ ️ ⛹ 🏽 ‍ ♀ ️ 🏋 🏽 🏋 🏽 ‍ ♂ ️ 🏋 🏽 ‍ ♀ ️ 🚴 🏽 🚴 🏽 ‍ ♂ ️ 🚴 🏽 ‍ ♀ ️ 🚵 🏽 🚵 🏽 ‍ ♂ ️ 🚵 🏽 ‍ ♀ ️ 🤸 🏽 🤸 🏽 ‍ ♂ ️ 🤸 🏽 ‍ ♀ ️ 🤽 🏽 🤽 🏽 ‍ ♂ ️ 🤽 🏽 ‍ ♀ ️ 🤾 🏽 🤾 🏽 ‍ ♂ ️ 🤾 🏽 ‍ ♀ ️ 🤹 🏽 🤹 🏽 ‍ ♂ ️ 🤹 🏽 ‍ ♀ ️ 🧘 🏽 🧘 🏽 ‍ ♀ ️ 🧘 🏽 ‍ ♂ ️ 🛀 🏽 🛌 🏽
🤺 🏇 🏾 🏂 🏾 🏌 🏾 🏌 🏾 ‍ ♂ ️ 🏌 🏾 ‍ ♀ ️ 🏄 🏾 🏄 🏾 ‍ ♂ ️ 🏄 🏾 ‍ ♀ ️ 🚣 🏾 🚣 🏾 ‍ ♂ ️ 🚣 🏾 ‍ ♀ ️ 🏊 🏾 🏊 🏾 ‍ ♂ ️ 🏊 🏾 ‍ ♀ ️ ⛹ 🏾 ⛹ 🏾 ‍ ♂ ️ ⛹ 🏾 ‍ ♀ ️ 🏋 🏾 🏋 🏾 ‍ ♂ ️ 🏋 🏾 ‍ ♀ ️ 🚴 🏾 🚴 🏾 ‍ ♂ ️ 🚴 🏾 ‍ ♀ ️ 🚵 🏾 🚵 🏾 ‍ ♂ ️ 🚵 🏾 ‍ ♀ ️ 🤸 🏾 🤸 🏾 ‍ ♂ ️ 🤸 🏾 ‍ ♀ ️ 🤽 🏾 🤽 🏾 ‍ ♂ ️ 🤽 🏾 ‍ ♀ ️ 🤾 🏾 🤾 🏾 ‍ ♂ ️ 🤾 🏾 ‍ ♀ ️ 🤹 🏾 🤹 🏾 ‍ ♂ ️ 🤹 🏾 ‍ ♀ ️ 🧘 🏾 🧘 🏾 ‍ ♀ ️ 🧘 🏾 ‍ ♂ ️ 🛀 🏾 🛌 🏾
🤺 🏇 🏿 🏂 🏿 🏌 🏿 🏌 🏿 ‍ ♂ ️ 🏌 🏿 ‍ ♀ ️ 🏄 🏿 🏄 🏿 ‍ ♂ ️ 🏄 🏿 ‍ ♀ ️ 🚣 🏿 🚣 🏿 ‍ ♂ ️ 🚣 🏿 ‍ ♀ ️ 🏊 🏿 🏊 🏿 ‍ ♂ ️ 🏊 🏿 ‍ ♀ ️ ⛹ 🏿 ⛹ 🏿 ‍ ♂ ️ ⛹ 🏿 ‍ ♀ ️ 🏋 🏿 🏋 🏿 ‍ ♂ ️ 🏋 🏿 ‍ ♀ ️ 🚴 🏿 🚴 🏿 ‍ ♂ ️ 🚴 🏿 ‍ ♀ ️ 🚵 🏿 🚵 🏿 ‍ ♂ ️ 🚵 🏿 ‍ ♀ ️ 🤸 🏿 🤸 🏿 ‍ ♂ ️ 🤸 🏿 ‍ ♀ ️ 🤽 🏿 🤽 🏿 ‍ ♂ ️ 🤽 🏿 ‍ ♀ ️ 🤾 🏿 🤾 🏿 ‍ ♂ ️ 🤾 🏿 ‍ ♀ ️ 🤹 🏿 🤹 🏿 ‍ ♂ ️ 🤹 🏿 ‍ ♀ ️ 🧘 🏿 🧘 🏿 ‍ ♀ ️ 🧘 🏿 ‍ ♂ ️ 🛀 🏿 🛌 🏿
🧑 ‍ 🤝 ‍ 🧑 👭 👫 👬 💏 👩 ‍ ❤ ️ ‍ 💋 ‍ 👨 👨 ‍ ❤ ️ ‍ 💋 ‍ 👨 👩 ‍ ❤ ️ ‍ 💋 ‍ 👩 💑 👩 ‍ ❤ ️ ‍ 👨 👨 ‍ ❤ ️ ‍ 👨 👩 ‍ ❤ ️ ‍ 👩 👪 👨 ‍ 👩 ‍ 👦 👨 ‍ 👩 ‍ 👧 👨 ‍ 👩 ‍ 👧 ‍ 👦 👨 ‍ 👩 ‍ 👦 ‍ 👦 👨 ‍ 👩 ‍ 👧 ‍ 👧 👨 ‍ 👨 ‍ 👦 👨 ‍ 👨 ‍ 👧 👨 ‍ 👨 ‍ 👧 ‍ 👦 👨 ‍ 👨 ‍ 👦 ‍ 👦 👨 ‍ 👨 ‍ 👧 ‍ 👧 👩 ‍ 👩 ‍ 👦 👩 ‍ 👩 ‍ 👧 👩 ‍ 👩 ‍ 👧 ‍ 👦 👩 ‍ 👩 ‍ 👦 ‍ 👦 👩 ‍ 👩 ‍ 👧 ‍ 👧 👨 ‍ 👦 👨 ‍ 👦 ‍ 👦 👨 ‍ 👧 👨 ‍ 👧 ‍ 👦 👨 ‍ 👧 ‍ 👧 👩 ‍ 👦 👩 ‍ 👦 ‍ 👦 👩 ‍ 👧 👩 ‍ 👧 ‍ 👦 👩 ‍ 👧 ‍ 👧
🧑 🏻 ‍ 🤝 ‍ 🧑 🏻 🧑 🏼 ‍ 🤝 ‍ 🧑 🏻 🧑 🏽 ‍ 🤝 ‍ 🧑 🏻 🧑 🏾 ‍ 🤝 ‍ 🧑 🏻 🧑 🏿 ‍ 🤝 ‍ 🧑 🏻 👭 🏻 👩 🏼 ‍ 🤝 ‍ 👩 🏻 👩 🏽 ‍ 🤝 ‍ 👩 🏻 👩 🏾 ‍ 🤝 ‍ 👩 🏻 👩 🏿 ‍ 🤝 ‍ 👩 🏻 👫 🏻 👩 🏻 ‍ 🤝 ‍ 👨 🏼 👩 🏻 ‍ 🤝 ‍ 👨 🏽 👩 🏻 ‍ 🤝 ‍ 👨 🏾 👩 🏻 ‍ 🤝 ‍ 👨 🏿 👩 🏼 ‍ 🤝 ‍ 👨 🏻 👩 🏽 ‍ 🤝 ‍ 👨 🏻 👩 🏾 ‍ 🤝 ‍ 👨 🏻 👩 🏿 ‍ 🤝 ‍ 👨 🏻 👬 🏻 👨 🏼 ‍ 🤝 ‍ 👨 🏻 👨 🏽 ‍ 🤝 ‍ 👨 🏻 👨 🏾 ‍ 🤝 ‍ 👨 🏻 👨 🏿 ‍ 🤝 ‍ 👨 🏻
🧑 🏼 ‍ 🤝 ‍ 🧑 🏻 🧑 🏼 ‍ 🤝 ‍ 🧑 🏼 🧑 🏽 ‍ 🤝 ‍ 🧑 🏼 🧑 🏾 ‍ 🤝 ‍ 🧑 🏼 🧑 🏿 ‍ 🤝 ‍ 🧑 🏼 👩 🏼 ‍ 🤝 ‍ 👩 🏻 👭 🏼 👩 🏽 ‍ 🤝 ‍ 👩 🏼 👩 🏾 ‍ 🤝 ‍ 👩 🏼 👩 🏿 ‍ 🤝 ‍ 👩 🏼 👩 🏻 ‍ 🤝 ‍ 👨 🏼 👩 🏼 ‍ 🤝 ‍ 👨 🏻 👫 🏼 👩 🏼 ‍ 🤝 ‍ 👨 🏽 👩 🏼 ‍ 🤝 ‍ 👨 🏾 👩 🏼 ‍ 🤝 ‍ 👨 🏿 👩 🏽 ‍ 🤝 ‍ 👨 🏼 👩 🏾 ‍ 🤝 ‍ 👨 🏼 👩 🏿 ‍ 🤝 ‍ 👨 🏼 👨 🏼 ‍ 🤝 ‍ 👨 🏻 👬 🏼 👨 🏽 ‍ 🤝 ‍ 👨 🏼 👨 🏾 ‍ 🤝 ‍ 👨 🏼 👨 🏿 ‍ 🤝 ‍ 👨 🏼
🧑 🏽 ‍ 🤝 ‍ 🧑 🏻 🧑 🏽 ‍ 🤝 ‍ 🧑 🏼 🧑 🏽 ‍ 🤝 ‍ 🧑 🏽 🧑 🏾 ‍ 🤝 ‍ 🧑 🏽 🧑 🏿 ‍ 🤝 ‍ 🧑 🏽 👩 🏽 ‍ 🤝 ‍ 👩 🏻 👩 🏽 ‍ 🤝 ‍ 👩 🏼 👭 🏽 👩 🏾 ‍ 🤝 ‍ 👩 🏽 👩 🏿 ‍ 🤝 ‍ 👩 🏽 👩 🏻 ‍ 🤝 ‍ 👨 🏽 👩 🏼 ‍ 🤝 ‍ 👨 🏽 👩 🏽 ‍ 🤝 ‍ 👨 🏻 👩 🏽 ‍ 🤝 ‍ 👨 🏼 👫 🏽 👩 🏽 ‍ 🤝 ‍ 👨 🏾 👩 🏽 ‍ 🤝 ‍ 👨 🏿 👩 🏾 ‍ 🤝 ‍ 👨 🏽 👩 🏿 ‍ 🤝 ‍ 👨 🏽 👨 🏽 ‍ 🤝 ‍ 👨 🏻 👨 🏽 ‍ 🤝 ‍ 👨 🏼 👬 🏽 👨 🏾 ‍ 🤝 ‍ 👨 🏽 👨 🏿 ‍ 🤝 ‍ 👨 🏽
🧑 🏾 ‍ 🤝 ‍ 🧑 🏻 🧑 🏾 ‍ 🤝 ‍ 🧑 🏼 🧑 🏾 ‍ 🤝 ‍ 🧑 🏽 🧑 🏾 ‍ 🤝 ‍ 🧑 🏾 🧑 🏿 ‍ 🤝 ‍ 🧑 🏾 👩 🏾 ‍ 🤝 ‍ 👩 🏻 👩 🏾 ‍ 🤝 ‍ 👩 🏼 👩 🏾 ‍ 🤝 ‍ 👩 🏽 👭 🏾 👩 🏿 ‍ 🤝 ‍ 👩 🏾 👩 🏻 ‍ 🤝 ‍ 👨 🏾 👩 🏼 ‍ 🤝 ‍ 👨 🏾 👩 🏽 ‍ 🤝 ‍ 👨 🏾 👩 🏾 ‍ 🤝 ‍ 👨 🏻 👩 🏾 ‍ 🤝 ‍ 👨 🏼 👩 🏾 ‍ 🤝 ‍ 👨 🏽 👫 🏾 👩 🏾 ‍ 🤝 ‍ 👨 🏿 👩 🏿 ‍ 🤝 ‍ 👨 🏾 👨 🏾 ‍ 🤝 ‍ 👨 🏻 👨 🏾 ‍ 🤝 ‍ 👨 🏼 👨 🏾 ‍ 🤝 ‍ 👨 🏽 👬 🏾 👨 🏿 ‍ 🤝 ‍ 👨 🏾
🧑 🏿 ‍ 🤝 ‍ 🧑 🏻 🧑 🏿 ‍ 🤝 ‍ 🧑 🏼 🧑 🏿 ‍ 🤝 ‍ 🧑 🏽 🧑 🏿 ‍ 🤝 ‍ 🧑 🏾 🧑 🏿 ‍ 🤝 ‍ 🧑 🏿 👩 🏿 ‍ 🤝 ‍ 👩 🏻 👩 🏿 ‍ 🤝 ‍ 👩 🏼 👩 🏿 ‍ 🤝 ‍ 👩 🏽 👩 🏿 ‍ 🤝 ‍ 👩 🏾 👭 🏿 👩 🏻 ‍ 🤝 ‍ 👨 🏿 👩 🏼 ‍ 🤝 ‍ 👨 🏿 👩 🏽 ‍ 🤝 ‍ 👨 🏿 👩 🏾 ‍ 🤝 ‍ 👨 🏿 👩 🏿 ‍ 🤝 ‍ 👨 🏻 👩 🏿 ‍ 🤝 ‍ 👨 🏼 👩 🏿 ‍ 🤝 ‍ 👨 🏽 👩 🏿 ‍ 🤝 ‍ 👨 🏾 👫 🏿 👨 🏿 ‍ 🤝 ‍ 👨 🏻 👨 🏿 ‍ 🤝 ‍ 👨 🏼 👨 🏿 ‍ 🤝 ‍ 👨 🏽 👨 🏿 ‍ 🤝 ‍ 👨 🏾 👬 🏿
🗣 👤 👥 👣 🦰 🦱 🦳 🦲
🐵 🐒 🦍 🦧 🐶 🐕 🦮 🐕 ‍ 🦺 🐩 🐺 🦊 🦝 🐱 🐈 🦁 🐯 🐅 🐆 🐴 🐎 🦄 🦓 🦌 🐮 🐂 🐃 🐄 🐷 🐖 🐗 🐽 🐏 🐑 🐐 🐪 🐫 🦙 🦒 🐘 🦏 🦛 🐭 🐁 🐀 🐹 🐰 🐇 🐿 🦔 🦇 🐻 🐨 🐼 🦥 🦦 🦨 🦘 🦡 🐾 🦃 🐔 🐓 🐣 🐤 🐥 🐦 🐧 🕊 🦅 🦆 🦢 🦉 🦩 🦚 🦜 🐸 🐊 🐢 🦎 🐍 🐲 🐉 🦕 🦖 🐳 🐋 🐬 🐟 🐠 🐡 🦈 🐙 🐚 🐌 🦋 🐛 🐜 🐝 🐞 🦗 🕷 🕸 🦂 🦟 🦠 💐 🌸 💮 🏵 🌹 🥀 🌺 🌻 🌼 🌷 🌱 🌲 🌳 🌴 🌵 🌾 🌿 ☘ 🍀 🍁 🍂 🍃
🍇 🍈 🍉 🍊 🍋 🍌 🍍 🥭 🍎 🍏 🍐 🍑 🍒 🍓 🥝 🍅 🥥 🥑 🍆 🥔 🥕 🌽 🌶 🥒 🥦 🧄 🧅 🥬 🍄 🥜 🌰 🍞 🥐 🥖 🥨 🥯 🥞 🧇 🧀 🍖 🍗 🥩 🥓 🍔 🍟 🍕 🌭 🥪 🌮 🌯 🥙 🧆 🥚 🍳 🥘 🍲 🥣 🥗 🍿 🧈 🧂 🥫 🍱 🍘 🍙 🍚 🍛 🍜 🍝 🍠 🍢 🍣 🍤 🍥 🥮 🍡 🥟 🥠 🥡 🦀 🦞 🦐 🦑 🦪 🍦 🍧 🍨 🍩 🍪 🎂 🍰 🧁 🥧 🍫 🍬 🍭 🍮 🍯 🍼 🥛 ☕ 🍵 🍶 🍾 🍷 🍸 🍹 🍺 🍻 🥂 🥃 🥤 🧃 🧉 🧊 🥢 🍽 🍴 🥄 🔪 🏺
🌍 🌎 🌏 🌐 🗺 🗾 🧭 🏔 ⛰ 🌋 🗻 🏕 🏖 🏜 🏝 🏞 🏟 🏛 🏗 🧱 🏘 🏚 🏠 🏡 🏢 🏣 🏤 🏥 🏦 🏨 🏩 🏪 🏫 🏬  🏭 🏯 🏰 💒 🗼 🗽 ⛪ 🕌 🛕 🕍 ⛩ 🕋 ⛲ ⛺ 🌁 🌃 🏙 🌄 🌅 🌆 🌇 🌉 ♨ 🎠 🎡 🎢 💈 🎪 🚂 🚃 🚄 🚅 🚆 🚇 🚈 🚉 🚊 🚝 🚞 🚋 🚌 🚍 🚎 🚐 🚑 🚒 🚓 🚔 🚕 🚖 🚗 🚘 🚙 🚚 🚛 🚜 🏎 🏍 🛵 🦽 🦼 🛺 🚲 🛴 🛹 🚏 🛣 🛤 🛢 ⛽ 🚨 🚥 🚦 🚧 🛑 ⚓ ⛵ 🛶 🚤 🛳 ⛴ 🛥 🚢 ✈ 🛩 🛫 🛬 🪂 💺 🚁 🚟 🚠 🚡 🛰 🚀 🛸 🛎 🧳 ⌛ ⏳ ⌚ ⏰ ⏱ ⏲ 🕰 🕛 🕧 🕐 🕜 🕑 🕝 🕒 🕞 🕓 🕟 🕔 🕠 🕕 🕡 🕖 🕢 🕗 🕣 🕘 🕤 🕙 🕥 🕚 🕦 🌑 🌒 🌓 🌔 🌕 🌖 🌗 🌘 🌙 🌚 🌛 🌜 🌡 ☀ 🌝 🌞 🪐 ⭐ 🌟 🌠 🌌 ☁ ⛅ ⛈ 🌤 🌥 🌦 🌧 🌨 🌩 🌪 🌫 🌬 🌀 🌈 🌂 ☂ ☔ ⛱ ⚡ ❄ ☃ ⛄ ☄ 🔥 💧 🌊
🎃 🎄 🎆 🎇 🧨 ✨ 🎈 🎉 🎊 🎋 🎍 🎎 🎏 🎐 🎑 🧧 🎀 🎁 🎗 🎟 🎫 🎖 🏆 🏅 🥇 🥈 🥉 ⚽ ⚾ 🥎 🏀 🏐 🏈 🏉 🎾 🥏 🎳 🏏 🏑 🏒 🥍 🏓 🏸 🥊 🥋 🥅 ⛳ ⛸ 🎣 🤿 🎽 🎿 🛷 🥌 🎯 🪀 🪁 🎱 🔮 🧿 🎮 🕹 🎰 🎲 🧩 🧸 ♠ ♥ ♦ ♣ ♟ 🃏 🀄 🎴 🎭 🖼 🎨 🧵 🧶
👓 🕶 🥽 🥼 🦺 👔 👕 👖 🧣 🧤 🧥 🧦 👗 👘 🥻 🩱 🩲 🩳 👙 👚 👛 👜 👝 🛍 🎒 👞 👟 🥾 🥿 👠 👡 🩰 👢 👑 👒 🎩 🎓 🧢 ⛑ 📿 💄 💍 💎 🔇 🔈 🔉 🔊 📢 📣 📯 🔔 🔕 🎼 🎵 🎶 🎙 🎚 🎛 🎤 🎧 📻 🎷 🎸 🎹 🎺 🎻 🪕 🥁 📱 📲 ☎ 📞 📟 📠 🔋 🔌 💻 🖥 🖨 ⌨ 🖱 🖲 💽 💾 💿 📀 🧮 🎥 🎞 📽 🎬 📺 📷 📸 📹 📼 🔍 🔎 🕯 💡 🔦 🏮 🪔 📔 📕 📖 📗 📘 📙 📚 📓 📒 📃 📜 📄 📰 🗞 📑 🔖 🏷 💰 💴 💵 💶 💷 💸 💳 🧾 💹 💱 💲 ✉ 📧 📨 📩 📤 📥 📦 📫 📪 📬 📭 📮 🗳 ✏ ✒ 🖋 🖊 🖌 🖍 📝 💼 📁 📂 🗂 📅 📆 🗒 🗓 📇 📈 📉 📊 📋 📌 📍 📎 🖇 📏 📐 ✂ 🗃 🗄 🗑 🔒 🔓 🔏 🔐 🔑 🗝 🔨 🪓 ⛏ ⚒ 🛠 🗡 ⚔ 🔫 🏹 🛡 🔧 🔩 ⚙ 🗜 ⚖ 🦯 🔗 ⛓ 🧰 🧲 ⚗ 🧪 🧫 🧬 🔬 🔭 📡 💉 🩸 💊 🩹 🩺 🚪 🛏 🛋 🪑 🚽 🚿 🛁 🪒 🧴 🧷 🧹 🧺 🧻 🧼 🧽 🧯 🛒 🚬 ⚰ ⚱ 🗿
🏧 🚮 🚰 ♿ 🚹 🚺 🚻 🚼 🚾 🛂 🛃 🛄 🛅 ⚠ 🚸 ⛔ 🚫 🚳 🚭 🚯 🚱 🚷 📵 🔞 ☢ ☣ ⬆ ↗ ➡ ↘ ⬇ ↙ ⬅ ↖ ↕ ↔ ↩ ↪ ⤴ ⤵ 🔃 🔄 🔙 🔚 🔛 🔜 🔝 🛐 ⚛ 🕉 ✡ ☸ ☯ ✝ ☦ ☪ ☮ 🕎 🔯 ♈ ♉ ♊ ♋ ♌ ♍ ♎ ♏ ♐ ♑ ♒ ♓ ⛎ 🔀 🔁 🔂 ▶ ⏩ ⏭ ⏯ ◀ ⏪ ⏮ 🔼 ⏫ 🔽 ⏬ ⏸ ⏹ ⏺ ⏏ 🎦 🔅 🔆 📶 📳 📴 ♀ ♂ ⚕ ♾ ♻ ⚜ 🔱 📛 🔰 ⭕ ✅ ☑ ✔ ✖ ❌ ❎ ➕ ➖ ➗ ➰ ➿ 〽 ✳ ✴ ❇ ‼ ⁉ ❓ ❔ ❕ ❗ 〰 © ® ™ # ⃣ * ⃣ 0 ⃣ 1 ⃣ 2 ⃣ 3 ⃣ 4 ⃣ 5 ⃣ 6 ⃣ 7 ⃣ 8 ⃣ 9 ⃣ 🔟 🔠 🔡 🔢 🔣 🔤 🅰 🆎 🅱 🆑 🆒 🆓 ℹ 🆔 Ⓜ 🆕 🆖 🅾 🆗 🅿 🆘 🆙 🆚 🈁 🈂 🈷 🈶 🈯 🉐 🈹 🈚 🈲 🉑 🈸 🈴 🈳 ㊗ ㊙ 🈺 🈵 🔴 🟠 🟡 🟢 🔵 🟣 🟤 ⚫ ⚪ 🟥 🟧 🟨 🟩 🟦 🟪 🟫 ⬛ ⬜ ◼ ◻ ◾ ◽ ▪ ▫ 🔶 🔷 🔸 🔹 🔺 🔻 💠 🔘 🔳 🔲
🏁 🚩 🎌 🏴 🏳 🏳 ️ ‍ 🌈 🏴 ‍ ☠ ️ 🇦 🇨 🇦 🇩 🇦 🇪 🇦 🇫 🇦 🇬 🇦 🇮 🇦 🇱 🇦 🇲 🇦 🇴 🇦 🇶 🇦 🇷 🇦 🇸 🇦 🇹 🇦 🇺 🇦 🇼 🇦 🇽 🇦 🇿 🇧 🇦 🇧 🇧 🇧 🇩 🇧 🇪 🇧 🇫 🇧 🇬 🇧 🇭 🇧 🇮 🇧 🇯 🇧 🇱 🇧 🇲 🇧 🇳 🇧 🇴 🇧 🇶 🇧 🇷 🇧 🇸 🇧 🇹 🇧 🇻 🇧 🇼 🇧 🇾 🇧 🇿 🇨 🇦 🇨 🇨 🇨 🇩 🇨 🇫 🇨 🇬 🇨 🇭 🇨 🇮 🇨 🇰 🇨 🇱 🇨 🇲 🇨 🇳 🇨 🇴 🇨 🇵 🇨 🇷 🇨 🇺 🇨 🇻 🇨 🇼 🇨 🇽 🇨 🇾 🇨 🇿 🇩 🇪 🇩 🇬 🇩 🇯 🇩 🇰 🇩 🇲 🇩 🇴 🇩 🇿 🇪 🇦 🇪 🇨 🇪 🇪 🇪 🇬 🇪 🇭 🇪 🇷 🇪 🇸 🇪 🇹 🇪 🇺 🇫 🇮 🇫 🇯 🇫 🇰 🇫 🇲 🇫 🇴 🇫 🇷 🇬 🇦 🇬 🇧 🇬 🇩 🇬 🇪 🇬 🇫 🇬 🇬 🇬 🇭 🇬 🇮 🇬 🇱 🇬 🇲 🇬 🇳 🇬 🇵 🇬 🇶 🇬 🇷 🇬 🇸 🇬 🇹 🇬 🇺 🇬 🇼 🇬 🇾 🇭 🇰 🇭 🇲 🇭 🇳 🇭 🇷 🇭 🇹 🇭 🇺 🇮 🇨 🇮 🇩 🇮 🇪 🇮 🇱 🇮 🇲 🇮 🇳 🇮 🇴 🇮 🇶 🇮 🇷 🇮 🇸 🇮 🇹 🇯 🇪 🇯 🇲 🇯 🇴 🇯 🇵 🇰 🇪 🇰 🇬 🇰 🇭 🇰 🇮 🇰 🇲 🇰 🇳 🇰 🇵 🇰 🇷 🇰 🇼 🇰 🇾 🇰 🇿 🇱 🇦 🇱 🇧 🇱 🇨 🇱 🇮 🇱 🇰 🇱 🇷 🇱 🇸 🇱 🇹 🇱 🇺 🇱 🇻 🇱 🇾 🇲 🇦 🇲 🇨 🇲 🇩 🇲 🇪 🇲 🇫 🇲 🇬 🇲 🇭 🇲 🇰 🇲 🇱 🇲 🇲 🇲 🇳 🇲 🇴 🇲 🇵 🇲 🇶 🇲 🇷 🇲 🇸 🇲 🇹 🇲 🇺 🇲 🇻 🇲 🇼 🇲 🇽 🇲 🇾 🇲 🇿 🇳 🇦 🇳 🇨 🇳 🇪 🇳 🇫 🇳 🇬 🇳 🇮 🇳 🇱 🇳 🇴 🇳 🇵 🇳 🇷 🇳 🇺 🇳 🇿 🇴 🇲 🇵 🇦 🇵 🇪 🇵 🇫 🇵 🇬 🇵 🇭 🇵 🇰 🇵 🇱 🇵 🇲 🇵 🇳 🇵 🇷 🇵 🇸 🇵 🇹 🇵 🇼 🇵 🇾 🇶 🇦 🇷 🇪 🇷 🇴 🇷 🇸 🇷 🇺 🇷 🇼 🇸 🇦 🇸 🇧 🇸 🇨 🇸 🇩 🇸 🇪 🇸 🇬 🇸 🇭 🇸 🇮 🇸 🇯 🇸 🇰 🇸 🇱 🇸 🇲 🇸 🇳 🇸 🇴 🇸 🇷 🇸 🇸 🇸 🇹 🇸 🇻 🇸 🇽 🇸 🇾 🇸 🇿 🇹 🇦 🇹 🇨 🇹 🇩 🇹 🇫 🇹 🇬 🇹 🇭 🇹 🇯 🇹 🇰 🇹 🇱 🇹 🇲 🇹 🇳 🇹 🇴 🇹 🇷 🇹 🇹 🇹 🇻 🇹 🇼 🇹 🇿 🇺 🇦 🇺 🇬 🇺 🇲 🇺 🇳 🇺 🇸 🇺 🇾 🇺 🇿 🇻 🇦 🇻 🇨 🇻 🇪 🇻 🇬 🇻 🇮 🇻 🇳 🇻 🇺 🇼 🇫 🇼 🇸 🇽 🇰 🇾 🇪 🇾 🇹 🇿 🇦 🇿 🇲 🇿 🇼 🏴 󠁧 󠁢 󠁥 󠁮 󠁧 󠁿 🏴 󠁧 󠁢 󠁳 󠁣 󠁴 󠁿 🏴
表示用の Ruby コード。

require 'open-uri'
require 'nokogiri'

top_url = "https://lets-emoji.com/emojilist/"

Nokogiri.HTML(URI.open(top_url)).css("div#the-content a")
  .map {|node| node.attribute("href")&.value}.compact.uniq
  .select {|url| /^https/.match(url)}
  .each do |url|
    Nokogiri.HTML(URI.open(url)).css('td').each do |e|
      e.text.split.each do |st|
        print ('0x' + st[2..-1]).to_i(0).chr("UTF-8") + " " if st[0, 2] == "U+"
      end
    end
    puts
end

Ruby FFI でエラトステネスの篩


これまで RubyC言語で「エラトステネスの篩」を書いたので、Ruby FFI で融合させてみました。Ruby FFI で簡単に Ruby から C言語の関数を呼ぶことができます。Linux Mint 18.2, Ruby 2.3.3 で確認しました。

Ruby FFI を使うには libffi が必要ですが、Linux Mint には最初から入っていました。あと、RubyGem 'ffi' が必要なのでインストールして下さい。

まず C言語のソース。
eratosthenes1.c

#include <math.h>

int sieve(int max, int *a) {
    int i, j;
    
    for (i = 2; i <= sqrt(max); i++) {
        if (a[i] == 1) continue;
        for (j = 2; j <= (max / i); j++) a[i * j] = 1;
    }
    
    i = 0;
    for (j = 2; j <= max; j++) {
        if (!a[j]) a[i++] = j;
    }
    
    return i;
}

コンパイルします。

$ gcc -Wall -fPIC -c eratosthenes1.c -o eratosthenes1.o
$ gcc -shared -o eratosthenes1.so eratosthenes1.o

-fPIC オプションはないとエラーが出るので付けました。これでできた eratosthenes1.so を使います。

Ruby 側。
eratosthenes_ffi.rb

require 'ffi'

module MyModule
  extend FFI::Library
  ffi_lib "./eratosthenes1.so"
  attach_function :sieve, [:int, :pointer], :int
end

max = 1000
pointer = FFI::MemoryPointer.new(:int, max + 1)

size = MyModule.sieve(max, pointer)
p pointer.read_array_of_int(size)

結果。

$ ruby eratosthenes_ffi.rb
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73,
 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163,
 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251,
 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349,
 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443,
 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557,
 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647,
 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757,
 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863,
 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983,
 991, 997]

1000万までの素数を求めてみました(出力なし)。

$ time ruby eratosthenes_ffi.rb

real	0m0.459s
user	0m0.448s
sys	0m0.008s

pure Ruby の場合と比べて、7倍ほどの高速化になりました。


※参考
Home · ffi/ffi Wiki · GitHub
c - How do I handle ruby arrays in ruby ffi gem? - Stack Overflow
Ruby FFIを使ったエクステンションの作り方 - Boost Your Programming!
Ruby-FFIについて調べてみた。(まとめ) - いものやま。

Ruby FFI(メモ) - Marginalia

最長共通部分列(Ruby)

文字列の「部分列」とは、文字列から任意の文字を取り除いたものをいう。文字列 X と Y があって、文字列 Z が X と Y 両方の部分列になっている場合、Z を X, Y の「共通部分列」という。共通部分列の最長のものが、「最長共通部分列」である。たとえば文字列 CATCGA と GTACCGTCA最長共通部分列は CTCA である。

これを Ruby で求めるプログラムを書きました。
LCS.rb

def compute_LCS_table(x, y)
  l = Array.new(x.length + 1) {Array.new(y.length + 1, 0)}
  1.upto(x.length) do |i|
    1.upto(y.length) do |j|
      l[i][j] = if x[i - 1] == y[j - 1]
        l[i - 1][j - 1] + 1
      else
        a, b = l[i][j - 1], l[i - 1][j]
        (a > b) ? a : b
      end
    end
  end
  l
end

def assemble_LCS(x, y, l, i, j)
  return "" if l[i][j].zero?
  if x[i - 1] == y[j - 1]
    assemble_LCS(x, y, l, i - 1, j - 1) + x[i - 1]
  elsif l[i][j - 1] > l[i - 1][j]
    assemble_LCS(x, y, l, i, j - 1)
  else
    assemble_LCS(x, y, l, i - 1, j)
  end
end


x, y = "CATCGA", "GTACCGTCA"
l = compute_LCS_table(x, y)
puts assemble_LCS(x, y, l, x.length, y.length)    #=>CTCA

ここで最初に compute_LCS_table で求めている l[i][j] は、文字列 x[0..(i - 1)], y[0..(j - 1)]最長共通部分列の長さです。これは動的計画法で求めています。それから assemble_LCS で実際の最長共通部分列を求め直しています。
 

アルゴリズムの基本

アルゴリズムの基本

Ruby で迷路作成(コンソール版)

ここでグラフィカルな迷路を生成してみたのですが、やっぱりコンソール版も欲しいよねということで作りました。
 
こんな感じ。

*****************************************
* * * * * * * *
*** * * * ***** * ***** * *** ******* ***
* * * * * * * * * * *
******* * * ******* * *** *** * *** *** *
* * * * * * * * * *
*** ******* * * ***** ***** * * ***** ***
* * * * * * * * * * *
* ******* *** *** ******* * *** * *** * *
* * * * * * *
* ***** * *** ******* * * *** * ***** ***
* * * * * * * * * * * *
*** * * * * * ***** * *** * ***** *** ***
* * * * * * * * * *
*****************************************
どうですかね。

コード。
maze_another.rb

class Maze
  def initialize(x, y)
    raise "maze size error" unless x.odd? and y.odd? and x >= 5 and y >= 5
    @x, @y = x, y
    
    @field = Array.new(y) {Array.new(x, 0)}
    co = 1
    1.step(y - 2, 2) do |j|
      1.step(x - 2, 2) {|i| @field[j][i] = co; co += 1}
    end
    
    @a, @b = (x - 3) / 2, (y - 3) / 2
    @lx, @ly = @a * (@b + 1), (@a + 1) * @b
    @remain_wall = (0...(@lx + @ly)).to_a
  end
  
  def generate
    break_wall until finish
    @field
  end
  
  def break_wall
    wall = @remain_wall[rand(@remain_wall.size)]
    @remain_wall.delete(wall)
    if wall < @lx
      x, y = wall % @a * 2 + 2, wall / @a * 2 + 1
      return if (m = @field[y][x - 1]) == (n = @field[y][x + 1])
    else
      wall -= @lx
      x, y = wall % (@a + 1) * 2 + 1, wall / (@a + 1) * 2 + 2
      return if (m = @field[y - 1][x]) == (n = @field[y + 1][x])
    end
    @field[y][x] = m
    m, n = n, m if m > n
    replace(m, n)
  end
  
  def replace(m, n)
    1.upto(@y - 2) do |y|
      1.upto(@x - 2) {|x| @field[y][x] = m if @field[y][x] == n}
    end
  end
  
  def finish
    a = @field[1][1]
    1.step(@y - 2, 2) do |j|
      1.step(@x - 2, 2) {|i| return false if @field[j][i] != a}
    end
    true
  end
end

def show_maze(field)
  field.each do |line|
    puts line.map {|x| x.zero? ? "*" : " "}.join
  end
end


field = Maze.new(41, 15).generate
show_maze(field)

迷路の生成と表示は分けています。アルゴリズムは前回と同じで、ここのそれを使わせていただきました。なお、迷路の大きさ(Maze.new(x, y) の x, y)は 5 以上の奇数にして下さい。

Swift のクロージャと Ruby の lambda

ここで Swift におけるクロージャの使い方が説明されています。

こちらで同じ内容のコードを再掲するとこんな感じでしょうか。Swift 4.0。

func f(_ a: Int, _ b: Int, _ closure: (Int, Int) -> Int) -> Int { 
    return closure(a, b) 
} 

print(f(1, 2, {a, b in return a + b}))    //=>3
print(f(1, 2, {$0 + $1}))    //=>3
print(f(1, 2, +))            //=>3

print(f(1, 2) {a, b in return a + b})     //=>3

func addNumber(_ number: Int) -> () -> Int {
    var sum = 0
    func add() -> Int {
        sum += number
        return sum
    }
    return add
}

let addTen = addNumber(10)
print(addTen())    //=>10
print(addTen())    //=>20

let addSeven = addNumber(7)
print(addSeven())  //=>7
print(addSeven())  //=>14
print(addTen())    //=>30

 
これらは Ruby の lambda でも基本的に同じことができます。Ruby の lambda はもちろんクロージャで、第一級関数(first class の関数)ですからね。つまり、変数に代入したり、関数の引数になったり返り値になったりできます。

f = ->(a, b, closure) {closure[a, b]}

p f[1, 2, ->(a, b) {a + b}]    #=>3


add_number = ->(number) {
  sum = 0
  -> {sum += number}
}

add_ten = add_number[10]
p add_ten[]    #=>10
p add_ten[]    #=>20

add_seven = add_number[7]
p add_seven[]  #=>7
p add_seven[]  #=>14
p add_ten[]    #=>30

Ruby の簡潔さがここでも出ているのではないでしょうか。

同じことはもちろん JavaScript でも Python でも可能です。


しかし、Swift はいい言語ですね。ここでも見られるように、 Ruby の「ブロック」と同等の機能を、Ruby と同じくらい可読性の高い形で書けるというのはすばらしい。クロージャの中に引数を書くのは、Swift の開発者の言っているとおり、Ruby のパクリですね。いや、上手くパクったと思います。それから、この記事とは関係ないですが、Swift の「オプショナル型」は Ruby にはないものですね。Rubynil 関連のエラーは結構よく出るので、「オプショナル型」ってのはいい考えに思えます。もちろんより安全性が高まるというのはより面倒になるということで、Swift の融通の効かなさがかなわないこともありますが、これは盾の両面で、どちらかというと Swift のこの点の面倒さは大規模開発とかに有利に効いてくるでしょう。Rubynil の安全性を高めるためにいわゆる「ぼっち演算子」(safe navigation operator)を導入したくらいですし。

Ruby の lambda についてはこちらも。

Swift でエラトステネスの篩

こんな感じ。
eratosthenes.swift

func eratosthenes(_ n: Int) -> [Int] {
    var ar = Array(0...n)
    for i in 2...Int(sqrt(Double(n))) {
        if ar[i] == 0 {continue}
        for j in 2...(n / i) {ar[i * j] = 0}
    }
    return ar.filter {$0 != 0}
}

print(eratosthenes(1000))

 
1000万までの素数を求めてみました(出力はしていません)。Swift 4.0, Linux Mint 18.2。

$ time ./eratosthenes

real	0m6.161s
user	0m6.108s
sys	0m0.052s

6秒もかかっていますね。Ruby版よりも遅いですよ? Ruby版の倍も時間がかかっています。どういうこと? アルゴリズムRuby と同じです。なお、インタプリタで実行しても時間はほとんど変わりません。何かおかしいですね。

ちなみに C言語だとこの 1/10 の時間しかかかりません。


※追記
遅い理由がわかりました。Swift の Array はそのままでは遅いらしいです。コンパイル時に -O オプションを付けて最適化してやる必要があります。

$ swiftc eratosthenes.swift -O
$ time ./eratosthenes

real	0m0.234s
user	0m0.196s
sys	0m0.016s

今度は C言語よりも速くなりました! しかしあまりにも数値がちがいすぎますね。

Linux Mint(Ubuntu)で Swift 4.0 を使う

Linux ユーザーですが Swift が使いたい。これまで Swift は 3.1-dev を使っていたのですが、折角 4.0 があるので使ってみることにしました。ちょっとハマったところがあったので記しておきます。なお、面倒なので暗号鍵を使ったデジタル署名版ではありません。その方がよろしい方は本家のドキュメントを見て下さい。Linux Mint 18.2 で確認しました。たぶん Ubuntu でもそのままいけると思います。
 
ここから Swift 4.0 Ubuntu 16.10 をダウンロードします(上記のとおり、Signature でない方)。で、基本的には解凍して好きな場所に置くだけです。ただし、

$ sudo apt-get install clang libicu-dev

をしていない方はしておいて下さい。あとは、僕の環境なら

$ ~/Documents/Swift/usr/bin/swift

みたいな感じで REPL が立ち上がります。詳細はここと同じなので、よろしければ参考にして下さい。


自分がハマったのは、$ swift としても

swift: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by swift)

というエラーが出ることです。確かに、

$ strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX

とすると GLIBCXX_3.4.22 はありません。gcc のビルドが必要らしく、困ったなと思ったのですが、

$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test

としてリポジトリを追加したあと、アップデートマネージャでシステムの更新をしたら OK でした。


まだあります。今度は $ swift -v とやっても

$ swift -v
Swift version 4.0 (swift-4.0-RELEASE)
Target: x86_64-unknown-linux-gnu
/home/***/Documents/Swift/usr/bin/lldb "--repl=-disable-objc-interop -color-diagnostics"
error: failed to stop process at REPL breakpoint

というエラーがでます。インタプリタで適当なプログラムを実行すると

<unknown>:0: error: could not load the swift standard library

と出ます。何かライブラリが足りないようです。コンパイルは出来るので実行ファイルを実行してみたところ、

$ ./qsort
./qsort: error while loading shared libraries: libicuuc.so.57: cannot open shared object file: No such file or directory

となるのがヒントになりました。libicuuc.so.57 というのが足りないのですね。では $ sudo apt-get install libicu-dev かなと思ったのですが、libicu-dev は最新バージョンのようです。

ここで、このページが役に立ちました。ここから libicu57_57.1-6_amd64.deb をダウンロードしてきます。あるいは

$ wget http://ftp.us.debian.org/debian/pool/main/i/icu/libicu57_57.1-6_amd64.deb

でも OK です。そして

$ sudo dpkg -i libicu57_57.1-6_amd64.deb

をすれば解決の筈。実際に swift のインタプリタが動けば(あるいはコンパイルして実行できれば)終了です。お疲れ様でした。

最終的に

$ swift -v
Swift version 4.0 (swift-4.0-RELEASE)
Target: x86_64-unknown-linux-gnu
/home/***/Documents/Swift/usr/bin/lldb "--repl=-disable-objc-interop -color-diagnostics"
Welcome to Swift version 4.0 (swift-4.0-RELEASE). Type :help for assistance.

となりました。OK ですね!