[DRE-commits] [ruby-gemoji] 01/02: Imported Upstream version 2.1.0

Youhei SASAKI uwabami-guest at moszumanska.debian.org
Sat Jan 17 16:02:16 UTC 2015


This is an automated email from the git hooks/post-receive script.

uwabami-guest pushed a commit to branch master
in repository ruby-gemoji.

commit d4c17db6c46084dec7879dd55a208b7559fbf7f3
Author: Youhei SASAKI <uwabami at gfd-dennou.org>
Date:   Sun Jan 18 00:16:51 2015 +0900

    Imported Upstream version 2.1.0
---
 .gitignore                           |    2 +
 .travis.yml                          |    6 +
 CONTRIBUTING.md                      |   49 +
 Gemfile                              |    6 +
 Gemfile.lock                         |   18 +
 LICENSE                              |   39 +
 README.md                            |  123 +
 Rakefile                             |   29 +
 db/Category-Emoji.json               |   47 +
 db/aliases.applescript               |   13 +
 db/aliases.html                      |   81 +
 db/dump.rb                           |   74 +
 db/emoji.json                        | 8242 ++++++++++++++++++++++++++++++++++
 db/index.html                        |  113 +
 gemoji.gemspec                       |   21 +
 images/emoji/bowtie.png              |  Bin 0 -> 6478 bytes
 images/emoji/feelsgood.png           |  Bin 0 -> 1163 bytes
 images/emoji/finnadie.png            |  Bin 0 -> 1208 bytes
 images/emoji/fu.png                  |  Bin 0 -> 4687 bytes
 images/emoji/goberserk.png           |  Bin 0 -> 1334 bytes
 images/emoji/godmode.png             |  Bin 0 -> 1042 bytes
 images/emoji/hurtrealbad.png         |  Bin 0 -> 1456 bytes
 images/emoji/metal.png               |  Bin 0 -> 3098 bytes
 images/emoji/neckbeard.png           |  Bin 0 -> 6421 bytes
 images/emoji/octocat.png             |  Bin 0 -> 4391 bytes
 images/emoji/rage1.png               |  Bin 0 -> 1087 bytes
 images/emoji/rage2.png               |  Bin 0 -> 1098 bytes
 images/emoji/rage3.png               |  Bin 0 -> 1119 bytes
 images/emoji/rage4.png               |  Bin 0 -> 1270 bytes
 images/emoji/shipit.png              |  Bin 0 -> 9351 bytes
 images/emoji/suspect.png             |  Bin 0 -> 1016 bytes
 images/emoji/trollface.png           |  Bin 0 -> 2953 bytes
 images/emoji/unicode/0023-20e3.png   |  Bin 0 -> 3742 bytes
 images/emoji/unicode/0030-20e3.png   |  Bin 0 -> 3611 bytes
 images/emoji/unicode/0031-20e3.png   |  Bin 0 -> 2825 bytes
 images/emoji/unicode/0032-20e3.png   |  Bin 0 -> 3518 bytes
 images/emoji/unicode/0033-20e3.png   |  Bin 0 -> 3758 bytes
 images/emoji/unicode/0034-20e3.png   |  Bin 0 -> 3176 bytes
 images/emoji/unicode/0035-20e3.png   |  Bin 0 -> 3593 bytes
 images/emoji/unicode/0036-20e3.png   |  Bin 0 -> 3791 bytes
 images/emoji/unicode/0037-20e3.png   |  Bin 0 -> 3055 bytes
 images/emoji/unicode/0038-20e3.png   |  Bin 0 -> 3844 bytes
 images/emoji/unicode/0039-20e3.png   |  Bin 0 -> 3776 bytes
 images/emoji/unicode/00a9.png        |  Bin 0 -> 1600 bytes
 images/emoji/unicode/00ae.png        |  Bin 0 -> 1634 bytes
 images/emoji/unicode/1f004.png       |  Bin 0 -> 3309 bytes
 images/emoji/unicode/1f0cf.png       |  Bin 0 -> 3877 bytes
 images/emoji/unicode/1f170.png       |  Bin 0 -> 3175 bytes
 images/emoji/unicode/1f171.png       |  Bin 0 -> 3025 bytes
 images/emoji/unicode/1f17e.png       |  Bin 0 -> 3498 bytes
 images/emoji/unicode/1f17f.png       |  Bin 0 -> 3083 bytes
 images/emoji/unicode/1f18e.png       |  Bin 0 -> 3859 bytes
 images/emoji/unicode/1f191.png       |  Bin 0 -> 3493 bytes
 images/emoji/unicode/1f192.png       |  Bin 0 -> 4182 bytes
 images/emoji/unicode/1f193.png       |  Bin 0 -> 3605 bytes
 images/emoji/unicode/1f194.png       |  Bin 0 -> 3905 bytes
 images/emoji/unicode/1f195.png       |  Bin 0 -> 3927 bytes
 images/emoji/unicode/1f196.png       |  Bin 0 -> 4201 bytes
 images/emoji/unicode/1f197.png       |  Bin 0 -> 4158 bytes
 images/emoji/unicode/1f198.png       |  Bin 0 -> 4262 bytes
 images/emoji/unicode/1f199.png       |  Bin 0 -> 3721 bytes
 images/emoji/unicode/1f19a.png       |  Bin 0 -> 3424 bytes
 images/emoji/unicode/1f1e8-1f1f3.png |  Bin 0 -> 3634 bytes
 images/emoji/unicode/1f1e9-1f1ea.png |  Bin 0 -> 2640 bytes
 images/emoji/unicode/1f1ea-1f1f8.png |  Bin 0 -> 4302 bytes
 images/emoji/unicode/1f1eb-1f1f7.png |  Bin 0 -> 3398 bytes
 images/emoji/unicode/1f1ec-1f1e7.png |  Bin 0 -> 5894 bytes
 images/emoji/unicode/1f1ee-1f1f9.png |  Bin 0 -> 3495 bytes
 images/emoji/unicode/1f1ef-1f1f5.png |  Bin 0 -> 2827 bytes
 images/emoji/unicode/1f1f0-1f1f7.png |  Bin 0 -> 5105 bytes
 images/emoji/unicode/1f1f7-1f1fa.png |  Bin 0 -> 3920 bytes
 images/emoji/unicode/1f1fa-1f1f8.png |  Bin 0 -> 6285 bytes
 images/emoji/unicode/1f201.png       |  Bin 0 -> 2854 bytes
 images/emoji/unicode/1f202.png       |  Bin 0 -> 3556 bytes
 images/emoji/unicode/1f21a.png       |  Bin 0 -> 3942 bytes
 images/emoji/unicode/1f22f.png       |  Bin 0 -> 4103 bytes
 images/emoji/unicode/1f232.png       |  Bin 0 -> 5175 bytes
 images/emoji/unicode/1f233.png       |  Bin 0 -> 4180 bytes
 images/emoji/unicode/1f234.png       |  Bin 0 -> 3890 bytes
 images/emoji/unicode/1f235.png       |  Bin 0 -> 4419 bytes
 images/emoji/unicode/1f236.png       |  Bin 0 -> 3198 bytes
 images/emoji/unicode/1f237.png       |  Bin 0 -> 3011 bytes
 images/emoji/unicode/1f238.png       |  Bin 0 -> 3048 bytes
 images/emoji/unicode/1f239.png       |  Bin 0 -> 4533 bytes
 images/emoji/unicode/1f23a.png       |  Bin 0 -> 3411 bytes
 images/emoji/unicode/1f250.png       |  Bin 0 -> 3095 bytes
 images/emoji/unicode/1f251.png       |  Bin 0 -> 4729 bytes
 images/emoji/unicode/1f300.png       |  Bin 0 -> 4986 bytes
 images/emoji/unicode/1f301.png       |  Bin 0 -> 4623 bytes
 images/emoji/unicode/1f302.png       |  Bin 0 -> 3964 bytes
 images/emoji/unicode/1f303.png       |  Bin 0 -> 4963 bytes
 images/emoji/unicode/1f304.png       |  Bin 0 -> 6594 bytes
 images/emoji/unicode/1f305.png       |  Bin 0 -> 3914 bytes
 images/emoji/unicode/1f306.png       |  Bin 0 -> 3841 bytes
 images/emoji/unicode/1f307.png       |  Bin 0 -> 4312 bytes
 images/emoji/unicode/1f308.png       |  Bin 0 -> 5314 bytes
 images/emoji/unicode/1f309.png       |  Bin 0 -> 5137 bytes
 images/emoji/unicode/1f30a.png       |  Bin 0 -> 5777 bytes
 images/emoji/unicode/1f30b.png       |  Bin 0 -> 6167 bytes
 images/emoji/unicode/1f30c.png       |  Bin 0 -> 5878 bytes
 images/emoji/unicode/1f30d.png       |  Bin 0 -> 7164 bytes
 images/emoji/unicode/1f30e.png       |  Bin 0 -> 7039 bytes
 images/emoji/unicode/1f30f.png       |  Bin 0 -> 7303 bytes
 images/emoji/unicode/1f310.png       |  Bin 0 -> 5837 bytes
 images/emoji/unicode/1f311.png       |  Bin 0 -> 5371 bytes
 images/emoji/unicode/1f312.png       |  Bin 0 -> 6198 bytes
 images/emoji/unicode/1f313.png       |  Bin 0 -> 5967 bytes
 images/emoji/unicode/1f314.png       |  Bin 0 -> 6455 bytes
 images/emoji/unicode/1f315.png       |  Bin 0 -> 6458 bytes
 images/emoji/unicode/1f316.png       |  Bin 0 -> 6510 bytes
 images/emoji/unicode/1f317.png       |  Bin 0 -> 6176 bytes
 images/emoji/unicode/1f318.png       |  Bin 0 -> 5885 bytes
 images/emoji/unicode/1f319.png       |  Bin 0 -> 3541 bytes
 images/emoji/unicode/1f31a.png       |  Bin 0 -> 6750 bytes
 images/emoji/unicode/1f31b.png       |  Bin 0 -> 4280 bytes
 images/emoji/unicode/1f31c.png       |  Bin 0 -> 4328 bytes
 images/emoji/unicode/1f31d.png       |  Bin 0 -> 7224 bytes
 images/emoji/unicode/1f31e.png       |  Bin 0 -> 7958 bytes
 images/emoji/unicode/1f31f.png       |  Bin 0 -> 4068 bytes
 images/emoji/unicode/1f320.png       |  Bin 0 -> 4366 bytes
 images/emoji/unicode/1f330.png       |  Bin 0 -> 5875 bytes
 images/emoji/unicode/1f331.png       |  Bin 0 -> 2260 bytes
 images/emoji/unicode/1f332.png       |  Bin 0 -> 4924 bytes
 images/emoji/unicode/1f333.png       |  Bin 0 -> 7374 bytes
 images/emoji/unicode/1f334.png       |  Bin 0 -> 3664 bytes
 images/emoji/unicode/1f335.png       |  Bin 0 -> 4509 bytes
 images/emoji/unicode/1f337.png       |  Bin 0 -> 6065 bytes
 images/emoji/unicode/1f338.png       |  Bin 0 -> 7174 bytes
 images/emoji/unicode/1f339.png       |  Bin 0 -> 4202 bytes
 images/emoji/unicode/1f33a.png       |  Bin 0 -> 8352 bytes
 images/emoji/unicode/1f33b.png       |  Bin 0 -> 6567 bytes
 images/emoji/unicode/1f33c.png       |  Bin 0 -> 4232 bytes
 images/emoji/unicode/1f33d.png       |  Bin 0 -> 6694 bytes
 images/emoji/unicode/1f33e.png       |  Bin 0 -> 4758 bytes
 images/emoji/unicode/1f33f.png       |  Bin 0 -> 5889 bytes
 images/emoji/unicode/1f340.png       |  Bin 0 -> 5995 bytes
 images/emoji/unicode/1f341.png       |  Bin 0 -> 4450 bytes
 images/emoji/unicode/1f342.png       |  Bin 0 -> 4890 bytes
 images/emoji/unicode/1f343.png       |  Bin 0 -> 5649 bytes
 images/emoji/unicode/1f344.png       |  Bin 0 -> 4887 bytes
 images/emoji/unicode/1f345.png       |  Bin 0 -> 5748 bytes
 images/emoji/unicode/1f346.png       |  Bin 0 -> 4800 bytes
 images/emoji/unicode/1f347.png       |  Bin 0 -> 5423 bytes
 images/emoji/unicode/1f348.png       |  Bin 0 -> 8233 bytes
 images/emoji/unicode/1f349.png       |  Bin 0 -> 5501 bytes
 images/emoji/unicode/1f34a.png       |  Bin 0 -> 6645 bytes
 images/emoji/unicode/1f34b.png       |  Bin 0 -> 6055 bytes
 images/emoji/unicode/1f34c.png       |  Bin 0 -> 3915 bytes
 images/emoji/unicode/1f34d.png       |  Bin 0 -> 5634 bytes
 images/emoji/unicode/1f34e.png       |  Bin 0 -> 5630 bytes
 images/emoji/unicode/1f34f.png       |  Bin 0 -> 6205 bytes
 images/emoji/unicode/1f350.png       |  Bin 0 -> 6936 bytes
 images/emoji/unicode/1f351.png       |  Bin 0 -> 5920 bytes
 images/emoji/unicode/1f352.png       |  Bin 0 -> 5604 bytes
 images/emoji/unicode/1f353.png       |  Bin 0 -> 5477 bytes
 images/emoji/unicode/1f354.png       |  Bin 0 -> 5706 bytes
 images/emoji/unicode/1f355.png       |  Bin 0 -> 5273 bytes
 images/emoji/unicode/1f356.png       |  Bin 0 -> 5534 bytes
 images/emoji/unicode/1f357.png       |  Bin 0 -> 4200 bytes
 images/emoji/unicode/1f358.png       |  Bin 0 -> 7787 bytes
 images/emoji/unicode/1f359.png       |  Bin 0 -> 5408 bytes
 images/emoji/unicode/1f35a.png       |  Bin 0 -> 4743 bytes
 images/emoji/unicode/1f35b.png       |  Bin 0 -> 5336 bytes
 images/emoji/unicode/1f35c.png       |  Bin 0 -> 6574 bytes
 images/emoji/unicode/1f35d.png       |  Bin 0 -> 6955 bytes
 images/emoji/unicode/1f35e.png       |  Bin 0 -> 6214 bytes
 images/emoji/unicode/1f35f.png       |  Bin 0 -> 6405 bytes
 images/emoji/unicode/1f360.png       |  Bin 0 -> 5684 bytes
 images/emoji/unicode/1f361.png       |  Bin 0 -> 4449 bytes
 images/emoji/unicode/1f362.png       |  Bin 0 -> 5543 bytes
 images/emoji/unicode/1f363.png       |  Bin 0 -> 5257 bytes
 images/emoji/unicode/1f364.png       |  Bin 0 -> 7550 bytes
 images/emoji/unicode/1f365.png       |  Bin 0 -> 5818 bytes
 images/emoji/unicode/1f366.png       |  Bin 0 -> 4603 bytes
 images/emoji/unicode/1f367.png       |  Bin 0 -> 5908 bytes
 images/emoji/unicode/1f368.png       |  Bin 0 -> 5469 bytes
 images/emoji/unicode/1f369.png       |  Bin 0 -> 5209 bytes
 images/emoji/unicode/1f36a.png       |  Bin 0 -> 8149 bytes
 images/emoji/unicode/1f36b.png       |  Bin 0 -> 5249 bytes
 images/emoji/unicode/1f36c.png       |  Bin 0 -> 4502 bytes
 images/emoji/unicode/1f36d.png       |  Bin 0 -> 5771 bytes
 images/emoji/unicode/1f36e.png       |  Bin 0 -> 5810 bytes
 images/emoji/unicode/1f36f.png       |  Bin 0 -> 5830 bytes
 images/emoji/unicode/1f370.png       |  Bin 0 -> 6129 bytes
 images/emoji/unicode/1f371.png       |  Bin 0 -> 5732 bytes
 images/emoji/unicode/1f372.png       |  Bin 0 -> 5612 bytes
 images/emoji/unicode/1f373.png       |  Bin 0 -> 5211 bytes
 images/emoji/unicode/1f374.png       |  Bin 0 -> 3608 bytes
 images/emoji/unicode/1f375.png       |  Bin 0 -> 5954 bytes
 images/emoji/unicode/1f376.png       |  Bin 0 -> 5073 bytes
 images/emoji/unicode/1f377.png       |  Bin 0 -> 3151 bytes
 images/emoji/unicode/1f378.png       |  Bin 0 -> 2949 bytes
 images/emoji/unicode/1f379.png       |  Bin 0 -> 4189 bytes
 images/emoji/unicode/1f37a.png       |  Bin 0 -> 6097 bytes
 images/emoji/unicode/1f37b.png       |  Bin 0 -> 6591 bytes
 images/emoji/unicode/1f37c.png       |  Bin 0 -> 4461 bytes
 images/emoji/unicode/1f380.png       |  Bin 0 -> 5581 bytes
 images/emoji/unicode/1f381.png       |  Bin 0 -> 6712 bytes
 images/emoji/unicode/1f382.png       |  Bin 0 -> 5404 bytes
 images/emoji/unicode/1f383.png       |  Bin 0 -> 5633 bytes
 images/emoji/unicode/1f384.png       |  Bin 0 -> 4721 bytes
 images/emoji/unicode/1f385.png       |  Bin 0 -> 6271 bytes
 images/emoji/unicode/1f386.png       |  Bin 0 -> 6269 bytes
 images/emoji/unicode/1f387.png       |  Bin 0 -> 5696 bytes
 images/emoji/unicode/1f388.png       |  Bin 0 -> 2417 bytes
 images/emoji/unicode/1f389.png       |  Bin 0 -> 5945 bytes
 images/emoji/unicode/1f38a.png       |  Bin 0 -> 5521 bytes
 images/emoji/unicode/1f38b.png       |  Bin 0 -> 4409 bytes
 images/emoji/unicode/1f38c.png       |  Bin 0 -> 4036 bytes
 images/emoji/unicode/1f38d.png       |  Bin 0 -> 4672 bytes
 images/emoji/unicode/1f38e.png       |  Bin 0 -> 7138 bytes
 images/emoji/unicode/1f38f.png       |  Bin 0 -> 6124 bytes
 images/emoji/unicode/1f390.png       |  Bin 0 -> 3487 bytes
 images/emoji/unicode/1f391.png       |  Bin 0 -> 6261 bytes
 images/emoji/unicode/1f392.png       |  Bin 0 -> 5741 bytes
 images/emoji/unicode/1f393.png       |  Bin 0 -> 4165 bytes
 images/emoji/unicode/1f3a0.png       |  Bin 0 -> 5893 bytes
 images/emoji/unicode/1f3a1.png       |  Bin 0 -> 6213 bytes
 images/emoji/unicode/1f3a2.png       |  Bin 0 -> 5148 bytes
 images/emoji/unicode/1f3a3.png       |  Bin 0 -> 4470 bytes
 images/emoji/unicode/1f3a4.png       |  Bin 0 -> 3741 bytes
 images/emoji/unicode/1f3a5.png       |  Bin 0 -> 4081 bytes
 images/emoji/unicode/1f3a6.png       |  Bin 0 -> 3573 bytes
 images/emoji/unicode/1f3a7.png       |  Bin 0 -> 1910 bytes
 images/emoji/unicode/1f3a8.png       |  Bin 0 -> 6744 bytes
 images/emoji/unicode/1f3a9.png       |  Bin 0 -> 3009 bytes
 images/emoji/unicode/1f3aa.png       |  Bin 0 -> 4683 bytes
 images/emoji/unicode/1f3ab.png       |  Bin 0 -> 3091 bytes
 images/emoji/unicode/1f3ac.png       |  Bin 0 -> 4192 bytes
 images/emoji/unicode/1f3ad.png       |  Bin 0 -> 6287 bytes
 images/emoji/unicode/1f3ae.png       |  Bin 0 -> 4957 bytes
 images/emoji/unicode/1f3af.png       |  Bin 0 -> 5462 bytes
 images/emoji/unicode/1f3b0.png       |  Bin 0 -> 4605 bytes
 images/emoji/unicode/1f3b1.png       |  Bin 0 -> 4141 bytes
 images/emoji/unicode/1f3b2.png       |  Bin 0 -> 2957 bytes
 images/emoji/unicode/1f3b3.png       |  Bin 0 -> 4184 bytes
 images/emoji/unicode/1f3b4.png       |  Bin 0 -> 3434 bytes
 images/emoji/unicode/1f3b5.png       |  Bin 0 -> 3188 bytes
 images/emoji/unicode/1f3b6.png       |  Bin 0 -> 1614 bytes
 images/emoji/unicode/1f3b7.png       |  Bin 0 -> 4252 bytes
 images/emoji/unicode/1f3b8.png       |  Bin 0 -> 4382 bytes
 images/emoji/unicode/1f3b9.png       |  Bin 0 -> 1944 bytes
 images/emoji/unicode/1f3ba.png       |  Bin 0 -> 4453 bytes
 images/emoji/unicode/1f3bb.png       |  Bin 0 -> 5020 bytes
 images/emoji/unicode/1f3bc.png       |  Bin 0 -> 1576 bytes
 images/emoji/unicode/1f3bd.png       |  Bin 0 -> 5701 bytes
 images/emoji/unicode/1f3be.png       |  Bin 0 -> 5976 bytes
 images/emoji/unicode/1f3bf.png       |  Bin 0 -> 4247 bytes
 images/emoji/unicode/1f3c0.png       |  Bin 0 -> 6386 bytes
 images/emoji/unicode/1f3c1.png       |  Bin 0 -> 1675 bytes
 images/emoji/unicode/1f3c2.png       |  Bin 0 -> 5356 bytes
 images/emoji/unicode/1f3c3.png       |  Bin 0 -> 3214 bytes
 images/emoji/unicode/1f3c4.png       |  Bin 0 -> 6259 bytes
 images/emoji/unicode/1f3c6.png       |  Bin 0 -> 5520 bytes
 images/emoji/unicode/1f3c7.png       |  Bin 0 -> 5905 bytes
 images/emoji/unicode/1f3c8.png       |  Bin 0 -> 6712 bytes
 images/emoji/unicode/1f3c9.png       |  Bin 0 -> 7781 bytes
 images/emoji/unicode/1f3ca.png       |  Bin 0 -> 4378 bytes
 images/emoji/unicode/1f3e0.png       |  Bin 0 -> 3510 bytes
 images/emoji/unicode/1f3e1.png       |  Bin 0 -> 8536 bytes
 images/emoji/unicode/1f3e2.png       |  Bin 0 -> 5171 bytes
 images/emoji/unicode/1f3e3.png       |  Bin 0 -> 5136 bytes
 images/emoji/unicode/1f3e4.png       |  Bin 0 -> 4816 bytes
 images/emoji/unicode/1f3e5.png       |  Bin 0 -> 4887 bytes
 images/emoji/unicode/1f3e6.png       |  Bin 0 -> 5583 bytes
 images/emoji/unicode/1f3e7.png       |  Bin 0 -> 4072 bytes
 images/emoji/unicode/1f3e8.png       |  Bin 0 -> 5123 bytes
 images/emoji/unicode/1f3e9.png       |  Bin 0 -> 5941 bytes
 images/emoji/unicode/1f3ea.png       |  Bin 0 -> 4073 bytes
 images/emoji/unicode/1f3eb.png       |  Bin 0 -> 5446 bytes
 images/emoji/unicode/1f3ec.png       |  Bin 0 -> 5159 bytes
 images/emoji/unicode/1f3ed.png       |  Bin 0 -> 5558 bytes
 images/emoji/unicode/1f3ee.png       |  Bin 0 -> 4064 bytes
 images/emoji/unicode/1f3ef.png       |  Bin 0 -> 4939 bytes
 images/emoji/unicode/1f3f0.png       |  Bin 0 -> 5427 bytes
 images/emoji/unicode/1f400.png       |  Bin 0 -> 5441 bytes
 images/emoji/unicode/1f401.png       |  Bin 0 -> 4087 bytes
 images/emoji/unicode/1f402.png       |  Bin 0 -> 6079 bytes
 images/emoji/unicode/1f403.png       |  Bin 0 -> 4774 bytes
 images/emoji/unicode/1f404.png       |  Bin 0 -> 5303 bytes
 images/emoji/unicode/1f405.png       |  Bin 0 -> 5744 bytes
 images/emoji/unicode/1f406.png       |  Bin 0 -> 5384 bytes
 images/emoji/unicode/1f407.png       |  Bin 0 -> 4517 bytes
 images/emoji/unicode/1f408.png       |  Bin 0 -> 5723 bytes
 images/emoji/unicode/1f409.png       |  Bin 0 -> 7828 bytes
 images/emoji/unicode/1f40a.png       |  Bin 0 -> 6125 bytes
 images/emoji/unicode/1f40b.png       |  Bin 0 -> 6032 bytes
 images/emoji/unicode/1f40c.png       |  Bin 0 -> 6657 bytes
 images/emoji/unicode/1f40d.png       |  Bin 0 -> 4069 bytes
 images/emoji/unicode/1f40e.png       |  Bin 0 -> 4735 bytes
 images/emoji/unicode/1f40f.png       |  Bin 0 -> 6531 bytes
 images/emoji/unicode/1f410.png       |  Bin 0 -> 4889 bytes
 images/emoji/unicode/1f411.png       |  Bin 0 -> 4732 bytes
 images/emoji/unicode/1f412.png       |  Bin 0 -> 4973 bytes
 images/emoji/unicode/1f413.png       |  Bin 0 -> 6168 bytes
 images/emoji/unicode/1f414.png       |  Bin 0 -> 3988 bytes
 images/emoji/unicode/1f415.png       |  Bin 0 -> 5931 bytes
 images/emoji/unicode/1f416.png       |  Bin 0 -> 4797 bytes
 images/emoji/unicode/1f417.png       |  Bin 0 -> 4840 bytes
 images/emoji/unicode/1f418.png       |  Bin 0 -> 5086 bytes
 images/emoji/unicode/1f419.png       |  Bin 0 -> 5779 bytes
 images/emoji/unicode/1f41a.png       |  Bin 0 -> 5115 bytes
 images/emoji/unicode/1f41b.png       |  Bin 0 -> 5945 bytes
 images/emoji/unicode/1f41c.png       |  Bin 0 -> 2851 bytes
 images/emoji/unicode/1f41d.png       |  Bin 0 -> 5851 bytes
 images/emoji/unicode/1f41e.png       |  Bin 0 -> 5255 bytes
 images/emoji/unicode/1f41f.png       |  Bin 0 -> 4743 bytes
 images/emoji/unicode/1f420.png       |  Bin 0 -> 5846 bytes
 images/emoji/unicode/1f421.png       |  Bin 0 -> 3751 bytes
 images/emoji/unicode/1f422.png       |  Bin 0 -> 5336 bytes
 images/emoji/unicode/1f423.png       |  Bin 0 -> 5928 bytes
 images/emoji/unicode/1f424.png       |  Bin 0 -> 3961 bytes
 images/emoji/unicode/1f425.png       |  Bin 0 -> 5646 bytes
 images/emoji/unicode/1f426.png       |  Bin 0 -> 4878 bytes
 images/emoji/unicode/1f427.png       |  Bin 0 -> 4746 bytes
 images/emoji/unicode/1f428.png       |  Bin 0 -> 5687 bytes
 images/emoji/unicode/1f429.png       |  Bin 0 -> 6852 bytes
 images/emoji/unicode/1f42a.png       |  Bin 0 -> 5139 bytes
 images/emoji/unicode/1f42b.png       |  Bin 0 -> 4485 bytes
 images/emoji/unicode/1f42c.png       |  Bin 0 -> 4343 bytes
 images/emoji/unicode/1f42d.png       |  Bin 0 -> 6625 bytes
 images/emoji/unicode/1f42e.png       |  Bin 0 -> 5745 bytes
 images/emoji/unicode/1f42f.png       |  Bin 0 -> 6051 bytes
 images/emoji/unicode/1f430.png       |  Bin 0 -> 5677 bytes
 images/emoji/unicode/1f431.png       |  Bin 0 -> 5987 bytes
 images/emoji/unicode/1f432.png       |  Bin 0 -> 6737 bytes
 images/emoji/unicode/1f433.png       |  Bin 0 -> 4940 bytes
 images/emoji/unicode/1f434.png       |  Bin 0 -> 4582 bytes
 images/emoji/unicode/1f435.png       |  Bin 0 -> 5348 bytes
 images/emoji/unicode/1f436.png       |  Bin 0 -> 5945 bytes
 images/emoji/unicode/1f437.png       |  Bin 0 -> 5996 bytes
 images/emoji/unicode/1f438.png       |  Bin 0 -> 4823 bytes
 images/emoji/unicode/1f439.png       |  Bin 0 -> 7371 bytes
 images/emoji/unicode/1f43a.png       |  Bin 0 -> 4845 bytes
 images/emoji/unicode/1f43b.png       |  Bin 0 -> 5561 bytes
 images/emoji/unicode/1f43c.png       |  Bin 0 -> 4814 bytes
 images/emoji/unicode/1f43d.png       |  Bin 0 -> 4761 bytes
 images/emoji/unicode/1f43e.png       |  Bin 0 -> 2471 bytes
 images/emoji/unicode/1f440.png       |  Bin 0 -> 4398 bytes
 images/emoji/unicode/1f442.png       |  Bin 0 -> 4335 bytes
 images/emoji/unicode/1f443.png       |  Bin 0 -> 3703 bytes
 images/emoji/unicode/1f444.png       |  Bin 0 -> 3738 bytes
 images/emoji/unicode/1f445.png       |  Bin 0 -> 3662 bytes
 images/emoji/unicode/1f446.png       |  Bin 0 -> 3207 bytes
 images/emoji/unicode/1f447.png       |  Bin 0 -> 3225 bytes
 images/emoji/unicode/1f448.png       |  Bin 0 -> 3113 bytes
 images/emoji/unicode/1f449.png       |  Bin 0 -> 3122 bytes
 images/emoji/unicode/1f44a.png       |  Bin 0 -> 4873 bytes
 images/emoji/unicode/1f44b.png       |  Bin 0 -> 5048 bytes
 images/emoji/unicode/1f44c.png       |  Bin 0 -> 4696 bytes
 images/emoji/unicode/1f44d.png       |  Bin 0 -> 5135 bytes
 images/emoji/unicode/1f44e.png       |  Bin 0 -> 5129 bytes
 images/emoji/unicode/1f44f.png       |  Bin 0 -> 7110 bytes
 images/emoji/unicode/1f450.png       |  Bin 0 -> 4951 bytes
 images/emoji/unicode/1f451.png       |  Bin 0 -> 5655 bytes
 images/emoji/unicode/1f452.png       |  Bin 0 -> 8101 bytes
 images/emoji/unicode/1f453.png       |  Bin 0 -> 4929 bytes
 images/emoji/unicode/1f454.png       |  Bin 0 -> 6116 bytes
 images/emoji/unicode/1f455.png       |  Bin 0 -> 4676 bytes
 images/emoji/unicode/1f456.png       |  Bin 0 -> 3470 bytes
 images/emoji/unicode/1f457.png       |  Bin 0 -> 3631 bytes
 images/emoji/unicode/1f458.png       |  Bin 0 -> 4938 bytes
 images/emoji/unicode/1f459.png       |  Bin 0 -> 3890 bytes
 images/emoji/unicode/1f45a.png       |  Bin 0 -> 4075 bytes
 images/emoji/unicode/1f45b.png       |  Bin 0 -> 5033 bytes
 images/emoji/unicode/1f45c.png       |  Bin 0 -> 5449 bytes
 images/emoji/unicode/1f45d.png       |  Bin 0 -> 4691 bytes
 images/emoji/unicode/1f45e.png       |  Bin 0 -> 4749 bytes
 images/emoji/unicode/1f45f.png       |  Bin 0 -> 4799 bytes
 images/emoji/unicode/1f460.png       |  Bin 0 -> 4557 bytes
 images/emoji/unicode/1f461.png       |  Bin 0 -> 4061 bytes
 images/emoji/unicode/1f462.png       |  Bin 0 -> 3327 bytes
 images/emoji/unicode/1f463.png       |  Bin 0 -> 1604 bytes
 images/emoji/unicode/1f464.png       |  Bin 0 -> 2007 bytes
 images/emoji/unicode/1f465.png       |  Bin 0 -> 3021 bytes
 images/emoji/unicode/1f466.png       |  Bin 0 -> 5946 bytes
 images/emoji/unicode/1f467.png       |  Bin 0 -> 6314 bytes
 images/emoji/unicode/1f468.png       |  Bin 0 -> 6023 bytes
 images/emoji/unicode/1f469.png       |  Bin 0 -> 6895 bytes
 images/emoji/unicode/1f46a.png       |  Bin 0 -> 7211 bytes
 images/emoji/unicode/1f46b.png       |  Bin 0 -> 7615 bytes
 images/emoji/unicode/1f46c.png       |  Bin 0 -> 6994 bytes
 images/emoji/unicode/1f46d.png       |  Bin 0 -> 7633 bytes
 images/emoji/unicode/1f46e.png       |  Bin 0 -> 7141 bytes
 images/emoji/unicode/1f46f.png       |  Bin 0 -> 7918 bytes
 images/emoji/unicode/1f470.png       |  Bin 0 -> 8515 bytes
 images/emoji/unicode/1f471.png       |  Bin 0 -> 6622 bytes
 images/emoji/unicode/1f472.png       |  Bin 0 -> 5324 bytes
 images/emoji/unicode/1f473.png       |  Bin 0 -> 6528 bytes
 images/emoji/unicode/1f474.png       |  Bin 0 -> 6733 bytes
 images/emoji/unicode/1f475.png       |  Bin 0 -> 5977 bytes
 images/emoji/unicode/1f476.png       |  Bin 0 -> 5921 bytes
 images/emoji/unicode/1f477.png       |  Bin 0 -> 6193 bytes
 images/emoji/unicode/1f478.png       |  Bin 0 -> 7920 bytes
 images/emoji/unicode/1f479.png       |  Bin 0 -> 7147 bytes
 images/emoji/unicode/1f47a.png       |  Bin 0 -> 5159 bytes
 images/emoji/unicode/1f47b.png       |  Bin 0 -> 4513 bytes
 images/emoji/unicode/1f47c.png       |  Bin 0 -> 6672 bytes
 images/emoji/unicode/1f47d.png       |  Bin 0 -> 5478 bytes
 images/emoji/unicode/1f47e.png       |  Bin 0 -> 4353 bytes
 images/emoji/unicode/1f47f.png       |  Bin 0 -> 6652 bytes
 images/emoji/unicode/1f480.png       |  Bin 0 -> 2428 bytes
 images/emoji/unicode/1f481.png       |  Bin 0 -> 6605 bytes
 images/emoji/unicode/1f482.png       |  Bin 0 -> 3587 bytes
 images/emoji/unicode/1f483.png       |  Bin 0 -> 3737 bytes
 images/emoji/unicode/1f484.png       |  Bin 0 -> 3384 bytes
 images/emoji/unicode/1f485.png       |  Bin 0 -> 5814 bytes
 images/emoji/unicode/1f486.png       |  Bin 0 -> 6036 bytes
 images/emoji/unicode/1f487.png       |  Bin 0 -> 7100 bytes
 images/emoji/unicode/1f488.png       |  Bin 0 -> 4252 bytes
 images/emoji/unicode/1f489.png       |  Bin 0 -> 3078 bytes
 images/emoji/unicode/1f48a.png       |  Bin 0 -> 5022 bytes
 images/emoji/unicode/1f48b.png       |  Bin 0 -> 6295 bytes
 images/emoji/unicode/1f48c.png       |  Bin 0 -> 2467 bytes
 images/emoji/unicode/1f48d.png       |  Bin 0 -> 5232 bytes
 images/emoji/unicode/1f48e.png       |  Bin 0 -> 4855 bytes
 images/emoji/unicode/1f48f.png       |  Bin 0 -> 7219 bytes
 images/emoji/unicode/1f490.png       |  Bin 0 -> 6915 bytes
 images/emoji/unicode/1f491.png       |  Bin 0 -> 7370 bytes
 images/emoji/unicode/1f492.png       |  Bin 0 -> 5847 bytes
 images/emoji/unicode/1f493.png       |  Bin 0 -> 4052 bytes
 images/emoji/unicode/1f494.png       |  Bin 0 -> 4118 bytes
 images/emoji/unicode/1f495.png       |  Bin 0 -> 3565 bytes
 images/emoji/unicode/1f496.png       |  Bin 0 -> 8002 bytes
 images/emoji/unicode/1f497.png       |  Bin 0 -> 6269 bytes
 images/emoji/unicode/1f498.png       |  Bin 0 -> 5413 bytes
 images/emoji/unicode/1f499.png       |  Bin 0 -> 4094 bytes
 images/emoji/unicode/1f49a.png       |  Bin 0 -> 4432 bytes
 images/emoji/unicode/1f49b.png       |  Bin 0 -> 4414 bytes
 images/emoji/unicode/1f49c.png       |  Bin 0 -> 4295 bytes
 images/emoji/unicode/1f49d.png       |  Bin 0 -> 6013 bytes
 images/emoji/unicode/1f49e.png       |  Bin 0 -> 5472 bytes
 images/emoji/unicode/1f49f.png       |  Bin 0 -> 3534 bytes
 images/emoji/unicode/1f4a0.png       |  Bin 0 -> 5698 bytes
 images/emoji/unicode/1f4a1.png       |  Bin 0 -> 4490 bytes
 images/emoji/unicode/1f4a2.png       |  Bin 0 -> 3079 bytes
 images/emoji/unicode/1f4a3.png       |  Bin 0 -> 5208 bytes
 images/emoji/unicode/1f4a4.png       |  Bin 0 -> 2027 bytes
 images/emoji/unicode/1f4a5.png       |  Bin 0 -> 3781 bytes
 images/emoji/unicode/1f4a6.png       |  Bin 0 -> 4782 bytes
 images/emoji/unicode/1f4a7.png       |  Bin 0 -> 3278 bytes
 images/emoji/unicode/1f4a8.png       |  Bin 0 -> 5448 bytes
 images/emoji/unicode/1f4a9.png       |  Bin 0 -> 4754 bytes
 images/emoji/unicode/1f4aa.png       |  Bin 0 -> 4672 bytes
 images/emoji/unicode/1f4ab.png       |  Bin 0 -> 3044 bytes
 images/emoji/unicode/1f4ac.png       |  Bin 0 -> 2130 bytes
 images/emoji/unicode/1f4ad.png       |  Bin 0 -> 2582 bytes
 images/emoji/unicode/1f4ae.png       |  Bin 0 -> 4391 bytes
 images/emoji/unicode/1f4af.png       |  Bin 0 -> 3302 bytes
 images/emoji/unicode/1f4b0.png       |  Bin 0 -> 5500 bytes
 images/emoji/unicode/1f4b1.png       |  Bin 0 -> 1981 bytes
 images/emoji/unicode/1f4b2.png       |  Bin 0 -> 1416 bytes
 images/emoji/unicode/1f4b3.png       |  Bin 0 -> 2648 bytes
 images/emoji/unicode/1f4b4.png       |  Bin 0 -> 4989 bytes
 images/emoji/unicode/1f4b5.png       |  Bin 0 -> 4622 bytes
 images/emoji/unicode/1f4b6.png       |  Bin 0 -> 3942 bytes
 images/emoji/unicode/1f4b7.png       |  Bin 0 -> 4235 bytes
 images/emoji/unicode/1f4b8.png       |  Bin 0 -> 7586 bytes
 images/emoji/unicode/1f4b9.png       |  Bin 0 -> 4331 bytes
 images/emoji/unicode/1f4ba.png       |  Bin 0 -> 6059 bytes
 images/emoji/unicode/1f4bb.png       |  Bin 0 -> 1705 bytes
 images/emoji/unicode/1f4bc.png       |  Bin 0 -> 2698 bytes
 images/emoji/unicode/1f4bd.png       |  Bin 0 -> 5594 bytes
 images/emoji/unicode/1f4be.png       |  Bin 0 -> 3215 bytes
 images/emoji/unicode/1f4bf.png       |  Bin 0 -> 6718 bytes
 images/emoji/unicode/1f4c0.png       |  Bin 0 -> 6993 bytes
 images/emoji/unicode/1f4c1.png       |  Bin 0 -> 4013 bytes
 images/emoji/unicode/1f4c2.png       |  Bin 0 -> 4292 bytes
 images/emoji/unicode/1f4c3.png       |  Bin 0 -> 3729 bytes
 images/emoji/unicode/1f4c4.png       |  Bin 0 -> 2183 bytes
 images/emoji/unicode/1f4c5.png       |  Bin 0 -> 2977 bytes
 images/emoji/unicode/1f4c6.png       |  Bin 0 -> 2920 bytes
 images/emoji/unicode/1f4c7.png       |  Bin 0 -> 3749 bytes
 images/emoji/unicode/1f4c8.png       |  Bin 0 -> 2939 bytes
 images/emoji/unicode/1f4c9.png       |  Bin 0 -> 2910 bytes
 images/emoji/unicode/1f4ca.png       |  Bin 0 -> 2460 bytes
 images/emoji/unicode/1f4cb.png       |  Bin 0 -> 4663 bytes
 images/emoji/unicode/1f4cc.png       |  Bin 0 -> 3793 bytes
 images/emoji/unicode/1f4cd.png       |  Bin 0 -> 1936 bytes
 images/emoji/unicode/1f4ce.png       |  Bin 0 -> 2558 bytes
 images/emoji/unicode/1f4cf.png       |  Bin 0 -> 3832 bytes
 images/emoji/unicode/1f4d0.png       |  Bin 0 -> 2706 bytes
 images/emoji/unicode/1f4d1.png       |  Bin 0 -> 3162 bytes
 images/emoji/unicode/1f4d2.png       |  Bin 0 -> 5921 bytes
 images/emoji/unicode/1f4d3.png       |  Bin 0 -> 6036 bytes
 images/emoji/unicode/1f4d4.png       |  Bin 0 -> 5329 bytes
 images/emoji/unicode/1f4d5.png       |  Bin 0 -> 4847 bytes
 images/emoji/unicode/1f4d6.png       |  Bin 0 -> 6050 bytes
 images/emoji/unicode/1f4d7.png       |  Bin 0 -> 5090 bytes
 images/emoji/unicode/1f4d8.png       |  Bin 0 -> 5092 bytes
 images/emoji/unicode/1f4d9.png       |  Bin 0 -> 5085 bytes
 images/emoji/unicode/1f4da.png       |  Bin 0 -> 6539 bytes
 images/emoji/unicode/1f4db.png       |  Bin 0 -> 3985 bytes
 images/emoji/unicode/1f4dc.png       |  Bin 0 -> 6749 bytes
 images/emoji/unicode/1f4dd.png       |  Bin 0 -> 4945 bytes
 images/emoji/unicode/1f4de.png       |  Bin 0 -> 2001 bytes
 images/emoji/unicode/1f4df.png       |  Bin 0 -> 4022 bytes
 images/emoji/unicode/1f4e0.png       |  Bin 0 -> 4650 bytes
 images/emoji/unicode/1f4e1.png       |  Bin 0 -> 4867 bytes
 images/emoji/unicode/1f4e2.png       |  Bin 0 -> 6001 bytes
 images/emoji/unicode/1f4e3.png       |  Bin 0 -> 4821 bytes
 images/emoji/unicode/1f4e4.png       |  Bin 0 -> 3683 bytes
 images/emoji/unicode/1f4e5.png       |  Bin 0 -> 3700 bytes
 images/emoji/unicode/1f4e6.png       |  Bin 0 -> 8449 bytes
 images/emoji/unicode/1f4e7.png       |  Bin 0 -> 2128 bytes
 images/emoji/unicode/1f4e8.png       |  Bin 0 -> 2206 bytes
 images/emoji/unicode/1f4e9.png       |  Bin 0 -> 2351 bytes
 images/emoji/unicode/1f4ea.png       |  Bin 0 -> 4360 bytes
 images/emoji/unicode/1f4eb.png       |  Bin 0 -> 4196 bytes
 images/emoji/unicode/1f4ec.png       |  Bin 0 -> 4581 bytes
 images/emoji/unicode/1f4ed.png       |  Bin 0 -> 3101 bytes
 images/emoji/unicode/1f4ee.png       |  Bin 0 -> 3388 bytes
 images/emoji/unicode/1f4ef.png       |  Bin 0 -> 4819 bytes
 images/emoji/unicode/1f4f0.png       |  Bin 0 -> 5198 bytes
 images/emoji/unicode/1f4f1.png       |  Bin 0 -> 3499 bytes
 images/emoji/unicode/1f4f2.png       |  Bin 0 -> 4037 bytes
 images/emoji/unicode/1f4f3.png       |  Bin 0 -> 3906 bytes
 images/emoji/unicode/1f4f4.png       |  Bin 0 -> 3521 bytes
 images/emoji/unicode/1f4f5.png       |  Bin 0 -> 5083 bytes
 images/emoji/unicode/1f4f6.png       |  Bin 0 -> 3231 bytes
 images/emoji/unicode/1f4f7.png       |  Bin 0 -> 4661 bytes
 images/emoji/unicode/1f4f9.png       |  Bin 0 -> 5090 bytes
 images/emoji/unicode/1f4fa.png       |  Bin 0 -> 5242 bytes
 images/emoji/unicode/1f4fb.png       |  Bin 0 -> 6150 bytes
 images/emoji/unicode/1f4fc.png       |  Bin 0 -> 3145 bytes
 images/emoji/unicode/1f500.png       |  Bin 0 -> 4313 bytes
 images/emoji/unicode/1f501.png       |  Bin 0 -> 4009 bytes
 images/emoji/unicode/1f502.png       |  Bin 0 -> 4287 bytes
 images/emoji/unicode/1f503.png       |  Bin 0 -> 1399 bytes
 images/emoji/unicode/1f504.png       |  Bin 0 -> 4823 bytes
 images/emoji/unicode/1f505.png       |  Bin 0 -> 2498 bytes
 images/emoji/unicode/1f506.png       |  Bin 0 -> 4060 bytes
 images/emoji/unicode/1f507.png       |  Bin 0 -> 6635 bytes
 images/emoji/unicode/1f508.png       |  Bin 0 -> 5309 bytes
 images/emoji/unicode/1f509.png       |  Bin 0 -> 5024 bytes
 images/emoji/unicode/1f50a.png       |  Bin 0 -> 7814 bytes
 images/emoji/unicode/1f50b.png       |  Bin 0 -> 3812 bytes
 images/emoji/unicode/1f50c.png       |  Bin 0 -> 2819 bytes
 images/emoji/unicode/1f50d.png       |  Bin 0 -> 3040 bytes
 images/emoji/unicode/1f50e.png       |  Bin 0 -> 3629 bytes
 images/emoji/unicode/1f50f.png       |  Bin 0 -> 4967 bytes
 images/emoji/unicode/1f510.png       |  Bin 0 -> 5701 bytes
 images/emoji/unicode/1f511.png       |  Bin 0 -> 3452 bytes
 images/emoji/unicode/1f512.png       |  Bin 0 -> 3676 bytes
 images/emoji/unicode/1f513.png       |  Bin 0 -> 3551 bytes
 images/emoji/unicode/1f514.png       |  Bin 0 -> 4859 bytes
 images/emoji/unicode/1f515.png       |  Bin 0 -> 5944 bytes
 images/emoji/unicode/1f516.png       |  Bin 0 -> 4696 bytes
 images/emoji/unicode/1f517.png       |  Bin 0 -> 2652 bytes
 images/emoji/unicode/1f518.png       |  Bin 0 -> 2198 bytes
 images/emoji/unicode/1f519.png       |  Bin 0 -> 5434 bytes
 images/emoji/unicode/1f51a.png       |  Bin 0 -> 1475 bytes
 images/emoji/unicode/1f51b.png       |  Bin 0 -> 1806 bytes
 images/emoji/unicode/1f51c.png       |  Bin 0 -> 1911 bytes
 images/emoji/unicode/1f51d.png       |  Bin 0 -> 2535 bytes
 images/emoji/unicode/1f51e.png       |  Bin 0 -> 5722 bytes
 images/emoji/unicode/1f51f.png       |  Bin 0 -> 4095 bytes
 images/emoji/unicode/1f520.png       |  Bin 0 -> 5136 bytes
 images/emoji/unicode/1f521.png       |  Bin 0 -> 4471 bytes
 images/emoji/unicode/1f522.png       |  Bin 0 -> 4751 bytes
 images/emoji/unicode/1f523.png       |  Bin 0 -> 5434 bytes
 images/emoji/unicode/1f524.png       |  Bin 0 -> 4247 bytes
 images/emoji/unicode/1f525.png       |  Bin 0 -> 3886 bytes
 images/emoji/unicode/1f526.png       |  Bin 0 -> 5024 bytes
 images/emoji/unicode/1f527.png       |  Bin 0 -> 2775 bytes
 images/emoji/unicode/1f528.png       |  Bin 0 -> 3595 bytes
 images/emoji/unicode/1f529.png       |  Bin 0 -> 2169 bytes
 images/emoji/unicode/1f52a.png       |  Bin 0 -> 2506 bytes
 images/emoji/unicode/1f52b.png       |  Bin 0 -> 3161 bytes
 images/emoji/unicode/1f52c.png       |  Bin 0 -> 4141 bytes
 images/emoji/unicode/1f52d.png       |  Bin 0 -> 3322 bytes
 images/emoji/unicode/1f52e.png       |  Bin 0 -> 6236 bytes
 images/emoji/unicode/1f52f.png       |  Bin 0 -> 4859 bytes
 images/emoji/unicode/1f530.png       |  Bin 0 -> 2761 bytes
 images/emoji/unicode/1f531.png       |  Bin 0 -> 4833 bytes
 images/emoji/unicode/1f532.png       |  Bin 0 -> 3599 bytes
 images/emoji/unicode/1f533.png       |  Bin 0 -> 4113 bytes
 images/emoji/unicode/1f534.png       |  Bin 0 -> 3946 bytes
 images/emoji/unicode/1f535.png       |  Bin 0 -> 4637 bytes
 images/emoji/unicode/1f536.png       |  Bin 0 -> 3899 bytes
 images/emoji/unicode/1f537.png       |  Bin 0 -> 3790 bytes
 images/emoji/unicode/1f538.png       |  Bin 0 -> 1944 bytes
 images/emoji/unicode/1f539.png       |  Bin 0 -> 1898 bytes
 images/emoji/unicode/1f53a.png       |  Bin 0 -> 2054 bytes
 images/emoji/unicode/1f53b.png       |  Bin 0 -> 2157 bytes
 images/emoji/unicode/1f53c.png       |  Bin 0 -> 3198 bytes
 images/emoji/unicode/1f53d.png       |  Bin 0 -> 2934 bytes
 images/emoji/unicode/1f550.png       |  Bin 0 -> 2641 bytes
 images/emoji/unicode/1f551.png       |  Bin 0 -> 2651 bytes
 images/emoji/unicode/1f552.png       |  Bin 0 -> 2544 bytes
 images/emoji/unicode/1f553.png       |  Bin 0 -> 2684 bytes
 images/emoji/unicode/1f554.png       |  Bin 0 -> 2664 bytes
 images/emoji/unicode/1f555.png       |  Bin 0 -> 2630 bytes
 images/emoji/unicode/1f556.png       |  Bin 0 -> 2667 bytes
 images/emoji/unicode/1f557.png       |  Bin 0 -> 2661 bytes
 images/emoji/unicode/1f558.png       |  Bin 0 -> 2543 bytes
 images/emoji/unicode/1f559.png       |  Bin 0 -> 2639 bytes
 images/emoji/unicode/1f55a.png       |  Bin 0 -> 2633 bytes
 images/emoji/unicode/1f55b.png       |  Bin 0 -> 2556 bytes
 images/emoji/unicode/1f55c.png       |  Bin 0 -> 2842 bytes
 images/emoji/unicode/1f55d.png       |  Bin 0 -> 2853 bytes
 images/emoji/unicode/1f55e.png       |  Bin 0 -> 2739 bytes
 images/emoji/unicode/1f55f.png       |  Bin 0 -> 2847 bytes
 images/emoji/unicode/1f560.png       |  Bin 0 -> 2832 bytes
 images/emoji/unicode/1f561.png       |  Bin 0 -> 2730 bytes
 images/emoji/unicode/1f562.png       |  Bin 0 -> 2820 bytes
 images/emoji/unicode/1f563.png       |  Bin 0 -> 2847 bytes
 images/emoji/unicode/1f564.png       |  Bin 0 -> 2746 bytes
 images/emoji/unicode/1f565.png       |  Bin 0 -> 2864 bytes
 images/emoji/unicode/1f566.png       |  Bin 0 -> 2854 bytes
 images/emoji/unicode/1f567.png       |  Bin 0 -> 2797 bytes
 images/emoji/unicode/1f5fb.png       |  Bin 0 -> 5004 bytes
 images/emoji/unicode/1f5fc.png       |  Bin 0 -> 4802 bytes
 images/emoji/unicode/1f5fd.png       |  Bin 0 -> 6075 bytes
 images/emoji/unicode/1f5fe.png       |  Bin 0 -> 4085 bytes
 images/emoji/unicode/1f5ff.png       |  Bin 0 -> 2166 bytes
 images/emoji/unicode/1f600.png       |  Bin 0 -> 8098 bytes
 images/emoji/unicode/1f601.png       |  Bin 0 -> 5721 bytes
 images/emoji/unicode/1f602.png       |  Bin 0 -> 6339 bytes
 images/emoji/unicode/1f603.png       |  Bin 0 -> 5794 bytes
 images/emoji/unicode/1f604.png       |  Bin 0 -> 5890 bytes
 images/emoji/unicode/1f605.png       |  Bin 0 -> 6519 bytes
 images/emoji/unicode/1f606.png       |  Bin 0 -> 6347 bytes
 images/emoji/unicode/1f607.png       |  Bin 0 -> 7000 bytes
 images/emoji/unicode/1f608.png       |  Bin 0 -> 7189 bytes
 images/emoji/unicode/1f609.png       |  Bin 0 -> 5253 bytes
 images/emoji/unicode/1f60a.png       |  Bin 0 -> 5284 bytes
 images/emoji/unicode/1f60b.png       |  Bin 0 -> 5886 bytes
 images/emoji/unicode/1f60c.png       |  Bin 0 -> 5440 bytes
 images/emoji/unicode/1f60d.png       |  Bin 0 -> 5758 bytes
 images/emoji/unicode/1f60e.png       |  Bin 0 -> 5749 bytes
 images/emoji/unicode/1f60f.png       |  Bin 0 -> 5307 bytes
 images/emoji/unicode/1f610.png       |  Bin 0 -> 4843 bytes
 images/emoji/unicode/1f611.png       |  Bin 0 -> 6669 bytes
 images/emoji/unicode/1f612.png       |  Bin 0 -> 5315 bytes
 images/emoji/unicode/1f613.png       |  Bin 0 -> 5576 bytes
 images/emoji/unicode/1f614.png       |  Bin 0 -> 5119 bytes
 images/emoji/unicode/1f615.png       |  Bin 0 -> 7306 bytes
 images/emoji/unicode/1f616.png       |  Bin 0 -> 5881 bytes
 images/emoji/unicode/1f617.png       |  Bin 0 -> 7431 bytes
 images/emoji/unicode/1f618.png       |  Bin 0 -> 5767 bytes
 images/emoji/unicode/1f619.png       |  Bin 0 -> 7619 bytes
 images/emoji/unicode/1f61a.png       |  Bin 0 -> 5563 bytes
 images/emoji/unicode/1f61b.png       |  Bin 0 -> 7825 bytes
 images/emoji/unicode/1f61c.png       |  Bin 0 -> 6007 bytes
 images/emoji/unicode/1f61d.png       |  Bin 0 -> 5785 bytes
 images/emoji/unicode/1f61e.png       |  Bin 0 -> 4764 bytes
 images/emoji/unicode/1f61f.png       |  Bin 0 -> 8022 bytes
 images/emoji/unicode/1f620.png       |  Bin 0 -> 5088 bytes
 images/emoji/unicode/1f621.png       |  Bin 0 -> 5410 bytes
 images/emoji/unicode/1f622.png       |  Bin 0 -> 5699 bytes
 images/emoji/unicode/1f623.png       |  Bin 0 -> 5540 bytes
 images/emoji/unicode/1f624.png       |  Bin 0 -> 6164 bytes
 images/emoji/unicode/1f625.png       |  Bin 0 -> 5648 bytes
 images/emoji/unicode/1f626.png       |  Bin 0 -> 7361 bytes
 images/emoji/unicode/1f627.png       |  Bin 0 -> 7902 bytes
 images/emoji/unicode/1f628.png       |  Bin 0 -> 5600 bytes
 images/emoji/unicode/1f629.png       |  Bin 0 -> 6279 bytes
 images/emoji/unicode/1f62a.png       |  Bin 0 -> 5837 bytes
 images/emoji/unicode/1f62b.png       |  Bin 0 -> 6178 bytes
 images/emoji/unicode/1f62c.png       |  Bin 0 -> 7928 bytes
 images/emoji/unicode/1f62d.png       |  Bin 0 -> 5730 bytes
 images/emoji/unicode/1f62e.png       |  Bin 0 -> 7121 bytes
 images/emoji/unicode/1f62f.png       |  Bin 0 -> 7760 bytes
 images/emoji/unicode/1f630.png       |  Bin 0 -> 5972 bytes
 images/emoji/unicode/1f631.png       |  Bin 0 -> 6503 bytes
 images/emoji/unicode/1f632.png       |  Bin 0 -> 6043 bytes
 images/emoji/unicode/1f633.png       |  Bin 0 -> 5866 bytes
 images/emoji/unicode/1f634.png       |  Bin 0 -> 8084 bytes
 images/emoji/unicode/1f635.png       |  Bin 0 -> 6278 bytes
 images/emoji/unicode/1f636.png       |  Bin 0 -> 4732 bytes
 images/emoji/unicode/1f637.png       |  Bin 0 -> 5235 bytes
 images/emoji/unicode/1f638.png       |  Bin 0 -> 6117 bytes
 images/emoji/unicode/1f639.png       |  Bin 0 -> 7190 bytes
 images/emoji/unicode/1f63a.png       |  Bin 0 -> 6083 bytes
 images/emoji/unicode/1f63b.png       |  Bin 0 -> 6176 bytes
 images/emoji/unicode/1f63c.png       |  Bin 0 -> 6062 bytes
 images/emoji/unicode/1f63d.png       |  Bin 0 -> 6801 bytes
 images/emoji/unicode/1f63e.png       |  Bin 0 -> 4918 bytes
 images/emoji/unicode/1f63f.png       |  Bin 0 -> 6682 bytes
 images/emoji/unicode/1f640.png       |  Bin 0 -> 6844 bytes
 images/emoji/unicode/1f645.png       |  Bin 0 -> 7034 bytes
 images/emoji/unicode/1f646.png       |  Bin 0 -> 7527 bytes
 images/emoji/unicode/1f647.png       |  Bin 0 -> 5143 bytes
 images/emoji/unicode/1f648.png       |  Bin 0 -> 6828 bytes
 images/emoji/unicode/1f649.png       |  Bin 0 -> 6550 bytes
 images/emoji/unicode/1f64a.png       |  Bin 0 -> 5977 bytes
 images/emoji/unicode/1f64b.png       |  Bin 0 -> 6177 bytes
 images/emoji/unicode/1f64c.png       |  Bin 0 -> 5375 bytes
 images/emoji/unicode/1f64d.png       |  Bin 0 -> 4826 bytes
 images/emoji/unicode/1f64e.png       |  Bin 0 -> 5428 bytes
 images/emoji/unicode/1f64f.png       |  Bin 0 -> 6203 bytes
 images/emoji/unicode/1f680.png       |  Bin 0 -> 5388 bytes
 images/emoji/unicode/1f681.png       |  Bin 0 -> 4100 bytes
 images/emoji/unicode/1f682.png       |  Bin 0 -> 5159 bytes
 images/emoji/unicode/1f683.png       |  Bin 0 -> 3648 bytes
 images/emoji/unicode/1f684.png       |  Bin 0 -> 4138 bytes
 images/emoji/unicode/1f685.png       |  Bin 0 -> 3522 bytes
 images/emoji/unicode/1f686.png       |  Bin 0 -> 4817 bytes
 images/emoji/unicode/1f687.png       |  Bin 0 -> 5267 bytes
 images/emoji/unicode/1f688.png       |  Bin 0 -> 3792 bytes
 images/emoji/unicode/1f689.png       |  Bin 0 -> 4836 bytes
 images/emoji/unicode/1f68a.png       |  Bin 0 -> 4869 bytes
 images/emoji/unicode/1f68b.png       |  Bin 0 -> 2904 bytes
 images/emoji/unicode/1f68c.png       |  Bin 0 -> 4065 bytes
 images/emoji/unicode/1f68d.png       |  Bin 0 -> 5305 bytes
 images/emoji/unicode/1f68e.png       |  Bin 0 -> 4431 bytes
 images/emoji/unicode/1f68f.png       |  Bin 0 -> 1715 bytes
 images/emoji/unicode/1f690.png       |  Bin 0 -> 3113 bytes
 images/emoji/unicode/1f691.png       |  Bin 0 -> 3708 bytes
 images/emoji/unicode/1f692.png       |  Bin 0 -> 4862 bytes
 images/emoji/unicode/1f693.png       |  Bin 0 -> 3349 bytes
 images/emoji/unicode/1f694.png       |  Bin 0 -> 5683 bytes
 images/emoji/unicode/1f695.png       |  Bin 0 -> 3744 bytes
 images/emoji/unicode/1f696.png       |  Bin 0 -> 6287 bytes
 images/emoji/unicode/1f697.png       |  Bin 0 -> 4278 bytes
 images/emoji/unicode/1f698.png       |  Bin 0 -> 7469 bytes
 images/emoji/unicode/1f699.png       |  Bin 0 -> 4081 bytes
 images/emoji/unicode/1f69a.png       |  Bin 0 -> 3721 bytes
 images/emoji/unicode/1f69b.png       |  Bin 0 -> 2938 bytes
 images/emoji/unicode/1f69c.png       |  Bin 0 -> 5671 bytes
 images/emoji/unicode/1f69d.png       |  Bin 0 -> 4311 bytes
 images/emoji/unicode/1f69e.png       |  Bin 0 -> 7448 bytes
 images/emoji/unicode/1f69f.png       |  Bin 0 -> 3937 bytes
 images/emoji/unicode/1f6a0.png       |  Bin 0 -> 4405 bytes
 images/emoji/unicode/1f6a1.png       |  Bin 0 -> 3489 bytes
 images/emoji/unicode/1f6a2.png       |  Bin 0 -> 4233 bytes
 images/emoji/unicode/1f6a3.png       |  Bin 0 -> 5433 bytes
 images/emoji/unicode/1f6a4.png       |  Bin 0 -> 3512 bytes
 images/emoji/unicode/1f6a5.png       |  Bin 0 -> 3603 bytes
 images/emoji/unicode/1f6a6.png       |  Bin 0 -> 3422 bytes
 images/emoji/unicode/1f6a7.png       |  Bin 0 -> 3700 bytes
 images/emoji/unicode/1f6a8.png       |  Bin 0 -> 6620 bytes
 images/emoji/unicode/1f6a9.png       |  Bin 0 -> 1399 bytes
 images/emoji/unicode/1f6aa.png       |  Bin 0 -> 3310 bytes
 images/emoji/unicode/1f6ab.png       |  Bin 0 -> 3288 bytes
 images/emoji/unicode/1f6ac.png       |  Bin 0 -> 2875 bytes
 images/emoji/unicode/1f6ad.png       |  Bin 0 -> 4228 bytes
 images/emoji/unicode/1f6ae.png       |  Bin 0 -> 4091 bytes
 images/emoji/unicode/1f6af.png       |  Bin 0 -> 5277 bytes
 images/emoji/unicode/1f6b0.png       |  Bin 0 -> 3934 bytes
 images/emoji/unicode/1f6b1.png       |  Bin 0 -> 5202 bytes
 images/emoji/unicode/1f6b2.png       |  Bin 0 -> 4722 bytes
 images/emoji/unicode/1f6b3.png       |  Bin 0 -> 5661 bytes
 images/emoji/unicode/1f6b4.png       |  Bin 0 -> 6484 bytes
 images/emoji/unicode/1f6b5.png       |  Bin 0 -> 9511 bytes
 images/emoji/unicode/1f6b6.png       |  Bin 0 -> 2519 bytes
 images/emoji/unicode/1f6b7.png       |  Bin 0 -> 5487 bytes
 images/emoji/unicode/1f6b8.png       |  Bin 0 -> 3460 bytes
 images/emoji/unicode/1f6b9.png       |  Bin 0 -> 3368 bytes
 images/emoji/unicode/1f6ba.png       |  Bin 0 -> 3908 bytes
 images/emoji/unicode/1f6bb.png       |  Bin 0 -> 4162 bytes
 images/emoji/unicode/1f6bc.png       |  Bin 0 -> 2967 bytes
 images/emoji/unicode/1f6bd.png       |  Bin 0 -> 1733 bytes
 images/emoji/unicode/1f6be.png       |  Bin 0 -> 4088 bytes
 images/emoji/unicode/1f6bf.png       |  Bin 0 -> 7583 bytes
 images/emoji/unicode/1f6c0.png       |  Bin 0 -> 3210 bytes
 images/emoji/unicode/1f6c1.png       |  Bin 0 -> 2784 bytes
 images/emoji/unicode/1f6c2.png       |  Bin 0 -> 4018 bytes
 images/emoji/unicode/1f6c3.png       |  Bin 0 -> 3899 bytes
 images/emoji/unicode/1f6c4.png       |  Bin 0 -> 3502 bytes
 images/emoji/unicode/1f6c5.png       |  Bin 0 -> 4025 bytes
 images/emoji/unicode/203c.png        |  Bin 0 -> 1387 bytes
 images/emoji/unicode/2049.png        |  Bin 0 -> 2875 bytes
 images/emoji/unicode/2122.png        |  Bin 0 -> 870 bytes
 images/emoji/unicode/2139.png        |  Bin 0 -> 3670 bytes
 images/emoji/unicode/2194.png        |  Bin 0 -> 3413 bytes
 images/emoji/unicode/2195.png        |  Bin 0 -> 3544 bytes
 images/emoji/unicode/2196.png        |  Bin 0 -> 3240 bytes
 images/emoji/unicode/2197.png        |  Bin 0 -> 3249 bytes
 images/emoji/unicode/2198.png        |  Bin 0 -> 3351 bytes
 images/emoji/unicode/2199.png        |  Bin 0 -> 3360 bytes
 images/emoji/unicode/21a9.png        |  Bin 0 -> 3775 bytes
 images/emoji/unicode/21aa.png        |  Bin 0 -> 3712 bytes
 images/emoji/unicode/231a.png        |  Bin 0 -> 5189 bytes
 images/emoji/unicode/231b.png        |  Bin 0 -> 4492 bytes
 images/emoji/unicode/23e9.png        |  Bin 0 -> 3124 bytes
 images/emoji/unicode/23ea.png        |  Bin 0 -> 3068 bytes
 images/emoji/unicode/23eb.png        |  Bin 0 -> 3613 bytes
 images/emoji/unicode/23ec.png        |  Bin 0 -> 3179 bytes
 images/emoji/unicode/23f0.png        |  Bin 0 -> 7062 bytes
 images/emoji/unicode/23f3.png        |  Bin 0 -> 6765 bytes
 images/emoji/unicode/24c2.png        |  Bin 0 -> 4737 bytes
 images/emoji/unicode/25aa.png        |  Bin 0 -> 3061 bytes
 images/emoji/unicode/25ab.png        |  Bin 0 -> 3068 bytes
 images/emoji/unicode/25b6.png        |  Bin 0 -> 3201 bytes
 images/emoji/unicode/25c0.png        |  Bin 0 -> 3202 bytes
 images/emoji/unicode/25fb.png        |  Bin 0 -> 4192 bytes
 images/emoji/unicode/25fc.png        |  Bin 0 -> 4035 bytes
 images/emoji/unicode/25fd.png        |  Bin 0 -> 3598 bytes
 images/emoji/unicode/25fe.png        |  Bin 0 -> 3495 bytes
 images/emoji/unicode/2600.png        |  Bin 0 -> 3802 bytes
 images/emoji/unicode/2601.png        |  Bin 0 -> 3860 bytes
 images/emoji/unicode/260e.png        |  Bin 0 -> 5495 bytes
 images/emoji/unicode/2611.png        |  Bin 0 -> 1829 bytes
 images/emoji/unicode/2614.png        |  Bin 0 -> 4745 bytes
 images/emoji/unicode/2615.png        |  Bin 0 -> 4306 bytes
 images/emoji/unicode/261d.png        |  Bin 0 -> 3431 bytes
 images/emoji/unicode/263a.png        |  Bin 0 -> 5455 bytes
 images/emoji/unicode/2648.png        |  Bin 0 -> 4359 bytes
 images/emoji/unicode/2649.png        |  Bin 0 -> 4733 bytes
 images/emoji/unicode/264a.png        |  Bin 0 -> 4296 bytes
 images/emoji/unicode/264b.png        |  Bin 0 -> 5384 bytes
 images/emoji/unicode/264c.png        |  Bin 0 -> 4913 bytes
 images/emoji/unicode/264d.png        |  Bin 0 -> 4869 bytes
 images/emoji/unicode/264e.png        |  Bin 0 -> 4229 bytes
 images/emoji/unicode/264f.png        |  Bin 0 -> 4566 bytes
 images/emoji/unicode/2650.png        |  Bin 0 -> 4505 bytes
 images/emoji/unicode/2651.png        |  Bin 0 -> 4670 bytes
 images/emoji/unicode/2652.png        |  Bin 0 -> 5096 bytes
 images/emoji/unicode/2653.png        |  Bin 0 -> 4458 bytes
 images/emoji/unicode/2660.png        |  Bin 0 -> 1719 bytes
 images/emoji/unicode/2663.png        |  Bin 0 -> 1685 bytes
 images/emoji/unicode/2665.png        |  Bin 0 -> 2925 bytes
 images/emoji/unicode/2666.png        |  Bin 0 -> 2785 bytes
 images/emoji/unicode/2668.png        |  Bin 0 -> 3538 bytes
 images/emoji/unicode/267b.png        |  Bin 0 -> 3704 bytes
 images/emoji/unicode/267f.png        |  Bin 0 -> 4224 bytes
 images/emoji/unicode/2693.png        |  Bin 0 -> 4479 bytes
 images/emoji/unicode/26a0.png        |  Bin 0 -> 3177 bytes
 images/emoji/unicode/26a1.png        |  Bin 0 -> 2233 bytes
 images/emoji/unicode/26aa.png        |  Bin 0 -> 2506 bytes
 images/emoji/unicode/26ab.png        |  Bin 0 -> 2369 bytes
 images/emoji/unicode/26bd.png        |  Bin 0 -> 4878 bytes
 images/emoji/unicode/26be.png        |  Bin 0 -> 6032 bytes
 images/emoji/unicode/26c4.png        |  Bin 0 -> 4658 bytes
 images/emoji/unicode/26c5.png        |  Bin 0 -> 5181 bytes
 images/emoji/unicode/26ce.png        |  Bin 0 -> 4434 bytes
 images/emoji/unicode/26d4.png        |  Bin 0 -> 3514 bytes
 images/emoji/unicode/26ea.png        |  Bin 0 -> 4653 bytes
 images/emoji/unicode/26f2.png        |  Bin 0 -> 5087 bytes
 images/emoji/unicode/26f3.png        |  Bin 0 -> 3548 bytes
 images/emoji/unicode/26f5.png        |  Bin 0 -> 3833 bytes
 images/emoji/unicode/26fa.png        |  Bin 0 -> 4482 bytes
 images/emoji/unicode/26fd.png        |  Bin 0 -> 4296 bytes
 images/emoji/unicode/2702.png        |  Bin 0 -> 3900 bytes
 images/emoji/unicode/2705.png        |  Bin 0 -> 3445 bytes
 images/emoji/unicode/2708.png        |  Bin 0 -> 4740 bytes
 images/emoji/unicode/2709.png        |  Bin 0 -> 1655 bytes
 images/emoji/unicode/270a.png        |  Bin 0 -> 5880 bytes
 images/emoji/unicode/270b.png        |  Bin 0 -> 4161 bytes
 images/emoji/unicode/270c.png        |  Bin 0 -> 4669 bytes
 images/emoji/unicode/270f.png        |  Bin 0 -> 4450 bytes
 images/emoji/unicode/2712.png        |  Bin 0 -> 2352 bytes
 images/emoji/unicode/2714.png        |  Bin 0 -> 1103 bytes
 images/emoji/unicode/2716.png        |  Bin 0 -> 591 bytes
 images/emoji/unicode/2728.png        |  Bin 0 -> 2212 bytes
 images/emoji/unicode/2733.png        |  Bin 0 -> 4012 bytes
 images/emoji/unicode/2734.png        |  Bin 0 -> 3312 bytes
 images/emoji/unicode/2744.png        |  Bin 0 -> 5637 bytes
 images/emoji/unicode/2747.png        |  Bin 0 -> 8904 bytes
 images/emoji/unicode/274c.png        |  Bin 0 -> 2118 bytes
 images/emoji/unicode/274e.png        |  Bin 0 -> 3853 bytes
 images/emoji/unicode/2753.png        |  Bin 0 -> 1740 bytes
 images/emoji/unicode/2754.png        |  Bin 0 -> 1078 bytes
 images/emoji/unicode/2755.png        |  Bin 0 -> 1142 bytes
 images/emoji/unicode/2757.png        |  Bin 0 -> 1315 bytes
 images/emoji/unicode/2764.png        |  Bin 0 -> 3302 bytes
 images/emoji/unicode/2795.png        |  Bin 0 -> 315 bytes
 images/emoji/unicode/2796.png        |  Bin 0 -> 197 bytes
 images/emoji/unicode/2797.png        |  Bin 0 -> 340 bytes
 images/emoji/unicode/27a1.png        |  Bin 0 -> 3034 bytes
 images/emoji/unicode/27b0.png        |  Bin 0 -> 1264 bytes
 images/emoji/unicode/27bf.png        |  Bin 0 -> 3417 bytes
 images/emoji/unicode/2934.png        |  Bin 0 -> 3520 bytes
 images/emoji/unicode/2935.png        |  Bin 0 -> 3521 bytes
 images/emoji/unicode/2b05.png        |  Bin 0 -> 3053 bytes
 images/emoji/unicode/2b06.png        |  Bin 0 -> 3093 bytes
 images/emoji/unicode/2b07.png        |  Bin 0 -> 3024 bytes
 images/emoji/unicode/2b1b.png        |  Bin 0 -> 1332 bytes
 images/emoji/unicode/2b1c.png        |  Bin 0 -> 1411 bytes
 images/emoji/unicode/2b50.png        |  Bin 0 -> 3628 bytes
 images/emoji/unicode/2b55.png        |  Bin 0 -> 2542 bytes
 images/emoji/unicode/3030.png        |  Bin 0 -> 872 bytes
 images/emoji/unicode/303d.png        |  Bin 0 -> 2685 bytes
 images/emoji/unicode/3297.png        |  Bin 0 -> 4883 bytes
 images/emoji/unicode/3299.png        |  Bin 0 -> 5364 bytes
 lib/emoji.rb                         |   84 +
 lib/emoji/character.rb               |   62 +
 lib/emoji/railtie.rb                 |    6 +
 lib/gemoji.rb                        |    1 +
 lib/tasks/emoji.rake                 |    7 +
 script/bootstrap                     |    9 +
 script/console                       |   15 +
 script/regenerate                    |   33 +
 script/release                       |   31 +
 script/test                          |   14 +
 test/documentation_test.rb           |   46 +
 test/emoji_test.rb                   |  133 +
 test/integrity_test.rb               |   86 +
 test/test_helper.rb                  |    8 +
 891 files changed, 9398 insertions(+)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..97332a3
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+.ruby-version
+db/NamesList.txt
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..d523d0e
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,6 @@
+script: script/test
+rvm:
+  - 1.9.3
+  - 2.1.2
+notifications:
+  email: false
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..5922856
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,49 @@
+Our emoji set is based off Apple's emoji character palette, plus some custom
+emoji such as :octocat: :shipit: :metal:.
+
+Some useful tools in development are:
+
+```
+script/bootstrap
+```
+
+Sets up the development environment. The prerequisites are:
+
+* Ruby 1.9+
+* Bundler
+
+```
+rake db:generate
+```
+
+On OS X, this will rebuild the `db/Category-Emoji.json` file from the system
+one, pulling in any new emoji that Apple may have added in the meantime.
+
+```
+script/test
+```
+
+Runs the test suite, including the integrity test where we assert that we have
+covered each of Apple's emoji.
+
+```
+script/regenerate
+```
+
+Rebuilds the `db/emoji.json` file which is our main list of emoji: their
+canonical representations, descriptions, aliases, and tags. This requires OS X
+because Safari is used in the process to verify which character render as emoji
+and which render as ordinary Unicode glyphs from the current font.
+
+```
+script/console
+```
+
+Opens `irb` console with gemoji library preloded for experimentation.
+
+```
+script/release
+```
+
+For maintainers only: after the gemspec has been edited, this commits the
+change, tags a release, and pushes it to both GitHub and RubyGems.org.
diff --git a/Gemfile b/Gemfile
new file mode 100644
index 0000000..add5f7f
--- /dev/null
+++ b/Gemfile
@@ -0,0 +1,6 @@
+source "https://rubygems.org"
+
+gem "rake"
+gem "minitest"
+
+gemspec
diff --git a/Gemfile.lock b/Gemfile.lock
new file mode 100644
index 0000000..6c45036
--- /dev/null
+++ b/Gemfile.lock
@@ -0,0 +1,18 @@
+PATH
+  remote: .
+  specs:
+    gemoji (2.1.0)
+
+GEM
+  remote: https://rubygems.org/
+  specs:
+    minitest (5.3.5)
+    rake (10.3.2)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  gemoji!
+  minitest
+  rake
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..406506c
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,39 @@
+octocat, squirrel, shipit
+Copyright (c) 2013 GitHub Inc. All rights reserved.
+
+bowtie, neckbeard, fu
+Copyright (c) 2013 37signals, LLC. All rights reserved.
+
+feelsgood, finnadie, goberserk, godmode, hurtrealbad, rage 1-4, suspect
+Copyright (c) 2013 id Software. All rights reserved.
+
+trollface
+Copyright (c) 2013 whynne at deviantart. All rights reserved.
+
+All other images
+Copyright (c) 2013 Apple Inc. All rights reserved.
+
+Source code:
+
+Copyright (c) 2013 GitHub, Inc.
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..c87925e
--- /dev/null
+++ b/README.md
@@ -0,0 +1,123 @@
+gemoji
+======
+
+Emoji images and names. See the LICENSE for copyright information.
+
+
+Installation
+------------
+
+Add `gemoji` to your Gemfile.
+
+``` ruby
+gem 'gemoji'
+```
+
+**Sync images**
+
+Images can be copied to your public directory with `rake emoji` in your app. This is the recommended approach since the images will be available at a consistent location. This works best with cached formatted user content generated by tools like [html-pipeline](https://github.com/jch/html-pipeline).
+
+``` ruby
+# Rakefile
+load 'tasks/emoji.rake'
+```
+
+```
+$ rake emoji
+```
+
+**Assets Precompiling**
+
+If you must, you can manually add all the images to your asset load path.
+
+``` ruby
+# config/application.rb
+config.assets.paths << Emoji.images_path
+```
+
+Then have them compiled to public on deploy.
+
+``` ruby
+# config/application.rb
+config.assets.precompile << "emoji/**/*.png"
+```
+
+**WARNING** Since there are a ton of images, just adding the path may slow down other lookups if you aren't using it. Compiling all the emojis on deploy will add overhead to your deploy if even the images haven't changed. Theres just so many more superfluous files to iterate over. Also, the urls will be fingerprinted which may not be ideal for referencing from cached content.
+
+
+Example Rails Helper
+--------------------
+
+This would allow emojifying content such as: `it's raining :cat:s and :dog:s!`
+
+See the [Emoji cheat sheet](http://www.emoji-cheat-sheet.com) for more examples.
+
+```ruby
+module EmojiHelper
+  def emojify(content)
+    h(content).to_str.gsub(/:([\w+-]+):/) do |match|
+      if emoji = Emoji.find_by_alias($1)
+        %(<img alt="#$1" src="#{asset_path("emoji/#{emoji.image_filename}")}" style="vertical-align:middle" width="20" height="20" />)
+      else
+        match
+      end
+    end.html_safe if content.present?
+  end
+end
+```
+
+Unicode mapping
+---------------
+
+Translate emoji names to unicode and vice versa.
+
+```ruby
+>> Emoji.find_by_alias("cat").raw
+=> "🐱"  # Don't see a cat? That's U+1F431.
+
+>> Emoji.find_by_unicode("\u{1f431}").name
+=> "cat"
+```
+
+Adding new emoji
+----------------
+
+You can add new emoji characters to the `Emoji.all` list:
+
+```ruby
+emoji = Emoji.create("music") do |char|
+  char.add_alias "song"
+  char.add_unicode_alias "\u{266b}"
+  char.add_tag "notes"
+end
+
+emoji.name #=> "music"
+emoji.raw  #=> "♫"
+emoji.image_filename #=> "unicode/266b.png"
+
+# Creating custom emoji (no Unicode aliases):
+emoji = Emoji.create("music") do |char|
+  char.add_tag "notes"
+end
+
+emoji.custom? #=> true
+emoji.image_filename #=> "music.png"
+```
+
+As you create new emoji, you must ensure that you also create and put the images
+they reference by their `image_filename` to your assets directory.
+
+For existing emojis, you can edit the list of aliases or add new tags in an edit block:
+
+```ruby
+emoji = Emoji.find_by_alias "musical_note"
+
+Emoji.edit_emoji(emoji) do |char|
+  char.add_alias "music"
+  char.add_unicode_alias "\u{266b}"
+  char.add_tag "notes"
+end
+
+Emoji.find_by_alias "music"       #=> emoji
+Emoji.find_by_unicode "\u{266b}"  #=> emoji
+```
diff --git a/Rakefile b/Rakefile
new file mode 100644
index 0000000..f14703d
--- /dev/null
+++ b/Rakefile
@@ -0,0 +1,29 @@
+require 'rake/testtask'
+
+task :default => :test
+
+Rake::TestTask.new do |t|
+  t.libs << "test"
+  t.test_files = FileList["test/*_test.rb"]
+end
+
+namespace :db do
+  desc %(Generate Emoji data files needed for development)
+  task :generate => ['db/Category-Emoji.json', 'db/NamesList.txt']
+
+  desc %(Dump a list of supported Emoji with Unicode descriptions and aliases)
+  task :dump => :generate do
+    system 'ruby', '-Ilib', 'db/dump.rb'
+  end
+end
+
+emoji_plist = '/System/Library/Input Methods/CharacterPalette.app/Contents/Resources/Category-Emoji.plist'
+nameslist_url = 'http://www.unicode.org/Public/6.3.0/ucd/NamesList.txt'
+
+task 'db/Category-Emoji.json' do |t|
+  system "plutil -convert json -r '#{emoji_plist}' -o '#{t.name}'"
+end
+
+file 'db/NamesList.txt' do |t|
+  system "curl -fsSL '#{nameslist_url}' -o '#{t.name}'"
+end
diff --git a/db/Category-Emoji.json b/db/Category-Emoji.json
new file mode 100644
index 0000000..0209df6
--- /dev/null
+++ b/db/Category-Emoji.json
@@ -0,0 +1,47 @@
+{
+  "EmojiDataArray" : [
+    {
+      "CVDataTitle" : "EmojiCategory-People",
+      "CVCategoryImage" : "Emoji-HumanImage",
+      "CVCategoryData" : {
+        "CVSkipNullGlyphs" : true,
+        "Data" : "😄,😃,😀,😊,☺️,😉,😍,😘,😚,😗,😙,😜,😝,😛,😳,😁,😔,😌,😒,😞,😣,😢,😂,😭,😪,😥,😰,😅,😓,😩,😫,😨,😱,😠,😡,😤,😖,😆,😋,😷,😎,😴,😵,😲,😟,😦,😧,😈,👿,😮,😬,😐,😕,😯,😶,😇,😏,😑,👲,👳,👮,👷,💂,👶,👦,👧,👨,👩,👴,👵,👱,👼,👸,😺,😸,😻,😽,😼,🙀,😿,😹,😾,👹,👺,🙈,🙉,🙊,💀,👽,💩,🔥,✨,🌟,💫,💥,💢,💦,💧,💤,💨,👂,👀,👃,👅,👄,👍,👎,👌,👊,✊,✌️,👋,✋,👐,👆,👇,👉,👈,🙌,🙏,☝️,👏,💪,🚶,🏃,💃,👫,👪,👬,👭,💏,💑,👯,🙆,🙅,💁,🙋,💆,💇,💅,👰,🙎,🙍,🙇,🎩,👑,👒,👟,👞,👡,👠,👢,👕,👔,👚,👗,🎽,👖,👘,👙,💼,👜,👝,👛,👓,🎀,🌂,💄,💛,💙,💜,💚,❤️,💔,💗,💓,💕,💖,💞,💘,💌,💋,💍,💎,👤,👥,💬,👣,💭"
+      }
+    },
+    {
+      "CVDataTitle" : "EmojiCategory-Nature",
+      "CVCategoryImage" : "Emoji-NatureImage",
+      "CVCategoryData" : {
+        "CVSkipNullGlyphs" : true,
+        "Data" : "🐶,🐺,🐱,🐭,🐹,🐰,🐸,🐯,🐨,🐻,🐷,🐽,🐮,🐗,🐵,🐒,🐴,🐑,🐘,🐼,🐧,🐦,🐤,🐥,🐣,🐔,🐍,🐢,🐛,🐝,🐜,🐞,🐌,🐙,🐚,🐠,🐟,🐬,🐳,🐋,🐄,🐏,🐀,🐃,🐅,🐇,🐉,🐎,🐐,🐓,🐕,🐖,🐁,🐂,🐲,🐡,🐊,🐫,🐪,🐆,🐈,🐩,🐾,💐,🌸,🌷,🍀,🌹,🌻,🌺,🍁,🍃,🍂,🌿,🌾,🍄,🌵,🌴,🌲,🌳,🌰,🌱,🌼,🌐,🌞,🌝,🌚,🌑,🌒,🌓,🌔,🌕,🌖,🌗,🌘,🌜,🌛,🌙,🌍,🌎,🌏,🌋,🌌,🌠,⭐️,☀️,⛅️,☁️,⚡️,☔️,❄️,⛄️,🌀,🌁,🌈,🌊"
+      }
+    },
+    {
+      "CVDataTitle" : "EmojiCategory-Objects",
+      "CVCategoryImage" : "Emoji-ObjectsImage",
+      "CVCategoryData" : {
+        "CVSkipNullGlyphs" : true,
+        "Data" : "🎍,💝,🎎,🎒,🎓,🎏,🎆,🎇,🎐,🎑,🎃,👻,🎅,🎄,🎁,🎋,🎉,🎊,🎈,🎌,🔮,🎥,📷,📹,📼,💿,📀,💽,💾,💻,📱,☎️,📞,📟,📠,📡,📺,📻,🔊,🔉,🔈,🔇,🔔,🔕,📢,📣,⏳,⌛️,⏰,⌚️,🔓,🔒,🔏,🔐,🔑,🔎,💡,🔦,🔆,🔅,🔌,🔋,🔍,🛁,🛀,🚿,🚽,🔧,🔩,🔨,🚪,🚬,💣,🔫,🔪,💊,💉,💰,💴,💵,💷,💶,💳,💸,📲,📧,📥,📤,✉️,📩,📨,📯,📫,📪,📬,📭,📮,📦,📝,📄,📃,📑,📊,📈,📉,📜,📋,📅,📆,📇,📁,📂,✂️,📌,📎,✒️,✏️,📏,📐,📕,📗,📘,📙,📓,📔,📒,📚,📖,🔖,📛,🔬,🔭,📰,🎨,🎬,🎤,🎧,🎼,🎵,🎶,🎹,🎻,🎺,🎷,🎸,👾,🎮,🃏,🎴,🀄️,🎲,🎯,🏈,🏀,⚽️,⚾️,🎾,🎱,🏉,🎳,⛳️,🚵,🚴,🏁,🏇,🏆,🎿,🏂,🏊,🏄,🎣,☕️,🍵,🍶,🍼,🍺,🍻,🍸,🍹,🍷,🍴,🍕,🍔,🍟,🍗,🍖,🍝,🍛,🍤,🍱,🍣,🍥,🍙,🍘,🍚,🍜,🍲,🍢,🍡,🍳,🍞,🍩,🍮,🍦,🍨,🍧,🎂,🍰,🍪,🍫,🍬,🍭,🍯,🍎,🍏,🍊,🍋,🍒,🍇,🍉,🍓,🍑,🍈,🍌,🍐,🍍,🍠,🍆,🍅,🌽"
+      }
+    },
+    {
+      "CVDataTitle" : "EmojiCategory-Places",
+      "CVCategoryImage" : "Emoji-PlacesImage",
+      "CVCategoryData" : {
+        "CVSkipNullGlyphs" : true,
+        "Data" : "🏠,🏡,🏫,🏢,🏣,🏥,🏦,🏪,🏩,🏨,💒,⛪️,🏬,🏤,🌇,🌆,🏯,🏰,⛺️,🏭,🗼,🗾,🗻,🌄,🌅,🌃,🗽,🌉,🎠,🎡,⛲️,🎢,🚢,⛵️,🚤,🚣,⚓️,🚀,✈️,💺,🚁,🚂,🚊,🚉,🚞,🚆,🚄,🚅,🚈,🚇,🚝,🚋,🚃,🚎,🚌,🚍,🚙,🚘,🚗,🚕,🚖,🚛,🚚,🚨,🚓,🚔,🚒,🚑,🚐,🚲,🚡,🚟,🚠,🚜,💈,🚏,🎫,🚦,🚥,⚠️,🚧,🔰,⛽️,🏮,🎰,♨️,🗿,🎪,🎭,📍,🚩,🇯🇵,🇰🇷,🇩🇪,🇨🇳,🇺🇸,🇫🇷,🇪🇸,🇮🇹,🇷🇺,🇬🇧"
+      }
+    },
+    {
+      "CVDataTitle" : "EmojiCategory-Symbols",
+      "CVCategoryImage" : "Emoji-SymbolImage",
+      "CVCategoryData" : {
+        "CVSkipNullGlyphs" : true,
+        "Data" : "1️⃣,2️⃣,3️⃣,4️⃣,5️⃣,6️⃣,7️⃣,8️⃣,9️⃣,0️⃣,🔟,🔢,#️⃣,🔣,⬆️,⬇️,⬅️,➡️,🔠,🔡,🔤,↗️,↖️,↘️,↙️,↔️,↕️,🔄,◀️,▶️,🔼,🔽,↩️,↪️,ℹ️,⏪,⏩,⏫,⏬,⤵️,⤴️,🆗,🔀,🔁,🔂,🆕,🆙,🆒,🆓,🆖,📶,🎦,🈁,🈯️,🈳,🈵,🈴,🈲,🉐,🈹,🈺,🈶,🈚️,🚻,🚹,🚺,🚼,🚾,🚰,🚮,🅿️,♿️,🚭,🈷,🈸,🈂,Ⓜ️,🛂,🛄,🛅,🛃,🉑,㊙️,㊗️,🆑,🆘,🆔,🚫,🔞,📵,🚯,🚱,🚳,🚷,🚸,⛔️,✳️,❇️,❎,✅,✴️,💟,🆚,📳,📴,🅰,🅱,🆎,🅾,💠,➿,♻️,♈️,♉️,♊️,♋️,♌️,♍️,♎️,♏️,♐️,♑️,♒️,♓️,⛎,🔯,🏧,💹,💲,💱,©,®,™,❌,‼️,⁉️,❗️,❓,❕,❔,⭕️,🔝,🔚,🔙,🔛,🔜,🔃,🕛,🕧,🕐,🕜,🕑,🕝,🕒,🕞,🕓,🕟,🕔,🕠,🕕,🕖,🕗,🕘,🕙,🕚,🕡,🕢,🕣,🕤,🕥,🕦,✖️,➕,➖,➗,♠️,♥️,♣️,♦️,💮,💯,✔️,☑️,🔘,🔗,➰,〰,〽️,🔱,◼️,◻️,◾️,◽️,▪️,▫️,🔺,🔲 [...]
+      }
+    }
+  ],
+  "CVViewFontList" : [
+    "AppleColorEmoji"
+  ]
+}
\ No newline at end of file
diff --git a/db/aliases.applescript b/db/aliases.applescript
new file mode 100644
index 0000000..41ae4e0
--- /dev/null
+++ b/db/aliases.applescript
@@ -0,0 +1,13 @@
+set jsCode to "document.getElementById('output').value"
+set json to missing value
+
+tell application "Safari"
+  repeat
+    set json to (do JavaScript jsCode in current tab of window 1)
+    if (json is not missing value) then exit repeat
+    delay 0.5
+  end repeat
+  close current tab of window 1
+end tell
+
+return json
diff --git a/db/aliases.html b/db/aliases.html
new file mode 100644
index 0000000..fcc1f1c
--- /dev/null
+++ b/db/aliases.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<title>Emoji alias detection</title>
+<style>
+  textarea {
+    font-family: monospace;
+  }
+</style>
+
+<p>Save the following as <tt>emoji.json</tt>:</p>
+
+<textarea id="output" rows="50" cols="80"></textarea>
+
+<script>
+  const VARIATION_SELECTOR_15 = String.fromCharCode(0xfe0e);
+  const VARIATION_SELECTOR_16 = String.fromCharCode(0xfe0f);
+  const EMOJI_SIZE = 32
+
+  function detectAliases(db) {
+    for (var i = 0; i < db.length; ++i) {
+      var emoji = db[i];
+      var raw = emoji.emoji;
+      if (!raw) {
+        continue;
+      }
+
+      if (raw.indexOf(VARIATION_SELECTOR_16) > -1) {
+        var candidates = [raw.replace(VARIATION_SELECTOR_16, ""), raw];
+      } else {
+        var candidates = [raw, raw + VARIATION_SELECTOR_16];
+      }
+
+      var aliases = candidates.filter(isColorEmoji);
+      emoji.emoji = aliases[0];
+    }
+
+    dump(db);
+  }
+
+  function isColorEmoji(candidate) {
+    // Draw the emoji twice using a different color each time. If the emoji
+    // draws as the same color regardless of what color we set, it's a color
+    // emoji.
+    return color(candidate, "#f00") === color(candidate, "#0f0");
+  }
+
+  var canvas = document.createElement("canvas");
+  canvas.width = canvas.height = EMOJI_SIZE;
+
+  function color(emoji, rgb) {
+    var context = canvas.getContext("2d");
+    context.clearRect(0, 0, canvas.width, canvas.height);
+    context.fillStyle = rgb;
+    context.textBaseline = "top";
+    context.font = EMOJI_SIZE+"px Arial";
+    context.fillText(emoji, 0, 0);
+    var data = context.getImageData(0, 0, EMOJI_SIZE, EMOJI_SIZE).data;
+    for (var i = 0; i < data.length; i += 4) {
+      if (data[i] === 0 && data[i + 1] === 0 && data[i + 2] === 0) {
+        continue;
+      }
+      return data[i].toString(16)
+        + data[i + 1].toString(16)
+        + data[i + 2].toString(16);
+    }
+    return "no colored pixel found";
+  }
+
+  function dump(db) {
+    var json = JSON.stringify(db, null, "  ")
+      .replace(/^( +)(.+)\[\](,?)$/mg, "$1$2[\n$1]$3")
+      .replace(/,\n( *)  /g, "\n$1, ");
+    document.getElementById("output").value = json + "\n";
+  }
+
+  var xhr = new XMLHttpRequest;
+  xhr.onload = function() {
+    detectAliases(JSON.parse(this.responseText));
+  };
+  xhr.open("GET", "emoji.json", false);
+  xhr.send(null);
+</script>
diff --git a/db/dump.rb b/db/dump.rb
new file mode 100644
index 0000000..a3db4d6
--- /dev/null
+++ b/db/dump.rb
@@ -0,0 +1,74 @@
+require 'emoji'
+require 'json'
+
+names_list = File.expand_path('../NamesList.txt', __FILE__)
+
+class UnicodeCharacter
+  attr_reader :code, :description, :aliases
+
+  @index = {}
+  class << self
+    attr_reader :index
+
+    def fetch(code, *args, &block)
+      code = code.to_s(16).rjust(4, '0') if code.is_a?(Integer)
+      index.fetch(code, *args, &block)
+    end
+  end
+
+  def initialize(code, description)
+    @code = code.downcase
+    @description = description.downcase
+    @aliases = []
+    @references = []
+
+    self.class.index[@code] = self
+  end
+
+  def add_alias(string)
+    @aliases.concat string.split(/\s*,\s*/)
+  end
+
+  def add_reference(code)
+    @references << code.downcase
+  end
+end
+
+char = nil
+
+File.foreach(names_list) do |line|
+  case line
+  when /^[A-F0-9]{4,5}\t/
+    code, desc = line.chomp.split("\t", 2)
+    codepoint = code.hex
+    char = UnicodeCharacter.new(code, desc)
+  when /^\t= /
+    char.add_alias($')
+  when /^\tx .+ - ([A-F0-9]{4,5})\)$/
+    char.add_reference($1)
+  end
+end
+
+trap(:PIPE) { abort }
+
+items = []
+variation_codepoint = Emoji::VARIATION_SELECTOR_16.codepoints[0]
+
+for emoji in Emoji.all
+  item = {}
+
+  unless emoji.custom?
+    chars = emoji.raw.codepoints.map { |code| UnicodeCharacter.fetch(code) unless code == variation_codepoint }.compact
+    item[:emoji] = emoji.raw
+    item[:description] = chars.map(&:description).join(' + ')
+  end
+
+  item[:aliases] = emoji.aliases
+  item[:tags] = emoji.tags
+
+  items << item
+end
+
+puts JSON.pretty_generate(items)
+  .gsub("\n\n", "\n")
+  .gsub(/,\n( +)/) { "\n%s, " % $1[2..-1] }
diff --git a/db/emoji.json b/db/emoji.json
new file mode 100644
index 0000000..3803a3d
--- /dev/null
+++ b/db/emoji.json
@@ -0,0 +1,8242 @@
+[
+  {
+    "emoji": "😄"
+  , "description": "smiling face with open mouth and smiling eyes"
+  , "aliases": [
+      "smile"
+    ]
+  , "tags": [
+      "happy"
+    , "joy"
+    , "pleased"
+    ]
+  }
+, {
+    "emoji": "😃"
+  , "description": "smiling face with open mouth"
+  , "aliases": [
+      "smiley"
+    ]
+  , "tags": [
+      "happy"
+    , "joy"
+    , "haha"
+    ]
+  }
+, {
+    "emoji": "😀"
+  , "description": "grinning face"
+  , "aliases": [
+      "grinning"
+    ]
+  , "tags": [
+      "smile"
+    , "happy"
+    ]
+  }
+, {
+    "emoji": "😊"
+  , "description": "smiling face with smiling eyes"
+  , "aliases": [
+      "blush"
+    ]
+  , "tags": [
+      "proud"
+    ]
+  }
+, {
+    "emoji": "☺️"
+  , "description": "white smiling face"
+  , "aliases": [
+      "relaxed"
+    ]
+  , "tags": [
+      "blush"
+    , "pleased"
+    ]
+  }
+, {
+    "emoji": "😉"
+  , "description": "winking face"
+  , "aliases": [
+      "wink"
+    ]
+  , "tags": [
+      "flirt"
+    ]
+  }
+, {
+    "emoji": "😍"
+  , "description": "smiling face with heart-shaped eyes"
+  , "aliases": [
+      "heart_eyes"
+    ]
+  , "tags": [
+      "love"
+    , "crush"
+    ]
+  }
+, {
+    "emoji": "😘"
+  , "description": "face throwing a kiss"
+  , "aliases": [
+      "kissing_heart"
+    ]
+  , "tags": [
+      "flirt"
+    ]
+  }
+, {
+    "emoji": "😚"
+  , "description": "kissing face with closed eyes"
+  , "aliases": [
+      "kissing_closed_eyes"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "😗"
+  , "description": "kissing face"
+  , "aliases": [
+      "kissing"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "😙"
+  , "description": "kissing face with smiling eyes"
+  , "aliases": [
+      "kissing_smiling_eyes"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "😜"
+  , "description": "face with stuck-out tongue and winking eye"
+  , "aliases": [
+      "stuck_out_tongue_winking_eye"
+    ]
+  , "tags": [
+      "prank"
+    , "silly"
+    ]
+  }
+, {
+    "emoji": "😝"
+  , "description": "face with stuck-out tongue and tightly-closed eyes"
+  , "aliases": [
+      "stuck_out_tongue_closed_eyes"
+    ]
+  , "tags": [
+      "prank"
+    ]
+  }
+, {
+    "emoji": "😛"
+  , "description": "face with stuck-out tongue"
+  , "aliases": [
+      "stuck_out_tongue"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "😳"
+  , "description": "flushed face"
+  , "aliases": [
+      "flushed"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "😁"
+  , "description": "grinning face with smiling eyes"
+  , "aliases": [
+      "grin"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "😔"
+  , "description": "pensive face"
+  , "aliases": [
+      "pensive"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "😌"
+  , "description": "relieved face"
+  , "aliases": [
+      "relieved"
+    ]
+  , "tags": [
+      "whew"
+    ]
+  }
+, {
+    "emoji": "😒"
+  , "description": "unamused face"
+  , "aliases": [
+      "unamused"
+    ]
+  , "tags": [
+      "meh"
+    ]
+  }
+, {
+    "emoji": "😞"
+  , "description": "disappointed face"
+  , "aliases": [
+      "disappointed"
+    ]
+  , "tags": [
+      "sad"
+    ]
+  }
+, {
+    "emoji": "😣"
+  , "description": "persevering face"
+  , "aliases": [
+      "persevere"
+    ]
+  , "tags": [
+      "struggling"
+    ]
+  }
+, {
+    "emoji": "😢"
+  , "description": "crying face"
+  , "aliases": [
+      "cry"
+    ]
+  , "tags": [
+      "sad"
+    , "tear"
+    ]
+  }
+, {
+    "emoji": "😂"
+  , "description": "face with tears of joy"
+  , "aliases": [
+      "joy"
+    ]
+  , "tags": [
+      "tears"
+    ]
+  }
+, {
+    "emoji": "😭"
+  , "description": "loudly crying face"
+  , "aliases": [
+      "sob"
+    ]
+  , "tags": [
+      "sad"
+    , "cry"
+    , "bawling"
+    ]
+  }
+, {
+    "emoji": "😪"
+  , "description": "sleepy face"
+  , "aliases": [
+      "sleepy"
+    ]
+  , "tags": [
+      "tired"
+    ]
+  }
+, {
+    "emoji": "😥"
+  , "description": "disappointed but relieved face"
+  , "aliases": [
+      "disappointed_relieved"
+    ]
+  , "tags": [
+      "phew"
+    , "sweat"
+    , "nervous"
+    ]
+  }
+, {
+    "emoji": "😰"
+  , "description": "face with open mouth and cold sweat"
+  , "aliases": [
+      "cold_sweat"
+    ]
+  , "tags": [
+      "nervous"
+    ]
+  }
+, {
+    "emoji": "😅"
+  , "description": "smiling face with open mouth and cold sweat"
+  , "aliases": [
+      "sweat_smile"
+    ]
+  , "tags": [
+      "hot"
+    ]
+  }
+, {
+    "emoji": "😓"
+  , "description": "face with cold sweat"
+  , "aliases": [
+      "sweat"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "😩"
+  , "description": "weary face"
+  , "aliases": [
+      "weary"
+    ]
+  , "tags": [
+      "tired"
+    ]
+  }
+, {
+    "emoji": "😫"
+  , "description": "tired face"
+  , "aliases": [
+      "tired_face"
+    ]
+  , "tags": [
+      "upset"
+    , "whine"
+    ]
+  }
+, {
+    "emoji": "😨"
+  , "description": "fearful face"
+  , "aliases": [
+      "fearful"
+    ]
+  , "tags": [
+      "scared"
+    , "shocked"
+    , "oops"
+    ]
+  }
+, {
+    "emoji": "😱"
+  , "description": "face screaming in fear"
+  , "aliases": [
+      "scream"
+    ]
+  , "tags": [
+      "horror"
+    , "shocked"
+    ]
+  }
+, {
+    "emoji": "😠"
+  , "description": "angry face"
+  , "aliases": [
+      "angry"
+    ]
+  , "tags": [
+      "mad"
+    , "annoyed"
+    ]
+  }
+, {
+    "emoji": "😡"
+  , "description": "pouting face"
+  , "aliases": [
+      "rage"
+    ]
+  , "tags": [
+      "angry"
+    ]
+  }
+, {
+    "emoji": "😤"
+  , "description": "face with look of triumph"
+  , "aliases": [
+      "triumph"
+    ]
+  , "tags": [
+      "smug"
+    ]
+  }
+, {
+    "emoji": "😖"
+  , "description": "confounded face"
+  , "aliases": [
+      "confounded"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "😆"
+  , "description": "smiling face with open mouth and tightly-closed eyes"
+  , "aliases": [
+      "laughing"
+    , "satisfied"
+    ]
+  , "tags": [
+      "happy"
+    , "haha"
+    ]
+  }
+, {
+    "emoji": "😋"
+  , "description": "face savouring delicious food"
+  , "aliases": [
+      "yum"
+    ]
+  , "tags": [
+      "tongue"
+    , "lick"
+    ]
+  }
+, {
+    "emoji": "😷"
+  , "description": "face with medical mask"
+  , "aliases": [
+      "mask"
+    ]
+  , "tags": [
+      "sick"
+    , "ill"
+    ]
+  }
+, {
+    "emoji": "😎"
+  , "description": "smiling face with sunglasses"
+  , "aliases": [
+      "sunglasses"
+    ]
+  , "tags": [
+      "cool"
+    ]
+  }
+, {
+    "emoji": "😴"
+  , "description": "sleeping face"
+  , "aliases": [
+      "sleeping"
+    ]
+  , "tags": [
+      "zzz"
+    ]
+  }
+, {
+    "emoji": "😵"
+  , "description": "dizzy face"
+  , "aliases": [
+      "dizzy_face"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "😲"
+  , "description": "astonished face"
+  , "aliases": [
+      "astonished"
+    ]
+  , "tags": [
+      "amazed"
+    , "gasp"
+    ]
+  }
+, {
+    "emoji": "😟"
+  , "description": "worried face"
+  , "aliases": [
+      "worried"
+    ]
+  , "tags": [
+      "nervous"
+    ]
+  }
+, {
+    "emoji": "😦"
+  , "description": "frowning face with open mouth"
+  , "aliases": [
+      "frowning"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "😧"
+  , "description": "anguished face"
+  , "aliases": [
+      "anguished"
+    ]
+  , "tags": [
+      "stunned"
+    ]
+  }
+, {
+    "emoji": "😈"
+  , "description": "smiling face with horns"
+  , "aliases": [
+      "smiling_imp"
+    ]
+  , "tags": [
+      "devil"
+    , "evil"
+    , "horns"
+    ]
+  }
+, {
+    "emoji": "👿"
+  , "description": "imp"
+  , "aliases": [
+      "imp"
+    ]
+  , "tags": [
+      "angry"
+    , "devil"
+    , "evil"
+    , "horns"
+    ]
+  }
+, {
+    "emoji": "😮"
+  , "description": "face with open mouth"
+  , "aliases": [
+      "open_mouth"
+    ]
+  , "tags": [
+      "surprise"
+    , "impressed"
+    , "wow"
+    ]
+  }
+, {
+    "emoji": "😬"
+  , "description": "grimacing face"
+  , "aliases": [
+      "grimacing"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "😐"
+  , "description": "neutral face"
+  , "aliases": [
+      "neutral_face"
+    ]
+  , "tags": [
+      "meh"
+    ]
+  }
+, {
+    "emoji": "😕"
+  , "description": "confused face"
+  , "aliases": [
+      "confused"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "😯"
+  , "description": "hushed face"
+  , "aliases": [
+      "hushed"
+    ]
+  , "tags": [
+      "silence"
+    , "speechless"
+    ]
+  }
+, {
+    "emoji": "😶"
+  , "description": "face without mouth"
+  , "aliases": [
+      "no_mouth"
+    ]
+  , "tags": [
+      "mute"
+    , "silence"
+    ]
+  }
+, {
+    "emoji": "😇"
+  , "description": "smiling face with halo"
+  , "aliases": [
+      "innocent"
+    ]
+  , "tags": [
+      "angel"
+    ]
+  }
+, {
+    "emoji": "😏"
+  , "description": "smirking face"
+  , "aliases": [
+      "smirk"
+    ]
+  , "tags": [
+      "smug"
+    ]
+  }
+, {
+    "emoji": "😑"
+  , "description": "expressionless face"
+  , "aliases": [
+      "expressionless"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "👲"
+  , "description": "man with gua pi mao"
+  , "aliases": [
+      "man_with_gua_pi_mao"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "👳"
+  , "description": "man with turban"
+  , "aliases": [
+      "man_with_turban"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "👮"
+  , "description": "police officer"
+  , "aliases": [
+      "cop"
+    ]
+  , "tags": [
+      "police"
+    , "law"
+    ]
+  }
+, {
+    "emoji": "👷"
+  , "description": "construction worker"
+  , "aliases": [
+      "construction_worker"
+    ]
+  , "tags": [
+      "helmet"
+    ]
+  }
+, {
+    "emoji": "💂"
+  , "description": "guardsman"
+  , "aliases": [
+      "guardsman"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "👶"
+  , "description": "baby"
+  , "aliases": [
+      "baby"
+    ]
+  , "tags": [
+      "child"
+    , "newborn"
+    ]
+  }
+, {
+    "emoji": "👦"
+  , "description": "boy"
+  , "aliases": [
+      "boy"
+    ]
+  , "tags": [
+      "child"
+    ]
+  }
+, {
+    "emoji": "👧"
+  , "description": "girl"
+  , "aliases": [
+      "girl"
+    ]
+  , "tags": [
+      "child"
+    ]
+  }
+, {
+    "emoji": "👨"
+  , "description": "man"
+  , "aliases": [
+      "man"
+    ]
+  , "tags": [
+      "mustache"
+    , "father"
+    , "dad"
+    ]
+  }
+, {
+    "emoji": "👩"
+  , "description": "woman"
+  , "aliases": [
+      "woman"
+    ]
+  , "tags": [
+      "girls"
+    ]
+  }
+, {
+    "emoji": "👴"
+  , "description": "older man"
+  , "aliases": [
+      "older_man"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "👵"
+  , "description": "older woman"
+  , "aliases": [
+      "older_woman"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "👱"
+  , "description": "person with blond hair"
+  , "aliases": [
+      "person_with_blond_hair"
+    ]
+  , "tags": [
+      "boy"
+    ]
+  }
+, {
+    "emoji": "👼"
+  , "description": "baby angel"
+  , "aliases": [
+      "angel"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "👸"
+  , "description": "princess"
+  , "aliases": [
+      "princess"
+    ]
+  , "tags": [
+      "blonde"
+    , "crown"
+    , "royal"
+    ]
+  }
+, {
+    "emoji": "😺"
+  , "description": "smiling cat face with open mouth"
+  , "aliases": [
+      "smiley_cat"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "😸"
+  , "description": "grinning cat face with smiling eyes"
+  , "aliases": [
+      "smile_cat"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "😻"
+  , "description": "smiling cat face with heart-shaped eyes"
+  , "aliases": [
+      "heart_eyes_cat"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "😽"
+  , "description": "kissing cat face with closed eyes"
+  , "aliases": [
+      "kissing_cat"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "😼"
+  , "description": "cat face with wry smile"
+  , "aliases": [
+      "smirk_cat"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🙀"
+  , "description": "weary cat face"
+  , "aliases": [
+      "scream_cat"
+    ]
+  , "tags": [
+      "horror"
+    ]
+  }
+, {
+    "emoji": "😿"
+  , "description": "crying cat face"
+  , "aliases": [
+      "crying_cat_face"
+    ]
+  , "tags": [
+      "sad"
+    , "tear"
+    ]
+  }
+, {
+    "emoji": "😹"
+  , "description": "cat face with tears of joy"
+  , "aliases": [
+      "joy_cat"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "😾"
+  , "description": "pouting cat face"
+  , "aliases": [
+      "pouting_cat"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "👹"
+  , "description": "japanese ogre"
+  , "aliases": [
+      "japanese_ogre"
+    ]
+  , "tags": [
+      "monster"
+    ]
+  }
+, {
+    "emoji": "👺"
+  , "description": "japanese goblin"
+  , "aliases": [
+      "japanese_goblin"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🙈"
+  , "description": "see-no-evil monkey"
+  , "aliases": [
+      "see_no_evil"
+    ]
+  , "tags": [
+      "monkey"
+    , "blind"
+    , "ignore"
+    ]
+  }
+, {
+    "emoji": "🙉"
+  , "description": "hear-no-evil monkey"
+  , "aliases": [
+      "hear_no_evil"
+    ]
+  , "tags": [
+      "monkey"
+    , "deaf"
+    ]
+  }
+, {
+    "emoji": "🙊"
+  , "description": "speak-no-evil monkey"
+  , "aliases": [
+      "speak_no_evil"
+    ]
+  , "tags": [
+      "monkey"
+    , "mute"
+    , "hush"
+    ]
+  }
+, {
+    "emoji": "💀"
+  , "description": "skull"
+  , "aliases": [
+      "skull"
+    ]
+  , "tags": [
+      "dead"
+    , "danger"
+    , "poison"
+    ]
+  }
+, {
+    "emoji": "👽"
+  , "description": "extraterrestrial alien"
+  , "aliases": [
+      "alien"
+    ]
+  , "tags": [
+      "ufo"
+    ]
+  }
+, {
+    "emoji": "💩"
+  , "description": "pile of poo"
+  , "aliases": [
+      "hankey"
+    , "poop"
+    , "shit"
+    ]
+  , "tags": [
+      "crap"
+    ]
+  }
+, {
+    "emoji": "🔥"
+  , "description": "fire"
+  , "aliases": [
+      "fire"
+    ]
+  , "tags": [
+      "burn"
+    ]
+  }
+, {
+    "emoji": "✨"
+  , "description": "sparkles"
+  , "aliases": [
+      "sparkles"
+    ]
+  , "tags": [
+      "shiny"
+    ]
+  }
+, {
+    "emoji": "🌟"
+  , "description": "glowing star"
+  , "aliases": [
+      "star2"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💫"
+  , "description": "dizzy symbol"
+  , "aliases": [
+      "dizzy"
+    ]
+  , "tags": [
+      "star"
+    ]
+  }
+, {
+    "emoji": "💥"
+  , "description": "collision symbol"
+  , "aliases": [
+      "boom"
+    , "collision"
+    ]
+  , "tags": [
+      "explode"
+    ]
+  }
+, {
+    "emoji": "💢"
+  , "description": "anger symbol"
+  , "aliases": [
+      "anger"
+    ]
+  , "tags": [
+      "angry"
+    ]
+  }
+, {
+    "emoji": "💦"
+  , "description": "splashing sweat symbol"
+  , "aliases": [
+      "sweat_drops"
+    ]
+  , "tags": [
+      "water"
+    , "workout"
+    ]
+  }
+, {
+    "emoji": "💧"
+  , "description": "droplet"
+  , "aliases": [
+      "droplet"
+    ]
+  , "tags": [
+      "water"
+    ]
+  }
+, {
+    "emoji": "💤"
+  , "description": "sleeping symbol"
+  , "aliases": [
+      "zzz"
+    ]
+  , "tags": [
+      "sleeping"
+    ]
+  }
+, {
+    "emoji": "💨"
+  , "description": "dash symbol"
+  , "aliases": [
+      "dash"
+    ]
+  , "tags": [
+      "wind"
+    , "blow"
+    , "fast"
+    ]
+  }
+, {
+    "emoji": "👂"
+  , "description": "ear"
+  , "aliases": [
+      "ear"
+    ]
+  , "tags": [
+      "hear"
+    , "sound"
+    , "listen"
+    ]
+  }
+, {
+    "emoji": "👀"
+  , "description": "eyes"
+  , "aliases": [
+      "eyes"
+    ]
+  , "tags": [
+      "look"
+    , "see"
+    , "watch"
+    ]
+  }
+, {
+    "emoji": "👃"
+  , "description": "nose"
+  , "aliases": [
+      "nose"
+    ]
+  , "tags": [
+      "smell"
+    ]
+  }
+, {
+    "emoji": "👅"
+  , "description": "tongue"
+  , "aliases": [
+      "tongue"
+    ]
+  , "tags": [
+      "taste"
+    ]
+  }
+, {
+    "emoji": "👄"
+  , "description": "mouth"
+  , "aliases": [
+      "lips"
+    ]
+  , "tags": [
+      "kiss"
+    ]
+  }
+, {
+    "emoji": "👍"
+  , "description": "thumbs up sign"
+  , "aliases": [
+      "+1"
+    , "thumbsup"
+    ]
+  , "tags": [
+      "approve"
+    , "ok"
+    ]
+  }
+, {
+    "emoji": "👎"
+  , "description": "thumbs down sign"
+  , "aliases": [
+      "-1"
+    , "thumbsdown"
+    ]
+  , "tags": [
+      "disapprove"
+    , "bury"
+    ]
+  }
+, {
+    "emoji": "👌"
+  , "description": "ok hand sign"
+  , "aliases": [
+      "ok_hand"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "👊"
+  , "description": "fisted hand sign"
+  , "aliases": [
+      "facepunch"
+    , "punch"
+    ]
+  , "tags": [
+      "attack"
+    ]
+  }
+, {
+    "emoji": "✊"
+  , "description": "raised fist"
+  , "aliases": [
+      "fist"
+    ]
+  , "tags": [
+      "power"
+    ]
+  }
+, {
+    "emoji": "✌️"
+  , "description": "victory hand"
+  , "aliases": [
+      "v"
+    ]
+  , "tags": [
+      "victory"
+    , "peace"
+    ]
+  }
+, {
+    "emoji": "👋"
+  , "description": "waving hand sign"
+  , "aliases": [
+      "wave"
+    ]
+  , "tags": [
+      "goodbye"
+    ]
+  }
+, {
+    "emoji": "✋"
+  , "description": "raised hand"
+  , "aliases": [
+      "hand"
+    , "raised_hand"
+    ]
+  , "tags": [
+      "highfive"
+    , "stop"
+    ]
+  }
+, {
+    "emoji": "👐"
+  , "description": "open hands sign"
+  , "aliases": [
+      "open_hands"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "👆"
+  , "description": "white up pointing backhand index"
+  , "aliases": [
+      "point_up_2"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "👇"
+  , "description": "white down pointing backhand index"
+  , "aliases": [
+      "point_down"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "👉"
+  , "description": "white right pointing backhand index"
+  , "aliases": [
+      "point_right"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "👈"
+  , "description": "white left pointing backhand index"
+  , "aliases": [
+      "point_left"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🙌"
+  , "description": "person raising both hands in celebration"
+  , "aliases": [
+      "raised_hands"
+    ]
+  , "tags": [
+      "hooray"
+    ]
+  }
+, {
+    "emoji": "🙏"
+  , "description": "person with folded hands"
+  , "aliases": [
+      "pray"
+    ]
+  , "tags": [
+      "please"
+    , "hope"
+    , "wish"
+    ]
+  }
+, {
+    "emoji": "☝️"
+  , "description": "white up pointing index"
+  , "aliases": [
+      "point_up"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "👏"
+  , "description": "clapping hands sign"
+  , "aliases": [
+      "clap"
+    ]
+  , "tags": [
+      "praise"
+    , "applause"
+    ]
+  }
+, {
+    "emoji": "💪"
+  , "description": "flexed biceps"
+  , "aliases": [
+      "muscle"
+    ]
+  , "tags": [
+      "flex"
+    , "bicep"
+    , "strong"
+    , "workout"
+    ]
+  }
+, {
+    "emoji": "🚶"
+  , "description": "pedestrian"
+  , "aliases": [
+      "walking"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🏃"
+  , "description": "runner"
+  , "aliases": [
+      "runner"
+    , "running"
+    ]
+  , "tags": [
+      "exercise"
+    , "workout"
+    , "marathon"
+    ]
+  }
+, {
+    "emoji": "💃"
+  , "description": "dancer"
+  , "aliases": [
+      "dancer"
+    ]
+  , "tags": [
+      "dress"
+    ]
+  }
+, {
+    "emoji": "👫"
+  , "description": "man and woman holding hands"
+  , "aliases": [
+      "couple"
+    ]
+  , "tags": [
+      "date"
+    ]
+  }
+, {
+    "emoji": "👪"
+  , "description": "family"
+  , "aliases": [
+      "family"
+    ]
+  , "tags": [
+      "home"
+    , "parents"
+    , "child"
+    ]
+  }
+, {
+    "emoji": "👬"
+  , "description": "two men holding hands"
+  , "aliases": [
+      "two_men_holding_hands"
+    ]
+  , "tags": [
+      "couple"
+    , "date"
+    ]
+  }
+, {
+    "emoji": "👭"
+  , "description": "two women holding hands"
+  , "aliases": [
+      "two_women_holding_hands"
+    ]
+  , "tags": [
+      "couple"
+    , "date"
+    ]
+  }
+, {
+    "emoji": "💏"
+  , "description": "kiss"
+  , "aliases": [
+      "couplekiss"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💑"
+  , "description": "couple with heart"
+  , "aliases": [
+      "couple_with_heart"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "👯"
+  , "description": "woman with bunny ears"
+  , "aliases": [
+      "dancers"
+    ]
+  , "tags": [
+      "bunny"
+    ]
+  }
+, {
+    "emoji": "🙆"
+  , "description": "face with ok gesture"
+  , "aliases": [
+      "ok_woman"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🙅"
+  , "description": "face with no good gesture"
+  , "aliases": [
+      "no_good"
+    ]
+  , "tags": [
+      "stop"
+    , "halt"
+    ]
+  }
+, {
+    "emoji": "💁"
+  , "description": "information desk person"
+  , "aliases": [
+      "information_desk_person"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🙋"
+  , "description": "happy person raising one hand"
+  , "aliases": [
+      "raising_hand"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💆"
+  , "description": "face massage"
+  , "aliases": [
+      "massage"
+    ]
+  , "tags": [
+      "spa"
+    ]
+  }
+, {
+    "emoji": "💇"
+  , "description": "haircut"
+  , "aliases": [
+      "haircut"
+    ]
+  , "tags": [
+      "beauty"
+    ]
+  }
+, {
+    "emoji": "💅"
+  , "description": "nail polish"
+  , "aliases": [
+      "nail_care"
+    ]
+  , "tags": [
+      "beauty"
+    , "manicure"
+    ]
+  }
+, {
+    "emoji": "👰"
+  , "description": "bride with veil"
+  , "aliases": [
+      "bride_with_veil"
+    ]
+  , "tags": [
+      "marriage"
+    , "wedding"
+    ]
+  }
+, {
+    "emoji": "🙎"
+  , "description": "person with pouting face"
+  , "aliases": [
+      "person_with_pouting_face"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🙍"
+  , "description": "person frowning"
+  , "aliases": [
+      "person_frowning"
+    ]
+  , "tags": [
+      "sad"
+    ]
+  }
+, {
+    "emoji": "🙇"
+  , "description": "person bowing deeply"
+  , "aliases": [
+      "bow"
+    ]
+  , "tags": [
+      "respect"
+    , "thanks"
+    ]
+  }
+, {
+    "emoji": "🎩"
+  , "description": "top hat"
+  , "aliases": [
+      "tophat"
+    ]
+  , "tags": [
+      "hat"
+    , "classy"
+    ]
+  }
+, {
+    "emoji": "👑"
+  , "description": "crown"
+  , "aliases": [
+      "crown"
+    ]
+  , "tags": [
+      "king"
+    , "queen"
+    , "royal"
+    ]
+  }
+, {
+    "emoji": "👒"
+  , "description": "womans hat"
+  , "aliases": [
+      "womans_hat"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "👟"
+  , "description": "athletic shoe"
+  , "aliases": [
+      "athletic_shoe"
+    ]
+  , "tags": [
+      "sneaker"
+    , "sport"
+    , "running"
+    ]
+  }
+, {
+    "emoji": "👞"
+  , "description": "mans shoe"
+  , "aliases": [
+      "mans_shoe"
+    , "shoe"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "👡"
+  , "description": "womans sandal"
+  , "aliases": [
+      "sandal"
+    ]
+  , "tags": [
+      "shoe"
+    ]
+  }
+, {
+    "emoji": "👠"
+  , "description": "high-heeled shoe"
+  , "aliases": [
+      "high_heel"
+    ]
+  , "tags": [
+      "shoe"
+    ]
+  }
+, {
+    "emoji": "👢"
+  , "description": "womans boots"
+  , "aliases": [
+      "boot"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "👕"
+  , "description": "t-shirt"
+  , "aliases": [
+      "shirt"
+    , "tshirt"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "👔"
+  , "description": "necktie"
+  , "aliases": [
+      "necktie"
+    ]
+  , "tags": [
+      "shirt"
+    , "formal"
+    ]
+  }
+, {
+    "emoji": "👚"
+  , "description": "womans clothes"
+  , "aliases": [
+      "womans_clothes"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "👗"
+  , "description": "dress"
+  , "aliases": [
+      "dress"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🎽"
+  , "description": "running shirt with sash"
+  , "aliases": [
+      "running_shirt_with_sash"
+    ]
+  , "tags": [
+      "marathon"
+    ]
+  }
+, {
+    "emoji": "👖"
+  , "description": "jeans"
+  , "aliases": [
+      "jeans"
+    ]
+  , "tags": [
+      "pants"
+    ]
+  }
+, {
+    "emoji": "👘"
+  , "description": "kimono"
+  , "aliases": [
+      "kimono"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "👙"
+  , "description": "bikini"
+  , "aliases": [
+      "bikini"
+    ]
+  , "tags": [
+      "beach"
+    ]
+  }
+, {
+    "emoji": "💼"
+  , "description": "briefcase"
+  , "aliases": [
+      "briefcase"
+    ]
+  , "tags": [
+      "business"
+    ]
+  }
+, {
+    "emoji": "👜"
+  , "description": "handbag"
+  , "aliases": [
+      "handbag"
+    ]
+  , "tags": [
+      "bag"
+    ]
+  }
+, {
+    "emoji": "👝"
+  , "description": "pouch"
+  , "aliases": [
+      "pouch"
+    ]
+  , "tags": [
+      "bag"
+    ]
+  }
+, {
+    "emoji": "👛"
+  , "description": "purse"
+  , "aliases": [
+      "purse"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "👓"
+  , "description": "eyeglasses"
+  , "aliases": [
+      "eyeglasses"
+    ]
+  , "tags": [
+      "glasses"
+    ]
+  }
+, {
+    "emoji": "🎀"
+  , "description": "ribbon"
+  , "aliases": [
+      "ribbon"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌂"
+  , "description": "closed umbrella"
+  , "aliases": [
+      "closed_umbrella"
+    ]
+  , "tags": [
+      "weather"
+    , "rain"
+    ]
+  }
+, {
+    "emoji": "💄"
+  , "description": "lipstick"
+  , "aliases": [
+      "lipstick"
+    ]
+  , "tags": [
+      "makeup"
+    ]
+  }
+, {
+    "emoji": "💛"
+  , "description": "yellow heart"
+  , "aliases": [
+      "yellow_heart"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💙"
+  , "description": "blue heart"
+  , "aliases": [
+      "blue_heart"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💜"
+  , "description": "purple heart"
+  , "aliases": [
+      "purple_heart"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💚"
+  , "description": "green heart"
+  , "aliases": [
+      "green_heart"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "❤️"
+  , "description": "heavy black heart"
+  , "aliases": [
+      "heart"
+    ]
+  , "tags": [
+      "love"
+    ]
+  }
+, {
+    "emoji": "💔"
+  , "description": "broken heart"
+  , "aliases": [
+      "broken_heart"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💗"
+  , "description": "growing heart"
+  , "aliases": [
+      "heartpulse"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💓"
+  , "description": "beating heart"
+  , "aliases": [
+      "heartbeat"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💕"
+  , "description": "two hearts"
+  , "aliases": [
+      "two_hearts"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💖"
+  , "description": "sparkling heart"
+  , "aliases": [
+      "sparkling_heart"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💞"
+  , "description": "revolving hearts"
+  , "aliases": [
+      "revolving_hearts"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💘"
+  , "description": "heart with arrow"
+  , "aliases": [
+      "cupid"
+    ]
+  , "tags": [
+      "love"
+    , "heart"
+    ]
+  }
+, {
+    "emoji": "💌"
+  , "description": "love letter"
+  , "aliases": [
+      "love_letter"
+    ]
+  , "tags": [
+      "email"
+    , "envelope"
+    ]
+  }
+, {
+    "emoji": "💋"
+  , "description": "kiss mark"
+  , "aliases": [
+      "kiss"
+    ]
+  , "tags": [
+      "lipstick"
+    ]
+  }
+, {
+    "emoji": "💍"
+  , "description": "ring"
+  , "aliases": [
+      "ring"
+    ]
+  , "tags": [
+      "wedding"
+    , "marriage"
+    , "engaged"
+    ]
+  }
+, {
+    "emoji": "💎"
+  , "description": "gem stone"
+  , "aliases": [
+      "gem"
+    ]
+  , "tags": [
+      "diamond"
+    ]
+  }
+, {
+    "emoji": "👤"
+  , "description": "bust in silhouette"
+  , "aliases": [
+      "bust_in_silhouette"
+    ]
+  , "tags": [
+      "user"
+    ]
+  }
+, {
+    "emoji": "👥"
+  , "description": "busts in silhouette"
+  , "aliases": [
+      "busts_in_silhouette"
+    ]
+  , "tags": [
+      "users"
+    , "group"
+    , "team"
+    ]
+  }
+, {
+    "emoji": "💬"
+  , "description": "speech balloon"
+  , "aliases": [
+      "speech_balloon"
+    ]
+  , "tags": [
+      "comment"
+    ]
+  }
+, {
+    "emoji": "👣"
+  , "description": "footprints"
+  , "aliases": [
+      "footprints"
+    ]
+  , "tags": [
+      "feet"
+    , "tracks"
+    ]
+  }
+, {
+    "emoji": "💭"
+  , "description": "thought balloon"
+  , "aliases": [
+      "thought_balloon"
+    ]
+  , "tags": [
+      "thinking"
+    ]
+  }
+, {
+    "emoji": "🐶"
+  , "description": "dog face"
+  , "aliases": [
+      "dog"
+    ]
+  , "tags": [
+      "pet"
+    ]
+  }
+, {
+    "emoji": "🐺"
+  , "description": "wolf face"
+  , "aliases": [
+      "wolf"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐱"
+  , "description": "cat face"
+  , "aliases": [
+      "cat"
+    ]
+  , "tags": [
+      "pet"
+    ]
+  }
+, {
+    "emoji": "🐭"
+  , "description": "mouse face"
+  , "aliases": [
+      "mouse"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐹"
+  , "description": "hamster face"
+  , "aliases": [
+      "hamster"
+    ]
+  , "tags": [
+      "pet"
+    ]
+  }
+, {
+    "emoji": "🐰"
+  , "description": "rabbit face"
+  , "aliases": [
+      "rabbit"
+    ]
+  , "tags": [
+      "bunny"
+    ]
+  }
+, {
+    "emoji": "🐸"
+  , "description": "frog face"
+  , "aliases": [
+      "frog"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐯"
+  , "description": "tiger face"
+  , "aliases": [
+      "tiger"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐨"
+  , "description": "koala"
+  , "aliases": [
+      "koala"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐻"
+  , "description": "bear face"
+  , "aliases": [
+      "bear"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐷"
+  , "description": "pig face"
+  , "aliases": [
+      "pig"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐽"
+  , "description": "pig nose"
+  , "aliases": [
+      "pig_nose"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐮"
+  , "description": "cow face"
+  , "aliases": [
+      "cow"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐗"
+  , "description": "boar"
+  , "aliases": [
+      "boar"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐵"
+  , "description": "monkey face"
+  , "aliases": [
+      "monkey_face"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐒"
+  , "description": "monkey"
+  , "aliases": [
+      "monkey"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐴"
+  , "description": "horse face"
+  , "aliases": [
+      "horse"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐑"
+  , "description": "sheep"
+  , "aliases": [
+      "sheep"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐘"
+  , "description": "elephant"
+  , "aliases": [
+      "elephant"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐼"
+  , "description": "panda face"
+  , "aliases": [
+      "panda_face"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐧"
+  , "description": "penguin"
+  , "aliases": [
+      "penguin"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐦"
+  , "description": "bird"
+  , "aliases": [
+      "bird"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐤"
+  , "description": "baby chick"
+  , "aliases": [
+      "baby_chick"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐥"
+  , "description": "front-facing baby chick"
+  , "aliases": [
+      "hatched_chick"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐣"
+  , "description": "hatching chick"
+  , "aliases": [
+      "hatching_chick"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐔"
+  , "description": "chicken"
+  , "aliases": [
+      "chicken"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐍"
+  , "description": "snake"
+  , "aliases": [
+      "snake"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐢"
+  , "description": "turtle"
+  , "aliases": [
+      "turtle"
+    ]
+  , "tags": [
+      "slow"
+    ]
+  }
+, {
+    "emoji": "🐛"
+  , "description": "bug"
+  , "aliases": [
+      "bug"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐝"
+  , "description": "honeybee"
+  , "aliases": [
+      "bee"
+    , "honeybee"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐜"
+  , "description": "ant"
+  , "aliases": [
+      "ant"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐞"
+  , "description": "lady beetle"
+  , "aliases": [
+      "beetle"
+    ]
+  , "tags": [
+      "bug"
+    ]
+  }
+, {
+    "emoji": "🐌"
+  , "description": "snail"
+  , "aliases": [
+      "snail"
+    ]
+  , "tags": [
+      "slow"
+    ]
+  }
+, {
+    "emoji": "🐙"
+  , "description": "octopus"
+  , "aliases": [
+      "octopus"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐚"
+  , "description": "spiral shell"
+  , "aliases": [
+      "shell"
+    ]
+  , "tags": [
+      "sea"
+    , "beach"
+    ]
+  }
+, {
+    "emoji": "🐠"
+  , "description": "tropical fish"
+  , "aliases": [
+      "tropical_fish"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐟"
+  , "description": "fish"
+  , "aliases": [
+      "fish"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐬"
+  , "description": "dolphin"
+  , "aliases": [
+      "dolphin"
+    , "flipper"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐳"
+  , "description": "spouting whale"
+  , "aliases": [
+      "whale"
+    ]
+  , "tags": [
+      "sea"
+    ]
+  }
+, {
+    "emoji": "🐋"
+  , "description": "whale"
+  , "aliases": [
+      "whale2"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐄"
+  , "description": "cow"
+  , "aliases": [
+      "cow2"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐏"
+  , "description": "ram"
+  , "aliases": [
+      "ram"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐀"
+  , "description": "rat"
+  , "aliases": [
+      "rat"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐃"
+  , "description": "water buffalo"
+  , "aliases": [
+      "water_buffalo"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐅"
+  , "description": "tiger"
+  , "aliases": [
+      "tiger2"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐇"
+  , "description": "rabbit"
+  , "aliases": [
+      "rabbit2"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐉"
+  , "description": "dragon"
+  , "aliases": [
+      "dragon"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐎"
+  , "description": "horse"
+  , "aliases": [
+      "racehorse"
+    ]
+  , "tags": [
+      "speed"
+    ]
+  }
+, {
+    "emoji": "🐐"
+  , "description": "goat"
+  , "aliases": [
+      "goat"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐓"
+  , "description": "rooster"
+  , "aliases": [
+      "rooster"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐕"
+  , "description": "dog"
+  , "aliases": [
+      "dog2"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐖"
+  , "description": "pig"
+  , "aliases": [
+      "pig2"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐁"
+  , "description": "mouse"
+  , "aliases": [
+      "mouse2"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐂"
+  , "description": "ox"
+  , "aliases": [
+      "ox"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐲"
+  , "description": "dragon face"
+  , "aliases": [
+      "dragon_face"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐡"
+  , "description": "blowfish"
+  , "aliases": [
+      "blowfish"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐊"
+  , "description": "crocodile"
+  , "aliases": [
+      "crocodile"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐫"
+  , "description": "bactrian camel"
+  , "aliases": [
+      "camel"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐪"
+  , "description": "dromedary camel"
+  , "aliases": [
+      "dromedary_camel"
+    ]
+  , "tags": [
+      "desert"
+    ]
+  }
+, {
+    "emoji": "🐆"
+  , "description": "leopard"
+  , "aliases": [
+      "leopard"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐈"
+  , "description": "cat"
+  , "aliases": [
+      "cat2"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🐩"
+  , "description": "poodle"
+  , "aliases": [
+      "poodle"
+    ]
+  , "tags": [
+      "dog"
+    ]
+  }
+, {
+    "emoji": "🐾"
+  , "description": "paw prints"
+  , "aliases": [
+      "feet"
+    , "paw_prints"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💐"
+  , "description": "bouquet"
+  , "aliases": [
+      "bouquet"
+    ]
+  , "tags": [
+      "flowers"
+    ]
+  }
+, {
+    "emoji": "🌸"
+  , "description": "cherry blossom"
+  , "aliases": [
+      "cherry_blossom"
+    ]
+  , "tags": [
+      "flower"
+    , "spring"
+    ]
+  }
+, {
+    "emoji": "🌷"
+  , "description": "tulip"
+  , "aliases": [
+      "tulip"
+    ]
+  , "tags": [
+      "flower"
+    ]
+  }
+, {
+    "emoji": "🍀"
+  , "description": "four leaf clover"
+  , "aliases": [
+      "four_leaf_clover"
+    ]
+  , "tags": [
+      "luck"
+    ]
+  }
+, {
+    "emoji": "🌹"
+  , "description": "rose"
+  , "aliases": [
+      "rose"
+    ]
+  , "tags": [
+      "flower"
+    ]
+  }
+, {
+    "emoji": "🌻"
+  , "description": "sunflower"
+  , "aliases": [
+      "sunflower"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌺"
+  , "description": "hibiscus"
+  , "aliases": [
+      "hibiscus"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍁"
+  , "description": "maple leaf"
+  , "aliases": [
+      "maple_leaf"
+    ]
+  , "tags": [
+      "canada"
+    ]
+  }
+, {
+    "emoji": "🍃"
+  , "description": "leaf fluttering in wind"
+  , "aliases": [
+      "leaves"
+    ]
+  , "tags": [
+      "leaf"
+    ]
+  }
+, {
+    "emoji": "🍂"
+  , "description": "fallen leaf"
+  , "aliases": [
+      "fallen_leaf"
+    ]
+  , "tags": [
+      "autumn"
+    ]
+  }
+, {
+    "emoji": "🌿"
+  , "description": "herb"
+  , "aliases": [
+      "herb"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌾"
+  , "description": "ear of rice"
+  , "aliases": [
+      "ear_of_rice"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍄"
+  , "description": "mushroom"
+  , "aliases": [
+      "mushroom"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌵"
+  , "description": "cactus"
+  , "aliases": [
+      "cactus"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌴"
+  , "description": "palm tree"
+  , "aliases": [
+      "palm_tree"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌲"
+  , "description": "evergreen tree"
+  , "aliases": [
+      "evergreen_tree"
+    ]
+  , "tags": [
+      "wood"
+    ]
+  }
+, {
+    "emoji": "🌳"
+  , "description": "deciduous tree"
+  , "aliases": [
+      "deciduous_tree"
+    ]
+  , "tags": [
+      "wood"
+    ]
+  }
+, {
+    "emoji": "🌰"
+  , "description": "chestnut"
+  , "aliases": [
+      "chestnut"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌱"
+  , "description": "seedling"
+  , "aliases": [
+      "seedling"
+    ]
+  , "tags": [
+      "plant"
+    ]
+  }
+, {
+    "emoji": "🌼"
+  , "description": "blossom"
+  , "aliases": [
+      "blossom"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌐"
+  , "description": "globe with meridians"
+  , "aliases": [
+      "globe_with_meridians"
+    ]
+  , "tags": [
+      "world"
+    , "global"
+    , "international"
+    ]
+  }
+, {
+    "emoji": "🌞"
+  , "description": "sun with face"
+  , "aliases": [
+      "sun_with_face"
+    ]
+  , "tags": [
+      "summer"
+    ]
+  }
+, {
+    "emoji": "🌝"
+  , "description": "full moon with face"
+  , "aliases": [
+      "full_moon_with_face"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌚"
+  , "description": "new moon with face"
+  , "aliases": [
+      "new_moon_with_face"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌑"
+  , "description": "new moon symbol"
+  , "aliases": [
+      "new_moon"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌒"
+  , "description": "waxing crescent moon symbol"
+  , "aliases": [
+      "waxing_crescent_moon"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌓"
+  , "description": "first quarter moon symbol"
+  , "aliases": [
+      "first_quarter_moon"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌔"
+  , "description": "waxing gibbous moon symbol"
+  , "aliases": [
+      "moon"
+    , "waxing_gibbous_moon"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌕"
+  , "description": "full moon symbol"
+  , "aliases": [
+      "full_moon"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌖"
+  , "description": "waning gibbous moon symbol"
+  , "aliases": [
+      "waning_gibbous_moon"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌗"
+  , "description": "last quarter moon symbol"
+  , "aliases": [
+      "last_quarter_moon"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌘"
+  , "description": "waning crescent moon symbol"
+  , "aliases": [
+      "waning_crescent_moon"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌜"
+  , "description": "last quarter moon with face"
+  , "aliases": [
+      "last_quarter_moon_with_face"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌛"
+  , "description": "first quarter moon with face"
+  , "aliases": [
+      "first_quarter_moon_with_face"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌙"
+  , "description": "crescent moon"
+  , "aliases": [
+      "crescent_moon"
+    ]
+  , "tags": [
+      "night"
+    ]
+  }
+, {
+    "emoji": "🌍"
+  , "description": "earth globe europe-africa"
+  , "aliases": [
+      "earth_africa"
+    ]
+  , "tags": [
+      "globe"
+    , "world"
+    , "international"
+    ]
+  }
+, {
+    "emoji": "🌎"
+  , "description": "earth globe americas"
+  , "aliases": [
+      "earth_americas"
+    ]
+  , "tags": [
+      "globe"
+    , "world"
+    , "international"
+    ]
+  }
+, {
+    "emoji": "🌏"
+  , "description": "earth globe asia-australia"
+  , "aliases": [
+      "earth_asia"
+    ]
+  , "tags": [
+      "globe"
+    , "world"
+    , "international"
+    ]
+  }
+, {
+    "emoji": "🌋"
+  , "description": "volcano"
+  , "aliases": [
+      "volcano"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌌"
+  , "description": "milky way"
+  , "aliases": [
+      "milky_way"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌠"
+  , "description": "shooting star"
+  , "aliases": [
+      "stars"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "⭐"
+  , "description": "white medium star"
+  , "aliases": [
+      "star"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "☀️"
+  , "description": "black sun with rays"
+  , "aliases": [
+      "sunny"
+    ]
+  , "tags": [
+      "weather"
+    ]
+  }
+, {
+    "emoji": "⛅"
+  , "description": "sun behind cloud"
+  , "aliases": [
+      "partly_sunny"
+    ]
+  , "tags": [
+      "weather"
+    , "cloud"
+    ]
+  }
+, {
+    "emoji": "☁️"
+  , "description": "cloud"
+  , "aliases": [
+      "cloud"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "⚡"
+  , "description": "high voltage sign"
+  , "aliases": [
+      "zap"
+    ]
+  , "tags": [
+      "lightning"
+    , "thunder"
+    ]
+  }
+, {
+    "emoji": "☔"
+  , "description": "umbrella with rain drops"
+  , "aliases": [
+      "umbrella"
+    ]
+  , "tags": [
+      "rain"
+    , "weather"
+    ]
+  }
+, {
+    "emoji": "❄️"
+  , "description": "snowflake"
+  , "aliases": [
+      "snowflake"
+    ]
+  , "tags": [
+      "winter"
+    , "cold"
+    , "weather"
+    ]
+  }
+, {
+    "emoji": "⛄"
+  , "description": "snowman without snow"
+  , "aliases": [
+      "snowman"
+    ]
+  , "tags": [
+      "winter"
+    , "christmas"
+    ]
+  }
+, {
+    "emoji": "🌀"
+  , "description": "cyclone"
+  , "aliases": [
+      "cyclone"
+    ]
+  , "tags": [
+      "swirl"
+    ]
+  }
+, {
+    "emoji": "🌁"
+  , "description": "foggy"
+  , "aliases": [
+      "foggy"
+    ]
+  , "tags": [
+      "karl"
+    ]
+  }
+, {
+    "emoji": "🌈"
+  , "description": "rainbow"
+  , "aliases": [
+      "rainbow"
+    ]
+  , "tags": [
+      "pride"
+    ]
+  }
+, {
+    "emoji": "🌊"
+  , "description": "water wave"
+  , "aliases": [
+      "ocean"
+    ]
+  , "tags": [
+      "sea"
+    ]
+  }
+, {
+    "emoji": "🎍"
+  , "description": "pine decoration"
+  , "aliases": [
+      "bamboo"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💝"
+  , "description": "heart with ribbon"
+  , "aliases": [
+      "gift_heart"
+    ]
+  , "tags": [
+      "chocolates"
+    ]
+  }
+, {
+    "emoji": "🎎"
+  , "description": "japanese dolls"
+  , "aliases": [
+      "dolls"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🎒"
+  , "description": "school satchel"
+  , "aliases": [
+      "school_satchel"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🎓"
+  , "description": "graduation cap"
+  , "aliases": [
+      "mortar_board"
+    ]
+  , "tags": [
+      "education"
+    , "college"
+    , "university"
+    , "graduation"
+    ]
+  }
+, {
+    "emoji": "🎏"
+  , "description": "carp streamer"
+  , "aliases": [
+      "flags"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🎆"
+  , "description": "fireworks"
+  , "aliases": [
+      "fireworks"
+    ]
+  , "tags": [
+      "festival"
+    , "celebration"
+    ]
+  }
+, {
+    "emoji": "🎇"
+  , "description": "firework sparkler"
+  , "aliases": [
+      "sparkler"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🎐"
+  , "description": "wind chime"
+  , "aliases": [
+      "wind_chime"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🎑"
+  , "description": "moon viewing ceremony"
+  , "aliases": [
+      "rice_scene"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🎃"
+  , "description": "jack-o-lantern"
+  , "aliases": [
+      "jack_o_lantern"
+    ]
+  , "tags": [
+      "halloween"
+    ]
+  }
+, {
+    "emoji": "👻"
+  , "description": "ghost"
+  , "aliases": [
+      "ghost"
+    ]
+  , "tags": [
+      "halloween"
+    ]
+  }
+, {
+    "emoji": "🎅"
+  , "description": "father christmas"
+  , "aliases": [
+      "santa"
+    ]
+  , "tags": [
+      "christmas"
+    ]
+  }
+, {
+    "emoji": "🎄"
+  , "description": "christmas tree"
+  , "aliases": [
+      "christmas_tree"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🎁"
+  , "description": "wrapped present"
+  , "aliases": [
+      "gift"
+    ]
+  , "tags": [
+      "present"
+    , "birthday"
+    , "christmas"
+    ]
+  }
+, {
+    "emoji": "🎋"
+  , "description": "tanabata tree"
+  , "aliases": [
+      "tanabata_tree"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🎉"
+  , "description": "party popper"
+  , "aliases": [
+      "tada"
+    ]
+  , "tags": [
+      "party"
+    ]
+  }
+, {
+    "emoji": "🎊"
+  , "description": "confetti ball"
+  , "aliases": [
+      "confetti_ball"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🎈"
+  , "description": "balloon"
+  , "aliases": [
+      "balloon"
+    ]
+  , "tags": [
+      "party"
+    , "birthday"
+    ]
+  }
+, {
+    "emoji": "🎌"
+  , "description": "crossed flags"
+  , "aliases": [
+      "crossed_flags"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔮"
+  , "description": "crystal ball"
+  , "aliases": [
+      "crystal_ball"
+    ]
+  , "tags": [
+      "fortune"
+    ]
+  }
+, {
+    "emoji": "🎥"
+  , "description": "movie camera"
+  , "aliases": [
+      "movie_camera"
+    ]
+  , "tags": [
+      "film"
+    , "video"
+    ]
+  }
+, {
+    "emoji": "📷"
+  , "description": "camera"
+  , "aliases": [
+      "camera"
+    ]
+  , "tags": [
+      "photo"
+    ]
+  }
+, {
+    "emoji": "📹"
+  , "description": "video camera"
+  , "aliases": [
+      "video_camera"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📼"
+  , "description": "videocassette"
+  , "aliases": [
+      "vhs"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💿"
+  , "description": "optical disc"
+  , "aliases": [
+      "cd"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📀"
+  , "description": "dvd"
+  , "aliases": [
+      "dvd"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💽"
+  , "description": "minidisc"
+  , "aliases": [
+      "minidisc"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💾"
+  , "description": "floppy disk"
+  , "aliases": [
+      "floppy_disk"
+    ]
+  , "tags": [
+      "save"
+    ]
+  }
+, {
+    "emoji": "💻"
+  , "description": "personal computer"
+  , "aliases": [
+      "computer"
+    ]
+  , "tags": [
+      "desktop"
+    , "screen"
+    ]
+  }
+, {
+    "emoji": "📱"
+  , "description": "mobile phone"
+  , "aliases": [
+      "iphone"
+    ]
+  , "tags": [
+      "smartphone"
+    , "mobile"
+    ]
+  }
+, {
+    "emoji": "☎️"
+  , "description": "black telephone"
+  , "aliases": [
+      "phone"
+    , "telephone"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📞"
+  , "description": "telephone receiver"
+  , "aliases": [
+      "telephone_receiver"
+    ]
+  , "tags": [
+      "phone"
+    , "call"
+    ]
+  }
+, {
+    "emoji": "📟"
+  , "description": "pager"
+  , "aliases": [
+      "pager"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📠"
+  , "description": "fax machine"
+  , "aliases": [
+      "fax"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📡"
+  , "description": "satellite antenna"
+  , "aliases": [
+      "satellite"
+    ]
+  , "tags": [
+      "signal"
+    ]
+  }
+, {
+    "emoji": "📺"
+  , "description": "television"
+  , "aliases": [
+      "tv"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📻"
+  , "description": "radio"
+  , "aliases": [
+      "radio"
+    ]
+  , "tags": [
+      "podcast"
+    ]
+  }
+, {
+    "emoji": "🔊"
+  , "description": "speaker with three sound waves"
+  , "aliases": [
+      "loud_sound"
+    ]
+  , "tags": [
+      "volume"
+    ]
+  }
+, {
+    "emoji": "🔉"
+  , "description": "speaker with one sound wave"
+  , "aliases": [
+      "sound"
+    ]
+  , "tags": [
+      "volume"
+    ]
+  }
+, {
+    "emoji": "🔈"
+  , "description": "speaker"
+  , "aliases": [
+      "speaker"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔇"
+  , "description": "speaker with cancellation stroke"
+  , "aliases": [
+      "mute"
+    ]
+  , "tags": [
+      "sound"
+    , "volume"
+    ]
+  }
+, {
+    "emoji": "🔔"
+  , "description": "bell"
+  , "aliases": [
+      "bell"
+    ]
+  , "tags": [
+      "sound"
+    , "notification"
+    ]
+  }
+, {
+    "emoji": "🔕"
+  , "description": "bell with cancellation stroke"
+  , "aliases": [
+      "no_bell"
+    ]
+  , "tags": [
+      "volume"
+    , "off"
+    ]
+  }
+, {
+    "emoji": "📢"
+  , "description": "public address loudspeaker"
+  , "aliases": [
+      "loudspeaker"
+    ]
+  , "tags": [
+      "announcement"
+    ]
+  }
+, {
+    "emoji": "📣"
+  , "description": "cheering megaphone"
+  , "aliases": [
+      "mega"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "⏳"
+  , "description": "hourglass with flowing sand"
+  , "aliases": [
+      "hourglass_flowing_sand"
+    ]
+  , "tags": [
+      "time"
+    ]
+  }
+, {
+    "emoji": "⌛"
+  , "description": "hourglass"
+  , "aliases": [
+      "hourglass"
+    ]
+  , "tags": [
+      "time"
+    ]
+  }
+, {
+    "emoji": "⏰"
+  , "description": "alarm clock"
+  , "aliases": [
+      "alarm_clock"
+    ]
+  , "tags": [
+      "morning"
+    ]
+  }
+, {
+    "emoji": "⌚"
+  , "description": "watch"
+  , "aliases": [
+      "watch"
+    ]
+  , "tags": [
+      "time"
+    ]
+  }
+, {
+    "emoji": "🔓"
+  , "description": "open lock"
+  , "aliases": [
+      "unlock"
+    ]
+  , "tags": [
+      "security"
+    ]
+  }
+, {
+    "emoji": "🔒"
+  , "description": "lock"
+  , "aliases": [
+      "lock"
+    ]
+  , "tags": [
+      "security"
+    , "private"
+    ]
+  }
+, {
+    "emoji": "🔏"
+  , "description": "lock with ink pen"
+  , "aliases": [
+      "lock_with_ink_pen"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔐"
+  , "description": "closed lock with key"
+  , "aliases": [
+      "closed_lock_with_key"
+    ]
+  , "tags": [
+      "security"
+    ]
+  }
+, {
+    "emoji": "🔑"
+  , "description": "key"
+  , "aliases": [
+      "key"
+    ]
+  , "tags": [
+      "lock"
+    , "password"
+    ]
+  }
+, {
+    "emoji": "🔎"
+  , "description": "right-pointing magnifying glass"
+  , "aliases": [
+      "mag_right"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💡"
+  , "description": "electric light bulb"
+  , "aliases": [
+      "bulb"
+    ]
+  , "tags": [
+      "idea"
+    , "light"
+    ]
+  }
+, {
+    "emoji": "🔦"
+  , "description": "electric torch"
+  , "aliases": [
+      "flashlight"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔆"
+  , "description": "high brightness symbol"
+  , "aliases": [
+      "high_brightness"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔅"
+  , "description": "low brightness symbol"
+  , "aliases": [
+      "low_brightness"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔌"
+  , "description": "electric plug"
+  , "aliases": [
+      "electric_plug"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔋"
+  , "description": "battery"
+  , "aliases": [
+      "battery"
+    ]
+  , "tags": [
+      "power"
+    ]
+  }
+, {
+    "emoji": "🔍"
+  , "description": "left-pointing magnifying glass"
+  , "aliases": [
+      "mag"
+    ]
+  , "tags": [
+      "search"
+    , "zoom"
+    ]
+  }
+, {
+    "emoji": "🛁"
+  , "description": "bathtub"
+  , "aliases": [
+      "bathtub"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🛀"
+  , "description": "bath"
+  , "aliases": [
+      "bath"
+    ]
+  , "tags": [
+      "shower"
+    ]
+  }
+, {
+    "emoji": "🚿"
+  , "description": "shower"
+  , "aliases": [
+      "shower"
+    ]
+  , "tags": [
+      "bath"
+    ]
+  }
+, {
+    "emoji": "🚽"
+  , "description": "toilet"
+  , "aliases": [
+      "toilet"
+    ]
+  , "tags": [
+      "wc"
+    ]
+  }
+, {
+    "emoji": "🔧"
+  , "description": "wrench"
+  , "aliases": [
+      "wrench"
+    ]
+  , "tags": [
+      "tool"
+    ]
+  }
+, {
+    "emoji": "🔩"
+  , "description": "nut and bolt"
+  , "aliases": [
+      "nut_and_bolt"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔨"
+  , "description": "hammer"
+  , "aliases": [
+      "hammer"
+    ]
+  , "tags": [
+      "tool"
+    ]
+  }
+, {
+    "emoji": "🚪"
+  , "description": "door"
+  , "aliases": [
+      "door"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚬"
+  , "description": "smoking symbol"
+  , "aliases": [
+      "smoking"
+    ]
+  , "tags": [
+      "cigarette"
+    ]
+  }
+, {
+    "emoji": "💣"
+  , "description": "bomb"
+  , "aliases": [
+      "bomb"
+    ]
+  , "tags": [
+      "boom"
+    ]
+  }
+, {
+    "emoji": "🔫"
+  , "description": "pistol"
+  , "aliases": [
+      "gun"
+    ]
+  , "tags": [
+      "shoot"
+    , "weapon"
+    ]
+  }
+, {
+    "emoji": "🔪"
+  , "description": "hocho"
+  , "aliases": [
+      "hocho"
+    , "knife"
+    ]
+  , "tags": [
+      "cut"
+    , "chop"
+    ]
+  }
+, {
+    "emoji": "💊"
+  , "description": "pill"
+  , "aliases": [
+      "pill"
+    ]
+  , "tags": [
+      "health"
+    , "medicine"
+    ]
+  }
+, {
+    "emoji": "💉"
+  , "description": "syringe"
+  , "aliases": [
+      "syringe"
+    ]
+  , "tags": [
+      "health"
+    , "hospital"
+    , "needle"
+    ]
+  }
+, {
+    "emoji": "💰"
+  , "description": "money bag"
+  , "aliases": [
+      "moneybag"
+    ]
+  , "tags": [
+      "dollar"
+    , "cream"
+    ]
+  }
+, {
+    "emoji": "💴"
+  , "description": "banknote with yen sign"
+  , "aliases": [
+      "yen"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💵"
+  , "description": "banknote with dollar sign"
+  , "aliases": [
+      "dollar"
+    ]
+  , "tags": [
+      "money"
+    ]
+  }
+, {
+    "emoji": "💷"
+  , "description": "banknote with pound sign"
+  , "aliases": [
+      "pound"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💶"
+  , "description": "banknote with euro sign"
+  , "aliases": [
+      "euro"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💳"
+  , "description": "credit card"
+  , "aliases": [
+      "credit_card"
+    ]
+  , "tags": [
+      "subscription"
+    ]
+  }
+, {
+    "emoji": "💸"
+  , "description": "money with wings"
+  , "aliases": [
+      "money_with_wings"
+    ]
+  , "tags": [
+      "dollar"
+    ]
+  }
+, {
+    "emoji": "📲"
+  , "description": "mobile phone with rightwards arrow at left"
+  , "aliases": [
+      "calling"
+    ]
+  , "tags": [
+      "call"
+    , "incoming"
+    ]
+  }
+, {
+    "emoji": "📧"
+  , "description": "e-mail symbol"
+  , "aliases": [
+      "e-mail"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📥"
+  , "description": "inbox tray"
+  , "aliases": [
+      "inbox_tray"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📤"
+  , "description": "outbox tray"
+  , "aliases": [
+      "outbox_tray"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "✉️"
+  , "description": "envelope"
+  , "aliases": [
+      "email"
+    , "envelope"
+    ]
+  , "tags": [
+      "letter"
+    ]
+  }
+, {
+    "emoji": "📩"
+  , "description": "envelope with downwards arrow above"
+  , "aliases": [
+      "envelope_with_arrow"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📨"
+  , "description": "incoming envelope"
+  , "aliases": [
+      "incoming_envelope"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📯"
+  , "description": "postal horn"
+  , "aliases": [
+      "postal_horn"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📫"
+  , "description": "closed mailbox with raised flag"
+  , "aliases": [
+      "mailbox"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📪"
+  , "description": "closed mailbox with lowered flag"
+  , "aliases": [
+      "mailbox_closed"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📬"
+  , "description": "open mailbox with raised flag"
+  , "aliases": [
+      "mailbox_with_mail"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📭"
+  , "description": "open mailbox with lowered flag"
+  , "aliases": [
+      "mailbox_with_no_mail"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📮"
+  , "description": "postbox"
+  , "aliases": [
+      "postbox"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📦"
+  , "description": "package"
+  , "aliases": [
+      "package"
+    ]
+  , "tags": [
+      "shipping"
+    ]
+  }
+, {
+    "emoji": "📝"
+  , "description": "memo"
+  , "aliases": [
+      "memo"
+    , "pencil"
+    ]
+  , "tags": [
+      "document"
+    , "note"
+    ]
+  }
+, {
+    "emoji": "📄"
+  , "description": "page facing up"
+  , "aliases": [
+      "page_facing_up"
+    ]
+  , "tags": [
+      "document"
+    ]
+  }
+, {
+    "emoji": "📃"
+  , "description": "page with curl"
+  , "aliases": [
+      "page_with_curl"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📑"
+  , "description": "bookmark tabs"
+  , "aliases": [
+      "bookmark_tabs"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📊"
+  , "description": "bar chart"
+  , "aliases": [
+      "bar_chart"
+    ]
+  , "tags": [
+      "stats"
+    , "metrics"
+    ]
+  }
+, {
+    "emoji": "📈"
+  , "description": "chart with upwards trend"
+  , "aliases": [
+      "chart_with_upwards_trend"
+    ]
+  , "tags": [
+      "graph"
+    , "metrics"
+    ]
+  }
+, {
+    "emoji": "📉"
+  , "description": "chart with downwards trend"
+  , "aliases": [
+      "chart_with_downwards_trend"
+    ]
+  , "tags": [
+      "graph"
+    , "metrics"
+    ]
+  }
+, {
+    "emoji": "📜"
+  , "description": "scroll"
+  , "aliases": [
+      "scroll"
+    ]
+  , "tags": [
+      "document"
+    ]
+  }
+, {
+    "emoji": "📋"
+  , "description": "clipboard"
+  , "aliases": [
+      "clipboard"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📅"
+  , "description": "calendar"
+  , "aliases": [
+      "date"
+    ]
+  , "tags": [
+      "calendar"
+    , "schedule"
+    ]
+  }
+, {
+    "emoji": "📆"
+  , "description": "tear-off calendar"
+  , "aliases": [
+      "calendar"
+    ]
+  , "tags": [
+      "schedule"
+    ]
+  }
+, {
+    "emoji": "📇"
+  , "description": "card index"
+  , "aliases": [
+      "card_index"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📁"
+  , "description": "file folder"
+  , "aliases": [
+      "file_folder"
+    ]
+  , "tags": [
+      "directory"
+    ]
+  }
+, {
+    "emoji": "📂"
+  , "description": "open file folder"
+  , "aliases": [
+      "open_file_folder"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "✂️"
+  , "description": "black scissors"
+  , "aliases": [
+      "scissors"
+    ]
+  , "tags": [
+      "cut"
+    ]
+  }
+, {
+    "emoji": "📌"
+  , "description": "pushpin"
+  , "aliases": [
+      "pushpin"
+    ]
+  , "tags": [
+      "location"
+    ]
+  }
+, {
+    "emoji": "📎"
+  , "description": "paperclip"
+  , "aliases": [
+      "paperclip"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "✒️"
+  , "description": "black nib"
+  , "aliases": [
+      "black_nib"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "✏️"
+  , "description": "pencil"
+  , "aliases": [
+      "pencil2"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📏"
+  , "description": "straight ruler"
+  , "aliases": [
+      "straight_ruler"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📐"
+  , "description": "triangular ruler"
+  , "aliases": [
+      "triangular_ruler"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📕"
+  , "description": "closed book"
+  , "aliases": [
+      "closed_book"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📗"
+  , "description": "green book"
+  , "aliases": [
+      "green_book"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📘"
+  , "description": "blue book"
+  , "aliases": [
+      "blue_book"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📙"
+  , "description": "orange book"
+  , "aliases": [
+      "orange_book"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📓"
+  , "description": "notebook"
+  , "aliases": [
+      "notebook"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📔"
+  , "description": "notebook with decorative cover"
+  , "aliases": [
+      "notebook_with_decorative_cover"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📒"
+  , "description": "ledger"
+  , "aliases": [
+      "ledger"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📚"
+  , "description": "books"
+  , "aliases": [
+      "books"
+    ]
+  , "tags": [
+      "library"
+    ]
+  }
+, {
+    "emoji": "📖"
+  , "description": "open book"
+  , "aliases": [
+      "book"
+    , "open_book"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔖"
+  , "description": "bookmark"
+  , "aliases": [
+      "bookmark"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📛"
+  , "description": "name badge"
+  , "aliases": [
+      "name_badge"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔬"
+  , "description": "microscope"
+  , "aliases": [
+      "microscope"
+    ]
+  , "tags": [
+      "science"
+    , "laboratory"
+    , "investigate"
+    ]
+  }
+, {
+    "emoji": "🔭"
+  , "description": "telescope"
+  , "aliases": [
+      "telescope"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📰"
+  , "description": "newspaper"
+  , "aliases": [
+      "newspaper"
+    ]
+  , "tags": [
+      "press"
+    ]
+  }
+, {
+    "emoji": "🎨"
+  , "description": "artist palette"
+  , "aliases": [
+      "art"
+    ]
+  , "tags": [
+      "design"
+    , "paint"
+    ]
+  }
+, {
+    "emoji": "🎬"
+  , "description": "clapper board"
+  , "aliases": [
+      "clapper"
+    ]
+  , "tags": [
+      "film"
+    ]
+  }
+, {
+    "emoji": "🎤"
+  , "description": "microphone"
+  , "aliases": [
+      "microphone"
+    ]
+  , "tags": [
+      "sing"
+    ]
+  }
+, {
+    "emoji": "🎧"
+  , "description": "headphone"
+  , "aliases": [
+      "headphones"
+    ]
+  , "tags": [
+      "music"
+    , "earphones"
+    ]
+  }
+, {
+    "emoji": "🎼"
+  , "description": "musical score"
+  , "aliases": [
+      "musical_score"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🎵"
+  , "description": "musical note"
+  , "aliases": [
+      "musical_note"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🎶"
+  , "description": "multiple musical notes"
+  , "aliases": [
+      "notes"
+    ]
+  , "tags": [
+      "music"
+    ]
+  }
+, {
+    "emoji": "🎹"
+  , "description": "musical keyboard"
+  , "aliases": [
+      "musical_keyboard"
+    ]
+  , "tags": [
+      "piano"
+    ]
+  }
+, {
+    "emoji": "🎻"
+  , "description": "violin"
+  , "aliases": [
+      "violin"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🎺"
+  , "description": "trumpet"
+  , "aliases": [
+      "trumpet"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🎷"
+  , "description": "saxophone"
+  , "aliases": [
+      "saxophone"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🎸"
+  , "description": "guitar"
+  , "aliases": [
+      "guitar"
+    ]
+  , "tags": [
+      "rock"
+    ]
+  }
+, {
+    "emoji": "👾"
+  , "description": "alien monster"
+  , "aliases": [
+      "space_invader"
+    ]
+  , "tags": [
+      "game"
+    , "retro"
+    ]
+  }
+, {
+    "emoji": "🎮"
+  , "description": "video game"
+  , "aliases": [
+      "video_game"
+    ]
+  , "tags": [
+      "play"
+    , "controller"
+    , "console"
+    ]
+  }
+, {
+    "emoji": "🃏"
+  , "description": "playing card black joker"
+  , "aliases": [
+      "black_joker"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🎴"
+  , "description": "flower playing cards"
+  , "aliases": [
+      "flower_playing_cards"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🀄"
+  , "description": "mahjong tile red dragon"
+  , "aliases": [
+      "mahjong"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🎲"
+  , "description": "game die"
+  , "aliases": [
+      "game_die"
+    ]
+  , "tags": [
+      "dice"
+    , "gambling"
+    ]
+  }
+, {
+    "emoji": "🎯"
+  , "description": "direct hit"
+  , "aliases": [
+      "dart"
+    ]
+  , "tags": [
+      "target"
+    ]
+  }
+, {
+    "emoji": "🏈"
+  , "description": "american football"
+  , "aliases": [
+      "football"
+    ]
+  , "tags": [
+      "sports"
+    ]
+  }
+, {
+    "emoji": "🏀"
+  , "description": "basketball and hoop"
+  , "aliases": [
+      "basketball"
+    ]
+  , "tags": [
+      "sports"
+    ]
+  }
+, {
+    "emoji": "⚽"
+  , "description": "soccer ball"
+  , "aliases": [
+      "soccer"
+    ]
+  , "tags": [
+      "sports"
+    ]
+  }
+, {
+    "emoji": "⚾️"
+  , "description": "baseball"
+  , "aliases": [
+      "baseball"
+    ]
+  , "tags": [
+      "sports"
+    ]
+  }
+, {
+    "emoji": "🎾"
+  , "description": "tennis racquet and ball"
+  , "aliases": [
+      "tennis"
+    ]
+  , "tags": [
+      "sports"
+    ]
+  }
+, {
+    "emoji": "🎱"
+  , "description": "billiards"
+  , "aliases": [
+      "8ball"
+    ]
+  , "tags": [
+      "pool"
+    , "billiards"
+    ]
+  }
+, {
+    "emoji": "🏉"
+  , "description": "rugby football"
+  , "aliases": [
+      "rugby_football"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🎳"
+  , "description": "bowling"
+  , "aliases": [
+      "bowling"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "⛳"
+  , "description": "flag in hole"
+  , "aliases": [
+      "golf"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚵"
+  , "description": "mountain bicyclist"
+  , "aliases": [
+      "mountain_bicyclist"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚴"
+  , "description": "bicyclist"
+  , "aliases": [
+      "bicyclist"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🏁"
+  , "description": "chequered flag"
+  , "aliases": [
+      "checkered_flag"
+    ]
+  , "tags": [
+      "milestone"
+    , "finish"
+    ]
+  }
+, {
+    "emoji": "🏇"
+  , "description": "horse racing"
+  , "aliases": [
+      "horse_racing"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🏆"
+  , "description": "trophy"
+  , "aliases": [
+      "trophy"
+    ]
+  , "tags": [
+      "award"
+    , "contest"
+    , "winner"
+    ]
+  }
+, {
+    "emoji": "🎿"
+  , "description": "ski and ski boot"
+  , "aliases": [
+      "ski"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🏂"
+  , "description": "snowboarder"
+  , "aliases": [
+      "snowboarder"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🏊"
+  , "description": "swimmer"
+  , "aliases": [
+      "swimmer"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🏄"
+  , "description": "surfer"
+  , "aliases": [
+      "surfer"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🎣"
+  , "description": "fishing pole and fish"
+  , "aliases": [
+      "fishing_pole_and_fish"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "☕"
+  , "description": "hot beverage"
+  , "aliases": [
+      "coffee"
+    ]
+  , "tags": [
+      "cafe"
+    , "espresso"
+    ]
+  }
+, {
+    "emoji": "🍵"
+  , "description": "teacup without handle"
+  , "aliases": [
+      "tea"
+    ]
+  , "tags": [
+      "green"
+    , "breakfast"
+    ]
+  }
+, {
+    "emoji": "🍶"
+  , "description": "sake bottle and cup"
+  , "aliases": [
+      "sake"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍼"
+  , "description": "baby bottle"
+  , "aliases": [
+      "baby_bottle"
+    ]
+  , "tags": [
+      "milk"
+    ]
+  }
+, {
+    "emoji": "🍺"
+  , "description": "beer mug"
+  , "aliases": [
+      "beer"
+    ]
+  , "tags": [
+      "drink"
+    ]
+  }
+, {
+    "emoji": "🍻"
+  , "description": "clinking beer mugs"
+  , "aliases": [
+      "beers"
+    ]
+  , "tags": [
+      "drinks"
+    ]
+  }
+, {
+    "emoji": "🍸"
+  , "description": "cocktail glass"
+  , "aliases": [
+      "cocktail"
+    ]
+  , "tags": [
+      "drink"
+    ]
+  }
+, {
+    "emoji": "🍹"
+  , "description": "tropical drink"
+  , "aliases": [
+      "tropical_drink"
+    ]
+  , "tags": [
+      "summer"
+    , "vacation"
+    ]
+  }
+, {
+    "emoji": "🍷"
+  , "description": "wine glass"
+  , "aliases": [
+      "wine_glass"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍴"
+  , "description": "fork and knife"
+  , "aliases": [
+      "fork_and_knife"
+    ]
+  , "tags": [
+      "cutlery"
+    ]
+  }
+, {
+    "emoji": "🍕"
+  , "description": "slice of pizza"
+  , "aliases": [
+      "pizza"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍔"
+  , "description": "hamburger"
+  , "aliases": [
+      "hamburger"
+    ]
+  , "tags": [
+      "burger"
+    ]
+  }
+, {
+    "emoji": "🍟"
+  , "description": "french fries"
+  , "aliases": [
+      "fries"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍗"
+  , "description": "poultry leg"
+  , "aliases": [
+      "poultry_leg"
+    ]
+  , "tags": [
+      "meat"
+    , "chicken"
+    ]
+  }
+, {
+    "emoji": "🍖"
+  , "description": "meat on bone"
+  , "aliases": [
+      "meat_on_bone"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍝"
+  , "description": "spaghetti"
+  , "aliases": [
+      "spaghetti"
+    ]
+  , "tags": [
+      "pasta"
+    ]
+  }
+, {
+    "emoji": "🍛"
+  , "description": "curry and rice"
+  , "aliases": [
+      "curry"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍤"
+  , "description": "fried shrimp"
+  , "aliases": [
+      "fried_shrimp"
+    ]
+  , "tags": [
+      "tempura"
+    ]
+  }
+, {
+    "emoji": "🍱"
+  , "description": "bento box"
+  , "aliases": [
+      "bento"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍣"
+  , "description": "sushi"
+  , "aliases": [
+      "sushi"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍥"
+  , "description": "fish cake with swirl design"
+  , "aliases": [
+      "fish_cake"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍙"
+  , "description": "rice ball"
+  , "aliases": [
+      "rice_ball"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍘"
+  , "description": "rice cracker"
+  , "aliases": [
+      "rice_cracker"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍚"
+  , "description": "cooked rice"
+  , "aliases": [
+      "rice"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍜"
+  , "description": "steaming bowl"
+  , "aliases": [
+      "ramen"
+    ]
+  , "tags": [
+      "noodle"
+    ]
+  }
+, {
+    "emoji": "🍲"
+  , "description": "pot of food"
+  , "aliases": [
+      "stew"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍢"
+  , "description": "oden"
+  , "aliases": [
+      "oden"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍡"
+  , "description": "dango"
+  , "aliases": [
+      "dango"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍳"
+  , "description": "cooking"
+  , "aliases": [
+      "egg"
+    ]
+  , "tags": [
+      "breakfast"
+    ]
+  }
+, {
+    "emoji": "🍞"
+  , "description": "bread"
+  , "aliases": [
+      "bread"
+    ]
+  , "tags": [
+      "toast"
+    ]
+  }
+, {
+    "emoji": "🍩"
+  , "description": "doughnut"
+  , "aliases": [
+      "doughnut"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍮"
+  , "description": "custard"
+  , "aliases": [
+      "custard"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍦"
+  , "description": "soft ice cream"
+  , "aliases": [
+      "icecream"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍨"
+  , "description": "ice cream"
+  , "aliases": [
+      "ice_cream"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍧"
+  , "description": "shaved ice"
+  , "aliases": [
+      "shaved_ice"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🎂"
+  , "description": "birthday cake"
+  , "aliases": [
+      "birthday"
+    ]
+  , "tags": [
+      "party"
+    ]
+  }
+, {
+    "emoji": "🍰"
+  , "description": "shortcake"
+  , "aliases": [
+      "cake"
+    ]
+  , "tags": [
+      "dessert"
+    ]
+  }
+, {
+    "emoji": "🍪"
+  , "description": "cookie"
+  , "aliases": [
+      "cookie"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍫"
+  , "description": "chocolate bar"
+  , "aliases": [
+      "chocolate_bar"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍬"
+  , "description": "candy"
+  , "aliases": [
+      "candy"
+    ]
+  , "tags": [
+      "sweet"
+    ]
+  }
+, {
+    "emoji": "🍭"
+  , "description": "lollipop"
+  , "aliases": [
+      "lollipop"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍯"
+  , "description": "honey pot"
+  , "aliases": [
+      "honey_pot"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍎"
+  , "description": "red apple"
+  , "aliases": [
+      "apple"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍏"
+  , "description": "green apple"
+  , "aliases": [
+      "green_apple"
+    ]
+  , "tags": [
+      "fruit"
+    ]
+  }
+, {
+    "emoji": "🍊"
+  , "description": "tangerine"
+  , "aliases": [
+      "tangerine"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍋"
+  , "description": "lemon"
+  , "aliases": [
+      "lemon"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍒"
+  , "description": "cherries"
+  , "aliases": [
+      "cherries"
+    ]
+  , "tags": [
+      "fruit"
+    ]
+  }
+, {
+    "emoji": "🍇"
+  , "description": "grapes"
+  , "aliases": [
+      "grapes"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍉"
+  , "description": "watermelon"
+  , "aliases": [
+      "watermelon"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍓"
+  , "description": "strawberry"
+  , "aliases": [
+      "strawberry"
+    ]
+  , "tags": [
+      "fruit"
+    ]
+  }
+, {
+    "emoji": "🍑"
+  , "description": "peach"
+  , "aliases": [
+      "peach"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍈"
+  , "description": "melon"
+  , "aliases": [
+      "melon"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍌"
+  , "description": "banana"
+  , "aliases": [
+      "banana"
+    ]
+  , "tags": [
+      "fruit"
+    ]
+  }
+, {
+    "emoji": "🍐"
+  , "description": "pear"
+  , "aliases": [
+      "pear"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍍"
+  , "description": "pineapple"
+  , "aliases": [
+      "pineapple"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍠"
+  , "description": "roasted sweet potato"
+  , "aliases": [
+      "sweet_potato"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🍆"
+  , "description": "aubergine"
+  , "aliases": [
+      "eggplant"
+    ]
+  , "tags": [
+      "aubergine"
+    ]
+  }
+, {
+    "emoji": "🍅"
+  , "description": "tomato"
+  , "aliases": [
+      "tomato"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌽"
+  , "description": "ear of maize"
+  , "aliases": [
+      "corn"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🏠"
+  , "description": "house building"
+  , "aliases": [
+      "house"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🏡"
+  , "description": "house with garden"
+  , "aliases": [
+      "house_with_garden"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🏫"
+  , "description": "school"
+  , "aliases": [
+      "school"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🏢"
+  , "description": "office building"
+  , "aliases": [
+      "office"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🏣"
+  , "description": "japanese post office"
+  , "aliases": [
+      "post_office"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🏥"
+  , "description": "hospital"
+  , "aliases": [
+      "hospital"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🏦"
+  , "description": "bank"
+  , "aliases": [
+      "bank"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🏪"
+  , "description": "convenience store"
+  , "aliases": [
+      "convenience_store"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🏩"
+  , "description": "love hotel"
+  , "aliases": [
+      "love_hotel"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🏨"
+  , "description": "hotel"
+  , "aliases": [
+      "hotel"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💒"
+  , "description": "wedding"
+  , "aliases": [
+      "wedding"
+    ]
+  , "tags": [
+      "marriage"
+    ]
+  }
+, {
+    "emoji": "⛪"
+  , "description": "church"
+  , "aliases": [
+      "church"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🏬"
+  , "description": "department store"
+  , "aliases": [
+      "department_store"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🏤"
+  , "description": "european post office"
+  , "aliases": [
+      "european_post_office"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌇"
+  , "description": "sunset over buildings"
+  , "aliases": [
+      "city_sunrise"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌆"
+  , "description": "cityscape at dusk"
+  , "aliases": [
+      "city_sunset"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🏯"
+  , "description": "japanese castle"
+  , "aliases": [
+      "japanese_castle"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🏰"
+  , "description": "european castle"
+  , "aliases": [
+      "european_castle"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "⛺"
+  , "description": "tent"
+  , "aliases": [
+      "tent"
+    ]
+  , "tags": [
+      "camping"
+    ]
+  }
+, {
+    "emoji": "🏭"
+  , "description": "factory"
+  , "aliases": [
+      "factory"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🗼"
+  , "description": "tokyo tower"
+  , "aliases": [
+      "tokyo_tower"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🗾"
+  , "description": "silhouette of japan"
+  , "aliases": [
+      "japan"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🗻"
+  , "description": "mount fuji"
+  , "aliases": [
+      "mount_fuji"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌄"
+  , "description": "sunrise over mountains"
+  , "aliases": [
+      "sunrise_over_mountains"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌅"
+  , "description": "sunrise"
+  , "aliases": [
+      "sunrise"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌃"
+  , "description": "night with stars"
+  , "aliases": [
+      "night_with_stars"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🗽"
+  , "description": "statue of liberty"
+  , "aliases": [
+      "statue_of_liberty"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🌉"
+  , "description": "bridge at night"
+  , "aliases": [
+      "bridge_at_night"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🎠"
+  , "description": "carousel horse"
+  , "aliases": [
+      "carousel_horse"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🎡"
+  , "description": "ferris wheel"
+  , "aliases": [
+      "ferris_wheel"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "⛲"
+  , "description": "fountain"
+  , "aliases": [
+      "fountain"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🎢"
+  , "description": "roller coaster"
+  , "aliases": [
+      "roller_coaster"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚢"
+  , "description": "ship"
+  , "aliases": [
+      "ship"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "⛵"
+  , "description": "sailboat"
+  , "aliases": [
+      "boat"
+    , "sailboat"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚤"
+  , "description": "speedboat"
+  , "aliases": [
+      "speedboat"
+    ]
+  , "tags": [
+      "ship"
+    ]
+  }
+, {
+    "emoji": "🚣"
+  , "description": "rowboat"
+  , "aliases": [
+      "rowboat"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "⚓"
+  , "description": "anchor"
+  , "aliases": [
+      "anchor"
+    ]
+  , "tags": [
+      "ship"
+    ]
+  }
+, {
+    "emoji": "🚀"
+  , "description": "rocket"
+  , "aliases": [
+      "rocket"
+    ]
+  , "tags": [
+      "ship"
+    , "launch"
+    ]
+  }
+, {
+    "emoji": "✈️"
+  , "description": "airplane"
+  , "aliases": [
+      "airplane"
+    ]
+  , "tags": [
+      "flight"
+    ]
+  }
+, {
+    "emoji": "💺"
+  , "description": "seat"
+  , "aliases": [
+      "seat"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚁"
+  , "description": "helicopter"
+  , "aliases": [
+      "helicopter"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚂"
+  , "description": "steam locomotive"
+  , "aliases": [
+      "steam_locomotive"
+    ]
+  , "tags": [
+      "train"
+    ]
+  }
+, {
+    "emoji": "🚊"
+  , "description": "tram"
+  , "aliases": [
+      "tram"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚉"
+  , "description": "station"
+  , "aliases": [
+      "station"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚞"
+  , "description": "mountain railway"
+  , "aliases": [
+      "mountain_railway"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚆"
+  , "description": "train"
+  , "aliases": [
+      "train2"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚄"
+  , "description": "high-speed train"
+  , "aliases": [
+      "bullettrain_side"
+    ]
+  , "tags": [
+      "train"
+    ]
+  }
+, {
+    "emoji": "🚅"
+  , "description": "high-speed train with bullet nose"
+  , "aliases": [
+      "bullettrain_front"
+    ]
+  , "tags": [
+      "train"
+    ]
+  }
+, {
+    "emoji": "🚈"
+  , "description": "light rail"
+  , "aliases": [
+      "light_rail"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚇"
+  , "description": "metro"
+  , "aliases": [
+      "metro"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚝"
+  , "description": "monorail"
+  , "aliases": [
+      "monorail"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚋"
+  , "description": "tram car"
+  , "aliases": [
+      "train"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚃"
+  , "description": "railway car"
+  , "aliases": [
+      "railway_car"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚎"
+  , "description": "trolleybus"
+  , "aliases": [
+      "trolleybus"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚌"
+  , "description": "bus"
+  , "aliases": [
+      "bus"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚍"
+  , "description": "oncoming bus"
+  , "aliases": [
+      "oncoming_bus"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚙"
+  , "description": "recreational vehicle"
+  , "aliases": [
+      "blue_car"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚘"
+  , "description": "oncoming automobile"
+  , "aliases": [
+      "oncoming_automobile"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚗"
+  , "description": "automobile"
+  , "aliases": [
+      "car"
+    , "red_car"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚕"
+  , "description": "taxi"
+  , "aliases": [
+      "taxi"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚖"
+  , "description": "oncoming taxi"
+  , "aliases": [
+      "oncoming_taxi"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚛"
+  , "description": "articulated lorry"
+  , "aliases": [
+      "articulated_lorry"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚚"
+  , "description": "delivery truck"
+  , "aliases": [
+      "truck"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚨"
+  , "description": "police cars revolving light"
+  , "aliases": [
+      "rotating_light"
+    ]
+  , "tags": [
+      "911"
+    , "emergency"
+    ]
+  }
+, {
+    "emoji": "🚓"
+  , "description": "police car"
+  , "aliases": [
+      "police_car"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚔"
+  , "description": "oncoming police car"
+  , "aliases": [
+      "oncoming_police_car"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚒"
+  , "description": "fire engine"
+  , "aliases": [
+      "fire_engine"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚑"
+  , "description": "ambulance"
+  , "aliases": [
+      "ambulance"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚐"
+  , "description": "minibus"
+  , "aliases": [
+      "minibus"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚲"
+  , "description": "bicycle"
+  , "aliases": [
+      "bike"
+    ]
+  , "tags": [
+      "bicycle"
+    ]
+  }
+, {
+    "emoji": "🚡"
+  , "description": "aerial tramway"
+  , "aliases": [
+      "aerial_tramway"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚟"
+  , "description": "suspension railway"
+  , "aliases": [
+      "suspension_railway"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚠"
+  , "description": "mountain cableway"
+  , "aliases": [
+      "mountain_cableway"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚜"
+  , "description": "tractor"
+  , "aliases": [
+      "tractor"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💈"
+  , "description": "barber pole"
+  , "aliases": [
+      "barber"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚏"
+  , "description": "bus stop"
+  , "aliases": [
+      "busstop"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🎫"
+  , "description": "ticket"
+  , "aliases": [
+      "ticket"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚦"
+  , "description": "vertical traffic light"
+  , "aliases": [
+      "vertical_traffic_light"
+    ]
+  , "tags": [
+      "semaphore"
+    ]
+  }
+, {
+    "emoji": "🚥"
+  , "description": "horizontal traffic light"
+  , "aliases": [
+      "traffic_light"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "⚠️"
+  , "description": "warning sign"
+  , "aliases": [
+      "warning"
+    ]
+  , "tags": [
+      "wip"
+    ]
+  }
+, {
+    "emoji": "🚧"
+  , "description": "construction sign"
+  , "aliases": [
+      "construction"
+    ]
+  , "tags": [
+      "wip"
+    ]
+  }
+, {
+    "emoji": "🔰"
+  , "description": "japanese symbol for beginner"
+  , "aliases": [
+      "beginner"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "⛽"
+  , "description": "fuel pump"
+  , "aliases": [
+      "fuelpump"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🏮"
+  , "description": "izakaya lantern"
+  , "aliases": [
+      "izakaya_lantern"
+    , "lantern"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🎰"
+  , "description": "slot machine"
+  , "aliases": [
+      "slot_machine"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "♨️"
+  , "description": "hot springs"
+  , "aliases": [
+      "hotsprings"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🗿"
+  , "description": "moyai"
+  , "aliases": [
+      "moyai"
+    ]
+  , "tags": [
+      "stone"
+    ]
+  }
+, {
+    "emoji": "🎪"
+  , "description": "circus tent"
+  , "aliases": [
+      "circus_tent"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🎭"
+  , "description": "performing arts"
+  , "aliases": [
+      "performing_arts"
+    ]
+  , "tags": [
+      "theater"
+    , "drama"
+    ]
+  }
+, {
+    "emoji": "📍"
+  , "description": "round pushpin"
+  , "aliases": [
+      "round_pushpin"
+    ]
+  , "tags": [
+      "location"
+    ]
+  }
+, {
+    "emoji": "🚩"
+  , "description": "triangular flag on post"
+  , "aliases": [
+      "triangular_flag_on_post"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🇯🇵"
+  , "description": "regional indicator symbol letter j + regional indicator symbol letter p"
+  , "aliases": [
+      "jp"
+    ]
+  , "tags": [
+      "japan"
+    ]
+  }
+, {
+    "emoji": "🇰🇷"
+  , "description": "regional indicator symbol letter k + regional indicator symbol letter r"
+  , "aliases": [
+      "kr"
+    ]
+  , "tags": [
+      "korea"
+    ]
+  }
+, {
+    "emoji": "🇩🇪"
+  , "description": "regional indicator symbol letter d + regional indicator symbol letter e"
+  , "aliases": [
+      "de"
+    ]
+  , "tags": [
+      "flag"
+    , "germany"
+    ]
+  }
+, {
+    "emoji": "🇨🇳"
+  , "description": "regional indicator symbol letter c + regional indicator symbol letter n"
+  , "aliases": [
+      "cn"
+    ]
+  , "tags": [
+      "china"
+    ]
+  }
+, {
+    "emoji": "🇺🇸"
+  , "description": "regional indicator symbol letter u + regional indicator symbol letter s"
+  , "aliases": [
+      "us"
+    ]
+  , "tags": [
+      "flag"
+    , "united"
+    , "america"
+    ]
+  }
+, {
+    "emoji": "🇫🇷"
+  , "description": "regional indicator symbol letter f + regional indicator symbol letter r"
+  , "aliases": [
+      "fr"
+    ]
+  , "tags": [
+      "france"
+    , "french"
+    ]
+  }
+, {
+    "emoji": "🇪🇸"
+  , "description": "regional indicator symbol letter e + regional indicator symbol letter s"
+  , "aliases": [
+      "es"
+    ]
+  , "tags": [
+      "spain"
+    ]
+  }
+, {
+    "emoji": "🇮🇹"
+  , "description": "regional indicator symbol letter i + regional indicator symbol letter t"
+  , "aliases": [
+      "it"
+    ]
+  , "tags": [
+      "italy"
+    ]
+  }
+, {
+    "emoji": "🇷🇺"
+  , "description": "regional indicator symbol letter r + regional indicator symbol letter u"
+  , "aliases": [
+      "ru"
+    ]
+  , "tags": [
+      "russia"
+    ]
+  }
+, {
+    "emoji": "🇬🇧"
+  , "description": "regional indicator symbol letter g + regional indicator symbol letter b"
+  , "aliases": [
+      "gb"
+    , "uk"
+    ]
+  , "tags": [
+      "flag"
+    , "british"
+    ]
+  }
+, {
+    "emoji": "1️⃣"
+  , "description": "digit one + combining enclosing keycap"
+  , "aliases": [
+      "one"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "2️⃣"
+  , "description": "digit two + combining enclosing keycap"
+  , "aliases": [
+      "two"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "3️⃣"
+  , "description": "digit three + combining enclosing keycap"
+  , "aliases": [
+      "three"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "4️⃣"
+  , "description": "digit four + combining enclosing keycap"
+  , "aliases": [
+      "four"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "5️⃣"
+  , "description": "digit five + combining enclosing keycap"
+  , "aliases": [
+      "five"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "6️⃣"
+  , "description": "digit six + combining enclosing keycap"
+  , "aliases": [
+      "six"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "7️⃣"
+  , "description": "digit seven + combining enclosing keycap"
+  , "aliases": [
+      "seven"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "8️⃣"
+  , "description": "digit eight + combining enclosing keycap"
+  , "aliases": [
+      "eight"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "9️⃣"
+  , "description": "digit nine + combining enclosing keycap"
+  , "aliases": [
+      "nine"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "0️⃣"
+  , "description": "digit zero + combining enclosing keycap"
+  , "aliases": [
+      "zero"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔟"
+  , "description": "keycap ten"
+  , "aliases": [
+      "keycap_ten"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔢"
+  , "description": "input symbol for numbers"
+  , "aliases": [
+      "1234"
+    ]
+  , "tags": [
+      "numbers"
+    ]
+  }
+, {
+    "emoji": "#️⃣"
+  , "description": "number sign + combining enclosing keycap"
+  , "aliases": [
+      "hash"
+    ]
+  , "tags": [
+      "number"
+    ]
+  }
+, {
+    "emoji": "🔣"
+  , "description": "input symbol for symbols"
+  , "aliases": [
+      "symbols"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "⬆️"
+  , "description": "upwards black arrow"
+  , "aliases": [
+      "arrow_up"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "⬇️"
+  , "description": "downwards black arrow"
+  , "aliases": [
+      "arrow_down"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "⬅️"
+  , "description": "leftwards black arrow"
+  , "aliases": [
+      "arrow_left"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "➡️"
+  , "description": "black rightwards arrow"
+  , "aliases": [
+      "arrow_right"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔠"
+  , "description": "input symbol for latin capital letters"
+  , "aliases": [
+      "capital_abcd"
+    ]
+  , "tags": [
+      "letters"
+    ]
+  }
+, {
+    "emoji": "🔡"
+  , "description": "input symbol for latin small letters"
+  , "aliases": [
+      "abcd"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔤"
+  , "description": "input symbol for latin letters"
+  , "aliases": [
+      "abc"
+    ]
+  , "tags": [
+      "alphabet"
+    ]
+  }
+, {
+    "emoji": "↗️"
+  , "description": "north east arrow"
+  , "aliases": [
+      "arrow_upper_right"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "↖️"
+  , "description": "north west arrow"
+  , "aliases": [
+      "arrow_upper_left"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "↘️"
+  , "description": "south east arrow"
+  , "aliases": [
+      "arrow_lower_right"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "↙️"
+  , "description": "south west arrow"
+  , "aliases": [
+      "arrow_lower_left"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "↔️"
+  , "description": "left right arrow"
+  , "aliases": [
+      "left_right_arrow"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "↕️"
+  , "description": "up down arrow"
+  , "aliases": [
+      "arrow_up_down"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔄"
+  , "description": "anticlockwise downwards and upwards open circle arrows"
+  , "aliases": [
+      "arrows_counterclockwise"
+    ]
+  , "tags": [
+      "sync"
+    ]
+  }
+, {
+    "emoji": "◀️"
+  , "description": "black left-pointing triangle"
+  , "aliases": [
+      "arrow_backward"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "▶️"
+  , "description": "black right-pointing triangle"
+  , "aliases": [
+      "arrow_forward"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔼"
+  , "description": "up-pointing small red triangle"
+  , "aliases": [
+      "arrow_up_small"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔽"
+  , "description": "down-pointing small red triangle"
+  , "aliases": [
+      "arrow_down_small"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "↩️"
+  , "description": "leftwards arrow with hook"
+  , "aliases": [
+      "leftwards_arrow_with_hook"
+    ]
+  , "tags": [
+      "return"
+    ]
+  }
+, {
+    "emoji": "↪️"
+  , "description": "rightwards arrow with hook"
+  , "aliases": [
+      "arrow_right_hook"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "ℹ️"
+  , "description": "information source"
+  , "aliases": [
+      "information_source"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "⏪"
+  , "description": "black left-pointing double triangle"
+  , "aliases": [
+      "rewind"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "⏩"
+  , "description": "black right-pointing double triangle"
+  , "aliases": [
+      "fast_forward"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "⏫"
+  , "description": "black up-pointing double triangle"
+  , "aliases": [
+      "arrow_double_up"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "⏬"
+  , "description": "black down-pointing double triangle"
+  , "aliases": [
+      "arrow_double_down"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "⤵️"
+  , "description": "arrow pointing rightwards then curving downwards"
+  , "aliases": [
+      "arrow_heading_down"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "⤴️"
+  , "description": "arrow pointing rightwards then curving upwards"
+  , "aliases": [
+      "arrow_heading_up"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🆗"
+  , "description": "squared ok"
+  , "aliases": [
+      "ok"
+    ]
+  , "tags": [
+      "yes"
+    ]
+  }
+, {
+    "emoji": "🔀"
+  , "description": "twisted rightwards arrows"
+  , "aliases": [
+      "twisted_rightwards_arrows"
+    ]
+  , "tags": [
+      "shuffle"
+    ]
+  }
+, {
+    "emoji": "🔁"
+  , "description": "clockwise rightwards and leftwards open circle arrows"
+  , "aliases": [
+      "repeat"
+    ]
+  , "tags": [
+      "loop"
+    ]
+  }
+, {
+    "emoji": "🔂"
+  , "description": "clockwise rightwards and leftwards open circle arrows with circled one overlay"
+  , "aliases": [
+      "repeat_one"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🆕"
+  , "description": "squared new"
+  , "aliases": [
+      "new"
+    ]
+  , "tags": [
+      "fresh"
+    ]
+  }
+, {
+    "emoji": "🆙"
+  , "description": "squared up with exclamation mark"
+  , "aliases": [
+      "up"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🆒"
+  , "description": "squared cool"
+  , "aliases": [
+      "cool"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🆓"
+  , "description": "squared free"
+  , "aliases": [
+      "free"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🆖"
+  , "description": "squared ng"
+  , "aliases": [
+      "ng"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📶"
+  , "description": "antenna with bars"
+  , "aliases": [
+      "signal_strength"
+    ]
+  , "tags": [
+      "wifi"
+    ]
+  }
+, {
+    "emoji": "🎦"
+  , "description": "cinema"
+  , "aliases": [
+      "cinema"
+    ]
+  , "tags": [
+      "film"
+    , "movie"
+    ]
+  }
+, {
+    "emoji": "🈁"
+  , "description": "squared katakana koko"
+  , "aliases": [
+      "koko"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🈯"
+  , "description": "squared cjk unified ideograph-6307"
+  , "aliases": [
+      "u6307"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🈳"
+  , "description": "squared cjk unified ideograph-7a7a"
+  , "aliases": [
+      "u7a7a"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🈵"
+  , "description": "squared cjk unified ideograph-6e80"
+  , "aliases": [
+      "u6e80"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🈴"
+  , "description": "squared cjk unified ideograph-5408"
+  , "aliases": [
+      "u5408"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🈲"
+  , "description": "squared cjk unified ideograph-7981"
+  , "aliases": [
+      "u7981"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🉐"
+  , "description": "circled ideograph advantage"
+  , "aliases": [
+      "ideograph_advantage"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🈹"
+  , "description": "squared cjk unified ideograph-5272"
+  , "aliases": [
+      "u5272"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🈺"
+  , "description": "squared cjk unified ideograph-55b6"
+  , "aliases": [
+      "u55b6"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🈶"
+  , "description": "squared cjk unified ideograph-6709"
+  , "aliases": [
+      "u6709"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🈚"
+  , "description": "squared cjk unified ideograph-7121"
+  , "aliases": [
+      "u7121"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚻"
+  , "description": "restroom"
+  , "aliases": [
+      "restroom"
+    ]
+  , "tags": [
+      "toilet"
+    ]
+  }
+, {
+    "emoji": "🚹"
+  , "description": "mens symbol"
+  , "aliases": [
+      "mens"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚺"
+  , "description": "womens symbol"
+  , "aliases": [
+      "womens"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚼"
+  , "description": "baby symbol"
+  , "aliases": [
+      "baby_symbol"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚾"
+  , "description": "water closet"
+  , "aliases": [
+      "wc"
+    ]
+  , "tags": [
+      "toilet"
+    , "restroom"
+    ]
+  }
+, {
+    "emoji": "🚰"
+  , "description": "potable water symbol"
+  , "aliases": [
+      "potable_water"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚮"
+  , "description": "put litter in its place symbol"
+  , "aliases": [
+      "put_litter_in_its_place"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🅿️"
+  , "description": "negative squared latin capital letter p"
+  , "aliases": [
+      "parking"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "♿"
+  , "description": "wheelchair symbol"
+  , "aliases": [
+      "wheelchair"
+    ]
+  , "tags": [
+      "accessibility"
+    ]
+  }
+, {
+    "emoji": "🚭"
+  , "description": "no smoking symbol"
+  , "aliases": [
+      "no_smoking"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🈷️"
+  , "description": "squared cjk unified ideograph-6708"
+  , "aliases": [
+      "u6708"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🈸"
+  , "description": "squared cjk unified ideograph-7533"
+  , "aliases": [
+      "u7533"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🈂️"
+  , "description": "squared katakana sa"
+  , "aliases": [
+      "sa"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "Ⓜ️"
+  , "description": "circled latin capital letter m"
+  , "aliases": [
+      "m"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🛂"
+  , "description": "passport control"
+  , "aliases": [
+      "passport_control"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🛄"
+  , "description": "baggage claim"
+  , "aliases": [
+      "baggage_claim"
+    ]
+  , "tags": [
+      "airport"
+    ]
+  }
+, {
+    "emoji": "🛅"
+  , "description": "left luggage"
+  , "aliases": [
+      "left_luggage"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🛃"
+  , "description": "customs"
+  , "aliases": [
+      "customs"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🉑"
+  , "description": "circled ideograph accept"
+  , "aliases": [
+      "accept"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "㊙️"
+  , "description": "circled ideograph secret"
+  , "aliases": [
+      "secret"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "㊗️"
+  , "description": "circled ideograph congratulation"
+  , "aliases": [
+      "congratulations"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🆑"
+  , "description": "squared cl"
+  , "aliases": [
+      "cl"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🆘"
+  , "description": "squared sos"
+  , "aliases": [
+      "sos"
+    ]
+  , "tags": [
+      "help"
+    , "emergency"
+    ]
+  }
+, {
+    "emoji": "🆔"
+  , "description": "squared id"
+  , "aliases": [
+      "id"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚫"
+  , "description": "no entry sign"
+  , "aliases": [
+      "no_entry_sign"
+    ]
+  , "tags": [
+      "block"
+    , "forbidden"
+    ]
+  }
+, {
+    "emoji": "🔞"
+  , "description": "no one under eighteen symbol"
+  , "aliases": [
+      "underage"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📵"
+  , "description": "no mobile phones"
+  , "aliases": [
+      "no_mobile_phones"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚯"
+  , "description": "do not litter symbol"
+  , "aliases": [
+      "do_not_litter"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚱"
+  , "description": "non-potable water symbol"
+  , "aliases": [
+      "non-potable_water"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚳"
+  , "description": "no bicycles"
+  , "aliases": [
+      "no_bicycles"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚷"
+  , "description": "no pedestrians"
+  , "aliases": [
+      "no_pedestrians"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🚸"
+  , "description": "children crossing"
+  , "aliases": [
+      "children_crossing"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "⛔"
+  , "description": "no entry"
+  , "aliases": [
+      "no_entry"
+    ]
+  , "tags": [
+      "limit"
+    ]
+  }
+, {
+    "emoji": "✳️"
+  , "description": "eight spoked asterisk"
+  , "aliases": [
+      "eight_spoked_asterisk"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "❇️"
+  , "description": "sparkle"
+  , "aliases": [
+      "sparkle"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "❎"
+  , "description": "negative squared cross mark"
+  , "aliases": [
+      "negative_squared_cross_mark"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "✅"
+  , "description": "white heavy check mark"
+  , "aliases": [
+      "white_check_mark"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "✴️"
+  , "description": "eight pointed black star"
+  , "aliases": [
+      "eight_pointed_black_star"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💟"
+  , "description": "heart decoration"
+  , "aliases": [
+      "heart_decoration"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🆚"
+  , "description": "squared vs"
+  , "aliases": [
+      "vs"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📳"
+  , "description": "vibration mode"
+  , "aliases": [
+      "vibration_mode"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "📴"
+  , "description": "mobile phone off"
+  , "aliases": [
+      "mobile_phone_off"
+    ]
+  , "tags": [
+      "mute"
+    , "off"
+    ]
+  }
+, {
+    "emoji": "🅰️"
+  , "description": "negative squared latin capital letter a"
+  , "aliases": [
+      "a"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🅱️"
+  , "description": "negative squared latin capital letter b"
+  , "aliases": [
+      "b"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🆎"
+  , "description": "negative squared ab"
+  , "aliases": [
+      "ab"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🅾️"
+  , "description": "negative squared latin capital letter o"
+  , "aliases": [
+      "o2"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💠"
+  , "description": "diamond shape with a dot inside"
+  , "aliases": [
+      "diamond_shape_with_a_dot_inside"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "➿"
+  , "description": "double curly loop"
+  , "aliases": [
+      "loop"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "♻️"
+  , "description": "black universal recycling symbol"
+  , "aliases": [
+      "recycle"
+    ]
+  , "tags": [
+      "environment"
+    , "green"
+    ]
+  }
+, {
+    "emoji": "♈"
+  , "description": "aries"
+  , "aliases": [
+      "aries"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "♉"
+  , "description": "taurus"
+  , "aliases": [
+      "taurus"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "♊"
+  , "description": "gemini"
+  , "aliases": [
+      "gemini"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "♋"
+  , "description": "cancer"
+  , "aliases": [
+      "cancer"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "♌"
+  , "description": "leo"
+  , "aliases": [
+      "leo"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "♍"
+  , "description": "virgo"
+  , "aliases": [
+      "virgo"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "♎"
+  , "description": "libra"
+  , "aliases": [
+      "libra"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "♏"
+  , "description": "scorpius"
+  , "aliases": [
+      "scorpius"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "♐"
+  , "description": "sagittarius"
+  , "aliases": [
+      "sagittarius"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "♑"
+  , "description": "capricorn"
+  , "aliases": [
+      "capricorn"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "♒"
+  , "description": "aquarius"
+  , "aliases": [
+      "aquarius"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "♓"
+  , "description": "pisces"
+  , "aliases": [
+      "pisces"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "⛎"
+  , "description": "ophiuchus"
+  , "aliases": [
+      "ophiuchus"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔯"
+  , "description": "six pointed star with middle dot"
+  , "aliases": [
+      "six_pointed_star"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🏧"
+  , "description": "automated teller machine"
+  , "aliases": [
+      "atm"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💹"
+  , "description": "chart with upwards trend and yen sign"
+  , "aliases": [
+      "chart"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💲"
+  , "description": "heavy dollar sign"
+  , "aliases": [
+      "heavy_dollar_sign"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💱"
+  , "description": "currency exchange"
+  , "aliases": [
+      "currency_exchange"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "©️"
+  , "description": "copyright sign"
+  , "aliases": [
+      "copyright"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "®️"
+  , "description": "registered sign"
+  , "aliases": [
+      "registered"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "™️"
+  , "description": "trade mark sign"
+  , "aliases": [
+      "tm"
+    ]
+  , "tags": [
+      "trademark"
+    ]
+  }
+, {
+    "emoji": "❌"
+  , "description": "cross mark"
+  , "aliases": [
+      "x"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "‼️"
+  , "description": "double exclamation mark"
+  , "aliases": [
+      "bangbang"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "⁉️"
+  , "description": "exclamation question mark"
+  , "aliases": [
+      "interrobang"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "❗"
+  , "description": "heavy exclamation mark symbol"
+  , "aliases": [
+      "exclamation"
+    , "heavy_exclamation_mark"
+    ]
+  , "tags": [
+      "bang"
+    ]
+  }
+, {
+    "emoji": "❓"
+  , "description": "black question mark ornament"
+  , "aliases": [
+      "question"
+    ]
+  , "tags": [
+      "confused"
+    ]
+  }
+, {
+    "emoji": "❕"
+  , "description": "white exclamation mark ornament"
+  , "aliases": [
+      "grey_exclamation"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "❔"
+  , "description": "white question mark ornament"
+  , "aliases": [
+      "grey_question"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "⭕"
+  , "description": "heavy large circle"
+  , "aliases": [
+      "o"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔝"
+  , "description": "top with upwards arrow above"
+  , "aliases": [
+      "top"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔚"
+  , "description": "end with leftwards arrow above"
+  , "aliases": [
+      "end"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔙"
+  , "description": "back with leftwards arrow above"
+  , "aliases": [
+      "back"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔛"
+  , "description": "on with exclamation mark with left right arrow above"
+  , "aliases": [
+      "on"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔜"
+  , "description": "soon with rightwards arrow above"
+  , "aliases": [
+      "soon"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔃"
+  , "description": "clockwise downwards and upwards open circle arrows"
+  , "aliases": [
+      "arrows_clockwise"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🕛"
+  , "description": "clock face twelve oclock"
+  , "aliases": [
+      "clock12"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🕧"
+  , "description": "clock face twelve-thirty"
+  , "aliases": [
+      "clock1230"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🕐"
+  , "description": "clock face one oclock"
+  , "aliases": [
+      "clock1"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🕜"
+  , "description": "clock face one-thirty"
+  , "aliases": [
+      "clock130"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🕑"
+  , "description": "clock face two oclock"
+  , "aliases": [
+      "clock2"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🕝"
+  , "description": "clock face two-thirty"
+  , "aliases": [
+      "clock230"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🕒"
+  , "description": "clock face three oclock"
+  , "aliases": [
+      "clock3"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🕞"
+  , "description": "clock face three-thirty"
+  , "aliases": [
+      "clock330"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🕓"
+  , "description": "clock face four oclock"
+  , "aliases": [
+      "clock4"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🕟"
+  , "description": "clock face four-thirty"
+  , "aliases": [
+      "clock430"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🕔"
+  , "description": "clock face five oclock"
+  , "aliases": [
+      "clock5"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🕠"
+  , "description": "clock face five-thirty"
+  , "aliases": [
+      "clock530"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🕕"
+  , "description": "clock face six oclock"
+  , "aliases": [
+      "clock6"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🕖"
+  , "description": "clock face seven oclock"
+  , "aliases": [
+      "clock7"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🕗"
+  , "description": "clock face eight oclock"
+  , "aliases": [
+      "clock8"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🕘"
+  , "description": "clock face nine oclock"
+  , "aliases": [
+      "clock9"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🕙"
+  , "description": "clock face ten oclock"
+  , "aliases": [
+      "clock10"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🕚"
+  , "description": "clock face eleven oclock"
+  , "aliases": [
+      "clock11"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🕡"
+  , "description": "clock face six-thirty"
+  , "aliases": [
+      "clock630"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🕢"
+  , "description": "clock face seven-thirty"
+  , "aliases": [
+      "clock730"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🕣"
+  , "description": "clock face eight-thirty"
+  , "aliases": [
+      "clock830"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🕤"
+  , "description": "clock face nine-thirty"
+  , "aliases": [
+      "clock930"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🕥"
+  , "description": "clock face ten-thirty"
+  , "aliases": [
+      "clock1030"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🕦"
+  , "description": "clock face eleven-thirty"
+  , "aliases": [
+      "clock1130"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "✖️"
+  , "description": "heavy multiplication x"
+  , "aliases": [
+      "heavy_multiplication_x"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "➕"
+  , "description": "heavy plus sign"
+  , "aliases": [
+      "heavy_plus_sign"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "➖"
+  , "description": "heavy minus sign"
+  , "aliases": [
+      "heavy_minus_sign"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "➗"
+  , "description": "heavy division sign"
+  , "aliases": [
+      "heavy_division_sign"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "♠️"
+  , "description": "black spade suit"
+  , "aliases": [
+      "spades"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "♥️"
+  , "description": "black heart suit"
+  , "aliases": [
+      "hearts"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "♣️"
+  , "description": "black club suit"
+  , "aliases": [
+      "clubs"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "♦️"
+  , "description": "black diamond suit"
+  , "aliases": [
+      "diamonds"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💮"
+  , "description": "white flower"
+  , "aliases": [
+      "white_flower"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "💯"
+  , "description": "hundred points symbol"
+  , "aliases": [
+      "100"
+    ]
+  , "tags": [
+      "score"
+    , "perfect"
+    ]
+  }
+, {
+    "emoji": "✔️"
+  , "description": "heavy check mark"
+  , "aliases": [
+      "heavy_check_mark"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "☑️"
+  , "description": "ballot box with check"
+  , "aliases": [
+      "ballot_box_with_check"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔘"
+  , "description": "radio button"
+  , "aliases": [
+      "radio_button"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔗"
+  , "description": "link symbol"
+  , "aliases": [
+      "link"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "➰"
+  , "description": "curly loop"
+  , "aliases": [
+      "curly_loop"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "〰️"
+  , "description": "wavy dash"
+  , "aliases": [
+      "wavy_dash"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "〽️"
+  , "description": "part alternation mark"
+  , "aliases": [
+      "part_alternation_mark"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔱"
+  , "description": "trident emblem"
+  , "aliases": [
+      "trident"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "◼️"
+  , "description": "black medium square"
+  , "aliases": [
+      "black_medium_square"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "◻️"
+  , "description": "white medium square"
+  , "aliases": [
+      "white_medium_square"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "◾"
+  , "description": "black medium small square"
+  , "aliases": [
+      "black_medium_small_square"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "◽"
+  , "description": "white medium small square"
+  , "aliases": [
+      "white_medium_small_square"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "▪️"
+  , "description": "black small square"
+  , "aliases": [
+      "black_small_square"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "▫️"
+  , "description": "white small square"
+  , "aliases": [
+      "white_small_square"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔺"
+  , "description": "up-pointing red triangle"
+  , "aliases": [
+      "small_red_triangle"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔲"
+  , "description": "black square button"
+  , "aliases": [
+      "black_square_button"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔳"
+  , "description": "white square button"
+  , "aliases": [
+      "white_square_button"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "⚫"
+  , "description": "medium black circle"
+  , "aliases": [
+      "black_circle"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "⚪"
+  , "description": "medium white circle"
+  , "aliases": [
+      "white_circle"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔴"
+  , "description": "large red circle"
+  , "aliases": [
+      "red_circle"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔵"
+  , "description": "large blue circle"
+  , "aliases": [
+      "large_blue_circle"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔻"
+  , "description": "down-pointing red triangle"
+  , "aliases": [
+      "small_red_triangle_down"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "⬜"
+  , "description": "white large square"
+  , "aliases": [
+      "white_large_square"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "⬛"
+  , "description": "black large square"
+  , "aliases": [
+      "black_large_square"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔶"
+  , "description": "large orange diamond"
+  , "aliases": [
+      "large_orange_diamond"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔷"
+  , "description": "large blue diamond"
+  , "aliases": [
+      "large_blue_diamond"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔸"
+  , "description": "small orange diamond"
+  , "aliases": [
+      "small_orange_diamond"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "emoji": "🔹"
+  , "description": "small blue diamond"
+  , "aliases": [
+      "small_blue_diamond"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "aliases": [
+      "bowtie"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "aliases": [
+      "feelsgood"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "aliases": [
+      "finnadie"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "aliases": [
+      "fu"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "aliases": [
+      "goberserk"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "aliases": [
+      "godmode"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "aliases": [
+      "hurtrealbad"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "aliases": [
+      "metal"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "aliases": [
+      "neckbeard"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "aliases": [
+      "octocat"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "aliases": [
+      "rage1"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "aliases": [
+      "rage2"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "aliases": [
+      "rage3"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "aliases": [
+      "rage4"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "aliases": [
+      "shipit"
+    , "squirrel"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "aliases": [
+      "suspect"
+    ]
+  , "tags": [
+    ]
+  }
+, {
+    "aliases": [
+      "trollface"
+    ]
+  , "tags": [
+    ]
+  }
+]
diff --git a/db/index.html b/db/index.html
new file mode 100644
index 0000000..bd74d1a
--- /dev/null
+++ b/db/index.html
@@ -0,0 +1,113 @@
+<!doctype html>
+<title>Emoji preview</title>
+
+<style type="text/css">
+body {
+  font: 14px/18px Verdana, Arial, sans-serif;
+  padding: 2em;
+}
+ol {
+  list-style: none;
+  padding-left: 0;
+}
+li {
+  margin-left: 0;
+  margin-top: 5px;
+  clear: left;
+}
+li:first-child { display: none; }
+li > span {
+  display: block;
+}
+.emoji {
+  font-size: 50px;
+  line-height: 50px;
+  float: left;
+  margin-right: 20px;
+}
+.description {
+  font-style: italic;
+  color: gray;
+}
+.aliases span:before, .aliases span:after {
+  content: ":";
+  color: gray;
+}
+.tags {
+  font-size: 11px;
+}
+.tags span {
+  display: inline-block;
+  padding: 1px 5px 2px;
+  border-radius: 3px;
+  background: #dadada;
+  line-height: 11px;
+}
+</style>
+
+<p><input type=search placeholder="Search..."></p>
+
+<ol>
+  <li>
+    <span class="emoji"></span>
+    <span class="description"></span>
+    <span class="aliases"></span>
+    <span class="tags"></span>
+  </li>
+</ol>
+
+<script>
+  function renderEmoji(emojis) {
+    var item, els, template = document.querySelector('li')
+    for (var emoji, i=0; i < emojis.length; i++) {
+      emoji = emojis[i]
+      item = template.cloneNode(true)
+      els = item.querySelectorAll('span')
+      if (emoji.emoji) els[0].textContent = emoji.emoji
+      else {
+        var img = document.createElement('img')
+        img.src = "../images/emoji/" + emoji.aliases[0] + ".png"
+        els[0].appendChild(img)
+      }
+      els[1].textContent = emoji.description || ''
+      els[2].innerHTML = emoji.aliases.map(function(n){ return '<span>'+n+'</span>' }).join(' ')
+      els[3].innerHTML = emoji.tags.map(function(n){ return '<span>'+n+'</span>' }).join(' ')
+      template.parentNode.appendChild(item)
+
+      item._emojiText = (els[2].textContent + ' ' + els[3].textContent).replace(/_/g, '-')
+    }
+  }
+
+  xhr = new XMLHttpRequest
+  xhr.onreadystatechange = function() {
+    if (this.readyState == 4) {
+      json = JSON.parse(this.responseText)
+      renderEmoji(json)
+    }
+  }
+  xhr.open('GET', 'emoji.json', false)
+  xhr.send(null)
+
+  function searchEmoji(query) {
+    var el,
+        re = new RegExp('\\b' + query),
+        els = document.querySelectorAll('li')
+
+    for (var i=1; i < els.length; i++) {
+      el = els[i]
+      if ( !query || re.test(el._emojiText) ) {
+        el.style.display = 'list-item'
+      } else {
+        el.style.display = 'none'
+      }
+    }
+  }
+
+  var timeout, search = document.querySelector('input[type=search]')
+  search.addEventListener('input', function() {
+    var $this = this
+    if (timeout) clearTimeout(timeout)
+    timeout = setTimeout(function(){ searchEmoji($this.value) }, 200)
+  }, false)
+  search.focus()
+</script>
diff --git a/gemoji.gemspec b/gemoji.gemspec
new file mode 100644
index 0000000..2315a34
--- /dev/null
+++ b/gemoji.gemspec
@@ -0,0 +1,21 @@
+Gem::Specification.new do |s|
+  s.name    = "gemoji"
+  s.version = "2.1.0"
+  s.summary = "Emoji conversion and image assets"
+  s.description = "Image assets and character information for emoji."
+
+  s.required_ruby_version = '> 1.9'
+
+  s.authors  = ["GitHub"]
+  s.email    = "support at github.com"
+  s.homepage = "https://github.com/github/gemoji"
+  s.licenses = ["MIT"]
+
+  s.files = Dir[
+    "README.md",
+    "images/**/*.png",
+    "db/emoji.json",
+    "lib/**/*.rb",
+    "lib/tasks/*.rake"
+  ]
+end
diff --git a/images/emoji/bowtie.png b/images/emoji/bowtie.png
new file mode 100644
index 0000000..28ff0c7
Binary files /dev/null and b/images/emoji/bowtie.png differ
diff --git a/images/emoji/feelsgood.png b/images/emoji/feelsgood.png
new file mode 100644
index 0000000..bad80a6
Binary files /dev/null and b/images/emoji/feelsgood.png differ
diff --git a/images/emoji/finnadie.png b/images/emoji/finnadie.png
new file mode 100644
index 0000000..05ba8ac
Binary files /dev/null and b/images/emoji/finnadie.png differ
diff --git a/images/emoji/fu.png b/images/emoji/fu.png
new file mode 100644
index 0000000..61a3fee
Binary files /dev/null and b/images/emoji/fu.png differ
diff --git a/images/emoji/goberserk.png b/images/emoji/goberserk.png
new file mode 100644
index 0000000..59a742a
Binary files /dev/null and b/images/emoji/goberserk.png differ
diff --git a/images/emoji/godmode.png b/images/emoji/godmode.png
new file mode 100644
index 0000000..7e75ab2
Binary files /dev/null and b/images/emoji/godmode.png differ
diff --git a/images/emoji/hurtrealbad.png b/images/emoji/hurtrealbad.png
new file mode 100644
index 0000000..146ef1a
Binary files /dev/null and b/images/emoji/hurtrealbad.png differ
diff --git a/images/emoji/metal.png b/images/emoji/metal.png
new file mode 100644
index 0000000..94f1fda
Binary files /dev/null and b/images/emoji/metal.png differ
diff --git a/images/emoji/neckbeard.png b/images/emoji/neckbeard.png
new file mode 100644
index 0000000..15108fc
Binary files /dev/null and b/images/emoji/neckbeard.png differ
diff --git a/images/emoji/octocat.png b/images/emoji/octocat.png
new file mode 100644
index 0000000..9d74d90
Binary files /dev/null and b/images/emoji/octocat.png differ
diff --git a/images/emoji/rage1.png b/images/emoji/rage1.png
new file mode 100644
index 0000000..dd2c84f
Binary files /dev/null and b/images/emoji/rage1.png differ
diff --git a/images/emoji/rage2.png b/images/emoji/rage2.png
new file mode 100644
index 0000000..f792e06
Binary files /dev/null and b/images/emoji/rage2.png differ
diff --git a/images/emoji/rage3.png b/images/emoji/rage3.png
new file mode 100644
index 0000000..58764cb
Binary files /dev/null and b/images/emoji/rage3.png differ
diff --git a/images/emoji/rage4.png b/images/emoji/rage4.png
new file mode 100644
index 0000000..c726c94
Binary files /dev/null and b/images/emoji/rage4.png differ
diff --git a/images/emoji/shipit.png b/images/emoji/shipit.png
new file mode 100644
index 0000000..a58a47f
Binary files /dev/null and b/images/emoji/shipit.png differ
diff --git a/images/emoji/suspect.png b/images/emoji/suspect.png
new file mode 100644
index 0000000..58e8921
Binary files /dev/null and b/images/emoji/suspect.png differ
diff --git a/images/emoji/trollface.png b/images/emoji/trollface.png
new file mode 100644
index 0000000..cce7c75
Binary files /dev/null and b/images/emoji/trollface.png differ
diff --git a/images/emoji/unicode/0023-20e3.png b/images/emoji/unicode/0023-20e3.png
new file mode 100644
index 0000000..6765d7d
Binary files /dev/null and b/images/emoji/unicode/0023-20e3.png differ
diff --git a/images/emoji/unicode/0030-20e3.png b/images/emoji/unicode/0030-20e3.png
new file mode 100644
index 0000000..15e7446
Binary files /dev/null and b/images/emoji/unicode/0030-20e3.png differ
diff --git a/images/emoji/unicode/0031-20e3.png b/images/emoji/unicode/0031-20e3.png
new file mode 100644
index 0000000..2d1f9f8
Binary files /dev/null and b/images/emoji/unicode/0031-20e3.png differ
diff --git a/images/emoji/unicode/0032-20e3.png b/images/emoji/unicode/0032-20e3.png
new file mode 100644
index 0000000..c191f8a
Binary files /dev/null and b/images/emoji/unicode/0032-20e3.png differ
diff --git a/images/emoji/unicode/0033-20e3.png b/images/emoji/unicode/0033-20e3.png
new file mode 100644
index 0000000..55644c9
Binary files /dev/null and b/images/emoji/unicode/0033-20e3.png differ
diff --git a/images/emoji/unicode/0034-20e3.png b/images/emoji/unicode/0034-20e3.png
new file mode 100644
index 0000000..14782ba
Binary files /dev/null and b/images/emoji/unicode/0034-20e3.png differ
diff --git a/images/emoji/unicode/0035-20e3.png b/images/emoji/unicode/0035-20e3.png
new file mode 100644
index 0000000..794321a
Binary files /dev/null and b/images/emoji/unicode/0035-20e3.png differ
diff --git a/images/emoji/unicode/0036-20e3.png b/images/emoji/unicode/0036-20e3.png
new file mode 100644
index 0000000..5688055
Binary files /dev/null and b/images/emoji/unicode/0036-20e3.png differ
diff --git a/images/emoji/unicode/0037-20e3.png b/images/emoji/unicode/0037-20e3.png
new file mode 100644
index 0000000..354e89a
Binary files /dev/null and b/images/emoji/unicode/0037-20e3.png differ
diff --git a/images/emoji/unicode/0038-20e3.png b/images/emoji/unicode/0038-20e3.png
new file mode 100644
index 0000000..7bdb422
Binary files /dev/null and b/images/emoji/unicode/0038-20e3.png differ
diff --git a/images/emoji/unicode/0039-20e3.png b/images/emoji/unicode/0039-20e3.png
new file mode 100644
index 0000000..8006cc9
Binary files /dev/null and b/images/emoji/unicode/0039-20e3.png differ
diff --git a/images/emoji/unicode/00a9.png b/images/emoji/unicode/00a9.png
new file mode 100644
index 0000000..d59f580
Binary files /dev/null and b/images/emoji/unicode/00a9.png differ
diff --git a/images/emoji/unicode/00ae.png b/images/emoji/unicode/00ae.png
new file mode 100644
index 0000000..e539410
Binary files /dev/null and b/images/emoji/unicode/00ae.png differ
diff --git a/images/emoji/unicode/1f004.png b/images/emoji/unicode/1f004.png
new file mode 100644
index 0000000..f51ce65
Binary files /dev/null and b/images/emoji/unicode/1f004.png differ
diff --git a/images/emoji/unicode/1f0cf.png b/images/emoji/unicode/1f0cf.png
new file mode 100644
index 0000000..4c78f36
Binary files /dev/null and b/images/emoji/unicode/1f0cf.png differ
diff --git a/images/emoji/unicode/1f170.png b/images/emoji/unicode/1f170.png
new file mode 100644
index 0000000..4908a44
Binary files /dev/null and b/images/emoji/unicode/1f170.png differ
diff --git a/images/emoji/unicode/1f171.png b/images/emoji/unicode/1f171.png
new file mode 100644
index 0000000..8742b3d
Binary files /dev/null and b/images/emoji/unicode/1f171.png differ
diff --git a/images/emoji/unicode/1f17e.png b/images/emoji/unicode/1f17e.png
new file mode 100644
index 0000000..d85f9fb
Binary files /dev/null and b/images/emoji/unicode/1f17e.png differ
diff --git a/images/emoji/unicode/1f17f.png b/images/emoji/unicode/1f17f.png
new file mode 100644
index 0000000..c24af81
Binary files /dev/null and b/images/emoji/unicode/1f17f.png differ
diff --git a/images/emoji/unicode/1f18e.png b/images/emoji/unicode/1f18e.png
new file mode 100644
index 0000000..2a52220
Binary files /dev/null and b/images/emoji/unicode/1f18e.png differ
diff --git a/images/emoji/unicode/1f191.png b/images/emoji/unicode/1f191.png
new file mode 100644
index 0000000..15ac675
Binary files /dev/null and b/images/emoji/unicode/1f191.png differ
diff --git a/images/emoji/unicode/1f192.png b/images/emoji/unicode/1f192.png
new file mode 100644
index 0000000..937dcd7
Binary files /dev/null and b/images/emoji/unicode/1f192.png differ
diff --git a/images/emoji/unicode/1f193.png b/images/emoji/unicode/1f193.png
new file mode 100644
index 0000000..c886cf2
Binary files /dev/null and b/images/emoji/unicode/1f193.png differ
diff --git a/images/emoji/unicode/1f194.png b/images/emoji/unicode/1f194.png
new file mode 100644
index 0000000..47437a7
Binary files /dev/null and b/images/emoji/unicode/1f194.png differ
diff --git a/images/emoji/unicode/1f195.png b/images/emoji/unicode/1f195.png
new file mode 100644
index 0000000..28d1570
Binary files /dev/null and b/images/emoji/unicode/1f195.png differ
diff --git a/images/emoji/unicode/1f196.png b/images/emoji/unicode/1f196.png
new file mode 100644
index 0000000..2ca180a
Binary files /dev/null and b/images/emoji/unicode/1f196.png differ
diff --git a/images/emoji/unicode/1f197.png b/images/emoji/unicode/1f197.png
new file mode 100644
index 0000000..6433d1a
Binary files /dev/null and b/images/emoji/unicode/1f197.png differ
diff --git a/images/emoji/unicode/1f198.png b/images/emoji/unicode/1f198.png
new file mode 100644
index 0000000..e3e16ef
Binary files /dev/null and b/images/emoji/unicode/1f198.png differ
diff --git a/images/emoji/unicode/1f199.png b/images/emoji/unicode/1f199.png
new file mode 100644
index 0000000..829219a
Binary files /dev/null and b/images/emoji/unicode/1f199.png differ
diff --git a/images/emoji/unicode/1f19a.png b/images/emoji/unicode/1f19a.png
new file mode 100644
index 0000000..8636388
Binary files /dev/null and b/images/emoji/unicode/1f19a.png differ
diff --git a/images/emoji/unicode/1f1e8-1f1f3.png b/images/emoji/unicode/1f1e8-1f1f3.png
new file mode 100644
index 0000000..b30dcc5
Binary files /dev/null and b/images/emoji/unicode/1f1e8-1f1f3.png differ
diff --git a/images/emoji/unicode/1f1e9-1f1ea.png b/images/emoji/unicode/1f1e9-1f1ea.png
new file mode 100644
index 0000000..16a2854
Binary files /dev/null and b/images/emoji/unicode/1f1e9-1f1ea.png differ
diff --git a/images/emoji/unicode/1f1ea-1f1f8.png b/images/emoji/unicode/1f1ea-1f1f8.png
new file mode 100644
index 0000000..71b30bf
Binary files /dev/null and b/images/emoji/unicode/1f1ea-1f1f8.png differ
diff --git a/images/emoji/unicode/1f1eb-1f1f7.png b/images/emoji/unicode/1f1eb-1f1f7.png
new file mode 100644
index 0000000..6311c91
Binary files /dev/null and b/images/emoji/unicode/1f1eb-1f1f7.png differ
diff --git a/images/emoji/unicode/1f1ec-1f1e7.png b/images/emoji/unicode/1f1ec-1f1e7.png
new file mode 100644
index 0000000..2a62c7a
Binary files /dev/null and b/images/emoji/unicode/1f1ec-1f1e7.png differ
diff --git a/images/emoji/unicode/1f1ee-1f1f9.png b/images/emoji/unicode/1f1ee-1f1f9.png
new file mode 100644
index 0000000..70bc9f3
Binary files /dev/null and b/images/emoji/unicode/1f1ee-1f1f9.png differ
diff --git a/images/emoji/unicode/1f1ef-1f1f5.png b/images/emoji/unicode/1f1ef-1f1f5.png
new file mode 100644
index 0000000..b786efb
Binary files /dev/null and b/images/emoji/unicode/1f1ef-1f1f5.png differ
diff --git a/images/emoji/unicode/1f1f0-1f1f7.png b/images/emoji/unicode/1f1f0-1f1f7.png
new file mode 100644
index 0000000..b4c0c1b
Binary files /dev/null and b/images/emoji/unicode/1f1f0-1f1f7.png differ
diff --git a/images/emoji/unicode/1f1f7-1f1fa.png b/images/emoji/unicode/1f1f7-1f1fa.png
new file mode 100644
index 0000000..55fcf35
Binary files /dev/null and b/images/emoji/unicode/1f1f7-1f1fa.png differ
diff --git a/images/emoji/unicode/1f1fa-1f1f8.png b/images/emoji/unicode/1f1fa-1f1f8.png
new file mode 100644
index 0000000..3813766
Binary files /dev/null and b/images/emoji/unicode/1f1fa-1f1f8.png differ
diff --git a/images/emoji/unicode/1f201.png b/images/emoji/unicode/1f201.png
new file mode 100644
index 0000000..3bef28c
Binary files /dev/null and b/images/emoji/unicode/1f201.png differ
diff --git a/images/emoji/unicode/1f202.png b/images/emoji/unicode/1f202.png
new file mode 100644
index 0000000..387f098
Binary files /dev/null and b/images/emoji/unicode/1f202.png differ
diff --git a/images/emoji/unicode/1f21a.png b/images/emoji/unicode/1f21a.png
new file mode 100644
index 0000000..25f694e
Binary files /dev/null and b/images/emoji/unicode/1f21a.png differ
diff --git a/images/emoji/unicode/1f22f.png b/images/emoji/unicode/1f22f.png
new file mode 100644
index 0000000..6557f56
Binary files /dev/null and b/images/emoji/unicode/1f22f.png differ
diff --git a/images/emoji/unicode/1f232.png b/images/emoji/unicode/1f232.png
new file mode 100644
index 0000000..f550a57
Binary files /dev/null and b/images/emoji/unicode/1f232.png differ
diff --git a/images/emoji/unicode/1f233.png b/images/emoji/unicode/1f233.png
new file mode 100644
index 0000000..c05f5cf
Binary files /dev/null and b/images/emoji/unicode/1f233.png differ
diff --git a/images/emoji/unicode/1f234.png b/images/emoji/unicode/1f234.png
new file mode 100644
index 0000000..03ab0d8
Binary files /dev/null and b/images/emoji/unicode/1f234.png differ
diff --git a/images/emoji/unicode/1f235.png b/images/emoji/unicode/1f235.png
new file mode 100644
index 0000000..5df1cb8
Binary files /dev/null and b/images/emoji/unicode/1f235.png differ
diff --git a/images/emoji/unicode/1f236.png b/images/emoji/unicode/1f236.png
new file mode 100644
index 0000000..cd8fb3f
Binary files /dev/null and b/images/emoji/unicode/1f236.png differ
diff --git a/images/emoji/unicode/1f237.png b/images/emoji/unicode/1f237.png
new file mode 100644
index 0000000..e4dfe5a
Binary files /dev/null and b/images/emoji/unicode/1f237.png differ
diff --git a/images/emoji/unicode/1f238.png b/images/emoji/unicode/1f238.png
new file mode 100644
index 0000000..fc4a990
Binary files /dev/null and b/images/emoji/unicode/1f238.png differ
diff --git a/images/emoji/unicode/1f239.png b/images/emoji/unicode/1f239.png
new file mode 100644
index 0000000..2148253
Binary files /dev/null and b/images/emoji/unicode/1f239.png differ
diff --git a/images/emoji/unicode/1f23a.png b/images/emoji/unicode/1f23a.png
new file mode 100644
index 0000000..ba946d3
Binary files /dev/null and b/images/emoji/unicode/1f23a.png differ
diff --git a/images/emoji/unicode/1f250.png b/images/emoji/unicode/1f250.png
new file mode 100644
index 0000000..e79af78
Binary files /dev/null and b/images/emoji/unicode/1f250.png differ
diff --git a/images/emoji/unicode/1f251.png b/images/emoji/unicode/1f251.png
new file mode 100644
index 0000000..2d20090
Binary files /dev/null and b/images/emoji/unicode/1f251.png differ
diff --git a/images/emoji/unicode/1f300.png b/images/emoji/unicode/1f300.png
new file mode 100644
index 0000000..6c49f64
Binary files /dev/null and b/images/emoji/unicode/1f300.png differ
diff --git a/images/emoji/unicode/1f301.png b/images/emoji/unicode/1f301.png
new file mode 100644
index 0000000..3c7b8b0
Binary files /dev/null and b/images/emoji/unicode/1f301.png differ
diff --git a/images/emoji/unicode/1f302.png b/images/emoji/unicode/1f302.png
new file mode 100644
index 0000000..072c5c2
Binary files /dev/null and b/images/emoji/unicode/1f302.png differ
diff --git a/images/emoji/unicode/1f303.png b/images/emoji/unicode/1f303.png
new file mode 100644
index 0000000..d4de585
Binary files /dev/null and b/images/emoji/unicode/1f303.png differ
diff --git a/images/emoji/unicode/1f304.png b/images/emoji/unicode/1f304.png
new file mode 100644
index 0000000..ebc3db1
Binary files /dev/null and b/images/emoji/unicode/1f304.png differ
diff --git a/images/emoji/unicode/1f305.png b/images/emoji/unicode/1f305.png
new file mode 100644
index 0000000..ec58dcc
Binary files /dev/null and b/images/emoji/unicode/1f305.png differ
diff --git a/images/emoji/unicode/1f306.png b/images/emoji/unicode/1f306.png
new file mode 100644
index 0000000..7cb178a
Binary files /dev/null and b/images/emoji/unicode/1f306.png differ
diff --git a/images/emoji/unicode/1f307.png b/images/emoji/unicode/1f307.png
new file mode 100644
index 0000000..91ca2a4
Binary files /dev/null and b/images/emoji/unicode/1f307.png differ
diff --git a/images/emoji/unicode/1f308.png b/images/emoji/unicode/1f308.png
new file mode 100644
index 0000000..6b1faa0
Binary files /dev/null and b/images/emoji/unicode/1f308.png differ
diff --git a/images/emoji/unicode/1f309.png b/images/emoji/unicode/1f309.png
new file mode 100644
index 0000000..495b06c
Binary files /dev/null and b/images/emoji/unicode/1f309.png differ
diff --git a/images/emoji/unicode/1f30a.png b/images/emoji/unicode/1f30a.png
new file mode 100644
index 0000000..f8d520c
Binary files /dev/null and b/images/emoji/unicode/1f30a.png differ
diff --git a/images/emoji/unicode/1f30b.png b/images/emoji/unicode/1f30b.png
new file mode 100644
index 0000000..9b43453
Binary files /dev/null and b/images/emoji/unicode/1f30b.png differ
diff --git a/images/emoji/unicode/1f30c.png b/images/emoji/unicode/1f30c.png
new file mode 100644
index 0000000..901090a
Binary files /dev/null and b/images/emoji/unicode/1f30c.png differ
diff --git a/images/emoji/unicode/1f30d.png b/images/emoji/unicode/1f30d.png
new file mode 100644
index 0000000..44ce5ec
Binary files /dev/null and b/images/emoji/unicode/1f30d.png differ
diff --git a/images/emoji/unicode/1f30e.png b/images/emoji/unicode/1f30e.png
new file mode 100644
index 0000000..97d7176
Binary files /dev/null and b/images/emoji/unicode/1f30e.png differ
diff --git a/images/emoji/unicode/1f30f.png b/images/emoji/unicode/1f30f.png
new file mode 100644
index 0000000..95ec357
Binary files /dev/null and b/images/emoji/unicode/1f30f.png differ
diff --git a/images/emoji/unicode/1f310.png b/images/emoji/unicode/1f310.png
new file mode 100644
index 0000000..b198646
Binary files /dev/null and b/images/emoji/unicode/1f310.png differ
diff --git a/images/emoji/unicode/1f311.png b/images/emoji/unicode/1f311.png
new file mode 100644
index 0000000..540239b
Binary files /dev/null and b/images/emoji/unicode/1f311.png differ
diff --git a/images/emoji/unicode/1f312.png b/images/emoji/unicode/1f312.png
new file mode 100644
index 0000000..c8f13dd
Binary files /dev/null and b/images/emoji/unicode/1f312.png differ
diff --git a/images/emoji/unicode/1f313.png b/images/emoji/unicode/1f313.png
new file mode 100644
index 0000000..f38c236
Binary files /dev/null and b/images/emoji/unicode/1f313.png differ
diff --git a/images/emoji/unicode/1f314.png b/images/emoji/unicode/1f314.png
new file mode 100644
index 0000000..dd8c484
Binary files /dev/null and b/images/emoji/unicode/1f314.png differ
diff --git a/images/emoji/unicode/1f315.png b/images/emoji/unicode/1f315.png
new file mode 100644
index 0000000..8ff657a
Binary files /dev/null and b/images/emoji/unicode/1f315.png differ
diff --git a/images/emoji/unicode/1f316.png b/images/emoji/unicode/1f316.png
new file mode 100644
index 0000000..8e324ec
Binary files /dev/null and b/images/emoji/unicode/1f316.png differ
diff --git a/images/emoji/unicode/1f317.png b/images/emoji/unicode/1f317.png
new file mode 100644
index 0000000..355e3c3
Binary files /dev/null and b/images/emoji/unicode/1f317.png differ
diff --git a/images/emoji/unicode/1f318.png b/images/emoji/unicode/1f318.png
new file mode 100644
index 0000000..3038778
Binary files /dev/null and b/images/emoji/unicode/1f318.png differ
diff --git a/images/emoji/unicode/1f319.png b/images/emoji/unicode/1f319.png
new file mode 100644
index 0000000..afdb450
Binary files /dev/null and b/images/emoji/unicode/1f319.png differ
diff --git a/images/emoji/unicode/1f31a.png b/images/emoji/unicode/1f31a.png
new file mode 100644
index 0000000..b9aff7a
Binary files /dev/null and b/images/emoji/unicode/1f31a.png differ
diff --git a/images/emoji/unicode/1f31b.png b/images/emoji/unicode/1f31b.png
new file mode 100644
index 0000000..85ae2ce
Binary files /dev/null and b/images/emoji/unicode/1f31b.png differ
diff --git a/images/emoji/unicode/1f31c.png b/images/emoji/unicode/1f31c.png
new file mode 100644
index 0000000..9ece82d
Binary files /dev/null and b/images/emoji/unicode/1f31c.png differ
diff --git a/images/emoji/unicode/1f31d.png b/images/emoji/unicode/1f31d.png
new file mode 100644
index 0000000..94395a4
Binary files /dev/null and b/images/emoji/unicode/1f31d.png differ
diff --git a/images/emoji/unicode/1f31e.png b/images/emoji/unicode/1f31e.png
new file mode 100644
index 0000000..ee27663
Binary files /dev/null and b/images/emoji/unicode/1f31e.png differ
diff --git a/images/emoji/unicode/1f31f.png b/images/emoji/unicode/1f31f.png
new file mode 100644
index 0000000..8b40ff4
Binary files /dev/null and b/images/emoji/unicode/1f31f.png differ
diff --git a/images/emoji/unicode/1f320.png b/images/emoji/unicode/1f320.png
new file mode 100644
index 0000000..097a842
Binary files /dev/null and b/images/emoji/unicode/1f320.png differ
diff --git a/images/emoji/unicode/1f330.png b/images/emoji/unicode/1f330.png
new file mode 100644
index 0000000..066fb6b
Binary files /dev/null and b/images/emoji/unicode/1f330.png differ
diff --git a/images/emoji/unicode/1f331.png b/images/emoji/unicode/1f331.png
new file mode 100644
index 0000000..f0eb5a6
Binary files /dev/null and b/images/emoji/unicode/1f331.png differ
diff --git a/images/emoji/unicode/1f332.png b/images/emoji/unicode/1f332.png
new file mode 100644
index 0000000..ae8ad10
Binary files /dev/null and b/images/emoji/unicode/1f332.png differ
diff --git a/images/emoji/unicode/1f333.png b/images/emoji/unicode/1f333.png
new file mode 100644
index 0000000..9bb16bd
Binary files /dev/null and b/images/emoji/unicode/1f333.png differ
diff --git a/images/emoji/unicode/1f334.png b/images/emoji/unicode/1f334.png
new file mode 100644
index 0000000..d534785
Binary files /dev/null and b/images/emoji/unicode/1f334.png differ
diff --git a/images/emoji/unicode/1f335.png b/images/emoji/unicode/1f335.png
new file mode 100644
index 0000000..5a2c3cc
Binary files /dev/null and b/images/emoji/unicode/1f335.png differ
diff --git a/images/emoji/unicode/1f337.png b/images/emoji/unicode/1f337.png
new file mode 100644
index 0000000..b3ee110
Binary files /dev/null and b/images/emoji/unicode/1f337.png differ
diff --git a/images/emoji/unicode/1f338.png b/images/emoji/unicode/1f338.png
new file mode 100644
index 0000000..e031554
Binary files /dev/null and b/images/emoji/unicode/1f338.png differ
diff --git a/images/emoji/unicode/1f339.png b/images/emoji/unicode/1f339.png
new file mode 100644
index 0000000..3479fbc
Binary files /dev/null and b/images/emoji/unicode/1f339.png differ
diff --git a/images/emoji/unicode/1f33a.png b/images/emoji/unicode/1f33a.png
new file mode 100644
index 0000000..32a3774
Binary files /dev/null and b/images/emoji/unicode/1f33a.png differ
diff --git a/images/emoji/unicode/1f33b.png b/images/emoji/unicode/1f33b.png
new file mode 100644
index 0000000..d9bad19
Binary files /dev/null and b/images/emoji/unicode/1f33b.png differ
diff --git a/images/emoji/unicode/1f33c.png b/images/emoji/unicode/1f33c.png
new file mode 100644
index 0000000..55a9735
Binary files /dev/null and b/images/emoji/unicode/1f33c.png differ
diff --git a/images/emoji/unicode/1f33d.png b/images/emoji/unicode/1f33d.png
new file mode 100644
index 0000000..fe5d8b1
Binary files /dev/null and b/images/emoji/unicode/1f33d.png differ
diff --git a/images/emoji/unicode/1f33e.png b/images/emoji/unicode/1f33e.png
new file mode 100644
index 0000000..a9bba5c
Binary files /dev/null and b/images/emoji/unicode/1f33e.png differ
diff --git a/images/emoji/unicode/1f33f.png b/images/emoji/unicode/1f33f.png
new file mode 100644
index 0000000..de1ff1b
Binary files /dev/null and b/images/emoji/unicode/1f33f.png differ
diff --git a/images/emoji/unicode/1f340.png b/images/emoji/unicode/1f340.png
new file mode 100644
index 0000000..f2014be
Binary files /dev/null and b/images/emoji/unicode/1f340.png differ
diff --git a/images/emoji/unicode/1f341.png b/images/emoji/unicode/1f341.png
new file mode 100644
index 0000000..4e9b472
Binary files /dev/null and b/images/emoji/unicode/1f341.png differ
diff --git a/images/emoji/unicode/1f342.png b/images/emoji/unicode/1f342.png
new file mode 100644
index 0000000..d49f9c1
Binary files /dev/null and b/images/emoji/unicode/1f342.png differ
diff --git a/images/emoji/unicode/1f343.png b/images/emoji/unicode/1f343.png
new file mode 100644
index 0000000..801e578
Binary files /dev/null and b/images/emoji/unicode/1f343.png differ
diff --git a/images/emoji/unicode/1f344.png b/images/emoji/unicode/1f344.png
new file mode 100644
index 0000000..5eeed8e
Binary files /dev/null and b/images/emoji/unicode/1f344.png differ
diff --git a/images/emoji/unicode/1f345.png b/images/emoji/unicode/1f345.png
new file mode 100644
index 0000000..a129700
Binary files /dev/null and b/images/emoji/unicode/1f345.png differ
diff --git a/images/emoji/unicode/1f346.png b/images/emoji/unicode/1f346.png
new file mode 100644
index 0000000..566d6a8
Binary files /dev/null and b/images/emoji/unicode/1f346.png differ
diff --git a/images/emoji/unicode/1f347.png b/images/emoji/unicode/1f347.png
new file mode 100644
index 0000000..0f9f007
Binary files /dev/null and b/images/emoji/unicode/1f347.png differ
diff --git a/images/emoji/unicode/1f348.png b/images/emoji/unicode/1f348.png
new file mode 100644
index 0000000..11c13cb
Binary files /dev/null and b/images/emoji/unicode/1f348.png differ
diff --git a/images/emoji/unicode/1f349.png b/images/emoji/unicode/1f349.png
new file mode 100644
index 0000000..fc212be
Binary files /dev/null and b/images/emoji/unicode/1f349.png differ
diff --git a/images/emoji/unicode/1f34a.png b/images/emoji/unicode/1f34a.png
new file mode 100644
index 0000000..fc9d4f8
Binary files /dev/null and b/images/emoji/unicode/1f34a.png differ
diff --git a/images/emoji/unicode/1f34b.png b/images/emoji/unicode/1f34b.png
new file mode 100644
index 0000000..9814dc9
Binary files /dev/null and b/images/emoji/unicode/1f34b.png differ
diff --git a/images/emoji/unicode/1f34c.png b/images/emoji/unicode/1f34c.png
new file mode 100644
index 0000000..a0563af
Binary files /dev/null and b/images/emoji/unicode/1f34c.png differ
diff --git a/images/emoji/unicode/1f34d.png b/images/emoji/unicode/1f34d.png
new file mode 100644
index 0000000..d6f8e28
Binary files /dev/null and b/images/emoji/unicode/1f34d.png differ
diff --git a/images/emoji/unicode/1f34e.png b/images/emoji/unicode/1f34e.png
new file mode 100644
index 0000000..08aa17b
Binary files /dev/null and b/images/emoji/unicode/1f34e.png differ
diff --git a/images/emoji/unicode/1f34f.png b/images/emoji/unicode/1f34f.png
new file mode 100644
index 0000000..337205c
Binary files /dev/null and b/images/emoji/unicode/1f34f.png differ
diff --git a/images/emoji/unicode/1f350.png b/images/emoji/unicode/1f350.png
new file mode 100644
index 0000000..f24aca8
Binary files /dev/null and b/images/emoji/unicode/1f350.png differ
diff --git a/images/emoji/unicode/1f351.png b/images/emoji/unicode/1f351.png
new file mode 100644
index 0000000..ee2139e
Binary files /dev/null and b/images/emoji/unicode/1f351.png differ
diff --git a/images/emoji/unicode/1f352.png b/images/emoji/unicode/1f352.png
new file mode 100644
index 0000000..8d3e044
Binary files /dev/null and b/images/emoji/unicode/1f352.png differ
diff --git a/images/emoji/unicode/1f353.png b/images/emoji/unicode/1f353.png
new file mode 100644
index 0000000..13eb827
Binary files /dev/null and b/images/emoji/unicode/1f353.png differ
diff --git a/images/emoji/unicode/1f354.png b/images/emoji/unicode/1f354.png
new file mode 100644
index 0000000..9f1a3fd
Binary files /dev/null and b/images/emoji/unicode/1f354.png differ
diff --git a/images/emoji/unicode/1f355.png b/images/emoji/unicode/1f355.png
new file mode 100644
index 0000000..460367d
Binary files /dev/null and b/images/emoji/unicode/1f355.png differ
diff --git a/images/emoji/unicode/1f356.png b/images/emoji/unicode/1f356.png
new file mode 100644
index 0000000..d6b311b
Binary files /dev/null and b/images/emoji/unicode/1f356.png differ
diff --git a/images/emoji/unicode/1f357.png b/images/emoji/unicode/1f357.png
new file mode 100644
index 0000000..43ad859
Binary files /dev/null and b/images/emoji/unicode/1f357.png differ
diff --git a/images/emoji/unicode/1f358.png b/images/emoji/unicode/1f358.png
new file mode 100644
index 0000000..954c901
Binary files /dev/null and b/images/emoji/unicode/1f358.png differ
diff --git a/images/emoji/unicode/1f359.png b/images/emoji/unicode/1f359.png
new file mode 100644
index 0000000..04f8a88
Binary files /dev/null and b/images/emoji/unicode/1f359.png differ
diff --git a/images/emoji/unicode/1f35a.png b/images/emoji/unicode/1f35a.png
new file mode 100644
index 0000000..f4773ed
Binary files /dev/null and b/images/emoji/unicode/1f35a.png differ
diff --git a/images/emoji/unicode/1f35b.png b/images/emoji/unicode/1f35b.png
new file mode 100644
index 0000000..7983c70
Binary files /dev/null and b/images/emoji/unicode/1f35b.png differ
diff --git a/images/emoji/unicode/1f35c.png b/images/emoji/unicode/1f35c.png
new file mode 100644
index 0000000..78dc7d5
Binary files /dev/null and b/images/emoji/unicode/1f35c.png differ
diff --git a/images/emoji/unicode/1f35d.png b/images/emoji/unicode/1f35d.png
new file mode 100644
index 0000000..08de243
Binary files /dev/null and b/images/emoji/unicode/1f35d.png differ
diff --git a/images/emoji/unicode/1f35e.png b/images/emoji/unicode/1f35e.png
new file mode 100644
index 0000000..7e7c637
Binary files /dev/null and b/images/emoji/unicode/1f35e.png differ
diff --git a/images/emoji/unicode/1f35f.png b/images/emoji/unicode/1f35f.png
new file mode 100644
index 0000000..cfef669
Binary files /dev/null and b/images/emoji/unicode/1f35f.png differ
diff --git a/images/emoji/unicode/1f360.png b/images/emoji/unicode/1f360.png
new file mode 100644
index 0000000..32117fa
Binary files /dev/null and b/images/emoji/unicode/1f360.png differ
diff --git a/images/emoji/unicode/1f361.png b/images/emoji/unicode/1f361.png
new file mode 100644
index 0000000..2d042ae
Binary files /dev/null and b/images/emoji/unicode/1f361.png differ
diff --git a/images/emoji/unicode/1f362.png b/images/emoji/unicode/1f362.png
new file mode 100644
index 0000000..73add1c
Binary files /dev/null and b/images/emoji/unicode/1f362.png differ
diff --git a/images/emoji/unicode/1f363.png b/images/emoji/unicode/1f363.png
new file mode 100644
index 0000000..0d179bd
Binary files /dev/null and b/images/emoji/unicode/1f363.png differ
diff --git a/images/emoji/unicode/1f364.png b/images/emoji/unicode/1f364.png
new file mode 100644
index 0000000..c8c284b
Binary files /dev/null and b/images/emoji/unicode/1f364.png differ
diff --git a/images/emoji/unicode/1f365.png b/images/emoji/unicode/1f365.png
new file mode 100644
index 0000000..a8f2261
Binary files /dev/null and b/images/emoji/unicode/1f365.png differ
diff --git a/images/emoji/unicode/1f366.png b/images/emoji/unicode/1f366.png
new file mode 100644
index 0000000..871ce09
Binary files /dev/null and b/images/emoji/unicode/1f366.png differ
diff --git a/images/emoji/unicode/1f367.png b/images/emoji/unicode/1f367.png
new file mode 100644
index 0000000..0d0b382
Binary files /dev/null and b/images/emoji/unicode/1f367.png differ
diff --git a/images/emoji/unicode/1f368.png b/images/emoji/unicode/1f368.png
new file mode 100644
index 0000000..190be01
Binary files /dev/null and b/images/emoji/unicode/1f368.png differ
diff --git a/images/emoji/unicode/1f369.png b/images/emoji/unicode/1f369.png
new file mode 100644
index 0000000..ccf8691
Binary files /dev/null and b/images/emoji/unicode/1f369.png differ
diff --git a/images/emoji/unicode/1f36a.png b/images/emoji/unicode/1f36a.png
new file mode 100644
index 0000000..653edb2
Binary files /dev/null and b/images/emoji/unicode/1f36a.png differ
diff --git a/images/emoji/unicode/1f36b.png b/images/emoji/unicode/1f36b.png
new file mode 100644
index 0000000..c7ec19d
Binary files /dev/null and b/images/emoji/unicode/1f36b.png differ
diff --git a/images/emoji/unicode/1f36c.png b/images/emoji/unicode/1f36c.png
new file mode 100644
index 0000000..33722f2
Binary files /dev/null and b/images/emoji/unicode/1f36c.png differ
diff --git a/images/emoji/unicode/1f36d.png b/images/emoji/unicode/1f36d.png
new file mode 100644
index 0000000..ba55e70
Binary files /dev/null and b/images/emoji/unicode/1f36d.png differ
diff --git a/images/emoji/unicode/1f36e.png b/images/emoji/unicode/1f36e.png
new file mode 100644
index 0000000..9f843b4
Binary files /dev/null and b/images/emoji/unicode/1f36e.png differ
diff --git a/images/emoji/unicode/1f36f.png b/images/emoji/unicode/1f36f.png
new file mode 100644
index 0000000..7327889
Binary files /dev/null and b/images/emoji/unicode/1f36f.png differ
diff --git a/images/emoji/unicode/1f370.png b/images/emoji/unicode/1f370.png
new file mode 100644
index 0000000..efeb9b4
Binary files /dev/null and b/images/emoji/unicode/1f370.png differ
diff --git a/images/emoji/unicode/1f371.png b/images/emoji/unicode/1f371.png
new file mode 100644
index 0000000..c6d99e8
Binary files /dev/null and b/images/emoji/unicode/1f371.png differ
diff --git a/images/emoji/unicode/1f372.png b/images/emoji/unicode/1f372.png
new file mode 100644
index 0000000..6e80b4a
Binary files /dev/null and b/images/emoji/unicode/1f372.png differ
diff --git a/images/emoji/unicode/1f373.png b/images/emoji/unicode/1f373.png
new file mode 100644
index 0000000..c3de6ae
Binary files /dev/null and b/images/emoji/unicode/1f373.png differ
diff --git a/images/emoji/unicode/1f374.png b/images/emoji/unicode/1f374.png
new file mode 100644
index 0000000..8ba4bc6
Binary files /dev/null and b/images/emoji/unicode/1f374.png differ
diff --git a/images/emoji/unicode/1f375.png b/images/emoji/unicode/1f375.png
new file mode 100644
index 0000000..3ece0b7
Binary files /dev/null and b/images/emoji/unicode/1f375.png differ
diff --git a/images/emoji/unicode/1f376.png b/images/emoji/unicode/1f376.png
new file mode 100644
index 0000000..1f69907
Binary files /dev/null and b/images/emoji/unicode/1f376.png differ
diff --git a/images/emoji/unicode/1f377.png b/images/emoji/unicode/1f377.png
new file mode 100644
index 0000000..82b0f00
Binary files /dev/null and b/images/emoji/unicode/1f377.png differ
diff --git a/images/emoji/unicode/1f378.png b/images/emoji/unicode/1f378.png
new file mode 100644
index 0000000..28b45ea
Binary files /dev/null and b/images/emoji/unicode/1f378.png differ
diff --git a/images/emoji/unicode/1f379.png b/images/emoji/unicode/1f379.png
new file mode 100644
index 0000000..55ca9ee
Binary files /dev/null and b/images/emoji/unicode/1f379.png differ
diff --git a/images/emoji/unicode/1f37a.png b/images/emoji/unicode/1f37a.png
new file mode 100644
index 0000000..cd78bed
Binary files /dev/null and b/images/emoji/unicode/1f37a.png differ
diff --git a/images/emoji/unicode/1f37b.png b/images/emoji/unicode/1f37b.png
new file mode 100644
index 0000000..cc5e4ab
Binary files /dev/null and b/images/emoji/unicode/1f37b.png differ
diff --git a/images/emoji/unicode/1f37c.png b/images/emoji/unicode/1f37c.png
new file mode 100644
index 0000000..1b2cfe5
Binary files /dev/null and b/images/emoji/unicode/1f37c.png differ
diff --git a/images/emoji/unicode/1f380.png b/images/emoji/unicode/1f380.png
new file mode 100644
index 0000000..63ee5ba
Binary files /dev/null and b/images/emoji/unicode/1f380.png differ
diff --git a/images/emoji/unicode/1f381.png b/images/emoji/unicode/1f381.png
new file mode 100644
index 0000000..552cfdc
Binary files /dev/null and b/images/emoji/unicode/1f381.png differ
diff --git a/images/emoji/unicode/1f382.png b/images/emoji/unicode/1f382.png
new file mode 100644
index 0000000..36e8edc
Binary files /dev/null and b/images/emoji/unicode/1f382.png differ
diff --git a/images/emoji/unicode/1f383.png b/images/emoji/unicode/1f383.png
new file mode 100644
index 0000000..1f7667e
Binary files /dev/null and b/images/emoji/unicode/1f383.png differ
diff --git a/images/emoji/unicode/1f384.png b/images/emoji/unicode/1f384.png
new file mode 100644
index 0000000..d813b95
Binary files /dev/null and b/images/emoji/unicode/1f384.png differ
diff --git a/images/emoji/unicode/1f385.png b/images/emoji/unicode/1f385.png
new file mode 100644
index 0000000..a2240c0
Binary files /dev/null and b/images/emoji/unicode/1f385.png differ
diff --git a/images/emoji/unicode/1f386.png b/images/emoji/unicode/1f386.png
new file mode 100644
index 0000000..b4eccd5
Binary files /dev/null and b/images/emoji/unicode/1f386.png differ
diff --git a/images/emoji/unicode/1f387.png b/images/emoji/unicode/1f387.png
new file mode 100644
index 0000000..4aabd7e
Binary files /dev/null and b/images/emoji/unicode/1f387.png differ
diff --git a/images/emoji/unicode/1f388.png b/images/emoji/unicode/1f388.png
new file mode 100644
index 0000000..a4d3207
Binary files /dev/null and b/images/emoji/unicode/1f388.png differ
diff --git a/images/emoji/unicode/1f389.png b/images/emoji/unicode/1f389.png
new file mode 100644
index 0000000..7411b52
Binary files /dev/null and b/images/emoji/unicode/1f389.png differ
diff --git a/images/emoji/unicode/1f38a.png b/images/emoji/unicode/1f38a.png
new file mode 100644
index 0000000..bd293e3
Binary files /dev/null and b/images/emoji/unicode/1f38a.png differ
diff --git a/images/emoji/unicode/1f38b.png b/images/emoji/unicode/1f38b.png
new file mode 100644
index 0000000..4733464
Binary files /dev/null and b/images/emoji/unicode/1f38b.png differ
diff --git a/images/emoji/unicode/1f38c.png b/images/emoji/unicode/1f38c.png
new file mode 100644
index 0000000..2ffbb26
Binary files /dev/null and b/images/emoji/unicode/1f38c.png differ
diff --git a/images/emoji/unicode/1f38d.png b/images/emoji/unicode/1f38d.png
new file mode 100644
index 0000000..fc858d0
Binary files /dev/null and b/images/emoji/unicode/1f38d.png differ
diff --git a/images/emoji/unicode/1f38e.png b/images/emoji/unicode/1f38e.png
new file mode 100644
index 0000000..47ce339
Binary files /dev/null and b/images/emoji/unicode/1f38e.png differ
diff --git a/images/emoji/unicode/1f38f.png b/images/emoji/unicode/1f38f.png
new file mode 100644
index 0000000..540164e
Binary files /dev/null and b/images/emoji/unicode/1f38f.png differ
diff --git a/images/emoji/unicode/1f390.png b/images/emoji/unicode/1f390.png
new file mode 100644
index 0000000..efacf5d
Binary files /dev/null and b/images/emoji/unicode/1f390.png differ
diff --git a/images/emoji/unicode/1f391.png b/images/emoji/unicode/1f391.png
new file mode 100644
index 0000000..1436198
Binary files /dev/null and b/images/emoji/unicode/1f391.png differ
diff --git a/images/emoji/unicode/1f392.png b/images/emoji/unicode/1f392.png
new file mode 100644
index 0000000..edfb19a
Binary files /dev/null and b/images/emoji/unicode/1f392.png differ
diff --git a/images/emoji/unicode/1f393.png b/images/emoji/unicode/1f393.png
new file mode 100644
index 0000000..2e811b0
Binary files /dev/null and b/images/emoji/unicode/1f393.png differ
diff --git a/images/emoji/unicode/1f3a0.png b/images/emoji/unicode/1f3a0.png
new file mode 100644
index 0000000..765d2c0
Binary files /dev/null and b/images/emoji/unicode/1f3a0.png differ
diff --git a/images/emoji/unicode/1f3a1.png b/images/emoji/unicode/1f3a1.png
new file mode 100644
index 0000000..54a1dcf
Binary files /dev/null and b/images/emoji/unicode/1f3a1.png differ
diff --git a/images/emoji/unicode/1f3a2.png b/images/emoji/unicode/1f3a2.png
new file mode 100644
index 0000000..9180b98
Binary files /dev/null and b/images/emoji/unicode/1f3a2.png differ
diff --git a/images/emoji/unicode/1f3a3.png b/images/emoji/unicode/1f3a3.png
new file mode 100644
index 0000000..d84609c
Binary files /dev/null and b/images/emoji/unicode/1f3a3.png differ
diff --git a/images/emoji/unicode/1f3a4.png b/images/emoji/unicode/1f3a4.png
new file mode 100644
index 0000000..ce19a2b
Binary files /dev/null and b/images/emoji/unicode/1f3a4.png differ
diff --git a/images/emoji/unicode/1f3a5.png b/images/emoji/unicode/1f3a5.png
new file mode 100644
index 0000000..9c14384
Binary files /dev/null and b/images/emoji/unicode/1f3a5.png differ
diff --git a/images/emoji/unicode/1f3a6.png b/images/emoji/unicode/1f3a6.png
new file mode 100644
index 0000000..a990ccf
Binary files /dev/null and b/images/emoji/unicode/1f3a6.png differ
diff --git a/images/emoji/unicode/1f3a7.png b/images/emoji/unicode/1f3a7.png
new file mode 100644
index 0000000..ad83000
Binary files /dev/null and b/images/emoji/unicode/1f3a7.png differ
diff --git a/images/emoji/unicode/1f3a8.png b/images/emoji/unicode/1f3a8.png
new file mode 100644
index 0000000..d45212b
Binary files /dev/null and b/images/emoji/unicode/1f3a8.png differ
diff --git a/images/emoji/unicode/1f3a9.png b/images/emoji/unicode/1f3a9.png
new file mode 100644
index 0000000..7d27134
Binary files /dev/null and b/images/emoji/unicode/1f3a9.png differ
diff --git a/images/emoji/unicode/1f3aa.png b/images/emoji/unicode/1f3aa.png
new file mode 100644
index 0000000..4af8719
Binary files /dev/null and b/images/emoji/unicode/1f3aa.png differ
diff --git a/images/emoji/unicode/1f3ab.png b/images/emoji/unicode/1f3ab.png
new file mode 100644
index 0000000..cdacf1a
Binary files /dev/null and b/images/emoji/unicode/1f3ab.png differ
diff --git a/images/emoji/unicode/1f3ac.png b/images/emoji/unicode/1f3ac.png
new file mode 100644
index 0000000..4e1dc11
Binary files /dev/null and b/images/emoji/unicode/1f3ac.png differ
diff --git a/images/emoji/unicode/1f3ad.png b/images/emoji/unicode/1f3ad.png
new file mode 100644
index 0000000..899fbe5
Binary files /dev/null and b/images/emoji/unicode/1f3ad.png differ
diff --git a/images/emoji/unicode/1f3ae.png b/images/emoji/unicode/1f3ae.png
new file mode 100644
index 0000000..59d45ba
Binary files /dev/null and b/images/emoji/unicode/1f3ae.png differ
diff --git a/images/emoji/unicode/1f3af.png b/images/emoji/unicode/1f3af.png
new file mode 100644
index 0000000..0438fe5
Binary files /dev/null and b/images/emoji/unicode/1f3af.png differ
diff --git a/images/emoji/unicode/1f3b0.png b/images/emoji/unicode/1f3b0.png
new file mode 100644
index 0000000..26f1148
Binary files /dev/null and b/images/emoji/unicode/1f3b0.png differ
diff --git a/images/emoji/unicode/1f3b1.png b/images/emoji/unicode/1f3b1.png
new file mode 100644
index 0000000..c2c710d
Binary files /dev/null and b/images/emoji/unicode/1f3b1.png differ
diff --git a/images/emoji/unicode/1f3b2.png b/images/emoji/unicode/1f3b2.png
new file mode 100644
index 0000000..4136e78
Binary files /dev/null and b/images/emoji/unicode/1f3b2.png differ
diff --git a/images/emoji/unicode/1f3b3.png b/images/emoji/unicode/1f3b3.png
new file mode 100644
index 0000000..13d8ece
Binary files /dev/null and b/images/emoji/unicode/1f3b3.png differ
diff --git a/images/emoji/unicode/1f3b4.png b/images/emoji/unicode/1f3b4.png
new file mode 100644
index 0000000..cc46a6a
Binary files /dev/null and b/images/emoji/unicode/1f3b4.png differ
diff --git a/images/emoji/unicode/1f3b5.png b/images/emoji/unicode/1f3b5.png
new file mode 100644
index 0000000..68b261b
Binary files /dev/null and b/images/emoji/unicode/1f3b5.png differ
diff --git a/images/emoji/unicode/1f3b6.png b/images/emoji/unicode/1f3b6.png
new file mode 100644
index 0000000..a13147f
Binary files /dev/null and b/images/emoji/unicode/1f3b6.png differ
diff --git a/images/emoji/unicode/1f3b7.png b/images/emoji/unicode/1f3b7.png
new file mode 100644
index 0000000..011559a
Binary files /dev/null and b/images/emoji/unicode/1f3b7.png differ
diff --git a/images/emoji/unicode/1f3b8.png b/images/emoji/unicode/1f3b8.png
new file mode 100644
index 0000000..2b7fa43
Binary files /dev/null and b/images/emoji/unicode/1f3b8.png differ
diff --git a/images/emoji/unicode/1f3b9.png b/images/emoji/unicode/1f3b9.png
new file mode 100644
index 0000000..93647a4
Binary files /dev/null and b/images/emoji/unicode/1f3b9.png differ
diff --git a/images/emoji/unicode/1f3ba.png b/images/emoji/unicode/1f3ba.png
new file mode 100644
index 0000000..8d4703f
Binary files /dev/null and b/images/emoji/unicode/1f3ba.png differ
diff --git a/images/emoji/unicode/1f3bb.png b/images/emoji/unicode/1f3bb.png
new file mode 100644
index 0000000..0dba5ba
Binary files /dev/null and b/images/emoji/unicode/1f3bb.png differ
diff --git a/images/emoji/unicode/1f3bc.png b/images/emoji/unicode/1f3bc.png
new file mode 100644
index 0000000..0c927d3
Binary files /dev/null and b/images/emoji/unicode/1f3bc.png differ
diff --git a/images/emoji/unicode/1f3bd.png b/images/emoji/unicode/1f3bd.png
new file mode 100644
index 0000000..0d68bba
Binary files /dev/null and b/images/emoji/unicode/1f3bd.png differ
diff --git a/images/emoji/unicode/1f3be.png b/images/emoji/unicode/1f3be.png
new file mode 100644
index 0000000..278d904
Binary files /dev/null and b/images/emoji/unicode/1f3be.png differ
diff --git a/images/emoji/unicode/1f3bf.png b/images/emoji/unicode/1f3bf.png
new file mode 100644
index 0000000..c97de3e
Binary files /dev/null and b/images/emoji/unicode/1f3bf.png differ
diff --git a/images/emoji/unicode/1f3c0.png b/images/emoji/unicode/1f3c0.png
new file mode 100644
index 0000000..ef694be
Binary files /dev/null and b/images/emoji/unicode/1f3c0.png differ
diff --git a/images/emoji/unicode/1f3c1.png b/images/emoji/unicode/1f3c1.png
new file mode 100644
index 0000000..ead4a68
Binary files /dev/null and b/images/emoji/unicode/1f3c1.png differ
diff --git a/images/emoji/unicode/1f3c2.png b/images/emoji/unicode/1f3c2.png
new file mode 100644
index 0000000..aeda5c8
Binary files /dev/null and b/images/emoji/unicode/1f3c2.png differ
diff --git a/images/emoji/unicode/1f3c3.png b/images/emoji/unicode/1f3c3.png
new file mode 100644
index 0000000..1ecfd90
Binary files /dev/null and b/images/emoji/unicode/1f3c3.png differ
diff --git a/images/emoji/unicode/1f3c4.png b/images/emoji/unicode/1f3c4.png
new file mode 100644
index 0000000..b067e8c
Binary files /dev/null and b/images/emoji/unicode/1f3c4.png differ
diff --git a/images/emoji/unicode/1f3c6.png b/images/emoji/unicode/1f3c6.png
new file mode 100644
index 0000000..95d3b63
Binary files /dev/null and b/images/emoji/unicode/1f3c6.png differ
diff --git a/images/emoji/unicode/1f3c7.png b/images/emoji/unicode/1f3c7.png
new file mode 100644
index 0000000..e3bbaec
Binary files /dev/null and b/images/emoji/unicode/1f3c7.png differ
diff --git a/images/emoji/unicode/1f3c8.png b/images/emoji/unicode/1f3c8.png
new file mode 100644
index 0000000..0e4e168
Binary files /dev/null and b/images/emoji/unicode/1f3c8.png differ
diff --git a/images/emoji/unicode/1f3c9.png b/images/emoji/unicode/1f3c9.png
new file mode 100644
index 0000000..f8db67d
Binary files /dev/null and b/images/emoji/unicode/1f3c9.png differ
diff --git a/images/emoji/unicode/1f3ca.png b/images/emoji/unicode/1f3ca.png
new file mode 100644
index 0000000..d3878a0
Binary files /dev/null and b/images/emoji/unicode/1f3ca.png differ
diff --git a/images/emoji/unicode/1f3e0.png b/images/emoji/unicode/1f3e0.png
new file mode 100644
index 0000000..95b9ee0
Binary files /dev/null and b/images/emoji/unicode/1f3e0.png differ
diff --git a/images/emoji/unicode/1f3e1.png b/images/emoji/unicode/1f3e1.png
new file mode 100644
index 0000000..eccbfe9
Binary files /dev/null and b/images/emoji/unicode/1f3e1.png differ
diff --git a/images/emoji/unicode/1f3e2.png b/images/emoji/unicode/1f3e2.png
new file mode 100644
index 0000000..3f20b56
Binary files /dev/null and b/images/emoji/unicode/1f3e2.png differ
diff --git a/images/emoji/unicode/1f3e3.png b/images/emoji/unicode/1f3e3.png
new file mode 100644
index 0000000..43b59e3
Binary files /dev/null and b/images/emoji/unicode/1f3e3.png differ
diff --git a/images/emoji/unicode/1f3e4.png b/images/emoji/unicode/1f3e4.png
new file mode 100644
index 0000000..0f65b14
Binary files /dev/null and b/images/emoji/unicode/1f3e4.png differ
diff --git a/images/emoji/unicode/1f3e5.png b/images/emoji/unicode/1f3e5.png
new file mode 100644
index 0000000..c05c493
Binary files /dev/null and b/images/emoji/unicode/1f3e5.png differ
diff --git a/images/emoji/unicode/1f3e6.png b/images/emoji/unicode/1f3e6.png
new file mode 100644
index 0000000..1faa877
Binary files /dev/null and b/images/emoji/unicode/1f3e6.png differ
diff --git a/images/emoji/unicode/1f3e7.png b/images/emoji/unicode/1f3e7.png
new file mode 100644
index 0000000..c2846e7
Binary files /dev/null and b/images/emoji/unicode/1f3e7.png differ
diff --git a/images/emoji/unicode/1f3e8.png b/images/emoji/unicode/1f3e8.png
new file mode 100644
index 0000000..d29f276
Binary files /dev/null and b/images/emoji/unicode/1f3e8.png differ
diff --git a/images/emoji/unicode/1f3e9.png b/images/emoji/unicode/1f3e9.png
new file mode 100644
index 0000000..44d7db8
Binary files /dev/null and b/images/emoji/unicode/1f3e9.png differ
diff --git a/images/emoji/unicode/1f3ea.png b/images/emoji/unicode/1f3ea.png
new file mode 100644
index 0000000..671696c
Binary files /dev/null and b/images/emoji/unicode/1f3ea.png differ
diff --git a/images/emoji/unicode/1f3eb.png b/images/emoji/unicode/1f3eb.png
new file mode 100644
index 0000000..afd922b
Binary files /dev/null and b/images/emoji/unicode/1f3eb.png differ
diff --git a/images/emoji/unicode/1f3ec.png b/images/emoji/unicode/1f3ec.png
new file mode 100644
index 0000000..68d959c
Binary files /dev/null and b/images/emoji/unicode/1f3ec.png differ
diff --git a/images/emoji/unicode/1f3ed.png b/images/emoji/unicode/1f3ed.png
new file mode 100644
index 0000000..6404634
Binary files /dev/null and b/images/emoji/unicode/1f3ed.png differ
diff --git a/images/emoji/unicode/1f3ee.png b/images/emoji/unicode/1f3ee.png
new file mode 100644
index 0000000..18730ad
Binary files /dev/null and b/images/emoji/unicode/1f3ee.png differ
diff --git a/images/emoji/unicode/1f3ef.png b/images/emoji/unicode/1f3ef.png
new file mode 100644
index 0000000..f225ab2
Binary files /dev/null and b/images/emoji/unicode/1f3ef.png differ
diff --git a/images/emoji/unicode/1f3f0.png b/images/emoji/unicode/1f3f0.png
new file mode 100644
index 0000000..8229b8a
Binary files /dev/null and b/images/emoji/unicode/1f3f0.png differ
diff --git a/images/emoji/unicode/1f400.png b/images/emoji/unicode/1f400.png
new file mode 100644
index 0000000..1c463df
Binary files /dev/null and b/images/emoji/unicode/1f400.png differ
diff --git a/images/emoji/unicode/1f401.png b/images/emoji/unicode/1f401.png
new file mode 100644
index 0000000..2d777e5
Binary files /dev/null and b/images/emoji/unicode/1f401.png differ
diff --git a/images/emoji/unicode/1f402.png b/images/emoji/unicode/1f402.png
new file mode 100644
index 0000000..f766980
Binary files /dev/null and b/images/emoji/unicode/1f402.png differ
diff --git a/images/emoji/unicode/1f403.png b/images/emoji/unicode/1f403.png
new file mode 100644
index 0000000..3bcde3e
Binary files /dev/null and b/images/emoji/unicode/1f403.png differ
diff --git a/images/emoji/unicode/1f404.png b/images/emoji/unicode/1f404.png
new file mode 100644
index 0000000..594c921
Binary files /dev/null and b/images/emoji/unicode/1f404.png differ
diff --git a/images/emoji/unicode/1f405.png b/images/emoji/unicode/1f405.png
new file mode 100644
index 0000000..b0c7d8d
Binary files /dev/null and b/images/emoji/unicode/1f405.png differ
diff --git a/images/emoji/unicode/1f406.png b/images/emoji/unicode/1f406.png
new file mode 100644
index 0000000..8abfc4a
Binary files /dev/null and b/images/emoji/unicode/1f406.png differ
diff --git a/images/emoji/unicode/1f407.png b/images/emoji/unicode/1f407.png
new file mode 100644
index 0000000..5bc993e
Binary files /dev/null and b/images/emoji/unicode/1f407.png differ
diff --git a/images/emoji/unicode/1f408.png b/images/emoji/unicode/1f408.png
new file mode 100644
index 0000000..977c992
Binary files /dev/null and b/images/emoji/unicode/1f408.png differ
diff --git a/images/emoji/unicode/1f409.png b/images/emoji/unicode/1f409.png
new file mode 100644
index 0000000..e399d60
Binary files /dev/null and b/images/emoji/unicode/1f409.png differ
diff --git a/images/emoji/unicode/1f40a.png b/images/emoji/unicode/1f40a.png
new file mode 100644
index 0000000..7435d5a
Binary files /dev/null and b/images/emoji/unicode/1f40a.png differ
diff --git a/images/emoji/unicode/1f40b.png b/images/emoji/unicode/1f40b.png
new file mode 100644
index 0000000..4af657b
Binary files /dev/null and b/images/emoji/unicode/1f40b.png differ
diff --git a/images/emoji/unicode/1f40c.png b/images/emoji/unicode/1f40c.png
new file mode 100644
index 0000000..e75e69a
Binary files /dev/null and b/images/emoji/unicode/1f40c.png differ
diff --git a/images/emoji/unicode/1f40d.png b/images/emoji/unicode/1f40d.png
new file mode 100644
index 0000000..ef58933
Binary files /dev/null and b/images/emoji/unicode/1f40d.png differ
diff --git a/images/emoji/unicode/1f40e.png b/images/emoji/unicode/1f40e.png
new file mode 100644
index 0000000..4d09c64
Binary files /dev/null and b/images/emoji/unicode/1f40e.png differ
diff --git a/images/emoji/unicode/1f40f.png b/images/emoji/unicode/1f40f.png
new file mode 100644
index 0000000..5ea7bfb
Binary files /dev/null and b/images/emoji/unicode/1f40f.png differ
diff --git a/images/emoji/unicode/1f410.png b/images/emoji/unicode/1f410.png
new file mode 100644
index 0000000..4be9cf3
Binary files /dev/null and b/images/emoji/unicode/1f410.png differ
diff --git a/images/emoji/unicode/1f411.png b/images/emoji/unicode/1f411.png
new file mode 100644
index 0000000..c7277d2
Binary files /dev/null and b/images/emoji/unicode/1f411.png differ
diff --git a/images/emoji/unicode/1f412.png b/images/emoji/unicode/1f412.png
new file mode 100644
index 0000000..6407035
Binary files /dev/null and b/images/emoji/unicode/1f412.png differ
diff --git a/images/emoji/unicode/1f413.png b/images/emoji/unicode/1f413.png
new file mode 100644
index 0000000..fab23ad
Binary files /dev/null and b/images/emoji/unicode/1f413.png differ
diff --git a/images/emoji/unicode/1f414.png b/images/emoji/unicode/1f414.png
new file mode 100644
index 0000000..6d25c0e
Binary files /dev/null and b/images/emoji/unicode/1f414.png differ
diff --git a/images/emoji/unicode/1f415.png b/images/emoji/unicode/1f415.png
new file mode 100644
index 0000000..c7f6a24
Binary files /dev/null and b/images/emoji/unicode/1f415.png differ
diff --git a/images/emoji/unicode/1f416.png b/images/emoji/unicode/1f416.png
new file mode 100644
index 0000000..fec3374
Binary files /dev/null and b/images/emoji/unicode/1f416.png differ
diff --git a/images/emoji/unicode/1f417.png b/images/emoji/unicode/1f417.png
new file mode 100644
index 0000000..8196ad4
Binary files /dev/null and b/images/emoji/unicode/1f417.png differ
diff --git a/images/emoji/unicode/1f418.png b/images/emoji/unicode/1f418.png
new file mode 100644
index 0000000..5ca0457
Binary files /dev/null and b/images/emoji/unicode/1f418.png differ
diff --git a/images/emoji/unicode/1f419.png b/images/emoji/unicode/1f419.png
new file mode 100644
index 0000000..52ce64b
Binary files /dev/null and b/images/emoji/unicode/1f419.png differ
diff --git a/images/emoji/unicode/1f41a.png b/images/emoji/unicode/1f41a.png
new file mode 100644
index 0000000..3145b56
Binary files /dev/null and b/images/emoji/unicode/1f41a.png differ
diff --git a/images/emoji/unicode/1f41b.png b/images/emoji/unicode/1f41b.png
new file mode 100644
index 0000000..c2eaf7a
Binary files /dev/null and b/images/emoji/unicode/1f41b.png differ
diff --git a/images/emoji/unicode/1f41c.png b/images/emoji/unicode/1f41c.png
new file mode 100644
index 0000000..b92d1cc
Binary files /dev/null and b/images/emoji/unicode/1f41c.png differ
diff --git a/images/emoji/unicode/1f41d.png b/images/emoji/unicode/1f41d.png
new file mode 100644
index 0000000..f537339
Binary files /dev/null and b/images/emoji/unicode/1f41d.png differ
diff --git a/images/emoji/unicode/1f41e.png b/images/emoji/unicode/1f41e.png
new file mode 100644
index 0000000..222577c
Binary files /dev/null and b/images/emoji/unicode/1f41e.png differ
diff --git a/images/emoji/unicode/1f41f.png b/images/emoji/unicode/1f41f.png
new file mode 100644
index 0000000..dc2a3f5
Binary files /dev/null and b/images/emoji/unicode/1f41f.png differ
diff --git a/images/emoji/unicode/1f420.png b/images/emoji/unicode/1f420.png
new file mode 100644
index 0000000..a6d7349
Binary files /dev/null and b/images/emoji/unicode/1f420.png differ
diff --git a/images/emoji/unicode/1f421.png b/images/emoji/unicode/1f421.png
new file mode 100644
index 0000000..a1d47cb
Binary files /dev/null and b/images/emoji/unicode/1f421.png differ
diff --git a/images/emoji/unicode/1f422.png b/images/emoji/unicode/1f422.png
new file mode 100644
index 0000000..04d1d96
Binary files /dev/null and b/images/emoji/unicode/1f422.png differ
diff --git a/images/emoji/unicode/1f423.png b/images/emoji/unicode/1f423.png
new file mode 100644
index 0000000..005a555
Binary files /dev/null and b/images/emoji/unicode/1f423.png differ
diff --git a/images/emoji/unicode/1f424.png b/images/emoji/unicode/1f424.png
new file mode 100644
index 0000000..9be8d29
Binary files /dev/null and b/images/emoji/unicode/1f424.png differ
diff --git a/images/emoji/unicode/1f425.png b/images/emoji/unicode/1f425.png
new file mode 100644
index 0000000..39c25bc
Binary files /dev/null and b/images/emoji/unicode/1f425.png differ
diff --git a/images/emoji/unicode/1f426.png b/images/emoji/unicode/1f426.png
new file mode 100644
index 0000000..e6be8c0
Binary files /dev/null and b/images/emoji/unicode/1f426.png differ
diff --git a/images/emoji/unicode/1f427.png b/images/emoji/unicode/1f427.png
new file mode 100644
index 0000000..d8edbcb
Binary files /dev/null and b/images/emoji/unicode/1f427.png differ
diff --git a/images/emoji/unicode/1f428.png b/images/emoji/unicode/1f428.png
new file mode 100644
index 0000000..e17bd3c
Binary files /dev/null and b/images/emoji/unicode/1f428.png differ
diff --git a/images/emoji/unicode/1f429.png b/images/emoji/unicode/1f429.png
new file mode 100644
index 0000000..adac80b
Binary files /dev/null and b/images/emoji/unicode/1f429.png differ
diff --git a/images/emoji/unicode/1f42a.png b/images/emoji/unicode/1f42a.png
new file mode 100644
index 0000000..c8c7b9f
Binary files /dev/null and b/images/emoji/unicode/1f42a.png differ
diff --git a/images/emoji/unicode/1f42b.png b/images/emoji/unicode/1f42b.png
new file mode 100644
index 0000000..496c186
Binary files /dev/null and b/images/emoji/unicode/1f42b.png differ
diff --git a/images/emoji/unicode/1f42c.png b/images/emoji/unicode/1f42c.png
new file mode 100644
index 0000000..9326077
Binary files /dev/null and b/images/emoji/unicode/1f42c.png differ
diff --git a/images/emoji/unicode/1f42d.png b/images/emoji/unicode/1f42d.png
new file mode 100644
index 0000000..8ff162e
Binary files /dev/null and b/images/emoji/unicode/1f42d.png differ
diff --git a/images/emoji/unicode/1f42e.png b/images/emoji/unicode/1f42e.png
new file mode 100644
index 0000000..12e1ab6
Binary files /dev/null and b/images/emoji/unicode/1f42e.png differ
diff --git a/images/emoji/unicode/1f42f.png b/images/emoji/unicode/1f42f.png
new file mode 100644
index 0000000..d6cc84a
Binary files /dev/null and b/images/emoji/unicode/1f42f.png differ
diff --git a/images/emoji/unicode/1f430.png b/images/emoji/unicode/1f430.png
new file mode 100644
index 0000000..5cb3ef6
Binary files /dev/null and b/images/emoji/unicode/1f430.png differ
diff --git a/images/emoji/unicode/1f431.png b/images/emoji/unicode/1f431.png
new file mode 100644
index 0000000..09b9ef7
Binary files /dev/null and b/images/emoji/unicode/1f431.png differ
diff --git a/images/emoji/unicode/1f432.png b/images/emoji/unicode/1f432.png
new file mode 100644
index 0000000..e5e556b
Binary files /dev/null and b/images/emoji/unicode/1f432.png differ
diff --git a/images/emoji/unicode/1f433.png b/images/emoji/unicode/1f433.png
new file mode 100644
index 0000000..5bb113e
Binary files /dev/null and b/images/emoji/unicode/1f433.png differ
diff --git a/images/emoji/unicode/1f434.png b/images/emoji/unicode/1f434.png
new file mode 100644
index 0000000..78d580a
Binary files /dev/null and b/images/emoji/unicode/1f434.png differ
diff --git a/images/emoji/unicode/1f435.png b/images/emoji/unicode/1f435.png
new file mode 100644
index 0000000..6964cf4
Binary files /dev/null and b/images/emoji/unicode/1f435.png differ
diff --git a/images/emoji/unicode/1f436.png b/images/emoji/unicode/1f436.png
new file mode 100644
index 0000000..389a02b
Binary files /dev/null and b/images/emoji/unicode/1f436.png differ
diff --git a/images/emoji/unicode/1f437.png b/images/emoji/unicode/1f437.png
new file mode 100644
index 0000000..f7f273c
Binary files /dev/null and b/images/emoji/unicode/1f437.png differ
diff --git a/images/emoji/unicode/1f438.png b/images/emoji/unicode/1f438.png
new file mode 100644
index 0000000..cfe11b1
Binary files /dev/null and b/images/emoji/unicode/1f438.png differ
diff --git a/images/emoji/unicode/1f439.png b/images/emoji/unicode/1f439.png
new file mode 100644
index 0000000..ada9c31
Binary files /dev/null and b/images/emoji/unicode/1f439.png differ
diff --git a/images/emoji/unicode/1f43a.png b/images/emoji/unicode/1f43a.png
new file mode 100644
index 0000000..c60c968
Binary files /dev/null and b/images/emoji/unicode/1f43a.png differ
diff --git a/images/emoji/unicode/1f43b.png b/images/emoji/unicode/1f43b.png
new file mode 100644
index 0000000..f5afe92
Binary files /dev/null and b/images/emoji/unicode/1f43b.png differ
diff --git a/images/emoji/unicode/1f43c.png b/images/emoji/unicode/1f43c.png
new file mode 100644
index 0000000..a794fb1
Binary files /dev/null and b/images/emoji/unicode/1f43c.png differ
diff --git a/images/emoji/unicode/1f43d.png b/images/emoji/unicode/1f43d.png
new file mode 100644
index 0000000..38d6124
Binary files /dev/null and b/images/emoji/unicode/1f43d.png differ
diff --git a/images/emoji/unicode/1f43e.png b/images/emoji/unicode/1f43e.png
new file mode 100644
index 0000000..89b9fec
Binary files /dev/null and b/images/emoji/unicode/1f43e.png differ
diff --git a/images/emoji/unicode/1f440.png b/images/emoji/unicode/1f440.png
new file mode 100644
index 0000000..dc2216f
Binary files /dev/null and b/images/emoji/unicode/1f440.png differ
diff --git a/images/emoji/unicode/1f442.png b/images/emoji/unicode/1f442.png
new file mode 100644
index 0000000..2bbbf10
Binary files /dev/null and b/images/emoji/unicode/1f442.png differ
diff --git a/images/emoji/unicode/1f443.png b/images/emoji/unicode/1f443.png
new file mode 100644
index 0000000..ad17c16
Binary files /dev/null and b/images/emoji/unicode/1f443.png differ
diff --git a/images/emoji/unicode/1f444.png b/images/emoji/unicode/1f444.png
new file mode 100644
index 0000000..826ed11
Binary files /dev/null and b/images/emoji/unicode/1f444.png differ
diff --git a/images/emoji/unicode/1f445.png b/images/emoji/unicode/1f445.png
new file mode 100644
index 0000000..b0bab12
Binary files /dev/null and b/images/emoji/unicode/1f445.png differ
diff --git a/images/emoji/unicode/1f446.png b/images/emoji/unicode/1f446.png
new file mode 100644
index 0000000..196d109
Binary files /dev/null and b/images/emoji/unicode/1f446.png differ
diff --git a/images/emoji/unicode/1f447.png b/images/emoji/unicode/1f447.png
new file mode 100644
index 0000000..658c6d9
Binary files /dev/null and b/images/emoji/unicode/1f447.png differ
diff --git a/images/emoji/unicode/1f448.png b/images/emoji/unicode/1f448.png
new file mode 100644
index 0000000..fee9cac
Binary files /dev/null and b/images/emoji/unicode/1f448.png differ
diff --git a/images/emoji/unicode/1f449.png b/images/emoji/unicode/1f449.png
new file mode 100644
index 0000000..b04e284
Binary files /dev/null and b/images/emoji/unicode/1f449.png differ
diff --git a/images/emoji/unicode/1f44a.png b/images/emoji/unicode/1f44a.png
new file mode 100644
index 0000000..2d41fd3
Binary files /dev/null and b/images/emoji/unicode/1f44a.png differ
diff --git a/images/emoji/unicode/1f44b.png b/images/emoji/unicode/1f44b.png
new file mode 100644
index 0000000..e78402e
Binary files /dev/null and b/images/emoji/unicode/1f44b.png differ
diff --git a/images/emoji/unicode/1f44c.png b/images/emoji/unicode/1f44c.png
new file mode 100644
index 0000000..3177439
Binary files /dev/null and b/images/emoji/unicode/1f44c.png differ
diff --git a/images/emoji/unicode/1f44d.png b/images/emoji/unicode/1f44d.png
new file mode 100644
index 0000000..3a43eca
Binary files /dev/null and b/images/emoji/unicode/1f44d.png differ
diff --git a/images/emoji/unicode/1f44e.png b/images/emoji/unicode/1f44e.png
new file mode 100644
index 0000000..e44c042
Binary files /dev/null and b/images/emoji/unicode/1f44e.png differ
diff --git a/images/emoji/unicode/1f44f.png b/images/emoji/unicode/1f44f.png
new file mode 100644
index 0000000..d01c982
Binary files /dev/null and b/images/emoji/unicode/1f44f.png differ
diff --git a/images/emoji/unicode/1f450.png b/images/emoji/unicode/1f450.png
new file mode 100644
index 0000000..2cc25bd
Binary files /dev/null and b/images/emoji/unicode/1f450.png differ
diff --git a/images/emoji/unicode/1f451.png b/images/emoji/unicode/1f451.png
new file mode 100644
index 0000000..39da1d5
Binary files /dev/null and b/images/emoji/unicode/1f451.png differ
diff --git a/images/emoji/unicode/1f452.png b/images/emoji/unicode/1f452.png
new file mode 100644
index 0000000..4cb2e6a
Binary files /dev/null and b/images/emoji/unicode/1f452.png differ
diff --git a/images/emoji/unicode/1f453.png b/images/emoji/unicode/1f453.png
new file mode 100644
index 0000000..a3cf75a
Binary files /dev/null and b/images/emoji/unicode/1f453.png differ
diff --git a/images/emoji/unicode/1f454.png b/images/emoji/unicode/1f454.png
new file mode 100644
index 0000000..80461c6
Binary files /dev/null and b/images/emoji/unicode/1f454.png differ
diff --git a/images/emoji/unicode/1f455.png b/images/emoji/unicode/1f455.png
new file mode 100644
index 0000000..297a6d6
Binary files /dev/null and b/images/emoji/unicode/1f455.png differ
diff --git a/images/emoji/unicode/1f456.png b/images/emoji/unicode/1f456.png
new file mode 100644
index 0000000..d721cea
Binary files /dev/null and b/images/emoji/unicode/1f456.png differ
diff --git a/images/emoji/unicode/1f457.png b/images/emoji/unicode/1f457.png
new file mode 100644
index 0000000..6434e2e
Binary files /dev/null and b/images/emoji/unicode/1f457.png differ
diff --git a/images/emoji/unicode/1f458.png b/images/emoji/unicode/1f458.png
new file mode 100644
index 0000000..34ffe13
Binary files /dev/null and b/images/emoji/unicode/1f458.png differ
diff --git a/images/emoji/unicode/1f459.png b/images/emoji/unicode/1f459.png
new file mode 100644
index 0000000..4ff63b4
Binary files /dev/null and b/images/emoji/unicode/1f459.png differ
diff --git a/images/emoji/unicode/1f45a.png b/images/emoji/unicode/1f45a.png
new file mode 100644
index 0000000..aa297c7
Binary files /dev/null and b/images/emoji/unicode/1f45a.png differ
diff --git a/images/emoji/unicode/1f45b.png b/images/emoji/unicode/1f45b.png
new file mode 100644
index 0000000..8f06a2b
Binary files /dev/null and b/images/emoji/unicode/1f45b.png differ
diff --git a/images/emoji/unicode/1f45c.png b/images/emoji/unicode/1f45c.png
new file mode 100644
index 0000000..d7adf04
Binary files /dev/null and b/images/emoji/unicode/1f45c.png differ
diff --git a/images/emoji/unicode/1f45d.png b/images/emoji/unicode/1f45d.png
new file mode 100644
index 0000000..0bc5879
Binary files /dev/null and b/images/emoji/unicode/1f45d.png differ
diff --git a/images/emoji/unicode/1f45e.png b/images/emoji/unicode/1f45e.png
new file mode 100644
index 0000000..ecba9ba
Binary files /dev/null and b/images/emoji/unicode/1f45e.png differ
diff --git a/images/emoji/unicode/1f45f.png b/images/emoji/unicode/1f45f.png
new file mode 100644
index 0000000..45b82e6
Binary files /dev/null and b/images/emoji/unicode/1f45f.png differ
diff --git a/images/emoji/unicode/1f460.png b/images/emoji/unicode/1f460.png
new file mode 100644
index 0000000..525b6a0
Binary files /dev/null and b/images/emoji/unicode/1f460.png differ
diff --git a/images/emoji/unicode/1f461.png b/images/emoji/unicode/1f461.png
new file mode 100644
index 0000000..aa62cca
Binary files /dev/null and b/images/emoji/unicode/1f461.png differ
diff --git a/images/emoji/unicode/1f462.png b/images/emoji/unicode/1f462.png
new file mode 100644
index 0000000..58d0fdb
Binary files /dev/null and b/images/emoji/unicode/1f462.png differ
diff --git a/images/emoji/unicode/1f463.png b/images/emoji/unicode/1f463.png
new file mode 100644
index 0000000..d7a2561
Binary files /dev/null and b/images/emoji/unicode/1f463.png differ
diff --git a/images/emoji/unicode/1f464.png b/images/emoji/unicode/1f464.png
new file mode 100644
index 0000000..d131398
Binary files /dev/null and b/images/emoji/unicode/1f464.png differ
diff --git a/images/emoji/unicode/1f465.png b/images/emoji/unicode/1f465.png
new file mode 100644
index 0000000..1f3aabc
Binary files /dev/null and b/images/emoji/unicode/1f465.png differ
diff --git a/images/emoji/unicode/1f466.png b/images/emoji/unicode/1f466.png
new file mode 100644
index 0000000..f79f1f2
Binary files /dev/null and b/images/emoji/unicode/1f466.png differ
diff --git a/images/emoji/unicode/1f467.png b/images/emoji/unicode/1f467.png
new file mode 100644
index 0000000..ea41269
Binary files /dev/null and b/images/emoji/unicode/1f467.png differ
diff --git a/images/emoji/unicode/1f468.png b/images/emoji/unicode/1f468.png
new file mode 100644
index 0000000..d9bfa26
Binary files /dev/null and b/images/emoji/unicode/1f468.png differ
diff --git a/images/emoji/unicode/1f469.png b/images/emoji/unicode/1f469.png
new file mode 100644
index 0000000..6bf0d2b
Binary files /dev/null and b/images/emoji/unicode/1f469.png differ
diff --git a/images/emoji/unicode/1f46a.png b/images/emoji/unicode/1f46a.png
new file mode 100644
index 0000000..b4b365f
Binary files /dev/null and b/images/emoji/unicode/1f46a.png differ
diff --git a/images/emoji/unicode/1f46b.png b/images/emoji/unicode/1f46b.png
new file mode 100644
index 0000000..9e51f40
Binary files /dev/null and b/images/emoji/unicode/1f46b.png differ
diff --git a/images/emoji/unicode/1f46c.png b/images/emoji/unicode/1f46c.png
new file mode 100644
index 0000000..d1099f2
Binary files /dev/null and b/images/emoji/unicode/1f46c.png differ
diff --git a/images/emoji/unicode/1f46d.png b/images/emoji/unicode/1f46d.png
new file mode 100644
index 0000000..619646c
Binary files /dev/null and b/images/emoji/unicode/1f46d.png differ
diff --git a/images/emoji/unicode/1f46e.png b/images/emoji/unicode/1f46e.png
new file mode 100644
index 0000000..43a5a84
Binary files /dev/null and b/images/emoji/unicode/1f46e.png differ
diff --git a/images/emoji/unicode/1f46f.png b/images/emoji/unicode/1f46f.png
new file mode 100644
index 0000000..2dfb451
Binary files /dev/null and b/images/emoji/unicode/1f46f.png differ
diff --git a/images/emoji/unicode/1f470.png b/images/emoji/unicode/1f470.png
new file mode 100644
index 0000000..dd0b0cf
Binary files /dev/null and b/images/emoji/unicode/1f470.png differ
diff --git a/images/emoji/unicode/1f471.png b/images/emoji/unicode/1f471.png
new file mode 100644
index 0000000..c144301
Binary files /dev/null and b/images/emoji/unicode/1f471.png differ
diff --git a/images/emoji/unicode/1f472.png b/images/emoji/unicode/1f472.png
new file mode 100644
index 0000000..7aad74b
Binary files /dev/null and b/images/emoji/unicode/1f472.png differ
diff --git a/images/emoji/unicode/1f473.png b/images/emoji/unicode/1f473.png
new file mode 100644
index 0000000..036604c
Binary files /dev/null and b/images/emoji/unicode/1f473.png differ
diff --git a/images/emoji/unicode/1f474.png b/images/emoji/unicode/1f474.png
new file mode 100644
index 0000000..149f0cf
Binary files /dev/null and b/images/emoji/unicode/1f474.png differ
diff --git a/images/emoji/unicode/1f475.png b/images/emoji/unicode/1f475.png
new file mode 100644
index 0000000..f839565
Binary files /dev/null and b/images/emoji/unicode/1f475.png differ
diff --git a/images/emoji/unicode/1f476.png b/images/emoji/unicode/1f476.png
new file mode 100644
index 0000000..3b29da4
Binary files /dev/null and b/images/emoji/unicode/1f476.png differ
diff --git a/images/emoji/unicode/1f477.png b/images/emoji/unicode/1f477.png
new file mode 100644
index 0000000..4d64860
Binary files /dev/null and b/images/emoji/unicode/1f477.png differ
diff --git a/images/emoji/unicode/1f478.png b/images/emoji/unicode/1f478.png
new file mode 100644
index 0000000..1ebb2ce
Binary files /dev/null and b/images/emoji/unicode/1f478.png differ
diff --git a/images/emoji/unicode/1f479.png b/images/emoji/unicode/1f479.png
new file mode 100644
index 0000000..e9f5471
Binary files /dev/null and b/images/emoji/unicode/1f479.png differ
diff --git a/images/emoji/unicode/1f47a.png b/images/emoji/unicode/1f47a.png
new file mode 100644
index 0000000..bd21b18
Binary files /dev/null and b/images/emoji/unicode/1f47a.png differ
diff --git a/images/emoji/unicode/1f47b.png b/images/emoji/unicode/1f47b.png
new file mode 100644
index 0000000..671dd0c
Binary files /dev/null and b/images/emoji/unicode/1f47b.png differ
diff --git a/images/emoji/unicode/1f47c.png b/images/emoji/unicode/1f47c.png
new file mode 100644
index 0000000..da52c31
Binary files /dev/null and b/images/emoji/unicode/1f47c.png differ
diff --git a/images/emoji/unicode/1f47d.png b/images/emoji/unicode/1f47d.png
new file mode 100644
index 0000000..e3fd76a
Binary files /dev/null and b/images/emoji/unicode/1f47d.png differ
diff --git a/images/emoji/unicode/1f47e.png b/images/emoji/unicode/1f47e.png
new file mode 100644
index 0000000..3840491
Binary files /dev/null and b/images/emoji/unicode/1f47e.png differ
diff --git a/images/emoji/unicode/1f47f.png b/images/emoji/unicode/1f47f.png
new file mode 100644
index 0000000..48e5701
Binary files /dev/null and b/images/emoji/unicode/1f47f.png differ
diff --git a/images/emoji/unicode/1f480.png b/images/emoji/unicode/1f480.png
new file mode 100644
index 0000000..bd4ee38
Binary files /dev/null and b/images/emoji/unicode/1f480.png differ
diff --git a/images/emoji/unicode/1f481.png b/images/emoji/unicode/1f481.png
new file mode 100644
index 0000000..52c0a50
Binary files /dev/null and b/images/emoji/unicode/1f481.png differ
diff --git a/images/emoji/unicode/1f482.png b/images/emoji/unicode/1f482.png
new file mode 100644
index 0000000..b67b335
Binary files /dev/null and b/images/emoji/unicode/1f482.png differ
diff --git a/images/emoji/unicode/1f483.png b/images/emoji/unicode/1f483.png
new file mode 100644
index 0000000..6885a0b
Binary files /dev/null and b/images/emoji/unicode/1f483.png differ
diff --git a/images/emoji/unicode/1f484.png b/images/emoji/unicode/1f484.png
new file mode 100644
index 0000000..82f990c
Binary files /dev/null and b/images/emoji/unicode/1f484.png differ
diff --git a/images/emoji/unicode/1f485.png b/images/emoji/unicode/1f485.png
new file mode 100644
index 0000000..6a66e63
Binary files /dev/null and b/images/emoji/unicode/1f485.png differ
diff --git a/images/emoji/unicode/1f486.png b/images/emoji/unicode/1f486.png
new file mode 100644
index 0000000..dd30d15
Binary files /dev/null and b/images/emoji/unicode/1f486.png differ
diff --git a/images/emoji/unicode/1f487.png b/images/emoji/unicode/1f487.png
new file mode 100644
index 0000000..902d273
Binary files /dev/null and b/images/emoji/unicode/1f487.png differ
diff --git a/images/emoji/unicode/1f488.png b/images/emoji/unicode/1f488.png
new file mode 100644
index 0000000..a10cb23
Binary files /dev/null and b/images/emoji/unicode/1f488.png differ
diff --git a/images/emoji/unicode/1f489.png b/images/emoji/unicode/1f489.png
new file mode 100644
index 0000000..e7e7ab6
Binary files /dev/null and b/images/emoji/unicode/1f489.png differ
diff --git a/images/emoji/unicode/1f48a.png b/images/emoji/unicode/1f48a.png
new file mode 100644
index 0000000..cd84a78
Binary files /dev/null and b/images/emoji/unicode/1f48a.png differ
diff --git a/images/emoji/unicode/1f48b.png b/images/emoji/unicode/1f48b.png
new file mode 100644
index 0000000..4ae2c2b
Binary files /dev/null and b/images/emoji/unicode/1f48b.png differ
diff --git a/images/emoji/unicode/1f48c.png b/images/emoji/unicode/1f48c.png
new file mode 100644
index 0000000..e29981f
Binary files /dev/null and b/images/emoji/unicode/1f48c.png differ
diff --git a/images/emoji/unicode/1f48d.png b/images/emoji/unicode/1f48d.png
new file mode 100644
index 0000000..8a57fd6
Binary files /dev/null and b/images/emoji/unicode/1f48d.png differ
diff --git a/images/emoji/unicode/1f48e.png b/images/emoji/unicode/1f48e.png
new file mode 100644
index 0000000..8a5d8da
Binary files /dev/null and b/images/emoji/unicode/1f48e.png differ
diff --git a/images/emoji/unicode/1f48f.png b/images/emoji/unicode/1f48f.png
new file mode 100644
index 0000000..d027908
Binary files /dev/null and b/images/emoji/unicode/1f48f.png differ
diff --git a/images/emoji/unicode/1f490.png b/images/emoji/unicode/1f490.png
new file mode 100644
index 0000000..ce63783
Binary files /dev/null and b/images/emoji/unicode/1f490.png differ
diff --git a/images/emoji/unicode/1f491.png b/images/emoji/unicode/1f491.png
new file mode 100644
index 0000000..c503f40
Binary files /dev/null and b/images/emoji/unicode/1f491.png differ
diff --git a/images/emoji/unicode/1f492.png b/images/emoji/unicode/1f492.png
new file mode 100644
index 0000000..ead19d5
Binary files /dev/null and b/images/emoji/unicode/1f492.png differ
diff --git a/images/emoji/unicode/1f493.png b/images/emoji/unicode/1f493.png
new file mode 100644
index 0000000..b6628f6
Binary files /dev/null and b/images/emoji/unicode/1f493.png differ
diff --git a/images/emoji/unicode/1f494.png b/images/emoji/unicode/1f494.png
new file mode 100644
index 0000000..a1bc850
Binary files /dev/null and b/images/emoji/unicode/1f494.png differ
diff --git a/images/emoji/unicode/1f495.png b/images/emoji/unicode/1f495.png
new file mode 100644
index 0000000..b189e9a
Binary files /dev/null and b/images/emoji/unicode/1f495.png differ
diff --git a/images/emoji/unicode/1f496.png b/images/emoji/unicode/1f496.png
new file mode 100644
index 0000000..0826bbc
Binary files /dev/null and b/images/emoji/unicode/1f496.png differ
diff --git a/images/emoji/unicode/1f497.png b/images/emoji/unicode/1f497.png
new file mode 100644
index 0000000..a7491cb
Binary files /dev/null and b/images/emoji/unicode/1f497.png differ
diff --git a/images/emoji/unicode/1f498.png b/images/emoji/unicode/1f498.png
new file mode 100644
index 0000000..4987284
Binary files /dev/null and b/images/emoji/unicode/1f498.png differ
diff --git a/images/emoji/unicode/1f499.png b/images/emoji/unicode/1f499.png
new file mode 100644
index 0000000..baa29b3
Binary files /dev/null and b/images/emoji/unicode/1f499.png differ
diff --git a/images/emoji/unicode/1f49a.png b/images/emoji/unicode/1f49a.png
new file mode 100644
index 0000000..7289cb8
Binary files /dev/null and b/images/emoji/unicode/1f49a.png differ
diff --git a/images/emoji/unicode/1f49b.png b/images/emoji/unicode/1f49b.png
new file mode 100644
index 0000000..fa41ce7
Binary files /dev/null and b/images/emoji/unicode/1f49b.png differ
diff --git a/images/emoji/unicode/1f49c.png b/images/emoji/unicode/1f49c.png
new file mode 100644
index 0000000..d5f8750
Binary files /dev/null and b/images/emoji/unicode/1f49c.png differ
diff --git a/images/emoji/unicode/1f49d.png b/images/emoji/unicode/1f49d.png
new file mode 100644
index 0000000..f31c26a
Binary files /dev/null and b/images/emoji/unicode/1f49d.png differ
diff --git a/images/emoji/unicode/1f49e.png b/images/emoji/unicode/1f49e.png
new file mode 100644
index 0000000..ea3317c
Binary files /dev/null and b/images/emoji/unicode/1f49e.png differ
diff --git a/images/emoji/unicode/1f49f.png b/images/emoji/unicode/1f49f.png
new file mode 100644
index 0000000..b40a486
Binary files /dev/null and b/images/emoji/unicode/1f49f.png differ
diff --git a/images/emoji/unicode/1f4a0.png b/images/emoji/unicode/1f4a0.png
new file mode 100644
index 0000000..dfd1098
Binary files /dev/null and b/images/emoji/unicode/1f4a0.png differ
diff --git a/images/emoji/unicode/1f4a1.png b/images/emoji/unicode/1f4a1.png
new file mode 100644
index 0000000..23afca1
Binary files /dev/null and b/images/emoji/unicode/1f4a1.png differ
diff --git a/images/emoji/unicode/1f4a2.png b/images/emoji/unicode/1f4a2.png
new file mode 100644
index 0000000..6fb4dca
Binary files /dev/null and b/images/emoji/unicode/1f4a2.png differ
diff --git a/images/emoji/unicode/1f4a3.png b/images/emoji/unicode/1f4a3.png
new file mode 100644
index 0000000..3289787
Binary files /dev/null and b/images/emoji/unicode/1f4a3.png differ
diff --git a/images/emoji/unicode/1f4a4.png b/images/emoji/unicode/1f4a4.png
new file mode 100644
index 0000000..30be046
Binary files /dev/null and b/images/emoji/unicode/1f4a4.png differ
diff --git a/images/emoji/unicode/1f4a5.png b/images/emoji/unicode/1f4a5.png
new file mode 100644
index 0000000..bddeb8f
Binary files /dev/null and b/images/emoji/unicode/1f4a5.png differ
diff --git a/images/emoji/unicode/1f4a6.png b/images/emoji/unicode/1f4a6.png
new file mode 100644
index 0000000..a83b3e9
Binary files /dev/null and b/images/emoji/unicode/1f4a6.png differ
diff --git a/images/emoji/unicode/1f4a7.png b/images/emoji/unicode/1f4a7.png
new file mode 100644
index 0000000..9eff463
Binary files /dev/null and b/images/emoji/unicode/1f4a7.png differ
diff --git a/images/emoji/unicode/1f4a8.png b/images/emoji/unicode/1f4a8.png
new file mode 100644
index 0000000..dc2c0a8
Binary files /dev/null and b/images/emoji/unicode/1f4a8.png differ
diff --git a/images/emoji/unicode/1f4a9.png b/images/emoji/unicode/1f4a9.png
new file mode 100644
index 0000000..73a4dc8
Binary files /dev/null and b/images/emoji/unicode/1f4a9.png differ
diff --git a/images/emoji/unicode/1f4aa.png b/images/emoji/unicode/1f4aa.png
new file mode 100644
index 0000000..19f92ef
Binary files /dev/null and b/images/emoji/unicode/1f4aa.png differ
diff --git a/images/emoji/unicode/1f4ab.png b/images/emoji/unicode/1f4ab.png
new file mode 100644
index 0000000..55213d2
Binary files /dev/null and b/images/emoji/unicode/1f4ab.png differ
diff --git a/images/emoji/unicode/1f4ac.png b/images/emoji/unicode/1f4ac.png
new file mode 100644
index 0000000..2896c27
Binary files /dev/null and b/images/emoji/unicode/1f4ac.png differ
diff --git a/images/emoji/unicode/1f4ad.png b/images/emoji/unicode/1f4ad.png
new file mode 100644
index 0000000..701bdf0
Binary files /dev/null and b/images/emoji/unicode/1f4ad.png differ
diff --git a/images/emoji/unicode/1f4ae.png b/images/emoji/unicode/1f4ae.png
new file mode 100644
index 0000000..c0929d0
Binary files /dev/null and b/images/emoji/unicode/1f4ae.png differ
diff --git a/images/emoji/unicode/1f4af.png b/images/emoji/unicode/1f4af.png
new file mode 100644
index 0000000..bce9ab1
Binary files /dev/null and b/images/emoji/unicode/1f4af.png differ
diff --git a/images/emoji/unicode/1f4b0.png b/images/emoji/unicode/1f4b0.png
new file mode 100644
index 0000000..5546c04
Binary files /dev/null and b/images/emoji/unicode/1f4b0.png differ
diff --git a/images/emoji/unicode/1f4b1.png b/images/emoji/unicode/1f4b1.png
new file mode 100644
index 0000000..d5ee21f
Binary files /dev/null and b/images/emoji/unicode/1f4b1.png differ
diff --git a/images/emoji/unicode/1f4b2.png b/images/emoji/unicode/1f4b2.png
new file mode 100644
index 0000000..361e26a
Binary files /dev/null and b/images/emoji/unicode/1f4b2.png differ
diff --git a/images/emoji/unicode/1f4b3.png b/images/emoji/unicode/1f4b3.png
new file mode 100644
index 0000000..be1c1dd
Binary files /dev/null and b/images/emoji/unicode/1f4b3.png differ
diff --git a/images/emoji/unicode/1f4b4.png b/images/emoji/unicode/1f4b4.png
new file mode 100644
index 0000000..139bc93
Binary files /dev/null and b/images/emoji/unicode/1f4b4.png differ
diff --git a/images/emoji/unicode/1f4b5.png b/images/emoji/unicode/1f4b5.png
new file mode 100644
index 0000000..63de884
Binary files /dev/null and b/images/emoji/unicode/1f4b5.png differ
diff --git a/images/emoji/unicode/1f4b6.png b/images/emoji/unicode/1f4b6.png
new file mode 100644
index 0000000..1c5904b
Binary files /dev/null and b/images/emoji/unicode/1f4b6.png differ
diff --git a/images/emoji/unicode/1f4b7.png b/images/emoji/unicode/1f4b7.png
new file mode 100644
index 0000000..f8be91d
Binary files /dev/null and b/images/emoji/unicode/1f4b7.png differ
diff --git a/images/emoji/unicode/1f4b8.png b/images/emoji/unicode/1f4b8.png
new file mode 100644
index 0000000..135e398
Binary files /dev/null and b/images/emoji/unicode/1f4b8.png differ
diff --git a/images/emoji/unicode/1f4b9.png b/images/emoji/unicode/1f4b9.png
new file mode 100644
index 0000000..ac2c4bb
Binary files /dev/null and b/images/emoji/unicode/1f4b9.png differ
diff --git a/images/emoji/unicode/1f4ba.png b/images/emoji/unicode/1f4ba.png
new file mode 100644
index 0000000..d1cb864
Binary files /dev/null and b/images/emoji/unicode/1f4ba.png differ
diff --git a/images/emoji/unicode/1f4bb.png b/images/emoji/unicode/1f4bb.png
new file mode 100644
index 0000000..d4d2687
Binary files /dev/null and b/images/emoji/unicode/1f4bb.png differ
diff --git a/images/emoji/unicode/1f4bc.png b/images/emoji/unicode/1f4bc.png
new file mode 100644
index 0000000..46e82b0
Binary files /dev/null and b/images/emoji/unicode/1f4bc.png differ
diff --git a/images/emoji/unicode/1f4bd.png b/images/emoji/unicode/1f4bd.png
new file mode 100644
index 0000000..e19cc5d
Binary files /dev/null and b/images/emoji/unicode/1f4bd.png differ
diff --git a/images/emoji/unicode/1f4be.png b/images/emoji/unicode/1f4be.png
new file mode 100644
index 0000000..4ad5631
Binary files /dev/null and b/images/emoji/unicode/1f4be.png differ
diff --git a/images/emoji/unicode/1f4bf.png b/images/emoji/unicode/1f4bf.png
new file mode 100644
index 0000000..baff835
Binary files /dev/null and b/images/emoji/unicode/1f4bf.png differ
diff --git a/images/emoji/unicode/1f4c0.png b/images/emoji/unicode/1f4c0.png
new file mode 100644
index 0000000..363c83d
Binary files /dev/null and b/images/emoji/unicode/1f4c0.png differ
diff --git a/images/emoji/unicode/1f4c1.png b/images/emoji/unicode/1f4c1.png
new file mode 100644
index 0000000..4d8bebf
Binary files /dev/null and b/images/emoji/unicode/1f4c1.png differ
diff --git a/images/emoji/unicode/1f4c2.png b/images/emoji/unicode/1f4c2.png
new file mode 100644
index 0000000..2bbbbf5
Binary files /dev/null and b/images/emoji/unicode/1f4c2.png differ
diff --git a/images/emoji/unicode/1f4c3.png b/images/emoji/unicode/1f4c3.png
new file mode 100644
index 0000000..bf8f979
Binary files /dev/null and b/images/emoji/unicode/1f4c3.png differ
diff --git a/images/emoji/unicode/1f4c4.png b/images/emoji/unicode/1f4c4.png
new file mode 100644
index 0000000..64cd2e1
Binary files /dev/null and b/images/emoji/unicode/1f4c4.png differ
diff --git a/images/emoji/unicode/1f4c5.png b/images/emoji/unicode/1f4c5.png
new file mode 100644
index 0000000..6ad2efa
Binary files /dev/null and b/images/emoji/unicode/1f4c5.png differ
diff --git a/images/emoji/unicode/1f4c6.png b/images/emoji/unicode/1f4c6.png
new file mode 100644
index 0000000..900b868
Binary files /dev/null and b/images/emoji/unicode/1f4c6.png differ
diff --git a/images/emoji/unicode/1f4c7.png b/images/emoji/unicode/1f4c7.png
new file mode 100644
index 0000000..374e94e
Binary files /dev/null and b/images/emoji/unicode/1f4c7.png differ
diff --git a/images/emoji/unicode/1f4c8.png b/images/emoji/unicode/1f4c8.png
new file mode 100644
index 0000000..de3e9ba
Binary files /dev/null and b/images/emoji/unicode/1f4c8.png differ
diff --git a/images/emoji/unicode/1f4c9.png b/images/emoji/unicode/1f4c9.png
new file mode 100644
index 0000000..65b82f0
Binary files /dev/null and b/images/emoji/unicode/1f4c9.png differ
diff --git a/images/emoji/unicode/1f4ca.png b/images/emoji/unicode/1f4ca.png
new file mode 100644
index 0000000..7871cc6
Binary files /dev/null and b/images/emoji/unicode/1f4ca.png differ
diff --git a/images/emoji/unicode/1f4cb.png b/images/emoji/unicode/1f4cb.png
new file mode 100644
index 0000000..e2c74e6
Binary files /dev/null and b/images/emoji/unicode/1f4cb.png differ
diff --git a/images/emoji/unicode/1f4cc.png b/images/emoji/unicode/1f4cc.png
new file mode 100644
index 0000000..540c4ec
Binary files /dev/null and b/images/emoji/unicode/1f4cc.png differ
diff --git a/images/emoji/unicode/1f4cd.png b/images/emoji/unicode/1f4cd.png
new file mode 100644
index 0000000..e498e92
Binary files /dev/null and b/images/emoji/unicode/1f4cd.png differ
diff --git a/images/emoji/unicode/1f4ce.png b/images/emoji/unicode/1f4ce.png
new file mode 100644
index 0000000..774412d
Binary files /dev/null and b/images/emoji/unicode/1f4ce.png differ
diff --git a/images/emoji/unicode/1f4cf.png b/images/emoji/unicode/1f4cf.png
new file mode 100644
index 0000000..af8cb4b
Binary files /dev/null and b/images/emoji/unicode/1f4cf.png differ
diff --git a/images/emoji/unicode/1f4d0.png b/images/emoji/unicode/1f4d0.png
new file mode 100644
index 0000000..383677c
Binary files /dev/null and b/images/emoji/unicode/1f4d0.png differ
diff --git a/images/emoji/unicode/1f4d1.png b/images/emoji/unicode/1f4d1.png
new file mode 100644
index 0000000..0c4e3bf
Binary files /dev/null and b/images/emoji/unicode/1f4d1.png differ
diff --git a/images/emoji/unicode/1f4d2.png b/images/emoji/unicode/1f4d2.png
new file mode 100644
index 0000000..e4f72ac
Binary files /dev/null and b/images/emoji/unicode/1f4d2.png differ
diff --git a/images/emoji/unicode/1f4d3.png b/images/emoji/unicode/1f4d3.png
new file mode 100644
index 0000000..07ea608
Binary files /dev/null and b/images/emoji/unicode/1f4d3.png differ
diff --git a/images/emoji/unicode/1f4d4.png b/images/emoji/unicode/1f4d4.png
new file mode 100644
index 0000000..4f3b14c
Binary files /dev/null and b/images/emoji/unicode/1f4d4.png differ
diff --git a/images/emoji/unicode/1f4d5.png b/images/emoji/unicode/1f4d5.png
new file mode 100644
index 0000000..484029c
Binary files /dev/null and b/images/emoji/unicode/1f4d5.png differ
diff --git a/images/emoji/unicode/1f4d6.png b/images/emoji/unicode/1f4d6.png
new file mode 100644
index 0000000..8b69841
Binary files /dev/null and b/images/emoji/unicode/1f4d6.png differ
diff --git a/images/emoji/unicode/1f4d7.png b/images/emoji/unicode/1f4d7.png
new file mode 100644
index 0000000..e86651e
Binary files /dev/null and b/images/emoji/unicode/1f4d7.png differ
diff --git a/images/emoji/unicode/1f4d8.png b/images/emoji/unicode/1f4d8.png
new file mode 100644
index 0000000..e2b9e8c
Binary files /dev/null and b/images/emoji/unicode/1f4d8.png differ
diff --git a/images/emoji/unicode/1f4d9.png b/images/emoji/unicode/1f4d9.png
new file mode 100644
index 0000000..49650d5
Binary files /dev/null and b/images/emoji/unicode/1f4d9.png differ
diff --git a/images/emoji/unicode/1f4da.png b/images/emoji/unicode/1f4da.png
new file mode 100644
index 0000000..dca06a1
Binary files /dev/null and b/images/emoji/unicode/1f4da.png differ
diff --git a/images/emoji/unicode/1f4db.png b/images/emoji/unicode/1f4db.png
new file mode 100644
index 0000000..2b712dc
Binary files /dev/null and b/images/emoji/unicode/1f4db.png differ
diff --git a/images/emoji/unicode/1f4dc.png b/images/emoji/unicode/1f4dc.png
new file mode 100644
index 0000000..c5a10e6
Binary files /dev/null and b/images/emoji/unicode/1f4dc.png differ
diff --git a/images/emoji/unicode/1f4dd.png b/images/emoji/unicode/1f4dd.png
new file mode 100644
index 0000000..fc97ddb
Binary files /dev/null and b/images/emoji/unicode/1f4dd.png differ
diff --git a/images/emoji/unicode/1f4de.png b/images/emoji/unicode/1f4de.png
new file mode 100644
index 0000000..36e21e0
Binary files /dev/null and b/images/emoji/unicode/1f4de.png differ
diff --git a/images/emoji/unicode/1f4df.png b/images/emoji/unicode/1f4df.png
new file mode 100644
index 0000000..e3e1fc4
Binary files /dev/null and b/images/emoji/unicode/1f4df.png differ
diff --git a/images/emoji/unicode/1f4e0.png b/images/emoji/unicode/1f4e0.png
new file mode 100644
index 0000000..62be2c9
Binary files /dev/null and b/images/emoji/unicode/1f4e0.png differ
diff --git a/images/emoji/unicode/1f4e1.png b/images/emoji/unicode/1f4e1.png
new file mode 100644
index 0000000..3481cc2
Binary files /dev/null and b/images/emoji/unicode/1f4e1.png differ
diff --git a/images/emoji/unicode/1f4e2.png b/images/emoji/unicode/1f4e2.png
new file mode 100644
index 0000000..752385e
Binary files /dev/null and b/images/emoji/unicode/1f4e2.png differ
diff --git a/images/emoji/unicode/1f4e3.png b/images/emoji/unicode/1f4e3.png
new file mode 100644
index 0000000..5d9319e
Binary files /dev/null and b/images/emoji/unicode/1f4e3.png differ
diff --git a/images/emoji/unicode/1f4e4.png b/images/emoji/unicode/1f4e4.png
new file mode 100644
index 0000000..7ad15e6
Binary files /dev/null and b/images/emoji/unicode/1f4e4.png differ
diff --git a/images/emoji/unicode/1f4e5.png b/images/emoji/unicode/1f4e5.png
new file mode 100644
index 0000000..e2df0f8
Binary files /dev/null and b/images/emoji/unicode/1f4e5.png differ
diff --git a/images/emoji/unicode/1f4e6.png b/images/emoji/unicode/1f4e6.png
new file mode 100644
index 0000000..26602af
Binary files /dev/null and b/images/emoji/unicode/1f4e6.png differ
diff --git a/images/emoji/unicode/1f4e7.png b/images/emoji/unicode/1f4e7.png
new file mode 100644
index 0000000..176a8e1
Binary files /dev/null and b/images/emoji/unicode/1f4e7.png differ
diff --git a/images/emoji/unicode/1f4e8.png b/images/emoji/unicode/1f4e8.png
new file mode 100644
index 0000000..afc8271
Binary files /dev/null and b/images/emoji/unicode/1f4e8.png differ
diff --git a/images/emoji/unicode/1f4e9.png b/images/emoji/unicode/1f4e9.png
new file mode 100644
index 0000000..efaa1fa
Binary files /dev/null and b/images/emoji/unicode/1f4e9.png differ
diff --git a/images/emoji/unicode/1f4ea.png b/images/emoji/unicode/1f4ea.png
new file mode 100644
index 0000000..a5982b6
Binary files /dev/null and b/images/emoji/unicode/1f4ea.png differ
diff --git a/images/emoji/unicode/1f4eb.png b/images/emoji/unicode/1f4eb.png
new file mode 100644
index 0000000..8351e70
Binary files /dev/null and b/images/emoji/unicode/1f4eb.png differ
diff --git a/images/emoji/unicode/1f4ec.png b/images/emoji/unicode/1f4ec.png
new file mode 100644
index 0000000..dae3459
Binary files /dev/null and b/images/emoji/unicode/1f4ec.png differ
diff --git a/images/emoji/unicode/1f4ed.png b/images/emoji/unicode/1f4ed.png
new file mode 100644
index 0000000..59f15c5
Binary files /dev/null and b/images/emoji/unicode/1f4ed.png differ
diff --git a/images/emoji/unicode/1f4ee.png b/images/emoji/unicode/1f4ee.png
new file mode 100644
index 0000000..ce04b70
Binary files /dev/null and b/images/emoji/unicode/1f4ee.png differ
diff --git a/images/emoji/unicode/1f4ef.png b/images/emoji/unicode/1f4ef.png
new file mode 100644
index 0000000..e9b713b
Binary files /dev/null and b/images/emoji/unicode/1f4ef.png differ
diff --git a/images/emoji/unicode/1f4f0.png b/images/emoji/unicode/1f4f0.png
new file mode 100644
index 0000000..d171394
Binary files /dev/null and b/images/emoji/unicode/1f4f0.png differ
diff --git a/images/emoji/unicode/1f4f1.png b/images/emoji/unicode/1f4f1.png
new file mode 100644
index 0000000..df00710
Binary files /dev/null and b/images/emoji/unicode/1f4f1.png differ
diff --git a/images/emoji/unicode/1f4f2.png b/images/emoji/unicode/1f4f2.png
new file mode 100644
index 0000000..837897f
Binary files /dev/null and b/images/emoji/unicode/1f4f2.png differ
diff --git a/images/emoji/unicode/1f4f3.png b/images/emoji/unicode/1f4f3.png
new file mode 100644
index 0000000..a716e96
Binary files /dev/null and b/images/emoji/unicode/1f4f3.png differ
diff --git a/images/emoji/unicode/1f4f4.png b/images/emoji/unicode/1f4f4.png
new file mode 100644
index 0000000..fa16c76
Binary files /dev/null and b/images/emoji/unicode/1f4f4.png differ
diff --git a/images/emoji/unicode/1f4f5.png b/images/emoji/unicode/1f4f5.png
new file mode 100644
index 0000000..41df57c
Binary files /dev/null and b/images/emoji/unicode/1f4f5.png differ
diff --git a/images/emoji/unicode/1f4f6.png b/images/emoji/unicode/1f4f6.png
new file mode 100644
index 0000000..a4bd23e
Binary files /dev/null and b/images/emoji/unicode/1f4f6.png differ
diff --git a/images/emoji/unicode/1f4f7.png b/images/emoji/unicode/1f4f7.png
new file mode 100644
index 0000000..397d03b
Binary files /dev/null and b/images/emoji/unicode/1f4f7.png differ
diff --git a/images/emoji/unicode/1f4f9.png b/images/emoji/unicode/1f4f9.png
new file mode 100644
index 0000000..274cecd
Binary files /dev/null and b/images/emoji/unicode/1f4f9.png differ
diff --git a/images/emoji/unicode/1f4fa.png b/images/emoji/unicode/1f4fa.png
new file mode 100644
index 0000000..803dc3d
Binary files /dev/null and b/images/emoji/unicode/1f4fa.png differ
diff --git a/images/emoji/unicode/1f4fb.png b/images/emoji/unicode/1f4fb.png
new file mode 100644
index 0000000..ea589ef
Binary files /dev/null and b/images/emoji/unicode/1f4fb.png differ
diff --git a/images/emoji/unicode/1f4fc.png b/images/emoji/unicode/1f4fc.png
new file mode 100644
index 0000000..881081c
Binary files /dev/null and b/images/emoji/unicode/1f4fc.png differ
diff --git a/images/emoji/unicode/1f500.png b/images/emoji/unicode/1f500.png
new file mode 100644
index 0000000..25cde18
Binary files /dev/null and b/images/emoji/unicode/1f500.png differ
diff --git a/images/emoji/unicode/1f501.png b/images/emoji/unicode/1f501.png
new file mode 100644
index 0000000..80113b6
Binary files /dev/null and b/images/emoji/unicode/1f501.png differ
diff --git a/images/emoji/unicode/1f502.png b/images/emoji/unicode/1f502.png
new file mode 100644
index 0000000..3c47bcc
Binary files /dev/null and b/images/emoji/unicode/1f502.png differ
diff --git a/images/emoji/unicode/1f503.png b/images/emoji/unicode/1f503.png
new file mode 100644
index 0000000..5f84d7e
Binary files /dev/null and b/images/emoji/unicode/1f503.png differ
diff --git a/images/emoji/unicode/1f504.png b/images/emoji/unicode/1f504.png
new file mode 100644
index 0000000..1933ae1
Binary files /dev/null and b/images/emoji/unicode/1f504.png differ
diff --git a/images/emoji/unicode/1f505.png b/images/emoji/unicode/1f505.png
new file mode 100644
index 0000000..ea15bde
Binary files /dev/null and b/images/emoji/unicode/1f505.png differ
diff --git a/images/emoji/unicode/1f506.png b/images/emoji/unicode/1f506.png
new file mode 100644
index 0000000..ba9de7d
Binary files /dev/null and b/images/emoji/unicode/1f506.png differ
diff --git a/images/emoji/unicode/1f507.png b/images/emoji/unicode/1f507.png
new file mode 100644
index 0000000..4cf67c3
Binary files /dev/null and b/images/emoji/unicode/1f507.png differ
diff --git a/images/emoji/unicode/1f508.png b/images/emoji/unicode/1f508.png
new file mode 100644
index 0000000..c884bd4
Binary files /dev/null and b/images/emoji/unicode/1f508.png differ
diff --git a/images/emoji/unicode/1f509.png b/images/emoji/unicode/1f509.png
new file mode 100644
index 0000000..6aa4dbf
Binary files /dev/null and b/images/emoji/unicode/1f509.png differ
diff --git a/images/emoji/unicode/1f50a.png b/images/emoji/unicode/1f50a.png
new file mode 100644
index 0000000..f63e814
Binary files /dev/null and b/images/emoji/unicode/1f50a.png differ
diff --git a/images/emoji/unicode/1f50b.png b/images/emoji/unicode/1f50b.png
new file mode 100644
index 0000000..aa7eedc
Binary files /dev/null and b/images/emoji/unicode/1f50b.png differ
diff --git a/images/emoji/unicode/1f50c.png b/images/emoji/unicode/1f50c.png
new file mode 100644
index 0000000..7a3d6ce
Binary files /dev/null and b/images/emoji/unicode/1f50c.png differ
diff --git a/images/emoji/unicode/1f50d.png b/images/emoji/unicode/1f50d.png
new file mode 100644
index 0000000..aa5b1d7
Binary files /dev/null and b/images/emoji/unicode/1f50d.png differ
diff --git a/images/emoji/unicode/1f50e.png b/images/emoji/unicode/1f50e.png
new file mode 100644
index 0000000..6e6cf11
Binary files /dev/null and b/images/emoji/unicode/1f50e.png differ
diff --git a/images/emoji/unicode/1f50f.png b/images/emoji/unicode/1f50f.png
new file mode 100644
index 0000000..375e67e
Binary files /dev/null and b/images/emoji/unicode/1f50f.png differ
diff --git a/images/emoji/unicode/1f510.png b/images/emoji/unicode/1f510.png
new file mode 100644
index 0000000..e6fdf6c
Binary files /dev/null and b/images/emoji/unicode/1f510.png differ
diff --git a/images/emoji/unicode/1f511.png b/images/emoji/unicode/1f511.png
new file mode 100644
index 0000000..3467321
Binary files /dev/null and b/images/emoji/unicode/1f511.png differ
diff --git a/images/emoji/unicode/1f512.png b/images/emoji/unicode/1f512.png
new file mode 100644
index 0000000..4892b02
Binary files /dev/null and b/images/emoji/unicode/1f512.png differ
diff --git a/images/emoji/unicode/1f513.png b/images/emoji/unicode/1f513.png
new file mode 100644
index 0000000..22b429c
Binary files /dev/null and b/images/emoji/unicode/1f513.png differ
diff --git a/images/emoji/unicode/1f514.png b/images/emoji/unicode/1f514.png
new file mode 100644
index 0000000..69acceb
Binary files /dev/null and b/images/emoji/unicode/1f514.png differ
diff --git a/images/emoji/unicode/1f515.png b/images/emoji/unicode/1f515.png
new file mode 100644
index 0000000..613b81c
Binary files /dev/null and b/images/emoji/unicode/1f515.png differ
diff --git a/images/emoji/unicode/1f516.png b/images/emoji/unicode/1f516.png
new file mode 100644
index 0000000..dbee45c
Binary files /dev/null and b/images/emoji/unicode/1f516.png differ
diff --git a/images/emoji/unicode/1f517.png b/images/emoji/unicode/1f517.png
new file mode 100644
index 0000000..ffb8f62
Binary files /dev/null and b/images/emoji/unicode/1f517.png differ
diff --git a/images/emoji/unicode/1f518.png b/images/emoji/unicode/1f518.png
new file mode 100644
index 0000000..63755ee
Binary files /dev/null and b/images/emoji/unicode/1f518.png differ
diff --git a/images/emoji/unicode/1f519.png b/images/emoji/unicode/1f519.png
new file mode 100644
index 0000000..0cde628
Binary files /dev/null and b/images/emoji/unicode/1f519.png differ
diff --git a/images/emoji/unicode/1f51a.png b/images/emoji/unicode/1f51a.png
new file mode 100644
index 0000000..edb0bda
Binary files /dev/null and b/images/emoji/unicode/1f51a.png differ
diff --git a/images/emoji/unicode/1f51b.png b/images/emoji/unicode/1f51b.png
new file mode 100644
index 0000000..3595387
Binary files /dev/null and b/images/emoji/unicode/1f51b.png differ
diff --git a/images/emoji/unicode/1f51c.png b/images/emoji/unicode/1f51c.png
new file mode 100644
index 0000000..9386615
Binary files /dev/null and b/images/emoji/unicode/1f51c.png differ
diff --git a/images/emoji/unicode/1f51d.png b/images/emoji/unicode/1f51d.png
new file mode 100644
index 0000000..9d9557d
Binary files /dev/null and b/images/emoji/unicode/1f51d.png differ
diff --git a/images/emoji/unicode/1f51e.png b/images/emoji/unicode/1f51e.png
new file mode 100644
index 0000000..a789b3c
Binary files /dev/null and b/images/emoji/unicode/1f51e.png differ
diff --git a/images/emoji/unicode/1f51f.png b/images/emoji/unicode/1f51f.png
new file mode 100644
index 0000000..71dac1c
Binary files /dev/null and b/images/emoji/unicode/1f51f.png differ
diff --git a/images/emoji/unicode/1f520.png b/images/emoji/unicode/1f520.png
new file mode 100644
index 0000000..ffc0cba
Binary files /dev/null and b/images/emoji/unicode/1f520.png differ
diff --git a/images/emoji/unicode/1f521.png b/images/emoji/unicode/1f521.png
new file mode 100644
index 0000000..5218470
Binary files /dev/null and b/images/emoji/unicode/1f521.png differ
diff --git a/images/emoji/unicode/1f522.png b/images/emoji/unicode/1f522.png
new file mode 100644
index 0000000..c47c2e1
Binary files /dev/null and b/images/emoji/unicode/1f522.png differ
diff --git a/images/emoji/unicode/1f523.png b/images/emoji/unicode/1f523.png
new file mode 100644
index 0000000..16bc1da
Binary files /dev/null and b/images/emoji/unicode/1f523.png differ
diff --git a/images/emoji/unicode/1f524.png b/images/emoji/unicode/1f524.png
new file mode 100644
index 0000000..505d40a
Binary files /dev/null and b/images/emoji/unicode/1f524.png differ
diff --git a/images/emoji/unicode/1f525.png b/images/emoji/unicode/1f525.png
new file mode 100644
index 0000000..f2a3149
Binary files /dev/null and b/images/emoji/unicode/1f525.png differ
diff --git a/images/emoji/unicode/1f526.png b/images/emoji/unicode/1f526.png
new file mode 100644
index 0000000..215940a
Binary files /dev/null and b/images/emoji/unicode/1f526.png differ
diff --git a/images/emoji/unicode/1f527.png b/images/emoji/unicode/1f527.png
new file mode 100644
index 0000000..a87072a
Binary files /dev/null and b/images/emoji/unicode/1f527.png differ
diff --git a/images/emoji/unicode/1f528.png b/images/emoji/unicode/1f528.png
new file mode 100644
index 0000000..88e17f0
Binary files /dev/null and b/images/emoji/unicode/1f528.png differ
diff --git a/images/emoji/unicode/1f529.png b/images/emoji/unicode/1f529.png
new file mode 100644
index 0000000..bddfa72
Binary files /dev/null and b/images/emoji/unicode/1f529.png differ
diff --git a/images/emoji/unicode/1f52a.png b/images/emoji/unicode/1f52a.png
new file mode 100644
index 0000000..18eade0
Binary files /dev/null and b/images/emoji/unicode/1f52a.png differ
diff --git a/images/emoji/unicode/1f52b.png b/images/emoji/unicode/1f52b.png
new file mode 100644
index 0000000..c49dc52
Binary files /dev/null and b/images/emoji/unicode/1f52b.png differ
diff --git a/images/emoji/unicode/1f52c.png b/images/emoji/unicode/1f52c.png
new file mode 100644
index 0000000..f11d54c
Binary files /dev/null and b/images/emoji/unicode/1f52c.png differ
diff --git a/images/emoji/unicode/1f52d.png b/images/emoji/unicode/1f52d.png
new file mode 100644
index 0000000..51fd8a0
Binary files /dev/null and b/images/emoji/unicode/1f52d.png differ
diff --git a/images/emoji/unicode/1f52e.png b/images/emoji/unicode/1f52e.png
new file mode 100644
index 0000000..6d2c6c4
Binary files /dev/null and b/images/emoji/unicode/1f52e.png differ
diff --git a/images/emoji/unicode/1f52f.png b/images/emoji/unicode/1f52f.png
new file mode 100644
index 0000000..010f8f5
Binary files /dev/null and b/images/emoji/unicode/1f52f.png differ
diff --git a/images/emoji/unicode/1f530.png b/images/emoji/unicode/1f530.png
new file mode 100644
index 0000000..1f022d1
Binary files /dev/null and b/images/emoji/unicode/1f530.png differ
diff --git a/images/emoji/unicode/1f531.png b/images/emoji/unicode/1f531.png
new file mode 100644
index 0000000..d79a7b4
Binary files /dev/null and b/images/emoji/unicode/1f531.png differ
diff --git a/images/emoji/unicode/1f532.png b/images/emoji/unicode/1f532.png
new file mode 100644
index 0000000..7332e39
Binary files /dev/null and b/images/emoji/unicode/1f532.png differ
diff --git a/images/emoji/unicode/1f533.png b/images/emoji/unicode/1f533.png
new file mode 100644
index 0000000..63c7a3e
Binary files /dev/null and b/images/emoji/unicode/1f533.png differ
diff --git a/images/emoji/unicode/1f534.png b/images/emoji/unicode/1f534.png
new file mode 100644
index 0000000..b391289
Binary files /dev/null and b/images/emoji/unicode/1f534.png differ
diff --git a/images/emoji/unicode/1f535.png b/images/emoji/unicode/1f535.png
new file mode 100644
index 0000000..a5b4ad4
Binary files /dev/null and b/images/emoji/unicode/1f535.png differ
diff --git a/images/emoji/unicode/1f536.png b/images/emoji/unicode/1f536.png
new file mode 100644
index 0000000..46d52e5
Binary files /dev/null and b/images/emoji/unicode/1f536.png differ
diff --git a/images/emoji/unicode/1f537.png b/images/emoji/unicode/1f537.png
new file mode 100644
index 0000000..f4598ec
Binary files /dev/null and b/images/emoji/unicode/1f537.png differ
diff --git a/images/emoji/unicode/1f538.png b/images/emoji/unicode/1f538.png
new file mode 100644
index 0000000..04941d3
Binary files /dev/null and b/images/emoji/unicode/1f538.png differ
diff --git a/images/emoji/unicode/1f539.png b/images/emoji/unicode/1f539.png
new file mode 100644
index 0000000..5a7b5d5
Binary files /dev/null and b/images/emoji/unicode/1f539.png differ
diff --git a/images/emoji/unicode/1f53a.png b/images/emoji/unicode/1f53a.png
new file mode 100644
index 0000000..8c4428d
Binary files /dev/null and b/images/emoji/unicode/1f53a.png differ
diff --git a/images/emoji/unicode/1f53b.png b/images/emoji/unicode/1f53b.png
new file mode 100644
index 0000000..94832f0
Binary files /dev/null and b/images/emoji/unicode/1f53b.png differ
diff --git a/images/emoji/unicode/1f53c.png b/images/emoji/unicode/1f53c.png
new file mode 100644
index 0000000..1217331
Binary files /dev/null and b/images/emoji/unicode/1f53c.png differ
diff --git a/images/emoji/unicode/1f53d.png b/images/emoji/unicode/1f53d.png
new file mode 100644
index 0000000..f7f2d51
Binary files /dev/null and b/images/emoji/unicode/1f53d.png differ
diff --git a/images/emoji/unicode/1f550.png b/images/emoji/unicode/1f550.png
new file mode 100644
index 0000000..ca34e89
Binary files /dev/null and b/images/emoji/unicode/1f550.png differ
diff --git a/images/emoji/unicode/1f551.png b/images/emoji/unicode/1f551.png
new file mode 100644
index 0000000..1a12524
Binary files /dev/null and b/images/emoji/unicode/1f551.png differ
diff --git a/images/emoji/unicode/1f552.png b/images/emoji/unicode/1f552.png
new file mode 100644
index 0000000..cd99bb1
Binary files /dev/null and b/images/emoji/unicode/1f552.png differ
diff --git a/images/emoji/unicode/1f553.png b/images/emoji/unicode/1f553.png
new file mode 100644
index 0000000..7274e8b
Binary files /dev/null and b/images/emoji/unicode/1f553.png differ
diff --git a/images/emoji/unicode/1f554.png b/images/emoji/unicode/1f554.png
new file mode 100644
index 0000000..3ed5a81
Binary files /dev/null and b/images/emoji/unicode/1f554.png differ
diff --git a/images/emoji/unicode/1f555.png b/images/emoji/unicode/1f555.png
new file mode 100644
index 0000000..ac38cb9
Binary files /dev/null and b/images/emoji/unicode/1f555.png differ
diff --git a/images/emoji/unicode/1f556.png b/images/emoji/unicode/1f556.png
new file mode 100644
index 0000000..6a138df
Binary files /dev/null and b/images/emoji/unicode/1f556.png differ
diff --git a/images/emoji/unicode/1f557.png b/images/emoji/unicode/1f557.png
new file mode 100644
index 0000000..6690cd7
Binary files /dev/null and b/images/emoji/unicode/1f557.png differ
diff --git a/images/emoji/unicode/1f558.png b/images/emoji/unicode/1f558.png
new file mode 100644
index 0000000..c4ad746
Binary files /dev/null and b/images/emoji/unicode/1f558.png differ
diff --git a/images/emoji/unicode/1f559.png b/images/emoji/unicode/1f559.png
new file mode 100644
index 0000000..f710bef
Binary files /dev/null and b/images/emoji/unicode/1f559.png differ
diff --git a/images/emoji/unicode/1f55a.png b/images/emoji/unicode/1f55a.png
new file mode 100644
index 0000000..fbc165b
Binary files /dev/null and b/images/emoji/unicode/1f55a.png differ
diff --git a/images/emoji/unicode/1f55b.png b/images/emoji/unicode/1f55b.png
new file mode 100644
index 0000000..c1ca82f
Binary files /dev/null and b/images/emoji/unicode/1f55b.png differ
diff --git a/images/emoji/unicode/1f55c.png b/images/emoji/unicode/1f55c.png
new file mode 100644
index 0000000..df93920
Binary files /dev/null and b/images/emoji/unicode/1f55c.png differ
diff --git a/images/emoji/unicode/1f55d.png b/images/emoji/unicode/1f55d.png
new file mode 100644
index 0000000..f12c691
Binary files /dev/null and b/images/emoji/unicode/1f55d.png differ
diff --git a/images/emoji/unicode/1f55e.png b/images/emoji/unicode/1f55e.png
new file mode 100644
index 0000000..1dc9628
Binary files /dev/null and b/images/emoji/unicode/1f55e.png differ
diff --git a/images/emoji/unicode/1f55f.png b/images/emoji/unicode/1f55f.png
new file mode 100644
index 0000000..7726aae
Binary files /dev/null and b/images/emoji/unicode/1f55f.png differ
diff --git a/images/emoji/unicode/1f560.png b/images/emoji/unicode/1f560.png
new file mode 100644
index 0000000..e08d4ad
Binary files /dev/null and b/images/emoji/unicode/1f560.png differ
diff --git a/images/emoji/unicode/1f561.png b/images/emoji/unicode/1f561.png
new file mode 100644
index 0000000..46f0681
Binary files /dev/null and b/images/emoji/unicode/1f561.png differ
diff --git a/images/emoji/unicode/1f562.png b/images/emoji/unicode/1f562.png
new file mode 100644
index 0000000..18aab22
Binary files /dev/null and b/images/emoji/unicode/1f562.png differ
diff --git a/images/emoji/unicode/1f563.png b/images/emoji/unicode/1f563.png
new file mode 100644
index 0000000..ec3e382
Binary files /dev/null and b/images/emoji/unicode/1f563.png differ
diff --git a/images/emoji/unicode/1f564.png b/images/emoji/unicode/1f564.png
new file mode 100644
index 0000000..fd35221
Binary files /dev/null and b/images/emoji/unicode/1f564.png differ
diff --git a/images/emoji/unicode/1f565.png b/images/emoji/unicode/1f565.png
new file mode 100644
index 0000000..84a3bc8
Binary files /dev/null and b/images/emoji/unicode/1f565.png differ
diff --git a/images/emoji/unicode/1f566.png b/images/emoji/unicode/1f566.png
new file mode 100644
index 0000000..415999e
Binary files /dev/null and b/images/emoji/unicode/1f566.png differ
diff --git a/images/emoji/unicode/1f567.png b/images/emoji/unicode/1f567.png
new file mode 100644
index 0000000..a652715
Binary files /dev/null and b/images/emoji/unicode/1f567.png differ
diff --git a/images/emoji/unicode/1f5fb.png b/images/emoji/unicode/1f5fb.png
new file mode 100644
index 0000000..4c313e5
Binary files /dev/null and b/images/emoji/unicode/1f5fb.png differ
diff --git a/images/emoji/unicode/1f5fc.png b/images/emoji/unicode/1f5fc.png
new file mode 100644
index 0000000..e1cbd7a
Binary files /dev/null and b/images/emoji/unicode/1f5fc.png differ
diff --git a/images/emoji/unicode/1f5fd.png b/images/emoji/unicode/1f5fd.png
new file mode 100644
index 0000000..9ad9028
Binary files /dev/null and b/images/emoji/unicode/1f5fd.png differ
diff --git a/images/emoji/unicode/1f5fe.png b/images/emoji/unicode/1f5fe.png
new file mode 100644
index 0000000..4593280
Binary files /dev/null and b/images/emoji/unicode/1f5fe.png differ
diff --git a/images/emoji/unicode/1f5ff.png b/images/emoji/unicode/1f5ff.png
new file mode 100644
index 0000000..61a1a9c
Binary files /dev/null and b/images/emoji/unicode/1f5ff.png differ
diff --git a/images/emoji/unicode/1f600.png b/images/emoji/unicode/1f600.png
new file mode 100644
index 0000000..0ef00d7
Binary files /dev/null and b/images/emoji/unicode/1f600.png differ
diff --git a/images/emoji/unicode/1f601.png b/images/emoji/unicode/1f601.png
new file mode 100644
index 0000000..591cfce
Binary files /dev/null and b/images/emoji/unicode/1f601.png differ
diff --git a/images/emoji/unicode/1f602.png b/images/emoji/unicode/1f602.png
new file mode 100644
index 0000000..47df693
Binary files /dev/null and b/images/emoji/unicode/1f602.png differ
diff --git a/images/emoji/unicode/1f603.png b/images/emoji/unicode/1f603.png
new file mode 100644
index 0000000..77b581d
Binary files /dev/null and b/images/emoji/unicode/1f603.png differ
diff --git a/images/emoji/unicode/1f604.png b/images/emoji/unicode/1f604.png
new file mode 100644
index 0000000..81a8396
Binary files /dev/null and b/images/emoji/unicode/1f604.png differ
diff --git a/images/emoji/unicode/1f605.png b/images/emoji/unicode/1f605.png
new file mode 100644
index 0000000..3903f71
Binary files /dev/null and b/images/emoji/unicode/1f605.png differ
diff --git a/images/emoji/unicode/1f606.png b/images/emoji/unicode/1f606.png
new file mode 100644
index 0000000..11c91eb
Binary files /dev/null and b/images/emoji/unicode/1f606.png differ
diff --git a/images/emoji/unicode/1f607.png b/images/emoji/unicode/1f607.png
new file mode 100644
index 0000000..503b614
Binary files /dev/null and b/images/emoji/unicode/1f607.png differ
diff --git a/images/emoji/unicode/1f608.png b/images/emoji/unicode/1f608.png
new file mode 100644
index 0000000..d904049
Binary files /dev/null and b/images/emoji/unicode/1f608.png differ
diff --git a/images/emoji/unicode/1f609.png b/images/emoji/unicode/1f609.png
new file mode 100644
index 0000000..756766d
Binary files /dev/null and b/images/emoji/unicode/1f609.png differ
diff --git a/images/emoji/unicode/1f60a.png b/images/emoji/unicode/1f60a.png
new file mode 100644
index 0000000..1e9021c
Binary files /dev/null and b/images/emoji/unicode/1f60a.png differ
diff --git a/images/emoji/unicode/1f60b.png b/images/emoji/unicode/1f60b.png
new file mode 100644
index 0000000..fc39637
Binary files /dev/null and b/images/emoji/unicode/1f60b.png differ
diff --git a/images/emoji/unicode/1f60c.png b/images/emoji/unicode/1f60c.png
new file mode 100644
index 0000000..820cf31
Binary files /dev/null and b/images/emoji/unicode/1f60c.png differ
diff --git a/images/emoji/unicode/1f60d.png b/images/emoji/unicode/1f60d.png
new file mode 100644
index 0000000..0e57942
Binary files /dev/null and b/images/emoji/unicode/1f60d.png differ
diff --git a/images/emoji/unicode/1f60e.png b/images/emoji/unicode/1f60e.png
new file mode 100644
index 0000000..1c468a1
Binary files /dev/null and b/images/emoji/unicode/1f60e.png differ
diff --git a/images/emoji/unicode/1f60f.png b/images/emoji/unicode/1f60f.png
new file mode 100644
index 0000000..bc6e508
Binary files /dev/null and b/images/emoji/unicode/1f60f.png differ
diff --git a/images/emoji/unicode/1f610.png b/images/emoji/unicode/1f610.png
new file mode 100644
index 0000000..682a1ba
Binary files /dev/null and b/images/emoji/unicode/1f610.png differ
diff --git a/images/emoji/unicode/1f611.png b/images/emoji/unicode/1f611.png
new file mode 100644
index 0000000..1798f24
Binary files /dev/null and b/images/emoji/unicode/1f611.png differ
diff --git a/images/emoji/unicode/1f612.png b/images/emoji/unicode/1f612.png
new file mode 100644
index 0000000..3722e6f
Binary files /dev/null and b/images/emoji/unicode/1f612.png differ
diff --git a/images/emoji/unicode/1f613.png b/images/emoji/unicode/1f613.png
new file mode 100644
index 0000000..e894b76
Binary files /dev/null and b/images/emoji/unicode/1f613.png differ
diff --git a/images/emoji/unicode/1f614.png b/images/emoji/unicode/1f614.png
new file mode 100644
index 0000000..2f3bad9
Binary files /dev/null and b/images/emoji/unicode/1f614.png differ
diff --git a/images/emoji/unicode/1f615.png b/images/emoji/unicode/1f615.png
new file mode 100644
index 0000000..18ff760
Binary files /dev/null and b/images/emoji/unicode/1f615.png differ
diff --git a/images/emoji/unicode/1f616.png b/images/emoji/unicode/1f616.png
new file mode 100644
index 0000000..a5877a0
Binary files /dev/null and b/images/emoji/unicode/1f616.png differ
diff --git a/images/emoji/unicode/1f617.png b/images/emoji/unicode/1f617.png
new file mode 100644
index 0000000..eb049c8
Binary files /dev/null and b/images/emoji/unicode/1f617.png differ
diff --git a/images/emoji/unicode/1f618.png b/images/emoji/unicode/1f618.png
new file mode 100644
index 0000000..af9a80b
Binary files /dev/null and b/images/emoji/unicode/1f618.png differ
diff --git a/images/emoji/unicode/1f619.png b/images/emoji/unicode/1f619.png
new file mode 100644
index 0000000..d85706e
Binary files /dev/null and b/images/emoji/unicode/1f619.png differ
diff --git a/images/emoji/unicode/1f61a.png b/images/emoji/unicode/1f61a.png
new file mode 100644
index 0000000..449de19
Binary files /dev/null and b/images/emoji/unicode/1f61a.png differ
diff --git a/images/emoji/unicode/1f61b.png b/images/emoji/unicode/1f61b.png
new file mode 100644
index 0000000..53c4143
Binary files /dev/null and b/images/emoji/unicode/1f61b.png differ
diff --git a/images/emoji/unicode/1f61c.png b/images/emoji/unicode/1f61c.png
new file mode 100644
index 0000000..6ae9d49
Binary files /dev/null and b/images/emoji/unicode/1f61c.png differ
diff --git a/images/emoji/unicode/1f61d.png b/images/emoji/unicode/1f61d.png
new file mode 100644
index 0000000..333716e
Binary files /dev/null and b/images/emoji/unicode/1f61d.png differ
diff --git a/images/emoji/unicode/1f61e.png b/images/emoji/unicode/1f61e.png
new file mode 100644
index 0000000..8255200
Binary files /dev/null and b/images/emoji/unicode/1f61e.png differ
diff --git a/images/emoji/unicode/1f61f.png b/images/emoji/unicode/1f61f.png
new file mode 100644
index 0000000..afd9283
Binary files /dev/null and b/images/emoji/unicode/1f61f.png differ
diff --git a/images/emoji/unicode/1f620.png b/images/emoji/unicode/1f620.png
new file mode 100644
index 0000000..34174f5
Binary files /dev/null and b/images/emoji/unicode/1f620.png differ
diff --git a/images/emoji/unicode/1f621.png b/images/emoji/unicode/1f621.png
new file mode 100644
index 0000000..c65ddff
Binary files /dev/null and b/images/emoji/unicode/1f621.png differ
diff --git a/images/emoji/unicode/1f622.png b/images/emoji/unicode/1f622.png
new file mode 100644
index 0000000..6d0d9af
Binary files /dev/null and b/images/emoji/unicode/1f622.png differ
diff --git a/images/emoji/unicode/1f623.png b/images/emoji/unicode/1f623.png
new file mode 100644
index 0000000..c7e433e
Binary files /dev/null and b/images/emoji/unicode/1f623.png differ
diff --git a/images/emoji/unicode/1f624.png b/images/emoji/unicode/1f624.png
new file mode 100644
index 0000000..92f93bd
Binary files /dev/null and b/images/emoji/unicode/1f624.png differ
diff --git a/images/emoji/unicode/1f625.png b/images/emoji/unicode/1f625.png
new file mode 100644
index 0000000..fa5f9e7
Binary files /dev/null and b/images/emoji/unicode/1f625.png differ
diff --git a/images/emoji/unicode/1f626.png b/images/emoji/unicode/1f626.png
new file mode 100644
index 0000000..7f8b6c7
Binary files /dev/null and b/images/emoji/unicode/1f626.png differ
diff --git a/images/emoji/unicode/1f627.png b/images/emoji/unicode/1f627.png
new file mode 100644
index 0000000..c2edad7
Binary files /dev/null and b/images/emoji/unicode/1f627.png differ
diff --git a/images/emoji/unicode/1f628.png b/images/emoji/unicode/1f628.png
new file mode 100644
index 0000000..513fce4
Binary files /dev/null and b/images/emoji/unicode/1f628.png differ
diff --git a/images/emoji/unicode/1f629.png b/images/emoji/unicode/1f629.png
new file mode 100644
index 0000000..0c54754
Binary files /dev/null and b/images/emoji/unicode/1f629.png differ
diff --git a/images/emoji/unicode/1f62a.png b/images/emoji/unicode/1f62a.png
new file mode 100644
index 0000000..df4f55e
Binary files /dev/null and b/images/emoji/unicode/1f62a.png differ
diff --git a/images/emoji/unicode/1f62b.png b/images/emoji/unicode/1f62b.png
new file mode 100644
index 0000000..3a8eefe
Binary files /dev/null and b/images/emoji/unicode/1f62b.png differ
diff --git a/images/emoji/unicode/1f62c.png b/images/emoji/unicode/1f62c.png
new file mode 100644
index 0000000..f78e940
Binary files /dev/null and b/images/emoji/unicode/1f62c.png differ
diff --git a/images/emoji/unicode/1f62d.png b/images/emoji/unicode/1f62d.png
new file mode 100644
index 0000000..7d43318
Binary files /dev/null and b/images/emoji/unicode/1f62d.png differ
diff --git a/images/emoji/unicode/1f62e.png b/images/emoji/unicode/1f62e.png
new file mode 100644
index 0000000..e528358
Binary files /dev/null and b/images/emoji/unicode/1f62e.png differ
diff --git a/images/emoji/unicode/1f62f.png b/images/emoji/unicode/1f62f.png
new file mode 100644
index 0000000..afa3f66
Binary files /dev/null and b/images/emoji/unicode/1f62f.png differ
diff --git a/images/emoji/unicode/1f630.png b/images/emoji/unicode/1f630.png
new file mode 100644
index 0000000..b9e39bc
Binary files /dev/null and b/images/emoji/unicode/1f630.png differ
diff --git a/images/emoji/unicode/1f631.png b/images/emoji/unicode/1f631.png
new file mode 100644
index 0000000..76bfc6b
Binary files /dev/null and b/images/emoji/unicode/1f631.png differ
diff --git a/images/emoji/unicode/1f632.png b/images/emoji/unicode/1f632.png
new file mode 100644
index 0000000..858a834
Binary files /dev/null and b/images/emoji/unicode/1f632.png differ
diff --git a/images/emoji/unicode/1f633.png b/images/emoji/unicode/1f633.png
new file mode 100644
index 0000000..9b49410
Binary files /dev/null and b/images/emoji/unicode/1f633.png differ
diff --git a/images/emoji/unicode/1f634.png b/images/emoji/unicode/1f634.png
new file mode 100644
index 0000000..a2f3bf7
Binary files /dev/null and b/images/emoji/unicode/1f634.png differ
diff --git a/images/emoji/unicode/1f635.png b/images/emoji/unicode/1f635.png
new file mode 100644
index 0000000..8001d6f
Binary files /dev/null and b/images/emoji/unicode/1f635.png differ
diff --git a/images/emoji/unicode/1f636.png b/images/emoji/unicode/1f636.png
new file mode 100644
index 0000000..d9ec7ca
Binary files /dev/null and b/images/emoji/unicode/1f636.png differ
diff --git a/images/emoji/unicode/1f637.png b/images/emoji/unicode/1f637.png
new file mode 100644
index 0000000..05887e9
Binary files /dev/null and b/images/emoji/unicode/1f637.png differ
diff --git a/images/emoji/unicode/1f638.png b/images/emoji/unicode/1f638.png
new file mode 100644
index 0000000..ad333ba
Binary files /dev/null and b/images/emoji/unicode/1f638.png differ
diff --git a/images/emoji/unicode/1f639.png b/images/emoji/unicode/1f639.png
new file mode 100644
index 0000000..6c60cb0
Binary files /dev/null and b/images/emoji/unicode/1f639.png differ
diff --git a/images/emoji/unicode/1f63a.png b/images/emoji/unicode/1f63a.png
new file mode 100644
index 0000000..dbf1b02
Binary files /dev/null and b/images/emoji/unicode/1f63a.png differ
diff --git a/images/emoji/unicode/1f63b.png b/images/emoji/unicode/1f63b.png
new file mode 100644
index 0000000..eeba240
Binary files /dev/null and b/images/emoji/unicode/1f63b.png differ
diff --git a/images/emoji/unicode/1f63c.png b/images/emoji/unicode/1f63c.png
new file mode 100644
index 0000000..351565e
Binary files /dev/null and b/images/emoji/unicode/1f63c.png differ
diff --git a/images/emoji/unicode/1f63d.png b/images/emoji/unicode/1f63d.png
new file mode 100644
index 0000000..adc62fb
Binary files /dev/null and b/images/emoji/unicode/1f63d.png differ
diff --git a/images/emoji/unicode/1f63e.png b/images/emoji/unicode/1f63e.png
new file mode 100644
index 0000000..4325fd4
Binary files /dev/null and b/images/emoji/unicode/1f63e.png differ
diff --git a/images/emoji/unicode/1f63f.png b/images/emoji/unicode/1f63f.png
new file mode 100644
index 0000000..42d4c27
Binary files /dev/null and b/images/emoji/unicode/1f63f.png differ
diff --git a/images/emoji/unicode/1f640.png b/images/emoji/unicode/1f640.png
new file mode 100644
index 0000000..d94cd34
Binary files /dev/null and b/images/emoji/unicode/1f640.png differ
diff --git a/images/emoji/unicode/1f645.png b/images/emoji/unicode/1f645.png
new file mode 100644
index 0000000..d459a35
Binary files /dev/null and b/images/emoji/unicode/1f645.png differ
diff --git a/images/emoji/unicode/1f646.png b/images/emoji/unicode/1f646.png
new file mode 100644
index 0000000..e8b9819
Binary files /dev/null and b/images/emoji/unicode/1f646.png differ
diff --git a/images/emoji/unicode/1f647.png b/images/emoji/unicode/1f647.png
new file mode 100644
index 0000000..024cb61
Binary files /dev/null and b/images/emoji/unicode/1f647.png differ
diff --git a/images/emoji/unicode/1f648.png b/images/emoji/unicode/1f648.png
new file mode 100644
index 0000000..0890a62
Binary files /dev/null and b/images/emoji/unicode/1f648.png differ
diff --git a/images/emoji/unicode/1f649.png b/images/emoji/unicode/1f649.png
new file mode 100644
index 0000000..f97a1f9
Binary files /dev/null and b/images/emoji/unicode/1f649.png differ
diff --git a/images/emoji/unicode/1f64a.png b/images/emoji/unicode/1f64a.png
new file mode 100644
index 0000000..87944c4
Binary files /dev/null and b/images/emoji/unicode/1f64a.png differ
diff --git a/images/emoji/unicode/1f64b.png b/images/emoji/unicode/1f64b.png
new file mode 100644
index 0000000..e1741a4
Binary files /dev/null and b/images/emoji/unicode/1f64b.png differ
diff --git a/images/emoji/unicode/1f64c.png b/images/emoji/unicode/1f64c.png
new file mode 100644
index 0000000..e03142b
Binary files /dev/null and b/images/emoji/unicode/1f64c.png differ
diff --git a/images/emoji/unicode/1f64d.png b/images/emoji/unicode/1f64d.png
new file mode 100644
index 0000000..6f34d5e
Binary files /dev/null and b/images/emoji/unicode/1f64d.png differ
diff --git a/images/emoji/unicode/1f64e.png b/images/emoji/unicode/1f64e.png
new file mode 100644
index 0000000..c4a95c3
Binary files /dev/null and b/images/emoji/unicode/1f64e.png differ
diff --git a/images/emoji/unicode/1f64f.png b/images/emoji/unicode/1f64f.png
new file mode 100644
index 0000000..f86c992
Binary files /dev/null and b/images/emoji/unicode/1f64f.png differ
diff --git a/images/emoji/unicode/1f680.png b/images/emoji/unicode/1f680.png
new file mode 100644
index 0000000..783078d
Binary files /dev/null and b/images/emoji/unicode/1f680.png differ
diff --git a/images/emoji/unicode/1f681.png b/images/emoji/unicode/1f681.png
new file mode 100644
index 0000000..8e82a0d
Binary files /dev/null and b/images/emoji/unicode/1f681.png differ
diff --git a/images/emoji/unicode/1f682.png b/images/emoji/unicode/1f682.png
new file mode 100644
index 0000000..5495077
Binary files /dev/null and b/images/emoji/unicode/1f682.png differ
diff --git a/images/emoji/unicode/1f683.png b/images/emoji/unicode/1f683.png
new file mode 100644
index 0000000..2236115
Binary files /dev/null and b/images/emoji/unicode/1f683.png differ
diff --git a/images/emoji/unicode/1f684.png b/images/emoji/unicode/1f684.png
new file mode 100644
index 0000000..49985a3
Binary files /dev/null and b/images/emoji/unicode/1f684.png differ
diff --git a/images/emoji/unicode/1f685.png b/images/emoji/unicode/1f685.png
new file mode 100644
index 0000000..61b494a
Binary files /dev/null and b/images/emoji/unicode/1f685.png differ
diff --git a/images/emoji/unicode/1f686.png b/images/emoji/unicode/1f686.png
new file mode 100644
index 0000000..9c0d3ab
Binary files /dev/null and b/images/emoji/unicode/1f686.png differ
diff --git a/images/emoji/unicode/1f687.png b/images/emoji/unicode/1f687.png
new file mode 100644
index 0000000..4890f9b
Binary files /dev/null and b/images/emoji/unicode/1f687.png differ
diff --git a/images/emoji/unicode/1f688.png b/images/emoji/unicode/1f688.png
new file mode 100644
index 0000000..bcfe801
Binary files /dev/null and b/images/emoji/unicode/1f688.png differ
diff --git a/images/emoji/unicode/1f689.png b/images/emoji/unicode/1f689.png
new file mode 100644
index 0000000..e77daa8
Binary files /dev/null and b/images/emoji/unicode/1f689.png differ
diff --git a/images/emoji/unicode/1f68a.png b/images/emoji/unicode/1f68a.png
new file mode 100644
index 0000000..5eb29fb
Binary files /dev/null and b/images/emoji/unicode/1f68a.png differ
diff --git a/images/emoji/unicode/1f68b.png b/images/emoji/unicode/1f68b.png
new file mode 100644
index 0000000..0a8ea52
Binary files /dev/null and b/images/emoji/unicode/1f68b.png differ
diff --git a/images/emoji/unicode/1f68c.png b/images/emoji/unicode/1f68c.png
new file mode 100644
index 0000000..823aa39
Binary files /dev/null and b/images/emoji/unicode/1f68c.png differ
diff --git a/images/emoji/unicode/1f68d.png b/images/emoji/unicode/1f68d.png
new file mode 100644
index 0000000..3695f76
Binary files /dev/null and b/images/emoji/unicode/1f68d.png differ
diff --git a/images/emoji/unicode/1f68e.png b/images/emoji/unicode/1f68e.png
new file mode 100644
index 0000000..b9740a5
Binary files /dev/null and b/images/emoji/unicode/1f68e.png differ
diff --git a/images/emoji/unicode/1f68f.png b/images/emoji/unicode/1f68f.png
new file mode 100644
index 0000000..99af232
Binary files /dev/null and b/images/emoji/unicode/1f68f.png differ
diff --git a/images/emoji/unicode/1f690.png b/images/emoji/unicode/1f690.png
new file mode 100644
index 0000000..c52cef2
Binary files /dev/null and b/images/emoji/unicode/1f690.png differ
diff --git a/images/emoji/unicode/1f691.png b/images/emoji/unicode/1f691.png
new file mode 100644
index 0000000..b740f45
Binary files /dev/null and b/images/emoji/unicode/1f691.png differ
diff --git a/images/emoji/unicode/1f692.png b/images/emoji/unicode/1f692.png
new file mode 100644
index 0000000..9e6c59c
Binary files /dev/null and b/images/emoji/unicode/1f692.png differ
diff --git a/images/emoji/unicode/1f693.png b/images/emoji/unicode/1f693.png
new file mode 100644
index 0000000..b8f1727
Binary files /dev/null and b/images/emoji/unicode/1f693.png differ
diff --git a/images/emoji/unicode/1f694.png b/images/emoji/unicode/1f694.png
new file mode 100644
index 0000000..af20e7e
Binary files /dev/null and b/images/emoji/unicode/1f694.png differ
diff --git a/images/emoji/unicode/1f695.png b/images/emoji/unicode/1f695.png
new file mode 100644
index 0000000..60a50d3
Binary files /dev/null and b/images/emoji/unicode/1f695.png differ
diff --git a/images/emoji/unicode/1f696.png b/images/emoji/unicode/1f696.png
new file mode 100644
index 0000000..f78cf31
Binary files /dev/null and b/images/emoji/unicode/1f696.png differ
diff --git a/images/emoji/unicode/1f697.png b/images/emoji/unicode/1f697.png
new file mode 100644
index 0000000..d70a2f0
Binary files /dev/null and b/images/emoji/unicode/1f697.png differ
diff --git a/images/emoji/unicode/1f698.png b/images/emoji/unicode/1f698.png
new file mode 100644
index 0000000..cb46de2
Binary files /dev/null and b/images/emoji/unicode/1f698.png differ
diff --git a/images/emoji/unicode/1f699.png b/images/emoji/unicode/1f699.png
new file mode 100644
index 0000000..978291e
Binary files /dev/null and b/images/emoji/unicode/1f699.png differ
diff --git a/images/emoji/unicode/1f69a.png b/images/emoji/unicode/1f69a.png
new file mode 100644
index 0000000..3f25ba1
Binary files /dev/null and b/images/emoji/unicode/1f69a.png differ
diff --git a/images/emoji/unicode/1f69b.png b/images/emoji/unicode/1f69b.png
new file mode 100644
index 0000000..81ec1f9
Binary files /dev/null and b/images/emoji/unicode/1f69b.png differ
diff --git a/images/emoji/unicode/1f69c.png b/images/emoji/unicode/1f69c.png
new file mode 100644
index 0000000..058fd3e
Binary files /dev/null and b/images/emoji/unicode/1f69c.png differ
diff --git a/images/emoji/unicode/1f69d.png b/images/emoji/unicode/1f69d.png
new file mode 100644
index 0000000..913d300
Binary files /dev/null and b/images/emoji/unicode/1f69d.png differ
diff --git a/images/emoji/unicode/1f69e.png b/images/emoji/unicode/1f69e.png
new file mode 100644
index 0000000..1f3d1aa
Binary files /dev/null and b/images/emoji/unicode/1f69e.png differ
diff --git a/images/emoji/unicode/1f69f.png b/images/emoji/unicode/1f69f.png
new file mode 100644
index 0000000..aaa45f6
Binary files /dev/null and b/images/emoji/unicode/1f69f.png differ
diff --git a/images/emoji/unicode/1f6a0.png b/images/emoji/unicode/1f6a0.png
new file mode 100644
index 0000000..5688bb2
Binary files /dev/null and b/images/emoji/unicode/1f6a0.png differ
diff --git a/images/emoji/unicode/1f6a1.png b/images/emoji/unicode/1f6a1.png
new file mode 100644
index 0000000..38f6dfe
Binary files /dev/null and b/images/emoji/unicode/1f6a1.png differ
diff --git a/images/emoji/unicode/1f6a2.png b/images/emoji/unicode/1f6a2.png
new file mode 100644
index 0000000..5d2d8b6
Binary files /dev/null and b/images/emoji/unicode/1f6a2.png differ
diff --git a/images/emoji/unicode/1f6a3.png b/images/emoji/unicode/1f6a3.png
new file mode 100644
index 0000000..fe8ae3e
Binary files /dev/null and b/images/emoji/unicode/1f6a3.png differ
diff --git a/images/emoji/unicode/1f6a4.png b/images/emoji/unicode/1f6a4.png
new file mode 100644
index 0000000..da6689b
Binary files /dev/null and b/images/emoji/unicode/1f6a4.png differ
diff --git a/images/emoji/unicode/1f6a5.png b/images/emoji/unicode/1f6a5.png
new file mode 100644
index 0000000..42eaf70
Binary files /dev/null and b/images/emoji/unicode/1f6a5.png differ
diff --git a/images/emoji/unicode/1f6a6.png b/images/emoji/unicode/1f6a6.png
new file mode 100644
index 0000000..7a5ba35
Binary files /dev/null and b/images/emoji/unicode/1f6a6.png differ
diff --git a/images/emoji/unicode/1f6a7.png b/images/emoji/unicode/1f6a7.png
new file mode 100644
index 0000000..523e9f1
Binary files /dev/null and b/images/emoji/unicode/1f6a7.png differ
diff --git a/images/emoji/unicode/1f6a8.png b/images/emoji/unicode/1f6a8.png
new file mode 100644
index 0000000..6cf4a77
Binary files /dev/null and b/images/emoji/unicode/1f6a8.png differ
diff --git a/images/emoji/unicode/1f6a9.png b/images/emoji/unicode/1f6a9.png
new file mode 100644
index 0000000..f9a3f32
Binary files /dev/null and b/images/emoji/unicode/1f6a9.png differ
diff --git a/images/emoji/unicode/1f6aa.png b/images/emoji/unicode/1f6aa.png
new file mode 100644
index 0000000..83c819a
Binary files /dev/null and b/images/emoji/unicode/1f6aa.png differ
diff --git a/images/emoji/unicode/1f6ab.png b/images/emoji/unicode/1f6ab.png
new file mode 100644
index 0000000..a8444d1
Binary files /dev/null and b/images/emoji/unicode/1f6ab.png differ
diff --git a/images/emoji/unicode/1f6ac.png b/images/emoji/unicode/1f6ac.png
new file mode 100644
index 0000000..4aad6cb
Binary files /dev/null and b/images/emoji/unicode/1f6ac.png differ
diff --git a/images/emoji/unicode/1f6ad.png b/images/emoji/unicode/1f6ad.png
new file mode 100644
index 0000000..eb11d79
Binary files /dev/null and b/images/emoji/unicode/1f6ad.png differ
diff --git a/images/emoji/unicode/1f6ae.png b/images/emoji/unicode/1f6ae.png
new file mode 100644
index 0000000..c2e350c
Binary files /dev/null and b/images/emoji/unicode/1f6ae.png differ
diff --git a/images/emoji/unicode/1f6af.png b/images/emoji/unicode/1f6af.png
new file mode 100644
index 0000000..38c7ae7
Binary files /dev/null and b/images/emoji/unicode/1f6af.png differ
diff --git a/images/emoji/unicode/1f6b0.png b/images/emoji/unicode/1f6b0.png
new file mode 100644
index 0000000..e9fd560
Binary files /dev/null and b/images/emoji/unicode/1f6b0.png differ
diff --git a/images/emoji/unicode/1f6b1.png b/images/emoji/unicode/1f6b1.png
new file mode 100644
index 0000000..1b29d35
Binary files /dev/null and b/images/emoji/unicode/1f6b1.png differ
diff --git a/images/emoji/unicode/1f6b2.png b/images/emoji/unicode/1f6b2.png
new file mode 100644
index 0000000..6573860
Binary files /dev/null and b/images/emoji/unicode/1f6b2.png differ
diff --git a/images/emoji/unicode/1f6b3.png b/images/emoji/unicode/1f6b3.png
new file mode 100644
index 0000000..4b26216
Binary files /dev/null and b/images/emoji/unicode/1f6b3.png differ
diff --git a/images/emoji/unicode/1f6b4.png b/images/emoji/unicode/1f6b4.png
new file mode 100644
index 0000000..4e3e054
Binary files /dev/null and b/images/emoji/unicode/1f6b4.png differ
diff --git a/images/emoji/unicode/1f6b5.png b/images/emoji/unicode/1f6b5.png
new file mode 100644
index 0000000..b698897
Binary files /dev/null and b/images/emoji/unicode/1f6b5.png differ
diff --git a/images/emoji/unicode/1f6b6.png b/images/emoji/unicode/1f6b6.png
new file mode 100644
index 0000000..7a2bfac
Binary files /dev/null and b/images/emoji/unicode/1f6b6.png differ
diff --git a/images/emoji/unicode/1f6b7.png b/images/emoji/unicode/1f6b7.png
new file mode 100644
index 0000000..c35f530
Binary files /dev/null and b/images/emoji/unicode/1f6b7.png differ
diff --git a/images/emoji/unicode/1f6b8.png b/images/emoji/unicode/1f6b8.png
new file mode 100644
index 0000000..b0302ae
Binary files /dev/null and b/images/emoji/unicode/1f6b8.png differ
diff --git a/images/emoji/unicode/1f6b9.png b/images/emoji/unicode/1f6b9.png
new file mode 100644
index 0000000..abccfc9
Binary files /dev/null and b/images/emoji/unicode/1f6b9.png differ
diff --git a/images/emoji/unicode/1f6ba.png b/images/emoji/unicode/1f6ba.png
new file mode 100644
index 0000000..518b76a
Binary files /dev/null and b/images/emoji/unicode/1f6ba.png differ
diff --git a/images/emoji/unicode/1f6bb.png b/images/emoji/unicode/1f6bb.png
new file mode 100644
index 0000000..312ca3d
Binary files /dev/null and b/images/emoji/unicode/1f6bb.png differ
diff --git a/images/emoji/unicode/1f6bc.png b/images/emoji/unicode/1f6bc.png
new file mode 100644
index 0000000..2e58725
Binary files /dev/null and b/images/emoji/unicode/1f6bc.png differ
diff --git a/images/emoji/unicode/1f6bd.png b/images/emoji/unicode/1f6bd.png
new file mode 100644
index 0000000..e5cc411
Binary files /dev/null and b/images/emoji/unicode/1f6bd.png differ
diff --git a/images/emoji/unicode/1f6be.png b/images/emoji/unicode/1f6be.png
new file mode 100644
index 0000000..dfe84d2
Binary files /dev/null and b/images/emoji/unicode/1f6be.png differ
diff --git a/images/emoji/unicode/1f6bf.png b/images/emoji/unicode/1f6bf.png
new file mode 100644
index 0000000..94f82aa
Binary files /dev/null and b/images/emoji/unicode/1f6bf.png differ
diff --git a/images/emoji/unicode/1f6c0.png b/images/emoji/unicode/1f6c0.png
new file mode 100644
index 0000000..8f75d1d
Binary files /dev/null and b/images/emoji/unicode/1f6c0.png differ
diff --git a/images/emoji/unicode/1f6c1.png b/images/emoji/unicode/1f6c1.png
new file mode 100644
index 0000000..1c3f844
Binary files /dev/null and b/images/emoji/unicode/1f6c1.png differ
diff --git a/images/emoji/unicode/1f6c2.png b/images/emoji/unicode/1f6c2.png
new file mode 100644
index 0000000..675b76d
Binary files /dev/null and b/images/emoji/unicode/1f6c2.png differ
diff --git a/images/emoji/unicode/1f6c3.png b/images/emoji/unicode/1f6c3.png
new file mode 100644
index 0000000..92691e3
Binary files /dev/null and b/images/emoji/unicode/1f6c3.png differ
diff --git a/images/emoji/unicode/1f6c4.png b/images/emoji/unicode/1f6c4.png
new file mode 100644
index 0000000..59ae044
Binary files /dev/null and b/images/emoji/unicode/1f6c4.png differ
diff --git a/images/emoji/unicode/1f6c5.png b/images/emoji/unicode/1f6c5.png
new file mode 100644
index 0000000..1c08b46
Binary files /dev/null and b/images/emoji/unicode/1f6c5.png differ
diff --git a/images/emoji/unicode/203c.png b/images/emoji/unicode/203c.png
new file mode 100644
index 0000000..7270f0a
Binary files /dev/null and b/images/emoji/unicode/203c.png differ
diff --git a/images/emoji/unicode/2049.png b/images/emoji/unicode/2049.png
new file mode 100644
index 0000000..64304b9
Binary files /dev/null and b/images/emoji/unicode/2049.png differ
diff --git a/images/emoji/unicode/2122.png b/images/emoji/unicode/2122.png
new file mode 100644
index 0000000..9ba71b7
Binary files /dev/null and b/images/emoji/unicode/2122.png differ
diff --git a/images/emoji/unicode/2139.png b/images/emoji/unicode/2139.png
new file mode 100644
index 0000000..9cb8b09
Binary files /dev/null and b/images/emoji/unicode/2139.png differ
diff --git a/images/emoji/unicode/2194.png b/images/emoji/unicode/2194.png
new file mode 100644
index 0000000..b9fd11c
Binary files /dev/null and b/images/emoji/unicode/2194.png differ
diff --git a/images/emoji/unicode/2195.png b/images/emoji/unicode/2195.png
new file mode 100644
index 0000000..b718c21
Binary files /dev/null and b/images/emoji/unicode/2195.png differ
diff --git a/images/emoji/unicode/2196.png b/images/emoji/unicode/2196.png
new file mode 100644
index 0000000..12aebd9
Binary files /dev/null and b/images/emoji/unicode/2196.png differ
diff --git a/images/emoji/unicode/2197.png b/images/emoji/unicode/2197.png
new file mode 100644
index 0000000..0daf4e9
Binary files /dev/null and b/images/emoji/unicode/2197.png differ
diff --git a/images/emoji/unicode/2198.png b/images/emoji/unicode/2198.png
new file mode 100644
index 0000000..2a15cc7
Binary files /dev/null and b/images/emoji/unicode/2198.png differ
diff --git a/images/emoji/unicode/2199.png b/images/emoji/unicode/2199.png
new file mode 100644
index 0000000..a4438cb
Binary files /dev/null and b/images/emoji/unicode/2199.png differ
diff --git a/images/emoji/unicode/21a9.png b/images/emoji/unicode/21a9.png
new file mode 100644
index 0000000..bc45dfe
Binary files /dev/null and b/images/emoji/unicode/21a9.png differ
diff --git a/images/emoji/unicode/21aa.png b/images/emoji/unicode/21aa.png
new file mode 100644
index 0000000..8b4ea6e
Binary files /dev/null and b/images/emoji/unicode/21aa.png differ
diff --git a/images/emoji/unicode/231a.png b/images/emoji/unicode/231a.png
new file mode 100644
index 0000000..d503bb8
Binary files /dev/null and b/images/emoji/unicode/231a.png differ
diff --git a/images/emoji/unicode/231b.png b/images/emoji/unicode/231b.png
new file mode 100644
index 0000000..405aab4
Binary files /dev/null and b/images/emoji/unicode/231b.png differ
diff --git a/images/emoji/unicode/23e9.png b/images/emoji/unicode/23e9.png
new file mode 100644
index 0000000..b94a117
Binary files /dev/null and b/images/emoji/unicode/23e9.png differ
diff --git a/images/emoji/unicode/23ea.png b/images/emoji/unicode/23ea.png
new file mode 100644
index 0000000..13ba866
Binary files /dev/null and b/images/emoji/unicode/23ea.png differ
diff --git a/images/emoji/unicode/23eb.png b/images/emoji/unicode/23eb.png
new file mode 100644
index 0000000..d42979d
Binary files /dev/null and b/images/emoji/unicode/23eb.png differ
diff --git a/images/emoji/unicode/23ec.png b/images/emoji/unicode/23ec.png
new file mode 100644
index 0000000..2ecbebc
Binary files /dev/null and b/images/emoji/unicode/23ec.png differ
diff --git a/images/emoji/unicode/23f0.png b/images/emoji/unicode/23f0.png
new file mode 100644
index 0000000..86ca8c8
Binary files /dev/null and b/images/emoji/unicode/23f0.png differ
diff --git a/images/emoji/unicode/23f3.png b/images/emoji/unicode/23f3.png
new file mode 100644
index 0000000..52c9eb7
Binary files /dev/null and b/images/emoji/unicode/23f3.png differ
diff --git a/images/emoji/unicode/24c2.png b/images/emoji/unicode/24c2.png
new file mode 100644
index 0000000..7424665
Binary files /dev/null and b/images/emoji/unicode/24c2.png differ
diff --git a/images/emoji/unicode/25aa.png b/images/emoji/unicode/25aa.png
new file mode 100644
index 0000000..a247751
Binary files /dev/null and b/images/emoji/unicode/25aa.png differ
diff --git a/images/emoji/unicode/25ab.png b/images/emoji/unicode/25ab.png
new file mode 100644
index 0000000..24ba879
Binary files /dev/null and b/images/emoji/unicode/25ab.png differ
diff --git a/images/emoji/unicode/25b6.png b/images/emoji/unicode/25b6.png
new file mode 100644
index 0000000..fbfe711
Binary files /dev/null and b/images/emoji/unicode/25b6.png differ
diff --git a/images/emoji/unicode/25c0.png b/images/emoji/unicode/25c0.png
new file mode 100644
index 0000000..2be422b
Binary files /dev/null and b/images/emoji/unicode/25c0.png differ
diff --git a/images/emoji/unicode/25fb.png b/images/emoji/unicode/25fb.png
new file mode 100644
index 0000000..199808b
Binary files /dev/null and b/images/emoji/unicode/25fb.png differ
diff --git a/images/emoji/unicode/25fc.png b/images/emoji/unicode/25fc.png
new file mode 100644
index 0000000..204cce1
Binary files /dev/null and b/images/emoji/unicode/25fc.png differ
diff --git a/images/emoji/unicode/25fd.png b/images/emoji/unicode/25fd.png
new file mode 100644
index 0000000..a115cdc
Binary files /dev/null and b/images/emoji/unicode/25fd.png differ
diff --git a/images/emoji/unicode/25fe.png b/images/emoji/unicode/25fe.png
new file mode 100644
index 0000000..25bfe9c
Binary files /dev/null and b/images/emoji/unicode/25fe.png differ
diff --git a/images/emoji/unicode/2600.png b/images/emoji/unicode/2600.png
new file mode 100644
index 0000000..d23c095
Binary files /dev/null and b/images/emoji/unicode/2600.png differ
diff --git a/images/emoji/unicode/2601.png b/images/emoji/unicode/2601.png
new file mode 100644
index 0000000..b31c08c
Binary files /dev/null and b/images/emoji/unicode/2601.png differ
diff --git a/images/emoji/unicode/260e.png b/images/emoji/unicode/260e.png
new file mode 100644
index 0000000..87d2559
Binary files /dev/null and b/images/emoji/unicode/260e.png differ
diff --git a/images/emoji/unicode/2611.png b/images/emoji/unicode/2611.png
new file mode 100644
index 0000000..f07a466
Binary files /dev/null and b/images/emoji/unicode/2611.png differ
diff --git a/images/emoji/unicode/2614.png b/images/emoji/unicode/2614.png
new file mode 100644
index 0000000..1db722f
Binary files /dev/null and b/images/emoji/unicode/2614.png differ
diff --git a/images/emoji/unicode/2615.png b/images/emoji/unicode/2615.png
new file mode 100644
index 0000000..57e1adc
Binary files /dev/null and b/images/emoji/unicode/2615.png differ
diff --git a/images/emoji/unicode/261d.png b/images/emoji/unicode/261d.png
new file mode 100644
index 0000000..01896e2
Binary files /dev/null and b/images/emoji/unicode/261d.png differ
diff --git a/images/emoji/unicode/263a.png b/images/emoji/unicode/263a.png
new file mode 100644
index 0000000..bbab82d
Binary files /dev/null and b/images/emoji/unicode/263a.png differ
diff --git a/images/emoji/unicode/2648.png b/images/emoji/unicode/2648.png
new file mode 100644
index 0000000..d676fd3
Binary files /dev/null and b/images/emoji/unicode/2648.png differ
diff --git a/images/emoji/unicode/2649.png b/images/emoji/unicode/2649.png
new file mode 100644
index 0000000..6af582f
Binary files /dev/null and b/images/emoji/unicode/2649.png differ
diff --git a/images/emoji/unicode/264a.png b/images/emoji/unicode/264a.png
new file mode 100644
index 0000000..d926f6e
Binary files /dev/null and b/images/emoji/unicode/264a.png differ
diff --git a/images/emoji/unicode/264b.png b/images/emoji/unicode/264b.png
new file mode 100644
index 0000000..ea43a4a
Binary files /dev/null and b/images/emoji/unicode/264b.png differ
diff --git a/images/emoji/unicode/264c.png b/images/emoji/unicode/264c.png
new file mode 100644
index 0000000..e025933
Binary files /dev/null and b/images/emoji/unicode/264c.png differ
diff --git a/images/emoji/unicode/264d.png b/images/emoji/unicode/264d.png
new file mode 100644
index 0000000..72e1763
Binary files /dev/null and b/images/emoji/unicode/264d.png differ
diff --git a/images/emoji/unicode/264e.png b/images/emoji/unicode/264e.png
new file mode 100644
index 0000000..c9062dd
Binary files /dev/null and b/images/emoji/unicode/264e.png differ
diff --git a/images/emoji/unicode/264f.png b/images/emoji/unicode/264f.png
new file mode 100644
index 0000000..67fcea1
Binary files /dev/null and b/images/emoji/unicode/264f.png differ
diff --git a/images/emoji/unicode/2650.png b/images/emoji/unicode/2650.png
new file mode 100644
index 0000000..8b5435b
Binary files /dev/null and b/images/emoji/unicode/2650.png differ
diff --git a/images/emoji/unicode/2651.png b/images/emoji/unicode/2651.png
new file mode 100644
index 0000000..f2044e7
Binary files /dev/null and b/images/emoji/unicode/2651.png differ
diff --git a/images/emoji/unicode/2652.png b/images/emoji/unicode/2652.png
new file mode 100644
index 0000000..cbff66e
Binary files /dev/null and b/images/emoji/unicode/2652.png differ
diff --git a/images/emoji/unicode/2653.png b/images/emoji/unicode/2653.png
new file mode 100644
index 0000000..5a2da0a
Binary files /dev/null and b/images/emoji/unicode/2653.png differ
diff --git a/images/emoji/unicode/2660.png b/images/emoji/unicode/2660.png
new file mode 100644
index 0000000..133a1ab
Binary files /dev/null and b/images/emoji/unicode/2660.png differ
diff --git a/images/emoji/unicode/2663.png b/images/emoji/unicode/2663.png
new file mode 100644
index 0000000..bfab536
Binary files /dev/null and b/images/emoji/unicode/2663.png differ
diff --git a/images/emoji/unicode/2665.png b/images/emoji/unicode/2665.png
new file mode 100644
index 0000000..e894715
Binary files /dev/null and b/images/emoji/unicode/2665.png differ
diff --git a/images/emoji/unicode/2666.png b/images/emoji/unicode/2666.png
new file mode 100644
index 0000000..fe08277
Binary files /dev/null and b/images/emoji/unicode/2666.png differ
diff --git a/images/emoji/unicode/2668.png b/images/emoji/unicode/2668.png
new file mode 100644
index 0000000..a0bc9d7
Binary files /dev/null and b/images/emoji/unicode/2668.png differ
diff --git a/images/emoji/unicode/267b.png b/images/emoji/unicode/267b.png
new file mode 100644
index 0000000..99104c0
Binary files /dev/null and b/images/emoji/unicode/267b.png differ
diff --git a/images/emoji/unicode/267f.png b/images/emoji/unicode/267f.png
new file mode 100644
index 0000000..eddcdd7
Binary files /dev/null and b/images/emoji/unicode/267f.png differ
diff --git a/images/emoji/unicode/2693.png b/images/emoji/unicode/2693.png
new file mode 100644
index 0000000..0c5192e
Binary files /dev/null and b/images/emoji/unicode/2693.png differ
diff --git a/images/emoji/unicode/26a0.png b/images/emoji/unicode/26a0.png
new file mode 100644
index 0000000..466658d
Binary files /dev/null and b/images/emoji/unicode/26a0.png differ
diff --git a/images/emoji/unicode/26a1.png b/images/emoji/unicode/26a1.png
new file mode 100644
index 0000000..260c531
Binary files /dev/null and b/images/emoji/unicode/26a1.png differ
diff --git a/images/emoji/unicode/26aa.png b/images/emoji/unicode/26aa.png
new file mode 100644
index 0000000..da782ae
Binary files /dev/null and b/images/emoji/unicode/26aa.png differ
diff --git a/images/emoji/unicode/26ab.png b/images/emoji/unicode/26ab.png
new file mode 100644
index 0000000..e46f9df
Binary files /dev/null and b/images/emoji/unicode/26ab.png differ
diff --git a/images/emoji/unicode/26bd.png b/images/emoji/unicode/26bd.png
new file mode 100644
index 0000000..1e118b5
Binary files /dev/null and b/images/emoji/unicode/26bd.png differ
diff --git a/images/emoji/unicode/26be.png b/images/emoji/unicode/26be.png
new file mode 100644
index 0000000..da004e2
Binary files /dev/null and b/images/emoji/unicode/26be.png differ
diff --git a/images/emoji/unicode/26c4.png b/images/emoji/unicode/26c4.png
new file mode 100644
index 0000000..a97902e
Binary files /dev/null and b/images/emoji/unicode/26c4.png differ
diff --git a/images/emoji/unicode/26c5.png b/images/emoji/unicode/26c5.png
new file mode 100644
index 0000000..020dd5f
Binary files /dev/null and b/images/emoji/unicode/26c5.png differ
diff --git a/images/emoji/unicode/26ce.png b/images/emoji/unicode/26ce.png
new file mode 100644
index 0000000..4eef715
Binary files /dev/null and b/images/emoji/unicode/26ce.png differ
diff --git a/images/emoji/unicode/26d4.png b/images/emoji/unicode/26d4.png
new file mode 100644
index 0000000..cf2086a
Binary files /dev/null and b/images/emoji/unicode/26d4.png differ
diff --git a/images/emoji/unicode/26ea.png b/images/emoji/unicode/26ea.png
new file mode 100644
index 0000000..4c07c6b
Binary files /dev/null and b/images/emoji/unicode/26ea.png differ
diff --git a/images/emoji/unicode/26f2.png b/images/emoji/unicode/26f2.png
new file mode 100644
index 0000000..da126e6
Binary files /dev/null and b/images/emoji/unicode/26f2.png differ
diff --git a/images/emoji/unicode/26f3.png b/images/emoji/unicode/26f3.png
new file mode 100644
index 0000000..cba2116
Binary files /dev/null and b/images/emoji/unicode/26f3.png differ
diff --git a/images/emoji/unicode/26f5.png b/images/emoji/unicode/26f5.png
new file mode 100644
index 0000000..ff656dc
Binary files /dev/null and b/images/emoji/unicode/26f5.png differ
diff --git a/images/emoji/unicode/26fa.png b/images/emoji/unicode/26fa.png
new file mode 100644
index 0000000..5c0d20e
Binary files /dev/null and b/images/emoji/unicode/26fa.png differ
diff --git a/images/emoji/unicode/26fd.png b/images/emoji/unicode/26fd.png
new file mode 100644
index 0000000..54c29ae
Binary files /dev/null and b/images/emoji/unicode/26fd.png differ
diff --git a/images/emoji/unicode/2702.png b/images/emoji/unicode/2702.png
new file mode 100644
index 0000000..020e052
Binary files /dev/null and b/images/emoji/unicode/2702.png differ
diff --git a/images/emoji/unicode/2705.png b/images/emoji/unicode/2705.png
new file mode 100644
index 0000000..61dc058
Binary files /dev/null and b/images/emoji/unicode/2705.png differ
diff --git a/images/emoji/unicode/2708.png b/images/emoji/unicode/2708.png
new file mode 100644
index 0000000..8407cb6
Binary files /dev/null and b/images/emoji/unicode/2708.png differ
diff --git a/images/emoji/unicode/2709.png b/images/emoji/unicode/2709.png
new file mode 100644
index 0000000..3631861
Binary files /dev/null and b/images/emoji/unicode/2709.png differ
diff --git a/images/emoji/unicode/270a.png b/images/emoji/unicode/270a.png
new file mode 100644
index 0000000..ecc8874
Binary files /dev/null and b/images/emoji/unicode/270a.png differ
diff --git a/images/emoji/unicode/270b.png b/images/emoji/unicode/270b.png
new file mode 100644
index 0000000..5e45c25
Binary files /dev/null and b/images/emoji/unicode/270b.png differ
diff --git a/images/emoji/unicode/270c.png b/images/emoji/unicode/270c.png
new file mode 100644
index 0000000..f61267c
Binary files /dev/null and b/images/emoji/unicode/270c.png differ
diff --git a/images/emoji/unicode/270f.png b/images/emoji/unicode/270f.png
new file mode 100644
index 0000000..e624373
Binary files /dev/null and b/images/emoji/unicode/270f.png differ
diff --git a/images/emoji/unicode/2712.png b/images/emoji/unicode/2712.png
new file mode 100644
index 0000000..29f6994
Binary files /dev/null and b/images/emoji/unicode/2712.png differ
diff --git a/images/emoji/unicode/2714.png b/images/emoji/unicode/2714.png
new file mode 100644
index 0000000..336d262
Binary files /dev/null and b/images/emoji/unicode/2714.png differ
diff --git a/images/emoji/unicode/2716.png b/images/emoji/unicode/2716.png
new file mode 100644
index 0000000..13d6660
Binary files /dev/null and b/images/emoji/unicode/2716.png differ
diff --git a/images/emoji/unicode/2728.png b/images/emoji/unicode/2728.png
new file mode 100644
index 0000000..9213882
Binary files /dev/null and b/images/emoji/unicode/2728.png differ
diff --git a/images/emoji/unicode/2733.png b/images/emoji/unicode/2733.png
new file mode 100644
index 0000000..946a203
Binary files /dev/null and b/images/emoji/unicode/2733.png differ
diff --git a/images/emoji/unicode/2734.png b/images/emoji/unicode/2734.png
new file mode 100644
index 0000000..73dc6a0
Binary files /dev/null and b/images/emoji/unicode/2734.png differ
diff --git a/images/emoji/unicode/2744.png b/images/emoji/unicode/2744.png
new file mode 100644
index 0000000..54b68ff
Binary files /dev/null and b/images/emoji/unicode/2744.png differ
diff --git a/images/emoji/unicode/2747.png b/images/emoji/unicode/2747.png
new file mode 100644
index 0000000..23a68ce
Binary files /dev/null and b/images/emoji/unicode/2747.png differ
diff --git a/images/emoji/unicode/274c.png b/images/emoji/unicode/274c.png
new file mode 100644
index 0000000..b84f635
Binary files /dev/null and b/images/emoji/unicode/274c.png differ
diff --git a/images/emoji/unicode/274e.png b/images/emoji/unicode/274e.png
new file mode 100644
index 0000000..b47a0ce
Binary files /dev/null and b/images/emoji/unicode/274e.png differ
diff --git a/images/emoji/unicode/2753.png b/images/emoji/unicode/2753.png
new file mode 100644
index 0000000..63fd7f8
Binary files /dev/null and b/images/emoji/unicode/2753.png differ
diff --git a/images/emoji/unicode/2754.png b/images/emoji/unicode/2754.png
new file mode 100644
index 0000000..57db41e
Binary files /dev/null and b/images/emoji/unicode/2754.png differ
diff --git a/images/emoji/unicode/2755.png b/images/emoji/unicode/2755.png
new file mode 100644
index 0000000..a50d265
Binary files /dev/null and b/images/emoji/unicode/2755.png differ
diff --git a/images/emoji/unicode/2757.png b/images/emoji/unicode/2757.png
new file mode 100644
index 0000000..4c560f5
Binary files /dev/null and b/images/emoji/unicode/2757.png differ
diff --git a/images/emoji/unicode/2764.png b/images/emoji/unicode/2764.png
new file mode 100644
index 0000000..7d7790c
Binary files /dev/null and b/images/emoji/unicode/2764.png differ
diff --git a/images/emoji/unicode/2795.png b/images/emoji/unicode/2795.png
new file mode 100644
index 0000000..6159538
Binary files /dev/null and b/images/emoji/unicode/2795.png differ
diff --git a/images/emoji/unicode/2796.png b/images/emoji/unicode/2796.png
new file mode 100644
index 0000000..b8d3d82
Binary files /dev/null and b/images/emoji/unicode/2796.png differ
diff --git a/images/emoji/unicode/2797.png b/images/emoji/unicode/2797.png
new file mode 100644
index 0000000..ac757a2
Binary files /dev/null and b/images/emoji/unicode/2797.png differ
diff --git a/images/emoji/unicode/27a1.png b/images/emoji/unicode/27a1.png
new file mode 100644
index 0000000..e5cca85
Binary files /dev/null and b/images/emoji/unicode/27a1.png differ
diff --git a/images/emoji/unicode/27b0.png b/images/emoji/unicode/27b0.png
new file mode 100644
index 0000000..8f051ac
Binary files /dev/null and b/images/emoji/unicode/27b0.png differ
diff --git a/images/emoji/unicode/27bf.png b/images/emoji/unicode/27bf.png
new file mode 100644
index 0000000..ef34df3
Binary files /dev/null and b/images/emoji/unicode/27bf.png differ
diff --git a/images/emoji/unicode/2934.png b/images/emoji/unicode/2934.png
new file mode 100644
index 0000000..c8f670a
Binary files /dev/null and b/images/emoji/unicode/2934.png differ
diff --git a/images/emoji/unicode/2935.png b/images/emoji/unicode/2935.png
new file mode 100644
index 0000000..56dd3b9
Binary files /dev/null and b/images/emoji/unicode/2935.png differ
diff --git a/images/emoji/unicode/2b05.png b/images/emoji/unicode/2b05.png
new file mode 100644
index 0000000..9d7d1b5
Binary files /dev/null and b/images/emoji/unicode/2b05.png differ
diff --git a/images/emoji/unicode/2b06.png b/images/emoji/unicode/2b06.png
new file mode 100644
index 0000000..565ce29
Binary files /dev/null and b/images/emoji/unicode/2b06.png differ
diff --git a/images/emoji/unicode/2b07.png b/images/emoji/unicode/2b07.png
new file mode 100644
index 0000000..3956eb3
Binary files /dev/null and b/images/emoji/unicode/2b07.png differ
diff --git a/images/emoji/unicode/2b1b.png b/images/emoji/unicode/2b1b.png
new file mode 100644
index 0000000..71da10d
Binary files /dev/null and b/images/emoji/unicode/2b1b.png differ
diff --git a/images/emoji/unicode/2b1c.png b/images/emoji/unicode/2b1c.png
new file mode 100644
index 0000000..60cb19a
Binary files /dev/null and b/images/emoji/unicode/2b1c.png differ
diff --git a/images/emoji/unicode/2b50.png b/images/emoji/unicode/2b50.png
new file mode 100644
index 0000000..1bfddc8
Binary files /dev/null and b/images/emoji/unicode/2b50.png differ
diff --git a/images/emoji/unicode/2b55.png b/images/emoji/unicode/2b55.png
new file mode 100644
index 0000000..0ededeb
Binary files /dev/null and b/images/emoji/unicode/2b55.png differ
diff --git a/images/emoji/unicode/3030.png b/images/emoji/unicode/3030.png
new file mode 100644
index 0000000..77f626c
Binary files /dev/null and b/images/emoji/unicode/3030.png differ
diff --git a/images/emoji/unicode/303d.png b/images/emoji/unicode/303d.png
new file mode 100644
index 0000000..45dc9b8
Binary files /dev/null and b/images/emoji/unicode/303d.png differ
diff --git a/images/emoji/unicode/3297.png b/images/emoji/unicode/3297.png
new file mode 100644
index 0000000..dcbb1d2
Binary files /dev/null and b/images/emoji/unicode/3297.png differ
diff --git a/images/emoji/unicode/3299.png b/images/emoji/unicode/3299.png
new file mode 100644
index 0000000..82e383a
Binary files /dev/null and b/images/emoji/unicode/3299.png differ
diff --git a/lib/emoji.rb b/lib/emoji.rb
new file mode 100644
index 0000000..c03e47e
--- /dev/null
+++ b/lib/emoji.rb
@@ -0,0 +1,84 @@
+require 'emoji/character'
+require 'json'
+
+module Emoji
+  extend self
+
+  def data_file
+    File.expand_path('../../db/emoji.json', __FILE__)
+  end
+
+  def images_path
+    File.expand_path("../../images", __FILE__)
+  end
+
+  def all
+    return @all if defined? @all
+    @all = []
+    parse_data_file
+    @all
+  end
+
+  # Public: Initialize an Emoji::Character instance and yield it to the block.
+  # The character is added to the `Emoji.all` set.
+  def create(name)
+    emoji = Emoji::Character.new(name)
+    self.all << edit_emoji(emoji) { yield emoji if block_given? }
+    emoji
+  end
+
+  # Public: Yield an emoji to the block and update the indices in case its
+  # aliases or unicode_aliases lists changed.
+  def edit_emoji(emoji)
+    @names_index ||= Hash.new
+    @unicodes_index ||= Hash.new
+
+    yield emoji
+
+    emoji.aliases.each do |name|
+      @names_index[name] = emoji
+    end
+    emoji.unicode_aliases.each do |unicode|
+      @unicodes_index[unicode] = emoji
+    end
+
+    emoji
+  end
+
+  # Public: Find an emoji by its aliased name. Return nil if missing.
+  def find_by_alias(name)
+    names_index[name]
+  end
+
+  # Public: Find an emoji by its unicode character. Return nil if missing.
+  def find_by_unicode(unicode)
+    unicodes_index[unicode]
+  end
+
+  private
+    VARIATION_SELECTOR_16 = "\u{fe0f}".freeze
+
+    def parse_data_file
+      raw = File.open(data_file, 'r:UTF-8') { |data| JSON.parse(data.read) }
+      raw.each do |raw_emoji|
+        self.create(nil) do |emoji|
+          raw_emoji.fetch('aliases').each { |name| emoji.add_alias(name) }
+          if raw = raw_emoji['emoji']
+            unicodes = [raw, raw.sub(VARIATION_SELECTOR_16, '') + VARIATION_SELECTOR_16].uniq
+            unicodes.each { |uni| emoji.add_unicode_alias(uni) }
+          end
+          raw_emoji.fetch('tags').each { |tag| emoji.add_tag(tag) }
+        end
+      end
+    end
+
+    def names_index
+      all unless defined? @all
+      @names_index
+    end
+
+    def unicodes_index
+      all unless defined? @all
+      @unicodes_index
+    end
+end
diff --git a/lib/emoji/character.rb b/lib/emoji/character.rb
new file mode 100644
index 0000000..c85b6d5
--- /dev/null
+++ b/lib/emoji/character.rb
@@ -0,0 +1,62 @@
+module Emoji
+  class Character
+    # Inspect individual Unicode characters in a string by dumping its
+    # codepoints in hexadecimal format.
+    def self.hex_inspect(str)
+      str.codepoints.map { |c| c.to_s(16).rjust(4, '0') }.join('-')
+    end
+
+    # True if the emoji is not a standard Emoji character.
+    def custom?() !raw end
+
+    # A list of names uniquely referring to this emoji.
+    attr_reader :aliases
+
+    def name() aliases.first end
+
+    def add_alias(name)
+      aliases << name
+    end
+
+    # A list of Unicode strings that uniquely refer to this emoji.
+    attr_reader :unicode_aliases
+
+    # Raw Unicode string for an emoji. Nil if emoji is non-standard.
+    def raw() unicode_aliases.first end
+
+    def add_unicode_alias(str)
+      unicode_aliases << str
+    end
+
+    # A list of tags associated with an emoji. Multiple emojis can share the
+    # same tags.
+    attr_reader :tags
+
+    def add_tag(tag)
+      tags << tag
+    end
+
+    def initialize(name)
+      @aliases = Array(name)
+      @unicode_aliases = []
+      @tags = []
+    end
+
+    def inspect
+      hex = '(%s)' % hex_inspect unless custom?
+      %(#<#{self.class.name}:#{name}#{hex}>)
+    end
+
+    def hex_inspect
+      self.class.hex_inspect(raw)
+    end
+
+    def image_filename
+      if custom?
+        '%s.png' % name
+      else
+        'unicode/%s.png' % hex_inspect.sub(/-fe0f\b/, '')
+      end
+    end
+  end
+end
diff --git a/lib/emoji/railtie.rb b/lib/emoji/railtie.rb
new file mode 100644
index 0000000..3777abb
--- /dev/null
+++ b/lib/emoji/railtie.rb
@@ -0,0 +1,6 @@
+warn "requiring 'emoji/railtie' is deprecated. " +
+  "Please manually add Emoji.images_path to your config.assets.paths."
+
+# Automatic path configuration via a railtie is intentionally removed.
+# Please see the README for details. Any patches to readded it by a
+# non-repo collab will be closed without comment.
diff --git a/lib/gemoji.rb b/lib/gemoji.rb
new file mode 100644
index 0000000..0de52ed
--- /dev/null
+++ b/lib/gemoji.rb
@@ -0,0 +1 @@
+require 'emoji'
diff --git a/lib/tasks/emoji.rake b/lib/tasks/emoji.rake
new file mode 100644
index 0000000..e24b398
--- /dev/null
+++ b/lib/tasks/emoji.rake
@@ -0,0 +1,7 @@
+desc "Copy emoji to the Rails `public/images/emoji` directory"
+task :emoji do
+  require 'emoji'
+
+  target = "#{Rake.original_dir}/public/images"
+  `mkdir -p #{target} && cp -Rp #{Emoji.images_path}/emoji #{target}`
+end
diff --git a/script/bootstrap b/script/bootstrap
new file mode 100755
index 0000000..5dccdb9
--- /dev/null
+++ b/script/bootstrap
@@ -0,0 +1,9 @@
+#!/bin/bash
+set -e
+
+if type -p bundle >/dev/null; then
+  bundle install
+else
+  echo "You must \`gem install bundler\` first." >&2
+  exit 1
+fi
diff --git a/script/console b/script/console
new file mode 100755
index 0000000..412c100
--- /dev/null
+++ b/script/console
@@ -0,0 +1,15 @@
+#!/bin/bash
+set -e
+
+public_methods() {
+  sed '/^ *private/,$d' "$1" | grep -w def | sed -E 's/^ *def /  /; s/).+/)/'
+}
+
+echo "Emoji methods:"
+public_methods lib/emoji.rb
+echo
+echo "Emoji::Character methods:"
+public_methods lib/emoji/character.rb
+echo
+
+exec irb -I lib -r emoji
diff --git a/script/regenerate b/script/regenerate
new file mode 100755
index 0000000..00bdeaa
--- /dev/null
+++ b/script/regenerate
@@ -0,0 +1,33 @@
+#!/bin/bash
+# Usage: script/regenerate
+#
+# Note: only usable on OS X
+#
+# Combines `rake db:dump` and `db/aliases.html` filter to regenerate the
+# `db/emoji.json` file using only emoji that are guaranteed to not render as
+# ordinary characters on OS X.
+
+set -e
+
+case "$1" in
+-h | --help )
+  sed -ne '/^#/!q;s/.\{1,2\}//;1d;p' < "$0"
+  exit 0
+  ;;
+esac
+
+if [ "$(uname -s)" != "Darwin" ]; then
+  echo "Error: this script must be run under Mac OS X." >&2
+  exit 1
+fi
+
+bundle exec rake db:dump > db/emoji2.json
+mv db/emoji2.json db/emoji.json
+
+open -g -a Safari db/aliases.html
+osascript db/aliases.applescript | sed '/^$/d' > db/emoji2.json
+mv db/emoji2.json db/emoji.json
+
+if git diff --exit-code --stat -- db/emoji.json; then
+  echo "Done. The file \`db/emoji.json\` remains unchanged."
+fi
diff --git a/script/release b/script/release
new file mode 100755
index 0000000..9190639
--- /dev/null
+++ b/script/release
@@ -0,0 +1,31 @@
+#!/bin/bash
+# Usage: script/release
+#
+# 1. Checks if tests pass,
+# 2. commits gemspec,
+# 3. tags the release with the version in the gemspec,
+# 4. pushes "gemoji" gem to RubyGems.org.
+
+set -e
+
+case "$1" in
+-h | --help )
+  sed -ne '/^#/!q;s/.\{1,2\}//;1d;p' < "$0"
+  exit 0
+  ;;
+esac
+
+if git diff --quiet gemoji.gemspec; then
+  echo "You must bump the version in the gemspec first." >&2
+  exit 1
+fi
+
+script/test
+
+trap 'rm *.gem' EXIT
+
+version="$(gem build gemoji.gemspec | awk '/Version:/ { print $2 }')"
+git commit gemoji.gemspec Gemfile.lock -m "gemoji $version"
+git tag "v${version}"
+git push origin HEAD "v${version}"
+gem push "gemoji-${version}.gem"
diff --git a/script/test b/script/test
new file mode 100755
index 0000000..aee7bd8
--- /dev/null
+++ b/script/test
@@ -0,0 +1,14 @@
+#!/bin/bash
+# Usage: script/test [file]
+set -e
+
+case "$1" in
+-h | --help )
+  sed -ne '/^#/!q;s/.\{1,2\}//;1d;p' < "$0"
+  exit 0
+  ;;
+esac
+
+export RUBYOPT="$RUBYOPT -w"
+
+exec bundle exec rake ${1:+TEST="$1"}
diff --git a/test/documentation_test.rb b/test/documentation_test.rb
new file mode 100644
index 0000000..cd8fcd3
--- /dev/null
+++ b/test/documentation_test.rb
@@ -0,0 +1,46 @@
+require 'test_helper'
+
+# Pull the EmojiHelper example from the docs
+readme = File.expand_path('../../README.md', __FILE__)
+docs = File.open(readme, 'r:UTF-8') { |f| f.read }
+eval docs.match(/^module.+?^end/m)[0]
+
+String.class_eval do
+  def html_safe() self end
+  def present?() !empty? end
+end
+
+class DocumentationTest < TestCase
+  module Helper
+    extend EmojiHelper
+
+    def self.h(str)
+      str.gsub('<', '<').gsub('>', '>')
+    end
+
+    def self.asset_path(img)
+      "/images/#{img}?123"
+    end
+  end
+
+  test "replaces emoji syntax with images" do
+    assert_equal "It's raining " \
+        '<img alt="cat" src="/images/emoji/unicode/1f431.png?123" style="vertical-align:middle" width="20" height="20" />s and ' \
+        '<img alt="dog" src="/images/emoji/unicode/1f436.png?123" style="vertical-align:middle" width="20" height="20" />s!',
+      Helper.emojify("It's raining :cat:s and :dog:s!")
+  end
+
+  test "doesn't replace unknown emoji" do
+    content = ":jupiter: is in :space:"
+    assert_equal content, Helper.emojify(content)
+  end
+
+  test "escapes other HTML" do
+    assert_equal "You have been <script>alert('pwned!')</script>",
+      Helper.emojify("You have been <script>alert('pwned!')</script>")
+  end
+
+  test "returns nil for blank content" do
+    assert_nil Helper.emojify('')
+  end
+end
diff --git a/test/emoji_test.rb b/test/emoji_test.rb
new file mode 100644
index 0000000..4ff43ed
--- /dev/null
+++ b/test/emoji_test.rb
@@ -0,0 +1,133 @@
+require 'test_helper'
+
+class EmojiTest < TestCase
+  test "fetching all emoji" do
+    count = Emoji.all.size
+    assert count > 845, "there were too few emojis: #{count}"
+  end
+
+  test "unicodes set contains the unicodes" do
+    min_size = Emoji.all.reject(&:custom?).size
+    count = Emoji.all.map(&:unicode_aliases).flatten.size
+    assert count > min_size, "there were too few unicode mappings: #{count}"
+  end
+
+  test "finding emoji by alias" do
+    assert_equal 'smile', Emoji.find_by_alias('smile').name
+  end
+
+  test "finding nonexistent emoji by alias returns nil" do
+    assert_nil Emoji.find_by_alias('$$$')
+  end
+
+  test "finding emoji by unicode" do
+    assert_equal "\u{1f604}", Emoji.find_by_unicode("\u{1f604}").raw
+  end
+
+  test "finding nonexistent emoji by unicode returns nil" do
+    assert_nil Emoji.find_by_unicode("\u{1234}")
+  end
+
+  test "unicode_aliases" do
+    emoji = Emoji.find_by_unicode("\u{2728}")
+    assert_equal ["\u{2728}", "\u{2728}\u{fe0f}"], emoji.unicode_aliases
+  end
+
+  test "unicode_aliases includes alternate position of VARIATION_SELECTOR_16" do
+    emoji = Emoji.find_by_unicode("\u{0031}\u{fe0f}\u{20e3}")
+    assert_equal ["\u{0031}\u{fe0f}\u{20e3}", "\u{0031}\u{20e3}\u{fe0f}"], emoji.unicode_aliases
+  end
+
+  test "unicode_aliases doesn't necessarily include form without VARIATION_SELECTOR_16" do
+    emoji = Emoji.find_by_unicode("\u{00a9}\u{fe0f}")
+    assert_equal ["\u{00a9}\u{fe0f}"], emoji.unicode_aliases
+  end
+
+  test "emojis have tags" do
+    emoji = Emoji.find_by_alias('smile')
+    assert emoji.tags.include?('happy')
+    assert emoji.tags.include?('joy')
+    assert emoji.tags.include?('pleased')
+  end
+
+  test "emojis have valid names" do
+    invalid = Emoji.all.reject { |emoji| emoji.name =~ /^[\w\+\-]+$/ }
+    assert_equal [], invalid, "some emoji have invalid names"
+  end
+
+  test "custom emojis" do
+    custom = Emoji.all.select(&:custom?)
+    assert custom.size > 0
+
+    custom.each do |emoji|
+      assert_nil emoji.raw
+      assert_equal [], emoji.unicode_aliases
+    end
+  end
+
+  test "custom emoji names" do
+    custom_names = Emoji.all.select(&:custom?).map(&:name)
+    assert custom_names.include?("shipit")
+    assert !custom_names.include?("+1")
+  end
+
+  test "create" do
+    emoji = Emoji.create("music") do |char|
+      char.add_unicode_alias "\u{266b}"
+      char.add_unicode_alias "\u{266a}"
+      char.add_tag "notes"
+      char.add_tag "eighth"
+    end
+
+    begin
+      assert_equal emoji, Emoji.all.last
+      assert_equal emoji, Emoji.find_by_alias("music")
+      assert_equal emoji, Emoji.find_by_unicode("\u{266a}")
+      assert_equal emoji, Emoji.find_by_unicode("\u{266b}")
+
+      assert_equal "\u{266b}", emoji.raw
+      assert_equal "unicode/266b.png", emoji.image_filename
+      assert_equal %w[music], emoji.aliases
+      assert_equal %w[notes eighth], emoji.tags
+    ensure
+      Emoji.all.pop
+    end
+  end
+
+  test "create without block" do
+    emoji = Emoji.create("music")
+
+    begin
+      assert_equal emoji, Emoji.find_by_alias("music")
+      assert_equal [], emoji.unicode_aliases
+      assert_equal [], emoji.tags
+      assert_equal "music.png", emoji.image_filename
+    ensure
+      Emoji.all.pop
+    end
+  end
+
+  test "edit" do
+    emoji = Emoji.find_by_alias("weary")
+
+    emoji = Emoji.edit_emoji(emoji) do |char|
+      char.add_alias "whining"
+      char.add_unicode_alias "\u{1f629}\u{266a}"
+      char.add_tag "complaining"
+    end
+
+    begin
+      assert_equal emoji, Emoji.find_by_alias("weary")
+      assert_equal emoji, Emoji.find_by_alias("whining")
+      assert_equal emoji, Emoji.find_by_unicode("\u{1f629}")
+      assert_equal emoji, Emoji.find_by_unicode("\u{1f629}\u{266a}")
+
+      assert_equal %w[weary whining], emoji.aliases
+      assert_includes emoji.tags, "complaining"
+    ensure
+      emoji.aliases.pop
+      emoji.unicode_aliases.pop
+      emoji.tags.pop
+    end
+  end
+end
diff --git a/test/integrity_test.rb b/test/integrity_test.rb
new file mode 100644
index 0000000..525c498
--- /dev/null
+++ b/test/integrity_test.rb
@@ -0,0 +1,86 @@
+# encoding: utf-8
+require 'test_helper'
+require 'json'
+require 'digest/md5'
+
+class IntegrityTest < TestCase
+  test "images on disk correlate 1-1 with emojis" do
+    images_on_disk = Dir["#{Emoji.images_path}/**/*.png"].map {|f| f.sub(Emoji.images_path, '') }
+    expected_images = Emoji.all.map { |emoji| '/emoji/%s' % emoji.image_filename }
+
+    missing_images = expected_images - images_on_disk
+    assert_equal 0, missing_images.size, "these images are missing on disk:\n  #{missing_images.join("\n  ")}\n"
+
+    extra_images = images_on_disk - expected_images
+    assert_equal 0, extra_images.size, "these images don't match any emojis:\n  #{extra_images.join("\n  ")}\n"
+  end
+
+  test "images on disk have no duplicates" do
+    hashes = Hash.new { |h,k| h[k] = [] }
+    Dir["#{Emoji.images_path}/**/*.png"].each do |image_file|
+      checksum = Digest::MD5.file(image_file).to_s
+      hashes[checksum] << image_file
+    end
+
+    hashes.each do |checksum, filenames|
+      assert_equal 1, filenames.length,
+        "These images share the same checksum: " +
+        filenames.map {|f| f.sub(Emoji.images_path, '') }.join(', ')
+    end
+  end
+
+  test "images on disk are 64x64" do
+    mismatches = []
+    Dir["#{Emoji.images_path}/**/*.png"].each do |image_file|
+      width, height = png_dimensions(image_file)
+      unless width == 64 && height == 64
+        mismatches << "%s: %dx%d" % [
+          image_file.sub(Emoji.images_path, ''),
+          width,
+          height
+        ]
+      end
+    end
+    assert_equal ["/emoji/shipit.png: 75x75"], mismatches
+  end
+
+  test "missing or incorrect unicodes" do
+    missing = source_unicode_emoji - Emoji.all.flat_map(&:unicode_aliases)
+    assert_equal 0, missing.size, missing_unicodes_message(missing)
+  end
+
+  private
+    def missing_unicodes_message(missing)
+      "Missing or incorrect unicodes:\n".tap do |message|
+        missing.each do |raw|
+          emoji = Emoji::Character.new(nil)
+          emoji.add_unicode_alias(raw)
+          message << "#{emoji.raw}  (#{emoji.hex_inspect})"
+          codepoint = emoji.raw.codepoints[0]
+          if candidate = Emoji.all.detect { |e| !e.custom? && e.raw.codepoints[0] == codepoint }
+            message << " - might be #{candidate.raw}  (#{candidate.hex_inspect}) named #{candidate.name}"
+          end
+          message << "\n"
+        end
+      end
+    end
+
+    def db
+      @db ||= JSON.parse(File.read(File.expand_path("../../db/Category-Emoji.json", __FILE__)))
+    end
+
+    def source_unicode_emoji
+      @source_unicode_emoji ||= begin
+        # Chars from OS X palette which must have VARIATION SELECTOR-16 to render:
+        specials = ["🈷", "🈂", "🅰", "🅱", "🅾", "©", "®", "™", "〰"]
+        db["EmojiDataArray"]
+          .flat_map { |data| data["CVCategoryData"]["Data"].split(",") }
+          .map { |raw| specials.include?(raw) ? "#{raw}\u{fe0f}" : raw }
+      end
+    end
+
+    def png_dimensions(file)
+      png = File.open(file, "rb") { |f| f.read(1024) }
+      png.unpack("x16N2")
+    end
+end
diff --git a/test/test_helper.rb b/test/test_helper.rb
new file mode 100644
index 0000000..6c0ed35
--- /dev/null
+++ b/test/test_helper.rb
@@ -0,0 +1,8 @@
+require 'minitest/autorun'
+require 'gemoji'
+
+class TestCase < MiniTest::Test
+  def self.test(name, &block)
+    define_method(:"test_#{name.inspect}", &block)
+  end
+end

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ruby-extras/ruby-gemoji.git



More information about the Pkg-ruby-extras-commits mailing list