diff --git a/resources/emoji-test.txt b/resources/emoji-test.txt
index dd54933661c85c7337a71a35eee93e9094ba2fe2..87d093d646bd052b61ae152da738e18c10fdc93f 100644
--- a/resources/emoji-test.txt
+++ b/resources/emoji-test.txt
@@ -1,13 +1,13 @@
 # emoji-test.txt
-# Date: 2021-08-26, 17:22:23 GMT
-# © 2021 Unicode®, Inc.
+# Date: 2022-08-12, 20:24:39 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Emoji Keyboard/Display Test Data for UTS #51
-# Version: 14.0
+# Version: 15.0
 #
-# For documentation and usage, see http://www.unicode.org/reports/tr51
+# For documentation and usage, see https://www.unicode.org/reports/tr51
 #
 # This file provides data for testing which emoji forms should be in keyboards and which should also be displayed/processed.
 # Format: code points; status # emoji name
@@ -92,6 +92,7 @@
 1F62C                                                  ; fully-qualified     # 😬 E1.0 grimacing face
 1F62E 200D 1F4A8                                       ; fully-qualified     # 😮‍💨 E13.1 face exhaling
 1F925                                                  ; fully-qualified     # 🤥 E3.0 lying face
+1FAE8                                                  ; fully-qualified     # 🫨 E15.0 shaking face
 
 # subgroup: face-sleepy
 1F60C                                                  ; fully-qualified     # 😌 E0.6 relieved face
@@ -155,7 +156,7 @@
 
 # subgroup: face-negative
 1F624                                                  ; fully-qualified     # 😤 E0.6 face with steam from nose
-1F621                                                  ; fully-qualified     # 😡 E0.6 pouting face
+1F621                                                  ; fully-qualified     # 😡 E0.6 enraged face
 1F620                                                  ; fully-qualified     # 😠 E0.6 angry face
 1F92C                                                  ; fully-qualified     # 🤬 E5.0 face with symbols on mouth
 1F608                                                  ; fully-qualified     # 😈 E1.0 smiling face with horns
@@ -190,8 +191,7 @@
 1F649                                                  ; fully-qualified     # 🙉 E0.6 hear-no-evil monkey
 1F64A                                                  ; fully-qualified     # 🙊 E0.6 speak-no-evil monkey
 
-# subgroup: emotion
-1F48B                                                  ; fully-qualified     # 💋 E0.6 kiss mark
+# subgroup: heart
 1F48C                                                  ; fully-qualified     # 💌 E0.6 love letter
 1F498                                                  ; fully-qualified     # 💘 E0.6 heart with arrow
 1F49D                                                  ; fully-qualified     # 💝 E0.6 heart with ribbon
@@ -210,14 +210,20 @@
 2764 200D 1FA79                                        ; unqualified         # ❤‍🩹 E13.1 mending heart
 2764 FE0F                                              ; fully-qualified     # ❤️ E0.6 red heart
 2764                                                   ; unqualified         # ❤ E0.6 red heart
+1FA77                                                  ; fully-qualified     # 🩷 E15.0 pink heart
 1F9E1                                                  ; fully-qualified     # 🧡 E5.0 orange heart
 1F49B                                                  ; fully-qualified     # 💛 E0.6 yellow heart
 1F49A                                                  ; fully-qualified     # 💚 E0.6 green heart
 1F499                                                  ; fully-qualified     # 💙 E0.6 blue heart
+1FA75                                                  ; fully-qualified     # 🩵 E15.0 light blue heart
 1F49C                                                  ; fully-qualified     # 💜 E0.6 purple heart
 1F90E                                                  ; fully-qualified     # 🤎 E12.0 brown heart
 1F5A4                                                  ; fully-qualified     # 🖤 E3.0 black heart
+1FA76                                                  ; fully-qualified     # 🩶 E15.0 grey heart
 1F90D                                                  ; fully-qualified     # 🤍 E12.0 white heart
+
+# subgroup: emotion
+1F48B                                                  ; fully-qualified     # 💋 E0.6 kiss mark
 1F4AF                                                  ; fully-qualified     # 💯 E0.6 hundred points
 1F4A2                                                  ; fully-qualified     # 💢 E0.6 anger symbol
 1F4A5                                                  ; fully-qualified     # 💥 E0.6 collision
@@ -226,21 +232,20 @@
 1F4A8                                                  ; fully-qualified     # 💨 E0.6 dashing away
 1F573 FE0F                                             ; fully-qualified     # 🕳️ E0.7 hole
 1F573                                                  ; unqualified         # 🕳 E0.7 hole
-1F4A3                                                  ; fully-qualified     # 💣 E0.6 bomb
 1F4AC                                                  ; fully-qualified     # 💬 E0.6 speech balloon
 1F441 FE0F 200D 1F5E8 FE0F                             ; fully-qualified     # 👁️‍🗨️ E2.0 eye in speech bubble
 1F441 200D 1F5E8 FE0F                                  ; unqualified         # 👁‍🗨️ E2.0 eye in speech bubble
-1F441 FE0F 200D 1F5E8                                  ; unqualified         # 👁️‍🗨 E2.0 eye in speech bubble
+1F441 FE0F 200D 1F5E8                                  ; minimally-qualified # 👁️‍🗨 E2.0 eye in speech bubble
 1F441 200D 1F5E8                                       ; unqualified         # 👁‍🗨 E2.0 eye in speech bubble
 1F5E8 FE0F                                             ; fully-qualified     # 🗨️ E2.0 left speech bubble
 1F5E8                                                  ; unqualified         # 🗨 E2.0 left speech bubble
 1F5EF FE0F                                             ; fully-qualified     # 🗯️ E0.7 right anger bubble
 1F5EF                                                  ; unqualified         # 🗯 E0.7 right anger bubble
 1F4AD                                                  ; fully-qualified     # 💭 E1.0 thought balloon
-1F4A4                                                  ; fully-qualified     # 💤 E0.6 zzz
+1F4A4                                                  ; fully-qualified     # 💤 E0.6 ZZZ
 
-# Smileys & Emotion subtotal:		177
-# Smileys & Emotion subtotal:		177	w/o modifiers
+# Smileys & Emotion subtotal:		180
+# Smileys & Emotion subtotal:		180	w/o modifiers
 
 # group: People & Body
 
@@ -300,6 +305,18 @@
 1FAF4 1F3FD                                            ; fully-qualified     # 🫴🏽 E14.0 palm up hand: medium skin tone
 1FAF4 1F3FE                                            ; fully-qualified     # 🫴🏾 E14.0 palm up hand: medium-dark skin tone
 1FAF4 1F3FF                                            ; fully-qualified     # 🫴🏿 E14.0 palm up hand: dark skin tone
+1FAF7                                                  ; fully-qualified     # 🫷 E15.0 leftwards pushing hand
+1FAF7 1F3FB                                            ; fully-qualified     # 🫷🏻 E15.0 leftwards pushing hand: light skin tone
+1FAF7 1F3FC                                            ; fully-qualified     # 🫷🏼 E15.0 leftwards pushing hand: medium-light skin tone
+1FAF7 1F3FD                                            ; fully-qualified     # 🫷🏽 E15.0 leftwards pushing hand: medium skin tone
+1FAF7 1F3FE                                            ; fully-qualified     # 🫷🏾 E15.0 leftwards pushing hand: medium-dark skin tone
+1FAF7 1F3FF                                            ; fully-qualified     # 🫷🏿 E15.0 leftwards pushing hand: dark skin tone
+1FAF8                                                  ; fully-qualified     # 🫸 E15.0 rightwards pushing hand
+1FAF8 1F3FB                                            ; fully-qualified     # 🫸🏻 E15.0 rightwards pushing hand: light skin tone
+1FAF8 1F3FC                                            ; fully-qualified     # 🫸🏼 E15.0 rightwards pushing hand: medium-light skin tone
+1FAF8 1F3FD                                            ; fully-qualified     # 🫸🏽 E15.0 rightwards pushing hand: medium skin tone
+1FAF8 1F3FE                                            ; fully-qualified     # 🫸🏾 E15.0 rightwards pushing hand: medium-dark skin tone
+1FAF8 1F3FF                                            ; fully-qualified     # 🫸🏿 E15.0 rightwards pushing hand: dark skin tone
 
 # subgroup: hand-fingers-partial
 1F44C                                                  ; fully-qualified     # 👌 E0.6 OK hand
@@ -473,11 +490,11 @@
 1F932 1F3FE                                            ; fully-qualified     # 🤲🏾 E5.0 palms up together: medium-dark skin tone
 1F932 1F3FF                                            ; fully-qualified     # 🤲🏿 E5.0 palms up together: dark skin tone
 1F91D                                                  ; fully-qualified     # 🤝 E3.0 handshake
-1F91D 1F3FB                                            ; fully-qualified     # 🤝🏻 E3.0 handshake: light skin tone
-1F91D 1F3FC                                            ; fully-qualified     # 🤝🏼 E3.0 handshake: medium-light skin tone
-1F91D 1F3FD                                            ; fully-qualified     # 🤝🏽 E3.0 handshake: medium skin tone
-1F91D 1F3FE                                            ; fully-qualified     # 🤝🏾 E3.0 handshake: medium-dark skin tone
-1F91D 1F3FF                                            ; fully-qualified     # 🤝🏿 E3.0 handshake: dark skin tone
+1F91D 1F3FB                                            ; fully-qualified     # 🤝🏻 E14.0 handshake: light skin tone
+1F91D 1F3FC                                            ; fully-qualified     # 🤝🏼 E14.0 handshake: medium-light skin tone
+1F91D 1F3FD                                            ; fully-qualified     # 🤝🏽 E14.0 handshake: medium skin tone
+1F91D 1F3FE                                            ; fully-qualified     # 🤝🏾 E14.0 handshake: medium-dark skin tone
+1F91D 1F3FF                                            ; fully-qualified     # 🤝🏿 E14.0 handshake: dark skin tone
 1FAF1 1F3FB 200D 1FAF2 1F3FC                           ; fully-qualified     # 🫱🏻‍🫲🏼 E14.0 handshake: light skin tone, medium-light skin tone
 1FAF1 1F3FB 200D 1FAF2 1F3FD                           ; fully-qualified     # 🫱🏻‍🫲🏽 E14.0 handshake: light skin tone, medium skin tone
 1FAF1 1F3FB 200D 1FAF2 1F3FE                           ; fully-qualified     # 🫱🏻‍🫲🏾 E14.0 handshake: light skin tone, medium-dark skin tone
@@ -1455,7 +1472,7 @@
 1F575 1F3FF                                            ; fully-qualified     # 🕵🏿 E2.0 detective: dark skin tone
 1F575 FE0F 200D 2642 FE0F                              ; fully-qualified     # 🕵️‍♂️ E4.0 man detective
 1F575 200D 2642 FE0F                                   ; unqualified         # 🕵‍♂️ E4.0 man detective
-1F575 FE0F 200D 2642                                   ; unqualified         # 🕵️‍♂ E4.0 man detective
+1F575 FE0F 200D 2642                                   ; minimally-qualified # 🕵️‍♂ E4.0 man detective
 1F575 200D 2642                                        ; unqualified         # 🕵‍♂ E4.0 man detective
 1F575 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🕵🏻‍♂️ E4.0 man detective: light skin tone
 1F575 1F3FB 200D 2642                                  ; minimally-qualified # 🕵🏻‍♂ E4.0 man detective: light skin tone
@@ -1469,7 +1486,7 @@
 1F575 1F3FF 200D 2642                                  ; minimally-qualified # 🕵🏿‍♂ E4.0 man detective: dark skin tone
 1F575 FE0F 200D 2640 FE0F                              ; fully-qualified     # 🕵️‍♀️ E4.0 woman detective
 1F575 200D 2640 FE0F                                   ; unqualified         # 🕵‍♀️ E4.0 woman detective
-1F575 FE0F 200D 2640                                   ; unqualified         # 🕵️‍♀ E4.0 woman detective
+1F575 FE0F 200D 2640                                   ; minimally-qualified # 🕵️‍♀ E4.0 woman detective
 1F575 200D 2640                                        ; unqualified         # 🕵‍♀ E4.0 woman detective
 1F575 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🕵🏻‍♀️ E4.0 woman detective: light skin tone
 1F575 1F3FB 200D 2640                                  ; minimally-qualified # 🕵🏻‍♀ E4.0 woman detective: light skin tone
@@ -2302,7 +2319,7 @@
 1F3CC 1F3FF                                            ; fully-qualified     # 🏌🏿 E4.0 person golfing: dark skin tone
 1F3CC FE0F 200D 2642 FE0F                              ; fully-qualified     # 🏌️‍♂️ E4.0 man golfing
 1F3CC 200D 2642 FE0F                                   ; unqualified         # 🏌‍♂️ E4.0 man golfing
-1F3CC FE0F 200D 2642                                   ; unqualified         # 🏌️‍♂ E4.0 man golfing
+1F3CC FE0F 200D 2642                                   ; minimally-qualified # 🏌️‍♂ E4.0 man golfing
 1F3CC 200D 2642                                        ; unqualified         # 🏌‍♂ E4.0 man golfing
 1F3CC 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🏌🏻‍♂️ E4.0 man golfing: light skin tone
 1F3CC 1F3FB 200D 2642                                  ; minimally-qualified # 🏌🏻‍♂ E4.0 man golfing: light skin tone
@@ -2316,7 +2333,7 @@
 1F3CC 1F3FF 200D 2642                                  ; minimally-qualified # 🏌🏿‍♂ E4.0 man golfing: dark skin tone
 1F3CC FE0F 200D 2640 FE0F                              ; fully-qualified     # 🏌️‍♀️ E4.0 woman golfing
 1F3CC 200D 2640 FE0F                                   ; unqualified         # 🏌‍♀️ E4.0 woman golfing
-1F3CC FE0F 200D 2640                                   ; unqualified         # 🏌️‍♀ E4.0 woman golfing
+1F3CC FE0F 200D 2640                                   ; minimally-qualified # 🏌️‍♀ E4.0 woman golfing
 1F3CC 200D 2640                                        ; unqualified         # 🏌‍♀ E4.0 woman golfing
 1F3CC 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🏌🏻‍♀️ E4.0 woman golfing: light skin tone
 1F3CC 1F3FB 200D 2640                                  ; minimally-qualified # 🏌🏻‍♀ E4.0 woman golfing: light skin tone
@@ -2427,7 +2444,7 @@
 26F9 1F3FF                                             ; fully-qualified     # ⛹🏿 E2.0 person bouncing ball: dark skin tone
 26F9 FE0F 200D 2642 FE0F                               ; fully-qualified     # ⛹️‍♂️ E4.0 man bouncing ball
 26F9 200D 2642 FE0F                                    ; unqualified         # ⛹‍♂️ E4.0 man bouncing ball
-26F9 FE0F 200D 2642                                    ; unqualified         # ⛹️‍♂ E4.0 man bouncing ball
+26F9 FE0F 200D 2642                                    ; minimally-qualified # ⛹️‍♂ E4.0 man bouncing ball
 26F9 200D 2642                                         ; unqualified         # ⛹‍♂ E4.0 man bouncing ball
 26F9 1F3FB 200D 2642 FE0F                              ; fully-qualified     # ⛹🏻‍♂️ E4.0 man bouncing ball: light skin tone
 26F9 1F3FB 200D 2642                                   ; minimally-qualified # ⛹🏻‍♂ E4.0 man bouncing ball: light skin tone
@@ -2441,7 +2458,7 @@
 26F9 1F3FF 200D 2642                                   ; minimally-qualified # ⛹🏿‍♂ E4.0 man bouncing ball: dark skin tone
 26F9 FE0F 200D 2640 FE0F                               ; fully-qualified     # ⛹️‍♀️ E4.0 woman bouncing ball
 26F9 200D 2640 FE0F                                    ; unqualified         # ⛹‍♀️ E4.0 woman bouncing ball
-26F9 FE0F 200D 2640                                    ; unqualified         # ⛹️‍♀ E4.0 woman bouncing ball
+26F9 FE0F 200D 2640                                    ; minimally-qualified # ⛹️‍♀ E4.0 woman bouncing ball
 26F9 200D 2640                                         ; unqualified         # ⛹‍♀ E4.0 woman bouncing ball
 26F9 1F3FB 200D 2640 FE0F                              ; fully-qualified     # ⛹🏻‍♀️ E4.0 woman bouncing ball: light skin tone
 26F9 1F3FB 200D 2640                                   ; minimally-qualified # ⛹🏻‍♀ E4.0 woman bouncing ball: light skin tone
@@ -2462,7 +2479,7 @@
 1F3CB 1F3FF                                            ; fully-qualified     # 🏋🏿 E2.0 person lifting weights: dark skin tone
 1F3CB FE0F 200D 2642 FE0F                              ; fully-qualified     # 🏋️‍♂️ E4.0 man lifting weights
 1F3CB 200D 2642 FE0F                                   ; unqualified         # 🏋‍♂️ E4.0 man lifting weights
-1F3CB FE0F 200D 2642                                   ; unqualified         # 🏋️‍♂ E4.0 man lifting weights
+1F3CB FE0F 200D 2642                                   ; minimally-qualified # 🏋️‍♂ E4.0 man lifting weights
 1F3CB 200D 2642                                        ; unqualified         # 🏋‍♂ E4.0 man lifting weights
 1F3CB 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🏋🏻‍♂️ E4.0 man lifting weights: light skin tone
 1F3CB 1F3FB 200D 2642                                  ; minimally-qualified # 🏋🏻‍♂ E4.0 man lifting weights: light skin tone
@@ -2476,7 +2493,7 @@
 1F3CB 1F3FF 200D 2642                                  ; minimally-qualified # 🏋🏿‍♂ E4.0 man lifting weights: dark skin tone
 1F3CB FE0F 200D 2640 FE0F                              ; fully-qualified     # 🏋️‍♀️ E4.0 woman lifting weights
 1F3CB 200D 2640 FE0F                                   ; unqualified         # 🏋‍♀️ E4.0 woman lifting weights
-1F3CB FE0F 200D 2640                                   ; unqualified         # 🏋️‍♀ E4.0 woman lifting weights
+1F3CB FE0F 200D 2640                                   ; minimally-qualified # 🏋️‍♀ E4.0 woman lifting weights
 1F3CB 200D 2640                                        ; unqualified         # 🏋‍♀ E4.0 woman lifting weights
 1F3CB 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🏋🏻‍♀️ E4.0 woman lifting weights: light skin tone
 1F3CB 1F3FB 200D 2640                                  ; minimally-qualified # 🏋🏻‍♀ E4.0 woman lifting weights: light skin tone
@@ -3262,8 +3279,8 @@
 1FAC2                                                  ; fully-qualified     # 🫂 E13.0 people hugging
 1F463                                                  ; fully-qualified     # 👣 E0.6 footprints
 
-# People & Body subtotal:		2986
-# People & Body subtotal:		506	w/o modifiers
+# People & Body subtotal:		2998
+# People & Body subtotal:		508	w/o modifiers
 
 # group: Component
 
@@ -3306,6 +3323,8 @@
 1F405                                                  ; fully-qualified     # 🐅 E1.0 tiger
 1F406                                                  ; fully-qualified     # 🐆 E1.0 leopard
 1F434                                                  ; fully-qualified     # 🐴 E0.6 horse face
+1FACE                                                  ; fully-qualified     # 🫎 E15.0 moose
+1FACF                                                  ; fully-qualified     # 🫏 E15.0 donkey
 1F40E                                                  ; fully-qualified     # 🐎 E0.6 horse
 1F984                                                  ; fully-qualified     # 🦄 E1.0 unicorn
 1F993                                                  ; fully-qualified     # 🦓 E5.0 zebra
@@ -3373,6 +3392,9 @@
 1F9A9                                                  ; fully-qualified     # 🦩 E12.0 flamingo
 1F99A                                                  ; fully-qualified     # 🦚 E11.0 peacock
 1F99C                                                  ; fully-qualified     # 🦜 E11.0 parrot
+1FABD                                                  ; fully-qualified     # 🪽 E15.0 wing
+1F426 200D 2B1B                                        ; fully-qualified     # 🐦‍⬛ E15.0 black bird
+1FABF                                                  ; fully-qualified     # 🪿 E15.0 goose
 
 # subgroup: animal-amphibian
 1F438                                                  ; fully-qualified     # 🐸 E0.6 frog
@@ -3399,6 +3421,7 @@
 1F419                                                  ; fully-qualified     # 🐙 E0.6 octopus
 1F41A                                                  ; fully-qualified     # 🐚 E0.6 spiral shell
 1FAB8                                                  ; fully-qualified     # 🪸 E14.0 coral
+1FABC                                                  ; fully-qualified     # 🪼 E15.0 jellyfish
 
 # subgroup: animal-bug
 1F40C                                                  ; fully-qualified     # 🐌 E0.6 snail
@@ -3433,6 +3456,7 @@
 1F33B                                                  ; fully-qualified     # 🌻 E0.6 sunflower
 1F33C                                                  ; fully-qualified     # 🌼 E0.6 blossom
 1F337                                                  ; fully-qualified     # 🌷 E0.6 tulip
+1FABB                                                  ; fully-qualified     # 🪻 E15.0 hyacinth
 
 # subgroup: plant-other
 1F331                                                  ; fully-qualified     # 🌱 E0.6 seedling
@@ -3451,9 +3475,10 @@
 1F343                                                  ; fully-qualified     # 🍃 E0.6 leaf fluttering in wind
 1FAB9                                                  ; fully-qualified     # 🪹 E14.0 empty nest
 1FABA                                                  ; fully-qualified     # 🪺 E14.0 nest with eggs
+1F344                                                  ; fully-qualified     # 🍄 E0.6 mushroom
 
-# Animals & Nature subtotal:		151
-# Animals & Nature subtotal:		151	w/o modifiers
+# Animals & Nature subtotal:		159
+# Animals & Nature subtotal:		159	w/o modifiers
 
 # group: Food & Drink
 
@@ -3492,10 +3517,11 @@
 1F966                                                  ; fully-qualified     # 🥦 E5.0 broccoli
 1F9C4                                                  ; fully-qualified     # 🧄 E12.0 garlic
 1F9C5                                                  ; fully-qualified     # 🧅 E12.0 onion
-1F344                                                  ; fully-qualified     # 🍄 E0.6 mushroom
 1F95C                                                  ; fully-qualified     # 🥜 E3.0 peanuts
 1FAD8                                                  ; fully-qualified     # 🫘 E14.0 beans
 1F330                                                  ; fully-qualified     # 🌰 E0.6 chestnut
+1FADA                                                  ; fully-qualified     # 🫚 E15.0 ginger root
+1FADB                                                  ; fully-qualified     # 🫛 E15.0 pea pod
 
 # subgroup: food-prepared
 1F35E                                                  ; fully-qualified     # 🍞 E0.6 bread
@@ -3607,8 +3633,8 @@
 1FAD9                                                  ; fully-qualified     # 🫙 E14.0 jar
 1F3FA                                                  ; fully-qualified     # 🏺 E1.0 amphora
 
-# Food & Drink subtotal:		134
-# Food & Drink subtotal:		134	w/o modifiers
+# Food & Drink subtotal:		135
+# Food & Drink subtotal:		135	w/o modifiers
 
 # group: Travel & Places
 
@@ -3974,11 +4000,10 @@
 1F3AF                                                  ; fully-qualified     # 🎯 E0.6 bullseye
 1FA80                                                  ; fully-qualified     # 🪀 E12.0 yo-yo
 1FA81                                                  ; fully-qualified     # 🪁 E12.0 kite
+1F52B                                                  ; fully-qualified     # 🔫 E0.6 water pistol
 1F3B1                                                  ; fully-qualified     # 🎱 E0.6 pool 8 ball
 1F52E                                                  ; fully-qualified     # 🔮 E0.6 crystal ball
 1FA84                                                  ; fully-qualified     # 🪄 E13.0 magic wand
-1F9FF                                                  ; fully-qualified     # 🧿 E11.0 nazar amulet
-1FAAC                                                  ; fully-qualified     # 🪬 E14.0 hamsa
 1F3AE                                                  ; fully-qualified     # 🎮 E0.6 video game
 1F579 FE0F                                             ; fully-qualified     # 🕹️ E0.7 joystick
 1F579                                                  ; unqualified         # 🕹 E0.7 joystick
@@ -4013,8 +4038,8 @@
 1F9F6                                                  ; fully-qualified     # 🧶 E11.0 yarn
 1FAA2                                                  ; fully-qualified     # 🪢 E13.0 knot
 
-# Activities subtotal:		97
-# Activities subtotal:		97	w/o modifiers
+# Activities subtotal:		96
+# Activities subtotal:		96	w/o modifiers
 
 # group: Objects
 
@@ -4040,6 +4065,7 @@
 1FA73                                                  ; fully-qualified     # 🩳 E12.0 shorts
 1F459                                                  ; fully-qualified     # 👙 E0.6 bikini
 1F45A                                                  ; fully-qualified     # 👚 E0.6 woman’s clothes
+1FAAD                                                  ; fully-qualified     # 🪭 E15.0 folding hand fan
 1F45B                                                  ; fully-qualified     # 👛 E0.6 purse
 1F45C                                                  ; fully-qualified     # 👜 E0.6 handbag
 1F45D                                                  ; fully-qualified     # 👝 E0.6 clutch bag
@@ -4055,6 +4081,7 @@
 1F461                                                  ; fully-qualified     # 👡 E0.6 woman’s sandal
 1FA70                                                  ; fully-qualified     # 🩰 E12.0 ballet shoes
 1F462                                                  ; fully-qualified     # 👢 E0.6 woman’s boot
+1FAAE                                                  ; fully-qualified     # 🪮 E15.0 hair pick
 1F451                                                  ; fully-qualified     # 👑 E0.6 crown
 1F452                                                  ; fully-qualified     # 👒 E0.6 woman’s hat
 1F3A9                                                  ; fully-qualified     # 🎩 E0.6 top hat
@@ -4103,6 +4130,8 @@
 1FA95                                                  ; fully-qualified     # 🪕 E12.0 banjo
 1F941                                                  ; fully-qualified     # 🥁 E3.0 drum
 1FA98                                                  ; fully-qualified     # 🪘 E13.0 long drum
+1FA87                                                  ; fully-qualified     # 🪇 E15.0 maracas
+1FA88                                                  ; fully-qualified     # 🪈 E15.0 flute
 
 # subgroup: phone
 1F4F1                                                  ; fully-qualified     # 📱 E0.6 mobile phone
@@ -4275,7 +4304,7 @@
 1F5E1                                                  ; unqualified         # 🗡 E0.7 dagger
 2694 FE0F                                              ; fully-qualified     # ⚔️ E1.0 crossed swords
 2694                                                   ; unqualified         # âš” E1.0 crossed swords
-1F52B                                                  ; fully-qualified     # 🔫 E0.6 water pistol
+1F4A3                                                  ; fully-qualified     # 💣 E0.6 bomb
 1FA83                                                  ; fully-qualified     # 🪃 E13.0 boomerang
 1F3F9                                                  ; fully-qualified     # 🏹 E1.0 bow and arrow
 1F6E1 FE0F                                             ; fully-qualified     # 🛡️ E0.7 shield
@@ -4354,12 +4383,14 @@
 1FAA6                                                  ; fully-qualified     # 🪦 E13.0 headstone
 26B1 FE0F                                              ; fully-qualified     # ⚱️ E1.0 funeral urn
 26B1                                                   ; unqualified         # âš± E1.0 funeral urn
+1F9FF                                                  ; fully-qualified     # 🧿 E11.0 nazar amulet
+1FAAC                                                  ; fully-qualified     # 🪬 E14.0 hamsa
 1F5FF                                                  ; fully-qualified     # 🗿 E0.6 moai
 1FAA7                                                  ; fully-qualified     # 🪧 E13.0 placard
 1FAAA                                                  ; fully-qualified     # 🪪 E14.0 identification card
 
-# Objects subtotal:		304
-# Objects subtotal:		304	w/o modifiers
+# Objects subtotal:		310
+# Objects subtotal:		310	w/o modifiers
 
 # group: Symbols
 
@@ -4455,6 +4486,7 @@
 262E                                                   ; unqualified         # ☮ E1.0 peace symbol
 1F54E                                                  ; fully-qualified     # 🕎 E1.0 menorah
 1F52F                                                  ; fully-qualified     # 🔯 E0.6 dotted six-pointed star
+1FAAF                                                  ; fully-qualified     # 🪯 E15.0 khanda
 
 # subgroup: zodiac
 2648                                                   ; fully-qualified     # ♈ E0.6 Aries
@@ -4503,6 +4535,7 @@
 1F505                                                  ; fully-qualified     # 🔅 E1.0 dim button
 1F506                                                  ; fully-qualified     # 🔆 E1.0 bright button
 1F4F6                                                  ; fully-qualified     # 📶 E0.6 antenna bars
+1F6DC                                                  ; fully-qualified     # 🛜 E15.0 wireless
 1F4F3                                                  ; fully-qualified     # 📳 E0.6 vibration mode
 1F4F4                                                  ; fully-qualified     # 📴 E0.6 mobile phone off
 
@@ -4693,8 +4726,8 @@
 1F533                                                  ; fully-qualified     # 🔳 E0.6 white square button
 1F532                                                  ; fully-qualified     # 🔲 E0.6 black square button
 
-# Symbols subtotal:		302
-# Symbols subtotal:		302	w/o modifiers
+# Symbols subtotal:		304
+# Symbols subtotal:		304	w/o modifiers
 
 # group: Flags
 
@@ -4709,7 +4742,7 @@
 1F3F3 200D 1F308                                       ; unqualified         # 🏳‍🌈 E4.0 rainbow flag
 1F3F3 FE0F 200D 26A7 FE0F                              ; fully-qualified     # 🏳️‍⚧️ E13.0 transgender flag
 1F3F3 200D 26A7 FE0F                                   ; unqualified         # 🏳‍⚧️ E13.0 transgender flag
-1F3F3 FE0F 200D 26A7                                   ; unqualified         # 🏳️‍⚧ E13.0 transgender flag
+1F3F3 FE0F 200D 26A7                                   ; minimally-qualified # 🏳️‍⚧ E13.0 transgender flag
 1F3F3 200D 26A7                                        ; unqualified         # 🏳‍⚧ E13.0 transgender flag
 1F3F4 200D 2620 FE0F                                   ; fully-qualified     # 🏴‍☠️ E11.0 pirate flag
 1F3F4 200D 2620                                        ; minimally-qualified # 🏴‍☠ E11.0 pirate flag
@@ -4983,9 +5016,9 @@
 # Flags subtotal:		275	w/o modifiers
 
 # Status Counts
-# fully-qualified : 3624
-# minimally-qualified : 817
-# unqualified : 252
+# fully-qualified : 3655
+# minimally-qualified : 827
+# unqualified : 242
 # component : 9
 
 #EOF
diff --git a/scripts/emoji_codegen.py b/scripts/emoji_codegen.py
index a07584541b0c53c53723165c7110bccddfb415ac..7e4f4702ff1e8a7bacc29dce8cf5ba30e8fc0811 100755
--- a/scripts/emoji_codegen.py
+++ b/scripts/emoji_codegen.py
@@ -13,8 +13,9 @@ class Emoji(object):
         self.unicodename = unicodename
 
 def generate_qml_list(**kwargs):
+    entrycount = sum([len(c[1]) for c in kwargs.items()])
     tmpl = Template('''
-const std::array<Emoji, {{ sum([len(c[1]) for c in kwargs.items()]) }}> emoji::Provider::emoji = {
+const std::array<Emoji, {{ entrycount }} > emoji::Provider::emoji = {
     {%- for c in kwargs.items() %}
     // {{ c[0].capitalize() }}
     {%- for e in c[1] %}
@@ -23,7 +24,7 @@ const std::array<Emoji, {{ sum([len(c[1]) for c in kwargs.items()]) }}> emoji::P
     {%- endfor %}
 };
     ''')
-    d = dict(kwargs=kwargs)
+    d = dict(kwargs=kwargs, entrycount=entrycount)
     print(tmpl.render(d))
 if __name__ == '__main__':
     if len(sys.argv) < 3:
diff --git a/src/emoji/Provider.cpp b/src/emoji/Provider.cpp
index f98e5d343126b4c9f75ca2733b748549055fb394..41c254d805fa073c1e807c3181e228556b27ba85 100644
--- a/src/emoji/Provider.cpp
+++ b/src/emoji/Provider.cpp
@@ -7,7 +7,7 @@
 
 using namespace emoji;
 
-const std::array<Emoji, 3650> emoji::Provider::emoji = {
+const std::array<Emoji, 3655> emoji::Provider::emoji = {
   // People
   Emoji{QStringLiteral(u"\U0001F600"),
         QStringLiteral(u"grinning"),
@@ -205,6 +205,10 @@ const std::array<Emoji, 3650> emoji::Provider::emoji = {
         QStringLiteral(u"lying"),
         QStringLiteral(u"lying face"),
         emoji::Emoji::Category::People},
+  Emoji{QStringLiteral(u"\U0001FAE8"),
+        QStringLiteral(u"shaking"),
+        QStringLiteral(u"shaking face"),
+        emoji::Emoji::Category::People},
   Emoji{QStringLiteral(u"\U0001F60C"),
         QStringLiteral(u"relieved"),
         QStringLiteral(u"relieved face"),
@@ -406,8 +410,8 @@ const std::array<Emoji, 3650> emoji::Provider::emoji = {
         QStringLiteral(u"face with steam from nose"),
         emoji::Emoji::Category::People},
   Emoji{QStringLiteral(u"\U0001F621"),
-        QStringLiteral(u"pouting"),
-        QStringLiteral(u"pouting face"),
+        QStringLiteral(u"enraged"),
+        QStringLiteral(u"enraged face"),
         emoji::Emoji::Category::People},
   Emoji{QStringLiteral(u"\U0001F620"),
         QStringLiteral(u"angry"),
@@ -513,10 +517,6 @@ const std::array<Emoji, 3650> emoji::Provider::emoji = {
         QStringLiteral(u"speak_no_evil_monkey"),
         QStringLiteral(u"speak-no-evil monkey"),
         emoji::Emoji::Category::People},
-  Emoji{QStringLiteral(u"\U0001F48B"),
-        QStringLiteral(u"kiss_mark"),
-        QStringLiteral(u"kiss mark"),
-        emoji::Emoji::Category::People},
   Emoji{QStringLiteral(u"\U0001F48C"),
         QStringLiteral(u"love_letter"),
         QStringLiteral(u"love letter"),
@@ -573,6 +573,10 @@ const std::array<Emoji, 3650> emoji::Provider::emoji = {
         QStringLiteral(u"red_heart"),
         QStringLiteral(u"red heart"),
         emoji::Emoji::Category::People},
+  Emoji{QStringLiteral(u"\U0001FA77"),
+        QStringLiteral(u"pink_heart"),
+        QStringLiteral(u"pink heart"),
+        emoji::Emoji::Category::People},
   Emoji{QStringLiteral(u"\U0001F9E1"),
         QStringLiteral(u"orange_heart"),
         QStringLiteral(u"orange heart"),
@@ -589,6 +593,10 @@ const std::array<Emoji, 3650> emoji::Provider::emoji = {
         QStringLiteral(u"blue_heart"),
         QStringLiteral(u"blue heart"),
         emoji::Emoji::Category::People},
+  Emoji{QStringLiteral(u"\U0001FA75"),
+        QStringLiteral(u"light_blue_heart"),
+        QStringLiteral(u"light blue heart"),
+        emoji::Emoji::Category::People},
   Emoji{QStringLiteral(u"\U0001F49C"),
         QStringLiteral(u"purple_heart"),
         QStringLiteral(u"purple heart"),
@@ -601,10 +609,18 @@ const std::array<Emoji, 3650> emoji::Provider::emoji = {
         QStringLiteral(u"black_heart"),
         QStringLiteral(u"black heart"),
         emoji::Emoji::Category::People},
+  Emoji{QStringLiteral(u"\U0001FA76"),
+        QStringLiteral(u"grey_heart"),
+        QStringLiteral(u"grey heart"),
+        emoji::Emoji::Category::People},
   Emoji{QStringLiteral(u"\U0001F90D"),
         QStringLiteral(u"white_heart"),
         QStringLiteral(u"white heart"),
         emoji::Emoji::Category::People},
+  Emoji{QStringLiteral(u"\U0001F48B"),
+        QStringLiteral(u"kiss_mark"),
+        QStringLiteral(u"kiss mark"),
+        emoji::Emoji::Category::People},
   Emoji{QStringLiteral(u"\U0001F4AF"),
         QStringLiteral(u"100"),
         QStringLiteral(u"hundred points"),
@@ -633,10 +649,6 @@ const std::array<Emoji, 3650> emoji::Provider::emoji = {
         QStringLiteral(u"hole"),
         QStringLiteral(u"hole"),
         emoji::Emoji::Category::People},
-  Emoji{QStringLiteral(u"\U0001F4A3"),
-        QStringLiteral(u"bomb"),
-        QStringLiteral(u"bomb"),
-        emoji::Emoji::Category::People},
   Emoji{QStringLiteral(u"\U0001F4AC"),
         QStringLiteral(u"speech_balloon"),
         QStringLiteral(u"speech balloon"),
@@ -659,7 +671,7 @@ const std::array<Emoji, 3650> emoji::Provider::emoji = {
         emoji::Emoji::Category::People},
   Emoji{QStringLiteral(u"\U0001F4A4"),
         QStringLiteral(u"zzz"),
-        QStringLiteral(u"zzz"),
+        QStringLiteral(u"ZZZ"),
         emoji::Emoji::Category::People},
   Emoji{QStringLiteral(u"\U0001F44B"),
         QStringLiteral(u"wave"),
@@ -877,6 +889,54 @@ const std::array<Emoji, 3650> emoji::Provider::emoji = {
         QStringLiteral(u"palm_up_hand_dark_skin_tone"),
         QStringLiteral(u"palm up hand: dark skin tone"),
         emoji::Emoji::Category::People},
+  Emoji{QStringLiteral(u"\U0001FAF7"),
+        QStringLiteral(u"leftwards_pushing_hand"),
+        QStringLiteral(u"leftwards pushing hand"),
+        emoji::Emoji::Category::People},
+  Emoji{QStringLiteral(u"\U0001FAF7\U0001F3FB"),
+        QStringLiteral(u"leftwards_pushing_hand_light_skin_tone"),
+        QStringLiteral(u"leftwards pushing hand: light skin tone"),
+        emoji::Emoji::Category::People},
+  Emoji{QStringLiteral(u"\U0001FAF7\U0001F3FC"),
+        QStringLiteral(u"leftwards_pushing_hand_medium_light_skin_tone"),
+        QStringLiteral(u"leftwards pushing hand: medium-light skin tone"),
+        emoji::Emoji::Category::People},
+  Emoji{QStringLiteral(u"\U0001FAF7\U0001F3FD"),
+        QStringLiteral(u"leftwards_pushing_hand_medium_skin_tone"),
+        QStringLiteral(u"leftwards pushing hand: medium skin tone"),
+        emoji::Emoji::Category::People},
+  Emoji{QStringLiteral(u"\U0001FAF7\U0001F3FE"),
+        QStringLiteral(u"leftwards_pushing_hand_medium_dark_skin_tone"),
+        QStringLiteral(u"leftwards pushing hand: medium-dark skin tone"),
+        emoji::Emoji::Category::People},
+  Emoji{QStringLiteral(u"\U0001FAF7\U0001F3FF"),
+        QStringLiteral(u"leftwards_pushing_hand_dark_skin_tone"),
+        QStringLiteral(u"leftwards pushing hand: dark skin tone"),
+        emoji::Emoji::Category::People},
+  Emoji{QStringLiteral(u"\U0001FAF8"),
+        QStringLiteral(u"rightwards_pushing_hand"),
+        QStringLiteral(u"rightwards pushing hand"),
+        emoji::Emoji::Category::People},
+  Emoji{QStringLiteral(u"\U0001FAF8\U0001F3FB"),
+        QStringLiteral(u"rightwards_pushing_hand_light_skin_tone"),
+        QStringLiteral(u"rightwards pushing hand: light skin tone"),
+        emoji::Emoji::Category::People},
+  Emoji{QStringLiteral(u"\U0001FAF8\U0001F3FC"),
+        QStringLiteral(u"rightwards_pushing_hand_medium_light_skin_tone"),
+        QStringLiteral(u"rightwards pushing hand: medium-light skin tone"),
+        emoji::Emoji::Category::People},
+  Emoji{QStringLiteral(u"\U0001FAF8\U0001F3FD"),
+        QStringLiteral(u"rightwards_pushing_hand_medium_skin_tone"),
+        QStringLiteral(u"rightwards pushing hand: medium skin tone"),
+        emoji::Emoji::Category::People},
+  Emoji{QStringLiteral(u"\U0001FAF8\U0001F3FE"),
+        QStringLiteral(u"rightwards_pushing_hand_medium_dark_skin_tone"),
+        QStringLiteral(u"rightwards pushing hand: medium-dark skin tone"),
+        emoji::Emoji::Category::People},
+  Emoji{QStringLiteral(u"\U0001FAF8\U0001F3FF"),
+        QStringLiteral(u"rightwards_pushing_hand_dark_skin_tone"),
+        QStringLiteral(u"rightwards pushing hand: dark skin tone"),
+        emoji::Emoji::Category::People},
   Emoji{QStringLiteral(u"\U0001F44C"),
         QStringLiteral(u"ok_hand"),
         QStringLiteral(u"OK hand"),
@@ -9505,6 +9565,14 @@ const std::array<Emoji, 3650> emoji::Provider::emoji = {
         QStringLiteral(u"horse"),
         QStringLiteral(u"horse face"),
         emoji::Emoji::Category::Nature},
+  Emoji{QStringLiteral(u"\U0001FACE"),
+        QStringLiteral(u"moose"),
+        QStringLiteral(u"moose"),
+        emoji::Emoji::Category::Nature},
+  Emoji{QStringLiteral(u"\U0001FACF"),
+        QStringLiteral(u"donkey"),
+        QStringLiteral(u"donkey"),
+        emoji::Emoji::Category::Nature},
   Emoji{QStringLiteral(u"\U0001F40E"),
         QStringLiteral(u"horse"),
         QStringLiteral(u"horse"),
@@ -9753,6 +9821,18 @@ const std::array<Emoji, 3650> emoji::Provider::emoji = {
         QStringLiteral(u"parrot"),
         QStringLiteral(u"parrot"),
         emoji::Emoji::Category::Nature},
+  Emoji{QStringLiteral(u"\U0001FABD"),
+        QStringLiteral(u"wing"),
+        QStringLiteral(u"wing"),
+        emoji::Emoji::Category::Nature},
+  Emoji{QStringLiteral(u"\U0001F426\U0000200D\U00002B1B"),
+        QStringLiteral(u"black_bird"),
+        QStringLiteral(u"black bird"),
+        emoji::Emoji::Category::Nature},
+  Emoji{QStringLiteral(u"\U0001FABF"),
+        QStringLiteral(u"goose"),
+        QStringLiteral(u"goose"),
+        emoji::Emoji::Category::Nature},
   Emoji{QStringLiteral(u"\U0001F438"),
         QStringLiteral(u"frog"),
         QStringLiteral(u"frog"),
@@ -9833,6 +9913,10 @@ const std::array<Emoji, 3650> emoji::Provider::emoji = {
         QStringLiteral(u"coral"),
         QStringLiteral(u"coral"),
         emoji::Emoji::Category::Nature},
+  Emoji{QStringLiteral(u"\U0001FABC"),
+        QStringLiteral(u"jellyfish"),
+        QStringLiteral(u"jellyfish"),
+        emoji::Emoji::Category::Nature},
   Emoji{QStringLiteral(u"\U0001F40C"),
         QStringLiteral(u"snail"),
         QStringLiteral(u"snail"),
@@ -9941,6 +10025,10 @@ const std::array<Emoji, 3650> emoji::Provider::emoji = {
         QStringLiteral(u"tulip"),
         QStringLiteral(u"tulip"),
         emoji::Emoji::Category::Nature},
+  Emoji{QStringLiteral(u"\U0001FABB"),
+        QStringLiteral(u"hyacinth"),
+        QStringLiteral(u"hyacinth"),
+        emoji::Emoji::Category::Nature},
   Emoji{QStringLiteral(u"\U0001F331"),
         QStringLiteral(u"seedling"),
         QStringLiteral(u"seedling"),
@@ -10001,6 +10089,10 @@ const std::array<Emoji, 3650> emoji::Provider::emoji = {
         QStringLiteral(u"nest_with_eggs"),
         QStringLiteral(u"nest with eggs"),
         emoji::Emoji::Category::Nature},
+  Emoji{QStringLiteral(u"\U0001F344"),
+        QStringLiteral(u"mushroom"),
+        QStringLiteral(u"mushroom"),
+        emoji::Emoji::Category::Nature},
   // Food
   Emoji{QStringLiteral(u"\U0001F347"),
         QStringLiteral(u"grapes"),
@@ -10126,10 +10218,6 @@ const std::array<Emoji, 3650> emoji::Provider::emoji = {
         QStringLiteral(u"onion"),
         QStringLiteral(u"onion"),
         emoji::Emoji::Category::Food},
-  Emoji{QStringLiteral(u"\U0001F344"),
-        QStringLiteral(u"mushroom"),
-        QStringLiteral(u"mushroom"),
-        emoji::Emoji::Category::Food},
   Emoji{QStringLiteral(u"\U0001F95C"),
         QStringLiteral(u"peanuts"),
         QStringLiteral(u"peanuts"),
@@ -10142,6 +10230,14 @@ const std::array<Emoji, 3650> emoji::Provider::emoji = {
         QStringLiteral(u"chestnut"),
         QStringLiteral(u"chestnut"),
         emoji::Emoji::Category::Food},
+  Emoji{QStringLiteral(u"\U0001FADA"),
+        QStringLiteral(u"ginger_root"),
+        QStringLiteral(u"ginger root"),
+        emoji::Emoji::Category::Food},
+  Emoji{QStringLiteral(u"\U0001FADB"),
+        QStringLiteral(u"pea_pod"),
+        QStringLiteral(u"pea pod"),
+        emoji::Emoji::Category::Food},
   Emoji{QStringLiteral(u"\U0001F35E"),
         QStringLiteral(u"bread"),
         QStringLiteral(u"bread"),
@@ -10759,6 +10855,10 @@ const std::array<Emoji, 3650> emoji::Provider::emoji = {
         QStringLiteral(u"kite"),
         QStringLiteral(u"kite"),
         emoji::Emoji::Category::Activity},
+  Emoji{QStringLiteral(u"\U0001F52B"),
+        QStringLiteral(u"water_pistol"),
+        QStringLiteral(u"water pistol"),
+        emoji::Emoji::Category::Activity},
   Emoji{QStringLiteral(u"\U0001F3B1"),
         QStringLiteral(u"pool_8_ball"),
         QStringLiteral(u"pool 8 ball"),
@@ -10771,14 +10871,6 @@ const std::array<Emoji, 3650> emoji::Provider::emoji = {
         QStringLiteral(u"magic_wand"),
         QStringLiteral(u"magic wand"),
         emoji::Emoji::Category::Activity},
-  Emoji{QStringLiteral(u"\U0001F9FF"),
-        QStringLiteral(u"nazar_amulet"),
-        QStringLiteral(u"nazar amulet"),
-        emoji::Emoji::Category::Activity},
-  Emoji{QStringLiteral(u"\U0001FAAC"),
-        QStringLiteral(u"hamsa"),
-        QStringLiteral(u"hamsa"),
-        emoji::Emoji::Category::Activity},
   Emoji{QStringLiteral(u"\U0001F3AE"),
         QStringLiteral(u"video_game"),
         QStringLiteral(u"video game"),
@@ -11829,6 +11921,10 @@ const std::array<Emoji, 3650> emoji::Provider::emoji = {
         QStringLiteral(u"woman_s_clothes"),
         QStringLiteral(u"woman’s clothes"),
         emoji::Emoji::Category::Objects},
+  Emoji{QStringLiteral(u"\U0001FAAD"),
+        QStringLiteral(u"folding_hand_fan"),
+        QStringLiteral(u"folding hand fan"),
+        emoji::Emoji::Category::Objects},
   Emoji{QStringLiteral(u"\U0001F45B"),
         QStringLiteral(u"purse"),
         QStringLiteral(u"purse"),
@@ -11885,6 +11981,10 @@ const std::array<Emoji, 3650> emoji::Provider::emoji = {
         QStringLiteral(u"woman_s_boot"),
         QStringLiteral(u"woman’s boot"),
         emoji::Emoji::Category::Objects},
+  Emoji{QStringLiteral(u"\U0001FAAE"),
+        QStringLiteral(u"hair_pick"),
+        QStringLiteral(u"hair pick"),
+        emoji::Emoji::Category::Objects},
   Emoji{QStringLiteral(u"\U0001F451"),
         QStringLiteral(u"crown"),
         QStringLiteral(u"crown"),
@@ -12037,6 +12137,14 @@ const std::array<Emoji, 3650> emoji::Provider::emoji = {
         QStringLiteral(u"long_drum"),
         QStringLiteral(u"long drum"),
         emoji::Emoji::Category::Objects},
+  Emoji{QStringLiteral(u"\U0001FA87"),
+        QStringLiteral(u"maracas"),
+        QStringLiteral(u"maracas"),
+        emoji::Emoji::Category::Objects},
+  Emoji{QStringLiteral(u"\U0001FA88"),
+        QStringLiteral(u"flute"),
+        QStringLiteral(u"flute"),
+        emoji::Emoji::Category::Objects},
   Emoji{QStringLiteral(u"\U0001F4F1"),
         QStringLiteral(u"mobile_phone"),
         QStringLiteral(u"mobile phone"),
@@ -12513,9 +12621,9 @@ const std::array<Emoji, 3650> emoji::Provider::emoji = {
         QStringLiteral(u"crossed_swords"),
         QStringLiteral(u"crossed swords"),
         emoji::Emoji::Category::Objects},
-  Emoji{QStringLiteral(u"\U0001F52B"),
-        QStringLiteral(u"water_pistol"),
-        QStringLiteral(u"water pistol"),
+  Emoji{QStringLiteral(u"\U0001F4A3"),
+        QStringLiteral(u"bomb"),
+        QStringLiteral(u"bomb"),
         emoji::Emoji::Category::Objects},
   Emoji{QStringLiteral(u"\U0001FA83"),
         QStringLiteral(u"boomerang"),
@@ -12757,6 +12865,14 @@ const std::array<Emoji, 3650> emoji::Provider::emoji = {
         QStringLiteral(u"funeral_urn"),
         QStringLiteral(u"funeral urn"),
         emoji::Emoji::Category::Objects},
+  Emoji{QStringLiteral(u"\U0001F9FF"),
+        QStringLiteral(u"nazar_amulet"),
+        QStringLiteral(u"nazar amulet"),
+        emoji::Emoji::Category::Objects},
+  Emoji{QStringLiteral(u"\U0001FAAC"),
+        QStringLiteral(u"hamsa"),
+        QStringLiteral(u"hamsa"),
+        emoji::Emoji::Category::Objects},
   Emoji{QStringLiteral(u"\U0001F5FF"),
         QStringLiteral(u"moai"),
         QStringLiteral(u"moai"),
@@ -12770,110 +12886,6 @@ const std::array<Emoji, 3650> emoji::Provider::emoji = {
         QStringLiteral(u"identification card"),
         emoji::Emoji::Category::Objects},
   // Symbols
-  Emoji{QStringLiteral(u"\U0000200C\U0001F1E6\U0000200C"),
-        QStringLiteral(u"regional_indicator_a"),
-        QStringLiteral(u"regional indicator a"),
-        emoji::Emoji::Category::Symbols},
-  Emoji{QStringLiteral(u"\U0000200C\U0001F1E7\U0000200C"),
-        QStringLiteral(u"regional_indicator_b"),
-        QStringLiteral(u"regional indicator b"),
-        emoji::Emoji::Category::Symbols},
-  Emoji{QStringLiteral(u"\U0000200C\U0001F1E8\U0000200C"),
-        QStringLiteral(u"regional_indicator_c"),
-        QStringLiteral(u"regional indicator c"),
-        emoji::Emoji::Category::Symbols},
-  Emoji{QStringLiteral(u"\U0000200C\U0001F1E9\U0000200C"),
-        QStringLiteral(u"regional_indicator_d"),
-        QStringLiteral(u"regional indicator d"),
-        emoji::Emoji::Category::Symbols},
-  Emoji{QStringLiteral(u"\U0000200C\U0001F1EA\U0000200C"),
-        QStringLiteral(u"regional_indicator_e"),
-        QStringLiteral(u"regional indicator e"),
-        emoji::Emoji::Category::Symbols},
-  Emoji{QStringLiteral(u"\U0000200C\U0001F1EB\U0000200C"),
-        QStringLiteral(u"regional_indicator_f"),
-        QStringLiteral(u"regional indicator f"),
-        emoji::Emoji::Category::Symbols},
-  Emoji{QStringLiteral(u"\U0000200C\U0001F1EC\U0000200C"),
-        QStringLiteral(u"regional_indicator_g"),
-        QStringLiteral(u"regional indicator g"),
-        emoji::Emoji::Category::Symbols},
-  Emoji{QStringLiteral(u"\U0000200C\U0001F1ED\U0000200C"),
-        QStringLiteral(u"regional_indicator_h"),
-        QStringLiteral(u"regional indicator h"),
-        emoji::Emoji::Category::Symbols},
-  Emoji{QStringLiteral(u"\U0000200C\U0001F1EE\U0000200C"),
-        QStringLiteral(u"regional_indicator_i"),
-        QStringLiteral(u"regional indicator i"),
-        emoji::Emoji::Category::Symbols},
-  Emoji{QStringLiteral(u"\U0000200C\U0001F1EF\U0000200C"),
-        QStringLiteral(u"regional_indicator_j"),
-        QStringLiteral(u"regional indicator j"),
-        emoji::Emoji::Category::Symbols},
-  Emoji{QStringLiteral(u"\U0000200C\U0001F1F0\U0000200C"),
-        QStringLiteral(u"regional_indicator_k"),
-        QStringLiteral(u"regional indicator k"),
-        emoji::Emoji::Category::Symbols},
-  Emoji{QStringLiteral(u"\U0000200C\U0001F1F1\U0000200C"),
-        QStringLiteral(u"regional_indicator_l"),
-        QStringLiteral(u"regional indicator l"),
-        emoji::Emoji::Category::Symbols},
-  Emoji{QStringLiteral(u"\U0000200C\U0001F1F2\U0000200C"),
-        QStringLiteral(u"regional_indicator_m"),
-        QStringLiteral(u"regional indicator m"),
-        emoji::Emoji::Category::Symbols},
-  Emoji{QStringLiteral(u"\U0000200C\U0001F1F3\U0000200C"),
-        QStringLiteral(u"regional_indicator_n"),
-        QStringLiteral(u"regional indicator n"),
-        emoji::Emoji::Category::Symbols},
-  Emoji{QStringLiteral(u"\U0000200C\U0001F1F4\U0000200C"),
-        QStringLiteral(u"regional_indicator_o"),
-        QStringLiteral(u"regional indicator o"),
-        emoji::Emoji::Category::Symbols},
-  Emoji{QStringLiteral(u"\U0000200C\U0001F1F5\U0000200C"),
-        QStringLiteral(u"regional_indicator_p"),
-        QStringLiteral(u"regional indicator p"),
-        emoji::Emoji::Category::Symbols},
-  Emoji{QStringLiteral(u"\U0000200C\U0001F1F6\U0000200C"),
-        QStringLiteral(u"regional_indicator_q"),
-        QStringLiteral(u"regional indicator q"),
-        emoji::Emoji::Category::Symbols},
-  Emoji{QStringLiteral(u"\U0000200C\U0001F1F7\U0000200C"),
-        QStringLiteral(u"regional_indicator_r"),
-        QStringLiteral(u"regional indicator r"),
-        emoji::Emoji::Category::Symbols},
-  Emoji{QStringLiteral(u"\U0000200C\U0001F1F8\U0000200C"),
-        QStringLiteral(u"regional_indicator_s"),
-        QStringLiteral(u"regional indicator s"),
-        emoji::Emoji::Category::Symbols},
-  Emoji{QStringLiteral(u"\U0000200C\U0001F1F9\U0000200C"),
-        QStringLiteral(u"regional_indicator_t"),
-        QStringLiteral(u"regional indicator t"),
-        emoji::Emoji::Category::Symbols},
-  Emoji{QStringLiteral(u"\U0000200C\U0001F1FA\U0000200C"),
-        QStringLiteral(u"regional_indicator_u"),
-        QStringLiteral(u"regional indicator u"),
-        emoji::Emoji::Category::Symbols},
-  Emoji{QStringLiteral(u"\U0000200C\U0001F1FB\U0000200C"),
-        QStringLiteral(u"regional_indicator_v"),
-        QStringLiteral(u"regional indicator v"),
-        emoji::Emoji::Category::Symbols},
-  Emoji{QStringLiteral(u"\U0000200C\U0001F1FC\U0000200C"),
-        QStringLiteral(u"regional_indicator_w"),
-        QStringLiteral(u"regional indicator w"),
-        emoji::Emoji::Category::Symbols},
-  Emoji{QStringLiteral(u"\U0000200C\U0001F1FD\U0000200C"),
-        QStringLiteral(u"regional_indicator_x"),
-        QStringLiteral(u"regional indicator x"),
-        emoji::Emoji::Category::Symbols},
-  Emoji{QStringLiteral(u"\U0000200C\U0001F1FE\U0000200C"),
-        QStringLiteral(u"regional_indicator_y"),
-        QStringLiteral(u"regional indicator y"),
-        emoji::Emoji::Category::Symbols},
-  Emoji{QStringLiteral(u"\U0000200C\U0001F1FF\U0000200C"),
-        QStringLiteral(u"regional_indicator_z"),
-        QStringLiteral(u"regional indicator z"),
-        emoji::Emoji::Category::Symbols},
   Emoji{QStringLiteral(u"\U0001F3E7"),
         QStringLiteral(u"atm_sign"),
         QStringLiteral(u"ATM sign"),
@@ -13110,6 +13122,10 @@ const std::array<Emoji, 3650> emoji::Provider::emoji = {
         QStringLiteral(u"dotted_six_pointed_star"),
         QStringLiteral(u"dotted six-pointed star"),
         emoji::Emoji::Category::Symbols},
+  Emoji{QStringLiteral(u"\U0001FAAF"),
+        QStringLiteral(u"khanda"),
+        QStringLiteral(u"khanda"),
+        emoji::Emoji::Category::Symbols},
   Emoji{QStringLiteral(u"\U00002648"),
         QStringLiteral(u"aries"),
         QStringLiteral(u"Aries"),
@@ -13250,6 +13266,10 @@ const std::array<Emoji, 3650> emoji::Provider::emoji = {
         QStringLiteral(u"antenna_bars"),
         QStringLiteral(u"antenna bars"),
         emoji::Emoji::Category::Symbols},
+  Emoji{QStringLiteral(u"\U0001F6DC"),
+        QStringLiteral(u"wireless"),
+        QStringLiteral(u"wireless"),
+        emoji::Emoji::Category::Symbols},
   Emoji{QStringLiteral(u"\U0001F4F3"),
         QStringLiteral(u"vibration_mode"),
         QStringLiteral(u"vibration mode"),
diff --git a/src/emoji/Provider.h b/src/emoji/Provider.h
index 566c53a0df1e2e5230e730d64a85ce3fa1d80db1..32544793bacd768f865c8e912bbfba88d6c9fa65 100644
--- a/src/emoji/Provider.h
+++ b/src/emoji/Provider.h
@@ -46,7 +46,7 @@ class Provider
 {
 public:
     // all emoji for QML purposes
-    static const std::array<Emoji, 3650> emoji;
+    static const std::array<Emoji, 3655> emoji;
 };
 
 } // namespace emoji