universal-logger-browser
Version:
Browser plugins for universal logger.
2,014 lines (1,912 loc) โข 88.1 kB
JavaScript
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // identity function for calling harmony imports with the correct context
/******/ __webpack_require__.i = function(value) { return value; };
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, {
/******/ configurable: false,
/******/ enumerable: true,
/******/ get: getter
/******/ });
/******/ }
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = "./index.js");
/******/ })
/************************************************************************/
/******/ ({
/***/ "../node_modules/error-stack-parser/error-stack-parser.js":
/***/ (function(module, exports, __webpack_require__) {
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function(root, factory) {
'use strict';
// Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.
/* istanbul ignore next */
if (true) {
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__("../node_modules/stackframe/stackframe.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
} else if (typeof exports === 'object') {
module.exports = factory(require('stackframe'));
} else {
root.ErrorStackParser = factory(root.StackFrame);
}
}(this, function ErrorStackParser(StackFrame) {
'use strict';
var FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\S+\:\d+/;
var CHROME_IE_STACK_REGEXP = /^\s*at .*(\S+\:\d+|\(native\))/m;
var SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\[native code\])?$/;
return {
/**
* Given an Error object, extract the most information from it.
*
* @param {Error} error object
* @return {Array} of StackFrames
*/
parse: function ErrorStackParser$$parse(error) {
if (typeof error.stacktrace !== 'undefined' || typeof error['opera#sourceloc'] !== 'undefined') {
return this.parseOpera(error);
} else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {
return this.parseV8OrIE(error);
} else if (error.stack) {
return this.parseFFOrSafari(error);
} else {
throw new Error('Cannot parse given Error object');
}
},
// Separate line and column numbers from a string of the form: (URI:Line:Column)
extractLocation: function ErrorStackParser$$extractLocation(urlLike) {
// Fail-fast but return locations like "(native)"
if (urlLike.indexOf(':') === -1) {
return [urlLike];
}
var regExp = /(.+?)(?:\:(\d+))?(?:\:(\d+))?$/;
var parts = regExp.exec(urlLike.replace(/[\(\)]/g, ''));
return [parts[1], parts[2] || undefined, parts[3] || undefined];
},
parseV8OrIE: function ErrorStackParser$$parseV8OrIE(error) {
var filtered = error.stack.split('\n').filter(function(line) {
return !!line.match(CHROME_IE_STACK_REGEXP);
}, this);
return filtered.map(function(line) {
if (line.indexOf('(eval ') > -1) {
// Throw away eval information until we implement stacktrace.js/stackframe#8
line = line.replace(/eval code/g, 'eval').replace(/(\(eval at [^\()]*)|(\)\,.*$)/g, '');
}
var tokens = line.replace(/^\s+/, '').replace(/\(eval code/g, '(').split(/\s+/).slice(1);
var locationParts = this.extractLocation(tokens.pop());
var functionName = tokens.join(' ') || undefined;
var fileName = ['eval', '<anonymous>'].indexOf(locationParts[0]) > -1 ? undefined : locationParts[0];
return new StackFrame({
functionName: functionName,
fileName: fileName,
lineNumber: locationParts[1],
columnNumber: locationParts[2],
source: line
});
}, this);
},
parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) {
var filtered = error.stack.split('\n').filter(function(line) {
return !line.match(SAFARI_NATIVE_CODE_REGEXP);
}, this);
return filtered.map(function(line) {
// Throw away eval information until we implement stacktrace.js/stackframe#8
if (line.indexOf(' > eval') > -1) {
line = line.replace(/ line (\d+)(?: > eval line \d+)* > eval\:\d+\:\d+/g, ':$1');
}
if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {
// Safari eval frames only have function names and nothing else
return new StackFrame({
functionName: line
});
} else {
var tokens = line.split('@');
var locationParts = this.extractLocation(tokens.pop());
var functionName = tokens.join('@') || undefined;
return new StackFrame({
functionName: functionName,
fileName: locationParts[0],
lineNumber: locationParts[1],
columnNumber: locationParts[2],
source: line
});
}
}, this);
},
parseOpera: function ErrorStackParser$$parseOpera(e) {
if (!e.stacktrace || (e.message.indexOf('\n') > -1 &&
e.message.split('\n').length > e.stacktrace.split('\n').length)) {
return this.parseOpera9(e);
} else if (!e.stack) {
return this.parseOpera10(e);
} else {
return this.parseOpera11(e);
}
},
parseOpera9: function ErrorStackParser$$parseOpera9(e) {
var lineRE = /Line (\d+).*script (?:in )?(\S+)/i;
var lines = e.message.split('\n');
var result = [];
for (var i = 2, len = lines.length; i < len; i += 2) {
var match = lineRE.exec(lines[i]);
if (match) {
result.push(new StackFrame({
fileName: match[2],
lineNumber: match[1],
source: lines[i]
}));
}
}
return result;
},
parseOpera10: function ErrorStackParser$$parseOpera10(e) {
var lineRE = /Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i;
var lines = e.stacktrace.split('\n');
var result = [];
for (var i = 0, len = lines.length; i < len; i += 2) {
var match = lineRE.exec(lines[i]);
if (match) {
result.push(
new StackFrame({
functionName: match[3] || undefined,
fileName: match[2],
lineNumber: match[1],
source: lines[i]
})
);
}
}
return result;
},
// Opera 10.65+ Error.stack very similar to FF/Safari
parseOpera11: function ErrorStackParser$$parseOpera11(error) {
var filtered = error.stack.split('\n').filter(function(line) {
return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);
}, this);
return filtered.map(function(line) {
var tokens = line.split('@');
var locationParts = this.extractLocation(tokens.pop());
var functionCall = (tokens.shift() || '');
var functionName = functionCall
.replace(/<anonymous function(: (\w+))?>/, '$2')
.replace(/\([^\)]*\)/g, '') || undefined;
var argsRaw;
if (functionCall.match(/\(([^\)]*)\)/)) {
argsRaw = functionCall.replace(/^[^\(]+\(([^\)]*)\)$/, '$1');
}
var args = (argsRaw === undefined || argsRaw === '[arguments not available]') ?
undefined : argsRaw.split(',');
return new StackFrame({
functionName: functionName,
args: args,
fileName: locationParts[0],
lineNumber: locationParts[1],
columnNumber: locationParts[2],
source: line
});
}, this);
}
};
}));
/***/ }),
/***/ "../node_modules/events/events.js":
/***/ (function(module, exports) {
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
function EventEmitter() {
this._events = this._events || {};
this._maxListeners = this._maxListeners || undefined;
}
module.exports = EventEmitter;
// Backwards-compat with node 0.10.x
EventEmitter.EventEmitter = EventEmitter;
EventEmitter.prototype._events = undefined;
EventEmitter.prototype._maxListeners = undefined;
// By default EventEmitters will print a warning if more than 10 listeners are
// added to it. This is a useful default which helps finding memory leaks.
EventEmitter.defaultMaxListeners = 10;
// Obviously not all Emitters should be limited to 10. This function allows
// that to be increased. Set to zero for unlimited.
EventEmitter.prototype.setMaxListeners = function(n) {
if (!isNumber(n) || n < 0 || isNaN(n))
throw TypeError('n must be a positive number');
this._maxListeners = n;
return this;
};
EventEmitter.prototype.emit = function(type) {
var er, handler, len, args, i, listeners;
if (!this._events)
this._events = {};
// If there is no 'error' event listener then throw.
if (type === 'error') {
if (!this._events.error ||
(isObject(this._events.error) && !this._events.error.length)) {
er = arguments[1];
if (er instanceof Error) {
throw er; // Unhandled 'error' event
} else {
// At least give some kind of context to the user
var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
err.context = er;
throw err;
}
}
}
handler = this._events[type];
if (isUndefined(handler))
return false;
if (isFunction(handler)) {
switch (arguments.length) {
// fast cases
case 1:
handler.call(this);
break;
case 2:
handler.call(this, arguments[1]);
break;
case 3:
handler.call(this, arguments[1], arguments[2]);
break;
// slower
default:
args = Array.prototype.slice.call(arguments, 1);
handler.apply(this, args);
}
} else if (isObject(handler)) {
args = Array.prototype.slice.call(arguments, 1);
listeners = handler.slice();
len = listeners.length;
for (i = 0; i < len; i++)
listeners[i].apply(this, args);
}
return true;
};
EventEmitter.prototype.addListener = function(type, listener) {
var m;
if (!isFunction(listener))
throw TypeError('listener must be a function');
if (!this._events)
this._events = {};
// To avoid recursion in the case that type === "newListener"! Before
// adding it to the listeners, first emit "newListener".
if (this._events.newListener)
this.emit('newListener', type,
isFunction(listener.listener) ?
listener.listener : listener);
if (!this._events[type])
// Optimize the case of one listener. Don't need the extra array object.
this._events[type] = listener;
else if (isObject(this._events[type]))
// If we've already got an array, just append.
this._events[type].push(listener);
else
// Adding the second element, need to change to array.
this._events[type] = [this._events[type], listener];
// Check for listener leak
if (isObject(this._events[type]) && !this._events[type].warned) {
if (!isUndefined(this._maxListeners)) {
m = this._maxListeners;
} else {
m = EventEmitter.defaultMaxListeners;
}
if (m && m > 0 && this._events[type].length > m) {
this._events[type].warned = true;
console.error('(node) warning: possible EventEmitter memory ' +
'leak detected. %d listeners added. ' +
'Use emitter.setMaxListeners() to increase limit.',
this._events[type].length);
if (typeof console.trace === 'function') {
// not supported in IE 10
console.trace();
}
}
}
return this;
};
EventEmitter.prototype.on = EventEmitter.prototype.addListener;
EventEmitter.prototype.once = function(type, listener) {
if (!isFunction(listener))
throw TypeError('listener must be a function');
var fired = false;
function g() {
this.removeListener(type, g);
if (!fired) {
fired = true;
listener.apply(this, arguments);
}
}
g.listener = listener;
this.on(type, g);
return this;
};
// emits a 'removeListener' event iff the listener was removed
EventEmitter.prototype.removeListener = function(type, listener) {
var list, position, length, i;
if (!isFunction(listener))
throw TypeError('listener must be a function');
if (!this._events || !this._events[type])
return this;
list = this._events[type];
length = list.length;
position = -1;
if (list === listener ||
(isFunction(list.listener) && list.listener === listener)) {
delete this._events[type];
if (this._events.removeListener)
this.emit('removeListener', type, listener);
} else if (isObject(list)) {
for (i = length; i-- > 0;) {
if (list[i] === listener ||
(list[i].listener && list[i].listener === listener)) {
position = i;
break;
}
}
if (position < 0)
return this;
if (list.length === 1) {
list.length = 0;
delete this._events[type];
} else {
list.splice(position, 1);
}
if (this._events.removeListener)
this.emit('removeListener', type, listener);
}
return this;
};
EventEmitter.prototype.removeAllListeners = function(type) {
var key, listeners;
if (!this._events)
return this;
// not listening for removeListener, no need to emit
if (!this._events.removeListener) {
if (arguments.length === 0)
this._events = {};
else if (this._events[type])
delete this._events[type];
return this;
}
// emit removeListener for all listeners on all events
if (arguments.length === 0) {
for (key in this._events) {
if (key === 'removeListener') continue;
this.removeAllListeners(key);
}
this.removeAllListeners('removeListener');
this._events = {};
return this;
}
listeners = this._events[type];
if (isFunction(listeners)) {
this.removeListener(type, listeners);
} else if (listeners) {
// LIFO order
while (listeners.length)
this.removeListener(type, listeners[listeners.length - 1]);
}
delete this._events[type];
return this;
};
EventEmitter.prototype.listeners = function(type) {
var ret;
if (!this._events || !this._events[type])
ret = [];
else if (isFunction(this._events[type]))
ret = [this._events[type]];
else
ret = this._events[type].slice();
return ret;
};
EventEmitter.prototype.listenerCount = function(type) {
if (this._events) {
var evlistener = this._events[type];
if (isFunction(evlistener))
return 1;
else if (evlistener)
return evlistener.length;
}
return 0;
};
EventEmitter.listenerCount = function(emitter, type) {
return emitter.listenerCount(type);
};
function isFunction(arg) {
return typeof arg === 'function';
}
function isNumber(arg) {
return typeof arg === 'number';
}
function isObject(arg) {
return typeof arg === 'object' && arg !== null;
}
function isUndefined(arg) {
return arg === void 0;
}
/***/ }),
/***/ "../node_modules/node-emoji/index.js":
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__("../node_modules/node-emoji/lib/emoji.js");
/***/ }),
/***/ "../node_modules/node-emoji/lib/emoji.js":
/***/ (function(module, exports, __webpack_require__) {
/*jslint node: true*/
__webpack_require__("../node_modules/string.prototype.codepointat/codepointat.js");
"use strict";
/**
* regex to parse emoji in a string - finds emoji, e.g. :coffee:
*/
var parser = /:([a-zA-Z0-9_\-\+]+):/g;
/**
* Removes colons on either side
* of the string if present
* @param {string} str
* @return {string}
*/
var trim = function(str) {
var colonIndex = str.indexOf(':');
if (colonIndex > -1) {
// :emoji: (http://www.emoji-cheat-sheet.com/)
if (colonIndex === str.length - 1) {
str = str.substring(0, colonIndex);
return trim(str);
} else {
str = str.substr(colonIndex + 1);
return trim(str);
}
}
return str;
}
/**
* Emoji namespace
*/
var Emoji = module.exports = {
emoji: __webpack_require__("../node_modules/node-emoji/lib/emoji.json")
};
/**
* get emoji code from name
* @param {string} emoji
* @return {string}
*/
Emoji._get = function _get(emoji) {
if (Emoji.emoji.hasOwnProperty(emoji)) {
return Emoji.emoji[emoji];
}
return ':' + emoji + ':';
};
/**
* get emoji code from :emoji: string or name
* @param {string} emoji
* @return {string}
*/
Emoji.get = function get(emoji) {
emoji = trim(emoji);
return Emoji._get(emoji);
};
/**
* get emoji name from code
* @param {string} emoji_code
* @return {string}
*/
Emoji.which = function which(emoji_code) {
for (var prop in Emoji.emoji) {
if (Emoji.emoji.hasOwnProperty(prop)) {
if (Emoji.emoji[prop].codePointAt() === emoji_code.codePointAt()) {
return prop;
}
}
}
};
/**
* emojify a string (replace :emoji: with an emoji)
* @param {string} str
* @param {function} on_missing (gets emoji name without :: and returns a proper emoji if no emoji was found)
* @return {string}
*/
Emoji.emojify = function emojify(str, on_missing) {
if (!str) return '';
return str.split(parser) // parse emoji via regex
.map(function parseEmoji(s, i) {
// every second element is an emoji, e.g. "test :fast_forward:" -> [ "test ", "fast_forward" ]
if (i % 2 === 0) return s;
var emoji = Emoji._get(s);
if (emoji.indexOf(':') > -1 && typeof on_missing === 'function') {
return on_missing(emoji.substr(1, emoji.length-2));
}
return emoji;
})
.join('') // convert back to string
;
};
/**
* return a random emoji
* @return {string}
*/
Emoji.random = function random() {
var emojiKeys = Object.keys(Emoji.emoji);
var randomIndex = Math.floor(Math.random() * emojiKeys.length);
var key = emojiKeys[randomIndex];
var emoji = Emoji._get(key);
return {key: key, emoji: emoji};
}
/**
* return an collection of potential emoji matches
* @param {string} str
* @return {Array.<Object>}
*/
Emoji.search = function search(str) {
var emojiKeys = Object.keys(Emoji.emoji);
var matcher = trim(str)
var matchingKeys = emojiKeys.filter(function(key) {
return key.toString().indexOf(matcher) === 0;
});
return matchingKeys.map(function(key) {
return {
key: key,
emoji: Emoji._get(key),
};
});
}
/***/ }),
/***/ "../node_modules/node-emoji/lib/emoji.json":
/***/ (function(module, exports) {
module.exports = {
"100": "๐ฏ",
"1234": "๐ข",
"interrobang": "โ๏ธ",
"tm": "โข๏ธ",
"information_source": "โน๏ธ",
"left_right_arrow": "โ๏ธ",
"arrow_up_down": "โ๏ธ",
"arrow_upper_left": "โ๏ธ",
"arrow_upper_right": "โ๏ธ",
"arrow_lower_right": "โ๏ธ",
"arrow_lower_left": "โ๏ธ",
"keyboard": "โจ",
"sunny": "โ๏ธ",
"cloud": "โ๏ธ",
"umbrella": "โ๏ธ",
"showman": "โ",
"comet": "โ",
"ballot_box_with_check": "โ๏ธ",
"coffee": "โ๏ธ",
"shamrock": "โ",
"skull_and_crossbones": "โ ",
"radioactive_sign": "โข",
"biohazard_sign": "โฃ",
"orthodox_cross": "โฆ",
"wheel_of_dharma": "โธ",
"white_frowning_face": "โน",
"aries": "โ๏ธ",
"taurus": "โ๏ธ",
"sagittarius": "โ๏ธ",
"capricorn": "โ๏ธ",
"aquarius": "โ๏ธ",
"pisces": "โ๏ธ",
"spades": "โ ๏ธ",
"clubs": "โฃ๏ธ",
"hearts": "โฅ๏ธ",
"diamonds": "โฆ๏ธ",
"hotsprings": "โจ๏ธ",
"hammer_and_pick": "โ",
"anchor": "โ๏ธ",
"crossed_swords": "โ",
"scales": "โ",
"alembic": "โ",
"gear": "โ",
"scissors": "โ๏ธ",
"white_check_mark": "โ
",
"airplane": "โ๏ธ",
"email": "โ๏ธ",
"envelope": "โ๏ธ",
"black_nib": "โ๏ธ",
"heavy_check_mark": "โ๏ธ",
"heavy_multiplication_x": "โ๏ธ",
"star_of_david": "โก",
"sparkles": "โจ",
"eight_spoked_asterisk": "โณ๏ธ",
"eight_pointed_black_star": "โด๏ธ",
"snowflake": "โ๏ธ",
"sparkle": "โ๏ธ",
"question": "โ",
"grey_question": "โ",
"grey_exclamation": "โ",
"exclamation": "โ๏ธ",
"heavy_exclamation_mark": "โ๏ธ",
"heavy_heart_exclamation_mark_ornament": "โฃ",
"heart": "โค๏ธ",
"heavy_plus_sign": "โ",
"heavy_minus_sign": "โ",
"heavy_division_sign": "โ",
"arrow_heading_up": "โคด๏ธ",
"arrow_heading_down": "โคต๏ธ",
"wavy_dash": "ใฐ๏ธ",
"congratulations": "ใ๏ธ",
"secret": "ใ๏ธ",
"copyright": "ยฉ๏ธ",
"registered": "ยฎ๏ธ",
"bangbang": "โผ๏ธ",
"leftwards_arrow_with_hook": "โฉ๏ธ",
"arrow_right_hook": "โช๏ธ",
"watch": "โ๏ธ",
"hourglass": "โ๏ธ",
"fast_forward": "โฉ",
"rewind": "โช",
"arrow_double_up": "โซ",
"arrow_double_down": "โฌ",
"black_right_pointing_double_triangle_with_vertical_bar": "โญ",
"black_left_pointing_double_triangle_with_vertical_bar": "โฎ",
"black_right_pointing_triangle_with_double_vertical_bar": "โฏ",
"alarm_clock": "โฐ",
"stopwatch": "โฑ",
"timer_clock": "โฒ",
"hourglass_flowing_sand": "โณ",
"double_vertical_bar": "โธ",
"black_square_for_stop": "โน",
"black_circle_for_record": "โบ",
"m": "โ๏ธ",
"black_small_square": "โช๏ธ",
"white_small_square": "โซ๏ธ",
"arrow_forward": "โถ๏ธ",
"arrow_backward": "โ๏ธ",
"white_medium_square": "โป๏ธ",
"black_medium_square": "โผ๏ธ",
"white_medium_small_square": "โฝ๏ธ",
"black_medium_small_square": "โพ๏ธ",
"phone": "โ๏ธ",
"telephone": "โ๏ธ",
"point_up": "โ๏ธ",
"star_and_crescent": "โช",
"peace_symbol": "โฎ",
"yin_yang": "โฏ",
"relaxed": "โบ๏ธ",
"gemini": "โ๏ธ",
"cancer": "โ๏ธ",
"leo": "โ๏ธ",
"virgo": "โ๏ธ",
"libra": "โ๏ธ",
"scorpius": "โ๏ธ",
"recycle": "โป๏ธ",
"wheelchair": "โฟ๏ธ",
"atom_symbol": "โ",
"fleur_de_lis": "โ",
"warning": "โ ๏ธ",
"zap": "โก๏ธ",
"white_circle": "โช๏ธ",
"black_circle": "โซ๏ธ",
"coffin": "โฐ",
"funeral_urn": "โฑ",
"soccer": "โฝ๏ธ",
"baseball": "โพ๏ธ",
"snowman": "โ๏ธ",
"partly_sunny": "โ
๏ธ",
"thunder_cloud_and_rain": "โ",
"ophiuchus": "โ",
"pick": "โ",
"helmet_with_white_cross": "โ",
"chains": "โ",
"no_entry": "โ๏ธ",
"shinto_shrine": "โฉ",
"church": "โช๏ธ",
"mountain": "โฐ",
"umbrella_on_ground": "โฑ",
"fountain": "โฒ๏ธ",
"golf": "โณ๏ธ",
"ferry": "โด",
"boat": "โต๏ธ",
"sailboat": "โต๏ธ",
"skier": "โท",
"ice_skate": "โธ",
"person_with_ball": "โน",
"tent": "โบ๏ธ",
"fuelpump": "โฝ๏ธ",
"fist": "โ",
"hand": "โ",
"raised_hand": "โ",
"v": "โ๏ธ",
"writing_hand": "โ",
"pencil2": "โ๏ธ",
"latin_cross": "โ",
"x": "โ",
"negative_squared_cross_mark": "โ",
"arrow_right": "โก๏ธ",
"curly_loop": "โฐ",
"loop": "โฟ",
"arrow_left": "โฌ
๏ธ",
"arrow_up": "โฌ๏ธ",
"arrow_down": "โฌ๏ธ",
"black_large_square": "โฌ๏ธ",
"white_large_square": "โฌ๏ธ",
"star": "โญ๏ธ",
"o": "โญ๏ธ",
"part_alternation_mark": "ใฝ๏ธ",
"mahjong": "๐๏ธ",
"black_joker": "๐",
"a": "๐
ฐ๏ธ",
"b": "๐
ฑ๏ธ",
"o2": "๐
พ๏ธ",
"parking": "๐
ฟ๏ธ",
"ab": "๐",
"cl": "๐",
"cool": "๐",
"free": "๐",
"id": "๐",
"new": "๐",
"ng": "๐",
"ok": "๐",
"sos": "๐",
"up": "๐",
"vs": "๐",
"koko": "๐",
"sa": "๐๏ธ",
"u7121": "๐๏ธ",
"u6307": "๐ฏ๏ธ",
"u7981": "๐ฒ",
"u7a7a": "๐ณ",
"u5408": "๐ด",
"u6e80": "๐ต",
"u6709": "๐ถ",
"u6708": "๐ท๏ธ",
"u7533": "๐ธ",
"u5272": "๐น",
"u55b6": "๐บ",
"ideograph_advantage": "๐",
"accept": "๐",
"cyclone": "๐",
"foggy": "๐",
"closed_umbrella": "๐",
"night_with_stars": "๐",
"sunrise_over_mountains": "๐",
"sunrise": "๐
",
"city_sunset": "๐",
"city_sunrise": "๐",
"rainbow": "๐",
"bridge_at_night": "๐",
"ocean": "๐",
"volcano": "๐",
"milky_way": "๐",
"earth_africa": "๐",
"earth_americas": "๐",
"earth_asia": "๐",
"globe_with_meridians": "๐",
"new_moon": "๐",
"waxing_crescent_moon": "๐",
"first_quarter_moon": "๐",
"moon": "๐",
"waxing_gibbous_moon": "๐",
"full_moon": "๐",
"waning_gibbous_moon": "๐",
"last_quarter_moon": "๐",
"waning_crescent_moon": "๐",
"crescent_moon": "๐",
"new_moon_with_face": "๐",
"first_quarter_moon_with_face": "๐",
"last_quarter_moon_with_face": "๐",
"full_moon_with_face": "๐",
"sun_with_face": "๐",
"star2": "๐",
"stars": "๐ ",
"thermometer": "๐ก",
"mostly_sunny": "๐ค",
"sun_small_cloud": "๐ค",
"barely_sunny": "๐ฅ",
"sun_behind_cloud": "๐ฅ",
"partly_sunny_rain": "๐ฆ",
"sun_behind_rain_cloud": "๐ฆ",
"rain_cloud": "๐ง",
"snow_cloud": "๐จ",
"lightning": "๐ฉ",
"lightning_cloud": "๐ฉ",
"tornado": "๐ช",
"tornado_cloud": "๐ช",
"fog": "๐ซ",
"wind_blowing_face": "๐ฌ",
"hotdog": "๐ญ",
"taco": "๐ฎ",
"burrito": "๐ฏ",
"chestnut": "๐ฐ",
"seedling": "๐ฑ",
"evergreen_tree": "๐ฒ",
"deciduous_tree": "๐ณ",
"palm_tree": "๐ด",
"cactus": "๐ต",
"hot_pepper": "๐ถ",
"tulip": "๐ท",
"cherry_blossom": "๐ธ",
"rose": "๐น",
"hibiscus": "๐บ",
"sunflower": "๐ป",
"blossom": "๐ผ",
"corn": "๐ฝ",
"ear_of_rice": "๐พ",
"herb": "๐ฟ",
"four_leaf_clover": "๐",
"maple_leaf": "๐",
"fallen_leaf": "๐",
"leaves": "๐",
"mushroom": "๐",
"tomato": "๐
",
"eggplant": "๐",
"grapes": "๐",
"melon": "๐",
"watermelon": "๐",
"tangerine": "๐",
"lemon": "๐",
"banana": "๐",
"pineapple": "๐",
"apple": "๐",
"green_apple": "๐",
"pear": "๐",
"peach": "๐",
"cherries": "๐",
"strawberry": "๐",
"hamburger": "๐",
"pizza": "๐",
"meat_on_bone": "๐",
"poultry_leg": "๐",
"rice_cracker": "๐",
"rice_ball": "๐",
"rice": "๐",
"curry": "๐",
"ramen": "๐",
"spaghetti": "๐",
"bread": "๐",
"fries": "๐",
"sweet_potato": "๐ ",
"dango": "๐ก",
"oden": "๐ข",
"sushi": "๐ฃ",
"fried_shrimp": "๐ค",
"fish_cake": "๐ฅ",
"icecream": "๐ฆ",
"shaved_ice": "๐ง",
"ice_cream": "๐จ",
"doughnut": "๐ฉ",
"cookie": "๐ช",
"chocolate_bar": "๐ซ",
"candy": "๐ฌ",
"lollipop": "๐ญ",
"custard": "๐ฎ",
"honey_pot": "๐ฏ",
"cake": "๐ฐ",
"bento": "๐ฑ",
"stew": "๐ฒ",
"egg": "๐ณ",
"fork_and_knife": "๐ด",
"tea": "๐ต",
"sake": "๐ถ",
"wine_glass": "๐ท",
"cocktail": "๐ธ",
"tropical_drink": "๐น",
"beer": "๐บ",
"beers": "๐ป",
"baby_bottle": "๐ผ",
"knife_fork_plate": "๐ฝ",
"champagne": "๐พ",
"popcorn": "๐ฟ",
"ribbon": "๐",
"gift": "๐",
"birthday": "๐",
"jack_o_lantern": "๐",
"christmas_tree": "๐",
"santa": "๐
",
"fireworks": "๐",
"sparkler": "๐",
"balloon": "๐",
"tada": "๐",
"confetti_ball": "๐",
"tanabata_tree": "๐",
"crossed_flags": "๐",
"bamboo": "๐",
"dolls": "๐",
"flags": "๐",
"wind_chime": "๐",
"rice_scene": "๐",
"school_satchel": "๐",
"mortar_board": "๐",
"medal": "๐",
"reminder_ribbon": "๐",
"studio_microphone": "๐",
"level_slider": "๐",
"control_knobs": "๐",
"film_frames": "๐",
"admission_tickets": "๐",
"carousel_horse": "๐ ",
"ferris_wheel": "๐ก",
"roller_coaster": "๐ข",
"fishing_pole_and_fish": "๐ฃ",
"microphone": "๐ค",
"movie_camera": "๐ฅ",
"cinema": "๐ฆ",
"headphones": "๐ง",
"art": "๐จ",
"tophat": "๐ฉ",
"circus_tent": "๐ช",
"ticket": "๐ซ",
"clapper": "๐ฌ",
"performing_arts": "๐ญ",
"video_game": "๐ฎ",
"dart": "๐ฏ",
"slot_machine": "๐ฐ",
"8ball": "๐ฑ",
"game_die": "๐ฒ",
"bowling": "๐ณ",
"flower_playing_cards": "๐ด",
"musical_note": "๐ต",
"notes": "๐ถ",
"saxophone": "๐ท",
"guitar": "๐ธ",
"musical_keyboard": "๐น",
"trumpet": "๐บ",
"violin": "๐ป",
"musical_score": "๐ผ",
"running_shirt_with_sash": "๐ฝ",
"tennis": "๐พ",
"ski": "๐ฟ",
"basketball": "๐",
"checkered_flag": "๐",
"snowboarder": "๐",
"runner": "๐",
"running": "๐",
"surfer": "๐",
"sports_medal": "๐
",
"trophy": "๐",
"horse_racing": "๐",
"football": "๐",
"rugby_football": "๐",
"swimmer": "๐",
"weight_lifter": "๐",
"golfer": "๐",
"racing_motorcycle": "๐",
"racing_car": "๐",
"cricket_bat_and_ball": "๐",
"volleyball": "๐",
"field_hockey_stick_and_ball": "๐",
"ice_hockey_stick_and_puck": "๐",
"table_tennis_paddle_and_ball": "๐",
"snow_capped_mountain": "๐",
"camping": "๐",
"beach_with_umbrella": "๐",
"building_construction": "๐",
"house_buildings": "๐",
"cityscape": "๐",
"derelict_house_building": "๐",
"classical_building": "๐",
"desert": "๐",
"desert_island": "๐",
"national_park": "๐",
"stadium": "๐",
"house": "๐ ",
"house_with_garden": "๐ก",
"office": "๐ข",
"post_office": "๐ฃ",
"european_post_office": "๐ค",
"hospital": "๐ฅ",
"bank": "๐ฆ",
"atm": "๐ง",
"hotel": "๐จ",
"love_hotel": "๐ฉ",
"convenience_store": "๐ช",
"school": "๐ซ",
"department_store": "๐ฌ",
"factory": "๐ญ",
"izakaya_lantern": "๐ฎ",
"lantern": "๐ฎ",
"japanese_castle": "๐ฏ",
"european_castle": "๐ฐ",
"waving_white_flag": "๐ณ",
"waving_black_flag": "๐ด",
"rosette": "๐ต",
"label": "๐ท",
"badminton_racquet_and_shuttlecock": "๐ธ",
"bow_and_arrow": "๐น",
"amphora": "๐บ",
"skin-tone-2": "๐ป",
"skin-tone-3": "๐ผ",
"skin-tone-4": "๐ฝ",
"skin-tone-5": "๐พ",
"skin-tone-6": "๐ฟ",
"rat": "๐",
"mouse2": "๐",
"ox": "๐",
"water_buffalo": "๐",
"cow2": "๐",
"tiger2": "๐
",
"leopard": "๐",
"rabbit2": "๐",
"cat2": "๐",
"dragon": "๐",
"crocodile": "๐",
"whale2": "๐",
"snail": "๐",
"snake": "๐",
"racehorse": "๐",
"ram": "๐",
"goat": "๐",
"sheep": "๐",
"monkey": "๐",
"rooster": "๐",
"chicken": "๐",
"dog2": "๐",
"pig2": "๐",
"boar": "๐",
"elephant": "๐",
"octopus": "๐",
"shell": "๐",
"bug": "๐",
"ant": "๐",
"bee": "๐",
"honeybee": "๐",
"beetle": "๐",
"fish": "๐",
"tropical_fish": "๐ ",
"blowfish": "๐ก",
"turtle": "๐ข",
"hatching_chick": "๐ฃ",
"baby_chick": "๐ค",
"hatched_chick": "๐ฅ",
"bird": "๐ฆ",
"penguin": "๐ง",
"koala": "๐จ",
"poodle": "๐ฉ",
"dromedary_camel": "๐ช",
"camel": "๐ซ",
"dolphin": "๐ฌ",
"flipper": "๐ฌ",
"mouse": "๐ญ",
"cow": "๐ฎ",
"tiger": "๐ฏ",
"rabbit": "๐ฐ",
"cat": "๐ฑ",
"dragon_face": "๐ฒ",
"whale": "๐ณ",
"horse": "๐ด",
"monkey_face": "๐ต",
"dog": "๐ถ",
"pig": "๐ท",
"frog": "๐ธ",
"hamster": "๐น",
"wolf": "๐บ",
"bear": "๐ป",
"panda_face": "๐ผ",
"pig_nose": "๐ฝ",
"feet": "๐พ",
"paw_prints": "๐พ",
"chipmunk": "๐ฟ",
"eyes": "๐",
"eye": "๐",
"ear": "๐",
"nose": "๐",
"lips": "๐",
"tongue": "๐
",
"point_up_2": "๐",
"point_down": "๐",
"point_left": "๐",
"point_right": "๐",
"facepunch": "๐",
"punch": "๐",
"wave": "๐",
"ok_hand": "๐",
"+1": "๐",
"thumbsup": "๐",
"-1": "๐",
"thumbsdown": "๐",
"clap": "๐",
"open_hands": "๐",
"crown": "๐",
"womans_hat": "๐",
"eyeglasses": "๐",
"necktie": "๐",
"shirt": "๐",
"tshirt": "๐",
"jeans": "๐",
"dress": "๐",
"kimono": "๐",
"bikini": "๐",
"womans_clothes": "๐",
"purse": "๐",
"handbag": "๐",
"pouch": "๐",
"mans_shoe": "๐",
"shoe": "๐",
"athletic_shoe": "๐",
"high_heel": "๐ ",
"sandal": "๐ก",
"boot": "๐ข",
"footprints": "๐ฃ",
"bust_in_silhouette": "๐ค",
"busts_in_silhouette": "๐ฅ",
"boy": "๐ฆ",
"girl": "๐ง",
"man": "๐จ",
"woman": "๐ฉ",
"family": "๐จโ๐ฉโ๐ฆ",
"man-woman-boy": "๐จโ๐ฉโ๐ฆ",
"couple": "๐ซ",
"man_and_woman_holding_hands": "๐ซ",
"two_men_holding_hands": "๐ฌ",
"two_women_holding_hands": "๐ญ",
"cop": "๐ฎ",
"dancers": "๐ฏ",
"bride_with_veil": "๐ฐ",
"person_with_blond_hair": "๐ฑ",
"man_with_gua_pi_mao": "๐ฒ",
"man_with_turban": "๐ณ",
"older_man": "๐ด",
"older_woman": "๐ต",
"baby": "๐ถ",
"construction_worker": "๐ท",
"princess": "๐ธ",
"japanese_ogre": "๐น",
"japanese_goblin": "๐บ",
"ghost": "๐ป",
"angel": "๐ผ",
"alien": "๐ฝ",
"space_invader": "๐พ",
"imp": "๐ฟ",
"skull": "๐",
"information_desk_person": "๐",
"guardsman": "๐",
"dancer": "๐",
"lipstick": "๐",
"nail_care": "๐
",
"massage": "๐",
"haircut": "๐",
"barber": "๐",
"syringe": "๐",
"pill": "๐",
"kiss": "๐",
"love_letter": "๐",
"ring": "๐",
"gem": "๐",
"couplekiss": "๐",
"bouquet": "๐",
"couple_with_heart": "๐",
"wedding": "๐",
"heartbeat": "๐",
"broken_heart": "๐",
"two_hearts": "๐",
"sparkling_heart": "๐",
"heartpulse": "๐",
"cupid": "๐",
"blue_heart": "๐",
"green_heart": "๐",
"yellow_heart": "๐",
"purple_heart": "๐",
"gift_heart": "๐",
"revolving_hearts": "๐",
"heart_decoration": "๐",
"diamond_shape_with_a_dot_inside": "๐ ",
"bulb": "๐ก",
"anger": "๐ข",
"bomb": "๐ฃ",
"zzz": "๐ค",
"boom": "๐ฅ",
"collision": "๐ฅ",
"sweat_drops": "๐ฆ",
"droplet": "๐ง",
"dash": "๐จ",
"hankey": "๐ฉ",
"poop": "๐ฉ",
"shit": "๐ฉ",
"muscle": "๐ช",
"dizzy": "๐ซ",
"speech_balloon": "๐ฌ",
"thought_balloon": "๐ญ",
"white_flower": "๐ฎ",
"moneybag": "๐ฐ",
"currency_exchange": "๐ฑ",
"heavy_dollar_sign": "๐ฒ",
"credit_card": "๐ณ",
"yen": "๐ด",
"dollar": "๐ต",
"euro": "๐ถ",
"pound": "๐ท",
"money_with_wings": "๐ธ",
"chart": "๐น",
"seat": "๐บ",
"computer": "๐ป",
"briefcase": "๐ผ",
"minidisc": "๐ฝ",
"floppy_disk": "๐พ",
"cd": "๐ฟ",
"dvd": "๐",
"file_folder": "๐",
"open_file_folder": "๐",
"page_with_curl": "๐",
"page_facing_up": "๐",
"date": "๐
",
"calendar": "๐",
"card_index": "๐",
"chart_with_upwards_trend": "๐",
"chart_with_downwards_trend": "๐",
"bar_chart": "๐",
"clipboard": "๐",
"pushpin": "๐",
"round_pushpin": "๐",
"paperclip": "๐",
"straight_ruler": "๐",
"triangular_ruler": "๐",
"bookmark_tabs": "๐",
"ledger": "๐",
"notebook": "๐",
"notebook_with_decorative_cover": "๐",
"closed_book": "๐",
"book": "๐",
"open_book": "๐",
"green_book": "๐",
"blue_book": "๐",
"orange_book": "๐",
"books": "๐",
"name_badge": "๐",
"scroll": "๐",
"memo": "๐",
"pencil": "๐",
"telephone_receiver": "๐",
"pager": "๐",
"fax": "๐ ",
"satellite": "๐ฐ",
"loudspeaker": "๐ข",
"mega": "๐ฃ",
"outbox_tray": "๐ค",
"inbox_tray": "๐ฅ",
"package": "๐ฆ",
"e-mail": "๐ง",
"incoming_envelope": "๐จ",
"envelope_with_arrow": "๐ฉ",
"mailbox_closed": "๐ช",
"mailbox": "๐ซ",
"mailbox_with_mail": "๐ฌ",
"mailbox_with_no_mail": "๐ญ",
"postbox": "๐ฎ",
"postal_horn": "๐ฏ",
"newspaper": "๐ฐ",
"iphone": "๐ฑ",
"calling": "๐ฒ",
"vibration_mode": "๐ณ",
"mobile_phone_off": "๐ด",
"no_mobile_phones": "๐ต",
"signal_strength": "๐ถ",
"camera": "๐ท",
"camera_with_flash": "๐ธ",
"video_camera": "๐น",
"tv": "๐บ",
"radio": "๐ป",
"vhs": "๐ผ",
"film_projector": "๐ฝ",
"prayer_beads": "๐ฟ",
"twisted_rightwards_arrows": "๐",
"repeat": "๐",
"repeat_one": "๐",
"arrows_clockwise": "๐",
"arrows_counterclockwise": "๐",
"low_brightness": "๐
",
"high_brightness": "๐",
"mute": "๐",
"speaker": "๐",
"sound": "๐",
"loud_sound": "๐",
"battery": "๐",
"electric_plug": "๐",
"mag": "๐",
"mag_right": "๐",
"lock_with_ink_pen": "๐",
"closed_lock_with_key": "๐",
"key": "๐",
"lock": "๐",
"unlock": "๐",
"bell": "๐",
"no_bell": "๐",
"bookmark": "๐",
"link": "๐",
"radio_button": "๐",
"back": "๐",
"end": "๐",
"on": "๐",
"soon": "๐",
"top": "๐",
"underage": "๐",
"keycap_ten": "๐",
"capital_abcd": "๐ ",
"abcd": "๐ก",
"symbols": "๐ฃ",
"abc": "๐ค",
"fire": "๐ฅ",
"flashlight": "๐ฆ",
"wrench": "๐ง",
"hammer": "๐จ",
"nut_and_bolt": "๐ฉ",
"hocho": "๐ช",
"knife": "๐ช",
"gun": "๐ซ",
"microscope": "๐ฌ",
"telescope": "๐ญ",
"crystal_ball": "๐ฎ",
"six_pointed_star": "๐ฏ",
"beginner": "๐ฐ",
"trident": "๐ฑ",
"black_square_button": "๐ฒ",
"white_square_button": "๐ณ",
"red_circle": "๐ด",
"large_blue_circle": "๐ต",
"large_orange_diamond": "๐ถ",
"large_blue_diamond": "๐ท",
"small_orange_diamond": "๐ธ",
"small_blue_diamond": "๐น",
"small_red_triangle": "๐บ",
"small_red_triangle_down": "๐ป",
"arrow_up_small": "๐ผ",
"arrow_down_small": "๐ฝ",
"om_symbol": "๐",
"dove_of_peace": "๐",
"kaaba": "๐",
"mosque": "๐",
"synagogue": "๐",
"menorah_with_nine_branches": "๐",
"clock1": "๐",
"clock2": "๐",
"clock3": "๐",
"clock4": "๐",
"clock5": "๐",
"clock6": "๐",
"clock7": "๐",
"clock8": "๐",
"clock9": "๐",
"clock10": "๐",
"clock11": "๐",
"clock12": "๐",
"clock130": "๐",
"clock230": "๐",
"clock330": "๐",
"clock430": "๐",
"clock530": "๐ ",
"clock630": "๐ก",
"clock730": "๐ข",
"clock830": "๐ฃ",
"clock930": "๐ค",
"clock1030": "๐ฅ",
"clock1130": "๐ฆ",
"clock1230": "๐ง",
"candle": "๐ฏ",
"mantelpiece_clock": "๐ฐ",
"hole": "๐ณ",
"man_in_business_suit_levitating": "๐ด",
"sleuth_or_spy": "๐ต",
"dark_sunglasses": "๐ถ",
"spider": "๐ท",
"spider_web": "๐ธ",
"joystick": "๐น",
"linked_paperclips": "๐",
"lower_left_ballpoint_pen": "๐",
"lower_left_fountain_pen": "๐",
"lower_left_paintbrush": "๐",
"lower_left_crayon": "๐",
"raised_hand_with_fingers_splayed": "๐",
"middle_finger": "๐",
"reversed_hand_with_middle_finger_extended": "๐",
"spock-hand": "๐",
"desktop_computer": "๐ฅ",
"printer": "๐จ",
"three_button_mouse": "๐ฑ",
"trackball": "๐ฒ",
"frame_with_picture": "๐ผ",
"card_index_dividers": "๐",
"card_file_box": "๐",
"file_cabinet": "๐",
"wastebasket": "๐",
"spiral_note_pad": "๐",
"spiral_calendar_pad": "๐",
"compression": "๐",
"old_key": "๐",
"rolled_up_newspaper": "๐",
"dagger_knife": "๐ก",
"speaking_head_in_silhouette": "๐ฃ",
"left_speech_bubble": "๐จ",
"right_anger_bubble": "๐ฏ",
"ballot_box_with_ballot": "๐ณ",
"world_map": "๐บ",
"mount_fuji": "๐ป",
"tokyo_tower": "๐ผ",
"statue_of_liberty": "๐ฝ",
"japan": "๐พ",
"moyai": "๐ฟ",
"grinning": "๐",
"grin": "๐",
"joy": "๐",
"smiley": "๐",
"smile": "๐",
"sweat_smile": "๐
",
"laughing": "๐",
"satisfied": "๐",
"innocent": "๐",
"smiling_imp": "๐",
"wink": "๐",
"blush": "๐",
"yum": "๐",
"relieved": "๐",
"heart_eyes": "๐",
"sunglasses": "๐",
"smirk": "๐",
"neutral_face": "๐",
"expressionless": "๐",
"unamused": "๐",
"sweat": "๐",
"pensive": "๐",
"confused": "๐",
"confounded": "๐",
"kissing": "๐",
"kissing_heart": "๐",
"kissing_smiling_eyes": "๐",
"kissing_closed_eyes": "๐",
"stuck_out_tongue": "๐",
"stuck_out_tongue_winking_eye": "๐",
"stuck_out_tongue_closed_eyes": "๐",
"disappointed": "๐",
"worried": "๐",
"angry": "๐ ",
"rage": "๐ก",
"cry": "๐ข",
"persevere": "๐ฃ",
"triumph": "๐ค",
"disappointed_relieved": "๐ฅ",
"frowning": "๐ฆ",
"anguished": "๐ง",
"fearful": "๐จ",
"weary": "๐ฉ",
"sleepy": "๐ช",
"tired_face": "๐ซ",
"grimacing": "๐ฌ",
"sob": "๐ญ",
"open_mouth": "๐ฎ",
"hushed": "๐ฏ",
"cold_sweat": "๐ฐ",
"scream": "๐ฑ",
"astonished": "๐ฒ",
"flushed": "๐ณ",
"sleeping": "๐ด",
"dizzy_face": "๐ต",
"no_mouth": "๐ถ",
"mask": "๐ท",
"smile_cat": "๐ธ",
"joy_cat": "๐น",
"smiley_cat": "๐บ",
"heart_eyes_cat": "๐ป",
"smirk_cat": "๐ผ",
"kissing_cat": "๐ฝ",
"pouting_cat": "๐พ",
"crying_cat_face": "๐ฟ",
"scream_cat": "๐",
"slightly_frowning_face": "๐",
"slightly_smiling_face": "๐",
"upside_down_face": "๐",
"face_with_rolling_eyes": "๐",
"no_good": "๐
",
"ok_woman": "๐",
"bow": "๐",
"see_no_evil": "๐",
"hear_no_evil": "๐",
"speak_no_evil": "๐",
"raising_hand": "๐",
"raised_hands": "๐",
"person_frowning": "๐",
"person_with_pouting_face": "๐",
"pray": "๐",
"rocket": "๐",
"helicopter": "๐",
"steam_locomotive": "๐",
"railway_car": "๐",
"bullettrain_side": "๐",
"bullettrain_front": "๐
",
"train2": "๐",
"metro": "๐",
"light_rail": "๐",
"station": "๐",
"tram": "๐",
"train": "๐",
"bus": "๐",
"oncoming_bus": "๐",
"trolleybus": "๐",
"busstop": "๐",
"minibus": "๐",
"ambulance": "๐",
"fire_engine": "๐",
"police_car": "๐",
"oncoming_police_car": "๐",
"taxi": "๐",
"oncoming_taxi": "๐",
"car": "๐",
"red_car": "๐",
"oncoming_automobile": "๐",
"blue_car": "๐",
"truck": "๐",
"articulated_lorry": "๐",
"tractor": "๐",
"monorail": "๐",
"mountain_railway": "๐",
"suspension_railway": "๐",
"mountain_cableway": "๐ ",
"aerial_tramway": "๐ก",
"ship": "๐ข",
"rowboat": "๐ฃ",
"speedboat": "๐ค",
"traffic_light": "๐ฅ",
"vertical_traffic_light": "๐ฆ",
"construction": "๐ง",
"rotating_light": "๐จ",
"triangular_flag_on_post": "๐ฉ",
"door": "๐ช",
"no_entry_sign": "๐ซ",
"smoking": "๐ฌ",
"no_smoking": "๐ญ",
"put_litter_in_its_place": "๐ฎ",
"do_not_litter": "๐ฏ",
"potable_water": "๐ฐ",
"non-potable_water": "๐ฑ",
"bike": "๐ฒ",
"no_bicycles": "๐ณ",
"bicyclist": "๐ด",
"mountain_bicyclist": "๐ต",
"walking": "๐ถ",
"no_pedestrians": "๐ท",
"children_crossing": "๐ธ",
"mens": "๐น",
"womens": "๐บ",
"restroom": "๐ป",
"baby_symbol": "๐ผ",
"toilet": "๐ฝ",
"wc": "๐พ",
"shower": "๐ฟ",
"bath": "๐",
"bathtub": "๐",
"passport_control": "๐",
"customs": "๐",
"baggage_claim": "๐",
"left_luggage": "๐
",
"couch_and_lamp": "๐",
"sleeping_accommodation": "๐",
"shopping_bags": "๐",
"bellhop_bell": "๐",
"bed": "๐",
"place_of_worship": "๐",
"hammer_and_wrench": "๐ ",
"shield": "๐ก",
"oil_drum": "๐ข",
"motorway": "๐ฃ",
"railway_track": "๐ค",
"motor_boat": "๐ฅ",
"small_airplane": "๐ฉ",
"airplane_departure": "๐ซ",
"airplane_arriving": "๐ฌ",
"passenger_ship": "๐ณ",
"zipper_mouth_face": "๐ค",
"money_mouth_face": "๐ค",
"face_with_thermometer": "๐ค",
"nerd_face": "๐ค",
"thinking_face": "๐ค",
"face_with_head_bandage": "๐ค",
"robot_face": "๐ค",
"hugging_face": "๐ค",
"the_horns": "๐ค",
"sign_of_the_horns": "๐ค",
"crab": "๐ฆ",
"lion_face": "๐ฆ",
"scorpion": "๐ฆ",
"turkey": "๐ฆ",
"unicorn_face": "๐ฆ",
"cheese_wedge": "๐ง",
"hash": "#๏ธโฃ",
"keycap_star": "*โฃ",
"zero": "0๏ธโฃ",
"one": "1๏ธโฃ",
"two": "2๏ธโฃ",
"three": "3๏ธโฃ",
"four": "4๏ธโฃ",
"five": "5๏ธโฃ",
"six": "6๏ธโฃ",
"seven": "7๏ธโฃ",
"eight": "8๏ธโฃ",
"nine": "9๏ธโฃ",
"flag-ac": "๐ฆ๐จ",
"flag-ad": "๐ฆ๐ฉ",
"flag-ae": "๐ฆ๐ช",
"flag-af": "๐ฆ๐ซ",
"flag-ag": "๐ฆ๐ฌ",
"flag-ai": "๐ฆ๐ฎ",
"flag-al": "๐ฆ๐ฑ",
"flag-am": "๐ฆ๐ฒ",
"flag-ao": "๐ฆ๐ด",
"flag-aq": "๐ฆ๐ถ",
"flag-ar": "๐ฆ๐ท",
"flag-as": "๐ฆ๐ธ",
"flag-at": "๐ฆ๐น",
"flag-au": "๐ฆ๐บ",
"flag-aw": "๐ฆ๐ผ",
"flag-ax": "๐ฆ๐ฝ",
"flag-az": "๐ฆ๐ฟ",
"flag-ba": "๐ง๐ฆ",
"flag-bb": "๐ง๐ง",
"flag-bd": "๐ง๐ฉ",
"flag-be": "๐ง๐ช",
"flag-bf": "๐ง๐ซ",
"flag-bg": "๐ง๐ฌ",
"flag-bh": "๐ง๐ญ",
"flag-bi": "๐ง๐ฎ",
"flag-bj": "๐ง๐ฏ",
"flag-bl": "๐ง๐ฑ",
"flag-bm": "๐ง๐ฒ",
"flag-bn": "๐ง๐ณ",
"flag-bo": "๐ง๐ด",
"flag-bq": "๐ง๐ถ",
"flag-br": "๐ง๐ท",
"flag-bs": "๐ง๐ธ",
"flag-bt": "๐ง๐น",
"flag-bv": "๐ง๐ป",
"flag-bw": "๐ง๐ผ",
"flag-by": "๐ง๐พ",
"flag-bz": "๐ง๐ฟ",
"flag-ca": "๐จ๐ฆ",
"flag-cc": "๐จ๐จ",
"flag-cd": "๐จ๐ฉ",
"flag-cf": "๐จ๐ซ",
"flag-cg": "๐จ๐ฌ",
"flag-ch": "๐จ๐ญ",
"flag-ci": "๐จ๐ฎ",
"flag-ck": "๐จ๐ฐ",
"flag-cl": "๐จ๐ฑ",
"flag-cm": "๐จ๐ฒ",
"flag-cn": "๐จ๐ณ",
"cn": "๐จ๐ณ",
"flag-co": "๐จ๐ด",
"flag-cp": "๐จ๐ต",
"flag-cr": "๐จ๐ท",
"flag-cu": "๐จ๐บ",
"flag-cv": "๐จ๐ป",
"flag-cw": "๐จ๐ผ",
"flag-cx": "๐จ๐ฝ",
"flag-cy": "๐จ๐พ",
"flag-cz": "๐จ๐ฟ",
"flag-de": "๐ฉ๐ช",
"de": "๐ฉ๐ช",
"flag-dg": "๐ฉ๐ฌ",
"flag-dj": "๐ฉ๐ฏ",
"flag-dk": "๐ฉ๐ฐ",
"flag-dm": "๐ฉ๐ฒ",
"flag-do": "๐ฉ๐ด",
"flag-dz": "๐ฉ๐ฟ",
"flag-ea": "๐ช๐ฆ",
"flag-ec": "๐ช๐จ",
"flag-ee": "๐ช๐ช",
"flag-eg": "๐ช๐ฌ",
"flag-eh": "๐ช๐ญ",
"flag-er": "๐ช๐ท",
"flag-es": "๐ช๐ธ",
"es": "๐ช๐ธ",
"flag-et": "๐ช๐น",
"flag-eu": "๐ช๐บ",
"flag-fi": "๐ซ๐ฎ",
"flag-fj": "๐ซ๐ฏ",
"flag-fk": "๐ซ๐ฐ",
"flag-fm": "๐ซ๐ฒ",
"flag-fo": "๐ซ๐ด",
"flag-fr": "๐ซ๐ท",
"fr": "๐ซ๐ท",
"flag-ga": "๐ฌ๐ฆ",
"flag-gb": "๐ฌ๐ง",
"gb": "๐ฌ๐ง",
"uk": "๐ฌ๐ง",
"flag-gd": "๐ฌ๐ฉ",
"flag-ge": "๐ฌ๐ช",
"flag-gf": "๐ฌ๐ซ",
"flag-gg": "๐ฌ๐ฌ",
"flag-gh": "๐ฌ๐ญ",
"flag-gi": "๐ฌ๐ฎ",
"flag-gl": "๐ฌ๐ฑ",
"flag-gm": "๐ฌ๐ฒ",
"flag-gn": "๐ฌ๐ณ",
"flag-gp": "๐ฌ๐ต",
"flag-gq": "๐ฌ๐ถ",
"flag-gr": "๐ฌ๐ท",
"flag-gs": "๐ฌ๐ธ",
"flag-gt": "๐ฌ๐น",
"flag-gu": "๐ฌ๐บ",
"flag-gw": "๐ฌ๐ผ",
"flag-gy": "๐ฌ๐พ",
"flag-hk": "๐ญ๐ฐ",
"flag-hm": "๐ญ๐ฒ",
"flag-hn": "๐ญ๐ณ",
"flag-hr": "๐ญ๐ท",
"flag-ht": "๐ญ๐น",
"flag-hu": "๐ญ๐บ",
"flag-ic": "๐ฎ๐จ",
"flag-id": "๐ฎ๐ฉ",
"flag-ie": "๐ฎ๐ช",
"flag-il": "๐ฎ๐ฑ",
"flag-im": "๐ฎ๐ฒ",
"flag-in": "๐ฎ๐ณ",
"flag-io": "๐ฎ๐ด",
"flag-iq": "๐ฎ๐ถ",
"flag-ir": "๐ฎ๐ท",
"flag-is": "๐ฎ๐ธ",
"flag-it": "๐ฎ๐น",
"it": "๐ฎ๐น",
"flag-je": "๐ฏ๐ช",
"flag-jm": "๐ฏ๐ฒ",
"flag-jo": "๐ฏ๐ด",
"flag-jp": "๐ฏ๐ต",
"jp": "๐ฏ๐ต",
"flag-ke": "๐ฐ๐ช",
"flag-kg": "๐ฐ๐ฌ",
"flag-kh": "๐ฐ๐ญ",
"flag-ki": "๐ฐ๐ฎ",
"flag-km": "๐ฐ๐ฒ",
"flag-kn": "๐ฐ๐ณ",
"flag-kp": "๐ฐ๐ต",
"flag-kr": "๐ฐ๐ท",
"kr": "๐ฐ๐ท",
"flag-kw": "๐ฐ๐ผ",
"flag-ky": "๐ฐ๐พ",
"flag-kz": "๐ฐ๐ฟ",
"flag-la": "๐ฑ๐ฆ",
"flag-lb": "๐ฑ๐ง",
"flag-lc": "๐ฑ๐จ",
"flag-li": "๐ฑ๐ฎ",
"flag-lk": "๐ฑ๐ฐ",
"flag-lr": "๐ฑ๐ท",
"flag-ls": "๐ฑ๐ธ",
"flag-lt": "๐ฑ๐น",
"flag-lu": "๐ฑ๐บ",
"flag-lv": "๐ฑ๐ป",
"flag-ly": "๐ฑ๐พ",
"flag-ma": "๐ฒ๐ฆ",
"flag-mc": "๐ฒ๐จ",
"flag-md": "๐ฒ๐ฉ",
"flag-me": "๐ฒ๐ช",
"flag-mf": "๐ฒ๐ซ",
"flag-mg": "๐ฒ๐ฌ",
"flag-mh": "๐ฒ๐ญ",
"flag-mk": "๐ฒ๐ฐ",
"flag-ml": "๐ฒ๐ฑ",
"flag-mm": "๐ฒ๐ฒ",
"flag-mn": "๐ฒ๐ณ",
"flag-mo": "๐ฒ๐ด",
"flag-mp": "๐ฒ๐ต",
"flag-mq": "๐ฒ๐ถ",
"flag-mr": "๐ฒ๐ท",
"flag-ms": "๐ฒ๐ธ",
"flag-mt": "๐ฒ๐น",
"flag-mu": "๐ฒ๐บ",
"flag-mv": "๐ฒ๐ป",
"flag-mw": "๐ฒ๐ผ",
"flag-mx": "๐ฒ๐ฝ",
"flag-my": "๐ฒ๐พ",
"flag-mz": "๐ฒ๐ฟ",
"flag-na": "๐ณ๐ฆ",
"flag-nc": "๐ณ๐จ",
"flag-ne": "๐ณ๐ช",
"flag-nf": "๐ณ๐ซ",
"flag-ng": "๐ณ๐ฌ",
"flag-ni": "๐ณ๐ฎ",
"flag-nl": "๐ณ๐ฑ",
"flag-no": "๐ณ๐ด",
"flag-np": "๐ณ๐ต",
"flag-nr": "๐ณ๐ท",
"flag-nu": "๐ณ๐บ",
"flag-nz": "๐ณ๐ฟ",
"flag-om": "๐ด๐ฒ",
"flag-pa": "๐ต๐ฆ",
"flag-pe": "๐ต๐ช",
"flag-pf": "๐ต๐ซ",
"flag-pg": "๐ต๐ฌ",
"flag-ph": "๐ต๐ญ",
"flag-pk": "๐ต๐ฐ",
"flag-pl": "๐ต๐ฑ",
"flag-pm": "๐ต๐ฒ",
"flag-pn": "๐ต๐ณ",
"flag-pr": "๐ต๐ท",
"flag-ps": "๐ต๐ธ",
"flag-pt": "๐ต๐น",
"flag-pw": "๐ต๐ผ",
"flag-py": "๐ต๐พ",
"flag-qa": "๐ถ๐ฆ",
"flag-re": "๐ท๐ช",
"flag-ro": "๐ท๐ด",
"flag-rs": "๐ท๐ธ",
"flag-ru": "๐ท๐บ",
"ru": "๐ท๐บ",
"flag-rw": "๐ท๐ผ",
"flag-sa": "๐ธ๐ฆ",
"flag-sb": "๐ธ๐ง",
"flag-sc": "๐ธ๐จ",
"flag-sd": "๐ธ๐ฉ",
"flag-se": "๐ธ๐ช",
"flag-sg": "๐ธ๐ฌ",
"flag-sh": "๐ธ๐ญ",
"flag-si": "๐ธ๐ฎ",
"flag-sj": "๐ธ๐ฏ",
"flag-sk": "๐ธ๐ฐ",
"flag-sl": "๐ธ๐ฑ",
"flag-sm": "๐ธ๐ฒ",
"flag-sn": "๐ธ๐ณ",
"flag-so": "๐ธ๐ด",
"flag-sr": "๐ธ๐ท",
"flag-ss": "๐ธ๐ธ",
"flag-st": "๐ธ๐น",
"flag-sv": "๐ธ๐ป",
"flag-sx": "๐ธ๐ฝ",
"flag-sy": "๐ธ๐พ",
"flag-sz": "๐ธ๐ฟ",
"flag-ta": "๐น๐ฆ",
"flag-tc": "๐น๐จ",
"flag-td": "๐น๐ฉ",
"flag-tf": "ํ ผ