├── demo
├── src
│ ├── assets
│ │ └── .gitkeep
│ ├── environments
│ │ ├── environment.prod.ts
│ │ └── environment.ts
│ ├── favicon.ico
│ ├── typings.d.ts
│ ├── styles.css
│ ├── tsconfig.app.json
│ ├── index.html
│ ├── main.ts
│ ├── app
│ │ ├── app.module.ts
│ │ ├── app.component.css
│ │ ├── app.component.ts
│ │ └── app.component.html
│ └── polyfills.ts
├── .editorconfig
├── tsconfig.json
├── .gitignore
├── package.json
├── .angular-cli.json
└── tslint.json
├── .gitignore
├── src
├── sheets
│ ├── index.ts
│ ├── sheet_apple_32.png
│ └── sheet_apple_map.ts
├── services
│ ├── index.ts
│ └── emoji-picker.service.ts
├── lib
│ ├── index.ts
│ ├── picker-directions.ts
│ ├── emoji-event.ts
│ ├── caret-event.ts
│ └── emojis.data.ts
├── index.ts
├── pipes
│ ├── index.ts
│ └── emoji-empty-category.pipe.ts
├── styles
│ ├── emoji-categories.scss
│ ├── emoji-header.scss
│ ├── emoji-list.scss
│ ├── emoji-category.scss
│ ├── emoji-footer.scss
│ ├── emoji-search.scss
│ ├── emoji-content.scss
│ ├── _constants.scss
│ └── emoji-button.scss
├── directives
│ ├── index.ts
│ ├── emoji-picker-caret.directive.ts
│ └── emoji-picker-api.directive.ts
├── components
│ ├── emoji-footer.component.ts
│ ├── emoji-category.component.ts
│ ├── emoji-categories.component.ts
│ ├── emoji-header.component.ts
│ ├── index.ts
│ ├── emoji-list.component.ts
│ ├── emoji-button.component.ts
│ ├── emoji-search.component.ts
│ ├── emoji-content.component.ts
│ └── emoji-picker.component.ts
├── tsconfig.json
├── modifiers.ts
└── emoji-picker.module.ts
├── .editorconfig
├── LICENSE
├── package.json
├── CHANGELOG.md
└── README.md
/demo/src/assets/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | build/temp
3 |
--------------------------------------------------------------------------------
/src/sheets/index.ts:
--------------------------------------------------------------------------------
1 | export * from './sheet_apple_map';
2 |
--------------------------------------------------------------------------------
/src/services/index.ts:
--------------------------------------------------------------------------------
1 | export * from './emoji-picker.service';
2 |
--------------------------------------------------------------------------------
/src/lib/index.ts:
--------------------------------------------------------------------------------
1 | export * from './caret-event';
2 | export * from './emoji-event';
3 |
--------------------------------------------------------------------------------
/demo/src/environments/environment.prod.ts:
--------------------------------------------------------------------------------
1 | export const environment = {
2 | production: true
3 | };
4 |
--------------------------------------------------------------------------------
/demo/src/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsharir/angular2-emoji-picker/HEAD/demo/src/favicon.ico
--------------------------------------------------------------------------------
/src/lib/picker-directions.ts:
--------------------------------------------------------------------------------
1 | export enum DIRECTIONS {
2 | top,
3 | bottom,
4 | left,
5 | right
6 | }
7 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './emoji-picker.module';
2 | export * from './lib';
3 | export * from './services';
4 |
--------------------------------------------------------------------------------
/src/sheets/sheet_apple_32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsharir/angular2-emoji-picker/HEAD/src/sheets/sheet_apple_32.png
--------------------------------------------------------------------------------
/demo/src/typings.d.ts:
--------------------------------------------------------------------------------
1 | /* SystemJS module definition */
2 | declare var module: NodeModule;
3 | interface NodeModule {
4 | id: string;
5 | }
6 |
--------------------------------------------------------------------------------
/demo/src/styles.css:
--------------------------------------------------------------------------------
1 | /* You can add global styles to this file, and also import other style files */
2 |
3 | body {
4 | background: rgba(0,0,0,0.02);
5 | }
6 |
--------------------------------------------------------------------------------
/src/pipes/index.ts:
--------------------------------------------------------------------------------
1 | import { EmojiEmptyCategoryPipe } from "./emoji-empty-category.pipe";
2 |
3 | export const PIPES = [
4 | EmojiEmptyCategoryPipe
5 | ];
6 |
--------------------------------------------------------------------------------
/src/styles/emoji-categories.scss:
--------------------------------------------------------------------------------
1 | @import '_constants.scss';
2 |
3 | :host {
4 | display: flex;
5 | flex-wrap: wrap;
6 | justify-content: space-between;
7 | margin: 0 0 10px;
8 | }
9 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | # EditorConfig - http://EditorConfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | end_of_line = lf
7 | insert_final_newline = true
8 |
9 | [**.js]
10 | indent_style = space
11 | indent_size = 4
12 |
--------------------------------------------------------------------------------
/src/styles/emoji-header.scss:
--------------------------------------------------------------------------------
1 | @import '_constants.scss';
2 |
3 | :host {
4 | display: block;
5 | border-bottom: 1px solid $ep-border-header;
6 | border-radius: $ep-border-radius $ep-border-radius 0 0;
7 | padding: $ep-padding-results;
8 | background: $ep-background-header;
9 | }
10 |
--------------------------------------------------------------------------------
/src/lib/emoji-event.ts:
--------------------------------------------------------------------------------
1 | export class EmojiEvent {
2 | char: string;
3 | label: string;
4 |
5 | constructor(data) {
6 | Object.assign(this, data);
7 | }
8 |
9 | static fromArray(emojiArray) {
10 | return new EmojiEvent({ char : emojiArray[0], label : emojiArray[1]})
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/demo/.editorconfig:
--------------------------------------------------------------------------------
1 | # Editor configuration, see http://editorconfig.org
2 | root = true
3 |
4 | [*]
5 | charset = utf-8
6 | indent_style = space
7 | indent_size = 2
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
11 | [*.md]
12 | max_line_length = off
13 | trim_trailing_whitespace = false
14 |
--------------------------------------------------------------------------------
/demo/src/tsconfig.app.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../out-tsc/app",
5 | "experimentalDecorators": true,
6 | "module": "es2015",
7 | "baseUrl": "",
8 | "types": []
9 | },
10 | "exclude": [
11 | "test.ts",
12 | "**/*.spec.ts"
13 | ]
14 | }
15 |
--------------------------------------------------------------------------------
/src/directives/index.ts:
--------------------------------------------------------------------------------
1 | export * from './emoji-picker-caret.directive';
2 | export * from './emoji-picker-api.directive';
3 |
4 | import {
5 | EmojiPickerApiDirective,
6 | EmojiPickerCaretDirective
7 | } from './';
8 |
9 | export const DIRECTIVES = [
10 | EmojiPickerApiDirective,
11 | EmojiPickerCaretDirective
12 | ];
13 |
--------------------------------------------------------------------------------
/src/styles/emoji-list.scss:
--------------------------------------------------------------------------------
1 | @import '_constants.scss';
2 |
3 | :host {
4 | overflow-y: auto;
5 | }
6 |
7 | .emoji-list {
8 | padding: 0 $ep-padding-results $ep-padding-results;
9 | }
10 |
11 | .emoji-buttons {
12 | display: flex;
13 | justify-content: center;
14 | flex-wrap: wrap;
15 | margin: $ep-margin/2 0;
16 | }
17 |
--------------------------------------------------------------------------------
/src/components/emoji-footer.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'emoji-footer',
5 | styleUrls: ['../styles/emoji-footer.scss'],
6 | template: `
7 |
8 | `
9 | })
10 |
11 | export class EmojiFooterComponent {
12 | constructor() { }
13 | }
14 |
--------------------------------------------------------------------------------
/src/styles/emoji-category.scss:
--------------------------------------------------------------------------------
1 | @import '_constants.scss';
2 |
3 | .emoji-category {
4 | margin: 0;
5 | font-size: $ep-font-size;
6 | padding: $ep-padding/2 0 $ep-padding/2 $ep-padding/2;
7 | border-bottom: $ep-border-size solid $ep-border-input;
8 | color: $ep-category-title;
9 | font-family: $ep-font-family;
10 | }
11 |
--------------------------------------------------------------------------------
/src/pipes/emoji-empty-category.pipe.ts:
--------------------------------------------------------------------------------
1 | import { Pipe, PipeTransform } from '@angular/core';
2 |
3 | @Pipe({
4 | name: 'notEmptyEmojiCategory'
5 | })
6 |
7 | export class EmojiEmptyCategoryPipe implements PipeTransform {
8 | transform(categories: any[]): any[] {
9 | return categories.filter(category => category.emojis.length !== 0);
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/demo/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Demo
6 |
7 |
8 |
9 |
10 |
11 |
12 | Loading...
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/styles/emoji-footer.scss:
--------------------------------------------------------------------------------
1 | @import '_constants.scss';
2 |
3 | .emoji-footer {
4 | display: flex;
5 | align-items: center;
6 | justify-content: space-between;
7 | border-top: $ep-border-size solid $ep-border-header;
8 | border-radius: 0 0 $ep-border-radius $ep-border-radius;
9 | padding: $ep-padding-results;
10 | background: $ep-background-header;
11 | }
12 |
--------------------------------------------------------------------------------
/demo/src/main.ts:
--------------------------------------------------------------------------------
1 | import { enableProdMode } from '@angular/core';
2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
3 |
4 | import { AppModule } from './app/app.module';
5 | import { environment } from './environments/environment';
6 |
7 | if (environment.production) {
8 | enableProdMode();
9 | }
10 |
11 | platformBrowserDynamic().bootstrapModule(AppModule);
12 |
--------------------------------------------------------------------------------
/src/styles/emoji-search.scss:
--------------------------------------------------------------------------------
1 | @import '_constants.scss';
2 |
3 | input {
4 | width: 100%;
5 | padding: $ep-padding/2 $ep-padding;
6 | border: $ep-border-size solid $ep-border-input;
7 | outline: none;
8 | font-size: $ep-input-font-size;
9 | font-weight: inherit;
10 | box-sizing: border-box;
11 |
12 | &:focus {
13 | border-color: darken($ep-border-input, 10%);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/demo/src/environments/environment.ts:
--------------------------------------------------------------------------------
1 | // The file contents for the current environment will overwrite these during build.
2 | // The build system defaults to the dev environment which uses `environment.ts`, but if you do
3 | // `ng build --env=prod` then `environment.prod.ts` will be used instead.
4 | // The list of which env maps to which file can be found in `.angular-cli.json`.
5 |
6 | export const environment = {
7 | production: false
8 | };
9 |
--------------------------------------------------------------------------------
/src/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compileOnSave": false,
3 | "compilerOptions": {
4 | "outDir": "./dist/out-tsc",
5 | "baseUrl": "src",
6 | "sourceMap": true,
7 | "declaration": false,
8 | "moduleResolution": "node",
9 | "emitDecoratorMetadata": true,
10 | "experimentalDecorators": true,
11 | "target": "es5",
12 | "typeRoots": [
13 | "node_modules/@types"
14 | ],
15 | "lib": [
16 | "es2016",
17 | "dom"
18 | ]
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/demo/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compileOnSave": false,
3 | "compilerOptions": {
4 | "outDir": "./dist/out-tsc",
5 | "baseUrl": "src",
6 | "sourceMap": true,
7 | "declaration": false,
8 | "moduleResolution": "node",
9 | "emitDecoratorMetadata": true,
10 | "experimentalDecorators": true,
11 | "target": "es5",
12 | "typeRoots": [
13 | "node_modules/@types"
14 | ],
15 | "lib": [
16 | "es2016",
17 | "dom"
18 | ]
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/modifiers.ts:
--------------------------------------------------------------------------------
1 | export const modifiers = {
2 | a: {
3 | unicode: '',
4 | char: ''
5 | },
6 | b: {
7 | unicode: '-1f3fb',
8 | char: '🏻'
9 | },
10 | c: {
11 | unicode: '-1f3fc',
12 | char: '🏼'
13 | },
14 | d: {
15 | unicode: '-1f3fd',
16 | char: '🏽'
17 | },
18 | e: {
19 | unicode: '-1f3fe',
20 | char: '🏾'
21 | },
22 | f: {
23 | unicode: '-1f3ff',
24 | char: '🏿'
25 | }
26 | };
27 |
--------------------------------------------------------------------------------
/src/styles/emoji-content.scss:
--------------------------------------------------------------------------------
1 | @import '_constants.scss';
2 |
3 | :host {
4 | display: flex;
5 | flex-direction: column;
6 | width: 100vw;
7 | height: $ep-height;
8 | border-radius: $ep-border-radius;
9 | background: $ep-background-panel;
10 | text-align: left;
11 | box-shadow: 0 11px 15px -7px rgba(0,0,0,.2), 0 24px 38px 3px rgba(0,0,0,.14), 0 9px 46px 8px rgba(0,0,0,.12);
12 |
13 | @media(min-width: $ep-width) {
14 | width: $ep-width;
15 | }
16 | }
17 |
18 | emoji-list {
19 | flex-grow: 1;
20 | }
21 |
--------------------------------------------------------------------------------
/src/components/emoji-category.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, Input, ElementRef } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'emoji-category',
5 | styleUrls: ['../styles/emoji-category.scss'],
6 | template: `
7 | {{category.name}}
8 | `
9 | })
10 |
11 | export class EmojiCategoryComponent {
12 | @Input('category') category;
13 |
14 | constructor(private _element: ElementRef) { }
15 |
16 | public scrollIntoView() {
17 | this._element.nativeElement.scrollIntoView();
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/demo/src/app/app.module.ts:
--------------------------------------------------------------------------------
1 | import { BrowserModule } from '@angular/platform-browser';
2 | import { NgModule } from '@angular/core';
3 | import { FormsModule } from '@angular/forms';
4 | import { HttpModule } from '@angular/http';
5 |
6 | import { EmojiPickerModule } from '../../../src';
7 |
8 | import { AppComponent } from './app.component';
9 |
10 | @NgModule({
11 | declarations: [
12 | AppComponent
13 | ],
14 | imports: [
15 | BrowserModule,
16 | FormsModule,
17 | HttpModule,
18 | EmojiPickerModule.forRoot()
19 | ],
20 | providers: [],
21 | bootstrap: [AppComponent]
22 | })
23 | export class AppModule { }
24 |
--------------------------------------------------------------------------------
/demo/.gitignore:
--------------------------------------------------------------------------------
1 | # See http://help.github.com/ignore-files/ for more about ignoring files.
2 |
3 | # compiled output
4 | /dist
5 | /tmp
6 | /out-tsc
7 |
8 | # dependencies
9 | /node_modules
10 |
11 | # IDEs and editors
12 | /.idea
13 | .project
14 | .classpath
15 | .c9/
16 | *.launch
17 | .settings/
18 | *.sublime-workspace
19 |
20 | # IDE - VSCode
21 | .vscode/*
22 | !.vscode/settings.json
23 | !.vscode/tasks.json
24 | !.vscode/launch.json
25 | !.vscode/extensions.json
26 |
27 | # misc
28 | /.sass-cache
29 | /connect.lock
30 | /coverage
31 | /libpeerconnection.log
32 | npm-debug.log
33 | testem.log
34 | /typings
35 |
36 | # e2e
37 | /e2e/*.js
38 | /e2e/*.map
39 |
40 | # System Files
41 | .DS_Store
42 | Thumbs.db
43 |
--------------------------------------------------------------------------------
/src/services/emoji-picker.service.ts:
--------------------------------------------------------------------------------
1 | import { Injectable } from '@angular/core';
2 | import { EmojiEvent } from './../lib';
3 |
4 | @Injectable()
5 | export class EmojiPickerOptions {
6 | private _options = {};
7 |
8 | setEmojiSheet(config: EmojiPickerSheetOption) {
9 | if (!config || !config.url || !config.locator) {
10 | return console.error('EmojiPickerService.setEmojiSheet: cannot accept data, missing arguments');
11 | }
12 |
13 | this._options = Object.assign({}, this._options, {
14 | sheet: config
15 | });
16 | }
17 |
18 | get options() {
19 | return this._options;
20 | }
21 | }
22 |
23 | interface EmojiPickerSheetOption {
24 | url: string;
25 | locator: Function;
26 | }
27 |
--------------------------------------------------------------------------------
/src/components/emoji-categories.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, Input, EventEmitter, Output } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'emoji-categories',
5 | styleUrls: ['../styles/emoji-categories.scss'],
6 | template: `
7 |
8 |
12 |
13 | `
14 | })
15 |
16 | export class EmojiCategoriesComponent {
17 | @Input('emojisCategories') emojisCategories;
18 | @Output('categorySelection') categorySelection = new EventEmitter();
19 |
20 | constructor() {}
21 |
22 | handleCategorySelection(event) {
23 | this.categorySelection.emit(event);
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/components/emoji-header.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, EventEmitter, Output, Input } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'emoji-header',
5 | styleUrls: ['../styles/emoji-header.scss'],
6 | template: `
7 |
8 |
9 | `
10 | })
11 |
12 | export class EmojiHeaderComponent {
13 | @Input('emojisCategories') emojisCategories;
14 | @Input('inputAutofocus') inputAutofocus;
15 |
16 | @Output('categorySelection') categorySelection = new EventEmitter();
17 | @Output('search') searchEmitter = new EventEmitter();
18 |
19 | constructor() { }
20 | }
21 |
--------------------------------------------------------------------------------
/src/styles/_constants.scss:
--------------------------------------------------------------------------------
1 | $ep-font-family: 'Arial', 'Arial Black', 'Tahoma', 'Trebuchet MS', 'Verdana';
2 |
3 | // Colors
4 | $ep-background-header: #FCFCFC !default;
5 | $ep-border-header: #F9F9F9 !default;
6 | $ep-background-panel: #FFF !default;
7 | $ep-border-input: #F0F0F0 !default;
8 | $ep-category-title: #777 !default;
9 |
10 | // Padding and Borders
11 | $ep-padding: 10px;
12 | $ep-margin: 10px;
13 | $ep-padding-results: $ep-padding !default;
14 | $ep-border-radius: 3px !default;
15 |
16 | // Dimensions
17 | $ep-emoji-width: 34px !default;
18 | $ep-font-size: 16px;
19 | $ep-input-font-size: 14px;
20 | $ep-border-size: 1px;
21 |
22 | $ep-width: $ep-emoji-width * 7 + ($ep-padding-results * 2);
23 |
24 | $ep-height:
25 | $ep-emoji-width * (5 + 1) +
26 | $ep-padding * 5 +
27 | $ep-border-size * 4 +
28 | $ep-input-font-size + 3px +
29 | $ep-font-size + 3px +
30 | $ep-padding * 2;
31 |
--------------------------------------------------------------------------------
/demo/src/app/app.component.css:
--------------------------------------------------------------------------------
1 | .emoji-toggle-button {
2 | font-style: normal;
3 | padding: 5px;
4 | cursor: pointer;
5 | font-size: 3rem;
6 | user-select: none;
7 | }
8 |
9 | .emoji-content-editable {
10 | background: #eee;
11 | border: 1px solid #ccc;
12 | padding: 0.5rem 0.25rem;
13 | }
14 |
15 | pre.code-pre {
16 | background: #1d1f20;
17 | color: #fff;
18 | white-space: pre-wrap;
19 | padding: 2rem 1rem;
20 | line-height: 1.5;
21 | }
22 |
23 | .code-pre .code-input {
24 | color: #f3ef9c;
25 | font-family: monospace;
26 | background: none;
27 | outline: none;
28 | border: none;
29 | text-align: center;
30 | font-size: 0.75rem;
31 | }
32 |
33 | .code-pre .code-special {
34 | color: #88d2d0;
35 | }
36 |
37 | .main {
38 | text-align: center;
39 | }
40 |
41 | header {
42 | text-align: center;
43 | font-family: 'Arial', 'Arial Black', 'Tahoma', 'Trebuchet MS', 'Verdana';
44 | }
45 |
--------------------------------------------------------------------------------
/src/emoji-picker.module.ts:
--------------------------------------------------------------------------------
1 | import { NgModule, ModuleWithProviders } from '@angular/core';
2 | import { CommonModule } from '@angular/common';
3 |
4 | import { COMPONENTS } from "./components";
5 | import { DIRECTIVES } from './directives';
6 | import { PIPES } from './pipes';
7 |
8 | import { EmojiPickerOptions } from './services';
9 |
10 | import { EmojiPickerComponent } from './components';
11 |
12 | @NgModule({
13 | imports: [
14 | CommonModule
15 | ],
16 | exports: [
17 | ...DIRECTIVES,
18 | ...COMPONENTS
19 | ],
20 | declarations: [
21 | ...PIPES,
22 | ...DIRECTIVES,
23 | ...COMPONENTS
24 | ],
25 | providers: [],
26 | entryComponents: [EmojiPickerComponent]
27 | })
28 | export class EmojiPickerModule {
29 | static forRoot(): ModuleWithProviders {
30 | return {
31 | ngModule: EmojiPickerModule,
32 | providers: [
33 | EmojiPickerOptions
34 | ]
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/components/index.ts:
--------------------------------------------------------------------------------
1 | export * from './emoji-button.component';
2 | export * from './emoji-content.component';
3 | export * from './emoji-picker.component';
4 | export * from './emoji-header.component';
5 | export * from './emoji-list.component';
6 | export * from './emoji-categories.component';
7 | export * from './emoji-search.component';
8 | export * from './emoji-category.component';
9 | export * from './emoji-footer.component';
10 |
11 | import {
12 | EmojiButtonComponent,
13 | EmojiContentComponent,
14 | EmojiPickerComponent,
15 | EmojiListComponent,
16 | EmojiHeaderComponent,
17 | EmojiSearchComponent,
18 | EmojiCategoriesComponent,
19 | EmojiCategoryComponent,
20 | EmojiFooterComponent
21 | } from './';
22 |
23 | export const COMPONENTS = [
24 | EmojiButtonComponent,
25 | EmojiContentComponent,
26 | EmojiPickerComponent,
27 | EmojiListComponent,
28 | EmojiHeaderComponent,
29 | EmojiSearchComponent,
30 | EmojiCategoriesComponent,
31 | EmojiCategoryComponent,
32 | EmojiFooterComponent
33 | ];
34 |
--------------------------------------------------------------------------------
/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "demo",
3 | "version": "0.0.0",
4 | "license": "MIT",
5 | "scripts": {
6 | "ng": "ng",
7 | "start": "ng serve",
8 | "build": "ng build",
9 | "test": "ng test",
10 | "lint": "ng lint",
11 | "e2e": "ng e2e",
12 | "deploy": "ng build -sm -ec -bh lsharir.github.io && gh-pages -d dist"
13 | },
14 | "private": true,
15 | "dependencies": {
16 | "@angular/common": "^4.0.0",
17 | "@angular/compiler": "^4.0.0",
18 | "@angular/core": "^4.0.0",
19 | "@angular/forms": "^4.0.0",
20 | "@angular/http": "^4.0.0",
21 | "@angular/platform-browser": "^4.0.0",
22 | "@angular/platform-browser-dynamic": "^4.0.0",
23 | "@angular/router": "^4.0.0",
24 | "core-js": "^2.4.1",
25 | "rxjs": "^5.1.0",
26 | "zone.js": "^0.8.4"
27 | },
28 | "devDependencies": {
29 | "@angular/cli": "1.0.0",
30 | "@angular/compiler-cli": "^4.0.0",
31 | "@types/node": "~6.0.60",
32 | "codelyzer": "~2.0.0",
33 | "gh-pages": "^0.12.0",
34 | "ts-node": "~2.0.0",
35 | "tslint": "~4.5.0",
36 | "typescript": "~2.2.0"
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016 Dan Bovey
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular2-emoji-picker",
3 | "version": "1.4.0",
4 | "description": "Emoji picker for angular2+",
5 | "repository": {
6 | "type": "git",
7 | "url": "git+https://github.com/lsharir/angular2-emoji-picker.git"
8 | },
9 | "author": "Liran Sharir ",
10 | "main": "./lib-dist/index.js",
11 | "types": "./lib-dist/index.d.ts",
12 | "scripts": {
13 | "build:library": "nglb --rootDir src --outDir lib-dist"
14 | },
15 | "keywords": [
16 | "angular",
17 | "angular2",
18 | "emoji",
19 | "picker",
20 | "dropdown"
21 | ],
22 | "license": "MIT",
23 | "devDependencies": {
24 | "@types/node": "^7.0.12",
25 | "angular-library-builder": "^1.4.2"
26 | },
27 | "dependencies": {
28 | "@angular/common": ">=2.4.0",
29 | "@angular/compiler": ">=2.4.0",
30 | "@angular/core": ">=2.4.0",
31 | "core-js": ">=2.4.1",
32 | "rxjs": ">=5.1.0",
33 | "zone.js": ">=0.7.6"
34 | },
35 | "peerDependencies": {
36 | "@angular/common": ">=2.4.0",
37 | "@angular/compiler": ">=2.4.0",
38 | "@angular/core": ">=2.4.0",
39 | "core-js": ">=2.4.1",
40 | "rxjs": ">=5.1.0",
41 | "zone.js": ">=0.7.6"
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/styles/emoji-button.scss:
--------------------------------------------------------------------------------
1 | @import '_constants.scss';
2 |
3 | :host {
4 | display: inline-block;
5 | }
6 |
7 | .emoji-button {
8 | padding: 0;
9 | outline: none;
10 | background: none;
11 | cursor: pointer;
12 | width: $ep-emoji-width;
13 | height: $ep-emoji-width;
14 | border: 5px solid transparent;
15 | border-radius: $ep-border-radius;
16 | font-size: ($ep-emoji-width - 10px);
17 | line-height: 1.1;
18 | transition: all 0.2s;
19 |
20 | &:hover, &:focus {
21 | background: #F1F1F1;
22 | border-color: #F1F1F1;
23 | }
24 | }
25 |
26 | .emoji-button-from-sheet {
27 | padding: 0;
28 | border: none;
29 | outline: none;
30 | display: inline-block;
31 | background-repeat: no-repeat;
32 | /** box shaddowing the edges until I find a better sprite sheet */
33 | box-shadow: 0 0 1px 1px white inset;
34 | background-size: (25px * 1568 / 32);
35 | width: 25px;
36 | height: 25px;
37 | }
38 |
39 | .emoji-button-from-sheet-enclosure {
40 | display: inline-block;
41 | cursor: pointer;
42 | line-height: 0;
43 | padding: 4.5px;
44 | border-radius: $ep-border-radius;
45 |
46 | &:hover, &:focus {
47 | background: #F1F1F1;
48 | border-color: #F1F1F1;
49 |
50 | .emoji-button-from-sheet {
51 | box-shadow: 0 0 1px 1px #F1F1F1 inset;
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/src/components/emoji-list.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, Input, ViewChildren, QueryList, forwardRef, Output, EventEmitter } from '@angular/core';
2 | import { EmojiCategoryComponent } from './';
3 |
4 | @Component({
5 | selector: 'emoji-list',
6 | styleUrls: ['../styles/emoji-list.scss'],
7 | template: `
8 |
9 |
10 |
11 |
12 |
16 |
17 |
18 |
19 | `
20 | })
21 |
22 | export class EmojiListComponent {
23 | @ViewChildren(forwardRef(() => EmojiCategoryComponent)) emojiCategoryComponents: QueryList;
24 | @Input('emojis') emojis;
25 | @Output('emoji-selection') emojiSelectionEmitter = new EventEmitter();
26 |
27 | constructor() { }
28 |
29 | public selectCategory(event) {
30 | this.emojiCategoryComponents.forEach((categoryCmp:EmojiCategoryComponent) => {
31 | if (categoryCmp['category'].name === event.name) {
32 | categoryCmp.scrollIntoView();
33 | }
34 | });
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/demo/.angular-cli.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
3 | "project": {
4 | "name": "demo"
5 | },
6 | "apps": [
7 | {
8 | "root": "src",
9 | "outDir": "dist",
10 | "assets": [
11 | "assets",
12 | "favicon.ico",
13 | { "glob": "sheet_apple_32.png", "input": "../../src/sheets/", "output": "./" }
14 | ],
15 | "index": "index.html",
16 | "main": "main.ts",
17 | "polyfills": "polyfills.ts",
18 | "tsconfig": "tsconfig.app.json",
19 | "prefix": "app",
20 | "styles": [
21 | "styles.css"
22 | ],
23 | "scripts": [],
24 | "environmentSource": "environments/environment.ts",
25 | "environments": {
26 | "dev": "environments/environment.ts",
27 | "prod": "environments/environment.prod.ts"
28 | }
29 | }
30 | ],
31 | "e2e": {
32 | "protractor": {
33 | "config": "./protractor.conf.js"
34 | }
35 | },
36 | "lint": [
37 | {
38 | "project": "src/tsconfig.app.json"
39 | },
40 | {
41 | "project": "src/tsconfig.spec.json"
42 | },
43 | {
44 | "project": "e2e/tsconfig.e2e.json"
45 | }
46 | ],
47 | "test": {
48 | "karma": {
49 | "config": "./karma.conf.js"
50 | }
51 | },
52 | "defaults": {
53 | "styleExt": "scss",
54 | "component": {}
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/src/components/emoji-button.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, Input, EventEmitter, Output } from '@angular/core';
2 | import { EmojiPickerOptions } from "../services";
3 |
4 | @Component({
5 | selector: 'emoji-button',
6 | styleUrls: ['../styles/emoji-button.scss'],
7 | template: `
8 |
14 |
15 |
17 |
22 |
23 |
24 |
25 | `
26 | })
27 |
28 | export class EmojiButtonComponent {
29 | @Input('emoji') emoji;
30 | @Input('dataToEmit') dataToEmit;
31 | @Input('options') options;
32 | @Input('fitzpatrick') fitzpatrick;
33 |
34 | @Output('selection') selectionEmitter : EventEmitter = new EventEmitter();
35 |
36 | constructor(private emojiPickerOptions: EmojiPickerOptions) {}
37 | }
38 |
--------------------------------------------------------------------------------
/src/components/emoji-search.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, EventEmitter, Output, ViewChild, Renderer, ElementRef, Input } from '@angular/core';
2 | import { Subject } from "rxjs/Subject";
3 | import "rxjs/add/operator/throttleTime";
4 | import "rxjs/add/operator/takeUntil";
5 |
6 | @Component({
7 | selector: 'emoji-search',
8 | styleUrls: ['../styles/emoji-search.scss'],
9 | template: `
10 |
11 | `
12 | })
13 |
14 | export class EmojiSearchComponent {
15 | @Input('inputAutofocus') inputAutofocus: boolean;
16 | @Output('search') searchEmitter: EventEmitter = new EventEmitter();
17 | @ViewChild('input') input: ElementRef;
18 |
19 | private _searchValue: Subject = new Subject();
20 | private _destroyed = new Subject();
21 |
22 | constructor(private _renderer: Renderer) {
23 | this._searchValue
24 | .takeUntil(this._destroyed)
25 | .subscribe(value => {
26 | this.searchEmitter.emit(value);
27 | });
28 | }
29 |
30 | ngAfterViewInit() {
31 | if (this.inputAutofocus) {
32 | this._renderer.invokeElementMethod(this.input.nativeElement, 'focus');
33 | }
34 | }
35 |
36 | handleInputChange(event) {
37 | this._searchValue.next(event);
38 | }
39 |
40 | ngOnDestroy() {
41 | this._destroyed.next(true);
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/demo/src/app/app.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, ViewChild } from '@angular/core';
2 | import { CaretEvent, EmojiEvent, EmojiPickerOptions } from "../../../src";
3 | import { EmojiPickerAppleSheetLocator } from "../../../src/sheets";
4 |
5 | @Component({
6 | selector: 'app-root',
7 | templateUrl: './app.component.html',
8 | styleUrls: ['./app.component.css']
9 | })
10 | export class AppComponent {
11 | public eventMock;
12 | public eventPosMock;
13 |
14 | public direction = Math.random() > 0.5 ? (Math.random() > 0.5 ? 'top' : 'bottom') : (Math.random() > 0.5 ? 'right' : 'left');
15 | public toggled = false;
16 | public content = 'Type letters, enter emojis, go nuts...';
17 |
18 | private _lastCaretEvent: CaretEvent;
19 |
20 | constructor(private emojiPickerOptions: EmojiPickerOptions) {
21 | this.emojiPickerOptions.setEmojiSheet({
22 | url: 'sheet_apple_32.png',
23 | locator: EmojiPickerAppleSheetLocator
24 | });
25 | }
26 |
27 | handleSelection(event: EmojiEvent) {
28 | this.content = this.content.slice(0, this._lastCaretEvent.caretOffset) + event.char + this.content.slice(this._lastCaretEvent.caretOffset);
29 | this.eventMock = JSON.stringify(event);
30 | }
31 |
32 | handleCurrentCaret(event: CaretEvent) {
33 | this._lastCaretEvent = event;
34 | this.eventPosMock = `{ caretOffset : ${event.caretOffset}, caretRange: Range{...}, textContent: ${event.textContent} }`;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/demo/src/app/app.component.html:
--------------------------------------------------------------------------------
1 | $event{{' = ' + eventPosMock}}
5 | {{content}}
6 |
7 |
8 | {{toggled}}$event{{' = ' + eventMock}}😄
16 | ]]>
17 |
18 |
19 | Angular Emoji Picker
20 |
21 |
22 |
37 |
38 |
41 |
--------------------------------------------------------------------------------
/src/components/emoji-content.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, ViewChild, forwardRef, Output, EventEmitter, Input } from '@angular/core';
2 | import { EMOJIS } from "../lib/emojis.data";
3 | import { EmojiListComponent } from "./";
4 |
5 | @Component({
6 | selector: 'emoji-content',
7 | styleUrls: ['../styles/emoji-content.scss'],
8 | template: `
9 |
14 |
15 |
16 | `
17 | })
18 |
19 | export class EmojiContentComponent {
20 | @ViewChild(forwardRef(() => EmojiListComponent)) emojiListComponent: EmojiListComponent;
21 | @Output('emoji-selection') emojiSelectionEmitter = new EventEmitter();
22 | @Input('inputAutofocus') inputAutofocus: boolean;
23 |
24 | private _emojis = EMOJIS;
25 | emojis = this._emojis.slice();
26 | emojisCategories = this._emojis.map(category => Object.assign({}, category, { emojis : [] }));
27 |
28 | constructor() {}
29 |
30 | searchHandler(value) {
31 | let filteredEmojis = this.emojisCategories.map(category => Object.assign({}, category, { emojis : [] }));
32 |
33 | value = value.replace(/-/g, '').toLowerCase();
34 |
35 | Object.keys(this._emojis).forEach(i => {
36 | const category = this._emojis[i];
37 |
38 | category.emojis.forEach(emoji => {
39 | if (emoji[1].indexOf(value) !== -1) {
40 | filteredEmojis[i].emojis.push(emoji);
41 | }
42 | });
43 | });
44 |
45 | this.emojis = filteredEmojis;
46 | }
47 |
48 | categorySelectionHandler(event) {
49 | this.emojiListComponent.selectCategory(event);
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 |
2 | # [1.4.0](https://github.com/lsharir/angular2-emoji-picker/compare/v1.3.0...v1.4.0) (2017-04-20)
3 |
4 | ## What's New
5 |
6 | * **EmojiPickerOptions:** root provided service to customize the picker (e.g. use of sprite sheets)
7 | * **Emoji sprite sheets:** provided sprite sheets (usage explained in readme.md)
8 |
9 |
10 | # [1.3.0](https://github.com/lsharir/angular2-emoji-picker/compare/v1.2.0...v1.3.0) (2017-04-20)
11 |
12 | ## What's New
13 |
14 | * **[emojiPickerAutofocus]="true || false":** chooses whether to autofocus the search bar or not
15 | * **[emojiPickerPreserveSelection]="true || false":** chooses whether to preserve existing document selection or not
16 |
17 |
18 | # [1.2.0](https://github.com/lsharir/angular2-emoji-picker/compare/v1.1.0...v1.2.0) (2017-04-20)
19 |
20 | ### Bug Fixes
21 |
22 | * **EmojiPickerCaret directive:** added support for input elements
23 |
24 | ### Performance Improvements
25 | * **EmojiPickerApi directive:** properly unsubscribing to event emitters
26 | * **EmojiPickerCaret directive:** improved event management, smart caret preserving event emitting when content of an editable div changes through DOM mutation.
27 |
28 | ## What's New
29 |
30 | * **(emojiPickerCaretEmitter):** emits the element textContent upon changes
31 | * **CaretEvent:** New caret event class available for use
32 | * **EmojiEvent:** New caret event class available for use
33 |
34 | ### BREAKING CHANGES
35 |
36 | * **(emojiPickerSelect) emitter:** the picker now emits an EmojiEvent object containing a char and label properties. Change usage accordingly (previous => now: event[0] => event.char, event[1] => event.label)
37 |
38 |
39 | # [1.1.0](https://github.com/lsharir/angular2-emoji-picker/compare/v1.0.5...v1.1.0) (2017-04-19)
40 |
41 | ### Design
42 |
43 | * **picker:** various design changes implemented, smaller emoji picker, more efficient use of area.
44 |
45 | ### Features
46 |
47 | * **[emojiPickerDirection]:** choose from 'top', 'bottom', 'left' and 'right' as possible pop up directions
48 | * **picker:** emoji picker is now flexible to window resizing, position will be recalculated with a short debounce for light resources
49 |
50 | ### BREAKING CHANGES
51 |
52 | * **EmojiPickerAnchor directive:** removed unnecessary directive, implemented through attribute emojiPickerIf (just drop [emojiPickerAnchor] and make sure [(emojiPickerIf)] is used in your emoji picker button element)
53 | * **EmojiPickerPosition directive:** (emojiPickerPositionEmitter) renamed to (emojiPickerCaretEmitter) if you relied on this event emitter directive for any reason, make sure to rename your usage accordingly.
54 |
--------------------------------------------------------------------------------
/demo/src/polyfills.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * This file includes polyfills needed by Angular and is loaded before the app.
3 | * You can add your own extra polyfills to this file.
4 | *
5 | * This file is divided into 2 sections:
6 | * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
7 | * 2. Application imports. Files imported after ZoneJS that should be loaded before your main
8 | * file.
9 | *
10 | * The current setup is for so-called "evergreen" browsers; the last versions of browsers that
11 | * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
12 | * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.
13 | *
14 | * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html
15 | */
16 |
17 | /***************************************************************************************************
18 | * BROWSER POLYFILLS
19 | */
20 |
21 | /** IE9, IE10 and IE11 requires all of the following polyfills. **/
22 | // import 'core-js/es6/symbol';
23 | // import 'core-js/es6/object';
24 | // import 'core-js/es6/function';
25 | // import 'core-js/es6/parse-int';
26 | // import 'core-js/es6/parse-float';
27 | // import 'core-js/es6/number';
28 | // import 'core-js/es6/math';
29 | // import 'core-js/es6/string';
30 | // import 'core-js/es6/date';
31 | // import 'core-js/es6/array';
32 | // import 'core-js/es6/regexp';
33 | // import 'core-js/es6/map';
34 | // import 'core-js/es6/set';
35 |
36 | /** IE10 and IE11 requires the following for NgClass support on SVG elements */
37 | // import 'classlist.js'; // Run `npm install --save classlist.js`.
38 |
39 | /** IE10 and IE11 requires the following to support `@angular/animation`. */
40 | // import 'web-animations-js'; // Run `npm install --save web-animations-js`.
41 |
42 |
43 | /** Evergreen browsers require these. **/
44 | import 'core-js/es6/reflect';
45 | import 'core-js/es7/reflect';
46 |
47 |
48 | /** ALL Firefox browsers require the following to support `@angular/animation`. **/
49 | // import 'web-animations-js'; // Run `npm install --save web-animations-js`.
50 |
51 |
52 |
53 | /***************************************************************************************************
54 | * Zone JS is required by Angular itself.
55 | */
56 | import 'zone.js/dist/zone'; // Included with Angular CLI.
57 |
58 |
59 |
60 | /***************************************************************************************************
61 | * APPLICATION IMPORTS
62 | */
63 |
64 | /**
65 | * Date, currency, decimal and percent pipes.
66 | * Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10
67 | */
68 | // import 'intl'; // Run `npm install --save intl`.
69 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | [](https://badge.fury.io/js/angular2-emoji-picker)
2 |
3 | # Emoji picker for Angular
4 |
5 | This project was forked from the [EmojiPanel](https://github.com/danbovey/EmojiPanel) project created by [DanBovey](https://github.com/danbovey)
6 |
7 | It's pretty basic right now, not very customizable but propagates necessary emoji selection events and comes with basic search and category selection functionalities.
8 |
9 | [Demo](https://lsharir.github.io/angular2-emoji-picker/)
10 |
11 | Demo uses the sprite sheets
12 |
13 |
14 | ### Usage:
15 |
16 | ```
17 | import { EmojiPickerModule } from 'angular2-emoji-picker';
18 |
19 | @NgModule({
20 | ...
21 | imports: [
22 | EmojiPickerModule.forRoot()
23 | ],
24 | ...
25 | })
26 | export class AppModule {}
27 |
28 | ```
29 |
30 | ### Use The Sprite Sheet
31 |
32 | ```
33 | /** file: app.component.ts */
34 |
35 | import { EmojiPickerOptions } from 'angular2-emoji-picker';
36 |
37 | /** imported seperately to reduce package size for those who won't use sheets */
38 | import { EmojiPickerAppleSheetLocator } from 'angular2-emoji-picker/sheets';
39 |
40 | constructor(private emojiPickerOptions: EmojiPickerOptions) {
41 | this.emojiPickerOptions.setEmojiSheet({
42 | url: 'sheet_apple_32.png',
43 | locator: EmojiPickerAppleSheetLocator
44 | });
45 | }
46 | ```
47 |
48 | include the sheet_apple_32.png file in your build and provide your specific file url
49 |
50 | ```
51 | /** .angular-cli.json */
52 |
53 | {
54 | "apps": [
55 | {
56 | "assets": [
57 | { "glob": "sheet_apple_32.png", "input": "../node_modules/angular2-emoji-picker/sheets/", "output": "./" }
58 | ]
59 | }
60 | ]
61 | }
62 |
63 | ```
64 |
65 | ### Directive API:
66 |
67 | ```
68 | 😄
75 | ```
76 |
77 | ### Emitter `(emojiPickerSelect)="handleSelection($event)"`
78 |
79 | ```
80 | $event = EmojiEvent{ char : "😌", label : "relieved" }
81 | ```
82 |
83 | ## EmojiPickerCaretEmitter
84 |
85 | added for your convenience, emits information regarding a contenteditable enabled element
86 |
87 | ### Emitter `(emojiPickerCaretEmitter)="handleCaretChange($event)"`
88 |
89 | ```
90 | $event = CaretEvent{ caretOffset: 13, caretRange: Range{...}, textContent: 'content of div or input' }
91 | ```
92 |
93 | Emoji Picker will get placed relative the element chosen via the directive api, centered and within window borders
94 |
--------------------------------------------------------------------------------
/src/directives/emoji-picker-caret.directive.ts:
--------------------------------------------------------------------------------
1 | import { Directive, Output, EventEmitter, ElementRef} from '@angular/core';
2 | import { Subject } from "rxjs/Subject";
3 | import 'rxjs/add/operator/takeUntil';
4 | import 'rxjs/add/operator/distinctUntilChanged';
5 |
6 | import { CaretEvent } from "../../src";
7 |
8 | @Directive({
9 | selector: '[emojiPickerCaretEmitter]',
10 | host: {
11 | '(keyup)': 'updateCaretPosition()',
12 | '(mouseup)': 'updateCaretPosition()',
13 | '(selectstart)': 'updateCaretPosition()',
14 | '(focus)': 'updateCaretPosition()',
15 | '(DOMSubtreeModified)': 'updateCaretDueMutation($event)'
16 | }
17 | })
18 | export class EmojiPickerCaretDirective {
19 | @Output('emojiPickerCaretEmitter') caretEmitter = new EventEmitter();
20 |
21 | private _caretEvent$ = new Subject();
22 | private _destroyed$ = new Subject();
23 |
24 | private _lastCaretEvent: CaretEvent = CaretEvent.generateNullEvent();
25 |
26 | private _win;
27 | private _doc;
28 |
29 | get doc() {
30 | if (!this._doc) {
31 | this._doc = this._el.nativeElement.ownerDocument || this._el.nativeElement.document || document;
32 | }
33 |
34 | return this._doc;
35 | }
36 |
37 | get win() {
38 | if (!this._win) {
39 | this._win = this.doc.defaultView || this.doc.parentWindow || window
40 | }
41 |
42 | return this._win
43 | }
44 |
45 | constructor(
46 | private _el: ElementRef
47 | ) {
48 | this._caretEvent$
49 | .takeUntil(this._destroyed$)
50 | .distinctUntilChanged((event1, event2) => {
51 | return CaretEvent.compare(event1, event2);
52 | })
53 | .subscribe((event: CaretEvent) => {
54 | this.caretEmitter.emit(event);
55 | this._lastCaretEvent = event.clone()
56 | })
57 | ;
58 | }
59 |
60 | ngOnInit() {
61 | if (!this._el.nativeElement.getAttribute('contenteditable') && this._el.nativeElement.tagName.toLowerCase() !== 'input') {
62 | throw new Error('(emojiPickerPositionEmitter) should only work on contenteditable enabled or input elements');
63 | }
64 | }
65 |
66 | ngOnDestroy() {
67 | this._destroyed$.next(true);
68 | }
69 |
70 | updateCaretPosition() {
71 | const cEvent = CaretEvent.generateCaretEvent(this.win, this.doc, this._el.nativeElement);
72 | this._caretEvent$.next(cEvent);
73 | }
74 |
75 | updateCaretDueMutation() {
76 | const cEvent = CaretEvent.generateCaretEvent(this.win, this.doc, this._el.nativeElement);
77 | let textMovement = cEvent.textContent.length - this._lastCaretEvent.textContent.length;
78 | cEvent.caretOffset = this._lastCaretEvent.caretOffset + textMovement;
79 |
80 | /** change detection after DOMSubtreeModified event is weird
81 | * ChangeDetectorRef.detectChanges(), ChangeDetectorRef.markForCheck(), ApplicationRef.tick(), NgZone.run()
82 | * all of those methods did not work as expected.
83 | * As a temporary hack I am emitting an event after a short timeout, which is fine due to the _caretEvent$ smart stream
84 | */
85 |
86 | setTimeout(() => {
87 | this._caretEvent$.next(cEvent);
88 | });
89 | }
90 | }
91 |
--------------------------------------------------------------------------------
/src/lib/caret-event.ts:
--------------------------------------------------------------------------------
1 | export class CaretEvent {
2 | caretOffset: number;
3 | caretRange: Range;
4 | textContent: string;
5 |
6 | constructor(data) {
7 | Object.assign(this, data);
8 | }
9 |
10 | clone(): CaretEvent {
11 | return new CaretEvent(Object.assign({}, this, {
12 | caretRange: this.caretRange && this.caretRange.cloneRange ? this.caretRange.cloneRange() : this.caretRange
13 | }));
14 | }
15 |
16 | static generateNullEvent() {
17 | return new CaretEvent({
18 | caretOffset: 0,
19 | textContent: ''
20 | });
21 | }
22 |
23 | static comparePropsOfObject(r1, r2) {
24 | for (let k in r1) {
25 | if (r1[k] !== r2[k]) {
26 | return false
27 | }
28 | }
29 | return true;
30 | }
31 |
32 | static compare(e1: CaretEvent, e2: CaretEvent): boolean {
33 | const changed =
34 | /** different when either caretRange is omitted while other exists */
35 | (!e1.caretRange && e2.caretRange) ||
36 | (e1.caretRange && !e2.caretRange) ||
37 | /** different when offset has changed */
38 | (e1.caretOffset !== e2.caretOffset) ||
39 | /** different when textContent has changed */
40 | (e1.textContent !== e2.textContent) ||
41 | /** different when range object properties changed */
42 | !this.comparePropsOfObject(e1.caretRange, e2.caretRange)
43 | ;
44 |
45 | return !changed;
46 | }
47 |
48 | static generateCaretEvent(win, doc, element: HTMLElement & HTMLInputElement): CaretEvent {
49 | let caretOffset = 0, sel, caretRange, textContent = element.textContent;
50 |
51 | if (element.tagName.toLowerCase() === 'input') {
52 | return new CaretEvent({
53 | caretOffset: element.selectionEnd,
54 | textContent: element.value
55 | })
56 | }
57 |
58 | if (typeof win.getSelection != "undefined") {
59 | sel = win.getSelection();
60 | if (sel.rangeCount > 0) {
61 | const range = win.getSelection().getRangeAt(0);
62 | const preCaretRange = range.cloneRange();
63 | const nodeLength = element.textContent.length;
64 | preCaretRange.selectNodeContents(element);
65 | preCaretRange.setEnd(range.endContainer, range.endOffset > nodeLength ? nodeLength : range.endOffset);
66 | caretOffset = preCaretRange.toString().length;
67 |
68 | /** Keeping a reference of the range to emit */
69 | caretRange = range.cloneRange();
70 | }
71 | } else if ((sel = doc.selection) && sel.type != "Control") {
72 | const textRange = sel.createRange();
73 | const preCaretTextRange = doc.body.createTextRange();
74 | preCaretTextRange.moveToElementText(element);
75 | preCaretTextRange.setEndPoint("EndToEnd", textRange);
76 | caretOffset = preCaretTextRange.text.length;
77 |
78 | /** Keeping a reference of the range to emit and making it compatible */
79 | caretRange = textRange.duplicate();
80 | caretRange.insertNode = (e) => {
81 | const container = document.createElement("div");
82 | container.appendChild(e);
83 | caretRange.pasteHTML(container.innerHTML);
84 | };
85 | }
86 |
87 | return new CaretEvent({
88 | caretOffset,
89 | caretRange,
90 | textContent
91 | });
92 | }
93 | }
94 |
--------------------------------------------------------------------------------
/demo/tslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "rulesDirectory": [
3 | "node_modules/codelyzer"
4 | ],
5 | "rules": {
6 | "callable-types": true,
7 | "class-name": true,
8 | "comment-format": [
9 | true,
10 | "check-space"
11 | ],
12 | "curly": true,
13 | "eofline": true,
14 | "forin": true,
15 | "import-blacklist": [true, "rxjs"],
16 | "import-spacing": true,
17 | "indent": [
18 | true,
19 | "spaces"
20 | ],
21 | "interface-over-type-literal": true,
22 | "label-position": true,
23 | "max-line-length": [
24 | true,
25 | 140
26 | ],
27 | "member-access": false,
28 | "member-ordering": [
29 | true,
30 | "static-before-instance",
31 | "variables-before-functions"
32 | ],
33 | "no-arg": true,
34 | "no-bitwise": true,
35 | "no-console": [
36 | true,
37 | "debug",
38 | "info",
39 | "time",
40 | "timeEnd",
41 | "trace"
42 | ],
43 | "no-construct": true,
44 | "no-debugger": true,
45 | "no-duplicate-variable": true,
46 | "no-empty": false,
47 | "no-empty-interface": true,
48 | "no-eval": true,
49 | "no-inferrable-types": [true, "ignore-params"],
50 | "no-shadowed-variable": true,
51 | "no-string-literal": false,
52 | "no-string-throw": true,
53 | "no-switch-case-fall-through": true,
54 | "no-trailing-whitespace": true,
55 | "no-unused-expression": true,
56 | "no-use-before-declare": true,
57 | "no-var-keyword": true,
58 | "object-literal-sort-keys": false,
59 | "one-line": [
60 | true,
61 | "check-open-brace",
62 | "check-catch",
63 | "check-else",
64 | "check-whitespace"
65 | ],
66 | "prefer-const": true,
67 | "quotemark": [
68 | true,
69 | "single"
70 | ],
71 | "radix": true,
72 | "semicolon": [
73 | "always"
74 | ],
75 | "triple-equals": [
76 | true,
77 | "allow-null-check"
78 | ],
79 | "typedef-whitespace": [
80 | true,
81 | {
82 | "call-signature": "nospace",
83 | "index-signature": "nospace",
84 | "parameter": "nospace",
85 | "property-declaration": "nospace",
86 | "variable-declaration": "nospace"
87 | }
88 | ],
89 | "typeof-compare": true,
90 | "unified-signatures": true,
91 | "variable-name": false,
92 | "whitespace": [
93 | true,
94 | "check-branch",
95 | "check-decl",
96 | "check-operator",
97 | "check-separator",
98 | "check-type"
99 | ],
100 |
101 | "directive-selector": [true, "attribute", "app", "camelCase"],
102 | "component-selector": [true, "element", "app", "kebab-case"],
103 | "use-input-property-decorator": true,
104 | "use-output-property-decorator": true,
105 | "use-host-property-decorator": true,
106 | "no-input-rename": true,
107 | "no-output-rename": true,
108 | "use-life-cycle-interface": true,
109 | "use-pipe-transform-interface": true,
110 | "component-class-suffix": true,
111 | "directive-class-suffix": true,
112 | "no-access-missing-member": true,
113 | "templates-use-public": true,
114 | "invoke-injectable": true
115 | }
116 | }
117 |
--------------------------------------------------------------------------------
/src/components/emoji-picker.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, EventEmitter, Output, ElementRef, Renderer } from '@angular/core';
2 | import { DIRECTIONS } from "../lib/picker-directions";
3 | import { Subject } from "rxjs/Subject";
4 | import 'rxjs/add/operator/debounceTime';
5 | import 'rxjs/add/operator/takeUntil';
6 |
7 | @Component({
8 | selector: 'emoji-picker',
9 | styles: [':host { position: absolute; z-index: 9999; }'],
10 | template: `
11 |
12 | `,
13 | host: {
14 | '(document:mousedown)': 'onBackground($event)',
15 | '(mousedown)': '_lastHostMousedownEvent = $event',
16 | '(window:resize)': '_windowResize.next($event)'
17 | }
18 | })
19 |
20 | export class EmojiPickerComponent {
21 | @Output('emoji-select') selectionEmitter = new EventEmitter();
22 | @Output('picker-close') pickerCloseEmitter = new EventEmitter();
23 |
24 | emojiPickerAutofocus: boolean;
25 |
26 | private _lastHostMousedownEvent;
27 | private _currentTarget: ElementRef;
28 | private _currentDirection: DIRECTIONS;
29 |
30 | private _windowResize = new Subject();
31 | private _destroyed = new Subject();
32 |
33 | constructor(private _renderer: Renderer, private _el: ElementRef) {
34 | this._windowResize
35 | .takeUntil(this._destroyed)
36 | .debounceTime(100)
37 | .subscribe(event => {
38 | this.setPosition(this._currentTarget, this._currentDirection);
39 | })
40 | }
41 |
42 | setPosition(target: ElementRef, directionCode: DIRECTIONS = DIRECTIONS.bottom) {
43 | if (!target) {
44 | return console.error('Emoji-Picker: positioning failed due to missing target element or direction code');
45 | }
46 |
47 | this._renderer.setElementStyle(this._el.nativeElement, 'transform', '');
48 |
49 | /** Store anchor and direction */
50 | this._currentTarget = target;
51 | this._currentDirection = directionCode;
52 |
53 | const targetBorders = target.nativeElement.getBoundingClientRect(),
54 | thisBorders = this._el.nativeElement.getBoundingClientRect();
55 |
56 | let heightCorrection = 0, widthCorrection = 0;
57 |
58 | /** Setting up centering of picker for all cases */
59 | switch (this._currentDirection) {
60 | case DIRECTIONS.top:
61 | case DIRECTIONS.bottom:
62 | widthCorrection = targetBorders.left - thisBorders.left + (targetBorders.width - thisBorders.width) / 2;
63 | break;
64 | case DIRECTIONS.left:
65 | case DIRECTIONS.right:
66 | heightCorrection = targetBorders.top - thisBorders.top + (targetBorders.height - thisBorders.height) / 2;
67 | break;
68 | }
69 |
70 | /** Setting up relative positioning for all cases */
71 | switch (this._currentDirection) {
72 | case DIRECTIONS.top:
73 | heightCorrection = targetBorders.top - thisBorders.bottom;
74 | break;
75 | case DIRECTIONS.left:
76 | widthCorrection = targetBorders.left - thisBorders.right;
77 | break;
78 | case DIRECTIONS.right:
79 | widthCorrection = targetBorders.right - thisBorders.left;
80 | break;
81 | case DIRECTIONS.bottom:
82 | heightCorrection = targetBorders.bottom - thisBorders.top;
83 | break;
84 | }
85 |
86 | /** Correcting positioning due to overflow problems */
87 | if (thisBorders.bottom + heightCorrection > window.innerHeight) {
88 | heightCorrection += window.innerHeight - (thisBorders.bottom + heightCorrection);
89 | }
90 |
91 | if (thisBorders.top + heightCorrection < 0) {
92 | heightCorrection -= (thisBorders.top + heightCorrection);
93 | }
94 |
95 | if (thisBorders.right + widthCorrection > window.innerWidth) {
96 | widthCorrection += window.innerWidth - (thisBorders.right + widthCorrection);
97 | }
98 |
99 | if (thisBorders.left + widthCorrection < 0) {
100 | widthCorrection -= (thisBorders.left + widthCorrection);
101 | }
102 |
103 | /** set the position adjustments to the emoji picker element */
104 | this._renderer.setElementStyle(this._el.nativeElement, 'transform', `translate(${widthCorrection}px,${heightCorrection}px)`);
105 | }
106 |
107 | setAutofocus(value) {
108 | this.emojiPickerAutofocus = value;
109 | }
110 |
111 | onBackground(event) {
112 | /** internal mousedowns are ignored */
113 | if (event === this._lastHostMousedownEvent || event.emojiPickerExempt) {
114 | return;
115 | }
116 |
117 | this.pickerCloseEmitter.emit(event);
118 | }
119 |
120 | ngOnDestroy() {
121 | this._destroyed.next(true);
122 | }
123 | }
124 |
--------------------------------------------------------------------------------
/src/directives/emoji-picker-api.directive.ts:
--------------------------------------------------------------------------------
1 | import {
2 | Directive,
3 | Input,
4 | ComponentFactoryResolver,
5 | ViewContainerRef,
6 | ComponentFactory,
7 | ComponentRef,
8 | ElementRef,
9 | EventEmitter,
10 | Output
11 | } from '@angular/core';
12 | import { Subject } from "rxjs/Subject";
13 | import 'rxjs/add/operator/takeUntil';
14 | import 'rxjs/add/operator/distinctUntilChanged';
15 |
16 | import { EmojiPickerComponent } from './../components';
17 | import { DIRECTIONS } from '../lib/picker-directions';
18 | import { Subscription } from "rxjs/Subscription";
19 | import { EmojiEvent } from "../";
20 |
21 | @Directive({
22 | selector: '[emojiPickerIf]',
23 | host: {
24 | '(mousedown)': '$event.emojiPickerExempt = true' // marking off event listening on anchor
25 | }
26 | })
27 | export class EmojiPickerApiDirective {
28 | private _directionCode: DIRECTIONS = DIRECTIONS.bottom;
29 |
30 | /** [emojiPickerDirection]="'top' || 'bottom' || 'left' || 'right'" defaults to 'bottom' */
31 | @Input('emojiPickerDirection') set emojiPickerDirection(direction: string) {
32 | if (DIRECTIONS[direction] === undefined) {
33 | console.error(`Emoji-Picker: direction '${direction}' passed as input does not exist in DIRECTIONS table, defaulting to 'bottom'`);
34 | this._directionCode = DIRECTIONS.bottom;
35 | } else {
36 | this._directionCode = DIRECTIONS[direction];
37 | }
38 | }
39 |
40 | /** [emojiPickerPreserveSelection]="true || false" preserves or forgets prexisting selection while toggling picker */
41 | @Input('emojiPickerPreserveSelection') emojiPickerPreserveSelection: boolean;
42 |
43 | /** [(emojiPickerIf)]="true || false" opens up or closes the picker */
44 | @Input('emojiPickerIf') set emojiPickerIf(condition: boolean) {
45 | this._emojiPickerOpenState.next(condition);
46 | }
47 | @Output('emojiPickerIfChange') emojiPickerIfEmitter = new EventEmitter();
48 |
49 | /** (emojiPickerSelect)="eventHandler($event)" // emits emoji picking event */
50 | @Output('emojiPickerSelect') selectEmitter = new EventEmitter();
51 |
52 | /** [emojiPickerAutofocus]="true || false" */
53 | @Input('emojiPickerAutofocus') emojiPickerAutofocus: boolean;
54 |
55 | private _emojiPickerOpenState = new Subject();
56 | private _destroyed = new Subject();
57 |
58 | private _emojiPickerFactory: ComponentFactory;
59 | private _emojiPickerRef: ComponentRef;
60 | private _emojiSubs: Subscription[] = [];
61 |
62 | private _recordedSelection;
63 |
64 | constructor(
65 | private _cfr: ComponentFactoryResolver,
66 | private _vcr: ViewContainerRef,
67 | private _el: ElementRef
68 | ) {
69 | this._emojiPickerOpenState
70 | .takeUntil(this._destroyed)
71 | .distinctUntilChanged()
72 | .subscribe(value => {
73 | if (value) {
74 | this.openPicker();
75 | } else {
76 | this.closePicker();
77 | }
78 | });
79 | }
80 |
81 | openPicker() {
82 | this._emojiPickerFactory = this._emojiPickerFactory || this._cfr.resolveComponentFactory(EmojiPickerComponent);
83 | this._emojiPickerRef = this._emojiPickerRef || this._vcr.createComponent(this._emojiPickerFactory);
84 |
85 | this.recordSelection();
86 |
87 | this._emojiPickerRef.instance.setPosition(this._el, this._directionCode);
88 | this._emojiPickerRef.instance.setAutofocus(this.emojiPickerAutofocus);
89 | this._emojiSubs.push(
90 | this._emojiPickerRef.instance.pickerCloseEmitter.subscribe(event => this.emojiPickerIfEmitter.emit(false)),
91 | this._emojiPickerRef.instance.selectionEmitter.subscribe(event => this.selectEmitter.emit(EmojiEvent.fromArray(event)))
92 | );
93 |
94 | this.restoreSelection();
95 | }
96 |
97 | closePicker() {
98 | if (!this._emojiPickerRef || !this._emojiPickerRef.destroy) {
99 | return;
100 | }
101 |
102 | this._emojiSubs.forEach((subscription: Subscription) => subscription.unsubscribe());
103 | this._emojiPickerRef.destroy();
104 |
105 | this._emojiSubs = [];
106 | delete this._emojiPickerRef;
107 | }
108 |
109 | recordSelection() {
110 | if (!this.emojiPickerPreserveSelection) {
111 | return;
112 | }
113 |
114 | if (window.getSelection) {
115 | let sel = window.getSelection();
116 | if (sel.getRangeAt && sel.rangeCount) {
117 | return this._recordedSelection = sel.getRangeAt(0);
118 | }
119 | } else if (document['selection'] && document['selection'].createRange) {
120 | return this._recordedSelection = document['selection'].createRange();
121 | }
122 | }
123 |
124 | restoreSelection() {
125 | if (!this.emojiPickerPreserveSelection || !this._recordedSelection) {
126 | return;
127 | }
128 |
129 | if (window.getSelection) {
130 | let sel = window.getSelection();
131 | sel.removeAllRanges();
132 | sel.addRange(this._recordedSelection);
133 | } else if (document['selection'] && this._recordedSelection.select) {
134 | this._recordedSelection.select();
135 | }
136 | }
137 |
138 | ngOnDestroy() {
139 | this._destroyed.next(true);
140 | }
141 | }
142 |
--------------------------------------------------------------------------------
/src/lib/emojis.data.ts:
--------------------------------------------------------------------------------
1 | export const EMOJIS = [
2 | {
3 | "emojis": [
4 | [
5 | "😄",
6 | "smile"
7 | ],
8 | [
9 | "😃",
10 | "smiley"
11 | ],
12 | [
13 | "😀",
14 | "grinning"
15 | ],
16 | [
17 | "😊",
18 | "blush"
19 | ],
20 | [
21 | "☺",
22 | "relaxed"
23 | ],
24 | [
25 | "😉",
26 | "wink"
27 | ],
28 | [
29 | "😍",
30 | "heart_eyes"
31 | ],
32 | [
33 | "😘",
34 | "kissing_heart"
35 | ],
36 | [
37 | "😚",
38 | "kissing_closed_eyes"
39 | ],
40 | [
41 | "😗",
42 | "kissing"
43 | ],
44 | [
45 | "😙",
46 | "kissing_smiling_eyes"
47 | ],
48 | [
49 | "😜",
50 | "stuck_out_tongue_winking_eye"
51 | ],
52 | [
53 | "😝",
54 | "stuck_out_tongue_closed_eyes"
55 | ],
56 | [
57 | "😛",
58 | "stuck_out_tongue"
59 | ],
60 | [
61 | "😳",
62 | "flushed"
63 | ],
64 | [
65 | "😁",
66 | "grin"
67 | ],
68 | [
69 | "😔",
70 | "pensive"
71 | ],
72 | [
73 | "😌",
74 | "relieved"
75 | ],
76 | [
77 | "😒",
78 | "unamused"
79 | ],
80 | [
81 | "😞",
82 | "disappointed"
83 | ],
84 | [
85 | "😣",
86 | "persevere"
87 | ],
88 | [
89 | "😢",
90 | "cry"
91 | ],
92 | [
93 | "😂",
94 | "joy"
95 | ],
96 | [
97 | "😭",
98 | "sob"
99 | ],
100 | [
101 | "😪",
102 | "sleepy"
103 | ],
104 | [
105 | "😥",
106 | "disappointed_relieved"
107 | ],
108 | [
109 | "😰",
110 | "cold_sweat"
111 | ],
112 | [
113 | "😅",
114 | "sweat_smile"
115 | ],
116 | [
117 | "😓",
118 | "sweat"
119 | ],
120 | [
121 | "😩",
122 | "weary"
123 | ],
124 | [
125 | "😫",
126 | "tired_face"
127 | ],
128 | [
129 | "😨",
130 | "fearful"
131 | ],
132 | [
133 | "😱",
134 | "scream"
135 | ],
136 | [
137 | "😠",
138 | "angry"
139 | ],
140 | [
141 | "😡",
142 | "rage"
143 | ],
144 | [
145 | "😤",
146 | "triumph"
147 | ],
148 | [
149 | "😖",
150 | "confounded"
151 | ],
152 | [
153 | "😆",
154 | "laughing"
155 | ],
156 | [
157 | "😋",
158 | "yum"
159 | ],
160 | [
161 | "😷",
162 | "mask"
163 | ],
164 | [
165 | "😎",
166 | "sunglasses"
167 | ],
168 | [
169 | "😴",
170 | "sleeping"
171 | ],
172 | [
173 | "😵",
174 | "dizzy_face"
175 | ],
176 | [
177 | "😲",
178 | "astonished"
179 | ],
180 | [
181 | "😟",
182 | "worried"
183 | ],
184 | [
185 | "😦",
186 | "frowning"
187 | ],
188 | [
189 | "😧",
190 | "anguished"
191 | ],
192 | [
193 | "👿",
194 | "imp"
195 | ],
196 | [
197 | "😮",
198 | "open_mouth"
199 | ],
200 | [
201 | "😬",
202 | "grimacing"
203 | ],
204 | [
205 | "😐",
206 | "neutral_face"
207 | ],
208 | [
209 | "😕",
210 | "confused"
211 | ],
212 | [
213 | "😯",
214 | "hushed"
215 | ],
216 | [
217 | "😏",
218 | "smirk"
219 | ],
220 | [
221 | "😑",
222 | "expressionless"
223 | ],
224 | [
225 | "👲",
226 | "man_with_gua_pi_mao"
227 | ],
228 | [
229 | "👳",
230 | "man_with_turban"
231 | ],
232 | [
233 | "👮",
234 | "cop"
235 | ],
236 | [
237 | "👷",
238 | "construction_worker"
239 | ],
240 | [
241 | "💂",
242 | "guardsman"
243 | ],
244 | [
245 | "👶",
246 | "baby"
247 | ],
248 | [
249 | "👦",
250 | "boy"
251 | ],
252 | [
253 | "👧",
254 | "girl"
255 | ],
256 | [
257 | "👨",
258 | "man"
259 | ],
260 | [
261 | "👩",
262 | "woman"
263 | ],
264 | [
265 | "👴",
266 | "older_man"
267 | ],
268 | [
269 | "👵",
270 | "older_woman"
271 | ],
272 | [
273 | "👱",
274 | "person_with_blond_hair"
275 | ],
276 | [
277 | "👼",
278 | "angel"
279 | ],
280 | [
281 | "👸",
282 | "princess"
283 | ],
284 | [
285 | "😺",
286 | "smiley_cat"
287 | ],
288 | [
289 | "😸",
290 | "smile_cat"
291 | ],
292 | [
293 | "😻",
294 | "heart_eyes_cat"
295 | ],
296 | [
297 | "😽",
298 | "kissing_cat"
299 | ],
300 | [
301 | "😼",
302 | "smirk_cat"
303 | ],
304 | [
305 | "🙀",
306 | "scream_cat"
307 | ],
308 | [
309 | "😿",
310 | "crying_cat_face"
311 | ],
312 | [
313 | "😹",
314 | "joy_cat"
315 | ],
316 | [
317 | "😾",
318 | "pouting_cat"
319 | ],
320 | [
321 | "👹",
322 | "japanese_ogre"
323 | ],
324 | [
325 | "👺",
326 | "japanese_goblin"
327 | ],
328 | [
329 | "🙈",
330 | "see_no_evil"
331 | ],
332 | [
333 | "🙉",
334 | "hear_no_evil"
335 | ],
336 | [
337 | "🙊",
338 | "speak_no_evil"
339 | ],
340 | [
341 | "💀",
342 | "skull"
343 | ],
344 | [
345 | "👽",
346 | "alien"
347 | ],
348 | [
349 | "💩",
350 | "hankey"
351 | ],
352 | [
353 | "🔥",
354 | "fire"
355 | ],
356 | [
357 | "✨",
358 | "sparkles"
359 | ],
360 | [
361 | "🌟",
362 | "star2"
363 | ],
364 | [
365 | "💫",
366 | "dizzy"
367 | ],
368 | [
369 | "💥",
370 | "boom"
371 | ],
372 | [
373 | "💢",
374 | "anger"
375 | ],
376 | [
377 | "💦",
378 | "sweat_drops"
379 | ],
380 | [
381 | "💧",
382 | "droplet"
383 | ],
384 | [
385 | "💤",
386 | "zzz"
387 | ],
388 | [
389 | "💨",
390 | "dash"
391 | ],
392 | [
393 | "👂",
394 | "ear"
395 | ],
396 | [
397 | "👀",
398 | "eyes"
399 | ],
400 | [
401 | "👃",
402 | "nose"
403 | ],
404 | [
405 | "👅",
406 | "tongue"
407 | ],
408 | [
409 | "👄",
410 | "lips"
411 | ],
412 | [
413 | "👍",
414 | "+1"
415 | ],
416 | [
417 | "👎",
418 | "-1"
419 | ],
420 | [
421 | "👌",
422 | "ok_hand"
423 | ],
424 | [
425 | "👊",
426 | "facepunch"
427 | ],
428 | [
429 | "✊",
430 | "fist"
431 | ],
432 | [
433 | "✌",
434 | "v"
435 | ],
436 | [
437 | "👋",
438 | "wave"
439 | ],
440 | [
441 | "✋",
442 | "hand"
443 | ],
444 | [
445 | "👐",
446 | "open_hands"
447 | ],
448 | [
449 | "👆",
450 | "point_up_2"
451 | ],
452 | [
453 | "👇",
454 | "point_down"
455 | ],
456 | [
457 | "👉",
458 | "point_right"
459 | ],
460 | [
461 | "👈",
462 | "point_left"
463 | ],
464 | [
465 | "🙌",
466 | "raised_hands"
467 | ],
468 | [
469 | "🙏",
470 | "pray"
471 | ],
472 | [
473 | "☝",
474 | "point_up"
475 | ],
476 | [
477 | "👏",
478 | "clap"
479 | ],
480 | [
481 | "💪",
482 | "muscle"
483 | ],
484 | [
485 | "🚶",
486 | "walking"
487 | ],
488 | [
489 | "🏃",
490 | "runner"
491 | ],
492 | [
493 | "💃",
494 | "dancer"
495 | ],
496 | [
497 | "👫",
498 | "couple"
499 | ],
500 | [
501 | "👪",
502 | "family"
503 | ],
504 | [
505 | "💏",
506 | "couplekiss"
507 | ],
508 | [
509 | "💑",
510 | "couple_with_heart"
511 | ],
512 | [
513 | "👯",
514 | "dancers"
515 | ],
516 | [
517 | "🙆",
518 | "ok_woman"
519 | ],
520 | [
521 | "🙅",
522 | "no_good"
523 | ],
524 | [
525 | "💁",
526 | "information_desk_person"
527 | ],
528 | [
529 | "🙋",
530 | "raising_hand"
531 | ],
532 | [
533 | "💆",
534 | "massage"
535 | ],
536 | [
537 | "💇",
538 | "haircut"
539 | ],
540 | [
541 | "💅",
542 | "nail_care"
543 | ],
544 | [
545 | "👰",
546 | "bride_with_veil"
547 | ],
548 | [
549 | "🙎",
550 | "person_with_pouting_face"
551 | ],
552 | [
553 | "🙍",
554 | "person_frowning"
555 | ],
556 | [
557 | "🙇",
558 | "bow"
559 | ],
560 | [
561 | "🎩",
562 | "tophat"
563 | ],
564 | [
565 | "👑",
566 | "crown"
567 | ],
568 | [
569 | "👒",
570 | "womans_hat"
571 | ],
572 | [
573 | "👟",
574 | "athletic_shoe"
575 | ],
576 | [
577 | "👞",
578 | "mans_shoe"
579 | ],
580 | [
581 | "👡",
582 | "sandal"
583 | ],
584 | [
585 | "👠",
586 | "high_heel"
587 | ],
588 | [
589 | "👢",
590 | "boot"
591 | ],
592 | [
593 | "👕",
594 | "shirt"
595 | ],
596 | [
597 | "👔",
598 | "necktie"
599 | ],
600 | [
601 | "👚",
602 | "womans_clothes"
603 | ],
604 | [
605 | "👗",
606 | "dress"
607 | ],
608 | [
609 | "🎽",
610 | "running_shirt_with_sash"
611 | ],
612 | [
613 | "👖",
614 | "jeans"
615 | ],
616 | [
617 | "👘",
618 | "kimono"
619 | ],
620 | [
621 | "👙",
622 | "bikini"
623 | ],
624 | [
625 | "💼",
626 | "briefcase"
627 | ],
628 | [
629 | "👜",
630 | "handbag"
631 | ],
632 | [
633 | "👝",
634 | "pouch"
635 | ],
636 | [
637 | "👛",
638 | "purse"
639 | ],
640 | [
641 | "👓",
642 | "eyeglasses"
643 | ],
644 | [
645 | "🎀",
646 | "ribbon"
647 | ],
648 | [
649 | "🌂",
650 | "closed_umbrella"
651 | ],
652 | [
653 | "💄",
654 | "lipstick"
655 | ],
656 | [
657 | "💛",
658 | "yellow_heart"
659 | ],
660 | [
661 | "💙",
662 | "blue_heart"
663 | ],
664 | [
665 | "💜",
666 | "purple_heart"
667 | ],
668 | [
669 | "💚",
670 | "green_heart"
671 | ],
672 | [
673 | "❤",
674 | "heart"
675 | ],
676 | [
677 | "💔",
678 | "broken_heart"
679 | ],
680 | [
681 | "💗",
682 | "heartpulse"
683 | ],
684 | [
685 | "💓",
686 | "heartbeat"
687 | ],
688 | [
689 | "💕",
690 | "two_hearts"
691 | ],
692 | [
693 | "💖",
694 | "sparkling_heart"
695 | ],
696 | [
697 | "💞",
698 | "revolving_hearts"
699 | ],
700 | [
701 | "💘",
702 | "cupid"
703 | ],
704 | [
705 | "💌",
706 | "love_letter"
707 | ],
708 | [
709 | "💋",
710 | "kiss"
711 | ],
712 | [
713 | "💍",
714 | "ring"
715 | ],
716 | [
717 | "💎",
718 | "gem"
719 | ],
720 | [
721 | "👤",
722 | "bust_in_silhouette"
723 | ],
724 | [
725 | "💬",
726 | "speech_balloon"
727 | ],
728 | [
729 | "👣",
730 | "footprints"
731 | ]
732 | ],
733 | "name": "People",
734 | "icon": ["😄", "smile"]
735 | },
736 | {
737 | "emojis": [
738 | [
739 | "🐶",
740 | "dog"
741 | ],
742 | [
743 | "🐺",
744 | "wolf"
745 | ],
746 | [
747 | "🐱",
748 | "cat"
749 | ],
750 | [
751 | "🐭",
752 | "mouse"
753 | ],
754 | [
755 | "🐹",
756 | "hamster"
757 | ],
758 | [
759 | "🐰",
760 | "rabbit"
761 | ],
762 | [
763 | "🐸",
764 | "frog"
765 | ],
766 | [
767 | "🐯",
768 | "tiger"
769 | ],
770 | [
771 | "🐨",
772 | "koala"
773 | ],
774 | [
775 | "🐻",
776 | "bear"
777 | ],
778 | [
779 | "🐷",
780 | "pig"
781 | ],
782 | [
783 | "🐽",
784 | "pig_nose"
785 | ],
786 | [
787 | "🐮",
788 | "cow"
789 | ],
790 | [
791 | "🐗",
792 | "boar"
793 | ],
794 | [
795 | "🐵",
796 | "monkey_face"
797 | ],
798 | [
799 | "🐒",
800 | "monkey"
801 | ],
802 | [
803 | "🐴",
804 | "horse"
805 | ],
806 | [
807 | "🐑",
808 | "sheep"
809 | ],
810 | [
811 | "🐘",
812 | "elephant"
813 | ],
814 | [
815 | "🐼",
816 | "panda_face"
817 | ],
818 | [
819 | "🐧",
820 | "penguin"
821 | ],
822 | [
823 | "🐦",
824 | "bird"
825 | ],
826 | [
827 | "🐤",
828 | "baby_chick"
829 | ],
830 | [
831 | "🐥",
832 | "hatched_chick"
833 | ],
834 | [
835 | "🐣",
836 | "hatching_chick"
837 | ],
838 | [
839 | "🐔",
840 | "chicken"
841 | ],
842 | [
843 | "🐍",
844 | "snake"
845 | ],
846 | [
847 | "🐢",
848 | "turtle"
849 | ],
850 | [
851 | "🐛",
852 | "bug"
853 | ],
854 | [
855 | "🐝",
856 | "bee"
857 | ],
858 | [
859 | "🐜",
860 | "ant"
861 | ],
862 | [
863 | "🐞",
864 | "beetle"
865 | ],
866 | [
867 | "🐌",
868 | "snail"
869 | ],
870 | [
871 | "🐙",
872 | "octopus"
873 | ],
874 | [
875 | "🐚",
876 | "shell"
877 | ],
878 | [
879 | "🐠",
880 | "tropical_fish"
881 | ],
882 | [
883 | "🐟",
884 | "fish"
885 | ],
886 | [
887 | "🐬",
888 | "dolphin"
889 | ],
890 | [
891 | "🐳",
892 | "whale"
893 | ],
894 | [
895 | "🐎",
896 | "racehorse"
897 | ],
898 | [
899 | "🐲",
900 | "dragon_face"
901 | ],
902 | [
903 | "🐡",
904 | "blowfish"
905 | ],
906 | [
907 | "🐫",
908 | "camel"
909 | ],
910 | [
911 | "🐩",
912 | "poodle"
913 | ],
914 | [
915 | "🐾",
916 | "feet"
917 | ],
918 | [
919 | "💐",
920 | "bouquet"
921 | ],
922 | [
923 | "🌸",
924 | "cherry_blossom"
925 | ],
926 | [
927 | "🌷",
928 | "tulip"
929 | ],
930 | [
931 | "🍀",
932 | "four_leaf_clover"
933 | ],
934 | [
935 | "🌹",
936 | "rose"
937 | ],
938 | [
939 | "🌻",
940 | "sunflower"
941 | ],
942 | [
943 | "🌺",
944 | "hibiscus"
945 | ],
946 | [
947 | "🍁",
948 | "maple_leaf"
949 | ],
950 | [
951 | "🍃",
952 | "leaves"
953 | ],
954 | [
955 | "🍂",
956 | "fallen_leaf"
957 | ],
958 | [
959 | "🌿",
960 | "herb"
961 | ],
962 | [
963 | "🌾",
964 | "ear_of_rice"
965 | ],
966 | [
967 | "🍄",
968 | "mushroom"
969 | ],
970 | [
971 | "🌵",
972 | "cactus"
973 | ],
974 | [
975 | "🌴",
976 | "palm_tree"
977 | ],
978 | [
979 | "🌰",
980 | "chestnut"
981 | ],
982 | [
983 | "🌱",
984 | "seedling"
985 | ],
986 | [
987 | "🌼",
988 | "blossom"
989 | ],
990 | [
991 | "🌑",
992 | "new_moon"
993 | ],
994 | [
995 | "🌓",
996 | "first_quarter_moon"
997 | ],
998 | [
999 | "🌔",
1000 | "moon"
1001 | ],
1002 | [
1003 | "🌕",
1004 | "full_moon"
1005 | ],
1006 | [
1007 | "🌛",
1008 | "first_quarter_moon_with_face"
1009 | ],
1010 | [
1011 | "🌙",
1012 | "crescent_moon"
1013 | ],
1014 | [
1015 | "🌏",
1016 | "earth_asia"
1017 | ],
1018 | [
1019 | "🌋",
1020 | "volcano"
1021 | ],
1022 | [
1023 | "🌌",
1024 | "milky_way"
1025 | ],
1026 | [
1027 | "🌠",
1028 | "stars"
1029 | ],
1030 | [
1031 | "⭐",
1032 | "star"
1033 | ],
1034 | [
1035 | "☀",
1036 | "sunny"
1037 | ],
1038 | [
1039 | "⛅",
1040 | "partly_sunny"
1041 | ],
1042 | [
1043 | "☁",
1044 | "cloud"
1045 | ],
1046 | [
1047 | "⚡",
1048 | "zap"
1049 | ],
1050 | [
1051 | "☔",
1052 | "umbrella"
1053 | ],
1054 | [
1055 | "❄",
1056 | "snowflake"
1057 | ],
1058 | [
1059 | "⛄",
1060 | "snowman"
1061 | ],
1062 | [
1063 | "🌀",
1064 | "cyclone"
1065 | ],
1066 | [
1067 | "🌁",
1068 | "foggy"
1069 | ],
1070 | [
1071 | "🌈",
1072 | "rainbow"
1073 | ],
1074 | [
1075 | "🌊",
1076 | "ocean"
1077 | ]
1078 | ],
1079 | "name": "Nature",
1080 | "icon": ["🌸", "cherry_blossom"]
1081 | },
1082 | {
1083 | "emojis": [
1084 | [
1085 | "🎍",
1086 | "bamboo"
1087 | ],
1088 | [
1089 | "💝",
1090 | "gift_heart"
1091 | ],
1092 | [
1093 | "🎎",
1094 | "dolls"
1095 | ],
1096 | [
1097 | "🎒",
1098 | "school_satchel"
1099 | ],
1100 | [
1101 | "🎓",
1102 | "mortar_board"
1103 | ],
1104 | [
1105 | "🎏",
1106 | "flags"
1107 | ],
1108 | [
1109 | "🎆",
1110 | "fireworks"
1111 | ],
1112 | [
1113 | "🎇",
1114 | "sparkler"
1115 | ],
1116 | [
1117 | "🎐",
1118 | "wind_chime"
1119 | ],
1120 | [
1121 | "🎑",
1122 | "rice_scene"
1123 | ],
1124 | [
1125 | "🎃",
1126 | "jack_o_lantern"
1127 | ],
1128 | [
1129 | "👻",
1130 | "ghost"
1131 | ],
1132 | [
1133 | "🎅",
1134 | "santa"
1135 | ],
1136 | [
1137 | "🎄",
1138 | "christmas_tree"
1139 | ],
1140 | [
1141 | "🎁",
1142 | "gift"
1143 | ],
1144 | [
1145 | "🎋",
1146 | "tanabata_tree"
1147 | ],
1148 | [
1149 | "🎉",
1150 | "tada"
1151 | ],
1152 | [
1153 | "🎊",
1154 | "confetti_ball"
1155 | ],
1156 | [
1157 | "🎈",
1158 | "balloon"
1159 | ],
1160 | [
1161 | "🎌",
1162 | "crossed_flags"
1163 | ],
1164 | [
1165 | "🔮",
1166 | "crystal_ball"
1167 | ],
1168 | [
1169 | "🎥",
1170 | "movie_camera"
1171 | ],
1172 | [
1173 | "📷",
1174 | "camera"
1175 | ],
1176 | [
1177 | "📹",
1178 | "video_camera"
1179 | ],
1180 | [
1181 | "📼",
1182 | "vhs"
1183 | ],
1184 | [
1185 | "💿",
1186 | "cd"
1187 | ],
1188 | [
1189 | "📀",
1190 | "dvd"
1191 | ],
1192 | [
1193 | "💽",
1194 | "minidisc"
1195 | ],
1196 | [
1197 | "💾",
1198 | "floppy_disk"
1199 | ],
1200 | [
1201 | "💻",
1202 | "computer"
1203 | ],
1204 | [
1205 | "📱",
1206 | "iphone"
1207 | ],
1208 | [
1209 | "☎",
1210 | "phone"
1211 | ],
1212 | [
1213 | "📞",
1214 | "telephone_receiver"
1215 | ],
1216 | [
1217 | "📟",
1218 | "pager"
1219 | ],
1220 | [
1221 | "📠",
1222 | "fax"
1223 | ],
1224 | [
1225 | "📡",
1226 | "satellite"
1227 | ],
1228 | [
1229 | "📺",
1230 | "tv"
1231 | ],
1232 | [
1233 | "📻",
1234 | "radio"
1235 | ],
1236 | [
1237 | "🔊",
1238 | "loud_sound"
1239 | ],
1240 | [
1241 | "🔔",
1242 | "bell"
1243 | ],
1244 | [
1245 | "📢",
1246 | "loudspeaker"
1247 | ],
1248 | [
1249 | "📣",
1250 | "mega"
1251 | ],
1252 | [
1253 | "⏳",
1254 | "hourglass_flowing_sand"
1255 | ],
1256 | [
1257 | "⌛",
1258 | "hourglass"
1259 | ],
1260 | [
1261 | "⏰",
1262 | "alarm_clock"
1263 | ],
1264 | [
1265 | "⌚",
1266 | "watch"
1267 | ],
1268 | [
1269 | "🔓",
1270 | "unlock"
1271 | ],
1272 | [
1273 | "🔒",
1274 | "lock"
1275 | ],
1276 | [
1277 | "🔏",
1278 | "lock_with_ink_pen"
1279 | ],
1280 | [
1281 | "🔐",
1282 | "closed_lock_with_key"
1283 | ],
1284 | [
1285 | "🔑",
1286 | "key"
1287 | ],
1288 | [
1289 | "🔎",
1290 | "mag_right"
1291 | ],
1292 | [
1293 | "💡",
1294 | "bulb"
1295 | ],
1296 | [
1297 | "🔦",
1298 | "flashlight"
1299 | ],
1300 | [
1301 | "🔌",
1302 | "electric_plug"
1303 | ],
1304 | [
1305 | "🔋",
1306 | "battery"
1307 | ],
1308 | [
1309 | "🔍",
1310 | "mag"
1311 | ],
1312 | [
1313 | "🛀",
1314 | "bath"
1315 | ],
1316 | [
1317 | "🚽",
1318 | "toilet"
1319 | ],
1320 | [
1321 | "🔧",
1322 | "wrench"
1323 | ],
1324 | [
1325 | "🔩",
1326 | "nut_and_bolt"
1327 | ],
1328 | [
1329 | "🔨",
1330 | "hammer"
1331 | ],
1332 | [
1333 | "🚪",
1334 | "door"
1335 | ],
1336 | [
1337 | "🚬",
1338 | "smoking"
1339 | ],
1340 | [
1341 | "💣",
1342 | "bomb"
1343 | ],
1344 | [
1345 | "🔫",
1346 | "gun"
1347 | ],
1348 | [
1349 | "🔪",
1350 | "hocho"
1351 | ],
1352 | [
1353 | "💊",
1354 | "pill"
1355 | ],
1356 | [
1357 | "💉",
1358 | "syringe"
1359 | ],
1360 | [
1361 | "💰",
1362 | "moneybag"
1363 | ],
1364 | [
1365 | "💴",
1366 | "yen"
1367 | ],
1368 | [
1369 | "💵",
1370 | "dollar"
1371 | ],
1372 | [
1373 | "💳",
1374 | "credit_card"
1375 | ],
1376 | [
1377 | "💸",
1378 | "money_with_wings"
1379 | ],
1380 | [
1381 | "📲",
1382 | "calling"
1383 | ],
1384 | [
1385 | "📧",
1386 | "e-mail"
1387 | ],
1388 | [
1389 | "📥",
1390 | "inbox_tray"
1391 | ],
1392 | [
1393 | "📤",
1394 | "outbox_tray"
1395 | ],
1396 | [
1397 | "✉",
1398 | "email"
1399 | ],
1400 | [
1401 | "📩",
1402 | "envelope_with_arrow"
1403 | ],
1404 | [
1405 | "📨",
1406 | "incoming_envelope"
1407 | ],
1408 | [
1409 | "📫",
1410 | "mailbox"
1411 | ],
1412 | [
1413 | "📪",
1414 | "mailbox_closed"
1415 | ],
1416 | [
1417 | "📮",
1418 | "postbox"
1419 | ],
1420 | [
1421 | "📦",
1422 | "package"
1423 | ],
1424 | [
1425 | "📝",
1426 | "memo"
1427 | ],
1428 | [
1429 | "📄",
1430 | "page_facing_up"
1431 | ],
1432 | [
1433 | "📃",
1434 | "page_with_curl"
1435 | ],
1436 | [
1437 | "📑",
1438 | "bookmark_tabs"
1439 | ],
1440 | [
1441 | "📊",
1442 | "bar_chart"
1443 | ],
1444 | [
1445 | "📈",
1446 | "chart_with_upwards_trend"
1447 | ],
1448 | [
1449 | "📉",
1450 | "chart_with_downwards_trend"
1451 | ],
1452 | [
1453 | "📜",
1454 | "scroll"
1455 | ],
1456 | [
1457 | "📋",
1458 | "clipboard"
1459 | ],
1460 | [
1461 | "📅",
1462 | "date"
1463 | ],
1464 | [
1465 | "📆",
1466 | "calendar"
1467 | ],
1468 | [
1469 | "📇",
1470 | "card_index"
1471 | ],
1472 | [
1473 | "📁",
1474 | "file_folder"
1475 | ],
1476 | [
1477 | "📂",
1478 | "open_file_folder"
1479 | ],
1480 | [
1481 | "✂",
1482 | "scissors"
1483 | ],
1484 | [
1485 | "📌",
1486 | "pushpin"
1487 | ],
1488 | [
1489 | "📎",
1490 | "paperclip"
1491 | ],
1492 | [
1493 | "✒",
1494 | "black_nib"
1495 | ],
1496 | [
1497 | "✏",
1498 | "pencil2"
1499 | ],
1500 | [
1501 | "📏",
1502 | "straight_ruler"
1503 | ],
1504 | [
1505 | "📐",
1506 | "triangular_ruler"
1507 | ],
1508 | [
1509 | "📕",
1510 | "closed_book"
1511 | ],
1512 | [
1513 | "📗",
1514 | "green_book"
1515 | ],
1516 | [
1517 | "📘",
1518 | "blue_book"
1519 | ],
1520 | [
1521 | "📙",
1522 | "orange_book"
1523 | ],
1524 | [
1525 | "📓",
1526 | "notebook"
1527 | ],
1528 | [
1529 | "📔",
1530 | "notebook_with_decorative_cover"
1531 | ],
1532 | [
1533 | "📒",
1534 | "ledger"
1535 | ],
1536 | [
1537 | "📚",
1538 | "books"
1539 | ],
1540 | [
1541 | "📖",
1542 | "book"
1543 | ],
1544 | [
1545 | "🔖",
1546 | "bookmark"
1547 | ],
1548 | [
1549 | "📛",
1550 | "name_badge"
1551 | ],
1552 | [
1553 | "📰",
1554 | "newspaper"
1555 | ],
1556 | [
1557 | "🎨",
1558 | "art"
1559 | ],
1560 | [
1561 | "🎬",
1562 | "clapper"
1563 | ],
1564 | [
1565 | "🎤",
1566 | "microphone"
1567 | ],
1568 | [
1569 | "🎧",
1570 | "headphones"
1571 | ],
1572 | [
1573 | "🎼",
1574 | "musical_score"
1575 | ],
1576 | [
1577 | "🎵",
1578 | "musical_note"
1579 | ],
1580 | [
1581 | "🎶",
1582 | "notes"
1583 | ],
1584 | [
1585 | "🎹",
1586 | "musical_keyboard"
1587 | ],
1588 | [
1589 | "🎻",
1590 | "violin"
1591 | ],
1592 | [
1593 | "🎺",
1594 | "trumpet"
1595 | ],
1596 | [
1597 | "🎷",
1598 | "saxophone"
1599 | ],
1600 | [
1601 | "🎸",
1602 | "guitar"
1603 | ],
1604 | [
1605 | "👾",
1606 | "space_invader"
1607 | ],
1608 | [
1609 | "🎮",
1610 | "video_game"
1611 | ],
1612 | [
1613 | "🃏",
1614 | "black_joker"
1615 | ],
1616 | [
1617 | "🎴",
1618 | "flower_playing_cards"
1619 | ],
1620 | [
1621 | "🀄",
1622 | "mahjong"
1623 | ],
1624 | [
1625 | "🎲",
1626 | "game_die"
1627 | ],
1628 | [
1629 | "🎯",
1630 | "dart"
1631 | ],
1632 | [
1633 | "🏈",
1634 | "football"
1635 | ],
1636 | [
1637 | "🏀",
1638 | "basketball"
1639 | ],
1640 | [
1641 | "⚽",
1642 | "soccer"
1643 | ],
1644 | [
1645 | "⚾",
1646 | "baseball"
1647 | ],
1648 | [
1649 | "🎾",
1650 | "tennis"
1651 | ],
1652 | [
1653 | "🎱",
1654 | "8ball"
1655 | ],
1656 | [
1657 | "🎳",
1658 | "bowling"
1659 | ],
1660 | [
1661 | "⛳",
1662 | "golf"
1663 | ],
1664 | [
1665 | "🏁",
1666 | "checkered_flag"
1667 | ],
1668 | [
1669 | "🏆",
1670 | "trophy"
1671 | ],
1672 | [
1673 | "🎿",
1674 | "ski"
1675 | ],
1676 | [
1677 | "🏂",
1678 | "snowboarder"
1679 | ],
1680 | [
1681 | "🏊",
1682 | "swimmer"
1683 | ],
1684 | [
1685 | "🏄",
1686 | "surfer"
1687 | ],
1688 | [
1689 | "🎣",
1690 | "fishing_pole_and_fish"
1691 | ],
1692 | [
1693 | "☕",
1694 | "coffee"
1695 | ],
1696 | [
1697 | "🍵",
1698 | "tea"
1699 | ],
1700 | [
1701 | "🍶",
1702 | "sake"
1703 | ],
1704 | [
1705 | "🍺",
1706 | "beer"
1707 | ],
1708 | [
1709 | "🍻",
1710 | "beers"
1711 | ],
1712 | [
1713 | "🍸",
1714 | "cocktail"
1715 | ],
1716 | [
1717 | "🍹",
1718 | "tropical_drink"
1719 | ],
1720 | [
1721 | "🍷",
1722 | "wine_glass"
1723 | ],
1724 | [
1725 | "🍴",
1726 | "fork_and_knife"
1727 | ],
1728 | [
1729 | "🍕",
1730 | "pizza"
1731 | ],
1732 | [
1733 | "🍔",
1734 | "hamburger"
1735 | ],
1736 | [
1737 | "🍟",
1738 | "fries"
1739 | ],
1740 | [
1741 | "🍗",
1742 | "poultry_leg"
1743 | ],
1744 | [
1745 | "🍖",
1746 | "meat_on_bone"
1747 | ],
1748 | [
1749 | "🍝",
1750 | "spaghetti"
1751 | ],
1752 | [
1753 | "🍛",
1754 | "curry"
1755 | ],
1756 | [
1757 | "🍤",
1758 | "fried_shrimp"
1759 | ],
1760 | [
1761 | "🍱",
1762 | "bento"
1763 | ],
1764 | [
1765 | "🍣",
1766 | "sushi"
1767 | ],
1768 | [
1769 | "🍥",
1770 | "fish_cake"
1771 | ],
1772 | [
1773 | "🍙",
1774 | "rice_ball"
1775 | ],
1776 | [
1777 | "🍘",
1778 | "rice_cracker"
1779 | ],
1780 | [
1781 | "🍚",
1782 | "rice"
1783 | ],
1784 | [
1785 | "🍜",
1786 | "ramen"
1787 | ],
1788 | [
1789 | "🍲",
1790 | "stew"
1791 | ],
1792 | [
1793 | "🍢",
1794 | "oden"
1795 | ],
1796 | [
1797 | "🍡",
1798 | "dango"
1799 | ],
1800 | [
1801 | "🍳",
1802 | "egg"
1803 | ],
1804 | [
1805 | "🍞",
1806 | "bread"
1807 | ],
1808 | [
1809 | "🍩",
1810 | "doughnut"
1811 | ],
1812 | [
1813 | "🍮",
1814 | "custard"
1815 | ],
1816 | [
1817 | "🍦",
1818 | "icecream"
1819 | ],
1820 | [
1821 | "🍨",
1822 | "ice_cream"
1823 | ],
1824 | [
1825 | "🍧",
1826 | "shaved_ice"
1827 | ],
1828 | [
1829 | "🎂",
1830 | "birthday"
1831 | ],
1832 | [
1833 | "🍰",
1834 | "cake"
1835 | ],
1836 | [
1837 | "🍪",
1838 | "cookie"
1839 | ],
1840 | [
1841 | "🍫",
1842 | "chocolate_bar"
1843 | ],
1844 | [
1845 | "🍬",
1846 | "candy"
1847 | ],
1848 | [
1849 | "🍭",
1850 | "lollipop"
1851 | ],
1852 | [
1853 | "🍯",
1854 | "honey_pot"
1855 | ],
1856 | [
1857 | "🍎",
1858 | "apple"
1859 | ],
1860 | [
1861 | "🍏",
1862 | "green_apple"
1863 | ],
1864 | [
1865 | "🍊",
1866 | "tangerine"
1867 | ],
1868 | [
1869 | "🍒",
1870 | "cherries"
1871 | ],
1872 | [
1873 | "🍇",
1874 | "grapes"
1875 | ],
1876 | [
1877 | "🍉",
1878 | "watermelon"
1879 | ],
1880 | [
1881 | "🍓",
1882 | "strawberry"
1883 | ],
1884 | [
1885 | "🍑",
1886 | "peach"
1887 | ],
1888 | [
1889 | "🍈",
1890 | "melon"
1891 | ],
1892 | [
1893 | "🍌",
1894 | "banana"
1895 | ],
1896 | [
1897 | "🍍",
1898 | "pineapple"
1899 | ],
1900 | [
1901 | "🍠",
1902 | "sweet_potato"
1903 | ],
1904 | [
1905 | "🍆",
1906 | "eggplant"
1907 | ],
1908 | [
1909 | "🍅",
1910 | "tomato"
1911 | ],
1912 | [
1913 | "🌽",
1914 | "corn"
1915 | ]
1916 | ],
1917 | "name": "Objects",
1918 | "icon": ["🔔", "bell"]
1919 | },
1920 | {
1921 | "emojis": [
1922 | [
1923 | "🏠",
1924 | "house"
1925 | ],
1926 | [
1927 | "🏡",
1928 | "house_with_garden"
1929 | ],
1930 | [
1931 | "🏫",
1932 | "school"
1933 | ],
1934 | [
1935 | "🏢",
1936 | "office"
1937 | ],
1938 | [
1939 | "🏣",
1940 | "post_office"
1941 | ],
1942 | [
1943 | "🏥",
1944 | "hospital"
1945 | ],
1946 | [
1947 | "🏦",
1948 | "bank"
1949 | ],
1950 | [
1951 | "🏪",
1952 | "convenience_store"
1953 | ],
1954 | [
1955 | "🏩",
1956 | "love_hotel"
1957 | ],
1958 | [
1959 | "🏨",
1960 | "hotel"
1961 | ],
1962 | [
1963 | "💒",
1964 | "wedding"
1965 | ],
1966 | [
1967 | "⛪",
1968 | "church"
1969 | ],
1970 | [
1971 | "🏬",
1972 | "department_store"
1973 | ],
1974 | [
1975 | "🌇",
1976 | "city_sunrise"
1977 | ],
1978 | [
1979 | "🌆",
1980 | "city_sunset"
1981 | ],
1982 | [
1983 | "🏯",
1984 | "japanese_castle"
1985 | ],
1986 | [
1987 | "🏰",
1988 | "european_castle"
1989 | ],
1990 | [
1991 | "⛺",
1992 | "tent"
1993 | ],
1994 | [
1995 | "🏭",
1996 | "factory"
1997 | ],
1998 | [
1999 | "🗼",
2000 | "tokyo_tower"
2001 | ],
2002 | [
2003 | "🗾",
2004 | "japan"
2005 | ],
2006 | [
2007 | "🗻",
2008 | "mount_fuji"
2009 | ],
2010 | [
2011 | "🌄",
2012 | "sunrise_over_mountains"
2013 | ],
2014 | [
2015 | "🌅",
2016 | "sunrise"
2017 | ],
2018 | [
2019 | "🌃",
2020 | "night_with_stars"
2021 | ],
2022 | [
2023 | "🗽",
2024 | "statue_of_liberty"
2025 | ],
2026 | [
2027 | "🌉",
2028 | "bridge_at_night"
2029 | ],
2030 | [
2031 | "🎠",
2032 | "carousel_horse"
2033 | ],
2034 | [
2035 | "🎡",
2036 | "ferris_wheel"
2037 | ],
2038 | [
2039 | "⛲",
2040 | "fountain"
2041 | ],
2042 | [
2043 | "🎢",
2044 | "roller_coaster"
2045 | ],
2046 | [
2047 | "🚢",
2048 | "ship"
2049 | ],
2050 | [
2051 | "⛵",
2052 | "boat"
2053 | ],
2054 | [
2055 | "🚤",
2056 | "speedboat"
2057 | ],
2058 | [
2059 | "⚓",
2060 | "anchor"
2061 | ],
2062 | [
2063 | "🚀",
2064 | "rocket"
2065 | ],
2066 | [
2067 | "✈",
2068 | "airplane"
2069 | ],
2070 | [
2071 | "💺",
2072 | "seat"
2073 | ],
2074 | [
2075 | "🚉",
2076 | "station"
2077 | ],
2078 | [
2079 | "🚄",
2080 | "bullettrain_side"
2081 | ],
2082 | [
2083 | "🚅",
2084 | "bullettrain_front"
2085 | ],
2086 | [
2087 | "🚇",
2088 | "metro"
2089 | ],
2090 | [
2091 | "🚃",
2092 | "railway_car"
2093 | ],
2094 | [
2095 | "🚌",
2096 | "bus"
2097 | ],
2098 | [
2099 | "🚙",
2100 | "blue_car"
2101 | ],
2102 | [
2103 | "🚗",
2104 | "car"
2105 | ],
2106 | [
2107 | "🚕",
2108 | "taxi"
2109 | ],
2110 | [
2111 | "🚚",
2112 | "truck"
2113 | ],
2114 | [
2115 | "🚨",
2116 | "rotating_light"
2117 | ],
2118 | [
2119 | "🚓",
2120 | "police_car"
2121 | ],
2122 | [
2123 | "🚒",
2124 | "fire_engine"
2125 | ],
2126 | [
2127 | "🚑",
2128 | "ambulance"
2129 | ],
2130 | [
2131 | "🚲",
2132 | "bike"
2133 | ],
2134 | [
2135 | "💈",
2136 | "barber"
2137 | ],
2138 | [
2139 | "🚏",
2140 | "busstop"
2141 | ],
2142 | [
2143 | "🎫",
2144 | "ticket"
2145 | ],
2146 | [
2147 | "🚥",
2148 | "traffic_light"
2149 | ],
2150 | [
2151 | "⚠",
2152 | "warning"
2153 | ],
2154 | [
2155 | "🚧",
2156 | "construction"
2157 | ],
2158 | [
2159 | "🔰",
2160 | "beginner"
2161 | ],
2162 | [
2163 | "⛽",
2164 | "fuelpump"
2165 | ],
2166 | [
2167 | "🏮",
2168 | "izakaya_lantern"
2169 | ],
2170 | [
2171 | "🎰",
2172 | "slot_machine"
2173 | ],
2174 | [
2175 | "♨",
2176 | "hotsprings"
2177 | ],
2178 | [
2179 | "🗿",
2180 | "moyai"
2181 | ],
2182 | [
2183 | "🎪",
2184 | "circus_tent"
2185 | ],
2186 | [
2187 | "🎭",
2188 | "performing_arts"
2189 | ],
2190 | [
2191 | "📍",
2192 | "round_pushpin"
2193 | ],
2194 | [
2195 | "🚩",
2196 | "triangular_flag_on_post"
2197 | ]
2198 | ],
2199 | "name": "Places",
2200 | "icon": ["🚙", "blue_car"]
2201 | },
2202 | {
2203 | "emojis": [
2204 | [
2205 | "🔟",
2206 | "keycap_ten"
2207 | ],
2208 | [
2209 | "🔢",
2210 | "1234"
2211 | ],
2212 | [
2213 | "🔣",
2214 | "symbols"
2215 | ],
2216 | [
2217 | "⬆",
2218 | "arrow_up"
2219 | ],
2220 | [
2221 | "⬇",
2222 | "arrow_down"
2223 | ],
2224 | [
2225 | "⬅",
2226 | "arrow_left"
2227 | ],
2228 | [
2229 | "➡",
2230 | "arrow_right"
2231 | ],
2232 | [
2233 | "🔠",
2234 | "capital_abcd"
2235 | ],
2236 | [
2237 | "🔡",
2238 | "abcd"
2239 | ],
2240 | [
2241 | "🔤",
2242 | "abc"
2243 | ],
2244 | [
2245 | "↗",
2246 | "arrow_upper_right"
2247 | ],
2248 | [
2249 | "↖",
2250 | "arrow_upper_left"
2251 | ],
2252 | [
2253 | "↘",
2254 | "arrow_lower_right"
2255 | ],
2256 | [
2257 | "↙",
2258 | "arrow_lower_left"
2259 | ],
2260 | [
2261 | "↔",
2262 | "left_right_arrow"
2263 | ],
2264 | [
2265 | "↕",
2266 | "arrow_up_down"
2267 | ],
2268 | [
2269 | "◀",
2270 | "arrow_backward"
2271 | ],
2272 | [
2273 | "▶",
2274 | "arrow_forward"
2275 | ],
2276 | [
2277 | "🔼",
2278 | "arrow_up_small"
2279 | ],
2280 | [
2281 | "🔽",
2282 | "arrow_down_small"
2283 | ],
2284 | [
2285 | "↩",
2286 | "leftwards_arrow_with_hook"
2287 | ],
2288 | [
2289 | "↪",
2290 | "arrow_right_hook"
2291 | ],
2292 | [
2293 | "ℹ",
2294 | "information_source"
2295 | ],
2296 | [
2297 | "⏪",
2298 | "rewind"
2299 | ],
2300 | [
2301 | "⏩",
2302 | "fast_forward"
2303 | ],
2304 | [
2305 | "⏫",
2306 | "arrow_double_up"
2307 | ],
2308 | [
2309 | "⏬",
2310 | "arrow_double_down"
2311 | ],
2312 | [
2313 | "⤵",
2314 | "arrow_heading_down"
2315 | ],
2316 | [
2317 | "⤴",
2318 | "arrow_heading_up"
2319 | ],
2320 | [
2321 | "🆗",
2322 | "ok"
2323 | ],
2324 | [
2325 | "🆕",
2326 | "new"
2327 | ],
2328 | [
2329 | "🆙",
2330 | "up"
2331 | ],
2332 | [
2333 | "🆒",
2334 | "cool"
2335 | ],
2336 | [
2337 | "🆓",
2338 | "free"
2339 | ],
2340 | [
2341 | "🆖",
2342 | "ng"
2343 | ],
2344 | [
2345 | "📶",
2346 | "signal_strength"
2347 | ],
2348 | [
2349 | "🎦",
2350 | "cinema"
2351 | ],
2352 | [
2353 | "🈁",
2354 | "koko"
2355 | ],
2356 | [
2357 | "🈯",
2358 | "u6307"
2359 | ],
2360 | [
2361 | "🈳",
2362 | "u7a7a"
2363 | ],
2364 | [
2365 | "🈵",
2366 | "u6e80"
2367 | ],
2368 | [
2369 | "🈴",
2370 | "u5408"
2371 | ],
2372 | [
2373 | "🈲",
2374 | "u7981"
2375 | ],
2376 | [
2377 | "🉐",
2378 | "ideograph_advantage"
2379 | ],
2380 | [
2381 | "🈹",
2382 | "u5272"
2383 | ],
2384 | [
2385 | "🈺",
2386 | "u55b6"
2387 | ],
2388 | [
2389 | "🈶",
2390 | "u6709"
2391 | ],
2392 | [
2393 | "🈚",
2394 | "u7121"
2395 | ],
2396 | [
2397 | "🚻",
2398 | "restroom"
2399 | ],
2400 | [
2401 | "🚹",
2402 | "mens"
2403 | ],
2404 | [
2405 | "🚺",
2406 | "womens"
2407 | ],
2408 | [
2409 | "🚼",
2410 | "baby_symbol"
2411 | ],
2412 | [
2413 | "🚾",
2414 | "wc"
2415 | ],
2416 | [
2417 | "🅿",
2418 | "parking"
2419 | ],
2420 | [
2421 | "♿",
2422 | "wheelchair"
2423 | ],
2424 | [
2425 | "🚭",
2426 | "no_smoking"
2427 | ],
2428 | [
2429 | "🈷",
2430 | "u6708"
2431 | ],
2432 | [
2433 | "🈸",
2434 | "u7533"
2435 | ],
2436 | [
2437 | "🈂",
2438 | "sa"
2439 | ],
2440 | [
2441 | "Ⓜ",
2442 | "m"
2443 | ],
2444 | [
2445 | "🉑",
2446 | "accept"
2447 | ],
2448 | [
2449 | "㊙",
2450 | "secret"
2451 | ],
2452 | [
2453 | "㊗",
2454 | "congratulations"
2455 | ],
2456 | [
2457 | "🆑",
2458 | "cl"
2459 | ],
2460 | [
2461 | "🆘",
2462 | "sos"
2463 | ],
2464 | [
2465 | "🆔",
2466 | "id"
2467 | ],
2468 | [
2469 | "🚫",
2470 | "no_entry_sign"
2471 | ],
2472 | [
2473 | "🔞",
2474 | "underage"
2475 | ],
2476 | [
2477 | "⛔",
2478 | "no_entry"
2479 | ],
2480 | [
2481 | "✳",
2482 | "eight_spoked_asterisk"
2483 | ],
2484 | [
2485 | "❇",
2486 | "sparkle"
2487 | ],
2488 | [
2489 | "❎",
2490 | "negative_squared_cross_mark"
2491 | ],
2492 | [
2493 | "✅",
2494 | "white_check_mark"
2495 | ],
2496 | [
2497 | "✴",
2498 | "eight_pointed_black_star"
2499 | ],
2500 | [
2501 | "💟",
2502 | "heart_decoration"
2503 | ],
2504 | [
2505 | "🆚",
2506 | "vs"
2507 | ],
2508 | [
2509 | "📳",
2510 | "vibration_mode"
2511 | ],
2512 | [
2513 | "📴",
2514 | "mobile_phone_off"
2515 | ],
2516 | [
2517 | "🅰",
2518 | "a"
2519 | ],
2520 | [
2521 | "🅱",
2522 | "b"
2523 | ],
2524 | [
2525 | "🆎",
2526 | "ab"
2527 | ],
2528 | [
2529 | "🅾",
2530 | "o2"
2531 | ],
2532 | [
2533 | "💠",
2534 | "diamond_shape_with_a_dot_inside"
2535 | ],
2536 | [
2537 | "♻",
2538 | "recycle"
2539 | ],
2540 | [
2541 | "♈",
2542 | "aries"
2543 | ],
2544 | [
2545 | "♉",
2546 | "taurus"
2547 | ],
2548 | [
2549 | "♊",
2550 | "gemini"
2551 | ],
2552 | [
2553 | "♋",
2554 | "cancer"
2555 | ],
2556 | [
2557 | "♌",
2558 | "leo"
2559 | ],
2560 | [
2561 | "♍",
2562 | "virgo"
2563 | ],
2564 | [
2565 | "♎",
2566 | "libra"
2567 | ],
2568 | [
2569 | "♏",
2570 | "scorpius"
2571 | ],
2572 | [
2573 | "♐",
2574 | "sagittarius"
2575 | ],
2576 | [
2577 | "♑",
2578 | "capricorn"
2579 | ],
2580 | [
2581 | "♒",
2582 | "aquarius"
2583 | ],
2584 | [
2585 | "♓",
2586 | "pisces"
2587 | ],
2588 | [
2589 | "⛎",
2590 | "ophiuchus"
2591 | ],
2592 | [
2593 | "🔯",
2594 | "six_pointed_star"
2595 | ],
2596 | [
2597 | "🏧",
2598 | "atm"
2599 | ],
2600 | [
2601 | "💹",
2602 | "chart"
2603 | ],
2604 | [
2605 | "💲",
2606 | "heavy_dollar_sign"
2607 | ],
2608 | [
2609 | "💱",
2610 | "currency_exchange"
2611 | ],
2612 | [
2613 | "❌",
2614 | "x"
2615 | ],
2616 | [
2617 | "‼",
2618 | "bangbang"
2619 | ],
2620 | [
2621 | "⁉",
2622 | "interrobang"
2623 | ],
2624 | [
2625 | "❗",
2626 | "exclamation"
2627 | ],
2628 | [
2629 | "❓",
2630 | "question"
2631 | ],
2632 | [
2633 | "❕",
2634 | "grey_exclamation"
2635 | ],
2636 | [
2637 | "❔",
2638 | "grey_question"
2639 | ],
2640 | [
2641 | "⭕",
2642 | "o"
2643 | ],
2644 | [
2645 | "🔝",
2646 | "top"
2647 | ],
2648 | [
2649 | "🔚",
2650 | "end"
2651 | ],
2652 | [
2653 | "🔙",
2654 | "back"
2655 | ],
2656 | [
2657 | "🔛",
2658 | "on"
2659 | ],
2660 | [
2661 | "🔜",
2662 | "soon"
2663 | ],
2664 | [
2665 | "🔃",
2666 | "arrows_clockwise"
2667 | ],
2668 | [
2669 | "🕛",
2670 | "clock12"
2671 | ],
2672 | [
2673 | "🕐",
2674 | "clock1"
2675 | ],
2676 | [
2677 | "🕑",
2678 | "clock2"
2679 | ],
2680 | [
2681 | "🕒",
2682 | "clock3"
2683 | ],
2684 | [
2685 | "🕓",
2686 | "clock4"
2687 | ],
2688 | [
2689 | "🕔",
2690 | "clock5"
2691 | ],
2692 | [
2693 | "🕕",
2694 | "clock6"
2695 | ],
2696 | [
2697 | "🕖",
2698 | "clock7"
2699 | ],
2700 | [
2701 | "🕗",
2702 | "clock8"
2703 | ],
2704 | [
2705 | "🕘",
2706 | "clock9"
2707 | ],
2708 | [
2709 | "🕙",
2710 | "clock10"
2711 | ],
2712 | [
2713 | "🕚",
2714 | "clock11"
2715 | ],
2716 | [
2717 | "✖",
2718 | "heavy_multiplication_x"
2719 | ],
2720 | [
2721 | "➕",
2722 | "heavy_plus_sign"
2723 | ],
2724 | [
2725 | "➖",
2726 | "heavy_minus_sign"
2727 | ],
2728 | [
2729 | "➗",
2730 | "heavy_division_sign"
2731 | ],
2732 | [
2733 | "♠",
2734 | "spades"
2735 | ],
2736 | [
2737 | "♥",
2738 | "hearts"
2739 | ],
2740 | [
2741 | "♣",
2742 | "clubs"
2743 | ],
2744 | [
2745 | "♦",
2746 | "diamonds"
2747 | ],
2748 | [
2749 | "💮",
2750 | "white_flower"
2751 | ],
2752 | [
2753 | "💯",
2754 | "100"
2755 | ],
2756 | [
2757 | "✔",
2758 | "heavy_check_mark"
2759 | ],
2760 | [
2761 | "☑",
2762 | "ballot_box_with_check"
2763 | ],
2764 | [
2765 | "🔘",
2766 | "radio_button"
2767 | ],
2768 | [
2769 | "🔗",
2770 | "link"
2771 | ],
2772 | [
2773 | "➰",
2774 | "curly_loop"
2775 | ],
2776 | [
2777 | "〰",
2778 | "wavy_dash"
2779 | ],
2780 | [
2781 | "〽",
2782 | "part_alternation_mark"
2783 | ],
2784 | [
2785 | "🔱",
2786 | "trident"
2787 | ],
2788 | [
2789 | "◼",
2790 | "black_medium_square"
2791 | ],
2792 | [
2793 | "◻",
2794 | "white_medium_square"
2795 | ],
2796 | [
2797 | "◾",
2798 | "black_medium_small_square"
2799 | ],
2800 | [
2801 | "◽",
2802 | "white_medium_small_square"
2803 | ],
2804 | [
2805 | "▪",
2806 | "black_small_square"
2807 | ],
2808 | [
2809 | "▫",
2810 | "white_small_square"
2811 | ],
2812 | [
2813 | "🔺",
2814 | "small_red_triangle"
2815 | ],
2816 | [
2817 | "🔲",
2818 | "black_square_button"
2819 | ],
2820 | [
2821 | "🔳",
2822 | "white_square_button"
2823 | ],
2824 | [
2825 | "⚫",
2826 | "black_circle"
2827 | ],
2828 | [
2829 | "⚪",
2830 | "white_circle"
2831 | ],
2832 | [
2833 | "🔴",
2834 | "red_circle"
2835 | ],
2836 | [
2837 | "🔵",
2838 | "large_blue_circle"
2839 | ],
2840 | [
2841 | "🔻",
2842 | "small_red_triangle_down"
2843 | ],
2844 | [
2845 | "⬜",
2846 | "white_large_square"
2847 | ],
2848 | [
2849 | "⬛",
2850 | "black_large_square"
2851 | ],
2852 | [
2853 | "🔶",
2854 | "large_orange_diamond"
2855 | ],
2856 | [
2857 | "🔷",
2858 | "large_blue_diamond"
2859 | ],
2860 | [
2861 | "🔸",
2862 | "small_orange_diamond"
2863 | ],
2864 | [
2865 | "🔹",
2866 | "small_blue_diamond"
2867 | ]
2868 | ],
2869 | "name": "Symbols",
2870 | "icon": ["🔠", "capital_abcd"]
2871 | }
2872 | ];
2873 |
--------------------------------------------------------------------------------
/src/sheets/sheet_apple_map.ts:
--------------------------------------------------------------------------------
1 | export function EmojiPickerAppleSheetLocator(label: string) {
2 | if (!SHEET_APPLE_MAP_OBJECT[label]) {
3 | console.error('EmojiPickerAppleSheetLocator: no emoji label found for ' + label);
4 | return { x : 0, y : 0 };
5 | }
6 |
7 | return {
8 | x: SHEET_APPLE_MAP_OBJECT[label][0],
9 | y: SHEET_APPLE_MAP_OBJECT[label][1]
10 | }
11 | };
12 |
13 | const SHEET_APPLE_MAP_OBJECT = {
14 | "100": [
15 | 17,
16 | 32
17 | ],
18 | "1234": [
19 | 19,
20 | 48
21 | ],
22 | "copyright": [
23 | 0,
24 | 0
25 | ],
26 | "registered": [
27 | 0,
28 | 1
29 | ],
30 | "bangbang": [
31 | 0,
32 | 2
33 | ],
34 | "interrobang": [
35 | 0,
36 | 3
37 | ],
38 | "tm": [
39 | 0,
40 | 4
41 | ],
42 | "information_source": [
43 | 0,
44 | 5
45 | ],
46 | "left_right_arrow": [
47 | 0,
48 | 6
49 | ],
50 | "arrow_up_down": [
51 | 0,
52 | 7
53 | ],
54 | "arrow_upper_left": [
55 | 0,
56 | 8
57 | ],
58 | "arrow_upper_right": [
59 | 0,
60 | 9
61 | ],
62 | "arrow_lower_right": [
63 | 0,
64 | 10
65 | ],
66 | "arrow_lower_left": [
67 | 0,
68 | 11
69 | ],
70 | "leftwards_arrow_with_hook": [
71 | 0,
72 | 12
73 | ],
74 | "arrow_right_hook": [
75 | 0,
76 | 13
77 | ],
78 | "watch": [
79 | 0,
80 | 14
81 | ],
82 | "hourglass": [
83 | 0,
84 | 15
85 | ],
86 | "keyboard": [
87 | 0,
88 | 16
89 | ],
90 | "eject": [
91 | 0,
92 | 17
93 | ],
94 | "fast_forward": [
95 | 0,
96 | 18
97 | ],
98 | "rewind": [
99 | 0,
100 | 19
101 | ],
102 | "arrow_double_up": [
103 | 0,
104 | 20
105 | ],
106 | "arrow_double_down": [
107 | 0,
108 | 21
109 | ],
110 | "black_right_pointing_double_triangle_with_vertical_bar": [
111 | 0,
112 | 22
113 | ],
114 | "black_left_pointing_double_triangle_with_vertical_bar": [
115 | 0,
116 | 23
117 | ],
118 | "black_right_pointing_triangle_with_double_vertical_bar": [
119 | 0,
120 | 24
121 | ],
122 | "alarm_clock": [
123 | 0,
124 | 25
125 | ],
126 | "stopwatch": [
127 | 0,
128 | 26
129 | ],
130 | "timer_clock": [
131 | 0,
132 | 27
133 | ],
134 | "hourglass_flowing_sand": [
135 | 0,
136 | 28
137 | ],
138 | "double_vertical_bar": [
139 | 0,
140 | 29
141 | ],
142 | "black_square_for_stop": [
143 | 0,
144 | 30
145 | ],
146 | "black_circle_for_record": [
147 | 0,
148 | 31
149 | ],
150 | "m": [
151 | 0,
152 | 32
153 | ],
154 | "black_small_square": [
155 | 0,
156 | 33
157 | ],
158 | "white_small_square": [
159 | 0,
160 | 34
161 | ],
162 | "arrow_forward": [
163 | 0,
164 | 35
165 | ],
166 | "arrow_backward": [
167 | 0,
168 | 36
169 | ],
170 | "white_medium_square": [
171 | 0,
172 | 37
173 | ],
174 | "black_medium_square": [
175 | 0,
176 | 38
177 | ],
178 | "white_medium_small_square": [
179 | 0,
180 | 39
181 | ],
182 | "black_medium_small_square": [
183 | 0,
184 | 40
185 | ],
186 | "sunny": [
187 | 0,
188 | 41
189 | ],
190 | "cloud": [
191 | 0,
192 | 42
193 | ],
194 | "umbrella": [
195 | 0,
196 | 43
197 | ],
198 | "snowman": [
199 | 0,
200 | 44
201 | ],
202 | "comet": [
203 | 0,
204 | 45
205 | ],
206 | "phone": [
207 | 0,
208 | 46
209 | ],
210 | "ballot_box_with_check": [
211 | 0,
212 | 47
213 | ],
214 | "umbrella_with_rain_drops": [
215 | 0,
216 | 48
217 | ],
218 | "coffee": [
219 | 1,
220 | 0
221 | ],
222 | "shamrock": [
223 | 1,
224 | 1
225 | ],
226 | "point_up": [
227 | 1,
228 | 2
229 | ],
230 | "skull_and_crossbones": [
231 | 1,
232 | 8
233 | ],
234 | "radioactive_sign": [
235 | 1,
236 | 9
237 | ],
238 | "biohazard_sign": [
239 | 1,
240 | 10
241 | ],
242 | "orthodox_cross": [
243 | 1,
244 | 11
245 | ],
246 | "star_and_crescent": [
247 | 1,
248 | 12
249 | ],
250 | "peace_symbol": [
251 | 1,
252 | 13
253 | ],
254 | "yin_yang": [
255 | 1,
256 | 14
257 | ],
258 | "wheel_of_dharma": [
259 | 1,
260 | 15
261 | ],
262 | "white_frowning_face": [
263 | 1,
264 | 16
265 | ],
266 | "relaxed": [
267 | 1,
268 | 17
269 | ],
270 | "female_sign": [
271 | 1,
272 | 18
273 | ],
274 | "male_sign": [
275 | 1,
276 | 19
277 | ],
278 | "aries": [
279 | 1,
280 | 20
281 | ],
282 | "taurus": [
283 | 1,
284 | 21
285 | ],
286 | "gemini": [
287 | 1,
288 | 22
289 | ],
290 | "cancer": [
291 | 1,
292 | 23
293 | ],
294 | "leo": [
295 | 1,
296 | 24
297 | ],
298 | "virgo": [
299 | 1,
300 | 25
301 | ],
302 | "libra": [
303 | 1,
304 | 26
305 | ],
306 | "scorpius": [
307 | 1,
308 | 27
309 | ],
310 | "sagittarius": [
311 | 1,
312 | 28
313 | ],
314 | "capricorn": [
315 | 1,
316 | 29
317 | ],
318 | "aquarius": [
319 | 1,
320 | 30
321 | ],
322 | "pisces": [
323 | 1,
324 | 31
325 | ],
326 | "spades": [
327 | 1,
328 | 32
329 | ],
330 | "clubs": [
331 | 1,
332 | 33
333 | ],
334 | "hearts": [
335 | 1,
336 | 34
337 | ],
338 | "diamonds": [
339 | 1,
340 | 35
341 | ],
342 | "hotsprings": [
343 | 1,
344 | 36
345 | ],
346 | "recycle": [
347 | 1,
348 | 37
349 | ],
350 | "wheelchair": [
351 | 1,
352 | 38
353 | ],
354 | "hammer_and_pick": [
355 | 1,
356 | 39
357 | ],
358 | "anchor": [
359 | 1,
360 | 40
361 | ],
362 | "crossed_swords": [
363 | 1,
364 | 41
365 | ],
366 | "staff_of_aesculapius": [
367 | 1,
368 | 42
369 | ],
370 | "scales": [
371 | 1,
372 | 43
373 | ],
374 | "alembic": [
375 | 1,
376 | 44
377 | ],
378 | "gear": [
379 | 1,
380 | 45
381 | ],
382 | "atom_symbol": [
383 | 1,
384 | 46
385 | ],
386 | "fleur_de_lis": [
387 | 1,
388 | 47
389 | ],
390 | "warning": [
391 | 1,
392 | 48
393 | ],
394 | "zap": [
395 | 2,
396 | 0
397 | ],
398 | "white_circle": [
399 | 2,
400 | 1
401 | ],
402 | "black_circle": [
403 | 2,
404 | 2
405 | ],
406 | "coffin": [
407 | 2,
408 | 3
409 | ],
410 | "funeral_urn": [
411 | 2,
412 | 4
413 | ],
414 | "soccer": [
415 | 2,
416 | 5
417 | ],
418 | "baseball": [
419 | 2,
420 | 6
421 | ],
422 | "snowman_without_snow": [
423 | 2,
424 | 7
425 | ],
426 | "partly_sunny": [
427 | 2,
428 | 8
429 | ],
430 | "thunder_cloud_and_rain": [
431 | 2,
432 | 9
433 | ],
434 | "ophiuchus": [
435 | 2,
436 | 10
437 | ],
438 | "pick": [
439 | 2,
440 | 11
441 | ],
442 | "helmet_with_white_cross": [
443 | 2,
444 | 12
445 | ],
446 | "chains": [
447 | 2,
448 | 13
449 | ],
450 | "no_entry": [
451 | 2,
452 | 14
453 | ],
454 | "shinto_shrine": [
455 | 2,
456 | 15
457 | ],
458 | "church": [
459 | 2,
460 | 16
461 | ],
462 | "mountain": [
463 | 2,
464 | 17
465 | ],
466 | "umbrella_on_ground": [
467 | 2,
468 | 18
469 | ],
470 | "fountain": [
471 | 2,
472 | 19
473 | ],
474 | "golf": [
475 | 2,
476 | 20
477 | ],
478 | "ferry": [
479 | 2,
480 | 21
481 | ],
482 | "boat": [
483 | 2,
484 | 22
485 | ],
486 | "skier": [
487 | 2,
488 | 23
489 | ],
490 | "ice_skate": [
491 | 2,
492 | 24
493 | ],
494 | "person_with_ball": [
495 | 2,
496 | 25
497 | ],
498 | "tent": [
499 | 2,
500 | 31
501 | ],
502 | "fuelpump": [
503 | 2,
504 | 32
505 | ],
506 | "scissors": [
507 | 2,
508 | 33
509 | ],
510 | "white_check_mark": [
511 | 2,
512 | 34
513 | ],
514 | "airplane": [
515 | 2,
516 | 35
517 | ],
518 | "email": [
519 | 2,
520 | 36
521 | ],
522 | "fist": [
523 | 2,
524 | 37
525 | ],
526 | "hand": [
527 | 2,
528 | 43
529 | ],
530 | "v": [
531 | 3,
532 | 0
533 | ],
534 | "writing_hand": [
535 | 3,
536 | 6
537 | ],
538 | "pencil2": [
539 | 3,
540 | 12
541 | ],
542 | "black_nib": [
543 | 3,
544 | 13
545 | ],
546 | "heavy_check_mark": [
547 | 3,
548 | 14
549 | ],
550 | "heavy_multiplication_x": [
551 | 3,
552 | 15
553 | ],
554 | "latin_cross": [
555 | 3,
556 | 16
557 | ],
558 | "star_of_david": [
559 | 3,
560 | 17
561 | ],
562 | "sparkles": [
563 | 3,
564 | 18
565 | ],
566 | "eight_spoked_asterisk": [
567 | 3,
568 | 19
569 | ],
570 | "eight_pointed_black_star": [
571 | 3,
572 | 20
573 | ],
574 | "snowflake": [
575 | 3,
576 | 21
577 | ],
578 | "sparkle": [
579 | 3,
580 | 22
581 | ],
582 | "x": [
583 | 3,
584 | 23
585 | ],
586 | "negative_squared_cross_mark": [
587 | 3,
588 | 24
589 | ],
590 | "question": [
591 | 3,
592 | 25
593 | ],
594 | "grey_question": [
595 | 3,
596 | 26
597 | ],
598 | "grey_exclamation": [
599 | 3,
600 | 27
601 | ],
602 | "exclamation": [
603 | 3,
604 | 28
605 | ],
606 | "heavy_heart_exclamation_mark_ornament": [
607 | 3,
608 | 29
609 | ],
610 | "heart": [
611 | 3,
612 | 30
613 | ],
614 | "heavy_plus_sign": [
615 | 3,
616 | 31
617 | ],
618 | "heavy_minus_sign": [
619 | 3,
620 | 32
621 | ],
622 | "heavy_division_sign": [
623 | 3,
624 | 33
625 | ],
626 | "arrow_right": [
627 | 3,
628 | 34
629 | ],
630 | "curly_loop": [
631 | 3,
632 | 35
633 | ],
634 | "loop": [
635 | 3,
636 | 36
637 | ],
638 | "arrow_heading_up": [
639 | 3,
640 | 37
641 | ],
642 | "arrow_heading_down": [
643 | 3,
644 | 38
645 | ],
646 | "arrow_left": [
647 | 3,
648 | 39
649 | ],
650 | "arrow_up": [
651 | 3,
652 | 40
653 | ],
654 | "arrow_down": [
655 | 3,
656 | 41
657 | ],
658 | "black_large_square": [
659 | 3,
660 | 42
661 | ],
662 | "white_large_square": [
663 | 3,
664 | 43
665 | ],
666 | "star": [
667 | 3,
668 | 44
669 | ],
670 | "o": [
671 | 3,
672 | 45
673 | ],
674 | "wavy_dash": [
675 | 3,
676 | 46
677 | ],
678 | "part_alternation_mark": [
679 | 3,
680 | 47
681 | ],
682 | "congratulations": [
683 | 3,
684 | 48
685 | ],
686 | "secret": [
687 | 4,
688 | 0
689 | ],
690 | "mahjong": [
691 | 4,
692 | 1
693 | ],
694 | "black_joker": [
695 | 4,
696 | 2
697 | ],
698 | "a": [
699 | 4,
700 | 3
701 | ],
702 | "b": [
703 | 4,
704 | 4
705 | ],
706 | "o2": [
707 | 4,
708 | 5
709 | ],
710 | "parking": [
711 | 4,
712 | 6
713 | ],
714 | "ab": [
715 | 4,
716 | 7
717 | ],
718 | "cl": [
719 | 4,
720 | 8
721 | ],
722 | "cool": [
723 | 4,
724 | 9
725 | ],
726 | "free": [
727 | 4,
728 | 10
729 | ],
730 | "id": [
731 | 4,
732 | 11
733 | ],
734 | "new": [
735 | 4,
736 | 12
737 | ],
738 | "ng": [
739 | 4,
740 | 13
741 | ],
742 | "ok": [
743 | 4,
744 | 14
745 | ],
746 | "sos": [
747 | 4,
748 | 15
749 | ],
750 | "up": [
751 | 4,
752 | 16
753 | ],
754 | "vs": [
755 | 4,
756 | 17
757 | ],
758 | "koko": [
759 | 4,
760 | 18
761 | ],
762 | "sa": [
763 | 4,
764 | 19
765 | ],
766 | "u7121": [
767 | 4,
768 | 20
769 | ],
770 | "u6307": [
771 | 4,
772 | 21
773 | ],
774 | "u7981": [
775 | 4,
776 | 22
777 | ],
778 | "u7a7a": [
779 | 4,
780 | 23
781 | ],
782 | "u5408": [
783 | 4,
784 | 24
785 | ],
786 | "u6e80": [
787 | 4,
788 | 25
789 | ],
790 | "u6709": [
791 | 4,
792 | 26
793 | ],
794 | "u6708": [
795 | 4,
796 | 27
797 | ],
798 | "u7533": [
799 | 4,
800 | 28
801 | ],
802 | "u5272": [
803 | 4,
804 | 29
805 | ],
806 | "u55b6": [
807 | 4,
808 | 30
809 | ],
810 | "ideograph_advantage": [
811 | 4,
812 | 31
813 | ],
814 | "accept": [
815 | 4,
816 | 32
817 | ],
818 | "cyclone": [
819 | 4,
820 | 33
821 | ],
822 | "foggy": [
823 | 4,
824 | 34
825 | ],
826 | "closed_umbrella": [
827 | 4,
828 | 35
829 | ],
830 | "night_with_stars": [
831 | 4,
832 | 36
833 | ],
834 | "sunrise_over_mountains": [
835 | 4,
836 | 37
837 | ],
838 | "sunrise": [
839 | 4,
840 | 38
841 | ],
842 | "city_sunset": [
843 | 4,
844 | 39
845 | ],
846 | "city_sunrise": [
847 | 4,
848 | 40
849 | ],
850 | "rainbow": [
851 | 4,
852 | 41
853 | ],
854 | "bridge_at_night": [
855 | 4,
856 | 42
857 | ],
858 | "ocean": [
859 | 4,
860 | 43
861 | ],
862 | "volcano": [
863 | 4,
864 | 44
865 | ],
866 | "milky_way": [
867 | 4,
868 | 45
869 | ],
870 | "earth_africa": [
871 | 4,
872 | 46
873 | ],
874 | "earth_americas": [
875 | 4,
876 | 47
877 | ],
878 | "earth_asia": [
879 | 4,
880 | 48
881 | ],
882 | "globe_with_meridians": [
883 | 5,
884 | 0
885 | ],
886 | "new_moon": [
887 | 5,
888 | 1
889 | ],
890 | "waxing_crescent_moon": [
891 | 5,
892 | 2
893 | ],
894 | "first_quarter_moon": [
895 | 5,
896 | 3
897 | ],
898 | "moon": [
899 | 5,
900 | 4
901 | ],
902 | "full_moon": [
903 | 5,
904 | 5
905 | ],
906 | "waning_gibbous_moon": [
907 | 5,
908 | 6
909 | ],
910 | "last_quarter_moon": [
911 | 5,
912 | 7
913 | ],
914 | "waning_crescent_moon": [
915 | 5,
916 | 8
917 | ],
918 | "crescent_moon": [
919 | 5,
920 | 9
921 | ],
922 | "new_moon_with_face": [
923 | 5,
924 | 10
925 | ],
926 | "first_quarter_moon_with_face": [
927 | 5,
928 | 11
929 | ],
930 | "last_quarter_moon_with_face": [
931 | 5,
932 | 12
933 | ],
934 | "full_moon_with_face": [
935 | 5,
936 | 13
937 | ],
938 | "sun_with_face": [
939 | 5,
940 | 14
941 | ],
942 | "star2": [
943 | 5,
944 | 15
945 | ],
946 | "stars": [
947 | 5,
948 | 16
949 | ],
950 | "thermometer": [
951 | 5,
952 | 17
953 | ],
954 | "mostly_sunny": [
955 | 5,
956 | 18
957 | ],
958 | "barely_sunny": [
959 | 5,
960 | 19
961 | ],
962 | "partly_sunny_rain": [
963 | 5,
964 | 20
965 | ],
966 | "rain_cloud": [
967 | 5,
968 | 21
969 | ],
970 | "snow_cloud": [
971 | 5,
972 | 22
973 | ],
974 | "lightning": [
975 | 5,
976 | 23
977 | ],
978 | "tornado": [
979 | 5,
980 | 24
981 | ],
982 | "fog": [
983 | 5,
984 | 25
985 | ],
986 | "wind_blowing_face": [
987 | 5,
988 | 26
989 | ],
990 | "hotdog": [
991 | 5,
992 | 27
993 | ],
994 | "taco": [
995 | 5,
996 | 28
997 | ],
998 | "burrito": [
999 | 5,
1000 | 29
1001 | ],
1002 | "chestnut": [
1003 | 5,
1004 | 30
1005 | ],
1006 | "seedling": [
1007 | 5,
1008 | 31
1009 | ],
1010 | "evergreen_tree": [
1011 | 5,
1012 | 32
1013 | ],
1014 | "deciduous_tree": [
1015 | 5,
1016 | 33
1017 | ],
1018 | "palm_tree": [
1019 | 5,
1020 | 34
1021 | ],
1022 | "cactus": [
1023 | 5,
1024 | 35
1025 | ],
1026 | "hot_pepper": [
1027 | 5,
1028 | 36
1029 | ],
1030 | "tulip": [
1031 | 5,
1032 | 37
1033 | ],
1034 | "cherry_blossom": [
1035 | 5,
1036 | 38
1037 | ],
1038 | "rose": [
1039 | 5,
1040 | 39
1041 | ],
1042 | "hibiscus": [
1043 | 5,
1044 | 40
1045 | ],
1046 | "sunflower": [
1047 | 5,
1048 | 41
1049 | ],
1050 | "blossom": [
1051 | 5,
1052 | 42
1053 | ],
1054 | "corn": [
1055 | 5,
1056 | 43
1057 | ],
1058 | "ear_of_rice": [
1059 | 5,
1060 | 44
1061 | ],
1062 | "herb": [
1063 | 5,
1064 | 45
1065 | ],
1066 | "four_leaf_clover": [
1067 | 5,
1068 | 46
1069 | ],
1070 | "maple_leaf": [
1071 | 5,
1072 | 47
1073 | ],
1074 | "fallen_leaf": [
1075 | 5,
1076 | 48
1077 | ],
1078 | "leaves": [
1079 | 6,
1080 | 0
1081 | ],
1082 | "mushroom": [
1083 | 6,
1084 | 1
1085 | ],
1086 | "tomato": [
1087 | 6,
1088 | 2
1089 | ],
1090 | "eggplant": [
1091 | 6,
1092 | 3
1093 | ],
1094 | "grapes": [
1095 | 6,
1096 | 4
1097 | ],
1098 | "melon": [
1099 | 6,
1100 | 5
1101 | ],
1102 | "watermelon": [
1103 | 6,
1104 | 6
1105 | ],
1106 | "tangerine": [
1107 | 6,
1108 | 7
1109 | ],
1110 | "lemon": [
1111 | 6,
1112 | 8
1113 | ],
1114 | "banana": [
1115 | 6,
1116 | 9
1117 | ],
1118 | "pineapple": [
1119 | 6,
1120 | 10
1121 | ],
1122 | "apple": [
1123 | 6,
1124 | 11
1125 | ],
1126 | "green_apple": [
1127 | 6,
1128 | 12
1129 | ],
1130 | "pear": [
1131 | 6,
1132 | 13
1133 | ],
1134 | "peach": [
1135 | 6,
1136 | 14
1137 | ],
1138 | "cherries": [
1139 | 6,
1140 | 15
1141 | ],
1142 | "strawberry": [
1143 | 6,
1144 | 16
1145 | ],
1146 | "hamburger": [
1147 | 6,
1148 | 17
1149 | ],
1150 | "pizza": [
1151 | 6,
1152 | 18
1153 | ],
1154 | "meat_on_bone": [
1155 | 6,
1156 | 19
1157 | ],
1158 | "poultry_leg": [
1159 | 6,
1160 | 20
1161 | ],
1162 | "rice_cracker": [
1163 | 6,
1164 | 21
1165 | ],
1166 | "rice_ball": [
1167 | 6,
1168 | 22
1169 | ],
1170 | "rice": [
1171 | 6,
1172 | 23
1173 | ],
1174 | "curry": [
1175 | 6,
1176 | 24
1177 | ],
1178 | "ramen": [
1179 | 6,
1180 | 25
1181 | ],
1182 | "spaghetti": [
1183 | 6,
1184 | 26
1185 | ],
1186 | "bread": [
1187 | 6,
1188 | 27
1189 | ],
1190 | "fries": [
1191 | 6,
1192 | 28
1193 | ],
1194 | "sweet_potato": [
1195 | 6,
1196 | 29
1197 | ],
1198 | "dango": [
1199 | 6,
1200 | 30
1201 | ],
1202 | "oden": [
1203 | 6,
1204 | 31
1205 | ],
1206 | "sushi": [
1207 | 6,
1208 | 32
1209 | ],
1210 | "fried_shrimp": [
1211 | 6,
1212 | 33
1213 | ],
1214 | "fish_cake": [
1215 | 6,
1216 | 34
1217 | ],
1218 | "icecream": [
1219 | 6,
1220 | 35
1221 | ],
1222 | "shaved_ice": [
1223 | 6,
1224 | 36
1225 | ],
1226 | "ice_cream": [
1227 | 6,
1228 | 37
1229 | ],
1230 | "doughnut": [
1231 | 6,
1232 | 38
1233 | ],
1234 | "cookie": [
1235 | 6,
1236 | 39
1237 | ],
1238 | "chocolate_bar": [
1239 | 6,
1240 | 40
1241 | ],
1242 | "candy": [
1243 | 6,
1244 | 41
1245 | ],
1246 | "lollipop": [
1247 | 6,
1248 | 42
1249 | ],
1250 | "custard": [
1251 | 6,
1252 | 43
1253 | ],
1254 | "honey_pot": [
1255 | 6,
1256 | 44
1257 | ],
1258 | "cake": [
1259 | 6,
1260 | 45
1261 | ],
1262 | "bento": [
1263 | 6,
1264 | 46
1265 | ],
1266 | "stew": [
1267 | 6,
1268 | 47
1269 | ],
1270 | "fried_egg": [
1271 | 6,
1272 | 48
1273 | ],
1274 | "fork_and_knife": [
1275 | 7,
1276 | 0
1277 | ],
1278 | "tea": [
1279 | 7,
1280 | 1
1281 | ],
1282 | "sake": [
1283 | 7,
1284 | 2
1285 | ],
1286 | "wine_glass": [
1287 | 7,
1288 | 3
1289 | ],
1290 | "cocktail": [
1291 | 7,
1292 | 4
1293 | ],
1294 | "tropical_drink": [
1295 | 7,
1296 | 5
1297 | ],
1298 | "beer": [
1299 | 7,
1300 | 6
1301 | ],
1302 | "beers": [
1303 | 7,
1304 | 7
1305 | ],
1306 | "baby_bottle": [
1307 | 7,
1308 | 8
1309 | ],
1310 | "knife_fork_plate": [
1311 | 7,
1312 | 9
1313 | ],
1314 | "champagne": [
1315 | 7,
1316 | 10
1317 | ],
1318 | "popcorn": [
1319 | 7,
1320 | 11
1321 | ],
1322 | "ribbon": [
1323 | 7,
1324 | 12
1325 | ],
1326 | "gift": [
1327 | 7,
1328 | 13
1329 | ],
1330 | "birthday": [
1331 | 7,
1332 | 14
1333 | ],
1334 | "jack_o_lantern": [
1335 | 7,
1336 | 15
1337 | ],
1338 | "christmas_tree": [
1339 | 7,
1340 | 16
1341 | ],
1342 | "santa": [
1343 | 7,
1344 | 17
1345 | ],
1346 | "fireworks": [
1347 | 7,
1348 | 23
1349 | ],
1350 | "sparkler": [
1351 | 7,
1352 | 24
1353 | ],
1354 | "balloon": [
1355 | 7,
1356 | 25
1357 | ],
1358 | "tada": [
1359 | 7,
1360 | 26
1361 | ],
1362 | "confetti_ball": [
1363 | 7,
1364 | 27
1365 | ],
1366 | "tanabata_tree": [
1367 | 7,
1368 | 28
1369 | ],
1370 | "crossed_flags": [
1371 | 7,
1372 | 29
1373 | ],
1374 | "bamboo": [
1375 | 7,
1376 | 30
1377 | ],
1378 | "dolls": [
1379 | 7,
1380 | 31
1381 | ],
1382 | "flags": [
1383 | 7,
1384 | 32
1385 | ],
1386 | "wind_chime": [
1387 | 7,
1388 | 33
1389 | ],
1390 | "rice_scene": [
1391 | 7,
1392 | 34
1393 | ],
1394 | "school_satchel": [
1395 | 7,
1396 | 35
1397 | ],
1398 | "mortar_board": [
1399 | 7,
1400 | 36
1401 | ],
1402 | "medal": [
1403 | 7,
1404 | 37
1405 | ],
1406 | "reminder_ribbon": [
1407 | 7,
1408 | 38
1409 | ],
1410 | "studio_microphone": [
1411 | 7,
1412 | 39
1413 | ],
1414 | "level_slider": [
1415 | 7,
1416 | 40
1417 | ],
1418 | "control_knobs": [
1419 | 7,
1420 | 41
1421 | ],
1422 | "film_frames": [
1423 | 7,
1424 | 42
1425 | ],
1426 | "admission_tickets": [
1427 | 7,
1428 | 43
1429 | ],
1430 | "carousel_horse": [
1431 | 7,
1432 | 44
1433 | ],
1434 | "ferris_wheel": [
1435 | 7,
1436 | 45
1437 | ],
1438 | "roller_coaster": [
1439 | 7,
1440 | 46
1441 | ],
1442 | "fishing_pole_and_fish": [
1443 | 7,
1444 | 47
1445 | ],
1446 | "microphone": [
1447 | 7,
1448 | 48
1449 | ],
1450 | "movie_camera": [
1451 | 8,
1452 | 0
1453 | ],
1454 | "cinema": [
1455 | 8,
1456 | 1
1457 | ],
1458 | "headphones": [
1459 | 8,
1460 | 2
1461 | ],
1462 | "art": [
1463 | 8,
1464 | 3
1465 | ],
1466 | "tophat": [
1467 | 8,
1468 | 4
1469 | ],
1470 | "circus_tent": [
1471 | 8,
1472 | 5
1473 | ],
1474 | "ticket": [
1475 | 8,
1476 | 6
1477 | ],
1478 | "clapper": [
1479 | 8,
1480 | 7
1481 | ],
1482 | "performing_arts": [
1483 | 8,
1484 | 8
1485 | ],
1486 | "video_game": [
1487 | 8,
1488 | 9
1489 | ],
1490 | "dart": [
1491 | 8,
1492 | 10
1493 | ],
1494 | "slot_machine": [
1495 | 8,
1496 | 11
1497 | ],
1498 | "8ball": [
1499 | 8,
1500 | 12
1501 | ],
1502 | "game_die": [
1503 | 8,
1504 | 13
1505 | ],
1506 | "bowling": [
1507 | 8,
1508 | 14
1509 | ],
1510 | "flower_playing_cards": [
1511 | 8,
1512 | 15
1513 | ],
1514 | "musical_note": [
1515 | 8,
1516 | 16
1517 | ],
1518 | "notes": [
1519 | 8,
1520 | 17
1521 | ],
1522 | "saxophone": [
1523 | 8,
1524 | 18
1525 | ],
1526 | "guitar": [
1527 | 8,
1528 | 19
1529 | ],
1530 | "musical_keyboard": [
1531 | 8,
1532 | 20
1533 | ],
1534 | "trumpet": [
1535 | 8,
1536 | 21
1537 | ],
1538 | "violin": [
1539 | 8,
1540 | 22
1541 | ],
1542 | "musical_score": [
1543 | 8,
1544 | 23
1545 | ],
1546 | "running_shirt_with_sash": [
1547 | 8,
1548 | 24
1549 | ],
1550 | "tennis": [
1551 | 8,
1552 | 25
1553 | ],
1554 | "ski": [
1555 | 8,
1556 | 26
1557 | ],
1558 | "basketball": [
1559 | 8,
1560 | 27
1561 | ],
1562 | "checkered_flag": [
1563 | 8,
1564 | 28
1565 | ],
1566 | "snowboarder": [
1567 | 8,
1568 | 29
1569 | ],
1570 | "runner": [
1571 | 8,
1572 | 35
1573 | ],
1574 | "surfer": [
1575 | 8,
1576 | 41
1577 | ],
1578 | "sports_medal": [
1579 | 8,
1580 | 47
1581 | ],
1582 | "trophy": [
1583 | 8,
1584 | 48
1585 | ],
1586 | "horse_racing": [
1587 | 9,
1588 | 0
1589 | ],
1590 | "football": [
1591 | 9,
1592 | 6
1593 | ],
1594 | "rugby_football": [
1595 | 9,
1596 | 7
1597 | ],
1598 | "swimmer": [
1599 | 9,
1600 | 8
1601 | ],
1602 | "weight_lifter": [
1603 | 9,
1604 | 14
1605 | ],
1606 | "golfer": [
1607 | 9,
1608 | 20
1609 | ],
1610 | "racing_motorcycle": [
1611 | 9,
1612 | 26
1613 | ],
1614 | "racing_car": [
1615 | 9,
1616 | 27
1617 | ],
1618 | "cricket_bat_and_ball": [
1619 | 9,
1620 | 28
1621 | ],
1622 | "volleyball": [
1623 | 9,
1624 | 29
1625 | ],
1626 | "field_hockey_stick_and_ball": [
1627 | 9,
1628 | 30
1629 | ],
1630 | "ice_hockey_stick_and_puck": [
1631 | 9,
1632 | 31
1633 | ],
1634 | "table_tennis_paddle_and_ball": [
1635 | 9,
1636 | 32
1637 | ],
1638 | "snow_capped_mountain": [
1639 | 9,
1640 | 33
1641 | ],
1642 | "camping": [
1643 | 9,
1644 | 34
1645 | ],
1646 | "beach_with_umbrella": [
1647 | 9,
1648 | 35
1649 | ],
1650 | "building_construction": [
1651 | 9,
1652 | 36
1653 | ],
1654 | "house_buildings": [
1655 | 9,
1656 | 37
1657 | ],
1658 | "cityscape": [
1659 | 9,
1660 | 38
1661 | ],
1662 | "derelict_house_building": [
1663 | 9,
1664 | 39
1665 | ],
1666 | "classical_building": [
1667 | 9,
1668 | 40
1669 | ],
1670 | "desert": [
1671 | 9,
1672 | 41
1673 | ],
1674 | "desert_island": [
1675 | 9,
1676 | 42
1677 | ],
1678 | "national_park": [
1679 | 9,
1680 | 43
1681 | ],
1682 | "stadium": [
1683 | 9,
1684 | 44
1685 | ],
1686 | "house": [
1687 | 9,
1688 | 45
1689 | ],
1690 | "house_with_garden": [
1691 | 9,
1692 | 46
1693 | ],
1694 | "office": [
1695 | 9,
1696 | 47
1697 | ],
1698 | "post_office": [
1699 | 9,
1700 | 48
1701 | ],
1702 | "european_post_office": [
1703 | 10,
1704 | 0
1705 | ],
1706 | "hospital": [
1707 | 10,
1708 | 1
1709 | ],
1710 | "bank": [
1711 | 10,
1712 | 2
1713 | ],
1714 | "atm": [
1715 | 10,
1716 | 3
1717 | ],
1718 | "hotel": [
1719 | 10,
1720 | 4
1721 | ],
1722 | "love_hotel": [
1723 | 10,
1724 | 5
1725 | ],
1726 | "convenience_store": [
1727 | 10,
1728 | 6
1729 | ],
1730 | "school": [
1731 | 10,
1732 | 7
1733 | ],
1734 | "department_store": [
1735 | 10,
1736 | 8
1737 | ],
1738 | "factory": [
1739 | 10,
1740 | 9
1741 | ],
1742 | "izakaya_lantern": [
1743 | 10,
1744 | 10
1745 | ],
1746 | "japanese_castle": [
1747 | 10,
1748 | 11
1749 | ],
1750 | "european_castle": [
1751 | 10,
1752 | 12
1753 | ],
1754 | "waving_white_flag": [
1755 | 10,
1756 | 13
1757 | ],
1758 | "waving_black_flag": [
1759 | 10,
1760 | 14
1761 | ],
1762 | "rosette": [
1763 | 10,
1764 | 15
1765 | ],
1766 | "label": [
1767 | 10,
1768 | 16
1769 | ],
1770 | "badminton_racquet_and_shuttlecock": [
1771 | 10,
1772 | 17
1773 | ],
1774 | "bow_and_arrow": [
1775 | 10,
1776 | 18
1777 | ],
1778 | "amphora": [
1779 | 10,
1780 | 19
1781 | ],
1782 | "skin-tone-2": [
1783 | 10,
1784 | 20
1785 | ],
1786 | "skin-tone-3": [
1787 | 10,
1788 | 21
1789 | ],
1790 | "skin-tone-4": [
1791 | 10,
1792 | 22
1793 | ],
1794 | "skin-tone-5": [
1795 | 10,
1796 | 23
1797 | ],
1798 | "skin-tone-6": [
1799 | 10,
1800 | 24
1801 | ],
1802 | "rat": [
1803 | 10,
1804 | 25
1805 | ],
1806 | "mouse2": [
1807 | 10,
1808 | 26
1809 | ],
1810 | "ox": [
1811 | 10,
1812 | 27
1813 | ],
1814 | "water_buffalo": [
1815 | 10,
1816 | 28
1817 | ],
1818 | "cow2": [
1819 | 10,
1820 | 29
1821 | ],
1822 | "tiger2": [
1823 | 10,
1824 | 30
1825 | ],
1826 | "leopard": [
1827 | 10,
1828 | 31
1829 | ],
1830 | "rabbit2": [
1831 | 10,
1832 | 32
1833 | ],
1834 | "cat2": [
1835 | 10,
1836 | 33
1837 | ],
1838 | "dragon": [
1839 | 10,
1840 | 34
1841 | ],
1842 | "crocodile": [
1843 | 10,
1844 | 35
1845 | ],
1846 | "whale2": [
1847 | 10,
1848 | 36
1849 | ],
1850 | "snail": [
1851 | 10,
1852 | 37
1853 | ],
1854 | "snake": [
1855 | 10,
1856 | 38
1857 | ],
1858 | "racehorse": [
1859 | 10,
1860 | 39
1861 | ],
1862 | "ram": [
1863 | 10,
1864 | 40
1865 | ],
1866 | "goat": [
1867 | 10,
1868 | 41
1869 | ],
1870 | "sheep": [
1871 | 10,
1872 | 42
1873 | ],
1874 | "monkey": [
1875 | 10,
1876 | 43
1877 | ],
1878 | "rooster": [
1879 | 10,
1880 | 44
1881 | ],
1882 | "chicken": [
1883 | 10,
1884 | 45
1885 | ],
1886 | "dog2": [
1887 | 10,
1888 | 46
1889 | ],
1890 | "pig2": [
1891 | 10,
1892 | 47
1893 | ],
1894 | "boar": [
1895 | 10,
1896 | 48
1897 | ],
1898 | "elephant": [
1899 | 11,
1900 | 0
1901 | ],
1902 | "octopus": [
1903 | 11,
1904 | 1
1905 | ],
1906 | "shell": [
1907 | 11,
1908 | 2
1909 | ],
1910 | "bug": [
1911 | 11,
1912 | 3
1913 | ],
1914 | "ant": [
1915 | 11,
1916 | 4
1917 | ],
1918 | "bee": [
1919 | 11,
1920 | 5
1921 | ],
1922 | "beetle": [
1923 | 11,
1924 | 6
1925 | ],
1926 | "fish": [
1927 | 11,
1928 | 7
1929 | ],
1930 | "tropical_fish": [
1931 | 11,
1932 | 8
1933 | ],
1934 | "blowfish": [
1935 | 11,
1936 | 9
1937 | ],
1938 | "turtle": [
1939 | 11,
1940 | 10
1941 | ],
1942 | "hatching_chick": [
1943 | 11,
1944 | 11
1945 | ],
1946 | "baby_chick": [
1947 | 11,
1948 | 12
1949 | ],
1950 | "hatched_chick": [
1951 | 11,
1952 | 13
1953 | ],
1954 | "bird": [
1955 | 11,
1956 | 14
1957 | ],
1958 | "penguin": [
1959 | 11,
1960 | 15
1961 | ],
1962 | "koala": [
1963 | 11,
1964 | 16
1965 | ],
1966 | "poodle": [
1967 | 11,
1968 | 17
1969 | ],
1970 | "dromedary_camel": [
1971 | 11,
1972 | 18
1973 | ],
1974 | "camel": [
1975 | 11,
1976 | 19
1977 | ],
1978 | "dolphin": [
1979 | 11,
1980 | 20
1981 | ],
1982 | "mouse": [
1983 | 11,
1984 | 21
1985 | ],
1986 | "cow": [
1987 | 11,
1988 | 22
1989 | ],
1990 | "tiger": [
1991 | 11,
1992 | 23
1993 | ],
1994 | "rabbit": [
1995 | 11,
1996 | 24
1997 | ],
1998 | "cat": [
1999 | 11,
2000 | 25
2001 | ],
2002 | "dragon_face": [
2003 | 11,
2004 | 26
2005 | ],
2006 | "whale": [
2007 | 11,
2008 | 27
2009 | ],
2010 | "horse": [
2011 | 11,
2012 | 28
2013 | ],
2014 | "monkey_face": [
2015 | 11,
2016 | 29
2017 | ],
2018 | "dog": [
2019 | 11,
2020 | 30
2021 | ],
2022 | "pig": [
2023 | 11,
2024 | 31
2025 | ],
2026 | "frog": [
2027 | 11,
2028 | 32
2029 | ],
2030 | "hamster": [
2031 | 11,
2032 | 33
2033 | ],
2034 | "wolf": [
2035 | 11,
2036 | 34
2037 | ],
2038 | "bear": [
2039 | 11,
2040 | 35
2041 | ],
2042 | "panda_face": [
2043 | 11,
2044 | 36
2045 | ],
2046 | "pig_nose": [
2047 | 11,
2048 | 37
2049 | ],
2050 | "feet": [
2051 | 11,
2052 | 38
2053 | ],
2054 | "chipmunk": [
2055 | 11,
2056 | 39
2057 | ],
2058 | "eyes": [
2059 | 11,
2060 | 40
2061 | ],
2062 | "eye": [
2063 | 11,
2064 | 41
2065 | ],
2066 | "ear": [
2067 | 11,
2068 | 42
2069 | ],
2070 | "nose": [
2071 | 11,
2072 | 48
2073 | ],
2074 | "lips": [
2075 | 12,
2076 | 5
2077 | ],
2078 | "tongue": [
2079 | 12,
2080 | 6
2081 | ],
2082 | "point_up_2": [
2083 | 12,
2084 | 7
2085 | ],
2086 | "point_down": [
2087 | 12,
2088 | 13
2089 | ],
2090 | "point_left": [
2091 | 12,
2092 | 19
2093 | ],
2094 | "point_right": [
2095 | 12,
2096 | 25
2097 | ],
2098 | "facepunch": [
2099 | 12,
2100 | 31
2101 | ],
2102 | "wave": [
2103 | 12,
2104 | 37
2105 | ],
2106 | "ok_hand": [
2107 | 12,
2108 | 43
2109 | ],
2110 | "+1": [
2111 | 13,
2112 | 0
2113 | ],
2114 | "-1": [
2115 | 13,
2116 | 6
2117 | ],
2118 | "clap": [
2119 | 13,
2120 | 12
2121 | ],
2122 | "open_hands": [
2123 | 13,
2124 | 18
2125 | ],
2126 | "crown": [
2127 | 13,
2128 | 24
2129 | ],
2130 | "womans_hat": [
2131 | 13,
2132 | 25
2133 | ],
2134 | "eyeglasses": [
2135 | 13,
2136 | 26
2137 | ],
2138 | "necktie": [
2139 | 13,
2140 | 27
2141 | ],
2142 | "shirt": [
2143 | 13,
2144 | 28
2145 | ],
2146 | "jeans": [
2147 | 13,
2148 | 29
2149 | ],
2150 | "dress": [
2151 | 13,
2152 | 30
2153 | ],
2154 | "kimono": [
2155 | 13,
2156 | 31
2157 | ],
2158 | "bikini": [
2159 | 13,
2160 | 32
2161 | ],
2162 | "womans_clothes": [
2163 | 13,
2164 | 33
2165 | ],
2166 | "purse": [
2167 | 13,
2168 | 34
2169 | ],
2170 | "handbag": [
2171 | 13,
2172 | 35
2173 | ],
2174 | "pouch": [
2175 | 13,
2176 | 36
2177 | ],
2178 | "mans_shoe": [
2179 | 13,
2180 | 37
2181 | ],
2182 | "athletic_shoe": [
2183 | 13,
2184 | 38
2185 | ],
2186 | "high_heel": [
2187 | 13,
2188 | 39
2189 | ],
2190 | "sandal": [
2191 | 13,
2192 | 40
2193 | ],
2194 | "boot": [
2195 | 13,
2196 | 41
2197 | ],
2198 | "footprints": [
2199 | 13,
2200 | 42
2201 | ],
2202 | "bust_in_silhouette": [
2203 | 13,
2204 | 43
2205 | ],
2206 | "busts_in_silhouette": [
2207 | 13,
2208 | 44
2209 | ],
2210 | "boy": [
2211 | 13,
2212 | 45
2213 | ],
2214 | "girl": [
2215 | 14,
2216 | 2
2217 | ],
2218 | "man": [
2219 | 14,
2220 | 8
2221 | ],
2222 | "woman": [
2223 | 14,
2224 | 14
2225 | ],
2226 | "family": [
2227 | 14,
2228 | 20
2229 | ],
2230 | "couple": [
2231 | 14,
2232 | 21
2233 | ],
2234 | "two_men_holding_hands": [
2235 | 14,
2236 | 22
2237 | ],
2238 | "two_women_holding_hands": [
2239 | 14,
2240 | 23
2241 | ],
2242 | "cop": [
2243 | 14,
2244 | 24
2245 | ],
2246 | "dancers": [
2247 | 14,
2248 | 30
2249 | ],
2250 | "bride_with_veil": [
2251 | 14,
2252 | 31
2253 | ],
2254 | "person_with_blond_hair": [
2255 | 14,
2256 | 37
2257 | ],
2258 | "man_with_gua_pi_mao": [
2259 | 14,
2260 | 43
2261 | ],
2262 | "man_with_turban": [
2263 | 15,
2264 | 0
2265 | ],
2266 | "older_man": [
2267 | 15,
2268 | 6
2269 | ],
2270 | "older_woman": [
2271 | 15,
2272 | 12
2273 | ],
2274 | "baby": [
2275 | 15,
2276 | 18
2277 | ],
2278 | "construction_worker": [
2279 | 15,
2280 | 24
2281 | ],
2282 | "princess": [
2283 | 15,
2284 | 30
2285 | ],
2286 | "japanese_ogre": [
2287 | 15,
2288 | 36
2289 | ],
2290 | "japanese_goblin": [
2291 | 15,
2292 | 37
2293 | ],
2294 | "ghost": [
2295 | 15,
2296 | 38
2297 | ],
2298 | "angel": [
2299 | 15,
2300 | 39
2301 | ],
2302 | "alien": [
2303 | 15,
2304 | 45
2305 | ],
2306 | "space_invader": [
2307 | 15,
2308 | 46
2309 | ],
2310 | "imp": [
2311 | 15,
2312 | 47
2313 | ],
2314 | "skull": [
2315 | 15,
2316 | 48
2317 | ],
2318 | "information_desk_person": [
2319 | 16,
2320 | 0
2321 | ],
2322 | "guardsman": [
2323 | 16,
2324 | 6
2325 | ],
2326 | "dancer": [
2327 | 16,
2328 | 12
2329 | ],
2330 | "lipstick": [
2331 | 16,
2332 | 18
2333 | ],
2334 | "nail_care": [
2335 | 16,
2336 | 19
2337 | ],
2338 | "massage": [
2339 | 16,
2340 | 25
2341 | ],
2342 | "haircut": [
2343 | 16,
2344 | 31
2345 | ],
2346 | "barber": [
2347 | 16,
2348 | 37
2349 | ],
2350 | "syringe": [
2351 | 16,
2352 | 38
2353 | ],
2354 | "pill": [
2355 | 16,
2356 | 39
2357 | ],
2358 | "kiss": [
2359 | 16,
2360 | 40
2361 | ],
2362 | "love_letter": [
2363 | 16,
2364 | 41
2365 | ],
2366 | "ring": [
2367 | 16,
2368 | 42
2369 | ],
2370 | "gem": [
2371 | 16,
2372 | 43
2373 | ],
2374 | "couplekiss": [
2375 | 16,
2376 | 44
2377 | ],
2378 | "bouquet": [
2379 | 16,
2380 | 45
2381 | ],
2382 | "couple_with_heart": [
2383 | 16,
2384 | 46
2385 | ],
2386 | "wedding": [
2387 | 16,
2388 | 47
2389 | ],
2390 | "heartbeat": [
2391 | 16,
2392 | 48
2393 | ],
2394 | "broken_heart": [
2395 | 17,
2396 | 0
2397 | ],
2398 | "two_hearts": [
2399 | 17,
2400 | 1
2401 | ],
2402 | "sparkling_heart": [
2403 | 17,
2404 | 2
2405 | ],
2406 | "heartpulse": [
2407 | 17,
2408 | 3
2409 | ],
2410 | "cupid": [
2411 | 17,
2412 | 4
2413 | ],
2414 | "blue_heart": [
2415 | 17,
2416 | 5
2417 | ],
2418 | "green_heart": [
2419 | 17,
2420 | 6
2421 | ],
2422 | "yellow_heart": [
2423 | 17,
2424 | 7
2425 | ],
2426 | "purple_heart": [
2427 | 17,
2428 | 8
2429 | ],
2430 | "gift_heart": [
2431 | 17,
2432 | 9
2433 | ],
2434 | "revolving_hearts": [
2435 | 17,
2436 | 10
2437 | ],
2438 | "heart_decoration": [
2439 | 17,
2440 | 11
2441 | ],
2442 | "diamond_shape_with_a_dot_inside": [
2443 | 17,
2444 | 12
2445 | ],
2446 | "bulb": [
2447 | 17,
2448 | 13
2449 | ],
2450 | "anger": [
2451 | 17,
2452 | 14
2453 | ],
2454 | "bomb": [
2455 | 17,
2456 | 15
2457 | ],
2458 | "zzz": [
2459 | 17,
2460 | 16
2461 | ],
2462 | "boom": [
2463 | 17,
2464 | 17
2465 | ],
2466 | "sweat_drops": [
2467 | 17,
2468 | 18
2469 | ],
2470 | "droplet": [
2471 | 17,
2472 | 19
2473 | ],
2474 | "dash": [
2475 | 17,
2476 | 20
2477 | ],
2478 | "hankey": [
2479 | 17,
2480 | 21
2481 | ],
2482 | "muscle": [
2483 | 17,
2484 | 22
2485 | ],
2486 | "dizzy": [
2487 | 17,
2488 | 28
2489 | ],
2490 | "speech_balloon": [
2491 | 17,
2492 | 29
2493 | ],
2494 | "thought_balloon": [
2495 | 17,
2496 | 30
2497 | ],
2498 | "white_flower": [
2499 | 17,
2500 | 31
2501 | ],
2502 | "moneybag": [
2503 | 17,
2504 | 33
2505 | ],
2506 | "currency_exchange": [
2507 | 17,
2508 | 34
2509 | ],
2510 | "heavy_dollar_sign": [
2511 | 17,
2512 | 35
2513 | ],
2514 | "credit_card": [
2515 | 17,
2516 | 36
2517 | ],
2518 | "yen": [
2519 | 17,
2520 | 37
2521 | ],
2522 | "dollar": [
2523 | 17,
2524 | 38
2525 | ],
2526 | "euro": [
2527 | 17,
2528 | 39
2529 | ],
2530 | "pound": [
2531 | 17,
2532 | 40
2533 | ],
2534 | "money_with_wings": [
2535 | 17,
2536 | 41
2537 | ],
2538 | "chart": [
2539 | 17,
2540 | 42
2541 | ],
2542 | "seat": [
2543 | 17,
2544 | 43
2545 | ],
2546 | "computer": [
2547 | 17,
2548 | 44
2549 | ],
2550 | "briefcase": [
2551 | 17,
2552 | 45
2553 | ],
2554 | "minidisc": [
2555 | 17,
2556 | 46
2557 | ],
2558 | "floppy_disk": [
2559 | 17,
2560 | 47
2561 | ],
2562 | "cd": [
2563 | 17,
2564 | 48
2565 | ],
2566 | "dvd": [
2567 | 18,
2568 | 0
2569 | ],
2570 | "file_folder": [
2571 | 18,
2572 | 1
2573 | ],
2574 | "open_file_folder": [
2575 | 18,
2576 | 2
2577 | ],
2578 | "page_with_curl": [
2579 | 18,
2580 | 3
2581 | ],
2582 | "page_facing_up": [
2583 | 18,
2584 | 4
2585 | ],
2586 | "date": [
2587 | 18,
2588 | 5
2589 | ],
2590 | "calendar": [
2591 | 18,
2592 | 6
2593 | ],
2594 | "card_index": [
2595 | 18,
2596 | 7
2597 | ],
2598 | "chart_with_upwards_trend": [
2599 | 18,
2600 | 8
2601 | ],
2602 | "chart_with_downwards_trend": [
2603 | 18,
2604 | 9
2605 | ],
2606 | "bar_chart": [
2607 | 18,
2608 | 10
2609 | ],
2610 | "clipboard": [
2611 | 18,
2612 | 11
2613 | ],
2614 | "pushpin": [
2615 | 18,
2616 | 12
2617 | ],
2618 | "round_pushpin": [
2619 | 18,
2620 | 13
2621 | ],
2622 | "paperclip": [
2623 | 18,
2624 | 14
2625 | ],
2626 | "straight_ruler": [
2627 | 18,
2628 | 15
2629 | ],
2630 | "triangular_ruler": [
2631 | 18,
2632 | 16
2633 | ],
2634 | "bookmark_tabs": [
2635 | 18,
2636 | 17
2637 | ],
2638 | "ledger": [
2639 | 18,
2640 | 18
2641 | ],
2642 | "notebook": [
2643 | 18,
2644 | 19
2645 | ],
2646 | "notebook_with_decorative_cover": [
2647 | 18,
2648 | 20
2649 | ],
2650 | "closed_book": [
2651 | 18,
2652 | 21
2653 | ],
2654 | "book": [
2655 | 18,
2656 | 22
2657 | ],
2658 | "green_book": [
2659 | 18,
2660 | 23
2661 | ],
2662 | "blue_book": [
2663 | 18,
2664 | 24
2665 | ],
2666 | "orange_book": [
2667 | 18,
2668 | 25
2669 | ],
2670 | "books": [
2671 | 18,
2672 | 26
2673 | ],
2674 | "name_badge": [
2675 | 18,
2676 | 27
2677 | ],
2678 | "scroll": [
2679 | 18,
2680 | 28
2681 | ],
2682 | "memo": [
2683 | 18,
2684 | 29
2685 | ],
2686 | "telephone_receiver": [
2687 | 18,
2688 | 30
2689 | ],
2690 | "pager": [
2691 | 18,
2692 | 31
2693 | ],
2694 | "fax": [
2695 | 18,
2696 | 32
2697 | ],
2698 | "satellite_antenna": [
2699 | 18,
2700 | 33
2701 | ],
2702 | "loudspeaker": [
2703 | 18,
2704 | 34
2705 | ],
2706 | "mega": [
2707 | 18,
2708 | 35
2709 | ],
2710 | "outbox_tray": [
2711 | 18,
2712 | 36
2713 | ],
2714 | "inbox_tray": [
2715 | 18,
2716 | 37
2717 | ],
2718 | "package": [
2719 | 18,
2720 | 38
2721 | ],
2722 | "e-mail": [
2723 | 18,
2724 | 39
2725 | ],
2726 | "incoming_envelope": [
2727 | 18,
2728 | 40
2729 | ],
2730 | "envelope_with_arrow": [
2731 | 18,
2732 | 41
2733 | ],
2734 | "mailbox_closed": [
2735 | 18,
2736 | 42
2737 | ],
2738 | "mailbox": [
2739 | 18,
2740 | 43
2741 | ],
2742 | "mailbox_with_mail": [
2743 | 18,
2744 | 44
2745 | ],
2746 | "mailbox_with_no_mail": [
2747 | 18,
2748 | 45
2749 | ],
2750 | "postbox": [
2751 | 18,
2752 | 46
2753 | ],
2754 | "postal_horn": [
2755 | 18,
2756 | 47
2757 | ],
2758 | "newspaper": [
2759 | 18,
2760 | 48
2761 | ],
2762 | "iphone": [
2763 | 19,
2764 | 0
2765 | ],
2766 | "calling": [
2767 | 19,
2768 | 1
2769 | ],
2770 | "vibration_mode": [
2771 | 19,
2772 | 2
2773 | ],
2774 | "mobile_phone_off": [
2775 | 19,
2776 | 3
2777 | ],
2778 | "no_mobile_phones": [
2779 | 19,
2780 | 4
2781 | ],
2782 | "signal_strength": [
2783 | 19,
2784 | 5
2785 | ],
2786 | "camera": [
2787 | 19,
2788 | 6
2789 | ],
2790 | "camera_with_flash": [
2791 | 19,
2792 | 7
2793 | ],
2794 | "video_camera": [
2795 | 19,
2796 | 8
2797 | ],
2798 | "tv": [
2799 | 19,
2800 | 9
2801 | ],
2802 | "radio": [
2803 | 19,
2804 | 10
2805 | ],
2806 | "vhs": [
2807 | 19,
2808 | 11
2809 | ],
2810 | "film_projector": [
2811 | 19,
2812 | 12
2813 | ],
2814 | "prayer_beads": [
2815 | 19,
2816 | 13
2817 | ],
2818 | "twisted_rightwards_arrows": [
2819 | 19,
2820 | 14
2821 | ],
2822 | "repeat": [
2823 | 19,
2824 | 15
2825 | ],
2826 | "repeat_one": [
2827 | 19,
2828 | 16
2829 | ],
2830 | "arrows_clockwise": [
2831 | 19,
2832 | 17
2833 | ],
2834 | "arrows_counterclockwise": [
2835 | 19,
2836 | 18
2837 | ],
2838 | "low_brightness": [
2839 | 19,
2840 | 19
2841 | ],
2842 | "high_brightness": [
2843 | 19,
2844 | 20
2845 | ],
2846 | "mute": [
2847 | 19,
2848 | 21
2849 | ],
2850 | "speaker": [
2851 | 19,
2852 | 22
2853 | ],
2854 | "sound": [
2855 | 19,
2856 | 23
2857 | ],
2858 | "loud_sound": [
2859 | 19,
2860 | 24
2861 | ],
2862 | "battery": [
2863 | 19,
2864 | 25
2865 | ],
2866 | "electric_plug": [
2867 | 19,
2868 | 26
2869 | ],
2870 | "mag": [
2871 | 19,
2872 | 27
2873 | ],
2874 | "mag_right": [
2875 | 19,
2876 | 28
2877 | ],
2878 | "lock_with_ink_pen": [
2879 | 19,
2880 | 29
2881 | ],
2882 | "closed_lock_with_key": [
2883 | 19,
2884 | 30
2885 | ],
2886 | "key": [
2887 | 19,
2888 | 31
2889 | ],
2890 | "lock": [
2891 | 19,
2892 | 32
2893 | ],
2894 | "unlock": [
2895 | 19,
2896 | 33
2897 | ],
2898 | "bell": [
2899 | 19,
2900 | 34
2901 | ],
2902 | "no_bell": [
2903 | 19,
2904 | 35
2905 | ],
2906 | "bookmark": [
2907 | 19,
2908 | 36
2909 | ],
2910 | "link": [
2911 | 19,
2912 | 37
2913 | ],
2914 | "radio_button": [
2915 | 19,
2916 | 38
2917 | ],
2918 | "back": [
2919 | 19,
2920 | 39
2921 | ],
2922 | "end": [
2923 | 19,
2924 | 40
2925 | ],
2926 | "on": [
2927 | 19,
2928 | 41
2929 | ],
2930 | "soon": [
2931 | 19,
2932 | 42
2933 | ],
2934 | "top": [
2935 | 19,
2936 | 43
2937 | ],
2938 | "underage": [
2939 | 19,
2940 | 44
2941 | ],
2942 | "keycap_ten": [
2943 | 19,
2944 | 45
2945 | ],
2946 | "capital_abcd": [
2947 | 19,
2948 | 46
2949 | ],
2950 | "abcd": [
2951 | 19,
2952 | 47
2953 | ],
2954 | "symbols": [
2955 | 20,
2956 | 0
2957 | ],
2958 | "abc": [
2959 | 20,
2960 | 1
2961 | ],
2962 | "fire": [
2963 | 20,
2964 | 2
2965 | ],
2966 | "flashlight": [
2967 | 20,
2968 | 3
2969 | ],
2970 | "wrench": [
2971 | 20,
2972 | 4
2973 | ],
2974 | "hammer": [
2975 | 20,
2976 | 5
2977 | ],
2978 | "nut_and_bolt": [
2979 | 20,
2980 | 6
2981 | ],
2982 | "hocho": [
2983 | 20,
2984 | 7
2985 | ],
2986 | "gun": [
2987 | 20,
2988 | 8
2989 | ],
2990 | "microscope": [
2991 | 20,
2992 | 9
2993 | ],
2994 | "telescope": [
2995 | 20,
2996 | 10
2997 | ],
2998 | "crystal_ball": [
2999 | 20,
3000 | 11
3001 | ],
3002 | "six_pointed_star": [
3003 | 20,
3004 | 12
3005 | ],
3006 | "beginner": [
3007 | 20,
3008 | 13
3009 | ],
3010 | "trident": [
3011 | 20,
3012 | 14
3013 | ],
3014 | "black_square_button": [
3015 | 20,
3016 | 15
3017 | ],
3018 | "white_square_button": [
3019 | 20,
3020 | 16
3021 | ],
3022 | "red_circle": [
3023 | 20,
3024 | 17
3025 | ],
3026 | "large_blue_circle": [
3027 | 20,
3028 | 18
3029 | ],
3030 | "large_orange_diamond": [
3031 | 20,
3032 | 19
3033 | ],
3034 | "large_blue_diamond": [
3035 | 20,
3036 | 20
3037 | ],
3038 | "small_orange_diamond": [
3039 | 20,
3040 | 21
3041 | ],
3042 | "small_blue_diamond": [
3043 | 20,
3044 | 22
3045 | ],
3046 | "small_red_triangle": [
3047 | 20,
3048 | 23
3049 | ],
3050 | "small_red_triangle_down": [
3051 | 20,
3052 | 24
3053 | ],
3054 | "arrow_up_small": [
3055 | 20,
3056 | 25
3057 | ],
3058 | "arrow_down_small": [
3059 | 20,
3060 | 26
3061 | ],
3062 | "om_symbol": [
3063 | 20,
3064 | 27
3065 | ],
3066 | "dove_of_peace": [
3067 | 20,
3068 | 28
3069 | ],
3070 | "kaaba": [
3071 | 20,
3072 | 29
3073 | ],
3074 | "mosque": [
3075 | 20,
3076 | 30
3077 | ],
3078 | "synagogue": [
3079 | 20,
3080 | 31
3081 | ],
3082 | "menorah_with_nine_branches": [
3083 | 20,
3084 | 32
3085 | ],
3086 | "clock1": [
3087 | 20,
3088 | 33
3089 | ],
3090 | "clock2": [
3091 | 20,
3092 | 34
3093 | ],
3094 | "clock3": [
3095 | 20,
3096 | 35
3097 | ],
3098 | "clock4": [
3099 | 20,
3100 | 36
3101 | ],
3102 | "clock5": [
3103 | 20,
3104 | 37
3105 | ],
3106 | "clock6": [
3107 | 20,
3108 | 38
3109 | ],
3110 | "clock7": [
3111 | 20,
3112 | 39
3113 | ],
3114 | "clock8": [
3115 | 20,
3116 | 40
3117 | ],
3118 | "clock9": [
3119 | 20,
3120 | 41
3121 | ],
3122 | "clock10": [
3123 | 20,
3124 | 42
3125 | ],
3126 | "clock11": [
3127 | 20,
3128 | 43
3129 | ],
3130 | "clock12": [
3131 | 20,
3132 | 44
3133 | ],
3134 | "clock130": [
3135 | 20,
3136 | 45
3137 | ],
3138 | "clock230": [
3139 | 20,
3140 | 46
3141 | ],
3142 | "clock330": [
3143 | 20,
3144 | 47
3145 | ],
3146 | "clock430": [
3147 | 20,
3148 | 48
3149 | ],
3150 | "clock530": [
3151 | 21,
3152 | 0
3153 | ],
3154 | "clock630": [
3155 | 21,
3156 | 1
3157 | ],
3158 | "clock730": [
3159 | 21,
3160 | 2
3161 | ],
3162 | "clock830": [
3163 | 21,
3164 | 3
3165 | ],
3166 | "clock930": [
3167 | 21,
3168 | 4
3169 | ],
3170 | "clock1030": [
3171 | 21,
3172 | 5
3173 | ],
3174 | "clock1130": [
3175 | 21,
3176 | 6
3177 | ],
3178 | "clock1230": [
3179 | 21,
3180 | 7
3181 | ],
3182 | "candle": [
3183 | 21,
3184 | 8
3185 | ],
3186 | "mantelpiece_clock": [
3187 | 21,
3188 | 9
3189 | ],
3190 | "hole": [
3191 | 21,
3192 | 10
3193 | ],
3194 | "man_in_business_suit_levitating": [
3195 | 21,
3196 | 11
3197 | ],
3198 | "sleuth_or_spy": [
3199 | 21,
3200 | 17
3201 | ],
3202 | "dark_sunglasses": [
3203 | 21,
3204 | 23
3205 | ],
3206 | "spider": [
3207 | 21,
3208 | 24
3209 | ],
3210 | "spider_web": [
3211 | 21,
3212 | 25
3213 | ],
3214 | "joystick": [
3215 | 21,
3216 | 26
3217 | ],
3218 | "man_dancing": [
3219 | 21,
3220 | 27
3221 | ],
3222 | "linked_paperclips": [
3223 | 21,
3224 | 33
3225 | ],
3226 | "lower_left_ballpoint_pen": [
3227 | 21,
3228 | 34
3229 | ],
3230 | "lower_left_fountain_pen": [
3231 | 21,
3232 | 35
3233 | ],
3234 | "lower_left_paintbrush": [
3235 | 21,
3236 | 36
3237 | ],
3238 | "lower_left_crayon": [
3239 | 21,
3240 | 37
3241 | ],
3242 | "raised_hand_with_fingers_splayed": [
3243 | 21,
3244 | 38
3245 | ],
3246 | "middle_finger": [
3247 | 21,
3248 | 44
3249 | ],
3250 | "spock-hand": [
3251 | 22,
3252 | 1
3253 | ],
3254 | "black_heart": [
3255 | 22,
3256 | 7
3257 | ],
3258 | "desktop_computer": [
3259 | 22,
3260 | 8
3261 | ],
3262 | "printer": [
3263 | 22,
3264 | 9
3265 | ],
3266 | "three_button_mouse": [
3267 | 22,
3268 | 10
3269 | ],
3270 | "trackball": [
3271 | 22,
3272 | 11
3273 | ],
3274 | "frame_with_picture": [
3275 | 22,
3276 | 12
3277 | ],
3278 | "card_index_dividers": [
3279 | 22,
3280 | 13
3281 | ],
3282 | "card_file_box": [
3283 | 22,
3284 | 14
3285 | ],
3286 | "file_cabinet": [
3287 | 22,
3288 | 15
3289 | ],
3290 | "wastebasket": [
3291 | 22,
3292 | 16
3293 | ],
3294 | "spiral_note_pad": [
3295 | 22,
3296 | 17
3297 | ],
3298 | "spiral_calendar_pad": [
3299 | 22,
3300 | 18
3301 | ],
3302 | "compression": [
3303 | 22,
3304 | 19
3305 | ],
3306 | "old_key": [
3307 | 22,
3308 | 20
3309 | ],
3310 | "rolled_up_newspaper": [
3311 | 22,
3312 | 21
3313 | ],
3314 | "dagger_knife": [
3315 | 22,
3316 | 22
3317 | ],
3318 | "speaking_head_in_silhouette": [
3319 | 22,
3320 | 23
3321 | ],
3322 | "left_speech_bubble": [
3323 | 22,
3324 | 24
3325 | ],
3326 | "right_anger_bubble": [
3327 | 22,
3328 | 25
3329 | ],
3330 | "ballot_box_with_ballot": [
3331 | 22,
3332 | 26
3333 | ],
3334 | "world_map": [
3335 | 22,
3336 | 27
3337 | ],
3338 | "mount_fuji": [
3339 | 22,
3340 | 28
3341 | ],
3342 | "tokyo_tower": [
3343 | 22,
3344 | 29
3345 | ],
3346 | "statue_of_liberty": [
3347 | 22,
3348 | 30
3349 | ],
3350 | "japan": [
3351 | 22,
3352 | 31
3353 | ],
3354 | "moyai": [
3355 | 22,
3356 | 32
3357 | ],
3358 | "grinning": [
3359 | 22,
3360 | 33
3361 | ],
3362 | "grin": [
3363 | 22,
3364 | 34
3365 | ],
3366 | "joy": [
3367 | 22,
3368 | 35
3369 | ],
3370 | "smiley": [
3371 | 22,
3372 | 36
3373 | ],
3374 | "smile": [
3375 | 22,
3376 | 37
3377 | ],
3378 | "sweat_smile": [
3379 | 22,
3380 | 38
3381 | ],
3382 | "laughing": [
3383 | 22,
3384 | 39
3385 | ],
3386 | "innocent": [
3387 | 22,
3388 | 40
3389 | ],
3390 | "smiling_imp": [
3391 | 22,
3392 | 41
3393 | ],
3394 | "wink": [
3395 | 22,
3396 | 42
3397 | ],
3398 | "blush": [
3399 | 22,
3400 | 43
3401 | ],
3402 | "yum": [
3403 | 22,
3404 | 44
3405 | ],
3406 | "relieved": [
3407 | 22,
3408 | 45
3409 | ],
3410 | "heart_eyes": [
3411 | 22,
3412 | 46
3413 | ],
3414 | "sunglasses": [
3415 | 22,
3416 | 47
3417 | ],
3418 | "smirk": [
3419 | 22,
3420 | 48
3421 | ],
3422 | "neutral_face": [
3423 | 23,
3424 | 0
3425 | ],
3426 | "expressionless": [
3427 | 23,
3428 | 1
3429 | ],
3430 | "unamused": [
3431 | 23,
3432 | 2
3433 | ],
3434 | "sweat": [
3435 | 23,
3436 | 3
3437 | ],
3438 | "pensive": [
3439 | 23,
3440 | 4
3441 | ],
3442 | "confused": [
3443 | 23,
3444 | 5
3445 | ],
3446 | "confounded": [
3447 | 23,
3448 | 6
3449 | ],
3450 | "kissing": [
3451 | 23,
3452 | 7
3453 | ],
3454 | "kissing_heart": [
3455 | 23,
3456 | 8
3457 | ],
3458 | "kissing_smiling_eyes": [
3459 | 23,
3460 | 9
3461 | ],
3462 | "kissing_closed_eyes": [
3463 | 23,
3464 | 10
3465 | ],
3466 | "stuck_out_tongue": [
3467 | 23,
3468 | 11
3469 | ],
3470 | "stuck_out_tongue_winking_eye": [
3471 | 23,
3472 | 12
3473 | ],
3474 | "stuck_out_tongue_closed_eyes": [
3475 | 23,
3476 | 13
3477 | ],
3478 | "disappointed": [
3479 | 23,
3480 | 14
3481 | ],
3482 | "worried": [
3483 | 23,
3484 | 15
3485 | ],
3486 | "angry": [
3487 | 23,
3488 | 16
3489 | ],
3490 | "rage": [
3491 | 23,
3492 | 17
3493 | ],
3494 | "cry": [
3495 | 23,
3496 | 18
3497 | ],
3498 | "persevere": [
3499 | 23,
3500 | 19
3501 | ],
3502 | "triumph": [
3503 | 23,
3504 | 20
3505 | ],
3506 | "disappointed_relieved": [
3507 | 23,
3508 | 21
3509 | ],
3510 | "frowning": [
3511 | 23,
3512 | 22
3513 | ],
3514 | "anguished": [
3515 | 23,
3516 | 23
3517 | ],
3518 | "fearful": [
3519 | 23,
3520 | 24
3521 | ],
3522 | "weary": [
3523 | 23,
3524 | 25
3525 | ],
3526 | "sleepy": [
3527 | 23,
3528 | 26
3529 | ],
3530 | "tired_face": [
3531 | 23,
3532 | 27
3533 | ],
3534 | "grimacing": [
3535 | 23,
3536 | 28
3537 | ],
3538 | "sob": [
3539 | 23,
3540 | 29
3541 | ],
3542 | "open_mouth": [
3543 | 23,
3544 | 30
3545 | ],
3546 | "hushed": [
3547 | 23,
3548 | 31
3549 | ],
3550 | "cold_sweat": [
3551 | 23,
3552 | 32
3553 | ],
3554 | "scream": [
3555 | 23,
3556 | 33
3557 | ],
3558 | "astonished": [
3559 | 23,
3560 | 34
3561 | ],
3562 | "flushed": [
3563 | 23,
3564 | 35
3565 | ],
3566 | "sleeping": [
3567 | 23,
3568 | 36
3569 | ],
3570 | "dizzy_face": [
3571 | 23,
3572 | 37
3573 | ],
3574 | "no_mouth": [
3575 | 23,
3576 | 38
3577 | ],
3578 | "mask": [
3579 | 23,
3580 | 39
3581 | ],
3582 | "smile_cat": [
3583 | 23,
3584 | 40
3585 | ],
3586 | "joy_cat": [
3587 | 23,
3588 | 41
3589 | ],
3590 | "smiley_cat": [
3591 | 23,
3592 | 42
3593 | ],
3594 | "heart_eyes_cat": [
3595 | 23,
3596 | 43
3597 | ],
3598 | "smirk_cat": [
3599 | 23,
3600 | 44
3601 | ],
3602 | "kissing_cat": [
3603 | 23,
3604 | 45
3605 | ],
3606 | "pouting_cat": [
3607 | 23,
3608 | 46
3609 | ],
3610 | "crying_cat_face": [
3611 | 23,
3612 | 47
3613 | ],
3614 | "scream_cat": [
3615 | 23,
3616 | 48
3617 | ],
3618 | "slightly_frowning_face": [
3619 | 24,
3620 | 0
3621 | ],
3622 | "slightly_smiling_face": [
3623 | 24,
3624 | 1
3625 | ],
3626 | "upside_down_face": [
3627 | 24,
3628 | 2
3629 | ],
3630 | "face_with_rolling_eyes": [
3631 | 24,
3632 | 3
3633 | ],
3634 | "no_good": [
3635 | 24,
3636 | 4
3637 | ],
3638 | "ok_woman": [
3639 | 24,
3640 | 10
3641 | ],
3642 | "bow": [
3643 | 24,
3644 | 16
3645 | ],
3646 | "see_no_evil": [
3647 | 24,
3648 | 22
3649 | ],
3650 | "hear_no_evil": [
3651 | 24,
3652 | 23
3653 | ],
3654 | "speak_no_evil": [
3655 | 24,
3656 | 24
3657 | ],
3658 | "raising_hand": [
3659 | 24,
3660 | 25
3661 | ],
3662 | "raised_hands": [
3663 | 24,
3664 | 31
3665 | ],
3666 | "person_frowning": [
3667 | 24,
3668 | 37
3669 | ],
3670 | "person_with_pouting_face": [
3671 | 24,
3672 | 43
3673 | ],
3674 | "pray": [
3675 | 25,
3676 | 0
3677 | ],
3678 | "rocket": [
3679 | 25,
3680 | 6
3681 | ],
3682 | "helicopter": [
3683 | 25,
3684 | 7
3685 | ],
3686 | "steam_locomotive": [
3687 | 25,
3688 | 8
3689 | ],
3690 | "railway_car": [
3691 | 25,
3692 | 9
3693 | ],
3694 | "bullettrain_side": [
3695 | 25,
3696 | 10
3697 | ],
3698 | "bullettrain_front": [
3699 | 25,
3700 | 11
3701 | ],
3702 | "train2": [
3703 | 25,
3704 | 12
3705 | ],
3706 | "metro": [
3707 | 25,
3708 | 13
3709 | ],
3710 | "light_rail": [
3711 | 25,
3712 | 14
3713 | ],
3714 | "station": [
3715 | 25,
3716 | 15
3717 | ],
3718 | "tram": [
3719 | 25,
3720 | 16
3721 | ],
3722 | "train": [
3723 | 25,
3724 | 17
3725 | ],
3726 | "bus": [
3727 | 25,
3728 | 18
3729 | ],
3730 | "oncoming_bus": [
3731 | 25,
3732 | 19
3733 | ],
3734 | "trolleybus": [
3735 | 25,
3736 | 20
3737 | ],
3738 | "busstop": [
3739 | 25,
3740 | 21
3741 | ],
3742 | "minibus": [
3743 | 25,
3744 | 22
3745 | ],
3746 | "ambulance": [
3747 | 25,
3748 | 23
3749 | ],
3750 | "fire_engine": [
3751 | 25,
3752 | 24
3753 | ],
3754 | "police_car": [
3755 | 25,
3756 | 25
3757 | ],
3758 | "oncoming_police_car": [
3759 | 25,
3760 | 26
3761 | ],
3762 | "taxi": [
3763 | 25,
3764 | 27
3765 | ],
3766 | "oncoming_taxi": [
3767 | 25,
3768 | 28
3769 | ],
3770 | "car": [
3771 | 25,
3772 | 29
3773 | ],
3774 | "oncoming_automobile": [
3775 | 25,
3776 | 30
3777 | ],
3778 | "blue_car": [
3779 | 25,
3780 | 31
3781 | ],
3782 | "truck": [
3783 | 25,
3784 | 32
3785 | ],
3786 | "articulated_lorry": [
3787 | 25,
3788 | 33
3789 | ],
3790 | "tractor": [
3791 | 25,
3792 | 34
3793 | ],
3794 | "monorail": [
3795 | 25,
3796 | 35
3797 | ],
3798 | "mountain_railway": [
3799 | 25,
3800 | 36
3801 | ],
3802 | "suspension_railway": [
3803 | 25,
3804 | 37
3805 | ],
3806 | "mountain_cableway": [
3807 | 25,
3808 | 38
3809 | ],
3810 | "aerial_tramway": [
3811 | 25,
3812 | 39
3813 | ],
3814 | "ship": [
3815 | 25,
3816 | 40
3817 | ],
3818 | "rowboat": [
3819 | 25,
3820 | 41
3821 | ],
3822 | "speedboat": [
3823 | 25,
3824 | 47
3825 | ],
3826 | "traffic_light": [
3827 | 25,
3828 | 48
3829 | ],
3830 | "vertical_traffic_light": [
3831 | 26,
3832 | 0
3833 | ],
3834 | "construction": [
3835 | 26,
3836 | 1
3837 | ],
3838 | "rotating_light": [
3839 | 26,
3840 | 2
3841 | ],
3842 | "triangular_flag_on_post": [
3843 | 26,
3844 | 3
3845 | ],
3846 | "door": [
3847 | 26,
3848 | 4
3849 | ],
3850 | "no_entry_sign": [
3851 | 26,
3852 | 5
3853 | ],
3854 | "smoking": [
3855 | 26,
3856 | 6
3857 | ],
3858 | "no_smoking": [
3859 | 26,
3860 | 7
3861 | ],
3862 | "put_litter_in_its_place": [
3863 | 26,
3864 | 8
3865 | ],
3866 | "do_not_litter": [
3867 | 26,
3868 | 9
3869 | ],
3870 | "potable_water": [
3871 | 26,
3872 | 10
3873 | ],
3874 | "non-potable_water": [
3875 | 26,
3876 | 11
3877 | ],
3878 | "bike": [
3879 | 26,
3880 | 12
3881 | ],
3882 | "no_bicycles": [
3883 | 26,
3884 | 13
3885 | ],
3886 | "bicyclist": [
3887 | 26,
3888 | 14
3889 | ],
3890 | "mountain_bicyclist": [
3891 | 26,
3892 | 20
3893 | ],
3894 | "walking": [
3895 | 26,
3896 | 26
3897 | ],
3898 | "no_pedestrians": [
3899 | 26,
3900 | 32
3901 | ],
3902 | "children_crossing": [
3903 | 26,
3904 | 33
3905 | ],
3906 | "mens": [
3907 | 26,
3908 | 34
3909 | ],
3910 | "womens": [
3911 | 26,
3912 | 35
3913 | ],
3914 | "restroom": [
3915 | 26,
3916 | 36
3917 | ],
3918 | "baby_symbol": [
3919 | 26,
3920 | 37
3921 | ],
3922 | "toilet": [
3923 | 26,
3924 | 38
3925 | ],
3926 | "wc": [
3927 | 26,
3928 | 39
3929 | ],
3930 | "shower": [
3931 | 26,
3932 | 40
3933 | ],
3934 | "bath": [
3935 | 26,
3936 | 41
3937 | ],
3938 | "bathtub": [
3939 | 26,
3940 | 47
3941 | ],
3942 | "passport_control": [
3943 | 26,
3944 | 48
3945 | ],
3946 | "customs": [
3947 | 27,
3948 | 0
3949 | ],
3950 | "baggage_claim": [
3951 | 27,
3952 | 1
3953 | ],
3954 | "left_luggage": [
3955 | 27,
3956 | 2
3957 | ],
3958 | "couch_and_lamp": [
3959 | 27,
3960 | 3
3961 | ],
3962 | "sleeping_accommodation": [
3963 | 27,
3964 | 4
3965 | ],
3966 | "shopping_bags": [
3967 | 27,
3968 | 10
3969 | ],
3970 | "bellhop_bell": [
3971 | 27,
3972 | 11
3973 | ],
3974 | "bed": [
3975 | 27,
3976 | 12
3977 | ],
3978 | "place_of_worship": [
3979 | 27,
3980 | 13
3981 | ],
3982 | "octagonal_sign": [
3983 | 27,
3984 | 14
3985 | ],
3986 | "shopping_trolley": [
3987 | 27,
3988 | 15
3989 | ],
3990 | "hammer_and_wrench": [
3991 | 27,
3992 | 16
3993 | ],
3994 | "shield": [
3995 | 27,
3996 | 17
3997 | ],
3998 | "oil_drum": [
3999 | 27,
4000 | 18
4001 | ],
4002 | "motorway": [
4003 | 27,
4004 | 19
4005 | ],
4006 | "railway_track": [
4007 | 27,
4008 | 20
4009 | ],
4010 | "motor_boat": [
4011 | 27,
4012 | 21
4013 | ],
4014 | "small_airplane": [
4015 | 27,
4016 | 22
4017 | ],
4018 | "airplane_departure": [
4019 | 27,
4020 | 23
4021 | ],
4022 | "airplane_arriving": [
4023 | 27,
4024 | 24
4025 | ],
4026 | "satellite": [
4027 | 27,
4028 | 25
4029 | ],
4030 | "passenger_ship": [
4031 | 27,
4032 | 26
4033 | ],
4034 | "scooter": [
4035 | 27,
4036 | 27
4037 | ],
4038 | "motor_scooter": [
4039 | 27,
4040 | 28
4041 | ],
4042 | "canoe": [
4043 | 27,
4044 | 29
4045 | ],
4046 | "zipper_mouth_face": [
4047 | 27,
4048 | 30
4049 | ],
4050 | "money_mouth_face": [
4051 | 27,
4052 | 31
4053 | ],
4054 | "face_with_thermometer": [
4055 | 27,
4056 | 32
4057 | ],
4058 | "nerd_face": [
4059 | 27,
4060 | 33
4061 | ],
4062 | "thinking_face": [
4063 | 27,
4064 | 34
4065 | ],
4066 | "face_with_head_bandage": [
4067 | 27,
4068 | 35
4069 | ],
4070 | "robot_face": [
4071 | 27,
4072 | 36
4073 | ],
4074 | "hugging_face": [
4075 | 27,
4076 | 37
4077 | ],
4078 | "the_horns": [
4079 | 27,
4080 | 38
4081 | ],
4082 | "call_me_hand": [
4083 | 27,
4084 | 44
4085 | ],
4086 | "raised_back_of_hand": [
4087 | 28,
4088 | 1
4089 | ],
4090 | "left-facing_fist": [
4091 | 28,
4092 | 7
4093 | ],
4094 | "right-facing_fist": [
4095 | 28,
4096 | 13
4097 | ],
4098 | "handshake": [
4099 | 28,
4100 | 19
4101 | ],
4102 | "hand_with_index_and_middle_fingers_crossed": [
4103 | 28,
4104 | 20
4105 | ],
4106 | "face_with_cowboy_hat": [
4107 | 28,
4108 | 26
4109 | ],
4110 | "clown_face": [
4111 | 28,
4112 | 27
4113 | ],
4114 | "nauseated_face": [
4115 | 28,
4116 | 28
4117 | ],
4118 | "rolling_on_the_floor_laughing": [
4119 | 28,
4120 | 29
4121 | ],
4122 | "drooling_face": [
4123 | 28,
4124 | 30
4125 | ],
4126 | "lying_face": [
4127 | 28,
4128 | 31
4129 | ],
4130 | "face_palm": [
4131 | 28,
4132 | 32
4133 | ],
4134 | "sneezing_face": [
4135 | 28,
4136 | 38
4137 | ],
4138 | "pregnant_woman": [
4139 | 28,
4140 | 39
4141 | ],
4142 | "selfie": [
4143 | 28,
4144 | 45
4145 | ],
4146 | "prince": [
4147 | 29,
4148 | 2
4149 | ],
4150 | "man_in_tuxedo": [
4151 | 29,
4152 | 8
4153 | ],
4154 | "mother_christmas": [
4155 | 29,
4156 | 14
4157 | ],
4158 | "shrug": [
4159 | 29,
4160 | 20
4161 | ],
4162 | "person_doing_cartwheel": [
4163 | 29,
4164 | 26
4165 | ],
4166 | "juggling": [
4167 | 29,
4168 | 32
4169 | ],
4170 | "fencer": [
4171 | 29,
4172 | 38
4173 | ],
4174 | "wrestlers": [
4175 | 29,
4176 | 39
4177 | ],
4178 | "water_polo": [
4179 | 29,
4180 | 40
4181 | ],
4182 | "handball": [
4183 | 29,
4184 | 46
4185 | ],
4186 | "wilted_flower": [
4187 | 30,
4188 | 3
4189 | ],
4190 | "drum_with_drumsticks": [
4191 | 30,
4192 | 4
4193 | ],
4194 | "clinking_glasses": [
4195 | 30,
4196 | 5
4197 | ],
4198 | "tumbler_glass": [
4199 | 30,
4200 | 6
4201 | ],
4202 | "spoon": [
4203 | 30,
4204 | 7
4205 | ],
4206 | "goal_net": [
4207 | 30,
4208 | 8
4209 | ],
4210 | "first_place_medal": [
4211 | 30,
4212 | 9
4213 | ],
4214 | "second_place_medal": [
4215 | 30,
4216 | 10
4217 | ],
4218 | "third_place_medal": [
4219 | 30,
4220 | 11
4221 | ],
4222 | "boxing_glove": [
4223 | 30,
4224 | 12
4225 | ],
4226 | "martial_arts_uniform": [
4227 | 30,
4228 | 13
4229 | ],
4230 | "croissant": [
4231 | 30,
4232 | 14
4233 | ],
4234 | "avocado": [
4235 | 30,
4236 | 15
4237 | ],
4238 | "cucumber": [
4239 | 30,
4240 | 16
4241 | ],
4242 | "bacon": [
4243 | 30,
4244 | 17
4245 | ],
4246 | "potato": [
4247 | 30,
4248 | 18
4249 | ],
4250 | "carrot": [
4251 | 30,
4252 | 19
4253 | ],
4254 | "baguette_bread": [
4255 | 30,
4256 | 20
4257 | ],
4258 | "green_salad": [
4259 | 30,
4260 | 21
4261 | ],
4262 | "shallow_pan_of_food": [
4263 | 30,
4264 | 22
4265 | ],
4266 | "stuffed_flatbread": [
4267 | 30,
4268 | 23
4269 | ],
4270 | "egg": [
4271 | 30,
4272 | 24
4273 | ],
4274 | "glass_of_milk": [
4275 | 30,
4276 | 25
4277 | ],
4278 | "peanuts": [
4279 | 30,
4280 | 26
4281 | ],
4282 | "kiwifruit": [
4283 | 30,
4284 | 27
4285 | ],
4286 | "pancakes": [
4287 | 30,
4288 | 28
4289 | ],
4290 | "crab": [
4291 | 30,
4292 | 29
4293 | ],
4294 | "lion_face": [
4295 | 30,
4296 | 30
4297 | ],
4298 | "scorpion": [
4299 | 30,
4300 | 31
4301 | ],
4302 | "turkey": [
4303 | 30,
4304 | 32
4305 | ],
4306 | "unicorn_face": [
4307 | 30,
4308 | 33
4309 | ],
4310 | "eagle": [
4311 | 30,
4312 | 34
4313 | ],
4314 | "duck": [
4315 | 30,
4316 | 35
4317 | ],
4318 | "bat": [
4319 | 30,
4320 | 36
4321 | ],
4322 | "shark": [
4323 | 30,
4324 | 37
4325 | ],
4326 | "owl": [
4327 | 30,
4328 | 38
4329 | ],
4330 | "fox_face": [
4331 | 30,
4332 | 39
4333 | ],
4334 | "butterfly": [
4335 | 30,
4336 | 40
4337 | ],
4338 | "deer": [
4339 | 30,
4340 | 41
4341 | ],
4342 | "gorilla": [
4343 | 30,
4344 | 42
4345 | ],
4346 | "lizard": [
4347 | 30,
4348 | 43
4349 | ],
4350 | "rhinoceros": [
4351 | 30,
4352 | 44
4353 | ],
4354 | "shrimp": [
4355 | 30,
4356 | 45
4357 | ],
4358 | "squid": [
4359 | 30,
4360 | 46
4361 | ],
4362 | "cheese_wedge": [
4363 | 30,
4364 | 47
4365 | ],
4366 | "hash": [
4367 | 30,
4368 | 48
4369 | ],
4370 | "keycap_star": [
4371 | 31,
4372 | 0
4373 | ],
4374 | "zero": [
4375 | 31,
4376 | 1
4377 | ],
4378 | "one": [
4379 | 31,
4380 | 2
4381 | ],
4382 | "two": [
4383 | 31,
4384 | 3
4385 | ],
4386 | "three": [
4387 | 31,
4388 | 4
4389 | ],
4390 | "four": [
4391 | 31,
4392 | 5
4393 | ],
4394 | "five": [
4395 | 31,
4396 | 6
4397 | ],
4398 | "six": [
4399 | 31,
4400 | 7
4401 | ],
4402 | "seven": [
4403 | 31,
4404 | 8
4405 | ],
4406 | "eight": [
4407 | 31,
4408 | 9
4409 | ],
4410 | "nine": [
4411 | 31,
4412 | 10
4413 | ],
4414 | "flag-ac": [
4415 | 31,
4416 | 11
4417 | ],
4418 | "flag-ad": [
4419 | 31,
4420 | 12
4421 | ],
4422 | "flag-ae": [
4423 | 31,
4424 | 13
4425 | ],
4426 | "flag-af": [
4427 | 31,
4428 | 14
4429 | ],
4430 | "flag-ag": [
4431 | 31,
4432 | 15
4433 | ],
4434 | "flag-ai": [
4435 | 31,
4436 | 16
4437 | ],
4438 | "flag-al": [
4439 | 31,
4440 | 17
4441 | ],
4442 | "flag-am": [
4443 | 31,
4444 | 18
4445 | ],
4446 | "flag-ao": [
4447 | 31,
4448 | 19
4449 | ],
4450 | "flag-aq": [
4451 | 31,
4452 | 20
4453 | ],
4454 | "flag-ar": [
4455 | 31,
4456 | 21
4457 | ],
4458 | "flag-as": [
4459 | 31,
4460 | 22
4461 | ],
4462 | "flag-at": [
4463 | 31,
4464 | 23
4465 | ],
4466 | "flag-au": [
4467 | 31,
4468 | 24
4469 | ],
4470 | "flag-aw": [
4471 | 31,
4472 | 25
4473 | ],
4474 | "flag-ax": [
4475 | 31,
4476 | 26
4477 | ],
4478 | "flag-az": [
4479 | 31,
4480 | 27
4481 | ],
4482 | "flag-ba": [
4483 | 31,
4484 | 28
4485 | ],
4486 | "flag-bb": [
4487 | 31,
4488 | 29
4489 | ],
4490 | "flag-bd": [
4491 | 31,
4492 | 30
4493 | ],
4494 | "flag-be": [
4495 | 31,
4496 | 31
4497 | ],
4498 | "flag-bf": [
4499 | 31,
4500 | 32
4501 | ],
4502 | "flag-bg": [
4503 | 31,
4504 | 33
4505 | ],
4506 | "flag-bh": [
4507 | 31,
4508 | 34
4509 | ],
4510 | "flag-bi": [
4511 | 31,
4512 | 35
4513 | ],
4514 | "flag-bj": [
4515 | 31,
4516 | 36
4517 | ],
4518 | "flag-bl": [
4519 | 31,
4520 | 37
4521 | ],
4522 | "flag-bm": [
4523 | 31,
4524 | 38
4525 | ],
4526 | "flag-bn": [
4527 | 31,
4528 | 39
4529 | ],
4530 | "flag-bo": [
4531 | 31,
4532 | 40
4533 | ],
4534 | "flag-bq": [
4535 | 31,
4536 | 41
4537 | ],
4538 | "flag-br": [
4539 | 31,
4540 | 42
4541 | ],
4542 | "flag-bs": [
4543 | 31,
4544 | 43
4545 | ],
4546 | "flag-bt": [
4547 | 31,
4548 | 44
4549 | ],
4550 | "flag-bv": [
4551 | 31,
4552 | 45
4553 | ],
4554 | "flag-bw": [
4555 | 31,
4556 | 46
4557 | ],
4558 | "flag-by": [
4559 | 31,
4560 | 47
4561 | ],
4562 | "flag-bz": [
4563 | 31,
4564 | 48
4565 | ],
4566 | "flag-ca": [
4567 | 32,
4568 | 0
4569 | ],
4570 | "flag-cc": [
4571 | 32,
4572 | 1
4573 | ],
4574 | "flag-cd": [
4575 | 32,
4576 | 2
4577 | ],
4578 | "flag-cf": [
4579 | 32,
4580 | 3
4581 | ],
4582 | "flag-cg": [
4583 | 32,
4584 | 4
4585 | ],
4586 | "flag-ch": [
4587 | 32,
4588 | 5
4589 | ],
4590 | "flag-ci": [
4591 | 32,
4592 | 6
4593 | ],
4594 | "flag-ck": [
4595 | 32,
4596 | 7
4597 | ],
4598 | "flag-cl": [
4599 | 32,
4600 | 8
4601 | ],
4602 | "flag-cm": [
4603 | 32,
4604 | 9
4605 | ],
4606 | "flag-cn": [
4607 | 32,
4608 | 10
4609 | ],
4610 | "flag-co": [
4611 | 32,
4612 | 11
4613 | ],
4614 | "flag-cp": [
4615 | 32,
4616 | 12
4617 | ],
4618 | "flag-cr": [
4619 | 32,
4620 | 13
4621 | ],
4622 | "flag-cu": [
4623 | 32,
4624 | 14
4625 | ],
4626 | "flag-cv": [
4627 | 32,
4628 | 15
4629 | ],
4630 | "flag-cw": [
4631 | 32,
4632 | 16
4633 | ],
4634 | "flag-cx": [
4635 | 32,
4636 | 17
4637 | ],
4638 | "flag-cy": [
4639 | 32,
4640 | 18
4641 | ],
4642 | "flag-cz": [
4643 | 32,
4644 | 19
4645 | ],
4646 | "flag-de": [
4647 | 32,
4648 | 20
4649 | ],
4650 | "flag-dg": [
4651 | 32,
4652 | 21
4653 | ],
4654 | "flag-dj": [
4655 | 32,
4656 | 22
4657 | ],
4658 | "flag-dk": [
4659 | 32,
4660 | 23
4661 | ],
4662 | "flag-dm": [
4663 | 32,
4664 | 24
4665 | ],
4666 | "flag-do": [
4667 | 32,
4668 | 25
4669 | ],
4670 | "flag-dz": [
4671 | 32,
4672 | 26
4673 | ],
4674 | "flag-ea": [
4675 | 32,
4676 | 27
4677 | ],
4678 | "flag-ec": [
4679 | 32,
4680 | 28
4681 | ],
4682 | "flag-ee": [
4683 | 32,
4684 | 29
4685 | ],
4686 | "flag-eg": [
4687 | 32,
4688 | 30
4689 | ],
4690 | "flag-eh": [
4691 | 32,
4692 | 31
4693 | ],
4694 | "flag-er": [
4695 | 32,
4696 | 32
4697 | ],
4698 | "flag-es": [
4699 | 32,
4700 | 33
4701 | ],
4702 | "flag-et": [
4703 | 32,
4704 | 34
4705 | ],
4706 | "flag-eu": [
4707 | 32,
4708 | 35
4709 | ],
4710 | "flag-fi": [
4711 | 32,
4712 | 36
4713 | ],
4714 | "flag-fj": [
4715 | 32,
4716 | 37
4717 | ],
4718 | "flag-fk": [
4719 | 32,
4720 | 38
4721 | ],
4722 | "flag-fm": [
4723 | 32,
4724 | 39
4725 | ],
4726 | "flag-fo": [
4727 | 32,
4728 | 40
4729 | ],
4730 | "flag-fr": [
4731 | 32,
4732 | 41
4733 | ],
4734 | "flag-ga": [
4735 | 32,
4736 | 42
4737 | ],
4738 | "flag-gb": [
4739 | 32,
4740 | 43
4741 | ],
4742 | "flag-gd": [
4743 | 32,
4744 | 44
4745 | ],
4746 | "flag-ge": [
4747 | 32,
4748 | 45
4749 | ],
4750 | "flag-gf": [
4751 | 32,
4752 | 46
4753 | ],
4754 | "flag-gg": [
4755 | 32,
4756 | 47
4757 | ],
4758 | "flag-gh": [
4759 | 32,
4760 | 48
4761 | ],
4762 | "flag-gi": [
4763 | 33,
4764 | 0
4765 | ],
4766 | "flag-gl": [
4767 | 33,
4768 | 1
4769 | ],
4770 | "flag-gm": [
4771 | 33,
4772 | 2
4773 | ],
4774 | "flag-gn": [
4775 | 33,
4776 | 3
4777 | ],
4778 | "flag-gp": [
4779 | 33,
4780 | 4
4781 | ],
4782 | "flag-gq": [
4783 | 33,
4784 | 5
4785 | ],
4786 | "flag-gr": [
4787 | 33,
4788 | 6
4789 | ],
4790 | "flag-gs": [
4791 | 33,
4792 | 7
4793 | ],
4794 | "flag-gt": [
4795 | 33,
4796 | 8
4797 | ],
4798 | "flag-gu": [
4799 | 33,
4800 | 9
4801 | ],
4802 | "flag-gw": [
4803 | 33,
4804 | 10
4805 | ],
4806 | "flag-gy": [
4807 | 33,
4808 | 11
4809 | ],
4810 | "flag-hk": [
4811 | 33,
4812 | 12
4813 | ],
4814 | "flag-hm": [
4815 | 33,
4816 | 13
4817 | ],
4818 | "flag-hn": [
4819 | 33,
4820 | 14
4821 | ],
4822 | "flag-hr": [
4823 | 33,
4824 | 15
4825 | ],
4826 | "flag-ht": [
4827 | 33,
4828 | 16
4829 | ],
4830 | "flag-hu": [
4831 | 33,
4832 | 17
4833 | ],
4834 | "flag-ic": [
4835 | 33,
4836 | 18
4837 | ],
4838 | "flag-id": [
4839 | 33,
4840 | 19
4841 | ],
4842 | "flag-ie": [
4843 | 33,
4844 | 20
4845 | ],
4846 | "flag-il": [
4847 | 33,
4848 | 21
4849 | ],
4850 | "flag-im": [
4851 | 33,
4852 | 22
4853 | ],
4854 | "flag-in": [
4855 | 33,
4856 | 23
4857 | ],
4858 | "flag-io": [
4859 | 33,
4860 | 24
4861 | ],
4862 | "flag-iq": [
4863 | 33,
4864 | 25
4865 | ],
4866 | "flag-ir": [
4867 | 33,
4868 | 26
4869 | ],
4870 | "flag-is": [
4871 | 33,
4872 | 27
4873 | ],
4874 | "flag-it": [
4875 | 33,
4876 | 28
4877 | ],
4878 | "flag-je": [
4879 | 33,
4880 | 29
4881 | ],
4882 | "flag-jm": [
4883 | 33,
4884 | 30
4885 | ],
4886 | "flag-jo": [
4887 | 33,
4888 | 31
4889 | ],
4890 | "flag-jp": [
4891 | 33,
4892 | 32
4893 | ],
4894 | "flag-ke": [
4895 | 33,
4896 | 33
4897 | ],
4898 | "flag-kg": [
4899 | 33,
4900 | 34
4901 | ],
4902 | "flag-kh": [
4903 | 33,
4904 | 35
4905 | ],
4906 | "flag-ki": [
4907 | 33,
4908 | 36
4909 | ],
4910 | "flag-km": [
4911 | 33,
4912 | 37
4913 | ],
4914 | "flag-kn": [
4915 | 33,
4916 | 38
4917 | ],
4918 | "flag-kp": [
4919 | 33,
4920 | 39
4921 | ],
4922 | "flag-kr": [
4923 | 33,
4924 | 40
4925 | ],
4926 | "flag-kw": [
4927 | 33,
4928 | 41
4929 | ],
4930 | "flag-ky": [
4931 | 33,
4932 | 42
4933 | ],
4934 | "flag-kz": [
4935 | 33,
4936 | 43
4937 | ],
4938 | "flag-la": [
4939 | 33,
4940 | 44
4941 | ],
4942 | "flag-lb": [
4943 | 33,
4944 | 45
4945 | ],
4946 | "flag-lc": [
4947 | 33,
4948 | 46
4949 | ],
4950 | "flag-li": [
4951 | 33,
4952 | 47
4953 | ],
4954 | "flag-lk": [
4955 | 33,
4956 | 48
4957 | ],
4958 | "flag-lr": [
4959 | 34,
4960 | 0
4961 | ],
4962 | "flag-ls": [
4963 | 34,
4964 | 1
4965 | ],
4966 | "flag-lt": [
4967 | 34,
4968 | 2
4969 | ],
4970 | "flag-lu": [
4971 | 34,
4972 | 3
4973 | ],
4974 | "flag-lv": [
4975 | 34,
4976 | 4
4977 | ],
4978 | "flag-ly": [
4979 | 34,
4980 | 5
4981 | ],
4982 | "flag-ma": [
4983 | 34,
4984 | 6
4985 | ],
4986 | "flag-mc": [
4987 | 34,
4988 | 7
4989 | ],
4990 | "flag-md": [
4991 | 34,
4992 | 8
4993 | ],
4994 | "flag-me": [
4995 | 34,
4996 | 9
4997 | ],
4998 | "flag-mf": [
4999 | 34,
5000 | 10
5001 | ],
5002 | "flag-mg": [
5003 | 34,
5004 | 11
5005 | ],
5006 | "flag-mh": [
5007 | 34,
5008 | 12
5009 | ],
5010 | "flag-mk": [
5011 | 34,
5012 | 13
5013 | ],
5014 | "flag-ml": [
5015 | 34,
5016 | 14
5017 | ],
5018 | "flag-mm": [
5019 | 34,
5020 | 15
5021 | ],
5022 | "flag-mn": [
5023 | 34,
5024 | 16
5025 | ],
5026 | "flag-mo": [
5027 | 34,
5028 | 17
5029 | ],
5030 | "flag-mp": [
5031 | 34,
5032 | 18
5033 | ],
5034 | "flag-mq": [
5035 | 34,
5036 | 19
5037 | ],
5038 | "flag-mr": [
5039 | 34,
5040 | 20
5041 | ],
5042 | "flag-ms": [
5043 | 34,
5044 | 21
5045 | ],
5046 | "flag-mt": [
5047 | 34,
5048 | 22
5049 | ],
5050 | "flag-mu": [
5051 | 34,
5052 | 23
5053 | ],
5054 | "flag-mv": [
5055 | 34,
5056 | 24
5057 | ],
5058 | "flag-mw": [
5059 | 34,
5060 | 25
5061 | ],
5062 | "flag-mx": [
5063 | 34,
5064 | 26
5065 | ],
5066 | "flag-my": [
5067 | 34,
5068 | 27
5069 | ],
5070 | "flag-mz": [
5071 | 34,
5072 | 28
5073 | ],
5074 | "flag-na": [
5075 | 34,
5076 | 29
5077 | ],
5078 | "flag-nc": [
5079 | 34,
5080 | 30
5081 | ],
5082 | "flag-ne": [
5083 | 34,
5084 | 31
5085 | ],
5086 | "flag-nf": [
5087 | 34,
5088 | 32
5089 | ],
5090 | "flag-ng": [
5091 | 34,
5092 | 33
5093 | ],
5094 | "flag-ni": [
5095 | 34,
5096 | 34
5097 | ],
5098 | "flag-nl": [
5099 | 34,
5100 | 35
5101 | ],
5102 | "flag-no": [
5103 | 34,
5104 | 36
5105 | ],
5106 | "flag-np": [
5107 | 34,
5108 | 37
5109 | ],
5110 | "flag-nr": [
5111 | 34,
5112 | 38
5113 | ],
5114 | "flag-nu": [
5115 | 34,
5116 | 39
5117 | ],
5118 | "flag-nz": [
5119 | 34,
5120 | 40
5121 | ],
5122 | "flag-om": [
5123 | 34,
5124 | 41
5125 | ],
5126 | "flag-pa": [
5127 | 34,
5128 | 42
5129 | ],
5130 | "flag-pe": [
5131 | 34,
5132 | 43
5133 | ],
5134 | "flag-pf": [
5135 | 34,
5136 | 44
5137 | ],
5138 | "flag-pg": [
5139 | 34,
5140 | 45
5141 | ],
5142 | "flag-ph": [
5143 | 34,
5144 | 46
5145 | ],
5146 | "flag-pk": [
5147 | 34,
5148 | 47
5149 | ],
5150 | "flag-pl": [
5151 | 34,
5152 | 48
5153 | ],
5154 | "flag-pm": [
5155 | 35,
5156 | 0
5157 | ],
5158 | "flag-pn": [
5159 | 35,
5160 | 1
5161 | ],
5162 | "flag-pr": [
5163 | 35,
5164 | 2
5165 | ],
5166 | "flag-ps": [
5167 | 35,
5168 | 3
5169 | ],
5170 | "flag-pt": [
5171 | 35,
5172 | 4
5173 | ],
5174 | "flag-pw": [
5175 | 35,
5176 | 5
5177 | ],
5178 | "flag-py": [
5179 | 35,
5180 | 6
5181 | ],
5182 | "flag-qa": [
5183 | 35,
5184 | 7
5185 | ],
5186 | "flag-re": [
5187 | 35,
5188 | 8
5189 | ],
5190 | "flag-ro": [
5191 | 35,
5192 | 9
5193 | ],
5194 | "flag-rs": [
5195 | 35,
5196 | 10
5197 | ],
5198 | "flag-ru": [
5199 | 35,
5200 | 11
5201 | ],
5202 | "flag-rw": [
5203 | 35,
5204 | 12
5205 | ],
5206 | "flag-sa": [
5207 | 35,
5208 | 13
5209 | ],
5210 | "flag-sb": [
5211 | 35,
5212 | 14
5213 | ],
5214 | "flag-sc": [
5215 | 35,
5216 | 15
5217 | ],
5218 | "flag-sd": [
5219 | 35,
5220 | 16
5221 | ],
5222 | "flag-se": [
5223 | 35,
5224 | 17
5225 | ],
5226 | "flag-sg": [
5227 | 35,
5228 | 18
5229 | ],
5230 | "flag-sh": [
5231 | 35,
5232 | 19
5233 | ],
5234 | "flag-si": [
5235 | 35,
5236 | 20
5237 | ],
5238 | "flag-sj": [
5239 | 35,
5240 | 21
5241 | ],
5242 | "flag-sk": [
5243 | 35,
5244 | 22
5245 | ],
5246 | "flag-sl": [
5247 | 35,
5248 | 23
5249 | ],
5250 | "flag-sm": [
5251 | 35,
5252 | 24
5253 | ],
5254 | "flag-sn": [
5255 | 35,
5256 | 25
5257 | ],
5258 | "flag-so": [
5259 | 35,
5260 | 26
5261 | ],
5262 | "flag-sr": [
5263 | 35,
5264 | 27
5265 | ],
5266 | "flag-ss": [
5267 | 35,
5268 | 28
5269 | ],
5270 | "flag-st": [
5271 | 35,
5272 | 29
5273 | ],
5274 | "flag-sv": [
5275 | 35,
5276 | 30
5277 | ],
5278 | "flag-sx": [
5279 | 35,
5280 | 31
5281 | ],
5282 | "flag-sy": [
5283 | 35,
5284 | 32
5285 | ],
5286 | "flag-sz": [
5287 | 35,
5288 | 33
5289 | ],
5290 | "flag-ta": [
5291 | 35,
5292 | 34
5293 | ],
5294 | "flag-tc": [
5295 | 35,
5296 | 35
5297 | ],
5298 | "flag-td": [
5299 | 35,
5300 | 36
5301 | ],
5302 | "flag-tf": [
5303 | 35,
5304 | 37
5305 | ],
5306 | "flag-tg": [
5307 | 35,
5308 | 38
5309 | ],
5310 | "flag-th": [
5311 | 35,
5312 | 39
5313 | ],
5314 | "flag-tj": [
5315 | 35,
5316 | 40
5317 | ],
5318 | "flag-tk": [
5319 | 35,
5320 | 41
5321 | ],
5322 | "flag-tl": [
5323 | 35,
5324 | 42
5325 | ],
5326 | "flag-tm": [
5327 | 35,
5328 | 43
5329 | ],
5330 | "flag-tn": [
5331 | 35,
5332 | 44
5333 | ],
5334 | "flag-to": [
5335 | 35,
5336 | 45
5337 | ],
5338 | "flag-tr": [
5339 | 35,
5340 | 46
5341 | ],
5342 | "flag-tt": [
5343 | 35,
5344 | 47
5345 | ],
5346 | "flag-tv": [
5347 | 35,
5348 | 48
5349 | ],
5350 | "flag-tw": [
5351 | 36,
5352 | 0
5353 | ],
5354 | "flag-tz": [
5355 | 36,
5356 | 1
5357 | ],
5358 | "flag-ua": [
5359 | 36,
5360 | 2
5361 | ],
5362 | "flag-ug": [
5363 | 36,
5364 | 3
5365 | ],
5366 | "flag-um": [
5367 | 36,
5368 | 4
5369 | ],
5370 | "flag-un": [
5371 | 36,
5372 | 5
5373 | ],
5374 | "flag-us": [
5375 | 36,
5376 | 6
5377 | ],
5378 | "flag-uy": [
5379 | 36,
5380 | 7
5381 | ],
5382 | "flag-uz": [
5383 | 36,
5384 | 8
5385 | ],
5386 | "flag-va": [
5387 | 36,
5388 | 9
5389 | ],
5390 | "flag-vc": [
5391 | 36,
5392 | 10
5393 | ],
5394 | "flag-ve": [
5395 | 36,
5396 | 11
5397 | ],
5398 | "flag-vg": [
5399 | 36,
5400 | 12
5401 | ],
5402 | "flag-vi": [
5403 | 36,
5404 | 13
5405 | ],
5406 | "flag-vn": [
5407 | 36,
5408 | 14
5409 | ],
5410 | "flag-vu": [
5411 | 36,
5412 | 15
5413 | ],
5414 | "flag-wf": [
5415 | 36,
5416 | 16
5417 | ],
5418 | "flag-ws": [
5419 | 36,
5420 | 17
5421 | ],
5422 | "flag-xk": [
5423 | 36,
5424 | 18
5425 | ],
5426 | "flag-ye": [
5427 | 36,
5428 | 19
5429 | ],
5430 | "flag-yt": [
5431 | 36,
5432 | 20
5433 | ],
5434 | "flag-za": [
5435 | 36,
5436 | 21
5437 | ],
5438 | "flag-zm": [
5439 | 36,
5440 | 22
5441 | ],
5442 | "flag-zw": [
5443 | 36,
5444 | 23
5445 | ],
5446 | "male-farmer": [
5447 | 36,
5448 | 24
5449 | ],
5450 | "male-cook": [
5451 | 36,
5452 | 30
5453 | ],
5454 | "male-student": [
5455 | 36,
5456 | 36
5457 | ],
5458 | "male-singer": [
5459 | 36,
5460 | 42
5461 | ],
5462 | "male-artist": [
5463 | 36,
5464 | 48
5465 | ],
5466 | "male-teacher": [
5467 | 37,
5468 | 5
5469 | ],
5470 | "male-factory-worker": [
5471 | 37,
5472 | 11
5473 | ],
5474 | "man-boy": [
5475 | 37,
5476 | 17
5477 | ],
5478 | "man-girl": [
5479 | 37,
5480 | 18
5481 | ],
5482 | "male-technologist": [
5483 | 37,
5484 | 19
5485 | ],
5486 | "male-office-worker": [
5487 | 37,
5488 | 25
5489 | ],
5490 | "male-mechanic": [
5491 | 37,
5492 | 31
5493 | ],
5494 | "male-scientist": [
5495 | 37,
5496 | 37
5497 | ],
5498 | "male-astronaut": [
5499 | 37,
5500 | 43
5501 | ],
5502 | "male-firefighter": [
5503 | 38,
5504 | 0
5505 | ],
5506 | "female-farmer": [
5507 | 38,
5508 | 6
5509 | ],
5510 | "female-cook": [
5511 | 38,
5512 | 12
5513 | ],
5514 | "female-student": [
5515 | 38,
5516 | 18
5517 | ],
5518 | "female-singer": [
5519 | 38,
5520 | 24
5521 | ],
5522 | "female-artist": [
5523 | 38,
5524 | 30
5525 | ],
5526 | "female-teacher": [
5527 | 38,
5528 | 36
5529 | ],
5530 | "female-factory-worker": [
5531 | 38,
5532 | 42
5533 | ],
5534 | "woman-boy": [
5535 | 38,
5536 | 48
5537 | ],
5538 | "woman-girl": [
5539 | 39,
5540 | 0
5541 | ],
5542 | "female-technologist": [
5543 | 39,
5544 | 1
5545 | ],
5546 | "female-office-worker": [
5547 | 39,
5548 | 7
5549 | ],
5550 | "female-mechanic": [
5551 | 39,
5552 | 13
5553 | ],
5554 | "female-scientist": [
5555 | 39,
5556 | 19
5557 | ],
5558 | "female-astronaut": [
5559 | 39,
5560 | 25
5561 | ],
5562 | "female-firefighter": [
5563 | 39,
5564 | 31
5565 | ],
5566 | "woman-running": [
5567 | 39,
5568 | 37
5569 | ],
5570 | "man-running": [
5571 | 39,
5572 | 43
5573 | ],
5574 | "woman-surfing": [
5575 | 40,
5576 | 0
5577 | ],
5578 | "man-surfing": [
5579 | 40,
5580 | 6
5581 | ],
5582 | "woman-swimming": [
5583 | 40,
5584 | 12
5585 | ],
5586 | "man-swimming": [
5587 | 40,
5588 | 18
5589 | ],
5590 | "woman-lifting-weights": [
5591 | 40,
5592 | 24
5593 | ],
5594 | "man-lifting-weights": [
5595 | 40,
5596 | 30
5597 | ],
5598 | "woman-golfing": [
5599 | 40,
5600 | 36
5601 | ],
5602 | "man-golfing": [
5603 | 40,
5604 | 42
5605 | ],
5606 | "rainbow-flag": [
5607 | 40,
5608 | 48
5609 | ],
5610 | "eye-in-speech-bubble": [
5611 | 41,
5612 | 0
5613 | ],
5614 | "man-boy-boy": [
5615 | 41,
5616 | 1
5617 | ],
5618 | "man-girl-boy": [
5619 | 41,
5620 | 2
5621 | ],
5622 | "man-girl-girl": [
5623 | 41,
5624 | 3
5625 | ],
5626 | "man-man-boy": [
5627 | 41,
5628 | 4
5629 | ],
5630 | "man-man-boy-boy": [
5631 | 41,
5632 | 5
5633 | ],
5634 | "man-man-girl": [
5635 | 41,
5636 | 6
5637 | ],
5638 | "man-man-girl-boy": [
5639 | 41,
5640 | 7
5641 | ],
5642 | "man-man-girl-girl": [
5643 | 41,
5644 | 8
5645 | ],
5646 | "man-woman-boy": [
5647 | 41,
5648 | 9
5649 | ],
5650 | "man-woman-boy-boy": [
5651 | 41,
5652 | 10
5653 | ],
5654 | "man-woman-girl": [
5655 | 41,
5656 | 11
5657 | ],
5658 | "man-woman-girl-boy": [
5659 | 41,
5660 | 12
5661 | ],
5662 | "man-woman-girl-girl": [
5663 | 41,
5664 | 13
5665 | ],
5666 | "male-doctor": [
5667 | 41,
5668 | 14
5669 | ],
5670 | "male-judge": [
5671 | 41,
5672 | 20
5673 | ],
5674 | "male-pilot": [
5675 | 41,
5676 | 26
5677 | ],
5678 | "man-heart-man": [
5679 | 41,
5680 | 32
5681 | ],
5682 | "man-kiss-man": [
5683 | 41,
5684 | 33
5685 | ],
5686 | "woman-boy-boy": [
5687 | 41,
5688 | 34
5689 | ],
5690 | "woman-girl-boy": [
5691 | 41,
5692 | 35
5693 | ],
5694 | "woman-girl-girl": [
5695 | 41,
5696 | 36
5697 | ],
5698 | "woman-woman-boy": [
5699 | 41,
5700 | 37
5701 | ],
5702 | "woman-woman-boy-boy": [
5703 | 41,
5704 | 38
5705 | ],
5706 | "woman-woman-girl": [
5707 | 41,
5708 | 39
5709 | ],
5710 | "woman-woman-girl-boy": [
5711 | 41,
5712 | 40
5713 | ],
5714 | "woman-woman-girl-girl": [
5715 | 41,
5716 | 41
5717 | ],
5718 | "female-doctor": [
5719 | 41,
5720 | 42
5721 | ],
5722 | "female-judge": [
5723 | 41,
5724 | 48
5725 | ],
5726 | "female-pilot": [
5727 | 42,
5728 | 5
5729 | ],
5730 | "woman-heart-man": [
5731 | 42,
5732 | 11
5733 | ],
5734 | "woman-heart-woman": [
5735 | 42,
5736 | 12
5737 | ],
5738 | "woman-kiss-man": [
5739 | 42,
5740 | 13
5741 | ],
5742 | "woman-kiss-woman": [
5743 | 42,
5744 | 14
5745 | ],
5746 | "female-police-officer": [
5747 | 42,
5748 | 15
5749 | ],
5750 | "male-police-officer": [
5751 | 42,
5752 | 21
5753 | ],
5754 | "woman-with-bunny-ears-partying": [
5755 | 42,
5756 | 27
5757 | ],
5758 | "man-with-bunny-ears-partying": [
5759 | 42,
5760 | 28
5761 | ],
5762 | "blond-haired-woman": [
5763 | 42,
5764 | 29
5765 | ],
5766 | "blond-haired-man": [
5767 | 42,
5768 | 35
5769 | ],
5770 | "woman-wearing-turban": [
5771 | 42,
5772 | 41
5773 | ],
5774 | "man-wearing-turban": [
5775 | 42,
5776 | 47
5777 | ],
5778 | "female-construction-worker": [
5779 | 43,
5780 | 4
5781 | ],
5782 | "male-construction-worker": [
5783 | 43,
5784 | 10
5785 | ],
5786 | "woman-tipping-hand": [
5787 | 43,
5788 | 16
5789 | ],
5790 | "man-tipping-hand": [
5791 | 43,
5792 | 22
5793 | ],
5794 | "female-guard": [
5795 | 43,
5796 | 28
5797 | ],
5798 | "male-guard": [
5799 | 43,
5800 | 34
5801 | ],
5802 | "woman-getting-massage": [
5803 | 43,
5804 | 40
5805 | ],
5806 | "man-getting-massage": [
5807 | 43,
5808 | 46
5809 | ],
5810 | "woman-getting-haircut": [
5811 | 44,
5812 | 3
5813 | ],
5814 | "man-getting-haircut": [
5815 | 44,
5816 | 9
5817 | ],
5818 | "female-detective": [
5819 | 44,
5820 | 15
5821 | ],
5822 | "male-detective": [
5823 | 44,
5824 | 21
5825 | ],
5826 | "woman-gesturing-no": [
5827 | 44,
5828 | 27
5829 | ],
5830 | "man-gesturing-no": [
5831 | 44,
5832 | 33
5833 | ],
5834 | "woman-gesturing-ok": [
5835 | 44,
5836 | 39
5837 | ],
5838 | "man-gesturing-ok": [
5839 | 44,
5840 | 45
5841 | ],
5842 | "woman-bowing": [
5843 | 45,
5844 | 2
5845 | ],
5846 | "man-bowing": [
5847 | 45,
5848 | 8
5849 | ],
5850 | "woman-raising-hand": [
5851 | 45,
5852 | 14
5853 | ],
5854 | "man-raising-hand": [
5855 | 45,
5856 | 20
5857 | ],
5858 | "woman-frowning": [
5859 | 45,
5860 | 26
5861 | ],
5862 | "man-frowning": [
5863 | 45,
5864 | 32
5865 | ],
5866 | "woman-pouting": [
5867 | 45,
5868 | 38
5869 | ],
5870 | "man-pouting": [
5871 | 45,
5872 | 44
5873 | ],
5874 | "woman-rowing-boat": [
5875 | 46,
5876 | 1
5877 | ],
5878 | "man-rowing-boat": [
5879 | 46,
5880 | 7
5881 | ],
5882 | "woman-biking": [
5883 | 46,
5884 | 13
5885 | ],
5886 | "man-biking": [
5887 | 46,
5888 | 19
5889 | ],
5890 | "woman-mountain-biking": [
5891 | 46,
5892 | 25
5893 | ],
5894 | "man-mountain-biking": [
5895 | 46,
5896 | 31
5897 | ],
5898 | "woman-walking": [
5899 | 46,
5900 | 37
5901 | ],
5902 | "man-walking": [
5903 | 46,
5904 | 43
5905 | ],
5906 | "woman-facepalming": [
5907 | 47,
5908 | 0
5909 | ],
5910 | "man-facepalming": [
5911 | 47,
5912 | 6
5913 | ],
5914 | "woman-shrugging": [
5915 | 47,
5916 | 12
5917 | ],
5918 | "man-shrugging": [
5919 | 47,
5920 | 18
5921 | ],
5922 | "woman-cartwheeling": [
5923 | 47,
5924 | 24
5925 | ],
5926 | "man-cartwheeling": [
5927 | 47,
5928 | 30
5929 | ],
5930 | "woman-juggling": [
5931 | 47,
5932 | 36
5933 | ],
5934 | "man-juggling": [
5935 | 47,
5936 | 42
5937 | ],
5938 | "woman-wrestling": [
5939 | 47,
5940 | 48
5941 | ],
5942 | "man-wrestling": [
5943 | 48,
5944 | 0
5945 | ],
5946 | "woman-playing-water-polo": [
5947 | 48,
5948 | 1
5949 | ],
5950 | "man-playing-water-polo": [
5951 | 48,
5952 | 7
5953 | ],
5954 | "woman-playing-handball": [
5955 | 48,
5956 | 13
5957 | ],
5958 | "man-playing-handball": [
5959 | 48,
5960 | 19
5961 | ],
5962 | "woman-bouncing-ball": [
5963 | 48,
5964 | 25
5965 | ],
5966 | "man-bouncing-ball": [
5967 | 48,
5968 | 31
5969 | ]
5970 | };
5971 |
--------------------------------------------------------------------------------