commit a0901b99cc1f5876f6e81b899a42559b55eeb1c0 parent 77c3fd1d577816e631f15eba8ec8d3d20478264b Author: Richard Pospesel <richard@torproject.org> Date: Mon, 16 Sep 2019 15:25:39 -0700 TB 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection This patch adds a new about:preferences#connection page which allows modifying bridge, proxy, and firewall settings from within Tor Browser. All of the functionality present in tor-launcher's Network Configuration panel is present: - Setting built-in bridges - Requesting bridges from BridgeDB via moat - Using user-provided bridges - Configuring SOCKS4, SOCKS5, and HTTP/HTTPS proxies - Setting firewall ports - Viewing and Copying Tor's logs - The Networking Settings in General preferences has been removed Bug 40774: Update about:preferences page to match new UI designs Diffstat:
299 files changed, 18127 insertions(+), 1 deletion(-)
diff --git a/.prettierignore b/.prettierignore @@ -1798,6 +1798,8 @@ xpcom/idl-parser/xpidl/fixtures/xpctest.d.json browser/app/profile/001-base-profile.js browser/app/profile/000-tor-browser.js +# We do not use the preprocessor here, so we can lint it. +!browser/components/torpreferences/content/connectionPane.inc.xhtml mobile/android/app/000-tor-browser-android.js toolkit/content/pt_config.json toolkit/content/moat_countries_dev_build.json diff --git a/browser/components/moz.build b/browser/components/moz.build @@ -79,6 +79,7 @@ DIRS += [ "urlbar", "webrtc", "torcircuit", + "torpreferences", ] DIRS += ["build"] diff --git a/browser/components/preferences/main.inc.xhtml b/browser/components/preferences/main.inc.xhtml @@ -526,12 +526,13 @@ <hbox id="networkProxyCategory" class="subcategory" hidden="true" + data-hidden-from-search="true" data-category="paneGeneral"> <html:h1 data-l10n-id="network-settings-title"/> </hbox> <!-- Network Settings--> -<groupbox id="connectionGroup" data-category="paneGeneral" hidden="true"> +<groupbox id="connectionGroup" data-category="paneGeneral" data-hidden-from-search="true" hidden="true"> <label class="search-header" hidden="true"><html:h2 data-l10n-id="network-settings-title"/></label> <description flex="1" control="connectionSettings" data-subcategory="netsettings" class="section-description"> diff --git a/browser/components/preferences/preferences.js b/browser/components/preferences/preferences.js @@ -14,6 +14,7 @@ /* import-globals-from findInPage.js */ /* import-globals-from /browser/base/content/utilityOverlay.js */ /* import-globals-from /toolkit/content/preferencesBindings.js */ +/* import-globals-from ../torpreferences/content/connectionPane.js */ /** @import MozButton from "chrome://global/content/elements/moz-button.mjs" */ /** @import {SettingConfig, SettingEmitChange} from "chrome://global/content/preferences/Setting.mjs" */ @@ -376,6 +377,14 @@ function init_all() { register_module("paneSync", gSyncPane); } register_module("paneSearchResults", gSearchResultsPane); + if (gConnectionPane.enabled) { + document.getElementById("category-connection").hidden = false; + register_module("paneConnection", gConnectionPane); + } else { + // Remove the pane from the DOM so it doesn't get incorrectly included in search results. + document.getElementById("template-paneConnection").remove(); + } + gSearchResultsPane.init(); gMainPane.preInit(); diff --git a/browser/components/preferences/preferences.xhtml b/browser/components/preferences/preferences.xhtml @@ -47,6 +47,7 @@ /> <link rel="stylesheet" href="chrome://browser/content/securitylevel/securityLevelPreferences.css" /> + <link rel="stylesheet" href="chrome://browser/content/torpreferences/torPreferences.css" /> <link rel="localization" href="branding/brand.ftl"/> <link rel="localization" href="browser/browser.ftl"/> @@ -105,6 +106,7 @@ <script type="module" src="chrome://global/content/elements/moz-input-color.mjs"></script> <script type="module" src="chrome://browser/content/preferences/widgets/sync-device-name.mjs"></script> <script type="module" src="chrome://browser/content/preferences/widgets/sync-engines-list.mjs"></script> + <script src="chrome://browser/content/torpreferences/bridgemoji/BridgeEmoji.js"/> </head> <html:body xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" @@ -223,6 +225,8 @@ class="category hidden-category" value="paneTranslations"/> +#include ../torpreferences/content/connectionCategory.inc.xhtml + </richlistbox> <spacer flex="1"/> @@ -273,6 +277,7 @@ #include sync.inc.xhtml #include experimental.inc.xhtml #include moreFromMozilla.inc.xhtml +#include ../torpreferences/content/connectionPane.inc.xhtml </vbox> </vbox> </vbox> diff --git a/browser/components/torpreferences/content/bridge-bot.svg b/browser/components/torpreferences/content/bridge-bot.svg @@ -0,0 +1,13 @@ +<svg width="40" height="44" viewBox="0 0 40 44" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M37.1877 22.7584C38.7409 25.1504 38.9178 27.7923 37.5828 28.6591C36.2478 29.5259 33.9065 28.2895 32.3533 25.8975C30.8001 23.5055 30.6232 20.8637 31.9582 19.9969C33.2932 19.13 35.6345 20.3664 37.1877 22.7584Z" fill="#C069FF"/> +<path d="M2.81234 22.7584C1.25915 25.1504 1.08224 27.7923 2.41721 28.6591C3.75217 29.5259 6.09349 28.2895 7.64668 25.8975C9.19987 23.5055 9.37678 20.8637 8.04181 19.9969C6.70685 19.13 4.36553 20.3664 2.81234 22.7584Z" fill="#C069FF"/> +<path d="M32.2002 19.4754C33.9149 19.4754 35.3181 20.8678 35.1823 22.5772C34.7579 27.9186 33.2458 32.9181 30.8541 36.7668C28.0043 41.3527 24.1391 43.9291 20.1088 43.9291C16.0785 43.9291 12.2133 41.3527 9.36344 36.7668C6.97177 32.9181 5.45965 27.9186 5.03525 22.5772C4.89944 20.8678 6.30265 19.4754 8.0174 19.4754L32.2002 19.4754Z" fill="#C069FF"/> +<path d="M28.4375 32.1121C28.4375 27.4522 24.6599 23.6746 20 23.6746C15.3401 23.6746 11.5625 27.4522 11.5625 32.1121V33.5139H12.8809V32.1121C12.8809 28.1803 16.0682 24.9929 20 24.9929C23.9318 24.9929 27.1191 28.1803 27.1191 32.1121V33.5139H28.4375V32.1121Z" fill="#15141A"/> +<path d="M25.9062 32.1121C25.9062 28.8501 23.2619 26.2058 20 26.2058C16.7381 26.2058 14.0937 28.8501 14.0937 32.1121L14.0936 33.5139H15.412L15.4121 32.1121C15.4121 29.5782 17.4662 27.5242 20 27.5242C22.5338 27.5242 24.5879 29.5782 24.5879 32.1121L24.588 33.5139H25.9064L25.9062 32.1121Z" fill="#15141A"/> +<path d="M20 28.7371C21.864 28.7371 23.375 30.2481 23.375 32.1121L23.3753 33.5139H22.0569L22.0566 32.1121C22.0566 30.9762 21.1359 30.0554 20 30.0554C18.8642 30.0554 17.9434 30.9762 17.9434 32.1121L17.9431 33.5139H16.6247V32.1121C16.6247 30.2481 18.136 28.7371 20 28.7371Z" fill="#15141A"/> +<path d="M8.9145 17.8162C7.19975 17.8162 5.78665 16.4193 6.02668 14.7215C6.53221 11.1456 7.9061 7.82078 9.99195 5.21826C12.6698 1.87706 16.3018 -1.07451e-07 20.0889 0C23.8759 1.07451e-07 27.5079 1.87706 30.1858 5.21826C32.2716 7.82078 33.6455 11.1456 34.151 14.7215C34.3911 16.4193 32.978 17.8162 31.2632 17.8162H8.9145Z" fill="#C069FF"/> +<path d="M13.1064 15.1091C11.3916 15.1091 9.96814 13.7048 10.3139 12.0252C10.7578 9.86855 11.6634 7.87853 12.956 6.27814C14.8477 3.93602 17.4134 2.62024 20.0887 2.62024C22.7639 2.62024 25.3296 3.93602 27.2213 6.27814C28.514 7.87853 29.4195 9.86855 29.8635 12.0252C30.2092 13.7048 28.7857 15.1091 27.071 15.1091H13.1064Z" fill="#EBD0FF"/> +<path d="M17.5125 6.81215C17.5125 7.58388 16.9065 8.2095 16.1589 8.2095C15.4112 8.2095 14.8052 7.58388 14.8052 6.81215C14.8052 6.04041 15.4112 5.41479 16.1589 5.41479C16.9065 5.41479 17.5125 6.04041 17.5125 6.81215Z" fill="#15141A"/> +<path d="M25.1981 6.81215C25.1981 7.58388 24.592 8.2095 23.8444 8.2095C23.0968 8.2095 22.4907 7.58388 22.4907 6.81215C22.4907 6.04041 23.0968 5.41479 23.8444 5.41479C24.592 5.41479 25.1981 6.04041 25.1981 6.81215Z" fill="#15141A"/> +<path fill-rule="evenodd" clip-rule="evenodd" d="M22.4395 9.01993L22.4044 9.11353C21.5971 11.2673 18.526 11.1951 17.8208 9.0058L18.427 8.81052C18.9472 10.4254 21.2125 10.4787 21.808 8.88998L21.8431 8.79639L22.4395 9.01993Z" fill="#15141A"/> +</svg> diff --git a/browser/components/torpreferences/content/bridge-qr.svg b/browser/components/torpreferences/content/bridge-qr.svg @@ -0,0 +1,3 @@ +<svg width="24" height="24" viewBox="0 0 24 24" fill="context-fill" xmlns="http://www.w3.org/2000/svg"> + <path d="M5.5 3C4.83696 3 4.20107 3.26339 3.73223 3.73223C3.26339 4.20107 3 4.83696 3 5.5V9H4.75V5.5C4.75 5.30109 4.82902 5.11032 4.96967 4.96967C5.11032 4.82902 5.30109 4.75 5.5 4.75H9V3H5.5ZM11 10.25C11 10.4489 10.921 10.6397 10.7803 10.7803C10.6397 10.921 10.4489 11 10.25 11H7.75C7.55109 11 7.36032 10.921 7.21967 10.7803C7.07902 10.6397 7 10.4489 7 10.25V7.75C7 7.55109 7.07902 7.36032 7.21967 7.21967C7.36032 7.07902 7.55109 7 7.75 7H10.25C10.4489 7 10.6397 7.07902 10.7803 7.21967C10.921 7.36032 11 7.55109 11 7.75V10.25ZM17 15H15V13H17V11H15V9H17V7H15V9H13V11H15V13H13V15H11V13H9V15H7V17H9V15H11V17H13V15H15V17H17V15ZM3 18.5V15H4.75V18.5C4.75 18.914 5.086 19.25 5.5 19.25H9V21H5.5C4.83696 21 4.20107 20.7366 3.73223 20.2678C3.26339 19.7989 3 19.163 3 18.5ZM15 3H18.5C19.163 3 19.7989 3.26339 20.2678 3.73223C20.7366 4.20107 21 4.83696 21 5.5V9H19.25V5.5C19.25 5.30109 19.171 5.11032 19.0303 4.96967C18.8897 4.82902 18.6989 4.75 18.5 4.75H15V3ZM21 18.5V15H19.25V18.5C19.25 18.6989 19.171 18.8897 19.0303 19.0303C18.8897 19.171 18.6989 19.25 18.5 19.25H15V21H18.5C19.163 21 19.7989 20.7366 20.2678 20.2678C20.7366 19.7989 21 19.163 21 18.5Z"/> +</svg> diff --git a/browser/components/torpreferences/content/bridge.svg b/browser/components/torpreferences/content/bridge.svg @@ -0,0 +1,5 @@ +<svg width="16" height="16" viewBox="0 0 16 16" fill="context-fill" xmlns="http://www.w3.org/2000/svg"> + <path d="M15.5 11.5C15.5 7.35786 12.1421 4 8 4C3.85786 4 0.5 7.35786 0.5 11.5V12.7461H1.67188V11.5C1.67188 8.00507 4.50507 5.17188 8 5.17188C11.4949 5.17188 14.3281 8.00507 14.3281 11.5V12.7461H15.5V11.5Z"/> + <path d="M13.25 11.5C13.25 8.6005 10.8995 6.24999 7.99999 6.24999C5.1005 6.24999 2.74999 8.6005 2.74999 11.5L2.74989 12.7461H3.92177L3.92187 11.5C3.92187 9.24771 5.74771 7.42187 7.99999 7.42187C10.2523 7.42187 12.0781 9.24771 12.0781 11.5L12.0782 12.7461H13.2501L13.25 11.5Z"/> + <path d="M8 8.5C9.65686 8.5 11 9.84315 11 11.5L11.0002 12.7461H9.82836L9.82813 11.5C9.82813 10.4904 9.00965 9.67188 8 9.67188C6.99036 9.67188 6.17188 10.4904 6.17188 11.5L6.17164 12.7461H4.99977V11.5C4.99977 9.84315 6.34315 8.5 8 8.5Z"/> +</svg> diff --git a/browser/components/torpreferences/content/bridgeQrDialog.js b/browser/components/torpreferences/content/bridgeQrDialog.js @@ -0,0 +1,29 @@ +"use strict"; + +const { QRCode } = ChromeUtils.importESModule( + "resource://gre/modules/QRCode.sys.mjs" +); + +window.addEventListener( + "DOMContentLoaded", + () => { + const bridgeString = window.arguments[0]; + + const target = document.getElementById("bridgeQr-target"); + const style = window.getComputedStyle(target); + // We are assuming that the style width and height have "px" units. + // Trailing "px" is not parsed. + // NOTE: Our QRCode module doesn't seem to use the width or height + // attributes. + const width = parseInt(style.width, 10); + const height = parseInt(style.height, 10); + new QRCode(target, { + text: bridgeString, + width, + height, + colorDark: style.color, + colorLight: style.backgroundColor, + }); + }, + { once: true } +); diff --git a/browser/components/torpreferences/content/bridgeQrDialog.xhtml b/browser/components/torpreferences/content/bridgeQrDialog.xhtml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?csp default-src chrome: ?> + +<window + type="child" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" + xmlns:html="http://www.w3.org/1999/xhtml" + data-l10n-id="bridge-qr-dialog-title" +> + <dialog id="bridgeQr-dialog" buttons="accept"> + <linkset> + <html:link rel="stylesheet" href="chrome://global/skin/global.css" /> + <html:link + rel="stylesheet" + href="chrome://browser/skin/preferences/preferences.css" + /> + <html:link + rel="stylesheet" + href="chrome://browser/content/torpreferences/torPreferences.css" + /> + + <html:link rel="localization" href="toolkit/global/tor-browser.ftl" /> + </linkset> + + <script src="chrome://browser/content/torpreferences/bridgeQrDialog.js" /> + + <html:div id="bridgeQr"> + <html:div id="bridgeQr-target"></html:div> + <html:div id="bridgeQr-icon"></html:div> + </html:div> + </dialog> +</window> diff --git a/browser/components/torpreferences/content/bridgemoji/BridgeEmoji.js b/browser/components/torpreferences/content/bridgemoji/BridgeEmoji.js @@ -0,0 +1,199 @@ +"use strict"; + +{ + /** + * Element to display a single bridge emoji, with a localized name. + */ + class BridgeEmoji extends HTMLElement { + static #activeInstances = new Set(); + static #observer(subject, topic) { + if (topic === "intl:app-locales-changed") { + BridgeEmoji.#updateEmojiLangCode(); + } + } + + static #addActiveInstance(inst) { + if (this.#activeInstances.size === 0) { + Services.obs.addObserver(this.#observer, "intl:app-locales-changed"); + this.#updateEmojiLangCode(); + } + this.#activeInstances.add(inst); + } + + static #removeActiveInstance(inst) { + this.#activeInstances.delete(inst); + if (this.#activeInstances.size === 0) { + Services.obs.removeObserver(this.#observer, "intl:app-locales-changed"); + } + } + + /** + * The language code for emoji annotations. + * + * null if unset. + * + * @type {string?} + */ + static #emojiLangCode = null; + /** + * A promise that resolves to two JSON structures for bridge-emojis.json and + * annotations.json, respectively. + * + * @type {Promise} + */ + static #emojiPromise = Promise.all([ + fetch( + "chrome://browser/content/torpreferences/bridgemoji/bridge-emojis.json" + ).then(response => response.json()), + fetch( + "chrome://browser/content/torpreferences/bridgemoji/annotations.json" + ).then(response => response.json()), + ]); + + static #unknownStringPromise = null; + + /** + * Update #emojiLangCode. + */ + static async #updateEmojiLangCode() { + let langCode; + const emojiAnnotations = (await BridgeEmoji.#emojiPromise)[1]; + // Find the first desired locale we have annotations for. + // Add "en" as a fallback. + for (const bcp47 of [...Services.locale.appLocalesAsBCP47, "en"]) { + langCode = bcp47; + if (langCode in emojiAnnotations) { + break; + } + // Remove everything after the dash, if there is one. + langCode = bcp47.replace(/-.*/, ""); + if (langCode in emojiAnnotations) { + break; + } + } + if (langCode !== this.#emojiLangCode) { + this.#emojiLangCode = langCode; + this.#unknownStringPromise = document.l10n.formatValue( + "tor-bridges-emoji-unknown" + ); + for (const inst of this.#activeInstances) { + inst.update(); + } + } + } + + /** + * Update the bridge emoji to show their corresponding emoji with an + * annotation that matches the current locale. + */ + async update() { + if (!this.#active) { + return; + } + + if (!BridgeEmoji.#emojiLangCode) { + // No lang code yet, wait until it is updated. + return; + } + + const doc = this.ownerDocument; + const [unknownString, [emojiList, emojiAnnotations]] = await Promise.all([ + BridgeEmoji.#unknownStringPromise, + BridgeEmoji.#emojiPromise, + ]); + + const emoji = emojiList[this.#index]; + let emojiName; + if (!emoji) { + // Unexpected. + this.#img.removeAttribute("src"); + } else { + const cp = emoji.codePointAt(0).toString(16); + this.#img.setAttribute( + "src", + `chrome://browser/content/torpreferences/bridgemoji/svgs/${cp}.svg` + ); + emojiName = emojiAnnotations[BridgeEmoji.#emojiLangCode][cp]; + } + if (!emojiName) { + doc.defaultView.console.error(`No emoji for index ${this.#index}`); + emojiName = unknownString; + } + doc.l10n.setAttributes(this.#img, "tor-bridges-emoji-image", { + emojiName, + }); + } + + /** + * The index for this bridge emoji. + * + * @type {integer?} + */ + #index = null; + /** + * Whether we are active (i.e. in the DOM). + * + * @type {boolean} + */ + #active = false; + /** + * The image element. + * + * @type {HTMLImgElement?} + */ + #img = null; + + constructor(index) { + super(); + this.#index = index; + } + + connectedCallback() { + if (!this.#img) { + this.#img = this.ownerDocument.createElement("img"); + this.#img.classList.add("tor-bridges-emoji-icon"); + this.#img.setAttribute("alt", ""); + this.appendChild(this.#img); + } + + this.#active = true; + BridgeEmoji.#addActiveInstance(this); + this.update(); + } + + disconnectedCallback() { + this.#active = false; + BridgeEmoji.#removeActiveInstance(this); + } + + /** + * Create four bridge emojis for the given address. + * + * @param {string} bridgeLine - The bridge address. + * + * @returns {BridgeEmoji[4]} - The bridge emoji elements. + */ + static createForAddress(bridgeLine) { + // JS uses UTF-16. While most of these emojis are surrogate pairs, a few + // ones fit one UTF-16 character. So we could not use neither indices, + // nor substr, nor some function to split the string. + // FNV-1a implementation that is compatible with other languages + const prime = 0x01000193; + const offset = 0x811c9dc5; + let hash = offset; + const encoder = new TextEncoder(); + for (const byte of encoder.encode(bridgeLine)) { + hash = Math.imul(hash ^ byte, prime); + } + + return [ + ((hash & 0x7f000000) >> 24) | (hash < 0 ? 0x80 : 0), + (hash & 0x00ff0000) >> 16, + (hash & 0x0000ff00) >> 8, + hash & 0x000000ff, + ].map(index => new BridgeEmoji(index)); + } + } + + customElements.define("tor-bridge-emoji", BridgeEmoji); +} diff --git a/browser/components/torpreferences/content/bridgemoji/annotations.json b/browser/components/torpreferences/content/bridgemoji/annotations.json @@ -0,0 +1,10323 @@ +{ + "_comment": "Generated by tools/torbrowser/update_emojis.py on 2024-08-06", + "ar": { + "1f47d": "كائن فضائي", + "1f916": "وجه روبوت", + "1f9e0": "دماغ", + "1f441": "عين", + "1f9d9": "سحرة", + "1f9da": "جنيّة خيالية", + "1f9dc": "مخلوق بحري بجسد بشري وذيل سمكة", + "1f435": "وجه قرد", + "1f9a7": "إنسان الغاب", + "1f436": "وجه كلب", + "1f43a": "وجه ذئب", + "1f98a": "وجه ثعلب", + "1f99d": "راكون", + "1f431": "وجه قطة", + "1f981": "وجه أسد", + "1f42f": "وجه نمر", + "1f434": "وجه حصان", + "1f984": "وجه أحادي قرن", + "1f993": "حمار وحشي", + "1f98c": "غزال", + "1f42e": "وجه بقرة", + "1f437": "وجه خنزير", + "1f417": "خنزير بري", + "1f42a": "جمل وحيد السنام", + "1f999": "لاما", + "1f992": "زرافة", + "1f418": "فيل", + "1f9a3": "ماموث", + "1f98f": "وحيد القرن", + "1f42d": "وجه فأر", + "1f430": "وجه أرنب", + "1f43f": "سنجاب", + "1f994": "قنفد", + "1f987": "خفاش", + "1f43b": "وجه دب", + "1f428": "دب كوالا", + "1f9a5": "كسلان", + "1f9a6": "قندس", + "1f998": "كنغر", + "1f425": "كتكوت صغير بوجه للأمام", + "1f426": "طائر", + "1f54a": "حمامة", + "1f986": "بطة", + "1f989": "بومة", + "1f9a4": "طائر الدودو", + "1fab6": "ريشة", + "1f9a9": "فلامينغو", + "1f99a": "طاووس", + "1f99c": "ببغاء", + "1f40a": "تمساح", + "1f422": "سلحفاة", + "1f98e": "سحلية", + "1f40d": "ثعبان", + "1f432": "وجه تنين", + "1f995": "ديناصور صوروبودا", + "1f433": "حوت بنافورة", + "1f42c": "دولفين", + "1f9ad": "فقمة", + "1f41f": "سمكة", + "1f420": "سمكة استوائية", + "1f988": "سمكة قرش", + "1f419": "أخطبوط", + "1f41a": "صدفة حلزونية", + "1f40c": "حلزون", + "1f98b": "فراشة", + "1f41b": "بق", + "1f41d": "نحلة", + "1f41e": "دعسوقة", + "1f490": "باقة زهور", + "1f339": "وردة", + "1f33a": "كركديه", + "1f33b": "دوار الشمس", + "1f337": "زهرة التوليب", + "1f332": "شجرة دائمة الخضرة", + "1f333": "شجرة زائلة الخضرة", + "1f334": "نخلة", + "1f335": "صبار", + "1f33f": "عشب", + "1f341": "ورقة شجر القيقب", + "1f344": "عيش الغراب", + "1f347": "عنب", + "1f348": "شمام", + "1f349": "بطيخ", + "1f34a": "يوسفي", + "1f34b": "ليمون", + "1f34c": "موز", + "1f34d": "أناناس", + "1f96d": "مانجو", + "1f34f": "تفاح أخضر", + "1f350": "كمثرى", + "1f351": "خوخ", + "1f352": "كرز", + "1f353": "فراولة", + "1fad0": "توت برّي", + "1f95d": "كيوي", + "1f345": "طماطم", + "1fad2": "زيتون", + "1f965": "جوز الهند", + "1f951": "أفوكادو", + "1f346": "باذنجان", + "1f955": "جزر", + "1f33d": "ذرة", + "1f336": "فلفل حار", + "1f96c": "خضار ورقي", + "1f966": "بروكولي", + "1f9c5": "بصل", + "1f95c": "فول سوداني", + "1f950": "كرواسون", + "1f956": "الخبز الفرنسي", + "1f968": "بريتزل", + "1f96f": "خبز البيغل", + "1f95e": "فطائر", + "1f9c7": "وافل", + "1f354": "همبرغر", + "1f355": "بيتزا", + "1f32d": "هوت دوغ", + "1f32e": "تاكو", + "1f37f": "فشار", + "1f980": "سرطان", + "1f99e": "كركند", + "1f368": "آيس كريم", + "1f369": "كعكة محلاة", + "1f36a": "كعكة", + "1f382": "كعكة عيد ميلاد", + "1f9c1": "كعكة صغيرة", + "1f36b": "لوح شوكولاتة", + "1f36c": "حلوى", + "1f36d": "مصاصة", + "1fad6": "إبريق شاي", + "1f9c3": "علبة عصير", + "1f9c9": "متة", + "1f9ed": "بوصلة", + "1f3d4": "جبل بقمة ثلجية", + "1f30b": "بركان", + "1f3d5": "تخييم", + "1f3dd": "جزيرة صحراوية", + "1f3e1": "منزل بحديقة", + "26f2": "نافورة", + "1f3a0": "حصان الدوامة", + "1f3a1": "عجلة دوارة", + "1f3a2": "قطار ملاهي", + "1f488": "محل حلاقة", + "1f686": "قطار", + "1f68b": "سيارة ترام", + "1f68d": "حافلة مقتربة", + "1f695": "تاكسي", + "1f697": "سيارة", + "1f69a": "شاحنة توصيل طلبات", + "1f69c": "جرار", + "1f6f5": "سكوتر بمحرك", + "1f6fa": "توكتوك", + "1f6f4": "سكوتر بدون محرك", + "1f6f9": "لوح التزلج", + "1f6fc": "حذاء مع عجلات", + "2693": "مرساة", + "26f5": "مركب شراعي", + "1f6f6": "زورق", + "1f6a4": "قارب سريع", + "1f6a2": "سفينة", + "2708": "طائرة", + "1f681": "هليكوبتر", + "1f6a0": "قطار جبلي", + "1f6f0": "قمر صناعي", + "1f680": "صاروخ", + "1f6f8": "صحن طائر", + "23f0": "ساعة منبه", + "1f319": "هلال", + "1f321": "ترمومتر", + "2600": "شمس", + "1fa90": "كوكب داخل حلقة", + "1f31f": "نجم ساطع", + "1f300": "عاصفة", + "1f308": "ألوان الطيف", + "2602": "شمسية", + "2744": "كتلة ثلج", + "2604": "مذنّب", + "1f525": "حريق", + "1f4a7": "قطرة", + "1f30a": "موجة", + "1f383": "هالوين", + "2728": "ومضات", + "1f388": "بالون", + "1f389": "فرقعة حفلة", + "1f38f": "قصاصات ملونة", + "1f380": "شريط", + "1f381": "هدية ملفوفة", + "1f39f": "تذكرتا دخول", + "1f3c6": "كأس", + "26bd": "كرة قدم", + "1f3c0": "كرة سلة", + "1f3c8": "كرة قدم أمريكية", + "1f3be": "تنس", + "1f94f": "قرص طائر", + "1f3d3": "تنس الطاولة", + "1f3f8": "تنس الريشة", + "1f93f": "قناع غطس", + "1f94c": "حجرة لعبة الكرلنغ", + "1f3af": "نشان", + "1fa80": "يويو", + "1fa81": "طائرة ورقية", + "1f52e": "كرة كريستال", + "1f3b2": "زهر", + "1f9e9": "أحجية الصور المقطوعة", + "1f3a8": "لوحة ألوان الرسام", + "1f9f5": "بكرة خيط", + "1f455": "تي شيرت", + "1f9e6": "جورب", + "1f457": "فستان", + "1fa73": "شورت", + "1f392": "حقيبة مدرسة", + "1f45f": "حذاء رياضي", + "1f451": "تاج", + "1f9e2": "قبعة رياضية", + "1f484": "أحمر شفاه", + "1f48d": "خاتم", + "1f48e": "جوهرة", + "1f4e2": "مكبر صوت", + "1f3b6": "نوتات موسيقية", + "1f399": "ميكروفون استوديو", + "1f4fb": "راديو", + "1f3b7": "ساكسفون", + "1fa97": "أكورديون", + "1f3b8": "غيتار", + "1f3ba": "آلة نفخ", + "1f3bb": "كمان", + "1fa95": "آلة بانجو", + "1f941": "طبلة", + "260e": "هاتف أرضي", + "1f50b": "بطارية", + "1f4bf": "سي دي", + "1f9ee": "معداد", + "1f3ac": "كلاكيت", + "1f4a1": "مصباح مضاء", + "1f526": "ضوء فلاش", + "1f3ee": "فانوس بورق أحمر", + "1f4d5": "كتاب مغلق", + "1f3f7": "ملصق", + "1f4b3": "بطاقة ائتمان", + "270f": "قلم رصاص", + "1f58c": "فرشاة ألوان", + "1f58d": "قلم شمع ملون", + "1f4cc": "دبوس ضغط", + "1f4ce": "مشبك ورق", + "1f511": "مفتاح", + "1fa83": "خذوف مرتد", + "1f3f9": "قوس وسهم", + "2696": "ميزان", + "1f9f2": "مغناطيس", + "1f9ea": "أنبوب اختبار", + "1f9ec": "الحامض النووي", + "1f52c": "ميكروسكوب", + "1f52d": "تليسكوب", + "1f4e1": "طبق قمر صناعي", + "1fa91": "كرسي", + "1f9f9": "مكنسة", + "1f5ff": "تمثال" + }, + "be": { + "1f47d": "іншапланецянін", + "1f916": "робат", + "1f9e0": "мозг", + "1f441": "вока", + "1f9d9": "чараўнік", + "1f9da": "фея", + "1f9dc": "русалкі", + "1f435": "пыска малпы", + "1f9a7": "арангутан", + "1f436": "сабачая пыска", + "1f43a": "воўк", + "1f98a": "ліс", + "1f99d": "янот", + "1f431": "каціная пыска", + "1f981": "леў", + "1f42f": "пыска тыгра", + "1f434": "пыска каня", + "1f984": "пыска аднарога", + "1f993": "зебра", + "1f98c": "алень", + "1f42e": "пыска каровы", + "1f437": "пыска свінні", + "1f417": "дзік", + "1f42a": "вярблюд", + "1f999": "лама", + "1f992": "жыраф", + "1f418": "слон", + "1f9a3": "мамант", + "1f98f": "насарог", + "1f42d": "мышыная пыска", + "1f430": "заечая пыска", + "1f43f": "бурундук", + "1f994": "вожык", + "1f987": "кажан", + "1f43b": "мядзведжая пыска", + "1f428": "каала", + "1f9a5": "лянівец", + "1f9a6": "выдра", + "1f998": "кенгуру", + "1f425": "кураня спераду", + "1f426": "птушка", + "1f54a": "голуб", + "1f986": "качка", + "1f989": "сава", + "1f9a4": "дадо", + "1fab6": "пяро", + "1f9a9": "фламінга", + "1f99a": "паўлін", + "1f99c": "папугай", + "1f40a": "кракадзіл", + "1f422": "чарапаха", + "1f98e": "яшчарка", + "1f40d": "змяя", + "1f432": "галава цмока", + "1f995": "заўрапод", + "1f433": "фантануючы кіт", + "1f42c": "дэльфін", + "1f9ad": "цюлень", + "1f41f": "рыба", + "1f420": "трапічная рыба", + "1f988": "акула", + "1f419": "васьміног", + "1f41a": "спіральная ракушка", + "1f40c": "смоўж", + "1f98b": "матылёк", + "1f41b": "кузурка", + "1f41d": "пчала", + "1f41e": "божая кароўка", + "1f490": "букет", + "1f339": "ружа", + "1f33a": "гібіскус", + "1f33b": "сланечнік", + "1f337": "цюльпан", + "1f332": "вечназялёнае дрэва", + "1f333": "ліставое дрэва", + "1f334": "пальма", + "1f335": "кактус", + "1f33f": "лекавая трава", + "1f341": "кляновы ліст", + "1f344": "грыб", + "1f347": "вінаград", + "1f348": "дыня", + "1f349": "кавун", + "1f34a": "мандарын", + "1f34b": "лімон", + "1f34c": "банан", + "1f34d": "ананас", + "1f96d": "манга", + "1f34f": "зялёны яблык", + "1f350": "груша", + "1f351": "персік", + "1f352": "вішні", + "1f353": "клубніцы", + "1fad0": "буякі", + "1f95d": "ківі", + "1f345": "памідор", + "1fad2": "аліва", + "1f965": "какос", + "1f951": "авакада", + "1f346": "баклажан", + "1f955": "морква", + "1f33d": "катах кукурузы", + "1f336": "востры перац", + "1f96c": "зеляніна", + "1f966": "брокалі", + "1f9c5": "цыбуля", + "1f95c": "арахіс", + "1f950": "круасан", + "1f956": "багет", + "1f968": "крэндзель", + "1f96f": "пышка", + "1f95e": "бліны", + "1f9c7": "вафля", + "1f354": "гамбургер", + "1f355": "піца", + "1f32d": "хот-дог", + "1f32e": "така", + "1f37f": "папкорн", + "1f980": "краб", + "1f99e": "амар", + "1f368": "марожанае", + "1f369": "пончык", + "1f36a": "пячэнне", + "1f382": "імянінны торт", + "1f9c1": "кекс", + "1f36b": "плітка шакаладу", + "1f36c": "цукерка", + "1f36d": "ледзянец", + "1fad6": "чайнік", + "1f9c3": "пачак з напоем", + "1f9c9": "матэ", + "1f9ed": "компас", + "1f3d4": "заснежаная гара", + "1f30b": "вулкан", + "1f3d5": "кемпінг", + "1f3dd": "ненаселены востраў", + "1f3e1": "дом з садам", + "26f2": "фантан", + "1f3a0": "конік з каруселі", + "1f3a1": "кола агляду", + "1f3a2": "амерыканскія горкі", + "1f488": "каляровы слуп", + "1f686": "цягнік", + "1f68b": "трамвайны вагон", + "1f68d": "набліжаецца аўтобус", + "1f695": "таксі", + "1f697": "аўтамабіль", + "1f69a": "грузавік", + "1f69c": "трактар", + "1f6f5": "скутар", + "1f6fa": "аўтарыкша", + "1f6f4": "самакат", + "1f6f9": "скейтборд", + "1f6fc": "ролікавы канёк", + "2693": "якар", + "26f5": "паруснік", + "1f6f6": "каноэ", + "1f6a4": "быстраходны катар", + "1f6a2": "карабель", + "2708": "самалёт", + "1f681": "верталёт", + "1f6a0": "горны фунікулёр", + "1f6f0": "спадарожнік", + "1f680": "ракета", + "1f6f8": "лятаючая талерка", + "23f0": "будзільнік", + "1f319": "паўмесяц", + "1f321": "тэрмометр", + "2600": "сонца", + "1fa90": "планета з кальцом", + "1f31f": "бліскучая зорка", + "1f300": "цыклон", + "1f308": "вясёлка", + "2602": "парасон", + "2744": "сняжынка", + "2604": "камета", + "1f525": "агонь", + "1f4a7": "кропелька", + "1f30a": "хваля", + "1f383": "гарбузны ліхтар", + "2728": "іскры", + "1f388": "паветраны шарык", + "1f389": "хлапушка", + "1f38f": "каінаборы", + "1f380": "стужка", + "1f381": "запакаваны падарунак", + "1f39f": "уваходныя білеты", + "1f3c6": "кубак", + "26bd": "футбольны мяч", + "1f3c0": "баскетбол", + "1f3c8": "амерыканскі футбол", + "1f3be": "тэніс", + "1f94f": "фрысбі", + "1f3d3": "пінг-понг", + "1f3f8": "бадмінтон", + "1f93f": "маска для падводнага плавання", + "1f94c": "шайба для кёрлінгу", + "1f3af": "прамое пападанне", + "1fa80": "ё-ё", + "1fa81": "паветраны змей", + "1f52e": "крыштальны шар", + "1f3b2": "ігральная косць", + "1f9e9": "частка пазла", + "1f3a8": "палітра мастака", + "1f9f5": "нітка", + "1f455": "футболка", + "1f9e6": "шкарпэткі", + "1f457": "сукенка", + "1fa73": "шорты", + "1f392": "школьны ранец", + "1f45f": "красовак", + "1f451": "карона", + "1f9e2": "кепка", + "1f484": "памада", + "1f48d": "кальцо", + "1f48e": "каштоўны самацвет", + "1f4e2": "гучнагаварыцель", + "1f3b6": "музычныя ноты", + "1f399": "студыйны мікрафон", + "1f4fb": "радыё", + "1f3b7": "саксафон", + "1fa97": "акардэон", + "1f3b8": "гітара", + "1f3ba": "труба", + "1f3bb": "скрыпка", + "1fa95": "банджа", + "1f941": "барабан", + "260e": "хатні тэлефон", + "1f50b": "батарэйка", + "1f4bf": "аптычны дыск", + "1f9ee": "лічыльнікі", + "1f3ac": "нумаратар з хлапушкай", + "1f4a1": "лямпачка", + "1f526": "ліхтарык", + "1f3ee": "чырвоны папяровы ліхтар", + "1f4d5": "закрытая кніга", + "1f3f7": "бірка", + "1f4b3": "крэдытная карта", + "270f": "аловак", + "1f58c": "пэндзаль", + "1f58d": "пастэль", + "1f4cc": "канцылярская кнопка", + "1f4ce": "сашчэпка", + "1f511": "ключ", + "1fa83": "бумеранг", + "1f3f9": "лук са стралой", + "2696": "шалі", + "1f9f2": "магніт", + "1f9ea": "прабірка", + "1f9ec": "ДНК", + "1f52c": "мікраскоп", + "1f52d": "тэлескоп", + "1f4e1": "спадарожнікавая антэна", + "1fa91": "крэсла", + "1f9f9": "мятла", + "1f5ff": "мааі" + }, + "bg": { + "1f47d": "извънземно", + "1f916": "Лице на робот", + "1f9e0": "мозък", + "1f441": "око", + "1f9d9": "жена магьосник", + "1f9da": "фея", + "1f9dc": "жена амфибия", + "1f435": "Лице на маймуна", + "1f9a7": "орангутан", + "1f436": "муцуна на куче", + "1f43a": "вълк", + "1f98a": "лисица", + "1f99d": "енот", + "1f431": "муцуна на котка", + "1f981": "лъв", + "1f42f": "муцуна на тигър", + "1f434": "муцуна на кон", + "1f984": "еднорог", + "1f993": "зебра", + "1f98c": "елен", + "1f42e": "муцуна на крава", + "1f437": "зурла на прасе", + "1f417": "глиган", + "1f42a": "камила", + "1f999": "лама", + "1f992": "жираф", + "1f418": "слон", + "1f9a3": "мамут", + "1f98f": "носорог", + "1f42d": "муцуна на мишка", + "1f430": "муцуна на заек", + "1f43f": "катерица", + "1f994": "таралеж", + "1f987": "прилеп", + "1f43b": "мечка", + "1f428": "коала", + "1f9a5": "ленивец", + "1f9a6": "видра", + "1f998": "кенгуру", + "1f425": "пиленце, гледано отпред", + "1f426": "птица", + "1f54a": "гълъб", + "1f986": "патица", + "1f989": "бухал", + "1f9a4": "Додо", + "1fab6": "перо", + "1f9a9": "фламинго", + "1f99a": "паун", + "1f99c": "папагал", + "1f40a": "крокодил", + "1f422": "костенурка", + "1f98e": "гущер", + "1f40d": "змия", + "1f432": "глава на дракон", + "1f995": "завропод", + "1f433": "пръскащ кит", + "1f42c": "делфин", + "1f9ad": "тюлен", + "1f41f": "риба", + "1f420": "тропическа риба", + "1f988": "акула", + "1f419": "октопод", + "1f41a": "спирална раковина", + "1f40c": "охлюв", + "1f98b": "пеперуда", + "1f41b": "буболечка", + "1f41d": "пчела", + "1f41e": "калинка", + "1f490": "букет", + "1f339": "роза", + "1f33a": "хибискус", + "1f33b": "слънчоглед", + "1f337": "лале", + "1f332": "вечнозелено дърво", + "1f333": "листопадно дърво", + "1f334": "палма", + "1f335": "кактус", + "1f33f": "билка", + "1f341": "кленов лист", + "1f344": "гъба", + "1f347": "грозде", + "1f348": "пъпеш", + "1f349": "диня", + "1f34a": "мандарина", + "1f34b": "лимон", + "1f34c": "банан", + "1f34d": "ананас", + "1f96d": "манго", + "1f34f": "зелена ябълка", + "1f350": "круша", + "1f351": "праскова", + "1f352": "череши", + "1f353": "ягода", + "1fad0": "черни боровинки", + "1f95d": "плод киви", + "1f345": "домат", + "1fad2": "маслина", + "1f965": "кокосов орех", + "1f951": "авокадо", + "1f346": "патладжан", + "1f955": "морков", + "1f33d": "царевичен кочан", + "1f336": "люта чушка", + "1f96c": "листен зеленчук", + "1f966": "броколи", + "1f9c5": "лук", + "1f95c": "фъстъци", + "1f950": "кроасан", + "1f956": "багета", + "1f968": "брецел", + "1f96f": "геврек", + "1f95e": "палачинки", + "1f9c7": "гофрета", + "1f354": "хамбургер", + "1f355": "пица", + "1f32d": "хотдог", + "1f32e": "тако", + "1f37f": "пуканки", + "1f980": "рак", + "1f99e": "омар", + "1f368": "сладолед", + "1f369": "поничка", + "1f36a": "бисквитка", + "1f382": "торта за рожден ден", + "1f9c1": "къпкейк", + "1f36b": "шоколадово блокче", + "1f36c": "бонбон", + "1f36d": "близалка", + "1fad6": "чайник", + "1f9c3": "кутия за напитки", + "1f9c9": "мате", + "1f9ed": "компас", + "1f3d4": "покрита със сняг планина", + "1f30b": "вулкан", + "1f3d5": "къмпинг", + "1f3dd": "необитаем остров", + "1f3e1": "къща с градина", + "26f2": "фонтан", + "1f3a0": "кон от въртележка", + "1f3a1": "виенско колело", + "1f3a2": "влакче в увеселителен парк", + "1f488": "знак на бръснар", + "1f686": "влак", + "1f68b": "трамваен вагон", + "1f68d": "приближаващ автобус", + "1f695": "такси", + "1f697": "автомобил", + "1f69a": "камион за доставки", + "1f69c": "трактор", + "1f6f5": "моторен скутер", + "1f6fa": "авторикша", + "1f6f4": "тротинетка", + "1f6f9": "скейтборд", + "1f6fc": "ролери", + "2693": "котва", + "26f5": "яхта", + "1f6f6": "кану", + "1f6a4": "моторна лодка", + "1f6a2": "кораб", + "2708": "самолет", + "1f681": "хеликоптер", + "1f6a0": "лифт", + "1f6f0": "спътник", + "1f680": "ракета", + "1f6f8": "летяща чиния", + "23f0": "будилник", + "1f319": "полумесец", + "1f321": "термометър", + "2600": "слънце", + "1fa90": "планета с пръстен", + "1f31f": "блестяща звезда", + "1f300": "циклон", + "1f308": "дъга", + "2602": "чадър", + "2744": "снежинка", + "2604": "комета", + "1f525": "огън", + "1f4a7": "капка", + "1f30a": "вълна", + "1f383": "тиквен фенер", + "2728": "звездички", + "1f388": "балон", + "1f389": "конфети", + "1f38f": "коинобори", + "1f380": "панделка", + "1f381": "опакован подарък", + "1f39f": "билети за вход", + "1f3c6": "спортна купа", + "26bd": "футболна топка", + "1f3c0": "баскетболна топка", + "1f3c8": "топка за американски футбол", + "1f3be": "тенис", + "1f94f": "фризби", + "1f3d3": "тенис на маса", + "1f3f8": "бадминтон", + "1f93f": "маска за гмуркане", + "1f94c": "камък за кърлинг", + "1f3af": "точен удар", + "1fa80": "йо-йо", + "1fa81": "хвърчило", + "1f52e": "Кристално кълбо", + "1f3b2": "зар за игра", + "1f9e9": "част от пъзел", + "1f3a8": "палитра на художник", + "1f9f5": "конец", + "1f455": "тениска", + "1f9e6": "чорапи", + "1f457": "рокля", + "1fa73": "плувни шорти", + "1f392": "ученическа раница", + "1f45f": "спортна обувка", + "1f451": "корона", + "1f9e2": "шапка с козирка", + "1f484": "червило", + "1f48d": "пръстен", + "1f48e": "скъпоценен камък", + "1f4e2": "Високоговорител за обществени места", + "1f3b6": "ноти", + "1f399": "студиен микрофон", + "1f4fb": "радио", + "1f3b7": "саксофон", + "1fa97": "акордеон", + "1f3b8": "китара", + "1f3ba": "тромпет", + "1f3bb": "цигулка", + "1fa95": "банджо", + "1f941": "барабан", + "260e": "телефон", + "1f50b": "батерия", + "1f4bf": "оптичен диск", + "1f9ee": "сметало", + "1f3ac": "клапа", + "1f4a1": "електрическа крушка", + "1f526": "фенерче", + "1f3ee": "червен хартиен фенер", + "1f4d5": "затворена книга", + "1f3f7": "етикет", + "1f4b3": "кредитна карта", + "270f": "молив", + "1f58c": "четка", + "1f58d": "пастел", + "1f4cc": "кабърче", + "1f4ce": "кламер", + "1f511": "ключ", + "1fa83": "бумеранг", + "1f3f9": "лък и стрела", + "2696": "везна", + "1f9f2": "магнит", + "1f9ea": "епруветка", + "1f9ec": "ДНК", + "1f52c": "микроскоп", + "1f52d": "телескоп", + "1f4e1": "сателитна антена", + "1fa91": "стол", + "1f9f9": "метла", + "1f5ff": "моаи" + }, + "ca": { + "1f47d": "alienígena", + "1f916": "robot", + "1f9e0": "cervell", + "1f441": "ull", + "1f9d9": "mag", + "1f9da": "fada", + "1f9dc": "persona sirena", + "1f435": "cara de mona", + "1f9a7": "orangutan", + "1f436": "cara de gos", + "1f43a": "llop", + "1f98a": "guineu", + "1f99d": "os rentador", + "1f431": "cara de gat", + "1f981": "cara de lleó", + "1f42f": "cara de tigre", + "1f434": "cara de cavall", + "1f984": "unicorn", + "1f993": "zebra", + "1f98c": "cérvol", + "1f42e": "cara de vaca", + "1f437": "cara de porc", + "1f417": "senglar", + "1f42a": "dromedari", + "1f999": "llama", + "1f992": "girafa", + "1f418": "elefant", + "1f9a3": "mamut", + "1f98f": "rinoceront", + "1f42d": "cara de ratolí", + "1f430": "cara de conill", + "1f43f": "esquirol", + "1f994": "eriçó", + "1f987": "ratapinyada", + "1f43b": "cara d’os", + "1f428": "coala", + "1f9a5": "peresós", + "1f9a6": "llúdria", + "1f998": "cangur", + "1f425": "pollet de cara", + "1f426": "ocell", + "1f54a": "colom", + "1f986": "ànec", + "1f989": "mussol", + "1f9a4": "dodo", + "1fab6": "ploma", + "1f9a9": "flamenc", + "1f99a": "paó", + "1f99c": "lloro", + "1f40a": "cocodril", + "1f422": "tortuga", + "1f98e": "llangardaix", + "1f40d": "serp", + "1f432": "cara de drac", + "1f995": "sauròpode", + "1f433": "balena que treu aigua", + "1f42c": "dofí", + "1f9ad": "foca", + "1f41f": "peix", + "1f420": "peix tropical", + "1f988": "tauró", + "1f419": "pop", + "1f41a": "cargol de mar", + "1f40c": "cargol", + "1f98b": "papallona", + "1f41b": "eruga", + "1f41d": "abella", + "1f41e": "marieta", + "1f490": "ram de flors", + "1f339": "rosa", + "1f33a": "hibisc", + "1f33b": "gira-sol", + "1f337": "tulipa", + "1f332": "arbre de fulla perenne", + "1f333": "arbre de fulla caduca", + "1f334": "palmera", + "1f335": "cactus", + "1f33f": "herba", + "1f341": "fulla d’auró", + "1f344": "bolet", + "1f347": "raïm", + "1f348": "meló", + "1f349": "síndria", + "1f34a": "mandarina", + "1f34b": "llimona", + "1f34c": "plàtan", + "1f34d": "pinya", + "1f96d": "mango", + "1f34f": "poma verda", + "1f350": "pera", + "1f351": "préssec", + "1f352": "cireres", + "1f353": "maduixa", + "1fad0": "nabius", + "1f95d": "kiwi", + "1f345": "tomàquet", + "1fad2": "oliva", + "1f965": "coco", + "1f951": "alvocat", + "1f346": "albergínia", + "1f955": "pastanaga", + "1f33d": "panotxa", + "1f336": "bitxo", + "1f96c": "fulla verda", + "1f966": "bròcoli", + "1f9c5": "ceba", + "1f95c": "cacauets", + "1f950": "croissant", + "1f956": "baguet", + "1f968": "brètzel", + "1f96f": "bagel", + "1f95e": "creps americanes", + "1f9c7": "gofra", + "1f354": "hamburguesa", + "1f355": "pizza", + "1f32d": "frankfurt", + "1f32e": "taco", + "1f37f": "crispetes", + "1f980": "cranc", + "1f99e": "llagosta", + "1f368": "gelat", + "1f369": "dònut", + "1f36a": "galeta", + "1f382": "pastís d’aniversari", + "1f9c1": "cupcake", + "1f36b": "rajola de xocolata", + "1f36c": "caramel", + "1f36d": "piruleta", + "1fad6": "tetera", + "1f9c3": "bric", + "1f9c9": "mate", + "1f9ed": "brúixola", + "1f3d4": "muntanya amb neu al cim", + "1f30b": "volcà", + "1f3d5": "acampada", + "1f3dd": "illa deserta", + "1f3e1": "casa amb jardí", + "26f2": "font", + "1f3a0": "cavallets", + "1f3a1": "roda de fira", + "1f3a2": "muntanya russa", + "1f488": "barberia", + "1f686": "tren", + "1f68b": "vagó de tramvia", + "1f68d": "autobús que arriba", + "1f695": "taxi", + "1f697": "automòbil", + "1f69a": "camió de repartiment", + "1f69c": "tractor", + "1f6f5": "escúter", + "1f6fa": "bicitaxi amb motor", + "1f6f4": "patinet", + "1f6f9": "monopatí", + "1f6fc": "patí de rodes", + "2693": "àncora", + "26f5": "veler", + "1f6f6": "canoa", + "1f6a4": "llanxa ràpida", + "1f6a2": "vaixell", + "2708": "avió", + "1f681": "helicòpter", + "1f6a0": "telefèric de muntanya", + "1f6f0": "satèl·lit", + "1f680": "coet", + "1f6f8": "plat volador", + "23f0": "despertador", + "1f319": "lluna creixent", + "1f321": "termòmetre", + "2600": "sol", + "1fa90": "planeta amb anell", + "1f31f": "estrella brillant", + "1f300": "cicló", + "1f308": "arc de Sant Martí", + "2602": "paraigua", + "2744": "floc de neu", + "2604": "cometa", + "1f525": "foc", + "1f4a7": "gota", + "1f30a": "onada", + "1f383": "carabassa de Halloween", + "2728": "espurnes", + "1f388": "globus", + "1f389": "tub de confeti", + "1f38f": "banderins de carpes", + "1f380": "llaç", + "1f381": "regal embolicat", + "1f39f": "bitllet d’entrada", + "1f3c6": "trofeu", + "26bd": "pilota de futbol", + "1f3c0": "pilota de bàsquet", + "1f3c8": "pilota de futbol americà", + "1f3be": "tennis", + "1f94f": "disc volador", + "1f3d3": "tennis de taula", + "1f3f8": "bàdminton", + "1f93f": "ulleres de busseig", + "1f94c": "pedra de cúrling", + "1f3af": "dards", + "1fa80": "io-io", + "1fa81": "estel", + "1f52e": "bola de vidre", + "1f3b2": "daus", + "1f9e9": "peces de trencaclosques", + "1f3a8": "paleta d’artista", + "1f9f5": "fil", + "1f455": "samarreta", + "1f9e6": "mitjons", + "1f457": "vestit", + "1fa73": "pantalons curts", + "1f392": "motxilla d’escola", + "1f45f": "sabatilla de córrer", + "1f451": "corona", + "1f9e2": "gorra", + "1f484": "pintallavis", + "1f48d": "anell", + "1f48e": "gemma", + "1f4e2": "altaveu de megafonia", + "1f3b6": "notes musicals", + "1f399": "micròfon d’estudi", + "1f4fb": "ràdio", + "1f3b7": "saxofon", + "1fa97": "acordió", + "1f3b8": "guitarra", + "1f3ba": "trompeta", + "1f3bb": "violí", + "1fa95": "banjo", + "1f941": "tambor", + "260e": "telèfon", + "1f50b": "bateria", + "1f4bf": "disc òptic", + "1f9ee": "àbac", + "1f3ac": "claqueta", + "1f4a1": "bombeta", + "1f526": "llanterna", + "1f3ee": "fanal de paper vermell", + "1f4d5": "llibre tancat", + "1f3f7": "etiqueta", + "1f4b3": "targeta de crèdit", + "270f": "llapis", + "1f58c": "pinzell", + "1f58d": "llapis de color", + "1f4cc": "xinxeta", + "1f4ce": "clip", + "1f511": "clau", + "1fa83": "bumerang", + "1f3f9": "arc i fletxa", + "2696": "balança (aparell)", + "1f9f2": "imant", + "1f9ea": "tub d’assaig", + "1f9ec": "adn", + "1f52c": "microscopi", + "1f52d": "telescopi", + "1f4e1": "antena de satèl·lit", + "1fa91": "cadira", + "1f9f9": "escombra", + "1f5ff": "moai" + }, + "cs": { + "1f47d": "mimozemšťan", + "1f916": "obličej robota", + "1f9e0": "mozek", + "1f441": "oko", + "1f9d9": "mág", + "1f9da": "víla", + "1f9dc": "mořská bytost", + "1f435": "hlava opice", + "1f9a7": "orangutan", + "1f436": "hlava psa", + "1f43a": "hlava vlka", + "1f98a": "hlava lišky", + "1f99d": "mýval", + "1f431": "hlava kočky", + "1f981": "hlava lva", + "1f42f": "hlava tygra", + "1f434": "hlava koně", + "1f984": "hlava jednorožce", + "1f993": "zebra", + "1f98c": "jelen", + "1f42e": "hlava krávy", + "1f437": "hlava prasete", + "1f417": "kanec", + "1f42a": "velbloud jednohrbý", + "1f999": "lama", + "1f992": "žirafa", + "1f418": "slon", + "1f9a3": "mamut", + "1f98f": "nosorožec", + "1f42d": "hlava myši", + "1f430": "hlava králíka", + "1f43f": "veverka", + "1f994": "ježek", + "1f987": "netopýr", + "1f43b": "hlava medvěda", + "1f428": "koala", + "1f9a5": "lenochod", + "1f9a6": "vydra", + "1f998": "klokan", + "1f425": "kuřátko zepředu", + "1f426": "pták", + "1f54a": "holubice", + "1f986": "kachna", + "1f989": "sova", + "1f9a4": "dodo", + "1fab6": "pírko", + "1f9a9": "plameňák", + "1f99a": "páv", + "1f99c": "papoušek", + "1f40a": "krokodýl", + "1f422": "želva", + "1f98e": "ještěrka", + "1f40d": "had", + "1f432": "hlava draka", + "1f995": "brontosaurus", + "1f433": "velryba stříkající vodu", + "1f42c": "delfín", + "1f9ad": "tuleň", + "1f41f": "ryba", + "1f420": "tropická ryba", + "1f988": "žralok", + "1f419": "chobotnice", + "1f41a": "ulita", + "1f40c": "hlemýžď", + "1f98b": "motýl", + "1f41b": "housenka", + "1f41d": "včela", + "1f41e": "beruška", + "1f490": "kytice", + "1f339": "růže", + "1f33a": "ibišek", + "1f33b": "slunečnice", + "1f337": "tulipán", + "1f332": "jehličnatý strom", + "1f333": "listnatý strom", + "1f334": "palma", + "1f335": "kaktus", + "1f33f": "bylina", + "1f341": "javorový list", + "1f344": "houba", + "1f347": "hrozny", + "1f348": "cukrový meloun", + "1f349": "meloun", + "1f34a": "mandarinka", + "1f34b": "citron", + "1f34c": "banán", + "1f34d": "ananas", + "1f96d": "mango", + "1f34f": "zelené jablko", + "1f350": "hruška", + "1f351": "broskev", + "1f352": "třešně", + "1f353": "jahoda", + "1fad0": "borůvky", + "1f95d": "kiwi", + "1f345": "rajče", + "1fad2": "oliva", + "1f965": "kokos", + "1f951": "avokádo", + "1f346": "lilek", + "1f955": "mrkev", + "1f33d": "kukuřičný klas", + "1f336": "feferonka", + "1f96c": "salátové listy", + "1f966": "brokolice", + "1f9c5": "cibule", + "1f95c": "arašídy", + "1f950": "croissant", + "1f956": "bageta", + "1f968": "preclík", + "1f96f": "bagel", + "1f95e": "palačinky", + "1f9c7": "vafle", + "1f354": "hamburger", + "1f355": "pizza", + "1f32d": "párek v rohlíku", + "1f32e": "taco", + "1f37f": "popcorn", + "1f980": "krab", + "1f99e": "humr", + "1f368": "kopečková zmrzlina", + "1f369": "donut", + "1f36a": "koláček", + "1f382": "narozeninový dort", + "1f9c1": "košíček", + "1f36b": "tabulka čokolády", + "1f36c": "bonbon", + "1f36d": "lízátko", + "1fad6": "čajová konvice", + "1f9c3": "nápoj v krabičce", + "1f9c9": "maté", + "1f9ed": "kompas", + "1f3d4": "zasněžená hora", + "1f30b": "sopka", + "1f3d5": "tábor", + "1f3dd": "pustý ostrov", + "1f3e1": "domek se zahradou", + "26f2": "fontána", + "1f3a0": "kolotočový kůň", + "1f3a1": "ruské kolo", + "1f3a2": "horská dráha", + "1f488": "značka holičství", + "1f686": "vlak", + "1f68b": "vagón tramvaje", + "1f68d": "přijíždějící autobus", + "1f695": "taxík", + "1f697": "auto", + "1f69a": "dodávka", + "1f69c": "traktor", + "1f6f5": "skútr", + "1f6fa": "autorikša", + "1f6f4": "koloběžka", + "1f6f9": "skateboard", + "1f6fc": "kolečková brusle", + "2693": "kotva", + "26f5": "plachetnice", + "1f6f6": "kánoe", + "1f6a4": "motorový člun", + "1f6a2": "loď", + "2708": "letadlo", + "1f681": "vrtulník", + "1f6a0": "horská lanovka", + "1f6f0": "satelit", + "1f680": "raketa", + "1f6f8": "létající talíř", + "23f0": "budík", + "1f319": "srpek měsíce", + "1f321": "teploměr", + "2600": "slunce", + "1fa90": "planeta s prstencem", + "1f31f": "zářící hvězda", + "1f300": "cyklóna", + "1f308": "duha", + "2602": "deštník", + "2744": "sněhová vločka", + "2604": "kometa", + "1f525": "oheň", + "1f4a7": "kapka", + "1f30a": "vodní vlna", + "1f383": "dýňová lucerna", + "2728": "jiskry", + "1f388": "balónek", + "1f389": "vystřelovací konfety", + "1f38f": "koinobori", + "1f380": "mašle", + "1f381": "zabalený dárek", + "1f39f": "vstupenky", + "1f3c6": "trofejní pohár", + "26bd": "fotbalový míč", + "1f3c0": "basketbalový míč", + "1f3c8": "míč na americký fotbal", + "1f3be": "tenis", + "1f94f": "frisbee", + "1f3d3": "stolní tenis", + "1f3f8": "badminton", + "1f93f": "potápěčská maska", + "1f94c": "curlingový kámen", + "1f3af": "přesný zásah do terče", + "1fa80": "jojo", + "1fa81": "papírový drak", + "1f52e": "křišťálová koule", + "1f3b2": "hrací kostka", + "1f9e9": "puzzle", + "1f3a8": "malířská paleta", + "1f9f5": "cívka nití", + "1f455": "tričko", + "1f9e6": "ponožky", + "1f457": "šaty", + "1fa73": "šortky", + "1f392": "školní batoh", + "1f45f": "běžecká bota", + "1f451": "koruna", + "1f9e2": "kšiltovka", + "1f484": "rtěnka", + "1f48d": "prsten", + "1f48e": "drahokam", + "1f4e2": "tlampač", + "1f3b6": "noty", + "1f399": "studiový mikrofon", + "1f4fb": "rádio", + "1f3b7": "saxofon", + "1fa97": "akordeon", + "1f3b8": "kytara", + "1f3ba": "trubka", + "1f3bb": "housle", + "1fa95": "banjo", + "1f941": "buben", + "260e": "telefon", + "1f50b": "baterie", + "1f4bf": "optický disk", + "1f9ee": "počitadlo", + "1f3ac": "filmová klapka", + "1f4a1": "žárovka", + "1f526": "baterka", + "1f3ee": "červený lampion", + "1f4d5": "zavřená kniha", + "1f3f7": "visačka", + "1f4b3": "platební karta", + "270f": "tužka", + "1f58c": "štětec", + "1f58d": "pastelka", + "1f4cc": "připínáček", + "1f4ce": "kancelářská sponka", + "1f511": "klíč", + "1fa83": "bumerang", + "1f3f9": "luk a šíp", + "2696": "miskové váhy", + "1f9f2": "magnet", + "1f9ea": "zkumavka", + "1f9ec": "DNA", + "1f52c": "mikroskop", + "1f52d": "teleskop", + "1f4e1": "satelitní anténa", + "1fa91": "židle", + "1f9f9": "koště", + "1f5ff": "socha moai" + }, + "da": { + "1f47d": "rumvæsen", + "1f916": "robot", + "1f9e0": "hjerne", + "1f441": "øje", + "1f9d9": "magiker", + "1f9da": "fe", + "1f9dc": "havvæsen", + "1f435": "abehoved", + "1f9a7": "orangutang", + "1f436": "hundehoved", + "1f43a": "ulvehoved", + "1f98a": "rævehoved", + "1f99d": "vaskebjørn", + "1f431": "kattehoved", + "1f981": "løvehoved", + "1f42f": "tigerhoved", + "1f434": "hestehoved", + "1f984": "enhjørningehoved", + "1f993": "zebra", + "1f98c": "hjort", + "1f42e": "kohoved", + "1f437": "grisehoved", + "1f417": "vildsvin", + "1f42a": "dromedar", + "1f999": "lama", + "1f992": "giraf", + "1f418": "elefant", + "1f9a3": "mammut", + "1f98f": "næsehorn", + "1f42d": "musehoved", + "1f430": "kaninhoved", + "1f43f": "jordegern", + "1f994": "pindsvin", + "1f987": "flagermus", + "1f43b": "bjørnehoved", + "1f428": "koala", + "1f9a5": "dovendyr", + "1f9a6": "odder", + "1f998": "kænguru", + "1f425": "kylling forfra", + "1f426": "fugl", + "1f54a": "due", + "1f986": "and", + "1f989": "ugle", + "1f9a4": "dronte", + "1fab6": "fjer", + "1f9a9": "flamingo", + "1f99a": "påfugl", + "1f99c": "papegøje", + "1f40a": "krokodille", + "1f422": "skildpadde", + "1f98e": "firben", + "1f40d": "slange", + "1f432": "dragehoved", + "1f995": "sauropod", + "1f433": "hval med vandsprøjt", + "1f42c": "delfin", + "1f9ad": "sæl", + "1f41f": "fisk", + "1f420": "tropisk fisk", + "1f988": "haj", + "1f419": "blæksprutte", + "1f41a": "konkylie", + "1f40c": "snegl", + "1f98b": "sommerfugl", + "1f41b": "larve", + "1f41d": "honningbi", + "1f41e": "mariehøne", + "1f490": "blomsterbuket", + "1f339": "rose", + "1f33a": "hibiscus", + "1f33b": "solsikke", + "1f337": "tulipan", + "1f332": "nåletræ", + "1f333": "løvtræ", + "1f334": "palme", + "1f335": "kaktus", + "1f33f": "urt", + "1f341": "ahornblad", + "1f344": "svamp", + "1f347": "vindruer", + "1f348": "melon", + "1f349": "vandmelon", + "1f34a": "appelsin", + "1f34b": "citron", + "1f34c": "banan", + "1f34d": "ananas", + "1f96d": "mango", + "1f34f": "grønt æble", + "1f350": "pære", + "1f351": "fersken", + "1f352": "kirsebær", + "1f353": "jordbær", + "1fad0": "blåbær", + "1f95d": "kiwifrugt", + "1f345": "tomat", + "1fad2": "oliven", + "1f965": "kokosnød", + "1f951": "avokado", + "1f346": "aubergine", + "1f955": "gulerod", + "1f33d": "majs", + "1f336": "chili", + "1f96c": "bladgrønt", + "1f966": "broccoli", + "1f9c5": "løg", + "1f95c": "jordnødder", + "1f950": "croissant", + "1f956": "flute", + "1f968": "kringle", + "1f96f": "bagel", + "1f95e": "pandekager", + "1f9c7": "vaffel", + "1f354": "hamburger", + "1f355": "pizza", + "1f32d": "hotdog", + "1f32e": "taco", + "1f37f": "popcorn", + "1f980": "krabbe", + "1f99e": "hummer", + "1f368": "is", + "1f369": "donut", + "1f36a": "småkage", + "1f382": "fødselsdagskage", + "1f9c1": "cupcake", + "1f36b": "chokolade", + "1f36c": "bolsje", + "1f36d": "slikkepind", + "1fad6": "tekande", + "1f9c3": "brik", + "1f9c9": "mate", + "1f9ed": "kompas", + "1f3d4": "sneklædt bjerg", + "1f30b": "vulkan", + "1f3d5": "camping", + "1f3dd": "øde ø", + "1f3e1": "hus med have", + "26f2": "springvand", + "1f3a0": "karrusel", + "1f3a1": "pariserhjul", + "1f3a2": "rutsjebane", + "1f488": "barber", + "1f686": "tog", + "1f68b": "vogn", + "1f68d": "bus forfra", + "1f695": "taxa", + "1f697": "bil", + "1f69a": "lastbil", + "1f69c": "traktor", + "1f6f5": "scooter", + "1f6fa": "motor-rickshaw", + "1f6f4": "løbehjul", + "1f6f9": "skateboard", + "1f6fc": "rulleskøjte", + "2693": "anker", + "26f5": "sejlbåd", + "1f6f6": "kano", + "1f6a4": "speedbåd", + "1f6a2": "skib", + "2708": "fly", + "1f681": "helikopter", + "1f6a0": "kabelbane", + "1f6f0": "satellit", + "1f680": "raket", + "1f6f8": "ufo", + "23f0": "vækkeur", + "1f319": "halvmåne", + "1f321": "termometer", + "2600": "sol", + "1fa90": "planet med ringe", + "1f31f": "blinkende stjerne", + "1f300": "cyklon", + "1f308": "regnbue", + "2602": "paraply", + "2744": "snefnug", + "2604": "komet", + "1f525": "ild", + "1f4a7": "dråbe", + "1f30a": "bølge", + "1f383": "græskarmand", + "2728": "stjerner", + "1f388": "ballon", + "1f389": "bordbombe", + "1f38f": "karpevimpel", + "1f380": "sløjfe", + "1f381": "gave", + "1f39f": "adgangsbillet", + "1f3c6": "pokal", + "26bd": "fodbold", + "1f3c0": "basketball", + "1f3c8": "amerikansk fodbold", + "1f3be": "tennis", + "1f94f": "frisbee", + "1f3d3": "bordtennis", + "1f3f8": "badminton", + "1f93f": "dykkermaske", + "1f94c": "curlingsten", + "1f3af": "pletskud", + "1fa80": "yoyo", + "1fa81": "legetøjsdrage", + "1f52e": "krystalkugle", + "1f3b2": "terning", + "1f9e9": "brik til puslespil", + "1f3a8": "palet", + "1f9f5": "tråd", + "1f455": "T-shirt", + "1f9e6": "sokker", + "1f457": "kjole", + "1fa73": "shorts", + "1f392": "rygsæk", + "1f45f": "løbesko", + "1f451": "krone", + "1f9e2": "kasket", + "1f484": "læbestift", + "1f48d": "ring", + "1f48e": "ædelsten", + "1f4e2": "elektrisk megafon", + "1f3b6": "noder", + "1f399": "studiemikrofon", + "1f4fb": "radio", + "1f3b7": "saxofon", + "1fa97": "akkordeon", + "1f3b8": "guitar", + "1f3ba": "trompet", + "1f3bb": "violin", + "1fa95": "banjo", + "1f941": "tromme", + "260e": "telefon", + "1f50b": "batteri", + "1f4bf": "cd", + "1f9ee": "kugleramme", + "1f3ac": "klaptræ", + "1f4a1": "elpære", + "1f526": "lommelygte", + "1f3ee": "papirlanterne", + "1f4d5": "lukket bog", + "1f3f7": "mærkat", + "1f4b3": "kreditkort", + "270f": "blyant", + "1f58c": "malerpensel", + "1f58d": "farvekridt", + "1f4cc": "tegnestift", + "1f4ce": "papirclips", + "1f511": "nøgle", + "1fa83": "boomerang", + "1f3f9": "bue og pil", + "2696": "vægt", + "1f9f2": "magnet", + "1f9ea": "reagensglas", + "1f9ec": "dna", + "1f52c": "mikroskop", + "1f52d": "teleskop", + "1f4e1": "parabolantenne", + "1fa91": "stol", + "1f9f9": "kost", + "1f5ff": "statue" + }, + "de": { + "1f47d": "Außerirdischer", + "1f916": "Roboter", + "1f9e0": "Gehirn", + "1f441": "Auge", + "1f9d9": "Magier(in)", + "1f9da": "Märchenfee", + "1f9dc": "Wassermensch", + "1f435": "Affengesicht", + "1f9a7": "Orang-Utan", + "1f436": "Hundegesicht", + "1f43a": "Wolf", + "1f98a": "Fuchs", + "1f99d": "Waschbär", + "1f431": "Katzengesicht", + "1f981": "Löwe", + "1f42f": "Tigergesicht", + "1f434": "Pferdegesicht", + "1f984": "Einhorn", + "1f993": "Zebra", + "1f98c": "Hirsch", + "1f42e": "Kuhgesicht", + "1f437": "Schweinegesicht", + "1f417": "Wildschwein", + "1f42a": "Dromedar", + "1f999": "Lama", + "1f992": "Giraffe", + "1f418": "Elefant", + "1f9a3": "Mammut", + "1f98f": "Nashorn", + "1f42d": "Mäusegesicht", + "1f430": "Hasengesicht", + "1f43f": "Streifenhörnchen", + "1f994": "Igel", + "1f987": "Fledermaus", + "1f43b": "Bär", + "1f428": "Koala", + "1f9a5": "Faultier", + "1f9a6": "Otter", + "1f998": "Känguru", + "1f425": "Küken von vorne", + "1f426": "Vogel", + "1f54a": "Taube", + "1f986": "Ente", + "1f989": "Eule", + "1f9a4": "Dodo", + "1fab6": "Feder", + "1f9a9": "Flamingo", + "1f99a": "Pfau", + "1f99c": "Papagei", + "1f40a": "Krokodil", + "1f422": "Schildkröte", + "1f98e": "Eidechse", + "1f40d": "Schlange", + "1f432": "Drachengesicht", + "1f995": "Sauropode", + "1f433": "blasender Wal", + "1f42c": "Delfin", + "1f9ad": "Seehund", + "1f41f": "Fisch", + "1f420": "Tropenfisch", + "1f988": "Hai", + "1f419": "Oktopus", + "1f41a": "Schneckenhaus", + "1f40c": "Schnecke", + "1f98b": "Schmetterling", + "1f41b": "Raupe", + "1f41d": "Biene", + "1f41e": "Marienkäfer", + "1f490": "Blumenstrauß", + "1f339": "Rose", + "1f33a": "Hibiskus", + "1f33b": "Sonnenblume", + "1f337": "Tulpe", + "1f332": "Nadelbaum", + "1f333": "Laubbaum", + "1f334": "Palme", + "1f335": "Kaktus", + "1f33f": "Kräuter", + "1f341": "Ahornblatt", + "1f344": "Fliegenpilz", + "1f347": "Trauben", + "1f348": "Honigmelone", + "1f349": "Wassermelone", + "1f34a": "Mandarine", + "1f34b": "Zitrone", + "1f34c": "Banane", + "1f34d": "Ananas", + "1f96d": "Mango", + "1f34f": "grüner Apfel", + "1f350": "Birne", + "1f351": "Pfirsich", + "1f352": "Kirschen", + "1f353": "Erdbeere", + "1fad0": "Blaubeeren", + "1f95d": "Kiwi", + "1f345": "Tomate", + "1fad2": "Olive", + "1f965": "Kokosnuss", + "1f951": "Avocado", + "1f346": "Aubergine", + "1f955": "Karotte", + "1f33d": "Maiskolben", + "1f336": "Peperoni", + "1f96c": "Blattgemüse", + "1f966": "Brokkoli", + "1f9c5": "Zwiebel", + "1f95c": "Erdnuss", + "1f950": "Croissant", + "1f956": "Baguette", + "1f968": "Brezel", + "1f96f": "Bagel", + "1f95e": "Pfannkuchen", + "1f9c7": "Waffel", + "1f354": "Hamburger", + "1f355": "Pizza", + "1f32d": "Hotdog", + "1f32e": "Taco", + "1f37f": "Popcorn", + "1f980": "Krebs", + "1f99e": "Hummer", + "1f368": "Eiscreme", + "1f369": "Donut", + "1f36a": "Keks", + "1f382": "Geburtstagskuchen", + "1f9c1": "Cupcake", + "1f36b": "Schokoladentafel", + "1f36c": "Bonbon", + "1f36d": "Lutscher", + "1fad6": "Teekanne", + "1f9c3": "Trinkpäckchen", + "1f9c9": "Mate-Tee", + "1f9ed": "Kompass", + "1f3d4": "schneebedeckter Berg", + "1f30b": "Vulkan", + "1f3d5": "Camping", + "1f3dd": "einsame Insel", + "1f3e1": "Haus mit Garten", + "26f2": "Springbrunnen", + "1f3a0": "Karussellpferd", + "1f3a1": "Riesenrad", + "1f3a2": "Achterbahn", + "1f488": "Barbershop-Säule", + "1f686": "Zug", + "1f68b": "Straßenbahnwagen", + "1f68d": "Bus von vorne", + "1f695": "Taxi", + "1f697": "Auto", + "1f69a": "Lieferwagen", + "1f69c": "Traktor", + "1f6f5": "Motorroller", + "1f6fa": "Autorikscha", + "1f6f4": "Tretroller", + "1f6f9": "Skateboard", + "1f6fc": "Rollschuh", + "2693": "Anker", + "26f5": "Segelboot", + "1f6f6": "Kanu", + "1f6a4": "Schnellboot", + "1f6a2": "Schiff", + "2708": "Flugzeug", + "1f681": "Hubschrauber", + "1f6a0": "Bergschwebebahn", + "1f6f0": "Satellit", + "1f680": "Rakete", + "1f6f8": "fliegende Untertasse", + "23f0": "Wecker", + "1f319": "Mondsichel", + "1f321": "Thermometer", + "2600": "Sonne", + "1fa90": "Ringplanet", + "1f31f": "funkelnder Stern", + "1f300": "Wirbel", + "1f308": "Regenbogen", + "2602": "Regenschirm", + "2744": "Schneeflocke", + "2604": "Komet", + "1f525": "Feuer", + "1f4a7": "Tropfen", + "1f30a": "Welle", + "1f383": "Halloweenkürbis", + "2728": "funkelnde Sterne", + "1f388": "Luftballon", + "1f389": "Konfettibombe", + "1f38f": "traditionelle japanische Windsäcke", + "1f380": "pinke Schleife", + "1f381": "Geschenk", + "1f39f": "Eintrittskarten", + "1f3c6": "Pokal", + "26bd": "Fußball", + "1f3c0": "Basketball", + "1f3c8": "Football", + "1f3be": "Tennisball", + "1f94f": "Frisbee", + "1f3d3": "Tischtennis", + "1f3f8": "Badminton", + "1f93f": "Tauchmaske", + "1f94c": "Curlingstein", + "1f3af": "Darts", + "1fa80": "Jo-Jo", + "1fa81": "Drachen", + "1f52e": "Kristallkugel", + "1f3b2": "Spielwürfel", + "1f9e9": "Puzzleteil", + "1f3a8": "Mischpalette", + "1f9f5": "Faden", + "1f455": "T-Shirt", + "1f9e6": "Socken", + "1f457": "Kleid", + "1fa73": "Shorts", + "1f392": "Schulranzen", + "1f45f": "Sportschuh", + "1f451": "Krone", + "1f9e2": "Baseballmütze", + "1f484": "Lippenstift", + "1f48d": "Ring", + "1f48e": "Edelstein", + "1f4e2": "Lautsprecher", + "1f3b6": "Musiknoten", + "1f399": "Studiomikrofon", + "1f4fb": "Radio", + "1f3b7": "Saxofon", + "1fa97": "Akkordeon", + "1f3b8": "Gitarre", + "1f3ba": "Trompete", + "1f3bb": "Geige", + "1fa95": "Banjo", + "1f941": "Trommel", + "260e": "Telefon", + "1f50b": "Batterie", + "1f4bf": "CD", + "1f9ee": "Abakus", + "1f3ac": "Filmklappe", + "1f4a1": "Glühbirne", + "1f526": "Taschenlampe", + "1f3ee": "rote Papierlaterne", + "1f4d5": "geschlossenes Buch", + "1f3f7": "Etikett", + "1f4b3": "Kreditkarte", + "270f": "Bleistift", + "1f58c": "Pinsel", + "1f58d": "Wachsmalstift", + "1f4cc": "Reißzwecke", + "1f4ce": "Büroklammer", + "1f511": "Schlüssel", + "1fa83": "Bumerang", + "1f3f9": "Pfeil und Bogen", + "2696": "Waage", + "1f9f2": "Magnet", + "1f9ea": "Reagenzglas", + "1f9ec": "DNA", + "1f52c": "Mikroskop", + "1f52d": "Teleskop", + "1f4e1": "Satellitenschüssel", + "1fa91": "Stuhl", + "1f9f9": "Besen", + "1f5ff": "Statue" + }, + "el": { + "1f47d": "εξωγήινος", + "1f916": "ρομπότ", + "1f9e0": "μυαλό", + "1f441": "μάτι", + "1f9d9": "μάγος", + "1f9da": "νεράιδα", + "1f9dc": "γοργόνα", + "1f435": "πρόσωπο μαϊμούς", + "1f9a7": "ουρακοτάγκος", + "1f436": "πρόσωπο σκύλου", + "1f43a": "λύκος", + "1f98a": "αλεπού", + "1f99d": "ρακούν", + "1f431": "πρόσωπο γάτας", + "1f981": "λιοντάρι", + "1f42f": "πρόσωπο τίγρης", + "1f434": "πρόσωπο αλόγου", + "1f984": "μονόκερος", + "1f993": "ζέβρα", + "1f98c": "ελάφι", + "1f42e": "πρόσωπο αγελάδας", + "1f437": "πρόσωπο γουρουνιού", + "1f417": "αγριογούρουνο", + "1f42a": "καμήλα", + "1f999": "λάμα", + "1f992": "καμηλοπάρδαλη", + "1f418": "ελέφαντας", + "1f9a3": "μαμούθ", + "1f98f": "ρινόκερος", + "1f42d": "πρόσωπο ποντικιού", + "1f430": "πρόσωπο κουνελιού", + "1f43f": "σκιουράκι", + "1f994": "σκαντζόχοιρος", + "1f987": "νυχτερίδα", + "1f43b": "αρκούδα", + "1f428": "κοάλα", + "1f9a5": "βραδύπους", + "1f9a6": "βίδρα", + "1f998": "καγκουρό", + "1f425": "κοτοπουλάκι που κοιτά μπροστά", + "1f426": "πουλί", + "1f54a": "περιστέρι", + "1f986": "πάπια", + "1f989": "κουκουβάγια", + "1f9a4": "ντόντο", + "1fab6": "πούπουλο", + "1f9a9": "φλαμίνγκο", + "1f99a": "παγώνι", + "1f99c": "παπαγάλος", + "1f40a": "κροκόδειλος", + "1f422": "χελώνα", + "1f98e": "σαύρα", + "1f40d": "φίδι", + "1f432": "πρόσωπο δράκου", + "1f995": "σαυρόποδο", + "1f433": "φάλαινα που πετά νερό", + "1f42c": "δελφίνι", + "1f9ad": "φώκια", + "1f41f": "ψάρι", + "1f420": "τροπικό ψάρι", + "1f988": "καρχαρίας", + "1f419": "χταπόδι", + "1f41a": "σπειροειδές κοχύλι", + "1f40c": "σαλιγκάρι", + "1f98b": "πεταλούδα", + "1f41b": "κάμπια", + "1f41d": "μέλισσα", + "1f41e": "πασχαλίτσα", + "1f490": "μπουκέτο λουλούδια", + "1f339": "τριαντάφυλλο", + "1f33a": "ιβίσκος", + "1f33b": "ηλιοτρόπιο", + "1f337": "τουλίπα", + "1f332": "αειθαλές δέντρο", + "1f333": "φυλλοβόλο δέντρο", + "1f334": "φοινικόδεντρο", + "1f335": "κάκτος", + "1f33f": "βότανο", + "1f341": "φύλλο σφενδάμου", + "1f344": "μανιτάρι", + "1f347": "σταφύλι", + "1f348": "πεπόνι", + "1f349": "καρπούζι", + "1f34a": "μανταρίνι", + "1f34b": "λεμόνι", + "1f34c": "μπανάνα", + "1f34d": "ανανάς", + "1f96d": "μάνγκο", + "1f34f": "πράσινο μήλο", + "1f350": "αχλάδι", + "1f351": "ροδάκινο", + "1f352": "κεράσια", + "1f353": "φράουλα", + "1fad0": "μύρτιλο", + "1f95d": "ακτινίδιο", + "1f345": "ντομάτα", + "1fad2": "ελιά", + "1f965": "καρύδα", + "1f951": "αβοκάντο", + "1f346": "μελιτζάνα", + "1f955": "καρότο", + "1f33d": "καλαμπόκι", + "1f336": "καυτερή πιπεριά", + "1f96c": "πράσινο φυλλώδες", + "1f966": "μπρόκολο", + "1f9c5": "κρεμμύδι", + "1f95c": "φιστίκια", + "1f950": "κρουασάν", + "1f956": "μπαγκέτα", + "1f968": "πρέτσελ", + "1f96f": "μπέιγκελ", + "1f95e": "τηγανίτες", + "1f9c7": "βάφλα", + "1f354": "χάμπουργκερ", + "1f355": "πίτσα", + "1f32d": "χοτ ντογκ", + "1f32e": "τάκο", + "1f37f": "ποπ-κορν", + "1f980": "κάβουρας", + "1f99e": "αστακός", + "1f368": "παγωτό", + "1f369": "ντόνατ", + "1f36a": "μπισκότο", + "1f382": "τούρτα γενεθλίων", + "1f9c1": "κεκάκι", + "1f36b": "σοκολάτα", + "1f36c": "καραμέλα", + "1f36d": "γλειφιτζούρι", + "1fad6": "τσαγιέρα", + "1f9c3": "κουτί ροφήματος", + "1f9c9": "μάτε", + "1f9ed": "πυξίδα", + "1f3d4": "χιονισμένο βουνό", + "1f30b": "ηφαίστειο", + "1f3d5": "κατασκήνωση", + "1f3dd": "ερημονήσι", + "1f3e1": "σπίτι με κήπο", + "26f2": "σιντριβάνι", + "1f3a0": "αλογάκι καρουσέλ", + "1f3a1": "ρόδα λούνα-παρκ", + "1f3a2": "τρενάκι", + "1f488": "σύμβολο κουρείου", + "1f686": "τρένο", + "1f68b": "βαγόνι τραμ", + "1f68d": "διερχόμενο λεωφορείο", + "1f695": "ταξί", + "1f697": "αυτοκίνητο", + "1f69a": "φορτηγό", + "1f69c": "τρακτέρ", + "1f6f5": "σκουτεράκι", + "1f6fa": "ποδήλατο-ταξί", + "1f6f4": "πατίνι", + "1f6f9": "σκέιτμπορντ", + "1f6fc": "πατίνια", + "2693": "άγκυρα", + "26f5": "ιστιοφόρο", + "1f6f6": "κανό", + "1f6a4": "ταχύπλοο", + "1f6a2": "πλοίο", + "2708": "αεροπλάνο", + "1f681": "ελικόπτερο", + "1f6a0": "τελεφερίκ", + "1f6f0": "δορυφόρος", + "1f680": "πύραυλος", + "1f6f8": "ιπτάμενος δίσκος", + "23f0": "ξυπνητήρι", + "1f319": "ημισέληνος", + "1f321": "θερμόμετρο", + "2600": "ήλιος", + "1fa90": "πλανήτης με δακτύλιο", + "1f31f": "λαμπερό αστέρι", + "1f300": "κυκλώνας", + "1f308": "ουράνιο τόξο", + "2602": "ομπρέλα", + "2744": "χιονονιφάδα", + "2604": "κομήτης", + "1f525": "φωτιά", + "1f4a7": "σταγόνα", + "1f30a": "θαλάσσιο κύμα", + "1f383": "φανάρι από κολοκύθα", + "2728": "αστράκια", + "1f388": "μπαλόνι", + "1f389": "χαρτοπόλεμος", + "1f38f": "διακοσμητικοί κυπρίνοι", + "1f380": "κορδέλα", + "1f381": "τυλιγμένο δώρο", + "1f39f": "κάρτες εισόδου", + "1f3c6": "τρόπαιο", + "26bd": "μπάλα ποδοσφαίρου", + "1f3c0": "μπάλα μπάσκετ", + "1f3c8": "μπάλα αμερικάνικου ποδοσφαίρου", + "1f3be": "μπάλα τένις", + "1f94f": "φρίσμπι", + "1f3d3": "πινγκ πονγκ", + "1f3f8": "μπάντμιντον", + "1f93f": "μάσκα κατάδυσης", + "1f94c": "πέτρα κέρλινγκ", + "1f3af": "βελάκια", + "1fa80": "γιογιό", + "1fa81": "χαρταετός", + "1f52e": "κρυστάλλινη σφαίρα", + "1f3b2": "ζάρι", + "1f9e9": "κομμάτι παζλ", + "1f3a8": "παλέτα ζωγράφου", + "1f9f5": "κλωστή", + "1f455": "μπλουζάκι", + "1f9e6": "κάλτσες", + "1f457": "φόρεμα", + "1fa73": "σορτσάκι", + "1f392": "σχολική σάκα", + "1f45f": "αθλητικό παπούτσι", + "1f451": "στέμμα", + "1f9e2": "καπελάκι", + "1f484": "κραγιόν", + "1f48d": "δαχτυλίδι", + "1f48e": "διαμάντι", + "1f4e2": "ντουντούκα", + "1f3b6": "νότες μουσικής", + "1f399": "μικρόφωνο στούντιο", + "1f4fb": "ραδιόφωνο", + "1f3b7": "σαξόφωνο", + "1fa97": "ακορντεόν", + "1f3b8": "κιθάρα", + "1f3ba": "τρομπέτα", + "1f3bb": "βιολί", + "1fa95": "μπάντζο", + "1f941": "τύμπανο", + "260e": "τηλέφωνο", + "1f50b": "μπαταρία", + "1f4bf": "οπτικός δίσκος", + "1f9ee": "άβακας", + "1f3ac": "κλακέτα φιλμ", + "1f4a1": "λαμπτήρας", + "1f526": "φακός", + "1f3ee": "κόκκινο χάρτινο φανάρι", + "1f4d5": "κλειστό βιβλίο", + "1f3f7": "ετικέτα", + "1f4b3": "πιστωτική κάρτα", + "270f": "μολύβι", + "1f58c": "πινέλο", + "1f58d": "κηρομπογιά", + "1f4cc": "πινέζα", + "1f4ce": "συνδετήρας", + "1f511": "κλειδί", + "1fa83": "μπούμερανγκ", + "1f3f9": "τόξο και βέλος", + "2696": "ζυγαριά", + "1f9f2": "μαγνήτης", + "1f9ea": "δοκιμαστικός σωλήνας", + "1f9ec": "dna", + "1f52c": "μικροσκόπιο", + "1f52d": "τηλεσκόπιο", + "1f4e1": "δορυφορική κεραία", + "1fa91": "καρέκλα", + "1f9f9": "σκούπα", + "1f5ff": "μοάι" + }, + "en": { + "1f47d": "alien", + "1f916": "robot", + "1f9e0": "brain", + "1f441": "eye", + "1f9d9": "mage", + "1f9da": "fairy", + "1f9dc": "merperson", + "1f435": "monkey face", + "1f9a7": "orangutan", + "1f436": "dog face", + "1f43a": "wolf", + "1f98a": "fox", + "1f99d": "raccoon", + "1f431": "cat face", + "1f981": "lion", + "1f42f": "tiger face", + "1f434": "horse face", + "1f984": "unicorn", + "1f993": "zebra", + "1f98c": "deer", + "1f42e": "cow face", + "1f437": "pig face", + "1f417": "boar", + "1f42a": "camel", + "1f999": "llama", + "1f992": "giraffe", + "1f418": "elephant", + "1f9a3": "mammoth", + "1f98f": "rhinoceros", + "1f42d": "mouse face", + "1f430": "rabbit face", + "1f43f": "chipmunk", + "1f994": "hedgehog", + "1f987": "bat", + "1f43b": "bear", + "1f428": "koala", + "1f9a5": "sloth", + "1f9a6": "otter", + "1f998": "kangaroo", + "1f425": "front-facing baby chick", + "1f426": "bird", + "1f54a": "dove", + "1f986": "duck", + "1f989": "owl", + "1f9a4": "dodo", + "1fab6": "feather", + "1f9a9": "flamingo", + "1f99a": "peacock", + "1f99c": "parrot", + "1f40a": "crocodile", + "1f422": "turtle", + "1f98e": "lizard", + "1f40d": "snake", + "1f432": "dragon face", + "1f995": "sauropod", + "1f433": "spouting whale", + "1f42c": "dolphin", + "1f9ad": "seal", + "1f41f": "fish", + "1f420": "tropical fish", + "1f988": "shark", + "1f419": "octopus", + "1f41a": "spiral shell", + "1f40c": "snail", + "1f98b": "butterfly", + "1f41b": "bug", + "1f41d": "honeybee", + "1f41e": "lady beetle", + "1f490": "bouquet", + "1f339": "rose", + "1f33a": "hibiscus", + "1f33b": "sunflower", + "1f337": "tulip", + "1f332": "evergreen tree", + "1f333": "deciduous tree", + "1f334": "palm tree", + "1f335": "cactus", + "1f33f": "herb", + "1f341": "maple leaf", + "1f344": "mushroom", + "1f347": "grapes", + "1f348": "melon", + "1f349": "watermelon", + "1f34a": "tangerine", + "1f34b": "lemon", + "1f34c": "banana", + "1f34d": "pineapple", + "1f96d": "mango", + "1f34f": "green apple", + "1f350": "pear", + "1f351": "peach", + "1f352": "cherries", + "1f353": "strawberry", + "1fad0": "blueberries", + "1f95d": "kiwi fruit", + "1f345": "tomato", + "1fad2": "olive", + "1f965": "coconut", + "1f951": "avocado", + "1f346": "eggplant", + "1f955": "carrot", + "1f33d": "ear of corn", + "1f336": "hot pepper", + "1f96c": "leafy green", + "1f966": "broccoli", + "1f9c5": "onion", + "1f95c": "peanuts", + "1f950": "croissant", + "1f956": "baguette bread", + "1f968": "pretzel", + "1f96f": "bagel", + "1f95e": "pancakes", + "1f9c7": "waffle", + "1f354": "hamburger", + "1f355": "pizza", + "1f32d": "hot dog", + "1f32e": "taco", + "1f37f": "popcorn", + "1f980": "crab", + "1f99e": "lobster", + "1f368": "ice cream", + "1f369": "doughnut", + "1f36a": "cookie", + "1f382": "birthday cake", + "1f9c1": "cupcake", + "1f36b": "chocolate bar", + "1f36c": "candy", + "1f36d": "lollipop", + "1fad6": "teapot", + "1f9c3": "beverage box", + "1f9c9": "mate", + "1f9ed": "compass", + "1f3d4": "snow-capped mountain", + "1f30b": "volcano", + "1f3d5": "camping", + "1f3dd": "desert island", + "1f3e1": "house with garden", + "26f2": "fountain", + "1f3a0": "carousel horse", + "1f3a1": "ferris wheel", + "1f3a2": "roller coaster", + "1f488": "barber pole", + "1f686": "train", + "1f68b": "tram car", + "1f68d": "oncoming bus", + "1f695": "taxi", + "1f697": "automobile", + "1f69a": "delivery truck", + "1f69c": "tractor", + "1f6f5": "motor scooter", + "1f6fa": "auto rickshaw", + "1f6f4": "kick scooter", + "1f6f9": "skateboard", + "1f6fc": "roller skate", + "2693": "anchor", + "26f5": "sailboat", + "1f6f6": "canoe", + "1f6a4": "speedboat", + "1f6a2": "ship", + "2708": "airplane", + "1f681": "helicopter", + "1f6a0": "mountain cableway", + "1f6f0": "satellite", + "1f680": "rocket", + "1f6f8": "flying saucer", + "23f0": "alarm clock", + "1f319": "crescent moon", + "1f321": "thermometer", + "2600": "sun", + "1fa90": "ringed planet", + "1f31f": "glowing star", + "1f300": "cyclone", + "1f308": "rainbow", + "2602": "umbrella", + "2744": "snowflake", + "2604": "comet", + "1f525": "fire", + "1f4a7": "droplet", + "1f30a": "water wave", + "1f383": "jack-o-lantern", + "2728": "sparkles", + "1f388": "balloon", + "1f389": "party popper", + "1f38f": "carp streamer", + "1f380": "ribbon", + "1f381": "wrapped gift", + "1f39f": "admission tickets", + "1f3c6": "trophy", + "26bd": "soccer ball", + "1f3c0": "basketball", + "1f3c8": "american football", + "1f3be": "tennis", + "1f94f": "flying disc", + "1f3d3": "ping pong", + "1f3f8": "badminton", + "1f93f": "diving mask", + "1f94c": "curling stone", + "1f3af": "bullseye", + "1fa80": "yo-yo", + "1fa81": "kite", + "1f52e": "crystal ball", + "1f3b2": "game die", + "1f9e9": "puzzle piece", + "1f3a8": "artist palette", + "1f9f5": "thread", + "1f455": "t-shirt", + "1f9e6": "socks", + "1f457": "dress", + "1fa73": "shorts", + "1f392": "backpack", + "1f45f": "running shoe", + "1f451": "crown", + "1f9e2": "billed cap", + "1f484": "lipstick", + "1f48d": "ring", + "1f48e": "gem stone", + "1f4e2": "loudspeaker", + "1f3b6": "musical notes", + "1f399": "studio microphone", + "1f4fb": "radio", + "1f3b7": "saxophone", + "1fa97": "accordion", + "1f3b8": "guitar", + "1f3ba": "trumpet", + "1f3bb": "violin", + "1fa95": "banjo", + "1f941": "drum", + "260e": "telephone", + "1f50b": "battery", + "1f4bf": "optical disk", + "1f9ee": "abacus", + "1f3ac": "clapper board", + "1f4a1": "light bulb", + "1f526": "flashlight", + "1f3ee": "red paper lantern", + "1f4d5": "closed book", + "1f3f7": "label", + "1f4b3": "credit card", + "270f": "pencil", + "1f58c": "paintbrush", + "1f58d": "crayon", + "1f4cc": "pushpin", + "1f4ce": "paperclip", + "1f511": "key", + "1fa83": "boomerang", + "1f3f9": "bow and arrow", + "2696": "balance scale", + "1f9f2": "magnet", + "1f9ea": "test tube", + "1f9ec": "dna", + "1f52c": "microscope", + "1f52d": "telescope", + "1f4e1": "satellite antenna", + "1fa91": "chair", + "1f9f9": "broom", + "1f5ff": "moai" + }, + "es": { + "1f47d": "alienígena", + "1f916": "robot", + "1f9e0": "cerebro", + "1f441": "ojo", + "1f9d9": "persona maga", + "1f9da": "hada", + "1f9dc": "persona sirena", + "1f435": "cara de mono", + "1f9a7": "orangután", + "1f436": "cara de perro", + "1f43a": "lobo", + "1f98a": "zorro", + "1f99d": "mapache", + "1f431": "cara de gato", + "1f981": "león", + "1f42f": "cara de tigre", + "1f434": "cara de caballo", + "1f984": "unicornio", + "1f993": "cebra", + "1f98c": "ciervo", + "1f42e": "cara de vaca", + "1f437": "cara de cerdo", + "1f417": "jabalí", + "1f42a": "dromedario", + "1f999": "llama", + "1f992": "jirafa", + "1f418": "elefante", + "1f9a3": "mamut", + "1f98f": "rinoceronte", + "1f42d": "cara de ratón", + "1f430": "cara de conejo", + "1f43f": "ardilla", + "1f994": "erizo", + "1f987": "murciélago", + "1f43b": "oso", + "1f428": "koala", + "1f9a5": "perezoso", + "1f9a6": "nutria", + "1f998": "canguro", + "1f425": "pollito de frente", + "1f426": "pájaro", + "1f54a": "paloma", + "1f986": "pato", + "1f989": "búho", + "1f9a4": "dodo", + "1fab6": "pluma", + "1f9a9": "flamenco", + "1f99a": "pavo real", + "1f99c": "loro", + "1f40a": "cocodrilo", + "1f422": "tortuga", + "1f98e": "lagarto", + "1f40d": "serpiente", + "1f432": "cara de dragón", + "1f995": "saurópodo", + "1f433": "ballena soltando un chorro", + "1f42c": "delfín", + "1f9ad": "foca", + "1f41f": "pez", + "1f420": "pez tropical", + "1f988": "tiburón", + "1f419": "pulpo", + "1f41a": "caracola", + "1f40c": "caracol", + "1f98b": "mariposa", + "1f41b": "bicho", + "1f41d": "abeja", + "1f41e": "mariquita", + "1f490": "ramo de flores", + "1f339": "rosa", + "1f33a": "flor de hibisco", + "1f33b": "girasol", + "1f337": "tulipán", + "1f332": "árbol de hoja perenne", + "1f333": "árbol de hoja caduca", + "1f334": "palmera", + "1f335": "cactus", + "1f33f": "hierba", + "1f341": "hoja de arce", + "1f344": "champiñón", + "1f347": "uvas", + "1f348": "melón", + "1f349": "sandía", + "1f34a": "mandarina", + "1f34b": "limón", + "1f34c": "plátano", + "1f34d": "piña", + "1f96d": "mango", + "1f34f": "manzana verde", + "1f350": "pera", + "1f351": "melocotón", + "1f352": "cerezas", + "1f353": "fresa", + "1fad0": "arándanos", + "1f95d": "kiwi", + "1f345": "tomate", + "1fad2": "aceituna", + "1f965": "coco", + "1f951": "aguacate", + "1f346": "berenjena", + "1f955": "zanahoria", + "1f33d": "espiga de maíz", + "1f336": "chile picante", + "1f96c": "verdura de hoja verde", + "1f966": "brócoli", + "1f9c5": "cebolla", + "1f95c": "cacahuetes", + "1f950": "cruasán", + "1f956": "baguete", + "1f968": "bretzel", + "1f96f": "bagel", + "1f95e": "tortitas", + "1f9c7": "gofre", + "1f354": "hamburguesa", + "1f355": "pizza", + "1f32d": "perrito caliente", + "1f32e": "taco", + "1f37f": "palomitas", + "1f980": "cangrejo", + "1f99e": "bogavante", + "1f368": "helado", + "1f369": "dónut", + "1f36a": "galleta", + "1f382": "tarta de cumpleaños", + "1f9c1": "magdalena", + "1f36b": "tableta de chocolate", + "1f36c": "caramelo", + "1f36d": "piruleta", + "1fad6": "tetera", + "1f9c3": "tetrabrik", + "1f9c9": "mate", + "1f9ed": "brújula", + "1f3d4": "montaña con nieve", + "1f30b": "volcán", + "1f3d5": "camping", + "1f3dd": "isla desierta", + "1f3e1": "casa con jardín", + "26f2": "fuente", + "1f3a0": "caballo de tiovivo", + "1f3a1": "noria de feria", + "1f3a2": "montaña rusa", + "1f488": "poste de barbero", + "1f686": "tren", + "1f68b": "vagón de tranvía", + "1f68d": "autobús próximo", + "1f695": "taxi", + "1f697": "coche", + "1f69a": "camión de reparto", + "1f69c": "tractor", + "1f6f5": "scooter", + "1f6fa": "mototaxi", + "1f6f4": "patinete", + "1f6f9": "monopatín", + "1f6fc": "patines", + "2693": "ancla", + "26f5": "velero", + "1f6f6": "canoa", + "1f6a4": "lancha motora", + "1f6a2": "barco", + "2708": "avión", + "1f681": "helicóptero", + "1f6a0": "teleférico de montaña", + "1f6f0": "satélite", + "1f680": "cohete", + "1f6f8": "platillo volante", + "23f0": "reloj despertador", + "1f319": "luna", + "1f321": "termómetro", + "2600": "sol", + "1fa90": "planeta con anillos", + "1f31f": "estrella brillante", + "1f300": "ciclón", + "1f308": "arcoíris", + "2602": "paraguas", + "2744": "copo de nieve", + "2604": "meteorito", + "1f525": "fuego", + "1f4a7": "gota", + "1f30a": "ola de mar", + "1f383": "calabaza de Halloween", + "2728": "chispas", + "1f388": "globo", + "1f389": "cañón de confeti", + "1f38f": "banderín de carpas", + "1f380": "lazo", + "1f381": "regalo", + "1f39f": "entradas", + "1f3c6": "trofeo", + "26bd": "balón de fútbol", + "1f3c0": "balón de baloncesto", + "1f3c8": "balón de fútbol americano", + "1f3be": "pelota de tenis", + "1f94f": "disco volador", + "1f3d3": "tenis de mesa", + "1f3f8": "bádminton", + "1f93f": "máscara de buceo", + "1f94c": "piedra de curling", + "1f3af": "diana", + "1fa80": "yoyó", + "1fa81": "cometa", + "1f52e": "bola de cristal", + "1f3b2": "dado", + "1f9e9": "pieza de puzle", + "1f3a8": "paleta de pintor", + "1f9f5": "hilo", + "1f455": "camiseta", + "1f9e6": "calcetines", + "1f457": "vestido", + "1fa73": "pantalones cortos", + "1f392": "mochila escolar", + "1f45f": "zapatilla deportiva", + "1f451": "corona", + "1f9e2": "gorra con visera", + "1f484": "pintalabios", + "1f48d": "anillo", + "1f48e": "piedra preciosa", + "1f4e2": "altavoz de mano", + "1f3b6": "notas musicales", + "1f399": "micrófono de estudio", + "1f4fb": "radio", + "1f3b7": "saxofón", + "1fa97": "acordeón", + "1f3b8": "guitarra", + "1f3ba": "trompeta", + "1f3bb": "violín", + "1fa95": "banjo", + "1f941": "tambor", + "260e": "teléfono", + "1f50b": "pila", + "1f4bf": "disco óptico", + "1f9ee": "ábaco", + "1f3ac": "claqueta", + "1f4a1": "bombilla", + "1f526": "linterna", + "1f3ee": "lámpara japonesa", + "1f4d5": "libro cerrado", + "1f3f7": "etiqueta", + "1f4b3": "tarjeta de crédito", + "270f": "lápiz", + "1f58c": "pincel", + "1f58d": "lápiz de cera", + "1f4cc": "chincheta", + "1f4ce": "clip", + "1f511": "llave", + "1fa83": "bumerán", + "1f3f9": "arco y flecha", + "2696": "balanza", + "1f9f2": "imán", + "1f9ea": "tubo de ensayo", + "1f9ec": "adn", + "1f52c": "microscopio", + "1f52d": "telescopio", + "1f4e1": "antena de satélite", + "1fa91": "silla", + "1f9f9": "escoba", + "1f5ff": "estatua moái" + }, + "fa": { + "1f47d": "موجود فضایی", + "1f916": "روبات", + "1f9e0": "مغز", + "1f441": "چشم", + "1f9d9": "ساحر", + "1f9da": "پری", + "1f9dc": "دریامردمان", + "1f435": "صورت میمون", + "1f9a7": "اورانگوتان", + "1f436": "صورت سگ", + "1f43a": "گرگ", + "1f98a": "روباه", + "1f99d": "راکون", + "1f431": "صورت گربه", + "1f981": "شیر", + "1f42f": "صورت ببر", + "1f434": "صورت اسب", + "1f984": "تکشاخ", + "1f993": "گورخر", + "1f98c": "گوزن", + "1f42e": "صورت گاو", + "1f437": "صورت خوک", + "1f417": "گراز نر", + "1f42a": "شتر", + "1f999": "لاما", + "1f992": "زرافه", + "1f418": "فیل", + "1f9a3": "ماموت", + "1f98f": "کرگدن", + "1f42d": "صورت موش", + "1f430": "صورت خرگوش", + "1f43f": "سنجاب راهراه", + "1f994": "جوجهتیغی", + "1f987": "خفاش", + "1f43b": "خرس", + "1f428": "کوآلا", + "1f9a5": "تنبل", + "1f9a6": "سمور آبی", + "1f998": "کانگورو", + "1f425": "جوجه از روبرو", + "1f426": "پرنده", + "1f54a": "کبوتر", + "1f986": "مرغابی", + "1f989": "جغد", + "1f9a4": "دودو", + "1fab6": "پَر", + "1f9a9": "فلامینگو", + "1f99a": "طاووس", + "1f99c": "طوطی", + "1f40a": "تمساح", + "1f422": "لاکپشت", + "1f98e": "مارمولک", + "1f40d": "مار", + "1f432": "صورت اژدها", + "1f995": "سوسمار", + "1f433": "نهنگ در حال آبفشانی", + "1f42c": "دلفین", + "1f9ad": "فُک", + "1f41f": "ماهی", + "1f420": "ماهی استوایی", + "1f988": "کوسه", + "1f419": "هشتپا", + "1f41a": "صدف مارپیچی", + "1f40c": "حلزون", + "1f98b": "پروانه", + "1f41b": "حشره", + "1f41d": "زنبور عسل", + "1f41e": "کفشدوزک", + "1f490": "دسته گل", + "1f339": "رز", + "1f33a": "گل ختمی", + "1f33b": "گل آفتابگردان", + "1f337": "لاله", + "1f332": "همیشهسبز", + "1f333": "درخت سبز", + "1f334": "نخل", + "1f335": "کاکتوس", + "1f33f": "گیاه دارویی", + "1f341": "برگ افرا", + "1f344": "قارچ", + "1f347": "انگور", + "1f348": "طالبی", + "1f349": "هندوانه", + "1f34a": "نارنگی", + "1f34b": "لیمو ترش", + "1f34c": "موز", + "1f34d": "آناناس", + "1f96d": "انبه", + "1f34f": "سیب سبز", + "1f350": "گلابی", + "1f351": "هلو", + "1f352": "گیلاس", + "1f353": "توتفرنگی", + "1fad0": "توت آبی", + "1f95d": "کیوی", + "1f345": "گوجهفرنگی", + "1fad2": "زیتون", + "1f965": "نارگیل", + "1f951": "آووکادو", + "1f346": "بادمجان", + "1f955": "هویج", + "1f33d": "بلال ذرت", + "1f336": "فلفل قرمز", + "1f96c": "برگسبز", + "1f966": "بروکلی", + "1f9c5": "پیاز", + "1f95c": "بادام زمینی", + "1f950": "کرواسان", + "1f956": "نان باگت", + "1f968": "چوبشور", + "1f96f": "نان بیگل", + "1f95e": "پنکیک", + "1f9c7": "وافل", + "1f354": "همبرگر", + "1f355": "پیتزا", + "1f32d": "هات داگ", + "1f32e": "تاکو", + "1f37f": "ذرت بوداده", + "1f980": "خرچنگ", + "1f99e": "لابستر", + "1f368": "بستنی", + "1f369": "دونات", + "1f36a": "کلوچه", + "1f382": "کیک تولد", + "1f9c1": "کیک فنجانی", + "1f36b": "تخته شکلات", + "1f36c": "آبنبات", + "1f36d": "آبنباتچوبی", + "1fad6": "قوری", + "1f9c3": "پاکت نوشیدنی", + "1f9c9": "ماته", + "1f9ed": "قطبنما", + "1f3d4": "قلهٔ برفی", + "1f30b": "آتشفشان", + "1f3d5": "چادرزنی", + "1f3dd": "جزیرهٔ خالی از سکنه", + "1f3e1": "خانهٔ حیاطدار", + "26f2": "فواره", + "1f3a0": "چرخوفلک اسبی", + "1f3a1": "چرخوفلک", + "1f3a2": "ترن هوایی", + "1f488": "چراغ سلمانی", + "1f686": "قطار", + "1f68b": "قطار خیابانی", + "1f68d": "اتوبوس روبهجلو", + "1f695": "تاکسی", + "1f697": "خودرو", + "1f69a": "کامیون پخش", + "1f69c": "تراکتور", + "1f6f5": "اسکوتر", + "1f6fa": "اتوریکشا", + "1f6f4": "چرخ پایی", + "1f6f9": "تختهٔ اسکیت", + "1f6fc": "کفش اسکیت", + "2693": "لنگر", + "26f5": "قایق بادبانی", + "1f6f6": "بلم", + "1f6a4": "قایق تندرو", + "1f6a2": "کشتی", + "2708": "هواپیما", + "1f681": "هلیکوپتر", + "1f6a0": "تلهکابین کوهستانی", + "1f6f0": "ماهواره", + "1f680": "موشک", + "1f6f8": "بشقابپرنده", + "23f0": "ساعت رومیزی", + "1f319": "هلال ماه", + "1f321": "دماسنج", + "2600": "خورشید", + "1fa90": "سیاره حلقهدار", + "1f31f": "ستاره درخشان", + "1f300": "چرخند", + "1f308": "رنگین کمان", + "2602": "چتر", + "2744": "برفدانه", + "2604": "ستاره دنبالهدار", + "1f525": "آتش", + "1f4a7": "قطره", + "1f30a": "موج آب", + "1f383": "فانوس کدو تنبل", + "2728": "درخشش", + "1f388": "بادکنک", + "1f389": "بمب کاغذ رنگی", + "1f38f": "پرچمهای ماهی در باد", + "1f380": "روبان", + "1f381": "هدیهٔ کادوشده", + "1f39f": "بلیت ورود", + "1f3c6": "جام ورزشی", + "26bd": "توپ فوتبال", + "1f3c0": "بسکتبال", + "1f3c8": "فوتبال امریکایی", + "1f3be": "تنیس", + "1f94f": "فریزبی", + "1f3d3": "پینگپونگ", + "1f3f8": "بدمینتون", + "1f93f": "ماسک غواصی", + "1f94c": "سنگ کرلینگ", + "1f3af": "پیکان در قلب هدف", + "1fa80": "یویو", + "1fa81": "بادبادک", + "1f52e": "گوی", + "1f3b2": "تاس بازی", + "1f9e9": "قطعه پازل", + "1f3a8": "پالت نقاشی", + "1f9f5": "نخ", + "1f455": "تیشرت", + "1f9e6": "جوراب", + "1f457": "پیراهن زنانه", + "1fa73": "شلوارک", + "1f392": "کولهپشتی", + "1f45f": "کفش دویدن", + "1f451": "تاج", + "1f9e2": "کلاه لبهدار", + "1f484": "رژلب", + "1f48d": "حلقه", + "1f48e": "جواهر", + "1f4e2": "بلندگو", + "1f3b6": "نتهای موسیقی", + "1f399": "میکروفون استودیویی", + "1f4fb": "رادیو", + "1f3b7": "ساکسیفون", + "1fa97": "آکوردئون", + "1f3b8": "گیتار", + "1f3ba": "ترومپت", + "1f3bb": "ویولن", + "1fa95": "بانجو", + "1f941": "طبل", + "260e": "تلفن", + "1f50b": "باتری", + "1f4bf": "سیدی", + "1f9ee": "چرتکه", + "1f3ac": "کلاکت", + "1f4a1": "لامپ", + "1f526": "چراغقوه", + "1f3ee": "فانوس کاغذی قرمز", + "1f4d5": "کتاب بسته", + "1f3f7": "برچسب", + "1f4b3": "کارت اعتباری", + "270f": "مداد", + "1f58c": "قلممو", + "1f58d": "مدادشمعی", + "1f4cc": "سنجاق", + "1f4ce": "گیرهٔ کاغذ", + "1f511": "کلید", + "1fa83": "بومرنگ", + "1f3f9": "تیر و کمان", + "2696": "ترازو", + "1f9f2": "آهنربا", + "1f9ea": "لولهٔ آزمایشگاه", + "1f9ec": "دیانای", + "1f52c": "میکروسکوپ", + "1f52d": "تلسکوپ", + "1f4e1": "آنتن ماهواره", + "1fa91": "صندلی", + "1f9f9": "جارو", + "1f5ff": "سردیس موآی" + }, + "fi": { + "1f47d": "avaruusolio", + "1f916": "robotti", + "1f9e0": "aivot", + "1f441": "silmä", + "1f9d9": "velho", + "1f9da": "keiju", + "1f9dc": "merenväki", + "1f435": "apinan naama", + "1f9a7": "oranki", + "1f436": "koiran naama", + "1f43a": "susi", + "1f98a": "kettu", + "1f99d": "pesukarhu", + "1f431": "kissan naama", + "1f981": "leijona", + "1f42f": "tiikerin naama", + "1f434": "hevosen naama", + "1f984": "yksisarvinen", + "1f993": "seepra", + "1f98c": "peura", + "1f42e": "lehmän naama", + "1f437": "sian naama", + "1f417": "villisika", + "1f42a": "kameli", + "1f999": "laama", + "1f992": "kirahvi", + "1f418": "elefantti", + "1f9a3": "mammutti", + "1f98f": "sarvikuono", + "1f42d": "hiiren naama", + "1f430": "jäniksen naama", + "1f43f": "maaorava", + "1f994": "siili", + "1f987": "lepakko", + "1f43b": "karhu", + "1f428": "koala", + "1f9a5": "laiskiainen", + "1f9a6": "saukko", + "1f998": "kenguru", + "1f425": "tipu edestäpäin", + "1f426": "lintu", + "1f54a": "kyyhky", + "1f986": "sorsa", + "1f989": "pöllö", + "1f9a4": "dodo", + "1fab6": "höyhen", + "1f9a9": "flamingo", + "1f99a": "riikinkukko", + "1f99c": "papukaija", + "1f40a": "krokotiili", + "1f422": "kilpikonna", + "1f98e": "lisko", + "1f40d": "käärme", + "1f432": "lohikäärmeen naama", + "1f995": "sauropodi", + "1f433": "suihkuttava valas", + "1f42c": "delfiini", + "1f9ad": "hylje", + "1f41f": "kala", + "1f420": "trooppinen kala", + "1f988": "hai", + "1f419": "mustekala", + "1f41a": "kotilo", + "1f40c": "etana", + "1f98b": "perhonen", + "1f41b": "ötökkä", + "1f41d": "mehiläinen", + "1f41e": "leppäkerttu", + "1f490": "kukkakimppu", + "1f339": "ruusu", + "1f33a": "kiinanruusu", + "1f33b": "auringonkukka", + "1f337": "tulppaani", + "1f332": "ikivihreä", + "1f333": "lehtipuu", + "1f334": "palmu", + "1f335": "kaktus", + "1f33f": "yrtti", + "1f341": "vaahteranlehti", + "1f344": "sieni", + "1f347": "viinirypäleet", + "1f348": "meloni", + "1f349": "vesimeloni", + "1f34a": "mandariini", + "1f34b": "sitruuna", + "1f34c": "banaani", + "1f34d": "ananas", + "1f96d": "mango", + "1f34f": "vihreä omena", + "1f350": "päärynä", + "1f351": "persikka", + "1f352": "kirsikat", + "1f353": "mansikka", + "1fad0": "mustikat", + "1f95d": "kiivi", + "1f345": "tomaatti", + "1fad2": "oliivi", + "1f965": "kookospähkinä", + "1f951": "avokado", + "1f346": "munakoiso", + "1f955": "porkkana", + "1f33d": "maissintähkä", + "1f336": "jalapeno", + "1f96c": "lehtivihannes", + "1f966": "parsakaali", + "1f9c5": "sipuli", + "1f95c": "maapähkinä", + "1f950": "voisarvi", + "1f956": "patonki", + "1f968": "rinkilä", + "1f96f": "vesirinkeli", + "1f95e": "letut", + "1f9c7": "vohveli", + "1f354": "hampurilainen", + "1f355": "pizza", + "1f32d": "hodari", + "1f32e": "taco", + "1f37f": "popcorn", + "1f980": "rapu", + "1f99e": "hummeri", + "1f368": "jäätelö", + "1f369": "donitsi", + "1f36a": "keksi", + "1f382": "syntymäpäiväkakku", + "1f9c1": "vuokaleivos", + "1f36b": "suklaapatukka", + "1f36c": "karkki", + "1f36d": "tikkari", + "1fad6": "teepannu", + "1f9c3": "juomatetra", + "1f9c9": "mate", + "1f9ed": "kompassi", + "1f3d4": "lumihuippuinen vuori", + "1f30b": "tulivuori", + "1f3d5": "telttailu", + "1f3dd": "autiosaari", + "1f3e1": "talo ja puutarha", + "26f2": "suihkulähde", + "1f3a0": "karusellihevonen", + "1f3a1": "maailmanpyörä", + "1f3a2": "vuoristorata", + "1f488": "punasiniraitainen pylväs", + "1f686": "juna", + "1f68b": "raitiovaunu", + "1f68d": "saapuva bussi", + "1f695": "taksi", + "1f697": "auto", + "1f69a": "kuljetusauto", + "1f69c": "traktori", + "1f6f5": "skootteri", + "1f6fa": "autorikša", + "1f6f4": "potkulauta", + "1f6f9": "rullalauta", + "1f6fc": "rullaluistin", + "2693": "ankkuri", + "26f5": "purjevene", + "1f6f6": "kanootti", + "1f6a4": "pikavene", + "1f6a2": "laiva", + "2708": "lentokone", + "1f681": "helikopteri", + "1f6a0": "gondolihissi", + "1f6f0": "satelliitti", + "1f680": "raketti", + "1f6f8": "lentävä lautanen", + "23f0": "herätyskello", + "1f319": "kuunsirppi", + "1f321": "lämpömittari", + "2600": "aurinko", + "1fa90": "rengasplaneetta", + "1f31f": "loistava tähti", + "1f300": "pyörremyrsky", + "1f308": "sateenkaari", + "2602": "sateenvarjo", + "2744": "lumihiutale", + "2604": "komeetta", + "1f525": "tuli", + "1f4a7": "pisara", + "1f30a": "aalto", + "1f383": "kurpitsalyhty", + "2728": "säihke", + "1f388": "ilmapallo", + "1f389": "paukkuserpentiini", + "1f38f": "karppiviiri", + "1f380": "rusetti", + "1f381": "lahjapaketti", + "1f39f": "pääsylippu", + "1f3c6": "pokaali", + "26bd": "jalkapallo", + "1f3c0": "koripallo", + "1f3c8": "amerikkalainen jalkapallo", + "1f3be": "tennis", + "1f94f": "liitokiekko", + "1f3d3": "pingis", + "1f3f8": "sulkapallo", + "1f93f": "sukellusmaski", + "1f94c": "curling-kivi", + "1f3af": "napakymppi", + "1fa80": "jojo", + "1fa81": "leija", + "1f52e": "kristallipallo", + "1f3b2": "noppa", + "1f9e9": "palapeli", + "1f3a8": "taiteilijan paletti", + "1f9f5": "lankarulla", + "1f455": "t-paita", + "1f9e6": "sukat", + "1f457": "mekko", + "1fa73": "uimashortsit", + "1f392": "koulureppu", + "1f45f": "juoksukenkä", + "1f451": "kruunu", + "1f9e2": "lippalakki", + "1f484": "huulipuna", + "1f48d": "sormus", + "1f48e": "jalokivi", + "1f4e2": "kovaääninen", + "1f3b6": "nuotteja", + "1f399": "studiomikrofoni", + "1f4fb": "radio", + "1f3b7": "saksofoni", + "1fa97": "harmonikka", + "1f3b8": "kitara", + "1f3ba": "trumpetti", + "1f3bb": "viulu", + "1fa95": "banjo", + "1f941": "rumpu", + "260e": "puhelin", + "1f50b": "akku", + "1f4bf": "CD", + "1f9ee": "helmitaulu", + "1f3ac": "klaffitaulu", + "1f4a1": "hehkulamppu", + "1f526": "taskulamppu", + "1f3ee": "punainen paperilyhty", + "1f4d5": "suljettu kirja", + "1f3f7": "lappu", + "1f4b3": "luottokortti", + "270f": "lyijykynä", + "1f58c": "sivellin", + "1f58d": "väriliitu", + "1f4cc": "nuppineula", + "1f4ce": "paperiliitin", + "1f511": "avain", + "1fa83": "bumerangi", + "1f3f9": "jousi ja nuoli", + "2696": "vaaka", + "1f9f2": "magneetti", + "1f9ea": "koeputki", + "1f9ec": "dna", + "1f52c": "mikroskooppi", + "1f52d": "kaukoputki", + "1f4e1": "lautasantenni", + "1fa91": "tuoli", + "1f9f9": "luuta", + "1f5ff": "moai" + }, + "fr": { + "1f47d": "alien", + "1f916": "robot", + "1f9e0": "cerveau", + "1f441": "œil", + "1f9d9": "mage", + "1f9da": "personnage féérique", + "1f9dc": "créature aquatique", + "1f435": "tête de singe", + "1f9a7": "orang-outan", + "1f436": "tête de chien", + "1f43a": "loup", + "1f98a": "renard", + "1f99d": "raton laveur", + "1f431": "tête de chat", + "1f981": "tête de lion", + "1f42f": "tête de tigre", + "1f434": "tête de cheval", + "1f984": "licorne", + "1f993": "zèbre", + "1f98c": "cerf", + "1f42e": "tête de vache", + "1f437": "tête de cochon", + "1f417": "sanglier", + "1f42a": "dromadaire", + "1f999": "lama", + "1f992": "girafe", + "1f418": "éléphant", + "1f9a3": "mammouth", + "1f98f": "rhinocéros", + "1f42d": "tête de souris", + "1f430": "tête de lapin", + "1f43f": "écureuil", + "1f994": "hérisson", + "1f987": "chauve-souris", + "1f43b": "ours", + "1f428": "koala", + "1f9a5": "paresseux", + "1f9a6": "loutre", + "1f998": "kangourou", + "1f425": "poussin de face", + "1f426": "oiseau", + "1f54a": "colombe", + "1f986": "canard", + "1f989": "chouette", + "1f9a4": "dodo", + "1fab6": "plume", + "1f9a9": "flamant", + "1f99a": "paon", + "1f99c": "perroquet", + "1f40a": "crocodile", + "1f422": "tortue", + "1f98e": "lézard", + "1f40d": "serpent", + "1f432": "tête de dragon", + "1f995": "sauropode", + "1f433": "baleine soufflant par son évent", + "1f42c": "dauphin", + "1f9ad": "phoque", + "1f41f": "poisson", + "1f420": "poisson tropical", + "1f988": "requin", + "1f419": "pieuvre", + "1f41a": "coquille en spirale", + "1f40c": "escargot", + "1f98b": "papillon", + "1f41b": "chenille", + "1f41d": "abeille", + "1f41e": "coccinelle", + "1f490": "bouquet", + "1f339": "rose", + "1f33a": "hibiscus", + "1f33b": "tournesol", + "1f337": "tulipe", + "1f332": "conifère", + "1f333": "arbre à feuilles caduques", + "1f334": "palmier", + "1f335": "cactus", + "1f33f": "feuille", + "1f341": "feuille d’érable", + "1f344": "champignon", + "1f347": "raisin", + "1f348": "melon", + "1f349": "pastèque", + "1f34a": "mandarine", + "1f34b": "citron", + "1f34c": "banane", + "1f34d": "ananas", + "1f96d": "mangue", + "1f34f": "pomme verte", + "1f350": "poire", + "1f351": "pêche", + "1f352": "cerises", + "1f353": "fraise", + "1fad0": "myrtilles", + "1f95d": "kiwi", + "1f345": "tomate", + "1fad2": "olive", + "1f965": "noix de coco", + "1f951": "avocat", + "1f346": "aubergine", + "1f955": "carotte", + "1f33d": "épi de maïs", + "1f336": "piment rouge", + "1f96c": "légume à feuilles vertes", + "1f966": "brocoli", + "1f9c5": "oignon", + "1f95c": "cacahuètes", + "1f950": "croissant", + "1f956": "baguette", + "1f968": "bretzel", + "1f96f": "bagel", + "1f95e": "pancakes", + "1f9c7": "gaufre", + "1f354": "hamburger", + "1f355": "pizza", + "1f32d": "hot dog", + "1f32e": "taco", + "1f37f": "pop-corn", + "1f980": "crabe", + "1f99e": "homard", + "1f368": "glace", + "1f369": "doughnut", + "1f36a": "cookie", + "1f382": "gâteau d’anniversaire", + "1f9c1": "cupcake", + "1f36b": "barre chocolatée", + "1f36c": "bonbon", + "1f36d": "sucette", + "1fad6": "théière", + "1f9c3": "briquette de jus", + "1f9c9": "maté", + "1f9ed": "boussole", + "1f3d4": "montagne enneigée", + "1f30b": "volcan", + "1f3d5": "camping", + "1f3dd": "île déserte", + "1f3e1": "maison avec jardin", + "26f2": "fontaine", + "1f3a0": "cheval de manège", + "1f3a1": "grande roue", + "1f3a2": "montagnes russes", + "1f488": "enseigne de barbier", + "1f686": "train", + "1f68b": "wagon de tramway", + "1f68d": "bus de face", + "1f695": "taxi", + "1f697": "voiture", + "1f69a": "camion de livraison", + "1f69c": "tracteur", + "1f6f5": "scooter", + "1f6fa": "tuk tuk", + "1f6f4": "trottinette", + "1f6f9": "planche à roulettes", + "1f6fc": "patin à roulettes", + "2693": "ancre", + "26f5": "voilier", + "1f6f6": "canoë", + "1f6a4": "hors-bord", + "1f6a2": "navire", + "2708": "avion", + "1f681": "hélicoptère", + "1f6a0": "téléphérique", + "1f6f0": "satellite", + "1f680": "fusée", + "1f6f8": "soucoupe volante", + "23f0": "réveil", + "1f319": "croissant de lune", + "1f321": "thermomètre", + "2600": "soleil", + "1fa90": "planète à anneaux", + "1f31f": "étoile brillante", + "1f300": "cyclone", + "1f308": "arc-en-ciel", + "2602": "parapluie ouvert", + "2744": "flocon", + "2604": "comète", + "1f525": "feu", + "1f4a7": "goutte d’eau", + "1f30a": "vague", + "1f383": "citrouille", + "2728": "étincelles", + "1f388": "ballon gonflable", + "1f389": "cotillons", + "1f38f": "koinobori", + "1f380": "ruban", + "1f381": "cadeau", + "1f39f": "billet d’entrée", + "1f3c6": "trophée", + "26bd": "ballon de football", + "1f3c0": "basket", + "1f3c8": "football américain", + "1f3be": "tennis", + "1f94f": "disque volant", + "1f3d3": "ping-pong", + "1f3f8": "badminton", + "1f93f": "masque de plongée", + "1f94c": "pierre de curling", + "1f3af": "dans le mille", + "1fa80": "yoyo", + "1fa81": "cerf-volant", + "1f52e": "boule de cristal", + "1f3b2": "dés", + "1f9e9": "pièce de puzzle", + "1f3a8": "palette de peinture", + "1f9f5": "bobine de fil", + "1f455": "T-shirt", + "1f9e6": "chaussettes", + "1f457": "robe", + "1fa73": "short", + "1f392": "cartable", + "1f45f": "chaussure de sport", + "1f451": "couronne", + "1f9e2": "casquette américaine", + "1f484": "rouge à lèvres", + "1f48d": "bague", + "1f48e": "pierre précieuse", + "1f4e2": "haut-parleur", + "1f3b6": "notes de musique", + "1f399": "micro de studio", + "1f4fb": "radio", + "1f3b7": "saxophone", + "1fa97": "accordéon", + "1f3b8": "guitare", + "1f3ba": "trompette", + "1f3bb": "violon", + "1fa95": "banjo", + "1f941": "batterie", + "260e": "téléphone", + "1f50b": "pile", + "1f4bf": "CD", + "1f9ee": "abaque", + "1f3ac": "clap", + "1f4a1": "ampoule", + "1f526": "torche", + "1f3ee": "lampion rouge", + "1f4d5": "livre fermé", + "1f3f7": "étiquette", + "1f4b3": "carte bancaire", + "270f": "crayon", + "1f58c": "pinceau", + "1f58d": "crayon pastel", + "1f4cc": "punaise", + "1f4ce": "trombone", + "1f511": "clé", + "1fa83": "boomerang", + "1f3f9": "arc et flèche", + "2696": "balance à poids", + "1f9f2": "aimant", + "1f9ea": "tube à essai", + "1f9ec": "adn", + "1f52c": "microscope", + "1f52d": "télescope", + "1f4e1": "antenne satellite", + "1fa91": "chaise", + "1f9f9": "balai", + "1f5ff": "moai" + }, + "ga": { + "1f47d": "eachtrán", + "1f916": "róbat", + "1f9e0": "inchinn", + "1f441": "súil", + "1f9d9": "duine draíochta", + "1f9da": "síog", + "1f9dc": "duine murúch", + "1f435": "aghaidh moncaí", + "1f9a7": "órang-útan", + "1f436": "aghaidh madra", + "1f43a": "aghaidh mic tíre", + "1f98a": "aghaidh sionnaigh", + "1f99d": "racún", + "1f431": "aghaidh cait", + "1f981": "aghaidh leoin", + "1f42f": "aghaidh tíogair", + "1f434": "aghaidh capaill", + "1f984": "aghaidh aonbheannaigh", + "1f993": "séabra", + "1f98c": "fia", + "1f42e": "aghaidh bó", + "1f437": "aghaidh muice", + "1f417": "torc", + "1f42a": "camall", + "1f999": "láma", + "1f992": "sioráf", + "1f418": "eilifint", + "1f9a3": "mamat", + "1f98f": "srónbheannach", + "1f42d": "aghaidh luiche", + "1f430": "aghaidh coinín", + "1f43f": "iora talún", + "1f994": "gráinneog", + "1f987": "ialtóg", + "1f43b": "aghaidh béair", + "1f428": "cóála", + "1f9a5": "spadán", + "1f9a6": "madra uisce", + "1f998": "cangarú", + "1f425": "gearrshicín éadain", + "1f426": "éan", + "1f54a": "colm", + "1f986": "lacha", + "1f989": "ulchabhán", + "1f9a4": "dódó", + "1fab6": "cleite", + "1f9a9": "lasairéan", + "1f99a": "péacóg", + "1f99c": "pearóid", + "1f40a": "crogall", + "1f422": "turtar", + "1f98e": "earc luachra", + "1f40d": "nathair", + "1f432": "aghaidh dragain", + "1f995": "sárapód", + "1f433": "míol mór ag séideadh", + "1f42c": "deilf", + "1f9ad": "rón", + "1f41f": "iasc", + "1f420": "iasc teochreasa", + "1f988": "siorc", + "1f419": "ochtapas", + "1f41a": "sliogán", + "1f40c": "seilide", + "1f98b": "féileacán", + "1f41b": "míol", + "1f41d": "beach mheala", + "1f41e": "bóín", + "1f490": "crobhaing bláthanna", + "1f339": "rós", + "1f33a": "roiseog", + "1f33b": "lus na gréine", + "1f337": "tiúilip", + "1f332": "crann síorghlas", + "1f333": "crann duillsilteach", + "1f334": "pailm", + "1f335": "cachtas", + "1f33f": "luibh", + "1f341": "duilleog mhailpe", + "1f344": "beacán", + "1f347": "caora fíniúna", + "1f348": "mealbhacán", + "1f349": "mealbhacán uisce", + "1f34a": "táinséirín", + "1f34b": "líomóid", + "1f34c": "banana", + "1f34d": "anann", + "1f96d": "mangó", + "1f34f": "úll glas", + "1f350": "piorra", + "1f351": "péitseog", + "1f352": "silíní", + "1f353": "sú talún", + "1fad0": "fraochán", + "1f95d": "cíobhaí", + "1f345": "tráta", + "1fad2": "ológ", + "1f965": "cnó cócó", + "1f951": "abhacád", + "1f346": "ubhthoradh", + "1f955": "meacan dearg", + "1f33d": "dias arbhair", + "1f336": "píobar te", + "1f96c": "glasra duilleach", + "1f966": "brocailí", + "1f9c5": "oiniún", + "1f95c": "pis talún", + "1f950": "croissant", + "1f956": "baguette", + "1f968": "preatsal", + "1f96f": "béigeal", + "1f95e": "pancóga", + "1f9c7": "vaifeal", + "1f354": "burgar", + "1f355": "píotsa", + "1f32d": "brocaire te", + "1f32e": "taco", + "1f37f": "grán rósta", + "1f980": "portán", + "1f99e": "gliomach", + "1f368": "uachtar reoite", + "1f369": "taoschnó", + "1f36a": "briosca", + "1f382": "cáca breithe", + "1f9c1": "cístín cupa", + "1f36b": "seacláid", + "1f36c": "milseán", + "1f36d": "líreacán", + "1fad6": "taephota", + "1f9c3": "bosca dí", + "1f9c9": "maité", + "1f9ed": "compás", + "1f3d4": "sliabh le sneachta", + "1f30b": "bolcán", + "1f3d5": "ag campáil", + "1f3dd": "oileán díthreibhe", + "1f3e1": "teach le gairdín", + "26f2": "scairdeán", + "1f3a0": "capall an roithleagáin ró", + "1f3a1": "roth Ferris", + "1f3a2": "rollchóstóir", + "1f488": "cuaille bearbóra", + "1f686": "traein", + "1f68b": "carráiste tram", + "1f68d": "bus atá ag teacht", + "1f695": "tacsaí", + "1f697": "gluaisteán", + "1f69a": "trucail seachadta", + "1f69c": "tarracóir", + "1f6f5": "scútar", + "1f6fa": "ricseá uathoibríoch", + "1f6f4": "scútar gan inneall", + "1f6f9": "clár scátála", + "1f6fc": "scáta rothach", + "2693": "ancaire", + "26f5": "bád seoil", + "1f6f6": "canú", + "1f6a4": "luasbhád", + "1f6a2": "long", + "2708": "eitleán", + "1f681": "héileacaptar", + "1f6a0": "cáblabhealach sléibhe", + "1f6f0": "satailít", + "1f680": "roicéad", + "1f6f8": "sásar eitilte", + "23f0": "clog aláraim", + "1f319": "corrán gealaí", + "1f321": "teirmiméadar", + "2600": "grian", + "1fa90": "pláinéad le fáinne", + "1f31f": "réalta ag lonrú", + "1f300": "cioclón", + "1f308": "bogha báistí", + "2602": "scáth báistí", + "2744": "calóg shneachta", + "2604": "cóiméad", + "1f525": "tine", + "1f4a7": "braoinín", + "1f30a": "tonn san uisce", + "1f383": "Seán na gealaí", + "2728": "drithlí", + "1f388": "balún", + "1f389": "pléiscín cóisire", + "1f38f": "sraoilleán éisc", + "1f380": "ribín", + "1f381": "bronntanas", + "1f39f": "ticéid cead isteach", + "1f3c6": "corn", + "26bd": "liathróid sacair", + "1f3c0": "cispheil", + "1f3c8": "peil Mheiriceánach", + "1f3be": "leadóg", + "1f94f": "diosca eitilte", + "1f3d3": "ping pang", + "1f3f8": "badmantan", + "1f93f": "masc tumadóireachta", + "1f94c": "cloch churlála", + "1f3af": "buille díreach", + "1fa80": "yó-yó", + "1fa81": "eitleog", + "1f52e": "cruinneog chriostail", + "1f3b2": "dísle", + "1f9e9": "mír mearaí", + "1f3a8": "pailéad dathanna", + "1f9f5": "snáth", + "1f455": "t-léine", + "1f9e6": "stocaí", + "1f457": "gúna", + "1fa73": "brístí gearra", + "1f392": "mála scoile", + "1f45f": "bróg reatha", + "1f451": "coróin", + "1f9e2": "caipín speiceach", + "1f484": "béaldath", + "1f48d": "fáinne", + "1f48e": "geamchloch", + "1f4e2": "callaire", + "1f3b6": "nótaí ceoil", + "1f399": "micreafón stiúideo", + "1f4fb": "raidió", + "1f3b7": "sacsafón", + "1fa97": "bosca ceoil", + "1f3b8": "giotár", + "1f3ba": "trumpa", + "1f3bb": "veidhlín", + "1fa95": "bainseó", + "1f941": "druma", + "260e": "teileafón", + "1f50b": "ceallra", + "1f4bf": "diosca optúil", + "1f9ee": "abacas", + "1f3ac": "clabaire", + "1f4a1": "bolgán solais", + "1f526": "tóirse", + "1f3ee": "laindéar dearg", + "1f4d5": "leabhar dúnta", + "1f3f7": "lipéad", + "1f4b3": "cárta creidmheasa", + "270f": "peann luaidhe", + "1f58c": "scuab phéinteála", + "1f58d": "crián", + "1f4cc": "tacóid ordóige", + "1f4ce": "fáiscín páipéir", + "1f511": "eochair", + "1fa83": "búmarang", + "1f3f9": "saighead is bogha", + "2696": "scála", + "1f9f2": "maighnéad", + "1f9ea": "triaileadán", + "1f9ec": "ADN", + "1f52c": "micreascóp", + "1f52d": "teileascóp", + "1f4e1": "aeróg satailíte", + "1fa91": "cathaoir", + "1f9f9": "scruab", + "1f5ff": "dealbh Oileán na Cásca" + }, + "he": { + "1f47d": "חייזר", + "1f916": "רובוט", + "1f9e0": "מוח", + "1f441": "עין", + "1f9d9": "קוסם", + "1f9da": "פיה", + "1f9dc": "בתולת ים", + "1f435": "פני קוף", + "1f9a7": "אורנגאוטן", + "1f436": "פני כלב", + "1f43a": "זאב", + "1f98a": "שועל", + "1f99d": "רקון", + "1f431": "פני חתול", + "1f981": "אריה", + "1f42f": "פני טיגריס", + "1f434": "פני סוס", + "1f984": "חד קרן", + "1f993": "זברה", + "1f98c": "אייל", + "1f42e": "פני פרה", + "1f437": "פני חזיר", + "1f417": "חזיר בר", + "1f42a": "גמל", + "1f999": "למה", + "1f992": "ג׳ירף", + "1f418": "פיל", + "1f9a3": "ממותה", + "1f98f": "קרנף", + "1f42d": "פני עכבר", + "1f430": "פני ארנב", + "1f43f": "סנאי", + "1f994": "קיפוד", + "1f987": "עטלף", + "1f43b": "דוב", + "1f428": "קואלה", + "1f9a5": "עצלן", + "1f9a6": "לוטרה", + "1f998": "קנגורו", + "1f425": "אפרוח מלפנים", + "1f426": "ציפור", + "1f54a": "יונה", + "1f986": "ברווז", + "1f989": "ינשוף", + "1f9a4": "ציפור דודו", + "1fab6": "נוצה", + "1f9a9": "פלמינגו", + "1f99a": "טווס", + "1f99c": "תוכי", + "1f40a": "תנין", + "1f422": "צב", + "1f98e": "לטאה", + "1f40d": "נחש", + "1f432": "פני דרקון", + "1f995": "סרופוד", + "1f433": "לווייתן מתיז סילון מים", + "1f42c": "דולפין", + "1f9ad": "כלב ים", + "1f41f": "דג", + "1f420": "דג טרופי", + "1f988": "כריש", + "1f419": "תמנון", + "1f41a": "צדף מסולסל", + "1f40c": "חלזון", + "1f98b": "פרפר", + "1f41b": "זחל", + "1f41d": "דבורה", + "1f41e": "פרת משה רבנו", + "1f490": "זר פרחים", + "1f339": "ורד", + "1f33a": "היביסקוס", + "1f33b": "חמניה", + "1f337": "צבעוני", + "1f332": "עץ ירוק-עד", + "1f333": "עץ נשיר", + "1f334": "עץ דקל", + "1f335": "קקטוס", + "1f33f": "צמח תבלין", + "1f341": "עלה מייפל", + "1f344": "פטריה", + "1f347": "ענבים", + "1f348": "מלון", + "1f349": "אבטיח", + "1f34a": "קלמנטינה", + "1f34b": "לימון", + "1f34c": "בננה", + "1f34d": "אננס", + "1f96d": "מנגו", + "1f34f": "תפוח ירוק", + "1f350": "אגס", + "1f351": "אפרסק", + "1f352": "דובדבנים", + "1f353": "תות שדה", + "1fad0": "אוכמניות", + "1f95d": "קיווי", + "1f345": "עגבנייה", + "1fad2": "זית", + "1f965": "קוקוס", + "1f951": "אבוקדו", + "1f346": "חציל", + "1f955": "גזר", + "1f33d": "קלח תירס", + "1f336": "פלפל חריף", + "1f96c": "עלים ירוקים", + "1f966": "ברוקולי", + "1f9c5": "בצל", + "1f95c": "בוטנים", + "1f950": "קרואסון", + "1f956": "באגט", + "1f968": "בייגלה", + "1f96f": "בייגל", + "1f95e": "פנקייקס", + "1f9c7": "וופל", + "1f354": "המבורגר", + "1f355": "פיצה", + "1f32d": "נקניקייה בלחמניה", + "1f32e": "טאקו", + "1f37f": "פופקורן", + "1f980": "סרטן", + "1f99e": "לובסטר", + "1f368": "גלידה", + "1f369": "סופגניה", + "1f36a": "עוגיה", + "1f382": "עוגת יום הולדת", + "1f9c1": "קפקייק", + "1f36b": "חפיסת שוקולד", + "1f36c": "סוכריה", + "1f36d": "סוכריה על מקל", + "1fad6": "קנקן תה", + "1f9c3": "קופסת מיץ", + "1f9c9": "מאטה", + "1f9ed": "מצפן", + "1f3d4": "הר עם פסגה מושלגת", + "1f30b": "הר געש", + "1f3d5": "מחנאות", + "1f3dd": "אי בודד", + "1f3e1": "בית עם גינה", + "26f2": "מזרקה", + "1f3a0": "סוס בקרוסלה", + "1f3a1": "גלגל ענק", + "1f3a2": "רכבת הרים", + "1f488": "עמוד מספרה", + "1f686": "רכבת", + "1f68b": "קרון חשמלית", + "1f68d": "אוטובוס מלפנים", + "1f695": "מונית", + "1f697": "מכונית", + "1f69a": "משאית", + "1f69c": "טרקטור", + "1f6f5": "קטנוע", + "1f6fa": "ריקשה ממונעת", + "1f6f4": "קורקינט", + "1f6f9": "סקייטבורד", + "1f6fc": "גלגיליות", + "2693": "עוגן", + "26f5": "סירת מפרש", + "1f6f6": "קאנו", + "1f6a4": "סירת מירוץ", + "1f6a2": "ספינה", + "2708": "מטוס", + "1f681": "מסוק", + "1f6a0": "קרון רכבל", + "1f6f0": "לוויין", + "1f680": "טיל", + "1f6f8": "צלחת מעופפת", + "23f0": "שעון מעורר", + "1f319": "סהר", + "1f321": "מדחום", + "2600": "שמש", + "1fa90": "כוכב לכת עם טבעות", + "1f31f": "כוכב זוהר", + "1f300": "הוריקן", + "1f308": "קשת בענן", + "2602": "מטריה", + "2744": "פתית שלג", + "2604": "שביט", + "1f525": "אש", + "1f4a7": "טיפה", + "1f30a": "גל", + "1f383": "מנורת דלעת", + "2728": "נצנוץ", + "1f388": "בלון", + "1f389": "פצצת קונפטי", + "1f38f": "דגלים בצורת דגי קוי", + "1f380": "סרט מתנה", + "1f381": "קופסת מתנה", + "1f39f": "כרטיס כניסה", + "1f3c6": "גביע", + "26bd": "כדורגל", + "1f3c0": "כדור סל", + "1f3c8": "פוטבול אמריקאי", + "1f3be": "כדור טניס", + "1f94f": "פריזבי", + "1f3d3": "פינג פונג", + "1f3f8": "בדמינטון", + "1f93f": "מסיכת צלילה", + "1f94c": "אבן קרלינג", + "1f3af": "פגיעה בול", + "1fa80": "יו-יו", + "1fa81": "עפיפון", + "1f52e": "כדור בדולח", + "1f3b2": "קוביית משחק", + "1f9e9": "חלק בפאזל", + "1f3a8": "פלטת צבעים", + "1f9f5": "חוט", + "1f455": "חולצת טי", + "1f9e6": "גרביים", + "1f457": "שמלה", + "1fa73": "מכנסיים קצרים", + "1f392": "ילקוט", + "1f45f": "נעל ריצה", + "1f451": "כתר", + "1f9e2": "כובע מצחייה", + "1f484": "שפתון", + "1f48d": "טבעת", + "1f48e": "יהלום", + "1f4e2": "מגפון", + "1f3b6": "תווים מוזיקליים", + "1f399": "מיקרופון אולפן", + "1f4fb": "רדיו", + "1f3b7": "סקסופון", + "1fa97": "אקורדיון", + "1f3b8": "גיטרה", + "1f3ba": "חצוצרה", + "1f3bb": "כינור", + "1fa95": "בנג׳ו", + "1f941": "תוף", + "260e": "טלפון רגיל", + "1f50b": "סוללה", + "1f4bf": "דיסק אופטי", + "1f9ee": "חשבונייה", + "1f3ac": "קלאפר", + "1f4a1": "נורה", + "1f526": "פנס", + "1f3ee": "פנס נייר אדום", + "1f4d5": "ספר סגור", + "1f3f7": "תווית", + "1f4b3": "כרטיס אשראי", + "270f": "עיפרון", + "1f58c": "מכחול", + "1f58d": "צבע פנדה", + "1f4cc": "נעץ", + "1f4ce": "אטב נייר", + "1f511": "מפתח", + "1fa83": "בומרנג", + "1f3f9": "חץ וקשת", + "2696": "מאזניים", + "1f9f2": "מגנט", + "1f9ea": "מבחנה", + "1f9ec": "די אנ איי", + "1f52c": "מיקרוסקופ", + "1f52d": "טלסקופ", + "1f4e1": "צלחת לוויין", + "1fa91": "כיסא", + "1f9f9": "מטאטא", + "1f5ff": "פסל מאיי הפסחא" + }, + "hu": { + "1f47d": "földönkívüli", + "1f916": "robot", + "1f9e0": "agy", + "1f441": "szem", + "1f9d9": "varázsló", + "1f9da": "tündér", + "1f9dc": "sellő", + "1f435": "majomfej", + "1f9a7": "orangután", + "1f436": "kutyafej", + "1f43a": "farkasfej", + "1f98a": "rókafej", + "1f99d": "mosómedve", + "1f431": "macskafej", + "1f981": "oroszlánfej", + "1f42f": "tigrisfej", + "1f434": "lófej", + "1f984": "unikornisfej", + "1f993": "zebra", + "1f98c": "szarvas", + "1f42e": "tehénfej", + "1f437": "malacfej", + "1f417": "vaddisznó", + "1f42a": "teve", + "1f999": "láma", + "1f992": "zsiráf", + "1f418": "elefánt", + "1f9a3": "mamut", + "1f98f": "orrszarvú", + "1f42d": "egérfej", + "1f430": "nyúlfej", + "1f43f": "mókus", + "1f994": "sün", + "1f987": "denevér", + "1f43b": "medvefej", + "1f428": "koala", + "1f9a5": "lajhár", + "1f9a6": "vidra", + "1f998": "kenguru", + "1f425": "előre néző kiscsibe", + "1f426": "madár", + "1f54a": "galamb", + "1f986": "kacsa", + "1f989": "bagoly", + "1f9a4": "dodó", + "1fab6": "madártoll", + "1f9a9": "flamingó", + "1f99a": "páva", + "1f99c": "papagáj", + "1f40a": "krokodil", + "1f422": "teknős", + "1f98e": "gyík", + "1f40d": "kígyó", + "1f432": "sárkányfej", + "1f995": "sauropoda", + "1f433": "fröcskölő bálna", + "1f42c": "delfin", + "1f9ad": "fóka", + "1f41f": "hal", + "1f420": "trópusi hal", + "1f988": "cápa", + "1f419": "polip", + "1f41a": "tengeri csiga", + "1f40c": "csiga", + "1f98b": "pillangó", + "1f41b": "rovar", + "1f41d": "méh", + "1f41e": "katica", + "1f490": "csokor", + "1f339": "rózsa", + "1f33a": "hibiszkusz", + "1f33b": "napraforgó", + "1f337": "tulipán", + "1f332": "örökzöld", + "1f333": "lombhullató fa", + "1f334": "pálmafa", + "1f335": "kaktusz", + "1f33f": "gyógynövény", + "1f341": "juharlevél", + "1f344": "gomba", + "1f347": "szőlő", + "1f348": "sárgadinnye", + "1f349": "görögdinnye", + "1f34a": "mandarin", + "1f34b": "citrom", + "1f34c": "banán", + "1f34d": "ananász", + "1f96d": "mangó", + "1f34f": "zöld alma", + "1f350": "körte", + "1f351": "őszibarack", + "1f352": "cseresznye", + "1f353": "eper", + "1fad0": "áfonya", + "1f95d": "kivi", + "1f345": "paradicsom", + "1fad2": "olajbogyó", + "1f965": "kókuszdió", + "1f951": "avokádó", + "1f346": "padlizsán", + "1f955": "sárgarépa", + "1f33d": "kukoricacső", + "1f336": "erőspaprika", + "1f96c": "leveles zöldség", + "1f966": "brokkoli", + "1f9c5": "hagyma", + "1f95c": "földimogyoró", + "1f950": "croissant", + "1f956": "bagett", + "1f968": "perec", + "1f96f": "bagel", + "1f95e": "palacsinta", + "1f9c7": "gofri", + "1f354": "hamburger", + "1f355": "pizza", + "1f32d": "hot dog", + "1f32e": "taco", + "1f37f": "pattogatott kukorica", + "1f980": "rák", + "1f99e": "homár", + "1f368": "fagylalt", + "1f369": "fánk", + "1f36a": "sütemény", + "1f382": "születésnapi torta", + "1f9c1": "cupcake", + "1f36b": "csokoládé", + "1f36c": "cukorka", + "1f36d": "nyalóka", + "1fad6": "teáskanna", + "1f9c3": "italos doboz", + "1f9c9": "maté", + "1f9ed": "iránytű", + "1f3d4": "hegy hótakaróval", + "1f30b": "vulkán", + "1f3d5": "sátorozás", + "1f3dd": "lakatlan sziget", + "1f3e1": "ház kerttel", + "26f2": "szökőkút", + "1f3a0": "ló a körhintáról", + "1f3a1": "óriáskerék", + "1f3a2": "hullámvasút", + "1f488": "fodrászcégér", + "1f686": "vonat", + "1f68b": "villamoskocsi", + "1f68d": "érkező busz", + "1f695": "taxi", + "1f697": "autó", + "1f69a": "teherautó", + "1f69c": "traktor", + "1f6f5": "robogó", + "1f6fa": "motoros riksa", + "1f6f4": "roller", + "1f6f9": "gördeszka", + "1f6fc": "görkorcsolya", + "2693": "vasmacska", + "26f5": "vitorlás hajó", + "1f6f6": "kenu", + "1f6a4": "motoros siklócsónak", + "1f6a2": "hajó", + "2708": "repülőgép", + "1f681": "helikopter", + "1f6a0": "hegyi felvonó", + "1f6f0": "műhold", + "1f680": "rakéta", + "1f6f8": "repülő csészealj", + "23f0": "ébresztőóra", + "1f319": "növekvő hold", + "1f321": "hőmérő", + "2600": "nap", + "1fa90": "gyűrűs bolygó", + "1f31f": "fénylő csillag", + "1f300": "ciklon", + "1f308": "szivárvány", + "2602": "esernyő", + "2744": "hópehely", + "2604": "üstökös", + "1f525": "tűz", + "1f4a7": "csepp", + "1f30a": "vízhullám", + "1f383": "töklámpás", + "2728": "szikrák", + "1f388": "léggömb", + "1f389": "partikellékek", + "1f38f": "rizspapír pontyok", + "1f380": "szalag", + "1f381": "becsomagolt ajándék", + "1f39f": "belépőjegyek", + "1f3c6": "kupa", + "26bd": "foci", + "1f3c0": "kosárlabda", + "1f3c8": "amerikai foci", + "1f3be": "tenisz", + "1f94f": "frizbi", + "1f3d3": "pingpong", + "1f3f8": "tollaslabda", + "1f93f": "búvármaszk", + "1f94c": "curlingkő", + "1f3af": "telitalálat", + "1fa80": "jojó", + "1fa81": "papírsárkány", + "1f52e": "kristálygömb", + "1f3b2": "dobókocka", + "1f9e9": "kirakó", + "1f3a8": "festőpaletta", + "1f9f5": "cérna", + "1f455": "póló", + "1f9e6": "zokni", + "1f457": "ruha", + "1fa73": "rövidnadrág", + "1f392": "iskolatáska", + "1f45f": "futócipő", + "1f451": "korona", + "1f9e2": "sildes sapka", + "1f484": "ajakrúzs", + "1f48d": "gyűrű", + "1f48e": "ékkő", + "1f4e2": "hangosbeszélő", + "1f3b6": "hangjegyek", + "1f399": "stúdiómikrofon", + "1f4fb": "rádió", + "1f3b7": "szaxofon", + "1fa97": "harmonika", + "1f3b8": "gitár", + "1f3ba": "trombita", + "1f3bb": "hegedű", + "1fa95": "bendzsó", + "1f941": "dob", + "260e": "telefon", + "1f50b": "elem", + "1f4bf": "optikai lemez", + "1f9ee": "abakusz", + "1f3ac": "csapó", + "1f4a1": "villanykörte", + "1f526": "zseblámpa", + "1f3ee": "piros papírlámpa", + "1f4d5": "becsukott könyv", + "1f3f7": "címke", + "1f4b3": "hitelkártya", + "270f": "ceruza", + "1f58c": "ecset", + "1f58d": "zsírkréta", + "1f4cc": "rajzszög", + "1f4ce": "gemkapocs", + "1f511": "kulcs", + "1fa83": "bumeráng", + "1f3f9": "íj és nyíl", + "2696": "kétkarú mérleg", + "1f9f2": "mágnes", + "1f9ea": "kémcső", + "1f9ec": "DNS", + "1f52c": "mikroszkóp", + "1f52d": "távcső", + "1f4e1": "parabolaantenna", + "1fa91": "szék", + "1f9f9": "seprű", + "1f5ff": "moai" + }, + "id": { + "1f47d": "alien", + "1f916": "robot", + "1f9e0": "otak", + "1f441": "satu mata", + "1f9d9": "magi", + "1f9da": "peri", + "1f9dc": "orang duyung", + "1f435": "wajah monyet", + "1f9a7": "orangutan", + "1f436": "wajah anjing", + "1f43a": "serigala", + "1f98a": "rubah", + "1f99d": "rakun", + "1f431": "wajah kucing", + "1f981": "singa", + "1f42f": "wajah harimau", + "1f434": "wajah kuda", + "1f984": "unicorn", + "1f993": "zebra", + "1f98c": "rusa", + "1f42e": "wajah sapi", + "1f437": "wajah babi", + "1f417": "babi hutan", + "1f42a": "unta", + "1f999": "llama", + "1f992": "jerapah", + "1f418": "gajah", + "1f9a3": "mamut", + "1f98f": "badak", + "1f42d": "wajah tikus", + "1f430": "wajah kelinci", + "1f43f": "tupai", + "1f994": "landak", + "1f987": "kelelawar", + "1f43b": "beruang", + "1f428": "koala", + "1f9a5": "kungkang", + "1f9a6": "berang-berang", + "1f998": "kanguru", + "1f425": "itik bayi menghadap ke depan", + "1f426": "burung", + "1f54a": "merpati", + "1f986": "bebek", + "1f989": "burung hantu", + "1f9a4": "dodo", + "1fab6": "bulu", + "1f9a9": "flamingo", + "1f99a": "merak", + "1f99c": "nuri", + "1f40a": "buaya", + "1f422": "kura-kura", + "1f98e": "kadal", + "1f40d": "ular", + "1f432": "wajah naga", + "1f995": "sauropod", + "1f433": "ikan paus menyembur", + "1f42c": "lumba-lumba", + "1f9ad": "anjing laut", + "1f41f": "ikan", + "1f420": "ikan tropis", + "1f988": "hiu", + "1f419": "gurita", + "1f41a": "cangkang spiral", + "1f40c": "siput", + "1f98b": "kupu-kupu", + "1f41b": "serangga kecil", + "1f41d": "lebah madu", + "1f41e": "kumbang betina", + "1f490": "karangan bunga", + "1f339": "mawar", + "1f33a": "kembang sepatu", + "1f33b": "bunga matahari", + "1f337": "tulip", + "1f332": "pohon hijau abadi", + "1f333": "pohon meranggas", + "1f334": "pohon palem", + "1f335": "kaktus", + "1f33f": "herba", + "1f341": "daun maple", + "1f344": "jamur", + "1f347": "anggur", + "1f348": "melon", + "1f349": "semangka", + "1f34a": "buah jeruk", + "1f34b": "lemon", + "1f34c": "pisang", + "1f34d": "nanas", + "1f96d": "mangga", + "1f34f": "apel hijau", + "1f350": "pir", + "1f351": "persik", + "1f352": "ceri", + "1f353": "stroberi", + "1fad0": "blueberry", + "1f95d": "buah kiwi", + "1f345": "tomat", + "1fad2": "zaitun", + "1f965": "kelapa", + "1f951": "alpukat", + "1f346": "terung", + "1f955": "wortel", + "1f33d": "bonggol jagung", + "1f336": "cabai pedas", + "1f96c": "selada hijau", + "1f966": "brokoli", + "1f9c5": "bawang bombay", + "1f95c": "kacang tanah", + "1f950": "croissant", + "1f956": "roti baguette", + "1f968": "pretzel", + "1f96f": "bagel", + "1f95e": "panekuk", + "1f9c7": "wafel", + "1f354": "hamburger", + "1f355": "pizza", + "1f32d": "hot dog", + "1f32e": "taco", + "1f37f": "popcorn", + "1f980": "kepiting", + "1f99e": "lobster", + "1f368": "es krim", + "1f369": "donat", + "1f36a": "biskuit", + "1f382": "kue ulang tahun", + "1f9c1": "kue mangkuk", + "1f36b": "sebatang cokelat", + "1f36c": "permen", + "1f36d": "permen lolipop", + "1fad6": "teko", + "1f9c3": "kotak minuman", + "1f9c9": "teh mate", + "1f9ed": "kompas", + "1f3d4": "gunung dengan puncak bersalju", + "1f30b": "gunung berapi", + "1f3d5": "berkemah", + "1f3dd": "pulau terpencil", + "1f3e1": "rumah dengan taman", + "26f2": "air mancur", + "1f3a0": "komidi putar", + "1f3a1": "kincir ria", + "1f3a2": "roller coaster", + "1f488": "tanda salon", + "1f686": "kereta", + "1f68b": "gerbong trem", + "1f68d": "bus datang", + "1f695": "taksi", + "1f697": "mobil", + "1f69a": "truk pengiriman", + "1f69c": "traktor", + "1f6f5": "motor skuter", + "1f6fa": "bajaj", + "1f6f4": "otoped", + "1f6f9": "papan luncur", + "1f6fc": "sepatu roda", + "2693": "jangkar", + "26f5": "perahu layar", + "1f6f6": "kano", + "1f6a4": "perahu cepat", + "1f6a2": "kapal", + "2708": "pesawat", + "1f681": "helikopter", + "1f6a0": "kereta gantung", + "1f6f0": "satelit", + "1f680": "roket", + "1f6f8": "piring terbang", + "23f0": "jam weker", + "1f319": "bulan sabit", + "1f321": "termometer", + "2600": "matahari", + "1fa90": "planet bercincin", + "1f31f": "bintang bersinar", + "1f300": "topan", + "1f308": "pelangi", + "2602": "payung", + "2744": "serpihan salju", + "2604": "komet", + "1f525": "api", + "1f4a7": "tetesan air", + "1f30a": "ombak", + "1f383": "jack-o-lantern", + "2728": "berkilau", + "1f388": "balon", + "1f389": "party popper", + "1f38f": "bendera ikan koi", + "1f380": "pita", + "1f381": "kado", + "1f39f": "tiket masuk", + "1f3c6": "piala", + "26bd": "bola sepak", + "1f3c0": "bola basket", + "1f3c8": "American football", + "1f3be": "tenis", + "1f94f": "lempar cakram", + "1f3d3": "ping pong", + "1f3f8": "bulu tangkis", + "1f93f": "kacamata selam", + "1f94c": "batu curling", + "1f3af": "dart", + "1fa80": "yo-yo", + "1fa81": "layang-layang", + "1f52e": "bola kristal", + "1f3b2": "dadu", + "1f9e9": "keping puzzle", + "1f3a8": "palet pelukis", + "1f9f5": "benang", + "1f455": "kaos", + "1f9e6": "kaus kaki", + "1f457": "gaun", + "1fa73": "celana pendek", + "1f392": "tas sekolah", + "1f45f": "sepatu lari", + "1f451": "mahkota", + "1f9e2": "topi berlidah", + "1f484": "lipstik", + "1f48d": "cincin", + "1f48e": "batu permata", + "1f4e2": "pengeras suara", + "1f3b6": "not-not musik", + "1f399": "mikrofon studio", + "1f4fb": "radio", + "1f3b7": "saksofon", + "1fa97": "akordeon", + "1f3b8": "gitar", + "1f3ba": "trompet", + "1f3bb": "biola", + "1fa95": "banjo", + "1f941": "drum", + "260e": "telepon", + "1f50b": "baterai", + "1f4bf": "disk optik", + "1f9ee": "sempoa", + "1f3ac": "papan sutradara", + "1f4a1": "bohlam", + "1f526": "lampu senter", + "1f3ee": "lampion merah", + "1f4d5": "buku tertutup", + "1f3f7": "label", + "1f4b3": "kartu kredit", + "270f": "pensil", + "1f58c": "kuas", + "1f58d": "krayon", + "1f4cc": "paku penanda", + "1f4ce": "klip kertas", + "1f511": "kunci", + "1fa83": "bumerang", + "1f3f9": "busur dan panah", + "2696": "timbangan gantung", + "1f9f2": "magnet", + "1f9ea": "tabung uji", + "1f9ec": "dna", + "1f52c": "mikroskop", + "1f52d": "teleskop", + "1f4e1": "antena satelit", + "1fa91": "bangku", + "1f9f9": "sapu", + "1f5ff": "moai" + }, + "is": { + "1f47d": "geimvera", + "1f916": "vélmennisandlit", + "1f9e0": "heili", + "1f441": "auga", + "1f9d9": "galdramaður", + "1f9da": "álfur", + "1f9dc": "sæbúi", + "1f435": "apahöfuð", + "1f9a7": "órangútan", + "1f436": "hundshöfuð", + "1f43a": "úlfur", + "1f98a": "refur", + "1f99d": "þvottabjörn", + "1f431": "kattarhöfuð", + "1f981": "ljón", + "1f42f": "tígrisdýrshöfuð", + "1f434": "hestshöfuð", + "1f984": "einhyrningur", + "1f993": "sebrahestur", + "1f98c": "hjartardýr", + "1f42e": "kýrhöfuð", + "1f437": "svínshöfuð", + "1f417": "villisvín", + "1f42a": "drómedari", + "1f999": "lamadýr", + "1f992": "gíraffi", + "1f418": "fíll", + "1f9a3": "loðfíll", + "1f98f": "nashyrningur", + "1f42d": "músarhöfuð", + "1f430": "kanínuhöfuð", + "1f43f": "jarðíkorni", + "1f994": "broddgöltur", + "1f987": "leðurblaka", + "1f43b": "björn", + "1f428": "kóalabjörn", + "1f9a5": "letidýr", + "1f9a6": "otur", + "1f998": "kengúra", + "1f425": "framhlið hænuunga", + "1f426": "fugl", + "1f54a": "dúfa", + "1f986": "önd", + "1f989": "ugla", + "1f9a4": "dúdúfugl", + "1fab6": "fjöður", + "1f9a9": "flamingói", + "1f99a": "páfugl", + "1f99c": "páfagaukur", + "1f40a": "krókódíll", + "1f422": "skjaldbaka", + "1f98e": "eðla", + "1f40d": "snákur", + "1f432": "drekahöfuð", + "1f995": "graseðla", + "1f433": "blásandi hvalur", + "1f42c": "höfrungur", + "1f9ad": "selur", + "1f41f": "fiskur", + "1f420": "hitabeltisfiskur", + "1f988": "hákarl", + "1f419": "kolkrabbi", + "1f41a": "kuðungur", + "1f40c": "snigill", + "1f98b": "fiðrildi", + "1f41b": "skordýr", + "1f41d": "hunangsfluga", + "1f41e": "maríuhæna", + "1f490": "blómvöndur", + "1f339": "rós", + "1f33a": "Havaírós", + "1f33b": "sólblóm", + "1f337": "túlípani", + "1f332": "sígrænt tré", + "1f333": "sumargrænt tré", + "1f334": "pálmatré", + "1f335": "kaktus", + "1f33f": "kryddjurt", + "1f341": "hlynslauf", + "1f344": "sveppur", + "1f347": "vínber", + "1f348": "melóna", + "1f349": "vatnsmelóna", + "1f34a": "mandarína", + "1f34b": "sítróna", + "1f34c": "banani", + "1f34d": "ananas", + "1f96d": "mangó", + "1f34f": "grænt epli", + "1f350": "pera", + "1f351": "ferskja", + "1f352": "kirsuber", + "1f353": "jarðarber", + "1fad0": "bláber", + "1f95d": "kíví", + "1f345": "tómatur", + "1fad2": "ólífa", + "1f965": "kókoshneta", + "1f951": "avókadó", + "1f346": "eggaldin", + "1f955": "gulrót", + "1f33d": "maís", + "1f336": "chilipipar", + "1f96c": "kál", + "1f966": "brokkólí", + "1f9c5": "laukur", + "1f95c": "jarðhneta", + "1f950": "smjördeigshorn", + "1f956": "fransbrauð", + "1f968": "saltkringla", + "1f96f": "beygla", + "1f95e": "pönnukökur", + "1f9c7": "vaffla", + "1f354": "hamborgari", + "1f355": "pítsusneið", + "1f32d": "pylsa í brauði", + "1f32e": "takó", + "1f37f": "popp", + "1f980": "krabbi", + "1f99e": "humar", + "1f368": "kúluís", + "1f369": "kleinuhringur", + "1f36a": "smákaka", + "1f382": "afmæliskaka", + "1f9c1": "bollakaka", + "1f36b": "súkkulaði", + "1f36c": "nammi", + "1f36d": "sleikibrjóstsykur", + "1fad6": "tekanna", + "1f9c3": "ferna", + "1f9c9": "mate", + "1f9ed": "áttaviti", + "1f3d4": "snæviþakinn fjallstindur", + "1f30b": "eldfjall", + "1f3d5": "tjaldstæði", + "1f3dd": "eyðieyja", + "1f3e1": "hús með garði", + "26f2": "gosbrunnur", + "1f3a0": "hringekjuhestur", + "1f3a1": "parísarhjól", + "1f3a2": "rússíbani", + "1f488": "rakarastofa", + "1f686": "lest", + "1f68b": "sporvagn", + "1f68d": "strætó á móti", + "1f695": "leigubíll", + "1f697": "bíll", + "1f69a": "flutningabíll", + "1f69c": "dráttarvél", + "1f6f5": "vespa", + "1f6fa": "vélknúinn léttvagn", + "1f6f4": "hlaupahjól", + "1f6f9": "hjólabretti", + "1f6fc": "hjólaskautar", + "2693": "akkeri", + "26f5": "seglskúta", + "1f6f6": "kanó", + "1f6a4": "hraðbátur", + "1f6a2": "skip", + "2708": "flugvél", + "1f681": "þyrla", + "1f6a0": "kláfferja í fjalli", + "1f6f0": "gervihnöttur", + "1f680": "eldflaug", + "1f6f8": "fljúgandi diskur", + "23f0": "vekjaraklukka", + "1f319": "hálfmáni", + "1f321": "hitamælir", + "2600": "sól", + "1fa90": "pláneta með hringi", + "1f31f": "skínandi stjarna", + "1f300": "fellibylur", + "1f308": "regnbogi", + "2602": "regnhlíf", + "2744": "snjókorn", + "2604": "halastjarna", + "1f525": "eldur", + "1f4a7": "dropi", + "1f30a": "alda", + "1f383": "hrekkjavökugrasker", + "2728": "stjörnur", + "1f388": "blaðra", + "1f389": "knall", + "1f38f": "fiskveifur", + "1f380": "borði", + "1f381": "gjöf", + "1f39f": "aðgöngumiðar", + "1f3c6": "verðlaunabikar", + "26bd": "fótbolti", + "1f3c0": "körfubolti", + "1f3c8": "amerískur fótbolti", + "1f3be": "tennis", + "1f94f": "frisbídiskur", + "1f3d3": "borðtennis", + "1f3f8": "badminton", + "1f93f": "köfunargríma", + "1f94c": "krullusteinn", + "1f3af": "skotmark", + "1fa80": "jójó", + "1fa81": "flugdreki", + "1f52e": "kristalskúla", + "1f3b2": "teningur", + "1f9e9": "púsl", + "1f3a8": "litapalletta", + "1f9f5": "tvinni", + "1f455": "stuttermabolur", + "1f9e6": "sokkar", + "1f457": "kjóll", + "1fa73": "stuttbuxur", + "1f392": "skólataska", + "1f45f": "íþróttaskór", + "1f451": "kóróna", + "1f9e2": "derhúfa", + "1f484": "varalitur", + "1f48d": "hringur", + "1f48e": "gimsteinn", + "1f4e2": "Almannavarnahátalari", + "1f3b6": "nótur", + "1f399": "hljóðnemi í hljóðveri", + "1f4fb": "útvarp", + "1f3b7": "saxófónn", + "1fa97": "harmonika", + "1f3b8": "gítar", + "1f3ba": "trompet", + "1f3bb": "fiðla", + "1fa95": "banjó", + "1f941": "tromma", + "260e": "sími", + "1f50b": "rafhlaða", + "1f4bf": "blu-ray", + "1f9ee": "talnagrind", + "1f3ac": "klapptré", + "1f4a1": "ljósapera", + "1f526": "vasaljós", + "1f3ee": "rauður lampi", + "1f4d5": "lokuð bók", + "1f3f7": "merkimiði", + "1f4b3": "kreditkort", + "270f": "blýantur", + "1f58c": "málningarpensill", + "1f58d": "vaxlitur", + "1f4cc": "teiknibóla", + "1f4ce": "bréfaklemma", + "1f511": "lykill", + "1fa83": "búmerang", + "1f3f9": "bogi og ör", + "2696": "vog", + "1f9f2": "segull", + "1f9ea": "tilraunaglas", + "1f9ec": "dna", + "1f52c": "smásjá", + "1f52d": "sjónauki", + "1f4e1": "gervihnattaloftnet", + "1fa91": "stóll", + "1f9f9": "kústur", + "1f5ff": "moyai-stytta" + }, + "it": { + "1f47d": "alieno", + "1f916": "faccina di robot", + "1f9e0": "cervello", + "1f441": "occhio", + "1f9d9": "mago", + "1f9da": "fata", + "1f9dc": "sirena", + "1f435": "muso di scimmia", + "1f9a7": "orangotango", + "1f436": "muso di cane", + "1f43a": "lupo", + "1f98a": "volpe", + "1f99d": "procione", + "1f431": "muso di gatto", + "1f981": "leone", + "1f42f": "muso di tigre", + "1f434": "muso di cavallo", + "1f984": "unicorno", + "1f993": "zebra", + "1f98c": "cervo", + "1f42e": "muso di mucca", + "1f437": "muso di maiale", + "1f417": "cinghiale", + "1f42a": "dromedario", + "1f999": "lama", + "1f992": "giraffa", + "1f418": "elefante", + "1f9a3": "mammut", + "1f98f": "rinoceronte", + "1f42d": "muso di topo", + "1f430": "muso di coniglio", + "1f43f": "scoiattolo", + "1f994": "riccio", + "1f987": "pipistrello", + "1f43b": "orso", + "1f428": "koala", + "1f9a5": "bradipo", + "1f9a6": "lontra", + "1f998": "canguro", + "1f425": "pulcino visto di fronte", + "1f426": "uccello", + "1f54a": "colomba", + "1f986": "anatra", + "1f989": "gufo", + "1f9a4": "dodo", + "1fab6": "piuma", + "1f9a9": "fenicottero", + "1f99a": "pavone", + "1f99c": "pappagallo", + "1f40a": "coccodrillo", + "1f422": "tartaruga", + "1f98e": "lucertola", + "1f40d": "serpente", + "1f432": "testa di drago", + "1f995": "sauropode", + "1f433": "balena che spruzza acqua", + "1f42c": "delfino", + "1f9ad": "foca", + "1f41f": "pesce", + "1f420": "pesce tropicale", + "1f988": "squalo", + "1f419": "polpo", + "1f41a": "conchiglia", + "1f40c": "lumaca", + "1f98b": "farfalla", + "1f41b": "insetto", + "1f41d": "ape", + "1f41e": "coccinella", + "1f490": "mazzo di fiori", + "1f339": "rosa", + "1f33a": "ibisco", + "1f33b": "girasole", + "1f337": "tulipano", + "1f332": "albero sempreverde", + "1f333": "albero deciduo", + "1f334": "palma", + "1f335": "cactus", + "1f33f": "pianta", + "1f341": "foglia d’acero", + "1f344": "fungo", + "1f347": "uva", + "1f348": "melone", + "1f349": "anguria", + "1f34a": "mandarino", + "1f34b": "limone", + "1f34c": "banana", + "1f34d": "ananas", + "1f96d": "mango", + "1f34f": "mela verde", + "1f350": "pera", + "1f351": "pesca", + "1f352": "ciliegie", + "1f353": "fragola", + "1fad0": "mirtilli", + "1f95d": "kiwi", + "1f345": "pomodoro", + "1fad2": "oliva", + "1f965": "cocco", + "1f951": "avocado", + "1f346": "melanzana", + "1f955": "carota", + "1f33d": "pannocchia", + "1f336": "peperoncino", + "1f96c": "verdure a foglia", + "1f966": "broccoli", + "1f9c5": "cipolla", + "1f95c": "arachidi", + "1f950": "croissant", + "1f956": "baguette", + "1f968": "pretzel", + "1f96f": "bagel", + "1f95e": "pancake", + "1f9c7": "waffle", + "1f354": "hamburger", + "1f355": "pizza", + "1f32d": "hot dog", + "1f32e": "taco", + "1f37f": "popcorn", + "1f980": "granchio", + "1f99e": "aragosta", + "1f368": "coppa di gelato", + "1f369": "ciambella", + "1f36a": "biscotto", + "1f382": "torta di compleanno", + "1f9c1": "cupcake", + "1f36b": "cioccolato", + "1f36c": "caramella", + "1f36d": "lecca lecca", + "1fad6": "teiera", + "1f9c3": "bevanda monodose", + "1f9c9": "mate", + "1f9ed": "bussola", + "1f3d4": "montagna innevata", + "1f30b": "vulcano", + "1f3d5": "campeggio", + "1f3dd": "isola deserta", + "1f3e1": "casa con giardino", + "26f2": "fontana", + "1f3a0": "cavallo da giostra", + "1f3a1": "ruota panoramica", + "1f3a2": "montagne russe", + "1f488": "barbiere", + "1f686": "treno", + "1f68b": "vagone del tram", + "1f68d": "bus in arrivo", + "1f695": "taxi", + "1f697": "auto", + "1f69a": "camion", + "1f69c": "trattore", + "1f6f5": "scooter", + "1f6fa": "risciò a motore", + "1f6f4": "monopattino", + "1f6f9": "skateboard", + "1f6fc": "pattini a rotelle", + "2693": "ancora", + "26f5": "barca a vela", + "1f6f6": "canoa", + "1f6a4": "motoscafo", + "1f6a2": "nave", + "2708": "aeroplano", + "1f681": "elicottero", + "1f6a0": "funivia", + "1f6f0": "satellite", + "1f680": "razzo", + "1f6f8": "disco volante", + "23f0": "sveglia", + "1f319": "spicchio di luna", + "1f321": "termometro", + "2600": "sole", + "1fa90": "pianeta con satellite", + "1f31f": "stella che brilla", + "1f300": "ciclone", + "1f308": "arcobaleno", + "2602": "ombrello", + "2744": "fiocco di neve", + "2604": "cometa", + "1f525": "fuoco", + "1f4a7": "goccia", + "1f30a": "onda", + "1f383": "zucca di Halloween", + "2728": "stelline", + "1f388": "palloncino", + "1f389": "spara coriandoli", + "1f38f": "aquilone a forma di carpa", + "1f380": "fiocco", + "1f381": "regalo", + "1f39f": "biglietto d’ingresso", + "1f3c6": "coppa", + "26bd": "pallone da calcio", + "1f3c0": "palla da pallacanestro", + "1f3c8": "football americano", + "1f3be": "tennis", + "1f94f": "frisbee", + "1f3d3": "ping pong", + "1f3f8": "badminton", + "1f93f": "maschera da sub", + "1f94c": "stone da curling", + "1f3af": "bersaglio", + "1fa80": "yo-yo", + "1fa81": "aquilone", + "1f52e": "sfera di cristallo", + "1f3b2": "dado", + "1f9e9": "pezzo di puzzle", + "1f3a8": "tavolozza", + "1f9f5": "filo", + "1f455": "t-shirt", + "1f9e6": "calzini", + "1f457": "vestito", + "1fa73": "pantaloncini", + "1f392": "zaino", + "1f45f": "scarpa sportiva", + "1f451": "corona", + "1f9e2": "cappello con visiera", + "1f484": "rossetto", + "1f48d": "anello", + "1f48e": "gemma", + "1f4e2": "altoparlante", + "1f3b6": "note musicali", + "1f399": "microfono radiofonico", + "1f4fb": "radio", + "1f3b7": "sassofono", + "1fa97": "fisarmonica", + "1f3b8": "chitarra", + "1f3ba": "tromba", + "1f3bb": "violino", + "1fa95": "banjo", + "1f941": "tamburo", + "260e": "telefono fisso", + "1f50b": "batteria", + "1f4bf": "disco ottico", + "1f9ee": "abaco", + "1f3ac": "ciak", + "1f4a1": "lampadina", + "1f526": "torcia", + "1f3ee": "lanterna rossa", + "1f4d5": "libro chiuso", + "1f3f7": "etichetta", + "1f4b3": "carta di credito", + "270f": "matita", + "1f58c": "pennello", + "1f58d": "pastello a cera", + "1f4cc": "puntina", + "1f4ce": "graffetta", + "1f511": "chiave", + "1fa83": "boomerang", + "1f3f9": "arco e freccia", + "2696": "bilancia a doppio piatto", + "1f9f2": "calamita", + "1f9ea": "provetta", + "1f9ec": "dna", + "1f52c": "microscopio", + "1f52d": "telescopio", + "1f4e1": "antenna satellitare", + "1fa91": "sedia", + "1f9f9": "scopa", + "1f5ff": "Moai" + }, + "ja": { + "1f47d": "エイリアン", + "1f916": "ロボット", + "1f9e0": "脳", + "1f441": "片目", + "1f9d9": "魔法使い", + "1f9da": "妖精", + "1f9dc": "人魚", + "1f435": "サルの顔", + "1f9a7": "オランウータン", + "1f436": "イヌの顔", + "1f43a": "オオカミの顔", + "1f98a": "キツネの顔", + "1f99d": "アライグマ", + "1f431": "ネコの顔", + "1f981": "ライオンの顔", + "1f42f": "トラの顔", + "1f434": "馬の顔", + "1f984": "ユニコーンの顔", + "1f993": "シマウマ", + "1f98c": "シカ", + "1f42e": "牛の顔", + "1f437": "ブタの顔", + "1f417": "イノシシ", + "1f42a": "ラクダ", + "1f999": "ラマ", + "1f992": "キリン", + "1f418": "ゾウ", + "1f9a3": "マンモス", + "1f98f": "サイ", + "1f42d": "ネズミの顔", + "1f430": "ウサギの顔", + "1f43f": "リス", + "1f994": "ハリネズミ", + "1f987": "コウモリ", + "1f43b": "クマの顔", + "1f428": "コアラ", + "1f9a5": "ナマケモノ", + "1f9a6": "カワウソ", + "1f998": "カンガルー", + "1f425": "前を向いているひよこ", + "1f426": "鳥", + "1f54a": "ハト", + "1f986": "カモ", + "1f989": "フクロウ", + "1f9a4": "ドードー", + "1fab6": "羽", + "1f9a9": "フラミンゴ", + "1f99a": "クジャク", + "1f99c": "オウム", + "1f40a": "ワニ", + "1f422": "カメ", + "1f98e": "トカゲ", + "1f40d": "ヘビ", + "1f432": "ドラゴンの顔", + "1f995": "草食恐竜", + "1f433": "潮吹きクジラ", + "1f42c": "イルカ", + "1f9ad": "アザラシ", + "1f41f": "魚", + "1f420": "熱帯魚", + "1f988": "サメ", + "1f419": "タコ", + "1f41a": "巻き貝", + "1f40c": "かたつむり", + "1f98b": "チョウ", + "1f41b": "毛虫", + "1f41d": "ミツバチ", + "1f41e": "テントウムシ", + "1f490": "花束", + "1f339": "バラ", + "1f33a": "ハイビスカス", + "1f33b": "ヒマワリ", + "1f337": "チューリップ", + "1f332": "常緑樹", + "1f333": "落葉樹", + "1f334": "ヤシの木", + "1f335": "サボテン", + "1f33f": "ハーブ", + "1f341": "かえで", + "1f344": "キノコ", + "1f347": "ぶどう", + "1f348": "メロン", + "1f349": "スイカ", + "1f34a": "みかん", + "1f34b": "レモン", + "1f34c": "バナナ", + "1f34d": "パイナップル", + "1f96d": "マンゴー", + "1f34f": "青リンゴ", + "1f350": "洋ナシ", + "1f351": "桃", + "1f352": "さくらんぼ", + "1f353": "いちご", + "1fad0": "ブルーベリー", + "1f95d": "キウイフルーツ", + "1f345": "トマト", + "1fad2": "オリーブ", + "1f965": "ココナツ", + "1f951": "アボカド", + "1f346": "ナス", + "1f955": "人参", + "1f33d": "とうもろこし", + "1f336": "とうがらし", + "1f96c": "葉野菜", + "1f966": "ブロッコリー", + "1f9c5": "タマネギ", + "1f95c": "ピーナッツ", + "1f950": "クロワッサン", + "1f956": "バゲット", + "1f968": "プレッツェル", + "1f96f": "ベーグル", + "1f95e": "パンケーキ", + "1f9c7": "ワッフル", + "1f354": "ハンバーガー", + "1f355": "ピザ", + "1f32d": "ホットドッグ", + "1f32e": "タコス", + "1f37f": "ポップコーン", + "1f980": "カニ", + "1f99e": "ザリガニ", + "1f368": "アイスクリーム", + "1f369": "ドーナツ", + "1f36a": "クッキー", + "1f382": "バースデーケーキ", + "1f9c1": "カップケーキ", + "1f36b": "チョコレート", + "1f36c": "キャンディ", + "1f36d": "ぺろぺろキャンディ", + "1fad6": "ティーポット", + "1f9c3": "紙パック飲料", + "1f9c9": "マテ茶", + "1f9ed": "コンパス", + "1f3d4": "雪山", + "1f30b": "火山", + "1f3d5": "キャンプ", + "1f3dd": "無人島", + "1f3e1": "庭付きの家", + "26f2": "噴水", + "1f3a0": "メリーゴーランド", + "1f3a1": "観覧車", + "1f3a2": "ジェットコースター", + "1f488": "床屋", + "1f686": "電車正面", + "1f68b": "路面電車", + "1f68d": "バス正面", + "1f695": "タクシー", + "1f697": "自動車", + "1f69a": "トラック", + "1f69c": "トラクター", + "1f6f5": "スクーター", + "1f6fa": "三輪タクシー", + "1f6f4": "キックボード", + "1f6f9": "スケートボード", + "1f6fc": "ローラースケート", + "2693": "錨", + "26f5": "ヨット", + "1f6f6": "カヌー", + "1f6a4": "スピードボート", + "1f6a2": "船", + "2708": "飛行機", + "1f681": "ヘリコプター", + "1f6a0": "ケーブルカー", + "1f6f0": "人工衛星", + "1f680": "ロケット", + "1f6f8": "空飛ぶ円盤", + "23f0": "目覚まし時計", + "1f319": "三日月", + "1f321": "温度計", + "2600": "太陽", + "1fa90": "環のある惑星", + "1f31f": "きらきら星", + "1f300": "渦巻き", + "1f308": "虹", + "2602": "傘", + "2744": "雪の結晶", + "2604": "彗星", + "1f525": "火", + "1f4a7": "水滴", + "1f30a": "波", + "1f383": "ハロウィンかぼちゃ", + "2728": "きらきら", + "1f388": "風船", + "1f389": "クラッカー", + "1f38f": "こいのぼり", + "1f380": "リボン", + "1f381": "プレゼント", + "1f39f": "入場券", + "1f3c6": "トロフィー", + "26bd": "サッカー", + "1f3c0": "バスケットボール", + "1f3c8": "アメフト", + "1f3be": "テニス", + "1f94f": "フリスビー", + "1f3d3": "卓球", + "1f3f8": "バドミントン", + "1f93f": "ダイビング マスク", + "1f94c": "カーリング", + "1f3af": "的", + "1fa80": "ヨーヨー", + "1fa81": "たこ", + "1f52e": "水晶玉", + "1f3b2": "サイコロ", + "1f9e9": "ジグソーパズル", + "1f3a8": "絵の具パレット", + "1f9f5": "糸", + "1f455": "Tシャツ", + "1f9e6": "ソックス", + "1f457": "ワンピース", + "1fa73": "ショーツ", + "1f392": "バックパック", + "1f45f": "スニーカー", + "1f451": "王冠", + "1f9e2": "キャップ", + "1f484": "口紅", + "1f48d": "指輪", + "1f48e": "宝石", + "1f4e2": "拡声器", + "1f3b6": "複数の音符", + "1f399": "スタジオマイク", + "1f4fb": "ラジオ", + "1f3b7": "サックス", + "1fa97": "アコーディオン", + "1f3b8": "ギター", + "1f3ba": "トランペット", + "1f3bb": "バイオリン", + "1fa95": "バンジョー", + "1f941": "ドラム", + "260e": "固定電話", + "1f50b": "電池", + "1f4bf": "CD", + "1f9ee": "そろばん", + "1f3ac": "カチンコ", + "1f4a1": "電球", + "1f526": "懐中電灯", + "1f3ee": "赤ちょうちん", + "1f4d5": "閉じた本", + "1f3f7": "荷札", + "1f4b3": "クレジットカード", + "270f": "鉛筆", + "1f58c": "絵筆", + "1f58d": "クレヨン", + "1f4cc": "押しピン", + "1f4ce": "クリップ", + "1f511": "鍵", + "1fa83": "ブーメラン", + "1f3f9": "弓矢", + "2696": "天秤", + "1f9f2": "U字型磁石", + "1f9ea": "試験管", + "1f9ec": "DNA", + "1f52c": "顕微鏡", + "1f52d": "望遠鏡", + "1f4e1": "パラボラアンテナ", + "1fa91": "椅子", + "1f9f9": "ほうき", + "1f5ff": "モアイ" + }, + "ka": { + "1f47d": "უცხოპლანეტელი", + "1f916": "რობოტის სახე", + "1f9e0": "ტვინი", + "1f441": "თვალი", + "1f9d9": "ჯადოქარი", + "1f9da": "ფერია", + "1f9dc": "ადამიანთევზა", + "1f435": "მაიმუნის სახე", + "1f9a7": "ორანგუტანი", + "1f436": "ძაღლის სახე", + "1f43a": "მგლის სახე", + "1f98a": "მელიის თავი", + "1f99d": "ენოტი", + "1f431": "კატის სახე", + "1f981": "ლომის სახე", + "1f42f": "ვეფხვის სახე", + "1f434": "ცხენის სახე", + "1f984": "ზღაპრული მარტორქის სახე", + "1f993": "ზებრა", + "1f98c": "ირემი", + "1f42e": "ძროხის სახე", + "1f437": "ღორის სახე", + "1f417": "ტახი", + "1f42a": "აქლემი", + "1f999": "ლამა", + "1f992": "ჟირაფი", + "1f418": "სპილო", + "1f9a3": "მამონტი", + "1f98f": "მარტორქა", + "1f42d": "თაგვის სახე", + "1f430": "კურდღლის სახე", + "1f43f": "ციყვი", + "1f994": "ზღარბი", + "1f987": "ღამურა", + "1f43b": "დათვის სახე", + "1f428": "კოალა", + "1f9a5": "ზარმაცა", + "1f9a6": "წავი", + "1f998": "კენგურუ", + "1f425": "პატარა წიწილა წინიდან", + "1f426": "ჩიტი", + "1f54a": "მტრედი", + "1f986": "იხვი", + "1f989": "ბუ", + "1f9a4": "დოდო", + "1fab6": "ბუმბული", + "1f9a9": "ფლამინგო", + "1f99a": "ფარშევანგი", + "1f99c": "თუთიყუში", + "1f40a": "ნიანგი", + "1f422": "კუ", + "1f98e": "ხვლიკი", + "1f40d": "გველი", + "1f432": "დრაკონის სახე", + "1f995": "ზაუროპოდი", + "1f433": "ვეშაპი ჭავლით", + "1f42c": "დელფინი", + "1f9ad": "სელაპი", + "1f41f": "თევზი", + "1f420": "ტროპიკული თევზი", + "1f988": "ზვიგენი", + "1f419": "რვაფეხა", + "1f41a": "სპირალური ნიჟარა", + "1f40c": "ლოკოკინა", + "1f98b": "პეპელა", + "1f41b": "ბაღლინჯო", + "1f41d": "ფუტკარი", + "1f41e": "ჭიამაია", + "1f490": "თაიგული", + "1f339": "ვარდი", + "1f33a": "ჰიბისკუსი", + "1f33b": "მზესუმზირა", + "1f337": "ტიტა", + "1f332": "მარადმწვანე", + "1f333": "ფოთლოვანი ხე", + "1f334": "პალმა", + "1f335": "კაქტუსი", + "1f33f": "სამკურნალო მცენარე", + "1f341": "ნეკერჩხლის ფოთოლი", + "1f344": "სოკო", + "1f347": "ყურძენი", + "1f348": "ნესვი", + "1f349": "საზამთრო", + "1f34a": "მანდარინი", + "1f34b": "ლიმონი", + "1f34c": "ბანანი", + "1f34d": "ანანასი", + "1f96d": "მანგო", + "1f34f": "მწვანე ვაშლი", + "1f350": "მსხალი", + "1f351": "ატამი", + "1f352": "ალუბალი", + "1f353": "მარწყვი", + "1fad0": "მოცვი", + "1f95d": "კივი", + "1f345": "პამიდორი", + "1fad2": "ზეითუნი", + "1f965": "ქოქოსი", + "1f951": "ავოკადო", + "1f346": "ბადრიჯანი", + "1f955": "სტაფილო", + "1f33d": "სიმინდის ტარო", + "1f336": "ცხარე წიწაკა", + "1f96c": "სალათის ფოთოლი", + "1f966": "ბროკოლი", + "1f9c5": "ხახვი", + "1f95c": "მიწის თხილი", + "1f950": "კრუასანი", + "1f956": "ბაგეტი", + "1f968": "პრეცელი", + "1f96f": "ბეიგელი", + "1f95e": "ბლინები", + "1f9c7": "ვაფლი", + "1f354": "ჰამბურგერი", + "1f355": "პიცა", + "1f32d": "ჰოთდოგი", + "1f32e": "ტაკო", + "1f37f": "ბატი-ბუტი", + "1f980": "კიბორჩხალა", + "1f99e": "კიბო", + "1f368": "ნაყინი", + "1f369": "დონატი", + "1f36a": "ფხვიერი ნამცხვარი", + "1f382": "დაბადების დღის ტორტი", + "1f9c1": "ქაფქეიქი", + "1f36b": "შოკოლადის ფილა", + "1f36c": "კანფეტი", + "1f36d": "კანფეტი ჯოხზე", + "1fad6": "ჩაიდანი", + "1f9c3": "წვენი პაკეტში", + "1f9c9": "მატე", + "1f9ed": "კომპასი", + "1f3d4": "თოვლით დაფარული მთა", + "1f30b": "ვულკანი", + "1f3d5": "კემპინგი", + "1f3dd": "უკაცრიელი კუნძული", + "1f3e1": "სახლი ბაღით", + "26f2": "შადრევანი", + "1f3a0": "კარუსელის ცხენი", + "1f3a1": "ეშმაკის ბორბალი", + "1f3a2": "ამერიკული გორაკები", + "1f488": "დალაქის სვეტი", + "1f686": "მატარებელი", + "1f68b": "ტრამვაის ვაგონი", + "1f68d": "მომავალი ავტობუსი", + "1f695": "ტაქსი", + "1f697": "ავტომობილი", + "1f69a": "მიმწოდებელი სატვირთო მანქანა", + "1f69c": "ტრაქტორი", + "1f6f5": "სკუტერი ძრავით", + "1f6fa": "ავტორიქშა", + "1f6f4": "ფეხის სკუტერი", + "1f6f9": "სკეიტბორდი", + "1f6fc": "გორგოლაჭიანი ციგურები", + "2693": "ღუზა", + "26f5": "იალქნიანი ნავი", + "1f6f6": "კანოე", + "1f6a4": "გლისერი", + "1f6a2": "გემი", + "2708": "თვითმფრინავი", + "1f681": "ვერტმფრენი", + "1f6a0": "მთის საბაგირო", + "1f6f0": "თანამგზავრი", + "1f680": "რაკეტა", + "1f6f8": "მფრინავი თეფში", + "23f0": "მაღვიძარა", + "1f319": "ნამგალა მთვარე", + "1f321": "თერმომეტრი", + "2600": "მზე", + "1fa90": "პლანეტა სარტყელით", + "1f31f": "მბრწყინავი ვარსკვლავი", + "1f300": "ციკლონი", + "1f308": "ცისარტყელა", + "2602": "ქოლგა", + "2744": "თოვლის ფანტელი", + "2604": "კომეტა", + "1f525": "ცეცხლი", + "1f4a7": "წვეთი", + "1f30a": "წყლის ტალღა", + "1f383": "ჰელოუინის გოგრა", + "2728": "ნაპერწკლები", + "1f388": "ბუშტი", + "1f389": "ტკაცუნა", + "1f38f": "კობრებიანი ალამი", + "1f380": "ლენტი", + "1f381": "შეფუთული საჩუქარი", + "1f39f": "ბილეთები", + "1f3c6": "პრიზი", + "26bd": "ფეხბურთი", + "1f3c0": "კალათბურთი", + "1f3c8": "ამერიკული ფეხბურთი", + "1f3be": "ჩოგბურთი", + "1f94f": "მფრინავი დისკი", + "1f3d3": "მაგიდის ჩოგბურთი", + "1f3f8": "ბადმინტონი", + "1f93f": "წყლის ნიღაბი", + "1f94c": "კერლინგის ქვა", + "1f3af": "პირდაპირი მოხვედრა", + "1fa80": "იო-იო", + "1fa81": "ფრანი", + "1f52e": "კრისტალის ბურთი", + "1f3b2": "კამათელი", + "1f9e9": "პაზლი", + "1f3a8": "მხატვრის პალიტრა", + "1f9f5": "ძაფის კოჭა", + "1f455": "მაისური", + "1f9e6": "წინდები", + "1f457": "კაბა", + "1fa73": "შორტები", + "1f392": "სკოლის ზურგჩანთა", + "1f45f": "ბოტასი", + "1f451": "გვირგვინი", + "1f9e2": "ბეისბოლის კეპი", + "1f484": "ტუჩის პომადა", + "1f48d": "ბეჭედი", + "1f48e": "ძვირფასი ქვა", + "1f4e2": "რუპორი", + "1f3b6": "მუსიკალური ნოტები", + "1f399": "სტუდიური მიკროფონი", + "1f4fb": "რადიო", + "1f3b7": "საქსოფონი", + "1fa97": "აკორდეონი", + "1f3b8": "გიტარა", + "1f3ba": "საყვირი", + "1f3bb": "ვიოლინო", + "1fa95": "ბანჯო", + "1f941": "ბარაბანი", + "260e": "ტელეფონი", + "1f50b": "ბატარეა", + "1f4bf": "ოპტიკური დისკი", + "1f9ee": "საანგარიშო დაფა", + "1f3ac": "ნუმერატორი ტკაცუნათი", + "1f4a1": "ნათურა", + "1f526": "ფანარი", + "1f3ee": "ქაღალდის წითელი ფარანი", + "1f4d5": "დახურული წიგნი", + "1f3f7": "იარლიყი", + "1f4b3": "საკრედიტო ბარათი", + "270f": "ფანქარი", + "1f58c": "სახატავი ფუნჯი", + "1f58d": "ფერადი ფანქარი", + "1f4cc": "ჭიკარტი", + "1f4ce": "ქაღალდის სამაგრი", + "1f511": "გასაღები", + "1fa83": "ბუმერანგი", + "1f3f9": "მშვილდ-ისარი", + "2696": "ბერკეტიანი სასწორი", + "1f9f2": "მაგნიტი", + "1f9ea": "სინჯარა", + "1f9ec": "დნმ", + "1f52c": "მიკროსკოპი", + "1f52d": "ტელესკოპი", + "1f4e1": "თანამგზავრული ანტენა", + "1fa91": "სკამი", + "1f9f9": "ცოცხი", + "1f5ff": "მოაი" + }, + "ko": { + "1f47d": "외계인", + "1f916": "로봇 얼굴", + "1f9e0": "뇌", + "1f441": "눈", + "1f9d9": "마법사", + "1f9da": "요정", + "1f9dc": "인어", + "1f435": "원숭이 얼굴", + "1f9a7": "오랑우탄", + "1f436": "강아지 얼굴", + "1f43a": "늑대 얼굴", + "1f98a": "여우 얼굴", + "1f99d": "너구리", + "1f431": "고양이 얼굴", + "1f981": "사자 얼굴", + "1f42f": "호랑이 얼굴", + "1f434": "말 얼굴", + "1f984": "유니콘 얼굴", + "1f993": "얼룩말", + "1f98c": "사슴", + "1f42e": "소 얼굴", + "1f437": "돼지 얼굴", + "1f417": "멧돼지", + "1f42a": "낙타", + "1f999": "라마", + "1f992": "기린", + "1f418": "코끼리", + "1f9a3": "매머드", + "1f98f": "코뿔소", + "1f42d": "쥐 얼굴", + "1f430": "토끼 얼굴", + "1f43f": "얼룩다람쥐", + "1f994": "고슴도치", + "1f987": "박쥐", + "1f43b": "곰 얼굴", + "1f428": "코알라", + "1f9a5": "나무늘보", + "1f9a6": "수달", + "1f998": "캥거루", + "1f425": "정면을 향해 날개를 편 병아리", + "1f426": "새", + "1f54a": "비둘기", + "1f986": "오리", + "1f989": "부엉이", + "1f9a4": "도도새", + "1fab6": "깃털", + "1f9a9": "홍학", + "1f99a": "공작", + "1f99c": "앵무새", + "1f40a": "악어", + "1f422": "거북이", + "1f98e": "도마뱀", + "1f40d": "뱀", + "1f432": "용 얼굴", + "1f995": "초식 공룡", + "1f433": "물 뿜는 고래", + "1f42c": "돌고래", + "1f9ad": "물개", + "1f41f": "물고기", + "1f420": "열대어", + "1f988": "상어", + "1f419": "문어", + "1f41a": "달팽이집", + "1f40c": "달팽이", + "1f98b": "나비", + "1f41b": "송충이", + "1f41d": "꿀벌", + "1f41e": "무당벌레", + "1f490": "꽃다발", + "1f339": "장미꽃", + "1f33a": "무궁화", + "1f33b": "해바라기", + "1f337": "튤립", + "1f332": "소나무", + "1f333": "나무", + "1f334": "야자수", + "1f335": "선인장", + "1f33f": "풀", + "1f341": "단풍잎", + "1f344": "버섯", + "1f347": "포도", + "1f348": "멜론", + "1f349": "수박", + "1f34a": "귤", + "1f34b": "레몬", + "1f34c": "바나나", + "1f34d": "파인애플", + "1f96d": "망고", + "1f34f": "초록 사과", + "1f350": "배", + "1f351": "복숭아", + "1f352": "체리", + "1f353": "딸기", + "1fad0": "블루베리", + "1f95d": "키위", + "1f345": "토마토", + "1fad2": "올리브", + "1f965": "코코넛", + "1f951": "아보카도", + "1f346": "가지", + "1f955": "당근", + "1f33d": "옥수수", + "1f336": "홍고추", + "1f96c": "녹색 채소", + "1f966": "브로콜리", + "1f9c5": "양파", + "1f95c": "땅콩", + "1f950": "크루아상", + "1f956": "바게트", + "1f968": "프레첼", + "1f96f": "베이글", + "1f95e": "팬케이크", + "1f9c7": "와플", + "1f354": "햄버거", + "1f355": "피자", + "1f32d": "핫도그", + "1f32e": "타코", + "1f37f": "팝콘", + "1f980": "꽃게", + "1f99e": "바닷가재", + "1f368": "아이스크림", + "1f369": "도넛", + "1f36a": "쿠키", + "1f382": "생일 케이크", + "1f9c1": "컵케이크", + "1f36b": "초콜렛", + "1f36c": "사탕", + "1f36d": "롤리팝", + "1fad6": "찻주전자", + "1f9c3": "음료 팩", + "1f9c9": "마테차", + "1f9ed": "나침반", + "1f3d4": "눈 덮인 산", + "1f30b": "화산", + "1f3d5": "캠핑", + "1f3dd": "사막 섬", + "1f3e1": "정원이 있는 집", + "26f2": "분수", + "1f3a0": "회전 목마", + "1f3a1": "관람차", + "1f3a2": "롤러코스터", + "1f488": "이발소", + "1f686": "기차", + "1f68b": "트램 차량", + "1f68d": "오고 있는 버스", + "1f695": "택시", + "1f697": "자동차", + "1f69a": "운송 트럭", + "1f69c": "트랙터", + "1f6f5": "스쿠터", + "1f6fa": "경삼륜차", + "1f6f4": "킥보드", + "1f6f9": "스케이트보드", + "1f6fc": "롤러스케이트", + "2693": "닻", + "26f5": "돛단배", + "1f6f6": "카누", + "1f6a4": "쾌속정", + "1f6a2": "선박", + "2708": "비행기", + "1f681": "헬리콥터", + "1f6a0": "산악 케이블카", + "1f6f0": "인공위성", + "1f680": "로켓", + "1f6f8": "비행접시", + "23f0": "알람 시계", + "1f319": "초승달", + "1f321": "온도계", + "2600": "태양", + "1fa90": "고리가 있는 행성", + "1f31f": "반짝이는 별", + "1f300": "태풍", + "1f308": "무지개", + "2602": "우산", + "2744": "눈송이", + "2604": "혜성", + "1f525": "불", + "1f4a7": "물방울", + "1f30a": "파도", + "1f383": "할로윈", + "2728": "블링블링", + "1f388": "풍선", + "1f389": "파티", + "1f38f": "물고기 깃발", + "1f380": "리본", + "1f381": "선물", + "1f39f": "입장 티켓", + "1f3c6": "트로피", + "26bd": "축구공", + "1f3c0": "농구", + "1f3c8": "미식축구공", + "1f3be": "테니스", + "1f94f": "원반", + "1f3d3": "탁구", + "1f3f8": "배드민턴", + "1f93f": "다이빙 마스크", + "1f94c": "컬링 스톤", + "1f3af": "과녁 명중", + "1fa80": "요요", + "1fa81": "연", + "1f52e": "수정 구슬", + "1f3b2": "주사위", + "1f9e9": "퍼즐", + "1f3a8": "팔레트", + "1f9f5": "실타래", + "1f455": "티셔츠", + "1f9e6": "양말", + "1f457": "원피스", + "1fa73": "반바지", + "1f392": "학교 가방", + "1f45f": "운동화", + "1f451": "왕관", + "1f9e2": "야구모자", + "1f484": "립스틱", + "1f48d": "반지", + "1f48e": "원석", + "1f4e2": "확성기", + "1f3b6": "노래 음표", + "1f399": "스튜디오 마이크", + "1f4fb": "라디오", + "1f3b7": "색소폰", + "1fa97": "아코디언", + "1f3b8": "기타", + "1f3ba": "트럼펫", + "1f3bb": "바이올린", + "1fa95": "밴조", + "1f941": "드럼", + "260e": "전화기", + "1f50b": "배터리", + "1f4bf": "씨디", + "1f9ee": "주판", + "1f3ac": "슬레이트", + "1f4a1": "전구", + "1f526": "손전등", + "1f3ee": "일본식 등", + "1f4d5": "펼치지 않은 책", + "1f3f7": "라벨", + "1f4b3": "신용카드", + "270f": "연필", + "1f58c": "붓", + "1f58d": "크레용", + "1f4cc": "압정", + "1f4ce": "클립", + "1f511": "열쇠", + "1fa83": "부메랑", + "1f3f9": "활과 화살", + "2696": "접시저울", + "1f9f2": "자석", + "1f9ea": "시험관", + "1f9ec": "DNA", + "1f52c": "현미경", + "1f52d": "망원경", + "1f4e1": "위성 안테나", + "1fa91": "의자", + "1f9f9": "빗자루", + "1f5ff": "모아이" + }, + "lt": { + "1f47d": "ateivis", + "1f916": "roboto veidas", + "1f9e0": "smegenys", + "1f441": "akis", + "1f9d9": "magas", + "1f9da": "fėja", + "1f9dc": "undinius", + "1f435": "beždžionės snukutis", + "1f9a7": "orangutangas", + "1f436": "šuns snukutis", + "1f43a": "vilko snukis", + "1f98a": "lapės snukis", + "1f99d": "meškėnas", + "1f431": "katės snukutis", + "1f981": "liūto snukis", + "1f42f": "tigro snukis", + "1f434": "arklio snukis", + "1f984": "vienaragio snukis", + "1f993": "zebras", + "1f98c": "elnias", + "1f42e": "karvės snukis", + "1f437": "kiaulės snukis", + "1f417": "šernas", + "1f42a": "kupranugaris", + "1f999": "lama", + "1f992": "žirafa", + "1f418": "dramblys", + "1f9a3": "mamutas", + "1f98f": "raganosis", + "1f42d": "pelės snukutis", + "1f430": "triušio snukutis", + "1f43f": "voverė", + "1f994": "ežys", + "1f987": "šikšnosparnis", + "1f43b": "meškos snukis", + "1f428": "koala", + "1f9a5": "tinginys", + "1f9a6": "ūdra", + "1f998": "kengūra", + "1f425": "atsisukęs snapu viščiukas", + "1f426": "paukštis", + "1f54a": "balandis", + "1f986": "antis", + "1f989": "pelėda", + "1f9a4": "drontas", + "1fab6": "plunksna", + "1f9a9": "flamingas", + "1f99a": "povas", + "1f99c": "papūga", + "1f40a": "krokodilas", + "1f422": "vėžlys", + "1f98e": "driežas", + "1f40d": "gyvatė", + "1f432": "drakono snukis", + "1f995": "sauropodas", + "1f433": "purškiantis banginis", + "1f42c": "delfinas", + "1f9ad": "ruonis", + "1f41f": "žuvis", + "1f420": "tropinė žuvis", + "1f988": "ryklys", + "1f419": "aštuonkojis", + "1f41a": "susisukusi kriauklė", + "1f40c": "sraigė", + "1f98b": "drugelis", + "1f41b": "vabalas", + "1f41d": "bitė", + "1f41e": "boružė", + "1f490": "puokštė", + "1f339": "rožė", + "1f33a": "kinrožė", + "1f33b": "saulėgrąža", + "1f337": "tulpė", + "1f332": "amžinai žaliuojantis medis", + "1f333": "lapuotis", + "1f334": "palmė", + "1f335": "kaktusas", + "1f33f": "žolelė", + "1f341": "klevo lapas", + "1f344": "grybas", + "1f347": "vynuogės", + "1f348": "melionas", + "1f349": "arbūzas", + "1f34a": "mandarinas", + "1f34b": "citrina", + "1f34c": "bananas", + "1f34d": "ananasas", + "1f96d": "mangas", + "1f34f": "žalias obuolys", + "1f350": "kriaušė", + "1f351": "persikas", + "1f352": "vyšnios", + "1f353": "braškė", + "1fad0": "mėlynės", + "1f95d": "kivis", + "1f345": "pomidoras", + "1fad2": "alyvuogė", + "1f965": "kokosas", + "1f951": "avokadas", + "1f346": "baklažanas", + "1f955": "morka", + "1f33d": "kukurūzo burbuolė", + "1f336": "aštrusis pipiras", + "1f96c": "lapinė daržovė", + "1f966": "brokolis", + "1f9c5": "svogūnas", + "1f95c": "žemės riešutas", + "1f950": "raguolis", + "1f956": "ilgas batonas", + "1f968": "riestainis", + "1f96f": "apvalus riestainis", + "1f95e": "blynai", + "1f9c7": "vaflis", + "1f354": "mėsainis", + "1f355": "pica", + "1f32d": "dešrainis", + "1f32e": "meksikietiškas paplotėlis", + "1f37f": "spragėsiai", + "1f980": "krabas", + "1f99e": "omaras", + "1f368": "ledai", + "1f369": "spurga", + "1f36a": "sausainis", + "1f382": "gimtadienio tortas", + "1f9c1": "keksiukas", + "1f36b": "šokolado batonėlis", + "1f36c": "saldainis", + "1f36d": "ledinukas ant pagaliuko", + "1fad6": "arbatinukas", + "1f9c3": "gėrimo pakelis", + "1f9c9": "matė", + "1f9ed": "kompasas", + "1f3d4": "kalnas su snieguota viršūne", + "1f30b": "ugnikalnis", + "1f3d5": "stovyklavimas", + "1f3dd": "atoki sala", + "1f3e1": "namas su sodu", + "26f2": "fontanas", + "1f3a0": "karuselės arkliukas", + "1f3a1": "apžvalgos ratas", + "1f3a2": "linksmieji kalneliai", + "1f488": "kirpėjo suktukas", + "1f686": "traukinys", + "1f68b": "tramvajaus vagonas", + "1f68d": "artėjantis autobusas", + "1f695": "taksi", + "1f697": "automobilis", + "1f69a": "krovininis sunkvežimis", + "1f69c": "traktorius", + "1f6f5": "motoroleris", + "1f6fa": "autorikša", + "1f6f4": "paspirtukas", + "1f6f9": "riedlentė", + "1f6fc": "riedučiai", + "2693": "inkaras", + "26f5": "burlaivis", + "1f6f6": "kanoja", + "1f6a4": "motorinis kateris", + "1f6a2": "laivas", + "2708": "lėktuvas", + "1f681": "sraigstasparnis", + "1f6a0": "kalnų keltuvas", + "1f6f0": "palydovas", + "1f680": "raketa", + "1f6f8": "skraidanti lėkštė", + "23f0": "žadintuvas", + "1f319": "pusmėnulis", + "1f321": "termometras", + "2600": "saulė", + "1fa90": "planeta su žiedu", + "1f31f": "žėrinti žvaigždė", + "1f300": "ciklonas", + "1f308": "vaivorykštė", + "2602": "skėtis", + "2744": "snaigė", + "2604": "kometa", + "1f525": "ugnis", + "1f4a7": "lašas", + "1f30a": "vandens banga", + "1f383": "žibintas iš moliūgo", + "2728": "kibirkštėlės", + "1f388": "balionas", + "1f389": "konfeti šaudyklė", + "1f38f": "karpio vėtrungė", + "1f380": "kaspinas", + "1f381": "supakuota dovana", + "1f39f": "įėjimo bilietai", + "1f3c6": "trofėjus", + "26bd": "futbolo kamuolys", + "1f3c0": "krepšinio kamuolys", + "1f3c8": "amerikietiškojo futbolo kamuolys", + "1f3be": "teniso kamuoliukas", + "1f94f": "skraidantis diskas", + "1f3d3": "stalo tenisas", + "1f3f8": "badmintonas", + "1f93f": "nardymo kaukė", + "1f94c": "akmenslydis", + "1f3af": "smūgis tiesiai į taikinį", + "1fa80": "jo-jo", + "1fa81": "aitvaras", + "1f52e": "krištolinis rutulys", + "1f3b2": "kauliukas", + "1f9e9": "dėlionė", + "1f3a8": "dailininko paletė", + "1f9f5": "siūlas", + "1f455": "marškinėliai", + "1f9e6": "kojinės", + "1f457": "suknelė", + "1fa73": "šortai", + "1f392": "mokyklinė kuprinė", + "1f45f": "bėgimo batelis", + "1f451": "karūna", + "1f9e2": "reklaminė kepurė", + "1f484": "lūpų dažai", + "1f48d": "žiedas", + "1f48e": "brangakmenis", + "1f4e2": "garsiakalbio simbolis", + "1f3b6": "muzikos natos", + "1f399": "studijos mikrofonas", + "1f4fb": "radijas", + "1f3b7": "saksofonas", + "1fa97": "akordeonas", + "1f3b8": "gitara", + "1f3ba": "trimitas", + "1f3bb": "smuikas", + "1fa95": "bandža", + "1f941": "būgnas", + "260e": "telefonas", + "1f50b": "baterija", + "1f4bf": "optinis diskas", + "1f9ee": "skaitytuvai", + "1f3ac": "pliauškė", + "1f4a1": "lemputė", + "1f526": "žibintuvėlis", + "1f3ee": "raudonas popierinis žibintas", + "1f4d5": "užversta knyga", + "1f3f7": "etiketė", + "1f4b3": "kredito kortelė", + "270f": "pieštukas", + "1f58c": "teptukas", + "1f58d": "kreidelė", + "1f4cc": "smeigtukas", + "1f4ce": "sąvaržėlė", + "1f511": "raktas", + "1fa83": "bumerangas", + "1f3f9": "lankas ir strėlė", + "2696": "svarstyklės su lėkštėmis", + "1f9f2": "magnetas", + "1f9ea": "mėgintuvėlis", + "1f9ec": "DNR", + "1f52c": "mikroskopas", + "1f52d": "teleskopas", + "1f4e1": "palydovinė antena", + "1fa91": "kėdė", + "1f9f9": "šluota", + "1f5ff": "moai" + }, + "mk": { + "1f47d": "вонземјанин", + "1f916": "робот", + "1f9e0": "мозок", + "1f441": "око", + "1f9d9": "магичар", + "1f9da": "самовила", + "1f9dc": "морско лице", + "1f435": "глава на мајмун", + "1f9a7": "орангутан", + "1f436": "глава на куче", + "1f43a": "волк", + "1f98a": "лисица", + "1f99d": "ракун", + "1f431": "глава на мачка", + "1f981": "лав", + "1f42f": "глава на тигар", + "1f434": "глава на коњ", + "1f984": "еднорог", + "1f993": "зебра", + "1f98c": "елен", + "1f42e": "глава на крава", + "1f437": "глава на прасе", + "1f417": "дива свиња", + "1f42a": "камила", + "1f999": "лама", + "1f992": "жирафа", + "1f418": "слон", + "1f9a3": "мамут", + "1f98f": "носорог", + "1f42d": "глава на глушец", + "1f430": "глава на зајак", + "1f43f": "верверица", + "1f994": "еж", + "1f987": "лилјак", + "1f43b": "мечка", + "1f428": "коала", + "1f9a5": "мрзливец", + "1f9a6": "видра", + "1f998": "кенгур", + "1f425": "пиле свртено нанапред", + "1f426": "птица", + "1f54a": "гулабица", + "1f986": "патка", + "1f989": "був", + "1f9a4": "додо", + "1fab6": "пердув", + "1f9a9": "фламинго", + "1f99a": "паун", + "1f99c": "папагал", + "1f40a": "крокодил", + "1f422": "желка", + "1f98e": "гуштер", + "1f40d": "змија", + "1f432": "глава на змеј", + "1f995": "сауропод", + "1f433": "кит што прска вода", + "1f42c": "делфин", + "1f9ad": "фока", + "1f41f": "риба", + "1f420": "тропска риба", + "1f988": "ајкула", + "1f419": "октопод", + "1f41a": "спирална школка", + "1f40c": "полжав", + "1f98b": "пеперутка", + "1f41b": "бубачка", + "1f41d": "пчела", + "1f41e": "бубамара", + "1f490": "букет", + "1f339": "роза", + "1f33a": "хибискус", + "1f33b": "сончоглед", + "1f337": "лале", + "1f332": "зимзелено дрво", + "1f333": "листопадно дрво", + "1f334": "палма", + "1f335": "кактус", + "1f33f": "билка", + "1f341": "јаворов лист", + "1f344": "печурка", + "1f347": "грозје", + "1f348": "диња", + "1f349": "лубеница", + "1f34a": "мандарина", + "1f34b": "лимон", + "1f34c": "банана", + "1f34d": "ананас", + "1f96d": "манго", + "1f34f": "зелено јаболко", + "1f350": "круша", + "1f351": "праска", + "1f352": "цреши", + "1f353": "јагода", + "1fad0": "боровинки", + "1f95d": "киви", + "1f345": "домат", + "1fad2": "маслинка", + "1f965": "кокосов орев", + "1f951": "авокадо", + "1f346": "модар патлиџан", + "1f955": "морков", + "1f33d": "клас пченка", + "1f336": "лута пиперка", + "1f96c": "зелени листови", + "1f966": "брокола", + "1f9c5": "кромид", + "1f95c": "кикиритки", + "1f950": "кроасан", + "1f956": "багет", + "1f968": "перек", + "1f96f": "ѓеврек", + "1f95e": "палачинки", + "1f9c7": "вафла", + "1f354": "хамбургер", + "1f355": "пица", + "1f32d": "хот дог", + "1f32e": "тако", + "1f37f": "пуканки", + "1f980": "рак", + "1f99e": "јастог", + "1f368": "сладолед", + "1f369": "крофна", + "1f36a": "колаче", + "1f382": "роденденска торта", + "1f9c1": "тортичка", + "1f36b": "чоколадо", + "1f36c": "бонбона", + "1f36d": "лижалче", + "1fad6": "чајник", + "1f9c3": "сокче во тетрапак", + "1f9c9": "мате", + "1f9ed": "компас", + "1f3d4": "планина со снежен врв", + "1f30b": "вулкан", + "1f3d5": "кампување", + "1f3dd": "пуст остров", + "1f3e1": "куќа со градина", + "26f2": "фонтана", + "1f3a0": "коњче од вртелешка", + "1f3a1": "панорамско тркало", + "1f3a2": "тобоган", + "1f488": "столб пред берберница", + "1f686": "воз", + "1f68b": "вагон на трамвај", + "1f68d": "автобус што пристигнува", + "1f695": "такси", + "1f697": "автомобил", + "1f69a": "камион за испорака", + "1f69c": "трактор", + "1f6f5": "скутер", + "1f6fa": "моторизирана рикша", + "1f6f4": "тротинет", + "1f6f9": "скејтборд", + "1f6fc": "ролшуи", + "2693": "сидро", + "26f5": "едреник", + "1f6f6": "кајак", + "1f6a4": "глисер", + "1f6a2": "брод", + "2708": "авион", + "1f681": "хеликоптер", + "1f6a0": "планинска жичарница", + "1f6f0": "сателит", + "1f680": "ракета", + "1f6f8": "летечка чинија", + "23f0": "часовник со аларм", + "1f319": "месечев срп", + "1f321": "термометар", + "2600": "сонце", + "1fa90": "планета со прстени", + "1f31f": "светлечка ѕвезда", + "1f300": "циклон", + "1f308": "виножито", + "2602": "чадор", + "2744": "снегулка", + "2604": "комета", + "1f525": "оган", + "1f4a7": "капка", + "1f30a": "бран", + "1f383": "фенер од тиква", + "2728": "светки", + "1f388": "балон", + "1f389": "прскалка со конфети", + "1f38f": "летало со крапови", + "1f380": "панделка", + "1f381": "завиткан подарок", + "1f39f": "влезни билети", + "1f3c6": "трофеј", + "26bd": "фудбалска топка", + "1f3c0": "баскет", + "1f3c8": "топка за американски фудбал", + "1f3be": "тениско топче", + "1f94f": "летечки диск", + "1f3d3": "пинг понг", + "1f3f8": "бадминтон", + "1f93f": "нуркачка маска", + "1f94c": "камен за карлинг", + "1f3af": "пикадо", + "1fa80": "јојо", + "1fa81": "летечки змеј", + "1f52e": "кристална топка", + "1f3b2": "коцка", + "1f9e9": "сложувалка", + "1f3a8": "сликарска палета", + "1f9f5": "конец", + "1f455": "маица", + "1f9e6": "чорапи", + "1f457": "фустан", + "1fa73": "шорцеви", + "1f392": "училишен ранец", + "1f45f": "патика", + "1f451": "круна", + "1f9e2": "капче", + "1f484": "кармин", + "1f48d": "прстен", + "1f48e": "скапоцен камен", + "1f4e2": "разглас", + "1f3b6": "музички ноти", + "1f399": "студиски микрофон", + "1f4fb": "радио", + "1f3b7": "саксофон", + "1fa97": "хармоника", + "1f3b8": "гитара", + "1f3ba": "труба", + "1f3bb": "виолина", + "1fa95": "бенџо", + "1f941": "тапан", + "260e": "телефон", + "1f50b": "батерија", + "1f4bf": "цд", + "1f9ee": "сметалка", + "1f3ac": "филмска клапа", + "1f4a1": "светилка", + "1f526": "батериска ламба", + "1f3ee": "црвен фенер", + "1f4d5": "затворена книга", + "1f3f7": "етикета", + "1f4b3": "кредитна картичка", + "270f": "молив", + "1f58c": "четка за боење", + "1f58d": "мрсна боица", + "1f4cc": "притискач", + "1f4ce": "спојувалка", + "1f511": "клуч", + "1fa83": "бумеранг", + "1f3f9": "лак и стрела", + "2696": "механичка вага", + "1f9f2": "магнет", + "1f9ea": "епрувета", + "1f9ec": "днк", + "1f52c": "микроскоп", + "1f52d": "телескоп", + "1f4e1": "сателитска антена", + "1fa91": "стол", + "1f9f9": "метла", + "1f5ff": "монолитни статуи" + }, + "ms": { + "1f47d": "makhluk asing", + "1f916": "robot", + "1f9e0": "otak", + "1f441": "mata", + "1f9d9": "ahli silap mata", + "1f9da": "pari-pari", + "1f9dc": "manusia duyung", + "1f435": "muka monyet", + "1f9a7": "orang utan", + "1f436": "muka anjing", + "1f43a": "serigala", + "1f98a": "rubah", + "1f99d": "rakun", + "1f431": "muka kucing", + "1f981": "singa", + "1f42f": "muka harimau", + "1f434": "muka kuda", + "1f984": "unikorn", + "1f993": "zebra", + "1f98c": "rusa", + "1f42e": "muka lembu", + "1f437": "muka khinzir", + "1f417": "babi hutan", + "1f42a": "unta", + "1f999": "llama", + "1f992": "zirafah", + "1f418": "gajah", + "1f9a3": "mamot", + "1f98f": "badak sumbu", + "1f42d": "muka tikus", + "1f430": "muka arnab", + "1f43f": "tupai tanah", + "1f994": "landak kecil", + "1f987": "kelawar", + "1f43b": "beruang", + "1f428": "koala", + "1f9a5": "sloth", + "1f9a6": "memerang", + "1f998": "kanggaru", + "1f425": "anak ayam menghadap depan", + "1f426": "burung", + "1f54a": "burung merpati", + "1f986": "itik", + "1f989": "burung hantu", + "1f9a4": "dodo", + "1fab6": "bulu pelepah", + "1f9a9": "flamingo", + "1f99a": "merak", + "1f99c": "kakak tua", + "1f40a": "buaya", + "1f422": "penyu", + "1f98e": "cicak", + "1f40d": "ular", + "1f432": "muka naga", + "1f995": "sauropod", + "1f433": "ikan paus memancutkan air", + "1f42c": "ikan lumba-lumba", + "1f9ad": "anjing laut", + "1f41f": "ikan", + "1f420": "ikan tropika", + "1f988": "jerung", + "1f419": "sotong kurita", + "1f41a": "kulit kerang berpilin", + "1f40c": "siput", + "1f98b": "rama-rama", + "1f41b": "ulat", + "1f41d": "lebah madu", + "1f41e": "kumbang kura-kura", + "1f490": "sejambak bunga", + "1f339": "bunga mawar", + "1f33a": "bunga raya", + "1f33b": "bunga matahari", + "1f337": "bunga tulip", + "1f332": "malar hijau", + "1f333": "pokok daun luruh", + "1f334": "pokok palma", + "1f335": "kaktus", + "1f33f": "herba", + "1f341": "daun mapel", + "1f344": "cendawan", + "1f347": "anggur", + "1f348": "tembikai susu", + "1f349": "tembikai", + "1f34a": "limau tangerin", + "1f34b": "lemon", + "1f34c": "pisang", + "1f34d": "nanas", + "1f96d": "mangga", + "1f34f": "epal hijau", + "1f350": "buah pear", + "1f351": "buah pic", + "1f352": "buah ceri", + "1f353": "buah strawberi", + "1fad0": "beri biru", + "1f95d": "buah kiwi", + "1f345": "tomato", + "1fad2": "buah zaitun", + "1f965": "kelapa", + "1f951": "avokado", + "1f346": "terung", + "1f955": "lobak merah", + "1f33d": "tongkol jagung", + "1f336": "cili api", + "1f96c": "sayuran hijau", + "1f966": "brokoli", + "1f9c5": "bawang", + "1f95c": "kacang tanah", + "1f950": "kroisan", + "1f956": "roti baguette", + "1f968": "pretzel", + "1f96f": "bagel", + "1f95e": "penkek", + "1f9c7": "wafel", + "1f354": "hamburger", + "1f355": "piza", + "1f32d": "hot dog", + "1f32e": "tako", + "1f37f": "bertih jagung", + "1f980": "ketam", + "1f99e": "udang karang", + "1f368": "ais krim", + "1f369": "donat", + "1f36a": "biskut", + "1f382": "kek hari jadi", + "1f9c1": "kek cawan", + "1f36b": "sekeping coklat", + "1f36c": "gula-gula", + "1f36d": "lolipop", + "1fad6": "teko teh", + "1f9c3": "minuman air kotak", + "1f9c9": "mate", + "1f9ed": "kompas", + "1f3d4": "gunung dengan puncak bersalji", + "1f30b": "gunung berapi", + "1f3d5": "berkhemah", + "1f3dd": "pulau padang pasir", + "1f3e1": "rumah dengan taman", + "26f2": "air pancut", + "1f3a0": "kuda karusel", + "1f3a1": "roda ferris", + "1f3a2": "roller coaster", + "1f488": "jalur kedai gunting rambut", + "1f686": "kereta api", + "1f68b": "gerabak trem", + "1f68d": "bas dari arah depan", + "1f695": "teksi", + "1f697": "kereta", + "1f69a": "trak penghantaran", + "1f69c": "traktor", + "1f6f5": "skuter bermotor", + "1f6fa": "lanca auto", + "1f6f4": "skuter tolak", + "1f6f9": "papan luncur", + "1f6fc": "kasut roda", + "2693": "sauh", + "26f5": "perahu layar", + "1f6f6": "kanu", + "1f6a4": "bot laju", + "1f6a2": "kapal", + "2708": "kapal terbang", + "1f681": "helikopter", + "1f6a0": "jalan kabel gunung", + "1f6f0": "satelit", + "1f680": "roket", + "1f6f8": "piring terbang", + "23f0": "jam loceng", + "1f319": "bulan sabit", + "1f321": "termometer", + "2600": "matahari", + "1fa90": "planet bergelang", + "1f31f": "bintang bersinar", + "1f300": "taufan", + "1f308": "pelangi", + "2602": "payung", + "2744": "emping salji", + "2604": "komet", + "1f525": "api", + "1f4a7": "titisan air", + "1f30a": "ombak laut", + "1f383": "tanglung labu", + "2728": "berkilauan", + "1f388": "belon", + "1f389": "pencetus bunyi parti", + "1f38f": "panji-panji kap", + "1f380": "reben", + "1f381": "bungkusan hadiah", + "1f39f": "tiket masuk", + "1f3c6": "piala", + "26bd": "bola sepak", + "1f3c0": "bola keranjang", + "1f3c8": "bola sepak amerika", + "1f3be": "tenis", + "1f94f": "cakera terbang", + "1f3d3": "ping pong", + "1f3f8": "badminton", + "1f93f": "topeng menyelam", + "1f94c": "batu curling", + "1f3af": "balingan tepat", + "1fa80": "yo-yo", + "1fa81": "layang-layang", + "1f52e": "bola kristal", + "1f3b2": "dadu permainan", + "1f9e9": "kepingan suai gambar", + "1f3a8": "palet artis", + "1f9f5": "benang", + "1f455": "kemeja-t", + "1f9e6": "stoking", + "1f457": "gaun", + "1fa73": "seluar pendek", + "1f392": "beg galas sekolah", + "1f45f": "kasut lari", + "1f451": "mahkota", + "1f9e2": "kep berbil", + "1f484": "gincu", + "1f48d": "cincin", + "1f48e": "batu permata", + "1f4e2": "corong pembesar suara", + "1f3b6": "nota-nota muzik", + "1f399": "mikrofon studio", + "1f4fb": "radio", + "1f3b7": "saksofon", + "1fa97": "akordion", + "1f3b8": "gitar", + "1f3ba": "trompet", + "1f3bb": "biola", + "1fa95": "banjo", + "1f941": "dram", + "260e": "telefon", + "1f50b": "bateri", + "1f4bf": "cakera optik", + "1f9ee": "sempua", + "1f3ac": "papan pengetap", + "1f4a1": "mentol lampu", + "1f526": "lampu suluh", + "1f3ee": "tanglung kertas merah", + "1f4d5": "buku tertutup", + "1f3f7": "label", + "1f4b3": "kad kredit", + "270f": "pensel", + "1f58c": "berus cat", + "1f58d": "krayon", + "1f4cc": "paku tekan", + "1f4ce": "klip kertas", + "1f511": "kunci", + "1fa83": "bumerang", + "1f3f9": "panah dan busur", + "2696": "neraca timbang", + "1f9f2": "magnet", + "1f9ea": "tabung uji", + "1f9ec": "dna", + "1f52c": "mikroskop", + "1f52d": "teleskop", + "1f4e1": "antena satelit", + "1fa91": "kerusi", + "1f9f9": "penyapu", + "1f5ff": "moyai" + }, + "my": { + "1f47d": "ဂြိုဟ်သား", + "1f916": "စက်ရုပ် မျက်နှာ", + "1f9e0": "ဦးနှောက်", + "1f441": "မျက်လုံး", + "1f9d9": "မှော်ဆရာ", + "1f9da": "နတ်သမီး", + "1f9dc": "ရေလူ", + "1f435": "မျောက်ရုပ်", + "1f9a7": "အိုရန်အူတန်", + "1f436": "ခွေးရုပ်", + "1f43a": "ဝံပုလွေရုပ်", + "1f98a": "မြေခွေးရုပ်", + "1f99d": "ရက်ကွန်းဝံ", + "1f431": "ကြောင်ရုပ်", + "1f981": "ခြင်္သေ့ရုပ်", + "1f42f": "ကျားရုပ်", + "1f434": "မြင်းရုပ်", + "1f984": "ချိုတစ်ချောင်းမြင်းရုပ်", + "1f993": "မြင်းကျား", + "1f98c": "သမင်", + "1f42e": "နွားမရုပ်", + "1f437": "ဝက်ရုပ်", + "1f417": "တောဝက်", + "1f42a": "ကုလားအုတ်", + "1f999": "လာမာ ကုလားအုတ်", + "1f992": "သစ်ကုလားအုတ်", + "1f418": "ဆင်", + "1f9a3": "ရှေးဆင်", + "1f98f": "ကြံ့", + "1f42d": "ကြွက် မျက်နှာ", + "1f430": "ယုန်ရုပ်", + "1f43f": "ကျောရိုးတွင် အဖြူအနက်စင်းပါ ရှဥ့်ငယ်တမျိုး", + "1f994": "ဖြူငယ်", + "1f987": "လင်းနို့", + "1f43b": "ဝက်ဝံရုပ်", + "1f428": "ကိုအာလာ", + "1f9a5": "မျောက်မောင်းမ", + "1f9a6": "ဖျံ", + "1f998": "သားပိုက်ကောင်", + "1f425": "ရှေ့သို့မျက်နှာမူထားသည့် ကြက်ပေါက်စ", + "1f426": "ငှက်", + "1f54a": "ချိုးငှက်", + "1f986": "ဘဲ", + "1f989": "ဇီးကွက်", + "1f9a4": "ဒိုဒို", + "1fab6": "အတောင်", + "1f9a9": "ကြိုးကြာနီ", + "1f99a": "ဒေါင်း", + "1f99c": "ကြက်တူရွေး", + "1f40a": "မိကျောင်း", + "1f422": "လိပ်", + "1f98e": "အိမ်မြှောင်", + "1f40d": "မြွေ", + "1f432": "နဂါးရုပ်", + "1f995": "ဆော်ရိုပေါ့ဒ်", + "1f433": "ရေမှုတ်ထုတ်နေသည့် ဝေလငါး", + "1f42c": "လင်းပိုင်", + "1f9ad": "ပင်လယ်ဖျံ", + "1f41f": "ငါး", + "1f420": "အပူပိုင်း ငါး", + "1f988": "ငါးမန်း", + "1f419": "ဘဝဲ", + "1f41a": "ခရုခွံ", + "1f40c": "ခရု", + "1f98b": "လိပ်ပြာ", + "1f41b": "ပိုးကောင်ကလေး", + "1f41d": "ပျား", + "1f41e": "ပိုးတောင်မာ", + "1f490": "ပန်းစည်း", + "1f339": "နှင်းဆီပန်း", + "1f33a": "ခေါင်ရန်းပန်း", + "1f33b": "နေကြာပန်း", + "1f337": "ကျူးလစ်ပန်း", + "1f332": "အမြဲစိမ်း သစ်ပင်", + "1f333": "ရွက်ပြတ်ပင်", + "1f334": "ထန်းပင်", + "1f335": "ရှားစောင်းပင်", + "1f33f": "ဆေးဖက်ဝင်အပင်", + "1f341": "မေပယ်ရွက်", + "1f344": "မှို", + "1f347": "စပျစ်သီး", + "1f348": "သခွားမွှေး", + "1f349": "ဖရဲသီး", + "1f34a": "အခွံပွလိမ္မော်သီး", + "1f34b": "ရှောက်သီး", + "1f34c": "ငှက်ပျောသီး", + "1f34d": "နာနတ်သီး", + "1f96d": "သရက်သီး", + "1f34f": "ပန်းသီးစိမ်း", + "1f350": "သစ်တော်သီး", + "1f351": "မက်မွန်သီး", + "1f352": "ချယ်ရီသီးများ", + "1f353": "စတော်ဘယ်ရီ", + "1fad0": "ဘလူးဘယ်ရီ", + "1f95d": "ကီဝီသီး", + "1f345": "ခရမ်းချဉ်သီး", + "1fad2": "သံလွင်", + "1f965": "အုန်းသီး", + "1f951": "ထောပတ်သီး", + "1f346": "ခရမ်းသီး", + "1f955": "မုန်လာဥ", + "1f33d": "ပြောင်းနှံ", + "1f336": "ငရုတ်သီး", + "1f96c": "အရွက်ဖားဖား သစ်ရွက်စိမ်း", + "1f966": "ပန်းဂေါ်ဖီစိမ်း", + "1f9c5": "ကြက်သွန်နီ", + "1f95c": "မြေပဲ", + "1f950": "လခြမ်းကွေးပေါင်မုန့်", + "1f956": "ပြင်သစ်ပေါင်မုန့်", + "1f968": "မုန့်ကြိုးလိမ်", + "1f96f": "ပေါင်မုန့်အကွင်း", + "1f95e": "မုန့်အိုးကင်းကြော်", + "1f9c7": "ဒေါင်းဖန်ဝါ မုန့်", + "1f354": "ဟမ်ဘာဂါ", + "1f355": "ပီဇာ", + "1f32d": "ဟော့ဒေါ့", + "1f32e": "တာကို", + "1f37f": "ပြောင်းဖူးပေါက်ပေါက်", + "1f980": "ကဏန်း", + "1f99e": "ကျောက်ပုစွန်", + "1f368": "ရေခဲမုန့်", + "1f369": "ဒိုးနတ်", + "1f36a": "ကွတ်ကီး", + "1f382": "မွေးနေ့ ကိတ်မုန့်", + "1f9c1": "ကြက်ဥမုန့်", + "1f36b": "ချောကလက် အချောင်း", + "1f36c": "သကြားလုံး", + "1f36d": "ချိုချဉ်ပလုတ်တုတ်", + "1fad6": "ကရား", + "1f9c3": "အဖျော်ရေ ဘူး", + "1f9c9": "ချီမာရအို", + "1f9ed": "သံလိုက်အိမ်မြှောင်", + "1f3d4": "ဆီးနှင်းဖုံးနေသည့် တောင်", + "1f30b": "မီးတောင်", + "1f3d5": "စခန်းချနေခြင်း", + "1f3dd": "လူသူမဲ့ကျွန်း", + "1f3e1": "ပန်းခြံနှင့် အိမ်", + "26f2": "အလှပြ ရေပန်း", + "1f3a0": "ချားရဟတ် မြင်း", + "1f3a1": "ချားရဟတ်", + "1f3a2": "သည်းဖိုရထား", + "1f488": "ဆံပင်ညှပ်ဆိုင် တိုင်", + "1f686": "ရထား", + "1f68b": "ဓာတ်ရထားတွဲ", + "1f68d": "လာနေသည့် ဘတ်စ်ကား", + "1f695": "တက်ကစီ", + "1f697": "မော်တော်ကား", + "1f69a": "ပစ္စည်းပို့သည့် ထရပ်ကား", + "1f69c": "လယ်ထွန်စက်", + "1f6f5": "မော်တာစက်တပ် စကူတာ", + "1f6fa": "သုံးဘီး", + "1f6f4": "စကူတာ", + "1f6f9": "စကိတ်လျှောပြား", + "1f6fc": "ရိုလာ စကိတ်", + "2693": "ကျောက်ဆူး", + "26f5": "ရွက်လှေ", + "1f6f6": "ကနူး", + "1f6a4": "အမြန်စက်လှေ", + "1f6a2": "သင်္ဘော", + "2708": "လေယာဉ်", + "1f681": "ရဟတ်ယာဉ်", + "1f6a0": "တောင်တက် ဓာတ်ကြိုးရထားလမ်း", + "1f6f0": "ဂြိုဟ်တု", + "1f680": "ဒုံးယာဉ်", + "1f6f8": "ပန်းကန်ပြားပျံ", + "23f0": "နှိုးစက်နာရီ", + "1f319": "လခြမ်း", + "1f321": "သာမိုမီတာ", + "2600": "နေ", + "1fa90": "ကွင်းပါရှိသည့် ဂြိုဟ်", + "1f31f": "တောက်ပသည့် ကြယ်", + "1f300": "ဆိုင်ကလုန်း", + "1f308": "သက်တံ", + "2602": "ထီး", + "2744": "နှင်းပွင့်", + "2604": "ကြယ်တံခွန်", + "1f525": "မီး", + "1f4a7": "အစက်ကလေး", + "1f30a": "ရေလှိုင်း", + "1f383": "ဖရုံသီး မီးအိမ်", + "2728": "မီးပွင့်များ", + "1f388": "လေပူဖောင်း", + "1f389": "ပါတီဗြောက်အိုး", + "1f38f": "ငါးကြင်း တံခွန်", + "1f380": "ဖဲကြိုး", + "1f381": "ထုပ်ပိုးထားသည့် လက်ဆောင်", + "1f39f": "ဝင်ခွင့် လက်မှတ်များ", + "1f3c6": "ဖလားဆု", + "26bd": "ဘောလုံး", + "1f3c0": "ဘတ်စကက်ဘော", + "1f3c8": "အမေရိကန် ဘောလုံး", + "1f3be": "တင်းနစ်", + "1f94f": "ချပ်ပြားဝိုင်း ပစ်", + "1f3d3": "စားပွဲတင် တင်းနစ်", + "1f3f8": "ကြက်တောင်ရိုက်ခြင်း", + "1f93f": "ရေငုပ် မျက်နှာဖုံး", + "1f94c": "ရေခဲပြင်ကျောက်ပြားဝိုင်း", + "1f3af": "ဗဟိုချက်ထိမှန်ခြင်း", + "1fa80": "ယိုယို", + "1fa81": "စွန်", + "1f52e": "ကသိုဏ်းဖန်လုံး", + "1f3b2": "အန်စာတုံး", + "1f9e9": "ဂျစ်စော အပိုင်းအစ", + "1f3a8": "ဆေးစပ်ရာ အပြား", + "1f9f5": "အပ်ချည်", + "1f455": "တီရှပ်", + "1f9e6": "ခြေအိတ်", + "1f457": "ဝတ်စုံ", + "1fa73": "ဘောင်းဘီတို", + "1f392": "ကျောင်းသား ကျောပိုးအိတ်", + "1f45f": "အပြေး ဖိနပ်", + "1f451": "သရဖူ", + "1f9e2": "ကက်ဦးထုတ်", + "1f484": "နှုတ်ခမ်းနီ", + "1f48d": "လက်စွပ်", + "1f48e": "ကျောက်မျက် ရတနာ", + "1f4e2": "အသံချဲ့စက်", + "1f3b6": "ဂီတ သင်္ကေတများ", + "1f399": "စတူဒီယို မိုက်ကရိုဖုန်း", + "1f4fb": "ရေဒီယို", + "1f3b7": "ဆက်ဆိုဖုန်း", + "1fa97": "အကော်ဒီယံ", + "1f3b8": "ဂစ်တာ", + "1f3ba": "ခရာ", + "1f3bb": "တယော", + "1fa95": "ဘင်ဂျို", + "1f941": "ဗုံ", + "260e": "တယ်လီဖုန်း", + "1f50b": "ဘက်ထရီ", + "1f4bf": "အလင်းသုံးဒစ်", + "1f9ee": "ပေသီးတွက်ခုံ", + "1f3ac": "ရုပ်ရှင် ကလက်ဘုတ်", + "1f4a1": "မီးလုံး", + "1f526": "ဓာတ်မီး", + "1f3ee": "စက္ကူမီးအိမ် အနီ", + "1f4d5": "ပိတ်ထားသည့် စာအုပ်", + "1f3f7": "တံဆိပ်", + "1f4b3": "ခရက်ဒစ်ကတ်", + "270f": "ခဲတံ", + "1f58c": "စုတ်တံ", + "1f58d": "ရောင်စုံဖယောင်းခဲတံ", + "1f4cc": "ဖိထိုးရသည့် ပင်အပ်", + "1f4ce": "စက္ကူညှပ်", + "1f511": "သော့", + "1fa83": "ထိကပြန်", + "1f3f9": "လေးနှင့် မြား", + "2696": "ချိန်ခွင်", + "1f9f2": "သံလိုက်", + "1f9ea": "ဖန်ပြွန်", + "1f9ec": "မျိုးရိုးဗီဇ", + "1f52c": "အဏုကြည့်မှန်ပြောင်း", + "1f52d": "အဝေးကြည့်မှန်ပြောင်း", + "1f4e1": "ဂြိုဟ်တု စလောင်း", + "1fa91": "ကုလားထိုင်", + "1f9f9": "တံမြက်စည်း", + "1f5ff": "မိုအိုင်" + }, + "nb": { + "1f47d": "romvesen", + "1f916": "robot", + "1f9e0": "hjerne", + "1f441": "øye", + "1f9d9": "trollperson", + "1f9da": "fe", + "1f9dc": "havperson", + "1f435": "apefjes", + "1f9a7": "orangutang", + "1f436": "hundefjes", + "1f43a": "ulv", + "1f98a": "rev", + "1f99d": "vaskebjørn", + "1f431": "kattefjes", + "1f981": "løve", + "1f42f": "tigerfjes", + "1f434": "hestefjes", + "1f984": "enhjørning", + "1f993": "sebra", + "1f98c": "hjort", + "1f42e": "kufjes", + "1f437": "grisefjes", + "1f417": "villsvin", + "1f42a": "dromedar", + "1f999": "lama", + "1f992": "sjiraff", + "1f418": "elefant", + "1f9a3": "mammut", + "1f98f": "neshorn", + "1f42d": "musefjes", + "1f430": "kaninfjes", + "1f43f": "ekorn", + "1f994": "pinnsvin", + "1f987": "flaggermus", + "1f43b": "bjørn", + "1f428": "koala", + "1f9a5": "dovendyr", + "1f9a6": "oter", + "1f998": "kenguru", + "1f425": "kylling forfra", + "1f426": "fugl", + "1f54a": "fredsdue", + "1f986": "and", + "1f989": "ugle", + "1f9a4": "dronte", + "1fab6": "fjær", + "1f9a9": "flamingo", + "1f99a": "påfugl", + "1f99c": "papegøye", + "1f40a": "krokodille", + "1f422": "skilpadde", + "1f98e": "firfisle", + "1f40d": "slange", + "1f432": "dragefjes", + "1f995": "sauropod", + "1f433": "sprutende hval", + "1f42c": "delfin", + "1f9ad": "sel", + "1f41f": "fisk", + "1f420": "tropisk fisk", + "1f988": "hai", + "1f419": "blekksprut", + "1f41a": "spiralskjell", + "1f40c": "snegle", + "1f98b": "sommerfugl", + "1f41b": "insekt", + "1f41d": "honningbie", + "1f41e": "marihøne", + "1f490": "bukett", + "1f339": "rose", + "1f33a": "hibiskus", + "1f33b": "solsikke", + "1f337": "tulipan", + "1f332": "bartre", + "1f333": "løvtre", + "1f334": "palme", + "1f335": "kaktus", + "1f33f": "urteblader", + "1f341": "lønneblad", + "1f344": "sopp", + "1f347": "druer", + "1f348": "melon", + "1f349": "vannmelon", + "1f34a": "mandarin", + "1f34b": "sitron", + "1f34c": "banan", + "1f34d": "ananas", + "1f96d": "mango", + "1f34f": "grønt eple", + "1f350": "pære", + "1f351": "fersken", + "1f352": "kirsebær", + "1f353": "jordbær", + "1fad0": "blåbær", + "1f95d": "kiwi", + "1f345": "tomat", + "1fad2": "oliven", + "1f965": "kokosnøtt", + "1f951": "avokado", + "1f346": "aubergine", + "1f955": "gulrot", + "1f33d": "maiskolbe", + "1f336": "rød chili", + "1f96c": "bladgrønnsaker", + "1f966": "brokkoli", + "1f9c5": "løk", + "1f95c": "peanøtter", + "1f950": "croissant", + "1f956": "bagett", + "1f968": "saltkringle", + "1f96f": "bagel", + "1f95e": "pannekaker", + "1f9c7": "belgisk vaffel", + "1f354": "hamburger", + "1f355": "pizzastykke", + "1f32d": "pølse med brød", + "1f32e": "taco", + "1f37f": "popkorn", + "1f980": "krabbe", + "1f99e": "hummer", + "1f368": "iskrem", + "1f369": "donut", + "1f36a": "kjeks", + "1f382": "bursdagskake", + "1f9c1": "cupcake", + "1f36b": "sjokoladeplate", + "1f36c": "godteri", + "1f36d": "kjærlighet på pinne", + "1fad6": "tekanne", + "1f9c3": "drikkekartong", + "1f9c9": "mate", + "1f9ed": "kompass", + "1f3d4": "snødekt fjell", + "1f30b": "vulkan", + "1f3d5": "telttur", + "1f3dd": "øde øy", + "1f3e1": "hus med hage", + "26f2": "fontene", + "1f3a0": "karusellhest", + "1f3a1": "pariserhjul", + "1f3a2": "berg-og-dal-bane", + "1f488": "barberskilt", + "1f686": "tog", + "1f68b": "trikkevogn", + "1f68d": "motgående buss", + "1f695": "taxi", + "1f697": "bil", + "1f69a": "varebil", + "1f69c": "traktor", + "1f6f5": "scooter", + "1f6fa": "autorickshaw", + "1f6f4": "sparkesykkel", + "1f6f9": "skateboard", + "1f6fc": "rulleskøyter", + "2693": "anker", + "26f5": "seilbåt", + "1f6f6": "kano", + "1f6a4": "speedbåt", + "1f6a2": "skip", + "2708": "fly", + "1f681": "helikopter", + "1f6a0": "kabelbane", + "1f6f0": "satellitt", + "1f680": "rakett", + "1f6f8": "flygende tallerken", + "23f0": "vekkerklokke", + "1f319": "månesigd", + "1f321": "termometer", + "2600": "sol", + "1fa90": "planet med ringer", + "1f31f": "lysende stjerne", + "1f300": "syklon", + "1f308": "regnbue", + "2602": "paraply", + "2744": "snøfnugg", + "2604": "komet", + "1f525": "ild", + "1f4a7": "dråpe", + "1f30a": "bølge", + "1f383": "gresskarlykt", + "2728": "stjerner", + "1f388": "ballong", + "1f389": "smell-bon-bon", + "1f38f": "koinobori", + "1f380": "sløyfe", + "1f381": "gave", + "1f39f": "inngangsbilletter", + "1f3c6": "trofé", + "26bd": "fotball", + "1f3c0": "basketball", + "1f3c8": "amerikansk fotball", + "1f3be": "tennis", + "1f94f": "frisbee", + "1f3d3": "bordtennis", + "1f3f8": "badminton", + "1f93f": "dykkermaske", + "1f94c": "curlingstein", + "1f3af": "blink", + "1fa80": "jojo", + "1fa81": "papirdrage", + "1f52e": "krystallkule", + "1f3b2": "terning", + "1f9e9": "puslespillbrikke", + "1f3a8": "malerpalett", + "1f9f5": "tråd", + "1f455": "t-skjorte", + "1f9e6": "sokker", + "1f457": "kjole", + "1fa73": "shorts", + "1f392": "skolesekk", + "1f45f": "joggesko", + "1f451": "krone", + "1f9e2": "caps", + "1f484": "leppestift", + "1f48d": "ring", + "1f48e": "diamant", + "1f4e2": "høyttaler", + "1f3b6": "noter", + "1f399": "studiomikrofon", + "1f4fb": "radio", + "1f3b7": "saksofon", + "1fa97": "trekkspill", + "1f3b8": "gitar", + "1f3ba": "trompet", + "1f3bb": "fiolin", + "1fa95": "banjo", + "1f941": "tromme", + "260e": "telefon", + "1f50b": "batteri", + "1f4bf": "optisk plate", + "1f9ee": "kuleramme", + "1f3ac": "filmklapper", + "1f4a1": "lyspære", + "1f526": "lommelykt", + "1f3ee": "rød papirlykt", + "1f4d5": "lukket bok", + "1f3f7": "etikett", + "1f4b3": "kredittkort", + "270f": "blyant", + "1f58c": "pensel", + "1f58d": "fargestift", + "1f4cc": "stift", + "1f4ce": "binders", + "1f511": "nøkkel", + "1fa83": "bumerang", + "1f3f9": "pil og bue", + "2696": "likearmet skålvekt", + "1f9f2": "magnet", + "1f9ea": "prøverør", + "1f9ec": "dna", + "1f52c": "mikroskop", + "1f52d": "teleskop", + "1f4e1": "satellittantenne", + "1fa91": "stol", + "1f9f9": "feiekost", + "1f5ff": "moai-statue" + }, + "nl": { + "1f47d": "buitenaards wezen", + "1f916": "robot", + "1f9e0": "brein", + "1f441": "oog", + "1f9d9": "magiër", + "1f9da": "elfje", + "1f9dc": "zeemeermin", + "1f435": "apengezicht", + "1f9a7": "orang-oetang", + "1f436": "hondengezicht", + "1f43a": "wolf", + "1f98a": "vos", + "1f99d": "wasbeer", + "1f431": "kattengezicht", + "1f981": "leeuw", + "1f42f": "tijgergezicht", + "1f434": "paardengezicht", + "1f984": "eenhoorn", + "1f993": "zebra", + "1f98c": "hert", + "1f42e": "koeiengezicht", + "1f437": "varkensgezicht", + "1f417": "zwijn", + "1f42a": "dromedaris", + "1f999": "lama", + "1f992": "giraffe", + "1f418": "olifant", + "1f9a3": "mammoet", + "1f98f": "neushoorn", + "1f42d": "muizengezicht", + "1f430": "konijnengezicht", + "1f43f": "eekhoorn", + "1f994": "egel", + "1f987": "vleermuis", + "1f43b": "beer", + "1f428": "koala", + "1f9a5": "luiaard", + "1f9a6": "otter", + "1f998": "kangoeroe", + "1f425": "naar voren kijkend kuikentje", + "1f426": "vogel", + "1f54a": "duif", + "1f986": "eend", + "1f989": "uil", + "1f9a4": "dodo", + "1fab6": "veer", + "1f9a9": "flamingo", + "1f99a": "pauw", + "1f99c": "papegaai", + "1f40a": "krokodil", + "1f422": "schildpad", + "1f98e": "hagedis", + "1f40d": "slang", + "1f432": "drakengezicht", + "1f995": "sauropode", + "1f433": "spuitende walvis", + "1f42c": "dolfijn", + "1f9ad": "zeehond", + "1f41f": "vis", + "1f420": "tropische vis", + "1f988": "haai", + "1f419": "octopus", + "1f41a": "schelp", + "1f40c": "slak", + "1f98b": "vlinder", + "1f41b": "insect", + "1f41d": "honingbij", + "1f41e": "lieveheersbeestje", + "1f490": "boeket", + "1f339": "roos", + "1f33a": "hibiscus", + "1f33b": "zonnebloem", + "1f337": "tulp", + "1f332": "naaldboom", + "1f333": "loofboom", + "1f334": "palmboom", + "1f335": "cactus", + "1f33f": "kruid", + "1f341": "esdoornblad", + "1f344": "paddenstoel", + "1f347": "druiven", + "1f348": "meloen", + "1f349": "watermeloen", + "1f34a": "mandarijn", + "1f34b": "citroen", + "1f34c": "banaan", + "1f34d": "ananas", + "1f96d": "mango", + "1f34f": "groene appel", + "1f350": "peer", + "1f351": "perzik", + "1f352": "kersen", + "1f353": "aardbei", + "1fad0": "bosbessen", + "1f95d": "kiwi", + "1f345": "tomaat", + "1fad2": "olijf", + "1f965": "kokosnoot", + "1f951": "avocado", + "1f346": "aubergine", + "1f955": "wortel", + "1f33d": "maïskolf", + "1f336": "hete peper", + "1f96c": "bladgroente", + "1f966": "broccoli", + "1f9c5": "ui", + "1f95c": "pinda’s", + "1f950": "croissant", + "1f956": "stokbrood", + "1f968": "pretzel", + "1f96f": "bagel", + "1f95e": "pannenkoeken", + "1f9c7": "wafel", + "1f354": "hamburger", + "1f355": "pizzapunt", + "1f32d": "hotdog", + "1f32e": "taco", + "1f37f": "popcorn", + "1f980": "krab", + "1f99e": "kreeft", + "1f368": "ijs", + "1f369": "donut", + "1f36a": "koekje", + "1f382": "verjaardagstaart", + "1f9c1": "cupcake", + "1f36b": "chocoladereep", + "1f36c": "snoep", + "1f36d": "lolly", + "1fad6": "theepot", + "1f9c3": "pakje drinken", + "1f9c9": "maté", + "1f9ed": "kompas", + "1f3d4": "berg met besneeuwde toppen", + "1f30b": "vulkaan", + "1f3d5": "kamperen", + "1f3dd": "onbewoond eiland", + "1f3e1": "huis met tuin", + "26f2": "fontein", + "1f3a0": "draaimolenpaard", + "1f3a1": "reuzenrad", + "1f3a2": "achtbaan", + "1f488": "kapperspaal", + "1f686": "trein", + "1f68b": "tramwagon", + "1f68d": "naderende bus", + "1f695": "taxi", + "1f697": "auto", + "1f69a": "bestelbus", + "1f69c": "tractor", + "1f6f5": "scooter", + "1f6fa": "riksja", + "1f6f4": "step", + "1f6f9": "skateboard", + "1f6fc": "rolschaats", + "2693": "anker", + "26f5": "zeilboot", + "1f6f6": "kano", + "1f6a4": "speedboot", + "1f6a2": "schip", + "2708": "vliegtuig", + "1f681": "helikopter", + "1f6a0": "bergkabelbaan", + "1f6f0": "satelliet", + "1f680": "raket", + "1f6f8": "vliegende schotel", + "23f0": "wekker", + "1f319": "maansikkel", + "1f321": "thermometer", + "2600": "zon", + "1fa90": "planeet met ringen", + "1f31f": "stralende ster", + "1f300": "cycloon", + "1f308": "regenboog", + "2602": "paraplu", + "2744": "sneeuwvlok", + "2604": "komeet", + "1f525": "vuur", + "1f4a7": "druppel", + "1f30a": "golf", + "1f383": "halloweenlantaarn", + "2728": "sterretjes", + "1f388": "ballon", + "1f389": "feestknaller", + "1f38f": "karperslinger", + "1f380": "strik", + "1f381": "ingepakt cadeau", + "1f39f": "entreekaartjes", + "1f3c6": "trofee", + "26bd": "voetbal", + "1f3c0": "basketbal", + "1f3c8": "american football", + "1f3be": "tennis", + "1f94f": "frisbee", + "1f3d3": "pingpong", + "1f3f8": "badminton", + "1f93f": "duikbril", + "1f94c": "curlingsteen", + "1f3af": "directe treffer", + "1fa80": "jojo", + "1fa81": "vlieger", + "1f52e": "kristallen bol", + "1f3b2": "dobbelsteen", + "1f9e9": "puzzelstukje", + "1f3a8": "schilderspalet", + "1f9f5": "garen", + "1f455": "T-shirt", + "1f9e6": "sokken", + "1f457": "jurk", + "1fa73": "korte broek", + "1f392": "schooltas", + "1f45f": "sportschoen", + "1f451": "kroon", + "1f9e2": "pet", + "1f484": "lippenstift", + "1f48d": "ring", + "1f48e": "edelsteen", + "1f4e2": "luidspreker", + "1f3b6": "muzieknoten", + "1f399": "studiomicrofoon", + "1f4fb": "radio", + "1f3b7": "saxofoon", + "1fa97": "accordeon", + "1f3b8": "gitaar", + "1f3ba": "trompet", + "1f3bb": "viool", + "1fa95": "banjo", + "1f941": "trommel", + "260e": "telefoon", + "1f50b": "batterij", + "1f4bf": "optische schijf", + "1f9ee": "abacus", + "1f3ac": "klapbord", + "1f4a1": "gloeilamp", + "1f526": "zaklamp", + "1f3ee": "rode papieren lantaarn", + "1f4d5": "gesloten boek", + "1f3f7": "label", + "1f4b3": "creditcard", + "270f": "potlood", + "1f58c": "kwast", + "1f58d": "krijtje", + "1f4cc": "punaise", + "1f4ce": "paperclip", + "1f511": "sleutel", + "1fa83": "boemerang", + "1f3f9": "pijl en boog", + "2696": "weegschaal", + "1f9f2": "magneet", + "1f9ea": "reageerbuis", + "1f9ec": "DNA", + "1f52c": "microscoop", + "1f52d": "telescoop", + "1f4e1": "satellietschotel", + "1fa91": "hoge stoel", + "1f9f9": "bezem", + "1f5ff": "moai-beeld" + }, + "pl": { + "1f47d": "ufoludek", + "1f916": "głowa robota", + "1f9e0": "mózg", + "1f441": "oko", + "1f9d9": "mag", + "1f9da": "wróżka", + "1f9dc": "syrena", + "1f435": "głowa małpy", + "1f9a7": "orangutan", + "1f436": "głowa psa", + "1f43a": "głowa wilka", + "1f98a": "głowa lisa", + "1f99d": "szop", + "1f431": "głowa kota", + "1f981": "głowa lwa", + "1f42f": "głowa tygrysa", + "1f434": "głowa konia", + "1f984": "głowa jednorożca", + "1f993": "zebra", + "1f98c": "jeleń", + "1f42e": "głowa krowy", + "1f437": "głowa świni", + "1f417": "dzik", + "1f42a": "wielbłąd", + "1f999": "lama", + "1f992": "żyrafa", + "1f418": "słoń", + "1f9a3": "mamut", + "1f98f": "nosorożec", + "1f42d": "głowa myszy", + "1f430": "głowa królika", + "1f43f": "pręgowiec", + "1f994": "jeż", + "1f987": "nietoperz", + "1f43b": "głowa niedźwiedzia", + "1f428": "koala", + "1f9a5": "leniwiec", + "1f9a6": "wydra", + "1f998": "kangur", + "1f425": "kurczątko od przodu", + "1f426": "ptak", + "1f54a": "gołąb", + "1f986": "kaczka", + "1f989": "sowa", + "1f9a4": "dodo", + "1fab6": "pióro", + "1f9a9": "flaming", + "1f99a": "paw", + "1f99c": "papuga", + "1f40a": "krokodyl", + "1f422": "żółw", + "1f98e": "jaszczurka", + "1f40d": "wąż", + "1f432": "głowa smoka", + "1f995": "zauropod", + "1f433": "wieloryb tryskający wodą", + "1f42c": "delfin", + "1f9ad": "foka", + "1f41f": "ryba", + "1f420": "ryba tropikalna", + "1f988": "rekin", + "1f419": "ośmiornica", + "1f41a": "muszla spiralna", + "1f40c": "ślimak", + "1f98b": "motyl", + "1f41b": "gąsienica", + "1f41d": "pszczoła", + "1f41e": "biedronka", + "1f490": "bukiet kwiatów", + "1f339": "róża", + "1f33a": "kwiat hibiskusa", + "1f33b": "słonecznik", + "1f337": "tulipan", + "1f332": "wiecznie zielone drzewo", + "1f333": "drzewo liściaste", + "1f334": "palma", + "1f335": "kaktus", + "1f33f": "zioło", + "1f341": "liść klonowy", + "1f344": "grzyb", + "1f347": "winogrona", + "1f348": "melon", + "1f349": "arbuz", + "1f34a": "mandarynka", + "1f34b": "cytryna", + "1f34c": "banan", + "1f34d": "ananas", + "1f96d": "mango", + "1f34f": "zielone jabłko", + "1f350": "gruszka", + "1f351": "brzoskwinia", + "1f352": "wiśnie", + "1f353": "truskawka", + "1fad0": "borówka amerykańska", + "1f95d": "owoc kiwi", + "1f345": "pomidor", + "1fad2": "oliwka", + "1f965": "kokos", + "1f951": "awokado", + "1f346": "bakłażan", + "1f955": "marchew", + "1f33d": "kolba kukurydzy", + "1f336": "ostra papryka", + "1f96c": "zielenina liściasta", + "1f966": "brokuł", + "1f9c5": "cebula", + "1f95c": "orzeszki ziemne", + "1f950": "rogalik", + "1f956": "bagietka", + "1f968": "precel", + "1f96f": "bajgiel", + "1f95e": "naleśniki", + "1f9c7": "gofr", + "1f354": "hamburger", + "1f355": "pizza", + "1f32d": "hot dog", + "1f32e": "taco", + "1f37f": "popcorn", + "1f980": "krab", + "1f99e": "homar", + "1f368": "lody", + "1f369": "pączek z dziurką", + "1f36a": "ciastko", + "1f382": "tort urodzinowy", + "1f9c1": "babeczka", + "1f36b": "tabliczka czekolady", + "1f36c": "cukierek", + "1f36d": "lizak", + "1fad6": "czajniczek", + "1f9c3": "napój w kartoniku", + "1f9c9": "yerba mate", + "1f9ed": "kompas", + "1f3d4": "góra z czapą lodową", + "1f30b": "wulkan", + "1f3d5": "kemping", + "1f3dd": "bezludna wyspa", + "1f3e1": "dom z ogrodem", + "26f2": "fontanna", + "1f3a0": "koń z karuzeli", + "1f3a1": "diabelski młyn", + "1f3a2": "kolejka górska", + "1f488": "słup fryzjerski", + "1f686": "pociąg", + "1f68b": "wagon tramwajowy", + "1f68d": "nadjeżdżający autobus", + "1f695": "taksówka", + "1f697": "samochód", + "1f69a": "samochód dostawczy", + "1f69c": "ciągnik", + "1f6f5": "skuter", + "1f6fa": "autoriksza", + "1f6f4": "hulajnoga", + "1f6f9": "deskorolka", + "1f6fc": "wrotka", + "2693": "kotwica", + "26f5": "żaglówka", + "1f6f6": "kajak", + "1f6a4": "ścigacz wodny", + "1f6a2": "statek", + "2708": "samolot", + "1f681": "helikopter", + "1f6a0": "górska kolej linowa", + "1f6f0": "satelita", + "1f680": "rakieta", + "1f6f8": "latający talerz", + "23f0": "budzik", + "1f319": "półksiężyc", + "1f321": "termometr", + "2600": "słońce", + "1fa90": "planeta z pierścieniami", + "1f31f": "błyszcząca gwiazda", + "1f300": "cyklon", + "1f308": "tęcza", + "2602": "parasol", + "2744": "płatek śniegu", + "2604": "kometa", + "1f525": "ogień", + "1f4a7": "kropla", + "1f30a": "fala", + "1f383": "dynia na halloween", + "2728": "gwiazdki", + "1f388": "balon", + "1f389": "tuba z konfetti", + "1f38f": "flaga w kształcie karpia", + "1f380": "wstążka", + "1f381": "zapakowany prezent", + "1f39f": "bilety wstępu", + "1f3c6": "puchar", + "26bd": "piłka nożna", + "1f3c0": "koszykówka", + "1f3c8": "futbol amerykański", + "1f3be": "tenis", + "1f94f": "frisbee", + "1f3d3": "tenis stołowy", + "1f3f8": "badminton", + "1f93f": "maska do nurkowania", + "1f94c": "kamień do curlingu", + "1f3af": "strzał w 10", + "1fa80": "jojo", + "1fa81": "latawiec", + "1f52e": "kryształowa kula", + "1f3b2": "kostka do gry", + "1f9e9": "element układanki", + "1f3a8": "paleta malarska", + "1f9f5": "nić", + "1f455": "koszulka", + "1f9e6": "skarpetki", + "1f457": "sukienka", + "1fa73": "szorty", + "1f392": "tornister", + "1f45f": "but do biegania", + "1f451": "korona", + "1f9e2": "bejsbolówka", + "1f484": "szminka", + "1f48d": "pierścionek", + "1f48e": "kamień szlachetny", + "1f4e2": "głośnik", + "1f3b6": "nuty", + "1f399": "mikrofon studyjny", + "1f4fb": "radio", + "1f3b7": "saksofon", + "1fa97": "akordeon", + "1f3b8": "gitara", + "1f3ba": "trąbka", + "1f3bb": "skrzypce", + "1fa95": "banjo", + "1f941": "bęben", + "260e": "telefon", + "1f50b": "bateria", + "1f4bf": "dysk optyczny", + "1f9ee": "liczydło", + "1f3ac": "klaps", + "1f4a1": "żarówka", + "1f526": "latarka", + "1f3ee": "czerwony lampion", + "1f4d5": "zamknięta książka", + "1f3f7": "przywieszka do kluczy", + "1f4b3": "karta kredytowa", + "270f": "ołówek", + "1f58c": "pędzel", + "1f58d": "kredka", + "1f4cc": "pinezka", + "1f4ce": "spinacz", + "1f511": "klucz", + "1fa83": "bumerang", + "1f3f9": "łuk i strzała", + "2696": "waga szalkowa", + "1f9f2": "magnes", + "1f9ea": "probówka", + "1f9ec": "dna", + "1f52c": "mikroskop", + "1f52d": "teleskop", + "1f4e1": "antena satelitarna", + "1fa91": "krzesło", + "1f9f9": "miotła", + "1f5ff": "moai" + }, + "pt": { + "1f47d": "alienígena", + "1f916": "rosto de robô", + "1f9e0": "cérebro", + "1f441": "olho", + "1f9d9": "mago", + "1f9da": "fada", + "1f9dc": "pessoa sereia", + "1f435": "rosto de macaco", + "1f9a7": "orangotango", + "1f436": "rosto de cachorro", + "1f43a": "rosto de lobo", + "1f98a": "rosto de raposa", + "1f99d": "guaxinim", + "1f431": "rosto de gato", + "1f981": "rosto de leão", + "1f42f": "rosto de tigre", + "1f434": "rosto de cavalo", + "1f984": "rosto de unicórnio", + "1f993": "zebra", + "1f98c": "cervo", + "1f42e": "rosto de vaca", + "1f437": "rosto de porco", + "1f417": "javali", + "1f42a": "camelo", + "1f999": "lhama", + "1f992": "girafa", + "1f418": "elefante", + "1f9a3": "mamute", + "1f98f": "rinoceronte", + "1f42d": "rosto de camundongo", + "1f430": "rosto de coelho", + "1f43f": "esquilo", + "1f994": "porco-espinho", + "1f987": "morcego", + "1f43b": "rosto de urso", + "1f428": "coala", + "1f9a5": "preguiça", + "1f9a6": "lontra", + "1f998": "canguru", + "1f425": "pintinho de frente", + "1f426": "pássaro", + "1f54a": "pomba branca", + "1f986": "pato", + "1f989": "coruja", + "1f9a4": "dodô", + "1fab6": "pena", + "1f9a9": "flamingo", + "1f99a": "pavão", + "1f99c": "papagaio", + "1f40a": "crocodilo", + "1f422": "tartaruga", + "1f98e": "lagartixa", + "1f40d": "cobra", + "1f432": "rosto de dragão", + "1f995": "saurópode", + "1f433": "baleia esguichando água", + "1f42c": "golfinho", + "1f9ad": "foca", + "1f41f": "peixe", + "1f420": "peixe tropical", + "1f988": "tubarão", + "1f419": "polvo", + "1f41a": "caramujo", + "1f40c": "caracol", + "1f98b": "borboleta", + "1f41b": "inseto", + "1f41d": "abelha", + "1f41e": "joaninha", + "1f490": "buquê", + "1f339": "rosa", + "1f33a": "hibisco", + "1f33b": "girassol", + "1f337": "tulipa", + "1f332": "conífera", + "1f333": "árvore caidiça", + "1f334": "palmeira", + "1f335": "cacto", + "1f33f": "erva", + "1f341": "folha de bordo", + "1f344": "cogumelo", + "1f347": "uvas", + "1f348": "melão", + "1f349": "melancia", + "1f34a": "tangerina", + "1f34b": "limão", + "1f34c": "banana", + "1f34d": "abacaxi", + "1f96d": "manga", + "1f34f": "maçã verde", + "1f350": "pera", + "1f351": "pêssego", + "1f352": "cereja", + "1f353": "morango", + "1fad0": "mirtilos", + "1f95d": "kiwi", + "1f345": "tomate", + "1fad2": "azeitona", + "1f965": "coco", + "1f951": "abacate", + "1f346": "berinjela", + "1f955": "cenoura", + "1f33d": "milho", + "1f336": "pimenta", + "1f96c": "verdura", + "1f966": "brócolis", + "1f9c5": "cebola", + "1f95c": "amendoim", + "1f950": "croissant", + "1f956": "baguete", + "1f968": "pretzel", + "1f96f": "bagel", + "1f95e": "panquecas", + "1f9c7": "waffle", + "1f354": "hambúrguer", + "1f355": "pizza", + "1f32d": "cachorro-quente", + "1f32e": "taco", + "1f37f": "pipoca", + "1f980": "caranguejo", + "1f99e": "lagosta", + "1f368": "sorvete", + "1f369": "donut", + "1f36a": "biscoito", + "1f382": "bolo de aniversário", + "1f9c1": "cupcake", + "1f36b": "chocolate", + "1f36c": "bala", + "1f36d": "pirulito", + "1fad6": "bule", + "1f9c3": "suco de caixa", + "1f9c9": "mate", + "1f9ed": "bússola", + "1f3d4": "montanha com neve", + "1f30b": "vulcão", + "1f3d5": "acampamento", + "1f3dd": "ilha deserta", + "1f3e1": "casa com jardim", + "26f2": "fonte", + "1f3a0": "carrossel", + "1f3a1": "roda gigante", + "1f3a2": "montanha russa", + "1f488": "barbearia", + "1f686": "trem", + "1f68b": "bonde", + "1f68d": "ônibus se aproximando", + "1f695": "táxi", + "1f697": "carro", + "1f69a": "caminhão de entrega", + "1f69c": "trator", + "1f6f5": "scooter", + "1f6fa": "automóvel riquixá", + "1f6f4": "patinete", + "1f6f9": "skate", + "1f6fc": "patins de rodas", + "2693": "âncora", + "26f5": "barco a vela", + "1f6f6": "canoa", + "1f6a4": "lancha", + "1f6a2": "navio", + "2708": "avião", + "1f681": "helicóptero", + "1f6a0": "cabo suspenso usado em teleféricos nas montanhas", + "1f6f0": "satélite", + "1f680": "foguete", + "1f6f8": "disco voador", + "23f0": "despertador", + "1f319": "lua crescente", + "1f321": "termômetro", + "2600": "sol", + "1fa90": "planeta com anéis", + "1f31f": "estrela brilhante", + "1f300": "ciclone", + "1f308": "arco-íris", + "2602": "guarda-chuva", + "2744": "floco de neve", + "2604": "cometa", + "1f525": "fogo", + "1f4a7": "gota", + "1f30a": "onda", + "1f383": "abóbora de halloween", + "2728": "brilhos", + "1f388": "balão", + "1f389": "cone de festa", + "1f38f": "bandeira de carpas", + "1f380": "laço de fita", + "1f381": "presente", + "1f39f": "ingresso de cinema", + "1f3c6": "troféu", + "26bd": "bola de futebol", + "1f3c0": "bola de basquete", + "1f3c8": "bola de futebol americano", + "1f3be": "tênis", + "1f94f": "frisbee", + "1f3d3": "pingue-pongue", + "1f3f8": "badminton", + "1f93f": "máscara de mergulho", + "1f94c": "pedra de curling", + "1f3af": "no alvo", + "1fa80": "ioiô", + "1fa81": "pipa", + "1f52e": "bola de cristal", + "1f3b2": "jogo de dado", + "1f9e9": "quebra-cabeça", + "1f3a8": "paleta de tintas", + "1f9f5": "carretel", + "1f455": "camiseta", + "1f9e6": "meias", + "1f457": "vestido", + "1fa73": "shorts", + "1f392": "mochila", + "1f45f": "tênis de corrida", + "1f451": "coroa", + "1f9e2": "boné", + "1f484": "batom", + "1f48d": "anel", + "1f48e": "pedra preciosa", + "1f4e2": "buzina", + "1f3b6": "notas musicais", + "1f399": "microfone de estúdio", + "1f4fb": "rádio", + "1f3b7": "saxofone", + "1fa97": "acordeão", + "1f3b8": "guitarra", + "1f3ba": "trompete", + "1f3bb": "violino", + "1fa95": "banjo", + "1f941": "tambor", + "260e": "telefone no gancho", + "1f50b": "pilha", + "1f4bf": "cd", + "1f9ee": "ábaco", + "1f3ac": "claquete", + "1f4a1": "lâmpada", + "1f526": "lanterna", + "1f3ee": "lanterna vermelha de papel", + "1f4d5": "livro fechado", + "1f3f7": "etiqueta", + "1f4b3": "cartão de crédito", + "270f": "lápis", + "1f58c": "pincel", + "1f58d": "giz de cera", + "1f4cc": "tacha", + "1f4ce": "clipe de papel", + "1f511": "chave", + "1fa83": "bumerangue", + "1f3f9": "arco e flecha", + "2696": "balança", + "1f9f2": "ímã", + "1f9ea": "tubo de ensaio", + "1f9ec": "dna", + "1f52c": "microscópio", + "1f52d": "telescópio", + "1f4e1": "antena parabólica", + "1fa91": "cadeira", + "1f9f9": "vassoura", + "1f5ff": "moai" + }, + "ro": { + "1f47d": "extraterestru", + "1f916": "robot", + "1f9e0": "creier", + "1f441": "un ochi", + "1f9d9": "mag", + "1f9da": "zână", + "1f9dc": "persoană sirenă", + "1f435": "față de maimuță", + "1f9a7": "urangutan", + "1f436": "față de câine", + "1f43a": "lup", + "1f98a": "vulpe", + "1f99d": "raton", + "1f431": "față de pisică", + "1f981": "leu", + "1f42f": "față de tigru", + "1f434": "față de cal", + "1f984": "unicorn", + "1f993": "zebră", + "1f98c": "cerb", + "1f42e": "cap de vacă", + "1f437": "cap de porc", + "1f417": "mistreț", + "1f42a": "dromader", + "1f999": "lamă", + "1f992": "girafă", + "1f418": "elefant", + "1f9a3": "mamut", + "1f98f": "rinocer", + "1f42d": "față de șoarece", + "1f430": "față de iepure", + "1f43f": "veveriță", + "1f994": "arici", + "1f987": "liliac", + "1f43b": "urs", + "1f428": "koala", + "1f9a5": "leneș", + "1f9a6": "vidră", + "1f998": "cangur", + "1f425": "pui de găină din față", + "1f426": "pasăre", + "1f54a": "porumbiță", + "1f986": "rață", + "1f989": "bufniță", + "1f9a4": "dodo", + "1fab6": "pană", + "1f9a9": "flamingo", + "1f99a": "păun", + "1f99c": "papagal mare", + "1f40a": "crocodil", + "1f422": "broască țestoasă", + "1f98e": "șopârlă", + "1f40d": "șarpe", + "1f432": "față de dragon", + "1f995": "sauropod", + "1f433": "balenă împroșcând apă", + "1f42c": "delfin", + "1f9ad": "focă", + "1f41f": "pește", + "1f420": "pește tropical", + "1f988": "rechin", + "1f419": "caracatiță", + "1f41a": "cochilie spiralată", + "1f40c": "melc", + "1f98b": "fluture", + "1f41b": "gândac", + "1f41d": "albină", + "1f41e": "buburuză", + "1f490": "buchet de flori", + "1f339": "trandafir", + "1f33a": "hibiscus", + "1f33b": "floarea soarelui", + "1f337": "lalea", + "1f332": "arbore conifer", + "1f333": "arbore foios", + "1f334": "palmier", + "1f335": "cactus", + "1f33f": "plantă aromatică", + "1f341": "frunză de arțar", + "1f344": "ciupercă", + "1f347": "struguri", + "1f348": "pepene galben", + "1f349": "pepene verde", + "1f34a": "mandarină", + "1f34b": "lămâie", + "1f34c": "banană", + "1f34d": "ananas", + "1f96d": "mango", + "1f34f": "măr verde", + "1f350": "pară", + "1f351": "piersică", + "1f352": "cireșe", + "1f353": "căpșună", + "1fad0": "afine", + "1f95d": "kiwi", + "1f345": "roșie", + "1fad2": "măslină", + "1f965": "nucă de cocos", + "1f951": "avocado", + "1f346": "vânătă", + "1f955": "morcov", + "1f33d": "știulete de porumb", + "1f336": "ardei iute", + "1f96c": "verdețuri", + "1f966": "broccoli", + "1f9c5": "ceapă", + "1f95c": "arahide", + "1f950": "croasant", + "1f956": "baghetă de pâine", + "1f968": "covrig", + "1f96f": "bagel", + "1f95e": "clătite", + "1f9c7": "gofră", + "1f354": "hamburger", + "1f355": "pizza", + "1f32d": "hot dog", + "1f32e": "taco", + "1f37f": "popcorn", + "1f980": "rac", + "1f99e": "homar", + "1f368": "înghețată", + "1f369": "gogoașă americană", + "1f36a": "fursec", + "1f382": "tort aniversar", + "1f9c1": "brioșă", + "1f36b": "baton de ciocolată", + "1f36c": "bomboană", + "1f36d": "acadea", + "1fad6": "ceainic", + "1f9c3": "cutie de băutură", + "1f9c9": "mate", + "1f9ed": "busolă", + "1f3d4": "vârf de munte înzăpezit", + "1f30b": "vulcan", + "1f3d5": "camping", + "1f3dd": "insulă pustie", + "1f3e1": "casă cu grădină", + "26f2": "fântână arteziană", + "1f3a0": "căluț de carusel", + "1f3a1": "roata mare", + "1f3a2": "montagne russe", + "1f488": "semn de frizerie", + "1f686": "tren", + "1f68b": "vagon de tramvai", + "1f68d": "autobuz care se apropie", + "1f695": "taxi", + "1f697": "automobil", + "1f69a": "camion de marfă", + "1f69c": "tractor", + "1f6f5": "scuter", + "1f6fa": "autoricșă", + "1f6f4": "trotinetă", + "1f6f9": "skateboard", + "1f6fc": "patină cu rotile", + "2693": "ancoră", + "26f5": "barcă cu pânze", + "1f6f6": "canoe", + "1f6a4": "barcă de viteză", + "1f6a2": "vapor", + "2708": "avion", + "1f681": "elicopter", + "1f6a0": "telecabină montană", + "1f6f0": "satelit", + "1f680": "rachetă", + "1f6f8": "farfurie zburătoare", + "23f0": "ceas deșteptător", + "1f319": "semilună", + "1f321": "termometru", + "2600": "soare", + "1fa90": "planetă cu inele", + "1f31f": "stea strălucitoare", + "1f300": "ciclon", + "1f308": "curcubeu", + "2602": "umbrelă", + "2744": "fulg de nea", + "2604": "cometă", + "1f525": "foc", + "1f4a7": "picătură", + "1f30a": "val", + "1f383": "dovleac cu felinar", + "2728": "steluțe", + "1f388": "balon", + "1f389": "tun cu confetti", + "1f38f": "crap decorativ în vânt", + "1f380": "fundă", + "1f381": "cadou împachetat", + "1f39f": "bilete de intrare", + "1f3c6": "trofeu", + "26bd": "minge de fotbal", + "1f3c0": "baschet", + "1f3c8": "fotbal american", + "1f3be": "tenis", + "1f94f": "disc zburător", + "1f3d3": "ping pong", + "1f3f8": "badminton", + "1f93f": "mască de scufundări", + "1f94c": "piatră de curling", + "1f3af": "fix la țintă", + "1fa80": "yo-yo", + "1fa81": "zmeu", + "1f52e": "glob de cristal", + "1f3b2": "zar", + "1f9e9": "piesă de puzzle", + "1f3a8": "paletă de pictor", + "1f9f5": "ață", + "1f455": "tricou", + "1f9e6": "șosete", + "1f457": "rochie", + "1fa73": "șort", + "1f392": "rucsac", + "1f45f": "pantof sport", + "1f451": "coroană", + "1f9e2": "șapcă", + "1f484": "ruj", + "1f48d": "inel", + "1f48e": "piatră prețioasă", + "1f4e2": "portavoce", + "1f3b6": "note muzicale", + "1f399": "microfon de studio", + "1f4fb": "radio", + "1f3b7": "saxofon", + "1fa97": "acordeon", + "1f3b8": "chitară", + "1f3ba": "trompetă", + "1f3bb": "vioară", + "1fa95": "banjo", + "1f941": "tobă", + "260e": "telefon", + "1f50b": "baterie", + "1f4bf": "cd", + "1f9ee": "abac", + "1f3ac": "clachetă", + "1f4a1": "bec", + "1f526": "lanternă", + "1f3ee": "felinar din hârtie roșie", + "1f4d5": "carte închisă", + "1f3f7": "etichetă", + "1f4b3": "card de credit", + "270f": "creion", + "1f58c": "pensulă", + "1f58d": "creion colorat", + "1f4cc": "piuneză", + "1f4ce": "agrafă de hârtie", + "1f511": "cheie", + "1fa83": "bumerang", + "1f3f9": "arc și săgeată", + "2696": "balanță", + "1f9f2": "magnet", + "1f9ea": "eprubetă", + "1f9ec": "ADN", + "1f52c": "microscop", + "1f52d": "telescop", + "1f4e1": "antenă satelit", + "1fa91": "scaun", + "1f9f9": "mătură", + "1f5ff": "statuie moai" + }, + "ru": { + "1f47d": "инопланетянин", + "1f916": "робот", + "1f9e0": "мозг", + "1f441": "глаз", + "1f9d9": "маг", + "1f9da": "фея", + "1f9dc": "русалка", + "1f435": "морда обезьяны", + "1f9a7": "орангутан", + "1f436": "морда собаки", + "1f43a": "морда волка", + "1f98a": "морда лисицы", + "1f99d": "морда енота", + "1f431": "морда кошки", + "1f981": "морда льва", + "1f42f": "морда тигра", + "1f434": "морда лошади", + "1f984": "голова единорога", + "1f993": "зебра", + "1f98c": "олень", + "1f42e": "морда коровы", + "1f437": "морда свиньи", + "1f417": "кабан", + "1f42a": "одногорбый верблюд", + "1f999": "лама", + "1f992": "жираф", + "1f418": "слон", + "1f9a3": "мамонт", + "1f98f": "носорог", + "1f42d": "морда мыши", + "1f430": "морда кролика", + "1f43f": "бурундук", + "1f994": "еж", + "1f987": "летучая мышь", + "1f43b": "морда медведя", + "1f428": "морда коалы", + "1f9a5": "ленивец", + "1f9a6": "выдра", + "1f998": "кенгуру", + "1f425": "цыпленок", + "1f426": "птица", + "1f54a": "голубь", + "1f986": "утка", + "1f989": "сова", + "1f9a4": "дронт", + "1fab6": "перо", + "1f9a9": "фламинго", + "1f99a": "павлин", + "1f99c": "попугай", + "1f40a": "крокодил", + "1f422": "черепаха", + "1f98e": "ящерица", + "1f40d": "змея", + "1f432": "голова дракона", + "1f995": "зауропод", + "1f433": "кит с фонтанчиком", + "1f42c": "дельфин", + "1f9ad": "тюлень", + "1f41f": "рыба", + "1f420": "тропическая рыба", + "1f988": "акула", + "1f419": "осьминог", + "1f41a": "раковина", + "1f40c": "улитка", + "1f98b": "бабочка", + "1f41b": "гусеница", + "1f41d": "пчела", + "1f41e": "божья коровка", + "1f490": "букет", + "1f339": "роза", + "1f33a": "гибискус", + "1f33b": "подсолнух", + "1f337": "тюльпан", + "1f332": "елка", + "1f333": "дерево", + "1f334": "пальма", + "1f335": "кактус", + "1f33f": "веточка", + "1f341": "кленовый лист", + "1f344": "гриб", + "1f347": "виноград", + "1f348": "дыня", + "1f349": "арбуз", + "1f34a": "мандарин", + "1f34b": "лимон", + "1f34c": "банан", + "1f34d": "ананас", + "1f96d": "манго", + "1f34f": "зеленое яблоко", + "1f350": "груша", + "1f351": "персик", + "1f352": "вишня", + "1f353": "клубника", + "1fad0": "голубика", + "1f95d": "киви", + "1f345": "помидор", + "1fad2": "оливка", + "1f965": "кокос", + "1f951": "авокадо", + "1f346": "баклажан", + "1f955": "морковь", + "1f33d": "кукурузный початок", + "1f336": "острый перец", + "1f96c": "зеленый салат", + "1f966": "брокколи", + "1f9c5": "лук", + "1f95c": "арахис", + "1f950": "круассан", + "1f956": "багет", + "1f968": "крендель", + "1f96f": "бублик", + "1f95e": "блины", + "1f9c7": "вафля", + "1f354": "гамбургер", + "1f355": "пицца", + "1f32d": "хот-дог", + "1f32e": "тако", + "1f37f": "попкорн", + "1f980": "краб", + "1f99e": "омар", + "1f368": "мороженое", + "1f369": "пончик", + "1f36a": "печенье", + "1f382": "торт ко дню рождения", + "1f9c1": "капкейк", + "1f36b": "шоколад", + "1f36c": "конфета", + "1f36d": "леденец", + "1fad6": "чайник", + "1f9c3": "пакетик сока", + "1f9c9": "мате", + "1f9ed": "компас", + "1f3d4": "гора со снежной шапкой", + "1f30b": "вулкан", + "1f3d5": "кемпинг", + "1f3dd": "остров", + "1f3e1": "дом с садом", + "26f2": "фонтан", + "1f3a0": "лошадь на карусели", + "1f3a1": "колесо обозрения", + "1f3a2": "американские горки", + "1f488": "парикмахерская", + "1f686": "поезд", + "1f68b": "трамвайный вагон", + "1f68d": "автобус спереди", + "1f695": "такси", + "1f697": "автомобиль", + "1f69a": "грузовик", + "1f69c": "трактор", + "1f6f5": "скутер", + "1f6fa": "авторикша", + "1f6f4": "самокат", + "1f6f9": "скейтборд", + "1f6fc": "роликовые коньки", + "2693": "якорь", + "26f5": "парусник", + "1f6f6": "каноэ", + "1f6a4": "катер", + "1f6a2": "корабль", + "2708": "самолет", + "1f681": "вертолет", + "1f6a0": "вагон фуникулера", + "1f6f0": "спутник", + "1f680": "ракета", + "1f6f8": "летающая тарелка", + "23f0": "будильник", + "1f319": "полумесяц", + "1f321": "термометр", + "2600": "солнце", + "1fa90": "планета с кольцом", + "1f31f": "сияющая звезда", + "1f300": "циклон", + "1f308": "радуга", + "2602": "зонт", + "2744": "снежинка", + "2604": "комета", + "1f525": "огонь", + "1f4a7": "капля", + "1f30a": "волна", + "1f383": "тыква-фонарь", + "2728": "блестки", + "1f388": "воздушный шарик", + "1f389": "хлопушка", + "1f38f": "вымпелы в виде карпов", + "1f380": "бантик", + "1f381": "подарок", + "1f39f": "билеты", + "1f3c6": "кубок", + "26bd": "футбол", + "1f3c0": "баскетбол", + "1f3c8": "американский футбол", + "1f3be": "теннис", + "1f94f": "летающий диск", + "1f3d3": "настольный теннис", + "1f3f8": "бадминтон", + "1f93f": "маска с трубкой", + "1f94c": "керлинг", + "1f3af": "мишень", + "1fa80": "йо-йо", + "1fa81": "воздушный змей", + "1f52e": "хрустальный шар", + "1f3b2": "игральная кость", + "1f9e9": "пазл", + "1f3a8": "палитра с красками", + "1f9f5": "катушка ниток", + "1f455": "футболка", + "1f9e6": "носки", + "1f457": "платье", + "1fa73": "шорты", + "1f392": "ранец", + "1f45f": "кроссовки", + "1f451": "корона", + "1f9e2": "бейсболка", + "1f484": "помада", + "1f48d": "кольцо", + "1f48e": "драгоценный камень", + "1f4e2": "громкоговоритель", + "1f3b6": "ноты", + "1f399": "студийный микрофон", + "1f4fb": "радио", + "1f3b7": "саксофон", + "1fa97": "аккордеон", + "1f3b8": "гитара", + "1f3ba": "труба", + "1f3bb": "скрипка", + "1fa95": "банджо", + "1f941": "барабан", + "260e": "телефон", + "1f50b": "батарейка", + "1f4bf": "CD", + "1f9ee": "счеты", + "1f3ac": "хлопушка-нумератор", + "1f4a1": "лампочка", + "1f526": "фонарик", + "1f3ee": "красный бумажный фонарик", + "1f4d5": "закрытая книга", + "1f3f7": "бирка", + "1f4b3": "кредитная карта", + "270f": "карандаш", + "1f58c": "кисточка", + "1f58d": "восковой мелок", + "1f4cc": "канцелярская кнопка", + "1f4ce": "скрепка", + "1f511": "ключ", + "1fa83": "бумеранг", + "1f3f9": "лук со стрелой", + "2696": "весы", + "1f9f2": "магнит", + "1f9ea": "пробирка", + "1f9ec": "ДНК", + "1f52c": "микроскоп", + "1f52d": "телескоп", + "1f4e1": "спутниковая антенна", + "1fa91": "стул", + "1f9f9": "метла", + "1f5ff": "истукан" + }, + "sq": { + "1f47d": "alien", + "1f916": "fytyrë roboti", + "1f9e0": "tru", + "1f441": "sy", + "1f9d9": "magjistar", + "1f9da": "zanë", + "1f9dc": "sirenë deti", + "1f435": "fytyrë majmuni", + "1f9a7": "orangutang", + "1f436": "fytyrë qeni", + "1f43a": "fytyrë ujku", + "1f98a": "fytyrë dhelpre", + "1f99d": "rakun", + "1f431": "fytyrë maceje", + "1f981": "fytyrë luani", + "1f42f": "fytyrë tigri", + "1f434": "fytyrë kali", + "1f984": "fytyrë njëbrirëshi", + "1f993": "zebër", + "1f98c": "dre", + "1f42e": "fytyrë lope", + "1f437": "fytyrë derri", + "1f417": "derr i egër", + "1f42a": "gamile", + "1f999": "lamë", + "1f992": "gjirafë", + "1f418": "elefant", + "1f9a3": "mamuth", + "1f98f": "rinoqeront", + "1f42d": "fytyrë miu", + "1f430": "fytyrë lepuri", + "1f43f": "ketër", + "1f994": "iriq", + "1f987": "lakuriq nate", + "1f43b": "fytyrë ariu", + "1f428": "koalë", + "1f9a5": "majmun i Bengalit", + "1f9a6": "vidër", + "1f998": "kangur", + "1f425": "zog pule përballë", + "1f426": "zog", + "1f54a": "pëllumb", + "1f986": "rosak", + "1f989": "buf", + "1f9a4": "zog i rëndë", + "1fab6": "pendë", + "1f9a9": "flamingo", + "1f99a": "pallua", + "1f99c": "papagall", + "1f40a": "krokodil", + "1f422": "breshkë", + "1f98e": "hardhucë", + "1f40d": "gjarpër", + "1f432": "fytyrë dragoi", + "1f995": "sauropod", + "1f433": "balenë që hedh ujë", + "1f42c": "delfin", + "1f9ad": "fokë", + "1f41f": "peshk", + "1f420": "peshk tropikal", + "1f988": "peshkaqen", + "1f419": "oktapod", + "1f41a": "guaskë spirale", + "1f40c": "kërmill", + "1f98b": "flutur", + "1f41b": "shumëkëmbësh", + "1f41d": "bletë", + "1f41e": "mollëkuqe", + "1f490": "buqetë", + "1f339": "trëndafil", + "1f33a": "hibisk", + "1f33b": "luledielli", + "1f337": "tulipan", + "1f332": "gjelbërim i përjetshëm", + "1f333": "pemë gjetherënëse", + "1f334": "palmë", + "1f335": "kaktus", + "1f33f": "erëza", + "1f341": "gjethe panje", + "1f344": "kërpudhë", + "1f347": "rrush", + "1f348": "pjepër", + "1f349": "shalqi", + "1f34a": "mandarinë", + "1f34b": "limon", + "1f34c": "banane", + "1f34d": "ananas", + "1f96d": "mango", + "1f34f": "mollë jeshile", + "1f350": "dardhë", + "1f351": "pjeshkë", + "1f352": "qershi", + "1f353": "luleshtrydhe", + "1fad0": "boronica", + "1f95d": "kivi", + "1f345": "domate", + "1fad2": "ulli", + "1f965": "arrë kokosi", + "1f951": "avokado", + "1f346": "patëllxhan", + "1f955": "karotë", + "1f33d": "kalli misri", + "1f336": "spec djegës", + "1f96c": "sallatë", + "1f966": "brokoli", + "1f9c5": "qepë", + "1f95c": "kikirik", + "1f950": "kroasant", + "1f956": "bagetë", + "1f968": "gjevrek i përdredhur", + "1f96f": "gjevrek", + "1f95e": "petulla", + "1f9c7": "vafer", + "1f354": "hamburger", + "1f355": "pica", + "1f32d": "hot-dog", + "1f32e": "tako", + "1f37f": "kokoshka", + "1f980": "gaforre", + "1f99e": "karavidhe", + "1f368": "akullore", + "1f369": "petull e ëmbël", + "1f36a": "biskotë", + "1f382": "tortë ditëlindjeje", + "1f9c1": "kek i vogël", + "1f36b": "çokollatë", + "1f36c": "ëmbëlsirë", + "1f36d": "lëpirëse", + "1fad6": "çajnik", + "1f9c3": "kuti pijeje", + "1f9c9": "kimarrao", + "1f9ed": "busull", + "1f3d4": "mal i mbuluar me borë në majë", + "1f30b": "vullkan", + "1f3d5": "kamp", + "1f3dd": "ishull shkretëtirë", + "1f3e1": "shtëpi me kopsht", + "26f2": "shatërvan", + "1f3a0": "kalë në karusel", + "1f3a1": "rrotullame", + "1f3a2": "tren lojërash me valëzim", + "1f488": "shenja e berberit", + "1f686": "tren", + "1f68b": "vagon tramvaji", + "1f68d": "autobus që vjen", + "1f695": "taksi", + "1f697": "automobil", + "1f69a": "kamion transporti", + "1f69c": "traktor", + "1f6f5": "skuter", + "1f6fa": "autorikshë", + "1f6f4": "ballëz dyrrotëshe", + "1f6f9": "dërrasë rrëshqitëse", + "1f6fc": "rollerskejt", + "2693": "spirancë", + "26f5": "varkë me vela", + "1f6f6": "kaike", + "1f6a4": "motobarkë e shpejtë", + "1f6a2": "anije", + "2708": "aeroplan", + "1f681": "helikopter", + "1f6a0": "teleferik në mal", + "1f6f0": "satelit", + "1f680": "raketë", + "1f6f8": "disk fluturues", + "23f0": "orë me zile", + "1f319": "hënë e ngrënë", + "1f321": "termometër", + "2600": "diell", + "1fa90": "planet me unazë", + "1f31f": "yll që shkëlqen", + "1f300": "ciklon", + "1f308": "ylber", + "2602": "çadër", + "2744": "flokë bore", + "2604": "kometë", + "1f525": "zjarr", + "1f4a7": "pikëz", + "1f30a": "dallgë uji", + "1f383": "kungulli i Halloween", + "2728": "xixëllima", + "1f388": "tullumbace", + "1f389": "fishek feste", + "1f38f": "koinobori", + "1f380": "fjongo", + "1f381": "dhuratë e mbështjellë", + "1f39f": "biletat e hyrjes", + "1f3c6": "trofe", + "26bd": "top futbolli", + "1f3c0": "basketboll", + "1f3c8": "futboll amerikan", + "1f3be": "tenis", + "1f94f": "hedhje disku", + "1f3d3": "pingpong", + "1f3f8": "badminton", + "1f93f": "maskë zhytjeje", + "1f94c": "gur kurlingu", + "1f3af": "goditje e drejtpërdrejtë", + "1fa80": "jo-jo", + "1fa81": "balonë", + "1f52e": "top kristali", + "1f3b2": "zar loje", + "1f9e9": "lojë me bashkim pjesësh figure", + "1f3a8": "paleta e artistit", + "1f9f5": "fije", + "1f455": "bluzë", + "1f9e6": "çorape", + "1f457": "fustan", + "1fa73": "pantallona të shkurtra", + "1f392": "çantë shkolle", + "1f45f": "atlete", + "1f451": "kurorë", + "1f9e2": "kapelë \"sqep\"", + "1f484": "buzëkuq", + "1f48d": "unazë", + "1f48e": "gur i çmuar", + "1f4e2": "altoparlant me zë", + "1f3b6": "nota muzikore", + "1f399": "mikrofon studioje", + "1f4fb": "radio", + "1f3b7": "saksofon", + "1fa97": "fizarmonikë", + "1f3b8": "kitarë", + "1f3ba": "trombë", + "1f3bb": "violinë", + "1fa95": "banxho", + "1f941": "daulle", + "260e": "telefon", + "1f50b": "bateri", + "1f4bf": "disk optik", + "1f9ee": "abak", + "1f3ac": "tabelë dublimi e skenës", + "1f4a1": "llambë", + "1f526": "elektrik dore", + "1f3ee": "fener me letër të kuqe", + "1f4d5": "libër i mbyllur", + "1f3f7": "etiketë", + "1f4b3": "kartë krediti", + "270f": "laps", + "1f58c": "furçë piktori", + "1f58d": "shkumës me ngjyrë", + "1f4cc": "gjilpërë kapëse", + "1f4ce": "kapëse letrash", + "1f511": "çelës", + "1fa83": "bumerang", + "1f3f9": "hark dhe shigjetë", + "2696": "peshore", + "1f9f2": "magnet", + "1f9ea": "epruvetë", + "1f9ec": "ADN", + "1f52c": "mikroskop", + "1f52d": "teleskop", + "1f4e1": "antenë satelitore", + "1fa91": "karrige", + "1f9f9": "fshesë", + "1f5ff": "moai" + }, + "sv": { + "1f47d": "utomjording", + "1f916": "robotansikte", + "1f9e0": "hjärna", + "1f441": "öga", + "1f9d9": "magiker", + "1f9da": "fé", + "1f9dc": "vattenväsen", + "1f435": "apansikte", + "1f9a7": "orangutang", + "1f436": "hundansikte", + "1f43a": "vargansikte", + "1f98a": "rävansikte", + "1f99d": "tvättbjörn", + "1f431": "kattansikte", + "1f981": "lejonansikte", + "1f42f": "tigeransikte", + "1f434": "hästansikte", + "1f984": "enhörningsansikte", + "1f993": "zebra", + "1f98c": "hjort", + "1f42e": "koansikte", + "1f437": "grisansikte", + "1f417": "vildsvin", + "1f42a": "dromedar", + "1f999": "lama", + "1f992": "giraff", + "1f418": "elefant", + "1f9a3": "mammut", + "1f98f": "noshörning", + "1f42d": "musansikte", + "1f430": "kaninansikte", + "1f43f": "jordekorre", + "1f994": "igelkott", + "1f987": "fladdermus", + "1f43b": "björnansikte", + "1f428": "koala", + "1f9a5": "sengångare", + "1f9a6": "utter", + "1f998": "känguru", + "1f425": "kyckling framifrån", + "1f426": "fågel", + "1f54a": "duva", + "1f986": "and", + "1f989": "uggla", + "1f9a4": "dront", + "1fab6": "fågelfjäder", + "1f9a9": "flamingo", + "1f99a": "påfågel", + "1f99c": "papegoja", + "1f40a": "krokodil", + "1f422": "sköldpadda", + "1f98e": "ödla", + "1f40d": "orm", + "1f432": "drakansikte", + "1f995": "sauropod", + "1f433": "val som sprutar vatten", + "1f42c": "delfin", + "1f9ad": "säl", + "1f41f": "fisk", + "1f420": "tropisk fisk", + "1f988": "haj", + "1f419": "bläckfisk", + "1f41a": "snäcka", + "1f40c": "snigel", + "1f98b": "fjäril", + "1f41b": "tusenfoting", + "1f41d": "bi", + "1f41e": "nyckelpiga", + "1f490": "blombukett", + "1f339": "ros", + "1f33a": "hibiskus", + "1f33b": "solros", + "1f337": "tulpan", + "1f332": "barrträd", + "1f333": "lövträd", + "1f334": "palm", + "1f335": "kaktus", + "1f33f": "ört", + "1f341": "lönnlöv", + "1f344": "svamp", + "1f347": "vindruvor", + "1f348": "melon", + "1f349": "vattenmelon", + "1f34a": "mandarin", + "1f34b": "citron", + "1f34c": "banan", + "1f34d": "ananas", + "1f96d": "mango", + "1f34f": "grönt äpple", + "1f350": "päron", + "1f351": "persika", + "1f352": "körsbär", + "1f353": "jordgubbe", + "1fad0": "blåbär", + "1f95d": "kiwifrukt", + "1f345": "tomat", + "1fad2": "oliv", + "1f965": "kokosnöt", + "1f951": "avokado", + "1f346": "aubergine", + "1f955": "morot", + "1f33d": "majskolv", + "1f336": "chili", + "1f96c": "sallat", + "1f966": "broccoli", + "1f9c5": "lök", + "1f95c": "jordnötter", + "1f950": "croissant", + "1f956": "baguette", + "1f968": "pretzel", + "1f96f": "bagel", + "1f95e": "pannkakor", + "1f9c7": "våffla", + "1f354": "hamburgare", + "1f355": "pizzabit", + "1f32d": "varmkorv", + "1f32e": "taco", + "1f37f": "popcorn", + "1f980": "krabba", + "1f99e": "hummer", + "1f368": "glass", + "1f369": "munk", + "1f36a": "kaka", + "1f382": "födelsedagstårta", + "1f9c1": "muffin", + "1f36b": "chokladkaka", + "1f36c": "godis", + "1f36d": "klubba", + "1fad6": "tekanna", + "1f9c3": "dryckeskartong", + "1f9c9": "mate-te", + "1f9ed": "kompass", + "1f3d4": "snöklätt berg", + "1f30b": "vulkan", + "1f3d5": "camping", + "1f3dd": "öde ö", + "1f3e1": "hus med trädgård", + "26f2": "fontän", + "1f3a0": "karusellhäst", + "1f3a1": "pariserhjul", + "1f3a2": "berg- och dalbana", + "1f488": "barberarstolpe", + "1f686": "tåg", + "1f68b": "spårvagnsvagn", + "1f68d": "mötande buss", + "1f695": "taxi", + "1f697": "bil", + "1f69a": "budbil", + "1f69c": "traktor", + "1f6f5": "skoter", + "1f6fa": "automatisk riksha", + "1f6f4": "sparkcykel", + "1f6f9": "skateboard", + "1f6fc": "rullskridsko", + "2693": "ankare", + "26f5": "segelbåt", + "1f6f6": "kanot", + "1f6a4": "racerbåt", + "1f6a2": "fartyg", + "2708": "flygplan", + "1f681": "helikopter", + "1f6a0": "linbana", + "1f6f0": "satellit", + "1f680": "raket", + "1f6f8": "flygande tefat", + "23f0": "väckarklocka", + "1f319": "månskära", + "1f321": "termometer", + "2600": "sol", + "1fa90": "planet med ringar", + "1f31f": "blänkande stjärna", + "1f300": "cyklon", + "1f308": "regnbåge", + "2602": "paraply", + "2744": "snöflinga", + "2604": "komet", + "1f525": "eld", + "1f4a7": "droppe", + "1f30a": "våg", + "1f383": "lyktgubbe", + "2728": "gnistrande stjärnor", + "1f388": "ballong", + "1f389": "konfettismällare", + "1f38f": "karpvindstrut", + "1f380": "rosett", + "1f381": "inslagen present", + "1f39f": "inträdesbiljetter", + "1f3c6": "pokal", + "26bd": "fotboll", + "1f3c0": "basketboll", + "1f3c8": "amerikansk fotboll", + "1f3be": "tennis", + "1f94f": "frisbee", + "1f3d3": "bordtennis", + "1f3f8": "badminton", + "1f93f": "dykmask", + "1f94c": "curlingsten", + "1f3af": "mitt i prick", + "1fa80": "jojo", + "1fa81": "flygande drake", + "1f52e": "kristallkula", + "1f3b2": "speltärning", + "1f9e9": "pusselbit", + "1f3a8": "färgpalett", + "1f9f5": "tråd", + "1f455": "t-shirt", + "1f9e6": "sockor", + "1f457": "klänning", + "1fa73": "shorts", + "1f392": "ryggsäck", + "1f45f": "gympasko", + "1f451": "krona", + "1f9e2": "skärmmössa", + "1f484": "läppstift", + "1f48d": "ring", + "1f48e": "ädelsten", + "1f4e2": "handhögtalare", + "1f3b6": "musiknoter", + "1f399": "studiomikrofon", + "1f4fb": "radio", + "1f3b7": "saxofon", + "1fa97": "dragspel", + "1f3b8": "gitarr", + "1f3ba": "trumpet", + "1f3bb": "fiol", + "1fa95": "banjo", + "1f941": "trumma", + "260e": "telefon", + "1f50b": "batteri", + "1f4bf": "optisk skiva", + "1f9ee": "kulram", + "1f3ac": "filmklappa", + "1f4a1": "glödlampa", + "1f526": "ficklampa", + "1f3ee": "röd papperslykta", + "1f4d5": "stängd bok", + "1f3f7": "etikett", + "1f4b3": "kreditkort", + "270f": "blyertspenna", + "1f58c": "målarpensel", + "1f58d": "krita", + "1f4cc": "kartnål", + "1f4ce": "gem", + "1f511": "nyckel", + "1fa83": "boomerang", + "1f3f9": "pil och båge", + "2696": "balansvåg", + "1f9f2": "magnet", + "1f9ea": "provrör", + "1f9ec": "DNA", + "1f52c": "mikroskop", + "1f52d": "teleskop", + "1f4e1": "tv-satellit", + "1fa91": "stol", + "1f9f9": "kvast", + "1f5ff": "staty" + }, + "th": { + "1f47d": "เอเลี่ยน", + "1f916": "หุ่นยนต์", + "1f9e0": "สมอง", + "1f441": "ตาข้างเดียว", + "1f9d9": "นักเวทย์", + "1f9da": "นางฟ้า", + "1f9dc": "ครึ่งคนครึ่งปลา", + "1f435": "หน้าลิง", + "1f9a7": "อุรังอุตัง", + "1f436": "หน้าสุนัข", + "1f43a": "หมาป่า", + "1f98a": "จิ้งจอก", + "1f99d": "แรคคูน", + "1f431": "หน้าแมว", + "1f981": "สิงโต", + "1f42f": "หน้าเสือ", + "1f434": "หน้าม้า", + "1f984": "ยูนิคอร์น", + "1f993": "ม้าลาย", + "1f98c": "กวาง", + "1f42e": "หน้าวัว", + "1f437": "หน้าหมู", + "1f417": "หมูป่าตัวผู้", + "1f42a": "อูฐโหนกเดียว", + "1f999": "ลามะ", + "1f992": "ยีราฟ", + "1f418": "ช้าง", + "1f9a3": "ช้างแมมมอธ", + "1f98f": "แรด", + "1f42d": "หน้าหนู", + "1f430": "หน้ากระต่าย", + "1f43f": "ชิปมังก์", + "1f994": "เฮดจ์ฮ็อก", + "1f987": "ค้างคาว", + "1f43b": "หมี", + "1f428": "โคอาล่า", + "1f9a5": "สลอธ", + "1f9a6": "ตัวนาก", + "1f998": "จิงโจ้", + "1f425": "ลูกเจี๊ยบยืนหันหน้า", + "1f426": "นก", + "1f54a": "นกพิราบขาว", + "1f986": "เป็ด", + "1f989": "นกฮูก", + "1f9a4": "นกโดโด", + "1fab6": "ขนนก", + "1f9a9": "นกฟลามิงโก", + "1f99a": "นกยูง", + "1f99c": "นกแก้ว", + "1f40a": "จระเข้", + "1f422": "เต่า", + "1f98e": "จิ้งจก", + "1f40d": "งู", + "1f432": "หน้ามังกร", + "1f995": "ไดโนเสาร์", + "1f433": "ปลาวาฬพ่นน้ำ", + "1f42c": "ปลาโลมา", + "1f9ad": "แมวน้ำ", + "1f41f": "ปลา", + "1f420": "ปลาเขตร้อน", + "1f988": "ฉลาม", + "1f419": "ปลาหมึกยักษ์", + "1f41a": "หอย", + "1f40c": "หอยทาก", + "1f98b": "ผีเสื้อ", + "1f41b": "แมลง", + "1f41d": "ผึ้ง", + "1f41e": "เต่าทอง", + "1f490": "ช่อดอกไม้", + "1f339": "ดอกกุหลาบ", + "1f33a": "ดอกชบา", + "1f33b": "ดอกทานตะวัน", + "1f337": "ทิวลิป", + "1f332": "ต้นสน", + "1f333": "ต้นไม้ร่มรื่น", + "1f334": "ต้นมะพร้าว", + "1f335": "ตะบองเพชร", + "1f33f": "สมุนไพร", + "1f341": "ใบเมเปิ้ล", + "1f344": "เห็ด", + "1f347": "องุ่น", + "1f348": "เมลอน", + "1f349": "แตงโม", + "1f34a": "ส้ม", + "1f34b": "เลมอน", + "1f34c": "กล้วย", + "1f34d": "สับปะรด", + "1f96d": "มะม่วง", + "1f34f": "แอปเปิ้ลเขียว", + "1f350": "ลูกแพร์", + "1f351": "ลูกพีช", + "1f352": "เชอร์รี่", + "1f353": "สตรอว์เบอร์รี่", + "1fad0": "บลูเบอร์รี่", + "1f95d": "กีวี", + "1f345": "มะเขือเทศ", + "1fad2": "มะกอก", + "1f965": "มะพร้าว", + "1f951": "อาโวคาโด", + "1f346": "มะเขือยาว", + "1f955": "แครอท", + "1f33d": "ข้าวโพด", + "1f336": "พริก", + "1f96c": "ผักใบเขียว", + "1f966": "บรอกโคลี", + "1f9c5": "หอมหัวใหญ่", + "1f95c": "ถั่ว", + "1f950": "ครัวซอง", + "1f956": "ขนมปังฝรั่งเศส", + "1f968": "เพรตเซล", + "1f96f": "เบเกิล", + "1f95e": "แพนเค้ก", + "1f9c7": "วาฟเฟิล", + "1f354": "แฮมเบอร์เกอร์", + "1f355": "พิซซ่า 1 ชิ้น", + "1f32d": "ฮอทด็อก", + "1f32e": "ทาโก้", + "1f37f": "ป๊อปคอร์น", + "1f980": "ปู", + "1f99e": "กุ้งมังกร", + "1f368": "ไอศกรีม", + "1f369": "โดนัท", + "1f36a": "คุกกี้", + "1f382": "เค้กวันเกิด", + "1f9c1": "คัพเค้ก", + "1f36b": "ช็อกโกแลต", + "1f36c": "ลูกอม", + "1f36d": "อมยิ้ม", + "1fad6": "กาน้ำชา", + "1f9c3": "เครื่องดื่มแบบกล่อง", + "1f9c9": "ชามาเต", + "1f9ed": "เข็มทิศ", + "1f3d4": "ภูเขามีหิมะ", + "1f30b": "ภูเขาไฟ", + "1f3d5": "ตั้งแคมป์", + "1f3dd": "เกาะ", + "1f3e1": "บ้านพร้อมสวน", + "26f2": "น้ำพุ", + "1f3a0": "ม้าหมุน", + "1f3a1": "ชิงช้าสวรรค์", + "1f3a2": "รถไฟเหาะ", + "1f488": "ร้านตัดผม", + "1f686": "รถไฟ", + "1f68b": "ตู้รถราง", + "1f68d": "รถบัสกำลังมา", + "1f695": "แท็กซี่", + "1f697": "รถ", + "1f69a": "รถขนส่ง", + "1f69c": "แทร็กเตอร์", + "1f6f5": "รถสกู๊ตเตอร์", + "1f6fa": "รถสามล้อ", + "1f6f4": "สกู๊ตเตอร์", + "1f6f9": "สเก็ตบอร์ด", + "1f6fc": "รองเท้าสเก็ต", + "2693": "สมอเรือ", + "26f5": "เรือใบ", + "1f6f6": "แคนู", + "1f6a4": "เรือด่วน", + "1f6a2": "เรือ", + "2708": "เครื่องบิน", + "1f681": "เฮลิคอปเตอร์", + "1f6a0": "เคเบิลคาร์", + "1f6f0": "ดาวเทียม", + "1f680": "จรวด", + "1f6f8": "จานบิน", + "23f0": "นาฬิกาปลุก", + "1f319": "พระจันทร์เสี้ยว", + "1f321": "เครื่องวัดอุณหภูมิ", + "2600": "พระอาทิตย์", + "1fa90": "ดาวเคราะห์ที่มีวงแหวน", + "1f31f": "ดาวส่องแสง", + "1f300": "ไซโคลน", + "1f308": "รุ้ง", + "2602": "ร่ม", + "2744": "เกล็ดหิมะ", + "2604": "ดาวหาง", + "1f525": "ไฟ", + "1f4a7": "หยดน้ำ", + "1f30a": "คลื่น", + "1f383": "ฟักทองฮาโลวีน", + "2728": "ประกายวิบวับ", + "1f388": "ลูกโป่ง", + "1f389": "ปาร์ตี้", + "1f38f": "ธงปลาคาร์พ", + "1f380": "ริบบิ้น", + "1f381": "ของขวัญ", + "1f39f": "ตั๋วเข้าชม", + "1f3c6": "ถ้วยรางวัล", + "26bd": "ลูกฟุตบอล", + "1f3c0": "บาสเกตบอล", + "1f3c8": "อเมริกันฟุตบอล", + "1f3be": "เทนนิส", + "1f94f": "จานร่อน", + "1f3d3": "ปิงปอง", + "1f3f8": "แบดมินตัน", + "1f93f": "หน้ากากดำน้ำ", + "1f94c": "ลูกกลิ้งหิน", + "1f3af": "กลางเป้า", + "1fa80": "โยโย่", + "1fa81": "ว่าว", + "1f52e": "ลูกแก้ววิเศษ", + "1f3b2": "ลูกเต๋า", + "1f9e9": "จิ๊กซอว์", + "1f3a8": "จานสีวาดรูป", + "1f9f5": "ด้าย", + "1f455": "เสื้อยืด", + "1f9e6": "ถุงเท้า", + "1f457": "ชุดกระโปรง", + "1fa73": "กางเกงขาสั้น", + "1f392": "เป้นักเรียน", + "1f45f": "รองเท้ากีฬา", + "1f451": "มงกุฎ", + "1f9e2": "หมวกแก๊ป", + "1f484": "ลิปสติก", + "1f48d": "แหวน", + "1f48e": "อัญมณี", + "1f4e2": "เครื่องขยายเสียง", + "1f3b6": "โน้ตดนตรีหลายตัว", + "1f399": "ไมค์สตูดิโอ", + "1f4fb": "วิทยุ", + "1f3b7": "แซ็กโซโฟน", + "1fa97": "แอคคอร์เดียน", + "1f3b8": "กีต้าร์", + "1f3ba": "ทรัมเป็ต", + "1f3bb": "ไวโอลิน", + "1fa95": "แบนโจ", + "1f941": "กลอง", + "260e": "โทรศัพท์", + "1f50b": "แบตเตอรี่", + "1f4bf": "บลูเรย์", + "1f9ee": "ลูกคิด", + "1f3ac": "สเลท", + "1f4a1": "หลอดไฟ", + "1f526": "ไฟฉาย", + "1f3ee": "โคมไฟแดง", + "1f4d5": "หนังสือปิด", + "1f3f7": "ป้าย", + "1f4b3": "บัตรเครดิต", + "270f": "ดินสอ", + "1f58c": "แปรงทาสี", + "1f58d": "ดินสอสี", + "1f4cc": "หมุดปัก", + "1f4ce": "คลิปหนีบกระดาษ", + "1f511": "กุญแจ", + "1fa83": "บูมเมอแรง", + "1f3f9": "ธนูและลูกศร", + "2696": "ตราชั่ง", + "1f9f2": "แม่เหล็ก", + "1f9ea": "หลอดทดลอง", + "1f9ec": "ดีเอ็นเอ", + "1f52c": "กล้องจุลทรรศน์", + "1f52d": "กล้องโทรทรรศน์", + "1f4e1": "จานดาวเทียม", + "1fa91": "เก้าอี้", + "1f9f9": "ไม้กวาด", + "1f5ff": "รูปปั้นโมไอ" + }, + "tr": { + "1f47d": "uzaylı", + "1f916": "robot", + "1f9e0": "beyin", + "1f441": "göz", + "1f9d9": "büyücü", + "1f9da": "peri", + "1f9dc": "balık insan", + "1f435": "maymun yüzü", + "1f9a7": "orangutan", + "1f436": "köpek yüzü", + "1f43a": "kurt", + "1f98a": "tilki", + "1f99d": "rakun", + "1f431": "kedi yüzü", + "1f981": "aslan", + "1f42f": "kaplan yüzü", + "1f434": "at yüzü", + "1f984": "tek boynuzlu at", + "1f993": "zebra", + "1f98c": "geyik", + "1f42e": "inek yüzü", + "1f437": "domuz yüzü", + "1f417": "yaban domuzu", + "1f42a": "deve", + "1f999": "lama", + "1f992": "zürafa", + "1f418": "fil", + "1f9a3": "mamut", + "1f98f": "gergedan", + "1f42d": "fare yüzü", + "1f430": "tavşan yüzü", + "1f43f": "sincap", + "1f994": "kirpi", + "1f987": "yarasa", + "1f43b": "ayı", + "1f428": "koala", + "1f9a5": "tembel hayvan", + "1f9a6": "su samuru", + "1f998": "kanguru", + "1f425": "önden civciv", + "1f426": "kuş", + "1f54a": "güvercin", + "1f986": "ördek", + "1f989": "baykuş", + "1f9a4": "dodo kuşu", + "1fab6": "kuş tüyü", + "1f9a9": "flamingo", + "1f99a": "tavus kuşu", + "1f99c": "papağan", + "1f40a": "timsah", + "1f422": "kaplumbağa", + "1f98e": "kertenkele", + "1f40d": "yılan", + "1f432": "ejderha yüzü", + "1f995": "soropod", + "1f433": "su püskürten balina", + "1f42c": "yunus", + "1f9ad": "fok", + "1f41f": "balık", + "1f420": "tropikal balık", + "1f988": "köpek balığı", + "1f419": "ahtapot", + "1f41a": "deniz kabuğu", + "1f40c": "salyangoz", + "1f98b": "kelebek", + "1f41b": "tırtıl", + "1f41d": "bal arısı", + "1f41e": "uğur böceği", + "1f490": "buket", + "1f339": "gül", + "1f33a": "çingülü", + "1f33b": "ayçiçeği", + "1f337": "lale", + "1f332": "yaprak dökmeyen ağaç", + "1f333": "yaprak döken ağaç", + "1f334": "palmiye ağacı", + "1f335": "kaktüs", + "1f33f": "ot", + "1f341": "akçaağaç yaprağı", + "1f344": "mantar", + "1f347": "üzüm", + "1f348": "kavun", + "1f349": "karpuz", + "1f34a": "mandalina", + "1f34b": "limon", + "1f34c": "muz", + "1f34d": "ananas", + "1f96d": "mango", + "1f34f": "yeşil elma", + "1f350": "armut", + "1f351": "şeftali", + "1f352": "kiraz", + "1f353": "çilek", + "1fad0": "yaban mersini", + "1f95d": "kivi", + "1f345": "domates", + "1fad2": "zeytin", + "1f965": "Hindistan cevizi", + "1f951": "avokado", + "1f346": "patlıcan", + "1f955": "havuç", + "1f33d": "mısır koçanı", + "1f336": "acı biber", + "1f96c": "yeşil yapraklı sebze", + "1f966": "brokoli", + "1f9c5": "soğan", + "1f95c": "yer fıstığı", + "1f950": "kruvasan", + "1f956": "baget ekmek", + "1f968": "pretzel", + "1f96f": "simit", + "1f95e": "krep", + "1f9c7": "waffle", + "1f354": "hamburger", + "1f355": "pizza dilimi", + "1f32d": "sosisli sandviç", + "1f32e": "tako", + "1f37f": "patlamış mısır", + "1f980": "yengeç", + "1f99e": "ıstakoz", + "1f368": "dondurma", + "1f369": "donut", + "1f36a": "kurabiye", + "1f382": "doğum günü pastası", + "1f9c1": "cupcake", + "1f36b": "çikolata", + "1f36c": "şekerleme", + "1f36d": "lolipop", + "1fad6": "demlik", + "1f9c3": "içecek kutusu", + "1f9c9": "mate çayı", + "1f9ed": "pusula", + "1f3d4": "karla kaplı dağ", + "1f30b": "yanardağ", + "1f3d5": "kamp", + "1f3dd": "ıssız ada", + "1f3e1": "bahçeli ev", + "26f2": "fıskiye", + "1f3a0": "atlıkarınca", + "1f3a1": "dönme dolap", + "1f3a2": "hız treni", + "1f488": "berber dükkanı", + "1f686": "tren", + "1f68b": "tramvay vagonu", + "1f68d": "yaklaşan otobüs", + "1f695": "taksi", + "1f697": "araba", + "1f69a": "nakliye kamyonu", + "1f69c": "traktör", + "1f6f5": "motorlu skuter", + "1f6fa": "elektrikli çekçek", + "1f6f4": "ayakla sürülen skuter", + "1f6f9": "kaykay", + "1f6fc": "paten", + "2693": "çıpa", + "26f5": "yelkenli tekne", + "1f6f6": "kano", + "1f6a4": "sürat teknesi", + "1f6a2": "gemi", + "2708": "uçak", + "1f681": "helikopter", + "1f6a0": "dağ teleferik hattı", + "1f6f0": "uydu", + "1f680": "roket", + "1f6f8": "uçan daire", + "23f0": "çalar saat", + "1f319": "hilal", + "1f321": "termometre", + "2600": "güneş", + "1fa90": "halkalı gezegen", + "1f31f": "parıldayan yıldız", + "1f300": "siklon", + "1f308": "gökkuşağı", + "2602": "şemsiye", + "2744": "kar tanesi", + "2604": "kuyruklu yıldız", + "1f525": "ateş", + "1f4a7": "damlacık", + "1f30a": "dalga", + "1f383": "kabak fener", + "2728": "parıltılar", + "1f388": "balon", + "1f389": "parti konfetisi", + "1f38f": "sazan şekilli flama", + "1f380": "kurdele", + "1f381": "paketlenmiş hediye", + "1f39f": "giriş bileti", + "1f3c6": "zafer kupası", + "26bd": "futbol topu", + "1f3c0": "basketbol", + "1f3c8": "amerikan futbolu", + "1f3be": "tenis", + "1f94f": "frizbi", + "1f3d3": "masa tenisi", + "1f3f8": "badminton", + "1f93f": "dalgıç maskesi", + "1f94c": "curling taşı", + "1f3af": "tam isabet", + "1fa80": "yoyo", + "1fa81": "uçurtma", + "1f52e": "kristal küre", + "1f3b2": "oyun zarı", + "1f9e9": "yapboz parçası", + "1f3a8": "boya paleti", + "1f9f5": "iplik", + "1f455": "tişört", + "1f9e6": "çorap", + "1f457": "elbise", + "1fa73": "şort", + "1f392": "okul çantası", + "1f45f": "koşu ayakkabısı", + "1f451": "taç", + "1f9e2": "siperli şapka", + "1f484": "ruj", + "1f48d": "yüzük", + "1f48e": "mücevher", + "1f4e2": "hoparlör", + "1f3b6": "müzik notaları", + "1f399": "stüdyo mikrofonu", + "1f4fb": "radyo", + "1f3b7": "saksafon", + "1fa97": "akordiyon", + "1f3b8": "gitar", + "1f3ba": "trompet", + "1f3bb": "keman", + "1fa95": "banjo", + "1f941": "davul", + "260e": "telefon", + "1f50b": "pil", + "1f4bf": "optik disk", + "1f9ee": "abaküs", + "1f3ac": "film tahtası", + "1f4a1": "ampul", + "1f526": "el feneri", + "1f3ee": "kırmızı kağıt fener", + "1f4d5": "kapalı kitap", + "1f3f7": "etiket", + "1f4b3": "kredi kartı", + "270f": "kurşun kalem", + "1f58c": "boya fırçası", + "1f58d": "pastel boya", + "1f4cc": "raptiye", + "1f4ce": "ataş", + "1f511": "anahtar", + "1fa83": "bumerang", + "1f3f9": "ok ve yay", + "2696": "terazi", + "1f9f2": "mıknatıs", + "1f9ea": "deney tüpü", + "1f9ec": "dna", + "1f52c": "mikroskop", + "1f52d": "teleskop", + "1f4e1": "uydu anteni", + "1fa91": "sandalye", + "1f9f9": "süpürge", + "1f5ff": "moyai heykeli" + }, + "uk": { + "1f47d": "прибулець", + "1f916": "робот", + "1f9e0": "мозок", + "1f441": "око", + "1f9d9": "маг", + "1f9da": "фея", + "1f9dc": "казкова водяна істота", + "1f435": "морда мавпи", + "1f9a7": "орангутанг", + "1f436": "морда собаки", + "1f43a": "вовк", + "1f98a": "лис", + "1f99d": "єнот", + "1f431": "морда кота", + "1f981": "лев", + "1f42f": "морда тигра", + "1f434": "голова коня", + "1f984": "єдиноріг", + "1f993": "зебра", + "1f98c": "олень", + "1f42e": "морда корови", + "1f437": "рило свині", + "1f417": "вепр", + "1f42a": "одногорбий верблюд", + "1f999": "лама", + "1f992": "жирафа", + "1f418": "слон", + "1f9a3": "мамонт", + "1f98f": "носоріг", + "1f42d": "морда миші", + "1f430": "морда кроля", + "1f43f": "бурундук", + "1f994": "їжак", + "1f987": "кажан", + "1f43b": "ведмідь", + "1f428": "коала", + "1f9a5": "лінивець", + "1f9a6": "видра", + "1f998": "кенгуру", + "1f425": "курча, що стоїть", + "1f426": "птах", + "1f54a": "голуб", + "1f986": "качка", + "1f989": "сова", + "1f9a4": "дронт", + "1fab6": "пір’їна", + "1f9a9": "фламінго", + "1f99a": "павич", + "1f99c": "папуга", + "1f40a": "крокодил", + "1f422": "черепаха", + "1f98e": "ящірка", + "1f40d": "змія", + "1f432": "голова дракона", + "1f995": "завропод", + "1f433": "кит, що пускає фонтан", + "1f42c": "дельфін", + "1f9ad": "тюлень", + "1f41f": "риба", + "1f420": "тропічна риба", + "1f988": "акула", + "1f419": "восьминіг", + "1f41a": "морська мушля", + "1f40c": "равлик", + "1f98b": "метелик", + "1f41b": "комаха", + "1f41d": "бджола", + "1f41e": "сонечко", + "1f490": "букет", + "1f339": "троянда", + "1f33a": "гібіскус", + "1f33b": "соняшник", + "1f337": "тюльпан", + "1f332": "вічнозелене дерево", + "1f333": "листяне дерево", + "1f334": "пальма", + "1f335": "кактус", + "1f33f": "лікарська рослина", + "1f341": "кленовий листок", + "1f344": "гриб", + "1f347": "виноград", + "1f348": "диня", + "1f349": "кавун", + "1f34a": "танжерин", + "1f34b": "лимон", + "1f34c": "банан", + "1f34d": "ананас", + "1f96d": "манго", + "1f34f": "зелене яблуко", + "1f350": "груша", + "1f351": "персик", + "1f352": "вишні", + "1f353": "полуниця", + "1fad0": "лохина", + "1f95d": "ківі", + "1f345": "томат", + "1fad2": "оливка", + "1f965": "кокос", + "1f951": "авокадо", + "1f346": "баклажан", + "1f955": "морква", + "1f33d": "качан кукурудзи", + "1f336": "гострий перець", + "1f96c": "листя салату", + "1f966": "броколі", + "1f9c5": "цибуля", + "1f95c": "арахіс", + "1f950": "круасан", + "1f956": "багет", + "1f968": "крендель", + "1f96f": "бейгл", + "1f95e": "млинці", + "1f9c7": "вафля", + "1f354": "гамбургер", + "1f355": "піца", + "1f32d": "хот-дог", + "1f32e": "тако", + "1f37f": "попкорн", + "1f980": "краб", + "1f99e": "омар", + "1f368": "морозиво", + "1f369": "пончик", + "1f36a": "печиво", + "1f382": "торт на день народження", + "1f9c1": "капкейк", + "1f36b": "плитка шоколаду", + "1f36c": "цукерка", + "1f36d": "льодяник", + "1fad6": "чайник", + "1f9c3": "пакетик із напоєм", + "1f9c9": "мате", + "1f9ed": "компас", + "1f3d4": "гора із засніженою верхівкою", + "1f30b": "вулкан", + "1f3d5": "кемпінг", + "1f3dd": "безлюдний острів", + "1f3e1": "будинок із садом", + "26f2": "фонтан", + "1f3a0": "коник на каруселі", + "1f3a1": "чортове колесо", + "1f3a2": "американські гірки", + "1f488": "вивіска перукаря (смугастий стовп)", + "1f686": "потяг", + "1f68b": "вагон трамвая", + "1f68d": "автобус, що наближається", + "1f695": "таксі", + "1f697": "автомобіль", + "1f69a": "вантажівка для доставки", + "1f69c": "трактор", + "1f6f5": "мопед", + "1f6fa": "авторикша", + "1f6f4": "самокат", + "1f6f9": "скейтборд", + "1f6fc": "роликовий ковзан", + "2693": "якір", + "26f5": "вітрильник", + "1f6f6": "каное", + "1f6a4": "швидкохідний катер", + "1f6a2": "корабель", + "2708": "літак", + "1f681": "гелікоптер", + "1f6a0": "канатна дорога в горах", + "1f6f0": "супутник", + "1f680": "ракета", + "1f6f8": "летюча тарілка", + "23f0": "будильник", + "1f319": "серп місяця", + "1f321": "термометр", + "2600": "сонце", + "1fa90": "планета з кільцем", + "1f31f": "сяйна зірка", + "1f300": "циклон", + "1f308": "веселка", + "2602": "парасолька", + "2744": "сніжинка", + "2604": "комета", + "1f525": "вогонь", + "1f4a7": "крапля", + "1f30a": "хвиля", + "1f383": "ліхтар-гарбуз", + "2728": "блискітки", + "1f388": "повітряна кулька", + "1f389": "хлопавка", + "1f38f": "вітровказ у формі коропів", + "1f380": "бант зі стрічки", + "1f381": "подарунок", + "1f39f": "вхідні квитки", + "1f3c6": "приз", + "26bd": "футбольний м’яч", + "1f3c0": "баскетбольний м’яч", + "1f3c8": "мʼяч для американського футболу", + "1f3be": "тенісний м’яч", + "1f94f": "літаючий диск", + "1f3d3": "ракетка і кулька для пінг-понгу", + "1f3f8": "ракетка і волан для бадмінтону", + "1f93f": "маска з трубкою", + "1f94c": "камʼяна шайба для керлінгу", + "1f3af": "мішень із прямим влученням", + "1fa80": "йо-йо", + "1fa81": "повітряний змій", + "1f52e": "кришталева куля", + "1f3b2": "гральна кість", + "1f9e9": "елемент пазла", + "1f3a8": "палітра художника", + "1f9f5": "нитка", + "1f455": "теніска поло", + "1f9e6": "шкарпетки", + "1f457": "сукня", + "1fa73": "шорти", + "1f392": "шкільний рюкзак", + "1f45f": "кросівка", + "1f451": "корона", + "1f9e2": "бейсболка", + "1f484": "помада", + "1f48d": "каблучка", + "1f48e": "коштовний камінь", + "1f4e2": "гучномовець", + "1f3b6": "музичні ноти", + "1f399": "студійний мікрофон", + "1f4fb": "радіоприймач", + "1f3b7": "саксофон", + "1fa97": "акордеон", + "1f3b8": "гітара", + "1f3ba": "труба", + "1f3bb": "скрипка", + "1fa95": "банджо", + "1f941": "барабан", + "260e": "телефон", + "1f50b": "батарея", + "1f4bf": "компакт-диск", + "1f9ee": "рахівниця", + "1f3ac": "кінохлопавка", + "1f4a1": "лампочка", + "1f526": "ліхтарик", + "1f3ee": "червоний паперовий ліхтар", + "1f4d5": "закрита книга", + "1f3f7": "бирка", + "1f4b3": "кредитна картка", + "270f": "олівець", + "1f58c": "пензель", + "1f58d": "пастель", + "1f4cc": "канцелярська кнопка", + "1f4ce": "скріпка", + "1f511": "ключ", + "1fa83": "бумеранг", + "1f3f9": "лук і стріла", + "2696": "ваги", + "1f9f2": "магніт", + "1f9ea": "пробірка", + "1f9ec": "ДНК", + "1f52c": "мікроскоп", + "1f52d": "телескоп", + "1f4e1": "супутникова антена", + "1fa91": "стілець", + "1f9f9": "мітла", + "1f5ff": "статуя з Острова Пасхи" + }, + "vi": { + "1f47d": "người ngoài hành tinh", + "1f916": "mặt rô-bốt", + "1f9e0": "não", + "1f441": "mắt", + "1f9d9": "pháp sư", + "1f9da": "tiên", + "1f9dc": "người cá", + "1f435": "mặt khỉ", + "1f9a7": "đười ươi", + "1f436": "mặt cún", + "1f43a": "mặt chó sói", + "1f98a": "cáo", + "1f99d": "gấu trúc", + "1f431": "mặt mèo", + "1f981": "mặt sư tử", + "1f42f": "mặt hổ", + "1f434": "mặt ngựa", + "1f984": "kỳ lân", + "1f993": "ngựa vằn", + "1f98c": "hươu", + "1f42e": "mặt bò", + "1f437": "mặt lợn", + "1f417": "lợn rừng", + "1f42a": "lạc đà", + "1f999": "lạc đà không bướu", + "1f992": "hươu cao cổ", + "1f418": "voi", + "1f9a3": "voi ma mút", + "1f98f": "tê giác", + "1f42d": "mặt chuột", + "1f430": "mặt thỏ", + "1f43f": "sóc chuột", + "1f994": "nhím", + "1f987": "dơi", + "1f43b": "gấu", + "1f428": "gấu túi", + "1f9a5": "con lười", + "1f9a6": "rái cá", + "1f998": "chuột túi", + "1f425": "mặt trước gà con", + "1f426": "chim", + "1f54a": "bồ câu", + "1f986": "vịt", + "1f989": "cú", + "1f9a4": "chim cưu", + "1fab6": "lông chim", + "1f9a9": "hồng hạc", + "1f99a": "con công", + "1f99c": "con vẹt", + "1f40a": "cá sấu", + "1f422": "rùa", + "1f98e": "thằn lằn", + "1f40d": "rắn", + "1f432": "mặt rồng", + "1f995": "khủng long chân thằn lằn", + "1f433": "cá voi đang phun nước", + "1f42c": "cá heo", + "1f9ad": "chó biển", + "1f41f": "cá", + "1f420": "cá nhiệt đới", + "1f988": "cá mập", + "1f419": "bạch tuộc", + "1f41a": "vỏ xoắn ốc", + "1f40c": "ốc sên", + "1f98b": "bướm", + "1f41b": "con bọ", + "1f41d": "ong mật", + "1f41e": "bọ rùa", + "1f490": "bó hoa", + "1f339": "hoa hồng", + "1f33a": "hoa dâm bụt", + "1f33b": "hoa hướng dương", + "1f337": "hoa tulip", + "1f332": "cây thường xanh", + "1f333": "cây rụng lá", + "1f334": "cây cọ", + "1f335": "cây xương rồng", + "1f33f": "thảo mộc", + "1f341": "lá phong", + "1f344": "nấm", + "1f347": "chùm nho", + "1f348": "dưa", + "1f349": "dưa hấu", + "1f34a": "quýt", + "1f34b": "chanh tây", + "1f34c": "chuối", + "1f34d": "dứa", + "1f96d": "xoài", + "1f34f": "táo xanh", + "1f350": "lê", + "1f351": "đào", + "1f352": "anh đào", + "1f353": "dâu tây", + "1fad0": "quả việt quất", + "1f95d": "quả kiwi", + "1f345": "cà chua", + "1fad2": "ôliu", + "1f965": "dừa", + "1f951": "quả bơ", + "1f346": "cà tím", + "1f955": "cà rốt", + "1f33d": "bắp ngô", + "1f336": "quả ớt", + "1f96c": "xanh lá", + "1f966": "xúp lơ xanh", + "1f9c5": "hành", + "1f95c": "đậu phộng", + "1f950": "bánh sừng bò", + "1f956": "bánh mì que", + "1f968": "bánh quy xoắn", + "1f96f": "bánh mỳ vòng", + "1f95e": "bánh kếp", + "1f9c7": "bánh quế", + "1f354": "bánh hamburger", + "1f355": "bánh pizza", + "1f32d": "bánh mì xúc xích", + "1f32e": "bánh taco", + "1f37f": "bỏng ngô", + "1f980": "cua", + "1f99e": "tôm hùm", + "1f368": "kem", + "1f369": "bánh rán vòng", + "1f36a": "bánh quy", + "1f382": "bánh sinh nhật", + "1f9c1": "bánh nướng nhỏ", + "1f36b": "thanh sô cô la", + "1f36c": "kẹo", + "1f36d": "kẹo mút", + "1fad6": "ấm trà", + "1f9c3": "hộp đồ uống", + "1f9c9": "trà nhựa ruồi", + "1f9ed": "la bàn", + "1f3d4": "đỉnh núi phủ tuyết", + "1f30b": "núi lửa", + "1f3d5": "cắm trại", + "1f3dd": "đảo hoang", + "1f3e1": "nhà có vườn", + "26f2": "đài phun nước", + "1f3a0": "ngựa đu quay", + "1f3a1": "vòng đu quay", + "1f3a2": "tàu lượn siêu tốc", + "1f488": "biển hiệu của thợ cắt tóc", + "1f686": "tàu hỏa", + "1f68b": "tàu điện", + "1f68d": "xe buýt đang tới", + "1f695": "taxi", + "1f697": "ô tô", + "1f69a": "xe tải giao hàng", + "1f69c": "máy kéo", + "1f6f5": "xe tay ga", + "1f6fa": "xe lam", + "1f6f4": "xe hẩy", + "1f6f9": "ván trượt", + "1f6fc": "giày trượt patin", + "2693": "mỏ neo", + "26f5": "thuyền buồm", + "1f6f6": "xuồng", + "1f6a4": "xuồng cao tốc", + "1f6a2": "tàu thủy", + "2708": "máy bay", + "1f681": "máy bay trực thăng", + "1f6a0": "cáp treo trên núi", + "1f6f0": "vệ tinh", + "1f680": "tên lửa", + "1f6f8": "đĩa bay", + "23f0": "đồng hồ báo thức", + "1f319": "trăng lưỡi liềm", + "1f321": "nhiệt kế", + "2600": "mặt trời", + "1fa90": "hành tinh có vành đai bao quanh", + "1f31f": "ngôi sao lấp lánh", + "1f300": "hình lốc xoáy", + "1f308": "cầu vồng", + "2602": "cái ô", + "2744": "bông tuyết", + "2604": "sao chổi", + "1f525": "lửa", + "1f4a7": "giọt nước", + "1f30a": "sóng nước", + "1f383": "đèn lồng bí ngô", + "2728": "ánh lấp lánh", + "1f388": "bóng bay", + "1f389": "pháo giấy buổi tiệc", + "1f38f": "cờ cá chép", + "1f380": "ruy băng", + "1f381": "gói quà", + "1f39f": "vé vào cửa", + "1f3c6": "cúp", + "26bd": "bóng đá", + "1f3c0": "bóng rổ", + "1f3c8": "bóng bầu dục Mỹ", + "1f3be": "quần vợt", + "1f94f": "đĩa bay trò chơi", + "1f3d3": "bóng bàn", + "1f3f8": "cầu lông", + "1f93f": "mặt nạ lặn", + "1f94c": "bi đá trên băng", + "1f3af": "trúng đích", + "1fa80": "yo-yo", + "1fa81": "diều", + "1f52e": "quả cầu pha lê", + "1f3b2": "trò xúc xắc", + "1f9e9": "ghép hình", + "1f3a8": "bảng màu", + "1f9f5": "sợi chỉ", + "1f455": "áo phông", + "1f9e6": "tất", + "1f457": "váy", + "1fa73": "quần soóc", + "1f392": "ba lô đi học", + "1f45f": "giày chạy", + "1f451": "vương miện", + "1f9e2": "mũ lưỡi trai", + "1f484": "son môi", + "1f48d": "nhẫn", + "1f48e": "đá quý", + "1f4e2": "loa phát thanh", + "1f3b6": "các nốt nhạc", + "1f399": "micrô phòng thu âm", + "1f4fb": "radio", + "1f3b7": "kèn saxophone", + "1fa97": "phong cầm", + "1f3b8": "đàn ghi-ta", + "1f3ba": "kèn trumpet", + "1f3bb": "đàn violin", + "1fa95": "đàn banjo", + "1f941": "trống", + "260e": "điện thoại bàn", + "1f50b": "pin", + "1f4bf": "đĩa quang", + "1f9ee": "bàn tính", + "1f3ac": "bảng clapper", + "1f4a1": "bóng đèn", + "1f526": "đèn pin", + "1f3ee": "đèn lồng giấy màu đỏ", + "1f4d5": "sách đóng", + "1f3f7": "nhãn", + "1f4b3": "thẻ tín dụng", + "270f": "bút chì", + "1f58c": "cọ vẽ tranh", + "1f58d": "bút sáp màu", + "1f4cc": "đinh ghim", + "1f4ce": "kẹp giấy", + "1f511": "chìa khóa", + "1fa83": "bumơrang", + "1f3f9": "cung tên", + "2696": "cân thăng bằng", + "1f9f2": "nam châm", + "1f9ea": "ống nghiệm", + "1f9ec": "adn", + "1f52c": "kính hiển vi", + "1f52d": "kính viễn vọng", + "1f4e1": "ăng-ten vệ tinh", + "1fa91": "ghế", + "1f9f9": "cây chổi", + "1f5ff": "tượng moai" + }, + "zh-CN": { + "1f47d": "外星人", + "1f916": "机器人", + "1f9e0": "脑", + "1f441": "眼睛", + "1f9d9": "法师", + "1f9da": "精灵", + "1f9dc": "人鱼", + "1f435": "猴头", + "1f9a7": "红毛猩猩", + "1f436": "狗脸", + "1f43a": "狼", + "1f98a": "狐狸", + "1f99d": "浣熊", + "1f431": "猫脸", + "1f981": "狮子", + "1f42f": "老虎头", + "1f434": "马头", + "1f984": "独角兽", + "1f993": "斑马", + "1f98c": "鹿", + "1f42e": "奶牛头", + "1f437": "猪头", + "1f417": "野猪", + "1f42a": "骆驼", + "1f999": "美洲鸵", + "1f992": "长颈鹿", + "1f418": "大象", + "1f9a3": "猛犸", + "1f98f": "犀牛", + "1f42d": "老鼠头", + "1f430": "兔子头", + "1f43f": "松鼠", + "1f994": "刺猬", + "1f987": "蝙蝠", + "1f43b": "熊", + "1f428": "考拉", + "1f9a5": "树懒", + "1f9a6": "水獭", + "1f998": "袋鼠", + "1f425": "正面朝向的小鸡", + "1f426": "鸟", + "1f54a": "鸽", + "1f986": "鸭子", + "1f989": "猫头鹰", + "1f9a4": "渡渡鸟", + "1fab6": "羽毛", + "1f9a9": "火烈鸟", + "1f99a": "孔雀", + "1f99c": "鹦鹉", + "1f40a": "鳄鱼", + "1f422": "龟", + "1f98e": "蜥蜴", + "1f40d": "蛇", + "1f432": "龙头", + "1f995": "蜥蜴类", + "1f433": "喷水的鲸", + "1f42c": "海豚", + "1f9ad": "海豹", + "1f41f": "鱼", + "1f420": "热带鱼", + "1f988": "鲨鱼", + "1f419": "章鱼", + "1f41a": "海螺", + "1f40c": "蜗牛", + "1f98b": "蝴蝶", + "1f41b": "毛毛虫", + "1f41d": "蜜蜂", + "1f41e": "瓢虫", + "1f490": "花束", + "1f339": "玫瑰", + "1f33a": "芙蓉", + "1f33b": "向日葵", + "1f337": "郁金香", + "1f332": "松树", + "1f333": "落叶树", + "1f334": "棕榈树", + "1f335": "仙人掌", + "1f33f": "药草", + "1f341": "枫叶", + "1f344": "蘑菇", + "1f347": "葡萄", + "1f348": "甜瓜", + "1f349": "西瓜", + "1f34a": "橘子", + "1f34b": "柠檬", + "1f34c": "香蕉", + "1f34d": "菠萝", + "1f96d": "芒果", + "1f34f": "青苹果", + "1f350": "梨", + "1f351": "桃", + "1f352": "樱桃", + "1f353": "草莓", + "1fad0": "蓝莓", + "1f95d": "猕猴桃", + "1f345": "西红柿", + "1fad2": "橄榄", + "1f965": "椰子", + "1f951": "鳄梨", + "1f346": "茄子", + "1f955": "胡萝卜", + "1f33d": "玉米", + "1f336": "红辣椒", + "1f96c": "绿叶蔬菜", + "1f966": "西兰花", + "1f9c5": "洋葱", + "1f95c": "花生", + "1f950": "羊角面包", + "1f956": "法式长棍面包", + "1f968": "椒盐卷饼", + "1f96f": "面包圈", + "1f95e": "烙饼", + "1f9c7": "华夫饼", + "1f354": "汉堡", + "1f355": "披萨", + "1f32d": "热狗", + "1f32e": "墨西哥卷饼", + "1f37f": "爆米花", + "1f980": "蟹", + "1f99e": "龙虾", + "1f368": "冰淇淋", + "1f369": "甜甜圈", + "1f36a": "饼干", + "1f382": "生日蛋糕", + "1f9c1": "纸杯蛋糕", + "1f36b": "巧克力", + "1f36c": "糖", + "1f36d": "棒棒糖", + "1fad6": "茶壶", + "1f9c3": "饮料盒", + "1f9c9": "马黛茶", + "1f9ed": "指南针", + "1f3d4": "雪山", + "1f30b": "火山", + "1f3d5": "露营", + "1f3dd": "无人荒岛", + "1f3e1": "别墅", + "26f2": "喷泉", + "1f3a0": "旋转木马", + "1f3a1": "摩天轮", + "1f3a2": "过山车", + "1f488": "理发店", + "1f686": "火车", + "1f68b": "有轨电车", + "1f68d": "迎面驶来的公交车", + "1f695": "出租车", + "1f697": "汽车", + "1f69a": "货车", + "1f69c": "拖拉机", + "1f6f5": "小型摩托车", + "1f6fa": "三轮摩托车", + "1f6f4": "滑板车", + "1f6f9": "滑板", + "1f6fc": "四轮滑冰鞋", + "2693": "锚", + "26f5": "帆船", + "1f6f6": "独木舟", + "1f6a4": "快艇", + "1f6a2": "船", + "2708": "飞机", + "1f681": "直升机", + "1f6a0": "缆车", + "1f6f0": "卫星", + "1f680": "火箭", + "1f6f8": "飞碟", + "23f0": "闹钟", + "1f319": "弯月", + "1f321": "温度计", + "2600": "太阳", + "1fa90": "有环行星", + "1f31f": "闪亮的星星", + "1f300": "台风", + "1f308": "彩虹", + "2602": "伞", + "2744": "雪花", + "2604": "彗星", + "1f525": "火焰", + "1f4a7": "水滴", + "1f30a": "浪花", + "1f383": "南瓜灯", + "2728": "闪亮", + "1f388": "气球", + "1f389": "拉炮彩带", + "1f38f": "鲤鱼旗", + "1f380": "蝴蝶结", + "1f381": "礼物", + "1f39f": "入场券", + "1f3c6": "奖杯", + "26bd": "足球", + "1f3c0": "篮球", + "1f3c8": "美式橄榄球", + "1f3be": "网球", + "1f94f": "飞盘", + "1f3d3": "乒乓球", + "1f3f8": "羽毛球", + "1f93f": "潜水面罩", + "1f94c": "冰壶", + "1f3af": "正中靶心的飞镖", + "1fa80": "悠悠球", + "1fa81": "风筝", + "1f52e": "水晶球", + "1f3b2": "骰子", + "1f9e9": "拼图", + "1f3a8": "调色盘", + "1f9f5": "线", + "1f455": "T恤", + "1f9e6": "袜子", + "1f457": "连衣裙", + "1fa73": "短裤", + "1f392": "书包", + "1f45f": "跑鞋", + "1f451": "皇冠", + "1f9e2": "鸭舌帽", + "1f484": "唇膏", + "1f48d": "戒指", + "1f48e": "宝石", + "1f4e2": "喇叭", + "1f3b6": "多个音符", + "1f399": "录音室麦克风", + "1f4fb": "收音机", + "1f3b7": "萨克斯管", + "1fa97": "手风琴", + "1f3b8": "吉他", + "1f3ba": "小号", + "1f3bb": "小提琴", + "1fa95": "班卓琴", + "1f941": "鼓", + "260e": "电话", + "1f50b": "电池", + "1f4bf": "光盘", + "1f9ee": "算盘", + "1f3ac": "场记板", + "1f4a1": "灯泡", + "1f526": "手电筒", + "1f3ee": "红灯笼", + "1f4d5": "合上的书本", + "1f3f7": "标签", + "1f4b3": "信用卡", + "270f": "铅笔", + "1f58c": "画笔", + "1f58d": "蜡笔", + "1f4cc": "图钉", + "1f4ce": "回形针", + "1f511": "钥匙", + "1fa83": "回旋镖", + "1f3f9": "弓和箭", + "2696": "天平", + "1f9f2": "磁铁", + "1f9ea": "试管", + "1f9ec": "DNA", + "1f52c": "显微镜", + "1f52d": "望远镜", + "1f4e1": "卫星天线", + "1fa91": "椅子", + "1f9f9": "扫帚", + "1f5ff": "摩埃" + }, + "zh-TW": { + "1f47d": "外星人", + "1f916": "機器人", + "1f9e0": "腦", + "1f441": "眼睛", + "1f9d9": "魔術師", + "1f9da": "仙女", + "1f9dc": "人魚", + "1f435": "猴子頭", + "1f9a7": "猩猩", + "1f436": "狗頭", + "1f43a": "狼", + "1f98a": "狐狸", + "1f99d": "浣熊", + "1f431": "貓頭", + "1f981": "獅子", + "1f42f": "老虎頭", + "1f434": "馬頭", + "1f984": "獨角獸", + "1f993": "斑馬", + "1f98c": "鹿", + "1f42e": "牛頭", + "1f437": "豬頭", + "1f417": "野豬", + "1f42a": "單峰駱駝", + "1f999": "羊駝", + "1f992": "長頸鹿", + "1f418": "大象", + "1f9a3": "毛象", + "1f98f": "犀牛", + "1f42d": "老鼠頭", + "1f430": "兔子頭", + "1f43f": "松鼠", + "1f994": "刺蝟", + "1f987": "蝙蝠", + "1f43b": "熊", + "1f428": "無尾熊", + "1f9a5": "樹懶", + "1f9a6": "水獺", + "1f998": "袋鼠", + "1f425": "小雞", + "1f426": "鳥", + "1f54a": "飛鳥", + "1f986": "鴨子", + "1f989": "貓頭鷹", + "1f9a4": "渡渡鳥", + "1fab6": "羽毛", + "1f9a9": "紅鶴", + "1f99a": "孔雀", + "1f99c": "鸚鵡", + "1f40a": "鱷魚", + "1f422": "烏龜", + "1f98e": "蜥蜴", + "1f40d": "蛇", + "1f432": "龍頭", + "1f995": "蜥腳類恐龍", + "1f433": "鯨魚", + "1f42c": "海豚", + "1f9ad": "海豹", + "1f41f": "魚", + "1f420": "熱帶魚", + "1f988": "鯊魚", + "1f419": "章魚", + "1f41a": "海螺", + "1f40c": "蝸牛", + "1f98b": "蝴蝶", + "1f41b": "毛毛蟲", + "1f41d": "蜜蜂", + "1f41e": "瓢蟲", + "1f490": "花束", + "1f339": "玫瑰", + "1f33a": "芙蓉", + "1f33b": "向日葵", + "1f337": "鬱金香", + "1f332": "常青樹", + "1f333": "落葉樹", + "1f334": "棕櫚樹", + "1f335": "仙人掌", + "1f33f": "草藥", + "1f341": "楓葉", + "1f344": "蘑菇", + "1f347": "葡萄", + "1f348": "瓜", + "1f349": "西瓜", + "1f34a": "橘子", + "1f34b": "檸檬", + "1f34c": "香蕉", + "1f34d": "鳳梨", + "1f96d": "芒果", + "1f34f": "青蘋果", + "1f350": "梨子", + "1f351": "桃子", + "1f352": "櫻桃", + "1f353": "草莓", + "1fad0": "藍莓", + "1f95d": "奇異果", + "1f345": "番茄", + "1fad2": "橄欖", + "1f965": "椰子", + "1f951": "酪梨", + "1f346": "茄子", + "1f955": "胡蘿蔔", + "1f33d": "玉米", + "1f336": "辣椒", + "1f96c": "綠葉蔬菜", + "1f966": "花椰菜", + "1f9c5": "洋蔥", + "1f95c": "花生", + "1f950": "可頌", + "1f956": "法國麵包", + "1f968": "蝴蝶餅", + "1f96f": "貝果", + "1f95e": "鬆餅", + "1f9c7": "格子鬆餅", + "1f354": "漢堡", + "1f355": "披薩", + "1f32d": "熱狗", + "1f32e": "夾餅", + "1f37f": "爆米花", + "1f980": "螃蟹", + "1f99e": "龍蝦", + "1f368": "冰淇淋", + "1f369": "甜甜圈", + "1f36a": "餅乾", + "1f382": "生日蛋糕", + "1f9c1": "杯子蛋糕", + "1f36b": "巧克力", + "1f36c": "糖", + "1f36d": "棒棒糖", + "1fad6": "茶壺", + "1f9c3": "鋁箔包", + "1f9c9": "瑪黛茶", + "1f9ed": "指南針", + "1f3d4": "雪山", + "1f30b": "火山", + "1f3d5": "露營", + "1f3dd": "熱帶小島", + "1f3e1": "別墅", + "26f2": "噴泉", + "1f3a0": "旋轉木馬", + "1f3a1": "摩天輪", + "1f3a2": "雲霄飛車", + "1f488": "理髮店", + "1f686": "火車", + "1f68b": "電纜車", + "1f68d": "公共汽車", + "1f695": "計程車", + "1f697": "汽車", + "1f69a": "貨車", + "1f69c": "拖弋機", + "1f6f5": "摩托車", + "1f6fa": "嘟嘟車", + "1f6f4": "滑板車", + "1f6f9": "滑板", + "1f6fc": "輪式溜冰鞋", + "2693": "錨", + "26f5": "帆船", + "1f6f6": "獨木舟", + "1f6a4": "快艇", + "1f6a2": "船", + "2708": "飛機", + "1f681": "直升機", + "1f6a0": "纜車", + "1f6f0": "衛星", + "1f680": "火箭", + "1f6f8": "飛碟", + "23f0": "鬧鐘", + "1f319": "彎月", + "1f321": "溫度計", + "2600": "太陽", + "1fa90": "帶行星環的行星", + "1f31f": "閃爍的星星", + "1f300": "颱風", + "1f308": "彩虹", + "2602": "雨傘", + "2744": "雪花", + "2604": "慧星", + "1f525": "火", + "1f4a7": "水滴", + "1f30a": "波浪", + "1f383": "南瓜燈", + "2728": "閃爍", + "1f388": "氣球", + "1f389": "拉炮", + "1f38f": "鯉魚旗", + "1f380": "蝴蝶結", + "1f381": "禮物", + "1f39f": "入場券", + "1f3c6": "獎盃", + "26bd": "足球", + "1f3c0": "籃球", + "1f3c8": "美式足球", + "1f3be": "網球", + "1f94f": "飛盤", + "1f3d3": "桌球", + "1f3f8": "羽毛球", + "1f93f": "潛水面罩", + "1f94c": "冰石壺", + "1f3af": "命中", + "1fa80": "溜溜球", + "1fa81": "風箏", + "1f52e": "水晶球", + "1f3b2": "骰子", + "1f9e9": "拼圖", + "1f3a8": "調色板", + "1f9f5": "線", + "1f455": "T恤", + "1f9e6": "襪子", + "1f457": "洋裝", + "1fa73": "短泳褲", + "1f392": "書包", + "1f45f": "運動鞋", + "1f451": "皇冠", + "1f9e2": "鴨舌帽", + "1f484": "口紅", + "1f48d": "戒指", + "1f48e": "鑽石", + "1f4e2": "大聲公", + "1f3b6": "樂符", + "1f399": "錄音室麥克風", + "1f4fb": "收音機", + "1f3b7": "薩克斯風", + "1fa97": "手風琴", + "1f3b8": "吉他", + "1f3ba": "小號", + "1f3bb": "小提琴", + "1fa95": "斑鳩琴", + "1f941": "鼓", + "260e": "電話", + "1f50b": "電池", + "1f4bf": "光碟", + "1f9ee": "算盤", + "1f3ac": "場記板", + "1f4a1": "燈泡", + "1f526": "手電筒", + "1f3ee": "燈籠", + "1f4d5": "合起來的書本", + "1f3f7": "吊牌", + "1f4b3": "信用卡", + "270f": "鉛筆", + "1f58c": "畫筆", + "1f58d": "蠟筆", + "1f4cc": "圖釘", + "1f4ce": "迴紋針", + "1f511": "鑰匙", + "1fa83": "迴力鏢", + "1f3f9": "弓箭", + "2696": "天平", + "1f9f2": "磁鐵", + "1f9ea": "試管", + "1f9ec": "DNA", + "1f52c": "顯微鏡", + "1f52d": "望遠鏡", + "1f4e1": "衛星天線", + "1fa91": "椅子", + "1f9f9": "掃帚", + "1f5ff": "復活節島" + } +} diff --git a/browser/components/torpreferences/content/bridgemoji/bridge-emojis.json b/browser/components/torpreferences/content/bridgemoji/bridge-emojis.json @@ -0,0 +1,258 @@ +[ + "👽️", + "🤖", + "🧠", + "👁️", + "🧙", + "🧚", + "🧜", + "🐵", + "🦧", + "🐶", + "🐺", + "🦊", + "🦝", + "🐱", + "🦁", + "🐯", + "🐴", + "🦄", + "🦓", + "🦌", + "🐮", + "🐷", + "🐗", + "🐪", + "🦙", + "🦒", + "🐘", + "🦣", + "🦏", + "🐭", + "🐰", + "🐿️", + "🦔", + "🦇", + "🐻", + "🐨", + "🦥", + "🦦", + "🦘", + "🐥", + "🐦️", + "🕊️", + "🦆", + "🦉", + "🦤", + "🪶", + "🦩", + "🦚", + "🦜", + "🐊", + "🐢", + "🦎", + "🐍", + "🐲", + "🦕", + "🐳", + "🐬", + "🦭", + "🐟️", + "🐠", + "🦈", + "🐙", + "🐚", + "🐌", + "🦋", + "🐛", + "🐝", + "🐞", + "💐", + "🌹", + "🌺", + "🌻", + "🌷", + "🌲", + "🌳", + "🌴", + "🌵", + "🌿", + "🍁", + "🍇", + "🍈", + "🍉", + "🍊", + "🍋", + "🍌", + "🍍", + "🥭", + "🍏", + "🍐", + "🍑", + "🍒", + "🍓", + "🫐", + "🥝", + "🍅", + "🫒", + "🥥", + "🥑", + "🍆", + "🥕", + "🌽", + "🌶️", + "🥬", + "🥦", + "🧅", + "🍄", + "🥜", + "🥐", + "🥖", + "🥨", + "🥯", + "🥞", + "🧇", + "🍔", + "🍕", + "🌭", + "🌮", + "🍿", + "🦀", + "🦞", + "🍨", + "🍩", + "🍪", + "🎂", + "🧁", + "🍫", + "🍬", + "🍭", + "🫖", + "🧃", + "🧉", + "🧭", + "🏔️", + "🌋", + "🏕️", + "🏝️", + "🏡", + "⛲️", + "🎠", + "🎡", + "🎢", + "💈", + "🚆", + "🚋", + "🚍️", + "🚕", + "🚗", + "🚚", + "🚜", + "🛵", + "🛺", + "🛴", + "🛹", + "🛼", + "⚓️", + "⛵️", + "🛶", + "🚤", + "🚢", + "✈️", + "🚁", + "🚠", + "🛰️", + "🚀", + "🛸", + "⏰", + "🌙", + "🌡️", + "☀️", + "🪐", + "🌟", + "🌀", + "🌈", + "☂️", + "❄️", + "☄️", + "🔥", + "💧", + "🌊", + "🎃", + "✨", + "🎈", + "🎉", + "🎏", + "🎀", + "🎁", + "🎟️", + "🏆️", + "⚽️", + "🏀", + "🏈", + "🎾", + "🥏", + "🏓", + "🏸", + "🤿", + "🥌", + "🎯", + "🪀", + "🪁", + "🔮", + "🎲", + "🧩", + "🎨", + "🧵", + "👕", + "🧦", + "👗", + "🩳", + "🎒", + "👟", + "👑", + "🧢", + "💄", + "💍", + "💎", + "📢", + "🎶", + "🎙️", + "📻️", + "🎷", + "🪗", + "🎸", + "🎺", + "🎻", + "🪕", + "🥁", + "☎️", + "🔋", + "💿️", + "🧮", + "🎬️", + "💡", + "🔦", + "🏮", + "📕", + "🏷️", + "💳️", + "✏️", + "🖌️", + "🖍️", + "📌", + "📎", + "🔑", + "🪃", + "🏹", + "⚖️", + "🧲", + "🧪", + "🧬", + "🔬", + "🔭", + "📡", + "🪑", + "🧹", + "🗿" +] diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f300.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f300.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#55ACEE" d="M35.782 24.518c-.13-.438-.422-.799-.821-1.016-.802-.436-1.879-.116-2.316.683-1.797 3.296-4.771 5.695-8.372 6.757-3.563 1.051-7.437.634-10.698-1.144-2.558-1.394-4.419-3.699-5.242-6.493-.74-2.514-.495-5.016.552-7.033-.363 1.605-.313 3.285.164 4.908.737 2.507 2.407 4.575 4.701 5.823 2.733 1.492 5.989 1.841 8.979.961 3.025-.892 5.521-2.906 7.026-5.672 1.832-3.358 2.246-7.228 1.165-10.898-1.08-3.669-3.524-6.698-6.883-8.529C19.984.657 15.165.14 10.738 1.446 6.261 2.764 2.566 5.746.332 9.843c-.451.826-.145 1.865.681 2.317.804.439 1.884.117 2.319-.682C5.127 8.183 8.1 5.784 11.703 4.723c3.563-1.048 7.438-.634 10.699 1.142 2.556 1.394 4.416 3.7 5.239 6.495.741 2.514.496 5.017-.552 7.033.363-1.604.315-3.285-.162-4.911-.739-2.504-2.409-4.573-4.702-5.824-2.734-1.49-5.99-1.838-8.98-.959-3.022.89-5.518 2.904-7.025 5.671-1.832 3.357-2.245 7.227-1.165 10.897 1.081 3.671 3.525 6.7 6.883 8.529 2.567 1.4 5.451 2.141 8.341 2.141 1.669 0 3.337-.242 4.958-.72 4.477-1.317 8.173-4.301 10.406-8.399.219-.399.269-.862.139-1.3zM16.784 14.002c.373-.11.758-.166 1.143-.166 1.779 0 3.372 1.193 3.875 2.901.629 2.138-.599 4.39-2.737 5.02-.373.11-.757.166-1.142.166-1.778 0-3.372-1.193-3.875-2.902-.63-2.137.598-4.389 2.736-5.019z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f308.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f308.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#8767AC" d="M36 1C16.118 1 1 16.118 1 36h17.042c0-9.917 8.042-17.958 17.958-17.958V1z"/><path fill="#EB2027" d="M0 35.999h3.042c0-18.189 14.734-32.935 32.917-32.957V0C16.095.023 0 16.131 0 35.999z"/><path fill="#F19020" d="M3.083 36h3C6.083 19.468 19.473 6.065 36 6.043v-3C17.817 3.065 3.083 17.811 3.083 36z"/><path fill="#FFCB4C" d="M6.083 36h3C9.083 21.125 21.13 9.065 36 9.043v-3C19.473 6.065 6.083 19.468 6.083 36z"/><path fill="#5C903F" d="M9.083 36h3c0-13.217 10.705-23.935 23.917-23.957v-3C21.13 9.065 9.083 21.125 9.083 36z"/><path fill="#226798" d="M12.083 36h3c0-11.56 9.362-20.934 20.917-20.956v-3.001C22.788 12.065 12.083 22.783 12.083 36z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f30a.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f30a.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#269" d="M33.398 23.678c-7.562 4.875-20.062-.438-18.375-8.062 1.479-6.684 9.419-4.763 11.225-3.861 1.806.902.713-3.889-3.475-5.327C17.1 4.48 10.156 4.893 7.961 14.678c-1.5 6.687 1.438 16.062 12.719 16.187 11.281.125 12.718-7.187 12.718-7.187z"/><path fill="#55ACEE" d="M35.988 25.193c0-2.146-2.754-2.334-4-1.119-2.994 2.919-7.402 4.012-13.298 2.861-10.25-2-10.341-14.014-3.333-17.441 3.791-1.854 8.289.341 9.999 1.655 1.488 1.143 4.334 2.66 4.185.752C29.223 7.839 21.262-.86 10.595 4.64-.071 10.14 0 22.553 0 24.803v7.25C0 34.262 1.814 36 4.023 36h28C34.232 36 36 34.262 36 32.053c0 0-.004-6.854-.012-6.86z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f30b.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f30b.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M12 36V16s-1.17 1.053-2.354 1.929c-.313.231-1.977.79-2.312 1.04-1.762 1.315-2.552 3.841-2.792 4.167C4.083 23.76 0 36 0 36h12z"/><path fill="#4B545D" d="M32 36l-5.5-17.75-8.5-5.656-6.458 2.208C11.135 15.583 10 18.25 10 18.25L8.75 22 0 36h32z"/><path fill="#292F33" d="M18.135 25.726c-.145-.513-.026-.97-.177-1.476-.148-.499-.566-1.047-.693-1.478-.265-.899-.454-1.583-.445-1.772.024-.469.894-.401 1.102.469.293 1.224.688 1.594.688 1.594s.084-3.381-.632-4.068c.145-.231.289-.476.418-.744.625-1.292.646-2.104.646-2.104S16.521 19.208 15.82 21c-.701 1.792 1 8 1 8l-4 7h4.467s-.474-1.469-.467-1.969c.007-.5 1.899-3.688 2-5.031.041-.545-.285-1.861-.685-3.274zm15.74.024c-.515-.586-1.841-1.42-3.128-2.154 0 0-2.335-5.596-3.622-7.263s-3.667-3-3.667-3l-2.646 1.479s1.705 1.446 2.646 3.062.689 3.519.745 3.908c.067.467.059.973.588 1.759 1.045 1.553 1.726 1.541 2.183 2.276.049.145.099.291.15.432.14.385.68.656.792 1.021.175.576.878 2.284.682 3.09-.106.437-.224 1.521-.307 2.014-.341 2.043.766 3.626.766 3.626H36s-1-8.969-2.125-10.25z"/><path fill="#FFAC33" d="M26.098 22.256c-.772-.754-1.187-1.898-1.229-3.294.173-1.667-4.662-4.923-4.662-4.923l-1.915.316s4.112 1.681 4.708 4.453c.297 1.381-.107 3.271-.208 4.11-.136 1.119.661 1.768.875 2.832.111.55.007 1.694-.14 2.878-.075.602-.348 1.175-.422 1.726-.192 1.424-.12 2.472.229 1.812.422-.796.653-1.922 1.263-3.606.293-.81.311-1.743.239-2.811-.031-.461.111-1.009.061-1.521-.051-.528-.294-1.02-.333-1.604-.011-.166.03-.738.092-1.444.074.012.146.054.216.172.938 1.562.764 3.025 1.276 2.581.41-.356.493-1.146-.05-1.677z"/><path fill="#292F33" d="M8.77 24.997s-4.437 3.087-5.603 4.545S0 36 0 36h4.5s.042-1.896-.156-2.688.312-2.455.906-2.875c1.417-1 2.381-2.31 2.52-2.149.521.604.521 1.208.521 1.208s.499-1.378.521-2.542-.042-1.957-.042-1.957z"/><path fill="#FFAC33" d="M18 12.594s-3.844-1.094-6.458 1.25C10.351 14.911 10.48 15.896 10 18.25s-1.861 3.086-2.062 4.021c-.396 1.833-1.852 3.23-2.417 4.104-.328.508-.758 1.336-1.038 1.802-.586.978-1.014 1.805-1.066 2.239-.125 1.042 1.833-1.208 1.833-1.208l3.281-4.035c-.107 2.301-.924 4.738-.031 4.514.75-.188 1.363-1.136 1.016-2.156-.454-1.336-.338-2.483-.094-3.456.05-.089 2.252-4.007 2.787-7.117.542-3.146 5.381-3.976 5.381-3.976l2.244.862.417-1.066L18 12.594z"/><path fill="#E95F28" d="M27.953 17c-1.328-1.75-3.286-3.685-4.234-3.988-.823-.263-.428.815-.428.815s2.833 1.236 4.271 6.736c.686 2.625 2.765 3.711 3.344 5.344 1.938 5.469 4.166 6.463 2.943 4.747S29.281 18.75 27.953 17zm-9.972 1.535c-.108-.166-.205-.306-.294-.437 1.259-1.904 2.751-4.035 2.751-4.035s-2.912-.294-3 .031c-.875 3.219-1.669 4.238-2.312 6.281-1.876 5.958 1.21 9.869 1.694 8.625.388-1-.211-3.746-.672-5.373s-.266-2.002-.169-2.669c.034-.233.594-1.153 1.303-2.244.089.071.172.163.243.29.446.8.653 2.26.753 3.251.115 1.139 1.134 1.653 1.696 1.25s-.188-2.422-1.41-3.726c-.289-.31-.392-.95-.583-1.244z"/><path fill="#E95F28" d="M23.969 13.125s.594 1.156-1.635 1.135c-.584-.005-.861.512-1.625.576-.636.053-1.509-.243-2.229-.243-.72 0-1.55.491-2.186.438-.766-.064-1.659-.834-2.231-.959-1.062-.232-1.792-.289-1.792-.646 0-.357 1.207-.789 2.271-1.021.571-.125 1.058.285 1.822.221.636-.053 1.291-.101 2.011-.101.72 0 1.415-.431 2.051-.377.766.064 1.403.432 1.979.535.683.123 1.088.244 1.314.329.185.069.25.113.25.113z"/><path fill="#FFAC33" d="M25.531 6.906s-3.455-1.365-6.764-1.365-7.392 1.886-7.392 1.886c3.25 2.764 3.119 5.697 3.119 5.697h7.688c0 .001 1.162-4.052 3.349-6.218z"/><path fill="#FFAC33" d="M22.182 13.125s-.056.21-.4.312c-.091.027-.307-.048-.453 0-.174.057-.486.201-.641.219-.166.02-.546-.094-.734-.078-.344.028-.519.159-.922.172-.273.008-.401-.098-.693-.098-.109 0-.341-.097-.525-.089-.303.012-.583.13-.75.125-.453-.014-.545-.216-.922-.25-.365-.032-.625.141-.891.094-.502-.089-.756-.406-.756-.406 0-.291 1.721-.527 3.844-.527s3.843.526 3.843.526z"/><path fill="#E95F28" d="M17.145 13.682s-.07-.575-.301-1.367c-.615-2.107-.594-3.628-.594-3.628l-1.396.667s.729 1.396 1.305 4.093c0 0 .2.005.429.129s.557.106.557.106zm1.698.063c.004-.228.01-.715.074-1.214.063-.492.321-1.677.417-2.26.163-.995.117-1.696.333-2.083l-2.229.083s.471.931.583 2.042c.088.866.001 2.239.195 3.327 0 0 .063.017.149.024.043.003.14.003.192.012.157.026.286.069.286.069zm2.212-.2s.462-1.455.62-2.446c.257-1.613 1.714-3.985 2.106-4.38l-2.828-.094s.069 2.111-.058 3.491c-.096 1.043-.598 1.991-.519 3.503 0 0 .134.05.311.037.155-.012.368-.111.368-.111z"/><path fill="#CCD6DD" d="M30.375 2.039c-.045 0-.088.01-.132.013-.193-.446-.635-.76-1.153-.76-.235 0-.443.082-.631.194-.448-.72-1.241-1.204-2.152-1.204-.814 0-1.531.39-1.996.985-.493-.336-1.088-.534-1.729-.534-1.154 0-2.148.644-2.674 1.585-.265-.612-.874-1.041-1.583-1.041-.55 0-1.035.263-1.351.664C16.584.815 15.525 0 14.266 0c-1.015 0-1.902.528-2.414 1.322-.141-.021-.283-.043-.43-.043-.802 0-1.526.33-2.048.859-.068-.005-.132-.02-.201-.02-.034 0-.066.009-.099.01-.308-.398-.783-.657-1.323-.657-.526 0-.99.247-1.297.626-.17-.05-.347-.084-.534-.084-1.06 0-1.92.86-1.92 1.921s.86 1.921 1.921 1.921c.055 0 .106-.012.16-.016.217.271.536.456.91.456.046 0 .085-.021.129-.026.473.62 1.212 1.026 2.051 1.026.19 0 .374-.023.552-.062.35.278.758.485 1.213.576.644 1.121 1.839 1.885 3.224 1.885 1.311 0 2.459-.679 3.125-1.701.552.677 1.382 1.118 2.323 1.118 1.392 0 2.552-.95 2.897-2.233.026.001.05.008.076.008.367 0 .714-.075 1.041-.193.516.403 1.157.653 1.863.653 1.062 0 1.995-.546 2.539-1.37.194.139.419.238.676.238.482 0 .893-.291 1.078-.704.188.067.387.11.597.11.988 0 1.789-.801 1.789-1.789s-.801-1.792-1.789-1.792z"/><circle fill="#AAB8C2" cx="14.25" cy="4.703" r="2.024"/><circle fill="#AAB8C2" cx="11.75" cy="4.537" r="2.001"/><circle fill="#AAB8C2" cx="9.784" cy="4.628" r="1.11"/><circle fill="#AAB8C2" cx="23.659" cy="3.669" r="1.11"/><circle fill="#AAB8C2" cx="26.208" cy="3.287" r="1.495"/><circle fill="#AAB8C2" cx="15.976" cy="4.263" r="1.632"/><circle fill="#AAB8C2" cx="25.555" cy="4.163" r="1.784"/><circle fill="#AAB8C2" cx="17.421" cy="4.841" r="1.532"/><circle fill="#AAB8C2" cx="14.203" cy="3.531" r="1.7"/><circle fill="#AAB8C2" cx="14.162" cy="5.274" r="2.86"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f319.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f319.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFD983" d="M30.312.776C32 19 20 32 .776 30.312c8.199 7.717 21.091 7.588 29.107-.429C37.9 21.867 38.03 8.975 30.312.776z"/><path d="M30.705 15.915c-.453.454-.453 1.189 0 1.644.454.453 1.189.453 1.643 0 .454-.455.455-1.19 0-1.644-.453-.454-1.189-.454-1.643 0zm-16.022 14.38c-.682.681-.682 1.783 0 2.465.68.682 1.784.682 2.464 0 .681-.682.681-1.784 0-2.465-.68-.682-1.784-.682-2.464 0zm13.968-2.147c-1.135 1.135-2.974 1.135-4.108 0-1.135-1.135-1.135-2.975 0-4.107 1.135-1.136 2.974-1.136 4.108 0 1.135 1.133 1.135 2.973 0 4.107z" fill="#FFCC4D"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f31f.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f31f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFAC33" d="M28.84 17.638c-.987 1.044-1.633 3.067-1.438 4.493l.892 6.441c.197 1.427-.701 2.087-1.996 1.469l-5.851-2.796c-1.295-.62-3.408-.611-4.7.018l-5.826 2.842c-1.291.629-2.193-.026-2.007-1.452l.843-6.449c.186-1.427-.475-3.444-1.47-4.481l-4.494-4.688c-.996-1.037-.655-2.102.755-2.365l6.37-1.188c1.41-.263 3.116-1.518 3.793-2.789L16.762.956c.675-1.271 1.789-1.274 2.473-.009L22.33 6.66c.686 1.265 2.4 2.507 3.814 2.758l6.378 1.141c1.412.252 1.761 1.314.774 2.359l-4.456 4.72z"/><path fill="#FFD983" d="M9.783 2.181c1.023 1.413 2.446 4.917 1.717 5.447-.728.531-3.607-1.91-4.63-3.323-1.022-1.413-.935-2.668-.131-3.254.804-.587 2.02-.282 3.044 1.13zm19.348 2.124C28.109 5.718 25.23 8.16 24.5 7.627c-.729-.53.695-4.033 1.719-5.445C27.242.768 28.457.463 29.262 1.051c.803.586.89 1.841-.131 3.254zM16.625 33.291c-.001-1.746.898-5.421 1.801-5.421.897 0 1.798 3.675 1.797 5.42 0 1.747-.804 2.712-1.8 2.71-.994.002-1.798-.962-1.798-2.709zm16.179-9.262c-1.655-.539-4.858-2.533-4.579-3.395.277-.858 4.037-.581 5.69-.041 1.655.54 2.321 1.605 2.013 2.556-.308.95-1.469 1.42-3.124.88zM2.083 20.594c1.655-.54 5.414-.817 5.694.044.276.857-2.928 2.854-4.581 3.392-1.654.54-2.818.07-3.123-.88-.308-.95.354-2.015 2.01-2.556z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f321.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f321.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M33.536 2.464c-1.953-1.953-5.118-1.953-7.071 0l-1.197 1.199 2.842 2.843c.391.391.391 1.024 0 1.414-.195.195-.451.293-.707.293s-.512-.098-.707-.293l-2.841-2.842-2.11 2.112 2.841 2.84c.391.39.391 1.023 0 1.414-.195.195-.451.293-.707.293s-.512-.098-.707-.293l-2.84-2.839-2.12 2.122 2.837 2.838c.391.391.391 1.024 0 1.414-.195.195-.451.293-.707.293s-.512-.098-.707-.293l-2.837-2.837-2.12 2.123 2.836 2.836c.391.391.391 1.023 0 1.414-.195.195-.451.293-.707.293s-.512-.098-.707-.293l-2.835-2.835-2.12 2.123 2.833 2.833c.391.391.391 1.023 0 1.414-.195.195-.451.293-.707.293s-.512-.098-.707-.293l-2.833-2.832-1.781 1.785C4.107 21.03 1 24.151 1 28c0 3.866 3.134 7 7 7 3.832 0 6.941-3.081 6.995-6.9L33.536 9.536c1.952-1.953 1.952-5.119 0-7.072z"/><path fill="#DD2E44" d="M30.938 5.091c-.781-.781-2.047-.781-2.828 0L9.045 24.156c-1.338-.362-2.823-.035-3.873 1.015-1.562 1.562-1.562 4.095 0 5.657 1.562 1.562 4.095 1.562 5.657 0C11.867 29.79 12.2 28.326 11.858 27l19.08-19.08c.781-.781.781-2.048 0-2.829z"/><path fill="#292F33" d="M13.272 22.343c.256 0 .512-.098.707-.293.391-.391.391-1.023 0-1.414l-2.833-2.833-1.413 1.415 2.833 2.832c.194.195.45.293.706.293zm3.536-3.535c.256 0 .512-.098.707-.293.391-.391.391-1.023 0-1.414l-2.836-2.836-1.413 1.415 2.835 2.835c.195.195.451.293.707.293zm3.535-3.536c.256 0 .512-.098.707-.293.391-.39.391-1.023 0-1.414l-2.837-2.838-1.413 1.415 2.837 2.837c.194.195.45.293.706.293zm3.536-3.536c.256 0 .512-.098.707-.293.391-.391.391-1.024 0-1.414l-2.841-2.84-1.413 1.415 2.84 2.839c.195.196.451.293.707.293zm3.523-3.523c.256 0 .512-.098.707-.293.391-.39.391-1.023 0-1.414l-2.842-2.843-1.413 1.415 2.841 2.842c.196.195.451.293.707.293z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f32d.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f32d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D99E82" d="M31.42 31.471c-3.515 3.515-9.213 3.515-12.728 0L4.55 17.328c-3.515-3.515-3.515-9.213 0-12.728 3.515-3.515 9.213-3.515 12.728 0L31.42 18.743c3.515 3.514 3.515 9.213 0 12.728z"/><path fill="#F7BBA6" d="M29.335 20.9c3.515 3.515 4.609 8.119 2.475 10.253-2.135 2.134-6.739 1.039-10.253-2.475L7.414 14.536c-3.515-3.515-4.609-8.12-2.475-10.253 2.134-2.134 6.738-1.04 10.253 2.475L29.335 20.9z"/><path fill="#DD2E44" d="M33.167 28.974c1.415 1.415 1.611 3.51.44 4.682-1.172 1.171-3.267.975-4.682-.44L2.732 7.025c-1.414-1.414-1.61-3.51-.439-4.682 1.171-1.171 3.268-.975 4.682.439l26.192 26.192z"/><path fill="#FFCC4D" d="M32.127 31.764c-.256 0-.512-.098-.707-.293-.916-.916-1.598-1.07-2.462-1.266-.988-.224-2.109-.478-3.435-1.803s-1.578-2.446-1.802-3.435c-.195-.863-.35-1.546-1.266-2.462-.915-.915-1.597-1.069-2.46-1.264-.989-.224-2.11-.477-3.434-1.801-1.323-1.324-1.576-2.444-1.799-3.432-.194-.862-.348-1.543-1.262-2.458-.914-.914-1.595-1.067-2.457-1.262-.988-.223-2.108-.476-3.432-1.799-1.322-1.322-1.575-2.442-1.798-3.43-.195-.863-.348-1.544-1.263-2.458-.391-.39-.391-1.023 0-1.414s1.023-.391 1.414 0c1.324 1.323 1.577 2.443 1.8 3.432.195.862.348 1.543 1.263 2.458.914.914 1.595 1.067 2.457 1.262.988.223 2.108.476 3.432 1.799 1.324 1.324 1.576 2.444 1.799 3.432.194.862.348 1.543 1.262 2.458.916.916 1.597 1.07 2.46 1.264.988.224 2.109.477 3.434 1.801 1.325 1.325 1.578 2.446 1.802 3.435.195.863.35 1.546 1.266 2.462s1.599 1.07 2.462 1.266c.989.224 2.11.478 3.435 1.803.391.391.391 1.023 0 1.414-.197.193-.453.291-.709.291z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f32e.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f32e.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFE8B6" d="M12 7C5.374 7 0 14.164 0 23h6v6h17.119c.564-1.854.881-3.877.881-6 0-8.836-5.373-16-12-16z"/><path fill="#FFE8B6" d="M29 21h4.896C33.156 13.11 28.118 7 22 7c-6.627 0-12 7.164-12 16 0 2.123.317 4.146.88 6H29v-8z"/><path fill="#FFAC33" d="M36 23c0-8.836-5.373-16-12-16-6.626 0-12 7.164-12 16 0 2.123.317 4.146.88 6H30c3.314 0 6-2.685 6-6z"/><path fill="#FFAC33" d="M6 23h10v6H6z"/><path fill="#FFE8B6" d="M0 23c0-3.312 2.687-6 6-6s6 2.687 6 6c0 3.315-2.687 6-6 6s-6-2.685-6-6z"/><path fill="#FFAC33" d="M14 7C7.374 7 2 14.164 2 23c0 2.21 1.791 4 4 4s4-1.79 4-4c0-6.963 3.342-12.871 8-15.069C16.747 7.339 15.405 7 14 7z"/><circle fill="#D99E82" cx="4" cy="23" r="1"/><path fill="#C1694F" d="M9.975 23.25C9.855 22.541 9.243 22 8.5 22c-.18 0-.35.037-.51.095.002-.033.01-.063.01-.095 0-1.104-.896-2-2-2s-2 .896-2 2c0 .525.207 1 .539 1.357-.327.276-.539.682-.539 1.143 0 .678.453 1.244 1.07 1.43.167.557.651.962 1.241 1.039 1.978-.156 3.54-1.733 3.664-3.719z"/><path fill="#D99E82" d="M9.5 21c-.828 0-1.5.672-1.5 1.5S8.672 24 9.5 24c.13 0 .254-.021.375-.053.075-.305.125-.619.125-.947 0-.637.037-1.261.091-1.878C9.91 21.044 9.711 21 9.5 21z"/><ellipse fill="#FFCC4D" cx="6.5" cy="20" rx="1.5" ry="1"/><circle fill="#FFCC4D" cx="7" cy="21" r="1"/><circle fill="#C1694F" cx="9" cy="21" r="1"/><circle fill="#D99E82" cx="5" cy="22" r="1"/><circle fill="#D99E82" cx="7" cy="22" r="1"/><circle fill="#FFD983" cx="8" cy="20" r="1"/><circle fill="#FFE8B6" cx="7" cy="18" r="1"/><circle fill="#FFE8B6" cx="6" cy="20" r="1"/><circle fill="#FFD983" cx="9" cy="18" r="1"/><circle fill="#FFD983" cx="9" cy="20" r="1"/><circle fill="#FFD983" cx="9" cy="19" r="1"/><circle fill="#FFE8B6" cx="9" cy="19" r="1"/><path fill="#77B255" d="M10.572 12.453C10.3 12.174 9.921 12 9.5 12c-.738 0-1.348.533-1.473 1.235-.215-.139-.478-.235-.777-.235-.69 0-1.25.448-1.25 1 0 .19.084.358.2.51-.123.146-.2.311-.2.49-.552 0-1 .448-1 1 0 .202.075.379.178.537-.11.139-.178.295-.178.463 0 .552.671 1 1.5 1 .43 0 .815-.122 1.089-.316.254.195.567.316.911.316.198 0 .385-.041.558-.11.163.602.69 1.042 1.331 1.091.495-2.544 1.45-4.835 2.738-6.72C12.806 12.097 12.419 12 12 12c-.56 0-1.065.174-1.428.453z"/><circle fill="#A6D388" cx="8" cy="15" r="1"/><path fill="#A6D388" d="M10 13.5c0 .276-.224.5-.5.5s-.5-.223-.5-.5c0-.276.224-.5.5-.5s.5.224.5.5z"/><circle fill="#A6D388" cx="6.5" cy="16.5" r=".5"/><path fill="#A6D388" d="M10 16.5c0 .276-.224.5-.5.5s-.5-.223-.5-.5.224-.5.5-.5.5.224.5.5z"/><circle fill="#A6D388" cx="10" cy="15" r="1"/><circle fill="#DD2E44" cx="9" cy="12" r="1"/><circle fill="#FFD983" cx="11" cy="12" r="1"/><circle fill="#FFD983" cx="12" cy="10" r="1"/><circle fill="#FFD983" cx="9" cy="14" r="1"/><path fill="#A6D388" d="M15 9c-.552 0-1 .448-1 1 0 .035.016.064.02.098-.162-.06-.336-.098-.52-.098-.829 0-1.5.671-1.5 1.5 0 .561.311 1.043.767 1.301.845-1.354 1.856-2.513 2.989-3.436C15.573 9.147 15.308 9 15 9z"/><circle fill="#DD2E44" cx="12" cy="11" r="1"/><ellipse transform="rotate(-80.781 14 9)" fill="#DD2E44" cx="14" cy="9" rx="1" ry="1"/><circle fill="#F4900C" cx="17" cy="25" r="1"/><circle fill="#F4900C" cx="13" cy="28" r="1"/><circle fill="#F4900C" cx="19" cy="28" r="1"/><circle fill="#F4900C" cx="22" cy="27" r="1"/><circle fill="#F4900C" cx="26" cy="27" r="1"/><circle fill="#F4900C" cx="29" cy="28" r="1"/><circle fill="#F4900C" cx="31" cy="26" r="1"/><circle fill="#F4900C" cx="21" cy="22" r="1"/><circle fill="#F4900C" cx="15" cy="22" r="1"/><circle fill="#F4900C" cx="34" cy="24" r="1"/><circle fill="#F4900C" cx="17" cy="18" r="1"/><circle fill="#F4900C" cx="22" cy="16" r="1"/><path fill="#F4900C" d="M20 12c0 .552-.447 1-1 1-.552 0-1-.448-1-1s.448-1 1-1c.553 0 1 .448 1 1z"/><circle fill="#F4900C" cx="27" cy="13" r="1"/><circle fill="#F4900C" cx="24" cy="10" r="1"/><circle fill="#F4900C" cx="31" cy="19" r="1"/><circle fill="#F4900C" cx="26" cy="19" r="1"/><circle fill="#F4900C" cx="24" cy="23" r="1"/><circle fill="#F4900C" cx="29" cy="22" r="1"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f332.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f332.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#662113" d="M22 33c0 2.209-1.791 3-4 3s-4-.791-4-3l1-9c0-2.209.791-2 3-2s3-.209 3 2l1 9z"/><path fill="#5C913B" d="M31.406 27.297C24.443 21.332 21.623 12.791 18 12.791c-3.623 0-6.443 8.541-13.405 14.506-2.926 2.507-1.532 3.957 2.479 3.667 3.576-.258 6.919-1.069 10.926-1.069s7.352.812 10.926 1.069c4.012.29 5.405-1.16 2.48-3.667z"/><path fill="#3E721D" d="M29.145 24.934C23.794 20.027 20.787 13 18 13c-2.785 0-5.793 7.027-11.144 11.934-4.252 3.898 5.572 4.773 11.144 0 5.569 4.773 15.396 3.898 11.145 0z"/><path fill="#5C913B" d="M29.145 20.959C23.794 16.375 20.787 9.811 18 9.811c-2.785 0-5.793 6.564-11.144 11.148-4.252 3.642 5.572 4.459 11.144 0 5.569 4.459 15.396 3.642 11.145 0z"/><path fill="#3E721D" d="M26.7 17.703C22.523 14.125 20.176 9 18 9c-2.174 0-4.523 5.125-8.7 8.703-3.319 2.844 4.35 3.482 8.7 0 4.349 3.482 12.02 2.844 8.7 0z"/><path fill="#5C913B" d="M26.7 14.726c-4.177-3.579-6.524-8.703-8.7-8.703-2.174 0-4.523 5.125-8.7 8.703-3.319 2.844 4.35 3.481 8.7 0 4.349 3.481 12.02 2.843 8.7 0z"/><path fill="#3E721D" d="M25.021 12.081C21.65 9.193 19.756 5.057 18 5.057c-1.755 0-3.65 4.136-7.021 7.024-2.679 2.295 3.511 2.809 7.021 0 3.51 2.81 9.701 2.295 7.021 0z"/><path fill="#5C913B" d="M25.021 9.839C21.65 6.951 19.756 2.815 18 2.815c-1.755 0-3.65 4.136-7.021 7.024-2.679 2.295 3.511 2.809 7.021 0 3.51 2.81 9.701 2.295 7.021 0z"/><path fill="#3E721D" d="M23.343 6.54C20.778 4.342 19.336 1.195 18 1.195c-1.335 0-2.778 3.148-5.343 5.345-2.038 1.747 2.671 2.138 5.343 0 2.671 2.138 7.382 1.746 5.343 0z"/><path fill="#5C913B" d="M23.343 5.345C20.778 3.148 19.336 0 18 0c-1.335 0-2.778 3.148-5.343 5.345-2.038 1.747 2.671 2.138 5.343 0 2.671 2.138 7.382 1.746 5.343 0z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f333.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f333.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#662113" d="M22 33c0 2.209-1.791 3-4 3s-4-.791-4-3l1-9c0-2.209.791-2 3-2s3-.209 3 2l1 9z"/><path fill="#5C913B" d="M34 17c0 8.837-7.163 12-16 12-8.836 0-16-3.163-16-12C2 8.164 11 0 18 0s16 8.164 16 17z"/><g fill="#3E721D"><ellipse cx="6" cy="21" rx="2" ry="1"/><ellipse cx="30" cy="21" rx="2" ry="1"/><ellipse cx="10" cy="25" rx="2" ry="1"/><ellipse cx="14" cy="22" rx="2" ry="1"/><ellipse cx="10" cy="16" rx="2" ry="1"/><ellipse cx="7" cy="12" rx="2" ry="1"/><ellipse cx="29" cy="12" rx="2" ry="1"/><ellipse cx="14" cy="10" rx="2" ry="1"/><ellipse cx="22" cy="10" rx="2" ry="1"/><ellipse cx="26" cy="16" rx="2" ry="1"/><ellipse cx="18" cy="17" rx="2" ry="1"/><ellipse cx="22" cy="22" rx="2" ry="1"/><ellipse cx="18" cy="26" rx="2" ry="1"/><ellipse cx="26" cy="25" rx="2" ry="1"/></g></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f334.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f334.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1694F" d="M21.978 20.424c-.054-.804-.137-1.582-.247-2.325-.133-.89-.299-1.728-.485-2.513-.171-.723-.356-1.397-.548-2.017-.288-.931-.584-1.738-.852-2.4-.527-1.299-.943-2.043-.943-2.043l-3.613.466s.417.87.868 2.575c.183.692.371 1.524.54 2.495.086.49.166 1.012.238 1.573.1.781.183 1.632.242 2.549.034.518.058 1.058.074 1.619.006.204.015.401.018.611.01.656-.036 1.323-.118 1.989-.074.6-.182 1.197-.311 1.789-.185.848-.413 1.681-.67 2.475-.208.643-.431 1.261-.655 1.84-.344.891-.69 1.692-.989 2.359-.502 1.119-.871 1.863-.871 2.018 0 .49.35 1.408 2.797 2.02 3.827.956 4.196-.621 4.196-.621s.243-.738.526-2.192c.14-.718.289-1.605.424-2.678.081-.642.156-1.348.222-2.116.068-.8.125-1.667.165-2.605.03-.71.047-1.47.055-2.259.002-.246.008-.484.008-.737 0-.64-.03-1.261-.071-1.872z"/><path fill="#D99E82" d="M18.306 30.068c-1.403-.244-2.298-.653-2.789-.959-.344.891-.69 1.692-.989 2.359.916.499 2.079.895 3.341 1.114.729.127 1.452.191 2.131.191.414 0 .803-.033 1.176-.08.14-.718.289-1.605.424-2.678-.444.157-1.548.357-3.294.053zm1.06-4.673c-1.093-.108-1.934-.348-2.525-.602-.185.848-.413 1.681-.67 2.475.864.326 1.881.561 2.945.666.429.042.855.064 1.27.064.502 0 .978-.039 1.435-.099.068-.8.125-1.667.165-2.605-.628.135-1.509.21-2.62.101zm.309-2.133c.822 0 1.63-.083 2.366-.228.002-.246.008-.484.008-.737 0-.641-.029-1.262-.071-1.873-.529.138-1.285.272-2.352.286-1.084-.005-1.847-.155-2.374-.306.006.204.015.401.018.611.01.656-.036 1.323-.118 1.989.763.161 1.605.253 2.461.257l.062.001zm-.249-4.577c.825-.119 1.59-.333 2.304-.585-.133-.89-.299-1.728-.485-2.513-.496.204-1.199.431-2.181.572-.91.132-1.605.124-2.129.077.1.781.183 1.632.242 2.549.152.006.29.029.446.029.588.001 1.2-.043 1.803-.129zm1.271-5.116c-.288-.931-.584-1.738-.852-2.4-.443.222-1.004.456-1.737.659-.795.221-1.437.309-1.951.339.183.692.371 1.524.54 2.495.681-.068 1.383-.179 2.094-.376.679-.188 1.31-.44 1.906-.717z"/><path fill="#3E721D" d="M32.61 4.305c-.044-.061-4.48-5.994-10.234-3.39-2.581 1.167-4.247 3.074-4.851 5.535-1.125-1.568-2.835-2.565-5.093-2.968C6.233 2.376 2.507 9.25 2.47 9.32c-.054.102-.031.229.056.305s.217.081.311.015c.028-.02 2.846-1.993 7.543-1.157 4.801.854 8.167 1.694 8.201 1.702.02.005.041.007.061.007.069 0 .136-.028.184-.08.032-.035 3.22-3.46 6.153-4.787 4.339-1.961 7.298-.659 7.326-.646.104.046.227.018.298-.07.072-.087.075-.213.007-.304z"/><path fill="#5C913B" d="M27.884 7.63c-4.405-2.328-7.849-1.193-9.995.22-2.575-.487-7.334-.459-11.364 4.707-4.983 6.387-.618 14.342-.573 14.422.067.119.193.191.327.191.015 0 .031-.001.046-.003.151-.019.276-.127.316-.274.015-.054 1.527-5.52 5.35-10.118 2.074-2.496 4.55-4.806 6.308-6.34 1.762.298 4.327.947 6.846 2.354 4.958 2.773 7.234 7.466 7.257 7.513.068.144.211.226.379.212.158-.018.289-.133.325-.287.02-.088 1.968-8.8-5.222-12.597z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f335.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f335.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#77B255" d="M30 4c-2.209 0-4 1.791-4 4v9.125c0 1.086-.887 1.96-2 2.448V6c0-3.313-2.687-6-6-6s-6 2.687-6 6v17.629c-1.122-.475-2-1.371-2-2.504V16c0-2.209-1.791-4-4-4s-4 1.791-4 4v7c0 2.209 1.75 3.875 3.375 4.812 1.244.718 4.731 1.6 6.625 1.651V33c0 3.313 12 3.313 12 0v-7.549c1.981-.119 5.291-.953 6.479-1.639C32.104 22.875 34 21.209 34 19V8c0-2.209-1.791-4-4-4z"/><g fill="#3E721D"><circle cx="12" cy="6" r="1"/><circle cx="23" cy="3" r="1"/><circle cx="21" cy="9" r="1"/><circle cx="14" cy="16" r="1"/><circle cx="20" cy="20" r="1"/><circle cx="13" cy="26" r="1"/><circle cx="5" cy="27" r="1"/><circle cx="9" cy="20" r="1"/><circle cx="2" cy="18" r="1"/><circle cx="34" cy="8" r="1"/><circle cx="28" cy="11" r="1"/><circle cx="32" cy="16" r="1"/><circle cx="29" cy="24" r="1"/><circle cx="22" cy="30" r="1"/></g></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f336.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f336.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DA2F47" d="M4.042 27.916c4.89.551 9.458-1.625 13.471-5.946 4.812-5.182 5-13 5-14s11.31-3.056 11 5c-.43 11.196-7.43 20.946-19.917 21.916-5.982.465-9.679-.928-11.387-2.345-2.69-2.231-.751-4.916 1.833-4.625z"/><path fill="#77B255" d="M30.545 6.246c.204-1.644.079-3.754-.747-4.853-1.111-1.479-4.431-.765-3.569.113.96.979 2.455 2.254 2.401 4.151-.044-.01-.085-.022-.13-.032-3.856-.869-6.721 1.405-7.167 2.958-.782 2.722 4.065.568 4.68 1.762 1.82 3.53 3.903.155 4.403 1.28s4.097 4.303 4.097.636c0-3.01-1.192-4.903-3.968-6.015z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f337.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f337.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#77B255" d="M34.751 22c-3.382 0-11.9 3.549-15.751 7.158V17c0-.553-.447-1-1-1-.552 0-1 .447-1 1v12.341C13.247 25.669 4.491 22 1.052 22 .123 22 11.913 35.992 17 34.599V35c0 .553.448 1 1 1 .553 0 1-.447 1-1v-.356C24.188 35.638 35.668 22 34.751 22z"/><path fill="#EA596E" d="M25 13.417C25 19.768 23.293 23 18 23s-7-3.232-7-9.583S16 0 18 0s7 7.066 7 13.417z"/><path fill="#F4ABBA" d="M22.795 2c-.48 0-4.106 14.271-4.803 19.279C17.246 16.271 13.481 2 13 2c-1 0-6 9-6 13s5.707 8 11 8 10.795-4 10.795-8-5-13-6-13z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f339.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f339.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3E721D" d="M19.32 25.358c-.113 0-.217.003-.32.005v-.415c4.805-.479 8.548-4.264 8.548-7.301 0-3.249 0 1.47-9.562 1.47-9.558 0-9.558-4.719-9.558-1.47 0 3.043 3.757 6.838 8.572 7.305v.411c-.104-.002-.207-.005-.321-.005-2.553 0-6.603-2.05-6.603-1.32 0 .646 4.187 4.017 6.924 4.796V35c0 .553.447 1 1 1s1-.447 1-1v-6.166c2.738-.779 6.924-4.15 6.924-4.796 0-.729-4.05 1.32-6.604 1.32z"/><path fill="#A0041E" d="M26.527 7.353c-3.887-4.412 1.506-5.882-2.592-5.882-.713 0-1.921.44-3.29 1.189C19.951 1.088 19.023 0 18 0c-2.05 0-3.726 4.342-3.873 8.269-1.108 1.543-1.855 3.235-1.855 4.966 0 6.092 2.591 8.823 6.479 8.823 7.776.001 13.644-8.047 7.776-14.705z"/><path fill="#BE1931" d="M23.728 13.235c0 6.092-2.59 8.823-6.48 8.823-7.776 0-13.643-8.048-7.776-14.706C13.361 2.94 7.967 1.47 12.064 1.47c2.593.001 11.664 5.674 11.664 11.765z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f33a.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f33a.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#77B255" d="M19.602 32.329c6.509 6.506 17.254-7.669 15.72-7.669-7.669 0-22.227 1.161-15.72 7.669z"/><path fill="#77B255" d="M15.644 33.372C9.612 39.404-.07 26.263 1.352 26.263c3.81 0 9.374-.348 12.79.867 2.958 1.052 4.304 3.442 1.502 6.242z"/><path fill="#F4ABBA" d="M34.613 15.754c-.052-.901-.175-2.585-1.398-4.227-1.16-1.549-3.805-3.371-5.534-2.585.516-1.676-.264-4.125-1.191-5.49-1.179-1.736-4.262-3.843-8.146-3.026-1.754.369-4.18 2.036-4.632 3.864-1.18-1.471-4.22-1.675-6.015-1.222-2.026.511-3.154 1.777-3.739 2.461l.003-.005-.03.034-.027.033c-.583.689-1.656 1.994-1.847 4.074-.193 2.146.75 5.832 3.026 6.042.149.014.324.031.514.051-2.271.098-3.572 3.654-3.595 5.8-.022 2.102.926 3.506 1.443 4.243l-.003-.004c.008.01.019.024.025.036.007.011.02.023.026.036.523.733 1.525 2.094 3.515 2.776 1.958.669 5.553.656 6.567-1.236-.273 2.244 3.027 4.077 5.169 4.438 2.115.358 3.71-.358 4.55-.753l-.005.003c.013-.008.028-.015.041-.021l.041-.02c.838-.4 2.398-1.178 3.462-3.04.729-1.282 1.27-3.403.951-5.015l.192.127c1.826 1.224 4.63-1.119 5.705-2.938 1.044-1.761.932-4.424.932-4.436z"/><path fill="#EA596E" d="M27.542 13.542c-1.786-.997-4.874-.434-6.792.308-.266-.468-.621-.875-1.051-1.196 1.393-1.607 3.526-4.593 1.468-6.362-2.191-1.883-3.74 2.154-3.575 5.605-.068-.003-.132-.02-.201-.02-1.019 0-1.94.402-2.632 1.045-1.401-2.277-3.942-4.244-5.314-2.392-1.482 2.002 1.148 3.153 4.222 4.2-.09.329-.154.668-.154 1.025 0 .456.093.887.238 1.293-2.541.732-6.236 2.718-4.21 4.91 2.122 2.296 4.472-1.238 5.604-3.053.635.454 1.407.727 2.247.727.225 0 .441-.029.655-.066-.109 4.802 1.443 7.07 4.036 5.892 2.295-1.043-.137-5.299-1.781-7.165.316-.362.564-.779.729-1.241 7.008 2.544 8.589-2.351 6.511-3.51z"/><path fill="#BE1931" d="M17.707 17.459c-.679 0-.668-.562-.832-1.25-.532-2.233-2.381-6.308-4.601-9.163-.509-.654-.391-1.596.263-2.105.654-.508 1.596-.391 2.105.263 2.439 3.136 3.264 7.404 3.982 10.421.191.806.237 1.601-.569 1.792-.116.028-.233.042-.348.042z"/><path fill="#FFCC4D" d="M15.904 5.327c.498.684.079 1.838-.936 2.578l-.475.347c-1.016.739-2.243.785-2.741.101l-2.78-3.817c-.498-.684-.079-1.838.936-2.577l.475-.347c1.015-.739 2.242-.785 2.74-.101l2.781 3.816z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f33b.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f33b.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3E721D" d="M28 27c-8 0-8 6-8 6V22h-4v11s0-6-8-6c-4 0-7-2-7-2s0 9 9 9h6s0 2 2 2 2-2 2-2h6c9 0 9-9 9-9s-3 2-7 2z"/><path fill="#FFAC33" d="M21.125 27.662c-.328 0-.651-.097-.927-.283l-2.323-1.575-2.322 1.575c-.277.186-.601.283-.929.283-.143 0-.287-.018-.429-.057-.462-.123-.851-.441-1.06-.874l-1.225-2.527-2.797.204c-.04.002-.079.004-.119.004-.438 0-.86-.174-1.17-.484-.34-.342-.516-.81-.481-1.288l.201-2.8-2.523-1.225c-.432-.209-.751-.598-.876-1.062-.125-.464-.042-.958.228-1.356l1.573-2.323-1.573-2.322c-.27-.398-.353-.892-.228-1.357.125-.462.444-.851.876-1.06L7.544 7.91l-.201-2.797c-.034-.48.142-.951.481-1.289.31-.312.732-.485 1.17-.485.04 0 .079 0 .119.003l2.797.201 1.225-2.523c.209-.432.598-.751 1.06-.876.142-.038.285-.057.429-.057.328 0 .651.098.929.285l2.322 1.573L20.198.372c.275-.188.599-.285.927-.285.144 0 .29.02.428.057.465.125.854.444 1.062.876l1.225 2.523 2.8-.201c.037-.003.078-.003.116-.003.438 0 .858.173 1.172.485.338.338.515.809.48 1.289l-.204 2.797 2.527 1.225c.433.209.751.598.874 1.06.124.465.043.96-.227 1.357l-1.575 2.322 1.575 2.323c.269.398.351.892.227 1.356-.123.464-.441.852-.874 1.062l-2.527 1.225.204 2.8c.034.478-.143.946-.48 1.288-.313.311-.734.484-1.172.484-.038 0-.079-.002-.116-.004l-2.8-.204-1.225 2.527c-.209.433-.598.751-1.062.874-.139.04-.284.057-.428.057z"/><circle fill="#732700" cx="18" cy="14" r="7"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f33d.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f33d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5C913B" d="M15.373 1.022C13.71 2.686 8.718 9.34 11.214 15.164c2.495 5.823 5.909 2.239 7.486-2.495.832-2.496.832-5.824-.831-10.815-.832-2.496-2.496-.832-2.496-.832zm19.304 19.304c-1.663 1.663-8.319 6.655-14.142 4.159-5.824-2.496-2.241-5.909 2.495-7.486 2.497-.832 5.823-.833 10.814.832 2.496.831.833 2.495.833 2.495z"/><path fill="#F4900C" d="M32.314 6.317s-.145-1.727-.781-2.253c-.435-.546-2.018-.546-2.018-.546-1.664 0-20.798 2.496-24.125 19.133-.595 2.973 4.627 8.241 7.638 7.638C29.667 26.963 32.313 7.98 32.314 6.317z"/><path d="M24.769 8.816l-1.617-1.617c-.446-.446-1.172-.446-1.618 0-.446.447-.446 1.171 0 1.617l1.618 1.618c.445.446 1.171.446 1.617 0 .446-.446.446-1.17 0-1.618zm-9.705 1.619c.446.446 1.171.446 1.617 0 .447-.447.447-1.171 0-1.618l-.77-.77c-.654.398-1.302.829-1.938 1.297l1.091 1.091zm2.426-2.427c.447.447 1.17.447 1.617 0 .446-.446.446-1.17 0-1.617l-.025-.025c-.711.325-1.431.688-2.149 1.086l.557.556zm-4.853 4.853c.447.446 1.171.446 1.619 0 .446-.447.446-1.171 0-1.618l-1.198-1.196c-.586.474-1.156.985-1.707 1.528l1.286 1.286zM23.96 4.773c-.447.447-.447 1.17 0 1.617l1.617 1.617c.447.447 1.171.447 1.617 0 .446-.446.446-1.17 0-1.617l-1.617-1.617c-.447-.446-1.17-.446-1.617 0zm2.408-.796c.006.007.008.016.015.023L28 5.617c.447.447 1.171.447 1.617 0 .446-.446.446-1.17 0-1.617l-.462-.462c-.54.044-1.516.172-2.787.439zm-4.025 8.884c.446-.447.446-1.171 0-1.618l-1.618-1.617c-.446-.447-1.171-.447-1.617 0-.447.446-.447 1.17 0 1.617l1.617 1.618c.446.446 1.171.446 1.618 0zm-2.428 2.426c.447-.447.447-1.171 0-1.618l-1.617-1.617c-.446-.447-1.17-.447-1.617 0-.446.447-.446 1.171 0 1.617l1.617 1.618c.447.446 1.172.446 1.617 0zm-4.851 4.852c.447-.447.446-1.17 0-1.618l-1.618-1.617c-.446-.446-1.169-.447-1.617 0-.446.447-.446 1.171 0 1.617l1.617 1.618c.447.446 1.171.446 1.618 0zm-.808-5.661c-.447.446-.447 1.171 0 1.618l1.617 1.617c.447.446 1.17.446 1.618 0 .447-.447.447-1.171 0-1.617l-1.618-1.618c-.447-.447-1.171-.447-1.617 0z" fill="#F7B82D"/><path fill="#77B255" d="M27.866 23.574c-7.125-2.374-15.097.652-19.418 3.576 2.925-4.321 5.95-12.294 3.576-19.418-.934-2.8-5.602-5.601-8.402-2.801-.934.934-1.867 1.868 0 1.868s4.667 2.8 3.735 5.601c-.835 2.505-6.889 8.742-4.153 15.375-.27.115-.523.279-.744.499l-.715.714c-.919.919-.919 2.409 0 3.329l.716.716c.919.92 2.409.92 3.328 0l.715-.716c.123-.123.227-.258.316-.398 6.999 3.84 13.747-2.799 16.379-3.677 2.8-.933 5.6 1.868 5.6 3.734 0 1.867.934.934 1.867 0 2.801-2.8-.001-7.47-2.8-8.402z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f33f.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f33f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#77B255" d="M20.917 22.502c-2.706-.331-3.895-1.852-6.273-4.889 3.039-2.376 4.559-3.565 7.266-3.235 2.71.332 5.25 2.016 6.273 4.889-1.683 2.543-4.557 3.563-7.266 3.235zm-5.959 8.814c-2.549-.187-3.733-1.553-6.098-4.288 2.735-2.364 4.102-3.547 6.652-3.364 2.551.185 5.009 1.644 6.098 4.287-1.459 2.458-4.1 3.548-6.652 3.365zm-6.22-15.707c1.338 1.631 1.191 3.117.898 6.088-2.97-.294-4.456-.44-5.795-2.071-1.339-1.634-1.861-3.935-.898-6.088 2.301-.524 4.456.439 5.795 2.071zm21.116-5.448c-2.435 1.02-4.16.314-7.613-1.097 1.411-3.453 2.118-5.18 4.549-6.203 2.434-1.021 5.378-.826 7.612 1.096-.194 2.944-2.117 5.181-4.548 6.204zM17.103 6.608c.874 2.869-.124 4.742-2.119 8.488-3.745-1.996-5.619-2.994-6.494-5.864-.876-2.872-.315-6.18 2.118-8.49 3.308.561 5.619 2.993 6.495 5.866z"/><path fill="#A6D388" d="M8.49 9.232c.862 2.828 2.702 3.843 6.338 5.781v-.005c-.07-2.521-2.733-10.876-4.267-14.214C8.172 3.102 7.62 6.381 8.49 9.232zm-5.592 4.429c-.89 2.118-.371 4.362.943 5.965 1.34 1.632 2.826 1.777 5.795 2.071-.997-1.937-4.911-6.388-6.738-8.036z"/><path fill="#5C913B" d="M21.91 14.378c-2.563-.312-4.077.75-6.808 2.879 1.746.105 8.786.745 13.06 2.037.006-.01.015-.017.021-.027-1.023-2.873-3.563-4.557-6.273-4.889zm-.304 13.565c-1.091-2.637-3.545-4.094-6.094-4.279-2.5-.179-3.87.961-6.498 3.232 2.767-.305 7.905-.87 12.592 1.047z"/><path fill="#A6D388" d="M22.421 9.137c3.327 1.359 5.043 2.024 7.432 1.024 2.419-1.018 4.332-3.239 4.542-6.16-3.922.761-10.391 4.15-11.974 5.136z"/><path fill="#A06253" d="M4.751 35.061c-.584-.091-1.363-.831-1.273-1.416.546-3.562 2.858-12.168 18.298-24.755.458-.375.976-.659 1.364-.212.391.447-.052.95-.498 1.339C9.354 21.587 7.128 30.751 6.619 34.082c-.091.585-1.283 1.067-1.868.979z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f341.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f341.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M36 20.917c0-.688-2.895-.5-3.125-1s3.208-4.584 2.708-5.5-5.086 1.167-5.375.708c-.288-.458.292-3.5-.208-3.875s-5.25 4.916-5.917 4.292c-.666-.625 1.542-10.5 1.086-10.698-.456-.198-3.419 1.365-3.793 1.282C21.002 6.042 18.682 0 18 0s-3.002 6.042-3.376 6.125c-.374.083-3.337-1.48-3.793-1.282-.456.198 1.752 10.073 1.085 10.698C11.25 16.166 6.5 10.875 6 11.25s.08 3.417-.208 3.875c-.289.458-4.875-1.625-5.375-.708s2.939 5 2.708 5.5-3.125.312-3.125 1 8.438 5.235 9 5.771c.562.535-2.914 2.802-2.417 3.229.576.496 3.839-.83 10.417-.957V35c0 .553.448 1 1 1 .553 0 1-.447 1-1v-6.04c6.577.127 9.841 1.453 10.417.957.496-.428-2.979-2.694-2.417-3.229.562-.536 9-5.084 9-5.771z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f344.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f344.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#99AAB5" d="M27 33c0 2.209-1.791 3-4 3H13c-2.209 0-4-.791-4-3s3-7 3-13 12-6 12 0 3 10.791 3 13z"/><path fill="#DD2E44" d="M34.666 11.189l-.001-.002c-.96-2.357-2.404-4.453-4.208-6.182h-.003C27.222 1.904 22.839 0 18 0 13.638 0 9.639 1.541 6.524 4.115c-2.19 1.809-3.941 4.13-5.076 6.785C.518 13.075 0 15.473 0 18c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4 0-2.417-.48-4.713-1.334-6.811z"/><g fill="#F4ABBA"><path d="M7.708 16.583c3.475 0 6.292-2.817 6.292-6.292S11.184 4 7.708 4c-.405 0-.8.042-1.184.115-2.19 1.809-3.941 4.13-5.076 6.785.306 3.189 2.991 5.683 6.26 5.683z"/><path d="M7.708 4.25c3.331 0 6.041 2.71 6.041 6.042s-2.71 6.042-6.041 6.042c-3.107 0-5.678-2.314-6.006-5.394 1.097-2.541 2.8-4.817 4.931-6.59.364-.067.726-.1 1.075-.1m0-.25c-.405 0-.8.042-1.184.115-2.19 1.809-3.941 4.13-5.076 6.785.306 3.189 2.992 5.683 6.261 5.683 3.475 0 6.291-2.817 6.291-6.292S11.184 4 7.708 4zM26 9.5c0 2.485 2.015 4.5 4.5 4.5 1.887 0 3.497-1.164 4.166-2.811l-.001-.002c-.96-2.357-2.404-4.453-4.208-6.182C27.992 5.028 26 7.029 26 9.5z"/><circle cx="21.5" cy="16" r="4.5"/><circle cx="20" cy="5" r="3"/></g></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f345.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f345.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M22.494 5.344c-.687 0-1.352.066-1.991.177-.819-.104-2.74-.231-3.591-.231-8.473 0-15.886 3.177-15.886 14.298 0 9.036 7.049 16.361 16.976 16.361s17.974-7.325 17.974-16.361C35.975 8.339 26.59 5.344 22.494 5.344z"/><path fill="#77B255" d="M8.439.091c1.637 1.636 2.77 2.266 3.274 4.91.298 1.564 2.266 1.51 2.266 1.51s-3.903 1.763-5.54 3.4c0 0 4.91-1.637 6.547-1.637 0 0 3.273 1.637 3.273 3.273 0 0 0-3.273-1.636-3.273 0 0 4.909 0 4.909 3.273 0 0 0-4.91-1.637-4.91 0 0 4.911-1.636 6.548 0 0 0-1.686-1.72-4.911-1.636 0 0 1.638-1.637 4.911-1.637 0 0-5.288-1.511-6.925 1.763 0 0-1.385-1.385 1.385-4.155 0 0-4.28.755-4.28 4.029 0 0-1.552-.04-2.644-1.259C11.838 1.35 8.439.091 8.439.091z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f346.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f346.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#744EAA" d="M6 4c3 0 5 2 8 6s7.957 7.191 12 8c5 1 9 5 9 11 0 4.897-3.846 7-9 7-5 0-9-3-14-8S2 14 2 10s1-6 4-6z"/><path fill="#77B255" d="M3.515 0c1.248 0 1.248 1.248 1.248 2.495 0 1.764 1.248 1.129 2.496 1.129C8.505 3.624 11 6 11 6H7.258c-1.248 0 0 2.614-1.248 2.614S4.762 7.426 3.515 7.426 2 11 2 11s-1.604-4.153.267-6.024C3.515 3.728 1.02 0 3.515 0z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f347.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f347.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#77B255" d="M9.999 12c-.15 0-.303-.034-.446-.106-4.38-2.19-7.484-7.526-8.501-10.578C.876.792 1.16.226 1.684.051c.525-.176 1.091.109 1.265.632.877 2.632 3.688 7.517 7.499 9.422.494.247.694.848.447 1.342-.176.351-.529.553-.896.553z"/><circle fill="#553788" cx="19" cy="29" r="7"/><circle fill="#9266CC" cx="10" cy="15" r="7"/><circle fill="#AA8DD8" cx="19" cy="12" r="7"/><circle fill="#744EAA" cx="27" cy="18" r="7"/><circle fill="#744EAA" cx="9" cy="26" r="7"/><circle fill="#9266CC" cx="18" cy="21" r="7"/><circle fill="#9266CC" cx="29" cy="29" r="7"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f348.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f348.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#A6D388" d="M31.924 10.982c4.418 7.652 1.99 17.326-5.424 21.607-7.414 4.28-16.505 2.413-20.924-5.241C.577 18.688 3.086 9.156 10.5 4.876c7.414-4.28 17.924.044 21.424 6.106z"/><path fill="#77B255" d="M24 6c3 1 6 4 8 7 .836 1.254.729-.078-.294-2.348C28.02 4.768 17.777.675 10.5 4.876c-3.01 1.738-5.194 4.349-6.413 7.408C4.808 11.471 5.52 11 6 11c1 0-1.896 3.279 1 11 3 8 3 4 3 4s-2-9-1-12 2-5 3-4 5 9 7 14c2.259 5.647 2-1-1-8-2.841-6.628-3-8-2-8s3.465 1.464 7 5c2 2 3 5 4 6s1-1 0-4c-.707-2.121-3-6-6-8-2.496-1.664 0-2 3-1z"/><path fill="#5C913B" d="M11.934 6.358c-.479.276-1.091.112-1.367-.366-1.104-1.914-1.26-4.303-1.266-4.404-.033-.55.387-1.022.937-1.058.552-.034 1.025.385 1.061.936.001.021.137 2.027 1.001 3.525.275.479.112 1.091-.366 1.367z"/><path fill="#77B255" d="M11.961 30.533C11 30 10.234 28.557 9.552 27.308c-.682-1.249.276-1.276.886-.159.681 1.249 1.204 1.612 1.886 2.861.682 1.249.194.832-.363.523zm9.543.373c-.874-2.059-.812-3.057-1.686-5.114-.874-2.059-.749-4.055.124-1.997.874 2.059 1.748 4.118 1.687 5.115-.064.999-.125 1.996-.125 1.996zM27 19c1 3 0 2 1 5s1 5 1 0c0-3.162-1-6-2-7-1.581-1.581 0 2 0 2z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f349.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f349.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5C913B" d="M2.472 6.572C1.528 8.698 1 11.038 1 13.5 1 23.165 9.059 31 19 31c7.746 0 14.33-4.767 16.868-11.44L2.472 6.572z"/><path fill="#FFE8B6" d="M4.332 7.295C3.479 9.197 3 11.293 3 13.5c0 8.591 7.164 15.556 16 15.556 6.904 0 12.77-4.26 15.013-10.218L4.332 7.295z"/><path fill="#DD2E44" d="M6.191 8.019C5.43 9.697 5 11.548 5 13.5c0 7.518 6.268 13.611 14 13.611 6.062 0 11.21-3.753 13.156-8.995L6.191 8.019z"/><path d="M9.916 14.277c-.307.46-.741.708-.971.555-.23-.153-.168-.649.139-1.109.307-.46.741-.708.971-.555.23.153.168.649-.139 1.109zm6 1c-.307.46-.741.708-.971.555-.23-.153-.168-.649.139-1.109.307-.46.741-.708.971-.555.23.153.168.649-.139 1.109zm5.082 4.678c.05.551-.132 1.016-.406 1.041-.275.025-.538-.4-.588-.951-.051-.551.132-1.016.406-1.04.275-.026.538.398.588.95zm-9-2c.05.551-.132 1.016-.406 1.041-.275.025-.538-.4-.588-.951-.05-.551.132-1.016.406-1.04.276-.026.538.398.588.95zm3.901 5.346c-.333.441-.78.663-1 .497-.221-.166-.129-.658.205-1.099.333-.441.781-.663 1-.497.221.166.13.657-.205 1.099zm8.036.454c.273.481.299.979.06 1.115-.241.137-.656-.143-.929-.624-.273-.48-.299-.979-.059-1.115.241-.138.655.141.928.624zm-7.017-5.028c.303.463.362.958.131 1.109-.231.152-.663-.1-.966-.562-.303-.462-.361-.958-.131-1.108.231-.154.663.097.966.561zm8.981 1.574c-.333.441-.78.663-1.001.497-.221-.166-.129-.658.205-1.099.333-.442.78-.663 1-.497.222.166.131.657-.204 1.099z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f34a.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f34a.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4900C" d="M3 19.5C3 10.388 10.387 3 19.499 3c9.113 0 16.5 7.387 16.5 16.5S28.612 36 19.499 36C10.387 36 3 28.613 3 19.5z"/><path fill="#662113" d="M11.414 7.585c-.267-.267-.797-.197-1.355.12-3.3-2.732-8.653-3.652-8.895-3.692-.546-.089-1.059.277-1.15.821-.091.544.276 1.06.821 1.151.053.009 4.934.854 7.821 3.16-.275.525-.324 1.015-.07 1.268.39.391 1.34.074 2.121-.707.781-.78 1.097-1.73.707-2.121z"/><path fill="#5C913B" d="M21 1s-3.106 4.318-7.021 5.273C11 7 7.041 7.07 6.646 6.15c-.394-.919 1.572-3.937 4.969-5.393C15.012-.698 21 1 21 1z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f34b.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f34b.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5C913B" d="M11.405 3.339c6.48-1.275 8.453 1.265 11.655.084 3.202-1.181.093 2.82-.745 3.508-.84.688-8.141 4.809-11.307 3.298-3.166-1.511-3.182-6.186.397-6.89z"/><path fill="#77B255" d="M15.001 16c-.304 0-.605-.138-.801-.4-.687-.916-1.308-1.955-1.965-3.056C9.967 8.749 7.396 4.446.783 2.976c-.539-.12-.879-.654-.759-1.193.12-.54.654-.878 1.193-.759C8.671 2.68 11.599 7.581 13.952 11.519c.63 1.054 1.224 2.049 1.848 2.881.332.442.242 1.069-.2 1.4-.18.135-.39.2-.599.2z"/><path fill="#FFCC4D" d="M34.3 31.534c.002-.017-.003-.028-.003-.043 2.774-5.335 2.647-15.113-3.346-21.107-5.801-5.8-13.68-5.821-18.767-4.067-1.579.614-2.917.066-3.815.965-.881.881-.351 2.719-.714 3.819-3.169 5.202-3.405 13.025 2.688 19.117 4.962 4.962 10.438 6.842 19.98 4.853.002-.002.005-.001.008-.002 1.148-.218 2.95.523 3.566-.094 1.085-1.085.309-2.358.403-3.441z"/><path fill="#77B255" d="M8.208 6.583s-4.27-.59-6.857 4.599c-2.587 5.188.582 9.125.29 12.653-.293 3.53 1.566 1.265 2.621-.445s4.23-4.895 4.938-9.269c.707-4.376-.07-6.458-.992-7.538z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f34c.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f34c.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFE8B6" d="M28 2c2.684-1.342 5 4 3 13-1.106 4.977-5 9-9 12s-11-1-7-5 8-7 10-13c1.304-3.912 1-6 3-7z"/><path fill="#FFD983" d="M31 8c0 3-1 9-4 13s-7 5-4 1 5-7 6-11 2-7 2-3z"/><path fill="#FFCC4D" d="M22 20c-.296.592 1.167-3.833-3-6-1.984-1.032-10 1-4 1 3 0 4 2 2 4-.291.292-.489.603-.622.912-.417.346-.873.709-1.378 1.088-2.263 1.697-5.84 4.227-10 7-3 2-4 3-4 4 0 3 9 3 14 1s10-7 10-7l4-4c-3-4-7-2-7-2z"/><path fill="#FFE8B6" d="M22 20s1.792-4.729-3-7c-4.042-1.916-8-1-11 1s-2 4-3 5 1 2 3 0 8.316-4.895 11-4c3 1 2 2.999 3 5z"/><path fill="#A6D388" d="M26 35h-4c-2 0-3 1-4 1s-2-2 0-2 4 0 5-1 5 2 3 2z"/><circle fill="#3E721D" cx="18" cy="35" r="1"/><path fill="#FFCC4D" d="M32.208 28S28 35 26 35h-4c-2 0 0-1 1-2s5 0 5-6c0-3 4.208 1 4.208 1z"/><path fill="#FFE8B6" d="M26 19c3 0 8 3 7 9s-5 7-7 7h-2c-2 0-1-1 0-2s4 0 4-6c0-3-4-7-6-7 0 0 2-1 4-1z"/><path fill="#FFD983" d="M17 21c3 0 5 1 3 3-1.581 1.581-6 5-10 6s-8 1-5-1 9.764-8 12-8z"/><path fill="#C1694F" d="M2 31c1 0 1 0 1 .667C3 32.333 3 33 2 33s-1-1.333-1-1.333S1 31 2 31z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f34d.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f34d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5C913B" d="M18.241 9.633c-.277-3.307 2.17-4.72 2.17-4.72-3.199.113-4.894 2.826-4.894 2.826-.752-1.3.946-4.012 2.169-4.719-3.198.113-3.67 2.12-3.67 2.12-1.503-2.601-1.03-4.607-1.03-4.607-1.121.647-1.767 2.113-2.141 3.512l-2.318-2.67c-.23 1.044.157 3.174.573 4.959-3.055-1.79-5.903-.15-5.903-.15 3.95 1.188 5.45 3.788 5.45 3.788s-3.948-1.187-5.646 1.526c2.597-.092 4.5.499 5.856 1.23-1.163.289-3.145-.236-4.355 1.371 0 0 3.198-.113 3.851 1.055-2.172.614-3.575 2.251-3.575 2.251 4.422-.818 9.123 1.669 9.123 1.669l6.119-3.532c-1.029-4.607 2.642-6.727 2.642-6.727-2.724-1.895-4.421.818-4.421.818z"/><path fill="#FFAC33" d="M29.56 22.88c2.488 4.309 1.218 9.7-2.837 12.041-4.055 2.341-9.359.746-11.846-3.562l-1.589-2.753c-2.488-4.31-1.217-9.699 2.837-12.04 4.055-2.341 9.359-.747 11.846 3.562l1.589 2.752z"/><path fill="#FFCC4D" d="M30.562 25.364c-.209-.848-.54-1.685-1.002-2.484l-.186-.323v.001l-1.951-.828.624-1.471-.075-.131c-2.025-3.51-5.92-5.217-9.486-4.466l-.818 1.926-1.884-.8c-3.28 2.122-4.567 6.319-3.262 10.128l1.006.427-.401.946c.055.105.102.212.163.315l1.589 2.753c.685 1.187 1.59 2.16 2.618 2.909l.229-.538 1.951.828-.324.764c.665.277 1.357.465 2.061.572l.215-.507 1.403.595c1.144-.048 2.28-.336 3.343-.883l-.017-.007.828-1.951 1.189.504c.522-.521.973-1.104 1.334-1.736l-1.693-.72.828-1.951 1.667.707c.191-.7.301-1.427.316-2.167l-1.155-.49.828-1.951.062.029zm-6.212-7.243l1.95.829-.828 1.95-1.951-.828.829-1.951zm.294 4.731l-.828 1.95-1.951-.827.828-1.951 1.951.828zm-4.197-6.387l1.951.828-.829 1.952-1.951-.828.829-1.952zm-1.656 3.902l1.951.828-.828 1.951-1.95-.828.827-1.951zm-3.902-1.655l1.95.828-.828 1.949-1.95-.828.828-1.949zm-2.484 5.853l.828-1.952 1.951.828-.829 1.952-1.95-.828zm4.196 6.385l-1.951-.827.828-1.951 1.951.828-.828 1.95zm-.295-4.73l.829-1.951 1.951.827-.829 1.952-1.951-.828zm4.196 6.386l-1.95-.828.828-1.95 1.95.829-.828 1.949zm-.294-4.73l.828-1.952 1.951.829-.828 1.952-1.951-.829zm4.197 6.388l-1.951-.828.828-1.951 1.951.828-.828 1.951zm1.657-3.904l-1.95-.827.828-1.952 1.95.828-.828 1.951zm1.656-3.901l-1.951-.828.828-1.95 1.951.827-.828 1.951z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f34f.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f34f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#77B255" d="M24 7c-3 0-3 1-6 1s-3-1-6-1c-4 0-9 2-9 9 0 11 6 20 10 20 3 0 3-1 5-1s2 1 5 1c4 0 10-9 10-20 0-7.001-5-9-9-9z"/><path fill="#3E721D" d="M17.311 7.88s-1.775-4.674-6.58-6.06c-3.843-1.108-6.318.26-6.318.26s3.012 3.991 5.895 4.822c2.882.83 7.003.978 7.003.978z"/><path fill="#662113" d="M18 10c-.552 0-1-.448-1-1 0-3.441 1.2-6.615 3.293-8.707.391-.391 1.023-.391 1.414 0s.391 1.024 0 1.414C19.986 3.427 19 6.085 19 9c0 .552-.448 1-1 1z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f350.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f350.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#A6D388" d="M7.681 9.097c1.587-3.151 7.698-1.916 11.958 2.171 2.697 2.586 8.056 1.498 11.498 4.804 3.493 3.354 3.259 9.361-3.053 15.767C23 37 16 37 11.835 33.384c-4.388-3.811-2.476-8.61-4.412-13.585C5.487 14.823 3.1 9.375 7.681 9.097z"/><path fill="#662113" d="M8.178 9.534c-.43.448-1.114.489-1.527.093-3.208-3.079-3.918-7.544-3.946-7.776-.074-.586.348-1.157.939-1.278.592-.121 1.131.257 1.205.842.006.05.657 3.997 3.359 6.59.413.397.4 1.081-.03 1.529z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f351.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f351.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5C913B" d="M1.062 5.125s4.875-5 10-5C17.188.125 19 5.062 19 5.062s.625-4 5-4 6.938 3.125 6.938 3.125-3.562 2.125-4.625 2.562c-2.801 1.153-11.375 3.562-15.375 2.562S1.062 5.125 1.062 5.125z"/><path fill="#FF886C" d="M18 6s1.042-.896 6-.896c6.542 0 12 4.812 12 12.927 0 11.531-14.958 17.881-14.958 17.881S1 34.833 1 17.977C1 8.018 7.75 5 12 5c4.958 0 6 1 6 1z"/><path fill="#77B255" d="M1.062 5.125s4.875-5 10-5C17.188.125 19 5.062 19 5.062s-4.062 5.25-8.062 4.25-9.876-4.187-9.876-4.187z"/><path fill="#DD2E44" d="M22.999 30c-.19 0-.383-.055-.554-.168-.46-.307-.584-.927-.277-1.387C22.183 28.423 24 25.538 24 19c0-6.445-4.578-10.182-4.625-10.219-.431-.345-.501-.974-.156-1.405.346-.431.975-.501 1.406-.156C20.844 7.395 26 11.604 26 19c0 7.22-2.079 10.422-2.168 10.555-.192.289-.51.445-.833.445z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f352.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f352.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#77B255" d="M25.999 24c-.198 0-.397-.059-.572-.181-6.543-4.58-12.166-12.366-15.397-17.439 1.699 10.528.997 16.458.962 16.744-.068.548-.562.93-1.115.868-.548-.068-.937-.567-.869-1.115.009-.079.936-8.033-1.986-21.668-.105-.487.166-.978.634-1.148.466-.172.991.028 1.226.468.079.148 8.007 14.873 17.691 21.652.453.316.562.94.246 1.392-.194.279-.504.427-.82.427z"/><path fill="#5C913B" d="M26.547 8.818c-3.476.96-5.051 2.546-10.749.667-4.72-1.557-7.037-4.207-6.345-6.305.692-2.098 3.18-3.163 7.9-1.606 4.749 1.567 4.123 3.466 9.194 7.244z"/><circle fill="#BE1931" cx="26" cy="28" r="8"/><circle fill="#BE1931" cx="11" cy="28" r="8"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f353.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f353.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#BE1931" d="M22.614 34.845c3.462-1.154 6.117-3.034 6.12-9.373C28.736 21.461 33 17 32.999 12.921 32.998 9 28.384 2.537 17.899 3.635 7.122 4.764 3 8 2.999 15.073c0 4.927 5.304 8.381 8.127 13.518C13 32 18.551 38.187 22.614 34.845z"/><path fill="#77B255" d="M26.252 3.572c-1.278-1.044-3.28-1.55-5.35-1.677.273-.037.542-.076.82-.094.973-.063 3.614-1.232 1.4-1.087-.969.063-1.901.259-2.837.423.237-.154.479-.306.74-.442C21 0 17 0 14.981 1.688 14.469 1.576 14 1 11 1c-2 0-4.685.926-3 1 .917.041 2 0 1.858.365C9.203 2.425 6 3 6 4c0 .353 2.76-.173 3 0-1.722.644-3 2-3 3 0 .423 2.211-.825 3-1-1 1-1.4 1.701-1.342 2.427.038.475 2.388-.09 2.632-.169.822-.27 3.71-1.258 4.6-2.724.117.285 2.963 1.341 4.11 1.466.529.058 2.62.274 2.141-.711C21 6 20 5 19.695 4.025c.446-.019 8.305.975 6.557-.453z"/><path fill="#F4ABBA" d="M9.339 17.306c-.136-1.46-2.54-3.252-2.331-1 .136 1.46 2.54 3.252 2.331 1zm7.458.553c-.069-.622-.282-1.191-.687-1.671-.466-.55-1.075-.362-1.234.316-.187.799.082 1.752.606 2.372l.041.048c-.213-.525-.427-1.05-.642-1.574l.006.047c.071.64.397 1.73 1.136 1.906.754.182.826-.988.774-1.444zm5.752-4.841c.476-.955.17-3.962-.831-1.954-.476.954-.171 3.962.831 1.954zm7.211-1.457c-.03-.357-.073-.78-.391-1.01-1.189-.858-2.381 2.359-1.385 3.08.02.012.036.025.055.039l-.331-.919c0 .018.001.035.003.052.049.564.376 1.377 1.084.948.667-.406 1.028-1.444.965-2.19zm-1.345 8.567c1.016-1.569-.545-3.451-1.78-1.542-1.016 1.568.546 3.45 1.78 1.542zm-5.748 2.894c.173-1.938-2.309-2.752-2.51-.496-.173 1.938 2.309 2.752 2.51.496zm-9.896-1.212l-.049.004 1.362.715c-.006-.004-.011-.011-.018-.017-.306-.28-1.353-1.083-1.788-.592-.44.497.498 1.421.804 1.703.342.314.928.763 1.429.73 1.437-.093-.783-2.605-1.74-2.543zm13.227 5.907c.969-1.066.725-4.05-.798-2.376-.969 1.066-.724 4.05.798 2.376zM12.599 13.753c.093-.005.187-.012.28-.019.703-.046 1.004-1.454 1.042-1.952.044-.571-.043-1.456-.785-1.407l-.281.019c-.702.047-1.004 1.454-1.042 1.952-.044.571.044 1.457.786 1.407zm7.846 15.257c.395.764.252 1.623-.32 1.919s-1.357-.081-1.753-.844c-.395-.764-.252-1.623.32-1.919.573-.296 1.357.081 1.753.844z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f354.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f354.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D99E82" d="M18 20.411c-9.371 0-16.967-.225-16.967 6.427C1.033 33.487 8.629 35 18 35c9.371 0 16.967-1.513 16.967-8.162 0-6.651-7.596-6.427-16.967-6.427z"/><path fill="#662113" d="M34.47 20.916S26.251 19.932 18 19.89c-8.251.042-16.47 1.026-16.47 1.026C.717 27.39 7.467 30.057 18 30.057s17.283-2.667 16.47-9.141z"/><path fill="#FFCC4D" d="M33.886 18.328l-31.855.646c-1.1 0-2.021 2.229-.854 2.812 8.708 2.708 15.708 5.448 15.708 5.448.962.532 1.287.534 2.25.003 0 0 9.666-3.868 15.875-5.493.881-.23-.025-3.416-1.124-3.416z"/><path fill="#77B255" d="M34.725 18.412c-1.9-1.751-1.79-.819-3.246-1.23-.553-.156-4.51-5.271-13.529-5.271h-.02c-9.019 0-12.976 5.115-13.529 5.271-1.456.411-1.346-.521-3.246 1.23-.872.804-1.108 1.222-.188 1.43 1.386.313 1.26 1.152 2.253 1.444 1.202.353 1.696-.292 3.634-.028 1.653.225 1.761 2.369 3.429 2.369s1.668-.8 3.335-.8 2.653 2.146 4.321 2.146 2.653-2.146 4.321-2.146c1.668 0 1.668.8 3.335.8 1.668 0 1.776-2.144 3.429-2.369 1.938-.263 2.433.381 3.634.028.993-.292.867-1.13 2.253-1.444.922-.207.687-.626-.186-1.43z"/><path fill="#DD2E44" d="M34.077 16.52c0 2.984-7.198 4.393-16.077 4.393S1.923 19.504 1.923 16.52c0-5.403.966-5.403 16.077-5.403s16.077.001 16.077 5.403z"/><path fill="#D99E82" d="M18 .524C8.629.524 1.033 4.915 1.033 11.566c0 6.125 7.596 6.375 16.967 6.375s16.967-.25 16.967-6.375C34.967 4.914 27.371.524 18 .524z"/><path d="M10.784 3.695c-.498-.319-1.159-.173-1.477.325-.318.498-.173 1.16.325 1.477.498.319 1.76.557 2.079.059.318-.498-.429-1.543-.927-1.861zm9.734-1.035c-.562.182-1.549 1.006-1.366 1.568.183.562 1.464.648 2.026.466s.869-.786.686-1.348c-.182-.561-.786-.869-1.346-.686zm10.909 7.035c-.452-.38-1.585.225-1.966.677-.38.453-.321 1.127.131 1.507.452.38 1.127.321 1.507-.131.381-.453.781-1.673.328-2.053zm-3.643-5c-.498-.318-1.159-.172-1.478.326-.318.498-.172 1.159.326 1.477.498.319 1.76.557 2.078.059.319-.499-.428-1.544-.926-1.862zm-15 7c-.498-.318-1.159-.172-1.478.326-.318.497-.172 1.159.326 1.476.498.319 1.76.558 2.078.059.319-.498-.428-1.543-.926-1.861zm3.046-4.808c-.336.486-.62 1.739-.133 2.075.486.336 1.557-.374 1.893-.86.336-.486.213-1.152-.273-1.488-.485-.336-1.152-.213-1.487.273zm7.954 4.808c-.498-.318-1.159-.172-1.478.326-.318.497-.172 1.16.326 1.476.498.319 1.76.558 2.078.059.319-.498-.428-1.543-.926-1.861zM4.948 7.808c-.394.441-.833 1.648-.392 2.042.439.394 1.591-.174 1.985-.615.395-.44.357-1.116-.083-1.511-.439-.394-1.116-.356-1.51.084z" fill="#FFE8B6"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f355.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f355.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4900C" d="M18 4c7.257 0 13 4 14.699 2 .197-.323.301-.657.301-1 0-2-6.716-5-15-5C9.716 0 3 3 3 5c0 .343.104.677.301 1C5 8 10.743 4 18 4z"/><path fill="#FFCC4D" d="M18 3C11.787 3 7.384 4.81 5.727 5.618c-.477.233-.539.84-.415 1.278S16 34 16 34s.896 2 2 2 2-2 2-2L30.704 6.779s.213-.842-.569-1.229C28.392 4.689 24.047 3 18 3z"/><g fill="#BE1931"><path d="M18 31c0-2.208-1.791-4-4-4-.254 0-.5.029-.741.075L16 34s.071.14.19.342C17.279 33.627 18 32.399 18 31zm-1-11c0-2.209-1.792-4-4-4-1.426 0-2.67.752-3.378 1.876l2.362 5.978c.327.086.663.146 1.016.146 2.208 0 4-1.792 4-4z"/><circle cx="16" cy="8" r="4"/><path d="M25 9c-2.208 0-4 1.791-4 4s1.792 4 4 4c.682 0 1.315-.187 1.877-.488l1.89-4.806C28.227 10.135 26.752 9 25 9zm-6 16c0 1.868 1.288 3.425 3.019 3.864l2.893-7.357C24.342 21.194 23.697 21 23 21c-2.208 0-4 1.792-4 4zm-9-13c0-2.209-1.791-4-4-4-.087 0-.169.02-.255.026.55 1.412 1.575 4.016 2.775 7.057C9.416 14.349 10 13.248 10 12z"/></g></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f368.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f368.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#55ACEE" d="M20 28.625S30.661 25.9 33.356 15.72c.396-1.495-1.518-2.72-3.868-2.72H5.999c-1.175 0-3.74.493-3.072 2.894C5.711 25.9 16 28.625 16 28.625v1.173s-4.634 2.443-5.588 3.01c-1.027.588-.268 1.526.144 1.689.684.269 2.39 1.15 7.116 1.15 4.847 0 7.497-.954 8.083-1.15.226-.075 1.197-.973-.198-1.799-2.484-1.47-5.557-2.9-5.557-2.9v-1.173z"/><path fill="#3B88C3" d="M33.291 15.248c0 1.692-6.835 3.064-15.269 3.064-8.432 0-15.268-1.371-15.268-3.064s6.836-3.064 15.268-3.064c8.434 0 15.269 1.371 15.269 3.064z"/><path fill="#F4ABBA" d="M25.982 6.908c0 1.613-3.133 4.745-7.832 4.745-4.325 0-7.831-2.088-7.831-4.745 0-4.325 3.505-6.787 7.831-6.787 4.327.001 7.832 2.462 7.832 6.787z"/><path fill="#FFE8B6" d="M33.291 14.217c0 1.613-3.132 4.223-7.83 4.223-4.326 0-7.832 1.393-7.832-4.223 0-4.325 3.506-7.831 7.832-7.831 4.325 0 7.83 3.506 7.83 7.831z"/><path fill="#8A4B38" d="M18.672 14.217c0 5.182-3.132 4.311-7.831 4.311-4.325 0-7.831-1.653-7.831-4.311 0-4.325 3.506-7.831 7.831-7.831 4.326 0 7.831 3.506 7.831 7.831z"/><path fill="#3B88C3" d="M30.837 21.098c.824-1.161 1.541-2.487 2.082-3.995-13.485 4.732-26.07 1.375-29.477.336.49 1.279 1.103 2.425 1.797 3.446 11.35 3.251 21.551 1.204 25.598.213z"/><path fill="#55ACEE" d="M2.837 15.177c1.396.6 15.488 5.046 30.498.087 0 .652-.411 2.477-.653 3.175-.391 1.132-15.401 4.83-28.888.261-.392-.173-1.566-3.784-.957-3.523z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f369.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f369.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFAC33" d="M35.337 23.549C34.291 29.819 27.615 34 18.092 34S1.894 29.819.849 23.549c-.247-1.479.156-8.12 1.054-9.406 2.559-3.664 3.474 10.365 16.189 10.365 13.847 0 13.64-14.028 16.199-10.365.898 1.286 1.292 7.927 1.046 9.406z"/><path fill="#8A4B38" d="M18.092 5.995c-9.331 0-16.895 4.584-16.895 10.239 0 5.655 7.564 10.24 16.895 10.24 9.33 0 16.895-4.585 16.895-10.24S27.422 5.995 18.092 5.995zm0 13.374c-3.174 0-5.748-.702-5.748-1.568 0-.866 2.574-1.567 5.748-1.567 3.173 0 5.747.701 5.747 1.567.001.866-2.573 1.568-5.747 1.568z"/><path fill="#8A4B38" d="M1.72 14.623c-.653 1.045-.92 5.494.479 7.577 2.134 3.18 3.179 1.567 4.747 2.047 2.335.715 2.508 2.56 4.354 3.483 2.09 1.045 3.306.741 6.27 0 4.181-1.045 6.837 1.088 9.405 0 2.107-.893 3.312-4.137 4.486-4.528 3.728-1.242 4.515-7.124 1.741-9.537-.87 1.829-5.138 8.404-7.881 8.71-2.744.305-10.974 1-14.457-.784-3.484-1.785-7.01-4.006-7.446-4.616-.436-.611-1.698-2.352-1.698-2.352z"/><path fill="#F4900C" d="M18.092 13.882c-3.752 0-6.793 1.228-6.793 2.743 0 .589.463 1.133 1.245 1.58-.126-.129-.2-.264-.2-.404 0-.866 2.574-1.567 5.748-1.567 3.173 0 5.747.701 5.747 1.567 0 .14-.073.274-.2.404.782-.447 1.246-.991 1.246-1.58.001-1.515-3.041-2.743-6.793-2.743z"/><path fill="#F4ABBA" d="M4.42 18.15c-.375 0-.737-.203-.925-.557-.27-.51-.075-1.143.436-1.412l2.308-1.22c.509-.272 1.142-.075 1.412.436.27.51.075 1.143-.436 1.412l-2.308 1.22c-.156.082-.323.121-.487.121zm11.887 7.794c-.41 0-.799-.242-.966-.646l-.74-1.786c-.221-.533.032-1.144.565-1.365.534-.22 1.144.032 1.365.566l.74 1.786c.221.533-.032 1.145-.566 1.365-.129.055-.265.08-.398.08z"/><path fill="#55ACEE" d="M28.151 21.764c-.181 0-.364-.047-.53-.146-.497-.293-.662-.935-.368-1.431l1.132-1.916c.293-.496.938-.661 1.431-.368.497.294.662.935.368 1.432l-1.132 1.915c-.195.33-.543.514-.901.514z"/><path fill="#F4ABBA" d="M29.893 14c-.56 0-1.023-.481-1.043-1.046-.021-.576.431-1.079 1.007-1.1l1.218-.052c.587-.007 1.062.426 1.081 1.003.021.577-.431 1.096-1.007 1.116L29.931 14h-.038zM19.792 9.876c-.444 0-.855-.285-.997-.73-.174-.55.131-1.137.681-1.312l.826-.261c.556-.174 1.138.131 1.312.682.175.55-.131 1.137-.681 1.312l-.826.261c-.105.033-.211.048-.315.048z"/><path fill="#88C9F9" d="M13.998 11.574c-.157 0-.316-.036-.466-.11l-.784-.392c-.516-.258-.726-.886-.468-1.402.258-.516.886-.726 1.402-.468l.784.392c.516.258.726.886.468 1.402-.184.366-.553.578-.936.578zm9.102 13.28c-.156 0-.315-.035-.465-.109l-.784-.391c-.517-.258-.727-.885-.47-1.401.257-.517.884-.727 1.401-.47l.784.391c.517.258.727.885.47 1.401-.182.367-.553.579-.936.579z"/><path fill="#55ACEE" d="M9.426 22.548c-.138 0-.277-.026-.412-.085-.53-.228-.776-.842-.548-1.372l.392-.914c.228-.529.843-.779 1.373-.548.53.227.776.842.548 1.372l-.392.914c-.17.395-.555.633-.961.633zm15.592-9.885c-.403 0-.787-.234-.958-.627-.232-.529.01-1.145.538-1.376l.696-.305c.53-.232 1.146.01 1.376.538.231.529-.01 1.145-.538 1.377l-.696.305c-.137.06-.279.088-.418.088zM8.035 12.62c-.078 0-.157-.009-.235-.027l-.566-.13c-.562-.13-.914-.691-.784-1.253.129-.563.691-.913 1.253-.784l.566.13c.562.13.914.691.784 1.253-.112.483-.543.811-1.018.811z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f36a.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f36a.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DA9F83" d="M34.966 17.87c.414 4.649-2.082 8.731-4.831 12.206-2.304 2.554-5.602 3.631-8.901 4.285-3.198 1.089-6.766.739-9.716-.895-1.034-.43-2.248-.559-3.167-1.176-2.879-1.846-4.524-4.927-5.779-8.029-1.627-2.916-1.74-6.483-1.414-9.742.219-1.107.967-2.032 1.388-3.051.729-2.127 1.916-3.963 3.569-5.475.786-.787 1.377-1.823 2.303-2.444.919-.617 2.103-.758 3.137-1.188 1.016-.422 1.968-1.08 3.072-1.299 1.072-.213 2.201.106 3.335.106 2.235-.056 4.482.148 6.575.789 1.034.43 1.781 1.38 2.7 1.997.926.622 1.999 1.04 2.784 1.827 1.603 1.566 2.984 3.411 3.94 5.446.65 2.109.957 4.389 1.005 6.643z"/><path fill="#8A4B38" d="M22.638 16.947c1.177-.385 2.444.261 2.827 1.44.384 1.179-.26 2.447-1.441 2.831-1.181.384-3.871.201-4.255-.978-.383-1.181 1.687-2.911 2.869-3.293zm8.57-.672c-.38.452-1.055.512-1.507.131-.452-.381-.511-1.055-.131-1.508.381-.451 1.514-1.057 1.966-.677.453.381.053 1.601-.328 2.054zm-22-7c-.38.452-1.055.512-1.507.131-.452-.381-.511-1.054-.131-1.508.381-.451 1.514-1.057 1.966-.677.453.381.053 1.601-.328 2.054zm12.093-1.894c-.748-.478-.969-1.472-.49-2.22.479-.749 1.473-.968 2.222-.49.749.479 1.872 2.05 1.394 2.798-.48.75-2.377.392-3.126-.088zm-7.926 6.217c-.515-1.066-.064-2.351 1.005-2.864s2.351-.061 2.864 1.008c.513 1.07.682 3.643-.387 4.154-1.071.514-2.971-1.227-3.482-2.298zm1.024 14.099c.602-.874 1.8-1.096 2.672-.492.874.605 1.094 1.801.49 2.675s-2.528 2.147-3.4 1.544c-.875-.604-.366-2.854.238-3.727zm10.013-.406c-.687-.436-.889-1.348-.449-2.034.438-.685 1.349-.886 2.035-.447.686.438 1.715 1.878 1.276 2.562-.438.688-2.176.359-2.862-.081zM5.536 18.42c.762-.853 2.071-.926 2.923-.163.852.764.924 2.071.161 2.922-.763.854-2.992 1.955-3.843 1.191-.854-.763-.005-3.099.759-3.95z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f36b.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f36b.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1694F" d="M26.339 33.496c-1.562 1.561-4.095 1.561-5.657 0L1.59 14.404c-1.562-1.562-1.562-2.681 0-4.243l8.485-8.485c1.562-1.562 2.681-1.562 4.243 0L33.41 20.768c1.562 1.562 1.562 4.095 0 5.657l-7.071 7.071z"/><path fill="#8A4B38" d="M16.582 15.253l-4.885-4.885 5.657-5.657-1.415-1.414-5.656 5.657L6.54 5.211 5.126 6.626l3.743 3.742-5.657 5.657 1.414 1.414 5.657-5.657 4.885 4.885z"/><path fill="#DD2E44" d="M26.339 34.91c-1.562 1.562-4.095 1.562-5.657 0l-9.899-9.899 14.142-14.142 9.899 9.899c1.562 1.562 1.562 4.095 0 5.657l-8.485 8.485z"/><path fill="#BE1931" d="M12.825 27.053l4.673 4.674 7.955-20.33-.528-.529-1.504-.932z"/><path fill="#CCD6DD" d="M22.804 8.747l2.121 2.121c-.707 2.122-8.485 15.557-9.9 18.385 0 0-.707 2.121-2.475.354l-5.304-5.304c-.679-.679-.685-2.142 0-2.828L19.975 8.747c1.414-1.414 2.829 0 2.829 0z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f36c.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f36c.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M13.298 3.538c-.531-4.075-5.627-4.3-6.248-2.125l-.933 4.041-4.041.933c-2.175.621-1.949 5.717 2.125 6.248l3.054.399c4.074.531 6.973-2.367 6.441-6.441l-.398-3.055zm18.993 18.991c4.074.531 4.299 5.629 2.125 6.249l-4.041.933-.934 4.042c-.62 2.174-5.717 1.948-6.248-2.126l-.398-3.055c-.531-4.074 2.367-6.973 6.441-6.441l3.055.398z"/><path fill="#BE1931" d="M30.49 22.294l-1.254-.164c-4.074-.531-6.973 2.367-6.441 6.441l.087.667c1.622-.268 3.45-1.236 5.014-2.8 1.29-1.288 2.172-2.758 2.594-4.144zM6.906 12.988l.349.046c4.074.531 6.973-2.367 6.441-6.441l-.119-.91c-1.317.447-2.697 1.304-3.915 2.523-1.49 1.489-2.437 3.219-2.756 4.782z"/><circle fill="#DD2E44" cx="18.779" cy="17.323" r="10.651"/><g fill="#F5F8FA"><path d="M18.75 17c.39 2.943-.632 6.74-2.593 9.092.84.25 1.72.381 2.621.381.731 0 1.447-.095 2.14-.261.563-2.586.256-5.927-2.168-9.212zm0 0c3.407.635 6.232 3.286 6.779 6.484 1.326-1.45 2.143-3.251 2.347-5.19-1.861-1.889-4.902-3.208-9.126-1.294zm0 0c1.049-2.269 4.509-4.338 7.836-4.438-.375-.613-.816-1.19-1.337-1.711-.767-.767-1.641-1.358-2.571-1.795-2.373 1.241-4.452 3.647-3.928 7.944z"/><path d="M18.792 17.042c-2.81-1.481-4.577-5.04-3.817-8.031-.966.44-1.874 1.047-2.667 1.84-.563.563-1.027 1.187-1.412 1.844 1.287 1.959 3.754 3.829 7.896 4.347zm-.084 0c-2.57 1.557-6.231 2.391-8.958 1.683.235 1.541.862 3.03 1.886 4.309 2.374-.71 5.065-2.503 7.072-5.992z"/></g></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f36d.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f36d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFAC33" d="M35.066 35.066c-.766.766-2.006.766-2.771 0L12.198 14.97c-.766-.766-.766-2.007 0-2.773.766-.765 2.007-.765 2.772 0l20.096 20.098c.766.764.766 2.006 0 2.771z"/><path fill="#DD2E44" d="M27.8 14.08c0 7.576-6.142 13.72-13.72 13.72C6.503 27.8.36 21.656.36 14.08.36 6.502 6.503.36 14.08.36c7.578 0 13.72 6.142 13.72 13.72z"/><path fill="#F4900C" d="M17.411 27.376c-1.459.092-2.938-.066-4.379-.503-3.156-.961-5.748-3.093-7.3-6.003-1.217-2.283-1.473-4.902-.719-7.376.752-2.474 2.424-4.507 4.707-5.724 1.781-.95 3.822-1.149 5.751-.561 1.929.586 3.514 1.89 4.463 3.67.734 1.377.889 2.958.434 4.451-.454 1.494-1.462 2.721-2.84 3.455-1.056.562-2.267.682-3.412.333-1.144-.348-2.085-1.122-2.648-2.178-.879-1.648-.253-3.704 1.395-4.583.592-.317 1.272-.384 1.915-.187.231.07.447.171.644.299-.672-.327-1.486-.34-2.194.037-1.347.719-1.858 2.399-1.14 3.746.404.758 1.079 1.313 1.901 1.564.822.25 1.692.166 2.45-.239 1.836-.98 2.534-3.271 1.555-5.108-.562-1.055-1.502-1.827-2.645-2.174-1.143-.349-2.353-.231-3.408.332-2.601 1.388-3.589 4.633-2.202 7.235.809 1.517 2.162 2.629 3.807 3.13 1.645.5 3.387.33 4.905-.479 1.839-.98 3.187-2.62 3.794-4.614.605-1.994.399-4.105-.58-5.944-1.195-2.241-3.193-3.884-5.623-4.624-2.432-.74-5.004-.489-7.245.708-2.744 1.463-4.754 3.907-5.66 6.883-.905 2.976-.598 6.125.865 8.869.917 1.721 2.151 3.202 3.623 4.392 1.924 1.028 4.12 1.615 6.455 1.615 1.151.002 2.263-.155 3.331-.422zm-1.325-12.548c.161-.086.288-.211.377-.356-.071.566-.407 1.09-.947 1.378-.297.158-.637.19-.957.093-.321-.098-.585-.314-.743-.611-.21-.393-.06-.884.333-1.094.067-.036.14-.053.212-.053.161 0 .318.086.399.238.255.479.848.661 1.326.405z"/><path fill="#FFCC4D" d="M24.515 8.499C22.946 5.027 18.398 1.187 12.744.564c-.212-.023-.423-.033-.633-.047-3.6.52-6.743 2.429-8.871 5.176 3.382-2.809 6.776-3.214 9.264-2.944 4.835.533 8.694 3.751 10.006 6.655 2.009 4.448.023 9.702-4.424 11.71-1.669.755-3.534.812-5.247.165-1.714-.647-3.074-1.924-3.828-3.594-1.196-2.647-.015-5.774 2.631-6.97 2.007-.906 4.38-.01 5.287 1.997.564 1.251.19 2.691-.822 3.524.263-.27.47-.593.607-.956.261-.692.237-1.444-.067-2.118-.35-.775-.981-1.369-1.777-1.669-.797-.301-1.663-.274-2.437.077-.903.407-1.594 1.142-1.944 2.068-.35.927-.318 1.934.089 2.837.479 1.061 1.343 1.873 2.433 2.284 1.09.412 2.275.373 3.335-.105 2.599-1.174 3.76-4.246 2.586-6.847-1.405-3.111-5.083-4.497-8.195-3.095-3.752 1.696-5.425 6.128-3.731 9.88.997 2.206 2.792 3.891 5.056 4.745 1.042.394 2.124.59 3.205.59 1.269 0 2.534-.27 3.725-.808 5.551-2.51 8.029-9.067 5.523-14.62zm-9.859 6.003c-.054.142-.16.255-.297.318-.554.249-.799.9-.55 1.454.119.264.329.458.576.562-.202-.017-.402-.062-.597-.134-.54-.205-.969-.607-1.206-1.133-.166-.367-.179-.777-.036-1.154.142-.376.423-.676.792-.841.129-.059.267-.088.405-.088.118 0 .236.021.349.064.247.094.442.276.551.518.062.138.066.292.013.434z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f37f.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f37f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#E1E8ED" d="M31.301 11H4.668c-1.657 0-3 1.343-3 3s1.343 3 3 3c.182 0 .357-.023.53-.053L5.182 17l.637 14.004C5.918 33.202 7.8 35 10 35h16c2.2 0 4.082-1.798 4.182-3.996L30.818 17l-.015-.05c.163.027.327.05.498.05 1.657 0 3-1.343 3-3s-1.344-3-3-3z"/><path d="M28.668 17v16.989c.863-.734 1.444-1.796 1.492-2.986L30.84 17h-2.172zm-6 0h3v18h-3zm-6 18V17h3v18zm-6-18h3v18h-3zM5.16 17l.68 14.003c.054 1.342.776 2.528 1.828 3.254V17H5.16z" fill="#DA2F47"/><path opacity=".6" fill="#99AAB5" d="M5.16 17l.097 2h25.485l.098-2z"/><path fill="#FFD983" d="M30.929 11.07c.043-.184.071-.373.071-.57 0-.674-.27-1.284-.704-1.733.422-.266.704-.732.704-1.267 0-.829-.672-1.5-1.5-1.5-.197 0-.385.04-.558.11-.139-.513-.539-.913-1.052-1.052.07-.173.11-.36.11-.558 0-.829-.672-1.5-1.5-1.5-.191 0-.372.039-.54.104C25.769 1.913 24.745 1 23.5 1 22.119 1 21 2.119 21 3.5c0 .187.024.368.063.544-.64.113-1.19.469-1.563.969C19.044 4.402 18.322 4 17.5 4 16.119 4 15 5.119 15 6.5l.001.012c-.304-.23-.657-.395-1.047-.466C13.74 4.882 12.725 4 11.5 4c-1.228 0-2.245.887-2.455 2.055C8.866 6.027 8.687 6 8.5 6 6.567 6 5 7.567 5 9.5c0 .545.135 1.054.357 1.514C4.597 11.087 4 11.72 4 12.5c0 .829.672 1.5 1.5 1.5h25c.828 0 1.5-.671 1.5-1.5 0-.678-.453-1.245-1.071-1.43z"/><g fill="#FFAC33"><circle cx="28" cy="8" r="1"/><circle cx="24.5" cy="5.5" r="1.5"/><circle cx="12" cy="7" r="1"/><path d="M31 12.5c0-.828-.672-1.5-1.5-1.5-.658 0-1.212.427-1.414 1.017-.029-.002-.055-.017-.086-.017-.552 0-1 .448-1 1h3.908c.056-.157.092-.324.092-.5zM9.5 12c.198 0 .385.04.558.11.172-.638.75-1.11 1.442-1.11.828 0 1.5.671 1.5 1.5 0 .176-.036.343-.092.5h4.184c-.056-.157-.092-.324-.092-.5 0-.829.672-1.5 1.5-1.5.237 0 .459.06.658.158-.098-.199-.158-.421-.158-.658 0-.829.672-1.5 1.5-1.5s1.5.671 1.5 1.5c0 .198-.04.385-.11.558.638.172 1.11.749 1.11 1.442 0 .176-.036.343-.092.5h2.968l-.566-.5c.42-.367.69-.899.69-1.5 0-1.104-.896-2-2-2-.378 0-.728.111-1.03.294.015-.097.03-.193.03-.294 0-1.104-.896-2-2-2-.808 0-1.501.482-1.816 1.172C18.978 8.066 18.748 8 18.5 8c-.828 0-1.5.672-1.5 1.5 0 .198.04.385.11.558-.638.173-1.11.75-1.11 1.442 0 .198.04.385.11.558-.23.062-.438.177-.61.332-.266-.24-.614-.39-1-.39-.237 0-.459.06-.659.159.099-.2.159-.422.159-.659 0-.828-.672-1.5-1.5-1.5-.198 0-.385.04-.558.11C11.77 9.472 11.192 9 10.5 9 9.672 9 9 9.672 9 10.5c0 .198.04.385.11.558-.23.062-.438.177-.61.332-.266-.24-.614-.39-1-.39-.828 0-1.5.672-1.5 1.5 0 .176.036.343.092.5h2c.207-.581.756-1 1.408-1z"/></g><path fill="#FFF" d="M4 13v1c0 .552.448 1 1 1h26c.553 0 1-.448 1-1v-1H4z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f380.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f380.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M19.281 6.392c0 .405-2.37.405-2.37 0 0-.9-14.911-9.899-14.911-2.7v13.499c0 2.487 3.476 1.947 7.193.361-1.429 3.525-4.498 9.68-7.05 13.934-.229.382-.178.868.124 1.194.303.325.783.415 1.181.215l5.258-2.629c.441.726.931 1.868 1.376 2.906.333.778.678 1.582 1.024 2.275.144.287.417.488.734.54.053.009.107.013.16.013.263 0 .518-.104.707-.293 1.42-1.419 3.429-8.395 4.793-14.093 1.364 5.698 3.373 12.674 4.793 14.093.188.189.444.293.707.293.053 0 .106-.004.16-.013.317-.052.591-.253.734-.54.347-.693.691-1.497 1.024-2.275.445-1.038.935-2.181 1.376-2.906l5.258 2.629c.398.198.879.111 1.181-.215.303-.326.352-.812.124-1.194-2.735-4.558-6.061-11.296-7.328-14.643C29.652 18.933 34 20.02 34 17.19V3.691c0-7.198-14.719 1.801-14.719 2.701z"/><path fill="#A0041E" d="M2.114 17.869c1.177 3.199 11.468-1.787 14.86-5.179.31-.31.549-.602.758-.885-10.446.252-14.542 3.857-15.618 6.064zm16.482-6.068c.212.285.453.578.765.89 3.6 3.6 14.639 8.999 14.639 4.5v-.209c-1.671-2.199-6.037-5.022-15.404-5.181z"/><path fill="#EA596E" d="M22 11.4c0 1.988-1.611 3.6-3.599 3.6h-1.802C14.611 15 13 13.388 13 11.4V7.6C13 5.612 14.611 4 16.599 4h1.802C20.389 4 22 5.612 22 7.6v3.8z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f381.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f381.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FDD888" d="M33 31c0 2.2-1.8 4-4 4H7c-2.2 0-4-1.8-4-4V14c0-2.2 1.8-4 4-4h22c2.2 0 4 1.8 4 4v17z"/><path fill="#FDD888" d="M36 11c0 2.2-1.8 4-4 4H4c-2.2 0-4-1.8-4-4s1.8-4 4-4h28c2.2 0 4 1.8 4 4z"/><path fill="#FCAB40" d="M3 15h30v2H3z"/><path fill="#DA2F47" d="M19 3h-2c-1.657 0-3 1.343-3 3v29h8V6c0-1.656-1.343-3-3-3z"/><path fill="#DA2F47" d="M16 7c1.1 0 1.263-.516.361-1.147L9.639 1.147c-.902-.631-2.085-.366-2.631.589L4.992 5.264C4.446 6.219 4.9 7 6 7h10zm4 0c-1.1 0-1.263-.516-.361-1.147l6.723-4.706c.901-.631 2.085-.366 2.631.589l2.016 3.527C31.554 6.219 31.1 7 30 7H20z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f382.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f382.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><ellipse fill="#8899A6" cx="18" cy="26" rx="18" ry="10"/><ellipse fill="#CCD6DD" cx="18" cy="24.25" rx="18" ry="10"/><path fill="#DD2E44" d="M32.675 23.685c0 4.26-6.57 7.712-14.675 7.712S3.325 27.945 3.325 23.685c0-4.258 6.57-7.711 14.675-7.711 8.104 0 14.675 3.453 14.675 7.711z"/><path fill="#F4ABBA" d="M32.233 22.543c0 9.854-28.466 9.854-28.466 0v-8.759h28.466v8.759z"/><path fill="#DD2E44" d="M17.984 18.166c-8.984 0-14.218-4.132-14.218-4.132s-.016.924-.016 1.685c0 0 .032 4.898 2.572 4.898 2.459 0 2.28 2.348 3.834 2.591 1.541.241 1.712-.938 3.625-.938s2.25 2.106 4.203 2.106c2.289 0 2.477-2.106 4.389-2.106s2.132 1.224 3.386.885c1.507-.408.814-2.537 3.887-2.537 2.54 0 2.603-4.648 2.603-4.648 0-.76-.017-1.935-.017-1.935s-5.263 4.131-14.248 4.131z"/><path fill="#EA596E" d="M32.675 12.737c0 4.259-6.57 7.712-14.675 7.712S3.325 16.996 3.325 12.737 9.895 5.025 18 5.025c8.104 0 14.675 3.453 14.675 7.712z"/><path fill="#FFF8E8" d="M25.664 13.784c-.605 0-1.095-.49-1.095-1.095V5.025c0-.605.49-1.095 1.095-1.095s1.095.49 1.095 1.095v7.664c0 .605-.49 1.095-1.095 1.095z"/><path fill="#FAAA35" d="M25.664 6.667c-1.162 0-2.076-.532-2.445-1.423-.32-.773-.479-2.45 2.058-4.986.214-.214.56-.214.774 0 2.537 2.537 2.378 4.213 2.058 4.986-.369.891-1.283 1.423-2.445 1.423z"/><path fill="#FFF8E8" d="M18 17.068c-.605 0-1.095-.49-1.095-1.095V8.31c0-.605.49-1.095 1.095-1.095s1.095.49 1.095 1.095v7.664c0 .604-.49 1.094-1.095 1.094z"/><path fill="#FAAA35" d="M18 9.952c-1.162 0-2.076-.532-2.445-1.423-.321-.773-.479-2.45 2.058-4.986.214-.214.56-.214.774 0 2.537 2.537 2.378 4.213 2.058 4.986-.369.891-1.283 1.423-2.445 1.423z"/><path fill="#FFF8E8" d="M10.336 13.784c-.605 0-1.095-.49-1.095-1.095V5.025c0-.605.49-1.095 1.095-1.095s1.095.49 1.095 1.095v7.664c0 .605-.49 1.095-1.095 1.095z"/><path fill="#FAAA35" d="M10.336 6.667c-1.162 0-2.076-.532-2.445-1.423-.321-.773-.479-2.45 2.058-4.986.214-.214.56-.214.774 0 2.537 2.537 2.378 4.213 2.058 4.986-.369.891-1.283 1.423-2.445 1.423z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f383.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f383.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4900C" d="M32.664 8.519C29.364 5.134 23.42 4.75 18 4.75S6.636 5.134 3.336 8.519C.582 11.344 0 15.751 0 19.791c0 5.263 1.982 11.311 6.357 14.244C9.364 36.051 13.95 35.871 18 35.871s8.636.18 11.643-1.836C34.018 31.101 36 25.054 36 19.791c0-4.04-.582-8.447-3.336-11.272z"/><path fill="#3F7123" d="M20.783 5.444c.069.42-.222.764-.647.764h-4.451c-.426 0-.717-.344-.647-.764l.745-4.472c.07-.421.476-.764.902-.764h2.451c.426 0 .832.344.901.764l.746 4.472z"/><path fill="#642116" d="M20.654 21.159l-1.598-2.596c-.291-.542-.673-.813-1.057-.817-.383.004-.766.275-1.057.817l-1.598 2.596c-.587 1.093.873 1.716 2.654 1.716s3.243-.624 2.656-1.716zm9.508 3.192c-.045-.075-.126-.121-.214-.121h-.841c-.068 0-.134.028-.181.077l-2.231 2.334-2.698-2.169c-.051-.041-.117-.058-.185-.053-.066.007-.127.041-.168.094l-2.408 3.062-3.054-3.266c-.013-.014-.033-.017-.048-.028-.015-.01-.025-.027-.043-.034-.006-.002-.013 0-.019-.002-.024-.007-.047-.005-.072-.005-.025 0-.048-.002-.072.006-.006.002-.013-.001-.02.002-.018.007-.027.024-.043.034-.016.01-.035.013-.048.027l-3.053 3.266-2.409-3.062c-.041-.053-.102-.087-.168-.094-.066-.006-.133.012-.185.053l-2.698 2.169-2.23-2.334c-.047-.049-.112-.077-.181-.077h-.841c-.087 0-.169.046-.214.121-.045.075-.048.168-.007.245l2.754 5.219c.034.064.093.11.164.127s.145.002.203-.04l2.034-1.458 3.004 3.633c.043.053.106.085.174.09l.019.001c.062 0 .121-.022.167-.063L18 28.836l3.65 3.268c.046.041.105.063.167.063l.019-.001c.068-.005.131-.037.174-.09l3.005-3.633 2.034 1.458c.06.043.133.06.203.04.07-.017.13-.062.163-.126l2.755-5.219c.04-.077.038-.17-.008-.245zm-2.186-8.93c.129 2.127-.784 3.806-3.205 3.953-2.42.146-3.529-1.411-3.658-3.537s1.232-5.12 3.127-5.234c1.896-.116 3.608 2.691 3.736 4.818zm-19.952 0c-.129 2.127.784 3.806 3.205 3.953 2.42.146 3.529-1.411 3.658-3.537s-1.232-5.12-3.127-5.234-3.608 2.691-3.736 4.818z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f388.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f388.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FCAB40" d="M27.999 36c-.448 0-.855-.303-.969-.758-.036-.136-.926-3.436-4.273-4.272C18.054 29.794 18 23.277 18 23c0-.552.447-.998.998-.999.554.034 1 .445 1.002.997 0 .053.054 5.234 3.242 6.032 4.53 1.132 5.682 5.54 5.727 5.728.135.535-.191 1.078-.727 1.212-.081.02-.163.03-.243.03z"/><path fill="#BB1A34" d="M18 25c-1.1 0-1.598-.805-1.105-1.789l1.211-2.422c.492-.984 1.297-.984 1.789 0l1.211 2.422C21.598 24.195 21.1 25 20 25h-2z"/><path fill="#BB1A34" d="M28 9c0 6-7 12-9 12s-9-6-9-12c0-5.799 4.582-9 9-9s9 3.201 9 9z"/><path fill="#FCAB40" d="M20 22h-2c-.552 0-1-.447-1-1s.448-1 1-1h2c.553 0 1 .447 1 1s-.447 1-1 1z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f389.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f389.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M11.626 7.488c-.112.112-.197.247-.268.395l-.008-.008L.134 33.141l.011.011c-.208.403.14 1.223.853 1.937.713.713 1.533 1.061 1.936.853l.01.01L28.21 24.735l-.008-.009c.147-.07.282-.155.395-.269 1.562-1.562-.971-6.627-5.656-11.313-4.687-4.686-9.752-7.218-11.315-5.656z"/><path fill="#EA596E" d="M13 12L.416 32.506l-.282.635.011.011c-.208.403.14 1.223.853 1.937.232.232.473.408.709.557L17 17l-4-5z"/><path fill="#A0041E" d="M23.012 13.066c4.67 4.672 7.263 9.652 5.789 11.124-1.473 1.474-6.453-1.118-11.126-5.788-4.671-4.672-7.263-9.654-5.79-11.127 1.474-1.473 6.454 1.119 11.127 5.791z"/><path fill="#AA8DD8" d="M18.59 13.609c-.199.161-.459.245-.734.215-.868-.094-1.598-.396-2.109-.873-.541-.505-.808-1.183-.735-1.862.128-1.192 1.324-2.286 3.363-2.066.793.085 1.147-.17 1.159-.292.014-.121-.277-.446-1.07-.532-.868-.094-1.598-.396-2.11-.873-.541-.505-.809-1.183-.735-1.862.13-1.192 1.325-2.286 3.362-2.065.578.062.883-.057 1.012-.134.103-.063.144-.123.148-.158.012-.121-.275-.446-1.07-.532-.549-.06-.947-.552-.886-1.102.059-.549.55-.946 1.101-.886 2.037.219 2.973 1.542 2.844 2.735-.13 1.194-1.325 2.286-3.364 2.067-.578-.063-.88.057-1.01.134-.103.062-.145.123-.149.157-.013.122.276.446 1.071.532 2.037.22 2.973 1.542 2.844 2.735-.129 1.192-1.324 2.286-3.362 2.065-.578-.062-.882.058-1.012.134-.104.064-.144.124-.148.158-.013.121.276.446 1.07.532.548.06.947.553.886 1.102-.028.274-.167.511-.366.671z"/><path fill="#77B255" d="M30.661 22.857c1.973-.557 3.334.323 3.658 1.478.324 1.154-.378 2.615-2.35 3.17-.77.216-1.001.584-.97.701.034.118.425.312 1.193.095 1.972-.555 3.333.325 3.657 1.479.326 1.155-.378 2.614-2.351 3.17-.769.216-1.001.585-.967.702.033.117.423.311 1.192.095.53-.149 1.084.16 1.233.691.148.532-.161 1.084-.693 1.234-1.971.555-3.333-.323-3.659-1.479-.324-1.154.379-2.613 2.353-3.169.77-.217 1.001-.584.967-.702-.032-.117-.422-.312-1.19-.096-1.974.556-3.334-.322-3.659-1.479-.325-1.154.378-2.613 2.351-3.17.768-.215.999-.585.967-.701-.034-.118-.423-.312-1.192-.096-.532.15-1.083-.16-1.233-.691-.149-.53.161-1.082.693-1.232z"/><path fill="#AA8DD8" d="M23.001 20.16c-.294 0-.584-.129-.782-.375-.345-.432-.274-1.061.156-1.406.218-.175 5.418-4.259 12.767-3.208.547.078.927.584.849 1.131-.078.546-.58.93-1.132.848-6.493-.922-11.187 2.754-11.233 2.791-.186.148-.406.219-.625.219z"/><path fill="#77B255" d="M5.754 16c-.095 0-.192-.014-.288-.042-.529-.159-.829-.716-.67-1.245 1.133-3.773 2.16-9.794.898-11.364-.141-.178-.354-.353-.842-.316-.938.072-.849 2.051-.848 2.071.042.551-.372 1.031-.922 1.072-.559.034-1.031-.372-1.072-.923-.103-1.379.326-4.035 2.692-4.214 1.056-.08 1.933.287 2.552 1.057 2.371 2.951-.036 11.506-.542 13.192-.13.433-.528.712-.958.712z"/><circle fill="#5C913B" cx="25.5" cy="9.5" r="1.5"/><circle fill="#9266CC" cx="2" cy="18" r="2"/><circle fill="#5C913B" cx="32.5" cy="19.5" r="1.5"/><circle fill="#5C913B" cx="23.5" cy="31.5" r="1.5"/><circle fill="#FFCC4D" cx="28" cy="4" r="2"/><circle fill="#FFCC4D" cx="32.5" cy="8.5" r="1.5"/><circle fill="#FFCC4D" cx="29.5" cy="12.5" r="1.5"/><circle fill="#FFCC4D" cx="7.5" cy="23.5" r="1.5"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f38f.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f38f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M3 3h2v33H3z"/><circle fill="#F4900C" cx="4" cy="3" r="3"/><path fill="#66757F" d="M9 28H4c-.552 0-1-.447-1-1s.448-1 1-1h5c.552 0 1 .447 1 1s-.448 1-1 1z"/><path fill="#DD2E44" d="M31 27c0-2.209 6.209-6 4-6h-8.447c-1.203-1.464-4.595-3-7.053-3-2.459 0-3.23 1.536-3.435 3H10c-2.209 0-3 1.791-3 4v4c0 2.209.791 4 3 4h25c2.209 0-4-3.791-4-6z"/><circle fill="#FFF" cx="12" cy="25" r="3"/><circle cx="11.5" cy="24.5" r="1.5"/><path fill="#F4ABBA" d="M35 21H15.962c2.068 2.286 4.742 6.465-.037 12H35c2.209 0-4-3.791-4-6s6.209-6 4-6z"/><path fill="#66757F" d="M9 12H4c-.552 0-1-.448-1-1s.448-1 1-1h5c.552 0 1 .448 1 1s-.448 1-1 1z"/><path fill="#55ACEE" d="M31 11c0-2.209 6.209-6 4-6h-8.446c-1.203-1.464-4.595-3-7.054-3-2.459 0-3.23 1.536-3.435 3H10C7.791 5 7 6.791 7 9v4c0 2.209.791 4 3 4h25c2.209 0-4-3.791-4-6z"/><circle fill="#FFF" cx="12" cy="9" r="3"/><circle cx="11.5" cy="8.5" r="1.5"/><path fill="#BBDDF5" d="M35 5H15.962c2.068 2.286 4.742 6.465-.037 12H35c2.209 0-4-3.791-4-6s6.209-6 4-6z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f392.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f392.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path d="M11.946 27C-1.036 7.876 7.524 2.752 9.114 2c.149-.07.242-.105.245-.107.418-.209.638-.675.529-1.125C9.779.318 9.372 0 8.903 0H4.847C1.054 0-4.282 11 5.859 28c.151.253 5.073 0 5.073 0 .559 0 1.324-.541 1.014-1zM31.229 0h-4c-.462 0-.863.318-.971.768-.107.45.109.916.521 1.125.004.002.095.037.242.107 1.568.752 10.01 5.876-2.792 25-.307.459.448 1 1 1 0 0 4.854.253 5.002 0 10-17 4.739-28 .998-28z" fill="#C1694F"/><path d="M6.889 28.836l.004.01c-.064-.293 5.363-1.387 5.053-1.846C-1.036 7.876 7.524 2.752 9.114 2H4.845C1.053 2-3.268 13 6.889 28.836zM31.231 2h-4.21c1.568.752 10.01 5.876-2.792 25-.307.459 4.984 1.839 4.986 1.836C39.231 13 34.971 2 31.231 2z" fill="#662113"/><path fill="#C1694F" d="M9.916 8c-.561 0-1.015-.448-1.015-1 0-3.316-2.028-5-4.056-5-.47 0-.08-.782.029-1.232.11-.45.516-.768.985-.768h5.071c3.791 0 4.938 6.136 5.057 6.835.049.29-.034.586-.226.811-.195.225-.478.354-.775.354h-5.07zm16.315 0c.553 0 1-.448 1-1 0-3.316 2-5 4-5 .463 0 .078-.782-.029-1.232-.107-.45-.508-.768-.971-.768h-5c-3.738 0-4.869 6.136-4.986 6.835-.049.29.033.586.223.811.191.225.47.354.763.354h5z"/><path fill="#BE1931" d="M6 32s0 4 4 4h16s4 0 4-4V10s0-4-4-4H10c-4 0-4 4-4 4v22z"/><path fill="#A0041E" d="M24 28H12c-2.201 0-3-1.794-3-3V11c0-.552.448-1 1-1s1 .448 1 1v14c.012.45.195 1 1 1h12c.45-.012 1-.194 1-1V11c0-.552.447-1 1-1s1 .448 1 1v14c0 2.201-1.794 3-3 3z"/><path fill="#FFF" d="M16 25s0-1 1-1h2s1 0 1 1v5s0 1-1 1h-2s-1 0-1-1v-5z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f399.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f399.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M6 15h24v2H6zm15 15c0 2.208-.792 4-3 4-2.209 0-3-1.792-3-4s.791-2 3-2c2.208 0 3-.208 3 2z"/><path fill="#66757F" d="M18 31c-6.627 0-10 1.343-10 3v2h20v-2c0-1.657-3.373-3-10-3z"/><path fill="#99AAB5" d="M18 0c-4.971 0-9 4.029-9 9v7h18V9c0-4.971-4.029-9-9-9z"/><g fill="#292F33"><circle cx="15.5" cy="2.5" r="1.5"/><circle cx="20.5" cy="2.5" r="1.5"/><circle cx="17.5" cy="6.5" r="1.5"/><circle cx="22.5" cy="6.5" r="1.5"/><circle cx="12.5" cy="6.5" r="1.5"/><circle cx="15.5" cy="10.5" r="1.5"/><circle cx="10.5" cy="10.5" r="1.5"/><circle cx="20.5" cy="10.5" r="1.5"/><circle cx="25.5" cy="10.5" r="1.5"/><circle cx="17.5" cy="14.5" r="1.5"/><circle cx="22.5" cy="14.5" r="1.5"/><circle cx="12.5" cy="14.5" r="1.5"/></g><path fill="#66757F" d="M9 15.062V17c0 4.971 4.029 9 9 9s9-4.029 9-9v-1.938H9z"/><path fill="#66757F" d="M30 14c-.553 0-1 .448-1 1v2c0 6.074-4.925 11-11 11S7 23.074 7 17v-2c0-.552-.448-1-1-1s-1 .448-1 1v2c0 7.18 5.82 13 13 13s13-5.82 13-13v-2c0-.552-.447-1-1-1z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f39f.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f39f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EA596E" d="M26.751 8.007c1.364 1.365 3.364 1.708 5.046 1.032l3.613 3.611c.737.74.738 1.938-.004 2.68L15.319 35.405c-.743.739-1.94.737-2.681 0l-3.606-3.612c.672-1.684.33-3.682-1.032-5.047-1.367-1.365-3.364-1.707-5.047-1.032l-2.359-2.36c-.74-.737-.742-1.938 0-2.68L20.678.596c.739-.74 1.936-.741 2.679.002l2.361 2.361c-.677 1.683-.331 3.681 1.033 5.048z"/><path fill="#BE1931" d="M5.42 18.527l-2.149 2.148c-.739.739-.741 1.939-.003 2.68l.542.541c1.896-.505 3.999-.018 5.482 1.468 1.488 1.486 1.971 3.589 1.467 5.481l1.878 1.883c.741.739 1.941.739 2.682-.002l2.189-2.187L5.42 18.527zm13.521 10.58l10.158-10.152L17.008 6.943 6.854 17.095l12.087 12.012zm1.99-13.993c2.245 2.228 2.745 5.356 1.121 6.989-1.627 1.635-4.762 1.151-7.001-1.075-2.239-2.228-2.738-5.358-1.114-6.991 1.625-1.63 4.755-1.15 6.994 1.077zm11.8-2.464l-1.881-1.881c-1.895.503-3.998.021-5.483-1.468-1.488-1.484-1.976-3.591-1.47-5.484l-.541-.546c-.74-.735-1.94-.735-2.678.003L18.442 5.51l12.092 12.011 2.196-2.195c.74-.737.74-1.936.001-2.676z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f3a0.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f3a0.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M24.357 16.337s2.248-3.959 4.805-4.169c2.557-.21 3.929.934 4.144 3.432.287 3.334-.878 3.802-.033 7.53 0 0-3.546-2.414-2.421-6.07 1.172-3.806-4.81-3.095-3.835.316l-2.66-1.039z"/><path fill="#FFCC4D" d="M14.31 20.375c-.553 0-1 .448-1 1v13.563c0 .552.447 1 1 1s1-.448 1-1V21.375c0-.552-.448-1-1-1z"/><path fill="#F4900C" d="M15.31 25.77l-2 1.047v2.257l2-1.047zm-2 8.054l2-1.047V30.52l-2 1.047z"/><path fill="#8899A6" d="M3.912 21.935c-1.181-.117-1.918 1.621-1.918 1.621.114.814.447 2.255.597 2.778.327 1.141 2.121 3.095 3.262 2.768 1.141-.327.814-1.468.487-2.608-.327-1.141-2.428.622-1.794-1.955.149-.606.865-.756 1.483-.695 2.362.234 2.881-.223 3.788-1.325 1.064-1.296-4.724-.467-5.905-.584zm25.142 6.7c0 2.373 1.187 3.56 3.56 3.56s1.187 0 0-2.373-3.56-3.56-3.56-3.56v2.373z"/><path fill="#CCD6DD" d="M34.987 31.008c-1.187-1.187-2.373 0-2.373-2.373s-1.187-3.56-2.373-3.56-1.187-4.746-1.187-5.933-2.373-5.933-5.933-5.933c-3.56 0-5.933 1.187-8.306 1.187-2.373 0-3.56 0-4.746-4.746-.91-3.64-4.746-4.746-8.306-3.56 0 0-2.582-.995-1.395.192 1.187 1.187-.18.995-.18 3.368 0 .275.066.515.174.73C.354 11.489.343 13.521.369 14c.036.667.294.883 1.131 1.208 1.125.438 1.782-.319 1.854-.708.146-.792.021-1.656.021-1.656s1.167-.469 1.896-1.135c.098.081.625 1.146.052 2.688-.413 1.112-1.187 2.373 1.187 5.933 0 0-3.56 0-4.746 1.187C.577 22.704.288 25.077.312 26.263c.033 1.648 1.452 3.56 2.639 3.56s1.187-1.187 1.187-2.373c0-1.187-2.373 0-1.187-2.373 1.187-2.373 1.187-1.187 2.373-1.187 1.187 0 3.56-1.187 4.746-1.187s3.56 1.187 5.933 1.187c2.373 0 4.746-2.373 7.119 0 2.373 2.373 5.933 2.373 7.119 3.56 1.187 1.187 1.187 2.373 1.187 3.56 0 1.187 2.373 2.373 3.56 2.373s1.186-1.188-.001-2.375z"/><path fill="#3B94D9" d="M10.712 11.761c1.006 2.629 2.154 2.635 4.103 2.635 2 0 4.008-.835 6.718-1.101.143.36.276.728.401 1.101 1.187 3.56 0 5.933-5.933 5.933-3.277 0-5.933-2.656-5.933-5.933.001-.951.246-1.838.644-2.635z"/><path fill="#F4900C" d="M5.629 19.705c.225.026.459-.013.674-.124.17-.087 4.187-2.185 5.919-5.914.276-.594-1.171-1.719-1.446-1.629-.301.099-.56.318-.704.628-1.385 2.98-4.821 4.786-4.854 4.804-.581.301-.81 1.017-.509 1.598.187.367.539.594.92.637z"/><ellipse fill="#1C6399" cx="14.31" cy="15.245" rx="1.455" ry="1.163"/><path fill="#FFCC4D" d="M14.31.25c-.553 0-1 .448-1 1v13.573l.005-.001-.003.001c.006.547.449.989.998.989.553 0 1-.448 1-1V1.25c0-.552-.448-1-1-1z"/><path fill="#F4900C" d="M15.31 2.02l-2 1.047v2.257l2-1.047zm0 4.75l-2 1.047v2.257l2-1.047zm-2 8.043l.01.006 1.99-1.041V11.52l-2 1.047v2.246z"/><path fill="#1C6399" d="M3.274 13.255c-.091 0-.182-.025-.262-.074-1.136-.698-2.341-.72-2.353-.72-.276-.003-.498-.229-.496-.504.002-.275.225-.496.5-.496.057.011 1.129.003 2.35.584.287-.838.765-2.666.466-4.922-.036-.274.156-.525.43-.562.276-.033.525.156.562.43.452 3.409-.695 5.875-.744 5.978-.061.128-.173.225-.31.265-.047.014-.095.021-.143.021z"/><ellipse transform="rotate(-56.453 1.847 8.862)" fill="#292F33" cx="1.846" cy="8.862" rx=".555" ry=".424"/><path fill="#DD2E44" d="M12.442 13.21c-2.373-2.373-1.006-5.256-3.379-7.629-1.876-1.876-4.927-1.863-7.3.51 0 0 1.121 1.086 4.081 1.378 1.43.141 2.649 1.693 3.337 2.782 2.21 4.311 5.056 4.754 3.261 2.959z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f3a1.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f3a1.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M30.806 15.347H19.201l8.205-8.205-.707-.707-8.205 8.205V3.036h-1V14.64L9.288 6.435l-.707.707 8.206 8.205H5.182v1h11.605l-8.206 8.206.707.707 8.206-8.206v11.605h1V17.055l8.205 8.205.707-.707-8.205-8.206h11.605z"/><path fill="#AAB8C2" d="M17.994 1.394c-7.982 0-14.453 6.471-14.453 14.453 0 7.982 6.471 14.453 14.453 14.453 7.983 0 14.454-6.471 14.454-14.453-.001-7.982-6.472-14.453-14.454-14.453zm0 26.683c-6.755 0-12.23-5.475-12.23-12.23s5.475-12.23 12.23-12.23c6.754 0 12.23 5.475 12.23 12.23s-5.475 12.23-12.23 12.23z"/><path fill="#AAB8C2" d="M17.993 23.374c-4.15 0-7.526-3.377-7.526-7.527s3.376-7.526 7.526-7.526c4.151 0 7.528 3.376 7.528 7.526s-3.376 7.527-7.528 7.527zm0-13.553c-3.323 0-6.026 2.704-6.026 6.026s2.704 6.027 6.026 6.027c3.324 0 6.028-2.704 6.028-6.027s-2.704-6.026-6.028-6.026z"/><path fill="#8899A6" d="M27.279 34.429l-8.376-18.344c-.021-.046-.058-.076-.085-.117-.038-.059-.072-.118-.123-.169-.051-.051-.11-.085-.17-.123-.041-.027-.071-.064-.117-.085-.012-.005-.024-.003-.035-.008-.064-.027-.132-.034-.201-.047-.061-.011-.121-.03-.182-.03-.054 0-.106.018-.161.027-.075.013-.149.022-.219.051-.011.005-.023.003-.034.008-.044.02-.074.057-.114.082-.061.039-.121.074-.173.125-.051.051-.086.111-.124.171-.026.04-.063.07-.083.115L8.709 34.429c-.229.502-.008 1.096.494 1.325.135.061.276.09.415.09.379 0 .742-.217.91-.585l7.465-16.351 7.465 16.351c.168.368.531.585.911.585.139 0 .279-.029.414-.091.504-.229.725-.822.496-1.324z"/><path d="M12.9 36H7.079c-.552 0-1-.447-1-1s.448-1 1-1H12.9c.552 0 1 .447 1 1s-.448 1-1 1zm15.999 0h-5.82c-.553 0-1-.447-1-1s.447-1 1-1h5.82c.553 0 1 .447 1 1s-.447 1-1 1z" fill="#553788"/><path fill="#744EAA" d="M21.284 29.819c0 1.535-1.244 2.779-2.779 2.779h-1.112c-1.535 0-2.779-1.244-2.779-2.779s1.244-2.779 2.779-2.779h1.112c1.534 0 2.779 1.244 2.779 2.779z"/><path fill="#CBB7EA" d="M21.227 29.263c-.257-1.269-1.378-2.224-2.723-2.224h-1.112c-1.345 0-2.466.954-2.724 2.224h6.559z"/><path fill="#5C913B" d="M11.017 26.527c0 1.535-1.244 2.779-2.779 2.779H7.126c-1.535 0-2.779-1.244-2.779-2.779s1.244-2.779 2.779-2.779h1.112c1.535 0 2.779 1.244 2.779 2.779z"/><path fill="#C6E5B3" d="M10.96 25.971c-.257-1.269-1.378-2.224-2.723-2.224H7.126c-1.345 0-2.466.954-2.724 2.224h6.558z"/><path fill="#3B94D9" d="M34.977 17.633c0 1.535-1.244 2.779-2.779 2.779h-1.112c-1.535 0-2.779-1.244-2.779-2.779s1.244-2.779 2.779-2.779h1.112c1.535-.001 2.779 1.243 2.779 2.779z"/><path fill="#BBDDF5" d="M34.921 17.077c-.257-1.269-1.378-2.224-2.723-2.224h-1.112c-1.344 0-2.466.954-2.723 2.224h6.558z"/><path fill="#5C913B" d="M31.644 7.887c0 1.535-1.244 2.779-2.779 2.779h-1.112c-1.535 0-2.779-1.244-2.779-2.779s1.244-2.779 2.779-2.779h1.112c1.535 0 2.779 1.244 2.779 2.779z"/><path fill="#C6E5B3" d="M31.588 7.331c-.257-1.269-1.378-2.224-2.723-2.224h-1.112c-1.344 0-2.466.954-2.723 2.224h6.558z"/><path fill="#BE1931" d="M31.644 26.527c0 1.535-1.244 2.779-2.779 2.779h-1.112c-1.535 0-2.779-1.244-2.779-2.779s1.244-2.779 2.779-2.779h1.112c1.535 0 2.779 1.244 2.779 2.779z"/><path fill="#F4ABBA" d="M31.588 25.971c-.257-1.269-1.378-2.224-2.723-2.224h-1.112c-1.344 0-2.466.954-2.723 2.224h6.558z"/><path fill="#BE1931" d="M11.017 7.887c0 1.535-1.244 2.779-2.779 2.779H7.126c-1.535 0-2.779-1.244-2.779-2.779s1.244-2.779 2.779-2.779h1.112c1.535 0 2.779 1.244 2.779 2.779z"/><path fill="#F4ABBA" d="M10.96 7.331c-.257-1.269-1.378-2.224-2.723-2.224H7.126c-1.345 0-2.466.954-2.724 2.224h6.558z"/><path fill="#744EAA" d="M21.284 2.876c0 1.535-1.244 2.779-2.779 2.779h-1.112c-1.535 0-2.779-1.244-2.779-2.779S15.858.097 17.393.097h1.112c1.534-.001 2.779 1.243 2.779 2.779z"/><path fill="#CBB7EA" d="M21.227 2.32C20.97 1.051 19.849.096 18.504.096h-1.112c-1.345 0-2.466.954-2.724 2.224h6.559z"/><path fill="#3B94D9" d="M7.682 17.633c0 1.535-1.244 2.779-2.779 2.779H3.79c-1.535 0-2.779-1.244-2.779-2.779s1.244-2.779 2.779-2.779h1.112c1.535-.001 2.78 1.243 2.78 2.779z"/><path fill="#BBDDF5" d="M7.625 17.077c-.257-1.269-1.378-2.224-2.723-2.224H3.79c-1.345 0-2.466.954-2.724 2.224h6.559z"/><path fill="#553788" d="M14.952 15.847c0-1.68 1.362-3.041 3.041-3.041 1.68 0 3.042 1.362 3.042 3.041s-1.362 3.041-3.042 3.041c-1.679.001-3.041-1.361-3.041-3.041z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f3a2.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f3a2.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#E1E8ED" d="M32.612 16.645v-1h-4.083V8.333h-1v7.312h-3.11v1h3.11v4H18.55v-4.604h-1v4.604H12.8v1h4.75v4H8.612v-3.208h-1v3.208H2.205v1h5.407v4H2.205v1h5.407V36h1v-4.355h8.938V36h1v-4.355h8.979V36h1v-4.355h4.083v-1h-4.083v-4h4.083v-1h-4.083v-4h4.083v-1h-4.083v-4h4.083zm-24 14v-4h8.938v4H8.612zm18.917 0H18.55v-4h8.979v4zm0-5H18.55v-4h8.979v4z"/><path fill="#CCD6DD" d="M31.05 6.595h4V36h-4z"/><path fill="#8899A6" d="M34.05 6.595h1V36h-1z"/><path fill="#CCD6DD" d="M25.05 10.208l-4 2.417V36h4zm-14 10.709h4V36h-4zm-10 4.791h4V36h-4z"/><path fill="#8899A6" d="M4.05 25.708h1V36h-1zm10-4.791h1V36h-1zm10-10.709h1V36h-1z"/><path fill="#CCD6DD" d="M18.804 16.378C12.948 21.327 6.491 26.771 0 29.035v1.816c7.387-2.665 14.422-8.66 20.363-13.725 4.789-4.083 9.313-7.939 11.764-7.939 1.46 0 2.746.513 3.873 1.337V8.738c-1.11-.651-2.39-1.05-3.873-1.05-3.041 0-8.035 4.221-13.323 8.69z"/><path fill="#DD2E44" d="M32.127 4.688c-4.139 0-9.292 4.355-15.26 9.399C11.523 18.603 5.653 23.558 0 25.84v3.196c6.491-2.265 12.948-7.708 18.804-12.657 5.288-4.469 10.282-8.69 13.323-8.69 1.483 0 2.763.399 3.873 1.05v-3.36c-1.154-.438-2.439-.691-3.873-.691z"/><path fill="#1C6399" d="M10.912 14.422l-.368.29c-.142.112-.348.087-.459-.054l-.918-1.164c-.112-.142-.087-.348.054-.459l.368-.29c.142-.112.348-.087.459.054l.918 1.164c.112.142.088.347-.054.459zm3.438-2.632l-.368.29c-.142.112-.348.087-.459-.054l-.918-1.164c-.112-.142-.087-.348.054-.459l.368-.29c.142-.112.348-.087.459.054l.918 1.164c.112.142.088.347-.054.459zm6.52-5.208l-.368.29c-.142.112-.348.087-.459-.054l-.918-1.164c-.112-.142-.087-.348.054-.459l.368-.29c.142-.112.348-.087.459.054l.918 1.164c.113.141.088.347-.054.459zm3.471-2.664l-.368.29c-.142.112-.348.087-.459-.054l-.918-1.164c-.112-.142-.087-.348.054-.459l.368-.29c.142-.112.348-.087.459.054l.918 1.164c.112.141.088.347-.054.459zm-8.532 9.678c-.217 0-.433-.094-.581-.275-.262-.32-.215-.793.106-1.055l1.409-1.152c.321-.262.794-.216 1.056.106.262.32.215.793-.106 1.055l-1.409 1.152c-.14.113-.308.169-.475.169z"/><path fill="#EA596E" d="M9.349 14.069c.82 1.044.676 1.731.154 2.141-.522.41-1.224.387-2.044-.656-.82-1.043-1.062-2.222-.54-2.632.523-.411 1.61.103 2.43 1.147z"/><path fill="#A6D388" d="M12.745 11.401c.82 1.044.676 1.731.154 2.141-.522.41-1.224.387-2.044-.656-.82-1.043-1.062-2.222-.54-2.632.523-.411 1.61.103 2.43 1.147z"/><path fill="#3B94D9" d="M13.599 11.67l-5.892 4.629c-1.522 1.196-.604 4.01-.332 4.356.291.371.829.436 1.2.144l7.459-5.86c.742-.583.871-1.657.288-2.399l-.406-.517c-.583-.743-1.62-.901-2.317-.353z"/><path fill="#F4900C" d="M19.178 6.108c.82 1.044.676 1.731.154 2.141-.522.41-1.224.387-2.043-.657-.82-1.044-1.062-2.222-.539-2.632.521-.41 1.608.104 2.428 1.148z"/><path fill="#AA8DD8" d="M22.628 3.387c.82 1.044.676 1.731.154 2.141-.522.41-1.224.387-2.043-.657-.82-1.044-1.062-2.222-.539-2.632.521-.41 1.609.104 2.428 1.148z"/><path fill="#3B94D9" d="M23.429 3.709l-5.893 4.629c-1.522 1.195-.604 4.01-.332 4.356.291.371.829.436 1.2.144l7.46-5.859c.742-.583.871-1.657.288-2.399l-.406-.517c-.583-.743-1.621-.901-2.317-.354z"/><path fill="#E1E8ED" d="M9.096 20.838c-.148 0-.295-.066-.394-.192-.171-.217-.132-.532.086-.702l7.059-5.515c.215-.168.53-.132.701.086.171.217.132.532-.086.702l-7.059 5.515c-.09.072-.198.106-.307.106zm9.787-7.906c-.148 0-.295-.066-.394-.192-.171-.217-.132-.532.086-.702l7.059-5.515c.216-.169.53-.132.701.086.171.217.132.532-.086.702l-7.059 5.515c-.091.071-.199.106-.307.106z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f3a8.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f3a8.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D99E82" d="M18 3.143c-9.941 0-18 6.908-18 15.428 0 1.066.126 2.107.367 3.112C2.146 24.744 3.377 22.812 9 20c5.727-2.864 0 4-2 8-.615 1.23-.282 2.271.56 3.124C10.506 32.928 14.104 34 18 34c9.941 0 18-6.907 18-15.429 0-8.52-8.059-15.428-18-15.428zm2.849 24.447c-.395 1.346-2.46 1.924-4.613 1.291-2.153-.632-3.578-2.234-3.183-3.581.395-1.346 2.46-1.924 4.613-1.29 2.153.631 3.578 2.233 3.183 3.58z"/><circle fill="#5C913B" cx="10" cy="11" r="3"/><circle fill="#269" cx="20" cy="9" r="3"/><circle fill="#DD2E44" cx="29" cy="15" r="3"/><circle fill="#FFCC4D" cx="28" cy="24" r="3"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f3ac.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f3ac.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3F7123" d="M35.845 32c0 2.2-1.8 4-4 4h-26c-2.2 0-4-1.8-4-4V19c0-2.2 1.8-4 4-4h26c2.2 0 4 1.8 4 4v13z"/><path fill="#3F7123" d="M1.845 15h34v6h-34z"/><path fill="#CCD6DD" d="M1.845 15h34v7h-34z"/><path fill="#292F33" d="M1.845 15h4l-4 7v-7zm11 0l-4 7h7l4-7h-7zm14 0l-4 7h7l4-7h-7z"/><path fill="#CCD6DD" d="M.155 8.207L33.148 0l1.69 6.792L1.845 15z"/><path fill="#292F33" d="M.155 8.207l5.572 5.827L1.845 15 .155 8.207zm19.158 2.448l-5.572-5.828-6.793 1.69 5.572 5.828 6.793-1.69zm13.586-3.38l-5.572-5.828-6.793 1.69 5.572 5.827 6.793-1.689z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f3af.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f3af.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#DD2E44" cx="18" cy="18" r="18"/><circle fill="#FFF" cx="18" cy="18" r="13.5"/><circle fill="#DD2E44" cx="18" cy="18" r="10"/><circle fill="#FFF" cx="18" cy="18" r="6"/><circle fill="#DD2E44" cx="18" cy="18" r="3"/><path opacity=".2" d="M18.24 18.282l13.144 11.754s-2.647 3.376-7.89 5.109L17.579 18.42l.661-.138z"/><path fill="#FFAC33" d="M18.294 19c-.255 0-.509-.097-.704-.292-.389-.389-.389-1.018 0-1.407l.563-.563c.389-.389 1.018-.389 1.408 0 .388.389.388 1.018 0 1.407l-.564.563c-.194.195-.448.292-.703.292z"/><path fill="#55ACEE" d="M24.016 6.981c-.403 2.079 0 4.691 0 4.691l7.054-7.388c.291-1.454-.528-3.932-1.718-4.238-1.19-.306-4.079.803-5.336 6.935zm5.003 5.003c-2.079.403-4.691 0-4.691 0l7.388-7.054c1.454-.291 3.932.528 4.238 1.718.306 1.19-.803 4.079-6.935 5.336z"/><path fill="#3A87C2" d="M32.798 4.485L21.176 17.587c-.362.362-1.673.882-2.51.046-.836-.836-.419-2.08-.057-2.443L31.815 3.501s.676-.635 1.159-.152-.176 1.136-.176 1.136z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f3b2.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f3b2.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#A0041E" d="M4 11v.137c0-.042.011-.084.015-.126L4 11zm13 11.137c-.146-.067-.287-.145-.412-.246L4.565 12.245C4.188 11.94 4 11.539 4 11.137v12.238c0 2.042 1.093 2.484 1.093 2.484l11.574 9.099c.205.161.377.259.528.318-.114-.174-.195-.375-.195-.604V22.137zm-8.773.363c-.994 0-2.033-1.007-2.319-2.25-.287-1.242.287-2.249 1.28-2.249.994 0 2.033 1.007 2.319 2.249.287 1.243-.286 2.25-1.28 2.25zM13.81 30c-.994 0-2.033-1.008-2.319-2.25-.287-1.243.287-2.25 1.281-2.25s2.033 1.007 2.319 2.25c.286 1.242-.287 2.25-1.281 2.25z"/><path fill="#DD2E44" d="M31.435 12.161l-12.104 9.73c-.102.083-.214.152-.331.212v12.569c0 .233-.083.437-.2.614.155-.058.335-.16.548-.328 1.821-1.432 11.588-9.099 11.588-9.099S32 25.417 32 23.375V11.053c0 .402-.188.803-.565 1.108zm-7.457 16.731c-.242 1.137-1.119 2.058-1.958 2.058-.838 0-1.322-.921-1.08-2.058.242-1.137 1.118-2.058 1.957-2.058s1.322.921 1.081 2.058zm3.538-5.271c-.254 1.172-1.178 2.121-2.062 2.121-.883 0-1.392-.949-1.138-2.121.255-1.172 1.179-2.121 2.061-2.121.885 0 1.394.949 1.139 2.121zm3.063-5.105c-.251 1.115-1.163 2.017-2.035 2.017-.872 0-1.375-.902-1.123-2.017.251-1.113 1.162-2.016 2.034-2.016.873 0 1.376.903 1.124 2.016zm1.415-7.511c.001.016.006.032.006.048V11l-.006.005z"/><path fill="#EA596E" d="M31.435 9.945L19.289.5c-.753-.61-1.988-.61-2.742 0L4.565 10.029c-.338.273-.515.624-.551.983-.003.042-.014.083-.014.125 0 .402.188.803.565 1.108l12.023 9.646c.125.101.265.178.412.246v12.535c0 .229.081.43.194.604.181.28.466.474.806.474.336 0 .619-.19.8-.464.117-.176.2-.38.2-.614V22.103c.117-.06.229-.129.331-.212l12.104-9.73c.377-.305.565-.706.565-1.108 0-.016-.005-.032-.006-.049-.014-.385-.198-.767-.559-1.059zM18.5 8.667c1.61 0 2.916 1.044 2.916 2.333 0 1.289-1.306 2.333-2.916 2.333-1.611 0-2.916-1.044-2.916-2.333 0-1.289 1.305-2.333 2.916-2.333z"/><ellipse fill="#FFF" cx="18.5" cy="11" rx="2.916" ry="2.333"/><path fill="#FFF" d="M29.455 16.5c-.872 0-1.783.903-2.034 2.016-.252 1.115.251 2.017 1.123 2.017s1.784-.902 2.035-2.017c.252-1.113-.251-2.016-1.124-2.016zm-3.077 5c-.883 0-1.807.949-2.061 2.121-.254 1.172.255 2.121 1.138 2.121.884 0 1.808-.949 2.062-2.121.254-1.172-.255-2.121-1.139-2.121zm-3.482 5.334c-.839 0-1.715.921-1.957 2.058-.242 1.137.242 2.058 1.08 2.058.839 0 1.716-.921 1.958-2.058.242-1.137-.242-2.058-1.081-2.058z"/><path fill="#E1E8ED" d="M7.188 18.001c-.994 0-1.567 1.007-1.28 2.249.287 1.243 1.325 2.25 2.319 2.25s1.567-1.007 1.28-2.25c-.286-1.242-1.325-2.249-2.319-2.249zm5.583 7.499c-.994 0-1.567 1.007-1.281 2.25.287 1.242 1.326 2.25 2.32 2.25.994 0 1.567-1.008 1.281-2.25-.287-1.243-1.326-2.25-2.32-2.25z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f3b6.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f3b6.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5DADEC" d="M14.182.168L7.818 1.469C7.368 1.561 7 2.012 7 2.471v15.857C6.387 18.12 5.712 18 5 18c-2.762 0-5 1.741-5 3.889 0 2.147 2.238 3.889 5 3.889 2.713 0 4.908-1.683 4.985-3.777H10V6.477l4.182-.855c.45-.092.818-.543.818-1.002V.835c0-.459-.368-.76-.818-.667zm21 4l-6.363 1.301c-.451.092-.819.543-.819 1.002v15.857c-.613-.209-1.288-.328-2-.328-2.762 0-5 1.741-5 3.889 0 2.147 2.238 3.889 5 3.889 2.713 0 4.908-1.683 4.985-3.777H31V10.477l4.182-.855c.45-.092.818-.543.818-1.002V4.835c0-.459-.368-.76-.818-.667z"/><path fill="#5DADEC" d="M23.182 10.167l-6.363 1.301c-.451.093-.819.544-.819 1.003v15.857c-.613-.209-1.288-.328-2-.328-2.762 0-5 1.741-5 3.889s2.238 3.889 5 3.889c2.713 0 4.908-1.683 4.985-3.777H19V16.477l4.182-.855c.45-.092.818-.543.818-1.002v-3.785c0-.459-.368-.76-.818-.668z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f3b7.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f3b7.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill-rule="evenodd" clip-rule="evenodd" fill="#FCAB40" d="M14 16L9 26s-1 2 1 2c1 0 2-2 2-2L26 7s2-4 8-1v2c-3-1-4 1-4 1L15 33s-2 3-7 3c-6 0-7-5-7-8 0-2 1-4 2-6s-2-6-2-6h13z"/><path fill="#FDCB58" d="M7.5 20C4.04 20 0 18.952 0 16c0-2.953 4.04-4 7.5-4s7.5 1.047 7.5 4c0 2.952-4.04 4-7.5 4z"/><circle fill="#CCD6DD" cx="19" cy="17" r="2"/><circle fill="#CCD6DD" cx="22" cy="13" r="2"/><circle fill="#CCD6DD" cx="25" cy="9" r="2"/><path fill="#9AAAB4" d="M33.998 10c-.3 0-.605-.068-.893-.211l-2-1c-.988-.494-1.389-1.695-.895-2.684.493-.986 1.693-1.39 2.684-.895l2 1c.988.494 1.389 1.695.895 2.684-.351.701-1.057 1.106-1.791 1.106z"/><path fill-rule="evenodd" clip-rule="evenodd" fill="#FCAB40" d="M8.806 21.703l1.267-1.547 6.19 5.069-1.267 1.547z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f3b8.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f3b8.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#BB1A34" d="M21.828 20.559C19.707 21.266 19 17.731 19 17.731s.965-.968.235-1.829c1.138-1.137.473-1.707.473-1.707-1.954-1.953-5.119-1.953-7.071 0-.246.246-.414.467-.553.678-.061.086-.115.174-.17.262l-.014.027c-.285.475-.491.982-.605 1.509-.156.319-.379.659-.779 1.06-1.414 1.414-4.949-.707-7.778 2.121-.029.029-.045.069-.069.104-.094.084-.193.158-.284.25-3.319 3.319-3.003 9.018.708 12.728 3.524 3.525 8.84 3.979 12.209 1.17.058-.031.117-.061.165-.109.071-.072.126-.14.193-.21.053-.049.109-.093.161-.143 1.693-1.694 2.342-3.73 2.086-5.811-.068-.99-.165-1.766.39-2.321.707-.707 2.828 0 4.242-1.414 2.117-2.122.631-3.983-.711-3.537z"/><path fill="#292F33" d="M14.987 18.91L30.326 3.572l2.121 2.122-15.339 15.339z"/><path fill="#F5F8FA" d="M10.001 29.134c1.782 1.277 1.959 3.473 1.859 4.751-.042.528.519.898.979.637 2.563-1.456 4.602-3.789 4.038-7.853-.111-.735.111-2.117 2.272-2.406 2.161-.29 2.941-1.099 3.208-1.485.153-.221.29-.832-.312-.854-.601-.022-2.094.446-3.431-1.136-1.337-1.582-1.559-2.228-1.604-2.473-.045-.245-1.409-3.694-2.525-1.864-.927 1.521-1.958 4.509-5.287 5.287-1.355.316-3.069 1.005-3.564 1.96-.832 1.604.46 2.725 1.574 3.483 1.115.757 2.793 1.953 2.793 1.953z"/><path fill="#292F33" d="M13.072 19.412l1.414-1.415 3.536 3.535-1.414 1.414zm-4.475 4.474l1.415-1.414 3.535 3.535-1.414 1.414z"/><path fill="#CCD6DD" d="M7.396 27.189L29.198 5.427l.53.531L7.927 27.72zm.869.868L30.067 6.296l.53.531L8.796 28.59z"/><path fill="#292F33" d="M9.815 28.325c.389.389.389 1.025 0 1.414s-1.025.389-1.414 0l-2.122-2.121c-.389-.389-.389-1.025 0-1.414h.001c.389-.389 1.025-.389 1.414 0l2.121 2.121z"/><circle fill="#292F33" cx="13.028" cy="29.556" r="1"/><path fill="#292F33" d="M14.445 31.881c0 .379-.307.686-.686.686-.379 0-.686-.307-.686-.686 0-.379.307-.686.686-.686.379 0 .686.307.686.686z"/><path fill="#BB1A34" d="M35.088 4.54c.415.415.415 1.095-.001 1.51l-4.362 3.02c-.416.415-1.095.415-1.51 0L26.95 6.804c-.415-.415-.415-1.095.001-1.51l3.02-4.361c.416-.415 1.095-.415 1.51 0l3.607 3.607z"/><circle fill="#66757F" cx="32.123" cy="9.402" r=".625"/><circle fill="#66757F" cx="33.381" cy="8.557" r=".625"/><circle fill="#66757F" cx="34.64" cy="7.712" r=".625"/><circle fill="#66757F" cx="26.712" cy="3.811" r=".625"/><circle fill="#66757F" cx="27.555" cy="2.571" r=".625"/><circle fill="#66757F" cx="28.398" cy="1.332" r=".625"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f3ba.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f3ba.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FCAB40" d="M5.622 33.051l-2.674-2.673L23.337 9.987c3.344-3.343 1.337-8.021 2.007-8.689.666-.67 1.335-.002 1.335-.002l8.023 8.023c.668.668 0 1.336 0 1.336-.669.67-5.778-.908-8.692 2.006L5.622 33.051z"/><path fill="#CCD6DD" d="M5.457 33.891c.925-.925.925-2.424 0-3.35-.924-.924-2.424-.924-3.349 0l.087.087c-.371-.334-.938-.331-1.296.027-.369.368-.369.968 0 1.336L4.008 35.1c.37.369.968.369 1.337 0 .355-.356.36-.919.032-1.29l.08.081z"/><path fill="#FCAB40" d="M13.31 33.709c-1.516 0-2.939-.59-4.011-1.661-1.071-1.07-1.661-2.495-1.661-4.011 0-1.515.59-2.939 1.661-4.011L19.995 13.33c1.071-1.071 2.496-1.661 4.012-1.661 1.515 0 2.94.59 4.011 1.661 2.211 2.212 2.211 5.811 0 8.022L17.322 32.047c-1.072 1.071-2.496 1.662-4.012 1.662zM24.007 15.45c-.506 0-.98.197-1.338.554L11.974 26.7c-.357.357-.554.832-.554 1.337 0 .506.197.979.553 1.336.358.357.832.555 1.337.555s.98-.197 1.337-.555l10.696-10.695c.737-.737.736-1.937-.001-2.674-.356-.357-.83-.554-1.335-.554z"/><path fill="#FCAB40" d="M25.344 24.026c.736.738 1.936.738 2.674 0 .738-.739.738-1.937 0-2.674l-8.022-8.023c-.739-.738-1.935-.738-2.673 0-.739.739-.739 1.937 0 2.675l8.021 8.022zm-4.012 4.011c.738.738 1.937.738 2.674 0 .738-.739.738-1.936.002-2.674l-8.023-8.023c-.739-.738-1.936-.738-2.675 0-.738.738-.738 1.936 0 2.675l8.022 8.022zm-4.01 4.011c.738.738 1.934.738 2.673 0 .738-.738.738-1.937 0-2.674l-8.021-8.022c-.739-.738-1.936-.738-2.675 0-.738.737-.738 1.935 0 2.674l8.023 8.022z"/><path fill="#CCD6DD" d="M14.648 13.329c.369.369.968.369 1.337 0l1.337-1.336c.369-.369.369-.968 0-1.338-.37-.369-.968-.369-1.337 0l-1.337 1.338c-.37.369-.37.967 0 1.336zm-4.011 4.012c.37.371.967.37 1.337 0l1.336-1.337c.37-.37.371-.967 0-1.337-.369-.37-.967-.37-1.337 0l-1.337 1.337c-.369.37-.369.968.001 1.337zm-4.012 4.012c.37.37.967.37 1.337 0l1.337-1.338c.37-.369.37-.967 0-1.337-.369-.369-.967-.369-1.336 0l-1.337 1.338c-.37.369-.37.967-.001 1.337z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f3bb.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f3bb.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F18F26" d="M23.912 12.087C22.219 10.394 20.318 9.5 18.415 9.5c-1.626 0-3.189.667-4.402 1.88-1.519 1.519-1.727 2.39-1.865 2.966-.071.295-.106.421-.255.57-.106.106-.155.256-.14.406.015.149.1.286.225.369.013.009.324.22.368.651.039.394-.13 1.08-1.16 2.11-.629.629-1.252.948-1.85.948-.981 0-1.649-.87-1.654-.877-.11-.15-.295-.226-.48-.197-.185.029-.337.159-.396.335-.221.663-.251.668-.535.709-.59.086-1.578.229-3.624 2.275C.972 23.32.381 25.412.939 27.693c.395 1.617 1.408 3.358 2.708 4.659 1.408 1.408 3.802 2.912 6.301 2.912 1.654 0 3.137-.643 4.406-1.912 2.045-2.046 2.189-3.033 2.274-3.624.042-.284.046-.313.71-.534.177-.06.307-.212.336-.396.029-.184-.046-.369-.196-.48-.008-.006-.805-.619-.873-1.527-.047-.638.27-1.302.944-1.976.963-.963 1.622-1.165 2.005-1.165.504 0 .746.357.752.366.08.13.216.216.368.234.142.016.303-.035.411-.144.149-.149.275-.185.57-.255.576-.139 1.446-.348 2.965-1.866 2.286-2.286 2.955-6.234-.708-9.898z"/><path fill="#292F33" d="M34 3L19 20l-3-3L33 2z"/><path fill="#642116" d="M13 27c-.256 0-.512-.098-.707-.293l-3-3c-.391-.391-.391-1.023 0-1.414s1.023-.391 1.414 0l3 3c.391.391.391 1.023 0 1.414-.196.195-.452.293-.707.293z"/><path fill="#CCD6DD" d="M4.628 29.935L28.8 5.807l.53.531L5.16 30.466zm.869.869L29.67 6.676l.531.532L6.028 31.335z"/><path fill="#F18F26" d="M34.704 2.685c.438.438.438 1.155-.001 1.592l-3.186 3.186c-.438.438-1.155.438-1.593-.001l-1.39-1.389c-.438-.438-.438-1.155.001-1.592l3.187-3.186c.438-.438 1.155-.438 1.593 0l1.389 1.39z"/><path fill="#292F33" d="M2 32l4-5s1 0 2 1 1 2 1 2l-5 4-2-2z"/><circle fill="#642116" cx="33" cy="8" r="1"/><circle fill="#642116" cx="35" cy="6" r="1"/><circle fill="#642116" cx="28" cy="3" r="1"/><circle fill="#642116" cx="30" cy="1" r="1"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f3be.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f3be.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#77B255" cx="18" cy="18" r="18"/><path fill="#A6D388" d="M26 18c0 6.048 2.792 10.221 5.802 11.546C34.42 26.42 36 22.396 36 18c0-4.396-1.58-8.42-4.198-11.546C28.792 7.779 26 11.952 26 18z"/><path fill="#FFF" d="M27 18c0-6.048 1.792-10.221 4.802-11.546-.445-.531-.926-1.028-1.428-1.504C27.406 6.605 25 10.578 25 18c0 7.421 2.406 11.395 5.374 13.05.502-.476.984-.973 1.428-1.504C28.792 28.221 27 24.048 27 18z"/><path fill="#A6D388" d="M10 18c0-6.048-2.792-10.22-5.802-11.546C1.58 9.58 0 13.604 0 18c0 4.396 1.58 8.42 4.198 11.546C7.208 28.22 10 24.048 10 18z"/><path fill="#FFF" d="M4.198 6.454C7.208 7.78 9 11.952 9 18c0 6.048-1.792 10.22-4.802 11.546.445.531.926 1.027 1.428 1.504C8.593 29.395 11 25.421 11 18c0-7.421-2.406-11.395-5.374-13.049-.502.476-.984.972-1.428 1.503z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f3c0.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f3c0.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#F4900C" cx="18" cy="18" r="18"/><path fill="#231F20" d="M36 17h-8.981c.188-5.506 1.943-9.295 4.784-10.546-.445-.531-.926-1.027-1.428-1.504-2.83 1.578-5.145 5.273-5.354 12.049H19V0h-2v17h-6.021c-.208-6.776-2.523-10.471-5.353-12.049-.502.476-.984.972-1.428 1.503C7.039 7.705 8.793 11.494 8.981 17H0v2h8.981c-.188 5.506-1.942 9.295-4.783 10.546.445.531.926 1.027 1.428 1.504 2.831-1.578 5.145-5.273 5.353-12.05H17v17h2V19h6.021c.209 6.776 2.523 10.471 5.354 12.05.502-.476.984-.973 1.428-1.504-2.841-1.251-4.595-5.04-4.784-10.546H36v-2z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f3c6.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f3c6.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFAC33" d="M5.123 5h6C12.227 5 13 4.896 13 6V4c0-1.104-.773-2-1.877-2h-8c-2 0-3.583 2.125-3 5 0 0 1.791 9.375 1.917 9.958C2.373 18.5 4.164 20 6.081 20h6.958c1.105 0-.039-1.896-.039-3v-2c0 1.104-.773 2-1.877 2h-4c-1.104 0-1.833-1.042-2-2S3.539 7.667 3.539 7.667C3.206 5.75 4.018 5 5.123 5zm25.812 0h-6C23.831 5 22 4.896 22 6V4c0-1.104 1.831-2 2.935-2h8c2 0 3.584 2.125 3 5 0 0-1.633 9.419-1.771 10-.354 1.5-2.042 3-4 3h-7.146C21.914 20 22 18.104 22 17v-2c0 1.104 1.831 2 2.935 2h4c1.104 0 1.834-1.042 2-2s1.584-7.333 1.584-7.333C32.851 5.75 32.04 5 30.935 5zM20.832 22c0-6.958-2.709 0-2.709 0s-3-6.958-3 0-3.291 10-3.291 10h12.292c-.001 0-3.292-3.042-3.292-10z"/><path fill="#FFCC4D" d="M29.123 6.577c0 6.775-6.77 18.192-11 18.192-4.231 0-11-11.417-11-18.192 0-5.195 1-6.319 3-6.319 1.374 0 6.025-.027 8-.027l7-.001c2.917-.001 4 .684 4 6.347z"/><path fill="#C1694F" d="M27 33c0 1.104.227 2-.877 2h-16C9.018 35 9 34.104 9 33v-1c0-1.104 1.164-2 2.206-2h13.917c1.042 0 1.877.896 1.877 2v1z"/><path fill="#C1694F" d="M29 34.625c0 .76.165 1.375-1.252 1.375H8.498C7.206 36 7 35.385 7 34.625v-.25C7 33.615 7.738 33 8.498 33h19.25c.759 0 1.252.615 1.252 1.375v.25z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f3c8.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f3c8.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#662113" d="M7.754 7.754C4.068 11.44 1.64 16.37.843 21.335l13.822 13.822c4.965-.797 9.895-3.225 13.581-6.911s6.114-8.616 6.911-13.581L21.335.843C16.37 1.64 11.44 4.068 7.754 7.754zm25.615-5.123C30.707 1.152 27.634.51 24.472.564l10.965 10.964c.053-3.162-.589-6.235-2.068-8.897zM2.631 33.369c2.662 1.479 5.736 2.121 8.898 2.067L.564 24.472c-.054 3.161.588 6.235 2.067 8.897z"/><path fill="#E1E8ED" d="M22.828 11.757l-2.414 2.414-.707-.707c-.391-.391-1.023-.391-1.414 0s-.391 1.024 0 1.414l.707.708L15.586 19l-.707-.707c-.391-.391-1.023-.391-1.414 0s-.391 1.023 0 1.414l.707.707-2.414 2.414-.707-.707c-.391-.391-1.023-.391-1.414 0s-.391 1.024 0 1.414l.707.707-1 1c-.391.392-.391 1.024 0 1.415s1.023.391 1.414 0l1-1 .707.707c.391.391 1.023.391 1.414 0 .391-.392.391-1.024 0-1.414l-.707-.707 2.414-2.414.707.707c.391.392 1.023.392 1.414 0 .391-.391.391-1.024 0-1.414L17 20.414 20.414 17l.707.707c.391.391 1.024.391 1.414 0 .391-.391.392-1.023 0-1.414l-.707-.707 2.414-2.414.707.707c.391.391 1.023.39 1.414 0 .391-.391.391-1.023 0-1.414l-.707-.707 1-1c.39-.391.39-1.023 0-1.414-.391-.391-1.024-.391-1.415 0l-1 1-.707-.707c-.39-.391-1.024-.391-1.414 0-.391.39-.391 1.023 0 1.414l.708.706zM.564 24.472l10.965 10.965c1.04-.018 2.088-.111 3.136-.279L.843 21.335c-.168 1.049-.261 2.096-.279 3.137zM24.472.564c-1.04.018-2.088.111-3.136.279l13.822 13.822c.168-1.049.261-2.096.279-3.136L24.472.564z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f3d3.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f3d3.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M23.106 5.971C17.615.48 8.384-.521 3.307 4.557-1.77 9.634-.77 18.865 4.721 24.356c3.554 3.554 7.785 4.323 11.707 3.058l-.015.013.13-.052c.264-.088.527-.179.788-.284.698-.238 1.734-.558 2.942-.806 1.848-.38 3.541 1.606 4.955 3.021 1.414 1.414 4.242 5.657 4.949 6.364.707.707 1.414 0 2.122-.707l.707-.707.707-.707c.707-.708 1.414-1.415.707-2.122-.707-.707-4.95-3.535-6.364-4.949-1.414-1.414-3.4-3.107-3.021-4.955.198-.965.441-1.815.653-2.481 1.974-4.222 1.537-8.952-2.582-13.071z"/><path fill="#D99E82" d="M15.564 27.655c.289-.07.578-.149.864-.241l-.015.013.13-.052c.264-.088.527-.179.788-.284.698-.238 1.734-.558 2.942-.806 1.848-.38 3.541 1.606 4.955 3.021 1.414 1.414 4.242 5.657 4.949 6.364.707.707 1.414 0 2.122-.707l.707-.707.707-.707c.707-.708 1.414-1.415.707-2.122-.707-.707-4.95-3.535-6.364-4.949-1.414-1.414-3.4-3.107-3.021-4.955.198-.965.441-1.815.653-2.481.357-.764.633-1.543.824-2.334L15.564 27.655z"/><path fill="#FFCC4D" d="M20.277 22.942l1.414-1.414 12.022 12.021-1.414 1.414z"/><circle fill="#CCD6DD" cx="31.5" cy="6.5" r="3.5"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f3d4.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f3d4.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M19.083 35.5L12.25 12.292s-1.42.761-2.604 1.637c-.313.231-1.977 2.79-2.312 3.04-1.762 1.315-3.552 2.841-3.792 3.167C3.083 20.76 0 36 0 36l19.083-.5z"/><path fill="#4B545D" d="M32 35l-5.5-19.75L18 4.542l-5.373 4.193-.971 1.172C11.25 10.688 10 15.25 10 15.25L8.75 20 3.252 30.054.917 34.791 32 35z"/><path fill="#FFF" d="M3.252 30.054s7.873-10.783 7.894-11.388C11.167 18.062 10 15.25 10 15.25L8.75 20 3.252 30.054z"/><path fill="#292F33" d="M12 34h2l2-15.75 1.234-1.797 3.578-5.234.094-1.469-3.287 4.454L15 17.752l-2.388 7.362L12 27l-1.791 3.134L8 34zm12.059-17.616l-1.965 5.897L21 26l2.792 7.625 3.552-.062S23 26.625 23 26c0-.12.625-2.687.625-2.687l1.094-4.531L25 17.25l-.941-.866z"/><path fill="#F1F1F1" d="M24.059 16.384l-1.778-.665-1.531.875-1.328-1.063-2.188.922 3.578-5.234zm2.871 7.379l-1.711-1.388-1.594.938 1.094-4.532 1.437 2.282z"/><path fill="#FFF" d="M22.094 22.281L21 26l-.25-2.417zM12 27l-1.791 3.134.353-2.431s.682-.578.938-.911c.255-.333 1.112-1.678 1.112-1.678L12 27zm3.208-11l2.411-1.796L15 17.752z"/><path fill="#292F33" d="M36 36s-.384-3.845-.854-7.083c-.369-2.543-2.757-6.303-4.099-7.115l-1.234-3.536-2.023-5.102-2.258-2.289-1.844-1.626-.505-.621L18 4.542l2.289 5.007.524 1.67 3.246 5.165.66 2.397 1.438 2.281.774 2.701L28 27.5 26 34l10 2z"/><path fill="#5C903F" d="M33.708 32.438c-1.345 0-4.958.562-5.458.562-2 0-4.25-1.75-5.25-1.75S19.406 33 17.406 33c-1.688 0-2.406-.812-4.719-.812-.748 0-4.096.871-4.812.781C6.052 32.741 5.115 32 4.656 32 2 32 0 36 0 36h36s-.875-3.562-2.292-3.562z"/><path fill="#F1F1F1" d="M12.627 8.735l2.123-.485.656 1.844 2.125-.875 2.758.33L18 2.25z"/><path fill="#A8B6C0" d="M23.183 8.628l-1.443-.243-1.451 1.164L18 2.25zM27.953 13l1.859 5.266-1.729-2.828-1.614-1.625-.938-2.938zm7.193 15.917S35 25.032 33.875 23.75 31 21.771 31 21.771l1.438 3.271 1.458 1.417 1.25 2.458z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f3d5.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f3d5.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#78B159" d="M18 25.18C3.438 25.18 0 29.844 0 32s1.791 4 4 4h28c2.209 0 4-1.851 4-4s-3.438-6.82-18-6.82z"/><path fill="#662113" d="M28.804 28.15c0 1.531-1.242 2.08-2.773 2.08-1.531 0-2.773-.548-2.773-2.08l.693-6.239c0-1.531.548-1.387 2.08-1.387 1.531 0 2.08-.145 2.08 1.387l.693 6.239z"/><path fill="#5C913B" d="M34.868 19.717c-4.59-4.135-6.449-10.056-8.837-10.056s-4.247 5.921-8.836 10.056c-1.929 1.738-1.01 2.743 1.634 2.542 2.357-.179 4.561-.741 7.202-.741s4.846.563 7.202.741c2.644.201 3.563-.805 1.635-2.542z"/><path fill="#3E721D" d="M33.377 18.078c-3.527-3.401-5.509-8.273-7.346-8.273-1.836 0-3.818 4.872-7.345 8.273-2.803 2.703 3.673 3.309 7.345 0 3.671 3.309 10.148 2.703 7.346 0z"/><path fill="#5C913B" d="M33.377 15.323c-3.527-3.178-5.509-7.729-7.346-7.729-1.836 0-3.818 4.551-7.345 7.729-2.803 2.525 3.673 3.091 7.345 0 3.671 3.091 10.148 2.524 7.346 0z"/><path fill="#3E721D" d="M31.766 13.066c-2.753-2.481-4.301-6.034-5.735-6.034-1.433 0-2.981 3.553-5.735 6.034-2.188 1.971 2.867 2.414 5.735 0 2.867 2.413 7.923 1.971 5.735 0z"/><path fill="#5C913B" d="M31.766 11.001c-2.753-2.481-4.301-6.034-5.735-6.034-1.433 0-2.981 3.553-5.735 6.034-2.188 1.971 2.867 2.414 5.735 0 2.867 2.414 7.923 1.972 5.735 0z"/><path fill="#3E721D" d="M30.659 9.168c-2.222-2.002-3.471-4.869-4.628-4.869s-2.406 2.867-4.628 4.869c-1.766 1.591 2.314 1.948 4.628 0 2.314 1.948 6.395 1.591 4.628 0z"/><path fill="#5C913B" d="M30.659 7.614c-2.222-2.002-3.471-4.869-4.628-4.869s-2.406 2.867-4.628 4.869c-1.766 1.591 2.314 1.948 4.628 0 2.314 1.948 6.395 1.591 4.628 0z"/><path fill="#3E721D" d="M29.553 5.326c-1.69-1.523-2.641-3.705-3.522-3.705-.88 0-1.831 2.182-3.522 3.705-1.344 1.211 1.761 1.482 3.522 0 1.761 1.483 4.866 1.211 3.522 0z"/><path fill="#5C913B" d="M29.553 4.29C27.863 2.767 26.912.585 26.031.585c-.88 0-1.831 2.182-3.522 3.705-1.344 1.211 1.761 1.482 3.522 0 1.761 1.482 4.866 1.211 3.522 0z"/><path fill="#F4900C" d="M15.101 33c-.424 0-.802-.267-.944-.666L9.145 18.301c-.11-.307-.063-.628.125-.896.188-.265.494-.405.82-.405h11.759c.401 0 .764.22.922.589l6.014 14.023c.133.31.101.661-.084.942-.188.282-.502.446-.839.446H15.101z"/><path fill="#FFCC4D" d="M4.075 33c-.337 0-.652-.17-.837-.45-.185-.282-.216-.638-.084-.948L9.172 17.56c.157-.368.521-.607.921-.607.401 0 .765.24.922.607l6.018 14.041c.133.311.1.666-.085.948-.185.281-.5.451-.837.451H4.075z"/><path fill="#292F33" d="M10.09 19.436L8.084 33h4.01z"/><path fill="#FFAC33" d="M14.127 31.887L14.575 33h-2.481zm-8.075 0L5.604 33h2.48z"/><path fill="#FFE8B6" d="M12.094 33s1.823-.465 2.714-1.288L10.09 19.436 12.094 33zm-4.01 0s-1.823-.465-2.714-1.288l4.719-12.277L8.084 33z"/><path fill="#E1E8ED" d="M13.625 5.625c-.018 0-.034.006-.052.006.034-.164.052-.333.052-.507 0-1.381-1.119-2.5-2.5-2.5-.891 0-1.667.469-2.11 1.171-.277-.106-.575-.17-.89-.17-1.275 0-2.315.957-2.469 2.19-.282-.113-.583-.19-.906-.19-1.381 0-2.5 1.119-2.5 2.5s1.119 2.5 2.5 2.5h8.875c1.381 0 2.5-1.119 2.5-2.5s-1.119-2.5-2.5-2.5z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f3dd.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f3dd.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><ellipse fill="#3B88C3" cx="18" cy="30.54" rx="18" ry="5.36"/><path fill="#88C9F9" d="M33.812 28.538c0 1.616-2.5 2.587-14.482 2.587-10.925 0-13.612-.971-13.612-2.587s5.683-2.926 13.612-2.926 14.482 1.31 14.482 2.926z"/><path fill="#F4900C" d="M7 28.25c0-1 1-5 11-5 12 0 15 4 15 5s0 2-14 2c-12 0-12-1-12-2z"/><circle fill="#FFCC4D" cx="7" cy="6.25" r="5"/><circle fill="#FFAC33" cx="7" cy="6.25" r="4"/><path fill="#C1694F" d="M26.949 14.467c-.039-.575-.098-1.131-.177-1.662-.095-.636-.214-1.235-.347-1.797-.122-.517-.255-.999-.392-1.442-.205-.666-.417-1.243-.609-1.716-.377-.929-.674-1.46-.674-1.46l-2.583.333s.298.622.621 1.841c.131.495.265 1.09.386 1.784.061.351.118.724.17 1.125.072.558.131 1.167.173 1.823.024.37.041.756.053 1.158.004.146.011.287.013.437.007.469-.026.946-.084 1.422-.053.429-.13.856-.223 1.279-.133.606-.296 1.202-.479 1.77-.149.46-.308.901-.468 1.316-.246.637-.493 1.209-.707 1.687-.358.798-.622 1.33-.622 1.441 0 .351.25 1.007 2 1.444 2.736.684 3-.444 3-.444s.174-.528.376-1.567c.1-.513.206-1.147.303-1.915.058-.459.112-.964.158-1.513.049-.572.089-1.192.118-1.863.021-.508.034-1.051.039-1.615.002-.176.006-.346.006-.527 0-.459-.021-.903-.051-1.339z"/><path fill="#D99E82" d="M24.324 21.362c-1.003-.175-1.643-.467-1.994-.686-.246.637-.493 1.209-.707 1.687.655.356 1.487.64 2.389.796.521.091 1.038.136 1.523.136.296 0 .574-.023.841-.057.1-.513.206-1.147.303-1.915-.318.113-1.107.257-2.355.039zm.758-3.342c-.782-.077-1.383-.249-1.805-.43-.133.606-.296 1.202-.479 1.77.618.233 1.345.401 2.106.476.307.03.611.045.908.045.359 0 .7-.028 1.026-.071.049-.572.089-1.192.118-1.863-.45.098-1.08.152-1.874.073zm.221-1.524c.588 0 1.165-.059 1.692-.163.001-.176.005-.346.005-.527 0-.458-.021-.902-.051-1.339-.378.099-.919.194-1.682.205-.775-.003-1.32-.111-1.698-.219.004.146.011.287.013.437.007.469-.026.946-.084 1.422.545.115 1.148.181 1.76.184h.045zm-.178-3.273c.59-.085 1.137-.238 1.648-.418-.095-.636-.214-1.235-.347-1.797-.354.146-.857.308-1.56.409-.651.094-1.147.088-1.522.055.072.558.131 1.167.173 1.823.109.004.207.021.319.021.42 0 .857-.031 1.289-.093zm.909-3.658c-.206-.665-.418-1.242-.61-1.715-.317.159-.718.326-1.242.471-.568.158-1.027.221-1.395.243.131.495.265 1.09.386 1.784.487-.049.989-.128 1.497-.269.486-.135.937-.316 1.364-.514z"/><path fill="#3E721D" d="M34.549 2.943c-.032-.042-3.202-4.283-7.313-2.423-1.847.835-3.038 2.2-3.469 3.963-.804-1.125-2.026-1.839-3.644-2.127-4.421-.788-7.092 4.123-7.118 4.172-.039.072-.022.16.039.214.062.053.151.057.217.01.02-.015 2.037-1.427 5.396-.828 3.433.611 5.84 1.211 5.864 1.217.015.003.028.005.043.005.048 0 .095-.02.129-.056.022-.024 2.303-2.475 4.4-3.423 3.104-1.404 5.221-.472 5.24-.462.072.033.158.013.209-.049.051-.061.054-.148.007-.213z"/><path fill="#5C913B" d="M31.129 5.401c-3.134-1.655-5.57-.831-7.083.174-1.813-.351-5.201-.357-8.072 3.324-3.525 4.518-.433 10.152-.402 10.209.031.056.09.089.153.089l.021-.001c.071-.009.129-.06.147-.128.011-.039 1.097-3.967 3.843-7.27 1.501-1.805 3.293-3.474 4.554-4.573 1.27.211 3.136.678 4.969 1.702 3.573 1.998 5.212 5.379 5.228 5.413.032.066.101.112.177.099.074-.008.135-.062.151-.134.014-.063 1.392-6.222-3.686-8.904z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f3e1.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f3e1.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5C913B" d="M36 33.5c0 .828-.672 1.5-1.5 1.5h-33C.672 35 0 34.328 0 33.5S.672 32 1.5 32h33c.828 0 1.5.672 1.5 1.5z"/><path fill="#A0041E" d="M12.344 14.702h-2c-.276 0-.5-.224-.5-.5v-7c0-.276.224-.5.5-.5h2c.276 0 .5.224.5.5v7c0 .276-.224.5-.5.5z"/><path fill="#FFCC4D" d="M5.942 32c-.137-4.657-.506-8-.942-8-.435 0-.804 3.343-.941 8h1.883z"/><path fill="#77B255" d="M10 18.731C10 24.306 7.762 26 5 26c-2.761 0-5-1.694-5-7.269C0 13.154 4 5 5 5s5 8.154 5 13.731z"/><path fill="#FFE8B6" d="M8 16L21 3l13 13v16H8z"/><path fill="#FFCC4D" d="M21 16h1v16h-1z"/><path fill="#66757F" d="M34 17c-.256 0-.512-.098-.707-.293L21 4.414 8.707 16.707c-.391.391-1.023.391-1.414 0s-.391-1.023 0-1.414l13-13c.391-.391 1.023-.391 1.414 0l13 13c.391.391.391 1.023 0 1.414-.195.195-.451.293-.707.293z"/><path fill="#66757F" d="M21 17c-.256 0-.512-.098-.707-.293-.391-.391-.391-1.023 0-1.414l6.5-6.5c.391-.391 1.023-.391 1.414 0s.391 1.023 0 1.414l-6.5 6.5c-.195.195-.451.293-.707.293z"/><path fill="#C1694F" d="M13 26h4v6h-4z"/><path fill="#55ACEE" d="M13 17h4v4h-4zm12.5 0h4v4h-4zm0 9h4v4h-4z"/><path fill="#77B255" d="M10.625 29.991c0 1.613-.858 2.103-1.917 2.103-1.058 0-1.917-.49-1.917-2.103 0-1.613 1.533-3.973 1.917-3.973s1.917 2.359 1.917 3.973zm25.25 0c0 1.613-.858 2.103-1.917 2.103-1.058 0-1.917-.49-1.917-2.103 0-1.613 1.533-3.973 1.917-3.973.384 0 1.917 2.359 1.917 3.973z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f3ee.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f3ee.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M29 34c0 1.104-.896 2-2 2H9c-1.104 0-2-.896-2-2V2c0-1.104.896-2 2-2h18c1.104 0 2 .896 2 2v32z"/><path fill="#BE1931" d="M6.699 32h22.602C33.383 28.7 35 23.658 35 18c0-5.658-1.616-10.7-5.698-14H6.698C2.615 7.3 1 12.342 1 18c0 5.658 1.616 10.7 5.699 14z"/><path d="M1.301 22c.108.682.245 1.35.415 2h32.568c.17-.65.307-1.318.415-2H1.301zm-.229-2h33.855c.049-.657.073-1.324.073-2H1c0 .676.024 1.343.072 2zm31.605 8c.363-.64.684-1.306.956-2H2.367c.272.694.593 1.36.956 2h29.354zM2.366 10c-.254.646-.471 1.313-.651 2h32.569c-.18-.687-.397-1.354-.651-2H2.366zm-1.065 4c-.104.654-.179 1.321-.229 2h33.855c-.049-.679-.125-1.346-.229-2H1.301zm30.014 16H4.685c.591.721 1.26 1.391 2.014 2h22.602c.754-.609 1.422-1.279 2.014-2zM4.685 6c-.515.627-.964 1.298-1.363 2h29.356c-.398-.702-.849-1.373-1.362-2H4.685z" fill="#DD2E44"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f3f7.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f3f7.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFD983" d="M32.017 20.181L17.345 5.746C16.687 5.087 15.823 5 14.96 5H4.883C3.029 5 2 6.029 2 7.883v10.082c0 .861.089 1.723.746 2.38L17.3 35.017c1.311 1.31 3.378 1.31 4.688 0l10.059-10.088c1.31-1.312 1.28-3.438-.03-4.748zm-23.596-8.76c-.585.585-1.533.585-2.118 0s-.586-1.533 0-2.118c.585-.586 1.533-.585 2.118 0 .585.586.586 1.533 0 2.118z"/><path fill="#D99E82" d="M9.952 7.772c-1.43-1.431-3.749-1.431-5.179 0-1.431 1.43-1.431 3.749 0 5.18 1.43 1.43 3.749 1.43 5.18 0 1.43-1.431 1.429-3.749-.001-5.18zm-1.53 3.65c-.585.585-1.534.585-2.119 0-.585-.585-.586-1.534 0-2.119.585-.587 1.534-.585 2.119 0 .585.585.586 1.533 0 2.119z"/><path fill="#C1694F" d="M8.507 10.501c-.391.391-1.023.391-1.415 0-.391-.391-.39-1.023 0-1.414L15.577.602c.391-.391 1.023-.391 1.415 0 .391.391.39 1.023 0 1.414l-8.485 8.485z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f3f8.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f3f8.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#55ACEE" d="M30.385 29c.382.382.382 1.002 0 1.385-.383.382-1.003.382-1.385 0L15.5 16.884c-.382-.382-.382-1.002 0-1.384.382-.382 1.001-.382 1.384 0L30.385 29z"/><path fill="#292F33" d="M35.561 33.439c.586.586.586 1.536 0 2.121-.585.586-1.535.586-2.121 0l-5.656-5.656c-.586-.586-.586-1.536 0-2.121.585-.586 1.535-.586 2.121 0l5.656 5.656z"/><g fill="#99AAB5"><path d="M2.447 5.2l.707-.707L15.178 16.51l-.707.707zm1.417-2.83l.707-.707 12.728 12.728-.708.707z"/><path d="M1.035 9.441L9.52.956l.707.707-8.485 8.485zm.707 3.535L12.35 2.37l.707.707L2.449 13.684zm2.122 2.122L15.177 3.785l.707.707L4.571 15.805zm2.828 1.415l9.899-9.9.707.707-9.9 9.9zm2.828 1.413l8.485-8.485.707.707-8.485 8.486z"/><path d="M1.035 8.027l.707-.707L12.35 17.926l-.707.707zM7.4 1.663l.706-.707 10.607 10.606-.707.708z"/></g><path fill="#55ACEE" d="M2.468 2.468c-3.471 3.472-3.119 9.452.786 13.357 3.906 3.906 9.885 4.257 13.356.786 3.472-3.472 3.121-9.45-.786-13.356C11.919-.651 5.94-1.003 2.468 2.468zm12.846 12.846c-2.733 2.733-7.535 2.364-10.725-.825C1.4 11.3 1.032 6.499 3.765 3.765c2.734-2.734 7.535-2.364 10.724.825s3.559 7.991.825 10.724z"/><g fill="#269"><path d="M17.298 14.391c.391.391.39 1.024 0 1.414l-1.415 1.415c-.39.39-1.023.391-1.414 0s-.391-1.024 0-1.415l1.414-1.414c.391-.391 1.024-.391 1.415 0z"/><path d="M18.005 16.512c.391.391.391 1.024 0 1.415s-1.024.391-1.414 0l-.707-.707c-.391-.391-.39-1.024 0-1.415.391-.391 1.023-.391 1.415 0l.706.707z"/></g><path fill="#269" d="M29.56 27.44c.586.585-.122.828-.707 1.414-.586.585-.829 1.292-1.414.707-.586-.586-.586-1.536 0-2.121.585-.586 1.536-.586 2.121 0z"/><path fill="#BE1931" d="M21.81 3.182c-.781.781-.781 2.047 0 2.828l.707.707.707-.707 1.414-1.414.709-.707-.709-.707c-.779-.781-2.046-.781-2.828 0z"/><path fill="#99AAB5" d="M22.52 6.716l2.83-2.828.707.707-2.83 2.829z"/><path fill="#E1E8ED" d="M23.225 7.424l2.83-2.828c1.473.488 9.125 5.069 8.861 5.334-.758.759-1.912.201-1.912.201s.844.806.117 1.532-1.531-.118-1.531-.118.969.741.149 1.564c-.826.826-1.562-.149-1.562-.149s.729.981.098 1.613c-.633.631-1.514-.199-1.514-.199s.418.998-.342 1.756c-.362.364-4.609-7.33-5.194-8.706z"/><path d="M26.414 7.823c.578-.683 5.432 3.727 4.58 4.579-.853.851-5.275-3.759-4.58-4.579zm1.705 7.448c.68-.443-3.072-5.816-3.535-5.427-.031.026-.045.072-.053.126.883 1.626 2.006 3.594 2.824 4.867.336.342.616.53.764.434zm.272-9.233c-.391.462 4.984 4.214 5.427 3.535.115-.178-.17-.541-.656-.97-1.215-.782-2.856-1.767-4.285-2.571-.24-.065-.418-.074-.486.006zm-2.989 2.859c.426-.429 4.641 4.589 4.002 5.093-.638.5-4.515-4.576-4.002-5.093zm2.041-2.041c-.428.426 4.59 4.64 5.092 4.002.502-.639-4.574-4.516-5.092-4.002z" fill="#CCD6DD"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f3f9.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f3f9.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1694F" d="M21.279 4.28c-9 0-10.5 1.5-13 4s-4 4-4 13c0 11.181-2 14-1 14s3-2 3-4-2-13 5-20h-.001c7-6.999 18-5 20-5s4-2 4-3-2.818 1-13.999 1z"/><path fill="#D99E82" d="M29.5 29.779c0 .276-.224.5-.5.5H3.78c-.276 0-.5-.224-.5-.5s.224-.5.5-.5H29c.276 0 .5.224.5.5zm.279-.279c-.277 0-.5-.225-.5-.5V3.779c0-.276.223-.5.5-.5.275 0 .5.224.5.5V29c0 .275-.224.5-.5.5z"/><path fill="#99AAB5" d="M0 0l2.793 8.52L4.93 4.955l3.52-2.092z"/><path fill="#DD2E44" d="M26.087 27.393c.364 1.897 0 3.564-.812 3.719-.814.156-1.77-1.256-2.133-3.154-.364-1.898-.001-3.564.812-3.721.814-.157 1.769 1.257 2.133 3.156z"/><path fill="#F4900C" d="M26.568 28.465c.365 1.899 0 3.565-.812 3.721-.813.156-1.769-1.258-2.132-3.154-.365-1.9-.001-3.566.811-3.721.814-.157 1.77 1.255 2.133 3.154z"/><path fill="#A0041E" d="M27.958 29.854c.364 1.899 0 3.564-.812 3.721-.813.156-1.77-1.256-2.133-3.154-.364-1.898 0-3.564.812-3.721.814-.157 1.77 1.255 2.133 3.154z"/><path fill="#DD2E44" d="M29.372 31.268c.365 1.898 0 3.566-.812 3.721-.814.156-1.77-1.256-2.133-3.154-.364-1.899 0-3.564.812-3.721.814-.157 1.77 1.257 2.133 3.154zm-1.979-5.181c1.897.364 3.564 0 3.719-.812.156-.814-1.256-1.77-3.154-2.133-1.898-.364-3.564-.001-3.721.812-.157.814 1.257 1.769 3.156 2.133z"/><path fill="#F4900C" d="M28.465 26.568c1.899.365 3.565 0 3.721-.812.156-.813-1.258-1.769-3.154-2.132-1.9-.365-3.566-.001-3.721.811-.157.814 1.255 1.77 3.154 2.133z"/><path fill="#A0041E" d="M29.854 27.958c1.899.364 3.564 0 3.721-.812.156-.813-1.256-1.77-3.154-2.133-1.898-.364-3.564 0-3.721.812-.157.814 1.255 1.77 3.154 2.133z"/><path fill="#DD2E44" d="M31.268 29.372c1.898.365 3.566 0 3.721-.812.156-.814-1.256-1.77-3.154-2.133-1.899-.364-3.564 0-3.721.812-.157.814 1.257 1.77 3.154 2.133z"/><path fill="#CCD6DD" d="M30.385 29c.382.382.382 1.002 0 1.385-.383.382-1.003.382-1.385 0L4.136 5.52c-.382-.382-.382-1.002 0-1.384.382-.382 1.001-.382 1.384 0L30.385 29z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f40a.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f40a.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3E721D" d="M19 32c0 1-1.723 3-3.334 3C14.056 35 14 33.657 14 32s1.306-3 2.916-3C18.527 29 19 30.343 19 32zm11 0c0 1-1.723 3-3.334 3C25.056 35 25 33.657 25 32s1.306-3 2.916-3C29.527 29 30 30.343 30 32z"/><path fill="#5C913B" d="M36 25c0-6-3.172-9.171-6-12-1-1-1.399.321-1 1 .508.862 3 8-2 8h-2c-5 0-6.172-1.172-9-4-4.5-4.5-7 0-9 0-6 0-7-1.812-7 2 0 3 3 4 6 4s3 1 5 4c1.071 1.606 2.836 3.211 5.023 4.155.232 1.119 2.774 3.845 4.311 3.845C21.944 36 22 34.657 22 33h5c.034 0 .066-.01.101-.01.291.005.587.01.899.01 0 1 1.723 3 3.334 3C32.944 36 33 34.657 33 33c0-.302-.057-.587-.137-.861C34.612 31.193 36 29.209 36 25z"/><path fill="#292F33" d="M10 18.123c0 .828.671 1.5 1.5 1.5s1.5-.672 1.5-1.5c0-.829-.671 0-1.5 0s-1.5-.829-1.5 0z"/><g fill="#77B255"><ellipse cx="27.5" cy="24" rx="1.5" ry="1"/><ellipse cx="23.5" cy="24" rx="1.5" ry="1"/><ellipse cx="19.5" cy="24" rx="1.5" ry="1"/><ellipse cx="21.5" cy="26" rx="1.5" ry="1"/><ellipse cx="25.5" cy="26" rx="1.5" ry="1"/></g><path fill="#FFF" d="M6 22c-.389 0-1-1-1-1h2s-.611 1-1 1zm-2 .469C3.611 22.469 3 21 3 21h2s-.611 1.469-1 1.469zM2 23c-.389 0-1-2-1-2h2s-.611 2-1 2z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f40c.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f40c.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#9266CC" d="M9 15.561c0-4 2-8 0-10s-3 2-2 2c1.414 0 2 2 1 5s1 3.999 1 3zm-3.875 0c0-4 2-8 0-10s-3 2-2 2c1.414 0 2 2 1 5s1 3.999 1 3z"/><path fill="#AA8DD8" d="M36 34.936c0 1-1 1-2 1H11c-5 0-7.272-3.09-8-6-1-4 2-11 0-12s-3-1-3-3 4.47-5.265 7-4c4 2 2.767 6.932 2 10-.88 3.522 1.115 3.594 5 5 4.94 1.787 12.32 4.44 14 5 3 1 8 3 8 4z"/><path fill="#FFCC4D" d="M10.925 24.935c2.887 1 3.849 9 13.472 9 6.377 0 8.66-5.479 8.66-11 0-5.523-5.17-10-11.547-10-6.377.001-11.498 11.684-10.585 12z"/><path fill="#FFAC33" d="M24.914 33.938c1.708 0 3.389-.48 4.892-1.418 2.185-1.361 3.729-3.527 4.348-6.098 1.53-6.363-2.206-12.834-8.329-14.425-7.393-1.923-14.919 2.768-16.768 10.455-.258 1.072.369 2.158 1.399 2.426 1.027.271 2.076-.383 2.335-1.455 1.334-5.546 6.761-8.93 12.1-7.544 4.063 1.056 6.544 5.351 5.528 9.574-.369 1.533-1.29 2.826-2.594 3.639-1.305.812-2.836 1.051-4.311.666-1.08-.279-1.991-.98-2.564-1.973-.572-.994-.74-2.158-.469-3.281.19-.795.668-1.465 1.344-1.887.676-.421 1.527-.707 2.234-.345 1.298.665 1.298 2.665.336 3.665-.752.781 1.604 1.065 2.887 0 1.15-.955 1.645-2.492 1.068-4.199-.581-1.724-1.805-2.942-3.358-3.347-1.762-.458-3.59-.176-5.148.797-1.557.971-2.657 2.515-3.098 4.347-.519 2.158-.199 4.398.903 6.307 1.103 1.91 2.853 3.258 4.931 3.797.775.199 1.558.299 2.334.299z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f40d.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f40d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M11.84 7.634c-.719 0-2.295 2.243-3.567 1.029-.44-.419 1.818-1.278 1.727-2.017-.075-.607-2.842-1.52-1.875-2.099.967-.578 2.418.841 3.513.866 2.382.055 4.212-.853 4.238-.866.541-.274 1.195-.052 1.464.496.27.547.051 1.213-.488 1.486-.131.066-2.225 1.105-5.012 1.105z"/><path fill="#77B255" d="M27.818 36c-3.967 0-8.182-2.912-8.182-8.308 0-1.374-.89-1.661-1.637-1.661-.746 0-1.636.287-1.636 1.661 0 5.396-4.216 8.308-8.182 8.308S0 33.23 0 27.692C0 14.4 14.182 12.565 14.182 14.4c0 1.835-7.636-1.107-7.636 12.185 0 2.215.89 2.769 1.636 2.769.747 0 1.637-.287 1.637-1.661 0-5.395 4.215-8.308 8.182-8.308 3.966 0 8.182 2.912 8.182 8.308 0 1.374.89 1.661 1.637 1.661s1.636-.287 1.636-1.661V11.077c0-3.855-3.417-4.431-5.454-4.431 0 0-3.272 1.108-6.545 1.108s-4.364-2.596-4.364-4.431C13.091 1.488 17.455 0 24 0c6.546 0 12 4.451 12 11.077v16.615C36 33.088 31.784 36 27.818 36z"/><circle fill="#292F33" cx="19" cy="3" r="1"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f417.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f417.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1694F" d="M33.359 13.254c1.434-3.462 2.06-11.534 1.262-12.004-.704-.416-5.641 1.084-8.34 3.205C23.883 2.909 21.085 2 18 2c-3.085 0-5.883.91-8.281 2.455C7.02 2.334 2.082.834 1.378 1.25c-.797.47-.171 8.543 1.263 12.004C1.59 15.818 1 18.623 1 21.479 1 31.468 2 36 18 36s17-4.532 17-14.521c0-2.856-.59-5.662-1.641-8.225z"/><path fill="#662113" d="M32.878 12.157c.929-3.252 1.081-7.708.524-8.037-.411-.243-2.78.633-5.009 1.972 1.851 1.663 3.373 3.736 4.485 6.065zM7.607 6.092c-2.23-1.339-4.599-2.215-5.01-1.972-.557.329-.405 4.786.525 8.038 1.112-2.33 2.634-4.402 4.485-6.066z"/><path fill="#E1E8ED" d="M7.65 29s-3.641-3-4.641-11.5c-.234-1.986 1.696-1.977 2 0C6.01 24 11.359 28 14 30c2.255 1.708-6.35-1-6.35-1zm20.7 0s3.641-3 4.641-11.5c.234-1.986-1.695-1.977-2 0C29.99 24 24.641 28 22 30c-2.255 1.708 6.35-1 6.35-1z"/><path d="M29 29c0 1.104-3.82 3-11 3S7 30.104 7 29s3.82 1 11 1 11-2.104 11-1z"/><path fill="#662113" d="M28 23.125c0 4.487-3.097 9.375-10 9.375-6.904 0-10-4.888-10-9.375S11.096 17.5 18 17.5c6.903 0 10 1.138 10 5.625z"/><path fill="#C1694F" d="M15 24.6c0 1.857-.34 2.4-1.5 2.4s-1.5-.543-1.5-2.4c0-1.856.34-2.399 1.5-2.399s1.5.542 1.5 2.399zm9 0c0 1.857-.34 2.4-1.5 2.4s-1.5-.543-1.5-2.4c0-1.856.34-2.399 1.5-2.399s1.5.542 1.5 2.399z"/><path fill="#292F33" d="M13 15.002c0 1.104-.896 2-2 2s-2-.896-2-2S9.896 13 11 13s2 .898 2 2.002zm14 0c0 1.104-.896 2-2 2s-2-.896-2-2S23.896 13 25 13s2 .898 2 2.002z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f418.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f418.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#99AAB5" d="M34.453 15.573c-.864-7.3-5.729-10.447-13.93-10.447-.391 0-.763.017-1.139.031-.013-.01-.022-.021-.035-.031C14.655 1.605 4.091 2.779 1.745 6.3c-3.255 4.883-1.174 22.3 0 24.646 1.173 2.35 4.694 3.521 5.868 2.35 1.174-1.176 0-1.176-1.173-3.521-.85-1.701-.466-5.859.255-8.471.028.168.068.322.1.486.39 2.871 1.993 7.412 1.993 9.744 0 3.564 2.102 4.107 4.694 4.107 2.593 0 4.695-.543 4.695-4.107 0-.24-.008-.463-.012-.695.757.064 1.535.107 2.359.107.497 0 .977-.016 1.448-.039-.004.209-.013.41-.013.627 0 3.564 2.103 4.107 4.694 4.107 2.593 0 4.695-.543 4.695-4.107 0-1.801 1.192-4.625 2.039-6.982.159-.354.291-.732.42-1.117.118 1.307.193 2.706.193 4.206 0 .553.447 1 1 1s1-.447 1-1c0-5.153-.771-9.248-1.547-12.068z"/><path fill="#66757F" d="M19.35 5.126S23 10.641 20 15.641c-3 5-7.838 5-11 5-2 0-1 2 0 2 1.414 0 8.395 1.211 12-6 3-6-1.65-11.515-1.65-11.515z"/><circle fill="#292F33" cx="6.5" cy="14.141" r="1.5"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f419.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f419.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#553788" d="M10 12c3 5 0 10.692-3 9.692s-4 2-1 3 9.465-.465 13-4c1-1 2-1 2-1L10 12z"/><path fill="#553788" d="M26 12c-3 5 0 10.692 3 9.692s4 2 1 3-9.465-.465-13-4c-1-1-2-1-2-1L26 12z"/><path fill="#744EAA" d="M30.188 16c-3 5 0 10.692 3 9.692s4 2 1 3-9.465-.465-13-4c-1-1-2-1-2-1l11-7.692zM5.812 16c3 5 0 10.692-3 9.692s-4 2-1 3 9.465-.465 13-4c1-1 2-1 2-1L5.812 16z"/><path fill="#9266CC" d="M33.188 31.375c-2.729.91-6.425-5.626-4.812-10.578C30.022 17.554 31 13.94 31 11c0-7.18-5.82-11-13-11S5 3.82 5 11c0 2.94.978 6.554 2.624 9.797 1.613 4.952-2.083 11.488-4.812 10.578-3-1-4 3-1 4s8.31-.627 12-4c2.189-2 4.189-2 4.189-2s2 0 4.188 2c3.69 3.373 9 5 12 4s1.999-5-1.001-4z"/><circle fill="#292F33" cx="14" cy="21" r="2"/><circle fill="#292F33" cx="22" cy="21" r="2"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f41a.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f41a.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M29.049 7.033c-.07-.07-.141-.126-.211-.188-1.08-1.087-2.497-1.564-4.008-1.373l-3.812.483c-.382-3.003-2.25-4.446-4.351-4.181l-4.24.536C12.075.767 11.011.034 9.827.185L5.033.79C3.71.958 2.773 2.438 2.94 4.097l.606 6.007c.152 1.501 1.425 2.591 2.403 2.693l.514 5.093c.258 2.553 2.509 4.365 4.117 4.38l.498 4.926c.164 1.622.928 3.027 1.917 4.063.23.339.471.656.737.922 4.423 4.423 12.183 5.064 16.607.64 4.42-4.422 3.133-21.365-1.29-25.788z"/><path fill="#66757F" d="M30.609 14.396c.801 2.371 1.545 11.57-1.532 15.543-3.079 3.972-8.043-1.389-5.312-6.205 2.73-4.814 6.036-11.733 6.844-9.338z"/><path fill="#99AAB5" d="M21.018 5.954c.009.072.028.133.036.206.318 3.154-7.686 15.799-10.204 16.119-.085.011-.181-.008-.271-.008l.401 3.971c3.694-1.936 12.412-15.71 13.087-20.673l-3.049.385zm-8.59-3.645c.042.182.079.369.1.574.197 1.942-4.732 9.725-6.28 9.923-.094.012-.196.001-.299-.009l.353 3.502c2.78-2.096 8.093-10.489 9.094-14.365l-2.968.375z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f41b.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f41b.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#AA8DD8" d="M7.415 4c1-1 .25-4-1.438-4s-1.562 2-.562 2 1 2 1 3 1-1 1-1zM3.232 5.72c1-1 .25-4-1.438-4s-1.562 2-.562 2 1 2 1 3 1-1 1-1z"/><path fill="#744EAA" d="M29.607 32.856c.189.808 1.227 2.28 2.032 2.091.806-.19 1.077-1.971.888-2.777-.189-.808-.998-1.307-1.804-1.117-.805.19-1.306.997-1.116 1.803zm-5.434.649c.003.83.681 2.498 1.509 2.495.828-.004 1.494-1.677 1.491-2.506-.003-.829-.677-1.497-1.505-1.495-.828.004-1.498.677-1.495 1.506zm-5.271-2.446c-.326.764-.365 2.563.396 2.89.763.324 2.037-.947 2.363-1.71.325-.762-.028-1.643-.789-1.97-.762-.325-1.643.027-1.97.79zm-5.031-11.04c-.812.172-2.308 1.173-2.139 1.983.173.81 1.945 1.124 2.757.953.811-.171 1.329-.967 1.16-1.777-.172-.81-.965-1.33-1.778-1.159zm-2.037-5c-.812.172-2.308 1.173-2.139 1.983.173.81 1.945 1.124 2.757.953.811-.171 1.329-.967 1.16-1.777-.172-.81-.966-1.33-1.778-1.159z"/><path fill="#9266CC" d="M27.244 34c2.831 0 4.926-.877 5.266-1.027 2.271-1.01 3.293-3.669 2.284-5.939-.999-2.25-3.616-3.275-5.872-2.314-.133.05-1.793.649-3.343-.072-1.851-.861-2.995-3.309-3.628-5.209-.144-.43-.385-1.274-.686-2.316-1.866-6.471-2.832-8.285-3.983-9.82C13.571 2.352 7.69 2.007 4.799 2.587c-2.437.487-4.018 2.858-3.53 5.295.488 2.438 2.86 4.02 5.296 3.53.162-.026 2.204-.306 3.424 1.169.643 1.287 2.08 5.128 2.63 7.034.346 1.199.629 2.171.794 2.667 1.773 5.317 4.666 8.893 8.603 10.629C23.868 33.729 25.67 34 27.244 34z"/><circle fill="#FFF" cx="6.682" cy="5" r="1"/><path d="M30.923 32.964c-.089 0-.18-.012-.269-.036-.532-.148-.844-.699-.696-1.231.757-2.722-.77-4.542-.785-4.56-.359-.419-.312-1.051.107-1.41.418-.359 1.051-.312 1.41.107.092.107 2.234 2.66 1.195 6.397-.122.443-.525.733-.962.733zm-7.199-.563c-.245 0-.49-.089-.684-.27-.403-.378-.424-1.011-.047-1.414 1.485-1.587 1.453-4.193 1.452-4.22-.016-.552.419-1.012.972-1.028.542-.005 1.013.419 1.028.972.004.139.073 3.437-1.991 5.644-.197.21-.464.316-.73.316zm-8.542-8.696c-.48 0-.904-.347-.985-.837-.09-.544.278-1.06.823-1.149 3.074-.51 4.774-2.377 4.791-2.396.365-.41.998-.449 1.409-.084.412.365.453.993.091 1.406-.087.099-2.156 2.415-5.964 3.046-.056.01-.111.014-.165.014zm2.921 4.857c-.425 0-.819-.272-.954-.698-.166-.526.126-1.089.652-1.255 2.693-.853 3.88-2.83 3.892-2.85.28-.477.892-.637 1.368-.357.477.279.636.893.357 1.368-.063.108-1.595 2.663-5.013 3.744-.101.033-.203.048-.302.048zm-4.619-10.67c-.496 0-.927-.369-.991-.875-.069-.548.319-1.048.867-1.118 2.689-.34 4.657-1.971 4.676-1.988.422-.354 1.053-.303 1.408.119.356.421.305 1.05-.115 1.407-.097.083-2.42 2.029-5.718 2.446-.043.006-.085.009-.127.009zm-1.821-4.767c-.425 0-.819-.273-.954-.701-.165-.527.127-1.088.654-1.254 3.13-.983 4.253-2.692 4.299-2.764.295-.462.911-.605 1.375-.312.465.292.611.899.324 1.366-.06.097-1.506 2.396-5.399 3.619-.099.031-.2.046-.299.046z" fill="#744EAA"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f41d.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f41d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#31373D" d="M27.816 23.464c.299-1.148.465-2.318.465-3.464 0-4.161-2.122-6.779-5.258-8.035.417-1.008.665-2.108.665-3.2 0-1.581-.495-2.498-1.315-3.032 1.091-.482 2.517-1.5 3.027-2.011.781-.781.94-1.889.354-2.475-.586-.586-1.693-.428-2.475.354-.611.611-1.948 2.53-2.223 3.619C20.172 5.025 19.126 5 18 5c-1.125 0-2.172.025-3.055.219-.275-1.089-1.612-3.007-2.223-3.619-.781-.781-1.889-.94-2.475-.354-.585.587-.427 1.694.354 2.476.511.511 1.937 1.529 3.027 2.011-.821.533-1.316 1.451-1.316 3.032 0 1.093.248 2.192.665 3.2C9.841 13.221 7.719 15.839 7.719 20c0 1.146.167 2.317.465 3.464v.023l.006-.003c1.209 4.621 4.643 8.847 8.812 9.44L17 33c0 1.657.448 3 1 3 .553 0 1-1.343 1-3 0-.026-.002-.049-.003-.075 4.169-.593 7.604-4.819 8.813-9.44l.006.003v-.024z"/><path d="M14.624 19h6.752c-1.462-1.424-2.615-2.881-3.106-4h-.54c-.491 1.119-1.644 2.576-3.106 4zm-5.378 4c-.361.187-.715.349-1.062.488.32 1.219.799 2.407 1.401 3.512h16.83c.602-1.105 1.082-2.293 1.401-3.512-.347-.139-.701-.301-1.063-.488H9.246zm3.593 8c1.518 1.234 3.278 2 5.161 2 1.884 0 3.643-.766 5.162-2H12.839z" fill="#FFCC4D"/><path fill="#CCD6DD" d="M18 13.505c0 2.647-7.858 8.584-12 8.584s-6-2.443-6-5.09c0-2.646 1.858-4.495 6-4.495 4.143.001 12-1.644 12 1.001zm0 0c0 2.647 7.857 8.584 12 8.584s6-2.443 6-5.09c0-2.646-1.857-4.495-6-4.495s-12-1.644-12 1.001z"/><path fill="#99AAB5" d="M2 19c-.552 0-1-.447-1-1 0-.551.446-.999.998-1 .048 0 4.949-.07 13.596-3.914.505-.227 1.096.002 1.32.507.225.505-.003 1.096-.507 1.32C7.317 18.953 2.213 19 2 19zm32 0c-.213 0-5.316-.047-14.406-4.086-.505-.224-.731-.815-.508-1.32.225-.504.817-.732 1.32-.507C29.054 16.93 33.954 17 34.003 17c.551.003.997.452.996 1.003-.002.551-.448.997-.999.997z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f41e.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f41e.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path d="M35 21H1c-.552 0-1-.447-1-1s.448-1 1-1h34c.553 0 1 .447 1 1s-.447 1-1 1zm-22.177-2l-.069-.002c-.092-.007-9.214-.714-10.734-8.235-.109-.542.241-1.069.782-1.178.543-.113 1.069.241 1.178.782 1.221 6.044 8.833 6.631 8.91 6.636.551.038.967.515.93 1.066-.036.527-.476.931-.997.931zM3 31c-.142 0-.286-.03-.423-.094-.5-.234-.716-.829-.482-1.33 3.166-6.77 11.038-7.721 11.372-7.758.548-.056 1.042.334 1.103.882.062.548-.332 1.043-.88 1.106-.071.008-7.099.876-9.783 6.617-.171.364-.532.577-.907.577zm19.753-12c-.522 0-.961-.405-.996-.934-.036-.551.381-1.027.931-1.064.081-.005 8.116-.617 9.332-6.636.108-.541.633-.895 1.179-.782.541.109.892.637.782 1.178-1.521 7.525-10.769 8.21-11.162 8.235l-.066.003zm10.248 12c-.377 0-.737-.213-.907-.576-2.694-5.763-10.124-6.609-10.198-6.617-.55-.058-.948-.55-.89-1.099.058-.55.555-.952 1.099-.89.352.037 8.634.983 11.802 7.758.233.501.018 1.096-.482 1.33-.139.064-.282.094-.424.094z" fill="#31373D"/><path fill="#31373D" d="M24.989 7.766c-.069-2.626-1.277-4.216-3.095-5.04C21.961 2.5 22 2.257 22 2c0-1.105-.672-2-1.5-2S19 .895 19 2c0 .015.003.028.003.043C18.675 2.017 18.342 2 18 2s-.675.017-1.003.043c0-.015.003-.028.003-.043 0-1.105-.671-2-1.5-2S14 .895 14 2c0 .257.04.5.106.726-1.817.824-3.025 2.414-3.095 5.04C7.98 9.551 6 12.662 6 17c0 7.159 5.373 16.923 12 16.923 6.628 0 12-9.764 12-16.923 0-4.338-1.98-7.45-5.011-9.234z"/><path fill="#DD2E44" d="M16.001 34.959C9.564 34.364 4.5 28.064 4.5 20.378 4.5 12.693 9.564 9.597 16 9c.33-.03 1-.046 1 2.294v22.541c0 1.171-.669 1.156-.999 1.124zm3.998 0c6.436-.595 11.501-6.895 11.501-14.581C31.5 12.693 26.435 9.597 20 9c-.33-.03-1-.046-1 2.294v22.541c0 1.171.67 1.156.999 1.124z"/><g fill="#31373D"><circle cx="13" cy="15" r="2"/><circle cx="10" cy="22" r="3"/><circle cx="13" cy="29" r="2"/><circle cx="24.5" cy="14.5" r="2.5"/><circle cx="22.5" cy="20.5" r="1.5"/><circle cx="28" cy="23" r="2"/><circle cx="24" cy="29" r="3"/></g></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f41f.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f41f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3B88C3" d="M32.153 24c0-1 1.523-6.212 3.047-7.735 1.522-1.523 0-3.166-1.523-3.166-3.405 0-9.139 6.901-9.139 10.901 0 5 5.733 10.424 9.139 10.424 1.523 0 3.046-1.404 1.523-2.928C33.677 29.974 32.153 26 32.153 24z"/><path fill="#3B88C3" d="M9.021 14.384c0-3.046 1.497-6.093 3.02-6.093 4.569 0 13.322 4.823 14.845 12.439 1.524 7.616-17.865-6.346-17.865-6.346zm4.854 18.278c1.523 1.523 4.57 3.047 7.617 3.047 3.046 0-3.111-4.189-1.523-6.092 2.18-2.617-6.094 3.045-6.094 3.045z"/><path d="M2.071 28.727c.761-2.285.19-3.935-1.143-5.584-1.333-1.651 3.872-1.904 5.585.381s5.713 6.281 2.158 6.22c-3.553-.065-6.6-1.017-6.6-1.017z"/><path fill="#55ACEE" d="M.168 23.488c.959.874 7.223 4.309 7.165 5.137-.058.828-2.279-.088-3.105-.279-1.485-.342-1.905-.598-2.317-.526-.84.321-.554 1.201-.242 1.704 1.498 2.61 7.286 4.662 12.16 4.662 8.412 0 16.802-7.615 16.802-10.662 0-3.046-9.345-10.663-17.757-10.663C4.483 12.86.18 18.922.168 23.488z"/><path d="M7 17c1.104 0 2 .894 2 2 0 1.105-.896 2-2 2-1.105 0-2-.896-2-2 0-1.106.895-2 2-2z"/><path fill="#269" d="M15.08 29.98c-.156 0-.314-.036-.462-.113-.49-.256-.679-.86-.423-1.35 1.585-3.034 2.218-5.768.154-9.243-.282-.475-.126-1.088.349-1.371.475-.283 1.088-.124 1.371.349 2.693 4.535 1.46 8.202-.102 11.191-.178.342-.527.537-.887.537z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f420.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f420.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFAC33" d="M8.231 10c6-8 14-10 18-10 1 0 1 1 0 1s-6 2-7 9-11 0-11 0zm-1 18c4 3 13 8 18 8 3 0 2-1 1-1s-9-3-10-7-9 0-9 0z"/><path fill="#FFCC4D" d="M35 9c-1.611 0-4.059 2.972-5.268 6.294-1.475-5.62-6.166-10.739-12.945-10.739-8.273 0-12.061 10.216-14.524 14.479-.629 1.091-4.091 1.034-.989 3.103-3.103 2.068.449 2.243 1.222 3.103 2.625 2.92 8.997 6.205 14.291 6.205 5.655 0 11.12-3.786 12.863-8.958C30.828 25.896 33.353 29 35 29c2.209 0-2-5.582-2-10s4.209-10 2-10z"/><g fill="#F4900C"><path d="M18.001 17.967c-.019.552.414 1.015.966 1.032l.034.001c.536 0 .98-.426.998-.967.201-6.065 5.758-8.816 6.35-9.092-.466-.525-.968-1.018-1.51-1.467-1.885 1.057-6.634 4.323-6.838 10.493zm5.018-2.163c-.108.542.243 1.068.784 1.177.067.013.132.019.198.019.467 0 .885-.329.98-.804.516-2.581 2.296-3.574 3.592-3.956-.305-.609-.645-1.202-1.028-1.768-1.877.691-3.908 2.246-4.526 5.332z"/><path d="M13 20c0 .553.448 1 1 1s1-.447 1-1c0-8.97 5.841-12.544 8.266-13.641-.693-.419-1.424-.785-2.205-1.067C17.888 7.169 13 11.446 13 20z"/></g><circle fill="#292F33" cx="9.5" cy="15.5" r="1.5"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f422.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f422.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#77B255" d="M9.842 19.922c0 9.842 6.575 9.673 5.158 10.078-7 2-8.803-7.618-9.464-7.618-2.378 0-5.536-.423-5.536-2.46C0 17.883 2.46 15 6.151 15c2.379 0 3.691 2.883 3.691 4.922zM36 28.638c0 1.104-3.518-.741-5 0-2 1-2-.896-2-2s1.343-1 3-1 4 1.895 4 3z"/><path fill="#77B255" d="M16.715 33.143c0 2.761-1.279 2.857-2.857 2.857S11 35.903 11 33.143c0-.489.085-1.029.234-1.587.69-2.59 2.754-5.556 4.052-5.556 1.578 0 1.429 4.382 1.429 7.143zm8.571 0c0 2.761 1.278 2.857 2.856 2.857C29.721 36 31 35.903 31 33.143c0-.489-.085-1.029-.234-1.587-.691-2.59-2.754-5.556-4.052-5.556-1.578 0-1.428 4.382-1.428 7.143z"/><path fill="#3E721D" d="M32 27c0 4-5.149 4-11.5 4S9 31 9 27c0-6.627 5.149-12 11.5-12S32 20.373 32 27z"/><circle fill="#292F33" cx="5" cy="18" r="1"/><path fill="#5C913B" d="M23.667 25.1c0 3.591-1.418 3.9-3.167 3.9s-3.167-.31-3.167-3.9S18.75 17 20.5 17s3.167 4.51 3.167 8.1zM30 24c.871 3.482-.784 4-2.533 4-1.749 0-2.533.69-2.533-2.9s-1.116-6.5.633-6.5C27.315 18.6 29 20 30 24zm-13.933 1.1c0 3.591-.785 2.9-2.534 2.9s-3.404-.518-2.533-4c1-4 3.251-5.4 5-5.4 1.75 0 .067 2.91.067 6.5z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f425.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f425.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFAC33" d="M17.38 33.098c-.097-.18-.25-.302-.417-.391C15.366 31.001 16.5 29 16.5 29c0-.553 1-2 0-2l-1 1c-1 1-1 4-1 4h-2c-.553 0-1 .447-1 1s.447 1 1 1h1.108l-.222.12c-.486.263-.667.869-.404 1.355s.869.667 1.356.404l2.639-1.427c.485-.262.666-.868.403-1.354zM23.5 32h-2s0-3-1-4l-1-1c-1 0 0 1.447 0 2 0 0 1.135 2.001-.462 3.707-.168.089-.32.211-.418.391-.263.486-.082 1.093.404 1.355l2.639 1.427c.486.263 1.093.082 1.356-.404.263-.486.082-1.093-.404-1.355L22.393 34H23.5c.553 0 1-.447 1-1s-.447-1-1-1z"/><path fill="#FFCC4D" d="M34 24c-1-2-3-5-4-10h-.008c.001-.052.008-.102.008-.154 0-5.943-4.324-10.864-9.996-11.819 1.189-.26 2.031-.509.996-1.027-1.115-.558-2.23.129-2.999.846h-.002C17.23 1.129 16.116.442 15 1c-1.035.518-.193.767.996 1.026C10.325 2.981 6 7.902 6 13.846c0 .052.007.102.008.154H6c-1 5-3 8-4 10-.447.895 0 3 2 2 1.191-.596 2.377-1.912 3.357-3.715C8.902 26.94 12.066 31 18 31c5.934 0 9.098-4.06 10.643-8.715.98 1.803 2.166 3.119 3.357 3.715 2 1 2.447-1.105 2-2z"/><path fill="#F4900C" d="M21 14c0 1.657-1.343 2-3 2s-3-.343-3-2 1.343-3 3-3 3 1.343 3 3z"/><circle fill="#662113" cx="11.5" cy="11.5" r="1.5"/><circle fill="#662113" cx="24.5" cy="11.5" r="1.5"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f426.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f426.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFAC33" d="M8.916 12.88c-.111 1.652 1.768 3.126-.712 2.959-2.48-.167-7.836-2.533-7.768-3.53s3.708-2.757 6.188-2.59c2.48.166 2.404 1.508 2.292 3.161zm20.122 16.049c-.202-.032-.392.015-.564.095-2.325.232-3.225-1.885-3.225-1.885-.439-.336-.981-2.009-1.589-1.215l.187 1.402c.187 1.402 2.57 3.224 2.57 3.224l-1.215 1.589c-.336.439-.252 1.066.187 1.402.439.336 1.066.252 1.402-.187l.673-.88-.039.249c-.087.546.285 1.058.831 1.145.546.087 1.058-.285 1.145-.831l.47-2.963c.085-.546-.287-1.058-.833-1.145zm-6.278.623c-.196-.058-.39-.037-.572.018-2.335-.082-2.944-2.3-2.944-2.3-.39-.392-.703-2.123-1.412-1.417l-.003 1.414c-.003 1.414 2.115 3.539 2.115 3.539l-1.417 1.412c-.392.39-.393 1.023-.003 1.414.39.392 1.023.393 1.414.003l.785-.782-.073.242c-.159.529.141 1.086.67 1.246.529.159 1.087-.141 1.246-.67l.862-2.873c.162-.53-.138-1.087-.668-1.246z"/><path fill="#DD2E44" d="M35.009 6.729c-.383-.17-.758-.057-1.05.244-.054.056-4.225 6.306-14.532 4.944-.34-.045 3.139 11.968 3.199 11.962.124-.014 3.07-.368 6.14-2.553 2.818-2.005 6.284-5.991 6.797-13.598.028-.418-.171-.828-.554-.999z"/><path fill="#DD2E44" d="M34.477 21.108c-.204-.336-.59-.56-.979-.471-1.293.295-3.197.543-4.53.453-6.357-.428-9.361-4.129-9.392-4.16-.275-.282.466 11.552.816 11.576 9.194.62 13.862-6.027 14.057-6.31.222-.326.233-.751.028-1.088z"/><path fill="#DD2E44" d="M24.586 19.016c-.371 5.51 1.316 9.861-4.194 9.489-5.51-.371-10.145-4.92-9.774-10.431s14.34-4.568 13.968.942z"/><path fill="#DD2E44" d="M23.257 12.412c-.353 5.235-3.922 9.257-9.156 8.904-5.235-.353-9.193-4.882-8.84-10.117.353-5.235 4.832-8.444 10.067-8.091 4.001.269 8.24 4.683 7.929 9.304z"/><circle fill="#292F33" cx="10.67" cy="8.989" r="2"/><path fill="#A0041E" d="M18.179 16.645s7.63 5.648 12.387-4.459c.396-.842 1.685.793.099 4.162s-8.175 6.44-12.04 1.536c-.815-1.035-.446-1.239-.446-1.239z"/><path fill="#DD2E44" d="M15.327 3.107s6.246.254 7.798-.477.136 2.932-3.262 3.789-4.536-3.312-4.536-3.312z"/><path fill="#DD2E44" d="M17.428 5.788s4.501.136 6.054-.594.136 2.932-3.262 3.789c-3.399.857-2.792-3.195-2.792-3.195z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f428.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f428.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#99AAB5" d="M36 13.533C36 8.867 32.866 7 29 7c-1.621 0-3.285.354-4.676 1.027C22.523 6.798 20.405 6.062 18 6.062s-4.523.736-6.324 1.965C10.285 7.354 8.621 7 7 7c-3.866 0-7 1.867-7 6.533 0 3.844 2.128 6.417 5.038 7.206-.043.536-.068 1.073-.068 1.611 0 5.729 4.52 7.675 8.581 8.326C14.649 31.487 16.232 32 18 32s3.351-.513 4.449-1.323c4.062-.651 8.581-2.597 8.581-8.326 0-.538-.025-1.075-.068-1.611 2.91-.79 5.038-3.363 5.038-7.207z"/><path fill="#66757F" d="M9.554 9.854C9.236 9.821 8.917 9.8 8.6 9.8 5.507 9.8 3 11.293 3 15.026c0 2.154.838 3.808 2.138 4.824.473-3.797 2.005-7.416 4.416-9.996zM27.4 9.8c-.317 0-.637.021-.955.054 2.412 2.58 3.943 6.199 4.416 9.997C32.162 18.834 33 17.181 33 15.026c0-3.733-2.507-5.226-5.6-5.226z"/><path fill="#292F33" d="M21.728 24.807C21.728 28.152 20 29 18 29s-3.727-.848-3.727-4.193c0-3.345 1.727-6.057 3.727-6.057s3.728 2.712 3.728 6.057z"/><circle fill="#292F33" cx="12.5" cy="19.875" r="1.5"/><circle fill="#292F33" cx="23.5" cy="19.875" r="1.5"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f42a.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f42a.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1694F" d="M31.595 15.007c-1.75-3.623-5.934-9.053-9.531-9.053-4.071 0-8.228 7.259-10.071 10.378-.176.299-.321.578-.464.857-3.371-1.182-.536-6.631-.536-10.463 0-.957-.138-1.637-.44-2.119.489-.606.586-1.347.192-1.699-.413-.367-1.195-.163-1.745.456-.08.089-.129.186-.189.28-.424-.067-.903-.102-1.472-.102-.565 0-2.916.266-4.229.791C-.007 5.582.993 9 1.993 9h4c1 0 .756 2.31 0 4.726-.83 2.654-1.439 5.145-1 6.606.808 2.687 3.712 3.589 6.164 3.86 1.059 2.659 1.517 6.455 1.473 7.962-.059 2 1.94 2.059 1.999.059.036-1.211-.102-3.68.143-5.781.658 2.833.935 6.097.899 7.314-.059 1.998 1.94 2.057 1.999.059.047-1.602-.182-6.36.559-8.982.507.017 1.044.03 1.619.035 1.774.09 3.726.085 5.506-.015 1.05 1.592 1.996 2.991 1.982 3.435-.029 1-1.117 3.969-1.146 4.969-.029 1 .94 2.029 1.999.059.648-1.205 1.324-3.419 1.536-5.421.171.364.274.656.269.843-.029 1-.97 3.93-.999 4.93-.029.998.941 2.027 1.999.059 1.059-1.971 1.998-4.898 1.058-6.928-.797-1.72.431-4.165.824-7.914 1.082 1.665 1.117 3.351 1.118 3.459 0 .553.447 1 1 1 .553 0 1-.447 1-1-.001-.215-.067-4.85-4.399-7.327z"/><path fill="#292F33" d="M8.28 5.571c-.016.552-.477.986-1.029.97-.552-.016-.986-.477-.97-1.029.016-.552.477-.986 1.029-.97.552.016.986.477.97 1.029z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f42c.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f42c.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#4292E0" d="M30.584 7.854c.27-1.729 1.028-3.908 2.975-5.854.704-.704.25-2-1-2 0 0-6.061.007-9.893 3.327C21.663 3.115 20.625 3 19.559 3c-8 0-12 4-14 12-.444 1.778-.865 1.399-3 3-1.195.896-2.117 3 1 3 3 0 5 .954 9 1 3.629.042 9.504-3.229 11.087-1.292 2.211 2.706 1.396 5.438.597 6.666-2.904 3.396-5.939.541-8.685-.374-3-1-1 1 0 2s1.312 4 0 6 3 0 5-3c.011-.017.022-.028.032-.045C28.392 31.5 34.559 25.936 34.559 18c0-3.918-1.515-7.474-3.975-10.146z"/><circle fill="#1F2326" cx="13.117" cy="14" r="2"/><path fill="#77BCF7" d="M10.396 21.896s4-.876 7.167-2.688c4.625-2.646 7.26-2.594 8.885-.823s1.99 6.594-2.885 9.677c2.604-2.75 1.146-8.349-2.014-7.588-8.153 1.964-8.903 1.547-11.153 1.422z"/><path fill="#4292E0" d="M19.383 17.744l-2.922 1.285c-.254.064-.433.3-.412.561.122 1.504.756 3.625 2.263 4.629 2.354 1.569 2.367 1.897 3 0 .768-2.303-.182-4.462-1.333-6.24-.127-.196-.37-.293-.596-.235z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f42d.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f42d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#99AAB5" cx="8.5" cy="9.5" r="8.5"/><circle fill="#99AAB5" cx="27.5" cy="9.5" r="8.5"/><path fill="#F4ABBA" d="M13.812 10.031c0 3.228-2.617 5.844-5.844 5.844s-5.844-2.616-5.844-5.844c0-3.227 2.617-5.844 5.844-5.844s5.844 2.617 5.844 5.844zm20.063 0c0 3.228-2.617 5.844-5.844 5.844-3.227 0-5.844-2.616-5.844-5.844 0-3.227 2.617-5.844 5.844-5.844 3.227.001 5.844 2.617 5.844 5.844z"/><path fill="#99AAB5" d="M30 18c0 7.18-8 15-12 15S6 25.18 6 18s7-9 12-9 12 1.82 12 9z"/><path fill="#F4ABBA" d="M20.905 29.648C20.905 31.252 18.894 33 18 33c-.894 0-2.905-1.748-2.905-3.352 0-1.605 1.788-1.956 2.905-1.956 1.117 0 2.905.351 2.905 1.956z"/><g fill="#66757F"><path d="M34.999 32.16c-.175 0-.353-.046-.514-.143-4.628-2.777-11.278-1.877-11.345-1.867-.559.079-1.053-.304-1.13-.85-.078-.547.302-1.053.848-1.131.301-.042 7.411-1.014 12.656 2.133.474.284.627.898.343 1.372-.187.313-.518.486-.858.486z"/><path d="M32.001 35.16c-.305 0-.604-.138-.801-.4-2.728-3.637-8.309-4.604-8.364-4.613-.545-.091-.913-.606-.822-1.15.09-.545.606-.92 1.15-.822.262.044 6.433 1.115 9.636 5.387.332.441.242 1.068-.2 1.399-.18.134-.39.199-.599.199zm-31-3c-.34 0-.671-.173-.858-.485-.284-.474-.131-1.088.343-1.372 5.244-3.146 12.355-2.175 12.656-2.133.546.078.926.584.848 1.131-.078.547-.582.93-1.13.85-.066-.009-6.717-.909-11.345 1.867-.161.096-.339.142-.514.142z"/><path d="M3.999 35.16c-.208 0-.419-.065-.599-.2-.442-.331-.531-.958-.2-1.399 3.203-4.271 9.375-5.343 9.635-5.387.548-.097 1.059.276 1.15.821.091.544-.276 1.06-.82 1.151-.056.01-5.648.991-8.366 4.613-.195.263-.496.401-.8.401z"/></g><path fill="#272B2B" d="M12 21s0-2 2-2 2 2 2 2v2s0 2-2 2-2-2-2-2v-2zm8 0s0-2 2-2 2 2 2 2v2s0 2-2 2-2-2-2-2v-2z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f42e.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f42e.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#99AAB5" d="M4 8s-4 2-4 11c0 0 6-1 7-3 0 0 2-12.25-3-8zm27.995.043s4 2 4 11c0 0-6-.999-7-2.999 0 0-2-12.251 3-8.001z"/><path fill="#FFE8B6" d="M1 1c-1.01.99 1 8 5 9s4-5 3-5C5 5 3.042-1 1 1zm34.297 0c1.011.99-1 8-5 9s-4-5-3-5c4 0 5.959-6 8-4z"/><path fill="#CCD6DD" d="M21.976 31h-7.951C8.488 31 4 26.512 4 20.976v-8.951C4 6.488 8.488 2 14.025 2h7.951C27.512 2 32 6.488 32 12.025v8.951C32 26.512 27.512 31 21.976 31z"/><path fill="#E6AAAA" d="M35 28c0 5.522-4.478 8-10 8H11c-5.523 0-10-2.478-10-8s4.477-10 10-10h14c5.522 0 10 4.478 10 10z"/><ellipse fill="#C1694F" cx="9.5" cy="26" rx="1.5" ry="3"/><ellipse fill="#C1694F" cx="26.5" cy="26" rx="1.5" ry="3"/><path fill="#272B2B" d="M11 12s0-2 2-2 2 2 2 2v2s0 2-2 2-2-2-2-2v-2zm10 0s0-2 2-2 2 2 2 2v2s0 2-2 2-2-2-2-2v-2z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f42f.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f42f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#FFCC4D" cx="7" cy="6" r="6"/><circle fill="#FFCC4D" cx="18" cy="30" r="6"/><circle fill="#DD2E44" cx="18" cy="30" r="4"/><circle fill="#FFCC4D" cx="29" cy="6" r="6"/><circle fill="#E6AAAA" cx="7" cy="6" r="4"/><circle fill="#E6AAAA" cx="29" cy="6" r="4"/><path fill="#FFCC4D" d="M34 22c0 7-4.923 7-4.923 7H6.923S2 29 2 22C2 22 3.231 0 18 0c14.77 0 16 22 16 22z"/><path fill="#272B2B" d="M11 17s0-2 2-2 2 2 2 2v2s0 2-2 2-2-2-2-2v-2zm10 0s0-2 2-2 2 2 2 2v2s0 2-2 2-2-2-2-2v-2z"/><path fill="#FFF" d="M23.678 23c-2.402 0-4.501.953-5.678 2.378C16.823 23.953 14.723 23 12.321 23 2 23 2.043 23.421 2 26.182c-.087 5.61 6.63 6.9 10.321 6.818 2.401-.053 4.502-.989 5.679-2.397 1.177 1.408 3.276 2.345 5.678 2.397 3.691.082 10.409-1.208 10.321-6.818-.043-2.761 0-3.182-10.321-3.182z"/><path fill="#272B2B" d="M33.66 25.242c.204.279.333.588.339.939.03 1.905-.745 3.303-1.915 4.327L26.999 31l6.661-5.758zM15 25c-1 1 2 4 3 4s4-3 3-4-5-1-6 0zM10 3c2.667 2 8 4 8 4s5.333-2 8-4l-8 1-8-1zm8-1s1.652-.62 3.576-1.514C20.48.178 19.295 0 18 0s-2.481.178-3.576.486C16.348 1.38 18 2 18 2zm-7 7c3 2 7 4 7 4s4-2 7-4l-7 1-7-1zm20.645 2.285L27 15l6.006.75c-.334-1.401-.777-2.928-1.361-4.465zm1.911 7.159L28 24h5.835c.102-.595.165-1.251.165-2 0 0-.081-1.43-.444-3.556zm-31.112 0C2.082 20.57 2 22 2 22c0 .748.063 1.405.165 2H8l-5.556-5.556zm-.105 6.798c-.204.279-.333.588-.339.94-.03 1.905.745 3.303 1.916 4.327L9 31l-6.661-5.758zM9 15l-4.644-3.715c-.584 1.537-1.028 3.064-1.361 4.466L9 15z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f430.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f430.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#99AAB5" d="M33.799.005c-.467-.178-7.998 3.971-9.969 9.131-1.166 3.052-1.686 6.058-1.652 8.112C20.709 16.459 19.257 16 18 16s-2.709.458-4.178 1.249c.033-2.055-.486-5.061-1.652-8.112C10.2 3.977 2.668-.173 2.201.005c-.455.174 4.268 16.044 7.025 20.838C6.805 23.405 5 26.661 5 29.828c0 3.234 1.635 5.14 4 5.94 2.531.857 5-.94 9-.94s6.469 1.798 9 .94c2.365-.801 4-2.706 4-5.94 0-3.166-1.805-6.423-4.225-8.984C29.53 16.049 34.255.179 33.799.005z"/><path fill="#F4ABBA" d="M12.692 17.922c-.178-1.54-.68-3.55-1.457-5.584-1.534-4.016-5.686-7.245-6.049-7.107-.319.122 2.627 10.14 4.783 14.863.866-.824 1.786-1.563 2.723-2.172zm13.338 2.172c2.156-4.723 5.102-14.741 4.784-14.862-.363-.139-4.516 3.091-6.05 7.107-.777 2.034-1.279 4.043-1.457 5.583.937.609 1.857 1.348 2.723 2.172z"/><path fill="#CCD6DD" d="M25 30c0 2.762-3.06 5-6.834 5-3.773 0-6.833-2.238-6.833-5s3.06-5 6.833-5C21.94 25 25 27.238 25 30z"/><path fill="#FFF" d="M21 30.578c0 2.762-.238 3-3 3-2.761 0-3-.238-3-3 0-1 6-1 6 0z"/><circle fill="#292F33" cx="12.5" cy="24.328" r="1.5"/><circle fill="#292F33" cx="23.5" cy="24.328" r="1.5"/><path fill="#F4ABBA" d="M21 25.828c0 1.657-2 3-3 3s-3-1.343-3-3 6-1.657 6 0z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f431.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f431.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M32.348 13.999s3.445-8.812 1.651-11.998c-.604-1.073-8 1.998-10.723 5.442 0 0-2.586-.86-5.276-.86s-5.276.86-5.276.86C10.001 3.999 2.605.928 2.001 2.001.207 5.187 3.652 13.999 3.652 13.999c-.897 1.722-1.233 4.345-1.555 7.16-.354 3.086.35 5.546.658 6.089.35.617 2.123 2.605 4.484 4.306 3.587 2.583 8.967 3.445 10.761 3.445s7.174-.861 10.761-3.445c2.361-1.701 4.134-3.689 4.484-4.306.308-.543 1.012-3.003.659-6.089-.324-2.814-.659-5.438-1.556-7.16z"/><path fill="#F18F26" d="M2.359 2.971c.2-.599 5.348 2.173 6.518 5.404 0 0-3.808 2.624-4.528 4.624 0 0-2.99-7.028-1.99-10.028z"/><path fill="#FFCC4D" d="M5.98 7.261c0-1.414 5.457 2.733 4.457 3.733s-1.255.72-2.255 1.72S5.98 8.261 5.98 7.261z"/><path fill="#F18F26" d="M33.641 2.971c-.2-.599-5.348 2.173-6.518 5.404 0 0 3.808 2.624 4.528 4.624 0 0 2.99-7.028 1.99-10.028z"/><path fill="#FFCC4D" d="M30.02 7.261c0-1.414-5.457 2.733-4.457 3.733s1.255.72 2.255 1.72 2.202-4.453 2.202-5.453z"/><path fill="#292F33" d="M14.001 20.001c0 1.105-.896 1.999-2 1.999s-2-.894-2-1.999c0-1.104.896-1.999 2-1.999s2 .896 2 1.999zm11.998 0c0 1.105-.896 1.999-2 1.999-1.105 0-2-.894-2-1.999 0-1.104.895-1.999 2-1.999s2 .896 2 1.999z"/><path fill="#FEE7B8" d="M2.201 30.458c-.148 0-.294-.065-.393-.19-.171-.217-.134-.531.083-.702.162-.127 4.02-3.12 10.648-2.605.275.021.481.261.46.536-.021.275-.257.501-.537.46-6.233-.474-9.915 2.366-9.951 2.395-.093.07-.202.106-.31.106zm8.868-4.663c-.049 0-.1-.007-.149-.022-4.79-1.497-8.737-.347-8.777-.336-.265.081-.543-.07-.623-.335-.079-.265.071-.543.335-.622.173-.052 4.286-1.247 9.362.338.264.083.411.363.328.627-.066.213-.263.35-.476.35zm22.73 4.663c.148 0 .294-.065.393-.19.171-.217.134-.531-.083-.702-.162-.127-4.02-3.12-10.648-2.605-.275.021-.481.261-.46.536.022.275.257.501.537.46 6.233-.474 9.915 2.366 9.951 2.395.093.07.202.106.31.106zm-8.868-4.663c.049 0 .1-.007.149-.022 4.79-1.497 8.737-.347 8.777-.336.265.081.543-.07.623-.335.079-.265-.071-.543-.335-.622-.173-.052-4.286-1.247-9.362.338-.264.083-.411.363-.328.627.066.213.263.35.476.35z"/><path fill="#67757F" d="M24.736 30.898c-.097-.258-.384-.392-.643-.294-.552.206-1.076.311-1.559.311-1.152 0-1.561-.306-2.033-.659-.451-.338-.956-.715-1.99-.803v-2.339c0-.276-.224-.5-.5-.5s-.5.224-.5.5v2.373c-.81.115-1.346.439-1.816.743-.568.367-1.059.685-2.083.685-.482 0-1.006-.104-1.558-.311-.258-.095-.547.035-.643.294-.097.259.035.547.293.644.664.247 1.306.373 1.907.373 1.319 0 2.014-.449 2.627-.845.524-.339.98-.631 1.848-.635.992.008 1.358.278 1.815.621.538.403 1.147.859 2.633.859.601 0 1.244-.126 1.908-.373.259-.097.391-.385.294-.644z"/><path fill="#E75A70" d="M19.4 24.807h-2.8c-.64 0-1.163.523-1.163 1.163 0 .639.523 1.163 1.163 1.163h.237v.345c0 .639.523 1.163 1.163 1.163s1.163-.523 1.163-1.163v-.345h.237c.639 0 1.163-.523 1.163-1.163s-.524-1.163-1.163-1.163z"/><path fill="#F18F26" d="M18.022 17.154c-.276 0-.5-.224-.5-.5V8.37c0-.276.224-.5.5-.5s.5.224.5.5v8.284c0 .277-.223.5-.5.5zM21 15.572c-.276 0-.5-.224-.5-.5 0-2.882 1.232-5.21 1.285-5.308.13-.244.435-.334.677-.204.243.13.334.433.204.677-.012.021-1.166 2.213-1.166 4.835 0 .276-.224.5-.5.5zm-6 0c-.276 0-.5-.224-.5-.5 0-2.623-1.155-4.814-1.167-4.835-.13-.244-.038-.546.205-.677.242-.131.545-.039.676.204.053.098 1.285 2.426 1.285 5.308.001.276-.223.5-.499.5z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f432.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f432.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3E721D" d="M35.125 13.344c0-1 .771-2.327.771-2.635 0-.656-1.553-.421-1.626-1.046-.209-1.794 1.887-3.318-1.745-3.312-1.352.002-.274-1.768-.274-2.725 0-.957-2.596-.145-3.552-.145-.957 0-.957-2.87-1.913-2.87-2.87 0-3.827 2.87-4.783 2.87-.957 0-1.744-3.621-2.87-2.87-2.87 1.913-3.826 7.653-3.826 7.653s4.783-3.826 10.522-2.87c5.345.891 4.79 10.821 5.641 16.888L24.609 36h3.359c.344-1.5 1.939-.529 2.375-1.688.381-1.016-.67-1.966-.094-2.969s.978-.755 2.094-1.375c1.184-.657 0-2.199 0-3.156 0-.956 2.312-1.574 2.312-2.531 0-.63-1.068-1.292-.812-2.356.257-1.064 1.586-1.186 1.749-2.184.138-.847-.921-1.455-.796-2.393s1.174-1.378 1.174-2.097c.002-.718-.845-1.001-.845-1.907z"/><path fill="#77B255" d="M34.438 13.458c0-4.038-2.87-9.085-9.566-9.085-6.695 0-17.265 10.024-20.088 10.096C2.87 12.521 0 14.523 0 16.486c0 3.028 5.373 4.61 5.646 4.899 1.088 1.149 3.92 8.083 8.704 1.945.803-1.03 1.302-.422 3.483.542C25.069 27.729 16 36 16 36h9.566c4.782-4.783 8.871-13.844 8.871-21.997l-.021.008c.007-.185.022-.369.022-.553z"/><path fill="#292F33" d="M23.915 12.09c0 1.056-.856 1.913-1.913 1.913s-1.913-.857-1.913-1.913c0-1.057.856-1.913 1.913-1.913 1.057-.001 1.913.856 1.913 1.913z"/><path fill="#3E721D" d="M4.783 17.351c0 .793-.643.479-1.435.479s-1.435.315-1.435-.479c0-.792.643-1.435 1.435-1.435.793 0 1.435.643 1.435 1.435z"/><path fill="#FFF" d="M18.176 18.782c0 1.058-.643.956-1.436.956-.792 0-1.434.101-1.434-.956 0-1.056.642-3.826 1.434-3.826.793 0 1.436 2.771 1.436 3.826zm-3.827.956c0 1.058-.643.957-1.435.957s-1.435.101-1.435-.957c0-1.056.643-3.826 1.435-3.826.792.001 1.435 2.771 1.435 3.826z"/><path fill="#3E721D" d="M18.04 18.795c-5.076.726-10.192 2.007-12.394 2.59.275.29.661.95 1.162 1.674 2.415-.624 6.975-1.724 11.503-2.369.524-.074.887-.561.812-1.083-.075-.524-.563-.888-1.083-.812zm.549-6.186c-.258 0-.515-.098-.709-.295-.388-.391-.388-1.021.001-1.41.129-.129 3.222-3.163 8.36-3.163.553 0 1 .448 1 1s-.447 1-1 1c-4.281 0-6.923 2.554-6.949 2.58-.194.192-.449.288-.703.288z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f433.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f433.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3B88C3" d="M32 12c2.122-2.122 5 14.312-3 21-2.757 2.305-6 2.969-8 2.969-2.371 0-10.029.031-13 .031-7.18 0-8-4.925-8-11s.82-11 8-11c6 0 10 2 13 3.996 4.977 3.312 5.992 3.861 8 2.004 3.213-2.97 1-6 3-8z"/><path fill="#55ACEE" d="M34.003 23c-.465 3.727-2.041 7.523-5.003 10-2.757 2.305-6 2.969-8 2.969-2.371 0-10.029.031-13 .031-4.035 0-6.062-1.555-7.062-3.996C.157 30.102 4 33 15 33c14 0 17-5 19.003-10z"/><path fill="#3B88C3" d="M32 14c4.123 0 4-5 4-7s-2 1-5 2-7-2-6 0 3 5 7 5z"/><path fill="#55ACEE" d="M10 7c0 2.209-.896 6-2 6S6 9.209 6 7s.896-2 2-2 2-.209 2 2z"/><path fill="#55ACEE" d="M8 5c0-3-6-2-6 0s3 1 4 3 2-3 2-3zm0 0c0-3 6-2 6 0s-3 1-4 3-2-3-2-3z"/><circle fill="#292F33" cx="6.5" cy="25.5" r="1.5"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f434.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f434.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1694F" d="M23.283 23.275s1.374 1.635 2.733 10.047c.143.883.201 1.775.217 2.678H36V7.448C31.613 3.975 25.601 3.259 18.322 5.69c0 0-5.408-3-6.147-3.739-.719-.72-1.857-1.556-1.235.35.364 1.112.764 2.373 2.358 4.862-3.436 2.036-4.513 4.68-8.558 13.341C1.652 27.12.08 29.269.937 31.797c1.13 3.337 5.316 5.595 8.844 3.021 1.919-1.4 2.246-3.913 6.225-6.223 3.653-.065 7.277-1.604 7.277-5.32z"/><path fill="#292F33" d="M36 6.012C27.665.301 14.354 1.473 15.909 6.19 25.51 4.328 31.77 7.731 36 13.358V6.012z"/><path fill="#292F33" d="M19.663 5.763c-2.878.233-7.157 1.595-9.296 3.967 0 0-.129-5.147 3.566-5.614 6.172-.779 5.809.363 5.809.363l-.079 1.284z"/><path fill="#C1694F" d="M16.357 1.056c.558 1.155 4.006 1.79 5.056 6.029 1.051 4.24-3.134 2.951-4.356.855-1.361-2.334-1.828-4.162-1.867-5.679-.021-.801.039-3.538 1.167-1.205z"/><path fill="#662113" d="M16.596 2.838c1.103.968 2.448 2.472 2.65 3.955.202 1.483-1.125.988-1.736-.372-.612-1.359-.753-2.779-1.134-3.233-.38-.454.22-.35.22-.35z"/><path fill="#292F33" d="M16.94 15.525c0 .687-.557 1.244-1.245 1.244-.687 0-1.244-.557-1.244-1.244 0-.688.557-1.245 1.244-1.245.688.001 1.245.558 1.245 1.245z"/><path fill="#662113" d="M4.222 29.917c0 .881-.532 1.594-1.187 1.594s-1.187-.713-1.187-1.594c0-.882.532-1.596 1.187-1.596s1.187.714 1.187 1.596z"/><path fill="#D99E82" d="M10.354 9.924c-.033-.017-.075-.014-.111-.024-1.543 2.033-2.92 5.102-5.49 10.604-1.356 2.903-2.42 4.946-3.116 6.538 1.628.226 3.285-1.442 3.945-3.271.673-1.866 3.215-5.652 4.927-7.778 1.712-2.127 1.561-5.144-.155-6.069z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f435.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f435.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><ellipse transform="rotate(-14.999 5.05 17.456)" fill="#D79E84" cx="5.05" cy="17.455" rx="3.818" ry="5.455"/><ellipse transform="rotate(-75.001 31.05 17.455)" fill="#D79E84" cx="31.05" cy="17.455" rx="5.455" ry="3.818"/><path fill="#BF6952" d="M19.018 36h-2.036C10.264 36 3.75 30.848 3.75 23.636c0-4.121 1.527-6.182 1.527-6.182s-.509-2.061-.509-4.121C4.768 7.152 11.282 2 18 2c6.718 0 13.232 6.182 13.232 11.333 0 2.061-.509 4.121-.509 4.121s1.527 2.061 1.527 6.182C32.25 30.848 25.736 36 19.018 36z"/><path fill="#D79E84" d="M30 16.042C30 12.153 26.825 9 22.909 9c-1.907 0-3.635.752-4.909 1.968C16.726 9.752 14.998 9 13.091 9 9.175 9 6 12.153 6 16.042c0 2.359 1.172 4.441 2.965 5.719-.503 1.238-.783 2.6-.783 4.031C8.182 31.476 12.578 35 18 35s9.818-3.524 9.818-9.208c0-1.431-.28-2.793-.783-4.031C28.828 20.483 30 18.4 30 16.042z"/><ellipse fill="#292F33" cx="13" cy="17" rx="2.25" ry="3.25"/><ellipse fill="#292F33" cx="23" cy="17" rx="2.25" ry="3.25"/><path fill="#642116" d="M18 32.727c2.838 0 5.254-1.505 6.162-3.61.375-.871-.262-1.844-1.21-1.844h-9.904c-.948 0-1.585.974-1.21 1.844.908 2.105 3.324 3.61 6.162 3.61z"/><circle fill="#642116" cx="16.25" cy="23" r="1"/><circle fill="#642116" cx="19.75" cy="23" r="1"/><path fill="#BF6952" d="M22.66.175s-5.455-1.091-7.636 2.182 4.364 1.091 4.364 1.091S20.478.175 22.66.175z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f436.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f436.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M15 27v6s0 3 3 3 3-3 3-3v-6h-6z"/><path fill="#BE1931" d="M15 33l.001.037c1.041-.035 2.016-.274 2.632-1.286.171-.281.563-.281.735 0 .616 1.011 1.591 1.251 2.632 1.286V27h-6v6z"/><path fill="#D99E82" d="M31.954 21.619c0 6.276-5 6.276-5 6.276h-18s-5 0-5-6.276c0-6.724 5-18.619 14-18.619s14 12.895 14 18.619z"/><path fill="#F4C7B5" d="M18 20c-7 0-10 3.527-10 6.395 0 3.037 2.462 5.5 5.5 5.5 1.605 0 3.042-.664 4.049-2.767.185-.386.716-.386.901 0 1.007 2.103 2.445 2.767 4.049 2.767 3.038 0 5.5-2.463 5.5-5.5C28 23.527 25 20 18 20z"/><path fill="#292F33" d="M15 22.895c-1 1 2 4 3 4s4-3 3-4-5-1-6 0zM13 19c-1.1 0-2-.9-2-2v-2c0-1.1.9-2 2-2s2 .9 2 2v2c0 1.1-.9 2-2 2zm10 0c-1.1 0-2-.9-2-2v-2c0-1.1.9-2 2-2s2 .9 2 2v2c0 1.1-.9 2-2 2z"/><path fill="#662113" d="M15 3.608C13.941 2.199 11.681.881 2.828 4.2-1.316 5.754.708 17.804 3.935 18.585c1.106 0 4.426 0 4.426-8.852 0-.22-.002-.423-.005-.625C10.35 6.298 12.5 4.857 15 3.608zm18.172.592C24.319.881 22.059 2.199 21 3.608c2.5 1.25 4.65 2.691 6.644 5.501-.003.201-.005.404-.005.625 0 8.852 3.319 8.852 4.426 8.852 3.227-.782 5.251-12.832 1.107-14.386z"/><circle fill="#D99E82" cx="23.5" cy="25.5" r=".5"/><circle fill="#D99E82" cx="11.5" cy="25.5" r=".5"/><circle fill="#D99E82" cx="25.5" cy="27.5" r=".5"/><circle fill="#D99E82" cx="10.5" cy="27.5" r=".5"/><circle fill="#D99E82" cx="23" cy="28" r="1"/><circle fill="#D99E82" cx="13" cy="28" r="1"/><path fill="#380F09" d="M9.883 7.232c-.259-.673-.634-1.397-1.176-1.939-.391-.391-1.023-.391-1.414 0s-.391 1.023 0 1.414c.57.57 1.066 1.934 1.068 2.346.145-.404.839-1.15 1.522-1.821zm16.217 0c.259-.672.634-1.397 1.176-1.939.391-.391 1.023-.391 1.414 0s.391 1.023 0 1.414c-.57.57-1.066 1.934-1.068 2.346-.145-.404-.839-1.15-1.522-1.821z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f437.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f437.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4ABBA" d="M34.193 13.329c.387-.371.733-.795 1.019-1.28 1.686-2.854.27-10.292-.592-10.8-.695-.411-5.529 1.05-8.246 3.132C23.876 2.884 21.031 2 18 2c-3.021 0-5.856.879-8.349 2.367C6.93 2.293 2.119.839 1.424 1.249c-.861.508-2.276 7.947-.592 10.8.278.471.615.884.989 1.249C.666 15.85 0 18.64 0 21.479 0 31.468 8.011 34 18 34s18-2.532 18-12.521c0-2.828-.66-5.606-1.807-8.15z"/><path fill="#EA596E" d="M7.398 5.965c-2.166-1.267-4.402-2.08-4.8-1.845-.57.337-1.083 4.998-.352 8.265 1.273-2.483 3.04-4.682 5.152-6.42zm26.355 6.419c.733-3.267.219-7.928-.351-8.265-.398-.235-2.635.578-4.801 1.845 2.114 1.739 3.88 3.938 5.152 6.42zM28 23.125c0 4.487-3.097 9.375-10 9.375-6.904 0-10-4.888-10-9.375S11.096 17.5 18 17.5c6.903 0 10 1.138 10 5.625z"/><path fill="#662113" d="M15 24.6c0 1.857-.34 2.4-1.5 2.4s-1.5-.543-1.5-2.4c0-1.856.34-2.399 1.5-2.399s1.5.542 1.5 2.399zm9 0c0 1.857-.34 2.4-1.5 2.4s-1.5-.543-1.5-2.4c0-1.856.34-2.399 1.5-2.399s1.5.542 1.5 2.399z"/><circle fill="#292F33" cx="7" cy="17" r="2"/><circle fill="#292F33" cx="29" cy="17" r="2"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f43a.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f43a.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#66757F" d="M14.858 9.497c.475 2.326-.182 4.236-2.921 4.638-2.741.403-6.7 3.898-8.848-1.798C1.844 9.038 1.092 2.234 2.628 2.009c1.537-.226 11.756 5.162 12.23 7.488z"/><path fill="#CCD6DD" d="M12.784 9.851c.865 1.392-2.205 3.833-3.844 4.568-1.639.736-2.915-.66-4.173-4.1-.55-1.503-1.234-5.532-.634-5.802.599-.268 7.785 3.942 8.651 5.334z"/><path fill="#66757F" d="M21.372 9.497c-.458 2.326.176 4.236 2.818 4.638 2.644.403 6.464 3.898 8.536-1.798 1.201-3.3 1.927-10.103.445-10.329-1.483-.225-11.342 5.163-11.799 7.489z"/><path fill="#CCD6DD" d="M23.373 9.851c-.835 1.392 2.127 3.833 3.708 4.568 1.581.736 2.812-.66 4.026-4.1.531-1.503 1.19-5.532.611-5.802-.577-.268-7.509 3.942-8.345 5.334z"/><path fill="#66757F" d="M32.347 26.912c0-.454-.188-1.091-.407-1.687.585.028 1.519.191 2.77.817-.008-.536-.118-.984-.273-1.393.041.02.075.034.116.055-1.104-3.31-3.309-5.517-3.309-5.517h2.206c-2.331-4.663-4.965-8.015-8.075-9.559-1.39-.873-3.688-1.338-7.373-1.339h-.003c-3.696 0-5.996.468-7.385 1.346-3.104 1.547-5.734 4.896-8.061 9.552H4.76s-2.207 2.206-3.311 5.517l.084-.039c-.201.392-.307.847-.282 1.377 1.263-.632 2.217-.792 2.813-.818-.189.513-.343 1.044-.386 1.475-.123.371-.191.812-.135 1.343 3.207-1.458 4.707-1.25 6.457-.375C11.213 31.29 14.206 34 18.001 34c3.793 0 6.746-2.794 7.958-6.416 1.458-1.25 3.708-.875 6.416.416.066-.413.036-.773-.036-1.093l.008.005z"/><path fill="#CCD6DD" d="M34.553 24.704c-.437-1.313-3.665-3.101-6.973-4.513.26-.664.42-1.401.42-2.191 0-2.761-1.791-5-4-5s-4 2.239-4 5c0 3 4 10-2.001 11.118-5.125-.955-2.954-6.201-2.212-9.58.072-.276.125-.559.158-.853.034-.245.055-.476.055-.685 0-2.761-1.791-5-4-5s-4 2.239-4 5c0 .79.16 1.527.421 2.191-3.308 1.412-6.535 3.2-6.973 4.513C3.655 23.6 4.759 23.6 4.759 23.6s-1.104 2.208-1.104 3.312c2.67-1.78 5.339-2.122 7.429-.452C12.297 30.083 14 33 18.001 30.124c3.999 2.876 5.7-.04 6.912-3.662 2.092-1.673 4.763-1.33 7.434.45 0-1.104-1.103-3.312-1.103-3.312s1.103.001 3.309 1.104z"/><path fill="#292F33" d="M11 17s0-1.5 1.5-1.5S14 17 14 17v1.5s0 1.5-1.5 1.5-1.5-1.5-1.5-1.5V17zm11 0s0-1.5 1.5-1.5S25 17 25 17v1.5s0 1.5-1.5 1.5-1.5-1.5-1.5-1.5V17zm-7.061 9.156c-1.021.208 2.041 3.968 3.062 3.968 1.02 0 4.082-3.76 3.062-3.968s-5.103-.208-6.124 0z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f43b.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f43b.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#C1694F" cx="7" cy="6" r="6"/><circle fill="#C1694F" cx="29" cy="6" r="6"/><circle fill="#E6AAAA" cx="7" cy="6" r="4"/><circle fill="#E6AAAA" cx="29" cy="6" r="4"/><path fill="#C1694F" d="M35 22S33.692 0 18 0 1 22 1 22c0 5.872 4.499 10.323 12.216 11.61C14.311 35.06 16.044 36 18 36s3.688-.94 4.784-2.39C30.501 32.323 35 27.872 35 22z"/><circle fill="#DD2E44" cx="18" cy="30" r="4"/><path fill="#D99E82" d="M18 20S7 23.687 7 27s2.687 6 6 6c2.088 0 3.925-1.067 5-2.685C19.074 31.933 20.912 33 23 33c3.313 0 6-2.687 6-6s-11-7-11-7z"/><path fill="#272B2B" d="M11 17s0-2 2-2 2 2 2 2v2s0 2-2 2-2-2-2-2v-2zm10 0s0-2 2-2 2 2 2 2v2s0 2-2 2-2-2-2-2v-2zm-7.875 8c-1.624 1 3.25 4 4.875 4s6.499-3 4.874-4-8.124-1-9.749 0z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f43f.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f43f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#AD743D" d="M35.432 22.773c-.195.858-.638 1.773-1.022 2.159 1.399-4.418 1.399-9.111-2.25-11.167.112 1.107-.11 1.691-.265 2.153-.21-2.219-.578-3.744-2.158-4.927-1.82-1.363-2.611-.452-.736 3.765 2.2 4.945 1.475 8.603.827 11.216-.038.154-.08.29-.12.439.804-5.765-.989-11.722-6.825-14.915-2.989-1.636-5.211-1.852-5.329-3.037-.135-1.377-1.218-3.698-3.811-5.327.444-1.309-.485-2.787-1.117-2.841-.631-.054-2.024 1.039-2.16 2.528-4.694 1.399-9.492 7.219-9.345 8.397.148 1.177.341 2.638 6.57 3.656 1.104.18 3.995 1.835 4.4 5.779.456 4.44 2.276 8.054 4.712 11.216h-1.73c-4.132 0-4.132 4.132-1.377 4.132h10.928l-.002-.002c.36-.003.788-.029 1.304-.085 6.931-.612 10.792-7.349 9.506-13.139z"/><path fill="#D99E82" d="M11.325 15.279c3.258-.09 4.524-6.049-.682-6.82-.122-1.077-.763-2.614-2.257-2.724-2.348-.173-5.294 2.116-6.099 7.478.881.601 2.467 1.18 5.405 1.661 1.104.18 3.995 1.835 4.4 5.779.531 5.174 2.914 9.224 5.966 12.747.903-.94 1.636-2.325 2.028-4.285 1.378-6.886-7.384-12.458-8.761-13.836z"/><circle fill="#292F33" cx="7.692" cy="9.459" r="1.377"/><path fill="#662113" d="M21.254 13.564c4.065 3.341 6.158 7.296 5.402 12.37-.318 2.143.83 2.933 1.688.902.599-1.423.936-9.887-6.05-14.311-1.859-1.177-1.961.284-1.04 1.039z"/><path fill="#AD743D" d="M13.234 19.676c-1.243-1.243-4.97 0-6.211-2.488-.786-1.572-3.728 1.245-2.485 3.734 1.242 2.483 4.969 2.483 7.454 1.242 2.485-1.242 1.242-2.488 1.242-2.488z"/><path fill="#662113" d="M6.26 20.146c.304 1.49-.383 4.295-1.874 4.6-1.49.304-3.22-2.007-3.524-3.496-.304-1.49.658-2.947 2.147-3.253 1.492-.305 2.946.659 3.251 2.149z"/><path fill="#AD743D" d="M13.907 21.375c-1.635-1.062-5.388 1.148-7.309-1.259-1.215-1.523-3.753 2.209-1.832 4.615 1.921 2.405 5.962 1.543 8.368-.378 2.407-1.92.773-2.978.773-2.978z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f441.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f441.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#E1E8ED" d="M35.059 18c0 3.304-7.642 11-17.067 11C8.566 29 .925 22.249.925 18c0-3.314 34.134-3.314 34.134 0z"/><path fill="#292F33" d="M35.059 18H.925c0-3.313 7.642-11 17.067-11s17.067 7.686 17.067 11z"/><path fill="#F5F8FA" d="M33.817 18c0 2.904-7.087 9.667-15.826 9.667-8.74 0-15.825-5.935-15.825-9.667 0-2.912 7.085-9.666 15.825-9.666C26.73 8.333 33.817 15.088 33.817 18z"/><circle fill="#8B5E3C" cx="18" cy="18" r="8.458"/><circle fill="#292F33" cx="18" cy="18" r="4.708"/><circle fill="#F5F8FA" cx="14.983" cy="15" r="2"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f451.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f451.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4900C" d="M14.174 17.075L6.75 7.594l-3.722 9.481z"/><path fill="#F4900C" d="M17.938 5.534l-6.563 12.389H24.5z"/><path fill="#F4900C" d="M21.826 17.075l7.424-9.481 3.722 9.481z"/><path fill="#FFCC4D" d="M28.669 15.19L23.887 3.523l-5.88 11.668-.007.003-.007-.004-5.88-11.668L7.331 15.19C4.197 10.833 1.28 8.042 1.28 8.042S3 20.75 3 33h30c0-12.25 1.72-24.958 1.72-24.958s-2.917 2.791-6.051 7.148z"/><circle fill="#5C913B" cx="17.957" cy="22" r="3.688"/><circle fill="#981CEB" cx="26.463" cy="22" r="2.412"/><circle fill="#DD2E44" cx="32.852" cy="22" r="1.986"/><circle fill="#981CEB" cx="9.45" cy="22" r="2.412"/><circle fill="#DD2E44" cx="3.061" cy="22" r="1.986"/><path fill="#FFAC33" d="M33 34H3c-.552 0-1-.447-1-1s.448-1 1-1h30c.553 0 1 .447 1 1s-.447 1-1 1zm0-3.486H3c-.552 0-1-.447-1-1s.448-1 1-1h30c.553 0 1 .447 1 1s-.447 1-1 1z"/><circle fill="#FFCC4D" cx="1.447" cy="8.042" r="1.407"/><circle fill="#F4900C" cx="6.75" cy="7.594" r="1.192"/><circle fill="#FFCC4D" cx="12.113" cy="3.523" r="1.784"/><circle fill="#FFCC4D" cx="34.553" cy="8.042" r="1.407"/><circle fill="#F4900C" cx="29.25" cy="7.594" r="1.192"/><circle fill="#FFCC4D" cx="23.887" cy="3.523" r="1.784"/><circle fill="#F4900C" cx="17.938" cy="5.534" r="1.784"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f455.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f455.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3B88C3" d="M11 2C8 2 0 4 0 6s1 7 2 9 8 0 9-1 2-12 0-12z"/><path fill="#55ACEE" d="M1 4.717C.352 5.088 0 5.565 0 6c0 2 1 7 2 9 .281.562 1.039.777 2 .85C3 13 2 9 1 4.717z"/><path fill="#3B88C3" d="M25 2c3 0 11 2 11 4s-1 7-2 9-8 0-9-1-2-12 0-12z"/><path fill="#55ACEE" d="M35 4.717c.648.371 1 .848 1 1.283 0 2-1 7-2 9-.281.562-1.039.777-2 .85C33 13 34 9 35 4.717z"/><path fill="#3B88C3" d="M25 2h-1.068C23.515 3.695 21.021 5 18 5s-5.515-1.305-5.932-3H11C8.791 2 6 3.791 6 6c0 0 0 20-1 24s1.791 4 4 4h18c2.209 0 5 0 4-4S30 6 30 6c0-2.209-2.791-4-5-4z"/><path fill="#55ACEE" d="M18 7c3.866 0 7-2.239 7-5h-1.068C23.515 3.695 21.021 5 18 5s-5.515-1.305-5.932-3H11c0 2.761 3.134 5 7 5z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f457.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f457.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#55ACEE" d="M22.42 11.847L26 2s-.398.002-1 .034V0h-2v2.219c-2.271.302-5 1.028-5 2.781 0-1.753-2.729-2.479-5-2.781V0h-2v2.034C10.398 2.002 10 2 10 2l3.581 9.847L1 25.643S7 36 18 36s17-10.357 17-10.357L22.42 11.847z"/><path fill="#BBDDF5" d="M13 11h10v2H13z"/><path fill="#3B88C3" d="M15 13s-6.734 8.106-5.051 9.006C11.633 22.907 15 13 15 13zm6.096 0s6.734 8.105 5.051 9.007c-1.684.9-5.051-9.007-5.051-9.007zM18 13s-2 11 0 11 0-11 0-11z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f45f.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f45f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#8899A6" d="M24.161 10.166l-.676-2.034c-.134-.302-.49-.43-.781-.275-.918.487-2.944 1.318-3.684 1.575 1.419.505 3.499 1.503 4.511 1.396.384-.04.787-.308.63-.662zm10.21 24.574c-.399.225-6.509 1.692-18.621-8.906C12.083 22.625 1.2 12.879 1.341 12.547c0 0-.329.36-.602.736-.197.271-.319.559-.274.848.31 1.967 3.112 3.819 6.962 6.781l.549.422.363.279c.588.452 2.316 1.815 4.329 3.403 2.753 2.171 8.284 6.49 8.445 6.61 2.12 1.574 4.635 2.817 7.667 3.672 3.838 1.081 5.591-.558 5.591-.558z"/><path fill="#BE1931" d="M34.371 34.74s.477-.219.97-.918c.493-.699.79-1.924.045-3.248-.745-1.323-3.456-5.121-4.345-6.671-.433-.755-.297-1.447-1.125-2.835 0 0-3.164-5.523-3.864-6.723-1.497-2.567-.84-3.902-1.837-4.668-.665-.511-7.306.166-9.327-1.389-1.397-1.074-1.418-4.428-2.003-5.526-.466-.875-2.02-.475-3.087.11S5.825 6.661 5.123 7.574s-1.601 1.909-1.679 2.928l-.079 1.018S19.226 26.67 23.74 29.726c7.697 5.211 10.631 5.014 10.631 5.014z"/><path fill="#A0041E" d="M24.74 10.464c-.103-.314-.249-.575-.525-.788-.665-.511-7.306.167-9.327-1.389-1.397-1.074-1.418-4.429-2.003-5.526-.182-.341-.532-.485-.952-.502.69 1.4.621 5.574 2.312 6.874 2.038 1.569 8.016 1.133 10.495 1.331z"/><path fill="#DD2E44" d="M13.265 17.873c.505-1.472 1.044-4.915.074-6.962-.909-1.917-4.441-5.955-5.112-6.72C6.987 5.296 5.33 7.229 4.83 7.879c-.66.858-1.455 1.822-1.494 2.801-.014.352.087.51.087.51s9.822 6.741 9.842 6.683z"/><path fill="#CCD6DD" d="M23.107 14.256c-.335 0-.65-.202-.78-.533-.169-.431.043-.917.474-1.087l1.823-.715c.43-.167.919.043 1.087.475.169.431-.043.917-.474 1.087l-1.823.715c-.101.039-.204.058-.307.058zm1.347 3.063c-.291 0-.573-.151-.728-.421-.231-.401-.093-.914.309-1.145l1.793-1.031c.402-.231.915-.092 1.145.309.231.401.093.914-.309 1.145l-1.793 1.031c-.132.076-.275.112-.417.112zm1.821 2.752c-.256 0-.509-.117-.673-.338-.277-.371-.2-.896.171-1.173l1.514-1.129c.371-.277.897-.201 1.173.171.277.372.2.897-.171 1.174l-1.514 1.128c-.15.113-.326.167-.5.167zm1.945 2.571c-.242 0-.482-.104-.648-.307-.294-.358-.241-.887.116-1.181l1.155-.948c.357-.293.887-.242 1.181.116s.241.887-.116 1.181l-1.155.948c-.157.128-.346.191-.533.191zM3.2 10.76s.675.612 1.425.726c.75.114 2.079.95 2.993 1.653.914.703 4.399 3.292 6.534 5.444s5.495 6.58 6.801 7.863c1.306 1.282 3.413 3.193 5.214 4.347s3.455 2.131 4.516 2.686c1.368.716 2.632 1.144 3.688 1.261-.368.216-2.313.946-5.69-.205-3.228-1.101-5.332-2.294-7.071-3.586-1.739-1.292-11.208-8.808-12.759-10.001-1.551-1.193-6.188-4.728-6.92-5.787-1.04-1.504-.99-2.162-.788-2.424.492-.641 1.531-2.382 2.057-1.977z"/><path fill="#DD2E44" d="M35.386 30.574c-.745-1.323-3.456-5.121-4.345-6.671-.174-.304-.257-.599-.347-.931-.091.034-.189.054-.269.109-1.154.792-1.148 3.185.571 5.687 1.378 2.006 3.59 3.552 4.832 3.576.026-.538-.088-1.142-.442-1.77z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f47d.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f47d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M35 17c0 9.389-13.223 19-17 19-3.778 0-17-9.611-17-19S8.611 0 18 0s17 7.611 17 17z"/><path fill="#292F33" d="M13.503 14.845c3.124 3.124 4.39 6.923 2.828 8.485-1.562 1.562-5.361.297-8.485-2.828-3.125-3.124-4.391-6.923-2.828-8.485s5.361-.296 8.485 2.828zm8.994 0c-3.124 3.124-4.39 6.923-2.828 8.485 1.562 1.562 5.361.297 8.485-2.828 3.125-3.125 4.391-6.923 2.828-8.485-1.562-1.562-5.361-.297-8.485 2.828zM18 31c-2.347 0-3.575-1.16-3.707-1.293-.391-.391-.391-1.023 0-1.414.387-.387 1.013-.391 1.404-.01.051.047.806.717 2.303.717 1.519 0 2.273-.689 2.305-.719.398-.374 1.027-.363 1.408.029.379.393.38 1.011-.006 1.396C21.575 29.84 20.347 31 18 31z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f484.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f484.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EA596E" d="M16.522.232c2.246 0 4.832 1.375 6.703 3.249C25.098 5.355 27 7.408 27 9.479v17.204l-15.974.031V9.582c-.093-1.506 1.075-9.35 5.496-9.35"/><path fill="#DD2E44" d="M19 11.378V28c0 1.104.896 0 2 0v2c1.104 0 2-.896 2-2V12.333c-1.258-.104-2.65-.262-4-.955z"/><path fill="#F4ABBA" d="M22.072 3.455c2.664 2.391 4.277 5.236 2.961 6.699-1.314 1.463-5.06.991-7.721-1.4-2.661-2.39-3.753-5.516-2.439-6.979 1.316-1.463 4.538-.712 7.199 1.68"/><path fill="#FFCC4D" d="M30 34c0 1.104-.896 2-2 2H10c-1.104 0-2-.896-2-2v-6c0-1.104.896-2 2-2h18c1.104 0 2 .896 2 2v6z"/><path fill="#FFAC33" d="M31 34c0 1.104-.896 2-2 2H9c-1.104 0-2-.896-2-2v-1c0-1.104.896-2 2-2h20c1.104 0 2 .896 2 2v1z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f488.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f488.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#CCD6DD" cx="18" cy="6" r="6"/><path fill="#FFF" d="M11 12h14v21H11z"/><path fill="#DD2E44" d="M11 28.487L20.251 33H25v-2.134l-14-6.83z"/><path fill="#55ACEE" d="M11 19.585l14 6.83v-4.45l-14-6.831z"/><path fill="#DD2E44" d="M13.697 12L25 17.514V12z"/><path fill="#99AAB5" d="M27 11c0 1.104-.896 2-2 2H11c-1.104 0-2-.896-2-2s.896-2 2-2h14c1.104 0 2 .896 2 2zm0 23c0 1.104-.896 2-2 2H11c-1.104 0-2-.896-2-2s.896-2 2-2h14c1.104 0 2 .896 2 2z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f48d.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f48d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#9AAAB4" d="M18 12c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm0 20c-4.418 0-8-3.582-8-8s3.582-8 8-8 8 3.582 8 8-3.582 8-8 8z"/><path fill="#5DADEC" d="M29 5l-4-5H11L7 5l11 9z"/><path fill="#8CCAF7" d="M29 5l-4-5H11L7 5h11z"/><path fill="#5DADEC" d="M29 5l-4-5h-7v5h1z"/><path fill="#8CCAF7" d="M18 5h11l-11 9z"/><path fill="#9AAAB4" d="M25 13c0 1.657-1.343 3-3 3h-8c-1.657 0-3-1.343-3-3s1.343-3 3-3h8c1.657 0 3 1.343 3 3z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f48e.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f48e.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#BDDDF4" d="M13 3H7l-7 9h10z"/><path fill="#5DADEC" d="M36 12l-7-9h-6l3 9z"/><path fill="#4289C1" d="M26 12h10L18 33z"/><path fill="#8CCAF7" d="M10 12H0l18 21zm3-9l-3 9h16l-3-9z"/><path fill="#5DADEC" d="M18 33l-8-21h16z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f490.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f490.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3E721D" d="M35.01 30.967c-1.385-2.226-3.34-5.001-5.265-7.888-5.141-8.772-1.513-18.411-2.893-21.511-.56-1.259-3.879.966-5.555 4.563-.356-.106-.747-.156-1.17-.148.155-2.397.293-4.31-.193-5.403-.71-1.599-5.867 2.418-6.463 7.729-1.848 1.006-3.223 1.957-3.223 1.957s-.95 1.375-1.954 3.223c-5.312.594-9.331 5.753-7.732 6.464 1.097.488 3.015.349 5.421.192-.006.42.046.807.154 1.159-3.61 1.674-5.848 5.006-4.586 5.567 3.282 1.46 13.9-2.701 23.053 3.892.288.207.479.322.601.371 2.117 1.433 4.113 2.801 5.791 3.846 2.875 1.79 3.962-.007 3.962-.007s1.843-1.13.052-4.006z"/><path fill="#77B255" d="M35.029 34.828c.369-.545.338-1.278-.144-1.761 0 0-11.86-15.812-13.836-23.719-1.977-7.906-4.397-5.737-3.689.474.325 2.848 1.817 6.14 3.806 9.385l-8.941-8.941c-.546-.546-1.431-.546-1.977 0-.545.546-.546 1.431 0 1.977l8.94 8.941c-3.246-1.987-6.536-3.48-9.383-3.805-6.211-.709-8.381 1.712-.475 3.688 7.907 1.976 23.719 13.836 23.719 13.836.481.482 1.215.513 1.758.146.034.007.065.01.078-.004.025-.025.034-.059.058-.086.025-.022.059-.031.083-.056.014-.013.01-.044.003-.075z"/><path fill="#DD2E44" d="M13.771 6.871c1.807 1.806 1.721 4.819-.188 6.73-1.91 1.91-3.771.842-5.577-.964S5.132 8.97 7.042 7.06c1.91-1.91 4.924-1.995 6.729-.189z"/><path fill="#EA596E" d="M12.618 8.024c1.807 1.807 2.874 3.666.965 5.576-1.91 1.91-4.923 1.995-6.729.188-1.806-1.806-.964-5.576-.902-7.82.074-2.627 4.487-.124 6.666 2.056z"/><path fill="#DD2E44" d="M22.665 15.766c1.808 1.807 1.722 4.819-.188 6.729-1.91 1.91-3.77.842-5.576-.964-1.806-1.806-2.874-3.667-.964-5.577 1.91-1.91 4.924-1.994 6.728-.188z"/><path fill="#EA596E" d="M21.514 16.919c1.806 1.807 2.873 3.666.964 5.576-1.91 1.91-4.923 1.995-6.729.188-1.806-1.806-.964-5.575-.901-7.819.073-2.628 4.485-.125 6.666 2.055z"/><path fill="#F4900C" d="M11.203 16.11c2.369 1.052 3.327 3.876 2.139 6.308-1.187 2.434-3.354 2.085-5.723 1.033-2.37-1.052-4.045-2.407-2.857-4.841 1.188-2.432 4.071-3.551 6.441-2.5z"/><path fill="#FFCC4D" d="M10.486 17.578c2.368 1.052 4.043 2.408 2.855 4.84-1.187 2.434-4.071 3.553-6.439 2.501-2.37-1.051-2.857-4.84-3.57-6.943-.836-2.463 4.294-1.666 7.154-.398z"/><path fill="#F4900C" d="M24.93 7.012c1.143 2.447.082 5.359-2.365 6.5-2.446 1.14-3.88-.607-5.023-3.056-1.142-2.449-1.56-4.671.887-5.813 2.448-1.141 5.358-.081 6.501 2.369z"/><path fill="#FFCC4D" d="M23.453 7.7c1.141 2.449 1.559 4.671-.889 5.812-2.446 1.14-5.359.081-6.501-2.368-1.141-2.448.889-5.812 1.676-7.977.925-2.54 4.334 1.578 5.714 4.533z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f4a1.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f4a1.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFD983" d="M29 11.06c0 6.439-5 7.439-5 13.44 0 3.098-3.123 3.359-5.5 3.359-2.053 0-6.586-.779-6.586-3.361C11.914 18.5 7 17.5 7 11.06 7 5.029 12.285.14 18.083.14 23.883.14 29 5.029 29 11.06z"/><path fill="#CCD6DD" d="M22.167 32.5c0 .828-2.234 2.5-4.167 2.5-1.933 0-4.167-1.672-4.167-2.5 0-.828 2.233-.5 4.167-.5 1.933 0 4.167-.328 4.167.5z"/><path fill="#FFCC4D" d="M22.707 10.293c-.391-.391-1.023-.391-1.414 0L18 13.586l-3.293-3.293c-.391-.391-1.023-.391-1.414 0s-.391 1.023 0 1.414L17 15.414V26c0 .553.448 1 1 1s1-.447 1-1V15.414l3.707-3.707c.391-.391.391-1.023 0-1.414z"/><path fill="#99AAB5" d="M24 31c0 1.104-.896 2-2 2h-8c-1.104 0-2-.896-2-2v-6h12v6z"/><path fill="#CCD6DD" d="M11.999 32c-.48 0-.904-.347-.985-.836-.091-.544.277-1.06.822-1.15l12-2c.544-.098 1.06.277 1.15.822.091.544-.277 1.06-.822 1.15l-12 2c-.055.01-.111.014-.165.014zm0-4c-.48 0-.904-.347-.985-.836-.091-.544.277-1.06.822-1.15l12-2c.544-.097 1.06.277 1.15.822.091.544-.277 1.06-.822 1.15l-12 2c-.055.01-.111.014-.165.014z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f4a7.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f4a7.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5DADEC" d="M28.344 17.768L18.148 1.09 8.7 17.654c-2.2 3.51-2.392 8.074-.081 11.854 3.285 5.373 10.363 7.098 15.811 3.857 5.446-3.24 7.199-10.22 3.914-15.597z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f4b3.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f4b3.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFAC33" d="M4 5C1.791 5 0 6.791 0 9v18c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4V9s0-4-4-4H4z"/><path fill="#292F33" d="M0 10h36v5H0z"/><path fill="#F4F7F9" d="M4 19h28v6H4z"/><path fill="#8899A6" d="M19 24c-1.703 0-2.341-1.21-2.469-1.801-.547.041-1.08.303-1.805.764C13.961 23.449 13.094 24 12 24c-1.197 0-1.924-.675-2-2-.003-.056.038-.188.021-.188-1.858 0-3.202 1.761-3.215 1.779-.195.267-.499.409-.806.409-.206 0-.413-.063-.591-.194-.445-.327-.542-.953-.215-1.398C5.271 22.303 7.11 20 10 20c1.937 0 2.048 1.375 2.078 1.888l.007.109c.486-.034.991-.354 1.57-.723.961-.61 2.153-1.371 3.75-.962.871.223 1.007 1.031 1.059 1.336.013.076.032.19.049.226.007 0 .146.091.577.13.82.075 1.721-.279 2.675-.653.988-.388 2.01-.788 3.111-.788 3.389 0 4.767 1.635 4.913 1.821.34.435.264 1.063-.171 1.403-.175.137-.381.207-.587.213-.307.009-.613-.123-.817-.384-.024-.027-.93-1.054-3.337-1.054-.723 0-1.528.315-2.381.649-1.009.396-2.434.789-3.496.789z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f4bf.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f4bf.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#8899A6" d="M36 18c0 9.941-8.059 18-18 18S0 27.941 0 18 8.059 0 18 0s18 8.059 18 18zm-18-3c-1.657 0-3 1.343-3 3s1.343 3 3 3 3-1.343 3-3-1.343-3-3-3z"/><path fill="#CCD6DD" d="M13.288 17.476c.122-1.104.598-2.101 1.343-2.846L6.686 6.686C4.182 9.19 2.51 12.521 2.102 16.233l11.186 1.243zm9.425 1.048c-.122 1.104-.598 2.101-1.343 2.846l7.944 7.944c2.504-2.504 4.176-5.835 4.584-9.547l-11.185-1.243z"/><path fill="#F5F8FA" d="M18.527 22.712l1.251 11.183c3.707-.41 7.034-2.081 9.536-4.582l-7.944-7.944c-.745.744-1.741 1.22-2.843 1.343zm-1.023-9.427L16.325 2.089c-3.749.39-7.114 2.073-9.639 4.598l7.944 7.944c.752-.751 1.759-1.229 2.874-1.346z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f4cc.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f4cc.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#BE1931" d="M23.651 23.297L12.702 12.348l9.386-7.821 9.385 9.385z"/><path fill="#DD2E44" d="M34.6 13.912c-1.727 1.729-4.528 1.729-6.255 0l-6.257-6.256c-1.729-1.727-1.729-4.53 0-6.258 1.726-1.727 4.528-1.727 6.257 0L34.6 7.656c1.728 1.727 1.728 4.529 0 6.256z"/><path fill="#99AAB5" d="M14 17.823S-.593 35.029.188 35.813C.97 36.596 18.177 22 18.177 22L14 17.823z"/><path fill="#DD2E44" d="M25.215 27.991c-1.726 1.729-4.528 1.729-6.258 0L8.009 17.041c-1.727-1.728-1.727-4.528 0-6.256 1.728-1.729 4.53-1.729 6.258 0l10.948 10.949c1.728 1.729 1.728 4.528 0 6.257z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f4ce.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f4ce.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#99AAB5" d="M35.354 25.254c.217-2.391-.513-4.558-2.057-6.102L17.033 2.89c-.391-.391-1.024-.391-1.414 0-.391.391-.391 1.024 0 1.414l16.264 16.263c1.116 1.117 1.642 2.717 1.479 4.506-.159 1.748-.957 3.456-2.188 4.686-1.23 1.23-2.938 2.027-4.685 2.187-1.781.161-3.39-.362-4.506-1.479L3.598 12.082c-.98-.98-1.059-2.204-.953-3.058.15-1.196.755-2.401 1.66-3.307 1.7-1.7 4.616-2.453 6.364-.707l14.85 14.849c1.119 1.12.026 2.803-.708 3.536-.733.735-2.417 1.826-3.535.707L9.962 12.789c-.391-.391-1.024-.39-1.414 0-.391.391-.391 1.023 0 1.414l11.313 11.314c1.859 1.858 4.608 1.05 6.363-.707 1.758-1.757 2.565-4.507.708-6.364L12.083 3.597c-2.62-2.62-6.812-1.673-9.192.706C1.677 5.517.864 7.147.661 8.775c-.229 1.833.312 3.509 1.523 4.721l18.384 18.385c1.365 1.365 3.218 2.094 5.281 2.094.27 0 .544-.013.82-.037 2.206-.201 4.362-1.209 5.918-2.765 1.558-1.556 2.565-3.713 2.767-5.919z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f4d5.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f4d5.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#A0041E" d="M35 26c0 2.209-1.791 4-4 4H5c-2.209 0-4-1.791-4-4V6.313C1 4.104 6.791 0 9 0h20.625C32.719 0 35 2.312 35 5.375V26z"/><path fill="#CCD6DD" d="M33 30c0 2.209-1.791 4-4 4H7c-2.209 0-4-1.791-4-4V6c0-4.119-.021-4 5-4h21c2.209 0 4 1.791 4 4v24z"/><path fill="#E1E8ED" d="M31 31c0 1.657-1.343 3-3 3H4c-1.657 0-3-1.343-3-3V7c0-1.657 1.343-3 3-3h24c1.657 0 3 1.343 3 3v24z"/><path fill="#BE1931" d="M31 32c0 2.209-1.791 4-4 4H6c-2.209 0-4-1.791-4-4V10c0-2.209 1.791-4 4-4h21c2.209 0 4 1.791 4 4v22z"/><path fill="#DD2E44" d="M29 32c0 2.209-1.791 4-4 4H6c-2.209 0-4-1.791-4-4V12c0-2.209 1.791-4 4-4h19.335C27.544 8 29 9.456 29 11.665V32z"/><path fill="#A0041E" d="M6 6C4.312 6 4.269 4.078 5 3.25 5.832 2.309 7.125 2 9.438 2H11V0H8.281C4.312 0 1 2.5 1 5.375V32c0 2.209 1.791 4 4 4h2V6H6z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f4e1.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f4e1.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#99AAB5" d="M10.746 21.521c1.668 0 7.43 4.345 7.427 9.701.003 5.358-14.853 5.358-14.854-.001.001-5.356 5.759-9.7 7.427-9.7z"/><path fill="#CCD6DD" d="M8.541 25.182c8.839 8.84 17.337 5.163 20.033 2.469 2.695-2.696-.158-9.916-6.371-16.129C15.988 5.308 8.767 2.455 6.072 5.15 3.377 7.845-.299 16.343 8.541 25.182z"/><path fill="#66757F" d="M12.443 21.278c6.214 6.214 13.434 9.066 16.13 6.372 2.695-2.696-.158-9.916-6.371-16.129C15.988 5.308 8.767 2.455 6.072 5.15c-2.695 2.695.158 9.916 6.371 16.128z"/><path fill="#CCD6DD" d="M22.202 11.521c.443.444.443 1.163 0 1.607l-7.233 7.231c-.444.444-1.163.444-1.607 0-.444-.443-.444-1.163 0-1.607l7.232-7.231c.445-.444 1.163-.444 1.608 0z"/><path fill="#CCD6DD" d="M23.809 9.915c.887.887.887 2.327 0 3.214-.888.888-2.327.888-3.215 0-.887-.887-.887-2.327 0-3.214.887-.889 2.327-.889 3.215 0z"/><path fill="#FFAC33" d="M28.287 13.078l-.051-.001c-.552-.027-.976-.497-.949-1.048.001-.016.063-2.157-1.58-3.8-1.638-1.637-3.772-1.579-3.801-1.58-.55.033-1.021-.398-1.049-.948-.027-.552.397-1.022.949-1.049.122-.012 3.028-.123 5.314 2.163 2.287 2.288 2.17 5.191 2.164 5.314-.026.533-.468.949-.997.949z"/><path fill="#FFAC33" d="M31.846 12.522c-.109 0-.221-.019-.33-.057-.521-.183-.796-.753-.613-1.274.034-.107.893-2.876-2.195-5.963-3.126-3.127-6.126-2.414-6.252-2.382-.529.137-1.077-.184-1.216-.715-.14-.531.172-1.074.701-1.217.17-.046 4.205-1.077 8.181 2.901 4.016 4.014 2.726 7.876 2.668 8.039-.144.41-.531.668-.944.668z"/><path fill="#66757F" d="M10.914 32.521c-2.9 0-5.543-.658-7.566-1.737-.008.146-.029.29-.029.438.001 5.359 14.857 5.359 14.854.001 0-.09-.015-.177-.018-.266-1.977.976-4.496 1.564-7.241 1.564z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f4e2.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f4e2.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#BE1931" d="M12.908 30.75c-.276 2.209-2.291 3-4.5 3s-3.776-1.791-3.5-4l1-9c.276-2.209 2.291-4 4.5-4s6.468 0 3.5 4-1 10-1 10z"/><path fill="#CCD6DD" d="M35.825 14.75c0 6.902-1.544 12.5-3.45 12.5-1.905 0-20.45-5.598-20.45-12.5 0-6.903 18.545-12.5 20.45-12.5 1.906 0 3.45 5.597 3.45 12.5z"/><ellipse fill="#66757F" cx="32.375" cy="14.75" rx="3.45" ry="12.5"/><path fill="#DD2E44" d="M17.925 21.75l-14-1c-5 0-5-12 0-12l14-1c-3 3-3 11 0 14z"/><ellipse fill="#99AAB5" cx="31.325" cy="14.75" rx="1.5" ry="4.348"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f4fb.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f4fb.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M2.697 12.389c-.391.391-.391 1.023 0 1.414s1.023.391 1.414 0l9.192-9.192c.391-.391.391-1.023 0-1.414s-1.023-.391-1.414 0l-9.192 9.192z"/><path fill="#99AAB5" d="M36 32c0 4-4 4-4 4H4s-4 0-4-4V14s0-4 4-4h28c4 0 4 4 4 4v18z"/><path fill="#292F33" d="M15.561 3.061c-.391.391-1.023.391-1.414 0l-.707-.707c-.391-.391-.391-1.023 0-1.414s1.023-.391 1.414 0l.707.707c.39.39.39 1.023 0 1.414z"/><circle fill="#292F33" cx="27.5" cy="18.5" r="5.5"/><circle fill="#292F33" cx="27.5" cy="29.5" r="3.5"/><circle fill="#66757F" cx="27.5" cy="18.5" r="3.5"/><circle fill="#66757F" cx="27.5" cy="29.5" r="1.5"/><g fill="#292F33"><circle cx="10.5" cy="25.5" r="1.5"/><circle cx="5.5" cy="25.5" r="1.5"/><circle cx="10.5" cy="20.5" r="1.5"/><circle cx="15.5" cy="20.5" r="1.5"/><circle cx="15.5" cy="25.5" r="1.5"/><circle cx="15.5" cy="30.5" r="1.5"/><circle cx="5.5" cy="30.5" r="1.5"/><circle cx="5.5" cy="20.5" r="1.5"/><circle cx="10.5" cy="15.5" r="1.5"/><circle cx="15.5" cy="15.5" r="1.5"/><circle cx="5.5" cy="15.5" r="1.5"/><circle cx="10.5" cy="30.5" r="1.5"/></g></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f50b.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f50b.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36" xml:space="preserve"><path fill="#77B255" d="M30 32.7c0 1.657-5.373 3.3-12 3.3S6 34.357 6 32.7c0-1.657 5.373-2.7 12-2.7s12 1.043 12 2.7z"/><path fill="#77B255" d="M6 3h24v29.7H6z"/><ellipse fill="#5C913B" cx="18" cy="3" rx="12" ry="3"/><path fill="#FFF" d="M21.956 12.788c.091.544-.321 1.066-.922 1.136-.676.079-1.355.121-2.035.147V16a1 1 0 0 1-2 0v-1.93a26.188 26.188 0 0 1-2.035-.147c-.601-.07-1.012-.591-.922-1.136a1.042 1.042 0 0 1 1.152-.851c.6.07 1.202.109 1.804.133V10a1 1 0 0 1 2 0v2.07a24.781 24.781 0 0 0 1.804-.133 1.042 1.042 0 0 1 1.154.851zm-1.652 17.746a21.119 21.119 0 0 1-4.607 0 1.048 1.048 0 0 0-1.153.854c-.091.544.326 1.067.934 1.134 1.676.184 3.368.184 5.044 0 .609-.067 1.026-.59.934-1.134a1.047 1.047 0 0 0-1.152-.854z"/><ellipse fill="#CCD6DD" cx="18" cy="3" rx="10" ry="2"/><path fill="#99AAB5" d="M14 1v1.5c0 .552 1.791 1 4 1s4-.448 4-1V1h-8z"/><ellipse fill="#CCD6DD" cx="18" cy="1" rx="4" ry="1"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f511.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f511.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1694F" d="M32.614 3.414C28.31-.89 21.332-.89 17.027 3.414c-3.391 3.392-4.098 8.439-2.144 12.535l-3.916 3.915c-.64.641-.841 1.543-.625 2.359l-1.973 1.972c-.479-.48-1.252-.48-1.731 0l-1.731 1.732c-.479.479-.479 1.253 0 1.732l-.867.864c-.479-.478-1.253-.478-1.731 0l-.866.867c-.479.479-.479 1.253 0 1.732.015.016.036.02.051.033-.794 1.189-.668 2.812.382 3.863 1.195 1.195 3.134 1.195 4.329 0L20.08 21.144c4.097 1.955 9.144 1.247 12.535-2.146 4.302-4.302 4.302-11.28-.001-15.584zm-1.731 5.195c-.957.956-2.509.956-3.464 0-.956-.956-.956-2.507 0-3.464.955-.956 2.507-.956 3.464 0 .956.957.956 2.508 0 3.464z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f525.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f525.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4900C" d="M35 19c0-2.062-.367-4.039-1.04-5.868-.46 5.389-3.333 8.157-6.335 6.868-2.812-1.208-.917-5.917-.777-8.164.236-3.809-.012-8.169-6.931-11.794 2.875 5.5.333 8.917-2.333 9.125-2.958.231-5.667-2.542-4.667-7.042-3.238 2.386-3.332 6.402-2.333 9 1.042 2.708-.042 4.958-2.583 5.208-2.84.28-4.418-3.041-2.963-8.333C2.52 10.965 1 14.805 1 19c0 9.389 7.611 17 17 17s17-7.611 17-17z"/><path fill="#FFCC4D" d="M28.394 23.999c.148 3.084-2.561 4.293-4.019 3.709-2.106-.843-1.541-2.291-2.083-5.291s-2.625-5.083-5.708-6c2.25 6.333-1.247 8.667-3.08 9.084-1.872.426-3.753-.001-3.968-4.007C7.352 23.668 6 26.676 6 30c0 .368.023.73.055 1.09C9.125 34.124 13.342 36 18 36s8.875-1.876 11.945-4.91c.032-.36.055-.722.055-1.09 0-2.187-.584-4.236-1.606-6.001z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f526.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f526.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#66757F" d="M23 17l1-1s1-1 2 0l2 2s1 1 0 2l-1 1-4-4z"/><path fill="#8899A6" d="M34.879 27.879c1.166 1.166 1.166 3.076 0 4.242l-2.758 2.758c-1.166 1.166-3.076 1.166-4.242 0L9.121 16.121c-1.167-1.166-1.167-3.076 0-4.242l2.758-2.758c1.167-1.167 3.076-1.167 4.242 0l18.758 18.758z"/><path fill="#66757F" d="M20.879 10.879c1.166 1.167 1.166 3.076 0 4.242l-5.758 5.758c-1.167 1.166-3.076 1.166-4.242 0L6 16s-1-1 0-2l8-8c1-1 2 0 2 0l4.879 4.879z"/><path fill="#8899A6" d="M7 17L17 7l2 2L9 19z"/><path d="M11.001 6c-.367 0-.72-.202-.896-.553l-2-4C7.858.953 8.059.353 8.553.105c.495-.248 1.095-.047 1.342.447l2 4c.247.494.047 1.095-.447 1.342-.144.072-.297.106-.447.106zm-6.002 6c-.15 0-.303-.034-.446-.106l-4-2c-.494-.247-.695-.847-.448-1.341.247-.494.847-.695 1.342-.447l4 2c.494.247.694.848.447 1.342-.175.35-.528.552-.895.552zM8 9c-.256 0-.512-.098-.707-.293l-4-4c-.391-.391-.391-1.023 0-1.414s1.023-.391 1.414 0l4 4c.391.391.391 1.023 0 1.414C8.512 8.902 8.256 9 8 9z" fill="#FFCC4D"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f52c.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f52c.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><g fill="#66757F"><path d="M19.78 21.345l-6.341-6.342-.389 4.38 2.35 2.351z"/><path d="M15.4 22.233c-.132 0-.259-.053-.354-.146l-2.351-2.351c-.104-.104-.158-.25-.145-.397l.389-4.38c.017-.193.145-.359.327-.425.182-.067.388-.021.524.116l6.341 6.342c.138.138.183.342.116.524s-.232.31-.426.327l-4.379.389-.042.001zm-1.832-3.039l2.021 2.021 3.081-.273-4.828-4.828-.274 3.08z"/></g><path fill="#8899A6" d="M31 32h-3c0-3.314-2.63-6-5.875-6-3.244 0-5.875 2.686-5.875 6H8.73c0-1.104-.895-2-2-2-1.104 0-2 .896-2 2-1.104 0-2 .896-2 2s.896 2 2 2H31c1.104 0 2-.896 2-2s-.896-2-2-2z"/><path fill="#8899A6" d="M20 10v4c3.866 0 7 3.134 7 7s-3.134 7-7 7h-8.485c2.018 2.443 5.069 4 8.485 4 6.075 0 11-4.925 11-11s-4.925-11-11-11z"/><path fill="#67757F" d="M16.414 30.414c-.781.781-2.047.781-2.828 0l-9.899-9.9c-.781-.781-.781-2.047 0-2.828.781-.781 2.047-.781 2.829 0l9.899 9.9c.78.781.78 2.047-.001 2.828zm-7.225-1.786c.547-.077 1.052.304 1.129.851.077.547-.305 1.053-.851 1.129l-5.942.834c-.547.077-1.052-.305-1.129-.851-.077-.547.305-1.053.852-1.13l5.941-.833z"/><path fill="#66757F" d="M27.341 2.98l4.461 4.461-3.806 3.807-4.461-4.461z"/><path fill="#AAB8C2" d="M34.037 7.083c-.827.827-2.17.827-2.997 0l-3.339-3.34c-.827-.826-.827-2.169 0-2.996.827-.826 2.17-.826 2.995 0l3.342 3.34c.826.827.826 2.168-.001 2.996zm-14.56 15.026l-6.802-6.803c-.389-.389-.389-1.025 0-1.414l9.858-9.858c.389-.389 1.025-.389 1.414 0l6.801 6.803c.389.389.389 1.025 0 1.414l-9.858 9.858c-.388.389-1.024.389-1.413 0z"/><path fill="#E1E8ED" d="M13.766 12.8l1.638-1.637 8.216 8.216-1.638 1.637z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f52d.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f52d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#9AAAB4" cx="17" cy="20" r="3"/><path fill="#DA2F47" d="M19.235 17.059c-.259.485-.868.671-1.353.412L5.529 10.883c-.485-.259-.67-.868-.412-1.353L7.94 4.235c.259-.485.868-.67 1.353-.412l12.353 6.588c.485.259.671.868.412 1.353l-2.823 5.295z"/><path fill="#DA2F47" d="M31.177 22.293c-.259.485-.868.671-1.354.412l-9.705-5.176c-.485-.259-.671-.868-.412-1.354l1.882-3.529c.259-.485.868-.67 1.354-.412l9.705 5.176c.485.259.671.868.412 1.354l-1.882 3.529z"/><path fill="#BB1A34" d="M19.235 17.058l2.824-5.293 1.765.941L20.999 18z"/><path fill="#9D0522" d="M28.942 22.235l2.823-5.294 3.53 1.882-2.824 5.294z"/><path fill="#292F33" d="M8.294 7.824l1.882-3.53-.881-.47v-.001L4.882 1.471c-.485-.259-1.094-.074-1.353.411L.706 7.177c-.259.486-.074 1.094.412 1.353l3.529 1.882 1.766.941.47-.882 1.411-2.647zM23 25c0 1.104-.896 2-2 2h-8c-1.104 0-2-.896-2-2s.896-2 2-2h8c1.104 0 2 .896 2 2z"/><path d="M9.467 36l3.344-7.152c.468-1 .036-2.191-.965-2.658-1-.469-2.191-.037-2.658.965L5.052 36h4.415zm15.065 0h4.416l-4.137-8.846c-.467-1.002-1.658-1.434-2.658-.965-1.001.467-1.433 1.658-.965 2.658L24.532 36zM19 36v-8c0-1.104-.896-2-2-2s-2 .896-2 2v8h4z" fill="#9AAAB4"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f52e.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f52e.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#BF6952" d="M28.736 28.767l-21.458.076-1.649 4.835c-.062.187-.101.387-.073.582.145.984.993 1.74 2.017 1.74h20.894c1.024 0 1.872-.756 2.017-1.74.029-.195-.01-.395-.073-.582l-1.675-4.911z"/><path fill="#854836" d="M28.736 28.767l-.19-.556c-.199-.598-.759-1.001-1.389-1.001H8.883c-.63 0-1.19.403-1.389 1.001l-.216.632c2.928 2.344 6.636 3.754 10.678 3.754 4.088 0 7.837-1.438 10.78-3.83z"/><circle fill="#AA8DD8" cx="17.956" cy="15.488" r="15.288"/><circle fill="#744EAA" cx="23.266" cy="12.37" r="4.195"/><circle fill="#744EAA" cx="14.875" cy="18.662" r="3.146"/><circle fill="#744EAA" cx="15.924" cy="5.028" r="2.098"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f54a.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f54a.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5C913B" d="M.794 16.112c1 0 5.875 1.344 6.5 2.312L6.013 18.3s-3.906-1.25-4.906-1.25c-1.001 0-.313-.938-.313-.938z"/><path fill="#99AAB5" d="M11 2c1 1 3 7 3 10s-2 6 2 8 5.001-1 5.001-5S20 7 19 5s-2 0-2 0-1-4-2-4-1 2-1 2-2-2-3-2 0 1 0 1z"/><path fill="#CCD6DD" d="M10 15c3 0 4 4 6 4s1-3 3-3 10-5 10-11 3-3 3-1c1 0 2 1.586 2 3 0 1 0 2-1 3 1 0 2 2 1 3 1 3-1 6-3 7 0 1-2 3-4 2 0 0-1 3-3 2 0 0 3.052 1.684 4 2 3 1 7 1 7 1s0 1-2 2c0 0 1 1 0 2s-2 1-2 1 1 2-2 1-6-4-6-4-5 1-9-1-6-6-6-8-3-1-4-1 2-2 3-2c0 0 0-2 3-2z"/><path fill="#5C913B" d="M6.95 18.019s5.438 2.625 7.938 6.656c1.9 3.064 2.782 8.656 2.782 8.656s.043.564-.907-2.281c-1-3-2.217-6.288-4.312-8.188-3.344-3.031-4.75-3.5-6.062-4.25-.332-.189.217-.687.561-.593z"/><path fill="#5C913B" d="M16.198 28.54s2.038.103 3.107 2.139c1.068 2.036-.053 4.914-.053 4.914s-2.75-1.268-3.462-2.947c-.712-1.68.408-4.106.408-4.106zm-2.133-4.778s1.274 1.437 3.558 1.705c2.284.269 4.121-1.379 4.121-1.379s-2.144-1.97-3.968-2.033c-1.823-.065-3.711 1.707-3.711 1.707zm-4.047-3.148s-2.015.329-2.85 2.472.425 4.01.425 4.01 2.534-.848 3.055-2.597c.521-1.747-.63-3.885-.63-3.885z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f58c.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f58c.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3B88C3" d="M14.57 27.673c2.814-1.692 6.635-3.807 9.899-7.071 7.03-7.029 12.729-16.97 11.314-18.385C34.369.803 24.428 6.502 17.398 13.531c-3.265 3.265-5.379 7.085-7.071 9.899l4.243 4.243z"/><path fill="#C1694F" d="M.428 34.744s7.071 1.414 12.021-3.536c2.121-2.121 2.121-4.949 2.121-4.949l-2.829-2.829s-3.535.708-4.95 2.122c-1.414 1.414-2.518 4.232-2.888 5.598-.676 2.502-3.475 3.594-3.475 3.594z"/><path fill="#CCD6DD" d="M17.882 25.328l-5.168-5.168c-.391-.391-.958-.326-1.27.145l-1.123 1.705c-.311.471-.271 1.142.087 1.501l4.122 4.123c.358.358 1.03.397 1.501.087l1.705-1.124c.472-.311.536-.878.146-1.269z"/><path fill="#A0041E" d="M11.229 32.26c-1.191.769-1.826.128-1.609-.609.221-.751-.12-1.648-1.237-1.414-1.117.233-1.856-.354-1.503-1.767.348-1.393-1.085-1.863-1.754-.435-.582 1.16-1.017 2.359-1.222 3.115-.677 2.503-3.476 3.595-3.476 3.595s5.988 1.184 10.801-2.485z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f58d.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f58d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M35.702 7.477L28.522.298c-.396-.397-1.038-.397-1.436 0L3.395 23.989c-.397.397-.397 1.038 0 1.437.72.719-3.14 7.959-3.395 8.496L2.068 36c.536-.255 7.785-4.115 8.506-3.395.397.397 1.039.397 1.436 0L35.702 8.913c.397-.396.397-1.039 0-1.436z"/><path fill="#EA596E" d="M4.139 23.24L26.407.972l8.62 8.62L12.759 31.86z"/><path fill="#292F33" d="M23.534 3.846l1.437-1.436 8.62 8.62-1.437 1.436zM5.576 21.803l1.436-1.437 8.62 8.62-1.437 1.437z"/><path fill="#BE1931" d="M26.886 9.353c-1.521-1.521-5.982.476-9.967 4.459-3.983 3.984-5.979 8.446-4.459 9.967 1.52 1.521 5.983-.476 9.967-4.459 3.983-3.984 5.979-8.447 4.459-9.967z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f5ff.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f5ff.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#66757F" d="M8 27s-2 4-2 6 4 3 12 3 12-1 12-3-2-6-2-6H8zM9 6C6 6 6 7 5 16c-.994 8.945 0 10 4 10 2 0 2-20 0-20zm18 0c3 0 3 1 4 10 .994 8.945 0 10-4 10-2 0-2-20 0-20z"/><path fill="#CCD6DD" d="M8 3s1-3 10-3 10 3 10 3 1 6 1 14-1 14-1 14-1 2-10 2-10-2-10-2-1-3-1-14S8 3 8 3z"/><path fill="#66757F" d="M28 8c0-1-3-4-10-4S8 7 8 8c0 .807 4.548 1.612 6.311 1.894C14.999 12.548 15 18 15 18c.805-3.218.315-7.079.093-8.467C15.295 8.942 15.941 8 18 8c3 0 3 2 3 2h.002c-.234 1.657-.566 5.089.162 8 0 0 .002-5.491.697-8.134C23.727 9.562 28 8.782 28 8z"/><path fill="#66757F" d="M14 20c0-1 2-3 4-3s4 2 4 3-1 1-4 1-4 0-4-1zm-2 4s2-2 6-2 6 2 6 2-2-1-6-1-6 1-6 1zm0 2c0-1 2-2 6-2s6 1 6 2-1 1-6 1-6 0-6-1z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f680.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f680.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#A0041E" d="M1 17l8-7 16 1 1 16-7 8s.001-5.999-6-12-12-6-12-6z"/><path fill="#FFAC33" d="M.973 35s-.036-7.979 2.985-11S15 21.187 15 21.187 14.999 29 11.999 32c-3 3-11.026 3-11.026 3z"/><circle fill="#FFCC4D" cx="8.999" cy="27" r="4"/><path fill="#55ACEE" d="M35.999 0s-10 0-22 10c-6 5-6 14-4 16s11 2 16-4c10-12 10-22 10-22z"/><path d="M26.999 5c-1.623 0-3.013.971-3.641 2.36.502-.227 1.055-.36 1.641-.36 2.209 0 4 1.791 4 4 0 .586-.133 1.139-.359 1.64 1.389-.627 2.359-2.017 2.359-3.64 0-2.209-1.791-4-4-4z"/><path fill="#A0041E" d="M8 28s0-4 1-5 13.001-10.999 14-10-9.001 13-10.001 14S8 28 8 28z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f681.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f681.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#66757F" d="M16.26 26h2v5h-2zm-8 0h2v5h-2z"/><ellipse fill="#99AAB5" cx="6.259" cy="3" rx="6" ry="1"/><ellipse fill="#99AAB5" cx="20.259" cy="3" rx="6" ry="1"/><path fill="#99AAB5" d="M12.26 3h2v6h-2z"/><ellipse fill="#66757F" cx="13.259" cy="3" rx="2" ry="1"/><path fill="#FFCC4D" d="M34.259 10c0-3 0-7-1-7s-3 4-4 6 5 1 5 1z"/><path fill="#FFCC4D" d="M34.259 10c0-2.209-8-3-19-3h-2C6.632 7 .509 12.451.509 18.25S4.259 28 13.259 28s12-4.701 12-10.5c0-.881-.138-1.731-.371-2.549C29.259 14 34.259 12.006 34.259 10z"/><path fill="#3B88C3" d="M4.259 13c-2.091 2.918-3.068 7.589 1.213 7.784 4.787.216 6.787.216 7.85-2.372 1.364-3.32.937-7.413-.276-8.195-2.32-1.497-6.695-.135-8.787 2.783zm16.841-.465C23.259 16 23.17 18.696 19.259 20c-3 1-4-2-3.841-5.535.112-2.483.206-4.195 1.841-4.465 1.447-.24 2.526.426 3.841 2.535z"/><path fill="#99AAB5" d="M31.441 7.114c.903 1.273 1.271 2.564.82 2.884-.45.32-1.548-.454-2.451-1.726-.903-1.273-1.271-2.564-.82-2.884.45-.321 1.547.453 2.451 1.726z"/><path fill="#99AAB5" d="M34.72 11.735c.909 1.279 1.28 2.575.83 2.894-.45.32-1.553-.458-2.46-1.737-.909-1.279-1.279-2.576-.829-2.896.45-.318 1.551.46 2.459 1.739z"/><path fill="#66757F" d="M33.076 9.419c.319.45.214 1.074-.236 1.394-.45.32-1.074.214-1.395-.236-.319-.45-.214-1.074.237-1.394.451-.321 1.075-.214 1.394.236z"/><path fill="#99AAB5" d="M25.26 32c0 1.104-.896 2-2 2h-20c-1.104 0-2-.896-2-2s.896-2 2-2h20c1.104 0 2 .896 2 2z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f686.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f686.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#A7A9AC" d="M2 36h32L23 19H13z"/><path fill="#58595B" d="M5 36h26L21 19h-6z"/><path fill="#808285" d="M8 36h20l-9-17h-2z"/><path fill="#A7A9AC" d="M28 35c0 .553-.447 1-1 1H9c-.552 0-1-.447-1-1 0-.553.448-1 1-1h18c.553 0 1 .447 1 1zm-2-4c0 .553-.447 1-1 1H11c-.552 0-1-.447-1-1 0-.553.448-1 1-1h14c.553 0 1 .447 1 1z"/><path fill="#58595B" d="M27.076 25.3L23 19H13l-4.076 6.3c1.889 2.517 4.798 4.699 9.076 4.699 4.277 0 7.188-2.183 9.076-4.699z"/><path fill="#A7A9AC" d="M18 0C9 0 6 3 6 9v8c0 1.999 3 11 12 11s12-9.001 12-11V9c0-6-3-9-12-9z"/><path fill="#E6E7E8" d="M8 11C8 2 12.477 1 18 1s10 1 10 10c0 6-4.477 11-10 11-5.523-.001-10-5-10-11z"/><path fill="#FFAC33" d="M18 21.999c1.642 0 3.185-.45 4.553-1.228C21.77 19.729 20.03 19 18 19s-3.769.729-4.552 1.772c1.366.777 2.911 1.227 4.552 1.227z"/><path d="M19 4.997v4.965c3.488-.232 6-1.621 6-2.463V5.833c0-.791-3.692-.838-6-.836zm-2 0c-2.308-.002-6 .044-6 .836V7.5c0 .842 2.512 2.231 6 2.463V4.997z" fill="#55ACEE"/><path fill="#269" d="M6 10s0 3 4 9c0 0-4-2-4-6v-3zm24 0s0 3-4 9c0 0 4-2 4-6v-3z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f68b.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f68b.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#939598" d="M0 34h36v2H0z"/><path fill="#58595B" d="M10 32c0-1.657-1.344-3-3-3s-3 1.343-3 3 1.343 3 3 3 3-1.343 3-3z"/><path fill="#292F33" d="M9 32c0-1.105-.896-2-2-2s-2 .895-2 2 .896 2 2 2 2-.895 2-2z"/><circle fill="#58595B" cx="29" cy="32" r="3"/><circle fill="#292F33" cx="29" cy="32" r="2"/><path fill="#E6E7E8" d="M34 2H2c-.552 0-1-.448-1-1s.448-1 1-1h32c.553 0 1 .448 1 1s-.447 1-1 1z"/><path fill="#66757F" d="M22.998 4.944c-.016-.284-.151-.548-.373-.726l-3.683-2.945c.087-.302.049-.635-.162-.898-.314-.394-.859-.468-1.281-.221-.42-.248-.966-.174-1.281.221-.211.264-.25.597-.162.898l-3.682 2.945c-.222.178-.358.441-.374.726-.016.284.09.561.291.762l3.835 3.834c-.198.377-.152.848.165 1.165.197.197.453.295.709.295.176 0 .344-.063.5-.155.156.091.324.155.5.155.256 0 .512-.098.707-.293.317-.317.363-.788.165-1.165l3.835-3.835c.201-.202.308-.479.291-.763zM17.5 8.085l-3.003-3.003L17.5 2.68l3.003 2.403L17.5 8.085z"/><path fill="#BCBEC0" d="M30 10c0 1.104-.896 2-2 2H8c-1.104 0-2-.896-2-2s.896-2 2-2h20c1.104 0 2 .896 2 2z"/><path fill="#E6E7E8" d="M36 22c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4v-8c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v8zM0 28h36v4H0z"/><path fill="#BE1931" d="M0 14h36v14H0z"/><path fill="#DD2E44" d="M36 14H0v10h6v6h7v-6h10v6h7v-6h6z"/><path fill="#55ACEE" d="M2 16H0v10h2c1.104 0 2-.896 2-2v-6c0-1.104-.896-2-2-2zm34 0h-2c-1.104 0-2 .896-2 2v6c0 1.104.896 2 2 2h2V16zm-15 6c0 .553-.448 1-1 1h-4c-.553 0-1-.447-1-1v-4c0-.553.448-1 1-1h4c.552 0 1 .447 1 1v4zm-9 1c0 .553-.448 1-1 1H8c-.552 0-1-.447-1-1v-5c0-.552.448-1 1-1h3c.552 0 1 .448 1 1v5zm17 0c0 .553-.447 1-1 1h-3c-.553 0-1-.447-1-1v-5c0-.552.447-1 1-1h3c.553 0 1 .448 1 1v5z"/><path fill="#A0041E" d="M0 28h36v2H0z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f68d.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f68d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M11 34c0 1.104-.896 2-2 2H7c-1.104 0-2-.896-2-2v-7c0-1.104.896-2 2-2h2c1.104 0 2 .896 2 2v7zm20 0c0 1.104-.896 2-2 2h-2c-1.104 0-2-.896-2-2v-7c0-1.104.896-2 2-2h2c1.104 0 2 .896 2 2v7z"/><path fill="#99AAB5" d="M3 17c0 .553-.448 1-1 1H1c-.552 0-1-.447-1-1v-7c0-.552.448-1 1-1h1c.552 0 1 .448 1 1v7zm33 0c0 .553-.447 1-1 1h-1c-.553 0-1-.447-1-1v-7c0-.552.447-1 1-1h1c.553 0 1 .448 1 1v7z"/><path fill="#99AAB5" d="M35 11c0 .552-.447 1-1 1H2c-.552 0-1-.448-1-1s.448-1 1-1h32c.553 0 1 .448 1 1zm0 4c0 .553-.447 1-1 1H2c-.552 0-1-.447-1-1 0-.553.448-1 1-1h32c.553 0 1 .447 1 1z"/><path fill="#CCD6DD" d="M24 2c0 1.104-.896 2-2 2h-8c-1.104 0-2-.896-2-2s.896-2 2-2h8c1.104 0 2 .896 2 2z"/><path fill="#CCD6DD" d="M28 2H8C5.791 2 4 3.791 4 6v26h28V6c0-2.209-1.791-4-4-4z"/><path fill="#FFCC4D" d="M4 16h28v16H4z"/><path fill="#66757F" d="M33 32c0 .553-.447 1-1 1H4c-.552 0-1-.447-1-1v-1c0-.553.448-1 1-1h28c.553 0 1 .447 1 1v1zm-1-15c0 1.657-1.343 3-3 3H7c-1.657 0-3-1.343-3-3v-7c0-1.657 1.343-3 3-3h22c1.657 0 3 1.343 3 3v7z"/><path fill="#88C9F9" d="M30 16c0 1.104-.896 2-2 2H8c-1.104 0-2-.895-2-2v-5c0-1.104.896-2 2-2h20c1.104 0 2 .895 2 2v5z"/><path fill="#FFAC33" d="M4 25h28v5H4z"/><path fill="#FFF" d="M6 25h6v3H6zm18 0h6v3h-6z"/><path fill="#DD2E44" d="M4 25h2v3H4zm26 0h2v3h-2z"/><path fill="#66757F" d="M14 25h8v3h-8z"/><path fill="#292F33" d="M22 3.5c0 .829-.672 1.5-1.5 1.5h-5c-.829 0-1.5-.671-1.5-1.5S14.671 2 15.5 2h5c.828 0 1.5.671 1.5 1.5z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f695.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f695.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M21.377 15.449c.089.816-.83 1.495-2.053 1.515-1.223.02-2.095-.635-1.947-1.463l.356-2c.147-.829.938-1.5 1.767-1.5.828 0 1.572.662 1.661 1.478l.216 1.97z"/><path fill="#FFCC4D" d="M32.246 21h-.135l-.444-3c-.327-2.209-1.864-4-3.433-4H16.162c-1.569 0-3.574 1.791-4.478 4l-1.228 3H6.911c-2.073 0-4.104 1.791-4.538 4l-.588 3c-.001.008 0 .015-.002.021C.782 28.132 0 28.97 0 30c0 1.104.896 2 2 2h30c2.209 0 4-1.791 4-4v-3c0-2.209-1.681-4-3.754-4z"/><circle fill="#292F33" cx="10" cy="31" r="4"/><circle fill="#CCD6DD" cx="10" cy="31" r="2"/><circle fill="#292F33" cx="27" cy="31" r="4"/><circle fill="#CCD6DD" cx="27" cy="31" r="2"/><path fill="#F4900C" d="M2.373 25l-.196 1H36v-1c0-.348-.055-.679-.133-1H2.702c-.141.321-.261.652-.329 1z"/><path d="M24 21h5.92c-.014-.416-.064-.908-.156-1.5-.395-2.5-.552-3.5-3.437-3.5H24v5zm-2-5h-5c-1.594 0-3.236 1.567-3.847 3.5-.194.599-.353 1.088-.472 1.5H22v-5z" fill="#55ACEE"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f697.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f697.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M13 32h20s3 0 3-4c0-2 0-6-1-7s-8-7-11-7h-6c-3 0-10 7-10 7l-4 1s-3 1-3 3v3s-1 .338-1 1.957C0 32 2 32 2 32h11z"/><path fill="#BBDDF5" d="M20 16h-2c-2 0-8 6-8 6s4.997-.263 10-.519V16zm10 3c-1-1-5-3-7-3h-1v5.379c4.011-.204 7.582-.379 8-.379 1 0 1-1 0-2z"/><circle fill="#292F33" cx="10" cy="31" r="4"/><circle fill="#CCD6DD" cx="10" cy="31" r="2"/><circle fill="#292F33" cx="27" cy="31" r="4"/><circle fill="#CCD6DD" cx="27" cy="31" r="2"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f69a.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f69a.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M36 27c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4v-3c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v3z"/><path fill="#FFCC4D" d="M19 13l-.979-1H7.146C4 12 3 14 3 14l-3 5.959V25h19V13z"/><path fill="#55ACEE" d="M9 20H2l2-4s1-2 3-2h2v6z"/><circle fill="#292F33" cx="9" cy="31" r="4"/><circle fill="#CCD6DD" cx="9" cy="31" r="2"/><circle fill="#292F33" cx="27" cy="31" r="4"/><circle fill="#CCD6DD" cx="27" cy="31" r="2"/><path fill="#CCD6DD" d="M32 8H17c-2.209 0-4 1.791-4 4v13h23V12c0-2.209-1.791-4-4-4z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f69c.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f69c.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M11 11h3v9h-3z"/><path fill="#77B255" d="M24 26.157C24 28.832 22.354 31 20.325 31H4.709c-2.029 0-3.488-1.565-3.258-3.494l.625-5.241c.23-1.93 1.992-3.808 3.928-4.199l14.628-3.21C22.496 14.413 24 16.219 24 18.893v7.264z"/><path fill="#292F33" d="M16.535 24.167C16.239 26.283 17.791 28 20 28h9c2.209 0 4-1.717 4-3.833V8.833C33 6.716 31.547 5 29.755 5h-7.303c-1.792 0-3.484 1.716-3.78 3.833l-2.137 15.334z"/><path fill="#BBDDF5" d="M18.245 25c-.135 1.104.65 2 1.755 2h9c1.104 0 2-.896 2-2V11c0-1.104-.743-2-1.66-2h-7.473c-.917 0-1.771.896-1.906 2l-1.716 14z"/><path fill="#77B255" d="M15 21h18v10H15z"/><path fill="#FFCC4D" d="M33 23H2l1-2h30z"/><circle fill="#292F33" cx="8" cy="31" r="4"/><circle fill="#FFCC4D" cx="8" cy="31" r="2"/><path fill="#77B255" d="M33 16v4l-10 9-7-1 3-10 3-2z"/><path fill="#292F33" d="M18.222 26.111c0-4.91 3.979-8.889 8.889-8.889 4.91 0 8.889 3.979 8.889 8.889C36 31.021 32.021 35 27.111 35c-4.91 0-8.889-3.979-8.889-8.889z"/><path fill="#FFCC4D" d="M32.667 26.111c0 3.068-2.487 5.556-5.556 5.556-3.068 0-5.556-2.487-5.556-5.556 0-3.068 2.487-5.556 5.556-5.556 3.069.001 5.556 2.488 5.556 5.556z"/><path fill="#FFE8B6" d="M30.444 26.111c0 1.841-1.492 3.333-3.333 3.333-1.842 0-3.334-1.492-3.334-3.333 0-1.842 1.492-3.334 3.334-3.334 1.841 0 3.333 1.493 3.333 3.334z"/><path fill="#77B255" d="M32.588 7c-.552-1.187-1.606-2-2.833-2h-7.303c-1.227 0-2.395.813-3.112 2h13.248z"/><path fill="#F4900C" d="M29.333 26.111c0 1.227-.995 2.222-2.222 2.222-1.227 0-2.223-.995-2.223-2.222 0-1.227.995-2.223 2.223-2.223 1.227.001 2.222.996 2.222 2.223z"/><circle fill="#F4900C" cx="8" cy="31" r="1"/><path fill="#66757F" d="M11 13h3v2h-3z"/><path fill="#5C913B" d="M16 28.75c-.094 0-.19-.013-.285-.041-.529-.157-.832-.714-.675-1.243l2-6.75C17.421 18.796 19.188 15 23 15h10c.553 0 1 .448 1 1s-.447 1-1 1H23c-3.144 0-4.011 4.154-4.02 4.196l-2.021 6.838c-.129.435-.527.716-.959.716z"/><path fill="#3E721D" d="M2.001 29c-.042 0-.083-.003-.125-.008-.548-.068-.937-.568-.868-1.116l1-8c.068-.549.569-.936 1.116-.868.548.068.937.568.868 1.116l-1 8c-.063.506-.494.876-.991.876z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f6a0.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f6a0.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#58595B" d="M19 12V5h-2v7h-5v5h12v-5z"/><path fill="#FFD983" d="M34 28V18c0-2.209-1.791-4-4-4H6c-2.209 0-4 1.791-4 4v10h32z"/><path fill="#269" d="M2 22v6c0 4.418 3.582 8 8 8h16c4.418 0 8-3.582 8-8v-6H2z"/><path fill="#88C9F9" d="M2 18h6v9H2zm8 0h7v9h-7zm9 0h7v9h-7zm9 0h6v9h-6z"/><path fill="#6D6E71" d="M33.213 10.977L3.27 2.954c-.533-.144-.85-.691-.707-1.226.143-.533.691-.85 1.225-.707L33.73 9.045c.534.144.851.691.707 1.225-.142.534-.69.851-1.224.707z"/><path fill="#A7A9AC" d="M23.348 4.361l-1.933-.518.259-.965-5.795-1.553-.259.966-1.932-.518c-1.067-.285-2.164.348-2.45 1.415-.286 1.066.348 2.163 1.414 2.449l9.66 2.588c1.066.286 2.163-.348 2.449-1.414.286-1.066-.347-2.164-1.413-2.45z"/><path fill="#808285" d="M13.877 4.931c-.286 1.066-1.383 1.7-2.45 1.414-1.066-.286-1.7-1.383-1.414-2.449.286-1.067 1.383-1.7 2.449-1.415 1.068.286 1.701 1.382 1.415 2.45zm11.592 3.105c-.286 1.067-1.383 1.7-2.449 1.414-1.067-.286-1.7-1.382-1.414-2.449.285-1.067 1.382-1.7 2.449-1.414 1.066.286 1.7 1.383 1.414 2.449z"/><path fill="#55ACEE" d="M2 18h6v2H2zm8 0h7v2h-7zm9 0h7v2h-7zm9 0h6v2h-6z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f6a2.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f6a2.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M16 0h4v5h-4z"/><path fill="#D1D3D4" d="M16 2h4v4h-4z"/><path fill="#A7A9AC" d="M18 2h2v4h-2z"/><path fill="#66757F" d="M18 19H5s1.355 8 4.875 14C13.394 39 18 33 18 33s4.606 6 8.125 0C29.645 27 31 19 31 19H18z"/><path fill="#99AAB5" d="M18 19H5s1.355 8 4.875 14C13.394 39 18 33 18 33V19z"/><path fill="#55ACEE" d="M0 30h36v6H0z"/><path fill="#E6E7E8" d="M30 9h-2.45l-.242-4H8.692l-.241 4H6v6h2.088l-.242 4h20.308l-.242-4H30z"/><path fill="#D1D3D4" d="M10 15h16v4H10z"/><path fill="#6D6E71" d="M8 11h20v2H8z"/><path fill="#BCBEC0" d="M10 7h16v2H10z"/><path fill="#BE1931" d="M5.913 23h24.174c.201-.747.368-1.427.5-2H5.413c.132.573.299 1.253.5 2z"/><path fill="#A0041E" d="M18 23h12.087c.201-.747.368-1.427.5-2H18v2z"/><path fill="#BCBEC0" d="M12 17h12v2H12z"/><path fill="#58595B" d="M16 0h2v2h-2z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f6a4.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f6a4.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5C913B" d="M33 27h-2l1-8h2z"/><path fill="#DD2E44" d="M1 14c9.055.053 11 1 17 2 2.959.493 7 1 11 1 2 0 4 1 4 4 0 2 .534 3.187-5.433 3.815C23.59 25.233 13 23 9 21c-6-3-9-7.005-8-7z"/><path fill="#55ACEE" d="M0 24h36v12H0z"/><path fill="#FFCC4D" d="M5 13c4 0 11 0 18 1s10 1 10 3v3c0 1.414-6.869.447-10 0-7-1-14-3-18-4-4.047-1.011-7-3 0-3z"/><path fill="#A0041E" d="M30.592 24.322c2.122-.539 2.403-1.307 2.418-2.361-1.263.619-3.699.32-5.886.047-7.96-.995-16.481-2.935-24.722-5.608 1.043 1.04 2.584 2.29 4.568 3.483 6.706 1.901 13.484 3.307 19.905 4.109 1.259.157 2.53.312 3.717.33z"/><path fill="#55ACEE" d="M12 24c3-2 7-5 6-3s-1.001 3 1 2c2-1 5-2 4 0s2 1 3 0 4 0 3 1-9 2-12 2-5-2-5-2z"/><path fill="#5C913B" d="M34 16h-1c-1.104 0-2 .896-2 2h1c.553 0 1 .447 1 1v1h1c1.104 0 2 .104 2-1s-.896-3-2-3z"/><path fill="#C1694F" d="M30 16c.97.243 0 2-1 3s-10-1-10-1l2-3s5 0 9 1z"/><path fill="#A0041E" d="M29 19c.328-.328.645-.737.899-1.147-1.475-.764-3.63-1.385-6.079-1.664-1.249-.142-2.441-.178-3.527-.128L19 18s9 2 10 1z"/><path fill="#55ACEE" d="M21 15v-1l-4 1-2 2 4 1z"/><path fill="#292F33" d="M23 14c-.553 0-1 1.343-1 3 0 .612.062 1.181.167 1.656.502.127 1.035.221 1.592.278.148-.524.241-1.193.241-1.934 0-1.656-.447-3-1-3z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f6f0.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f6f0.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#99AAB5" d="M8.514 19.828L19.122 9.223l2.121 2.121L10.635 21.95z"/><path fill="#55ACEE" d="M8.515 29.728c-.781.781-2.047.781-2.828 0l-4.95-4.949c-.781-.781-.781-2.048 0-2.828L5.687 17c.781-.781 2.047-.781 2.828 0l4.95 4.95c.781.78.781 2.047 0 2.828l-4.95 4.95zm16.262-16.263c-.78.781-2.047.781-2.827 0L17 8.515c-.781-.781-.781-2.047 0-2.828l4.951-4.95c.781-.781 2.047-.781 2.828 0l4.949 4.95c.781.781.781 2.047.001 2.828l-4.952 4.95z"/><path fill="#99AAB5" d="M12.404 10.283L10.99 6.04c-.448-1.342-1.415-1.415-2.122-.708L6.04 8.161c-.708.707-.635 1.674.707 2.122l4.243 1.414 1.414-1.414z"/><path fill="#CCD6DD" d="M17.708 21.949c-.782.781-2.048.781-2.829.001l-7.071-7.071c-.781-.781-.781-2.048 0-2.829l4.242-4.242c.781-.781 2.048-.781 2.829 0l7.071 7.071c.78.781.78 2.047-.001 2.829l-4.241 4.241z"/><path fill="#CCD6DD" d="M21.016 21.055c-1.952 1.953-4.802 2.269-6.364.708-1.562-1.562.876-2.29 2.829-4.243 1.953-1.953 2.681-4.39 4.243-2.829 1.561 1.562 1.245 4.411-.708 6.364z"/><path fill="#99AAB5" d="M27.96 20.182c-2.12-2.122-5.118-1.951-7.071 0-1.952 1.954-2.121 4.95 0 7.071l7.071-7.071zm-2.828 2.829l2.121 3.535-3.535-2.121z"/><path fill="#99AAB5" d="M27.813 27.106c-.391.391-1.023.391-1.414 0s-.391-1.023 0-1.414 1.023-.391 1.414 0 .391 1.024 0 1.414z"/><path fill="#88C9F9" d="M4.27 18.416L5.686 17l7.779 7.777-1.414 1.415zM17 5.686l1.414-1.414 7.778 7.778-1.414 1.414zM.735 21.952l1.414-1.415 7.78 7.776-1.414 1.414zm19.798-19.8L21.946.737l7.781 7.775-1.413 1.414z"/><path fill="#99AAB5" d="M8.307 7.601c-.39.39-1.023.39-1.414 0-.391-.391-.39-1.024 0-1.415.391-.39 1.023-.39 1.414 0 .391.391.391 1.024 0 1.415z"/><path fill="#FFAC33" d="M23.682 30.431l.002-.051c.027-.552.497-.977 1.049-.949.016.001 2.156.063 3.8-1.58 1.637-1.638 1.578-3.772 1.58-3.801-.033-.55.397-1.021.948-1.049.552-.027 1.022.397 1.049.949.012.122.123 3.028-2.163 5.314-2.288 2.287-5.191 2.17-5.314 2.164-.535-.027-.951-.468-.951-.997z"/><path fill="#FFAC33" d="M24.238 33.989c0-.109.018-.221.057-.33.182-.521.752-.796 1.273-.613.107.034 2.877.893 5.964-2.195 3.127-3.126 2.414-6.126 2.382-6.252-.137-.529.184-1.077.716-1.216.53-.14 1.073.172 1.217.701.046.17 1.077 4.205-2.9 8.181-4.014 4.016-7.876 2.726-8.038 2.668-.413-.144-.671-.531-.671-.944z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f6f4.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f6f4.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#292F33" cx="4.5" cy="31.5" r="4.5"/><circle fill="#DD2E44" cx="4.5" cy="31.5" r="3"/><circle fill="#292F33" cx="31.5" cy="31.5" r="4.5"/><circle fill="#DD2E44" cx="31.5" cy="31.5" r="3"/><path fill="#55ACEE" d="M31.5 33h-20c-.825 0-1.5-.675-1.5-1.5s.675-1.5 1.5-1.5h20c.825 0 1.5.675 1.5 1.5s-.675 1.5-1.5 1.5z"/><path fill="#55ACEE" d="M26.012 31.746c-.003-.082-.012-.163-.012-.246 0-3.038 2.462-5.5 5.5-5.5 1.21 0 2.326.396 3.234 1.058l.89-1.205c-1.158-.847-2.58-1.353-4.125-1.353-3.866 0-7 3.134-7 7 0 .102.011.201.015.302l1.498-.056zM5.629 26.117c2.495.52 4.369 2.73 4.371 5.378l3.5.003c-.001-4.34-3.074-7.962-7.163-8.81-.232 1.13-.476 2.31-.708 3.429z"/><path fill="#99AAB5" d="M4.395 31.998c-.269-.057-.442-.324-.385-.593l6.002-28.238c.057-.269.324-.442.593-.385.269.057.442.324.385.593L4.988 31.613c-.057.269-.324.442-.593.385z"/><path fill="#55ACEE" d="M6.123 26.261l-.978-.208c-.538-.114-.885-.648-.77-1.186l1.247-5.869c.114-.538.648-.885 1.186-.77l.978.208c.538.114.885.648.77 1.186L7.31 25.49c-.115.538-.649.885-1.187.771z"/><path fill="#DD2E44" d="M9.3 4.324l-1.957-.416c-.807-.172-1.327-.972-1.155-1.779.171-.807.972-1.327 1.779-1.156l1.956.416c.807.172 1.327.972 1.155 1.779-.171.807-.972 1.327-1.778 1.156z"/><path fill="#55ACEE" d="M10.84 1.675c-.807-.172-1.608.348-1.779 1.155L7.71 9.188c-.114.538.232 1.072.77 1.186l.978.208c.538.114 1.072-.232 1.186-.77l1.351-6.358c.172-.807-.348-1.607-1.155-1.779z"/><path fill="#DD2E44" d="M14.105 5.345l-2.934-.624c-.807-.172-1.327-.972-1.155-1.779.172-.807.972-1.327 1.779-1.155l2.934.624c.807.172 1.327.972 1.155 1.779-.171.807-.972 1.327-1.779 1.155z"/><path fill="#EA596E" d="M15.903 4.194c-.172.81-.969 1.328-1.779 1.155-.81-.172-1.328-.969-1.155-1.779.172-.81.969-1.328 1.779-1.155s1.328.968 1.155 1.779z"/><circle fill="#55ACEE" cx="35.19" cy="26.46" r=".74"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f6f5.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f6f5.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4900C" d="M32 24h-1c-.55 0-1-.45-1-1s.45-1 1-1h1c.55 0 1 .45 1 1s-.45 1-1 1"/><path fill="#292F33" d="M10 31.5c0 2.485-2.015 4.5-4.5 4.5S1 33.985 1 31.5 3.015 27 5.5 27s4.5 2.015 4.5 4.5m24 0c0 2.485-2.015 4.5-4.5 4.5S25 33.985 25 31.5s2.015-4.5 4.5-4.5 4.5 2.015 4.5 4.5"/><path fill="#99AAB5" d="M8 31.5C8 32.881 6.881 34 5.5 34S3 32.881 3 31.5 4.119 29 5.5 29 8 30.119 8 31.5m24 0c0 1.381-1.119 2.5-2.5 2.5S27 32.881 27 31.5s1.119-2.5 2.5-2.5 2.5 1.119 2.5 2.5"/><path fill="#DD2E44" d="M5.854 24.082l2.615-6.989L8 16s-.916.008-1-1c-.083-1.007 2.408-3.079 3-3 .593.08 0 2 0 2s2.32.557 2 2c-.319 1.444-2.375 8.688-2.375 8.688S11.375 25.563 12 27c.449 1.032 1.681 1.018 3 1 1.319-.016 4.393-.007 5-2 .606-1.991 1-3 1-3l-1-1 10-2s-.891 1.982 1 3c2.168 1.169 2.86 2.669 4 5 .749 1.534.448 1.897-1 2-1.941.14-4.44.386-5.79.535-1.197.134-2.284 1.65-4.164 1.65s-10.052.049-12.046-.186c-3.496-.409-4.758-3-10-3-2.072 0-1.06-1.563.028-2.665 1.209-1.226 3.801-2.4 3.826-2.252"/><path fill="#BE1931" d="M22 33h-3c-1.1 0-2-.9-2-2s.9-2 2-2h3c1.1 0 2 .9 2 2s-.9 2-2 2"/><path fill="#BE1931" d="M19 33h-5c-.55 0-1-.45-1-1s.45-1 1-1h5c.55 0 1 .45 1 1s-.45 1-1 1"/><path fill="#292F33" d="M22 22c-1.618 0-2.431.306-3-1s-.02-2 1-2 5.728-.181 8-1c2.272-.819 3.053-.831 3 0s-1 2-1 2-1.254 2-8 2m-8-6h-3.251c-.55 0-1-.45-1-1s.45-1 1-1H14c.55 0 1 .45 1 1s-.45 1-1 1"/><path fill="#F4900C" d="M7.5 16c-.275 0-.5-.225-.5-.5v-1c0-.275.225-.5.5-.5s.5.225.5.5v1c0 .275-.225.5-.5.5"/><path fill="#292F33" d="M13.062 13h-.125c-.516 0-.937-.422-.937-.937V9.937c0-.515.421-.937.938-.937h.125c.516 0 .937.422.937.937v2.126c0 .515-.421.937-.938.937"/><path fill="#292F33" d="M9.982 15.066l-.022-.022c-.188-.188-.188-.497 0-.685l2.85-2.851c.189-.188.497-.188.685 0l.023.022c.188.189.188.497 0 .685l-2.851 2.851c-.188.188-.497.188-.685 0"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f6f6.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f6f6.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M33.793 17S32.476 20 18 20C3.523 20 1.973 17 1.973 17S-1 22.117 4.802 25c4.238 2.105 10.916-.131 12.723-.814 1.991.683 9.274 2.824 13.557.814 5.862-2.751 2.711-8 2.711-8z"/><path fill="#55ACEE" d="M0 24h36v12H0z"/><path fill="#FFAC33" d="M27.005 25.389c.206 0 .412-.079.569-.236.315-.315.315-.824 0-1.139l-8.861-8.86c-.315-.315-.824-.315-1.139 0-.315.315-.315.824 0 1.139l8.861 8.86c.158.157.364.236.57.236z"/><path fill="#FFCC4D" d="M29.316 28.505c.412 0 .825-.157 1.139-.472.629-.629.629-1.649 0-2.278l-2.416-2.416c-.629-.629-1.65-.629-2.278 0-.629.629-.629 1.649 0 2.278l2.416 2.416c.314.315.727.472 1.139.472z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f6f8.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f6f8.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFD983" d="M32.831 20.425c-.689 3.241-9.21 6.221-17.314 4.499S.841 17.013 1.53 13.772s8.587-3.287 16.69-1.564 15.3 4.976 14.611 8.217z"/><path fill="#FFD983" d="M27 36l-2-14-17-5-8 19z"/><ellipse transform="rotate(-78 17.482 15.686)" fill="#67757F" cx="17.481" cy="15.685" rx="7.556" ry="17"/><path fill="#67757F" d="M.414 10.977l.414 2.315 32.866 6.986 1.412-2.126z"/><ellipse transform="rotate(-78 18.013 13.186)" fill="#9AAAB4" cx="18.012" cy="13.186" rx="8" ry="18"/><ellipse transform="rotate(-78 18.43 11.23)" fill="#CCD6DD" cx="18.428" cy="11.229" rx="6" ry="15"/><ellipse transform="rotate(-78 18.845 9.274)" fill="#E1E8ED" cx="18.844" cy="9.273" rx="3" ry="9"/><path fill="#5DADEC" d="M10.041 7.402c.344-1.621 2.996-4.475 9.843-3.02s8.108 5.141 7.764 6.762c-.344 1.621-4.565 2.097-9.427 1.063s-8.525-3.184-8.18-4.805z"/><circle fill="#8CCAF7" cx="16.765" cy="19.055" r="1"/><circle fill="#8CCAF7" cx="24.798" cy="19.74" r="1"/><circle fill="#8CCAF7" cx="32.269" cy="18.261" r="1"/><ellipse transform="rotate(-50.811 34.182 14.066)" fill="#8CCAF7" cx="34.183" cy="14.067" rx=".5" ry="1"/><ellipse transform="rotate(-15.188 2.802 7.396)" fill="#8CCAF7" cx="2.802" cy="7.397" rx="1" ry=".5"/><circle fill="#8CCAF7" cx="2.924" cy="12.023" r="1"/><circle fill="#8CCAF7" cx="9.148" cy="16.413" r="1"/><ellipse transform="rotate(-78 19.573 5.85)" fill="#8CCAF7" cx="19.572" cy="5.85" rx="1.5" ry="5"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f6f9.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f6f9.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#A0041E" d="M32.436 2.821c1.801 1.799 3.779 2.737 0 6.517L12.884 28.889c-4.594 4.595-5.463 7.571-11.405 1.63-3.258-3.258.284-3.543 4.888-8.148l19.552-19.55c1.8-1.8 4.718-1.8 6.517 0z"/><path fill="#DD2E44" d="M33.936 4.321c1.801 1.799 1.801 4.717 0 6.517L14.385 30.389c-4.073 4.073-8.342 4.693-11.405 1.63-3.258-3.258.284-3.543 4.888-8.148L27.42 4.321c1.799-1.8 4.717-1.8 6.516 0z"/><path fill="#3B88C3" d="M15.301 33.18c.927.929 2.687.673 3.932-.572 1.244-1.244 1.501-3.004.572-3.932-.927-.928-2.688-.672-3.932.572-1.245 1.245-1.501 3.005-.572 3.932z"/><path fill="#3B88C3" d="M19.068 27.937l-4.506 4.506.739.737 4.504-4.504z"/><path fill="#88C9F9" d="M14.613 32.493c.928.928 2.688.672 3.932-.573 1.245-1.244 1.501-3.004.573-3.932-.928-.928-2.688-.672-3.932.572-1.245 1.246-1.501 3.005-.573 3.933z"/><path fill="#808285" d="M17.651 29.396c.302.367.243.973-.207 1.423-.45.45-1.032.477-1.422.207-3.468-2.396-3.067-3.798-2.617-4.248.449-.45 1.148-1.148 4.246 2.618z"/><path fill="#A7A9AC" d="M16.243 29.83c-1.103 1.237-2.763.609-3.935-.562-1.172-1.171-1.302-2.466-.13-3.638 1.171-1.172 2.36-.703 3.531.469 1.172 1.171 1.756 2.359.534 3.731z"/><path fill="#3B88C3" d="M9.139 27.4c1.006 1.008 2.916.729 4.265-.621 1.351-1.35 1.628-3.259.622-4.266-1.006-1.007-2.916-.729-4.266.621-1.351 1.351-1.629 3.261-.621 4.266z"/><path fill="#3B88C3" d="M13.226 21.712l-4.888 4.89.801.798 4.886-4.886z"/><path fill="#88C9F9" d="M8.393 26.655c1.007 1.007 2.917.729 4.266-.622 1.351-1.35 1.628-3.259.622-4.266-1.006-1.007-2.916-.728-4.266.621-1.351 1.351-1.629 3.26-.622 4.267z"/><path fill="#3B88C3" d="M11.651 23.396c.336.335.243.973-.207 1.423-.45.45-1.086.542-1.422.207-.335-.336-.243-.973.208-1.423.449-.45 1.085-.541 1.421-.207zm17.651-4.216c.927.929 2.687.673 3.931-.572 1.244-1.244 1.5-3.004.572-3.932-.928-.928-2.687-.672-3.931.572-1.245 1.246-1.502 3.005-.572 3.932z"/><path fill="#3B88C3" d="M33.068 13.937l-4.505 4.507.739.736 4.503-4.504z"/><path fill="#88C9F9" d="M28.614 18.494c.928.927 2.687.671 3.931-.573 1.244-1.244 1.5-3.004.572-3.932-.928-.928-2.686-.672-3.931.572-1.244 1.245-1.501 3.005-.572 3.933z"/><path fill="#808285" d="M31.65 15.397c.303.367.244.973-.207 1.423-.449.45-1.03.477-1.421.207-3.469-2.396-3.068-3.798-2.617-4.248.449-.45 1.149-1.149 4.245 2.618z"/><path fill="#A7A9AC" d="M30.243 15.831c-1.103 1.237-2.764.609-3.935-.562-1.172-1.171-1.302-2.466-.13-3.638 1.172-1.172 2.359-.703 3.531.469 1.173 1.17 1.756 2.358.534 3.731z"/><path fill="#3B88C3" d="M23.14 13.401c1.006 1.008 2.915.729 4.265-.621 1.351-1.35 1.628-3.259.622-4.266-1.007-1.007-2.916-.729-4.266.621-1.352 1.351-1.629 3.26-.621 4.266z"/><path fill="#3B88C3" d="M22.341 12.601l4.887-4.889.8.8-4.886 4.89z"/><path fill="#88C9F9" d="M22.394 12.656c1.006 1.007 2.916.729 4.266-.622 1.35-1.35 1.628-3.259.621-4.266-1.006-1.007-2.916-.729-4.266.621-1.351 1.351-1.629 3.26-.621 4.267z"/><path fill="#3B88C3" d="M25.651 9.397c.336.335.243.973-.207 1.423-.45.45-1.086.542-1.422.207-.336-.336-.243-.973.207-1.423.451-.45 1.086-.542 1.422-.207z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f6fa.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f6fa.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#99AAB5" d="M19 9h2v11h-2z"/><path fill="#55ACEE" d="M10 9c-2 2-4 5-4 7 0 4 5 1 5 1V9h-1z"/><circle fill="#292F33" cx="5" cy="32" r="4"/><circle fill="#99AAB5" cx="5" cy="32" r="2"/><path fill="#1E5200" d="M29 23h-2c-1.105 0-2 .895-2 2v5c0 1.105.895 2 2 2h2c1.105 0 2-.895 2-2v-5c0-1.105-.895-2-2-2zm-10 0h-2c-1.105 0-2 .895-2 2v5c0 1.105.895 2 2 2h2c1.105 0 2-.895 2-2v-5c0-1.105-.895-2-2-2z"/><path fill="#5C913B" d="M2 28.377c-1.387.225-2.581-1.152-1-2.435 2-1.623 7-2.435 9-1.623S12 33 11 33s-4-5.435-9-4.623z"/><path fill="#3E721D" d="M11 33h13c1 0 2 0 2-2 0-1 1-4 3-4s5 3 5 4 0 2 1 2 1-1 1-2V19h-8c0 3-1 8-1 8s-1-1-1 1c0 .606-1 2-2 2h-1c-1 0-2-.666-2-1.672V19c0-1-2-1-2 0v9.328C19 29.334 18.262 30 17.341 30h-3.33C13 30 12 29 12 28v-9H5c0 6 5 14 6 14z"/><path fill="#5C913B" d="M34 32c0 1 1 0 1-2 0-3-.833-5-5-5s-5 3-5 5c0 1 1 3 1 2s.667-2 4-2 4 1 4 2z"/><path fill="#FFAC33" d="M12 19H5c0-1 1-3 1-3h4c.552 0 1-.448 1-1v-4s-2 0-2-2c0-.326.106-.652.25-.944C9.573 7.4 10.258 7 10.99 7H33c2 0 3 5 3 12h-8s0-8-3-8H12v8z"/><circle fill="#292F33" cx="30" cy="32" r="4"/><circle fill="#99AAB5" cx="30" cy="32" r="2"/><path fill="#F4900C" d="M9 18.5v-1c0-.276-.224-.5-.5-.5H5.552C5.286 17.648 5 18.464 5 19h3.5c.276 0 .5-.224.5-.5z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f6fc.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f6fc.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M10 27.5c0 1.381-2.567 3.5-4.5 3.5S1 28.881 1 27.5 3.567 26 5.5 26s4.5.119 4.5 1.5zm19 0c0 1.381-2.567 3.5-4.5 3.5S20 28.881 20 27.5s2.567-1.5 4.5-1.5 4.5.119 4.5 1.5zm0-.5c0 1 0 2 2 3s2-3 2-3h-4z"/><path fill="#F4900C" d="M34.787 28.795c1.332 1.332.729 1.683-.603 3.016-1.332 1.332-1.683 1.935-3.016.603-1.332-1.332-1.935-2.889-.603-4.222 1.332-1.333 2.889-.73 4.222.603z"/><path fill="#662113" d="M33.299 24.074s.595-.073.595.929c0 1.004-.462.996-1.466.996H19.146c-4.037 0-8.513-2.889-10.439-2.889L8.137 26h-6.17c0-1.368-.843-3.084-.848-3.993-.011-2.007.647-4.231.647-4.231l15.607 5.335 15.926.963z"/><path fill="#88C9F9" d="M26.472 16.478c-2.218-1.018-6.023-4.326-6.21-4.536C15.591 3.987 18.336.964 18.336.964S17.043.019 16.41.048l-.963.916-.963-.788C11.226.454 2.93 4.816 2.93 4.816s.963 2.889.963 4.814-.696 4.238-.696 4.238-1.383 2.338-1.631 3.426c-.276 1.213.212 2.035 1.044 2.236 2.923.704 5.578.623 11.525 3.254 2.307 1.02 3.852 1.29 6.127 1.29h13.037s1.214-1.518.173-4.26c-.37-.975-4.725-2.292-7-3.336z"/><path fill="#EA596E" d="M26.258 16.371c-2.24-1.119-5.815-4.225-5.995-4.429C15.592 3.987 18.337.964 18.337.964S17.044.019 16.411.048l-.963.916-.963-.788c-.022.002-.051.008-.073.011-.057.5-.145 1.318-.28 2.633-.52 5.078 2.136 8.698 4.792 11.558 2.656 2.86 5.39 3.491 6.698 3.794s2.974-.768 2.974-.768l-2.338-1.033z"/><path fill="#99AAB5" d="M34 28H2c-.55 0-1-.45-1-1s.45-1 1-1h32c.55 0 1 .45 1 1s-.45 1-1 1z"/><circle fill="#F4900C" cx="5.5" cy="31.5" r="4.5"/><circle fill="#662113" cx="5.5" cy="31.5" r="2.25"/><circle fill="#F4900C" cx="24.5" cy="31.5" r="4.5"/><circle fill="#662113" cx="24.5" cy="31.5" r="2.25"/><path fill="#269" d="M15.448.965c-1.891 1.9-1.107 8.629 1.825 11.354C11.41 7.24 14.485.177 14.485.177l.963.788z"/><path fill="#BE1931" d="M15.775 13.513c-.299-.462-.166-1.084.296-1.383l2.772-1.817c.462-.299 1.084-.166 1.383.296.299.462.166 1.084-.296 1.383l-2.772 1.817c-.462.299-1.084.166-1.383-.296zm4.616 3.755c-.444-.325-.541-.954-.215-1.398l1.595-2.176c.325-.444.954-.541 1.398-.215.444.325.541.954.215 1.398l-1.595 2.176c-.325.443-.954.54-1.398.215zm4.777 1.903c-.519-.183-.794-.757-.611-1.276l.613-1.739c.183-.519.757-.794 1.276-.611.519.183.794.757.611 1.276l-.613 1.739c-.183.519-.757.794-1.276.611zM12.487 2.449c.047-.548.534-.958 1.082-.91l3.985.345c.548.047.958.534.91 1.082-.047.548-.534.958-1.082.91l-3.985-.345c-.548-.047-.957-.534-.91-1.082zm.584 5.538c-.104-.54.253-1.067.793-1.171l3.723-.687c.54-.104 1.067.253 1.171.793.104.54-.253 1.067-.793 1.171l-3.723.687c-.54.104-1.067-.253-1.171-.793z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f916.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f916.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><ellipse fill="#F4900C" cx="33.5" cy="14.5" rx="2.5" ry="3.5"/><ellipse fill="#F4900C" cx="2.5" cy="14.5" rx="2.5" ry="3.5"/><path fill="#FFAC33" d="M34 19c0 .553-.447 1-1 1h-3c-.553 0-1-.447-1-1v-9c0-.552.447-1 1-1h3c.553 0 1 .448 1 1v9zM7 19c0 .553-.448 1-1 1H3c-.552 0-1-.447-1-1v-9c0-.552.448-1 1-1h3c.552 0 1 .448 1 1v9z"/><path fill="#FFCC4D" d="M28 5c0 2.761-4.478 4-10 4C12.477 9 8 7.761 8 5s4.477-5 10-5c5.522 0 10 2.239 10 5z"/><path fill="#F4900C" d="M25 4.083C25 5.694 21.865 7 18 7c-3.866 0-7-1.306-7-2.917 0-1.611 3.134-2.917 7-2.917 3.865 0 7 1.306 7 2.917z"/><path fill="#269" d="M30 5.5C30 6.881 28.881 7 27.5 7h-19C7.119 7 6 6.881 6 5.5S7.119 3 8.5 3h19C28.881 3 30 4.119 30 5.5z"/><path fill="#55ACEE" d="M30 6H6c-1.104 0-2 .896-2 2v26h28V8c0-1.104-.896-2-2-2z"/><path fill="#3B88C3" d="M35 33v-1c0-1.104-.896-2-2-2H22.071l-3.364 3.364c-.391.391-1.023.391-1.414 0L13.929 30H3c-1.104 0-2 .896-2 2v1c0 1.104-.104 2 1 2h32c1.104 0 1-.896 1-2z"/><circle fill="#FFF" cx="24.5" cy="14.5" r="4.5"/><circle fill="#DD2E44" cx="24.5" cy="14.5" r="2.721"/><circle fill="#FFF" cx="11.5" cy="14.5" r="4.5"/><path fill="#F5F8FA" d="M29 25.5c0 1.381-1.119 2.5-2.5 2.5h-17C8.119 28 7 26.881 7 25.5S8.119 23 9.5 23h17c1.381 0 2.5 1.119 2.5 2.5z"/><path fill="#CCD6DD" d="M17 23h2v5h-2zm-5 0h2v5h-2zm10 0h2v5h-2zM7 25.5c0 1.21.859 2.218 2 2.45v-4.9c-1.141.232-2 1.24-2 2.45zm20-2.45v4.899c1.141-.232 2-1.24 2-2.45s-.859-2.217-2-2.449z"/><circle fill="#DD2E44" cx="11.5" cy="14.5" r="2.721"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f93f.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f93f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#66757F" d="M21 25c-2.556 0-4.062-3.128-5.161-4.676-.412-.58-1.266-.58-1.677 0C13.062 21.872 11.557 25 9 25c-4.551 0-7.923-3.033-8.784-7.619C-.804 11.955 3.589 7 9.11 7h11.78c5.521 0 9.914 4.955 8.894 10.381C28.923 21.967 25.551 25 21 25z"/><path fill="#292F33" d="M18 22l-3-3-3 3-2 2c2 0 3 3 5 3s3-3 5-3l-2-2z"/><path fill="#4E9322" d="M21 25c-2.556 0-4.062-3.128-5.161-4.676-.412-.58-1.266-.58-1.677 0C13.062 21.872 11.557 25 9 25c-4.551 0-7.923-3.033-8.784-7.619C-.804 11.955 3.589 7 9.11 7h11.78c5.521 0 9.914 4.955 8.894 10.381C28.923 21.967 25.551 25 21 25z"/><path fill="#88C9F9" d="M21 23c-1.041 0-2.113-1.664-2.896-2.88-.226-.35-.437-.676-.635-.954-.568-.8-1.491-1.277-2.469-1.277-.979 0-1.901.477-2.469 1.275-.199.281-.41.606-.635.957C11.113 21.336 10.042 23 9 23c-3.512 0-6.125-2.295-6.819-5.988-.365-1.941.147-3.87 1.442-5.431C4.984 9.941 6.984 9 9.11 9h11.78c2.126 0 4.126.941 5.486 2.581 1.295 1.561 1.808 3.49 1.442 5.431C27.125 20.706 24.512 23 21 23z"/><path fill="#292F33" d="M26.761 11.262C25.305 9.507 23.165 8.5 20.89 8.5H9.11c-2.275 0-4.415 1.007-5.871 2.762-1.392 1.678-1.942 3.752-1.549 5.842C2.431 21.049 5.232 23.5 9 23.5c1.314 0 2.424-1.723 3.316-3.108.221-.344.428-.663.622-.938.475-.667 1.245-1.065 2.062-1.065s1.587.398 2.062 1.067c.194.272.401.593.622.935.892 1.385 2.002 3.109 3.316 3.109 3.769 0 6.569-2.45 7.31-6.396.393-2.089-.158-4.164-1.549-5.842zm.566 5.658c-.646 3.442-3.07 5.58-6.327 5.58-.769 0-1.837-1.659-2.476-2.651-.23-.356-.445-.688-.647-.972-.662-.931-1.737-1.487-2.877-1.487-1.14 0-2.215.555-2.877 1.486-.203.287-.417.618-.648.976-.639.99-1.706 2.648-2.475 2.648-3.256 0-5.681-2.139-6.328-5.581-.336-1.792.138-3.574 1.336-5.019 1.266-1.525 3.125-2.4 5.102-2.4h11.78c1.977 0 3.836.875 5.102 2.4 1.197 1.445 1.672 3.228 1.335 5.02z"/><path fill="#BBDDF5" d="M12.495 9.505l-8.977 8.977c.436 1.29 1.091 2.313 1.996 3.004L17.495 9.505h-5z"/><path fill="#3C96CE" d="M15 15c-1.837 0-3.674 4.215-5.511 7.227.827-.557 1.732-1.831 2.286-2.692.209-.325.405-.627.589-.888.527-.741 1.515-1.277 2.635-1.277 1.315 0 2.352.719 2.879 1.461.184.258.38.561.589.885.561.871 1.127 2.044 2.058 2.537C18.685 19.24 16.842 15 15 15z"/><path fill="#F4900C" d="M26 36c-3.557 0-6.874-1.914-8.659-4.995-.553-.956-.227-2.179.729-2.732.958-.554 2.18-.228 2.733.729C21.874 30.851 23.865 32 26 32c3.309 0 6-2.691 6-6V2c0-1.104.896-2 2-2s2 .896 2 2v24c0 5.514-4.486 10-10 10z"/><path fill="#292F33" d="M21.586 30.146l-3.732 1.44c-1.026.396-2.19-.12-2.586-1.146-.396-1.026.12-2.19 1.146-2.586l3.732-1.44c1.026-.396 2.19.12 2.586 1.146.396 1.027-.12 2.19-1.146 2.586z"/><path fill="#FFCC4D" d="M32 5h4v4h-4zm0 7h4v4h-4z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f941.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f941.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F18F26" d="M0 18h36v9H0z"/><ellipse fill="#F18F26" cx="18" cy="26" rx="18" ry="9"/><ellipse fill="#F18F26" cx="18" cy="27" rx="18" ry="9"/><path fill="#9D0522" d="M0 10v16h.117c.996 4.499 8.619 8 17.883 8s16.887-3.501 17.883-8H36V10H0z"/><ellipse fill="#F18F26" cx="18" cy="11" rx="18" ry="9"/><ellipse fill="#F18F26" cx="18" cy="12" rx="18" ry="9"/><path fill="#F18F26" d="M0 10h1v2H0zm35 0h1v2h-1z"/><ellipse fill="#FCAB40" cx="18" cy="10" rx="18" ry="9"/><ellipse fill="#F5F8FA" cx="18" cy="10" rx="17" ry="8"/><path fill="#FDD888" d="M18 3c9.03 0 16.395 3.316 16.946 7.5.022-.166.054-.331.054-.5 0-4.418-7.611-8-17-8S1 5.582 1 10c0 .169.032.334.054.5C1.605 6.316 8.97 3 18 3z"/><path d="M28.601 2.599c.44-.33.53-.96.2-1.4l-.6-.8c-.33-.44-.96-.53-1.4-.2L14.157 10.243c-.774-.167-1.785.083-2.673.749-1.326.994-1.863 2.516-1.2 3.4s2.275.794 3.6-.2c.835-.626 1.355-1.461 1.462-2.215l13.255-9.378zm5.868 2.919l-.509-.861c-.28-.474-.896-.632-1.37-.352l-13.913 8.751c-.719-.141-1.626.023-2.472.524-1.426.843-2.127 2.297-1.565 3.248.562.951 2.174 1.039 3.6.196 1.005-.594 1.638-1.49 1.735-2.301l14.142-7.835c.474-.281.632-.897.352-1.37z" fill="#AA695B"/><path fill="#DA2F47" d="M2 28c-.55 0-1-.45-1-1v-9c0-.55.45-1 1-1s1 .45 1 1v9c0 .55-.45 1-1 1zm9 4c-.55 0-1-.45-1-1v-9c0-.55.45-1 1-1s1 .45 1 1v9c0 .55-.45 1-1 1zm12 0c-.55 0-1-.45-1-1v-9c0-.55.45-1 1-1s1 .45 1 1v9c0 .55-.45 1-1 1zm11-4c-.55 0-1-.45-1-1v-9c0-.55.45-1 1-1s1 .45 1 1v9c0 .55-.45 1-1 1z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f94c.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f94c.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#BE1931" d="M28 12H13V8c0-.552.448-1 1-1h11c1.104 0 2-.896 2-2s-.896-2-2-2H14c-2.761 0-5 2.239-5 5v4H8c-1.104 0-2 .896-2 2s.896 2 2 2h20c1.104 0 2-.896 2-2s-.896-2-2-2z"/><path fill="#66757F" d="M36 25c0 3.313-2.687 6-6 6H6c-3.313 0-6-2.687-6-6v-5c0-3.313 2.687-6 6-6h24c3.313 0 6 2.687 6 6v5z"/><path fill="#99AAB5" d="M0 20h36v5H0z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f94f.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f94f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4900C" d="M35 21.526C35 26.758 27.389 31 18 31S1 26.758 1 21.526 7.625 11 18 11s17 5.294 17 10.526z"/><ellipse fill="#FFAC33" cx="18" cy="19.502" rx="16" ry="8.5"/><path fill="#FFD983" d="M18 11.331c-6.449 0-11.5 2.491-11.5 5.672 0 3.18 5.051 5.671 11.5 5.671 6.448 0 11.5-2.491 11.5-5.671 0-3.181-5.052-5.672-11.5-5.672z"/><ellipse fill="#FFAC33" cx="18" cy="18.002" rx="12" ry="6"/><path fill="#F4900C" d="M29 18.002c-1.81 3.118-7 4-11 4s-9.19-.882-11-4c-.75-1.292-1.5 1.083.5 3.083S14 24.402 18 24.402s8.5-1.317 10.5-3.317 1.25-4.374.5-3.083z"/><path fill="#E1E8ED" d="M35 1S24.497-.538 15.958 3C6.77 6.807 4 13 4 13c1.541-1.541 5.463-3.079 10.383-3.705 1.777-3.182 6.97-7.391 12.271-7.351 0 0-7.222 1.493-9.759 7.121C17.586 9.026 18.286 9 19 9c1.319 0 2.551.118 3.702.303.68-2.914 3.791-6.264 7.226-6.829 0 0-3.562 1.707-4.845 7.338C29.418 10.981 32 13 32 13c-4-8 3-12 3-12z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f950.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f950.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4900C" d="M11.569 35.41c-2.223-.63-5.362-4.11-6.86-7.331-.183-.391-1.101-.673-1.265-1.084C.953 20.775.637 12.54 6.342 6.834 12.751.425 20.537-.295 26.817 1.757c.45.147.837 1.114 1.286 1.199 5.917 1.115 8.322 7.549 5.759 6.816-1.199-.342-2.657-.557-3.814-.428-.437.049-1.051.892-1.544.962-.767.11-2.64.212-3.564.305-9.159.916-12.395 6.971-12.811 14.256-.046.808-.617.623-.73 1.283-.344 1.992 1.089 4.884 1.772 6.939.594 1.794.619 2.951-1.602 2.321z"/><path fill="#DB7803" d="M4.128 9.652c-1.439 2.333-2.158 4.906-2.333 7.505 2.615-1.499 6.334-2.652 12.393-.18.779-1.397 1.806-2.623 3.124-3.624-.992-.932-1.992-1.645-2.742-1.822-2.481-.588-7.17-2.213-10.442-1.879zm-.251 17.769c.324.215.719.416.832.658.032.069.069.139.103.209 1.92-1.11 4.42-1.707 6.553-1.642.006-.167.005-.339.032-.496.095-.552.506-.52.667-.965-4.887-1.059-6.75.812-8.187 2.236zM28.899 3.157c-.26-.074-.52-.148-.796-.2-.169-.032-.33-.19-.489-.382.918 2.123 1.899 5.032 1.024 7.689.467-.178 1.011-.875 1.409-.919.067-.007.143-.003.211-.008.206-1.704-.284-4.207-1.359-6.18z"/><path fill="#FFAC33" d="M2.038 14.915C1.084 11.663 2.419 2.294 14.659 0c2.133 0 10.133 1.272 6.527 16.257-.559 2.325-1.797 2.739-3.562 1.605-4.126-2.648-11.602-7.099-15.586-2.947z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f951.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f951.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3E721D" d="M35 5.904c2.394 6.042-1.438 20.543-10.5 26.5-9.06 5.957-20.395 3.573-23.097-6.443-1.669-6.186 2.79-10.721 11.851-16.677C22.315 3.327 32.64-.053 35 5.904z"/><path fill="#3E721D" d="M20.605 26.03c-6.523 4.546-15.287 5.15-18.469.582-3.183-4.566.418-12.578 6.943-17.124 6.522-4.545 21.951-9.796 25.134-5.23 3.183 4.57-7.085 17.226-13.608 21.772"/><path fill="#A6D388" d="M19.815 26.578c-5.757 4.013-13.482 3.097-16.29-.934C.718 21.613 4 14.474 9.757 10.463c5.755-4.011 20.258-9.264 23.068-5.234 2.807 4.03-4.825 16.175-13.01 21.349"/><path fill="#C6E5B3" d="M18.169 23.926c-4.506 3.14-9.939 3.127-12.136-.027-2.2-3.154-.33-8.255 4.176-11.395 4.507-3.141 15.835-7.238 18.035-4.084 2.199 3.154-5.567 12.366-10.075 15.506z"/><path fill="#662113" d="M11.162 12.488c3.48-2.332 7.382-1.495 9.798.995 1.433 1.477-.88 5.382-4.359 7.714-3.478 2.33-7.769 1.763-8.239.731-1.44-3.157-.677-7.109 2.8-9.44z"/><path fill="#7C3225" d="M13.071 13.106c1.51-1.013 3.414-.819 4.254.431.837 1.251.294 3.087-1.217 4.1-1.51 1.01-3.414.817-4.253-.433-.839-1.252-.294-3.086 1.216-4.098z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f955.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f955.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#77B255" d="M31.096 8.933c3.535-2.122 4.408-8.32 3.701-7.613.707-.707-5.657 0-7.778 3.536 0-1.414-1.414-7.071-3.535-2.121-2.122 4.95-1.415 5.657-1.415 7.071 0 1.414 2.829 1.414 2.829 1.414s-.125 2.704 1.29 2.704c1.414 0 1.997.583 6.946-1.538 4.95-2.122-.624-3.453-2.038-3.453z"/><path fill="#F4900C" d="M22.422 23.594C14.807 31.209 2.27 36.675.502 34.907c-1.768-1.768 3.699-14.305 11.313-21.92 7.615-7.615 11.53-7.562 14.85-4.243 3.319 3.32 3.372 7.235-4.243 14.85z"/><path d="M21.875 14.56c-.972-.972-2.77-2.785-4.692-6.106-.753.492-1.554 1.091-2.409 1.808 2.803 3.613 8.121 5.317 7.101 4.298zm-7.485 8.072c-1.041-1.041-3.03-3.05-5.105-6.846-.687.832-1.349 1.693-1.98 2.57 2.807 3.597 8.101 5.292 7.085 4.276zm9.301-.351c-3.581-2.008-5.49-3.91-6.502-4.921-1.02-1.022.692 4.315 4.317 7.114.311-.29 1.786-1.767 2.185-2.193zm-12.183 9.324c.895-.492 1.804-1.025 2.715-1.597-3.273-1.905-5.069-3.683-6.034-4.648-.922-.923.386 3.347 3.319 6.245z" fill="#D67503"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f956.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f956.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EDB980" d="M12.697 31.165c-3.785 3.785-8.273 3.838-9.841 2.271-1.568-1.568-1.514-6.056 2.271-9.841L24.052 4.67c3.785-3.784 8.271-3.838 9.84-2.271 1.567 1.568 1.515 6.056-2.271 9.841L12.697 31.165z"/><path d="M24.322 7.969c1.568 1.568 2.758 2.917 3.595 2.082.152-.152.241-.349.301-.565-.018-.043-.036-.087-.041-.136-.128-1.148-2.41-3.641-4.08-4.721l-.045.042-1.474 1.474c.438.539 1.064 1.144 1.744 1.824zm-4.543 4.542c1.568 1.568 2.76 2.917 3.597 2.082.152-.152.241-.35.301-.567-.018-.043-.036-.086-.041-.135-.127-1.148-2.411-3.643-4.083-4.722l-1.517 1.517c.437.54 1.063 1.145 1.743 1.825zm-4.54 4.542c1.567 1.568 2.759 2.918 3.595 2.081.152-.152.241-.349.301-.565-.018-.043-.036-.087-.042-.136-.128-1.148-2.412-3.642-4.083-4.721l-1.517 1.517c.439.539 1.065 1.144 1.746 1.824zm-4.542 4.542c1.567 1.567 2.759 2.919 3.596 2.082.152-.152.241-.35.301-.566-.018-.043-.036-.087-.042-.136-.127-1.148-2.411-3.643-4.082-4.722L8.953 19.77c.437.54 1.063 1.145 1.744 1.825zm-4.542 4.541c1.567 1.568 2.759 2.919 3.596 2.082.152-.152.241-.35.301-.566-.018-.043-.036-.086-.042-.135-.128-1.148-2.412-3.643-4.083-4.722l-.801.801c-.246.246-.475.496-.691.747.437.532 1.053 1.126 1.72 1.793z" fill="#E5A157"/><path d="M24.859 3.932c-.126.106-.634.569-.762.696 1.67 1.08 3.952 3.574 4.08 4.721.005.049.023.093.042.136.077.182.252.309.455.309l.057-.003c.274-.031.472-.278.441-.553-.164-1.452-2.382-4-4.313-5.306zm-4.583 4.514l-.724.724c1.671 1.079 3.956 3.574 4.083 4.722.005.049.023.092.041.135.076.183.252.31.455.31l.057-.003c.274-.031.472-.278.441-.552-.162-1.464-2.411-4.04-4.353-5.336zm-4.541 4.541l-.724.724c1.671 1.079 3.955 3.574 4.083 4.721.005.049.023.093.042.136.077.182.252.309.454.309l.057-.003c.274-.031.472-.278.441-.552-.163-1.463-2.412-4.038-4.353-5.335zm-4.542 4.541l-.724.724c1.671 1.079 3.955 3.574 4.082 4.722.005.049.023.093.042.136.077.183.252.309.455.309l.056-.003c.274-.03.472-.277.442-.552-.163-1.463-2.411-4.039-4.353-5.336zm-4.542 4.543l-.724.724c1.671 1.079 3.955 3.574 4.083 4.722.005.049.023.092.042.135.077.182.252.309.455.309.019 0 .037-.001.056-.003.274-.03.472-.278.442-.553-.164-1.462-2.413-4.038-4.354-5.334z" fill="#FFD983"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f95c.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f95c.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D99E82" d="M17.256 31.519c-4.754 4.754-11.207 5.573-14.683 2.097C-.902 30.141.056 23.55 4.672 18.934c3.355-3.356 6.711-3.356 9.228-5.873 2.517-2.516 1.678-5.033 5.454-8.809C23.968-.361 29.84-1.201 33.616 2.574c3.774 3.776 2.832 9.754-1.678 14.263-3.775 3.775-6.292 2.936-8.809 5.452-2.518 2.518-2.518 5.873-5.873 9.23z"/><path fill="#C1694F" d="M8.211 21.397c-.324 0-.643-.157-.835-.448-.305-.46-.179-1.081.282-1.386.682-.451 1.438-.853 2.245-1.193 3.938-1.516 6.902-4.208 7.765-7.037.161-.529.721-.829 1.248-.665.529.161.826.72.666 1.248-1.039 3.406-4.46 6.589-8.931 8.309-.665.28-1.31.623-1.889 1.006-.17.113-.361.166-.551.166zm-5.044 8.937h-.022c-.552-.012-.99-.47-.979-1.021.047-2.164.385-4.916 2.601-7.002.403-.377 1.036-.358 1.414.043.379.402.359 1.035-.042 1.414-1.666 1.567-1.932 3.704-1.972 5.588-.012.544-.458.978-1 .978zm4.125-.709c-.082 0-.166-.01-.249-.031-.535-.137-.858-.682-.721-1.217.562-2.191 1.782-5.277 5.875-6.774.517-.188 1.093.077 1.282.596.19.519-.077 1.093-.596 1.283-3.171 1.159-4.137 3.49-4.625 5.392-.113.451-.52.751-.966.751zm17.667-11.041c-.412 0-.798-.257-.943-.667-.184-.521.09-1.092.61-1.276 4.279-1.51 6.849-4.449 7.856-8.982.12-.54.657-.874 1.193-.759.539.12.879.654.76 1.193-1.154 5.19-4.23 8.701-9.144 10.435-.109.037-.222.056-.332.056z"/><path fill="#C1694F" d="M24.459 14.875c-.397 0-.774-.24-.93-.632-.203-.514.048-1.095.562-1.298 1.722-.682 3.378-2.263 4.12-3.935.225-.502.813-.732 1.32-.508.505.225.731.815.508 1.32-.956 2.151-3.002 4.107-5.212 4.982-.121.049-.245.071-.368.071zm-8.709 7.209c-.395 0-.768-.234-.926-.622-.209-.512.037-1.095.548-1.304.955-.39 1.979-1.345 2.266-1.832.28-.476.895-.635 1.369-.354.477.28.635.893.354 1.369-.513.873-1.864 2.11-3.233 2.669-.124.051-.252.074-.378.074zm4-12.667c-.108 0-.22-.018-.328-.056-.522-.181-.798-.751-.617-1.272.4-1.152 1.234-2.255 2.124-2.812.469-.293 1.086-.15 1.378.318.293.468.15 1.085-.317 1.378-.421.263-1.017.973-1.295 1.772-.144.413-.531.672-.945.672zM6.457 33.915c-.49 0-.917-.358-.988-.857-.064-.451 0-1.253.098-1.691.12-.539.659-.87 1.193-.759.539.12.879.655.759 1.194-.064.286-.09.824-.069.975.076.546-.305 1.053-.852 1.129-.048.006-.095.009-.141.009z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f95d.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f95d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1694F" d="M25.94 15.188c2.045 8.239-1.642 16.246-8.235 17.881-6.592 1.636-13.593-3.719-15.638-11.958-2.044-8.24 1.642-16.246 8.236-17.882 6.59-1.636 13.593 3.718 15.637 11.959z"/><path fill="#C1694F" d="M34.146 13.151c2.391 9.635-6.295 17.402-14.948 19.548-8.653 2.146-14.34-3.532-16.385-11.773-2.044-8.24.328-15.92 8.98-18.066 8.652-2.148 19.801.005 22.353 10.291z"/><path fill="#77B255" d="M24.448 15.558c1.789 7.211-1.438 14.215-7.205 15.646-5.768 1.434-11.895-3.253-13.685-10.463-1.788-7.21 1.438-14.215 7.207-15.647 5.766-1.43 11.893 3.254 13.683 10.464z"/><path fill="#A6D388" d="M12.871 5.837c4.713 0 9.174 4.19 10.607 9.962.811 3.267.56 6.581-.707 9.331-1.231 2.674-3.28 4.486-5.768 5.103-.61.152-1.238.228-1.868.228-4.712 0-9.172-4.19-10.605-9.962-1.654-6.662 1.252-13.138 6.476-14.434.609-.151 1.236-.228 1.865-.228m0-1c-.702 0-1.406.084-2.106.257-5.769 1.432-8.995 8.437-7.206 15.647 1.572 6.335 6.492 10.721 11.575 10.721.702 0 1.409-.084 2.109-.258 5.766-1.431 8.994-8.435 7.205-15.646-1.573-6.335-6.494-10.721-11.577-10.721z"/><g fill="#A6D388"><path d="M18.974 18.518l-2.799 1.311 1.656 4.152-2.955-2.326-.697 4.171-1.378-4.098-2.651 1.745 1.006-3.976-3.043-1.701 2.8-1.315-1.657-4.149 2.957 2.115.697-4.172 1.379 4.31 2.645-1.745-1.001 3.973z"/><path d="M14.178 26.826c-.426 0-.81-.271-.947-.682l-.964-2.868-1.567 1.032c-.343.228-.792.221-1.129-.021-.336-.238-.491-.66-.39-1.06l.817-3.232-2.373-1.326c-.328-.184-.525-.534-.512-.908.013-.375.235-.71.574-.87l1.947-.914-1.308-3.274c-.165-.413-.038-.884.312-1.158.35-.273.838-.284 1.199-.026l1.653 1.183.432-2.59c.076-.456.454-.8.914-.833.472-.022.885.253 1.025.693l.977 3.053 1.544-1.019c.344-.227.794-.22 1.129.019.336.239.492.66.391 1.06l-.813 3.231 2.373 1.33c.326.184.523.535.51.909-.014.375-.235.71-.574.869l-1.945.912 1.307 3.276c.168.42.032.9-.33 1.171-.363.271-.862.265-1.217-.015l-1.628-1.282-.419 2.506c-.076.452-.45.796-.907.832l-.081.002zm-1.377-6.098c.11 0 .22.018.326.055.293.102.523.333.622.627l.103.306.038-.225c.058-.349.296-.64.625-.768.329-.126.701-.071.979.146l.027.021-.275-.691c-.196-.491.025-1.051.504-1.275l1.036-.485-1.342-.752c-.394-.221-.591-.679-.481-1.117l.372-1.477-.496.327c-.261.172-.588.213-.883.109-.295-.104-.524-.34-.62-.639l-.12-.375-.016.097c-.057.34-.285.627-.604.759-.318.133-.683.09-.964-.11l-.181-.129.391.979c.196.492-.024 1.051-.503 1.276l-1.038.487 1.343.75c.395.221.593.68.481 1.118l-.374 1.479.5-.329c.166-.109.357-.164.55-.164z"/></g><g fill="#C6E5B3"><path d="M16.788 18.019l-1.709.812 1.076 2.538-1.846-1.288-.378 2.556-.91-2.634-1.606 1.077.566-2.437-1.902-1.034 1.706-.813-1.078-2.539 1.852 1.286.373-2.556.911 2.637 1.61-1.079-.567 2.438z"/><path d="M13.931 23.137c-.211 0-.402-.134-.472-.337l-.698-2.021-1.066.716c-.17.114-.394.114-.563-.004-.169-.116-.25-.324-.203-.524l.48-2.066-1.569-.852c-.165-.09-.266-.265-.261-.453s.115-.357.285-.438l1.274-.607-.891-2.099c-.087-.205-.028-.443.145-.583.173-.141.417-.149.601-.022l1.188.826.256-1.757c.033-.228.218-.404.448-.425.228-.028.444.116.52.334l.7 2.024 1.071-.718c.171-.114.394-.112.562.004.169.117.25.325.203.525l-.48 2.067 1.568.854c.165.09.266.265.261.453-.005.188-.116.357-.285.438l-1.277.607.89 2.097c.087.205.028.443-.146.584-.173.141-.418.147-.601.021l-1.184-.826-.26 1.757c-.034.228-.219.403-.448.425h-.048zm-.91-3.634c.053 0 .107.009.159.026.147.049.263.164.313.311l.243.701.079-.533c.025-.171.138-.317.296-.386.159-.067.341-.051.484.049l.421.294-.398-.938c-.104-.247.004-.532.246-.646l.823-.392-1.04-.566c-.197-.107-.299-.333-.248-.552l.28-1.205-.558.374c-.129.086-.292.106-.438.059-.147-.049-.263-.164-.313-.311l-.241-.697-.077.525c-.025.171-.137.317-.295.386-.16.069-.342.051-.484-.048l-.429-.298.401.945c.104.246-.003.531-.245.646l-.821.391 1.041.565c.197.107.299.334.248.553l-.279 1.203.553-.371c.083-.056.18-.085.279-.085z"/></g><path fill="#292F33" d="M9.306 14.957c.229.497.147 1.024-.185 1.178-.332.153-.786-.127-1.016-.624-.229-.497-.147-1.024.185-1.177.331-.154.786.126 1.016.623zm6.698-2.936c-.129.532-.521.894-.876.809-.356-.087-.538-.589-.409-1.121.129-.532.521-.894.877-.807.354.085.537.586.408 1.119zm-2.644 9.914c-.129.532-.52.894-.875.809-.357-.087-.539-.588-.41-1.12.129-.531.521-.895.877-.808.354.086.537.587.408 1.119zm3.216 2.178c.229.497.147 1.023-.185 1.179-.331.151-.786-.128-1.016-.625-.228-.496-.148-1.023.185-1.178.332-.152.787.127 1.016.624zm1.121-7.683c-.304.292-.68.391-.843.225-.161-.17-.045-.542.258-.835.303-.292.681-.393.843-.224.162.169.047.542-.258.834zm-5.274-2.365c.181.38.158.768-.053.871-.212.098-.53-.129-.71-.509-.18-.38-.156-.77.056-.871.21-.101.528.128.707.509zm-3.98 7.094c-.304.292-.679.392-.843.225-.16-.169-.045-.542.258-.834.303-.291.68-.393.843-.225.162.169.047.542-.258.834zm10.622-.928c.329.356.382.842.116 1.093-.267.246-.752.159-1.082-.195-.33-.356-.384-.843-.116-1.094.267-.248.751-.16 1.082.196z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f95e.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f95e.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><ellipse fill="#929497" cx="18" cy="23.949" rx="18" ry="10"/><ellipse fill="#CCD6DC" cx="18" cy="22.199" rx="18" ry="10"/><path fill="#F19020" d="M32 20.393c0 4.295-6.268 7.778-14 7.778S4 24.688 4 20.393s6.268-7.778 14-7.778 14 3.483 14 7.778z"/><path fill="#FAAA35" d="M32 18.239c0 4.295-6.268 7.778-14 7.778S4 22.534 4 18.239s6.268-7.778 14-7.778 14 3.483 14 7.778z"/><path fill="#F19020" d="M32 16.085c0 4.295-6.268 7.778-14 7.778S4 20.381 4 16.085s6.268-7.778 14-7.778 14 3.483 14 7.778z"/><path fill="#FAAA35" d="M32 13.932c0 4.295-6.268 7.778-14 7.778S4 18.227 4 13.932s6.268-7.778 14-7.778 14 3.482 14 7.778z"/><path fill="#F19020" d="M32 11.778c0 4.295-6.268 7.778-14 7.778S4 16.073 4 11.778 10.268 4 18 4s14 3.483 14 7.778z"/><path fill="#E18524" d="M28.316 23.498c-.726.439-1.542.832-2.431 1.17.119.557.468.846.87.846.601 0 1.32-.647 1.561-2.016"/><path fill="#E5922E" d="M28.401 21.292c-.765.471-1.632.89-2.583 1.247.013.708.024 1.262.024 1.691 0 .161.015.307.043.438.889-.337 1.705-.73 2.431-1.17.053-.304.083-.643.083-1.018l.002-1.188"/><path fill="#E18524" d="M28.41 19.132c-.776.479-1.658.905-2.625 1.265.009.834.021 1.543.032 2.142.95-.356 1.818-.775 2.583-1.247.003-.829.006-1.553.01-2.16"/><path fill="#E5922E" d="M28.433 16.955l-2.658 1.284c0 .799.005 1.516.011 2.158.967-.36 1.849-.786 2.625-1.265.009-1.401.022-2.177.022-2.177"/><path fill="#D17A28" d="M15.341 6.359c-3.971-1.211-5.645-.6-5.384 2.524.067.808-1.043 2.154-2.154 2.928-2.583 1.8-1.473 4.809 2.962 2.591 2.221-1.11 5.46-1.035 9.389.168 3.298 1.01 5.351 2.187 5.62 3.668.875-.296 1.942-.759 2.659-1.284-.271-.614-1.481-2.418-3.399-3.259-3.628-1.591-.124-3.884 2.591-4.442 2.457-.505.034-2.356-3.702-2.288-3.735.068-2.796 1.16-8.582-.606z"/><path fill="#FAAA35" d="M22.122 8.571s.107 1.247-.315 1.487l-3.046 1.736c-.421.24-1.102.24-1.523 0l-3.046-1.736c-.421-.24-.316-1.511-.316-1.511l8.246.024z"/><path fill="#FFD882" d="M21.807 8.113c.221.126.326.293.315.458-.01.149-.115.296-.315.41l-3.046 1.736c-.421.24-1.102.24-1.523 0l-3.046-1.736c-.21-.12-.316-.277-.316-.434 0-.157.105-.314.316-.434l3.046-1.736c.421-.24 1.102-.24 1.523 0l3.046 1.736z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f965.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f965.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#8B5E3C" d="M5.506 30.167c-7.03-7.029-6.397-19.059 1.414-26.87l25.456 25.456c-7.811 7.811-19.841 8.443-26.87 1.414z"/><path fill="#603913" d="M6.92 3.297c-3.905 3.905-1.373 12.77 5.656 19.8 7.031 7.029 15.895 9.561 19.799 5.656 3.905-3.904 1.374-12.769-5.657-19.799C19.69 1.924 10.825-.607 6.92 3.297z"/><path fill="#F5F8FA" d="M31.591 24.217c.229.229.56.336.887.276.387-.071.696-.362.79-.745.067-.269 1.575-6.67-3.013-11.258-1.12-1.12-2.783-3.774-3.256-4.544-.4-.415-.733-.27-1.498-1.035-.35-.35-1.405-2.248-4.439.629-.35.332-.39.878-.116 1.275l10.528 15.263c.036.05.075.097.117.139z"/><path fill="#603913" d="M24.271 7.562c.707.707 1.458 1.417 1.458 1.417s2.404 2.804 3.819 4.218c4.242 4.243 2.75 10.313 2.75 10.313L20.646 7.833s2.792-1.042 3.625-.271zm1.271-1.354c-1.833-1.438-4.777-.315-5.5.396-.683.683-.467 1.984.081 2.778l10.528 15.263c.07.101.147.193.232.278.46.46 1.121.673 1.775.553.774-.142 1.393-.725 1.581-1.489.072-.293 1.705-7.223-3.277-12.205-.892-.892-1.938-1.738-2.909-2.913-.329-.423-1.186-1.441-2.074-2.328l-.437-.333z"/><path fill="#F5F8FA" d="M8.334 4.711c-3.124 3.124-.592 10.722 5.657 16.97 6.247 6.248 13.846 8.781 16.97 5.657 3.124-3.124.591-10.723-5.657-16.971-6.248-6.247-13.846-8.78-16.97-5.656z"/><path fill="#99AAB5" d="M10.411 6.877c-2.318 2.318-.083 8.314 4.994 13.391 5.078 5.078 11.072 7.312 13.391 4.994 2.318-2.318.083-8.313-4.994-13.391-5.076-5.078-11.072-7.313-13.391-4.994z"/><path fill="#99AAB5" d="M20.199 9.939l1.176-.335c.562-.312 1.354-.333 1.896.167l1.211 1.273c.573.69 1.919 2.137 2.995 3.213 3.807 3.807 2.319 8.722 2.253 8.93-.057.182-.213.315-.401.344-.159.024-.318-.029-.429-.141-.021-.021-.04-.043-.058-.068l-8.797-12.669c-.079-.114-.108-.254-.078-.39.029-.135.113-.252.232-.324z"/><path fill="#F5F8FA" d="M23.76 26.056s-3.209-2.085-3.771-3.771c-.628-1.885-4.662-2.252-5.29-4.138-.627-1.885-1.676-4.765-2.253-5.918-.576-1.153-1.258-.001-1.886-1.886-.628-1.887-1.885-3.144-1.885-3.144s0 8.801 1.885 10.686c1.886 1.886 9.429 9.429 10.058 8.799.628-.628 3.142-.628 3.142-.628z"/><path fill="#603913" d="M22.838 27.73s-3.73-2.537-4.316-4.294c-.655-1.964-5.29-2.619-5.944-4.583-.655-1.964-1.596-5.486-1.913-5.892-.916-1.18-1.309-.001-1.964-1.964-.655-1.965-1.964-3.274-1.964-3.274s0 9.166 1.964 11.13c1.964 1.965 9.82 9.821 10.476 9.166.655-.654 3.661-.289 3.661-.289z"/><path fill="#8B5E3C" d="M21.769 29.46s-3.61-2.345-4.242-4.242c-.707-2.121-6.365-3.536-7.072-5.657-.707-2.122-.707-4.95-1.414-5.657-.707-.708-1.414 0-2.121-2.122-.707-2.121-2.121-3.535-2.121-3.535s0 9.9 2.121 12.021 10.606 10.606 11.313 9.899c.708-.707 3.536-.707 3.536-.707z"/><path fill="#A97C50" d="M10.811 32.853c.091-.285.836-.061 1.113.001 6.934 1.526 11.66-1.385 11.712-1.409.272-.136.579-.034.685.224.106.258-.026.577-.296.712-.225.112-4.808 2.55-12.125.939-.091-.021-.721-.131-.781-.191-.123-.123-.37-.084-.308-.276zm-8.364-9.968c.115.114.108.212.29.165.288-.073.299-.517.255-.798-.492-3.192.36-6.504 1.841-10.352.107-.281-.027-.575-.294-.652-.272-.08-.579.084-.687.364-1.555 4.034-2.057 7.636-1.536 11.013.017.104.064.192.131.26zm10.357 9.178c.07.071.167.118.279.132 3.769.426 6.893-1.137 7.024-1.204.269-.137.4-.456.291-.714-.108-.259-.417-.356-.688-.218-.029.015-2.743 1.843-6.181 1.453-.285-.032-.826-.016-.889.275-.036.177.053.166.164.276z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f966.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f966.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#77B255" d="M23.013 24.322l-5.546-5.546-5.547-5.546S12.375 24.413.737 27.323c0 0 1.032 2.487 3.364 4.819s4.819 3.364 4.819 3.364c2.91-11.639 14.093-11.184 14.093-11.184z"/><path fill="#5C913B" d="M13.83 16.594c-.727 3.637-5.092 9.456-5.092 9.456l8.728-8.728c2.909-2.909-3.636-.728-3.636-.728zm12.365 6.546s-10.91.727-17.457 5.819c8.001-8.001 11.638-8.728 11.638-8.728l5.819 2.909z"/><path fill="#3E721D" d="M30.156 28.192c.667.045 1.348-.178 1.858-.688.937-.937.937-2.457 0-3.394-.085-.085-.18-.154-.274-.224.411-.101.802-.304 1.123-.625.311-.311.509-.688.613-1.084.396-.105.773-.302 1.084-.613.937-.937.937-2.457 0-3.394.937-.937.937-2.457 0-3.394-.352-.352-.786-.572-1.241-.659.43-.893.284-1.994-.456-2.735-.321-.321-.712-.524-1.123-.625.094-.07.189-.139.274-.224.937-.937.937-2.457 0-3.394-.741-.741-1.842-.887-2.735-.456-.088-.455-.307-.889-.659-1.241-.51-.51-1.191-.732-1.858-.688.045-.667-.178-1.348-.688-1.858-.937-.937-2.457-.937-3.394 0-.741-.741-1.842-.887-2.735-.456-.088-.455-.307-.889-.659-1.241-.937-.937-2.457-.937-3.394 0-.352.352-.572.786-.659 1.241-.893-.43-1.994-.284-2.735.456-.321.321-.524.712-.625 1.123-.07-.094-.139-.189-.224-.274-.937-.937-2.457-.937-3.394 0-.742.739-.888 1.84-.458 2.734-.455.087-.889.307-1.241.659-.937.937-.937 2.457 0 3.394.321.321.712.524 1.123.625-.094.07-.189.139-.274.224-.937.937-.937 2.457 0 3.394.352.352.786.572 1.241.659-.43.893-.284 1.994.456 2.735.741.741 1.842.887 2.735.456.088.455.307.889.659 1.241.321.321.712.524 1.123.625-.094.07-.189.139-.274.224-.937.937-.937 2.457 0 3.394.741.741 1.842.887 2.735.456.088.455.307.889.659 1.241.636.636 1.537.83 2.345.603.064.084.124.169.201.246.51.51 1.191.732 1.858.688-.045.667.178 1.348.688 1.858.937.937 2.457.937 3.394 0 .085-.085.154-.18.224-.274.101.411.304.802.625 1.123.937.937 2.457.937 3.394 0 .51-.51.732-1.191.688-1.858z"/><circle fill="#5C913B" cx="10.92" cy="5.683" r="1.543"/><circle fill="#5C913B" cx="15.285" cy="5.683" r="1.543"/><circle fill="#5C913B" cx="18.194" cy="2.774" r="1.543"/><circle fill="#5C913B" cx="21.831" cy="4.956" r="1.543"/><circle fill="#5C913B" cx="24.74" cy="4.956" r="1.543"/><circle fill="#5C913B" cx="25.468" cy="7.138" r="1.543"/><circle fill="#5C913B" cx="27.65" cy="7.865" r="1.543"/><circle fill="#5C913B" cx="30.559" cy="9.32" r="1.543"/><circle fill="#5C913B" cx="29.832" cy="11.502" r="1.543"/><circle fill="#5C913B" cx="32.014" cy="15.139" r="1.543"/><circle fill="#5C913B" cx="32.741" cy="18.776" r="1.543"/><circle fill="#5C913B" cx="26.922" cy="11.502" r="1.543"/><circle fill="#5C913B" cx="24.013" cy="8.593" r="1.543"/><circle fill="#5C913B" cx="20.376" cy="6.411" r="1.543"/><circle fill="#5C913B" cx="16.012" cy="7.865" r="1.543"/><circle fill="#5C913B" cx="17.467" cy="6.411" r="1.543"/><circle fill="#5C913B" cx="13.102" cy="9.32" r="1.543"/><circle fill="#5C913B" cx="20.376" cy="10.775" r="1.543"/><circle fill="#5C913B" cx="25.468" cy="15.866" r="1.543"/><circle fill="#5C913B" cx="26.922" cy="20.231" r="1.543"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f968.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f968.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4900C" d="M35 16c0-8-6-11-12-11-1.738 0-3.472.371-5 1.097C16.472 5.371 14.738 5 13 5 7 5 1 8 1 16c0 3 1.314 5.662 3 8 .434.602.903 1.146 1.4 1.647-.357.603-.616 1.091-.779 1.353C4 28 5 29 6 29c.69 0 1.205-.617 1.745-1.482C10.552 29.273 14.023 30 18 30s7.448-.727 10.255-2.482C28.795 28.383 29.31 29 30 29c1 0 2-1 1.379-2-.163-.262-.422-.75-.779-1.353.497-.501.967-1.046 1.4-1.647 1.686-2.338 3-5 3-8zm-17 1.207C16.578 15.736 17 14 17 14c0-.708.381-1.414 1-2.034.619.62 1 1.326 1 2.034 0 0 .422 1.736-1 3.207zM8.215 19.94C6.59 17.687 6.204 15.388 7 13c1.053-3.158 4.85-3 6-3 .288 0 .576.024.861.059C13.314 11.185 13 12.498 13 14c0 1.476.578 3.273 1.951 4.799-.298.075-.61.144-.951.201-1.907.318-3.471 1.122-4.745 2.107-.375-.355-.73-.736-1.04-1.167zM18 24c-2.296 0-4.476-.394-6.324-1.266.657-.372 1.415-.642 2.324-.734 1.565-.157 2.885-.524 4-1.024 1.115.5 2.435.867 4 1.024.909.092 1.667.362 2.324.734C22.476 23.606 20.296 24 18 24zm9.785-4.06c-.311.431-.665.812-1.04 1.167C25.471 20.122 23.906 19.318 22 19c-.341-.057-.653-.126-.95-.201C22.422 17.273 23 15.476 23 14c0-1.502-.313-2.815-.861-3.941.285-.035.573-.059.861-.059 1.15 0 4.947-.158 6 3 .796 2.388.41 4.687-1.215 6.94z"/><path fill="#AD5810" d="M11.751 22.764c-.794.448-1.78 1.172-2.376 2.236-.688 1.229-1.218 2.033-1.584 2.544.335.207.679.402 1.032.581.353-.692.878-1.653 1.552-2.688.768-1.179 1.902-1.912 2.489-2.238-.381-.131-.756-.269-1.113-.435zm11.692-.434l-.005.002c.314.114.611.247.886.402-.19.09-.399.153-.597.233.564.415 1.348 1.092 1.96 2.032.74 1.136 1.377 2.218 1.797 2.952.26-.14.521-.278.771-.435.188.3.372.567.562.792 0 0-.562-.792-2.004-3.31s-3.37-2.668-3.37-2.668zm-2.393-3.531c.05-.055.09-.112.138-.168-.568.444-1.34 1.055-2.023 1.622-.358.297-.763.531-1.161.724.401.18.839.335 1.296.477.524-.293 1.157-.698 1.701-1.204.56-.521.892-.92 1.081-1.23-.029-.005-.054-.015-.082-.02-.341-.057-.653-.126-.95-.201zm-2.467-6.088c.732-.612 2.127-1.524 3.951-1.669-.109-.324-.233-.637-.376-.935-.583.091-1.385.249-2.158.518-.877.305-1.58.914-1.998 1.344.235.236.423.486.581.742z"/><g fill="#FFE8B6"><circle cx="7" cy="22" r="1"/><circle cx="3" cy="14" r="1"/><circle cx="6" cy="11" r="1"/><circle cx="12" cy="7" r="1"/><circle cx="14" cy="27" r="1"/><circle cx="21" cy="26" r="1"/><circle cx="25" cy="27" r="1"/><circle cx="31" cy="17" r="1"/><circle cx="31" cy="9" r="1"/><circle cx="22" cy="8" r="1"/><circle cx="19" cy="9" r="1"/></g></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f96c.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f96c.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5C913B" d="M29.866 24.625c2.522-.841 5.884-4.203 5.884-5.884s-2.522-.841-1.681-3.362 1.681-5.043 0-6.724-3.362 0-5.043-1.681 0-3.362-1.681-5.043-4.203-.841-6.724 0S18.939.25 17.258.25s-5.043 3.362-5.884 5.884-2.521.84-3.361 3.362c-.78 2.341.177 4.823-1.972 9.748-1.026 1.621-1.995 3.178-2.899 4.543C-.836 29.792.449 35.552.449 35.552s5.76 1.285 11.765-2.693c1.365-.904 2.922-1.873 4.543-2.899 4.925-2.15 7.407-1.192 9.748-1.972 2.521-.841.84-2.522 3.361-3.363z"/><path fill="#679E44" d="M34.253 19.017c-.103-.312-.438-.483-.75-.379-3.21 1.054-5.749.677-7.001.349 2.811-2.865 5.337-5.842 7.222-8.589.186-.271.116-.641-.154-.827-.271-.187-.641-.116-.826.154-1.082 1.576-2.403 3.251-3.878 4.944.082-1.765-.065-4.516-1.327-7.238-.139-.298-.492-.427-.789-.289-.298.138-.428.491-.289.789 1.679 3.623 1.194 7.416 1.062 8.235-1.369 1.489-2.837 2.973-4.356 4.402.156-1.873.084-4.922-1.559-7.337-.183-.271-.552-.343-.825-.158-.271.185-.342.554-.157.826 1.957 2.879 1.347 7.003 1.178 7.925-2.44 2.2-4.953 4.211-7.33 5.836 1.535-2.474 3.146-6.37 2-10.845-.082-.318-.406-.511-.723-.428-.318.082-.51.405-.428.723 1.679 6.557-3.33 11.987-3.778 12.456-5.407 3.356-8.373 4.368-8.407 4.379-.311.104-.479.439-.375.751.083.249.314.407.563.407.062 0 .125-.01.187-.03.16-.054 3.996-1.354 11.056-6.036 1.365-.905 2.768-1.936 4.176-3.05.695.426 2.288 1.141 5.162 1.141.804 0 1.706-.057 2.717-.19.325-.043.554-.342.511-.667-.042-.325-.349-.555-.667-.511-3.704.492-5.777-.136-6.717-.581 1.974-1.619 3.937-3.396 5.799-5.235.617.218 1.922.586 3.735.586 1.299 0 2.854-.189 4.592-.761.309-.105.478-.441.376-.752z"/><path fill="#3E721D" d="M12.753 24.327c.456-.09 1.009-.182 1.61-.281 3.811-.633 7.752-1.288 7.752-3.729 0-1.241-.664-1.982-1.101-2.436.25-.076.59-.147.825-.198 1.07-.227 2.402-.51 2.983-1.69.359-.729.313-1.608-.143-2.635.416-.307 1.58-.678 2.308-.909 1.796-.572 3.493-1.113 3.959-2.504.163-.484.223-1.25-.409-2.144-.008-.011-.02-.035-.028-.05-.495-.084-.989-.284-1.484-.778-.313-.313-.509-.626-.632-.939.234.645.845 2.094 1.123 2.486 2.031 2.872-7.321 2.534-6.024 5.247 1.541 3.222-2.907 2.206-3.747 3.467-.841 1.261 1.121 1.401 1.121 3.082s-5.746 2.271-8.354 2.783C7.243 24.136.448 35.552.448 35.552s.508.11 1.363.165c2.052-3.324 7.257-10.666 10.942-11.39z"/><path fill="#77B255" d="M12.512 23.101c2.608-.512 8.354-1.102 8.354-2.783s-1.961-1.821-1.121-3.082c.841-1.261 5.288-.245 3.747-3.467-1.298-2.713 8.055-2.375 6.024-5.247-.322-.455-1.094-2.335-1.205-2.729-.363-1.287.321-2.574-.967-3.861-1.681-1.681-4.203-.841-6.724 0S18.939.25 17.258.25s-5.043 3.362-5.884 5.884-2.521.84-3.361 3.362c-.78 2.341.177 4.823-1.972 9.748-1.026 1.621-1.995 3.178-2.899 4.543C-.836 29.792.449 35.552.449 35.552s6.794-11.416 12.063-12.451z"/><path fill="#A6D388" d="M28.4 8.292c-2.723-1.262-5.475-1.409-7.24-1.326 1.693-1.476 3.367-2.797 4.944-3.878.271-.186.34-.556.154-.827-.186-.27-.556-.339-.826-.154-2.747 1.884-5.724 4.411-8.589 7.222-.329-1.253-.706-3.791.349-7.001.103-.312-.067-.648-.379-.75-.31-.103-.647.067-.75.379-1.366 4.158-.55 7.265-.176 8.328-1.839 1.862-3.616 3.824-5.235 5.799-.445-.94-1.071-3.013-.58-6.719.043-.325-.186-.624-.511-.667-.32-.043-.623.184-.667.51-.613 4.63.407 6.991.951 7.879-1.115 1.408-2.145 2.811-3.05 4.176C2.112 28.323.812 32.159.759 32.318c-.104.312.065.647.376.751.062.021.125.03.188.03.249 0 .481-.157.564-.406.011-.034 1.023-2.999 4.378-8.406.463-.446 5.882-5.465 12.456-3.778.314.079.642-.111.723-.429.081-.318-.11-.642-.429-.724-4.475-1.144-8.373.468-10.848 2.003 1.625-2.378 3.637-4.893 5.838-7.334.923-.169 5.047-.777 7.925 1.18.103.069.219.103.333.103.19 0 .378-.091.492-.26.185-.271.114-.641-.157-.826-2.416-1.642-5.465-1.714-7.338-1.558 1.428-1.518 2.912-2.986 4.401-4.355.814-.134 4.598-.625 8.236 1.061.081.038.166.056.25.056.224 0 .438-.128.539-.345.142-.298.012-.652-.286-.789z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f96d.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f96d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#77B255" d="M26.38 3.539c.483-.039 1.259-.655 1.664-.595.405.06 1.573 1.078 1.67 1.283.097.205-.637 1.178-.746 1.48-.109.302-.64.239-1.51-.543-.869-.782-1.078-1.625-1.078-1.625z"/><path fill="#EA564B" d="M12.3 3.139c4.545-2.66 11.267-2.611 13.685-.58 1.617 1.358 2.942 2.401 4.474 3.011 2.022.804 3.692 3.154 4.415 5.384.981 3.023 1.68 12.579-8.029 18.516-6.233 3.812-17.656 5.363-18.961 4.723-.984-.483-4.621-2.09-6.675-6.453S-1.324 11.111 12.3 3.139z"/><path fill="#F97253" d="M17.329 2.607C22.578 1.125 26.5 4.743 24.078 5c-4.359.463-9.015 4.969-12.625 8.375-6.625 6.25-8.125 13.75-9 12.5-1.424-2.034-1.468-9.148 3.561-15.386 5.029-6.238 9.104-7.257 11.315-7.882z"/><path fill="#77B255" d="M28.271 4.278c2.174.697 4.987 4.564 4.944 7.811-.114 8.655-4.132 11.992-4.132 11.992s-2.551-9.325-2.171-12.719c.278-2.478 1.646-3.166 1.891-4.569.229-1.305-.532-2.515-.532-2.515z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f96f.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f96f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1694F" d="M18.09 9.295C7.847 9.295.573 13.188.573 18.053c0 7.569 5.839 15.57 17.517 15.57 11.678 0 17.517-8.001 17.517-15.57 0-4.865-7.274-8.758-17.517-8.758z"/><path fill="#D99E82" d="M18.09 8.322C7.847 8.322.573 11.961.573 17.927c0 5.966 7.273 9.858 17.517 9.858 10.243 0 17.517-4.146 17.517-9.858S28.333 8.322 18.09 8.322z"/><path fill="#CCD6DD" d="M2.519 20.973c-.973.973 4.866 6.812 7.785 3.893 2.919-2.919 5.942 1.511 6.812 1.946 1.946.973 6.754-4.408 11.678-1.946 1.947.973 4.866-1.946 4.866-4.866 0-2.919-30.167 0-31.141.973z"/><path fill="#FFF" d="M2.422 19.462s-.181.378-.169.496c.217 2.144 5.132 6.854 8.052 3.935 2.919-2.919 5.942 1.511 6.812 1.946 1.946.973 6.754-4.408 11.678-1.946 1.608.804 4.848-2.228 5.258-4.811-2.136 0-31.631.38-31.631.38z"/><path fill="#C1694F" d="M18.733 2.583C14.568 2.34.805 4.52.307 16.595c.01.608.592 1.741 2.114 2.867 2.556 1.891 7.765 3.764 17.378 3.103 8.374-.576 12.357-2.1 14.253-3.483 1.577-1.15 1.711-2.203 1.711-2.532.001-3.89-3.541-13.164-17.03-13.967z"/><path fill="#FFF" d="M14.468 10.228c1.188.461 2.637.578 3.799.622 1.54.058 3.13-.13 4.572-.699 0-.963 0-2.838-4.186-2.838s-4.185 1.771-4.185 2.915z"/><path fill="#8A4B38" d="M18.811 6.302c-3.959-.262-7.406 2.073-5.272 3.453.279.191.596.344.93.473.897-.78 2.572-1.596 4.285-1.521 2.026.089 3.393.727 4.086 1.444.312-.123.62-.258.917-.419 1.489-1.108-.056-3.106-4.946-3.43z"/><g fill="#D99E82"><path d="M9.226 9.736c-.535.226-2.352.483-2.578-.052s1.225-1.659 1.76-1.885c.535-.226 1.152.024 1.378.559.225.535-.025 1.152-.56 1.378zm22.199-.506c.311.349.977 1.667.628 1.978-.349.311-1.581-.503-1.892-.852-.311-.349-.28-.884.069-1.194.349-.312.884-.281 1.195.068zm-6.578 8.119c-.442.152-1.915.258-2.067-.184-.152-.442 1.075-1.264 1.517-1.416.442-.152.923.083 1.075.525.152.442-.083.923-.525 1.075zm-16.86-3.013c-.393.428-1.839 1.308-2.267.915-.428-.393.325-1.909.718-2.337.393-.428 1.058-.456 1.485-.064.429.393.457 1.058.064 1.486z"/><ellipse transform="matrix(1 -.0076 .0076 1 -.031 .133)" cx="17.539" cy="4.159" rx="1.216" ry=".566"/></g></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f980.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f980.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#A0041E" d="M6.96 20.637c.068.639-.543 1.228-1.368 1.315-.824.089-1.547-.357-1.615-.995-.068-.639.544-1.227 1.368-1.314.824-.089 1.547.356 1.615.994zm2.087 2.717c.125.818-1.756 2.544-2.576 2.669-.819.125-1.584-.438-1.708-1.257-.125-.818.58-1.14 1.398-1.265.819-.124 2.761-.965 2.886-.147zm1.783 2.104c.173.81-1.628 3.927-2.438 4.1-.811.173-1.645.146-1.817-.665-.173-.81.306-1.688 1.116-1.861.81-.174 2.966-2.384 3.139-1.574zm3.853.858c.165.811-1.338 4.354-2.15 4.519-.812.165-1.439.451-1.604-.36-.165-.812.261-1.975 1.006-2.58.644-.523 2.584-2.39 2.748-1.579z"/><path fill="#A0041E" d="M3.925 18.869c.607.715 1.18 1.23.464 1.835-.716.606-1.747.162-2.354-.554-.605-.715-2.239-3.42-1.524-4.025.717-.606 2.809 2.029 3.414 2.744zm.33 4.88c.892.295 1.857.801 1.563 1.691-.294.891-1.328.991-2.219.698-.889-.295-3.772-1.691-3.478-2.581.295-.89 3.244-.102 4.134.192zm1.214 4.532c.905-.253 1.907-.283 2.159.619.252.903-.282 1.535-1.186 1.787-.902.251-4.342.727-4.594-.176-.251-.905 2.718-1.98 3.621-2.23zm4.348 3.188c.084-.937.644-1.669 1.577-1.585.934.085 1.258 1.025 1.173 1.96-.085.934.147 3.562-1.715 4.016-.912.221-1.121-3.46-1.035-4.391zM29.04 20.637c-.068.639.543 1.228 1.367 1.315.824.089 1.547-.357 1.615-.995.068-.639-.544-1.227-1.367-1.314-.824-.089-1.547.356-1.615.994zm-2.087 2.717c-.125.818 1.757 2.544 2.575 2.669.819.125 1.584-.438 1.709-1.257s-.58-1.14-1.398-1.265c-.819-.124-2.761-.965-2.886-.147zm-1.783 2.104c-.173.81 1.628 3.927 2.438 4.1.81.173 1.644.146 1.816-.665.174-.81-.305-1.688-1.115-1.861-.81-.174-2.966-2.384-3.139-1.574zm-3.853.858c-.166.811 1.338 4.354 2.149 4.519.812.165 1.438.451 1.604-.36.164-.812-.262-1.975-1.007-2.58-.642-.523-2.582-2.39-2.746-1.579z"/><path fill="#A0041E" d="M32.075 18.869c-.607.715-1.18 1.23-.465 1.835.716.606 1.747.162 2.354-.554.605-.715 2.239-3.42 1.523-4.025-.715-.606-2.807 2.029-3.412 2.744zm-.33 4.88c-.892.295-1.857.801-1.562 1.691.293.891 1.328.991 2.219.698.889-.295 3.771-1.691 3.477-2.581-.294-.89-3.244-.102-4.134.192zm-1.215 4.532c-.904-.253-1.906-.283-2.158.619-.252.903.282 1.535 1.185 1.787.902.251 4.343.727 4.594-.177.252-.904-2.717-1.979-3.621-2.229zm-4.347 3.188c-.084-.937-.645-1.669-1.577-1.585-.935.085-1.258 1.025-1.173 1.96.084.934-.147 3.562 1.715 4.016.912.221 1.121-3.46 1.035-4.391zM3.148 13.878c-.383-.856.001-1.86.857-2.242.856-.383 1.86.002 2.243.858.381.855 2.651 5.612 1.795 5.994-.855.382-4.513-3.755-4.895-4.61z"/><path fill="#A0041E" d="M3.994 12.034c1.221 2.956 8.341-3.341 8.803-6.281.462-2.939-.308-4.201-.694-4.5-.386-.299.144 1.435-1.187 3.306-1.053 1.482-7.766 5.434-6.922 7.475zm28.858 1.844c.384-.856-.001-1.86-.857-2.242-.857-.383-1.861.002-2.244.858-.381.855-2.65 5.612-1.794 5.994.855.382 4.513-3.755 4.895-4.61z"/><path fill="#A0041E" d="M32.007 12.034c-1.222 2.956-8.341-3.341-8.804-6.281-.461-2.939.309-4.201.694-4.5.386-.299-.144 1.435 1.187 3.306 1.054 1.482 7.766 5.434 6.923 7.475z"/><path fill="#BE1931" d="M6 22c0-2 2-10 12-10s12 8 12 10c-5 3-5.373 7-12 7s-6-4-12-7zm-1.677-9.777c-3.153.543-.358-8.141 1.883-10.099C8.446.166 10.863.207 11.321.374s-1.174 2.595-1.75 4.178c-.293.803-3.072 7.296-5.248 7.671zm27.354 0c3.152.543.358-8.141-1.882-10.099C27.555.166 25.139.207 24.68.374c-.459.167 1.174 2.595 1.75 4.178.293.803 3.071 7.296 5.247 7.671z"/><path fill="#A0041E" d="M17.032 12.136c.335 1.339-.045 1.588-.849 1.789-.804.201-1.727.278-2.061-1.061-.335-1.339.045-2.588.849-2.789.803-.201 1.726.721 2.061 2.061zm4.846.728c-.335 1.34-1.258 1.262-2.061 1.061-.804-.201-1.184-.45-.849-1.789.335-1.34 1.258-2.262 2.062-2.061.803.2 1.183 1.449.848 2.789z"/><circle fill="#292F33" cx="14.5" cy="9.5" r="1.5"/><circle fill="#292F33" cx="21.5" cy="9.5" r="1.5"/><path fill="#DD2E44" d="M9.053 21.529c-.14.236-3.053.732-2.303-.731s2.443.497 2.303.731z"/><path fill="#DD2E44" d="M9.891 20.124c-.218.225-3.188.391-1.922-1.404 1.265-1.793 2.234 1.082 1.922 1.404z"/><path fill="#DD2E44" d="M11.657 18.66c-.378.231-3.471-.501-1.407-1.932 1.872-1.296 1.906 1.626 1.407 1.932z"/><path fill="#DD2E44" d="M14.102 17.427c-1.008.299-3.378-1.302-.881-2.141 2.498-.839 1.889 1.842.881 2.141zm12.754 4.102c.141.235 3.053.731 2.303-.731-.75-1.463-2.443.497-2.303.731z"/><path fill="#DD2E44" d="M26.019 20.124c.218.225 3.188.391 1.922-1.404-1.266-1.793-2.235 1.082-1.922 1.404z"/><path fill="#DD2E44" d="M24.253 18.66c.378.231 3.471-.501 1.406-1.932-1.872-1.296-1.906 1.626-1.406 1.932z"/><path fill="#DD2E44" d="M21.808 17.427c1.008.299 3.378-1.302.881-2.141-2.499-.839-1.89 1.842-.881 2.141z"/><path fill="#A0041E" d="M26.849 16.25c0 .414-2.189-2.25-8.849-2.25-6.661 0-8.848 2.664-8.848 2.25 0-.414 2.754-3.75 8.848-3.75 6.094 0 8.849 3.336 8.849 3.75z"/><path fill="#DD2E44" d="M10.793 24.433c0-.414 1.782 2.25 7.207 2.25s7.208-2.664 7.208-2.25c0 .414-2.244 3.75-7.208 3.75s-7.207-3.336-7.207-3.75z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f981.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f981.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#662113" d="M32.325 10.958s2.315.024 3.511 1.177c-.336-4.971-2.104-8.249-5.944-10.13-3.141-1.119-6.066 1.453-6.066 1.453s.862-1.99 2.19-2.746C23.789.236 21.146 0 18 0c-3.136 0-5.785.227-8.006.701 1.341.745 2.215 2.758 2.215 2.758S9.194.803 6 2.053C2.221 3.949.481 7.223.158 12.174c1.183-1.19 3.55-1.215 3.55-1.215S-.105 13.267.282 16.614c.387 2.947 1.394 5.967 2.879 8.722C3.039 22.15 5.917 20 5.917 20s-2.492 5.96-.581 8.738c1.935 2.542 4.313 4.641 6.976 5.916-.955-1.645-.136-3.044-.103-2.945.042.125.459 3.112 2.137 3.743 1.178.356 2.4.548 3.654.548 1.292 0 2.55-.207 3.761-.583 1.614-.691 2.024-3.585 2.064-3.708.032-.098.843 1.287-.09 2.921 2.706-1.309 5.118-3.463 7.064-6.073 1.699-2.846-.683-8.557-.683-8.557s2.85 2.13 2.757 5.288c1.556-2.906 2.585-6.104 2.911-9.2-.035-3.061-3.459-5.13-3.459-5.13z"/><path fill="#FFCC4D" d="M13.859 9.495c.596 2.392.16 4.422-2.231 5.017-2.392.596-6.363.087-6.958-2.304-.596-2.392.469-5.39 1.81-5.724 1.341-.334 6.784.62 7.379 3.011zm9.104 18.432c0 2.74-2.222 4.963-4.963 4.963s-4.963-2.223-4.963-4.963c0-2.741 2.223-4.964 4.963-4.964 2.741 0 4.963 2.222 4.963 4.964z"/><path fill="#DD2E44" d="M21.309 27.927c0 1.827-1.481 3.309-3.309 3.309s-3.309-1.481-3.309-3.309c0-1.827 1.481-3.31 3.309-3.31s3.309 1.483 3.309 3.31z"/><path fill="#E6AAAA" d="M11.052 8.997c.871 1.393.447 3.229-.946 4.1-1.394.871-2.608.797-3.479-.596-.871-1.394-.186-4.131.324-4.45.51-.319 3.23-.448 4.101.946z"/><path fill="#FFCC4D" d="M22.141 9.495c-.596 2.392-.159 4.422 2.232 5.017 2.392.596 6.363.087 6.959-2.304.596-2.392-.47-5.39-1.811-5.724-1.342-.334-6.786.62-7.38 3.011z"/><path fill="#E6AAAA" d="M24.948 8.997c-.871 1.393-.447 3.229.945 4.1 1.394.871 2.608.797 3.479-.596.871-1.394.185-4.131-.324-4.45-.51-.319-3.229-.448-4.1.946z"/><path fill="#FFCC4D" d="M18 7.125h-.002C5.167 7.126 7.125 12.083 8.5 18.667 9.875 25.25 10.384 27 10.384 27h15.228s.51-1.75 1.885-8.333C28.872 12.083 30.829 7.126 18 7.125z"/><path fill="#272B2B" d="M12 16s0-1.5 1.5-1.5S15 16 15 16v1.5s0 1.5-1.5 1.5-1.5-1.5-1.5-1.5V16zm9 0s0-1.5 1.5-1.5S24 16 24 16v1.5s0 1.5-1.5 1.5-1.5-1.5-1.5-1.5V16z"/><path fill="#FFE8B6" d="M20.168 21.521c-1.598 0-1.385.848-2.168 2.113-.783-1.266-.571-2.113-2.168-2.113-6.865 0-6.837.375-6.865 2.828-.058 4.986 2.802 6.132 5.257 6.06 1.597-.048 2.994-.88 3.777-2.131.783 1.251 2.179 2.083 3.776 2.131 2.455.072 5.315-1.073 5.257-6.06-.029-2.453-.001-2.828-6.866-2.828z"/><path fill="#272B2B" d="M14.582 21.411c-1.14.233 2.279 4.431 3.418 4.431s4.559-4.198 3.419-4.431c-1.14-.232-5.698-.232-6.837 0z"/><circle fill="#D99E82" cx="11.5" cy="24.5" r=".5"/><circle fill="#D99E82" cx="10.5" cy="26.5" r=".5"/><circle fill="#D99E82" cx="12.5" cy="27.5" r=".5"/><circle fill="#D99E82" cx="24.5" cy="24.5" r=".5"/><circle fill="#D99E82" cx="25.5" cy="26.5" r=".5"/><circle fill="#D99E82" cx="23.5" cy="27.5" r=".5"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f984.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f984.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1CDD5" d="M36 19.854C33.518 9.923 25.006 1.909 16.031 6.832c0 0-4.522-1.496-5.174-1.948-.635-.44-1.635-.904-.912.436.423.782.875 1.672 2.403 3.317C8 12.958 9.279 18.262 7.743 21.75c-1.304 2.962-2.577 4.733-1.31 6.976 1.317 2.33 4.729 3.462 7.018 1.06 1.244-1.307.471-1.937 3.132-4.202 2.723-.543 4.394-1.791 4.394-4.375 0 0 .795-.382 1.826 6.009.456 2.818-.157 5.632-.039 8.783H36V19.854z"/><path fill="#60379A" d="M31.906 6.062c.531 1.312.848 3.71.595 5.318-.15-3.923-3.188-6.581-4.376-7.193-2.202-1.137-4.372-.979-6.799-.772.111.168.403.814.32 1.547-.479-.875-1.604-1.42-2.333-1.271-1.36.277-2.561.677-3.475 1.156-.504.102-1.249.413-2.372 1.101-1.911 1.171-4.175 4.338-6.737 3.511 1.042 2.5 3.631 1.845 3.631 1.845 1.207-1.95 4.067-3.779 6.168-4.452 7.619-1.745 12.614 3.439 15.431 9.398.768 1.625 2.611 7.132 4.041 10.292V10.956c-.749-1.038-1.281-3.018-4.094-4.894z"/><path fill="#C1CDD5" d="M13.789 3.662c.573.788 3.236.794 4.596 3.82 1.359 3.026-1.943 2.63-3.14 1.23-1.334-1.561-1.931-2.863-2.165-3.992-.124-.596-.451-2.649.709-1.058z"/><path fill="#758795" d="M14.209 4.962c.956.573 2.164 1.515 2.517 2.596.351 1.081-.707.891-1.349-.042-.641-.934-.94-1.975-1.285-2.263-.346-.289.117-.291.117-.291z"/><circle fill="#292F33" cx="15.255" cy="14.565" r=".946"/><path fill="#53626C" d="M8.63 26.877c.119.658-.181 1.263-.67 1.351-.49.089-.984-.372-1.104-1.03-.119-.659.182-1.265.671-1.354.49-.088.984.373 1.103 1.033z"/><path fill="#EE7C0E" d="M13.844 8.124l.003-.002-.005-.007-.016-.014c-.008-.007-.011-.019-.019-.025-.009-.007-.021-.011-.031-.018C12.621 7.078.933-.495.219.219-.51.948 10.443 9.742 11.149 10.28l.011.006.541.439c.008.007.01.018.018.024.013.01.028.015.042.024l.047.038-.009-.016c.565.361 1.427.114 1.979-.592.559-.715.577-1.625.066-2.079z"/><path fill="#C43512" d="M4.677 2.25l.009-.025c-.301-.174-.594-.341-.878-.5-.016.038-.022.069-.041.11-.112.243-.256.484-.429.716-.166.224-.349.424-.541.595-.02.018-.036.026-.056.043.238.22.489.446.745.676.234-.21.456-.449.654-.717.214-.287.395-.589.537-.898zm2.275 2.945c.306-.41.521-.822.66-1.212-.292-.181-.584-.36-.876-.538-.076.298-.247.699-.586 1.152-.31.417-.613.681-.864.845.259.223.52.445.779.665.314-.244.619-.552.887-.912zM9.87 7.32c.365-.49.609-.983.734-1.437l-.906-.586c-.023.296-.172.81-.631 1.425-.412.554-.821.847-1.1.978l.814.671c.381-.256.761-.611 1.089-1.051z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f986.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f986.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D99E82" d="M12.75 17.75c1.226 2.195 1.856-1.361 9.312-2.625s13.729 4.454 13.859 5.413c.132.958-4.447 9.462-9.462 9.462H10.75c-4.143 0-7.022-7.224-4-11.438 0 0 4.5-3.5 6-.812z"/><path fill="#C1694F" d="M13.008 18.136C8.02 25.073 6.969 30 10.75 30c-4.143 0-6.578-6.188-4.468-11.031.463-1.064 1.758-2.492 1.758-2.492l4.179-.008c.162.32.599 1.365.789 1.667z"/><path fill="#E1E8ED" d="M20.062 22.75c6.672-2.682 15.729-3.171 15.859-2.212.132.958-4.447 9.462-9.462 9.462H11.813c-4.143 0 1.232-4.429 8.249-7.25z"/><path fill="#292F33" d="M25.359 21.125c6-1.312 10.468-1.282 10.563-.587.079.578-1.559 3.907-3.973 6.454 2.204-2.804 1.42-6.113-6.59-5.867z"/><path fill="#3E721D" d="M7.125 6.125c1.562-4.938 10.44-4.143 10.062.688-.378 4.829-6.453 7.859-4.179 11.323-1.586 1.38-5.016.913-6.727.833.702-1.351 1.381-2.631 1.812-3.406 2.916-5.235-2.131-5.764-.968-9.438z"/><path fill="#FFCC4D" d="M1.893 9.045c.568-1.1.549.106 3.352.142 1.554.021 1.463-.56 1.664-1.621.041-.223.776 1.616 2.061 1.807 3.554.531 1.879 1.94 0 2.261-.901.154-2.01.318-3.938.155-2.519-.212-3.768-1.528-3.139-2.744z"/><path fill="#F5F8FA" d="M12.502 16.625c.044.625.506 1.511.506 1.511-1.016 1.474-5.643 3.017-7.354 2.93.096-.628.283-1.362.627-2.097 1.844-.471 4.661-1.071 6.221-2.344z"/><path fill="#292F33" d="M11.708 6.151c0 .716-.58 1.296-1.296 1.296s-1.295-.58-1.295-1.296c0-.716.579-1.295 1.295-1.295s1.296.58 1.296 1.295z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f987.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f987.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#66757F" d="M23 21c0 6.352-3 10-5 10s-5-3.648-5-10 2.239-7 5-7c2.762 0 5 .648 5 7z"/><circle fill="#66757F" cx="18" cy="11" r="4"/><path fill="#66757F" d="M14 11c-2-5 1-7 1-7s2 1 2 4-3 3-3 3z"/><path fill="#546066" d="M14.668 9.904c-.776-2.457-.119-3.896.403-4.58C15.486 5.773 16 6.608 16 8c0 1.268-.739 1.734-1.332 1.904z"/><path fill="#66757F" d="M22 11c2-5-1-7-1-7s-2 1-2 4 3 3 3 3zm-5.984 3c-1.62 1.157-10 2-9-5 .142-.99-1-1-2 0-3 3-6 7.834-4 20 3-5 6-4 7 1 3-4 6-2 8 0 3-3 0-16 0-16zm3.937 0c1.62 1.157 10 2 9-5-.142-.99 1-1 2 0 3 3 6 7.834 4 20-3-5-6-4-7 1-3-4-6-2-8 0-3-3 0-16 0-16z"/><circle fill="#292F33" cx="16" cy="11" r="1"/><circle fill="#292F33" cx="20" cy="11" r="1"/><path fill="#546066" d="M21.332 9.904c.775-2.457.118-3.896-.403-4.58C20.514 5.773 20 6.608 20 8c0 1.268.739 1.734 1.332 1.904z"/><path fill="#99AAB5" d="M7.996 26.91c.892-2.691.573-5.988-.996-9.91-1.487-3.719-1.315-6.329-1.129-7.423-.049.041-.096.078-.148.13C3.017 12.414.477 16.531 1.66 26.436c1.276-1.379 2.412-1.723 3.228-1.723 1.265 0 2.333.783 3.108 2.197z"/><path fill="#99AAB5" d="M6.832 13.25c-.019-.03-.041-.058-.06-.087C7 16 8.4 17.001 9 20c.588 2.94.476 5.519.088 7.564.839-.571 1.726-.874 2.656-.874 1.264 0 2.548.538 3.895 1.627C14 19 9 17 6.832 13.25zm21.172 13.66c-.893-2.691-.572-5.988.996-9.91 1.487-3.719 1.315-6.329 1.129-7.423.049.041.097.078.148.13 2.706 2.707 5.246 6.824 4.063 16.729-1.275-1.379-2.412-1.723-3.227-1.723-1.266 0-2.334.783-3.109 2.197z"/><path fill="#99AAB5" d="M29.168 13.25l.061-.087C29 16 27.6 17.001 27 20c-.588 2.94-.477 5.519-.088 7.564-.84-.571-1.726-.874-2.656-.874-1.264 0-2.548.538-3.895 1.627C22 19 27 17 29.168 13.25zm-10.48-.144c-.378.378-.998.378-1.375 0l-.57-.571c-.378-.378-.25-.688.285-.688h1.945c.535 0 .664.309.285.688l-.57.571z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f988.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f988.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#66757F" d="M36 21c0 5-3 9-11 11-7.062 1.766-21-.934-21-2 0-1.129 2.503-1.371 6.812-1.125 10.938.625 13.75-3.857 12-5.25-3.062-2.437-6.437.375-12.062-.125C3.782 22.881 0 17.472 0 16c0-2 11.716-8 20-8s16 4.25 16 13z"/><path fill="#292F33" d="M15 12.5c0 .829-.671 1.5-1.5 1.5s-1.5-.671-1.5-1.5.671-.5 1.5-.5 1.5-.329 1.5.5z"/><path fill="#66757F" d="M14 9c2-5 5.291-9 7.958-9S21 2 26 10 14 9 14 9zM3 30c0-4-1.04-6 .146-6s6.011 4.031 6.011 6.24c0 2.209-4.826 5.76-6.011 5.76C1.96 36 3 34 3 30z"/><path fill="#292F33" d="M26.921 22.5l7.996 7.5s-3.242 1.833-7.996-7.5z"/><path fill="#66757F" d="M26.921 22.5l5.537-3.833S36.333 28.584 34.917 30c-2.583-1-7.996-7.5-7.996-7.5z"/><path fill="#FFF" d="M9 20.307c0 .493-.508 2.673-1 2.673s-1-2.18-1-2.673v-1.779c0-.493.508.889 1 .889s1-1.382 1-.889v1.779zm3 0c0 .493-.508 2.673-1 2.673s-1-2.18-1-2.673v-1.779c0-.493.508.889 1 .889s1-1.382 1-.889v1.779zm3-1c0 .493-.508 2.673-1 2.673s-1-2.18-1-2.673v-1.779c0-.493.508.889 1 .889s1-1.382 1-.889v1.779zm3 0c0 .493-.508 2.673-1 2.673s-1-2.18-1-2.673v-1.779c0-.493.508.889 1 .889s1-1.382 1-.889v1.779z"/><path fill="#66757F" d="M6 20l7-1h6v-2H6z"/><path fill="#292F33" d="M18.417 19.167c-4-2.083-13.385-.011-14.917 1.513.469.36.988.707 1.547 1.028 6.109-3.281 14.082-2.169 13.37-2.541z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f989.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f989.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#662113" d="M7.317 11c-5.723 9.083.958 18 .958 18s2.874-.442 6.875-5.2c4-4.758-7.833-12.8-7.833-12.8zm21.342 0c5.723 9.083-.958 18-.958 18s-2.874-.442-6.875-5.2C16.825 19.042 28.659 11 28.659 11z"/><path fill="#FFAC33" d="M15.203 31.557c-.123-.229-.317-.384-.531-.496-2.032-2.172-.589-4.717-.589-4.717 0-.703 1.271-2.544 0-2.544l-1.272 1.272c-1.272 1.271-1.272 5.089-1.272 5.089H8.995c-.703 0-1.272.568-1.272 1.272 0 .701.569 1.271 1.272 1.271h1.408l-.282.153c-.618.334-.848 1.105-.514 1.726.334.616 1.106.848 1.724.514l3.357-1.816c.619-.334.846-1.105.515-1.724zm5.596 0c.123-.229.317-.384.53-.496 2.033-2.172.589-4.717.589-4.717 0-.703-1.271-2.544 0-2.544l1.272 1.272c1.273 1.271 1.273 5.089 1.273 5.089h2.544c.704 0 1.271.568 1.271 1.272 0 .701-.566 1.271-1.271 1.271h-1.408l.281.153c.62.334.848 1.105.515 1.726-.336.616-1.105.848-1.726.514l-3.356-1.816c-.619-.334-.847-1.105-.514-1.724z"/><path fill="#662113" d="M28.278 11.292c2.891-6.092 0-10.542 0-10.542s-5.781.959-6.744 2.875c-1.219 2.424 6.744 7.667 6.744 7.667z"/><path fill="#662113" d="M29.562 12.738c0 10.297-3.152 20.595-11.562 20.595-8.409 0-11.563-10.298-11.563-20.595C6.437 2.44 11.614 2.083 18 2.083c6.387 0 11.562.357 11.562 10.655z"/><path fill="#C1694F" d="M27.666 17.738c0 10.297-7.774 14.595-9.666 14.595s-9.666-4.298-9.666-14.595c0-10.298 19.332-10.298 19.332 0z"/><path fill="#662113" d="M7.722 11.292C4.831 5.2 7.722.75 7.722.75s5.782.959 6.746 2.875c1.218 2.424-6.746 7.667-6.746 7.667z"/><path fill="#C1694F" d="M14.929 4.373C10.702 2.789 7.722.75 7.722.75s-2.076 3.221-.928 7.926c.446 2.137 1.94 4.195 3.904 4.662 2.637.627 7.302-.049 7.302-3.963 0-2.695-1.074-4.252-3.071-5.002zm6.142 0C25.298 2.789 28.277.75 28.277.75s2.076 3.221.928 7.926c-.445 2.137-1.939 4.195-3.902 4.662-2.638.627-7.303-.049-7.303-3.963 0-2.695 1.074-4.252 3.071-5.002z"/><path fill="#FFD983" d="M16.083 8.417c0 2.117-1.716 3.833-3.833 3.833s-3.833-1.716-3.833-3.833 1.717-3.833 3.833-3.833c2.117-.001 3.833 1.716 3.833 3.833zm11.5 0c0 2.117-1.716 3.833-3.833 3.833s-3.833-1.716-3.833-3.833 1.716-3.833 3.833-3.833 3.833 1.716 3.833 3.833z"/><path fill="#292F33" d="M14.167 8.417c0 1.059-.858 1.917-1.917 1.917s-1.917-.858-1.917-1.917c0-1.058.858-1.917 1.917-1.917s1.917.858 1.917 1.917zm11.5 0c0 1.059-.858 1.917-1.917 1.917s-1.917-.858-1.917-1.917c0-1.058.858-1.917 1.917-1.917s1.917.858 1.917 1.917z"/><path fill="#FFCC4D" d="M20.875 12.729c0 2.382-2.875 3.354-2.875 3.354s-2.875-.973-2.875-3.354S18 9.375 18 9.375s2.875.972 2.875 3.354z"/><path fill="#F4900C" d="M20.875 12.729c0 2.382-2.875 3.354-2.875 3.354s-2.875-.973-2.875-3.354C16.323 13.927 18 14.167 18 14.167s1.677-.24 2.875-1.438z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f98a.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f98a.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4900C" d="M13.431 9.802c.658 2.638-8.673 10.489-11.244 4.098C.696 10.197-.606 2.434.874 2.065c1.48-.368 11.9 5.098 12.557 7.737z"/><path fill="#A0041E" d="M11.437 10.355c.96 1.538-1.831 4.561-3.368 5.522-1.538.961-2.899-.552-4.414-4.414-.662-1.689-1.666-6.27-1.103-6.622.562-.351 7.924 3.976 8.885 5.514z"/><path fill="#F4900C" d="M22.557 9.802C21.9 12.441 31.23 20.291 33.802 13.9c1.49-3.703 2.792-11.466 1.312-11.835-1.48-.368-11.899 5.098-12.557 7.737z"/><path fill="#A0041E" d="M24.552 10.355c-.96 1.538 1.831 4.561 3.368 5.522 1.537.961 2.898-.552 4.413-4.414.662-1.688 1.666-6.269 1.104-6.621-.563-.352-7.924 3.975-8.885 5.513z"/><path fill="#F18F26" d="M32.347 26.912c0-.454-.188-1.091-.407-1.687.585.028 1.519.191 2.77.817-.008-.536-.118-.984-.273-1.393.041.02.075.034.116.055-1.103-3.31-3.309-5.517-3.309-5.517h2.206c-2.331-4.663-4.965-8.015-8.075-9.559-1.39-.873-3.688-1.338-7.373-1.339h-.003c-3.695 0-5.996.468-7.385 1.346-3.104 1.547-5.734 4.896-8.061 9.552H4.76s-2.207 2.206-3.311 5.517c.03-.015.055-.025.084-.04-.201.392-.307.847-.282 1.377 1.263-.632 2.217-.792 2.813-.818-.189.513-.343 1.044-.386 1.475-.123.371-.191.812-.135 1.343C6.75 26.584 8.25 26.792 10 27.667 11.213 31.29 14.206 34 18.001 34c3.793 0 6.746-2.794 7.958-6.416 1.458-1.25 3.708-.875 6.416.416.066-.414.036-.773-.036-1.093l.008.005z"/><path fill="#FFD983" d="M31.243 23.601c.006 0 1.108.003 3.309 1.103-1.249-2.839-7.525-4.07-9.931-3.291-1.171 1.954-1.281 5.003-3.383 6.622-1.741 1.431-4.713 1.458-6.479 0-2.345-1.924-2.559-5.813-3.382-6.622-2.407-.781-8.681.454-9.931 3.291 2.201-1.101 3.304-1.103 3.309-1.103 0 .001-1.103 2.208-1.103 3.311l.001-.001v.001c2.398-1.573 5.116-2.271 7.429-.452 1.666 7.921 12.293 7.545 13.833 0 2.314-1.818 5.03-1.122 7.429.452v-.001l.001.001c.002-1.103-1.101-3.311-1.102-3.311z"/><path fill="#272B2B" d="M11 17s0-1.5 1.5-1.5S14 17 14 17v1.5s0 1.5-1.5 1.5-1.5-1.5-1.5-1.5V17zm11 0s0-1.5 1.5-1.5S25 17 25 17v1.5s0 1.5-1.5 1.5-1.5-1.5-1.5-1.5V17zm-7.061 10.808c-1.021.208 2.041 3.968 3.062 3.968 1.02 0 4.082-3.76 3.062-3.968-1.021-.208-5.103-.208-6.124 0z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f98b.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f98b.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#1C6399" d="M20.004 20.243c-.426 0-.858.01-1.294.031-.436 1.268-.468 2.747 0 5.097.328 1.646 2.659 6.299 4.584 7.933.683.58 1.638.884 2.69.884 2.144 0 4.691-1.265 6.157-4.034 3.001-5.671-3.474-9.911-12.137-9.911z"/><path fill="#1C6399" d="M33.666 1.973c-.204 0-.425.021-.663.066-3.182.601-9.302 5.126-14.287 11.771 0 0-.789 5.16-.789 6.194 0 .336 1.264.5 3.058.5 3.717 0 9.709-.705 11.424-2.041 1.898-1.479 3.65-9.804 3.488-14.079-.046-1.175-.662-2.411-2.231-2.411z"/><path fill="#55ACEE" d="M27.098 13.936l6.629-.436s-1.055 3.619-3.102 4.656-7.719 1.5-7.719 1.5 2.33-4.261 3.286-5.29c.237-.256.559-.408.906-.43zm.52-1.952l7.526-8.151s.002 5.365-1.206 8.635c0 0-5.383.379-5.914.391-.703.016-.969-.265-.406-.875zm-6.068 7.672l5.5-8.547c.188-.22.253-.52.171-.798l-.968-3.233-6.722 6.609-.844 6.031 2.863-.062zM27.862 8.88c.172.406.516.5.938.125s6.074-6.094 6-6.218c0 0-2.832-1.194-7.8 3.463 0 0 .69 2.224.862 2.63zm-8.925 12.099l5.373 5.228c.203.178.255.473.125.709L22.06 31.25s-4.187-5.479-3.123-10.271zm7.282 6.301l5.549.741s-1.058 3.845-3.394 4.854c-3.906 1.688-5.312-.625-5.312-.625l2.352-4.562c.151-.298.477-.463.805-.408zm-5.95-6.426l5.375 4.958c.077.066.169.11.269.129l6.119.903s-1.219-3.031-4.429-4.531c-3.71-1.733-7.334-1.459-7.334-1.459z"/><path fill="#292F33" d="M20.004 20.243c-.426 0-.858.01-1.294.031-.436 1.268-.468 2.747 0 5.097.328 1.646 2.659 6.299 4.584 7.933.683.58 1.638.884 2.69.884 2.144 0 4.691-1.265 6.157-4.034 3.001-5.671-3.474-9.911-12.137-9.911zm10.537 9.326c-1.316 2.486-3.05 3.473-4.558 3.473-.767 0-1.704-.313-2.15-.691-1.695-1.439-3.437-4.58-4.25-7.224-.465-1.513-.354-4.022-.354-4.022l.667-.021c5.168 0 9.249 2.058 10.726 4.512.714 1.186.687 2.523-.081 3.973z"/><path fill="#292F33" d="M33.666 3.223c.231 0 .935 0 .981 1.208.102 2.681-.594 6.061-1.397 8.882-.541 1.901-1.586 3.292-2.094 3.687-.56.436-1.863 1.238-3.719 1.563-2.03.355-4.207.833-6.456.833-.827 0-1.433.019-1.794-.021.131-1.218.489-3.551.717-5.064 3.768-4.94 9.711-10.361 13.331-11.044.155-.029.3-.044.431-.044m0-1.25c-.204 0-.425.021-.663.066-3.182.601-9.302 5.126-14.287 11.771 0 0-.789 5.16-.789 6.194 0 .336 1.264.5 3.058.5 3.717 0 9.709-.705 11.424-2.041 1.898-1.479 3.65-9.804 3.488-14.079-.046-1.175-.662-2.411-2.231-2.411z"/><path fill="#1C6399" d="M3.902 30.154c1.466 2.769 4.012 4.034 6.157 4.034 1.052 0 2.007-.304 2.69-.884 1.925-1.633 4.256-6.286 4.584-7.933.468-2.35.436-3.828 0-5.097-.436-.021-.868-.031-1.294-.031-8.665 0-15.139 4.24-12.137 9.911z"/><path fill="#1C6399" d="M2.376 1.973C.807 1.973.19 3.209.146 4.383c-.162 4.275 1.59 12.601 3.488 14.079 1.715 1.336 7.706 2.041 11.424 2.041 1.794 0 3.058-.164 3.058-.5 0-1.033-.789-6.194-.789-6.194C12.341 7.165 6.22 2.64 3.039 2.039c-.238-.045-.459-.066-.663-.066z"/><path fill="#55ACEE" d="M8.943 13.936L2.315 13.5s1.055 3.619 3.102 4.656 7.719 1.5 7.719 1.5-2.33-4.261-3.286-5.29c-.237-.256-.559-.408-.907-.43zm-.519-1.952L.898 3.833s-.002 5.365 1.206 8.635c0 0 5.383.379 5.914.391.703.016.969-.265.406-.875zm6.068 7.672l-5.5-8.547c-.188-.22-.253-.52-.171-.798l.968-3.233 6.722 6.609.844 6.031-2.863-.062zM8.179 8.88c-.172.406-.516.5-.938.125s-6.074-6.094-6-6.218c0 0 2.832-1.194 7.8 3.463.001 0-.69 2.224-.862 2.63zm8.926 12.099l-5.373 5.228c-.203.178-.255.473-.125.709l2.375 4.333c-.001.001 4.187-5.478 3.123-10.27zM9.822 27.28l-5.549.741s1.058 3.845 3.394 4.854c3.906 1.688 5.312-.625 5.312-.625l-2.352-4.562c-.15-.298-.476-.463-.805-.408zm5.951-6.426l-5.375 4.958c-.077.066-.169.11-.269.129l-6.119.903s1.219-3.031 4.429-4.531c3.709-1.733 7.334-1.459 7.334-1.459z"/><path fill="#292F33" d="M3.902 30.154c1.466 2.769 4.012 4.034 6.157 4.034 1.052 0 2.007-.304 2.69-.884 1.925-1.633 4.256-6.286 4.584-7.933.468-2.35.436-3.828 0-5.097-.436-.021-.868-.031-1.294-.031-8.665 0-15.139 4.24-12.137 9.911zm1.518-4.559c1.477-2.454 5.558-4.512 10.726-4.512l.667.021s.111 2.51-.354 4.022c-.813 2.644-2.555 5.785-4.25 7.224-.446.379-1.383.691-2.15.691-1.508 0-3.242-.986-4.558-3.473-.768-1.449-.795-2.786-.081-3.973z"/><path fill="#292F33" d="M2.376 3.223c.131 0 .276.015.431.044 3.619.683 9.563 6.104 13.331 11.044.228 1.513.586 3.846.717 5.064-.361.04-.967.021-1.794.021-2.249 0-4.426-.478-6.456-.833-1.856-.325-3.159-1.127-3.719-1.563-.508-.396-1.553-1.786-2.094-3.687-.803-2.821-1.499-6.201-1.397-8.882.046-1.208.749-1.208.981-1.208m0-1.25C.807 1.973.19 3.209.146 4.383c-.162 4.275 1.59 12.601 3.488 14.079 1.715 1.336 7.706 2.041 11.424 2.041 1.794 0 3.058-.164 3.058-.5 0-1.033-.789-6.194-.789-6.194C12.341 7.165 6.22 2.64 3.039 2.039c-.238-.045-.459-.066-.663-.066z"/><path fill="#292F33" d="M21.887 4.762c-.25-.138-.563-.047-.701.203l-2.74 4.98c-.018.033-.022.068-.032.102-.127-.007-.244-.018-.393-.018-.148 0-.266.01-.392.018-.01-.034-.014-.069-.032-.102l-2.74-4.98c-.138-.25-.452-.341-.702-.203-.25.137-.341.451-.203.701l2.655 4.826c-1.179.784 1.15 3.438.381 9.204-1.033 7.75 1.033 9.817 1.033 9.817s2.067-2.067 1.033-9.817c-.769-5.766 1.56-8.42.381-9.204l2.656-4.826c.137-.25.046-.564-.204-.701z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f98c.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f98c.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#662113" d="M15.971 15.083c-1.458-2.333-.667-7.708 0-8.958s-.542-2.458-1.5-.458-.996 3-3.162 2.458-1.088-3.292-.379-5.625c.729-2.4-.917-1.959-1.667-.458-.75 1.5-1.254 5.693-2.901 5.984-1.647.291-6.099.599-2.851-5.651C4.818-.139 2.773-.656 1.68 1.459.361 4.007-.404 7.25.221 8.625c1.113 2.448 3.483 2.95 6.983 2.284s6.101-.634 6.101 1.133c0 1.872.208 3.458 1.042 3.625s1.624-.584 1.624-.584zm4.057 0c1.458-2.333.667-7.708 0-8.958s.542-2.458 1.5-.458.996 3 3.162 2.458 1.088-3.292.379-5.625c-.729-2.4.917-1.959 1.667-.458s1.254 5.693 2.901 5.984c1.647.292 6.099.599 2.851-5.651-1.307-2.514.737-3.031 1.831-.916 1.318 2.549 2.084 5.792 1.459 7.167-1.113 2.448-3.482 2.95-6.982 2.284s-6.102-.634-6.102 1.133c0 1.872-.208 3.458-1.041 3.625s-1.625-.585-1.625-.585z"/><path fill="#C1694F" d="M13.859 15.495c.596 2.392.16 4.422-2.231 5.017-2.392.596-6.344.559-7.958-1.303-2.294-2.646-2.531-6.391-1.189-6.725 1.34-.334 10.783.62 11.378 3.011zm8.283 0c-.596 2.392-.16 4.422 2.231 5.017 2.392.596 6.345.559 7.958-1.303 2.295-2.646 2.531-6.391 1.189-6.725-1.34-.334-10.783.62-11.378 3.011z"/><path fill="#272B2B" d="M2.48 12.484c-.943.235-1.102 2.157-.317 4.198l3.374-4.134c-1.457-.146-2.643-.167-3.057-.064zm31.041 0c-.419-.104-1.632-.083-3.118.069l3.445 4.106c.774-2.032.613-3.941-.327-4.175z"/><path fill="#E6AAAA" d="M12.052 15.997c.871 1.393-.553 2.229-1.946 3.099-1.394.871-4.608-.203-5.479-1.596-.871-1.394-1.186-3.131-.676-3.45.51-.318 7.23.553 8.101 1.947zm11.896 0c-.871 1.393.553 2.229 1.945 3.099 1.394.871 4.608-.203 5.479-1.596.871-1.394 1.185-3.131.676-3.45-.51-.318-7.229.553-8.1 1.947z"/><path fill="#C1694F" d="M18 14.125h-.002c-10.271.001-8.703 3.959-7.603 10.541 1.1 6.584 2.401 11.256 7.605 11.256 5.203 0 6.502-4.672 7.604-11.256 1.099-6.582 2.666-10.54-7.604-10.541z"/><path fill="#272B2B" d="M11.826 22.851s-.75-1.299.549-2.049 2.049.549 2.049.549l.75 1.299s.75 1.299-.549 2.049-2.049-.549-2.049-.549l-.75-1.299zm9.75-1.5s.75-1.299 2.049-.549.549 2.049.549 2.049l-.75 1.299s-.75 1.299-2.049.549-.549-2.049-.549-2.049l.75-1.299zm-6.35 12.915c-.925-.188 1.85-3.596 2.774-3.596s3.699 3.407 2.774 3.596c-.924.188-4.624.188-5.548 0z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f98e.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f98e.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3E721D" d="M15.66 6.844c.485-2.03.384-3.139-.553-3.677-.936-.537.337-2.666 1.977-.793 1.641 1.873 1.428 3.618.662 4.853-.767 1.234-2.336.66-2.086-.383zm-.48 2.951c-.916 1.877-1.699 2.668-2.764 2.487-1.064-.18-1.435 2.272 1.023 1.869 2.457-.403 3.401-1.886 3.595-3.326.193-1.44-1.383-1.994-1.854-1.03zm11.336 6.261c-2.072-1.377-5.382 1.43-5.699 2.28-.317.85 1.721 3.461 1.146 4.94-.577 1.477 1.142 1.768 1.92.491.778-1.278.304-3.612.156-4.169-.148-.557 2.189-1.219 3.671-.037 1.481 1.18-.323-2.925-1.194-3.505zm1.068-.818c-1.546-1.949.975-5.482 1.794-5.87.821-.387 2.572.402 3.997-.295 1.424-.697 1.745.854.65 1.874-1.227 1.142-2.241 1.335-3.119 1.526-.563.122-.032 2.033-.009 3.97.023 1.799-2.663-.385-3.313-1.205z"/><path fill="#3E721D" d="M15.319 3.167c0 .4-.324.724-.724.724-.399 0-.724-.324-.724-.724 0-.399.324-.724.724-.724.4 0 .724.325.724.724zm-2.999 8.897c0 .399-.324.724-.724.724-.399 0-.724-.324-.724-.724 0-.399.324-.724.724-.724.4 0 .724.324.724.724zm-.298 1.677c0 .4-.324.724-.724.724-.399 0-.724-.324-.724-.724 0-.399.324-.724.724-.724.4 0 .724.324.724.724zm1.447.724c0 .399-.324.724-.724.724-.399 0-.724-.324-.724-.724 0-.4.324-.724.724-.724.4 0 .724.324.724.724zm8.575 8.848c.128.378-.073.791-.452.92-.377.129-.789-.075-.918-.453s.072-.79.45-.919c.379-.129.791.074.92.452zm.772 1.268c.128.378-.073.79-.452.919-.377.128-.789-.074-.918-.452-.129-.377.073-.79.451-.918.379-.13.791.073.919.451zm1.627-.24c.13.377-.073.79-.452.919-.376.129-.788-.074-.917-.451-.129-.378.073-.791.45-.919.379-.13.791.073.919.451zm9.803-15.752c0 .399-.325.724-.725.724s-.724-.325-.724-.724c0-.399.324-.725.724-.725s.725.326.725.725zm1.504.725c0 .399-.324.724-.725.724-.398 0-.723-.325-.723-.724s.324-.724.723-.724c.401-.001.725.325.725.724zm-.346 1.716c0 .399-.324.724-.725.724-.399 0-.724-.325-.724-.724 0-.399.324-.724.724-.724.401 0 .725.325.725.724zM15.512 1.618c0 .399-.324.724-.724.724-.399 0-.724-.324-.724-.724 0-.4.324-.724.724-.724.4 0 .724.324.724.724zm1.571-.469c0 .4-.324.724-.724.724-.399 0-.724-.324-.724-.724 0-.399.324-.724.724-.724.4.001.724.325.724.724z"/><path fill="#3E721D" d="M.208 5.652C.472 4.599 4.865.929 8.85 1.618c2.024.351 2.942 3.354 5.102 3.428 11.289.389 22.272 11.138 18.847 21.391-1.506 4.507-5.618 8.798-15.461 5.001-1.956-.754-3.97-1.985-7.824-1.227-2.852.563-3.149 3.159-2.803 4.497.272 1.048-.161 1.582-.701.759-1.226-1.867-1.317-4.347.643-5.955 3.912-3.211 9.248-1.284 13.137-.059 6.481 2.044 9.917-3.651 6.346-10.315-3.503-6.54-9.812-8.324-14.005-8.816-1.168-.137-3.639 2.048-5.367 1.742C3.143 11.421.018 6.416.208 5.652z"/><path fill="#77B255" d="M.208 5.652C.472 4.599 4.865.929 8.85 1.618c2.024.351 2.942 3.354 5.102 3.428 11.289.389 22.272 11.138 18.847 21.391-1.506 4.507-5.618 8.798-15.461 5.001-1.956-.754-3.97-1.985-7.824-1.227-2.852.563-3.149 3.159-2.803 4.497.134.516.097.906-.039 1.073-.922-1.281-1.362-4.339.661-5.864 3.539-2.667 8.568-.131 13.301 1.042 10.251 2.541 12.183-7.995 7.907-14.875C23.355 7.736 7 5.75.208 5.652z"/><circle fill="#292F33" cx="7" cy="3" r="1"/><circle fill="#292F33" cx="6" cy="10" r="1"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f98f.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f98f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#66757F" d="M27.295 7.526c-1.152-3.054-2.65-6.8-8.299-6.915-1.759-.036-1.52.539-.347 1.02 2.248.922-2.474 5.438 4.759 7.4 5.648 1.531 5.039 1.549 3.887-1.505z"/><path fill="#99AAB5" d="M36.004 3.903c-7.737 0-14.411 2.514-18.105 5.757-4.875 4.28-5.38 10.306-14.034 15.66-2.847 1.761-.423 7.517 1.153 9.618 1.908 2.544 28.617.238 30.987-8.777l-.001-22.258z"/><path fill="#66757F" d="M8.676 29.652c1.011.507 1.787 1.051 1.318 1.986-.469.936-1.173.25-2.185-.257-1.012-.508-2.285-.018-1.816-.954.47-.935 1.672-1.281 2.683-.775zM34.202 6.326c.238-2.563-2.178-4.999-5.95-5.906-1.685-.406-3.281-.35-2.345.478 1.793 1.585-.082 4.006 1.274 7.124.728 1.674 3.238 3.753 4.719 3.82 1.056.048 2.054-2.847 2.302-5.516z"/><path fill="#99AAB5" d="M33.247 6.326c.238-2.563-2.272-5.445-6.17-6.007-1.715-.247-2.287.087-1.351.914 1.793 1.585-.638 3.627.718 6.745.728 1.674 3.393 3.84 4.875 3.907 1.055.049 1.68-2.89 1.928-5.559z"/><path fill="#CCD6DD" d="M2.639 26.898C.087 22.915-.988 14.927 1.147 9.301c.321-.845 1.083-1.071 1.179.13.181 2.282 2.417 6.833 7.966 10.968 1.241.924-5.713 9.527-7.653 6.499z"/><path fill="#CCD6DD" d="M13.248 15.387c-2.048-.852-3.609-3.189-4.092-4.661-.577-1.758-2.152 3.927.852 8.892 1.207 1.993 4.653-3.644 3.24-4.231z"/><circle fill="#292F33" cx="16.789" cy="21.006" r="2"/><path fill="#E6AAAA" d="M30.293 9.41c1.331.105 1.954-1.737 1.216-4.69-.644-2.576-4.252-3.248-4.227-3.069.025.179 1.057 1.549.014 2.939-1.014 1.352 1.347 4.69 2.997 4.82z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f992.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f992.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path d="M22.217 35.615h-.002c-.804-.142-1.34-.908-1.198-1.712l.59-3.344s.68-3.165-1.076-5.449c1.259-1.171 5.024.085 5.024.085l-1.626 9.221c-.142.804-.908 1.34-1.712 1.199zm-12.692-.021h-.002c-.804-.142-1.34-.908-1.198-1.712l1.312-7.025s.503-2.419.503-4.439c1.142-.439 2.723 2.757 2.723 2.757l-1.626 9.221c-.143.803-.909 1.339-1.712 1.198zm21.277-9.823c-.537 0-.977-.431-.985-.969-.012-.723-.304-4.326-4.925-4.326-.545 0-.985-.441-.985-.985s.441-.985.985-.985c5.363 0 6.858 3.938 6.896 6.264.009.545-.425.993-.969 1.002l-.017-.001z" fill="#F4900C"/><g fill="#754C29"><path d="M15.226 17.252l-3.46-11.98 1.687-1.02c.369.61.628 1.722 1.054 3.633.569 2.558 1.349 6.06 2.657 7.876.318.442.218 1.058-.224 1.376-.175.126-1.714.115-1.714.115zM7.615 2.71V.739c0-.408.331-.739.739-.739s.739.331.739.739V2.71H7.615zm2.332 0V.739c0-.408.331-.739.739-.739s.739.331.739.739V2.71H9.947z"/><ellipse cx="30.802" cy="26.263" rx="1.971" ry="2.464"/></g><path fill="#FFCC4D" d="M28.935 34.094s-.647-2.515-.998-4.154c-.332-1.549-1.025-3.981-1.171-8.225-.01-.145-.039-.512-.138-.779-.122-.33-.567-.933-.766-1.203-.777-1.052-2.012-1.691-3.526-1.847-1.283-.132-2.573-.185-3.854-.339-.59-.071-1.1-.156-1.422-.272-1.636-.589-1.962-2.502-2.414-3.965-.8-2.59-1.508-5.225-1.961-7.9l-.036.009.036-.009-.027-.165V4.84c1.567-.714 2.79-2.888 1.971-3.706-1.416-.708-2.827.11-3.513.992-.02-.001-.039-.006-.059-.006H8.459c-.655 0-1.304.16-1.872.51-.584.359-.986.907-1.633 1.19-.786.344-1.721.093-2.417.64-1.189.933-.625 2.525.854 2.578.201.577.745.993 1.39.993h2.106c.055.011.108.021.173.029.604.071 1.088.525 1.477 1.215 1.047 1.856 1.244 4.244 1.415 6.324.119 1.448.177 2.906.158 4.36-.293 1.566-.12 3.377-.12 3.377.044.419.186.777.394 1.095l-.01.011c1.99 2.81 2.449 5.97 2.449 5.97l.784 4.193c.142.804.908 1.341 1.713 1.199.804-.142 1.341-.908 1.199-1.712l-1.262-7.159c1.977.534 4.609.932 6.449.852 0 .006-.003.014-.002.02 2.371-.146 3.26 1.73 3.454 2.576.194.846.868 4.228.868 4.228.142.804.909 1.341 1.712 1.199.802-.143 1.339-.91 1.197-1.714z"/><path fill="#F4900C" d="M11.975 22.1c-.985.985-1.16 2.408-.391 3.178.77.77 2.193.595 3.178-.391s1.16-2.408.391-3.178c-.77-.77-2.193-.595-3.178.391zm1.088-6.185c0 1.633 1.324 2.956 2.956 2.956 1.029 0 1.933-.526 2.462-1.323-.59-.071-1.1-.156-1.422-.272-1.564-.563-1.872-2.237-2.253-3.441-.057-.179-.108-.349-.162-.523-.935.496-1.581 1.469-1.581 2.603zm-.986-4.434c0-1.361-1.103-2.464-2.464-2.464-.388 0-.75.098-1.077.257.635 1.126 1.015 2.885 1.242 4.653 1.282-.086 2.299-1.142 2.299-2.446zm-1.093-4.079c0 1.118.906 2.023 2.023 2.023.182 0 .355-.032.523-.077-.449-1.787-.709-3.122-.847-3.937-.961.156-1.699.985-1.699 1.991zm8.977 12.456c0 1.633 1.324 2.956 2.956 2.956 1.633 0 2.956-1.324 2.956-2.956 0-.043-.011-.082-.013-.124-.777-1.052-2.012-1.691-3.526-1.847-.457-.047-.972-.088-1.499-.128-.538.536-.874 1.277-.874 2.099zM11.598 2.613c.505-.483 1.317-1.089 1.778-.856.461.233.258 1.273-1.166 2.151.113-.439.551-1.215-.612-1.295z"/><circle fill="#292F33" cx="8.772" cy="4.09" r=".985"/><path d="M21.047 33.545s-1.142 1.351-.985 1.781 2.741.491 3.249.022-1.951-1.842-2.264-1.803zm-12.623 0s-1.142 1.351-.985 1.781c.156.43 2.741.491 3.249.022s-1.951-1.842-2.264-1.803zm4.547 2.22c.136.391 2.766.329 3.205-.461.439-.79-2.678-1.317-2.678-1.317s-.703 1.273-.527 1.778zm12.404 0c.136.391 2.766.329 3.205-.461.439-.79-2.678-1.317-2.678-1.317s-.703 1.273-.527 1.778z" fill="#754C29"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f993.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f993.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#E1E8ED" d="M23.283 23.275s1.374 1.635 2.733 10.047c.143.883.201 1.775.217 2.678H36V7.448C31.613 3.975 25.601 3.259 18.322 5.69c0 0-5.408-3-6.147-3.739-.719-.72-1.857-1.556-1.235.35.364 1.112.764 2.373 2.358 4.862-3.436 2.036-4.513 4.68-8.558 13.341C1.652 27.12.08 29.269.937 31.797c1.13 3.337 5.316 5.595 8.844 3.021 1.919-1.4 2.246-3.913 6.225-6.223 3.653-.065 7.277-1.604 7.277-5.32z"/><path fill="#292F33" d="M36 6.012C27.665.301 14.354 1.473 15.909 6.19 25.51 4.328 31.77 7.731 36 13.358V6.012z"/><path fill="#292F33" d="M19.663 5.763c-2.878.233-7.28 1.765-9.42 4.137 0 0-.005-5.317 3.689-5.784 6.172-.779 5.809.363 5.809.363l-.078 1.284z"/><path fill="#E1E8ED" d="M16.357 1.056c.558 1.155 4.006 1.79 5.056 6.029 1.051 4.24-3.134 2.951-4.356.855-1.361-2.334-1.828-4.162-1.867-5.679-.021-.801.039-3.538 1.167-1.205z"/><path fill="#66757F" d="M16.596 2.838c1.103.968 2.448 2.472 2.65 3.955.202 1.483-1.125.988-1.736-.372-.612-1.359-.753-2.779-1.134-3.233-.38-.454.22-.35.22-.35z"/><path fill="#292F33" d="M16.94 15.525c0 .687-.557 1.244-1.245 1.244-.687 0-1.244-.557-1.244-1.244 0-.688.557-1.245 1.244-1.245.688.001 1.245.558 1.245 1.245z"/><path fill="#E1E8ED" d="M10.354 9.924c-.033-.017-.075-.014-.111-.024-1.543 2.033-2.92 5.102-5.49 10.604-1.356 2.903-2.42 4.946-3.116 6.538 1.628.226 3.285-1.442 3.945-3.271.673-1.866 3.215-5.652 4.927-7.778 1.712-2.127 1.561-5.144-.155-6.069z"/><path fill="#292F33" d="M28.188 6.312s-2.296 6.947-2.302 8.947c-.011 3.803-2.687 7.801-2.687 7.801l1.342 3.422s3.25-3.04 3.938-10.228c.571-5.973 2.566-7.667 2.566-7.667l-2.857-2.275zm5.874 3.126S31.056 13.073 30 19c-1.438 8.062-4.857 9.746-4.857 9.746l.482 2.441s5.281-3.056 6.632-9.115C33.875 14.812 36 13.358 36 13.358l-1.938-3.92zm-30.812 14c.688-.714 3.017 3.808 4.53 4.884 1.589 1.13 5.469.935 5.701 2.162-1.668 1.704-2.763 4.273-4.84 4.988-2.078.716-5.71.677-7.238-2.647-1.528-3.325-.403-4.7.222-6.137s1.458-2.938 1.625-3.25z"/><path fill="#66757F" d="M4.222 29.917c0 .881-.532 1.594-1.187 1.594s-1.187-.713-1.187-1.594c0-.882.532-1.596 1.187-1.596s1.187.714 1.187 1.596z"/><path fill="#292F33" d="M25.954 32.945s4.608-1.57 6.108-3.383S36 24 36 24v6.375S34.812 32 32.312 33.313c-1.586.832-6.092 2.251-6.092 2.251l-.266-2.619zM25.01 6.08S24.063 9 23.813 12s-1.125 4.875-1.938 6.188c.312-4.25-.688-5.875-.125-8.125s.87-4.32.87-4.32.63-.368 1.255-.305 1.135.642 1.135.642zM4.753 20.504s3.934-.379 5.747.871 5.332 7.323 5.332 7.323l-1.134.753s-1.697-4.639-4.76-6.076-6-1.188-6-1.188l.815-1.683z"/><path fill="#292F33" d="M5.605 18.678s5.516-.358 6.958 1.509c2.75 3.562 3.831 5.01 4.447 8.349l1.785-.307c-.794-2.917-2.607-8.104-5.919-10.292s-6.25-1.688-6.25-1.688l-1.021 2.429zm12.27-5.99c-.625.688 2 3.312 1.125 5.5s-.375 5.25.125 6.625 1.26 2.839 1.26 2.839l1.622-1.146S21.75 25 21 22.813s-.688-2.25-.375-4.438S18.5 12 17.875 12.688zm-2.83-5.859s1.142 2.046 1.08 3.046-.062 2.688-.625 3.062-.812-2-1.188-3.062-1.064-2.258-1.064-2.258 1.469-1.428 1.797-.788zm-3.544 1.79s1.793 1.398 1.73 2.398 1.144 2.607.581 2.982-1.938-1.25-2.312-2.312S10.243 9.9 10.243 9.9s.929-1.921 1.258-1.281zm-2.563 3.193s1.522.981 1.938 1.75c.415.768 2.11 1.387 1.938 1.875-.173.488-1.977-.098-2.688-.75-.711-.652-2.345-.579-2.345-.579l1.157-2.296z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f994.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f994.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#6D6E71" d="M28.688 20.312C28.688 26.217 23.904 31 18 31c-5.903 0-10.688-4.783-10.688-10.688 0-5.903 4.786-10.689 10.688-10.689 5.904.001 10.688 4.786 10.688 10.689z"/><path fill="#662113" d="M26 33.5H10c-1.665 0-2.479-1.339-2.763-2.31l-2.664-.056c-.153-.003-.297-.077-.389-.2-.092-.122-.123-.281-.083-.43l.594-2.216-2.446-.651c-.152-.041-.276-.15-.335-.296s-.046-.311.035-.445l1.199-1.993-2.156-1.192c-.139-.077-.233-.216-.254-.374-.02-.157.036-.315.151-.426l1.729-1.647-1.729-1.646c-.115-.11-.171-.268-.151-.426.021-.158.115-.297.254-.374l2.156-1.194-1.2-1.994c-.081-.135-.094-.3-.035-.445.059-.146.183-.255.335-.296l2.446-.65-.594-2.218c-.04-.148-.009-.307.083-.43s.236-.196.39-.2l2.575-.053.058-2.302c.004-.149.074-.289.192-.381.118-.092.271-.127.416-.094l2.521.561.717-2.234c.045-.139.148-.251.282-.308.136-.056.288-.051.417.014l2.284 1.139 1.341-2.009c.08-.119.208-.199.35-.218.145-.019.287.024.394.119L18 7.258l1.88-1.636c.109-.094.251-.137.395-.118.143.019.269.099.35.218l1.34 2.009 2.286-1.139c.13-.065.283-.069.417-.014.135.057.237.169.282.308l.716 2.234 2.521-.561c.146-.032.298.002.416.094s.188.232.192.381l.058 2.302 2.574.053c.153.003.297.077.389.2.093.123.123.282.083.43l-.595 2.217 2.449.65c.152.04.276.15.336.296.059.146.046.311-.035.445l-1.201 1.994 2.155 1.194c.14.077.233.216.254.374s-.036.316-.151.426l-1.729 1.646 1.729 1.647c.115.11.172.269.151.426-.021.158-.114.297-.254.374L32.854 24.9l1.2 1.993c.081.135.094.3.035.445-.06.146-.184.255-.335.296l-2.45.651.595 2.216c.04.148.01.307-.082.43-.093.123-.236.197-.39.2l-2.663.056c-.285.974-1.099 2.313-2.764 2.313z"/><path fill="#8A4B38" d="M16.188 28.824c-.022 0-.044-.001-.066-.004-.143-.019-.27-.099-.35-.219l-1.058-1.585-1.805.899c-.131.064-.283.07-.418.014-.134-.057-.237-.169-.282-.309l-.564-1.757-1.99.442c-.148.031-.299-.003-.417-.095s-.188-.231-.192-.381l-.045-1.804-2.029-.043c-.153-.003-.297-.077-.389-.2-.092-.122-.123-.281-.083-.43l.464-1.732-1.92-.51c-.152-.041-.276-.15-.335-.296s-.046-.311.035-.445l.937-1.557-1.688-.934c-.14-.077-.234-.216-.254-.374-.02-.158.036-.316.151-.426l1.352-1.289-1.352-1.287c-.115-.11-.171-.268-.151-.426.021-.158.115-.297.254-.374l1.689-.935-.937-1.558c-.081-.135-.094-.3-.035-.445.059-.146.183-.255.335-.296l1.922-.511-.466-1.732c-.04-.148-.009-.307.083-.43s.236-.196.39-.2l2.029-.042.045-1.805c.004-.149.074-.289.192-.381.117-.092.27-.127.416-.094l1.99.442.564-1.756c.045-.139.148-.251.282-.308.136-.055.287-.051.418.014l1.805.899 1.058-1.584c.08-.119.207-.199.35-.218.144-.021.287.024.395.119L18 4.172l1.484-1.291c.109-.095.253-.138.395-.119.143.019.269.099.35.218l1.057 1.583 1.807-.9c.13-.064.283-.069.417-.013.135.057.237.169.282.308l.562 1.756 1.991-.442c.146-.033.3.002.416.094.118.092.188.232.192.382l.045 1.804 2.028.042c.153.003.297.077.389.2.093.123.123.282.083.43l-.465 1.734 1.924.511c.152.041.276.15.336.296.059.146.046.311-.035.445l-.938 1.558 1.689.935c.14.077.233.216.254.374.021.158-.036.316-.151.426l-1.353 1.287 1.353 1.289c.115.11.172.268.151.426-.021.158-.115.296-.254.374l-1.688.934.938 1.557c.081.135.094.3.035.445-.06.145-.184.255-.335.296l-1.925.512.465 1.732c.04.148.01.307-.082.43-.093.123-.236.197-.39.2l-2.028.043-.045 1.804c-.004.149-.074.289-.192.381-.117.092-.271.126-.416.095l-1.991-.442-.562 1.757c-.045.139-.147.252-.282.309-.134.058-.284.053-.417-.014l-1.806-.899-1.058 1.585c-.08.12-.207.199-.35.219-.142.018-.286-.024-.395-.119L18 27.407l-1.483 1.294c-.092.08-.209.123-.329.123z"/><path fill="#8A4B38" d="M13.5 27.052h9c3.521 0 6.5 2.575 6.5 4.5 0 1.65-1.35 2-3 2H10c-1.65 0-3-.35-3-2 0-1.925 2.99-4.5 6.5-4.5z"/><path fill="#D99E82" d="M26.222 22.779c0 4.088-3.68 7.398-8.222 7.398s-8.222-3.31-8.222-7.398c0-4.087 3.68-7.4 8.222-7.4s8.222 3.313 8.222 7.4z"/><path fill="#E6E7E8" d="M21.289 26.479c0 2.043-1.473 3.699-3.289 3.699s-3.289-1.656-3.289-3.699S16.183 22.78 18 22.78s3.289 1.655 3.289 3.699z"/><path fill="#231F20" d="M19.645 27.711c0 .908-.736 1.645-1.645 1.645s-1.645-.736-1.645-1.645c0-.908.736-1.642 1.645-1.642s1.645.734 1.645 1.642zm-4.934-6.166c0 .682-.552 1.234-1.233 1.234s-1.233-.553-1.233-1.234c0-.68.552-1.232 1.233-1.232.681-.001 1.233.552 1.233 1.232zm9.044 0c0 .682-.552 1.234-1.232 1.234-.682 0-1.233-.553-1.233-1.234 0-.68.552-1.232 1.233-1.232.68-.001 1.232.552 1.232 1.232z"/><path fill="#C1694F" d="M11.422 17.846s4.111-1.644 4.933 0C17.178 19.49 18 19.49 18 19.49v-4.934c0 .001-6.578.001-6.578 3.29zm13.155 0s-4.11-1.644-4.933 0C18.822 19.49 18 19.49 18 19.49v-4.934c0 .001 6.577.001 6.577 3.29z"/><path fill="#D99E82" d="M12.245 18.256c0 1.136-.92 2.056-2.055 2.056-1.136 0-2.056-.92-2.056-2.056 0-1.135.92-2.055 2.056-2.055 1.135 0 2.055.92 2.055 2.055zm15.621 0c0 1.136-.92 2.056-2.056 2.056-1.135 0-2.056-.92-2.056-2.056 0-1.135.921-2.055 2.056-2.055 1.136 0 2.056.92 2.056 2.055zM11 35c-2 0-2-4 2-4s4.062 4 2 4h-4zm10 0c-2 0-2-4 2-4s4.062 4 2 4h-4z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f995.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f995.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3E721D" d="M17.68 22s1.937 7.873 1.187 9.373c-2.373 4.746-1.187 4.627 0 4.627h2.373c2.373 0-1.187-14-1.187-14H17.68zM5.255 19.387s-.436 7.993-1.187 9.493C1.695 33.626 1.695 36 2.882 36h2.373c1.186 0 1.187-4.154 1.187-5.34 0-1.187 1.187-8.603 1.187-8.603l-2.374-2.67z"/><path fill="#77B255" d="M12.374 5.251c-2.068.017-4.209-.435-5.523 2.099-1.404 2.709-2.065 8.579.776 9.664 2.479.947 7.933-1.187 13.866 1.187 5.933 2.373 8.306 16.612 13.015 16.63 1.224.005 1.206 1.123.001 1.132-5.914.045-8.509-5.897-9.509-5.897 0 0 1 5.934 0 5.934h-4c-1 0 0-3.081 0-4.268v-1.667s-1.593 1.218-5.936 1.218C11.781 31.284 9 30.066 9 30.066S10 36 9 36H5.255c-1.678 0 .166-4.013 0-5.934-.102-1.182-.51-4.757-1.224-5.933-1.726-2.847-2.763-11.521-1.929-15.285.781-3.526 3.122-6.633 4.675-7.51C8.296.479 9.64-.162 12.968.373c1.775.285 3.591 2.922 2.89 4.274-.421.81-1.94.591-3.484.604z"/><path d="M12.967 2.181c0 .328-.265.593-.593.593-.328 0-.593-.265-.593-.593s.265-.593.593-.593c.328 0 .593.266.593.593z"/><path d="M10.218 18.485c.094.304-.076.626-.38.72-.304.094-.626-.076-.72-.38-.094-.304.076-.626.38-.72.304-.094.626.076.72.38zm3.874 1.248c.134.433-.108.892-.54 1.025-.432.134-.892-.108-1.026-.541-.134-.432.108-.892.541-1.025.432-.133.891.109 1.025.541zm-1.625-1.426c.071.23-.057.474-.288.545-.23.071-.474-.058-.545-.288-.071-.23.058-.474.288-.545.23-.071.474.058.545.288zm2.458-.331c.067.218-.054.448-.272.516-.217.067-.448-.054-.516-.272-.067-.218.054-.448.272-.516.218-.067.449.055.516.272zm2.843.35c.125.402-.101.829-.503.954s-.829-.1-.954-.503c-.125-.402.101-.829.503-.954.403-.125.83.101.954.503zm4.753 1.979c.08.258-.064.531-.322.61-.257.08-.531-.064-.61-.322-.08-.257.064-.531.322-.61.258-.08.531.065.61.322zm-5.854 0c.08.258-.064.531-.322.61-.257.08-.531-.064-.61-.322-.08-.257.064-.531.322-.61.257-.08.531.065.61.322zm4.218-1.306c.08.257-.064.531-.322.61-.257.08-.531-.064-.61-.322s.064-.531.322-.61c.257-.08.531.065.61.322zm-1.501.199c.118.381-.095.785-.476.903s-.785-.095-.903-.476.095-.785.476-.903.785.095.903.476z" fill="#5C913B"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f998.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f998.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#BF6952" d="M6.513.886c0 .984.649 3.926 1.153 5.047s-.505.35-1.442-.771-1.657-2.244-1.225-3.435S6.513-.446 6.513.886z"/><path fill="#D99E82" d="M.314 10.699c-.004.961 1.22 2.097 2.883 1.682 1.333-.332 3.234-1.359 3.316-.561.082.798-1.179 3.471-.629 6.276.93 4.74 2.379 8.873 7.201 10.095 0 0 .723 2.775 1.479 3.986.694 1.111 1.029 2.022.45 2.215-.579.193-3.472.386-4.694.579C9.099 35.164 8.906 36 10.256 36H17.2c.707 0 .643-.643.193-1.607s.805-2.643.598-5.332c.414.14 1.395.067 1.974.838.579.772 3.729 5.976 8.809 5.976s6.43-3.826 6.815-4.855c.386-1.029-.45-1.029-1.093-.193s-2.761 1.931-5.722 1.508c-3.151-.45-3.822-4.465-4.658-6.909-.836-2.443-2.74-6.968-7.044-9.487-3.177-1.859-5.483-1.31-5.363-3.356.178-3.033.325-5.21-1.099-6.892-1.15-1.357-3.851-1.264-5.418-.319-.697.42-1.117 1.595-1.778 2.103C1.428 8.998.317 9.848.314 10.699z"/><path fill="#D79E84" d="M6.042 22.625c-.259.531-.006 1.019-.158 1.355-.225.497-1.254.804-1.35-.032-.097-.836-.021-1.948.45-2.572.322-.427 3.279-2.797 3.408-2.893.129-.096-.354-2.893-.354-2.893s.096-1.125 1.447-.868c1.35.257 1.318 1.415 1.318 2.636s.225 2.443-.386 2.733-4.117 2.003-4.375 2.534z"/><path fill="#292F33" d="M6.657 7.405c0 .465-.387.841-.865.841s-.865-.377-.865-.841.387-.561.865-.561.865.096.865.561z"/><path fill="#D99E82" d="M9.973.255c.912-.665 1.009 1.963.793 2.804S8.891 6.073 8.891 6.073s-1.297.631-1.297-.911S9.108.886 9.973.255z"/><path fill="#BF6952" d="M10.062 2.09c.58.346-1.307 3.303-1.766 3.055-.459-.247.988-3.519 1.766-3.055z"/><path fill="#292F33" d="M.314 10.139c.869-.528 1.081.911.793 1.402-.289.49-1.37-1.052-.793-1.402z"/><path fill="#BF6952" d="M7.274 22.34c-.125 0-.244-.073-.297-.195-.071-.164.004-.354.168-.426 1.066-.464 1.99-1.182 2.367-1.533.15-.182.523-1.447.777-2.511.042-.174.219-.278.39-.24.174.042.281.216.24.39-.223.931-.645 2.536-.966 2.835-.546.508-1.546 1.216-2.55 1.652-.042.019-.086.028-.129.028z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f999.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f999.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1694F" d="M6.755 2.246c-.443-.368-1.05-.976-1.629-1.299-.497-.277-.247.918.173 1.391.421.473 1.824 1.342 2.455 1.815.631.473.936.398.315-.473-.649-.911-1.314-1.434-1.314-1.434z"/><path fill="#D99E82" d="M8.191.736c.328.339.735 2.394.735 2.394s1.282.092 2.407.786c4.5 2.776 2.542 9.542 3.944 11.102.432.48 9.681-1.643 14.222.544 3.844 1.852 3.083 4.646 4.083 5.271.758.474-2 1.25-2.578-2.313-.506 11.147-1.072 13.867-1.672 16.354-.339 1.406-1.979 1.601-1.792-.333.1-1.027.463-7.223-.583-8.792-.75-1.125-4.708 2.417-11.707 1.773-.485 4.276-1.097 7.136-1.272 7.519-.562 1.229-1.863 1.218-1.676-.009.187-1.228.447-4.949-.884-9.01-5.626-3.98-1.626-14.189-3.253-16.146-.362-.435-2.647-.981-3.314-1.048-.666-.067-1.265-.172-1.664-.239-.4-.067-.994-1.776-.927-2.242s.394-.623 1.26-.956.988-.222.942-.728c-.097-1.052 2.183-1.774 3.481-1.645-.133-.133-1.08-1.786-1.354-2.393-.35-.774 1.068-.442 1.602.111z"/><path fill="#C1694F" d="M2.901 6.241c.068.342-.394.394-.315.69.079.296.536 1.256.95 1.157.414-.099.909-.07.224.259-.522.25-.847.012-.847.012s-.772-1.473-.693-1.894c.08-.419.661-.322.681-.224z"/><path fill="#292F33" d="M7.58 4.805c0 .405-.328.733-.733.733s-.732-.328-.732-.733c0-.405.367-.31.772-.31s.693-.095.693.31zM2.22 6.146c.062-.462 1.54-.335 1.005.138-.335.296-1.104.591-1.005-.138z"/><path fill="#C1694F" d="M7.473.846c.497.129 1.105 2.281.909 2.311-.256.04-1.517-2.468-.909-2.311zm2.472 5.846s1.009 1.324.252 2.269c-.756.946-2.333.63-2.333.63s1.513-.441 1.891-1.198c.379-.755.19-1.701.19-1.701z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f99a.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f99a.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M14.5 36c-.128 0-.256-.049-.354-.146-.195-.195-.195-.512 0-.707L16 33.293V31.5c0-.276.224-.5.5-.5s.5.224.5.5v2.207l-2.146 2.146c-.098.098-.226.147-.354.147z"/><path fill="#292F33" d="M16.5 34h-3c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h3c.276 0 .5.224.5.5s-.224.5-.5.5zm5 2c-.128 0-.256-.049-.354-.146L19 33.707V31.5c0-.276.224-.5.5-.5s.5.224.5.5v1.793l1.854 1.854c.195.195.195.512 0 .707-.098.097-.226.146-.354.146z"/><path fill="#292F33" d="M22.5 34h-3c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h3c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path fill="#A6D388" d="M36 25.909C36 29.727 34.001 31 18 31S0 29.727 0 25.909C0 13.257 8.059 4 18 4s18 9.257 18 21.909z"/><path fill="#77B255" d="M18 29c-.209 0-.404-.133-.474-.342-.087-.262.054-.545.316-.633l16.5-5.5c.263-.086.545.055.633.316.087.262-.055.545-.316.633l-16.5 5.5c-.054.018-.107.026-.159.026zm0-3c-.155 0-.308-.071-.405-.207-.162-.224-.112-.536.111-.698l14.5-10.5c.222-.163.536-.112.698.111s.111.537-.112.698l-14.5 10.5c-.087.065-.19.096-.292.096zm0-4c-.091 0-.183-.024-.266-.077-.233-.146-.304-.456-.157-.689l8.5-13.5c.147-.234.458-.301.689-.157.234.147.304.456.157.69l-8.5 13.5c-.095.15-.257.233-.423.233z"/><circle fill="#55ACEE" cx="32.5" cy="27" r="2"/><circle fill="#55ACEE" cx="32.5" cy="20" r="2"/><circle fill="#55ACEE" cx="28.5" cy="13" r="2"/><circle fill="#55ACEE" cx="21.5" cy="8" r="2"/><circle fill="#55ACEE" cx="28" cy="28.5" r="1.5"/><circle fill="#55ACEE" cx="28" cy="22.5" r="1.5"/><circle fill="#55ACEE" cx="25" cy="16.5" r="1.5"/><circle fill="#55ACEE" cx="24.5" cy="29" r="1"/><circle fill="#55ACEE" cx="24.5" cy="24" r="1"/><circle fill="#55ACEE" cx="21.5" cy="20" r="1"/><path fill="#77B255" d="M17.5 29c-.052 0-.105-.008-.158-.025l-16.5-5.5c-.262-.088-.403-.371-.316-.633s.369-.405.632-.316l16.5 5.5c.262.088.403.371.316.633-.07.208-.265.341-.474.341zm0-3c-.102 0-.204-.031-.293-.095l-14.5-10.5c-.224-.162-.273-.475-.111-.698.161-.224.474-.274.698-.111l14.5 10.5c.224.162.273.475.111.698-.098.135-.251.206-.405.206zm0-4c-.166 0-.329-.083-.424-.233l-8.5-13.5c-.146-.234-.076-.543.157-.69.236-.146.543-.077.69.156l8.5 13.5c.147.233.077.543-.157.689-.082.054-.175.078-.266.078z"/><path fill="#77B255" d="M17.5 24c-.276 0-.5-.224-.5-.5v-18c0-.276.224-.5.5-.5s.5.224.5.5v18c0 .276-.224.5-.5.5z"/><path fill="#269" d="M15 16c-1-2 0-4 0-4s0 1 1 2c0-3 1-3 1-3s0 2 1 3-3 2-3 2zm7.997 13c-.433-2-1.725-3.061-2.559-4.5-.671-1.156-2.134-3.75-.132-6.618.532-.762-1.885-1.831-2.305-1.877v-.004l-.015.002-.015-.002v.004c-.42.046-2.837 1.115-2.305 1.877 2.002 2.868.538 5.462-.132 6.618-.834 1.439-2.126 2.5-2.559 4.5-.362 1.668 2.247 3.981 4.997 3.998v.001h.015L18 33v-.002c2.75-.017 5.358-2.33 4.997-3.998z"/><path fill="#292F33" d="M19 16c3 0 6 2 6 2s-3 1-6 0 0-2 0-2"/><circle fill="#269" cx="18" cy="16" r="3"/><circle fill="#292F33" cx="19" cy="16" r="1"/><circle fill="#55ACEE" cx="3" cy="27" r="2"/><circle fill="#55ACEE" cx="3" cy="20" r="2"/><circle fill="#55ACEE" cx="7" cy="13" r="2"/><circle fill="#55ACEE" cx="14" cy="8" r="2"/><circle fill="#55ACEE" cx="7.5" cy="28.5" r="1.5"/><circle fill="#55ACEE" cx="7.5" cy="22.5" r="1.5"/><circle fill="#55ACEE" cx="10.5" cy="16.5" r="1.5"/><circle fill="#55ACEE" cx="11" cy="29" r="1"/><circle fill="#55ACEE" cx="11" cy="24" r="1"/><circle fill="#55ACEE" cx="14" cy="20" r="1"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f99c.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f99c.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#66757F" d="M17.5 35c-.128 0-.256-.049-.354-.146-.195-.195-.195-.512 0-.707L19 32.293V29.5c0-.276.224-.5.5-.5s.5.224.5.5v3.207l-2.146 2.146c-.098.098-.226.147-.354.147z"/><path fill="#66757F" d="M19.5 33h-3c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h3c.276 0 .5.224.5.5s-.224.5-.5.5zm3 2c-.128 0-.256-.049-.354-.146-.195-.195-.195-.512 0-.707L24 32.293V29.5c0-.276.224-.5.5-.5s.5.224.5.5v3.207l-2.146 2.146c-.098.098-.226.147-.354.147z"/><path fill="#66757F" d="M24.5 33h-3c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h3c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path fill="#F4900C" d="M3.53 13.798c.845.452 3.813-1.411 4.36-3.308S6.869 8.374 5.008 9.25 2.8 13.407 3.53 13.798z"/><path fill="#FFAC33" d="M6.325 4C3.77 5 2.047 7.378 2.031 10.088c-.016 2.699 1.219 4.423 2.594 4.047.376-.103-.303-1.922.85-4.371.57-1.207 1.303-1.35 1.675-1.313.373.036.443-4.947-.825-4.451z"/><path fill="#77B255" d="M34.525 31.384c-.014.499-1.916.822-5.592-3.599-2.927 3.09-7.374 3.182-11.821 1.422-4.999-1.979-8.383-6.924-7.701-13.976.382-3.954-5.228-3.587-5.081-8.899C4.441 2.337 7.843.797 10.704.876c4.74.131 6.82 5.293 8.052 6.561 6.494 6.688 15.81 22.47 15.769 23.947z"/><path fill="#EA596E" d="M28.932 27.785c-2.927 3.09-7.374 3.182-11.821 1.422-4.999-1.979-8.383-6.924-7.701-13.976.036 4.343 1.559 7.582 2.94 8.416-.58-2.79.117-7.062.784-7.779 1.591 9.402 10.022 14.78 15.798 11.917z"/><path fill="#3B88C3" d="M13.135 15.867s1.737 5.788 7.33 9.387 8.468 2.53 8.468 2.53-2.939 3.363-7.647 2.084-9.321-5.997-8.151-14.001z"/><path fill="#5C913B" d="M16.938 9.417c-2.504-.588-6.666 7.123-1.009 13.392 7.436 8.241 13.004 4.976 13.004 4.976S24.785 11.259 16.938 9.417z"/><circle fill="#292F33" cx="8" cy="6" r="1"/><path fill="#5C913B" d="M10.724 13.259c-.79 0-1.509-.189-1.976-.45-.248-.139-.336-.453-.198-.701.14-.248.454-.336.701-.198.665.373 2.406.63 3.614-.423.213-.187.539-.165.726.05.187.214.164.54-.05.726-.836.729-1.877.996-2.817.996z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f99d.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f99d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#99AAB5" d="M10.668 5.616C9.032 2.479 4.439 1.005 3.584 2.298s.707 10.152 1.757 9.967c1.051-.185 5.327-6.649 5.327-6.649z"/><path fill="#292F33" d="M9.841 7.674c-1.27-2.68-4.696-4.82-5.304-3.745-.435.771.122 5.263.757 7.696l4.547-3.951z"/><path fill="#99AAB5" d="M25.284 5.616c1.636-3.137 6.228-4.611 7.084-3.318s-.708 10.152-1.758 9.967c-1.051-.185-5.326-6.649-5.326-6.649z"/><path fill="#292F33" d="M26.36 7.674c1.231-2.686 4.501-4.854 5.07-3.786.416.78-.178 5.425-.815 7.825L26.36 7.674z"/><path fill="#99AAB5" d="M33.13 13.316c-2.583-3.164-9.048-11.601-15.155-11.601S5.404 10.152 2.821 13.316C-.317 17.16-.23 21.613.573 24.193c.805 2.587 3.155 5.038 9.261 7.431 2.065.809 5.705 2.393 8.142 2.393s6.076-1.583 8.142-2.393c6.106-2.393 8.457-4.843 9.261-7.431.802-2.58.89-7.033-2.249-10.877z"/><path fill="#E1E8ED" d="M17.976 14.408c0-4.913-4.078-4.855-6.542-4.572C6.922 10.353.076 16.597.076 20.569c0 1.39.16 2.631.496 3.624.584 1.726 1.875 3.015 5.034 5.266 3.49-8.351 12.37-11.246 12.37-15.051z"/><path fill="#292F33" d="M17.976 15.777c0-2.399-4.389-3.04-6.649-2.678C6.443 13.882.587 20.633.572 24.07v.013c.002.006.001.111.001.111s.384 1.401 1.623 2.815c.867.991 2.346 2.068 3.333 2.584l.01-.011c2.952-3.861 6.877-6.416 10.022-7.617 1.763-.673 2.415-3.5 2.415-6.188z"/><circle fill="#99AAB5" cx="13.396" cy="17.489" r="1.527"/><path fill="#E1E8ED" d="M17.976 14.408c0-4.913 4.078-4.855 6.542-4.572 4.511.518 11.357 6.762 11.357 10.734 0 1.39-.16 2.631-.496 3.624-.584 1.726-1.875 3.015-5.034 5.266-3.489-8.352-12.369-11.247-12.369-15.052z"/><path fill="#292F33" d="M17.976 15.777c0-2.399 4.389-3.04 6.649-2.678 4.884.783 10.74 7.534 10.755 10.971v.013c-.002.006-.001.111-.001.111s-.384 1.401-1.623 2.815c-.868.991-2.347 2.068-3.333 2.584l-.01-.011c-2.952-3.861-6.877-6.416-10.022-7.617-1.763-.673-2.415-3.5-2.415-6.188z"/><circle fill="#99AAB5" cx="22.555" cy="17.489" r="1.527"/><path fill="#66757F" d="M20.746 22.102c-.923-1.073-1.75-19.035-2.77-19.035s-1.847 17.962-2.77 19.035h5.54z"/><path fill="#E1E8ED" d="M24.915 24.184c-1.636-2.06-4.164-3.705-6.94-3.705s-5.304 1.646-6.94 3.705c-1.388 1.748-1.388 3.061-.925 4.226.482 1.214 1.388 2.821 4.164 3.986.939.394 2.594 1.165 3.701 1.165 1.108 0 2.762-.771 3.701-1.165 2.776-1.165 3.682-2.772 4.164-3.986.463-1.165.463-2.478-.925-4.226z"/><path fill="#292F33" d="M21.614 28.372c-.689-.562-1.629.184-3.639.184s-2.95-.746-3.639-.184c-.689.562.585 2.308 3.639 2.308s4.328-1.746 3.639-2.308z"/><path fill="#66757F" d="M13.165 24.769c-.133 0-.268-.035-.391-.107-3.002-1.792-8.357-.913-9.664-.286-.378.184-.835.023-1.019-.357-.182-.381-.022-.837.358-1.019 1.744-.838 7.624-1.725 11.107.35.362.217.481.685.264 1.047-.142.239-.395.372-.655.372z"/><path fill="#66757F" d="M2.141 29.702c-.168 0-.337-.056-.478-.169-.328-.264-.38-.744-.116-1.073 1.455-1.807 4.896-4.888 11.581-5.216.419-.035.779.304.8.725.021.421-.304.779-.725.8-6.089.299-9.171 3.041-10.467 4.649-.151.187-.372.284-.595.284zm31.669 0c-.223 0-.443-.097-.594-.284-1.295-1.608-4.377-4.35-10.467-4.649-.42-.021-.745-.379-.725-.8.021-.42.383-.763.8-.725 6.685.328 10.124 3.409 11.58 5.216.264.329.213.809-.115 1.073-.141.113-.31.169-.479.169z"/><path fill="#66757F" d="M22.787 24.769c-.26 0-.514-.133-.657-.373-.216-.362-.097-.83.264-1.047 3.482-2.076 9.366-1.188 11.107-.35.381.182.541.638.358 1.018-.182.381-.636.544-1.018.358-1.31-.628-6.664-1.505-9.664.286-.123.074-.257.108-.39.108z"/><path fill="#292F33" d="M21.614 22.244c0 1.765-2.539 3.223-3.639 3.223-1.1 0-3.639-1.458-3.639-3.223s1.629-1.81 3.639-1.81 3.639.045 3.639 1.81z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f99e.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f99e.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><g fill="#BE1931"><path d="M14.847 22.402h-.064c-2.117-.069-4.919-1.006-6.246-5.077-.135-.413.089-.864.503-.999.414-.135.857.085.992.499l.003.011c.312.959 1.263 3.876 4.8 3.991.435.015.776.378.762.812-.014.415-.344.743-.75.763zm-5.348 5.637c.151-.221.411-.359.698-.342 3.034.181 4.578-1.938 5.086-2.634.256-.352.749-.429 1.1-.173.352.256.414.747.173 1.1-1.698 2.33-3.869 3.434-6.453 3.28-.434-.026-.766-.399-.74-.834.01-.148.059-.284.136-.397z"/><path d="M14.362 23.967c.421-.064.767-.141 1.022-.2l.179-.04c.426-.092.695-.511.603-.937-.092-.425-.515-.698-.937-.603l-.193.043c-1.087.245-3.635.824-6.463-1.149-.357-.248-.849-.161-1.096.195-.249.357-.161.848.195 1.096 2.665 1.86 5.165 1.826 6.69 1.595z"/><path d="M15.403 25.298c.376-.199 1.053-.624 1.053-.624.371-.228.487-.712.259-1.084-.227-.37-.718-.488-1.084-.259l-.168.105c-.944.591-3.156 1.981-6.479 1.057-.419-.116-.854.129-.97.548-.117.419.129.854.548.97 3.131.87 5.479.009 6.841-.713z"/></g><g fill="#BE1931"><path d="M21.833 22.402h.064c2.117-.069 4.919-1.006 6.246-5.077.135-.413-.089-.864-.503-.999-.414-.135-.857.085-.992.499l-.003.011c-.312.959-1.263 3.876-4.8 3.991-.435.015-.776.378-.762.812.015.415.344.743.75.763zm5.348 5.637c-.151-.221-.411-.359-.698-.342-3.034.181-4.578-1.938-5.086-2.634-.256-.352-.749-.429-1.1-.173-.352.256-.414.747-.173 1.1 1.698 2.33 3.869 3.434 6.453 3.28.434-.026.766-.399.74-.834-.009-.148-.058-.284-.136-.397z"/><path d="M22.318 23.967c-.421-.064-.767-.141-1.022-.2l-.179-.04c-.426-.092-.695-.511-.603-.937.092-.425.515-.698.937-.603l.193.043c1.087.245 3.635.824 6.463-1.149.357-.248.849-.161 1.096.195.249.357.161.848-.195 1.096-2.664 1.86-5.165 1.826-6.69 1.595z"/><path d="M21.277 25.298c-.376-.199-1.053-.624-1.053-.624-.371-.228-.487-.712-.259-1.084.227-.37.718-.488 1.084-.259l.168.105c.944.591 3.156 1.981 6.479 1.057.419-.116.854.129.97.548.117.419-.129.854-.548.97-3.131.87-5.479.009-6.841-.713z"/></g><path fill="#BE1931" d="M8.983 6.922c.752-.779 2.316-2.461 1.59-3.954.949.077 6.757 6.159-.06 9.073-1.072-.137-1.53-5.119-1.53-5.119zm8.772 23.394c-.726.329-4.25 2.171-4.354 5.46.069.789 2.73-1.25 5.01-1.25v-3.454l-.656-.756z"/><path fill="#BE1931" d="M19.035 30.316c.726.329 4.25 2.171 4.354 5.46-.069.789-2.73-1.25-5.01-1.25v-3.454l.656-.756zm-11.4-18.303c.133 1.429 2.975 2.889 5.023 3.227.262-.57-1.354-2.237-2.227-3.246-.488-.564-.701-1.904-2.185-1.321s-.611 1.34-.611 1.34z"/><path fill="#BE1931" d="M11.742 13.793c-.655 0-.83 1.754 2.489 2.544s1.56-.878 1.048-1.667c-.656-1.009-3.537-.877-3.537-.877z"/><path fill="#89021F" d="M15.465 25.382c-.187.987-.075 6.217 2.961 6.612v-7.006l-2.961.394z"/><path fill="#BE1931" d="M27.629 6.922c-.752-.779-2.316-2.461-1.59-3.954-.949.077-6.757 6.159.06 9.073 1.072-.137 1.53-5.119 1.53-5.119z"/><path fill="#BE1931" d="M28.976 12.013c-.133 1.429-2.975 2.889-5.023 3.227-.262-.57 1.354-2.237 2.227-3.246.488-.564.701-1.904 2.185-1.321s.611 1.34.611 1.34z"/><path fill="#BE1931" d="M24.87 13.793c.655 0 .83 1.754-2.489 2.544s-1.56-.878-1.048-1.667c.655-1.009 3.537-.877 3.537-.877z"/><path fill="#DD2E44" d="M28.391.042c2.633.67 4.675 5.092 4.174 7.847-.782 4.302-2.992 5.787-5.428 6.164-.748-.058-3.293-3.474-.576-6.272s2.505-5.856 1.83-7.739z"/><path fill="#BE1931" d="M17.541 12.5c-.258 0-.478-.199-.498-.461-.498-6.35-2.635-10.064-6.018-10.459-.274-.032-.471-.28-.438-.555.032-.273.274-.468.555-.438 2.264.264 6.17 2.093 6.898 11.374.021.275-.184.516-.459.538l-.04.001zm1.418 0l-.04-.001c-.275-.021-.481-.262-.459-.538C19.188 2.68 23.095.851 25.359.587c.27-.038.522.164.555.438.031.274-.165.523-.439.555-3.383.395-5.52 4.109-6.018 10.459-.02.262-.239.461-.498.461z"/><path fill="#A0041E" d="M18.381 23.04c0 1 .019 3.326.019 4.876-.576 0-1.491-.016-2.438-.3-1.497-.45-1.113-3.901-.614-4.701l3.033.125z"/><path fill="#BE1931" d="M18.335 19.239c0 1.113.022 3.702.022 5.428-.655 0-1.696-.017-2.773-.334-1.703-.501-1.266-4.342-.699-5.233l3.45.139z"/><path fill="#DD2E44" d="M18.335 11.731c0 2.169.279 8.822.279 9.497-1.397 0-5.301.337-5.082-3.134.218-3.47 2.358-6.363 4.803-6.363z"/><path fill="#89021F" d="M21.152 25.382c.187.987.075 6.217-2.961 6.612v-7.006l2.961.394z"/><path fill="#A0041E" d="M18.235 23.04c0 1-.152 3.326-.152 4.876.576 0 1.624-.016 2.57-.3 1.497-.45 1.113-3.901.614-4.701l-3.032.125z"/><path fill="#BE1931" d="M18.282 19.239c0 1.113-.165 3.702-.165 5.428.655 0 1.84-.017 2.916-.334 1.703-.501 1.266-4.342.699-5.233l-3.45.139z"/><path fill="#DD2E44" d="M18.282 11.731c0 2.169-.21 8.822-.21 9.497 1.397 0 5.231.337 5.013-3.134s-2.358-6.363-4.803-6.363zM8.22.042c-2.633.67-4.675 5.092-4.174 7.847.782 4.302 2.992 5.787 5.428 6.164.748-.058 3.293-3.474.576-6.272S7.546 1.925 8.22.042z"/><ellipse transform="rotate(-10.068 16.574 12.941)" fill="#BE1931" cx="16.578" cy="12.94" rx="1.015" ry="1.435"/><ellipse transform="rotate(-79.939 19.875 12.896)" fill="#BE1931" cx="19.875" cy="12.896" rx="1.435" ry="1.015"/><ellipse transform="rotate(-10.068 16.45 12.233)" fill="#292F33" cx="16.453" cy="12.232" rx="1.015" ry="1.435"/><ellipse transform="rotate(-79.939 19.99 12.232)" fill="#292F33" cx="19.99" cy="12.232" rx="1.435" ry="1.015"/><path fill="#EA596E" d="M14.375 18.906c.281.844.844 1.75 3.844 1.75 2.094 0 4.156-.375 4.094-1.906-.781.656-1.75.938-4.094.938-2.5 0-3.844-.782-3.844-.782z"/><path fill="#DD2E44" d="M15.272 22.923c.218.595.653 1.234 2.975 1.234 1.62 0 3.217-.264 3.168-1.344-.605.463-1.354.661-3.168.661-1.935-.001-2.975-.551-2.975-.551z"/><path fill="#BE1931" d="M15.376 26.089c.205.595.615 1.234 2.803 1.234 1.527 0 3.031-.264 2.986-1.344-.57.463-1.276.661-2.986.661-1.823 0-2.803-.551-2.803-.551z"/><path fill="#EA596E" d="M8.812 12.781c-.106 0-.214-.022-.316-.07-2.026-.944-3.157-2.62-3.361-4.98-.036-.412.265-.812.677-.848.413-.036.773.231.81.643l.006.076c.064.737.233 2.693 2.501 3.75.375.175.538.621.363.997-.127.272-.397.432-.68.432zm18.938 0c-.282 0-.553-.16-.68-.433-.175-.375-.013-.822.363-.997 2.268-1.057 2.437-3.013 2.5-3.75l.754-.008.741.137c-.205 2.36-1.336 4.036-3.362 4.98-.102.049-.21.071-.316.071z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f9a3.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f9a3.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#662113" d="M9.396 20.496s2.053 6.29 2.053 8.144.023 3.271-.374 4.463c-.397 1.192-.066 1.523 1.523 1.589 1.589.066 3.774 0 3.973-1.192.199-1.192-.156-1.55-.089-2.742.066-1.192.331-4.37.53-4.701.199-.331 3.906.662 4.635.927s3.046.265 3.112 1.059c.066.795.487 4.86.288 5.655-.199.795.397.993 2.251.927 1.986-.071 3.112-.463 2.979-1.324-.132-.861-.222-2.146.043-3.139s1.258-3.84 1.324-4.767c0 0 .927-2.053.861-3.575-.066-1.523-.651-3.477-2.522-5.575-1.28-1.435-3.196-1.466-5.579-2.194s-4.461-1.581-5.454-2.508c-.993-.927-3.694-1.065-5.078-.439-1.362.616-6.059 10.788-4.476 9.392z"/><path fill="#C1694F" d="M35.627 28.281c-.53-1.523-.993-3.906-1.059-5.429-.029-.661-.076-1.581-.263-2.576l.619.435c-.104-1.144-1.069-2.108-1.069-2.108l1.126-.118c-.28-.504-1.854-1.338-1.854-1.338l1.283-.318c-.56-.84-2.03-.98-2.03-.98l.318-.504c-.402-.281-1.209-.247-2.149-.532-1.02-.603-2.203-1.096-3.576-1.515-1.12-.342-2.124-.907-2.984-1.504l1.289-.444s-1.157-.459-1.628-.619c-.378-.129-.988-.154-1.217-.16l-.026-.023 1.32-.401c-.413-.558-2.555-.759-2.555-.759s.988-.197 1.139-.287c-.755-.574-2.112-.319-2.112-.319l.995-.859c-.583-.077-2.719.602-2.719.602l.582-.999c-.734.013-1.586 1.026-2.27 1.061-.051.003-.097.011-.147.016-.489-.106-.982-.292-1.425-.68-.497-.435-1.054-.86-1.638-1.183-.757-.419-1.558-.666-2.326-.539-1.195.199-1.565 1.223-2.53 1.674-.113.053-.214.115-.304.184-.828.376-1.435.846-1.641 1.093l.802.059s-1.661.726-2.02 1.188l1.042-.031s-.926.655-1.131 1.22l.772.012s-1.279 1.13-1.485 1.592l.971-.258-.704 1.654.543-.055c-.073.341-.135.678-.187 1.012-.039.12-.067.266-.074.455-.031.811-1.09 1.688-1.09 1.688l.541.609s-.565 1.302-.883 1.674c0 0 .931-.215 1.09-.481 0 0-.297 1.16-.52 2.022l.777-.481c.164 2.254.028 5.167-.987 6.98-1.031 1.843-2.782 2.646-3.715 3.193-.933.547.109 3.102.733 3.012.624-.09 2.429-.561 4.762-2.374.442-.344.808-.679 1.14-1.01l.201.67c.445-.683.799-1.769.799-1.769l.799.4v-1.598l.799.285s-.483-1.41-.24-2.181c.39-1.353 1.351-2.888 2.309-3.965.588 1.9 1.691 5.641 1.691 7.001 0 1.854.023 3.271-.374 4.463s-.066 1.523 1.523 1.589 3.774 0 3.973-1.192c.199-1.192-.156-1.55-.089-2.742.065-1.168.2-3.8.392-4.216l.403.587.645-.751.02.001.479 2.204.529-1.925.498.897.692-.957.449 2.156.562-1.64.693 1.069.601-.935.564 1.634.481-1.388c.06.025.118.049.175.075l.522.995c.035-.012.215-.165.422-.405.129.133.225.27.237.417.066.795.398 4.328.199 5.123-.199.795.397.993 2.251.927 1.986-.071 3.112-.463 2.979-1.324-.132-.861-.222-2.146.043-3.139.265-.993 1.258-3.84 1.324-4.767 0 0 .07 1.396.596 2.185 1.195 1.784 1.857 1.188 1.327-.335z"/><path fill="#DA9E82" d="M9.808 21.064s-1.305 3.179-2.829 3.704c-1.857.64-4.21.573-4.917-.904-.748-1.564-.534-3.186.46-4.254.412-.443-.03-.645-.567-.31-1.484.926-2 2.417-1.777 4.256.188 1.544 1.681 3.207 3.59 3.465s4.308.127 6.011-1.73c1.283-1.399 1.78-2.374 2.118-2.947.316-.539-1.879-1.763-2.089-1.28z"/><path fill="#FFE9B7" d="M9.808 21.064s-1.45 3.394-2.973 3.92c-1.857.64-4.283.497-4.99-.98-.749-1.564-.727-3.209.267-4.277.412-.443.2-.542-.297-.149C.538 20.588.136 21.69.36 23.528c.188 1.544 1.596 3.069 3.505 3.327 1.909.258 4.119.283 5.822-1.574 1.283-1.399 1.872-2.364 2.209-2.937.317-.539-1.878-1.763-2.088-1.28z"/><circle fill="#292F33" cx="11" cy="14" r="1"/><path fill="#662113" d="M15.552 10.936c.068.616.89 1.848 1.369 2.258.479.411.616 1.574-.205 2.532s-1.095 2.532-1.848 3.148-1.779.137-1.984-.342c0 0-.411.958.753 1.232 1.163.274 1.848.068 2.463-1.095.616-1.163 1.437-2.326 2.053-3.148.616-.821.479-2.395-.274-2.874-.754-.48-2.327-1.711-2.327-1.711z"/><path opacity=".6" fill="#662113" d="M30.355 17.471c.175.738.01 1.891-.319 1.115s-.49-2.059-.49-2.059.634.205.809.944zm1.691 1.199s.119 1.173.43 2.049.395-.374.215-1.196c-.179-.822-.645-.853-.645-.853zm.581 4.422s.013.997.228 2.011c.215 1.013.472.175.398-.76s-.626-1.251-.626-1.251zm-3.314 1.979s.024 1.299.227 2.122.535-.031.475-.792c-.06-.761-.702-1.33-.702-1.33zm1.971 2.413s-.233 1.278-.197 2.125c.036.846.531.076.622-.682.091-.758-.425-1.443-.425-1.443zm-3.123-8.993s.009 1.086.223 2.099c.215 1.013.567.018.493-.917-.074-.935-.716-1.182-.716-1.182zm-.371 4.332s-.327.753-.255 1.787c.072 1.033.56.096.616-.84.057-.936-.361-.947-.361-.947zm2.948-1.222s-.055.874.305 1.845.578.202.369-.712c-.21-.914-.674-1.133-.674-1.133zm-4.319-6.013s-.066.762.268 1.742.498-.137.336-1.057c-.162-.92-.604-.685-.604-.685zm-4.664-2.692s.533.878 1.09 1.545.402-.278.012-.955c-.389-.678-1.102-.59-1.102-.59zm1.136 3.228s.029.94.325 1.757.473-.125.337-.894c-.135-.769-.662-.863-.662-.863zm-.872 4.083s-.16.921-.006 1.776.568.425.564-.356-.558-1.42-.558-1.42zm3.283 4.984s-.056.822.098 1.678c.154.855.487-.043.484-.824s-.582-.854-.582-.854zm-5.278-1.775s-.294.818-.229 1.684c.065.866.428.51.505-.267.077-.777-.276-1.417-.276-1.417zm-1.474 1.519s-.294.818-.229 1.684c.065.866.428.51.505-.267.077-.778-.276-1.417-.276-1.417zm5.181.848s-.294.818-.229 1.684c.065.866.428.51.505-.267.077-.777-.276-1.417-.276-1.417zm-6.063-5.633s-.205 1.204-.14 2.071c.065.866.398.391.475-.386.077-.778-.335-1.685-.335-1.685zm-3.681 4.336c.132.77.548 1.608.522.745s-.283-1.826-.283-1.826-.371.31-.239 1.081zm1.713 2.67c.132.77.548 1.608.522.745s-.323-1.807-.323-1.807-.331.292-.199 1.062zm-1.295 3.171c.132.77.548 1.608.522.745s-.273-1.673-.273-1.673-.381.158-.249.928zm5.334-18.798s.49 1.29.926 2.041.443-.207.173-.94c-.27-.732-1.099-1.101-1.099-1.101zm-.063 6.407s.08 1.378.27 2.226c.191.848.485-.064.447-.844s-.717-1.382-.717-1.382zm5.426.772s.253 1.357.549 2.174c.296.817.473-.125.337-.894-.135-.77-.886-1.28-.886-1.28zm-1.42 2.546s-.09 1.071.096 1.92.485-.061.452-.842c-.032-.78-.548-1.078-.548-1.078zM7.259 14.74s-.67.491-.938 1.027c-.268.536-.089 1.072.223.536.313-.536.715-1.563.715-1.563zm1.161-4.422s-.715.134-1.117.491-.313.849.134.491c.447-.357.983-.982.983-.982zm-1.563 2.769c.402-.447 1.921-1.608 1.206-1.429-.715.179-1.295.938-1.295.938-.269.312-.313.938.089.491zm2.769-4.154c.536-.402 1.34-.804 1.34-.804s-.448.061-1.206.313c-.536.179-.67.893-.134.491zm-2.412 8.084s-.581.223-.938 1.027c-.357.804-.179 1.251.134.625.313-.624.804-1.652.804-1.652zm.536 2.323s-.581.402-.804 1.027c-.223.625-.089 1.251.134.625.223-.625.67-1.652.67-1.652zm1.697-1.653s-.402.759-.447 1.295c-.045.536.268.983.313.357.045-.624.134-1.652.134-1.652zm-2.456 4.69s-.581.313-.938.804c-.357.491-.223 1.251.089.67.313-.581.849-1.474.849-1.474zm.178 7.191c-.045.67.536.134.536-.447s-.178-1.251-.178-1.251-.313 1.028-.358 1.698zm-2.724 0s-.491.134-.983.313c-.491.179-1.072 1.027-.491.759s1.474-1.072 1.474-1.072zm-.313 2.322s-.536.402-1.117.581c-.581.179-.357.67.357.313.716-.358.76-.894.76-.894zM14.449 8.576c.804.536.759.223.491-.223-.268-.447-1.519-.625-1.519-.625s.224.312 1.028.848zm-.808 2.433c.466.549.513-.414.028-.823s-1.122-.654-1.122-.654.628.928 1.094 1.477zm-.666 5.964c.22.686.559.028.268-.536s-.687-.837-.687-.837.2.687.419 1.373zm1.564-2.546c.22.686.559.028.268-.536s-.687-.837-.687-.837.199.687.419 1.373zm13.264 1.474c.22.686.559.028.268-.536s-.687-.837-.687-.837.2.687.419 1.373zm.626 15.41c.102.713.547.121.354-.484-.193-.605-.537-.94-.537-.94s.081.711.183 1.424zm-11.16 1.26c-.081.716.499.255.464-.379-.034-.634-.284-1.045-.284-1.045s-.1.708-.18 1.424zM11.055 10.05s-.983.357-1.251.759-.089.938.179.491c.268-.446 1.072-1.25 1.072-1.25z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f9a4.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f9a4.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#E08110" d="M17.338 26.109c0 1.515-.032 2.456-.771 2.813-.739.357-3.354.065-3.805.339-.45.274-.845.792-.42.78.425-.012 1.004.13 1.004.13s-.821.222-1.127.531-.464.961-.148.923c.316-.038 1.869-.427 2.177-.429 0 0-.386.482-.429.816-.043.335.229.478.229.478s1.118-.495 1.551-.697c.433-.202 1.161-.83 1.504-.977.343-.147.768-.158 2.126.249 0 0 .016-.655-.51-.859-.526-.205-.915-.058-.802-.847.134-.936.436-2.834.713-3.342.278-.505-1.292-1.027-1.292.092z"/><path fill="#66757F" d="M13.427 21.831c1.303 1.002 2.871 2.423 3.206 3.132.336.708.186 1.864 1.118 1.901.932.037 1.454-.746 1.827-1.901.373-1.156 1.007-3.02.634-4.175s-5.48-.746-6.263-.41c-.783.334-1.492.707-.522 1.453z"/><path fill="#CCD6DD" d="M10.009 1.94c0 .801-.651 1.352-1.552 1.602s-2.403.2-3.204 1.001-1.201 2.803 1.452 4.806c0 0-.401-.701-.25-1.202 0 0 .801.2 1.352-.1.551-.3.801-.951 1.302-1.302.501-.35 1.652-.651 1.852.751s2.186-.419 2.47-.834c.434-.634 1.619-2.553 1.168-3.104S13.33 2.59 12.93 2.09c-.401-.501-2.921-.15-2.921-.15z"/><path fill="#E1E8ED" d="M10.009 1.94c0 .801-.651 1.352-1.552 1.602s-2.403.2-3.204 1.001-1.201 2.803 1.452 4.806c0 0-.401-.701-.25-1.202 0 0 .801.2 1.352-.1.551-.3.801-.951 1.302-1.302.501-.35 1.652-.651 1.852.751s1.952-.1 2.003-.601c.05-.501.25-1.101-.2-1.652s-1.902-.601-2.303-1.101c-.402-.5-.452-2.202-.452-2.202z"/><path fill="#FFAC33" d="M6.289 7.708c.167-.5.458-.749.874-.985.405-.886.534-2.102.456-3.021-.825.125-1.781.257-2.366.841-.773.773-1.164 2.667 1.197 4.599-.279-.447-.323-.948-.161-1.434z"/><path fill="#FFAC33" d="M8.31 6.423l-.087.073c-.533.433-1.267.511-1.7 1.312-.05.093-.064.213-.064.34.018.004.804.196 1.349-.101.082-.045.148-.109.218-.168.294-.364.304-1.073.284-1.456z"/><path fill="#C1694F" d="M9.859 4.927c-.867.167-1.402 1.134-2.136 1.502-.21.105-.393.199-.56.294-.416.236-.707.485-.874.985-.162.486-.118.987.161 1.434.084.069.164.138.255.207 0 0-.4-.701-.25-1.201l.003.001c0-.127.014-.247.064-.34.434-.802 1.168-.88 1.702-1.314l.086-.072c.532-.444 1.283-1.164 1.916-1.196.667-.033 2.003.167 2.003.167s-1.502-.634-2.37-.467z"/><path fill="#99AAB5" d="M10.026 2.323c-.255-.074-.425-.467-.3-.801.142-.38 1.135-1.168 2.87-1.068s4.139 1.335 4.205 4.606c.067 3.271-1.569 4.239-2.203 5.006-.634.768-.634 1.769.868 1.836 1.502.067-.2 3.605-1.368 5.04s-4.339 3.304-5.607 1.535c-1.268-1.769-1.902-2.637-1.969-4.606s.935-3.638 2.069-4.606 2.169-1.135 2.336-2.069c0 0 .567.067.901-.434.334-.501.768-.501 1.202-.567s1.202-.968 1.168-1.635c-.033-.655-.38-1.646-.884-2.069-1.035-.868-2.644.019-3.288-.168z"/><circle fill="#292F33" cx="12.097" cy="3.601" r=".75"/><path fill="#99AAB5" d="M13.998 11.523c.668.374 2.011.257 2.61.086s2.61-.599 3.893-.428 3.166 1.112 4.192 1.711c1.027.599 1.754.856 2.396.471s2.011 2.909 2.182 4.62c.171 1.711.299 3.251-1.283 4.492-1.583 1.241-4.306 2.644-8.513 2.396-4.286-.253-11.147-2.432-11.389-7.234-.28-5.557.48-4.402 1.977-5.557s2.866-1.156 3.935-.557z"/><path fill="#FFAC33" d="M20.457 27.401c-.039 1.158-.045 2.673-.802 3.297-.757.624-3.876 1.025-4.322 1.47-.446.446-.757 1.158-.267 1.025s1.203-.134 1.203-.134-.891.49-1.158.936c-.267.446-.267 1.248.089 1.114s2.05-1.025 2.406-1.114c0 0-.312.668-.267 1.069.045.401.401.49.401.49s1.158-.891 1.604-1.248 1.114-1.292 1.47-1.559c.356-.267.847-.401 2.54-.312 0 0-.223-.624-.891-.713-.668-.089-1.515.089-1.337-.847s.713-3.208.891-3.876c.178-.667-1.515-.935-1.56.402z"/><path fill="#99AAB5" d="M15.957 22.366c1.557 1.198 3.431 2.896 3.832 3.743s.223 2.228 1.337 2.272c1.114.045 1.738-.891 2.183-2.272.446-1.381 1.203-3.609.757-4.99s-6.549-.891-7.485-.49c-.936.401-1.782.846-.624 1.737z"/><path fill="#66757F" d="M13.614 15.306c-.325.812-.3 3.254.3 3.755.601.501 1.445 1.202 1.502 1.802.1 1.051 1.302 2.703 2.553 3.354 1.252.651 3.004.651 3.755.551.751-.1 1.252-.951 1.001-2.353-.25-1.402-.951-3.004-2.003-3.304 0 0 1.252-.951 1.252-1.802 0-.851-1.202-2.854-1.952-3.454-.751-.601-5.707-.301-6.408 1.451z"/><path fill="#99AAB5" d="M13.452 15.013c-.325.812.112 3.197.712 3.697.601.501 1.602 1.402 1.652 2.003.05.601.901 2.303 2.153 2.954 1.252.651 2.603.851 3.354.751.751-.1 1.352-.651 1.101-2.053-.25-1.402-.701-3.154-2.253-3.404 0 0 1.502-.851 1.502-1.702s-.893-3.097-1.644-3.698c-.75-.601-5.876-.3-6.577 1.452z"/><path fill="#CCD6DD" d="M25.999 13.524c.23-1.11 1.477-2.227 2.903-2.135.921.059 1.842.446 2.243 1.188.421.78-.059 1.515-.059 1.515s.356.52.238 1.396c-.105.771-.743.802-.743.802s-.305 1.343-.802 1.871c-1.426 1.515-1.693 1.411-1.693 1.411s.297-.876.431-1.678c0 0-.475-.074-.475-.876s-.016-1.369-.327-2.347c-.298-.935-1.716-1.147-1.716-1.147zm-7.623 5.727s1.211-.081 1.776.081c.565.161 1.897 1.09 1.17 1.13-.727.04-2.946-1.211-2.946-1.211zm-.081.807s1.574.242 2.139.404c.565.161 1.897 1.164 1.17 1.13-1.735-.081-3.309-1.534-3.309-1.534zm.363 1.009s1.574.525 2.139.686 1.897.881 1.17.847c-1.735-.081-3.309-1.533-3.309-1.533zm0 .968s1.574.525 2.139.686 1.897.881 1.17.847c-1.735-.08-3.309-1.533-3.309-1.533zm-1.077-4.89s1.659.033 2.246.02c.587-.014 2.073.278 1.369.462-1.68.438-3.615-.482-3.615-.482zm.835-.638s.986-.176 1.573-.189c.587-.014 1.795.331 1.09.512-1.251.322-2.663-.323-2.663-.323zm.202-.727s.906-.107 1.493-.121 1.592.181.888.363c-1.251.323-2.381-.242-2.381-.242zm-.242 7.264s1.13.282 1.695.444c.565.161 1.897.881 1.17.847-1.736-.08-2.865-1.291-2.865-1.291zm-.808-4.923s.987-.237 1.572-.188c.586.049 2.032.498 1.312.605-1.718.256-2.884-.417-2.884-.417z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f9a5.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f9a5.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#7A5C44" d="M6 21c-1.105 0-2-.895-2-2V4c0-1.105.895-1 2-1s2-.105 2 1c0 0-.606 6.424 0 11.997C8.54 20.971 12 22 12 22c0 1.105-4.895-1-6-1zm14 4.999c-1.105 0-2-.895-2-2v-21c0-1.105.895-1 2-1s2-.105 2 1c0 0-.446 5.108-.125 9.297.32 4.187.125 11.703.125 11.703 0 1.104-.895 2-2 2z"/><path fill="#662113" d="M36 4L0 8V4l36-2z"/><path fill="#A78E81" d="M22.644 18.406c-.633 1.126-1.363 1.809-2.16 2.193-.402.041-1.132-.085-1.417-1.443-.332-1.587-.668-3.833-.668-6.594 0-4.144.601-8.742.601-8.742 0-.929 1.412-.936 2.086-.991-.156-.832-1.749-.83-3.684-.83-1.453 0-2.256 1.074-2.402 2.301-.147 1.228-.789 6.347-.744 10 .024 1.984.154 4.161.315 6.016-.792-.201-1.585-.393-2.364-.491-2.807-.356-6.505-.535-7.129-5.881C4.584 9.712 5 4.82 5 4.82c0-.929 1.412-1.158 2.086-1.213-.156-.832-1.678-.911-3.61-.783C2.026 2.92 1.235 3.668 1 5.3.622 7.929.578 13.988.8 18.176c.124 2.338.49 10.76 4.099 14.035C7.007 34.123 10.587 35.253 15 35c4.185-.24 7.623-1.796 9.548-3.413 3.342-2.807 4.09-4.837 4.229-7.035C29 21 24.02 15.959 22.644 18.406z"/><path fill="#A78E81" d="M35.025 22.671c-2.101 3.201-6.277 4.173-10.759 1.232s-5.253-7.159-3.152-10.36 7.488-2.584 10.384-.624 5.628 6.551 3.527 9.752z"/><path fill="#E2D2C7" d="M33.271 23.178c-1.5 2.287-5.164 2.984-9.005.464s-4.419-6.001-2.918-8.288c1.5-2.287 4.294-1.921 8.135.6s5.288 4.938 3.788 7.224z"/><path fill="#292F33" d="M20.565 14.564c-.499 1.126-.677 2.336-.491 3.55 1.498.439 3.637.97 4.65.759 1.646-.342 2.198-1.817 1.956-2.981-.335-1.616-3.191-2.544-6.115-1.328z"/><circle fill="#F5F8FA" cx="23.389" cy="16.576" r="1.188"/><path fill="#292F33" d="M34.307 23.581c-.834.906-1.873 1.551-3.061 1.864-.999-1.199-2.337-2.951-2.548-3.964-.342-1.646.792-2.739 1.956-2.981 1.617-.335 3.605 1.915 3.653 5.081z"/><circle fill="#F5F8FA" cx="31.338" cy="21.792" r="1.188"/><path fill="#292F33" d="M28.047 22.475c-.72 1.098-2.194 1.403-3.291.683-1.098-.72-1.403-2.194-.683-3.291.72-1.098 1.542-.41 2.639.31 1.097.72 2.055 1.2 1.335 2.298z"/><path fill="#292F33" d="M27.979 25.122c-.024 0-.049-.002-.073-.005-4.479-.654-6.297-4.07-6.372-4.216-.126-.244-.031-.545.214-.672.246-.13.546-.031.674.211.017.031 1.673 3.109 5.629 3.687.273.04.462.294.423.567-.037.249-.25.428-.495.428z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f9a6.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f9a6.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#A78E81" d="M2.381 8.671c-1.573 0-2.359.786-1.573 1.573 1.573 1.573 3.145 1.573 3.931.786L2.381 8.671zm6.29-6.29c0-1.573.786-2.359 1.573-1.573 1.573 1.573 1.573 3.145.786 3.931L8.671 2.381zm-4.717 9.435s8.547 14.433 14.939 16.512c3.344 1.087 5.692.599 7.863-1.573s2.406-4.447 1.573-7.863C26.937 13.188 11.816 3.954 11.816 3.954l-7.862 7.862z"/><path fill="#A78E81" d="M16.129 26.852c4.231 5.36 8.793 7.807 10.465 6.519 1.624-1.25-.324-2.578-2.174-6.954-1.936-4.58-10.526-2.397-8.291.435zM26.85 16.07c5.36 4.231 7.803 8.858 6.516 10.53-1.25 1.624-2.578-.324-6.954-2.174-4.581-1.936-2.394-10.591.438-8.356z"/><path fill="#846659" d="M17.008 21.564c.699-1.287-.914-3.363-2.504-3.314-1.172.036-3.617 1.934-5.883-.746-.209.209-.304.496-.311.829 1.158 1.577 2.472 3.242 3.848 4.765 1.656.479 3.913.192 4.85-1.534zm1.242-7.06c-.049 1.589 2.028 3.203 3.314 2.504 1.712-.93 2.007-3.159 1.544-4.81-1.545-1.372-3.246-2.703-4.851-3.882-.3.02-.56.113-.753.306 2.679 2.265.782 4.71.746 5.882z"/><path fill="#CAB8AC" d="M13.341 16.895c1.589-.049 3.203 2.028 2.504 3.314-1.12 2.061-4.135 2.086-5.74 1.183-1.79-1.007-3.732-4.157-2.646-5.243 2.265 2.68 4.709.783 5.882.746zm3.553-3.553c-.049 1.589 2.028 3.203 3.314 2.504 2.061-1.12 2.086-4.135 1.183-5.74-1.007-1.79-4.157-3.732-5.243-2.646 2.679 2.265.782 4.71.746 5.882z"/><path fill="#A78E81" d="M27.542 24.397c3.474 3.474 8.731 10.139 7.863 11.008-.868.868-7.534-4.389-11.008-7.863s-4.014-5.422-3.145-6.29c.868-.869 2.816-.329 6.29 3.145zM12.603 3.167c2.171 2.171 1.554 4.736-1.573 7.863s-5.692 3.744-7.863 1.573-2.34-5.523.787-8.649 6.477-2.958 8.649-.787z"/><path fill="#CAB8AC" d="M13.738 4.303c1.223 1.223 1.991 5.173-1.136 8.3s-7.076 2.359-8.3 1.136c-1.93-1.93 1.223-5.067 2.796-6.64s4.71-4.726 6.64-2.796z"/><path fill="#292F33" d="M9.457 6.312c.868.868.868 2.277 0 3.145s-2.277.868-3.145 0-.082-1.49.787-2.358 1.49-1.655 2.358-.787z"/><circle fill="#292F33" cx="4.74" cy="9.457" r="1.112"/><circle fill="#292F33" cx="9.457" cy="4.74" r="1.112"/><path fill="#A78E81" d="M10.655 10.401c-.426 0-.82-.101-1.132-.308-.189-.125-.241-.38-.116-.57.125-.19.38-.242.57-.116.452.299 1.339.188 2.019-.253.276-.179.906-.674.785-1.399-.037-.224.114-.436.338-.473.225-.036.436.114.473.338.139.836-.291 1.668-1.15 2.224-.565.368-1.205.557-1.787.557z"/><path fill="#A78E81" d="M7.931 13.619c-.103 0-.207-.009-.31-.026-.224-.038-.376-.249-.338-.473.038-.224.251-.375.473-.338.722.121 1.22-.509 1.399-.786.441-.681.553-1.568.253-2.019-.125-.189-.074-.444.116-.57.189-.126.445-.074.57.116.489.739.387 1.939-.249 2.92-.488.753-1.187 1.176-1.914 1.176z"/><path fill="#846659" d="M25.635 28.904c-1.021-1.634-1.501-3.563-.898-4.166.613-.613 2.073-.745 4.186.878-1.348-1.286-3.757-2.695-4.186-5.044.123 2.164-.419 4.625-4.125 4.043 2.082.614 5.023 4.289 5.023 4.289z"/><g fill="#67757F"><path d="M2.928 15.73c-.028 0-.057-.002-.086-.008-.264-.047-.44-.3-.393-.564.407-2.269 1.793-3.891 3.707-4.338.261-.06.523.102.584.363.061.262-.101.523-.363.584-1.524.356-2.634 1.689-2.971 3.564-.042.233-.246.399-.478.399z"/><path d="M5.072 15.974c-.253 0-.466-.195-.484-.451-.079-1.078.493-2.498 1.586-3.008.244-.113.533-.009.646.235.113.243.009.533-.235.646-.671.313-1.08 1.335-1.028 2.056.02.268-.181.501-.449.52-.013.002-.024.002-.036.002zm6.208-9.209c-.037 0-.074-.004-.111-.013-.262-.061-.424-.323-.363-.584.448-1.914 2.07-3.299 4.338-3.707.264-.047.517.129.564.393.047.264-.128.517-.393.564-1.875.337-3.207 1.447-3.564 2.971-.05.225-.25.376-.471.376z"/><path d="M12.944 6.877c-.069 0-.139-.015-.205-.046-.244-.113-.348-.403-.235-.646.51-1.093 1.919-1.664 3.008-1.586.268.019.469.253.449.52-.019.267-.248.468-.52.449-.712-.048-1.742.357-2.056 1.028-.083.177-.258.281-.441.281z"/></g></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f9a7.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f9a7.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#E26000" d="M36 32c0-12-2-28-18-28S0 20 0 32h8v-5c0-1 1-1 1 0 0 7 4 6 4 6l2 2 1-1c0-.552 1.448-1 2-1s2 .448 2 1l1 1 2-2s4 1 4-6c0-1 1-1 1 0v5h8z"/><circle fill="#E26000" cx="18" cy="13.5" r="11.5"/><path fill="#D9B981" d="M32 31c-3 0-4 1-4 1v1c0 .552.448 1 1 1s1-.448 1-1c0 .552.448 1 1 1s1-.448 1-1c0 .552.448 1 1 1s1-.448 1-1c0 .552.448 1 1 1s1-.448 1-1v-1s-1-1-4-1zM4 31c-3 0-4 1-4 1v1c0 .552.448 1 1 1s1-.448 1-1c0 .552.448 1 1 1s1-.448 1-1c0 .552.448 1 1 1s1-.448 1-1c0 .552.448 1 1 1s1-.448 1-1v-1s-1-1-4-1z"/><path fill="#C45400" d="M6.5 19.607C6.5 25.051 14.167 27 18 27s11.5-1.949 11.5-7.393c0-2.366-.974-4.536-2.595-6.235.023-.244.04-.491.04-.747C26.944 7.862 24.9 4 18 4s-8.944 3.862-8.944 8.625c0 .256.017.503.04.747C7.474 15.071 6.5 17.241 6.5 19.607z"/><path fill="#D9B981" d="M8 17.571C8 22.305 14.667 24 18 24s10-1.695 10-6.429c0-2.057-.847-3.944-2.257-5.422.02-.212.035-.427.035-.65C25.778 7.358 24 4 18 4s-7.778 3.358-7.778 7.5c0 .223.015.438.035.65C8.847 13.627 8 15.514 8 17.571z"/><circle fill="#292F33" cx="16" cy="11" r="1"/><circle fill="#292F33" cx="20" cy="11" r="1"/><path fill="#FFE8B6" d="M12.67 11.073c-.042 0-.084-.005-.127-.016-.267-.07-.427-.343-.357-.61.488-1.867 2.405-2.988 4.271-2.503.267.07.427.343.357.61-.07.267-.343.424-.61.357-1.332-.347-2.702.455-3.05 1.788-.059.225-.262.374-.484.374zm10.66 0c-.223 0-.425-.149-.483-.374-.169-.646-.579-1.188-1.155-1.525-.576-.339-1.249-.432-1.896-.262-.269.069-.54-.091-.609-.357-.07-.268.09-.541.357-.61.901-.236 1.846-.106 2.653.367.807.473 1.381 1.231 1.616 2.136.07.267-.09.54-.357.61-.042.009-.085.015-.126.015z"/><path fill="#C09154" d="M13 5l2 3 1-1 2 3 2-3 1 1 2-3s-2-1-5-1-5 1-5 1z"/><path fill="#E26000" d="M13 5l2 2 1-2 2 3 2-3 1 2 2-2s-2-2-5-2-5 2-5 2z"/><circle fill="#C09154" cx="17.5" cy="13.5" r=".5"/><circle fill="#C09154" cx="18.5" cy="13.5" r=".5"/><path fill="#292F33" d="M18 21c-3.665 0-5.286-1.579-5.354-1.646-.195-.195-.195-.512 0-.707.195-.194.51-.195.705-.002C13.365 18.658 14.783 20 18 20c3.218 0 4.635-1.342 4.648-1.356.197-.191.514-.189.706.006.193.195.193.509-.001.703C23.286 19.421 21.665 21 18 21z"/><path fill="#D9B981" d="M17.295 33c-.235 2.224-5 4-6 2-.247-.494-2.341-4.936-2.535-5.453-.194-.517.068-1.094.586-1.287s1.094.068 1.287.586c-.194-.517.068-1.094.586-1.287.517-.194 1.094.068 1.287.586-.194-.517.068-1.094.586-1.287.517-.194 1.094.068 1.287.586-.194-.517.068-1.094.586-1.287s1.094.068 1.287.586c.193.514 1.148 5.263 1.043 6.257zm1.41 0c.235 2.224 5 4 6 2 .247-.494 2.341-4.936 2.535-5.453.194-.517-.068-1.094-.586-1.287s-1.094.068-1.287.586c.194-.517-.068-1.094-.586-1.287-.517-.194-1.094.068-1.287.586.194-.517-.068-1.094-.586-1.287-.517-.194-1.094.068-1.287.586.194-.517-.068-1.094-.586-1.287s-1.094.068-1.287.586c-.193.514-1.148 5.263-1.043 6.257z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f9a9.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f9a9.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EA596E" d="M22.903 27.55c1.218-.812 2.232-.783 3.073-.058-.435-1.131-2.348-3.624-2.348-3.624l-.725 3.682z"/><path fill="#F4ABBA" d="M22.949 27.679c-.03 0-.06-.002-.091-.006-.401-.05-.686-.415-.637-.816l.426-3.448c.023-.188.117-.358.264-.478l4.448-3.624-7.108-3.833c-.356-.192-.488-.636-.296-.992.193-.356.636-.489.992-.297l8.072 4.353c.214.116.357.332.381.575.023.244-.077.482-.267.636l-5.07 4.13-.39 3.156c-.044.373-.36.644-.724.644z"/><path fill="#E1E8ED" d="M5.38 3.523L1.476 7.427C.5 8.403.5 11.331.5 13.283s1.952 1.952 1.952 0 3.904-4.88 6.832-5.856S5.38 3.523 5.38 3.523z"/><path fill="#292F33" d="M1.476 7.427C.5 8.403.5 11.331.5 13.283s1.952 1.952 1.952 0c0-.671.461-1.456 1.184-2.238 1.383-1.495-2.16-.69-2.16-3.618z"/><path fill="#EA596E" d="M16.598 31.913c.522.87.478 2.283.283 3.087.957-.457 2.435-2.827 2.435-2.827l-2.718-.26z"/><path fill="#EA596E" d="M17.366 35.203c.928-.616 2.595-.573 3.58-.138.986.435-.681-2.529-.681-2.529l-2.435 1.507-.464 1.16z"/><path fill="#F4ABBA" d="M25.877 27.679c-.236 0-.469-.114-.61-.326l-1.952-2.928c-.224-.336-.133-.791.203-1.015.337-.224.791-.133 1.015.203l1.952 2.928c.224.336.133.791-.203 1.015-.125.083-.266.123-.405.123zm-5.857 4.88h-2.928c-.404 0-.732-.328-.732-.732s.328-.732.732-.732h2.196V16.211c0-.404.328-.732.732-.732s.732.328.732.732v15.616c0 .404-.328.732-.732.732z"/><path fill="#F4ABBA" d="M20.996 35.487c-.307 0-.592-.193-.695-.5l-.601-1.804-2.09 2.09c-.286.286-.749.286-1.035 0-.286-.286-.286-.749 0-1.035l2.928-2.928c.18-.18.443-.252.685-.194.247.058.446.24.527.48l.976 2.928c.128.384-.08.798-.463.926-.077.025-.156.037-.232.037z"/><circle fill="#EA596E" cx="8.308" cy="4.499" r="3.904"/><path fill="#EA596E" d="M12.579 20.716c-.573 0-1.14-.098-1.688-.3-2.025-.748-3.217-2.756-3.036-5.115.223-2.908 1.853-4.853 3.164-6.415 1.175-1.402 1.833-2.241 1.696-3.203-.163-1.143-.848-1.673-1.393-1.917-1.068-.477-2.506-.286-3.666.488L6.032 1.817C8.039.479 10.524.201 12.517 1.092c1.697.759 2.826 2.281 3.096 4.176.329 2.303-1.034 3.928-2.351 5.499-1.201 1.433-2.337 2.786-2.488 4.758-.081 1.051.342 1.852 1.131 2.144.858.315 2.341.04 3.68-1.792l2.364 1.727c-1.461 1.997-3.442 3.112-5.37 3.112z"/><path fill="#EA596E" d="M15.14 17.187c-2.166-3.248 0-7.808 2.928-9.76s10.736-2.928 15.616 4.88c5.401 8.641-2.763 4.433-4.88 3.904-7.808-1.952-11.712 3.904-13.664.976z"/><circle fill="#292F33" cx="6.356" cy="4.499" r=".976"/><path fill="#EA596E" d="M9.284 6.451c1.952-.976 4.255-.997 1.327 2.907-1.171 1.562 5.282-4.671 1.957-8.175-.536-.565-4.407-1.087-5.943-.174-.982.584 2.659 5.442 2.659 5.442z"/><circle fill="#EA596E" cx="28.804" cy="19.139" r=".976"/><circle fill="#EA596E" cx="20.02" cy="24.995" r=".976"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f9ad.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f9ad.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><g fill="#99AAB5"><path d="M3.016 5.201c-.062 0-.116-.043-.128-.105-.105-.555-.092-1.586.168-1.875.047-.053.129-.058.184-.01.053.048.058.13.01.184-.159.176-.216 1.072-.106 1.652.013.071-.033.139-.104.152-.008.002-.016.002-.024.002zm.517.9c-.057 0-.109-.038-.125-.096-.203-.74-.075-1.858-.008-2.097.019-.068.093-.107.16-.09.069.019.109.091.09.16-.069.246-.172 1.299.008 1.959.019.069-.022.141-.091.16-.011.003-.023.004-.034.004z"/><path d="M4.17 7.035c-.054 0-.105-.035-.123-.089-.45-1.338-.336-2.578-.331-2.63.007-.07.066-.121.142-.116.071.007.124.07.117.142-.001.012-.113 1.238.318 2.521.023.068-.014.142-.082.165-.013.005-.027.007-.041.007zm.87.931c-.05 0-.098-.029-.12-.079-.779-1.808-.767-3.11-.766-3.164.001-.071.059-.128.13-.128h.002c.072.001.129.06.128.132 0 .013-.011 1.305.745 3.059.028.066-.002.142-.068.171-.017.006-.034.009-.051.009z"/></g><path fill="#292F33" d="M7.708 16.15c-.002 2.273.264 7.198.191 7.812-.074.614-.588 1.462-1.51 1.562s-4.156.409-4.99.453-.651.443.198.538 4.364.221 5.254.265 1.967-.352 2.424-.868 1.872-2.953 2.367-3.985-.37-4.296-1.56-5.379-2.372-2.543-2.374-.398z"/><path fill="#66757F" d="M8.11 19.867c-.153-1.414-.339-5.618.171-4.463s1.666 4.203 1.097 7.238c-.115.613-.422 1.719-.684 2.352-.262.633-.751.882-1.518.91s-.575-.294.012-.467.967-.54 1.052-2.122c.07-1.295-.13-3.448-.13-3.448z"/><path fill="#99AAB5" d="M8.375 20.025c-.008.362.047 1.3.042 1.829s-.154 2.317-.353 2.773c-.199.457.334.213.458-.36.125-.573.516-2.418.528-2.885.012-.468-.654-2.323-.675-1.357z"/><path fill="#66757F" d="M2.85 1.802c.708-.674 1.726-.02 2.38.023.939.062 1.79-.263 3.018-.116s3.479.487 4.434 2.202c.787 1.415 1.852 3.802 2.682 4.979 1.019 1.445 2.753 3.657 3.875 4.803 1.206 1.232 4.908 2.917 6.094 3.118 2.351.399 6.989 1.903 8.042 5.612s1.328 5.824.563 6.513c-.765.689-1.571-.297-2.595-1.585-1.025-1.288-4.498-1.939-7.478-1.897s-8.146 1.437-11.177-.752c-3.034-2.19-4.614-6.029-5.104-9.706s-.205-4.92-.574-6.185C6.6 7.406 5.704 5.782 4.375 5.133S2.131 2.486 2.85 1.802z"/><path fill="#99AAB5" d="M2.85 1.802c.708-.674 1.726-.02 2.38.023.939.062 1.79-.263 3.018-.116s3.479.487 4.434 2.202c.787 1.415 1.852 3.802 2.682 4.979 1.019 1.445 2.753 3.657 3.875 4.803 1.206 1.232 4.908 2.917 6.094 3.118 2.351.399 6.989 1.903 8.042 5.612s1.328 5.824.563 6.513c-.765.689-1.158-.539-2.183-1.827-1.025-1.288-4.751-2.343-7.73-2.301s-8.188 1.199-11.22-.989c-3.034-2.19-4.73-5.144-5.22-8.821s-.205-4.92-.574-6.185c-.41-1.405-1.306-3.029-2.635-3.678S2.131 2.486 2.85 1.802z"/><path fill="#292F33" d="M15.746 19.496c-.933 1.551-1.064 3.557-1.218 4.784s-.098 2.076.517 2.618 1.714.754 2.466.816c.752.063 5.063.575 6.082.517s.714-.306-.047-.461-3.053-.967-3.58-1.566-.27-3.185-.324-4.158-.696-3.519-1.228-4.163c-.532-.643-1.951.422-2.668 1.613z"/><path fill="#66757F" d="M16.148 19.095c-.924 1.556-1.073 3.877-1.221 5.105-.147 1.228-.048 1.855.569 2.394s1.608.79 2.519.878c.751.073 3.179.372 4.367.43 1.02.05.436-.28-.326-.431-.762-.151-1.831-.548-2.361-1.144-.53-.595-.134-3.979-.193-4.952s-.473-3.228-1.008-3.869-1.636.394-2.346 1.589z"/><path fill="#99AAB5" d="M15.817 19.193c-.924 1.556-.411 2.811-.643 4.7-.15 1.228.116 2.225.586 2.548.676.464 1.421.779 2.331.867.751.073 2.026.341 3.213.399 1.02.05.603-.174-.159-.325-.762-.151-1.264-.485-1.795-1.081s.263-4.248.528-5.185c.562-1.988-.677-3.392-1.212-4.034s-2.139.916-2.849 2.111z"/><path fill="#292F33" d="M2.932 1.7c.567-.453 1.162-.032.464.416s-.936-.038-.464-.416zm.3 2.346s-.177-.773.274-.915c.451-.142 2.077.242 2.929 1.222 0 0-2.116-1.03-2.659-.878s-.544.571-.544.571z"/><path fill="#66757F" d="M11.228 3.835c.614.074 1.113.812.397.656-.716-.155-.397-.656-.397-.656z"/><path fill="#292F33" d="M7.584 2.037c.616.048.535.642.059.553-.475-.088-.812-.611-.059-.553zm25.477 25.458c1.51-.349 2.406 3.478 1.786 5.029-.63 1.575-2.047 1.961-3.222 2.137-.587.088-1.068.122-1.475-.043-.397-.161-.362-.509.09-.589.384-.067 1.006-.244 1.309-.356.35-.13.523-.437.523-.437s-1.84.665-3.083.379c-1.278-.293-.694-.811.417-.884.802-.053 1.698-.253 2.426-.845 0 0-.93.38-1.975.493-1.045.113-2.13.04-1.423-.662.144-.143 1.235-.286 1.906-.485.797-.238 1.448-.623 1.448-.623s-1.43.331-2.018.311c-.697-.023-.758-.423-.502-.552.531-.267 1.41-.367 1.929-.558.957-.352.348-1.965 1.864-2.315z"/><path d="M5.216 4.637c-.06 0-.113-.041-.127-.102-.213-.949-.958-1.66-.965-1.667-.052-.049-.055-.131-.005-.183s.131-.055.183-.006c.033.031.81.771 1.041 1.8.016.07-.028.14-.099.155-.009.002-.018.003-.028.003zm1.249.775c-.056 0-.107-.036-.124-.091-.377-1.214-1.404-2.154-1.415-2.164-.053-.048-.057-.13-.009-.184.049-.053.131-.056.184-.009.044.041 1.09.997 1.488 2.279.021.068-.017.142-.085.163-.013.004-.026.006-.039.006zm1.057.724c-.054 0-.104-.034-.123-.087-.524-1.521-1.584-2.511-1.595-2.521-.053-.049-.055-.131-.007-.184.05-.053.131-.056.184-.008.045.042 1.118 1.042 1.665 2.627.023.068-.013.142-.081.166-.014.005-.028.007-.043.007zm1.194 1.34c-.057 0-.109-.038-.125-.095-.521-1.892-1.608-3.114-1.62-3.126-.048-.053-.044-.135.01-.184.053-.048.134-.044.184.01.045.05 1.138 1.276 1.677 3.231.019.069-.021.141-.091.16-.012.003-.023.004-.035.004z" fill="#CCD6DD"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f9c1.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f9c1.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#BBDDF5" d="M5 21.875s1.589 5.727 2 8.482c.464 3.111 3.571 5.571 11 5.571s10.536-2.461 11-5.571c.411-2.755 2-8.482 2-8.482H5z"/><path fill="#662113" d="M5.094 21.969c.25 1.219.694 1.994 1.344 1.594.65-.4 1.65-.193 1.344.625-.281.75.969 1.094 1.5.656.509-.419 1.555-.881 1.656.062.094.875 1.168 1.11 1.656.469.5-.656 1.875-.394 2.125.406s1.594.688 1.969.125c.355-.533.713-.885 1.312-.885V25c.6 0 .957.373 1.312.906.375.562 1.719.675 1.969-.125s1.625-1.062 2.125-.406c.489.641 1.562.406 1.656-.469.101-.943 1.147-.482 1.656-.062.531.438 1.781.094 1.5-.656-.307-.818.694-1.025 1.344-.625.65.4 1.094-.375 1.344-1.594H5.094z"/><path fill="#C1694F" d="M33 18.969c0-4.919-6.731-8.906-15.033-8.906-8.303 0-15.033 3.987-15.033 8.906 0 3.969 9 6.031 15.033 6.031S33 23 33 18.969z"/><path d="M18 35.5c-.276 0-.5-.224-.5-.5v-8.646c0-.276.224-.5.5-.5s.5.224.5.5V35c0 .276-.224.5-.5.5zm-6.699-1.268c-.248 0-.463-.184-.496-.436l-1.031-7.982c-.035-.274.158-.525.432-.561.272-.041.524.158.56.432l1.031 7.982c.035.274-.158.525-.432.561-.021.003-.043.004-.064.004zm3.179.976c-.257 0-.476-.197-.498-.459l-.708-8.521c-.023-.274.182-.517.457-.539.283-.022.517.182.54.457l.708 8.521c.023.274-.182.517-.457.539l-.042.002zm-5.959-3.041c-.175 0-.331-.123-.367-.301l-1.5-7.438c-.041-.203.09-.4.293-.441.198-.048.4.09.442.293l1.5 7.438c.041.203-.09.4-.293.441-.026.006-.051.008-.075.008zm16.1 1.952c-.024 0-.048-.002-.072-.005-.273-.039-.463-.293-.424-.566l1.13-7.869c.039-.274.296-.456.566-.424.273.039.463.293.424.566l-1.13 7.869c-.036.249-.25.429-.494.429zm-3.042 1.089l-.042-.002c-.275-.022-.48-.265-.457-.539l.708-8.521c.022-.276.292-.474.539-.457.275.022.48.265.457.539l-.708 8.521c-.021.262-.24.459-.497.459zm5.983-3c-.023 0-.047-.002-.07-.007-.204-.039-.337-.235-.298-.438l1.438-7.479c.039-.203.241-.337.438-.298.204.039.337.235.298.438l-1.438 7.479c-.034.18-.191.305-.368.305z" fill="#88C9F9"/><path fill="#FFE8B6" d="M16.912-.011s1.087 1.144 2.175 1.167c2.268.049 4.355 1.315 4.355 3.506 0 0 5.261 0 5.443 4.674 0 0 2.655.045 3.263 4.672.454 3.456-3.038 8.227-14.148 8.178-9.795-.043-14.806-3.524-14.148-8.176.634-4.48 4.354-4.673 4.354-4.673s-.636-5.843 6.529-5.842c0 0 .726-2.337 2.177-3.506z"/><path fill="#FFCC4D" d="M17.91 10.504c2.936-1.108 5.623-3.115 5.533-5.841 0-.858-.327-1.568-.852-2.125.643 2.808-3.651 6-8.399 6.506-5.941.633-5.261-2.872-5.261-2.872l-.007.007c-.883 1.536-.717 3.159-.717 3.159.905 2.383 5.576 2.724 9.703 1.166z"/><path fill="#FFCC4D" d="M28.885 9.337c-.006-.143-.03-.268-.045-.402-.116-.677-.453-1.506-.774-2.138-.19-.265-.4-.499-.63-.702 1.109 4.426-5.563 9.749-11.93 10.982-8.299 1.606-11.654-3.065-11.654-3.065-.342 2.415.858 4.509 3.449 5.976 10.227 4.169 21.673-6.095 21.584-10.651z"/><path fill="#DD2E44" d="M8.689 14.201l-1.181 1.614c-.325.444-.954.541-1.398.216-.444-.325-.541-.954-.216-1.398l1.181-1.614c.325-.444.954-.541 1.398-.216.444.325.541.954.216 1.398z"/><path fill="#55ACEE" d="M14.935 8.187l-1.956-.419c-.538-.115-.884-.65-.768-1.187.115-.538.65-.884 1.187-.768l1.956.419c.538.115.884.65.768 1.187-.115.538-.649.884-1.187.768z"/><path fill="#77B255" d="M16.431 14.173l1.313 1.509c.361.415.317 1.05-.098 1.411-.415.361-1.05.317-1.411-.098l-1.313-1.509c-.361-.415-.317-1.05.098-1.411.415-.361 1.05-.317 1.411.098z"/><path fill="#F4900C" d="M24.372 11.499l-1.871.707c-.515.194-1.095-.068-1.289-.582-.194-.515.068-1.095.582-1.289l1.871-.707c.515-.194 1.095.068 1.289.582.195.514-.067 1.094-.582 1.289z"/><path fill="#AA8DD8" d="M30.366 14.051l-1 1.732c-.275.476-.89.641-1.366.366-.476-.275-.641-.89-.366-1.366l1-1.732c.275-.476.89-.641 1.366-.366.476.275.641.889.366 1.366z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f9c3.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f9c3.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#E3A919" d="M28.337 32.563l-2.579 3.082c-.552.553-1.758.007-1.758-.545V12.001c0-.552 2.372-4.501 5-4.501l-.028 23.007c0 1.134-.093 1.308-.635 2.056z"/><path fill="#FFD983" d="M26 10.454H9l.194-.348L12.74 7.5c.486-.379.831-.5 1.383-.5h14.363c.188 0 .514.277.344.47L26 10.454z"/><path fill="#FFCC4D" d="M25 36H10c-.552 0-1-.448-1-1V10.454S9.448 10 10 10h15c.552 0 1 .454 1 .454V35c0 .552-.448 1-1 1z"/><circle fill="#F4900C" cx="15" cy="27" r="3"/><circle fill="#EA596E" cx="15" cy="21" r="4"/><circle fill="#FFE8B6" cx="19.5" cy="23.5" r="4.5"/><circle fill="#FFCC4D" cx="19.5" cy="23.5" r="2.5"/><path fill="#CCD6DD" d="M22.999 8.464s-.21.431-.967.431-1.033-.431-1.033-.431V4.342c0-1.993.532-3.309 1.582-3.911 1.005-.576 2.326-.398 3.922.535 1.274.743 4.421 2.972 4.496 3.034 0 0 .165.565-.303 1.1-.468.535-.965.447-.965.447-.018-.014-3.101-2.191-4.236-2.855-.881-.515-1.584-.623-1.904-.436-.279.16-.592.726-.592 2.086v4.122z"/><path fill="#99AAB5" d="M25.434.44c-1.124-.446-2.082-.451-2.853-.01-.791.454-1.287 1.314-1.484 2.562l1.975.367c.108-.664.322-.989.52-1.103.22-.129.63-.105 1.146.082L25.434.44z"/><path fill="#FFE8B6" d="M25.931 11H9.5c-.275 0-.5-.225-.5-.5s.225-.5.5-.5h16.431c.275 0 .5.225.5.5s-.225.5-.5.5z"/><path fill="#FFE8B6" d="M28.908 7.796l-2.536 3.036c-.163.201-.471.223-.684.05-.214-.173-.255-.479-.093-.68l2.536-3.036c.163-.201.471-.223.684-.05.214.174.255.479.093.68z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f9c5.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f9c5.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D39954" d="M26.617 32.441c-.02-.039-.373-.678-1.025-1.172.103-.421.056-.835-.307-1.103-.9-.662-8.82.226-9.386 3.057-.234 1.171.588 1.171 1.038.809-.137.499-.212 1.011-.169 1.49.024.269.261.467.531.444.029-.002.057-.007.084-.015.225-.06.381-.275.36-.516-.03-.334.022-.694.111-1.051.201.18.424.327.686.269.312-.07.51-.378.64-.712.015.212.046.348.05.363.069.259.333.411.593.345l.006-.002c.257-.069.411-.333.348-.591-.004-.017-.051-.229-.019-.565.442.267 1 .509 1.457.398.581-.142.859-.631.997-1.113.439.412.698.895.958 1.454.101.219.344.327.569.267.028-.007.054-.016.08-.029.246-.113.352-.405.238-.65-.185-.399-.414-.88-.793-1.348.346.231.711.393.95.253.166-.097.364-.302.545-.553.377.336.589.721.592.727.11.204.344.3.559.242.035-.009.069-.023.103-.04.239-.126.33-.419.204-.658z"/><path fill="#EDD6A6" d="M21.708 6.32c-2.741-.932-5.978-3.134-6.754-6.03-.273-1.02-.952 1.29-1.891 1.541-.939.252-2.682-1.409-2.408-.389.776 2.896-.926 6.422-2.834 8.599-3.575 4.08-6.287 8.95-4.89 14.165 2 7.465 10.1 10.746 18.41 8.519s13.684-9.118 11.684-16.582c-1.398-5.215-6.182-8.077-11.317-9.823z"/><path fill="#E2A759" d="M13.66 32.585c-3.296-1.993-7.838-5.273-8.227-11.23-.425-6.519 4.936-10.098 5.304-13.826.444 4.428-3.559 7.236-3.214 12.866.313 5.101 2.429 8.841 6.137 12.19z"/><path fill="#E2A759" d="M19.764 32.885c-3.097-1.934-6.932-5.916-7.944-11.203-1.457-7.611 1.103-12.145.203-17.89 1.897 6.644 1.034 9.757 2.302 16.336.825 4.282 2.9 10.213 5.439 12.757zm8.158-4.121c1.858-3.374 4.302-8.526 1.66-13.88-2.891-5.858-9.474-6.237-11.657-9.281 1.829 4.057 6.85 4.447 9.367 9.495 2.28 4.574 2.166 8.912.63 13.666z"/><path fill="#E2A759" d="M22.786 32.076c1.715-3.223 3.045-8.589 1.278-13.674-2.543-7.32-7.027-9.966-9.121-15.392 1.679 6.703 3.983 8.966 6.174 15.298 1.427 4.12 2.596 10.295 1.669 13.768z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f9c7.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f9c7.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><ellipse fill="#939598" cx="18" cy="26" rx="18" ry="10"/><ellipse fill="#CCD6DD" cx="18" cy="24" rx="18" ry="10"/><path fill="#F4900C" d="M15.714 32.54L2.575 24.857c-1.262-.738-.929-3.558-.929-4.785l14.069-6.657c1.262-.738 3.308-.738 4.57 0L34.37 20.26c0 1.689.316 3.859-.947 4.597L20.285 32.54c-1.262.738-3.309.738-4.571 0z"/><path fill="#FFAC33" d="M15.714 29.279L2.575 21.596c-1.262-.738-1.262-1.934 0-2.672l13.139-7.683c1.262-.738 3.308-.738 4.57 0l13.139 7.683c1.262.738 1.262 1.934 0 2.672l-13.139 7.683c-1.261.738-3.308.738-4.57 0z"/><path d="M17.463 14.416l-1.61-.942c-.296-.173-.296-.454 0-.628l1.61-.942c.296-.173.777-.173 1.074 0l1.61.942c.296.173.296.454 0 .628l-1.61.942c-.297.174-.778.174-1.074 0zm3.757 2.197l-1.61-.942c-.296-.173-.296-.454 0-.628l1.61-.942c.296-.173.777-.173 1.074 0l1.61.942c.296.173.296.454 0 .628l-1.61.942c-.297.174-.777.174-1.074 0zm3.757 2.197l-1.61-.942c-.296-.173-.296-.454 0-.628l1.61-.942c.296-.173.777-.173 1.074 0l1.61.942c.296.173.296.454 0 .628l-1.61.942c-.297.174-.777.174-1.074 0zm3.758 2.198l-1.61-.942c-.296-.173-.296-.454 0-.628l1.61-.942c.296-.173.777-.173 1.074 0l1.61.942c.296.173.296.454 0 .628l-1.61.942c-.297.173-.778.173-1.074 0zm-15.03-4.395l-1.61-.942c-.296-.173-.296-.454 0-.628l1.61-.942c.296-.173.777-.173 1.074 0l1.61.942c.296.173.296.454 0 .628l-1.61.942c-.297.174-.777.174-1.074 0zm3.758 2.197l-1.61-.942c-.296-.173-.296-.454 0-.628l1.61-.942c.296-.173.777-.173 1.074 0l1.61.942c.296.173.296.454 0 .628l-1.61.942c-.297.174-.778.174-1.074 0zm3.757 2.198l-1.61-.942c-.296-.173-.296-.454 0-.628l1.61-.942c.296-.173.777-.173 1.074 0l1.61.942c.296.173.296.454 0 .628l-1.61.942c-.297.173-.777.173-1.074 0zm3.757 2.197l-1.61-.942c-.296-.173-.296-.454 0-.628l1.61-.942c.296-.173.777-.173 1.074 0l1.61.942c.296.173.296.454 0 .628l-1.61.942c-.297.173-.777.173-1.074 0zM9.948 18.81l-1.61-.942c-.296-.173-.296-.454 0-.628l1.61-.942c.296-.173.777-.173 1.074 0l1.61.942c.296.173.296.454 0 .628l-1.61.942c-.297.174-.778.174-1.074 0zm3.757 2.198l-1.61-.942c-.296-.173-.296-.454 0-.628l1.61-.942c.296-.173.777-.173 1.074 0l1.61.942c.296.173.296.454 0 .628l-1.61.942c-.297.173-.777.173-1.074 0zm3.758 2.197l-1.61-.942c-.296-.173-.296-.454 0-.628l1.61-.942c.296-.173.777-.173 1.074 0l1.61.942c.296.173.296.454 0 .628l-1.61.942c-.297.173-.778.173-1.074 0zm3.757 2.197l-1.61-.942c-.296-.173-.296-.454 0-.628l1.61-.942c.296-.173.777-.173 1.074 0l1.61.942c.296.173.296.454 0 .628l-1.61.942c-.297.173-.777.173-1.074 0zM6.191 21.008l-1.61-.942c-.296-.173-.296-.454 0-.628l1.61-.942c.296-.173.777-.173 1.074 0l1.61.942c.296.173.296.454 0 .628l-1.61.942c-.297.173-.778.173-1.074 0zm3.757 2.197l-1.61-.942c-.296-.173-.296-.454 0-.628l1.61-.942c.296-.173.777-.173 1.074 0l1.61.942c.296.173.296.454 0 .628l-1.61.942c-.297.173-.778.173-1.074 0zm3.757 2.197l-1.61-.942c-.296-.173-.296-.454 0-.628l1.61-.942c.296-.173.777-.173 1.074 0l1.61.942c.296.173.296.454 0 .628l-1.61.942c-.297.173-.777.173-1.074 0zm3.758 2.197l-1.61-.942c-.296-.173-.296-.454 0-.628l1.61-.942c.296-.173.777-.173 1.074 0l1.61.942c.296.173.296.454 0 .628l-1.61.942c-.297.173-.778.173-1.074 0z" fill="#F4900C"/><path fill="#D3790D" d="M15.72 16.354c-3.406-1.039-4.841-.515-4.618 2.165.058.693-.895 1.847-1.847 2.511-2.215 1.544-1.263 4.124 2.54 2.222 1.905-.952 4.682-.887 8.052.144 2.828.866 4.589 2.05 4.82 3.32 1.122-.367 1.732-.847 2.28-1.309-.233-.526-1.27-2.04-2.915-2.761-3.112-1.365-.106-3.331 2.222-3.81 2.107-.433.029-2.02-3.175-1.963-3.202.058-2.397.995-7.359-.519z"/><path opacity=".5" fill="#D3790D" d="M24.668 26.542c0 .456.058.468.058 1.387 0 1.789 2.194 1.472 2.194-1.501 0-.346.029-1.021.029-1.021l-2.281 1.135z"/><path fill="#FFAC33" d="M22.16 17.651c.46.262.461 1.863 0 2.125l-3.328 1.897c-.46.262-1.204.262-1.664 0l-3.329-1.897c-.46-.262-.46-1.863 0-2.125l3.329-.721c.46-.262 1.204-.262 1.664 0l3.328.721z"/><path fill="#FFD983" d="M22.16 17.651c.46.262.461.686 0 .948l-3.328 1.897c-.46.262-1.204.262-1.664 0l-3.329-1.897c-.46-.262-.46-.686 0-.948l3.329-1.897c.46-.262 1.204-.262 1.664 0l3.328 1.897z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f9c9.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f9c9.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#8A4B38" d="M26.875 14.6C25.1 12.778 21.55 12.778 18 12.778s-7.1 0-8.875 1.822c-2.663 2.733-5.325 9.72-3.55 15.186C7.35 35.252 15.132 35.814 18 35.814s10.65-.562 12.425-6.028c1.775-5.465-.887-12.453-3.55-15.186z"/><path fill="#A5503C" d="M25.58 14.412c-1.516-1.556-4.548-1.556-7.58-1.556s-6.064 0-7.58 1.556c-2.274 2.334-4.548 8.302-3.032 12.969C8.904 32.049 15.55 32.529 18 32.529s9.096-.48 10.611-5.148c1.516-4.668-.757-10.635-3.031-12.969z"/><path fill="#CCD6DD" d="M27.453 13.025c-.383-1.616-2.263-3.17-9.437-3.17h-.032c-7.175 0-9.055 1.554-9.437 3.17-.733 3.093 2.263 4.278 9.437 4.278h.032c7.174-.001 10.17-1.185 9.437-4.278z"/><path fill="#66757F" d="M25.622 12.355c.293.72-1.832 1.658-7.64 1.658s-7.938-.941-7.64-1.658c.323-.779 3.869-1.55 7.64-1.55 3.771 0 7.324.771 7.64 1.55z"/><path fill="#77B255" d="M10.993 13.144c1.015.473 3.226.869 6.99.869 3.767 0 5.976-.395 6.99-.869-.734-.635-2.76-1.27-6.99-1.27-4.23.001-6.256.635-6.99 1.27z"/><path fill="#FFF" d="M25 14.231c-.156-.424-.429-.393-.814-.276-1.779.537-4.36.641-6.211.652-1.851-.011-4.676-.162-6.211-.652-.384-.122-.701-.172-.862.276-.156.436.306.852.697.947 2.366.576 4.313.746 6.376.759 2.062-.013 3.765-.159 6.131-.735.392-.096 1.075-.476.894-.971z"/><path fill="#CCD6DD" d="M22.894 13.686l5.315-7.93 5.296-3.743s.141-.297-.78-1.01C31.804.29 31.388.587 31.388.587L26.84 4.204 20.348 13.9c.994-.051 1.839-.124 2.546-.214z"/><path fill="#99AAB5" d="M22.894 13.686l5.315-7.93 5.296-3.743-.067-.089-5.792 3.208-5.8 8.674c.431-.034.635-.06 1.048-.12z"/><circle fill="#99AAB5" cx="27.617" cy="4.945" r="1.668"/><path fill="#CCD6DD" d="M26.213 4.639c0-.697.565-1.262 1.262-1.262s1.262.565 1.262 1.262-.565 1.262-1.262 1.262-1.262-.565-1.262-1.262z"/><path fill="#E1E8ED" d="M11.459 10.865c1.604-.639 4.544-.802 5.569-.757 1.025.045.571.757-.015.757-1.693 0-3.787.401-5.228.772-.851.219-1.143-.447-.326-.772z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f9d9.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f9d9.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><ellipse fill="#C63900" cx="18" cy="19.024" rx="15" ry="3.529"/><path fill="#FA743E" d="M26.276 28.276h-16c-2.486 0-4.774 1.443-5.762 3.449-.368-.415-.907-.619-1.514-.619-1.1 0-2 .935-2 1.998V36h31v-1.931c0-3.199-2.411-5.793-5.724-5.793z"/><path fill="#FFDC5D" d="M14 25v3.234c0 .004.011.007.015.011.132.237 3.737 6.739 3.989 6.739.253 0 3.854-6.502 3.985-6.739.004-.004.01-.007.01-.011V25H14z"/><path fill="#F9CA55" d="M14 27.598c1.115 1.259 2.497 1.6 4 1.6 1.502 0 2.884-.342 4-1.6v-3.2h-8v3.2z"/><path fill="#D1D3D4" d="M17.982 13.557c-2.61 0-5.654 3.198-9.115 3.885.143 1.499.597 2.619.802 4.127.337 2.477 1.73 3.27 2.843 3.601 1.602 2.116 3.305 2.026 6.164 2.026 5.483 0 8.14-3.609 8.457-9.747-3.476-.692-6.532-3.892-9.151-3.892z"/><path fill="#FFDC5D" d="M24.315 17.386c-.54-.748-1.232-1.35-2.748-1.564.569.261 1.114 1.161 1.185 1.658.071.498.142.9-.308.403-1.803-1.993-3.767-1.208-5.714-2.426-1.359-.851-1.773-1.791-1.773-1.791s-.166 1.256-2.227 2.535c-.598.371-1.31 1.197-1.706 2.417-.284.877-.196 1.659-.196 2.995 0 3.9 3.214 7.179 7.179 7.179s7.179-3.308 7.179-7.179c-.001-2.426-.255-3.374-.871-4.227z"/><path fill="#C1694F" d="M18.798 23.607h-1.595c-.22 0-.399-.178-.399-.399 0-.22.178-.399.399-.399h1.595c.22 0 .399.178.399.399-.001.221-.179.399-.399.399z"/><path fill="#662113" d="M14.809 20.815c-.441 0-.798-.357-.798-.798v-.797c0-.44.357-.798.798-.798.44 0 .798.357.798.798v.798c0 .44-.357.797-.798.797zm6.382 0c-.44 0-.798-.357-.798-.798v-.797c0-.44.357-.798.798-.798.44 0 .798.357.798.798v.798c-.001.44-.358.797-.798.797z"/><path fill="#C1694F" d="M17.997 26.465c-2.359 0-3.084-.604-3.204-.726-.22-.219-.22-.575 0-.794.212-.212.552-.218.773-.02.044.032.617.417 2.431.417 1.886 0 2.429-.416 2.435-.42.219-.218.564-.208.783.013.219.219.207.585-.012.804-.123.122-.847.726-3.206.726"/><path fill="#FA743E" d="M25.765 15.157C24.537 12.47 18.793 0 18 0s-6.537 12.47-7.765 15.157C5.415 16.001 3 17.595 3 19c6-2 11-2.443 15-2.443S27 17 33 19c0-1.405-2.415-2.999-7.235-3.843z"/><path fill="#D99E82" d="M5 36H3V11.862L2 8h4l-1 3.862z"/><circle fill="#55ACEE" cx="4" cy="6" r="3"/><circle fill="#B0F0FF" cx="3.5" cy="5.5" r="1.5"/><path fill="#FFDC5D" d="M7 30.5C7 32.433 5.657 34 4 34s-3-1.567-3-3.5S2.343 28 4 28s3 .567 3 2.5z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f9da.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f9da.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#ABDFFF" d="M20.769 20.273c-4.558 6.089-5.676 12.675-2.497 14.71 3.179 2.035 9.451-1.252 14.008-7.341 4.558-6.089 2.752-17.029 2.497-16.631-1.777 2.774-9.45 3.173-14.008 9.262z"/><path fill="#ABDFFF" d="M15.255 20.273c4.558 6.089 5.676 12.675 2.498 14.71-3.179 2.035-9.451-1.252-14.009-7.341S.904 10.673 1.247 11.011C5 14.71 10.698 14.184 15.255 20.273z"/><path fill="#55ACEE" d="M4.598 17.829c-.484-.808-1.158-1.652-.776-.211.542 2.047 2.184 5.253 4.848 7.268 1.12.847 1.209-.427.179-1.398-2.665-2.512-3.291-4.055-4.251-5.659zm26.804 0c-.96 1.604-1.586 3.147-4.251 5.659-1.03.971-.941 2.245.179 1.398 2.664-2.015 4.306-5.221 4.848-7.268.382-1.441-.292-.597-.776.211z"/><path fill="#FFDC5D" d="M31 36v-3.5c0-3.314-3.685-5.5-7-5.5H12c-3.313 0-7 2.186-7 5.5V36h26z"/><path fill="#FFDC5D" d="M14 20.059v8c0 2.209 1.791 4 4 4s4-1.791 4-4v-8h-8z"/><path fill="#F9CA55" d="M14 24.971c1.115 1.26 2.497 1.6 3.999 1.6 1.503 0 2.886-.341 4.001-1.6V21.77h-8v3.201z"/><path fill="#FA743E" d="M25 27h-3s-.938 6-4 6-4-6-4-6h-3c-3 0-4 1-4 1s2 2 2 5v3h18v-3c0-2.983 2-5 2-5s-1-1-4-1z"/><path fill="#FFAC33" d="M21.532 2.731c-1.893-.613-6.348-.445-7.461 1.002-2.895.056-6.292 2.673-6.737 6.125-.441 3.417.541 5.003.891 7.573.396 2.911 2.032 3.842 3.341 4.232 1.882 2.487 3.883 2.38 7.243 2.38 6.561 0 9.686-4.39 9.962-11.846.167-4.51-2.479-7.926-7.239-9.466z"/><path fill="#FFDC5D" d="M25.421 12.515c-.635-.879-1.448-1.587-3.229-1.837.668.306 1.308 1.364 1.392 1.949.084.585.167 1.058-.362.473-2.119-2.342-4.427-1.42-6.714-2.851-1.597-.999-2.084-2.105-2.084-2.105s-.195 1.475-2.617 2.979c-.702.436-1.54 1.406-2.005 2.84-.334 1.03-.23 1.949-.23 3.519 0 4.583 3.777 8.436 8.436 8.436s8.436-3.887 8.436-8.436c-.001-2.851-.299-3.964-1.023-4.967z"/><path fill="#C1694F" d="M21.749 22.168h-7.498s.937 1.875 3.749 1.875 3.749-1.875 3.749-1.875zm-2.812-2.343h-1.875c-.259 0-.469-.21-.469-.469s.21-.469.469-.469h1.875c.259 0 .469.21.469.469 0 .26-.21.469-.469.469z"/><path fill="#662113" d="M14.251 16.545c-.518 0-.937-.42-.937-.937v-.938c0-.518.42-.937.937-.937.518 0 .937.42.937.937v.937c0 .518-.42.938-.937.938zm7.498 0c-.518 0-.937-.42-.937-.937v-.938c0-.518.42-.937.937-.937.518 0 .937.42.937.937v.937c0 .518-.419.938-.937.938z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f9dc.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f9dc.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDC5D" d="M7.399 17.278c-1.878 1.035-3.24 2.455-3.336 2.617-.239.404-.437 1.592-.276 2.415.145.741.177 2.238.66 2.915.198.277.107.759-.032 1.208-.419 1.353.306 3.199-.145 2.882-.918-.644-1.074-1.83-1.047-2.528.015-.393-.166-.884-.257-1.138-.059-.16-1.245-3.203-1.518-4.54-.148-.722-.333-1.302.275-2.155.903-1.266 2.094-2.996 3.311-3.885 2.012-1.471 3.936-1.687 3.936-1.687s-.911 3.532-1.571 3.896zm23-6.626c-.084.009-.143.102-.203.238-.023-.164-.074-.276-.184-.264-.129.013-.201.22-.304.492-.027-.047-.062-.079-.117-.078-.261.009-.349.811-.909 1.334-.081.036-.154.078-.248.104-.059.016-.098.041-.146.061.005-.255.171-.405.271-.474.239-.166.089-.586-.314-.331-.289.183-.41.365-.501.55-.255.519-.354 1.058-.333 1.487l-.119.215c-.139.242-1.626 1.17-2.696 1.967-1.066.793-1.846 1.694-2.415 1.132-.396-.391-1.591-1.706-3.322-2.833-1.093-.712-2.733-.866-2.733-.866-.807.662.166 3.109.894 3.566.938.589 4.26 2.925 5.306 3.391s1.704-.161 2.196-.609c.403-.366 3.434-4.072 3.703-4.326.365-.344 1.063-.797 1.457-1.491.338-.596.543-1.079.667-1.855.071-.456.402-1.447.05-1.41z"/><path fill="#FFDC5D" d="M16.125 13.384s-2.26-.137-3.764-.137-2.959.1-3.392.137l-1.963 3.619.526.283s1.209 4.354 1.209 5.202c0 .848-1.209 5.202-1.209 5.202h9.674s-1.209-4.075-1.209-5.202 1.209-5.202 1.209-5.202l.495-.266-1.576-3.636z"/><path fill="#FF5540" d="M8.969 13.384l-1.437 3.902.983 6.288 7.697.327.994-6.615-1.081-3.902s-.857-.176-3.562-.176-3.594.176-3.594.176z"/><path fill="#316116" d="M28.744 25.545c1.738-2.783-.967-7.196-.967-7.196-.067.534-.348 1.714-.348 1.714-.163.998-.678 2.566-2.219 4.469-1.049 1.294 4.467 5.504 5.708 4.687 1.937-1.276 1.587-3.432 3.655-5.726.367-.407.8-.817 1.346-1.228-3.575-.319-7.175 3.28-7.175 3.28zm-3.123 3.078c-4.478 3.618-9.355 2.292-10.385 1.38l-7.644-5.978c-5.516 0-4.48 7.846 1.132 10.349 9.576 4.271 17.103-1.423 18.399-4.18l-1.502-1.571z"/><path fill="#66A644" d="M27.814 26.878c1.408-2.155.357-5.346-.385-6.815-.163.998-.843 2.383-2.384 4.286-1.049 1.294-.483 3.302-.021 4.199l.001.001c-3.596 2.842-7.065 2.264-8.825 1.464 1.17-.542 1.986-1.7 1.986-3.053 0-1.87-1.547-3.385-3.454-3.385h-7.14c-5.516 0-4.48 7.39 1.132 9.843 9.165 4.007 17-.67 18.793-3.448.863.096 2.363.056 3.573-.741 1.937-1.276 1.414-3.441 3.482-5.734-3.483.249-6.758 3.383-6.758 3.383z"/><path fill="#316116" d="M16.212 30.014c-2.309-.46-6.994-2.625-7.193-2.717-.194-.09-.278-.319-.188-.512.09-.195.321-.28.513-.188.048.022 5.488 2.428 7.707 2.869 0 0-.158.133-.336.267-.179.132-.503.281-.503.281z"/><path fill="#FFDC5D" d="M10.63 9.387v3.714c0 1.026.831 3.61 1.857 3.61s1.857-2.584 1.857-3.61V9.387H10.63z"/><path fill="#F9CA55" d="M10.63 12.825c.517.585 1.159.743 1.857.743.697 0 1.339-.159 1.857-.743v-1.486H10.63v1.486z"/><path fill="#744EAA" d="M14.509.429c-1.043-.338-3.498-.246-4.112.552-1.596.031-3.467 1.473-3.713 3.376-.243 1.883.298 2.757.491 4.173.218 1.604 1.12 2.117 1.841 2.332 1.037 1.371 2.14 1.312 3.992 1.312 3.616 0 5.338-2.419 5.49-6.529.093-2.485-1.366-4.367-3.989-5.216z"/><path fill="#FFDC5D" d="M16.577 5.821c-.35-.484-.798-.875-1.78-1.013.368.169.721.752.767 1.074.046.322.092.583-.199.261-1.168-1.291-2.44-.783-3.7-1.571-.88-.551-1.148-1.16-1.148-1.16s-.107.813-1.442 1.642c-.387.24-.849.775-1.105 1.565-.185.568-.128 1.074-.128 1.939 0 2.526 2.081 4.649 4.649 4.649s4.649-2.142 4.649-4.649c.001-1.571-.164-2.184-.563-2.737z"/><path fill="#C1694F" d="M14.558 11.141h-4.132s.517 1.033 2.066 1.033 2.066-1.033 2.066-1.033zm-1.55-1.291h-1.033c-.143 0-.258-.116-.258-.258s.116-.258.258-.258h1.033c.143 0 .258.116.258.258s-.115.258-.258.258z"/><path fill="#662113" d="M10.425 8.042c-.285 0-.517-.231-.517-.517v-.516c0-.285.231-.517.517-.517.285 0 .517.231.517.517v.517c0 .285-.231.516-.517.516zm4.133 0c-.285 0-.517-.231-.517-.517v-.516c0-.285.231-.517.517-.517s.517.231.517.517v.517c-.001.285-.232.516-.517.516z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f9e0.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f9e0.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EA596E" d="M29.896 26.667c.003.283-.07.653-.146.958-.531 2.145-2.889 4.552-6.208 4.333-3.008-.198-5.458-1.642-5.458-3.667s2.444-3.667 5.458-3.667 6.335.018 6.354 2.043z"/><path fill="#DD2E44" d="M23.542 24.964c-1.619 0-5.314.448-6.162.448-1.498 0-2.713.94-2.713 2.1 0 .558.286 1.062.744 1.438 0 0 1.006 1.009 2.818.525.793-.212 2.083-1.786 4.354-2.036 1.131-.125 3.25.75 6.974.771.16-.344.193-.583.193-.583 0-2.027-3.194-2.663-6.208-2.663z"/><path fill="#F4ABBA" d="M29.75 27.625s2.184-.443 3.542-2.229c1.583-2.083 1.375-4.312 1.375-4.312 1.604-3-.5-5.813-.5-5.813C33.958 12.104 32 10.792 32 10.792c-1.271-3.021-4.083-3.833-4.083-3.833-2.208-2.583-6.125-2.5-6.125-2.5s-3.67-1.345-8.708.167c-.833.25-3.625.833-5.667 2.083C.981 10.649.494 16.793.584 17.792 1.083 23.375 5 24.375 7.5 24.958c.583 1.583 2.729 4.5 6.583 3.417 4.75-.833 6.75-2.25 7.917-2.25s4.417 1.25 7.75 1.5z"/><g fill="#EA596E"><path d="M17.737 18.648c2.328-1.255 3.59-1.138 4.704-1.037.354.032.689.057 1.028.055 1.984-.045 3.591-.881 4.302-1.69.182-.208.161-.523-.046-.706-.206-.182-.521-.163-.706.045-.548.624-1.899 1.313-3.573 1.351-.3.009-.601-.021-.913-.05-1.195-.111-2.679-.247-5.271 1.152-.665.359-1.577.492-2.565.592-2.197-3.171-.875-5.933-.497-6.591.037.002.073.014.111.014.4 0 .802-.098 1.166-.304.24-.136.325-.441.189-.681s-.441-.325-.681-.189c-.64.362-1.482.153-1.88-.467-.149-.233-.458-.301-.69-.151-.232.149-.3.458-.151.69.237.371.571.65.948.837-.521 1.058-1.51 3.84.372 6.951-1.324.13-2.65.317-3.688.986-.67.432-1.355 1.064-1.878 1.791-.629-.108-2.932-.675-3.334-3.231.25-.194.452-.45.577-.766.102-.257-.024-.547-.281-.649s-.547.024-.649.281c-.089.225-.25.389-.454.461-.202.072-.431.048-.643-.07-.243-.135-.546-.046-.68.194-.134.241-.047.546.194.68.284.158.588.238.89.238.037 0 .072-.017.109-.019.476 2.413 2.383 3.473 3.732 3.794-.176.388-.295.788-.331 1.192-.024.274.179.518.454.542l.045.002c.256 0 .475-.195.498-.456.108-1.213 1.265-2.48 2.293-3.145.964-.621 2.375-.752 3.741-.879 1.325-.121 2.577-.237 3.558-.767zm12.866-1.504c-.131.242-.041.546.2.677.076.042.159.062.24.062.176 0 .347-.093.438-.259.019-.034 1.842-3.449-1.571-5.744-.228-.152-.539-.093-.694.136-.154.229-.093.54.136.694 2.644 1.778 1.309 4.326 1.251 4.434zM9.876 9.07c.156 0 .309-.072.406-.208 1.45-2.017 3.458-1.327 3.543-1.295.259.094.544-.038.64-.296.096-.259-.036-.546-.295-.642-.96-.356-3.177-.468-4.7 1.65-.161.223-.11.536.114.697.089.064.191.094.292.094zm13.072-1.888c2.225-.181 3.237 1.432 3.283 1.508.094.158.26.246.431.246.086 0 .174-.022.253-.069.238-.14.318-.446.179-.684-.054-.091-1.34-2.218-4.224-1.998-.275.021-.48.262-.459.538.022.275.271.484.537.459zm9.15 14.611c-.246-.014-.517.181-.539.457-.002.018-.161 1.719-1.91 2.294-.262.086-.405.368-.318.631.068.21.265.344.475.344.052 0 .104-.008.156-.025 2.372-.778 2.586-3.064 2.594-3.161.021-.276-.183-.518-.458-.54z"/><path d="M7.347 16.934c-.072.267.086.541.353.613.043.012.087.017.13.017.221 0 .422-.147.482-.37.19-.711.927-1.167 1.652-1.014.271.055.535-.116.592-.387.057-.27-.116-.535-.387-.592-.426-.09-.854-.048-1.248.086-1.166-1.994-.939-3.96-.936-3.981.036-.273-.156-.524-.429-.562-.272-.033-.524.154-.562.427-.013.097-.28 2.316 1.063 4.614-.334.301-.588.694-.71 1.149zm11.179-2.47c.407-.377 1.06-.37 1.455.015.098.094.223.141.349.141.131 0 .261-.051.358-.152.192-.198.188-.515-.01-.707-.23-.223-.505-.372-.797-.465.296-1.016.179-1.467-.096-2.312-.048-.147-.101-.311-.157-.498l-.03-.1c-.364-1.208-.605-2.005.087-3.13.145-.235.071-.543-.164-.688-.231-.144-.542-.073-.688.164-.928 1.508-.587 2.637-.192 3.944l.03.1c.059.194.113.364.163.517.247.761.322 1.016.02 1.936-.369.069-.722.236-1.01.504-.202.188-.213.505-.025.707.189.202.506.212.707.024zm6.365-2.985c.291 0 .585-.061.859-.191.25-.118.357-.416.239-.666-.117-.25-.419-.354-.665-.239-.502.236-1.121.031-1.384-.457-.131-.244-.436-.333-.677-.205-.243.13-.335.434-.204.677.18.336.448.601.76.785-.537 1.305-.232 2.691.017 3.426.07.209.265.34.474.34.053 0 .106-.008.16-.026.262-.088.402-.372.313-.633-.168-.498-.494-1.756-.002-2.826.038.002.073.015.11.015zm4.797 9.429c-.019-.275-.257-.492-.531-.467-1.014.072-1.878-.697-1.947-1.703-.02-.275-.265-.48-.533-.465-.275.019-.483.258-.465.533.041.59.266 1.122.608 1.555-.804.946-1.857 1.215-2.444 1.284-.519.062-.973.009-1.498-.053-.481-.055-1.025-.118-1.698-.098l-.005.001c-.02-.286-.088-.703-.305-1.05-.146-.233-.455-.304-.689-.158-.233.146-.305.455-.158.689.134.215.159.558.159.725-.504.181-.94.447-1.334.704-.704.458-1.259.82-2.094.632-.756-.173-1.513-.208-2.155-.118-.1-.251-.258-.551-.502-.782-.201-.19-.517-.182-.707.02-.189.2-.181.517.02.707.086.081.154.199.209.317-1.103.454-1.656 1.213-1.682 1.25-.16.224-.107.533.115.694.088.063.19.094.292.094.155 0 .308-.071.406-.205.005-.008.554-.743 1.637-1.04.56-.154 1.363-.141 2.146.037.219.05.422.067.619.07.093.218.129.477.134.573.016.266.236.472.499.472l.027-.001c.275-.015.486-.248.473-.523-.003-.05-.023-.346-.13-.686.461-.167.862-.428 1.239-.673.572-.373 1.113-.726 1.82-.749.592-.021 1.08.036 1.551.091.474.055.94.091 1.454.061.091.253.084.591.07.704-.033.273.16.523.434.559.021.003.042.004.063.004.247 0 .462-.183.495-.435.008-.062.059-.512-.059-.981.718-.193 1.608-.612 2.345-1.471.431.264.934.419 1.469.419.062 0 .125-.002.187-.006.275-.018.483-.255.465-.531z"/></g></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f9e2.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f9e2.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><ellipse transform="rotate(-87.495 21.25 5.018)" fill="#2B7BB9" cx="21.249" cy="5.018" rx=".944" ry="1.565"/><path fill="#292F33" d="M29.831 27.74s3.523 1.385 5.185.088c.125-1.17-3.311-2.035-3.311-2.035l-1.874 1.947zM7.527 25.549S2.271 33.375.77 32.031c0 0-.425-1.397 1.23-4.218 1.656-2.822 5.527-2.264 5.527-2.264z"/><path fill="#1C6399" d="M19.766 4.82s-8.537.43-13.735 16.348c7.494 0 16.785.555 16.785.555s7.799 3.982 8.889 4.469c1.089.487 3.311 1.637 3.311 1.637s1.089-5.531.305-9.69S30.79 4.997 19.766 4.82z"/><path fill="#1C6399" d="M3.354 25.167C1.521 28.209.138 30.988.77 32.031c0 0-.203-.761.775-1.633.892-.795 2.805-1.522 6.461-1.522 5.534 0 13.006 4.498 16.119 5.562 2.375.812 2.875.188 4.188-1.25 1.4-1.534 3.716-6.904 3.716-6.904s-7.47-4.107-11.871-5.726-5.358-1.427-6.752-1.401c-3.056.057-5.314.671-7.375 2.011 0 0-1.494 2.036-2.677 3.999z"/><path fill="#50A5E6" d="M30.588 11.339c-.61-3.443-4.011-5.076-4.011-5.076-1.895-.883-4.158-1.448-6.864-1.491 0 0-12.192-.105-13.681 16.395 0 0 2.541-1.115 7.92-.793 7.299.438 14.414 4.117 15.986 4.812.83-2.779 1.367-9.798.65-13.847z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f9e6.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f9e6.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#55ACEE" d="M27 19.276c-.983 0-1.893.294-2.667.784v4.549h-2.3c.175 2.603 2.319 4.667 4.966 4.667 2.761 0 5-2.239 5-5v-5H27z"/><path fill="#1C6399" d="M22.995 22.999l.005-16 9 .003-.005 16z"/><path fill="#1C6399" d="M24.202 21.451l6.354 6.354-6.878 6.878-6.354-6.354z"/><path fill="#55ACEE" d="M30 4h-5c-1.1 0-2 .9-2 2v2h9V6c0-1.1-.9-2-2-2zM15 15.276c-.983 0-1.893.294-2.667.784v4.549h-2.3c.175 2.603 2.319 4.667 4.966 4.667 2.761 0 5-2.239 5-5v-5H15z"/><path fill="#1C6399" d="M10.994 18.999l.006-16 9 .003-.006 16z"/><path fill="#55ACEE" d="M23.676 34.682c-1.757 1.757-4.607 1.757-6.364 0s-1.757-4.607 0-6.364c0 0 1.149.133 3.69 2.674s2.674 3.69 2.674 3.69zM18 0h-5c-1.1 0-2 .9-2 2v2h9V2c0-1.1-.9-2-2-2z"/><path fill="#1C6399" d="M12.202 17.451l6.354 6.354-6.878 6.878-6.354-6.354z"/><path fill="#55ACEE" d="M11.676 30.682c-1.757 1.757-4.607 1.757-6.364 0s-1.757-4.607 0-6.364c0 0 1.149.133 3.69 2.674s2.674 3.69 2.674 3.69z"/><path fill="#FFCC4D" d="M22.994 10.067h9v2h-9zm0 4h9v2h-9zm-12-8h9v2h-9zm0 4h9v2h-9z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f9e9.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f9e9.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#78B159" d="M26.093 4.612c-.498.498-.629.839-.728 1.029-.66 1.266-1.455 1.676-2.78.351-.13-.13-4.087-4.267-4.741-5.017-.427-.49-1.081-.64-1.584-.262-.38.286-4.035 3.273-5.035 4.507-.774.955-.8 2.134-.079 2.856.326.326.727.449 1.151.578.552.169 1.763.068 2.47.775 1.133 1.133.54 2.924-.917 4.421-1.497 1.457-3.288 2.05-4.421.917-.708-.708-.606-1.918-.775-2.47-.129-.424-.252-.824-.578-1.151-.721-.721-1.9-.694-2.856.079-1.235 1-4.221 4.655-4.507 5.035-.379.503-.228 1.156.262 1.584.75.654 4.887 4.611 5.017 4.741 1.324 1.324.915 2.12-.351 2.78-.19.099-.53.229-1.029.728-1.462 1.462-1.462 3.833 0 5.295 1.462 1.462 3.833 1.462 5.295 0 .498-.498.629-.839.728-1.029.66-1.266 1.455-1.676 2.78-.351.13.13 4.087 4.267 4.741 5.017.427.49 1.081.64 1.584.262.38-.286 4.035-3.273 5.035-4.507.774-.955.8-2.134.079-2.856-.326-.326-.727-.449-1.151-.578-.552-.169-1.763-.068-2.47-.775-1.133-1.133-.54-2.924.917-4.421 1.497-1.457 3.288-2.05 4.421-.917.708.708.606 1.918.775 2.47.129.424.252.824.578 1.151.721.721 1.9.694 2.856-.079 1.235-1 4.221-4.655 4.507-5.035.379-.503.228-1.156-.262-1.584-.75-.654-4.887-4.611-5.017-4.741-1.324-1.324-.915-2.12.351-2.78.19-.099.53-.229 1.029-.728 1.462-1.462 1.462-3.833 0-5.295-1.462-1.463-3.833-1.463-5.295 0z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f9ea.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f9ea.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M14.563 14.414L25.47 3.505l6.961 6.962-10.908 10.908z"/><path fill="#68E090" d="M8.103 34.399C2.5 34 1.5 30.062 1.635 27.932c.322-5.07 15.601-16.551 15.601-16.551l12.517 1.93c.001 0-17.389 21.392-21.65 21.088z"/><path fill="#8899A6" d="M32.326 3.708C29.405.787 26.104-.649 24.954.502c-.013.013-.022.031-.034.044-.006.006-.015.008-.021.014L2.295 23.164c-1.412 1.412-2.19 3.29-2.19 5.288 0 1.997.778 3.875 2.19 5.287 1.413 1.413 3.291 2.19 5.288 2.19 1.998 0 3.875-.777 5.287-2.189l22.604-22.604c.007-.007.009-.016.015-.023.013-.012.03-.02.043-.033 1.151-1.15-.285-4.451-3.206-7.372zM10.75 31.619c-.846.846-1.97 1.311-3.166 1.311s-2.321-.466-3.167-1.312c-.846-.846-1.312-1.97-1.312-3.167 0-1.196.466-2.32 1.311-3.166L25.412 4.29c.622 1.144 1.56 2.394 2.749 3.584 1.189 1.189 2.44 2.127 3.584 2.749L10.75 31.619z"/><path fill="#17BF63" d="M29.196 13.144c-.058.379-2.627.751-5.691.343-3.063-.408-5.482-1.223-5.403-1.82.08-.597 2.627-.751 5.691-.343s5.495 1.224 5.403 1.82zM10.84 23.247c-.31.31-.813.31-1.123 0-.31-.31-.31-.813 0-1.123.31-.31.813-.31 1.123 0 .31.31.31.813 0 1.123zm3.317 2.615c-.507.507-1.328.506-1.835 0-.506-.506-.506-1.328 0-1.834.507-.507 1.328-.506 1.834 0 .507.506.508 1.327.001 1.834zm1.677-5.324c-.476.476-1.25.476-1.726 0s-.476-1.249 0-1.726c.476-.476 1.249-.477 1.725 0 .478.477.478 1.25.001 1.726zm-6.868 8.858c-.581.581-1.524.581-2.105 0-.582-.582-.581-1.524 0-2.105s1.523-.581 2.105 0c.581.581.582 1.523 0 2.105zm11.396-9.158c-.413.413-1.083.413-1.496 0-.413-.413-.412-1.083.001-1.496.414-.414 1.083-.414 1.496-.001.413.414.413 1.083-.001 1.497zm-1.207-4.288c-.27.27-.708.27-.979 0-.27-.27-.27-.708 0-.979.27-.27.708-.271.979 0 .27.271.27.709 0 .979z"/><ellipse transform="rotate(-45.001 30.817 5.223)" fill="#CCD6DD" cx="30.817" cy="5.223" rx="1.184" ry="4.847"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f9ec.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f9ec.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#77B255" d="M3.019 26.246l3.432 3.432-.923.922-3.432-3.431z"/><path fill="#FFD983" d="M6.362 29.587l3.431 3.432-.923.923-3.43-3.432z"/><path fill="#FFAC33" d="M6.273 24.237l3.432 3.432-.923.923L5.35 25.16z"/><path fill="#EA596E" d="M8.998 26.962l3.432 3.432-.923.923-3.431-3.432zm3.909-9.359l3.431 3.432-.923.923-3.431-3.432z"/><path fill="#FFAC33" d="M15.631 20.329l3.432 3.431-.923.923-3.432-3.431z"/><path fill="#77B255" d="M14.97 14.377l3.432 3.432-.922.923-3.432-3.432z"/><path fill="#FFD983" d="M18.277 17.683l3.432 3.432-.923.923-3.432-3.432z"/><path fill="#FFAC33" d="M17.616 11.731l3.432 3.432-.923.922-3.432-3.431z"/><path fill="#EA596E" d="M20.923 15.038l3.432 3.431-.923.923-3.431-3.432zM24.387 4.96l3.432 3.432-.923.922-3.432-3.431z"/><path fill="#FFAC33" d="M27.694 8.267l3.432 3.431-.923.923-3.432-3.432z"/><path fill="#77B255" d="M27.013 2.252l3.432 3.432-.923.923-3.432-3.432z"/><path fill="#FFD983" d="M30.36 5.6l3.432 3.431-.923.923-3.432-3.431z"/><path fill="#9266CC" d="M24.922.812c-2.52 2.52-2.601 6.145-2.396 9.806.501.028 1.002.061 1.502.094.39.026.775.051 1.159.074-.198-3.286-.199-6.299 1.606-8.104.727-.703.955-1.653.447-2.166-.535-.54-1.542-.497-2.318.296z"/><path fill="#3B88C3" d="M13.146 25.65l-.153-2.66c-.026-.445-.058-.899-.074-1.332-.296-.296-2.466-.349-2.653-.162.013.44.047.884.071 1.327.028.502.126 2.275.149 2.66.054.91.096 1.806.086 2.656.259.259 2.371.437 2.645.162.015-.872-.022-1.761-.071-2.651z"/><path fill="#55ACEE" d="M13.22 28.3l-2.649-.162c-.026 2.209-.384 4.145-1.687 5.448-.517.517-.517 1.354 0 1.871.258.258.597.388.935.388.338 0 .677-.129.935-.388 2.423-2.422 2.467-7.174 2.466-7.157z"/><path fill="#9266CC" d="M25.354 13.447c-.501-.028-1.003-.061-1.503-.094-.389-.026-.775-.051-1.158-.074.198 3.285.199 6.299-1.607 8.104-1.804 1.804-4.813 1.805-8.094 1.607-.386-.023-2.159-.14-2.656-.168-3.667-.206-7.297-.126-9.82 2.397-.516.516-.516 1.353.001 1.87.258.258.597.388.935.388.338 0 .677-.129.935-.388 1.805-1.804 4.815-1.806 8.098-1.608.385.023 2.161.14 2.66.168 3.662.205 7.289.125 9.811-2.396 2.521-2.52 2.603-6.145 2.398-9.806z"/><path fill="#744EAA" d="M25.354 13.447c-.028-.501-.145-2.277-.168-2.66-.027-.45-.049-.894-.064-1.332-.336-.021-2.1-.133-2.653-.163.013.44.032.883.056 1.326.028.501.145 2.277.168 2.661.055.914.091 1.804.081 2.656.333.021 2.094.132 2.645.162.015-.872-.015-1.759-.065-2.65z"/><path fill="#55ACEE" d="M35.581 8.827c-.42-.436-1.385-.601-2.291.353-1.805 1.805-4.817 1.806-8.104 1.607-.384-.023-2.16-.141-2.661-.169-3.66-.205-7.286-.123-9.806 2.397-2.215 2.215-2.545 5.284-2.453 8.48.553.03 2.319.142 2.653.162-.098-2.755.113-5.214 1.671-6.772 1.805-1.805 4.818-1.805 8.104-1.607.383.023 2.16.14 2.661.168 3.661.205 7.286.124 9.806-2.396.886-.869.84-1.787.42-2.223z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f9ed.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f9ed.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#F4900C" cx="18" cy="18" r="18"/><circle fill="#FFD983" cx="18" cy="18" r="14.5"/><circle fill="#F5F8FA" cx="18" cy="18" r="13"/><path fill="#CCD6DD" d="M18 8l1.531 6.304 5.54-3.375-3.375 5.54L28 18l-6.304 1.531 3.375 5.54-5.54-3.375L18 28l-1.531-6.304-5.54 3.375 3.375-5.54L8 18l6.304-1.531-3.375-5.54 5.54 3.375z"/><path fill="#292F33" d="M17.343 20.748l8.777 5.381-5.379-8.778z"/><path fill="#DD2E44" d="M18.657 15.267L9.879 9.886l5.38 8.779z"/><circle fill="#8899A6" cx="18" cy="18.008" r="3.055"/><circle fill="#F5F8FA" cx="18" cy="18.008" r="1.648"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f9ee.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f9ee.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M3 16v-2h30v2zm0 7v-2h30v2zm0 7v-2h30v2zM3 9V7h30v2z"/><path fill="#D5AB88" d="M35 33V1c0-.552-.448-1-1-1h-1c-.552 0-1 .448-1 1H4c0-.552-.448-1-1-1H2c-.552 0-1 .448-1 1v32h34zM4 4h28v29H4V4z"/><path fill="#3B94D9" d="M19 5.5c-.829 0-1.5.671-1.5 1.5 0-.829-.671-1.5-1.5-1.5s-1.5.671-1.5 1.5c0-.829-.671-1.5-1.5-1.5s-1.5.671-1.5 1.5c0-.829-.671-1.5-1.5-1.5S8.5 6.171 8.5 7c0-.829-.671-1.5-1.5-1.5S5.5 6.171 5.5 7v2c0 .829.671 1.5 1.5 1.5S8.5 9.829 8.5 9c0 .829.671 1.5 1.5 1.5s1.5-.671 1.5-1.5c0 .829.671 1.5 1.5 1.5s1.5-.671 1.5-1.5c0 .829.671 1.5 1.5 1.5s1.5-.671 1.5-1.5c0 .829.671 1.5 1.5 1.5.828 0 1.5-.671 1.5-1.5V7c0-.829-.672-1.5-1.5-1.5z"/><path fill="#BE1931" d="M19 12.5c-.829 0-1.5.671-1.5 1.5 0-.829-.671-1.5-1.5-1.5s-1.5.671-1.5 1.5c0-.829-.671-1.5-1.5-1.5s-1.5.671-1.5 1.5c0-.829-.671-1.5-1.5-1.5s-1.5.671-1.5 1.5c0-.829-.671-1.5-1.5-1.5s-1.5.671-1.5 1.5v2c0 .829.671 1.5 1.5 1.5s1.5-.671 1.5-1.5c0 .829.671 1.5 1.5 1.5s1.5-.671 1.5-1.5c0 .829.671 1.5 1.5 1.5s1.5-.671 1.5-1.5c0 .829.671 1.5 1.5 1.5s1.5-.671 1.5-1.5c0 .829.671 1.5 1.5 1.5.828 0 1.5-.671 1.5-1.5v-2c0-.829-.672-1.5-1.5-1.5z"/><path fill="#5C913B" d="M19 19.5c-.829 0-1.5.672-1.5 1.5 0-.828-.671-1.5-1.5-1.5s-1.5.672-1.5 1.5c0-.828-.671-1.5-1.5-1.5s-1.5.672-1.5 1.5c0-.828-.671-1.5-1.5-1.5s-1.5.672-1.5 1.5c0-.828-.671-1.5-1.5-1.5s-1.5.672-1.5 1.5v2c0 .828.671 1.5 1.5 1.5s1.5-.672 1.5-1.5c0 .828.671 1.5 1.5 1.5s1.5-.672 1.5-1.5c0 .828.671 1.5 1.5 1.5s1.5-.672 1.5-1.5c0 .828.671 1.5 1.5 1.5s1.5-.672 1.5-1.5c0 .828.671 1.5 1.5 1.5.828 0 1.5-.672 1.5-1.5v-2c0-.828-.672-1.5-1.5-1.5z"/><path fill="#FFAC33" d="M19 26.5c-.829 0-1.5.672-1.5 1.5 0-.828-.671-1.5-1.5-1.5s-1.5.672-1.5 1.5c0-.828-.671-1.5-1.5-1.5s-1.5.672-1.5 1.5c0-.828-.671-1.5-1.5-1.5s-1.5.672-1.5 1.5c0-.828-.671-1.5-1.5-1.5s-1.5.672-1.5 1.5v2c0 .828.671 1.5 1.5 1.5s1.5-.672 1.5-1.5c0 .828.671 1.5 1.5 1.5s1.5-.672 1.5-1.5c0 .828.671 1.5 1.5 1.5s1.5-.672 1.5-1.5c0 .828.671 1.5 1.5 1.5s1.5-.672 1.5-1.5c0 .828.671 1.5 1.5 1.5.828 0 1.5-.672 1.5-1.5v-2c0-.828-.672-1.5-1.5-1.5z"/><path fill="#3B94D9" d="M29 10.5c-.828 0-1.5-.671-1.5-1.5V7c0-.829.672-1.5 1.5-1.5s1.5.671 1.5 1.5v2c0 .829-.672 1.5-1.5 1.5z"/><path fill="#BE1931" d="M29 17.5c-.828 0-1.5-.671-1.5-1.5v-2c0-.829.672-1.5 1.5-1.5s1.5.671 1.5 1.5v2c0 .829-.672 1.5-1.5 1.5z"/><path fill="#5C913B" d="M29 24.5c-.828 0-1.5-.672-1.5-1.5v-2c0-.828.672-1.5 1.5-1.5s1.5.672 1.5 1.5v2c0 .828-.672 1.5-1.5 1.5z"/><path fill="#FFAC33" d="M29 31.5c-.828 0-1.5-.672-1.5-1.5v-2c0-.828.672-1.5 1.5-1.5s1.5.672 1.5 1.5v2c0 .828-.672 1.5-1.5 1.5z"/><path fill="#BF6952" d="M35 33H1c-.552 0-1 .448-1 1v1c0 .552.448 1 1 1h34c.552 0 1-.448 1-1v-1c0-.552-.448-1-1-1z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f9f2.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f9f2.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M19.469 8.319l-3.854-4.671c-.355-.43-.991-.491-1.421-.136l-3.376 2.785 5.138 6.228 3.376-2.785c.431-.355.492-.991.137-1.421z"/><path fill="#BE1931" d="M29.543 25.021l-6.228-5.138s-2.395 3.132-5.006 6.152c-1.986 2.298-6.093 2.215-8.406-.098s-2.395-6.42-.098-8.406c3.02-2.611 6.152-5.006 6.152-5.006l-5.138-6.228s-5.122 3.928-6.613 5.43c-5.468 5.508-5.487 14.418.001 19.906s14.398 5.468 19.906.001c1.502-1.491 5.43-6.613 5.43-6.613z"/><path fill="#CCD6DD" d="M27.521 16.371l4.671 3.854c.43.355.491.991.136 1.421l-2.785 3.376-6.228-5.138 2.785-3.376c.355-.431.992-.492 1.421-.137z"/><path fill="#FFAC33" d="M23.717 4.223L21.96 2.43 23.896.535c.006-.006.004-.015.009-.021.016-.019.021-.039.027-.063.007-.024.013-.044.01-.068-.001-.008.005-.015.004-.023-.004-.017-.02-.024-.028-.038-.008-.016-.005-.035-.018-.048-.006-.006-.015-.004-.022-.009-.02-.016-.042-.021-.067-.028-.022-.006-.041-.012-.063-.01-.008.001-.016-.006-.024-.004L18.588 1.48c-.064.016-.115.065-.134.129-.018.064 0 .133.046.18l1.757 1.794-1.935 1.896c-.006.006-.004.015-.009.021-.016.019-.021.04-.028.064-.007.024-.013.043-.01.067.001.008-.006.015-.004.024.006.025.023.043.038.062.005.007.003.016.009.023l.011.011c.042.036.095.044.147.036.007-.001.011.006.018.004l5.134-1.257c.064-.016.115-.065.134-.129.018-.066 0-.135-.045-.182zm-2.155-1.661l.005-.005-.005.005zm14.266 12.543l-2.055-1.443 1.557-2.217c.005-.007.001-.015.005-.022.012-.022.013-.042.015-.067s.005-.045-.002-.069c-.002-.008.003-.015-.001-.023-.007-.016-.024-.02-.034-.033-.011-.014-.012-.032-.027-.043-.007-.005-.016-.001-.023-.005-.023-.012-.045-.013-.071-.015-.023-.002-.043-.004-.064.002-.008.002-.016-.003-.024.001l-4.819 2.173c-.06.027-.101.085-.108.151-.006.066.025.131.078.169l2.055 1.443-1.556 2.217c-.005.007-.001.015-.005.022-.012.022-.013.043-.015.068-.002.024-.005.045.002.068.002.008-.003.016.001.024.011.023.031.038.049.054.006.006.006.015.013.02l.013.008c.048.028.102.026.151.008.006-.002.012.004.018.001l4.818-2.174c.06-.027.101-.085.108-.151.004-.064-.026-.129-.079-.167zm-2.422-1.24l.004-.006-.004.006z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f9f5.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f9f5.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#553788" d="M35 36c-.419 0-.809-.265-.948-.684C33.388 33.326 31.595 32 25 32c-.553 0-1-.447-1-1s.447-1 1-1c5.635 0 9.653.797 10.948 4.684.175.524-.108 1.091-.632 1.265-.105.034-.212.051-.316.051z"/><path fill="#553788" d="M3 3h22v30H3z"/><path fill="#C1694F" d="M26 4H2c-.55 0-2-3-2-3 0-.55.45-1 1-1h26c.55 0 1 .45 1 1 0 0-1.45 3-2 3zm0 28H2c-.55 0-2 3-2 3 0 .55.45 1 1 1h26c.55 0 1-.45 1-1 0 0-1.45-3-2-3z"/><path fill="#744EAA" d="M23 7H5c-.55 0-1-.45-1-1s.45-1 1-1h18c.55 0 1 .45 1 1s-.45 1-1 1zm0 4H5c-.55 0-1-.45-1-1s.45-1 1-1h18c.55 0 1 .45 1 1s-.45 1-1 1zm0 4H5c-.55 0-1-.45-1-1s.45-1 1-1h18c.55 0 1 .45 1 1s-.45 1-1 1zm0 4H5c-.55 0-1-.45-1-1s.45-1 1-1h18c.55 0 1 .45 1 1s-.45 1-1 1zm0 4H5c-.55 0-1-.45-1-1s.45-1 1-1h18c.55 0 1 .45 1 1s-.45 1-1 1zm0 4H5c-.55 0-1-.45-1-1s.45-1 1-1h18c.55 0 1 .45 1 1s-.45 1-1 1zm0 4H5c-.55 0-1-.45-1-1s.45-1 1-1h18c.55 0 1 .45 1 1s-.45 1-1 1z"/><path fill="#9266CC" d="M17.261 7H7.739C7.332 7 7 6.668 7 6.261v-.522C7 5.332 7.332 5 7.739 5h9.523c.406 0 .738.332.738.739v.523c0 .406-.332.738-.739.738zm0 4H7.739C7.332 11 7 10.668 7 10.261v-.522C7 9.332 7.332 9 7.739 9h9.523c.406 0 .738.332.738.739v.523c0 .406-.332.738-.739.738zm0 4H7.739C7.332 15 7 14.668 7 14.261v-.523c0-.406.332-.738.739-.738h9.523c.406 0 .738.332.738.739v.523c0 .406-.332.738-.739.738zm0 4H7.739C7.332 19 7 18.668 7 18.261v-.523c0-.406.332-.738.739-.738h9.523c.406 0 .738.332.738.739v.523c0 .406-.332.738-.739.738zm0 4H7.739C7.332 23 7 22.668 7 22.261v-.523c0-.406.332-.738.739-.738h9.523c.406 0 .738.332.738.739v.523c0 .406-.332.738-.739.738zm0 4H7.739C7.332 27 7 26.668 7 26.261v-.523c0-.406.332-.738.739-.738h9.523c.406 0 .738.332.738.739v.523c0 .406-.332.738-.739.738zm0 4H7.739C7.332 31 7 30.668 7 30.261v-.523c0-.406.332-.738.739-.738h9.523c.406 0 .738.332.738.739v.523c0 .406-.332.738-.739.738z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1f9f9.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1f9f9.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1694F" d="M19.175 16.825c-.706-.706-.706-1.861 0-2.567L32.433 1C33.139.294 34.294.294 35 1c.706.706.706 1.861 0 2.567L21.742 16.825c-.706.706-1.861.706-2.567 0z"/><path fill="#66757F" d="M8.839 27.365l-.204-.204c-.941-.941-.941-2.48 0-3.42l8.35-8.35c.941-.941 2.48-.941 3.42 0l.204.204c.941.941.941 2.48 0 3.42l-8.35 8.35c-.94.941-2.48.941-3.42 0z"/><path fill="#FFCC4D" d="M19.389 26.341c1.688-1.688.671-5.441-1.809-7.921s-6.233-3.497-7.921-1.809L0 26.16 9.84 36l9.549-9.659z"/><path fill="#FFAC33" d="M2.02 28.18l8.66-8.658.58.58L2.6 28.76zm1.74 1.74l8.66-8.659.58.58-8.66 8.66zm1.74 1.74L14.158 23l.58.58-8.66 8.66zm1.74 1.74l8.659-8.66.58.58-8.66 8.659z"/><path fill="#55ACEE" d="M9.875 16.43c-.073.059-.149.114-.216.181L7.46 18.779l9.761 9.761 2.167-2.199c.067-.067.123-.143.181-.216L9.875 16.43z"/><path fill="#269" d="M8.882 18.221l.235-.568 9.225 9.224-.572.232z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1fa73.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1fa73.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#78B159" d="M31 6V1.955c0-.527-.428-.955-.955-.955H5.955C5.428 1 5 1.428 5 1.955V6L0 31l14 4 4-10.545L22 35l14-4-5-25z"/><g fill="#5D9040"><path d="M5 4h26v2H5zm8.782 2h-2.074c-1.378 4.107-5.46 5.399-7.87 5.807l-.421 2.107c3.606-.408 8.9-2.403 10.365-7.914z"/><path d="M32.583 13.914l-.421-2.107c-2.41-.408-6.491-1.701-7.87-5.807h-2.074c1.464 5.511 6.759 7.506 10.365 7.914zM17 6v21.091l1-2.636 1 2.636V6z"/><path d="M18.149 23H18v-2h.149C19.722 21 21 19.722 21 18.149V5h2v13.149C23 20.824 20.824 23 18.149 23z"/></g></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1fa80.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1fa80.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><ellipse fill="#BE1931" cx="17.722" cy="21.507" rx="12.917" ry="13.993"/><ellipse fill="#A0041E" cx="15.569" cy="21.507" rx="12.917" ry="13.993"/><path fill="#99AAB5" d="M28.298 13.741c-1.643 0-3.457-.825-5.227-1.629-2.124-.966-4.322-1.966-5.46-1.113l-1.167-1.555c2.06-1.544 4.79-.303 7.431.898 2.023.92 4.117 1.868 5.327 1.263.664-.331 1.155-1.195 1.459-2.566l1.899.422c-.444 2-1.259 3.27-2.49 3.885-.558.278-1.153.395-1.772.395z"/><ellipse fill="#DD2E44" cx="13.417" cy="21.507" rx="12.917" ry="13.993"/><ellipse fill="#EA596E" cx="12.878" cy="21.507" rx="9.149" ry="10.433"/><path fill="#99AAB5" d="M31.611 10.222c-2.41 0-3.889-3.398-3.889-5.833S29.176.5 31.611.5 35.5 1.954 35.5 4.389c0 2.436-1.479 5.833-3.889 5.833zm0-7.778c-1.344 0-1.944.6-1.944 1.944 0 1.878 1.141 3.889 1.944 3.889s1.944-2.011 1.944-3.889c.001-1.344-.599-1.944-1.944-1.944z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1fa81.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1fa81.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#55ACEE" d="M22.45 32.289L.592 18.752 6.55.711l18.042 5.958z"/><path fill="#269" d="M20.543 29.5c-.366 0-.719-.201-.895-.551L6.929 3.687c-.249-.493-.05-1.095.443-1.343.494-.249 1.095-.05 1.343.443l12.72 25.264c.248.493.05 1.094-.444 1.343-.143.072-.297.106-.448.106z"/><path fill="#269" d="M3.12 18.48c-.366 0-.718-.201-.894-.55-.249-.493-.05-1.095.443-1.343l18.947-9.54c.49-.25 1.094-.05 1.343.443.248.493.05 1.095-.443 1.343l-18.947 9.54c-.145.073-.298.107-.449.107z"/><path fill="#3B88C3" d="M27.367 35.339c-2.44 0-4.521-1.268-6.199-3.784-.307-.459-.183-1.08.277-1.387.458-.307 1.079-.183 1.387.277 1.564 2.343 3.359 3.228 5.644 2.781.945-.184 1.793-.98 2.27-2.132.701-1.693.47-3.668-.62-5.282-2.006-2.971-2.777-6.787-2.063-10.21.615-2.956 2.24-5.344 4.698-6.905.466-.295 1.084-.158 1.38.308.297.466.158 1.084-.308 1.38-2.516 1.598-3.462 3.941-3.813 5.625-.604 2.905.055 6.151 1.765 8.683 1.466 2.172 1.769 4.851.811 7.167-.734 1.772-2.131 3.018-3.736 3.329-.513.1-1.009.15-1.493.15z"/><path d="M31.532 30.992c-.781-2.485-2.807-4.482-4.157-2.075-1.342 2.392 1.04 3.456 3.717 2.74.781 2.485 2.807 4.482 4.157 2.075 1.342-2.392-1.039-3.456-3.717-2.74zm-1.425-7.039c2.377 1.066 5.215.876 4.311-1.731-.898-2.592-3.275-1.517-4.517.961-2.377-1.066-5.215-.876-4.311 1.731.898 2.592 3.275 1.517 4.517-.961zm-1.261-6.597c1.355 2.225 3.802 3.676 4.534 1.015.727-2.645-1.84-3.105-4.267-1.766-1.355-2.224-3.802-3.676-4.534-1.015-.728 2.645 1.84 3.105 4.267 1.766zm2.897-6.557c-.132 2.602 1.074 5.178 3.177 3.39 2.089-1.777.226-3.602-2.534-3.861.132-2.602-1.074-5.178-3.177-3.39-2.089 1.777-.225 3.602 2.534 3.861z" fill="#9266CC"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1fa83.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1fa83.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M31.497 6.06s.244-4.293-6.702-3.83c-8.617.574-18.599 9.155-18.95 17.159-.267 6.089 8.109 1.203 11.139-1.96-.045-.045 3.282 1.426 4.752 4.545-3.267 2.733-8.047 4.803-11.644 5.109-6.282.535-8.546-2.727-7.557-9.15C3.758 10 13.588.858 24.604.795c8.377-.048 6.893 5.265 6.893 5.265z"/><path fill="#662113" d="M32.19 32.317c.351-1.768-.27-19.086-4.411-22.615S5.541 7.73 3.881 8.435c-2.24.95-1.352 3.835.184 3.93 5.43.339 16.02.786 18.774 3.133s4.875 12.732 6.07 18.04c.337 1.501 2.643 1.99 3.281-1.221z"/><path fill="#C1694F" d="M32.19 32.317c.432-1.75-.057-20.063-4.197-23.592s-22.3-1.109-23.96-.405c-2.24.95-1.291 2.972.245 3.068 5.43.339 16.02.786 18.774 3.133s4.875 12.732 6.07 18.04c.338 1.501 2.484 2.118 3.068-.244z"/><path fill="#FFCC4D" d="M6.747 11.537c1.459.089 3.08.196 4.731.339l-.013-4.686c-1.373.125-2.649.274-3.749.426l-.969 3.921zm21.836 18.61c-.319-1.426-.682-3.01-1.084-4.618l4.629-.73c.094 1.376.149 2.659.174 3.769l-3.719 1.579z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1fa90.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1fa90.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#FFCC4D" cx="18" cy="18" r="10.694"/><path fill="#F4900C" d="M10.229 22.751c-.985.067-1.689-.308-2.203-.917.214.557.487 1.081.788 1.588.771.289 1.591.41 2.54-.272-.463-.227-.88-.415-1.125-.399zM23.086 8.608c.045.328-.187.5-.75.363-.955-.232-1.793.776-2.274 1.619-.947 1.657-4.854 3.524-4.857 2.087-.001-.679-3.452.843-3.893.161-.417-.644-1.663-.396-1.921-1.168-1.135 1.544-1.869 3.402-2.04 5.422.377.718.864 1.282 1.352 1.526.66.33 3.726 1.528 4.174.763.747-1.276 5.229-.373 5.122-1.044-.205-1.285 2.427-.23 3.373-1.886.482-.843 1.533-1.49 2.489-1.258 1.116.271 2.493-1.643 2.389-3.996-.871-1.057-1.951-1.931-3.164-2.589zm3.181 16.175c-.338.166-.671.293-.975.326-2.248.243-2.734 2.005-4.242 1.703-.777-.156-1.837 1.214-3.05 1.297-.611.042-1.489.141-2.386.308.768.175 1.565.277 2.386.277 3.331 0 6.305-1.523 8.267-3.911z"/><path fill="#E85E00" d="M23.225 8.674c.953.535 1.811 1.213 2.554 2.003 2.491-.157 4.01.429 3.883 1.777-.066.705-.585 1.542-1.431 2.435-2.108 2.221-6.309 4.796-11.07 6.602-3.309 1.255-6.258 1.9-8.366 1.934-2.145.035-3.418-.563-3.302-1.803.076-.815.752-1.806 1.852-2.857-.019-.255-.039-.507-.039-.765 0-.848.109-1.669.296-2.461C3.3 18.522.5 21.807.5 24.369c0 3.487 5.162 4.558 12.275 2.957 1.65-.371 3.405-.886 5.225-1.549 3.9-1.419 7.489-3.3 10.399-5.317 4.301-2.983 7.101-6.268 7.101-8.83 0-3.486-5.162-4.558-12.275-2.956z"/><path fill="#F4900C" d="M6.356 18.051c-.742.711-1.369 1.524-1.88 2.382-.49.852-.907 1.811-.844 2.671.035.856.682 1.366 1.558 1.602.874.227 1.845.287 2.834.229 1.962-.089 3.93-.415 5.841-.965 1.924-.505 3.791-1.225 5.615-2.036 3.648-1.628 7.068-3.789 10.132-6.382.368-.333.771-.649 1.124-.986.333-.337.647-.713.91-1.097.522-.768.826-1.667.335-2.352-.49-.696-1.495-1.075-2.453-1.271-.981-.187-2.01-.23-3.03-.111.992-.265 2.037-.395 3.088-.316 1.03.092 2.172.3 3.008 1.221.41.457.599 1.145.524 1.746-.057.611-.293 1.15-.563 1.635-.278.485-.59.925-.945 1.348-.352.404-.709.777-1.072 1.163-2.932 2.994-6.44 5.414-10.261 7.159-3.816 1.72-7.974 2.911-12.261 2.754-1.056-.04-2.157-.133-3.236-.548-.534-.209-1.082-.517-1.5-1.016-.429-.49-.635-1.171-.589-1.774.098-1.213.704-2.152 1.349-2.976.664-.819 1.447-1.525 2.316-2.08z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1fa91.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1fa91.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#A4523A" d="M12 20c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2s2-.9 2-2V22c0-1.1-.9-2-2-2zm18 0c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2s2-.9 2-2V22c0-1.1-.9-2-2-2z"/><path fill="#C1694F" d="M13 2h16v8H13z"/><path fill="#C1694F" d="M16 9h2v13h-2zm4 0h2v13h-2zm4 0h2v13h-2zM7 23c-1.1 0-2 .9-2 2v9c0 1.1.9 2 2 2s2-.9 2-2v-9c0-1.1-.9-2-2-2z"/><path fill="#C1694F" d="M25 21c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2s2-.9 2-2V23c0-1.1-.9-2-2-2zM12 0c-1.1 0-2 .9-2 2v20h4V2c0-1.1-.9-2-2-2zm18 0c-1.1 0-2 .9-2 2v20h4V2c0-1.1-.9-2-2-2z"/><path fill="#A4523A" d="M14 2h1v8h-1zm14 8h-1V2h1z"/><path fill="#D99E82" d="M30.769 20H10.341c-.223 0-.442.061-.633.175l-5.954 3.041s22.726 2.418 24.726 2.418l3.029-2.265c.309-.232.491-.597.491-.985v-1.153c0-.68-.551-1.231-1.231-1.231z"/><path fill="#A4523A" d="M16 10h2v1h-2zM5 26h4v1H5zm18 0h4v1h-4zm-3-16h2v1h-2zm4 0h2v1h-2z"/><path fill="#C1694F" d="M27.44 26H4.56C3.698 26 3 25.328 3 24.5S3.698 23 4.56 23h22.88c.862 0 1.56.672 1.56 1.5s-.698 1.5-1.56 1.5z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1fa95.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1fa95.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#67757F" cx="10.047" cy="16.953" r="1"/><circle fill="#67757F" cx="1.047" cy="25.953" r="1"/><circle fill="#67757F" cx="19.047" cy="25.953" r="1"/><circle fill="#67757F" cx="10.047" cy="34.953" r="1"/><circle fill="#67757F" cx="3.547" cy="19.828" r="1"/><circle fill="#67757F" cx="16.214" cy="32.495" r="1"/><path fill="#292F33" d="M32.339 5.338l-15.45 17.334-3.561-3.56L30.66 3.66z"/><ellipse transform="rotate(-52.019 10.047 25.953)" fill="#F18F26" cx="10.047" cy="25.953" rx="9" ry="9"/><ellipse transform="rotate(-52.019 10.047 25.953)" fill="#F5F8FA" cx="10.047" cy="25.953" rx="7" ry="7"/><path fill="#CCD6DD" d="M4.628 29.934L28.8 5.807l.53.531L5.16 30.466zm.869.87L29.67 6.676l.531.531L6.028 31.335z"/><path fill="#292F33" d="M2.047 31.953l2-3s1 0 2 1 1 2 1 2l-3 2-2-2z"/><path fill="#67757F" d="M9.097 30.903c-.256 0-.512-.098-.707-.293l-3-3c-.391-.391-.391-1.023 0-1.414s1.023-.391 1.414 0l3 3c.391.391.391 1.023 0 1.414-.196.196-.452.293-.707.293z"/><path fill="#F18F26" d="M34.704 2.685c.438.438.438 1.155-.001 1.592l-3.186 3.186c-.438.438-1.155.438-1.593-.001l-1.39-1.389c-.438-.438-.438-1.155.001-1.592l3.187-3.186c.438-.438 1.155-.438 1.593 0l1.389 1.39z"/><circle fill="#642116" cx="33" cy="8" r="1"/><circle fill="#642116" cx="35" cy="6" r="1"/><circle fill="#642116" cx="28" cy="3" r="1"/><circle fill="#642116" cx="30" cy="1" r="1"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1fa97.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1fa97.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFE8B6" d="M17.483 30.971c-.574.051-1.099-.36-1.168-.93L13.427 5.136c-.069-.57.676-1.133 1.657-1.22.981-.087 1.811.336 1.844.909l1.541 25.024c.031.574-.412 1.07-.986 1.122zm4.199-.146c-.574-.011-1.051-.476-1.058-1.051l-.192-25.071c-.007-.574.791-1.054 1.773-1.034.982.019 1.76.528 1.731 1.102l-1.157 25.045c-.029.574-.522 1.02-1.097 1.009zm4.185.306c-.57-.073-.993-.586-.939-1.158l2.501-24.947c.054-.572.899-.963 1.873-.838.974.124 1.694.714 1.603 1.281l-3.839 24.776c-.091.568-.629.959-1.199.886z"/><path fill="#D99E82" d="M19.582 30.841c-.575.02-1.076-.419-1.114-.992L16.927 4.825c-.038-.573.734-1.095 1.717-1.128.983-.034 1.788.433 1.789 1.007l.192 25.071c.001.574-.468 1.046-1.043 1.066zm4.197.081c-.573-.042-1.023-.532-.999-1.106l1.157-25.045c.024-.574.846-1.01 1.825-.938.979.071 1.729.622 1.669 1.193L24.93 29.973c-.062.572-.579.991-1.151.949z"/><path fill="#BE1931" d="M29.781 31.803l-1.033-.159c-1.136-.175-1.922-1.247-1.747-2.383l3.495-22.715c.175-1.136 1.247-1.922 2.383-1.747l1.033.159c1.136.175 1.922 1.247 1.747 2.383l-3.495 22.715c-.175 1.136-1.248 1.922-2.383 1.747z"/><circle fill="#F5F8FA" cx="33.276" cy="9.088" r="1.045"/><circle fill="#F5F8FA" cx="33.276" cy="9.088" r="1.045"/><circle fill="#F5F8FA" cx="32.799" cy="12.186" r="1.045"/><circle fill="#F5F8FA" cx="32.322" cy="15.283" r="1.045"/><circle fill="#F5F8FA" cx="31.846" cy="18.381" r="1.045"/><circle fill="#F5F8FA" cx="31.369" cy="21.478" r="1.045"/><circle fill="#F5F8FA" cx="30.893" cy="24.576" r="1.045"/><circle fill="#F5F8FA" cx="30.416" cy="27.673" r="1.045"/><path fill="#BE1931" d="M14.591 31.252L5.25 32.318c-1.142.13-2.182-.697-2.313-1.839L.331 7.645c-.13-1.142.697-2.183 1.839-2.313l9.341-1.066c1.142-.13 2.182.697 2.313 1.839l2.606 22.834c.13 1.142-.697 2.183-1.839 2.313z"/><path fill="#F5F8FA" d="M7.891 7.833l-5.542.633c-.474.054-.906-.29-.96-.764l-.04-.352c-.054-.474.29-.906.764-.96l5.541-.632c.474-.054.906.29.96.764l.04.352c.054.473-.289.905-.763.959zm.355 3.114l-5.541.633c-.474.054-.906-.29-.96-.764l-.04-.352c-.055-.474.289-.906.763-.96l5.541-.632c.474-.054.906.29.96.764l.04.352c.055.473-.289.905-.763.959zm.355 3.114l-5.541.632c-.474.054-.906-.29-.96-.764l-.04-.352c-.054-.474.29-.906.764-.96l5.541-.632c.474-.054.906.29.96.764l.04.352c.054.474-.289.906-.764.96zm.356 3.114l-5.541.632c-.474.054-.906-.29-.96-.764l-.04-.352c-.054-.474.29-.906.764-.96l5.541-.632c.474-.054.906.29.96.764l.04.352c.054.473-.29.906-.764.96zm.355 3.113l-5.541.632c-.474.054-.906-.29-.96-.764l-.04-.352c-.054-.474.29-.906.764-.96l5.541-.632c.474-.054.906.29.96.764l.04.352c.054.474-.29.906-.764.96zm.355 3.114l-5.541.632c-.474.054-.906-.29-.96-.764l-.04-.352c-.054-.474.29-.906.764-.96l5.541-.632c.474-.054.906.29.96.764l.04.352c.054.474-.289.906-.764.96zm.356 3.114l-5.541.632c-.474.054-.906-.29-.96-.764l-.04-.352c-.054-.474.29-.906.764-.96l5.541-.632c.474-.054.906.29.96.764l.04.352c.054.474-.29.906-.764.96zm.355 3.114l-5.541.632c-.474.054-.906-.29-.96-.764l-.04-.352c-.054-.474.29-.906.764-.96l5.541-.632c.474-.054.906.29.96.764l.04.352c.054.473-.29.906-.764.96z"/><path fill="#292F33" d="M5.582 9.148l2.427-.277c.474-.054.818-.486.764-.96l-.04-.352c-.054-.474-.486-.818-.96-.764l-2.428.277c-.474.054-.818.486-.764.96l.04.352c.054.475.486.818.961.764zm.355 3.114l2.427-.277c.474-.054.818-.486.764-.96l-.04-.352c-.054-.474-.486-.818-.96-.764l-2.428.277c-.474.054-.818.486-.764.96l.04.352c.055.475.487.818.961.764zm.711 6.228l2.427-.277c.474-.054.818-.486.764-.96l-.04-.353c-.054-.474-.486-.818-.96-.764l-2.427.277c-.474.054-.818.486-.764.96l.04.352c.053.475.486.819.96.765zm.355 3.113l2.427-.277c.474-.054.818-.486.764-.96l-.04-.352c-.054-.474-.486-.818-.96-.764l-2.427.277c-.474.054-.818.486-.764.96l.04.352c.054.475.486.818.96.764zm.355 3.114l2.427-.277c.474-.054.818-.486.764-.96l-.04-.352c-.054-.474-.486-.818-.96-.764l-2.427.277c-.474.054-.818.486-.764.96l.04.352c.054.475.486.818.96.764zm.711 6.228l2.427-.277c.474-.054.818-.486.764-.96l-.04-.352c-.054-.474-.486-.818-.96-.764l-2.427.277c-.474.054-.818.486-.764.96l.04.352c.054.474.486.818.96.764z"/><path fill="#A0041E" d="M10.103 6.529l2.252-.257c.237-.027.409-.243.382-.48l-.02-.176c-.027-.237-.243-.409-.48-.382l-2.252.258c-.237.027-.409.243-.382.48l.02.176c.027.237.243.408.48.381zm.237 2.076l2.252-.257c.237-.027.409-.243.382-.48l-.02-.176c-.027-.237-.243-.409-.48-.382l-2.252.257c-.237.027-.409.244-.382.481l.02.176c.027.236.243.408.48.381zm.237 2.076l2.252-.257c.237-.027.409-.243.382-.48l-.02-.176c-.027-.237-.243-.409-.48-.382l-2.252.257c-.237.027-.409.243-.382.48l.02.176c.027.237.243.409.48.382zm.237 2.076l2.252-.257c.237-.027.409-.243.382-.48l-.02-.176c-.027-.237-.243-.409-.48-.382l-2.252.257c-.237.027-.409.243-.382.48l.02.176c.027.237.243.409.48.382zm.237 2.076l2.252-.257c.237-.027.409-.243.382-.48l-.02-.176c-.027-.237-.243-.409-.48-.382l-2.252.257c-.237.027-.409.243-.382.48l.02.176c.027.237.243.409.48.382zm.237 2.076l2.252-.257c.237-.027.409-.243.382-.48l-.02-.176c-.027-.237-.243-.409-.48-.382l-2.252.257c-.237.027-.409.243-.382.48l.02.176c.027.237.243.409.48.382zm.237 2.075l2.252-.257c.237-.027.409-.243.382-.48l-.02-.176c-.027-.237-.243-.409-.48-.382l-2.252.257c-.237.027-.409.243-.382.48l.02.176c.026.238.243.41.48.382zm.237 2.076l2.252-.257c.237-.027.409-.243.382-.48l-.02-.176c-.027-.237-.243-.409-.48-.382l-2.252.257c-.237.027-.409.243-.382.48l.02.176c.026.238.242.409.48.382zm.236 2.076l2.252-.257c.237-.027.409-.243.382-.48l-.02-.176c-.027-.237-.243-.409-.48-.382l-2.252.257c-.237.027-.409.243-.382.48l.02.176c.027.237.243.409.48.382zm.237 2.076l2.252-.257c.237-.027.409-.243.382-.48l-.02-.176c-.027-.237-.243-.409-.48-.382l-2.252.257c-.237.027-.409.243-.382.48l.02.176c.027.237.243.409.48.382zm.237 2.076l2.252-.257c.237-.027.409-.243.382-.48l-.02-.176c-.027-.237-.243-.409-.48-.382l-2.252.257c-.237.027-.409.243-.382.48l.02.176c.027.237.243.409.48.382zm.237 2.076l2.252-.257c.237-.027.409-.243.382-.48l-.02-.176c-.027-.237-.243-.409-.48-.382l-2.252.257c-.237.027-.409.243-.382.48l.02.176c.027.237.243.409.48.382z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1fab6.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1fab6.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1694F" d="M4.048 29.644c-.811-.558-1.541-4.073-.936-4.404.738-.402.686.835 2.255 2.362 1.569 1.528 6.47.913 7.708 1.326 1.363.455-6.385 2.533-9.027.716z"/><path fill="#D99E82" d="M5.367 27.603C4 22 4.655 18.919 5.433 16.861 6.8 13.24 16.699 5.169 23.8 2.637 25.678 1.967 31.62 1 35 1c.589 2.332-1.174 6.717-1.62 7.518-1.009 1.81-3.564 4.273-8.646 9.482-.252.258-5.119-.46-5.376-.191-.283.296 4.044 1.579 3.755 1.889-.738.79-1.495 1.624-2.268 2.507-.172.196-8.311-.923-8.484-.722-.232.27 7.501 1.862 7.266 2.14-.645.765-1.299 1.564-1.959 2.397-1.725 2.178-12.301 1.583-12.301 1.583z"/><path fill="#C1694F" d="M19.15 12.787c1.588.966 5.331 1.943 8.316 2.422 1.898-1.937 3.299-3.378 4.302-4.529-2.259-.49-5.742-1.3-7.487-2.087l-.816-.403-4.872 4.17.557.427z"/><path fill="#662113" d="M35.088 1.514c-.02-.179-.047-.352-.088-.514-.378 0-.792.014-1.225.036-3.438.178-8.307 1.006-9.975 1.601-.345.123-.702.27-1.059.418-.478.198-.964.416-1.459.654.356 1.481 1.126 3.144 1.807 4.013-1.703 1.323-3.317 2.704-4.836 4.115-5.655 5.248-10.021 10.872-13.005 15.242.04.174.076.344.12.524 0 0 .219.012.589.026 1.482-2.288 5.703-8.239 13.194-14.841 1.565-1.379 3.276-2.786 5.13-4.195 1.745.787 5.228 1.597 7.487 2.087.322-.369.606-.712.849-1.028.316-.412.569-.785.763-1.134.415-.746 1.969-4.594 1.708-7.004z"/><path fill="#C1694F" d="M35 1c-.369 0-.751-.003-1.138-.008-3.915 1.874-7.509 4.194-10.772 6.73-.68-.87-1.451-2.532-1.807-4.013-1.467.708-2.987 1.575-4.484 2.539.309 1.911.852 4.377 1.455 5.589C6.827 22.441.638 34.605.553 34.776c-.124.247-.023.547.224.671.071.036.147.053.223.053.184 0 .36-.102.448-.276.119-.238 12.144-23.883 33.659-33.72-.032-.174-.066-.343-.107-.504z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1fad0.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1fad0.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5C913B" d="M8.089 1s5.858.616 8.54 4.06c3.206 4.117.891 7.962.891 7.962s-4.825-.425-7.03-3.157C7.287 5.896 8.089 1 8.089 1z"/><path fill="#77B255" d="M21.901 1s.913 4.617-1.006 7.47c-2.293 3.41-5.676 2.54-5.676 2.54s-.813-3.784.691-6.106C18.096 1.53 21.901 1 21.901 1z"/><ellipse fill="#5864B7" cx="23.737" cy="11.536" rx="6.916" ry="6.027"/><path fill="#334372" d="M19.34 16.996c0-.851-.124-1.64-.34-2.373 1.231-.409 2.569-.641 3.983-.641 2.263 0 4.355.55 6.073 1.562C27.818 17.147 25.7 18 23.292 18c-1.476 0-2.834-.331-3.955-.949 0-.019.003-.036.003-.055z"/><path fill="#334372" d="M21.761 16.558c0 .27-.017.531-.04.789-2.836-.632-4.901-2.641-4.901-5.811 0-.778.129-1.483.359-2.119 2.732 1.246 4.582 3.739 4.582 7.141z"/><ellipse fill="#5864B7" cx="10.892" cy="16.558" rx="8.892" ry="8.035"/><path fill="#334372" d="M10.892 24.091c0-5.278 3.75-8.713 8.687-9.406.132.589.206 1.213.206 1.872 0 4.984-3.968 8.024-8.867 8.034-.008-.166-.026-.329-.026-.5z"/><ellipse transform="rotate(-60 17.507 21.52)" fill="#AA8DD8" cx="17.507" cy="21.519" rx="2.525" ry="2.5"/><ellipse fill="#5864B7" cx="22.44" cy="25.095" rx="10.56" ry="9.542"/><path fill="#334372" d="M17.043 19.746c.702-1.228 1.699-.59 2.881-1.366.95-.624 1.079-1.574 2.079-1.574s1.604.832 2.168 1.04c1.327.489 2.119-.228 3.119.772s-.772 1.901-.921 2.673c-.189.982 1.04 1.693.178 2.168-1.237.683-1.549-.556-3.547-.459-1.502.073-2.096 1.528-3.403 1.082-1.339-.456.475-1.752-.327-2.584-.981-1.018-2.702-.92-2.227-1.752zm-10.871-7.99c.445-1.036 1.065-.439 1.932-1.161.696-.581.712-1.345 1.504-1.436.792-.091 1.346.514 1.812.627 1.096.267 1.88-.08 2.541.329.959.594-.138 1.312-.186 1.937-.061.795.676 1.511.036 1.966-.919.654-1.492-.174-3.066.083-1.183.194-1.271 1.037-2.347.802-1.102-.24-.151-1.315-.861-1.901-.869-.716-1.667-.544-1.365-1.246zM24.39 6.679c.831-.296.818.377 1.693.49.703.091 1.15-.307 1.624.1.473.406.421 1.045.604 1.373.429.77 1.046 1.036 1.162 1.632.17.866-.826.618-1.21.924-.488.388-.508 1.191-1.108 1.066-.864-.18-.693-.948-1.678-1.714-.74-.576-1.27-.177-1.708-.919-.448-.76.674-.785.632-1.505-.051-.881-.573-1.247-.011-1.447z"/><ellipse fill="#253356" cx="22.667" cy="20.182" rx="3.758" ry="2.387"/><ellipse fill="#253356" cx="10.455" cy="11.945" rx="2.818" ry="1.791"/><ellipse transform="rotate(-40.137 26.699 9.278)" fill="#253356" cx="26.7" cy="9.278" rx="1.293" ry="2.035"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1fad2.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1fad2.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#909B50" d="M13.241 23.993c1.274-1.617 4.455-.891 6.416.535s3.089 4.337 1.901 5.941-4.158 1.96-6.416.416c-2.258-1.545-3.446-4.931-1.901-6.892zm4.455-20.792c2.802.342 3.208 2.97 2.792 5.703-.416 2.733-2.436 5.347-4.693 5.228-2.257-.119-3.149-3.446-2.792-6.238s2.258-4.99 4.693-4.693z"/><path fill="#C1694F" d="M1.3 32.876c-.08 0-.161-.016-.239-.048-.319-.133-.47-.498-.337-.817 2.393-5.756 6.062-8.645 8.72-10.055 1.57-.833 2.938-2.249 4.036-3.387.663-.687 1.236-1.28 1.767-1.672 1.357-1.003 6.335-4.495 6.547-4.643.282-.199.672-.129.87.153.198.283.13.672-.153.871-.051.036-5.177 3.631-6.521 4.625-.447.331-.986.889-1.61 1.536-1.16 1.201-2.604 2.696-4.35 3.622-2.476 1.314-5.9 4.018-8.151 9.432-.102.238-.334.383-.579.383z"/><path fill="#C1694F" d="M7.538 24.5c-.321 0-.594-.245-.622-.571-.01-.113-.241-2.802-.12-4.437.025-.345.316-.602.669-.578.344.026.603.326.578.669-.114 1.536.116 4.21.118 4.237.03.344-.225.646-.568.677l-.055.003zm6 .356c-.117 0-.234-.032-.339-.101l-.231-.15c-.837-.545-2.399-1.55-3.163-1.477-.345.042-.652-.209-.69-.553-.038-.343.209-.651.552-.689 1.129-.117 2.525.721 3.983 1.672l.228.148c.29.188.373.574.185.864-.12.186-.321.286-.525.286zm2.051-6.85c-.211 0-.411-.106-.521-.307-.534-.979.188-4.022.385-4.512.128-.321.493-.477.812-.348.32.128.476.492.348.812-.262.654-.631 3.017-.444 3.456.131.307.009.686-.292.831-.093.046-.192.068-.288.068z"/><path fill="#C1694F" d="M19.774 20.163c-.127 0-.256-.039-.367-.119-1.576-1.148-2.984-1.563-4.306-1.263-.339.075-.671-.136-.748-.472-.076-.337.136-.671.472-.748 1.689-.382 3.431.099 5.317 1.471.278.203.34.595.138.874-.122.168-.312.257-.506.257zm3.625-3.624c-.069 0-.14-.011-.208-.036-1.02-.36-3.124-.883-4.528-.573-.335.073-.67-.138-.746-.475-.075-.337.138-.671.475-.746 2.074-.457 4.901.503 5.215.615.325.115.496.472.382.797-.091.258-.332.418-.59.418z"/><path fill="#3E721D" d="M34.449 2.845c2.5 1.136-1.426 5.406-3.624 6.653-2.198 1.248-10.455 5.406-10.99 5.049s3.089-6.772 6.713-9.148 6.594-3.148 7.901-2.554zM18.944 18.587c1.344-.504 6.772 1.366 9.386 3.149 2.614 1.782 4.04 4.634 2.911 5.584s-5.822.238-8.792-2.436-4.456-5.94-3.505-6.297zM9.617 2.964c2.225-.384 2.851 4.218 2.139 7.782S7.954 21.38 7.419 21.498c-.535.119-2.911-5.822-2.495-10.158.416-4.337 2.97-8.079 4.693-8.376z"/><path fill="#909B50" d="M32.341 19.492c-.8 2.707-3.459 2.674-6.086 1.812s-4.871-3.285-4.381-5.492c.49-2.207 3.918-2.536 6.613-1.724 2.695.813 4.549 3.051 3.854 5.404z"/><path fill="#C7CC62" d="M27.109 14.505c1.928.463 3.149 1.248 3.505 1.842.356.594-.059 1.248-.95.594-.891-.653-3.03-1.485-4.099-1.663-1.07-.179.059-1.13 1.544-.773zM16 4.228c1.399-.646 2.673 0 2.614.416-.059.416-1.842 0-2.673.891s-1.96 1.307-1.723.653 1.01-1.604 1.782-1.96zm1.544 20.019c1.432.102 2.97 2.198 2.436 2.614s-1.663-1.663-2.733-1.901c-1.069-.237-1.366-.831.297-.713z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/1fad6.svg b/browser/components/torpreferences/content/bridgemoji/svgs/1fad6.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><ellipse fill="#269" cx="17.5" cy="31.5" rx="8" ry="2"/><path fill="#3B88C3" d="M11.173 31.777s3.297.757 6.371.668c2.539-.074 5.614-.356 6.505-.757 0 0-1.069 1.381-6.416 1.381s-6.46-1.292-6.46-1.292z"/><ellipse fill="#269" cx="17.5" cy="15.25" rx="8.5" ry="2.25"/><path fill="#3B88C3" d="M33.582 16.654c3.518-.202 2.185 1.133 1.072 1.712-.505.262-1.515 1.738-2.098 4.234-.455 1.948-.847 5.658-5.213 5.391-2.994-.183-.045-7.084-.045-7.084s1.871 3.119 3.876-1.47c.895-2.049 1.409-2.726 2.408-2.783zM5.829 28.351c-1.112 0-2.138-.351-3.021-1.04C.858 25.789.167 22.812.167 21c0-2.422 1.331-4.875 3.875-4.875 1.546 0 2.209.537 2.911 1.104.394.319.801.648 1.48.988l-.782 1.931c-.849-.424-1.375-.85-1.798-1.192-.607-.491-.884-.715-1.811-.715-1.46 0-2.125 1.254-2.125 2.759 0 1.531.608 3.551 1.967 4.611.822.643 1.815.822 2.945.54l.425 2.017c-.486.122-.963.183-1.425.183z"/><path fill="#3B88C3" d="M29 24.727C29 31.254 22.1 32 17.5 32S6 31.254 6 24.727 10.775 12 17.5 12 29 18.2 29 24.727z"/><path fill="#269" d="M29.485 26.965c-.489.039-1.069-.757-1.069-.757-.847 2.049-3.342 4.589-11.139 4.589-6.995 0-9.579-2.139-10.96-3.965 0 0 .33 1.202-1.782.757-.648-.137-1.926-.768-2.966-1.658.34.524.749.998 1.239 1.38.883.689 1.91 1.04 3.021 1.04.354 0 .718-.047 1.087-.118 2.02 3.3 6.932 3.847 10.521 3.847 3.679 0 8.883-.566 10.798-4.097 3.525-.265 3.898-3.577 4.32-5.382.439-1.88 1.12-3.18 1.645-3.82-.03.013-.051.016-.082.031-1.826.891-1.871 7.93-4.633 8.153zM4.891 17.698c-.64-.362-1.96-.223-2.629.891-.442.736-.471 1.642-.34 2.316.028-1.462.691-2.664 2.12-2.664.926 0 1.204.224 1.811.715.289.234.636.508 1.092.793l.174-.492s-1.203-.98-2.228-1.559zm19.663-3.704c.284.159.446.328.446.506 0 .828-3.358 1.5-7.5 1.5s-7.5-.672-7.5-1.5c0-.178.162-.347.446-.506C9.533 14.353 9 14.785 9 15.25c0 1.243 3.806 2.25 8.5 2.25s8.5-1.007 8.5-2.25c0-.465-.533-.897-1.446-1.256z"/><ellipse fill="#269" cx="17.5" cy="11" rx="2.8" ry="1.5"/><ellipse fill="#269" cx="34.364" cy="17.141" rx="1.047" ry=".334"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/23f0.svg b/browser/components/torpreferences/content/bridgemoji/svgs/23f0.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M20 6.042c0 1.112-.903 2.014-2 2.014s-2-.902-2-2.014V2.014C16 .901 16.903 0 18 0s2 .901 2 2.014v4.028z"/><path fill="#FFAC33" d="M9.18 36c-.224 0-.452-.052-.666-.159-.736-.374-1.035-1.28-.667-2.027l8.94-18.127c.252-.512.768-.835 1.333-.835s1.081.323 1.333.835l8.941 18.127c.368.747.07 1.653-.666 2.027-.736.372-1.631.07-1.999-.676L18.121 19.74l-7.607 15.425c-.262.529-.788.835-1.334.835z"/><path fill="#58595B" d="M18.121 20.392c-.263 0-.516-.106-.702-.295L3.512 5.998c-.388-.394-.388-1.031 0-1.424s1.017-.393 1.404 0L18.121 17.96 31.324 4.573c.389-.393 1.017-.393 1.405 0 .388.394.388 1.031 0 1.424l-13.905 14.1c-.187.188-.439.295-.703.295z"/><path fill="#DD2E44" d="M34.015 19.385c0 8.898-7.115 16.111-15.894 16.111-8.777 0-15.893-7.213-15.893-16.111 0-8.9 7.116-16.113 15.893-16.113 8.778-.001 15.894 7.213 15.894 16.113z"/><path fill="#E6E7E8" d="M30.041 19.385c0 6.674-5.335 12.084-11.92 12.084-6.583 0-11.919-5.41-11.919-12.084C6.202 12.71 11.538 7.3 18.121 7.3c6.585-.001 11.92 5.41 11.92 12.085z"/><path fill="#FFCC4D" d="M30.04 1.257c-1.646 0-3.135.676-4.214 1.77l8.429 8.544C35.333 10.478 36 8.968 36 7.299c0-3.336-2.669-6.042-5.96-6.042zm-24.08 0c1.645 0 3.135.676 4.214 1.77l-8.429 8.544C.667 10.478 0 8.968 0 7.299c0-3.336 2.668-6.042 5.96-6.042z"/><path fill="#414042" d="M23 20h-5c-.552 0-1-.447-1-1v-9c0-.552.448-1 1-1s1 .448 1 1v8h4c.553 0 1 .448 1 1 0 .553-.447 1-1 1z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/2600.svg b/browser/components/torpreferences/content/bridgemoji/svgs/2600.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFAC33" d="M16 2s0-2 2-2 2 2 2 2v2s0 2-2 2-2-2-2-2V2zm18 14s2 0 2 2-2 2-2 2h-2s-2 0-2-2 2-2 2-2h2zM4 16s2 0 2 2-2 2-2 2H2s-2 0-2-2 2-2 2-2h2zm5.121-8.707s1.414 1.414 0 2.828-2.828 0-2.828 0L4.878 8.708s-1.414-1.414 0-2.829c1.415-1.414 2.829 0 2.829 0l1.414 1.414zm21 21s1.414 1.414 0 2.828-2.828 0-2.828 0l-1.414-1.414s-1.414-1.414 0-2.828 2.828 0 2.828 0l1.414 1.414zm-.413-18.172s-1.414 1.414-2.828 0 0-2.828 0-2.828l1.414-1.414s1.414-1.414 2.828 0 0 2.828 0 2.828l-1.414 1.414zm-21 21s-1.414 1.414-2.828 0 0-2.828 0-2.828l1.414-1.414s1.414-1.414 2.828 0 0 2.828 0 2.828l-1.414 1.414zM16 32s0-2 2-2 2 2 2 2v2s0 2-2 2-2-2-2-2v-2z"/><circle fill="#FFAC33" cx="18" cy="18" r="10"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/2602.svg b/browser/components/torpreferences/content/bridgemoji/svgs/2602.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#66757F" d="M9 28.5c0-.828.672-1.5 1.5-1.5s1.5.672 1.5 1.5v.5s0 3 3 3 3-3 3-3V3.5c0-.829.671-1.5 1.5-1.5s1.5.671 1.5 1.5V29s0 6-6 6-6-6-6-6v-.5z"/><path fill="#744EAA" d="M19.5 4C28.612 4 36 9.82 36 17c0 0 0 2-1 2s-3-2-3-2H7s-2 2-3 2-1-2-1-2C3 9.82 10.387 4 19.5 4z"/><path fill="#9266CC" d="M19.5 4C26.403 4 32 9.82 32 17c0 0 0 2-2 2s-5-2-5-2H14s-3 2-5 2-2-2-2-2C7 9.82 12.596 4 19.5 4z"/><path fill="#744EAA" d="M19.5 4C23.09 4 25 9.82 25 17c0 0-3 2-5 2h-1c-2 0-5-2-5-2 0-7.18 1.91-13 5.5-13z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/2604.svg b/browser/components/torpreferences/content/bridgemoji/svgs/2604.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5DADEC" d="M33.662.049c-1.148-.077-5.869-.75-17.522 6.665C4.488 14.129-1.646 26.609 3.604 33.329c1.104 1.413 5.518 4.283 10.682.53 3.247-2.359 4.242-7.52 7.15-14.434 1.986-4.723 6.444-13.594 12.668-17.611 1.942-.97.22-1.72-.442-1.765z"/><path fill="#8CCAF7" d="M16.625 13.651c-.265-1.059.971-4.281 1.324-5.164-6.437 2.929-12.509 11.616-12.47 13.18.006.227.139.305.42.193 5.398-2.166 8.882 1.07 9.807 3.751.095.274.214.414.339.44.171.036.352-.15.494-.557C18.565 19.675 23.112 9.055 27.835 5c-2.648 1.28-10.106 6.797-11.21 8.651z"/><path fill="#BDDDF4" d="M14.242 12.989c-1.737.827-7.275 6.192-8.762 8.678.006.227.139.305.42.193 5.398-2.166 8.882 1.07 9.807 3.751.095.274.214.414.339.44.057-2.328-.092-7.616 2.213-11.561-4.061 3.707-5.076 3.618-4.017-1.501z"/><path fill="#F5F8FA" d="M8.725 23.663c-2.925 0-5.297 2.371-5.297 5.297 0 2.925 2.372 5.296 5.297 5.296s5.296-2.371 5.296-5.296c0-2.926-2.371-5.297-5.296-5.297z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/260e.svg b/browser/components/torpreferences/content/bridgemoji/svgs/260e.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#BE1931" d="M36 11.5C36 8.462 33 4 18 4S0 8.462 0 11.5c0 .045.019.076.022.119-.012.196-.022.402-.022.631C0 14.873 2.239 16 5 16s5-1.127 5-3.75c0-.218-.021-.412-.051-.597C12.374 11.302 15.102 11 18 11s5.626.302 8.051.653c-.03.185-.051.379-.051.597 0 2.623 2.238 3.75 5 3.75s5-1.127 5-3.75c0-.225-.009-.429-.024-.621.004-.046.024-.08.024-.129z"/><path fill="#DD2E44" d="M34.934 23c-.482-1.031-2.31-4.19-3.968-7.007C29.408 13.346 27 11 25 11V9c0-1.104-.896-2-2-2s-2 .896-2 2v2h-6V9c0-1.104-.896-2-2-2s-2 .896-2 2v2c-2 0-4.41 2.351-5.97 5-1.657 2.815-3.483 5.97-3.964 7C.488 24.239 0 25 0 27s1.791 5 4 5h28c2.209 0 4-3 4-5s-.448-2.676-1.066-4z"/><path fill="#FFF" d="M20.046 14.818c0 .452-.916.818-2.046.818s-2.045-.366-2.045-.818c0-.452.915-.818 2.045-.818s2.046.366 2.046.818zm-4.91 0c0 .452-.915.818-2.045.818s-2.045-.366-2.045-.818c0-.452.916-.818 2.045-.818s2.045.366 2.045.818zm9.818 0c0 .452-.915.818-2.045.818s-2.046-.366-2.046-.818c0-.452.916-.818 2.046-.818s2.045.366 2.045.818zm-4.5 2.864c0 .679-1.099 1.228-2.454 1.228s-2.455-.549-2.455-1.228c0-.677 1.099-1.227 2.455-1.227s2.454.549 2.454 1.227zm5.728 0c0 .679-1.1 1.228-2.454 1.228-1.355 0-2.455-.549-2.455-1.228 0-.677 1.1-1.227 2.455-1.227 1.354 0 2.454.549 2.454 1.227zm-11.455 0c0 .679-1.099 1.228-2.454 1.228-1.355 0-2.455-.549-2.455-1.228 0-.677 1.099-1.227 2.455-1.227 1.355 0 2.454.549 2.454 1.227zm6.545 3.681C21.272 22.269 19.807 23 18 23c-1.807 0-3.273-.731-3.273-1.637 0-.903 1.466-1.636 3.273-1.636 1.807.001 3.272.733 3.272 1.636zm7.365 0c0 .905-1.467 1.637-3.273 1.637-1.807 0-3.273-.731-3.273-1.637 0-.903 1.466-1.636 3.273-1.636 1.806.001 3.273.733 3.273 1.636zm-14.728 0c0 .905-1.466 1.637-3.273 1.637-1.807 0-3.272-.731-3.272-1.637 0-.903 1.465-1.636 3.272-1.636 1.807.001 3.273.733 3.273 1.636z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/2693.svg b/browser/components/torpreferences/content/bridgemoji/svgs/2693.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#269" d="M30.5 18.572L26 25h2.575c-1.13 3.988-4.445 7.05-8.575 7.81V17h3c1.104 0 2-.896 2-2s-.896-2-2-2h-3v-1.349h-4V13h-3c-1.104 0-2 .896-2 2s.896 2 2 2h3v15.81c-4.13-.76-7.445-3.821-8.575-7.81H10l-4.5-6.428L1 25h3.33C5.705 31.289 11.299 36 18 36s12.295-4.711 13.67-11H35l-4.5-6.428z"/><path fill="#269" d="M18 0c-3.314 0-6 2.686-6 6s2.686 6 6 6 6-2.686 6-6-2.686-6-6-6zm0 9c-1.657 0-3-1.343-3-3s1.343-3 3-3 3 1.343 3 3-1.343 3-3 3z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/2696.svg b/browser/components/torpreferences/content/bridgemoji/svgs/2696.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#66757F" d="M3.923 22.923c-.212.511-.798.751-1.308.539-.51-.213-.751-.798-.539-1.308L6.693 9.616c.212-.51.798-.751 1.307-.539.51.213.751.798.539 1.308L3.923 22.923z"/><path fill="#66757F" d="M13.923 22.154c.212.51-.029 1.095-.539 1.308-.51.212-1.095-.028-1.308-.539L7.461 10.385c-.212-.51.029-1.095.539-1.308.51-.212 1.095.029 1.308.539l4.615 12.538zm10.001.769c-.213.511-.799.751-1.309.539-.51-.213-.75-.798-.538-1.308l4.616-12.539c.212-.509.797-.75 1.307-.538.51.213.752.798.539 1.308l-4.615 12.538z"/><path fill="#66757F" d="M33.923 22.154c.212.51-.028 1.095-.538 1.308-.51.212-1.096-.028-1.309-.539l-4.615-12.538c-.213-.51.029-1.095.539-1.308.51-.212 1.095.029 1.307.539l4.616 12.538z"/><path fill="#FFAC33" d="M14.857 22H1.143C.512 22 0 22.511 0 23.143c0 2.524 3.582 4.571 8 4.571s8-2.047 8-4.571c0-.632-.512-1.143-1.143-1.143zM24 34H12c-.552 0-1-.447-1-1 0-2.209 3.134-4 7-4s7 1.791 7 4c0 .553-.447 1-1 1zm10.857-12H21.143c-.632 0-1.143.511-1.143 1.143 0 2.524 3.581 4.571 8 4.571s8-2.047 8-4.571c0-.632-.511-1.143-1.143-1.143z"/><path fill="#FFAC33" d="M19 3c0-.552-.447-1-1-1-.552 0-1 .448-1 1v27c0 .553.448 1 1 1 .553 0 1-.447 1-1V3z"/><circle fill="#FFAC33" cx="18" cy="4" r="2"/><circle fill="#FFAC33" cx="8" cy="10" r="2"/><circle fill="#FFAC33" cx="28" cy="10" r="2"/><path fill="#FFAC33" d="M28 10c0 1.104 0 0-10 0S8 11.104 8 10s3-4 10-4 10 2.896 10 4z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/26bd.svg b/browser/components/torpreferences/content/bridgemoji/svgs/26bd.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#F5F8FA" cx="18" cy="18" r="18"/><path d="M18 11c-.552 0-1-.448-1-1V3c0-.552.448-1 1-1s1 .448 1 1v7c0 .552-.448 1-1 1zm-6.583 4.5c-.1 0-.202-.015-.302-.047l-8.041-2.542c-.527-.167-.819-.728-.652-1.255.166-.527.73-.818 1.255-.652l8.042 2.542c.527.167.819.729.652 1.255-.136.426-.53.699-.954.699zm13.625-.291c-.434 0-.833-.285-.96-.722-.154-.531.151-1.085.682-1.239l6.75-1.958c.531-.153 1.085.153 1.238.682.154.531-.151 1.085-.682 1.239l-6.75 1.958c-.092.027-.186.04-.278.04zm2.001 14.958c-.306 0-.606-.14-.803-.403l-5.459-7.333c-.33-.442-.238-1.069.205-1.399.442-.331 1.069-.238 1.399.205l5.459 7.333c.33.442.238 1.069-.205 1.399-.179.134-.389.198-.596.198zm-18.294-.083c-.197 0-.395-.058-.57-.179-.454-.316-.565-.938-.25-1.392l5.125-7.375c.315-.454.938-.566 1.392-.251.454.315.565.939.25 1.392l-5.125 7.375c-.194.281-.506.43-.822.43zM3.5 27.062c-.44 0-.844-.293-.965-.738L.347 18.262c-.145-.533.17-1.082.704-1.227.535-.141 1.083.171 1.227.704l2.188 8.062c.145.533-.17 1.082-.704 1.226-.088.025-.176.035-.262.035zM22 34h-9c-.552 0-1-.447-1-1s.448-1 1-1h9c.553 0 1 .447 1 1s-.447 1-1 1zm10.126-6.875c-.079 0-.16-.009-.24-.029-.536-.132-.864-.674-.731-1.21l2.125-8.625c.133-.536.679-.862 1.21-.732.536.132.864.674.731 1.211l-2.125 8.625c-.113.455-.521.76-.97.76zM30.312 7.688c-.17 0-.342-.043-.5-.134L22.25 3.179c-.478-.277-.642-.888-.364-1.367.275-.478.886-.643 1.366-.365l7.562 4.375c.478.277.642.888.364 1.367-.185.32-.521.499-.866.499zm-24.811 0c-.312 0-.618-.145-.813-.417-.322-.45-.22-1.074.229-1.396l6.188-4.438c.449-.322 1.074-.219 1.396.229.322.449.219 1.074-.229 1.396L6.083 7.5c-.177.126-.38.188-.582.188z" fill="#CCD6DD"/><path d="M25.493 13.516l-7.208-5.083c-.348-.245-.814-.243-1.161.006l-7.167 5.167c-.343.248-.494.684-.375 1.091l2.5 8.583c.124.426.515.72.96.72H22c.43 0 .81-.274.948-.681l2.917-8.667c.141-.419-.011-.881-.372-1.136zM1.292 19.542c.058 0 .117-.005.175-.016.294-.052.55-.233.697-.494l3.375-6c.051-.091.087-.188.108-.291L6.98 6.2c.06-.294-.016-.6-.206-.832C6.584 5.135 6.3 5 6 5h-.428C2.145 8.277 0 12.884 0 18c0 .266.028.525.04.788l.602.514c.182.156.413.24.65.24zm9.325-16.547c.106.219.313.373.553.412l6.375 1.042c.04.006.081.01.121.01.04 0 .081-.003.122-.01l6.084-1c.2-.033.38-.146.495-.314.116-.168.158-.375.118-.575l-.292-1.443C22.26.407 20.18 0 18 0c-2.425 0-4.734.486-6.845 1.356l-.521.95c-.117.213-.123.47-.017.689zm20.517 2.724l-1.504-.095c-.228-.013-.455.076-.609.249-.152.173-.218.402-.175.63l1.167 6.198c.017.086.048.148.093.224 1.492 2.504 3.152 5.301 3.381 5.782.024.084.062.079.114.151.14.195.372.142.612.142h.007c.198 0 .323.094 1.768-.753.001-.083.012-.164.012-.247 0-4.753-1.856-9.064-4.866-12.281zM14.541 33.376c.011-.199-.058-.395-.191-.544l-4.5-5c-.06-.066-.131-.122-.211-.163-5.885-3.069-5.994-3.105-6.066-3.13-.078-.025-.161-.039-.242-.039-.537 0-.695.065-1.185 2.024 2.236 4.149 6.053 7.316 10.644 8.703l1.5-1.333c.149-.132.239-.319.251-.518zm17.833-8.567c-.189-.08-.405-.078-.592.005l-6.083 2.667c-.106.046-.2.116-.274.205l-4.25 5.083c-.129.154-.19.352-.172.552.02.2.117.384.272.51.683.559 1.261 1.03 1.767 1.44 4.437-1.294 8.154-4.248 10.454-8.146l-.712-1.889c-.072-.193-.221-.347-.41-.427z" fill="#31373D"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/26f2.svg b/browser/components/torpreferences/content/bridgemoji/svgs/26f2.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#99AAB5" d="M1 22.923v6.538C1 33.073 8.611 36 18 36s17-2.927 17-6.538v-6.538H1z"/><ellipse fill="#E1E8ED" cx="18" cy="22.923" rx="17" ry="6.538"/><path fill="#AAB8C2" d="M18 20.308c6.7 0 12.314 1.668 13.913 3.923.297-.419.472-.855.472-1.308 0-2.889-6.44-5.231-14.385-5.231S3.615 20.034 3.615 22.923c0 .452.175.889.472 1.308C5.686 21.976 11.3 20.308 18 20.308z"/><ellipse fill="#3B88C3" cx="18" cy="24.231" rx="13.913" ry="3.923"/><path fill="#50A5E6" d="M18 22.128c-4.497 0-9.625 1.285-9.625 2.103 0 .818 5.129 2.102 9.625 2.102s9.625-1.284 9.625-2.102c0-.818-5.128-2.103-9.625-2.103z"/><path fill="#E1E8ED" d="M15 22.615V24c0 .553 1.343 1 3 1s3-.447 3-1v-1.385h-6z"/><ellipse fill="#AAB8C2" cx="18" cy="22.615" rx="3" ry="1"/><path fill="#1C6399" d="M9 15.786c-.552 0-1-.448-1-1V13.5C8 10.467 10.467 8 13.5 8s5.5 2.467 5.5 5.5c0 .552-.447 1-1 1-.552 0-1-.448-1-1 0-1.93-1.57-3.5-3.5-3.5S10 11.57 10 13.5v1.286c0 .552-.448 1-1 1z"/><path fill="#88C9F9" d="M26 18c-.553 0-1-.448-1-1v-1.143c0-1.654-1.346-3-3-3s-3 1.346-3 3c0 .552-.447 1-1 1-.552 0-1-.448-1-1 0-2.757 2.243-5 5-5s5 2.243 5 5V17c0 .552-.447 1-1 1z"/><path fill="#1C6399" d="M32 11.125c-.553 0-1-.448-1-1 0-3.309-2.691-6-6-6s-6 2.691-6 6c0 .552-.447 1-1 1-.552 0-1-.448-1-1 0-4.411 3.589-8 8-8s8 3.589 8 8c0 .552-.447 1-1 1z"/><path fill="#3B94D9" d="M17 22.659h2V8c0-4.411-3.589-8-8-8S3 3.589 3 8c0 .552.448 1 1 1s1-.448 1-1c0-3.309 2.691-6 6-6s6 2.691 6 6v14.659z"/><circle fill="#1C6399" cx="32" cy="14" r="1"/><circle fill="#BBDDF5" cx="26" cy="21" r="1"/><circle fill="#BBDDF5" cx="33" cy="2" r="1"/><circle fill="#F2F9FF" cx="14" cy="20" r="1"/><circle fill="#50A5E6" cx="26" cy="9" r="1"/><circle fill="#1C6399" cx="20" cy="1" r="1"/><circle fill="#1C6399" cx="9" cy="18" r="1"/><circle fill="#3B94D9" cx="4" cy="13" r="1"/><circle fill="#88C9F9" cx="11" cy="5" r="1"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/26f5.svg b/browser/components/torpreferences/content/bridgemoji/svgs/26f5.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#A7A9AC" d="M20 26c0 .553-.447 1-1 1-.552 0-1-.447-1-1V1c0-.552.448-1 1-1 .553 0 1 .448 1 1v25z"/><path fill="#D1D3D4" d="M3 24h31v8H12c-6 0-9-8-9-8z"/><path fill="#55ACEE" d="M0 30h36v6H0z"/><path fill="#FFAC33" d="M5 22s2-5 5-9 8-8 8-8-1 11-1 16v1s-3-1-6-1-6 1-6 1z"/><path fill="#F4900C" d="M20 2s6 6 9 11c2.771 4.618 4 9 4 9s-3-1-6-1-6 1-6 1v-1c0-9-1-19-1-19z"/><path fill="#E6E7E8" d="M2 24c-.552 0-1 .447-1 1s.448 1 1 1h33v-2H2z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/2708.svg b/browser/components/torpreferences/content/bridgemoji/svgs/2708.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#66757F" d="M30 23.828c-.391.392-1.023.392-1.414 0l-1.414-1.414c-.392-.391-.392-1.024 0-1.414L30 18.172c.391-.391 1.023-.391 1.414 0l1.414 1.414c.392.391.392 1.024 0 1.414L30 23.828zm-15-15c-.391.392-1.023.392-1.414 0l-1.414-1.414c-.392-.391-.392-1.023 0-1.414L15 3.172c.391-.391 1.023-.391 1.414 0l1.414 1.414c.392.391.392 1.023 0 1.414L15 8.828z"/><path fill="#55ACEE" d="M2 22c2 0 11 1 11 1s1 9 1 11-2 2-3 1-4-6-4-6-5-3-6-4-1-3 1-3zM4 6.039C7 6 29 7 29 7s.924 22 .962 25c.038 3-2.763 4.002-3.862.001S21 15 21 15 7.045 10.583 3.995 9.898C0 9 .999 6.077 4 6.039z"/><path fill="#CCD6DD" d="M27 3c2-2 7-3 8-2s0 6-2 8-19 18-19 18-6.5 4.5-8 3 3-8 3-8S25 5 27 3z"/><path fill="#66757F" d="M14 22s.5.5-4 5-5 4-5 4-.5-.5 4-5 5-4 5-4zM29 4c1.657 0 3 1.343 3 3h.805c.114-.315.195-.645.195-1 0-1.657-1.343-3-3-3-.355 0-.685.081-1 .195V4z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/270f.svg b/browser/components/torpreferences/content/bridgemoji/svgs/270f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D99E82" d="M35.222 33.598c-.647-2.101-1.705-6.059-2.325-7.566-.501-1.216-.969-2.438-1.544-3.014-.575-.575-1.553-.53-2.143.058 0 0-2.469 1.675-3.354 2.783-1.108.882-2.785 3.357-2.785 3.357-.59.59-.635 1.567-.06 2.143.576.575 1.798 1.043 3.015 1.544 1.506.62 5.465 1.676 7.566 2.325.359.11 1.74-1.271 1.63-1.63z"/><path fill="#EA596E" d="M13.643 5.308c1.151 1.151 1.151 3.016 0 4.167l-4.167 4.168c-1.151 1.15-3.018 1.15-4.167 0L1.141 9.475c-1.15-1.151-1.15-3.016 0-4.167l4.167-4.167c1.15-1.151 3.016-1.151 4.167 0l4.168 4.167z"/><path fill="#FFCC4D" d="M31.353 23.018l-4.17 4.17-4.163 4.165L7.392 15.726l8.335-8.334 15.626 15.626z"/><path fill="#292F33" d="M32.078 34.763s2.709 1.489 3.441.757c.732-.732-.765-3.435-.765-3.435s-2.566.048-2.676 2.678z"/><path fill="#CCD6DD" d="M2.183 10.517l8.335-8.335 5.208 5.209-8.334 8.335z"/><path fill="#99AAB5" d="M3.225 11.558l8.334-8.334 1.042 1.042L4.267 12.6zm2.083 2.086l8.335-8.335 1.042 1.042-8.335 8.334z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/2728.svg b/browser/components/torpreferences/content/bridgemoji/svgs/2728.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFAC33" d="M34.347 16.893l-8.899-3.294-3.323-10.891c-.128-.42-.517-.708-.956-.708-.439 0-.828.288-.956.708l-3.322 10.891-8.9 3.294c-.393.146-.653.519-.653.938 0 .418.26.793.653.938l8.895 3.293 3.324 11.223c.126.424.516.715.959.715.442 0 .833-.291.959-.716l3.324-11.223 8.896-3.293c.391-.144.652-.518.652-.937 0-.418-.261-.792-.653-.938z"/><path fill="#FFCC4D" d="M14.347 27.894l-2.314-.856-.9-3.3c-.118-.436-.513-.738-.964-.738-.451 0-.846.302-.965.737l-.9 3.3-2.313.856c-.393.145-.653.52-.653.938 0 .418.26.793.653.938l2.301.853.907 3.622c.112.444.511.756.97.756.459 0 .858-.312.97-.757l.907-3.622 2.301-.853c.393-.144.653-.519.653-.937 0-.418-.26-.793-.653-.937zM10.009 6.231l-2.364-.875-.876-2.365c-.145-.393-.519-.653-.938-.653-.418 0-.792.26-.938.653l-.875 2.365-2.365.875c-.393.146-.653.52-.653.938 0 .418.26.793.653.938l2.365.875.875 2.365c.146.393.52.653.938.653.418 0 .792-.26.938-.653l.875-2.365 2.365-.875c.393-.146.653-.52.653-.938 0-.418-.26-.792-.653-.938z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/2744.svg b/browser/components/torpreferences/content/bridgemoji/svgs/2744.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#88C9F9" d="M19 27.586V8.415l4.828-4.829s.707-.707 0-1.415c-.707-.707-1.414 0-1.414 0L19 5.586V1s0-1-1-1-1 1-1 1v4.586l-3.414-3.415s-.707-.707-1.414 0c-.707.708 0 1.415 0 1.415L17 8.415v19.171l-4.828 4.828s-.707.707 0 1.414 1.414 0 1.414 0L17 30.414V35s0 1 1 1 1-1 1-1v-4.586l3.414 3.414s.707.707 1.414 0 0-1.414 0-1.414L19 27.586z"/><path fill="#88C9F9" d="M34.622 20.866c-.259-.966-1.225-.707-1.225-.707l-6.595 1.767-16.603-9.586-1.767-6.595s-.259-.966-1.225-.707C6.24 5.297 6.5 6.263 6.5 6.263l1.25 4.664-3.972-2.294s-.866-.5-1.366.366c-.5.866.366 1.366.366 1.366l3.971 2.293-4.664 1.249s-.967.259-.707 1.225c.259.967 1.225.708 1.225.708l6.596-1.767 16.603 9.586 1.767 6.596s.259.966 1.225.707c.966-.26.707-1.225.707-1.225l-1.25-4.664 3.972 2.293s.867.5 1.367-.365c.5-.867-.367-1.367-.367-1.367l-3.971-2.293 4.663-1.249c0-.001.966-.26.707-1.226z"/><path fill="#88C9F9" d="M33.915 13.907l-4.664-1.25 3.972-2.293s.867-.501.367-1.367c-.501-.867-1.367-.366-1.367-.366l-3.971 2.292 1.249-4.663s.259-.966-.707-1.225c-.966-.259-1.225.707-1.225.707l-1.767 6.595-16.604 9.589-6.594-1.768s-.966-.259-1.225.707c-.26.967.707 1.225.707 1.225l4.663 1.249-3.971 2.293s-.865.501-.365 1.367c.5.865 1.365.365 1.365.365l3.972-2.293-1.25 4.663s-.259.967.707 1.225c.967.26 1.226-.706 1.226-.706l1.768-6.597 16.604-9.585 6.595 1.768s.966.259 1.225-.707c.255-.967-.71-1.225-.71-1.225z"/></svg> +\ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/svgs/README.txt b/browser/components/torpreferences/content/bridgemoji/svgs/README.txt @@ -0,0 +1 @@ +Generated by tools/torbrowser/update_emojis.py on 2024-08-06 diff --git a/browser/components/torpreferences/content/builtinBridgeDialog.js b/browser/components/torpreferences/content/builtinBridgeDialog.js @@ -0,0 +1,139 @@ +"use strict"; + +const { TorSettings, TorBridgeSource } = ChromeUtils.importESModule( + "resource://gre/modules/TorSettings.sys.mjs" +); + +const { TorConnect, TorConnectStage, TorConnectTopics } = + ChromeUtils.importESModule("resource://gre/modules/TorConnect.sys.mjs"); + +const gBuiltinBridgeDialog = { + init() { + this._result = window.arguments[0]; + + this._radioGroup = document.getElementById( + "torPreferences-builtinBridge-typeSelection" + ); + + const currentBuiltinType = + TorSettings.bridges.enabled && + TorSettings.bridges.source == TorBridgeSource.BuiltIn + ? TorSettings.bridges.builtin_type + : null; + + for (const optionEl of this._radioGroup.querySelectorAll( + ".builtin-bridges-option" + )) { + const radio = optionEl.querySelector("radio"); + const type = radio.value; + optionEl.hidden = !TorSettings.builtinBridgeTypes.includes(type); + + const descriptionEl = optionEl.querySelector( + ".builtin-bridges-option-description" + ); + // Set an id to be used for the aria-describedby. + descriptionEl.id = `builtin-bridges-description-${type}`; + const currentBadge = optionEl.querySelector(".bridge-status-badge"); + if (type === currentBuiltinType) { + const currentLabelEl = optionEl.querySelector( + ".torPreferences-current-bridge-label" + ); + currentLabelEl.id = `builtin-bridges-current-${type}`; + // Described by both the current badge and the full description. + // These will be concatenated together in the screen reader output. + radio.setAttribute( + "aria-describedby", + `${currentLabelEl.id} ${descriptionEl.id}` + ); + // Make visible. + currentBadge.classList.add("bridge-status-current-built-in"); + } else { + // No visible badge. + radio.setAttribute("aria-describedby", descriptionEl.id); + currentBadge.classList.remove("bridge-status-current-built-in"); + } + } + + if (currentBuiltinType) { + this._radioGroup.value = currentBuiltinType; + } else { + this._radioGroup.selectedItem = null; + } + + this._radioGroup.addEventListener("select", () => this.onSelectChange()); + + const dialog = document.getElementById( + "torPreferences-builtinBridge-dialog" + ); + dialog.addEventListener("dialogaccept", () => { + this._result.accepted = true; + }); + + // Add styling for tor-button to the dialog shadow root. + const styleLink = document.createElement("link"); + styleLink.rel = "stylesheet"; + styleLink.href = + "chrome://browser/content/torpreferences/torPreferences.css"; + dialog.shadowRoot.append(styleLink); + + this._acceptButton = dialog.getButton("accept"); + + Services.obs.addObserver(this, TorConnectTopics.StageChange); + + this.onSelectChange(); + this.onAcceptStateChange(); + }, + + uninit() { + Services.obs.removeObserver(this, TorConnectTopics.StageChange); + }, + + onSelectChange() { + const value = this._radioGroup.value; + this._acceptButton.disabled = !value; + this._result.type = value; + }, + + onAcceptStateChange() { + const connect = TorConnect.stageName !== TorConnectStage.Bootstrapped; + this._result.connect = connect; + this._acceptButton.setAttribute( + "data-l10n-id", + connect ? "bridge-dialog-button-connect2" : "bridge-dialog-button-accept2" + ); + this._acceptButton.classList.toggle("tor-button", connect); + }, + + observe(subject, topic) { + switch (topic) { + case TorConnectTopics.StageChange: + this.onAcceptStateChange(); + break; + } + }, +}; + +// Initial focus is not visible, even if opened with a keyboard. We avoid the +// default handler and manage the focus ourselves, which will paint the focus +// ring by default. +// NOTE: A side effect is that the focus ring will show even if the user opened +// with a mouse event. +// TODO: Remove this once bugzilla bug 1708261 is resolved. +document.subDialogSetDefaultFocus = () => { + document.getElementById("torPreferences-builtinBridge-typeSelection").focus(); +}; + +window.addEventListener( + "DOMContentLoaded", + () => { + gBuiltinBridgeDialog.init(); + window.addEventListener( + "unload", + () => { + gBuiltinBridgeDialog.uninit(); + }, + { once: true } + ); + }, + { once: true } +); diff --git a/browser/components/torpreferences/content/builtinBridgeDialog.xhtml b/browser/components/torpreferences/content/builtinBridgeDialog.xhtml @@ -0,0 +1,99 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?csp default-src chrome: ?> + +<window + type="child" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" + xmlns:html="http://www.w3.org/1999/xhtml" + data-l10n-id="built-in-dialog-title" +> + <dialog id="torPreferences-builtinBridge-dialog" buttons="accept,cancel"> + <linkset> + <html:link rel="stylesheet" href="chrome://global/skin/global.css" /> + <html:link + rel="stylesheet" + href="chrome://browser/skin/preferences/preferences.css" + /> + <html:link + rel="stylesheet" + href="chrome://browser/content/torpreferences/torPreferences.css" + /> + + <html:link rel="localization" href="branding/brand.ftl" /> + <html:link rel="localization" href="toolkit/global/tor-browser.ftl" /> + </linkset> + + <script src="chrome://browser/content/torpreferences/builtinBridgeDialog.js" /> + + <description data-l10n-id="built-in-dialog-introduction"></description> + <radiogroup id="torPreferences-builtinBridge-typeSelection"> + <vbox class="builtin-bridges-option"> + <hbox> + <!-- The radio option is described by both the "Current bridge" label + - and the full description. If the "Connected" label is hidden, then + - only the latter description should contribute. --> + <radio + value="obfs4" + data-l10n-id="built-in-dialog-obfs4-radio-option2" + /> + <html:span class="bridge-status-badge"> + <html:div class="bridge-status-icon"></html:div> + <html:span + class="torPreferences-current-bridge-label" + data-l10n-id="built-in-dialog-current-bridge-label" + > + </html:span> + </html:span> + </hbox> + <html:div + class="indent builtin-bridges-option-description" + data-l10n-id="tor-bridges-built-in-obfs4-description" + > + </html:div> + </vbox> + <vbox class="builtin-bridges-option"> + <hbox> + <radio + value="snowflake" + data-l10n-id="built-in-dialog-snowflake-radio-option2" + /> + <html:span class="bridge-status-badge"> + <html:div class="bridge-status-icon"></html:div> + <html:span + class="torPreferences-current-bridge-label" + data-l10n-id="built-in-dialog-current-bridge-label" + > + </html:span> + </html:span> + </hbox> + <html:div + class="indent builtin-bridges-option-description" + data-l10n-id="tor-bridges-built-in-snowflake-description" + > + </html:div> + </vbox> + <vbox class="builtin-bridges-option"> + <hbox> + <radio + value="meek" + data-l10n-id="built-in-dialog-meek-radio-option2" + /> + <html:span class="bridge-status-badge"> + <html:div class="bridge-status-icon"></html:div> + <html:span + class="torPreferences-current-bridge-label" + data-l10n-id="built-in-dialog-current-bridge-label" + > + </html:span> + </html:span> + </hbox> + <html:div + class="indent builtin-bridges-option-description" + data-l10n-id="tor-bridges-built-in-meek-description" + > + </html:div> + </vbox> + </radiogroup> + </dialog> +</window> diff --git a/browser/components/torpreferences/content/connectionCategory.inc.xhtml b/browser/components/torpreferences/content/connectionCategory.inc.xhtml @@ -0,0 +1,11 @@ +<richlistitem id="category-connection" + class="category" + value="paneConnection" + helpTopic="prefs-connection" + data-l10n-id="tor-connection-settings-category" + data-l10n-attrs="tooltiptext" + align="center" + hidden="true"> + <image class="category-icon"/> + <label class="category-name" flex="1" data-l10n-id="tor-connection-settings-heading"></label> +</richlistitem> diff --git a/browser/components/torpreferences/content/connectionPane.inc.xhtml b/browser/components/torpreferences/content/connectionPane.inc.xhtml @@ -0,0 +1,622 @@ +<!-- Tor panel --> + +<script + type="application/javascript" + src="chrome://browser/content/torpreferences/connectionPane.js" +/> +<html:template id="template-paneConnection"> + <vbox + id="torPreferencesCategory" + class="subcategory" + data-category="paneConnection" + hidden="true" + > + <html:h1 data-l10n-id="tor-connection-settings-heading"></html:h1> + <description class="description-deemphasized" flex="1"> + <html:span data-l10n-id="tor-connection-overview"></html:span> + <label + class="learnMore text-link" + is="text-link" + href="about:manual#about" + useoriginprincipal="true" + data-l10n-id="tor-connection-browser-learn-more-link" + /> + </description> + <!-- Keep within #torPreferencesCategory so this won't appear in search + - results. --> + <html:div + id="network-status-internet-area" + class="network-status-area" + role="group" + aria-labelledby="network-status-internet-area-label" + > + <html:img alt="" class="network-status-icon" /> + <!-- NOTE: We do not wrap the label and status ("Internet: Offline", etc) + - in an aria-live area because it may be too noisey and may not be + - important to the user. --> + <html:span + id="network-status-internet-area-label" + class="network-status-label" + data-l10n-id="tor-connection-internet-status-label" + ></html:span> + <html:span class="network-status-result"></html:span> + </html:div> + <html:div + id="network-status-tor-area" + class="network-status-area" + role="group" + aria-labelledby="network-status-tor-area-label" + > + <html:img alt="" class="network-status-icon" /> + <!-- NOTE: We do not wrap the label and status + - ("Tor network: Not connected", etc) in an aria-live area. + - This is not likely to change whilst this page has focus. + - Moreover, the status is already present in the torconnect status bar + - in the window tab bar. --> + <html:span + id="network-status-tor-area-label" + class="network-status-label" + data-l10n-id="tor-connection-network-status-label" + ></html:span> + <html:span class="network-status-result"></html:span> + <html:button + id="network-status-tor-connect-button" + data-l10n-id="tor-connection-network-status-connect-button" + ></html:button> + </html:div> + </vbox> + + <!-- Quickstart --> + <groupbox data-category="paneConnection" hidden="true"> + <label> + <html:h2 data-l10n-id="tor-connection-automatic-heading"></html:h2> + </label> + <description + class="description-deemphasized" + flex="1" + data-l10n-id="tor-connection-automatic-description" + /> + <html:moz-toggle + id="tor-connection-quickstart-toggle" + class="tor-toggle" + data-l10n-id="tor-connection-quickstart-checkbox" + data-l10n-attrs="label" + /> + </groupbox> + + <!-- Bridges --> + <hbox class="subcategory" data-category="paneConnection" hidden="true"> + <html:h1 + id="tor-bridges-subcategory-heading-non-search" + class="tor-bridges-subcategory-heading tor-focusable-heading" + tabindex="-1" + data-l10n-id="tor-bridges-heading" + ></html:h1> + </hbox> + <groupbox + id="torPreferences-bridges-group" + data-category="paneConnection" + hidden="true" + aria-labelledby="tor-bridges-subcategory-heading-non-search" + > + <!-- Add a search-header that only appears in search results as a substitute + - for the hidden h1 element. See tor-browser#43320. + - NOTE: Usually the first xul:label will act as the accessible name for + - a xul:groubbox element *if* it is not hidden. Since the search-header + - is sometimes hidden we need an explicit aria-labelledby anyway. + - However, we keep the wrapper xul:label for styling consistency with the + - other settings. --> + <label class="search-header" hidden="true"> + <html:h2 + class="tor-bridges-subcategory-heading tor-focusable-heading" + tabindex="-1" + data-l10n-id="tor-bridges-heading" + ></html:h2> + </label> + <description class="description-deemphasized" flex="1"> + <html:span data-l10n-id="tor-bridges-overview"></html:span> + <label + class="learnMore text-link" + is="text-link" + href="about:manual#bridges" + useoriginprincipal="true" + data-l10n-id="tor-bridges-learn-more-link" + /> + </description> + <hbox + align="center" + id="torPreferences-bridges-locationGroup" + hidden="true" + > + <label + id="torPreferences-bridges-locationLabel" + control="torPreferences-bridges-location" + /> + <spacer flex="1" /> + <menulist id="torPreferences-bridges-location"> + <menupopup id="torPreferences-bridges-locationEntries" /> + </menulist> + <button + id="torPreferences-bridges-buttonChooseBridgeForMe" + class="primary tor-button" + /> + </hbox> + <html:moz-toggle + id="tor-bridges-enabled-toggle" + class="tor-toggle" + data-l10n-id="tor-bridges-use-bridges" + data-l10n-attrs="label" + /> + <!-- Add an aria-live area where we can post notifications to screen + - reader users about changes to their list of bridges. This is to give + - these users some feedback for when the remove a bridge or change + - their bridges in other ways. I.e. whenever tor-bridges-grid-display + - changes its rows. + - + - If we change the text in #tor-bridges-update-area-text, a screen + - reader should speak out the text to the user, even when this area + - does not have focus. + - + - In fact, we don't really want the user to navigate to this element + - directly. But currently using an aria-live region in the DOM is the + - only way to effectively pass a notification to a screen reader user. + - Since it must be somewhere in the DOM, we logically place it just + - before the grid, where it is hopefully least confusing to stumble + - across. + - + - TODO: Instead of aria-live in the DOM, use the proposed ariaNotify + - API if it gets accepted into firefox and works with screen readers. + - See https://github.com/WICG/proposals/issues/112 + --> + <!-- NOTE: This area is hidden by default, and is only shown temporarily + - when a notification is added. It should never match with search + - queries. --> + <html:div + id="tor-bridges-update-area" + hidden="hidden" + data-hidden-from-search="true" + > + <!-- NOTE: This first span's text content will *not* be read out as part + - of the notification because it does not have an aria-live + - attribute. Instead it is just here to give context to the following + - text in #tor-bridges-update-area-text if the user navigates to + - #tor-bridges-update-area manually whilst it is not hidden. + - I.e. it is just here to make it less confusing if a screen reader + - user stumbles across this. + --> + <html:span data-l10n-id="tor-bridges-update-area-intro"></html:span> + <!-- Whitespace between spans. --> + <!-- This second span is the area to place notification text in. --> + <html:span + id="tor-bridges-update-area-text" + aria-live="polite" + ></html:span> + </html:div> + <html:div id="tor-bridges-none" hidden="hidden"> + <html:img id="tor-bridges-none-icon" alt="" /> + <html:div data-l10n-id="tor-bridges-none-added"></html:div> + </html:div> + <html:div id="tor-bridges-current" class="tor-bridges-box" hidden="hidden"> + <html:div id="tor-bridges-current-header-bar"> + <html:h2 + id="tor-bridges-current-heading-non-search" + class="tor-bridges-current-heading tor-focusable-heading tor-small-heading tor-non-search-heading" + tabindex="-1" + data-l10n-id="tor-bridges-your-bridges" + ></html:h2> + <!-- Add a duplicate search heading. + - In a search result the heading h1.tor-bridges-subcategory-heading + - will be hidden, and the h2.tor-bridges-subcategory-heading + - will be visible. + - As such, all headings below h2.tor-bridges-subcategory-heading also + - need to shift one lower in heading level to preseve the correct + - hierarchy of - heading levels. + - In this case we hide the <h2> heading and show the duplicate <h3> + - heading instead. + - See tor-browser#43320. --> + <html:h3 + class="tor-bridges-current-heading tor-focusable-heading tor-small-heading tor-search-heading" + tabindex="-1" + data-l10n-id="tor-bridges-your-bridges" + ></html:h3> + <html:span + id="tor-bridges-user-label" + class="tor-bridges-source-label" + data-l10n-id="tor-bridges-source-user" + ></html:span> + <html:span + id="tor-bridges-built-in-label" + class="tor-bridges-source-label" + data-l10n-id="tor-bridges-source-built-in" + ></html:span> + <html:span + id="tor-bridges-requested-label" + class="tor-bridges-source-label" + data-l10n-id="tor-bridges-source-requested" + ></html:span> + <html:span id="tor-bridges-lox-label" class="tor-bridges-source-label"> + <html:img id="tor-bridges-lox-label-icon" alt="" /> + <html:span data-l10n-id="tor-bridges-source-lox"></html:span> + </html:span> + <html:button + id="tor-bridges-all-options-button" + class="tor-bridges-options-button" + aria-haspopup="menu" + aria-expanded="false" + aria-controls="tor-bridges-all-options-menu" + data-l10n-id="tor-bridges-options-button" + ></html:button> + <html:panel-list + id="tor-bridges-all-options-menu" + data-hidden-from-search="true" + > + <html:panel-item + id="tor-bridges-options-qr-all-menu-item" + data-l10n-attrs="accesskey" + data-l10n-id="tor-bridges-menu-item-qr-all-bridge-addresses" + ></html:panel-item> + <html:panel-item + id="tor-bridges-options-copy-all-menu-item" + data-l10n-attrs="accesskey" + data-l10n-id="tor-bridges-menu-item-copy-all-bridge-addresses" + ></html:panel-item> + <html:panel-item + id="tor-bridges-options-edit-all-menu-item" + data-l10n-attrs="accesskey" + data-l10n-id="tor-bridges-menu-item-edit-all-bridges" + ></html:panel-item> + <html:panel-item + id="tor-bridges-options-remove-all-menu-item" + data-l10n-attrs="accesskey" + data-l10n-id="tor-bridges-menu-item-remove-all-bridges" + ></html:panel-item> + </html:panel-list> + </html:div> + <html:div id="tor-bridges-built-in-display" hidden="hidden"> + <html:div id="tor-bridges-built-in-type-name"></html:div> + <html:div + id="tor-bridges-built-in-connected" + class="bridge-status-badge" + > + <html:div class="bridge-status-icon"></html:div> + <html:span + data-l10n-id="tor-bridges-built-in-status-connected" + ></html:span> + </html:div> + <html:div id="tor-bridges-built-in-description"></html:div> + </html:div> + <html:div + id="tor-bridges-grid-display" + class="tor-bridges-grid" + role="grid" + aria-labelledby="tor-bridges-current-heading-non-search" + hidden="hidden" + ></html:div> + <html:template id="tor-bridges-grid-row-template"> + <html:div class="tor-bridges-grid-row" role="row"> + <!-- TODO: lox status cell for new bridges? --> + <html:span + class="tor-bridges-type-cell tor-bridges-grid-cell" + role="gridcell" + ></html:span> + <html:span class="tor-bridges-emojis-block" role="none"></html:span> + <html:span class="tor-bridges-grid-end-block" role="none"> + <html:span + class="tor-bridges-address-cell tor-bridges-grid-cell" + role="gridcell" + > + <html:span class="tor-bridges-address-cell-text"></html:span> + </html:span> + <html:span + class="tor-bridges-status-cell tor-bridges-grid-cell" + role="gridcell" + > + <html:div class="bridge-status-badge"> + <html:div class="bridge-status-icon"></html:div> + <html:span class="tor-bridges-status-cell-text"></html:span> + </html:div> + </html:span> + <html:span + class="tor-bridges-options-cell tor-bridges-grid-cell" + role="gridcell" + > + <html:button + class="tor-bridges-options-cell-button tor-bridges-options-button tor-bridges-grid-focus" + aria-haspopup="menu" + aria-expanded="false" + data-l10n-id="tor-bridges-individual-bridge-options-button" + ></html:button> + <html:panel-list + class="tor-bridges-individual-options-menu" + data-hidden-from-search="true" + > + <html:panel-item + class="tor-bridges-options-qr-one-menu-item" + data-l10n-attrs="accesskey" + data-l10n-id="tor-bridges-menu-item-qr-address" + ></html:panel-item> + <html:panel-item + class="tor-bridges-options-copy-one-menu-item" + data-l10n-attrs="accesskey" + data-l10n-id="tor-bridges-menu-item-copy-address" + ></html:panel-item> + <html:panel-item + class="tor-bridges-options-remove-one-menu-item" + data-l10n-attrs="accesskey" + data-l10n-id="tor-bridges-menu-item-remove-bridge" + ></html:panel-item> + </html:panel-list> + </html:span> + </html:span> + </html:div> + </html:template> + <html:div + id="tor-bridges-share" + class="tor-bridges-details-box" + hidden="hidden" + > + <html:h3 + class="tor-bridges-share-heading tor-small-heading tor-non-search-heading" + data-l10n-id="tor-bridges-share-heading" + ></html:h3> + <!-- Add a duplicate search heading. See tor-browser#43320. --> + <html:h4 + class="tor-bridges-share-heading tor-small-heading tor-search-heading" + data-l10n-id="tor-bridges-share-heading" + ></html:h4> + <html:span + id="tor-bridges-share-description" + data-l10n-id="tor-bridges-share-description" + ></html:span> + <html:button + id="tor-bridges-copy-addresses-button" + data-l10n-id="tor-bridges-copy-addresses-button" + ></html:button> + <html:button + id="tor-bridges-qr-addresses-button" + data-l10n-id="tor-bridges-qr-addresses-button" + ></html:button> + </html:div> + <html:div id="tor-bridges-lox-status" hidden="hidden"> + <html:div data-l10n-id="tor-bridges-lox-description"></html:div> + <html:div + id="tor-bridges-lox-details" + class="tor-bridges-details-box tor-bridges-lox-box" + hidden="hidden" + > + <html:img alt="" class="tor-bridges-lox-image-inner" /> + <html:img alt="" class="tor-bridges-lox-image-outer" /> + <html:h3 + class="tor-bridges-lox-next-unlock-counter tor-small-heading tor-bridges-lox-intro tor-focusable-heading tor-non-search-heading" + tabindex="-1" + ></html:h3> + <!-- Add a duplicate search heading. See tor-browser#43320. --> + <html:h4 + class="tor-bridges-lox-next-unlock-counter tor-small-heading tor-bridges-lox-intro tor-focusable-heading tor-search-heading" + tabindex="-1" + ></html:h4> + <html:ul class="tor-bridges-lox-list"> + <html:li + id="tor-bridges-lox-next-unlock-gain-bridges" + class="tor-bridges-lox-list-item tor-bridges-lox-list-item-bridge" + data-l10n-id="tor-bridges-lox-unlock-two-bridges" + hidden="hidden" + ></html:li> + <html:li + id="tor-bridges-lox-next-unlock-first-invites" + class="tor-bridges-lox-list-item tor-bridges-lox-list-item-invite" + data-l10n-id="tor-bridges-lox-unlock-first-invites" + hidden="hidden" + ></html:li> + <html:li + id="tor-bridges-lox-next-unlock-more-invites" + class="tor-bridges-lox-list-item tor-bridges-lox-list-item-invite" + data-l10n-id="tor-bridges-lox-unlock-more-invites" + hidden="hidden" + ></html:li> + </html:ul> + <html:div + id="tor-bridges-lox-remaining-invites" + hidden="hidden" + ></html:div> + <html:button + id="tor-bridges-lox-show-invites-button" + class="tor-bridges-lox-button" + data-l10n-id="tor-bridges-lox-show-invites-button" + hidden="hidden" + ></html:button> + </html:div> + <html:div + id="tor-bridges-lox-unlock-alert" + role="alert" + class="tor-bridges-details-box tor-bridges-lox-box" + hidden="hidden" + > + <html:img alt="" class="tor-bridges-lox-image-inner" /> + <html:img alt="" class="tor-bridges-lox-image-outer" /> + <html:div + id="tor-bridge-unlock-alert-title" + class="tor-small-heading tor-bridges-lox-intro" + ></html:div> + <html:ul class="tor-bridges-lox-list"> + <html:li + id="tor-bridges-lox-unlock-alert-gain-bridges" + class="tor-bridges-lox-list-item tor-bridges-lox-list-item-bridge" + data-l10n-id="tor-bridges-lox-gained-two-bridges" + hidden="hidden" + ></html:li> + <html:li + id="tor-bridges-lox-unlock-alert-new-bridges" + class="tor-bridges-lox-list-item tor-bridges-lox-list-item-bridge" + data-l10n-id="tor-bridges-lox-new-bridges" + hidden="hidden" + ></html:li> + <html:li + id="tor-bridges-lox-unlock-alert-invites" + class="tor-bridges-lox-list-item tor-bridges-lox-list-item-invite" + hidden="hidden" + ></html:li> + </html:ul> + <html:button + id="tor-bridges-lox-unlock-alert-button" + class="tor-bridges-lox-button" + data-l10n-id="tor-bridges-lox-got-it-button" + ></html:button> + </html:div> + </html:div> + </html:div> + <html:h2 + class="tor-bridges-change-heading tor-medium-heading tor-non-search-heading" + ></html:h2> + <!-- Add a duplicate search heading. See tor-browser#43320. + - This has the same content, but a smaller font. --> + <html:h3 + class="tor-bridges-change-heading tor-small-heading tor-search-heading" + ></html:h3> + <hbox align="center"> + <description + flex="1" + data-l10n-id="tor-bridges-select-built-in-description" + /> + <html:button + id="tor-bridges-open-built-in-dialog-button" + class="accessory-button" + data-l10n-id="tor-bridges-select-built-in-button" + ></html:button> + </hbox> + <hbox align="center"> + <description id="tor-bridges-user-provide-description" flex="1" /> + <html:button + id="tor-bridges-open-user-provide-dialog-button" + class="accessory-button" + ></html:button> + </hbox> + <html:h3 + class="tor-bridges-provider-heading tor-medium-heading tor-non-search-heading" + data-l10n-id="tor-bridges-find-more-heading" + ></html:h3> + <!-- Add a duplicate search heading. See tor-browser#43320. + - This has the same content, but a smaller font. --> + <html:h4 + class="tor-bridges-provider-heading tor-small-heading tor-search-heading" + data-l10n-id="tor-bridges-find-more-heading" + ></html:h4> + <description + data-l10n-id="tor-bridges-find-more-description" + class="description-deemphasized" + /> + <html:div id="tor-bridges-provider-area"> + <html:ul id="tor-bridges-provider-list"> + <html:li class="tor-bridges-provider-item"> + <html:img + id="tor-bridges-provider-icon-telegram" + class="tor-bridges-provider-icon" + alt="" + /> + <html:div + class="tor-bridges-provider-name" + data-l10n-id="tor-bridges-provider-telegram-name" + ></html:div> + <html:div + id="tor-bridges-provider-instruction-telegram" + class="tor-bridges-provider-instruction" + > + <html:a data-l10n-name="user"></html:a> + </html:div> + </html:li> + <html:li class="tor-bridges-provider-item"> + <html:img + id="tor-bridges-provider-icon-web" + class="tor-bridges-provider-icon" + alt="" + /> + <html:div + class="tor-bridges-provider-name" + data-l10n-id="tor-bridges-provider-web-name" + ></html:div> + <html:div + class="tor-bridges-provider-instruction" + data-l10n-id="tor-bridges-provider-web-instruction" + data-l10n-args='{ "url": "bridges.torproject.org" }' + > + <html:a + href="https://bridges.torproject.org" + data-l10n-name="url" + ></html:a> + </html:div> + </html:li> + <html:li class="tor-bridges-provider-item"> + <html:img + id="tor-bridges-provider-icon-email" + class="tor-bridges-provider-icon" + alt="" + /> + <html:div + class="tor-bridges-provider-name" + data-l10n-id="tor-bridges-provider-email-name" + ></html:div> + <html:div + class="tor-bridges-provider-instruction" + data-l10n-id="tor-bridges-provider-email-instruction" + data-l10n-args='{ "address": "bridges@torproject.org" }' + ></html:div> + </html:li> + </html:ul> + <html:div id="tor-bridges-request-box" class="tor-bridges-box"> + <html:img + alt="" + src="chrome://browser/content/torpreferences/bridge-bot.svg" + ></html:img> + <html:div + id="tor-bridges-request-description" + data-l10n-id="tor-bridges-request-from-browser" + ></html:div> + <html:button + id="tor-bridges-open-request-dialog-button" + data-l10n-id="tor-bridges-request-button" + ></html:button> + </html:div> + </html:div> + </groupbox> + + <!-- Advanced --> + <hbox class="subcategory" data-category="paneConnection" hidden="true"> + <html:h1 + id="tor-advanced-subcategory-heading-non-search" + data-l10n-id="tor-advanced-settings-heading" + ></html:h1> + </hbox> + <groupbox + id="torPreferences-advanced-group" + data-category="paneConnection" + hidden="true" + aria-labelledby="tor-advanced-subcategory-heading-non-search" + > + <!-- Add a search-header that only appears in search results as a substitute + - for the hidden h1 element. See tor-browser#43320. + - NOTE: Usually the first xul:label will act as the accessible name for + - a xul:groubbox element *if* it is not hidden. Since the search-header + - is sometimes hidden we need an explicit aria-labelledby anyway. + - However, we keep the wrapper xul:label for styling consistency with the + - other settings. --> + <label class="search-header" hidden="true"> + <html:h2 data-l10n-id="tor-advanced-settings-heading"></html:h2> + </label> + <hbox align="center"> + <description data-l10n-id="tor-advanced-settings-description" flex="1" /> + <html:button + id="torPreferences-advanced-button" + class="accessory-button" + data-l10n-id="tor-advanced-settings-button" + ></html:button> + </hbox> + <hbox align="center" data-subcategory="viewlogs"> + <description data-l10n-id="tor-view-log-description" flex="1" /> + <html:button + id="torPreferences-buttonTorLogs" + class="accessory-button" + data-l10n-id="tor-view-log-button" + ></html:button> + </hbox> + </groupbox> +</html:template> diff --git a/browser/components/torpreferences/content/connectionPane.js b/browser/components/torpreferences/content/connectionPane.js @@ -0,0 +1,2663 @@ +// Copyright (c) 2022, The Tor Project, Inc. +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. + +"use strict"; + +/* import-globals-from /browser/components/preferences/preferences.js */ +/* import-globals-from /browser/components/preferences/search.js */ + +const { setTimeout, clearTimeout } = ChromeUtils.importESModule( + "resource://gre/modules/Timer.sys.mjs" +); + +const { TorSettings, TorSettingsTopics, TorBridgeSource } = + ChromeUtils.importESModule("resource://gre/modules/TorSettings.sys.mjs"); + +const { TorParsers } = ChromeUtils.importESModule( + "resource://gre/modules/TorParsers.sys.mjs" +); +const { TorProviderBuilder, TorProviderTopics } = ChromeUtils.importESModule( + "resource://gre/modules/TorProviderBuilder.sys.mjs" +); + +const { InternetStatus, TorConnect, TorConnectTopics, TorConnectStage } = + ChromeUtils.importESModule("resource://gre/modules/TorConnect.sys.mjs"); + +const { TorConnectParent } = ChromeUtils.importESModule( + "resource://gre/actors/TorConnectParent.sys.mjs" +); + +const { QRCode } = ChromeUtils.importESModule( + "resource://gre/modules/QRCode.sys.mjs" +); + +const { TorStrings } = ChromeUtils.importESModule( + "resource://gre/modules/TorStrings.sys.mjs" +); + +const { Lox, LoxTopics } = ChromeUtils.importESModule( + "resource://gre/modules/Lox.sys.mjs" +); + +const log = console.createInstance({ + maxLogLevel: "Warn", + prefix: "connectionPane", +}); + +/* + * Fake Lox module: + +const Lox = { + levelHistory: [0, 1], + // levelHistory: [1, 2], + // levelHistory: [2, 3], + // levelHistory: [3, 4], + // levelHistory: [0, 1, 2], + // levelHistory: [1, 2, 3], + // levelHistory: [4, 3], + // levelHistory: [4, 1], + // levelHistory: [2, 1], + //levelHistory: [2, 3, 4, 1, 2], + // Gain some invites and then loose them all. Shouldn't show any change. + // levelHistory: [0, 1, 2, 1], + // levelHistory: [1, 2, 3, 1], + getEventData() { + let prevLevel = this.levelHistory[0]; + const events = []; + for (let i = 1; i < this.levelHistory.length; i++) { + const level = this.levelHistory[i]; + events.push({ type: level > prevLevel ? "levelup" : "blockage", newLevel: level }); + prevLevel = level; + } + return events; + }, + clearEventData() { + this.levelHistory = []; + }, + nextUnlock: { date: "2024-01-31T00:00:00Z", nextLevel: 1 }, + //nextUnlock: { date: "2024-01-31T00:00:00Z", nextLevel: 2 }, + //nextUnlock: { date: "2024-01-31T00:00:00Z", nextLevel: 3 }, + //nextUnlock: { date: "2024-01-31T00:00:00Z", nextLevel: 4 }, + getNextUnlock() { + return this.nextUnlock; + }, + remainingInvites: 3, + // remainingInvites: 0, + getRemainingInviteCount() { + return this.remainingInvites; + }, + invites: [], + // invites: ["a", "b"], + getInvites() { + return this.invites; + }, +}; +*/ + +/** + * Get the ID/fingerprint of the bridge used in the most recent Tor circuit. + * + * @returns {string?} - The bridge ID or null if a bridge with an id was not + * used in the last circuit. + */ +async function getConnectedBridgeId() { + // TODO: PieroV: We could make sure TorSettings is in sync by monitoring also + // changes of settings. At that point, we could query it, instead of doing a + // query over the control port. + let bridge = null; + try { + const provider = await TorProviderBuilder.build(); + bridge = provider.currentBridge; + } catch (e) { + console.warn("Could not get current bridge", e); + } + return bridge?.fingerprint ?? null; +} + +/** + * Show the bridge QR to the user. + * + * @param {string} bridgeString - The string to use in the QR. + */ +function showBridgeQr(bridgeString) { + gSubDialog.open( + "chrome://browser/content/torpreferences/bridgeQrDialog.xhtml", + { features: "resizable=yes" }, + bridgeString + ); +} + +// TODO: Instead of aria-live in the DOM, use the proposed ariaNotify +// API if it gets accepted into firefox and works with screen readers. +// See https://github.com/WICG/proposals/issues/112 +/** + * Notification for screen reader users. + */ +const gBridgesNotification = { + /** + * The screen reader area that shows updates. + * + * @type {Element?} + */ + _updateArea: null, + /** + * The text for the screen reader update. + * + * @type {Element?} + */ + _textEl: null, + /** + * A timeout for hiding the update. + * + * @type {integer?} + */ + _hideUpdateTimeout: null, + + /** + * Initialize the area for notifications. + */ + init() { + this._updateArea = document.getElementById("tor-bridges-update-area"); + this._textEl = document.getElementById("tor-bridges-update-area-text"); + }, + + /** + * Post a new notification, replacing any existing one. + * + * @param {string} type - The notification type. + */ + post(type) { + this._updateArea.hidden = false; + // First we clear the update area to reset the text to be empty. + this._textEl.removeAttribute("data-l10n-id"); + this._textEl.textContent = ""; + if (this._hideUpdateTimeout !== null) { + clearTimeout(this._hideUpdateTimeout); + this._hideUpdateTimeout = null; + } + + let updateId; + switch (type) { + case "removed-one": + updateId = "tor-bridges-update-removed-one-bridge"; + break; + case "removed-all": + updateId = "tor-bridges-update-removed-all-bridges"; + break; + case "changed": + default: + // Generic message for when bridges change. + updateId = "tor-bridges-update-changed-bridges"; + break; + } + + // Hide the area after 5 minutes, when the update is not "recent" any + // more. + this._hideUpdateTimeout = setTimeout(() => { + this._updateArea.hidden = true; + }, 300000); + + // Wait a small amount of time to actually set the textContent. Otherwise + // the screen reader (tested with Orca) may not pick up on the change in + // text. + setTimeout(() => { + document.l10n.setAttributes(this._textEl, updateId); + }, 500); + }, +}; + +/** + * Controls the bridge grid. + */ +const gBridgeGrid = { + /** + * The grid element. + * + * @type {Element?} + */ + _grid: null, + /** + * The template for creating new rows. + * + * @type {HTMLTemplateElement?} + */ + _rowTemplate: null, + + /** + * @typedef {object} BridgeGridRow + * + * @property {Element} element - The row element. + * @property {Element} optionsButton - The options button. + * @property {Element} menu - The options menupopup. + * @property {Element} statusEl - The bridge status element. + * @property {Element} statusText - The status text. + * @property {string} bridgeLine - The identifying bridge string for this row. + * @property {string?} bridgeId - The ID/fingerprint for the bridge, or null + * if it doesn't have one. + * @property {integer} index - The index of the row in the grid. + * @property {boolean} connected - Whether we are connected to the bridge + * (recently in use for a Tor circuit). + * @property {BridgeGridCell[]} cells - The cells that belong to the row, + * ordered by their column. + */ + /** + * @typedef {object} BridgeGridCell + * + * @property {Element} element - The cell element. + * @property {Element} focusEl - The element belonging to the cell that should + * receive focus. Should be the cell element itself, or an interactive + * focusable child. + * @property {integer} columnIndex - The index of the column this cell belongs + * to. + * @property {BridgeGridRow} row - The row this cell belongs to. + */ + /** + * The current rows in the grid. + * + * @type {BridgeGridRow[]} + */ + _rows: [], + /** + * The cell that should be the focus target when the user moves focus into the + * grid, or null if the grid itself should be the target. + * + * @type {BridgeGridCell?} + */ + _focusCell: null, + + /** + * Initialize the bridge grid. + */ + init() { + this._grid = document.getElementById("tor-bridges-grid-display"); + // Initially, make only the grid itself part of the keyboard tab cycle. + // matches _focusCell = null. + this._grid.tabIndex = 0; + + this._rowTemplate = document.getElementById( + "tor-bridges-grid-row-template" + ); + + this._grid.addEventListener("keydown", this); + this._grid.addEventListener("mousedown", this); + this._grid.addEventListener("focusin", this); + + Services.obs.addObserver(this, TorSettingsTopics.SettingsChanged); + + // NOTE: Before initializedPromise completes, this area is hidden. + TorSettings.initializedPromise.then(() => { + this._updateRows(true); + }); + }, + + /** + * Uninitialize the bridge grid. + */ + uninit() { + Services.obs.removeObserver(this, TorSettingsTopics.SettingsChanged); + this.deactivate(); + }, + + /** + * Whether the grid is visible and responsive. + * + * @type {boolean} + */ + _active: false, + + /** + * Activate and show the bridge grid. + */ + activate() { + if (this._active) { + return; + } + + this._active = true; + + Services.obs.addObserver(this, TorProviderTopics.BridgeChanged); + + this._grid.hidden = false; + + this._updateConnectedBridge(); + }, + + /** + * Deactivate and hide the bridge grid. + */ + deactivate() { + if (!this._active) { + return; + } + + this._active = false; + + this._forceCloseRowMenus(); + + this._grid.hidden = true; + + Services.obs.removeObserver(this, TorProviderTopics.BridgeChanged); + }, + + observe(subject, topic) { + switch (topic) { + case TorSettingsTopics.SettingsChanged: { + const { changes } = subject.wrappedJSObject; + if ( + changes.includes("bridges.source") || + changes.includes("bridges.bridge_strings") + ) { + this._updateRows(); + } + break; + } + case TorProviderTopics.BridgeChanged: + this._updateConnectedBridge(); + break; + } + }, + + handleEvent(event) { + if (event.type === "keydown") { + if (event.altKey || event.shiftKey || event.metaKey || event.ctrlKey) { + // Don't interfere with these events. + return; + } + + if (this._rows.some(row => row.menu.open)) { + // Have an open menu, let the menu handle the event instead. + return; + } + + let numRows = this._rows.length; + if (!numRows) { + // Nowhere for focus to go. + return; + } + + let moveRow = 0; + let moveColumn = 0; + const isLTR = this._grid.matches(":dir(ltr)"); + switch (event.key) { + case "ArrowDown": + moveRow = 1; + break; + case "ArrowUp": + moveRow = -1; + break; + case "ArrowRight": + moveColumn = isLTR ? 1 : -1; + break; + case "ArrowLeft": + moveColumn = isLTR ? -1 : 1; + break; + default: + return; + } + + // Prevent scrolling the nearest scroll container. + event.preventDefault(); + + const curCell = this._focusCell; + let row = curCell ? curCell.row.index + moveRow : 0; + let column = curCell ? curCell.columnIndex + moveColumn : 0; + + // Clamp in bounds. + if (row < 0) { + row = 0; + } else if (row >= numRows) { + row = numRows - 1; + } + + const numCells = this._rows[row].cells.length; + if (column < 0) { + column = 0; + } else if (column >= numCells) { + column = numCells - 1; + } + + const newCell = this._rows[row].cells[column]; + + if (newCell !== curCell) { + this._setFocus(newCell); + } + } else if (event.type === "mousedown") { + if (event.button !== 0) { + return; + } + // Move focus index to the clicked target. + // NOTE: Since the cells and the grid have "tabindex=-1", they are still + // click-focusable. Therefore, the default mousedown handler will try to + // move focus to it. + // Rather than block this default handler, we instead re-direct the focus + // to the correct cell in the "focusin" listener. + const newCell = this._getCellFromTarget(event.target); + // NOTE: If newCell is null, then we do nothing here, but instead wait for + // the focusin handler to trigger. + if (newCell && newCell !== this._focusCell) { + this._setFocus(newCell); + } + } else if (event.type === "focusin") { + const focusCell = this._getCellFromTarget(event.target); + if (focusCell !== this._focusCell) { + // Focus is not where it is expected. + // E.g. the user has clicked the edge of the grid. + // Restore focus immediately back to the cell we expect. + this._setFocus(this._focusCell); + } + } + }, + + /** + * Return the cell that was the target of an event. + * + * @param {Element} element - The target of an event. + * + * @returns {BridgeGridCell?} - The cell that the element belongs to, or null + * if it doesn't belong to any cell. + */ + _getCellFromTarget(element) { + for (const row of this._rows) { + for (const cell of row.cells) { + if (cell.element.contains(element)) { + return cell; + } + } + } + return null; + }, + + /** + * Determine whether the document's active element (focus) is within the grid + * or not. + * + * @returns {boolean} - Whether focus is within this grid or not. + */ + _focusWithin() { + return this._grid.contains(document.activeElement); + }, + + /** + * Set the cell that should be the focus target of the grid, possibly moving + * the document's focus as well. + * + * @param {BridgeGridCell?} cell - The cell to make the focus target, or null + * if the grid itself should be the target. + * @param {boolean} [focusWithin] - Whether focus should be moved within the + * grid. If undefined, this will move focus if the grid currently contains + * the document's focus. + */ + _setFocus(cell, focusWithin) { + if (focusWithin === undefined) { + focusWithin = this._focusWithin(); + } + const prevFocusElement = this._focusCell + ? this._focusCell.focusEl + : this._grid; + const newFocusElement = cell ? cell.focusEl : this._grid; + + if (prevFocusElement !== newFocusElement) { + prevFocusElement.tabIndex = -1; + newFocusElement.tabIndex = 0; + } + // Set _focusCell now, before we potentially call "focus", which can trigger + // the "focusin" handler. + this._focusCell = cell; + + if (focusWithin) { + // Focus was within the grid, so we need to actively move it to the new + // element. + newFocusElement.focus({ preventScroll: true }); + // Scroll to the whole cell into view, rather than just the focus element. + (cell?.element ?? newFocusElement).scrollIntoView({ + block: "nearest", + inline: "nearest", + }); + } + }, + + /** + * Reset the grids focus to be the first row's first cell, if any. + * + * @param {boolean} [focusWithin] - Whether focus should be moved within the + * grid. If undefined, this will move focus if the grid currently contains + * the document's focus. + */ + _resetFocus(focusWithin) { + this._setFocus( + this._rows.length ? this._rows[0].cells[0] : null, + focusWithin + ); + }, + + /** + * The bridge ID/fingerprint of the most recently used bridge (appearing in + * the latest Tor circuit). Roughly corresponds to the bridge we are currently + * connected to. + * + * null if there are no such bridges. + * + * @type {string?} + */ + _connectedBridgeId: null, + /** + * Update _connectedBridgeId. + */ + async _updateConnectedBridge() { + const bridgeId = await getConnectedBridgeId(); + if (bridgeId === this._connectedBridgeId) { + return; + } + this._connectedBridgeId = bridgeId; + for (const row of this._rows) { + this._updateRowStatus(row); + } + }, + + /** + * Update the status of a row. + * + * @param {BridgeGridRow} row - The row to update. + */ + _updateRowStatus(row) { + const connected = row.bridgeId && this._connectedBridgeId === row.bridgeId; + // NOTE: row.connected is initially undefined, so won't match `connected`. + if (connected === row.connected) { + return; + } + + row.connected = connected; + + const noStatus = !connected; + + row.element.classList.toggle("hide-status", noStatus); + row.statusEl.classList.toggle("bridge-status-none", noStatus); + row.statusEl.classList.toggle("bridge-status-connected", connected); + + if (connected) { + document.l10n.setAttributes( + row.statusText, + "tor-bridges-status-connected" + ); + } else { + document.l10n.setAttributes(row.statusText, "tor-bridges-status-none"); + } + }, + + /** + * Create a new row for the grid. + * + * @param {string} bridgeLine - The bridge line for this row, which also acts + * as its ID. + * + * @returns {BridgeGridRow} - A new row, with then "index" unset and the + * "element" without a parent. + */ + _createRow(bridgeLine) { + let details; + try { + details = TorParsers.parseBridgeLine(bridgeLine); + } catch (e) { + console.error(`Detected invalid bridge line: ${bridgeLine}`, e); + } + const row = { + element: this._rowTemplate.content.children[0].cloneNode(true), + bridgeLine, + bridgeId: details?.id ?? null, + cells: [], + }; + + const emojiBlock = row.element.querySelector(".tor-bridges-emojis-block"); + const BridgeEmoji = customElements.get("tor-bridge-emoji"); + for (const cell of BridgeEmoji.createForAddress(bridgeLine)) { + // Each emoji is its own cell, we rely on the fact that createForAddress + // always returns four elements. + cell.setAttribute("role", "gridcell"); + cell.classList.add("tor-bridges-grid-cell", "tor-bridges-emoji-cell"); + emojiBlock.append(cell); + } + + for (const [columnIndex, element] of row.element + .querySelectorAll(".tor-bridges-grid-cell") + .entries()) { + const focusEl = + element.querySelector(".tor-bridges-grid-focus") ?? element; + // Set a negative tabIndex, this makes the element click-focusable but not + // part of the tab navigation sequence. + focusEl.tabIndex = -1; + row.cells.push({ element, focusEl, columnIndex, row }); + } + + const transport = details?.transport ?? "vanilla"; + const typeCell = row.element.querySelector(".tor-bridges-type-cell"); + if (transport === "vanilla") { + document.l10n.setAttributes(typeCell, "tor-bridges-type-prefix-generic"); + } else { + document.l10n.setAttributes(typeCell, "tor-bridges-type-prefix", { + type: transport, + }); + } + + row.element.querySelector(".tor-bridges-address-cell-text").textContent = + bridgeLine; + + row.statusEl = row.element.querySelector( + ".tor-bridges-status-cell .bridge-status-badge" + ); + row.statusText = row.element.querySelector(".tor-bridges-status-cell-text"); + + this._initRowMenu(row); + + this._updateRowStatus(row); + return row; + }, + + /** + * The row menu index used for generating new ids. + * + * @type {integer} + */ + _rowMenuIndex: 0, + /** + * Generate a new id for the options menu. + * + * @returns {string} - The new id. + */ + _generateRowMenuId() { + const id = `tor-bridges-individual-options-menu-${this._rowMenuIndex}`; + // Assume we won't run out of ids. + this._rowMenuIndex++; + return id; + }, + + /** + * Initialize the shared menu for a row. + * + * @param {BridgeGridRow} row - The row to initialize the menu of. + */ + _initRowMenu(row) { + row.menu = row.element.querySelector( + ".tor-bridges-individual-options-menu" + ); + row.optionsButton = row.element.querySelector( + ".tor-bridges-options-cell-button" + ); + + row.menu.id = this._generateRowMenuId(); + row.optionsButton.setAttribute("aria-controls", row.menu.id); + + row.optionsButton.addEventListener("click", event => { + row.menu.toggle(event); + }); + + row.menu.addEventListener("hidden", () => { + // Make sure the button receives focus again when the menu is hidden. + // Currently, panel-list.js only does this when the menu is opened with a + // keyboard, but this causes focus to be lost from the page if the user + // uses a mixture of keyboard and mouse. + row.optionsButton.focus(); + }); + + const qrItem = row.menu.querySelector( + ".tor-bridges-options-qr-one-menu-item" + ); + const removeItem = row.menu.querySelector( + ".tor-bridges-options-remove-one-menu-item" + ); + row.menu.addEventListener("showing", () => { + const show = + this._bridgeSource === TorBridgeSource.UserProvided || + this._bridgeSource === TorBridgeSource.BridgeDB; + qrItem.hidden = !show; + removeItem.hidden = !show; + }); + + qrItem.addEventListener("click", () => { + const bridgeLine = row.bridgeLine; + if (!bridgeLine) { + return; + } + showBridgeQr(bridgeLine); + }); + row.menu + .querySelector(".tor-bridges-options-copy-one-menu-item") + .addEventListener("click", () => { + const clipboard = Cc[ + "@mozilla.org/widget/clipboardhelper;1" + ].getService(Ci.nsIClipboardHelper); + clipboard.copyString(row.bridgeLine); + }); + removeItem.addEventListener("click", () => { + const bridgeLine = row.bridgeLine; + const source = TorSettings.bridges.source; + const strings = TorSettings.bridges.bridge_strings; + const index = strings.indexOf(bridgeLine); + if (index === -1) { + return; + } + strings.splice(index, 1); + + if (strings.length) { + TorSettings.changeSettings({ + bridges: { source, bridge_strings: strings }, + }); + } else { + // Remove all bridges and disable. + TorSettings.changeSettings({ + bridges: { source: TorBridgeSource.Invalid }, + }); + } + }); + }, + + /** + * Force the row menu to close. + */ + _forceCloseRowMenus() { + for (const row of this._rows) { + row.menu.hide(null, { force: true }); + } + }, + + /** + * The known bridge source. + * + * Initially null to indicate that it is unset. + * + * @type {integer?} + */ + _bridgeSource: null, + /** + * The bridge sources this is shown for. + * + * @type {string[]} + */ + _supportedSources: [ + TorBridgeSource.BridgeDB, + TorBridgeSource.UserProvided, + TorBridgeSource.Lox, + ], + + /** + * Update the grid to show the latest bridge strings. + * + * @param {boolean} [initializing=false] - Whether this is being called as + * part of initialization. + */ + _updateRows(initializing = false) { + // Store whether we have focus within the grid, before removing or hiding + // DOM elements. + const focusWithin = this._focusWithin(); + + let lostAllBridges = false; + let newSource = false; + const bridgeSource = TorSettings.bridges.source; + if (bridgeSource !== this._bridgeSource) { + newSource = true; + + this._bridgeSource = bridgeSource; + + if (this._supportedSources.includes(bridgeSource)) { + this.activate(); + } else { + if (this._active && bridgeSource === TorBridgeSource.Invalid) { + lostAllBridges = true; + } + this.deactivate(); + } + } + + const ordered = this._active + ? TorSettings.bridges.bridge_strings.map(bridgeLine => { + const row = this._rows.find(r => r.bridgeLine === bridgeLine); + if (row) { + return row; + } + return this._createRow(bridgeLine); + }) + : []; + + // Whether we should reset the grid's focus. + // We always reset when we have a new bridge source. + // We reset the focus if no current Cell has focus. I.e. when adding a row + // to an empty grid, we want the focus to move to the first item. + // We also reset the focus if the current Cell is in a row that will be + // removed (including if all rows are removed). + // NOTE: In principle, if a row is removed, we could move the focus to the + // next or previous row (in the same cell column). However, most likely if + // the grid has the user focus, they are removing a single row using its + // options button. In this case, returning the user to some other row's + // options button might be more disorienting since it would not be simple + // for them to know *which* bridge they have landed on. + // NOTE: We do not reset the focus in other cases because we do not want the + // user to loose their place in the grid unnecessarily. + let resetFocus = + newSource || !this._focusCell || !ordered.includes(this._focusCell.row); + + // Remove rows no longer needed from the DOM. + let numRowsRemoved = 0; + let rowAddedOrMoved = false; + + for (const row of this._rows) { + if (!ordered.includes(row)) { + numRowsRemoved++; + // If the row menu was open, it will also be deleted. + // NOTE: Since the row menu is part of the row, focusWithin will be true + // if the menu had focus, so focus should be re-assigned. + row.element.remove(); + } + } + + // Go through all the rows to set their ".index" property and to ensure they + // are in the correct position in the DOM. + // NOTE: We could use replaceChildren to get the correct DOM structure, but + // we want to avoid rebuilding the entire tree when a single row is added or + // removed. + for (const [index, row] of ordered.entries()) { + row.index = index; + const element = row.element; + // Get the expected previous element, that should already be in the DOM + // from the previous loop. + const prevEl = index ? ordered[index - 1].element : null; + + if ( + element.parentElement === this._grid && + prevEl === element.previousElementSibling + ) { + // Already in the correct position in the DOM. + continue; + } + + rowAddedOrMoved = true; + // NOTE: Any elements already in the DOM, but not in the correct position + // will be removed and re-added by the below command. + // NOTE: if the row has document focus, then it should remain there. + if (prevEl) { + prevEl.after(element); + } else { + this._grid.prepend(element); + } + } + this._rows = ordered; + + // Restore any lost focus. + if (resetFocus) { + // If we are not active (and therefore hidden), we will not try and move + // focus (activeElement), but may still change the *focusable* element for + // when we are shown again. + this._resetFocus(this._active && focusWithin); + } + if (!this._active && focusWithin) { + // Move focus out of this element, which has been hidden. + gBridgeSettings.takeFocus(); + } + + // Notify the user if there was some change to the DOM. + // If we are initializing, we generate no notification since there has been + // no change in the setting. + if (!initializing) { + let notificationType; + if (lostAllBridges) { + // Just lost all bridges, and became de-active. + notificationType = "removed-all"; + } else if (this._rows.length) { + // Otherwise, only generate a notification if we are still active, with + // at least one bridge. + // I.e. do not generate a message if the new source is "builtin". + if (newSource) { + // A change in source. + notificationType = "changed"; + } else if (numRowsRemoved === 1 && !rowAddedOrMoved) { + // Only one bridge was removed. This is most likely in response to them + // manually removing a single bridge or using the bridge row's options + // menu. + notificationType = "removed-one"; + } else if (numRowsRemoved || rowAddedOrMoved) { + // Some other change. This is most likely in response to a manual edit + // of the existing bridges. + notificationType = "changed"; + } + // Else, there was no change. + } + + if (notificationType) { + gBridgesNotification.post(notificationType); + } + } + }, +}; + +/** + * Controls the built-in bridges area. + */ +const gBuiltinBridgesArea = { + /** + * The display area. + * + * @type {Element?} + */ + _area: null, + /** + * The type name element. + * + * @type {Element?} + */ + _nameEl: null, + /** + * The bridge type description element. + * + * @type {Element?} + */ + _descriptionEl: null, + /** + * The connection status. + * + * @type {Element?} + */ + _connectionStatusEl: null, + + /** + * Initialize the built-in bridges area. + */ + init() { + this._area = document.getElementById("tor-bridges-built-in-display"); + this._nameEl = document.getElementById("tor-bridges-built-in-type-name"); + this._descriptionEl = document.getElementById( + "tor-bridges-built-in-description" + ); + this._connectionStatusEl = document.getElementById( + "tor-bridges-built-in-connected" + ); + + Services.obs.addObserver(this, TorSettingsTopics.SettingsChanged); + + // NOTE: Before initializedPromise completes, this area is hidden. + TorSettings.initializedPromise.then(() => { + this._updateBridgeType(true); + }); + }, + + /** + * Uninitialize the built-in bridges area. + */ + uninit() { + Services.obs.removeObserver(this, TorSettingsTopics.SettingsChanged); + this.deactivate(); + }, + + /** + * Whether the built-in area is visible and responsive. + * + * @type {boolean} + */ + _active: false, + + /** + * Activate and show the built-in bridge area. + */ + activate() { + if (this._active) { + return; + } + this._active = true; + + Services.obs.addObserver(this, TorProviderTopics.BridgeChanged); + + this._area.hidden = false; + + this._updateBridgeIds(); + this._updateConnectedBridge(); + }, + + /** + * Deactivate and hide built-in bridge area. + */ + deactivate() { + if (!this._active) { + return; + } + this._active = false; + + this._area.hidden = true; + + Services.obs.removeObserver(this, TorProviderTopics.BridgeChanged); + }, + + observe(subject, topic) { + switch (topic) { + case TorSettingsTopics.SettingsChanged: { + const { changes } = subject.wrappedJSObject; + if ( + changes.includes("bridges.source") || + changes.includes("bridges.builtin_type") + ) { + this._updateBridgeType(); + } + if (changes.includes("bridges.bridge_strings")) { + this._updateBridgeIds(); + } + break; + } + case TorProviderTopics.BridgeChanged: + this._updateConnectedBridge(); + break; + } + }, + + /** + * Updates the shown connected state. + */ + _updateConnectedState() { + this._connectionStatusEl.classList.toggle( + "bridge-status-connected", + this._bridgeType && + this._connectedBridgeId && + this._bridgeIds.includes(this._connectedBridgeId) + ); + }, + + /** + * The currently shown bridge type. Empty if deactivated, and null if + * uninitialized. + * + * @type {string?} + */ + _bridgeType: null, + /** + * The strings for each known bridge type. + * + * @type {{[key: string]: {[key: string]: string}}} + */ + _bridgeTypeStrings: { + obfs4: { + name: "tor-bridges-built-in-obfs4-name", + description: "tor-bridges-built-in-obfs4-description", + }, + snowflake: { + name: "tor-bridges-built-in-snowflake-name", + description: "tor-bridges-built-in-snowflake-description", + }, + meek: { + name: "tor-bridges-built-in-meek-name", + description: "tor-bridges-built-in-meek-description", + }, + }, + + /** + * The known bridge source. + * + * Initially null to indicate that it is unset. + * + * @type {integer?} + */ + _bridgeSource: null, + + /** + * Update the shown bridge type. + * + * @param {boolean} [initializing=false] - Whether this is being called as + * part of initialization. + */ + async _updateBridgeType(initializing = false) { + let lostAllBridges = false; + let newSource = false; + const bridgeSource = TorSettings.bridges.source; + if (bridgeSource !== this._bridgeSource) { + newSource = true; + + this._bridgeSource = bridgeSource; + + if (bridgeSource === TorBridgeSource.BuiltIn) { + this.activate(); + } else { + if (this._active && bridgeSource === TorBridgeSource.Invalid) { + lostAllBridges = true; + } + const hadFocus = this._area.contains(document.activeElement); + this.deactivate(); + if (hadFocus) { + gBridgeSettings.takeFocus(); + } + } + } + + const bridgeType = this._active ? TorSettings.bridges.builtin_type : ""; + + let newType = false; + if (bridgeType !== this._bridgeType) { + newType = true; + + this._bridgeType = bridgeType; + + const bridgeStrings = this._bridgeTypeStrings[bridgeType]; + if (bridgeStrings) { + document.l10n.setAttributes(this._nameEl, bridgeStrings.name); + document.l10n.setAttributes( + this._descriptionEl, + bridgeStrings.description + ); + } else { + // Unknown type, or no type. + this._nameEl.removeAttribute("data-l10n-id"); + this._nameEl.textContent = bridgeType; + this._descriptionEl.removeAttribute("data-l10n-id"); + this._descriptionEl.textContent = ""; + } + + this._updateConnectedState(); + } + + // Notify the user if there was some change to the type. + // If we are initializing, we generate no notification since there has been + // no change in the setting. + if (!initializing) { + let notificationType; + if (lostAllBridges) { + // Just lost all bridges, and became de-active. + notificationType = "removed-all"; + } else if (this._active && (newSource || newType)) { + // Otherwise, only generate a notification if we are still active, with + // a bridge type. + // I.e. do not generate a message if the new source is not "builtin". + notificationType = "changed"; + } + + if (notificationType) { + gBridgesNotification.post(notificationType); + } + } + }, + + /** + * The bridge IDs/fingerprints for the built-in bridges. + * + * @type {Array<string>} + */ + _bridgeIds: [], + /** + * Update _bridgeIds + */ + _updateBridgeIds() { + this._bridgeIds = []; + for (const bridgeLine of TorSettings.bridges.bridge_strings) { + try { + this._bridgeIds.push(TorParsers.parseBridgeLine(bridgeLine).id); + } catch (e) { + console.error(`Detected invalid bridge line: ${bridgeLine}`, e); + } + } + + this._updateConnectedState(); + }, + + /** + * The bridge ID/fingerprint of the most recently used bridge (appearing in + * the latest Tor circuit). Roughly corresponds to the bridge we are currently + * connected to. + * + * @type {string?} + */ + _connectedBridgeId: null, + /** + * Update _connectedBridgeId. + */ + async _updateConnectedBridge() { + this._connectedBridgeId = await getConnectedBridgeId(); + this._updateConnectedState(); + }, +}; + +/** + * Controls the bridge pass area. + */ +const gLoxStatus = { + /** + * The status area. + * + * @type {Element?} + */ + _area: null, + /** + * The area for showing the next unlock and invites. + * + * @type {Element?} + */ + _detailsArea: null, + /** + * The list items showing the next unlocks. + * + * @type {?{[key: string]: Element}} + */ + _nextUnlockItems: null, + /** + * The day counter headings for the next unlock. + * + * One heading is shown during a search, the other is shown otherwise. + * + * @type {?Element[]} + */ + _nextUnlockCounterEls: null, + /** + * Shows the number of remaining invites. + * + * @type {Element?} + */ + _remainingInvitesEl: null, + /** + * The button to show the invites. + * + * @type {Element?} + */ + _invitesButton: null, + /** + * The alert for new unlocks. + * + * @type {Element?} + */ + _unlockAlert: null, + /** + * The list items showing the unlocks. + * + * @type {?{[key: string]: Element}} + */ + _unlockItems: null, + /** + * The alert title. + * + * @type {Element?} + */ + _unlockAlertTitle: null, + /** + * The alert invites item. + * + * @type {Element?} + */ + _unlockAlertInvitesItem: null, + /** + * Button for the user to dismiss the alert. + * + * @type {Element?} + */ + _unlockAlertButton: null, + + /** + * Initialize the bridge pass area. + */ + init() { + if (!Lox.enabled) { + // Area should remain inactive and hidden. + return; + } + + this._area = document.getElementById("tor-bridges-lox-status"); + this._detailsArea = document.getElementById("tor-bridges-lox-details"); + this._nextUnlockItems = { + gainBridges: document.getElementById( + "tor-bridges-lox-next-unlock-gain-bridges" + ), + firstInvites: document.getElementById( + "tor-bridges-lox-next-unlock-first-invites" + ), + moreInvites: document.getElementById( + "tor-bridges-lox-next-unlock-more-invites" + ), + }; + this._nextUnlockCounterEls = Array.from( + document.querySelectorAll(".tor-bridges-lox-next-unlock-counter") + ); + this._remainingInvitesEl = document.getElementById( + "tor-bridges-lox-remaining-invites" + ); + this._invitesButton = document.getElementById( + "tor-bridges-lox-show-invites-button" + ); + this._unlockAlert = document.getElementById("tor-bridges-lox-unlock-alert"); + this._unlockItems = { + gainBridges: document.getElementById( + "tor-bridges-lox-unlock-alert-gain-bridges" + ), + newBridges: document.getElementById( + "tor-bridges-lox-unlock-alert-new-bridges" + ), + invites: document.getElementById("tor-bridges-lox-unlock-alert-invites"), + }; + this._unlockAlertTitle = document.getElementById( + "tor-bridge-unlock-alert-title" + ); + this._unlockAlertInviteItem = document.getElementById( + "tor-bridges-lox-unlock-alert-invites" + ); + this._unlockAlertButton = document.getElementById( + "tor-bridges-lox-unlock-alert-button" + ); + + this._invitesButton.addEventListener("click", () => { + gSubDialog.open( + "chrome://browser/content/torpreferences/loxInviteDialog.xhtml", + { features: "resizable=yes" } + ); + }); + this._unlockAlertButton.addEventListener("click", () => { + Lox.clearEventData(this._loxId); + }); + + Services.obs.addObserver(this, TorSettingsTopics.SettingsChanged); + Services.obs.addObserver(this, LoxTopics.UpdateActiveLoxId); + Services.obs.addObserver(this, LoxTopics.UpdateEvents); + Services.obs.addObserver(this, LoxTopics.UpdateNextUnlock); + Services.obs.addObserver(this, LoxTopics.UpdateRemainingInvites); + Services.obs.addObserver(this, LoxTopics.NewInvite); + + // NOTE: Before initializedPromise completes, this area is hidden. + TorSettings.initializedPromise.then(() => { + this._updateLoxId(); + }); + }, + + /** + * Uninitialize the built-in bridges area. + */ + uninit() { + if (!Lox.enabled) { + return; + } + + Services.obs.removeObserver(this, TorSettingsTopics.SettingsChanged); + Services.obs.removeObserver(this, LoxTopics.UpdateActiveLoxId); + Services.obs.removeObserver(this, LoxTopics.UpdateEvents); + Services.obs.removeObserver(this, LoxTopics.UpdateNextUnlock); + Services.obs.removeObserver(this, LoxTopics.UpdateRemainingInvites); + Services.obs.removeObserver(this, LoxTopics.NewInvite); + }, + + observe(subject, topic) { + switch (topic) { + case TorSettingsTopics.SettingsChanged: { + const { changes } = subject.wrappedJSObject; + if (changes.includes("bridges.source")) { + this._updateLoxId(); + } + // NOTE: We do not call _updateLoxId when "bridges.lox_id" is in the + // changes. Instead we wait until LoxTopics.UpdateActiveLoxId to ensure + // that the Lox module has responded to the change in ID strictly + // *before* we do. In particular, we want to make sure the invites and + // event data has been cleared. + break; + } + case LoxTopics.UpdateActiveLoxId: + this._updateLoxId(); + break; + case LoxTopics.UpdateNextUnlock: + this._updateNextUnlock(); + break; + case LoxTopics.UpdateEvents: + this._updatePendingEvents(); + break; + case LoxTopics.UpdateRemainingInvites: + this._updateRemainingInvites(); + break; + case LoxTopics.NewInvite: + this._updateHaveExistingInvites(); + break; + } + }, + + /** + * The Lox id currently shown. Empty if deactivated, and null if + * uninitialized. + * + * @type {string?} + */ + _loxId: null, + + /** + * Update the shown bridge pass. + */ + async _updateLoxId() { + let loxId = + TorSettings.bridges.source === TorBridgeSource.Lox ? Lox.activeLoxId : ""; + if (loxId === this._loxId) { + return; + } + this._loxId = loxId; + this._area.hidden = !loxId; + // We unset _nextUnlock to ensure the areas no longer use the old value for + // the new loxId. + this._updateNextUnlock(true); + this._updateRemainingInvites(); + this._updateHaveExistingInvites(); + this._updatePendingEvents(); + }, + + /** + * The remaining invites shown, or null if uninitialized or no loxId. + * + * @type {integer?} + */ + _remainingInvites: null, + /** + * Update the shown value. + */ + _updateRemainingInvites() { + const numInvites = this._loxId + ? Lox.getRemainingInviteCount(this._loxId) + : null; + if (numInvites === this._remainingInvites) { + return; + } + this._remainingInvites = numInvites; + this._updateUnlockArea(); + this._updateInvitesArea(); + }, + /** + * Whether we have existing invites, or null if uninitialized or no loxId. + * + * @type {boolean?} + */ + _haveExistingInvites: null, + /** + * Update the shown value. + */ + _updateHaveExistingInvites() { + const haveInvites = this._loxId ? !!Lox.getInvites().length : null; + if (haveInvites === this._haveExistingInvites) { + return; + } + this._haveExistingInvites = haveInvites; + this._updateInvitesArea(); + }, + /** + * Details about the next unlock, or null if uninitialized or no loxId. + * + * @type {UnlockData?} + */ + _nextUnlock: null, + /** + * Tracker id to ensure that the results from later calls to _updateNextUnlock + * take priority over earlier calls. + * + * @type {integer} + */ + _nextUnlockCallId: 0, + /** + * Update the shown value asynchronously. + * + * @param {boolean} [unset=false] - Whether to set the _nextUnlock value to + * null before waiting for the new value. I.e. ensure that the current value + * will not be used. + */ + async _updateNextUnlock(unset = false) { + // NOTE: We do not expect the integer to exceed the maximum integer. + this._nextUnlockCallId++; + const callId = this._nextUnlockCallId; + if (unset) { + this._nextUnlock = null; + } + const nextUnlock = this._loxId + ? await Lox.getNextUnlock(this._loxId) + : null; + if (callId !== this._nextUnlockCallId) { + // Replaced by another update. + // E.g. if the _loxId changed. Or if getNextUnlock triggered + // LoxTopics.UpdateNextUnlock. + return; + } + // Should be safe to trigger the update, even when the value hasn't changed. + this._nextUnlock = nextUnlock; + this._updateUnlockArea(); + }, + /** + * The list of events the user has not yet cleared, or null if uninitialized + * or no loxId. + * + * @type {EventData[]?} + */ + _pendingEvents: null, + /** + * Update the shown value. + */ + _updatePendingEvents() { + // Should be safe to trigger the update, even when the value hasn't changed. + this._pendingEvents = this._loxId ? Lox.getEventData(this._loxId) : null; + this._updateUnlockArea(); + }, + + /** + * Update the display of the current or next unlock. + */ + _updateUnlockArea() { + if ( + !this._loxId || + this._pendingEvents === null || + this._remainingInvites === null || + this._nextUnlock === null + ) { + // Uninitialized or no Lox source. + // NOTE: This area may already be hidden by the change in Lox source, + // but we clean up for the next non-empty id. + this._unlockAlert.hidden = true; + this._detailsArea.hidden = true; + return; + } + + // Grab focus state before changing visibility. + const alertHadFocus = this._unlockAlert.contains(document.activeElement); + const detailsHadFocus = this._detailsArea.contains(document.activeElement); + + const pendingEvents = this._pendingEvents; + const showAlert = !!pendingEvents.length; + this._unlockAlert.hidden = !showAlert; + this._detailsArea.hidden = showAlert; + + if (showAlert) { + // At level 0 and level 1, we do not have any invites. + // If the user starts and ends on level 0 or 1, then overall they would + // have had no change in their invites. So we do not want to show their + // latest updates. + // NOTE: If the user starts at level > 1 and ends with level 1 (levelling + // down to level 0 should not be possible), then we *do* want to show the + // user that they now have "0" invites. + // NOTE: pendingEvents are time-ordered, with the most recent event + // *last*. + const firstEvent = pendingEvents[0]; + // NOTE: We cannot get a blockage event when the user starts at level 1 or + // 0. + const startingAtLowLevel = + firstEvent.type === "levelup" && firstEvent.newLevel <= 2; + const lastEvent = pendingEvents[pendingEvents.length - 1]; + const endingAtLowLevel = lastEvent.newLevel <= 1; + + const showInvites = !(startingAtLowLevel && endingAtLowLevel); + + let blockage = false; + let levelUp = false; + let bridgeGain = false; + // Go through events, in the order that they occurred. + for (const loxEvent of pendingEvents) { + if (loxEvent.type === "levelup") { + levelUp = true; + if (loxEvent.newLevel === 1) { + // Gain 2 bridges from level 0 to 1. + bridgeGain = true; + } + } else { + blockage = true; + } + } + + let alertTitleId; + if (levelUp && !blockage) { + alertTitleId = "tor-bridges-lox-upgrade"; + } else { + // Show as blocked bridges replaced. + // Even if we have a mixture of level ups as well. + alertTitleId = "tor-bridges-lox-blocked"; + } + document.l10n.setAttributes(this._unlockAlertTitle, alertTitleId); + document.l10n.setAttributes( + this._unlockAlertInviteItem, + "tor-bridges-lox-new-invites", + { numInvites: this._remainingInvites } + ); + this._unlockAlert.classList.toggle( + "lox-unlock-upgrade", + levelUp && !blockage + ); + this._unlockItems.gainBridges.hidden = !bridgeGain; + this._unlockItems.newBridges.hidden = !blockage; + this._unlockItems.invites.hidden = !showInvites; + } else { + // Show next unlock. + // Number of days until the next unlock, rounded up. + const numDays = Math.max( + 1, + Math.ceil( + (new Date(this._nextUnlock.date).getTime() - Date.now()) / + (24 * 60 * 60 * 1000) + ) + ); + for (const counterEl of this._nextUnlockCounterEls) { + document.l10n.setAttributes( + counterEl, + "tor-bridges-lox-days-until-unlock", + { numDays } + ); + } + + // Gain 2 bridges from level 0 to 1. After that gain invites. + this._nextUnlockItems.gainBridges.hidden = + this._nextUnlock.nextLevel !== 1; + this._nextUnlockItems.firstInvites.hidden = + this._nextUnlock.nextLevel !== 2; + this._nextUnlockItems.moreInvites.hidden = + this._nextUnlock.nextLevel <= 2; + } + + if (alertHadFocus && !showAlert) { + // Alert has become hidden, move focus back up to the now revealed details + // area. + // NOTE: We have two headings: one shown during a search and one shown + // otherwise. We focus the heading that is currently visible. + // See tor-browser#43320. + // TODO: It might be better if we could use the # named anchor to + // re-orient the screen reader position instead of using tabIndex=-1, but + // about:preferences currently uses the anchor for showing categories + // only. See bugzilla bug 1799153. + if ( + this._nextUnlockCounterEls[0].checkVisibility({ + visibilityProperty: true, + }) + ) { + this._nextUnlockCounterEls[0].focus(); + } else { + this._nextUnlockCounterEls[1].focus(); + } + } else if (detailsHadFocus && showAlert) { + this._unlockAlertButton.focus(); + } + }, + + /** + * Update the invites area. + */ + _updateInvitesArea() { + let hasInvites; + if ( + !this._loxId || + this._remainingInvites === null || + this._haveExistingInvites === null + ) { + // Not initialized yet. + hasInvites = false; + } else { + hasInvites = this._haveExistingInvites || !!this._remainingInvites; + } + + if ( + !hasInvites && + (this._remainingInvitesEl.contains(document.activeElement) || + this._invitesButton.contains(document.activeElement)) + ) { + // About to loose focus. + // Unexpected for the lox level to loose all invites. + // Move to the top of the details area, which should be visible if we + // just had focus. + this._nextUnlockCounterEl.focus(); + } + // Hide the invite elements if we have no historic invites or a way of + // creating new ones. + this._remainingInvitesEl.hidden = !hasInvites; + this._invitesButton.hidden = !hasInvites; + + if (hasInvites) { + document.l10n.setAttributes( + this._remainingInvitesEl, + "tor-bridges-lox-remaining-invites", + { numInvites: this._remainingInvites } + ); + } + }, +}; + +/** + * Controls the bridge settings. + */ +const gBridgeSettings = { + /** + * The preferences <groupbox> for bridges + * + * @type {Element?} + */ + _groupEl: null, + /** + * The button for controlling whether bridges are enabled. + * + * @type {Element?} + */ + _toggleButton: null, + /** + * The area for showing current bridges. + * + * @type {Element?} + */ + _bridgesEl: null, + /** + * The area for sharing bridge addresses. + * + * @type {Element?} + */ + _shareEl: null, + /** + * The two headings for the bridge settings. + * + * One heading is shown during a search, the other is shown otherwise. + * + * @type {?Element[]} + */ + _bridgesSettingsHeadings: null, + /** + * The two headings for the current bridges, at the start of the area. + * + * One heading is shown during a search, the other is shown otherwise. + * + * @type {Element?} + */ + _currentBridgesHeadings: null, + /** + * The area for showing no bridges. + * + * @type {Element?} + */ + _noBridgesEl: null, + /** + * The heading elements for changing bridges. + * + * One heading is shown during a search, the other is shown otherwise. + * + * @type {?Element[]} + */ + _changeHeadingEls: null, + /** + * The button for user to provide a bridge address or share code. + * + * @type {Element?} + */ + _userProvideButton: null, + /** + * A map from the bridge source to its corresponding label. + * + * @type {?Map<number, Element>} + */ + _sourceLabels: null, + + /** + * Initialize the bridge settings. + */ + init() { + gBridgesNotification.init(); + + this._bridgesSettingsHeadings = Array.from( + document.querySelectorAll(".tor-bridges-subcategory-heading") + ); + this._currentBridgesHeadings = Array.from( + document.querySelectorAll(".tor-bridges-current-heading") + ); + this._bridgesEl = document.getElementById("tor-bridges-current"); + this._noBridgesEl = document.getElementById("tor-bridges-none"); + this._groupEl = document.getElementById("torPreferences-bridges-group"); + + this._sourceLabels = new Map([ + [ + TorBridgeSource.BuiltIn, + document.getElementById("tor-bridges-built-in-label"), + ], + [ + TorBridgeSource.UserProvided, + document.getElementById("tor-bridges-user-label"), + ], + [ + TorBridgeSource.BridgeDB, + document.getElementById("tor-bridges-requested-label"), + ], + [TorBridgeSource.Lox, document.getElementById("tor-bridges-lox-label")], + ]); + this._shareEl = document.getElementById("tor-bridges-share"); + + this._toggleButton = document.getElementById("tor-bridges-enabled-toggle"); + // Initially disabled whilst TorSettings may not be initialized. + this._toggleButton.disabled = true; + + this._toggleButton.addEventListener("toggle", () => { + if (!this._haveBridges) { + return; + } + TorSettings.changeSettings({ + bridges: { enabled: this._toggleButton.pressed }, + }); + }); + + this._changeHeadingEls = Array.from( + document.querySelectorAll(".tor-bridges-change-heading") + ); + this._userProvideButton = document.getElementById( + "tor-bridges-open-user-provide-dialog-button" + ); + + document.l10n.setAttributes( + document.getElementById("tor-bridges-user-provide-description"), + // TODO: Set a different string if we have Lox enabled. + "tor-bridges-add-addresses-description" + ); + + // TODO: Change to GetLoxBridges if Lox enabled, and the account is set up. + const telegramUserName = "GetBridgesBot"; + const telegramInstruction = document.getElementById( + "tor-bridges-provider-instruction-telegram" + ); + telegramInstruction.querySelector("a").href = + `https://t.me/${telegramUserName}`; + document.l10n.setAttributes( + telegramInstruction, + "tor-bridges-provider-telegram-instruction", + { telegramUserName } + ); + + document + .getElementById("tor-bridges-open-built-in-dialog-button") + .addEventListener("click", () => { + this._openBuiltinDialog(); + }); + this._userProvideButton.addEventListener("click", () => { + this._openUserProvideDialog(this._haveBridges ? "replace" : "add"); + }); + document + .getElementById("tor-bridges-open-request-dialog-button") + .addEventListener("click", () => { + this._openRequestDialog(); + }); + + Services.obs.addObserver(this, TorSettingsTopics.SettingsChanged); + + gBridgeGrid.init(); + gBuiltinBridgesArea.init(); + gLoxStatus.init(); + + this._initBridgesMenu(); + this._initShareArea(); + + // NOTE: Before initializedPromise completes, the current bridges sections + // should be hidden. + // And gBridgeGrid and gBuiltinBridgesArea are not active. + TorSettings.initializedPromise.then(() => { + this._updateEnabled(); + this._updateBridgeStrings(); + this._updateSource(); + }); + }, + + /** + * Un-initialize the bridge settings. + */ + uninit() { + gBridgeGrid.uninit(); + gBuiltinBridgesArea.uninit(); + gLoxStatus.uninit(); + + Services.obs.removeObserver(this, TorSettingsTopics.SettingsChanged); + }, + + observe(subject, topic) { + switch (topic) { + case TorSettingsTopics.SettingsChanged: { + const { changes } = subject.wrappedJSObject; + if (changes.includes("bridges.enabled")) { + this._updateEnabled(); + } + if (changes.includes("bridges.source")) { + this._updateSource(); + } + if (changes.includes("bridges.bridge_strings")) { + this._updateBridgeStrings(); + } + break; + } + } + }, + + /** + * Update whether the bridges should be shown as enabled. + */ + _updateEnabled() { + // Changing the pressed property on moz-toggle should not trigger its + // "toggle" event. + this._toggleButton.pressed = TorSettings.bridges.enabled; + }, + + /** + * The shown bridge source. + * + * Initially null to indicate that it is unset for the first call to + * _updateSource. + * + * @type {integer?} + */ + _bridgeSource: null, + /** + * Whether the user is encouraged to share their bridge addresses. + * + * @type {boolean} + */ + _canShare: false, + + /** + * Update _bridgeSource. + */ + _updateSource() { + // NOTE: This should only ever be called after TorSettings is already + // initialized. + const bridgeSource = TorSettings.bridges.source; + if (bridgeSource === this._bridgeSource) { + // Avoid re-activating an area if the source has not changed. + return; + } + + this._bridgeSource = bridgeSource; + + // Before hiding elements, we determine whether our region contained the + // user focus. + const hadFocus = + this._bridgesEl.contains(document.activeElement) || + this._noBridgesEl.contains(document.activeElement); + + for (const [source, labelEl] of this._sourceLabels.entries()) { + labelEl.hidden = source !== bridgeSource; + } + + this._canShare = + bridgeSource === TorBridgeSource.UserProvided || + bridgeSource === TorBridgeSource.BridgeDB; + + this._shareEl.hidden = !this._canShare; + + // Force the menu to close whenever the source changes. + // NOTE: If the menu had focus then hadFocus will be true, and focus will be + // re-assigned. + this._forceCloseBridgesMenu(); + + // Update whether we have bridges. + this._updateHaveBridges(); + + if (hadFocus) { + // Always reset the focus to the start of the area whenever the source + // changes. + // NOTE: gBuiltinBridges._updateBridgeType and gBridgeGrid._updateRows + // may have already called takeFocus in response to them being + // de-activated. The re-call should be safe. + this.takeFocus(); + } + }, + + /** + * Whether we have bridges or not, or null if it is unknown. + * + * @type {boolean?} + */ + _haveBridges: null, + + /** + * Update the _haveBridges value. + */ + _updateHaveBridges() { + // NOTE: We use the TorSettings.bridges.source value, rather than + // this._bridgeSource because _updateHaveBridges can be called just before + // _updateSource (via takeFocus). + const haveBridges = TorSettings.bridges.source !== TorBridgeSource.Invalid; + + if (haveBridges === this._haveBridges) { + return; + } + + this._haveBridges = haveBridges; + + this._toggleButton.disabled = !haveBridges; + // Add classes to show or hide the "no bridges" and "Your bridges" sections. + // NOTE: Before haveBridges is set, neither class is added, so both sections + // and hidden. + this._groupEl.classList.add("bridges-initialized"); + this._bridgesEl.hidden = !haveBridges; + this._noBridgesEl.hidden = haveBridges; + + for (const headingEl of this._changeHeadingEls) { + document.l10n.setAttributes( + headingEl, + haveBridges + ? "tor-bridges-replace-bridges-heading" + : "tor-bridges-add-bridges-heading" + ); + } + document.l10n.setAttributes( + this._userProvideButton, + haveBridges ? "tor-bridges-replace-button" : "tor-bridges-add-new-button" + ); + }, + + /** + * Force the focus to move to the bridge area. + */ + takeFocus() { + if (this._haveBridges === null) { + // The bridges area has not been initialized yet, which means that + // TorSettings may not be initialized. + // Unexpected to receive a call before then, so just return early. + return; + } + + // Make sure we have the latest value for _haveBridges. + // We also ensure that the _currentBridgesHeadings element is visible before + // we focus it. + this._updateHaveBridges(); + + // Move focus to the start of the relevant section, which is a heading. + // They have tabindex="-1" so should be focusable, even though they are not + // part of the usual tab navigation. + // NOTE: We have two headings: one shown during a search and one shown + // otherwise. We focus the heading that is currently visible. + // See tor-browser#43320. + // TODO: It might be better if we could use the # named anchor to + // re-orient the screen reader position instead of using tabIndex=-1, but + // about:preferences currently uses the anchor for showing categories + // only. See bugzilla bug 1799153. + const focusHeadings = this._haveBridges + ? this._currentBridgesHeadings // The heading above the new bridges. + : this._bridgesSettingsHeadings; // The top of the bridge settings. + if (focusHeadings[0].checkVisibility({ visibilityProperty: true })) { + focusHeadings[0].focus(); + } else { + focusHeadings[1].focus(); + } + }, + + /** + * The bridge strings in a copy-able form. + * + * @type {string} + */ + _bridgeStrings: "", + /** + * Whether the bridge strings should be shown as a QR code. + * + * @type {boolean} + */ + _canQRBridges: false, + + /** + * Update the stored bridge strings. + */ + _updateBridgeStrings() { + const bridges = TorSettings.bridges.bridge_strings; + + this._bridgeStrings = bridges.join("\n"); + // TODO: Determine what logic we want. + this._canQRBridges = bridges.length <= 3; + + this._qrButton.disabled = !this._canQRBridges; + }, + + /** + * Copy all the bridge addresses to the clipboard. + */ + _copyBridges() { + const clipboard = Cc["@mozilla.org/widget/clipboardhelper;1"].getService( + Ci.nsIClipboardHelper + ); + clipboard.copyString(this._bridgeStrings); + }, + + /** + * Open the QR code dialog encoding all the bridge addresses. + */ + _openQR() { + if (!this._canQRBridges) { + return; + } + showBridgeQr(this._bridgeStrings); + }, + + /** + * The QR button for copying all QR codes. + * + * @type {Element?} + */ + _qrButton: null, + + _initShareArea() { + document + .getElementById("tor-bridges-copy-addresses-button") + .addEventListener("click", () => { + this._copyBridges(); + }); + + this._qrButton = document.getElementById("tor-bridges-qr-addresses-button"); + this._qrButton.addEventListener("click", () => { + this._openQR(); + }); + }, + + /** + * The menu for all bridges. + * + * @type {Element?} + */ + _bridgesMenu: null, + + /** + * Initialize the menu for all bridges. + */ + _initBridgesMenu() { + this._bridgesMenu = document.getElementById("tor-bridges-all-options-menu"); + + // NOTE: We generally assume that once the bridge menu is opened the + // this._bridgeStrings value will not change. + const qrItem = document.getElementById( + "tor-bridges-options-qr-all-menu-item" + ); + qrItem.addEventListener("click", () => { + this._openQR(); + }); + + const copyItem = document.getElementById( + "tor-bridges-options-copy-all-menu-item" + ); + copyItem.addEventListener("click", () => { + this._copyBridges(); + }); + + const editItem = document.getElementById( + "tor-bridges-options-edit-all-menu-item" + ); + editItem.addEventListener("click", () => { + this._openUserProvideDialog("edit"); + }); + + // TODO: Do we want a different item for built-in bridges, rather than + // "Remove all bridges"? + document + .getElementById("tor-bridges-options-remove-all-menu-item") + .addEventListener("click", async () => { + // TODO: Should we only have a warning when not built-in? + const parentWindow = + Services.wm.getMostRecentWindow("navigator:browser"); + const flags = + Services.prompt.BUTTON_POS_0 * + Services.prompt.BUTTON_TITLE_IS_STRING + + Services.prompt.BUTTON_POS_0_DEFAULT + + Services.prompt.BUTTON_DEFAULT_IS_DESTRUCTIVE + + Services.prompt.BUTTON_POS_1 * Services.prompt.BUTTON_TITLE_CANCEL; + + const [titleString, bodyString, removeString] = + await document.l10n.formatValues([ + { id: "remove-all-bridges-warning-title" }, + { id: "remove-all-bridges-warning-description" }, + { id: "remove-all-bridges-warning-remove-button" }, + ]); + + // TODO: Update the text, and remove old strings. + const buttonIndex = Services.prompt.confirmEx( + parentWindow, + titleString, + bodyString, + flags, + removeString, + null, + null, + null, + {} + ); + + if (buttonIndex !== 0) { + return; + } + + TorSettings.changeSettings({ + // This should always have the side effect of disabling bridges as + // well. + bridges: { source: TorBridgeSource.Invalid }, + }); + }); + + this._bridgesMenu.addEventListener("showing", () => { + qrItem.hidden = !this._canShare || !this._canQRBridges; + editItem.hidden = this._bridgeSource !== TorBridgeSource.UserProvided; + }); + + const bridgesMenuButton = document.getElementById( + "tor-bridges-all-options-button" + ); + bridgesMenuButton.addEventListener("click", event => { + this._bridgesMenu.toggle(event, bridgesMenuButton); + }); + + this._bridgesMenu.addEventListener("hidden", () => { + // Make sure the button receives focus again when the menu is hidden. + // Currently, panel-list.js only does this when the menu is opened with a + // keyboard, but this causes focus to be lost from the page if the user + // uses a mixture of keyboard and mouse. + bridgesMenuButton.focus(); + }); + }, + + /** + * Force the bridges menu to close. + */ + _forceCloseBridgesMenu() { + this._bridgesMenu.hide(null, { force: true }); + }, + + /** + * Open a bridge dialog that will change the users bridges. + * + * @param {string} url - The url of the dialog to open. + * @param {object?} inputData - The input data to send to the dialog window. + * @param {Function} onAccept - The method to call if the bridge dialog was + * accepted by the user. This will be passed a "result" object containing + * data set by the dialog. This should return a promise that resolves once + * the bridge settings have been set, or null if the settings have not + * been applied. + */ + _openDialog(url, inputData, onAccept) { + const result = { accepted: false, connect: false }; + let savedSettings = null; + gSubDialog.open( + url, + { + features: "resizable=yes", + closingCallback: () => { + if (!result.accepted) { + return; + } + savedSettings = onAccept(result); + if (!savedSettings) { + // No change in settings. + return; + } + if (!result.connect) { + // Do not open about:torconnect. + return; + } + + // Wait until the settings are applied before bootstrapping. + // NOTE: Saving the settings should also cancel any existing bootstrap + // attempt first. See tor-browser#41921. + savedSettings.then(() => { + // The bridge dialog button is "connect" when Tor is not + // bootstrapped, so do the connect. + + // Start Bootstrapping, which should use the configured bridges. + // NOTE: We do this regardless of any previous TorConnect Error. + TorConnectParent.open({ beginBootstrapping: "hard" }); + }); + }, + // closedCallback should be called after gSubDialog has already + // re-assigned focus back to the document. + closedCallback: () => { + if (!savedSettings) { + return; + } + // Wait until the settings have changed, so that the UI could + // respond, then move focus. + savedSettings.then(() => gBridgeSettings.takeFocus()); + }, + }, + result, + inputData + ); + }, + + /** + * Open the built-in bridge dialog. + */ + _openBuiltinDialog() { + this._openDialog( + "chrome://browser/content/torpreferences/builtinBridgeDialog.xhtml", + null, + result => { + if (!result.type) { + return null; + } + return TorSettings.changeSettings({ + bridges: { + enabled: true, + source: TorBridgeSource.BuiltIn, + builtin_type: result.type, + }, + }); + } + ); + }, + + /* + * Open the request bridge dialog. + */ + _openRequestDialog() { + this._openDialog( + "chrome://browser/content/torpreferences/requestBridgeDialog.xhtml", + null, + result => { + if (!result.bridges?.length) { + return null; + } + return TorSettings.changeSettings({ + bridges: { + enabled: true, + source: TorBridgeSource.BridgeDB, + bridge_strings: result.bridges, + }, + }); + } + ); + }, + + /** + * Open the user provide dialog. + * + * @param {string} mode - The mode to open the dialog in: "add", "replace" or + * "edit". + */ + _openUserProvideDialog(mode) { + this._openDialog( + "chrome://browser/content/torpreferences/provideBridgeDialog.xhtml", + { mode }, + result => { + const loxId = result.loxId; + if (!loxId && !result.addresses?.length) { + return null; + } + const bridges = { enabled: true }; + if (loxId) { + bridges.source = TorBridgeSource.Lox; + bridges.lox_id = loxId; + } else { + bridges.source = TorBridgeSource.UserProvided; + bridges.bridge_strings = result.addresses; + } + return TorSettings.changeSettings({ bridges }); + } + ); + }, +}; + +/** + * Area to show the internet and tor network connection status. + */ +const gNetworkStatus = { + /** + * Initialize the area. + */ + init() { + this._internetAreaEl = document.getElementById( + "network-status-internet-area" + ); + this._internetResultEl = this._internetAreaEl.querySelector( + ".network-status-result" + ); + + this._torAreaEl = document.getElementById("network-status-tor-area"); + this._torResultEl = this._torAreaEl.querySelector(".network-status-result"); + this._torConnectButton = document.getElementById( + "network-status-tor-connect-button" + ); + this._torConnectButton.addEventListener("click", () => { + TorConnectParent.open({ beginBootstrapping: "soft" }); + }); + + this._updateInternetStatus(); + this._updateTorConnectionStatus(); + + Services.obs.addObserver(this, TorConnectTopics.StageChange); + Services.obs.addObserver(this, TorConnectTopics.InternetStatusChange); + }, + + /** + * Un-initialize the area. + */ + uninit() { + Services.obs.removeObserver(this, TorConnectTopics.StageChange); + Services.obs.removeObserver(this, TorConnectTopics.InternetStatusChange); + }, + + observe(subject, topic) { + switch (topic) { + // triggered when tor connect state changes and we may + // need to update the messagebox + case TorConnectTopics.StageChange: + this._updateTorConnectionStatus(); + break; + case TorConnectTopics.InternetStatusChange: + this._updateInternetStatus(); + break; + } + }, + + /** + * Update the shown internet status. + */ + _updateInternetStatus() { + let l10nId; + let isOffline = false; + switch (TorConnect.internetStatus) { + case InternetStatus.Offline: + l10nId = "tor-connection-internet-status-offline"; + isOffline = true; + break; + case InternetStatus.Online: + l10nId = "tor-connection-internet-status-online"; + break; + default: + l10nId = "tor-connection-internet-status-unknown"; + break; + } + this._internetResultEl.setAttribute("data-l10n-id", l10nId); + this._internetAreaEl.classList.toggle("status-offline", isOffline); + }, + + /** + * Update the shown Tor connection status. + */ + _updateTorConnectionStatus() { + const buttonHadFocus = this._torConnectButton.contains( + document.activeElement + ); + const isBootstrapped = + TorConnect.stageName === TorConnectStage.Bootstrapped; + const isBlocked = !isBootstrapped && TorConnect.potentiallyBlocked; + let l10nId; + if (isBootstrapped) { + l10nId = "tor-connection-network-status-connected"; + } else if (isBlocked) { + l10nId = "tor-connection-network-status-blocked"; + } else { + l10nId = "tor-connection-network-status-not-connected"; + } + + document.l10n.setAttributes(this._torResultEl, l10nId); + this._torAreaEl.classList.toggle("status-connected", isBootstrapped); + this._torAreaEl.classList.toggle("status-blocked", isBlocked); + if (isBootstrapped && buttonHadFocus) { + // Button has become hidden and will loose focus. Most likely this has + // happened because the user clicked the button to open about:torconnect. + // Since this is near the top of the page, we move focus to the search + // input (for when the user returns). + gSearchResultsPane.searchInput.focus(); + } + }, +}; + +/* + Connection Pane + + Code for populating the XUL in about:preferences#connection, handling input events, interfacing with tor-launcher +*/ +const gConnectionPane = (function () { + /* CSS selectors for all of the Tor Network DOM elements we need to access */ + const selectors = { + bridges: { + locationGroup: "#torPreferences-bridges-locationGroup", + locationLabel: "#torPreferences-bridges-locationLabel", + location: "#torPreferences-bridges-location", + locationEntries: "#torPreferences-bridges-locationEntries", + chooseForMe: "#torPreferences-bridges-buttonChooseBridgeForMe", + }, + }; /* selectors */ + + const retval = { + // cached frequently accessed DOM elements + _enableQuickstartToggle: null, + + // populate xul with strings and cache the relevant elements + _populateXUL() { + // Quickstart + this._enableQuickstartToggle = document.getElementById( + "tor-connection-quickstart-toggle" + ); + this._enableQuickstartToggle.addEventListener("toggle", () => { + TorConnect.quickstart = this._enableQuickstartToggle.pressed; + }); + this._enableQuickstartToggle.pressed = TorConnect.quickstart; + Services.obs.addObserver(this, TorConnectTopics.QuickstartChange); + + // Location + { + const prefpane = document.getElementById("mainPrefPane"); + + const locationGroup = prefpane.querySelector( + selectors.bridges.locationGroup + ); + prefpane.querySelector(selectors.bridges.locationLabel).textContent = + TorStrings.settings.bridgeLocation; + const location = prefpane.querySelector(selectors.bridges.location); + const locationEntries = prefpane.querySelector( + selectors.bridges.locationEntries + ); + const chooseForMe = prefpane.querySelector( + selectors.bridges.chooseForMe + ); + chooseForMe.setAttribute( + "label", + TorStrings.settings.bridgeChooseForMe + ); + chooseForMe.addEventListener("command", () => { + if (!location.value) { + return; + } + TorConnectParent.open({ + beginBootstrapping: "hard", + regionCode: location.value, + }); + }); + const createItem = (value, label, disabled) => { + const item = document.createXULElement("menuitem"); + item.setAttribute("value", value); + item.setAttribute("label", label); + if (disabled) { + item.setAttribute("disabled", "true"); + } + return item; + }; + + // TODO: Re-fetch when intl:app-locales-changed is fired, if we keep + // this after tor-browser#42477. + const regionNames = TorConnect.getRegionNames(); + const addLocations = codes => { + const items = []; + for (const code of codes) { + items.push(createItem(code, regionNames[code] || code)); + } + items.sort((left, right) => left.label.localeCompare(right.label)); + locationEntries.append(...items); + }; + // Add automatic before waiting for getFrequentRegions. + locationEntries.append( + createItem("automatic", TorStrings.settings.bridgeLocationAutomatic) + ); + location.value = "automatic"; + TorConnect.getFrequentRegions().then(frequentCodes => { + locationEntries.append( + createItem("", TorStrings.settings.bridgeLocationFrequent, true) + ); + addLocations(frequentCodes); + locationEntries.append( + createItem("", TorStrings.settings.bridgeLocationOther, true) + ); + addLocations(Object.keys(regionNames)); + }); + this._showAutoconfiguration = () => { + locationGroup.hidden = + !TorConnect.canBeginAutoBootstrap || !TorConnect.potentiallyBlocked; + }; + this._showAutoconfiguration(); + } + + // Advanced setup + document + .getElementById("torPreferences-advanced-button") + .addEventListener("click", () => { + this.onAdvancedSettings(); + }); + + // Tor logs + document + .getElementById("torPreferences-buttonTorLogs") + .addEventListener("click", () => { + this.onViewTorLogs(); + }); + + Services.obs.addObserver(this, TorConnectTopics.StageChange); + }, + + init() { + gBridgeSettings.init(); + gNetworkStatus.init(); + + this._populateXUL(); + + const onUnload = () => { + window.removeEventListener("unload", onUnload); + gConnectionPane.uninit(); + }; + window.addEventListener("unload", onUnload); + }, + + uninit() { + gBridgeSettings.uninit(); + gNetworkStatus.uninit(); + + // unregister our observer topics + Services.obs.removeObserver(this, TorConnectTopics.QuickstartChange); + Services.obs.removeObserver(this, TorConnectTopics.StageChange); + }, + + // whether the page should be present in about:preferences + get enabled() { + return TorConnect.enabled; + }, + + // + // Callbacks + // + + observe(subject, topic) { + switch (topic) { + case TorConnectTopics.QuickstartChange: { + this._enableQuickstartToggle.pressed = TorConnect.quickstart; + break; + } + // triggered when tor connect state changes and we may + // need to update the messagebox + case TorConnectTopics.StageChange: { + this._showAutoconfiguration(); + break; + } + } + }, + + async onAdvancedSettings() { + // Ensure TorSettings is complete before loading the dialog, which reads + // from TorSettings. + await TorSettings.initializedPromise; + gSubDialog.open( + "chrome://browser/content/torpreferences/connectionSettingsDialog.xhtml", + { features: "resizable=yes" } + ); + }, + + onViewTorLogs() { + gSubDialog.open( + "chrome://browser/content/torpreferences/torLogDialog.xhtml", + { features: "resizable=yes" } + ); + }, + }; + return retval; +})(); /* gConnectionPane */ diff --git a/browser/components/torpreferences/content/connectionSettingsDialog.js b/browser/components/torpreferences/content/connectionSettingsDialog.js @@ -0,0 +1,351 @@ +"use strict"; + +const { TorSettings, TorProxyType } = ChromeUtils.importESModule( + "resource://gre/modules/TorSettings.sys.mjs" +); + +const gConnectionSettingsDialog = { + _acceptButton: null, + _useProxyCheckbox: null, + _proxyTypeLabel: null, + _proxyTypeMenulist: null, + _proxyAddressLabel: null, + _proxyAddressTextbox: null, + _proxyPortLabel: null, + _proxyPortTextbox: null, + _proxyUsernameLabel: null, + _proxyUsernameTextbox: null, + _proxyPasswordLabel: null, + _proxyPasswordTextbox: null, + _useFirewallCheckbox: null, + _allowedPortsLabel: null, + _allowedPortsTextbox: null, + + selectors: { + useProxyCheckbox: "checkbox#torPreferences-connection-toggleProxy", + proxyTypeLabel: "label#torPreferences-localProxy-type", + proxyTypeList: "menulist#torPreferences-localProxy-builtinList", + proxyAddressLabel: "label#torPreferences-localProxy-address", + proxyAddressTextbox: "input#torPreferences-localProxy-textboxAddress", + proxyPortLabel: "label#torPreferences-localProxy-port", + proxyPortTextbox: "input#torPreferences-localProxy-textboxPort", + proxyUsernameLabel: "label#torPreferences-localProxy-username", + proxyUsernameTextbox: "input#torPreferences-localProxy-textboxUsername", + proxyPasswordLabel: "label#torPreferences-localProxy-password", + proxyPasswordTextbox: "input#torPreferences-localProxy-textboxPassword", + useFirewallCheckbox: "checkbox#torPreferences-connection-toggleFirewall", + firewallAllowedPortsLabel: "label#torPreferences-connection-allowedPorts", + firewallAllowedPortsTextbox: + "input#torPreferences-connection-textboxAllowedPorts", + }, + + /** + * The "proxy" and "firewall" settings to pass on to TorSettings. + * + * Each group is `null` whilst the inputs are invalid. + * + * @type {{proxy: ?object, firewall: ?object}} + */ + _settings: { proxy: null, firewall: null }, + + init() { + const currentSettings = TorSettings.getSettings(); + + const dialog = document.getElementById("torPreferences-connection-dialog"); + dialog.addEventListener("dialogaccept", event => { + if (!this._settings.proxy || !this._settings.firewall) { + // Do not close yet. + event.preventDefault(); + return; + } + // TODO: Maybe wait for the method to resolve before closing. Although + // this can take a few seconds. See tor-browser#43467. + TorSettings.changeSettings(this._settings); + }); + this._acceptButton = dialog.getButton("accept"); + + const selectors = this.selectors; + + // Local Proxy + this._useProxyCheckbox = document.querySelector(selectors.useProxyCheckbox); + this._useProxyCheckbox.checked = currentSettings.proxy.enabled; + this._useProxyCheckbox.addEventListener("command", () => { + this.updateProxyType(); + }); + + this._proxyTypeLabel = document.querySelector(selectors.proxyTypeLabel); + + const mockProxies = [ + { + value: TorProxyType.Socks4, + l10nId: "tor-advanced-dialog-proxy-socks4-menuitem", + }, + { + value: TorProxyType.Socks5, + l10nId: "tor-advanced-dialog-proxy-socks5-menuitem", + }, + { + value: TorProxyType.HTTPS, + l10nId: "tor-advanced-dialog-proxy-http-menuitem", + }, + ]; + this._proxyTypeMenulist = document.querySelector(selectors.proxyTypeList); + this._proxyTypeMenulist.addEventListener("command", () => { + this.updateProxyType(); + }); + for (const currentProxy of mockProxies) { + let menuEntry = window.document.createXULElement("menuitem"); + menuEntry.setAttribute("value", currentProxy.value); + menuEntry.setAttribute("data-l10n-id", currentProxy.l10nId); + this._proxyTypeMenulist.querySelector("menupopup").appendChild(menuEntry); + } + this._proxyTypeMenulist.value = currentSettings.proxy.enabled + ? currentSettings.proxy.type + : ""; + + this._proxyAddressLabel = document.querySelector( + selectors.proxyAddressLabel + ); + this._proxyAddressTextbox = document.querySelector( + selectors.proxyAddressTextbox + ); + this._proxyAddressTextbox.addEventListener("blur", () => { + // If the address includes a port move it to the port input instead. + let value = this._proxyAddressTextbox.value.trim(); + let colon = value.lastIndexOf(":"); + if (colon != -1) { + let maybePort = this.parsePort(value.substr(colon + 1)); + if (maybePort !== null) { + this._proxyAddressTextbox.value = value.substr(0, colon); + this._proxyPortTextbox.value = maybePort; + this.updateProxy(); + } + } + }); + this._proxyPortLabel = document.querySelector(selectors.proxyPortLabel); + this._proxyPortTextbox = document.querySelector(selectors.proxyPortTextbox); + this._proxyUsernameLabel = document.querySelector( + selectors.proxyUsernameLabel + ); + this._proxyUsernameTextbox = document.querySelector( + selectors.proxyUsernameTextbox + ); + this._proxyPasswordLabel = document.querySelector( + selectors.proxyPasswordLabel + ); + this._proxyPasswordTextbox = document.querySelector( + selectors.proxyPasswordTextbox + ); + + if (currentSettings.proxy.enabled) { + this._proxyAddressTextbox.value = currentSettings.proxy.address; + this._proxyPortTextbox.value = currentSettings.proxy.port; + this._proxyUsernameTextbox.value = currentSettings.proxy.username; + this._proxyPasswordTextbox.value = currentSettings.proxy.password; + } else { + this._proxyAddressTextbox.value = ""; + this._proxyPortTextbox.value = ""; + this._proxyUsernameTextbox.value = ""; + this._proxyPasswordTextbox.value = ""; + } + + for (const el of [ + this._proxyAddressTextbox, + this._proxyPortTextbox, + this._proxyUsernameTextbox, + this._proxyPasswordTextbox, + ]) { + el.addEventListener("input", () => { + this.updateProxy(); + }); + } + + // Local firewall + this._useFirewallCheckbox = document.querySelector( + selectors.useFirewallCheckbox + ); + this._useFirewallCheckbox.checked = currentSettings.firewall.enabled; + this._useFirewallCheckbox.addEventListener("command", () => { + this.updateFirewallEnabled(); + }); + this._allowedPortsLabel = document.querySelector( + selectors.firewallAllowedPortsLabel + ); + this._allowedPortsTextbox = document.querySelector( + selectors.firewallAllowedPortsTextbox + ); + this._allowedPortsTextbox.value = currentSettings.firewall.enabled + ? currentSettings.firewall.allowed_ports.join(",") + : "80,443"; + + this._allowedPortsTextbox.addEventListener("input", () => { + this.updateFirewall(); + }); + + this.updateProxyType(); + this.updateFirewallEnabled(); + }, + + /** + * Convert a string into a port number. + * + * @param {string} portStr - The string to convert. + * @returns {?integer} - The port number, or `null` if the given string could + * not be converted. + */ + parsePort(portStr) { + const portRegex = /^[1-9][0-9]*$/; // Strictly-positive decimal integer. + if (!portRegex.test(portStr)) { + return null; + } + const port = parseInt(portStr, 10); + if (TorSettings.validPort(port)) { + return port; + } + return null; + }, + + /** + * Update the disabled state of the accept button. + */ + updateAcceptButton() { + this._acceptButton.disabled = + !this._settings.proxy || !this._settings.firewall; + }, + + /** + * Update the UI when the proxy setting is enabled or disabled, or the proxy + * type changes. + */ + updateProxyType() { + const enabled = this._useProxyCheckbox.checked; + const haveType = enabled && Boolean(this._proxyTypeMenulist.value); + const type = parseInt(this._proxyTypeMenulist.value, 10); + + this._proxyTypeLabel.disabled = !enabled; + this._proxyTypeMenulist.disabled = !enabled; + this._proxyAddressLabel.disabled = !haveType; + this._proxyAddressTextbox.disabled = !haveType; + this._proxyPortLabel.disabled = !haveType; + this._proxyPortTextbox.disabled = !haveType; + this._proxyUsernameTextbox.disabled = + !haveType || type === TorProxyType.Socks4; + this._proxyPasswordTextbox.disabled = + !haveType || type === TorProxyType.Socks4; + if (type === TorProxyType.Socks4) { + // Clear unused value. + this._proxyUsernameTextbox.value = ""; + this._proxyPasswordTextbox.value = ""; + } + + this.updateProxy(); + }, + + /** + * Update the dialog's stored proxy values. + */ + updateProxy() { + if (this._useProxyCheckbox.checked) { + const typeStr = this._proxyTypeMenulist.value; + const type = parseInt(typeStr, 10); + // TODO: Validate the address. See tor-browser#43467. + const address = this._proxyAddressTextbox.value; + const portStr = this._proxyPortTextbox.value; + const username = + type === TorProxyType.Socks4 ? "" : this._proxyUsernameTextbox.value; + const password = + type === TorProxyType.Socks4 ? "" : this._proxyPasswordTextbox.value; + const port = parseInt(portStr, 10); + if ( + !typeStr || + !address || + !portStr || + !TorSettings.validPort(port) || + // SOCKS5 needs either both username and password, or neither. + (type === TorProxyType.Socks5 && + !TorSettings.validSocks5Credentials(username, password)) + ) { + // Invalid. + this._settings.proxy = null; + } else { + this._settings.proxy = { + enabled: true, + type, + address, + port, + username, + password, + }; + } + } else { + this._settings.proxy = { enabled: false }; + } + + this.updateAcceptButton(); + }, + + /** + * Update the UI when the firewall setting is enabled or disabled. + */ + updateFirewallEnabled() { + const enabled = this._useFirewallCheckbox.checked; + this._allowedPortsLabel.disabled = !enabled; + this._allowedPortsTextbox.disabled = !enabled; + + this.updateFirewall(); + }, + + /** + * Update the dialog's stored firewall values. + */ + updateFirewall() { + if (this._useFirewallCheckbox.checked) { + const portList = []; + let listInvalid = false; + for (const portStr of this._allowedPortsTextbox.value.split( + /(?:\s*,\s*)+/g + )) { + if (!portStr) { + // Trailing or leading comma. + continue; + } + const port = this.parsePort(portStr); + if (port === null) { + listInvalid = true; + break; + } + portList.push(port); + } + if (!listInvalid && portList.length) { + this._settings.firewall = { + enabled: true, + allowed_ports: portList, + }; + } else { + this._settings.firewall = null; + } + } else { + this._settings.firewall = { enabled: false }; + } + + this.updateAcceptButton(); + }, +}; + +// Initial focus is not visible, even if opened with a keyboard. We avoid the +// default handler and manage the focus ourselves, which will paint the focus +// ring by default. +// NOTE: A side effect is that the focus ring will show even if the user opened +// with a mouse event. +// TODO: Remove this once bugzilla bug 1708261 is resolved. +document.subDialogSetDefaultFocus = () => { + document.getElementById("torPreferences-connection-toggleProxy").focus(); +}; + +window.addEventListener( + "DOMContentLoaded", + () => { + gConnectionSettingsDialog.init(); + }, + { once: true } +); diff --git a/browser/components/torpreferences/content/connectionSettingsDialog.xhtml b/browser/components/torpreferences/content/connectionSettingsDialog.xhtml @@ -0,0 +1,141 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?csp default-src chrome: ?> + +<window + type="child" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" + xmlns:html="http://www.w3.org/1999/xhtml" + data-l10n-id="tor-advanced-dialog-title" +> + <dialog id="torPreferences-connection-dialog" buttons="accept,cancel"> + <linkset> + <html:link rel="stylesheet" href="chrome://global/skin/global.css" /> + <html:link + rel="stylesheet" + href="chrome://browser/skin/preferences/preferences.css" + /> + <html:link + rel="stylesheet" + href="chrome://browser/content/torpreferences/torPreferences.css" + /> + + <html:link rel="localization" href="branding/brand.ftl" /> + <html:link rel="localization" href="toolkit/global/tor-browser.ftl" /> + </linkset> + + <script src="chrome://browser/content/torpreferences/connectionSettingsDialog.js" /> + + <description + id="torPreferences-connection-header" + data-l10n-id="tor-advanced-dialog-introduction" + ></description> + <!-- Local Proxy --> + <checkbox + id="torPreferences-connection-toggleProxy" + data-l10n-id="tor-advanced-dialog-proxy-checkbox" + /> + <box id="torPreferences-connection-grid"> + <hbox class="indent" align="center"> + <label + id="torPreferences-localProxy-type" + data-l10n-id="tor-advanced-dialog-proxy-type-selector-label" + control="torPreferences-localProxy-builtinList" + /> + </hbox> + <hbox align="center"> + <spacer flex="1" /> + <menulist + id="torPreferences-localProxy-builtinList" + class="torMarginFix" + > + <menupopup /> + </menulist> + </hbox> + <hbox class="indent" align="center"> + <label + id="torPreferences-localProxy-address" + data-l10n-id="tor-advanced-dialog-proxy-address-input-label" + control="torPreferences-localProxy-textboxAddress" + /> + </hbox> + <hbox align="center"> + <html:input + id="torPreferences-localProxy-textboxAddress" + type="text" + required="required" + class="torMarginFix" + data-l10n-id="tor-advanced-dialog-proxy-address-input" + /> + <label + id="torPreferences-localProxy-port" + data-l10n-id="tor-advanced-dialog-proxy-port-input-label" + control="torPreferences-localProxy-textboxPort" + /> + <!-- proxy-port-input class style pulled from preferences.css and used in the vanilla proxy setup menu --> + <html:input + id="torPreferences-localProxy-textboxPort" + class="proxy-port-input torMarginFix" + hidespinbuttons="true" + type="number" + required="required" + min="1" + max="65535" + maxlength="5" + /> + </hbox> + <hbox class="indent" align="center"> + <label + id="torPreferences-localProxy-username" + data-l10n-id="tor-advanced-dialog-proxy-username-input-label" + control="torPreferences-localProxy-textboxUsername" + /> + </hbox> + <hbox align="center"> + <html:input + id="torPreferences-localProxy-textboxUsername" + type="text" + class="torMarginFix" + data-l10n-id="tor-advanced-dialog-proxy-username-input" + /> + <label + id="torPreferences-localProxy-password" + data-l10n-id="tor-advanced-dialog-proxy-password-input-label" + control="torPreferences-localProxy-textboxPassword" + /> + <html:input + id="torPreferences-localProxy-textboxPassword" + class="torMarginFix" + type="password" + data-l10n-id="tor-advanced-dialog-proxy-password-input" + /> + </hbox> + </box> + <!-- Firewall --> + <checkbox + id="torPreferences-connection-toggleFirewall" + data-l10n-id="tor-advanced-dialog-firewall-checkbox" + /> + <box id="torPreferences-connection-firewall"> + <hbox class="indent" align="center"> + <label + id="torPreferences-connection-allowedPorts" + data-l10n-id="tor-advanced-dialog-firewall-ports-input-label" + control="torPreferences-connection-textboxAllowedPorts" + /> + </hbox> + <hbox id="torPreferences-connection-hboxAllowedPorts" align="center"> + <!-- NOTE: The pattern allows comma-separated strictly positive + - integers. In particular "0" is not allowed. --> + <html:input + id="torPreferences-connection-textboxAllowedPorts" + type="text" + required="required" + pattern="^(\s*,\s*)*[1-9][0-9]*((\s*,\s*)|([1-9][0-9]*))*$" + class="torMarginFix" + data-l10n-id="tor-advanced-dialog-firewall-ports-input" + /> + </hbox> + </box> + </dialog> +</window> diff --git a/browser/components/torpreferences/content/lox-bridge-icon.svg b/browser/components/torpreferences/content/lox-bridge-icon.svg @@ -0,0 +1,6 @@ +<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"> +<rect x="0.5" y="0.5" width="17" height="17" rx="1.5" stroke="context-stroke"/> +<path d="M14.625 11.625C14.625 8.5184 12.1066 6 9 6C5.8934 6 3.375 8.5184 3.375 11.625V12.5596H4.25391V11.625C4.25391 9.0038 6.3788 6.87891 9 6.87891C11.6212 6.87891 13.7461 9.0038 13.7461 11.625V12.5596H14.625V11.625Z" fill="context-fill"/> +<path d="M12.9375 11.625C12.9375 9.45037 11.1746 7.6875 9 7.6875C6.82537 7.6875 5.0625 9.45037 5.0625 11.625L5.06242 12.5596H5.94132L5.9414 11.625C5.9414 9.93578 7.31078 8.5664 9 8.5664C10.6892 8.5664 12.0586 9.93578 12.0586 11.625L12.0587 12.5596H12.9376L12.9375 11.625Z" fill="context-fill"/> +<path d="M9 9.375C10.2426 9.375 11.25 10.3824 11.25 11.625L11.2502 12.5596H10.3713L10.3711 11.625C10.3711 10.8678 9.75724 10.2539 9 10.2539C8.24277 10.2539 7.62891 10.8678 7.62891 11.625L7.62873 12.5596H6.74982V11.625C6.74982 10.3824 7.75736 9.375 9 9.375Z" fill="context-fill"/> +</svg> diff --git a/browser/components/torpreferences/content/lox-bridge-pass.svg b/browser/components/torpreferences/content/lox-bridge-pass.svg @@ -0,0 +1,6 @@ +<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> + <path fill-rule="evenodd" clip-rule="evenodd" d="M0.825958 10.1991C0.191356 9.56445 0.191356 8.53556 0.825958 7.90095L7.89702 0.829887C8.53163 0.195285 9.56052 0.195285 10.1951 0.829887L11.3198 1.95455C11.5751 2.2099 11.6412 2.59873 11.4846 2.92409C11.0031 3.9241 12.0507 4.97168 13.0507 4.4902C13.376 4.33354 13.7649 4.39962 14.0202 4.65497L15.1449 5.77963C15.7795 6.41424 15.7795 7.44313 15.1449 8.07773L8.0738 15.1488C7.4392 15.7834 6.41031 15.7834 5.7757 15.1488L4.65104 14.0241C4.39569 13.7688 4.32961 13.38 4.48627 13.0546C4.96775 12.0546 3.92017 11.007 2.92016 11.4885C2.5948 11.6451 2.20597 11.5791 1.95062 11.3237L0.825958 10.1991ZM1.70984 8.78484C1.56339 8.93128 1.56339 9.16872 1.70984 9.31517L2.64555 10.2509C4.53493 9.58573 6.38902 11.4398 5.72388 13.3292L6.65959 14.2649C6.80603 14.4114 7.04347 14.4114 7.18992 14.2649L14.261 7.19385C14.4074 7.0474 14.4074 6.80996 14.261 6.66352L13.3253 5.7278C11.4359 6.39295 9.5818 4.53886 10.247 2.64948L9.31124 1.71377C9.16479 1.56732 8.92735 1.56732 8.78091 1.71377L1.70984 8.78484Z" fill="context-fill"/> + <path d="M8.87637 9.78539L9.76025 8.90151L10.6441 9.78539L9.76025 10.6693L8.87637 9.78539Z" fill="context-fill"/> + <path d="M7.1086 8.01763L7.99249 7.13374L8.87637 8.01763L7.99249 8.90151L7.1086 8.01763Z" fill="context-fill"/> + <path d="M5.34084 6.24986L6.22472 5.36598L7.1086 6.24986L6.22472 7.13374L5.34084 6.24986Z" fill="context-fill"/> +</svg> diff --git a/browser/components/torpreferences/content/lox-complete-ring.svg b/browser/components/torpreferences/content/lox-complete-ring.svg @@ -0,0 +1,12 @@ +<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg"> +<defs> + <filter id="ring-blur" x="0" y="0" width="44" height="44" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> + <feColorMatrix in="SourceGraphic" type="matrix" values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.5 0"/> + <feGaussianBlur stdDeviation="2"/> + <feBlend mode="normal" in="SourceGraphic"/> + </filter> +</defs> +<g filter="url(#ring-blur)"> +<path d="M40 22C40 31.9411 31.9411 40 22 40C12.0589 40 4 31.9411 4 22C4 12.0589 12.0589 4 22 4C31.9411 4 40 12.0589 40 22ZM6.25 22C6.25 30.6985 13.3015 37.75 22 37.75C30.6985 37.75 37.75 30.6985 37.75 22C37.75 13.3015 30.6985 6.25 22 6.25C13.3015 6.25 6.25 13.3015 6.25 22Z" fill="context-fill"/> +</g> +</svg> diff --git a/browser/components/torpreferences/content/lox-invite-icon.svg b/browser/components/torpreferences/content/lox-invite-icon.svg @@ -0,0 +1,4 @@ +<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"> +<rect x="0.5" y="0.5" width="17" height="17" rx="1.5" stroke="context-stroke"/> +<path d="M9 9C8.45 9 7.97917 8.80417 7.5875 8.4125C7.19583 8.02083 7 7.55 7 7C7 6.45 7.19583 5.97917 7.5875 5.5875C7.97917 5.19583 8.45 5 9 5C9.55 5 10.0208 5.19583 10.4125 5.5875C10.8042 5.97917 11 6.45 11 7C11 7.55 10.8042 8.02083 10.4125 8.4125C10.0208 8.80417 9.55 9 9 9ZM5 12V11.6C5 11.3167 5.07292 11.0563 5.21875 10.8187C5.36458 10.5812 5.55833 10.4 5.8 10.275C6.31667 10.0167 6.84167 9.82292 7.375 9.69375C7.90833 9.56458 8.45 9.5 9 9.5C9.55 9.5 10.0917 9.56458 10.625 9.69375C11.1583 9.82292 11.6833 10.0167 12.2 10.275C12.4417 10.4 12.6354 10.5812 12.7812 10.8187C12.9271 11.0563 13 11.3167 13 11.6V12C13 12.275 12.9021 12.5104 12.7063 12.7063C12.5104 12.9021 12.275 13 12 13H6C5.725 13 5.48958 12.9021 5.29375 12.7063C5.09792 12.5104 5 12.275 5 12ZM6 12H12V11.6C12 11.5083 11.9771 11.425 11.9313 11.35C11.8854 11.275 11.825 11.2167 11.75 11.175C11.3 10.95 10.8458 10.7813 10.3875 10.6688C9.92917 10.5563 9.46667 10.5 9 10.5C8.53333 10.5 8.07083 10.5563 7.6125 10.6688C7.15417 10.7813 6.7 10.95 6.25 11.175C6.175 11.2167 6.11458 11.275 6.06875 11.35C6.02292 11.425 6 11.5083 6 11.6V12ZM9 8C9.275 8 9.51042 7.90208 9.70625 7.70625C9.90208 7.51042 10 7.275 10 7C10 6.725 9.90208 6.48958 9.70625 6.29375C9.51042 6.09792 9.275 6 9 6C8.725 6 8.48958 6.09792 8.29375 6.29375C8.09792 6.48958 8 6.725 8 7C8 7.275 8.09792 7.51042 8.29375 7.70625C8.48958 7.90208 8.725 8 9 8Z" fill="context-fill"/> +</svg> diff --git a/browser/components/torpreferences/content/lox-progress-ring.svg b/browser/components/torpreferences/content/lox-progress-ring.svg @@ -0,0 +1,13 @@ +<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg"> +<defs> + <filter id="ring-blur" x="0" y="0" width="44" height="44" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> + <feColorMatrix in="SourceGraphic" type="matrix" values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.5 0"/> + <feGaussianBlur stdDeviation="2"/> + <feBlend mode="normal" in="SourceGraphic"/> + </filter> +</defs> +<path d="M 40,22 C 40,31.9411 31.9411,40 22,40 12.05887,40 4,31.9411 4,22 4,12.0589 12.05887,4 22,4 31.9411,4 40,12.0589 40,22 Z M 6.25,22 c 0,8.6985 7.05152,15.75 15.75,15.75 8.6985,0 15.75,-7.0515 15.75,-15.75 C 37.75,13.3015 30.6985,6.25 22,6.25 13.30152,6.25 6.25,13.3015 6.25,22 Z" fill="context-stroke"/> +<g filter="url(#ring-blur)"> + <path d="m 22,5.125 c 0,-0.62132 0.5042,-1.12866 1.1243,-1.08986 3.0298,0.18958 5.963,1.14263 8.5256,2.77013 0.5245,0.3331 0.6342,1.03991 0.269,1.54257 C 31.5537,8.8505 30.852,8.95814 30.3246,8.62974 28.1505,7.27609 25.6786,6.47291 23.1241,6.29015 22.5044,6.24582 22,5.74632 22,5.125 Z" fill="context-fill"/> +</g> +</svg> diff --git a/browser/components/torpreferences/content/lox-success.svg b/browser/components/torpreferences/content/lox-success.svg @@ -0,0 +1,5 @@ +<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> + <path d="M10 14C9.62059 14.0061 9.25109 13.8787 8.95594 13.6403C8.6608 13.4018 8.45874 13.0672 8.385 12.695L8.028 11.028C7.97202 10.7692 7.84264 10.5321 7.65536 10.345C7.46807 10.1579 7.23081 10.0287 6.972 9.973L5.305 9.616C4.524 9.447 4 8.798 4 8C4 7.202 4.524 6.553 5.305 6.385L6.972 6.028C7.23078 5.97185 7.46794 5.84243 7.65519 5.65519C7.84243 5.46794 7.97185 5.23078 8.028 4.972L8.386 3.305C8.553 2.524 9.202 2 10 2C10.798 2 11.447 2.524 11.615 3.305L11.972 4.972C12.086 5.5 12.5 5.914 13.028 6.027L14.695 6.384C15.476 6.553 16 7.202 16 8C16 8.798 15.476 9.447 14.695 9.615L13.028 9.972C12.769 10.028 12.5316 10.1575 12.3443 10.345C12.157 10.5324 12.0277 10.7699 11.972 11.029L11.614 12.695C11.5407 13.0672 11.3388 13.4019 11.0438 13.6404C10.7488 13.8789 10.3793 14.0062 10 14ZM10 3.25C9.902 3.25 9.669 3.28 9.608 3.566L9.25 5.234C9.14333 5.72828 8.89643 6.18132 8.53888 6.53888C8.18132 6.89643 7.72828 7.14333 7.234 7.25L5.567 7.607C5.281 7.669 5.25 7.902 5.25 8C5.25 8.098 5.281 8.331 5.567 8.393L7.234 8.75C7.72828 8.85667 8.18132 9.10357 8.53888 9.46112C8.89643 9.81868 9.14333 10.2717 9.25 10.766L9.608 12.434C9.669 12.72 9.902 12.75 10 12.75C10.098 12.75 10.331 12.72 10.392 12.434L10.75 10.767C10.8565 10.2725 11.1033 9.81928 11.4609 9.46154C11.8185 9.10379 12.2716 8.85674 12.766 8.75L14.433 8.393C14.719 8.331 14.75 8.098 14.75 8C14.75 7.902 14.719 7.669 14.433 7.607L12.766 7.25C12.2717 7.14333 11.8187 6.89643 11.4611 6.53888C11.1036 6.18132 10.8567 5.72828 10.75 5.234L10.392 3.566C10.331 3.28 10.098 3.25 10 3.25Z" fill="context-fill"/> + <path d="M2.44399 12.151L2.62599 11.302C2.71199 10.9 3.28599 10.9 3.37299 11.302L3.55499 12.151C3.57035 12.2229 3.60618 12.2888 3.65817 12.3408C3.71016 12.3928 3.77609 12.4286 3.84799 12.444L4.69699 12.626C5.09899 12.712 5.09899 13.286 4.69699 13.373L3.84799 13.555C3.77609 13.5704 3.71016 13.6062 3.65817 13.6582C3.60618 13.7102 3.57035 13.7761 3.55499 13.848L3.37299 14.697C3.28699 15.099 2.71299 15.099 2.62599 14.697L2.44399 13.848C2.42863 13.7761 2.39279 13.7102 2.3408 13.6582C2.28881 13.6062 2.22289 13.5704 2.15099 13.555L1.30199 13.373C0.899988 13.287 0.899988 12.713 1.30199 12.626L2.15099 12.444C2.22294 12.4288 2.28893 12.393 2.34094 12.341C2.39295 12.2889 2.42875 12.223 2.44399 12.151Z" fill="context-fill"/> + <path d="M2.44399 2.151L2.62599 1.302C2.71199 0.900004 3.28599 0.900004 3.37299 1.302L3.55499 2.151C3.57035 2.22291 3.60618 2.28883 3.65817 2.34082C3.71016 2.39281 3.77609 2.42864 3.84799 2.444L4.69699 2.626C5.09899 2.712 5.09899 3.286 4.69699 3.373L3.84899 3.556C3.77703 3.57125 3.71105 3.60704 3.65904 3.65905C3.60703 3.71106 3.57123 3.77705 3.55599 3.849L3.37299 4.698C3.28699 5.1 2.71299 5.1 2.62599 4.698L2.44399 3.849C2.42875 3.77705 2.39295 3.71106 2.34094 3.65905C2.28893 3.60704 2.22294 3.57125 2.15099 3.556L1.30199 3.373C0.899988 3.287 0.899988 2.713 1.30199 2.626L2.15099 2.444C2.22294 2.42876 2.28893 2.39296 2.34094 2.34095C2.39295 2.28894 2.42875 2.22296 2.44399 2.151Z" fill="context-fill"/> +</svg> diff --git a/browser/components/torpreferences/content/loxInviteDialog.js b/browser/components/torpreferences/content/loxInviteDialog.js @@ -0,0 +1,367 @@ +"use strict"; + +const { TorSettings, TorSettingsTopics, TorBridgeSource } = + ChromeUtils.importESModule("resource://gre/modules/TorSettings.sys.mjs"); + +const { Lox, LoxError, LoxTopics } = ChromeUtils.importESModule( + "resource://gre/modules/Lox.sys.mjs" +); + +/** + * Fake Lox module + +const LoxError = { + LoxServerUnreachable: "LoxServerUnreachable", + Other: "Other", +}; + +const Lox = { + remainingInvites: 5, + getRemainingInviteCount() { + return this.remainingInvites; + }, + invites: [ + '{"invite": [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]}', + '{"invite": [9,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]}', + ], + getInvites() { + return this.invites; + }, + failError: null, + generateInvite() { + return new Promise((res, rej) => { + setTimeout(() => { + if (this.failError) { + rej({ type: this.failError }); + return; + } + if (!this.remainingInvites) { + rej({ type: LoxError.Other }); + return; + } + const invite = JSON.stringify({ + invite: Array.from({ length: 100 }, () => + Math.floor(Math.random() * 265) + ), + }); + this.invites.push(invite); + this.remainingInvites--; + res(invite); + }, 4000); + }); + }, +}; +*/ + +const gLoxInvites = { + /** + * Initialize the dialog. + */ + init() { + this._dialog = document.getElementById("lox-invite-dialog"); + this._remainingInvitesEl = document.getElementById( + "lox-invite-dialog-remaining" + ); + this._generateArea = document.getElementById( + "lox-invite-dialog-generate-area" + ); + this._generateButton = document.getElementById( + "lox-invite-dialog-generate-button" + ); + this._errorEl = document.getElementById("lox-invite-dialog-error-message"); + this._inviteListEl = document.getElementById("lox-invite-dialog-list"); + + this._generateButton.addEventListener("click", () => { + this._generateNewInvite(); + }); + + const menu = document.getElementById("lox-invite-dialog-item-menu"); + this._inviteListEl.addEventListener("contextmenu", event => { + if (!this._inviteListEl.selectedItem) { + return; + } + menu.openPopupAtScreen(event.screenX, event.screenY, true); + }); + menu.addEventListener("popuphidden", () => { + menu.setAttribute("aria-hidden", "true"); + }); + menu.addEventListener("popupshowing", () => { + menu.removeAttribute("aria-hidden"); + }); + document + .getElementById("lox-invite-dialog-copy-menu-item") + .addEventListener("command", () => { + const selected = this._inviteListEl.selectedItem; + if (!selected) { + return; + } + const clipboard = Cc[ + "@mozilla.org/widget/clipboardhelper;1" + ].getService(Ci.nsIClipboardHelper); + clipboard.copyString(selected.textContent); + }); + + // NOTE: TorSettings should already be initialized when this dialog is + // opened. + Services.obs.addObserver(this, TorSettingsTopics.SettingsChanged); + Services.obs.addObserver(this, LoxTopics.UpdateActiveLoxId); + Services.obs.addObserver(this, LoxTopics.UpdateRemainingInvites); + Services.obs.addObserver(this, LoxTopics.NewInvite); + + // Set initial _loxId value. Can close this dialog. + this._updateLoxId(); + + this._updateRemainingInvites(); + this._updateExistingInvites(); + }, + + /** + * Un-initialize the dialog. + */ + uninit() { + Services.obs.removeObserver(this, TorSettingsTopics.SettingsChanged); + Services.obs.removeObserver(this, LoxTopics.UpdateActiveLoxId); + Services.obs.removeObserver(this, LoxTopics.UpdateRemainingInvites); + Services.obs.removeObserver(this, LoxTopics.NewInvite); + }, + + observe(subject, topic) { + switch (topic) { + case TorSettingsTopics.SettingsChanged: { + const { changes } = subject.wrappedJSObject; + if (changes.includes("bridges.source")) { + this._updateLoxId(); + } + break; + } + case LoxTopics.UpdateActiveLoxId: + this._updateLoxId(); + break; + case LoxTopics.UpdateRemainingInvites: + this._updateRemainingInvites(); + break; + case LoxTopics.NewInvite: + this._updateExistingInvites(); + break; + } + }, + + /** + * The loxId this dialog is shown for. null if uninitailized. + * + * @type {string?} + */ + _loxId: null, + /** + * Update the _loxId value. Will close the dialog if it changes after + * initialization. + */ + _updateLoxId() { + const loxId = + TorSettings.bridges.source === TorBridgeSource.Lox ? Lox.activeLoxId : ""; + if (!loxId || (this._loxId !== null && loxId !== this._loxId)) { + // No lox id, or it changed. Close this dialog. + this._dialog.cancelDialog(); + } + this._loxId = loxId; + }, + + /** + * The invites that are already shown. + * + * @type {Set<string>} + */ + _shownInvites: new Set(), + + /** + * Add a new invite at the start of the list. + * + * @param {string} invite - The invite to add. + */ + _addInvite(invite) { + if (this._shownInvites.has(invite)) { + return; + } + const newInvite = document.createXULElement("richlistitem"); + newInvite.classList.add("lox-invite-dialog-list-item"); + newInvite.textContent = invite; + + this._inviteListEl.prepend(newInvite); + this._shownInvites.add(invite); + }, + + /** + * Update the display of the existing invites. + */ + _updateExistingInvites() { + // Add new invites. + + // NOTE: we only expect invites to be appended, so we won't re-order any. + // NOTE: invites are ordered with the oldest first. + for (const invite of Lox.getInvites()) { + this._addInvite(invite); + } + }, + + /** + * The shown number or remaining invites we have. + * + * @type {integer} + */ + _remainingInvites: 0, + + /** + * Update the display of the remaining invites. + */ + _updateRemainingInvites() { + this._remainingInvites = Lox.getRemainingInviteCount(this._loxId); + + document.l10n.setAttributes( + this._remainingInvitesEl, + "tor-bridges-lox-remaining-invites", + { numInvites: this._remainingInvites } + ); + this._updateGenerateButtonState(); + }, + + /** + * Whether we are currently generating an invite. + * + * @type {boolean} + */ + _generating: false, + /** + * Set whether we are generating an invite. + * + * @param {boolean} isGenerating - Whether we are generating. + */ + _setGenerating(isGenerating) { + this._generating = isGenerating; + this._updateGenerateButtonState(); + this._generateArea.classList.toggle("show-connecting", isGenerating); + }, + + /** + * Whether the generate button is disabled. + * + * @type {boolean} + */ + _generateDisabled: false, + /** + * Update the state of the generate button. + */ + _updateGenerateButtonState() { + const disabled = this._generating || !this._remainingInvites; + this._generateDisabled = disabled; + // When generating we use "aria-disabled" rather than the "disabled" + // attribute so that the button can remain focusable whilst we generate + // invites. + // TODO: Replace with moz-button when it handles this for us. See + // tor-browser#43275. + this._generateButton.classList.toggle("spoof-button-disabled", disabled); + this._generateButton.tabIndex = disabled ? -1 : 0; + if (disabled) { + this._generateButton.setAttribute("aria-disabled", "true"); + } else { + this._generateButton.removeAttribute("aria-disabled"); + } + }, + + /** + * Start generating a new invite. + */ + _generateNewInvite() { + if (this._generateDisabled) { + return; + } + if (this._generating) { + console.error("Already generating an invite"); + return; + } + this._setGenerating(true); + // Clear the previous error. + this._updateGenerateError(null); + + let moveFocus = false; + Lox.generateInvite(this._loxId) + .finally(() => { + // Fetch whether the generate button has focus before we potentially + // disable it. + moveFocus = this._generateButton.contains(document.activeElement); + this._setGenerating(false); + }) + .then( + invite => { + this._addInvite(invite); + + if (!this._inviteListEl.contains(document.activeElement)) { + // Does not have focus, change the selected item to be the new + // invite (at index 0). + this._inviteListEl.selectedIndex = 0; + } + + if (moveFocus) { + // Move focus to the new invite before we hide the "Connecting" + // message. + this._inviteListEl.focus(); + } + }, + loxError => { + console.error("Failed to generate an invite", loxError); + switch (loxError instanceof LoxError ? loxError.code : null) { + case LoxError.LoxServerUnreachable: + this._updateGenerateError("no-server"); + break; + default: + this._updateGenerateError("generic"); + break; + } + } + ); + }, + + /** + * Update the shown generation error. + * + * @param {string?} type - The error type, or null if no error should be + * shown. + */ + _updateGenerateError(type) { + // First clear the existing error. + this._errorEl.removeAttribute("data-l10n-id"); + this._errorEl.textContent = ""; + this._generateArea.classList.toggle("show-error", !!type); + + if (!type) { + return; + } + + let errorId; + switch (type) { + case "no-server": + errorId = "lox-invite-dialog-no-server-error"; + break; + case "generic": + // Generic error. + errorId = "lox-invite-dialog-generic-invite-error"; + break; + } + + document.l10n.setAttributes(this._errorEl, errorId); + }, +}; + +window.addEventListener( + "DOMContentLoaded", + () => { + gLoxInvites.init(); + window.addEventListener( + "unload", + () => { + gLoxInvites.uninit(); + }, + { once: true } + ); + }, + { once: true } +); diff --git a/browser/components/torpreferences/content/loxInviteDialog.xhtml b/browser/components/torpreferences/content/loxInviteDialog.xhtml @@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?csp default-src chrome: ?> + +<window + type="child" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" + xmlns:html="http://www.w3.org/1999/xhtml" + data-l10n-id="lox-invite-dialog-title" +> + <!-- Context menu, aria-hidden whilst not shown so it does not appear in the + - document content. --> + <menupopup id="lox-invite-dialog-item-menu" aria-hidden="true"> + <menuitem + id="lox-invite-dialog-copy-menu-item" + data-l10n-id="lox-invite-dialog-menu-item-copy-invite" + /> + </menupopup> + <dialog id="lox-invite-dialog" buttons="accept"> + <linkset> + <html:link rel="stylesheet" href="chrome://global/skin/global.css" /> + <html:link + rel="stylesheet" + href="chrome://browser/skin/preferences/preferences.css" + /> + <html:link + rel="stylesheet" + href="chrome://browser/content/torpreferences/torPreferences.css" + /> + + <html:link rel="localization" href="toolkit/global/tor-browser.ftl" /> + <html:link + rel="localization" + href="locales-preview/tor-browser-no-translate.ftl" + /> + </linkset> + + <script src="chrome://browser/content/torpreferences/loxInviteDialog.js" /> + + <description data-l10n-id="lox-invite-dialog-description"></description> + <html:div id="lox-invite-dialog-generate-area"> + <html:span id="lox-invite-dialog-remaining"></html:span> + <html:button + id="lox-invite-dialog-generate-button" + data-l10n-id="lox-invite-dialog-request-button" + ></html:button> + <html:div id="lox-invite-dialog-message-area"> + <html:span + id="lox-invite-dialog-error-message" + role="alert" + ></html:span> + <img + id="lox-invite-dialog-loading-icon" + class="tor-loading-icon" + alt="" + /> + <html:span + id="lox-invite-dialog-connecting" + role="alert" + data-l10n-id="lox-invite-dialog-connecting" + ></html:span> + </html:div> + </html:div> + <html:div + id="lox-invite-dialog-list-label" + data-l10n-id="lox-invite-dialog-invites-label" + ></html:div> + <richlistbox + id="lox-invite-dialog-list" + aria-labelledby="lox-invite-dialog-list-label" + ></richlistbox> + </dialog> +</window> diff --git a/browser/components/torpreferences/content/mail.svg b/browser/components/torpreferences/content/mail.svg @@ -0,0 +1,3 @@ +<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"> + <path fill-rule="evenodd" d="M13 2.5H3C1.89543 2.5 1 3.39543 1 4.5V11.5C1 12.6046 1.89543 13.5 3 13.5H13C14.1046 13.5 15 12.6046 15 11.5V4.5C15 3.39543 14.1046 2.5 13 2.5ZM12.8023 3.75H3.19766L7.7466 7.91986C7.88997 8.05129 8.11003 8.05129 8.2534 7.91986L12.8023 3.75ZM2.25 4.57702V11.5C2.25 11.9142 2.58579 12.25 3 12.25H13C13.4142 12.25 13.75 11.9142 13.75 11.5V4.57702L9.09805 8.84131C8.47678 9.41081 7.52322 9.41081 6.90195 8.84131L2.25 4.57702Z" fill="context-fill" /> +</svg> diff --git a/browser/components/torpreferences/content/network-broken.svg b/browser/components/torpreferences/content/network-broken.svg @@ -0,0 +1,5 @@ +<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> +<rect width="18.6565" height="1.22295" rx="0.611475" transform="matrix(-0.707107 -0.707107 -0.707107 0.707107 14.9464 14.1921)" fill="context-fill"/> +<path fill-rule="evenodd" clip-rule="evenodd" d="M3.9498 1.68761C5.14904 0.918177 6.55296 0.5 8 0.5C9.98912 0.5 11.8968 1.29018 13.3033 2.6967C14.7098 4.10322 15.5 6.01088 15.5 8C15.5 9.44704 15.0818 10.851 14.3124 12.0502L13.3945 11.1323C13.8373 10.3656 14.1137 9.51118 14.202 8.625H11.973C11.9515 8.95148 11.9131 9.27556 11.8582 9.596L9.63719 7.375H10.719C10.573 5.44665 9.75105 3.63171 8.398 2.25H7.602C7.08087 2.78217 6.63852 3.37861 6.28323 4.02104L5.37173 3.10954C5.55124 2.81339 5.74752 2.52639 5.96 2.25H5.552C5.31395 2.35224 5.08325 2.46884 4.86107 2.59888L3.9498 1.68761ZM13.0242 4.30006C12.3637 3.39877 11.4738 2.69088 10.447 2.25H10.04C11.1778 3.72922 11.8509 5.51288 11.974 7.375H14.203C14.0918 6.26313 13.6848 5.20135 13.0242 4.30006Z" fill="context-fill"/> +<path fill-rule="evenodd" clip-rule="evenodd" d="M3.08673 2.33343C2.9529 2.44948 2.82278 2.57061 2.6967 2.6967C1.29018 4.10322 0.5 6.01088 0.5 8C0.5 9.98912 1.29018 11.8968 2.6967 13.3033C4.10322 14.7098 6.01088 15.5 8 15.5C9.98912 15.5 11.8968 14.7098 13.3033 13.3033C13.4294 13.1772 13.5505 13.0471 13.6666 12.9133L12.7733 12.02C12.1456 12.7694 11.3496 13.3627 10.448 13.75H10.039C10.7209 12.8639 11.2359 11.8685 11.5656 10.8123L10.5448 9.79147C10.2135 11.2778 9.47326 12.6509 8.397 13.75H7.602C6.24895 12.3683 5.427 10.5534 5.281 8.625H9.37831L8.12831 7.375H5.281C5.34173 6.57283 5.51944 5.79028 5.80369 5.05038L4.8504 4.09709C4.38292 5.12591 4.10162 6.23576 4.026 7.375H1.797C1.90802 6.2632 2.31487 5.20145 2.97523 4.30016C3.26721 3.90165 3.60404 3.54094 3.97771 3.22441L3.08673 2.33343ZM2.97497 11.7C3.63536 12.6014 4.52524 13.3092 5.552 13.75H5.96C4.82222 12.2708 4.14912 10.4871 4.026 8.625H1.797C1.90781 9.73686 2.31458 10.7987 2.97497 11.7Z" fill="context-fill"/> +</svg> diff --git a/browser/components/torpreferences/content/network.svg b/browser/components/torpreferences/content/network.svg @@ -0,0 +1,3 @@ +<svg viewBox="0 0 16 16" width="16" height="16" xmlns="http://www.w3.org/2000/svg"> + <path d="m 8,0.5 a 7.5,7.5 0 1 0 0,15 7.5,7.5 0 0 0 0,-15 z m 2.447,1.75 a 6.255,6.255 0 0 1 3.756,5.125 H 11.974 A 9.426,9.426 0 0 0 10.04,2.25 Z m -2.049,0 a 8.211,8.211 0 0 1 2.321,5.125 H 5.281 A 8.211,8.211 0 0 1 7.602,2.25 Z m -2.846,0 H 5.96 A 9.434,9.434 0 0 0 4.026,7.375 H 1.797 A 6.254,6.254 0 0 1 5.552,2.25 Z m 0,11.5 A 6.252,6.252 0 0 1 1.797,8.625 H 4.026 A 9.426,9.426 0 0 0 5.96,13.75 Z m 2.05,0 A 8.211,8.211 0 0 1 5.281,8.625 h 5.437 A 8.211,8.211 0 0 1 8.397,13.75 Z m 2.846,0 h -0.409 a 9.418,9.418 0 0 0 1.934,-5.125 h 2.229 a 6.253,6.253 0 0 1 -3.754,5.125 z" fill="context-fill" /> +</svg> diff --git a/browser/components/torpreferences/content/provideBridgeDialog.js b/browser/components/torpreferences/content/provideBridgeDialog.js @@ -0,0 +1,544 @@ +"use strict"; + +const { TorSettings, TorBridgeSource, validateBridgeLines } = + ChromeUtils.importESModule("resource://gre/modules/TorSettings.sys.mjs"); + +const { TorConnect, TorConnectStage, TorConnectTopics } = + ChromeUtils.importESModule("resource://gre/modules/TorConnect.sys.mjs"); + +const { TorParsers } = ChromeUtils.importESModule( + "resource://gre/modules/TorParsers.sys.mjs" +); + +const { Lox, LoxError } = ChromeUtils.importESModule( + "resource://gre/modules/Lox.sys.mjs" +); + +/* + * Fake Lox module: + +const LoxError = { + BadInvite: "BadInvite", + LoxServerUnreachable: "LoxServerUnreachable", + Other: "Other", +}; + +const Lox = { + failError: null, + // failError: LoxError.BadInvite, + // failError: LoxError.LoxServerUnreachable, + // failError: LoxError.Other, + redeemInvite(invite) { + return new Promise((res, rej) => { + setTimeout(() => { + if (this.failError) { + rej({ type: this.failError }); + } + res("lox-id-000000"); + }, 4000); + }); + }, + validateInvitation(invite) { + return invite.startsWith("lox-invite"); + }, + getBridges(id) { + return [ + "0:0 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "0:1 BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB", + ]; + }, +}; +*/ + +const gProvideBridgeDialog = { + init() { + this._result = window.arguments[0]; + const mode = window.arguments[1].mode; + + let titleId; + switch (mode) { + case "edit": + titleId = "user-provide-bridge-dialog-edit-title"; + break; + case "add": + titleId = "user-provide-bridge-dialog-add-title"; + break; + case "replace": + default: + titleId = "user-provide-bridge-dialog-replace-title"; + break; + } + + document.l10n.setAttributes(document.documentElement, titleId); + + this._allowLoxInvite = mode !== "edit" && Lox.enabled; + + document.l10n.setAttributes( + document.getElementById("user-provide-bridge-textarea-label"), + this._allowLoxInvite + ? "user-provide-bridge-dialog-textarea-addresses-or-invite-label" + : "user-provide-bridge-dialog-textarea-addresses-label" + ); + + this._dialog = document.getElementById("user-provide-bridge-dialog"); + this._acceptButton = this._dialog.getButton("accept"); + + // Inject our stylesheet into the shadow root so that the accept button can + // take the spoof-button-disabled styling and tor-button styling. + const styleLink = document.createElement("link"); + styleLink.rel = "stylesheet"; + styleLink.href = + "chrome://browser/content/torpreferences/torPreferences.css"; + this._dialog.shadowRoot.append(styleLink); + + this._textarea = document.getElementById("user-provide-bridge-textarea"); + this._errorEl = document.getElementById( + "user-provide-bridge-error-message" + ); + this._resultDescription = document.getElementById( + "user-provide-result-description" + ); + this._bridgeGrid = document.getElementById( + "user-provide-bridge-grid-display" + ); + this._rowTemplate = document.getElementById( + "user-provide-bridge-row-template" + ); + + if (mode === "edit") { + // Only expected if the bridge source is UseProvided, but verify to be + // sure. + if (TorSettings.bridges.source == TorBridgeSource.UserProvided) { + this._textarea.value = TorSettings.bridges.bridge_strings.join("\n"); + } + } else { + // Set placeholder if not editing. + document.l10n.setAttributes( + this._textarea, + this._allowLoxInvite + ? "user-provide-bridge-dialog-textarea-addresses-or-invite" + : "user-provide-bridge-dialog-textarea-addresses" + ); + } + + this._textarea.addEventListener("input", () => this.onValueChange()); + + this._dialog.addEventListener("dialogaccept", event => + this.onDialogAccept(event) + ); + + Services.obs.addObserver(this, TorConnectTopics.StageChange); + + this.setPage("entry"); + this.checkValue(); + }, + + uninit() { + Services.obs.removeObserver(this, TorConnectTopics.StageChange); + }, + + /** + * Set the page to display. + * + * @param {string} page - The page to show. + */ + setPage(page) { + this._page = page; + this._dialog.classList.toggle("show-entry-page", page === "entry"); + this._dialog.classList.toggle("show-result-page", page === "result"); + this.takeFocus(); + this.updateResult(); + this.updateAcceptDisabled(); + this.onAcceptStateChange(); + }, + + /** + * Reset focus position in the dialog. + */ + takeFocus() { + switch (this._page) { + case "entry": + this._textarea.focus(); + break; + case "result": + // Move focus to the table. + // In particular, we do not want to keep the focus on the (same) accept + // button (with now different text). + this._bridgeGrid.focus(); + break; + } + }, + + /** + * Callback for whenever the input value changes. + */ + onValueChange() { + this.updateAcceptDisabled(); + // Reset errors whenever the value changes. + this.updateError(null); + }, + + /** + * Callback for whenever the accept button may need to change. + */ + onAcceptStateChange() { + let connect = false; + if (this._page === "entry") { + this._acceptButton.setAttribute( + "data-l10n-id", + "user-provide-bridge-dialog-next-button" + ); + } else { + connect = TorConnect.stageName !== TorConnectStage.Bootstrapped; + this._acceptButton.setAttribute( + "data-l10n-id", + connect + ? "bridge-dialog-button-connect2" + : "bridge-dialog-button-accept2" + ); + } + this._result.connect = connect; + this._acceptButton.classList.toggle("tor-button", connect); + }, + + /** + * Whether the dialog accept button is disabled. + * + * @type {boolean} + */ + _acceptDisabled: false, + /** + * Callback for whenever the accept button's might need to be disabled. + */ + updateAcceptDisabled() { + const disabled = + this._page === "entry" && (this.isEmpty() || this._loxLoading); + this._acceptDisabled = disabled; + // Spoof the button to look and act as if it is disabled, but still allow + // keyboard focus so the user can sit on this button whilst we are loading. + // TODO: Replace with moz-button when it handles this for us. See + // tor-browser#43275. + this._acceptButton.classList.toggle("spoof-button-disabled", disabled); + this._acceptButton.tabIndex = disabled ? -1 : 0; + if (disabled) { + this._acceptButton.setAttribute("aria-disabled", "true"); + } else { + this._acceptButton.removeAttribute("aria-disabled"); + } + }, + + /** + * The lox loading state. + * + * @type {boolean} + */ + _loxLoading: false, + + /** + * Set the lox loading state. I.e. whether we are connecting to the lox + * server. + * + * @param {boolean} isLoading - Whether we are loading or not. + */ + setLoxLoading(isLoading) { + this._loxLoading = isLoading; + this._textarea.readOnly = isLoading; + this._dialog.classList.toggle("show-connecting", isLoading); + this.updateAcceptDisabled(); + }, + + /** + * Callback for when the accept button is pressed. + * + * @param {Event} event - The dialogaccept event. + */ + onDialogAccept(event) { + if (this._acceptDisabled) { + // Prevent closing. + event.preventDefault(); + return; + } + + if (this._page === "result") { + this._result.accepted = true; + // Continue to close the dialog. + return; + } + // Prevent closing the dialog. + event.preventDefault(); + + if (this._loxLoading) { + // User can still click Next whilst loading. + console.error("Already have a pending lox invite"); + return; + } + + // Clear the result from any previous attempt. + delete this._result.loxId; + delete this._result.addresses; + // Clear any previous error. + this.updateError(null); + + const value = this.checkValue(); + if (!value) { + // Not valid. + return; + } + if (value.loxInvite) { + this.setLoxLoading(true); + Lox.redeemInvite(value.loxInvite) + .finally(() => { + // Set set the loading to false before setting the errors. + this.setLoxLoading(false); + }) + .then( + loxId => { + this._result.loxId = loxId; + this.setPage("result"); + }, + loxError => { + console.error("Redeeming failed", loxError); + switch (loxError instanceof LoxError ? loxError.code : null) { + case LoxError.BadInvite: + // TODO: distinguish between a bad invite, an invite that has + // expired, and an invite that has already been redeemed. + this.updateError({ type: "bad-invite" }); + break; + case LoxError.LoxServerUnreachable: + this.updateError({ type: "no-server" }); + break; + default: + this.updateError({ type: "invite-error" }); + break; + } + } + ); + return; + } + + if (!value.addresses?.length) { + // Not valid + return; + } + this._result.addresses = value.addresses; + this.setPage("result"); + }, + + /** + * Update the displayed error. + * + * @param {object?} error - The error to show, or null if no error should be + * shown. Should include the "type" property. + */ + updateError(error) { + // First clear the existing error. + this._errorEl.removeAttribute("data-l10n-id"); + this._errorEl.textContent = ""; + if (error) { + this._textarea.setAttribute("aria-invalid", "true"); + } else { + this._textarea.removeAttribute("aria-invalid"); + } + this._textarea.classList.toggle("invalid-input", !!error); + this._dialog.classList.toggle("show-error", !!error); + + if (!error) { + return; + } + + let errorId; + let errorArgs; + switch (error.type) { + case "invalid-address": + errorId = "user-provide-bridge-dialog-address-error"; + errorArgs = { line: error.line }; + break; + case "multiple-invites": + errorId = "user-provide-bridge-dialog-multiple-invites-error"; + break; + case "mixed": + errorId = "user-provide-bridge-dialog-mixed-error"; + break; + case "not-allowed-invite": + errorId = "user-provide-bridge-dialog-invite-not-allowed-error"; + break; + case "bad-invite": + errorId = "user-provide-bridge-dialog-bad-invite-error"; + break; + case "no-server": + errorId = "user-provide-bridge-dialog-no-server-error"; + break; + case "invite-error": + // Generic invite error. + errorId = "user-provide-bridge-dialog-generic-invite-error"; + break; + } + + document.l10n.setAttributes(this._errorEl, errorId, errorArgs); + }, + + /** + * The condition for the value to be empty. + * + * @type {RegExp} + */ + _emptyRegex: /^\s*$/, + /** + * Whether the input is considered empty. + * + * @returns {boolean} true if it is considered empty. + */ + isEmpty() { + return this._emptyRegex.test(this._textarea.value); + }, + + /** + * Check the current value in the textarea. + * + * @returns {object?} - The bridge addresses, or lox invite, or null if no + * valid value. + */ + checkValue() { + if (this.isEmpty()) { + // If empty, we just disable the button, rather than show an error. + this.updateError(null); + return null; + } + + // Only check if this looks like a Lox invite when the Lox module is + // enabled. + if (Lox.enabled) { + let loxInvite = null; + for (let line of this._textarea.value.split(/\r?\n/)) { + line = line.trim(); + if (!line) { + continue; + } + // TODO: Once we have a Lox invite encoding, distinguish between a valid + // invite and something that looks like it should be an invite. + const isLoxInvite = Lox.validateInvitation(line); + if (isLoxInvite) { + if (!this._allowLoxInvite) { + // Lox is enabled, but not allowed invites when editing bridge + // addresses. + this.updateError({ type: "not-allowed-invite" }); + return null; + } + if (loxInvite) { + this.updateError({ type: "multiple-invites" }); + return null; + } + loxInvite = line; + } else if (loxInvite) { + this.updateError({ type: "mixed" }); + return null; + } + } + + if (loxInvite) { + return { loxInvite }; + } + } + + const validation = validateBridgeLines(this._textarea.value); + if (validation.errorLines.length) { + // Report first error. + this.updateError({ + type: "invalid-address", + line: validation.errorLines[0], + }); + return null; + } + + return { addresses: validation.validBridges }; + }, + + /** + * Update the shown result on the last page. + */ + updateResult() { + if (this._page !== "result") { + return; + } + + const loxId = this._result.loxId; + + document.l10n.setAttributes( + this._resultDescription, + loxId + ? "user-provide-bridge-dialog-result-invite" + : "user-provide-bridge-dialog-result-addresses" + ); + + this._bridgeGrid.replaceChildren(); + + const bridgeResult = loxId ? Lox.getBridges(loxId) : this._result.addresses; + + for (const bridgeLine of bridgeResult) { + let details; + try { + details = TorParsers.parseBridgeLine(bridgeLine); + } catch (e) { + console.error(`Detected invalid bridge line: ${bridgeLine}`, e); + } + + const rowEl = this._rowTemplate.content.children[0].cloneNode(true); + + const emojiBlock = rowEl.querySelector(".tor-bridges-emojis-block"); + const BridgeEmoji = customElements.get("tor-bridge-emoji"); + for (const cell of BridgeEmoji.createForAddress(bridgeLine)) { + // Each emoji is its own cell, we rely on the fact that createForAddress + // always returns four elements. + cell.setAttribute("role", "cell"); + cell.classList.add("tor-bridges-grid-cell", "tor-bridges-emoji-cell"); + emojiBlock.append(cell); + } + + const transport = details?.transport ?? "vanilla"; + const typeCell = rowEl.querySelector(".tor-bridges-type-cell"); + if (transport === "vanilla") { + document.l10n.setAttributes( + typeCell, + "tor-bridges-type-prefix-generic" + ); + } else { + document.l10n.setAttributes(typeCell, "tor-bridges-type-prefix", { + type: transport, + }); + } + + rowEl.querySelector(".tor-bridges-address-cell-text").textContent = + bridgeLine; + + this._bridgeGrid.append(rowEl); + } + }, + + observe(subject, topic) { + switch (topic) { + case TorConnectTopics.StageChange: + this.onAcceptStateChange(); + break; + } + }, +}; + +document.subDialogSetDefaultFocus = () => { + // Set the focus to the text area on load. + gProvideBridgeDialog.takeFocus(); +}; + +window.addEventListener( + "DOMContentLoaded", + () => { + gProvideBridgeDialog.init(); + window.addEventListener( + "unload", + () => { + gProvideBridgeDialog.uninit(); + }, + { once: true } + ); + }, + { once: true } +); diff --git a/browser/components/torpreferences/content/provideBridgeDialog.xhtml b/browser/components/torpreferences/content/provideBridgeDialog.xhtml @@ -0,0 +1,106 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?csp default-src chrome: ?> + +<window + type="child" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" + xmlns:html="http://www.w3.org/1999/xhtml" +> + <dialog + id="user-provide-bridge-dialog" + buttons="accept,cancel" + class="show-entry-page" + > + <linkset> + <html:link rel="stylesheet" href="chrome://global/skin/global.css" /> + <html:link + rel="stylesheet" + href="chrome://browser/skin/preferences/preferences.css" + /> + <html:link + rel="stylesheet" + href="chrome://browser/content/torpreferences/torPreferences.css" + /> + + <html:link rel="localization" href="toolkit/global/tor-browser.ftl" /> + </linkset> + + <script src="chrome://browser/content/torpreferences/bridgemoji/BridgeEmoji.js" /> + <script src="chrome://browser/content/torpreferences/provideBridgeDialog.js" /> + + <html:div id="user-provide-bridge-entry-page"> + <description id="user-provide-bridge-description"> + <html:span + data-l10n-id="user-provide-bridge-dialog-description" + ></html:span> + <label + is="text-link" + class="learnMore text-link" + href="about:manual#bridges" + useoriginprincipal="true" + data-l10n-id="user-provide-bridge-dialog-learn-more" + /> + </description> + <html:label + id="user-provide-bridge-textarea-label" + for="user-provide-bridge-textarea" + ></html:label> + <html:textarea + id="user-provide-bridge-textarea" + multiline="true" + rows="3" + aria-describedby="user-provide-bridge-description" + aria-errormessage="user-provide-bridge-error-message" + /> + <html:div id="user-provide-bridge-message-area"> + <html:span + id="user-provide-bridge-error-message" + role="alert" + ></html:span> + <img + id="user-provide-bridge-loading-icon" + class="tor-loading-icon" + alt="" + /> + <html:span + id="user-provide-bridge-connecting" + role="alert" + data-l10n-id="user-provide-bridge-dialog-connecting" + ></html:span> + </html:div> + </html:div> + <html:div id="user-provide-bridge-result-page"> + <description id="user-provide-result-description" /> + <!-- NOTE: Unlike #tor-bridge-grid-display, this element is not + - interactive, and not a tab-stop. So we use the "table" role rather + - than "grid". + - NOTE: Using a <html:table> would not allow us the same structural + - freedom, so we use a generic div and add the semantics manually. --> + <html:div + id="user-provide-bridge-grid-display" + class="tor-bridges-grid" + role="table" + tabindex="0" + aria-labelledby="user-provide-result-description" + ></html:div> + <html:template id="user-provide-bridge-row-template"> + <html:div class="tor-bridges-grid-row" role="row"> + <html:span + class="tor-bridges-type-cell tor-bridges-grid-cell" + role="cell" + ></html:span> + <html:span class="tor-bridges-emojis-block" role="none"></html:span> + <html:span class="tor-bridges-grid-end-block" role="none"> + <html:span + class="tor-bridges-address-cell tor-bridges-grid-cell" + role="cell" + > + <html:span class="tor-bridges-address-cell-text"></html:span> + </html:span> + </html:span> + </html:div> + </html:template> + </html:div> + </dialog> +</window> diff --git a/browser/components/torpreferences/content/requestBridgeDialog.js b/browser/components/torpreferences/content/requestBridgeDialog.js @@ -0,0 +1,212 @@ +"use strict"; + +const { BridgeDB } = ChromeUtils.importESModule( + "resource://gre/modules/BridgeDB.sys.mjs" +); + +const { TorConnect, TorConnectStage, TorConnectTopics } = + ChromeUtils.importESModule("resource://gre/modules/TorConnect.sys.mjs"); + +const log = console.createInstance({ + maxLogLevel: "Warn", + prefix: "requestBridgeDialog", +}); + +const gRequestBridgeDialog = { + selectors: { + dialogHeader: "#torPreferences-requestBridge-header", + captchaImage: "image#torPreferences-requestBridge-captchaImage", + captchaEntryTextbox: "input#torPreferences-requestBridge-captchaTextbox", + refreshCaptchaButton: + "button#torPreferences-requestBridge-refreshCaptchaButton", + incorrectCaptchaHbox: + "hbox#torPreferences-requestBridge-incorrectCaptchaHbox", + }, + + init() { + this._result = window.arguments[0]; + + const selectors = this.selectors; + + this._dialog = document.getElementById( + "torPreferences-requestBridge-dialog" + ); + + // Add styling for tor-button to the dialog shadow root. + const styleLink = document.createElement("link"); + styleLink.rel = "stylesheet"; + styleLink.href = + "chrome://browser/content/torpreferences/torPreferences.css"; + this._dialog.shadowRoot.append(styleLink); + + // user may have opened a Request Bridge dialog in another tab, so update the + // CAPTCHA image or close out the dialog if we have a bridge list + this._dialog.addEventListener("focusin", () => { + const uri = BridgeDB.currentCaptchaImage; + const bridges = BridgeDB.currentBridges; + + // new captcha image + if (uri) { + this._setcaptchaImage(uri); + } else if (bridges) { + this._dialog.cancelDialog(); + } + }); + + this._submitButton = this._dialog.getButton("accept"); + this._submitButton.disabled = true; + this._dialog.addEventListener("dialogaccept", e => { + e.preventDefault(); + this.onSubmitCaptcha(); + }); + + this._dialogHeader = this._dialog.querySelector(selectors.dialogHeader); + + this._captchaImage = this._dialog.querySelector(selectors.captchaImage); + + // request captcha from bridge db + BridgeDB.requestNewCaptchaImage().then(uri => { + this._setcaptchaImage(uri); + }); + + this._captchaEntryTextbox = this._dialog.querySelector( + selectors.captchaEntryTextbox + ); + this._captchaEntryTextbox.disabled = true; + // disable submit if entry textbox is empty + this._captchaEntryTextbox.oninput = () => { + this._submitButton.disabled = this._captchaEntryTextbox.value == ""; + }; + + this._captchaRefreshButton = this._dialog.querySelector( + selectors.refreshCaptchaButton + ); + this._captchaRefreshButton.disabled = true; + this._captchaRefreshButton.addEventListener("command", () => { + this.onRefreshCaptcha(); + }); + + this._incorrectCaptchaHbox = this._dialog.querySelector( + selectors.incorrectCaptchaHbox + ); + + Services.obs.addObserver(this, TorConnectTopics.StageChange); + this.onAcceptStateChange(); + }, + + uninit() { + BridgeDB.close(); + // Unregister our observer topics. + Services.obs.removeObserver(this, TorConnectTopics.StageChange); + }, + + onAcceptStateChange() { + const connect = TorConnect.stageName !== TorConnectStage.Bootstrapped; + this._result.connect = connect; + this._submitButton.setAttribute( + "data-l10n-id", + connect ? "bridge-dialog-button-connect2" : "bridge-dialog-button-submit2" + ); + this._submitButton.classList.toggle("tor-button", connect); + }, + + observe(subject, topic) { + switch (topic) { + case TorConnectTopics.StageChange: + this.onAcceptStateChange(); + break; + } + }, + + _setcaptchaImage(uri) { + if (!uri) { + return; + } + if (uri != this._captchaImage.src) { + this._captchaImage.src = uri; + this._dialogHeader.setAttribute( + "data-l10n-id", + "request-bridge-dialog-top-solve" + ); + this._setUIDisabled(false); + this._captchaEntryTextbox.focus(); + this._captchaEntryTextbox.select(); + } + }, + + _setUIDisabled(disabled) { + this._submitButton.disabled = this._captchaGuessIsEmpty() || disabled; + this._captchaEntryTextbox.disabled = disabled; + this._captchaRefreshButton.disabled = disabled; + }, + + _captchaGuessIsEmpty() { + return this._captchaEntryTextbox.value == ""; + }, + + /* + Event Handlers + */ + onSubmitCaptcha() { + let captchaText = this._captchaEntryTextbox.value.trim(); + // noop if the field is empty + if (captchaText == "") { + return; + } + + // freeze ui while we make request + this._setUIDisabled(true); + this._incorrectCaptchaHbox.style.visibility = "hidden"; + + BridgeDB.submitCaptchaGuess(captchaText) + .then(aBridges => { + if (aBridges && aBridges.length) { + this._result.accepted = true; + this._result.bridges = aBridges; + this._submitButton.disabled = false; + // This was successful, but use cancelDialog() to close, since + // we intercept the `dialogaccept` event. + this._dialog.cancelDialog(); + } else { + this._setUIDisabled(false); + this._incorrectCaptchaHbox.style.visibility = "visible"; + } + }) + .catch(aError => { + // TODO: handle other errors properly here when we do the bridge settings re-design + this._setUIDisabled(false); + this._incorrectCaptchaHbox.style.visibility = "visible"; + log.error(aError); + }); + }, + + onRefreshCaptcha() { + this._setUIDisabled(true); + this._captchaImage.src = ""; + this._dialogHeader.setAttribute( + "data-l10n-id", + "request-bridge-dialog-top-wait" + ); + this._captchaEntryTextbox.value = ""; + this._incorrectCaptchaHbox.style.visibility = "hidden"; + + BridgeDB.requestNewCaptchaImage().then(uri => { + this._setcaptchaImage(uri); + }); + }, +}; + +window.addEventListener( + "DOMContentLoaded", + () => { + gRequestBridgeDialog.init(); + window.addEventListener( + "unload", + () => { + gRequestBridgeDialog.uninit(); + }, + { once: true } + ); + }, + { once: true } +); diff --git a/browser/components/torpreferences/content/requestBridgeDialog.xhtml b/browser/components/torpreferences/content/requestBridgeDialog.xhtml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?csp default-src chrome:; img-src data: ?> + +<window + type="child" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" + xmlns:html="http://www.w3.org/1999/xhtml" + data-l10n-id="request-bridge-dialog-title" +> + <dialog id="torPreferences-requestBridge-dialog" buttons="accept,cancel"> + <linkset> + <html:link rel="stylesheet" href="chrome://global/skin/global.css" /> + <html:link + rel="stylesheet" + href="chrome://browser/skin/preferences/preferences.css" + /> + <html:link + rel="stylesheet" + href="chrome://browser/content/torpreferences/torPreferences.css" + /> + + <html:link rel="localization" href="toolkit/global/tor-browser.ftl" /> + </linkset> + + <script src="chrome://browser/content/torpreferences/requestBridgeDialog.js" /> + + <description + id="torPreferences-requestBridge-header" + data-l10n-id="request-bridge-dialog-top-solve" + ></description> + <!-- init to transparent 400x125 png --> + <image id="torPreferences-requestBridge-captchaImage" flex="1" /> + <hbox id="torPreferences-requestBridge-inputHbox"> + <html:input + id="torPreferences-requestBridge-captchaTextbox" + type="text" + data-l10n-id="request-bridge-dialog-captcha-input" + /> + <button + id="torPreferences-requestBridge-refreshCaptchaButton" + image="chrome://global/skin/icons/reload.svg" + /> + </hbox> + <hbox id="torPreferences-requestBridge-incorrectCaptchaHbox" align="center"> + <image id="torPreferences-requestBridge-errorIcon" /> + <label data-l10n-id="request-bridge-dialog-captcha-failed" flex="1" /> + </hbox> + </dialog> +</window> diff --git a/browser/components/torpreferences/content/telegram-logo.svg b/browser/components/torpreferences/content/telegram-logo.svg @@ -0,0 +1,3 @@ +<svg width="16" height="16" viewBox="0 0 16 16" fill="context-fill" xmlns="http://www.w3.org/2000/svg"> + <path fill-rule="evenodd" clip-rule="evenodd" d="M13.5527 3.74072C13.6057 3.44502 13.3069 3.21007 13.0321 3.33143L2.46222 7.99865L5.04818 8.60316L10.1001 5.29184C10.8373 4.80861 11.6593 5.7727 11.0656 6.42426L7.88895 9.91029L11.9093 12.8968L13.5527 3.74072ZM12.5272 2.18794C13.7181 1.66208 15.013 2.68016 14.783 3.96155L13.104 13.3162C12.9564 14.1382 11.9962 14.5186 11.3258 14.0205L7.03263 10.8313C6.49819 10.4343 6.42353 9.66259 6.87195 9.17049L7.47872 8.50462L5.68862 9.67797C5.4311 9.84676 5.11564 9.90263 4.81582 9.83254L1.81371 9.13075C0.762034 8.8849 0.627375 7.4424 1.61537 7.00614L12.5272 2.18794Z"/> +</svg> diff --git a/browser/components/torpreferences/content/torLogDialog.js b/browser/components/torpreferences/content/torLogDialog.js @@ -0,0 +1,124 @@ +"use strict"; + +const { setTimeout, clearTimeout } = ChromeUtils.importESModule( + "resource://gre/modules/Timer.sys.mjs" +); + +const { TorProviderBuilder, TorProviderTopics } = ChromeUtils.importESModule( + "resource://gre/modules/TorProviderBuilder.sys.mjs" +); + +const gTorLogDialog = { + init() { + const dialog = document.getElementById("torPreferences-torLog-dialog"); + const copyLogButton = dialog.getButton("extra1"); + copyLogButton.setAttribute("data-l10n-id", "tor-log-dialog-copy-button"); + + this._logTable = document.getElementById("tor-log-table"); + this._logBody = document.getElementById("tor-log-body"); + + let restoreButtonTimeout = null; + copyLogButton.addEventListener("command", () => { + // Copy tor log messages to the system clipboard. + let clipboard = Cc["@mozilla.org/widget/clipboardhelper;1"].getService( + Ci.nsIClipboardHelper + ); + // The copied text should match the text content the user would get if + // they hand-selected the entire table. + clipboard.copyString( + Array.from( + this._logTable.querySelectorAll("td"), + el => el.textContent + ).join("\n") + ); + + copyLogButton.setAttribute( + "data-l10n-id", + "tor-log-dialog-copy-button-copied" + ); + copyLogButton.classList.add("primary"); + + const RESTORE_TIME = 1200; + if (restoreButtonTimeout !== null) { + clearTimeout(restoreButtonTimeout); + } + restoreButtonTimeout = setTimeout(() => { + copyLogButton.setAttribute( + "data-l10n-id", + "tor-log-dialog-copy-button" + ); + copyLogButton.classList.remove("primary"); + restoreButtonTimeout = null; + }, RESTORE_TIME); + }); + + // Intercept the copy event. + // NOTE: We attach this to the window rather than the _logTable because if + // the whole table is selected it will not receive the "copy" event. + window.addEventListener("copy", event => { + event.preventDefault(); + event.clipboardData.setData( + "text", + // By default the selected text will insert "\n\t" between the <td> + // elements, which separates the timestamp from the message column. + // We drop this "\t" character, to just keep the "\n". + window.getSelection().toString().replace(/^\t/gm, "") + ); + }); + + Services.obs.addObserver(this, TorProviderTopics.TorLog); + window.addEventListener( + "unload", + () => { + Services.obs.removeObserver(this, TorProviderTopics.TorLog); + }, + { once: true } + ); + + for (const logEntry of TorProviderBuilder.getLog()) { + this.addLogEntry(logEntry, true); + } + // Set the initial scroll to the bottom. + this._logTable.scrollTo({ + top: this._logTable.scrollTopMax, + behaviour: "instant", + }); + }, + + observe(subject, topic) { + if (topic === TorProviderTopics.TorLog) { + this.addLogEntry(subject.wrappedJSObject, false); + } + }, + + addLogEntry(logEntry, initial) { + const timeEl = document.createElement("td"); + timeEl.textContent = logEntry.timestamp; + timeEl.classList.add("time"); + const messageEl = document.createElement("td"); + messageEl.textContent = `[${logEntry.type}] ${logEntry.msg}`; + messageEl.classList.add("message"); + + const row = document.createElement("tr"); + row.append(timeEl, messageEl); + + // If this is a new entry, and we are currently scrolled to the bottom (with + // a 6px allowance) we keep the scroll position at the bottom to "follow" + // the updates. + const scrollToBottom = + !initial && this._logTable.scrollTop >= this._logTable.scrollTopMax - 6; + + this._logBody.append(row); + if (scrollToBottom) { + this._logTable.scrollTo({ top: this._logTable.scrollTopMax }); + } + }, +}; + +window.addEventListener( + "DOMContentLoaded", + () => { + gTorLogDialog.init(); + }, + { once: true } +); diff --git a/browser/components/torpreferences/content/torLogDialog.xhtml b/browser/components/torpreferences/content/torLogDialog.xhtml @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?csp default-src chrome: ?> + +<window + type="child" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" + xmlns:html="http://www.w3.org/1999/xhtml" + data-l10n-id="tor-log-dialog-title" +> + <dialog id="torPreferences-torLog-dialog" buttons="accept,extra1"> + <linkset> + <html:link rel="stylesheet" href="chrome://global/skin/global.css" /> + <html:link + rel="stylesheet" + href="chrome://browser/skin/preferences/preferences.css" + /> + <html:link + rel="stylesheet" + href="chrome://browser/content/torpreferences/torPreferences.css" + /> + + <html:link rel="localization" href="toolkit/global/tor-browser.ftl" /> + </linkset> + + <script src="chrome://browser/content/torpreferences/torLogDialog.js" /> + + <!-- We use a <table> element rather than a <ol>. A table structure allows + - screen reader users to navigate within one column so they can avoid the + - readback of the timestamp on every row. See tor-browser#43328. + - NOTE: We add the explicit role="table". Whilst this should not be + - neccessary, nor is it recommended, some screen readers (Orca 46) do not + - read out the default table role if the CSS `display` is not `table`. + - NOTE: Even though this table is updated with live information, we do + - not want to make this an aria-live area or use a "log updated" + - notification because the log messages are potentially busy. + - Moreover, the live updates is a convience so that the log doesn't need + - to be manually refreshed, rather than important information. + - NOTE: We add a tabindex=0 to make this element focusable with or + - without the overflow. This also makes the table the the initial focus + - of the dialog. + - NOTE: We add lang="en" and dir="ltr" to the <tbody> since the content + - of the log is in English. We do not add this to the <table> element + - since its aria-label is localised and we want the scrollbar to match + - the locale direction. + - NOTE: We avoid any whitespace between the <table> and <tbody> to ensure + - it does not contribute to the text content when the top of the table is + - manually copied. --> + <html:table + id="tor-log-table" + role="table" + data-l10n-id="tor-log-dialog-table" + tabindex="0" + ><html:tbody id="tor-log-body" lang="en" dir="ltr"></html:tbody + ></html:table> + </dialog> +</window> diff --git a/browser/components/torpreferences/content/torPreferences.css b/browser/components/torpreferences/content/torPreferences.css @@ -0,0 +1,1076 @@ +@import url("chrome://global/skin/tor-colors.css"); + +#category-connection > .category-icon { + list-style-image: url("chrome://global/content/torconnect/tor-connect.svg"); +} + +/* Make a button appear disabled, whilst still allowing it to keep keyboard + * focus. + * TODO: Replace with moz-button when it handles this for us. See + * tor-browser#43275. */ +button.spoof-button-disabled { + /* Borrow the :disabled rule from common-shared.css */ + opacity: 0.4; + /* Also ensure it does not get hover or active styling. */ + pointer-events: none; +} + +.tor-loading-icon { + width: 16px; + height: 16px; + -moz-context-properties: fill; + /* Use --tor-text-color. This will have good contrast for this small icon + * against the background. And it will match the surrounding text for high + * contrast and forced colour themes. */ + fill: var(--tor-text-color); + content: url("chrome://global/skin/icons/loading.svg"); +} + +.tor-toggle { + margin-block: 16px; + width: max-content; +} + +/* Status */ + +#network-status-internet-area { + margin-block: 16px; +} + +#network-status-tor-area { + margin-block: 0 32px; +} + +.network-status-area { + display: flex; + align-items: center; + white-space: nowrap; +} + +.network-status-area > * { + flex: 0 0 auto; +} + +.network-status-icon { + width: 18px; + height: 18px; + margin-inline-end: 8px; + -moz-context-properties: fill, stroke; + fill: var(--icon-color); + stroke: var(--icon-color); +} + +#network-status-internet-area .network-status-icon { + content: url("chrome://browser/content/torpreferences/network.svg"); +} + +#network-status-internet-area.status-offline .network-status-icon { + content: url("chrome://browser/content/torpreferences/network-broken.svg"); +} + +#network-status-tor-area .network-status-icon { + content: url("chrome://global/content/torconnect/tor-connect.svg"); +} + +#network-status-tor-area:not(.status-connected) .network-status-icon { + content: url("chrome://global/content/torconnect/tor-connect-broken.svg"); +} + +#network-status-tor-area.status-blocked .network-status-icon { + /* Same as .tor-connect-status-potentially-blocked. */ + stroke: var(--icon-color-critical); +} + +.network-status-label { + font-weight: var(--font-weight-bold); + margin-inline-end: 0.75em; +} + +.network-status-result { + margin-inline-end: 0.75em; +} + +#network-status-tor-area.status-connected #network-status-tor-connect-button { + /* Hide button when already connected. */ + display: none; +} + +/* Bridge settings */ + +.tor-medium-heading { + /* Same font size as mozilla preferences h2. */ + font-size: var(--font-size-large); + font-weight: var(--font-weight-bold); + margin: 0; +} + +.tor-small-heading { + font-size: inherit; + font-weight: var(--font-weight-bold); + margin: 0; +} + +/* Hide the tor-search-heading elements when the group's search header is + * hidden. These only appear in search results. + * See tor-browser#43320. + * NOTE: `.search-header[hidden] ~ :is(* .tor-search-heading)` will not match + * (possibly because the `~` selector is unsure how to integrate with the + * non-compound `* .tor-search-heading` selector). So we need to duplicate the + * `.search-header[hidden]` rule. */ +#torPreferences-bridges-group :is(.search-header[hidden] ~ * .tor-search-heading, .search-header[hidden] ~ .tor-search-heading) { + display: none; +} + +/* Hide the tor-non-search-heading elements when the group's search header is + * not hidden. These only appear outside of search results. + * See tor-browser#43320. */ +#torPreferences-bridges-group :is(.search-header:not([hidden]) ~ * .tor-non-search-heading, .search-header:not([hidden]) ~ .tor-non-search-heading) { + display: none; +} + +.tor-focusable-heading { + /* Do not occupy more horizontal space than necessary. */ + width: fit-content; +} + +.tor-focusable-heading:focus-visible { + outline-offset: var(--focus-outline-offset); +} + +.bridge-status-badge { + display: flex; + min-width: max-content; + align-items: center; + gap: 0.5em; + font-size: var(--font-size-small); +} + +.bridge-status-badge:not(.bridge-status-connected, .bridge-status-none, .bridge-status-current-built-in) { + display: none; +} + +@media not ((forced-colors) or (prefers-contrast)) { + /* Accent colors are usually only used for background colors. Here we are + * using it for text colors, so we only enable these rules when not using a + * high contrast theme or forced colors. */ + .bridge-status-badge.bridge-status-connected { + color: var(--tor-text-color); + } + + .bridge-status-badge.bridge-status-current-built-in { + color: var(--color-accent-primary); + } +} + +.bridge-status-badge > * { + flex: 0 0 auto; +} + +.bridge-status-icon { + width: 16px; + height: 16px; + background-repeat: no-repeat; + background-position: center center; + -moz-context-properties: fill; + fill: currentColor; +} + +.bridge-status-badge:is(.bridge-status-connected, .bridge-status-current-built-in) .bridge-status-icon { + background-image: url("chrome://global/skin/icons/check.svg"); +} + +.bridge-status-badge.bridge-status-none .bridge-status-icon { + /* Hide the icon. */ + display: none; +} + +#tor-bridges-update-area { + /* Still accessible to screen reader, but not visual. */ + position: absolute; + clip-path: inset(50%); +} + +#torPreferences-bridges-group:not(.bridges-initialized) { + /* Hide bridge settings whilst not initialized. */ + display: none; +} + +#tor-bridges-none, +#tor-bridges-current { + margin-inline: 0; + margin-block: 32px; +} + +#tor-bridges-none:not([hidden]) { + display: grid; + justify-items: center; + text-align: center; + padding-block: 64px; + padding-inline: 32px; + gap: 16px; + border-radius: var(--border-radius-small); + color: var(--text-color-deemphasized); + border: 2px dashed var(--border-color-deemphasized); +} + +#tor-bridges-none-icon { + width: 20px; + height: 20px; + content: url("chrome://browser/content/torpreferences/bridge.svg"); + -moz-context-properties: fill; + fill: currentColor; +} + +.tor-bridges-box, +.tor-bridges-details-box { + padding: 16px; + border-radius: var(--border-radius-small); + background: var(--background-color-box-info); + border: 1px solid var(--border-color); +} + +@media not forced-colors { + .tor-bridges-box { + border-color: transparent; + } +} + +#tor-bridges-current-header-bar { + display: grid; + min-width: max-content; + grid-template: "heading source button" min-content / max-content 1fr max-content; + align-items: center; + border-block-end: 1px solid var(--border-color); + padding-block-end: 16px; + margin-block-end: 16px; + white-space: nowrap; +} + +.tor-bridges-current-heading { + grid-area: heading; +} + +.tor-bridges-source-label { + margin-inline-start: 2em; + margin-inline-end: 8px; + grid-area: source; + justify-self: end; +} + +#tor-bridges-all-options-button { + grid-area: button; +} + +#tor-bridges-lox-label:not([hidden]) { + display: flex; + align-items: center; + gap: 6px; +} + +#tor-bridges-lox-label > * { + flex: 0 0 auto; +} + +#tor-bridges-lox-label-icon { + content: url("chrome://browser/content/torpreferences/lox-bridge-pass.svg"); + width: 16px; + height: 16px; + -moz-context-properties: fill; + fill: var(--icon-color); +} + +.tor-bridges-options-button { + padding: 3px; + margin: 0; + min-height: auto; + min-width: auto; + box-sizing: content-box; + width: 16px; + height: 16px; + background-image: url("chrome://global/skin/icons/more.svg"); + background-repeat: no-repeat; + background-position: center center; + background-origin: content-box; + background-size: contain; + -moz-context-properties: fill; + fill: currentColor; +} + +#tor-bridges-built-in-display:not([hidden]) { + display: grid; + grid-template: + "type status" min-content + "description description" auto + / max-content 1fr; + gap: 12px 1.5em; + margin-block-end: 16px; +} + +#tor-bridges-built-in-type-name { + font-weight: var(--font-weight-bold); + grid-area: type; +} + +#tor-bridges-built-in-connected { + grid-area: status; + justify-self: end; +} + +#tor-bridges-built-in-description { + grid-area: description; +} + +.tor-bridges-grid:not([hidden]) { + display: grid; + grid-template-columns: max-content repeat(4, max-content) 1fr; + --tor-bridges-grid-column-gap: 8px; + --tor-bridges-grid-column-short-gap: 4px; + /* For #tor-bridges-grid-display we want each grid item to have the same + * height so that their focus outlines match. */ + align-items: stretch; +} + +.tor-bridges-grid-row { + /* We want each row to act as a row of three items in the + * .tor-bridges-grid grid layout. + * We also want a 16px spacing between rows, and 8px spacing between columns, + * which are outside the .tor-bridges-grid-cell's border area. + * + * For #tor-bridges-grid-display this should ensure that clicking these gaps + * will not focus any item, and their focus outlines do not overlap. + * Moreover, we also want each row to show its .tor-bridges-options-cell when + * the .tor-bridges-grid-row has :hover. + * + * We could use "display: contents" on the row and set a "gap: 16px 8px" on + * the parent so that its items fall into the parent layout. However, the gap + * between the items would mean there are places where no row has :hover. So + * if the user glided across the grid, the options button would visibly + * disappear any time the pointer entered a gap, causing the display to feel + * "jumpy". + * + * Instead, we use a "subgrid" layout for each .tor-bridges-grid-row, and + * using padding, rather than a gap, for the vertical spacing. Therefore, + * every part of the grid is covered by a row, so moving the pointer over the + * grid will always have one row with :hover, so one of the options cell will + * always be visible. + */ + display: grid; + grid-column: 1 / -1; + grid-template-columns: subgrid; + /* Add 16px gap between rows, plus 8px at the start and end of the grid. */ + padding-block: 8px; +} + +#tor-bridges-grid-display .tor-bridges-grid-cell:focus-visible { + /* #tor-bridges-grid-display has focus management for its cells. */ + outline: var(--focus-outline); + outline-offset: var(--focus-outline-offset); +} + +.tor-bridges-grid-cell { + /* The cell is stretched to the height of the row, so that each focus outline + * shares the same height, but we want to center-align the content within, + * which is either a single Element or a TextNode. */ + display: grid; + align-content: center; +} + +.tor-bridges-type-cell { + margin-inline-end: var(--tor-bridges-grid-column-gap); +} + +.tor-bridges-emojis-block { + /* Emoji block occupies four columns, but with a smaller gap. */ + display: contents; +} + +.tor-bridges-emoji-cell:not(:last-child) { + margin-inline-end: var(--tor-bridges-grid-column-short-gap); +} + +.tor-bridges-emoji-icon { + display: block; + box-sizing: content-box; + width: 16px; + height: 16px; + /* color-light-gray-10, color-dark-gray-60 */ + background: light-dark(#f9f9fb, #2b2a33); + border-radius: var(--border-radius-small); + padding: 8px; +} + +.tor-bridges-grid-end-block { + /* The last three cells all share a single grid item slot in the + * #tor-bridges-grid-display layout. + * This is because we do not want to align its cells between rows. */ + min-width: max-content; + display: flex; + /* Choose "stretch" instead of "center" so that focus outline is a consistent + * height between cells. */ + align-items: stretch; + margin-inline-start: var(--tor-bridges-grid-column-gap); + gap: var(--tor-bridges-grid-column-gap); +} + +.tor-bridges-address-cell { + /* base size */ + width: 10em; + flex: 1 0 auto; +} + +.tor-bridges-address-cell-text { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: var(--text-color-deemphasized); +} + +.tor-bridges-status-cell, +.tor-bridges-options-cell { + flex: 0 0 auto; +} + +/* Hide the options button if the row does not have hover or focus. */ +.tor-bridges-grid-row:not( + :hover, + :focus-within +) .tor-bridges-options-cell, +/* Hide the status cell when it shows "No status" if the cell does not have + * focus. */ +.tor-bridges-grid-row.hide-status .tor-bridges-status-cell:not(:focus) { + /* Still accessible to screen reader, but not visual and does not contribute + * to the parent flex layout. */ + /* NOTE: We assume that the height of these cell's content is equal to or less + * than the other cells, so there won't be a jump in row height when they + * become visual again and contribute to the layout. */ + position: absolute; + clip-path: inset(50%); +} + +.tor-bridges-details-box { + margin-block-start: 24px; +} + +#tor-bridges-share:not([hidden]) { + display: grid; + grid-template: + "heading heading heading" min-content + /* If the description spans one line, it will be center-aligned with the + * buttons, otherwise it will start to expand upwards. */ + "description . ." 1fr + "description copy qr" min-content + / 1fr max-content max-content; + gap: 0 8px; + align-items: center; +} + +.tor-bridges-share-heading { + grid-area: heading; + margin-block-end: 4px; +} + +#tor-bridges-share-description { + grid-area: description; +} + +#tor-bridges-copy-addresses-button { + grid-area: copy; + margin: 0; + /* Match the QR height if it is higher than ours. */ + min-height: auto; + align-self: stretch; +} + +#tor-bridges-qr-addresses-button { + grid-area: qr; + padding: 5px; + margin: 0; + min-height: auto; + min-width: auto; + box-sizing: content-box; + width: 24px; + height: 24px; + background-image: url("chrome://browser/content/torpreferences/bridge-qr.svg"); + background-repeat: no-repeat; + background-position: center center; + background-origin: content-box; + background-size: contain; + -moz-context-properties: fill; + fill: currentColor; +} + +#tor-bridges-lox-status { + margin-block-start: 8px; +} + +.tor-bridges-lox-box:not([hidden]) { + display: grid; + grid-template: + "image intro intro" min-content + ". list list" auto + ". invites button" min-content + / min-content 1fr max-content; + align-items: start; + gap: 8px; +} + +.tor-bridges-lox-image-outer { + grid-area: image; + /* The ring is 36px by 36px, but has 4px of padding for a Gaussian blur. */ + width: 44px; + height: 44px; + margin: -4px; + align-self: center; + justify-self: center; + /* fill is the progress, stroke is the empty ring. */ + -moz-context-properties: fill, stroke; + fill: var(--icon-color-success); + stroke: var(--border-color); + content: url("chrome://browser/content/torpreferences/lox-progress-ring.svg"); +} + +#tor-bridges-lox-unlock-alert.lox-unlock-upgrade .tor-bridges-lox-image-outer { + content: url("chrome://browser/content/torpreferences/lox-complete-ring.svg"); +} + +.tor-bridges-lox-image-inner { + grid-area: image; + /* Extra 4px space for gaussian blur. */ + width: 16px; + height: 16px; + align-self: center; + justify-self: center; + -moz-context-properties: fill; + fill: var(--icon-color); +} + +#tor-bridges-lox-details .tor-bridges-lox-image-inner { + content: url("chrome://browser/content/torpreferences/lox-bridge-pass.svg"); +} + +#tor-bridges-lox-unlock-alert .tor-bridges-lox-image-inner { + content: url("chrome://browser/content/torpreferences/bridge.svg"); +} + +#tor-bridges-lox-unlock-alert.lox-unlock-upgrade .tor-bridges-lox-image-inner { + content: url("chrome://browser/content/torpreferences/lox-success.svg"); +} + +.tor-bridges-lox-intro { + grid-area: intro; + align-self: center; + justify-self: start; +} + +.tor-bridges-lox-list { + grid-area: list; + margin: 0; + padding: 0; + display: grid; + /* Align the icons, as if list markers. */ + grid-template-columns: max-content 1fr; + align-items: start; + gap: 8px 0; +} + +.tor-bridges-lox-list-item:not([hidden]) { + display: contents; +} + +.tor-bridges-lox-list-item:not([hidden])::before { + /* We use ::before rather than list-style-image to have more control. */ + box-sizing: content-box; + width: 18px; + height: 18px; + margin-inline: 4px 6px; + /* We want the icons to be center-aligned relative to the *first* line. */ + margin-block-start: calc((1lh - 18px) / 2); + /* We use display: grid rather than display: block. Otherwise the content will + * be offset vertically by the line-height. */ + display: grid; + /* fill is the icon color, stroke is the border color. */ + -moz-context-properties: fill, stroke; + fill: var(--icon-color); +} + +.tor-bridges-lox-list-item-bridge::before { + content: url("chrome://browser/content/torpreferences/lox-bridge-icon.svg"); +} + +.tor-bridges-lox-list-item-invite::before { + content: url("chrome://browser/content/torpreferences/lox-invite-icon.svg"); +} + +#tor-bridges-lox-details .tor-bridges-lox-list-item::before { + stroke: var(--border-color); +} + +#tor-bridges-lox-unlock-alert .tor-bridges-lox-list-item::before { + stroke: var(--icon-color-success); +} + +#tor-bridges-lox-remaining-invites { + grid-area: invites; + justify-self: end; + align-self: center; +} + +.tor-bridges-lox-button { + grid-area: button; + margin: 0; + align-self: center; +} + +.tor-bridges-provider-heading { + margin-block: 48px 8px; +} + +#tor-bridges-provider-area { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 16px; + align-items: start; + margin-block-start: 24px; +} + +#tor-bridges-provider-list { + display: grid; + grid-template-columns: max-content max-content; + /* 24px gap between items. */ + gap: 24px 12px; + margin-block: 16px; + padding: 0; +} + +.tor-bridges-provider-item { + grid-column: 1 / -1; + display: grid; + grid-template-columns: subgrid; + align-items: center; + justify-items: start; + /* 8px gap between the name and instruction. */ + gap: 8px 12px; +} + +.tor-bridges-provider-icon { + width: 16px; + height: 16px; + -moz-context-properties: fill; + fill: var(--icon-color); +} + +#tor-bridges-provider-icon-telegram { + content: url("chrome://browser/content/torpreferences/telegram-logo.svg"); +} + +#tor-bridges-provider-icon-web { + content: url("chrome://browser/content/torpreferences/network.svg"); +} + +#tor-bridges-provider-icon-email { + content: url("chrome://browser/content/torpreferences/mail.svg"); +} + +.tor-bridges-provider-name { + font-weight: var(--font-weight-bold); + font-size: var(--font-size-small); +} + +.tor-bridges-provider-instruction { + grid-column: 2 / 3; +} + +#tor-bridges-request-box { + /* Take up the full height in the container. */ + align-self: stretch; + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + justify-content: center; +} + +#tor-bridges-request-box > * { + flex: 0 0 auto; +} + +#tor-bridges-request-description { + margin-block: 12px 16px; +} + +#tor-bridges-open-request-dialog-button { + margin: 0; +} + +#torPreferences-bridges-location { + width: 280px; +} + +#torPreferences-bridges-location menuitem[disabled="true"] { + color: var(--button-text-color, inherit); + font-weight: var(--font-weight-bold); +} + +/* Request bridges */ + +image#torPreferences-requestBridge-captchaImage { + margin: 16px 0 8px 0; + min-height: 140px; +} + +button#torPreferences-requestBridge-refreshCaptchaButton { + min-width: initial; +} + +#torPreferences-requestBridge-refreshCaptchaButton image { + -moz-context-properties: fill; + fill: currentColor; +} + +#torPreferences-requestBridge-captchaTextbox { + flex: 1 0 auto; +} + +dialog#torPreferences-requestBridge-dialog > hbox { + margin-bottom: 1em; +} + +/* + Various elements that really should be lining up don't because they have inconsistent margins +*/ +.torMarginFix { + margin-left: 4px; + margin-right: 4px; +} + +/* Show bridge QR dialog */ + +#bridgeQr { + flex: 0 0 auto; + align-self: center; + /* Some readers don't recognize QRs with inverted colors, so let's make + the ones are darker than zeroes. See + https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41049 */ + --qr-one: black; + --qr-zero: white; + background: var(--qr-zero); + /* Padding is needed in case the dark theme is used so the bits don't blend + with whatever the default background color is. */ + padding: 10px; + margin-block: 4px 8px; + border-radius: var(--border-radius-small); + display: grid; + align-items: center; + justify-items: center; + grid-template: "qr" max-content / max-content; +} + +#bridgeQr-target { + width: 300px; + height: 300px; + background: var(--qr-zero); + color: var(--qr-one); + grid-area: qr; +} + +#bridgeQr-icon { + /* Share the same grid area as #bridgeQr-target. */ + grid-area: qr; + content: url("chrome://browser/content/torpreferences/bridge.svg"); + padding: 10px; + border-radius: var(--border-radius-medium); + box-sizing: content-box; + width: 52px; + height: 52px; + background: var(--qr-zero); + -moz-context-properties: fill; + fill: var(--qr-one); +} + +/* Lox invite dialog */ + +#lox-invite-dialog-generate-area { + flex: 0 0 auto; + display: grid; + grid-template: + ". remaining button" min-content + "message message message" auto + / 1fr max-content max-content; + gap: 8px; + margin-block: 16px 8px; + align-items: center; +} + +#lox-invite-dialog-remaining { + grid-area: remaining; +} + +#lox-invite-dialog-generate-button { + grid-area: button; +} + +#lox-invite-dialog-message-area { + grid-area: message; + justify-self: end; + display: flex; + align-items: center; +} + +#lox-invite-dialog-message-area::after { + /* Zero width space, to ensure we are always one line high. */ + content: "\200B"; +} + +#lox-invite-dialog-error-message { + color: var(--text-color-error); +} + +#lox-invite-dialog-generate-area:not(.show-error) #lox-invite-dialog-error-message { + display: none; +} + +#lox-invite-dialog-connecting { + color: var(--text-color-deemphasized); + /* Gap with #user-provide-bridge-loading-icon. */ + margin-inline-start: 0.5em; +} + +#lox-invite-dialog-generate-area:not(.show-connecting) #lox-invite-dialog-connecting { + display: none; +} + +#lox-invite-dialog-loading-icon { + flex: 0 0 auto; +} + +#lox-invite-dialog-generate-area:not(.show-connecting) #lox-invite-dialog-loading-icon { + /* Use width:0 to effectively hide, but still occupy vertical space. */ + width: 0; +} + +#lox-invite-dialog-list-label { + font-weight: var(--font-weight-bold); +} + +#lox-invite-dialog-list { + flex: 1 1 auto; + /* basis height */ + height: 10em; + margin-block: 8px; +} + +.lox-invite-dialog-list-item { + white-space: nowrap; + overflow-x: hidden; + /* FIXME: ellipsis does not show. */ + text-overflow: ellipsis; + padding-block: 6px; + padding-inline: 8px; +} + +/* Builtin bridge dialog */ +#torPreferences-builtinBridge-header { + margin: 8px 0 10px 0; +} + +#torPreferences-builtinBridge-description { + margin-bottom: 18px; +} + +#torPreferences-builtinBridge-typeSelection { + margin-bottom: 16px; +} + +#torPreferences-builtinBridge-typeSelection radio label { + font-weight: var(--font-weight-bold); +} + +/* Request bridge dialog */ +/* + This hbox is hidden by css here by default so that the + xul dialog allocates enough screen space for the error message + element, otherwise it gets cut off since dialog's overflow is hidden +*/ +hbox#torPreferences-requestBridge-incorrectCaptchaHbox { + visibility: hidden; +} + +image#torPreferences-requestBridge-errorIcon { + list-style-image: url("chrome://global/skin/icons/warning.svg"); + -moz-context-properties: fill; + fill: var(--icon-color-warning); +} + +groupbox#torPreferences-bridges-group textarea { + white-space: pre; + overflow: auto; +} + +/* Provide bridge dialog */ + +#user-provide-bridge-dialog:not(.show-entry-page) #user-provide-bridge-entry-page { + display: none; +} + +#user-provide-bridge-dialog:not(.show-result-page) #user-provide-bridge-result-page { + display: none; +} + +#user-provide-bridge-entry-page { + flex: 1 0 auto; + display: flex; + flex-direction: column; +} + +#user-provide-bridge-description { + flex: 0 0 auto; +} + +#user-provide-bridge-textarea-label { + margin-block: 16px 6px; + flex: 0 0 auto; + align-self: start; +} + +#user-provide-bridge-textarea { + flex: 1 0 auto; + align-self: stretch; + /* Only expect ASCII input, so can set a line-height. */ + line-height: 1.3; + margin: 0; +} + +#user-provide-bridge-message-area { + flex: 0 0 auto; + margin-block: 8px 12px; + align-self: end; + display: flex; + align-items: center; +} + +#user-provide-bridge-message-area::after { + /* Zero width space, to ensure we are always one line high. */ + content: "\200B"; +} + +#user-provide-bridge-textarea.invalid-input { + border-color: var(--outline-color-error); + outline-color: var(--outline-color-error); +} + +#user-provide-bridge-error-message { + color: var(--text-color-error); +} + +#user-provide-bridge-dialog:not(.show-error) #user-provide-bridge-error-message { + display: none; +} + +#user-provide-bridge-connecting { + color: var(--text-color-deemphasized); + /* Gap with #user-provide-bridge-loading-icon. */ + margin-inline-start: 0.5em; +} + +#user-provide-bridge-dialog:not(.show-connecting) #user-provide-bridge-connecting { + display: none; +} + +#user-provide-bridge-loading-icon { + flex: 0 0 auto; +} + +#user-provide-bridge-dialog:not(.show-connecting) #user-provide-bridge-loading-icon { + /* Use width:0 to effectively hide, but still occupy vertical space. */ + width: 0; +} + +#user-provide-bridge-result-page { + flex: 1 1 0; + min-height: 0; + display: flex; + flex-direction: column; +} + +#user-provide-result-description { + flex: 0 0 auto; +} + +#user-provide-bridge-grid-display { + flex: 0 1 auto; + overflow: auto; + margin-block: 8px; +} + +#user-provide-bridge-grid-display:focus-visible { + outline: var(--focus-outline); + outline-offset: var(--focus-outline-offset); +} + +/* Connection settings dialog */ +#torPreferences-connection-dialog label { + /* Do not wrap the labels. */ + white-space: nowrap; +} + +#torPreferences-connection-header { + margin: 4px 0 14px 0; +} + +#torPreferences-connection-grid { + display: grid; + grid-template-columns: auto 1fr; +} + +#torPreferences-localProxy-textboxAddress, +#torPreferences-localProxy-textboxUsername, +#torPreferences-localProxy-textboxPassword, +#torPreferences-connection-textboxAllowedPorts { + flex: 1 0 auto; +} + +#torPreferences-connection-firewall { + display: flex; +} + +#torPreferences-connection-hboxAllowedPorts { + flex: 1; +} + +/* Tor logs dialog */ +#tor-log-table { + flex: 1 0 auto; + overflow: auto; + min-height: 20em; + height: 20em; + display: flex; + flex-direction: column; + padding: var(--space-small); + margin-block-end: 4px; + border: 1px solid var(--border-color); + border-radius: var(--border-radius-small); + font-size: var(--font-size-small); +} + +#tor-log-body, +#tor-log-table tr { + display: contents; +} + +#tor-log-table td { + flex: 0 0 auto; + padding: 0; +} + +#tor-log-table td.time { + color: var(--text-color-deemphasized); + margin-block-end: var(--space-xsmall); +} + +#tor-log-table td.message { + overflow-wrap: anywhere; +} + +#tor-log-table tr:not(:last-of-type) td.message { + margin-block-end: var(--space-medium); +} diff --git a/browser/components/torpreferences/jar.mn b/browser/components/torpreferences/jar.mn @@ -0,0 +1,35 @@ +browser.jar: + content/browser/torpreferences/bridge.svg (content/bridge.svg) + content/browser/torpreferences/bridge-qr.svg (content/bridge-qr.svg) + content/browser/torpreferences/telegram-logo.svg (content/telegram-logo.svg) + content/browser/torpreferences/bridge-bot.svg (content/bridge-bot.svg) + content/browser/torpreferences/lox-invite-icon.svg (content/lox-invite-icon.svg) + content/browser/torpreferences/lox-bridge-icon.svg (content/lox-bridge-icon.svg) + content/browser/torpreferences/lox-bridge-pass.svg (content/lox-bridge-pass.svg) + content/browser/torpreferences/lox-success.svg (content/lox-success.svg) + content/browser/torpreferences/lox-complete-ring.svg (content/lox-complete-ring.svg) + content/browser/torpreferences/lox-progress-ring.svg (content/lox-progress-ring.svg) + content/browser/torpreferences/loxInviteDialog.xhtml (content/loxInviteDialog.xhtml) + content/browser/torpreferences/loxInviteDialog.js (content/loxInviteDialog.js) + content/browser/torpreferences/bridgeQrDialog.xhtml (content/bridgeQrDialog.xhtml) + content/browser/torpreferences/bridgeQrDialog.js (content/bridgeQrDialog.js) + content/browser/torpreferences/builtinBridgeDialog.xhtml (content/builtinBridgeDialog.xhtml) + content/browser/torpreferences/builtinBridgeDialog.js (content/builtinBridgeDialog.js) + content/browser/torpreferences/connectionSettingsDialog.xhtml (content/connectionSettingsDialog.xhtml) + content/browser/torpreferences/connectionSettingsDialog.js (content/connectionSettingsDialog.js) + content/browser/torpreferences/network.svg (content/network.svg) + content/browser/torpreferences/network-broken.svg (content/network-broken.svg) + content/browser/torpreferences/mail.svg (content/mail.svg) + content/browser/torpreferences/provideBridgeDialog.xhtml (content/provideBridgeDialog.xhtml) + content/browser/torpreferences/provideBridgeDialog.js (content/provideBridgeDialog.js) + content/browser/torpreferences/requestBridgeDialog.xhtml (content/requestBridgeDialog.xhtml) + content/browser/torpreferences/requestBridgeDialog.js (content/requestBridgeDialog.js) + content/browser/torpreferences/connectionCategory.inc.xhtml (content/connectionCategory.inc.xhtml) + content/browser/torpreferences/torLogDialog.js (content/torLogDialog.js) + content/browser/torpreferences/torLogDialog.xhtml (content/torLogDialog.xhtml) + content/browser/torpreferences/connectionPane.js (content/connectionPane.js) + content/browser/torpreferences/torPreferences.css (content/torPreferences.css) + content/browser/torpreferences/bridgemoji/BridgeEmoji.js (content/bridgemoji/BridgeEmoji.js) + content/browser/torpreferences/bridgemoji/bridge-emojis.json (content/bridgemoji/bridge-emojis.json) + content/browser/torpreferences/bridgemoji/annotations.json (content/bridgemoji/annotations.json) + content/browser/torpreferences/bridgemoji/svgs/ (content/bridgemoji/svgs/*.svg) diff --git a/browser/components/torpreferences/moz.build b/browser/components/torpreferences/moz.build @@ -0,0 +1 @@ +JAR_MANIFESTS += ["jar.mn"] diff --git a/dom/security/nsContentSecurityUtils.cpp b/dom/security/nsContentSecurityUtils.cpp @@ -1384,6 +1384,7 @@ static nsLiteralCString sImgSrcDataBlobAllowList[] = { "chrome://devtools/content/webconsole/index.html"_ns, "chrome://global/content/alerts/alert.xhtml"_ns, "chrome://global/content/print.html"_ns, + "chrome://browser/content/torpreferences/requestBridgeDialog.xhtml"_ns, }; // img-src https: static nsLiteralCString sImgSrcHttpsAllowList[] = {