Regex: accurately match bold (**) and italics (*) item(s) from the input - javascript

I am trying to parse a markdown content with the use of regex. To grab bold and italic items from the input, I'm currently using a regex:
/(\*\*)(?<bold>[^**]+)(\*\*)|(?<normal>[^`*[~]+)|\*(?<italic>[^*]+)\*/g
Regex101 Link: https://regex101.com/r/2zOMid/1
The problem with this regex are:
if there is a single * in between a bold text content, the match is breaked
if there are long texts like ******* anywhere in between the match is broken
#####: tried with:
I tried removing the [^**] part in the bold group but that messed up the bold match with finding the last ** occurrence and including all `**`` chars within
What I want to have:
accurate bold
* allowed inside bold
accurate italics
Language: Javascript
Assumptions:
Bold text wrapped inside **
Italic text wrapped inside *

There was some discussion in the chat going on. Just to have it mentioned, there is no requirement yet on how to deal with escaped characters like \* so I didn't take attention of it.
Depending on the desired outcome I'd pick a two step solution and keep the patterns simple:
str = str.replace(/\*\*(.+?)\*\*(?!\*)/g,'<b>$1</b>').replace(/\*([^*><]+)\*/g,'<i>$1</i>');
Step 1: Replace bold parts
Replace \*\*(.+?)\*\*(?!\*) with <b>$1</b> -> Regex101
demo
It captures (.+?) one or more characters between ** lazily to $1
and uses a lookahead for matching the outher most * at the end.
Step 2: Now as the amount of remaining * is reduced, italic parts
Replace remaining \*([^*><]+)\* to <i>$1</i> -> Regex101
demo
[^*><]+ matches one or more characters that are not *, > or <.
Here is the JS-demo at tio.run
Myself I don't think it's a good idea to rely on the amount of the same character for distinguishing between kinds of replacement. The way how it works finally gets a matter of taste.

[^**] will not avoid two consecutive *. It is a character class that is no different from [^*]. The repeated asterisk has no effect.
The pattern for italic should better come in front of the normal part, which should capture anything that remains. This could even be a sole asterisk (for example) -- the pattern for normal text should allow this.
It will be easier to use split and use the bold/italic pattern for matching the "delimiter" of the split, while still capturing it. All the rest will then be "normal". The downside of split is that you cannot benefit from named capture groups, but they will just be represented by separate entries in the returned array.
I will ignore the other syntax that markdown can have (like you seem to hint at with [ and ~ in your regex). On the other hand, it is important to deal well with backslash, as it is used to escape an asterisk.
Here is the regular expression (link):
(\*\*?)(?![\s\*])((?:[\s*]*(?:\\[\\*]|[^\\\s*]))+?)\1
Here is a snippet with two functions:
a function that first splits the input into tokens, where each token is a pair, like ["normal", " this is normal text "] and ["i", "text in italics"]
another function that uses these tokens to generate HTML
The snippet is interactive. Just type the input, and the output will be rendered in HTML using the above sequence.
function tokeniseMarkdown(s) {
const regex = /(\*\*?)(?![\s\*])((?:[\s*]*(?:\\[\\*]|[^\\\s*]))+?)\1/gs;
const styles = ["i", "b"];
// Matches follow this cyclic order:
// normal text, mark (= "*" or "**"), formatted text, normal text, ...
const types = ["normal", "mark", ""];
return s.split(regex).map((match, i, matches) =>
types[i%3] !== "mark" && match &&
[types[i%3] || styles[matches[i-1].length-1],
match.replace(/\\([\\*])/g, "$1")]
).filter(Boolean); // Exclude empty matches and marks
}
function tokensToHtml(tokens) {
const container = document.createElement("span");
for (const [style, text] of tokens) {
let node = style === "normal" ? document.createTextNode(text)
: document.createElement(style);
node.textContent = text;
container.appendChild(node);
}
return container.innerHTML;
}
// I/O management
document.addEventListener("input", refresh);
function refresh() {
const s = document.querySelector("textarea").value;
const tokens = tokeniseMarkdown(s);
document.querySelector("div").innerHTML = tokensToHtml(tokens);
}
refresh();
textarea { width: 100%; height: 6em }
div { font: 22px "Times New Roman" }
<textarea>**fi*rst b** some normal text here **second b** *first i* normal *second i* normal again</textarea><br>
<div></div>

Looking some more about the negative lookaheads, I came up with this regex:
/\*\*(?<bold>(?:(?!\*\*).)+)\*\*|`(?<code>[^`]+)`|~~(?<strike>(?:(?!~~).)+)~~|\[(?<linkTitle>[^]]+)]\((?<linkHref>.*)\)|(?<normal>[^`[*~]+)|\*(?<italic>[^*]+)\*|(?<tara>[*~]{3,})|(?<sitara>[`[]+)/g
Regex101
this pretty much works for me as per my input scenarios. If someone has a more optimized regex, please comment.

italic: ((?<!\s)\*(?!\s)(?:(?:[^\*\*]*(?:(?:\*\*[^\*\*]*){2})+?)+?|[^\*\*]+?)(?<!\s)\*)
(?<!\s)\*(?!\s) means matching the start * with no space around,
(?:(?:[^\*\*]*(?:(?:\*\*[^\*\*]*){2})+?)+? means match ** with even appearance, by which negalates meaningless ** inside intalic.
|[^\*\*]+? means if there's no match for one or more ** pair, match anything except a single **.(this "or" order is important)
(?<!\s)*) means matching the end * with no space ahead
And ?: is non-capturing group in js, you can delete it if not needing
bold:
((?<!\s)\*\*(?!\s)(?:[^\*]+?|(?:[^\*]*(?:(?:\*[^\*]*){2})+?)+?)(?<!\s)\*\*)
Similar to italic, except the order of * pair and other character.
Together you can get:
((?<!\s)\*(?!\s)(?:(?:[^\*\*]*(?:(?:\*\*[^\*\*]*){2})+?)+?|[^\*\*]+?)(?<!\s)\*)|((?<!\s)\*\*(?!\s)(?:[^\*]+?|(?:[^\*]*(?:(?:\*[^\*]*){2})+?)+?)(?<!\s)\*\*)
See the result here: https://regex101.com/r/9gTBpj/1

You can choose the tags depending on the number of asterisks. (1 โ†’ italic, 2 โ†’ bold, 3 โ†’ bold+italic)
function simpleMarkdownTransform(markdown) {
return markdown
.replace(/</g, '&lt') // disallow tags
.replace(/>/g, '&gt')
.replace(
/(\*{1,3})(.+?)\1(?!\*)/g,
(match, { length: length }, text) => {
if (length !== 2) text = text.italics()
return length === 1 ? text : text.bold()
}
)
.replace(/\n/g, '<br>') // new line
}
Example:
simpleMarkdownTransform('abcd **bold** efgh *italic* ijkl ***bold-italic*** mnop')
// "abcd <b>bold</b> efgh <i>italic</i> ijkl <b><i>bold-italic</i></b> mnop"

Related

Is there any way to validate emojis without using regex with an unicode flag? [duplicate]

I need help for how to detect if an input contains a Japanese emoji/emoticon.
Currently my character set is charset=utf-8. On inputting text, the user can enter Japanese characters/alpanumerics/symbols but if they insert an emoji, onsubmit JavaScript will check if there is an emoji, error message will display.
I can't get this to work because I have no idea on how to detect an emoji in JavaScript?
The answers might work but are terrible because they rely on unicode ranges that are unreadable and somewhat "magic" because it's not always clear where do they come from and why they work, not to mention they're not resilient to new emojis being added to the spec.
Major browsers now support unicode property escape which allows for matching emojis based on their belonging in the Emoji unicode category: \p{Emoji} matches an emoji, \P{Emoji} matches a non-emoji.
Note that officially, 0123456789#* and other characters are emojis too, so the property escape you might want to use is not Emoji but rather Extended_Pictographic which denotes all the characters typically understood as emojis!
Make sure to include the u flag at the end.
console.log(
/\p{Emoji}/u.test('flowers'), // false :)
/\p{Emoji}/u.test('flowers ๐ŸŒผ๐ŸŒบ๐ŸŒธ'), // true :)
/\p{Emoji}/u.test('flowers 123'), // true :(
)
console.log(
/\p{Extended_Pictographic}/u.test('flowers'), // false :)
/\p{Extended_Pictographic}/u.test('flowers ๐ŸŒผ๐ŸŒบ๐ŸŒธ'), // true :)
/\p{Extended_Pictographic}/u.test('flowers 123'), // false :)
)
This works fine for detecting emojis, but if you want to use the same regex to extract them, you might be surprised with its behavior, since some emojis that appear as one character are actually several characters. They're what we call emoji sequences, more about them in this question
const regex = /\p{Extended_Pictographic}/ug
const family = '๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง' // "family
console.log(family.length) // not 1, but 8!
console.log(regex.test(family)) // true, as expected
console.log(family.match(regex)) // not [family], but [man, woman, girl]
You can use the following regex:
/(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|\ud83c[\ude32-\ude3a]|\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])/g
If you just want to remove it from the string, you can do something like this.
function removeEmojis (string) {
var regex = /(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|\ud83c[\ude32-\ude3a]|\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])/g;
return string.replace(regex, '');
}
A simple function that returns true if your string contains one or more emojis.
function isEmoji(str) {
var ranges = [
'(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|[\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|[\ud83c[\ude32-\ude3a]|[\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])' // U+1F680 to U+1F6FF
];
if (str.match(ranges.join('|'))) {
return true;
} else {
return false;
}
}
First of all, you cannot rely on ECMAScript 2018+ compliant \p{Emoji} (at least at the time of writing). It really matches some 0123456789#* non-emoji chars (see Nino Filiu's answer). See Why do Unicode emoji property escapes match numbers? for more details.
To test if there are any emoji chars in a string in JavaScript, you can use the following ECMAScript 2018+ compliant solution (mind the u flag):
const regex_emoji = /[\p{Extended_Pictographic}\u{1F3FB}-\u{1F3FF}\u{1F9B0}-\u{1F9B3}]/u;
console.log( regex_emoji.test('flowers 123') ); // => false
console.log( regex_emoji.test('flowers ๐ŸŒผ๐ŸŒบ๐ŸŒธ') ); // => true
You can even extract one or more emoji char sequences using this pattern (note the added g flag to find all occurrences and + to match one or more consecutive occurrences of the character class pattern):
const regex_emoji = /[\p{Extended_Pictographic}\u{1F3FB}-\u{1F3FF}\u{1F9B0}-\u{1F9B3}]+/gu;
console.log( 'flowers 123'.match(regex_emoji) ); // => null
console.log( 'flowers ๐ŸŒผ๐ŸŒบ๐ŸŒธ'.match(regex_emoji) ); // => [ "๐ŸŒผ๐ŸŒบ๐ŸŒธ" ]
In a nutshell, the Extended_Pictographic Unicode category class matches most emoji chars except for some Emoji_Components, that is, light skin to dark skin mode chars (\u{1F3FB}-\u{1F3FF}) and red-haired to white-haired chars (\u{1F9B0}-\u{1F9B3}).
To count, or extract emojis as an array of single chars or consecutive sequences (like in the second code snippet from above) from longer texts and perform other actions on emojis, you can use a custom regex (like in Scott Weaver's answer). It is safer to use the longer, escaped version. However, there are 4702 emoji characters defined in the Emoji Keyboard/Display Test Data for UTR #51 (Version: 14.0) file. Thus, the (ES5 compliant, works even in IE) regex to match a single emoji char is
var EmojiPattern = /[#*0-9]\uFE0F?\u20E3|\u00A9\uFE0F?|[\u00AE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA]\uFE0F?|[\u231A\u231B]|[\u2328\u23CF]\uFE0F?|[\u23E9-\u23EC]|[\u23ED-\u23EF]\uFE0F?|\u23F0|[\u23F1\u23F2]\uFE0F?|\u23F3|[\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC]\uFE0F?|[\u25FD\u25FE]|[\u2600-\u2604\u260E\u2611]\uFE0F?|[\u2614\u2615]|\u2618\uFE0F?|\u261D(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642]\uFE0F?|[\u2648-\u2653]|[\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E]\uFE0F?|\u267F|\u2692\uFE0F?|\u2693|[\u2694-\u2697\u2699\u269B\u269C\u26A0]\uFE0F?|\u26A1|\u26A7\uFE0F?|[\u26AA\u26AB]|[\u26B0\u26B1]\uFE0F?|[\u26BD\u26BE\u26C4\u26C5]|\u26C8\uFE0F?|\u26CE|[\u26CF\u26D1\u26D3]\uFE0F?|\u26D4|\u26E9\uFE0F?|\u26EA|[\u26F0\u26F1]\uFE0F?|[\u26F2\u26F3]|\u26F4\uFE0F?|\u26F5|[\u26F7\u26F8]\uFE0F?|\u26F9(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?|\uFE0F(?:\u200D[\u2640\u2642]\uFE0F?)?)?|[\u26FA\u26FD]|\u2702\uFE0F?|\u2705|[\u2708\u2709]\uFE0F?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|\u270F\uFE0F?|[\u2712\u2714\u2716\u271D\u2721]\uFE0F?|\u2728|[\u2733\u2734\u2744\u2747]\uFE0F?|[\u274C\u274E\u2753-\u2755\u2757]|\u2763\uFE0F?|\u2764(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uFE0F(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?)?|[\u2795-\u2797]|\u27A1\uFE0F?|[\u27B0\u27BF]|[\u2934\u2935\u2B05-\u2B07]\uFE0F?|[\u2B1B\u2B1C\u2B50\u2B55]|[\u3030\u303D\u3297\u3299]\uFE0F?|\uD83C(?:[\uDC04\uDCCF]|[\uDD70\uDD71\uDD7E\uDD7F]\uFE0F?|[\uDD8E\uDD91-\uDD9A]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDE01|\uDE02\uFE0F?|[\uDE1A\uDE2F\uDE32-\uDE36]|\uDE37\uFE0F?|[\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20]|[\uDF21\uDF24-\uDF2C]\uFE0F?|[\uDF2D-\uDF35]|\uDF36\uFE0F?|[\uDF37-\uDF7C]|\uDF7D\uFE0F?|[\uDF7E-\uDF84]|\uDF85(?:\uD83C[\uDFFB-\uDFFF])?|[\uDF86-\uDF93]|[\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F]\uFE0F?|[\uDFA0-\uDFC1]|\uDFC2(?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC3\uDFC4](?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|[\uDFC5\uDFC6]|\uDFC7(?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC8\uDFC9]|\uDFCA(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|[\uDFCB\uDFCC](?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?|\uFE0F(?:\u200D[\u2640\u2642]\uFE0F?)?)?|[\uDFCD\uDFCE]\uFE0F?|[\uDFCF-\uDFD3]|[\uDFD4-\uDFDF]\uFE0F?|[\uDFE0-\uDFF0]|\uDFF3(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08)|\uFE0F(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?)?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?|[\uDFF5\uDFF7]\uFE0F?|[\uDFF8-\uDFFF])|\uD83D(?:[\uDC00-\uDC07]|\uDC08(?:\u200D\u2B1B)?|[\uDC09-\uDC14]|\uDC15(?:\u200D\uD83E\uDDBA)?|[\uDC16-\uDC3A]|\uDC3B(?:\u200D\u2744\uFE0F?)?|[\uDC3C-\uDC3E]|\uDC3F\uFE0F?|\uDC40|\uDC41(?:\u200D\uD83D\uDDE8\uFE0F?|\uFE0F(?:\u200D\uD83D\uDDE8\uFE0F?)?)?|[\uDC42\uDC43](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC44\uDC45]|[\uDC46-\uDC50](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC51-\uDC65]|[\uDC66\uDC67](?:\uD83C[\uDFFB-\uDFFF])?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFF]|\uDC8B\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFF]|\uDC8B\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFF]|\uDC8B\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFF]|\uDC8B\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFF]|\uDC8B\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?))?|\uDC6A|[\uDC6B-\uDC6D](?:\uD83C[\uDFFB-\uDFFF])?|\uDC6E(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDC70\uDC71](?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|\uDC72(?:\uD83C[\uDFFB-\uDFFF])?|\uDC73(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|[\uDC74-\uDC76](?:\uD83C[\uDFFB-\uDFFF])?|\uDC77(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|\uDC78(?:\uD83C[\uDFFB-\uDFFF])?|[\uDC79-\uDC7B]|\uDC7C(?:\uD83C[\uDFFB-\uDFFF])?|[\uDC7D-\uDC80]|[\uDC81\uDC82](?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|\uDC83(?:\uD83C[\uDFFB-\uDFFF])?|\uDC84|\uDC85(?:\uD83C[\uDFFB-\uDFFF])?|[\uDC86\uDC87](?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|[\uDC88-\uDC8E]|\uDC8F(?:\uD83C[\uDFFB-\uDFFF])?|\uDC90|\uDC91(?:\uD83C[\uDFFB-\uDFFF])?|[\uDC92-\uDCA9]|\uDCAA(?:\uD83C[\uDFFB-\uDFFF])?|[\uDCAB-\uDCFC]|\uDCFD\uFE0F?|[\uDCFF-\uDD3D]|[\uDD49\uDD4A]\uFE0F?|[\uDD4B-\uDD4E\uDD50-\uDD67]|[\uDD6F\uDD70\uDD73]\uFE0F?|\uDD74(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|\uDD75(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?|\uFE0F(?:\u200D[\u2640\u2642]\uFE0F?)?)?|[\uDD76-\uDD79]\uFE0F?|\uDD7A(?:\uD83C[\uDFFB-\uDFFF])?|[\uDD87\uDD8A-\uDD8D]\uFE0F?|\uDD90(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDD95\uDD96](?:\uD83C[\uDFFB-\uDFFF])?|\uDDA4|[\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA]\uFE0F?|[\uDDFB-\uDE2D]|\uDE2E(?:\u200D\uD83D\uDCA8)?|[\uDE2F-\uDE34]|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|[\uDE37-\uDE44]|[\uDE45-\uDE47](?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|[\uDE48-\uDE4A]|\uDE4B(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|\uDE4C(?:\uD83C[\uDFFB-\uDFFF])?|[\uDE4D\uDE4E](?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|\uDE4F(?:\uD83C[\uDFFB-\uDFFF])?|[\uDE80-\uDEA2]|\uDEA3(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|[\uDEA4-\uDEB3]|[\uDEB4-\uDEB6](?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|[\uDEB7-\uDEBF]|\uDEC0(?:\uD83C[\uDFFB-\uDFFF])?|[\uDEC1-\uDEC5]|\uDECB\uFE0F?|\uDECC(?:\uD83C[\uDFFB-\uDFFF])?|[\uDECD-\uDECF]\uFE0F?|[\uDED0-\uDED2\uDED5-\uDED7\uDEDD-\uDEDF]|[\uDEE0-\uDEE5\uDEE9]\uFE0F?|[\uDEEB\uDEEC]|[\uDEF0\uDEF3]\uFE0F?|[\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0])|\uD83E(?:\uDD0C(?:\uD83C[\uDFFB-\uDFFF])?|[\uDD0D\uDD0E]|\uDD0F(?:\uD83C[\uDFFB-\uDFFF])?|[\uDD10-\uDD17]|[\uDD18-\uDD1F](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD20-\uDD25]|\uDD26(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|[\uDD27-\uDD2F]|[\uDD30-\uDD34](?:\uD83C[\uDFFB-\uDFFF])?|\uDD35(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|\uDD36(?:\uD83C[\uDFFB-\uDFFF])?|[\uDD37-\uDD39](?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|\uDD3A|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD3D\uDD3E](?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|[\uDD3F-\uDD45\uDD47-\uDD76]|\uDD77(?:\uD83C[\uDFFB-\uDFFF])?|[\uDD78-\uDDB4]|[\uDDB5\uDDB6](?:\uD83C[\uDFFB-\uDFFF])?|\uDDB7|[\uDDB8\uDDB9](?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|\uDDBA|\uDDBB(?:\uD83C[\uDFFB-\uDFFF])?|[\uDDBC-\uDDCC]|[\uDDCD-\uDDCF](?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|\uDDD0|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83E\uDDD1|[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?))?|[\uDDD2\uDDD3](?:\uD83C[\uDFFB-\uDFFF])?|\uDDD4(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|\uDDD5(?:\uD83C[\uDFFB-\uDFFF])?|[\uDDD6-\uDDDD](?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7C\uDE80-\uDE86\uDE90-\uDEAC\uDEB0-\uDEBA\uDEC0-\uDEC2]|[\uDEC3-\uDEC5](?:\uD83C[\uDFFB-\uDFFF])?|[\uDED0-\uDED9\uDEE0-\uDEE7]|\uDEF0(?:\uD83C[\uDFFB-\uDFFF])?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?|[\uDEF2-\uDEF6](?:\uD83C[\uDFFB-\uDFFF])?)/g;
See the regex demo. The g flag at the end means this regex can match all occurrences in the input string.
The pattern is created dynamically from the list of emojis and contracted using a regex trie.
See this JavaScript demo:
var text = 'flowers ๐ŸŒผ๐ŸŒบ๐ŸŒธ';
// Detecting if there is at least one emoji
console.log( emoji_detection_regex.test(text) ); // => true
// Counting emojis
console.log( (text.match(emoji_count_regex) || []).length ); // => 3
// Extracting one by one, single emoji array
console.log( text.match(emoji_count_regex) ); // => ["๐ŸŒผ","๐ŸŒบ","๐ŸŒธ"]
// Extracting emoji sequences
console.log( text.match(emoji_extract_or_remove_regex) ); // => ["๐ŸŒผ๐ŸŒบ๐ŸŒธ"]
// Removing emojis
console.log( text.replace(emoji_extract_or_remove_regex, '') ); // => 'flowers '
<script src="https://gitcdn.link/repo/stribizhev/Emojis/main/ws_emoji_regex.js"></script>
The emoji regex declarations are available in the https://github.com/stribizhev/Emojis/blob/main/ws_emoji_regex.js file.
We can detect all list of surrogate pairs or the Emoji characters in a specific range.
If the issue related with storing the input string to database like MySQL version before 5.5 we need to detect and remove all the surrogate pairs using the below regex
/([\uD800-\uDBFF][\uDC00-\uDFFF])/g.
Update for 2020: Many of these patterns don't match compound emojis or Modifier Sequences correctly, or are simply outdated and do not match the newer emojis.
Consider this kissing couple: ๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ. It's actually 6 (maybe more) other emojis glued together with the ZWJ zero-width joiner. To match this correctly, you have to actually match that sequence.
Thus, by matching the longer sequences first, this brute-force pattern (too long too paste, but it's a simple alternation and runs fast) correctly parses all 3521 combined emojis as of May 2021:
GitHub link: https://github.com/sweaver2112/Regex-combined-emojis
Edit 5/10/2021: If the size of the Unicode escape version of this regex is off-putting to you, you could actually skip the Unicode escape sequences and just use literal emojis, thereby saving tons of space...well, almost. This character, "*๏ธโƒฃ", which starts with an asterisk, will throw a "nothing to quantify" error. Getting rid of just this guy yields a much shorter, still working, copy/pastable regex that matches 3,520/3,521 Emojis at the present date:
Regex 101 Demo (compact, unsafe literal emoji version)
Regex 101 Demo (long, safe unicode escape version)
The demos' input string includes all characters from
https://unicode.org/emoji/charts/full-emoji-list.html (13.1)
https://unicode.org/emoji/charts-13.1/full-emoji-modifiers.html
Working example using the compact version:
/*the pattern*/
var emojiPattern = String.raw`(?:๐Ÿง‘๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ|๐Ÿง‘๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ|๐Ÿง‘๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ|๐Ÿง‘๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ|๐Ÿง‘๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป|๐Ÿง‘๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ|๐Ÿง‘๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ|๐Ÿง‘๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ|๐Ÿง‘๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป|๐Ÿง‘๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ|๐Ÿง‘๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ|๐Ÿง‘๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ|๐Ÿง‘๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป|๐Ÿง‘๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ|๐Ÿง‘๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ|๐Ÿง‘๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ|๐Ÿง‘๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป|๐Ÿง‘๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ|๐Ÿง‘๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ|๐Ÿง‘๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ|๐Ÿด๓ ง๓ ข๓ ฅ๓ ฎ๓ ง๓ ฟ|๐Ÿด๓ ง๓ ข๓ ณ๓ ฃ๓ ด๓ ฟ|๐Ÿด๓ ง๓ ข๓ ท๓ ฌ๓ ณ๓ ฟ|๐Ÿง‘๐Ÿปโ€๐Ÿคโ€๐Ÿง‘๐Ÿป|๐Ÿง‘๐Ÿปโ€๐Ÿคโ€๐Ÿง‘๐Ÿผ|๐Ÿง‘๐Ÿปโ€๐Ÿคโ€๐Ÿง‘๐Ÿฝ|๐Ÿง‘๐Ÿปโ€๐Ÿคโ€๐Ÿง‘๐Ÿพ|๐Ÿง‘๐Ÿปโ€๐Ÿคโ€๐Ÿง‘๐Ÿฟ|๐Ÿง‘๐Ÿผโ€๐Ÿคโ€๐Ÿง‘๐Ÿป|๐Ÿง‘๐Ÿผโ€๐Ÿคโ€๐Ÿง‘๐Ÿผ|๐Ÿง‘๐Ÿผโ€๐Ÿคโ€๐Ÿง‘๐Ÿฝ|๐Ÿง‘๐Ÿผโ€๐Ÿคโ€๐Ÿง‘๐Ÿพ|๐Ÿง‘๐Ÿผโ€๐Ÿคโ€๐Ÿง‘๐Ÿฟ|๐Ÿง‘๐Ÿฝโ€๐Ÿคโ€๐Ÿง‘๐Ÿป|๐Ÿง‘๐Ÿฝโ€๐Ÿคโ€๐Ÿง‘๐Ÿผ|๐Ÿง‘๐Ÿฝโ€๐Ÿคโ€๐Ÿง‘๐Ÿฝ|๐Ÿง‘๐Ÿฝโ€๐Ÿคโ€๐Ÿง‘๐Ÿพ|๐Ÿง‘๐Ÿฝโ€๐Ÿคโ€๐Ÿง‘๐Ÿฟ|๐Ÿง‘๐Ÿพโ€๐Ÿคโ€๐Ÿง‘๐Ÿป|๐Ÿง‘๐Ÿพโ€๐Ÿคโ€๐Ÿง‘๐Ÿผ|๐Ÿง‘๐Ÿพโ€๐Ÿคโ€๐Ÿง‘๐Ÿฝ|๐Ÿง‘๐Ÿพโ€๐Ÿคโ€๐Ÿง‘๐Ÿพ|๐Ÿง‘๐Ÿพโ€๐Ÿคโ€๐Ÿง‘๐Ÿฟ|๐Ÿง‘๐Ÿฟโ€๐Ÿคโ€๐Ÿง‘๐Ÿป|๐Ÿง‘๐Ÿฟโ€๐Ÿคโ€๐Ÿง‘๐Ÿผ|๐Ÿง‘๐Ÿฟโ€๐Ÿคโ€๐Ÿง‘๐Ÿฝ|๐Ÿง‘๐Ÿฟโ€๐Ÿคโ€๐Ÿง‘๐Ÿพ|๐Ÿง‘๐Ÿฟโ€๐Ÿคโ€๐Ÿง‘๐Ÿฟ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘จ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘จ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ|๐Ÿง‘๐Ÿปโ€โค๏ธโ€๐Ÿง‘๐Ÿผ|๐Ÿง‘๐Ÿปโ€โค๏ธโ€๐Ÿง‘๐Ÿฝ|๐Ÿง‘๐Ÿปโ€โค๏ธโ€๐Ÿง‘๐Ÿพ|๐Ÿง‘๐Ÿปโ€โค๏ธโ€๐Ÿง‘๐Ÿฟ|๐Ÿง‘๐Ÿผโ€โค๏ธโ€๐Ÿง‘๐Ÿป|๐Ÿง‘๐Ÿผโ€โค๏ธโ€๐Ÿง‘๐Ÿฝ|๐Ÿง‘๐Ÿผโ€โค๏ธโ€๐Ÿง‘๐Ÿพ|๐Ÿง‘๐Ÿผโ€โค๏ธโ€๐Ÿง‘๐Ÿฟ|๐Ÿง‘๐Ÿฝโ€โค๏ธโ€๐Ÿง‘๐Ÿป|๐Ÿง‘๐Ÿฝโ€โค๏ธโ€๐Ÿง‘๐Ÿผ|๐Ÿง‘๐Ÿฝโ€โค๏ธโ€๐Ÿง‘๐Ÿพ|๐Ÿง‘๐Ÿฝโ€โค๏ธโ€๐Ÿง‘๐Ÿฟ|๐Ÿง‘๐Ÿพโ€โค๏ธโ€๐Ÿง‘๐Ÿป|๐Ÿง‘๐Ÿพโ€โค๏ธโ€๐Ÿง‘๐Ÿผ|๐Ÿง‘๐Ÿพโ€โค๏ธโ€๐Ÿง‘๐Ÿฝ|๐Ÿง‘๐Ÿพโ€โค๏ธโ€๐Ÿง‘๐Ÿฟ|๐Ÿง‘๐Ÿฟโ€โค๏ธโ€๐Ÿง‘๐Ÿป|๐Ÿง‘๐Ÿฟโ€โค๏ธโ€๐Ÿง‘๐Ÿผ|๐Ÿง‘๐Ÿฟโ€โค๏ธโ€๐Ÿง‘๐Ÿฝ|๐Ÿง‘๐Ÿฟโ€โค๏ธโ€๐Ÿง‘๐Ÿพ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฟ|๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ|๐Ÿ‘จโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ|๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ|๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ|๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ|๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง|๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ|๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ|๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง|๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ|๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ|๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง|๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘|๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ‘จ|๐Ÿ‘จโ€โค๏ธโ€๐Ÿ‘จ|๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ‘ฉ|๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ|๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง|๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆ|๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ง|๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ|๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ง|๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ|๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ|๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง|๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ|๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ|๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง|๐Ÿ‘๏ธโ€๐Ÿ—จ๏ธ|๐Ÿง”๐Ÿปโ€โ™‚๏ธ|๐Ÿง”๐Ÿผโ€โ™‚๏ธ|๐Ÿง”๐Ÿฝโ€โ™‚๏ธ|๐Ÿง”๐Ÿพโ€โ™‚๏ธ|๐Ÿง”๐Ÿฟโ€โ™‚๏ธ|๐Ÿง”๐Ÿปโ€โ™€๏ธ|๐Ÿง”๐Ÿผโ€โ™€๏ธ|๐Ÿง”๐Ÿฝโ€โ™€๏ธ|๐Ÿง”๐Ÿพโ€โ™€๏ธ|๐Ÿง”๐Ÿฟโ€โ™€๏ธ|๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฐ|๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฐ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฐ|๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฐ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฐ|๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฑ|๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฑ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฑ|๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฑ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฑ|๐Ÿ‘จ๐Ÿปโ€๐Ÿฆณ|๐Ÿ‘จ๐Ÿผโ€๐Ÿฆณ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆณ|๐Ÿ‘จ๐Ÿพโ€๐Ÿฆณ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆณ|๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฒ|๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฒ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฒ|๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฒ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฒ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฐ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฐ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฐ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฐ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฐ|๐Ÿง‘๐Ÿปโ€๐Ÿฆฐ|๐Ÿง‘๐Ÿผโ€๐Ÿฆฐ|๐Ÿง‘๐Ÿฝโ€๐Ÿฆฐ|๐Ÿง‘๐Ÿพโ€๐Ÿฆฐ|๐Ÿง‘๐Ÿฟโ€๐Ÿฆฐ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฑ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฑ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฑ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฑ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฑ|๐Ÿง‘๐Ÿปโ€๐Ÿฆฑ|๐Ÿง‘๐Ÿผโ€๐Ÿฆฑ|๐Ÿง‘๐Ÿฝโ€๐Ÿฆฑ|๐Ÿง‘๐Ÿพโ€๐Ÿฆฑ|๐Ÿง‘๐Ÿฟโ€๐Ÿฆฑ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆณ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆณ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆณ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆณ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆณ|๐Ÿง‘๐Ÿปโ€๐Ÿฆณ|๐Ÿง‘๐Ÿผโ€๐Ÿฆณ|๐Ÿง‘๐Ÿฝโ€๐Ÿฆณ|๐Ÿง‘๐Ÿพโ€๐Ÿฆณ|๐Ÿง‘๐Ÿฟโ€๐Ÿฆณ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฒ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฒ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฒ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฒ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฒ|๐Ÿง‘๐Ÿปโ€๐Ÿฆฒ|๐Ÿง‘๐Ÿผโ€๐Ÿฆฒ|๐Ÿง‘๐Ÿฝโ€๐Ÿฆฒ|๐Ÿง‘๐Ÿพโ€๐Ÿฆฒ|๐Ÿง‘๐Ÿฟโ€๐Ÿฆฒ|๐Ÿ‘ฑ๐Ÿปโ€โ™€๏ธ|๐Ÿ‘ฑ๐Ÿผโ€โ™€๏ธ|๐Ÿ‘ฑ๐Ÿฝโ€โ™€๏ธ|๐Ÿ‘ฑ๐Ÿพโ€โ™€๏ธ|๐Ÿ‘ฑ๐Ÿฟโ€โ™€๏ธ|๐Ÿ‘ฑ๐Ÿปโ€โ™‚๏ธ|๐Ÿ‘ฑ๐Ÿผโ€โ™‚๏ธ|๐Ÿ‘ฑ๐Ÿฝโ€โ™‚๏ธ|๐Ÿ‘ฑ๐Ÿพโ€โ™‚๏ธ|๐Ÿ‘ฑ๐Ÿฟโ€โ™‚๏ธ|๐Ÿ™๐Ÿปโ€โ™‚๏ธ|๐Ÿ™๐Ÿผโ€โ™‚๏ธ|๐Ÿ™๐Ÿฝโ€โ™‚๏ธ|๐Ÿ™๐Ÿพโ€โ™‚๏ธ|๐Ÿ™๐Ÿฟโ€โ™‚๏ธ|๐Ÿ™๐Ÿปโ€โ™€๏ธ|๐Ÿ™๐Ÿผโ€โ™€๏ธ|๐Ÿ™๐Ÿฝโ€โ™€๏ธ|๐Ÿ™๐Ÿพโ€โ™€๏ธ|๐Ÿ™๐Ÿฟโ€โ™€๏ธ|๐Ÿ™Ž๐Ÿปโ€โ™‚๏ธ|๐Ÿ™Ž๐Ÿผโ€โ™‚๏ธ|๐Ÿ™Ž๐Ÿฝโ€โ™‚๏ธ|๐Ÿ™Ž๐Ÿพโ€โ™‚๏ธ|๐Ÿ™Ž๐Ÿฟโ€โ™‚๏ธ|๐Ÿ™Ž๐Ÿปโ€โ™€๏ธ|๐Ÿ™Ž๐Ÿผโ€โ™€๏ธ|๐Ÿ™Ž๐Ÿฝโ€โ™€๏ธ|๐Ÿ™Ž๐Ÿพโ€โ™€๏ธ|๐Ÿ™Ž๐Ÿฟโ€โ™€๏ธ|๐Ÿ™…๐Ÿปโ€โ™‚๏ธ|๐Ÿ™…๐Ÿผโ€โ™‚๏ธ|๐Ÿ™…๐Ÿฝโ€โ™‚๏ธ|๐Ÿ™…๐Ÿพโ€โ™‚๏ธ|๐Ÿ™…๐Ÿฟโ€โ™‚๏ธ|๐Ÿ™…๐Ÿปโ€โ™€๏ธ|๐Ÿ™…๐Ÿผโ€โ™€๏ธ|๐Ÿ™…๐Ÿฝโ€โ™€๏ธ|๐Ÿ™…๐Ÿพโ€โ™€๏ธ|๐Ÿ™…๐Ÿฟโ€โ™€๏ธ|๐Ÿ™†๐Ÿปโ€โ™‚๏ธ|๐Ÿ™†๐Ÿผโ€โ™‚๏ธ|๐Ÿ™†๐Ÿฝโ€โ™‚๏ธ|๐Ÿ™†๐Ÿพโ€โ™‚๏ธ|๐Ÿ™†๐Ÿฟโ€โ™‚๏ธ|๐Ÿ™†๐Ÿปโ€โ™€๏ธ|๐Ÿ™†๐Ÿผโ€โ™€๏ธ|๐Ÿ™†๐Ÿฝโ€โ™€๏ธ|๐Ÿ™†๐Ÿพโ€โ™€๏ธ|๐Ÿ™†๐Ÿฟโ€โ™€๏ธ|๐Ÿ’๐Ÿปโ€โ™‚๏ธ|๐Ÿ’๐Ÿผโ€โ™‚๏ธ|๐Ÿ’๐Ÿฝโ€โ™‚๏ธ|๐Ÿ’๐Ÿพโ€โ™‚๏ธ|๐Ÿ’๐Ÿฟโ€โ™‚๏ธ|๐Ÿ’๐Ÿปโ€โ™€๏ธ|๐Ÿ’๐Ÿผโ€โ™€๏ธ|๐Ÿ’๐Ÿฝโ€โ™€๏ธ|๐Ÿ’๐Ÿพโ€โ™€๏ธ|๐Ÿ’๐Ÿฟโ€โ™€๏ธ|๐Ÿ™‹๐Ÿปโ€โ™‚๏ธ|๐Ÿ™‹๐Ÿผโ€โ™‚๏ธ|๐Ÿ™‹๐Ÿฝโ€โ™‚๏ธ|๐Ÿ™‹๐Ÿพโ€โ™‚๏ธ|๐Ÿ™‹๐Ÿฟโ€โ™‚๏ธ|๐Ÿ™‹๐Ÿปโ€โ™€๏ธ|๐Ÿ™‹๐Ÿผโ€โ™€๏ธ|๐Ÿ™‹๐Ÿฝโ€โ™€๏ธ|๐Ÿ™‹๐Ÿพโ€โ™€๏ธ|๐Ÿ™‹๐Ÿฟโ€โ™€๏ธ|๐Ÿง๐Ÿปโ€โ™‚๏ธ|๐Ÿง๐Ÿผโ€โ™‚๏ธ|๐Ÿง๐Ÿฝโ€โ™‚๏ธ|๐Ÿง๐Ÿพโ€โ™‚๏ธ|๐Ÿง๐Ÿฟโ€โ™‚๏ธ|๐Ÿง๐Ÿปโ€โ™€๏ธ|๐Ÿง๐Ÿผโ€โ™€๏ธ|๐Ÿง๐Ÿฝโ€โ™€๏ธ|๐Ÿง๐Ÿพโ€โ™€๏ธ|๐Ÿง๐Ÿฟโ€โ™€๏ธ|๐Ÿ™‡๐Ÿปโ€โ™‚๏ธ|๐Ÿ™‡๐Ÿผโ€โ™‚๏ธ|๐Ÿ™‡๐Ÿฝโ€โ™‚๏ธ|๐Ÿ™‡๐Ÿพโ€โ™‚๏ธ|๐Ÿ™‡๐Ÿฟโ€โ™‚๏ธ|๐Ÿ™‡๐Ÿปโ€โ™€๏ธ|๐Ÿ™‡๐Ÿผโ€โ™€๏ธ|๐Ÿ™‡๐Ÿฝโ€โ™€๏ธ|๐Ÿ™‡๐Ÿพโ€โ™€๏ธ|๐Ÿ™‡๐Ÿฟโ€โ™€๏ธ|๐Ÿคฆ๐Ÿปโ€โ™‚๏ธ|๐Ÿคฆ๐Ÿผโ€โ™‚๏ธ|๐Ÿคฆ๐Ÿฝโ€โ™‚๏ธ|๐Ÿคฆ๐Ÿพโ€โ™‚๏ธ|๐Ÿคฆ๐Ÿฟโ€โ™‚๏ธ|๐Ÿคฆ๐Ÿปโ€โ™€๏ธ|๐Ÿคฆ๐Ÿผโ€โ™€๏ธ|๐Ÿคฆ๐Ÿฝโ€โ™€๏ธ|๐Ÿคฆ๐Ÿพโ€โ™€๏ธ|๐Ÿคฆ๐Ÿฟโ€โ™€๏ธ|๐Ÿคท๐Ÿปโ€โ™‚๏ธ|๐Ÿคท๐Ÿผโ€โ™‚๏ธ|๐Ÿคท๐Ÿฝโ€โ™‚๏ธ|๐Ÿคท๐Ÿพโ€โ™‚๏ธ|๐Ÿคท๐Ÿฟโ€โ™‚๏ธ|๐Ÿคท๐Ÿปโ€โ™€๏ธ|๐Ÿคท๐Ÿผโ€โ™€๏ธ|๐Ÿคท๐Ÿฝโ€โ™€๏ธ|๐Ÿคท๐Ÿพโ€โ™€๏ธ|๐Ÿคท๐Ÿฟโ€โ™€๏ธ|๐Ÿง‘๐Ÿปโ€โš•๏ธ|๐Ÿง‘๐Ÿผโ€โš•๏ธ|๐Ÿง‘๐Ÿฝโ€โš•๏ธ|๐Ÿง‘๐Ÿพโ€โš•๏ธ|๐Ÿง‘๐Ÿฟโ€โš•๏ธ|๐Ÿ‘จ๐Ÿปโ€โš•๏ธ|๐Ÿ‘จ๐Ÿผโ€โš•๏ธ|๐Ÿ‘จ๐Ÿฝโ€โš•๏ธ|๐Ÿ‘จ๐Ÿพโ€โš•๏ธ|๐Ÿ‘จ๐Ÿฟโ€โš•๏ธ|๐Ÿ‘ฉ๐Ÿปโ€โš•๏ธ|๐Ÿ‘ฉ๐Ÿผโ€โš•๏ธ|๐Ÿ‘ฉ๐Ÿฝโ€โš•๏ธ|๐Ÿ‘ฉ๐Ÿพโ€โš•๏ธ|๐Ÿ‘ฉ๐Ÿฟโ€โš•๏ธ|๐Ÿง‘๐Ÿปโ€๐ŸŽ“|๐Ÿง‘๐Ÿผโ€๐ŸŽ“|๐Ÿง‘๐Ÿฝโ€๐ŸŽ“|๐Ÿง‘๐Ÿพโ€๐ŸŽ“|๐Ÿง‘๐Ÿฟโ€๐ŸŽ“|๐Ÿ‘จ๐Ÿปโ€๐ŸŽ“|๐Ÿ‘จ๐Ÿผโ€๐ŸŽ“|๐Ÿ‘จ๐Ÿฝโ€๐ŸŽ“|๐Ÿ‘จ๐Ÿพโ€๐ŸŽ“|๐Ÿ‘จ๐Ÿฟโ€๐ŸŽ“|๐Ÿ‘ฉ๐Ÿปโ€๐ŸŽ“|๐Ÿ‘ฉ๐Ÿผโ€๐ŸŽ“|๐Ÿ‘ฉ๐Ÿฝโ€๐ŸŽ“|๐Ÿ‘ฉ๐Ÿพโ€๐ŸŽ“|๐Ÿ‘ฉ๐Ÿฟโ€๐ŸŽ“|๐Ÿง‘๐Ÿปโ€๐Ÿซ|๐Ÿง‘๐Ÿผโ€๐Ÿซ|๐Ÿง‘๐Ÿฝโ€๐Ÿซ|๐Ÿง‘๐Ÿพโ€๐Ÿซ|๐Ÿง‘๐Ÿฟโ€๐Ÿซ|๐Ÿ‘จ๐Ÿปโ€๐Ÿซ|๐Ÿ‘จ๐Ÿผโ€๐Ÿซ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿซ|๐Ÿ‘จ๐Ÿพโ€๐Ÿซ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿซ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿซ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿซ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿซ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿซ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿซ|๐Ÿง‘๐Ÿปโ€โš–๏ธ|๐Ÿง‘๐Ÿผโ€โš–๏ธ|๐Ÿง‘๐Ÿฝโ€โš–๏ธ|๐Ÿง‘๐Ÿพโ€โš–๏ธ|๐Ÿง‘๐Ÿฟโ€โš–๏ธ|๐Ÿ‘จ๐Ÿปโ€โš–๏ธ|๐Ÿ‘จ๐Ÿผโ€โš–๏ธ|๐Ÿ‘จ๐Ÿฝโ€โš–๏ธ|๐Ÿ‘จ๐Ÿพโ€โš–๏ธ|๐Ÿ‘จ๐Ÿฟโ€โš–๏ธ|๐Ÿ‘ฉ๐Ÿปโ€โš–๏ธ|๐Ÿ‘ฉ๐Ÿผโ€โš–๏ธ|๐Ÿ‘ฉ๐Ÿฝโ€โš–๏ธ|๐Ÿ‘ฉ๐Ÿพโ€โš–๏ธ|๐Ÿ‘ฉ๐Ÿฟโ€โš–๏ธ|๐Ÿง‘๐Ÿปโ€๐ŸŒพ|๐Ÿง‘๐Ÿผโ€๐ŸŒพ|๐Ÿง‘๐Ÿฝโ€๐ŸŒพ|๐Ÿง‘๐Ÿพโ€๐ŸŒพ|๐Ÿง‘๐Ÿฟโ€๐ŸŒพ|๐Ÿ‘จ๐Ÿปโ€๐ŸŒพ|๐Ÿ‘จ๐Ÿผโ€๐ŸŒพ|๐Ÿ‘จ๐Ÿฝโ€๐ŸŒพ|๐Ÿ‘จ๐Ÿพโ€๐ŸŒพ|๐Ÿ‘จ๐Ÿฟโ€๐ŸŒพ|๐Ÿ‘ฉ๐Ÿปโ€๐ŸŒพ|๐Ÿ‘ฉ๐Ÿผโ€๐ŸŒพ|๐Ÿ‘ฉ๐Ÿฝโ€๐ŸŒพ|๐Ÿ‘ฉ๐Ÿพโ€๐ŸŒพ|๐Ÿ‘ฉ๐Ÿฟโ€๐ŸŒพ|๐Ÿง‘๐Ÿปโ€๐Ÿณ|๐Ÿง‘๐Ÿผโ€๐Ÿณ|๐Ÿง‘๐Ÿฝโ€๐Ÿณ|๐Ÿง‘๐Ÿพโ€๐Ÿณ|๐Ÿง‘๐Ÿฟโ€๐Ÿณ|๐Ÿ‘จ๐Ÿปโ€๐Ÿณ|๐Ÿ‘จ๐Ÿผโ€๐Ÿณ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿณ|๐Ÿ‘จ๐Ÿพโ€๐Ÿณ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿณ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿณ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿณ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿณ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿณ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿณ|๐Ÿง‘๐Ÿปโ€๐Ÿ”ง|๐Ÿง‘๐Ÿผโ€๐Ÿ”ง|๐Ÿง‘๐Ÿฝโ€๐Ÿ”ง|๐Ÿง‘๐Ÿพโ€๐Ÿ”ง|๐Ÿง‘๐Ÿฟโ€๐Ÿ”ง|๐Ÿ‘จ๐Ÿปโ€๐Ÿ”ง|๐Ÿ‘จ๐Ÿผโ€๐Ÿ”ง|๐Ÿ‘จ๐Ÿฝโ€๐Ÿ”ง|๐Ÿ‘จ๐Ÿพโ€๐Ÿ”ง|๐Ÿ‘จ๐Ÿฟโ€๐Ÿ”ง|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ”ง|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿ”ง|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿ”ง|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿ”ง|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿ”ง|๐Ÿง‘๐Ÿปโ€๐Ÿญ|๐Ÿง‘๐Ÿผโ€๐Ÿญ|๐Ÿง‘๐Ÿฝโ€๐Ÿญ|๐Ÿง‘๐Ÿพโ€๐Ÿญ|๐Ÿง‘๐Ÿฟโ€๐Ÿญ|๐Ÿ‘จ๐Ÿปโ€๐Ÿญ|๐Ÿ‘จ๐Ÿผโ€๐Ÿญ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿญ|๐Ÿ‘จ๐Ÿพโ€๐Ÿญ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿญ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿญ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿญ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿญ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿญ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿญ|๐Ÿง‘๐Ÿปโ€๐Ÿ’ผ|๐Ÿง‘๐Ÿผโ€๐Ÿ’ผ|๐Ÿง‘๐Ÿฝโ€๐Ÿ’ผ|๐Ÿง‘๐Ÿพโ€๐Ÿ’ผ|๐Ÿง‘๐Ÿฟโ€๐Ÿ’ผ|๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ผ|๐Ÿ‘จ๐Ÿผโ€๐Ÿ’ผ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿ’ผ|๐Ÿ‘จ๐Ÿพโ€๐Ÿ’ผ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿ’ผ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ผ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿ’ผ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿ’ผ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿ’ผ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿ’ผ|๐Ÿง‘๐Ÿปโ€๐Ÿ”ฌ|๐Ÿง‘๐Ÿผโ€๐Ÿ”ฌ|๐Ÿง‘๐Ÿฝโ€๐Ÿ”ฌ|๐Ÿง‘๐Ÿพโ€๐Ÿ”ฌ|๐Ÿง‘๐Ÿฟโ€๐Ÿ”ฌ|๐Ÿ‘จ๐Ÿปโ€๐Ÿ”ฌ|๐Ÿ‘จ๐Ÿผโ€๐Ÿ”ฌ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿ”ฌ|๐Ÿ‘จ๐Ÿพโ€๐Ÿ”ฌ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿ”ฌ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ”ฌ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿ”ฌ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿ”ฌ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿ”ฌ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿ”ฌ|๐Ÿง‘๐Ÿปโ€๐Ÿ’ป|๐Ÿง‘๐Ÿผโ€๐Ÿ’ป|๐Ÿง‘๐Ÿฝโ€๐Ÿ’ป|๐Ÿง‘๐Ÿพโ€๐Ÿ’ป|๐Ÿง‘๐Ÿฟโ€๐Ÿ’ป|๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป|๐Ÿ‘จ๐Ÿผโ€๐Ÿ’ป|๐Ÿ‘จ๐Ÿฝโ€๐Ÿ’ป|๐Ÿ‘จ๐Ÿพโ€๐Ÿ’ป|๐Ÿ‘จ๐Ÿฟโ€๐Ÿ’ป|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿ’ป|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿ’ป|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿ’ป|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿ’ป|๐Ÿง‘๐Ÿปโ€๐ŸŽค|๐Ÿง‘๐Ÿผโ€๐ŸŽค|๐Ÿง‘๐Ÿฝโ€๐ŸŽค|๐Ÿง‘๐Ÿพโ€๐ŸŽค|๐Ÿง‘๐Ÿฟโ€๐ŸŽค|๐Ÿ‘จ๐Ÿปโ€๐ŸŽค|๐Ÿ‘จ๐Ÿผโ€๐ŸŽค|๐Ÿ‘จ๐Ÿฝโ€๐ŸŽค|๐Ÿ‘จ๐Ÿพโ€๐ŸŽค|๐Ÿ‘จ๐Ÿฟโ€๐ŸŽค|๐Ÿ‘ฉ๐Ÿปโ€๐ŸŽค|๐Ÿ‘ฉ๐Ÿผโ€๐ŸŽค|๐Ÿ‘ฉ๐Ÿฝโ€๐ŸŽค|๐Ÿ‘ฉ๐Ÿพโ€๐ŸŽค|๐Ÿ‘ฉ๐Ÿฟโ€๐ŸŽค|๐Ÿง‘๐Ÿปโ€๐ŸŽจ|๐Ÿง‘๐Ÿผโ€๐ŸŽจ|๐Ÿง‘๐Ÿฝโ€๐ŸŽจ|๐Ÿง‘๐Ÿพโ€๐ŸŽจ|๐Ÿง‘๐Ÿฟโ€๐ŸŽจ|๐Ÿ‘จ๐Ÿปโ€๐ŸŽจ|๐Ÿ‘จ๐Ÿผโ€๐ŸŽจ|๐Ÿ‘จ๐Ÿฝโ€๐ŸŽจ|๐Ÿ‘จ๐Ÿพโ€๐ŸŽจ|๐Ÿ‘จ๐Ÿฟโ€๐ŸŽจ|๐Ÿ‘ฉ๐Ÿปโ€๐ŸŽจ|๐Ÿ‘ฉ๐Ÿผโ€๐ŸŽจ|๐Ÿ‘ฉ๐Ÿฝโ€๐ŸŽจ|๐Ÿ‘ฉ๐Ÿพโ€๐ŸŽจ|๐Ÿ‘ฉ๐Ÿฟโ€๐ŸŽจ|๐Ÿง‘๐Ÿปโ€โœˆ๏ธ|๐Ÿง‘๐Ÿผโ€โœˆ๏ธ|๐Ÿง‘๐Ÿฝโ€โœˆ๏ธ|๐Ÿง‘๐Ÿพโ€โœˆ๏ธ|๐Ÿง‘๐Ÿฟโ€โœˆ๏ธ|๐Ÿ‘จ๐Ÿปโ€โœˆ๏ธ|๐Ÿ‘จ๐Ÿผโ€โœˆ๏ธ|๐Ÿ‘จ๐Ÿฝโ€โœˆ๏ธ|๐Ÿ‘จ๐Ÿพโ€โœˆ๏ธ|๐Ÿ‘จ๐Ÿฟโ€โœˆ๏ธ|๐Ÿ‘ฉ๐Ÿปโ€โœˆ๏ธ|๐Ÿ‘ฉ๐Ÿผโ€โœˆ๏ธ|๐Ÿ‘ฉ๐Ÿฝโ€โœˆ๏ธ|๐Ÿ‘ฉ๐Ÿพโ€โœˆ๏ธ|๐Ÿ‘ฉ๐Ÿฟโ€โœˆ๏ธ|๐Ÿง‘๐Ÿปโ€๐Ÿš€|๐Ÿง‘๐Ÿผโ€๐Ÿš€|๐Ÿง‘๐Ÿฝโ€๐Ÿš€|๐Ÿง‘๐Ÿพโ€๐Ÿš€|๐Ÿง‘๐Ÿฟโ€๐Ÿš€|๐Ÿ‘จ๐Ÿปโ€๐Ÿš€|๐Ÿ‘จ๐Ÿผโ€๐Ÿš€|๐Ÿ‘จ๐Ÿฝโ€๐Ÿš€|๐Ÿ‘จ๐Ÿพโ€๐Ÿš€|๐Ÿ‘จ๐Ÿฟโ€๐Ÿš€|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿš€|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿš€|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿš€|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿš€|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿš€|๐Ÿง‘๐Ÿปโ€๐Ÿš’|๐Ÿง‘๐Ÿผโ€๐Ÿš’|๐Ÿง‘๐Ÿฝโ€๐Ÿš’|๐Ÿง‘๐Ÿพโ€๐Ÿš’|๐Ÿง‘๐Ÿฟโ€๐Ÿš’|๐Ÿ‘จ๐Ÿปโ€๐Ÿš’|๐Ÿ‘จ๐Ÿผโ€๐Ÿš’|๐Ÿ‘จ๐Ÿฝโ€๐Ÿš’|๐Ÿ‘จ๐Ÿพโ€๐Ÿš’|๐Ÿ‘จ๐Ÿฟโ€๐Ÿš’|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿš’|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿš’|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿš’|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿš’|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿš’|๐Ÿ‘ฎ๐Ÿปโ€โ™‚๏ธ|๐Ÿ‘ฎ๐Ÿผโ€โ™‚๏ธ|๐Ÿ‘ฎ๐Ÿฝโ€โ™‚๏ธ|๐Ÿ‘ฎ๐Ÿพโ€โ™‚๏ธ|๐Ÿ‘ฎ๐Ÿฟโ€โ™‚๏ธ|๐Ÿ‘ฎ๐Ÿปโ€โ™€๏ธ|๐Ÿ‘ฎ๐Ÿผโ€โ™€๏ธ|๐Ÿ‘ฎ๐Ÿฝโ€โ™€๏ธ|๐Ÿ‘ฎ๐Ÿพโ€โ™€๏ธ|๐Ÿ‘ฎ๐Ÿฟโ€โ™€๏ธ|๐Ÿ•ต๐Ÿปโ€โ™‚๏ธ|๐Ÿ•ต๐Ÿผโ€โ™‚๏ธ|๐Ÿ•ต๐Ÿฝโ€โ™‚๏ธ|๐Ÿ•ต๐Ÿพโ€โ™‚๏ธ|๐Ÿ•ต๐Ÿฟโ€โ™‚๏ธ|๐Ÿ•ต๐Ÿปโ€โ™€๏ธ|๐Ÿ•ต๐Ÿผโ€โ™€๏ธ|๐Ÿ•ต๐Ÿฝโ€โ™€๏ธ|๐Ÿ•ต๐Ÿพโ€โ™€๏ธ|๐Ÿ•ต๐Ÿฟโ€โ™€๏ธ|๐Ÿ’‚๐Ÿปโ€โ™‚๏ธ|๐Ÿ’‚๐Ÿผโ€โ™‚๏ธ|๐Ÿ’‚๐Ÿฝโ€โ™‚๏ธ|๐Ÿ’‚๐Ÿพโ€โ™‚๏ธ|๐Ÿ’‚๐Ÿฟโ€โ™‚๏ธ|๐Ÿ’‚๐Ÿปโ€โ™€๏ธ|๐Ÿ’‚๐Ÿผโ€โ™€๏ธ|๐Ÿ’‚๐Ÿฝโ€โ™€๏ธ|๐Ÿ’‚๐Ÿพโ€โ™€๏ธ|๐Ÿ’‚๐Ÿฟโ€โ™€๏ธ|๐Ÿ‘ท๐Ÿปโ€โ™‚๏ธ|๐Ÿ‘ท๐Ÿผโ€โ™‚๏ธ|๐Ÿ‘ท๐Ÿฝโ€โ™‚๏ธ|๐Ÿ‘ท๐Ÿพโ€โ™‚๏ธ|๐Ÿ‘ท๐Ÿฟโ€โ™‚๏ธ|๐Ÿ‘ท๐Ÿปโ€โ™€๏ธ|๐Ÿ‘ท๐Ÿผโ€โ™€๏ธ|๐Ÿ‘ท๐Ÿฝโ€โ™€๏ธ|๐Ÿ‘ท๐Ÿพโ€โ™€๏ธ|๐Ÿ‘ท๐Ÿฟโ€โ™€๏ธ|๐Ÿ‘ณ๐Ÿปโ€โ™‚๏ธ|๐Ÿ‘ณ๐Ÿผโ€โ™‚๏ธ|๐Ÿ‘ณ๐Ÿฝโ€โ™‚๏ธ|๐Ÿ‘ณ๐Ÿพโ€โ™‚๏ธ|๐Ÿ‘ณ๐Ÿฟโ€โ™‚๏ธ|๐Ÿ‘ณ๐Ÿปโ€โ™€๏ธ|๐Ÿ‘ณ๐Ÿผโ€โ™€๏ธ|๐Ÿ‘ณ๐Ÿฝโ€โ™€๏ธ|๐Ÿ‘ณ๐Ÿพโ€โ™€๏ธ|๐Ÿ‘ณ๐Ÿฟโ€โ™€๏ธ|๐Ÿคต๐Ÿปโ€โ™‚๏ธ|๐Ÿคต๐Ÿผโ€โ™‚๏ธ|๐Ÿคต๐Ÿฝโ€โ™‚๏ธ|๐Ÿคต๐Ÿพโ€โ™‚๏ธ|๐Ÿคต๐Ÿฟโ€โ™‚๏ธ|๐Ÿคต๐Ÿปโ€โ™€๏ธ|๐Ÿคต๐Ÿผโ€โ™€๏ธ|๐Ÿคต๐Ÿฝโ€โ™€๏ธ|๐Ÿคต๐Ÿพโ€โ™€๏ธ|๐Ÿคต๐Ÿฟโ€โ™€๏ธ|๐Ÿ‘ฐ๐Ÿปโ€โ™‚๏ธ|๐Ÿ‘ฐ๐Ÿผโ€โ™‚๏ธ|๐Ÿ‘ฐ๐Ÿฝโ€โ™‚๏ธ|๐Ÿ‘ฐ๐Ÿพโ€โ™‚๏ธ|๐Ÿ‘ฐ๐Ÿฟโ€โ™‚๏ธ|๐Ÿ‘ฐ๐Ÿปโ€โ™€๏ธ|๐Ÿ‘ฐ๐Ÿผโ€โ™€๏ธ|๐Ÿ‘ฐ๐Ÿฝโ€โ™€๏ธ|๐Ÿ‘ฐ๐Ÿพโ€โ™€๏ธ|๐Ÿ‘ฐ๐Ÿฟโ€โ™€๏ธ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿผ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿผ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿผ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿผ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿผ|๐Ÿ‘จ๐Ÿปโ€๐Ÿผ|๐Ÿ‘จ๐Ÿผโ€๐Ÿผ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿผ|๐Ÿ‘จ๐Ÿพโ€๐Ÿผ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿผ|๐Ÿง‘๐Ÿปโ€๐Ÿผ|๐Ÿง‘๐Ÿผโ€๐Ÿผ|๐Ÿง‘๐Ÿฝโ€๐Ÿผ|๐Ÿง‘๐Ÿพโ€๐Ÿผ|๐Ÿง‘๐Ÿฟโ€๐Ÿผ|๐Ÿง‘๐Ÿปโ€๐ŸŽ„|๐Ÿง‘๐Ÿผโ€๐ŸŽ„|๐Ÿง‘๐Ÿฝโ€๐ŸŽ„|๐Ÿง‘๐Ÿพโ€๐ŸŽ„|๐Ÿง‘๐Ÿฟโ€๐ŸŽ„|๐Ÿฆธ๐Ÿปโ€โ™‚๏ธ|๐Ÿฆธ๐Ÿผโ€โ™‚๏ธ|๐Ÿฆธ๐Ÿฝโ€โ™‚๏ธ|๐Ÿฆธ๐Ÿพโ€โ™‚๏ธ|๐Ÿฆธ๐Ÿฟโ€โ™‚๏ธ|๐Ÿฆธ๐Ÿปโ€โ™€๏ธ|๐Ÿฆธ๐Ÿผโ€โ™€๏ธ|๐Ÿฆธ๐Ÿฝโ€โ™€๏ธ|๐Ÿฆธ๐Ÿพโ€โ™€๏ธ|๐Ÿฆธ๐Ÿฟโ€โ™€๏ธ|๐Ÿฆน๐Ÿปโ€โ™‚๏ธ|๐Ÿฆน๐Ÿผโ€โ™‚๏ธ|๐Ÿฆน๐Ÿฝโ€โ™‚๏ธ|๐Ÿฆน๐Ÿพโ€โ™‚๏ธ|๐Ÿฆน๐Ÿฟโ€โ™‚๏ธ|๐Ÿฆน๐Ÿปโ€โ™€๏ธ|๐Ÿฆน๐Ÿผโ€โ™€๏ธ|๐Ÿฆน๐Ÿฝโ€โ™€๏ธ|๐Ÿฆน๐Ÿพโ€โ™€๏ธ|๐Ÿฆน๐Ÿฟโ€โ™€๏ธ|๐Ÿง™๐Ÿปโ€โ™‚๏ธ|๐Ÿง™๐Ÿผโ€โ™‚๏ธ|๐Ÿง™๐Ÿฝโ€โ™‚๏ธ|๐Ÿง™๐Ÿพโ€โ™‚๏ธ|๐Ÿง™๐Ÿฟโ€โ™‚๏ธ|๐Ÿง™๐Ÿปโ€โ™€๏ธ|๐Ÿง™๐Ÿผโ€โ™€๏ธ|๐Ÿง™๐Ÿฝโ€โ™€๏ธ|๐Ÿง™๐Ÿพโ€โ™€๏ธ|๐Ÿง™๐Ÿฟโ€โ™€๏ธ|๐Ÿงš๐Ÿปโ€โ™‚๏ธ|๐Ÿงš๐Ÿผโ€โ™‚๏ธ|๐Ÿงš๐Ÿฝโ€โ™‚๏ธ|๐Ÿงš๐Ÿพโ€โ™‚๏ธ|๐Ÿงš๐Ÿฟโ€โ™‚๏ธ|๐Ÿงš๐Ÿปโ€โ™€๏ธ|๐Ÿงš๐Ÿผโ€โ™€๏ธ|๐Ÿงš๐Ÿฝโ€โ™€๏ธ|๐Ÿงš๐Ÿพโ€โ™€๏ธ|๐Ÿงš๐Ÿฟโ€โ™€๏ธ|๐Ÿง›๐Ÿปโ€โ™‚๏ธ|๐Ÿง›๐Ÿผโ€โ™‚๏ธ|๐Ÿง›๐Ÿฝโ€โ™‚๏ธ|๐Ÿง›๐Ÿพโ€โ™‚๏ธ|๐Ÿง›๐Ÿฟโ€โ™‚๏ธ|๐Ÿง›๐Ÿปโ€โ™€๏ธ|๐Ÿง›๐Ÿผโ€โ™€๏ธ|๐Ÿง›๐Ÿฝโ€โ™€๏ธ|๐Ÿง›๐Ÿพโ€โ™€๏ธ|๐Ÿง›๐Ÿฟโ€โ™€๏ธ|๐Ÿงœ๐Ÿปโ€โ™‚๏ธ|๐Ÿงœ๐Ÿผโ€โ™‚๏ธ|๐Ÿงœ๐Ÿฝโ€โ™‚๏ธ|๐Ÿงœ๐Ÿพโ€โ™‚๏ธ|๐Ÿงœ๐Ÿฟโ€โ™‚๏ธ|๐Ÿงœ๐Ÿปโ€โ™€๏ธ|๐Ÿงœ๐Ÿผโ€โ™€๏ธ|๐Ÿงœ๐Ÿฝโ€โ™€๏ธ|๐Ÿงœ๐Ÿพโ€โ™€๏ธ|๐Ÿงœ๐Ÿฟโ€โ™€๏ธ|๐Ÿง๐Ÿปโ€โ™‚๏ธ|๐Ÿง๐Ÿผโ€โ™‚๏ธ|๐Ÿง๐Ÿฝโ€โ™‚๏ธ|๐Ÿง๐Ÿพโ€โ™‚๏ธ|๐Ÿง๐Ÿฟโ€โ™‚๏ธ|๐Ÿง๐Ÿปโ€โ™€๏ธ|๐Ÿง๐Ÿผโ€โ™€๏ธ|๐Ÿง๐Ÿฝโ€โ™€๏ธ|๐Ÿง๐Ÿพโ€โ™€๏ธ|๐Ÿง๐Ÿฟโ€โ™€๏ธ|๐Ÿ’†๐Ÿปโ€โ™‚๏ธ|๐Ÿ’†๐Ÿผโ€โ™‚๏ธ|๐Ÿ’†๐Ÿฝโ€โ™‚๏ธ|๐Ÿ’†๐Ÿพโ€โ™‚๏ธ|๐Ÿ’†๐Ÿฟโ€โ™‚๏ธ|๐Ÿ’†๐Ÿปโ€โ™€๏ธ|๐Ÿ’†๐Ÿผโ€โ™€๏ธ|๐Ÿ’†๐Ÿฝโ€โ™€๏ธ|๐Ÿ’†๐Ÿพโ€โ™€๏ธ|๐Ÿ’†๐Ÿฟโ€โ™€๏ธ|๐Ÿ’‡๐Ÿปโ€โ™‚๏ธ|๐Ÿ’‡๐Ÿผโ€โ™‚๏ธ|๐Ÿ’‡๐Ÿฝโ€โ™‚๏ธ|๐Ÿ’‡๐Ÿพโ€โ™‚๏ธ|๐Ÿ’‡๐Ÿฟโ€โ™‚๏ธ|๐Ÿ’‡๐Ÿปโ€โ™€๏ธ|๐Ÿ’‡๐Ÿผโ€โ™€๏ธ|๐Ÿ’‡๐Ÿฝโ€โ™€๏ธ|๐Ÿ’‡๐Ÿพโ€โ™€๏ธ|๐Ÿ’‡๐Ÿฟโ€โ™€๏ธ|๐Ÿšถ๐Ÿปโ€โ™‚๏ธ|๐Ÿšถ๐Ÿผโ€โ™‚๏ธ|๐Ÿšถ๐Ÿฝโ€โ™‚๏ธ|๐Ÿšถ๐Ÿพโ€โ™‚๏ธ|๐Ÿšถ๐Ÿฟโ€โ™‚๏ธ|๐Ÿšถ๐Ÿปโ€โ™€๏ธ|๐Ÿšถ๐Ÿผโ€โ™€๏ธ|๐Ÿšถ๐Ÿฝโ€โ™€๏ธ|๐Ÿšถ๐Ÿพโ€โ™€๏ธ|๐Ÿšถ๐Ÿฟโ€โ™€๏ธ|๐Ÿง๐Ÿปโ€โ™‚๏ธ|๐Ÿง๐Ÿผโ€โ™‚๏ธ|๐Ÿง๐Ÿฝโ€โ™‚๏ธ|๐Ÿง๐Ÿพโ€โ™‚๏ธ|๐Ÿง๐Ÿฟโ€โ™‚๏ธ|๐Ÿง๐Ÿปโ€โ™€๏ธ|๐Ÿง๐Ÿผโ€โ™€๏ธ|๐Ÿง๐Ÿฝโ€โ™€๏ธ|๐Ÿง๐Ÿพโ€โ™€๏ธ|๐Ÿง๐Ÿฟโ€โ™€๏ธ|๐ŸงŽ๐Ÿปโ€โ™‚๏ธ|๐ŸงŽ๐Ÿผโ€โ™‚๏ธ|๐ŸงŽ๐Ÿฝโ€โ™‚๏ธ|๐ŸงŽ๐Ÿพโ€โ™‚๏ธ|๐ŸงŽ๐Ÿฟโ€โ™‚๏ธ|๐ŸงŽ๐Ÿปโ€โ™€๏ธ|๐ŸงŽ๐Ÿผโ€โ™€๏ธ|๐ŸงŽ๐Ÿฝโ€โ™€๏ธ|๐ŸงŽ๐Ÿพโ€โ™€๏ธ|๐ŸงŽ๐Ÿฟโ€โ™€๏ธ|๐Ÿง‘๐Ÿปโ€๐Ÿฆฏ|๐Ÿง‘๐Ÿผโ€๐Ÿฆฏ|๐Ÿง‘๐Ÿฝโ€๐Ÿฆฏ|๐Ÿง‘๐Ÿพโ€๐Ÿฆฏ|๐Ÿง‘๐Ÿฟโ€๐Ÿฆฏ|๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฏ|๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฏ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฏ|๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฏ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฏ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฏ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฏ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฏ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฏ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฏ|๐Ÿง‘๐Ÿปโ€๐Ÿฆผ|๐Ÿง‘๐Ÿผโ€๐Ÿฆผ|๐Ÿง‘๐Ÿฝโ€๐Ÿฆผ|๐Ÿง‘๐Ÿพโ€๐Ÿฆผ|๐Ÿง‘๐Ÿฟโ€๐Ÿฆผ|๐Ÿ‘จ๐Ÿปโ€๐Ÿฆผ|๐Ÿ‘จ๐Ÿผโ€๐Ÿฆผ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆผ|๐Ÿ‘จ๐Ÿพโ€๐Ÿฆผ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆผ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆผ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆผ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆผ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆผ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆผ|๐Ÿง‘๐Ÿปโ€๐Ÿฆฝ|๐Ÿง‘๐Ÿผโ€๐Ÿฆฝ|๐Ÿง‘๐Ÿฝโ€๐Ÿฆฝ|๐Ÿง‘๐Ÿพโ€๐Ÿฆฝ|๐Ÿง‘๐Ÿฟโ€๐Ÿฆฝ|๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฝ|๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฝ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฝ|๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฝ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฝ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฝ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฝ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฝ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฝ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฝ|๐Ÿƒ๐Ÿปโ€โ™‚๏ธ|๐Ÿƒ๐Ÿผโ€โ™‚๏ธ|๐Ÿƒ๐Ÿฝโ€โ™‚๏ธ|๐Ÿƒ๐Ÿพโ€โ™‚๏ธ|๐Ÿƒ๐Ÿฟโ€โ™‚๏ธ|๐Ÿƒ๐Ÿปโ€โ™€๏ธ|๐Ÿƒ๐Ÿผโ€โ™€๏ธ|๐Ÿƒ๐Ÿฝโ€โ™€๏ธ|๐Ÿƒ๐Ÿพโ€โ™€๏ธ|๐Ÿƒ๐Ÿฟโ€โ™€๏ธ|๐Ÿง–๐Ÿปโ€โ™‚๏ธ|๐Ÿง–๐Ÿผโ€โ™‚๏ธ|๐Ÿง–๐Ÿฝโ€โ™‚๏ธ|๐Ÿง–๐Ÿพโ€โ™‚๏ธ|๐Ÿง–๐Ÿฟโ€โ™‚๏ธ|๐Ÿง–๐Ÿปโ€โ™€๏ธ|๐Ÿง–๐Ÿผโ€โ™€๏ธ|๐Ÿง–๐Ÿฝโ€โ™€๏ธ|๐Ÿง–๐Ÿพโ€โ™€๏ธ|๐Ÿง–๐Ÿฟโ€โ™€๏ธ|๐Ÿง—๐Ÿปโ€โ™‚๏ธ|๐Ÿง—๐Ÿผโ€โ™‚๏ธ|๐Ÿง—๐Ÿฝโ€โ™‚๏ธ|๐Ÿง—๐Ÿพโ€โ™‚๏ธ|๐Ÿง—๐Ÿฟโ€โ™‚๏ธ|๐Ÿง—๐Ÿปโ€โ™€๏ธ|๐Ÿง—๐Ÿผโ€โ™€๏ธ|๐Ÿง—๐Ÿฝโ€โ™€๏ธ|๐Ÿง—๐Ÿพโ€โ™€๏ธ|๐Ÿง—๐Ÿฟโ€โ™€๏ธ|๐ŸŒ๐Ÿปโ€โ™‚๏ธ|๐ŸŒ๐Ÿผโ€โ™‚๏ธ|๐ŸŒ๐Ÿฝโ€โ™‚๏ธ|๐ŸŒ๐Ÿพโ€โ™‚๏ธ|๐ŸŒ๐Ÿฟโ€โ™‚๏ธ|๐ŸŒ๐Ÿปโ€โ™€๏ธ|๐ŸŒ๐Ÿผโ€โ™€๏ธ|๐ŸŒ๐Ÿฝโ€โ™€๏ธ|๐ŸŒ๐Ÿพโ€โ™€๏ธ|๐ŸŒ๐Ÿฟโ€โ™€๏ธ|๐Ÿ„๐Ÿปโ€โ™‚๏ธ|๐Ÿ„๐Ÿผโ€โ™‚๏ธ|๐Ÿ„๐Ÿฝโ€โ™‚๏ธ|๐Ÿ„๐Ÿพโ€โ™‚๏ธ|๐Ÿ„๐Ÿฟโ€โ™‚๏ธ|๐Ÿ„๐Ÿปโ€โ™€๏ธ|๐Ÿ„๐Ÿผโ€โ™€๏ธ|๐Ÿ„๐Ÿฝโ€โ™€๏ธ|๐Ÿ„๐Ÿพโ€โ™€๏ธ|๐Ÿ„๐Ÿฟโ€โ™€๏ธ|๐Ÿšฃ๐Ÿปโ€โ™‚๏ธ|๐Ÿšฃ๐Ÿผโ€โ™‚๏ธ|๐Ÿšฃ๐Ÿฝโ€โ™‚๏ธ|๐Ÿšฃ๐Ÿพโ€โ™‚๏ธ|๐Ÿšฃ๐Ÿฟโ€โ™‚๏ธ|๐Ÿšฃ๐Ÿปโ€โ™€๏ธ|๐Ÿšฃ๐Ÿผโ€โ™€๏ธ|๐Ÿšฃ๐Ÿฝโ€โ™€๏ธ|๐Ÿšฃ๐Ÿพโ€โ™€๏ธ|๐Ÿšฃ๐Ÿฟโ€โ™€๏ธ|๐ŸŠ๐Ÿปโ€โ™‚๏ธ|๐ŸŠ๐Ÿผโ€โ™‚๏ธ|๐ŸŠ๐Ÿฝโ€โ™‚๏ธ|๐ŸŠ๐Ÿพโ€โ™‚๏ธ|๐ŸŠ๐Ÿฟโ€โ™‚๏ธ|๐ŸŠ๐Ÿปโ€โ™€๏ธ|๐ŸŠ๐Ÿผโ€โ™€๏ธ|๐ŸŠ๐Ÿฝโ€โ™€๏ธ|๐ŸŠ๐Ÿพโ€โ™€๏ธ|๐ŸŠ๐Ÿฟโ€โ™€๏ธ|๐Ÿ‹๐Ÿปโ€โ™‚๏ธ|๐Ÿ‹๐Ÿผโ€โ™‚๏ธ|๐Ÿ‹๐Ÿฝโ€โ™‚๏ธ|๐Ÿ‹๐Ÿพโ€โ™‚๏ธ|๐Ÿ‹๐Ÿฟโ€โ™‚๏ธ|๐Ÿ‹๐Ÿปโ€โ™€๏ธ|๐Ÿ‹๐Ÿผโ€โ™€๏ธ|๐Ÿ‹๐Ÿฝโ€โ™€๏ธ|๐Ÿ‹๐Ÿพโ€โ™€๏ธ|๐Ÿ‹๐Ÿฟโ€โ™€๏ธ|๐Ÿšด๐Ÿปโ€โ™‚๏ธ|๐Ÿšด๐Ÿผโ€โ™‚๏ธ|๐Ÿšด๐Ÿฝโ€โ™‚๏ธ|๐Ÿšด๐Ÿพโ€โ™‚๏ธ|๐Ÿšด๐Ÿฟโ€โ™‚๏ธ|๐Ÿšด๐Ÿปโ€โ™€๏ธ|๐Ÿšด๐Ÿผโ€โ™€๏ธ|๐Ÿšด๐Ÿฝโ€โ™€๏ธ|๐Ÿšด๐Ÿพโ€โ™€๏ธ|๐Ÿšด๐Ÿฟโ€โ™€๏ธ|๐Ÿšต๐Ÿปโ€โ™‚๏ธ|๐Ÿšต๐Ÿผโ€โ™‚๏ธ|๐Ÿšต๐Ÿฝโ€โ™‚๏ธ|๐Ÿšต๐Ÿพโ€โ™‚๏ธ|๐Ÿšต๐Ÿฟโ€โ™‚๏ธ|๐Ÿšต๐Ÿปโ€โ™€๏ธ|๐Ÿšต๐Ÿผโ€โ™€๏ธ|๐Ÿšต๐Ÿฝโ€โ™€๏ธ|๐Ÿšต๐Ÿพโ€โ™€๏ธ|๐Ÿšต๐Ÿฟโ€โ™€๏ธ|๐Ÿคธ๐Ÿปโ€โ™‚๏ธ|๐Ÿคธ๐Ÿผโ€โ™‚๏ธ|๐Ÿคธ๐Ÿฝโ€โ™‚๏ธ|๐Ÿคธ๐Ÿพโ€โ™‚๏ธ|๐Ÿคธ๐Ÿฟโ€โ™‚๏ธ|๐Ÿคธ๐Ÿปโ€โ™€๏ธ|๐Ÿคธ๐Ÿผโ€โ™€๏ธ|๐Ÿคธ๐Ÿฝโ€โ™€๏ธ|๐Ÿคธ๐Ÿพโ€โ™€๏ธ|๐Ÿคธ๐Ÿฟโ€โ™€๏ธ|๐Ÿคฝ๐Ÿปโ€โ™‚๏ธ|๐Ÿคฝ๐Ÿผโ€โ™‚๏ธ|๐Ÿคฝ๐Ÿฝโ€โ™‚๏ธ|๐Ÿคฝ๐Ÿพโ€โ™‚๏ธ|๐Ÿคฝ๐Ÿฟโ€โ™‚๏ธ|๐Ÿคฝ๐Ÿปโ€โ™€๏ธ|๐Ÿคฝ๐Ÿผโ€โ™€๏ธ|๐Ÿคฝ๐Ÿฝโ€โ™€๏ธ|๐Ÿคฝ๐Ÿพโ€โ™€๏ธ|๐Ÿคฝ๐Ÿฟโ€โ™€๏ธ|๐Ÿคพ๐Ÿปโ€โ™‚๏ธ|๐Ÿคพ๐Ÿผโ€โ™‚๏ธ|๐Ÿคพ๐Ÿฝโ€โ™‚๏ธ|๐Ÿคพ๐Ÿพโ€โ™‚๏ธ|๐Ÿคพ๐Ÿฟโ€โ™‚๏ธ|๐Ÿคพ๐Ÿปโ€โ™€๏ธ|๐Ÿคพ๐Ÿผโ€โ™€๏ธ|๐Ÿคพ๐Ÿฝโ€โ™€๏ธ|๐Ÿคพ๐Ÿพโ€โ™€๏ธ|๐Ÿคพ๐Ÿฟโ€โ™€๏ธ|๐Ÿคน๐Ÿปโ€โ™‚๏ธ|๐Ÿคน๐Ÿผโ€โ™‚๏ธ|๐Ÿคน๐Ÿฝโ€โ™‚๏ธ|๐Ÿคน๐Ÿพโ€โ™‚๏ธ|๐Ÿคน๐Ÿฟโ€โ™‚๏ธ|๐Ÿคน๐Ÿปโ€โ™€๏ธ|๐Ÿคน๐Ÿผโ€โ™€๏ธ|๐Ÿคน๐Ÿฝโ€โ™€๏ธ|๐Ÿคน๐Ÿพโ€โ™€๏ธ|๐Ÿคน๐Ÿฟโ€โ™€๏ธ|๐Ÿง˜๐Ÿปโ€โ™‚๏ธ|๐Ÿง˜๐Ÿผโ€โ™‚๏ธ|๐Ÿง˜๐Ÿฝโ€โ™‚๏ธ|๐Ÿง˜๐Ÿพโ€โ™‚๏ธ|๐Ÿง˜๐Ÿฟโ€โ™‚๏ธ|๐Ÿง˜๐Ÿปโ€โ™€๏ธ|๐Ÿง˜๐Ÿผโ€โ™€๏ธ|๐Ÿง˜๐Ÿฝโ€โ™€๏ธ|๐Ÿง˜๐Ÿพโ€โ™€๏ธ|๐Ÿง˜๐Ÿฟโ€โ™€๏ธ|๐Ÿ˜ถโ€๐ŸŒซ๏ธ|๐Ÿ•ต๏ธโ€โ™‚๏ธ|๐Ÿ•ต๏ธโ€โ™€๏ธ|๐ŸŒ๏ธโ€โ™‚๏ธ|๐ŸŒ๏ธโ€โ™€๏ธ|๐Ÿ‹๏ธโ€โ™‚๏ธ|๐Ÿ‹๏ธโ€โ™€๏ธ|๐Ÿณ๏ธโ€๐ŸŒˆ|๐Ÿณ๏ธโ€โšง๏ธ|โ›น๐Ÿปโ€โ™‚๏ธ|โ›น๐Ÿผโ€โ™‚๏ธ|โ›น๐Ÿฝโ€โ™‚๏ธ|โ›น๐Ÿพโ€โ™‚๏ธ|โ›น๐Ÿฟโ€โ™‚๏ธ|โ›น๐Ÿปโ€โ™€๏ธ|โ›น๐Ÿผโ€โ™€๏ธ|โ›น๐Ÿฝโ€โ™€๏ธ|โ›น๐Ÿพโ€โ™€๏ธ|โ›น๐Ÿฟโ€โ™€๏ธ|๐Ÿ˜ฎโ€๐Ÿ’จ|๐Ÿ˜ตโ€๐Ÿ’ซ|โค๏ธโ€๐Ÿ”ฅ|โค๏ธโ€๐Ÿฉน|๐Ÿง”โ€โ™‚๏ธ|๐Ÿง”โ€โ™€๏ธ|๐Ÿ‘จโ€๐Ÿฆฐ|๐Ÿ‘จโ€๐Ÿฆฑ|๐Ÿ‘จโ€๐Ÿฆณ|๐Ÿ‘จโ€๐Ÿฆฒ|๐Ÿ‘ฉโ€๐Ÿฆฐ|๐Ÿง‘โ€๐Ÿฆฐ|๐Ÿ‘ฉโ€๐Ÿฆฑ|๐Ÿง‘โ€๐Ÿฆฑ|๐Ÿ‘ฉโ€๐Ÿฆณ|๐Ÿง‘โ€๐Ÿฆณ|๐Ÿ‘ฉโ€๐Ÿฆฒ|๐Ÿง‘โ€๐Ÿฆฒ|๐Ÿ‘ฑโ€โ™€๏ธ|๐Ÿ‘ฑโ€โ™‚๏ธ|๐Ÿ™โ€โ™‚๏ธ|๐Ÿ™โ€โ™€๏ธ|๐Ÿ™Žโ€โ™‚๏ธ|๐Ÿ™Žโ€โ™€๏ธ|๐Ÿ™…โ€โ™‚๏ธ|๐Ÿ™…โ€โ™€๏ธ|๐Ÿ™†โ€โ™‚๏ธ|๐Ÿ™†โ€โ™€๏ธ|๐Ÿ’โ€โ™‚๏ธ|๐Ÿ’โ€โ™€๏ธ|๐Ÿ™‹โ€โ™‚๏ธ|๐Ÿ™‹โ€โ™€๏ธ|๐Ÿงโ€โ™‚๏ธ|๐Ÿงโ€โ™€๏ธ|๐Ÿ™‡โ€โ™‚๏ธ|๐Ÿ™‡โ€โ™€๏ธ|๐Ÿคฆโ€โ™‚๏ธ|๐Ÿคฆโ€โ™€๏ธ|๐Ÿคทโ€โ™‚๏ธ|๐Ÿคทโ€โ™€๏ธ|๐Ÿง‘โ€โš•๏ธ|๐Ÿ‘จโ€โš•๏ธ|๐Ÿ‘ฉโ€โš•๏ธ|๐Ÿง‘โ€๐ŸŽ“|๐Ÿ‘จโ€๐ŸŽ“|๐Ÿ‘ฉโ€๐ŸŽ“|๐Ÿง‘โ€๐Ÿซ|๐Ÿ‘จโ€๐Ÿซ|๐Ÿ‘ฉโ€๐Ÿซ|๐Ÿง‘โ€โš–๏ธ|๐Ÿ‘จโ€โš–๏ธ|๐Ÿ‘ฉโ€โš–๏ธ|๐Ÿง‘โ€๐ŸŒพ|๐Ÿ‘จโ€๐ŸŒพ|๐Ÿ‘ฉโ€๐ŸŒพ|๐Ÿง‘โ€๐Ÿณ|๐Ÿ‘จโ€๐Ÿณ|๐Ÿ‘ฉโ€๐Ÿณ|๐Ÿง‘โ€๐Ÿ”ง|๐Ÿ‘จโ€๐Ÿ”ง|๐Ÿ‘ฉโ€๐Ÿ”ง|๐Ÿง‘โ€๐Ÿญ|๐Ÿ‘จโ€๐Ÿญ|๐Ÿ‘ฉโ€๐Ÿญ|๐Ÿง‘โ€๐Ÿ’ผ|๐Ÿ‘จโ€๐Ÿ’ผ|๐Ÿ‘ฉโ€๐Ÿ’ผ|๐Ÿง‘โ€๐Ÿ”ฌ|๐Ÿ‘จโ€๐Ÿ”ฌ|๐Ÿ‘ฉโ€๐Ÿ”ฌ|๐Ÿง‘โ€๐Ÿ’ป|๐Ÿ‘จโ€๐Ÿ’ป|๐Ÿ‘ฉโ€๐Ÿ’ป|๐Ÿง‘โ€๐ŸŽค|๐Ÿ‘จโ€๐ŸŽค|๐Ÿ‘ฉโ€๐ŸŽค|๐Ÿง‘โ€๐ŸŽจ|๐Ÿ‘จโ€๐ŸŽจ|๐Ÿ‘ฉโ€๐ŸŽจ|๐Ÿง‘โ€โœˆ๏ธ|๐Ÿ‘จโ€โœˆ๏ธ|๐Ÿ‘ฉโ€โœˆ๏ธ|๐Ÿง‘โ€๐Ÿš€|๐Ÿ‘จโ€๐Ÿš€|๐Ÿ‘ฉโ€๐Ÿš€|๐Ÿง‘โ€๐Ÿš’|๐Ÿ‘จโ€๐Ÿš’|๐Ÿ‘ฉโ€๐Ÿš’|๐Ÿ‘ฎโ€โ™‚๏ธ|๐Ÿ‘ฎโ€โ™€๏ธ|๐Ÿ’‚โ€โ™‚๏ธ|๐Ÿ’‚โ€โ™€๏ธ|๐Ÿ‘ทโ€โ™‚๏ธ|๐Ÿ‘ทโ€โ™€๏ธ|๐Ÿ‘ณโ€โ™‚๏ธ|๐Ÿ‘ณโ€โ™€๏ธ|๐Ÿคตโ€โ™‚๏ธ|๐Ÿคตโ€โ™€๏ธ|๐Ÿ‘ฐโ€โ™‚๏ธ|๐Ÿ‘ฐโ€โ™€๏ธ|๐Ÿ‘ฉโ€๐Ÿผ|๐Ÿ‘จโ€๐Ÿผ|๐Ÿง‘โ€๐Ÿผ|๐Ÿง‘โ€๐ŸŽ„|๐Ÿฆธโ€โ™‚๏ธ|๐Ÿฆธโ€โ™€๏ธ|๐Ÿฆนโ€โ™‚๏ธ|๐Ÿฆนโ€โ™€๏ธ|๐Ÿง™โ€โ™‚๏ธ|๐Ÿง™โ€โ™€๏ธ|๐Ÿงšโ€โ™‚๏ธ|๐Ÿงšโ€โ™€๏ธ|๐Ÿง›โ€โ™‚๏ธ|๐Ÿง›โ€โ™€๏ธ|๐Ÿงœโ€โ™‚๏ธ|๐Ÿงœโ€โ™€๏ธ|๐Ÿงโ€โ™‚๏ธ|๐Ÿงโ€โ™€๏ธ|๐Ÿงžโ€โ™‚๏ธ|๐Ÿงžโ€โ™€๏ธ|๐ŸงŸโ€โ™‚๏ธ|๐ŸงŸโ€โ™€๏ธ|๐Ÿ’†โ€โ™‚๏ธ|๐Ÿ’†โ€โ™€๏ธ|๐Ÿ’‡โ€โ™‚๏ธ|๐Ÿ’‡โ€โ™€๏ธ|๐Ÿšถโ€โ™‚๏ธ|๐Ÿšถโ€โ™€๏ธ|๐Ÿงโ€โ™‚๏ธ|๐Ÿงโ€โ™€๏ธ|๐ŸงŽโ€โ™‚๏ธ|๐ŸงŽโ€โ™€๏ธ|๐Ÿง‘โ€๐Ÿฆฏ|๐Ÿ‘จโ€๐Ÿฆฏ|๐Ÿ‘ฉโ€๐Ÿฆฏ|๐Ÿง‘โ€๐Ÿฆผ|๐Ÿ‘จโ€๐Ÿฆผ|๐Ÿ‘ฉโ€๐Ÿฆผ|๐Ÿง‘โ€๐Ÿฆฝ|๐Ÿ‘จโ€๐Ÿฆฝ|๐Ÿ‘ฉโ€๐Ÿฆฝ|๐Ÿƒโ€โ™‚๏ธ|๐Ÿƒโ€โ™€๏ธ|๐Ÿ‘ฏโ€โ™‚๏ธ|๐Ÿ‘ฏโ€โ™€๏ธ|๐Ÿง–โ€โ™‚๏ธ|๐Ÿง–โ€โ™€๏ธ|๐Ÿง—โ€โ™‚๏ธ|๐Ÿง—โ€โ™€๏ธ|๐Ÿ„โ€โ™‚๏ธ|๐Ÿ„โ€โ™€๏ธ|๐Ÿšฃโ€โ™‚๏ธ|๐Ÿšฃโ€โ™€๏ธ|๐ŸŠโ€โ™‚๏ธ|๐ŸŠโ€โ™€๏ธ|โ›น๏ธโ€โ™‚๏ธ|โ›น๏ธโ€โ™€๏ธ|๐Ÿšดโ€โ™‚๏ธ|๐Ÿšดโ€โ™€๏ธ|๐Ÿšตโ€โ™‚๏ธ|๐Ÿšตโ€โ™€๏ธ|๐Ÿคธโ€โ™‚๏ธ|๐Ÿคธโ€โ™€๏ธ|๐Ÿคผโ€โ™‚๏ธ|๐Ÿคผโ€โ™€๏ธ|๐Ÿคฝโ€โ™‚๏ธ|๐Ÿคฝโ€โ™€๏ธ|๐Ÿคพโ€โ™‚๏ธ|๐Ÿคพโ€โ™€๏ธ|๐Ÿคนโ€โ™‚๏ธ|๐Ÿคนโ€โ™€๏ธ|๐Ÿง˜โ€โ™‚๏ธ|๐Ÿง˜โ€โ™€๏ธ|๐Ÿ‘จโ€๐Ÿ‘ฆ|๐Ÿ‘จโ€๐Ÿ‘ง|๐Ÿ‘ฉโ€๐Ÿ‘ฆ|๐Ÿ‘ฉโ€๐Ÿ‘ง|๐Ÿ•โ€๐Ÿฆบ|๐Ÿปโ€โ„๏ธ|๐Ÿดโ€โ˜ ๏ธ|๐Ÿˆโ€โฌ›|๐Ÿ‡ฆ๐Ÿ‡จ|๐Ÿ‡ฆ๐Ÿ‡ฉ|๐Ÿ‡ฆ๐Ÿ‡ช|๐Ÿ‡ฆ๐Ÿ‡ซ|๐Ÿ‡ฆ๐Ÿ‡ฌ|๐Ÿ‡ฆ๐Ÿ‡ฎ|๐Ÿ‡ฆ๐Ÿ‡ฑ|๐Ÿ‡ฆ๐Ÿ‡ฒ|๐Ÿ‡ฆ๐Ÿ‡ด|๐Ÿ‡ฆ๐Ÿ‡ถ|๐Ÿ‡ฆ๐Ÿ‡ท|๐Ÿ‡ฆ๐Ÿ‡ธ|๐Ÿ‡ฆ๐Ÿ‡น|๐Ÿ‡ฆ๐Ÿ‡บ|๐Ÿ‡ฆ๐Ÿ‡ผ|๐Ÿ‡ฆ๐Ÿ‡ฝ|๐Ÿ‡ฆ๐Ÿ‡ฟ|๐Ÿ‡ง๐Ÿ‡ฆ|๐Ÿ‡ง๐Ÿ‡ง|๐Ÿ‡ง๐Ÿ‡ฉ|๐Ÿ‡ง๐Ÿ‡ช|๐Ÿ‡ง๐Ÿ‡ซ|๐Ÿ‡ง๐Ÿ‡ฌ|๐Ÿ‡ง๐Ÿ‡ญ|๐Ÿ‡ง๐Ÿ‡ฎ|๐Ÿ‡ง๐Ÿ‡ฏ|๐Ÿ‡ง๐Ÿ‡ฑ|๐Ÿ‡ง๐Ÿ‡ฒ|๐Ÿ‡ง๐Ÿ‡ณ|๐Ÿ‡ง๐Ÿ‡ด|๐Ÿ‡ง๐Ÿ‡ถ|๐Ÿ‡ง๐Ÿ‡ท|๐Ÿ‡ง๐Ÿ‡ธ|๐Ÿ‡ง๐Ÿ‡น|๐Ÿ‡ง๐Ÿ‡ป|๐Ÿ‡ง๐Ÿ‡ผ|๐Ÿ‡ง๐Ÿ‡พ|๐Ÿ‡ง๐Ÿ‡ฟ|๐Ÿ‡จ๐Ÿ‡ฆ|๐Ÿ‡จ๐Ÿ‡จ|๐Ÿ‡จ๐Ÿ‡ฉ|๐Ÿ‡จ๐Ÿ‡ซ|๐Ÿ‡จ๐Ÿ‡ฌ|๐Ÿ‡จ๐Ÿ‡ญ|๐Ÿ‡จ๐Ÿ‡ฎ|๐Ÿ‡จ๐Ÿ‡ฐ|๐Ÿ‡จ๐Ÿ‡ฑ|๐Ÿ‡จ๐Ÿ‡ฒ|๐Ÿ‡จ๐Ÿ‡ณ|๐Ÿ‡จ๐Ÿ‡ด|๐Ÿ‡จ๐Ÿ‡ต|๐Ÿ‡จ๐Ÿ‡ท|๐Ÿ‡จ๐Ÿ‡บ|๐Ÿ‡จ๐Ÿ‡ป|๐Ÿ‡จ๐Ÿ‡ผ|๐Ÿ‡จ๐Ÿ‡ฝ|๐Ÿ‡จ๐Ÿ‡พ|๐Ÿ‡จ๐Ÿ‡ฟ|๐Ÿ‡ฉ๐Ÿ‡ช|๐Ÿ‡ฉ๐Ÿ‡ฌ|๐Ÿ‡ฉ๐Ÿ‡ฏ|๐Ÿ‡ฉ๐Ÿ‡ฐ|๐Ÿ‡ฉ๐Ÿ‡ฒ|๐Ÿ‡ฉ๐Ÿ‡ด|๐Ÿ‡ฉ๐Ÿ‡ฟ|๐Ÿ‡ช๐Ÿ‡ฆ|๐Ÿ‡ช๐Ÿ‡จ|๐Ÿ‡ช๐Ÿ‡ช|๐Ÿ‡ช๐Ÿ‡ฌ|๐Ÿ‡ช๐Ÿ‡ญ|๐Ÿ‡ช๐Ÿ‡ท|๐Ÿ‡ช๐Ÿ‡ธ|๐Ÿ‡ช๐Ÿ‡น|๐Ÿ‡ช๐Ÿ‡บ|๐Ÿ‡ซ๐Ÿ‡ฎ|๐Ÿ‡ซ๐Ÿ‡ฏ|๐Ÿ‡ซ๐Ÿ‡ฐ|๐Ÿ‡ซ๐Ÿ‡ฒ|๐Ÿ‡ซ๐Ÿ‡ด|๐Ÿ‡ซ๐Ÿ‡ท|๐Ÿ‡ฌ๐Ÿ‡ฆ|๐Ÿ‡ฌ๐Ÿ‡ง|๐Ÿ‡ฌ๐Ÿ‡ฉ|๐Ÿ‡ฌ๐Ÿ‡ช|๐Ÿ‡ฌ๐Ÿ‡ซ|๐Ÿ‡ฌ๐Ÿ‡ฌ|๐Ÿ‡ฌ๐Ÿ‡ญ|๐Ÿ‡ฌ๐Ÿ‡ฎ|๐Ÿ‡ฌ๐Ÿ‡ฑ|๐Ÿ‡ฌ๐Ÿ‡ฒ|๐Ÿ‡ฌ๐Ÿ‡ณ|๐Ÿ‡ฌ๐Ÿ‡ต|๐Ÿ‡ฌ๐Ÿ‡ถ|๐Ÿ‡ฌ๐Ÿ‡ท|๐Ÿ‡ฌ๐Ÿ‡ธ|๐Ÿ‡ฌ๐Ÿ‡น|๐Ÿ‡ฌ๐Ÿ‡บ|๐Ÿ‡ฌ๐Ÿ‡ผ|๐Ÿ‡ฌ๐Ÿ‡พ|๐Ÿ‡ญ๐Ÿ‡ฐ|๐Ÿ‡ญ๐Ÿ‡ฒ|๐Ÿ‡ญ๐Ÿ‡ณ|๐Ÿ‡ญ๐Ÿ‡ท|๐Ÿ‡ญ๐Ÿ‡น|๐Ÿ‡ญ๐Ÿ‡บ|๐Ÿ‡ฎ๐Ÿ‡จ|๐Ÿ‡ฎ๐Ÿ‡ฉ|๐Ÿ‡ฎ๐Ÿ‡ช|๐Ÿ‡ฎ๐Ÿ‡ฑ|๐Ÿ‡ฎ๐Ÿ‡ฒ|๐Ÿ‡ฎ๐Ÿ‡ณ|๐Ÿ‡ฎ๐Ÿ‡ด|๐Ÿ‡ฎ๐Ÿ‡ถ|๐Ÿ‡ฎ๐Ÿ‡ท|๐Ÿ‡ฎ๐Ÿ‡ธ|๐Ÿ‡ฎ๐Ÿ‡น|๐Ÿ‡ฏ๐Ÿ‡ช|๐Ÿ‡ฏ๐Ÿ‡ฒ|๐Ÿ‡ฏ๐Ÿ‡ด|๐Ÿ‡ฏ๐Ÿ‡ต|๐Ÿ‡ฐ๐Ÿ‡ช|๐Ÿ‡ฐ๐Ÿ‡ฌ|๐Ÿ‡ฐ๐Ÿ‡ญ|๐Ÿ‡ฐ๐Ÿ‡ฎ|๐Ÿ‡ฐ๐Ÿ‡ฒ|๐Ÿ‡ฐ๐Ÿ‡ณ|๐Ÿ‡ฐ๐Ÿ‡ต|๐Ÿ‡ฐ๐Ÿ‡ท|๐Ÿ‡ฐ๐Ÿ‡ผ|๐Ÿ‡ฐ๐Ÿ‡พ|๐Ÿ‡ฐ๐Ÿ‡ฟ|๐Ÿ‡ฑ๐Ÿ‡ฆ|๐Ÿ‡ฑ๐Ÿ‡ง|๐Ÿ‡ฑ๐Ÿ‡จ|๐Ÿ‡ฑ๐Ÿ‡ฎ|๐Ÿ‡ฑ๐Ÿ‡ฐ|๐Ÿ‡ฑ๐Ÿ‡ท|๐Ÿ‡ฑ๐Ÿ‡ธ|๐Ÿ‡ฑ๐Ÿ‡น|๐Ÿ‡ฑ๐Ÿ‡บ|๐Ÿ‡ฑ๐Ÿ‡ป|๐Ÿ‡ฑ๐Ÿ‡พ|๐Ÿ‡ฒ๐Ÿ‡ฆ|๐Ÿ‡ฒ๐Ÿ‡จ|๐Ÿ‡ฒ๐Ÿ‡ฉ|๐Ÿ‡ฒ๐Ÿ‡ช|๐Ÿ‡ฒ๐Ÿ‡ซ|๐Ÿ‡ฒ๐Ÿ‡ฌ|๐Ÿ‡ฒ๐Ÿ‡ญ|๐Ÿ‡ฒ๐Ÿ‡ฐ|๐Ÿ‡ฒ๐Ÿ‡ฑ|๐Ÿ‡ฒ๐Ÿ‡ฒ|๐Ÿ‡ฒ๐Ÿ‡ณ|๐Ÿ‡ฒ๐Ÿ‡ด|๐Ÿ‡ฒ๐Ÿ‡ต|๐Ÿ‡ฒ๐Ÿ‡ถ|๐Ÿ‡ฒ๐Ÿ‡ท|๐Ÿ‡ฒ๐Ÿ‡ธ|๐Ÿ‡ฒ๐Ÿ‡น|๐Ÿ‡ฒ๐Ÿ‡บ|๐Ÿ‡ฒ๐Ÿ‡ป|๐Ÿ‡ฒ๐Ÿ‡ผ|๐Ÿ‡ฒ๐Ÿ‡ฝ|๐Ÿ‡ฒ๐Ÿ‡พ|๐Ÿ‡ฒ๐Ÿ‡ฟ|๐Ÿ‡ณ๐Ÿ‡ฆ|๐Ÿ‡ณ๐Ÿ‡จ|๐Ÿ‡ณ๐Ÿ‡ช|๐Ÿ‡ณ๐Ÿ‡ซ|๐Ÿ‡ณ๐Ÿ‡ฌ|๐Ÿ‡ณ๐Ÿ‡ฎ|๐Ÿ‡ณ๐Ÿ‡ฑ|๐Ÿ‡ณ๐Ÿ‡ด|๐Ÿ‡ณ๐Ÿ‡ต|๐Ÿ‡ณ๐Ÿ‡ท|๐Ÿ‡ณ๐Ÿ‡บ|๐Ÿ‡ณ๐Ÿ‡ฟ|๐Ÿ‡ด๐Ÿ‡ฒ|๐Ÿ‡ต๐Ÿ‡ฆ|๐Ÿ‡ต๐Ÿ‡ช|๐Ÿ‡ต๐Ÿ‡ซ|๐Ÿ‡ต๐Ÿ‡ฌ|๐Ÿ‡ต๐Ÿ‡ญ|๐Ÿ‡ต๐Ÿ‡ฐ|๐Ÿ‡ต๐Ÿ‡ฑ|๐Ÿ‡ต๐Ÿ‡ฒ|๐Ÿ‡ต๐Ÿ‡ณ|๐Ÿ‡ต๐Ÿ‡ท|๐Ÿ‡ต๐Ÿ‡ธ|๐Ÿ‡ต๐Ÿ‡น|๐Ÿ‡ต๐Ÿ‡ผ|๐Ÿ‡ต๐Ÿ‡พ|๐Ÿ‡ถ๐Ÿ‡ฆ|๐Ÿ‡ท๐Ÿ‡ช|๐Ÿ‡ท๐Ÿ‡ด|๐Ÿ‡ท๐Ÿ‡ธ|๐Ÿ‡ท๐Ÿ‡บ|๐Ÿ‡ท๐Ÿ‡ผ|๐Ÿ‡ธ๐Ÿ‡ฆ|๐Ÿ‡ธ๐Ÿ‡ง|๐Ÿ‡ธ๐Ÿ‡จ|๐Ÿ‡ธ๐Ÿ‡ฉ|๐Ÿ‡ธ๐Ÿ‡ช|๐Ÿ‡ธ๐Ÿ‡ฌ|๐Ÿ‡ธ๐Ÿ‡ญ|๐Ÿ‡ธ๐Ÿ‡ฎ|๐Ÿ‡ธ๐Ÿ‡ฏ|๐Ÿ‡ธ๐Ÿ‡ฐ|๐Ÿ‡ธ๐Ÿ‡ฑ|๐Ÿ‡ธ๐Ÿ‡ฒ|๐Ÿ‡ธ๐Ÿ‡ณ|๐Ÿ‡ธ๐Ÿ‡ด|๐Ÿ‡ธ๐Ÿ‡ท|๐Ÿ‡ธ๐Ÿ‡ธ|๐Ÿ‡ธ๐Ÿ‡น|๐Ÿ‡ธ๐Ÿ‡ป|๐Ÿ‡ธ๐Ÿ‡ฝ|๐Ÿ‡ธ๐Ÿ‡พ|๐Ÿ‡ธ๐Ÿ‡ฟ|๐Ÿ‡น๐Ÿ‡ฆ|๐Ÿ‡น๐Ÿ‡จ|๐Ÿ‡น๐Ÿ‡ฉ|๐Ÿ‡น๐Ÿ‡ซ|๐Ÿ‡น๐Ÿ‡ฌ|๐Ÿ‡น๐Ÿ‡ญ|๐Ÿ‡น๐Ÿ‡ฏ|๐Ÿ‡น๐Ÿ‡ฐ|๐Ÿ‡น๐Ÿ‡ฑ|๐Ÿ‡น๐Ÿ‡ฒ|๐Ÿ‡น๐Ÿ‡ณ|๐Ÿ‡น๐Ÿ‡ด|๐Ÿ‡น๐Ÿ‡ท|๐Ÿ‡น๐Ÿ‡น|๐Ÿ‡น๐Ÿ‡ป|๐Ÿ‡น๐Ÿ‡ผ|๐Ÿ‡น๐Ÿ‡ฟ|๐Ÿ‡บ๐Ÿ‡ฆ|๐Ÿ‡บ๐Ÿ‡ฌ|๐Ÿ‡บ๐Ÿ‡ฒ|๐Ÿ‡บ๐Ÿ‡ณ|๐Ÿ‡บ๐Ÿ‡ธ|๐Ÿ‡บ๐Ÿ‡พ|๐Ÿ‡บ๐Ÿ‡ฟ|๐Ÿ‡ป๐Ÿ‡ฆ|๐Ÿ‡ป๐Ÿ‡จ|๐Ÿ‡ป๐Ÿ‡ช|๐Ÿ‡ป๐Ÿ‡ฌ|๐Ÿ‡ป๐Ÿ‡ฎ|๐Ÿ‡ป๐Ÿ‡ณ|๐Ÿ‡ป๐Ÿ‡บ|๐Ÿ‡ผ๐Ÿ‡ซ|๐Ÿ‡ผ๐Ÿ‡ธ|๐Ÿ‡ฝ๐Ÿ‡ฐ|๐Ÿ‡พ๐Ÿ‡ช|๐Ÿ‡พ๐Ÿ‡น|๐Ÿ‡ฟ๐Ÿ‡ฆ|๐Ÿ‡ฟ๐Ÿ‡ฒ|๐Ÿ‡ฟ๐Ÿ‡ผ|๐Ÿ‘‹๐Ÿป|๐Ÿ‘‹๐Ÿผ|๐Ÿ‘‹๐Ÿฝ|๐Ÿ‘‹๐Ÿพ|๐Ÿ‘‹๐Ÿฟ|๐Ÿคš๐Ÿป|๐Ÿคš๐Ÿผ|๐Ÿคš๐Ÿฝ|๐Ÿคš๐Ÿพ|๐Ÿคš๐Ÿฟ|๐Ÿ–๐Ÿป|๐Ÿ–๐Ÿผ|๐Ÿ–๐Ÿฝ|๐Ÿ–๐Ÿพ|๐Ÿ–๐Ÿฟ|๐Ÿ––๐Ÿป|๐Ÿ––๐Ÿผ|๐Ÿ––๐Ÿฝ|๐Ÿ––๐Ÿพ|๐Ÿ––๐Ÿฟ|๐Ÿ‘Œ๐Ÿป|๐Ÿ‘Œ๐Ÿผ|๐Ÿ‘Œ๐Ÿฝ|๐Ÿ‘Œ๐Ÿพ|๐Ÿ‘Œ๐Ÿฟ|๐ŸคŒ๐Ÿป|๐ŸคŒ๐Ÿผ|๐ŸคŒ๐Ÿฝ|๐ŸคŒ๐Ÿพ|๐ŸคŒ๐Ÿฟ|๐Ÿค๐Ÿป|๐Ÿค๐Ÿผ|๐Ÿค๐Ÿฝ|๐Ÿค๐Ÿพ|๐Ÿค๐Ÿฟ|๐Ÿคž๐Ÿป|๐Ÿคž๐Ÿผ|๐Ÿคž๐Ÿฝ|๐Ÿคž๐Ÿพ|๐Ÿคž๐Ÿฟ|๐ŸคŸ๐Ÿป|๐ŸคŸ๐Ÿผ|๐ŸคŸ๐Ÿฝ|๐ŸคŸ๐Ÿพ|๐ŸคŸ๐Ÿฟ|๐Ÿค˜๐Ÿป|๐Ÿค˜๐Ÿผ|๐Ÿค˜๐Ÿฝ|๐Ÿค˜๐Ÿพ|๐Ÿค˜๐Ÿฟ|๐Ÿค™๐Ÿป|๐Ÿค™๐Ÿผ|๐Ÿค™๐Ÿฝ|๐Ÿค™๐Ÿพ|๐Ÿค™๐Ÿฟ|๐Ÿ‘ˆ๐Ÿป|๐Ÿ‘ˆ๐Ÿผ|๐Ÿ‘ˆ๐Ÿฝ|๐Ÿ‘ˆ๐Ÿพ|๐Ÿ‘ˆ๐Ÿฟ|๐Ÿ‘‰๐Ÿป|๐Ÿ‘‰๐Ÿผ|๐Ÿ‘‰๐Ÿฝ|๐Ÿ‘‰๐Ÿพ|๐Ÿ‘‰๐Ÿฟ|๐Ÿ‘†๐Ÿป|๐Ÿ‘†๐Ÿผ|๐Ÿ‘†๐Ÿฝ|๐Ÿ‘†๐Ÿพ|๐Ÿ‘†๐Ÿฟ|๐Ÿ–•๐Ÿป|๐Ÿ–•๐Ÿผ|๐Ÿ–•๐Ÿฝ|๐Ÿ–•๐Ÿพ|๐Ÿ–•๐Ÿฟ|๐Ÿ‘‡๐Ÿป|๐Ÿ‘‡๐Ÿผ|๐Ÿ‘‡๐Ÿฝ|๐Ÿ‘‡๐Ÿพ|๐Ÿ‘‡๐Ÿฟ|๐Ÿ‘๐Ÿป|๐Ÿ‘๐Ÿผ|๐Ÿ‘๐Ÿฝ|๐Ÿ‘๐Ÿพ|๐Ÿ‘๐Ÿฟ|๐Ÿ‘Ž๐Ÿป|๐Ÿ‘Ž๐Ÿผ|๐Ÿ‘Ž๐Ÿฝ|๐Ÿ‘Ž๐Ÿพ|๐Ÿ‘Ž๐Ÿฟ|๐Ÿ‘Š๐Ÿป|๐Ÿ‘Š๐Ÿผ|๐Ÿ‘Š๐Ÿฝ|๐Ÿ‘Š๐Ÿพ|๐Ÿ‘Š๐Ÿฟ|๐Ÿค›๐Ÿป|๐Ÿค›๐Ÿผ|๐Ÿค›๐Ÿฝ|๐Ÿค›๐Ÿพ|๐Ÿค›๐Ÿฟ|๐Ÿคœ๐Ÿป|๐Ÿคœ๐Ÿผ|๐Ÿคœ๐Ÿฝ|๐Ÿคœ๐Ÿพ|๐Ÿคœ๐Ÿฟ|๐Ÿ‘๐Ÿป|๐Ÿ‘๐Ÿผ|๐Ÿ‘๐Ÿฝ|๐Ÿ‘๐Ÿพ|๐Ÿ‘๐Ÿฟ|๐Ÿ™Œ๐Ÿป|๐Ÿ™Œ๐Ÿผ|๐Ÿ™Œ๐Ÿฝ|๐Ÿ™Œ๐Ÿพ|๐Ÿ™Œ๐Ÿฟ|๐Ÿ‘๐Ÿป|๐Ÿ‘๐Ÿผ|๐Ÿ‘๐Ÿฝ|๐Ÿ‘๐Ÿพ|๐Ÿ‘๐Ÿฟ|๐Ÿคฒ๐Ÿป|๐Ÿคฒ๐Ÿผ|๐Ÿคฒ๐Ÿฝ|๐Ÿคฒ๐Ÿพ|๐Ÿคฒ๐Ÿฟ|๐Ÿ™๐Ÿป|๐Ÿ™๐Ÿผ|๐Ÿ™๐Ÿฝ|๐Ÿ™๐Ÿพ|๐Ÿ™๐Ÿฟ|๐Ÿ’…๐Ÿป|๐Ÿ’…๐Ÿผ|๐Ÿ’…๐Ÿฝ|๐Ÿ’…๐Ÿพ|๐Ÿ’…๐Ÿฟ|๐Ÿคณ๐Ÿป|๐Ÿคณ๐Ÿผ|๐Ÿคณ๐Ÿฝ|๐Ÿคณ๐Ÿพ|๐Ÿคณ๐Ÿฟ|๐Ÿ’ช๐Ÿป|๐Ÿ’ช๐Ÿผ|๐Ÿ’ช๐Ÿฝ|๐Ÿ’ช๐Ÿพ|๐Ÿ’ช๐Ÿฟ|๐Ÿฆต๐Ÿป|๐Ÿฆต๐Ÿผ|๐Ÿฆต๐Ÿฝ|๐Ÿฆต๐Ÿพ|๐Ÿฆต๐Ÿฟ|๐Ÿฆถ๐Ÿป|๐Ÿฆถ๐Ÿผ|๐Ÿฆถ๐Ÿฝ|๐Ÿฆถ๐Ÿพ|๐Ÿฆถ๐Ÿฟ|๐Ÿ‘‚๐Ÿป|๐Ÿ‘‚๐Ÿผ|๐Ÿ‘‚๐Ÿฝ|๐Ÿ‘‚๐Ÿพ|๐Ÿ‘‚๐Ÿฟ|๐Ÿฆป๐Ÿป|๐Ÿฆป๐Ÿผ|๐Ÿฆป๐Ÿฝ|๐Ÿฆป๐Ÿพ|๐Ÿฆป๐Ÿฟ|๐Ÿ‘ƒ๐Ÿป|๐Ÿ‘ƒ๐Ÿผ|๐Ÿ‘ƒ๐Ÿฝ|๐Ÿ‘ƒ๐Ÿพ|๐Ÿ‘ƒ๐Ÿฟ|๐Ÿ‘ถ๐Ÿป|๐Ÿ‘ถ๐Ÿผ|๐Ÿ‘ถ๐Ÿฝ|๐Ÿ‘ถ๐Ÿพ|๐Ÿ‘ถ๐Ÿฟ|๐Ÿง’๐Ÿป|๐Ÿง’๐Ÿผ|๐Ÿง’๐Ÿฝ|๐Ÿง’๐Ÿพ|๐Ÿง’๐Ÿฟ|๐Ÿ‘ฆ๐Ÿป|๐Ÿ‘ฆ๐Ÿผ|๐Ÿ‘ฆ๐Ÿฝ|๐Ÿ‘ฆ๐Ÿพ|๐Ÿ‘ฆ๐Ÿฟ|๐Ÿ‘ง๐Ÿป|๐Ÿ‘ง๐Ÿผ|๐Ÿ‘ง๐Ÿฝ|๐Ÿ‘ง๐Ÿพ|๐Ÿ‘ง๐Ÿฟ|๐Ÿง‘๐Ÿป|๐Ÿง‘๐Ÿผ|๐Ÿง‘๐Ÿฝ|๐Ÿง‘๐Ÿพ|๐Ÿง‘๐Ÿฟ|๐Ÿ‘ฑ๐Ÿป|๐Ÿ‘ฑ๐Ÿผ|๐Ÿ‘ฑ๐Ÿฝ|๐Ÿ‘ฑ๐Ÿพ|๐Ÿ‘ฑ๐Ÿฟ|๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿฟ|๐Ÿง”๐Ÿป|๐Ÿง”๐Ÿผ|๐Ÿง”๐Ÿฝ|๐Ÿง”๐Ÿพ|๐Ÿง”๐Ÿฟ|๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿฟ|๐Ÿง“๐Ÿป|๐Ÿง“๐Ÿผ|๐Ÿง“๐Ÿฝ|๐Ÿง“๐Ÿพ|๐Ÿง“๐Ÿฟ|๐Ÿ‘ด๐Ÿป|๐Ÿ‘ด๐Ÿผ|๐Ÿ‘ด๐Ÿฝ|๐Ÿ‘ด๐Ÿพ|๐Ÿ‘ด๐Ÿฟ|๐Ÿ‘ต๐Ÿป|๐Ÿ‘ต๐Ÿผ|๐Ÿ‘ต๐Ÿฝ|๐Ÿ‘ต๐Ÿพ|๐Ÿ‘ต๐Ÿฟ|๐Ÿ™๐Ÿป|๐Ÿ™๐Ÿผ|๐Ÿ™๐Ÿฝ|๐Ÿ™๐Ÿพ|๐Ÿ™๐Ÿฟ|๐Ÿ™Ž๐Ÿป|๐Ÿ™Ž๐Ÿผ|๐Ÿ™Ž๐Ÿฝ|๐Ÿ™Ž๐Ÿพ|๐Ÿ™Ž๐Ÿฟ|๐Ÿ™…๐Ÿป|๐Ÿ™…๐Ÿผ|๐Ÿ™…๐Ÿฝ|๐Ÿ™…๐Ÿพ|๐Ÿ™…๐Ÿฟ|๐Ÿ™†๐Ÿป|๐Ÿ™†๐Ÿผ|๐Ÿ™†๐Ÿฝ|๐Ÿ™†๐Ÿพ|๐Ÿ™†๐Ÿฟ|๐Ÿ’๐Ÿป|๐Ÿ’๐Ÿผ|๐Ÿ’๐Ÿฝ|๐Ÿ’๐Ÿพ|๐Ÿ’๐Ÿฟ|๐Ÿ™‹๐Ÿป|๐Ÿ™‹๐Ÿผ|๐Ÿ™‹๐Ÿฝ|๐Ÿ™‹๐Ÿพ|๐Ÿ™‹๐Ÿฟ|๐Ÿง๐Ÿป|๐Ÿง๐Ÿผ|๐Ÿง๐Ÿฝ|๐Ÿง๐Ÿพ|๐Ÿง๐Ÿฟ|๐Ÿ™‡๐Ÿป|๐Ÿ™‡๐Ÿผ|๐Ÿ™‡๐Ÿฝ|๐Ÿ™‡๐Ÿพ|๐Ÿ™‡๐Ÿฟ|๐Ÿคฆ๐Ÿป|๐Ÿคฆ๐Ÿผ|๐Ÿคฆ๐Ÿฝ|๐Ÿคฆ๐Ÿพ|๐Ÿคฆ๐Ÿฟ|๐Ÿคท๐Ÿป|๐Ÿคท๐Ÿผ|๐Ÿคท๐Ÿฝ|๐Ÿคท๐Ÿพ|๐Ÿคท๐Ÿฟ|๐Ÿ‘ฎ๐Ÿป|๐Ÿ‘ฎ๐Ÿผ|๐Ÿ‘ฎ๐Ÿฝ|๐Ÿ‘ฎ๐Ÿพ|๐Ÿ‘ฎ๐Ÿฟ|๐Ÿ•ต๐Ÿป|๐Ÿ•ต๐Ÿผ|๐Ÿ•ต๐Ÿฝ|๐Ÿ•ต๐Ÿพ|๐Ÿ•ต๐Ÿฟ|๐Ÿ’‚๐Ÿป|๐Ÿ’‚๐Ÿผ|๐Ÿ’‚๐Ÿฝ|๐Ÿ’‚๐Ÿพ|๐Ÿ’‚๐Ÿฟ|๐Ÿฅท๐Ÿป|๐Ÿฅท๐Ÿผ|๐Ÿฅท๐Ÿฝ|๐Ÿฅท๐Ÿพ|๐Ÿฅท๐Ÿฟ|๐Ÿ‘ท๐Ÿป|๐Ÿ‘ท๐Ÿผ|๐Ÿ‘ท๐Ÿฝ|๐Ÿ‘ท๐Ÿพ|๐Ÿ‘ท๐Ÿฟ|๐Ÿคด๐Ÿป|๐Ÿคด๐Ÿผ|๐Ÿคด๐Ÿฝ|๐Ÿคด๐Ÿพ|๐Ÿคด๐Ÿฟ|๐Ÿ‘ธ๐Ÿป|๐Ÿ‘ธ๐Ÿผ|๐Ÿ‘ธ๐Ÿฝ|๐Ÿ‘ธ๐Ÿพ|๐Ÿ‘ธ๐Ÿฟ|๐Ÿ‘ณ๐Ÿป|๐Ÿ‘ณ๐Ÿผ|๐Ÿ‘ณ๐Ÿฝ|๐Ÿ‘ณ๐Ÿพ|๐Ÿ‘ณ๐Ÿฟ|๐Ÿ‘ฒ๐Ÿป|๐Ÿ‘ฒ๐Ÿผ|๐Ÿ‘ฒ๐Ÿฝ|๐Ÿ‘ฒ๐Ÿพ|๐Ÿ‘ฒ๐Ÿฟ|๐Ÿง•๐Ÿป|๐Ÿง•๐Ÿผ|๐Ÿง•๐Ÿฝ|๐Ÿง•๐Ÿพ|๐Ÿง•๐Ÿฟ|๐Ÿคต๐Ÿป|๐Ÿคต๐Ÿผ|๐Ÿคต๐Ÿฝ|๐Ÿคต๐Ÿพ|๐Ÿคต๐Ÿฟ|๐Ÿ‘ฐ๐Ÿป|๐Ÿ‘ฐ๐Ÿผ|๐Ÿ‘ฐ๐Ÿฝ|๐Ÿ‘ฐ๐Ÿพ|๐Ÿ‘ฐ๐Ÿฟ|๐Ÿคฐ๐Ÿป|๐Ÿคฐ๐Ÿผ|๐Ÿคฐ๐Ÿฝ|๐Ÿคฐ๐Ÿพ|๐Ÿคฐ๐Ÿฟ|๐Ÿคฑ๐Ÿป|๐Ÿคฑ๐Ÿผ|๐Ÿคฑ๐Ÿฝ|๐Ÿคฑ๐Ÿพ|๐Ÿคฑ๐Ÿฟ|๐Ÿ‘ผ๐Ÿป|๐Ÿ‘ผ๐Ÿผ|๐Ÿ‘ผ๐Ÿฝ|๐Ÿ‘ผ๐Ÿพ|๐Ÿ‘ผ๐Ÿฟ|๐ŸŽ…๐Ÿป|๐ŸŽ…๐Ÿผ|๐ŸŽ…๐Ÿฝ|๐ŸŽ…๐Ÿพ|๐ŸŽ…๐Ÿฟ|๐Ÿคถ๐Ÿป|๐Ÿคถ๐Ÿผ|๐Ÿคถ๐Ÿฝ|๐Ÿคถ๐Ÿพ|๐Ÿคถ๐Ÿฟ|๐Ÿฆธ๐Ÿป|๐Ÿฆธ๐Ÿผ|๐Ÿฆธ๐Ÿฝ|๐Ÿฆธ๐Ÿพ|๐Ÿฆธ๐Ÿฟ|๐Ÿฆน๐Ÿป|๐Ÿฆน๐Ÿผ|๐Ÿฆน๐Ÿฝ|๐Ÿฆน๐Ÿพ|๐Ÿฆน๐Ÿฟ|๐Ÿง™๐Ÿป|๐Ÿง™๐Ÿผ|๐Ÿง™๐Ÿฝ|๐Ÿง™๐Ÿพ|๐Ÿง™๐Ÿฟ|๐Ÿงš๐Ÿป|๐Ÿงš๐Ÿผ|๐Ÿงš๐Ÿฝ|๐Ÿงš๐Ÿพ|๐Ÿงš๐Ÿฟ|๐Ÿง›๐Ÿป|๐Ÿง›๐Ÿผ|๐Ÿง›๐Ÿฝ|๐Ÿง›๐Ÿพ|๐Ÿง›๐Ÿฟ|๐Ÿงœ๐Ÿป|๐Ÿงœ๐Ÿผ|๐Ÿงœ๐Ÿฝ|๐Ÿงœ๐Ÿพ|๐Ÿงœ๐Ÿฟ|๐Ÿง๐Ÿป|๐Ÿง๐Ÿผ|๐Ÿง๐Ÿฝ|๐Ÿง๐Ÿพ|๐Ÿง๐Ÿฟ|๐Ÿ’†๐Ÿป|๐Ÿ’†๐Ÿผ|๐Ÿ’†๐Ÿฝ|๐Ÿ’†๐Ÿพ|๐Ÿ’†๐Ÿฟ|๐Ÿ’‡๐Ÿป|๐Ÿ’‡๐Ÿผ|๐Ÿ’‡๐Ÿฝ|๐Ÿ’‡๐Ÿพ|๐Ÿ’‡๐Ÿฟ|๐Ÿšถ๐Ÿป|๐Ÿšถ๐Ÿผ|๐Ÿšถ๐Ÿฝ|๐Ÿšถ๐Ÿพ|๐Ÿšถ๐Ÿฟ|๐Ÿง๐Ÿป|๐Ÿง๐Ÿผ|๐Ÿง๐Ÿฝ|๐Ÿง๐Ÿพ|๐Ÿง๐Ÿฟ|๐ŸงŽ๐Ÿป|๐ŸงŽ๐Ÿผ|๐ŸงŽ๐Ÿฝ|๐ŸงŽ๐Ÿพ|๐ŸงŽ๐Ÿฟ|๐Ÿƒ๐Ÿป|๐Ÿƒ๐Ÿผ|๐Ÿƒ๐Ÿฝ|๐Ÿƒ๐Ÿพ|๐Ÿƒ๐Ÿฟ|๐Ÿ’ƒ๐Ÿป|๐Ÿ’ƒ๐Ÿผ|๐Ÿ’ƒ๐Ÿฝ|๐Ÿ’ƒ๐Ÿพ|๐Ÿ’ƒ๐Ÿฟ|๐Ÿ•บ๐Ÿป|๐Ÿ•บ๐Ÿผ|๐Ÿ•บ๐Ÿฝ|๐Ÿ•บ๐Ÿพ|๐Ÿ•บ๐Ÿฟ|๐Ÿ•ด๐Ÿป|๐Ÿ•ด๐Ÿผ|๐Ÿ•ด๐Ÿฝ|๐Ÿ•ด๐Ÿพ|๐Ÿ•ด๐Ÿฟ|๐Ÿง–๐Ÿป|๐Ÿง–๐Ÿผ|๐Ÿง–๐Ÿฝ|๐Ÿง–๐Ÿพ|๐Ÿง–๐Ÿฟ|๐Ÿง—๐Ÿป|๐Ÿง—๐Ÿผ|๐Ÿง—๐Ÿฝ|๐Ÿง—๐Ÿพ|๐Ÿง—๐Ÿฟ|๐Ÿ‡๐Ÿป|๐Ÿ‡๐Ÿผ|๐Ÿ‡๐Ÿฝ|๐Ÿ‡๐Ÿพ|๐Ÿ‡๐Ÿฟ|๐Ÿ‚๐Ÿป|๐Ÿ‚๐Ÿผ|๐Ÿ‚๐Ÿฝ|๐Ÿ‚๐Ÿพ|๐Ÿ‚๐Ÿฟ|๐ŸŒ๐Ÿป|๐ŸŒ๐Ÿผ|๐ŸŒ๐Ÿฝ|๐ŸŒ๐Ÿพ|๐ŸŒ๐Ÿฟ|๐Ÿ„๐Ÿป|๐Ÿ„๐Ÿผ|๐Ÿ„๐Ÿฝ|๐Ÿ„๐Ÿพ|๐Ÿ„๐Ÿฟ|๐Ÿšฃ๐Ÿป|๐Ÿšฃ๐Ÿผ|๐Ÿšฃ๐Ÿฝ|๐Ÿšฃ๐Ÿพ|๐Ÿšฃ๐Ÿฟ|๐ŸŠ๐Ÿป|๐ŸŠ๐Ÿผ|๐ŸŠ๐Ÿฝ|๐ŸŠ๐Ÿพ|๐ŸŠ๐Ÿฟ|๐Ÿ‹๐Ÿป|๐Ÿ‹๐Ÿผ|๐Ÿ‹๐Ÿฝ|๐Ÿ‹๐Ÿพ|๐Ÿ‹๐Ÿฟ|๐Ÿšด๐Ÿป|๐Ÿšด๐Ÿผ|๐Ÿšด๐Ÿฝ|๐Ÿšด๐Ÿพ|๐Ÿšด๐Ÿฟ|๐Ÿšต๐Ÿป|๐Ÿšต๐Ÿผ|๐Ÿšต๐Ÿฝ|๐Ÿšต๐Ÿพ|๐Ÿšต๐Ÿฟ|๐Ÿคธ๐Ÿป|๐Ÿคธ๐Ÿผ|๐Ÿคธ๐Ÿฝ|๐Ÿคธ๐Ÿพ|๐Ÿคธ๐Ÿฟ|๐Ÿคฝ๐Ÿป|๐Ÿคฝ๐Ÿผ|๐Ÿคฝ๐Ÿฝ|๐Ÿคฝ๐Ÿพ|๐Ÿคฝ๐Ÿฟ|๐Ÿคพ๐Ÿป|๐Ÿคพ๐Ÿผ|๐Ÿคพ๐Ÿฝ|๐Ÿคพ๐Ÿพ|๐Ÿคพ๐Ÿฟ|๐Ÿคน๐Ÿป|๐Ÿคน๐Ÿผ|๐Ÿคน๐Ÿฝ|๐Ÿคน๐Ÿพ|๐Ÿคน๐Ÿฟ|๐Ÿง˜๐Ÿป|๐Ÿง˜๐Ÿผ|๐Ÿง˜๐Ÿฝ|๐Ÿง˜๐Ÿพ|๐Ÿง˜๐Ÿฟ|๐Ÿ›€๐Ÿป|๐Ÿ›€๐Ÿผ|๐Ÿ›€๐Ÿฝ|๐Ÿ›€๐Ÿพ|๐Ÿ›€๐Ÿฟ|๐Ÿ›Œ๐Ÿป|๐Ÿ›Œ๐Ÿผ|๐Ÿ›Œ๐Ÿฝ|๐Ÿ›Œ๐Ÿพ|๐Ÿ›Œ๐Ÿฟ|๐Ÿ‘ญ๐Ÿป|๐Ÿ‘ญ๐Ÿผ|๐Ÿ‘ญ๐Ÿฝ|๐Ÿ‘ญ๐Ÿพ|๐Ÿ‘ญ๐Ÿฟ|๐Ÿ‘ซ๐Ÿป|๐Ÿ‘ซ๐Ÿผ|๐Ÿ‘ซ๐Ÿฝ|๐Ÿ‘ซ๐Ÿพ|๐Ÿ‘ซ๐Ÿฟ|๐Ÿ‘ฌ๐Ÿป|๐Ÿ‘ฌ๐Ÿผ|๐Ÿ‘ฌ๐Ÿฝ|๐Ÿ‘ฌ๐Ÿพ|๐Ÿ‘ฌ๐Ÿฟ|๐Ÿ’๐Ÿป|๐Ÿ’๐Ÿผ|๐Ÿ’๐Ÿฝ|๐Ÿ’๐Ÿพ|๐Ÿ’๐Ÿฟ|๐Ÿ’‘๐Ÿป|๐Ÿ’‘๐Ÿผ|๐Ÿ’‘๐Ÿฝ|๐Ÿ’‘๐Ÿพ|๐Ÿ’‘๐Ÿฟ|#๏ธโƒฃ|0๏ธโƒฃ|1๏ธโƒฃ|2๏ธโƒฃ|3๏ธโƒฃ|4๏ธโƒฃ|5๏ธโƒฃ|6๏ธโƒฃ|7๏ธโƒฃ|8๏ธโƒฃ|9๏ธโƒฃ|โœ‹๐Ÿป|โœ‹๐Ÿผ|โœ‹๐Ÿฝ|โœ‹๐Ÿพ|โœ‹๐Ÿฟ|โœŒ๐Ÿป|โœŒ๐Ÿผ|โœŒ๐Ÿฝ|โœŒ๐Ÿพ|โœŒ๐Ÿฟ|โ˜๐Ÿป|โ˜๐Ÿผ|โ˜๐Ÿฝ|โ˜๐Ÿพ|โ˜๐Ÿฟ|โœŠ๐Ÿป|โœŠ๐Ÿผ|โœŠ๐Ÿฝ|โœŠ๐Ÿพ|โœŠ๐Ÿฟ|โœ๐Ÿป|โœ๐Ÿผ|โœ๐Ÿฝ|โœ๐Ÿพ|โœ๐Ÿฟ|โ›น๐Ÿป|โ›น๐Ÿผ|โ›น๐Ÿฝ|โ›น๐Ÿพ|โ›น๐Ÿฟ|๐Ÿ˜€|๐Ÿ˜ƒ|๐Ÿ˜„|๐Ÿ˜|๐Ÿ˜†|๐Ÿ˜…|๐Ÿคฃ|๐Ÿ˜‚|๐Ÿ™‚|๐Ÿ™ƒ|๐Ÿ˜‰|๐Ÿ˜Š|๐Ÿ˜‡|๐Ÿฅฐ|๐Ÿ˜|๐Ÿคฉ|๐Ÿ˜˜|๐Ÿ˜—|๐Ÿ˜š|๐Ÿ˜™|๐Ÿฅฒ|๐Ÿ˜‹|๐Ÿ˜›|๐Ÿ˜œ|๐Ÿคช|๐Ÿ˜|๐Ÿค‘|๐Ÿค—|๐Ÿคญ|๐Ÿคซ|๐Ÿค”|๐Ÿค|๐Ÿคจ|๐Ÿ˜|๐Ÿ˜‘|๐Ÿ˜ถ|๐Ÿ˜|๐Ÿ˜’|๐Ÿ™„|๐Ÿ˜ฌ|๐Ÿคฅ|๐Ÿ˜Œ|๐Ÿ˜”|๐Ÿ˜ช|๐Ÿคค|๐Ÿ˜ด|๐Ÿ˜ท|๐Ÿค’|๐Ÿค•|๐Ÿคข|๐Ÿคฎ|๐Ÿคง|๐Ÿฅต|๐Ÿฅถ|๐Ÿฅด|๐Ÿ˜ต|๐Ÿคฏ|๐Ÿค |๐Ÿฅณ|๐Ÿฅธ|๐Ÿ˜Ž|๐Ÿค“|๐Ÿง|๐Ÿ˜•|๐Ÿ˜Ÿ|๐Ÿ™|๐Ÿ˜ฎ|๐Ÿ˜ฏ|๐Ÿ˜ฒ|๐Ÿ˜ณ|๐Ÿฅบ|๐Ÿ˜ฆ|๐Ÿ˜ง|๐Ÿ˜จ|๐Ÿ˜ฐ|๐Ÿ˜ฅ|๐Ÿ˜ข|๐Ÿ˜ญ|๐Ÿ˜ฑ|๐Ÿ˜–|๐Ÿ˜ฃ|๐Ÿ˜ž|๐Ÿ˜“|๐Ÿ˜ฉ|๐Ÿ˜ซ|๐Ÿฅฑ|๐Ÿ˜ค|๐Ÿ˜ก|๐Ÿ˜ |๐Ÿคฌ|๐Ÿ˜ˆ|๐Ÿ‘ฟ|๐Ÿ’€|๐Ÿ’ฉ|๐Ÿคก|๐Ÿ‘น|๐Ÿ‘บ|๐Ÿ‘ป|๐Ÿ‘ฝ|๐Ÿ‘พ|๐Ÿค–|๐Ÿ˜บ|๐Ÿ˜ธ|๐Ÿ˜น|๐Ÿ˜ป|๐Ÿ˜ผ|๐Ÿ˜ฝ|๐Ÿ™€|๐Ÿ˜ฟ|๐Ÿ˜พ|๐Ÿ™ˆ|๐Ÿ™‰|๐Ÿ™Š|๐Ÿ’‹|๐Ÿ’Œ|๐Ÿ’˜|๐Ÿ’|๐Ÿ’–|๐Ÿ’—|๐Ÿ’“|๐Ÿ’ž|๐Ÿ’•|๐Ÿ’Ÿ|๐Ÿ’”|๐Ÿงก|๐Ÿ’›|๐Ÿ’š|๐Ÿ’™|๐Ÿ’œ|๐ŸคŽ|๐Ÿ–ค|๐Ÿค|๐Ÿ’ฏ|๐Ÿ’ข|๐Ÿ’ฅ|๐Ÿ’ซ|๐Ÿ’ฆ|๐Ÿ’จ|๐Ÿ•ณ|๐Ÿ’ฃ|๐Ÿ’ฌ|๐Ÿ—จ|๐Ÿ—ฏ|๐Ÿ’ญ|๐Ÿ’ค|๐Ÿ‘‹|๐Ÿคš|๐Ÿ–|๐Ÿ––|๐Ÿ‘Œ|๐ŸคŒ|๐Ÿค|๐Ÿคž|๐ŸคŸ|๐Ÿค˜|๐Ÿค™|๐Ÿ‘ˆ|๐Ÿ‘‰|๐Ÿ‘†|๐Ÿ–•|๐Ÿ‘‡|๐Ÿ‘|๐Ÿ‘Ž|๐Ÿ‘Š|๐Ÿค›|๐Ÿคœ|๐Ÿ‘|๐Ÿ™Œ|๐Ÿ‘|๐Ÿคฒ|๐Ÿค|๐Ÿ™|๐Ÿ’…|๐Ÿคณ|๐Ÿ’ช|๐Ÿฆพ|๐Ÿฆฟ|๐Ÿฆต|๐Ÿฆถ|๐Ÿ‘‚|๐Ÿฆป|๐Ÿ‘ƒ|๐Ÿง |๐Ÿซ€|๐Ÿซ|๐Ÿฆท|๐Ÿฆด|๐Ÿ‘€|๐Ÿ‘|๐Ÿ‘…|๐Ÿ‘„|๐Ÿ‘ถ|๐Ÿง’|๐Ÿ‘ฆ|๐Ÿ‘ง|๐Ÿง‘|๐Ÿ‘ฑ|๐Ÿ‘จ|๐Ÿง”|๐Ÿ‘ฉ|๐Ÿง“|๐Ÿ‘ด|๐Ÿ‘ต|๐Ÿ™|๐Ÿ™Ž|๐Ÿ™…|๐Ÿ™†|๐Ÿ’|๐Ÿ™‹|๐Ÿง|๐Ÿ™‡|๐Ÿคฆ|๐Ÿคท|๐Ÿ‘ฎ|๐Ÿ•ต|๐Ÿ’‚|๐Ÿฅท|๐Ÿ‘ท|๐Ÿคด|๐Ÿ‘ธ|๐Ÿ‘ณ|๐Ÿ‘ฒ|๐Ÿง•|๐Ÿคต|๐Ÿ‘ฐ|๐Ÿคฐ|๐Ÿคฑ|๐Ÿ‘ผ|๐ŸŽ…|๐Ÿคถ|๐Ÿฆธ|๐Ÿฆน|๐Ÿง™|๐Ÿงš|๐Ÿง›|๐Ÿงœ|๐Ÿง|๐Ÿงž|๐ŸงŸ|๐Ÿ’†|๐Ÿ’‡|๐Ÿšถ|๐Ÿง|๐ŸงŽ|๐Ÿƒ|๐Ÿ’ƒ|๐Ÿ•บ|๐Ÿ•ด|๐Ÿ‘ฏ|๐Ÿง–|๐Ÿง—|๐Ÿคบ|๐Ÿ‡|๐Ÿ‚|๐ŸŒ|๐Ÿ„|๐Ÿšฃ|๐ŸŠ|๐Ÿ‹|๐Ÿšด|๐Ÿšต|๐Ÿคธ|๐Ÿคผ|๐Ÿคฝ|๐Ÿคพ|๐Ÿคน|๐Ÿง˜|๐Ÿ›€|๐Ÿ›Œ|๐Ÿ‘ญ|๐Ÿ‘ซ|๐Ÿ‘ฌ|๐Ÿ’|๐Ÿ’‘|๐Ÿ‘ช|๐Ÿ—ฃ|๐Ÿ‘ค|๐Ÿ‘ฅ|๐Ÿซ‚|๐Ÿ‘ฃ|๐Ÿฆฐ|๐Ÿฆฑ|๐Ÿฆณ|๐Ÿฆฒ|๐Ÿต|๐Ÿ’|๐Ÿฆ|๐Ÿฆง|๐Ÿถ|๐Ÿ•|๐Ÿฆฎ|๐Ÿฉ|๐Ÿบ|๐ŸฆŠ|๐Ÿฆ|๐Ÿฑ|๐Ÿˆ|๐Ÿฆ|๐Ÿฏ|๐Ÿ…|๐Ÿ†|๐Ÿด|๐ŸŽ|๐Ÿฆ„|๐Ÿฆ“|๐ŸฆŒ|๐Ÿฆฌ|๐Ÿฎ|๐Ÿ‚|๐Ÿƒ|๐Ÿ„|๐Ÿท|๐Ÿ–|๐Ÿ—|๐Ÿฝ|๐Ÿ|๐Ÿ‘|๐Ÿ|๐Ÿช|๐Ÿซ|๐Ÿฆ™|๐Ÿฆ’|๐Ÿ˜|๐Ÿฆฃ|๐Ÿฆ|๐Ÿฆ›|๐Ÿญ|๐Ÿ|๐Ÿ€|๐Ÿน|๐Ÿฐ|๐Ÿ‡|๐Ÿฟ|๐Ÿฆซ|๐Ÿฆ”|๐Ÿฆ‡|๐Ÿป|๐Ÿจ|๐Ÿผ|๐Ÿฆฅ|๐Ÿฆฆ|๐Ÿฆจ|๐Ÿฆ˜|๐Ÿฆก|๐Ÿพ|๐Ÿฆƒ|๐Ÿ”|๐Ÿ“|๐Ÿฃ|๐Ÿค|๐Ÿฅ|๐Ÿฆ|๐Ÿง|๐Ÿ•Š|๐Ÿฆ…|๐Ÿฆ†|๐Ÿฆข|๐Ÿฆ‰|๐Ÿฆค|๐Ÿชถ|๐Ÿฆฉ|๐Ÿฆš|๐Ÿฆœ|๐Ÿธ|๐ŸŠ|๐Ÿข|๐ŸฆŽ|๐Ÿ|๐Ÿฒ|๐Ÿ‰|๐Ÿฆ•|๐Ÿฆ–|๐Ÿณ|๐Ÿ‹|๐Ÿฌ|๐Ÿฆญ|๐ŸŸ|๐Ÿ |๐Ÿก|๐Ÿฆˆ|๐Ÿ™|๐Ÿš|๐ŸŒ|๐Ÿฆ‹|๐Ÿ›|๐Ÿœ|๐Ÿ|๐Ÿชฒ|๐Ÿž|๐Ÿฆ—|๐Ÿชณ|๐Ÿ•ท|๐Ÿ•ธ|๐Ÿฆ‚|๐ŸฆŸ|๐Ÿชฐ|๐Ÿชฑ|๐Ÿฆ |๐Ÿ’|๐ŸŒธ|๐Ÿ’ฎ|๐Ÿต|๐ŸŒน|๐Ÿฅ€|๐ŸŒบ|๐ŸŒป|๐ŸŒผ|๐ŸŒท|๐ŸŒฑ|๐Ÿชด|๐ŸŒฒ|๐ŸŒณ|๐ŸŒด|๐ŸŒต|๐ŸŒพ|๐ŸŒฟ|๐Ÿ€|๐Ÿ|๐Ÿ‚|๐Ÿƒ|๐Ÿ‡|๐Ÿˆ|๐Ÿ‰|๐ŸŠ|๐Ÿ‹|๐ŸŒ|๐Ÿ|๐Ÿฅญ|๐ŸŽ|๐Ÿ|๐Ÿ|๐Ÿ‘|๐Ÿ’|๐Ÿ“|๐Ÿซ|๐Ÿฅ|๐Ÿ…|๐Ÿซ’|๐Ÿฅฅ|๐Ÿฅ‘|๐Ÿ†|๐Ÿฅ”|๐Ÿฅ•|๐ŸŒฝ|๐ŸŒถ|๐Ÿซ‘|๐Ÿฅ’|๐Ÿฅฌ|๐Ÿฅฆ|๐Ÿง„|๐Ÿง…|๐Ÿ„|๐Ÿฅœ|๐ŸŒฐ|๐Ÿž|๐Ÿฅ|๐Ÿฅ–|๐Ÿซ“|๐Ÿฅจ|๐Ÿฅฏ|๐Ÿฅž|๐Ÿง‡|๐Ÿง€|๐Ÿ–|๐Ÿ—|๐Ÿฅฉ|๐Ÿฅ“|๐Ÿ”|๐ŸŸ|๐Ÿ•|๐ŸŒญ|๐Ÿฅช|๐ŸŒฎ|๐ŸŒฏ|๐Ÿซ”|๐Ÿฅ™|๐Ÿง†|๐Ÿฅš|๐Ÿณ|๐Ÿฅ˜|๐Ÿฒ|๐Ÿซ•|๐Ÿฅฃ|๐Ÿฅ—|๐Ÿฟ|๐Ÿงˆ|๐Ÿง‚|๐Ÿฅซ|๐Ÿฑ|๐Ÿ˜|๐Ÿ™|๐Ÿš|๐Ÿ›|๐Ÿœ|๐Ÿ|๐Ÿ |๐Ÿข|๐Ÿฃ|๐Ÿค|๐Ÿฅ|๐Ÿฅฎ|๐Ÿก|๐ŸฅŸ|๐Ÿฅ |๐Ÿฅก|๐Ÿฆ€|๐Ÿฆž|๐Ÿฆ|๐Ÿฆ‘|๐Ÿฆช|๐Ÿฆ|๐Ÿง|๐Ÿจ|๐Ÿฉ|๐Ÿช|๐ŸŽ‚|๐Ÿฐ|๐Ÿง|๐Ÿฅง|๐Ÿซ|๐Ÿฌ|๐Ÿญ|๐Ÿฎ|๐Ÿฏ|๐Ÿผ|๐Ÿฅ›|๐Ÿซ–|๐Ÿต|๐Ÿถ|๐Ÿพ|๐Ÿท|๐Ÿธ|๐Ÿน|๐Ÿบ|๐Ÿป|๐Ÿฅ‚|๐Ÿฅƒ|๐Ÿฅค|๐Ÿง‹|๐Ÿงƒ|๐Ÿง‰|๐ŸงŠ|๐Ÿฅข|๐Ÿฝ|๐Ÿด|๐Ÿฅ„|๐Ÿ”ช|๐Ÿบ|๐ŸŒ|๐ŸŒŽ|๐ŸŒ|๐ŸŒ|๐Ÿ—บ|๐Ÿ—พ|๐Ÿงญ|๐Ÿ”|๐ŸŒ‹|๐Ÿ—ป|๐Ÿ•|๐Ÿ–|๐Ÿœ|๐Ÿ|๐Ÿž|๐ŸŸ|๐Ÿ›|๐Ÿ—|๐Ÿงฑ|๐Ÿชจ|๐Ÿชต|๐Ÿ›–|๐Ÿ˜|๐Ÿš|๐Ÿ |๐Ÿก|๐Ÿข|๐Ÿฃ|๐Ÿค|๐Ÿฅ|๐Ÿฆ|๐Ÿจ|๐Ÿฉ|๐Ÿช|๐Ÿซ|๐Ÿฌ|๐Ÿญ|๐Ÿฏ|๐Ÿฐ|๐Ÿ’’|๐Ÿ—ผ|๐Ÿ—ฝ|๐Ÿ•Œ|๐Ÿ›•|๐Ÿ•|๐Ÿ•‹|๐ŸŒ|๐ŸŒƒ|๐Ÿ™|๐ŸŒ„|๐ŸŒ…|๐ŸŒ†|๐ŸŒ‡|๐ŸŒ‰|๐ŸŽ |๐ŸŽก|๐ŸŽข|๐Ÿ’ˆ|๐ŸŽช|๐Ÿš‚|๐Ÿšƒ|๐Ÿš„|๐Ÿš…|๐Ÿš†|๐Ÿš‡|๐Ÿšˆ|๐Ÿš‰|๐ŸšŠ|๐Ÿš|๐Ÿšž|๐Ÿš‹|๐ŸšŒ|๐Ÿš|๐ŸšŽ|๐Ÿš|๐Ÿš‘|๐Ÿš’|๐Ÿš“|๐Ÿš”|๐Ÿš•|๐Ÿš–|๐Ÿš—|๐Ÿš˜|๐Ÿš™|๐Ÿ›ป|๐Ÿšš|๐Ÿš›|๐Ÿšœ|๐ŸŽ|๐Ÿ|๐Ÿ›ต|๐Ÿฆฝ|๐Ÿฆผ|๐Ÿ›บ|๐Ÿšฒ|๐Ÿ›ด|๐Ÿ›น|๐Ÿ›ผ|๐Ÿš|๐Ÿ›ฃ|๐Ÿ›ค|๐Ÿ›ข|๐Ÿšจ|๐Ÿšฅ|๐Ÿšฆ|๐Ÿ›‘|๐Ÿšง|๐Ÿ›ถ|๐Ÿšค|๐Ÿ›ณ|๐Ÿ›ฅ|๐Ÿšข|๐Ÿ›ฉ|๐Ÿ›ซ|๐Ÿ›ฌ|๐Ÿช‚|๐Ÿ’บ|๐Ÿš|๐ŸšŸ|๐Ÿš |๐Ÿšก|๐Ÿ›ฐ|๐Ÿš€|๐Ÿ›ธ|๐Ÿ›Ž|๐Ÿงณ|๐Ÿ•ฐ|๐Ÿ•›|๐Ÿ•ง|๐Ÿ•|๐Ÿ•œ|๐Ÿ•‘|๐Ÿ•|๐Ÿ•’|๐Ÿ•ž|๐Ÿ•“|๐Ÿ•Ÿ|๐Ÿ•”|๐Ÿ• |๐Ÿ••|๐Ÿ•ก|๐Ÿ•–|๐Ÿ•ข|๐Ÿ•—|๐Ÿ•ฃ|๐Ÿ•˜|๐Ÿ•ค|๐Ÿ•™|๐Ÿ•ฅ|๐Ÿ•š|๐Ÿ•ฆ|๐ŸŒ‘|๐ŸŒ’|๐ŸŒ“|๐ŸŒ”|๐ŸŒ•|๐ŸŒ–|๐ŸŒ—|๐ŸŒ˜|๐ŸŒ™|๐ŸŒš|๐ŸŒ›|๐ŸŒœ|๐ŸŒก|๐ŸŒ|๐ŸŒž|๐Ÿช|๐ŸŒŸ|๐ŸŒ |๐ŸŒŒ|๐ŸŒค|๐ŸŒฅ|๐ŸŒฆ|๐ŸŒง|๐ŸŒจ|๐ŸŒฉ|๐ŸŒช|๐ŸŒซ|๐ŸŒฌ|๐ŸŒ€|๐ŸŒˆ|๐ŸŒ‚|๐Ÿ”ฅ|๐Ÿ’ง|๐ŸŒŠ|๐ŸŽƒ|๐ŸŽ„|๐ŸŽ†|๐ŸŽ‡|๐Ÿงจ|๐ŸŽˆ|๐ŸŽ‰|๐ŸŽŠ|๐ŸŽ‹|๐ŸŽ|๐ŸŽŽ|๐ŸŽ|๐ŸŽ|๐ŸŽ‘|๐Ÿงง|๐ŸŽ€|๐ŸŽ|๐ŸŽ—|๐ŸŽŸ|๐ŸŽซ|๐ŸŽ–|๐Ÿ†|๐Ÿ…|๐Ÿฅ‡|๐Ÿฅˆ|๐Ÿฅ‰|๐ŸฅŽ|๐Ÿ€|๐Ÿ|๐Ÿˆ|๐Ÿ‰|๐ŸŽพ|๐Ÿฅ|๐ŸŽณ|๐Ÿ|๐Ÿ‘|๐Ÿ’|๐Ÿฅ|๐Ÿ“|๐Ÿธ|๐ŸฅŠ|๐Ÿฅ‹|๐Ÿฅ…|๐ŸŽฃ|๐Ÿคฟ|๐ŸŽฝ|๐ŸŽฟ|๐Ÿ›ท|๐ŸฅŒ|๐ŸŽฏ|๐Ÿช€|๐Ÿช|๐ŸŽฑ|๐Ÿ”ฎ|๐Ÿช„|๐Ÿงฟ|๐ŸŽฎ|๐Ÿ•น|๐ŸŽฐ|๐ŸŽฒ|๐Ÿงฉ|๐Ÿงธ|๐Ÿช…|๐Ÿช†|๐Ÿƒ|๐Ÿ€„|๐ŸŽด|๐ŸŽญ|๐Ÿ–ผ|๐ŸŽจ|๐Ÿงต|๐Ÿชก|๐Ÿงถ|๐Ÿชข|๐Ÿ‘“|๐Ÿ•ถ|๐Ÿฅฝ|๐Ÿฅผ|๐Ÿฆบ|๐Ÿ‘”|๐Ÿ‘•|๐Ÿ‘–|๐Ÿงฃ|๐Ÿงค|๐Ÿงฅ|๐Ÿงฆ|๐Ÿ‘—|๐Ÿ‘˜|๐Ÿฅป|๐Ÿฉฑ|๐Ÿฉฒ|๐Ÿฉณ|๐Ÿ‘™|๐Ÿ‘š|๐Ÿ‘›|๐Ÿ‘œ|๐Ÿ‘|๐Ÿ›|๐ŸŽ’|๐Ÿฉด|๐Ÿ‘ž|๐Ÿ‘Ÿ|๐Ÿฅพ|๐Ÿฅฟ|๐Ÿ‘ |๐Ÿ‘ก|๐Ÿฉฐ|๐Ÿ‘ข|๐Ÿ‘‘|๐Ÿ‘’|๐ŸŽฉ|๐ŸŽ“|๐Ÿงข|๐Ÿช–|๐Ÿ“ฟ|๐Ÿ’„|๐Ÿ’|๐Ÿ’Ž|๐Ÿ”‡|๐Ÿ”ˆ|๐Ÿ”‰|๐Ÿ”Š|๐Ÿ“ข|๐Ÿ“ฃ|๐Ÿ“ฏ|๐Ÿ””|๐Ÿ”•|๐ŸŽผ|๐ŸŽต|๐ŸŽถ|๐ŸŽ™|๐ŸŽš|๐ŸŽ›|๐ŸŽค|๐ŸŽง|๐Ÿ“ป|๐ŸŽท|๐Ÿช—|๐ŸŽธ|๐ŸŽน|๐ŸŽบ|๐ŸŽป|๐Ÿช•|๐Ÿฅ|๐Ÿช˜|๐Ÿ“ฑ|๐Ÿ“ฒ|๐Ÿ“ž|๐Ÿ“Ÿ|๐Ÿ“ |๐Ÿ”‹|๐Ÿ”Œ|๐Ÿ’ป|๐Ÿ–ฅ|๐Ÿ–จ|๐Ÿ–ฑ|๐Ÿ–ฒ|๐Ÿ’ฝ|๐Ÿ’พ|๐Ÿ’ฟ|๐Ÿ“€|๐Ÿงฎ|๐ŸŽฅ|๐ŸŽž|๐Ÿ“ฝ|๐ŸŽฌ|๐Ÿ“บ|๐Ÿ“ท|๐Ÿ“ธ|๐Ÿ“น|๐Ÿ“ผ|๐Ÿ”|๐Ÿ”Ž|๐Ÿ•ฏ|๐Ÿ’ก|๐Ÿ”ฆ|๐Ÿฎ|๐Ÿช”|๐Ÿ“”|๐Ÿ“•|๐Ÿ“–|๐Ÿ“—|๐Ÿ“˜|๐Ÿ“™|๐Ÿ“š|๐Ÿ““|๐Ÿ“’|๐Ÿ“ƒ|๐Ÿ“œ|๐Ÿ“„|๐Ÿ“ฐ|๐Ÿ—ž|๐Ÿ“‘|๐Ÿ”–|๐Ÿท|๐Ÿ’ฐ|๐Ÿช™|๐Ÿ’ด|๐Ÿ’ต|๐Ÿ’ถ|๐Ÿ’ท|๐Ÿ’ธ|๐Ÿ’ณ|๐Ÿงพ|๐Ÿ’น|๐Ÿ“ง|๐Ÿ“จ|๐Ÿ“ฉ|๐Ÿ“ค|๐Ÿ“ฅ|๐Ÿ“ฆ|๐Ÿ“ซ|๐Ÿ“ช|๐Ÿ“ฌ|๐Ÿ“ญ|๐Ÿ“ฎ|๐Ÿ—ณ|๐Ÿ–‹|๐Ÿ–Š|๐Ÿ–Œ|๐Ÿ–|๐Ÿ“|๐Ÿ’ผ|๐Ÿ“|๐Ÿ“‚|๐Ÿ—‚|๐Ÿ“…|๐Ÿ“†|๐Ÿ—’|๐Ÿ—“|๐Ÿ“‡|๐Ÿ“ˆ|๐Ÿ“‰|๐Ÿ“Š|๐Ÿ“‹|๐Ÿ“Œ|๐Ÿ“|๐Ÿ“Ž|๐Ÿ–‡|๐Ÿ“|๐Ÿ“|๐Ÿ—ƒ|๐Ÿ—„|๐Ÿ—‘|๐Ÿ”’|๐Ÿ”“|๐Ÿ”|๐Ÿ”|๐Ÿ”‘|๐Ÿ—|๐Ÿ”จ|๐Ÿช“|๐Ÿ› |๐Ÿ—ก|๐Ÿ”ซ|๐Ÿชƒ|๐Ÿน|๐Ÿ›ก|๐Ÿชš|๐Ÿ”ง|๐Ÿช›|๐Ÿ”ฉ|๐Ÿ—œ|๐Ÿฆฏ|๐Ÿ”—|๐Ÿช|๐Ÿงฐ|๐Ÿงฒ|๐Ÿชœ|๐Ÿงช|๐Ÿงซ|๐Ÿงฌ|๐Ÿ”ฌ|๐Ÿ”ญ|๐Ÿ“ก|๐Ÿ’‰|๐Ÿฉธ|๐Ÿ’Š|๐Ÿฉน|๐Ÿฉบ|๐Ÿšช|๐Ÿ›—|๐Ÿชž|๐ŸชŸ|๐Ÿ›|๐Ÿ›‹|๐Ÿช‘|๐Ÿšฝ|๐Ÿช |๐Ÿšฟ|๐Ÿ›|๐Ÿชค|๐Ÿช’|๐Ÿงด|๐Ÿงท|๐Ÿงน|๐Ÿงบ|๐Ÿงป|๐Ÿชฃ|๐Ÿงผ|๐Ÿชฅ|๐Ÿงฝ|๐Ÿงฏ|๐Ÿ›’|๐Ÿšฌ|๐Ÿชฆ|๐Ÿ—ฟ|๐Ÿชง|๐Ÿง|๐Ÿšฎ|๐Ÿšฐ|๐Ÿšน|๐Ÿšบ|๐Ÿšป|๐Ÿšผ|๐Ÿšพ|๐Ÿ›‚|๐Ÿ›ƒ|๐Ÿ›„|๐Ÿ›…|๐Ÿšธ|๐Ÿšซ|๐Ÿšณ|๐Ÿšญ|๐Ÿšฏ|๐Ÿšฑ|๐Ÿšท|๐Ÿ“ต|๐Ÿ”ž|๐Ÿ”ƒ|๐Ÿ”„|๐Ÿ”™|๐Ÿ”š|๐Ÿ”›|๐Ÿ”œ|๐Ÿ”|๐Ÿ›|๐Ÿ•‰|๐Ÿ•Ž|๐Ÿ”ฏ|๐Ÿ”€|๐Ÿ”|๐Ÿ”‚|๐Ÿ”ผ|๐Ÿ”ฝ|๐ŸŽฆ|๐Ÿ”…|๐Ÿ”†|๐Ÿ“ถ|๐Ÿ“ณ|๐Ÿ“ด|๐Ÿ’ฑ|๐Ÿ’ฒ|๐Ÿ”ฑ|๐Ÿ“›|๐Ÿ”ฐ|๐Ÿ”Ÿ|๐Ÿ” |๐Ÿ”ก|๐Ÿ”ข|๐Ÿ”ฃ|๐Ÿ”ค|๐Ÿ…ฐ|๐Ÿ†Ž|๐Ÿ…ฑ|๐Ÿ†‘|๐Ÿ†’|๐Ÿ†“|๐Ÿ†”|๐Ÿ†•|๐Ÿ†–|๐Ÿ…พ|๐Ÿ†—|๐Ÿ…ฟ|๐Ÿ†˜|๐Ÿ†™|๐Ÿ†š|๐Ÿˆ|๐Ÿˆ‚|๐Ÿˆท|๐Ÿˆถ|๐Ÿˆฏ|๐Ÿ‰|๐Ÿˆน|๐Ÿˆš|๐Ÿˆฒ|๐Ÿ‰‘|๐Ÿˆธ|๐Ÿˆด|๐Ÿˆณ|๐Ÿˆบ|๐Ÿˆต|๐Ÿ”ด|๐ŸŸ |๐ŸŸก|๐ŸŸข|๐Ÿ”ต|๐ŸŸฃ|๐ŸŸค|๐ŸŸฅ|๐ŸŸง|๐ŸŸจ|๐ŸŸฉ|๐ŸŸฆ|๐ŸŸช|๐ŸŸซ|๐Ÿ”ถ|๐Ÿ”ท|๐Ÿ”ธ|๐Ÿ”น|๐Ÿ”บ|๐Ÿ”ป|๐Ÿ’ |๐Ÿ”˜|๐Ÿ”ณ|๐Ÿ”ฒ|๐Ÿ|๐Ÿšฉ|๐ŸŽŒ|๐Ÿด|๐Ÿณ|๐Ÿป|๐Ÿผ|๐Ÿฝ|๐Ÿพ|๐Ÿฟ|โ˜บ|โ˜น|โ˜ |โฃ|โค|โœ‹|โœŒ|โ˜|โœŠ|โœ|โ›ท|โ›น|โ˜˜|โ˜•|โ›ฐ|โ›ช|โ›ฉ|โ›ฒ|โ›บ|โ™จ|โ›ฝ|โš“|โ›ต|โ›ด|โœˆ|โŒ›|โณ|โŒš|โฐ|โฑ|โฒ|โ˜€|โญ|โ˜|โ›…|โ›ˆ|โ˜‚|โ˜”|โ›ฑ|โšก|โ„|โ˜ƒ|โ›„|โ˜„|โœจ|โšฝ|โšพ|โ›ณ|โ›ธ|โ™ |โ™ฅ|โ™ฆ|โ™ฃ|โ™Ÿ|โ›‘|โ˜Ž|โŒจ|โœ‰|โœ|โœ’|โœ‚|โ›|โš’|โš”|โš™|โš–|โ›“|โš—|โšฐ|โšฑ|โ™ฟ|โš |โ›”|โ˜ข|โ˜ฃ|โฌ†|โ†—|โžก|โ†˜|โฌ‡|โ†™|โฌ…|โ†–|โ†•|โ†”|โ†ฉ|โ†ช|โคด|โคต|โš›|โœก|โ˜ธ|โ˜ฏ|โœ|โ˜ฆ|โ˜ช|โ˜ฎ|โ™ˆ|โ™‰|โ™Š|โ™‹|โ™Œ|โ™|โ™Ž|โ™|โ™|โ™‘|โ™’|โ™“|โ›Ž|โ–ถ|โฉ|โญ|โฏ|โ—€|โช|โฎ|โซ|โฌ|โธ|โน|โบ|โ|โ™€|โ™‚|โšง|โœ–|โž•|โž–|โž—|โ™พ|โ€ผ|โ‰|โ“|โ”|โ•|โ—|ใ€ฐ|โš•|โ™ป|โšœ|โญ•|โœ…|โ˜‘|โœ”|โŒ|โŽ|โžฐ|โžฟ|ใ€ฝ|โœณ|โœด|โ‡|ยฉ|ยฎ|โ„ข|โ„น|โ“‚|ใŠ—|ใŠ™|โšซ|โšช|โฌ›|โฌœ|โ—ผ|โ—ป|โ—พ|โ—ฝ|โ–ช|โ–ซ)`
/*compile the pattern string into a regex*/
let emoRegex = new RegExp(emojiPattern, "g")
/*extracting the emojis*/
let emojis = [..."This ๐Ÿ˜€๐Ÿ‘ฉโ€โš–๏ธis the ๐Ÿง—โ€โ™€๏ธtext๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ.".matchAll(emoRegex)];
console.log(emojis)
/*count of emojis*/
let emoCount = [..."This ๐Ÿ˜€๐Ÿ‘ฉโ€โš–๏ธis the ๐Ÿง—โ€โ™€๏ธtext๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ.".matchAll(emoRegex)].length
console.log(emoCount)
/*strip emojis from text*/
let stripped = "This ๐Ÿ˜€๐Ÿ‘ฉโ€โš–๏ธis the ๐Ÿง—โ€โ™€๏ธtext๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ.".replaceAll(emoRegex, "")
console.log(stripped)
/*use the pattern string to build a custom regex*/
let customRegex = new RegExp(".*"+emojiPattern+"{3}$") //match a string ending in 3 emojis
console.log(customRegex.test("yep three here ๐Ÿ˜€๐Ÿ‘ฉโ€โš–๏ธ๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ")) //true
console.log(customRegex.test("nope ๐Ÿฅฃ๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ")) //false
You can use regular expression to detect it in input text:
/([\uE000-\uF8FF]|\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDDFF])/g
I wrote the following function: containsEmojis(input, includeBasic=true), which checks an input string for emojis according to the list of emojis defined in the Unicode specification version 13 (see https://unicode.org/Public/emoji/13.0/emoji-sequences.txt), and allows to ignore "basic" emojis that can be represented with only 3 bytes.
The snippet below defines the function and runs a few test cases:
/**
* iterates over the code points of an input string and returns true if an emoji is found.
*
* an emoji is found if the hex code for the character is 5 characters starting with "1F",
* or if #includeBasic is true, the character is 4 and starts with one of the prefixes of
* a basic emoji as defined in the Unicode specification version 13
* see https://unicode.org/Public/emoji/13.0/emoji-sequences.txt
*
* #input the string to check
* #includeBasic include also the basic emojis that only take 3 characters
*/
function containsEmojis(input, includeBasic) {
if (typeof includeBasic == "undefined")
includeBasic = true;
for (var c of input) {
var cHex = ("" + c).codePointAt(0).toString(16);
var lHex = cHex.length;
if (lHex > 3) {
var prefix = cHex.substring(0, 2);
if (lHex == 5 && prefix == "1f") {
return true;
}
if (includeBasic && lHex == 4) {
if (["20", "21", "23", "24", "25", "26", "27", "2B", "29", "30", "32"].indexOf(prefix) > -1)
return true;
}
}
}
return false;
}
// can be tested as follows:
var input;
input = "Hello World!";
console.log(input, containsEmojis(input));
input = "Hello ๐ŸŒŽ!";
console.log(input, containsEmojis(input));
console.log(input, containsEmojis(input, false));
// now try a basic emoji
input = "It sparkles โœจ yay!";
console.log(input, containsEmojis(input));
// pass false for includeBasic
console.log(input, containsEmojis(input, false));
another solution I found that worked for me:
const example = '๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ๐Ÿชฒ';
const regexpEmojiPresentation = /\p{Emoji_Presentation}/gu;
console.log(example.match(regexpEmojiPresentation));
check the emoji like bellow ways
function getEmojiChars(text) {
console.log(text.match(/\ud83c[\udf00-\udfff]|\ud83d[\udc00-\ude4f]|\ud83d[\ude80-\udeff]/g)) ;
}
you will get the array of emoji in the text

RegExp to match string that includes 'apple' but does not match 'orange' in same string

Given the following data
green-pineapple-bird
red-apple-dog
blue-apple-cat
green-apple-orange-horse
green-apple-mouse
I am trying to figure out how to get (Javascript) RegExp.test() to match for any entry that contains the word "apple" (anywhere) but not match any entry that contains the word "orange" (anywhere). The resulting list would be:
red-apple-dog
blue-apple-cat
green-apple-mouse
I have included the dashes in the data just to make it easier to read. The actual data may, or may not, include dashes.
If I try this:
/^(?!orange).*(apple).*/gm
using https://regex101.com/ it matches all lines.
Using JavaScript RegEx excluding certain word/phrase? for inspiration I tried:
/^(?!.*apple\.(?:orange|butter)).*apple\.\w+.*/gm
If it makes a difference I am using Mozilla Rhino 1.7R4.
For each character not in apple (before or after), you need to repeat the negative lookahead for orange. Because you don't want pineapple to match, you should also put word boundaries around the apple:
const re = /^((?!orange).)*\bapple\b((?!orange).)*$/;
`green-pineapple-bird
red-apple-dog
blue-apple-cat
green-apple-orange-horse
green-apple-mouse`
.split('\n')
.forEach(str => {
console.log(re.test(str) + ' ' + str)
});

Tolerate certain characters in RegEx

I am writing a message formatting parser that has the capability (among others) to parse links. This specific case requires parsing a link in the from of <url|linkname> and replacing that text with just the linkname. The issue here is that both url or linkname may or may not contain \1 or \2 characters anywhere in any order (at most one of each though). I want to match the pattern but keep the "invalid" characters. This problem solves itself for linkname as that part of the pattern is just ([^\n+]), but the url fragment is matched by a much more complicated pattern, more specifically the URL validation pattern from is.js. It would not be trivial to modify the whole pattern manually to tolerate [\1\2] everywhere, and I need the pattern to preserve those characters as they are used for tracking purposes (so I can't simply just .replace(/\1|\2/g, "") before matching).
If this kind of matching is not possible, is there some automated way to reliably modify the RegExp to add [\1\2]{0,2} between every character match, add \1\2 to all [chars] matches, etc.
This is the url pattern taken from is.js:
/(?:(?:https?|ftp):\/\/)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?/i
This pattern was adapted for my purposes and for the <url|linkname> format as follows:
let namedUrlRegex = /<((?:(?:https?|ftp):\/\/)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?)\|([^\n]+)>/ig;
The code where this is used is here: JSFiddle
Examples for clarification (... represents the namedUrlRegex variable from above, and $2 is the capture group that captures linkname):
Current behavior:
"<googl\1e.com|Google>".replace(..., "$2") // "<googl\1e.com|Google>" WRONG
"<google.com|Goo\1gle>".replace(..., "$2") // "Goo\1gle" CORRECT
"<not_\1a_url|Google>".replace(..., "$2") // "<not_\1a_url|Google>" CORRECT
Expected behavior:
"<googl\1e.com|Google>".replace(..., "$2") // "Google" (note there is no \1)
"<google.com|Goo\1gle>".replace(..., "$2") // "Goo\1gle"
"<not_\1a_url|Google>".replace(..., "$2") // "<not_\1a_url|Google>"
Note the same rules for \1 apply to \2, \1\2, \1...\2, \2...\1 etc
Context: This is used to normalize a string from a WYSIWYG editor to the length/content that it will display as, preserving the location of the current selection (denoted by \1 and \2 so it can be restored after parsing). If the "caret" is removed completely (e.g. if the cursor was in the URL of a link), it will select the whole string instead. Everything works as expected, except for when the selection starts or ends in the url fragment.
Edit for clarification: I only want to change a segment in a string if it follows the format of <url|linkname> where url matches the URL pattern (tolerating \1, \2) and linkname consists of non-\n characters. If this condition is not met within a <...|...> string, it should be left unaltered as per the not_a_url example above.
I ended up making a RegEx that matches all "symbols" in the expression. One quirk of this is that it expects :, =, ! characters to be escaped, even outside of a (?:...), (?=...), (?!...) expression. This is addressed by escaping them before processing.
Fiddle
let r = /(\\.|\[.+?\]|\w|[^\\\/\[\]\^\$\(\)\?\*\+\{\}\|\+\:\=\!]|(\{.+?\}))(?:((?:\{.+?\}|\+|\*)\??)|\??)/g;
let url = /((?:(?:https?|ftp):\/\/)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?)/
function tolerate(regex, insert) {
let first = true;
// convert to string
return regex.toString().replace(/\/(.+)\//, "$1").
// escape :=!
replace(/((?:^|[^\\])\\(?:\\)*\(\?|[^?])([:=!]+)/g, (m, g1, g2) => g1 + (g2.split("").join("\\"))).
// substitute string
replace(r, function(m, g1, g2, g3, g4) {
// g2 = {...} multiplier (to prevent matching digits as symbols)
if (g2) return m;
// g3 = multiplier after symbol (must wrap in parenthesis to preserve behavior)
if (g3) return "(?:" + insert + g1 + ")" + g3;
// prevent matching tolerated characters at beginning, remove to change this behavior
if (first) {
first = false;
return m;
}
// insert the insert
return insert + m;
}
);
}
alert(tolerate(url, "\1?\2?"));

Uppercase for each new word swedish characters and html markup

I was pointed out to this post, which does not seem to follow the criteria I have:
Replace a Regex capture group with uppercase in Javascript
I am trying to make a regex that will:
format a string by adding uppercase for the first letter of each word and lower case for the rest of the characters
ignore HTML markup
Accept swedish characters (รฅรครถร…ร„ร–)
Say I've got this string:
<b>app</b>le store รถstersund
Then I want it to be (changes marked by uppercase characters)
<b>App</b>le Store ร–stersund
I've been playing around with it and the closest I've got is the following:
(?!([^<])*?>)[รฅรครถร…ร„ร–]|\s\b\w
Resulted in
<b>app</b>le Store ร–stersund
Or this
/(?!([^<])*?>)[รฅรครถร…ร„ร–]|\S\b\w/g
Resulted in
<B>App</B>Le store ร–stersund
Here's a fiddle:
http://refiddle.com/refiddles/598aabef75622d4a531b0000
Any help or advice is much appreciated.
It is not possible to do this with regexp alone, since regexp doesn't understand HTML structure. [*] Instead, we need to process each text node, and carry through our logic for what is the beginning of the word in case a word continues across different text nodes. A character is at start of the word if it is preceded by a whitespace, or if it is at the start of the string and it is either the first text node, or the previous text node ended in whitespace.
function htmlToTitlecase(html, letters) {
let div = document.createElement('div');
let re = new RegExp("(^|\\s)([" + letters + "])", "gi");
div.innerHTML = html;
let treeWalker = document.createTreeWalker(div, NodeFilter.SHOW_TEXT);
let startOfWord = true;
while (treeWalker.nextNode()) {
let node = treeWalker.currentNode;
node.data = node.data.replace(re, function(match, space, letter) {
if (space || startOfWord) {
return space + letter.toUpperCase();
} else {
return match;
}
});
startOfWord = node.data.match(/\s$/);
}
return div.innerHTML;
}
console.log(htmlToTitlecase("<b>app</b>le store รถstersund", "a-zรฅรครถ"));
// <b>App</b>le Store ร–stersund
[*] Maybe possible, but even if so, it would be horribly ugly, since it would need to cover an awful amount of corner cases. Also might need a stronger RegExp engine than JavaScript's, like Ruby's or Perl's.
EDIT:
Even if just specifying really simple html tags? The only ones I am actually in need of covering is <b> and </b> at the moment.
This was not specified in the question. The solution is general enough to work for any markup (including simple tags). But...
function simpleHtmlToTitlecaseSwedish(html) {
return html.replace(/(^|\s)(<\/?b>|)([a-zรฅรครถ])/gi, function(match, space, tag, letter) {
return space + tag + letter.toUpperCase();
});
}
console.log(simpleHtmlToTitlecaseSwedish("<b>app</b>le store รถstersund", "a-zรฅรครถ"));
I have a solution which use almost only regex. It may be not the most intuitive way to do it, but it should be effective and I find it funny :)
You have to append at the end of your string every lowercase character followed by their uppercase counterpart, like this (it must also be preceded by a space for my regex) :
aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZรฅร…รคร„รถร–
(I don't know which letters are missing, I know nothing about swedish alphabet, sorry... I'm counting on you to correct that !)
Then you can use the following regex :
(?![^<]*>)(\s<[^/]*?>|\s|^)([\wรฅรครถ])(?=.*\2(.)\S*$)|[\wรฅร…รคร„รถร–]+$
Replace by :
$1$3
Test it here
Here is a working javascript code :
// Initialization
var regex = /(?![^<]*>)(\s<[^/]*?>|\s|^)([\wรฅรครถ])(?=.*\2(.)\S*$)|[\wรฅร…รคร„รถร–]+$/g;
var string = "test <b when=\"2>1\">ap<i>p</i></b>le store รถstersund";
// Processing
result = string + " aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZรฅร…รคร„รถร–";
result = result.replace(regex, "$1$3");
// Display result
console.log(result);
Edit : I forgot to handle first word of the string, it's corrected :)

Get string between tags when multiple tags present

Just trying to figure this one out as regex is nowhere near my strong point :(
Basically I'm trying to get the value between bbcode tags: That could look like either of the following:
[center]text[/center]
[left][center]text[/center][/left]
[right][left][center]text[/center][/left][/right]
And currently have this hideous if else block of code to prevent it getting large like the third option above.
if (/\[left\]|\[\/left\]/.test(text[2])) {
// set the value in the [left][/left] tags
text[2] = text[2].match(/\[left\](.*?)\[\/left\]/)[1];
} else if (/\[right\]|\[\/right\]/.test(text[2])) {
// set value in the [right][/right] tags
text[2] = text[2].match(/\[right\](.*?)\[\/right\]/)[1];
} else if (/\[center\]|\[\/center\]/.test(text[2])) {
// set value in the [right][/right] tags
text[2] = text[2].match(/\[center\](.*?)\[\/center\]/)[1];
}
What I'd like to do is shorten it down to a single regex expression to grab that value text from the above examples, I've gotten down to an expression like this:
/\[(?:center|left|right)\](.*?)\[\/(?:center|left|right)\]/
But as you can see in this RegExr demo, it doesn't match what I need it to.
How can I achieve this?
Note
It should only match left|right|center as the selected text could also have various other bbcode tags.
If the string looks like this:
[center][left][img]/link/to/img.png[/img][/left][/center]
I want to get what is between the left|center|right tags which in this case would be:
[img]/link/to/img.png[/img]
More examples:
[center][url=lintosomething.com]LINK TEXT[/url][/center]
Should only get: [url=lintosomething.com]LINK TEXT[/url]
Or
[center]egibibskdfbgfdkfbg sd fgkgb fkgbgk fhwo3g regbiurb geir so go to [url=lintosomething.com]LINK TEXT[/url] and ibgri gbenkenbieurgnerougnerogrnreog erngo[/center]
Wanting:
egibibskdfbgfdkfbg sd fgkgb fkgbgk fhwo3g regbiurb geir so go to [url=lintosomething.com]LINK TEXT[/url] and ibgri gbenkenbieurgnerougnerogrnreog erngo
Edit: Ok, I think this fits your needs.
My regex:
/[^\]\[]*\[(\w+)[=\.\"\w]*\][^\]]+\[\/\1\][^\]\[]*/g
Explanation:
Match 0 or more characters that arent [ or ]
Match a single [
Match 1 or more of alpha characters, we'll use this later as a backreference
Match 0 or more of = . " or alpha characters
Match a single ]
Match 1 or more non [ characters
Match a single [
Match a single /
Match the same characters as step 3. (Our back reference)
Match a single ]
Match 0 or more characters that arent [ or ]
See it in action
However I would like to state that if you're going to be parsing bbcodes you're almost certainly better off just using a bbparser.
Why not just replace all those tags with empty string
var rawString; // your input string
var cleanedString = rawString.replace(~\[/?(left|right|center)\]~, '');
You could use a capturing group like this:
(?:\[\w+\])*(\w+)(?:\[\/\w+\])*
Or with a capture group named "value" like this:
(?:\[\w+\])*(?<value>\w+)(?:\[\/\w+\])*
The first and last groups are non-capturing... (?: ...)
And the middle group is capturing (\w+)
And the middle group if named like this (?<value>\w+)
Note: For simplicity, I replaced your center|left|right values with \w+ but you could swap them back in with no impact.
I use an app called RegExRX. Here's a screenshot with the RegEx and captured values.
Lots of ways you could tweak it. Good luck!

Categories

Resources