From 39ee6b808db70a971386ee1c2b2678a46233de2e Mon Sep 17 00:00:00 2001 From: Egor Badmaev <60363270+htmlprogrammist@users.noreply.github.com> Date: Tue, 24 Jan 2023 22:36:13 +0300 Subject: [PATCH 1/7] feat: add EmojiManager and json data --- EmojiPicker.podspec | 2 +- .../UserInterfaceState.xcuserstate | Bin 57282 -> 65583 bytes Example App/Podfile.lock | 2 +- .../Local Podspecs/EmojiPicker.podspec.json | 4 +- Example App/Pods/Manifest.lock | 2 +- .../Pods/Pods.xcodeproj/project.pbxproj | 813 +++++++++--------- ...cscheme => EmojiPicker-Resources.xcscheme} | 6 +- .../xcschemes/xcschememanagement.plist | 2 +- .../EmojiPicker-Unit-Tests-resources.sh | 4 +- ...rceBundle-Resources-EmojiPicker-Info.plist | 24 + .../Extensions/Foundation/Bundle.swift | 2 +- Sources/EmojiPicker/Models/Emoji.swift | 57 ++ Sources/EmojiPicker/Resources/Data/1.json | 1 + Sources/EmojiPicker/Resources/Data/11.json | 1 + Sources/EmojiPicker/Resources/Data/12.1.json | 1 + Sources/EmojiPicker/Resources/Data/12.json | 1 + Sources/EmojiPicker/Resources/Data/13.1.json | 1 + Sources/EmojiPicker/Resources/Data/13.json | 1 + Sources/EmojiPicker/Resources/Data/14.json | 1 + Sources/EmojiPicker/Resources/Data/2.json | 1 + Sources/EmojiPicker/Resources/Data/3.json | 1 + Sources/EmojiPicker/Resources/Data/4.json | 1 + Sources/EmojiPicker/Resources/Data/5.json | 1 + .../EmojiPicker/Services/EmojiManager.swift | 88 ++ 24 files changed, 600 insertions(+), 417 deletions(-) rename Example App/Pods/Pods.xcodeproj/xcuserdata/egbad.xcuserdatad/xcschemes/{EmojiPicker-EmojiPicker.xcscheme => EmojiPicker-Resources.xcscheme} (91%) create mode 100644 Example App/Pods/Target Support Files/EmojiPicker/ResourceBundle-Resources-EmojiPicker-Info.plist create mode 100644 Sources/EmojiPicker/Models/Emoji.swift create mode 100644 Sources/EmojiPicker/Resources/Data/1.json create mode 100644 Sources/EmojiPicker/Resources/Data/11.json create mode 100644 Sources/EmojiPicker/Resources/Data/12.1.json create mode 100644 Sources/EmojiPicker/Resources/Data/12.json create mode 100644 Sources/EmojiPicker/Resources/Data/13.1.json create mode 100644 Sources/EmojiPicker/Resources/Data/13.json create mode 100644 Sources/EmojiPicker/Resources/Data/14.json create mode 100644 Sources/EmojiPicker/Resources/Data/2.json create mode 100644 Sources/EmojiPicker/Resources/Data/3.json create mode 100644 Sources/EmojiPicker/Resources/Data/4.json create mode 100644 Sources/EmojiPicker/Resources/Data/5.json create mode 100644 Sources/EmojiPicker/Services/EmojiManager.swift diff --git a/EmojiPicker.podspec b/EmojiPicker.podspec index 5c84cc7..3753e0a 100644 --- a/EmojiPicker.podspec +++ b/EmojiPicker.podspec @@ -8,7 +8,7 @@ Pod::Spec.new do |s| s.source = { :git => 'https://github.com/htmlprogrammist/EmojiPicker.git', :tag => s.version.to_s } s.source_files = 'Sources/EmojiPicker/**/*.{swift}' - s.resource_bundle = { "EmojiPicker" => ["Sources/EmojiPicker/**/*.lproj/*.{strings}"] } + s.resource_bundle = { "Resources" => ["Sources/EmojiPicker/**/*.{json,strings}"] } s.test_spec 'Tests' do |test_spec| test_spec.source_files = 'Tests/EmojiPickerTests/**/*.{swift}' diff --git a/Example App/EmojiPicker.xcworkspace/xcuserdata/egbad.xcuserdatad/UserInterfaceState.xcuserstate b/Example App/EmojiPicker.xcworkspace/xcuserdata/egbad.xcuserdatad/UserInterfaceState.xcuserstate index 3d104e33bde0aebcb62118c826f9b3eda56adac6..cec2e651ef8f3b50ac9df35b8adefa4c940d5d8c 100644 GIT binary patch literal 65583 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 SX~Ba3^R*xU&;P&fAOC+~+i05r diff --git a/Example App/Podfile.lock b/Example App/Podfile.lock index 6aef77e..71f2413 100644 --- a/Example App/Podfile.lock +++ b/Example App/Podfile.lock @@ -11,7 +11,7 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: - EmojiPicker: 4b34979fe8adbe0c59a210c3d1bff3223ca4cdfb + EmojiPicker: 6b9b72b2942cd9abe971efb76a1ec8a430a3f432 PODFILE CHECKSUM: e686a8fbd8a5367eac0bf7fb77e0bbddf18a2353 diff --git a/Example App/Pods/Local Podspecs/EmojiPicker.podspec.json b/Example App/Pods/Local Podspecs/EmojiPicker.podspec.json index 7f88e31..2fc08ae 100644 --- a/Example App/Pods/Local Podspecs/EmojiPicker.podspec.json +++ b/Example App/Pods/Local Podspecs/EmojiPicker.podspec.json @@ -13,8 +13,8 @@ }, "source_files": "Sources/EmojiPicker/**/*.{swift}", "resource_bundles": { - "EmojiPicker": [ - "Sources/EmojiPicker/**/*.lproj/*.{strings}" + "Resources": [ + "Sources/EmojiPicker/**/*.{strings}" ] }, "swift_versions": "4.2", diff --git a/Example App/Pods/Manifest.lock b/Example App/Pods/Manifest.lock index 6aef77e..71f2413 100644 --- a/Example App/Pods/Manifest.lock +++ b/Example App/Pods/Manifest.lock @@ -11,7 +11,7 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: - EmojiPicker: 4b34979fe8adbe0c59a210c3d1bff3223ca4cdfb + EmojiPicker: 6b9b72b2942cd9abe971efb76a1ec8a430a3f432 PODFILE CHECKSUM: e686a8fbd8a5367eac0bf7fb77e0bbddf18a2353 diff --git a/Example App/Pods/Pods.xcodeproj/project.pbxproj b/Example App/Pods/Pods.xcodeproj/project.pbxproj index 2822f67..9329ac2 100644 --- a/Example App/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example App/Pods/Pods.xcodeproj/project.pbxproj @@ -7,162 +7,166 @@ objects = { /* Begin PBXBuildFile section */ - 01641FC1EA4CD749B1C98674DCB3B02D /* EmojiCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A982D65A0CE768FB4EE5E9803E69BC8C /* EmojiCollectionViewCell.swift */; }; 04631E91E77F1BDF6CD1C6FBC1E53AEA /* Pods-EmojiPicker_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E41074865C769D58022F8DB9C2B17FE /* Pods-EmojiPicker_Example-dummy.m */; }; - 1CC32A33606D5F1C8FC7D553983DCDC2 /* Unicode 13v1.swift in Sources */ = {isa = PBXBuildFile; fileRef = C287B8EDA4D324B162A1C172F3C468AE /* Unicode 13v1.swift */; }; - 208DB64AEBFB8D96217110F5940597BE /* PickerArrowDirectionMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D83BAFC771C25DF0614613FCFD3EF23 /* PickerArrowDirectionMode.swift */; }; - 2151A3FD5268C88D8061ABEF44819500 /* Observable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30DE3B0005A5AA3883F3F1FF4709E27F /* Observable.swift */; }; - 2A4E38C6639A54FB14ACFD5663506BD5 /* Unicode 14.swift in Sources */ = {isa = PBXBuildFile; fileRef = A16CDA2D37B281E273CBD47B4802979D /* Unicode 14.swift */; }; - 2CFC4C4EB17FC16EDA5213118ACAE208 /* Unicode 5.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E5B6F3E922BBD0234A332B6D4BD8815 /* Unicode 5.swift */; }; - 39992CFE425CED16527876E1E7B7FC68 /* ArrayExtensionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BB2EDAE3D6DC3BC3852B022F3F39B55 /* ArrayExtensionTests.swift */; }; - 4D7909E58485B11716D6CB207BF3FB19 /* Array.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8BC226B18CFEBDE92A5BCC4E5AB86954 /* Array.swift */; }; - 50B0701814AB26D6303C5CBA226FA5C5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; - 5152326EB0EB27252099A3813011CF1C /* UnicodeManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F5C77B8C41310855D50D2A12D7B8B3E /* UnicodeManagerTests.swift */; }; - 5898B4AC66F1994436E68609725C328F /* ObservableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E5759FF78242A7A8025494C9B922C16 /* ObservableTests.swift */; }; - 5F1D38B23B8B6A37C200784072B8C641 /* EmojiPicker-EmojiPicker in Resources */ = {isa = PBXBuildFile; fileRef = 425EC0576F3D7B353D0860371658A593 /* EmojiPicker-EmojiPicker */; }; + 07460DCA713DF741DCDDA1D1A9EB2155 /* EmojiCategoryIconView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45B8AA4D0270F9AA11FF0CEF1AA6B8CA /* EmojiCategoryIconView.swift */; }; + 10988D1233EC133ADAA4EDD869F9E85E /* Bundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1418654D8630703882702745BCA2B62 /* Bundle.swift */; }; + 13922737909DED6F90905E68CA662E7D /* EmojiPicker-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 055783EC01393DAD74D6924B0A1172EF /* EmojiPicker-dummy.m */; }; + 2900054B72429C7FBCEA19AA18E1245A /* Array.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F335CBEC444F6A0D2A28621CF7B57A6 /* Array.swift */; }; + 31485DB446873BF9084A77773AACB9FB /* EmojiPicker-Resources in Resources */ = {isa = PBXBuildFile; fileRef = 72DF50AF5F8CB0E66065910A9B57FFFE /* EmojiPicker-Resources */; }; + 3876EC5219DBCE2DBFEC79050FA5A2D7 /* EmojiPickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B15F9E69D9C0DBBCE516818B65EA339F /* EmojiPickerViewController.swift */; }; + 39992CFE425CED16527876E1E7B7FC68 /* ArrayExtensionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C116CD470552E111ABE36E09C8F1391 /* ArrayExtensionTests.swift */; }; + 3C2E92340EC180798EA4F4EA47D0106B /* Unicode 13.swift in Sources */ = {isa = PBXBuildFile; fileRef = 544BC75A3D6613DE7D1079DA1926BBB0 /* Unicode 13.swift */; }; + 3E49992F0C8C05FEB42145D1B83C3678 /* EmojiCollectionViewHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7960CDBD1686B14B4408A7ADB086667C /* EmojiCollectionViewHeader.swift */; }; + 48115D63F074D8321B1CD55AF3F0CBDC /* Emoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27C541E6B50961B2EC2CB9361BA1BFD4 /* Emoji.swift */; }; + 5113F9673082E7CB68B6CB19258D7FF9 /* UIColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAE8A9A3BD2AC0691A4FA7412F1D1AA1 /* UIColor.swift */; }; + 5152326EB0EB27252099A3813011CF1C /* UnicodeManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20BA558003DB7F10190032FF2AF7BAAE /* UnicodeManagerTests.swift */; }; + 5447F0380E430D516078629EF9AB0DC4 /* EmojiPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9F24DBCF6F0550D030B4C3D551582CA /* EmojiPickerView.swift */; }; + 5898B4AC66F1994436E68609725C328F /* ObservableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22BDD97A0F67496204CDD6BA56B1A409 /* ObservableTests.swift */; }; + 659188B40335E3EA58F55D8F7F78FEEA /* UnicodeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6A85F09445CC9CE651ECB0E365B68BC /* UnicodeManager.swift */; }; + 66323AF74D3A350E4D000A326C86410D /* Unicode 5.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27BA0099B167BF4A8FE35A7351F8B1F6 /* Unicode 5.swift */; }; 6CCE6EF5DB6DD0545F70DE1C6296AF01 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; - 6D56A7DD06B973AF953EA59903AF5339 /* EmojiPickerViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2AFA264F496362B65B40AC7301EBCEF2 /* EmojiPickerViewModelTests.swift */; }; - 70EA50369EB2C2E5749ACEC2433BAC09 /* EmojiCategoryTypeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A9F439E674F2BCC89C8F1EA164721E8 /* EmojiCategoryTypeTests.swift */; }; + 6D56A7DD06B973AF953EA59903AF5339 /* EmojiPickerViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 457E224B7794AAF5B2A679976F7A65A5 /* EmojiPickerViewModelTests.swift */; }; + 70EA50369EB2C2E5749ACEC2433BAC09 /* EmojiCategoryTypeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9744B878529AD715D707FDEC0983A59B /* EmojiCategoryTypeTests.swift */; }; 7AD411BFDBD6A713CE09B1E0E825F163 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; - 7D0D7D73260F6D00BEC768D8308B0FF5 /* EmojiCollectionViewHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAE6A7E9EF0FDF15483459B8C6715DEE /* EmojiCollectionViewHeader.swift */; }; - 89CD17C2220C36134806DB4F4B0DA4C8 /* TouchableEmojiCategoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1D1B549576C21AC4DDE0FAD95E2EB65 /* TouchableEmojiCategoryView.swift */; }; - 8E23F46FDFF018E7CDB4913CD5BE4738 /* Unicode 13.swift in Sources */ = {isa = PBXBuildFile; fileRef = D72137FB5C31040F8521A18116147BA0 /* Unicode 13.swift */; }; - 96D990C818F53922131CA4514235903B /* PickerArrowDirectionModeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DB9AED7DB04CAA8CE2F515B1B3C49D0 /* PickerArrowDirectionModeTests.swift */; }; - A05E77D1B14C347E5AB8487F18BFD8D9 /* EmojiPickerDelegateMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = F50AAF5829231D8359C634E66C89E5DB /* EmojiPickerDelegateMock.swift */; }; - AB17AB7EB5A40FADC25B48B90638509C /* Unicode 12.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5901AD9A91AB22C99AE3905BD50E7F58 /* Unicode 12.swift */; }; - AF06DA78A59B238F3879F20187862449 /* UnicodeManagerStub.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC8BA5F6E9F54767A0EFDC16AB1670 /* UnicodeManagerStub.swift */; }; - B1E170ABF9136FCAC0C7F744EDBA6B93 /* EmojiCategoryIconView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE89FFE66B4DAEAF6389591374ED2BB1 /* EmojiCategoryIconView.swift */; }; - BF9716080C0438532419F2E28AE104B0 /* Bundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 557869AB0866260808BBB3A90E7EF198 /* Bundle.swift */; }; - BFC9EB85238BC85DD1B12F471F0ACB3E /* EmojiPickerViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66D7F697F58BBE5A190C9060EC68852C /* EmojiPickerViewModel.swift */; }; - CD01DCA4EEC4A677602DE88B6AB85C4D /* UnicodeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 754950E3AFFA1BF43DCA4100B454E653 /* UnicodeManager.swift */; }; - D5BE8352A39AFAC20ABB90D9266DA118 /* EmojiPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78A66E6AD274605B23B613BF62473157 /* EmojiPickerView.swift */; }; + 82A756D60AADC295BE0C28979DAC7FE9 /* Unicode 14.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7495A79357F0232B6BAFA7853E96317 /* Unicode 14.swift */; }; + 93B6F9FA461FD4FEE91B16F94D01395A /* EmojiModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5E992DC2023870B331007FFBD9F7037 /* EmojiModel.swift */; }; + 969A75B86B918BF315292176E661F8FF /* EmojiPickerViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 918868922A374845C720D710866878F8 /* EmojiPickerViewModel.swift */; }; + 96D990C818F53922131CA4514235903B /* PickerArrowDirectionModeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 828F7C8D328D920E764B2A9173DEE675 /* PickerArrowDirectionModeTests.swift */; }; + A05E77D1B14C347E5AB8487F18BFD8D9 /* EmojiPickerDelegateMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0B2D6CA003DFD74AD698CEA421FE59B /* EmojiPickerDelegateMock.swift */; }; + A4FDEBAA024E04C9A346FA39CF542B5C /* Unicode 11.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5927B450F01053A947A9A943D38BE188 /* Unicode 11.swift */; }; + AC3840CA9BD94BE0E6AD1C8A7D462121 /* EmojiCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2B917FB8642D6399342C991329C30E7 /* EmojiCollectionViewCell.swift */; }; + AF06DA78A59B238F3879F20187862449 /* UnicodeManagerStub.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E90BBD485E5BFEECF8CCD41E0D3CC36 /* UnicodeManagerStub.swift */; }; + BB53EA985BF26460E6F4A14A801A2843 /* Observable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 523BD44A75978169B773A4BDD72E0C47 /* Observable.swift */; }; + C359947EDE9D753A5BC22DF047097F90 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 64419415CDA96521795EE04B76FC6365 /* Localizable.strings */; }; + CA02875C88A58F1C813CA065184CF23C /* TouchableEmojiCategoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E56562F9310DB0C24639B72D2EF0A86B /* TouchableEmojiCategoryView.swift */; }; + D2C6FAE1EF2D7F5D45D1D35BE6B2E805 /* EmojiPicker-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D3EF5B78E8274CABC70058AAB2BB5DCA /* EmojiPicker-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D69CA1784335CE59A3FD6A10F220F3AB /* Unicode 13v1.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCDB43B8F3ED5B3832525B8CCAC0A77B /* Unicode 13v1.swift */; }; D87D90972546DFB456AE2B38379D5E2C /* Pods-EmojiPicker_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 509EFFB149756F700CC3A368970476A6 /* Pods-EmojiPicker_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA076A0E56E60A96F63BB357235C42BA /* EmojiPicker-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E9FED2E71AD4B95D165E9BCE9ED7D220 /* EmojiPicker-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E59D81D95AA3E4A92D571D13099D7A43 /* Unicode 11.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2962771E104FE1C4FA1B7F8515828463 /* Unicode 11.swift */; }; - F1BA9470738879CE6FC07FCA058E3DA4 /* UIColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 167ED3F77922B1010E0044F33615A28D /* UIColor.swift */; }; - F83546AF965212E206A26550D7FF1FC4 /* EmojiModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE8456C209B169D7DF22CF78CB702512 /* EmojiModel.swift */; }; - FAA0F092572BA7E13C367600FAEB1362 /* EmojiPicker-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7FE7B87E963C9EDC3547D4CFD81DF868 /* EmojiPicker-dummy.m */; }; - FE2E069E649BDE272CF7CB8ED1C1C246 /* UIView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43967B0EF0A90588399508A840B79C9C /* UIView.swift */; }; - FF028AC44A34BA2BB72345A5C5E51BF2 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 8F65881DF7108F46D00372162EF8EB52 /* Localizable.strings */; }; - FF0FA25DC7DED20DD4C06294521DB1EB /* EmojiPickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6702993FE4F45C9D07907AD16A9A0BE /* EmojiPickerViewController.swift */; }; + D91BCB0307A04B7B2004F0E27DB3FFE2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; + DC164E01556BCC9260FDD17F0B9AAD3F /* Unicode 12.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1651D5E1F63F1A7FDA413D4BC32064A6 /* Unicode 12.swift */; }; + EE4E445F437B7664AF52A2D6B32F0B7B /* UIView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFB27685A9A0F2E4084AFEBBE363F6F6 /* UIView.swift */; }; + F0CF7938297FEFE20010E579 /* EmojiManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0CF7937297FEFE20010E579 /* EmojiManager.swift */; }; + F666BE25B4BDFD925B1ECEED0F81AE48 /* PickerArrowDirectionMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 160AEB39043CAA7082F679808AB083C2 /* PickerArrowDirectionMode.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 270691E2C5E76F8DD197FA33F2BAE631 /* PBXContainerItemProxy */ = { + 5F9FEB22C04146354A40EB098DDB93B6 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 74B1BE29E8F4437DC0A1829FA5157AE0; remoteInfo = EmojiPicker; }; - 7BFDCE442C6EF089B0A809D5469C4B85 /* PBXContainerItemProxy */ = { + D41E58B2D8A9CFAA13607D3D58510B3A /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 74B1BE29E8F4437DC0A1829FA5157AE0; - remoteInfo = EmojiPicker; + remoteGlobalIDString = 3DA7DB1A9F7F32C07F0F0F8CD7CCD936; + remoteInfo = "EmojiPicker-Resources"; }; - 9C3079B5755551F376835792E6D45D27 /* PBXContainerItemProxy */ = { + FDD7A739B6DD4BC31E6C35C56F8FF166 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 8888BFDF07041C2C83A7B79D4118BDEA; - remoteInfo = "EmojiPicker-EmojiPicker"; + remoteGlobalIDString = 74B1BE29E8F4437DC0A1829FA5157AE0; + remoteInfo = EmojiPicker; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 0183F38D78E1C2EFC6321B8CC252150D /* EmojiPicker.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = EmojiPicker.release.xcconfig; sourceTree = ""; }; 01F2518BBC39B4BACCF61C2B5E035BBC /* Pods-EmojiPicker_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-EmojiPicker_Example-acknowledgements.plist"; sourceTree = ""; }; - 041A7A03D83DB2FBAFA74864E9834356 /* EmojiPicker.unit-tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "EmojiPicker.unit-tests.debug.xcconfig"; sourceTree = ""; }; - 06757B08CA545263190C632E10C00E4F /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = tr.lproj/Localizable.strings; sourceTree = ""; }; - 12BA0602E0DA4DA73B409ED8B36227E7 /* EmojiPicker-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "EmojiPicker-Info.plist"; sourceTree = ""; }; - 167ED3F77922B1010E0044F33615A28D /* UIColor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UIColor.swift; sourceTree = ""; }; - 17401A5A0DF8ABF7796B3D4CD1112AD0 /* EmojiPicker.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = EmojiPicker.release.xcconfig; sourceTree = ""; }; - 19151B9FCC929F79D6D370CBF75877B6 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = uk.lproj/Localizable.strings; sourceTree = ""; }; - 23B43778F85EAE2C40F19CED7FF67B56 /* EmojiPicker.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = EmojiPicker.modulemap; sourceTree = ""; }; + 055783EC01393DAD74D6924B0A1172EF /* EmojiPicker-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "EmojiPicker-dummy.m"; sourceTree = ""; }; + 160AEB39043CAA7082F679808AB083C2 /* PickerArrowDirectionMode.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PickerArrowDirectionMode.swift; sourceTree = ""; }; + 1651D5E1F63F1A7FDA413D4BC32064A6 /* Unicode 12.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Unicode 12.swift"; sourceTree = ""; }; + 1C116CD470552E111ABE36E09C8F1391 /* ArrayExtensionTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ArrayExtensionTests.swift; path = Tests/EmojiPickerTests/ArrayExtensionTests.swift; sourceTree = ""; }; + 1D791E351E9A140C637F92305902F420 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = de.lproj/Localizable.strings; sourceTree = ""; }; + 20BA558003DB7F10190032FF2AF7BAAE /* UnicodeManagerTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UnicodeManagerTests.swift; path = Tests/EmojiPickerTests/UnicodeManagerTests.swift; sourceTree = ""; }; + 22BDD97A0F67496204CDD6BA56B1A409 /* ObservableTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ObservableTests.swift; path = Tests/EmojiPickerTests/ObservableTests.swift; sourceTree = ""; }; 23BE90F951883808EBCF02CDD69ED1AB /* EmojiPicker */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = EmojiPicker; path = EmojiPicker.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 28F05E9AFBEF68CF698BA1774A62C9F4 /* EmojiPicker-Unit-Tests-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EmojiPicker-Unit-Tests-prefix.pch"; sourceTree = ""; }; - 2962771E104FE1C4FA1B7F8515828463 /* Unicode 11.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Unicode 11.swift"; sourceTree = ""; }; - 2A9F439E674F2BCC89C8F1EA164721E8 /* EmojiCategoryTypeTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EmojiCategoryTypeTests.swift; path = Tests/EmojiPickerTests/EmojiCategoryTypeTests.swift; sourceTree = ""; }; - 2AFA264F496362B65B40AC7301EBCEF2 /* EmojiPickerViewModelTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EmojiPickerViewModelTests.swift; path = Tests/EmojiPickerTests/EmojiPickerViewModelTests.swift; sourceTree = ""; }; - 2CC876A71908A2777C168489C92470CE /* EmojiPicker-Unit-Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "EmojiPicker-Unit-Tests-resources.sh"; sourceTree = ""; }; - 2DB9AED7DB04CAA8CE2F515B1B3C49D0 /* PickerArrowDirectionModeTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PickerArrowDirectionModeTests.swift; path = Tests/EmojiPickerTests/PickerArrowDirectionModeTests.swift; sourceTree = ""; }; - 2FD2F1AD2892874B993C18603A833760 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = hi.lproj/Localizable.strings; sourceTree = ""; }; - 30DE3B0005A5AA3883F3F1FF4709E27F /* Observable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Observable.swift; sourceTree = ""; }; + 27BA0099B167BF4A8FE35A7351F8B1F6 /* Unicode 5.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Unicode 5.swift"; sourceTree = ""; }; + 27C541E6B50961B2EC2CB9361BA1BFD4 /* Emoji.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Emoji.swift; sourceTree = ""; }; + 2E45C9D721F57E954CF47102EF52FD2D /* EmojiPicker-Unit-Tests-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EmojiPicker-Unit-Tests-prefix.pch"; sourceTree = ""; }; 382524B7DD3E7F2893D02267E796F68E /* Pods-EmojiPicker_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-EmojiPicker_Example.modulemap"; sourceTree = ""; }; - 390284B9CBD569E95CBC4CBD01821096 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = fr.lproj/Localizable.strings; sourceTree = ""; }; - 3BB2EDAE3D6DC3BC3852B022F3F39B55 /* ArrayExtensionTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ArrayExtensionTests.swift; path = Tests/EmojiPickerTests/ArrayExtensionTests.swift; sourceTree = ""; }; - 3C1EFEBB673E2B2B2B595C5BFD0141F5 /* EmojiPicker.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = EmojiPicker.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 403E5FDF2E217E7100D2008D773E7C0E /* ResourceBundle-EmojiPicker-EmojiPicker-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-EmojiPicker-EmojiPicker-Info.plist"; sourceTree = ""; }; - 425EC0576F3D7B353D0860371658A593 /* EmojiPicker-EmojiPicker */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "EmojiPicker-EmojiPicker"; path = EmojiPicker.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - 43967B0EF0A90588399508A840B79C9C /* UIView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UIView.swift; sourceTree = ""; }; - 4D83BAFC771C25DF0614613FCFD3EF23 /* PickerArrowDirectionMode.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PickerArrowDirectionMode.swift; sourceTree = ""; }; - 4E5B6F3E922BBD0234A332B6D4BD8815 /* Unicode 5.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Unicode 5.swift"; sourceTree = ""; }; + 3AFC0F36F89485AE8CD046F33287618E /* EmojiPicker-Unit-Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "EmojiPicker-Unit-Tests-resources.sh"; sourceTree = ""; }; + 416B0779F7AA40BD8EEECEF13B84372D /* EmojiPicker.unit-tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "EmojiPicker.unit-tests.release.xcconfig"; sourceTree = ""; }; + 44F1560E478EE68DC9DF4D9532F557AC /* EmojiPicker-Unit-Tests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "EmojiPicker-Unit-Tests-Info.plist"; sourceTree = ""; }; + 457E224B7794AAF5B2A679976F7A65A5 /* EmojiPickerViewModelTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EmojiPickerViewModelTests.swift; path = Tests/EmojiPickerTests/EmojiPickerViewModelTests.swift; sourceTree = ""; }; + 45B8AA4D0270F9AA11FF0CEF1AA6B8CA /* EmojiCategoryIconView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiCategoryIconView.swift; sourceTree = ""; }; + 4D154DBCA421C9219651F87B0FA3EE61 /* ResourceBundle-Resources-EmojiPicker-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-Resources-EmojiPicker-Info.plist"; sourceTree = ""; }; + 4DB43B865E0F05D2D64B2DE12B928679 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = en.lproj/Localizable.strings; sourceTree = ""; }; + 4E90BBD485E5BFEECF8CCD41E0D3CC36 /* UnicodeManagerStub.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UnicodeManagerStub.swift; sourceTree = ""; }; + 4E95F4BC1FB3C6D7DCB016C6D828B763 /* EmojiPicker.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; path = EmojiPicker.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 4E9A19FD3F78AD7EB75C9ABA787B51E7 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = tr.lproj/Localizable.strings; sourceTree = ""; }; 509EFFB149756F700CC3A368970476A6 /* Pods-EmojiPicker_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-EmojiPicker_Example-umbrella.h"; sourceTree = ""; }; - 557869AB0866260808BBB3A90E7EF198 /* Bundle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Bundle.swift; sourceTree = ""; }; - 568D80584474970311A6F37C6C3C5D91 /* EmojiPicker.unit-tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "EmojiPicker.unit-tests.release.xcconfig"; sourceTree = ""; }; - 5901AD9A91AB22C99AE3905BD50E7F58 /* Unicode 12.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Unicode 12.swift"; sourceTree = ""; }; + 50A87FBAE3B60D95BF4B1CA78057F413 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; + 523BD44A75978169B773A4BDD72E0C47 /* Observable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Observable.swift; sourceTree = ""; }; + 544BC75A3D6613DE7D1079DA1926BBB0 /* Unicode 13.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Unicode 13.swift"; sourceTree = ""; }; + 5927B450F01053A947A9A943D38BE188 /* Unicode 11.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Unicode 11.swift"; sourceTree = ""; }; 5FFCF687F23CBE36E970127D9B9AB400 /* Pods-EmojiPicker_Example */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-EmojiPicker_Example"; path = Pods_EmojiPicker_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 60CDDCE1EBAF6641C515D019921650A6 /* EmojiPicker-Unit-Tests */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "EmojiPicker-Unit-Tests"; path = "EmojiPicker-Unit-Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 66D7F697F58BBE5A190C9060EC68852C /* EmojiPickerViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerViewModel.swift; sourceTree = ""; }; 6E41074865C769D58022F8DB9C2B17FE /* Pods-EmojiPicker_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-EmojiPicker_Example-dummy.m"; sourceTree = ""; }; - 6E5759FF78242A7A8025494C9B922C16 /* ObservableTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ObservableTests.swift; path = Tests/EmojiPickerTests/ObservableTests.swift; sourceTree = ""; }; + 72DF50AF5F8CB0E66065910A9B57FFFE /* EmojiPicker-Resources */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "EmojiPicker-Resources"; path = Resources.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 736CD997BF00862A30828946FA12C273 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; - 754950E3AFFA1BF43DCA4100B454E653 /* UnicodeManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UnicodeManager.swift; sourceTree = ""; }; - 7719AB59327B1981E985C2937ECD44FC /* EmojiPicker-Unit-Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "EmojiPicker-Unit-Tests-frameworks.sh"; sourceTree = ""; }; - 78A66E6AD274605B23B613BF62473157 /* EmojiPickerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerView.swift; sourceTree = ""; }; - 7FE7B87E963C9EDC3547D4CFD81DF868 /* EmojiPicker-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "EmojiPicker-dummy.m"; sourceTree = ""; }; - 82FEA79715DB220B9F4076812F51CB36 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = ru.lproj/Localizable.strings; sourceTree = ""; }; - 8BC226B18CFEBDE92A5BCC4E5AB86954 /* Array.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Array.swift; sourceTree = ""; }; - 8F5C77B8C41310855D50D2A12D7B8B3E /* UnicodeManagerTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UnicodeManagerTests.swift; path = Tests/EmojiPickerTests/UnicodeManagerTests.swift; sourceTree = ""; }; - 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - A039C13A658A957854150AE5E6E12CED /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = de.lproj/Localizable.strings; sourceTree = ""; }; - A16CDA2D37B281E273CBD47B4802979D /* Unicode 14.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Unicode 14.swift"; sourceTree = ""; }; - A48EB3DC165244BD141298F0422603D9 /* EmojiPicker-Unit-Tests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "EmojiPicker-Unit-Tests-Info.plist"; sourceTree = ""; }; + 7690EA9D5BB517DECCE242D6F63CBCBF /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = ru.lproj/Localizable.strings; sourceTree = ""; }; + 7960CDBD1686B14B4408A7ADB086667C /* EmojiCollectionViewHeader.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewHeader.swift; sourceTree = ""; }; + 7A2EB27FECF4DC7703CF0193221999FC /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = hi.lproj/Localizable.strings; sourceTree = ""; }; + 7D40D799C34FE562A70418783DDCD408 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = uk.lproj/Localizable.strings; sourceTree = ""; }; + 7F335CBEC444F6A0D2A28621CF7B57A6 /* Array.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Array.swift; sourceTree = ""; }; + 828F7C8D328D920E764B2A9173DEE675 /* PickerArrowDirectionModeTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PickerArrowDirectionModeTests.swift; path = Tests/EmojiPickerTests/PickerArrowDirectionModeTests.swift; sourceTree = ""; }; + 83CBEB4E884D5C164543FDE049E40A04 /* EmojiPicker.unit-tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "EmojiPicker.unit-tests.debug.xcconfig"; sourceTree = ""; }; + 918868922A374845C720D710866878F8 /* EmojiPickerViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerViewModel.swift; sourceTree = ""; }; + 9744B878529AD715D707FDEC0983A59B /* EmojiCategoryTypeTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EmojiCategoryTypeTests.swift; path = Tests/EmojiPickerTests/EmojiCategoryTypeTests.swift; sourceTree = ""; }; + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + A0B2D6CA003DFD74AD698CEA421FE59B /* EmojiPickerDelegateMock.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerDelegateMock.swift; sourceTree = ""; }; + A2E4283D315A47466A582C80029BD286 /* EmojiPicker-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "EmojiPicker-Info.plist"; sourceTree = ""; }; A66E21E0B052B50A29602427E1E2DC23 /* Pods-EmojiPicker_Example-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-EmojiPicker_Example-Info.plist"; sourceTree = ""; }; - A982D65A0CE768FB4EE5E9803E69BC8C /* EmojiCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewCell.swift; sourceTree = ""; }; - B7B090821A1961E7EBC6BC045EB3958E /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = en.lproj/Localizable.strings; sourceTree = ""; }; - C287B8EDA4D324B162A1C172F3C468AE /* Unicode 13v1.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Unicode 13v1.swift"; sourceTree = ""; }; - C6702993FE4F45C9D07907AD16A9A0BE /* EmojiPickerViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerViewController.swift; sourceTree = ""; }; - CD7B7FC9F7C0B3E2B365D0616EBD1D45 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + A6A85F09445CC9CE651ECB0E365B68BC /* UnicodeManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UnicodeManager.swift; sourceTree = ""; }; + B15F9E69D9C0DBBCE516818B65EA339F /* EmojiPickerViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerViewController.swift; sourceTree = ""; }; + B44D1CC98D564A576739DA92873BDFBA /* EmojiPicker-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EmojiPicker-prefix.pch"; sourceTree = ""; }; + BCDB43B8F3ED5B3832525B8CCAC0A77B /* Unicode 13v1.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Unicode 13v1.swift"; sourceTree = ""; }; + C276690BF444B716F6A0663B7507A7A3 /* EmojiPicker.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = EmojiPicker.debug.xcconfig; sourceTree = ""; }; D089390CB10DE5D7264EAF267B71BF52 /* Pods-EmojiPicker_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-EmojiPicker_Example.debug.xcconfig"; sourceTree = ""; }; D0B1C88F829541DAEF35CF30E76D83B7 /* Pods-EmojiPicker_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-EmojiPicker_Example.release.xcconfig"; sourceTree = ""; }; - D0BC8BA5F6E9F54767A0EFDC16AB1670 /* UnicodeManagerStub.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UnicodeManagerStub.swift; sourceTree = ""; }; - D72137FB5C31040F8521A18116147BA0 /* Unicode 13.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Unicode 13.swift"; sourceTree = ""; }; + D1418654D8630703882702745BCA2B62 /* Bundle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Bundle.swift; sourceTree = ""; }; + D2B917FB8642D6399342C991329C30E7 /* EmojiCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewCell.swift; sourceTree = ""; }; + D3EF5B78E8274CABC70058AAB2BB5DCA /* EmojiPicker-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EmojiPicker-umbrella.h"; sourceTree = ""; }; + D72963D71BAD2D212647932191FA4EC3 /* EmojiPicker.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = EmojiPicker.modulemap; sourceTree = ""; }; + D7495A79357F0232B6BAFA7853E96317 /* Unicode 14.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Unicode 14.swift"; sourceTree = ""; }; D9A8ECD769F879596441DCFFBAFD34CC /* Pods-EmojiPicker_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-EmojiPicker_Example-frameworks.sh"; sourceTree = ""; }; - DC8D565E44247E3ABD80A3CBEA95F669 /* EmojiPicker.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = EmojiPicker.debug.xcconfig; sourceTree = ""; }; - E1D1B549576C21AC4DDE0FAD95E2EB65 /* TouchableEmojiCategoryView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TouchableEmojiCategoryView.swift; sourceTree = ""; }; - E9FED2E71AD4B95D165E9BCE9ED7D220 /* EmojiPicker-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EmojiPicker-umbrella.h"; sourceTree = ""; }; - EE8456C209B169D7DF22CF78CB702512 /* EmojiModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiModel.swift; sourceTree = ""; }; - EFE0ED7A3A1114D6EFCE3AA1756C330E /* EmojiPicker-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EmojiPicker-prefix.pch"; sourceTree = ""; }; - F50AAF5829231D8359C634E66C89E5DB /* EmojiPickerDelegateMock.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerDelegateMock.swift; sourceTree = ""; }; - FAE6A7E9EF0FDF15483459B8C6715DEE /* EmojiCollectionViewHeader.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewHeader.swift; sourceTree = ""; }; - FE89FFE66B4DAEAF6389591374ED2BB1 /* EmojiCategoryIconView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiCategoryIconView.swift; sourceTree = ""; }; + DFB27685A9A0F2E4084AFEBBE363F6F6 /* UIView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UIView.swift; sourceTree = ""; }; + E56562F9310DB0C24639B72D2EF0A86B /* TouchableEmojiCategoryView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TouchableEmojiCategoryView.swift; sourceTree = ""; }; + E5E992DC2023870B331007FFBD9F7037 /* EmojiModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiModel.swift; sourceTree = ""; }; + E9F24DBCF6F0550D030B4C3D551582CA /* EmojiPickerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerView.swift; sourceTree = ""; }; + EAE8A9A3BD2AC0691A4FA7412F1D1AA1 /* UIColor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UIColor.swift; sourceTree = ""; }; + EED738CE1F77A8FAF29FC4D62D570A40 /* EmojiPicker-Unit-Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "EmojiPicker-Unit-Tests-frameworks.sh"; sourceTree = ""; }; + F0CF7937297FEFE20010E579 /* EmojiManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiManager.swift; sourceTree = ""; }; + F3341FC4705848603C63825CB130C9F2 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = fr.lproj/Localizable.strings; sourceTree = ""; }; + F7C949D5B235EBC3DC153DC8F58648D5 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; FEC6B8950F4C546111DE3F93FECA20B5 /* Pods-EmojiPicker_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-EmojiPicker_Example-acknowledgements.markdown"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 45E071D6FBAA4C67A184BC1172A7DE2C /* Frameworks */ = { + 6E148645871B5A4210BCE7974D23B754 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D91BCB0307A04B7B2004F0E27DB3FFE2 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 666C5AA950567FB9091D0B5ADD834E06 /* Frameworks */ = { + AEA72749B4807F175E85AC64A4464F62 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 50B0701814AB26D6303C5CBA226FA5C5 /* Foundation.framework in Frameworks */, + 6CCE6EF5DB6DD0545F70DE1C6296AF01 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - AEA72749B4807F175E85AC64A4464F62 /* Frameworks */ = { + BBC97E08E152FA4992E2280BAC657E4E /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 6CCE6EF5DB6DD0545F70DE1C6296AF01 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -177,273 +181,271 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 01EB3D8A8D5D5B892F7E7579C094DCC8 /* Tests */ = { + 04FF44F68568D8D733EAC8F3296BFBE0 /* EmojiPicker */ = { isa = PBXGroup; children = ( - 3BB2EDAE3D6DC3BC3852B022F3F39B55 /* ArrayExtensionTests.swift */, - 2A9F439E674F2BCC89C8F1EA164721E8 /* EmojiCategoryTypeTests.swift */, - 2AFA264F496362B65B40AC7301EBCEF2 /* EmojiPickerViewModelTests.swift */, - 6E5759FF78242A7A8025494C9B922C16 /* ObservableTests.swift */, - 2DB9AED7DB04CAA8CE2F515B1B3C49D0 /* PickerArrowDirectionModeTests.swift */, - 8F5C77B8C41310855D50D2A12D7B8B3E /* UnicodeManagerTests.swift */, - 4A7E4E8E396D166F0FF4676611ECE9FE /* Mocks */, - DD489D4969DF6FC0B5BEE29B6D076D80 /* Stubs */, + 64419415CDA96521795EE04B76FC6365 /* Localizable.strings */, + 3A3DCB3FFC40FB1BA240A19AAAFFE539 /* Bindings */, + 9994306D9E40C71C1E853A86977C872C /* Extensions */, + 45DB1AFDEBA7AEE27765E0C0A3069F81 /* Models */, + 9F538CC576EECA4BDCD6D8AADAD1F06D /* Pod */, + 620199C11DD011FD36EB96CA289EE8CD /* Services */, + A873C2E96AC9586872077D139D5B36AC /* Support Files */, + 9DF6908535E52EB04399357CF47E10A2 /* Tests */, + 617DEA09DFA2EA682126F87EF1A7FB63 /* ViewModel */, + 65BF589E0C10E8858ED7562A8F44272D /* Views */, ); - name = Tests; + name = EmojiPicker; + path = ../..; sourceTree = ""; }; - 2718346929F406369C6752520D863143 /* Models */ = { + 1A1160E78863D1B69A568D78ED779947 /* Products */ = { isa = PBXGroup; children = ( - EE8456C209B169D7DF22CF78CB702512 /* EmojiModel.swift */, - 4D83BAFC771C25DF0614613FCFD3EF23 /* PickerArrowDirectionMode.swift */, + 23BE90F951883808EBCF02CDD69ED1AB /* EmojiPicker */, + 72DF50AF5F8CB0E66065910A9B57FFFE /* EmojiPicker-Resources */, + 60CDDCE1EBAF6641C515D019921650A6 /* EmojiPicker-Unit-Tests */, + 5FFCF687F23CBE36E970127D9B9AB400 /* Pods-EmojiPicker_Example */, ); - name = Models; - path = Sources/EmojiPicker/Models; + name = Products; sourceTree = ""; }; - 2C6803DDA6F3E1A0DF123CC80822D34D /* EmojiPicker */ = { + 2BF2803935B486149A4140C5FF41948F /* Foundation */ = { isa = PBXGroup; children = ( - 8F65881DF7108F46D00372162EF8EB52 /* Localizable.strings */, - 2CAD7722B69602A073CEC8A90D8E08E5 /* Bindings */, - AB5FB1350B2BCB09839C24859CB60CFA /* Extensions */, - 2718346929F406369C6752520D863143 /* Models */, - DA25394E2F1A024278C04D61F3421C65 /* Pod */, - 8776DAA5801B6F11324DF9D5F13F6514 /* Services */, - DF6849BC941C97119E2B80CBA11A37AC /* Support Files */, - 01EB3D8A8D5D5B892F7E7579C094DCC8 /* Tests */, - 4326AE527C3F556AF694821329622E30 /* ViewModel */, - DA141484CFBC93B42C884B2328DE9991 /* Views */, + 7F335CBEC444F6A0D2A28621CF7B57A6 /* Array.swift */, + D1418654D8630703882702745BCA2B62 /* Bundle.swift */, ); - name = EmojiPicker; - path = ../..; + path = Foundation; sourceTree = ""; }; - 2CAD7722B69602A073CEC8A90D8E08E5 /* Bindings */ = { + 3A3DCB3FFC40FB1BA240A19AAAFFE539 /* Bindings */ = { isa = PBXGroup; children = ( - 30DE3B0005A5AA3883F3F1FF4709E27F /* Observable.swift */, + 523BD44A75978169B773A4BDD72E0C47 /* Observable.swift */, ); name = Bindings; path = Sources/EmojiPicker/Bindings; sourceTree = ""; }; - 4326AE527C3F556AF694821329622E30 /* ViewModel */ = { + 45DB1AFDEBA7AEE27765E0C0A3069F81 /* Models */ = { isa = PBXGroup; children = ( - 66D7F697F58BBE5A190C9060EC68852C /* EmojiPickerViewModel.swift */, + 27C541E6B50961B2EC2CB9361BA1BFD4 /* Emoji.swift */, + E5E992DC2023870B331007FFBD9F7037 /* EmojiModel.swift */, + 160AEB39043CAA7082F679808AB083C2 /* PickerArrowDirectionMode.swift */, ); - name = ViewModel; - path = Sources/EmojiPicker/ViewModel; + name = Models; + path = Sources/EmojiPicker/Models; sourceTree = ""; }; - 499B583603577FA983EB89933414D32D /* Unicode */ = { + 578452D2E740E91742655AC8F1636D1F /* iOS */ = { isa = PBXGroup; children = ( - 2962771E104FE1C4FA1B7F8515828463 /* Unicode 11.swift */, - 5901AD9A91AB22C99AE3905BD50E7F58 /* Unicode 12.swift */, - D72137FB5C31040F8521A18116147BA0 /* Unicode 13.swift */, - C287B8EDA4D324B162A1C172F3C468AE /* Unicode 13v1.swift */, - A16CDA2D37B281E273CBD47B4802979D /* Unicode 14.swift */, - 4E5B6F3E922BBD0234A332B6D4BD8815 /* Unicode 5.swift */, + 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */, ); - name = Unicode; - path = Unicode; + name = iOS; sourceTree = ""; }; - 4A7E4E8E396D166F0FF4676611ECE9FE /* Mocks */ = { + 617DEA09DFA2EA682126F87EF1A7FB63 /* ViewModel */ = { isa = PBXGroup; children = ( - F50AAF5829231D8359C634E66C89E5DB /* EmojiPickerDelegateMock.swift */, + 918868922A374845C720D710866878F8 /* EmojiPickerViewModel.swift */, ); - name = Mocks; - path = Tests/EmojiPickerTests/Mocks; + name = ViewModel; + path = Sources/EmojiPicker/ViewModel; sourceTree = ""; }; - 578452D2E740E91742655AC8F1636D1F /* iOS */ = { + 620199C11DD011FD36EB96CA289EE8CD /* Services */ = { isa = PBXGroup; children = ( - 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */, + A6A85F09445CC9CE651ECB0E365B68BC /* UnicodeManager.swift */, + 903DF89ADB7C53D5D3D945137B49E770 /* Unicode */, + F0CF7937297FEFE20010E579 /* EmojiManager.swift */, ); - name = iOS; + name = Services; + path = Sources/EmojiPicker/Services; sourceTree = ""; }; - 8776DAA5801B6F11324DF9D5F13F6514 /* Services */ = { + 65BF589E0C10E8858ED7562A8F44272D /* Views */ = { isa = PBXGroup; children = ( - 754950E3AFFA1BF43DCA4100B454E653 /* UnicodeManager.swift */, - 499B583603577FA983EB89933414D32D /* Unicode */, + D2B917FB8642D6399342C991329C30E7 /* EmojiCollectionViewCell.swift */, + 7960CDBD1686B14B4408A7ADB086667C /* EmojiCollectionViewHeader.swift */, + E9F24DBCF6F0550D030B4C3D551582CA /* EmojiPickerView.swift */, + B15F9E69D9C0DBBCE516818B65EA339F /* EmojiPickerViewController.swift */, + 69BF1196CE254D037F2CF7A4D52EF6A0 /* EmojiCategoryView */, ); - name = Services; - path = Sources/EmojiPicker/Services; + name = Views; + path = Sources/EmojiPicker/Views; sourceTree = ""; }; - 9C32D27DB1D98426BBBC981D1B6F827E /* Pods-EmojiPicker_Example */ = { + 69BF1196CE254D037F2CF7A4D52EF6A0 /* EmojiCategoryView */ = { isa = PBXGroup; children = ( - 382524B7DD3E7F2893D02267E796F68E /* Pods-EmojiPicker_Example.modulemap */, - FEC6B8950F4C546111DE3F93FECA20B5 /* Pods-EmojiPicker_Example-acknowledgements.markdown */, - 01F2518BBC39B4BACCF61C2B5E035BBC /* Pods-EmojiPicker_Example-acknowledgements.plist */, - 6E41074865C769D58022F8DB9C2B17FE /* Pods-EmojiPicker_Example-dummy.m */, - D9A8ECD769F879596441DCFFBAFD34CC /* Pods-EmojiPicker_Example-frameworks.sh */, - A66E21E0B052B50A29602427E1E2DC23 /* Pods-EmojiPicker_Example-Info.plist */, - 509EFFB149756F700CC3A368970476A6 /* Pods-EmojiPicker_Example-umbrella.h */, - D089390CB10DE5D7264EAF267B71BF52 /* Pods-EmojiPicker_Example.debug.xcconfig */, - D0B1C88F829541DAEF35CF30E76D83B7 /* Pods-EmojiPicker_Example.release.xcconfig */, + 45B8AA4D0270F9AA11FF0CEF1AA6B8CA /* EmojiCategoryIconView.swift */, + E56562F9310DB0C24639B72D2EF0A86B /* TouchableEmojiCategoryView.swift */, ); - name = "Pods-EmojiPicker_Example"; - path = "Target Support Files/Pods-EmojiPicker_Example"; + path = EmojiCategoryView; sourceTree = ""; }; - A7AE53BAD693FE7E4502EC70F2F73BB2 /* Development Pods */ = { + 9027675E7D8EA8BD6544DCF2BA34545B /* Stubs */ = { isa = PBXGroup; children = ( - 2C6803DDA6F3E1A0DF123CC80822D34D /* EmojiPicker */, + 4E90BBD485E5BFEECF8CCD41E0D3CC36 /* UnicodeManagerStub.swift */, ); - name = "Development Pods"; + name = Stubs; + path = Tests/EmojiPickerTests/Stubs; sourceTree = ""; }; - AB5FB1350B2BCB09839C24859CB60CFA /* Extensions */ = { + 903DF89ADB7C53D5D3D945137B49E770 /* Unicode */ = { isa = PBXGroup; children = ( - FDF548C93DAD945F7267A97F7B138297 /* Foundation */, - B0D25558495EFB247373A6C227C95F6D /* UIKit */, + 5927B450F01053A947A9A943D38BE188 /* Unicode 11.swift */, + 1651D5E1F63F1A7FDA413D4BC32064A6 /* Unicode 12.swift */, + 544BC75A3D6613DE7D1079DA1926BBB0 /* Unicode 13.swift */, + BCDB43B8F3ED5B3832525B8CCAC0A77B /* Unicode 13v1.swift */, + D7495A79357F0232B6BAFA7853E96317 /* Unicode 14.swift */, + 27BA0099B167BF4A8FE35A7351F8B1F6 /* Unicode 5.swift */, ); - name = Extensions; - path = Sources/EmojiPicker/Extensions; + path = Unicode; sourceTree = ""; }; - B0D25558495EFB247373A6C227C95F6D /* UIKit */ = { + 9994306D9E40C71C1E853A86977C872C /* Extensions */ = { isa = PBXGroup; children = ( - 167ED3F77922B1010E0044F33615A28D /* UIColor.swift */, - 43967B0EF0A90588399508A840B79C9C /* UIView.swift */, + 2BF2803935B486149A4140C5FF41948F /* Foundation */, + AD409819A0BF13886617A6133008FA15 /* UIKit */, ); - name = UIKit; - path = UIKit; + name = Extensions; + path = Sources/EmojiPicker/Extensions; sourceTree = ""; }; - C4579EB01754F26537E3528777B84FAA /* Products */ = { + 9C32D27DB1D98426BBBC981D1B6F827E /* Pods-EmojiPicker_Example */ = { isa = PBXGroup; children = ( - 23BE90F951883808EBCF02CDD69ED1AB /* EmojiPicker */, - 425EC0576F3D7B353D0860371658A593 /* EmojiPicker-EmojiPicker */, - 60CDDCE1EBAF6641C515D019921650A6 /* EmojiPicker-Unit-Tests */, - 5FFCF687F23CBE36E970127D9B9AB400 /* Pods-EmojiPicker_Example */, + 382524B7DD3E7F2893D02267E796F68E /* Pods-EmojiPicker_Example.modulemap */, + FEC6B8950F4C546111DE3F93FECA20B5 /* Pods-EmojiPicker_Example-acknowledgements.markdown */, + 01F2518BBC39B4BACCF61C2B5E035BBC /* Pods-EmojiPicker_Example-acknowledgements.plist */, + 6E41074865C769D58022F8DB9C2B17FE /* Pods-EmojiPicker_Example-dummy.m */, + D9A8ECD769F879596441DCFFBAFD34CC /* Pods-EmojiPicker_Example-frameworks.sh */, + A66E21E0B052B50A29602427E1E2DC23 /* Pods-EmojiPicker_Example-Info.plist */, + 509EFFB149756F700CC3A368970476A6 /* Pods-EmojiPicker_Example-umbrella.h */, + D089390CB10DE5D7264EAF267B71BF52 /* Pods-EmojiPicker_Example.debug.xcconfig */, + D0B1C88F829541DAEF35CF30E76D83B7 /* Pods-EmojiPicker_Example.release.xcconfig */, ); - name = Products; + name = "Pods-EmojiPicker_Example"; + path = "Target Support Files/Pods-EmojiPicker_Example"; sourceTree = ""; }; - CF1408CF629C7361332E53B88F7BD30C = { + 9DF6908535E52EB04399357CF47E10A2 /* Tests */ = { isa = PBXGroup; children = ( - 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, - A7AE53BAD693FE7E4502EC70F2F73BB2 /* Development Pods */, - D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */, - C4579EB01754F26537E3528777B84FAA /* Products */, - F335215D4D5B81982E7F065C8F829E1C /* Targets Support Files */, + 1C116CD470552E111ABE36E09C8F1391 /* ArrayExtensionTests.swift */, + 9744B878529AD715D707FDEC0983A59B /* EmojiCategoryTypeTests.swift */, + 457E224B7794AAF5B2A679976F7A65A5 /* EmojiPickerViewModelTests.swift */, + 22BDD97A0F67496204CDD6BA56B1A409 /* ObservableTests.swift */, + 828F7C8D328D920E764B2A9173DEE675 /* PickerArrowDirectionModeTests.swift */, + 20BA558003DB7F10190032FF2AF7BAAE /* UnicodeManagerTests.swift */, + C9EF5D26A67FB1D6A830F1BC167F39F5 /* Mocks */, + 9027675E7D8EA8BD6544DCF2BA34545B /* Stubs */, ); + name = Tests; sourceTree = ""; }; - D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */ = { + 9F538CC576EECA4BDCD6D8AADAD1F06D /* Pod */ = { isa = PBXGroup; children = ( - 578452D2E740E91742655AC8F1636D1F /* iOS */, + 4E95F4BC1FB3C6D7DCB016C6D828B763 /* EmojiPicker.podspec */, + 50A87FBAE3B60D95BF4B1CA78057F413 /* LICENSE */, + F7C949D5B235EBC3DC153DC8F58648D5 /* README.md */, ); - name = Frameworks; + name = Pod; sourceTree = ""; }; - D83EABF445B487840F910DC07337A1FF /* EmojiCategoryView */ = { + A7AE53BAD693FE7E4502EC70F2F73BB2 /* Development Pods */ = { isa = PBXGroup; children = ( - FE89FFE66B4DAEAF6389591374ED2BB1 /* EmojiCategoryIconView.swift */, - E1D1B549576C21AC4DDE0FAD95E2EB65 /* TouchableEmojiCategoryView.swift */, + 04FF44F68568D8D733EAC8F3296BFBE0 /* EmojiPicker */, ); - name = EmojiCategoryView; - path = EmojiCategoryView; + name = "Development Pods"; sourceTree = ""; }; - DA141484CFBC93B42C884B2328DE9991 /* Views */ = { + A873C2E96AC9586872077D139D5B36AC /* Support Files */ = { isa = PBXGroup; children = ( - A982D65A0CE768FB4EE5E9803E69BC8C /* EmojiCollectionViewCell.swift */, - FAE6A7E9EF0FDF15483459B8C6715DEE /* EmojiCollectionViewHeader.swift */, - 78A66E6AD274605B23B613BF62473157 /* EmojiPickerView.swift */, - C6702993FE4F45C9D07907AD16A9A0BE /* EmojiPickerViewController.swift */, - D83EABF445B487840F910DC07337A1FF /* EmojiCategoryView */, + D72963D71BAD2D212647932191FA4EC3 /* EmojiPicker.modulemap */, + 055783EC01393DAD74D6924B0A1172EF /* EmojiPicker-dummy.m */, + A2E4283D315A47466A582C80029BD286 /* EmojiPicker-Info.plist */, + B44D1CC98D564A576739DA92873BDFBA /* EmojiPicker-prefix.pch */, + D3EF5B78E8274CABC70058AAB2BB5DCA /* EmojiPicker-umbrella.h */, + EED738CE1F77A8FAF29FC4D62D570A40 /* EmojiPicker-Unit-Tests-frameworks.sh */, + 44F1560E478EE68DC9DF4D9532F557AC /* EmojiPicker-Unit-Tests-Info.plist */, + 2E45C9D721F57E954CF47102EF52FD2D /* EmojiPicker-Unit-Tests-prefix.pch */, + 3AFC0F36F89485AE8CD046F33287618E /* EmojiPicker-Unit-Tests-resources.sh */, + C276690BF444B716F6A0663B7507A7A3 /* EmojiPicker.debug.xcconfig */, + 0183F38D78E1C2EFC6321B8CC252150D /* EmojiPicker.release.xcconfig */, + 83CBEB4E884D5C164543FDE049E40A04 /* EmojiPicker.unit-tests.debug.xcconfig */, + 416B0779F7AA40BD8EEECEF13B84372D /* EmojiPicker.unit-tests.release.xcconfig */, + 4D154DBCA421C9219651F87B0FA3EE61 /* ResourceBundle-Resources-EmojiPicker-Info.plist */, ); - name = Views; - path = Sources/EmojiPicker/Views; + name = "Support Files"; + path = "Example App/Pods/Target Support Files/EmojiPicker"; sourceTree = ""; }; - DA25394E2F1A024278C04D61F3421C65 /* Pod */ = { + AD409819A0BF13886617A6133008FA15 /* UIKit */ = { isa = PBXGroup; children = ( - 3C1EFEBB673E2B2B2B595C5BFD0141F5 /* EmojiPicker.podspec */, - CD7B7FC9F7C0B3E2B365D0616EBD1D45 /* LICENSE */, - 736CD997BF00862A30828946FA12C273 /* README.md */, + EAE8A9A3BD2AC0691A4FA7412F1D1AA1 /* UIColor.swift */, + DFB27685A9A0F2E4084AFEBBE363F6F6 /* UIView.swift */, ); - name = Pod; + path = UIKit; sourceTree = ""; }; - DD489D4969DF6FC0B5BEE29B6D076D80 /* Stubs */ = { + C9EF5D26A67FB1D6A830F1BC167F39F5 /* Mocks */ = { isa = PBXGroup; children = ( - D0BC8BA5F6E9F54767A0EFDC16AB1670 /* UnicodeManagerStub.swift */, + A0B2D6CA003DFD74AD698CEA421FE59B /* EmojiPickerDelegateMock.swift */, ); - name = Stubs; - path = Tests/EmojiPickerTests/Stubs; + name = Mocks; + path = Tests/EmojiPickerTests/Mocks; sourceTree = ""; }; - DF6849BC941C97119E2B80CBA11A37AC /* Support Files */ = { + CF1408CF629C7361332E53B88F7BD30C = { isa = PBXGroup; children = ( - 23B43778F85EAE2C40F19CED7FF67B56 /* EmojiPicker.modulemap */, - 7FE7B87E963C9EDC3547D4CFD81DF868 /* EmojiPicker-dummy.m */, - 12BA0602E0DA4DA73B409ED8B36227E7 /* EmojiPicker-Info.plist */, - EFE0ED7A3A1114D6EFCE3AA1756C330E /* EmojiPicker-prefix.pch */, - E9FED2E71AD4B95D165E9BCE9ED7D220 /* EmojiPicker-umbrella.h */, - 7719AB59327B1981E985C2937ECD44FC /* EmojiPicker-Unit-Tests-frameworks.sh */, - A48EB3DC165244BD141298F0422603D9 /* EmojiPicker-Unit-Tests-Info.plist */, - 28F05E9AFBEF68CF698BA1774A62C9F4 /* EmojiPicker-Unit-Tests-prefix.pch */, - 2CC876A71908A2777C168489C92470CE /* EmojiPicker-Unit-Tests-resources.sh */, - DC8D565E44247E3ABD80A3CBEA95F669 /* EmojiPicker.debug.xcconfig */, - 17401A5A0DF8ABF7796B3D4CD1112AD0 /* EmojiPicker.release.xcconfig */, - 041A7A03D83DB2FBAFA74864E9834356 /* EmojiPicker.unit-tests.debug.xcconfig */, - 568D80584474970311A6F37C6C3C5D91 /* EmojiPicker.unit-tests.release.xcconfig */, - 403E5FDF2E217E7100D2008D773E7C0E /* ResourceBundle-EmojiPicker-EmojiPicker-Info.plist */, + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, + A7AE53BAD693FE7E4502EC70F2F73BB2 /* Development Pods */, + D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */, + 1A1160E78863D1B69A568D78ED779947 /* Products */, + F335215D4D5B81982E7F065C8F829E1C /* Targets Support Files */, ); - name = "Support Files"; - path = "Example App/Pods/Target Support Files/EmojiPicker"; sourceTree = ""; }; - F335215D4D5B81982E7F065C8F829E1C /* Targets Support Files */ = { + D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */ = { isa = PBXGroup; children = ( - 9C32D27DB1D98426BBBC981D1B6F827E /* Pods-EmojiPicker_Example */, + 578452D2E740E91742655AC8F1636D1F /* iOS */, ); - name = "Targets Support Files"; + name = Frameworks; sourceTree = ""; }; - FDF548C93DAD945F7267A97F7B138297 /* Foundation */ = { + F335215D4D5B81982E7F065C8F829E1C /* Targets Support Files */ = { isa = PBXGroup; children = ( - 8BC226B18CFEBDE92A5BCC4E5AB86954 /* Array.swift */, - 557869AB0866260808BBB3A90E7EF198 /* Bundle.swift */, + 9C32D27DB1D98426BBBC981D1B6F827E /* Pods-EmojiPicker_Example */, ); - name = Foundation; - path = Foundation; + name = "Targets Support Files"; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - C723009EB08D9B1CBBF918D63C94DB16 /* Headers */ = { + 1C339F86DF70577831A0F7511C3BCD14 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - DA076A0E56E60A96F63BB357235C42BA /* EmojiPicker-umbrella.h in Headers */, + D2C6FAE1EF2D7F5D45D1D35BE6B2E805 /* EmojiPicker-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -458,41 +460,41 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 74B1BE29E8F4437DC0A1829FA5157AE0 /* EmojiPicker */ = { + 3DA7DB1A9F7F32C07F0F0F8CD7CCD936 /* EmojiPicker-Resources */ = { isa = PBXNativeTarget; - buildConfigurationList = 2CEA6AF2803591D04F4987E8D71E4B5F /* Build configuration list for PBXNativeTarget "EmojiPicker" */; + buildConfigurationList = 306582DAAC64C3FC3C4F5FF0D0CC8C29 /* Build configuration list for PBXNativeTarget "EmojiPicker-Resources" */; buildPhases = ( - C723009EB08D9B1CBBF918D63C94DB16 /* Headers */, - 89DAD77E63DD8A107827F8BED1907D08 /* Sources */, - 666C5AA950567FB9091D0B5ADD834E06 /* Frameworks */, - 5A5BF166021FD20F1E474063DDE9E2C1 /* Resources */, + 87AE5C5A56C56A3387CE7C0A36ABE22E /* Sources */, + BBC97E08E152FA4992E2280BAC657E4E /* Frameworks */, + 5F0CA264F40D94611621C354D8541A09 /* Resources */, ); buildRules = ( ); dependencies = ( - 47FD988649DF5C6E306CC79ABAD75D2C /* PBXTargetDependency */, ); - name = EmojiPicker; - productName = EmojiPicker; - productReference = 23BE90F951883808EBCF02CDD69ED1AB /* EmojiPicker */; - productType = "com.apple.product-type.framework"; + name = "EmojiPicker-Resources"; + productName = Resources; + productReference = 72DF50AF5F8CB0E66065910A9B57FFFE /* EmojiPicker-Resources */; + productType = "com.apple.product-type.bundle"; }; - 8888BFDF07041C2C83A7B79D4118BDEA /* EmojiPicker-EmojiPicker */ = { + 74B1BE29E8F4437DC0A1829FA5157AE0 /* EmojiPicker */ = { isa = PBXNativeTarget; - buildConfigurationList = 3694301DE9AC72278133D67E99CA3F32 /* Build configuration list for PBXNativeTarget "EmojiPicker-EmojiPicker" */; + buildConfigurationList = E30A9DAB2DA097E2690B8714EC08F219 /* Build configuration list for PBXNativeTarget "EmojiPicker" */; buildPhases = ( - 9AC710A7EE1F3611D3570216569ACCA9 /* Sources */, - 45E071D6FBAA4C67A184BC1172A7DE2C /* Frameworks */, - 62A9720939394FAE0A81233294A31065 /* Resources */, + 1C339F86DF70577831A0F7511C3BCD14 /* Headers */, + 96E07DE5DFE47153B6C55FC3BCC56A1B /* Sources */, + 6E148645871B5A4210BCE7974D23B754 /* Frameworks */, + 751A046EC9E5935F36E667D2A8B00762 /* Resources */, ); buildRules = ( ); dependencies = ( + 89300F987CECB15BE4CDEF352DA23211 /* PBXTargetDependency */, ); - name = "EmojiPicker-EmojiPicker"; + name = EmojiPicker; productName = EmojiPicker; - productReference = 425EC0576F3D7B353D0860371658A593 /* EmojiPicker-EmojiPicker */; - productType = "com.apple.product-type.bundle"; + productReference = 23BE90F951883808EBCF02CDD69ED1AB /* EmojiPicker */; + productType = "com.apple.product-type.framework"; }; 96C4EBBDFBB34BB760CE65C81BC26677 /* Pods-EmojiPicker_Example */ = { isa = PBXNativeTarget; @@ -506,7 +508,7 @@ buildRules = ( ); dependencies = ( - DB2292E29044306C2B69321B6D8B4018 /* PBXTargetDependency */, + 2F924F27DE1469D66546B84749207B45 /* PBXTargetDependency */, ); name = "Pods-EmojiPicker_Example"; productName = Pods_EmojiPicker_Example; @@ -521,12 +523,12 @@ AEA72749B4807F175E85AC64A4464F62 /* Frameworks */, C6829FB3EF05CBC2CF12D5C8DF1E7119 /* Resources */, 8EFEE62EB576E2761FC0D0EC76190AED /* [CP] Embed Pods Frameworks */, - CBACF1E2A6B2D274BD41CA3FB2C71A34 /* [CP] Copy Pods Resources */, + B0E9F1734D89DD1CCD337489CF669FDF /* [CP] Copy Pods Resources */, ); buildRules = ( ); dependencies = ( - 17C291A3FAC9D43EE6DB125D16203850 /* PBXTargetDependency */, + 536B9A47F020960BC7EA53DBC12F0DD3 /* PBXTargetDependency */, ); name = "EmojiPicker-Unit-Tests"; productName = "EmojiPicker-Unit-Tests"; @@ -557,12 +559,12 @@ uk, ); mainGroup = CF1408CF629C7361332E53B88F7BD30C; - productRefGroup = C4579EB01754F26537E3528777B84FAA /* Products */; + productRefGroup = 1A1160E78863D1B69A568D78ED779947 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( 74B1BE29E8F4437DC0A1829FA5157AE0 /* EmojiPicker */, - 8888BFDF07041C2C83A7B79D4118BDEA /* EmojiPicker-EmojiPicker */, + 3DA7DB1A9F7F32C07F0F0F8CD7CCD936 /* EmojiPicker-Resources */, E98E11D20D4245D915B15585F8D1D1A8 /* EmojiPicker-Unit-Tests */, 96C4EBBDFBB34BB760CE65C81BC26677 /* Pods-EmojiPicker_Example */, ); @@ -577,19 +579,19 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 5A5BF166021FD20F1E474063DDE9E2C1 /* Resources */ = { + 5F0CA264F40D94611621C354D8541A09 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 5F1D38B23B8B6A37C200784072B8C641 /* EmojiPicker-EmojiPicker in Resources */, + C359947EDE9D753A5BC22DF047097F90 /* Localizable.strings in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 62A9720939394FAE0A81233294A31065 /* Resources */ = { + 751A046EC9E5935F36E667D2A8B00762 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - FF028AC44A34BA2BB72345A5C5E51BF2 /* Localizable.strings in Resources */, + 31485DB446873BF9084A77773AACB9FB /* EmojiPicker-Resources in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -621,18 +623,18 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/EmojiPicker/EmojiPicker-Unit-Tests-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - CBACF1E2A6B2D274BD41CA3FB2C71A34 /* [CP] Copy Pods Resources */ = { + B0E9F1734D89DD1CCD337489CF669FDF /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( "${PODS_ROOT}/Target Support Files/EmojiPicker/EmojiPicker-Unit-Tests-resources.sh", - "${PODS_CONFIGURATION_BUILD_DIR}/EmojiPicker/EmojiPicker.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/EmojiPicker/Resources.bundle", ); name = "[CP] Copy Pods Resources"; outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EmojiPicker.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Resources.bundle", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -650,6 +652,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 87AE5C5A56C56A3387CE7C0A36ABE22E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 8806F3B1C26A8A219E5BDEB10986024B /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -665,76 +674,71 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 89DAD77E63DD8A107827F8BED1907D08 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4D7909E58485B11716D6CB207BF3FB19 /* Array.swift in Sources */, - BF9716080C0438532419F2E28AE104B0 /* Bundle.swift in Sources */, - B1E170ABF9136FCAC0C7F744EDBA6B93 /* EmojiCategoryIconView.swift in Sources */, - 01641FC1EA4CD749B1C98674DCB3B02D /* EmojiCollectionViewCell.swift in Sources */, - 7D0D7D73260F6D00BEC768D8308B0FF5 /* EmojiCollectionViewHeader.swift in Sources */, - F83546AF965212E206A26550D7FF1FC4 /* EmojiModel.swift in Sources */, - FAA0F092572BA7E13C367600FAEB1362 /* EmojiPicker-dummy.m in Sources */, - D5BE8352A39AFAC20ABB90D9266DA118 /* EmojiPickerView.swift in Sources */, - FF0FA25DC7DED20DD4C06294521DB1EB /* EmojiPickerViewController.swift in Sources */, - BFC9EB85238BC85DD1B12F471F0ACB3E /* EmojiPickerViewModel.swift in Sources */, - 2151A3FD5268C88D8061ABEF44819500 /* Observable.swift in Sources */, - 208DB64AEBFB8D96217110F5940597BE /* PickerArrowDirectionMode.swift in Sources */, - 89CD17C2220C36134806DB4F4B0DA4C8 /* TouchableEmojiCategoryView.swift in Sources */, - F1BA9470738879CE6FC07FCA058E3DA4 /* UIColor.swift in Sources */, - FE2E069E649BDE272CF7CB8ED1C1C246 /* UIView.swift in Sources */, - E59D81D95AA3E4A92D571D13099D7A43 /* Unicode 11.swift in Sources */, - AB17AB7EB5A40FADC25B48B90638509C /* Unicode 12.swift in Sources */, - 8E23F46FDFF018E7CDB4913CD5BE4738 /* Unicode 13.swift in Sources */, - 1CC32A33606D5F1C8FC7D553983DCDC2 /* Unicode 13v1.swift in Sources */, - 2A4E38C6639A54FB14ACFD5663506BD5 /* Unicode 14.swift in Sources */, - 2CFC4C4EB17FC16EDA5213118ACAE208 /* Unicode 5.swift in Sources */, - CD01DCA4EEC4A677602DE88B6AB85C4D /* UnicodeManager.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9AC710A7EE1F3611D3570216569ACCA9 /* Sources */ = { + 96E07DE5DFE47153B6C55FC3BCC56A1B /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 2900054B72429C7FBCEA19AA18E1245A /* Array.swift in Sources */, + 10988D1233EC133ADAA4EDD869F9E85E /* Bundle.swift in Sources */, + 48115D63F074D8321B1CD55AF3F0CBDC /* Emoji.swift in Sources */, + 07460DCA713DF741DCDDA1D1A9EB2155 /* EmojiCategoryIconView.swift in Sources */, + F0CF7938297FEFE20010E579 /* EmojiManager.swift in Sources */, + AC3840CA9BD94BE0E6AD1C8A7D462121 /* EmojiCollectionViewCell.swift in Sources */, + 3E49992F0C8C05FEB42145D1B83C3678 /* EmojiCollectionViewHeader.swift in Sources */, + 93B6F9FA461FD4FEE91B16F94D01395A /* EmojiModel.swift in Sources */, + 13922737909DED6F90905E68CA662E7D /* EmojiPicker-dummy.m in Sources */, + 5447F0380E430D516078629EF9AB0DC4 /* EmojiPickerView.swift in Sources */, + 3876EC5219DBCE2DBFEC79050FA5A2D7 /* EmojiPickerViewController.swift in Sources */, + 969A75B86B918BF315292176E661F8FF /* EmojiPickerViewModel.swift in Sources */, + BB53EA985BF26460E6F4A14A801A2843 /* Observable.swift in Sources */, + F666BE25B4BDFD925B1ECEED0F81AE48 /* PickerArrowDirectionMode.swift in Sources */, + CA02875C88A58F1C813CA065184CF23C /* TouchableEmojiCategoryView.swift in Sources */, + 5113F9673082E7CB68B6CB19258D7FF9 /* UIColor.swift in Sources */, + EE4E445F437B7664AF52A2D6B32F0B7B /* UIView.swift in Sources */, + A4FDEBAA024E04C9A346FA39CF542B5C /* Unicode 11.swift in Sources */, + DC164E01556BCC9260FDD17F0B9AAD3F /* Unicode 12.swift in Sources */, + 3C2E92340EC180798EA4F4EA47D0106B /* Unicode 13.swift in Sources */, + D69CA1784335CE59A3FD6A10F220F3AB /* Unicode 13v1.swift in Sources */, + 82A756D60AADC295BE0C28979DAC7FE9 /* Unicode 14.swift in Sources */, + 66323AF74D3A350E4D000A326C86410D /* Unicode 5.swift in Sources */, + 659188B40335E3EA58F55D8F7F78FEEA /* UnicodeManager.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 17C291A3FAC9D43EE6DB125D16203850 /* PBXTargetDependency */ = { + 2F924F27DE1469D66546B84749207B45 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = EmojiPicker; target = 74B1BE29E8F4437DC0A1829FA5157AE0 /* EmojiPicker */; - targetProxy = 7BFDCE442C6EF089B0A809D5469C4B85 /* PBXContainerItemProxy */; + targetProxy = FDD7A739B6DD4BC31E6C35C56F8FF166 /* PBXContainerItemProxy */; }; - 47FD988649DF5C6E306CC79ABAD75D2C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "EmojiPicker-EmojiPicker"; - target = 8888BFDF07041C2C83A7B79D4118BDEA /* EmojiPicker-EmojiPicker */; - targetProxy = 9C3079B5755551F376835792E6D45D27 /* PBXContainerItemProxy */; - }; - DB2292E29044306C2B69321B6D8B4018 /* PBXTargetDependency */ = { + 536B9A47F020960BC7EA53DBC12F0DD3 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = EmojiPicker; target = 74B1BE29E8F4437DC0A1829FA5157AE0 /* EmojiPicker */; - targetProxy = 270691E2C5E76F8DD197FA33F2BAE631 /* PBXContainerItemProxy */; + targetProxy = 5F9FEB22C04146354A40EB098DDB93B6 /* PBXContainerItemProxy */; + }; + 89300F987CECB15BE4CDEF352DA23211 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "EmojiPicker-Resources"; + target = 3DA7DB1A9F7F32C07F0F0F8CD7CCD936 /* EmojiPicker-Resources */; + targetProxy = D41E58B2D8A9CFAA13607D3D58510B3A /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ - 8F65881DF7108F46D00372162EF8EB52 /* Localizable.strings */ = { + 64419415CDA96521795EE04B76FC6365 /* Localizable.strings */ = { isa = PBXVariantGroup; children = ( - A039C13A658A957854150AE5E6E12CED /* Localizable.strings */, - B7B090821A1961E7EBC6BC045EB3958E /* Localizable.strings */, - 390284B9CBD569E95CBC4CBD01821096 /* Localizable.strings */, - 2FD2F1AD2892874B993C18603A833760 /* Localizable.strings */, - 82FEA79715DB220B9F4076812F51CB36 /* Localizable.strings */, - 06757B08CA545263190C632E10C00E4F /* Localizable.strings */, - 19151B9FCC929F79D6D370CBF75877B6 /* Localizable.strings */, + 1D791E351E9A140C637F92305902F420 /* Localizable.strings */, + 4DB43B865E0F05D2D64B2DE12B928679 /* Localizable.strings */, + F3341FC4705848603C63825CB130C9F2 /* Localizable.strings */, + 7A2EB27FECF4DC7703CF0193221999FC /* Localizable.strings */, + 7690EA9D5BB517DECCE242D6F63CBCBF /* Localizable.strings */, + 4E9A19FD3F78AD7EB75C9ABA787B51E7 /* Localizable.strings */, + 7D40D799C34FE562A70418783DDCD408 /* Localizable.strings */, ); name = Localizable.strings; path = Sources/EmojiPicker/Resources/Localization; @@ -745,7 +749,7 @@ /* Begin XCBuildConfiguration section */ 0DFE7CDB9BF57C6A9EE6D5E68FC2869E /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 041A7A03D83DB2FBAFA74864E9834356 /* EmojiPicker.unit-tests.debug.xcconfig */; + baseConfigurationReference = 83CBEB4E884D5C164543FDE049E40A04 /* EmojiPicker.unit-tests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ARCHS = "$(ARCHS_STANDARD_64_BIT)"; @@ -766,6 +770,22 @@ }; name = Debug; }; + 1101E2C31638494F88C857C79AD78A3F /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C276690BF444B716F6A0663B7507A7A3 /* EmojiPicker.debug.xcconfig */; + buildSettings = { + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/EmojiPicker"; + IBSC_MODULE = EmojiPicker; + INFOPLIST_FILE = "Target Support Files/EmojiPicker/ResourceBundle-Resources-EmojiPicker-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 11.1; + PRODUCT_NAME = Resources; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; 12E068767CF35B513130A458C3536CFB /* Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -821,8 +841,7 @@ MTL_FAST_MATH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; STRIP_INSTALLED_PRODUCT = NO; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_VERSION = 5.0; SYMROOT = "${SRCROOT}/../build"; }; @@ -928,19 +947,36 @@ }; name = Debug; }; - 3D2785921C40D7C52F7AD87E7DBC84CC /* Release */ = { + 4A9D228FEFE9D96A7623F598D75726D1 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 17401A5A0DF8ABF7796B3D4CD1112AD0 /* EmojiPicker.release.xcconfig */; + baseConfigurationReference = 0183F38D78E1C2EFC6321B8CC252150D /* EmojiPicker.release.xcconfig */; buildSettings = { - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/EmojiPicker"; - IBSC_MODULE = EmojiPicker; - INFOPLIST_FILE = "Target Support Files/EmojiPicker/ResourceBundle-EmojiPicker-EmojiPicker-Info.plist"; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/EmojiPicker/EmojiPicker-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/EmojiPicker/EmojiPicker-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 11.1; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/EmojiPicker/EmojiPicker.modulemap"; + PRODUCT_MODULE_NAME = EmojiPicker; PRODUCT_NAME = EmojiPicker; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.2; TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; }; name = Release; }; @@ -979,42 +1015,49 @@ }; name = Release; }; - A788C4DD129E0E171FB89341B1E516AE /* Release */ = { + B982F2D28A86447894FB3628131272EA /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 17401A5A0DF8ABF7796B3D4CD1112AD0 /* EmojiPicker.release.xcconfig */; + baseConfigurationReference = 416B0779F7AA40BD8EEECEF13B84372D /* EmojiPicker.unit-tests.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGNING_ALLOWED = YES; + CODE_SIGNING_REQUIRED = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/EmojiPicker/EmojiPicker-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/EmojiPicker/EmojiPicker-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + GCC_PREFIX_HEADER = "Target Support Files/EmojiPicker/EmojiPicker-Unit-Tests-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/EmojiPicker/EmojiPicker-Unit-Tests-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 11.1; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/EmojiPicker/EmojiPicker.modulemap"; - PRODUCT_MODULE_NAME = EmojiPicker; - PRODUCT_NAME = EmojiPicker; + PRODUCT_NAME = "EmojiPicker-Unit-Tests"; SDKROOT = iphoneos; - SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; }; name = Release; }; - AA24B63E5D9BA43F30CF58357CC8B0AE /* Debug */ = { + D948A3869E888272CC5EA82022383717 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DC8D565E44247E3ABD80A3CBEA95F669 /* EmojiPicker.debug.xcconfig */; + baseConfigurationReference = 0183F38D78E1C2EFC6321B8CC252150D /* EmojiPicker.release.xcconfig */; + buildSettings = { + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/EmojiPicker"; + IBSC_MODULE = EmojiPicker; + INFOPLIST_FILE = "Target Support Files/EmojiPicker/ResourceBundle-Resources-EmojiPicker-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 11.1; + PRODUCT_NAME = Resources; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; + F34B7570FC0EFA36E95A13BD604FA0F7 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C276690BF444B716F6A0663B7507A7A3 /* EmojiPicker.debug.xcconfig */; buildSettings = { ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_ENABLE_OBJC_WEAK = NO; @@ -1044,58 +1087,9 @@ }; name = Debug; }; - B982F2D28A86447894FB3628131272EA /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 568D80584474970311A6F37C6C3C5D91 /* EmojiPicker.unit-tests.release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGNING_ALLOWED = YES; - CODE_SIGNING_REQUIRED = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - GCC_PREFIX_HEADER = "Target Support Files/EmojiPicker/EmojiPicker-Unit-Tests-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/EmojiPicker/EmojiPicker-Unit-Tests-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 11.1; - PRODUCT_NAME = "EmojiPicker-Unit-Tests"; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.2; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - D12719715D4778BF1BDDE545F205DD0C /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = DC8D565E44247E3ABD80A3CBEA95F669 /* EmojiPicker.debug.xcconfig */; - buildSettings = { - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/EmojiPicker"; - IBSC_MODULE = EmojiPicker; - INFOPLIST_FILE = "Target Support Files/EmojiPicker/ResourceBundle-EmojiPicker-EmojiPicker-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 11.1; - PRODUCT_NAME = EmojiPicker; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 2CEA6AF2803591D04F4987E8D71E4B5F /* Build configuration list for PBXNativeTarget "EmojiPicker" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - AA24B63E5D9BA43F30CF58357CC8B0AE /* Debug */, - A788C4DD129E0E171FB89341B1E516AE /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 2E79EC551354858368B86988525197C5 /* Build configuration list for PBXNativeTarget "Pods-EmojiPicker_Example" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -1105,11 +1099,11 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 3694301DE9AC72278133D67E99CA3F32 /* Build configuration list for PBXNativeTarget "EmojiPicker-EmojiPicker" */ = { + 306582DAAC64C3FC3C4F5FF0D0CC8C29 /* Build configuration list for PBXNativeTarget "EmojiPicker-Resources" */ = { isa = XCConfigurationList; buildConfigurations = ( - D12719715D4778BF1BDDE545F205DD0C /* Debug */, - 3D2785921C40D7C52F7AD87E7DBC84CC /* Release */, + 1101E2C31638494F88C857C79AD78A3F /* Debug */, + D948A3869E888272CC5EA82022383717 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -1132,6 +1126,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + E30A9DAB2DA097E2690B8714EC08F219 /* Build configuration list for PBXNativeTarget "EmojiPicker" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F34B7570FC0EFA36E95A13BD604FA0F7 /* Debug */, + 4A9D228FEFE9D96A7623F598D75726D1 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; diff --git a/Example App/Pods/Pods.xcodeproj/xcuserdata/egbad.xcuserdatad/xcschemes/EmojiPicker-EmojiPicker.xcscheme b/Example App/Pods/Pods.xcodeproj/xcuserdata/egbad.xcuserdatad/xcschemes/EmojiPicker-Resources.xcscheme similarity index 91% rename from Example App/Pods/Pods.xcodeproj/xcuserdata/egbad.xcuserdatad/xcschemes/EmojiPicker-EmojiPicker.xcscheme rename to Example App/Pods/Pods.xcodeproj/xcuserdata/egbad.xcuserdatad/xcschemes/EmojiPicker-Resources.xcscheme index c5958d2..2d78399 100644 --- a/Example App/Pods/Pods.xcodeproj/xcuserdata/egbad.xcuserdatad/xcschemes/EmojiPicker-EmojiPicker.xcscheme +++ b/Example App/Pods/Pods.xcodeproj/xcuserdata/egbad.xcuserdatad/xcschemes/EmojiPicker-Resources.xcscheme @@ -14,9 +14,9 @@ buildForAnalyzing = "YES"> diff --git a/Example App/Pods/Pods.xcodeproj/xcuserdata/egbad.xcuserdatad/xcschemes/xcschememanagement.plist b/Example App/Pods/Pods.xcodeproj/xcuserdata/egbad.xcuserdatad/xcschemes/xcschememanagement.plist index 5449e3d..36e3c39 100644 --- a/Example App/Pods/Pods.xcodeproj/xcuserdata/egbad.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/Example App/Pods/Pods.xcodeproj/xcuserdata/egbad.xcuserdatad/xcschemes/xcschememanagement.plist @@ -4,7 +4,7 @@ SchemeUserState - EmojiPicker-EmojiPicker.xcscheme + EmojiPicker-Resources.xcscheme isShown diff --git a/Example App/Pods/Target Support Files/EmojiPicker/EmojiPicker-Unit-Tests-resources.sh b/Example App/Pods/Target Support Files/EmojiPicker/EmojiPicker-Unit-Tests-resources.sh index 90db915..da7b31f 100755 --- a/Example App/Pods/Target Support Files/EmojiPicker/EmojiPicker-Unit-Tests-resources.sh +++ b/Example App/Pods/Target Support Files/EmojiPicker/EmojiPicker-Unit-Tests-resources.sh @@ -97,10 +97,10 @@ EOM esac } if [[ "$CONFIGURATION" == "Debug" ]]; then - install_resource "${PODS_CONFIGURATION_BUILD_DIR}/EmojiPicker/EmojiPicker.bundle" + install_resource "${PODS_CONFIGURATION_BUILD_DIR}/EmojiPicker/Resources.bundle" fi if [[ "$CONFIGURATION" == "Release" ]]; then - install_resource "${PODS_CONFIGURATION_BUILD_DIR}/EmojiPicker/EmojiPicker.bundle" + install_resource "${PODS_CONFIGURATION_BUILD_DIR}/EmojiPicker/Resources.bundle" fi mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" diff --git a/Example App/Pods/Target Support Files/EmojiPicker/ResourceBundle-Resources-EmojiPicker-Info.plist b/Example App/Pods/Target Support Files/EmojiPicker/ResourceBundle-Resources-EmojiPicker-Info.plist new file mode 100644 index 0000000..eed7bb1 --- /dev/null +++ b/Example App/Pods/Target Support Files/EmojiPicker/ResourceBundle-Resources-EmojiPicker-Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + BNDL + CFBundleShortVersionString + 3.0.4 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSPrincipalClass + + + diff --git a/Sources/EmojiPicker/Extensions/Foundation/Bundle.swift b/Sources/EmojiPicker/Extensions/Foundation/Bundle.swift index ceebd05..04c19cb 100644 --- a/Sources/EmojiPicker/Extensions/Foundation/Bundle.swift +++ b/Sources/EmojiPicker/Extensions/Foundation/Bundle.swift @@ -32,7 +32,7 @@ extension Bundle { - Note: It was named same as for Swift Package to simplify usage. */ static var module: Bundle { - let path = Bundle(for: UnicodeManager.self).path(forResource: "EmojiPicker", ofType: "bundle") ?? "" + let path = Bundle(for: UnicodeManager.self).path(forResource: "Resources", ofType: "bundle") ?? "" return Bundle(path: path) ?? Bundle.main } } diff --git a/Sources/EmojiPicker/Models/Emoji.swift b/Sources/EmojiPicker/Models/Emoji.swift new file mode 100644 index 0000000..7d6220f --- /dev/null +++ b/Sources/EmojiPicker/Models/Emoji.swift @@ -0,0 +1,57 @@ +// The MIT License (MIT) +// Copyright © 2022 Egor Badmaev +// +// 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. + +struct EmojiSet: Decodable { + let categories: [Category] + let emojis: [String: Emoji] + let aliases: [String: String] + let sheet: Sheet +} + +// MARK: - Category + +struct Category: Decodable { + let id: String + let emojis: [String] +} + +// MARK: - Emoji + +struct Emoji: Decodable { + let id, name: String + let keywords: [String] + let skins: [Skin] + let version: Double + let emoticons: [String]? +} + +// MARK: - Skin + +struct Skin: Decodable { + let unified, native: String + let x, y: Int +} + +// MARK: - Sheet + +struct Sheet: Decodable { + let cols, rows: Int +} diff --git a/Sources/EmojiPicker/Resources/Data/1.json b/Sources/EmojiPicker/Resources/Data/1.json new file mode 100644 index 0000000..7a7f9b3 --- /dev/null +++ b/Sources/EmojiPicker/Resources/Data/1.json @@ -0,0 +1 @@ +{"categories":[{"id":"people","emojis":["grinning","smiley","smile","grin","laughing","sweat_smile","joy","slightly_smiling_face","upside_down_face","wink","blush","innocent","heart_eyes","kissing_heart","kissing","relaxed","kissing_closed_eyes","kissing_smiling_eyes","yum","stuck_out_tongue","stuck_out_tongue_winking_eye","stuck_out_tongue_closed_eyes","money_mouth_face","hugging_face","thinking_face","zipper_mouth_face","neutral_face","expressionless","no_mouth","smirk","unamused","face_with_rolling_eyes","grimacing","relieved","pensive","sleepy","sleeping","mask","face_with_thermometer","face_with_head_bandage","dizzy_face","sunglasses","nerd_face","confused","worried","slightly_frowning_face","white_frowning_face","open_mouth","hushed","astonished","flushed","frowning","anguished","fearful","cold_sweat","disappointed_relieved","cry","sob","scream","confounded","persevere","disappointed","sweat","weary","tired_face","triumph","rage","angry","smiling_imp","imp","skull","skull_and_crossbones","hankey","japanese_ogre","japanese_goblin","ghost","alien","space_invader","robot_face","smiley_cat","smile_cat","joy_cat","heart_eyes_cat","smirk_cat","kissing_cat","scream_cat","crying_cat_face","pouting_cat","see_no_evil","hear_no_evil","speak_no_evil","kiss","love_letter","cupid","gift_heart","sparkling_heart","heartpulse","heartbeat","revolving_hearts","two_hearts","heart_decoration","heavy_heart_exclamation_mark_ornament","broken_heart","heart","yellow_heart","green_heart","blue_heart","purple_heart","100","anger","boom","dizzy","sweat_drops","dash","wave","raised_hand_with_fingers_splayed","hand","spock-hand","ok_hand","v","the_horns","point_left","point_right","point_up_2","middle_finger","point_down","point_up","+1","-1","fist","facepunch","clap","raised_hands","open_hands","pray","writing_hand","nail_care","muscle","ear","nose","eyes","eye","tongue","lips","baby","boy","girl","person_with_blond_hair","man","woman","older_man","older_woman","person_frowning","person_with_pouting_face","no_good","ok_woman","information_desk_person","raising_hand","bow","cop","sleuth_or_spy","guardsman","construction_worker","princess","man_with_turban","man_with_gua_pi_mao","bride_with_veil","angel","santa","massage","haircut","walking","runner","dancer","man_in_business_suit_levitating","dancers","horse_racing","skier","snowboarder","golfer","surfer","rowboat","swimmer","person_with_ball","weight_lifter","bicyclist","mountain_bicyclist","bath","sleeping_accommodation","two_women_holding_hands","man_and_woman_holding_hands","two_men_holding_hands","couplekiss","couple_with_heart","family","speaking_head_in_silhouette","bust_in_silhouette","busts_in_silhouette","footprints","hole","bomb","speech_balloon","right_anger_bubble","thought_balloon","zzz"]},{"id":"nature","emojis":["monkey_face","monkey","dog","dog2","poodle","wolf","cat","cat2","lion_face","tiger","tiger2","leopard","horse","racehorse","unicorn_face","cow","ox","water_buffalo","cow2","pig","pig2","boar","pig_nose","ram","sheep","goat","dromedary_camel","camel","elephant","mouse","mouse2","rat","hamster","rabbit","rabbit2","chipmunk","bear","koala","panda_face","feet","turkey","chicken","rooster","hatching_chick","baby_chick","hatched_chick","bird","penguin","dove_of_peace","frog","crocodile","turtle","snake","dragon_face","dragon","whale","whale2","dolphin","fish","tropical_fish","blowfish","octopus","shell","snail","bug","ant","bee","ladybug","spider","spider_web","scorpion","bouquet","cherry_blossom","white_flower","rosette","rose","hibiscus","sunflower","blossom","tulip","seedling","evergreen_tree","deciduous_tree","palm_tree","cactus","ear_of_rice","herb","shamrock","four_leaf_clover","maple_leaf","fallen_leaf","leaves"]},{"id":"foods","emojis":["grapes","melon","watermelon","tangerine","lemon","banana","pineapple","apple","green_apple","pear","peach","cherries","strawberry","tomato","eggplant","corn","hot_pepper","mushroom","chestnut","bread","cheese_wedge","meat_on_bone","poultry_leg","hamburger","fries","pizza","hotdog","taco","burrito","fried_egg","stew","popcorn","bento","rice_cracker","rice_ball","rice","curry","ramen","spaghetti","sweet_potato","oden","sushi","fried_shrimp","fish_cake","dango","crab","icecream","shaved_ice","ice_cream","doughnut","cookie","birthday","cake","chocolate_bar","candy","lollipop","custard","honey_pot","baby_bottle","coffee","tea","sake","champagne","wine_glass","cocktail","tropical_drink","beer","beers","knife_fork_plate","fork_and_knife","hocho","amphora"]},{"id":"activity","emojis":["jack_o_lantern","christmas_tree","fireworks","sparkler","sparkles","balloon","tada","confetti_ball","tanabata_tree","bamboo","dolls","flags","wind_chime","rice_scene","ribbon","gift","reminder_ribbon","admission_tickets","ticket","medal","trophy","sports_medal","soccer","baseball","basketball","volleyball","football","rugby_football","tennis","bowling","cricket_bat_and_ball","field_hockey_stick_and_ball","ice_hockey_stick_and_puck","table_tennis_paddle_and_ball","badminton_racquet_and_shuttlecock","golf","ice_skate","fishing_pole_and_fish","running_shirt_with_sash","ski","dart","8ball","crystal_ball","video_game","joystick","slot_machine","game_die","spades","hearts","diamonds","clubs","black_joker","mahjong","flower_playing_cards","performing_arts","frame_with_picture","art"]},{"id":"places","emojis":["earth_africa","earth_americas","earth_asia","globe_with_meridians","world_map","japan","snow_capped_mountain","mountain","volcano","mount_fuji","camping","beach_with_umbrella","desert","desert_island","national_park","stadium","classical_building","building_construction","house_buildings","derelict_house_building","house","house_with_garden","office","post_office","european_post_office","hospital","bank","hotel","love_hotel","convenience_store","school","department_store","factory","japanese_castle","european_castle","wedding","tokyo_tower","statue_of_liberty","church","mosque","synagogue","shinto_shrine","kaaba","fountain","tent","foggy","night_with_stars","cityscape","sunrise_over_mountains","sunrise","city_sunset","city_sunrise","bridge_at_night","hotsprings","carousel_horse","ferris_wheel","roller_coaster","barber","circus_tent","steam_locomotive","railway_car","bullettrain_side","bullettrain_front","train2","metro","light_rail","station","tram","monorail","mountain_railway","train","bus","oncoming_bus","trolleybus","minibus","ambulance","fire_engine","police_car","oncoming_police_car","taxi","oncoming_taxi","car","oncoming_automobile","blue_car","truck","articulated_lorry","tractor","racing_car","racing_motorcycle","bike","busstop","motorway","railway_track","oil_drum","fuelpump","rotating_light","traffic_light","vertical_traffic_light","construction","anchor","boat","speedboat","passenger_ship","ferry","motor_boat","ship","airplane","small_airplane","airplane_departure","airplane_arriving","seat","helicopter","suspension_railway","mountain_cableway","aerial_tramway","satellite","rocket","bellhop_bell","hourglass","hourglass_flowing_sand","watch","alarm_clock","stopwatch","timer_clock","mantelpiece_clock","clock12","clock1230","clock1","clock130","clock2","clock230","clock3","clock330","clock4","clock430","clock5","clock530","clock6","clock630","clock7","clock730","clock8","clock830","clock9","clock930","clock10","clock1030","clock11","clock1130","new_moon","waxing_crescent_moon","first_quarter_moon","moon","full_moon","waning_gibbous_moon","last_quarter_moon","waning_crescent_moon","crescent_moon","new_moon_with_face","first_quarter_moon_with_face","last_quarter_moon_with_face","thermometer","sunny","full_moon_with_face","sun_with_face","star","star2","stars","milky_way","cloud","partly_sunny","thunder_cloud_and_rain","mostly_sunny","barely_sunny","partly_sunny_rain","rain_cloud","snow_cloud","lightning","tornado","fog","wind_blowing_face","cyclone","rainbow","closed_umbrella","umbrella","umbrella_with_rain_drops","umbrella_on_ground","zap","snowflake","snowman","snowman_without_snow","comet","fire","droplet","ocean"]},{"id":"objects","emojis":["eyeglasses","dark_sunglasses","necktie","shirt","jeans","dress","kimono","bikini","womans_clothes","purse","handbag","pouch","shopping_bags","school_satchel","mans_shoe","athletic_shoe","high_heel","sandal","boot","crown","womans_hat","tophat","mortar_board","helmet_with_white_cross","prayer_beads","lipstick","ring","gem","mute","speaker","sound","loud_sound","loudspeaker","mega","postal_horn","bell","no_bell","musical_score","musical_note","notes","studio_microphone","level_slider","control_knobs","microphone","headphones","radio","saxophone","guitar","musical_keyboard","trumpet","violin","iphone","calling","phone","telephone_receiver","pager","fax","battery","electric_plug","computer","desktop_computer","printer","keyboard","three_button_mouse","trackball","minidisc","floppy_disk","cd","dvd","movie_camera","film_frames","film_projector","clapper","tv","camera","camera_with_flash","video_camera","vhs","mag","mag_right","candle","bulb","flashlight","izakaya_lantern","notebook_with_decorative_cover","closed_book","book","green_book","blue_book","orange_book","books","notebook","ledger","page_with_curl","scroll","page_facing_up","newspaper","rolled_up_newspaper","bookmark_tabs","bookmark","label","moneybag","yen","dollar","euro","pound","money_with_wings","credit_card","chart","email","e-mail","incoming_envelope","envelope_with_arrow","outbox_tray","inbox_tray","package","mailbox","mailbox_closed","mailbox_with_mail","mailbox_with_no_mail","postbox","ballot_box_with_ballot","pencil2","black_nib","lower_left_fountain_pen","lower_left_ballpoint_pen","lower_left_paintbrush","lower_left_crayon","memo","briefcase","file_folder","open_file_folder","card_index_dividers","date","calendar","spiral_note_pad","spiral_calendar_pad","card_index","chart_with_upwards_trend","chart_with_downwards_trend","bar_chart","clipboard","pushpin","round_pushpin","paperclip","linked_paperclips","straight_ruler","triangular_ruler","scissors","card_file_box","file_cabinet","wastebasket","lock","unlock","lock_with_ink_pen","closed_lock_with_key","key","old_key","hammer","pick","hammer_and_pick","hammer_and_wrench","dagger_knife","crossed_swords","gun","bow_and_arrow","shield","wrench","nut_and_bolt","gear","compression","scales","link","chains","alembic","microscope","telescope","satellite_antenna","syringe","pill","door","bed","couch_and_lamp","toilet","shower","bathtub","smoking","coffin","funeral_urn","moyai"]},{"id":"symbols","emojis":["atm","put_litter_in_its_place","potable_water","wheelchair","mens","womens","restroom","baby_symbol","wc","passport_control","customs","baggage_claim","left_luggage","warning","children_crossing","no_entry","no_entry_sign","no_bicycles","no_smoking","do_not_litter","non-potable_water","no_pedestrians","no_mobile_phones","underage","radioactive_sign","biohazard_sign","arrow_up","arrow_upper_right","arrow_right","arrow_lower_right","arrow_down","arrow_lower_left","arrow_left","arrow_upper_left","arrow_up_down","left_right_arrow","leftwards_arrow_with_hook","arrow_right_hook","arrow_heading_up","arrow_heading_down","arrows_clockwise","arrows_counterclockwise","back","end","on","soon","top","place_of_worship","atom_symbol","om_symbol","star_of_david","wheel_of_dharma","yin_yang","latin_cross","orthodox_cross","star_and_crescent","peace_symbol","menorah_with_nine_branches","six_pointed_star","aries","taurus","gemini","cancer","leo","virgo","libra","scorpius","sagittarius","capricorn","aquarius","pisces","ophiuchus","twisted_rightwards_arrows","repeat","repeat_one","arrow_forward","fast_forward","black_right_pointing_double_triangle_with_vertical_bar","black_right_pointing_triangle_with_double_vertical_bar","arrow_backward","rewind","black_left_pointing_double_triangle_with_vertical_bar","arrow_up_small","arrow_double_up","arrow_down_small","arrow_double_down","double_vertical_bar","black_square_for_stop","black_circle_for_record","eject","cinema","low_brightness","high_brightness","signal_strength","vibration_mode","mobile_phone_off","heavy_multiplication_x","heavy_plus_sign","heavy_minus_sign","heavy_division_sign","bangbang","interrobang","question","grey_question","grey_exclamation","exclamation","wavy_dash","currency_exchange","heavy_dollar_sign","recycle","fleur_de_lis","trident","name_badge","beginner","o","white_check_mark","ballot_box_with_check","heavy_check_mark","x","negative_squared_cross_mark","curly_loop","loop","part_alternation_mark","eight_spoked_asterisk","eight_pointed_black_star","sparkle","copyright","registered","tm","hash","zero","one","two","three","four","five","six","seven","eight","nine","keycap_ten","capital_abcd","abcd","1234","symbols","abc","a","ab","b","cl","cool","free","information_source","id","m","new","ng","o2","ok","parking","sos","up","vs","koko","sa","u6708","u6709","u6307","ideograph_advantage","u5272","u7121","u7981","accept","u7533","u5408","u7a7a","congratulations","secret","u55b6","u6e80","red_circle","large_blue_circle","black_circle","white_circle","black_large_square","white_large_square","black_medium_square","white_medium_square","black_medium_small_square","white_medium_small_square","black_small_square","white_small_square","large_orange_diamond","large_blue_diamond","small_orange_diamond","small_blue_diamond","small_red_triangle","small_red_triangle_down","diamond_shape_with_a_dot_inside","radio_button","white_square_button","black_square_button"]},{"id":"flags","emojis":["checkered_flag","cn","crossed_flags","de","es","fr","gb","it","jp","kr","ru","triangular_flag_on_post","us","waving_black_flag","waving_white_flag"]}],"emojis":{"100":{"id":"100","name":"Hundred Points","keywords":["100","score","perfect","numbers","century","exam","quiz","test","pass"],"skins":[{"unified":"1f4af","native":"💯","x":28,"y":6}],"version":1},"1234":{"id":"1234","name":"Input Numbers","keywords":["1234","blue","square"],"skins":[{"unified":"1f522","native":"🔢","x":29,"y":59}],"version":1},"grinning":{"id":"grinning","name":"Grinning Face","emoticons":[":D"],"keywords":["smile","happy","joy",":D","grin"],"skins":[{"unified":"1f600","native":"😀","x":32,"y":20}],"version":1},"smiley":{"id":"smiley","name":"Grinning Face with Big Eyes","emoticons":[":)","=)","=-)"],"keywords":["smiley","happy","joy","haha",":D",":)","smile","funny"],"skins":[{"unified":"1f603","native":"😃","x":32,"y":23}],"version":1},"smile":{"id":"smile","name":"Grinning Face with Smiling Eyes","emoticons":[":)","C:","c:",":D",":-D"],"keywords":["smile","happy","joy","funny","haha","laugh","like",":D",":)"],"skins":[{"unified":"1f604","native":"😄","x":32,"y":24}],"version":1},"grin":{"id":"grin","name":"Beaming Face with Smiling Eyes","keywords":["grin","happy","smile","joy","kawaii"],"skins":[{"unified":"1f601","native":"😁","x":32,"y":21}],"version":1},"laughing":{"id":"laughing","name":"Grinning Squinting Face","emoticons":[":>",":->"],"keywords":["laughing","satisfied","happy","joy","lol","haha","glad","XD","laugh"],"skins":[{"unified":"1f606","native":"😆","x":32,"y":26}],"version":1},"sweat_smile":{"id":"sweat_smile","name":"Grinning Face with Sweat","keywords":["smile","hot","happy","laugh","relief"],"skins":[{"unified":"1f605","native":"😅","x":32,"y":25}],"version":1},"joy":{"id":"joy","name":"Face with Tears of Joy","keywords":["cry","weep","happy","happytears","haha"],"skins":[{"unified":"1f602","native":"😂","x":32,"y":22}],"version":1},"slightly_smiling_face":{"id":"slightly_smiling_face","name":"Slightly Smiling Face","emoticons":[":)","(:",":-)"],"keywords":["smile"],"skins":[{"unified":"1f642","native":"🙂","x":33,"y":28}],"version":1},"upside_down_face":{"id":"upside_down_face","name":"Upside-Down Face","keywords":["upside","down","flipped","silly","smile"],"skins":[{"unified":"1f643","native":"🙃","x":33,"y":29}],"version":1},"wink":{"id":"wink","name":"Winking Face","emoticons":[";)",";-)"],"keywords":["wink","happy","mischievous","secret",";)","smile","eye"],"skins":[{"unified":"1f609","native":"😉","x":32,"y":29}],"version":1},"blush":{"id":"blush","name":"Smiling Face with Smiling Eyes","emoticons":[":)"],"keywords":["blush","smile","happy","flushed","crush","embarrassed","shy","joy"],"skins":[{"unified":"1f60a","native":"😊","x":32,"y":30}],"version":1},"innocent":{"id":"innocent","name":"Smiling Face with Halo","keywords":["innocent","angel","heaven"],"skins":[{"unified":"1f607","native":"😇","x":32,"y":27}],"version":1},"heart_eyes":{"id":"heart_eyes","name":"Smiling Face with Heart-Eyes","keywords":["heart","eyes","love","like","affection","valentines","infatuation","crush"],"skins":[{"unified":"1f60d","native":"😍","x":32,"y":33}],"version":1},"kissing_heart":{"id":"kissing_heart","name":"Face Blowing a Kiss","emoticons":[":*",":-*"],"keywords":["kissing","heart","love","like","affection","valentines","infatuation"],"skins":[{"unified":"1f618","native":"😘","x":32,"y":44}],"version":1},"kissing":{"id":"kissing","name":"Kissing Face","keywords":["love","like","3","valentines","infatuation","kiss"],"skins":[{"unified":"1f617","native":"😗","x":32,"y":43}],"version":1},"relaxed":{"id":"relaxed","name":"Smiling Face","keywords":["relaxed","blush","massage","happiness"],"skins":[{"unified":"263a-fe0f","native":"☺️","x":57,"y":4}],"version":1},"kissing_closed_eyes":{"id":"kissing_closed_eyes","name":"Kissing Face with Closed Eyes","keywords":["love","like","affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f61a","native":"😚","x":32,"y":46}],"version":1},"kissing_smiling_eyes":{"id":"kissing_smiling_eyes","name":"Kissing Face with Smiling Eyes","keywords":["affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f619","native":"😙","x":32,"y":45}],"version":1},"yum":{"id":"yum","name":"Face Savoring Food","keywords":["yum","happy","joy","tongue","smile","silly","yummy","nom","delicious","savouring"],"skins":[{"unified":"1f60b","native":"😋","x":32,"y":31}],"version":1},"stuck_out_tongue":{"id":"stuck_out_tongue","name":"Face with Tongue","emoticons":[":p",":-p",":P",":-P",":b",":-b"],"keywords":["stuck","out","prank","childish","playful","mischievous","smile"],"skins":[{"unified":"1f61b","native":"😛","x":32,"y":47}],"version":1},"stuck_out_tongue_winking_eye":{"id":"stuck_out_tongue_winking_eye","name":"Winking Face with Tongue","emoticons":[";p",";-p",";b",";-b",";P",";-P"],"keywords":["stuck","out","eye","prank","childish","playful","mischievous","smile","wink"],"skins":[{"unified":"1f61c","native":"😜","x":32,"y":48}],"version":1},"stuck_out_tongue_closed_eyes":{"id":"stuck_out_tongue_closed_eyes","name":"Squinting Face with Tongue","keywords":["stuck","out","closed","eyes","prank","playful","mischievous","smile"],"skins":[{"unified":"1f61d","native":"😝","x":32,"y":49}],"version":1},"money_mouth_face":{"id":"money_mouth_face","name":"Money-Mouth Face","keywords":["money","mouth","rich","dollar"],"skins":[{"unified":"1f911","native":"🤑","x":38,"y":59}],"version":1},"hugging_face":{"id":"hugging_face","name":"Hugging Face","keywords":["smile","hug"],"skins":[{"unified":"1f917","native":"🤗","x":39,"y":4}],"version":1},"thinking_face":{"id":"thinking_face","name":"Thinking Face","keywords":["hmmm","think","consider"],"skins":[{"unified":"1f914","native":"🤔","x":39,"y":1}],"version":1},"zipper_mouth_face":{"id":"zipper_mouth_face","name":"Zipper-Mouth Face","keywords":["zipper","mouth","sealed","secret"],"skins":[{"unified":"1f910","native":"🤐","x":38,"y":58}],"version":1},"neutral_face":{"id":"neutral_face","name":"Neutral Face","emoticons":[":|",":-|"],"keywords":["indifference","meh",":",""],"skins":[{"unified":"1f610","native":"😐","x":32,"y":36}],"version":1},"expressionless":{"id":"expressionless","name":"Expressionless Face","emoticons":["-_-"],"keywords":["indifferent","-","","meh","deadpan"],"skins":[{"unified":"1f611","native":"😑","x":32,"y":37}],"version":1},"no_mouth":{"id":"no_mouth","name":"Face Without Mouth","keywords":["no","hellokitty"],"skins":[{"unified":"1f636","native":"😶","x":33,"y":16}],"version":1},"smirk":{"id":"smirk","name":"Smirking Face","keywords":["smirk","smile","mean","prank","smug","sarcasm"],"skins":[{"unified":"1f60f","native":"😏","x":32,"y":35}],"version":1},"unamused":{"id":"unamused","name":"Unamused Face","emoticons":[":("],"keywords":["indifference","bored","straight","serious","sarcasm","unimpressed","skeptical","dubious","side","eye"],"skins":[{"unified":"1f612","native":"😒","x":32,"y":38}],"version":1},"face_with_rolling_eyes":{"id":"face_with_rolling_eyes","name":"Face with Rolling Eyes","keywords":["eyeroll","frustrated"],"skins":[{"unified":"1f644","native":"🙄","x":33,"y":30}],"version":1},"grimacing":{"id":"grimacing","name":"Grimacing Face","keywords":["grimace","teeth"],"skins":[{"unified":"1f62c","native":"😬","x":33,"y":3}],"version":1},"relieved":{"id":"relieved","name":"Relieved Face","keywords":["relaxed","phew","massage","happiness"],"skins":[{"unified":"1f60c","native":"😌","x":32,"y":32}],"version":1},"pensive":{"id":"pensive","name":"Pensive Face","keywords":["sad","depressed","upset"],"skins":[{"unified":"1f614","native":"😔","x":32,"y":40}],"version":1},"sleepy":{"id":"sleepy","name":"Sleepy Face","keywords":["tired","rest","nap"],"skins":[{"unified":"1f62a","native":"😪","x":33,"y":1}],"version":1},"sleeping":{"id":"sleeping","name":"Sleeping Face","keywords":["tired","sleepy","night","zzz"],"skins":[{"unified":"1f634","native":"😴","x":33,"y":12}],"version":1},"mask":{"id":"mask","name":"Face with Medical Mask","keywords":["sick","ill","disease"],"skins":[{"unified":"1f637","native":"😷","x":33,"y":17}],"version":1},"face_with_thermometer":{"id":"face_with_thermometer","name":"Face with Thermometer","keywords":["sick","temperature","cold","fever"],"skins":[{"unified":"1f912","native":"🤒","x":38,"y":60}],"version":1},"face_with_head_bandage":{"id":"face_with_head_bandage","name":"Face with Head-Bandage","keywords":["head","bandage","injured","clumsy","hurt"],"skins":[{"unified":"1f915","native":"🤕","x":39,"y":2}],"version":1},"dizzy_face":{"id":"dizzy_face","name":"Dizzy Face","keywords":["spent","unconscious","xox"],"skins":[{"unified":"1f635","native":"😵","x":33,"y":14}],"version":1},"sunglasses":{"id":"sunglasses","name":"Smiling Face with Sunglasses","emoticons":["8)"],"keywords":["cool","smile","summer","beach","sunglass"],"skins":[{"unified":"1f60e","native":"😎","x":32,"y":34}],"version":1},"nerd_face":{"id":"nerd_face","name":"Nerd Face","keywords":["nerdy","geek","dork"],"skins":[{"unified":"1f913","native":"🤓","x":39,"y":0}],"version":1},"confused":{"id":"confused","name":"Confused Face","emoticons":[":\\",":-\\",":/",":-/"],"keywords":["indifference","huh","weird","hmmm",":/"],"skins":[{"unified":"1f615","native":"😕","x":32,"y":41}],"version":1},"worried":{"id":"worried","name":"Worried Face","keywords":["concern","nervous",":("],"skins":[{"unified":"1f61f","native":"😟","x":32,"y":51}],"version":1},"slightly_frowning_face":{"id":"slightly_frowning_face","name":"Slightly Frowning Face","keywords":["disappointed","sad","upset"],"skins":[{"unified":"1f641","native":"🙁","x":33,"y":27}],"version":1},"white_frowning_face":{"id":"white_frowning_face","name":"Frowning Face","keywords":["white","sad","upset","frown"],"skins":[{"unified":"2639-fe0f","native":"☹️","x":57,"y":3}],"version":1},"open_mouth":{"id":"open_mouth","name":"Face with Open Mouth","emoticons":[":o",":-o",":O",":-O"],"keywords":["surprise","impressed","wow","whoa",":O"],"skins":[{"unified":"1f62e","native":"😮","x":33,"y":6}],"version":1},"hushed":{"id":"hushed","name":"Hushed Face","keywords":["woo","shh"],"skins":[{"unified":"1f62f","native":"😯","x":33,"y":7}],"version":1},"astonished":{"id":"astonished","name":"Astonished Face","keywords":["xox","surprised","poisoned"],"skins":[{"unified":"1f632","native":"😲","x":33,"y":10}],"version":1},"flushed":{"id":"flushed","name":"Flushed Face","keywords":["blush","shy","flattered"],"skins":[{"unified":"1f633","native":"😳","x":33,"y":11}],"version":1},"frowning":{"id":"frowning","name":"Frowning Face with Open Mouth","keywords":["aw","what"],"skins":[{"unified":"1f626","native":"😦","x":32,"y":58}],"version":1},"anguished":{"id":"anguished","name":"Anguished Face","emoticons":["D:"],"keywords":["stunned","nervous"],"skins":[{"unified":"1f627","native":"😧","x":32,"y":59}],"version":1},"fearful":{"id":"fearful","name":"Fearful Face","keywords":["scared","terrified","nervous","oops","huh"],"skins":[{"unified":"1f628","native":"😨","x":32,"y":60}],"version":1},"cold_sweat":{"id":"cold_sweat","name":"Anxious Face with Sweat","keywords":["cold","nervous"],"skins":[{"unified":"1f630","native":"😰","x":33,"y":8}],"version":1},"disappointed_relieved":{"id":"disappointed_relieved","name":"Sad but Relieved Face","keywords":["disappointed","phew","sweat","nervous"],"skins":[{"unified":"1f625","native":"😥","x":32,"y":57}],"version":1},"cry":{"id":"cry","name":"Crying Face","emoticons":[":'("],"keywords":["cry","tears","sad","depressed","upset",":'("],"skins":[{"unified":"1f622","native":"😢","x":32,"y":54}],"version":1},"sob":{"id":"sob","name":"Loudly Crying Face","emoticons":[":'("],"keywords":["sob","cry","tears","sad","upset","depressed"],"skins":[{"unified":"1f62d","native":"😭","x":33,"y":4}],"version":1},"scream":{"id":"scream","name":"Face Screaming in Fear","keywords":["scream","munch","scared","omg"],"skins":[{"unified":"1f631","native":"😱","x":33,"y":9}],"version":1},"confounded":{"id":"confounded","name":"Confounded Face","keywords":["confused","sick","unwell","oops",":S"],"skins":[{"unified":"1f616","native":"😖","x":32,"y":42}],"version":1},"persevere":{"id":"persevere","name":"Persevering Face","keywords":["persevere","sick","no","upset","oops"],"skins":[{"unified":"1f623","native":"😣","x":32,"y":55}],"version":1},"disappointed":{"id":"disappointed","name":"Disappointed Face","emoticons":["):",":(",":-("],"keywords":["sad","upset","depressed",":("],"skins":[{"unified":"1f61e","native":"😞","x":32,"y":50}],"version":1},"sweat":{"id":"sweat","name":"Face with Cold Sweat","keywords":["downcast","hot","sad","tired","exercise"],"skins":[{"unified":"1f613","native":"😓","x":32,"y":39}],"version":1},"weary":{"id":"weary","name":"Weary Face","keywords":["tired","sleepy","sad","frustrated","upset"],"skins":[{"unified":"1f629","native":"😩","x":33,"y":0}],"version":1},"tired_face":{"id":"tired_face","name":"Tired Face","keywords":["sick","whine","upset","frustrated"],"skins":[{"unified":"1f62b","native":"😫","x":33,"y":2}],"version":1},"triumph":{"id":"triumph","name":"Face with Look of Triumph","keywords":["steam","from","nose","gas","phew","proud","pride"],"skins":[{"unified":"1f624","native":"😤","x":32,"y":56}],"version":1},"rage":{"id":"rage","name":"Pouting Face","keywords":["rage","angry","mad","hate","despise"],"skins":[{"unified":"1f621","native":"😡","x":32,"y":53}],"version":1},"angry":{"id":"angry","name":"Angry Face","emoticons":[">:(",">:-("],"keywords":["mad","annoyed","frustrated"],"skins":[{"unified":"1f620","native":"😠","x":32,"y":52}],"version":1},"smiling_imp":{"id":"smiling_imp","name":"Smiling Face with Horns","keywords":["imp","devil"],"skins":[{"unified":"1f608","native":"😈","x":32,"y":28}],"version":1},"imp":{"id":"imp","name":"Imp","keywords":["angry","face","with","horns","devil"],"skins":[{"unified":"1f47f","native":"👿","x":25,"y":8}],"version":1},"skull":{"id":"skull","name":"Skull","keywords":["dead","skeleton","creepy","death"],"skins":[{"unified":"1f480","native":"💀","x":25,"y":9}],"version":1},"skull_and_crossbones":{"id":"skull_and_crossbones","name":"Skull and Crossbones","keywords":["poison","danger","deadly","scary","death","pirate","evil"],"skins":[{"unified":"2620-fe0f","native":"☠️","x":56,"y":56}],"version":1},"hankey":{"id":"hankey","name":"Pile of Poo","keywords":["hankey","poop","shit","shitface","fail","turd"],"skins":[{"unified":"1f4a9","native":"💩","x":27,"y":56}],"version":1},"japanese_ogre":{"id":"japanese_ogre","name":"Ogre","keywords":["japanese","monster","red","mask","halloween","scary","creepy","devil","demon"],"skins":[{"unified":"1f479","native":"👹","x":24,"y":58}],"version":1},"japanese_goblin":{"id":"japanese_goblin","name":"Goblin","keywords":["japanese","red","evil","mask","monster","scary","creepy"],"skins":[{"unified":"1f47a","native":"👺","x":24,"y":59}],"version":1},"ghost":{"id":"ghost","name":"Ghost","keywords":["halloween","spooky","scary"],"skins":[{"unified":"1f47b","native":"👻","x":24,"y":60}],"version":1},"alien":{"id":"alien","name":"Alien","keywords":["UFO","paul","weird","outer","space"],"skins":[{"unified":"1f47d","native":"👽","x":25,"y":6}],"version":1},"space_invader":{"id":"space_invader","name":"Alien Monster","keywords":["space","invader","game","arcade","play"],"skins":[{"unified":"1f47e","native":"👾","x":25,"y":7}],"version":1},"robot_face":{"id":"robot_face","name":"Robot","keywords":["face","computer","machine","bot"],"skins":[{"unified":"1f916","native":"🤖","x":39,"y":3}],"version":1},"smiley_cat":{"id":"smiley_cat","name":"Grinning Cat","keywords":["smiley","animal","cats","happy","smile"],"skins":[{"unified":"1f63a","native":"😺","x":33,"y":20}],"version":1},"smile_cat":{"id":"smile_cat","name":"Grinning Cat with Smiling Eyes","keywords":["smile","animal","cats"],"skins":[{"unified":"1f638","native":"😸","x":33,"y":18}],"version":1},"joy_cat":{"id":"joy_cat","name":"Cat with Tears of Joy","keywords":["animal","cats","haha","happy"],"skins":[{"unified":"1f639","native":"😹","x":33,"y":19}],"version":1},"heart_eyes_cat":{"id":"heart_eyes_cat","name":"Smiling Cat with Heart-Eyes","keywords":["heart","eyes","animal","love","like","affection","cats","valentines"],"skins":[{"unified":"1f63b","native":"😻","x":33,"y":21}],"version":1},"smirk_cat":{"id":"smirk_cat","name":"Cat with Wry Smile","keywords":["smirk","animal","cats"],"skins":[{"unified":"1f63c","native":"😼","x":33,"y":22}],"version":1},"kissing_cat":{"id":"kissing_cat","name":"Kissing Cat","keywords":["animal","cats","kiss"],"skins":[{"unified":"1f63d","native":"😽","x":33,"y":23}],"version":1},"scream_cat":{"id":"scream_cat","name":"Weary Cat","keywords":["scream","animal","cats","munch","scared"],"skins":[{"unified":"1f640","native":"🙀","x":33,"y":26}],"version":1},"crying_cat_face":{"id":"crying_cat_face","name":"Crying Cat","keywords":["face","animal","tears","weep","sad","cats","upset","cry"],"skins":[{"unified":"1f63f","native":"😿","x":33,"y":25}],"version":1},"pouting_cat":{"id":"pouting_cat","name":"Pouting Cat","keywords":["animal","cats"],"skins":[{"unified":"1f63e","native":"😾","x":33,"y":24}],"version":1},"see_no_evil":{"id":"see_no_evil","name":"See-No-Evil Monkey","keywords":["see","no","evil","animal","nature","haha"],"skins":[{"unified":"1f648","native":"🙈","x":34,"y":24}],"version":1},"hear_no_evil":{"id":"hear_no_evil","name":"Hear-No-Evil Monkey","keywords":["hear","no","evil","animal","nature"],"skins":[{"unified":"1f649","native":"🙉","x":34,"y":25}],"version":1},"speak_no_evil":{"id":"speak_no_evil","name":"Speak-No-Evil Monkey","keywords":["speak","no","evil","animal","nature","omg"],"skins":[{"unified":"1f64a","native":"🙊","x":34,"y":26}],"version":1},"kiss":{"id":"kiss","name":"Kiss Mark","keywords":["face","lips","love","like","affection","valentines"],"skins":[{"unified":"1f48b","native":"💋","x":26,"y":37}],"version":1},"love_letter":{"id":"love_letter","name":"Love Letter","keywords":["email","like","affection","envelope","valentines"],"skins":[{"unified":"1f48c","native":"💌","x":26,"y":38}],"version":1},"cupid":{"id":"cupid","name":"Heart with Arrow","keywords":["cupid","love","like","affection","valentines"],"skins":[{"unified":"1f498","native":"💘","x":27,"y":39}],"version":1},"gift_heart":{"id":"gift_heart","name":"Heart with Ribbon","keywords":["gift","love","valentines"],"skins":[{"unified":"1f49d","native":"💝","x":27,"y":44}],"version":1},"sparkling_heart":{"id":"sparkling_heart","name":"Sparkling Heart","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f496","native":"💖","x":27,"y":37}],"version":1},"heartpulse":{"id":"heartpulse","name":"Growing Heart","keywords":["heartpulse","like","love","affection","valentines","pink"],"skins":[{"unified":"1f497","native":"💗","x":27,"y":38}],"version":1},"heartbeat":{"id":"heartbeat","name":"Beating Heart","keywords":["heartbeat","love","like","affection","valentines","pink"],"skins":[{"unified":"1f493","native":"💓","x":27,"y":34}],"version":1},"revolving_hearts":{"id":"revolving_hearts","name":"Revolving Hearts","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f49e","native":"💞","x":27,"y":45}],"version":1},"two_hearts":{"id":"two_hearts","name":"Two Hearts","keywords":["love","like","affection","valentines","heart"],"skins":[{"unified":"1f495","native":"💕","x":27,"y":36}],"version":1},"heart_decoration":{"id":"heart_decoration","name":"Heart Decoration","keywords":["purple","square","love","like"],"skins":[{"unified":"1f49f","native":"💟","x":27,"y":46}],"version":1},"heavy_heart_exclamation_mark_ornament":{"id":"heavy_heart_exclamation_mark_ornament","name":"Heart Exclamation","keywords":["heavy","mark","ornament","decoration","love"],"skins":[{"unified":"2763-fe0f","native":"❣️","x":59,"y":7}],"version":1},"broken_heart":{"id":"broken_heart","name":"Broken Heart","emoticons":["",":->"],"keywords":["laughing","satisfied","happy","joy","lol","haha","glad","XD","laugh"],"skins":[{"unified":"1f606","native":"😆","x":32,"y":26}],"version":1},"sweat_smile":{"id":"sweat_smile","name":"Grinning Face with Sweat","keywords":["smile","hot","happy","laugh","relief"],"skins":[{"unified":"1f605","native":"😅","x":32,"y":25}],"version":1},"rolling_on_the_floor_laughing":{"id":"rolling_on_the_floor_laughing","name":"Rolling on the Floor Laughing","keywords":["face","lol","haha","rofl"],"skins":[{"unified":"1f923","native":"🤣","x":40,"y":15}],"version":3},"joy":{"id":"joy","name":"Face with Tears of Joy","keywords":["cry","weep","happy","happytears","haha"],"skins":[{"unified":"1f602","native":"😂","x":32,"y":22}],"version":1},"slightly_smiling_face":{"id":"slightly_smiling_face","name":"Slightly Smiling Face","emoticons":[":)","(:",":-)"],"keywords":["smile"],"skins":[{"unified":"1f642","native":"🙂","x":33,"y":28}],"version":1},"upside_down_face":{"id":"upside_down_face","name":"Upside-Down Face","keywords":["upside","down","flipped","silly","smile"],"skins":[{"unified":"1f643","native":"🙃","x":33,"y":29}],"version":1},"wink":{"id":"wink","name":"Winking Face","emoticons":[";)",";-)"],"keywords":["wink","happy","mischievous","secret",";)","smile","eye"],"skins":[{"unified":"1f609","native":"😉","x":32,"y":29}],"version":1},"blush":{"id":"blush","name":"Smiling Face with Smiling Eyes","emoticons":[":)"],"keywords":["blush","smile","happy","flushed","crush","embarrassed","shy","joy"],"skins":[{"unified":"1f60a","native":"😊","x":32,"y":30}],"version":1},"innocent":{"id":"innocent","name":"Smiling Face with Halo","keywords":["innocent","angel","heaven"],"skins":[{"unified":"1f607","native":"😇","x":32,"y":27}],"version":1},"smiling_face_with_3_hearts":{"id":"smiling_face_with_3_hearts","name":"Smiling Face with Hearts","keywords":["3","love","like","affection","valentines","infatuation","crush","adore"],"skins":[{"unified":"1f970","native":"🥰","x":43,"y":58}],"version":11},"heart_eyes":{"id":"heart_eyes","name":"Smiling Face with Heart-Eyes","keywords":["heart","eyes","love","like","affection","valentines","infatuation","crush"],"skins":[{"unified":"1f60d","native":"😍","x":32,"y":33}],"version":1},"star-struck":{"id":"star-struck","name":"Star-Struck","keywords":["star","struck","grinning","face","with","eyes","smile","starry"],"skins":[{"unified":"1f929","native":"🤩","x":40,"y":38}],"version":5},"kissing_heart":{"id":"kissing_heart","name":"Face Blowing a Kiss","emoticons":[":*",":-*"],"keywords":["kissing","heart","love","like","affection","valentines","infatuation"],"skins":[{"unified":"1f618","native":"😘","x":32,"y":44}],"version":1},"kissing":{"id":"kissing","name":"Kissing Face","keywords":["love","like","3","valentines","infatuation","kiss"],"skins":[{"unified":"1f617","native":"😗","x":32,"y":43}],"version":1},"relaxed":{"id":"relaxed","name":"Smiling Face","keywords":["relaxed","blush","massage","happiness"],"skins":[{"unified":"263a-fe0f","native":"☺️","x":57,"y":4}],"version":1},"kissing_closed_eyes":{"id":"kissing_closed_eyes","name":"Kissing Face with Closed Eyes","keywords":["love","like","affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f61a","native":"😚","x":32,"y":46}],"version":1},"kissing_smiling_eyes":{"id":"kissing_smiling_eyes","name":"Kissing Face with Smiling Eyes","keywords":["affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f619","native":"😙","x":32,"y":45}],"version":1},"yum":{"id":"yum","name":"Face Savoring Food","keywords":["yum","happy","joy","tongue","smile","silly","yummy","nom","delicious","savouring"],"skins":[{"unified":"1f60b","native":"😋","x":32,"y":31}],"version":1},"stuck_out_tongue":{"id":"stuck_out_tongue","name":"Face with Tongue","emoticons":[":p",":-p",":P",":-P",":b",":-b"],"keywords":["stuck","out","prank","childish","playful","mischievous","smile"],"skins":[{"unified":"1f61b","native":"😛","x":32,"y":47}],"version":1},"stuck_out_tongue_winking_eye":{"id":"stuck_out_tongue_winking_eye","name":"Winking Face with Tongue","emoticons":[";p",";-p",";b",";-b",";P",";-P"],"keywords":["stuck","out","eye","prank","childish","playful","mischievous","smile","wink"],"skins":[{"unified":"1f61c","native":"😜","x":32,"y":48}],"version":1},"zany_face":{"id":"zany_face","name":"Zany Face","keywords":["grinning","with","one","large","and","small","eye","goofy","crazy"],"skins":[{"unified":"1f92a","native":"🤪","x":40,"y":39}],"version":5},"stuck_out_tongue_closed_eyes":{"id":"stuck_out_tongue_closed_eyes","name":"Squinting Face with Tongue","keywords":["stuck","out","closed","eyes","prank","playful","mischievous","smile"],"skins":[{"unified":"1f61d","native":"😝","x":32,"y":49}],"version":1},"money_mouth_face":{"id":"money_mouth_face","name":"Money-Mouth Face","keywords":["money","mouth","rich","dollar"],"skins":[{"unified":"1f911","native":"🤑","x":38,"y":59}],"version":1},"hugging_face":{"id":"hugging_face","name":"Hugging Face","keywords":["smile","hug"],"skins":[{"unified":"1f917","native":"🤗","x":39,"y":4}],"version":1},"face_with_hand_over_mouth":{"id":"face_with_hand_over_mouth","name":"Face with Hand over Mouth","keywords":["smiling","eyes","and","covering","whoops","shock","surprise"],"skins":[{"unified":"1f92d","native":"🤭","x":40,"y":42}],"version":5},"shushing_face":{"id":"shushing_face","name":"Shushing Face","keywords":["with","finger","covering","closed","lips","quiet","shhh"],"skins":[{"unified":"1f92b","native":"🤫","x":40,"y":40}],"version":5},"thinking_face":{"id":"thinking_face","name":"Thinking Face","keywords":["hmmm","think","consider"],"skins":[{"unified":"1f914","native":"🤔","x":39,"y":1}],"version":1},"zipper_mouth_face":{"id":"zipper_mouth_face","name":"Zipper-Mouth Face","keywords":["zipper","mouth","sealed","secret"],"skins":[{"unified":"1f910","native":"🤐","x":38,"y":58}],"version":1},"face_with_raised_eyebrow":{"id":"face_with_raised_eyebrow","name":"Face with Raised Eyebrow","keywords":["one","distrust","scepticism","disapproval","disbelief","surprise"],"skins":[{"unified":"1f928","native":"🤨","x":40,"y":37}],"version":5},"neutral_face":{"id":"neutral_face","name":"Neutral Face","emoticons":[":|",":-|"],"keywords":["indifference","meh",":",""],"skins":[{"unified":"1f610","native":"😐","x":32,"y":36}],"version":1},"expressionless":{"id":"expressionless","name":"Expressionless Face","emoticons":["-_-"],"keywords":["indifferent","-","","meh","deadpan"],"skins":[{"unified":"1f611","native":"😑","x":32,"y":37}],"version":1},"no_mouth":{"id":"no_mouth","name":"Face Without Mouth","keywords":["no","hellokitty"],"skins":[{"unified":"1f636","native":"😶","x":33,"y":16}],"version":1},"smirk":{"id":"smirk","name":"Smirking Face","keywords":["smirk","smile","mean","prank","smug","sarcasm"],"skins":[{"unified":"1f60f","native":"😏","x":32,"y":35}],"version":1},"unamused":{"id":"unamused","name":"Unamused Face","emoticons":[":("],"keywords":["indifference","bored","straight","serious","sarcasm","unimpressed","skeptical","dubious","side","eye"],"skins":[{"unified":"1f612","native":"😒","x":32,"y":38}],"version":1},"face_with_rolling_eyes":{"id":"face_with_rolling_eyes","name":"Face with Rolling Eyes","keywords":["eyeroll","frustrated"],"skins":[{"unified":"1f644","native":"🙄","x":33,"y":30}],"version":1},"grimacing":{"id":"grimacing","name":"Grimacing Face","keywords":["grimace","teeth"],"skins":[{"unified":"1f62c","native":"😬","x":33,"y":3}],"version":1},"lying_face":{"id":"lying_face","name":"Lying Face","keywords":["lie","pinocchio"],"skins":[{"unified":"1f925","native":"🤥","x":40,"y":17}],"version":3},"relieved":{"id":"relieved","name":"Relieved Face","keywords":["relaxed","phew","massage","happiness"],"skins":[{"unified":"1f60c","native":"😌","x":32,"y":32}],"version":1},"pensive":{"id":"pensive","name":"Pensive Face","keywords":["sad","depressed","upset"],"skins":[{"unified":"1f614","native":"😔","x":32,"y":40}],"version":1},"sleepy":{"id":"sleepy","name":"Sleepy Face","keywords":["tired","rest","nap"],"skins":[{"unified":"1f62a","native":"😪","x":33,"y":1}],"version":1},"drooling_face":{"id":"drooling_face","name":"Drooling Face","keywords":[],"skins":[{"unified":"1f924","native":"🤤","x":40,"y":16}],"version":3},"sleeping":{"id":"sleeping","name":"Sleeping Face","keywords":["tired","sleepy","night","zzz"],"skins":[{"unified":"1f634","native":"😴","x":33,"y":12}],"version":1},"mask":{"id":"mask","name":"Face with Medical Mask","keywords":["sick","ill","disease"],"skins":[{"unified":"1f637","native":"😷","x":33,"y":17}],"version":1},"face_with_thermometer":{"id":"face_with_thermometer","name":"Face with Thermometer","keywords":["sick","temperature","cold","fever"],"skins":[{"unified":"1f912","native":"🤒","x":38,"y":60}],"version":1},"face_with_head_bandage":{"id":"face_with_head_bandage","name":"Face with Head-Bandage","keywords":["head","bandage","injured","clumsy","hurt"],"skins":[{"unified":"1f915","native":"🤕","x":39,"y":2}],"version":1},"nauseated_face":{"id":"nauseated_face","name":"Nauseated Face","keywords":["vomit","gross","green","sick","throw","up","ill"],"skins":[{"unified":"1f922","native":"🤢","x":40,"y":14}],"version":3},"face_vomiting":{"id":"face_vomiting","name":"Face Vomiting","keywords":["with","open","mouth","sick"],"skins":[{"unified":"1f92e","native":"🤮","x":40,"y":43}],"version":5},"sneezing_face":{"id":"sneezing_face","name":"Sneezing Face","keywords":["gesundheit","sneeze","sick","allergy"],"skins":[{"unified":"1f927","native":"🤧","x":40,"y":36}],"version":3},"hot_face":{"id":"hot_face","name":"Hot Face","keywords":["feverish","heat","red","sweating"],"skins":[{"unified":"1f975","native":"🥵","x":44,"y":2}],"version":11},"cold_face":{"id":"cold_face","name":"Cold Face","keywords":["blue","freezing","frozen","frostbite","icicles"],"skins":[{"unified":"1f976","native":"🥶","x":44,"y":3}],"version":11},"woozy_face":{"id":"woozy_face","name":"Woozy Face","keywords":["dizzy","intoxicated","tipsy","wavy"],"skins":[{"unified":"1f974","native":"🥴","x":44,"y":1}],"version":11},"dizzy_face":{"id":"dizzy_face","name":"Dizzy Face","keywords":["spent","unconscious","xox"],"skins":[{"unified":"1f635","native":"😵","x":33,"y":14}],"version":1},"exploding_head":{"id":"exploding_head","name":"Exploding Head","keywords":["shocked","face","with","mind","blown"],"skins":[{"unified":"1f92f","native":"🤯","x":40,"y":44}],"version":5},"face_with_cowboy_hat":{"id":"face_with_cowboy_hat","name":"Cowboy Hat Face","keywords":["with","cowgirl"],"skins":[{"unified":"1f920","native":"🤠","x":40,"y":12}],"version":3},"partying_face":{"id":"partying_face","name":"Partying Face","keywords":["celebration","woohoo"],"skins":[{"unified":"1f973","native":"🥳","x":44,"y":0}],"version":11},"sunglasses":{"id":"sunglasses","name":"Smiling Face with Sunglasses","emoticons":["8)"],"keywords":["cool","smile","summer","beach","sunglass"],"skins":[{"unified":"1f60e","native":"😎","x":32,"y":34}],"version":1},"nerd_face":{"id":"nerd_face","name":"Nerd Face","keywords":["nerdy","geek","dork"],"skins":[{"unified":"1f913","native":"🤓","x":39,"y":0}],"version":1},"face_with_monocle":{"id":"face_with_monocle","name":"Face with Monocle","keywords":["stuffy","wealthy"],"skins":[{"unified":"1f9d0","native":"🧐","x":47,"y":11}],"version":5},"confused":{"id":"confused","name":"Confused Face","emoticons":[":\\",":-\\",":/",":-/"],"keywords":["indifference","huh","weird","hmmm",":/"],"skins":[{"unified":"1f615","native":"😕","x":32,"y":41}],"version":1},"worried":{"id":"worried","name":"Worried Face","keywords":["concern","nervous",":("],"skins":[{"unified":"1f61f","native":"😟","x":32,"y":51}],"version":1},"slightly_frowning_face":{"id":"slightly_frowning_face","name":"Slightly Frowning Face","keywords":["disappointed","sad","upset"],"skins":[{"unified":"1f641","native":"🙁","x":33,"y":27}],"version":1},"white_frowning_face":{"id":"white_frowning_face","name":"Frowning Face","keywords":["white","sad","upset","frown"],"skins":[{"unified":"2639-fe0f","native":"☹️","x":57,"y":3}],"version":1},"open_mouth":{"id":"open_mouth","name":"Face with Open Mouth","emoticons":[":o",":-o",":O",":-O"],"keywords":["surprise","impressed","wow","whoa",":O"],"skins":[{"unified":"1f62e","native":"😮","x":33,"y":6}],"version":1},"hushed":{"id":"hushed","name":"Hushed Face","keywords":["woo","shh"],"skins":[{"unified":"1f62f","native":"😯","x":33,"y":7}],"version":1},"astonished":{"id":"astonished","name":"Astonished Face","keywords":["xox","surprised","poisoned"],"skins":[{"unified":"1f632","native":"😲","x":33,"y":10}],"version":1},"flushed":{"id":"flushed","name":"Flushed Face","keywords":["blush","shy","flattered"],"skins":[{"unified":"1f633","native":"😳","x":33,"y":11}],"version":1},"pleading_face":{"id":"pleading_face","name":"Pleading Face","keywords":["begging","mercy"],"skins":[{"unified":"1f97a","native":"🥺","x":44,"y":12}],"version":11},"frowning":{"id":"frowning","name":"Frowning Face with Open Mouth","keywords":["aw","what"],"skins":[{"unified":"1f626","native":"😦","x":32,"y":58}],"version":1},"anguished":{"id":"anguished","name":"Anguished Face","emoticons":["D:"],"keywords":["stunned","nervous"],"skins":[{"unified":"1f627","native":"😧","x":32,"y":59}],"version":1},"fearful":{"id":"fearful","name":"Fearful Face","keywords":["scared","terrified","nervous","oops","huh"],"skins":[{"unified":"1f628","native":"😨","x":32,"y":60}],"version":1},"cold_sweat":{"id":"cold_sweat","name":"Anxious Face with Sweat","keywords":["cold","nervous"],"skins":[{"unified":"1f630","native":"😰","x":33,"y":8}],"version":1},"disappointed_relieved":{"id":"disappointed_relieved","name":"Sad but Relieved Face","keywords":["disappointed","phew","sweat","nervous"],"skins":[{"unified":"1f625","native":"😥","x":32,"y":57}],"version":1},"cry":{"id":"cry","name":"Crying Face","emoticons":[":'("],"keywords":["cry","tears","sad","depressed","upset",":'("],"skins":[{"unified":"1f622","native":"😢","x":32,"y":54}],"version":1},"sob":{"id":"sob","name":"Loudly Crying Face","emoticons":[":'("],"keywords":["sob","cry","tears","sad","upset","depressed"],"skins":[{"unified":"1f62d","native":"😭","x":33,"y":4}],"version":1},"scream":{"id":"scream","name":"Face Screaming in Fear","keywords":["scream","munch","scared","omg"],"skins":[{"unified":"1f631","native":"😱","x":33,"y":9}],"version":1},"confounded":{"id":"confounded","name":"Confounded Face","keywords":["confused","sick","unwell","oops",":S"],"skins":[{"unified":"1f616","native":"😖","x":32,"y":42}],"version":1},"persevere":{"id":"persevere","name":"Persevering Face","keywords":["persevere","sick","no","upset","oops"],"skins":[{"unified":"1f623","native":"😣","x":32,"y":55}],"version":1},"disappointed":{"id":"disappointed","name":"Disappointed Face","emoticons":["):",":(",":-("],"keywords":["sad","upset","depressed",":("],"skins":[{"unified":"1f61e","native":"😞","x":32,"y":50}],"version":1},"sweat":{"id":"sweat","name":"Face with Cold Sweat","keywords":["downcast","hot","sad","tired","exercise"],"skins":[{"unified":"1f613","native":"😓","x":32,"y":39}],"version":1},"weary":{"id":"weary","name":"Weary Face","keywords":["tired","sleepy","sad","frustrated","upset"],"skins":[{"unified":"1f629","native":"😩","x":33,"y":0}],"version":1},"tired_face":{"id":"tired_face","name":"Tired Face","keywords":["sick","whine","upset","frustrated"],"skins":[{"unified":"1f62b","native":"😫","x":33,"y":2}],"version":1},"triumph":{"id":"triumph","name":"Face with Look of Triumph","keywords":["steam","from","nose","gas","phew","proud","pride"],"skins":[{"unified":"1f624","native":"😤","x":32,"y":56}],"version":1},"rage":{"id":"rage","name":"Pouting Face","keywords":["rage","angry","mad","hate","despise"],"skins":[{"unified":"1f621","native":"😡","x":32,"y":53}],"version":1},"angry":{"id":"angry","name":"Angry Face","emoticons":[">:(",">:-("],"keywords":["mad","annoyed","frustrated"],"skins":[{"unified":"1f620","native":"😠","x":32,"y":52}],"version":1},"face_with_symbols_on_mouth":{"id":"face_with_symbols_on_mouth","name":"Face with Symbols on Mouth","keywords":["serious","covering","swearing","cursing","cussing","profanity","expletive"],"skins":[{"unified":"1f92c","native":"🤬","x":40,"y":41}],"version":5},"smiling_imp":{"id":"smiling_imp","name":"Smiling Face with Horns","keywords":["imp","devil"],"skins":[{"unified":"1f608","native":"😈","x":32,"y":28}],"version":1},"imp":{"id":"imp","name":"Imp","keywords":["angry","face","with","horns","devil"],"skins":[{"unified":"1f47f","native":"👿","x":25,"y":8}],"version":1},"skull":{"id":"skull","name":"Skull","keywords":["dead","skeleton","creepy","death"],"skins":[{"unified":"1f480","native":"💀","x":25,"y":9}],"version":1},"skull_and_crossbones":{"id":"skull_and_crossbones","name":"Skull and Crossbones","keywords":["poison","danger","deadly","scary","death","pirate","evil"],"skins":[{"unified":"2620-fe0f","native":"☠️","x":56,"y":56}],"version":1},"hankey":{"id":"hankey","name":"Pile of Poo","keywords":["hankey","poop","shit","shitface","fail","turd"],"skins":[{"unified":"1f4a9","native":"💩","x":27,"y":56}],"version":1},"clown_face":{"id":"clown_face","name":"Clown Face","keywords":[],"skins":[{"unified":"1f921","native":"🤡","x":40,"y":13}],"version":3},"japanese_ogre":{"id":"japanese_ogre","name":"Ogre","keywords":["japanese","monster","red","mask","halloween","scary","creepy","devil","demon"],"skins":[{"unified":"1f479","native":"👹","x":24,"y":58}],"version":1},"japanese_goblin":{"id":"japanese_goblin","name":"Goblin","keywords":["japanese","red","evil","mask","monster","scary","creepy"],"skins":[{"unified":"1f47a","native":"👺","x":24,"y":59}],"version":1},"ghost":{"id":"ghost","name":"Ghost","keywords":["halloween","spooky","scary"],"skins":[{"unified":"1f47b","native":"👻","x":24,"y":60}],"version":1},"alien":{"id":"alien","name":"Alien","keywords":["UFO","paul","weird","outer","space"],"skins":[{"unified":"1f47d","native":"👽","x":25,"y":6}],"version":1},"space_invader":{"id":"space_invader","name":"Alien Monster","keywords":["space","invader","game","arcade","play"],"skins":[{"unified":"1f47e","native":"👾","x":25,"y":7}],"version":1},"robot_face":{"id":"robot_face","name":"Robot","keywords":["face","computer","machine","bot"],"skins":[{"unified":"1f916","native":"🤖","x":39,"y":3}],"version":1},"smiley_cat":{"id":"smiley_cat","name":"Grinning Cat","keywords":["smiley","animal","cats","happy","smile"],"skins":[{"unified":"1f63a","native":"😺","x":33,"y":20}],"version":1},"smile_cat":{"id":"smile_cat","name":"Grinning Cat with Smiling Eyes","keywords":["smile","animal","cats"],"skins":[{"unified":"1f638","native":"😸","x":33,"y":18}],"version":1},"joy_cat":{"id":"joy_cat","name":"Cat with Tears of Joy","keywords":["animal","cats","haha","happy"],"skins":[{"unified":"1f639","native":"😹","x":33,"y":19}],"version":1},"heart_eyes_cat":{"id":"heart_eyes_cat","name":"Smiling Cat with Heart-Eyes","keywords":["heart","eyes","animal","love","like","affection","cats","valentines"],"skins":[{"unified":"1f63b","native":"😻","x":33,"y":21}],"version":1},"smirk_cat":{"id":"smirk_cat","name":"Cat with Wry Smile","keywords":["smirk","animal","cats"],"skins":[{"unified":"1f63c","native":"😼","x":33,"y":22}],"version":1},"kissing_cat":{"id":"kissing_cat","name":"Kissing Cat","keywords":["animal","cats","kiss"],"skins":[{"unified":"1f63d","native":"😽","x":33,"y":23}],"version":1},"scream_cat":{"id":"scream_cat","name":"Weary Cat","keywords":["scream","animal","cats","munch","scared"],"skins":[{"unified":"1f640","native":"🙀","x":33,"y":26}],"version":1},"crying_cat_face":{"id":"crying_cat_face","name":"Crying Cat","keywords":["face","animal","tears","weep","sad","cats","upset","cry"],"skins":[{"unified":"1f63f","native":"😿","x":33,"y":25}],"version":1},"pouting_cat":{"id":"pouting_cat","name":"Pouting Cat","keywords":["animal","cats"],"skins":[{"unified":"1f63e","native":"😾","x":33,"y":24}],"version":1},"see_no_evil":{"id":"see_no_evil","name":"See-No-Evil Monkey","keywords":["see","no","evil","animal","nature","haha"],"skins":[{"unified":"1f648","native":"🙈","x":34,"y":24}],"version":1},"hear_no_evil":{"id":"hear_no_evil","name":"Hear-No-Evil Monkey","keywords":["hear","no","evil","animal","nature"],"skins":[{"unified":"1f649","native":"🙉","x":34,"y":25}],"version":1},"speak_no_evil":{"id":"speak_no_evil","name":"Speak-No-Evil Monkey","keywords":["speak","no","evil","animal","nature","omg"],"skins":[{"unified":"1f64a","native":"🙊","x":34,"y":26}],"version":1},"kiss":{"id":"kiss","name":"Kiss Mark","keywords":["face","lips","love","like","affection","valentines"],"skins":[{"unified":"1f48b","native":"💋","x":26,"y":37}],"version":1},"love_letter":{"id":"love_letter","name":"Love Letter","keywords":["email","like","affection","envelope","valentines"],"skins":[{"unified":"1f48c","native":"💌","x":26,"y":38}],"version":1},"cupid":{"id":"cupid","name":"Heart with Arrow","keywords":["cupid","love","like","affection","valentines"],"skins":[{"unified":"1f498","native":"💘","x":27,"y":39}],"version":1},"gift_heart":{"id":"gift_heart","name":"Heart with Ribbon","keywords":["gift","love","valentines"],"skins":[{"unified":"1f49d","native":"💝","x":27,"y":44}],"version":1},"sparkling_heart":{"id":"sparkling_heart","name":"Sparkling Heart","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f496","native":"💖","x":27,"y":37}],"version":1},"heartpulse":{"id":"heartpulse","name":"Growing Heart","keywords":["heartpulse","like","love","affection","valentines","pink"],"skins":[{"unified":"1f497","native":"💗","x":27,"y":38}],"version":1},"heartbeat":{"id":"heartbeat","name":"Beating Heart","keywords":["heartbeat","love","like","affection","valentines","pink"],"skins":[{"unified":"1f493","native":"💓","x":27,"y":34}],"version":1},"revolving_hearts":{"id":"revolving_hearts","name":"Revolving Hearts","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f49e","native":"💞","x":27,"y":45}],"version":1},"two_hearts":{"id":"two_hearts","name":"Two Hearts","keywords":["love","like","affection","valentines","heart"],"skins":[{"unified":"1f495","native":"💕","x":27,"y":36}],"version":1},"heart_decoration":{"id":"heart_decoration","name":"Heart Decoration","keywords":["purple","square","love","like"],"skins":[{"unified":"1f49f","native":"💟","x":27,"y":46}],"version":1},"heavy_heart_exclamation_mark_ornament":{"id":"heavy_heart_exclamation_mark_ornament","name":"Heart Exclamation","keywords":["heavy","mark","ornament","decoration","love"],"skins":[{"unified":"2763-fe0f","native":"❣️","x":59,"y":7}],"version":1},"broken_heart":{"id":"broken_heart","name":"Broken Heart","emoticons":["",":->"],"keywords":["laughing","satisfied","happy","joy","lol","haha","glad","XD","laugh"],"skins":[{"unified":"1f606","native":"😆","x":32,"y":26}],"version":1},"sweat_smile":{"id":"sweat_smile","name":"Grinning Face with Sweat","keywords":["smile","hot","happy","laugh","relief"],"skins":[{"unified":"1f605","native":"😅","x":32,"y":25}],"version":1},"rolling_on_the_floor_laughing":{"id":"rolling_on_the_floor_laughing","name":"Rolling on the Floor Laughing","keywords":["face","lol","haha","rofl"],"skins":[{"unified":"1f923","native":"🤣","x":40,"y":15}],"version":3},"joy":{"id":"joy","name":"Face with Tears of Joy","keywords":["cry","weep","happy","happytears","haha"],"skins":[{"unified":"1f602","native":"😂","x":32,"y":22}],"version":1},"slightly_smiling_face":{"id":"slightly_smiling_face","name":"Slightly Smiling Face","emoticons":[":)","(:",":-)"],"keywords":["smile"],"skins":[{"unified":"1f642","native":"🙂","x":33,"y":28}],"version":1},"upside_down_face":{"id":"upside_down_face","name":"Upside-Down Face","keywords":["upside","down","flipped","silly","smile"],"skins":[{"unified":"1f643","native":"🙃","x":33,"y":29}],"version":1},"wink":{"id":"wink","name":"Winking Face","emoticons":[";)",";-)"],"keywords":["wink","happy","mischievous","secret",";)","smile","eye"],"skins":[{"unified":"1f609","native":"😉","x":32,"y":29}],"version":1},"blush":{"id":"blush","name":"Smiling Face with Smiling Eyes","emoticons":[":)"],"keywords":["blush","smile","happy","flushed","crush","embarrassed","shy","joy"],"skins":[{"unified":"1f60a","native":"😊","x":32,"y":30}],"version":1},"innocent":{"id":"innocent","name":"Smiling Face with Halo","keywords":["innocent","angel","heaven"],"skins":[{"unified":"1f607","native":"😇","x":32,"y":27}],"version":1},"smiling_face_with_3_hearts":{"id":"smiling_face_with_3_hearts","name":"Smiling Face with Hearts","keywords":["3","love","like","affection","valentines","infatuation","crush","adore"],"skins":[{"unified":"1f970","native":"🥰","x":43,"y":58}],"version":11},"heart_eyes":{"id":"heart_eyes","name":"Smiling Face with Heart-Eyes","keywords":["heart","eyes","love","like","affection","valentines","infatuation","crush"],"skins":[{"unified":"1f60d","native":"😍","x":32,"y":33}],"version":1},"star-struck":{"id":"star-struck","name":"Star-Struck","keywords":["star","struck","grinning","face","with","eyes","smile","starry"],"skins":[{"unified":"1f929","native":"🤩","x":40,"y":38}],"version":5},"kissing_heart":{"id":"kissing_heart","name":"Face Blowing a Kiss","emoticons":[":*",":-*"],"keywords":["kissing","heart","love","like","affection","valentines","infatuation"],"skins":[{"unified":"1f618","native":"😘","x":32,"y":44}],"version":1},"kissing":{"id":"kissing","name":"Kissing Face","keywords":["love","like","3","valentines","infatuation","kiss"],"skins":[{"unified":"1f617","native":"😗","x":32,"y":43}],"version":1},"relaxed":{"id":"relaxed","name":"Smiling Face","keywords":["relaxed","blush","massage","happiness"],"skins":[{"unified":"263a-fe0f","native":"☺️","x":57,"y":4}],"version":1},"kissing_closed_eyes":{"id":"kissing_closed_eyes","name":"Kissing Face with Closed Eyes","keywords":["love","like","affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f61a","native":"😚","x":32,"y":46}],"version":1},"kissing_smiling_eyes":{"id":"kissing_smiling_eyes","name":"Kissing Face with Smiling Eyes","keywords":["affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f619","native":"😙","x":32,"y":45}],"version":1},"yum":{"id":"yum","name":"Face Savoring Food","keywords":["yum","happy","joy","tongue","smile","silly","yummy","nom","delicious","savouring"],"skins":[{"unified":"1f60b","native":"😋","x":32,"y":31}],"version":1},"stuck_out_tongue":{"id":"stuck_out_tongue","name":"Face with Tongue","emoticons":[":p",":-p",":P",":-P",":b",":-b"],"keywords":["stuck","out","prank","childish","playful","mischievous","smile"],"skins":[{"unified":"1f61b","native":"😛","x":32,"y":47}],"version":1},"stuck_out_tongue_winking_eye":{"id":"stuck_out_tongue_winking_eye","name":"Winking Face with Tongue","emoticons":[";p",";-p",";b",";-b",";P",";-P"],"keywords":["stuck","out","eye","prank","childish","playful","mischievous","smile","wink"],"skins":[{"unified":"1f61c","native":"😜","x":32,"y":48}],"version":1},"zany_face":{"id":"zany_face","name":"Zany Face","keywords":["grinning","with","one","large","and","small","eye","goofy","crazy"],"skins":[{"unified":"1f92a","native":"🤪","x":40,"y":39}],"version":5},"stuck_out_tongue_closed_eyes":{"id":"stuck_out_tongue_closed_eyes","name":"Squinting Face with Tongue","keywords":["stuck","out","closed","eyes","prank","playful","mischievous","smile"],"skins":[{"unified":"1f61d","native":"😝","x":32,"y":49}],"version":1},"money_mouth_face":{"id":"money_mouth_face","name":"Money-Mouth Face","keywords":["money","mouth","rich","dollar"],"skins":[{"unified":"1f911","native":"🤑","x":38,"y":59}],"version":1},"hugging_face":{"id":"hugging_face","name":"Hugging Face","keywords":["smile","hug"],"skins":[{"unified":"1f917","native":"🤗","x":39,"y":4}],"version":1},"face_with_hand_over_mouth":{"id":"face_with_hand_over_mouth","name":"Face with Hand over Mouth","keywords":["smiling","eyes","and","covering","whoops","shock","surprise"],"skins":[{"unified":"1f92d","native":"🤭","x":40,"y":42}],"version":5},"shushing_face":{"id":"shushing_face","name":"Shushing Face","keywords":["with","finger","covering","closed","lips","quiet","shhh"],"skins":[{"unified":"1f92b","native":"🤫","x":40,"y":40}],"version":5},"thinking_face":{"id":"thinking_face","name":"Thinking Face","keywords":["hmmm","think","consider"],"skins":[{"unified":"1f914","native":"🤔","x":39,"y":1}],"version":1},"zipper_mouth_face":{"id":"zipper_mouth_face","name":"Zipper-Mouth Face","keywords":["zipper","mouth","sealed","secret"],"skins":[{"unified":"1f910","native":"🤐","x":38,"y":58}],"version":1},"face_with_raised_eyebrow":{"id":"face_with_raised_eyebrow","name":"Face with Raised Eyebrow","keywords":["one","distrust","scepticism","disapproval","disbelief","surprise"],"skins":[{"unified":"1f928","native":"🤨","x":40,"y":37}],"version":5},"neutral_face":{"id":"neutral_face","name":"Neutral Face","emoticons":[":|",":-|"],"keywords":["indifference","meh",":",""],"skins":[{"unified":"1f610","native":"😐","x":32,"y":36}],"version":1},"expressionless":{"id":"expressionless","name":"Expressionless Face","emoticons":["-_-"],"keywords":["indifferent","-","","meh","deadpan"],"skins":[{"unified":"1f611","native":"😑","x":32,"y":37}],"version":1},"no_mouth":{"id":"no_mouth","name":"Face Without Mouth","keywords":["no","hellokitty"],"skins":[{"unified":"1f636","native":"😶","x":33,"y":16}],"version":1},"smirk":{"id":"smirk","name":"Smirking Face","keywords":["smirk","smile","mean","prank","smug","sarcasm"],"skins":[{"unified":"1f60f","native":"😏","x":32,"y":35}],"version":1},"unamused":{"id":"unamused","name":"Unamused Face","emoticons":[":("],"keywords":["indifference","bored","straight","serious","sarcasm","unimpressed","skeptical","dubious","side","eye"],"skins":[{"unified":"1f612","native":"😒","x":32,"y":38}],"version":1},"face_with_rolling_eyes":{"id":"face_with_rolling_eyes","name":"Face with Rolling Eyes","keywords":["eyeroll","frustrated"],"skins":[{"unified":"1f644","native":"🙄","x":33,"y":30}],"version":1},"grimacing":{"id":"grimacing","name":"Grimacing Face","keywords":["grimace","teeth"],"skins":[{"unified":"1f62c","native":"😬","x":33,"y":3}],"version":1},"lying_face":{"id":"lying_face","name":"Lying Face","keywords":["lie","pinocchio"],"skins":[{"unified":"1f925","native":"🤥","x":40,"y":17}],"version":3},"relieved":{"id":"relieved","name":"Relieved Face","keywords":["relaxed","phew","massage","happiness"],"skins":[{"unified":"1f60c","native":"😌","x":32,"y":32}],"version":1},"pensive":{"id":"pensive","name":"Pensive Face","keywords":["sad","depressed","upset"],"skins":[{"unified":"1f614","native":"😔","x":32,"y":40}],"version":1},"sleepy":{"id":"sleepy","name":"Sleepy Face","keywords":["tired","rest","nap"],"skins":[{"unified":"1f62a","native":"😪","x":33,"y":1}],"version":1},"drooling_face":{"id":"drooling_face","name":"Drooling Face","keywords":[],"skins":[{"unified":"1f924","native":"🤤","x":40,"y":16}],"version":3},"sleeping":{"id":"sleeping","name":"Sleeping Face","keywords":["tired","sleepy","night","zzz"],"skins":[{"unified":"1f634","native":"😴","x":33,"y":12}],"version":1},"mask":{"id":"mask","name":"Face with Medical Mask","keywords":["sick","ill","disease"],"skins":[{"unified":"1f637","native":"😷","x":33,"y":17}],"version":1},"face_with_thermometer":{"id":"face_with_thermometer","name":"Face with Thermometer","keywords":["sick","temperature","cold","fever"],"skins":[{"unified":"1f912","native":"🤒","x":38,"y":60}],"version":1},"face_with_head_bandage":{"id":"face_with_head_bandage","name":"Face with Head-Bandage","keywords":["head","bandage","injured","clumsy","hurt"],"skins":[{"unified":"1f915","native":"🤕","x":39,"y":2}],"version":1},"nauseated_face":{"id":"nauseated_face","name":"Nauseated Face","keywords":["vomit","gross","green","sick","throw","up","ill"],"skins":[{"unified":"1f922","native":"🤢","x":40,"y":14}],"version":3},"face_vomiting":{"id":"face_vomiting","name":"Face Vomiting","keywords":["with","open","mouth","sick"],"skins":[{"unified":"1f92e","native":"🤮","x":40,"y":43}],"version":5},"sneezing_face":{"id":"sneezing_face","name":"Sneezing Face","keywords":["gesundheit","sneeze","sick","allergy"],"skins":[{"unified":"1f927","native":"🤧","x":40,"y":36}],"version":3},"hot_face":{"id":"hot_face","name":"Hot Face","keywords":["feverish","heat","red","sweating"],"skins":[{"unified":"1f975","native":"🥵","x":44,"y":2}],"version":11},"cold_face":{"id":"cold_face","name":"Cold Face","keywords":["blue","freezing","frozen","frostbite","icicles"],"skins":[{"unified":"1f976","native":"🥶","x":44,"y":3}],"version":11},"woozy_face":{"id":"woozy_face","name":"Woozy Face","keywords":["dizzy","intoxicated","tipsy","wavy"],"skins":[{"unified":"1f974","native":"🥴","x":44,"y":1}],"version":11},"dizzy_face":{"id":"dizzy_face","name":"Dizzy Face","keywords":["spent","unconscious","xox"],"skins":[{"unified":"1f635","native":"😵","x":33,"y":14}],"version":1},"exploding_head":{"id":"exploding_head","name":"Exploding Head","keywords":["shocked","face","with","mind","blown"],"skins":[{"unified":"1f92f","native":"🤯","x":40,"y":44}],"version":5},"face_with_cowboy_hat":{"id":"face_with_cowboy_hat","name":"Cowboy Hat Face","keywords":["with","cowgirl"],"skins":[{"unified":"1f920","native":"🤠","x":40,"y":12}],"version":3},"partying_face":{"id":"partying_face","name":"Partying Face","keywords":["celebration","woohoo"],"skins":[{"unified":"1f973","native":"🥳","x":44,"y":0}],"version":11},"sunglasses":{"id":"sunglasses","name":"Smiling Face with Sunglasses","emoticons":["8)"],"keywords":["cool","smile","summer","beach","sunglass"],"skins":[{"unified":"1f60e","native":"😎","x":32,"y":34}],"version":1},"nerd_face":{"id":"nerd_face","name":"Nerd Face","keywords":["nerdy","geek","dork"],"skins":[{"unified":"1f913","native":"🤓","x":39,"y":0}],"version":1},"face_with_monocle":{"id":"face_with_monocle","name":"Face with Monocle","keywords":["stuffy","wealthy"],"skins":[{"unified":"1f9d0","native":"🧐","x":47,"y":11}],"version":5},"confused":{"id":"confused","name":"Confused Face","emoticons":[":\\",":-\\",":/",":-/"],"keywords":["indifference","huh","weird","hmmm",":/"],"skins":[{"unified":"1f615","native":"😕","x":32,"y":41}],"version":1},"worried":{"id":"worried","name":"Worried Face","keywords":["concern","nervous",":("],"skins":[{"unified":"1f61f","native":"😟","x":32,"y":51}],"version":1},"slightly_frowning_face":{"id":"slightly_frowning_face","name":"Slightly Frowning Face","keywords":["disappointed","sad","upset"],"skins":[{"unified":"1f641","native":"🙁","x":33,"y":27}],"version":1},"white_frowning_face":{"id":"white_frowning_face","name":"Frowning Face","keywords":["white","sad","upset","frown"],"skins":[{"unified":"2639-fe0f","native":"☹️","x":57,"y":3}],"version":1},"open_mouth":{"id":"open_mouth","name":"Face with Open Mouth","emoticons":[":o",":-o",":O",":-O"],"keywords":["surprise","impressed","wow","whoa",":O"],"skins":[{"unified":"1f62e","native":"😮","x":33,"y":6}],"version":1},"hushed":{"id":"hushed","name":"Hushed Face","keywords":["woo","shh"],"skins":[{"unified":"1f62f","native":"😯","x":33,"y":7}],"version":1},"astonished":{"id":"astonished","name":"Astonished Face","keywords":["xox","surprised","poisoned"],"skins":[{"unified":"1f632","native":"😲","x":33,"y":10}],"version":1},"flushed":{"id":"flushed","name":"Flushed Face","keywords":["blush","shy","flattered"],"skins":[{"unified":"1f633","native":"😳","x":33,"y":11}],"version":1},"pleading_face":{"id":"pleading_face","name":"Pleading Face","keywords":["begging","mercy"],"skins":[{"unified":"1f97a","native":"🥺","x":44,"y":12}],"version":11},"frowning":{"id":"frowning","name":"Frowning Face with Open Mouth","keywords":["aw","what"],"skins":[{"unified":"1f626","native":"😦","x":32,"y":58}],"version":1},"anguished":{"id":"anguished","name":"Anguished Face","emoticons":["D:"],"keywords":["stunned","nervous"],"skins":[{"unified":"1f627","native":"😧","x":32,"y":59}],"version":1},"fearful":{"id":"fearful","name":"Fearful Face","keywords":["scared","terrified","nervous","oops","huh"],"skins":[{"unified":"1f628","native":"😨","x":32,"y":60}],"version":1},"cold_sweat":{"id":"cold_sweat","name":"Anxious Face with Sweat","keywords":["cold","nervous"],"skins":[{"unified":"1f630","native":"😰","x":33,"y":8}],"version":1},"disappointed_relieved":{"id":"disappointed_relieved","name":"Sad but Relieved Face","keywords":["disappointed","phew","sweat","nervous"],"skins":[{"unified":"1f625","native":"😥","x":32,"y":57}],"version":1},"cry":{"id":"cry","name":"Crying Face","emoticons":[":'("],"keywords":["cry","tears","sad","depressed","upset",":'("],"skins":[{"unified":"1f622","native":"😢","x":32,"y":54}],"version":1},"sob":{"id":"sob","name":"Loudly Crying Face","emoticons":[":'("],"keywords":["sob","cry","tears","sad","upset","depressed"],"skins":[{"unified":"1f62d","native":"😭","x":33,"y":4}],"version":1},"scream":{"id":"scream","name":"Face Screaming in Fear","keywords":["scream","munch","scared","omg"],"skins":[{"unified":"1f631","native":"😱","x":33,"y":9}],"version":1},"confounded":{"id":"confounded","name":"Confounded Face","keywords":["confused","sick","unwell","oops",":S"],"skins":[{"unified":"1f616","native":"😖","x":32,"y":42}],"version":1},"persevere":{"id":"persevere","name":"Persevering Face","keywords":["persevere","sick","no","upset","oops"],"skins":[{"unified":"1f623","native":"😣","x":32,"y":55}],"version":1},"disappointed":{"id":"disappointed","name":"Disappointed Face","emoticons":["):",":(",":-("],"keywords":["sad","upset","depressed",":("],"skins":[{"unified":"1f61e","native":"😞","x":32,"y":50}],"version":1},"sweat":{"id":"sweat","name":"Face with Cold Sweat","keywords":["downcast","hot","sad","tired","exercise"],"skins":[{"unified":"1f613","native":"😓","x":32,"y":39}],"version":1},"weary":{"id":"weary","name":"Weary Face","keywords":["tired","sleepy","sad","frustrated","upset"],"skins":[{"unified":"1f629","native":"😩","x":33,"y":0}],"version":1},"tired_face":{"id":"tired_face","name":"Tired Face","keywords":["sick","whine","upset","frustrated"],"skins":[{"unified":"1f62b","native":"😫","x":33,"y":2}],"version":1},"yawning_face":{"id":"yawning_face","name":"Yawning Face","keywords":["tired","sleepy"],"skins":[{"unified":"1f971","native":"🥱","x":43,"y":59}],"version":12},"triumph":{"id":"triumph","name":"Face with Look of Triumph","keywords":["steam","from","nose","gas","phew","proud","pride"],"skins":[{"unified":"1f624","native":"😤","x":32,"y":56}],"version":1},"rage":{"id":"rage","name":"Pouting Face","keywords":["rage","angry","mad","hate","despise"],"skins":[{"unified":"1f621","native":"😡","x":32,"y":53}],"version":1},"angry":{"id":"angry","name":"Angry Face","emoticons":[">:(",">:-("],"keywords":["mad","annoyed","frustrated"],"skins":[{"unified":"1f620","native":"😠","x":32,"y":52}],"version":1},"face_with_symbols_on_mouth":{"id":"face_with_symbols_on_mouth","name":"Face with Symbols on Mouth","keywords":["serious","covering","swearing","cursing","cussing","profanity","expletive"],"skins":[{"unified":"1f92c","native":"🤬","x":40,"y":41}],"version":5},"smiling_imp":{"id":"smiling_imp","name":"Smiling Face with Horns","keywords":["imp","devil"],"skins":[{"unified":"1f608","native":"😈","x":32,"y":28}],"version":1},"imp":{"id":"imp","name":"Imp","keywords":["angry","face","with","horns","devil"],"skins":[{"unified":"1f47f","native":"👿","x":25,"y":8}],"version":1},"skull":{"id":"skull","name":"Skull","keywords":["dead","skeleton","creepy","death"],"skins":[{"unified":"1f480","native":"💀","x":25,"y":9}],"version":1},"skull_and_crossbones":{"id":"skull_and_crossbones","name":"Skull and Crossbones","keywords":["poison","danger","deadly","scary","death","pirate","evil"],"skins":[{"unified":"2620-fe0f","native":"☠️","x":56,"y":56}],"version":1},"hankey":{"id":"hankey","name":"Pile of Poo","keywords":["hankey","poop","shit","shitface","fail","turd"],"skins":[{"unified":"1f4a9","native":"💩","x":27,"y":56}],"version":1},"clown_face":{"id":"clown_face","name":"Clown Face","keywords":[],"skins":[{"unified":"1f921","native":"🤡","x":40,"y":13}],"version":3},"japanese_ogre":{"id":"japanese_ogre","name":"Ogre","keywords":["japanese","monster","red","mask","halloween","scary","creepy","devil","demon"],"skins":[{"unified":"1f479","native":"👹","x":24,"y":58}],"version":1},"japanese_goblin":{"id":"japanese_goblin","name":"Goblin","keywords":["japanese","red","evil","mask","monster","scary","creepy"],"skins":[{"unified":"1f47a","native":"👺","x":24,"y":59}],"version":1},"ghost":{"id":"ghost","name":"Ghost","keywords":["halloween","spooky","scary"],"skins":[{"unified":"1f47b","native":"👻","x":24,"y":60}],"version":1},"alien":{"id":"alien","name":"Alien","keywords":["UFO","paul","weird","outer","space"],"skins":[{"unified":"1f47d","native":"👽","x":25,"y":6}],"version":1},"space_invader":{"id":"space_invader","name":"Alien Monster","keywords":["space","invader","game","arcade","play"],"skins":[{"unified":"1f47e","native":"👾","x":25,"y":7}],"version":1},"robot_face":{"id":"robot_face","name":"Robot","keywords":["face","computer","machine","bot"],"skins":[{"unified":"1f916","native":"🤖","x":39,"y":3}],"version":1},"smiley_cat":{"id":"smiley_cat","name":"Grinning Cat","keywords":["smiley","animal","cats","happy","smile"],"skins":[{"unified":"1f63a","native":"😺","x":33,"y":20}],"version":1},"smile_cat":{"id":"smile_cat","name":"Grinning Cat with Smiling Eyes","keywords":["smile","animal","cats"],"skins":[{"unified":"1f638","native":"😸","x":33,"y":18}],"version":1},"joy_cat":{"id":"joy_cat","name":"Cat with Tears of Joy","keywords":["animal","cats","haha","happy"],"skins":[{"unified":"1f639","native":"😹","x":33,"y":19}],"version":1},"heart_eyes_cat":{"id":"heart_eyes_cat","name":"Smiling Cat with Heart-Eyes","keywords":["heart","eyes","animal","love","like","affection","cats","valentines"],"skins":[{"unified":"1f63b","native":"😻","x":33,"y":21}],"version":1},"smirk_cat":{"id":"smirk_cat","name":"Cat with Wry Smile","keywords":["smirk","animal","cats"],"skins":[{"unified":"1f63c","native":"😼","x":33,"y":22}],"version":1},"kissing_cat":{"id":"kissing_cat","name":"Kissing Cat","keywords":["animal","cats","kiss"],"skins":[{"unified":"1f63d","native":"😽","x":33,"y":23}],"version":1},"scream_cat":{"id":"scream_cat","name":"Weary Cat","keywords":["scream","animal","cats","munch","scared"],"skins":[{"unified":"1f640","native":"🙀","x":33,"y":26}],"version":1},"crying_cat_face":{"id":"crying_cat_face","name":"Crying Cat","keywords":["face","animal","tears","weep","sad","cats","upset","cry"],"skins":[{"unified":"1f63f","native":"😿","x":33,"y":25}],"version":1},"pouting_cat":{"id":"pouting_cat","name":"Pouting Cat","keywords":["animal","cats"],"skins":[{"unified":"1f63e","native":"😾","x":33,"y":24}],"version":1},"see_no_evil":{"id":"see_no_evil","name":"See-No-Evil Monkey","keywords":["see","no","evil","animal","nature","haha"],"skins":[{"unified":"1f648","native":"🙈","x":34,"y":24}],"version":1},"hear_no_evil":{"id":"hear_no_evil","name":"Hear-No-Evil Monkey","keywords":["hear","no","evil","animal","nature"],"skins":[{"unified":"1f649","native":"🙉","x":34,"y":25}],"version":1},"speak_no_evil":{"id":"speak_no_evil","name":"Speak-No-Evil Monkey","keywords":["speak","no","evil","animal","nature","omg"],"skins":[{"unified":"1f64a","native":"🙊","x":34,"y":26}],"version":1},"kiss":{"id":"kiss","name":"Kiss Mark","keywords":["face","lips","love","like","affection","valentines"],"skins":[{"unified":"1f48b","native":"💋","x":26,"y":37}],"version":1},"love_letter":{"id":"love_letter","name":"Love Letter","keywords":["email","like","affection","envelope","valentines"],"skins":[{"unified":"1f48c","native":"💌","x":26,"y":38}],"version":1},"cupid":{"id":"cupid","name":"Heart with Arrow","keywords":["cupid","love","like","affection","valentines"],"skins":[{"unified":"1f498","native":"💘","x":27,"y":39}],"version":1},"gift_heart":{"id":"gift_heart","name":"Heart with Ribbon","keywords":["gift","love","valentines"],"skins":[{"unified":"1f49d","native":"💝","x":27,"y":44}],"version":1},"sparkling_heart":{"id":"sparkling_heart","name":"Sparkling Heart","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f496","native":"💖","x":27,"y":37}],"version":1},"heartpulse":{"id":"heartpulse","name":"Growing Heart","keywords":["heartpulse","like","love","affection","valentines","pink"],"skins":[{"unified":"1f497","native":"💗","x":27,"y":38}],"version":1},"heartbeat":{"id":"heartbeat","name":"Beating Heart","keywords":["heartbeat","love","like","affection","valentines","pink"],"skins":[{"unified":"1f493","native":"💓","x":27,"y":34}],"version":1},"revolving_hearts":{"id":"revolving_hearts","name":"Revolving Hearts","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f49e","native":"💞","x":27,"y":45}],"version":1},"two_hearts":{"id":"two_hearts","name":"Two Hearts","keywords":["love","like","affection","valentines","heart"],"skins":[{"unified":"1f495","native":"💕","x":27,"y":36}],"version":1},"heart_decoration":{"id":"heart_decoration","name":"Heart Decoration","keywords":["purple","square","love","like"],"skins":[{"unified":"1f49f","native":"💟","x":27,"y":46}],"version":1},"heavy_heart_exclamation_mark_ornament":{"id":"heavy_heart_exclamation_mark_ornament","name":"Heart Exclamation","keywords":["heavy","mark","ornament","decoration","love"],"skins":[{"unified":"2763-fe0f","native":"❣️","x":59,"y":7}],"version":1},"broken_heart":{"id":"broken_heart","name":"Broken Heart","emoticons":["",":->"],"keywords":["laughing","satisfied","happy","joy","lol","haha","glad","XD","laugh"],"skins":[{"unified":"1f606","native":"😆","x":32,"y":26}],"version":1},"sweat_smile":{"id":"sweat_smile","name":"Grinning Face with Sweat","keywords":["smile","hot","happy","laugh","relief"],"skins":[{"unified":"1f605","native":"😅","x":32,"y":25}],"version":1},"rolling_on_the_floor_laughing":{"id":"rolling_on_the_floor_laughing","name":"Rolling on the Floor Laughing","keywords":["face","lol","haha","rofl"],"skins":[{"unified":"1f923","native":"🤣","x":40,"y":15}],"version":3},"joy":{"id":"joy","name":"Face with Tears of Joy","keywords":["cry","weep","happy","happytears","haha"],"skins":[{"unified":"1f602","native":"😂","x":32,"y":22}],"version":1},"slightly_smiling_face":{"id":"slightly_smiling_face","name":"Slightly Smiling Face","emoticons":[":)","(:",":-)"],"keywords":["smile"],"skins":[{"unified":"1f642","native":"🙂","x":33,"y":28}],"version":1},"upside_down_face":{"id":"upside_down_face","name":"Upside-Down Face","keywords":["upside","down","flipped","silly","smile"],"skins":[{"unified":"1f643","native":"🙃","x":33,"y":29}],"version":1},"wink":{"id":"wink","name":"Winking Face","emoticons":[";)",";-)"],"keywords":["wink","happy","mischievous","secret",";)","smile","eye"],"skins":[{"unified":"1f609","native":"😉","x":32,"y":29}],"version":1},"blush":{"id":"blush","name":"Smiling Face with Smiling Eyes","emoticons":[":)"],"keywords":["blush","smile","happy","flushed","crush","embarrassed","shy","joy"],"skins":[{"unified":"1f60a","native":"😊","x":32,"y":30}],"version":1},"innocent":{"id":"innocent","name":"Smiling Face with Halo","keywords":["innocent","angel","heaven"],"skins":[{"unified":"1f607","native":"😇","x":32,"y":27}],"version":1},"smiling_face_with_3_hearts":{"id":"smiling_face_with_3_hearts","name":"Smiling Face with Hearts","keywords":["3","love","like","affection","valentines","infatuation","crush","adore"],"skins":[{"unified":"1f970","native":"🥰","x":43,"y":58}],"version":11},"heart_eyes":{"id":"heart_eyes","name":"Smiling Face with Heart-Eyes","keywords":["heart","eyes","love","like","affection","valentines","infatuation","crush"],"skins":[{"unified":"1f60d","native":"😍","x":32,"y":33}],"version":1},"star-struck":{"id":"star-struck","name":"Star-Struck","keywords":["star","struck","grinning","face","with","eyes","smile","starry"],"skins":[{"unified":"1f929","native":"🤩","x":40,"y":38}],"version":5},"kissing_heart":{"id":"kissing_heart","name":"Face Blowing a Kiss","emoticons":[":*",":-*"],"keywords":["kissing","heart","love","like","affection","valentines","infatuation"],"skins":[{"unified":"1f618","native":"😘","x":32,"y":44}],"version":1},"kissing":{"id":"kissing","name":"Kissing Face","keywords":["love","like","3","valentines","infatuation","kiss"],"skins":[{"unified":"1f617","native":"😗","x":32,"y":43}],"version":1},"relaxed":{"id":"relaxed","name":"Smiling Face","keywords":["relaxed","blush","massage","happiness"],"skins":[{"unified":"263a-fe0f","native":"☺️","x":57,"y":4}],"version":1},"kissing_closed_eyes":{"id":"kissing_closed_eyes","name":"Kissing Face with Closed Eyes","keywords":["love","like","affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f61a","native":"😚","x":32,"y":46}],"version":1},"kissing_smiling_eyes":{"id":"kissing_smiling_eyes","name":"Kissing Face with Smiling Eyes","keywords":["affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f619","native":"😙","x":32,"y":45}],"version":1},"yum":{"id":"yum","name":"Face Savoring Food","keywords":["yum","happy","joy","tongue","smile","silly","yummy","nom","delicious","savouring"],"skins":[{"unified":"1f60b","native":"😋","x":32,"y":31}],"version":1},"stuck_out_tongue":{"id":"stuck_out_tongue","name":"Face with Tongue","emoticons":[":p",":-p",":P",":-P",":b",":-b"],"keywords":["stuck","out","prank","childish","playful","mischievous","smile"],"skins":[{"unified":"1f61b","native":"😛","x":32,"y":47}],"version":1},"stuck_out_tongue_winking_eye":{"id":"stuck_out_tongue_winking_eye","name":"Winking Face with Tongue","emoticons":[";p",";-p",";b",";-b",";P",";-P"],"keywords":["stuck","out","eye","prank","childish","playful","mischievous","smile","wink"],"skins":[{"unified":"1f61c","native":"😜","x":32,"y":48}],"version":1},"zany_face":{"id":"zany_face","name":"Zany Face","keywords":["grinning","with","one","large","and","small","eye","goofy","crazy"],"skins":[{"unified":"1f92a","native":"🤪","x":40,"y":39}],"version":5},"stuck_out_tongue_closed_eyes":{"id":"stuck_out_tongue_closed_eyes","name":"Squinting Face with Tongue","keywords":["stuck","out","closed","eyes","prank","playful","mischievous","smile"],"skins":[{"unified":"1f61d","native":"😝","x":32,"y":49}],"version":1},"money_mouth_face":{"id":"money_mouth_face","name":"Money-Mouth Face","keywords":["money","mouth","rich","dollar"],"skins":[{"unified":"1f911","native":"🤑","x":38,"y":59}],"version":1},"hugging_face":{"id":"hugging_face","name":"Hugging Face","keywords":["smile","hug"],"skins":[{"unified":"1f917","native":"🤗","x":39,"y":4}],"version":1},"face_with_hand_over_mouth":{"id":"face_with_hand_over_mouth","name":"Face with Hand over Mouth","keywords":["smiling","eyes","and","covering","whoops","shock","surprise"],"skins":[{"unified":"1f92d","native":"🤭","x":40,"y":42}],"version":5},"shushing_face":{"id":"shushing_face","name":"Shushing Face","keywords":["with","finger","covering","closed","lips","quiet","shhh"],"skins":[{"unified":"1f92b","native":"🤫","x":40,"y":40}],"version":5},"thinking_face":{"id":"thinking_face","name":"Thinking Face","keywords":["hmmm","think","consider"],"skins":[{"unified":"1f914","native":"🤔","x":39,"y":1}],"version":1},"zipper_mouth_face":{"id":"zipper_mouth_face","name":"Zipper-Mouth Face","keywords":["zipper","mouth","sealed","secret"],"skins":[{"unified":"1f910","native":"🤐","x":38,"y":58}],"version":1},"face_with_raised_eyebrow":{"id":"face_with_raised_eyebrow","name":"Face with Raised Eyebrow","keywords":["one","distrust","scepticism","disapproval","disbelief","surprise"],"skins":[{"unified":"1f928","native":"🤨","x":40,"y":37}],"version":5},"neutral_face":{"id":"neutral_face","name":"Neutral Face","emoticons":[":|",":-|"],"keywords":["indifference","meh",":",""],"skins":[{"unified":"1f610","native":"😐","x":32,"y":36}],"version":1},"expressionless":{"id":"expressionless","name":"Expressionless Face","emoticons":["-_-"],"keywords":["indifferent","-","","meh","deadpan"],"skins":[{"unified":"1f611","native":"😑","x":32,"y":37}],"version":1},"no_mouth":{"id":"no_mouth","name":"Face Without Mouth","keywords":["no","hellokitty"],"skins":[{"unified":"1f636","native":"😶","x":33,"y":16}],"version":1},"smirk":{"id":"smirk","name":"Smirking Face","keywords":["smirk","smile","mean","prank","smug","sarcasm"],"skins":[{"unified":"1f60f","native":"😏","x":32,"y":35}],"version":1},"unamused":{"id":"unamused","name":"Unamused Face","emoticons":[":("],"keywords":["indifference","bored","straight","serious","sarcasm","unimpressed","skeptical","dubious","side","eye"],"skins":[{"unified":"1f612","native":"😒","x":32,"y":38}],"version":1},"face_with_rolling_eyes":{"id":"face_with_rolling_eyes","name":"Face with Rolling Eyes","keywords":["eyeroll","frustrated"],"skins":[{"unified":"1f644","native":"🙄","x":33,"y":30}],"version":1},"grimacing":{"id":"grimacing","name":"Grimacing Face","keywords":["grimace","teeth"],"skins":[{"unified":"1f62c","native":"😬","x":33,"y":3}],"version":1},"lying_face":{"id":"lying_face","name":"Lying Face","keywords":["lie","pinocchio"],"skins":[{"unified":"1f925","native":"🤥","x":40,"y":17}],"version":3},"relieved":{"id":"relieved","name":"Relieved Face","keywords":["relaxed","phew","massage","happiness"],"skins":[{"unified":"1f60c","native":"😌","x":32,"y":32}],"version":1},"pensive":{"id":"pensive","name":"Pensive Face","keywords":["sad","depressed","upset"],"skins":[{"unified":"1f614","native":"😔","x":32,"y":40}],"version":1},"sleepy":{"id":"sleepy","name":"Sleepy Face","keywords":["tired","rest","nap"],"skins":[{"unified":"1f62a","native":"😪","x":33,"y":1}],"version":1},"drooling_face":{"id":"drooling_face","name":"Drooling Face","keywords":[],"skins":[{"unified":"1f924","native":"🤤","x":40,"y":16}],"version":3},"sleeping":{"id":"sleeping","name":"Sleeping Face","keywords":["tired","sleepy","night","zzz"],"skins":[{"unified":"1f634","native":"😴","x":33,"y":12}],"version":1},"mask":{"id":"mask","name":"Face with Medical Mask","keywords":["sick","ill","disease"],"skins":[{"unified":"1f637","native":"😷","x":33,"y":17}],"version":1},"face_with_thermometer":{"id":"face_with_thermometer","name":"Face with Thermometer","keywords":["sick","temperature","cold","fever"],"skins":[{"unified":"1f912","native":"🤒","x":38,"y":60}],"version":1},"face_with_head_bandage":{"id":"face_with_head_bandage","name":"Face with Head-Bandage","keywords":["head","bandage","injured","clumsy","hurt"],"skins":[{"unified":"1f915","native":"🤕","x":39,"y":2}],"version":1},"nauseated_face":{"id":"nauseated_face","name":"Nauseated Face","keywords":["vomit","gross","green","sick","throw","up","ill"],"skins":[{"unified":"1f922","native":"🤢","x":40,"y":14}],"version":3},"face_vomiting":{"id":"face_vomiting","name":"Face Vomiting","keywords":["with","open","mouth","sick"],"skins":[{"unified":"1f92e","native":"🤮","x":40,"y":43}],"version":5},"sneezing_face":{"id":"sneezing_face","name":"Sneezing Face","keywords":["gesundheit","sneeze","sick","allergy"],"skins":[{"unified":"1f927","native":"🤧","x":40,"y":36}],"version":3},"hot_face":{"id":"hot_face","name":"Hot Face","keywords":["feverish","heat","red","sweating"],"skins":[{"unified":"1f975","native":"🥵","x":44,"y":2}],"version":11},"cold_face":{"id":"cold_face","name":"Cold Face","keywords":["blue","freezing","frozen","frostbite","icicles"],"skins":[{"unified":"1f976","native":"🥶","x":44,"y":3}],"version":11},"woozy_face":{"id":"woozy_face","name":"Woozy Face","keywords":["dizzy","intoxicated","tipsy","wavy"],"skins":[{"unified":"1f974","native":"🥴","x":44,"y":1}],"version":11},"dizzy_face":{"id":"dizzy_face","name":"Dizzy Face","keywords":["spent","unconscious","xox"],"skins":[{"unified":"1f635","native":"😵","x":33,"y":14}],"version":1},"exploding_head":{"id":"exploding_head","name":"Exploding Head","keywords":["shocked","face","with","mind","blown"],"skins":[{"unified":"1f92f","native":"🤯","x":40,"y":44}],"version":5},"face_with_cowboy_hat":{"id":"face_with_cowboy_hat","name":"Cowboy Hat Face","keywords":["with","cowgirl"],"skins":[{"unified":"1f920","native":"🤠","x":40,"y":12}],"version":3},"partying_face":{"id":"partying_face","name":"Partying Face","keywords":["celebration","woohoo"],"skins":[{"unified":"1f973","native":"🥳","x":44,"y":0}],"version":11},"sunglasses":{"id":"sunglasses","name":"Smiling Face with Sunglasses","emoticons":["8)"],"keywords":["cool","smile","summer","beach","sunglass"],"skins":[{"unified":"1f60e","native":"😎","x":32,"y":34}],"version":1},"nerd_face":{"id":"nerd_face","name":"Nerd Face","keywords":["nerdy","geek","dork"],"skins":[{"unified":"1f913","native":"🤓","x":39,"y":0}],"version":1},"face_with_monocle":{"id":"face_with_monocle","name":"Face with Monocle","keywords":["stuffy","wealthy"],"skins":[{"unified":"1f9d0","native":"🧐","x":47,"y":11}],"version":5},"confused":{"id":"confused","name":"Confused Face","emoticons":[":\\",":-\\",":/",":-/"],"keywords":["indifference","huh","weird","hmmm",":/"],"skins":[{"unified":"1f615","native":"😕","x":32,"y":41}],"version":1},"worried":{"id":"worried","name":"Worried Face","keywords":["concern","nervous",":("],"skins":[{"unified":"1f61f","native":"😟","x":32,"y":51}],"version":1},"slightly_frowning_face":{"id":"slightly_frowning_face","name":"Slightly Frowning Face","keywords":["disappointed","sad","upset"],"skins":[{"unified":"1f641","native":"🙁","x":33,"y":27}],"version":1},"white_frowning_face":{"id":"white_frowning_face","name":"Frowning Face","keywords":["white","sad","upset","frown"],"skins":[{"unified":"2639-fe0f","native":"☹️","x":57,"y":3}],"version":1},"open_mouth":{"id":"open_mouth","name":"Face with Open Mouth","emoticons":[":o",":-o",":O",":-O"],"keywords":["surprise","impressed","wow","whoa",":O"],"skins":[{"unified":"1f62e","native":"😮","x":33,"y":6}],"version":1},"hushed":{"id":"hushed","name":"Hushed Face","keywords":["woo","shh"],"skins":[{"unified":"1f62f","native":"😯","x":33,"y":7}],"version":1},"astonished":{"id":"astonished","name":"Astonished Face","keywords":["xox","surprised","poisoned"],"skins":[{"unified":"1f632","native":"😲","x":33,"y":10}],"version":1},"flushed":{"id":"flushed","name":"Flushed Face","keywords":["blush","shy","flattered"],"skins":[{"unified":"1f633","native":"😳","x":33,"y":11}],"version":1},"pleading_face":{"id":"pleading_face","name":"Pleading Face","keywords":["begging","mercy"],"skins":[{"unified":"1f97a","native":"🥺","x":44,"y":12}],"version":11},"frowning":{"id":"frowning","name":"Frowning Face with Open Mouth","keywords":["aw","what"],"skins":[{"unified":"1f626","native":"😦","x":32,"y":58}],"version":1},"anguished":{"id":"anguished","name":"Anguished Face","emoticons":["D:"],"keywords":["stunned","nervous"],"skins":[{"unified":"1f627","native":"😧","x":32,"y":59}],"version":1},"fearful":{"id":"fearful","name":"Fearful Face","keywords":["scared","terrified","nervous","oops","huh"],"skins":[{"unified":"1f628","native":"😨","x":32,"y":60}],"version":1},"cold_sweat":{"id":"cold_sweat","name":"Anxious Face with Sweat","keywords":["cold","nervous"],"skins":[{"unified":"1f630","native":"😰","x":33,"y":8}],"version":1},"disappointed_relieved":{"id":"disappointed_relieved","name":"Sad but Relieved Face","keywords":["disappointed","phew","sweat","nervous"],"skins":[{"unified":"1f625","native":"😥","x":32,"y":57}],"version":1},"cry":{"id":"cry","name":"Crying Face","emoticons":[":'("],"keywords":["cry","tears","sad","depressed","upset",":'("],"skins":[{"unified":"1f622","native":"😢","x":32,"y":54}],"version":1},"sob":{"id":"sob","name":"Loudly Crying Face","emoticons":[":'("],"keywords":["sob","cry","tears","sad","upset","depressed"],"skins":[{"unified":"1f62d","native":"😭","x":33,"y":4}],"version":1},"scream":{"id":"scream","name":"Face Screaming in Fear","keywords":["scream","munch","scared","omg"],"skins":[{"unified":"1f631","native":"😱","x":33,"y":9}],"version":1},"confounded":{"id":"confounded","name":"Confounded Face","keywords":["confused","sick","unwell","oops",":S"],"skins":[{"unified":"1f616","native":"😖","x":32,"y":42}],"version":1},"persevere":{"id":"persevere","name":"Persevering Face","keywords":["persevere","sick","no","upset","oops"],"skins":[{"unified":"1f623","native":"😣","x":32,"y":55}],"version":1},"disappointed":{"id":"disappointed","name":"Disappointed Face","emoticons":["):",":(",":-("],"keywords":["sad","upset","depressed",":("],"skins":[{"unified":"1f61e","native":"😞","x":32,"y":50}],"version":1},"sweat":{"id":"sweat","name":"Face with Cold Sweat","keywords":["downcast","hot","sad","tired","exercise"],"skins":[{"unified":"1f613","native":"😓","x":32,"y":39}],"version":1},"weary":{"id":"weary","name":"Weary Face","keywords":["tired","sleepy","sad","frustrated","upset"],"skins":[{"unified":"1f629","native":"😩","x":33,"y":0}],"version":1},"tired_face":{"id":"tired_face","name":"Tired Face","keywords":["sick","whine","upset","frustrated"],"skins":[{"unified":"1f62b","native":"😫","x":33,"y":2}],"version":1},"yawning_face":{"id":"yawning_face","name":"Yawning Face","keywords":["tired","sleepy"],"skins":[{"unified":"1f971","native":"🥱","x":43,"y":59}],"version":12},"triumph":{"id":"triumph","name":"Face with Look of Triumph","keywords":["steam","from","nose","gas","phew","proud","pride"],"skins":[{"unified":"1f624","native":"😤","x":32,"y":56}],"version":1},"rage":{"id":"rage","name":"Pouting Face","keywords":["rage","angry","mad","hate","despise"],"skins":[{"unified":"1f621","native":"😡","x":32,"y":53}],"version":1},"angry":{"id":"angry","name":"Angry Face","emoticons":[">:(",">:-("],"keywords":["mad","annoyed","frustrated"],"skins":[{"unified":"1f620","native":"😠","x":32,"y":52}],"version":1},"face_with_symbols_on_mouth":{"id":"face_with_symbols_on_mouth","name":"Face with Symbols on Mouth","keywords":["serious","covering","swearing","cursing","cussing","profanity","expletive"],"skins":[{"unified":"1f92c","native":"🤬","x":40,"y":41}],"version":5},"smiling_imp":{"id":"smiling_imp","name":"Smiling Face with Horns","keywords":["imp","devil"],"skins":[{"unified":"1f608","native":"😈","x":32,"y":28}],"version":1},"imp":{"id":"imp","name":"Imp","keywords":["angry","face","with","horns","devil"],"skins":[{"unified":"1f47f","native":"👿","x":25,"y":8}],"version":1},"skull":{"id":"skull","name":"Skull","keywords":["dead","skeleton","creepy","death"],"skins":[{"unified":"1f480","native":"💀","x":25,"y":9}],"version":1},"skull_and_crossbones":{"id":"skull_and_crossbones","name":"Skull and Crossbones","keywords":["poison","danger","deadly","scary","death","pirate","evil"],"skins":[{"unified":"2620-fe0f","native":"☠️","x":56,"y":56}],"version":1},"hankey":{"id":"hankey","name":"Pile of Poo","keywords":["hankey","poop","shit","shitface","fail","turd"],"skins":[{"unified":"1f4a9","native":"💩","x":27,"y":56}],"version":1},"clown_face":{"id":"clown_face","name":"Clown Face","keywords":[],"skins":[{"unified":"1f921","native":"🤡","x":40,"y":13}],"version":3},"japanese_ogre":{"id":"japanese_ogre","name":"Ogre","keywords":["japanese","monster","red","mask","halloween","scary","creepy","devil","demon"],"skins":[{"unified":"1f479","native":"👹","x":24,"y":58}],"version":1},"japanese_goblin":{"id":"japanese_goblin","name":"Goblin","keywords":["japanese","red","evil","mask","monster","scary","creepy"],"skins":[{"unified":"1f47a","native":"👺","x":24,"y":59}],"version":1},"ghost":{"id":"ghost","name":"Ghost","keywords":["halloween","spooky","scary"],"skins":[{"unified":"1f47b","native":"👻","x":24,"y":60}],"version":1},"alien":{"id":"alien","name":"Alien","keywords":["UFO","paul","weird","outer","space"],"skins":[{"unified":"1f47d","native":"👽","x":25,"y":6}],"version":1},"space_invader":{"id":"space_invader","name":"Alien Monster","keywords":["space","invader","game","arcade","play"],"skins":[{"unified":"1f47e","native":"👾","x":25,"y":7}],"version":1},"robot_face":{"id":"robot_face","name":"Robot","keywords":["face","computer","machine","bot"],"skins":[{"unified":"1f916","native":"🤖","x":39,"y":3}],"version":1},"smiley_cat":{"id":"smiley_cat","name":"Grinning Cat","keywords":["smiley","animal","cats","happy","smile"],"skins":[{"unified":"1f63a","native":"😺","x":33,"y":20}],"version":1},"smile_cat":{"id":"smile_cat","name":"Grinning Cat with Smiling Eyes","keywords":["smile","animal","cats"],"skins":[{"unified":"1f638","native":"😸","x":33,"y":18}],"version":1},"joy_cat":{"id":"joy_cat","name":"Cat with Tears of Joy","keywords":["animal","cats","haha","happy"],"skins":[{"unified":"1f639","native":"😹","x":33,"y":19}],"version":1},"heart_eyes_cat":{"id":"heart_eyes_cat","name":"Smiling Cat with Heart-Eyes","keywords":["heart","eyes","animal","love","like","affection","cats","valentines"],"skins":[{"unified":"1f63b","native":"😻","x":33,"y":21}],"version":1},"smirk_cat":{"id":"smirk_cat","name":"Cat with Wry Smile","keywords":["smirk","animal","cats"],"skins":[{"unified":"1f63c","native":"😼","x":33,"y":22}],"version":1},"kissing_cat":{"id":"kissing_cat","name":"Kissing Cat","keywords":["animal","cats","kiss"],"skins":[{"unified":"1f63d","native":"😽","x":33,"y":23}],"version":1},"scream_cat":{"id":"scream_cat","name":"Weary Cat","keywords":["scream","animal","cats","munch","scared"],"skins":[{"unified":"1f640","native":"🙀","x":33,"y":26}],"version":1},"crying_cat_face":{"id":"crying_cat_face","name":"Crying Cat","keywords":["face","animal","tears","weep","sad","cats","upset","cry"],"skins":[{"unified":"1f63f","native":"😿","x":33,"y":25}],"version":1},"pouting_cat":{"id":"pouting_cat","name":"Pouting Cat","keywords":["animal","cats"],"skins":[{"unified":"1f63e","native":"😾","x":33,"y":24}],"version":1},"see_no_evil":{"id":"see_no_evil","name":"See-No-Evil Monkey","keywords":["see","no","evil","animal","nature","haha"],"skins":[{"unified":"1f648","native":"🙈","x":34,"y":24}],"version":1},"hear_no_evil":{"id":"hear_no_evil","name":"Hear-No-Evil Monkey","keywords":["hear","no","evil","animal","nature"],"skins":[{"unified":"1f649","native":"🙉","x":34,"y":25}],"version":1},"speak_no_evil":{"id":"speak_no_evil","name":"Speak-No-Evil Monkey","keywords":["speak","no","evil","animal","nature","omg"],"skins":[{"unified":"1f64a","native":"🙊","x":34,"y":26}],"version":1},"kiss":{"id":"kiss","name":"Kiss Mark","keywords":["face","lips","love","like","affection","valentines"],"skins":[{"unified":"1f48b","native":"💋","x":26,"y":37}],"version":1},"love_letter":{"id":"love_letter","name":"Love Letter","keywords":["email","like","affection","envelope","valentines"],"skins":[{"unified":"1f48c","native":"💌","x":26,"y":38}],"version":1},"cupid":{"id":"cupid","name":"Heart with Arrow","keywords":["cupid","love","like","affection","valentines"],"skins":[{"unified":"1f498","native":"💘","x":27,"y":39}],"version":1},"gift_heart":{"id":"gift_heart","name":"Heart with Ribbon","keywords":["gift","love","valentines"],"skins":[{"unified":"1f49d","native":"💝","x":27,"y":44}],"version":1},"sparkling_heart":{"id":"sparkling_heart","name":"Sparkling Heart","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f496","native":"💖","x":27,"y":37}],"version":1},"heartpulse":{"id":"heartpulse","name":"Growing Heart","keywords":["heartpulse","like","love","affection","valentines","pink"],"skins":[{"unified":"1f497","native":"💗","x":27,"y":38}],"version":1},"heartbeat":{"id":"heartbeat","name":"Beating Heart","keywords":["heartbeat","love","like","affection","valentines","pink"],"skins":[{"unified":"1f493","native":"💓","x":27,"y":34}],"version":1},"revolving_hearts":{"id":"revolving_hearts","name":"Revolving Hearts","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f49e","native":"💞","x":27,"y":45}],"version":1},"two_hearts":{"id":"two_hearts","name":"Two Hearts","keywords":["love","like","affection","valentines","heart"],"skins":[{"unified":"1f495","native":"💕","x":27,"y":36}],"version":1},"heart_decoration":{"id":"heart_decoration","name":"Heart Decoration","keywords":["purple","square","love","like"],"skins":[{"unified":"1f49f","native":"💟","x":27,"y":46}],"version":1},"heavy_heart_exclamation_mark_ornament":{"id":"heavy_heart_exclamation_mark_ornament","name":"Heart Exclamation","keywords":["heavy","mark","ornament","decoration","love"],"skins":[{"unified":"2763-fe0f","native":"❣️","x":59,"y":7}],"version":1},"broken_heart":{"id":"broken_heart","name":"Broken Heart","emoticons":["",":->"],"keywords":["laughing","satisfied","happy","joy","lol","haha","glad","XD","laugh"],"skins":[{"unified":"1f606","native":"😆","x":32,"y":26}],"version":1},"sweat_smile":{"id":"sweat_smile","name":"Grinning Face with Sweat","keywords":["smile","hot","happy","laugh","relief"],"skins":[{"unified":"1f605","native":"😅","x":32,"y":25}],"version":1},"rolling_on_the_floor_laughing":{"id":"rolling_on_the_floor_laughing","name":"Rolling on the Floor Laughing","keywords":["face","lol","haha","rofl"],"skins":[{"unified":"1f923","native":"🤣","x":40,"y":15}],"version":3},"joy":{"id":"joy","name":"Face with Tears of Joy","keywords":["cry","weep","happy","happytears","haha"],"skins":[{"unified":"1f602","native":"😂","x":32,"y":22}],"version":1},"slightly_smiling_face":{"id":"slightly_smiling_face","name":"Slightly Smiling Face","emoticons":[":)","(:",":-)"],"keywords":["smile"],"skins":[{"unified":"1f642","native":"🙂","x":33,"y":28}],"version":1},"upside_down_face":{"id":"upside_down_face","name":"Upside-Down Face","keywords":["upside","down","flipped","silly","smile"],"skins":[{"unified":"1f643","native":"🙃","x":33,"y":29}],"version":1},"wink":{"id":"wink","name":"Winking Face","emoticons":[";)",";-)"],"keywords":["wink","happy","mischievous","secret",";)","smile","eye"],"skins":[{"unified":"1f609","native":"😉","x":32,"y":29}],"version":1},"blush":{"id":"blush","name":"Smiling Face with Smiling Eyes","emoticons":[":)"],"keywords":["blush","smile","happy","flushed","crush","embarrassed","shy","joy"],"skins":[{"unified":"1f60a","native":"😊","x":32,"y":30}],"version":1},"innocent":{"id":"innocent","name":"Smiling Face with Halo","keywords":["innocent","angel","heaven"],"skins":[{"unified":"1f607","native":"😇","x":32,"y":27}],"version":1},"smiling_face_with_3_hearts":{"id":"smiling_face_with_3_hearts","name":"Smiling Face with Hearts","keywords":["3","love","like","affection","valentines","infatuation","crush","adore"],"skins":[{"unified":"1f970","native":"🥰","x":43,"y":58}],"version":11},"heart_eyes":{"id":"heart_eyes","name":"Smiling Face with Heart-Eyes","keywords":["heart","eyes","love","like","affection","valentines","infatuation","crush"],"skins":[{"unified":"1f60d","native":"😍","x":32,"y":33}],"version":1},"star-struck":{"id":"star-struck","name":"Star-Struck","keywords":["star","struck","grinning","face","with","eyes","smile","starry"],"skins":[{"unified":"1f929","native":"🤩","x":40,"y":38}],"version":5},"kissing_heart":{"id":"kissing_heart","name":"Face Blowing a Kiss","emoticons":[":*",":-*"],"keywords":["kissing","heart","love","like","affection","valentines","infatuation"],"skins":[{"unified":"1f618","native":"😘","x":32,"y":44}],"version":1},"kissing":{"id":"kissing","name":"Kissing Face","keywords":["love","like","3","valentines","infatuation","kiss"],"skins":[{"unified":"1f617","native":"😗","x":32,"y":43}],"version":1},"relaxed":{"id":"relaxed","name":"Smiling Face","keywords":["relaxed","blush","massage","happiness"],"skins":[{"unified":"263a-fe0f","native":"☺️","x":57,"y":4}],"version":1},"kissing_closed_eyes":{"id":"kissing_closed_eyes","name":"Kissing Face with Closed Eyes","keywords":["love","like","affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f61a","native":"😚","x":32,"y":46}],"version":1},"kissing_smiling_eyes":{"id":"kissing_smiling_eyes","name":"Kissing Face with Smiling Eyes","keywords":["affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f619","native":"😙","x":32,"y":45}],"version":1},"smiling_face_with_tear":{"id":"smiling_face_with_tear","name":"Smiling Face with Tear","keywords":["sad","cry","pretend"],"skins":[{"unified":"1f972","native":"🥲","x":43,"y":60}],"version":13},"yum":{"id":"yum","name":"Face Savoring Food","keywords":["yum","happy","joy","tongue","smile","silly","yummy","nom","delicious","savouring"],"skins":[{"unified":"1f60b","native":"😋","x":32,"y":31}],"version":1},"stuck_out_tongue":{"id":"stuck_out_tongue","name":"Face with Tongue","emoticons":[":p",":-p",":P",":-P",":b",":-b"],"keywords":["stuck","out","prank","childish","playful","mischievous","smile"],"skins":[{"unified":"1f61b","native":"😛","x":32,"y":47}],"version":1},"stuck_out_tongue_winking_eye":{"id":"stuck_out_tongue_winking_eye","name":"Winking Face with Tongue","emoticons":[";p",";-p",";b",";-b",";P",";-P"],"keywords":["stuck","out","eye","prank","childish","playful","mischievous","smile","wink"],"skins":[{"unified":"1f61c","native":"😜","x":32,"y":48}],"version":1},"zany_face":{"id":"zany_face","name":"Zany Face","keywords":["grinning","with","one","large","and","small","eye","goofy","crazy"],"skins":[{"unified":"1f92a","native":"🤪","x":40,"y":39}],"version":5},"stuck_out_tongue_closed_eyes":{"id":"stuck_out_tongue_closed_eyes","name":"Squinting Face with Tongue","keywords":["stuck","out","closed","eyes","prank","playful","mischievous","smile"],"skins":[{"unified":"1f61d","native":"😝","x":32,"y":49}],"version":1},"money_mouth_face":{"id":"money_mouth_face","name":"Money-Mouth Face","keywords":["money","mouth","rich","dollar"],"skins":[{"unified":"1f911","native":"🤑","x":38,"y":59}],"version":1},"hugging_face":{"id":"hugging_face","name":"Hugging Face","keywords":["smile","hug"],"skins":[{"unified":"1f917","native":"🤗","x":39,"y":4}],"version":1},"face_with_hand_over_mouth":{"id":"face_with_hand_over_mouth","name":"Face with Hand over Mouth","keywords":["smiling","eyes","and","covering","whoops","shock","surprise"],"skins":[{"unified":"1f92d","native":"🤭","x":40,"y":42}],"version":5},"shushing_face":{"id":"shushing_face","name":"Shushing Face","keywords":["with","finger","covering","closed","lips","quiet","shhh"],"skins":[{"unified":"1f92b","native":"🤫","x":40,"y":40}],"version":5},"thinking_face":{"id":"thinking_face","name":"Thinking Face","keywords":["hmmm","think","consider"],"skins":[{"unified":"1f914","native":"🤔","x":39,"y":1}],"version":1},"zipper_mouth_face":{"id":"zipper_mouth_face","name":"Zipper-Mouth Face","keywords":["zipper","mouth","sealed","secret"],"skins":[{"unified":"1f910","native":"🤐","x":38,"y":58}],"version":1},"face_with_raised_eyebrow":{"id":"face_with_raised_eyebrow","name":"Face with Raised Eyebrow","keywords":["one","distrust","scepticism","disapproval","disbelief","surprise"],"skins":[{"unified":"1f928","native":"🤨","x":40,"y":37}],"version":5},"neutral_face":{"id":"neutral_face","name":"Neutral Face","emoticons":[":|",":-|"],"keywords":["indifference","meh",":",""],"skins":[{"unified":"1f610","native":"😐","x":32,"y":36}],"version":1},"expressionless":{"id":"expressionless","name":"Expressionless Face","emoticons":["-_-"],"keywords":["indifferent","-","","meh","deadpan"],"skins":[{"unified":"1f611","native":"😑","x":32,"y":37}],"version":1},"no_mouth":{"id":"no_mouth","name":"Face Without Mouth","keywords":["no","hellokitty"],"skins":[{"unified":"1f636","native":"😶","x":33,"y":16}],"version":1},"face_in_clouds":{"id":"face_in_clouds","name":"Face in Clouds","keywords":["shower","steam","dream"],"skins":[{"unified":"1f636-200d-1f32b-fe0f","native":"😶‍🌫️","x":33,"y":15}],"version":13.1},"smirk":{"id":"smirk","name":"Smirking Face","keywords":["smirk","smile","mean","prank","smug","sarcasm"],"skins":[{"unified":"1f60f","native":"😏","x":32,"y":35}],"version":1},"unamused":{"id":"unamused","name":"Unamused Face","emoticons":[":("],"keywords":["indifference","bored","straight","serious","sarcasm","unimpressed","skeptical","dubious","side","eye"],"skins":[{"unified":"1f612","native":"😒","x":32,"y":38}],"version":1},"face_with_rolling_eyes":{"id":"face_with_rolling_eyes","name":"Face with Rolling Eyes","keywords":["eyeroll","frustrated"],"skins":[{"unified":"1f644","native":"🙄","x":33,"y":30}],"version":1},"grimacing":{"id":"grimacing","name":"Grimacing Face","keywords":["grimace","teeth"],"skins":[{"unified":"1f62c","native":"😬","x":33,"y":3}],"version":1},"face_exhaling":{"id":"face_exhaling","name":"Face Exhaling","keywords":["relieve","relief","tired","sigh"],"skins":[{"unified":"1f62e-200d-1f4a8","native":"😮‍💨","x":33,"y":5}],"version":13.1},"lying_face":{"id":"lying_face","name":"Lying Face","keywords":["lie","pinocchio"],"skins":[{"unified":"1f925","native":"🤥","x":40,"y":17}],"version":3},"relieved":{"id":"relieved","name":"Relieved Face","keywords":["relaxed","phew","massage","happiness"],"skins":[{"unified":"1f60c","native":"😌","x":32,"y":32}],"version":1},"pensive":{"id":"pensive","name":"Pensive Face","keywords":["sad","depressed","upset"],"skins":[{"unified":"1f614","native":"😔","x":32,"y":40}],"version":1},"sleepy":{"id":"sleepy","name":"Sleepy Face","keywords":["tired","rest","nap"],"skins":[{"unified":"1f62a","native":"😪","x":33,"y":1}],"version":1},"drooling_face":{"id":"drooling_face","name":"Drooling Face","keywords":[],"skins":[{"unified":"1f924","native":"🤤","x":40,"y":16}],"version":3},"sleeping":{"id":"sleeping","name":"Sleeping Face","keywords":["tired","sleepy","night","zzz"],"skins":[{"unified":"1f634","native":"😴","x":33,"y":12}],"version":1},"mask":{"id":"mask","name":"Face with Medical Mask","keywords":["sick","ill","disease"],"skins":[{"unified":"1f637","native":"😷","x":33,"y":17}],"version":1},"face_with_thermometer":{"id":"face_with_thermometer","name":"Face with Thermometer","keywords":["sick","temperature","cold","fever"],"skins":[{"unified":"1f912","native":"🤒","x":38,"y":60}],"version":1},"face_with_head_bandage":{"id":"face_with_head_bandage","name":"Face with Head-Bandage","keywords":["head","bandage","injured","clumsy","hurt"],"skins":[{"unified":"1f915","native":"🤕","x":39,"y":2}],"version":1},"nauseated_face":{"id":"nauseated_face","name":"Nauseated Face","keywords":["vomit","gross","green","sick","throw","up","ill"],"skins":[{"unified":"1f922","native":"🤢","x":40,"y":14}],"version":3},"face_vomiting":{"id":"face_vomiting","name":"Face Vomiting","keywords":["with","open","mouth","sick"],"skins":[{"unified":"1f92e","native":"🤮","x":40,"y":43}],"version":5},"sneezing_face":{"id":"sneezing_face","name":"Sneezing Face","keywords":["gesundheit","sneeze","sick","allergy"],"skins":[{"unified":"1f927","native":"🤧","x":40,"y":36}],"version":3},"hot_face":{"id":"hot_face","name":"Hot Face","keywords":["feverish","heat","red","sweating"],"skins":[{"unified":"1f975","native":"🥵","x":44,"y":2}],"version":11},"cold_face":{"id":"cold_face","name":"Cold Face","keywords":["blue","freezing","frozen","frostbite","icicles"],"skins":[{"unified":"1f976","native":"🥶","x":44,"y":3}],"version":11},"woozy_face":{"id":"woozy_face","name":"Woozy Face","keywords":["dizzy","intoxicated","tipsy","wavy"],"skins":[{"unified":"1f974","native":"🥴","x":44,"y":1}],"version":11},"dizzy_face":{"id":"dizzy_face","name":"Dizzy Face","keywords":["spent","unconscious","xox"],"skins":[{"unified":"1f635","native":"😵","x":33,"y":14}],"version":1},"face_with_spiral_eyes":{"id":"face_with_spiral_eyes","name":"Face with Spiral Eyes","keywords":["sick","ill","confused","nauseous","nausea"],"skins":[{"unified":"1f635-200d-1f4ab","native":"😵‍💫","x":33,"y":13}],"version":13.1},"exploding_head":{"id":"exploding_head","name":"Exploding Head","keywords":["shocked","face","with","mind","blown"],"skins":[{"unified":"1f92f","native":"🤯","x":40,"y":44}],"version":5},"face_with_cowboy_hat":{"id":"face_with_cowboy_hat","name":"Cowboy Hat Face","keywords":["with","cowgirl"],"skins":[{"unified":"1f920","native":"🤠","x":40,"y":12}],"version":3},"partying_face":{"id":"partying_face","name":"Partying Face","keywords":["celebration","woohoo"],"skins":[{"unified":"1f973","native":"🥳","x":44,"y":0}],"version":11},"disguised_face":{"id":"disguised_face","name":"Disguised Face","keywords":["pretent","brows","glasses","moustache"],"skins":[{"unified":"1f978","native":"🥸","x":44,"y":10}],"version":13},"sunglasses":{"id":"sunglasses","name":"Smiling Face with Sunglasses","emoticons":["8)"],"keywords":["cool","smile","summer","beach","sunglass"],"skins":[{"unified":"1f60e","native":"😎","x":32,"y":34}],"version":1},"nerd_face":{"id":"nerd_face","name":"Nerd Face","keywords":["nerdy","geek","dork"],"skins":[{"unified":"1f913","native":"🤓","x":39,"y":0}],"version":1},"face_with_monocle":{"id":"face_with_monocle","name":"Face with Monocle","keywords":["stuffy","wealthy"],"skins":[{"unified":"1f9d0","native":"🧐","x":47,"y":11}],"version":5},"confused":{"id":"confused","name":"Confused Face","emoticons":[":\\",":-\\",":/",":-/"],"keywords":["indifference","huh","weird","hmmm",":/"],"skins":[{"unified":"1f615","native":"😕","x":32,"y":41}],"version":1},"worried":{"id":"worried","name":"Worried Face","keywords":["concern","nervous",":("],"skins":[{"unified":"1f61f","native":"😟","x":32,"y":51}],"version":1},"slightly_frowning_face":{"id":"slightly_frowning_face","name":"Slightly Frowning Face","keywords":["disappointed","sad","upset"],"skins":[{"unified":"1f641","native":"🙁","x":33,"y":27}],"version":1},"white_frowning_face":{"id":"white_frowning_face","name":"Frowning Face","keywords":["white","sad","upset","frown"],"skins":[{"unified":"2639-fe0f","native":"☹️","x":57,"y":3}],"version":1},"open_mouth":{"id":"open_mouth","name":"Face with Open Mouth","emoticons":[":o",":-o",":O",":-O"],"keywords":["surprise","impressed","wow","whoa",":O"],"skins":[{"unified":"1f62e","native":"😮","x":33,"y":6}],"version":1},"hushed":{"id":"hushed","name":"Hushed Face","keywords":["woo","shh"],"skins":[{"unified":"1f62f","native":"😯","x":33,"y":7}],"version":1},"astonished":{"id":"astonished","name":"Astonished Face","keywords":["xox","surprised","poisoned"],"skins":[{"unified":"1f632","native":"😲","x":33,"y":10}],"version":1},"flushed":{"id":"flushed","name":"Flushed Face","keywords":["blush","shy","flattered"],"skins":[{"unified":"1f633","native":"😳","x":33,"y":11}],"version":1},"pleading_face":{"id":"pleading_face","name":"Pleading Face","keywords":["begging","mercy"],"skins":[{"unified":"1f97a","native":"🥺","x":44,"y":12}],"version":11},"frowning":{"id":"frowning","name":"Frowning Face with Open Mouth","keywords":["aw","what"],"skins":[{"unified":"1f626","native":"😦","x":32,"y":58}],"version":1},"anguished":{"id":"anguished","name":"Anguished Face","emoticons":["D:"],"keywords":["stunned","nervous"],"skins":[{"unified":"1f627","native":"😧","x":32,"y":59}],"version":1},"fearful":{"id":"fearful","name":"Fearful Face","keywords":["scared","terrified","nervous","oops","huh"],"skins":[{"unified":"1f628","native":"😨","x":32,"y":60}],"version":1},"cold_sweat":{"id":"cold_sweat","name":"Anxious Face with Sweat","keywords":["cold","nervous"],"skins":[{"unified":"1f630","native":"😰","x":33,"y":8}],"version":1},"disappointed_relieved":{"id":"disappointed_relieved","name":"Sad but Relieved Face","keywords":["disappointed","phew","sweat","nervous"],"skins":[{"unified":"1f625","native":"😥","x":32,"y":57}],"version":1},"cry":{"id":"cry","name":"Crying Face","emoticons":[":'("],"keywords":["cry","tears","sad","depressed","upset",":'("],"skins":[{"unified":"1f622","native":"😢","x":32,"y":54}],"version":1},"sob":{"id":"sob","name":"Loudly Crying Face","emoticons":[":'("],"keywords":["sob","cry","tears","sad","upset","depressed"],"skins":[{"unified":"1f62d","native":"😭","x":33,"y":4}],"version":1},"scream":{"id":"scream","name":"Face Screaming in Fear","keywords":["scream","munch","scared","omg"],"skins":[{"unified":"1f631","native":"😱","x":33,"y":9}],"version":1},"confounded":{"id":"confounded","name":"Confounded Face","keywords":["confused","sick","unwell","oops",":S"],"skins":[{"unified":"1f616","native":"😖","x":32,"y":42}],"version":1},"persevere":{"id":"persevere","name":"Persevering Face","keywords":["persevere","sick","no","upset","oops"],"skins":[{"unified":"1f623","native":"😣","x":32,"y":55}],"version":1},"disappointed":{"id":"disappointed","name":"Disappointed Face","emoticons":["):",":(",":-("],"keywords":["sad","upset","depressed",":("],"skins":[{"unified":"1f61e","native":"😞","x":32,"y":50}],"version":1},"sweat":{"id":"sweat","name":"Face with Cold Sweat","keywords":["downcast","hot","sad","tired","exercise"],"skins":[{"unified":"1f613","native":"😓","x":32,"y":39}],"version":1},"weary":{"id":"weary","name":"Weary Face","keywords":["tired","sleepy","sad","frustrated","upset"],"skins":[{"unified":"1f629","native":"😩","x":33,"y":0}],"version":1},"tired_face":{"id":"tired_face","name":"Tired Face","keywords":["sick","whine","upset","frustrated"],"skins":[{"unified":"1f62b","native":"😫","x":33,"y":2}],"version":1},"yawning_face":{"id":"yawning_face","name":"Yawning Face","keywords":["tired","sleepy"],"skins":[{"unified":"1f971","native":"🥱","x":43,"y":59}],"version":12},"triumph":{"id":"triumph","name":"Face with Look of Triumph","keywords":["steam","from","nose","gas","phew","proud","pride"],"skins":[{"unified":"1f624","native":"😤","x":32,"y":56}],"version":1},"rage":{"id":"rage","name":"Pouting Face","keywords":["rage","angry","mad","hate","despise"],"skins":[{"unified":"1f621","native":"😡","x":32,"y":53}],"version":1},"angry":{"id":"angry","name":"Angry Face","emoticons":[">:(",">:-("],"keywords":["mad","annoyed","frustrated"],"skins":[{"unified":"1f620","native":"😠","x":32,"y":52}],"version":1},"face_with_symbols_on_mouth":{"id":"face_with_symbols_on_mouth","name":"Face with Symbols on Mouth","keywords":["serious","covering","swearing","cursing","cussing","profanity","expletive"],"skins":[{"unified":"1f92c","native":"🤬","x":40,"y":41}],"version":5},"smiling_imp":{"id":"smiling_imp","name":"Smiling Face with Horns","keywords":["imp","devil"],"skins":[{"unified":"1f608","native":"😈","x":32,"y":28}],"version":1},"imp":{"id":"imp","name":"Imp","keywords":["angry","face","with","horns","devil"],"skins":[{"unified":"1f47f","native":"👿","x":25,"y":8}],"version":1},"skull":{"id":"skull","name":"Skull","keywords":["dead","skeleton","creepy","death"],"skins":[{"unified":"1f480","native":"💀","x":25,"y":9}],"version":1},"skull_and_crossbones":{"id":"skull_and_crossbones","name":"Skull and Crossbones","keywords":["poison","danger","deadly","scary","death","pirate","evil"],"skins":[{"unified":"2620-fe0f","native":"☠️","x":56,"y":56}],"version":1},"hankey":{"id":"hankey","name":"Pile of Poo","keywords":["hankey","poop","shit","shitface","fail","turd"],"skins":[{"unified":"1f4a9","native":"💩","x":27,"y":56}],"version":1},"clown_face":{"id":"clown_face","name":"Clown Face","keywords":[],"skins":[{"unified":"1f921","native":"🤡","x":40,"y":13}],"version":3},"japanese_ogre":{"id":"japanese_ogre","name":"Ogre","keywords":["japanese","monster","red","mask","halloween","scary","creepy","devil","demon"],"skins":[{"unified":"1f479","native":"👹","x":24,"y":58}],"version":1},"japanese_goblin":{"id":"japanese_goblin","name":"Goblin","keywords":["japanese","red","evil","mask","monster","scary","creepy"],"skins":[{"unified":"1f47a","native":"👺","x":24,"y":59}],"version":1},"ghost":{"id":"ghost","name":"Ghost","keywords":["halloween","spooky","scary"],"skins":[{"unified":"1f47b","native":"👻","x":24,"y":60}],"version":1},"alien":{"id":"alien","name":"Alien","keywords":["UFO","paul","weird","outer","space"],"skins":[{"unified":"1f47d","native":"👽","x":25,"y":6}],"version":1},"space_invader":{"id":"space_invader","name":"Alien Monster","keywords":["space","invader","game","arcade","play"],"skins":[{"unified":"1f47e","native":"👾","x":25,"y":7}],"version":1},"robot_face":{"id":"robot_face","name":"Robot","keywords":["face","computer","machine","bot"],"skins":[{"unified":"1f916","native":"🤖","x":39,"y":3}],"version":1},"smiley_cat":{"id":"smiley_cat","name":"Grinning Cat","keywords":["smiley","animal","cats","happy","smile"],"skins":[{"unified":"1f63a","native":"😺","x":33,"y":20}],"version":1},"smile_cat":{"id":"smile_cat","name":"Grinning Cat with Smiling Eyes","keywords":["smile","animal","cats"],"skins":[{"unified":"1f638","native":"😸","x":33,"y":18}],"version":1},"joy_cat":{"id":"joy_cat","name":"Cat with Tears of Joy","keywords":["animal","cats","haha","happy"],"skins":[{"unified":"1f639","native":"😹","x":33,"y":19}],"version":1},"heart_eyes_cat":{"id":"heart_eyes_cat","name":"Smiling Cat with Heart-Eyes","keywords":["heart","eyes","animal","love","like","affection","cats","valentines"],"skins":[{"unified":"1f63b","native":"😻","x":33,"y":21}],"version":1},"smirk_cat":{"id":"smirk_cat","name":"Cat with Wry Smile","keywords":["smirk","animal","cats"],"skins":[{"unified":"1f63c","native":"😼","x":33,"y":22}],"version":1},"kissing_cat":{"id":"kissing_cat","name":"Kissing Cat","keywords":["animal","cats","kiss"],"skins":[{"unified":"1f63d","native":"😽","x":33,"y":23}],"version":1},"scream_cat":{"id":"scream_cat","name":"Weary Cat","keywords":["scream","animal","cats","munch","scared"],"skins":[{"unified":"1f640","native":"🙀","x":33,"y":26}],"version":1},"crying_cat_face":{"id":"crying_cat_face","name":"Crying Cat","keywords":["face","animal","tears","weep","sad","cats","upset","cry"],"skins":[{"unified":"1f63f","native":"😿","x":33,"y":25}],"version":1},"pouting_cat":{"id":"pouting_cat","name":"Pouting Cat","keywords":["animal","cats"],"skins":[{"unified":"1f63e","native":"😾","x":33,"y":24}],"version":1},"see_no_evil":{"id":"see_no_evil","name":"See-No-Evil Monkey","keywords":["see","no","evil","animal","nature","haha"],"skins":[{"unified":"1f648","native":"🙈","x":34,"y":24}],"version":1},"hear_no_evil":{"id":"hear_no_evil","name":"Hear-No-Evil Monkey","keywords":["hear","no","evil","animal","nature"],"skins":[{"unified":"1f649","native":"🙉","x":34,"y":25}],"version":1},"speak_no_evil":{"id":"speak_no_evil","name":"Speak-No-Evil Monkey","keywords":["speak","no","evil","animal","nature","omg"],"skins":[{"unified":"1f64a","native":"🙊","x":34,"y":26}],"version":1},"kiss":{"id":"kiss","name":"Kiss Mark","keywords":["face","lips","love","like","affection","valentines"],"skins":[{"unified":"1f48b","native":"💋","x":26,"y":37}],"version":1},"love_letter":{"id":"love_letter","name":"Love Letter","keywords":["email","like","affection","envelope","valentines"],"skins":[{"unified":"1f48c","native":"💌","x":26,"y":38}],"version":1},"cupid":{"id":"cupid","name":"Heart with Arrow","keywords":["cupid","love","like","affection","valentines"],"skins":[{"unified":"1f498","native":"💘","x":27,"y":39}],"version":1},"gift_heart":{"id":"gift_heart","name":"Heart with Ribbon","keywords":["gift","love","valentines"],"skins":[{"unified":"1f49d","native":"💝","x":27,"y":44}],"version":1},"sparkling_heart":{"id":"sparkling_heart","name":"Sparkling Heart","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f496","native":"💖","x":27,"y":37}],"version":1},"heartpulse":{"id":"heartpulse","name":"Growing Heart","keywords":["heartpulse","like","love","affection","valentines","pink"],"skins":[{"unified":"1f497","native":"💗","x":27,"y":38}],"version":1},"heartbeat":{"id":"heartbeat","name":"Beating Heart","keywords":["heartbeat","love","like","affection","valentines","pink"],"skins":[{"unified":"1f493","native":"💓","x":27,"y":34}],"version":1},"revolving_hearts":{"id":"revolving_hearts","name":"Revolving Hearts","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f49e","native":"💞","x":27,"y":45}],"version":1},"two_hearts":{"id":"two_hearts","name":"Two Hearts","keywords":["love","like","affection","valentines","heart"],"skins":[{"unified":"1f495","native":"💕","x":27,"y":36}],"version":1},"heart_decoration":{"id":"heart_decoration","name":"Heart Decoration","keywords":["purple","square","love","like"],"skins":[{"unified":"1f49f","native":"💟","x":27,"y":46}],"version":1},"heavy_heart_exclamation_mark_ornament":{"id":"heavy_heart_exclamation_mark_ornament","name":"Heart Exclamation","keywords":["heavy","mark","ornament","decoration","love"],"skins":[{"unified":"2763-fe0f","native":"❣️","x":59,"y":7}],"version":1},"broken_heart":{"id":"broken_heart","name":"Broken Heart","emoticons":["",":->"],"keywords":["laughing","satisfied","happy","joy","lol","haha","glad","XD","laugh"],"skins":[{"unified":"1f606","native":"😆","x":32,"y":26}],"version":1},"sweat_smile":{"id":"sweat_smile","name":"Grinning Face with Sweat","keywords":["smile","hot","happy","laugh","relief"],"skins":[{"unified":"1f605","native":"😅","x":32,"y":25}],"version":1},"rolling_on_the_floor_laughing":{"id":"rolling_on_the_floor_laughing","name":"Rolling on the Floor Laughing","keywords":["face","lol","haha","rofl"],"skins":[{"unified":"1f923","native":"🤣","x":40,"y":15}],"version":3},"joy":{"id":"joy","name":"Face with Tears of Joy","keywords":["cry","weep","happy","happytears","haha"],"skins":[{"unified":"1f602","native":"😂","x":32,"y":22}],"version":1},"slightly_smiling_face":{"id":"slightly_smiling_face","name":"Slightly Smiling Face","emoticons":[":)","(:",":-)"],"keywords":["smile"],"skins":[{"unified":"1f642","native":"🙂","x":33,"y":28}],"version":1},"upside_down_face":{"id":"upside_down_face","name":"Upside-Down Face","keywords":["upside","down","flipped","silly","smile"],"skins":[{"unified":"1f643","native":"🙃","x":33,"y":29}],"version":1},"wink":{"id":"wink","name":"Winking Face","emoticons":[";)",";-)"],"keywords":["wink","happy","mischievous","secret",";)","smile","eye"],"skins":[{"unified":"1f609","native":"😉","x":32,"y":29}],"version":1},"blush":{"id":"blush","name":"Smiling Face with Smiling Eyes","emoticons":[":)"],"keywords":["blush","smile","happy","flushed","crush","embarrassed","shy","joy"],"skins":[{"unified":"1f60a","native":"😊","x":32,"y":30}],"version":1},"innocent":{"id":"innocent","name":"Smiling Face with Halo","keywords":["innocent","angel","heaven"],"skins":[{"unified":"1f607","native":"😇","x":32,"y":27}],"version":1},"smiling_face_with_3_hearts":{"id":"smiling_face_with_3_hearts","name":"Smiling Face with Hearts","keywords":["3","love","like","affection","valentines","infatuation","crush","adore"],"skins":[{"unified":"1f970","native":"🥰","x":43,"y":58}],"version":11},"heart_eyes":{"id":"heart_eyes","name":"Smiling Face with Heart-Eyes","keywords":["heart","eyes","love","like","affection","valentines","infatuation","crush"],"skins":[{"unified":"1f60d","native":"😍","x":32,"y":33}],"version":1},"star-struck":{"id":"star-struck","name":"Star-Struck","keywords":["star","struck","grinning","face","with","eyes","smile","starry"],"skins":[{"unified":"1f929","native":"🤩","x":40,"y":38}],"version":5},"kissing_heart":{"id":"kissing_heart","name":"Face Blowing a Kiss","emoticons":[":*",":-*"],"keywords":["kissing","heart","love","like","affection","valentines","infatuation"],"skins":[{"unified":"1f618","native":"😘","x":32,"y":44}],"version":1},"kissing":{"id":"kissing","name":"Kissing Face","keywords":["love","like","3","valentines","infatuation","kiss"],"skins":[{"unified":"1f617","native":"😗","x":32,"y":43}],"version":1},"relaxed":{"id":"relaxed","name":"Smiling Face","keywords":["relaxed","blush","massage","happiness"],"skins":[{"unified":"263a-fe0f","native":"☺️","x":57,"y":4}],"version":1},"kissing_closed_eyes":{"id":"kissing_closed_eyes","name":"Kissing Face with Closed Eyes","keywords":["love","like","affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f61a","native":"😚","x":32,"y":46}],"version":1},"kissing_smiling_eyes":{"id":"kissing_smiling_eyes","name":"Kissing Face with Smiling Eyes","keywords":["affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f619","native":"😙","x":32,"y":45}],"version":1},"smiling_face_with_tear":{"id":"smiling_face_with_tear","name":"Smiling Face with Tear","keywords":["sad","cry","pretend"],"skins":[{"unified":"1f972","native":"🥲","x":43,"y":60}],"version":13},"yum":{"id":"yum","name":"Face Savoring Food","keywords":["yum","happy","joy","tongue","smile","silly","yummy","nom","delicious","savouring"],"skins":[{"unified":"1f60b","native":"😋","x":32,"y":31}],"version":1},"stuck_out_tongue":{"id":"stuck_out_tongue","name":"Face with Tongue","emoticons":[":p",":-p",":P",":-P",":b",":-b"],"keywords":["stuck","out","prank","childish","playful","mischievous","smile"],"skins":[{"unified":"1f61b","native":"😛","x":32,"y":47}],"version":1},"stuck_out_tongue_winking_eye":{"id":"stuck_out_tongue_winking_eye","name":"Winking Face with Tongue","emoticons":[";p",";-p",";b",";-b",";P",";-P"],"keywords":["stuck","out","eye","prank","childish","playful","mischievous","smile","wink"],"skins":[{"unified":"1f61c","native":"😜","x":32,"y":48}],"version":1},"zany_face":{"id":"zany_face","name":"Zany Face","keywords":["grinning","with","one","large","and","small","eye","goofy","crazy"],"skins":[{"unified":"1f92a","native":"🤪","x":40,"y":39}],"version":5},"stuck_out_tongue_closed_eyes":{"id":"stuck_out_tongue_closed_eyes","name":"Squinting Face with Tongue","keywords":["stuck","out","closed","eyes","prank","playful","mischievous","smile"],"skins":[{"unified":"1f61d","native":"😝","x":32,"y":49}],"version":1},"money_mouth_face":{"id":"money_mouth_face","name":"Money-Mouth Face","keywords":["money","mouth","rich","dollar"],"skins":[{"unified":"1f911","native":"🤑","x":38,"y":59}],"version":1},"hugging_face":{"id":"hugging_face","name":"Hugging Face","keywords":["smile","hug"],"skins":[{"unified":"1f917","native":"🤗","x":39,"y":4}],"version":1},"face_with_hand_over_mouth":{"id":"face_with_hand_over_mouth","name":"Face with Hand over Mouth","keywords":["smiling","eyes","and","covering","whoops","shock","surprise"],"skins":[{"unified":"1f92d","native":"🤭","x":40,"y":42}],"version":5},"shushing_face":{"id":"shushing_face","name":"Shushing Face","keywords":["with","finger","covering","closed","lips","quiet","shhh"],"skins":[{"unified":"1f92b","native":"🤫","x":40,"y":40}],"version":5},"thinking_face":{"id":"thinking_face","name":"Thinking Face","keywords":["hmmm","think","consider"],"skins":[{"unified":"1f914","native":"🤔","x":39,"y":1}],"version":1},"zipper_mouth_face":{"id":"zipper_mouth_face","name":"Zipper-Mouth Face","keywords":["zipper","mouth","sealed","secret"],"skins":[{"unified":"1f910","native":"🤐","x":38,"y":58}],"version":1},"face_with_raised_eyebrow":{"id":"face_with_raised_eyebrow","name":"Face with Raised Eyebrow","keywords":["one","distrust","scepticism","disapproval","disbelief","surprise"],"skins":[{"unified":"1f928","native":"🤨","x":40,"y":37}],"version":5},"neutral_face":{"id":"neutral_face","name":"Neutral Face","emoticons":[":|",":-|"],"keywords":["indifference","meh",":",""],"skins":[{"unified":"1f610","native":"😐","x":32,"y":36}],"version":1},"expressionless":{"id":"expressionless","name":"Expressionless Face","emoticons":["-_-"],"keywords":["indifferent","-","","meh","deadpan"],"skins":[{"unified":"1f611","native":"😑","x":32,"y":37}],"version":1},"no_mouth":{"id":"no_mouth","name":"Face Without Mouth","keywords":["no","hellokitty"],"skins":[{"unified":"1f636","native":"😶","x":33,"y":16}],"version":1},"smirk":{"id":"smirk","name":"Smirking Face","keywords":["smirk","smile","mean","prank","smug","sarcasm"],"skins":[{"unified":"1f60f","native":"😏","x":32,"y":35}],"version":1},"unamused":{"id":"unamused","name":"Unamused Face","emoticons":[":("],"keywords":["indifference","bored","straight","serious","sarcasm","unimpressed","skeptical","dubious","side","eye"],"skins":[{"unified":"1f612","native":"😒","x":32,"y":38}],"version":1},"face_with_rolling_eyes":{"id":"face_with_rolling_eyes","name":"Face with Rolling Eyes","keywords":["eyeroll","frustrated"],"skins":[{"unified":"1f644","native":"🙄","x":33,"y":30}],"version":1},"grimacing":{"id":"grimacing","name":"Grimacing Face","keywords":["grimace","teeth"],"skins":[{"unified":"1f62c","native":"😬","x":33,"y":3}],"version":1},"lying_face":{"id":"lying_face","name":"Lying Face","keywords":["lie","pinocchio"],"skins":[{"unified":"1f925","native":"🤥","x":40,"y":17}],"version":3},"relieved":{"id":"relieved","name":"Relieved Face","keywords":["relaxed","phew","massage","happiness"],"skins":[{"unified":"1f60c","native":"😌","x":32,"y":32}],"version":1},"pensive":{"id":"pensive","name":"Pensive Face","keywords":["sad","depressed","upset"],"skins":[{"unified":"1f614","native":"😔","x":32,"y":40}],"version":1},"sleepy":{"id":"sleepy","name":"Sleepy Face","keywords":["tired","rest","nap"],"skins":[{"unified":"1f62a","native":"😪","x":33,"y":1}],"version":1},"drooling_face":{"id":"drooling_face","name":"Drooling Face","keywords":[],"skins":[{"unified":"1f924","native":"🤤","x":40,"y":16}],"version":3},"sleeping":{"id":"sleeping","name":"Sleeping Face","keywords":["tired","sleepy","night","zzz"],"skins":[{"unified":"1f634","native":"😴","x":33,"y":12}],"version":1},"mask":{"id":"mask","name":"Face with Medical Mask","keywords":["sick","ill","disease"],"skins":[{"unified":"1f637","native":"😷","x":33,"y":17}],"version":1},"face_with_thermometer":{"id":"face_with_thermometer","name":"Face with Thermometer","keywords":["sick","temperature","cold","fever"],"skins":[{"unified":"1f912","native":"🤒","x":38,"y":60}],"version":1},"face_with_head_bandage":{"id":"face_with_head_bandage","name":"Face with Head-Bandage","keywords":["head","bandage","injured","clumsy","hurt"],"skins":[{"unified":"1f915","native":"🤕","x":39,"y":2}],"version":1},"nauseated_face":{"id":"nauseated_face","name":"Nauseated Face","keywords":["vomit","gross","green","sick","throw","up","ill"],"skins":[{"unified":"1f922","native":"🤢","x":40,"y":14}],"version":3},"face_vomiting":{"id":"face_vomiting","name":"Face Vomiting","keywords":["with","open","mouth","sick"],"skins":[{"unified":"1f92e","native":"🤮","x":40,"y":43}],"version":5},"sneezing_face":{"id":"sneezing_face","name":"Sneezing Face","keywords":["gesundheit","sneeze","sick","allergy"],"skins":[{"unified":"1f927","native":"🤧","x":40,"y":36}],"version":3},"hot_face":{"id":"hot_face","name":"Hot Face","keywords":["feverish","heat","red","sweating"],"skins":[{"unified":"1f975","native":"🥵","x":44,"y":2}],"version":11},"cold_face":{"id":"cold_face","name":"Cold Face","keywords":["blue","freezing","frozen","frostbite","icicles"],"skins":[{"unified":"1f976","native":"🥶","x":44,"y":3}],"version":11},"woozy_face":{"id":"woozy_face","name":"Woozy Face","keywords":["dizzy","intoxicated","tipsy","wavy"],"skins":[{"unified":"1f974","native":"🥴","x":44,"y":1}],"version":11},"dizzy_face":{"id":"dizzy_face","name":"Dizzy Face","keywords":["spent","unconscious","xox"],"skins":[{"unified":"1f635","native":"😵","x":33,"y":14}],"version":1},"exploding_head":{"id":"exploding_head","name":"Exploding Head","keywords":["shocked","face","with","mind","blown"],"skins":[{"unified":"1f92f","native":"🤯","x":40,"y":44}],"version":5},"face_with_cowboy_hat":{"id":"face_with_cowboy_hat","name":"Cowboy Hat Face","keywords":["with","cowgirl"],"skins":[{"unified":"1f920","native":"🤠","x":40,"y":12}],"version":3},"partying_face":{"id":"partying_face","name":"Partying Face","keywords":["celebration","woohoo"],"skins":[{"unified":"1f973","native":"🥳","x":44,"y":0}],"version":11},"disguised_face":{"id":"disguised_face","name":"Disguised Face","keywords":["pretent","brows","glasses","moustache"],"skins":[{"unified":"1f978","native":"🥸","x":44,"y":10}],"version":13},"sunglasses":{"id":"sunglasses","name":"Smiling Face with Sunglasses","emoticons":["8)"],"keywords":["cool","smile","summer","beach","sunglass"],"skins":[{"unified":"1f60e","native":"😎","x":32,"y":34}],"version":1},"nerd_face":{"id":"nerd_face","name":"Nerd Face","keywords":["nerdy","geek","dork"],"skins":[{"unified":"1f913","native":"🤓","x":39,"y":0}],"version":1},"face_with_monocle":{"id":"face_with_monocle","name":"Face with Monocle","keywords":["stuffy","wealthy"],"skins":[{"unified":"1f9d0","native":"🧐","x":47,"y":11}],"version":5},"confused":{"id":"confused","name":"Confused Face","emoticons":[":\\",":-\\",":/",":-/"],"keywords":["indifference","huh","weird","hmmm",":/"],"skins":[{"unified":"1f615","native":"😕","x":32,"y":41}],"version":1},"worried":{"id":"worried","name":"Worried Face","keywords":["concern","nervous",":("],"skins":[{"unified":"1f61f","native":"😟","x":32,"y":51}],"version":1},"slightly_frowning_face":{"id":"slightly_frowning_face","name":"Slightly Frowning Face","keywords":["disappointed","sad","upset"],"skins":[{"unified":"1f641","native":"🙁","x":33,"y":27}],"version":1},"white_frowning_face":{"id":"white_frowning_face","name":"Frowning Face","keywords":["white","sad","upset","frown"],"skins":[{"unified":"2639-fe0f","native":"☹️","x":57,"y":3}],"version":1},"open_mouth":{"id":"open_mouth","name":"Face with Open Mouth","emoticons":[":o",":-o",":O",":-O"],"keywords":["surprise","impressed","wow","whoa",":O"],"skins":[{"unified":"1f62e","native":"😮","x":33,"y":6}],"version":1},"hushed":{"id":"hushed","name":"Hushed Face","keywords":["woo","shh"],"skins":[{"unified":"1f62f","native":"😯","x":33,"y":7}],"version":1},"astonished":{"id":"astonished","name":"Astonished Face","keywords":["xox","surprised","poisoned"],"skins":[{"unified":"1f632","native":"😲","x":33,"y":10}],"version":1},"flushed":{"id":"flushed","name":"Flushed Face","keywords":["blush","shy","flattered"],"skins":[{"unified":"1f633","native":"😳","x":33,"y":11}],"version":1},"pleading_face":{"id":"pleading_face","name":"Pleading Face","keywords":["begging","mercy"],"skins":[{"unified":"1f97a","native":"🥺","x":44,"y":12}],"version":11},"frowning":{"id":"frowning","name":"Frowning Face with Open Mouth","keywords":["aw","what"],"skins":[{"unified":"1f626","native":"😦","x":32,"y":58}],"version":1},"anguished":{"id":"anguished","name":"Anguished Face","emoticons":["D:"],"keywords":["stunned","nervous"],"skins":[{"unified":"1f627","native":"😧","x":32,"y":59}],"version":1},"fearful":{"id":"fearful","name":"Fearful Face","keywords":["scared","terrified","nervous","oops","huh"],"skins":[{"unified":"1f628","native":"😨","x":32,"y":60}],"version":1},"cold_sweat":{"id":"cold_sweat","name":"Anxious Face with Sweat","keywords":["cold","nervous"],"skins":[{"unified":"1f630","native":"😰","x":33,"y":8}],"version":1},"disappointed_relieved":{"id":"disappointed_relieved","name":"Sad but Relieved Face","keywords":["disappointed","phew","sweat","nervous"],"skins":[{"unified":"1f625","native":"😥","x":32,"y":57}],"version":1},"cry":{"id":"cry","name":"Crying Face","emoticons":[":'("],"keywords":["cry","tears","sad","depressed","upset",":'("],"skins":[{"unified":"1f622","native":"😢","x":32,"y":54}],"version":1},"sob":{"id":"sob","name":"Loudly Crying Face","emoticons":[":'("],"keywords":["sob","cry","tears","sad","upset","depressed"],"skins":[{"unified":"1f62d","native":"😭","x":33,"y":4}],"version":1},"scream":{"id":"scream","name":"Face Screaming in Fear","keywords":["scream","munch","scared","omg"],"skins":[{"unified":"1f631","native":"😱","x":33,"y":9}],"version":1},"confounded":{"id":"confounded","name":"Confounded Face","keywords":["confused","sick","unwell","oops",":S"],"skins":[{"unified":"1f616","native":"😖","x":32,"y":42}],"version":1},"persevere":{"id":"persevere","name":"Persevering Face","keywords":["persevere","sick","no","upset","oops"],"skins":[{"unified":"1f623","native":"😣","x":32,"y":55}],"version":1},"disappointed":{"id":"disappointed","name":"Disappointed Face","emoticons":["):",":(",":-("],"keywords":["sad","upset","depressed",":("],"skins":[{"unified":"1f61e","native":"😞","x":32,"y":50}],"version":1},"sweat":{"id":"sweat","name":"Face with Cold Sweat","keywords":["downcast","hot","sad","tired","exercise"],"skins":[{"unified":"1f613","native":"😓","x":32,"y":39}],"version":1},"weary":{"id":"weary","name":"Weary Face","keywords":["tired","sleepy","sad","frustrated","upset"],"skins":[{"unified":"1f629","native":"😩","x":33,"y":0}],"version":1},"tired_face":{"id":"tired_face","name":"Tired Face","keywords":["sick","whine","upset","frustrated"],"skins":[{"unified":"1f62b","native":"😫","x":33,"y":2}],"version":1},"yawning_face":{"id":"yawning_face","name":"Yawning Face","keywords":["tired","sleepy"],"skins":[{"unified":"1f971","native":"🥱","x":43,"y":59}],"version":12},"triumph":{"id":"triumph","name":"Face with Look of Triumph","keywords":["steam","from","nose","gas","phew","proud","pride"],"skins":[{"unified":"1f624","native":"😤","x":32,"y":56}],"version":1},"rage":{"id":"rage","name":"Pouting Face","keywords":["rage","angry","mad","hate","despise"],"skins":[{"unified":"1f621","native":"😡","x":32,"y":53}],"version":1},"angry":{"id":"angry","name":"Angry Face","emoticons":[">:(",">:-("],"keywords":["mad","annoyed","frustrated"],"skins":[{"unified":"1f620","native":"😠","x":32,"y":52}],"version":1},"face_with_symbols_on_mouth":{"id":"face_with_symbols_on_mouth","name":"Face with Symbols on Mouth","keywords":["serious","covering","swearing","cursing","cussing","profanity","expletive"],"skins":[{"unified":"1f92c","native":"🤬","x":40,"y":41}],"version":5},"smiling_imp":{"id":"smiling_imp","name":"Smiling Face with Horns","keywords":["imp","devil"],"skins":[{"unified":"1f608","native":"😈","x":32,"y":28}],"version":1},"imp":{"id":"imp","name":"Imp","keywords":["angry","face","with","horns","devil"],"skins":[{"unified":"1f47f","native":"👿","x":25,"y":8}],"version":1},"skull":{"id":"skull","name":"Skull","keywords":["dead","skeleton","creepy","death"],"skins":[{"unified":"1f480","native":"💀","x":25,"y":9}],"version":1},"skull_and_crossbones":{"id":"skull_and_crossbones","name":"Skull and Crossbones","keywords":["poison","danger","deadly","scary","death","pirate","evil"],"skins":[{"unified":"2620-fe0f","native":"☠️","x":56,"y":56}],"version":1},"hankey":{"id":"hankey","name":"Pile of Poo","keywords":["hankey","poop","shit","shitface","fail","turd"],"skins":[{"unified":"1f4a9","native":"💩","x":27,"y":56}],"version":1},"clown_face":{"id":"clown_face","name":"Clown Face","keywords":[],"skins":[{"unified":"1f921","native":"🤡","x":40,"y":13}],"version":3},"japanese_ogre":{"id":"japanese_ogre","name":"Ogre","keywords":["japanese","monster","red","mask","halloween","scary","creepy","devil","demon"],"skins":[{"unified":"1f479","native":"👹","x":24,"y":58}],"version":1},"japanese_goblin":{"id":"japanese_goblin","name":"Goblin","keywords":["japanese","red","evil","mask","monster","scary","creepy"],"skins":[{"unified":"1f47a","native":"👺","x":24,"y":59}],"version":1},"ghost":{"id":"ghost","name":"Ghost","keywords":["halloween","spooky","scary"],"skins":[{"unified":"1f47b","native":"👻","x":24,"y":60}],"version":1},"alien":{"id":"alien","name":"Alien","keywords":["UFO","paul","weird","outer","space"],"skins":[{"unified":"1f47d","native":"👽","x":25,"y":6}],"version":1},"space_invader":{"id":"space_invader","name":"Alien Monster","keywords":["space","invader","game","arcade","play"],"skins":[{"unified":"1f47e","native":"👾","x":25,"y":7}],"version":1},"robot_face":{"id":"robot_face","name":"Robot","keywords":["face","computer","machine","bot"],"skins":[{"unified":"1f916","native":"🤖","x":39,"y":3}],"version":1},"smiley_cat":{"id":"smiley_cat","name":"Grinning Cat","keywords":["smiley","animal","cats","happy","smile"],"skins":[{"unified":"1f63a","native":"😺","x":33,"y":20}],"version":1},"smile_cat":{"id":"smile_cat","name":"Grinning Cat with Smiling Eyes","keywords":["smile","animal","cats"],"skins":[{"unified":"1f638","native":"😸","x":33,"y":18}],"version":1},"joy_cat":{"id":"joy_cat","name":"Cat with Tears of Joy","keywords":["animal","cats","haha","happy"],"skins":[{"unified":"1f639","native":"😹","x":33,"y":19}],"version":1},"heart_eyes_cat":{"id":"heart_eyes_cat","name":"Smiling Cat with Heart-Eyes","keywords":["heart","eyes","animal","love","like","affection","cats","valentines"],"skins":[{"unified":"1f63b","native":"😻","x":33,"y":21}],"version":1},"smirk_cat":{"id":"smirk_cat","name":"Cat with Wry Smile","keywords":["smirk","animal","cats"],"skins":[{"unified":"1f63c","native":"😼","x":33,"y":22}],"version":1},"kissing_cat":{"id":"kissing_cat","name":"Kissing Cat","keywords":["animal","cats","kiss"],"skins":[{"unified":"1f63d","native":"😽","x":33,"y":23}],"version":1},"scream_cat":{"id":"scream_cat","name":"Weary Cat","keywords":["scream","animal","cats","munch","scared"],"skins":[{"unified":"1f640","native":"🙀","x":33,"y":26}],"version":1},"crying_cat_face":{"id":"crying_cat_face","name":"Crying Cat","keywords":["face","animal","tears","weep","sad","cats","upset","cry"],"skins":[{"unified":"1f63f","native":"😿","x":33,"y":25}],"version":1},"pouting_cat":{"id":"pouting_cat","name":"Pouting Cat","keywords":["animal","cats"],"skins":[{"unified":"1f63e","native":"😾","x":33,"y":24}],"version":1},"see_no_evil":{"id":"see_no_evil","name":"See-No-Evil Monkey","keywords":["see","no","evil","animal","nature","haha"],"skins":[{"unified":"1f648","native":"🙈","x":34,"y":24}],"version":1},"hear_no_evil":{"id":"hear_no_evil","name":"Hear-No-Evil Monkey","keywords":["hear","no","evil","animal","nature"],"skins":[{"unified":"1f649","native":"🙉","x":34,"y":25}],"version":1},"speak_no_evil":{"id":"speak_no_evil","name":"Speak-No-Evil Monkey","keywords":["speak","no","evil","animal","nature","omg"],"skins":[{"unified":"1f64a","native":"🙊","x":34,"y":26}],"version":1},"kiss":{"id":"kiss","name":"Kiss Mark","keywords":["face","lips","love","like","affection","valentines"],"skins":[{"unified":"1f48b","native":"💋","x":26,"y":37}],"version":1},"love_letter":{"id":"love_letter","name":"Love Letter","keywords":["email","like","affection","envelope","valentines"],"skins":[{"unified":"1f48c","native":"💌","x":26,"y":38}],"version":1},"cupid":{"id":"cupid","name":"Heart with Arrow","keywords":["cupid","love","like","affection","valentines"],"skins":[{"unified":"1f498","native":"💘","x":27,"y":39}],"version":1},"gift_heart":{"id":"gift_heart","name":"Heart with Ribbon","keywords":["gift","love","valentines"],"skins":[{"unified":"1f49d","native":"💝","x":27,"y":44}],"version":1},"sparkling_heart":{"id":"sparkling_heart","name":"Sparkling Heart","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f496","native":"💖","x":27,"y":37}],"version":1},"heartpulse":{"id":"heartpulse","name":"Growing Heart","keywords":["heartpulse","like","love","affection","valentines","pink"],"skins":[{"unified":"1f497","native":"💗","x":27,"y":38}],"version":1},"heartbeat":{"id":"heartbeat","name":"Beating Heart","keywords":["heartbeat","love","like","affection","valentines","pink"],"skins":[{"unified":"1f493","native":"💓","x":27,"y":34}],"version":1},"revolving_hearts":{"id":"revolving_hearts","name":"Revolving Hearts","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f49e","native":"💞","x":27,"y":45}],"version":1},"two_hearts":{"id":"two_hearts","name":"Two Hearts","keywords":["love","like","affection","valentines","heart"],"skins":[{"unified":"1f495","native":"💕","x":27,"y":36}],"version":1},"heart_decoration":{"id":"heart_decoration","name":"Heart Decoration","keywords":["purple","square","love","like"],"skins":[{"unified":"1f49f","native":"💟","x":27,"y":46}],"version":1},"heavy_heart_exclamation_mark_ornament":{"id":"heavy_heart_exclamation_mark_ornament","name":"Heart Exclamation","keywords":["heavy","mark","ornament","decoration","love"],"skins":[{"unified":"2763-fe0f","native":"❣️","x":59,"y":7}],"version":1},"broken_heart":{"id":"broken_heart","name":"Broken Heart","emoticons":["",":->"],"keywords":["laughing","satisfied","happy","joy","lol","haha","glad","XD","laugh"],"skins":[{"unified":"1f606","native":"😆","x":32,"y":26}],"version":1},"sweat_smile":{"id":"sweat_smile","name":"Grinning Face with Sweat","keywords":["smile","hot","happy","laugh","relief"],"skins":[{"unified":"1f605","native":"😅","x":32,"y":25}],"version":1},"rolling_on_the_floor_laughing":{"id":"rolling_on_the_floor_laughing","name":"Rolling on the Floor Laughing","keywords":["face","lol","haha","rofl"],"skins":[{"unified":"1f923","native":"🤣","x":40,"y":15}],"version":3},"joy":{"id":"joy","name":"Face with Tears of Joy","keywords":["cry","weep","happy","happytears","haha"],"skins":[{"unified":"1f602","native":"😂","x":32,"y":22}],"version":1},"slightly_smiling_face":{"id":"slightly_smiling_face","name":"Slightly Smiling Face","emoticons":[":)","(:",":-)"],"keywords":["smile"],"skins":[{"unified":"1f642","native":"🙂","x":33,"y":28}],"version":1},"upside_down_face":{"id":"upside_down_face","name":"Upside-Down Face","keywords":["upside","down","flipped","silly","smile"],"skins":[{"unified":"1f643","native":"🙃","x":33,"y":29}],"version":1},"melting_face":{"id":"melting_face","name":"Melting Face","keywords":["hot","heat"],"skins":[{"unified":"1fae0","native":"🫠","x":55,"y":12}],"version":14},"wink":{"id":"wink","name":"Winking Face","emoticons":[";)",";-)"],"keywords":["wink","happy","mischievous","secret",";)","smile","eye"],"skins":[{"unified":"1f609","native":"😉","x":32,"y":29}],"version":1},"blush":{"id":"blush","name":"Smiling Face with Smiling Eyes","emoticons":[":)"],"keywords":["blush","smile","happy","flushed","crush","embarrassed","shy","joy"],"skins":[{"unified":"1f60a","native":"😊","x":32,"y":30}],"version":1},"innocent":{"id":"innocent","name":"Smiling Face with Halo","keywords":["innocent","angel","heaven"],"skins":[{"unified":"1f607","native":"😇","x":32,"y":27}],"version":1},"smiling_face_with_3_hearts":{"id":"smiling_face_with_3_hearts","name":"Smiling Face with Hearts","keywords":["3","love","like","affection","valentines","infatuation","crush","adore"],"skins":[{"unified":"1f970","native":"🥰","x":43,"y":58}],"version":11},"heart_eyes":{"id":"heart_eyes","name":"Smiling Face with Heart-Eyes","keywords":["heart","eyes","love","like","affection","valentines","infatuation","crush"],"skins":[{"unified":"1f60d","native":"😍","x":32,"y":33}],"version":1},"star-struck":{"id":"star-struck","name":"Star-Struck","keywords":["star","struck","grinning","face","with","eyes","smile","starry"],"skins":[{"unified":"1f929","native":"🤩","x":40,"y":38}],"version":5},"kissing_heart":{"id":"kissing_heart","name":"Face Blowing a Kiss","emoticons":[":*",":-*"],"keywords":["kissing","heart","love","like","affection","valentines","infatuation"],"skins":[{"unified":"1f618","native":"😘","x":32,"y":44}],"version":1},"kissing":{"id":"kissing","name":"Kissing Face","keywords":["love","like","3","valentines","infatuation","kiss"],"skins":[{"unified":"1f617","native":"😗","x":32,"y":43}],"version":1},"relaxed":{"id":"relaxed","name":"Smiling Face","keywords":["relaxed","blush","massage","happiness"],"skins":[{"unified":"263a-fe0f","native":"☺️","x":57,"y":4}],"version":1},"kissing_closed_eyes":{"id":"kissing_closed_eyes","name":"Kissing Face with Closed Eyes","keywords":["love","like","affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f61a","native":"😚","x":32,"y":46}],"version":1},"kissing_smiling_eyes":{"id":"kissing_smiling_eyes","name":"Kissing Face with Smiling Eyes","keywords":["affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f619","native":"😙","x":32,"y":45}],"version":1},"smiling_face_with_tear":{"id":"smiling_face_with_tear","name":"Smiling Face with Tear","keywords":["sad","cry","pretend"],"skins":[{"unified":"1f972","native":"🥲","x":43,"y":60}],"version":13},"yum":{"id":"yum","name":"Face Savoring Food","keywords":["yum","happy","joy","tongue","smile","silly","yummy","nom","delicious","savouring"],"skins":[{"unified":"1f60b","native":"😋","x":32,"y":31}],"version":1},"stuck_out_tongue":{"id":"stuck_out_tongue","name":"Face with Tongue","emoticons":[":p",":-p",":P",":-P",":b",":-b"],"keywords":["stuck","out","prank","childish","playful","mischievous","smile"],"skins":[{"unified":"1f61b","native":"😛","x":32,"y":47}],"version":1},"stuck_out_tongue_winking_eye":{"id":"stuck_out_tongue_winking_eye","name":"Winking Face with Tongue","emoticons":[";p",";-p",";b",";-b",";P",";-P"],"keywords":["stuck","out","eye","prank","childish","playful","mischievous","smile","wink"],"skins":[{"unified":"1f61c","native":"😜","x":32,"y":48}],"version":1},"zany_face":{"id":"zany_face","name":"Zany Face","keywords":["grinning","with","one","large","and","small","eye","goofy","crazy"],"skins":[{"unified":"1f92a","native":"🤪","x":40,"y":39}],"version":5},"stuck_out_tongue_closed_eyes":{"id":"stuck_out_tongue_closed_eyes","name":"Squinting Face with Tongue","keywords":["stuck","out","closed","eyes","prank","playful","mischievous","smile"],"skins":[{"unified":"1f61d","native":"😝","x":32,"y":49}],"version":1},"money_mouth_face":{"id":"money_mouth_face","name":"Money-Mouth Face","keywords":["money","mouth","rich","dollar"],"skins":[{"unified":"1f911","native":"🤑","x":38,"y":59}],"version":1},"hugging_face":{"id":"hugging_face","name":"Hugging Face","keywords":["smile","hug"],"skins":[{"unified":"1f917","native":"🤗","x":39,"y":4}],"version":1},"face_with_hand_over_mouth":{"id":"face_with_hand_over_mouth","name":"Face with Hand over Mouth","keywords":["smiling","eyes","and","covering","whoops","shock","surprise"],"skins":[{"unified":"1f92d","native":"🤭","x":40,"y":42}],"version":5},"face_with_open_eyes_and_hand_over_mouth":{"id":"face_with_open_eyes_and_hand_over_mouth","name":"Face with Open Eyes and Hand over Mouth","keywords":["silence","secret","shock","surprise"],"skins":[{"unified":"1fae2","native":"🫢","x":55,"y":14}],"version":14},"face_with_peeking_eye":{"id":"face_with_peeking_eye","name":"Face with Peeking Eye","keywords":["scared","frightening","embarrassing"],"skins":[{"unified":"1fae3","native":"🫣","x":55,"y":15}],"version":14},"shushing_face":{"id":"shushing_face","name":"Shushing Face","keywords":["with","finger","covering","closed","lips","quiet","shhh"],"skins":[{"unified":"1f92b","native":"🤫","x":40,"y":40}],"version":5},"thinking_face":{"id":"thinking_face","name":"Thinking Face","keywords":["hmmm","think","consider"],"skins":[{"unified":"1f914","native":"🤔","x":39,"y":1}],"version":1},"saluting_face":{"id":"saluting_face","name":"Saluting Face","keywords":["respect","salute"],"skins":[{"unified":"1fae1","native":"🫡","x":55,"y":13}],"version":14},"zipper_mouth_face":{"id":"zipper_mouth_face","name":"Zipper-Mouth Face","keywords":["zipper","mouth","sealed","secret"],"skins":[{"unified":"1f910","native":"🤐","x":38,"y":58}],"version":1},"face_with_raised_eyebrow":{"id":"face_with_raised_eyebrow","name":"Face with Raised Eyebrow","keywords":["one","distrust","scepticism","disapproval","disbelief","surprise"],"skins":[{"unified":"1f928","native":"🤨","x":40,"y":37}],"version":5},"neutral_face":{"id":"neutral_face","name":"Neutral Face","emoticons":[":|",":-|"],"keywords":["indifference","meh",":",""],"skins":[{"unified":"1f610","native":"😐","x":32,"y":36}],"version":1},"expressionless":{"id":"expressionless","name":"Expressionless Face","emoticons":["-_-"],"keywords":["indifferent","-","","meh","deadpan"],"skins":[{"unified":"1f611","native":"😑","x":32,"y":37}],"version":1},"no_mouth":{"id":"no_mouth","name":"Face Without Mouth","keywords":["no","hellokitty"],"skins":[{"unified":"1f636","native":"😶","x":33,"y":16}],"version":1},"dotted_line_face":{"id":"dotted_line_face","name":"Dotted Line Face","keywords":["invisible","lonely","isolation","depression"],"skins":[{"unified":"1fae5","native":"🫥","x":55,"y":17}],"version":14},"face_in_clouds":{"id":"face_in_clouds","name":"Face in Clouds","keywords":["shower","steam","dream"],"skins":[{"unified":"1f636-200d-1f32b-fe0f","native":"😶‍🌫️","x":33,"y":15}],"version":13.1},"smirk":{"id":"smirk","name":"Smirking Face","keywords":["smirk","smile","mean","prank","smug","sarcasm"],"skins":[{"unified":"1f60f","native":"😏","x":32,"y":35}],"version":1},"unamused":{"id":"unamused","name":"Unamused Face","emoticons":[":("],"keywords":["indifference","bored","straight","serious","sarcasm","unimpressed","skeptical","dubious","side","eye"],"skins":[{"unified":"1f612","native":"😒","x":32,"y":38}],"version":1},"face_with_rolling_eyes":{"id":"face_with_rolling_eyes","name":"Face with Rolling Eyes","keywords":["eyeroll","frustrated"],"skins":[{"unified":"1f644","native":"🙄","x":33,"y":30}],"version":1},"grimacing":{"id":"grimacing","name":"Grimacing Face","keywords":["grimace","teeth"],"skins":[{"unified":"1f62c","native":"😬","x":33,"y":3}],"version":1},"face_exhaling":{"id":"face_exhaling","name":"Face Exhaling","keywords":["relieve","relief","tired","sigh"],"skins":[{"unified":"1f62e-200d-1f4a8","native":"😮‍💨","x":33,"y":5}],"version":13.1},"lying_face":{"id":"lying_face","name":"Lying Face","keywords":["lie","pinocchio"],"skins":[{"unified":"1f925","native":"🤥","x":40,"y":17}],"version":3},"relieved":{"id":"relieved","name":"Relieved Face","keywords":["relaxed","phew","massage","happiness"],"skins":[{"unified":"1f60c","native":"😌","x":32,"y":32}],"version":1},"pensive":{"id":"pensive","name":"Pensive Face","keywords":["sad","depressed","upset"],"skins":[{"unified":"1f614","native":"😔","x":32,"y":40}],"version":1},"sleepy":{"id":"sleepy","name":"Sleepy Face","keywords":["tired","rest","nap"],"skins":[{"unified":"1f62a","native":"😪","x":33,"y":1}],"version":1},"drooling_face":{"id":"drooling_face","name":"Drooling Face","keywords":[],"skins":[{"unified":"1f924","native":"🤤","x":40,"y":16}],"version":3},"sleeping":{"id":"sleeping","name":"Sleeping Face","keywords":["tired","sleepy","night","zzz"],"skins":[{"unified":"1f634","native":"😴","x":33,"y":12}],"version":1},"mask":{"id":"mask","name":"Face with Medical Mask","keywords":["sick","ill","disease"],"skins":[{"unified":"1f637","native":"😷","x":33,"y":17}],"version":1},"face_with_thermometer":{"id":"face_with_thermometer","name":"Face with Thermometer","keywords":["sick","temperature","cold","fever"],"skins":[{"unified":"1f912","native":"🤒","x":38,"y":60}],"version":1},"face_with_head_bandage":{"id":"face_with_head_bandage","name":"Face with Head-Bandage","keywords":["head","bandage","injured","clumsy","hurt"],"skins":[{"unified":"1f915","native":"🤕","x":39,"y":2}],"version":1},"nauseated_face":{"id":"nauseated_face","name":"Nauseated Face","keywords":["vomit","gross","green","sick","throw","up","ill"],"skins":[{"unified":"1f922","native":"🤢","x":40,"y":14}],"version":3},"face_vomiting":{"id":"face_vomiting","name":"Face Vomiting","keywords":["with","open","mouth","sick"],"skins":[{"unified":"1f92e","native":"🤮","x":40,"y":43}],"version":5},"sneezing_face":{"id":"sneezing_face","name":"Sneezing Face","keywords":["gesundheit","sneeze","sick","allergy"],"skins":[{"unified":"1f927","native":"🤧","x":40,"y":36}],"version":3},"hot_face":{"id":"hot_face","name":"Hot Face","keywords":["feverish","heat","red","sweating"],"skins":[{"unified":"1f975","native":"🥵","x":44,"y":2}],"version":11},"cold_face":{"id":"cold_face","name":"Cold Face","keywords":["blue","freezing","frozen","frostbite","icicles"],"skins":[{"unified":"1f976","native":"🥶","x":44,"y":3}],"version":11},"woozy_face":{"id":"woozy_face","name":"Woozy Face","keywords":["dizzy","intoxicated","tipsy","wavy"],"skins":[{"unified":"1f974","native":"🥴","x":44,"y":1}],"version":11},"dizzy_face":{"id":"dizzy_face","name":"Dizzy Face","keywords":["spent","unconscious","xox"],"skins":[{"unified":"1f635","native":"😵","x":33,"y":14}],"version":1},"face_with_spiral_eyes":{"id":"face_with_spiral_eyes","name":"Face with Spiral Eyes","keywords":["sick","ill","confused","nauseous","nausea"],"skins":[{"unified":"1f635-200d-1f4ab","native":"😵‍💫","x":33,"y":13}],"version":13.1},"exploding_head":{"id":"exploding_head","name":"Exploding Head","keywords":["shocked","face","with","mind","blown"],"skins":[{"unified":"1f92f","native":"🤯","x":40,"y":44}],"version":5},"face_with_cowboy_hat":{"id":"face_with_cowboy_hat","name":"Cowboy Hat Face","keywords":["with","cowgirl"],"skins":[{"unified":"1f920","native":"🤠","x":40,"y":12}],"version":3},"partying_face":{"id":"partying_face","name":"Partying Face","keywords":["celebration","woohoo"],"skins":[{"unified":"1f973","native":"🥳","x":44,"y":0}],"version":11},"disguised_face":{"id":"disguised_face","name":"Disguised Face","keywords":["pretent","brows","glasses","moustache"],"skins":[{"unified":"1f978","native":"🥸","x":44,"y":10}],"version":13},"sunglasses":{"id":"sunglasses","name":"Smiling Face with Sunglasses","emoticons":["8)"],"keywords":["cool","smile","summer","beach","sunglass"],"skins":[{"unified":"1f60e","native":"😎","x":32,"y":34}],"version":1},"nerd_face":{"id":"nerd_face","name":"Nerd Face","keywords":["nerdy","geek","dork"],"skins":[{"unified":"1f913","native":"🤓","x":39,"y":0}],"version":1},"face_with_monocle":{"id":"face_with_monocle","name":"Face with Monocle","keywords":["stuffy","wealthy"],"skins":[{"unified":"1f9d0","native":"🧐","x":47,"y":11}],"version":5},"confused":{"id":"confused","name":"Confused Face","emoticons":[":\\",":-\\",":/",":-/"],"keywords":["indifference","huh","weird","hmmm",":/"],"skins":[{"unified":"1f615","native":"😕","x":32,"y":41}],"version":1},"face_with_diagonal_mouth":{"id":"face_with_diagonal_mouth","name":"Face with Diagonal Mouth","keywords":["skeptic","confuse","frustrated","indifferent"],"skins":[{"unified":"1fae4","native":"🫤","x":55,"y":16}],"version":14},"worried":{"id":"worried","name":"Worried Face","keywords":["concern","nervous",":("],"skins":[{"unified":"1f61f","native":"😟","x":32,"y":51}],"version":1},"slightly_frowning_face":{"id":"slightly_frowning_face","name":"Slightly Frowning Face","keywords":["disappointed","sad","upset"],"skins":[{"unified":"1f641","native":"🙁","x":33,"y":27}],"version":1},"white_frowning_face":{"id":"white_frowning_face","name":"Frowning Face","keywords":["white","sad","upset","frown"],"skins":[{"unified":"2639-fe0f","native":"☹️","x":57,"y":3}],"version":1},"open_mouth":{"id":"open_mouth","name":"Face with Open Mouth","emoticons":[":o",":-o",":O",":-O"],"keywords":["surprise","impressed","wow","whoa",":O"],"skins":[{"unified":"1f62e","native":"😮","x":33,"y":6}],"version":1},"hushed":{"id":"hushed","name":"Hushed Face","keywords":["woo","shh"],"skins":[{"unified":"1f62f","native":"😯","x":33,"y":7}],"version":1},"astonished":{"id":"astonished","name":"Astonished Face","keywords":["xox","surprised","poisoned"],"skins":[{"unified":"1f632","native":"😲","x":33,"y":10}],"version":1},"flushed":{"id":"flushed","name":"Flushed Face","keywords":["blush","shy","flattered"],"skins":[{"unified":"1f633","native":"😳","x":33,"y":11}],"version":1},"pleading_face":{"id":"pleading_face","name":"Pleading Face","keywords":["begging","mercy"],"skins":[{"unified":"1f97a","native":"🥺","x":44,"y":12}],"version":11},"face_holding_back_tears":{"id":"face_holding_back_tears","name":"Face Holding Back Tears","keywords":["touched","gratitude"],"skins":[{"unified":"1f979","native":"🥹","x":44,"y":11}],"version":14},"frowning":{"id":"frowning","name":"Frowning Face with Open Mouth","keywords":["aw","what"],"skins":[{"unified":"1f626","native":"😦","x":32,"y":58}],"version":1},"anguished":{"id":"anguished","name":"Anguished Face","emoticons":["D:"],"keywords":["stunned","nervous"],"skins":[{"unified":"1f627","native":"😧","x":32,"y":59}],"version":1},"fearful":{"id":"fearful","name":"Fearful Face","keywords":["scared","terrified","nervous","oops","huh"],"skins":[{"unified":"1f628","native":"😨","x":32,"y":60}],"version":1},"cold_sweat":{"id":"cold_sweat","name":"Anxious Face with Sweat","keywords":["cold","nervous"],"skins":[{"unified":"1f630","native":"😰","x":33,"y":8}],"version":1},"disappointed_relieved":{"id":"disappointed_relieved","name":"Sad but Relieved Face","keywords":["disappointed","phew","sweat","nervous"],"skins":[{"unified":"1f625","native":"😥","x":32,"y":57}],"version":1},"cry":{"id":"cry","name":"Crying Face","emoticons":[":'("],"keywords":["cry","tears","sad","depressed","upset",":'("],"skins":[{"unified":"1f622","native":"😢","x":32,"y":54}],"version":1},"sob":{"id":"sob","name":"Loudly Crying Face","emoticons":[":'("],"keywords":["sob","cry","tears","sad","upset","depressed"],"skins":[{"unified":"1f62d","native":"😭","x":33,"y":4}],"version":1},"scream":{"id":"scream","name":"Face Screaming in Fear","keywords":["scream","munch","scared","omg"],"skins":[{"unified":"1f631","native":"😱","x":33,"y":9}],"version":1},"confounded":{"id":"confounded","name":"Confounded Face","keywords":["confused","sick","unwell","oops",":S"],"skins":[{"unified":"1f616","native":"😖","x":32,"y":42}],"version":1},"persevere":{"id":"persevere","name":"Persevering Face","keywords":["persevere","sick","no","upset","oops"],"skins":[{"unified":"1f623","native":"😣","x":32,"y":55}],"version":1},"disappointed":{"id":"disappointed","name":"Disappointed Face","emoticons":["):",":(",":-("],"keywords":["sad","upset","depressed",":("],"skins":[{"unified":"1f61e","native":"😞","x":32,"y":50}],"version":1},"sweat":{"id":"sweat","name":"Face with Cold Sweat","keywords":["downcast","hot","sad","tired","exercise"],"skins":[{"unified":"1f613","native":"😓","x":32,"y":39}],"version":1},"weary":{"id":"weary","name":"Weary Face","keywords":["tired","sleepy","sad","frustrated","upset"],"skins":[{"unified":"1f629","native":"😩","x":33,"y":0}],"version":1},"tired_face":{"id":"tired_face","name":"Tired Face","keywords":["sick","whine","upset","frustrated"],"skins":[{"unified":"1f62b","native":"😫","x":33,"y":2}],"version":1},"yawning_face":{"id":"yawning_face","name":"Yawning Face","keywords":["tired","sleepy"],"skins":[{"unified":"1f971","native":"🥱","x":43,"y":59}],"version":12},"triumph":{"id":"triumph","name":"Face with Look of Triumph","keywords":["steam","from","nose","gas","phew","proud","pride"],"skins":[{"unified":"1f624","native":"😤","x":32,"y":56}],"version":1},"rage":{"id":"rage","name":"Pouting Face","keywords":["rage","angry","mad","hate","despise"],"skins":[{"unified":"1f621","native":"😡","x":32,"y":53}],"version":1},"angry":{"id":"angry","name":"Angry Face","emoticons":[">:(",">:-("],"keywords":["mad","annoyed","frustrated"],"skins":[{"unified":"1f620","native":"😠","x":32,"y":52}],"version":1},"face_with_symbols_on_mouth":{"id":"face_with_symbols_on_mouth","name":"Face with Symbols on Mouth","keywords":["serious","covering","swearing","cursing","cussing","profanity","expletive"],"skins":[{"unified":"1f92c","native":"🤬","x":40,"y":41}],"version":5},"smiling_imp":{"id":"smiling_imp","name":"Smiling Face with Horns","keywords":["imp","devil"],"skins":[{"unified":"1f608","native":"😈","x":32,"y":28}],"version":1},"imp":{"id":"imp","name":"Imp","keywords":["angry","face","with","horns","devil"],"skins":[{"unified":"1f47f","native":"👿","x":25,"y":8}],"version":1},"skull":{"id":"skull","name":"Skull","keywords":["dead","skeleton","creepy","death"],"skins":[{"unified":"1f480","native":"💀","x":25,"y":9}],"version":1},"skull_and_crossbones":{"id":"skull_and_crossbones","name":"Skull and Crossbones","keywords":["poison","danger","deadly","scary","death","pirate","evil"],"skins":[{"unified":"2620-fe0f","native":"☠️","x":56,"y":56}],"version":1},"hankey":{"id":"hankey","name":"Pile of Poo","keywords":["hankey","poop","shit","shitface","fail","turd"],"skins":[{"unified":"1f4a9","native":"💩","x":27,"y":56}],"version":1},"clown_face":{"id":"clown_face","name":"Clown Face","keywords":[],"skins":[{"unified":"1f921","native":"🤡","x":40,"y":13}],"version":3},"japanese_ogre":{"id":"japanese_ogre","name":"Ogre","keywords":["japanese","monster","red","mask","halloween","scary","creepy","devil","demon"],"skins":[{"unified":"1f479","native":"👹","x":24,"y":58}],"version":1},"japanese_goblin":{"id":"japanese_goblin","name":"Goblin","keywords":["japanese","red","evil","mask","monster","scary","creepy"],"skins":[{"unified":"1f47a","native":"👺","x":24,"y":59}],"version":1},"ghost":{"id":"ghost","name":"Ghost","keywords":["halloween","spooky","scary"],"skins":[{"unified":"1f47b","native":"👻","x":24,"y":60}],"version":1},"alien":{"id":"alien","name":"Alien","keywords":["UFO","paul","weird","outer","space"],"skins":[{"unified":"1f47d","native":"👽","x":25,"y":6}],"version":1},"space_invader":{"id":"space_invader","name":"Alien Monster","keywords":["space","invader","game","arcade","play"],"skins":[{"unified":"1f47e","native":"👾","x":25,"y":7}],"version":1},"robot_face":{"id":"robot_face","name":"Robot","keywords":["face","computer","machine","bot"],"skins":[{"unified":"1f916","native":"🤖","x":39,"y":3}],"version":1},"smiley_cat":{"id":"smiley_cat","name":"Grinning Cat","keywords":["smiley","animal","cats","happy","smile"],"skins":[{"unified":"1f63a","native":"😺","x":33,"y":20}],"version":1},"smile_cat":{"id":"smile_cat","name":"Grinning Cat with Smiling Eyes","keywords":["smile","animal","cats"],"skins":[{"unified":"1f638","native":"😸","x":33,"y":18}],"version":1},"joy_cat":{"id":"joy_cat","name":"Cat with Tears of Joy","keywords":["animal","cats","haha","happy"],"skins":[{"unified":"1f639","native":"😹","x":33,"y":19}],"version":1},"heart_eyes_cat":{"id":"heart_eyes_cat","name":"Smiling Cat with Heart-Eyes","keywords":["heart","eyes","animal","love","like","affection","cats","valentines"],"skins":[{"unified":"1f63b","native":"😻","x":33,"y":21}],"version":1},"smirk_cat":{"id":"smirk_cat","name":"Cat with Wry Smile","keywords":["smirk","animal","cats"],"skins":[{"unified":"1f63c","native":"😼","x":33,"y":22}],"version":1},"kissing_cat":{"id":"kissing_cat","name":"Kissing Cat","keywords":["animal","cats","kiss"],"skins":[{"unified":"1f63d","native":"😽","x":33,"y":23}],"version":1},"scream_cat":{"id":"scream_cat","name":"Weary Cat","keywords":["scream","animal","cats","munch","scared"],"skins":[{"unified":"1f640","native":"🙀","x":33,"y":26}],"version":1},"crying_cat_face":{"id":"crying_cat_face","name":"Crying Cat","keywords":["face","animal","tears","weep","sad","cats","upset","cry"],"skins":[{"unified":"1f63f","native":"😿","x":33,"y":25}],"version":1},"pouting_cat":{"id":"pouting_cat","name":"Pouting Cat","keywords":["animal","cats"],"skins":[{"unified":"1f63e","native":"😾","x":33,"y":24}],"version":1},"see_no_evil":{"id":"see_no_evil","name":"See-No-Evil Monkey","keywords":["see","no","evil","animal","nature","haha"],"skins":[{"unified":"1f648","native":"🙈","x":34,"y":24}],"version":1},"hear_no_evil":{"id":"hear_no_evil","name":"Hear-No-Evil Monkey","keywords":["hear","no","evil","animal","nature"],"skins":[{"unified":"1f649","native":"🙉","x":34,"y":25}],"version":1},"speak_no_evil":{"id":"speak_no_evil","name":"Speak-No-Evil Monkey","keywords":["speak","no","evil","animal","nature","omg"],"skins":[{"unified":"1f64a","native":"🙊","x":34,"y":26}],"version":1},"kiss":{"id":"kiss","name":"Kiss Mark","keywords":["face","lips","love","like","affection","valentines"],"skins":[{"unified":"1f48b","native":"💋","x":26,"y":37}],"version":1},"love_letter":{"id":"love_letter","name":"Love Letter","keywords":["email","like","affection","envelope","valentines"],"skins":[{"unified":"1f48c","native":"💌","x":26,"y":38}],"version":1},"cupid":{"id":"cupid","name":"Heart with Arrow","keywords":["cupid","love","like","affection","valentines"],"skins":[{"unified":"1f498","native":"💘","x":27,"y":39}],"version":1},"gift_heart":{"id":"gift_heart","name":"Heart with Ribbon","keywords":["gift","love","valentines"],"skins":[{"unified":"1f49d","native":"💝","x":27,"y":44}],"version":1},"sparkling_heart":{"id":"sparkling_heart","name":"Sparkling Heart","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f496","native":"💖","x":27,"y":37}],"version":1},"heartpulse":{"id":"heartpulse","name":"Growing Heart","keywords":["heartpulse","like","love","affection","valentines","pink"],"skins":[{"unified":"1f497","native":"💗","x":27,"y":38}],"version":1},"heartbeat":{"id":"heartbeat","name":"Beating Heart","keywords":["heartbeat","love","like","affection","valentines","pink"],"skins":[{"unified":"1f493","native":"💓","x":27,"y":34}],"version":1},"revolving_hearts":{"id":"revolving_hearts","name":"Revolving Hearts","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f49e","native":"💞","x":27,"y":45}],"version":1},"two_hearts":{"id":"two_hearts","name":"Two Hearts","keywords":["love","like","affection","valentines","heart"],"skins":[{"unified":"1f495","native":"💕","x":27,"y":36}],"version":1},"heart_decoration":{"id":"heart_decoration","name":"Heart Decoration","keywords":["purple","square","love","like"],"skins":[{"unified":"1f49f","native":"💟","x":27,"y":46}],"version":1},"heavy_heart_exclamation_mark_ornament":{"id":"heavy_heart_exclamation_mark_ornament","name":"Heart Exclamation","keywords":["heavy","mark","ornament","decoration","love"],"skins":[{"unified":"2763-fe0f","native":"❣️","x":59,"y":7}],"version":1},"broken_heart":{"id":"broken_heart","name":"Broken Heart","emoticons":["",":->"],"keywords":["laughing","satisfied","happy","joy","lol","haha","glad","XD","laugh"],"skins":[{"unified":"1f606","native":"😆","x":32,"y":26}],"version":1},"sweat_smile":{"id":"sweat_smile","name":"Grinning Face with Sweat","keywords":["smile","hot","happy","laugh","relief"],"skins":[{"unified":"1f605","native":"😅","x":32,"y":25}],"version":1},"joy":{"id":"joy","name":"Face with Tears of Joy","keywords":["cry","weep","happy","happytears","haha"],"skins":[{"unified":"1f602","native":"😂","x":32,"y":22}],"version":1},"slightly_smiling_face":{"id":"slightly_smiling_face","name":"Slightly Smiling Face","emoticons":[":)","(:",":-)"],"keywords":["smile"],"skins":[{"unified":"1f642","native":"🙂","x":33,"y":28}],"version":1},"upside_down_face":{"id":"upside_down_face","name":"Upside-Down Face","keywords":["upside","down","flipped","silly","smile"],"skins":[{"unified":"1f643","native":"🙃","x":33,"y":29}],"version":1},"wink":{"id":"wink","name":"Winking Face","emoticons":[";)",";-)"],"keywords":["wink","happy","mischievous","secret",";)","smile","eye"],"skins":[{"unified":"1f609","native":"😉","x":32,"y":29}],"version":1},"blush":{"id":"blush","name":"Smiling Face with Smiling Eyes","emoticons":[":)"],"keywords":["blush","smile","happy","flushed","crush","embarrassed","shy","joy"],"skins":[{"unified":"1f60a","native":"😊","x":32,"y":30}],"version":1},"innocent":{"id":"innocent","name":"Smiling Face with Halo","keywords":["innocent","angel","heaven"],"skins":[{"unified":"1f607","native":"😇","x":32,"y":27}],"version":1},"heart_eyes":{"id":"heart_eyes","name":"Smiling Face with Heart-Eyes","keywords":["heart","eyes","love","like","affection","valentines","infatuation","crush"],"skins":[{"unified":"1f60d","native":"😍","x":32,"y":33}],"version":1},"kissing_heart":{"id":"kissing_heart","name":"Face Blowing a Kiss","emoticons":[":*",":-*"],"keywords":["kissing","heart","love","like","affection","valentines","infatuation"],"skins":[{"unified":"1f618","native":"😘","x":32,"y":44}],"version":1},"kissing":{"id":"kissing","name":"Kissing Face","keywords":["love","like","3","valentines","infatuation","kiss"],"skins":[{"unified":"1f617","native":"😗","x":32,"y":43}],"version":1},"relaxed":{"id":"relaxed","name":"Smiling Face","keywords":["relaxed","blush","massage","happiness"],"skins":[{"unified":"263a-fe0f","native":"☺️","x":57,"y":4}],"version":1},"kissing_closed_eyes":{"id":"kissing_closed_eyes","name":"Kissing Face with Closed Eyes","keywords":["love","like","affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f61a","native":"😚","x":32,"y":46}],"version":1},"kissing_smiling_eyes":{"id":"kissing_smiling_eyes","name":"Kissing Face with Smiling Eyes","keywords":["affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f619","native":"😙","x":32,"y":45}],"version":1},"yum":{"id":"yum","name":"Face Savoring Food","keywords":["yum","happy","joy","tongue","smile","silly","yummy","nom","delicious","savouring"],"skins":[{"unified":"1f60b","native":"😋","x":32,"y":31}],"version":1},"stuck_out_tongue":{"id":"stuck_out_tongue","name":"Face with Tongue","emoticons":[":p",":-p",":P",":-P",":b",":-b"],"keywords":["stuck","out","prank","childish","playful","mischievous","smile"],"skins":[{"unified":"1f61b","native":"😛","x":32,"y":47}],"version":1},"stuck_out_tongue_winking_eye":{"id":"stuck_out_tongue_winking_eye","name":"Winking Face with Tongue","emoticons":[";p",";-p",";b",";-b",";P",";-P"],"keywords":["stuck","out","eye","prank","childish","playful","mischievous","smile","wink"],"skins":[{"unified":"1f61c","native":"😜","x":32,"y":48}],"version":1},"stuck_out_tongue_closed_eyes":{"id":"stuck_out_tongue_closed_eyes","name":"Squinting Face with Tongue","keywords":["stuck","out","closed","eyes","prank","playful","mischievous","smile"],"skins":[{"unified":"1f61d","native":"😝","x":32,"y":49}],"version":1},"money_mouth_face":{"id":"money_mouth_face","name":"Money-Mouth Face","keywords":["money","mouth","rich","dollar"],"skins":[{"unified":"1f911","native":"🤑","x":38,"y":59}],"version":1},"hugging_face":{"id":"hugging_face","name":"Hugging Face","keywords":["smile","hug"],"skins":[{"unified":"1f917","native":"🤗","x":39,"y":4}],"version":1},"thinking_face":{"id":"thinking_face","name":"Thinking Face","keywords":["hmmm","think","consider"],"skins":[{"unified":"1f914","native":"🤔","x":39,"y":1}],"version":1},"zipper_mouth_face":{"id":"zipper_mouth_face","name":"Zipper-Mouth Face","keywords":["zipper","mouth","sealed","secret"],"skins":[{"unified":"1f910","native":"🤐","x":38,"y":58}],"version":1},"neutral_face":{"id":"neutral_face","name":"Neutral Face","emoticons":[":|",":-|"],"keywords":["indifference","meh",":",""],"skins":[{"unified":"1f610","native":"😐","x":32,"y":36}],"version":1},"expressionless":{"id":"expressionless","name":"Expressionless Face","emoticons":["-_-"],"keywords":["indifferent","-","","meh","deadpan"],"skins":[{"unified":"1f611","native":"😑","x":32,"y":37}],"version":1},"no_mouth":{"id":"no_mouth","name":"Face Without Mouth","keywords":["no","hellokitty"],"skins":[{"unified":"1f636","native":"😶","x":33,"y":16}],"version":1},"smirk":{"id":"smirk","name":"Smirking Face","keywords":["smirk","smile","mean","prank","smug","sarcasm"],"skins":[{"unified":"1f60f","native":"😏","x":32,"y":35}],"version":1},"unamused":{"id":"unamused","name":"Unamused Face","emoticons":[":("],"keywords":["indifference","bored","straight","serious","sarcasm","unimpressed","skeptical","dubious","side","eye"],"skins":[{"unified":"1f612","native":"😒","x":32,"y":38}],"version":1},"face_with_rolling_eyes":{"id":"face_with_rolling_eyes","name":"Face with Rolling Eyes","keywords":["eyeroll","frustrated"],"skins":[{"unified":"1f644","native":"🙄","x":33,"y":30}],"version":1},"grimacing":{"id":"grimacing","name":"Grimacing Face","keywords":["grimace","teeth"],"skins":[{"unified":"1f62c","native":"😬","x":33,"y":3}],"version":1},"relieved":{"id":"relieved","name":"Relieved Face","keywords":["relaxed","phew","massage","happiness"],"skins":[{"unified":"1f60c","native":"😌","x":32,"y":32}],"version":1},"pensive":{"id":"pensive","name":"Pensive Face","keywords":["sad","depressed","upset"],"skins":[{"unified":"1f614","native":"😔","x":32,"y":40}],"version":1},"sleepy":{"id":"sleepy","name":"Sleepy Face","keywords":["tired","rest","nap"],"skins":[{"unified":"1f62a","native":"😪","x":33,"y":1}],"version":1},"sleeping":{"id":"sleeping","name":"Sleeping Face","keywords":["tired","sleepy","night","zzz"],"skins":[{"unified":"1f634","native":"😴","x":33,"y":12}],"version":1},"mask":{"id":"mask","name":"Face with Medical Mask","keywords":["sick","ill","disease"],"skins":[{"unified":"1f637","native":"😷","x":33,"y":17}],"version":1},"face_with_thermometer":{"id":"face_with_thermometer","name":"Face with Thermometer","keywords":["sick","temperature","cold","fever"],"skins":[{"unified":"1f912","native":"🤒","x":38,"y":60}],"version":1},"face_with_head_bandage":{"id":"face_with_head_bandage","name":"Face with Head-Bandage","keywords":["head","bandage","injured","clumsy","hurt"],"skins":[{"unified":"1f915","native":"🤕","x":39,"y":2}],"version":1},"dizzy_face":{"id":"dizzy_face","name":"Dizzy Face","keywords":["spent","unconscious","xox"],"skins":[{"unified":"1f635","native":"😵","x":33,"y":14}],"version":1},"sunglasses":{"id":"sunglasses","name":"Smiling Face with Sunglasses","emoticons":["8)"],"keywords":["cool","smile","summer","beach","sunglass"],"skins":[{"unified":"1f60e","native":"😎","x":32,"y":34}],"version":1},"nerd_face":{"id":"nerd_face","name":"Nerd Face","keywords":["nerdy","geek","dork"],"skins":[{"unified":"1f913","native":"🤓","x":39,"y":0}],"version":1},"confused":{"id":"confused","name":"Confused Face","emoticons":[":\\",":-\\",":/",":-/"],"keywords":["indifference","huh","weird","hmmm",":/"],"skins":[{"unified":"1f615","native":"😕","x":32,"y":41}],"version":1},"worried":{"id":"worried","name":"Worried Face","keywords":["concern","nervous",":("],"skins":[{"unified":"1f61f","native":"😟","x":32,"y":51}],"version":1},"slightly_frowning_face":{"id":"slightly_frowning_face","name":"Slightly Frowning Face","keywords":["disappointed","sad","upset"],"skins":[{"unified":"1f641","native":"🙁","x":33,"y":27}],"version":1},"white_frowning_face":{"id":"white_frowning_face","name":"Frowning Face","keywords":["white","sad","upset","frown"],"skins":[{"unified":"2639-fe0f","native":"☹️","x":57,"y":3}],"version":1},"open_mouth":{"id":"open_mouth","name":"Face with Open Mouth","emoticons":[":o",":-o",":O",":-O"],"keywords":["surprise","impressed","wow","whoa",":O"],"skins":[{"unified":"1f62e","native":"😮","x":33,"y":6}],"version":1},"hushed":{"id":"hushed","name":"Hushed Face","keywords":["woo","shh"],"skins":[{"unified":"1f62f","native":"😯","x":33,"y":7}],"version":1},"astonished":{"id":"astonished","name":"Astonished Face","keywords":["xox","surprised","poisoned"],"skins":[{"unified":"1f632","native":"😲","x":33,"y":10}],"version":1},"flushed":{"id":"flushed","name":"Flushed Face","keywords":["blush","shy","flattered"],"skins":[{"unified":"1f633","native":"😳","x":33,"y":11}],"version":1},"frowning":{"id":"frowning","name":"Frowning Face with Open Mouth","keywords":["aw","what"],"skins":[{"unified":"1f626","native":"😦","x":32,"y":58}],"version":1},"anguished":{"id":"anguished","name":"Anguished Face","emoticons":["D:"],"keywords":["stunned","nervous"],"skins":[{"unified":"1f627","native":"😧","x":32,"y":59}],"version":1},"fearful":{"id":"fearful","name":"Fearful Face","keywords":["scared","terrified","nervous","oops","huh"],"skins":[{"unified":"1f628","native":"😨","x":32,"y":60}],"version":1},"cold_sweat":{"id":"cold_sweat","name":"Anxious Face with Sweat","keywords":["cold","nervous"],"skins":[{"unified":"1f630","native":"😰","x":33,"y":8}],"version":1},"disappointed_relieved":{"id":"disappointed_relieved","name":"Sad but Relieved Face","keywords":["disappointed","phew","sweat","nervous"],"skins":[{"unified":"1f625","native":"😥","x":32,"y":57}],"version":1},"cry":{"id":"cry","name":"Crying Face","emoticons":[":'("],"keywords":["cry","tears","sad","depressed","upset",":'("],"skins":[{"unified":"1f622","native":"😢","x":32,"y":54}],"version":1},"sob":{"id":"sob","name":"Loudly Crying Face","emoticons":[":'("],"keywords":["sob","cry","tears","sad","upset","depressed"],"skins":[{"unified":"1f62d","native":"😭","x":33,"y":4}],"version":1},"scream":{"id":"scream","name":"Face Screaming in Fear","keywords":["scream","munch","scared","omg"],"skins":[{"unified":"1f631","native":"😱","x":33,"y":9}],"version":1},"confounded":{"id":"confounded","name":"Confounded Face","keywords":["confused","sick","unwell","oops",":S"],"skins":[{"unified":"1f616","native":"😖","x":32,"y":42}],"version":1},"persevere":{"id":"persevere","name":"Persevering Face","keywords":["persevere","sick","no","upset","oops"],"skins":[{"unified":"1f623","native":"😣","x":32,"y":55}],"version":1},"disappointed":{"id":"disappointed","name":"Disappointed Face","emoticons":["):",":(",":-("],"keywords":["sad","upset","depressed",":("],"skins":[{"unified":"1f61e","native":"😞","x":32,"y":50}],"version":1},"sweat":{"id":"sweat","name":"Face with Cold Sweat","keywords":["downcast","hot","sad","tired","exercise"],"skins":[{"unified":"1f613","native":"😓","x":32,"y":39}],"version":1},"weary":{"id":"weary","name":"Weary Face","keywords":["tired","sleepy","sad","frustrated","upset"],"skins":[{"unified":"1f629","native":"😩","x":33,"y":0}],"version":1},"tired_face":{"id":"tired_face","name":"Tired Face","keywords":["sick","whine","upset","frustrated"],"skins":[{"unified":"1f62b","native":"😫","x":33,"y":2}],"version":1},"triumph":{"id":"triumph","name":"Face with Look of Triumph","keywords":["steam","from","nose","gas","phew","proud","pride"],"skins":[{"unified":"1f624","native":"😤","x":32,"y":56}],"version":1},"rage":{"id":"rage","name":"Pouting Face","keywords":["rage","angry","mad","hate","despise"],"skins":[{"unified":"1f621","native":"😡","x":32,"y":53}],"version":1},"angry":{"id":"angry","name":"Angry Face","emoticons":[">:(",">:-("],"keywords":["mad","annoyed","frustrated"],"skins":[{"unified":"1f620","native":"😠","x":32,"y":52}],"version":1},"smiling_imp":{"id":"smiling_imp","name":"Smiling Face with Horns","keywords":["imp","devil"],"skins":[{"unified":"1f608","native":"😈","x":32,"y":28}],"version":1},"imp":{"id":"imp","name":"Imp","keywords":["angry","face","with","horns","devil"],"skins":[{"unified":"1f47f","native":"👿","x":25,"y":8}],"version":1},"skull":{"id":"skull","name":"Skull","keywords":["dead","skeleton","creepy","death"],"skins":[{"unified":"1f480","native":"💀","x":25,"y":9}],"version":1},"skull_and_crossbones":{"id":"skull_and_crossbones","name":"Skull and Crossbones","keywords":["poison","danger","deadly","scary","death","pirate","evil"],"skins":[{"unified":"2620-fe0f","native":"☠️","x":56,"y":56}],"version":1},"hankey":{"id":"hankey","name":"Pile of Poo","keywords":["hankey","poop","shit","shitface","fail","turd"],"skins":[{"unified":"1f4a9","native":"💩","x":27,"y":56}],"version":1},"japanese_ogre":{"id":"japanese_ogre","name":"Ogre","keywords":["japanese","monster","red","mask","halloween","scary","creepy","devil","demon"],"skins":[{"unified":"1f479","native":"👹","x":24,"y":58}],"version":1},"japanese_goblin":{"id":"japanese_goblin","name":"Goblin","keywords":["japanese","red","evil","mask","monster","scary","creepy"],"skins":[{"unified":"1f47a","native":"👺","x":24,"y":59}],"version":1},"ghost":{"id":"ghost","name":"Ghost","keywords":["halloween","spooky","scary"],"skins":[{"unified":"1f47b","native":"👻","x":24,"y":60}],"version":1},"alien":{"id":"alien","name":"Alien","keywords":["UFO","paul","weird","outer","space"],"skins":[{"unified":"1f47d","native":"👽","x":25,"y":6}],"version":1},"space_invader":{"id":"space_invader","name":"Alien Monster","keywords":["space","invader","game","arcade","play"],"skins":[{"unified":"1f47e","native":"👾","x":25,"y":7}],"version":1},"robot_face":{"id":"robot_face","name":"Robot","keywords":["face","computer","machine","bot"],"skins":[{"unified":"1f916","native":"🤖","x":39,"y":3}],"version":1},"smiley_cat":{"id":"smiley_cat","name":"Grinning Cat","keywords":["smiley","animal","cats","happy","smile"],"skins":[{"unified":"1f63a","native":"😺","x":33,"y":20}],"version":1},"smile_cat":{"id":"smile_cat","name":"Grinning Cat with Smiling Eyes","keywords":["smile","animal","cats"],"skins":[{"unified":"1f638","native":"😸","x":33,"y":18}],"version":1},"joy_cat":{"id":"joy_cat","name":"Cat with Tears of Joy","keywords":["animal","cats","haha","happy"],"skins":[{"unified":"1f639","native":"😹","x":33,"y":19}],"version":1},"heart_eyes_cat":{"id":"heart_eyes_cat","name":"Smiling Cat with Heart-Eyes","keywords":["heart","eyes","animal","love","like","affection","cats","valentines"],"skins":[{"unified":"1f63b","native":"😻","x":33,"y":21}],"version":1},"smirk_cat":{"id":"smirk_cat","name":"Cat with Wry Smile","keywords":["smirk","animal","cats"],"skins":[{"unified":"1f63c","native":"😼","x":33,"y":22}],"version":1},"kissing_cat":{"id":"kissing_cat","name":"Kissing Cat","keywords":["animal","cats","kiss"],"skins":[{"unified":"1f63d","native":"😽","x":33,"y":23}],"version":1},"scream_cat":{"id":"scream_cat","name":"Weary Cat","keywords":["scream","animal","cats","munch","scared"],"skins":[{"unified":"1f640","native":"🙀","x":33,"y":26}],"version":1},"crying_cat_face":{"id":"crying_cat_face","name":"Crying Cat","keywords":["face","animal","tears","weep","sad","cats","upset","cry"],"skins":[{"unified":"1f63f","native":"😿","x":33,"y":25}],"version":1},"pouting_cat":{"id":"pouting_cat","name":"Pouting Cat","keywords":["animal","cats"],"skins":[{"unified":"1f63e","native":"😾","x":33,"y":24}],"version":1},"see_no_evil":{"id":"see_no_evil","name":"See-No-Evil Monkey","keywords":["see","no","evil","animal","nature","haha"],"skins":[{"unified":"1f648","native":"🙈","x":34,"y":24}],"version":1},"hear_no_evil":{"id":"hear_no_evil","name":"Hear-No-Evil Monkey","keywords":["hear","no","evil","animal","nature"],"skins":[{"unified":"1f649","native":"🙉","x":34,"y":25}],"version":1},"speak_no_evil":{"id":"speak_no_evil","name":"Speak-No-Evil Monkey","keywords":["speak","no","evil","animal","nature","omg"],"skins":[{"unified":"1f64a","native":"🙊","x":34,"y":26}],"version":1},"kiss":{"id":"kiss","name":"Kiss Mark","keywords":["face","lips","love","like","affection","valentines"],"skins":[{"unified":"1f48b","native":"💋","x":26,"y":37}],"version":1},"love_letter":{"id":"love_letter","name":"Love Letter","keywords":["email","like","affection","envelope","valentines"],"skins":[{"unified":"1f48c","native":"💌","x":26,"y":38}],"version":1},"cupid":{"id":"cupid","name":"Heart with Arrow","keywords":["cupid","love","like","affection","valentines"],"skins":[{"unified":"1f498","native":"💘","x":27,"y":39}],"version":1},"gift_heart":{"id":"gift_heart","name":"Heart with Ribbon","keywords":["gift","love","valentines"],"skins":[{"unified":"1f49d","native":"💝","x":27,"y":44}],"version":1},"sparkling_heart":{"id":"sparkling_heart","name":"Sparkling Heart","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f496","native":"💖","x":27,"y":37}],"version":1},"heartpulse":{"id":"heartpulse","name":"Growing Heart","keywords":["heartpulse","like","love","affection","valentines","pink"],"skins":[{"unified":"1f497","native":"💗","x":27,"y":38}],"version":1},"heartbeat":{"id":"heartbeat","name":"Beating Heart","keywords":["heartbeat","love","like","affection","valentines","pink"],"skins":[{"unified":"1f493","native":"💓","x":27,"y":34}],"version":1},"revolving_hearts":{"id":"revolving_hearts","name":"Revolving Hearts","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f49e","native":"💞","x":27,"y":45}],"version":1},"two_hearts":{"id":"two_hearts","name":"Two Hearts","keywords":["love","like","affection","valentines","heart"],"skins":[{"unified":"1f495","native":"💕","x":27,"y":36}],"version":1},"heart_decoration":{"id":"heart_decoration","name":"Heart Decoration","keywords":["purple","square","love","like"],"skins":[{"unified":"1f49f","native":"💟","x":27,"y":46}],"version":1},"heavy_heart_exclamation_mark_ornament":{"id":"heavy_heart_exclamation_mark_ornament","name":"Heart Exclamation","keywords":["heavy","mark","ornament","decoration","love"],"skins":[{"unified":"2763-fe0f","native":"❣️","x":59,"y":7}],"version":1},"broken_heart":{"id":"broken_heart","name":"Broken Heart","emoticons":["",":->"],"keywords":["laughing","satisfied","happy","joy","lol","haha","glad","XD","laugh"],"skins":[{"unified":"1f606","native":"😆","x":32,"y":26}],"version":1},"sweat_smile":{"id":"sweat_smile","name":"Grinning Face with Sweat","keywords":["smile","hot","happy","laugh","relief"],"skins":[{"unified":"1f605","native":"😅","x":32,"y":25}],"version":1},"rolling_on_the_floor_laughing":{"id":"rolling_on_the_floor_laughing","name":"Rolling on the Floor Laughing","keywords":["face","lol","haha","rofl"],"skins":[{"unified":"1f923","native":"🤣","x":40,"y":15}],"version":3},"joy":{"id":"joy","name":"Face with Tears of Joy","keywords":["cry","weep","happy","happytears","haha"],"skins":[{"unified":"1f602","native":"😂","x":32,"y":22}],"version":1},"slightly_smiling_face":{"id":"slightly_smiling_face","name":"Slightly Smiling Face","emoticons":[":)","(:",":-)"],"keywords":["smile"],"skins":[{"unified":"1f642","native":"🙂","x":33,"y":28}],"version":1},"upside_down_face":{"id":"upside_down_face","name":"Upside-Down Face","keywords":["upside","down","flipped","silly","smile"],"skins":[{"unified":"1f643","native":"🙃","x":33,"y":29}],"version":1},"wink":{"id":"wink","name":"Winking Face","emoticons":[";)",";-)"],"keywords":["wink","happy","mischievous","secret",";)","smile","eye"],"skins":[{"unified":"1f609","native":"😉","x":32,"y":29}],"version":1},"blush":{"id":"blush","name":"Smiling Face with Smiling Eyes","emoticons":[":)"],"keywords":["blush","smile","happy","flushed","crush","embarrassed","shy","joy"],"skins":[{"unified":"1f60a","native":"😊","x":32,"y":30}],"version":1},"innocent":{"id":"innocent","name":"Smiling Face with Halo","keywords":["innocent","angel","heaven"],"skins":[{"unified":"1f607","native":"😇","x":32,"y":27}],"version":1},"heart_eyes":{"id":"heart_eyes","name":"Smiling Face with Heart-Eyes","keywords":["heart","eyes","love","like","affection","valentines","infatuation","crush"],"skins":[{"unified":"1f60d","native":"😍","x":32,"y":33}],"version":1},"kissing_heart":{"id":"kissing_heart","name":"Face Blowing a Kiss","emoticons":[":*",":-*"],"keywords":["kissing","heart","love","like","affection","valentines","infatuation"],"skins":[{"unified":"1f618","native":"😘","x":32,"y":44}],"version":1},"kissing":{"id":"kissing","name":"Kissing Face","keywords":["love","like","3","valentines","infatuation","kiss"],"skins":[{"unified":"1f617","native":"😗","x":32,"y":43}],"version":1},"relaxed":{"id":"relaxed","name":"Smiling Face","keywords":["relaxed","blush","massage","happiness"],"skins":[{"unified":"263a-fe0f","native":"☺️","x":57,"y":4}],"version":1},"kissing_closed_eyes":{"id":"kissing_closed_eyes","name":"Kissing Face with Closed Eyes","keywords":["love","like","affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f61a","native":"😚","x":32,"y":46}],"version":1},"kissing_smiling_eyes":{"id":"kissing_smiling_eyes","name":"Kissing Face with Smiling Eyes","keywords":["affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f619","native":"😙","x":32,"y":45}],"version":1},"yum":{"id":"yum","name":"Face Savoring Food","keywords":["yum","happy","joy","tongue","smile","silly","yummy","nom","delicious","savouring"],"skins":[{"unified":"1f60b","native":"😋","x":32,"y":31}],"version":1},"stuck_out_tongue":{"id":"stuck_out_tongue","name":"Face with Tongue","emoticons":[":p",":-p",":P",":-P",":b",":-b"],"keywords":["stuck","out","prank","childish","playful","mischievous","smile"],"skins":[{"unified":"1f61b","native":"😛","x":32,"y":47}],"version":1},"stuck_out_tongue_winking_eye":{"id":"stuck_out_tongue_winking_eye","name":"Winking Face with Tongue","emoticons":[";p",";-p",";b",";-b",";P",";-P"],"keywords":["stuck","out","eye","prank","childish","playful","mischievous","smile","wink"],"skins":[{"unified":"1f61c","native":"😜","x":32,"y":48}],"version":1},"stuck_out_tongue_closed_eyes":{"id":"stuck_out_tongue_closed_eyes","name":"Squinting Face with Tongue","keywords":["stuck","out","closed","eyes","prank","playful","mischievous","smile"],"skins":[{"unified":"1f61d","native":"😝","x":32,"y":49}],"version":1},"money_mouth_face":{"id":"money_mouth_face","name":"Money-Mouth Face","keywords":["money","mouth","rich","dollar"],"skins":[{"unified":"1f911","native":"🤑","x":38,"y":59}],"version":1},"hugging_face":{"id":"hugging_face","name":"Hugging Face","keywords":["smile","hug"],"skins":[{"unified":"1f917","native":"🤗","x":39,"y":4}],"version":1},"thinking_face":{"id":"thinking_face","name":"Thinking Face","keywords":["hmmm","think","consider"],"skins":[{"unified":"1f914","native":"🤔","x":39,"y":1}],"version":1},"zipper_mouth_face":{"id":"zipper_mouth_face","name":"Zipper-Mouth Face","keywords":["zipper","mouth","sealed","secret"],"skins":[{"unified":"1f910","native":"🤐","x":38,"y":58}],"version":1},"neutral_face":{"id":"neutral_face","name":"Neutral Face","emoticons":[":|",":-|"],"keywords":["indifference","meh",":",""],"skins":[{"unified":"1f610","native":"😐","x":32,"y":36}],"version":1},"expressionless":{"id":"expressionless","name":"Expressionless Face","emoticons":["-_-"],"keywords":["indifferent","-","","meh","deadpan"],"skins":[{"unified":"1f611","native":"😑","x":32,"y":37}],"version":1},"no_mouth":{"id":"no_mouth","name":"Face Without Mouth","keywords":["no","hellokitty"],"skins":[{"unified":"1f636","native":"😶","x":33,"y":16}],"version":1},"smirk":{"id":"smirk","name":"Smirking Face","keywords":["smirk","smile","mean","prank","smug","sarcasm"],"skins":[{"unified":"1f60f","native":"😏","x":32,"y":35}],"version":1},"unamused":{"id":"unamused","name":"Unamused Face","emoticons":[":("],"keywords":["indifference","bored","straight","serious","sarcasm","unimpressed","skeptical","dubious","side","eye"],"skins":[{"unified":"1f612","native":"😒","x":32,"y":38}],"version":1},"face_with_rolling_eyes":{"id":"face_with_rolling_eyes","name":"Face with Rolling Eyes","keywords":["eyeroll","frustrated"],"skins":[{"unified":"1f644","native":"🙄","x":33,"y":30}],"version":1},"grimacing":{"id":"grimacing","name":"Grimacing Face","keywords":["grimace","teeth"],"skins":[{"unified":"1f62c","native":"😬","x":33,"y":3}],"version":1},"lying_face":{"id":"lying_face","name":"Lying Face","keywords":["lie","pinocchio"],"skins":[{"unified":"1f925","native":"🤥","x":40,"y":17}],"version":3},"relieved":{"id":"relieved","name":"Relieved Face","keywords":["relaxed","phew","massage","happiness"],"skins":[{"unified":"1f60c","native":"😌","x":32,"y":32}],"version":1},"pensive":{"id":"pensive","name":"Pensive Face","keywords":["sad","depressed","upset"],"skins":[{"unified":"1f614","native":"😔","x":32,"y":40}],"version":1},"sleepy":{"id":"sleepy","name":"Sleepy Face","keywords":["tired","rest","nap"],"skins":[{"unified":"1f62a","native":"😪","x":33,"y":1}],"version":1},"drooling_face":{"id":"drooling_face","name":"Drooling Face","keywords":[],"skins":[{"unified":"1f924","native":"🤤","x":40,"y":16}],"version":3},"sleeping":{"id":"sleeping","name":"Sleeping Face","keywords":["tired","sleepy","night","zzz"],"skins":[{"unified":"1f634","native":"😴","x":33,"y":12}],"version":1},"mask":{"id":"mask","name":"Face with Medical Mask","keywords":["sick","ill","disease"],"skins":[{"unified":"1f637","native":"😷","x":33,"y":17}],"version":1},"face_with_thermometer":{"id":"face_with_thermometer","name":"Face with Thermometer","keywords":["sick","temperature","cold","fever"],"skins":[{"unified":"1f912","native":"🤒","x":38,"y":60}],"version":1},"face_with_head_bandage":{"id":"face_with_head_bandage","name":"Face with Head-Bandage","keywords":["head","bandage","injured","clumsy","hurt"],"skins":[{"unified":"1f915","native":"🤕","x":39,"y":2}],"version":1},"nauseated_face":{"id":"nauseated_face","name":"Nauseated Face","keywords":["vomit","gross","green","sick","throw","up","ill"],"skins":[{"unified":"1f922","native":"🤢","x":40,"y":14}],"version":3},"sneezing_face":{"id":"sneezing_face","name":"Sneezing Face","keywords":["gesundheit","sneeze","sick","allergy"],"skins":[{"unified":"1f927","native":"🤧","x":40,"y":36}],"version":3},"dizzy_face":{"id":"dizzy_face","name":"Dizzy Face","keywords":["spent","unconscious","xox"],"skins":[{"unified":"1f635","native":"😵","x":33,"y":14}],"version":1},"face_with_cowboy_hat":{"id":"face_with_cowboy_hat","name":"Cowboy Hat Face","keywords":["with","cowgirl"],"skins":[{"unified":"1f920","native":"🤠","x":40,"y":12}],"version":3},"sunglasses":{"id":"sunglasses","name":"Smiling Face with Sunglasses","emoticons":["8)"],"keywords":["cool","smile","summer","beach","sunglass"],"skins":[{"unified":"1f60e","native":"😎","x":32,"y":34}],"version":1},"nerd_face":{"id":"nerd_face","name":"Nerd Face","keywords":["nerdy","geek","dork"],"skins":[{"unified":"1f913","native":"🤓","x":39,"y":0}],"version":1},"confused":{"id":"confused","name":"Confused Face","emoticons":[":\\",":-\\",":/",":-/"],"keywords":["indifference","huh","weird","hmmm",":/"],"skins":[{"unified":"1f615","native":"😕","x":32,"y":41}],"version":1},"worried":{"id":"worried","name":"Worried Face","keywords":["concern","nervous",":("],"skins":[{"unified":"1f61f","native":"😟","x":32,"y":51}],"version":1},"slightly_frowning_face":{"id":"slightly_frowning_face","name":"Slightly Frowning Face","keywords":["disappointed","sad","upset"],"skins":[{"unified":"1f641","native":"🙁","x":33,"y":27}],"version":1},"white_frowning_face":{"id":"white_frowning_face","name":"Frowning Face","keywords":["white","sad","upset","frown"],"skins":[{"unified":"2639-fe0f","native":"☹️","x":57,"y":3}],"version":1},"open_mouth":{"id":"open_mouth","name":"Face with Open Mouth","emoticons":[":o",":-o",":O",":-O"],"keywords":["surprise","impressed","wow","whoa",":O"],"skins":[{"unified":"1f62e","native":"😮","x":33,"y":6}],"version":1},"hushed":{"id":"hushed","name":"Hushed Face","keywords":["woo","shh"],"skins":[{"unified":"1f62f","native":"😯","x":33,"y":7}],"version":1},"astonished":{"id":"astonished","name":"Astonished Face","keywords":["xox","surprised","poisoned"],"skins":[{"unified":"1f632","native":"😲","x":33,"y":10}],"version":1},"flushed":{"id":"flushed","name":"Flushed Face","keywords":["blush","shy","flattered"],"skins":[{"unified":"1f633","native":"😳","x":33,"y":11}],"version":1},"frowning":{"id":"frowning","name":"Frowning Face with Open Mouth","keywords":["aw","what"],"skins":[{"unified":"1f626","native":"😦","x":32,"y":58}],"version":1},"anguished":{"id":"anguished","name":"Anguished Face","emoticons":["D:"],"keywords":["stunned","nervous"],"skins":[{"unified":"1f627","native":"😧","x":32,"y":59}],"version":1},"fearful":{"id":"fearful","name":"Fearful Face","keywords":["scared","terrified","nervous","oops","huh"],"skins":[{"unified":"1f628","native":"😨","x":32,"y":60}],"version":1},"cold_sweat":{"id":"cold_sweat","name":"Anxious Face with Sweat","keywords":["cold","nervous"],"skins":[{"unified":"1f630","native":"😰","x":33,"y":8}],"version":1},"disappointed_relieved":{"id":"disappointed_relieved","name":"Sad but Relieved Face","keywords":["disappointed","phew","sweat","nervous"],"skins":[{"unified":"1f625","native":"😥","x":32,"y":57}],"version":1},"cry":{"id":"cry","name":"Crying Face","emoticons":[":'("],"keywords":["cry","tears","sad","depressed","upset",":'("],"skins":[{"unified":"1f622","native":"😢","x":32,"y":54}],"version":1},"sob":{"id":"sob","name":"Loudly Crying Face","emoticons":[":'("],"keywords":["sob","cry","tears","sad","upset","depressed"],"skins":[{"unified":"1f62d","native":"😭","x":33,"y":4}],"version":1},"scream":{"id":"scream","name":"Face Screaming in Fear","keywords":["scream","munch","scared","omg"],"skins":[{"unified":"1f631","native":"😱","x":33,"y":9}],"version":1},"confounded":{"id":"confounded","name":"Confounded Face","keywords":["confused","sick","unwell","oops",":S"],"skins":[{"unified":"1f616","native":"😖","x":32,"y":42}],"version":1},"persevere":{"id":"persevere","name":"Persevering Face","keywords":["persevere","sick","no","upset","oops"],"skins":[{"unified":"1f623","native":"😣","x":32,"y":55}],"version":1},"disappointed":{"id":"disappointed","name":"Disappointed Face","emoticons":["):",":(",":-("],"keywords":["sad","upset","depressed",":("],"skins":[{"unified":"1f61e","native":"😞","x":32,"y":50}],"version":1},"sweat":{"id":"sweat","name":"Face with Cold Sweat","keywords":["downcast","hot","sad","tired","exercise"],"skins":[{"unified":"1f613","native":"😓","x":32,"y":39}],"version":1},"weary":{"id":"weary","name":"Weary Face","keywords":["tired","sleepy","sad","frustrated","upset"],"skins":[{"unified":"1f629","native":"😩","x":33,"y":0}],"version":1},"tired_face":{"id":"tired_face","name":"Tired Face","keywords":["sick","whine","upset","frustrated"],"skins":[{"unified":"1f62b","native":"😫","x":33,"y":2}],"version":1},"triumph":{"id":"triumph","name":"Face with Look of Triumph","keywords":["steam","from","nose","gas","phew","proud","pride"],"skins":[{"unified":"1f624","native":"😤","x":32,"y":56}],"version":1},"rage":{"id":"rage","name":"Pouting Face","keywords":["rage","angry","mad","hate","despise"],"skins":[{"unified":"1f621","native":"😡","x":32,"y":53}],"version":1},"angry":{"id":"angry","name":"Angry Face","emoticons":[">:(",">:-("],"keywords":["mad","annoyed","frustrated"],"skins":[{"unified":"1f620","native":"😠","x":32,"y":52}],"version":1},"smiling_imp":{"id":"smiling_imp","name":"Smiling Face with Horns","keywords":["imp","devil"],"skins":[{"unified":"1f608","native":"😈","x":32,"y":28}],"version":1},"imp":{"id":"imp","name":"Imp","keywords":["angry","face","with","horns","devil"],"skins":[{"unified":"1f47f","native":"👿","x":25,"y":8}],"version":1},"skull":{"id":"skull","name":"Skull","keywords":["dead","skeleton","creepy","death"],"skins":[{"unified":"1f480","native":"💀","x":25,"y":9}],"version":1},"skull_and_crossbones":{"id":"skull_and_crossbones","name":"Skull and Crossbones","keywords":["poison","danger","deadly","scary","death","pirate","evil"],"skins":[{"unified":"2620-fe0f","native":"☠️","x":56,"y":56}],"version":1},"hankey":{"id":"hankey","name":"Pile of Poo","keywords":["hankey","poop","shit","shitface","fail","turd"],"skins":[{"unified":"1f4a9","native":"💩","x":27,"y":56}],"version":1},"clown_face":{"id":"clown_face","name":"Clown Face","keywords":[],"skins":[{"unified":"1f921","native":"🤡","x":40,"y":13}],"version":3},"japanese_ogre":{"id":"japanese_ogre","name":"Ogre","keywords":["japanese","monster","red","mask","halloween","scary","creepy","devil","demon"],"skins":[{"unified":"1f479","native":"👹","x":24,"y":58}],"version":1},"japanese_goblin":{"id":"japanese_goblin","name":"Goblin","keywords":["japanese","red","evil","mask","monster","scary","creepy"],"skins":[{"unified":"1f47a","native":"👺","x":24,"y":59}],"version":1},"ghost":{"id":"ghost","name":"Ghost","keywords":["halloween","spooky","scary"],"skins":[{"unified":"1f47b","native":"👻","x":24,"y":60}],"version":1},"alien":{"id":"alien","name":"Alien","keywords":["UFO","paul","weird","outer","space"],"skins":[{"unified":"1f47d","native":"👽","x":25,"y":6}],"version":1},"space_invader":{"id":"space_invader","name":"Alien Monster","keywords":["space","invader","game","arcade","play"],"skins":[{"unified":"1f47e","native":"👾","x":25,"y":7}],"version":1},"robot_face":{"id":"robot_face","name":"Robot","keywords":["face","computer","machine","bot"],"skins":[{"unified":"1f916","native":"🤖","x":39,"y":3}],"version":1},"smiley_cat":{"id":"smiley_cat","name":"Grinning Cat","keywords":["smiley","animal","cats","happy","smile"],"skins":[{"unified":"1f63a","native":"😺","x":33,"y":20}],"version":1},"smile_cat":{"id":"smile_cat","name":"Grinning Cat with Smiling Eyes","keywords":["smile","animal","cats"],"skins":[{"unified":"1f638","native":"😸","x":33,"y":18}],"version":1},"joy_cat":{"id":"joy_cat","name":"Cat with Tears of Joy","keywords":["animal","cats","haha","happy"],"skins":[{"unified":"1f639","native":"😹","x":33,"y":19}],"version":1},"heart_eyes_cat":{"id":"heart_eyes_cat","name":"Smiling Cat with Heart-Eyes","keywords":["heart","eyes","animal","love","like","affection","cats","valentines"],"skins":[{"unified":"1f63b","native":"😻","x":33,"y":21}],"version":1},"smirk_cat":{"id":"smirk_cat","name":"Cat with Wry Smile","keywords":["smirk","animal","cats"],"skins":[{"unified":"1f63c","native":"😼","x":33,"y":22}],"version":1},"kissing_cat":{"id":"kissing_cat","name":"Kissing Cat","keywords":["animal","cats","kiss"],"skins":[{"unified":"1f63d","native":"😽","x":33,"y":23}],"version":1},"scream_cat":{"id":"scream_cat","name":"Weary Cat","keywords":["scream","animal","cats","munch","scared"],"skins":[{"unified":"1f640","native":"🙀","x":33,"y":26}],"version":1},"crying_cat_face":{"id":"crying_cat_face","name":"Crying Cat","keywords":["face","animal","tears","weep","sad","cats","upset","cry"],"skins":[{"unified":"1f63f","native":"😿","x":33,"y":25}],"version":1},"pouting_cat":{"id":"pouting_cat","name":"Pouting Cat","keywords":["animal","cats"],"skins":[{"unified":"1f63e","native":"😾","x":33,"y":24}],"version":1},"see_no_evil":{"id":"see_no_evil","name":"See-No-Evil Monkey","keywords":["see","no","evil","animal","nature","haha"],"skins":[{"unified":"1f648","native":"🙈","x":34,"y":24}],"version":1},"hear_no_evil":{"id":"hear_no_evil","name":"Hear-No-Evil Monkey","keywords":["hear","no","evil","animal","nature"],"skins":[{"unified":"1f649","native":"🙉","x":34,"y":25}],"version":1},"speak_no_evil":{"id":"speak_no_evil","name":"Speak-No-Evil Monkey","keywords":["speak","no","evil","animal","nature","omg"],"skins":[{"unified":"1f64a","native":"🙊","x":34,"y":26}],"version":1},"kiss":{"id":"kiss","name":"Kiss Mark","keywords":["face","lips","love","like","affection","valentines"],"skins":[{"unified":"1f48b","native":"💋","x":26,"y":37}],"version":1},"love_letter":{"id":"love_letter","name":"Love Letter","keywords":["email","like","affection","envelope","valentines"],"skins":[{"unified":"1f48c","native":"💌","x":26,"y":38}],"version":1},"cupid":{"id":"cupid","name":"Heart with Arrow","keywords":["cupid","love","like","affection","valentines"],"skins":[{"unified":"1f498","native":"💘","x":27,"y":39}],"version":1},"gift_heart":{"id":"gift_heart","name":"Heart with Ribbon","keywords":["gift","love","valentines"],"skins":[{"unified":"1f49d","native":"💝","x":27,"y":44}],"version":1},"sparkling_heart":{"id":"sparkling_heart","name":"Sparkling Heart","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f496","native":"💖","x":27,"y":37}],"version":1},"heartpulse":{"id":"heartpulse","name":"Growing Heart","keywords":["heartpulse","like","love","affection","valentines","pink"],"skins":[{"unified":"1f497","native":"💗","x":27,"y":38}],"version":1},"heartbeat":{"id":"heartbeat","name":"Beating Heart","keywords":["heartbeat","love","like","affection","valentines","pink"],"skins":[{"unified":"1f493","native":"💓","x":27,"y":34}],"version":1},"revolving_hearts":{"id":"revolving_hearts","name":"Revolving Hearts","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f49e","native":"💞","x":27,"y":45}],"version":1},"two_hearts":{"id":"two_hearts","name":"Two Hearts","keywords":["love","like","affection","valentines","heart"],"skins":[{"unified":"1f495","native":"💕","x":27,"y":36}],"version":1},"heart_decoration":{"id":"heart_decoration","name":"Heart Decoration","keywords":["purple","square","love","like"],"skins":[{"unified":"1f49f","native":"💟","x":27,"y":46}],"version":1},"heavy_heart_exclamation_mark_ornament":{"id":"heavy_heart_exclamation_mark_ornament","name":"Heart Exclamation","keywords":["heavy","mark","ornament","decoration","love"],"skins":[{"unified":"2763-fe0f","native":"❣️","x":59,"y":7}],"version":1},"broken_heart":{"id":"broken_heart","name":"Broken Heart","emoticons":["",":->"],"keywords":["laughing","satisfied","happy","joy","lol","haha","glad","XD","laugh"],"skins":[{"unified":"1f606","native":"😆","x":32,"y":26}],"version":1},"sweat_smile":{"id":"sweat_smile","name":"Grinning Face with Sweat","keywords":["smile","hot","happy","laugh","relief"],"skins":[{"unified":"1f605","native":"😅","x":32,"y":25}],"version":1},"rolling_on_the_floor_laughing":{"id":"rolling_on_the_floor_laughing","name":"Rolling on the Floor Laughing","keywords":["face","lol","haha","rofl"],"skins":[{"unified":"1f923","native":"🤣","x":40,"y":15}],"version":3},"joy":{"id":"joy","name":"Face with Tears of Joy","keywords":["cry","weep","happy","happytears","haha"],"skins":[{"unified":"1f602","native":"😂","x":32,"y":22}],"version":1},"slightly_smiling_face":{"id":"slightly_smiling_face","name":"Slightly Smiling Face","emoticons":[":)","(:",":-)"],"keywords":["smile"],"skins":[{"unified":"1f642","native":"🙂","x":33,"y":28}],"version":1},"upside_down_face":{"id":"upside_down_face","name":"Upside-Down Face","keywords":["upside","down","flipped","silly","smile"],"skins":[{"unified":"1f643","native":"🙃","x":33,"y":29}],"version":1},"wink":{"id":"wink","name":"Winking Face","emoticons":[";)",";-)"],"keywords":["wink","happy","mischievous","secret",";)","smile","eye"],"skins":[{"unified":"1f609","native":"😉","x":32,"y":29}],"version":1},"blush":{"id":"blush","name":"Smiling Face with Smiling Eyes","emoticons":[":)"],"keywords":["blush","smile","happy","flushed","crush","embarrassed","shy","joy"],"skins":[{"unified":"1f60a","native":"😊","x":32,"y":30}],"version":1},"innocent":{"id":"innocent","name":"Smiling Face with Halo","keywords":["innocent","angel","heaven"],"skins":[{"unified":"1f607","native":"😇","x":32,"y":27}],"version":1},"heart_eyes":{"id":"heart_eyes","name":"Smiling Face with Heart-Eyes","keywords":["heart","eyes","love","like","affection","valentines","infatuation","crush"],"skins":[{"unified":"1f60d","native":"😍","x":32,"y":33}],"version":1},"kissing_heart":{"id":"kissing_heart","name":"Face Blowing a Kiss","emoticons":[":*",":-*"],"keywords":["kissing","heart","love","like","affection","valentines","infatuation"],"skins":[{"unified":"1f618","native":"😘","x":32,"y":44}],"version":1},"kissing":{"id":"kissing","name":"Kissing Face","keywords":["love","like","3","valentines","infatuation","kiss"],"skins":[{"unified":"1f617","native":"😗","x":32,"y":43}],"version":1},"relaxed":{"id":"relaxed","name":"Smiling Face","keywords":["relaxed","blush","massage","happiness"],"skins":[{"unified":"263a-fe0f","native":"☺️","x":57,"y":4}],"version":1},"kissing_closed_eyes":{"id":"kissing_closed_eyes","name":"Kissing Face with Closed Eyes","keywords":["love","like","affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f61a","native":"😚","x":32,"y":46}],"version":1},"kissing_smiling_eyes":{"id":"kissing_smiling_eyes","name":"Kissing Face with Smiling Eyes","keywords":["affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f619","native":"😙","x":32,"y":45}],"version":1},"yum":{"id":"yum","name":"Face Savoring Food","keywords":["yum","happy","joy","tongue","smile","silly","yummy","nom","delicious","savouring"],"skins":[{"unified":"1f60b","native":"😋","x":32,"y":31}],"version":1},"stuck_out_tongue":{"id":"stuck_out_tongue","name":"Face with Tongue","emoticons":[":p",":-p",":P",":-P",":b",":-b"],"keywords":["stuck","out","prank","childish","playful","mischievous","smile"],"skins":[{"unified":"1f61b","native":"😛","x":32,"y":47}],"version":1},"stuck_out_tongue_winking_eye":{"id":"stuck_out_tongue_winking_eye","name":"Winking Face with Tongue","emoticons":[";p",";-p",";b",";-b",";P",";-P"],"keywords":["stuck","out","eye","prank","childish","playful","mischievous","smile","wink"],"skins":[{"unified":"1f61c","native":"😜","x":32,"y":48}],"version":1},"stuck_out_tongue_closed_eyes":{"id":"stuck_out_tongue_closed_eyes","name":"Squinting Face with Tongue","keywords":["stuck","out","closed","eyes","prank","playful","mischievous","smile"],"skins":[{"unified":"1f61d","native":"😝","x":32,"y":49}],"version":1},"money_mouth_face":{"id":"money_mouth_face","name":"Money-Mouth Face","keywords":["money","mouth","rich","dollar"],"skins":[{"unified":"1f911","native":"🤑","x":38,"y":59}],"version":1},"hugging_face":{"id":"hugging_face","name":"Hugging Face","keywords":["smile","hug"],"skins":[{"unified":"1f917","native":"🤗","x":39,"y":4}],"version":1},"thinking_face":{"id":"thinking_face","name":"Thinking Face","keywords":["hmmm","think","consider"],"skins":[{"unified":"1f914","native":"🤔","x":39,"y":1}],"version":1},"zipper_mouth_face":{"id":"zipper_mouth_face","name":"Zipper-Mouth Face","keywords":["zipper","mouth","sealed","secret"],"skins":[{"unified":"1f910","native":"🤐","x":38,"y":58}],"version":1},"neutral_face":{"id":"neutral_face","name":"Neutral Face","emoticons":[":|",":-|"],"keywords":["indifference","meh",":",""],"skins":[{"unified":"1f610","native":"😐","x":32,"y":36}],"version":1},"expressionless":{"id":"expressionless","name":"Expressionless Face","emoticons":["-_-"],"keywords":["indifferent","-","","meh","deadpan"],"skins":[{"unified":"1f611","native":"😑","x":32,"y":37}],"version":1},"no_mouth":{"id":"no_mouth","name":"Face Without Mouth","keywords":["no","hellokitty"],"skins":[{"unified":"1f636","native":"😶","x":33,"y":16}],"version":1},"smirk":{"id":"smirk","name":"Smirking Face","keywords":["smirk","smile","mean","prank","smug","sarcasm"],"skins":[{"unified":"1f60f","native":"😏","x":32,"y":35}],"version":1},"unamused":{"id":"unamused","name":"Unamused Face","emoticons":[":("],"keywords":["indifference","bored","straight","serious","sarcasm","unimpressed","skeptical","dubious","side","eye"],"skins":[{"unified":"1f612","native":"😒","x":32,"y":38}],"version":1},"face_with_rolling_eyes":{"id":"face_with_rolling_eyes","name":"Face with Rolling Eyes","keywords":["eyeroll","frustrated"],"skins":[{"unified":"1f644","native":"🙄","x":33,"y":30}],"version":1},"grimacing":{"id":"grimacing","name":"Grimacing Face","keywords":["grimace","teeth"],"skins":[{"unified":"1f62c","native":"😬","x":33,"y":3}],"version":1},"lying_face":{"id":"lying_face","name":"Lying Face","keywords":["lie","pinocchio"],"skins":[{"unified":"1f925","native":"🤥","x":40,"y":17}],"version":3},"relieved":{"id":"relieved","name":"Relieved Face","keywords":["relaxed","phew","massage","happiness"],"skins":[{"unified":"1f60c","native":"😌","x":32,"y":32}],"version":1},"pensive":{"id":"pensive","name":"Pensive Face","keywords":["sad","depressed","upset"],"skins":[{"unified":"1f614","native":"😔","x":32,"y":40}],"version":1},"sleepy":{"id":"sleepy","name":"Sleepy Face","keywords":["tired","rest","nap"],"skins":[{"unified":"1f62a","native":"😪","x":33,"y":1}],"version":1},"drooling_face":{"id":"drooling_face","name":"Drooling Face","keywords":[],"skins":[{"unified":"1f924","native":"🤤","x":40,"y":16}],"version":3},"sleeping":{"id":"sleeping","name":"Sleeping Face","keywords":["tired","sleepy","night","zzz"],"skins":[{"unified":"1f634","native":"😴","x":33,"y":12}],"version":1},"mask":{"id":"mask","name":"Face with Medical Mask","keywords":["sick","ill","disease"],"skins":[{"unified":"1f637","native":"😷","x":33,"y":17}],"version":1},"face_with_thermometer":{"id":"face_with_thermometer","name":"Face with Thermometer","keywords":["sick","temperature","cold","fever"],"skins":[{"unified":"1f912","native":"🤒","x":38,"y":60}],"version":1},"face_with_head_bandage":{"id":"face_with_head_bandage","name":"Face with Head-Bandage","keywords":["head","bandage","injured","clumsy","hurt"],"skins":[{"unified":"1f915","native":"🤕","x":39,"y":2}],"version":1},"nauseated_face":{"id":"nauseated_face","name":"Nauseated Face","keywords":["vomit","gross","green","sick","throw","up","ill"],"skins":[{"unified":"1f922","native":"🤢","x":40,"y":14}],"version":3},"sneezing_face":{"id":"sneezing_face","name":"Sneezing Face","keywords":["gesundheit","sneeze","sick","allergy"],"skins":[{"unified":"1f927","native":"🤧","x":40,"y":36}],"version":3},"dizzy_face":{"id":"dizzy_face","name":"Dizzy Face","keywords":["spent","unconscious","xox"],"skins":[{"unified":"1f635","native":"😵","x":33,"y":14}],"version":1},"face_with_cowboy_hat":{"id":"face_with_cowboy_hat","name":"Cowboy Hat Face","keywords":["with","cowgirl"],"skins":[{"unified":"1f920","native":"🤠","x":40,"y":12}],"version":3},"sunglasses":{"id":"sunglasses","name":"Smiling Face with Sunglasses","emoticons":["8)"],"keywords":["cool","smile","summer","beach","sunglass"],"skins":[{"unified":"1f60e","native":"😎","x":32,"y":34}],"version":1},"nerd_face":{"id":"nerd_face","name":"Nerd Face","keywords":["nerdy","geek","dork"],"skins":[{"unified":"1f913","native":"🤓","x":39,"y":0}],"version":1},"confused":{"id":"confused","name":"Confused Face","emoticons":[":\\",":-\\",":/",":-/"],"keywords":["indifference","huh","weird","hmmm",":/"],"skins":[{"unified":"1f615","native":"😕","x":32,"y":41}],"version":1},"worried":{"id":"worried","name":"Worried Face","keywords":["concern","nervous",":("],"skins":[{"unified":"1f61f","native":"😟","x":32,"y":51}],"version":1},"slightly_frowning_face":{"id":"slightly_frowning_face","name":"Slightly Frowning Face","keywords":["disappointed","sad","upset"],"skins":[{"unified":"1f641","native":"🙁","x":33,"y":27}],"version":1},"white_frowning_face":{"id":"white_frowning_face","name":"Frowning Face","keywords":["white","sad","upset","frown"],"skins":[{"unified":"2639-fe0f","native":"☹️","x":57,"y":3}],"version":1},"open_mouth":{"id":"open_mouth","name":"Face with Open Mouth","emoticons":[":o",":-o",":O",":-O"],"keywords":["surprise","impressed","wow","whoa",":O"],"skins":[{"unified":"1f62e","native":"😮","x":33,"y":6}],"version":1},"hushed":{"id":"hushed","name":"Hushed Face","keywords":["woo","shh"],"skins":[{"unified":"1f62f","native":"😯","x":33,"y":7}],"version":1},"astonished":{"id":"astonished","name":"Astonished Face","keywords":["xox","surprised","poisoned"],"skins":[{"unified":"1f632","native":"😲","x":33,"y":10}],"version":1},"flushed":{"id":"flushed","name":"Flushed Face","keywords":["blush","shy","flattered"],"skins":[{"unified":"1f633","native":"😳","x":33,"y":11}],"version":1},"frowning":{"id":"frowning","name":"Frowning Face with Open Mouth","keywords":["aw","what"],"skins":[{"unified":"1f626","native":"😦","x":32,"y":58}],"version":1},"anguished":{"id":"anguished","name":"Anguished Face","emoticons":["D:"],"keywords":["stunned","nervous"],"skins":[{"unified":"1f627","native":"😧","x":32,"y":59}],"version":1},"fearful":{"id":"fearful","name":"Fearful Face","keywords":["scared","terrified","nervous","oops","huh"],"skins":[{"unified":"1f628","native":"😨","x":32,"y":60}],"version":1},"cold_sweat":{"id":"cold_sweat","name":"Anxious Face with Sweat","keywords":["cold","nervous"],"skins":[{"unified":"1f630","native":"😰","x":33,"y":8}],"version":1},"disappointed_relieved":{"id":"disappointed_relieved","name":"Sad but Relieved Face","keywords":["disappointed","phew","sweat","nervous"],"skins":[{"unified":"1f625","native":"😥","x":32,"y":57}],"version":1},"cry":{"id":"cry","name":"Crying Face","emoticons":[":'("],"keywords":["cry","tears","sad","depressed","upset",":'("],"skins":[{"unified":"1f622","native":"😢","x":32,"y":54}],"version":1},"sob":{"id":"sob","name":"Loudly Crying Face","emoticons":[":'("],"keywords":["sob","cry","tears","sad","upset","depressed"],"skins":[{"unified":"1f62d","native":"😭","x":33,"y":4}],"version":1},"scream":{"id":"scream","name":"Face Screaming in Fear","keywords":["scream","munch","scared","omg"],"skins":[{"unified":"1f631","native":"😱","x":33,"y":9}],"version":1},"confounded":{"id":"confounded","name":"Confounded Face","keywords":["confused","sick","unwell","oops",":S"],"skins":[{"unified":"1f616","native":"😖","x":32,"y":42}],"version":1},"persevere":{"id":"persevere","name":"Persevering Face","keywords":["persevere","sick","no","upset","oops"],"skins":[{"unified":"1f623","native":"😣","x":32,"y":55}],"version":1},"disappointed":{"id":"disappointed","name":"Disappointed Face","emoticons":["):",":(",":-("],"keywords":["sad","upset","depressed",":("],"skins":[{"unified":"1f61e","native":"😞","x":32,"y":50}],"version":1},"sweat":{"id":"sweat","name":"Face with Cold Sweat","keywords":["downcast","hot","sad","tired","exercise"],"skins":[{"unified":"1f613","native":"😓","x":32,"y":39}],"version":1},"weary":{"id":"weary","name":"Weary Face","keywords":["tired","sleepy","sad","frustrated","upset"],"skins":[{"unified":"1f629","native":"😩","x":33,"y":0}],"version":1},"tired_face":{"id":"tired_face","name":"Tired Face","keywords":["sick","whine","upset","frustrated"],"skins":[{"unified":"1f62b","native":"😫","x":33,"y":2}],"version":1},"triumph":{"id":"triumph","name":"Face with Look of Triumph","keywords":["steam","from","nose","gas","phew","proud","pride"],"skins":[{"unified":"1f624","native":"😤","x":32,"y":56}],"version":1},"rage":{"id":"rage","name":"Pouting Face","keywords":["rage","angry","mad","hate","despise"],"skins":[{"unified":"1f621","native":"😡","x":32,"y":53}],"version":1},"angry":{"id":"angry","name":"Angry Face","emoticons":[">:(",">:-("],"keywords":["mad","annoyed","frustrated"],"skins":[{"unified":"1f620","native":"😠","x":32,"y":52}],"version":1},"smiling_imp":{"id":"smiling_imp","name":"Smiling Face with Horns","keywords":["imp","devil"],"skins":[{"unified":"1f608","native":"😈","x":32,"y":28}],"version":1},"imp":{"id":"imp","name":"Imp","keywords":["angry","face","with","horns","devil"],"skins":[{"unified":"1f47f","native":"👿","x":25,"y":8}],"version":1},"skull":{"id":"skull","name":"Skull","keywords":["dead","skeleton","creepy","death"],"skins":[{"unified":"1f480","native":"💀","x":25,"y":9}],"version":1},"skull_and_crossbones":{"id":"skull_and_crossbones","name":"Skull and Crossbones","keywords":["poison","danger","deadly","scary","death","pirate","evil"],"skins":[{"unified":"2620-fe0f","native":"☠️","x":56,"y":56}],"version":1},"hankey":{"id":"hankey","name":"Pile of Poo","keywords":["hankey","poop","shit","shitface","fail","turd"],"skins":[{"unified":"1f4a9","native":"💩","x":27,"y":56}],"version":1},"clown_face":{"id":"clown_face","name":"Clown Face","keywords":[],"skins":[{"unified":"1f921","native":"🤡","x":40,"y":13}],"version":3},"japanese_ogre":{"id":"japanese_ogre","name":"Ogre","keywords":["japanese","monster","red","mask","halloween","scary","creepy","devil","demon"],"skins":[{"unified":"1f479","native":"👹","x":24,"y":58}],"version":1},"japanese_goblin":{"id":"japanese_goblin","name":"Goblin","keywords":["japanese","red","evil","mask","monster","scary","creepy"],"skins":[{"unified":"1f47a","native":"👺","x":24,"y":59}],"version":1},"ghost":{"id":"ghost","name":"Ghost","keywords":["halloween","spooky","scary"],"skins":[{"unified":"1f47b","native":"👻","x":24,"y":60}],"version":1},"alien":{"id":"alien","name":"Alien","keywords":["UFO","paul","weird","outer","space"],"skins":[{"unified":"1f47d","native":"👽","x":25,"y":6}],"version":1},"space_invader":{"id":"space_invader","name":"Alien Monster","keywords":["space","invader","game","arcade","play"],"skins":[{"unified":"1f47e","native":"👾","x":25,"y":7}],"version":1},"robot_face":{"id":"robot_face","name":"Robot","keywords":["face","computer","machine","bot"],"skins":[{"unified":"1f916","native":"🤖","x":39,"y":3}],"version":1},"smiley_cat":{"id":"smiley_cat","name":"Grinning Cat","keywords":["smiley","animal","cats","happy","smile"],"skins":[{"unified":"1f63a","native":"😺","x":33,"y":20}],"version":1},"smile_cat":{"id":"smile_cat","name":"Grinning Cat with Smiling Eyes","keywords":["smile","animal","cats"],"skins":[{"unified":"1f638","native":"😸","x":33,"y":18}],"version":1},"joy_cat":{"id":"joy_cat","name":"Cat with Tears of Joy","keywords":["animal","cats","haha","happy"],"skins":[{"unified":"1f639","native":"😹","x":33,"y":19}],"version":1},"heart_eyes_cat":{"id":"heart_eyes_cat","name":"Smiling Cat with Heart-Eyes","keywords":["heart","eyes","animal","love","like","affection","cats","valentines"],"skins":[{"unified":"1f63b","native":"😻","x":33,"y":21}],"version":1},"smirk_cat":{"id":"smirk_cat","name":"Cat with Wry Smile","keywords":["smirk","animal","cats"],"skins":[{"unified":"1f63c","native":"😼","x":33,"y":22}],"version":1},"kissing_cat":{"id":"kissing_cat","name":"Kissing Cat","keywords":["animal","cats","kiss"],"skins":[{"unified":"1f63d","native":"😽","x":33,"y":23}],"version":1},"scream_cat":{"id":"scream_cat","name":"Weary Cat","keywords":["scream","animal","cats","munch","scared"],"skins":[{"unified":"1f640","native":"🙀","x":33,"y":26}],"version":1},"crying_cat_face":{"id":"crying_cat_face","name":"Crying Cat","keywords":["face","animal","tears","weep","sad","cats","upset","cry"],"skins":[{"unified":"1f63f","native":"😿","x":33,"y":25}],"version":1},"pouting_cat":{"id":"pouting_cat","name":"Pouting Cat","keywords":["animal","cats"],"skins":[{"unified":"1f63e","native":"😾","x":33,"y":24}],"version":1},"see_no_evil":{"id":"see_no_evil","name":"See-No-Evil Monkey","keywords":["see","no","evil","animal","nature","haha"],"skins":[{"unified":"1f648","native":"🙈","x":34,"y":24}],"version":1},"hear_no_evil":{"id":"hear_no_evil","name":"Hear-No-Evil Monkey","keywords":["hear","no","evil","animal","nature"],"skins":[{"unified":"1f649","native":"🙉","x":34,"y":25}],"version":1},"speak_no_evil":{"id":"speak_no_evil","name":"Speak-No-Evil Monkey","keywords":["speak","no","evil","animal","nature","omg"],"skins":[{"unified":"1f64a","native":"🙊","x":34,"y":26}],"version":1},"kiss":{"id":"kiss","name":"Kiss Mark","keywords":["face","lips","love","like","affection","valentines"],"skins":[{"unified":"1f48b","native":"💋","x":26,"y":37}],"version":1},"love_letter":{"id":"love_letter","name":"Love Letter","keywords":["email","like","affection","envelope","valentines"],"skins":[{"unified":"1f48c","native":"💌","x":26,"y":38}],"version":1},"cupid":{"id":"cupid","name":"Heart with Arrow","keywords":["cupid","love","like","affection","valentines"],"skins":[{"unified":"1f498","native":"💘","x":27,"y":39}],"version":1},"gift_heart":{"id":"gift_heart","name":"Heart with Ribbon","keywords":["gift","love","valentines"],"skins":[{"unified":"1f49d","native":"💝","x":27,"y":44}],"version":1},"sparkling_heart":{"id":"sparkling_heart","name":"Sparkling Heart","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f496","native":"💖","x":27,"y":37}],"version":1},"heartpulse":{"id":"heartpulse","name":"Growing Heart","keywords":["heartpulse","like","love","affection","valentines","pink"],"skins":[{"unified":"1f497","native":"💗","x":27,"y":38}],"version":1},"heartbeat":{"id":"heartbeat","name":"Beating Heart","keywords":["heartbeat","love","like","affection","valentines","pink"],"skins":[{"unified":"1f493","native":"💓","x":27,"y":34}],"version":1},"revolving_hearts":{"id":"revolving_hearts","name":"Revolving Hearts","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f49e","native":"💞","x":27,"y":45}],"version":1},"two_hearts":{"id":"two_hearts","name":"Two Hearts","keywords":["love","like","affection","valentines","heart"],"skins":[{"unified":"1f495","native":"💕","x":27,"y":36}],"version":1},"heart_decoration":{"id":"heart_decoration","name":"Heart Decoration","keywords":["purple","square","love","like"],"skins":[{"unified":"1f49f","native":"💟","x":27,"y":46}],"version":1},"heavy_heart_exclamation_mark_ornament":{"id":"heavy_heart_exclamation_mark_ornament","name":"Heart Exclamation","keywords":["heavy","mark","ornament","decoration","love"],"skins":[{"unified":"2763-fe0f","native":"❣️","x":59,"y":7}],"version":1},"broken_heart":{"id":"broken_heart","name":"Broken Heart","emoticons":["",":->"],"keywords":["laughing","satisfied","happy","joy","lol","haha","glad","XD","laugh"],"skins":[{"unified":"1f606","native":"😆","x":32,"y":26}],"version":1},"sweat_smile":{"id":"sweat_smile","name":"Grinning Face with Sweat","keywords":["smile","hot","happy","laugh","relief"],"skins":[{"unified":"1f605","native":"😅","x":32,"y":25}],"version":1},"rolling_on_the_floor_laughing":{"id":"rolling_on_the_floor_laughing","name":"Rolling on the Floor Laughing","keywords":["face","lol","haha","rofl"],"skins":[{"unified":"1f923","native":"🤣","x":40,"y":15}],"version":3},"joy":{"id":"joy","name":"Face with Tears of Joy","keywords":["cry","weep","happy","happytears","haha"],"skins":[{"unified":"1f602","native":"😂","x":32,"y":22}],"version":1},"slightly_smiling_face":{"id":"slightly_smiling_face","name":"Slightly Smiling Face","emoticons":[":)","(:",":-)"],"keywords":["smile"],"skins":[{"unified":"1f642","native":"🙂","x":33,"y":28}],"version":1},"upside_down_face":{"id":"upside_down_face","name":"Upside-Down Face","keywords":["upside","down","flipped","silly","smile"],"skins":[{"unified":"1f643","native":"🙃","x":33,"y":29}],"version":1},"wink":{"id":"wink","name":"Winking Face","emoticons":[";)",";-)"],"keywords":["wink","happy","mischievous","secret",";)","smile","eye"],"skins":[{"unified":"1f609","native":"😉","x":32,"y":29}],"version":1},"blush":{"id":"blush","name":"Smiling Face with Smiling Eyes","emoticons":[":)"],"keywords":["blush","smile","happy","flushed","crush","embarrassed","shy","joy"],"skins":[{"unified":"1f60a","native":"😊","x":32,"y":30}],"version":1},"innocent":{"id":"innocent","name":"Smiling Face with Halo","keywords":["innocent","angel","heaven"],"skins":[{"unified":"1f607","native":"😇","x":32,"y":27}],"version":1},"heart_eyes":{"id":"heart_eyes","name":"Smiling Face with Heart-Eyes","keywords":["heart","eyes","love","like","affection","valentines","infatuation","crush"],"skins":[{"unified":"1f60d","native":"😍","x":32,"y":33}],"version":1},"star-struck":{"id":"star-struck","name":"Star-Struck","keywords":["star","struck","grinning","face","with","eyes","smile","starry"],"skins":[{"unified":"1f929","native":"🤩","x":40,"y":38}],"version":5},"kissing_heart":{"id":"kissing_heart","name":"Face Blowing a Kiss","emoticons":[":*",":-*"],"keywords":["kissing","heart","love","like","affection","valentines","infatuation"],"skins":[{"unified":"1f618","native":"😘","x":32,"y":44}],"version":1},"kissing":{"id":"kissing","name":"Kissing Face","keywords":["love","like","3","valentines","infatuation","kiss"],"skins":[{"unified":"1f617","native":"😗","x":32,"y":43}],"version":1},"relaxed":{"id":"relaxed","name":"Smiling Face","keywords":["relaxed","blush","massage","happiness"],"skins":[{"unified":"263a-fe0f","native":"☺️","x":57,"y":4}],"version":1},"kissing_closed_eyes":{"id":"kissing_closed_eyes","name":"Kissing Face with Closed Eyes","keywords":["love","like","affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f61a","native":"😚","x":32,"y":46}],"version":1},"kissing_smiling_eyes":{"id":"kissing_smiling_eyes","name":"Kissing Face with Smiling Eyes","keywords":["affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f619","native":"😙","x":32,"y":45}],"version":1},"yum":{"id":"yum","name":"Face Savoring Food","keywords":["yum","happy","joy","tongue","smile","silly","yummy","nom","delicious","savouring"],"skins":[{"unified":"1f60b","native":"😋","x":32,"y":31}],"version":1},"stuck_out_tongue":{"id":"stuck_out_tongue","name":"Face with Tongue","emoticons":[":p",":-p",":P",":-P",":b",":-b"],"keywords":["stuck","out","prank","childish","playful","mischievous","smile"],"skins":[{"unified":"1f61b","native":"😛","x":32,"y":47}],"version":1},"stuck_out_tongue_winking_eye":{"id":"stuck_out_tongue_winking_eye","name":"Winking Face with Tongue","emoticons":[";p",";-p",";b",";-b",";P",";-P"],"keywords":["stuck","out","eye","prank","childish","playful","mischievous","smile","wink"],"skins":[{"unified":"1f61c","native":"😜","x":32,"y":48}],"version":1},"zany_face":{"id":"zany_face","name":"Zany Face","keywords":["grinning","with","one","large","and","small","eye","goofy","crazy"],"skins":[{"unified":"1f92a","native":"🤪","x":40,"y":39}],"version":5},"stuck_out_tongue_closed_eyes":{"id":"stuck_out_tongue_closed_eyes","name":"Squinting Face with Tongue","keywords":["stuck","out","closed","eyes","prank","playful","mischievous","smile"],"skins":[{"unified":"1f61d","native":"😝","x":32,"y":49}],"version":1},"money_mouth_face":{"id":"money_mouth_face","name":"Money-Mouth Face","keywords":["money","mouth","rich","dollar"],"skins":[{"unified":"1f911","native":"🤑","x":38,"y":59}],"version":1},"hugging_face":{"id":"hugging_face","name":"Hugging Face","keywords":["smile","hug"],"skins":[{"unified":"1f917","native":"🤗","x":39,"y":4}],"version":1},"face_with_hand_over_mouth":{"id":"face_with_hand_over_mouth","name":"Face with Hand over Mouth","keywords":["smiling","eyes","and","covering","whoops","shock","surprise"],"skins":[{"unified":"1f92d","native":"🤭","x":40,"y":42}],"version":5},"shushing_face":{"id":"shushing_face","name":"Shushing Face","keywords":["with","finger","covering","closed","lips","quiet","shhh"],"skins":[{"unified":"1f92b","native":"🤫","x":40,"y":40}],"version":5},"thinking_face":{"id":"thinking_face","name":"Thinking Face","keywords":["hmmm","think","consider"],"skins":[{"unified":"1f914","native":"🤔","x":39,"y":1}],"version":1},"zipper_mouth_face":{"id":"zipper_mouth_face","name":"Zipper-Mouth Face","keywords":["zipper","mouth","sealed","secret"],"skins":[{"unified":"1f910","native":"🤐","x":38,"y":58}],"version":1},"face_with_raised_eyebrow":{"id":"face_with_raised_eyebrow","name":"Face with Raised Eyebrow","keywords":["one","distrust","scepticism","disapproval","disbelief","surprise"],"skins":[{"unified":"1f928","native":"🤨","x":40,"y":37}],"version":5},"neutral_face":{"id":"neutral_face","name":"Neutral Face","emoticons":[":|",":-|"],"keywords":["indifference","meh",":",""],"skins":[{"unified":"1f610","native":"😐","x":32,"y":36}],"version":1},"expressionless":{"id":"expressionless","name":"Expressionless Face","emoticons":["-_-"],"keywords":["indifferent","-","","meh","deadpan"],"skins":[{"unified":"1f611","native":"😑","x":32,"y":37}],"version":1},"no_mouth":{"id":"no_mouth","name":"Face Without Mouth","keywords":["no","hellokitty"],"skins":[{"unified":"1f636","native":"😶","x":33,"y":16}],"version":1},"smirk":{"id":"smirk","name":"Smirking Face","keywords":["smirk","smile","mean","prank","smug","sarcasm"],"skins":[{"unified":"1f60f","native":"😏","x":32,"y":35}],"version":1},"unamused":{"id":"unamused","name":"Unamused Face","emoticons":[":("],"keywords":["indifference","bored","straight","serious","sarcasm","unimpressed","skeptical","dubious","side","eye"],"skins":[{"unified":"1f612","native":"😒","x":32,"y":38}],"version":1},"face_with_rolling_eyes":{"id":"face_with_rolling_eyes","name":"Face with Rolling Eyes","keywords":["eyeroll","frustrated"],"skins":[{"unified":"1f644","native":"🙄","x":33,"y":30}],"version":1},"grimacing":{"id":"grimacing","name":"Grimacing Face","keywords":["grimace","teeth"],"skins":[{"unified":"1f62c","native":"😬","x":33,"y":3}],"version":1},"lying_face":{"id":"lying_face","name":"Lying Face","keywords":["lie","pinocchio"],"skins":[{"unified":"1f925","native":"🤥","x":40,"y":17}],"version":3},"relieved":{"id":"relieved","name":"Relieved Face","keywords":["relaxed","phew","massage","happiness"],"skins":[{"unified":"1f60c","native":"😌","x":32,"y":32}],"version":1},"pensive":{"id":"pensive","name":"Pensive Face","keywords":["sad","depressed","upset"],"skins":[{"unified":"1f614","native":"😔","x":32,"y":40}],"version":1},"sleepy":{"id":"sleepy","name":"Sleepy Face","keywords":["tired","rest","nap"],"skins":[{"unified":"1f62a","native":"😪","x":33,"y":1}],"version":1},"drooling_face":{"id":"drooling_face","name":"Drooling Face","keywords":[],"skins":[{"unified":"1f924","native":"🤤","x":40,"y":16}],"version":3},"sleeping":{"id":"sleeping","name":"Sleeping Face","keywords":["tired","sleepy","night","zzz"],"skins":[{"unified":"1f634","native":"😴","x":33,"y":12}],"version":1},"mask":{"id":"mask","name":"Face with Medical Mask","keywords":["sick","ill","disease"],"skins":[{"unified":"1f637","native":"😷","x":33,"y":17}],"version":1},"face_with_thermometer":{"id":"face_with_thermometer","name":"Face with Thermometer","keywords":["sick","temperature","cold","fever"],"skins":[{"unified":"1f912","native":"🤒","x":38,"y":60}],"version":1},"face_with_head_bandage":{"id":"face_with_head_bandage","name":"Face with Head-Bandage","keywords":["head","bandage","injured","clumsy","hurt"],"skins":[{"unified":"1f915","native":"🤕","x":39,"y":2}],"version":1},"nauseated_face":{"id":"nauseated_face","name":"Nauseated Face","keywords":["vomit","gross","green","sick","throw","up","ill"],"skins":[{"unified":"1f922","native":"🤢","x":40,"y":14}],"version":3},"face_vomiting":{"id":"face_vomiting","name":"Face Vomiting","keywords":["with","open","mouth","sick"],"skins":[{"unified":"1f92e","native":"🤮","x":40,"y":43}],"version":5},"sneezing_face":{"id":"sneezing_face","name":"Sneezing Face","keywords":["gesundheit","sneeze","sick","allergy"],"skins":[{"unified":"1f927","native":"🤧","x":40,"y":36}],"version":3},"dizzy_face":{"id":"dizzy_face","name":"Dizzy Face","keywords":["spent","unconscious","xox"],"skins":[{"unified":"1f635","native":"😵","x":33,"y":14}],"version":1},"exploding_head":{"id":"exploding_head","name":"Exploding Head","keywords":["shocked","face","with","mind","blown"],"skins":[{"unified":"1f92f","native":"🤯","x":40,"y":44}],"version":5},"face_with_cowboy_hat":{"id":"face_with_cowboy_hat","name":"Cowboy Hat Face","keywords":["with","cowgirl"],"skins":[{"unified":"1f920","native":"🤠","x":40,"y":12}],"version":3},"sunglasses":{"id":"sunglasses","name":"Smiling Face with Sunglasses","emoticons":["8)"],"keywords":["cool","smile","summer","beach","sunglass"],"skins":[{"unified":"1f60e","native":"😎","x":32,"y":34}],"version":1},"nerd_face":{"id":"nerd_face","name":"Nerd Face","keywords":["nerdy","geek","dork"],"skins":[{"unified":"1f913","native":"🤓","x":39,"y":0}],"version":1},"face_with_monocle":{"id":"face_with_monocle","name":"Face with Monocle","keywords":["stuffy","wealthy"],"skins":[{"unified":"1f9d0","native":"🧐","x":47,"y":11}],"version":5},"confused":{"id":"confused","name":"Confused Face","emoticons":[":\\",":-\\",":/",":-/"],"keywords":["indifference","huh","weird","hmmm",":/"],"skins":[{"unified":"1f615","native":"😕","x":32,"y":41}],"version":1},"worried":{"id":"worried","name":"Worried Face","keywords":["concern","nervous",":("],"skins":[{"unified":"1f61f","native":"😟","x":32,"y":51}],"version":1},"slightly_frowning_face":{"id":"slightly_frowning_face","name":"Slightly Frowning Face","keywords":["disappointed","sad","upset"],"skins":[{"unified":"1f641","native":"🙁","x":33,"y":27}],"version":1},"white_frowning_face":{"id":"white_frowning_face","name":"Frowning Face","keywords":["white","sad","upset","frown"],"skins":[{"unified":"2639-fe0f","native":"☹️","x":57,"y":3}],"version":1},"open_mouth":{"id":"open_mouth","name":"Face with Open Mouth","emoticons":[":o",":-o",":O",":-O"],"keywords":["surprise","impressed","wow","whoa",":O"],"skins":[{"unified":"1f62e","native":"😮","x":33,"y":6}],"version":1},"hushed":{"id":"hushed","name":"Hushed Face","keywords":["woo","shh"],"skins":[{"unified":"1f62f","native":"😯","x":33,"y":7}],"version":1},"astonished":{"id":"astonished","name":"Astonished Face","keywords":["xox","surprised","poisoned"],"skins":[{"unified":"1f632","native":"😲","x":33,"y":10}],"version":1},"flushed":{"id":"flushed","name":"Flushed Face","keywords":["blush","shy","flattered"],"skins":[{"unified":"1f633","native":"😳","x":33,"y":11}],"version":1},"frowning":{"id":"frowning","name":"Frowning Face with Open Mouth","keywords":["aw","what"],"skins":[{"unified":"1f626","native":"😦","x":32,"y":58}],"version":1},"anguished":{"id":"anguished","name":"Anguished Face","emoticons":["D:"],"keywords":["stunned","nervous"],"skins":[{"unified":"1f627","native":"😧","x":32,"y":59}],"version":1},"fearful":{"id":"fearful","name":"Fearful Face","keywords":["scared","terrified","nervous","oops","huh"],"skins":[{"unified":"1f628","native":"😨","x":32,"y":60}],"version":1},"cold_sweat":{"id":"cold_sweat","name":"Anxious Face with Sweat","keywords":["cold","nervous"],"skins":[{"unified":"1f630","native":"😰","x":33,"y":8}],"version":1},"disappointed_relieved":{"id":"disappointed_relieved","name":"Sad but Relieved Face","keywords":["disappointed","phew","sweat","nervous"],"skins":[{"unified":"1f625","native":"😥","x":32,"y":57}],"version":1},"cry":{"id":"cry","name":"Crying Face","emoticons":[":'("],"keywords":["cry","tears","sad","depressed","upset",":'("],"skins":[{"unified":"1f622","native":"😢","x":32,"y":54}],"version":1},"sob":{"id":"sob","name":"Loudly Crying Face","emoticons":[":'("],"keywords":["sob","cry","tears","sad","upset","depressed"],"skins":[{"unified":"1f62d","native":"😭","x":33,"y":4}],"version":1},"scream":{"id":"scream","name":"Face Screaming in Fear","keywords":["scream","munch","scared","omg"],"skins":[{"unified":"1f631","native":"😱","x":33,"y":9}],"version":1},"confounded":{"id":"confounded","name":"Confounded Face","keywords":["confused","sick","unwell","oops",":S"],"skins":[{"unified":"1f616","native":"😖","x":32,"y":42}],"version":1},"persevere":{"id":"persevere","name":"Persevering Face","keywords":["persevere","sick","no","upset","oops"],"skins":[{"unified":"1f623","native":"😣","x":32,"y":55}],"version":1},"disappointed":{"id":"disappointed","name":"Disappointed Face","emoticons":["):",":(",":-("],"keywords":["sad","upset","depressed",":("],"skins":[{"unified":"1f61e","native":"😞","x":32,"y":50}],"version":1},"sweat":{"id":"sweat","name":"Face with Cold Sweat","keywords":["downcast","hot","sad","tired","exercise"],"skins":[{"unified":"1f613","native":"😓","x":32,"y":39}],"version":1},"weary":{"id":"weary","name":"Weary Face","keywords":["tired","sleepy","sad","frustrated","upset"],"skins":[{"unified":"1f629","native":"😩","x":33,"y":0}],"version":1},"tired_face":{"id":"tired_face","name":"Tired Face","keywords":["sick","whine","upset","frustrated"],"skins":[{"unified":"1f62b","native":"😫","x":33,"y":2}],"version":1},"triumph":{"id":"triumph","name":"Face with Look of Triumph","keywords":["steam","from","nose","gas","phew","proud","pride"],"skins":[{"unified":"1f624","native":"😤","x":32,"y":56}],"version":1},"rage":{"id":"rage","name":"Pouting Face","keywords":["rage","angry","mad","hate","despise"],"skins":[{"unified":"1f621","native":"😡","x":32,"y":53}],"version":1},"angry":{"id":"angry","name":"Angry Face","emoticons":[">:(",">:-("],"keywords":["mad","annoyed","frustrated"],"skins":[{"unified":"1f620","native":"😠","x":32,"y":52}],"version":1},"face_with_symbols_on_mouth":{"id":"face_with_symbols_on_mouth","name":"Face with Symbols on Mouth","keywords":["serious","covering","swearing","cursing","cussing","profanity","expletive"],"skins":[{"unified":"1f92c","native":"🤬","x":40,"y":41}],"version":5},"smiling_imp":{"id":"smiling_imp","name":"Smiling Face with Horns","keywords":["imp","devil"],"skins":[{"unified":"1f608","native":"😈","x":32,"y":28}],"version":1},"imp":{"id":"imp","name":"Imp","keywords":["angry","face","with","horns","devil"],"skins":[{"unified":"1f47f","native":"👿","x":25,"y":8}],"version":1},"skull":{"id":"skull","name":"Skull","keywords":["dead","skeleton","creepy","death"],"skins":[{"unified":"1f480","native":"💀","x":25,"y":9}],"version":1},"skull_and_crossbones":{"id":"skull_and_crossbones","name":"Skull and Crossbones","keywords":["poison","danger","deadly","scary","death","pirate","evil"],"skins":[{"unified":"2620-fe0f","native":"☠️","x":56,"y":56}],"version":1},"hankey":{"id":"hankey","name":"Pile of Poo","keywords":["hankey","poop","shit","shitface","fail","turd"],"skins":[{"unified":"1f4a9","native":"💩","x":27,"y":56}],"version":1},"clown_face":{"id":"clown_face","name":"Clown Face","keywords":[],"skins":[{"unified":"1f921","native":"🤡","x":40,"y":13}],"version":3},"japanese_ogre":{"id":"japanese_ogre","name":"Ogre","keywords":["japanese","monster","red","mask","halloween","scary","creepy","devil","demon"],"skins":[{"unified":"1f479","native":"👹","x":24,"y":58}],"version":1},"japanese_goblin":{"id":"japanese_goblin","name":"Goblin","keywords":["japanese","red","evil","mask","monster","scary","creepy"],"skins":[{"unified":"1f47a","native":"👺","x":24,"y":59}],"version":1},"ghost":{"id":"ghost","name":"Ghost","keywords":["halloween","spooky","scary"],"skins":[{"unified":"1f47b","native":"👻","x":24,"y":60}],"version":1},"alien":{"id":"alien","name":"Alien","keywords":["UFO","paul","weird","outer","space"],"skins":[{"unified":"1f47d","native":"👽","x":25,"y":6}],"version":1},"space_invader":{"id":"space_invader","name":"Alien Monster","keywords":["space","invader","game","arcade","play"],"skins":[{"unified":"1f47e","native":"👾","x":25,"y":7}],"version":1},"robot_face":{"id":"robot_face","name":"Robot","keywords":["face","computer","machine","bot"],"skins":[{"unified":"1f916","native":"🤖","x":39,"y":3}],"version":1},"smiley_cat":{"id":"smiley_cat","name":"Grinning Cat","keywords":["smiley","animal","cats","happy","smile"],"skins":[{"unified":"1f63a","native":"😺","x":33,"y":20}],"version":1},"smile_cat":{"id":"smile_cat","name":"Grinning Cat with Smiling Eyes","keywords":["smile","animal","cats"],"skins":[{"unified":"1f638","native":"😸","x":33,"y":18}],"version":1},"joy_cat":{"id":"joy_cat","name":"Cat with Tears of Joy","keywords":["animal","cats","haha","happy"],"skins":[{"unified":"1f639","native":"😹","x":33,"y":19}],"version":1},"heart_eyes_cat":{"id":"heart_eyes_cat","name":"Smiling Cat with Heart-Eyes","keywords":["heart","eyes","animal","love","like","affection","cats","valentines"],"skins":[{"unified":"1f63b","native":"😻","x":33,"y":21}],"version":1},"smirk_cat":{"id":"smirk_cat","name":"Cat with Wry Smile","keywords":["smirk","animal","cats"],"skins":[{"unified":"1f63c","native":"😼","x":33,"y":22}],"version":1},"kissing_cat":{"id":"kissing_cat","name":"Kissing Cat","keywords":["animal","cats","kiss"],"skins":[{"unified":"1f63d","native":"😽","x":33,"y":23}],"version":1},"scream_cat":{"id":"scream_cat","name":"Weary Cat","keywords":["scream","animal","cats","munch","scared"],"skins":[{"unified":"1f640","native":"🙀","x":33,"y":26}],"version":1},"crying_cat_face":{"id":"crying_cat_face","name":"Crying Cat","keywords":["face","animal","tears","weep","sad","cats","upset","cry"],"skins":[{"unified":"1f63f","native":"😿","x":33,"y":25}],"version":1},"pouting_cat":{"id":"pouting_cat","name":"Pouting Cat","keywords":["animal","cats"],"skins":[{"unified":"1f63e","native":"😾","x":33,"y":24}],"version":1},"see_no_evil":{"id":"see_no_evil","name":"See-No-Evil Monkey","keywords":["see","no","evil","animal","nature","haha"],"skins":[{"unified":"1f648","native":"🙈","x":34,"y":24}],"version":1},"hear_no_evil":{"id":"hear_no_evil","name":"Hear-No-Evil Monkey","keywords":["hear","no","evil","animal","nature"],"skins":[{"unified":"1f649","native":"🙉","x":34,"y":25}],"version":1},"speak_no_evil":{"id":"speak_no_evil","name":"Speak-No-Evil Monkey","keywords":["speak","no","evil","animal","nature","omg"],"skins":[{"unified":"1f64a","native":"🙊","x":34,"y":26}],"version":1},"kiss":{"id":"kiss","name":"Kiss Mark","keywords":["face","lips","love","like","affection","valentines"],"skins":[{"unified":"1f48b","native":"💋","x":26,"y":37}],"version":1},"love_letter":{"id":"love_letter","name":"Love Letter","keywords":["email","like","affection","envelope","valentines"],"skins":[{"unified":"1f48c","native":"💌","x":26,"y":38}],"version":1},"cupid":{"id":"cupid","name":"Heart with Arrow","keywords":["cupid","love","like","affection","valentines"],"skins":[{"unified":"1f498","native":"💘","x":27,"y":39}],"version":1},"gift_heart":{"id":"gift_heart","name":"Heart with Ribbon","keywords":["gift","love","valentines"],"skins":[{"unified":"1f49d","native":"💝","x":27,"y":44}],"version":1},"sparkling_heart":{"id":"sparkling_heart","name":"Sparkling Heart","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f496","native":"💖","x":27,"y":37}],"version":1},"heartpulse":{"id":"heartpulse","name":"Growing Heart","keywords":["heartpulse","like","love","affection","valentines","pink"],"skins":[{"unified":"1f497","native":"💗","x":27,"y":38}],"version":1},"heartbeat":{"id":"heartbeat","name":"Beating Heart","keywords":["heartbeat","love","like","affection","valentines","pink"],"skins":[{"unified":"1f493","native":"💓","x":27,"y":34}],"version":1},"revolving_hearts":{"id":"revolving_hearts","name":"Revolving Hearts","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f49e","native":"💞","x":27,"y":45}],"version":1},"two_hearts":{"id":"two_hearts","name":"Two Hearts","keywords":["love","like","affection","valentines","heart"],"skins":[{"unified":"1f495","native":"💕","x":27,"y":36}],"version":1},"heart_decoration":{"id":"heart_decoration","name":"Heart Decoration","keywords":["purple","square","love","like"],"skins":[{"unified":"1f49f","native":"💟","x":27,"y":46}],"version":1},"heavy_heart_exclamation_mark_ornament":{"id":"heavy_heart_exclamation_mark_ornament","name":"Heart Exclamation","keywords":["heavy","mark","ornament","decoration","love"],"skins":[{"unified":"2763-fe0f","native":"❣️","x":59,"y":7}],"version":1},"broken_heart":{"id":"broken_heart","name":"Broken Heart","emoticons":[" EmojiSet +} + +/// The class is responsible for getting a relevant set of emojis for iOS version. +final class EmojiManager: EmojiManagerProtocol { + + // MARK: - Internal + + var currentVersion: Double { + return (UIDevice.current.systemVersion as NSString).doubleValue + } + + func provideEmojis() -> EmojiSet { + switch currentVersion { + case 12.1...13.1: + break + case 13.2...14.1: + break + case 14.2...14.4: + break + case 14.5...15.3: + break + case 15.4...: + break + default: + break + } + return EmojiSet(categories: [], emojis: [:], aliases: [:], sheet: Sheet(cols: 0, rows: 0)) + } + + // MARK: - Private Methods + + /// Returns a localized name for the emoji category. + /// + /// - Parameter type: Emoji category type. + /// - Returns: Name of the category. + private func getEmojiCategoryTitle(for type: EmojiCategoryType) -> String { + switch type { + case .people: + return NSLocalizedString("emotionsAndPeople", bundle: .module, comment: "") + case .nature: + return NSLocalizedString("animalsAndNature", bundle: .module, comment: "") + case .foodAndDrink: + return NSLocalizedString("foodAndDrinks", bundle: .module, comment: "") + case .activity: + return NSLocalizedString("activities", bundle: .module, comment: "") + case .travelAndPlaces: + return NSLocalizedString("travellingAndPlaces", bundle: .module, comment: "") + case .objects: + return NSLocalizedString("objects", bundle: .module, comment: "") + case .symbols: + return NSLocalizedString("symbols", bundle: .module, comment: "") + case .flags: + return NSLocalizedString("flags", bundle: .module, comment: "") + } + } +} From 3a23172f87a79c3a24cbbaab53a94e9be521d384 Mon Sep 17 00:00:00 2001 From: Egor Badmaev <60363270+htmlprogrammist@users.noreply.github.com> Date: Wed, 25 Jan 2023 22:37:35 +0300 Subject: [PATCH 2/7] feat: implement getting data from json --- .../UserInterfaceState.xcuserstate | Bin 65583 -> 76696 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 6 + Example App/Podfile.lock | 2 +- .../Local Podspecs/EmojiPicker.podspec.json | 2 +- Example App/Pods/Manifest.lock | 2 +- .../Pods/Pods.xcodeproj/project.pbxproj | 714 +++--- .../Extensions/Foundation/Bundle.swift | 2 +- .../{EmojiModel.swift => Category.swift} | 19 +- Sources/EmojiPicker/Models/Emoji.swift | 29 - Sources/EmojiPicker/Models/EmojiSet.swift | 26 + Sources/EmojiPicker/Models/Skin.swift | 25 + .../Localization/de.lproj/Localizable.strings | 10 +- .../Localization/en.lproj/Localizable.strings | 10 +- .../Localization/fr.lproj/Localizable.strings | 10 +- .../Localization/hi.lproj/Localizable.strings | 10 +- .../Localization/ru.lproj/Localizable.strings | 10 +- .../Localization/tr.lproj/Localizable.strings | 10 +- .../Localization/uk.lproj/Localizable.strings | 10 +- .../EmojiPicker/Services/EmojiManager.swift | 78 +- .../Services/Unicode/Unicode 11.swift | 1713 --------------- .../Services/Unicode/Unicode 12.swift | 1782 --------------- .../Services/Unicode/Unicode 13.swift | 1872 ---------------- .../Services/Unicode/Unicode 13v1.swift | 1879 ---------------- .../Services/Unicode/Unicode 14.swift | 1916 ----------------- .../Services/Unicode/Unicode 5.swift | 1630 -------------- .../EmojiPicker/Services/UnicodeManager.swift | 81 - .../ViewModel/EmojiPickerViewModel.swift | 29 +- .../EmojiCategoryIconView.swift | 8 +- .../TouchableEmojiCategoryView.swift | 10 +- .../EmojiPicker/Views/EmojiPickerView.swift | 7 +- .../Views/EmojiPickerViewController.swift | 4 +- 31 files changed, 558 insertions(+), 11348 deletions(-) create mode 100644 Example App/EmojiPicker.xcworkspace/xcuserdata/egbad.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist rename Sources/EmojiPicker/Models/{EmojiModel.swift => Category.swift} (84%) create mode 100644 Sources/EmojiPicker/Models/EmojiSet.swift create mode 100644 Sources/EmojiPicker/Models/Skin.swift delete mode 100644 Sources/EmojiPicker/Services/Unicode/Unicode 11.swift delete mode 100644 Sources/EmojiPicker/Services/Unicode/Unicode 12.swift delete mode 100644 Sources/EmojiPicker/Services/Unicode/Unicode 13.swift delete mode 100644 Sources/EmojiPicker/Services/Unicode/Unicode 13v1.swift delete mode 100644 Sources/EmojiPicker/Services/Unicode/Unicode 14.swift delete mode 100644 Sources/EmojiPicker/Services/Unicode/Unicode 5.swift delete mode 100644 Sources/EmojiPicker/Services/UnicodeManager.swift diff --git a/Example App/EmojiPicker.xcworkspace/xcuserdata/egbad.xcuserdatad/UserInterfaceState.xcuserstate b/Example App/EmojiPicker.xcworkspace/xcuserdata/egbad.xcuserdatad/UserInterfaceState.xcuserstate index cec2e651ef8f3b50ac9df35b8adefa4c940d5d8c..7de2f487943374cbdda11806543ae49f448b69a0 100644 GIT binary patch literal 76696 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�jKnXL>mI_r*f1RGVR{q5 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 literal 65583 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 + + diff --git a/Example App/Podfile.lock b/Example App/Podfile.lock index 71f2413..17213d2 100644 --- a/Example App/Podfile.lock +++ b/Example App/Podfile.lock @@ -11,7 +11,7 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: - EmojiPicker: 6b9b72b2942cd9abe971efb76a1ec8a430a3f432 + EmojiPicker: a21d785c95a64a0284b0d1472150d90c4348d5e3 PODFILE CHECKSUM: e686a8fbd8a5367eac0bf7fb77e0bbddf18a2353 diff --git a/Example App/Pods/Local Podspecs/EmojiPicker.podspec.json b/Example App/Pods/Local Podspecs/EmojiPicker.podspec.json index 2fc08ae..8b0674c 100644 --- a/Example App/Pods/Local Podspecs/EmojiPicker.podspec.json +++ b/Example App/Pods/Local Podspecs/EmojiPicker.podspec.json @@ -14,7 +14,7 @@ "source_files": "Sources/EmojiPicker/**/*.{swift}", "resource_bundles": { "Resources": [ - "Sources/EmojiPicker/**/*.{strings}" + "Sources/EmojiPicker/**/*.{json,strings}" ] }, "swift_versions": "4.2", diff --git a/Example App/Pods/Manifest.lock b/Example App/Pods/Manifest.lock index 71f2413..17213d2 100644 --- a/Example App/Pods/Manifest.lock +++ b/Example App/Pods/Manifest.lock @@ -11,7 +11,7 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: - EmojiPicker: 6b9b72b2942cd9abe971efb76a1ec8a430a3f432 + EmojiPicker: a21d785c95a64a0284b0d1472150d90c4348d5e3 PODFILE CHECKSUM: e686a8fbd8a5367eac0bf7fb77e0bbddf18a2353 diff --git a/Example App/Pods/Pods.xcodeproj/project.pbxproj b/Example App/Pods/Pods.xcodeproj/project.pbxproj index 9329ac2..88c3fa5 100644 --- a/Example App/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example App/Pods/Pods.xcodeproj/project.pbxproj @@ -7,151 +7,162 @@ objects = { /* Begin PBXBuildFile section */ + 01CE18135A0681E4396EBDB362ACE617 /* EmojiPickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1F5DE01D9F18FAC7C6BB661A63AD74A /* EmojiPickerViewController.swift */; }; 04631E91E77F1BDF6CD1C6FBC1E53AEA /* Pods-EmojiPicker_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E41074865C769D58022F8DB9C2B17FE /* Pods-EmojiPicker_Example-dummy.m */; }; - 07460DCA713DF741DCDDA1D1A9EB2155 /* EmojiCategoryIconView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45B8AA4D0270F9AA11FF0CEF1AA6B8CA /* EmojiCategoryIconView.swift */; }; - 10988D1233EC133ADAA4EDD869F9E85E /* Bundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1418654D8630703882702745BCA2B62 /* Bundle.swift */; }; - 13922737909DED6F90905E68CA662E7D /* EmojiPicker-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 055783EC01393DAD74D6924B0A1172EF /* EmojiPicker-dummy.m */; }; - 2900054B72429C7FBCEA19AA18E1245A /* Array.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F335CBEC444F6A0D2A28621CF7B57A6 /* Array.swift */; }; - 31485DB446873BF9084A77773AACB9FB /* EmojiPicker-Resources in Resources */ = {isa = PBXBuildFile; fileRef = 72DF50AF5F8CB0E66065910A9B57FFFE /* EmojiPicker-Resources */; }; - 3876EC5219DBCE2DBFEC79050FA5A2D7 /* EmojiPickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B15F9E69D9C0DBBCE516818B65EA339F /* EmojiPickerViewController.swift */; }; - 39992CFE425CED16527876E1E7B7FC68 /* ArrayExtensionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C116CD470552E111ABE36E09C8F1391 /* ArrayExtensionTests.swift */; }; - 3C2E92340EC180798EA4F4EA47D0106B /* Unicode 13.swift in Sources */ = {isa = PBXBuildFile; fileRef = 544BC75A3D6613DE7D1079DA1926BBB0 /* Unicode 13.swift */; }; - 3E49992F0C8C05FEB42145D1B83C3678 /* EmojiCollectionViewHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7960CDBD1686B14B4408A7ADB086667C /* EmojiCollectionViewHeader.swift */; }; - 48115D63F074D8321B1CD55AF3F0CBDC /* Emoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27C541E6B50961B2EC2CB9361BA1BFD4 /* Emoji.swift */; }; - 5113F9673082E7CB68B6CB19258D7FF9 /* UIColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAE8A9A3BD2AC0691A4FA7412F1D1AA1 /* UIColor.swift */; }; - 5152326EB0EB27252099A3813011CF1C /* UnicodeManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20BA558003DB7F10190032FF2AF7BAAE /* UnicodeManagerTests.swift */; }; - 5447F0380E430D516078629EF9AB0DC4 /* EmojiPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9F24DBCF6F0550D030B4C3D551582CA /* EmojiPickerView.swift */; }; - 5898B4AC66F1994436E68609725C328F /* ObservableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22BDD97A0F67496204CDD6BA56B1A409 /* ObservableTests.swift */; }; - 659188B40335E3EA58F55D8F7F78FEEA /* UnicodeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6A85F09445CC9CE651ECB0E365B68BC /* UnicodeManager.swift */; }; - 66323AF74D3A350E4D000A326C86410D /* Unicode 5.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27BA0099B167BF4A8FE35A7351F8B1F6 /* Unicode 5.swift */; }; + 0CE561E14B8145B36CB977877CDF2D0D /* EmojiPicker-Resources in Resources */ = {isa = PBXBuildFile; fileRef = 72DF50AF5F8CB0E66065910A9B57FFFE /* EmojiPicker-Resources */; }; + 22E96A696128D9F7DED2BD3D07A7830F /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 82824E96D94B60DFCCC919CA9357D85F /* Localizable.strings */; }; + 24E04A3A64F70E7653F0366287815057 /* EmojiCategoryIconView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8879BDC3EB41DC795A9B8BE8EA282B75 /* EmojiCategoryIconView.swift */; }; + 280AC1D6D6D3B6459F875BD92F7BFC7B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; + 30F9341A544B39EAA04F79E1FAE3B2DB /* EmojiCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7C5B458D7C95530B40DD2CC2261B7EC /* EmojiCollectionViewCell.swift */; }; + 31C46961416CC20E4FEA133CF9CFC302 /* UIView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF49622FC2DE4146473AEC56B81EEDBE /* UIView.swift */; }; + 323D83ECBD008CEA1B50D539A7740D1C /* EmojiPicker-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D90A7FDCE48F328BF2508160BFB2D016 /* EmojiPicker-dummy.m */; }; + 39992CFE425CED16527876E1E7B7FC68 /* ArrayExtensionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DA1561688A001CA1B9E6CFEFD015092 /* ArrayExtensionTests.swift */; }; + 3EC9270CA83557592712F214B5C0A821 /* 11.json in Resources */ = {isa = PBXBuildFile; fileRef = 1F33C9D75C9B8F1A39428BD85E649B2D /* 11.json */; }; + 43207020ADD92B8D32FAC8F33B5CACFC /* Array.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6212C4D105F1104E02721146F54CDFBA /* Array.swift */; }; + 47CAFAD474405966D4BC34DD0E1224DC /* EmojiPicker-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E70656411071DE48F4279E83C2B49F6F /* EmojiPicker-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5127F1E1AB8B93077A8DDA2DAE589E59 /* 5.json in Resources */ = {isa = PBXBuildFile; fileRef = C46E2363E33E965489D5A57B23D93595 /* 5.json */; }; + 5152326EB0EB27252099A3813011CF1C /* UnicodeManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 903FE5FB0EA9B07D691DF634ABC63A9B /* UnicodeManagerTests.swift */; }; + 550D935013808A6499E6DCEFD5FE5042 /* Observable.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE2E37741C76BFE73FD65AA92437F6AA /* Observable.swift */; }; + 5553ED817614810334EE62F20D64BD0F /* UIColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F992F256D5E5DFE5DEC61D79FDCB66F /* UIColor.swift */; }; + 5898B4AC66F1994436E68609725C328F /* ObservableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBE05E23BB1406387B8BC2EB5A4F6CF7 /* ObservableTests.swift */; }; + 5F1EE0505CBBBCF21044D00AF4799804 /* EmojiManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 907B1D56EEF86A46BFF5B9C4D4D47D22 /* EmojiManager.swift */; }; + 621CF41663DBD1E9D7FC9CF826C5D5E9 /* 14.json in Resources */ = {isa = PBXBuildFile; fileRef = 2E62F37B06E64232A49BAA17099B3EF2 /* 14.json */; }; 6CCE6EF5DB6DD0545F70DE1C6296AF01 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; - 6D56A7DD06B973AF953EA59903AF5339 /* EmojiPickerViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 457E224B7794AAF5B2A679976F7A65A5 /* EmojiPickerViewModelTests.swift */; }; - 70EA50369EB2C2E5749ACEC2433BAC09 /* EmojiCategoryTypeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9744B878529AD715D707FDEC0983A59B /* EmojiCategoryTypeTests.swift */; }; + 6D56A7DD06B973AF953EA59903AF5339 /* EmojiPickerViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E48244AAE4FF8A9F8B47C06FA1E34F18 /* EmojiPickerViewModelTests.swift */; }; + 700F13DEED178BAF6B299765FD6A5378 /* PickerArrowDirectionMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5751A5786A931EC7567038A088455519 /* PickerArrowDirectionMode.swift */; }; + 70EA50369EB2C2E5749ACEC2433BAC09 /* EmojiCategoryTypeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3443B263837A45DEFDD8C8C9F4F5C54 /* EmojiCategoryTypeTests.swift */; }; + 72A53254B374FA721A5528FD8B9DAFB2 /* 4.json in Resources */ = {isa = PBXBuildFile; fileRef = BA994DA65C123AF37FA8279509B535AE /* 4.json */; }; 7AD411BFDBD6A713CE09B1E0E825F163 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; - 82A756D60AADC295BE0C28979DAC7FE9 /* Unicode 14.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7495A79357F0232B6BAFA7853E96317 /* Unicode 14.swift */; }; - 93B6F9FA461FD4FEE91B16F94D01395A /* EmojiModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5E992DC2023870B331007FFBD9F7037 /* EmojiModel.swift */; }; - 969A75B86B918BF315292176E661F8FF /* EmojiPickerViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 918868922A374845C720D710866878F8 /* EmojiPickerViewModel.swift */; }; - 96D990C818F53922131CA4514235903B /* PickerArrowDirectionModeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 828F7C8D328D920E764B2A9173DEE675 /* PickerArrowDirectionModeTests.swift */; }; - A05E77D1B14C347E5AB8487F18BFD8D9 /* EmojiPickerDelegateMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0B2D6CA003DFD74AD698CEA421FE59B /* EmojiPickerDelegateMock.swift */; }; - A4FDEBAA024E04C9A346FA39CF542B5C /* Unicode 11.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5927B450F01053A947A9A943D38BE188 /* Unicode 11.swift */; }; - AC3840CA9BD94BE0E6AD1C8A7D462121 /* EmojiCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2B917FB8642D6399342C991329C30E7 /* EmojiCollectionViewCell.swift */; }; - AF06DA78A59B238F3879F20187862449 /* UnicodeManagerStub.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E90BBD485E5BFEECF8CCD41E0D3CC36 /* UnicodeManagerStub.swift */; }; - BB53EA985BF26460E6F4A14A801A2843 /* Observable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 523BD44A75978169B773A4BDD72E0C47 /* Observable.swift */; }; - C359947EDE9D753A5BC22DF047097F90 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 64419415CDA96521795EE04B76FC6365 /* Localizable.strings */; }; - CA02875C88A58F1C813CA065184CF23C /* TouchableEmojiCategoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E56562F9310DB0C24639B72D2EF0A86B /* TouchableEmojiCategoryView.swift */; }; - D2C6FAE1EF2D7F5D45D1D35BE6B2E805 /* EmojiPicker-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D3EF5B78E8274CABC70058AAB2BB5DCA /* EmojiPicker-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D69CA1784335CE59A3FD6A10F220F3AB /* Unicode 13v1.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCDB43B8F3ED5B3832525B8CCAC0A77B /* Unicode 13v1.swift */; }; + 7D83F5C1835BAE71AF7D97A8D7BAA86D /* 13.1.json in Resources */ = {isa = PBXBuildFile; fileRef = 0FD7827F050C421AE77FDCB651582ECB /* 13.1.json */; }; + 8689D7DBBA3B233581245AAF6DF5678D /* EmojiCollectionViewHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8889F3A0D04B56F6EC71D4C6C3A21BD4 /* EmojiCollectionViewHeader.swift */; }; + 932DE79107AF184DFC7BA2CFF2E28E0C /* Emoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = 240D4E00A0AAE4CD98BB978B9B2C917F /* Emoji.swift */; }; + 96D990C818F53922131CA4514235903B /* PickerArrowDirectionModeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 90B315A6CD78D4A3B8D8CC0ED53DF4D3 /* PickerArrowDirectionModeTests.swift */; }; + 9A20E3A7C10CDF46109B92F331D4A56A /* 3.json in Resources */ = {isa = PBXBuildFile; fileRef = 3A91B05AFF733F0E899A05C79B76EEF9 /* 3.json */; }; + A05E77D1B14C347E5AB8487F18BFD8D9 /* EmojiPickerDelegateMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 124C5A4FDD8EABCF4D66E9C363750239 /* EmojiPickerDelegateMock.swift */; }; + AF06DA78A59B238F3879F20187862449 /* UnicodeManagerStub.swift in Sources */ = {isa = PBXBuildFile; fileRef = A085A2016956196B512B164523C43D02 /* UnicodeManagerStub.swift */; }; + B045B4E84350FDFE9FD80A84483EE61A /* 12.1.json in Resources */ = {isa = PBXBuildFile; fileRef = F2D5E0D349158FFD1DD20517789E596F /* 12.1.json */; }; + BCDF8F7DBAF99753B3AC59C68D48B7C9 /* 13.json in Resources */ = {isa = PBXBuildFile; fileRef = DCD95B2285CDF4D99BF296BA8E4349EB /* 13.json */; }; + C450FF14C56765B86DC2D13CBAC3ED9A /* EmojiPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55989551A6AB676670767CB875552F35 /* EmojiPickerView.swift */; }; + C9022C63FDCEECCA8BDD36C523E809E3 /* 1.json in Resources */ = {isa = PBXBuildFile; fileRef = 03CF0F5AF189C54218CD413FA6013B48 /* 1.json */; }; + CA822EC10BF06D5A3B39D61185136B3A /* TouchableEmojiCategoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6B406ADCC24BF6EAC709ED45F73B0C8 /* TouchableEmojiCategoryView.swift */; }; D87D90972546DFB456AE2B38379D5E2C /* Pods-EmojiPicker_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 509EFFB149756F700CC3A368970476A6 /* Pods-EmojiPicker_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D91BCB0307A04B7B2004F0E27DB3FFE2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; - DC164E01556BCC9260FDD17F0B9AAD3F /* Unicode 12.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1651D5E1F63F1A7FDA413D4BC32064A6 /* Unicode 12.swift */; }; - EE4E445F437B7664AF52A2D6B32F0B7B /* UIView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFB27685A9A0F2E4084AFEBBE363F6F6 /* UIView.swift */; }; - F0CF7938297FEFE20010E579 /* EmojiManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0CF7937297FEFE20010E579 /* EmojiManager.swift */; }; - F666BE25B4BDFD925B1ECEED0F81AE48 /* PickerArrowDirectionMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 160AEB39043CAA7082F679808AB083C2 /* PickerArrowDirectionMode.swift */; }; + DD84C1441302A82A407B2A06C8E2102A /* 2.json in Resources */ = {isa = PBXBuildFile; fileRef = 04FF92E92EEC4FDA4596BD0004577A36 /* 2.json */; }; + E9AB107B73CD1C08CDA6859CABE82CCC /* EmojiPickerViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63D5BCB7166B7E7B18957D3425129C8B /* EmojiPickerViewModel.swift */; }; + F08C80792981B7D100634E30 /* EmojiSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = F08C80782981B7D100634E30 /* EmojiSet.swift */; }; + F08C807B2981B7DD00634E30 /* Category.swift in Sources */ = {isa = PBXBuildFile; fileRef = F08C807A2981B7DD00634E30 /* Category.swift */; }; + F08C807D2981B7E800634E30 /* Skin.swift in Sources */ = {isa = PBXBuildFile; fileRef = F08C807C2981B7E800634E30 /* Skin.swift */; }; + F35B8843F9FE8DE3E104327AD0EF800E /* Bundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7582C2190BAFE180228F25FDE781A8FE /* Bundle.swift */; }; + FFDAB80B3AD4E8527344BFBA2E36DB7A /* 12.json in Resources */ = {isa = PBXBuildFile; fileRef = 7722AC2BA4786E96192A727139C56378 /* 12.json */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 5F9FEB22C04146354A40EB098DDB93B6 /* PBXContainerItemProxy */ = { + DB0DF625F433896F640FB53EA8A11975 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 74B1BE29E8F4437DC0A1829FA5157AE0; remoteInfo = EmojiPicker; }; - D41E58B2D8A9CFAA13607D3D58510B3A /* PBXContainerItemProxy */ = { + F2C685652BA1B40FD9C5295265812884 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 3DA7DB1A9F7F32C07F0F0F8CD7CCD936; - remoteInfo = "EmojiPicker-Resources"; + remoteGlobalIDString = 74B1BE29E8F4437DC0A1829FA5157AE0; + remoteInfo = EmojiPicker; }; - FDD7A739B6DD4BC31E6C35C56F8FF166 /* PBXContainerItemProxy */ = { + F503495051C6BD29DA615E2D0BD6F785 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 74B1BE29E8F4437DC0A1829FA5157AE0; - remoteInfo = EmojiPicker; + remoteGlobalIDString = 3DA7DB1A9F7F32C07F0F0F8CD7CCD936; + remoteInfo = "EmojiPicker-Resources"; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 0183F38D78E1C2EFC6321B8CC252150D /* EmojiPicker.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = EmojiPicker.release.xcconfig; sourceTree = ""; }; + 01BF62AD9E1F740437F682BD38F572C0 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; 01F2518BBC39B4BACCF61C2B5E035BBC /* Pods-EmojiPicker_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-EmojiPicker_Example-acknowledgements.plist"; sourceTree = ""; }; - 055783EC01393DAD74D6924B0A1172EF /* EmojiPicker-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "EmojiPicker-dummy.m"; sourceTree = ""; }; - 160AEB39043CAA7082F679808AB083C2 /* PickerArrowDirectionMode.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PickerArrowDirectionMode.swift; sourceTree = ""; }; - 1651D5E1F63F1A7FDA413D4BC32064A6 /* Unicode 12.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Unicode 12.swift"; sourceTree = ""; }; - 1C116CD470552E111ABE36E09C8F1391 /* ArrayExtensionTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ArrayExtensionTests.swift; path = Tests/EmojiPickerTests/ArrayExtensionTests.swift; sourceTree = ""; }; - 1D791E351E9A140C637F92305902F420 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = de.lproj/Localizable.strings; sourceTree = ""; }; - 20BA558003DB7F10190032FF2AF7BAAE /* UnicodeManagerTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UnicodeManagerTests.swift; path = Tests/EmojiPickerTests/UnicodeManagerTests.swift; sourceTree = ""; }; - 22BDD97A0F67496204CDD6BA56B1A409 /* ObservableTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ObservableTests.swift; path = Tests/EmojiPickerTests/ObservableTests.swift; sourceTree = ""; }; + 03CF0F5AF189C54218CD413FA6013B48 /* 1.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 1.json; sourceTree = ""; }; + 04FF92E92EEC4FDA4596BD0004577A36 /* 2.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 2.json; sourceTree = ""; }; + 05313DB19F1015F7062F82CEF48A0868 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = de.lproj/Localizable.strings; sourceTree = ""; }; + 08DA8F4887EFE486D534712C71E8C5CA /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = uk.lproj/Localizable.strings; sourceTree = ""; }; + 0FD7827F050C421AE77FDCB651582ECB /* 13.1.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 13.1.json; sourceTree = ""; }; + 124C5A4FDD8EABCF4D66E9C363750239 /* EmojiPickerDelegateMock.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerDelegateMock.swift; sourceTree = ""; }; + 1DB8439774A04631978ACC9901DE195D /* EmojiPicker-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EmojiPicker-prefix.pch"; sourceTree = ""; }; + 1F33C9D75C9B8F1A39428BD85E649B2D /* 11.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 11.json; sourceTree = ""; }; 23BE90F951883808EBCF02CDD69ED1AB /* EmojiPicker */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = EmojiPicker; path = EmojiPicker.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 27BA0099B167BF4A8FE35A7351F8B1F6 /* Unicode 5.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Unicode 5.swift"; sourceTree = ""; }; - 27C541E6B50961B2EC2CB9361BA1BFD4 /* Emoji.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Emoji.swift; sourceTree = ""; }; - 2E45C9D721F57E954CF47102EF52FD2D /* EmojiPicker-Unit-Tests-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EmojiPicker-Unit-Tests-prefix.pch"; sourceTree = ""; }; + 240D4E00A0AAE4CD98BB978B9B2C917F /* Emoji.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Emoji.swift; sourceTree = ""; }; + 2E62F37B06E64232A49BAA17099B3EF2 /* 14.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 14.json; sourceTree = ""; }; + 37FB6528DBDAE7D16F3B1D8ABD32F653 /* EmojiPicker-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "EmojiPicker-Info.plist"; sourceTree = ""; }; 382524B7DD3E7F2893D02267E796F68E /* Pods-EmojiPicker_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-EmojiPicker_Example.modulemap"; sourceTree = ""; }; - 3AFC0F36F89485AE8CD046F33287618E /* EmojiPicker-Unit-Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "EmojiPicker-Unit-Tests-resources.sh"; sourceTree = ""; }; - 416B0779F7AA40BD8EEECEF13B84372D /* EmojiPicker.unit-tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "EmojiPicker.unit-tests.release.xcconfig"; sourceTree = ""; }; - 44F1560E478EE68DC9DF4D9532F557AC /* EmojiPicker-Unit-Tests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "EmojiPicker-Unit-Tests-Info.plist"; sourceTree = ""; }; - 457E224B7794AAF5B2A679976F7A65A5 /* EmojiPickerViewModelTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EmojiPickerViewModelTests.swift; path = Tests/EmojiPickerTests/EmojiPickerViewModelTests.swift; sourceTree = ""; }; - 45B8AA4D0270F9AA11FF0CEF1AA6B8CA /* EmojiCategoryIconView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiCategoryIconView.swift; sourceTree = ""; }; - 4D154DBCA421C9219651F87B0FA3EE61 /* ResourceBundle-Resources-EmojiPicker-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-Resources-EmojiPicker-Info.plist"; sourceTree = ""; }; - 4DB43B865E0F05D2D64B2DE12B928679 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = en.lproj/Localizable.strings; sourceTree = ""; }; - 4E90BBD485E5BFEECF8CCD41E0D3CC36 /* UnicodeManagerStub.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UnicodeManagerStub.swift; sourceTree = ""; }; - 4E95F4BC1FB3C6D7DCB016C6D828B763 /* EmojiPicker.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; path = EmojiPicker.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 4E9A19FD3F78AD7EB75C9ABA787B51E7 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = tr.lproj/Localizable.strings; sourceTree = ""; }; + 3A91B05AFF733F0E899A05C79B76EEF9 /* 3.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 3.json; sourceTree = ""; }; + 3E9A64B82E30FC1A421C182E3CC275A7 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = tr.lproj/Localizable.strings; sourceTree = ""; }; + 3FE4A3FEFD10B23603166704EF2A70E7 /* EmojiPicker.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = EmojiPicker.modulemap; sourceTree = ""; }; + 416AA4CAE6DAD3FEAC111D71D8B24146 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = fr.lproj/Localizable.strings; sourceTree = ""; }; + 434016F65810EC8B967AE9D9C3555AB9 /* EmojiPicker.unit-tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "EmojiPicker.unit-tests.debug.xcconfig"; sourceTree = ""; }; + 44E1999FFFD89E8CD1820B2B48915806 /* EmojiPicker.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = EmojiPicker.debug.xcconfig; sourceTree = ""; }; + 4AF011DA7226E834F1B698924076958F /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 4F0E261765733138900691A2A0EBC94B /* EmojiPicker.unit-tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "EmojiPicker.unit-tests.release.xcconfig"; sourceTree = ""; }; 509EFFB149756F700CC3A368970476A6 /* Pods-EmojiPicker_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-EmojiPicker_Example-umbrella.h"; sourceTree = ""; }; - 50A87FBAE3B60D95BF4B1CA78057F413 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; - 523BD44A75978169B773A4BDD72E0C47 /* Observable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Observable.swift; sourceTree = ""; }; - 544BC75A3D6613DE7D1079DA1926BBB0 /* Unicode 13.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Unicode 13.swift"; sourceTree = ""; }; - 5927B450F01053A947A9A943D38BE188 /* Unicode 11.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Unicode 11.swift"; sourceTree = ""; }; + 530BE4B1F73E8A09FB0D9385551CB810 /* EmojiPicker-Unit-Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "EmojiPicker-Unit-Tests-frameworks.sh"; sourceTree = ""; }; + 55989551A6AB676670767CB875552F35 /* EmojiPickerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerView.swift; sourceTree = ""; }; + 5751A5786A931EC7567038A088455519 /* PickerArrowDirectionMode.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PickerArrowDirectionMode.swift; sourceTree = ""; }; + 5FEE9A6040A0AA7145ED613BC023AC0A /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = en.lproj/Localizable.strings; sourceTree = ""; }; 5FFCF687F23CBE36E970127D9B9AB400 /* Pods-EmojiPicker_Example */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-EmojiPicker_Example"; path = Pods_EmojiPicker_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 60CDDCE1EBAF6641C515D019921650A6 /* EmojiPicker-Unit-Tests */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "EmojiPicker-Unit-Tests"; path = "EmojiPicker-Unit-Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 6212C4D105F1104E02721146F54CDFBA /* Array.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Array.swift; sourceTree = ""; }; + 63D5BCB7166B7E7B18957D3425129C8B /* EmojiPickerViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerViewModel.swift; sourceTree = ""; }; 6E41074865C769D58022F8DB9C2B17FE /* Pods-EmojiPicker_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-EmojiPicker_Example-dummy.m"; sourceTree = ""; }; 72DF50AF5F8CB0E66065910A9B57FFFE /* EmojiPicker-Resources */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "EmojiPicker-Resources"; path = Resources.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 7690EA9D5BB517DECCE242D6F63CBCBF /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = ru.lproj/Localizable.strings; sourceTree = ""; }; - 7960CDBD1686B14B4408A7ADB086667C /* EmojiCollectionViewHeader.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewHeader.swift; sourceTree = ""; }; - 7A2EB27FECF4DC7703CF0193221999FC /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = hi.lproj/Localizable.strings; sourceTree = ""; }; - 7D40D799C34FE562A70418783DDCD408 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = uk.lproj/Localizable.strings; sourceTree = ""; }; - 7F335CBEC444F6A0D2A28621CF7B57A6 /* Array.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Array.swift; sourceTree = ""; }; - 828F7C8D328D920E764B2A9173DEE675 /* PickerArrowDirectionModeTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PickerArrowDirectionModeTests.swift; path = Tests/EmojiPickerTests/PickerArrowDirectionModeTests.swift; sourceTree = ""; }; - 83CBEB4E884D5C164543FDE049E40A04 /* EmojiPicker.unit-tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "EmojiPicker.unit-tests.debug.xcconfig"; sourceTree = ""; }; - 918868922A374845C720D710866878F8 /* EmojiPickerViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerViewModel.swift; sourceTree = ""; }; - 9744B878529AD715D707FDEC0983A59B /* EmojiCategoryTypeTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EmojiCategoryTypeTests.swift; path = Tests/EmojiPickerTests/EmojiCategoryTypeTests.swift; sourceTree = ""; }; + 7582C2190BAFE180228F25FDE781A8FE /* Bundle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Bundle.swift; sourceTree = ""; }; + 7722AC2BA4786E96192A727139C56378 /* 12.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 12.json; sourceTree = ""; }; + 7EF526047D35D91416BA58DEBAE7E8BF /* EmojiPicker-Unit-Tests-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EmojiPicker-Unit-Tests-prefix.pch"; sourceTree = ""; }; + 7F992F256D5E5DFE5DEC61D79FDCB66F /* UIColor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UIColor.swift; sourceTree = ""; }; + 8879BDC3EB41DC795A9B8BE8EA282B75 /* EmojiCategoryIconView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiCategoryIconView.swift; sourceTree = ""; }; + 8889F3A0D04B56F6EC71D4C6C3A21BD4 /* EmojiCollectionViewHeader.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewHeader.swift; sourceTree = ""; }; + 8B90A21DEEFF2F461FD2E94DCBC80817 /* ResourceBundle-Resources-EmojiPicker-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-Resources-EmojiPicker-Info.plist"; sourceTree = ""; }; + 903FE5FB0EA9B07D691DF634ABC63A9B /* UnicodeManagerTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UnicodeManagerTests.swift; path = Tests/EmojiPickerTests/UnicodeManagerTests.swift; sourceTree = ""; }; + 907B1D56EEF86A46BFF5B9C4D4D47D22 /* EmojiManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiManager.swift; sourceTree = ""; }; + 90B315A6CD78D4A3B8D8CC0ED53DF4D3 /* PickerArrowDirectionModeTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PickerArrowDirectionModeTests.swift; path = Tests/EmojiPickerTests/PickerArrowDirectionModeTests.swift; sourceTree = ""; }; 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - A0B2D6CA003DFD74AD698CEA421FE59B /* EmojiPickerDelegateMock.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerDelegateMock.swift; sourceTree = ""; }; - A2E4283D315A47466A582C80029BD286 /* EmojiPicker-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "EmojiPicker-Info.plist"; sourceTree = ""; }; + 9DA1561688A001CA1B9E6CFEFD015092 /* ArrayExtensionTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ArrayExtensionTests.swift; path = Tests/EmojiPickerTests/ArrayExtensionTests.swift; sourceTree = ""; }; + A085A2016956196B512B164523C43D02 /* UnicodeManagerStub.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UnicodeManagerStub.swift; sourceTree = ""; }; + A38D5DFD9D99E33CC0B0EB5B96C34ABB /* EmojiPicker-Unit-Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "EmojiPicker-Unit-Tests-resources.sh"; sourceTree = ""; }; A66E21E0B052B50A29602427E1E2DC23 /* Pods-EmojiPicker_Example-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-EmojiPicker_Example-Info.plist"; sourceTree = ""; }; - A6A85F09445CC9CE651ECB0E365B68BC /* UnicodeManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UnicodeManager.swift; sourceTree = ""; }; - B15F9E69D9C0DBBCE516818B65EA339F /* EmojiPickerViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerViewController.swift; sourceTree = ""; }; - B44D1CC98D564A576739DA92873BDFBA /* EmojiPicker-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EmojiPicker-prefix.pch"; sourceTree = ""; }; - BCDB43B8F3ED5B3832525B8CCAC0A77B /* Unicode 13v1.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Unicode 13v1.swift"; sourceTree = ""; }; - C276690BF444B716F6A0663B7507A7A3 /* EmojiPicker.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = EmojiPicker.debug.xcconfig; sourceTree = ""; }; + B1F5DE01D9F18FAC7C6BB661A63AD74A /* EmojiPickerViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerViewController.swift; sourceTree = ""; }; + B7C5B458D7C95530B40DD2CC2261B7EC /* EmojiCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewCell.swift; sourceTree = ""; }; + BA994DA65C123AF37FA8279509B535AE /* 4.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 4.json; sourceTree = ""; }; + BBE05E23BB1406387B8BC2EB5A4F6CF7 /* ObservableTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ObservableTests.swift; path = Tests/EmojiPickerTests/ObservableTests.swift; sourceTree = ""; }; + C03DB8D5A854C8C07DE8D3D7AA4401ED /* EmojiPicker-Unit-Tests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "EmojiPicker-Unit-Tests-Info.plist"; sourceTree = ""; }; + C46E2363E33E965489D5A57B23D93595 /* 5.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 5.json; sourceTree = ""; }; D089390CB10DE5D7264EAF267B71BF52 /* Pods-EmojiPicker_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-EmojiPicker_Example.debug.xcconfig"; sourceTree = ""; }; D0B1C88F829541DAEF35CF30E76D83B7 /* Pods-EmojiPicker_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-EmojiPicker_Example.release.xcconfig"; sourceTree = ""; }; - D1418654D8630703882702745BCA2B62 /* Bundle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Bundle.swift; sourceTree = ""; }; - D2B917FB8642D6399342C991329C30E7 /* EmojiCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewCell.swift; sourceTree = ""; }; - D3EF5B78E8274CABC70058AAB2BB5DCA /* EmojiPicker-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EmojiPicker-umbrella.h"; sourceTree = ""; }; - D72963D71BAD2D212647932191FA4EC3 /* EmojiPicker.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = EmojiPicker.modulemap; sourceTree = ""; }; - D7495A79357F0232B6BAFA7853E96317 /* Unicode 14.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Unicode 14.swift"; sourceTree = ""; }; + D3443B263837A45DEFDD8C8C9F4F5C54 /* EmojiCategoryTypeTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EmojiCategoryTypeTests.swift; path = Tests/EmojiPickerTests/EmojiCategoryTypeTests.swift; sourceTree = ""; }; + D90A7FDCE48F328BF2508160BFB2D016 /* EmojiPicker-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "EmojiPicker-dummy.m"; sourceTree = ""; }; D9A8ECD769F879596441DCFFBAFD34CC /* Pods-EmojiPicker_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-EmojiPicker_Example-frameworks.sh"; sourceTree = ""; }; - DFB27685A9A0F2E4084AFEBBE363F6F6 /* UIView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UIView.swift; sourceTree = ""; }; - E56562F9310DB0C24639B72D2EF0A86B /* TouchableEmojiCategoryView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TouchableEmojiCategoryView.swift; sourceTree = ""; }; - E5E992DC2023870B331007FFBD9F7037 /* EmojiModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiModel.swift; sourceTree = ""; }; - E9F24DBCF6F0550D030B4C3D551582CA /* EmojiPickerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerView.swift; sourceTree = ""; }; - EAE8A9A3BD2AC0691A4FA7412F1D1AA1 /* UIColor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UIColor.swift; sourceTree = ""; }; - EED738CE1F77A8FAF29FC4D62D570A40 /* EmojiPicker-Unit-Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "EmojiPicker-Unit-Tests-frameworks.sh"; sourceTree = ""; }; - F0CF7937297FEFE20010E579 /* EmojiManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiManager.swift; sourceTree = ""; }; - F3341FC4705848603C63825CB130C9F2 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = fr.lproj/Localizable.strings; sourceTree = ""; }; - F7C949D5B235EBC3DC153DC8F58648D5 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + DCD95B2285CDF4D99BF296BA8E4349EB /* 13.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 13.json; sourceTree = ""; }; + DF49622FC2DE4146473AEC56B81EEDBE /* UIView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UIView.swift; sourceTree = ""; }; + E48244AAE4FF8A9F8B47C06FA1E34F18 /* EmojiPickerViewModelTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EmojiPickerViewModelTests.swift; path = Tests/EmojiPickerTests/EmojiPickerViewModelTests.swift; sourceTree = ""; }; + E70656411071DE48F4279E83C2B49F6F /* EmojiPicker-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EmojiPicker-umbrella.h"; sourceTree = ""; }; + EE2E37741C76BFE73FD65AA92437F6AA /* Observable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Observable.swift; sourceTree = ""; }; + EE7D172ED2C44C975EF2008B447ED876 /* EmojiPicker.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = EmojiPicker.release.xcconfig; sourceTree = ""; }; + F08C80782981B7D100634E30 /* EmojiSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiSet.swift; sourceTree = ""; }; + F08C807A2981B7DD00634E30 /* Category.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Category.swift; sourceTree = ""; }; + F08C807C2981B7E800634E30 /* Skin.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Skin.swift; sourceTree = ""; }; + F27EA14C2F968DBE0EED600DF3AC50FB /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = hi.lproj/Localizable.strings; sourceTree = ""; }; + F2D5E0D349158FFD1DD20517789E596F /* 12.1.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 12.1.json; sourceTree = ""; }; + F3C64A47195AE0884592DA8792EE4A6B /* EmojiPicker.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; path = EmojiPicker.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + F6B406ADCC24BF6EAC709ED45F73B0C8 /* TouchableEmojiCategoryView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TouchableEmojiCategoryView.swift; sourceTree = ""; }; + F765D8DD8E46AE233031215729CBAE57 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = ru.lproj/Localizable.strings; sourceTree = ""; }; FEC6B8950F4C546111DE3F93FECA20B5 /* Pods-EmojiPicker_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-EmojiPicker_Example-acknowledgements.markdown"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 6E148645871B5A4210BCE7974D23B754 /* Frameworks */ = { + 27EA65D4318478F7702F20E89BD8277B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D91BCB0307A04B7B2004F0E27DB3FFE2 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -163,40 +174,41 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - BBC97E08E152FA4992E2280BAC657E4E /* Frameworks */ = { + CC05765125F8057E32CE235D7A08ECF7 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 7AD411BFDBD6A713CE09B1E0E825F163 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - CC05765125F8057E32CE235D7A08ECF7 /* Frameworks */ = { + F871EAD594A17860D5F629930B699C58 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 7AD411BFDBD6A713CE09B1E0E825F163 /* Foundation.framework in Frameworks */, + 280AC1D6D6D3B6459F875BD92F7BFC7B /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 04FF44F68568D8D733EAC8F3296BFBE0 /* EmojiPicker */ = { + 0D71D1597D5590C2F9E94B142D15A086 /* Services */ = { isa = PBXGroup; children = ( - 64419415CDA96521795EE04B76FC6365 /* Localizable.strings */, - 3A3DCB3FFC40FB1BA240A19AAAFFE539 /* Bindings */, - 9994306D9E40C71C1E853A86977C872C /* Extensions */, - 45DB1AFDEBA7AEE27765E0C0A3069F81 /* Models */, - 9F538CC576EECA4BDCD6D8AADAD1F06D /* Pod */, - 620199C11DD011FD36EB96CA289EE8CD /* Services */, - A873C2E96AC9586872077D139D5B36AC /* Support Files */, - 9DF6908535E52EB04399357CF47E10A2 /* Tests */, - 617DEA09DFA2EA682126F87EF1A7FB63 /* ViewModel */, - 65BF589E0C10E8858ED7562A8F44272D /* Views */, + 907B1D56EEF86A46BFF5B9C4D4D47D22 /* EmojiManager.swift */, ); - name = EmojiPicker; - path = ../..; + name = Services; + path = Sources/EmojiPicker/Services; + sourceTree = ""; + }; + 16B960040405E29EBC7F0405007310B5 /* UIKit */ = { + isa = PBXGroup; + children = ( + 7F992F256D5E5DFE5DEC61D79FDCB66F /* UIColor.swift */, + DF49622FC2DE4146473AEC56B81EEDBE /* UIView.swift */, + ); + path = UIKit; sourceTree = ""; }; 1A1160E78863D1B69A568D78ED779947 /* Products */ = { @@ -210,33 +222,69 @@ name = Products; sourceTree = ""; }; - 2BF2803935B486149A4140C5FF41948F /* Foundation */ = { + 28F0AF36EB28CB2736AB4E67A0718278 /* EmojiPicker */ = { isa = PBXGroup; children = ( - 7F335CBEC444F6A0D2A28621CF7B57A6 /* Array.swift */, - D1418654D8630703882702745BCA2B62 /* Bundle.swift */, + 8CB54F1D771D78412A76423CCCFD1821 /* Bindings */, + 6E13150E13286B15D1B17145634B7C2C /* Data */, + 99710A01B7E4285FEFD043422F9E4FA5 /* Extensions */, + B06DED34DF6964ADF0B7A86DDCCBCB68 /* Localization */, + A0D8C9E08684A03B81293438CBF8588A /* Models */, + 9876F23F0FB21613FAFA63D1A4BBCEC3 /* Pod */, + 0D71D1597D5590C2F9E94B142D15A086 /* Services */, + 398526AF8BF04475BC119BE105D9993D /* Support Files */, + 42B680A40C377D427B9C2856AA53B8D8 /* Tests */, + AB497BB1E1BBDBA333F9BC2981B6A328 /* ViewModel */, + BB781FEBA84DB29587C1985D83C84843 /* Views */, + ); + name = EmojiPicker; + path = ../..; + sourceTree = ""; + }; + 31BFACE674FB43EFE7B54A66F07AD186 /* Foundation */ = { + isa = PBXGroup; + children = ( + 6212C4D105F1104E02721146F54CDFBA /* Array.swift */, + 7582C2190BAFE180228F25FDE781A8FE /* Bundle.swift */, ); path = Foundation; sourceTree = ""; }; - 3A3DCB3FFC40FB1BA240A19AAAFFE539 /* Bindings */ = { + 398526AF8BF04475BC119BE105D9993D /* Support Files */ = { isa = PBXGroup; children = ( - 523BD44A75978169B773A4BDD72E0C47 /* Observable.swift */, + 3FE4A3FEFD10B23603166704EF2A70E7 /* EmojiPicker.modulemap */, + D90A7FDCE48F328BF2508160BFB2D016 /* EmojiPicker-dummy.m */, + 37FB6528DBDAE7D16F3B1D8ABD32F653 /* EmojiPicker-Info.plist */, + 1DB8439774A04631978ACC9901DE195D /* EmojiPicker-prefix.pch */, + E70656411071DE48F4279E83C2B49F6F /* EmojiPicker-umbrella.h */, + 530BE4B1F73E8A09FB0D9385551CB810 /* EmojiPicker-Unit-Tests-frameworks.sh */, + C03DB8D5A854C8C07DE8D3D7AA4401ED /* EmojiPicker-Unit-Tests-Info.plist */, + 7EF526047D35D91416BA58DEBAE7E8BF /* EmojiPicker-Unit-Tests-prefix.pch */, + A38D5DFD9D99E33CC0B0EB5B96C34ABB /* EmojiPicker-Unit-Tests-resources.sh */, + 44E1999FFFD89E8CD1820B2B48915806 /* EmojiPicker.debug.xcconfig */, + EE7D172ED2C44C975EF2008B447ED876 /* EmojiPicker.release.xcconfig */, + 434016F65810EC8B967AE9D9C3555AB9 /* EmojiPicker.unit-tests.debug.xcconfig */, + 4F0E261765733138900691A2A0EBC94B /* EmojiPicker.unit-tests.release.xcconfig */, + 8B90A21DEEFF2F461FD2E94DCBC80817 /* ResourceBundle-Resources-EmojiPicker-Info.plist */, ); - name = Bindings; - path = Sources/EmojiPicker/Bindings; + name = "Support Files"; + path = "Example App/Pods/Target Support Files/EmojiPicker"; sourceTree = ""; }; - 45DB1AFDEBA7AEE27765E0C0A3069F81 /* Models */ = { + 42B680A40C377D427B9C2856AA53B8D8 /* Tests */ = { isa = PBXGroup; children = ( - 27C541E6B50961B2EC2CB9361BA1BFD4 /* Emoji.swift */, - E5E992DC2023870B331007FFBD9F7037 /* EmojiModel.swift */, - 160AEB39043CAA7082F679808AB083C2 /* PickerArrowDirectionMode.swift */, + 9DA1561688A001CA1B9E6CFEFD015092 /* ArrayExtensionTests.swift */, + D3443B263837A45DEFDD8C8C9F4F5C54 /* EmojiCategoryTypeTests.swift */, + E48244AAE4FF8A9F8B47C06FA1E34F18 /* EmojiPickerViewModelTests.swift */, + BBE05E23BB1406387B8BC2EB5A4F6CF7 /* ObservableTests.swift */, + 90B315A6CD78D4A3B8D8CC0ED53DF4D3 /* PickerArrowDirectionModeTests.swift */, + 903FE5FB0EA9B07D691DF634ABC63A9B /* UnicodeManagerTests.swift */, + EF6CDD8CC6D0BB1CC45E6E2736B93F8F /* Mocks */, + 9A3FD4045EEC5F1BCEA8DA0EB1B0EBA9 /* Stubs */, ); - name = Models; - path = Sources/EmojiPicker/Models; + name = Tests; sourceTree = ""; }; 578452D2E740E91742655AC8F1636D1F /* iOS */ = { @@ -247,78 +295,78 @@ name = iOS; sourceTree = ""; }; - 617DEA09DFA2EA682126F87EF1A7FB63 /* ViewModel */ = { + 6E13150E13286B15D1B17145634B7C2C /* Data */ = { isa = PBXGroup; children = ( - 918868922A374845C720D710866878F8 /* EmojiPickerViewModel.swift */, + 03CF0F5AF189C54218CD413FA6013B48 /* 1.json */, + 1F33C9D75C9B8F1A39428BD85E649B2D /* 11.json */, + 7722AC2BA4786E96192A727139C56378 /* 12.json */, + F2D5E0D349158FFD1DD20517789E596F /* 12.1.json */, + DCD95B2285CDF4D99BF296BA8E4349EB /* 13.json */, + 0FD7827F050C421AE77FDCB651582ECB /* 13.1.json */, + 2E62F37B06E64232A49BAA17099B3EF2 /* 14.json */, + 04FF92E92EEC4FDA4596BD0004577A36 /* 2.json */, + 3A91B05AFF733F0E899A05C79B76EEF9 /* 3.json */, + BA994DA65C123AF37FA8279509B535AE /* 4.json */, + C46E2363E33E965489D5A57B23D93595 /* 5.json */, ); - name = ViewModel; - path = Sources/EmojiPicker/ViewModel; + name = Data; + path = Sources/EmojiPicker/Resources/Data; sourceTree = ""; }; - 620199C11DD011FD36EB96CA289EE8CD /* Services */ = { + 740EB83D2347C1A14DF43832629F0CBA /* EmojiCategoryView */ = { isa = PBXGroup; children = ( - A6A85F09445CC9CE651ECB0E365B68BC /* UnicodeManager.swift */, - 903DF89ADB7C53D5D3D945137B49E770 /* Unicode */, - F0CF7937297FEFE20010E579 /* EmojiManager.swift */, + 8879BDC3EB41DC795A9B8BE8EA282B75 /* EmojiCategoryIconView.swift */, + F6B406ADCC24BF6EAC709ED45F73B0C8 /* TouchableEmojiCategoryView.swift */, ); - name = Services; - path = Sources/EmojiPicker/Services; + path = EmojiCategoryView; sourceTree = ""; }; - 65BF589E0C10E8858ED7562A8F44272D /* Views */ = { + 81734294209AC4804EF8F7483F2A4AC9 /* Development Pods */ = { isa = PBXGroup; children = ( - D2B917FB8642D6399342C991329C30E7 /* EmojiCollectionViewCell.swift */, - 7960CDBD1686B14B4408A7ADB086667C /* EmojiCollectionViewHeader.swift */, - E9F24DBCF6F0550D030B4C3D551582CA /* EmojiPickerView.swift */, - B15F9E69D9C0DBBCE516818B65EA339F /* EmojiPickerViewController.swift */, - 69BF1196CE254D037F2CF7A4D52EF6A0 /* EmojiCategoryView */, + 28F0AF36EB28CB2736AB4E67A0718278 /* EmojiPicker */, ); - name = Views; - path = Sources/EmojiPicker/Views; + name = "Development Pods"; sourceTree = ""; }; - 69BF1196CE254D037F2CF7A4D52EF6A0 /* EmojiCategoryView */ = { + 8CB54F1D771D78412A76423CCCFD1821 /* Bindings */ = { isa = PBXGroup; children = ( - 45B8AA4D0270F9AA11FF0CEF1AA6B8CA /* EmojiCategoryIconView.swift */, - E56562F9310DB0C24639B72D2EF0A86B /* TouchableEmojiCategoryView.swift */, + EE2E37741C76BFE73FD65AA92437F6AA /* Observable.swift */, ); - path = EmojiCategoryView; + name = Bindings; + path = Sources/EmojiPicker/Bindings; sourceTree = ""; }; - 9027675E7D8EA8BD6544DCF2BA34545B /* Stubs */ = { + 9876F23F0FB21613FAFA63D1A4BBCEC3 /* Pod */ = { isa = PBXGroup; children = ( - 4E90BBD485E5BFEECF8CCD41E0D3CC36 /* UnicodeManagerStub.swift */, + F3C64A47195AE0884592DA8792EE4A6B /* EmojiPicker.podspec */, + 01BF62AD9E1F740437F682BD38F572C0 /* LICENSE */, + 4AF011DA7226E834F1B698924076958F /* README.md */, ); - name = Stubs; - path = Tests/EmojiPickerTests/Stubs; + name = Pod; sourceTree = ""; }; - 903DF89ADB7C53D5D3D945137B49E770 /* Unicode */ = { + 99710A01B7E4285FEFD043422F9E4FA5 /* Extensions */ = { isa = PBXGroup; children = ( - 5927B450F01053A947A9A943D38BE188 /* Unicode 11.swift */, - 1651D5E1F63F1A7FDA413D4BC32064A6 /* Unicode 12.swift */, - 544BC75A3D6613DE7D1079DA1926BBB0 /* Unicode 13.swift */, - BCDB43B8F3ED5B3832525B8CCAC0A77B /* Unicode 13v1.swift */, - D7495A79357F0232B6BAFA7853E96317 /* Unicode 14.swift */, - 27BA0099B167BF4A8FE35A7351F8B1F6 /* Unicode 5.swift */, - ); - path = Unicode; + 31BFACE674FB43EFE7B54A66F07AD186 /* Foundation */, + 16B960040405E29EBC7F0405007310B5 /* UIKit */, + ); + name = Extensions; + path = Sources/EmojiPicker/Extensions; sourceTree = ""; }; - 9994306D9E40C71C1E853A86977C872C /* Extensions */ = { + 9A3FD4045EEC5F1BCEA8DA0EB1B0EBA9 /* Stubs */ = { isa = PBXGroup; children = ( - 2BF2803935B486149A4140C5FF41948F /* Foundation */, - AD409819A0BF13886617A6133008FA15 /* UIKit */, + A085A2016956196B512B164523C43D02 /* UnicodeManagerStub.swift */, ); - name = Extensions; - path = Sources/EmojiPicker/Extensions; + name = Stubs; + path = Tests/EmojiPickerTests/Stubs; sourceTree = ""; }; 9C32D27DB1D98426BBBC981D1B6F827E /* Pods-EmojiPicker_Example */ = { @@ -338,84 +386,55 @@ path = "Target Support Files/Pods-EmojiPicker_Example"; sourceTree = ""; }; - 9DF6908535E52EB04399357CF47E10A2 /* Tests */ = { + A0D8C9E08684A03B81293438CBF8588A /* Models */ = { isa = PBXGroup; children = ( - 1C116CD470552E111ABE36E09C8F1391 /* ArrayExtensionTests.swift */, - 9744B878529AD715D707FDEC0983A59B /* EmojiCategoryTypeTests.swift */, - 457E224B7794AAF5B2A679976F7A65A5 /* EmojiPickerViewModelTests.swift */, - 22BDD97A0F67496204CDD6BA56B1A409 /* ObservableTests.swift */, - 828F7C8D328D920E764B2A9173DEE675 /* PickerArrowDirectionModeTests.swift */, - 20BA558003DB7F10190032FF2AF7BAAE /* UnicodeManagerTests.swift */, - C9EF5D26A67FB1D6A830F1BC167F39F5 /* Mocks */, - 9027675E7D8EA8BD6544DCF2BA34545B /* Stubs */, + 240D4E00A0AAE4CD98BB978B9B2C917F /* Emoji.swift */, + 5751A5786A931EC7567038A088455519 /* PickerArrowDirectionMode.swift */, + F08C80782981B7D100634E30 /* EmojiSet.swift */, + F08C807A2981B7DD00634E30 /* Category.swift */, + F08C807C2981B7E800634E30 /* Skin.swift */, ); - name = Tests; - sourceTree = ""; - }; - 9F538CC576EECA4BDCD6D8AADAD1F06D /* Pod */ = { - isa = PBXGroup; - children = ( - 4E95F4BC1FB3C6D7DCB016C6D828B763 /* EmojiPicker.podspec */, - 50A87FBAE3B60D95BF4B1CA78057F413 /* LICENSE */, - F7C949D5B235EBC3DC153DC8F58648D5 /* README.md */, - ); - name = Pod; - sourceTree = ""; - }; - A7AE53BAD693FE7E4502EC70F2F73BB2 /* Development Pods */ = { - isa = PBXGroup; - children = ( - 04FF44F68568D8D733EAC8F3296BFBE0 /* EmojiPicker */, - ); - name = "Development Pods"; + name = Models; + path = Sources/EmojiPicker/Models; sourceTree = ""; }; - A873C2E96AC9586872077D139D5B36AC /* Support Files */ = { + AB497BB1E1BBDBA333F9BC2981B6A328 /* ViewModel */ = { isa = PBXGroup; children = ( - D72963D71BAD2D212647932191FA4EC3 /* EmojiPicker.modulemap */, - 055783EC01393DAD74D6924B0A1172EF /* EmojiPicker-dummy.m */, - A2E4283D315A47466A582C80029BD286 /* EmojiPicker-Info.plist */, - B44D1CC98D564A576739DA92873BDFBA /* EmojiPicker-prefix.pch */, - D3EF5B78E8274CABC70058AAB2BB5DCA /* EmojiPicker-umbrella.h */, - EED738CE1F77A8FAF29FC4D62D570A40 /* EmojiPicker-Unit-Tests-frameworks.sh */, - 44F1560E478EE68DC9DF4D9532F557AC /* EmojiPicker-Unit-Tests-Info.plist */, - 2E45C9D721F57E954CF47102EF52FD2D /* EmojiPicker-Unit-Tests-prefix.pch */, - 3AFC0F36F89485AE8CD046F33287618E /* EmojiPicker-Unit-Tests-resources.sh */, - C276690BF444B716F6A0663B7507A7A3 /* EmojiPicker.debug.xcconfig */, - 0183F38D78E1C2EFC6321B8CC252150D /* EmojiPicker.release.xcconfig */, - 83CBEB4E884D5C164543FDE049E40A04 /* EmojiPicker.unit-tests.debug.xcconfig */, - 416B0779F7AA40BD8EEECEF13B84372D /* EmojiPicker.unit-tests.release.xcconfig */, - 4D154DBCA421C9219651F87B0FA3EE61 /* ResourceBundle-Resources-EmojiPicker-Info.plist */, + 63D5BCB7166B7E7B18957D3425129C8B /* EmojiPickerViewModel.swift */, ); - name = "Support Files"; - path = "Example App/Pods/Target Support Files/EmojiPicker"; + name = ViewModel; + path = Sources/EmojiPicker/ViewModel; sourceTree = ""; }; - AD409819A0BF13886617A6133008FA15 /* UIKit */ = { + B06DED34DF6964ADF0B7A86DDCCBCB68 /* Localization */ = { isa = PBXGroup; children = ( - EAE8A9A3BD2AC0691A4FA7412F1D1AA1 /* UIColor.swift */, - DFB27685A9A0F2E4084AFEBBE363F6F6 /* UIView.swift */, + 82824E96D94B60DFCCC919CA9357D85F /* Localizable.strings */, ); - path = UIKit; + name = Localization; + path = Sources/EmojiPicker/Resources/Localization; sourceTree = ""; }; - C9EF5D26A67FB1D6A830F1BC167F39F5 /* Mocks */ = { + BB781FEBA84DB29587C1985D83C84843 /* Views */ = { isa = PBXGroup; children = ( - A0B2D6CA003DFD74AD698CEA421FE59B /* EmojiPickerDelegateMock.swift */, + B7C5B458D7C95530B40DD2CC2261B7EC /* EmojiCollectionViewCell.swift */, + 8889F3A0D04B56F6EC71D4C6C3A21BD4 /* EmojiCollectionViewHeader.swift */, + 55989551A6AB676670767CB875552F35 /* EmojiPickerView.swift */, + B1F5DE01D9F18FAC7C6BB661A63AD74A /* EmojiPickerViewController.swift */, + 740EB83D2347C1A14DF43832629F0CBA /* EmojiCategoryView */, ); - name = Mocks; - path = Tests/EmojiPickerTests/Mocks; + name = Views; + path = Sources/EmojiPicker/Views; sourceTree = ""; }; CF1408CF629C7361332E53B88F7BD30C = { isa = PBXGroup; children = ( 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, - A7AE53BAD693FE7E4502EC70F2F73BB2 /* Development Pods */, + 81734294209AC4804EF8F7483F2A4AC9 /* Development Pods */, D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */, 1A1160E78863D1B69A568D78ED779947 /* Products */, F335215D4D5B81982E7F065C8F829E1C /* Targets Support Files */, @@ -430,6 +449,15 @@ name = Frameworks; sourceTree = ""; }; + EF6CDD8CC6D0BB1CC45E6E2736B93F8F /* Mocks */ = { + isa = PBXGroup; + children = ( + 124C5A4FDD8EABCF4D66E9C363750239 /* EmojiPickerDelegateMock.swift */, + ); + name = Mocks; + path = Tests/EmojiPickerTests/Mocks; + sourceTree = ""; + }; F335215D4D5B81982E7F065C8F829E1C /* Targets Support Files */ = { isa = PBXGroup; children = ( @@ -441,11 +469,11 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 1C339F86DF70577831A0F7511C3BCD14 /* Headers */ = { + 0A00FC7E29EB8CAAE8A159930AABFAE3 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - D2C6FAE1EF2D7F5D45D1D35BE6B2E805 /* EmojiPicker-umbrella.h in Headers */, + 47CAFAD474405966D4BC34DD0E1224DC /* EmojiPicker-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -462,11 +490,11 @@ /* Begin PBXNativeTarget section */ 3DA7DB1A9F7F32C07F0F0F8CD7CCD936 /* EmojiPicker-Resources */ = { isa = PBXNativeTarget; - buildConfigurationList = 306582DAAC64C3FC3C4F5FF0D0CC8C29 /* Build configuration list for PBXNativeTarget "EmojiPicker-Resources" */; + buildConfigurationList = 7947C17D473D20586473E850E178C668 /* Build configuration list for PBXNativeTarget "EmojiPicker-Resources" */; buildPhases = ( - 87AE5C5A56C56A3387CE7C0A36ABE22E /* Sources */, - BBC97E08E152FA4992E2280BAC657E4E /* Frameworks */, - 5F0CA264F40D94611621C354D8541A09 /* Resources */, + 92D5B10E65EFEE5BEC1C1BEF28B986FD /* Sources */, + 27EA65D4318478F7702F20E89BD8277B /* Frameworks */, + B3A286CFD1CBBB2F2DDEE28CA9951ED5 /* Resources */, ); buildRules = ( ); @@ -479,17 +507,17 @@ }; 74B1BE29E8F4437DC0A1829FA5157AE0 /* EmojiPicker */ = { isa = PBXNativeTarget; - buildConfigurationList = E30A9DAB2DA097E2690B8714EC08F219 /* Build configuration list for PBXNativeTarget "EmojiPicker" */; + buildConfigurationList = D0828FFC1F75C2C3306D25A5AF9EDB66 /* Build configuration list for PBXNativeTarget "EmojiPicker" */; buildPhases = ( - 1C339F86DF70577831A0F7511C3BCD14 /* Headers */, - 96E07DE5DFE47153B6C55FC3BCC56A1B /* Sources */, - 6E148645871B5A4210BCE7974D23B754 /* Frameworks */, - 751A046EC9E5935F36E667D2A8B00762 /* Resources */, + 0A00FC7E29EB8CAAE8A159930AABFAE3 /* Headers */, + 0E13AF159905796B0E237FF904D384EB /* Sources */, + F871EAD594A17860D5F629930B699C58 /* Frameworks */, + 090BA5235B74C113D42E83D4E0A74BE8 /* Resources */, ); buildRules = ( ); dependencies = ( - 89300F987CECB15BE4CDEF352DA23211 /* PBXTargetDependency */, + 12340FC0B635773DFAE542527B67BC58 /* PBXTargetDependency */, ); name = EmojiPicker; productName = EmojiPicker; @@ -508,7 +536,7 @@ buildRules = ( ); dependencies = ( - 2F924F27DE1469D66546B84749207B45 /* PBXTargetDependency */, + 8F35C905355F143406FC2872F6D28CE1 /* PBXTargetDependency */, ); name = "Pods-EmojiPicker_Example"; productName = Pods_EmojiPicker_Example; @@ -528,7 +556,7 @@ buildRules = ( ); dependencies = ( - 536B9A47F020960BC7EA53DBC12F0DD3 /* PBXTargetDependency */, + EE026EAB387BEDBC44F93832C9762603 /* PBXTargetDependency */, ); name = "EmojiPicker-Unit-Tests"; productName = "EmojiPicker-Unit-Tests"; @@ -572,26 +600,37 @@ /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 3A1EAA898A3CA7A89B81272E2EFC7D24 /* Resources */ = { + 090BA5235B74C113D42E83D4E0A74BE8 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 0CE561E14B8145B36CB977877CDF2D0D /* EmojiPicker-Resources in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 5F0CA264F40D94611621C354D8541A09 /* Resources */ = { + 3A1EAA898A3CA7A89B81272E2EFC7D24 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - C359947EDE9D753A5BC22DF047097F90 /* Localizable.strings in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 751A046EC9E5935F36E667D2A8B00762 /* Resources */ = { + B3A286CFD1CBBB2F2DDEE28CA9951ED5 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 31485DB446873BF9084A77773AACB9FB /* EmojiPicker-Resources in Resources */, + C9022C63FDCEECCA8BDD36C523E809E3 /* 1.json in Resources */, + 3EC9270CA83557592712F214B5C0A821 /* 11.json in Resources */, + FFDAB80B3AD4E8527344BFBA2E36DB7A /* 12.json in Resources */, + B045B4E84350FDFE9FD80A84483EE61A /* 12.1.json in Resources */, + BCDF8F7DBAF99753B3AC59C68D48B7C9 /* 13.json in Resources */, + 7D83F5C1835BAE71AF7D97A8D7BAA86D /* 13.1.json in Resources */, + 621CF41663DBD1E9D7FC9CF826C5D5E9 /* 14.json in Resources */, + DD84C1441302A82A407B2A06C8E2102A /* 2.json in Resources */, + 9A20E3A7C10CDF46109B92F331D4A56A /* 3.json in Resources */, + 72A53254B374FA721A5528FD8B9DAFB2 /* 4.json in Resources */, + 5127F1E1AB8B93077A8DDA2DAE589E59 /* 5.json in Resources */, + 22E96A696128D9F7DED2BD3D07A7830F /* Localizable.strings in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -644,18 +683,37 @@ /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 156B3AE09B8921C3DFBBE7E31DD735E8 /* Sources */ = { + 0E13AF159905796B0E237FF904D384EB /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 04631E91E77F1BDF6CD1C6FBC1E53AEA /* Pods-EmojiPicker_Example-dummy.m in Sources */, + 43207020ADD92B8D32FAC8F33B5CACFC /* Array.swift in Sources */, + F35B8843F9FE8DE3E104327AD0EF800E /* Bundle.swift in Sources */, + F08C807B2981B7DD00634E30 /* Category.swift in Sources */, + 932DE79107AF184DFC7BA2CFF2E28E0C /* Emoji.swift in Sources */, + F08C80792981B7D100634E30 /* EmojiSet.swift in Sources */, + 24E04A3A64F70E7653F0366287815057 /* EmojiCategoryIconView.swift in Sources */, + 30F9341A544B39EAA04F79E1FAE3B2DB /* EmojiCollectionViewCell.swift in Sources */, + 8689D7DBBA3B233581245AAF6DF5678D /* EmojiCollectionViewHeader.swift in Sources */, + 5F1EE0505CBBBCF21044D00AF4799804 /* EmojiManager.swift in Sources */, + 323D83ECBD008CEA1B50D539A7740D1C /* EmojiPicker-dummy.m in Sources */, + C450FF14C56765B86DC2D13CBAC3ED9A /* EmojiPickerView.swift in Sources */, + 01CE18135A0681E4396EBDB362ACE617 /* EmojiPickerViewController.swift in Sources */, + E9AB107B73CD1C08CDA6859CABE82CCC /* EmojiPickerViewModel.swift in Sources */, + F08C807D2981B7E800634E30 /* Skin.swift in Sources */, + 550D935013808A6499E6DCEFD5FE5042 /* Observable.swift in Sources */, + 700F13DEED178BAF6B299765FD6A5378 /* PickerArrowDirectionMode.swift in Sources */, + CA822EC10BF06D5A3B39D61185136B3A /* TouchableEmojiCategoryView.swift in Sources */, + 5553ED817614810334EE62F20D64BD0F /* UIColor.swift in Sources */, + 31C46961416CC20E4FEA133CF9CFC302 /* UIView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 87AE5C5A56C56A3387CE7C0A36ABE22E /* Sources */ = { + 156B3AE09B8921C3DFBBE7E31DD735E8 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 04631E91E77F1BDF6CD1C6FBC1E53AEA /* Pods-EmojiPicker_Example-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -674,74 +732,50 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 96E07DE5DFE47153B6C55FC3BCC56A1B /* Sources */ = { + 92D5B10E65EFEE5BEC1C1BEF28B986FD /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 2900054B72429C7FBCEA19AA18E1245A /* Array.swift in Sources */, - 10988D1233EC133ADAA4EDD869F9E85E /* Bundle.swift in Sources */, - 48115D63F074D8321B1CD55AF3F0CBDC /* Emoji.swift in Sources */, - 07460DCA713DF741DCDDA1D1A9EB2155 /* EmojiCategoryIconView.swift in Sources */, - F0CF7938297FEFE20010E579 /* EmojiManager.swift in Sources */, - AC3840CA9BD94BE0E6AD1C8A7D462121 /* EmojiCollectionViewCell.swift in Sources */, - 3E49992F0C8C05FEB42145D1B83C3678 /* EmojiCollectionViewHeader.swift in Sources */, - 93B6F9FA461FD4FEE91B16F94D01395A /* EmojiModel.swift in Sources */, - 13922737909DED6F90905E68CA662E7D /* EmojiPicker-dummy.m in Sources */, - 5447F0380E430D516078629EF9AB0DC4 /* EmojiPickerView.swift in Sources */, - 3876EC5219DBCE2DBFEC79050FA5A2D7 /* EmojiPickerViewController.swift in Sources */, - 969A75B86B918BF315292176E661F8FF /* EmojiPickerViewModel.swift in Sources */, - BB53EA985BF26460E6F4A14A801A2843 /* Observable.swift in Sources */, - F666BE25B4BDFD925B1ECEED0F81AE48 /* PickerArrowDirectionMode.swift in Sources */, - CA02875C88A58F1C813CA065184CF23C /* TouchableEmojiCategoryView.swift in Sources */, - 5113F9673082E7CB68B6CB19258D7FF9 /* UIColor.swift in Sources */, - EE4E445F437B7664AF52A2D6B32F0B7B /* UIView.swift in Sources */, - A4FDEBAA024E04C9A346FA39CF542B5C /* Unicode 11.swift in Sources */, - DC164E01556BCC9260FDD17F0B9AAD3F /* Unicode 12.swift in Sources */, - 3C2E92340EC180798EA4F4EA47D0106B /* Unicode 13.swift in Sources */, - D69CA1784335CE59A3FD6A10F220F3AB /* Unicode 13v1.swift in Sources */, - 82A756D60AADC295BE0C28979DAC7FE9 /* Unicode 14.swift in Sources */, - 66323AF74D3A350E4D000A326C86410D /* Unicode 5.swift in Sources */, - 659188B40335E3EA58F55D8F7F78FEEA /* UnicodeManager.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 2F924F27DE1469D66546B84749207B45 /* PBXTargetDependency */ = { + 12340FC0B635773DFAE542527B67BC58 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EmojiPicker; - target = 74B1BE29E8F4437DC0A1829FA5157AE0 /* EmojiPicker */; - targetProxy = FDD7A739B6DD4BC31E6C35C56F8FF166 /* PBXContainerItemProxy */; + name = "EmojiPicker-Resources"; + target = 3DA7DB1A9F7F32C07F0F0F8CD7CCD936 /* EmojiPicker-Resources */; + targetProxy = F503495051C6BD29DA615E2D0BD6F785 /* PBXContainerItemProxy */; }; - 536B9A47F020960BC7EA53DBC12F0DD3 /* PBXTargetDependency */ = { + 8F35C905355F143406FC2872F6D28CE1 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = EmojiPicker; target = 74B1BE29E8F4437DC0A1829FA5157AE0 /* EmojiPicker */; - targetProxy = 5F9FEB22C04146354A40EB098DDB93B6 /* PBXContainerItemProxy */; + targetProxy = DB0DF625F433896F640FB53EA8A11975 /* PBXContainerItemProxy */; }; - 89300F987CECB15BE4CDEF352DA23211 /* PBXTargetDependency */ = { + EE026EAB387BEDBC44F93832C9762603 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "EmojiPicker-Resources"; - target = 3DA7DB1A9F7F32C07F0F0F8CD7CCD936 /* EmojiPicker-Resources */; - targetProxy = D41E58B2D8A9CFAA13607D3D58510B3A /* PBXContainerItemProxy */; + name = EmojiPicker; + target = 74B1BE29E8F4437DC0A1829FA5157AE0 /* EmojiPicker */; + targetProxy = F2C685652BA1B40FD9C5295265812884 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ - 64419415CDA96521795EE04B76FC6365 /* Localizable.strings */ = { + 82824E96D94B60DFCCC919CA9357D85F /* Localizable.strings */ = { isa = PBXVariantGroup; children = ( - 1D791E351E9A140C637F92305902F420 /* Localizable.strings */, - 4DB43B865E0F05D2D64B2DE12B928679 /* Localizable.strings */, - F3341FC4705848603C63825CB130C9F2 /* Localizable.strings */, - 7A2EB27FECF4DC7703CF0193221999FC /* Localizable.strings */, - 7690EA9D5BB517DECCE242D6F63CBCBF /* Localizable.strings */, - 4E9A19FD3F78AD7EB75C9ABA787B51E7 /* Localizable.strings */, - 7D40D799C34FE562A70418783DDCD408 /* Localizable.strings */, + 05313DB19F1015F7062F82CEF48A0868 /* Localizable.strings */, + 5FEE9A6040A0AA7145ED613BC023AC0A /* Localizable.strings */, + 416AA4CAE6DAD3FEAC111D71D8B24146 /* Localizable.strings */, + F27EA14C2F968DBE0EED600DF3AC50FB /* Localizable.strings */, + F765D8DD8E46AE233031215729CBAE57 /* Localizable.strings */, + 3E9A64B82E30FC1A421C182E3CC275A7 /* Localizable.strings */, + 08DA8F4887EFE486D534712C71E8C5CA /* Localizable.strings */, ); name = Localizable.strings; - path = Sources/EmojiPicker/Resources/Localization; + path = .; sourceTree = ""; }; /* End PBXVariantGroup section */ @@ -749,7 +783,7 @@ /* Begin XCBuildConfiguration section */ 0DFE7CDB9BF57C6A9EE6D5E68FC2869E /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 83CBEB4E884D5C164543FDE049E40A04 /* EmojiPicker.unit-tests.debug.xcconfig */; + baseConfigurationReference = 434016F65810EC8B967AE9D9C3555AB9 /* EmojiPicker.unit-tests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ARCHS = "$(ARCHS_STANDARD_64_BIT)"; @@ -770,9 +804,9 @@ }; name = Debug; }; - 1101E2C31638494F88C857C79AD78A3F /* Debug */ = { + 0E878EC4529E111D861AB60EA5DBFC2E /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C276690BF444B716F6A0663B7507A7A3 /* EmojiPicker.debug.xcconfig */; + baseConfigurationReference = 44E1999FFFD89E8CD1820B2B48915806 /* EmojiPicker.debug.xcconfig */; buildSettings = { CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/EmojiPicker"; IBSC_MODULE = EmojiPicker; @@ -881,6 +915,39 @@ }; name = Debug; }; + 1D8AD9C2EBAA83051776D8220D9FD934 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = EE7D172ED2C44C975EF2008B447ED876 /* EmojiPicker.release.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/EmojiPicker/EmojiPicker-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/EmojiPicker/EmojiPicker-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 11.1; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/EmojiPicker/EmojiPicker.modulemap"; + PRODUCT_MODULE_NAME = EmojiPicker; + PRODUCT_NAME = EmojiPicker; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; 2FF1CABA2F393C5AC709D7FB7D5C2319 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -947,9 +1014,9 @@ }; name = Debug; }; - 4A9D228FEFE9D96A7623F598D75726D1 /* Release */ = { + 6FEFF25EF8461B3BFE16D0B87841AA2D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 0183F38D78E1C2EFC6321B8CC252150D /* EmojiPicker.release.xcconfig */; + baseConfigurationReference = 44E1999FFFD89E8CD1820B2B48915806 /* EmojiPicker.debug.xcconfig */; buildSettings = { ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_ENABLE_OBJC_WEAK = NO; @@ -974,11 +1041,10 @@ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 4.2; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; 906E4876162C8927A901DC959A099993 /* Release */ = { isa = XCBuildConfiguration; @@ -1017,7 +1083,7 @@ }; B982F2D28A86447894FB3628131272EA /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 416B0779F7AA40BD8EEECEF13B84372D /* EmojiPicker.unit-tests.release.xcconfig */; + baseConfigurationReference = 4F0E261765733138900691A2A0EBC94B /* EmojiPicker.unit-tests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ARCHS = "$(ARCHS_STANDARD_64_BIT)"; @@ -1039,9 +1105,9 @@ }; name = Release; }; - D948A3869E888272CC5EA82022383717 /* Release */ = { + E3E1A3BB263476D540C9BEBDA4AC6675 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 0183F38D78E1C2EFC6321B8CC252150D /* EmojiPicker.release.xcconfig */; + baseConfigurationReference = EE7D172ED2C44C975EF2008B447ED876 /* EmojiPicker.release.xcconfig */; buildSettings = { CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/EmojiPicker"; IBSC_MODULE = EmojiPicker; @@ -1055,38 +1121,6 @@ }; name = Release; }; - F34B7570FC0EFA36E95A13BD604FA0F7 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C276690BF444B716F6A0663B7507A7A3 /* EmojiPicker.debug.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/EmojiPicker/EmojiPicker-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/EmojiPicker/EmojiPicker-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 11.1; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/EmojiPicker/EmojiPicker.modulemap"; - PRODUCT_MODULE_NAME = EmojiPicker; - PRODUCT_NAME = EmojiPicker; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -1099,20 +1133,20 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 306582DAAC64C3FC3C4F5FF0D0CC8C29 /* Build configuration list for PBXNativeTarget "EmojiPicker-Resources" */ = { + 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - 1101E2C31638494F88C857C79AD78A3F /* Debug */, - D948A3869E888272CC5EA82022383717 /* Release */, + 2FF1CABA2F393C5AC709D7FB7D5C2319 /* Debug */, + 12E068767CF35B513130A458C3536CFB /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { + 7947C17D473D20586473E850E178C668 /* Build configuration list for PBXNativeTarget "EmojiPicker-Resources" */ = { isa = XCConfigurationList; buildConfigurations = ( - 2FF1CABA2F393C5AC709D7FB7D5C2319 /* Debug */, - 12E068767CF35B513130A458C3536CFB /* Release */, + 0E878EC4529E111D861AB60EA5DBFC2E /* Debug */, + E3E1A3BB263476D540C9BEBDA4AC6675 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -1126,11 +1160,11 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - E30A9DAB2DA097E2690B8714EC08F219 /* Build configuration list for PBXNativeTarget "EmojiPicker" */ = { + D0828FFC1F75C2C3306D25A5AF9EDB66 /* Build configuration list for PBXNativeTarget "EmojiPicker" */ = { isa = XCConfigurationList; buildConfigurations = ( - F34B7570FC0EFA36E95A13BD604FA0F7 /* Debug */, - 4A9D228FEFE9D96A7623F598D75726D1 /* Release */, + 6FEFF25EF8461B3BFE16D0B87841AA2D /* Debug */, + 1D8AD9C2EBAA83051776D8220D9FD934 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Sources/EmojiPicker/Extensions/Foundation/Bundle.swift b/Sources/EmojiPicker/Extensions/Foundation/Bundle.swift index 04c19cb..578b713 100644 --- a/Sources/EmojiPicker/Extensions/Foundation/Bundle.swift +++ b/Sources/EmojiPicker/Extensions/Foundation/Bundle.swift @@ -32,7 +32,7 @@ extension Bundle { - Note: It was named same as for Swift Package to simplify usage. */ static var module: Bundle { - let path = Bundle(for: UnicodeManager.self).path(forResource: "Resources", ofType: "bundle") ?? "" + let path = Bundle(for: EmojiManager.self).path(forResource: "Resources", ofType: "bundle") ?? "" return Bundle(path: path) ?? Bundle.main } } diff --git a/Sources/EmojiPicker/Models/EmojiModel.swift b/Sources/EmojiPicker/Models/Category.swift similarity index 84% rename from Sources/EmojiPicker/Models/EmojiModel.swift rename to Sources/EmojiPicker/Models/Category.swift index 6f1b962..67155a5 100644 --- a/Sources/EmojiPicker/Models/EmojiModel.swift +++ b/Sources/EmojiPicker/Models/Category.swift @@ -1,5 +1,5 @@ // The MIT License (MIT) -// Copyright © 2022 Ivan Izyumkin +// Copyright © 2022 Egor Badmaev // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal @@ -19,20 +19,19 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. +struct Category: Decodable { + let id: CategoryType + let emojis: [String] +} + /// Describes types of emoji categories. -enum EmojiCategoryType: Int { +enum CategoryType: String, Decodable, CaseIterable { case people case nature - case foodAndDrink + case foods case activity - case travelAndPlaces + case places case objects case symbols case flags } - -/// Describes emoji categories. -struct EmojiCategory { - let categoryName: String - let emojis: [[Int]] -} diff --git a/Sources/EmojiPicker/Models/Emoji.swift b/Sources/EmojiPicker/Models/Emoji.swift index 7d6220f..5cff403 100644 --- a/Sources/EmojiPicker/Models/Emoji.swift +++ b/Sources/EmojiPicker/Models/Emoji.swift @@ -19,22 +19,6 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. -struct EmojiSet: Decodable { - let categories: [Category] - let emojis: [String: Emoji] - let aliases: [String: String] - let sheet: Sheet -} - -// MARK: - Category - -struct Category: Decodable { - let id: String - let emojis: [String] -} - -// MARK: - Emoji - struct Emoji: Decodable { let id, name: String let keywords: [String] @@ -42,16 +26,3 @@ struct Emoji: Decodable { let version: Double let emoticons: [String]? } - -// MARK: - Skin - -struct Skin: Decodable { - let unified, native: String - let x, y: Int -} - -// MARK: - Sheet - -struct Sheet: Decodable { - let cols, rows: Int -} diff --git a/Sources/EmojiPicker/Models/EmojiSet.swift b/Sources/EmojiPicker/Models/EmojiSet.swift new file mode 100644 index 0000000..93d851c --- /dev/null +++ b/Sources/EmojiPicker/Models/EmojiSet.swift @@ -0,0 +1,26 @@ +// The MIT License (MIT) +// Copyright © 2022 Egor Badmaev +// +// 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. + +struct EmojiSet: Decodable { + let categories: [Category] + let emojis: [String: Emoji] + let aliases: [String: String] +} diff --git a/Sources/EmojiPicker/Models/Skin.swift b/Sources/EmojiPicker/Models/Skin.swift new file mode 100644 index 0000000..fa84b80 --- /dev/null +++ b/Sources/EmojiPicker/Models/Skin.swift @@ -0,0 +1,25 @@ +// The MIT License (MIT) +// Copyright © 2022 Egor Badmaev +// +// 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. + +struct Skin: Decodable { + let unified: String + let native: String +} diff --git a/Sources/EmojiPicker/Resources/Localization/de.lproj/Localizable.strings b/Sources/EmojiPicker/Resources/Localization/de.lproj/Localizable.strings index 96e2203..bdafc11 100644 --- a/Sources/EmojiPicker/Resources/Localization/de.lproj/Localizable.strings +++ b/Sources/EmojiPicker/Resources/Localization/de.lproj/Localizable.strings @@ -1,8 +1,8 @@ -"emotionsAndPeople" = "SMILEYS & MENSCHEN"; -"animalsAndNature" = "TIERE & NATUR"; -"foodAndDrinks" = "ESSEN und TRINKEN"; -"activities" = "AKTIVITÄT"; -"travellingAndPlaces" = "REISEN & ORTE"; +"people" = "SMILEYS & MENSCHEN"; +"nature" = "TIERE & NATUR"; +"foods" = "ESSEN und TRINKEN"; +"activity" = "AKTIVITÄT"; +"places" = "REISEN & ORTE"; "objects" = "OBJEKTE"; "symbols" = "SYMBOLE"; "flags" = "FLAGGEN"; diff --git a/Sources/EmojiPicker/Resources/Localization/en.lproj/Localizable.strings b/Sources/EmojiPicker/Resources/Localization/en.lproj/Localizable.strings index a61b9e9..da51d44 100644 --- a/Sources/EmojiPicker/Resources/Localization/en.lproj/Localizable.strings +++ b/Sources/EmojiPicker/Resources/Localization/en.lproj/Localizable.strings @@ -1,8 +1,8 @@ -"emotionsAndPeople" = "SMILEYS & PEOPLE"; -"animalsAndNature" = "ANIMALS & NATURE"; -"foodAndDrinks" = "FOOD & DRINK"; -"activities" = "ACTIVITY"; -"travellingAndPlaces" = "TRAVEL & PLACES"; +"people" = "SMILEYS & PEOPLE"; +"nature" = "ANIMALS & NATURE"; +"foods" = "FOOD & DRINK"; +"activity" = "ACTIVITY"; +"places" = "TRAVEL & PLACES"; "objects" = "OBJECTS"; "symbols" = "SYMBOLS"; "flags" = "FLAGS"; diff --git a/Sources/EmojiPicker/Resources/Localization/fr.lproj/Localizable.strings b/Sources/EmojiPicker/Resources/Localization/fr.lproj/Localizable.strings index 0271fb6..6de7444 100644 --- a/Sources/EmojiPicker/Resources/Localization/fr.lproj/Localizable.strings +++ b/Sources/EmojiPicker/Resources/Localization/fr.lproj/Localizable.strings @@ -1,8 +1,8 @@ -"emotionsAndPeople" = "SMILEYS ET PERSONNES"; -"animalsAndNature" = "ANIMAUX ET NATURE"; -"foodAndDrinks" = "NOURRITURE ET BOISSONS"; -"activities" = "ACTIVITÉ"; -"travellingAndPlaces" = "VOYAGES ET LIEUX"; +"people" = "SMILEYS ET PERSONNES"; +"nature" = "ANIMAUX ET NATURE"; +"foods" = "NOURRITURE ET BOISSONS"; +"activity" = "ACTIVITÉ"; +"places" = "VOYAGES ET LIEUX"; "objects" = "OBJETS"; "symbols" = "SYMBOLES"; "flags" = "DRAPEAUX"; diff --git a/Sources/EmojiPicker/Resources/Localization/hi.lproj/Localizable.strings b/Sources/EmojiPicker/Resources/Localization/hi.lproj/Localizable.strings index 9c5af3c..4b39c07 100644 --- a/Sources/EmojiPicker/Resources/Localization/hi.lproj/Localizable.strings +++ b/Sources/EmojiPicker/Resources/Localization/hi.lproj/Localizable.strings @@ -1,8 +1,8 @@ -"emotionsAndPeople" = "स्माइली और लोग"; -"animalsAndNature" = "पशु और प्रकृति"; -"foodAndDrinks" = "खाद्य और पेय"; -"activities" = "गतिविधि"; -"travellingAndPlaces" = "यात्रा और स्थान"; +"people" = "स्माइली और लोग"; +"nature" = "पशु और प्रकृति"; +"foods" = "खाद्य और पेय"; +"activity" = "गतिविधि"; +"places" = "यात्रा और स्थान"; "objects" = "ऑब्जेक्ट्स"; "symbols" = "प्रतीक"; "flags" = "झंडे"; diff --git a/Sources/EmojiPicker/Resources/Localization/ru.lproj/Localizable.strings b/Sources/EmojiPicker/Resources/Localization/ru.lproj/Localizable.strings index ddd5d56..77ffec8 100644 --- a/Sources/EmojiPicker/Resources/Localization/ru.lproj/Localizable.strings +++ b/Sources/EmojiPicker/Resources/Localization/ru.lproj/Localizable.strings @@ -1,8 +1,8 @@ -"emotionsAndPeople" = "СМАЙЛИКИ И ЛЮДИ"; -"animalsAndNature" = "ЖИВОТНЫЕ И ПРИРОДА"; -"foodAndDrinks" = "ЕДА И НАПИТКИ"; -"activities" = "АКТИВНОСТЬ"; -"travellingAndPlaces" = "ПУТЕШЕСТВИЯ И МЕСТНОСТИ"; +"people" = "СМАЙЛИКИ И ЛЮДИ"; +"nature" = "ЖИВОТНЫЕ И ПРИРОДА"; +"foods" = "ЕДА И НАПИТКИ"; +"activity" = "АКТИВНОСТЬ"; +"places" = "ПУТЕШЕСТВИЯ И МЕСТНОСТИ"; "objects" = "ПРЕДМЕТЫ"; "symbols" = "СИМВОЛЫ"; "flags" = "ФЛАГИ"; diff --git a/Sources/EmojiPicker/Resources/Localization/tr.lproj/Localizable.strings b/Sources/EmojiPicker/Resources/Localization/tr.lproj/Localizable.strings index d91f559..a4fb37b 100644 --- a/Sources/EmojiPicker/Resources/Localization/tr.lproj/Localizable.strings +++ b/Sources/EmojiPicker/Resources/Localization/tr.lproj/Localizable.strings @@ -1,8 +1,8 @@ -"emotionsAndPeople" = "YÜZ İFADELERİ & İNSANLAR"; -"animalsAndNature" = "HAYVANLAR & DOĞA"; -"foodAndDrinks" = "YİYECEK & İÇECEK"; -"activities" = "ETKİNLİK"; -"travellingAndPlaces" = "SEYAHET & YERLER"; +"people" = "YÜZ İFADELERİ & İNSANLAR"; +"nature" = "HAYVANLAR & DOĞA"; +"foods" = "YİYECEK & İÇECEK"; +"activity" = "ETKİNLİK"; +"places" = "SEYAHET & YERLER"; "objects" = "NESNELER"; "symbols" = "SEMBOLLER"; "flags" = "BAYRAKLAR"; diff --git a/Sources/EmojiPicker/Resources/Localization/uk.lproj/Localizable.strings b/Sources/EmojiPicker/Resources/Localization/uk.lproj/Localizable.strings index 1f3c612..3c2c76b 100644 --- a/Sources/EmojiPicker/Resources/Localization/uk.lproj/Localizable.strings +++ b/Sources/EmojiPicker/Resources/Localization/uk.lproj/Localizable.strings @@ -1,8 +1,8 @@ -"emotionsAndPeople" = "СМАЙЛИКИ Й ЛЮДИ"; -"animalsAndNature" = "ФЛОРА І ФАУНА"; -"foodAndDrinks" = "ЇЖА І НАПОЇ"; -"activities" = "АКТИВНІСТЬ"; -"travellingAndPlaces" = "ПОДОРОЖІ Й МІСЦЯ"; +"people" = "СМАЙЛИКИ Й ЛЮДИ"; +"nature" = "ФЛОРА І ФАУНА"; +"foods" = "ЇЖА І НАПОЇ"; +"activity" = "АКТИВНІСТЬ"; +"places" = "ПОДОРОЖІ Й МІСЦЯ"; "objects" = "ОБ'ЄКТИ"; "symbols" = "СИМВОЛИ"; "flags" = "ПРАПОРИ"; diff --git a/Sources/EmojiPicker/Services/EmojiManager.swift b/Sources/EmojiPicker/Services/EmojiManager.swift index dd8625a..075c52c 100644 --- a/Sources/EmojiPicker/Services/EmojiManager.swift +++ b/Sources/EmojiPicker/Services/EmojiManager.swift @@ -24,7 +24,7 @@ import UIKit.UIDevice protocol EmojiManagerProtocol { /// Operating System version of a device. - var currentVersion: Double { get } + var deviceVersion: Double { get } /// Gets version of iOS for current device. /// @@ -35,54 +35,58 @@ protocol EmojiManagerProtocol { /// The class is responsible for getting a relevant set of emojis for iOS version. final class EmojiManager: EmojiManagerProtocol { + // MARK: - Private + + private let decoder = JSONDecoder() + /// Version of emoji set. + /// + /// - Note: The value is `5` by default. + private var emojiVersion = "5" + // MARK: - Internal - var currentVersion: Double { + var deviceVersion: Double { return (UIDevice.current.systemVersion as NSString).doubleValue } func provideEmojis() -> EmojiSet { - switch currentVersion { + setEmojiVersion() + + guard let path = Bundle.module.path(forResource: emojiVersion, ofType: "json"), + let data = try? Data(contentsOf: URL(fileURLWithPath: path)) + else { + fatalError("Could not get data from \"\(emojiVersion).json\" file") + } + + guard let emojiSet = try? decoder.decode(EmojiSet.self, from: data) + else { + fatalError("Could not get emoji set from data: \(data)") + } + + return emojiSet + } + + // MARK: - Private Methods + + private func setEmojiVersion() { + switch deviceVersion { case 12.1...13.1: - break + emojiVersion = "11" + case 13.2...14.1: - break + emojiVersion = "12" + case 14.2...14.4: - break + emojiVersion = "13" + case 14.5...15.3: - break + emojiVersion = "13.1" + case 15.4...: - break + emojiVersion = "14" + default: - break - } - return EmojiSet(categories: [], emojis: [:], aliases: [:], sheet: Sheet(cols: 0, rows: 0)) - } - - // MARK: - Private Methods - - /// Returns a localized name for the emoji category. - /// - /// - Parameter type: Emoji category type. - /// - Returns: Name of the category. - private func getEmojiCategoryTitle(for type: EmojiCategoryType) -> String { - switch type { - case .people: - return NSLocalizedString("emotionsAndPeople", bundle: .module, comment: "") - case .nature: - return NSLocalizedString("animalsAndNature", bundle: .module, comment: "") - case .foodAndDrink: - return NSLocalizedString("foodAndDrinks", bundle: .module, comment: "") - case .activity: - return NSLocalizedString("activities", bundle: .module, comment: "") - case .travelAndPlaces: - return NSLocalizedString("travellingAndPlaces", bundle: .module, comment: "") - case .objects: - return NSLocalizedString("objects", bundle: .module, comment: "") - case .symbols: - return NSLocalizedString("symbols", bundle: .module, comment: "") - case .flags: - return NSLocalizedString("flags", bundle: .module, comment: "") + emojiVersion = "5" } } } diff --git a/Sources/EmojiPicker/Services/Unicode/Unicode 11.swift b/Sources/EmojiPicker/Services/Unicode/Unicode 11.swift deleted file mode 100644 index 9d98922..0000000 --- a/Sources/EmojiPicker/Services/Unicode/Unicode 11.swift +++ /dev/null @@ -1,1713 +0,0 @@ -// The MIT License (MIT) -// Copyright © 2022 Ivan Izyumkin -// -// 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. - -import Foundation - -extension UnicodeManager { - var unicode11: [EmojiCategory] { - return [ - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .people), - emojis: [ - [0x1F600], - [0x1F601], - [0x1F602], - [0x1F923], - [0x1F603], - [0x1F604], - [0x1F605], - [0x1F606], - [0x1F609], - [0x1F60A], - [0x1F60B], - [0x1F60E], - [0x1F60D], - [0x1F618], - [0x1F970], - [0x1F617], - [0x1F619], - [0x1F61A], - [0x263A, 0xFE0F], - [0x1F642], - [0x1F917], - [0x1F929], - [0x1F914], - [0x1F928], - [0x1F610], - [0x1F611], - [0x1F636], - [0x1F644], - [0x1F60F], - [0x1F623], - [0x1F625], - [0x1F62E], - [0x1F910], - [0x1F62F], - [0x1F62A], - [0x1F62B], - [0x1F634], - [0x1F60C], - [0x1F61B], - [0x1F61C], - [0x1F61D], - [0x1F924], - [0x1F612], - [0x1F613], - [0x1F614], - [0x1F615], - [0x1F643], - [0x1F911], - [0x1F632], - [0x2639, 0xFE0F], - [0x1F641], - [0x1F616], - [0x1F61E], - [0x1F61F], - [0x1F624], - [0x1F622], - [0x1F62D], - [0x1F626], - [0x1F627], - [0x1F628], - [0x1F629], - [0x1F92F], - [0x1F62C], - [0x1F630], - [0x1F631], - [0x1F975], - [0x1F976], - [0x1F633], - [0x1F92A], - [0x1F635], - [0x1F621], - [0x1F620], - [0x1F92C], - [0x1F637], - [0x1F912], - [0x1F915], - [0x1F922], - [0x1F92E], - [0x1F927], - [0x1F607], - [0x1F920], - [0x1F973], - [0x1F974], - [0x1F97A], - [0x1F925], - [0x1F92B], - [0x1F92D], - [0x1F9D0], - [0x1F913], - [0x1F608], - [0x1F47F], - [0x1F921], - [0x1F479], - [0x1F47A], - [0x1F480], - [0x2620, 0xFE0F], - [0x1F47B], - [0x1F47D], - [0x1F47E], - [0x1F916], - [0x1F4A9], - [0x1F63A], - [0x1F638], - [0x1F639], - [0x1F63B], - [0x1F63C], - [0x1F63D], - [0x1F640], - [0x1F63F], - [0x1F63E], - [0x1F648], - [0x1F649], - [0x1F64A], - [0x1F476], - [0x1F9D2], - [0x1F466], - [0x1F467], - [0x1F9D1], - [0x1F468], - [0x1F469], - [0x1F9D3], - [0x1F474], - [0x1F475], - [0x1F468, 0x200D, 0x2695, 0xFE0F], - [0x1F469, 0x200D, 0x2695, 0xFE0F], - [0x1F468, 0x200D, 0x1F393], - [0x1F469, 0x200D, 0x1F393], - [0x1F468, 0x200D, 0x1F3EB], - [0x1F469, 0x200D, 0x1F3EB], - [0x1F468, 0x200D, 0x2696, 0xFE0F], - [0x1F469, 0x200D, 0x2696, 0xFE0F], - [0x1F468, 0x200D, 0x1F33E], - [0x1F469, 0x200D, 0x1F33E], - [0x1F468, 0x200D, 0x1F373], - [0x1F469, 0x200D, 0x1F373], - [0x1F468, 0x200D, 0x1F527], - [0x1F469, 0x200D, 0x1F527], - [0x1F468, 0x200D, 0x1F3ED], - [0x1F469, 0x200D, 0x1F3ED], - [0x1F468, 0x200D, 0x1F4BC], - [0x1F469, 0x200D, 0x1F4BC], - [0x1F468, 0x200D, 0x1F52C], - [0x1F469, 0x200D, 0x1F52C], - [0x1F468, 0x200D, 0x1F4BB], - [0x1F469, 0x200D, 0x1F4BB], - [0x1F468, 0x200D, 0x1F3A4], - [0x1F469, 0x200D, 0x1F3A4], - [0x1F468, 0x200D, 0x1F3A8], - [0x1F469, 0x200D, 0x1F3A8], - [0x1F468, 0x200D, 0x2708, 0xFE0F], - [0x1F469, 0x200D, 0x2708, 0xFE0F], - [0x1F468, 0x200D, 0x1F680], - [0x1F469, 0x200D, 0x1F680], - [0x1F468, 0x200D, 0x1F692], - [0x1F469, 0x200D, 0x1F692], - [0x1F46E], - [0x1F46E, 0x200D, 0x2642, 0xFE0F], - [0x1F46E, 0x200D, 0x2640, 0xFE0F], - [0x1F575, 0xFE0F], - [0x1F575, 0xFE0F, 0x200D, 0x2642, 0xFE0F], - [0x1F575, 0xFE0F, 0x200D, 0x2640, 0xFE0F], - [0x1F482], - [0x1F482, 0x200D, 0x2642, 0xFE0F], - [0x1F482, 0x200D, 0x2640, 0xFE0F], - [0x1F477], - [0x1F477, 0x200D, 0x2642, 0xFE0F], - [0x1F477, 0x200D, 0x2640, 0xFE0F], - [0x1F934], - [0x1F478], - [0x1F473], - [0x1F473, 0x200D, 0x2642, 0xFE0F], - [0x1F473, 0x200D, 0x2640, 0xFE0F], - [0x1F472], - [0x1F9D5], - [0x1F9D4], - [0x1F471], - [0x1F471, 0x200D, 0x2642, 0xFE0F], - [0x1F471, 0x200D, 0x2640, 0xFE0F], - [0x1F468, 0x200D, 0x1F9B0], - [0x1F469, 0x200D, 0x1F9B0], - [0x1F468, 0x200D, 0x1F9B1], - [0x1F469, 0x200D, 0x1F9B1], - [0x1F468, 0x200D, 0x1F9B2], - [0x1F469, 0x200D, 0x1F9B2], - [0x1F468, 0x200D, 0x1F9B3], - [0x1F469, 0x200D, 0x1F9B3], - [0x1F935], - [0x1F470], - [0x1F930], - [0x1F931], - [0x1F47C], - [0x1F385], - [0x1F936], - [0x1F9B8], - [0x1F9B8, 0x200D, 0x2640, 0xFE0F], - [0x1F9B8, 0x200D, 0x2642, 0xFE0F], - [0x1F9B9], - [0x1F9B9, 0x200D, 0x2640, 0xFE0F], - [0x1F9B9, 0x200D, 0x2642, 0xFE0F], - [0x1F9D9], - [0x1F9D9, 0x200D, 0x2640, 0xFE0F], - [0x1F9D9, 0x200D, 0x2642, 0xFE0F], - [0x1F9DA], - [0x1F9DA, 0x200D, 0x2640, 0xFE0F], - [0x1F9DA, 0x200D, 0x2642, 0xFE0F], - [0x1F9DB], - [0x1F9DB, 0x200D, 0x2640, 0xFE0F], - [0x1F9DB, 0x200D, 0x2642, 0xFE0F], - [0x1F9DC], - [0x1F9DC, 0x200D, 0x2640, 0xFE0F], - [0x1F9DC, 0x200D, 0x2642, 0xFE0F], - [0x1F9DD], - [0x1F9DD, 0x200D, 0x2640, 0xFE0F], - [0x1F9DD, 0x200D, 0x2642, 0xFE0F], - [0x1F9DE], - [0x1F9DE, 0x200D, 0x2640, 0xFE0F], - [0x1F9DE, 0x200D, 0x2642, 0xFE0F], - [0x1F9DF], - [0x1F9DF, 0x200D, 0x2640, 0xFE0F], - [0x1F9DF, 0x200D, 0x2642, 0xFE0F], - [0x1F64D], - [0x1F64D, 0x200D, 0x2642, 0xFE0F], - [0x1F64D, 0x200D, 0x2640, 0xFE0F], - [0x1F64E], - [0x1F64E, 0x200D, 0x2642, 0xFE0F], - [0x1F64E, 0x200D, 0x2640, 0xFE0F], - [0x1F645], - [0x1F645, 0x200D, 0x2642, 0xFE0F], - [0x1F645, 0x200D, 0x2640, 0xFE0F], - [0x1F646], - [0x1F646, 0x200D, 0x2642, 0xFE0F], - [0x1F646, 0x200D, 0x2640, 0xFE0F], - [0x1F481], - [0x1F481, 0x200D, 0x2642, 0xFE0F], - [0x1F481, 0x200D, 0x2640, 0xFE0F], - [0x1F64B], - [0x1F64B, 0x200D, 0x2642, 0xFE0F], - [0x1F64B, 0x200D, 0x2640, 0xFE0F], - [0x1F647], - [0x1F647, 0x200D, 0x2642, 0xFE0F], - [0x1F647, 0x200D, 0x2640, 0xFE0F], - [0x1F926], - [0x1F926, 0x200D, 0x2642, 0xFE0F], - [0x1F926, 0x200D, 0x2640, 0xFE0F], - [0x1F937], - [0x1F937, 0x200D, 0x2642, 0xFE0F], - [0x1F937, 0x200D, 0x2640, 0xFE0F], - [0x1F486], - [0x1F486, 0x200D, 0x2642, 0xFE0F], - [0x1F486, 0x200D, 0x2640, 0xFE0F], - [0x1F487], - [0x1F487, 0x200D, 0x2642, 0xFE0F], - [0x1F487, 0x200D, 0x2640, 0xFE0F], - [0x1F6B6], - [0x1F6B6, 0x200D, 0x2642, 0xFE0F], - [0x1F6B6, 0x200D, 0x2640, 0xFE0F], - [0x1F3C3], - [0x1F3C3, 0x200D, 0x2642, 0xFE0F], - [0x1F3C3, 0x200D, 0x2640, 0xFE0F], - [0x1F483], - [0x1F57A], - [0x1F46F], - [0x1F46F, 0x200D, 0x2642, 0xFE0F], - [0x1F46F, 0x200D, 0x2640, 0xFE0F], - [0x1F9D6], - [0x1F9D6, 0x200D, 0x2640, 0xFE0F], - [0x1F9D6, 0x200D, 0x2642, 0xFE0F], - [0x1F9D7], - [0x1F9D7, 0x200D, 0x2640, 0xFE0F], - [0x1F9D7, 0x200D, 0x2642, 0xFE0F], - [0x1F9D8], - [0x1F9D8, 0x200D, 0x2640, 0xFE0F], - [0x1F9D8, 0x200D, 0x2642, 0xFE0F], - [0x1F6C0], - [0x1F6CC], - [0x1F574, 0xFE0F], - [0x1F5E3, 0xFE0F], - [0x1F464], - [0x1F465], - [0x1F93A], - [0x1F3C7], - [0x26F7, 0xFE0F], - [0x1F3C2], - [0x1F3CC, 0xFE0F], - [0x1F3CC, 0xFE0F, 0x200D, 0x2642, 0xFE0F], - [0x1F3CC, 0xFE0F, 0x200D, 0x2640, 0xFE0F], - [0x1F3C4], - [0x1F3C4, 0x200D, 0x2642, 0xFE0F], - [0x1F3C4, 0x200D, 0x2640, 0xFE0F], - [0x1F6A3], - [0x1F6A3, 0x200D, 0x2642, 0xFE0F], - [0x1F6A3, 0x200D, 0x2640, 0xFE0F], - [0x1F3CA], - [0x1F3CA, 0x200D, 0x2642, 0xFE0F], - [0x1F3CA, 0x200D, 0x2640, 0xFE0F], - [0x26F9, 0xFE0F], - [0x26F9, 0xFE0F, 0x200D, 0x2642, 0xFE0F], - [0x26F9, 0xFE0F, 0x200D, 0x2640, 0xFE0F], - [0x1F3CB, 0xFE0F], - [0x1F3CB, 0xFE0F, 0x200D, 0x2642, 0xFE0F], - [0x1F3CB, 0xFE0F, 0x200D, 0x2640, 0xFE0F], - [0x1F6B4], - [0x1F6B4, 0x200D, 0x2642, 0xFE0F], - [0x1F6B4, 0x200D, 0x2640, 0xFE0F], - [0x1F6B5], - [0x1F6B5, 0x200D, 0x2642, 0xFE0F], - [0x1F6B5, 0x200D, 0x2640, 0xFE0F], - [0x1F3CE, 0xFE0F], - [0x1F3CD, 0xFE0F], - [0x1F938], - [0x1F938, 0x200D, 0x2642, 0xFE0F], - [0x1F938, 0x200D, 0x2640, 0xFE0F], - [0x1F93C], - [0x1F93C, 0x200D, 0x2642, 0xFE0F], - [0x1F93C, 0x200D, 0x2640, 0xFE0F], - [0x1F93D], - [0x1F93D, 0x200D, 0x2642, 0xFE0F], - [0x1F93D, 0x200D, 0x2640, 0xFE0F], - [0x1F93E], - [0x1F93E, 0x200D, 0x2642, 0xFE0F], - [0x1F93E, 0x200D, 0x2640, 0xFE0F], - [0x1F939], - [0x1F939, 0x200D, 0x2642, 0xFE0F], - [0x1F939, 0x200D, 0x2640, 0xFE0F], - [0x1F46B], - [0x1F46C], - [0x1F46D], - [0x1F48F], - [0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468], - [0x1F468, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468], - [0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469], - [0x1F491], - [0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468], - [0x1F468, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468], - [0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469], - [0x1F46A], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F467], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F469, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F467], - [0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F933], - [0x1F4AA], - [0x1F9B5], - [0x1F9B6], - [0x1F448], - [0x1F449], - [0x261D, 0xFE0F], - [0x1F446], - [0x1F595], - [0x1F447], - [0x270C, 0xFE0F], - [0x1F91E], - [0x1F596], - [0x1F918], - [0x1F919], - [0x1F590, 0xFE0F], - [0x270B], - [0x1F44C], - [0x1F44D], - [0x1F44E], - [0x270A], - [0x1F44A], - [0x1F91B], - [0x1F91C], - [0x1F91A], - [0x1F44B], - [0x1F91F], - [0x270D, 0xFE0F], - [0x1F44F], - [0x1F450], - [0x1F64C], - [0x1F932], - [0x1F64F], - [0x1F91D], - [0x1F485], - [0x1F442], - [0x1F443], - [0x1F9B0], - [0x1F9B1], - [0x1F9B2], - [0x1F9B3], - [0x1F463], - [0x1F440], - [0x1F441, 0xFE0F], - [0x1F441, 0xFE0F, 0x200D, 0x1F5E8, 0xFE0F], - [0x1F9E0], - [0x1F9B4], - [0x1F9B7], - [0x1F445], - [0x1F444], - [0x1F48B], - [0x1F498], - [0x2764, 0xFE0F], - [0x1F493], - [0x1F494], - [0x1F495], - [0x1F496], - [0x1F497], - [0x1F499], - [0x1F49A], - [0x1F49B], - [0x1F9E1], - [0x1F49C], - [0x1F5A4], - [0x1F49D], - [0x1F49E], - [0x1F49F], - [0x2763, 0xFE0F], - [0x1F48C], - [0x1F4A4], - [0x1F4A2], - [0x1F4A3], - [0x1F4A5], - [0x1F4A6], - [0x1F4A8], - [0x1F4AB], - [0x1F4AC], - [0x1F5E8, 0xFE0F], - [0x1F5EF, 0xFE0F], - [0x1F4AD], - [0x1F573, 0xFE0F], - [0x1F453], - [0x1F576, 0xFE0F], - [0x1F97D], - [0x1F97C], - [0x1F454], - [0x1F455], - [0x1F456], - [0x1F9E3], - [0x1F9E4], - [0x1F9E5], - [0x1F9E6], - [0x1F457], - [0x1F458], - [0x1F459], - [0x1F45A], - [0x1F45B], - [0x1F45C], - [0x1F45D], - [0x1F6CD, 0xFE0F], - [0x1F392], - [0x1F45E], - [0x1F45F], - [0x1F97E], - [0x1F97F], - [0x1F460], - [0x1F461], - [0x1F462], - [0x1F451], - [0x1F452], - [0x1F3A9], - [0x1F393], - [0x1F9E2], - [0x26D1, 0xFE0F], - [0x1F4FF], - [0x1F484], - [0x1F48D], - [0x1F48E] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .nature), - emojis: [ - [0x1F435], - [0x1F412], - [0x1F98D], - [0x1F436], - [0x1F415], - [0x1F429], - [0x1F43A], - [0x1F98A], - [0x1F99D], - [0x1F431], - [0x1F408], - [0x1F981], - [0x1F42F], - [0x1F405], - [0x1F406], - [0x1F434], - [0x1F40E], - [0x1F984], - [0x1F993], - [0x1F98C], - [0x1F42E], - [0x1F402], - [0x1F403], - [0x1F404], - [0x1F437], - [0x1F416], - [0x1F417], - [0x1F43D], - [0x1F40F], - [0x1F411], - [0x1F410], - [0x1F42A], - [0x1F42B], - [0x1F999], - [0x1F992], - [0x1F418], - [0x1F98F], - [0x1F99B], - [0x1F42D], - [0x1F401], - [0x1F400], - [0x1F439], - [0x1F430], - [0x1F407], - [0x1F43F, 0xFE0F], - [0x1F994], - [0x1F987], - [0x1F43B], - [0x1F428], - [0x1F43C], - [0x1F998], - [0x1F9A1], - [0x1F43E], - [0x1F983], - [0x1F414], - [0x1F413], - [0x1F423], - [0x1F424], - [0x1F425], - [0x1F426], - [0x1F427], - [0x1F54A, 0xFE0F], - [0x1F985], - [0x1F986], - [0x1F9A2], - [0x1F989], - [0x1F99A], - [0x1F99C], - [0x1F438], - [0x1F40A], - [0x1F422], - [0x1F98E], - [0x1F40D], - [0x1F432], - [0x1F409], - [0x1F995], - [0x1F996], - [0x1F433], - [0x1F40B], - [0x1F42C], - [0x1F41F], - [0x1F420], - [0x1F421], - [0x1F988], - [0x1F419], - [0x1F41A], - [0x1F980], - [0x1F99E], - [0x1F990], - [0x1F991], - [0x1F40C], - [0x1F98B], - [0x1F41B], - [0x1F41C], - [0x1F41D], - [0x1F41E], - [0x1F997], - [0x1F577, 0xFE0F], - [0x1F578, 0xFE0F], - [0x1F982], - [0x1F99F], - [0x1F9A0], - [0x1F490], - [0x1F338], - [0x1F4AE], - [0x1F3F5, 0xFE0F], - [0x1F339], - [0x1F940], - [0x1F33A], - [0x1F33B], - [0x1F33C], - [0x1F337], - [0x1F331], - [0x1F332], - [0x1F333], - [0x1F334], - [0x1F335], - [0x1F33E], - [0x1F33F], - [0x2618, 0xFE0F], - [0x1F340], - [0x1F341], - [0x1F342], - [0x1F343] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .foodAndDrink), - emojis: [ - [0x1F347], - [0x1F348], - [0x1F349], - [0x1F34A], - [0x1F34B], - [0x1F34C], - [0x1F34D], - [0x1F96D], - [0x1F34E], - [0x1F34F], - [0x1F350], - [0x1F351], - [0x1F352], - [0x1F353], - [0x1F95D], - [0x1F345], - [0x1F965], - [0x1F951], - [0x1F346], - [0x1F954], - [0x1F955], - [0x1F33D], - [0x1F336, 0xFE0F], - [0x1F952], - [0x1F96C], - [0x1F966], - [0x1F344], - [0x1F95C], - [0x1F330], - [0x1F35E], - [0x1F950], - [0x1F956], - [0x1F968], - [0x1F96F], - [0x1F95E], - [0x1F9C0], - [0x1F356], - [0x1F357], - [0x1F969], - [0x1F953], - [0x1F354], - [0x1F35F], - [0x1F355], - [0x1F32D], - [0x1F96A], - [0x1F32E], - [0x1F32F], - [0x1F959], - [0x1F95A], - [0x1F373], - [0x1F958], - [0x1F372], - [0x1F963], - [0x1F957], - [0x1F37F], - [0x1F9C2], - [0x1F96B], - [0x1F371], - [0x1F358], - [0x1F359], - [0x1F35A], - [0x1F35B], - [0x1F35C], - [0x1F35D], - [0x1F360], - [0x1F362], - [0x1F363], - [0x1F364], - [0x1F365], - [0x1F96E], - [0x1F361], - [0x1F95F], - [0x1F960], - [0x1F961], - [0x1F366], - [0x1F367], - [0x1F368], - [0x1F369], - [0x1F36A], - [0x1F382], - [0x1F370], - [0x1F9C1], - [0x1F967], - [0x1F36B], - [0x1F36C], - [0x1F36D], - [0x1F36E], - [0x1F36F], - [0x1F37C], - [0x1F95B], - [0x2615], - [0x1F375], - [0x1F376], - [0x1F37E], - [0x1F377], - [0x1F378], - [0x1F379], - [0x1F37A], - [0x1F37B], - [0x1F942], - [0x1F943], - [0x1F964], - [0x1F962], - [0x1F37D, 0xFE0F], - [0x1F374], - [0x1F944], - [0x1F52A], - [0x1F3FA] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .activity), - emojis: [ - [0x1F383], - [0x1F384], - [0x1F386], - [0x1F387], - [0x1F9E8], - [0x2728], - [0x1F388], - [0x1F389], - [0x1F38A], - [0x1F38B], - [0x1F38D], - [0x1F38E], - [0x1F38F], - [0x1F390], - [0x1F391], - [0x1F9E7], - [0x1F380], - [0x1F381], - [0x1F397, 0xFE0F], - [0x1F39F, 0xFE0F], - [0x1F3AB], - [0x1F396, 0xFE0F], - [0x1F3C6], - [0x1F3C5], - [0x1F947], - [0x1F948], - [0x1F949], - [0x26BD], - [0x26BE], - [0x1F94E], - [0x1F3C0], - [0x1F3D0], - [0x1F3C8], - [0x1F3C9], - [0x1F3BE], - [0x1F94F], - [0x1F3B3], - [0x1F3CF], - [0x1F3D1], - [0x1F3D2], - [0x1F94D], - [0x1F3D3], - [0x1F3F8], - [0x1F94A], - [0x1F94B], - [0x1F945], - [0x26F3], - [0x26F8, 0xFE0F], - [0x1F3A3], - [0x1F3BD], - [0x1F3BF], - [0x1F6F7], - [0x1F94C], - [0x1F3AF], - [0x1F3B1], - [0x1F52E], - [0x1F9FF], - [0x1F3AE], - [0x1F579, 0xFE0F], - [0x1F3B0], - [0x1F3B2], - [0x1F9E9], - [0x1F9F8], - [0x2660, 0xFE0F], - [0x2665, 0xFE0F], - [0x2666, 0xFE0F], - [0x2663, 0xFE0F], - [0x265F, 0xFE0F], - [0x1F0CF], - [0x1F004], - [0x1F3B4], - [0x1F3AD], - [0x1F5BC, 0xFE0F], - [0x1F3A8], - [0x1F9F5], - [0x1F9F6] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .travelAndPlaces), - emojis: [ - [0x1F30D], - [0x1F30E], - [0x1F30F], - [0x1F310], - [0x1F5FA, 0xFE0F], - [0x1F5FE], - [0x1F9ED], - [0x1F3D4, 0xFE0F], - [0x26F0, 0xFE0F], - [0x1F30B], - [0x1F5FB], - [0x1F3D5, 0xFE0F], - [0x1F3D6, 0xFE0F], - [0x1F3DC, 0xFE0F], - [0x1F3DD, 0xFE0F], - [0x1F3DE, 0xFE0F], - [0x1F3DF, 0xFE0F], - [0x1F3DB, 0xFE0F], - [0x1F3D7, 0xFE0F], - [0x1F9F1], - [0x1F3D8, 0xFE0F], - [0x1F3DA, 0xFE0F], - [0x1F3E0], - [0x1F3E1], - [0x1F3E2], - [0x1F3E3], - [0x1F3E4], - [0x1F3E5], - [0x1F3E6], - [0x1F3E8], - [0x1F3E9], - [0x1F3EA], - [0x1F3EB], - [0x1F3EC], - [0x1F3ED], - [0x1F3EF], - [0x1F3F0], - [0x1F492], - [0x1F5FC], - [0x1F5FD], - [0x26EA], - [0x1F54C], - [0x1F54D], - [0x26E9, 0xFE0F], - [0x1F54B], - [0x26F2], - [0x26FA], - [0x1F301], - [0x1F303], - [0x1F3D9, 0xFE0F], - [0x1F304], - [0x1F305], - [0x1F306], - [0x1F307], - [0x1F309], - [0x2668, 0xFE0F], - [0x1F30C], - [0x1F3A0], - [0x1F3A1], - [0x1F3A2], - [0x1F488], - [0x1F3AA], - [0x1F682], - [0x1F683], - [0x1F684], - [0x1F685], - [0x1F686], - [0x1F687], - [0x1F688], - [0x1F689], - [0x1F68A], - [0x1F69D], - [0x1F69E], - [0x1F68B], - [0x1F68C], - [0x1F68D], - [0x1F68E], - [0x1F690], - [0x1F691], - [0x1F692], - [0x1F693], - [0x1F694], - [0x1F695], - [0x1F696], - [0x1F697], - [0x1F698], - [0x1F699], - [0x1F69A], - [0x1F69B], - [0x1F69C], - [0x1F6B2], - [0x1F6F4], - [0x1F6F9], - [0x1F6F5], - [0x1F68F], - [0x1F6E3, 0xFE0F], - [0x1F6E4, 0xFE0F], - [0x1F6E2, 0xFE0F], - [0x26FD], - [0x1F6A8], - [0x1F6A5], - [0x1F6A6], - [0x1F6D1], - [0x1F6A7], - [0x2693], - [0x26F5], - [0x1F6F6], - [0x1F6A4], - [0x1F6F3, 0xFE0F], - [0x26F4, 0xFE0F], - [0x1F6E5, 0xFE0F], - [0x1F6A2], - [0x2708, 0xFE0F], - [0x1F6E9, 0xFE0F], - [0x1F6EB], - [0x1F6EC], - [0x1F4BA], - [0x1F681], - [0x1F69F], - [0x1F6A0], - [0x1F6A1], - [0x1F6F0, 0xFE0F], - [0x1F680], - [0x1F6F8], - [0x1F6CE, 0xFE0F], - [0x1F9F3], - [0x231B], - [0x23F3], - [0x231A], - [0x23F0], - [0x23F1, 0xFE0F], - [0x23F2, 0xFE0F], - [0x1F570, 0xFE0F], - [0x1F55B], - [0x1F567], - [0x1F550], - [0x1F55C], - [0x1F551], - [0x1F55D], - [0x1F552], - [0x1F55E], - [0x1F553], - [0x1F55F], - [0x1F554], - [0x1F560], - [0x1F555], - [0x1F561], - [0x1F556], - [0x1F562], - [0x1F557], - [0x1F563], - [0x1F558], - [0x1F564], - [0x1F559], - [0x1F565], - [0x1F55A], - [0x1F566], - [0x1F311], - [0x1F312], - [0x1F313], - [0x1F314], - [0x1F315], - [0x1F316], - [0x1F317], - [0x1F318], - [0x1F319], - [0x1F31A], - [0x1F31B], - [0x1F31C], - [0x1F321, 0xFE0F], - [0x2600, 0xFE0F], - [0x1F31D], - [0x1F31E], - [0x2B50], - [0x1F31F], - [0x1F320], - [0x2601, 0xFE0F], - [0x26C5], - [0x26C8, 0xFE0F], - [0x1F324, 0xFE0F], - [0x1F325, 0xFE0F], - [0x1F326, 0xFE0F], - [0x1F327, 0xFE0F], - [0x1F328, 0xFE0F], - [0x1F329, 0xFE0F], - [0x1F32A, 0xFE0F], - [0x1F32B, 0xFE0F], - [0x1F32C, 0xFE0F], - [0x1F300], - [0x1F308], - [0x1F302], - [0x2602, 0xFE0F], - [0x2614], - [0x26F1, 0xFE0F], - [0x26A1], - [0x2744, 0xFE0F], - [0x2603, 0xFE0F], - [0x26C4], - [0x2604, 0xFE0F], - [0x1F525], - [0x1F4A7], - [0x1F30A] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .objects), - emojis: [ - [0x1F507], - [0x1F508], - [0x1F509], - [0x1F50A], - [0x1F4E2], - [0x1F4E3], - [0x1F4EF], - [0x1F514], - [0x1F515], - [0x1F3BC], - [0x1F3B5], - [0x1F3B6], - [0x1F399, 0xFE0F], - [0x1F39A, 0xFE0F], - [0x1F39B, 0xFE0F], - [0x1F3A4], - [0x1F3A7], - [0x1F4FB], - [0x1F3B7], - [0x1F3B8], - [0x1F3B9], - [0x1F3BA], - [0x1F3BB], - [0x1F941], - [0x1F4F1], - [0x1F4F2], - [0x260E, 0xFE0F], - [0x1F4DE], - [0x1F4DF], - [0x1F4E0], - [0x1F50B], - [0x1F50C], - [0x1F4BB], - [0x1F5A5, 0xFE0F], - [0x1F5A8, 0xFE0F], - [0x2328, 0xFE0F], - [0x1F5B1, 0xFE0F], - [0x1F5B2, 0xFE0F], - [0x1F4BD], - [0x1F4BE], - [0x1F4BF], - [0x1F4C0], - [0x1F9EE], - [0x1F3A5], - [0x1F39E, 0xFE0F], - [0x1F4FD, 0xFE0F], - [0x1F3AC], - [0x1F4FA], - [0x1F4F7], - [0x1F4F8], - [0x1F4F9], - [0x1F4FC], - [0x1F50D], - [0x1F50E], - [0x1F56F, 0xFE0F], - [0x1F4A1], - [0x1F526], - [0x1F3EE], - [0x1F4D4], - [0x1F4D5], - [0x1F4D6], - [0x1F4D7], - [0x1F4D8], - [0x1F4D9], - [0x1F4DA], - [0x1F4D3], - [0x1F4D2], - [0x1F4C3], - [0x1F4DC], - [0x1F4C4], - [0x1F4F0], - [0x1F5DE, 0xFE0F], - [0x1F4D1], - [0x1F516], - [0x1F3F7, 0xFE0F], - [0x1F4B0], - [0x1F4B4], - [0x1F4B5], - [0x1F4B6], - [0x1F4B7], - [0x1F4B8], - [0x1F4B3], - [0x1F9FE], - [0x1F4B9], - [0x1F4B1], - [0x1F4B2], - [0x2709, 0xFE0F], - [0x1F4E7], - [0x1F4E8], - [0x1F4E9], - [0x1F4E4], - [0x1F4E5], - [0x1F4E6], - [0x1F4EB], - [0x1F4EA], - [0x1F4EC], - [0x1F4ED], - [0x1F4EE], - [0x1F5F3, 0xFE0F], - [0x270F, 0xFE0F], - [0x2712, 0xFE0F], - [0x1F58B, 0xFE0F], - [0x1F58A, 0xFE0F], - [0x1F58C, 0xFE0F], - [0x1F58D, 0xFE0F], - [0x1F4DD], - [0x1F4BC], - [0x1F4C1], - [0x1F4C2], - [0x1F5C2, 0xFE0F], - [0x1F4C5], - [0x1F4C6], - [0x1F5D2, 0xFE0F], - [0x1F5D3, 0xFE0F], - [0x1F4C7], - [0x1F4C8], - [0x1F4C9], - [0x1F4CA], - [0x1F4CB], - [0x1F4CC], - [0x1F4CD], - [0x1F4CE], - [0x1F587, 0xFE0F], - [0x1F4CF], - [0x1F4D0], - [0x2702, 0xFE0F], - [0x1F5C3, 0xFE0F], - [0x1F5C4, 0xFE0F], - [0x1F5D1, 0xFE0F], - [0x1F512], - [0x1F513], - [0x1F50F], - [0x1F510], - [0x1F511], - [0x1F5DD, 0xFE0F], - [0x1F528], - [0x26CF, 0xFE0F], - [0x2692, 0xFE0F], - [0x1F6E0, 0xFE0F], - [0x1F5E1, 0xFE0F], - [0x2694, 0xFE0F], - [0x1F52B], - [0x1F3F9], - [0x1F6E1, 0xFE0F], - [0x1F527], - [0x1F529], - [0x2699, 0xFE0F], - [0x1F5DC, 0xFE0F], - [0x2696, 0xFE0F], - [0x1F517], - [0x26D3, 0xFE0F], - [0x1F9F0], - [0x1F9F2], - [0x2697, 0xFE0F], - [0x1F9EA], - [0x1F9EB], - [0x1F9EC], - [0x1F52C], - [0x1F52D], - [0x1F4E1], - [0x1F489], - [0x1F48A], - [0x1F6AA], - [0x1F6CF, 0xFE0F], - [0x1F6CB, 0xFE0F], - [0x1F6BD], - [0x1F6BF], - [0x1F6C1], - [0x1F9F4], - [0x1F9F7], - [0x1F9F9], - [0x1F9FA], - [0x1F9FB], - [0x1F9FC], - [0x1F9FD], - [0x1F9EF], - [0x1F6D2], - [0x1F6AC], - [0x26B0, 0xFE0F], - [0x26B1, 0xFE0F], - [0x1F5FF] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .symbols), - emojis: [ - [0x1F3E7], - [0x1F6AE], - [0x1F6B0], - [0x267F], - [0x1F6B9], - [0x1F6BA], - [0x1F6BB], - [0x1F6BC], - [0x1F6BE], - [0x1F6C2], - [0x1F6C3], - [0x1F6C4], - [0x1F6C5], - [0x26A0, 0xFE0F], - [0x1F6B8], - [0x26D4], - [0x1F6AB], - [0x1F6B3], - [0x1F6AD], - [0x1F6AF], - [0x1F6B1], - [0x1F6B7], - [0x1F4F5], - [0x1F51E], - [0x2622, 0xFE0F], - [0x2623, 0xFE0F], - [0x2B06, 0xFE0F], - [0x2197, 0xFE0F], - [0x27A1, 0xFE0F], - [0x2198, 0xFE0F], - [0x2B07, 0xFE0F], - [0x2199, 0xFE0F], - [0x2B05, 0xFE0F], - [0x2196, 0xFE0F], - [0x2195, 0xFE0F], - [0x2194, 0xFE0F], - [0x21A9, 0xFE0F], - [0x21AA, 0xFE0F], - [0x2934, 0xFE0F], - [0x2935, 0xFE0F], - [0x1F503], - [0x1F504], - [0x1F519], - [0x1F51A], - [0x1F51B], - [0x1F51C], - [0x1F51D], - [0x1F6D0], - [0x269B, 0xFE0F], - [0x1F549, 0xFE0F], - [0x2721, 0xFE0F], - [0x2638, 0xFE0F], - [0x262F, 0xFE0F], - [0x271D, 0xFE0F], - [0x2626, 0xFE0F], - [0x262A, 0xFE0F], - [0x262E, 0xFE0F], - [0x1F54E], - [0x1F52F], - [0x2648], - [0x2649], - [0x264A], - [0x264B], - [0x264C], - [0x264D], - [0x264E], - [0x264F], - [0x2650], - [0x2651], - [0x2652], - [0x2653], - [0x26CE], - [0x1F500], - [0x1F501], - [0x1F502], - [0x25B6, 0xFE0F], - [0x23E9], - [0x23ED, 0xFE0F], - [0x23EF, 0xFE0F], - [0x25C0, 0xFE0F], - [0x23EA], - [0x23EE, 0xFE0F], - [0x1F53C], - [0x23EB], - [0x1F53D], - [0x23EC], - [0x23F8, 0xFE0F], - [0x23F9, 0xFE0F], - [0x23FA, 0xFE0F], - [0x23CF, 0xFE0F], - [0x1F3A6], - [0x1F505], - [0x1F506], - [0x1F4F6], - [0x1F4F3], - [0x1F4F4], - [0x2640, 0xFE0F], - [0x2642, 0xFE0F], - [0x2695, 0xFE0F], - [0x267E, 0xFE0F], - [0x267B, 0xFE0F], - [0x269C, 0xFE0F], - [0x1F531], - [0x1F4DB], - [0x1F530], - [0x2B55], - [0x2705], - [0x2611, 0xFE0F], - [0x2714, 0xFE0F], - [0x2716, 0xFE0F], - [0x274C], - [0x274E], - [0x2795], - [0x2796], - [0x2797], - [0x27B0], - [0x27BF], - [0x303D, 0xFE0F], - [0x2733, 0xFE0F], - [0x2734, 0xFE0F], - [0x2747, 0xFE0F], - [0x203C, 0xFE0F], - [0x2049, 0xFE0F], - [0x2753], - [0x2754], - [0x2755], - [0x2757], - [0x3030, 0xFE0F], - [0x00A9, 0xFE0F], - [0x00AE, 0xFE0F], - [0x2122, 0xFE0F], - [0x0023, 0xFE0F, 0x20E3], - [0x002A, 0xFE0F, 0x20E3], - [0x0030, 0xFE0F, 0x20E3], - [0x0031, 0xFE0F, 0x20E3], - [0x0032, 0xFE0F, 0x20E3], - [0x0033, 0xFE0F, 0x20E3], - [0x0034, 0xFE0F, 0x20E3], - [0x0035, 0xFE0F, 0x20E3], - [0x0036, 0xFE0F, 0x20E3], - [0x0037, 0xFE0F, 0x20E3], - [0x0038, 0xFE0F, 0x20E3], - [0x0039, 0xFE0F, 0x20E3], - [0x1F51F], - [0x1F4AF], - [0x1F520], - [0x1F521], - [0x1F522], - [0x1F523], - [0x1F524], - [0x1F170, 0xFE0F], - [0x1F18E], - [0x1F171, 0xFE0F], - [0x1F191], - [0x1F192], - [0x1F193], - [0x2139, 0xFE0F], - [0x1F194], - [0x24C2, 0xFE0F], - [0x1F195], - [0x1F196], - [0x1F17E, 0xFE0F], - [0x1F197], - [0x1F17F, 0xFE0F], - [0x1F198], - [0x1F199], - [0x1F19A], - [0x1F201], - [0x1F202, 0xFE0F], - [0x1F237, 0xFE0F], - [0x1F236], - [0x1F22F], - [0x1F250], - [0x1F239], - [0x1F21A], - [0x1F232], - [0x1F251], - [0x1F238], - [0x1F234], - [0x1F233], - [0x3297, 0xFE0F], - [0x3299, 0xFE0F], - [0x1F23A], - [0x1F235], - [0x25AA, 0xFE0F], - [0x25AB, 0xFE0F], - [0x25FB, 0xFE0F], - [0x25FC, 0xFE0F], - [0x25FD], - [0x25FE], - [0x2B1B], - [0x2B1C], - [0x1F536], - [0x1F537], - [0x1F538], - [0x1F539], - [0x1F53A], - [0x1F53B], - [0x1F4A0], - [0x1F518], - [0x1F532], - [0x1F533], - [0x26AA], - [0x26AB], - [0x1F534], - [0x1F535] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .flags), - emojis: [ - [0x1F3C1], - [0x1F6A9], - [0x1F38C], - [0x1F3F4], - [0x1F3F3, 0xFE0F], - [0x1F3F3, 0xFE0F, 0x200D, 0x1F308], - [0x1F3F4, 0x200D, 0x2620, 0xFE0F], - [0x1F1E6, 0x1F1E8], - [0x1F1E6, 0x1F1E9], - [0x1F1E6, 0x1F1EA], - [0x1F1E6, 0x1F1EB], - [0x1F1E6, 0x1F1EC], - [0x1F1E6, 0x1F1EE], - [0x1F1E6, 0x1F1F1], - [0x1F1E6, 0x1F1F2], - [0x1F1E6, 0x1F1F4], - [0x1F1E6, 0x1F1F6], - [0x1F1E6, 0x1F1F7], - [0x1F1E6, 0x1F1F8], - [0x1F1E6, 0x1F1F9], - [0x1F1E6, 0x1F1FA], - [0x1F1E6, 0x1F1FC], - [0x1F1E6, 0x1F1FD], - [0x1F1E6, 0x1F1FF], - [0x1F1E7, 0x1F1E6], - [0x1F1E7, 0x1F1E7], - [0x1F1E7, 0x1F1E9], - [0x1F1E7, 0x1F1EA], - [0x1F1E7, 0x1F1EB], - [0x1F1E7, 0x1F1EC], - [0x1F1E7, 0x1F1ED], - [0x1F1E7, 0x1F1EE], - [0x1F1E7, 0x1F1EF], - [0x1F1E7, 0x1F1F1], - [0x1F1E7, 0x1F1F2], - [0x1F1E7, 0x1F1F3], - [0x1F1E7, 0x1F1F4], - [0x1F1E7, 0x1F1F6], - [0x1F1E7, 0x1F1F7], - [0x1F1E7, 0x1F1F8], - [0x1F1E7, 0x1F1F9], - [0x1F1E7, 0x1F1FB], - [0x1F1E7, 0x1F1FC], - [0x1F1E7, 0x1F1FE], - [0x1F1E7, 0x1F1FF], - [0x1F1E8, 0x1F1E6], - [0x1F1E8, 0x1F1E8], - [0x1F1E8, 0x1F1E9], - [0x1F1E8, 0x1F1EB], - [0x1F1E8, 0x1F1EC], - [0x1F1E8, 0x1F1ED], - [0x1F1E8, 0x1F1EE], - [0x1F1E8, 0x1F1F0], - [0x1F1E8, 0x1F1F1], - [0x1F1E8, 0x1F1F2], - [0x1F1E8, 0x1F1F3], - [0x1F1E8, 0x1F1F4], - [0x1F1E8, 0x1F1F5], - [0x1F1E8, 0x1F1F7], - [0x1F1E8, 0x1F1FA], - [0x1F1E8, 0x1F1FB], - [0x1F1E8, 0x1F1FC], - [0x1F1E8, 0x1F1FD], - [0x1F1E8, 0x1F1FE], - [0x1F1E8, 0x1F1FF], - [0x1F1E9, 0x1F1EA], - [0x1F1E9, 0x1F1EC], - [0x1F1E9, 0x1F1EF], - [0x1F1E9, 0x1F1F0], - [0x1F1E9, 0x1F1F2], - [0x1F1E9, 0x1F1F4], - [0x1F1E9, 0x1F1FF], - [0x1F1EA, 0x1F1E6], - [0x1F1EA, 0x1F1E8], - [0x1F1EA, 0x1F1EA], - [0x1F1EA, 0x1F1EC], - [0x1F1EA, 0x1F1ED], - [0x1F1EA, 0x1F1F7], - [0x1F1EA, 0x1F1F8], - [0x1F1EA, 0x1F1F9], - [0x1F1EA, 0x1F1FA], - [0x1F1EB, 0x1F1EE], - [0x1F1EB, 0x1F1EF], - [0x1F1EB, 0x1F1F0], - [0x1F1EB, 0x1F1F2], - [0x1F1EB, 0x1F1F4], - [0x1F1EB, 0x1F1F7], - [0x1F1EC, 0x1F1E6], - [0x1F1EC, 0x1F1E7], - [0x1F1EC, 0x1F1E9], - [0x1F1EC, 0x1F1EA], - [0x1F1EC, 0x1F1EB], - [0x1F1EC, 0x1F1EC], - [0x1F1EC, 0x1F1ED], - [0x1F1EC, 0x1F1EE], - [0x1F1EC, 0x1F1F1], - [0x1F1EC, 0x1F1F2], - [0x1F1EC, 0x1F1F3], - [0x1F1EC, 0x1F1F5], - [0x1F1EC, 0x1F1F6], - [0x1F1EC, 0x1F1F7], - [0x1F1EC, 0x1F1F8], - [0x1F1EC, 0x1F1F9], - [0x1F1EC, 0x1F1FA], - [0x1F1EC, 0x1F1FC], - [0x1F1EC, 0x1F1FE], - [0x1F1ED, 0x1F1F0], - [0x1F1ED, 0x1F1F2], - [0x1F1ED, 0x1F1F3], - [0x1F1ED, 0x1F1F7], - [0x1F1ED, 0x1F1F9], - [0x1F1ED, 0x1F1FA], - [0x1F1EE, 0x1F1E8], - [0x1F1EE, 0x1F1E9], - [0x1F1EE, 0x1F1EA], - [0x1F1EE, 0x1F1F1], - [0x1F1EE, 0x1F1F2], - [0x1F1EE, 0x1F1F3], - [0x1F1EE, 0x1F1F4], - [0x1F1EE, 0x1F1F6], - [0x1F1EE, 0x1F1F7], - [0x1F1EE, 0x1F1F8], - [0x1F1EE, 0x1F1F9], - [0x1F1EF, 0x1F1EA], - [0x1F1EF, 0x1F1F2], - [0x1F1EF, 0x1F1F4], - [0x1F1EF, 0x1F1F5], - [0x1F1F0, 0x1F1EA], - [0x1F1F0, 0x1F1EC], - [0x1F1F0, 0x1F1ED], - [0x1F1F0, 0x1F1EE], - [0x1F1F0, 0x1F1F2], - [0x1F1F0, 0x1F1F3], - [0x1F1F0, 0x1F1F5], - [0x1F1F0, 0x1F1F7], - [0x1F1F0, 0x1F1FC], - [0x1F1F0, 0x1F1FE], - [0x1F1F0, 0x1F1FF], - [0x1F1F1, 0x1F1E6], - [0x1F1F1, 0x1F1E7], - [0x1F1F1, 0x1F1E8], - [0x1F1F1, 0x1F1EE], - [0x1F1F1, 0x1F1F0], - [0x1F1F1, 0x1F1F7], - [0x1F1F1, 0x1F1F8], - [0x1F1F1, 0x1F1F9], - [0x1F1F1, 0x1F1FA], - [0x1F1F1, 0x1F1FB], - [0x1F1F1, 0x1F1FE], - [0x1F1F2, 0x1F1E6], - [0x1F1F2, 0x1F1E8], - [0x1F1F2, 0x1F1E9], - [0x1F1F2, 0x1F1EA], - [0x1F1F2, 0x1F1EB], - [0x1F1F2, 0x1F1EC], - [0x1F1F2, 0x1F1ED], - [0x1F1F2, 0x1F1F0], - [0x1F1F2, 0x1F1F1], - [0x1F1F2, 0x1F1F2], - [0x1F1F2, 0x1F1F3], - [0x1F1F2, 0x1F1F4], - [0x1F1F2, 0x1F1F5], - [0x1F1F2, 0x1F1F6], - [0x1F1F2, 0x1F1F7], - [0x1F1F2, 0x1F1F8], - [0x1F1F2, 0x1F1F9], - [0x1F1F2, 0x1F1FA], - [0x1F1F2, 0x1F1FB], - [0x1F1F2, 0x1F1FC], - [0x1F1F2, 0x1F1FD], - [0x1F1F2, 0x1F1FE], - [0x1F1F2, 0x1F1FF], - [0x1F1F3, 0x1F1E6], - [0x1F1F3, 0x1F1E8], - [0x1F1F3, 0x1F1EA], - [0x1F1F3, 0x1F1EB], - [0x1F1F3, 0x1F1EC], - [0x1F1F3, 0x1F1EE], - [0x1F1F3, 0x1F1F1], - [0x1F1F3, 0x1F1F4], - [0x1F1F3, 0x1F1F5], - [0x1F1F3, 0x1F1F7], - [0x1F1F3, 0x1F1FA], - [0x1F1F3, 0x1F1FF], - [0x1F1F4, 0x1F1F2], - [0x1F1F5, 0x1F1E6], - [0x1F1F5, 0x1F1EA], - [0x1F1F5, 0x1F1EB], - [0x1F1F5, 0x1F1EC], - [0x1F1F5, 0x1F1ED], - [0x1F1F5, 0x1F1F0], - [0x1F1F5, 0x1F1F1], - [0x1F1F5, 0x1F1F2], - [0x1F1F5, 0x1F1F3], - [0x1F1F5, 0x1F1F7], - [0x1F1F5, 0x1F1F8], - [0x1F1F5, 0x1F1F9], - [0x1F1F5, 0x1F1FC], - [0x1F1F5, 0x1F1FE], - [0x1F1F6, 0x1F1E6], - [0x1F1F7, 0x1F1EA], - [0x1F1F7, 0x1F1F4], - [0x1F1F7, 0x1F1F8], - [0x1F1F7, 0x1F1FA], - [0x1F1F7, 0x1F1FC], - [0x1F1F8, 0x1F1E6], - [0x1F1F8, 0x1F1E7], - [0x1F1F8, 0x1F1E8], - [0x1F1F8, 0x1F1E9], - [0x1F1F8, 0x1F1EA], - [0x1F1F8, 0x1F1EC], - [0x1F1F8, 0x1F1ED], - [0x1F1F8, 0x1F1EE], - [0x1F1F8, 0x1F1EF], - [0x1F1F8, 0x1F1F0], - [0x1F1F8, 0x1F1F1], - [0x1F1F8, 0x1F1F2], - [0x1F1F8, 0x1F1F3], - [0x1F1F8, 0x1F1F4], - [0x1F1F8, 0x1F1F7], - [0x1F1F8, 0x1F1F8], - [0x1F1F8, 0x1F1F9], - [0x1F1F8, 0x1F1FB], - [0x1F1F8, 0x1F1FD], - [0x1F1F8, 0x1F1FE], - [0x1F1F8, 0x1F1FF], - [0x1F1F9, 0x1F1E6], - [0x1F1F9, 0x1F1E8], - [0x1F1F9, 0x1F1E9], - [0x1F1F9, 0x1F1EB], - [0x1F1F9, 0x1F1EC], - [0x1F1F9, 0x1F1ED], - [0x1F1F9, 0x1F1EF], - [0x1F1F9, 0x1F1F0], - [0x1F1F9, 0x1F1F1], - [0x1F1F9, 0x1F1F2], - [0x1F1F9, 0x1F1F3], - [0x1F1F9, 0x1F1F4], - [0x1F1F9, 0x1F1F7], - [0x1F1F9, 0x1F1F9], - [0x1F1F9, 0x1F1FB], - [0x1F1F9, 0x1F1FC], - [0x1F1F9, 0x1F1FF], - [0x1F1FA, 0x1F1E6], - [0x1F1FA, 0x1F1EC], - [0x1F1FA, 0x1F1F2], - [0x1F1FA, 0x1F1F3], - [0x1F1FA, 0x1F1F8], - [0x1F1FA, 0x1F1FE], - [0x1F1FA, 0x1F1FF], - [0x1F1FB, 0x1F1E6], - [0x1F1FB, 0x1F1E8], - [0x1F1FB, 0x1F1EA], - [0x1F1FB, 0x1F1EC], - [0x1F1FB, 0x1F1EE], - [0x1F1FB, 0x1F1F3], - [0x1F1FB, 0x1F1FA], - [0x1F1FC, 0x1F1EB], - [0x1F1FC, 0x1F1F8], - [0x1F1FD, 0x1F1F0], - [0x1F1FE, 0x1F1EA], - [0x1F1FE, 0x1F1F9], - [0x1F1FF, 0x1F1E6], - [0x1F1FF, 0x1F1F2], - [0x1F1FF, 0x1F1FC], - [0x1F3F4, 0xE0067, 0xE0062, 0xE0065, 0xE006E, 0xE0067, 0xE007F], - [0x1F3F4, 0xE0067, 0xE0062, 0xE0073, 0xE0063, 0xE0074, 0xE007F], - [0x1F3F4, 0xE0067, 0xE0062, 0xE0077, 0xE006C, 0xE0073, 0xE007F] - ] - ) - ] - } -} diff --git a/Sources/EmojiPicker/Services/Unicode/Unicode 12.swift b/Sources/EmojiPicker/Services/Unicode/Unicode 12.swift deleted file mode 100644 index b0c98c8..0000000 --- a/Sources/EmojiPicker/Services/Unicode/Unicode 12.swift +++ /dev/null @@ -1,1782 +0,0 @@ -// The MIT License (MIT) -// Copyright © 2022 Ivan Izyumkin -// -// 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. - -extension UnicodeManager { - var unicode12: [EmojiCategory] { - return [ - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .people), - emojis: [ - [0x1F600], - [0x1F603], - [0x1F604], - [0x1F601], - [0x1F606], - [0x1F605], - [0x1F923], - [0x1F602], - [0x1F642], - [0x1F643], - [0x1F609], - [0x1F60A], - [0x1F607], - [0x1F970], - [0x1F60D], - [0x1F929], - [0x1F618], - [0x1F617], - [0x263A, 0xFE0F], - [0x1F61A], - [0x1F619], - [0x1F60B], - [0x1F61B], - [0x1F61C], - [0x1F92A], - [0x1F61D], - [0x1F911], - [0x1F917], - [0x1F92D], - [0x1F92B], - [0x1F914], - [0x1F910], - [0x1F928], - [0x1F610], - [0x1F611], - [0x1F636], - [0x1F60F], - [0x1F612], - [0x1F644], - [0x1F62C], - [0x1F925], - [0x1F60C], - [0x1F614], - [0x1F62A], - [0x1F924], - [0x1F634], - [0x1F637], - [0x1F912], - [0x1F915], - [0x1F922], - [0x1F92E], - [0x1F927], - [0x1F975], - [0x1F976], - [0x1F974], - [0x1F635], - [0x1F92F], - [0x1F920], - [0x1F973], - [0x1F60E], - [0x1F913], - [0x1F9D0], - [0x1F615], - [0x1F61F], - [0x1F641], - [0x2639, 0xFE0F], - [0x1F62E], - [0x1F62F], - [0x1F632], - [0x1F633], - [0x1F97A], - [0x1F626], - [0x1F627], - [0x1F628], - [0x1F630], - [0x1F625], - [0x1F622], - [0x1F62D], - [0x1F631], - [0x1F616], - [0x1F623], - [0x1F61E], - [0x1F613], - [0x1F629], - [0x1F62B], - [0x1F971], - [0x1F624], - [0x1F621], - [0x1F620], - [0x1F92C], - [0x1F608], - [0x1F47F], - [0x1F480], - [0x2620, 0xFE0F], - [0x1F4A9], - [0x1F921], - [0x1F479], - [0x1F47A], - [0x1F47B], - [0x1F47D], - [0x1F47E], - [0x1F916], - [0x1F63A], - [0x1F638], - [0x1F639], - [0x1F63B], - [0x1F63C], - [0x1F63D], - [0x1F640], - [0x1F63F], - [0x1F63E], - [0x1F648], - [0x1F649], - [0x1F64A], - [0x1F48B], - [0x1F48C], - [0x1F498], - [0x1F49D], - [0x1F496], - [0x1F497], - [0x1F493], - [0x1F49E], - [0x1F495], - [0x1F49F], - [0x2763, 0xFE0F], - [0x1F494], - [0x2764, 0xFE0F], - [0x1F9E1], - [0x1F49B], - [0x1F49A], - [0x1F499], - [0x1F49C], - [0x1F90E], - [0x1F5A4], - [0x1F90D], - [0x1F4AF], - [0x1F4A2], - [0x1F4A5], - [0x1F4AB], - [0x1F4A6], - [0x1F4A8], - [0x1F573, 0xFE0F], - [0x1F4A3], - [0x1F4AC], - [0x1F441, 0xFE0F, 0x200D, 0x1F5E8, 0xFE0F], - [0x1F5E8, 0xFE0F], - [0x1F5EF, 0xFE0F], - [0x1F4AD], - [0x1F4A4], - [0x1F44B], - [0x1F91A], - [0x1F590, 0xFE0F], - [0x270B], - [0x1F596], - [0x1F44C], - [0x1F90F], - [0x270C, 0xFE0F], - [0x1F91E], - [0x1F91F], - [0x1F918], - [0x1F919], - [0x1F448], - [0x1F449], - [0x1F446], - [0x1F595], - [0x1F447], - [0x261D, 0xFE0F], - [0x1F44D], - [0x1F44E], - [0x270A], - [0x1F44A], - [0x1F91B], - [0x1F91C], - [0x1F44F], - [0x1F64C], - [0x1F450], - [0x1F932], - [0x1F91D], - [0x1F64F], - [0x270D, 0xFE0F], - [0x1F485], - [0x1F933], - [0x1F4AA], - [0x1F9BE], - [0x1F9BF], - [0x1F9B5], - [0x1F9B6], - [0x1F442], - [0x1F9BB], - [0x1F443], - [0x1F9E0], - [0x1F9B7], - [0x1F9B4], - [0x1F440], - [0x1F441, 0xFE0F], - [0x1F445], - [0x1F444], - [0x1F476], - [0x1F9D2], - [0x1F466], - [0x1F467], - [0x1F9D1], - [0x1F471], - [0x1F468], - [0x1F9D4], - [0x1F471, 0x200D, 0x2642, 0xFE0F], - [0x1F468, 0x200D, 0x1F9B0], - [0x1F468, 0x200D, 0x1F9B1], - [0x1F468, 0x200D, 0x1F9B3], - [0x1F468, 0x200D, 0x1F9B2], - [0x1F469], - [0x1F471, 0x200D, 0x2640, 0xFE0F], - [0x1F469, 0x200D, 0x1F9B0], - [0x1F469, 0x200D, 0x1F9B1], - [0x1F469, 0x200D, 0x1F9B3], - [0x1F469, 0x200D, 0x1F9B2], - [0x1F9D3], - [0x1F474], - [0x1F475], - [0x1F64D], - [0x1F64D, 0x200D, 0x2642, 0xFE0F], - [0x1F64D, 0x200D, 0x2640, 0xFE0F], - [0x1F64E], - [0x1F64E, 0x200D, 0x2642, 0xFE0F], - [0x1F64E, 0x200D, 0x2640, 0xFE0F], - [0x1F645], - [0x1F645, 0x200D, 0x2642, 0xFE0F], - [0x1F645, 0x200D, 0x2640, 0xFE0F], - [0x1F646], - [0x1F646, 0x200D, 0x2642, 0xFE0F], - [0x1F646, 0x200D, 0x2640, 0xFE0F], - [0x1F481], - [0x1F481, 0x200D, 0x2642, 0xFE0F], - [0x1F481, 0x200D, 0x2640, 0xFE0F], - [0x1F64B], - [0x1F64B, 0x200D, 0x2642, 0xFE0F], - [0x1F64B, 0x200D, 0x2640, 0xFE0F], - [0x1F9CF], - [0x1F9CF, 0x200D, 0x2642, 0xFE0F], - [0x1F9CF, 0x200D, 0x2640, 0xFE0F], - [0x1F647], - [0x1F647, 0x200D, 0x2642, 0xFE0F], - [0x1F647, 0x200D, 0x2640, 0xFE0F], - [0x1F926], - [0x1F926, 0x200D, 0x2642, 0xFE0F], - [0x1F926, 0x200D, 0x2640, 0xFE0F], - [0x1F937], - [0x1F937, 0x200D, 0x2642, 0xFE0F], - [0x1F937, 0x200D, 0x2640, 0xFE0F], - [0x1F468, 0x200D, 0x2695, 0xFE0F], - [0x1F469, 0x200D, 0x2695, 0xFE0F], - [0x1F468, 0x200D, 0x1F393], - [0x1F469, 0x200D, 0x1F393], - [0x1F468, 0x200D, 0x1F3EB], - [0x1F469, 0x200D, 0x1F3EB], - [0x1F468, 0x200D, 0x2696, 0xFE0F], - [0x1F469, 0x200D, 0x2696, 0xFE0F], - [0x1F468, 0x200D, 0x1F33E], - [0x1F469, 0x200D, 0x1F33E], - [0x1F468, 0x200D, 0x1F373], - [0x1F469, 0x200D, 0x1F373], - [0x1F468, 0x200D, 0x1F527], - [0x1F469, 0x200D, 0x1F527], - [0x1F468, 0x200D, 0x1F3ED], - [0x1F469, 0x200D, 0x1F3ED], - [0x1F468, 0x200D, 0x1F4BC], - [0x1F469, 0x200D, 0x1F4BC], - [0x1F468, 0x200D, 0x1F52C], - [0x1F469, 0x200D, 0x1F52C], - [0x1F468, 0x200D, 0x1F4BB], - [0x1F469, 0x200D, 0x1F4BB], - [0x1F468, 0x200D, 0x1F3A4], - [0x1F469, 0x200D, 0x1F3A4], - [0x1F468, 0x200D, 0x1F3A8], - [0x1F469, 0x200D, 0x1F3A8], - [0x1F468, 0x200D, 0x2708, 0xFE0F], - [0x1F469, 0x200D, 0x2708, 0xFE0F], - [0x1F468, 0x200D, 0x1F680], - [0x1F469, 0x200D, 0x1F680], - [0x1F468, 0x200D, 0x1F692], - [0x1F469, 0x200D, 0x1F692], - [0x1F46E], - [0x1F46E, 0x200D, 0x2642, 0xFE0F], - [0x1F46E, 0x200D, 0x2640, 0xFE0F], - [0x1F575, 0xFE0F], - [0x1F575, 0xFE0F, 0x200D, 0x2642, 0xFE0F], - [0x1F575, 0xFE0F, 0x200D, 0x2640, 0xFE0F], - [0x1F482], - [0x1F482, 0x200D, 0x2642, 0xFE0F], - [0x1F482, 0x200D, 0x2640, 0xFE0F], - [0x1F477], - [0x1F477, 0x200D, 0x2642, 0xFE0F], - [0x1F477, 0x200D, 0x2640, 0xFE0F], - [0x1F934], - [0x1F478], - [0x1F473], - [0x1F473, 0x200D, 0x2642, 0xFE0F], - [0x1F473, 0x200D, 0x2640, 0xFE0F], - [0x1F472], - [0x1F9D5], - [0x1F935], - [0x1F470], - [0x1F930], - [0x1F931], - [0x1F47C], - [0x1F385], - [0x1F936], - [0x1F9B8], - [0x1F9B8, 0x200D, 0x2642, 0xFE0F], - [0x1F9B8, 0x200D, 0x2640, 0xFE0F], - [0x1F9B9], - [0x1F9B9, 0x200D, 0x2642, 0xFE0F], - [0x1F9B9, 0x200D, 0x2640, 0xFE0F], - [0x1F9D9], - [0x1F9D9, 0x200D, 0x2642, 0xFE0F], - [0x1F9D9, 0x200D, 0x2640, 0xFE0F], - [0x1F9DA], - [0x1F9DA, 0x200D, 0x2642, 0xFE0F], - [0x1F9DA, 0x200D, 0x2640, 0xFE0F], - [0x1F9DB], - [0x1F9DB, 0x200D, 0x2642, 0xFE0F], - [0x1F9DB, 0x200D, 0x2640, 0xFE0F], - [0x1F9DC], - [0x1F9DC, 0x200D, 0x2642, 0xFE0F], - [0x1F9DC, 0x200D, 0x2640, 0xFE0F], - [0x1F9DD], - [0x1F9DD, 0x200D, 0x2642, 0xFE0F], - [0x1F9DD, 0x200D, 0x2640, 0xFE0F], - [0x1F9DE], - [0x1F9DE, 0x200D, 0x2642, 0xFE0F], - [0x1F9DE, 0x200D, 0x2640, 0xFE0F], - [0x1F9DF], - [0x1F9DF, 0x200D, 0x2642, 0xFE0F], - [0x1F9DF, 0x200D, 0x2640, 0xFE0F], - [0x1F486], - [0x1F486, 0x200D, 0x2642, 0xFE0F], - [0x1F486, 0x200D, 0x2640, 0xFE0F], - [0x1F487], - [0x1F487, 0x200D, 0x2642, 0xFE0F], - [0x1F487, 0x200D, 0x2640, 0xFE0F], - [0x1F6B6], - [0x1F6B6, 0x200D, 0x2642, 0xFE0F], - [0x1F6B6, 0x200D, 0x2640, 0xFE0F], - [0x1F9CD], - [0x1F9CD, 0x200D, 0x2642, 0xFE0F], - [0x1F9CD, 0x200D, 0x2640, 0xFE0F], - [0x1F9CE], - [0x1F9CE, 0x200D, 0x2642, 0xFE0F], - [0x1F9CE, 0x200D, 0x2640, 0xFE0F], - [0x1F468, 0x200D, 0x1F9AF], - [0x1F469, 0x200D, 0x1F9AF], - [0x1F468, 0x200D, 0x1F9BC], - [0x1F469, 0x200D, 0x1F9BC], - [0x1F468, 0x200D, 0x1F9BD], - [0x1F469, 0x200D, 0x1F9BD], - [0x1F3C3], - [0x1F3C3, 0x200D, 0x2642, 0xFE0F], - [0x1F3C3, 0x200D, 0x2640, 0xFE0F], - [0x1F483], - [0x1F57A], - [0x1F574, 0xFE0F], - [0x1F46F], - [0x1F46F, 0x200D, 0x2642, 0xFE0F], - [0x1F46F, 0x200D, 0x2640, 0xFE0F], - [0x1F9D6], - [0x1F9D6, 0x200D, 0x2642, 0xFE0F], - [0x1F9D6, 0x200D, 0x2640, 0xFE0F], - [0x1F9D7], - [0x1F9D7, 0x200D, 0x2642, 0xFE0F], - [0x1F9D7, 0x200D, 0x2640, 0xFE0F], - [0x1F93A], - [0x1F3C7], - [0x26F7, 0xFE0F], - [0x1F3C2], - [0x1F3CC, 0xFE0F], - [0x1F3CC, 0xFE0F, 0x200D, 0x2642, 0xFE0F], - [0x1F3CC, 0xFE0F, 0x200D, 0x2640, 0xFE0F], - [0x1F3C4], - [0x1F3C4, 0x200D, 0x2642, 0xFE0F], - [0x1F3C4, 0x200D, 0x2640, 0xFE0F], - [0x1F6A3], - [0x1F6A3, 0x200D, 0x2642, 0xFE0F], - [0x1F6A3, 0x200D, 0x2640, 0xFE0F], - [0x1F3CA], - [0x1F3CA, 0x200D, 0x2642, 0xFE0F], - [0x1F3CA, 0x200D, 0x2640, 0xFE0F], - [0x26F9, 0xFE0F], - [0x26F9, 0xFE0F, 0x200D, 0x2642, 0xFE0F], - [0x26F9, 0xFE0F, 0x200D, 0x2640, 0xFE0F], - [0x1F3CB, 0xFE0F], - [0x1F3CB, 0xFE0F, 0x200D, 0x2642, 0xFE0F], - [0x1F3CB, 0xFE0F, 0x200D, 0x2640, 0xFE0F], - [0x1F6B4], - [0x1F6B4, 0x200D, 0x2642, 0xFE0F], - [0x1F6B4, 0x200D, 0x2640, 0xFE0F], - [0x1F6B5], - [0x1F6B5, 0x200D, 0x2642, 0xFE0F], - [0x1F6B5, 0x200D, 0x2640, 0xFE0F], - [0x1F938], - [0x1F938, 0x200D, 0x2642, 0xFE0F], - [0x1F938, 0x200D, 0x2640, 0xFE0F], - [0x1F93C], - [0x1F93C, 0x200D, 0x2642, 0xFE0F], - [0x1F93C, 0x200D, 0x2640, 0xFE0F], - [0x1F93D], - [0x1F93D, 0x200D, 0x2642, 0xFE0F], - [0x1F93D, 0x200D, 0x2640, 0xFE0F], - [0x1F93E], - [0x1F93E, 0x200D, 0x2642, 0xFE0F], - [0x1F93E, 0x200D, 0x2640, 0xFE0F], - [0x1F939], - [0x1F939, 0x200D, 0x2642, 0xFE0F], - [0x1F939, 0x200D, 0x2640, 0xFE0F], - [0x1F9D8], - [0x1F9D8, 0x200D, 0x2642, 0xFE0F], - [0x1F9D8, 0x200D, 0x2640, 0xFE0F], - [0x1F6C0], - [0x1F6CC], - [0x1F9D1, 0x200D, 0x1F91D, 0x200D, 0x1F9D1], - [0x1F46D], - [0x1F46B], - [0x1F46C], - [0x1F48F], - [0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468], - [0x1F468, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468], - [0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469], - [0x1F491], - [0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468], - [0x1F468, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468], - [0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469], - [0x1F46A], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F467], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F469, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F467], - [0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F5E3, 0xFE0F], - [0x1F464], - [0x1F465], - [0x1F463] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .nature), - emojis: [ - [0x1F435], - [0x1F412], - [0x1F98D], - [0x1F9A7], - [0x1F436], - [0x1F415], - [0x1F9AE], - [0x1F415, 0x200D, 0x1F9BA], - [0x1F429], - [0x1F43A], - [0x1F98A], - [0x1F99D], - [0x1F431], - [0x1F408], - [0x1F981], - [0x1F42F], - [0x1F405], - [0x1F406], - [0x1F434], - [0x1F40E], - [0x1F984], - [0x1F993], - [0x1F98C], - [0x1F42E], - [0x1F402], - [0x1F403], - [0x1F404], - [0x1F437], - [0x1F416], - [0x1F417], - [0x1F43D], - [0x1F40F], - [0x1F411], - [0x1F410], - [0x1F42A], - [0x1F42B], - [0x1F999], - [0x1F992], - [0x1F418], - [0x1F98F], - [0x1F99B], - [0x1F42D], - [0x1F401], - [0x1F400], - [0x1F439], - [0x1F430], - [0x1F407], - [0x1F43F, 0xFE0F], - [0x1F994], - [0x1F987], - [0x1F43B], - [0x1F428], - [0x1F43C], - [0x1F9A5], - [0x1F9A6], - [0x1F9A8], - [0x1F998], - [0x1F9A1], - [0x1F43E], - [0x1F983], - [0x1F414], - [0x1F413], - [0x1F423], - [0x1F424], - [0x1F425], - [0x1F426], - [0x1F427], - [0x1F54A, 0xFE0F], - [0x1F985], - [0x1F986], - [0x1F9A2], - [0x1F989], - [0x1F9A9], - [0x1F99A], - [0x1F99C], - [0x1F438], - [0x1F40A], - [0x1F422], - [0x1F98E], - [0x1F40D], - [0x1F432], - [0x1F409], - [0x1F995], - [0x1F996], - [0x1F433], - [0x1F40B], - [0x1F42C], - [0x1F41F], - [0x1F420], - [0x1F421], - [0x1F988], - [0x1F419], - [0x1F41A], - [0x1F40C], - [0x1F98B], - [0x1F41B], - [0x1F41C], - [0x1F41D], - [0x1F41E], - [0x1F997], - [0x1F577, 0xFE0F], - [0x1F578, 0xFE0F], - [0x1F982], - [0x1F99F], - [0x1F9A0], - [0x1F490], - [0x1F338], - [0x1F4AE], - [0x1F3F5, 0xFE0F], - [0x1F339], - [0x1F940], - [0x1F33A], - [0x1F33B], - [0x1F33C], - [0x1F337], - [0x1F331], - [0x1F332], - [0x1F333], - [0x1F334], - [0x1F335], - [0x1F33E], - [0x1F33F], - [0x2618, 0xFE0F], - [0x1F340], - [0x1F341], - [0x1F342], - [0x1F343] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .foodAndDrink), - emojis: [ - [0x1F347], - [0x1F348], - [0x1F349], - [0x1F34A], - [0x1F34B], - [0x1F34C], - [0x1F34D], - [0x1F96D], - [0x1F34E], - [0x1F34F], - [0x1F350], - [0x1F351], - [0x1F352], - [0x1F353], - [0x1F95D], - [0x1F345], - [0x1F965], - [0x1F951], - [0x1F346], - [0x1F954], - [0x1F955], - [0x1F33D], - [0x1F336, 0xFE0F], - [0x1F952], - [0x1F96C], - [0x1F966], - [0x1F9C4], - [0x1F9C5], - [0x1F344], - [0x1F95C], - [0x1F330], - [0x1F35E], - [0x1F950], - [0x1F956], - [0x1F968], - [0x1F96F], - [0x1F95E], - [0x1F9C7], - [0x1F9C0], - [0x1F356], - [0x1F357], - [0x1F969], - [0x1F953], - [0x1F354], - [0x1F35F], - [0x1F355], - [0x1F32D], - [0x1F96A], - [0x1F32E], - [0x1F32F], - [0x1F959], - [0x1F9C6], - [0x1F95A], - [0x1F373], - [0x1F958], - [0x1F372], - [0x1F963], - [0x1F957], - [0x1F37F], - [0x1F9C8], - [0x1F9C2], - [0x1F96B], - [0x1F371], - [0x1F358], - [0x1F359], - [0x1F35A], - [0x1F35B], - [0x1F35C], - [0x1F35D], - [0x1F360], - [0x1F362], - [0x1F363], - [0x1F364], - [0x1F365], - [0x1F96E], - [0x1F361], - [0x1F95F], - [0x1F960], - [0x1F961], - [0x1F980], - [0x1F99E], - [0x1F990], - [0x1F991], - [0x1F9AA], - [0x1F366], - [0x1F367], - [0x1F368], - [0x1F369], - [0x1F36A], - [0x1F382], - [0x1F370], - [0x1F9C1], - [0x1F967], - [0x1F36B], - [0x1F36C], - [0x1F36D], - [0x1F36E], - [0x1F36F], - [0x1F37C], - [0x1F95B], - [0x2615], - [0x1F375], - [0x1F376], - [0x1F37E], - [0x1F377], - [0x1F378], - [0x1F379], - [0x1F37A], - [0x1F37B], - [0x1F942], - [0x1F943], - [0x1F964], - [0x1F9C3], - [0x1F9C9], - [0x1F9CA], - [0x1F962], - [0x1F37D, 0xFE0F], - [0x1F374], - [0x1F944], - [0x1F52A], - [0x1F3FA] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .activity), - emojis: [ - [0x1F383], - [0x1F384], - [0x1F386], - [0x1F387], - [0x1F9E8], - [0x2728], - [0x1F388], - [0x1F389], - [0x1F38A], - [0x1F38B], - [0x1F38D], - [0x1F38E], - [0x1F38F], - [0x1F390], - [0x1F391], - [0x1F9E7], - [0x1F380], - [0x1F381], - [0x1F397, 0xFE0F], - [0x1F39F, 0xFE0F], - [0x1F3AB], - [0x1F396, 0xFE0F], - [0x1F3C6], - [0x1F3C5], - [0x1F947], - [0x1F948], - [0x1F949], - [0x26BD], - [0x26BE], - [0x1F94E], - [0x1F3C0], - [0x1F3D0], - [0x1F3C8], - [0x1F3C9], - [0x1F3BE], - [0x1F94F], - [0x1F3B3], - [0x1F3CF], - [0x1F3D1], - [0x1F3D2], - [0x1F94D], - [0x1F3D3], - [0x1F3F8], - [0x1F94A], - [0x1F94B], - [0x1F945], - [0x26F3], - [0x26F8, 0xFE0F], - [0x1F3A3], - [0x1F93F], - [0x1F3BD], - [0x1F3BF], - [0x1F6F7], - [0x1F94C], - [0x1F3AF], - [0x1FA80], - [0x1FA81], - [0x1F3B1], - [0x1F52E], - [0x1F9FF], - [0x1F3AE], - [0x1F579, 0xFE0F], - [0x1F3B0], - [0x1F3B2], - [0x1F9E9], - [0x1F9F8], - [0x2660, 0xFE0F], - [0x2665, 0xFE0F], - [0x2666, 0xFE0F], - [0x2663, 0xFE0F], - [0x265F, 0xFE0F], - [0x1F0CF], - [0x1F004], - [0x1F3B4], - [0x1F3AD], - [0x1F5BC, 0xFE0F], - [0x1F3A8], - [0x1F9F5], - [0x1F9F6] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .travelAndPlaces), - emojis: [ - [0x1F30D], - [0x1F30E], - [0x1F30F], - [0x1F310], - [0x1F5FA, 0xFE0F], - [0x1F5FE], - [0x1F9ED], - [0x1F3D4, 0xFE0F], - [0x26F0, 0xFE0F], - [0x1F30B], - [0x1F5FB], - [0x1F3D5, 0xFE0F], - [0x1F3D6, 0xFE0F], - [0x1F3DC, 0xFE0F], - [0x1F3DD, 0xFE0F], - [0x1F3DE, 0xFE0F], - [0x1F3DF, 0xFE0F], - [0x1F3DB, 0xFE0F], - [0x1F3D7, 0xFE0F], - [0x1F9F1], - [0x1F3D8, 0xFE0F], - [0x1F3DA, 0xFE0F], - [0x1F3E0], - [0x1F3E1], - [0x1F3E2], - [0x1F3E3], - [0x1F3E4], - [0x1F3E5], - [0x1F3E6], - [0x1F3E8], - [0x1F3E9], - [0x1F3EA], - [0x1F3EB], - [0x1F3EC], - [0x1F3ED], - [0x1F3EF], - [0x1F3F0], - [0x1F492], - [0x1F5FC], - [0x1F5FD], - [0x26EA], - [0x1F54C], - [0x1F6D5], - [0x1F54D], - [0x26E9, 0xFE0F], - [0x1F54B], - [0x26F2], - [0x26FA], - [0x1F301], - [0x1F303], - [0x1F3D9, 0xFE0F], - [0x1F304], - [0x1F305], - [0x1F306], - [0x1F307], - [0x1F309], - [0x2668, 0xFE0F], - [0x1F3A0], - [0x1F3A1], - [0x1F3A2], - [0x1F488], - [0x1F3AA], - [0x1F682], - [0x1F683], - [0x1F684], - [0x1F685], - [0x1F686], - [0x1F687], - [0x1F688], - [0x1F689], - [0x1F68A], - [0x1F69D], - [0x1F69E], - [0x1F68B], - [0x1F68C], - [0x1F68D], - [0x1F68E], - [0x1F690], - [0x1F691], - [0x1F692], - [0x1F693], - [0x1F694], - [0x1F695], - [0x1F696], - [0x1F697], - [0x1F698], - [0x1F699], - [0x1F69A], - [0x1F69B], - [0x1F69C], - [0x1F3CE, 0xFE0F], - [0x1F3CD, 0xFE0F], - [0x1F6F5], - [0x1F9BD], - [0x1F9BC], - [0x1F6FA], - [0x1F6B2], - [0x1F6F4], - [0x1F6F9], - [0x1F68F], - [0x1F6E3, 0xFE0F], - [0x1F6E4, 0xFE0F], - [0x1F6E2, 0xFE0F], - [0x26FD], - [0x1F6A8], - [0x1F6A5], - [0x1F6A6], - [0x1F6D1], - [0x1F6A7], - [0x2693], - [0x26F5], - [0x1F6F6], - [0x1F6A4], - [0x1F6F3, 0xFE0F], - [0x26F4, 0xFE0F], - [0x1F6E5, 0xFE0F], - [0x1F6A2], - [0x2708, 0xFE0F], - [0x1F6E9, 0xFE0F], - [0x1F6EB], - [0x1F6EC], - [0x1FA82], - [0x1F4BA], - [0x1F681], - [0x1F69F], - [0x1F6A0], - [0x1F6A1], - [0x1F6F0, 0xFE0F], - [0x1F680], - [0x1F6F8], - [0x1F6CE, 0xFE0F], - [0x1F9F3], - [0x231B], - [0x23F3], - [0x231A], - [0x23F0], - [0x23F1, 0xFE0F], - [0x23F2, 0xFE0F], - [0x1F570, 0xFE0F], - [0x1F55B], - [0x1F567], - [0x1F550], - [0x1F55C], - [0x1F551], - [0x1F55D], - [0x1F552], - [0x1F55E], - [0x1F553], - [0x1F55F], - [0x1F554], - [0x1F560], - [0x1F555], - [0x1F561], - [0x1F556], - [0x1F562], - [0x1F557], - [0x1F563], - [0x1F558], - [0x1F564], - [0x1F559], - [0x1F565], - [0x1F55A], - [0x1F566], - [0x1F311], - [0x1F312], - [0x1F313], - [0x1F314], - [0x1F315], - [0x1F316], - [0x1F317], - [0x1F318], - [0x1F319], - [0x1F31A], - [0x1F31B], - [0x1F31C], - [0x1F321, 0xFE0F], - [0x2600, 0xFE0F], - [0x1F31D], - [0x1F31E], - [0x1FA90], - [0x2B50], - [0x1F31F], - [0x1F320], - [0x1F30C], - [0x2601, 0xFE0F], - [0x26C5], - [0x26C8, 0xFE0F], - [0x1F324, 0xFE0F], - [0x1F325, 0xFE0F], - [0x1F326, 0xFE0F], - [0x1F327, 0xFE0F], - [0x1F328, 0xFE0F], - [0x1F329, 0xFE0F], - [0x1F32A, 0xFE0F], - [0x1F32B, 0xFE0F], - [0x1F32C, 0xFE0F], - [0x1F300], - [0x1F308], - [0x1F302], - [0x2602, 0xFE0F], - [0x2614], - [0x26F1, 0xFE0F], - [0x26A1], - [0x2744, 0xFE0F], - [0x2603, 0xFE0F], - [0x26C4], - [0x2604, 0xFE0F], - [0x1F525], - [0x1F4A7], - [0x1F30A] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .objects), - emojis: [ - [0x1F453], - [0x1F576, 0xFE0F], - [0x1F97D], - [0x1F97C], - [0x1F9BA], - [0x1F454], - [0x1F455], - [0x1F456], - [0x1F9E3], - [0x1F9E4], - [0x1F9E5], - [0x1F9E6], - [0x1F457], - [0x1F458], - [0x1F97B], - [0x1FA71], - [0x1FA72], - [0x1FA73], - [0x1F459], - [0x1F45A], - [0x1F45B], - [0x1F45C], - [0x1F45D], - [0x1F6CD, 0xFE0F], - [0x1F392], - [0x1F45E], - [0x1F45F], - [0x1F97E], - [0x1F97F], - [0x1F460], - [0x1F461], - [0x1FA70], - [0x1F462], - [0x1F451], - [0x1F452], - [0x1F3A9], - [0x1F393], - [0x1F9E2], - [0x26D1, 0xFE0F], - [0x1F4FF], - [0x1F484], - [0x1F48D], - [0x1F48E], - [0x1F507], - [0x1F508], - [0x1F509], - [0x1F50A], - [0x1F4E2], - [0x1F4E3], - [0x1F4EF], - [0x1F514], - [0x1F515], - [0x1F3BC], - [0x1F3B5], - [0x1F3B6], - [0x1F399, 0xFE0F], - [0x1F39A, 0xFE0F], - [0x1F39B, 0xFE0F], - [0x1F3A4], - [0x1F3A7], - [0x1F4FB], - [0x1F3B7], - [0x1F3B8], - [0x1F3B9], - [0x1F3BA], - [0x1F3BB], - [0x1FA95], - [0x1F941], - [0x1F4F1], - [0x1F4F2], - [0x260E, 0xFE0F], - [0x1F4DE], - [0x1F4DF], - [0x1F4E0], - [0x1F50B], - [0x1F50C], - [0x1F4BB], - [0x1F5A5, 0xFE0F], - [0x1F5A8, 0xFE0F], - [0x2328, 0xFE0F], - [0x1F5B1, 0xFE0F], - [0x1F5B2, 0xFE0F], - [0x1F4BD], - [0x1F4BE], - [0x1F4BF], - [0x1F4C0], - [0x1F9EE], - [0x1F3A5], - [0x1F39E, 0xFE0F], - [0x1F4FD, 0xFE0F], - [0x1F3AC], - [0x1F4FA], - [0x1F4F7], - [0x1F4F8], - [0x1F4F9], - [0x1F4FC], - [0x1F50D], - [0x1F50E], - [0x1F56F, 0xFE0F], - [0x1F4A1], - [0x1F526], - [0x1F3EE], - [0x1FA94], - [0x1F4D4], - [0x1F4D5], - [0x1F4D6], - [0x1F4D7], - [0x1F4D8], - [0x1F4D9], - [0x1F4DA], - [0x1F4D3], - [0x1F4D2], - [0x1F4C3], - [0x1F4DC], - [0x1F4C4], - [0x1F4F0], - [0x1F5DE, 0xFE0F], - [0x1F4D1], - [0x1F516], - [0x1F3F7, 0xFE0F], - [0x1F4B0], - [0x1F4B4], - [0x1F4B5], - [0x1F4B6], - [0x1F4B7], - [0x1F4B8], - [0x1F4B3], - [0x1F9FE], - [0x1F4B9], - [0x1F4B1], - [0x1F4B2], - [0x2709, 0xFE0F], - [0x1F4E7], - [0x1F4E8], - [0x1F4E9], - [0x1F4E4], - [0x1F4E5], - [0x1F4E6], - [0x1F4EB], - [0x1F4EA], - [0x1F4EC], - [0x1F4ED], - [0x1F4EE], - [0x1F5F3, 0xFE0F], - [0x270F, 0xFE0F], - [0x2712, 0xFE0F], - [0x1F58B, 0xFE0F], - [0x1F58A, 0xFE0F], - [0x1F58C, 0xFE0F], - [0x1F58D, 0xFE0F], - [0x1F4DD], - [0x1F4BC], - [0x1F4C1], - [0x1F4C2], - [0x1F5C2, 0xFE0F], - [0x1F4C5], - [0x1F4C6], - [0x1F5D2, 0xFE0F], - [0x1F5D3, 0xFE0F], - [0x1F4C7], - [0x1F4C8], - [0x1F4C9], - [0x1F4CA], - [0x1F4CB], - [0x1F4CC], - [0x1F4CD], - [0x1F4CE], - [0x1F587, 0xFE0F], - [0x1F4CF], - [0x1F4D0], - [0x2702, 0xFE0F], - [0x1F5C3, 0xFE0F], - [0x1F5C4, 0xFE0F], - [0x1F5D1, 0xFE0F], - [0x1F512], - [0x1F513], - [0x1F50F], - [0x1F510], - [0x1F511], - [0x1F5DD, 0xFE0F], - [0x1F528], - [0x1FA93], - [0x26CF, 0xFE0F], - [0x2692, 0xFE0F], - [0x1F6E0, 0xFE0F], - [0x1F5E1, 0xFE0F], - [0x2694, 0xFE0F], - [0x1F52B], - [0x1F3F9], - [0x1F6E1, 0xFE0F], - [0x1F527], - [0x1F529], - [0x2699, 0xFE0F], - [0x1F5DC, 0xFE0F], - [0x2696, 0xFE0F], - [0x1F9AF], - [0x1F517], - [0x26D3, 0xFE0F], - [0x1F9F0], - [0x1F9F2], - [0x2697, 0xFE0F], - [0x1F9EA], - [0x1F9EB], - [0x1F9EC], - [0x1F52C], - [0x1F52D], - [0x1F4E1], - [0x1F489], - [0x1FA78], - [0x1F48A], - [0x1FA79], - [0x1FA7A], - [0x1F6AA], - [0x1F6CF, 0xFE0F], - [0x1F6CB, 0xFE0F], - [0x1FA91], - [0x1F6BD], - [0x1F6BF], - [0x1F6C1], - [0x1FA92], - [0x1F9F4], - [0x1F9F7], - [0x1F9F9], - [0x1F9FA], - [0x1F9FB], - [0x1F9FC], - [0x1F9FD], - [0x1F9EF], - [0x1F6D2], - [0x1F6AC], - [0x26B0, 0xFE0F], - [0x26B1, 0xFE0F], - [0x1F5FF] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .symbols), - emojis: [ - [0x1F3E7], - [0x1F6AE], - [0x1F6B0], - [0x267F], - [0x1F6B9], - [0x1F6BA], - [0x1F6BB], - [0x1F6BC], - [0x1F6BE], - [0x1F6C2], - [0x1F6C3], - [0x1F6C4], - [0x1F6C5], - [0x26A0, 0xFE0F], - [0x1F6B8], - [0x26D4], - [0x1F6AB], - [0x1F6B3], - [0x1F6AD], - [0x1F6AF], - [0x1F6B1], - [0x1F6B7], - [0x1F4F5], - [0x1F51E], - [0x2622, 0xFE0F], - [0x2623, 0xFE0F], - [0x2B06, 0xFE0F], - [0x2197, 0xFE0F], - [0x27A1, 0xFE0F], - [0x2198, 0xFE0F], - [0x2B07, 0xFE0F], - [0x2199, 0xFE0F], - [0x2B05, 0xFE0F], - [0x2196, 0xFE0F], - [0x2195, 0xFE0F], - [0x2194, 0xFE0F], - [0x21A9, 0xFE0F], - [0x21AA, 0xFE0F], - [0x2934, 0xFE0F], - [0x2935, 0xFE0F], - [0x1F503], - [0x1F504], - [0x1F519], - [0x1F51A], - [0x1F51B], - [0x1F51C], - [0x1F51D], - [0x1F6D0], - [0x269B, 0xFE0F], - [0x1F549, 0xFE0F], - [0x2721, 0xFE0F], - [0x2638, 0xFE0F], - [0x262F, 0xFE0F], - [0x271D, 0xFE0F], - [0x2626, 0xFE0F], - [0x262A, 0xFE0F], - [0x262E, 0xFE0F], - [0x1F54E], - [0x1F52F], - [0x2648], - [0x2649], - [0x264A], - [0x264B], - [0x264C], - [0x264D], - [0x264E], - [0x264F], - [0x2650], - [0x2651], - [0x2652], - [0x2653], - [0x26CE], - [0x1F500], - [0x1F501], - [0x1F502], - [0x25B6, 0xFE0F], - [0x23E9], - [0x23ED, 0xFE0F], - [0x23EF, 0xFE0F], - [0x25C0, 0xFE0F], - [0x23EA], - [0x23EE, 0xFE0F], - [0x1F53C], - [0x23EB], - [0x1F53D], - [0x23EC], - [0x23F8, 0xFE0F], - [0x23F9, 0xFE0F], - [0x23FA, 0xFE0F], - [0x23CF, 0xFE0F], - [0x1F3A6], - [0x1F505], - [0x1F506], - [0x1F4F6], - [0x1F4F3], - [0x1F4F4], - [0x2640, 0xFE0F], - [0x2642, 0xFE0F], - [0x2695, 0xFE0F], - [0x267E, 0xFE0F], - [0x267B, 0xFE0F], - [0x269C, 0xFE0F], - [0x1F531], - [0x1F4DB], - [0x1F530], - [0x2B55], - [0x2705], - [0x2611, 0xFE0F], - [0x2714, 0xFE0F], - [0x2716, 0xFE0F], - [0x274C], - [0x274E], - [0x2795], - [0x2796], - [0x2797], - [0x27B0], - [0x27BF], - [0x303D, 0xFE0F], - [0x2733, 0xFE0F], - [0x2734, 0xFE0F], - [0x2747, 0xFE0F], - [0x203C, 0xFE0F], - [0x2049, 0xFE0F], - [0x2753], - [0x2754], - [0x2755], - [0x2757], - [0x3030, 0xFE0F], - [0x00A9, 0xFE0F], - [0x00AE, 0xFE0F], - [0x2122, 0xFE0F], - [0x0023, 0xFE0F, 0x20E3], - [0x002A, 0xFE0F, 0x20E3], - [0x0030, 0xFE0F, 0x20E3], - [0x0031, 0xFE0F, 0x20E3], - [0x0032, 0xFE0F, 0x20E3], - [0x0033, 0xFE0F, 0x20E3], - [0x0034, 0xFE0F, 0x20E3], - [0x0035, 0xFE0F, 0x20E3], - [0x0036, 0xFE0F, 0x20E3], - [0x0037, 0xFE0F, 0x20E3], - [0x0038, 0xFE0F, 0x20E3], - [0x0039, 0xFE0F, 0x20E3], - [0x1F51F], - [0x1F520], - [0x1F521], - [0x1F522], - [0x1F523], - [0x1F524], - [0x1F170, 0xFE0F], - [0x1F18E], - [0x1F171, 0xFE0F], - [0x1F191], - [0x1F192], - [0x1F193], - [0x2139, 0xFE0F], - [0x1F194], - [0x24C2, 0xFE0F], - [0x1F195], - [0x1F196], - [0x1F17E, 0xFE0F], - [0x1F197], - [0x1F17F, 0xFE0F], - [0x1F198], - [0x1F199], - [0x1F19A], - [0x1F201], - [0x1F202, 0xFE0F], - [0x1F237, 0xFE0F], - [0x1F236], - [0x1F22F], - [0x1F250], - [0x1F239], - [0x1F21A], - [0x1F232], - [0x1F251], - [0x1F238], - [0x1F234], - [0x1F233], - [0x3297, 0xFE0F], - [0x3299, 0xFE0F], - [0x1F23A], - [0x1F235], - [0x1F534], - [0x1F7E0], - [0x1F7E1], - [0x1F7E2], - [0x1F535], - [0x1F7E3], - [0x1F7E4], - [0x26AB], - [0x26AA], - [0x1F7E5], - [0x1F7E7], - [0x1F7E8], - [0x1F7E9], - [0x1F7E6], - [0x1F7EA], - [0x1F7EB], - [0x2B1B], - [0x2B1C], - [0x25FC, 0xFE0F], - [0x25FB, 0xFE0F], - [0x25FE], - [0x25FD], - [0x25AA, 0xFE0F], - [0x25AB, 0xFE0F], - [0x1F536], - [0x1F537], - [0x1F538], - [0x1F539], - [0x1F53A], - [0x1F53B], - [0x1F4A0], - [0x1F518], - [0x1F533], - [0x1F532] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .flags), - emojis: [ - [0x1F3C1], - [0x1F6A9], - [0x1F38C], - [0x1F3F4], - [0x1F3F3, 0xFE0F], - [0x1F3F3, 0xFE0F, 0x200D, 0x1F308], - [0x1F3F4, 0x200D, 0x2620, 0xFE0F], - [0x1F1E6, 0x1F1E8], - [0x1F1E6, 0x1F1E9], - [0x1F1E6, 0x1F1EA], - [0x1F1E6, 0x1F1EB], - [0x1F1E6, 0x1F1EC], - [0x1F1E6, 0x1F1EE], - [0x1F1E6, 0x1F1F1], - [0x1F1E6, 0x1F1F2], - [0x1F1E6, 0x1F1F4], - [0x1F1E6, 0x1F1F6], - [0x1F1E6, 0x1F1F7], - [0x1F1E6, 0x1F1F8], - [0x1F1E6, 0x1F1F9], - [0x1F1E6, 0x1F1FA], - [0x1F1E6, 0x1F1FC], - [0x1F1E6, 0x1F1FD], - [0x1F1E6, 0x1F1FF], - [0x1F1E7, 0x1F1E6], - [0x1F1E7, 0x1F1E7], - [0x1F1E7, 0x1F1E9], - [0x1F1E7, 0x1F1EA], - [0x1F1E7, 0x1F1EB], - [0x1F1E7, 0x1F1EC], - [0x1F1E7, 0x1F1ED], - [0x1F1E7, 0x1F1EE], - [0x1F1E7, 0x1F1EF], - [0x1F1E7, 0x1F1F1], - [0x1F1E7, 0x1F1F2], - [0x1F1E7, 0x1F1F3], - [0x1F1E7, 0x1F1F4], - [0x1F1E7, 0x1F1F6], - [0x1F1E7, 0x1F1F7], - [0x1F1E7, 0x1F1F8], - [0x1F1E7, 0x1F1F9], - [0x1F1E7, 0x1F1FB], - [0x1F1E7, 0x1F1FC], - [0x1F1E7, 0x1F1FE], - [0x1F1E7, 0x1F1FF], - [0x1F1E8, 0x1F1E6], - [0x1F1E8, 0x1F1E8], - [0x1F1E8, 0x1F1E9], - [0x1F1E8, 0x1F1EB], - [0x1F1E8, 0x1F1EC], - [0x1F1E8, 0x1F1ED], - [0x1F1E8, 0x1F1EE], - [0x1F1E8, 0x1F1F0], - [0x1F1E8, 0x1F1F1], - [0x1F1E8, 0x1F1F2], - [0x1F1E8, 0x1F1F3], - [0x1F1E8, 0x1F1F4], - [0x1F1E8, 0x1F1F5], - [0x1F1E8, 0x1F1F7], - [0x1F1E8, 0x1F1FA], - [0x1F1E8, 0x1F1FB], - [0x1F1E8, 0x1F1FC], - [0x1F1E8, 0x1F1FD], - [0x1F1E8, 0x1F1FE], - [0x1F1E8, 0x1F1FF], - [0x1F1E9, 0x1F1EA], - [0x1F1E9, 0x1F1EC], - [0x1F1E9, 0x1F1EF], - [0x1F1E9, 0x1F1F0], - [0x1F1E9, 0x1F1F2], - [0x1F1E9, 0x1F1F4], - [0x1F1E9, 0x1F1FF], - [0x1F1EA, 0x1F1E6], - [0x1F1EA, 0x1F1E8], - [0x1F1EA, 0x1F1EA], - [0x1F1EA, 0x1F1EC], - [0x1F1EA, 0x1F1ED], - [0x1F1EA, 0x1F1F7], - [0x1F1EA, 0x1F1F8], - [0x1F1EA, 0x1F1F9], - [0x1F1EA, 0x1F1FA], - [0x1F1EB, 0x1F1EE], - [0x1F1EB, 0x1F1EF], - [0x1F1EB, 0x1F1F0], - [0x1F1EB, 0x1F1F2], - [0x1F1EB, 0x1F1F4], - [0x1F1EB, 0x1F1F7], - [0x1F1EC, 0x1F1E6], - [0x1F1EC, 0x1F1E7], - [0x1F1EC, 0x1F1E9], - [0x1F1EC, 0x1F1EA], - [0x1F1EC, 0x1F1EB], - [0x1F1EC, 0x1F1EC], - [0x1F1EC, 0x1F1ED], - [0x1F1EC, 0x1F1EE], - [0x1F1EC, 0x1F1F1], - [0x1F1EC, 0x1F1F2], - [0x1F1EC, 0x1F1F3], - [0x1F1EC, 0x1F1F5], - [0x1F1EC, 0x1F1F6], - [0x1F1EC, 0x1F1F7], - [0x1F1EC, 0x1F1F8], - [0x1F1EC, 0x1F1F9], - [0x1F1EC, 0x1F1FA], - [0x1F1EC, 0x1F1FC], - [0x1F1EC, 0x1F1FE], - [0x1F1ED, 0x1F1F0], - [0x1F1ED, 0x1F1F2], - [0x1F1ED, 0x1F1F3], - [0x1F1ED, 0x1F1F7], - [0x1F1ED, 0x1F1F9], - [0x1F1ED, 0x1F1FA], - [0x1F1EE, 0x1F1E8], - [0x1F1EE, 0x1F1E9], - [0x1F1EE, 0x1F1EA], - [0x1F1EE, 0x1F1F1], - [0x1F1EE, 0x1F1F2], - [0x1F1EE, 0x1F1F3], - [0x1F1EE, 0x1F1F4], - [0x1F1EE, 0x1F1F6], - [0x1F1EE, 0x1F1F7], - [0x1F1EE, 0x1F1F8], - [0x1F1EE, 0x1F1F9], - [0x1F1EF, 0x1F1EA], - [0x1F1EF, 0x1F1F2], - [0x1F1EF, 0x1F1F4], - [0x1F1EF, 0x1F1F5], - [0x1F1F0, 0x1F1EA], - [0x1F1F0, 0x1F1EC], - [0x1F1F0, 0x1F1ED], - [0x1F1F0, 0x1F1EE], - [0x1F1F0, 0x1F1F2], - [0x1F1F0, 0x1F1F3], - [0x1F1F0, 0x1F1F5], - [0x1F1F0, 0x1F1F7], - [0x1F1F0, 0x1F1FC], - [0x1F1F0, 0x1F1FE], - [0x1F1F0, 0x1F1FF], - [0x1F1F1, 0x1F1E6], - [0x1F1F1, 0x1F1E7], - [0x1F1F1, 0x1F1E8], - [0x1F1F1, 0x1F1EE], - [0x1F1F1, 0x1F1F0], - [0x1F1F1, 0x1F1F7], - [0x1F1F1, 0x1F1F8], - [0x1F1F1, 0x1F1F9], - [0x1F1F1, 0x1F1FA], - [0x1F1F1, 0x1F1FB], - [0x1F1F1, 0x1F1FE], - [0x1F1F2, 0x1F1E6], - [0x1F1F2, 0x1F1E8], - [0x1F1F2, 0x1F1E9], - [0x1F1F2, 0x1F1EA], - [0x1F1F2, 0x1F1EB], - [0x1F1F2, 0x1F1EC], - [0x1F1F2, 0x1F1ED], - [0x1F1F2, 0x1F1F0], - [0x1F1F2, 0x1F1F1], - [0x1F1F2, 0x1F1F2], - [0x1F1F2, 0x1F1F3], - [0x1F1F2, 0x1F1F4], - [0x1F1F2, 0x1F1F5], - [0x1F1F2, 0x1F1F6], - [0x1F1F2, 0x1F1F7], - [0x1F1F2, 0x1F1F8], - [0x1F1F2, 0x1F1F9], - [0x1F1F2, 0x1F1FA], - [0x1F1F2, 0x1F1FB], - [0x1F1F2, 0x1F1FC], - [0x1F1F2, 0x1F1FD], - [0x1F1F2, 0x1F1FE], - [0x1F1F2, 0x1F1FF], - [0x1F1F3, 0x1F1E6], - [0x1F1F3, 0x1F1E8], - [0x1F1F3, 0x1F1EA], - [0x1F1F3, 0x1F1EB], - [0x1F1F3, 0x1F1EC], - [0x1F1F3, 0x1F1EE], - [0x1F1F3, 0x1F1F1], - [0x1F1F3, 0x1F1F4], - [0x1F1F3, 0x1F1F5], - [0x1F1F3, 0x1F1F7], - [0x1F1F3, 0x1F1FA], - [0x1F1F3, 0x1F1FF], - [0x1F1F4, 0x1F1F2], - [0x1F1F5, 0x1F1E6], - [0x1F1F5, 0x1F1EA], - [0x1F1F5, 0x1F1EB], - [0x1F1F5, 0x1F1EC], - [0x1F1F5, 0x1F1ED], - [0x1F1F5, 0x1F1F0], - [0x1F1F5, 0x1F1F1], - [0x1F1F5, 0x1F1F2], - [0x1F1F5, 0x1F1F3], - [0x1F1F5, 0x1F1F7], - [0x1F1F5, 0x1F1F8], - [0x1F1F5, 0x1F1F9], - [0x1F1F5, 0x1F1FC], - [0x1F1F5, 0x1F1FE], - [0x1F1F6, 0x1F1E6], - [0x1F1F7, 0x1F1EA], - [0x1F1F7, 0x1F1F4], - [0x1F1F7, 0x1F1F8], - [0x1F1F7, 0x1F1FA], - [0x1F1F7, 0x1F1FC], - [0x1F1F8, 0x1F1E6], - [0x1F1F8, 0x1F1E7], - [0x1F1F8, 0x1F1E8], - [0x1F1F8, 0x1F1E9], - [0x1F1F8, 0x1F1EA], - [0x1F1F8, 0x1F1EC], - [0x1F1F8, 0x1F1ED], - [0x1F1F8, 0x1F1EE], - [0x1F1F8, 0x1F1EF], - [0x1F1F8, 0x1F1F0], - [0x1F1F8, 0x1F1F1], - [0x1F1F8, 0x1F1F2], - [0x1F1F8, 0x1F1F3], - [0x1F1F8, 0x1F1F4], - [0x1F1F8, 0x1F1F7], - [0x1F1F8, 0x1F1F8], - [0x1F1F8, 0x1F1F9], - [0x1F1F8, 0x1F1FB], - [0x1F1F8, 0x1F1FD], - [0x1F1F8, 0x1F1FE], - [0x1F1F8, 0x1F1FF], - [0x1F1F9, 0x1F1E6], - [0x1F1F9, 0x1F1E8], - [0x1F1F9, 0x1F1E9], - [0x1F1F9, 0x1F1EB], - [0x1F1F9, 0x1F1EC], - [0x1F1F9, 0x1F1ED], - [0x1F1F9, 0x1F1EF], - [0x1F1F9, 0x1F1F0], - [0x1F1F9, 0x1F1F1], - [0x1F1F9, 0x1F1F2], - [0x1F1F9, 0x1F1F3], - [0x1F1F9, 0x1F1F4], - [0x1F1F9, 0x1F1F7], - [0x1F1F9, 0x1F1F9], - [0x1F1F9, 0x1F1FB], - [0x1F1F9, 0x1F1FC], - [0x1F1F9, 0x1F1FF], - [0x1F1FA, 0x1F1E6], - [0x1F1FA, 0x1F1EC], - [0x1F1FA, 0x1F1F2], - [0x1F1FA, 0x1F1F3], - [0x1F1FA, 0x1F1F8], - [0x1F1FA, 0x1F1FE], - [0x1F1FA, 0x1F1FF], - [0x1F1FB, 0x1F1E6], - [0x1F1FB, 0x1F1E8], - [0x1F1FB, 0x1F1EA], - [0x1F1FB, 0x1F1EC], - [0x1F1FB, 0x1F1EE], - [0x1F1FB, 0x1F1F3], - [0x1F1FB, 0x1F1FA], - [0x1F1FC, 0x1F1EB], - [0x1F1FC, 0x1F1F8], - [0x1F1FD, 0x1F1F0], - [0x1F1FE, 0x1F1EA], - [0x1F1FE, 0x1F1F9], - [0x1F1FF, 0x1F1E6], - [0x1F1FF, 0x1F1F2], - [0x1F1FF, 0x1F1FC], - [0x1F3F4, 0xE0067, 0xE0062, 0xE0065, 0xE006E, 0xE0067, 0xE007F], - [0x1F3F4, 0xE0067, 0xE0062, 0xE0073, 0xE0063, 0xE0074, 0xE007F], - [0x1F3F4, 0xE0067, 0xE0062, 0xE0077, 0xE006C, 0xE0073, 0xE007F] - ] - ) - ] - } -} diff --git a/Sources/EmojiPicker/Services/Unicode/Unicode 13.swift b/Sources/EmojiPicker/Services/Unicode/Unicode 13.swift deleted file mode 100644 index dc8dc22..0000000 --- a/Sources/EmojiPicker/Services/Unicode/Unicode 13.swift +++ /dev/null @@ -1,1872 +0,0 @@ -// The MIT License (MIT) -// Copyright © 2022 Ivan Izyumkin -// -// 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. - -extension UnicodeManager { - var unicode13: [EmojiCategory] { - return [ - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .people), - emojis: [ - [0x1F600], - [0x1F603], - [0x1F604], - [0x1F601], - [0x1F606], - [0x1F605], - [0x1F923], - [0x1F602], - [0x1F642], - [0x1F643], - [0x1F609], - [0x1F60A], - [0x1F607], - [0x1F970], - [0x1F60D], - [0x1F929], - [0x1F618], - [0x1F617], - [0x263A, 0xFE0F], - [0x1F61A], - [0x1F619], - [0x1F972], - [0x1F60B], - [0x1F61B], - [0x1F61C], - [0x1F92A], - [0x1F61D], - [0x1F911], - [0x1F917], - [0x1F92D], - [0x1F92B], - [0x1F914], - [0x1F910], - [0x1F928], - [0x1F610], - [0x1F611], - [0x1F636], - [0x1F60F], - [0x1F612], - [0x1F644], - [0x1F62C], - [0x1F925], - [0x1F60C], - [0x1F614], - [0x1F62A], - [0x1F924], - [0x1F634], - [0x1F637], - [0x1F912], - [0x1F915], - [0x1F922], - [0x1F92E], - [0x1F927], - [0x1F975], - [0x1F976], - [0x1F974], - [0x1F635], - [0x1F92F], - [0x1F920], - [0x1F973], - [0x1F978], - [0x1F60E], - [0x1F913], - [0x1F9D0], - [0x1F615], - [0x1F61F], - [0x1F641], - [0x2639, 0xFE0F], - [0x1F62E], - [0x1F62F], - [0x1F632], - [0x1F633], - [0x1F97A], - [0x1F626], - [0x1F627], - [0x1F628], - [0x1F630], - [0x1F625], - [0x1F622], - [0x1F62D], - [0x1F631], - [0x1F616], - [0x1F623], - [0x1F61E], - [0x1F613], - [0x1F629], - [0x1F62B], - [0x1F971], - [0x1F624], - [0x1F621], - [0x1F620], - [0x1F92C], - [0x1F608], - [0x1F47F], - [0x1F480], - [0x2620, 0xFE0F], - [0x1F4A9], - [0x1F921], - [0x1F479], - [0x1F47A], - [0x1F47B], - [0x1F47D], - [0x1F47E], - [0x1F916], - [0x1F63A], - [0x1F638], - [0x1F639], - [0x1F63B], - [0x1F63C], - [0x1F63D], - [0x1F640], - [0x1F63F], - [0x1F63E], - [0x1F648], - [0x1F649], - [0x1F64A], - [0x1F48B], - [0x1F48C], - [0x1F498], - [0x1F49D], - [0x1F496], - [0x1F497], - [0x1F493], - [0x1F49E], - [0x1F495], - [0x1F49F], - [0x2763, 0xFE0F], - [0x1F494], - [0x2764, 0xFE0F], - [0x1F9E1], - [0x1F49B], - [0x1F49A], - [0x1F499], - [0x1F49C], - [0x1F90E], - [0x1F5A4], - [0x1F90D], - [0x1F4AF], - [0x1F4A2], - [0x1F4A5], - [0x1F4AB], - [0x1F4A6], - [0x1F4A8], - [0x1F573, 0xFE0F], - [0x1F4A3], - [0x1F4AC], - [0x1F441, 0xFE0F, 0x200D, 0x1F5E8, 0xFE0F], - [0x1F5E8, 0xFE0F], - [0x1F5EF, 0xFE0F], - [0x1F4AD], - [0x1F4A4], - [0x1F44B], - [0x1F91A], - [0x1F590, 0xFE0F], - [0x270B], - [0x1F596], - [0x1F44C], - [0x1F90C], - [0x1F90F], - [0x270C, 0xFE0F], - [0x1F91E], - [0x1F91F], - [0x1F918], - [0x1F919], - [0x1F448], - [0x1F449], - [0x1F446], - [0x1F595], - [0x1F447], - [0x261D, 0xFE0F], - [0x1F44D], - [0x1F44E], - [0x270A], - [0x1F44A], - [0x1F91B], - [0x1F91C], - [0x1F44F], - [0x1F64C], - [0x1F450], - [0x1F932], - [0x1F91D], - [0x1F64F], - [0x270D, 0xFE0F], - [0x1F485], - [0x1F933], - [0x1F4AA], - [0x1F9BE], - [0x1F9BF], - [0x1F9B5], - [0x1F9B6], - [0x1F442], - [0x1F9BB], - [0x1F443], - [0x1F9E0], - [0x1FAC0], - [0x1FAC1], - [0x1F9B7], - [0x1F9B4], - [0x1F440], - [0x1F441, 0xFE0F], - [0x1F445], - [0x1F444], - [0x1F476], - [0x1F9D2], - [0x1F466], - [0x1F467], - [0x1F9D1], - [0x1F471], - [0x1F468], - [0x1F9D4], - [0x1F468, 0x200D, 0x1F9B0], - [0x1F468, 0x200D, 0x1F9B1], - [0x1F468, 0x200D, 0x1F9B3], - [0x1F468, 0x200D, 0x1F9B2], - [0x1F469], - [0x1F469, 0x200D, 0x1F9B0], - [0x1F9D1, 0x200D, 0x1F9B0], - [0x1F469, 0x200D, 0x1F9B1], - [0x1F9D1, 0x200D, 0x1F9B1], - [0x1F469, 0x200D, 0x1F9B3], - [0x1F9D1, 0x200D, 0x1F9B3], - [0x1F469, 0x200D, 0x1F9B2], - [0x1F9D1, 0x200D, 0x1F9B2], - [0x1F471, 0x200D, 0x2640, 0xFE0F], - [0x1F471, 0x200D, 0x2642, 0xFE0F], - [0x1F9D3], - [0x1F474], - [0x1F475], - [0x1F64D], - [0x1F64D, 0x200D, 0x2642, 0xFE0F], - [0x1F64D, 0x200D, 0x2640, 0xFE0F], - [0x1F64E], - [0x1F64E, 0x200D, 0x2642, 0xFE0F], - [0x1F64E, 0x200D, 0x2640, 0xFE0F], - [0x1F645], - [0x1F645, 0x200D, 0x2642, 0xFE0F], - [0x1F645, 0x200D, 0x2640, 0xFE0F], - [0x1F646], - [0x1F646, 0x200D, 0x2642, 0xFE0F], - [0x1F646, 0x200D, 0x2640, 0xFE0F], - [0x1F481], - [0x1F481, 0x200D, 0x2642, 0xFE0F], - [0x1F481, 0x200D, 0x2640, 0xFE0F], - [0x1F64B], - [0x1F64B, 0x200D, 0x2642, 0xFE0F], - [0x1F64B, 0x200D, 0x2640, 0xFE0F], - [0x1F9CF], - [0x1F9CF, 0x200D, 0x2642, 0xFE0F], - [0x1F9CF, 0x200D, 0x2640, 0xFE0F], - [0x1F647], - [0x1F647, 0x200D, 0x2642, 0xFE0F], - [0x1F647, 0x200D, 0x2640, 0xFE0F], - [0x1F926], - [0x1F926, 0x200D, 0x2642, 0xFE0F], - [0x1F926, 0x200D, 0x2640, 0xFE0F], - [0x1F937], - [0x1F937, 0x200D, 0x2642, 0xFE0F], - [0x1F937, 0x200D, 0x2640, 0xFE0F], - [0x1F9D1, 0x200D, 0x2695, 0xFE0F], - [0x1F468, 0x200D, 0x2695, 0xFE0F], - [0x1F469, 0x200D, 0x2695, 0xFE0F], - [0x1F9D1, 0x200D, 0x1F393], - [0x1F468, 0x200D, 0x1F393], - [0x1F469, 0x200D, 0x1F393], - [0x1F9D1, 0x200D, 0x1F3EB], - [0x1F468, 0x200D, 0x1F3EB], - [0x1F469, 0x200D, 0x1F3EB], - [0x1F9D1, 0x200D, 0x2696, 0xFE0F], - [0x1F468, 0x200D, 0x2696, 0xFE0F], - [0x1F469, 0x200D, 0x2696, 0xFE0F], - [0x1F9D1, 0x200D, 0x1F33E], - [0x1F468, 0x200D, 0x1F33E], - [0x1F469, 0x200D, 0x1F33E], - [0x1F9D1, 0x200D, 0x1F373], - [0x1F468, 0x200D, 0x1F373], - [0x1F469, 0x200D, 0x1F373], - [0x1F9D1, 0x200D, 0x1F527], - [0x1F468, 0x200D, 0x1F527], - [0x1F469, 0x200D, 0x1F527], - [0x1F9D1, 0x200D, 0x1F3ED], - [0x1F468, 0x200D, 0x1F3ED], - [0x1F469, 0x200D, 0x1F3ED], - [0x1F9D1, 0x200D, 0x1F4BC], - [0x1F468, 0x200D, 0x1F4BC], - [0x1F469, 0x200D, 0x1F4BC], - [0x1F9D1, 0x200D, 0x1F52C], - [0x1F468, 0x200D, 0x1F52C], - [0x1F469, 0x200D, 0x1F52C], - [0x1F9D1, 0x200D, 0x1F4BB], - [0x1F468, 0x200D, 0x1F4BB], - [0x1F469, 0x200D, 0x1F4BB], - [0x1F9D1, 0x200D, 0x1F3A4], - [0x1F468, 0x200D, 0x1F3A4], - [0x1F469, 0x200D, 0x1F3A4], - [0x1F9D1, 0x200D, 0x1F3A8], - [0x1F468, 0x200D, 0x1F3A8], - [0x1F469, 0x200D, 0x1F3A8], - [0x1F9D1, 0x200D, 0x2708, 0xFE0F], - [0x1F468, 0x200D, 0x2708, 0xFE0F], - [0x1F469, 0x200D, 0x2708, 0xFE0F], - [0x1F9D1, 0x200D, 0x1F680], - [0x1F468, 0x200D, 0x1F680], - [0x1F469, 0x200D, 0x1F680], - [0x1F9D1, 0x200D, 0x1F692], - [0x1F468, 0x200D, 0x1F692], - [0x1F469, 0x200D, 0x1F692], - [0x1F46E], - [0x1F46E, 0x200D, 0x2642, 0xFE0F], - [0x1F46E, 0x200D, 0x2640, 0xFE0F], - [0x1F575, 0xFE0F], - [0x1F575, 0xFE0F, 0x200D, 0x2642, 0xFE0F], - [0x1F575, 0xFE0F, 0x200D, 0x2640, 0xFE0F], - [0x1F482], - [0x1F482, 0x200D, 0x2642, 0xFE0F], - [0x1F482, 0x200D, 0x2640, 0xFE0F], - [0x1F977], - [0x1F477], - [0x1F477, 0x200D, 0x2642, 0xFE0F], - [0x1F477, 0x200D, 0x2640, 0xFE0F], - [0x1F934], - [0x1F478], - [0x1F473], - [0x1F473, 0x200D, 0x2642, 0xFE0F], - [0x1F473, 0x200D, 0x2640, 0xFE0F], - [0x1F472], - [0x1F9D5], - [0x1F935], - [0x1F935, 0x200D, 0x2642, 0xFE0F], - [0x1F935, 0x200D, 0x2640, 0xFE0F], - [0x1F470], - [0x1F470, 0x200D, 0x2642, 0xFE0F], - [0x1F470, 0x200D, 0x2640, 0xFE0F], - [0x1F930], - [0x1F931], - [0x1F469, 0x200D, 0x1F37C], - [0x1F468, 0x200D, 0x1F37C], - [0x1F9D1, 0x200D, 0x1F37C], - [0x1F47C], - [0x1F385], - [0x1F936], - [0x1F9D1, 0x200D, 0x1F384], - [0x1F9B8], - [0x1F9B8, 0x200D, 0x2642, 0xFE0F], - [0x1F9B8, 0x200D, 0x2640, 0xFE0F], - [0x1F9B9], - [0x1F9B9, 0x200D, 0x2642, 0xFE0F], - [0x1F9B9, 0x200D, 0x2640, 0xFE0F], - [0x1F9D9], - [0x1F9D9, 0x200D, 0x2642, 0xFE0F], - [0x1F9D9, 0x200D, 0x2640, 0xFE0F], - [0x1F9DA], - [0x1F9DA, 0x200D, 0x2642, 0xFE0F], - [0x1F9DA, 0x200D, 0x2640, 0xFE0F], - [0x1F9DB], - [0x1F9DB, 0x200D, 0x2642, 0xFE0F], - [0x1F9DB, 0x200D, 0x2640, 0xFE0F], - [0x1F9DC], - [0x1F9DC, 0x200D, 0x2642, 0xFE0F], - [0x1F9DC, 0x200D, 0x2640, 0xFE0F], - [0x1F9DD], - [0x1F9DD, 0x200D, 0x2642, 0xFE0F], - [0x1F9DD, 0x200D, 0x2640, 0xFE0F], - [0x1F9DE], - [0x1F9DE, 0x200D, 0x2642, 0xFE0F], - [0x1F9DE, 0x200D, 0x2640, 0xFE0F], - [0x1F9DF], - [0x1F9DF, 0x200D, 0x2642, 0xFE0F], - [0x1F9DF, 0x200D, 0x2640, 0xFE0F], - [0x1F486], - [0x1F486, 0x200D, 0x2642, 0xFE0F], - [0x1F486, 0x200D, 0x2640, 0xFE0F], - [0x1F487], - [0x1F487, 0x200D, 0x2642, 0xFE0F], - [0x1F487, 0x200D, 0x2640, 0xFE0F], - [0x1F6B6], - [0x1F6B6, 0x200D, 0x2642, 0xFE0F], - [0x1F6B6, 0x200D, 0x2640, 0xFE0F], - [0x1F9CD], - [0x1F9CD, 0x200D, 0x2642, 0xFE0F], - [0x1F9CD, 0x200D, 0x2640, 0xFE0F], - [0x1F9CE], - [0x1F9CE, 0x200D, 0x2642, 0xFE0F], - [0x1F9CE, 0x200D, 0x2640, 0xFE0F], - [0x1F9D1, 0x200D, 0x1F9AF], - [0x1F468, 0x200D, 0x1F9AF], - [0x1F469, 0x200D, 0x1F9AF], - [0x1F9D1, 0x200D, 0x1F9BC], - [0x1F468, 0x200D, 0x1F9BC], - [0x1F469, 0x200D, 0x1F9BC], - [0x1F9D1, 0x200D, 0x1F9BD], - [0x1F468, 0x200D, 0x1F9BD], - [0x1F469, 0x200D, 0x1F9BD], - [0x1F3C3], - [0x1F3C3, 0x200D, 0x2642, 0xFE0F], - [0x1F3C3, 0x200D, 0x2640, 0xFE0F], - [0x1F483], - [0x1F57A], - [0x1F574, 0xFE0F], - [0x1F46F], - [0x1F46F, 0x200D, 0x2642, 0xFE0F], - [0x1F46F, 0x200D, 0x2640, 0xFE0F], - [0x1F9D6], - [0x1F9D6, 0x200D, 0x2642, 0xFE0F], - [0x1F9D6, 0x200D, 0x2640, 0xFE0F], - [0x1F9D7], - [0x1F9D7, 0x200D, 0x2642, 0xFE0F], - [0x1F9D7, 0x200D, 0x2640, 0xFE0F], - [0x1F93A], - [0x1F3C7], - [0x26F7, 0xFE0F], - [0x1F3C2], - [0x1F3CC, 0xFE0F], - [0x1F3CC, 0xFE0F, 0x200D, 0x2642, 0xFE0F], - [0x1F3CC, 0xFE0F, 0x200D, 0x2640, 0xFE0F], - [0x1F3C4], - [0x1F3C4, 0x200D, 0x2642, 0xFE0F], - [0x1F3C4, 0x200D, 0x2640, 0xFE0F], - [0x1F6A3], - [0x1F6A3, 0x200D, 0x2642, 0xFE0F], - [0x1F6A3, 0x200D, 0x2640, 0xFE0F], - [0x1F3CA], - [0x1F3CA, 0x200D, 0x2642, 0xFE0F], - [0x1F3CA, 0x200D, 0x2640, 0xFE0F], - [0x26F9, 0xFE0F], - [0x26F9, 0xFE0F, 0x200D, 0x2642, 0xFE0F], - [0x26F9, 0xFE0F, 0x200D, 0x2640, 0xFE0F], - [0x1F3CB, 0xFE0F], - [0x1F3CB, 0xFE0F, 0x200D, 0x2642, 0xFE0F], - [0x1F3CB, 0xFE0F, 0x200D, 0x2640, 0xFE0F], - [0x1F6B4], - [0x1F6B4, 0x200D, 0x2642, 0xFE0F], - [0x1F6B4, 0x200D, 0x2640, 0xFE0F], - [0x1F6B5], - [0x1F6B5, 0x200D, 0x2642, 0xFE0F], - [0x1F6B5, 0x200D, 0x2640, 0xFE0F], - [0x1F938], - [0x1F938, 0x200D, 0x2642, 0xFE0F], - [0x1F938, 0x200D, 0x2640, 0xFE0F], - [0x1F93C], - [0x1F93C, 0x200D, 0x2642, 0xFE0F], - [0x1F93C, 0x200D, 0x2640, 0xFE0F], - [0x1F93D], - [0x1F93D, 0x200D, 0x2642, 0xFE0F], - [0x1F93D, 0x200D, 0x2640, 0xFE0F], - [0x1F93E], - [0x1F93E, 0x200D, 0x2642, 0xFE0F], - [0x1F93E, 0x200D, 0x2640, 0xFE0F], - [0x1F939], - [0x1F939, 0x200D, 0x2642, 0xFE0F], - [0x1F939, 0x200D, 0x2640, 0xFE0F], - [0x1F9D8], - [0x1F9D8, 0x200D, 0x2642, 0xFE0F], - [0x1F9D8, 0x200D, 0x2640, 0xFE0F], - [0x1F6C0], - [0x1F6CC], - [0x1F9D1, 0x200D, 0x1F91D, 0x200D, 0x1F9D1], - [0x1F46D], - [0x1F46B], - [0x1F46C], - [0x1F48F], - [0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468], - [0x1F468, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468], - [0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469], - [0x1F491], - [0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468], - [0x1F468, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468], - [0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469], - [0x1F46A], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F467], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F469, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F467], - [0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F5E3, 0xFE0F], - [0x1F464], - [0x1F465], - [0x1FAC2], - [0x1F463] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .nature), - emojis: [ - [0x1F435], - [0x1F412], - [0x1F98D], - [0x1F9A7], - [0x1F436], - [0x1F415], - [0x1F9AE], - [0x1F415, 0x200D, 0x1F9BA], - [0x1F429], - [0x1F43A], - [0x1F98A], - [0x1F99D], - [0x1F431], - [0x1F408], - [0x1F408, 0x200D, 0x2B1B], - [0x1F981], - [0x1F42F], - [0x1F405], - [0x1F406], - [0x1F434], - [0x1F40E], - [0x1F984], - [0x1F993], - [0x1F98C], - [0x1F9AC], - [0x1F42E], - [0x1F402], - [0x1F403], - [0x1F404], - [0x1F437], - [0x1F416], - [0x1F417], - [0x1F43D], - [0x1F40F], - [0x1F411], - [0x1F410], - [0x1F42A], - [0x1F42B], - [0x1F999], - [0x1F992], - [0x1F418], - [0x1F9A3], - [0x1F98F], - [0x1F99B], - [0x1F42D], - [0x1F401], - [0x1F400], - [0x1F439], - [0x1F430], - [0x1F407], - [0x1F43F, 0xFE0F], - [0x1F9AB], - [0x1F994], - [0x1F987], - [0x1F43B], - [0x1F43B, 0x200D, 0x2744, 0xFE0F], - [0x1F428], - [0x1F43C], - [0x1F9A5], - [0x1F9A6], - [0x1F9A8], - [0x1F998], - [0x1F9A1], - [0x1F43E], - [0x1F983], - [0x1F414], - [0x1F413], - [0x1F423], - [0x1F424], - [0x1F425], - [0x1F426], - [0x1F427], - [0x1F54A, 0xFE0F], - [0x1F985], - [0x1F986], - [0x1F9A2], - [0x1F989], - [0x1F9A4], - [0x1FAB6], - [0x1F9A9], - [0x1F99A], - [0x1F99C], - [0x1F438], - [0x1F40A], - [0x1F422], - [0x1F98E], - [0x1F40D], - [0x1F432], - [0x1F409], - [0x1F995], - [0x1F996], - [0x1F433], - [0x1F40B], - [0x1F42C], - [0x1F9AD], - [0x1F41F], - [0x1F420], - [0x1F421], - [0x1F988], - [0x1F419], - [0x1F41A], - [0x1F40C], - [0x1F98B], - [0x1F41B], - [0x1F41C], - [0x1F41D], - [0x1FAB2], - [0x1F41E], - [0x1F997], - [0x1FAB3], - [0x1F577, 0xFE0F], - [0x1F578, 0xFE0F], - [0x1F982], - [0x1F99F], - [0x1FAB0], - [0x1FAB1], - [0x1F9A0], - [0x1F490], - [0x1F338], - [0x1F4AE], - [0x1F3F5, 0xFE0F], - [0x1F339], - [0x1F940], - [0x1F33A], - [0x1F33B], - [0x1F33C], - [0x1F337], - [0x1F331], - [0x1FAB4], - [0x1F332], - [0x1F333], - [0x1F334], - [0x1F335], - [0x1F33E], - [0x1F33F], - [0x2618, 0xFE0F], - [0x1F340], - [0x1F341], - [0x1F342], - [0x1F343] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .foodAndDrink), - emojis: [ - [0x1F347], - [0x1F348], - [0x1F349], - [0x1F34A], - [0x1F34B], - [0x1F34C], - [0x1F34D], - [0x1F96D], - [0x1F34E], - [0x1F34F], - [0x1F350], - [0x1F351], - [0x1F352], - [0x1F353], - [0x1FAD0], - [0x1F95D], - [0x1F345], - [0x1FAD2], - [0x1F965], - [0x1F951], - [0x1F346], - [0x1F954], - [0x1F955], - [0x1F33D], - [0x1F336, 0xFE0F], - [0x1FAD1], - [0x1F952], - [0x1F96C], - [0x1F966], - [0x1F9C4], - [0x1F9C5], - [0x1F344], - [0x1F95C], - [0x1F330], - [0x1F35E], - [0x1F950], - [0x1F956], - [0x1FAD3], - [0x1F968], - [0x1F96F], - [0x1F95E], - [0x1F9C7], - [0x1F9C0], - [0x1F356], - [0x1F357], - [0x1F969], - [0x1F953], - [0x1F354], - [0x1F35F], - [0x1F355], - [0x1F32D], - [0x1F96A], - [0x1F32E], - [0x1F32F], - [0x1FAD4], - [0x1F959], - [0x1F9C6], - [0x1F95A], - [0x1F373], - [0x1F958], - [0x1F372], - [0x1FAD5], - [0x1F963], - [0x1F957], - [0x1F37F], - [0x1F9C8], - [0x1F9C2], - [0x1F96B], - [0x1F371], - [0x1F358], - [0x1F359], - [0x1F35A], - [0x1F35B], - [0x1F35C], - [0x1F35D], - [0x1F360], - [0x1F362], - [0x1F363], - [0x1F364], - [0x1F365], - [0x1F96E], - [0x1F361], - [0x1F95F], - [0x1F960], - [0x1F961], - [0x1F980], - [0x1F99E], - [0x1F990], - [0x1F991], - [0x1F9AA], - [0x1F366], - [0x1F367], - [0x1F368], - [0x1F369], - [0x1F36A], - [0x1F382], - [0x1F370], - [0x1F9C1], - [0x1F967], - [0x1F36B], - [0x1F36C], - [0x1F36D], - [0x1F36E], - [0x1F36F], - [0x1F37C], - [0x1F95B], - [0x2615], - [0x1FAD6], - [0x1F375], - [0x1F376], - [0x1F37E], - [0x1F377], - [0x1F378], - [0x1F379], - [0x1F37A], - [0x1F37B], - [0x1F942], - [0x1F943], - [0x1F964], - [0x1F9CB], - [0x1F9C3], - [0x1F9C9], - [0x1F9CA], - [0x1F962], - [0x1F37D, 0xFE0F], - [0x1F374], - [0x1F944], - [0x1F52A], - [0x1F3FA] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .activity), - emojis: [ - [0x1F383], - [0x1F384], - [0x1F386], - [0x1F387], - [0x1F9E8], - [0x2728], - [0x1F388], - [0x1F389], - [0x1F38A], - [0x1F38B], - [0x1F38D], - [0x1F38E], - [0x1F38F], - [0x1F390], - [0x1F391], - [0x1F9E7], - [0x1F380], - [0x1F381], - [0x1F397, 0xFE0F], - [0x1F39F, 0xFE0F], - [0x1F3AB], - [0x1F396, 0xFE0F], - [0x1F3C6], - [0x1F3C5], - [0x1F947], - [0x1F948], - [0x1F949], - [0x26BD], - [0x26BE], - [0x1F94E], - [0x1F3C0], - [0x1F3D0], - [0x1F3C8], - [0x1F3C9], - [0x1F3BE], - [0x1F94F], - [0x1F3B3], - [0x1F3CF], - [0x1F3D1], - [0x1F3D2], - [0x1F94D], - [0x1F3D3], - [0x1F3F8], - [0x1F94A], - [0x1F94B], - [0x1F945], - [0x26F3], - [0x26F8, 0xFE0F], - [0x1F3A3], - [0x1F93F], - [0x1F3BD], - [0x1F3BF], - [0x1F6F7], - [0x1F94C], - [0x1F3AF], - [0x1FA80], - [0x1FA81], - [0x1F3B1], - [0x1F52E], - [0x1FA84], - [0x1F9FF], - [0x1F3AE], - [0x1F579, 0xFE0F], - [0x1F3B0], - [0x1F3B2], - [0x1F9E9], - [0x1F9F8], - [0x1FA85], - [0x1FA86], - [0x2660, 0xFE0F], - [0x2665, 0xFE0F], - [0x2666, 0xFE0F], - [0x2663, 0xFE0F], - [0x265F, 0xFE0F], - [0x1F0CF], - [0x1F004], - [0x1F3B4], - [0x1F3AD], - [0x1F5BC, 0xFE0F], - [0x1F3A8], - [0x1F9F5], - [0x1FAA1], - [0x1F9F6], - [0x1FAA2] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .travelAndPlaces), - emojis: [ - [0x1F30D], - [0x1F30E], - [0x1F30F], - [0x1F310], - [0x1F5FA, 0xFE0F], - [0x1F5FE], - [0x1F9ED], - [0x1F3D4, 0xFE0F], - [0x26F0, 0xFE0F], - [0x1F30B], - [0x1F5FB], - [0x1F3D5, 0xFE0F], - [0x1F3D6, 0xFE0F], - [0x1F3DC, 0xFE0F], - [0x1F3DD, 0xFE0F], - [0x1F3DE, 0xFE0F], - [0x1F3DF, 0xFE0F], - [0x1F3DB, 0xFE0F], - [0x1F3D7, 0xFE0F], - [0x1F9F1], - [0x1FAA8], - [0x1FAB5], - [0x1F6D6], - [0x1F3D8, 0xFE0F], - [0x1F3DA, 0xFE0F], - [0x1F3E0], - [0x1F3E1], - [0x1F3E2], - [0x1F3E3], - [0x1F3E4], - [0x1F3E5], - [0x1F3E6], - [0x1F3E8], - [0x1F3E9], - [0x1F3EA], - [0x1F3EB], - [0x1F3EC], - [0x1F3ED], - [0x1F3EF], - [0x1F3F0], - [0x1F492], - [0x1F5FC], - [0x1F5FD], - [0x26EA], - [0x1F54C], - [0x1F6D5], - [0x1F54D], - [0x26E9, 0xFE0F], - [0x1F54B], - [0x26F2], - [0x26FA], - [0x1F301], - [0x1F303], - [0x1F3D9, 0xFE0F], - [0x1F304], - [0x1F305], - [0x1F306], - [0x1F307], - [0x1F309], - [0x2668, 0xFE0F], - [0x1F3A0], - [0x1F3A1], - [0x1F3A2], - [0x1F488], - [0x1F3AA], - [0x1F682], - [0x1F683], - [0x1F684], - [0x1F685], - [0x1F686], - [0x1F687], - [0x1F688], - [0x1F689], - [0x1F68A], - [0x1F69D], - [0x1F69E], - [0x1F68B], - [0x1F68C], - [0x1F68D], - [0x1F68E], - [0x1F690], - [0x1F691], - [0x1F692], - [0x1F693], - [0x1F694], - [0x1F695], - [0x1F696], - [0x1F697], - [0x1F698], - [0x1F699], - [0x1F6FB], - [0x1F69A], - [0x1F69B], - [0x1F69C], - [0x1F3CE, 0xFE0F], - [0x1F3CD, 0xFE0F], - [0x1F6F5], - [0x1F9BD], - [0x1F9BC], - [0x1F6FA], - [0x1F6B2], - [0x1F6F4], - [0x1F6F9], - [0x1F6FC], - [0x1F68F], - [0x1F6E3, 0xFE0F], - [0x1F6E4, 0xFE0F], - [0x1F6E2, 0xFE0F], - [0x26FD], - [0x1F6A8], - [0x1F6A5], - [0x1F6A6], - [0x1F6D1], - [0x1F6A7], - [0x2693], - [0x26F5], - [0x1F6F6], - [0x1F6A4], - [0x1F6F3, 0xFE0F], - [0x26F4, 0xFE0F], - [0x1F6E5, 0xFE0F], - [0x1F6A2], - [0x2708, 0xFE0F], - [0x1F6E9, 0xFE0F], - [0x1F6EB], - [0x1F6EC], - [0x1FA82], - [0x1F4BA], - [0x1F681], - [0x1F69F], - [0x1F6A0], - [0x1F6A1], - [0x1F6F0, 0xFE0F], - [0x1F680], - [0x1F6F8], - [0x1F6CE, 0xFE0F], - [0x1F9F3], - [0x231B], - [0x23F3], - [0x231A], - [0x23F0], - [0x23F1, 0xFE0F], - [0x23F2, 0xFE0F], - [0x1F570, 0xFE0F], - [0x1F55B], - [0x1F567], - [0x1F550], - [0x1F55C], - [0x1F551], - [0x1F55D], - [0x1F552], - [0x1F55E], - [0x1F553], - [0x1F55F], - [0x1F554], - [0x1F560], - [0x1F555], - [0x1F561], - [0x1F556], - [0x1F562], - [0x1F557], - [0x1F563], - [0x1F558], - [0x1F564], - [0x1F559], - [0x1F565], - [0x1F55A], - [0x1F566], - [0x1F311], - [0x1F312], - [0x1F313], - [0x1F314], - [0x1F315], - [0x1F316], - [0x1F317], - [0x1F318], - [0x1F319], - [0x1F31A], - [0x1F31B], - [0x1F31C], - [0x1F321, 0xFE0F], - [0x2600, 0xFE0F], - [0x1F31D], - [0x1F31E], - [0x1FA90], - [0x2B50], - [0x1F31F], - [0x1F320], - [0x1F30C], - [0x2601, 0xFE0F], - [0x26C5], - [0x26C8, 0xFE0F], - [0x1F324, 0xFE0F], - [0x1F325, 0xFE0F], - [0x1F326, 0xFE0F], - [0x1F327, 0xFE0F], - [0x1F328, 0xFE0F], - [0x1F329, 0xFE0F], - [0x1F32A, 0xFE0F], - [0x1F32B, 0xFE0F], - [0x1F32C, 0xFE0F], - [0x1F300], - [0x1F308], - [0x1F302], - [0x2602, 0xFE0F], - [0x2614], - [0x26F1, 0xFE0F], - [0x26A1], - [0x2744, 0xFE0F], - [0x2603, 0xFE0F], - [0x26C4], - [0x2604, 0xFE0F], - [0x1F525], - [0x1F4A7], - [0x1F30A] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .objects), - emojis: [ - [0x1F453], - [0x1F576, 0xFE0F], - [0x1F97D], - [0x1F97C], - [0x1F9BA], - [0x1F454], - [0x1F455], - [0x1F456], - [0x1F9E3], - [0x1F9E4], - [0x1F9E5], - [0x1F9E6], - [0x1F457], - [0x1F458], - [0x1F97B], - [0x1FA71], - [0x1FA72], - [0x1FA73], - [0x1F459], - [0x1F45A], - [0x1F45B], - [0x1F45C], - [0x1F45D], - [0x1F6CD, 0xFE0F], - [0x1F392], - [0x1FA74], - [0x1F45E], - [0x1F45F], - [0x1F97E], - [0x1F97F], - [0x1F460], - [0x1F461], - [0x1FA70], - [0x1F462], - [0x1F451], - [0x1F452], - [0x1F3A9], - [0x1F393], - [0x1F9E2], - [0x1FA96], - [0x26D1, 0xFE0F], - [0x1F4FF], - [0x1F484], - [0x1F48D], - [0x1F48E], - [0x1F507], - [0x1F508], - [0x1F509], - [0x1F50A], - [0x1F4E2], - [0x1F4E3], - [0x1F4EF], - [0x1F514], - [0x1F515], - [0x1F3BC], - [0x1F3B5], - [0x1F3B6], - [0x1F399, 0xFE0F], - [0x1F39A, 0xFE0F], - [0x1F39B, 0xFE0F], - [0x1F3A4], - [0x1F3A7], - [0x1F4FB], - [0x1F3B7], - [0x1FA97], - [0x1F3B8], - [0x1F3B9], - [0x1F3BA], - [0x1F3BB], - [0x1FA95], - [0x1F941], - [0x1FA98], - [0x1F4F1], - [0x1F4F2], - [0x260E, 0xFE0F], - [0x1F4DE], - [0x1F4DF], - [0x1F4E0], - [0x1F50B], - [0x1F50C], - [0x1F4BB], - [0x1F5A5, 0xFE0F], - [0x1F5A8, 0xFE0F], - [0x2328, 0xFE0F], - [0x1F5B1, 0xFE0F], - [0x1F5B2, 0xFE0F], - [0x1F4BD], - [0x1F4BE], - [0x1F4BF], - [0x1F4C0], - [0x1F9EE], - [0x1F3A5], - [0x1F39E, 0xFE0F], - [0x1F4FD, 0xFE0F], - [0x1F3AC], - [0x1F4FA], - [0x1F4F7], - [0x1F4F8], - [0x1F4F9], - [0x1F4FC], - [0x1F50D], - [0x1F50E], - [0x1F56F, 0xFE0F], - [0x1F4A1], - [0x1F526], - [0x1F3EE], - [0x1FA94], - [0x1F4D4], - [0x1F4D5], - [0x1F4D6], - [0x1F4D7], - [0x1F4D8], - [0x1F4D9], - [0x1F4DA], - [0x1F4D3], - [0x1F4D2], - [0x1F4C3], - [0x1F4DC], - [0x1F4C4], - [0x1F4F0], - [0x1F5DE, 0xFE0F], - [0x1F4D1], - [0x1F516], - [0x1F3F7, 0xFE0F], - [0x1F4B0], - [0x1FA99], - [0x1F4B4], - [0x1F4B5], - [0x1F4B6], - [0x1F4B7], - [0x1F4B8], - [0x1F4B3], - [0x1F9FE], - [0x1F4B9], - [0x2709, 0xFE0F], - [0x1F4E7], - [0x1F4E8], - [0x1F4E9], - [0x1F4E4], - [0x1F4E5], - [0x1F4E6], - [0x1F4EB], - [0x1F4EA], - [0x1F4EC], - [0x1F4ED], - [0x1F4EE], - [0x1F5F3, 0xFE0F], - [0x270F, 0xFE0F], - [0x2712, 0xFE0F], - [0x1F58B, 0xFE0F], - [0x1F58A, 0xFE0F], - [0x1F58C, 0xFE0F], - [0x1F58D, 0xFE0F], - [0x1F4DD], - [0x1F4BC], - [0x1F4C1], - [0x1F4C2], - [0x1F5C2, 0xFE0F], - [0x1F4C5], - [0x1F4C6], - [0x1F5D2, 0xFE0F], - [0x1F5D3, 0xFE0F], - [0x1F4C7], - [0x1F4C8], - [0x1F4C9], - [0x1F4CA], - [0x1F4CB], - [0x1F4CC], - [0x1F4CD], - [0x1F4CE], - [0x1F587, 0xFE0F], - [0x1F4CF], - [0x1F4D0], - [0x2702, 0xFE0F], - [0x1F5C3, 0xFE0F], - [0x1F5C4, 0xFE0F], - [0x1F5D1, 0xFE0F], - [0x1F512], - [0x1F513], - [0x1F50F], - [0x1F510], - [0x1F511], - [0x1F5DD, 0xFE0F], - [0x1F528], - [0x1FA93], - [0x26CF, 0xFE0F], - [0x2692, 0xFE0F], - [0x1F6E0, 0xFE0F], - [0x1F5E1, 0xFE0F], - [0x2694, 0xFE0F], - [0x1F52B], - [0x1FA83], - [0x1F3F9], - [0x1F6E1, 0xFE0F], - [0x1FA9A], - [0x1F527], - [0x1FA9B], - [0x1F529], - [0x2699, 0xFE0F], - [0x1F5DC, 0xFE0F], - [0x2696, 0xFE0F], - [0x1F9AF], - [0x1F517], - [0x26D3, 0xFE0F], - [0x1FA9D], - [0x1F9F0], - [0x1F9F2], - [0x1FA9C], - [0x2697, 0xFE0F], - [0x1F9EA], - [0x1F9EB], - [0x1F9EC], - [0x1F52C], - [0x1F52D], - [0x1F4E1], - [0x1F489], - [0x1FA78], - [0x1F48A], - [0x1FA79], - [0x1FA7A], - [0x1F6AA], - [0x1F6D7], - [0x1FA9E], - [0x1FA9F], - [0x1F6CF, 0xFE0F], - [0x1F6CB, 0xFE0F], - [0x1FA91], - [0x1F6BD], - [0x1FAA0], - [0x1F6BF], - [0x1F6C1], - [0x1FAA4], - [0x1FA92], - [0x1F9F4], - [0x1F9F7], - [0x1F9F9], - [0x1F9FA], - [0x1F9FB], - [0x1FAA3], - [0x1F9FC], - [0x1FAA5], - [0x1F9FD], - [0x1F9EF], - [0x1F6D2], - [0x1F6AC], - [0x26B0, 0xFE0F], - [0x1FAA6], - [0x26B1, 0xFE0F], - [0x1F5FF], - [0x1FAA7] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .symbols), - emojis: [ - [0x1F3E7], - [0x1F6AE], - [0x1F6B0], - [0x267F], - [0x1F6B9], - [0x1F6BA], - [0x1F6BB], - [0x1F6BC], - [0x1F6BE], - [0x1F6C2], - [0x1F6C3], - [0x1F6C4], - [0x1F6C5], - [0x26A0, 0xFE0F], - [0x1F6B8], - [0x26D4], - [0x1F6AB], - [0x1F6B3], - [0x1F6AD], - [0x1F6AF], - [0x1F6B1], - [0x1F6B7], - [0x1F4F5], - [0x1F51E], - [0x2622, 0xFE0F], - [0x2623, 0xFE0F], - [0x2B06, 0xFE0F], - [0x2197, 0xFE0F], - [0x27A1, 0xFE0F], - [0x2198, 0xFE0F], - [0x2B07, 0xFE0F], - [0x2199, 0xFE0F], - [0x2B05, 0xFE0F], - [0x2196, 0xFE0F], - [0x2195, 0xFE0F], - [0x2194, 0xFE0F], - [0x21A9, 0xFE0F], - [0x21AA, 0xFE0F], - [0x2934, 0xFE0F], - [0x2935, 0xFE0F], - [0x1F503], - [0x1F504], - [0x1F519], - [0x1F51A], - [0x1F51B], - [0x1F51C], - [0x1F51D], - [0x1F6D0], - [0x269B, 0xFE0F], - [0x1F549, 0xFE0F], - [0x2721, 0xFE0F], - [0x2638, 0xFE0F], - [0x262F, 0xFE0F], - [0x271D, 0xFE0F], - [0x2626, 0xFE0F], - [0x262A, 0xFE0F], - [0x262E, 0xFE0F], - [0x1F54E], - [0x1F52F], - [0x2648], - [0x2649], - [0x264A], - [0x264B], - [0x264C], - [0x264D], - [0x264E], - [0x264F], - [0x2650], - [0x2651], - [0x2652], - [0x2653], - [0x26CE], - [0x1F500], - [0x1F501], - [0x1F502], - [0x25B6, 0xFE0F], - [0x23E9], - [0x23ED, 0xFE0F], - [0x23EF, 0xFE0F], - [0x25C0, 0xFE0F], - [0x23EA], - [0x23EE, 0xFE0F], - [0x1F53C], - [0x23EB], - [0x1F53D], - [0x23EC], - [0x23F8, 0xFE0F], - [0x23F9, 0xFE0F], - [0x23FA, 0xFE0F], - [0x23CF, 0xFE0F], - [0x1F3A6], - [0x1F505], - [0x1F506], - [0x1F4F6], - [0x1F4F3], - [0x1F4F4], - [0x2640, 0xFE0F], - [0x2642, 0xFE0F], - [0x26A7, 0xFE0F], - [0x2716, 0xFE0F], - [0x2795], - [0x2796], - [0x2797], - [0x267E, 0xFE0F], - [0x203C, 0xFE0F], - [0x2049, 0xFE0F], - [0x2753], - [0x2754], - [0x2755], - [0x2757], - [0x3030, 0xFE0F], - [0x1F4B1], - [0x1F4B2], - [0x2695, 0xFE0F], - [0x267B, 0xFE0F], - [0x269C, 0xFE0F], - [0x1F531], - [0x1F4DB], - [0x1F530], - [0x2B55], - [0x2705], - [0x2611, 0xFE0F], - [0x2714, 0xFE0F], - [0x274C], - [0x274E], - [0x27B0], - [0x27BF], - [0x303D, 0xFE0F], - [0x2733, 0xFE0F], - [0x2734, 0xFE0F], - [0x2747, 0xFE0F], - [0x00A9, 0xFE0F], - [0x00AE, 0xFE0F], - [0x2122, 0xFE0F], - [0x0023, 0xFE0F, 0x20E3], - [0x002A, 0xFE0F, 0x20E3], - [0x0030, 0xFE0F, 0x20E3], - [0x0031, 0xFE0F, 0x20E3], - [0x0032, 0xFE0F, 0x20E3], - [0x0033, 0xFE0F, 0x20E3], - [0x0034, 0xFE0F, 0x20E3], - [0x0035, 0xFE0F, 0x20E3], - [0x0036, 0xFE0F, 0x20E3], - [0x0037, 0xFE0F, 0x20E3], - [0x0038, 0xFE0F, 0x20E3], - [0x0039, 0xFE0F, 0x20E3], - [0x1F51F], - [0x1F520], - [0x1F521], - [0x1F522], - [0x1F523], - [0x1F524], - [0x1F170, 0xFE0F], - [0x1F18E], - [0x1F171, 0xFE0F], - [0x1F191], - [0x1F192], - [0x1F193], - [0x2139, 0xFE0F], - [0x1F194], - [0x24C2, 0xFE0F], - [0x1F195], - [0x1F196], - [0x1F17E, 0xFE0F], - [0x1F197], - [0x1F17F, 0xFE0F], - [0x1F198], - [0x1F199], - [0x1F19A], - [0x1F201], - [0x1F202, 0xFE0F], - [0x1F237, 0xFE0F], - [0x1F236], - [0x1F22F], - [0x1F250], - [0x1F239], - [0x1F21A], - [0x1F232], - [0x1F251], - [0x1F238], - [0x1F234], - [0x1F233], - [0x3297, 0xFE0F], - [0x3299, 0xFE0F], - [0x1F23A], - [0x1F235], - [0x1F534], - [0x1F7E0], - [0x1F7E1], - [0x1F7E2], - [0x1F535], - [0x1F7E3], - [0x1F7E4], - [0x26AB], - [0x26AA], - [0x1F7E5], - [0x1F7E7], - [0x1F7E8], - [0x1F7E9], - [0x1F7E6], - [0x1F7EA], - [0x1F7EB], - [0x2B1B], - [0x2B1C], - [0x25FC, 0xFE0F], - [0x25FB, 0xFE0F], - [0x25FE], - [0x25FD], - [0x25AA, 0xFE0F], - [0x25AB, 0xFE0F], - [0x1F536], - [0x1F537], - [0x1F538], - [0x1F539], - [0x1F53A], - [0x1F53B], - [0x1F4A0], - [0x1F518], - [0x1F533], - [0x1F532] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .flags), - emojis: [ - [0x1F3C1], - [0x1F6A9], - [0x1F38C], - [0x1F3F4], - [0x1F3F3, 0xFE0F], - [0x1F3F3, 0xFE0F, 0x200D, 0x1F308], - [0x1F3F3, 0xFE0F, 0x200D, 0x26A7, 0xFE0F], - [0x1F3F4, 0x200D, 0x2620, 0xFE0F], - [0x1F1E6, 0x1F1E8], - [0x1F1E6, 0x1F1E9], - [0x1F1E6, 0x1F1EA], - [0x1F1E6, 0x1F1EB], - [0x1F1E6, 0x1F1EC], - [0x1F1E6, 0x1F1EE], - [0x1F1E6, 0x1F1F1], - [0x1F1E6, 0x1F1F2], - [0x1F1E6, 0x1F1F4], - [0x1F1E6, 0x1F1F6], - [0x1F1E6, 0x1F1F7], - [0x1F1E6, 0x1F1F8], - [0x1F1E6, 0x1F1F9], - [0x1F1E6, 0x1F1FA], - [0x1F1E6, 0x1F1FC], - [0x1F1E6, 0x1F1FD], - [0x1F1E6, 0x1F1FF], - [0x1F1E7, 0x1F1E6], - [0x1F1E7, 0x1F1E7], - [0x1F1E7, 0x1F1E9], - [0x1F1E7, 0x1F1EA], - [0x1F1E7, 0x1F1EB], - [0x1F1E7, 0x1F1EC], - [0x1F1E7, 0x1F1ED], - [0x1F1E7, 0x1F1EE], - [0x1F1E7, 0x1F1EF], - [0x1F1E7, 0x1F1F1], - [0x1F1E7, 0x1F1F2], - [0x1F1E7, 0x1F1F3], - [0x1F1E7, 0x1F1F4], - [0x1F1E7, 0x1F1F6], - [0x1F1E7, 0x1F1F7], - [0x1F1E7, 0x1F1F8], - [0x1F1E7, 0x1F1F9], - [0x1F1E7, 0x1F1FB], - [0x1F1E7, 0x1F1FC], - [0x1F1E7, 0x1F1FE], - [0x1F1E7, 0x1F1FF], - [0x1F1E8, 0x1F1E6], - [0x1F1E8, 0x1F1E8], - [0x1F1E8, 0x1F1E9], - [0x1F1E8, 0x1F1EB], - [0x1F1E8, 0x1F1EC], - [0x1F1E8, 0x1F1ED], - [0x1F1E8, 0x1F1EE], - [0x1F1E8, 0x1F1F0], - [0x1F1E8, 0x1F1F1], - [0x1F1E8, 0x1F1F2], - [0x1F1E8, 0x1F1F3], - [0x1F1E8, 0x1F1F4], - [0x1F1E8, 0x1F1F5], - [0x1F1E8, 0x1F1F7], - [0x1F1E8, 0x1F1FA], - [0x1F1E8, 0x1F1FB], - [0x1F1E8, 0x1F1FC], - [0x1F1E8, 0x1F1FD], - [0x1F1E8, 0x1F1FE], - [0x1F1E8, 0x1F1FF], - [0x1F1E9, 0x1F1EA], - [0x1F1E9, 0x1F1EC], - [0x1F1E9, 0x1F1EF], - [0x1F1E9, 0x1F1F0], - [0x1F1E9, 0x1F1F2], - [0x1F1E9, 0x1F1F4], - [0x1F1E9, 0x1F1FF], - [0x1F1EA, 0x1F1E6], - [0x1F1EA, 0x1F1E8], - [0x1F1EA, 0x1F1EA], - [0x1F1EA, 0x1F1EC], - [0x1F1EA, 0x1F1ED], - [0x1F1EA, 0x1F1F7], - [0x1F1EA, 0x1F1F8], - [0x1F1EA, 0x1F1F9], - [0x1F1EA, 0x1F1FA], - [0x1F1EB, 0x1F1EE], - [0x1F1EB, 0x1F1EF], - [0x1F1EB, 0x1F1F0], - [0x1F1EB, 0x1F1F2], - [0x1F1EB, 0x1F1F4], - [0x1F1EB, 0x1F1F7], - [0x1F1EC, 0x1F1E6], - [0x1F1EC, 0x1F1E7], - [0x1F1EC, 0x1F1E9], - [0x1F1EC, 0x1F1EA], - [0x1F1EC, 0x1F1EB], - [0x1F1EC, 0x1F1EC], - [0x1F1EC, 0x1F1ED], - [0x1F1EC, 0x1F1EE], - [0x1F1EC, 0x1F1F1], - [0x1F1EC, 0x1F1F2], - [0x1F1EC, 0x1F1F3], - [0x1F1EC, 0x1F1F5], - [0x1F1EC, 0x1F1F6], - [0x1F1EC, 0x1F1F7], - [0x1F1EC, 0x1F1F8], - [0x1F1EC, 0x1F1F9], - [0x1F1EC, 0x1F1FA], - [0x1F1EC, 0x1F1FC], - [0x1F1EC, 0x1F1FE], - [0x1F1ED, 0x1F1F0], - [0x1F1ED, 0x1F1F2], - [0x1F1ED, 0x1F1F3], - [0x1F1ED, 0x1F1F7], - [0x1F1ED, 0x1F1F9], - [0x1F1ED, 0x1F1FA], - [0x1F1EE, 0x1F1E8], - [0x1F1EE, 0x1F1E9], - [0x1F1EE, 0x1F1EA], - [0x1F1EE, 0x1F1F1], - [0x1F1EE, 0x1F1F2], - [0x1F1EE, 0x1F1F3], - [0x1F1EE, 0x1F1F4], - [0x1F1EE, 0x1F1F6], - [0x1F1EE, 0x1F1F7], - [0x1F1EE, 0x1F1F8], - [0x1F1EE, 0x1F1F9], - [0x1F1EF, 0x1F1EA], - [0x1F1EF, 0x1F1F2], - [0x1F1EF, 0x1F1F4], - [0x1F1EF, 0x1F1F5], - [0x1F1F0, 0x1F1EA], - [0x1F1F0, 0x1F1EC], - [0x1F1F0, 0x1F1ED], - [0x1F1F0, 0x1F1EE], - [0x1F1F0, 0x1F1F2], - [0x1F1F0, 0x1F1F3], - [0x1F1F0, 0x1F1F5], - [0x1F1F0, 0x1F1F7], - [0x1F1F0, 0x1F1FC], - [0x1F1F0, 0x1F1FE], - [0x1F1F0, 0x1F1FF], - [0x1F1F1, 0x1F1E6], - [0x1F1F1, 0x1F1E7], - [0x1F1F1, 0x1F1E8], - [0x1F1F1, 0x1F1EE], - [0x1F1F1, 0x1F1F0], - [0x1F1F1, 0x1F1F7], - [0x1F1F1, 0x1F1F8], - [0x1F1F1, 0x1F1F9], - [0x1F1F1, 0x1F1FA], - [0x1F1F1, 0x1F1FB], - [0x1F1F1, 0x1F1FE], - [0x1F1F2, 0x1F1E6], - [0x1F1F2, 0x1F1E8], - [0x1F1F2, 0x1F1E9], - [0x1F1F2, 0x1F1EA], - [0x1F1F2, 0x1F1EB], - [0x1F1F2, 0x1F1EC], - [0x1F1F2, 0x1F1ED], - [0x1F1F2, 0x1F1F0], - [0x1F1F2, 0x1F1F1], - [0x1F1F2, 0x1F1F2], - [0x1F1F2, 0x1F1F3], - [0x1F1F2, 0x1F1F4], - [0x1F1F2, 0x1F1F5], - [0x1F1F2, 0x1F1F6], - [0x1F1F2, 0x1F1F7], - [0x1F1F2, 0x1F1F8], - [0x1F1F2, 0x1F1F9], - [0x1F1F2, 0x1F1FA], - [0x1F1F2, 0x1F1FB], - [0x1F1F2, 0x1F1FC], - [0x1F1F2, 0x1F1FD], - [0x1F1F2, 0x1F1FE], - [0x1F1F2, 0x1F1FF], - [0x1F1F3, 0x1F1E6], - [0x1F1F3, 0x1F1E8], - [0x1F1F3, 0x1F1EA], - [0x1F1F3, 0x1F1EB], - [0x1F1F3, 0x1F1EC], - [0x1F1F3, 0x1F1EE], - [0x1F1F3, 0x1F1F1], - [0x1F1F3, 0x1F1F4], - [0x1F1F3, 0x1F1F5], - [0x1F1F3, 0x1F1F7], - [0x1F1F3, 0x1F1FA], - [0x1F1F3, 0x1F1FF], - [0x1F1F4, 0x1F1F2], - [0x1F1F5, 0x1F1E6], - [0x1F1F5, 0x1F1EA], - [0x1F1F5, 0x1F1EB], - [0x1F1F5, 0x1F1EC], - [0x1F1F5, 0x1F1ED], - [0x1F1F5, 0x1F1F0], - [0x1F1F5, 0x1F1F1], - [0x1F1F5, 0x1F1F2], - [0x1F1F5, 0x1F1F3], - [0x1F1F5, 0x1F1F7], - [0x1F1F5, 0x1F1F8], - [0x1F1F5, 0x1F1F9], - [0x1F1F5, 0x1F1FC], - [0x1F1F5, 0x1F1FE], - [0x1F1F6, 0x1F1E6], - [0x1F1F7, 0x1F1EA], - [0x1F1F7, 0x1F1F4], - [0x1F1F7, 0x1F1F8], - [0x1F1F7, 0x1F1FA], - [0x1F1F7, 0x1F1FC], - [0x1F1F8, 0x1F1E6], - [0x1F1F8, 0x1F1E7], - [0x1F1F8, 0x1F1E8], - [0x1F1F8, 0x1F1E9], - [0x1F1F8, 0x1F1EA], - [0x1F1F8, 0x1F1EC], - [0x1F1F8, 0x1F1ED], - [0x1F1F8, 0x1F1EE], - [0x1F1F8, 0x1F1EF], - [0x1F1F8, 0x1F1F0], - [0x1F1F8, 0x1F1F1], - [0x1F1F8, 0x1F1F2], - [0x1F1F8, 0x1F1F3], - [0x1F1F8, 0x1F1F4], - [0x1F1F8, 0x1F1F7], - [0x1F1F8, 0x1F1F8], - [0x1F1F8, 0x1F1F9], - [0x1F1F8, 0x1F1FB], - [0x1F1F8, 0x1F1FD], - [0x1F1F8, 0x1F1FE], - [0x1F1F8, 0x1F1FF], - [0x1F1F9, 0x1F1E6], - [0x1F1F9, 0x1F1E8], - [0x1F1F9, 0x1F1E9], - [0x1F1F9, 0x1F1EB], - [0x1F1F9, 0x1F1EC], - [0x1F1F9, 0x1F1ED], - [0x1F1F9, 0x1F1EF], - [0x1F1F9, 0x1F1F0], - [0x1F1F9, 0x1F1F1], - [0x1F1F9, 0x1F1F2], - [0x1F1F9, 0x1F1F3], - [0x1F1F9, 0x1F1F4], - [0x1F1F9, 0x1F1F7], - [0x1F1F9, 0x1F1F9], - [0x1F1F9, 0x1F1FB], - [0x1F1F9, 0x1F1FC], - [0x1F1F9, 0x1F1FF], - [0x1F1FA, 0x1F1E6], - [0x1F1FA, 0x1F1EC], - [0x1F1FA, 0x1F1F2], - [0x1F1FA, 0x1F1F3], - [0x1F1FA, 0x1F1F8], - [0x1F1FA, 0x1F1FE], - [0x1F1FA, 0x1F1FF], - [0x1F1FB, 0x1F1E6], - [0x1F1FB, 0x1F1E8], - [0x1F1FB, 0x1F1EA], - [0x1F1FB, 0x1F1EC], - [0x1F1FB, 0x1F1EE], - [0x1F1FB, 0x1F1F3], - [0x1F1FB, 0x1F1FA], - [0x1F1FC, 0x1F1EB], - [0x1F1FC, 0x1F1F8], - [0x1F1FD, 0x1F1F0], - [0x1F1FE, 0x1F1EA], - [0x1F1FE, 0x1F1F9], - [0x1F1FF, 0x1F1E6], - [0x1F1FF, 0x1F1F2], - [0x1F1FF, 0x1F1FC], - [0x1F3F4, 0xE0067, 0xE0062, 0xE0065, 0xE006E, 0xE0067, 0xE007F], - [0x1F3F4, 0xE0067, 0xE0062, 0xE0073, 0xE0063, 0xE0074, 0xE007F], - [0x1F3F4, 0xE0067, 0xE0062, 0xE0077, 0xE006C, 0xE0073, 0xE007F] - ] - ) - ] - } -} diff --git a/Sources/EmojiPicker/Services/Unicode/Unicode 13v1.swift b/Sources/EmojiPicker/Services/Unicode/Unicode 13v1.swift deleted file mode 100644 index dbf8e63..0000000 --- a/Sources/EmojiPicker/Services/Unicode/Unicode 13v1.swift +++ /dev/null @@ -1,1879 +0,0 @@ -// The MIT License (MIT) -// Copyright © 2022 Ivan Izyumkin -// -// 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. - -extension UnicodeManager { - var unicode13v1: [EmojiCategory] { - return [ - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .people), - emojis: [ - [0x1F600], - [0x1F603], - [0x1F604], - [0x1F601], - [0x1F606], - [0x1F605], - [0x1F923], - [0x1F602], - [0x1F642], - [0x1F643], - [0x1F609], - [0x1F60A], - [0x1F607], - [0x1F970], - [0x1F60D], - [0x1F929], - [0x1F618], - [0x1F617], - [0x263A, 0xFE0F], - [0x1F61A], - [0x1F619], - [0x1F972], - [0x1F60B], - [0x1F61B], - [0x1F61C], - [0x1F92A], - [0x1F61D], - [0x1F911], - [0x1F917], - [0x1F92D], - [0x1F92B], - [0x1F914], - [0x1F910], - [0x1F928], - [0x1F610], - [0x1F611], - [0x1F636], - [0x1F636, 0x200D, 0x1F32B, 0xFE0F], - [0x1F60F], - [0x1F612], - [0x1F644], - [0x1F62C], - [0x1F62E, 0x200D, 0x1F4A8], - [0x1F925], - [0x1F60C], - [0x1F614], - [0x1F62A], - [0x1F924], - [0x1F634], - [0x1F637], - [0x1F912], - [0x1F915], - [0x1F922], - [0x1F92E], - [0x1F927], - [0x1F975], - [0x1F976], - [0x1F974], - [0x1F635], - [0x1F635, 0x200D, 0x1F4AB], - [0x1F92F], - [0x1F920], - [0x1F973], - [0x1F978], - [0x1F60E], - [0x1F913], - [0x1F9D0], - [0x1F615], - [0x1F61F], - [0x1F641], - [0x2639, 0xFE0F], - [0x1F62E], - [0x1F62F], - [0x1F632], - [0x1F633], - [0x1F97A], - [0x1F626], - [0x1F627], - [0x1F628], - [0x1F630], - [0x1F625], - [0x1F622], - [0x1F62D], - [0x1F631], - [0x1F616], - [0x1F623], - [0x1F61E], - [0x1F613], - [0x1F629], - [0x1F62B], - [0x1F971], - [0x1F624], - [0x1F621], - [0x1F620], - [0x1F92C], - [0x1F608], - [0x1F47F], - [0x1F480], - [0x2620, 0xFE0F], - [0x1F4A9], - [0x1F921], - [0x1F479], - [0x1F47A], - [0x1F47B], - [0x1F47D], - [0x1F47E], - [0x1F916], - [0x1F63A], - [0x1F638], - [0x1F639], - [0x1F63B], - [0x1F63C], - [0x1F63D], - [0x1F640], - [0x1F63F], - [0x1F63E], - [0x1F648], - [0x1F649], - [0x1F64A], - [0x1F48B], - [0x1F48C], - [0x1F498], - [0x1F49D], - [0x1F496], - [0x1F497], - [0x1F493], - [0x1F49E], - [0x1F495], - [0x1F49F], - [0x2763, 0xFE0F], - [0x1F494], - [0x2764, 0xFE0F, 0x200D, 0x1F525], - [0x2764, 0xFE0F, 0x200D, 0x1FA79], - [0x2764, 0xFE0F], - [0x1F9E1], - [0x1F49B], - [0x1F49A], - [0x1F499], - [0x1F49C], - [0x1F90E], - [0x1F5A4], - [0x1F90D], - [0x1F4AF], - [0x1F4A2], - [0x1F4A5], - [0x1F4AB], - [0x1F4A6], - [0x1F4A8], - [0x1F573, 0xFE0F], - [0x1F4A3], - [0x1F4AC], - [0x1F441, 0xFE0F, 0x200D, 0x1F5E8, 0xFE0F], - [0x1F5E8, 0xFE0F], - [0x1F5EF, 0xFE0F], - [0x1F4AD], - [0x1F4A4], - [0x1F44B], - [0x1F91A], - [0x1F590, 0xFE0F], - [0x270B], - [0x1F596], - [0x1F44C], - [0x1F90C], - [0x1F90F], - [0x270C, 0xFE0F], - [0x1F91E], - [0x1F91F], - [0x1F918], - [0x1F919], - [0x1F448], - [0x1F449], - [0x1F446], - [0x1F595], - [0x1F447], - [0x261D, 0xFE0F], - [0x1F44D], - [0x1F44E], - [0x270A], - [0x1F44A], - [0x1F91B], - [0x1F91C], - [0x1F44F], - [0x1F64C], - [0x1F450], - [0x1F932], - [0x1F91D], - [0x1F64F], - [0x270D, 0xFE0F], - [0x1F485], - [0x1F933], - [0x1F4AA], - [0x1F9BE], - [0x1F9BF], - [0x1F9B5], - [0x1F9B6], - [0x1F442], - [0x1F9BB], - [0x1F443], - [0x1F9E0], - [0x1FAC0], - [0x1FAC1], - [0x1F9B7], - [0x1F9B4], - [0x1F440], - [0x1F441, 0xFE0F], - [0x1F445], - [0x1F444], - [0x1F476], - [0x1F9D2], - [0x1F466], - [0x1F467], - [0x1F9D1], - [0x1F471], - [0x1F468], - [0x1F9D4], - [0x1F9D4, 0x200D, 0x2642, 0xFE0F], - [0x1F9D4, 0x200D, 0x2640, 0xFE0F], - [0x1F468, 0x200D, 0x1F9B0], - [0x1F468, 0x200D, 0x1F9B1], - [0x1F468, 0x200D, 0x1F9B3], - [0x1F468, 0x200D, 0x1F9B2], - [0x1F469], - [0x1F469, 0x200D, 0x1F9B0], - [0x1F9D1, 0x200D, 0x1F9B0], - [0x1F469, 0x200D, 0x1F9B1], - [0x1F9D1, 0x200D, 0x1F9B1], - [0x1F469, 0x200D, 0x1F9B3], - [0x1F9D1, 0x200D, 0x1F9B3], - [0x1F469, 0x200D, 0x1F9B2], - [0x1F9D1, 0x200D, 0x1F9B2], - [0x1F471, 0x200D, 0x2640, 0xFE0F], - [0x1F471, 0x200D, 0x2642, 0xFE0F], - [0x1F9D3], - [0x1F474], - [0x1F475], - [0x1F64D], - [0x1F64D, 0x200D, 0x2642, 0xFE0F], - [0x1F64D, 0x200D, 0x2640, 0xFE0F], - [0x1F64E], - [0x1F64E, 0x200D, 0x2642, 0xFE0F], - [0x1F64E, 0x200D, 0x2640, 0xFE0F], - [0x1F645], - [0x1F645, 0x200D, 0x2642, 0xFE0F], - [0x1F645, 0x200D, 0x2640, 0xFE0F], - [0x1F646], - [0x1F646, 0x200D, 0x2642, 0xFE0F], - [0x1F646, 0x200D, 0x2640, 0xFE0F], - [0x1F481], - [0x1F481, 0x200D, 0x2642, 0xFE0F], - [0x1F481, 0x200D, 0x2640, 0xFE0F], - [0x1F64B], - [0x1F64B, 0x200D, 0x2642, 0xFE0F], - [0x1F64B, 0x200D, 0x2640, 0xFE0F], - [0x1F9CF], - [0x1F9CF, 0x200D, 0x2642, 0xFE0F], - [0x1F9CF, 0x200D, 0x2640, 0xFE0F], - [0x1F647], - [0x1F647, 0x200D, 0x2642, 0xFE0F], - [0x1F647, 0x200D, 0x2640, 0xFE0F], - [0x1F926], - [0x1F926, 0x200D, 0x2642, 0xFE0F], - [0x1F926, 0x200D, 0x2640, 0xFE0F], - [0x1F937], - [0x1F937, 0x200D, 0x2642, 0xFE0F], - [0x1F937, 0x200D, 0x2640, 0xFE0F], - [0x1F9D1, 0x200D, 0x2695, 0xFE0F], - [0x1F468, 0x200D, 0x2695, 0xFE0F], - [0x1F469, 0x200D, 0x2695, 0xFE0F], - [0x1F9D1, 0x200D, 0x1F393], - [0x1F468, 0x200D, 0x1F393], - [0x1F469, 0x200D, 0x1F393], - [0x1F9D1, 0x200D, 0x1F3EB], - [0x1F468, 0x200D, 0x1F3EB], - [0x1F469, 0x200D, 0x1F3EB], - [0x1F9D1, 0x200D, 0x2696, 0xFE0F], - [0x1F468, 0x200D, 0x2696, 0xFE0F], - [0x1F469, 0x200D, 0x2696, 0xFE0F], - [0x1F9D1, 0x200D, 0x1F33E], - [0x1F468, 0x200D, 0x1F33E], - [0x1F469, 0x200D, 0x1F33E], - [0x1F9D1, 0x200D, 0x1F373], - [0x1F468, 0x200D, 0x1F373], - [0x1F469, 0x200D, 0x1F373], - [0x1F9D1, 0x200D, 0x1F527], - [0x1F468, 0x200D, 0x1F527], - [0x1F469, 0x200D, 0x1F527], - [0x1F9D1, 0x200D, 0x1F3ED], - [0x1F468, 0x200D, 0x1F3ED], - [0x1F469, 0x200D, 0x1F3ED], - [0x1F9D1, 0x200D, 0x1F4BC], - [0x1F468, 0x200D, 0x1F4BC], - [0x1F469, 0x200D, 0x1F4BC], - [0x1F9D1, 0x200D, 0x1F52C], - [0x1F468, 0x200D, 0x1F52C], - [0x1F469, 0x200D, 0x1F52C], - [0x1F9D1, 0x200D, 0x1F4BB], - [0x1F468, 0x200D, 0x1F4BB], - [0x1F469, 0x200D, 0x1F4BB], - [0x1F9D1, 0x200D, 0x1F3A4], - [0x1F468, 0x200D, 0x1F3A4], - [0x1F469, 0x200D, 0x1F3A4], - [0x1F9D1, 0x200D, 0x1F3A8], - [0x1F468, 0x200D, 0x1F3A8], - [0x1F469, 0x200D, 0x1F3A8], - [0x1F9D1, 0x200D, 0x2708, 0xFE0F], - [0x1F468, 0x200D, 0x2708, 0xFE0F], - [0x1F469, 0x200D, 0x2708, 0xFE0F], - [0x1F9D1, 0x200D, 0x1F680], - [0x1F468, 0x200D, 0x1F680], - [0x1F469, 0x200D, 0x1F680], - [0x1F9D1, 0x200D, 0x1F692], - [0x1F468, 0x200D, 0x1F692], - [0x1F469, 0x200D, 0x1F692], - [0x1F46E], - [0x1F46E, 0x200D, 0x2642, 0xFE0F], - [0x1F46E, 0x200D, 0x2640, 0xFE0F], - [0x1F575, 0xFE0F], - [0x1F575, 0xFE0F, 0x200D, 0x2642, 0xFE0F], - [0x1F575, 0xFE0F, 0x200D, 0x2640, 0xFE0F], - [0x1F482], - [0x1F482, 0x200D, 0x2642, 0xFE0F], - [0x1F482, 0x200D, 0x2640, 0xFE0F], - [0x1F977], - [0x1F477], - [0x1F477, 0x200D, 0x2642, 0xFE0F], - [0x1F477, 0x200D, 0x2640, 0xFE0F], - [0x1F934], - [0x1F478], - [0x1F473], - [0x1F473, 0x200D, 0x2642, 0xFE0F], - [0x1F473, 0x200D, 0x2640, 0xFE0F], - [0x1F472], - [0x1F9D5], - [0x1F935], - [0x1F935, 0x200D, 0x2642, 0xFE0F], - [0x1F935, 0x200D, 0x2640, 0xFE0F], - [0x1F470], - [0x1F470, 0x200D, 0x2642, 0xFE0F], - [0x1F470, 0x200D, 0x2640, 0xFE0F], - [0x1F930], - [0x1F931], - [0x1F469, 0x200D, 0x1F37C], - [0x1F468, 0x200D, 0x1F37C], - [0x1F9D1, 0x200D, 0x1F37C], - [0x1F47C], - [0x1F385], - [0x1F936], - [0x1F9D1, 0x200D, 0x1F384], - [0x1F9B8], - [0x1F9B8, 0x200D, 0x2642, 0xFE0F], - [0x1F9B8, 0x200D, 0x2640, 0xFE0F], - [0x1F9B9], - [0x1F9B9, 0x200D, 0x2642, 0xFE0F], - [0x1F9B9, 0x200D, 0x2640, 0xFE0F], - [0x1F9D9], - [0x1F9D9, 0x200D, 0x2642, 0xFE0F], - [0x1F9D9, 0x200D, 0x2640, 0xFE0F], - [0x1F9DA], - [0x1F9DA, 0x200D, 0x2642, 0xFE0F], - [0x1F9DA, 0x200D, 0x2640, 0xFE0F], - [0x1F9DB], - [0x1F9DB, 0x200D, 0x2642, 0xFE0F], - [0x1F9DB, 0x200D, 0x2640, 0xFE0F], - [0x1F9DC], - [0x1F9DC, 0x200D, 0x2642, 0xFE0F], - [0x1F9DC, 0x200D, 0x2640, 0xFE0F], - [0x1F9DD], - [0x1F9DD, 0x200D, 0x2642, 0xFE0F], - [0x1F9DD, 0x200D, 0x2640, 0xFE0F], - [0x1F9DE], - [0x1F9DE, 0x200D, 0x2642, 0xFE0F], - [0x1F9DE, 0x200D, 0x2640, 0xFE0F], - [0x1F9DF], - [0x1F9DF, 0x200D, 0x2642, 0xFE0F], - [0x1F9DF, 0x200D, 0x2640, 0xFE0F], - [0x1F486], - [0x1F486, 0x200D, 0x2642, 0xFE0F], - [0x1F486, 0x200D, 0x2640, 0xFE0F], - [0x1F487], - [0x1F487, 0x200D, 0x2642, 0xFE0F], - [0x1F487, 0x200D, 0x2640, 0xFE0F], - [0x1F6B6], - [0x1F6B6, 0x200D, 0x2642, 0xFE0F], - [0x1F6B6, 0x200D, 0x2640, 0xFE0F], - [0x1F9CD], - [0x1F9CD, 0x200D, 0x2642, 0xFE0F], - [0x1F9CD, 0x200D, 0x2640, 0xFE0F], - [0x1F9CE], - [0x1F9CE, 0x200D, 0x2642, 0xFE0F], - [0x1F9CE, 0x200D, 0x2640, 0xFE0F], - [0x1F9D1, 0x200D, 0x1F9AF], - [0x1F468, 0x200D, 0x1F9AF], - [0x1F469, 0x200D, 0x1F9AF], - [0x1F9D1, 0x200D, 0x1F9BC], - [0x1F468, 0x200D, 0x1F9BC], - [0x1F469, 0x200D, 0x1F9BC], - [0x1F9D1, 0x200D, 0x1F9BD], - [0x1F468, 0x200D, 0x1F9BD], - [0x1F469, 0x200D, 0x1F9BD], - [0x1F3C3], - [0x1F3C3, 0x200D, 0x2642, 0xFE0F], - [0x1F3C3, 0x200D, 0x2640, 0xFE0F], - [0x1F483], - [0x1F57A], - [0x1F574, 0xFE0F], - [0x1F46F], - [0x1F46F, 0x200D, 0x2642, 0xFE0F], - [0x1F46F, 0x200D, 0x2640, 0xFE0F], - [0x1F9D6], - [0x1F9D6, 0x200D, 0x2642, 0xFE0F], - [0x1F9D6, 0x200D, 0x2640, 0xFE0F], - [0x1F9D7], - [0x1F9D7, 0x200D, 0x2642, 0xFE0F], - [0x1F9D7, 0x200D, 0x2640, 0xFE0F], - [0x1F93A], - [0x1F3C7], - [0x26F7, 0xFE0F], - [0x1F3C2], - [0x1F3CC, 0xFE0F], - [0x1F3CC, 0xFE0F, 0x200D, 0x2642, 0xFE0F], - [0x1F3CC, 0xFE0F, 0x200D, 0x2640, 0xFE0F], - [0x1F3C4], - [0x1F3C4, 0x200D, 0x2642, 0xFE0F], - [0x1F3C4, 0x200D, 0x2640, 0xFE0F], - [0x1F6A3], - [0x1F6A3, 0x200D, 0x2642, 0xFE0F], - [0x1F6A3, 0x200D, 0x2640, 0xFE0F], - [0x1F3CA], - [0x1F3CA, 0x200D, 0x2642, 0xFE0F], - [0x1F3CA, 0x200D, 0x2640, 0xFE0F], - [0x26F9, 0xFE0F], - [0x26F9, 0xFE0F, 0x200D, 0x2642, 0xFE0F], - [0x26F9, 0xFE0F, 0x200D, 0x2640, 0xFE0F], - [0x1F3CB, 0xFE0F], - [0x1F3CB, 0xFE0F, 0x200D, 0x2642, 0xFE0F], - [0x1F3CB, 0xFE0F, 0x200D, 0x2640, 0xFE0F], - [0x1F6B4], - [0x1F6B4, 0x200D, 0x2642, 0xFE0F], - [0x1F6B4, 0x200D, 0x2640, 0xFE0F], - [0x1F6B5], - [0x1F6B5, 0x200D, 0x2642, 0xFE0F], - [0x1F6B5, 0x200D, 0x2640, 0xFE0F], - [0x1F938], - [0x1F938, 0x200D, 0x2642, 0xFE0F], - [0x1F938, 0x200D, 0x2640, 0xFE0F], - [0x1F93C], - [0x1F93C, 0x200D, 0x2642, 0xFE0F], - [0x1F93C, 0x200D, 0x2640, 0xFE0F], - [0x1F93D], - [0x1F93D, 0x200D, 0x2642, 0xFE0F], - [0x1F93D, 0x200D, 0x2640, 0xFE0F], - [0x1F93E], - [0x1F93E, 0x200D, 0x2642, 0xFE0F], - [0x1F93E, 0x200D, 0x2640, 0xFE0F], - [0x1F939], - [0x1F939, 0x200D, 0x2642, 0xFE0F], - [0x1F939, 0x200D, 0x2640, 0xFE0F], - [0x1F9D8], - [0x1F9D8, 0x200D, 0x2642, 0xFE0F], - [0x1F9D8, 0x200D, 0x2640, 0xFE0F], - [0x1F6C0], - [0x1F6CC], - [0x1F9D1, 0x200D, 0x1F91D, 0x200D, 0x1F9D1], - [0x1F46D], - [0x1F46B], - [0x1F46C], - [0x1F48F], - [0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468], - [0x1F468, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468], - [0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469], - [0x1F491], - [0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468], - [0x1F468, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468], - [0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469], - [0x1F46A], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F467], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F469, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F467], - [0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F5E3, 0xFE0F], - [0x1F464], - [0x1F465], - [0x1FAC2], - [0x1F463] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .nature), - emojis: [ - [0x1F435], - [0x1F412], - [0x1F98D], - [0x1F9A7], - [0x1F436], - [0x1F415], - [0x1F9AE], - [0x1F415, 0x200D, 0x1F9BA], - [0x1F429], - [0x1F43A], - [0x1F98A], - [0x1F99D], - [0x1F431], - [0x1F408], - [0x1F408, 0x200D, 0x2B1B], - [0x1F981], - [0x1F42F], - [0x1F405], - [0x1F406], - [0x1F434], - [0x1F40E], - [0x1F984], - [0x1F993], - [0x1F98C], - [0x1F9AC], - [0x1F42E], - [0x1F402], - [0x1F403], - [0x1F404], - [0x1F437], - [0x1F416], - [0x1F417], - [0x1F43D], - [0x1F40F], - [0x1F411], - [0x1F410], - [0x1F42A], - [0x1F42B], - [0x1F999], - [0x1F992], - [0x1F418], - [0x1F9A3], - [0x1F98F], - [0x1F99B], - [0x1F42D], - [0x1F401], - [0x1F400], - [0x1F439], - [0x1F430], - [0x1F407], - [0x1F43F, 0xFE0F], - [0x1F9AB], - [0x1F994], - [0x1F987], - [0x1F43B], - [0x1F43B, 0x200D, 0x2744, 0xFE0F], - [0x1F428], - [0x1F43C], - [0x1F9A5], - [0x1F9A6], - [0x1F9A8], - [0x1F998], - [0x1F9A1], - [0x1F43E], - [0x1F983], - [0x1F414], - [0x1F413], - [0x1F423], - [0x1F424], - [0x1F425], - [0x1F426], - [0x1F427], - [0x1F54A, 0xFE0F], - [0x1F985], - [0x1F986], - [0x1F9A2], - [0x1F989], - [0x1F9A4], - [0x1FAB6], - [0x1F9A9], - [0x1F99A], - [0x1F99C], - [0x1F438], - [0x1F40A], - [0x1F422], - [0x1F98E], - [0x1F40D], - [0x1F432], - [0x1F409], - [0x1F995], - [0x1F996], - [0x1F433], - [0x1F40B], - [0x1F42C], - [0x1F9AD], - [0x1F41F], - [0x1F420], - [0x1F421], - [0x1F988], - [0x1F419], - [0x1F41A], - [0x1F40C], - [0x1F98B], - [0x1F41B], - [0x1F41C], - [0x1F41D], - [0x1FAB2], - [0x1F41E], - [0x1F997], - [0x1FAB3], - [0x1F577, 0xFE0F], - [0x1F578, 0xFE0F], - [0x1F982], - [0x1F99F], - [0x1FAB0], - [0x1FAB1], - [0x1F9A0], - [0x1F490], - [0x1F338], - [0x1F4AE], - [0x1F3F5, 0xFE0F], - [0x1F339], - [0x1F940], - [0x1F33A], - [0x1F33B], - [0x1F33C], - [0x1F337], - [0x1F331], - [0x1FAB4], - [0x1F332], - [0x1F333], - [0x1F334], - [0x1F335], - [0x1F33E], - [0x1F33F], - [0x2618, 0xFE0F], - [0x1F340], - [0x1F341], - [0x1F342], - [0x1F343] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .foodAndDrink), - emojis: [ - [0x1F347], - [0x1F348], - [0x1F349], - [0x1F34A], - [0x1F34B], - [0x1F34C], - [0x1F34D], - [0x1F96D], - [0x1F34E], - [0x1F34F], - [0x1F350], - [0x1F351], - [0x1F352], - [0x1F353], - [0x1FAD0], - [0x1F95D], - [0x1F345], - [0x1FAD2], - [0x1F965], - [0x1F951], - [0x1F346], - [0x1F954], - [0x1F955], - [0x1F33D], - [0x1F336, 0xFE0F], - [0x1FAD1], - [0x1F952], - [0x1F96C], - [0x1F966], - [0x1F9C4], - [0x1F9C5], - [0x1F344], - [0x1F95C], - [0x1F330], - [0x1F35E], - [0x1F950], - [0x1F956], - [0x1FAD3], - [0x1F968], - [0x1F96F], - [0x1F95E], - [0x1F9C7], - [0x1F9C0], - [0x1F356], - [0x1F357], - [0x1F969], - [0x1F953], - [0x1F354], - [0x1F35F], - [0x1F355], - [0x1F32D], - [0x1F96A], - [0x1F32E], - [0x1F32F], - [0x1FAD4], - [0x1F959], - [0x1F9C6], - [0x1F95A], - [0x1F373], - [0x1F958], - [0x1F372], - [0x1FAD5], - [0x1F963], - [0x1F957], - [0x1F37F], - [0x1F9C8], - [0x1F9C2], - [0x1F96B], - [0x1F371], - [0x1F358], - [0x1F359], - [0x1F35A], - [0x1F35B], - [0x1F35C], - [0x1F35D], - [0x1F360], - [0x1F362], - [0x1F363], - [0x1F364], - [0x1F365], - [0x1F96E], - [0x1F361], - [0x1F95F], - [0x1F960], - [0x1F961], - [0x1F980], - [0x1F99E], - [0x1F990], - [0x1F991], - [0x1F9AA], - [0x1F366], - [0x1F367], - [0x1F368], - [0x1F369], - [0x1F36A], - [0x1F382], - [0x1F370], - [0x1F9C1], - [0x1F967], - [0x1F36B], - [0x1F36C], - [0x1F36D], - [0x1F36E], - [0x1F36F], - [0x1F37C], - [0x1F95B], - [0x2615], - [0x1FAD6], - [0x1F375], - [0x1F376], - [0x1F37E], - [0x1F377], - [0x1F378], - [0x1F379], - [0x1F37A], - [0x1F37B], - [0x1F942], - [0x1F943], - [0x1F964], - [0x1F9CB], - [0x1F9C3], - [0x1F9C9], - [0x1F9CA], - [0x1F962], - [0x1F37D, 0xFE0F], - [0x1F374], - [0x1F944], - [0x1F52A], - [0x1F3FA] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .activity), - emojis: [ - [0x1F383], - [0x1F384], - [0x1F386], - [0x1F387], - [0x1F9E8], - [0x2728], - [0x1F388], - [0x1F389], - [0x1F38A], - [0x1F38B], - [0x1F38D], - [0x1F38E], - [0x1F38F], - [0x1F390], - [0x1F391], - [0x1F9E7], - [0x1F380], - [0x1F381], - [0x1F397, 0xFE0F], - [0x1F39F, 0xFE0F], - [0x1F3AB], - [0x1F396, 0xFE0F], - [0x1F3C6], - [0x1F3C5], - [0x1F947], - [0x1F948], - [0x1F949], - [0x26BD], - [0x26BE], - [0x1F94E], - [0x1F3C0], - [0x1F3D0], - [0x1F3C8], - [0x1F3C9], - [0x1F3BE], - [0x1F94F], - [0x1F3B3], - [0x1F3CF], - [0x1F3D1], - [0x1F3D2], - [0x1F94D], - [0x1F3D3], - [0x1F3F8], - [0x1F94A], - [0x1F94B], - [0x1F945], - [0x26F3], - [0x26F8, 0xFE0F], - [0x1F3A3], - [0x1F93F], - [0x1F3BD], - [0x1F3BF], - [0x1F6F7], - [0x1F94C], - [0x1F3AF], - [0x1FA80], - [0x1FA81], - [0x1F3B1], - [0x1F52E], - [0x1FA84], - [0x1F9FF], - [0x1F3AE], - [0x1F579, 0xFE0F], - [0x1F3B0], - [0x1F3B2], - [0x1F9E9], - [0x1F9F8], - [0x1FA85], - [0x1FA86], - [0x2660, 0xFE0F], - [0x2665, 0xFE0F], - [0x2666, 0xFE0F], - [0x2663, 0xFE0F], - [0x265F, 0xFE0F], - [0x1F0CF], - [0x1F004], - [0x1F3B4], - [0x1F3AD], - [0x1F5BC, 0xFE0F], - [0x1F3A8], - [0x1F9F5], - [0x1FAA1], - [0x1F9F6], - [0x1FAA2] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .travelAndPlaces), - emojis: [ - [0x1F30D], - [0x1F30E], - [0x1F30F], - [0x1F310], - [0x1F5FA, 0xFE0F], - [0x1F5FE], - [0x1F9ED], - [0x1F3D4, 0xFE0F], - [0x26F0, 0xFE0F], - [0x1F30B], - [0x1F5FB], - [0x1F3D5, 0xFE0F], - [0x1F3D6, 0xFE0F], - [0x1F3DC, 0xFE0F], - [0x1F3DD, 0xFE0F], - [0x1F3DE, 0xFE0F], - [0x1F3DF, 0xFE0F], - [0x1F3DB, 0xFE0F], - [0x1F3D7, 0xFE0F], - [0x1F9F1], - [0x1FAA8], - [0x1FAB5], - [0x1F6D6], - [0x1F3D8, 0xFE0F], - [0x1F3DA, 0xFE0F], - [0x1F3E0], - [0x1F3E1], - [0x1F3E2], - [0x1F3E3], - [0x1F3E4], - [0x1F3E5], - [0x1F3E6], - [0x1F3E8], - [0x1F3E9], - [0x1F3EA], - [0x1F3EB], - [0x1F3EC], - [0x1F3ED], - [0x1F3EF], - [0x1F3F0], - [0x1F492], - [0x1F5FC], - [0x1F5FD], - [0x26EA], - [0x1F54C], - [0x1F6D5], - [0x1F54D], - [0x26E9, 0xFE0F], - [0x1F54B], - [0x26F2], - [0x26FA], - [0x1F301], - [0x1F303], - [0x1F3D9, 0xFE0F], - [0x1F304], - [0x1F305], - [0x1F306], - [0x1F307], - [0x1F309], - [0x2668, 0xFE0F], - [0x1F3A0], - [0x1F3A1], - [0x1F3A2], - [0x1F488], - [0x1F3AA], - [0x1F682], - [0x1F683], - [0x1F684], - [0x1F685], - [0x1F686], - [0x1F687], - [0x1F688], - [0x1F689], - [0x1F68A], - [0x1F69D], - [0x1F69E], - [0x1F68B], - [0x1F68C], - [0x1F68D], - [0x1F68E], - [0x1F690], - [0x1F691], - [0x1F692], - [0x1F693], - [0x1F694], - [0x1F695], - [0x1F696], - [0x1F697], - [0x1F698], - [0x1F699], - [0x1F6FB], - [0x1F69A], - [0x1F69B], - [0x1F69C], - [0x1F3CE, 0xFE0F], - [0x1F3CD, 0xFE0F], - [0x1F6F5], - [0x1F9BD], - [0x1F9BC], - [0x1F6FA], - [0x1F6B2], - [0x1F6F4], - [0x1F6F9], - [0x1F6FC], - [0x1F68F], - [0x1F6E3, 0xFE0F], - [0x1F6E4, 0xFE0F], - [0x1F6E2, 0xFE0F], - [0x26FD], - [0x1F6A8], - [0x1F6A5], - [0x1F6A6], - [0x1F6D1], - [0x1F6A7], - [0x2693], - [0x26F5], - [0x1F6F6], - [0x1F6A4], - [0x1F6F3, 0xFE0F], - [0x26F4, 0xFE0F], - [0x1F6E5, 0xFE0F], - [0x1F6A2], - [0x2708, 0xFE0F], - [0x1F6E9, 0xFE0F], - [0x1F6EB], - [0x1F6EC], - [0x1FA82], - [0x1F4BA], - [0x1F681], - [0x1F69F], - [0x1F6A0], - [0x1F6A1], - [0x1F6F0, 0xFE0F], - [0x1F680], - [0x1F6F8], - [0x1F6CE, 0xFE0F], - [0x1F9F3], - [0x231B], - [0x23F3], - [0x231A], - [0x23F0], - [0x23F1, 0xFE0F], - [0x23F2, 0xFE0F], - [0x1F570, 0xFE0F], - [0x1F55B], - [0x1F567], - [0x1F550], - [0x1F55C], - [0x1F551], - [0x1F55D], - [0x1F552], - [0x1F55E], - [0x1F553], - [0x1F55F], - [0x1F554], - [0x1F560], - [0x1F555], - [0x1F561], - [0x1F556], - [0x1F562], - [0x1F557], - [0x1F563], - [0x1F558], - [0x1F564], - [0x1F559], - [0x1F565], - [0x1F55A], - [0x1F566], - [0x1F311], - [0x1F312], - [0x1F313], - [0x1F314], - [0x1F315], - [0x1F316], - [0x1F317], - [0x1F318], - [0x1F319], - [0x1F31A], - [0x1F31B], - [0x1F31C], - [0x1F321, 0xFE0F], - [0x2600, 0xFE0F], - [0x1F31D], - [0x1F31E], - [0x1FA90], - [0x2B50], - [0x1F31F], - [0x1F320], - [0x1F30C], - [0x2601, 0xFE0F], - [0x26C5], - [0x26C8, 0xFE0F], - [0x1F324, 0xFE0F], - [0x1F325, 0xFE0F], - [0x1F326, 0xFE0F], - [0x1F327, 0xFE0F], - [0x1F328, 0xFE0F], - [0x1F329, 0xFE0F], - [0x1F32A, 0xFE0F], - [0x1F32B, 0xFE0F], - [0x1F32C, 0xFE0F], - [0x1F300], - [0x1F308], - [0x1F302], - [0x2602, 0xFE0F], - [0x2614], - [0x26F1, 0xFE0F], - [0x26A1], - [0x2744, 0xFE0F], - [0x2603, 0xFE0F], - [0x26C4], - [0x2604, 0xFE0F], - [0x1F525], - [0x1F4A7], - [0x1F30A] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .objects), - emojis: [ - [0x1F453], - [0x1F576, 0xFE0F], - [0x1F97D], - [0x1F97C], - [0x1F9BA], - [0x1F454], - [0x1F455], - [0x1F456], - [0x1F9E3], - [0x1F9E4], - [0x1F9E5], - [0x1F9E6], - [0x1F457], - [0x1F458], - [0x1F97B], - [0x1FA71], - [0x1FA72], - [0x1FA73], - [0x1F459], - [0x1F45A], - [0x1F45B], - [0x1F45C], - [0x1F45D], - [0x1F6CD, 0xFE0F], - [0x1F392], - [0x1FA74], - [0x1F45E], - [0x1F45F], - [0x1F97E], - [0x1F97F], - [0x1F460], - [0x1F461], - [0x1FA70], - [0x1F462], - [0x1F451], - [0x1F452], - [0x1F3A9], - [0x1F393], - [0x1F9E2], - [0x1FA96], - [0x26D1, 0xFE0F], - [0x1F4FF], - [0x1F484], - [0x1F48D], - [0x1F48E], - [0x1F507], - [0x1F508], - [0x1F509], - [0x1F50A], - [0x1F4E2], - [0x1F4E3], - [0x1F4EF], - [0x1F514], - [0x1F515], - [0x1F3BC], - [0x1F3B5], - [0x1F3B6], - [0x1F399, 0xFE0F], - [0x1F39A, 0xFE0F], - [0x1F39B, 0xFE0F], - [0x1F3A4], - [0x1F3A7], - [0x1F4FB], - [0x1F3B7], - [0x1FA97], - [0x1F3B8], - [0x1F3B9], - [0x1F3BA], - [0x1F3BB], - [0x1FA95], - [0x1F941], - [0x1FA98], - [0x1F4F1], - [0x1F4F2], - [0x260E, 0xFE0F], - [0x1F4DE], - [0x1F4DF], - [0x1F4E0], - [0x1F50B], - [0x1F50C], - [0x1F4BB], - [0x1F5A5, 0xFE0F], - [0x1F5A8, 0xFE0F], - [0x2328, 0xFE0F], - [0x1F5B1, 0xFE0F], - [0x1F5B2, 0xFE0F], - [0x1F4BD], - [0x1F4BE], - [0x1F4BF], - [0x1F4C0], - [0x1F9EE], - [0x1F3A5], - [0x1F39E, 0xFE0F], - [0x1F4FD, 0xFE0F], - [0x1F3AC], - [0x1F4FA], - [0x1F4F7], - [0x1F4F8], - [0x1F4F9], - [0x1F4FC], - [0x1F50D], - [0x1F50E], - [0x1F56F, 0xFE0F], - [0x1F4A1], - [0x1F526], - [0x1F3EE], - [0x1FA94], - [0x1F4D4], - [0x1F4D5], - [0x1F4D6], - [0x1F4D7], - [0x1F4D8], - [0x1F4D9], - [0x1F4DA], - [0x1F4D3], - [0x1F4D2], - [0x1F4C3], - [0x1F4DC], - [0x1F4C4], - [0x1F4F0], - [0x1F5DE, 0xFE0F], - [0x1F4D1], - [0x1F516], - [0x1F3F7, 0xFE0F], - [0x1F4B0], - [0x1FA99], - [0x1F4B4], - [0x1F4B5], - [0x1F4B6], - [0x1F4B7], - [0x1F4B8], - [0x1F4B3], - [0x1F9FE], - [0x1F4B9], - [0x2709, 0xFE0F], - [0x1F4E7], - [0x1F4E8], - [0x1F4E9], - [0x1F4E4], - [0x1F4E5], - [0x1F4E6], - [0x1F4EB], - [0x1F4EA], - [0x1F4EC], - [0x1F4ED], - [0x1F4EE], - [0x1F5F3, 0xFE0F], - [0x270F, 0xFE0F], - [0x2712, 0xFE0F], - [0x1F58B, 0xFE0F], - [0x1F58A, 0xFE0F], - [0x1F58C, 0xFE0F], - [0x1F58D, 0xFE0F], - [0x1F4DD], - [0x1F4BC], - [0x1F4C1], - [0x1F4C2], - [0x1F5C2, 0xFE0F], - [0x1F4C5], - [0x1F4C6], - [0x1F5D2, 0xFE0F], - [0x1F5D3, 0xFE0F], - [0x1F4C7], - [0x1F4C8], - [0x1F4C9], - [0x1F4CA], - [0x1F4CB], - [0x1F4CC], - [0x1F4CD], - [0x1F4CE], - [0x1F587, 0xFE0F], - [0x1F4CF], - [0x1F4D0], - [0x2702, 0xFE0F], - [0x1F5C3, 0xFE0F], - [0x1F5C4, 0xFE0F], - [0x1F5D1, 0xFE0F], - [0x1F512], - [0x1F513], - [0x1F50F], - [0x1F510], - [0x1F511], - [0x1F5DD, 0xFE0F], - [0x1F528], - [0x1FA93], - [0x26CF, 0xFE0F], - [0x2692, 0xFE0F], - [0x1F6E0, 0xFE0F], - [0x1F5E1, 0xFE0F], - [0x2694, 0xFE0F], - [0x1F52B], - [0x1FA83], - [0x1F3F9], - [0x1F6E1, 0xFE0F], - [0x1FA9A], - [0x1F527], - [0x1FA9B], - [0x1F529], - [0x2699, 0xFE0F], - [0x1F5DC, 0xFE0F], - [0x2696, 0xFE0F], - [0x1F9AF], - [0x1F517], - [0x26D3, 0xFE0F], - [0x1FA9D], - [0x1F9F0], - [0x1F9F2], - [0x1FA9C], - [0x2697, 0xFE0F], - [0x1F9EA], - [0x1F9EB], - [0x1F9EC], - [0x1F52C], - [0x1F52D], - [0x1F4E1], - [0x1F489], - [0x1FA78], - [0x1F48A], - [0x1FA79], - [0x1FA7A], - [0x1F6AA], - [0x1F6D7], - [0x1FA9E], - [0x1FA9F], - [0x1F6CF, 0xFE0F], - [0x1F6CB, 0xFE0F], - [0x1FA91], - [0x1F6BD], - [0x1FAA0], - [0x1F6BF], - [0x1F6C1], - [0x1FAA4], - [0x1FA92], - [0x1F9F4], - [0x1F9F7], - [0x1F9F9], - [0x1F9FA], - [0x1F9FB], - [0x1FAA3], - [0x1F9FC], - [0x1FAA5], - [0x1F9FD], - [0x1F9EF], - [0x1F6D2], - [0x1F6AC], - [0x26B0, 0xFE0F], - [0x1FAA6], - [0x26B1, 0xFE0F], - [0x1F5FF], - [0x1FAA7] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .symbols), - emojis: [ - [0x1F3E7], - [0x1F6AE], - [0x1F6B0], - [0x267F], - [0x1F6B9], - [0x1F6BA], - [0x1F6BB], - [0x1F6BC], - [0x1F6BE], - [0x1F6C2], - [0x1F6C3], - [0x1F6C4], - [0x1F6C5], - [0x26A0, 0xFE0F], - [0x1F6B8], - [0x26D4], - [0x1F6AB], - [0x1F6B3], - [0x1F6AD], - [0x1F6AF], - [0x1F6B1], - [0x1F6B7], - [0x1F4F5], - [0x1F51E], - [0x2622, 0xFE0F], - [0x2623, 0xFE0F], - [0x2B06, 0xFE0F], - [0x2197, 0xFE0F], - [0x27A1, 0xFE0F], - [0x2198, 0xFE0F], - [0x2B07, 0xFE0F], - [0x2199, 0xFE0F], - [0x2B05, 0xFE0F], - [0x2196, 0xFE0F], - [0x2195, 0xFE0F], - [0x2194, 0xFE0F], - [0x21A9, 0xFE0F], - [0x21AA, 0xFE0F], - [0x2934, 0xFE0F], - [0x2935, 0xFE0F], - [0x1F503], - [0x1F504], - [0x1F519], - [0x1F51A], - [0x1F51B], - [0x1F51C], - [0x1F51D], - [0x1F6D0], - [0x269B, 0xFE0F], - [0x1F549, 0xFE0F], - [0x2721, 0xFE0F], - [0x2638, 0xFE0F], - [0x262F, 0xFE0F], - [0x271D, 0xFE0F], - [0x2626, 0xFE0F], - [0x262A, 0xFE0F], - [0x262E, 0xFE0F], - [0x1F54E], - [0x1F52F], - [0x2648], - [0x2649], - [0x264A], - [0x264B], - [0x264C], - [0x264D], - [0x264E], - [0x264F], - [0x2650], - [0x2651], - [0x2652], - [0x2653], - [0x26CE], - [0x1F500], - [0x1F501], - [0x1F502], - [0x25B6, 0xFE0F], - [0x23E9], - [0x23ED, 0xFE0F], - [0x23EF, 0xFE0F], - [0x25C0, 0xFE0F], - [0x23EA], - [0x23EE, 0xFE0F], - [0x1F53C], - [0x23EB], - [0x1F53D], - [0x23EC], - [0x23F8, 0xFE0F], - [0x23F9, 0xFE0F], - [0x23FA, 0xFE0F], - [0x23CF, 0xFE0F], - [0x1F3A6], - [0x1F505], - [0x1F506], - [0x1F4F6], - [0x1F4F3], - [0x1F4F4], - [0x2640, 0xFE0F], - [0x2642, 0xFE0F], - [0x26A7, 0xFE0F], - [0x2716, 0xFE0F], - [0x2795], - [0x2796], - [0x2797], - [0x267E, 0xFE0F], - [0x203C, 0xFE0F], - [0x2049, 0xFE0F], - [0x2753], - [0x2754], - [0x2755], - [0x2757], - [0x3030, 0xFE0F], - [0x1F4B1], - [0x1F4B2], - [0x2695, 0xFE0F], - [0x267B, 0xFE0F], - [0x269C, 0xFE0F], - [0x1F531], - [0x1F4DB], - [0x1F530], - [0x2B55], - [0x2705], - [0x2611, 0xFE0F], - [0x2714, 0xFE0F], - [0x274C], - [0x274E], - [0x27B0], - [0x27BF], - [0x303D, 0xFE0F], - [0x2733, 0xFE0F], - [0x2734, 0xFE0F], - [0x2747, 0xFE0F], - [0x00A9, 0xFE0F], - [0x00AE, 0xFE0F], - [0x2122, 0xFE0F], - [0x0023, 0xFE0F, 0x20E3], - [0x002A, 0xFE0F, 0x20E3], - [0x0030, 0xFE0F, 0x20E3], - [0x0031, 0xFE0F, 0x20E3], - [0x0032, 0xFE0F, 0x20E3], - [0x0033, 0xFE0F, 0x20E3], - [0x0034, 0xFE0F, 0x20E3], - [0x0035, 0xFE0F, 0x20E3], - [0x0036, 0xFE0F, 0x20E3], - [0x0037, 0xFE0F, 0x20E3], - [0x0038, 0xFE0F, 0x20E3], - [0x0039, 0xFE0F, 0x20E3], - [0x1F51F], - [0x1F520], - [0x1F521], - [0x1F522], - [0x1F523], - [0x1F524], - [0x1F170, 0xFE0F], - [0x1F18E], - [0x1F171, 0xFE0F], - [0x1F191], - [0x1F192], - [0x1F193], - [0x2139, 0xFE0F], - [0x1F194], - [0x24C2, 0xFE0F], - [0x1F195], - [0x1F196], - [0x1F17E, 0xFE0F], - [0x1F197], - [0x1F17F, 0xFE0F], - [0x1F198], - [0x1F199], - [0x1F19A], - [0x1F201], - [0x1F202, 0xFE0F], - [0x1F237, 0xFE0F], - [0x1F236], - [0x1F22F], - [0x1F250], - [0x1F239], - [0x1F21A], - [0x1F232], - [0x1F251], - [0x1F238], - [0x1F234], - [0x1F233], - [0x3297, 0xFE0F], - [0x3299, 0xFE0F], - [0x1F23A], - [0x1F235], - [0x1F534], - [0x1F7E0], - [0x1F7E1], - [0x1F7E2], - [0x1F535], - [0x1F7E3], - [0x1F7E4], - [0x26AB], - [0x26AA], - [0x1F7E5], - [0x1F7E7], - [0x1F7E8], - [0x1F7E9], - [0x1F7E6], - [0x1F7EA], - [0x1F7EB], - [0x2B1B], - [0x2B1C], - [0x25FC, 0xFE0F], - [0x25FB, 0xFE0F], - [0x25FE], - [0x25FD], - [0x25AA, 0xFE0F], - [0x25AB, 0xFE0F], - [0x1F536], - [0x1F537], - [0x1F538], - [0x1F539], - [0x1F53A], - [0x1F53B], - [0x1F4A0], - [0x1F518], - [0x1F533], - [0x1F532] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .flags), - emojis: [ - [0x1F3C1], - [0x1F6A9], - [0x1F38C], - [0x1F3F4], - [0x1F3F3, 0xFE0F], - [0x1F3F3, 0xFE0F, 0x200D, 0x1F308], - [0x1F3F3, 0xFE0F, 0x200D, 0x26A7, 0xFE0F], - [0x1F3F4, 0x200D, 0x2620, 0xFE0F], - [0x1F1E6, 0x1F1E8], - [0x1F1E6, 0x1F1E9], - [0x1F1E6, 0x1F1EA], - [0x1F1E6, 0x1F1EB], - [0x1F1E6, 0x1F1EC], - [0x1F1E6, 0x1F1EE], - [0x1F1E6, 0x1F1F1], - [0x1F1E6, 0x1F1F2], - [0x1F1E6, 0x1F1F4], - [0x1F1E6, 0x1F1F6], - [0x1F1E6, 0x1F1F7], - [0x1F1E6, 0x1F1F8], - [0x1F1E6, 0x1F1F9], - [0x1F1E6, 0x1F1FA], - [0x1F1E6, 0x1F1FC], - [0x1F1E6, 0x1F1FD], - [0x1F1E6, 0x1F1FF], - [0x1F1E7, 0x1F1E6], - [0x1F1E7, 0x1F1E7], - [0x1F1E7, 0x1F1E9], - [0x1F1E7, 0x1F1EA], - [0x1F1E7, 0x1F1EB], - [0x1F1E7, 0x1F1EC], - [0x1F1E7, 0x1F1ED], - [0x1F1E7, 0x1F1EE], - [0x1F1E7, 0x1F1EF], - [0x1F1E7, 0x1F1F1], - [0x1F1E7, 0x1F1F2], - [0x1F1E7, 0x1F1F3], - [0x1F1E7, 0x1F1F4], - [0x1F1E7, 0x1F1F6], - [0x1F1E7, 0x1F1F7], - [0x1F1E7, 0x1F1F8], - [0x1F1E7, 0x1F1F9], - [0x1F1E7, 0x1F1FB], - [0x1F1E7, 0x1F1FC], - [0x1F1E7, 0x1F1FE], - [0x1F1E7, 0x1F1FF], - [0x1F1E8, 0x1F1E6], - [0x1F1E8, 0x1F1E8], - [0x1F1E8, 0x1F1E9], - [0x1F1E8, 0x1F1EB], - [0x1F1E8, 0x1F1EC], - [0x1F1E8, 0x1F1ED], - [0x1F1E8, 0x1F1EE], - [0x1F1E8, 0x1F1F0], - [0x1F1E8, 0x1F1F1], - [0x1F1E8, 0x1F1F2], - [0x1F1E8, 0x1F1F3], - [0x1F1E8, 0x1F1F4], - [0x1F1E8, 0x1F1F5], - [0x1F1E8, 0x1F1F7], - [0x1F1E8, 0x1F1FA], - [0x1F1E8, 0x1F1FB], - [0x1F1E8, 0x1F1FC], - [0x1F1E8, 0x1F1FD], - [0x1F1E8, 0x1F1FE], - [0x1F1E8, 0x1F1FF], - [0x1F1E9, 0x1F1EA], - [0x1F1E9, 0x1F1EC], - [0x1F1E9, 0x1F1EF], - [0x1F1E9, 0x1F1F0], - [0x1F1E9, 0x1F1F2], - [0x1F1E9, 0x1F1F4], - [0x1F1E9, 0x1F1FF], - [0x1F1EA, 0x1F1E6], - [0x1F1EA, 0x1F1E8], - [0x1F1EA, 0x1F1EA], - [0x1F1EA, 0x1F1EC], - [0x1F1EA, 0x1F1ED], - [0x1F1EA, 0x1F1F7], - [0x1F1EA, 0x1F1F8], - [0x1F1EA, 0x1F1F9], - [0x1F1EA, 0x1F1FA], - [0x1F1EB, 0x1F1EE], - [0x1F1EB, 0x1F1EF], - [0x1F1EB, 0x1F1F0], - [0x1F1EB, 0x1F1F2], - [0x1F1EB, 0x1F1F4], - [0x1F1EB, 0x1F1F7], - [0x1F1EC, 0x1F1E6], - [0x1F1EC, 0x1F1E7], - [0x1F1EC, 0x1F1E9], - [0x1F1EC, 0x1F1EA], - [0x1F1EC, 0x1F1EB], - [0x1F1EC, 0x1F1EC], - [0x1F1EC, 0x1F1ED], - [0x1F1EC, 0x1F1EE], - [0x1F1EC, 0x1F1F1], - [0x1F1EC, 0x1F1F2], - [0x1F1EC, 0x1F1F3], - [0x1F1EC, 0x1F1F5], - [0x1F1EC, 0x1F1F6], - [0x1F1EC, 0x1F1F7], - [0x1F1EC, 0x1F1F8], - [0x1F1EC, 0x1F1F9], - [0x1F1EC, 0x1F1FA], - [0x1F1EC, 0x1F1FC], - [0x1F1EC, 0x1F1FE], - [0x1F1ED, 0x1F1F0], - [0x1F1ED, 0x1F1F2], - [0x1F1ED, 0x1F1F3], - [0x1F1ED, 0x1F1F7], - [0x1F1ED, 0x1F1F9], - [0x1F1ED, 0x1F1FA], - [0x1F1EE, 0x1F1E8], - [0x1F1EE, 0x1F1E9], - [0x1F1EE, 0x1F1EA], - [0x1F1EE, 0x1F1F1], - [0x1F1EE, 0x1F1F2], - [0x1F1EE, 0x1F1F3], - [0x1F1EE, 0x1F1F4], - [0x1F1EE, 0x1F1F6], - [0x1F1EE, 0x1F1F7], - [0x1F1EE, 0x1F1F8], - [0x1F1EE, 0x1F1F9], - [0x1F1EF, 0x1F1EA], - [0x1F1EF, 0x1F1F2], - [0x1F1EF, 0x1F1F4], - [0x1F1EF, 0x1F1F5], - [0x1F1F0, 0x1F1EA], - [0x1F1F0, 0x1F1EC], - [0x1F1F0, 0x1F1ED], - [0x1F1F0, 0x1F1EE], - [0x1F1F0, 0x1F1F2], - [0x1F1F0, 0x1F1F3], - [0x1F1F0, 0x1F1F5], - [0x1F1F0, 0x1F1F7], - [0x1F1F0, 0x1F1FC], - [0x1F1F0, 0x1F1FE], - [0x1F1F0, 0x1F1FF], - [0x1F1F1, 0x1F1E6], - [0x1F1F1, 0x1F1E7], - [0x1F1F1, 0x1F1E8], - [0x1F1F1, 0x1F1EE], - [0x1F1F1, 0x1F1F0], - [0x1F1F1, 0x1F1F7], - [0x1F1F1, 0x1F1F8], - [0x1F1F1, 0x1F1F9], - [0x1F1F1, 0x1F1FA], - [0x1F1F1, 0x1F1FB], - [0x1F1F1, 0x1F1FE], - [0x1F1F2, 0x1F1E6], - [0x1F1F2, 0x1F1E8], - [0x1F1F2, 0x1F1E9], - [0x1F1F2, 0x1F1EA], - [0x1F1F2, 0x1F1EB], - [0x1F1F2, 0x1F1EC], - [0x1F1F2, 0x1F1ED], - [0x1F1F2, 0x1F1F0], - [0x1F1F2, 0x1F1F1], - [0x1F1F2, 0x1F1F2], - [0x1F1F2, 0x1F1F3], - [0x1F1F2, 0x1F1F4], - [0x1F1F2, 0x1F1F5], - [0x1F1F2, 0x1F1F6], - [0x1F1F2, 0x1F1F7], - [0x1F1F2, 0x1F1F8], - [0x1F1F2, 0x1F1F9], - [0x1F1F2, 0x1F1FA], - [0x1F1F2, 0x1F1FB], - [0x1F1F2, 0x1F1FC], - [0x1F1F2, 0x1F1FD], - [0x1F1F2, 0x1F1FE], - [0x1F1F2, 0x1F1FF], - [0x1F1F3, 0x1F1E6], - [0x1F1F3, 0x1F1E8], - [0x1F1F3, 0x1F1EA], - [0x1F1F3, 0x1F1EB], - [0x1F1F3, 0x1F1EC], - [0x1F1F3, 0x1F1EE], - [0x1F1F3, 0x1F1F1], - [0x1F1F3, 0x1F1F4], - [0x1F1F3, 0x1F1F5], - [0x1F1F3, 0x1F1F7], - [0x1F1F3, 0x1F1FA], - [0x1F1F3, 0x1F1FF], - [0x1F1F4, 0x1F1F2], - [0x1F1F5, 0x1F1E6], - [0x1F1F5, 0x1F1EA], - [0x1F1F5, 0x1F1EB], - [0x1F1F5, 0x1F1EC], - [0x1F1F5, 0x1F1ED], - [0x1F1F5, 0x1F1F0], - [0x1F1F5, 0x1F1F1], - [0x1F1F5, 0x1F1F2], - [0x1F1F5, 0x1F1F3], - [0x1F1F5, 0x1F1F7], - [0x1F1F5, 0x1F1F8], - [0x1F1F5, 0x1F1F9], - [0x1F1F5, 0x1F1FC], - [0x1F1F5, 0x1F1FE], - [0x1F1F6, 0x1F1E6], - [0x1F1F7, 0x1F1EA], - [0x1F1F7, 0x1F1F4], - [0x1F1F7, 0x1F1F8], - [0x1F1F7, 0x1F1FA], - [0x1F1F7, 0x1F1FC], - [0x1F1F8, 0x1F1E6], - [0x1F1F8, 0x1F1E7], - [0x1F1F8, 0x1F1E8], - [0x1F1F8, 0x1F1E9], - [0x1F1F8, 0x1F1EA], - [0x1F1F8, 0x1F1EC], - [0x1F1F8, 0x1F1ED], - [0x1F1F8, 0x1F1EE], - [0x1F1F8, 0x1F1EF], - [0x1F1F8, 0x1F1F0], - [0x1F1F8, 0x1F1F1], - [0x1F1F8, 0x1F1F2], - [0x1F1F8, 0x1F1F3], - [0x1F1F8, 0x1F1F4], - [0x1F1F8, 0x1F1F7], - [0x1F1F8, 0x1F1F8], - [0x1F1F8, 0x1F1F9], - [0x1F1F8, 0x1F1FB], - [0x1F1F8, 0x1F1FD], - [0x1F1F8, 0x1F1FE], - [0x1F1F8, 0x1F1FF], - [0x1F1F9, 0x1F1E6], - [0x1F1F9, 0x1F1E8], - [0x1F1F9, 0x1F1E9], - [0x1F1F9, 0x1F1EB], - [0x1F1F9, 0x1F1EC], - [0x1F1F9, 0x1F1ED], - [0x1F1F9, 0x1F1EF], - [0x1F1F9, 0x1F1F0], - [0x1F1F9, 0x1F1F1], - [0x1F1F9, 0x1F1F2], - [0x1F1F9, 0x1F1F3], - [0x1F1F9, 0x1F1F4], - [0x1F1F9, 0x1F1F7], - [0x1F1F9, 0x1F1F9], - [0x1F1F9, 0x1F1FB], - [0x1F1F9, 0x1F1FC], - [0x1F1F9, 0x1F1FF], - [0x1F1FA, 0x1F1E6], - [0x1F1FA, 0x1F1EC], - [0x1F1FA, 0x1F1F2], - [0x1F1FA, 0x1F1F3], - [0x1F1FA, 0x1F1F8], - [0x1F1FA, 0x1F1FE], - [0x1F1FA, 0x1F1FF], - [0x1F1FB, 0x1F1E6], - [0x1F1FB, 0x1F1E8], - [0x1F1FB, 0x1F1EA], - [0x1F1FB, 0x1F1EC], - [0x1F1FB, 0x1F1EE], - [0x1F1FB, 0x1F1F3], - [0x1F1FB, 0x1F1FA], - [0x1F1FC, 0x1F1EB], - [0x1F1FC, 0x1F1F8], - [0x1F1FD, 0x1F1F0], - [0x1F1FE, 0x1F1EA], - [0x1F1FE, 0x1F1F9], - [0x1F1FF, 0x1F1E6], - [0x1F1FF, 0x1F1F2], - [0x1F1FF, 0x1F1FC], - [0x1F3F4, 0xE0067, 0xE0062, 0xE0065, 0xE006E, 0xE0067, 0xE007F], - [0x1F3F4, 0xE0067, 0xE0062, 0xE0073, 0xE0063, 0xE0074, 0xE007F], - [0x1F3F4, 0xE0067, 0xE0062, 0xE0077, 0xE006C, 0xE0073, 0xE007F] - ] - ) - ] - } -} diff --git a/Sources/EmojiPicker/Services/Unicode/Unicode 14.swift b/Sources/EmojiPicker/Services/Unicode/Unicode 14.swift deleted file mode 100644 index c1ef043..0000000 --- a/Sources/EmojiPicker/Services/Unicode/Unicode 14.swift +++ /dev/null @@ -1,1916 +0,0 @@ -// The MIT License (MIT) -// Copyright © 2022 Ivan Izyumkin -// -// 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. - -extension UnicodeManager { - var unicode14: [EmojiCategory] { - return [ - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .people), - emojis: [ - [0x1F600], - [0x1F603], - [0x1F604], - [0x1F601], - [0x1F606], - [0x1F605], - [0x1F923], - [0x1F602], - [0x1F642], - [0x1F643], - [0x1FAE0], - [0x1F609], - [0x1F60A], - [0x1F607], - [0x1F970], - [0x1F60D], - [0x1F929], - [0x1F618], - [0x1F617], - [0x263A, 0xFE0F], - [0x1F61A], - [0x1F619], - [0x1F972], - [0x1F60B], - [0x1F61B], - [0x1F61C], - [0x1F92A], - [0x1F61D], - [0x1F911], - [0x1F917], - [0x1F92D], - [0x1FAE2], - [0x1FAE3], - [0x1F92B], - [0x1F914], - [0x1FAE1], - [0x1F910], - [0x1F928], - [0x1F610], - [0x1F611], - [0x1F636], - [0x1FAE5], - [0x1F636, 0x200D, 0x1F32B, 0xFE0F], - [0x1F60F], - [0x1F612], - [0x1F644], - [0x1F62C], - [0x1F62E, 0x200D, 0x1F4A8], - [0x1F925], - [0x1F60C], - [0x1F614], - [0x1F62A], - [0x1F924], - [0x1F634], - [0x1F637], - [0x1F912], - [0x1F915], - [0x1F922], - [0x1F92E], - [0x1F927], - [0x1F975], - [0x1F976], - [0x1F974], - [0x1F635], - [0x1F635, 0x200D, 0x1F4AB], - [0x1F92F], - [0x1F920], - [0x1F973], - [0x1F978], - [0x1F60E], - [0x1F913], - [0x1F9D0], - [0x1F615], - [0x1FAE4], - [0x1F61F], - [0x1F641], - [0x2639, 0xFE0F], - [0x1F62E], - [0x1F62F], - [0x1F632], - [0x1F633], - [0x1F97A], - [0x1F979], - [0x1F626], - [0x1F627], - [0x1F628], - [0x1F630], - [0x1F625], - [0x1F622], - [0x1F62D], - [0x1F631], - [0x1F616], - [0x1F623], - [0x1F61E], - [0x1F613], - [0x1F629], - [0x1F62B], - [0x1F971], - [0x1F624], - [0x1F621], - [0x1F620], - [0x1F92C], - [0x1F608], - [0x1F47F], - [0x1F480], - [0x2620, 0xFE0F], - [0x1F4A9], - [0x1F921], - [0x1F479], - [0x1F47A], - [0x1F47B], - [0x1F47D], - [0x1F47E], - [0x1F916], - [0x1F63A], - [0x1F638], - [0x1F639], - [0x1F63B], - [0x1F63C], - [0x1F63D], - [0x1F640], - [0x1F63F], - [0x1F63E], - [0x1F648], - [0x1F649], - [0x1F64A], - [0x1F48B], - [0x1F48C], - [0x1F498], - [0x1F49D], - [0x1F496], - [0x1F497], - [0x1F493], - [0x1F49E], - [0x1F495], - [0x1F49F], - [0x2763, 0xFE0F], - [0x1F494], - [0x2764, 0xFE0F, 0x200D, 0x1F525], - [0x2764, 0xFE0F, 0x200D, 0x1FA79], - [0x2764, 0xFE0F], - [0x1F9E1], - [0x1F49B], - [0x1F49A], - [0x1F499], - [0x1F49C], - [0x1F90E], - [0x1F5A4], - [0x1F90D], - [0x1F4AF], - [0x1F4A2], - [0x1F4A5], - [0x1F4AB], - [0x1F4A6], - [0x1F4A8], - [0x1F573, 0xFE0F], - [0x1F4A3], - [0x1F4AC], - [0x1F441, 0xFE0F, 0x200D, 0x1F5E8, 0xFE0F], - [0x1F5E8, 0xFE0F], - [0x1F5EF, 0xFE0F], - [0x1F4AD], - [0x1F4A4], - [0x1F44B], - [0x1F91A], - [0x1F590, 0xFE0F], - [0x270B], - [0x1F596], - [0x1FAF1], - [0x1FAF2], - [0x1FAF3], - [0x1FAF4], - [0x1F44C], - [0x1F90C], - [0x1F90F], - [0x270C, 0xFE0F], - [0x1F91E], - [0x1FAF0], - [0x1F91F], - [0x1F918], - [0x1F919], - [0x1F448], - [0x1F449], - [0x1F446], - [0x1F595], - [0x1F447], - [0x261D, 0xFE0F], - [0x1FAF5], - [0x1F44D], - [0x1F44E], - [0x270A], - [0x1F44A], - [0x1F91B], - [0x1F91C], - [0x1F44F], - [0x1F64C], - [0x1FAF6], - [0x1F450], - [0x1F932], - [0x1F91D], - [0x1F64F], - [0x270D, 0xFE0F], - [0x1F485], - [0x1F933], - [0x1F4AA], - [0x1F9BE], - [0x1F9BF], - [0x1F9B5], - [0x1F9B6], - [0x1F442], - [0x1F9BB], - [0x1F443], - [0x1F9E0], - [0x1FAC0], - [0x1FAC1], - [0x1F9B7], - [0x1F9B4], - [0x1F440], - [0x1F441, 0xFE0F], - [0x1F445], - [0x1F444], - [0x1FAE6], - [0x1F476], - [0x1F9D2], - [0x1F466], - [0x1F467], - [0x1F9D1], - [0x1F471], - [0x1F468], - [0x1F9D4], - [0x1F9D4, 0x200D, 0x2642, 0xFE0F], - [0x1F9D4, 0x200D, 0x2640, 0xFE0F], - [0x1F468, 0x200D, 0x1F9B0], - [0x1F468, 0x200D, 0x1F9B1], - [0x1F468, 0x200D, 0x1F9B3], - [0x1F468, 0x200D, 0x1F9B2], - [0x1F469], - [0x1F469, 0x200D, 0x1F9B0], - [0x1F9D1, 0x200D, 0x1F9B0], - [0x1F469, 0x200D, 0x1F9B1], - [0x1F9D1, 0x200D, 0x1F9B1], - [0x1F469, 0x200D, 0x1F9B3], - [0x1F9D1, 0x200D, 0x1F9B3], - [0x1F469, 0x200D, 0x1F9B2], - [0x1F9D1, 0x200D, 0x1F9B2], - [0x1F471, 0x200D, 0x2640, 0xFE0F], - [0x1F471, 0x200D, 0x2642, 0xFE0F], - [0x1F9D3], - [0x1F474], - [0x1F475], - [0x1F64D], - [0x1F64D, 0x200D, 0x2642, 0xFE0F], - [0x1F64D, 0x200D, 0x2640, 0xFE0F], - [0x1F64E], - [0x1F64E, 0x200D, 0x2642, 0xFE0F], - [0x1F64E, 0x200D, 0x2640, 0xFE0F], - [0x1F645], - [0x1F645, 0x200D, 0x2642, 0xFE0F], - [0x1F645, 0x200D, 0x2640, 0xFE0F], - [0x1F646], - [0x1F646, 0x200D, 0x2642, 0xFE0F], - [0x1F646, 0x200D, 0x2640, 0xFE0F], - [0x1F481], - [0x1F481, 0x200D, 0x2642, 0xFE0F], - [0x1F481, 0x200D, 0x2640, 0xFE0F], - [0x1F64B], - [0x1F64B, 0x200D, 0x2642, 0xFE0F], - [0x1F64B, 0x200D, 0x2640, 0xFE0F], - [0x1F9CF], - [0x1F9CF, 0x200D, 0x2642, 0xFE0F], - [0x1F9CF, 0x200D, 0x2640, 0xFE0F], - [0x1F647], - [0x1F647, 0x200D, 0x2642, 0xFE0F], - [0x1F647, 0x200D, 0x2640, 0xFE0F], - [0x1F926], - [0x1F926, 0x200D, 0x2642, 0xFE0F], - [0x1F926, 0x200D, 0x2640, 0xFE0F], - [0x1F937], - [0x1F937, 0x200D, 0x2642, 0xFE0F], - [0x1F937, 0x200D, 0x2640, 0xFE0F], - [0x1F9D1, 0x200D, 0x2695, 0xFE0F], - [0x1F468, 0x200D, 0x2695, 0xFE0F], - [0x1F469, 0x200D, 0x2695, 0xFE0F], - [0x1F9D1, 0x200D, 0x1F393], - [0x1F468, 0x200D, 0x1F393], - [0x1F469, 0x200D, 0x1F393], - [0x1F9D1, 0x200D, 0x1F3EB], - [0x1F468, 0x200D, 0x1F3EB], - [0x1F469, 0x200D, 0x1F3EB], - [0x1F9D1, 0x200D, 0x2696, 0xFE0F], - [0x1F468, 0x200D, 0x2696, 0xFE0F], - [0x1F469, 0x200D, 0x2696, 0xFE0F], - [0x1F9D1, 0x200D, 0x1F33E], - [0x1F468, 0x200D, 0x1F33E], - [0x1F469, 0x200D, 0x1F33E], - [0x1F9D1, 0x200D, 0x1F373], - [0x1F468, 0x200D, 0x1F373], - [0x1F469, 0x200D, 0x1F373], - [0x1F9D1, 0x200D, 0x1F527], - [0x1F468, 0x200D, 0x1F527], - [0x1F469, 0x200D, 0x1F527], - [0x1F9D1, 0x200D, 0x1F3ED], - [0x1F468, 0x200D, 0x1F3ED], - [0x1F469, 0x200D, 0x1F3ED], - [0x1F9D1, 0x200D, 0x1F4BC], - [0x1F468, 0x200D, 0x1F4BC], - [0x1F469, 0x200D, 0x1F4BC], - [0x1F9D1, 0x200D, 0x1F52C], - [0x1F468, 0x200D, 0x1F52C], - [0x1F469, 0x200D, 0x1F52C], - [0x1F9D1, 0x200D, 0x1F4BB], - [0x1F468, 0x200D, 0x1F4BB], - [0x1F469, 0x200D, 0x1F4BB], - [0x1F9D1, 0x200D, 0x1F3A4], - [0x1F468, 0x200D, 0x1F3A4], - [0x1F469, 0x200D, 0x1F3A4], - [0x1F9D1, 0x200D, 0x1F3A8], - [0x1F468, 0x200D, 0x1F3A8], - [0x1F469, 0x200D, 0x1F3A8], - [0x1F9D1, 0x200D, 0x2708, 0xFE0F], - [0x1F468, 0x200D, 0x2708, 0xFE0F], - [0x1F469, 0x200D, 0x2708, 0xFE0F], - [0x1F9D1, 0x200D, 0x1F680], - [0x1F468, 0x200D, 0x1F680], - [0x1F469, 0x200D, 0x1F680], - [0x1F9D1, 0x200D, 0x1F692], - [0x1F468, 0x200D, 0x1F692], - [0x1F469, 0x200D, 0x1F692], - [0x1F46E], - [0x1F46E, 0x200D, 0x2642, 0xFE0F], - [0x1F46E, 0x200D, 0x2640, 0xFE0F], - [0x1F575, 0xFE0F], - [0x1F575, 0xFE0F, 0x200D, 0x2642, 0xFE0F], - [0x1F575, 0xFE0F, 0x200D, 0x2640, 0xFE0F], - [0x1F482], - [0x1F482, 0x200D, 0x2642, 0xFE0F], - [0x1F482, 0x200D, 0x2640, 0xFE0F], - [0x1F977], - [0x1F477], - [0x1F477, 0x200D, 0x2642, 0xFE0F], - [0x1F477, 0x200D, 0x2640, 0xFE0F], - [0x1FAC5], - [0x1F934], - [0x1F478], - [0x1F473], - [0x1F473, 0x200D, 0x2642, 0xFE0F], - [0x1F473, 0x200D, 0x2640, 0xFE0F], - [0x1F472], - [0x1F9D5], - [0x1F935], - [0x1F935, 0x200D, 0x2642, 0xFE0F], - [0x1F935, 0x200D, 0x2640, 0xFE0F], - [0x1F470], - [0x1F470, 0x200D, 0x2642, 0xFE0F], - [0x1F470, 0x200D, 0x2640, 0xFE0F], - [0x1F930], - [0x1FAC3], - [0x1FAC4], - [0x1F931], - [0x1F469, 0x200D, 0x1F37C], - [0x1F468, 0x200D, 0x1F37C], - [0x1F9D1, 0x200D, 0x1F37C], - [0x1F47C], - [0x1F385], - [0x1F936], - [0x1F9D1, 0x200D, 0x1F384], - [0x1F9B8], - [0x1F9B8, 0x200D, 0x2642, 0xFE0F], - [0x1F9B8, 0x200D, 0x2640, 0xFE0F], - [0x1F9B9], - [0x1F9B9, 0x200D, 0x2642, 0xFE0F], - [0x1F9B9, 0x200D, 0x2640, 0xFE0F], - [0x1F9D9], - [0x1F9D9, 0x200D, 0x2642, 0xFE0F], - [0x1F9D9, 0x200D, 0x2640, 0xFE0F], - [0x1F9DA], - [0x1F9DA, 0x200D, 0x2642, 0xFE0F], - [0x1F9DA, 0x200D, 0x2640, 0xFE0F], - [0x1F9DB], - [0x1F9DB, 0x200D, 0x2642, 0xFE0F], - [0x1F9DB, 0x200D, 0x2640, 0xFE0F], - [0x1F9DC], - [0x1F9DC, 0x200D, 0x2642, 0xFE0F], - [0x1F9DC, 0x200D, 0x2640, 0xFE0F], - [0x1F9DD], - [0x1F9DD, 0x200D, 0x2642, 0xFE0F], - [0x1F9DD, 0x200D, 0x2640, 0xFE0F], - [0x1F9DE], - [0x1F9DE, 0x200D, 0x2642, 0xFE0F], - [0x1F9DE, 0x200D, 0x2640, 0xFE0F], - [0x1F9DF], - [0x1F9DF, 0x200D, 0x2642, 0xFE0F], - [0x1F9DF, 0x200D, 0x2640, 0xFE0F], - [0x1F9CC], - [0x1F486], - [0x1F486, 0x200D, 0x2642, 0xFE0F], - [0x1F486, 0x200D, 0x2640, 0xFE0F], - [0x1F487], - [0x1F487, 0x200D, 0x2642, 0xFE0F], - [0x1F487, 0x200D, 0x2640, 0xFE0F], - [0x1F6B6], - [0x1F6B6, 0x200D, 0x2642, 0xFE0F], - [0x1F6B6, 0x200D, 0x2640, 0xFE0F], - [0x1F9CD], - [0x1F9CD, 0x200D, 0x2642, 0xFE0F], - [0x1F9CD, 0x200D, 0x2640, 0xFE0F], - [0x1F9CE], - [0x1F9CE, 0x200D, 0x2642, 0xFE0F], - [0x1F9CE, 0x200D, 0x2640, 0xFE0F], - [0x1F9D1, 0x200D, 0x1F9AF], - [0x1F468, 0x200D, 0x1F9AF], - [0x1F469, 0x200D, 0x1F9AF], - [0x1F9D1, 0x200D, 0x1F9BC], - [0x1F468, 0x200D, 0x1F9BC], - [0x1F469, 0x200D, 0x1F9BC], - [0x1F9D1, 0x200D, 0x1F9BD], - [0x1F468, 0x200D, 0x1F9BD], - [0x1F469, 0x200D, 0x1F9BD], - [0x1F3C3], - [0x1F3C3, 0x200D, 0x2642, 0xFE0F], - [0x1F3C3, 0x200D, 0x2640, 0xFE0F], - [0x1F483], - [0x1F57A], - [0x1F574, 0xFE0F], - [0x1F46F], - [0x1F46F, 0x200D, 0x2642, 0xFE0F], - [0x1F46F, 0x200D, 0x2640, 0xFE0F], - [0x1F9D6], - [0x1F9D6, 0x200D, 0x2642, 0xFE0F], - [0x1F9D6, 0x200D, 0x2640, 0xFE0F], - [0x1F9D7], - [0x1F9D7, 0x200D, 0x2642, 0xFE0F], - [0x1F9D7, 0x200D, 0x2640, 0xFE0F], - [0x1F93A], - [0x1F3C7], - [0x26F7, 0xFE0F], - [0x1F3C2], - [0x1F3CC, 0xFE0F], - [0x1F3CC, 0xFE0F, 0x200D, 0x2642, 0xFE0F], - [0x1F3CC, 0xFE0F, 0x200D, 0x2640, 0xFE0F], - [0x1F3C4], - [0x1F3C4, 0x200D, 0x2642, 0xFE0F], - [0x1F3C4, 0x200D, 0x2640, 0xFE0F], - [0x1F6A3], - [0x1F6A3, 0x200D, 0x2642, 0xFE0F], - [0x1F6A3, 0x200D, 0x2640, 0xFE0F], - [0x1F3CA], - [0x1F3CA, 0x200D, 0x2642, 0xFE0F], - [0x1F3CA, 0x200D, 0x2640, 0xFE0F], - [0x26F9, 0xFE0F], - [0x26F9, 0xFE0F, 0x200D, 0x2642, 0xFE0F], - [0x26F9, 0xFE0F, 0x200D, 0x2640, 0xFE0F], - [0x1F3CB, 0xFE0F], - [0x1F3CB, 0xFE0F, 0x200D, 0x2642, 0xFE0F], - [0x1F3CB, 0xFE0F, 0x200D, 0x2640, 0xFE0F], - [0x1F6B4], - [0x1F6B4, 0x200D, 0x2642, 0xFE0F], - [0x1F6B4, 0x200D, 0x2640, 0xFE0F], - [0x1F6B5], - [0x1F6B5, 0x200D, 0x2642, 0xFE0F], - [0x1F6B5, 0x200D, 0x2640, 0xFE0F], - [0x1F938], - [0x1F938, 0x200D, 0x2642, 0xFE0F], - [0x1F938, 0x200D, 0x2640, 0xFE0F], - [0x1F93C], - [0x1F93C, 0x200D, 0x2642, 0xFE0F], - [0x1F93C, 0x200D, 0x2640, 0xFE0F], - [0x1F93D], - [0x1F93D, 0x200D, 0x2642, 0xFE0F], - [0x1F93D, 0x200D, 0x2640, 0xFE0F], - [0x1F93E], - [0x1F93E, 0x200D, 0x2642, 0xFE0F], - [0x1F93E, 0x200D, 0x2640, 0xFE0F], - [0x1F939], - [0x1F939, 0x200D, 0x2642, 0xFE0F], - [0x1F939, 0x200D, 0x2640, 0xFE0F], - [0x1F9D8], - [0x1F9D8, 0x200D, 0x2642, 0xFE0F], - [0x1F9D8, 0x200D, 0x2640, 0xFE0F], - [0x1F6C0], - [0x1F6CC], - [0x1F9D1, 0x200D, 0x1F91D, 0x200D, 0x1F9D1], - [0x1F46D], - [0x1F46B], - [0x1F46C], - [0x1F48F], - [0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468], - [0x1F468, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468], - [0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469], - [0x1F491], - [0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468], - [0x1F468, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468], - [0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469], - [0x1F46A], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F467], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F469, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F467], - [0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F5E3, 0xFE0F], - [0x1F464], - [0x1F465], - [0x1FAC2], - [0x1F463] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .nature), - emojis: [ - [0x1F435], - [0x1F412], - [0x1F98D], - [0x1F9A7], - [0x1F436], - [0x1F415], - [0x1F9AE], - [0x1F415, 0x200D, 0x1F9BA], - [0x1F429], - [0x1F43A], - [0x1F98A], - [0x1F99D], - [0x1F431], - [0x1F408], - [0x1F408, 0x200D, 0x2B1B], - [0x1F981], - [0x1F42F], - [0x1F405], - [0x1F406], - [0x1F434], - [0x1F40E], - [0x1F984], - [0x1F993], - [0x1F98C], - [0x1F9AC], - [0x1F42E], - [0x1F402], - [0x1F403], - [0x1F404], - [0x1F437], - [0x1F416], - [0x1F417], - [0x1F43D], - [0x1F40F], - [0x1F411], - [0x1F410], - [0x1F42A], - [0x1F42B], - [0x1F999], - [0x1F992], - [0x1F418], - [0x1F9A3], - [0x1F98F], - [0x1F99B], - [0x1F42D], - [0x1F401], - [0x1F400], - [0x1F439], - [0x1F430], - [0x1F407], - [0x1F43F, 0xFE0F], - [0x1F9AB], - [0x1F994], - [0x1F987], - [0x1F43B], - [0x1F43B, 0x200D, 0x2744, 0xFE0F], - [0x1F428], - [0x1F43C], - [0x1F9A5], - [0x1F9A6], - [0x1F9A8], - [0x1F998], - [0x1F9A1], - [0x1F43E], - [0x1F983], - [0x1F414], - [0x1F413], - [0x1F423], - [0x1F424], - [0x1F425], - [0x1F426], - [0x1F427], - [0x1F54A, 0xFE0F], - [0x1F985], - [0x1F986], - [0x1F9A2], - [0x1F989], - [0x1F9A4], - [0x1FAB6], - [0x1F9A9], - [0x1F99A], - [0x1F99C], - [0x1F438], - [0x1F40A], - [0x1F422], - [0x1F98E], - [0x1F40D], - [0x1F432], - [0x1F409], - [0x1F995], - [0x1F996], - [0x1F433], - [0x1F40B], - [0x1F42C], - [0x1F9AD], - [0x1F41F], - [0x1F420], - [0x1F421], - [0x1F988], - [0x1F419], - [0x1F41A], - [0x1FAB8], - [0x1F40C], - [0x1F98B], - [0x1F41B], - [0x1F41C], - [0x1F41D], - [0x1FAB2], - [0x1F41E], - [0x1F997], - [0x1FAB3], - [0x1F577, 0xFE0F], - [0x1F578, 0xFE0F], - [0x1F982], - [0x1F99F], - [0x1FAB0], - [0x1FAB1], - [0x1F9A0], - [0x1F490], - [0x1F338], - [0x1F4AE], - [0x1FAB7], - [0x1F3F5, 0xFE0F], - [0x1F339], - [0x1F940], - [0x1F33A], - [0x1F33B], - [0x1F33C], - [0x1F337], - [0x1F331], - [0x1FAB4], - [0x1F332], - [0x1F333], - [0x1F334], - [0x1F335], - [0x1F33E], - [0x1F33F], - [0x2618, 0xFE0F], - [0x1F340], - [0x1F341], - [0x1F342], - [0x1F343], - [0x1FAB9], - [0x1FABA] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .foodAndDrink), - emojis: [ - [0x1F347], - [0x1F348], - [0x1F349], - [0x1F34A], - [0x1F34B], - [0x1F34C], - [0x1F34D], - [0x1F96D], - [0x1F34E], - [0x1F34F], - [0x1F350], - [0x1F351], - [0x1F352], - [0x1F353], - [0x1FAD0], - [0x1F95D], - [0x1F345], - [0x1FAD2], - [0x1F965], - [0x1F951], - [0x1F346], - [0x1F954], - [0x1F955], - [0x1F33D], - [0x1F336, 0xFE0F], - [0x1FAD1], - [0x1F952], - [0x1F96C], - [0x1F966], - [0x1F9C4], - [0x1F9C5], - [0x1F344], - [0x1F95C], - [0x1FAD8], - [0x1F330], - [0x1F35E], - [0x1F950], - [0x1F956], - [0x1FAD3], - [0x1F968], - [0x1F96F], - [0x1F95E], - [0x1F9C7], - [0x1F9C0], - [0x1F356], - [0x1F357], - [0x1F969], - [0x1F953], - [0x1F354], - [0x1F35F], - [0x1F355], - [0x1F32D], - [0x1F96A], - [0x1F32E], - [0x1F32F], - [0x1FAD4], - [0x1F959], - [0x1F9C6], - [0x1F95A], - [0x1F373], - [0x1F958], - [0x1F372], - [0x1FAD5], - [0x1F963], - [0x1F957], - [0x1F37F], - [0x1F9C8], - [0x1F9C2], - [0x1F96B], - [0x1F371], - [0x1F358], - [0x1F359], - [0x1F35A], - [0x1F35B], - [0x1F35C], - [0x1F35D], - [0x1F360], - [0x1F362], - [0x1F363], - [0x1F364], - [0x1F365], - [0x1F96E], - [0x1F361], - [0x1F95F], - [0x1F960], - [0x1F961], - [0x1F980], - [0x1F99E], - [0x1F990], - [0x1F991], - [0x1F9AA], - [0x1F366], - [0x1F367], - [0x1F368], - [0x1F369], - [0x1F36A], - [0x1F382], - [0x1F370], - [0x1F9C1], - [0x1F967], - [0x1F36B], - [0x1F36C], - [0x1F36D], - [0x1F36E], - [0x1F36F], - [0x1F37C], - [0x1F95B], - [0x2615], - [0x1FAD6], - [0x1F375], - [0x1F376], - [0x1F37E], - [0x1F377], - [0x1F378], - [0x1F379], - [0x1F37A], - [0x1F37B], - [0x1F942], - [0x1F943], - [0x1FAD7], - [0x1F964], - [0x1F9CB], - [0x1F9C3], - [0x1F9C9], - [0x1F9CA], - [0x1F962], - [0x1F37D, 0xFE0F], - [0x1F374], - [0x1F944], - [0x1F52A], - [0x1FAD9], - [0x1F3FA] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .activity), - emojis: [ - [0x1F383], - [0x1F384], - [0x1F386], - [0x1F387], - [0x1F9E8], - [0x2728], - [0x1F388], - [0x1F389], - [0x1F38A], - [0x1F38B], - [0x1F38D], - [0x1F38E], - [0x1F38F], - [0x1F390], - [0x1F391], - [0x1F9E7], - [0x1F380], - [0x1F381], - [0x1F397, 0xFE0F], - [0x1F39F, 0xFE0F], - [0x1F3AB], - [0x1F396, 0xFE0F], - [0x1F3C6], - [0x1F3C5], - [0x1F947], - [0x1F948], - [0x1F949], - [0x26BD], - [0x26BE], - [0x1F94E], - [0x1F3C0], - [0x1F3D0], - [0x1F3C8], - [0x1F3C9], - [0x1F3BE], - [0x1F94F], - [0x1F3B3], - [0x1F3CF], - [0x1F3D1], - [0x1F3D2], - [0x1F94D], - [0x1F3D3], - [0x1F3F8], - [0x1F94A], - [0x1F94B], - [0x1F945], - [0x26F3], - [0x26F8, 0xFE0F], - [0x1F3A3], - [0x1F93F], - [0x1F3BD], - [0x1F3BF], - [0x1F6F7], - [0x1F94C], - [0x1F3AF], - [0x1FA80], - [0x1FA81], - [0x1F3B1], - [0x1F52E], - [0x1FA84], - [0x1F9FF], - [0x1FAAC], - [0x1F3AE], - [0x1F579, 0xFE0F], - [0x1F3B0], - [0x1F3B2], - [0x1F9E9], - [0x1F9F8], - [0x1FA85], - [0x1FAA9], - [0x1FA86], - [0x2660, 0xFE0F], - [0x2665, 0xFE0F], - [0x2666, 0xFE0F], - [0x2663, 0xFE0F], - [0x265F, 0xFE0F], - [0x1F0CF], - [0x1F004], - [0x1F3B4], - [0x1F3AD], - [0x1F5BC, 0xFE0F], - [0x1F3A8], - [0x1F9F5], - [0x1FAA1], - [0x1F9F6], - [0x1FAA2] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .travelAndPlaces), - emojis: [ - [0x1F30D], - [0x1F30E], - [0x1F30F], - [0x1F310], - [0x1F5FA, 0xFE0F], - [0x1F5FE], - [0x1F9ED], - [0x1F3D4, 0xFE0F], - [0x26F0, 0xFE0F], - [0x1F30B], - [0x1F5FB], - [0x1F3D5, 0xFE0F], - [0x1F3D6, 0xFE0F], - [0x1F3DC, 0xFE0F], - [0x1F3DD, 0xFE0F], - [0x1F3DE, 0xFE0F], - [0x1F3DF, 0xFE0F], - [0x1F3DB, 0xFE0F], - [0x1F3D7, 0xFE0F], - [0x1F9F1], - [0x1FAA8], - [0x1FAB5], - [0x1F6D6], - [0x1F3D8, 0xFE0F], - [0x1F3DA, 0xFE0F], - [0x1F3E0], - [0x1F3E1], - [0x1F3E2], - [0x1F3E3], - [0x1F3E4], - [0x1F3E5], - [0x1F3E6], - [0x1F3E8], - [0x1F3E9], - [0x1F3EA], - [0x1F3EB], - [0x1F3EC], - [0x1F3ED], - [0x1F3EF], - [0x1F3F0], - [0x1F492], - [0x1F5FC], - [0x1F5FD], - [0x26EA], - [0x1F54C], - [0x1F6D5], - [0x1F54D], - [0x26E9, 0xFE0F], - [0x1F54B], - [0x26F2], - [0x26FA], - [0x1F301], - [0x1F303], - [0x1F3D9, 0xFE0F], - [0x1F304], - [0x1F305], - [0x1F306], - [0x1F307], - [0x1F309], - [0x2668, 0xFE0F], - [0x1F3A0], - [0x1F6DD], - [0x1F3A1], - [0x1F3A2], - [0x1F488], - [0x1F3AA], - [0x1F682], - [0x1F683], - [0x1F684], - [0x1F685], - [0x1F686], - [0x1F687], - [0x1F688], - [0x1F689], - [0x1F68A], - [0x1F69D], - [0x1F69E], - [0x1F68B], - [0x1F68C], - [0x1F68D], - [0x1F68E], - [0x1F690], - [0x1F691], - [0x1F692], - [0x1F693], - [0x1F694], - [0x1F695], - [0x1F696], - [0x1F697], - [0x1F698], - [0x1F699], - [0x1F6FB], - [0x1F69A], - [0x1F69B], - [0x1F69C], - [0x1F3CE, 0xFE0F], - [0x1F3CD, 0xFE0F], - [0x1F6F5], - [0x1F9BD], - [0x1F9BC], - [0x1F6FA], - [0x1F6B2], - [0x1F6F4], - [0x1F6F9], - [0x1F6FC], - [0x1F68F], - [0x1F6E3, 0xFE0F], - [0x1F6E4, 0xFE0F], - [0x1F6E2, 0xFE0F], - [0x26FD], - [0x1F6DE], - [0x1F6A8], - [0x1F6A5], - [0x1F6A6], - [0x1F6D1], - [0x1F6A7], - [0x2693], - [0x1F6DF], - [0x26F5], - [0x1F6F6], - [0x1F6A4], - [0x1F6F3, 0xFE0F], - [0x26F4, 0xFE0F], - [0x1F6E5, 0xFE0F], - [0x1F6A2], - [0x2708, 0xFE0F], - [0x1F6E9, 0xFE0F], - [0x1F6EB], - [0x1F6EC], - [0x1FA82], - [0x1F4BA], - [0x1F681], - [0x1F69F], - [0x1F6A0], - [0x1F6A1], - [0x1F6F0, 0xFE0F], - [0x1F680], - [0x1F6F8], - [0x1F6CE, 0xFE0F], - [0x1F9F3], - [0x231B], - [0x23F3], - [0x231A], - [0x23F0], - [0x23F1, 0xFE0F], - [0x23F2, 0xFE0F], - [0x1F570, 0xFE0F], - [0x1F55B], - [0x1F567], - [0x1F550], - [0x1F55C], - [0x1F551], - [0x1F55D], - [0x1F552], - [0x1F55E], - [0x1F553], - [0x1F55F], - [0x1F554], - [0x1F560], - [0x1F555], - [0x1F561], - [0x1F556], - [0x1F562], - [0x1F557], - [0x1F563], - [0x1F558], - [0x1F564], - [0x1F559], - [0x1F565], - [0x1F55A], - [0x1F566], - [0x1F311], - [0x1F312], - [0x1F313], - [0x1F314], - [0x1F315], - [0x1F316], - [0x1F317], - [0x1F318], - [0x1F319], - [0x1F31A], - [0x1F31B], - [0x1F31C], - [0x1F321, 0xFE0F], - [0x2600, 0xFE0F], - [0x1F31D], - [0x1F31E], - [0x1FA90], - [0x2B50], - [0x1F31F], - [0x1F320], - [0x1F30C], - [0x2601, 0xFE0F], - [0x26C5], - [0x26C8, 0xFE0F], - [0x1F324, 0xFE0F], - [0x1F325, 0xFE0F], - [0x1F326, 0xFE0F], - [0x1F327, 0xFE0F], - [0x1F328, 0xFE0F], - [0x1F329, 0xFE0F], - [0x1F32A, 0xFE0F], - [0x1F32B, 0xFE0F], - [0x1F32C, 0xFE0F], - [0x1F300], - [0x1F308], - [0x1F302], - [0x2602, 0xFE0F], - [0x2614], - [0x26F1, 0xFE0F], - [0x26A1], - [0x2744, 0xFE0F], - [0x2603, 0xFE0F], - [0x26C4], - [0x2604, 0xFE0F], - [0x1F525], - [0x1F4A7], - [0x1F30A] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .objects), - emojis: [ - [0x1F453], - [0x1F576, 0xFE0F], - [0x1F97D], - [0x1F97C], - [0x1F9BA], - [0x1F454], - [0x1F455], - [0x1F456], - [0x1F9E3], - [0x1F9E4], - [0x1F9E5], - [0x1F9E6], - [0x1F457], - [0x1F458], - [0x1F97B], - [0x1FA71], - [0x1FA72], - [0x1FA73], - [0x1F459], - [0x1F45A], - [0x1F45B], - [0x1F45C], - [0x1F45D], - [0x1F6CD, 0xFE0F], - [0x1F392], - [0x1FA74], - [0x1F45E], - [0x1F45F], - [0x1F97E], - [0x1F97F], - [0x1F460], - [0x1F461], - [0x1FA70], - [0x1F462], - [0x1F451], - [0x1F452], - [0x1F3A9], - [0x1F393], - [0x1F9E2], - [0x1FA96], - [0x26D1, 0xFE0F], - [0x1F4FF], - [0x1F484], - [0x1F48D], - [0x1F48E], - [0x1F507], - [0x1F508], - [0x1F509], - [0x1F50A], - [0x1F4E2], - [0x1F4E3], - [0x1F4EF], - [0x1F514], - [0x1F515], - [0x1F3BC], - [0x1F3B5], - [0x1F3B6], - [0x1F399, 0xFE0F], - [0x1F39A, 0xFE0F], - [0x1F39B, 0xFE0F], - [0x1F3A4], - [0x1F3A7], - [0x1F4FB], - [0x1F3B7], - [0x1FA97], - [0x1F3B8], - [0x1F3B9], - [0x1F3BA], - [0x1F3BB], - [0x1FA95], - [0x1F941], - [0x1FA98], - [0x1F4F1], - [0x1F4F2], - [0x260E, 0xFE0F], - [0x1F4DE], - [0x1F4DF], - [0x1F4E0], - [0x1F50B], - [0x1FAAB], - [0x1F50C], - [0x1F4BB], - [0x1F5A5, 0xFE0F], - [0x1F5A8, 0xFE0F], - [0x2328, 0xFE0F], - [0x1F5B1, 0xFE0F], - [0x1F5B2, 0xFE0F], - [0x1F4BD], - [0x1F4BE], - [0x1F4BF], - [0x1F4C0], - [0x1F9EE], - [0x1F3A5], - [0x1F39E, 0xFE0F], - [0x1F4FD, 0xFE0F], - [0x1F3AC], - [0x1F4FA], - [0x1F4F7], - [0x1F4F8], - [0x1F4F9], - [0x1F4FC], - [0x1F50D], - [0x1F50E], - [0x1F56F, 0xFE0F], - [0x1F4A1], - [0x1F526], - [0x1F3EE], - [0x1FA94], - [0x1F4D4], - [0x1F4D5], - [0x1F4D6], - [0x1F4D7], - [0x1F4D8], - [0x1F4D9], - [0x1F4DA], - [0x1F4D3], - [0x1F4D2], - [0x1F4C3], - [0x1F4DC], - [0x1F4C4], - [0x1F4F0], - [0x1F5DE, 0xFE0F], - [0x1F4D1], - [0x1F516], - [0x1F3F7, 0xFE0F], - [0x1F4B0], - [0x1FA99], - [0x1F4B4], - [0x1F4B5], - [0x1F4B6], - [0x1F4B7], - [0x1F4B8], - [0x1F4B3], - [0x1F9FE], - [0x1F4B9], - [0x2709, 0xFE0F], - [0x1F4E7], - [0x1F4E8], - [0x1F4E9], - [0x1F4E4], - [0x1F4E5], - [0x1F4E6], - [0x1F4EB], - [0x1F4EA], - [0x1F4EC], - [0x1F4ED], - [0x1F4EE], - [0x1F5F3, 0xFE0F], - [0x270F, 0xFE0F], - [0x2712, 0xFE0F], - [0x1F58B, 0xFE0F], - [0x1F58A, 0xFE0F], - [0x1F58C, 0xFE0F], - [0x1F58D, 0xFE0F], - [0x1F4DD], - [0x1F4BC], - [0x1F4C1], - [0x1F4C2], - [0x1F5C2, 0xFE0F], - [0x1F4C5], - [0x1F4C6], - [0x1F5D2, 0xFE0F], - [0x1F5D3, 0xFE0F], - [0x1F4C7], - [0x1F4C8], - [0x1F4C9], - [0x1F4CA], - [0x1F4CB], - [0x1F4CC], - [0x1F4CD], - [0x1F4CE], - [0x1F587, 0xFE0F], - [0x1F4CF], - [0x1F4D0], - [0x2702, 0xFE0F], - [0x1F5C3, 0xFE0F], - [0x1F5C4, 0xFE0F], - [0x1F5D1, 0xFE0F], - [0x1F512], - [0x1F513], - [0x1F50F], - [0x1F510], - [0x1F511], - [0x1F5DD, 0xFE0F], - [0x1F528], - [0x1FA93], - [0x26CF, 0xFE0F], - [0x2692, 0xFE0F], - [0x1F6E0, 0xFE0F], - [0x1F5E1, 0xFE0F], - [0x2694, 0xFE0F], - [0x1F52B], - [0x1FA83], - [0x1F3F9], - [0x1F6E1, 0xFE0F], - [0x1FA9A], - [0x1F527], - [0x1FA9B], - [0x1F529], - [0x2699, 0xFE0F], - [0x1F5DC, 0xFE0F], - [0x2696, 0xFE0F], - [0x1F9AF], - [0x1F517], - [0x26D3, 0xFE0F], - [0x1FA9D], - [0x1F9F0], - [0x1F9F2], - [0x1FA9C], - [0x2697, 0xFE0F], - [0x1F9EA], - [0x1F9EB], - [0x1F9EC], - [0x1F52C], - [0x1F52D], - [0x1F4E1], - [0x1F489], - [0x1FA78], - [0x1F48A], - [0x1FA79], - [0x1FA7C], - [0x1FA7A], - [0x1FA7B], - [0x1F6AA], - [0x1F6D7], - [0x1FA9E], - [0x1FA9F], - [0x1F6CF, 0xFE0F], - [0x1F6CB, 0xFE0F], - [0x1FA91], - [0x1F6BD], - [0x1FAA0], - [0x1F6BF], - [0x1F6C1], - [0x1FAA4], - [0x1FA92], - [0x1F9F4], - [0x1F9F7], - [0x1F9F9], - [0x1F9FA], - [0x1F9FB], - [0x1FAA3], - [0x1F9FC], - [0x1FAE7], - [0x1FAA5], - [0x1F9FD], - [0x1F9EF], - [0x1F6D2], - [0x1F6AC], - [0x26B0, 0xFE0F], - [0x1FAA6], - [0x26B1, 0xFE0F], - [0x1F5FF], - [0x1FAA7], - [0x1FAAA] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .symbols), - emojis: [ - [0x1F3E7], - [0x1F6AE], - [0x1F6B0], - [0x267F], - [0x1F6B9], - [0x1F6BA], - [0x1F6BB], - [0x1F6BC], - [0x1F6BE], - [0x1F6C2], - [0x1F6C3], - [0x1F6C4], - [0x1F6C5], - [0x26A0, 0xFE0F], - [0x1F6B8], - [0x26D4], - [0x1F6AB], - [0x1F6B3], - [0x1F6AD], - [0x1F6AF], - [0x1F6B1], - [0x1F6B7], - [0x1F4F5], - [0x1F51E], - [0x2622, 0xFE0F], - [0x2623, 0xFE0F], - [0x2B06, 0xFE0F], - [0x2197, 0xFE0F], - [0x27A1, 0xFE0F], - [0x2198, 0xFE0F], - [0x2B07, 0xFE0F], - [0x2199, 0xFE0F], - [0x2B05, 0xFE0F], - [0x2196, 0xFE0F], - [0x2195, 0xFE0F], - [0x2194, 0xFE0F], - [0x21A9, 0xFE0F], - [0x21AA, 0xFE0F], - [0x2934, 0xFE0F], - [0x2935, 0xFE0F], - [0x1F503], - [0x1F504], - [0x1F519], - [0x1F51A], - [0x1F51B], - [0x1F51C], - [0x1F51D], - [0x1F6D0], - [0x269B, 0xFE0F], - [0x1F549, 0xFE0F], - [0x2721, 0xFE0F], - [0x2638, 0xFE0F], - [0x262F, 0xFE0F], - [0x271D, 0xFE0F], - [0x2626, 0xFE0F], - [0x262A, 0xFE0F], - [0x262E, 0xFE0F], - [0x1F54E], - [0x1F52F], - [0x2648], - [0x2649], - [0x264A], - [0x264B], - [0x264C], - [0x264D], - [0x264E], - [0x264F], - [0x2650], - [0x2651], - [0x2652], - [0x2653], - [0x26CE], - [0x1F500], - [0x1F501], - [0x1F502], - [0x25B6, 0xFE0F], - [0x23E9], - [0x23ED, 0xFE0F], - [0x23EF, 0xFE0F], - [0x25C0, 0xFE0F], - [0x23EA], - [0x23EE, 0xFE0F], - [0x1F53C], - [0x23EB], - [0x1F53D], - [0x23EC], - [0x23F8, 0xFE0F], - [0x23F9, 0xFE0F], - [0x23FA, 0xFE0F], - [0x23CF, 0xFE0F], - [0x1F3A6], - [0x1F505], - [0x1F506], - [0x1F4F6], - [0x1F4F3], - [0x1F4F4], - [0x2640, 0xFE0F], - [0x2642, 0xFE0F], - [0x26A7, 0xFE0F], - [0x2716, 0xFE0F], - [0x2795], - [0x2796], - [0x2797], - [0x1F7F0], - [0x267E, 0xFE0F], - [0x203C, 0xFE0F], - [0x2049, 0xFE0F], - [0x2753], - [0x2754], - [0x2755], - [0x2757], - [0x3030, 0xFE0F], - [0x1F4B1], - [0x1F4B2], - [0x2695, 0xFE0F], - [0x267B, 0xFE0F], - [0x269C, 0xFE0F], - [0x1F531], - [0x1F4DB], - [0x1F530], - [0x2B55], - [0x2705], - [0x2611, 0xFE0F], - [0x2714, 0xFE0F], - [0x274C], - [0x274E], - [0x27B0], - [0x27BF], - [0x303D, 0xFE0F], - [0x2733, 0xFE0F], - [0x2734, 0xFE0F], - [0x2747, 0xFE0F], - [0x00A9, 0xFE0F], - [0x00AE, 0xFE0F], - [0x2122, 0xFE0F], - [0x0023, 0xFE0F, 0x20E3], - [0x002A, 0xFE0F, 0x20E3], - [0x0030, 0xFE0F, 0x20E3], - [0x0031, 0xFE0F, 0x20E3], - [0x0032, 0xFE0F, 0x20E3], - [0x0033, 0xFE0F, 0x20E3], - [0x0034, 0xFE0F, 0x20E3], - [0x0035, 0xFE0F, 0x20E3], - [0x0036, 0xFE0F, 0x20E3], - [0x0037, 0xFE0F, 0x20E3], - [0x0038, 0xFE0F, 0x20E3], - [0x0039, 0xFE0F, 0x20E3], - [0x1F51F], - [0x1F520], - [0x1F521], - [0x1F522], - [0x1F523], - [0x1F524], - [0x1F170, 0xFE0F], - [0x1F18E], - [0x1F171, 0xFE0F], - [0x1F191], - [0x1F192], - [0x1F193], - [0x2139, 0xFE0F], - [0x1F194], - [0x24C2, 0xFE0F], - [0x1F195], - [0x1F196], - [0x1F17E, 0xFE0F], - [0x1F197], - [0x1F17F, 0xFE0F], - [0x1F198], - [0x1F199], - [0x1F19A], - [0x1F201], - [0x1F202, 0xFE0F], - [0x1F237, 0xFE0F], - [0x1F236], - [0x1F22F], - [0x1F250], - [0x1F239], - [0x1F21A], - [0x1F232], - [0x1F251], - [0x1F238], - [0x1F234], - [0x1F233], - [0x3297, 0xFE0F], - [0x3299, 0xFE0F], - [0x1F23A], - [0x1F235], - [0x1F534], - [0x1F7E0], - [0x1F7E1], - [0x1F7E2], - [0x1F535], - [0x1F7E3], - [0x1F7E4], - [0x26AB], - [0x26AA], - [0x1F7E5], - [0x1F7E7], - [0x1F7E8], - [0x1F7E9], - [0x1F7E6], - [0x1F7EA], - [0x1F7EB], - [0x2B1B], - [0x2B1C], - [0x25FC, 0xFE0F], - [0x25FB, 0xFE0F], - [0x25FE], - [0x25FD], - [0x25AA, 0xFE0F], - [0x25AB, 0xFE0F], - [0x1F536], - [0x1F537], - [0x1F538], - [0x1F539], - [0x1F53A], - [0x1F53B], - [0x1F4A0], - [0x1F518], - [0x1F533], - [0x1F532] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .flags), - emojis: [ - [0x1F3C1], - [0x1F6A9], - [0x1F38C], - [0x1F3F4], - [0x1F3F3, 0xFE0F], - [0x1F3F3, 0xFE0F, 0x200D, 0x1F308], - [0x1F3F3, 0xFE0F, 0x200D, 0x26A7, 0xFE0F], - [0x1F3F4, 0x200D, 0x2620, 0xFE0F], - [0x1F1E6, 0x1F1E8], - [0x1F1E6, 0x1F1E9], - [0x1F1E6, 0x1F1EA], - [0x1F1E6, 0x1F1EB], - [0x1F1E6, 0x1F1EC], - [0x1F1E6, 0x1F1EE], - [0x1F1E6, 0x1F1F1], - [0x1F1E6, 0x1F1F2], - [0x1F1E6, 0x1F1F4], - [0x1F1E6, 0x1F1F6], - [0x1F1E6, 0x1F1F7], - [0x1F1E6, 0x1F1F8], - [0x1F1E6, 0x1F1F9], - [0x1F1E6, 0x1F1FA], - [0x1F1E6, 0x1F1FC], - [0x1F1E6, 0x1F1FD], - [0x1F1E6, 0x1F1FF], - [0x1F1E7, 0x1F1E6], - [0x1F1E7, 0x1F1E7], - [0x1F1E7, 0x1F1E9], - [0x1F1E7, 0x1F1EA], - [0x1F1E7, 0x1F1EB], - [0x1F1E7, 0x1F1EC], - [0x1F1E7, 0x1F1ED], - [0x1F1E7, 0x1F1EE], - [0x1F1E7, 0x1F1EF], - [0x1F1E7, 0x1F1F1], - [0x1F1E7, 0x1F1F2], - [0x1F1E7, 0x1F1F3], - [0x1F1E7, 0x1F1F4], - [0x1F1E7, 0x1F1F6], - [0x1F1E7, 0x1F1F7], - [0x1F1E7, 0x1F1F8], - [0x1F1E7, 0x1F1F9], - [0x1F1E7, 0x1F1FB], - [0x1F1E7, 0x1F1FC], - [0x1F1E7, 0x1F1FE], - [0x1F1E7, 0x1F1FF], - [0x1F1E8, 0x1F1E6], - [0x1F1E8, 0x1F1E8], - [0x1F1E8, 0x1F1E9], - [0x1F1E8, 0x1F1EB], - [0x1F1E8, 0x1F1EC], - [0x1F1E8, 0x1F1ED], - [0x1F1E8, 0x1F1EE], - [0x1F1E8, 0x1F1F0], - [0x1F1E8, 0x1F1F1], - [0x1F1E8, 0x1F1F2], - [0x1F1E8, 0x1F1F3], - [0x1F1E8, 0x1F1F4], - [0x1F1E8, 0x1F1F5], - [0x1F1E8, 0x1F1F7], - [0x1F1E8, 0x1F1FA], - [0x1F1E8, 0x1F1FB], - [0x1F1E8, 0x1F1FC], - [0x1F1E8, 0x1F1FD], - [0x1F1E8, 0x1F1FE], - [0x1F1E8, 0x1F1FF], - [0x1F1E9, 0x1F1EA], - [0x1F1E9, 0x1F1EC], - [0x1F1E9, 0x1F1EF], - [0x1F1E9, 0x1F1F0], - [0x1F1E9, 0x1F1F2], - [0x1F1E9, 0x1F1F4], - [0x1F1E9, 0x1F1FF], - [0x1F1EA, 0x1F1E6], - [0x1F1EA, 0x1F1E8], - [0x1F1EA, 0x1F1EA], - [0x1F1EA, 0x1F1EC], - [0x1F1EA, 0x1F1ED], - [0x1F1EA, 0x1F1F7], - [0x1F1EA, 0x1F1F8], - [0x1F1EA, 0x1F1F9], - [0x1F1EA, 0x1F1FA], - [0x1F1EB, 0x1F1EE], - [0x1F1EB, 0x1F1EF], - [0x1F1EB, 0x1F1F0], - [0x1F1EB, 0x1F1F2], - [0x1F1EB, 0x1F1F4], - [0x1F1EB, 0x1F1F7], - [0x1F1EC, 0x1F1E6], - [0x1F1EC, 0x1F1E7], - [0x1F1EC, 0x1F1E9], - [0x1F1EC, 0x1F1EA], - [0x1F1EC, 0x1F1EB], - [0x1F1EC, 0x1F1EC], - [0x1F1EC, 0x1F1ED], - [0x1F1EC, 0x1F1EE], - [0x1F1EC, 0x1F1F1], - [0x1F1EC, 0x1F1F2], - [0x1F1EC, 0x1F1F3], - [0x1F1EC, 0x1F1F5], - [0x1F1EC, 0x1F1F6], - [0x1F1EC, 0x1F1F7], - [0x1F1EC, 0x1F1F8], - [0x1F1EC, 0x1F1F9], - [0x1F1EC, 0x1F1FA], - [0x1F1EC, 0x1F1FC], - [0x1F1EC, 0x1F1FE], - [0x1F1ED, 0x1F1F0], - [0x1F1ED, 0x1F1F2], - [0x1F1ED, 0x1F1F3], - [0x1F1ED, 0x1F1F7], - [0x1F1ED, 0x1F1F9], - [0x1F1ED, 0x1F1FA], - [0x1F1EE, 0x1F1E8], - [0x1F1EE, 0x1F1E9], - [0x1F1EE, 0x1F1EA], - [0x1F1EE, 0x1F1F1], - [0x1F1EE, 0x1F1F2], - [0x1F1EE, 0x1F1F3], - [0x1F1EE, 0x1F1F4], - [0x1F1EE, 0x1F1F6], - [0x1F1EE, 0x1F1F7], - [0x1F1EE, 0x1F1F8], - [0x1F1EE, 0x1F1F9], - [0x1F1EF, 0x1F1EA], - [0x1F1EF, 0x1F1F2], - [0x1F1EF, 0x1F1F4], - [0x1F1EF, 0x1F1F5], - [0x1F1F0, 0x1F1EA], - [0x1F1F0, 0x1F1EC], - [0x1F1F0, 0x1F1ED], - [0x1F1F0, 0x1F1EE], - [0x1F1F0, 0x1F1F2], - [0x1F1F0, 0x1F1F3], - [0x1F1F0, 0x1F1F5], - [0x1F1F0, 0x1F1F7], - [0x1F1F0, 0x1F1FC], - [0x1F1F0, 0x1F1FE], - [0x1F1F0, 0x1F1FF], - [0x1F1F1, 0x1F1E6], - [0x1F1F1, 0x1F1E7], - [0x1F1F1, 0x1F1E8], - [0x1F1F1, 0x1F1EE], - [0x1F1F1, 0x1F1F0], - [0x1F1F1, 0x1F1F7], - [0x1F1F1, 0x1F1F8], - [0x1F1F1, 0x1F1F9], - [0x1F1F1, 0x1F1FA], - [0x1F1F1, 0x1F1FB], - [0x1F1F1, 0x1F1FE], - [0x1F1F2, 0x1F1E6], - [0x1F1F2, 0x1F1E8], - [0x1F1F2, 0x1F1E9], - [0x1F1F2, 0x1F1EA], - [0x1F1F2, 0x1F1EB], - [0x1F1F2, 0x1F1EC], - [0x1F1F2, 0x1F1ED], - [0x1F1F2, 0x1F1F0], - [0x1F1F2, 0x1F1F1], - [0x1F1F2, 0x1F1F2], - [0x1F1F2, 0x1F1F3], - [0x1F1F2, 0x1F1F4], - [0x1F1F2, 0x1F1F5], - [0x1F1F2, 0x1F1F6], - [0x1F1F2, 0x1F1F7], - [0x1F1F2, 0x1F1F8], - [0x1F1F2, 0x1F1F9], - [0x1F1F2, 0x1F1FA], - [0x1F1F2, 0x1F1FB], - [0x1F1F2, 0x1F1FC], - [0x1F1F2, 0x1F1FD], - [0x1F1F2, 0x1F1FE], - [0x1F1F2, 0x1F1FF], - [0x1F1F3, 0x1F1E6], - [0x1F1F3, 0x1F1E8], - [0x1F1F3, 0x1F1EA], - [0x1F1F3, 0x1F1EB], - [0x1F1F3, 0x1F1EC], - [0x1F1F3, 0x1F1EE], - [0x1F1F3, 0x1F1F1], - [0x1F1F3, 0x1F1F4], - [0x1F1F3, 0x1F1F5], - [0x1F1F3, 0x1F1F7], - [0x1F1F3, 0x1F1FA], - [0x1F1F3, 0x1F1FF], - [0x1F1F4, 0x1F1F2], - [0x1F1F5, 0x1F1E6], - [0x1F1F5, 0x1F1EA], - [0x1F1F5, 0x1F1EB], - [0x1F1F5, 0x1F1EC], - [0x1F1F5, 0x1F1ED], - [0x1F1F5, 0x1F1F0], - [0x1F1F5, 0x1F1F1], - [0x1F1F5, 0x1F1F2], - [0x1F1F5, 0x1F1F3], - [0x1F1F5, 0x1F1F7], - [0x1F1F5, 0x1F1F8], - [0x1F1F5, 0x1F1F9], - [0x1F1F5, 0x1F1FC], - [0x1F1F5, 0x1F1FE], - [0x1F1F6, 0x1F1E6], - [0x1F1F7, 0x1F1EA], - [0x1F1F7, 0x1F1F4], - [0x1F1F7, 0x1F1F8], - [0x1F1F7, 0x1F1FA], - [0x1F1F7, 0x1F1FC], - [0x1F1F8, 0x1F1E6], - [0x1F1F8, 0x1F1E7], - [0x1F1F8, 0x1F1E8], - [0x1F1F8, 0x1F1E9], - [0x1F1F8, 0x1F1EA], - [0x1F1F8, 0x1F1EC], - [0x1F1F8, 0x1F1ED], - [0x1F1F8, 0x1F1EE], - [0x1F1F8, 0x1F1EF], - [0x1F1F8, 0x1F1F0], - [0x1F1F8, 0x1F1F1], - [0x1F1F8, 0x1F1F2], - [0x1F1F8, 0x1F1F3], - [0x1F1F8, 0x1F1F4], - [0x1F1F8, 0x1F1F7], - [0x1F1F8, 0x1F1F8], - [0x1F1F8, 0x1F1F9], - [0x1F1F8, 0x1F1FB], - [0x1F1F8, 0x1F1FD], - [0x1F1F8, 0x1F1FE], - [0x1F1F8, 0x1F1FF], - [0x1F1F9, 0x1F1E6], - [0x1F1F9, 0x1F1E8], - [0x1F1F9, 0x1F1E9], - [0x1F1F9, 0x1F1EB], - [0x1F1F9, 0x1F1EC], - [0x1F1F9, 0x1F1ED], - [0x1F1F9, 0x1F1EF], - [0x1F1F9, 0x1F1F0], - [0x1F1F9, 0x1F1F1], - [0x1F1F9, 0x1F1F2], - [0x1F1F9, 0x1F1F3], - [0x1F1F9, 0x1F1F4], - [0x1F1F9, 0x1F1F7], - [0x1F1F9, 0x1F1F9], - [0x1F1F9, 0x1F1FB], - [0x1F1F9, 0x1F1FC], - [0x1F1F9, 0x1F1FF], - [0x1F1FA, 0x1F1E6], - [0x1F1FA, 0x1F1EC], - [0x1F1FA, 0x1F1F2], - [0x1F1FA, 0x1F1F3], - [0x1F1FA, 0x1F1F8], - [0x1F1FA, 0x1F1FE], - [0x1F1FA, 0x1F1FF], - [0x1F1FB, 0x1F1E6], - [0x1F1FB, 0x1F1E8], - [0x1F1FB, 0x1F1EA], - [0x1F1FB, 0x1F1EC], - [0x1F1FB, 0x1F1EE], - [0x1F1FB, 0x1F1F3], - [0x1F1FB, 0x1F1FA], - [0x1F1FC, 0x1F1EB], - [0x1F1FC, 0x1F1F8], - [0x1F1FD, 0x1F1F0], - [0x1F1FE, 0x1F1EA], - [0x1F1FE, 0x1F1F9], - [0x1F1FF, 0x1F1E6], - [0x1F1FF, 0x1F1F2], - [0x1F1FF, 0x1F1FC], - [0x1F3F4, 0xE0067, 0xE0062, 0xE0065, 0xE006E, 0xE0067, 0xE007F], - [0x1F3F4, 0xE0067, 0xE0062, 0xE0073, 0xE0063, 0xE0074, 0xE007F], - [0x1F3F4, 0xE0067, 0xE0062, 0xE0077, 0xE006C, 0xE0073, 0xE007F] - ] - ) - ] - } -} diff --git a/Sources/EmojiPicker/Services/Unicode/Unicode 5.swift b/Sources/EmojiPicker/Services/Unicode/Unicode 5.swift deleted file mode 100644 index c37f25e..0000000 --- a/Sources/EmojiPicker/Services/Unicode/Unicode 5.swift +++ /dev/null @@ -1,1630 +0,0 @@ -// The MIT License (MIT) -// Copyright © 2022 Ivan Izyumkin -// -// 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. - -extension UnicodeManager { - var unicode5: [EmojiCategory] { - return [ - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .people), - emojis: [ - [0x1F600], - [0x1F601], - [0x1F602], - [0x1F923], - [0x1F603], - [0x1F604], - [0x1F605], - [0x1F606], - [0x1F609], - [0x1F60A], - [0x1F60B], - [0x1F60E], - [0x1F60D], - [0x1F618], - [0x1F617], - [0x1F619], - [0x1F61A], - [0x263A, 0xFE0F], - [0x1F642], - [0x1F917], - [0x1F929], - [0x1F914], - [0x1F928], - [0x1F610], - [0x1F611], - [0x1F636], - [0x1F644], - [0x1F60F], - [0x1F623], - [0x1F625], - [0x1F62E], - [0x1F910], - [0x1F62F], - [0x1F62A], - [0x1F62B], - [0x1F634], - [0x1F60C], - [0x1F61B], - [0x1F61C], - [0x1F61D], - [0x1F924], - [0x1F612], - [0x1F613], - [0x1F614], - [0x1F615], - [0x1F643], - [0x1F911], - [0x1F632], - [0x2639, 0xFE0F], - [0x1F641], - [0x1F616], - [0x1F61E], - [0x1F61F], - [0x1F624], - [0x1F622], - [0x1F62D], - [0x1F626], - [0x1F627], - [0x1F628], - [0x1F629], - [0x1F92F], - [0x1F62C], - [0x1F630], - [0x1F631], - [0x1F633], - [0x1F92A], - [0x1F635], - [0x1F621], - [0x1F620], - [0x1F92C], - [0x1F637], - [0x1F912], - [0x1F915], - [0x1F922], - [0x1F92E], - [0x1F927], - [0x1F607], - [0x1F920], - [0x1F921], - [0x1F925], - [0x1F92B], - [0x1F92D], - [0x1F9D0], - [0x1F913], - [0x1F608], - [0x1F47F], - [0x1F479], - [0x1F47A], - [0x1F480], - [0x2620, 0xFE0F], - [0x1F47B], - [0x1F47D], - [0x1F47E], - [0x1F916], - [0x1F4A9], - [0x1F63A], - [0x1F638], - [0x1F639], - [0x1F63B], - [0x1F63C], - [0x1F63D], - [0x1F640], - [0x1F63F], - [0x1F63E], - [0x1F648], - [0x1F649], - [0x1F64A], - [0x1F476], - [0x1F9D2], - [0x1F466], - [0x1F467], - [0x1F9D1], - [0x1F468], - [0x1F469], - [0x1F9D3], - [0x1F474], - [0x1F475], - [0x1F468, 0x200D, 0x2695, 0xFE0F], - [0x1F469, 0x200D, 0x2695, 0xFE0F], - [0x1F468, 0x200D, 0x1F393], - [0x1F469, 0x200D, 0x1F393], - [0x1F468, 0x200D, 0x1F3EB], - [0x1F469, 0x200D, 0x1F3EB], - [0x1F468, 0x200D, 0x2696, 0xFE0F], - [0x1F469, 0x200D, 0x2696, 0xFE0F], - [0x1F468, 0x200D, 0x1F33E], - [0x1F469, 0x200D, 0x1F33E], - [0x1F468, 0x200D, 0x1F373], - [0x1F469, 0x200D, 0x1F373], - [0x1F468, 0x200D, 0x1F527], - [0x1F469, 0x200D, 0x1F527], - [0x1F468, 0x200D, 0x1F3ED], - [0x1F469, 0x200D, 0x1F3ED], - [0x1F468, 0x200D, 0x1F4BC], - [0x1F469, 0x200D, 0x1F4BC], - [0x1F468, 0x200D, 0x1F52C], - [0x1F469, 0x200D, 0x1F52C], - [0x1F468, 0x200D, 0x1F4BB], - [0x1F469, 0x200D, 0x1F4BB], - [0x1F468, 0x200D, 0x1F3A4], - [0x1F469, 0x200D, 0x1F3A4], - [0x1F468, 0x200D, 0x1F3A8], - [0x1F469, 0x200D, 0x1F3A8], - [0x1F468, 0x200D, 0x2708, 0xFE0F], - [0x1F469, 0x200D, 0x2708, 0xFE0F], - [0x1F468, 0x200D, 0x1F680], - [0x1F469, 0x200D, 0x1F680], - [0x1F468, 0x200D, 0x1F692], - [0x1F469, 0x200D, 0x1F692], - [0x1F46E], - [0x1F46E, 0x200D, 0x2642, 0xFE0F], - [0x1F46E, 0x200D, 0x2640, 0xFE0F], - [0x1F575, 0xFE0F], - [0x1F575, 0xFE0F, 0x200D, 0x2642, 0xFE0F], - [0x1F575, 0xFE0F, 0x200D, 0x2640, 0xFE0F], - [0x1F482], - [0x1F482, 0x200D, 0x2642, 0xFE0F], - [0x1F482, 0x200D, 0x2640, 0xFE0F], - [0x1F477], - [0x1F477, 0x200D, 0x2642, 0xFE0F], - [0x1F477, 0x200D, 0x2640, 0xFE0F], - [0x1F934], - [0x1F478], - [0x1F473], - [0x1F473, 0x200D, 0x2642, 0xFE0F], - [0x1F473, 0x200D, 0x2640, 0xFE0F], - [0x1F472], - [0x1F9D5], - [0x1F9D4], - [0x1F471], - [0x1F471, 0x200D, 0x2642, 0xFE0F], - [0x1F471, 0x200D, 0x2640, 0xFE0F], - [0x1F935], - [0x1F470], - [0x1F930], - [0x1F931], - [0x1F47C], - [0x1F385], - [0x1F936], - [0x1F9D9], - [0x1F9D9, 0x200D, 0x2640, 0xFE0F], - [0x1F9D9, 0x200D, 0x2642, 0xFE0F], - [0x1F9DA], - [0x1F9DA, 0x200D, 0x2640, 0xFE0F], - [0x1F9DA, 0x200D, 0x2642, 0xFE0F], - [0x1F9DB], - [0x1F9DB, 0x200D, 0x2640, 0xFE0F], - [0x1F9DB, 0x200D, 0x2642, 0xFE0F], - [0x1F9DC], - [0x1F9DC, 0x200D, 0x2640, 0xFE0F], - [0x1F9DC, 0x200D, 0x2642, 0xFE0F], - [0x1F9DD], - [0x1F9DD, 0x200D, 0x2640, 0xFE0F], - [0x1F9DD, 0x200D, 0x2642, 0xFE0F], - [0x1F9DE], - [0x1F9DE, 0x200D, 0x2640, 0xFE0F], - [0x1F9DE, 0x200D, 0x2642, 0xFE0F], - [0x1F9DF], - [0x1F9DF, 0x200D, 0x2640, 0xFE0F], - [0x1F9DF, 0x200D, 0x2642, 0xFE0F], - [0x1F64D], - [0x1F64D, 0x200D, 0x2642, 0xFE0F], - [0x1F64D, 0x200D, 0x2640, 0xFE0F], - [0x1F64E], - [0x1F64E, 0x200D, 0x2642, 0xFE0F], - [0x1F64E, 0x200D, 0x2640, 0xFE0F], - [0x1F645], - [0x1F645, 0x200D, 0x2642, 0xFE0F], - [0x1F645, 0x200D, 0x2640, 0xFE0F], - [0x1F646], - [0x1F646, 0x200D, 0x2642, 0xFE0F], - [0x1F646, 0x200D, 0x2640, 0xFE0F], - [0x1F481], - [0x1F481, 0x200D, 0x2642, 0xFE0F], - [0x1F481, 0x200D, 0x2640, 0xFE0F], - [0x1F64B], - [0x1F64B, 0x200D, 0x2642, 0xFE0F], - [0x1F64B, 0x200D, 0x2640, 0xFE0F], - [0x1F647], - [0x1F647, 0x200D, 0x2642, 0xFE0F], - [0x1F647, 0x200D, 0x2640, 0xFE0F], - [0x1F926], - [0x1F926, 0x200D, 0x2642, 0xFE0F], - [0x1F926, 0x200D, 0x2640, 0xFE0F], - [0x1F937], - [0x1F937, 0x200D, 0x2642, 0xFE0F], - [0x1F937, 0x200D, 0x2640, 0xFE0F], - [0x1F486], - [0x1F486, 0x200D, 0x2642, 0xFE0F], - [0x1F486, 0x200D, 0x2640, 0xFE0F], - [0x1F487], - [0x1F487, 0x200D, 0x2642, 0xFE0F], - [0x1F487, 0x200D, 0x2640, 0xFE0F], - [0x1F6B6], - [0x1F6B6, 0x200D, 0x2642, 0xFE0F], - [0x1F6B6, 0x200D, 0x2640, 0xFE0F], - [0x1F3C3], - [0x1F3C3, 0x200D, 0x2642, 0xFE0F], - [0x1F3C3, 0x200D, 0x2640, 0xFE0F], - [0x1F483], - [0x1F57A], - [0x1F46F], - [0x1F46F, 0x200D, 0x2642, 0xFE0F], - [0x1F46F, 0x200D, 0x2640, 0xFE0F], - [0x1F9D6], - [0x1F9D6, 0x200D, 0x2640, 0xFE0F], - [0x1F9D6, 0x200D, 0x2642, 0xFE0F], - [0x1F9D7], - [0x1F9D7, 0x200D, 0x2640, 0xFE0F], - [0x1F9D7, 0x200D, 0x2642, 0xFE0F], - [0x1F9D8], - [0x1F9D8, 0x200D, 0x2640, 0xFE0F], - [0x1F9D8, 0x200D, 0x2642, 0xFE0F], - [0x1F6C0], - [0x1F6CC], - [0x1F574, 0xFE0F], - [0x1F5E3, 0xFE0F], - [0x1F464], - [0x1F465], - [0x1F93A], - [0x1F3C7], - [0x26F7, 0xFE0F], - [0x1F3C2], - [0x1F3CC, 0xFE0F], - [0x1F3CC, 0xFE0F, 0x200D, 0x2642, 0xFE0F], - [0x1F3CC, 0xFE0F, 0x200D, 0x2640, 0xFE0F], - [0x1F3C4], - [0x1F3C4, 0x200D, 0x2642, 0xFE0F], - [0x1F3C4, 0x200D, 0x2640, 0xFE0F], - [0x1F6A3], - [0x1F6A3, 0x200D, 0x2642, 0xFE0F], - [0x1F6A3, 0x200D, 0x2640, 0xFE0F], - [0x1F3CA], - [0x1F3CA, 0x200D, 0x2642, 0xFE0F], - [0x1F3CA, 0x200D, 0x2640, 0xFE0F], - [0x26F9, 0xFE0F], - [0x26F9, 0xFE0F, 0x200D, 0x2642, 0xFE0F], - [0x26F9, 0xFE0F, 0x200D, 0x2640, 0xFE0F], - [0x1F3CB, 0xFE0F], - [0x1F3CB, 0xFE0F, 0x200D, 0x2642, 0xFE0F], - [0x1F3CB, 0xFE0F, 0x200D, 0x2640, 0xFE0F], - [0x1F6B4], - [0x1F6B4, 0x200D, 0x2642, 0xFE0F], - [0x1F6B4, 0x200D, 0x2640, 0xFE0F], - [0x1F6B5], - [0x1F6B5, 0x200D, 0x2642, 0xFE0F], - [0x1F6B5, 0x200D, 0x2640, 0xFE0F], - [0x1F3CE, 0xFE0F], - [0x1F3CD, 0xFE0F], - [0x1F938], - [0x1F938, 0x200D, 0x2642, 0xFE0F], - [0x1F938, 0x200D, 0x2640, 0xFE0F], - [0x1F93C], - [0x1F93C, 0x200D, 0x2642, 0xFE0F], - [0x1F93C, 0x200D, 0x2640, 0xFE0F], - [0x1F93D], - [0x1F93D, 0x200D, 0x2642, 0xFE0F], - [0x1F93D, 0x200D, 0x2640, 0xFE0F], - [0x1F93E], - [0x1F93E, 0x200D, 0x2642, 0xFE0F], - [0x1F93E, 0x200D, 0x2640, 0xFE0F], - [0x1F939], - [0x1F939, 0x200D, 0x2642, 0xFE0F], - [0x1F939, 0x200D, 0x2640, 0xFE0F], - [0x1F46B], - [0x1F46C], - [0x1F46D], - [0x1F48F], - [0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468], - [0x1F468, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468], - [0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469], - [0x1F491], - [0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468], - [0x1F468, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468], - [0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469], - [0x1F46A], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F467], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F467], - [0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F469, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F466, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F467], - [0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F466], - [0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F467], - [0x1F933], - [0x1F4AA], - [0x1F448], - [0x1F449], - [0x261D, 0xFE0F], - [0x1F446], - [0x1F595], - [0x1F447], - [0x270C, 0xFE0F], - [0x1F91E], - [0x1F596], - [0x1F918], - [0x1F919], - [0x1F590, 0xFE0F], - [0x270B], - [0x1F44C], - [0x1F44D], - [0x1F44E], - [0x270A], - [0x1F44A], - [0x1F91B], - [0x1F91C], - [0x1F91A], - [0x1F44B], - [0x1F91F], - [0x270D, 0xFE0F], - [0x1F44F], - [0x1F450], - [0x1F64C], - [0x1F932], - [0x1F64F], - [0x1F91D], - [0x1F485], - [0x1F442], - [0x1F443], - [0x1F463], - [0x1F440], - [0x1F441, 0xFE0F], - [0x1F441, 0xFE0F, 0x200D, 0x1F5E8, 0xFE0F], - [0x1F9E0], - [0x1F445], - [0x1F444], - [0x1F48B], - [0x1F498], - [0x2764, 0xFE0F], - [0x1F493], - [0x1F494], - [0x1F495], - [0x1F496], - [0x1F497], - [0x1F499], - [0x1F49A], - [0x1F49B], - [0x1F9E1], - [0x1F49C], - [0x1F5A4], - [0x1F49D], - [0x1F49E], - [0x1F49F], - [0x2763, 0xFE0F], - [0x1F48C], - [0x1F4A4], - [0x1F4A2], - [0x1F4A3], - [0x1F4A5], - [0x1F4A6], - [0x1F4A8], - [0x1F4AB], - [0x1F4AC], - [0x1F5E8, 0xFE0F], - [0x1F5EF, 0xFE0F], - [0x1F4AD], - [0x1F573, 0xFE0F], - [0x1F453], - [0x1F576, 0xFE0F], - [0x1F454], - [0x1F455], - [0x1F456], - [0x1F9E3], - [0x1F9E4], - [0x1F9E5], - [0x1F9E6], - [0x1F457], - [0x1F458], - [0x1F459], - [0x1F45A], - [0x1F45B], - [0x1F45C], - [0x1F45D], - [0x1F6CD, 0xFE0F], - [0x1F392], - [0x1F45E], - [0x1F45F], - [0x1F460], - [0x1F461], - [0x1F462], - [0x1F451], - [0x1F452], - [0x1F3A9], - [0x1F393], - [0x1F9E2], - [0x26D1, 0xFE0F], - [0x1F4FF], - [0x1F484], - [0x1F48D], - [0x1F48E] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .nature), - emojis: [ - [0x1F435], - [0x1F412], - [0x1F98D], - [0x1F436], - [0x1F415], - [0x1F429], - [0x1F43A], - [0x1F98A], - [0x1F431], - [0x1F408], - [0x1F981], - [0x1F42F], - [0x1F405], - [0x1F406], - [0x1F434], - [0x1F40E], - [0x1F984], - [0x1F993], - [0x1F98C], - [0x1F42E], - [0x1F402], - [0x1F403], - [0x1F404], - [0x1F437], - [0x1F416], - [0x1F417], - [0x1F43D], - [0x1F40F], - [0x1F411], - [0x1F410], - [0x1F42A], - [0x1F42B], - [0x1F992], - [0x1F418], - [0x1F98F], - [0x1F42D], - [0x1F401], - [0x1F400], - [0x1F439], - [0x1F430], - [0x1F407], - [0x1F43F, 0xFE0F], - [0x1F994], - [0x1F987], - [0x1F43B], - [0x1F428], - [0x1F43C], - [0x1F43E], - [0x1F983], - [0x1F414], - [0x1F413], - [0x1F423], - [0x1F424], - [0x1F425], - [0x1F426], - [0x1F427], - [0x1F54A, 0xFE0F], - [0x1F985], - [0x1F986], - [0x1F989], - [0x1F438], - [0x1F40A], - [0x1F422], - [0x1F98E], - [0x1F40D], - [0x1F432], - [0x1F409], - [0x1F995], - [0x1F996], - [0x1F433], - [0x1F40B], - [0x1F42C], - [0x1F41F], - [0x1F420], - [0x1F421], - [0x1F988], - [0x1F419], - [0x1F41A], - [0x1F980], - [0x1F990], - [0x1F991], - [0x1F40C], - [0x1F98B], - [0x1F41B], - [0x1F41C], - [0x1F41D], - [0x1F41E], - [0x1F997], - [0x1F577, 0xFE0F], - [0x1F578, 0xFE0F], - [0x1F982], - [0x1F490], - [0x1F338], - [0x1F4AE], - [0x1F3F5, 0xFE0F], - [0x1F339], - [0x1F940], - [0x1F33A], - [0x1F33B], - [0x1F33C], - [0x1F337], - [0x1F331], - [0x1F332], - [0x1F333], - [0x1F334], - [0x1F335], - [0x1F33E], - [0x1F33F], - [0x2618, 0xFE0F], - [0x1F340], - [0x1F341], - [0x1F342], - [0x1F343] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .foodAndDrink), - emojis: [ - [0x1F347], - [0x1F348], - [0x1F349], - [0x1F34A], - [0x1F34B], - [0x1F34C], - [0x1F34D], - [0x1F34E], - [0x1F34F], - [0x1F350], - [0x1F351], - [0x1F352], - [0x1F353], - [0x1F95D], - [0x1F345], - [0x1F965], - [0x1F951], - [0x1F346], - [0x1F954], - [0x1F955], - [0x1F33D], - [0x1F336, 0xFE0F], - [0x1F952], - [0x1F966], - [0x1F344], - [0x1F95C], - [0x1F330], - [0x1F35E], - [0x1F950], - [0x1F956], - [0x1F968], - [0x1F95E], - [0x1F9C0], - [0x1F356], - [0x1F357], - [0x1F969], - [0x1F953], - [0x1F354], - [0x1F35F], - [0x1F355], - [0x1F32D], - [0x1F96A], - [0x1F32E], - [0x1F32F], - [0x1F959], - [0x1F95A], - [0x1F373], - [0x1F958], - [0x1F372], - [0x1F963], - [0x1F957], - [0x1F37F], - [0x1F96B], - [0x1F371], - [0x1F358], - [0x1F359], - [0x1F35A], - [0x1F35B], - [0x1F35C], - [0x1F35D], - [0x1F360], - [0x1F362], - [0x1F363], - [0x1F364], - [0x1F365], - [0x1F361], - [0x1F95F], - [0x1F960], - [0x1F961], - [0x1F366], - [0x1F367], - [0x1F368], - [0x1F369], - [0x1F36A], - [0x1F382], - [0x1F370], - [0x1F967], - [0x1F36B], - [0x1F36C], - [0x1F36D], - [0x1F36E], - [0x1F36F], - [0x1F37C], - [0x1F95B], - [0x2615], - [0x1F375], - [0x1F376], - [0x1F37E], - [0x1F377], - [0x1F378], - [0x1F379], - [0x1F37A], - [0x1F37B], - [0x1F942], - [0x1F943], - [0x1F964], - [0x1F962], - [0x1F37D, 0xFE0F], - [0x1F374], - [0x1F944], - [0x1F52A], - [0x1F3FA] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .activity), - emojis: [ - [0x1F383], - [0x1F384], - [0x1F386], - [0x1F387], - [0x2728], - [0x1F388], - [0x1F389], - [0x1F38A], - [0x1F38B], - [0x1F38D], - [0x1F38E], - [0x1F38F], - [0x1F390], - [0x1F391], - [0x1F380], - [0x1F381], - [0x1F397, 0xFE0F], - [0x1F39F, 0xFE0F], - [0x1F3AB], - [0x1F396, 0xFE0F], - [0x1F3C6], - [0x1F3C5], - [0x1F947], - [0x1F948], - [0x1F949], - [0x26BD], - [0x26BE], - [0x1F3C0], - [0x1F3D0], - [0x1F3C8], - [0x1F3C9], - [0x1F3BE], - [0x1F3B1], - [0x1F3B3], - [0x1F3CF], - [0x1F3D1], - [0x1F3D2], - [0x1F3D3], - [0x1F3F8], - [0x1F94A], - [0x1F94B], - [0x1F945], - [0x1F3AF], - [0x26F3], - [0x26F8, 0xFE0F], - [0x1F3A3], - [0x1F3BD], - [0x1F3BF], - [0x1F6F7], - [0x1F94C], - [0x1F3AE], - [0x1F579, 0xFE0F], - [0x1F3B2], - [0x2660, 0xFE0F], - [0x2665, 0xFE0F], - [0x2666, 0xFE0F], - [0x2663, 0xFE0F], - [0x1F0CF], - [0x1F004], - [0x1F3B4] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .travelAndPlaces), - emojis: [ - [0x1F30D], - [0x1F30E], - [0x1F30F], - [0x1F310], - [0x1F5FA, 0xFE0F], - [0x1F5FE], - [0x1F3D4, 0xFE0F], - [0x26F0, 0xFE0F], - [0x1F30B], - [0x1F5FB], - [0x1F3D5, 0xFE0F], - [0x1F3D6, 0xFE0F], - [0x1F3DC, 0xFE0F], - [0x1F3DD, 0xFE0F], - [0x1F3DE, 0xFE0F], - [0x1F3DF, 0xFE0F], - [0x1F3DB, 0xFE0F], - [0x1F3D7, 0xFE0F], - [0x1F3D8, 0xFE0F], - [0x1F3D9, 0xFE0F], - [0x1F3DA, 0xFE0F], - [0x1F3E0], - [0x1F3E1], - [0x1F3E2], - [0x1F3E3], - [0x1F3E4], - [0x1F3E5], - [0x1F3E6], - [0x1F3E8], - [0x1F3E9], - [0x1F3EA], - [0x1F3EB], - [0x1F3EC], - [0x1F3ED], - [0x1F3EF], - [0x1F3F0], - [0x1F492], - [0x1F5FC], - [0x1F5FD], - [0x26EA], - [0x1F54C], - [0x1F54D], - [0x26E9, 0xFE0F], - [0x1F54B], - [0x26F2], - [0x26FA], - [0x1F301], - [0x1F303], - [0x1F304], - [0x1F305], - [0x1F306], - [0x1F307], - [0x1F309], - [0x2668, 0xFE0F], - [0x1F30C], - [0x1F3A0], - [0x1F3A1], - [0x1F3A2], - [0x1F488], - [0x1F3AA], - [0x1F3AD], - [0x1F5BC, 0xFE0F], - [0x1F3A8], - [0x1F3B0], - [0x1F682], - [0x1F683], - [0x1F684], - [0x1F685], - [0x1F686], - [0x1F687], - [0x1F688], - [0x1F689], - [0x1F68A], - [0x1F69D], - [0x1F69E], - [0x1F68B], - [0x1F68C], - [0x1F68D], - [0x1F68E], - [0x1F690], - [0x1F691], - [0x1F692], - [0x1F693], - [0x1F694], - [0x1F695], - [0x1F696], - [0x1F697], - [0x1F698], - [0x1F699], - [0x1F69A], - [0x1F69B], - [0x1F69C], - [0x1F6B2], - [0x1F6F4], - [0x1F6F5], - [0x1F68F], - [0x1F6E3, 0xFE0F], - [0x1F6E4, 0xFE0F], - [0x26FD], - [0x1F6A8], - [0x1F6A5], - [0x1F6A6], - [0x1F6A7], - [0x1F6D1], - [0x2693], - [0x26F5], - [0x1F6F6], - [0x1F6A4], - [0x1F6F3, 0xFE0F], - [0x26F4, 0xFE0F], - [0x1F6E5, 0xFE0F], - [0x1F6A2], - [0x2708, 0xFE0F], - [0x1F6E9, 0xFE0F], - [0x1F6EB], - [0x1F6EC], - [0x1F4BA], - [0x1F681], - [0x1F69F], - [0x1F6A0], - [0x1F6A1], - [0x1F6F0, 0xFE0F], - [0x1F680], - [0x1F6F8], - [0x1F6CE, 0xFE0F], - [0x1F6AA], - [0x1F6CF, 0xFE0F], - [0x1F6CB, 0xFE0F], - [0x1F6BD], - [0x1F6BF], - [0x1F6C1], - [0x231B], - [0x23F3], - [0x231A], - [0x23F0], - [0x23F1, 0xFE0F], - [0x23F2, 0xFE0F], - [0x1F570, 0xFE0F], - [0x1F55B], - [0x1F567], - [0x1F550], - [0x1F55C], - [0x1F551], - [0x1F55D], - [0x1F552], - [0x1F55E], - [0x1F553], - [0x1F55F], - [0x1F554], - [0x1F560], - [0x1F555], - [0x1F561], - [0x1F556], - [0x1F562], - [0x1F557], - [0x1F563], - [0x1F558], - [0x1F564], - [0x1F559], - [0x1F565], - [0x1F55A], - [0x1F566], - [0x1F311], - [0x1F312], - [0x1F313], - [0x1F314], - [0x1F315], - [0x1F316], - [0x1F317], - [0x1F318], - [0x1F319], - [0x1F31A], - [0x1F31B], - [0x1F31C], - [0x1F321, 0xFE0F], - [0x2600, 0xFE0F], - [0x1F31D], - [0x1F31E], - [0x2B50], - [0x1F31F], - [0x1F320], - [0x2601, 0xFE0F], - [0x26C5], - [0x26C8, 0xFE0F], - [0x1F324, 0xFE0F], - [0x1F325, 0xFE0F], - [0x1F326, 0xFE0F], - [0x1F327, 0xFE0F], - [0x1F328, 0xFE0F], - [0x1F329, 0xFE0F], - [0x1F32A, 0xFE0F], - [0x1F32B, 0xFE0F], - [0x1F32C, 0xFE0F], - [0x1F300], - [0x1F308], - [0x1F302], - [0x2602, 0xFE0F], - [0x2614], - [0x26F1, 0xFE0F], - [0x26A1], - [0x2744, 0xFE0F], - [0x2603, 0xFE0F], - [0x26C4], - [0x2604, 0xFE0F], - [0x1F525], - [0x1F4A7], - [0x1F30A] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .objects), - emojis: [ - [0x1F507], - [0x1F508], - [0x1F509], - [0x1F50A], - [0x1F4E2], - [0x1F4E3], - [0x1F4EF], - [0x1F514], - [0x1F515], - [0x1F3BC], - [0x1F3B5], - [0x1F3B6], - [0x1F399, 0xFE0F], - [0x1F39A, 0xFE0F], - [0x1F39B, 0xFE0F], - [0x1F3A4], - [0x1F3A7], - [0x1F4FB], - [0x1F3B7], - [0x1F3B8], - [0x1F3B9], - [0x1F3BA], - [0x1F3BB], - [0x1F941], - [0x1F4F1], - [0x1F4F2], - [0x260E, 0xFE0F], - [0x1F4DE], - [0x1F4DF], - [0x1F4E0], - [0x1F50B], - [0x1F50C], - [0x1F4BB], - [0x1F5A5, 0xFE0F], - [0x1F5A8, 0xFE0F], - [0x2328, 0xFE0F], - [0x1F5B1, 0xFE0F], - [0x1F5B2, 0xFE0F], - [0x1F4BD], - [0x1F4BE], - [0x1F4BF], - [0x1F4C0], - [0x1F3A5], - [0x1F39E, 0xFE0F], - [0x1F4FD, 0xFE0F], - [0x1F3AC], - [0x1F4FA], - [0x1F4F7], - [0x1F4F8], - [0x1F4F9], - [0x1F4FC], - [0x1F50D], - [0x1F50E], - [0x1F52C], - [0x1F52D], - [0x1F4E1], - [0x1F56F, 0xFE0F], - [0x1F4A1], - [0x1F526], - [0x1F3EE], - [0x1F4D4], - [0x1F4D5], - [0x1F4D6], - [0x1F4D7], - [0x1F4D8], - [0x1F4D9], - [0x1F4DA], - [0x1F4D3], - [0x1F4D2], - [0x1F4C3], - [0x1F4DC], - [0x1F4C4], - [0x1F4F0], - [0x1F5DE, 0xFE0F], - [0x1F4D1], - [0x1F516], - [0x1F3F7, 0xFE0F], - [0x1F4B0], - [0x1F4B4], - [0x1F4B5], - [0x1F4B6], - [0x1F4B7], - [0x1F4B8], - [0x1F4B3], - [0x1F4B9], - [0x1F4B1], - [0x1F4B2], - [0x2709, 0xFE0F], - [0x1F4E7], - [0x1F4E8], - [0x1F4E9], - [0x1F4E4], - [0x1F4E5], - [0x1F4E6], - [0x1F4EB], - [0x1F4EA], - [0x1F4EC], - [0x1F4ED], - [0x1F4EE], - [0x1F5F3, 0xFE0F], - [0x270F, 0xFE0F], - [0x2712, 0xFE0F], - [0x1F58B, 0xFE0F], - [0x1F58A, 0xFE0F], - [0x1F58C, 0xFE0F], - [0x1F58D, 0xFE0F], - [0x1F4DD], - [0x1F4BC], - [0x1F4C1], - [0x1F4C2], - [0x1F5C2, 0xFE0F], - [0x1F4C5], - [0x1F4C6], - [0x1F5D2, 0xFE0F], - [0x1F5D3, 0xFE0F], - [0x1F4C7], - [0x1F4C8], - [0x1F4C9], - [0x1F4CA], - [0x1F4CB], - [0x1F4CC], - [0x1F4CD], - [0x1F4CE], - [0x1F587, 0xFE0F], - [0x1F4CF], - [0x1F4D0], - [0x2702, 0xFE0F], - [0x1F5C3, 0xFE0F], - [0x1F5C4, 0xFE0F], - [0x1F5D1, 0xFE0F], - [0x1F512], - [0x1F513], - [0x1F50F], - [0x1F510], - [0x1F511], - [0x1F5DD, 0xFE0F], - [0x1F528], - [0x26CF, 0xFE0F], - [0x2692, 0xFE0F], - [0x1F6E0, 0xFE0F], - [0x1F5E1, 0xFE0F], - [0x2694, 0xFE0F], - [0x1F52B], - [0x1F3F9], - [0x1F6E1, 0xFE0F], - [0x1F527], - [0x1F529], - [0x2699, 0xFE0F], - [0x1F5DC, 0xFE0F], - [0x2697, 0xFE0F], - [0x2696, 0xFE0F], - [0x1F517], - [0x26D3, 0xFE0F], - [0x1F489], - [0x1F48A], - [0x1F6AC], - [0x26B0, 0xFE0F], - [0x26B1, 0xFE0F], - [0x1F5FF], - [0x1F6E2, 0xFE0F], - [0x1F52E], - [0x1F6D2] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .symbols), - emojis: [ - [0x1F3E7], - [0x1F6AE], - [0x1F6B0], - [0x267F], - [0x1F6B9], - [0x1F6BA], - [0x1F6BB], - [0x1F6BC], - [0x1F6BE], - [0x1F6C2], - [0x1F6C3], - [0x1F6C4], - [0x1F6C5], - [0x26A0, 0xFE0F], - [0x1F6B8], - [0x26D4], - [0x1F6AB], - [0x1F6B3], - [0x1F6AD], - [0x1F6AF], - [0x1F6B1], - [0x1F6B7], - [0x1F4F5], - [0x1F51E], - [0x2622, 0xFE0F], - [0x2623, 0xFE0F], - [0x2B06, 0xFE0F], - [0x2197, 0xFE0F], - [0x27A1, 0xFE0F], - [0x2198, 0xFE0F], - [0x2B07, 0xFE0F], - [0x2199, 0xFE0F], - [0x2B05, 0xFE0F], - [0x2196, 0xFE0F], - [0x2195, 0xFE0F], - [0x2194, 0xFE0F], - [0x21A9, 0xFE0F], - [0x21AA, 0xFE0F], - [0x2934, 0xFE0F], - [0x2935, 0xFE0F], - [0x1F503], - [0x1F504], - [0x1F519], - [0x1F51A], - [0x1F51B], - [0x1F51C], - [0x1F51D], - [0x1F6D0], - [0x269B, 0xFE0F], - [0x1F549, 0xFE0F], - [0x2721, 0xFE0F], - [0x2638, 0xFE0F], - [0x262F, 0xFE0F], - [0x271D, 0xFE0F], - [0x2626, 0xFE0F], - [0x262A, 0xFE0F], - [0x262E, 0xFE0F], - [0x1F54E], - [0x1F52F], - [0x2648], - [0x2649], - [0x264A], - [0x264B], - [0x264C], - [0x264D], - [0x264E], - [0x264F], - [0x2650], - [0x2651], - [0x2652], - [0x2653], - [0x26CE], - [0x1F500], - [0x1F501], - [0x1F502], - [0x25B6, 0xFE0F], - [0x23E9], - [0x23ED, 0xFE0F], - [0x23EF, 0xFE0F], - [0x25C0, 0xFE0F], - [0x23EA], - [0x23EE, 0xFE0F], - [0x1F53C], - [0x23EB], - [0x1F53D], - [0x23EC], - [0x23F8, 0xFE0F], - [0x23F9, 0xFE0F], - [0x23FA, 0xFE0F], - [0x23CF, 0xFE0F], - [0x1F3A6], - [0x1F505], - [0x1F506], - [0x1F4F6], - [0x1F4F3], - [0x1F4F4], - [0x2640, 0xFE0F], - [0x2642, 0xFE0F], - [0x2695, 0xFE0F], - [0x267B, 0xFE0F], - [0x269C, 0xFE0F], - [0x1F531], - [0x1F4DB], - [0x1F530], - [0x2B55], - [0x2705], - [0x2611, 0xFE0F], - [0x2714, 0xFE0F], - [0x2716, 0xFE0F], - [0x274C], - [0x274E], - [0x2795], - [0x2796], - [0x2797], - [0x27B0], - [0x27BF], - [0x303D, 0xFE0F], - [0x2733, 0xFE0F], - [0x2734, 0xFE0F], - [0x2747, 0xFE0F], - [0x203C, 0xFE0F], - [0x2049, 0xFE0F], - [0x2753], - [0x2754], - [0x2755], - [0x2757], - [0x3030, 0xFE0F], - [0x00A9, 0xFE0F], - [0x00AE, 0xFE0F], - [0x2122, 0xFE0F], - [0x0023, 0xFE0F, 0x20E3], - [0x002A, 0xFE0F, 0x20E3], - [0x0030, 0xFE0F, 0x20E3], - [0x0031, 0xFE0F, 0x20E3], - [0x0032, 0xFE0F, 0x20E3], - [0x0033, 0xFE0F, 0x20E3], - [0x0034, 0xFE0F, 0x20E3], - [0x0035, 0xFE0F, 0x20E3], - [0x0036, 0xFE0F, 0x20E3], - [0x0037, 0xFE0F, 0x20E3], - [0x0038, 0xFE0F, 0x20E3], - [0x0039, 0xFE0F, 0x20E3], - [0x1F51F], - [0x1F4AF], - [0x1F520], - [0x1F521], - [0x1F522], - [0x1F523], - [0x1F524], - [0x1F170, 0xFE0F], - [0x1F18E], - [0x1F171, 0xFE0F], - [0x1F191], - [0x1F192], - [0x1F193], - [0x2139, 0xFE0F], - [0x1F194], - [0x24C2, 0xFE0F], - [0x1F195], - [0x1F196], - [0x1F17E, 0xFE0F], - [0x1F197], - [0x1F17F, 0xFE0F], - [0x1F198], - [0x1F199], - [0x1F19A], - [0x1F201], - [0x1F202, 0xFE0F], - [0x1F237, 0xFE0F], - [0x1F236], - [0x1F22F], - [0x1F250], - [0x1F239], - [0x1F21A], - [0x1F232], - [0x1F251], - [0x1F238], - [0x1F234], - [0x1F233], - [0x3297, 0xFE0F], - [0x3299, 0xFE0F], - [0x1F23A], - [0x1F235], - [0x25AA, 0xFE0F], - [0x25AB, 0xFE0F], - [0x25FB, 0xFE0F], - [0x25FC, 0xFE0F], - [0x25FD], - [0x25FE], - [0x2B1B], - [0x2B1C], - [0x1F536], - [0x1F537], - [0x1F538], - [0x1F539], - [0x1F53A], - [0x1F53B], - [0x1F4A0], - [0x1F518], - [0x1F532], - [0x1F533], - [0x26AA], - [0x26AB], - [0x1F534], - [0x1F535] - ] - ), - EmojiCategory( - categoryName: getEmojiCategoryTitle(for: .flags), - emojis: [ - [0x1F3C1], - [0x1F6A9], - [0x1F38C], - [0x1F3F4], - [0x1F3F3, 0xFE0F], - [0x1F3F3, 0xFE0F, 0x200D, 0x1F308], - [0x1F1E6, 0x1F1E8], - [0x1F1E6, 0x1F1E9], - [0x1F1E6, 0x1F1EA], - [0x1F1E6, 0x1F1EB], - [0x1F1E6, 0x1F1EC], - [0x1F1E6, 0x1F1EE], - [0x1F1E6, 0x1F1F1], - [0x1F1E6, 0x1F1F2], - [0x1F1E6, 0x1F1F4], - [0x1F1E6, 0x1F1F6], - [0x1F1E6, 0x1F1F7], - [0x1F1E6, 0x1F1F8], - [0x1F1E6, 0x1F1F9], - [0x1F1E6, 0x1F1FA], - [0x1F1E6, 0x1F1FC], - [0x1F1E6, 0x1F1FD], - [0x1F1E6, 0x1F1FF], - [0x1F1E7, 0x1F1E6], - [0x1F1E7, 0x1F1E7], - [0x1F1E7, 0x1F1E9], - [0x1F1E7, 0x1F1EA], - [0x1F1E7, 0x1F1EB], - [0x1F1E7, 0x1F1EC], - [0x1F1E7, 0x1F1ED], - [0x1F1E7, 0x1F1EE], - [0x1F1E7, 0x1F1EF], - [0x1F1E7, 0x1F1F1], - [0x1F1E7, 0x1F1F2], - [0x1F1E7, 0x1F1F3], - [0x1F1E7, 0x1F1F4], - [0x1F1E7, 0x1F1F6], - [0x1F1E7, 0x1F1F7], - [0x1F1E7, 0x1F1F8], - [0x1F1E7, 0x1F1F9], - [0x1F1E7, 0x1F1FB], - [0x1F1E7, 0x1F1FC], - [0x1F1E7, 0x1F1FE], - [0x1F1E7, 0x1F1FF], - [0x1F1E8, 0x1F1E6], - [0x1F1E8, 0x1F1E8], - [0x1F1E8, 0x1F1E9], - [0x1F1E8, 0x1F1EB], - [0x1F1E8, 0x1F1EC], - [0x1F1E8, 0x1F1ED], - [0x1F1E8, 0x1F1EE], - [0x1F1E8, 0x1F1F0], - [0x1F1E8, 0x1F1F1], - [0x1F1E8, 0x1F1F2], - [0x1F1E8, 0x1F1F3], - [0x1F1E8, 0x1F1F4], - [0x1F1E8, 0x1F1F5], - [0x1F1E8, 0x1F1F7], - [0x1F1E8, 0x1F1FA], - [0x1F1E8, 0x1F1FB], - [0x1F1E8, 0x1F1FC], - [0x1F1E8, 0x1F1FD], - [0x1F1E8, 0x1F1FE], - [0x1F1E8, 0x1F1FF], - [0x1F1E9, 0x1F1EA], - [0x1F1E9, 0x1F1EC], - [0x1F1E9, 0x1F1EF], - [0x1F1E9, 0x1F1F0], - [0x1F1E9, 0x1F1F2], - [0x1F1E9, 0x1F1F4], - [0x1F1E9, 0x1F1FF], - [0x1F1EA, 0x1F1E6], - [0x1F1EA, 0x1F1E8], - [0x1F1EA, 0x1F1EA], - [0x1F1EA, 0x1F1EC], - [0x1F1EA, 0x1F1ED], - [0x1F1EA, 0x1F1F7], - [0x1F1EA, 0x1F1F8], - [0x1F1EA, 0x1F1F9], - [0x1F1EA, 0x1F1FA], - [0x1F1EB, 0x1F1EE], - [0x1F1EB, 0x1F1EF], - [0x1F1EB, 0x1F1F0], - [0x1F1EB, 0x1F1F2], - [0x1F1EB, 0x1F1F4], - [0x1F1EB, 0x1F1F7], - [0x1F1EC, 0x1F1E6], - [0x1F1EC, 0x1F1E7], - [0x1F1EC, 0x1F1E9], - [0x1F1EC, 0x1F1EA], - [0x1F1EC, 0x1F1EB], - [0x1F1EC, 0x1F1EC], - [0x1F1EC, 0x1F1ED], - [0x1F1EC, 0x1F1EE], - [0x1F1EC, 0x1F1F1], - [0x1F1EC, 0x1F1F2], - [0x1F1EC, 0x1F1F3], - [0x1F1EC, 0x1F1F5], - [0x1F1EC, 0x1F1F6], - [0x1F1EC, 0x1F1F7], - [0x1F1EC, 0x1F1F8], - [0x1F1EC, 0x1F1F9], - [0x1F1EC, 0x1F1FA], - [0x1F1EC, 0x1F1FC], - [0x1F1EC, 0x1F1FE], - [0x1F1ED, 0x1F1F0], - [0x1F1ED, 0x1F1F2], - [0x1F1ED, 0x1F1F3], - [0x1F1ED, 0x1F1F7], - [0x1F1ED, 0x1F1F9], - [0x1F1ED, 0x1F1FA], - [0x1F1EE, 0x1F1E8], - [0x1F1EE, 0x1F1E9], - [0x1F1EE, 0x1F1EA], - [0x1F1EE, 0x1F1F1], - [0x1F1EE, 0x1F1F2], - [0x1F1EE, 0x1F1F3], - [0x1F1EE, 0x1F1F4], - [0x1F1EE, 0x1F1F6], - [0x1F1EE, 0x1F1F7], - [0x1F1EE, 0x1F1F8], - [0x1F1EE, 0x1F1F9], - [0x1F1EF, 0x1F1EA], - [0x1F1EF, 0x1F1F2], - [0x1F1EF, 0x1F1F4], - [0x1F1EF, 0x1F1F5], - [0x1F1F0, 0x1F1EA], - [0x1F1F0, 0x1F1EC], - [0x1F1F0, 0x1F1ED], - [0x1F1F0, 0x1F1EE], - [0x1F1F0, 0x1F1F2], - [0x1F1F0, 0x1F1F3], - [0x1F1F0, 0x1F1F5], - [0x1F1F0, 0x1F1F7], - [0x1F1F0, 0x1F1FC], - [0x1F1F0, 0x1F1FE], - [0x1F1F0, 0x1F1FF], - [0x1F1F1, 0x1F1E6], - [0x1F1F1, 0x1F1E7], - [0x1F1F1, 0x1F1E8], - [0x1F1F1, 0x1F1EE], - [0x1F1F1, 0x1F1F0], - [0x1F1F1, 0x1F1F7], - [0x1F1F1, 0x1F1F8], - [0x1F1F1, 0x1F1F9], - [0x1F1F1, 0x1F1FA], - [0x1F1F1, 0x1F1FB], - [0x1F1F1, 0x1F1FE], - [0x1F1F2, 0x1F1E6], - [0x1F1F2, 0x1F1E8], - [0x1F1F2, 0x1F1E9], - [0x1F1F2, 0x1F1EA], - [0x1F1F2, 0x1F1EB], - [0x1F1F2, 0x1F1EC], - [0x1F1F2, 0x1F1ED], - [0x1F1F2, 0x1F1F0], - [0x1F1F2, 0x1F1F1], - [0x1F1F2, 0x1F1F2], - [0x1F1F2, 0x1F1F3], - [0x1F1F2, 0x1F1F4], - [0x1F1F2, 0x1F1F5], - [0x1F1F2, 0x1F1F6], - [0x1F1F2, 0x1F1F7], - [0x1F1F2, 0x1F1F8], - [0x1F1F2, 0x1F1F9], - [0x1F1F2, 0x1F1FA], - [0x1F1F2, 0x1F1FB], - [0x1F1F2, 0x1F1FC], - [0x1F1F2, 0x1F1FD], - [0x1F1F2, 0x1F1FE], - [0x1F1F2, 0x1F1FF], - [0x1F1F3, 0x1F1E6], - [0x1F1F3, 0x1F1E8], - [0x1F1F3, 0x1F1EA], - [0x1F1F3, 0x1F1EB], - [0x1F1F3, 0x1F1EC], - [0x1F1F3, 0x1F1EE], - [0x1F1F3, 0x1F1F1], - [0x1F1F3, 0x1F1F4], - [0x1F1F3, 0x1F1F5], - [0x1F1F3, 0x1F1F7], - [0x1F1F3, 0x1F1FA], - [0x1F1F3, 0x1F1FF], - [0x1F1F4, 0x1F1F2], - [0x1F1F5, 0x1F1E6], - [0x1F1F5, 0x1F1EA], - [0x1F1F5, 0x1F1EB], - [0x1F1F5, 0x1F1EC], - [0x1F1F5, 0x1F1ED], - [0x1F1F5, 0x1F1F0], - [0x1F1F5, 0x1F1F1], - [0x1F1F5, 0x1F1F2], - [0x1F1F5, 0x1F1F3], - [0x1F1F5, 0x1F1F7], - [0x1F1F5, 0x1F1F8], - [0x1F1F5, 0x1F1F9], - [0x1F1F5, 0x1F1FC], - [0x1F1F5, 0x1F1FE], - [0x1F1F6, 0x1F1E6], - [0x1F1F7, 0x1F1EA], - [0x1F1F7, 0x1F1F4], - [0x1F1F7, 0x1F1F8], - [0x1F1F7, 0x1F1FA], - [0x1F1F7, 0x1F1FC], - [0x1F1F8, 0x1F1E6], - [0x1F1F8, 0x1F1E7], - [0x1F1F8, 0x1F1E8], - [0x1F1F8, 0x1F1E9], - [0x1F1F8, 0x1F1EA], - [0x1F1F8, 0x1F1EC], - [0x1F1F8, 0x1F1ED], - [0x1F1F8, 0x1F1EE], - [0x1F1F8, 0x1F1EF], - [0x1F1F8, 0x1F1F0], - [0x1F1F8, 0x1F1F1], - [0x1F1F8, 0x1F1F2], - [0x1F1F8, 0x1F1F3], - [0x1F1F8, 0x1F1F4], - [0x1F1F8, 0x1F1F7], - [0x1F1F8, 0x1F1F8], - [0x1F1F8, 0x1F1F9], - [0x1F1F8, 0x1F1FB], - [0x1F1F8, 0x1F1FD], - [0x1F1F8, 0x1F1FE], - [0x1F1F8, 0x1F1FF], - [0x1F1F9, 0x1F1E6], - [0x1F1F9, 0x1F1E8], - [0x1F1F9, 0x1F1E9], - [0x1F1F9, 0x1F1EB], - [0x1F1F9, 0x1F1EC], - [0x1F1F9, 0x1F1ED], - [0x1F1F9, 0x1F1EF], - [0x1F1F9, 0x1F1F0], - [0x1F1F9, 0x1F1F1], - [0x1F1F9, 0x1F1F2], - [0x1F1F9, 0x1F1F3], - [0x1F1F9, 0x1F1F4], - [0x1F1F9, 0x1F1F7], - [0x1F1F9, 0x1F1F9], - [0x1F1F9, 0x1F1FB], - [0x1F1F9, 0x1F1FC], - [0x1F1F9, 0x1F1FF], - [0x1F1FA, 0x1F1E6], - [0x1F1FA, 0x1F1EC], - [0x1F1FA, 0x1F1F2], - [0x1F1FA, 0x1F1F3], - [0x1F1FA, 0x1F1F8], - [0x1F1FA, 0x1F1FE], - [0x1F1FA, 0x1F1FF], - [0x1F1FB, 0x1F1E6], - [0x1F1FB, 0x1F1E8], - [0x1F1FB, 0x1F1EA], - [0x1F1FB, 0x1F1EC], - [0x1F1FB, 0x1F1EE], - [0x1F1FB, 0x1F1F3], - [0x1F1FB, 0x1F1FA], - [0x1F1FC, 0x1F1EB], - [0x1F1FC, 0x1F1F8], - [0x1F1FD, 0x1F1F0], - [0x1F1FE, 0x1F1EA], - [0x1F1FE, 0x1F1F9], - [0x1F1FF, 0x1F1E6], - [0x1F1FF, 0x1F1F2], - [0x1F1FF, 0x1F1FC], - [0x1F3F4, 0xE0067, 0xE0062, 0xE0065, 0xE006E, 0xE0067, 0xE007F], - [0x1F3F4, 0xE0067, 0xE0062, 0xE0073, 0xE0063, 0xE0074, 0xE007F], - [0x1F3F4, 0xE0067, 0xE0062, 0xE0077, 0xE006C, 0xE0073, 0xE007F] - ] - ) - ] - } -} diff --git a/Sources/EmojiPicker/Services/UnicodeManager.swift b/Sources/EmojiPicker/Services/UnicodeManager.swift deleted file mode 100644 index 3cb9fe2..0000000 --- a/Sources/EmojiPicker/Services/UnicodeManager.swift +++ /dev/null @@ -1,81 +0,0 @@ -// The MIT License (MIT) -// Copyright © 2022 Ivan Izyumkin -// -// 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. - -import UIKit.UIDevice - -/// The protocol is necessary to hide unnecessary methods with Unicode categories in UnicodeManager. -protocol UnicodeManagerProtocol { - /// Returns relevant emojis for the current iOS version. - func getEmojisForCurrentIOSVersion() -> [EmojiCategory] -} - -/// The class is responsible for getting a relevant set of emojis for iOS version. -final class UnicodeManager: UnicodeManagerProtocol { - - private var currentVersion: Float { - return (UIDevice.current.systemVersion as NSString).floatValue - } - - /// Gets version of iOS for current device. - /// - /// - Returns: Array of emoji categories (and array of emojis inside them). - func getEmojisForCurrentIOSVersion() -> [EmojiCategory] { - switch currentVersion { - case 12.1...13.1: - return unicode11 - case 13.2...14.1: - return unicode12 - case 14.2...14.4: - return unicode13 - case 14.5...15.3: - return unicode13v1 - case 15.4...: - return unicode14 - default: - return unicode5 - } - } - - /// Returns a localized name for the emoji category. - /// - /// - Parameter type: Emoji category type. - /// - Returns: Name of the category. - func getEmojiCategoryTitle(for type: EmojiCategoryType) -> String { - switch type { - case .people: - return NSLocalizedString("emotionsAndPeople", bundle: .module, comment: "") - case .nature: - return NSLocalizedString("animalsAndNature", bundle: .module, comment: "") - case .foodAndDrink: - return NSLocalizedString("foodAndDrinks", bundle: .module, comment: "") - case .activity: - return NSLocalizedString("activities", bundle: .module, comment: "") - case .travelAndPlaces: - return NSLocalizedString("travellingAndPlaces", bundle: .module, comment: "") - case .objects: - return NSLocalizedString("objects", bundle: .module, comment: "") - case .symbols: - return NSLocalizedString("symbols", bundle: .module, comment: "") - case .flags: - return NSLocalizedString("flags", bundle: .module, comment: "") - } - } -} diff --git a/Sources/EmojiPicker/ViewModel/EmojiPickerViewModel.swift b/Sources/EmojiPicker/ViewModel/EmojiPickerViewModel.swift index daa62dd..63971f0 100644 --- a/Sources/EmojiPicker/ViewModel/EmojiPickerViewModel.swift +++ b/Sources/EmojiPicker/ViewModel/EmojiPickerViewModel.swift @@ -40,31 +40,44 @@ protocol EmojiPickerViewModelProtocol { /// Emoji Picker view model. final class EmojiPickerViewModel: EmojiPickerViewModelProtocol { + // MARK: - Internal Properties + /// Observable object of selected emoji. var selectedEmoji = Observable(value: "") /// Observable object of selected category index of an emoji. var selectedEmojiCategoryIndex = Observable(value: 0) - /// All emoji categories. - private var emojiCategories = [EmojiCategory]() + // MARK: - Private Properties + + /// Set of emojis. + private let emojiSet: EmojiSet - init(unicodeManager: UnicodeManagerProtocol) { - emojiCategories = unicodeManager.getEmojisForCurrentIOSVersion() + // MARK: - Init + + init(emojiManager: EmojiManagerProtocol) { + emojiSet = emojiManager.provideEmojis() } + // MARK: - Internal Methods + func numberOfSections() -> Int { - return emojiCategories.count + return emojiSet.categories.count } func numberOfItems(in section: Int) -> Int { - return emojiCategories[section].emojis.count + return emojiSet.categories[section].emojis.count } func emoji(at indexPath: IndexPath) -> String { - return emojiCategories[indexPath.section].emojis[indexPath.row].emoji() + let name = emojiSet.categories[indexPath.section].emojis[indexPath.row] + return emojiSet.emojis[name]?.skins[0].native ?? "" } func sectionHeaderViewModel(for section: Int) -> String { - return emojiCategories[section].categoryName + return NSLocalizedString( + emojiSet.categories[section].id.rawValue, + bundle: .module, + comment: "" + ) } } diff --git a/Sources/EmojiPicker/Views/EmojiCategoryView/EmojiCategoryIconView.swift b/Sources/EmojiPicker/Views/EmojiCategoryView/EmojiCategoryIconView.swift index e2d8718..2b026d0 100644 --- a/Sources/EmojiPicker/Views/EmojiCategoryView/EmojiCategoryIconView.swift +++ b/Sources/EmojiPicker/Views/EmojiCategoryView/EmojiCategoryIconView.swift @@ -34,7 +34,7 @@ final class EmojiCategoryIconView: UIView { // MARK: - Private Properties /// Target icon type. - private var type: EmojiCategoryType + private var type: CategoryType /// Current tint color for the icon. private var currentIconTintColor: UIColor = .systemGray /// Selected tint color for the icon. @@ -44,7 +44,7 @@ final class EmojiCategoryIconView: UIView { // MARK: - Init - init(type: EmojiCategoryType, + init(type: CategoryType, selectedIconTintColor: UIColor ) { self.type = type @@ -96,11 +96,11 @@ extension EmojiCategoryIconView { CategoryIconsDrawKit.drawPeopleCategory(frame: rect, tintColor: currentIconTintColor) case .nature: CategoryIconsDrawKit.drawNatureCategory(frame: rect, tintColor: currentIconTintColor) - case .foodAndDrink: + case .foods: CategoryIconsDrawKit.drawFoodAndDrinkCategory(frame: rect, tintColor: currentIconTintColor) case .activity: CategoryIconsDrawKit.drawActivityCategory(frame: rect, tintColor: currentIconTintColor) - case .travelAndPlaces: + case .places: CategoryIconsDrawKit.drawTravelAndPlacesCategory(frame: rect, tintColor: currentIconTintColor) case .objects: CategoryIconsDrawKit.drawObjectsCategory(frame: rect, tintColor: currentIconTintColor) diff --git a/Sources/EmojiPicker/Views/EmojiCategoryView/TouchableEmojiCategoryView.swift b/Sources/EmojiPicker/Views/EmojiCategoryView/TouchableEmojiCategoryView.swift index f71cbd7..eb2252c 100644 --- a/Sources/EmojiPicker/Views/EmojiCategoryView/TouchableEmojiCategoryView.swift +++ b/Sources/EmojiPicker/Views/EmojiCategoryView/TouchableEmojiCategoryView.swift @@ -53,14 +53,16 @@ final class TouchableEmojiCategoryView: UIView { // MARK: - Init - init(delegate: EmojiCategoryViewDelegate, - categoryIndex: Int, - selectedEmojiCategoryTintColor: UIColor + init( + delegate: EmojiCategoryViewDelegate, + categoryIndex: Int, + categoryType: CategoryType, + selectedEmojiCategoryTintColor: UIColor ) { self.delegate = delegate self.categoryIndex = categoryIndex self.categoryIconView = EmojiCategoryIconView( - type: EmojiCategoryType(rawValue: categoryIndex) ?? .people, + type: categoryType, selectedIconTintColor: selectedEmojiCategoryTintColor ) super.init(frame: .zero) diff --git a/Sources/EmojiPicker/Views/EmojiPickerView.swift b/Sources/EmojiPicker/Views/EmojiPickerView.swift index fa83698..caa0f79 100644 --- a/Sources/EmojiPicker/Views/EmojiPickerView.swift +++ b/Sources/EmojiPicker/Views/EmojiPickerView.swift @@ -122,10 +122,12 @@ final class EmojiPickerView: UIView { } private func setupCategoryViews() { - for categoryIndex in 0...7 { + var index = 0 + for type in CategoryType.allCases { let categoryView = TouchableEmojiCategoryView( delegate: self, - categoryIndex: categoryIndex, + categoryIndex: index, + categoryType: type, selectedEmojiCategoryTintColor: selectedEmojiCategoryTintColor ) @@ -133,6 +135,7 @@ final class EmojiPickerView: UIView { categoryView.updateCategoryViewState(selectedCategoryIndex: 0) categoryViews.append(categoryView) categoriesStackView.addArrangedSubview(categoryView) + index += 1 } } diff --git a/Sources/EmojiPicker/Views/EmojiPickerViewController.swift b/Sources/EmojiPicker/Views/EmojiPickerViewController.swift index 7738ded..0f404d6 100644 --- a/Sources/EmojiPicker/Views/EmojiPickerViewController.swift +++ b/Sources/EmojiPicker/Views/EmojiPickerViewController.swift @@ -116,8 +116,8 @@ public final class EmojiPickerViewController: UIViewController { /// Creates EmojiPicker view controller with provided configuration. public init() { - let unicodeManager = UnicodeManager() - viewModel = EmojiPickerViewModel(unicodeManager: unicodeManager) + let emojiManager = EmojiManager() + viewModel = EmojiPickerViewModel(emojiManager: emojiManager) super.init(nibName: nil, bundle: nil) modalPresentationStyle = .popover From d4679fcee703b6ec909e9bff3de3c73f17b030b8 Mon Sep 17 00:00:00 2001 From: Egor Badmaev <60363270+htmlprogrammist@users.noreply.github.com> Date: Wed, 25 Jan 2023 22:45:42 +0300 Subject: [PATCH 3/7] refactor: delete useless files, improve code style --- .../UserInterfaceState.xcuserstate | Bin 76696 -> 90587 bytes .../Pods/Pods.xcodeproj/project.pbxproj | 820 +++++++++--------- .../Extensions/Foundation/Array.swift | 38 - Sources/EmojiPicker/Resources/Data/1.json | 1 - Sources/EmojiPicker/Resources/Data/2.json | 1 - Sources/EmojiPicker/Resources/Data/3.json | 1 - Sources/EmojiPicker/Resources/Data/4.json | 1 - .../EmojiCategoryIconView.swift | 15 +- 8 files changed, 408 insertions(+), 469 deletions(-) delete mode 100644 Sources/EmojiPicker/Extensions/Foundation/Array.swift delete mode 100644 Sources/EmojiPicker/Resources/Data/1.json delete mode 100644 Sources/EmojiPicker/Resources/Data/2.json delete mode 100644 Sources/EmojiPicker/Resources/Data/3.json delete mode 100644 Sources/EmojiPicker/Resources/Data/4.json diff --git a/Example App/EmojiPicker.xcworkspace/xcuserdata/egbad.xcuserdatad/UserInterfaceState.xcuserstate b/Example App/EmojiPicker.xcworkspace/xcuserdata/egbad.xcuserdatad/UserInterfaceState.xcuserstate index 7de2f487943374cbdda11806543ae49f448b69a0..f7d09d67dcb0b740658a236de725ca2970609203 100644 GIT binary patch literal 90587 zcmeEvcYGAZ`~S|&?%wU*?cQFcLm;3CB&3l9Pzj_!qy-Xsi6J>45OOhvD!K#qhA4<# z5~{I)VnI~EhA1|IprV2WK}EoZUHLt;dz)ec#;+e~1Wx2^oIJMk>|kkGVW@aq=e*MV>4oqur*nCzWNhcqlo`SN@-h#H zu34F@xrSvA4$cb}^bZ%>&Dl9=RCak@c~D0i+~R)D!8y4WTuZJM*PZLZMRCzwPcDXw z<>I(OTqbu3H<%m34dsS$!?`SO1UHhK%1z^@bA{XtZYEd6&Ekr=5O*b~bCg@eE#|J` zuI8@cuH~-duIFy$?&luhR&teG6}O6ekgMh%^zUO}6e&_z+{zMXzkpnrAf>h)}8fuFo(fO!5>WN}d zEb4_4(EyZ+(oj0eK$oDwXapLGMx!xkA}U59RDv!;rKk**qY5+|U5*x_#po(@HM$Wk zMJv#qXgzumRilT{!{`z8DB6IYM_bW0v>m;GUPL?4tLSyK3%!LtLLZ~g(C6q7I)c7L zU!fD|Tl53^5&edK#{~0Oz#VV|?ua|#NZc8B!RO)gaaVi+?uMgr9FE5cI2otmbUX~_ z;8A!So`fgkDL5Y&;OV#!&%(vH6qn%&d=0)9--K_)OYw4i7rqZaf*-{j@J9R?ejIPY zPvEV18{Upzz^~xF_#=D>e~G`r-{K$fFZfsdCqcwUWa1!Bq7ffyNjj3QB!(oAWO5-% zA!#I?WRg5Gh2)b05+qZ}G%}qOk{M(s36a@k4w*}?AXk!W$#vvR4F4Rzjo;3{%)id>;@{xk;rH?T`49Qe`9u5{{8#)5{s;a?{xANNzzIkY z1W}L$MNoydLWIy!=pvjabQ8J@J%tz{LFgs)6H=tT-J;HwBL*XOgW8r}Cg>XzbE}Rtp5dIW-Q4pP?S8OA;6(hxN zVs|l4j2HWe{l$UeU~!08AO^*$;xuu(SSZdAXNpDQEU{QD73Yapin@56c)fUoc(Ztm zc!#(`yicqYtHeje4dO=eG4XM6llZLoocO%BReVR>E!K#8#COHL;y&>`@gwmw@pJL8 z_?7szcvL(gek*<_o)mwwjkb-qO|a$KF0~cdg0@223|p}+WGl0k+veKl*%sQaur0DJ zwq0wx&UTaSX4_KRZMHjXD{S}J?zOG7Rod3r*4nCV57{=@Hrk%BJ!yN!w#By9w$1jE z?Pc3e+iSKrZEx9XYKB2i~U*qbM}|*uh>7fAFv;^e`5dC{+a!A`yu-m_QUog_M`Ui?Z4Q6m5_ub zA~__d)LH5xohO|yb(JoVx=G!o9#WJPEyYQ_r9M($=|X9MlqwCDhDbxDVbXAEj5Jm% zkuH-;r822ps*q+&bELV_JZZjkg>A)MAU!Q@mY$KeNY6^oNzY4L zrESu7=>_Q(=?&>kX^-@-^pW(jbU->R9g$ASoQz~F6PcF?*+lZVS$@(6j9JW-w`=gS3hkvvN-mS@Xz2OW`F44kyj;FRULoHp-zDECua>LjhvZH26Y`Vt^YT`CpZuQuzWjl_U;a@3Nd8zp zARm-Jkq_a;@=^I4`Fr^X`FHsb`A>)75FPCu9UKvkj*d=_NJnQ!7sq*y^Br9sJsk0l z1VKNvj>X_!3?kIH3aLjZRIc7PE9U(`FqujB;ak*oWW3l5#$4!o# z9m^eeI39IuaBOru=6Kw($?=5aNyk%;ryZLe&pBRlyyke_QRCR-c-Qff<73B3$4`!* z9ltn!b^PY|-SLOxPsd-5Q%>TPoernl>2bDpwsE#~wsW?3p65K@+0U8c?C%`lOm(I? z)14X4fzCnBOy^K%j&qcAf^(v?z!`K-bxw1JoF&fdoYy;VaNg*=$$7K$7UvS@t@BF~|vGb7g3+G|y zH_l_ulg^)I0Y%Kl-5ccrLEFVX|HrpB9x9wCnZujUx`){lwQh3%Ed}QWuP)h zxm3whrYQMJff7`vD$|tdN})1CDOM_!1LamB*APmFJWfm6w!V${WhN%3kG|a$Gr~e5-t?e6ReV{HUB%eo}r`epj(-S0&Z0 zdQ`9KQ~hc?wY{3CCaKA4Z?%uwSG`cZNWEC?r>3ZB>R@$<8ws*kC!sjsWM)Hl>O z)wk5Q)pyk0YK^)_eNR209#lV3535Ji6Y96>ck1`*Z|d(ZugmB1y8^Bju9mJ=uGX$L zuC}gru8yv*u4q?JSCT8)mE!8}8s{4Cn&6t~n&g`7%5`1p%5zO|<-4Z2id`XBiEFlN zj_XR7?xNzSu0^gJTsOK_xmLT@xYoMXxz@WLbXB_^ay{&N#PyhKvumqso9k8APSD>YrC+9K^5?Pl#3 zZJD-QyHC4cdq7*Mt=AsZUeI3DUeaFHUeR`FuWCEB*R1ouSuB==-@t~=j7!#&e|nY+|I-@U-S*nO4zUiW?O``r(?SGp_R zRqj>p)$TR!weD*7WA3Njo88;pFSuWHzwX}U{@i`Y{e}Cm`-uBX_gC((-ACQuxR1HN zbN}N0%YDjY^VmI-$L;ZWx_P>LdU&Ed(Vm{37*DJx&J*uR@FaWsdD1-@o?)Kho-EG@ z&p6L`PpPNOQ|_to%=XOj%=OIk%=awtT<+05*LrUD+~T>zv%>R$XQgMe=NZoy&$FKA zJkNW!dbWACdtUIo=-J_U)3e9(uID4q$DRY8!=59aQ(n%Cyx2>;yjSpwUYpnMmAs1A z=WXq6-l5)M-r?RXZ;p3@H_to8JHtEETjVYG zR(Nmr-r`;2z16$adz<%m?=tUl?;YM1-g~@N-c{ZQz17~wy_>vGc%Sq>@7?O%=Y7xn zzV`#~e(#6gkGvmy4|orHKk**&9`%0b{oebV_jm6f-aoy6`9z=1*TEOz>*(v`i}ZE& zb@83&JKxvUcY!a;m*DH;>+4JPrTNl*Lw&=1Q+?BX(|v`$8NQjmBHt`uu`lE+@s(rh zTi~Oq-Rx52m3_n7Z--zMJ^z9)T8`JVPY>wD3+)AyQhx39*x z$M>%9Bj3lqlfIvPKl^_1{p$P8_q*>8-=Ds}e5d@xFZ&&Sx8LJ$?Qi36>u=}p;y=%y z=+k1J@u&II{h9tt{KNdi{n`E;|73rz|5AURKj@$7FY?dwSNLc9=lJLP=lQSj zU+G`$U+TZjf4hH~f4Tn-{|f(|{(JqE{wn_}|3m(V{g3z`^FQf-$^Wwd75@(ZtNva7 zcl^8kHU9nn5B(qcKk*;(ANQZ||KR_{|EvGE01l7<9}ogkz#H%d{DDBAb)Z8aBG55# zL7-cpd!R=kCJ-Cw7f1>84-5#T2GRoQfsDW!wgq+t-Uz%Icq{OB;GMwkKuzHNz-NKa1BU`%1P%wj4SW~)G4My=&%j?Ta0`12 zXA9S;&czi)MSD1fQ#lu>ab7MkW>|Lg%;3DT@$i4x0vz2rzbLP)tcr7U9v$nXit}-P z(4bKtJuz47oR-=@H7;#HOjJVe#Q3O$xP<;uy^~|&qvDf#XY@}yUlboyhGSkw> zgi2?YmE`3I(?aLvx1Z%`Tjl2Q4x$)qd??8iaPaq134I!lJ_R!eH5$!h-VYX0goTvJ!A2gi7m* z)jnwyn>e~KI43PQrDEDN7$?m;G&n0%I&WZUUdi;js}>Kn6ea<=^n${0y^_`ZY;Gdg zZ9SL6jp9agW4N*0IBq;QL2s$I(p&3o^tO6Cy}jOHJvWJ)%;j>Ia(UboE}tvVBlM1X zl-^e#rccp}b)7ZaogFL!#)Ad5?1BqqU}>nL#Jm9xld@c```G+YK``#&J5A}#va*UG)Yj%S_cH*Mxmv_&?$!e7^cCa)6mzwVf` z=VsJz^>PU}hwHYMyNoO4%D8f_f}5>((j)cGdKdjX{rt7uTy7rp@M!LGZlT^)zW{o- zwcbtd&U&>|(<~VM8f|q$$1@cQGu!1%WwOglEAq=LN}!Htu$A8MmCfLyy*b>M?q(9=C?O6Qo8L z?jG)5JszY*lAf&hW`pcv5+gi&a!P}26yQo-XV*@XjKZSwVCnGUp`n7p!l{Kp0C|@) zmrO5aO(G!fI|U7pUac=n0kFI=vTLvlxq` z^NL{B^>0x0A?{(W+sc)C53@UO;WkvUF0uoK1q)(&M8quY5wRdHDXvFEQey1Fg%*WP z+>^Bwp3-4ev~E1ZZ87V!EdNggKJC*7>6gH35Oh9!1@s}tr=f-f zgErRo33N4sfgi3}LsKi5;5rlEwPkbWm9Vlc;9C0JlDy)AU;&I!u*d`k++oX5dTD8> z)Eq!q2*cxI-m0yr;Ztm3gVBOjzwu*j;T~ILQbV&!N`qxEh_Ghn&oma|GB(=mX4!yw zj5U+n@P&~T#pQ);vGzcrTEfPRG@h%6k{UzD`GPyVQqMGp_e<`pQNyycgXLA+m)sKb z{!#9mmHJ@w{&DWa_Kk38u ztSaso?pJ+;p2vo#)nygI(s@~VOxJ)}P*$g{Oqy!Ui>$nIxL#}_=PyLKZmYRdh(icr zeWaeP=jfwWBOVDzL^gf2K1Ls_k7HE_SRX<^!@y+chf0E}(?g*$wz{?jHLg58uWVjU zD6<%rYVh5UU|gg!^=^W}5K~S<#n7L|w`^FvVP@v%v5OjK0%$;9dH!@J5p#lb%Z=xA zroy*<$c;S6i+sq>xljPL;5MRGs5NRcF0VL$dZ-k*8D~_Q6D*xIZWgN~HLolAO%{JJcR^KoL-%f;s^g!MPC5$S*8UD=aH1%9{rQA8H>9 z-8G9LB&Qr0(6Kde$&ZrAIZyczzWkxZ5B2+LfSe`yBG@~#Tx?mb8965#MML}cK zQCD<<5$y=eOSA4(aJd_|1jM8H-7MMzMg6Ty%F5*yp zuGStvUEAA6)eQ!u3MDWa|4=F`j3AVRE(8RjWYin=L4Eany+9A@Q&*#l(8Z`9x=5d< zPuC0K9T4O*r>LR04w%R0F~ojg;tc`()QWF*8NfEG*u?AK3%4}u2o{XWYJZ2K5LA}`_P$glFvdRuY!$88Kq56zUG+du~#%I`=XQLc6DpzX_>KR)xvRLqI zWH3B03^ePr^rGQz*On=b17ik=+l(uOg~Z?-R9QB0`se2xq6swl;N-G=W?E#0%3vCW ziYJwY*Sk!%_-xS9AhzZLE2$NjGm+f+5Dbe2b-XWkF=*QZArLkKG}MWpfEGXitcWWC zJ!%d&pSuErUf01Yz66%qJ7HaY0K#2sxrew7+$Qd6?iucRST$aPwc>T|O>Q?V0q;T3 z>mUTXz5wy{4R->9Tqn6-xj#TcU=Rs*2y?k=AjAi8I!?_g$t#~e4yI{v?jTT0S97uv zuTyfeLIohwwY1>uU{R=q8D$ad(gb6AWEJMmG}Q7Tq5Qm}!uhN(!_%lt<7&WS1e1{S zHq}8eMe~YTT+!&l`2H_%Kd|HHjmI@)vgGH~HNZo_h!`sWz`#U{JnQQkuC-w(s?DUj zkGzs)(rnLlV(m7p%YUFaK7DR^&|tqz!!=>cv$+)a9!)!DQtZn0U=%Olx^dnAf#TTg zVCn2aK$s@fghQvzrMKhf$1X7G#c_#@UOck^|AAhEKGjG~*jQ{X&Ams5oHS`(XpW@O ztK3E7GeQ-`1;z}k2^*Nrt#Th(+~2G+)$F!3E}hHxhh}60SZl%o=H?RGdvvjA5*or~ ztukZM4e{P0eQw^YlA>V5)KFW*yhf?gN2`hep(d6Kg-8_sYBLlafk=Y16GdXT*C26_m)SQE~C zXzoB9czWxHCIi=V6Re@VVNw{VCQ56VX$YoFbNd|zcY|5yty~tXb15?c|Dj2v4J4J- zFgp><#^&i1I(cQ1Dzd_o$wwehrMZ0XBdfZb#5Qtj z6-#cZ-wQyJt;(Q|M+^;?=YfEQ);s}b=Tprlu=hZ)t4Uz9xk@mJeR~a9sLw(YO>^1Y z@$=)?o3(5;!N!0AjGNYMb8Fdq^oB`hEiapc#BzsT89M;<6A-L`Aj2GP_CNtsVTlTM zvNh&YG^vJri+h`Ur`e6$dvur6WDATzRu2dqY* zGpe|dIWcRvuOM6MXtVnY>I*9!$2hf;J6<2HHDDyOtgGhow)c%)txVp21umlo5oT>SyB6r7 ze6tptiApwZi)zdqw0~0z$Pz#k%UQFqy-1U5AbSlA?q=7s_vrC2m==Dp=SSDCtU`X& zvWgk$kzDvsWXfXQ_*liP_Q;gW%St_LSo%zXg;LT-HBGC$Iuq^ zCZx!HfsUh}v5W(d2p5Ta;C_(qHU?h`32v9;>ma4=c6=`+vu(w%;&<=|kht~>5g=hr zBatMI^o8`a;bc6drp+c-L*m&AvXX2f+aSg44RVkiCqMHXZ{xju6raKm;0N=Q`C0sI zND8}wzmI>A-vDV}PeZcT9{w}_D5Q1$DcA%_@IV?@f^dxi5H6L;xKU>q)^QjuMlq&?}1dQ=fxf3+v59>3U$JU zZEjm@TcoXrt)FeMZ6qW@6+_C?HMS+TWsu(VpzS%^F5A11wsaU0mVUI`>;ZcRNJNUa zXF%%FSbH9%87;QoWM2;HMQiQP*k82oh18*A_MhyhB)ilG5`^L*B`6(If$|^?Xr8nP zQht_6_emQexo4-eTiOpvJzq$_Kmv~@w~{-_-Q|lRNoTa2E6bGn=@ogJOsobiy>GRip_l2}Td^B{TU9!OSs1QJy?J70hVmCqp|<)rgB=PAXm zxRn5;pmbHbL+VLC6Mz_-|Dz7(|JJ)Q(e%NLMWAz@2ad`jGuSq~qP(cEILMG_rm8ZV zHSB^|g~p=^%w^Kd^10fS+??`(siR{P(?;ji(SYSWF0t-wJ(7m+G$~9jcXW1cd~97g z!xGMhI9l5u{HweDKxlg-Yb z9-I|ye2)cefp^3IYq&M)eEGGmnry=hGJNXPvS9guAQ($^^)wX+V4kXsJg}Nh$IqF( z>}U>}$9zC@^|_U3zCP~^etdKV(z$Mx=t_NlC3sv7e`}zgn2LfmuRO}=lZFo5_@o{Y zafvat4qS8%x~`Vy_4>kE&px^d-C|KdOY|%B9@a44hL*7#x9eBdlJQhkw{&5RP71kNts8 zL1YH~iT={7^i@?%t{T#mVX*e`ArQq67MQaDfG~Ds?VT{zGfG3VYUA(Ws}gQdn*HeQp5=FKgfRXE=W1(rjg!D|58 zV8g_2UBv_nT3>iG&4Y!8B7fv)|zWZ=*+z0pNT=+tK z5xy8y*c99!58(DN|3NqbiaEBKQ+slqLST-azZO;_Lm?J14Vu^C$ys@Y#dXCYl4vw& z_*ARTx_kPo`qTRB`kVSw`jA|$XKgNoInf7`! z^<1HnbvtNO_X4Y~zBy^#p1~Tezht(tksr}26*5Y_!b%yz7NgzVw-}<%5K7*UXX80| zE}nt-Ro0$+)BOu^t&@FKhzwZe<>)e{QBkQp@+#?n^?(J^z;EvlGRJgj2Y z6c(rP1PuoY1j6fGbmvcpC^O_Tm5$6So)!eu0{~%VH-ML348}jKig3w%b_giXW_9CO zWF6?tDuIeEdUdy9F8!_IP`%EbUnj9X+!{6{QdaX>hF;GWD<4UNlWj6HV9Q>zRr(I){Z+t@&Whu~qm648gV2 z7XTRpkN*8J2q)s3@hy1C_!5w+COGvs^j*1HbTisx1rqv~l$b2uhHsw$RIC|Yg_nU$ zsdvFFbq8Ky<`p)Ws&#Xup zxDr?4Rd}`jj=o#3(f8=@>U-DXwRjy~5AW5mSnku`)4$R8QRHLVXoJe1VD*4-J6r_Ca#C1!!>SY;-+clTMuQ8B3ye^6J6LKfiVE0*n*}MVBZH6| zP*x608H-SsX~bgrN&F1gZ54hBKaDr*@9Q7v`&Z#D;9=nP4`JGlW-FzK$>;uMVbWo( zPP3LzxM_$QuvgONK`ugJzIDayr5EwgO8k=kk-p=7yaU_~JMn7(h}ZEh{01J6--5~c z4&Dv#d+@s;imgf7U>Jr$h6Ct1Y!WaxG_w)ILDYuB2rR%fE3cQL1-eYJk#`xE)qgMV zZg7{;X(%SzSp3wfQ?-UCh{>-YMdD-qD7+uhzizl(?ZfYx%N6wG7y5zlDl*#alaKMx zHTVENh(E!f;?MMh`X~CQ`e*v*b?ZSrL2Svvda~BKR8PKIm+Hw>>(WU>fF7z9pnLFa z7=g<{NdAsm={xnqIz*x&`wjnvPc=P-s|d&DM^m$V55b&^5Y&nY_)3=hJOy%6V2zJ1 z4HkiboE?PD`BL9$5FmCULBbFS;3{G_DlDm(0(mH=1d1v%L|3jBRlClzq)-#%mQab# z3Qo%_t0*(YT&m%B1=fi|z*lNm-1Vmk!)g_AF;Y$5Ge(2BVIC8Yehku<2&CSS0BHfn zVZLcCHJEm+KK(dF-X@_;+K{$*Hy**DY=Gkz{RDvHnMU9sok(OYIDXc@Z2%5(0f2*a zBi%_45=El*@AU8WAM_vflV=4Sq`v`YBHD%Aw$V9@DOH^5o9FE zCOP`A`fvL0`XBnA`d|7fia3f8MYx)bW_AJB1$>DU$VB*mGS`(NVi*dLdv2phrO3t7 z&^6QYXk9n1X2(aHi6Nljfdp7h)<^olOl0_8B6gjHMRpe@lV5@Vyo?3XY|>ipn<}!7tf#0YMeS?#1o9Bszy(&3hsh)4QHoko)S99;tH?&K zD|wuvwt9e~c6#C@sI|@_n8?1>ZDr8ltD(Z>O#@$CML}>}Z9^hcu9{olX+XA+txb{J z2IO9#r~@MxVR-{BJCf};h)kKevOz^V$S%l$Bd?O3IcAzN;J4x3 zaK4$5Hwn&w1~-kzAx9-G2s5^@1Qafqi-873jM|wZVljJ|e93TegrXjmFy9Qt$qinP zvQSajr^}jbl|DvJu+p%UL|2k;De8G96#d9hbdvl;Q4B@#btw9k{Mpp7{>63WK>)|H zVU5!hYsVlmPMvUlCkMW$SnWmEtvp*f1VYXO-O)j@8qP!g$rwVFX!TYyq_rtEbczsEex$q8bp}zf@q8Szn-FTQ1jX)+2K@F zm*)0(ef~g;maSU1Y1^)Shlq$y5uLl7cYfE1Zr!`}m^3WA-sU9W#mHENsS7)e%o`&? zKL!UpSb^=VOBtX!gNr^GEUvZgGt*#W7t_p{4+yfGGt24~VqZb~9t}E9W@Z{ByJnUR z1!n`;hQqQm3QJiEWm!oG989I4A*HgUVN%fXj4G_PzXR8q^T z+4}&>HuWFO0sR=vqM|aBWzeQ;9{{@G2^ttIhINp+OUyP5EG;p(WD0x1Txg8h5vKL3 zBiI>c(}`V@bY222PSmk`yGyrA8mD{QsAz-cjqVu}8yBC@E3sdC#=xODqehRLXzqxE zr7JEbBDq&YY(h*-L{jgV2=lE**PITBO@uHe`-`>@BXkYE-fPt zcA90twzysyNl9tRv5B$0dXIv}^+^tCT_HF+3r;?n0Vknk!7Cr)szI)li-_=X5vRE~ z8p;JBWppS!R{)=iAYqWDkQPD$7wm>$x$w0E9^Q{;de*}(1m?XocgF2WO77j~!iyQU zo8I(S*;kh;FM|DJ?ma2}dk;uW1Jx2n)c}<_jF9eO;@lk2%adEw3k`f0bBqmH)V9vbWF)<5k24!9{xT)PN zFwphsS6woscGt?g!-n_H8qsZJHmFJ#9850jKM~&F*S=wizheyW*RVjn`Dg5<1C71K zf(3C*Q1oK^LKs$HV@PiZA2lgVdVw$*lsRT>El^F)s>Td~%i||B*oRX!e#qpQxk*!# zgGp2KgUNC6F%V04L*{E|NG6SgT;fcChz{Ap_d@Q@tB{;>0J4COBLqI9^HDq;UQ>W{ zIF@D^T7}l2b#N@rL*YYdHbOXN6M7QjFI&)aa6rvA^a6Sr?MI)WQ{Zw=1ux&da6rs! zVAQ^kKgVA~Wc@fC3iCZ23-db|7TrOm?@40GSUB{hkd%{!N)Ft7L)d`l2>);=W=wX5J#D{cwM zBW5>;7azV2-vu@~@@@Hce0#nFQ0vHd;v;!j#`{uqAw?HabTLK!C`zHIKScv5N`>8y z{P}!W{sO)m-<|IPk^gA6Jfuv-D370`k1uVj{iAJ%Y8BK)>%&!nggH;$Db%xl=)nZr%J#)wx1);(^ce?r5 z0I)p^j0X$L=Yg#cYdCXDglDaZKaiTO%};C#3i$JwL&VTMGK;5%pt$AOs4d>o+;wB} zY*ofswmP&ApT;`0FMlBn+r@l8NQ>wXi4mz3rBjqa(Ljm@QItv1B@_*&2y~;N5Ax}J z20xG=#AouCKnleWekeu5D5{_c6z=ON`k11hC~iT;zErGYJ=*n5R&jsW@>33>pS+?F zcp_O;dPD`Jo(~CyW}0k=&FH^x=xf-fXd}(vyq2rQor$2)VS^z2o(IQS&9gcsSL<`8 zhr+h|uuw7c-eu2&K*+2*Qz}75PvR$2luc0( zV%~Mm6F#3gN+`<8)v}qRt9jnuuy?deTnzX}>w9;5X3heGw=8;YJ}4Q%^0NArrkj*T z=4wO#HKjAsFt@?;Gx>7ZMa&mLR!}h?;!F6;_);dNawr-_(P)asP&AgJaTJZGXu^8F z0+NU3@N@Zj{Cs`^5AdHz(IkqXmvSk(l%hO}@+stUz$9p4x&wj*%*d*c#2FZ+HMGP z3n@$ZTN~_k_3i(|dDFUZLF-0L`h)O8Bj3OA|@-q$5|CeFeQg2wEZ`QC_UG@V1V#6+b zg@2We#tw=~|Kn)9$-mXG>fPXZfvRgLnqA4iOCdw2fn@l=oUe0owF{a(U#(_*#2;kh z=VSf=Me`_{4~`T5Q^O^*fDKkFYq7J$mKEzMn`GU|VsgX;_F-@*8Mf^XtNO2bmX5$5 zrD$O#e~d!HPy^1tH#xr|R~yu9&U=PsT0=<#OLMfb(afTJlK&Or7W_~A&-^bG=@e0l z7OmocplC5g;CQ;0HId~^noHpqGr>=a!SmK}nlaW+VDVq%Yo#Q5H|NmYVN@IzjZpb2hBtMm#!ims>V zMv88xXbDA2*9ZZjh0s!HC4gJ$c8VUN=t+upQS@$u(GfbBqjN*9HfnCvT;^GfDqsgm zL^0V`1`7~m)#Swl6JgJBVoX2Cdt!bOW8sG+tOi*`wYzXHs{cs6HAm=d(z@vkw5BG+ z$4;G+lpouCT6K@qr*(lz>y|UnV(sb`7Yk<6ziOBHNPSw-CM`%>I%6LuKu_lXJ6h%= z^=ZYMv~D{it=O0Z_?Pr=XjzYhr?bc9Mr(G3&UL)sYA3$oWD6 zMXM-UP0<>P)#cte zLLICS`xDvkTkFGb?YgSJ4_jdMbcHY%q%-t0L_naEmsJV#g!vRbOwl8HkH~&MEuMM7 zbN2>JX0Kp`t`u~E3X3Rulp8X(0i|$ZQ&v-NXtO4rArQ1@E&8772gr1FNB{g$Kcv zE39FVVvT*u1Qj%SwNNcQ#B~)Oq3CIfo?%wymIi9XFpx`Sb*i4p+GE_|N&#BGS!gk>W z;YEs`qv&~xwo9J(2xZKDQFe!J{YM`}tD#VcXOD2O3vWGK*eb37^b5-eq;{74`}5 z3GY(`O2(@c?WE{6sAJn+f7Ny<7}@Wcfj!I*$DOHgfs0H@nFpu(T6G*`buo1cnC@SK5c-zgo=d+c!>lXi_Xz>q4>)~yEn4+jy_fH2i(I>WO*gmnP*ovaP z6z%(a`^0uoo7i6LAV!ECDSD5h4=DPOBFIxPMnvq)s2S}OLF(1cr}vE!8C|fwmhB!U zTdaLC_1d?eweORYAFr$}m|*dLn)daz?w_`O14M8%REnt-9jFw+x9~}W1zo(vTp$kS zY71)@^ujV`0M43HG!GW^G8XvCoyv~P=vVZ&G+?%L*XGckXOuMje1r1JreBnhklZ`D zS4?tpe6P6PvEXP-OsZD|l8B9`3t|(KViOZ$!f+FZien*Q4BI${i&^3baio|n=7^)j z(c&12KBee0iaw|45Jg{5beN(e6n#n2R}_6+EskSRW3G!hNt_JX+g-#ww(=ac;>Mt8 z{s0jckRv~uk)OtaP}5F47d8%ifBse2SPX$CD}q(`jWrj_0GXr|LT>Pam@$jF!5btb zm=?b{U%VUw#^M5sj#r8cDLT=-fU!u$t01f^E+UkoZy{z}C0;FFL(z8>eXl3}ElBJ} zu<;M_n8h27IC12*@Sp1D)Jo6RR!-F~hV z@1f||hVyBqIiG&X)yDoe^M&~(ql-$w&(xE}gCKdya$Q-RtP;T>UoEZ{*NAJybrgX} z{hcDPWd2-Dt`e)ohrrRw0_lHIbc$lqz;=Tp-ynIhZixh^K=|}Ez&|**W*36@jBNoJ zQ0Fp(fPUl0_@ww0#T><` zit8$}XG!R%fqZWmt=Uld;wUlv~x zcTmhzEKn>`Y@^stu|%=FPTVQJCcZB265kNtC9!V zWA5Ry@#8^z&B$X%>_LphOmfdm%Ly?*^Wb7g`8RvRI;dnQ%QR`hZuVzqZ-HAnSXaS> zR50%#7oVM52c_8DgPl5|k|FGDknkummkmpGg_9~Exi6eYZUXy#JhV#uK-^EUlVTUl zF7ac4`vLKw_=)%_J5I6`yp*%^ir7cClesXjh+>6eRU=>$ELaegnAj`2SA1M-d~9MO z#DNkL;he3g_})p;i3th4lM~`$XHHy9f*EUxiSHGim=u$o0G1`(OzzbqqIW_!rQLzcYYHy3HUNP}t_$C2Q39#sd z8B0#+4NNgH@I4b!KTsUdcZ{Dsc6?OP+^FfZ^DPQL+s@;lHoHx-$u@`0X;W;f&1KVIU!lk5wfSs*Tfo-B*3#Ar_8GRp zdu;7&?QI=w5w?!DPO$H=vkf5DlH%4Bx23o}#Ss*DqPR1~=TY31;%*f8pg5Z17>eU4 zPM|oE;$({ZP<$c97gL-<@c@d`D9)gG5XF~JJcQz56lYO9lHweSM^ikO;_(zuq3JE`fI1&bM{7U0~~G>kd02qioT(p0*fUtS!zKZ%eTC zvL)J*Y{|CXwm!DLwhL_+*)E1%lPR|TwgI+OTbeE1mSG!c8)VD0T>^V4huDVNhS`SO zvTP$@UuCupSSh9W8jA0x_)&^qrT9aNzokT^qzxrKDM_bfJS8DY7E^LJB^xPunUW7F zIYD_s`2gj6P>6-_<0xN3`NfpKhw>XJ{}Scjqu?_Fmx<7Z3O%WiN`)~LR6pTLD%?(m zbre)~VK)_yP~mqfYE>bDr6d2XF1hx{T!2zF8?Z!(^NMb;0gCU9J1HA#h06u&i`Lg zf>?!dm|J5?)T9IlyPciBonF|yzP-le1I~i_?{lV!O{I++expecHa`6e+0fKrHVx$g zaMlw;5!>uvA49jAWPASSk*&ir%K+#Z+i0#XHz~!Qt&t5DH*aL`Hu;Fp)h7J6*=rpG z*0bUGHtypGOp0*MSA6p+j!f^LHZ(nYRzdyIT5Z;pl&hsTzoz<|cC3&G98tq6s9*Pk zX5GDWwfyGS-4p=XaugOO?3_QH}o^CSv zxF}b}FRK;CT2YJorWeTPP4fLgZU1lN z>n{<;=f=bMqDdM0w>S!z8;WrEBPH6i3r zm?Yt-*Z6foT((lUB$aJ+L~nTaD(TotTs-yxo8 z408+T-?U!4Vv>ZP!x;WQX&Ic|1HRV3Q}LKo^8b|#X{!HDv-X!(G)s8fTbO*nF0g;m zS__f&Bvj8cEs^%NCKbpEo&DeXwBGV>jUv0$GbdC5+t|StHdv~Et8v$NG?^*<&+B!4 zW*R87sllS6#&pj!>B1h0|7ct^Ay^qJjVX3FDbC8(#{9Q#w~ln|IeZH2{hw_fApLhp z$C%V0d-*?_=k@zF>zcLtm_ayv?o*ha8FR8H+fyO9 zXzy+BWAAIf(0-BqVtYS(ioL%bysBjsms4Cp@ob9cP&}97c@)p5cmc(iSKHIf;G%ty z8C-eK zqr!0m`)oU$kp>%0?Q>Za5np|#$E;_rwBNvxsN1Q15u7S`mHle_HTG-m*V(V9_*#mu zqZmHiK=F+f-$e1v6yHMe5{hrFw%-^=;u4{Vg}LpwGbApxkO--J>!CZ6C}u}eLG0>W znEQW<#7c(5DvEEjkhtcINPO7-C_~~S6fdi^Z=iU2Gm*H-{*;MCNWugp-oYTX*+Alo z#z?gFw@~%GeY=UoZ3YtWI@4p;Gdt|N84_Q$@3g;Wf8D;z{)YWc`&;(6?e9>055@OV zd>_U4Q~UtMD=Ds|7+SxI;?>n~c)5{qVc!=<;(mt2H5L*fARR{H!{?BA7G&a=42fS+ z44H>UaMS+H8Ikyd{Uk%;j}))3wEsl$gUv+ZZ+6%)Tt%oI@(KWn)sP}#KgCic@I#G} zh!2NRCGnEYK%yiXNPOf>k6F(sQcFOhq)IMHliZR=@=89*F9oC)6vN!vNbzG7KTh!` zil3nPNs6DM_-TqaS4*u-Buee1_EHC~i`0=J@fiz=TPc2t;+L6FeB~Sz|MyUodIA(B zh*@t5Ls5zcC`t)ZFL*(xKTGj*#{2VdRD(QG^J}fGA-_oK2dI=Fw7soTg6Q`4=Alwb zlLi{7lrjudz5s$w$~5HTi;Ym};nW?=BU5~4(tz8MWD(DjvQ3PRG%&j3OqE#AjFSo& zM#oDNq>0ibX|j|nT?*&@PLc8{-bwLm6u(aKE{flv_)Uu6qWEo!L6GjQmV#l77MdEQ zG>c)h#=B=)nOX(Vk9YHIBCbqXy0!?gRGjVyd zbSpqgx&@NcFrsBvwjQ(kf}Sv_@Jht&`SE4@%V(e?;-e6d$1YAjO|h4EZ*nQT#c@hbaD{T6#E) z#EoGjKEaT9*g_&CQ-+av{2UU`0utHTW)iGNM=W8vgCVg}+R0uzAnr@^ZHFdWL;aTY z4nre|lCLYJ-4q{fCK~rj?=v*+V`%)wK;s7tjgSi47>(NJ7PW)YXC@dS-4?)jf`Jk8 zoB@o-P7B5_r5_j=zmmR|j!NH1$E4%Z3F%wuI|-ipj$(L+tSitxPEriI$Ilf1Lh-K@ z|5h#i7zX1nVKDx|!1%ibM$j}&FcSV882|TRlw|;;3`viFguy7Q07lsbC)C4>;y)?= z%Y28!p1fgz$N{+}z)@~N30En%q69S$j&eIW0)QpA2RIVQ>X)nJjsQnOnu4R7KW>pb zU+!k$QNDoTkqCfC8M5!chbK>mM>$6B3wV@cJhrg_GFiTq;W3vIf2Ev9iE$M7KOa3N2j%Guk5d^QTNrpO zWO!`ZBp!t-i(E)9HSq|pA;4p6hQ~q!k1bD&$GP%ihR1pGeE6A%%jJdg74ns`E>n3C zC2c8bM@f51I#3cpNk>XLQ4&c>XG*$M%U6Z*cwHEeH!(b(XWnZ8hOxgIb45zzQ$&WBBb~muNkzuh%Q&`mA zu&6yHKVw1>d_w@mXa>cN1{8ao7K+I}F7=42pd$C|+C(#nf|9JPT0#ltJ+`O8Qz* z{DO(b!}1aKqU1tKE;8RiG}e=v>Z zUzvSP1~dYeTddU#{&FA#j}FejW7?S>3$y63IpE~}YWS5K$ss!&4yQwLs1BDya{!<- zC>cn}AWAYRxrCCzlnkL{C?&%v8D8!1ns{`yF!AVU!|<48;W4`wk7Li_@qdp;2OK$D z>F7quh%g=kKmTLA6cQe{;0@Cd(s1b(6_ z$3;v$!bUQ=%8|mvBkT!mY{|IA-4?kFN2ZC#K?WYjfqZnN81ivUBN$uH40nuYc+7H) zaEx?h!|yGPa*TG2ag240qhtbQO`Al?WJ*BYxRjDSN~TbfPf0^>yZ%(oqGhtnGCg^nv39Iv3Hu+pJZ zGNYMryvlJcgX7f&92s}YB6y2qsR_ti4L}w%Kwf76vgovcT;Zr< zfV|Ujm*Z~7J&t?fN5AfOJm6UAsHCKXlFKL@%S*~ADW{}@lG&8Zp=2&4^Qs-I!hl>C z1|;m6r)0hb$jfU1NzVcDECBKu2FNXxEU*Ci{F!w}$IFf#42`c)var(eDkWDm6OFqZ zZ!t8!!O#eq2p}BaW@yx#LZkMM1;xD%<{TnR9pI;grFId6;@buk_0vM}fCJ6~sCFE5 zeB$`j@tNau_|3U59ETl89A8p$6(v_w0(7sXw}3amNYA zw_F#;_Y8`+SWsL_$sLrefCvpa7q$*>zy4o_t(_cT(TONo62_vF2P`@T#IqMAw=&TP zZ?IJR!uW7HohqQw3BHlrDxI*D-`+elI=#*S!xeS<0g99?16(^= z(!~tSXqrX2gR_%?Oec7G0GW54sRrwruFiNsrt<>$<-_jI9?mFdw6mu(#u@7bV+QQE zdnvh(lKUxnfWk4{1SDq_C95b|UF}RTk?Bl!_GbAMPIh1ov7*>yJtdDA`4r^Qb3*ce zFC?9CtWTvA^m;3b?HtB{IUIlqFG|)iV8R;!)AGMKM?1$dV2+{W!Ad76W!23D<|HS$ ziK?8FnV5WtiAiT36Iu_0S<@JpfkTnoN14F1AU54O(}X3Qa0js50LG0o&#;LeZuGqM z%w^8Y87xbkWzKSEg>$xZj&m;j9Or!J0!kjEp?4sli zO5UX8t!n4XVJPl&zQ%r#!}$h-;@cJ!_fP`iP4e;85TdJ%&FC?8t9w?PWrMCe}CD{PwQBVn$zJ^ly zO(Rfhdo5}yN~!@xWq<+2<7axxdL~oJVNkq88LSLZhAP99;YyY=LK&%KQ~1#h@*O4L zQ}P2PKT>j%!tZO4pDFo;l3%NpQDG>K3qx@dgW_+Nn1u8>bH(P-IVhe5D8iYFl}ZsM zzlWuy0tZs9mXDxH_5$BHTd(1*_WUVjwlbGNaSkPaRx0x-`Ky^wTnIakn0!>2sZGf# z2C792iagf{if+8#!qv6P4JH<^XISL%nI5yAxmCG`VR5N)n{vCdOj)knp{!8uRPIvl zraVu1f$}2dZIriDUZT8Ac?X4GVd0f(<=!wBSDLB0%4)zOuZFS6YgTG5?>mRZvw+3N z85TED9$eo>6kB0o{>@$T%dM zWrFUAUu;Tuv>^4S0;xpc^-;jp12FW%>U`S7N$Z(?%BKv5?(4q6&aR6(mdNN);qam*(M6l~u)%h^muGME*Pw zZK}(Vi03z!h{7|GDQ&|ZA32OLHK4XKP^p5W2vFJmOf^`~bWpniD%A+JquNQ0R6DC( z)brHy)voFVl#il(H066zK8EtKl#io)JmnK8-;45z)oOPWm1<8lMvdjVsPPPyNfs*m zP`)4KQy41ypF`#U9+hf;K&3i>^2uRTs_B4AH3RYNMfu*~@?mda%~<)d>QHq!L*_8b z_pMa3D1Tuyk(r~80bHr0n1sBDNl0}pc*c21RcIn?*k)>EN^BUJ*01xbm#XMSWI% zj`HIv{LBnLk@Ax${KyQSOZiJFpGWyAl+UkLw}uhNpT%Tl z@i|DI1xUgX-<9fK$_Fh-!g-&N52@~l7dS?|l%Hz6PXkD{*WxXVe5!uVAo&^P3oF$_ zly7ESTm4c!${_g_gQOAHR=;78gt&GSko@i*O|S_5p#Efn@}vRE5Ci2m1}KY83(7xS zHU`Q+)xXqJF3yEq*hO5tOK^eeaT(=HDg6EqUrzZ7%Fm|!9Lmq7{5;CfuXfo@P`aF^ zm~?3jlnX3S!db#$F?lYoeHQ$YuJ(XQ7wGqwhcW5u#I(vLHZX+2;kv-p9nk3NM)@l$ zT|Fp&W%C52E5;QMpmN1BG(s@@jB#y?R&UpZ1`u7~9RlgtoT#>IfNLlK(Us~-bEUg7 zTmxN$T$!#*T!US(C48)PHY*!A~#Wk7% z(TZyGw^4otM^IA5c+U`y2N+$T`N!bgZ$PSWpxTDk@-ah#=TS7*Vl+0u~gNZSOVq3RqF2Vuh&K zyI8RI-Zj<~Q+&S%m|T;X{JrnGS?gWz%DU@gat(9Nvw!=UGs6JG-(Dn>9ly~^nIaul z$2sz}>=VDL?YP@6db$4yGI_h{Lvx>(vs`&Na-O6^G zbjRyj70)`Jb3E^O!SSNwCCAH-R~)Z8UX%QGH;0YVAxS!Hk`9}t!xrhVRXS{w4%?+e za-!pntSa8gs^SB!iYc}#?)a^Wd;YEBKTyTDS{1*O4&T_S_@h=uhs^)+dG_z$JVhsT z_7qWPCmnXi>9R?OU7vP!)MeM@%qXHRM@A7-xw`3iL5Qm(Kh*t)@B7j9%_b%k_=dDdG*S5#L_S6o*@S5i9cmktM{!$IkANID#r z4o9TJQR#3@Ivke{ClYm~GmEGzn^{C%1+9o_wj!STt%&FTE#m*ah&p$QsH-g%$+veThcbNY_NGVq@uWI!@PAI-L2$DthZ$WmeHAql)QTsrYdK zs(AL#RUB`tRa;$$%qq6esG|0T@4vj2?KVNW-dYudbyi(hU5KumuDh;>E>zc3*GoEF zln$4q!)57kMLJxS4qPR#ONSfM;ih!Bm8k2JRmFa~h@5RiDP4c9innc5yeA#_lD$!T z>iFc}F8%{u9I17YC---3T^vgnb>r+DG}7U&_97&I@Wjz#+v};i=~^3kR(U^8$8-A! zpV-FPx_R_UH%I$4hHps78LykKy$Jc}qc1|{?p(sd<#$gTb#c07nZ4vy9xjnjd92pW z&v=A?^rtr4vL@=bXuVvcTdP~A`&zeNw?Vg2m!#XI& zkq&RA0}m13C+fCl^)e;*5#0`Yxl8Ni54K+Zqb>;!^!4=(^bPfm^o^xbNGgS;^0`!s zNTsM$ib2BNX-uf`Dn*4RyIDNQO%6(!rBlQC^tJy!J zn&m&?8KOQ$&ySe#4Hx=h8D*^SDYqG|=eN2i>c{BE>c{EF>nG?Z>L=+Z>!;|aO2tJg zm84QxDy~wgB9*FAsU{V!eQr{zk*J@ZRmNGF-}j@Rr(@}mzx+&FpQPWc)o_zkYRBofNQJK`^M0ND=7Ol8%yi9zqQm<~{r3LB zw)!UPcTg#P3Qs7Ny4n*;{Z5`xDjpwwLa7Y4-E5zpA1~9I$jd`qv9&K{>-jkXF0A}i z_#ZB;w%Z)nU(lL(LZ7BTsXwJZtv{nr*Pqp&)1Q}0eW^5%N<*nMk_uPJCQ@lCm1a_D zE|nIE`iogjyqa}cys0(O_N8ovPs}pEMx*%uds+MkE{o5#CVndw+n2KS{N}r5IjY(@ zXm~q5KE2WY`0Z0|{g3*ev@X7rN~<{i&rQ-? zrP3=ovU+96X~_7Nq3H%*A)<=`e|Iz6ZH$J`>7v18FdHleCqq6%enSC6K|>(}56*2R zztLN1FO?2b=_r*>Qt2#}K&f<*N>HMqNM;ueB@88V92TVvUuazn&ib5&U*oNWO5Syg zi)hb(%lN-9qoFEgH1H^8&3cSB)cE@{8axbMl+oZRm5?|Czu~XjCzi31p($lFG}bPR z-L(s&p_z7J?D5eHqeFNJkI#SinYO{#;Gc1YG_=lWWiPFj%`(c|<4v!{?pdwum92yJ zV>O0wt(609t&Em-c{6{kMj85VEB}F34%J#YOe%wHt(3GfTfb}(8fnKxjJK}U{`~DC zX&7hVd${8a^|{Pe(qbiJ@2gtTd0jc6t7?S91*uGP}r2 zJzOD&eada(3~RM6#v2k0%M8m6D-0_Qs|>3RiH0>&iIocXiV;#7DV0%D87&p=8Dpg~ zPAcOQ4ePSHxH0q5+OS3I;sje4C;j$lJ^kM*{sUFqr&V#kR3_T0c!(-~{9X8Lmz^|& z_Lh)_lTw)+XE-gDDW6!ya|Z3F{ten&LMl@;E|J<>LMqcfeu=dGz@g!WA>);z=>}dY zqKz}OD`UocLMqe#vcV4xueCNlGCVdsF+4RqGdwqZYj|OJY2X>>S5lcJmDy66BbB*Q znJ1O`QduCCg;H6RXn2#=#;o^*G-&S$sVug&ap`YuT>ftx|MzV)YVQeY)I`Dkj;gxcRp#CjVQ-f1rx3v?}^aWs|Ln z{u$34?YrctYR_-B-VvLc@yBnE(8i9&&RP|D{=X&8$n*cLpIAk!u^Xi_cGWJ6+qBD~ zu{+=RsBGtphJUJ}K8NjfaAO~1-^?zCXLK=z7k7+2@#JOe?SHzNt&0PUQtRSC;~-E~%tSWw%uJNM)~7_DO}uh69Pl5m{Xvql++(6Qzt3 zv@RaBb&)T1Kb8t#%$CZ@f6Mp}lyRj|VxL$jdKJn2FvYF{XfH-4{O8*hK~+L+6! zgh$b=FUWjhYvp?r-%`XYk0!f}R^Hbxliz1tCU5^$D@~u7jI`2}!<5sM%aq%c$CTIP zXwsSVCWBNSO68GMxY|9D%2TPZqUTa!MK7fCGSOtpY^5n*=4;@lLRu?d*;@JLx7Wab z{I`_<`%;?9Qc6=fsl3iArK!T-mC{tzq`e`eshU*Y#+lrt^4+JE(&TQcOQlTO8$v2n zDQCP%dqYU&hmT$%9cHqL0`JFbr=?R9f*`Ik*>Y0};h(&S@mW%4!o znOd9tO#!AhrnaVbQsI@-U!?M@RNhNfNYzfN_EOCzRR^gmiKY%&P0V^jNR#%4kgA&1 zM3wK8%X|%7&HHZ?|A8iIZwP6MkZN{Y6Z_Ld(|~Ld8mWG!y}*<4=WkCRO);inS{sK- zHD{b@xKwj}VjD-AwD0UTjiQYzuV~Z8v0Nh6JRiM8s4xd1 z>6YoX>5l2H>7MDn>4E8?R7*?s3#rn#GEyxo)pAlTFI8u$R*-7NMAPG}WZUcb#=p({-#62&y*Z?rhptLl%`|Io4rx~O1vOHwtTi*^Pd>G& znzh^J+~&M=)0{`DRpQK!Qmy)F-837`+S@~#O;v2N;f9n%%Fo$zyW zv5ZQZX*79iQc1H@MkTBNRVB?|m@9~~E6iV-%b3fW%bClYshqo1>qyl@s$Np9FV%)C z%oWWp=1S(uW><3+sWz5sTd9Uhb)Zy7NOf9l`44`Bx4A~fFRN8+2kKgV`mgBC_tP}ktUIM1gYyI$t8Jp*-( z{`+Hpu$GS}Z=8AbdVxB>|KjLv7ko3% z&?r#X;{WX#KE8^~Uq@{AH@6dI6U+hTHfB24M5;}t+AP7`-rT|5QL4?Q8X(m++Anb} z-&QM$s}C*Vx4dV5bBJF^Z~i@`YyEI*|2`pMQO(1xLE0~XkNo(D`$U8c2o3Ka**Ykq zdq~zH>h%taXS|h-Ias?`Sf$z`_TX7_H~Sd-0m9MT-Q2?*YVO%C zG9wcqr0OHpmQwYWs{cQ6Un$|aKRLE?lQFh;5HW|D`-!sg=5TXgskV};Z@f9e94S>l zskV+SACNh*fXvkd>I{EgT!#-f>Wr8mCYlGEhXm>h|86vY9Cd;@#ynI^{l7jeP-mtC1O3#Bc z8vMVx3Tv$$QS!J`C)=(rGq3zZYgd_9OEpBQ-L!rCNbnDPYCFo;=JmfXOOkoh@Bd<} zdB=a+lVbkngZ8k{Udzop&AZI0=H2E!Qtd6(K2qf#++V5#v=sl}*{{ReejSl&_=o#- z+)Af@o_kXT9|Eou~j2$Z*{=MyoK+Ngp^MBZ}3ud03a;b^>iyhjKvHCC!pJNJKe z8GoUT@}*PloF=C|hWv{CX2aEw%kWQ_8kco@&PeAif!ILtPNpUnJl!0#^K?=3>A z!=yU=FUP9?aICFEBBOXH`^Y^e>l7B%!rM)JFlkFpOI`+R$z{oH;aTiRsqz{7=md+S zMQ7ppCC^ExNOh`q_K#f-|7X{?|L)qHaow^wv3Zt!QXTuj=2;3_3Rwzkn>RtKJUooc z*u4McGb1)F^#^|+|NORz7Ps(onDLep=5VP_R+_;!oTrE{BRV~#ld|EhNsxzcIQ>tG{b=GoA4NFZ+EsMLQ zwp3?Jb&gc$N_DAJ^?VaYw|wZ#{QEm?kR|x{ ze-UEoF3QGPx=A%5&eB7w%YXL?o25_YQ}|_py2^u`2WiiuoqLCOuUWBTjfT~{8oIdF zbFSo8wSjXL*M?P{y=r(>cXn}W;Obe~rJ83$ugbPH_O(Q4=it$0MVy68{YtG#`Tz0~ zka;H^s7-W`R9D3wJSQCOV=P1L2Uub(L+$d54VFF@8K~2R4C)&c*0ps+P*|ijBD8N* zyU?(%A%lE^qFBe8Sn-)umq~SXx_vpzNa1MrwPlpObD+-A+pmf3!|De`1xYnAcHc&%q`FXa4YHEhuL1di?RH5cR^ttPvqm{0C!b-yY#%A(5ed z`V&4pqEgigRjI=t{`O;kQ>W{IsID2ycK*Xh*R1B^=H*hoVMAv(*XmWAt5kKZ9s{5qMzZ_U*IcPa#Ic(uc+d-)wlImfp9?|YSTJ1coQK17uqoRF7`i4hDwGNHa z_8{M%{zE`WL?oY5e(XQB?3?u&ugjlqRWDq7okjc4e*OFO35tl$ET&&bckPqqNPn;X zp}o5XRB~-t$;CzYIP)%>E}kY>&RWh{&P(;ER8LCvOswsl04h{zBEhuMa>K&Xic2+(HEK&M{iiIyJGD8wU=K=-=GL>vjcTy z{{Evg&k+#RyMIWlqPF|#1Iv?-WLCm0&n(ZS-D;_xlIrQ$@>Wr_l)WgLc@cT#U~Z|; zb~dTbnr)NatQQR5~p{aUx} z;9oMVfA8MudGb2y^oF+Hep$;YY1Lk$=;-a|8O3!axPMegWUPH`zSwN-{Q6t1At7Bu zx~7{gd7bhXY~$@$p;t(BWPARZ6(}xWtV3LZSS8jN;O*BiJS^(m=S7MZ%Uire$x@~H z8^6%OA)KjO!`?yNwNum&$-D}ONAMrDOIZnz(wQ%d>&NM0v&X8jPV}~dXJ2~d7abWD z(#OAvc2uwM-d)e+EmO7}KfIH9p8p)_gV>hX&$Ot{l?olmwx_o^4Gk2Pp#Ey&SrN7i0Z3Xf>gm3v5Nx6lw; z=k(iuZ5`b=S_-^DlgX38xyI>Ie{ zT6OmJYtcU{h%2sVL_|<@f{(8^o0swLv?p_|+DtQ+!Y%v*xB&lgu<>oYKk~PHbi4Lh zn;qZIoB!Lf6PMo)>eDr|Sn-{?`A7aDt&i~b@;j24r` zJh4D55=+Etu|aGX`@{ipNE{Kz#0ha$+z|K0x8i5JY<9Wr9PRXWMmw`z1v^(eA3I;W z)^;820_}qAtac%Gp?1CO`q+ir^|KpmmuPpu?x@{yyEMB~b{Fg}+g-K0Zg

j@>=G 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�jKnXL>mI_r*f1RGVR{q5 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 diff --git a/Example App/Pods/Pods.xcodeproj/project.pbxproj b/Example App/Pods/Pods.xcodeproj/project.pbxproj index 88c3fa5..b023b58 100644 --- a/Example App/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example App/Pods/Pods.xcodeproj/project.pbxproj @@ -7,170 +7,159 @@ objects = { /* Begin PBXBuildFile section */ - 01CE18135A0681E4396EBDB362ACE617 /* EmojiPickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1F5DE01D9F18FAC7C6BB661A63AD74A /* EmojiPickerViewController.swift */; }; 04631E91E77F1BDF6CD1C6FBC1E53AEA /* Pods-EmojiPicker_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E41074865C769D58022F8DB9C2B17FE /* Pods-EmojiPicker_Example-dummy.m */; }; - 0CE561E14B8145B36CB977877CDF2D0D /* EmojiPicker-Resources in Resources */ = {isa = PBXBuildFile; fileRef = 72DF50AF5F8CB0E66065910A9B57FFFE /* EmojiPicker-Resources */; }; - 22E96A696128D9F7DED2BD3D07A7830F /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 82824E96D94B60DFCCC919CA9357D85F /* Localizable.strings */; }; - 24E04A3A64F70E7653F0366287815057 /* EmojiCategoryIconView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8879BDC3EB41DC795A9B8BE8EA282B75 /* EmojiCategoryIconView.swift */; }; - 280AC1D6D6D3B6459F875BD92F7BFC7B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; - 30F9341A544B39EAA04F79E1FAE3B2DB /* EmojiCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7C5B458D7C95530B40DD2CC2261B7EC /* EmojiCollectionViewCell.swift */; }; - 31C46961416CC20E4FEA133CF9CFC302 /* UIView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF49622FC2DE4146473AEC56B81EEDBE /* UIView.swift */; }; - 323D83ECBD008CEA1B50D539A7740D1C /* EmojiPicker-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D90A7FDCE48F328BF2508160BFB2D016 /* EmojiPicker-dummy.m */; }; - 39992CFE425CED16527876E1E7B7FC68 /* ArrayExtensionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DA1561688A001CA1B9E6CFEFD015092 /* ArrayExtensionTests.swift */; }; - 3EC9270CA83557592712F214B5C0A821 /* 11.json in Resources */ = {isa = PBXBuildFile; fileRef = 1F33C9D75C9B8F1A39428BD85E649B2D /* 11.json */; }; - 43207020ADD92B8D32FAC8F33B5CACFC /* Array.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6212C4D105F1104E02721146F54CDFBA /* Array.swift */; }; - 47CAFAD474405966D4BC34DD0E1224DC /* EmojiPicker-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E70656411071DE48F4279E83C2B49F6F /* EmojiPicker-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5127F1E1AB8B93077A8DDA2DAE589E59 /* 5.json in Resources */ = {isa = PBXBuildFile; fileRef = C46E2363E33E965489D5A57B23D93595 /* 5.json */; }; - 5152326EB0EB27252099A3813011CF1C /* UnicodeManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 903FE5FB0EA9B07D691DF634ABC63A9B /* UnicodeManagerTests.swift */; }; - 550D935013808A6499E6DCEFD5FE5042 /* Observable.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE2E37741C76BFE73FD65AA92437F6AA /* Observable.swift */; }; - 5553ED817614810334EE62F20D64BD0F /* UIColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F992F256D5E5DFE5DEC61D79FDCB66F /* UIColor.swift */; }; - 5898B4AC66F1994436E68609725C328F /* ObservableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBE05E23BB1406387B8BC2EB5A4F6CF7 /* ObservableTests.swift */; }; - 5F1EE0505CBBBCF21044D00AF4799804 /* EmojiManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 907B1D56EEF86A46BFF5B9C4D4D47D22 /* EmojiManager.swift */; }; - 621CF41663DBD1E9D7FC9CF826C5D5E9 /* 14.json in Resources */ = {isa = PBXBuildFile; fileRef = 2E62F37B06E64232A49BAA17099B3EF2 /* 14.json */; }; + 1BD5BD4A3B12A75F38ED5F2FDB618219 /* Bundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4B5A94313F3C88B78D814E6A03AAFAA /* Bundle.swift */; }; + 2197DB04645805BA239B5D4B1FE84C3F /* EmojiPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 720CFC2FD0DD124C1A39FBE2EDF9AD62 /* EmojiPickerView.swift */; }; + 247A19BDE3664944E16330C8ACB4D375 /* UIColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 114276F82FE507457E55E8C1D41F5D8B /* UIColor.swift */; }; + 2B20811BC07717C26B5991875DBBCE72 /* EmojiCollectionViewHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA72DFECA5CB6E9B70E1F4BDB94E5417 /* EmojiCollectionViewHeader.swift */; }; + 37BCBFD2539F182214A51248A2ED5DD9 /* UIView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67C9B3AAE49C37B7CBC6BDCD2EB2D00C /* UIView.swift */; }; + 39A361F6DE05727DD99CAA94959CB491 /* 13.json in Resources */ = {isa = PBXBuildFile; fileRef = 0EBE9A1E3C736DF95091350631B3B8C6 /* 13.json */; }; + 39B099AC152338C3A617C77C5C3AA622 /* Observable.swift in Sources */ = {isa = PBXBuildFile; fileRef = AEFFFAE23803201EDC2F47CDE4444F3B /* Observable.swift */; }; + 4A24A8FB5C32E22034B7E37289C617FA /* TouchableEmojiCategoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7CB447BBAB30B870FB199D250ADA8C14 /* TouchableEmojiCategoryView.swift */; }; + 5152326EB0EB27252099A3813011CF1C /* UnicodeManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0F3B19ACABFA2105C91B7A783696835 /* UnicodeManagerTests.swift */; }; + 57D61917332D126453DBF79EF2FFDA6B /* EmojiCategoryIconView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E766211B93AE00EA5820C6EB7D4FCBD /* EmojiCategoryIconView.swift */; }; + 5898B4AC66F1994436E68609725C328F /* ObservableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92F4AA51785FB6B8BED39C74FAAE7F37 /* ObservableTests.swift */; }; + 5EF4507FF0C8F6AB41D32B2F83F98E19 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; + 6C47BC3254E7AA5CFA2B1EAEABCF99E8 /* 12.1.json in Resources */ = {isa = PBXBuildFile; fileRef = 812F54CDA56ABF6498E0999230931BE0 /* 12.1.json */; }; 6CCE6EF5DB6DD0545F70DE1C6296AF01 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; - 6D56A7DD06B973AF953EA59903AF5339 /* EmojiPickerViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E48244AAE4FF8A9F8B47C06FA1E34F18 /* EmojiPickerViewModelTests.swift */; }; - 700F13DEED178BAF6B299765FD6A5378 /* PickerArrowDirectionMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5751A5786A931EC7567038A088455519 /* PickerArrowDirectionMode.swift */; }; - 70EA50369EB2C2E5749ACEC2433BAC09 /* EmojiCategoryTypeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3443B263837A45DEFDD8C8C9F4F5C54 /* EmojiCategoryTypeTests.swift */; }; - 72A53254B374FA721A5528FD8B9DAFB2 /* 4.json in Resources */ = {isa = PBXBuildFile; fileRef = BA994DA65C123AF37FA8279509B535AE /* 4.json */; }; + 6D56A7DD06B973AF953EA59903AF5339 /* EmojiPickerViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E04078FD88DDC343C6B8093D59A56C6C /* EmojiPickerViewModelTests.swift */; }; + 70EA50369EB2C2E5749ACEC2433BAC09 /* EmojiCategoryTypeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A2F202C903864C3B0EC32EFB0400CCC8 /* EmojiCategoryTypeTests.swift */; }; + 766BA8E5F480B639266CD03ED1534C9F /* EmojiManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79D9DA9D7177F959D8DE47C1CC0F8135 /* EmojiManager.swift */; }; 7AD411BFDBD6A713CE09B1E0E825F163 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; - 7D83F5C1835BAE71AF7D97A8D7BAA86D /* 13.1.json in Resources */ = {isa = PBXBuildFile; fileRef = 0FD7827F050C421AE77FDCB651582ECB /* 13.1.json */; }; - 8689D7DBBA3B233581245AAF6DF5678D /* EmojiCollectionViewHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8889F3A0D04B56F6EC71D4C6C3A21BD4 /* EmojiCollectionViewHeader.swift */; }; - 932DE79107AF184DFC7BA2CFF2E28E0C /* Emoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = 240D4E00A0AAE4CD98BB978B9B2C917F /* Emoji.swift */; }; - 96D990C818F53922131CA4514235903B /* PickerArrowDirectionModeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 90B315A6CD78D4A3B8D8CC0ED53DF4D3 /* PickerArrowDirectionModeTests.swift */; }; - 9A20E3A7C10CDF46109B92F331D4A56A /* 3.json in Resources */ = {isa = PBXBuildFile; fileRef = 3A91B05AFF733F0E899A05C79B76EEF9 /* 3.json */; }; - A05E77D1B14C347E5AB8487F18BFD8D9 /* EmojiPickerDelegateMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 124C5A4FDD8EABCF4D66E9C363750239 /* EmojiPickerDelegateMock.swift */; }; - AF06DA78A59B238F3879F20187862449 /* UnicodeManagerStub.swift in Sources */ = {isa = PBXBuildFile; fileRef = A085A2016956196B512B164523C43D02 /* UnicodeManagerStub.swift */; }; - B045B4E84350FDFE9FD80A84483EE61A /* 12.1.json in Resources */ = {isa = PBXBuildFile; fileRef = F2D5E0D349158FFD1DD20517789E596F /* 12.1.json */; }; - BCDF8F7DBAF99753B3AC59C68D48B7C9 /* 13.json in Resources */ = {isa = PBXBuildFile; fileRef = DCD95B2285CDF4D99BF296BA8E4349EB /* 13.json */; }; - C450FF14C56765B86DC2D13CBAC3ED9A /* EmojiPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55989551A6AB676670767CB875552F35 /* EmojiPickerView.swift */; }; - C9022C63FDCEECCA8BDD36C523E809E3 /* 1.json in Resources */ = {isa = PBXBuildFile; fileRef = 03CF0F5AF189C54218CD413FA6013B48 /* 1.json */; }; - CA822EC10BF06D5A3B39D61185136B3A /* TouchableEmojiCategoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6B406ADCC24BF6EAC709ED45F73B0C8 /* TouchableEmojiCategoryView.swift */; }; + 80583C4282ED2C22DB53A74A325B858F /* 13.1.json in Resources */ = {isa = PBXBuildFile; fileRef = 7C4D5DCE0488D3573527E22774645B91 /* 13.1.json */; }; + 81DF012C9C7B4929C30D997DEC559A40 /* 5.json in Resources */ = {isa = PBXBuildFile; fileRef = CEF7819C61FF4536C5694B49D95783C0 /* 5.json */; }; + 8619A7D052AEB849AF0697A08624734A /* EmojiPicker-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D84E62111239C369B0B3D2D6528BCE4 /* EmojiPicker-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8BF0B9462689A61026AFC4467CADC730 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 21D9439D328CFCC75E465FC9398F375F /* Localizable.strings */; }; + 8C34782F7B4E11F6091E4EED834FFF63 /* EmojiPickerViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B6B85C5CC79322D762618868B3C370D /* EmojiPickerViewModel.swift */; }; + 8CD8136D841F09BD6E18607FDA16042B /* 12.json in Resources */ = {isa = PBXBuildFile; fileRef = 241B0242F67E40FAFB0CDFAA9808F602 /* 12.json */; }; + 96D990C818F53922131CA4514235903B /* PickerArrowDirectionModeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB350980F38E26743F6B7225969FF89E /* PickerArrowDirectionModeTests.swift */; }; + 9A2782112A50E341AB7BC2FB1BA4D9D8 /* EmojiCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB234B5215B8544D6C7723510CCF6C9B /* EmojiCollectionViewCell.swift */; }; + 9C0A21496D6D1C6C237473823DECF7BD /* EmojiPicker-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A99FB808CE529FD4F9FA379DFE1BFA7F /* EmojiPicker-dummy.m */; }; + 9F1900612EA3442E85BF5AD3C26549E1 /* Emoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A2C22EA600F5B5B34E546C1FDBB9A56 /* Emoji.swift */; }; + A033F36AAEDA625337F68F9755BA1D77 /* Category.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96A6D4A422B77C24D7BB3A2F0DD6C360 /* Category.swift */; }; + A05E77D1B14C347E5AB8487F18BFD8D9 /* EmojiPickerDelegateMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76E46A79EA45CD3030E4DDBFEBE70841 /* EmojiPickerDelegateMock.swift */; }; + AD7FF7F0EC95BD3381737E120FEC7847 /* EmojiPickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E70F3B23911192E9F0C8F4179B2AA7 /* EmojiPickerViewController.swift */; }; + AF06DA78A59B238F3879F20187862449 /* UnicodeManagerStub.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78B4EBC1CF7C118A0964F15037F23A49 /* UnicodeManagerStub.swift */; }; + CB6A01F77F3D1F5FBBB5585D5F509DA6 /* PickerArrowDirectionMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B3840BE79F07D4F4C6956F8D4AC9D53 /* PickerArrowDirectionMode.swift */; }; D87D90972546DFB456AE2B38379D5E2C /* Pods-EmojiPicker_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 509EFFB149756F700CC3A368970476A6 /* Pods-EmojiPicker_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DD84C1441302A82A407B2A06C8E2102A /* 2.json in Resources */ = {isa = PBXBuildFile; fileRef = 04FF92E92EEC4FDA4596BD0004577A36 /* 2.json */; }; - E9AB107B73CD1C08CDA6859CABE82CCC /* EmojiPickerViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63D5BCB7166B7E7B18957D3425129C8B /* EmojiPickerViewModel.swift */; }; - F08C80792981B7D100634E30 /* EmojiSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = F08C80782981B7D100634E30 /* EmojiSet.swift */; }; - F08C807B2981B7DD00634E30 /* Category.swift in Sources */ = {isa = PBXBuildFile; fileRef = F08C807A2981B7DD00634E30 /* Category.swift */; }; - F08C807D2981B7E800634E30 /* Skin.swift in Sources */ = {isa = PBXBuildFile; fileRef = F08C807C2981B7E800634E30 /* Skin.swift */; }; - F35B8843F9FE8DE3E104327AD0EF800E /* Bundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7582C2190BAFE180228F25FDE781A8FE /* Bundle.swift */; }; - FFDAB80B3AD4E8527344BFBA2E36DB7A /* 12.json in Resources */ = {isa = PBXBuildFile; fileRef = 7722AC2BA4786E96192A727139C56378 /* 12.json */; }; + DB0367E451FB7464DD6F3B5093D27F37 /* 11.json in Resources */ = {isa = PBXBuildFile; fileRef = C5D2F51818AEEDF0C94B582F2172F367 /* 11.json */; }; + E560B1C76BE6582D935CEEA610D0BABE /* EmojiSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D79E814DBFF6DCDB0BA71871674AF8D /* EmojiSet.swift */; }; + E59995021E47D74EFBCD568752B8D0D5 /* 14.json in Resources */ = {isa = PBXBuildFile; fileRef = FF73A55A4418C718FC9D29FAED96D71A /* 14.json */; }; + F1DCE6CFACDEE599EC225E7AA0E8C7EC /* Skin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1455D08D7446DF360DF602A496735D08 /* Skin.swift */; }; + FCEBE070BE2A3A9DFAA44C54B933EB3F /* EmojiPicker-Resources in Resources */ = {isa = PBXBuildFile; fileRef = 72DF50AF5F8CB0E66065910A9B57FFFE /* EmojiPicker-Resources */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - DB0DF625F433896F640FB53EA8A11975 /* PBXContainerItemProxy */ = { + 01D6A6A189900C400738DC5FA834B097 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 74B1BE29E8F4437DC0A1829FA5157AE0; - remoteInfo = EmojiPicker; + remoteGlobalIDString = 3DA7DB1A9F7F32C07F0F0F8CD7CCD936; + remoteInfo = "EmojiPicker-Resources"; }; - F2C685652BA1B40FD9C5295265812884 /* PBXContainerItemProxy */ = { + C2A744C7E16EC2BF8F2837AC2D85FF1D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 74B1BE29E8F4437DC0A1829FA5157AE0; remoteInfo = EmojiPicker; }; - F503495051C6BD29DA615E2D0BD6F785 /* PBXContainerItemProxy */ = { + FFC9340878559A0A4A5B8EE0EC5B64BD /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 3DA7DB1A9F7F32C07F0F0F8CD7CCD936; - remoteInfo = "EmojiPicker-Resources"; + remoteGlobalIDString = 74B1BE29E8F4437DC0A1829FA5157AE0; + remoteInfo = EmojiPicker; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 01BF62AD9E1F740437F682BD38F572C0 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; 01F2518BBC39B4BACCF61C2B5E035BBC /* Pods-EmojiPicker_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-EmojiPicker_Example-acknowledgements.plist"; sourceTree = ""; }; - 03CF0F5AF189C54218CD413FA6013B48 /* 1.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 1.json; sourceTree = ""; }; - 04FF92E92EEC4FDA4596BD0004577A36 /* 2.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 2.json; sourceTree = ""; }; - 05313DB19F1015F7062F82CEF48A0868 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = de.lproj/Localizable.strings; sourceTree = ""; }; - 08DA8F4887EFE486D534712C71E8C5CA /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = uk.lproj/Localizable.strings; sourceTree = ""; }; - 0FD7827F050C421AE77FDCB651582ECB /* 13.1.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 13.1.json; sourceTree = ""; }; - 124C5A4FDD8EABCF4D66E9C363750239 /* EmojiPickerDelegateMock.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerDelegateMock.swift; sourceTree = ""; }; - 1DB8439774A04631978ACC9901DE195D /* EmojiPicker-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EmojiPicker-prefix.pch"; sourceTree = ""; }; - 1F33C9D75C9B8F1A39428BD85E649B2D /* 11.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 11.json; sourceTree = ""; }; + 0A2C22EA600F5B5B34E546C1FDBB9A56 /* Emoji.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Emoji.swift; sourceTree = ""; }; + 0B459C9F29B2A83DDCEE596B88267CCC /* EmojiPicker.unit-tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "EmojiPicker.unit-tests.debug.xcconfig"; sourceTree = ""; }; + 0D84E62111239C369B0B3D2D6528BCE4 /* EmojiPicker-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EmojiPicker-umbrella.h"; sourceTree = ""; }; + 0E766211B93AE00EA5820C6EB7D4FCBD /* EmojiCategoryIconView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiCategoryIconView.swift; sourceTree = ""; }; + 0EBE9A1E3C736DF95091350631B3B8C6 /* 13.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 13.json; sourceTree = ""; }; + 114276F82FE507457E55E8C1D41F5D8B /* UIColor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UIColor.swift; sourceTree = ""; }; + 1455D08D7446DF360DF602A496735D08 /* Skin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Skin.swift; sourceTree = ""; }; + 1A73B69BB08091CBA91E2FD3EB286619 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = fr.lproj/Localizable.strings; sourceTree = ""; }; + 1D8AE8E109045877CA5D7BABE5517C49 /* EmojiPicker.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = EmojiPicker.release.xcconfig; sourceTree = ""; }; 23BE90F951883808EBCF02CDD69ED1AB /* EmojiPicker */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = EmojiPicker; path = EmojiPicker.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 240D4E00A0AAE4CD98BB978B9B2C917F /* Emoji.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Emoji.swift; sourceTree = ""; }; - 2E62F37B06E64232A49BAA17099B3EF2 /* 14.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 14.json; sourceTree = ""; }; - 37FB6528DBDAE7D16F3B1D8ABD32F653 /* EmojiPicker-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "EmojiPicker-Info.plist"; sourceTree = ""; }; + 241B0242F67E40FAFB0CDFAA9808F602 /* 12.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 12.json; sourceTree = ""; }; + 2D79E814DBFF6DCDB0BA71871674AF8D /* EmojiSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiSet.swift; sourceTree = ""; }; 382524B7DD3E7F2893D02267E796F68E /* Pods-EmojiPicker_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-EmojiPicker_Example.modulemap"; sourceTree = ""; }; - 3A91B05AFF733F0E899A05C79B76EEF9 /* 3.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 3.json; sourceTree = ""; }; - 3E9A64B82E30FC1A421C182E3CC275A7 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = tr.lproj/Localizable.strings; sourceTree = ""; }; - 3FE4A3FEFD10B23603166704EF2A70E7 /* EmojiPicker.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = EmojiPicker.modulemap; sourceTree = ""; }; - 416AA4CAE6DAD3FEAC111D71D8B24146 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = fr.lproj/Localizable.strings; sourceTree = ""; }; - 434016F65810EC8B967AE9D9C3555AB9 /* EmojiPicker.unit-tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "EmojiPicker.unit-tests.debug.xcconfig"; sourceTree = ""; }; - 44E1999FFFD89E8CD1820B2B48915806 /* EmojiPicker.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = EmojiPicker.debug.xcconfig; sourceTree = ""; }; - 4AF011DA7226E834F1B698924076958F /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; - 4F0E261765733138900691A2A0EBC94B /* EmojiPicker.unit-tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "EmojiPicker.unit-tests.release.xcconfig"; sourceTree = ""; }; + 3D21C5FC676356F8729839E0F8A9EF25 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = ru.lproj/Localizable.strings; sourceTree = ""; }; + 4DDC26C0A6107DB05C993B2E40A5D25B /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 4E3FF5DDF341270692A13C19EBF18886 /* EmojiPicker-Unit-Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "EmojiPicker-Unit-Tests-resources.sh"; sourceTree = ""; }; 509EFFB149756F700CC3A368970476A6 /* Pods-EmojiPicker_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-EmojiPicker_Example-umbrella.h"; sourceTree = ""; }; - 530BE4B1F73E8A09FB0D9385551CB810 /* EmojiPicker-Unit-Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "EmojiPicker-Unit-Tests-frameworks.sh"; sourceTree = ""; }; - 55989551A6AB676670767CB875552F35 /* EmojiPickerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerView.swift; sourceTree = ""; }; - 5751A5786A931EC7567038A088455519 /* PickerArrowDirectionMode.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PickerArrowDirectionMode.swift; sourceTree = ""; }; - 5FEE9A6040A0AA7145ED613BC023AC0A /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = en.lproj/Localizable.strings; sourceTree = ""; }; + 55AB59A1A7D14CDE91BE59962EDF603D /* EmojiPicker.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = EmojiPicker.modulemap; sourceTree = ""; }; 5FFCF687F23CBE36E970127D9B9AB400 /* Pods-EmojiPicker_Example */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-EmojiPicker_Example"; path = Pods_EmojiPicker_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 60A491E4B46DAFD75687632B0E08A7B2 /* ResourceBundle-Resources-EmojiPicker-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-Resources-EmojiPicker-Info.plist"; sourceTree = ""; }; 60CDDCE1EBAF6641C515D019921650A6 /* EmojiPicker-Unit-Tests */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "EmojiPicker-Unit-Tests"; path = "EmojiPicker-Unit-Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 6212C4D105F1104E02721146F54CDFBA /* Array.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Array.swift; sourceTree = ""; }; - 63D5BCB7166B7E7B18957D3425129C8B /* EmojiPickerViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerViewModel.swift; sourceTree = ""; }; + 62843EFF6E2CF119C910308FD85D7AEE /* EmojiPicker-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EmojiPicker-prefix.pch"; sourceTree = ""; }; + 67C9B3AAE49C37B7CBC6BDCD2EB2D00C /* UIView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UIView.swift; sourceTree = ""; }; 6E41074865C769D58022F8DB9C2B17FE /* Pods-EmojiPicker_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-EmojiPicker_Example-dummy.m"; sourceTree = ""; }; + 6E4AC8B402CE70E5027BE9085FB33A28 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; + 720CFC2FD0DD124C1A39FBE2EDF9AD62 /* EmojiPickerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerView.swift; sourceTree = ""; }; + 72ABF294222DAB68273906157A55A3E6 /* EmojiPicker-Unit-Tests-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EmojiPicker-Unit-Tests-prefix.pch"; sourceTree = ""; }; 72DF50AF5F8CB0E66065910A9B57FFFE /* EmojiPicker-Resources */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "EmojiPicker-Resources"; path = Resources.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 7582C2190BAFE180228F25FDE781A8FE /* Bundle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Bundle.swift; sourceTree = ""; }; - 7722AC2BA4786E96192A727139C56378 /* 12.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 12.json; sourceTree = ""; }; - 7EF526047D35D91416BA58DEBAE7E8BF /* EmojiPicker-Unit-Tests-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EmojiPicker-Unit-Tests-prefix.pch"; sourceTree = ""; }; - 7F992F256D5E5DFE5DEC61D79FDCB66F /* UIColor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UIColor.swift; sourceTree = ""; }; - 8879BDC3EB41DC795A9B8BE8EA282B75 /* EmojiCategoryIconView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiCategoryIconView.swift; sourceTree = ""; }; - 8889F3A0D04B56F6EC71D4C6C3A21BD4 /* EmojiCollectionViewHeader.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewHeader.swift; sourceTree = ""; }; - 8B90A21DEEFF2F461FD2E94DCBC80817 /* ResourceBundle-Resources-EmojiPicker-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-Resources-EmojiPicker-Info.plist"; sourceTree = ""; }; - 903FE5FB0EA9B07D691DF634ABC63A9B /* UnicodeManagerTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UnicodeManagerTests.swift; path = Tests/EmojiPickerTests/UnicodeManagerTests.swift; sourceTree = ""; }; - 907B1D56EEF86A46BFF5B9C4D4D47D22 /* EmojiManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiManager.swift; sourceTree = ""; }; - 90B315A6CD78D4A3B8D8CC0ED53DF4D3 /* PickerArrowDirectionModeTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PickerArrowDirectionModeTests.swift; path = Tests/EmojiPickerTests/PickerArrowDirectionModeTests.swift; sourceTree = ""; }; + 76E46A79EA45CD3030E4DDBFEBE70841 /* EmojiPickerDelegateMock.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerDelegateMock.swift; sourceTree = ""; }; + 78B4EBC1CF7C118A0964F15037F23A49 /* UnicodeManagerStub.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UnicodeManagerStub.swift; sourceTree = ""; }; + 79D9DA9D7177F959D8DE47C1CC0F8135 /* EmojiManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiManager.swift; sourceTree = ""; }; + 7C4D5DCE0488D3573527E22774645B91 /* 13.1.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 13.1.json; sourceTree = ""; }; + 7CB447BBAB30B870FB199D250ADA8C14 /* TouchableEmojiCategoryView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TouchableEmojiCategoryView.swift; sourceTree = ""; }; + 812F54CDA56ABF6498E0999230931BE0 /* 12.1.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 12.1.json; sourceTree = ""; }; + 8B6B85C5CC79322D762618868B3C370D /* EmojiPickerViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerViewModel.swift; sourceTree = ""; }; + 92F4AA51785FB6B8BED39C74FAAE7F37 /* ObservableTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ObservableTests.swift; path = Tests/EmojiPickerTests/ObservableTests.swift; sourceTree = ""; }; + 96A6D4A422B77C24D7BB3A2F0DD6C360 /* Category.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Category.swift; sourceTree = ""; }; + 96E1B3D4CF7A2B7E6CB251D7E466B8C9 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = en.lproj/Localizable.strings; sourceTree = ""; }; + 99E70F3B23911192E9F0C8F4179B2AA7 /* EmojiPickerViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerViewController.swift; sourceTree = ""; }; + 9B3840BE79F07D4F4C6956F8D4AC9D53 /* PickerArrowDirectionMode.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PickerArrowDirectionMode.swift; sourceTree = ""; }; 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 9DA1561688A001CA1B9E6CFEFD015092 /* ArrayExtensionTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ArrayExtensionTests.swift; path = Tests/EmojiPickerTests/ArrayExtensionTests.swift; sourceTree = ""; }; - A085A2016956196B512B164523C43D02 /* UnicodeManagerStub.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UnicodeManagerStub.swift; sourceTree = ""; }; - A38D5DFD9D99E33CC0B0EB5B96C34ABB /* EmojiPicker-Unit-Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "EmojiPicker-Unit-Tests-resources.sh"; sourceTree = ""; }; + A2F202C903864C3B0EC32EFB0400CCC8 /* EmojiCategoryTypeTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EmojiCategoryTypeTests.swift; path = Tests/EmojiPickerTests/EmojiCategoryTypeTests.swift; sourceTree = ""; }; + A4B5A94313F3C88B78D814E6A03AAFAA /* Bundle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Bundle.swift; sourceTree = ""; }; A66E21E0B052B50A29602427E1E2DC23 /* Pods-EmojiPicker_Example-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-EmojiPicker_Example-Info.plist"; sourceTree = ""; }; - B1F5DE01D9F18FAC7C6BB661A63AD74A /* EmojiPickerViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerViewController.swift; sourceTree = ""; }; - B7C5B458D7C95530B40DD2CC2261B7EC /* EmojiCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewCell.swift; sourceTree = ""; }; - BA994DA65C123AF37FA8279509B535AE /* 4.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 4.json; sourceTree = ""; }; - BBE05E23BB1406387B8BC2EB5A4F6CF7 /* ObservableTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ObservableTests.swift; path = Tests/EmojiPickerTests/ObservableTests.swift; sourceTree = ""; }; - C03DB8D5A854C8C07DE8D3D7AA4401ED /* EmojiPicker-Unit-Tests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "EmojiPicker-Unit-Tests-Info.plist"; sourceTree = ""; }; - C46E2363E33E965489D5A57B23D93595 /* 5.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 5.json; sourceTree = ""; }; + A99FB808CE529FD4F9FA379DFE1BFA7F /* EmojiPicker-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "EmojiPicker-dummy.m"; sourceTree = ""; }; + AEFFFAE23803201EDC2F47CDE4444F3B /* Observable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Observable.swift; sourceTree = ""; }; + B0F3B19ACABFA2105C91B7A783696835 /* UnicodeManagerTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UnicodeManagerTests.swift; path = Tests/EmojiPickerTests/UnicodeManagerTests.swift; sourceTree = ""; }; + B4EB102F71D06151E7C435419114218D /* EmojiPicker-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "EmojiPicker-Info.plist"; sourceTree = ""; }; + BA72DFECA5CB6E9B70E1F4BDB94E5417 /* EmojiCollectionViewHeader.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewHeader.swift; sourceTree = ""; }; + C3A920FF2D6951F74E8A439C99766735 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = de.lproj/Localizable.strings; sourceTree = ""; }; + C3F81A35240A14AAA6C7B90BC3390638 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = hi.lproj/Localizable.strings; sourceTree = ""; }; + C5D2F51818AEEDF0C94B582F2172F367 /* 11.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 11.json; sourceTree = ""; }; + CB350980F38E26743F6B7225969FF89E /* PickerArrowDirectionModeTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PickerArrowDirectionModeTests.swift; path = Tests/EmojiPickerTests/PickerArrowDirectionModeTests.swift; sourceTree = ""; }; + CEF7819C61FF4536C5694B49D95783C0 /* 5.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 5.json; sourceTree = ""; }; + CF9194F1C2BFD34B2C408033A5BE4503 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = uk.lproj/Localizable.strings; sourceTree = ""; }; D089390CB10DE5D7264EAF267B71BF52 /* Pods-EmojiPicker_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-EmojiPicker_Example.debug.xcconfig"; sourceTree = ""; }; D0B1C88F829541DAEF35CF30E76D83B7 /* Pods-EmojiPicker_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-EmojiPicker_Example.release.xcconfig"; sourceTree = ""; }; - D3443B263837A45DEFDD8C8C9F4F5C54 /* EmojiCategoryTypeTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EmojiCategoryTypeTests.swift; path = Tests/EmojiPickerTests/EmojiCategoryTypeTests.swift; sourceTree = ""; }; - D90A7FDCE48F328BF2508160BFB2D016 /* EmojiPicker-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "EmojiPicker-dummy.m"; sourceTree = ""; }; D9A8ECD769F879596441DCFFBAFD34CC /* Pods-EmojiPicker_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-EmojiPicker_Example-frameworks.sh"; sourceTree = ""; }; - DCD95B2285CDF4D99BF296BA8E4349EB /* 13.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 13.json; sourceTree = ""; }; - DF49622FC2DE4146473AEC56B81EEDBE /* UIView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UIView.swift; sourceTree = ""; }; - E48244AAE4FF8A9F8B47C06FA1E34F18 /* EmojiPickerViewModelTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EmojiPickerViewModelTests.swift; path = Tests/EmojiPickerTests/EmojiPickerViewModelTests.swift; sourceTree = ""; }; - E70656411071DE48F4279E83C2B49F6F /* EmojiPicker-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EmojiPicker-umbrella.h"; sourceTree = ""; }; - EE2E37741C76BFE73FD65AA92437F6AA /* Observable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Observable.swift; sourceTree = ""; }; - EE7D172ED2C44C975EF2008B447ED876 /* EmojiPicker.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = EmojiPicker.release.xcconfig; sourceTree = ""; }; - F08C80782981B7D100634E30 /* EmojiSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiSet.swift; sourceTree = ""; }; - F08C807A2981B7DD00634E30 /* Category.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Category.swift; sourceTree = ""; }; - F08C807C2981B7E800634E30 /* Skin.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Skin.swift; sourceTree = ""; }; - F27EA14C2F968DBE0EED600DF3AC50FB /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = hi.lproj/Localizable.strings; sourceTree = ""; }; - F2D5E0D349158FFD1DD20517789E596F /* 12.1.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 12.1.json; sourceTree = ""; }; - F3C64A47195AE0884592DA8792EE4A6B /* EmojiPicker.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; path = EmojiPicker.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - F6B406ADCC24BF6EAC709ED45F73B0C8 /* TouchableEmojiCategoryView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TouchableEmojiCategoryView.swift; sourceTree = ""; }; - F765D8DD8E46AE233031215729CBAE57 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = ru.lproj/Localizable.strings; sourceTree = ""; }; + E04078FD88DDC343C6B8093D59A56C6C /* EmojiPickerViewModelTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EmojiPickerViewModelTests.swift; path = Tests/EmojiPickerTests/EmojiPickerViewModelTests.swift; sourceTree = ""; }; + E4580DA8F896D0729F23282903D394D4 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = tr.lproj/Localizable.strings; sourceTree = ""; }; + E4F80D0846A46597C41E71A22868B1EE /* EmojiPicker-Unit-Tests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "EmojiPicker-Unit-Tests-Info.plist"; sourceTree = ""; }; + E74EA740355CB1AFE4DDAED762318AEF /* EmojiPicker.unit-tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "EmojiPicker.unit-tests.release.xcconfig"; sourceTree = ""; }; + ED4DFB05FA69FAEFE666FC01567E7334 /* EmojiPicker.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; path = EmojiPicker.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + F9F0CD3AFA3EA83554B7407BF8B587DA /* EmojiPicker-Unit-Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "EmojiPicker-Unit-Tests-frameworks.sh"; sourceTree = ""; }; + FB234B5215B8544D6C7723510CCF6C9B /* EmojiCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewCell.swift; sourceTree = ""; }; + FB2F11ABCD4FB22F86C92606C1A13A26 /* EmojiPicker.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = EmojiPicker.debug.xcconfig; sourceTree = ""; }; FEC6B8950F4C546111DE3F93FECA20B5 /* Pods-EmojiPicker_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-EmojiPicker_Example-acknowledgements.markdown"; sourceTree = ""; }; + FF73A55A4418C718FC9D29FAED96D71A /* 14.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 14.json; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 27EA65D4318478F7702F20E89BD8277B /* Frameworks */ = { + AEA72749B4807F175E85AC64A4464F62 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 6CCE6EF5DB6DD0545F70DE1C6296AF01 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - AEA72749B4807F175E85AC64A4464F62 /* Frameworks */ = { + B1E5AE5E617A3A1BD1E9E65683E0A899 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 6CCE6EF5DB6DD0545F70DE1C6296AF01 /* Foundation.framework in Frameworks */, + 5EF4507FF0C8F6AB41D32B2F83F98E19 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -182,33 +171,42 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - F871EAD594A17860D5F629930B699C58 /* Frameworks */ = { + F50E33FA52AD81C55D4FB4BA846E7465 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 280AC1D6D6D3B6459F875BD92F7BFC7B /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 0D71D1597D5590C2F9E94B142D15A086 /* Services */ = { + 06C30041FD8EBE75F8D248313B5AE532 /* EmojiPicker */ = { isa = PBXGroup; children = ( - 907B1D56EEF86A46BFF5B9C4D4D47D22 /* EmojiManager.swift */, + B5524AE0EEEF0D5587DA53D112B80A05 /* Bindings */, + AE2C2EF4682FA0D99F23DAC6E025D476 /* Data */, + 279D0CE5E904C213EE1E764CC6E2D2B2 /* Extensions */, + 94C525117630F737228C6FD223089C35 /* Localization */, + E6F4B2CD9DB3D981229F83597FEAE185 /* Models */, + C45B5DD382DE086CDB19F1798F71DA75 /* Pod */, + 84107372F9521E5C78DB21C0070DE384 /* Services */, + 2B20A8013FC934126425FEB5ECD679D8 /* Support Files */, + C21C01F25C849F6B6A13BAB24BE56394 /* Tests */, + BE004FE1C90795214C8574A83D4611C8 /* ViewModel */, + D0533FFC0405B46C706FD92C86C05DB8 /* Views */, ); - name = Services; - path = Sources/EmojiPicker/Services; + name = EmojiPicker; + path = ../..; sourceTree = ""; }; - 16B960040405E29EBC7F0405007310B5 /* UIKit */ = { + 15E30D8BBCA8519513D8266EC9A54F31 /* EmojiCategoryView */ = { isa = PBXGroup; children = ( - 7F992F256D5E5DFE5DEC61D79FDCB66F /* UIColor.swift */, - DF49622FC2DE4146473AEC56B81EEDBE /* UIView.swift */, + 0E766211B93AE00EA5820C6EB7D4FCBD /* EmojiCategoryIconView.swift */, + 7CB447BBAB30B870FB199D250ADA8C14 /* TouchableEmojiCategoryView.swift */, ); - path = UIKit; + path = EmojiCategoryView; sourceTree = ""; }; 1A1160E78863D1B69A568D78ED779947 /* Products */ = { @@ -222,71 +220,38 @@ name = Products; sourceTree = ""; }; - 28F0AF36EB28CB2736AB4E67A0718278 /* EmojiPicker */ = { + 279D0CE5E904C213EE1E764CC6E2D2B2 /* Extensions */ = { isa = PBXGroup; children = ( - 8CB54F1D771D78412A76423CCCFD1821 /* Bindings */, - 6E13150E13286B15D1B17145634B7C2C /* Data */, - 99710A01B7E4285FEFD043422F9E4FA5 /* Extensions */, - B06DED34DF6964ADF0B7A86DDCCBCB68 /* Localization */, - A0D8C9E08684A03B81293438CBF8588A /* Models */, - 9876F23F0FB21613FAFA63D1A4BBCEC3 /* Pod */, - 0D71D1597D5590C2F9E94B142D15A086 /* Services */, - 398526AF8BF04475BC119BE105D9993D /* Support Files */, - 42B680A40C377D427B9C2856AA53B8D8 /* Tests */, - AB497BB1E1BBDBA333F9BC2981B6A328 /* ViewModel */, - BB781FEBA84DB29587C1985D83C84843 /* Views */, + 7DDDF4DDCC08D5DB474448D9CCB44130 /* Foundation */, + 5A463891624E61077C800573856C9050 /* UIKit */, ); - name = EmojiPicker; - path = ../..; - sourceTree = ""; - }; - 31BFACE674FB43EFE7B54A66F07AD186 /* Foundation */ = { - isa = PBXGroup; - children = ( - 6212C4D105F1104E02721146F54CDFBA /* Array.swift */, - 7582C2190BAFE180228F25FDE781A8FE /* Bundle.swift */, - ); - path = Foundation; + name = Extensions; + path = Sources/EmojiPicker/Extensions; sourceTree = ""; }; - 398526AF8BF04475BC119BE105D9993D /* Support Files */ = { + 2B20A8013FC934126425FEB5ECD679D8 /* Support Files */ = { isa = PBXGroup; children = ( - 3FE4A3FEFD10B23603166704EF2A70E7 /* EmojiPicker.modulemap */, - D90A7FDCE48F328BF2508160BFB2D016 /* EmojiPicker-dummy.m */, - 37FB6528DBDAE7D16F3B1D8ABD32F653 /* EmojiPicker-Info.plist */, - 1DB8439774A04631978ACC9901DE195D /* EmojiPicker-prefix.pch */, - E70656411071DE48F4279E83C2B49F6F /* EmojiPicker-umbrella.h */, - 530BE4B1F73E8A09FB0D9385551CB810 /* EmojiPicker-Unit-Tests-frameworks.sh */, - C03DB8D5A854C8C07DE8D3D7AA4401ED /* EmojiPicker-Unit-Tests-Info.plist */, - 7EF526047D35D91416BA58DEBAE7E8BF /* EmojiPicker-Unit-Tests-prefix.pch */, - A38D5DFD9D99E33CC0B0EB5B96C34ABB /* EmojiPicker-Unit-Tests-resources.sh */, - 44E1999FFFD89E8CD1820B2B48915806 /* EmojiPicker.debug.xcconfig */, - EE7D172ED2C44C975EF2008B447ED876 /* EmojiPicker.release.xcconfig */, - 434016F65810EC8B967AE9D9C3555AB9 /* EmojiPicker.unit-tests.debug.xcconfig */, - 4F0E261765733138900691A2A0EBC94B /* EmojiPicker.unit-tests.release.xcconfig */, - 8B90A21DEEFF2F461FD2E94DCBC80817 /* ResourceBundle-Resources-EmojiPicker-Info.plist */, + 55AB59A1A7D14CDE91BE59962EDF603D /* EmojiPicker.modulemap */, + A99FB808CE529FD4F9FA379DFE1BFA7F /* EmojiPicker-dummy.m */, + B4EB102F71D06151E7C435419114218D /* EmojiPicker-Info.plist */, + 62843EFF6E2CF119C910308FD85D7AEE /* EmojiPicker-prefix.pch */, + 0D84E62111239C369B0B3D2D6528BCE4 /* EmojiPicker-umbrella.h */, + F9F0CD3AFA3EA83554B7407BF8B587DA /* EmojiPicker-Unit-Tests-frameworks.sh */, + E4F80D0846A46597C41E71A22868B1EE /* EmojiPicker-Unit-Tests-Info.plist */, + 72ABF294222DAB68273906157A55A3E6 /* EmojiPicker-Unit-Tests-prefix.pch */, + 4E3FF5DDF341270692A13C19EBF18886 /* EmojiPicker-Unit-Tests-resources.sh */, + FB2F11ABCD4FB22F86C92606C1A13A26 /* EmojiPicker.debug.xcconfig */, + 1D8AE8E109045877CA5D7BABE5517C49 /* EmojiPicker.release.xcconfig */, + 0B459C9F29B2A83DDCEE596B88267CCC /* EmojiPicker.unit-tests.debug.xcconfig */, + E74EA740355CB1AFE4DDAED762318AEF /* EmojiPicker.unit-tests.release.xcconfig */, + 60A491E4B46DAFD75687632B0E08A7B2 /* ResourceBundle-Resources-EmojiPicker-Info.plist */, ); name = "Support Files"; path = "Example App/Pods/Target Support Files/EmojiPicker"; sourceTree = ""; }; - 42B680A40C377D427B9C2856AA53B8D8 /* Tests */ = { - isa = PBXGroup; - children = ( - 9DA1561688A001CA1B9E6CFEFD015092 /* ArrayExtensionTests.swift */, - D3443B263837A45DEFDD8C8C9F4F5C54 /* EmojiCategoryTypeTests.swift */, - E48244AAE4FF8A9F8B47C06FA1E34F18 /* EmojiPickerViewModelTests.swift */, - BBE05E23BB1406387B8BC2EB5A4F6CF7 /* ObservableTests.swift */, - 90B315A6CD78D4A3B8D8CC0ED53DF4D3 /* PickerArrowDirectionModeTests.swift */, - 903FE5FB0EA9B07D691DF634ABC63A9B /* UnicodeManagerTests.swift */, - EF6CDD8CC6D0BB1CC45E6E2736B93F8F /* Mocks */, - 9A3FD4045EEC5F1BCEA8DA0EB1B0EBA9 /* Stubs */, - ); - name = Tests; - sourceTree = ""; - }; 578452D2E740E91742655AC8F1636D1F /* iOS */ = { isa = PBXGroup; children = ( @@ -295,78 +260,47 @@ name = iOS; sourceTree = ""; }; - 6E13150E13286B15D1B17145634B7C2C /* Data */ = { + 5A463891624E61077C800573856C9050 /* UIKit */ = { isa = PBXGroup; children = ( - 03CF0F5AF189C54218CD413FA6013B48 /* 1.json */, - 1F33C9D75C9B8F1A39428BD85E649B2D /* 11.json */, - 7722AC2BA4786E96192A727139C56378 /* 12.json */, - F2D5E0D349158FFD1DD20517789E596F /* 12.1.json */, - DCD95B2285CDF4D99BF296BA8E4349EB /* 13.json */, - 0FD7827F050C421AE77FDCB651582ECB /* 13.1.json */, - 2E62F37B06E64232A49BAA17099B3EF2 /* 14.json */, - 04FF92E92EEC4FDA4596BD0004577A36 /* 2.json */, - 3A91B05AFF733F0E899A05C79B76EEF9 /* 3.json */, - BA994DA65C123AF37FA8279509B535AE /* 4.json */, - C46E2363E33E965489D5A57B23D93595 /* 5.json */, + 114276F82FE507457E55E8C1D41F5D8B /* UIColor.swift */, + 67C9B3AAE49C37B7CBC6BDCD2EB2D00C /* UIView.swift */, ); - name = Data; - path = Sources/EmojiPicker/Resources/Data; + path = UIKit; sourceTree = ""; }; - 740EB83D2347C1A14DF43832629F0CBA /* EmojiCategoryView */ = { + 7DDDF4DDCC08D5DB474448D9CCB44130 /* Foundation */ = { isa = PBXGroup; children = ( - 8879BDC3EB41DC795A9B8BE8EA282B75 /* EmojiCategoryIconView.swift */, - F6B406ADCC24BF6EAC709ED45F73B0C8 /* TouchableEmojiCategoryView.swift */, + A4B5A94313F3C88B78D814E6A03AAFAA /* Bundle.swift */, ); - path = EmojiCategoryView; + path = Foundation; sourceTree = ""; }; 81734294209AC4804EF8F7483F2A4AC9 /* Development Pods */ = { isa = PBXGroup; children = ( - 28F0AF36EB28CB2736AB4E67A0718278 /* EmojiPicker */, + 06C30041FD8EBE75F8D248313B5AE532 /* EmojiPicker */, ); name = "Development Pods"; sourceTree = ""; }; - 8CB54F1D771D78412A76423CCCFD1821 /* Bindings */ = { - isa = PBXGroup; - children = ( - EE2E37741C76BFE73FD65AA92437F6AA /* Observable.swift */, - ); - name = Bindings; - path = Sources/EmojiPicker/Bindings; - sourceTree = ""; - }; - 9876F23F0FB21613FAFA63D1A4BBCEC3 /* Pod */ = { + 84107372F9521E5C78DB21C0070DE384 /* Services */ = { isa = PBXGroup; children = ( - F3C64A47195AE0884592DA8792EE4A6B /* EmojiPicker.podspec */, - 01BF62AD9E1F740437F682BD38F572C0 /* LICENSE */, - 4AF011DA7226E834F1B698924076958F /* README.md */, + 79D9DA9D7177F959D8DE47C1CC0F8135 /* EmojiManager.swift */, ); - name = Pod; - sourceTree = ""; - }; - 99710A01B7E4285FEFD043422F9E4FA5 /* Extensions */ = { - isa = PBXGroup; - children = ( - 31BFACE674FB43EFE7B54A66F07AD186 /* Foundation */, - 16B960040405E29EBC7F0405007310B5 /* UIKit */, - ); - name = Extensions; - path = Sources/EmojiPicker/Extensions; + name = Services; + path = Sources/EmojiPicker/Services; sourceTree = ""; }; - 9A3FD4045EEC5F1BCEA8DA0EB1B0EBA9 /* Stubs */ = { + 94C525117630F737228C6FD223089C35 /* Localization */ = { isa = PBXGroup; children = ( - A085A2016956196B512B164523C43D02 /* UnicodeManagerStub.swift */, + 21D9439D328CFCC75E465FC9398F375F /* Localizable.strings */, ); - name = Stubs; - path = Tests/EmojiPickerTests/Stubs; + name = Localization; + path = Sources/EmojiPicker/Resources/Localization; sourceTree = ""; }; 9C32D27DB1D98426BBBC981D1B6F827E /* Pods-EmojiPicker_Example */ = { @@ -386,48 +320,70 @@ path = "Target Support Files/Pods-EmojiPicker_Example"; sourceTree = ""; }; - A0D8C9E08684A03B81293438CBF8588A /* Models */ = { + AE2C2EF4682FA0D99F23DAC6E025D476 /* Data */ = { isa = PBXGroup; children = ( - 240D4E00A0AAE4CD98BB978B9B2C917F /* Emoji.swift */, - 5751A5786A931EC7567038A088455519 /* PickerArrowDirectionMode.swift */, - F08C80782981B7D100634E30 /* EmojiSet.swift */, - F08C807A2981B7DD00634E30 /* Category.swift */, - F08C807C2981B7E800634E30 /* Skin.swift */, + C5D2F51818AEEDF0C94B582F2172F367 /* 11.json */, + 241B0242F67E40FAFB0CDFAA9808F602 /* 12.json */, + 812F54CDA56ABF6498E0999230931BE0 /* 12.1.json */, + 0EBE9A1E3C736DF95091350631B3B8C6 /* 13.json */, + 7C4D5DCE0488D3573527E22774645B91 /* 13.1.json */, + FF73A55A4418C718FC9D29FAED96D71A /* 14.json */, + CEF7819C61FF4536C5694B49D95783C0 /* 5.json */, ); - name = Models; - path = Sources/EmojiPicker/Models; + name = Data; + path = Sources/EmojiPicker/Resources/Data; sourceTree = ""; }; - AB497BB1E1BBDBA333F9BC2981B6A328 /* ViewModel */ = { + B5524AE0EEEF0D5587DA53D112B80A05 /* Bindings */ = { isa = PBXGroup; children = ( - 63D5BCB7166B7E7B18957D3425129C8B /* EmojiPickerViewModel.swift */, + AEFFFAE23803201EDC2F47CDE4444F3B /* Observable.swift */, + ); + name = Bindings; + path = Sources/EmojiPicker/Bindings; + sourceTree = ""; + }; + BE004FE1C90795214C8574A83D4611C8 /* ViewModel */ = { + isa = PBXGroup; + children = ( + 8B6B85C5CC79322D762618868B3C370D /* EmojiPickerViewModel.swift */, ); name = ViewModel; path = Sources/EmojiPicker/ViewModel; sourceTree = ""; }; - B06DED34DF6964ADF0B7A86DDCCBCB68 /* Localization */ = { + C21C01F25C849F6B6A13BAB24BE56394 /* Tests */ = { isa = PBXGroup; children = ( - 82824E96D94B60DFCCC919CA9357D85F /* Localizable.strings */, + A2F202C903864C3B0EC32EFB0400CCC8 /* EmojiCategoryTypeTests.swift */, + E04078FD88DDC343C6B8093D59A56C6C /* EmojiPickerViewModelTests.swift */, + 92F4AA51785FB6B8BED39C74FAAE7F37 /* ObservableTests.swift */, + CB350980F38E26743F6B7225969FF89E /* PickerArrowDirectionModeTests.swift */, + B0F3B19ACABFA2105C91B7A783696835 /* UnicodeManagerTests.swift */, + C450100AC2839E3C80D44528C38F5705 /* Mocks */, + F4E37DC279BBDC6ACA4BBF755957213A /* Stubs */, ); - name = Localization; - path = Sources/EmojiPicker/Resources/Localization; + name = Tests; sourceTree = ""; }; - BB781FEBA84DB29587C1985D83C84843 /* Views */ = { + C450100AC2839E3C80D44528C38F5705 /* Mocks */ = { isa = PBXGroup; children = ( - B7C5B458D7C95530B40DD2CC2261B7EC /* EmojiCollectionViewCell.swift */, - 8889F3A0D04B56F6EC71D4C6C3A21BD4 /* EmojiCollectionViewHeader.swift */, - 55989551A6AB676670767CB875552F35 /* EmojiPickerView.swift */, - B1F5DE01D9F18FAC7C6BB661A63AD74A /* EmojiPickerViewController.swift */, - 740EB83D2347C1A14DF43832629F0CBA /* EmojiCategoryView */, + 76E46A79EA45CD3030E4DDBFEBE70841 /* EmojiPickerDelegateMock.swift */, ); - name = Views; - path = Sources/EmojiPicker/Views; + name = Mocks; + path = Tests/EmojiPickerTests/Mocks; + sourceTree = ""; + }; + C45B5DD382DE086CDB19F1798F71DA75 /* Pod */ = { + isa = PBXGroup; + children = ( + ED4DFB05FA69FAEFE666FC01567E7334 /* EmojiPicker.podspec */, + 6E4AC8B402CE70E5027BE9085FB33A28 /* LICENSE */, + 4DDC26C0A6107DB05C993B2E40A5D25B /* README.md */, + ); + name = Pod; sourceTree = ""; }; CF1408CF629C7361332E53B88F7BD30C = { @@ -441,6 +397,19 @@ ); sourceTree = ""; }; + D0533FFC0405B46C706FD92C86C05DB8 /* Views */ = { + isa = PBXGroup; + children = ( + FB234B5215B8544D6C7723510CCF6C9B /* EmojiCollectionViewCell.swift */, + BA72DFECA5CB6E9B70E1F4BDB94E5417 /* EmojiCollectionViewHeader.swift */, + 720CFC2FD0DD124C1A39FBE2EDF9AD62 /* EmojiPickerView.swift */, + 99E70F3B23911192E9F0C8F4179B2AA7 /* EmojiPickerViewController.swift */, + 15E30D8BBCA8519513D8266EC9A54F31 /* EmojiCategoryView */, + ); + name = Views; + path = Sources/EmojiPicker/Views; + sourceTree = ""; + }; D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */ = { isa = PBXGroup; children = ( @@ -449,13 +418,17 @@ name = Frameworks; sourceTree = ""; }; - EF6CDD8CC6D0BB1CC45E6E2736B93F8F /* Mocks */ = { + E6F4B2CD9DB3D981229F83597FEAE185 /* Models */ = { isa = PBXGroup; children = ( - 124C5A4FDD8EABCF4D66E9C363750239 /* EmojiPickerDelegateMock.swift */, + 96A6D4A422B77C24D7BB3A2F0DD6C360 /* Category.swift */, + 0A2C22EA600F5B5B34E546C1FDBB9A56 /* Emoji.swift */, + 2D79E814DBFF6DCDB0BA71871674AF8D /* EmojiSet.swift */, + 9B3840BE79F07D4F4C6956F8D4AC9D53 /* PickerArrowDirectionMode.swift */, + 1455D08D7446DF360DF602A496735D08 /* Skin.swift */, ); - name = Mocks; - path = Tests/EmojiPickerTests/Mocks; + name = Models; + path = Sources/EmojiPicker/Models; sourceTree = ""; }; F335215D4D5B81982E7F065C8F829E1C /* Targets Support Files */ = { @@ -466,14 +439,23 @@ name = "Targets Support Files"; sourceTree = ""; }; + F4E37DC279BBDC6ACA4BBF755957213A /* Stubs */ = { + isa = PBXGroup; + children = ( + 78B4EBC1CF7C118A0964F15037F23A49 /* UnicodeManagerStub.swift */, + ); + name = Stubs; + path = Tests/EmojiPickerTests/Stubs; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 0A00FC7E29EB8CAAE8A159930AABFAE3 /* Headers */ = { + B3AACE23F0BD40991E6DC23BEDE19094 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 47CAFAD474405966D4BC34DD0E1224DC /* EmojiPicker-umbrella.h in Headers */, + 8619A7D052AEB849AF0697A08624734A /* EmojiPicker-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -490,11 +472,11 @@ /* Begin PBXNativeTarget section */ 3DA7DB1A9F7F32C07F0F0F8CD7CCD936 /* EmojiPicker-Resources */ = { isa = PBXNativeTarget; - buildConfigurationList = 7947C17D473D20586473E850E178C668 /* Build configuration list for PBXNativeTarget "EmojiPicker-Resources" */; + buildConfigurationList = 21A7DA069714778E3241D5C894549448 /* Build configuration list for PBXNativeTarget "EmojiPicker-Resources" */; buildPhases = ( - 92D5B10E65EFEE5BEC1C1BEF28B986FD /* Sources */, - 27EA65D4318478F7702F20E89BD8277B /* Frameworks */, - B3A286CFD1CBBB2F2DDEE28CA9951ED5 /* Resources */, + 5C97BDAF3BEF9E05C223533163B683DA /* Sources */, + F50E33FA52AD81C55D4FB4BA846E7465 /* Frameworks */, + A406DBDD40988E23792F24EAB670A928 /* Resources */, ); buildRules = ( ); @@ -507,17 +489,17 @@ }; 74B1BE29E8F4437DC0A1829FA5157AE0 /* EmojiPicker */ = { isa = PBXNativeTarget; - buildConfigurationList = D0828FFC1F75C2C3306D25A5AF9EDB66 /* Build configuration list for PBXNativeTarget "EmojiPicker" */; + buildConfigurationList = FCEEB43ACE97F78498B1321C0C38BC60 /* Build configuration list for PBXNativeTarget "EmojiPicker" */; buildPhases = ( - 0A00FC7E29EB8CAAE8A159930AABFAE3 /* Headers */, - 0E13AF159905796B0E237FF904D384EB /* Sources */, - F871EAD594A17860D5F629930B699C58 /* Frameworks */, - 090BA5235B74C113D42E83D4E0A74BE8 /* Resources */, + B3AACE23F0BD40991E6DC23BEDE19094 /* Headers */, + 115B658C848251E030642D0DA82266CD /* Sources */, + B1E5AE5E617A3A1BD1E9E65683E0A899 /* Frameworks */, + 9848067FCB2572F0E57861D590C7A909 /* Resources */, ); buildRules = ( ); dependencies = ( - 12340FC0B635773DFAE542527B67BC58 /* PBXTargetDependency */, + C96A90D30DAB0A7DBB06822F65D5308D /* PBXTargetDependency */, ); name = EmojiPicker; productName = EmojiPicker; @@ -536,7 +518,7 @@ buildRules = ( ); dependencies = ( - 8F35C905355F143406FC2872F6D28CE1 /* PBXTargetDependency */, + D0185C159AA0DDD840ECEDF10A6390FF /* PBXTargetDependency */, ); name = "Pods-EmojiPicker_Example"; productName = Pods_EmojiPicker_Example; @@ -556,7 +538,7 @@ buildRules = ( ); dependencies = ( - EE026EAB387BEDBC44F93832C9762603 /* PBXTargetDependency */, + 492C9F009B6C98D503CDB95B96B15516 /* PBXTargetDependency */, ); name = "EmojiPicker-Unit-Tests"; productName = "EmojiPicker-Unit-Tests"; @@ -600,37 +582,33 @@ /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 090BA5235B74C113D42E83D4E0A74BE8 /* Resources */ = { + 3A1EAA898A3CA7A89B81272E2EFC7D24 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 0CE561E14B8145B36CB977877CDF2D0D /* EmojiPicker-Resources in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 3A1EAA898A3CA7A89B81272E2EFC7D24 /* Resources */ = { + 9848067FCB2572F0E57861D590C7A909 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + FCEBE070BE2A3A9DFAA44C54B933EB3F /* EmojiPicker-Resources in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - B3A286CFD1CBBB2F2DDEE28CA9951ED5 /* Resources */ = { + A406DBDD40988E23792F24EAB670A928 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - C9022C63FDCEECCA8BDD36C523E809E3 /* 1.json in Resources */, - 3EC9270CA83557592712F214B5C0A821 /* 11.json in Resources */, - FFDAB80B3AD4E8527344BFBA2E36DB7A /* 12.json in Resources */, - B045B4E84350FDFE9FD80A84483EE61A /* 12.1.json in Resources */, - BCDF8F7DBAF99753B3AC59C68D48B7C9 /* 13.json in Resources */, - 7D83F5C1835BAE71AF7D97A8D7BAA86D /* 13.1.json in Resources */, - 621CF41663DBD1E9D7FC9CF826C5D5E9 /* 14.json in Resources */, - DD84C1441302A82A407B2A06C8E2102A /* 2.json in Resources */, - 9A20E3A7C10CDF46109B92F331D4A56A /* 3.json in Resources */, - 72A53254B374FA721A5528FD8B9DAFB2 /* 4.json in Resources */, - 5127F1E1AB8B93077A8DDA2DAE589E59 /* 5.json in Resources */, - 22E96A696128D9F7DED2BD3D07A7830F /* Localizable.strings in Resources */, + DB0367E451FB7464DD6F3B5093D27F37 /* 11.json in Resources */, + 8CD8136D841F09BD6E18607FDA16042B /* 12.json in Resources */, + 6C47BC3254E7AA5CFA2B1EAEABCF99E8 /* 12.1.json in Resources */, + 39A361F6DE05727DD99CAA94959CB491 /* 13.json in Resources */, + 80583C4282ED2C22DB53A74A325B858F /* 13.1.json in Resources */, + E59995021E47D74EFBCD568752B8D0D5 /* 14.json in Resources */, + 81DF012C9C7B4929C30D997DEC559A40 /* 5.json in Resources */, + 8BF0B9462689A61026AFC4467CADC730 /* Localizable.strings in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -683,29 +661,28 @@ /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 0E13AF159905796B0E237FF904D384EB /* Sources */ = { + 115B658C848251E030642D0DA82266CD /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 43207020ADD92B8D32FAC8F33B5CACFC /* Array.swift in Sources */, - F35B8843F9FE8DE3E104327AD0EF800E /* Bundle.swift in Sources */, - F08C807B2981B7DD00634E30 /* Category.swift in Sources */, - 932DE79107AF184DFC7BA2CFF2E28E0C /* Emoji.swift in Sources */, - F08C80792981B7D100634E30 /* EmojiSet.swift in Sources */, - 24E04A3A64F70E7653F0366287815057 /* EmojiCategoryIconView.swift in Sources */, - 30F9341A544B39EAA04F79E1FAE3B2DB /* EmojiCollectionViewCell.swift in Sources */, - 8689D7DBBA3B233581245AAF6DF5678D /* EmojiCollectionViewHeader.swift in Sources */, - 5F1EE0505CBBBCF21044D00AF4799804 /* EmojiManager.swift in Sources */, - 323D83ECBD008CEA1B50D539A7740D1C /* EmojiPicker-dummy.m in Sources */, - C450FF14C56765B86DC2D13CBAC3ED9A /* EmojiPickerView.swift in Sources */, - 01CE18135A0681E4396EBDB362ACE617 /* EmojiPickerViewController.swift in Sources */, - E9AB107B73CD1C08CDA6859CABE82CCC /* EmojiPickerViewModel.swift in Sources */, - F08C807D2981B7E800634E30 /* Skin.swift in Sources */, - 550D935013808A6499E6DCEFD5FE5042 /* Observable.swift in Sources */, - 700F13DEED178BAF6B299765FD6A5378 /* PickerArrowDirectionMode.swift in Sources */, - CA822EC10BF06D5A3B39D61185136B3A /* TouchableEmojiCategoryView.swift in Sources */, - 5553ED817614810334EE62F20D64BD0F /* UIColor.swift in Sources */, - 31C46961416CC20E4FEA133CF9CFC302 /* UIView.swift in Sources */, + 1BD5BD4A3B12A75F38ED5F2FDB618219 /* Bundle.swift in Sources */, + A033F36AAEDA625337F68F9755BA1D77 /* Category.swift in Sources */, + 9F1900612EA3442E85BF5AD3C26549E1 /* Emoji.swift in Sources */, + 57D61917332D126453DBF79EF2FFDA6B /* EmojiCategoryIconView.swift in Sources */, + 9A2782112A50E341AB7BC2FB1BA4D9D8 /* EmojiCollectionViewCell.swift in Sources */, + 2B20811BC07717C26B5991875DBBCE72 /* EmojiCollectionViewHeader.swift in Sources */, + 766BA8E5F480B639266CD03ED1534C9F /* EmojiManager.swift in Sources */, + 9C0A21496D6D1C6C237473823DECF7BD /* EmojiPicker-dummy.m in Sources */, + 2197DB04645805BA239B5D4B1FE84C3F /* EmojiPickerView.swift in Sources */, + AD7FF7F0EC95BD3381737E120FEC7847 /* EmojiPickerViewController.swift in Sources */, + 8C34782F7B4E11F6091E4EED834FFF63 /* EmojiPickerViewModel.swift in Sources */, + E560B1C76BE6582D935CEEA610D0BABE /* EmojiSet.swift in Sources */, + 39B099AC152338C3A617C77C5C3AA622 /* Observable.swift in Sources */, + CB6A01F77F3D1F5FBBB5585D5F509DA6 /* PickerArrowDirectionMode.swift in Sources */, + F1DCE6CFACDEE599EC225E7AA0E8C7EC /* Skin.swift in Sources */, + 4A24A8FB5C32E22034B7E37289C617FA /* TouchableEmojiCategoryView.swift in Sources */, + 247A19BDE3664944E16330C8ACB4D375 /* UIColor.swift in Sources */, + 37BCBFD2539F182214A51248A2ED5DD9 /* UIView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -717,11 +694,17 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 5C97BDAF3BEF9E05C223533163B683DA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 8806F3B1C26A8A219E5BDEB10986024B /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 39992CFE425CED16527876E1E7B7FC68 /* ArrayExtensionTests.swift in Sources */, 70EA50369EB2C2E5749ACEC2433BAC09 /* EmojiCategoryTypeTests.swift in Sources */, A05E77D1B14C347E5AB8487F18BFD8D9 /* EmojiPickerDelegateMock.swift in Sources */, 6D56A7DD06B973AF953EA59903AF5339 /* EmojiPickerViewModelTests.swift in Sources */, @@ -732,47 +715,40 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 92D5B10E65EFEE5BEC1C1BEF28B986FD /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 12340FC0B635773DFAE542527B67BC58 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "EmojiPicker-Resources"; - target = 3DA7DB1A9F7F32C07F0F0F8CD7CCD936 /* EmojiPicker-Resources */; - targetProxy = F503495051C6BD29DA615E2D0BD6F785 /* PBXContainerItemProxy */; - }; - 8F35C905355F143406FC2872F6D28CE1 /* PBXTargetDependency */ = { + 492C9F009B6C98D503CDB95B96B15516 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = EmojiPicker; target = 74B1BE29E8F4437DC0A1829FA5157AE0 /* EmojiPicker */; - targetProxy = DB0DF625F433896F640FB53EA8A11975 /* PBXContainerItemProxy */; + targetProxy = C2A744C7E16EC2BF8F2837AC2D85FF1D /* PBXContainerItemProxy */; }; - EE026EAB387BEDBC44F93832C9762603 /* PBXTargetDependency */ = { + C96A90D30DAB0A7DBB06822F65D5308D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "EmojiPicker-Resources"; + target = 3DA7DB1A9F7F32C07F0F0F8CD7CCD936 /* EmojiPicker-Resources */; + targetProxy = 01D6A6A189900C400738DC5FA834B097 /* PBXContainerItemProxy */; + }; + D0185C159AA0DDD840ECEDF10A6390FF /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = EmojiPicker; target = 74B1BE29E8F4437DC0A1829FA5157AE0 /* EmojiPicker */; - targetProxy = F2C685652BA1B40FD9C5295265812884 /* PBXContainerItemProxy */; + targetProxy = FFC9340878559A0A4A5B8EE0EC5B64BD /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ - 82824E96D94B60DFCCC919CA9357D85F /* Localizable.strings */ = { + 21D9439D328CFCC75E465FC9398F375F /* Localizable.strings */ = { isa = PBXVariantGroup; children = ( - 05313DB19F1015F7062F82CEF48A0868 /* Localizable.strings */, - 5FEE9A6040A0AA7145ED613BC023AC0A /* Localizable.strings */, - 416AA4CAE6DAD3FEAC111D71D8B24146 /* Localizable.strings */, - F27EA14C2F968DBE0EED600DF3AC50FB /* Localizable.strings */, - F765D8DD8E46AE233031215729CBAE57 /* Localizable.strings */, - 3E9A64B82E30FC1A421C182E3CC275A7 /* Localizable.strings */, - 08DA8F4887EFE486D534712C71E8C5CA /* Localizable.strings */, + C3A920FF2D6951F74E8A439C99766735 /* Localizable.strings */, + 96E1B3D4CF7A2B7E6CB251D7E466B8C9 /* Localizable.strings */, + 1A73B69BB08091CBA91E2FD3EB286619 /* Localizable.strings */, + C3F81A35240A14AAA6C7B90BC3390638 /* Localizable.strings */, + 3D21C5FC676356F8729839E0F8A9EF25 /* Localizable.strings */, + E4580DA8F896D0729F23282903D394D4 /* Localizable.strings */, + CF9194F1C2BFD34B2C408033A5BE4503 /* Localizable.strings */, ); name = Localizable.strings; path = .; @@ -783,7 +759,7 @@ /* Begin XCBuildConfiguration section */ 0DFE7CDB9BF57C6A9EE6D5E68FC2869E /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 434016F65810EC8B967AE9D9C3555AB9 /* EmojiPicker.unit-tests.debug.xcconfig */; + baseConfigurationReference = 0B459C9F29B2A83DDCEE596B88267CCC /* EmojiPicker.unit-tests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ARCHS = "$(ARCHS_STANDARD_64_BIT)"; @@ -804,22 +780,6 @@ }; name = Debug; }; - 0E878EC4529E111D861AB60EA5DBFC2E /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 44E1999FFFD89E8CD1820B2B48915806 /* EmojiPicker.debug.xcconfig */; - buildSettings = { - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/EmojiPicker"; - IBSC_MODULE = EmojiPicker; - INFOPLIST_FILE = "Target Support Files/EmojiPicker/ResourceBundle-Resources-EmojiPicker-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 11.1; - PRODUCT_NAME = Resources; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; 12E068767CF35B513130A458C3536CFB /* Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -915,39 +875,6 @@ }; name = Debug; }; - 1D8AD9C2EBAA83051776D8220D9FD934 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = EE7D172ED2C44C975EF2008B447ED876 /* EmojiPicker.release.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/EmojiPicker/EmojiPicker-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/EmojiPicker/EmojiPicker-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 11.1; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/EmojiPicker/EmojiPicker.modulemap"; - PRODUCT_MODULE_NAME = EmojiPicker; - PRODUCT_NAME = EmojiPicker; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; 2FF1CABA2F393C5AC709D7FB7D5C2319 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1014,38 +941,6 @@ }; name = Debug; }; - 6FEFF25EF8461B3BFE16D0B87841AA2D /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 44E1999FFFD89E8CD1820B2B48915806 /* EmojiPicker.debug.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/EmojiPicker/EmojiPicker-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/EmojiPicker/EmojiPicker-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 11.1; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/EmojiPicker/EmojiPicker.modulemap"; - PRODUCT_MODULE_NAME = EmojiPicker; - PRODUCT_NAME = EmojiPicker; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; 906E4876162C8927A901DC959A099993 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = D0B1C88F829541DAEF35CF30E76D83B7 /* Pods-EmojiPicker_Example.release.xcconfig */; @@ -1081,9 +976,25 @@ }; name = Release; }; + A66CD3EE9A7617C25051ACD6EBF6499E /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1D8AE8E109045877CA5D7BABE5517C49 /* EmojiPicker.release.xcconfig */; + buildSettings = { + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/EmojiPicker"; + IBSC_MODULE = EmojiPicker; + INFOPLIST_FILE = "Target Support Files/EmojiPicker/ResourceBundle-Resources-EmojiPicker-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 11.1; + PRODUCT_NAME = Resources; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; B982F2D28A86447894FB3628131272EA /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4F0E261765733138900691A2A0EBC94B /* EmojiPicker.unit-tests.release.xcconfig */; + baseConfigurationReference = E74EA740355CB1AFE4DDAED762318AEF /* EmojiPicker.unit-tests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ARCHS = "$(ARCHS_STANDARD_64_BIT)"; @@ -1105,9 +1016,9 @@ }; name = Release; }; - E3E1A3BB263476D540C9BEBDA4AC6675 /* Release */ = { + BABA7177CF9768DF1B23352594C44576 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EE7D172ED2C44C975EF2008B447ED876 /* EmojiPicker.release.xcconfig */; + baseConfigurationReference = FB2F11ABCD4FB22F86C92606C1A13A26 /* EmojiPicker.debug.xcconfig */; buildSettings = { CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/EmojiPicker"; IBSC_MODULE = EmojiPicker; @@ -1119,34 +1030,99 @@ TARGETED_DEVICE_FAMILY = "1,2"; WRAPPER_EXTENSION = bundle; }; + name = Debug; + }; + E6A3280B88CFE31418BB94369DC1A353 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1D8AE8E109045877CA5D7BABE5517C49 /* EmojiPicker.release.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/EmojiPicker/EmojiPicker-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/EmojiPicker/EmojiPicker-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 11.1; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/EmojiPicker/EmojiPicker.modulemap"; + PRODUCT_MODULE_NAME = EmojiPicker; + PRODUCT_NAME = EmojiPicker; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; name = Release; }; + E9F919F143989AC72F5F92D2749E7596 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = FB2F11ABCD4FB22F86C92606C1A13A26 /* EmojiPicker.debug.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/EmojiPicker/EmojiPicker-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/EmojiPicker/EmojiPicker-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 11.1; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/EmojiPicker/EmojiPicker.modulemap"; + PRODUCT_MODULE_NAME = EmojiPicker; + PRODUCT_NAME = EmojiPicker; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 2E79EC551354858368B86988525197C5 /* Build configuration list for PBXNativeTarget "Pods-EmojiPicker_Example" */ = { + 21A7DA069714778E3241D5C894549448 /* Build configuration list for PBXNativeTarget "EmojiPicker-Resources" */ = { isa = XCConfigurationList; buildConfigurations = ( - 14DB6C1B465C61158D9CEADCEEF9719A /* Debug */, - 906E4876162C8927A901DC959A099993 /* Release */, + BABA7177CF9768DF1B23352594C44576 /* Debug */, + A66CD3EE9A7617C25051ACD6EBF6499E /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { + 2E79EC551354858368B86988525197C5 /* Build configuration list for PBXNativeTarget "Pods-EmojiPicker_Example" */ = { isa = XCConfigurationList; buildConfigurations = ( - 2FF1CABA2F393C5AC709D7FB7D5C2319 /* Debug */, - 12E068767CF35B513130A458C3536CFB /* Release */, + 14DB6C1B465C61158D9CEADCEEF9719A /* Debug */, + 906E4876162C8927A901DC959A099993 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 7947C17D473D20586473E850E178C668 /* Build configuration list for PBXNativeTarget "EmojiPicker-Resources" */ = { + 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - 0E878EC4529E111D861AB60EA5DBFC2E /* Debug */, - E3E1A3BB263476D540C9BEBDA4AC6675 /* Release */, + 2FF1CABA2F393C5AC709D7FB7D5C2319 /* Debug */, + 12E068767CF35B513130A458C3536CFB /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -1160,11 +1136,11 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - D0828FFC1F75C2C3306D25A5AF9EDB66 /* Build configuration list for PBXNativeTarget "EmojiPicker" */ = { + FCEEB43ACE97F78498B1321C0C38BC60 /* Build configuration list for PBXNativeTarget "EmojiPicker" */ = { isa = XCConfigurationList; buildConfigurations = ( - 6FEFF25EF8461B3BFE16D0B87841AA2D /* Debug */, - 1D8AD9C2EBAA83051776D8220D9FD934 /* Release */, + E9F919F143989AC72F5F92D2749E7596 /* Debug */, + E6A3280B88CFE31418BB94369DC1A353 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Sources/EmojiPicker/Extensions/Foundation/Array.swift b/Sources/EmojiPicker/Extensions/Foundation/Array.swift deleted file mode 100644 index 4e2cedf..0000000 --- a/Sources/EmojiPicker/Extensions/Foundation/Array.swift +++ /dev/null @@ -1,38 +0,0 @@ -// The MIT License (MIT) -// Copyright © 2022 Ivan Izyumkin -// -// 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. - -import Foundation - -/** - Emojis are being represented as hex values. This code converts provided emojis (ints) to a one line string. - - - Experiment: `[0x1F600, 0x1F601, 0x1F602, 0x1F923, 0x1F603]` -> "😀😁😂🤣😃". - */ -extension Array where Element == Int { - func emoji() -> String { - var emoji = "" - for hexValue in self { - guard let unicode = UnicodeScalar(hexValue) else { break } - emoji.append(String(unicode)) - } - return emoji - } -} diff --git a/Sources/EmojiPicker/Resources/Data/1.json b/Sources/EmojiPicker/Resources/Data/1.json deleted file mode 100644 index 7a7f9b3..0000000 --- a/Sources/EmojiPicker/Resources/Data/1.json +++ /dev/null @@ -1 +0,0 @@ -{"categories":[{"id":"people","emojis":["grinning","smiley","smile","grin","laughing","sweat_smile","joy","slightly_smiling_face","upside_down_face","wink","blush","innocent","heart_eyes","kissing_heart","kissing","relaxed","kissing_closed_eyes","kissing_smiling_eyes","yum","stuck_out_tongue","stuck_out_tongue_winking_eye","stuck_out_tongue_closed_eyes","money_mouth_face","hugging_face","thinking_face","zipper_mouth_face","neutral_face","expressionless","no_mouth","smirk","unamused","face_with_rolling_eyes","grimacing","relieved","pensive","sleepy","sleeping","mask","face_with_thermometer","face_with_head_bandage","dizzy_face","sunglasses","nerd_face","confused","worried","slightly_frowning_face","white_frowning_face","open_mouth","hushed","astonished","flushed","frowning","anguished","fearful","cold_sweat","disappointed_relieved","cry","sob","scream","confounded","persevere","disappointed","sweat","weary","tired_face","triumph","rage","angry","smiling_imp","imp","skull","skull_and_crossbones","hankey","japanese_ogre","japanese_goblin","ghost","alien","space_invader","robot_face","smiley_cat","smile_cat","joy_cat","heart_eyes_cat","smirk_cat","kissing_cat","scream_cat","crying_cat_face","pouting_cat","see_no_evil","hear_no_evil","speak_no_evil","kiss","love_letter","cupid","gift_heart","sparkling_heart","heartpulse","heartbeat","revolving_hearts","two_hearts","heart_decoration","heavy_heart_exclamation_mark_ornament","broken_heart","heart","yellow_heart","green_heart","blue_heart","purple_heart","100","anger","boom","dizzy","sweat_drops","dash","wave","raised_hand_with_fingers_splayed","hand","spock-hand","ok_hand","v","the_horns","point_left","point_right","point_up_2","middle_finger","point_down","point_up","+1","-1","fist","facepunch","clap","raised_hands","open_hands","pray","writing_hand","nail_care","muscle","ear","nose","eyes","eye","tongue","lips","baby","boy","girl","person_with_blond_hair","man","woman","older_man","older_woman","person_frowning","person_with_pouting_face","no_good","ok_woman","information_desk_person","raising_hand","bow","cop","sleuth_or_spy","guardsman","construction_worker","princess","man_with_turban","man_with_gua_pi_mao","bride_with_veil","angel","santa","massage","haircut","walking","runner","dancer","man_in_business_suit_levitating","dancers","horse_racing","skier","snowboarder","golfer","surfer","rowboat","swimmer","person_with_ball","weight_lifter","bicyclist","mountain_bicyclist","bath","sleeping_accommodation","two_women_holding_hands","man_and_woman_holding_hands","two_men_holding_hands","couplekiss","couple_with_heart","family","speaking_head_in_silhouette","bust_in_silhouette","busts_in_silhouette","footprints","hole","bomb","speech_balloon","right_anger_bubble","thought_balloon","zzz"]},{"id":"nature","emojis":["monkey_face","monkey","dog","dog2","poodle","wolf","cat","cat2","lion_face","tiger","tiger2","leopard","horse","racehorse","unicorn_face","cow","ox","water_buffalo","cow2","pig","pig2","boar","pig_nose","ram","sheep","goat","dromedary_camel","camel","elephant","mouse","mouse2","rat","hamster","rabbit","rabbit2","chipmunk","bear","koala","panda_face","feet","turkey","chicken","rooster","hatching_chick","baby_chick","hatched_chick","bird","penguin","dove_of_peace","frog","crocodile","turtle","snake","dragon_face","dragon","whale","whale2","dolphin","fish","tropical_fish","blowfish","octopus","shell","snail","bug","ant","bee","ladybug","spider","spider_web","scorpion","bouquet","cherry_blossom","white_flower","rosette","rose","hibiscus","sunflower","blossom","tulip","seedling","evergreen_tree","deciduous_tree","palm_tree","cactus","ear_of_rice","herb","shamrock","four_leaf_clover","maple_leaf","fallen_leaf","leaves"]},{"id":"foods","emojis":["grapes","melon","watermelon","tangerine","lemon","banana","pineapple","apple","green_apple","pear","peach","cherries","strawberry","tomato","eggplant","corn","hot_pepper","mushroom","chestnut","bread","cheese_wedge","meat_on_bone","poultry_leg","hamburger","fries","pizza","hotdog","taco","burrito","fried_egg","stew","popcorn","bento","rice_cracker","rice_ball","rice","curry","ramen","spaghetti","sweet_potato","oden","sushi","fried_shrimp","fish_cake","dango","crab","icecream","shaved_ice","ice_cream","doughnut","cookie","birthday","cake","chocolate_bar","candy","lollipop","custard","honey_pot","baby_bottle","coffee","tea","sake","champagne","wine_glass","cocktail","tropical_drink","beer","beers","knife_fork_plate","fork_and_knife","hocho","amphora"]},{"id":"activity","emojis":["jack_o_lantern","christmas_tree","fireworks","sparkler","sparkles","balloon","tada","confetti_ball","tanabata_tree","bamboo","dolls","flags","wind_chime","rice_scene","ribbon","gift","reminder_ribbon","admission_tickets","ticket","medal","trophy","sports_medal","soccer","baseball","basketball","volleyball","football","rugby_football","tennis","bowling","cricket_bat_and_ball","field_hockey_stick_and_ball","ice_hockey_stick_and_puck","table_tennis_paddle_and_ball","badminton_racquet_and_shuttlecock","golf","ice_skate","fishing_pole_and_fish","running_shirt_with_sash","ski","dart","8ball","crystal_ball","video_game","joystick","slot_machine","game_die","spades","hearts","diamonds","clubs","black_joker","mahjong","flower_playing_cards","performing_arts","frame_with_picture","art"]},{"id":"places","emojis":["earth_africa","earth_americas","earth_asia","globe_with_meridians","world_map","japan","snow_capped_mountain","mountain","volcano","mount_fuji","camping","beach_with_umbrella","desert","desert_island","national_park","stadium","classical_building","building_construction","house_buildings","derelict_house_building","house","house_with_garden","office","post_office","european_post_office","hospital","bank","hotel","love_hotel","convenience_store","school","department_store","factory","japanese_castle","european_castle","wedding","tokyo_tower","statue_of_liberty","church","mosque","synagogue","shinto_shrine","kaaba","fountain","tent","foggy","night_with_stars","cityscape","sunrise_over_mountains","sunrise","city_sunset","city_sunrise","bridge_at_night","hotsprings","carousel_horse","ferris_wheel","roller_coaster","barber","circus_tent","steam_locomotive","railway_car","bullettrain_side","bullettrain_front","train2","metro","light_rail","station","tram","monorail","mountain_railway","train","bus","oncoming_bus","trolleybus","minibus","ambulance","fire_engine","police_car","oncoming_police_car","taxi","oncoming_taxi","car","oncoming_automobile","blue_car","truck","articulated_lorry","tractor","racing_car","racing_motorcycle","bike","busstop","motorway","railway_track","oil_drum","fuelpump","rotating_light","traffic_light","vertical_traffic_light","construction","anchor","boat","speedboat","passenger_ship","ferry","motor_boat","ship","airplane","small_airplane","airplane_departure","airplane_arriving","seat","helicopter","suspension_railway","mountain_cableway","aerial_tramway","satellite","rocket","bellhop_bell","hourglass","hourglass_flowing_sand","watch","alarm_clock","stopwatch","timer_clock","mantelpiece_clock","clock12","clock1230","clock1","clock130","clock2","clock230","clock3","clock330","clock4","clock430","clock5","clock530","clock6","clock630","clock7","clock730","clock8","clock830","clock9","clock930","clock10","clock1030","clock11","clock1130","new_moon","waxing_crescent_moon","first_quarter_moon","moon","full_moon","waning_gibbous_moon","last_quarter_moon","waning_crescent_moon","crescent_moon","new_moon_with_face","first_quarter_moon_with_face","last_quarter_moon_with_face","thermometer","sunny","full_moon_with_face","sun_with_face","star","star2","stars","milky_way","cloud","partly_sunny","thunder_cloud_and_rain","mostly_sunny","barely_sunny","partly_sunny_rain","rain_cloud","snow_cloud","lightning","tornado","fog","wind_blowing_face","cyclone","rainbow","closed_umbrella","umbrella","umbrella_with_rain_drops","umbrella_on_ground","zap","snowflake","snowman","snowman_without_snow","comet","fire","droplet","ocean"]},{"id":"objects","emojis":["eyeglasses","dark_sunglasses","necktie","shirt","jeans","dress","kimono","bikini","womans_clothes","purse","handbag","pouch","shopping_bags","school_satchel","mans_shoe","athletic_shoe","high_heel","sandal","boot","crown","womans_hat","tophat","mortar_board","helmet_with_white_cross","prayer_beads","lipstick","ring","gem","mute","speaker","sound","loud_sound","loudspeaker","mega","postal_horn","bell","no_bell","musical_score","musical_note","notes","studio_microphone","level_slider","control_knobs","microphone","headphones","radio","saxophone","guitar","musical_keyboard","trumpet","violin","iphone","calling","phone","telephone_receiver","pager","fax","battery","electric_plug","computer","desktop_computer","printer","keyboard","three_button_mouse","trackball","minidisc","floppy_disk","cd","dvd","movie_camera","film_frames","film_projector","clapper","tv","camera","camera_with_flash","video_camera","vhs","mag","mag_right","candle","bulb","flashlight","izakaya_lantern","notebook_with_decorative_cover","closed_book","book","green_book","blue_book","orange_book","books","notebook","ledger","page_with_curl","scroll","page_facing_up","newspaper","rolled_up_newspaper","bookmark_tabs","bookmark","label","moneybag","yen","dollar","euro","pound","money_with_wings","credit_card","chart","email","e-mail","incoming_envelope","envelope_with_arrow","outbox_tray","inbox_tray","package","mailbox","mailbox_closed","mailbox_with_mail","mailbox_with_no_mail","postbox","ballot_box_with_ballot","pencil2","black_nib","lower_left_fountain_pen","lower_left_ballpoint_pen","lower_left_paintbrush","lower_left_crayon","memo","briefcase","file_folder","open_file_folder","card_index_dividers","date","calendar","spiral_note_pad","spiral_calendar_pad","card_index","chart_with_upwards_trend","chart_with_downwards_trend","bar_chart","clipboard","pushpin","round_pushpin","paperclip","linked_paperclips","straight_ruler","triangular_ruler","scissors","card_file_box","file_cabinet","wastebasket","lock","unlock","lock_with_ink_pen","closed_lock_with_key","key","old_key","hammer","pick","hammer_and_pick","hammer_and_wrench","dagger_knife","crossed_swords","gun","bow_and_arrow","shield","wrench","nut_and_bolt","gear","compression","scales","link","chains","alembic","microscope","telescope","satellite_antenna","syringe","pill","door","bed","couch_and_lamp","toilet","shower","bathtub","smoking","coffin","funeral_urn","moyai"]},{"id":"symbols","emojis":["atm","put_litter_in_its_place","potable_water","wheelchair","mens","womens","restroom","baby_symbol","wc","passport_control","customs","baggage_claim","left_luggage","warning","children_crossing","no_entry","no_entry_sign","no_bicycles","no_smoking","do_not_litter","non-potable_water","no_pedestrians","no_mobile_phones","underage","radioactive_sign","biohazard_sign","arrow_up","arrow_upper_right","arrow_right","arrow_lower_right","arrow_down","arrow_lower_left","arrow_left","arrow_upper_left","arrow_up_down","left_right_arrow","leftwards_arrow_with_hook","arrow_right_hook","arrow_heading_up","arrow_heading_down","arrows_clockwise","arrows_counterclockwise","back","end","on","soon","top","place_of_worship","atom_symbol","om_symbol","star_of_david","wheel_of_dharma","yin_yang","latin_cross","orthodox_cross","star_and_crescent","peace_symbol","menorah_with_nine_branches","six_pointed_star","aries","taurus","gemini","cancer","leo","virgo","libra","scorpius","sagittarius","capricorn","aquarius","pisces","ophiuchus","twisted_rightwards_arrows","repeat","repeat_one","arrow_forward","fast_forward","black_right_pointing_double_triangle_with_vertical_bar","black_right_pointing_triangle_with_double_vertical_bar","arrow_backward","rewind","black_left_pointing_double_triangle_with_vertical_bar","arrow_up_small","arrow_double_up","arrow_down_small","arrow_double_down","double_vertical_bar","black_square_for_stop","black_circle_for_record","eject","cinema","low_brightness","high_brightness","signal_strength","vibration_mode","mobile_phone_off","heavy_multiplication_x","heavy_plus_sign","heavy_minus_sign","heavy_division_sign","bangbang","interrobang","question","grey_question","grey_exclamation","exclamation","wavy_dash","currency_exchange","heavy_dollar_sign","recycle","fleur_de_lis","trident","name_badge","beginner","o","white_check_mark","ballot_box_with_check","heavy_check_mark","x","negative_squared_cross_mark","curly_loop","loop","part_alternation_mark","eight_spoked_asterisk","eight_pointed_black_star","sparkle","copyright","registered","tm","hash","zero","one","two","three","four","five","six","seven","eight","nine","keycap_ten","capital_abcd","abcd","1234","symbols","abc","a","ab","b","cl","cool","free","information_source","id","m","new","ng","o2","ok","parking","sos","up","vs","koko","sa","u6708","u6709","u6307","ideograph_advantage","u5272","u7121","u7981","accept","u7533","u5408","u7a7a","congratulations","secret","u55b6","u6e80","red_circle","large_blue_circle","black_circle","white_circle","black_large_square","white_large_square","black_medium_square","white_medium_square","black_medium_small_square","white_medium_small_square","black_small_square","white_small_square","large_orange_diamond","large_blue_diamond","small_orange_diamond","small_blue_diamond","small_red_triangle","small_red_triangle_down","diamond_shape_with_a_dot_inside","radio_button","white_square_button","black_square_button"]},{"id":"flags","emojis":["checkered_flag","cn","crossed_flags","de","es","fr","gb","it","jp","kr","ru","triangular_flag_on_post","us","waving_black_flag","waving_white_flag"]}],"emojis":{"100":{"id":"100","name":"Hundred Points","keywords":["100","score","perfect","numbers","century","exam","quiz","test","pass"],"skins":[{"unified":"1f4af","native":"💯","x":28,"y":6}],"version":1},"1234":{"id":"1234","name":"Input Numbers","keywords":["1234","blue","square"],"skins":[{"unified":"1f522","native":"🔢","x":29,"y":59}],"version":1},"grinning":{"id":"grinning","name":"Grinning Face","emoticons":[":D"],"keywords":["smile","happy","joy",":D","grin"],"skins":[{"unified":"1f600","native":"😀","x":32,"y":20}],"version":1},"smiley":{"id":"smiley","name":"Grinning Face with Big Eyes","emoticons":[":)","=)","=-)"],"keywords":["smiley","happy","joy","haha",":D",":)","smile","funny"],"skins":[{"unified":"1f603","native":"😃","x":32,"y":23}],"version":1},"smile":{"id":"smile","name":"Grinning Face with Smiling Eyes","emoticons":[":)","C:","c:",":D",":-D"],"keywords":["smile","happy","joy","funny","haha","laugh","like",":D",":)"],"skins":[{"unified":"1f604","native":"😄","x":32,"y":24}],"version":1},"grin":{"id":"grin","name":"Beaming Face with Smiling Eyes","keywords":["grin","happy","smile","joy","kawaii"],"skins":[{"unified":"1f601","native":"😁","x":32,"y":21}],"version":1},"laughing":{"id":"laughing","name":"Grinning Squinting Face","emoticons":[":>",":->"],"keywords":["laughing","satisfied","happy","joy","lol","haha","glad","XD","laugh"],"skins":[{"unified":"1f606","native":"😆","x":32,"y":26}],"version":1},"sweat_smile":{"id":"sweat_smile","name":"Grinning Face with Sweat","keywords":["smile","hot","happy","laugh","relief"],"skins":[{"unified":"1f605","native":"😅","x":32,"y":25}],"version":1},"joy":{"id":"joy","name":"Face with Tears of Joy","keywords":["cry","weep","happy","happytears","haha"],"skins":[{"unified":"1f602","native":"😂","x":32,"y":22}],"version":1},"slightly_smiling_face":{"id":"slightly_smiling_face","name":"Slightly Smiling Face","emoticons":[":)","(:",":-)"],"keywords":["smile"],"skins":[{"unified":"1f642","native":"🙂","x":33,"y":28}],"version":1},"upside_down_face":{"id":"upside_down_face","name":"Upside-Down Face","keywords":["upside","down","flipped","silly","smile"],"skins":[{"unified":"1f643","native":"🙃","x":33,"y":29}],"version":1},"wink":{"id":"wink","name":"Winking Face","emoticons":[";)",";-)"],"keywords":["wink","happy","mischievous","secret",";)","smile","eye"],"skins":[{"unified":"1f609","native":"😉","x":32,"y":29}],"version":1},"blush":{"id":"blush","name":"Smiling Face with Smiling Eyes","emoticons":[":)"],"keywords":["blush","smile","happy","flushed","crush","embarrassed","shy","joy"],"skins":[{"unified":"1f60a","native":"😊","x":32,"y":30}],"version":1},"innocent":{"id":"innocent","name":"Smiling Face with Halo","keywords":["innocent","angel","heaven"],"skins":[{"unified":"1f607","native":"😇","x":32,"y":27}],"version":1},"heart_eyes":{"id":"heart_eyes","name":"Smiling Face with Heart-Eyes","keywords":["heart","eyes","love","like","affection","valentines","infatuation","crush"],"skins":[{"unified":"1f60d","native":"😍","x":32,"y":33}],"version":1},"kissing_heart":{"id":"kissing_heart","name":"Face Blowing a Kiss","emoticons":[":*",":-*"],"keywords":["kissing","heart","love","like","affection","valentines","infatuation"],"skins":[{"unified":"1f618","native":"😘","x":32,"y":44}],"version":1},"kissing":{"id":"kissing","name":"Kissing Face","keywords":["love","like","3","valentines","infatuation","kiss"],"skins":[{"unified":"1f617","native":"😗","x":32,"y":43}],"version":1},"relaxed":{"id":"relaxed","name":"Smiling Face","keywords":["relaxed","blush","massage","happiness"],"skins":[{"unified":"263a-fe0f","native":"☺️","x":57,"y":4}],"version":1},"kissing_closed_eyes":{"id":"kissing_closed_eyes","name":"Kissing Face with Closed Eyes","keywords":["love","like","affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f61a","native":"😚","x":32,"y":46}],"version":1},"kissing_smiling_eyes":{"id":"kissing_smiling_eyes","name":"Kissing Face with Smiling Eyes","keywords":["affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f619","native":"😙","x":32,"y":45}],"version":1},"yum":{"id":"yum","name":"Face Savoring Food","keywords":["yum","happy","joy","tongue","smile","silly","yummy","nom","delicious","savouring"],"skins":[{"unified":"1f60b","native":"😋","x":32,"y":31}],"version":1},"stuck_out_tongue":{"id":"stuck_out_tongue","name":"Face with Tongue","emoticons":[":p",":-p",":P",":-P",":b",":-b"],"keywords":["stuck","out","prank","childish","playful","mischievous","smile"],"skins":[{"unified":"1f61b","native":"😛","x":32,"y":47}],"version":1},"stuck_out_tongue_winking_eye":{"id":"stuck_out_tongue_winking_eye","name":"Winking Face with Tongue","emoticons":[";p",";-p",";b",";-b",";P",";-P"],"keywords":["stuck","out","eye","prank","childish","playful","mischievous","smile","wink"],"skins":[{"unified":"1f61c","native":"😜","x":32,"y":48}],"version":1},"stuck_out_tongue_closed_eyes":{"id":"stuck_out_tongue_closed_eyes","name":"Squinting Face with Tongue","keywords":["stuck","out","closed","eyes","prank","playful","mischievous","smile"],"skins":[{"unified":"1f61d","native":"😝","x":32,"y":49}],"version":1},"money_mouth_face":{"id":"money_mouth_face","name":"Money-Mouth Face","keywords":["money","mouth","rich","dollar"],"skins":[{"unified":"1f911","native":"🤑","x":38,"y":59}],"version":1},"hugging_face":{"id":"hugging_face","name":"Hugging Face","keywords":["smile","hug"],"skins":[{"unified":"1f917","native":"🤗","x":39,"y":4}],"version":1},"thinking_face":{"id":"thinking_face","name":"Thinking Face","keywords":["hmmm","think","consider"],"skins":[{"unified":"1f914","native":"🤔","x":39,"y":1}],"version":1},"zipper_mouth_face":{"id":"zipper_mouth_face","name":"Zipper-Mouth Face","keywords":["zipper","mouth","sealed","secret"],"skins":[{"unified":"1f910","native":"🤐","x":38,"y":58}],"version":1},"neutral_face":{"id":"neutral_face","name":"Neutral Face","emoticons":[":|",":-|"],"keywords":["indifference","meh",":",""],"skins":[{"unified":"1f610","native":"😐","x":32,"y":36}],"version":1},"expressionless":{"id":"expressionless","name":"Expressionless Face","emoticons":["-_-"],"keywords":["indifferent","-","","meh","deadpan"],"skins":[{"unified":"1f611","native":"😑","x":32,"y":37}],"version":1},"no_mouth":{"id":"no_mouth","name":"Face Without Mouth","keywords":["no","hellokitty"],"skins":[{"unified":"1f636","native":"😶","x":33,"y":16}],"version":1},"smirk":{"id":"smirk","name":"Smirking Face","keywords":["smirk","smile","mean","prank","smug","sarcasm"],"skins":[{"unified":"1f60f","native":"😏","x":32,"y":35}],"version":1},"unamused":{"id":"unamused","name":"Unamused Face","emoticons":[":("],"keywords":["indifference","bored","straight","serious","sarcasm","unimpressed","skeptical","dubious","side","eye"],"skins":[{"unified":"1f612","native":"😒","x":32,"y":38}],"version":1},"face_with_rolling_eyes":{"id":"face_with_rolling_eyes","name":"Face with Rolling Eyes","keywords":["eyeroll","frustrated"],"skins":[{"unified":"1f644","native":"🙄","x":33,"y":30}],"version":1},"grimacing":{"id":"grimacing","name":"Grimacing Face","keywords":["grimace","teeth"],"skins":[{"unified":"1f62c","native":"😬","x":33,"y":3}],"version":1},"relieved":{"id":"relieved","name":"Relieved Face","keywords":["relaxed","phew","massage","happiness"],"skins":[{"unified":"1f60c","native":"😌","x":32,"y":32}],"version":1},"pensive":{"id":"pensive","name":"Pensive Face","keywords":["sad","depressed","upset"],"skins":[{"unified":"1f614","native":"😔","x":32,"y":40}],"version":1},"sleepy":{"id":"sleepy","name":"Sleepy Face","keywords":["tired","rest","nap"],"skins":[{"unified":"1f62a","native":"😪","x":33,"y":1}],"version":1},"sleeping":{"id":"sleeping","name":"Sleeping Face","keywords":["tired","sleepy","night","zzz"],"skins":[{"unified":"1f634","native":"😴","x":33,"y":12}],"version":1},"mask":{"id":"mask","name":"Face with Medical Mask","keywords":["sick","ill","disease"],"skins":[{"unified":"1f637","native":"😷","x":33,"y":17}],"version":1},"face_with_thermometer":{"id":"face_with_thermometer","name":"Face with Thermometer","keywords":["sick","temperature","cold","fever"],"skins":[{"unified":"1f912","native":"🤒","x":38,"y":60}],"version":1},"face_with_head_bandage":{"id":"face_with_head_bandage","name":"Face with Head-Bandage","keywords":["head","bandage","injured","clumsy","hurt"],"skins":[{"unified":"1f915","native":"🤕","x":39,"y":2}],"version":1},"dizzy_face":{"id":"dizzy_face","name":"Dizzy Face","keywords":["spent","unconscious","xox"],"skins":[{"unified":"1f635","native":"😵","x":33,"y":14}],"version":1},"sunglasses":{"id":"sunglasses","name":"Smiling Face with Sunglasses","emoticons":["8)"],"keywords":["cool","smile","summer","beach","sunglass"],"skins":[{"unified":"1f60e","native":"😎","x":32,"y":34}],"version":1},"nerd_face":{"id":"nerd_face","name":"Nerd Face","keywords":["nerdy","geek","dork"],"skins":[{"unified":"1f913","native":"🤓","x":39,"y":0}],"version":1},"confused":{"id":"confused","name":"Confused Face","emoticons":[":\\",":-\\",":/",":-/"],"keywords":["indifference","huh","weird","hmmm",":/"],"skins":[{"unified":"1f615","native":"😕","x":32,"y":41}],"version":1},"worried":{"id":"worried","name":"Worried Face","keywords":["concern","nervous",":("],"skins":[{"unified":"1f61f","native":"😟","x":32,"y":51}],"version":1},"slightly_frowning_face":{"id":"slightly_frowning_face","name":"Slightly Frowning Face","keywords":["disappointed","sad","upset"],"skins":[{"unified":"1f641","native":"🙁","x":33,"y":27}],"version":1},"white_frowning_face":{"id":"white_frowning_face","name":"Frowning Face","keywords":["white","sad","upset","frown"],"skins":[{"unified":"2639-fe0f","native":"☹️","x":57,"y":3}],"version":1},"open_mouth":{"id":"open_mouth","name":"Face with Open Mouth","emoticons":[":o",":-o",":O",":-O"],"keywords":["surprise","impressed","wow","whoa",":O"],"skins":[{"unified":"1f62e","native":"😮","x":33,"y":6}],"version":1},"hushed":{"id":"hushed","name":"Hushed Face","keywords":["woo","shh"],"skins":[{"unified":"1f62f","native":"😯","x":33,"y":7}],"version":1},"astonished":{"id":"astonished","name":"Astonished Face","keywords":["xox","surprised","poisoned"],"skins":[{"unified":"1f632","native":"😲","x":33,"y":10}],"version":1},"flushed":{"id":"flushed","name":"Flushed Face","keywords":["blush","shy","flattered"],"skins":[{"unified":"1f633","native":"😳","x":33,"y":11}],"version":1},"frowning":{"id":"frowning","name":"Frowning Face with Open Mouth","keywords":["aw","what"],"skins":[{"unified":"1f626","native":"😦","x":32,"y":58}],"version":1},"anguished":{"id":"anguished","name":"Anguished Face","emoticons":["D:"],"keywords":["stunned","nervous"],"skins":[{"unified":"1f627","native":"😧","x":32,"y":59}],"version":1},"fearful":{"id":"fearful","name":"Fearful Face","keywords":["scared","terrified","nervous","oops","huh"],"skins":[{"unified":"1f628","native":"😨","x":32,"y":60}],"version":1},"cold_sweat":{"id":"cold_sweat","name":"Anxious Face with Sweat","keywords":["cold","nervous"],"skins":[{"unified":"1f630","native":"😰","x":33,"y":8}],"version":1},"disappointed_relieved":{"id":"disappointed_relieved","name":"Sad but Relieved Face","keywords":["disappointed","phew","sweat","nervous"],"skins":[{"unified":"1f625","native":"😥","x":32,"y":57}],"version":1},"cry":{"id":"cry","name":"Crying Face","emoticons":[":'("],"keywords":["cry","tears","sad","depressed","upset",":'("],"skins":[{"unified":"1f622","native":"😢","x":32,"y":54}],"version":1},"sob":{"id":"sob","name":"Loudly Crying Face","emoticons":[":'("],"keywords":["sob","cry","tears","sad","upset","depressed"],"skins":[{"unified":"1f62d","native":"😭","x":33,"y":4}],"version":1},"scream":{"id":"scream","name":"Face Screaming in Fear","keywords":["scream","munch","scared","omg"],"skins":[{"unified":"1f631","native":"😱","x":33,"y":9}],"version":1},"confounded":{"id":"confounded","name":"Confounded Face","keywords":["confused","sick","unwell","oops",":S"],"skins":[{"unified":"1f616","native":"😖","x":32,"y":42}],"version":1},"persevere":{"id":"persevere","name":"Persevering Face","keywords":["persevere","sick","no","upset","oops"],"skins":[{"unified":"1f623","native":"😣","x":32,"y":55}],"version":1},"disappointed":{"id":"disappointed","name":"Disappointed Face","emoticons":["):",":(",":-("],"keywords":["sad","upset","depressed",":("],"skins":[{"unified":"1f61e","native":"😞","x":32,"y":50}],"version":1},"sweat":{"id":"sweat","name":"Face with Cold Sweat","keywords":["downcast","hot","sad","tired","exercise"],"skins":[{"unified":"1f613","native":"😓","x":32,"y":39}],"version":1},"weary":{"id":"weary","name":"Weary Face","keywords":["tired","sleepy","sad","frustrated","upset"],"skins":[{"unified":"1f629","native":"😩","x":33,"y":0}],"version":1},"tired_face":{"id":"tired_face","name":"Tired Face","keywords":["sick","whine","upset","frustrated"],"skins":[{"unified":"1f62b","native":"😫","x":33,"y":2}],"version":1},"triumph":{"id":"triumph","name":"Face with Look of Triumph","keywords":["steam","from","nose","gas","phew","proud","pride"],"skins":[{"unified":"1f624","native":"😤","x":32,"y":56}],"version":1},"rage":{"id":"rage","name":"Pouting Face","keywords":["rage","angry","mad","hate","despise"],"skins":[{"unified":"1f621","native":"😡","x":32,"y":53}],"version":1},"angry":{"id":"angry","name":"Angry Face","emoticons":[">:(",">:-("],"keywords":["mad","annoyed","frustrated"],"skins":[{"unified":"1f620","native":"😠","x":32,"y":52}],"version":1},"smiling_imp":{"id":"smiling_imp","name":"Smiling Face with Horns","keywords":["imp","devil"],"skins":[{"unified":"1f608","native":"😈","x":32,"y":28}],"version":1},"imp":{"id":"imp","name":"Imp","keywords":["angry","face","with","horns","devil"],"skins":[{"unified":"1f47f","native":"👿","x":25,"y":8}],"version":1},"skull":{"id":"skull","name":"Skull","keywords":["dead","skeleton","creepy","death"],"skins":[{"unified":"1f480","native":"💀","x":25,"y":9}],"version":1},"skull_and_crossbones":{"id":"skull_and_crossbones","name":"Skull and Crossbones","keywords":["poison","danger","deadly","scary","death","pirate","evil"],"skins":[{"unified":"2620-fe0f","native":"☠️","x":56,"y":56}],"version":1},"hankey":{"id":"hankey","name":"Pile of Poo","keywords":["hankey","poop","shit","shitface","fail","turd"],"skins":[{"unified":"1f4a9","native":"💩","x":27,"y":56}],"version":1},"japanese_ogre":{"id":"japanese_ogre","name":"Ogre","keywords":["japanese","monster","red","mask","halloween","scary","creepy","devil","demon"],"skins":[{"unified":"1f479","native":"👹","x":24,"y":58}],"version":1},"japanese_goblin":{"id":"japanese_goblin","name":"Goblin","keywords":["japanese","red","evil","mask","monster","scary","creepy"],"skins":[{"unified":"1f47a","native":"👺","x":24,"y":59}],"version":1},"ghost":{"id":"ghost","name":"Ghost","keywords":["halloween","spooky","scary"],"skins":[{"unified":"1f47b","native":"👻","x":24,"y":60}],"version":1},"alien":{"id":"alien","name":"Alien","keywords":["UFO","paul","weird","outer","space"],"skins":[{"unified":"1f47d","native":"👽","x":25,"y":6}],"version":1},"space_invader":{"id":"space_invader","name":"Alien Monster","keywords":["space","invader","game","arcade","play"],"skins":[{"unified":"1f47e","native":"👾","x":25,"y":7}],"version":1},"robot_face":{"id":"robot_face","name":"Robot","keywords":["face","computer","machine","bot"],"skins":[{"unified":"1f916","native":"🤖","x":39,"y":3}],"version":1},"smiley_cat":{"id":"smiley_cat","name":"Grinning Cat","keywords":["smiley","animal","cats","happy","smile"],"skins":[{"unified":"1f63a","native":"😺","x":33,"y":20}],"version":1},"smile_cat":{"id":"smile_cat","name":"Grinning Cat with Smiling Eyes","keywords":["smile","animal","cats"],"skins":[{"unified":"1f638","native":"😸","x":33,"y":18}],"version":1},"joy_cat":{"id":"joy_cat","name":"Cat with Tears of Joy","keywords":["animal","cats","haha","happy"],"skins":[{"unified":"1f639","native":"😹","x":33,"y":19}],"version":1},"heart_eyes_cat":{"id":"heart_eyes_cat","name":"Smiling Cat with Heart-Eyes","keywords":["heart","eyes","animal","love","like","affection","cats","valentines"],"skins":[{"unified":"1f63b","native":"😻","x":33,"y":21}],"version":1},"smirk_cat":{"id":"smirk_cat","name":"Cat with Wry Smile","keywords":["smirk","animal","cats"],"skins":[{"unified":"1f63c","native":"😼","x":33,"y":22}],"version":1},"kissing_cat":{"id":"kissing_cat","name":"Kissing Cat","keywords":["animal","cats","kiss"],"skins":[{"unified":"1f63d","native":"😽","x":33,"y":23}],"version":1},"scream_cat":{"id":"scream_cat","name":"Weary Cat","keywords":["scream","animal","cats","munch","scared"],"skins":[{"unified":"1f640","native":"🙀","x":33,"y":26}],"version":1},"crying_cat_face":{"id":"crying_cat_face","name":"Crying Cat","keywords":["face","animal","tears","weep","sad","cats","upset","cry"],"skins":[{"unified":"1f63f","native":"😿","x":33,"y":25}],"version":1},"pouting_cat":{"id":"pouting_cat","name":"Pouting Cat","keywords":["animal","cats"],"skins":[{"unified":"1f63e","native":"😾","x":33,"y":24}],"version":1},"see_no_evil":{"id":"see_no_evil","name":"See-No-Evil Monkey","keywords":["see","no","evil","animal","nature","haha"],"skins":[{"unified":"1f648","native":"🙈","x":34,"y":24}],"version":1},"hear_no_evil":{"id":"hear_no_evil","name":"Hear-No-Evil Monkey","keywords":["hear","no","evil","animal","nature"],"skins":[{"unified":"1f649","native":"🙉","x":34,"y":25}],"version":1},"speak_no_evil":{"id":"speak_no_evil","name":"Speak-No-Evil Monkey","keywords":["speak","no","evil","animal","nature","omg"],"skins":[{"unified":"1f64a","native":"🙊","x":34,"y":26}],"version":1},"kiss":{"id":"kiss","name":"Kiss Mark","keywords":["face","lips","love","like","affection","valentines"],"skins":[{"unified":"1f48b","native":"💋","x":26,"y":37}],"version":1},"love_letter":{"id":"love_letter","name":"Love Letter","keywords":["email","like","affection","envelope","valentines"],"skins":[{"unified":"1f48c","native":"💌","x":26,"y":38}],"version":1},"cupid":{"id":"cupid","name":"Heart with Arrow","keywords":["cupid","love","like","affection","valentines"],"skins":[{"unified":"1f498","native":"💘","x":27,"y":39}],"version":1},"gift_heart":{"id":"gift_heart","name":"Heart with Ribbon","keywords":["gift","love","valentines"],"skins":[{"unified":"1f49d","native":"💝","x":27,"y":44}],"version":1},"sparkling_heart":{"id":"sparkling_heart","name":"Sparkling Heart","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f496","native":"💖","x":27,"y":37}],"version":1},"heartpulse":{"id":"heartpulse","name":"Growing Heart","keywords":["heartpulse","like","love","affection","valentines","pink"],"skins":[{"unified":"1f497","native":"💗","x":27,"y":38}],"version":1},"heartbeat":{"id":"heartbeat","name":"Beating Heart","keywords":["heartbeat","love","like","affection","valentines","pink"],"skins":[{"unified":"1f493","native":"💓","x":27,"y":34}],"version":1},"revolving_hearts":{"id":"revolving_hearts","name":"Revolving Hearts","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f49e","native":"💞","x":27,"y":45}],"version":1},"two_hearts":{"id":"two_hearts","name":"Two Hearts","keywords":["love","like","affection","valentines","heart"],"skins":[{"unified":"1f495","native":"💕","x":27,"y":36}],"version":1},"heart_decoration":{"id":"heart_decoration","name":"Heart Decoration","keywords":["purple","square","love","like"],"skins":[{"unified":"1f49f","native":"💟","x":27,"y":46}],"version":1},"heavy_heart_exclamation_mark_ornament":{"id":"heavy_heart_exclamation_mark_ornament","name":"Heart Exclamation","keywords":["heavy","mark","ornament","decoration","love"],"skins":[{"unified":"2763-fe0f","native":"❣️","x":59,"y":7}],"version":1},"broken_heart":{"id":"broken_heart","name":"Broken Heart","emoticons":["",":->"],"keywords":["laughing","satisfied","happy","joy","lol","haha","glad","XD","laugh"],"skins":[{"unified":"1f606","native":"😆","x":32,"y":26}],"version":1},"sweat_smile":{"id":"sweat_smile","name":"Grinning Face with Sweat","keywords":["smile","hot","happy","laugh","relief"],"skins":[{"unified":"1f605","native":"😅","x":32,"y":25}],"version":1},"joy":{"id":"joy","name":"Face with Tears of Joy","keywords":["cry","weep","happy","happytears","haha"],"skins":[{"unified":"1f602","native":"😂","x":32,"y":22}],"version":1},"slightly_smiling_face":{"id":"slightly_smiling_face","name":"Slightly Smiling Face","emoticons":[":)","(:",":-)"],"keywords":["smile"],"skins":[{"unified":"1f642","native":"🙂","x":33,"y":28}],"version":1},"upside_down_face":{"id":"upside_down_face","name":"Upside-Down Face","keywords":["upside","down","flipped","silly","smile"],"skins":[{"unified":"1f643","native":"🙃","x":33,"y":29}],"version":1},"wink":{"id":"wink","name":"Winking Face","emoticons":[";)",";-)"],"keywords":["wink","happy","mischievous","secret",";)","smile","eye"],"skins":[{"unified":"1f609","native":"😉","x":32,"y":29}],"version":1},"blush":{"id":"blush","name":"Smiling Face with Smiling Eyes","emoticons":[":)"],"keywords":["blush","smile","happy","flushed","crush","embarrassed","shy","joy"],"skins":[{"unified":"1f60a","native":"😊","x":32,"y":30}],"version":1},"innocent":{"id":"innocent","name":"Smiling Face with Halo","keywords":["innocent","angel","heaven"],"skins":[{"unified":"1f607","native":"😇","x":32,"y":27}],"version":1},"heart_eyes":{"id":"heart_eyes","name":"Smiling Face with Heart-Eyes","keywords":["heart","eyes","love","like","affection","valentines","infatuation","crush"],"skins":[{"unified":"1f60d","native":"😍","x":32,"y":33}],"version":1},"kissing_heart":{"id":"kissing_heart","name":"Face Blowing a Kiss","emoticons":[":*",":-*"],"keywords":["kissing","heart","love","like","affection","valentines","infatuation"],"skins":[{"unified":"1f618","native":"😘","x":32,"y":44}],"version":1},"kissing":{"id":"kissing","name":"Kissing Face","keywords":["love","like","3","valentines","infatuation","kiss"],"skins":[{"unified":"1f617","native":"😗","x":32,"y":43}],"version":1},"relaxed":{"id":"relaxed","name":"Smiling Face","keywords":["relaxed","blush","massage","happiness"],"skins":[{"unified":"263a-fe0f","native":"☺️","x":57,"y":4}],"version":1},"kissing_closed_eyes":{"id":"kissing_closed_eyes","name":"Kissing Face with Closed Eyes","keywords":["love","like","affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f61a","native":"😚","x":32,"y":46}],"version":1},"kissing_smiling_eyes":{"id":"kissing_smiling_eyes","name":"Kissing Face with Smiling Eyes","keywords":["affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f619","native":"😙","x":32,"y":45}],"version":1},"yum":{"id":"yum","name":"Face Savoring Food","keywords":["yum","happy","joy","tongue","smile","silly","yummy","nom","delicious","savouring"],"skins":[{"unified":"1f60b","native":"😋","x":32,"y":31}],"version":1},"stuck_out_tongue":{"id":"stuck_out_tongue","name":"Face with Tongue","emoticons":[":p",":-p",":P",":-P",":b",":-b"],"keywords":["stuck","out","prank","childish","playful","mischievous","smile"],"skins":[{"unified":"1f61b","native":"😛","x":32,"y":47}],"version":1},"stuck_out_tongue_winking_eye":{"id":"stuck_out_tongue_winking_eye","name":"Winking Face with Tongue","emoticons":[";p",";-p",";b",";-b",";P",";-P"],"keywords":["stuck","out","eye","prank","childish","playful","mischievous","smile","wink"],"skins":[{"unified":"1f61c","native":"😜","x":32,"y":48}],"version":1},"stuck_out_tongue_closed_eyes":{"id":"stuck_out_tongue_closed_eyes","name":"Squinting Face with Tongue","keywords":["stuck","out","closed","eyes","prank","playful","mischievous","smile"],"skins":[{"unified":"1f61d","native":"😝","x":32,"y":49}],"version":1},"money_mouth_face":{"id":"money_mouth_face","name":"Money-Mouth Face","keywords":["money","mouth","rich","dollar"],"skins":[{"unified":"1f911","native":"🤑","x":38,"y":59}],"version":1},"hugging_face":{"id":"hugging_face","name":"Hugging Face","keywords":["smile","hug"],"skins":[{"unified":"1f917","native":"🤗","x":39,"y":4}],"version":1},"thinking_face":{"id":"thinking_face","name":"Thinking Face","keywords":["hmmm","think","consider"],"skins":[{"unified":"1f914","native":"🤔","x":39,"y":1}],"version":1},"zipper_mouth_face":{"id":"zipper_mouth_face","name":"Zipper-Mouth Face","keywords":["zipper","mouth","sealed","secret"],"skins":[{"unified":"1f910","native":"🤐","x":38,"y":58}],"version":1},"neutral_face":{"id":"neutral_face","name":"Neutral Face","emoticons":[":|",":-|"],"keywords":["indifference","meh",":",""],"skins":[{"unified":"1f610","native":"😐","x":32,"y":36}],"version":1},"expressionless":{"id":"expressionless","name":"Expressionless Face","emoticons":["-_-"],"keywords":["indifferent","-","","meh","deadpan"],"skins":[{"unified":"1f611","native":"😑","x":32,"y":37}],"version":1},"no_mouth":{"id":"no_mouth","name":"Face Without Mouth","keywords":["no","hellokitty"],"skins":[{"unified":"1f636","native":"😶","x":33,"y":16}],"version":1},"smirk":{"id":"smirk","name":"Smirking Face","keywords":["smirk","smile","mean","prank","smug","sarcasm"],"skins":[{"unified":"1f60f","native":"😏","x":32,"y":35}],"version":1},"unamused":{"id":"unamused","name":"Unamused Face","emoticons":[":("],"keywords":["indifference","bored","straight","serious","sarcasm","unimpressed","skeptical","dubious","side","eye"],"skins":[{"unified":"1f612","native":"😒","x":32,"y":38}],"version":1},"face_with_rolling_eyes":{"id":"face_with_rolling_eyes","name":"Face with Rolling Eyes","keywords":["eyeroll","frustrated"],"skins":[{"unified":"1f644","native":"🙄","x":33,"y":30}],"version":1},"grimacing":{"id":"grimacing","name":"Grimacing Face","keywords":["grimace","teeth"],"skins":[{"unified":"1f62c","native":"😬","x":33,"y":3}],"version":1},"relieved":{"id":"relieved","name":"Relieved Face","keywords":["relaxed","phew","massage","happiness"],"skins":[{"unified":"1f60c","native":"😌","x":32,"y":32}],"version":1},"pensive":{"id":"pensive","name":"Pensive Face","keywords":["sad","depressed","upset"],"skins":[{"unified":"1f614","native":"😔","x":32,"y":40}],"version":1},"sleepy":{"id":"sleepy","name":"Sleepy Face","keywords":["tired","rest","nap"],"skins":[{"unified":"1f62a","native":"😪","x":33,"y":1}],"version":1},"sleeping":{"id":"sleeping","name":"Sleeping Face","keywords":["tired","sleepy","night","zzz"],"skins":[{"unified":"1f634","native":"😴","x":33,"y":12}],"version":1},"mask":{"id":"mask","name":"Face with Medical Mask","keywords":["sick","ill","disease"],"skins":[{"unified":"1f637","native":"😷","x":33,"y":17}],"version":1},"face_with_thermometer":{"id":"face_with_thermometer","name":"Face with Thermometer","keywords":["sick","temperature","cold","fever"],"skins":[{"unified":"1f912","native":"🤒","x":38,"y":60}],"version":1},"face_with_head_bandage":{"id":"face_with_head_bandage","name":"Face with Head-Bandage","keywords":["head","bandage","injured","clumsy","hurt"],"skins":[{"unified":"1f915","native":"🤕","x":39,"y":2}],"version":1},"dizzy_face":{"id":"dizzy_face","name":"Dizzy Face","keywords":["spent","unconscious","xox"],"skins":[{"unified":"1f635","native":"😵","x":33,"y":14}],"version":1},"sunglasses":{"id":"sunglasses","name":"Smiling Face with Sunglasses","emoticons":["8)"],"keywords":["cool","smile","summer","beach","sunglass"],"skins":[{"unified":"1f60e","native":"😎","x":32,"y":34}],"version":1},"nerd_face":{"id":"nerd_face","name":"Nerd Face","keywords":["nerdy","geek","dork"],"skins":[{"unified":"1f913","native":"🤓","x":39,"y":0}],"version":1},"confused":{"id":"confused","name":"Confused Face","emoticons":[":\\",":-\\",":/",":-/"],"keywords":["indifference","huh","weird","hmmm",":/"],"skins":[{"unified":"1f615","native":"😕","x":32,"y":41}],"version":1},"worried":{"id":"worried","name":"Worried Face","keywords":["concern","nervous",":("],"skins":[{"unified":"1f61f","native":"😟","x":32,"y":51}],"version":1},"slightly_frowning_face":{"id":"slightly_frowning_face","name":"Slightly Frowning Face","keywords":["disappointed","sad","upset"],"skins":[{"unified":"1f641","native":"🙁","x":33,"y":27}],"version":1},"white_frowning_face":{"id":"white_frowning_face","name":"Frowning Face","keywords":["white","sad","upset","frown"],"skins":[{"unified":"2639-fe0f","native":"☹️","x":57,"y":3}],"version":1},"open_mouth":{"id":"open_mouth","name":"Face with Open Mouth","emoticons":[":o",":-o",":O",":-O"],"keywords":["surprise","impressed","wow","whoa",":O"],"skins":[{"unified":"1f62e","native":"😮","x":33,"y":6}],"version":1},"hushed":{"id":"hushed","name":"Hushed Face","keywords":["woo","shh"],"skins":[{"unified":"1f62f","native":"😯","x":33,"y":7}],"version":1},"astonished":{"id":"astonished","name":"Astonished Face","keywords":["xox","surprised","poisoned"],"skins":[{"unified":"1f632","native":"😲","x":33,"y":10}],"version":1},"flushed":{"id":"flushed","name":"Flushed Face","keywords":["blush","shy","flattered"],"skins":[{"unified":"1f633","native":"😳","x":33,"y":11}],"version":1},"frowning":{"id":"frowning","name":"Frowning Face with Open Mouth","keywords":["aw","what"],"skins":[{"unified":"1f626","native":"😦","x":32,"y":58}],"version":1},"anguished":{"id":"anguished","name":"Anguished Face","emoticons":["D:"],"keywords":["stunned","nervous"],"skins":[{"unified":"1f627","native":"😧","x":32,"y":59}],"version":1},"fearful":{"id":"fearful","name":"Fearful Face","keywords":["scared","terrified","nervous","oops","huh"],"skins":[{"unified":"1f628","native":"😨","x":32,"y":60}],"version":1},"cold_sweat":{"id":"cold_sweat","name":"Anxious Face with Sweat","keywords":["cold","nervous"],"skins":[{"unified":"1f630","native":"😰","x":33,"y":8}],"version":1},"disappointed_relieved":{"id":"disappointed_relieved","name":"Sad but Relieved Face","keywords":["disappointed","phew","sweat","nervous"],"skins":[{"unified":"1f625","native":"😥","x":32,"y":57}],"version":1},"cry":{"id":"cry","name":"Crying Face","emoticons":[":'("],"keywords":["cry","tears","sad","depressed","upset",":'("],"skins":[{"unified":"1f622","native":"😢","x":32,"y":54}],"version":1},"sob":{"id":"sob","name":"Loudly Crying Face","emoticons":[":'("],"keywords":["sob","cry","tears","sad","upset","depressed"],"skins":[{"unified":"1f62d","native":"😭","x":33,"y":4}],"version":1},"scream":{"id":"scream","name":"Face Screaming in Fear","keywords":["scream","munch","scared","omg"],"skins":[{"unified":"1f631","native":"😱","x":33,"y":9}],"version":1},"confounded":{"id":"confounded","name":"Confounded Face","keywords":["confused","sick","unwell","oops",":S"],"skins":[{"unified":"1f616","native":"😖","x":32,"y":42}],"version":1},"persevere":{"id":"persevere","name":"Persevering Face","keywords":["persevere","sick","no","upset","oops"],"skins":[{"unified":"1f623","native":"😣","x":32,"y":55}],"version":1},"disappointed":{"id":"disappointed","name":"Disappointed Face","emoticons":["):",":(",":-("],"keywords":["sad","upset","depressed",":("],"skins":[{"unified":"1f61e","native":"😞","x":32,"y":50}],"version":1},"sweat":{"id":"sweat","name":"Face with Cold Sweat","keywords":["downcast","hot","sad","tired","exercise"],"skins":[{"unified":"1f613","native":"😓","x":32,"y":39}],"version":1},"weary":{"id":"weary","name":"Weary Face","keywords":["tired","sleepy","sad","frustrated","upset"],"skins":[{"unified":"1f629","native":"😩","x":33,"y":0}],"version":1},"tired_face":{"id":"tired_face","name":"Tired Face","keywords":["sick","whine","upset","frustrated"],"skins":[{"unified":"1f62b","native":"😫","x":33,"y":2}],"version":1},"triumph":{"id":"triumph","name":"Face with Look of Triumph","keywords":["steam","from","nose","gas","phew","proud","pride"],"skins":[{"unified":"1f624","native":"😤","x":32,"y":56}],"version":1},"rage":{"id":"rage","name":"Pouting Face","keywords":["rage","angry","mad","hate","despise"],"skins":[{"unified":"1f621","native":"😡","x":32,"y":53}],"version":1},"angry":{"id":"angry","name":"Angry Face","emoticons":[">:(",">:-("],"keywords":["mad","annoyed","frustrated"],"skins":[{"unified":"1f620","native":"😠","x":32,"y":52}],"version":1},"smiling_imp":{"id":"smiling_imp","name":"Smiling Face with Horns","keywords":["imp","devil"],"skins":[{"unified":"1f608","native":"😈","x":32,"y":28}],"version":1},"imp":{"id":"imp","name":"Imp","keywords":["angry","face","with","horns","devil"],"skins":[{"unified":"1f47f","native":"👿","x":25,"y":8}],"version":1},"skull":{"id":"skull","name":"Skull","keywords":["dead","skeleton","creepy","death"],"skins":[{"unified":"1f480","native":"💀","x":25,"y":9}],"version":1},"skull_and_crossbones":{"id":"skull_and_crossbones","name":"Skull and Crossbones","keywords":["poison","danger","deadly","scary","death","pirate","evil"],"skins":[{"unified":"2620-fe0f","native":"☠️","x":56,"y":56}],"version":1},"hankey":{"id":"hankey","name":"Pile of Poo","keywords":["hankey","poop","shit","shitface","fail","turd"],"skins":[{"unified":"1f4a9","native":"💩","x":27,"y":56}],"version":1},"japanese_ogre":{"id":"japanese_ogre","name":"Ogre","keywords":["japanese","monster","red","mask","halloween","scary","creepy","devil","demon"],"skins":[{"unified":"1f479","native":"👹","x":24,"y":58}],"version":1},"japanese_goblin":{"id":"japanese_goblin","name":"Goblin","keywords":["japanese","red","evil","mask","monster","scary","creepy"],"skins":[{"unified":"1f47a","native":"👺","x":24,"y":59}],"version":1},"ghost":{"id":"ghost","name":"Ghost","keywords":["halloween","spooky","scary"],"skins":[{"unified":"1f47b","native":"👻","x":24,"y":60}],"version":1},"alien":{"id":"alien","name":"Alien","keywords":["UFO","paul","weird","outer","space"],"skins":[{"unified":"1f47d","native":"👽","x":25,"y":6}],"version":1},"space_invader":{"id":"space_invader","name":"Alien Monster","keywords":["space","invader","game","arcade","play"],"skins":[{"unified":"1f47e","native":"👾","x":25,"y":7}],"version":1},"robot_face":{"id":"robot_face","name":"Robot","keywords":["face","computer","machine","bot"],"skins":[{"unified":"1f916","native":"🤖","x":39,"y":3}],"version":1},"smiley_cat":{"id":"smiley_cat","name":"Grinning Cat","keywords":["smiley","animal","cats","happy","smile"],"skins":[{"unified":"1f63a","native":"😺","x":33,"y":20}],"version":1},"smile_cat":{"id":"smile_cat","name":"Grinning Cat with Smiling Eyes","keywords":["smile","animal","cats"],"skins":[{"unified":"1f638","native":"😸","x":33,"y":18}],"version":1},"joy_cat":{"id":"joy_cat","name":"Cat with Tears of Joy","keywords":["animal","cats","haha","happy"],"skins":[{"unified":"1f639","native":"😹","x":33,"y":19}],"version":1},"heart_eyes_cat":{"id":"heart_eyes_cat","name":"Smiling Cat with Heart-Eyes","keywords":["heart","eyes","animal","love","like","affection","cats","valentines"],"skins":[{"unified":"1f63b","native":"😻","x":33,"y":21}],"version":1},"smirk_cat":{"id":"smirk_cat","name":"Cat with Wry Smile","keywords":["smirk","animal","cats"],"skins":[{"unified":"1f63c","native":"😼","x":33,"y":22}],"version":1},"kissing_cat":{"id":"kissing_cat","name":"Kissing Cat","keywords":["animal","cats","kiss"],"skins":[{"unified":"1f63d","native":"😽","x":33,"y":23}],"version":1},"scream_cat":{"id":"scream_cat","name":"Weary Cat","keywords":["scream","animal","cats","munch","scared"],"skins":[{"unified":"1f640","native":"🙀","x":33,"y":26}],"version":1},"crying_cat_face":{"id":"crying_cat_face","name":"Crying Cat","keywords":["face","animal","tears","weep","sad","cats","upset","cry"],"skins":[{"unified":"1f63f","native":"😿","x":33,"y":25}],"version":1},"pouting_cat":{"id":"pouting_cat","name":"Pouting Cat","keywords":["animal","cats"],"skins":[{"unified":"1f63e","native":"😾","x":33,"y":24}],"version":1},"see_no_evil":{"id":"see_no_evil","name":"See-No-Evil Monkey","keywords":["see","no","evil","animal","nature","haha"],"skins":[{"unified":"1f648","native":"🙈","x":34,"y":24}],"version":1},"hear_no_evil":{"id":"hear_no_evil","name":"Hear-No-Evil Monkey","keywords":["hear","no","evil","animal","nature"],"skins":[{"unified":"1f649","native":"🙉","x":34,"y":25}],"version":1},"speak_no_evil":{"id":"speak_no_evil","name":"Speak-No-Evil Monkey","keywords":["speak","no","evil","animal","nature","omg"],"skins":[{"unified":"1f64a","native":"🙊","x":34,"y":26}],"version":1},"kiss":{"id":"kiss","name":"Kiss Mark","keywords":["face","lips","love","like","affection","valentines"],"skins":[{"unified":"1f48b","native":"💋","x":26,"y":37}],"version":1},"love_letter":{"id":"love_letter","name":"Love Letter","keywords":["email","like","affection","envelope","valentines"],"skins":[{"unified":"1f48c","native":"💌","x":26,"y":38}],"version":1},"cupid":{"id":"cupid","name":"Heart with Arrow","keywords":["cupid","love","like","affection","valentines"],"skins":[{"unified":"1f498","native":"💘","x":27,"y":39}],"version":1},"gift_heart":{"id":"gift_heart","name":"Heart with Ribbon","keywords":["gift","love","valentines"],"skins":[{"unified":"1f49d","native":"💝","x":27,"y":44}],"version":1},"sparkling_heart":{"id":"sparkling_heart","name":"Sparkling Heart","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f496","native":"💖","x":27,"y":37}],"version":1},"heartpulse":{"id":"heartpulse","name":"Growing Heart","keywords":["heartpulse","like","love","affection","valentines","pink"],"skins":[{"unified":"1f497","native":"💗","x":27,"y":38}],"version":1},"heartbeat":{"id":"heartbeat","name":"Beating Heart","keywords":["heartbeat","love","like","affection","valentines","pink"],"skins":[{"unified":"1f493","native":"💓","x":27,"y":34}],"version":1},"revolving_hearts":{"id":"revolving_hearts","name":"Revolving Hearts","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f49e","native":"💞","x":27,"y":45}],"version":1},"two_hearts":{"id":"two_hearts","name":"Two Hearts","keywords":["love","like","affection","valentines","heart"],"skins":[{"unified":"1f495","native":"💕","x":27,"y":36}],"version":1},"heart_decoration":{"id":"heart_decoration","name":"Heart Decoration","keywords":["purple","square","love","like"],"skins":[{"unified":"1f49f","native":"💟","x":27,"y":46}],"version":1},"heavy_heart_exclamation_mark_ornament":{"id":"heavy_heart_exclamation_mark_ornament","name":"Heart Exclamation","keywords":["heavy","mark","ornament","decoration","love"],"skins":[{"unified":"2763-fe0f","native":"❣️","x":59,"y":7}],"version":1},"broken_heart":{"id":"broken_heart","name":"Broken Heart","emoticons":["",":->"],"keywords":["laughing","satisfied","happy","joy","lol","haha","glad","XD","laugh"],"skins":[{"unified":"1f606","native":"😆","x":32,"y":26}],"version":1},"sweat_smile":{"id":"sweat_smile","name":"Grinning Face with Sweat","keywords":["smile","hot","happy","laugh","relief"],"skins":[{"unified":"1f605","native":"😅","x":32,"y":25}],"version":1},"rolling_on_the_floor_laughing":{"id":"rolling_on_the_floor_laughing","name":"Rolling on the Floor Laughing","keywords":["face","lol","haha","rofl"],"skins":[{"unified":"1f923","native":"🤣","x":40,"y":15}],"version":3},"joy":{"id":"joy","name":"Face with Tears of Joy","keywords":["cry","weep","happy","happytears","haha"],"skins":[{"unified":"1f602","native":"😂","x":32,"y":22}],"version":1},"slightly_smiling_face":{"id":"slightly_smiling_face","name":"Slightly Smiling Face","emoticons":[":)","(:",":-)"],"keywords":["smile"],"skins":[{"unified":"1f642","native":"🙂","x":33,"y":28}],"version":1},"upside_down_face":{"id":"upside_down_face","name":"Upside-Down Face","keywords":["upside","down","flipped","silly","smile"],"skins":[{"unified":"1f643","native":"🙃","x":33,"y":29}],"version":1},"wink":{"id":"wink","name":"Winking Face","emoticons":[";)",";-)"],"keywords":["wink","happy","mischievous","secret",";)","smile","eye"],"skins":[{"unified":"1f609","native":"😉","x":32,"y":29}],"version":1},"blush":{"id":"blush","name":"Smiling Face with Smiling Eyes","emoticons":[":)"],"keywords":["blush","smile","happy","flushed","crush","embarrassed","shy","joy"],"skins":[{"unified":"1f60a","native":"😊","x":32,"y":30}],"version":1},"innocent":{"id":"innocent","name":"Smiling Face with Halo","keywords":["innocent","angel","heaven"],"skins":[{"unified":"1f607","native":"😇","x":32,"y":27}],"version":1},"heart_eyes":{"id":"heart_eyes","name":"Smiling Face with Heart-Eyes","keywords":["heart","eyes","love","like","affection","valentines","infatuation","crush"],"skins":[{"unified":"1f60d","native":"😍","x":32,"y":33}],"version":1},"kissing_heart":{"id":"kissing_heart","name":"Face Blowing a Kiss","emoticons":[":*",":-*"],"keywords":["kissing","heart","love","like","affection","valentines","infatuation"],"skins":[{"unified":"1f618","native":"😘","x":32,"y":44}],"version":1},"kissing":{"id":"kissing","name":"Kissing Face","keywords":["love","like","3","valentines","infatuation","kiss"],"skins":[{"unified":"1f617","native":"😗","x":32,"y":43}],"version":1},"relaxed":{"id":"relaxed","name":"Smiling Face","keywords":["relaxed","blush","massage","happiness"],"skins":[{"unified":"263a-fe0f","native":"☺️","x":57,"y":4}],"version":1},"kissing_closed_eyes":{"id":"kissing_closed_eyes","name":"Kissing Face with Closed Eyes","keywords":["love","like","affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f61a","native":"😚","x":32,"y":46}],"version":1},"kissing_smiling_eyes":{"id":"kissing_smiling_eyes","name":"Kissing Face with Smiling Eyes","keywords":["affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f619","native":"😙","x":32,"y":45}],"version":1},"yum":{"id":"yum","name":"Face Savoring Food","keywords":["yum","happy","joy","tongue","smile","silly","yummy","nom","delicious","savouring"],"skins":[{"unified":"1f60b","native":"😋","x":32,"y":31}],"version":1},"stuck_out_tongue":{"id":"stuck_out_tongue","name":"Face with Tongue","emoticons":[":p",":-p",":P",":-P",":b",":-b"],"keywords":["stuck","out","prank","childish","playful","mischievous","smile"],"skins":[{"unified":"1f61b","native":"😛","x":32,"y":47}],"version":1},"stuck_out_tongue_winking_eye":{"id":"stuck_out_tongue_winking_eye","name":"Winking Face with Tongue","emoticons":[";p",";-p",";b",";-b",";P",";-P"],"keywords":["stuck","out","eye","prank","childish","playful","mischievous","smile","wink"],"skins":[{"unified":"1f61c","native":"😜","x":32,"y":48}],"version":1},"stuck_out_tongue_closed_eyes":{"id":"stuck_out_tongue_closed_eyes","name":"Squinting Face with Tongue","keywords":["stuck","out","closed","eyes","prank","playful","mischievous","smile"],"skins":[{"unified":"1f61d","native":"😝","x":32,"y":49}],"version":1},"money_mouth_face":{"id":"money_mouth_face","name":"Money-Mouth Face","keywords":["money","mouth","rich","dollar"],"skins":[{"unified":"1f911","native":"🤑","x":38,"y":59}],"version":1},"hugging_face":{"id":"hugging_face","name":"Hugging Face","keywords":["smile","hug"],"skins":[{"unified":"1f917","native":"🤗","x":39,"y":4}],"version":1},"thinking_face":{"id":"thinking_face","name":"Thinking Face","keywords":["hmmm","think","consider"],"skins":[{"unified":"1f914","native":"🤔","x":39,"y":1}],"version":1},"zipper_mouth_face":{"id":"zipper_mouth_face","name":"Zipper-Mouth Face","keywords":["zipper","mouth","sealed","secret"],"skins":[{"unified":"1f910","native":"🤐","x":38,"y":58}],"version":1},"neutral_face":{"id":"neutral_face","name":"Neutral Face","emoticons":[":|",":-|"],"keywords":["indifference","meh",":",""],"skins":[{"unified":"1f610","native":"😐","x":32,"y":36}],"version":1},"expressionless":{"id":"expressionless","name":"Expressionless Face","emoticons":["-_-"],"keywords":["indifferent","-","","meh","deadpan"],"skins":[{"unified":"1f611","native":"😑","x":32,"y":37}],"version":1},"no_mouth":{"id":"no_mouth","name":"Face Without Mouth","keywords":["no","hellokitty"],"skins":[{"unified":"1f636","native":"😶","x":33,"y":16}],"version":1},"smirk":{"id":"smirk","name":"Smirking Face","keywords":["smirk","smile","mean","prank","smug","sarcasm"],"skins":[{"unified":"1f60f","native":"😏","x":32,"y":35}],"version":1},"unamused":{"id":"unamused","name":"Unamused Face","emoticons":[":("],"keywords":["indifference","bored","straight","serious","sarcasm","unimpressed","skeptical","dubious","side","eye"],"skins":[{"unified":"1f612","native":"😒","x":32,"y":38}],"version":1},"face_with_rolling_eyes":{"id":"face_with_rolling_eyes","name":"Face with Rolling Eyes","keywords":["eyeroll","frustrated"],"skins":[{"unified":"1f644","native":"🙄","x":33,"y":30}],"version":1},"grimacing":{"id":"grimacing","name":"Grimacing Face","keywords":["grimace","teeth"],"skins":[{"unified":"1f62c","native":"😬","x":33,"y":3}],"version":1},"lying_face":{"id":"lying_face","name":"Lying Face","keywords":["lie","pinocchio"],"skins":[{"unified":"1f925","native":"🤥","x":40,"y":17}],"version":3},"relieved":{"id":"relieved","name":"Relieved Face","keywords":["relaxed","phew","massage","happiness"],"skins":[{"unified":"1f60c","native":"😌","x":32,"y":32}],"version":1},"pensive":{"id":"pensive","name":"Pensive Face","keywords":["sad","depressed","upset"],"skins":[{"unified":"1f614","native":"😔","x":32,"y":40}],"version":1},"sleepy":{"id":"sleepy","name":"Sleepy Face","keywords":["tired","rest","nap"],"skins":[{"unified":"1f62a","native":"😪","x":33,"y":1}],"version":1},"drooling_face":{"id":"drooling_face","name":"Drooling Face","keywords":[],"skins":[{"unified":"1f924","native":"🤤","x":40,"y":16}],"version":3},"sleeping":{"id":"sleeping","name":"Sleeping Face","keywords":["tired","sleepy","night","zzz"],"skins":[{"unified":"1f634","native":"😴","x":33,"y":12}],"version":1},"mask":{"id":"mask","name":"Face with Medical Mask","keywords":["sick","ill","disease"],"skins":[{"unified":"1f637","native":"😷","x":33,"y":17}],"version":1},"face_with_thermometer":{"id":"face_with_thermometer","name":"Face with Thermometer","keywords":["sick","temperature","cold","fever"],"skins":[{"unified":"1f912","native":"🤒","x":38,"y":60}],"version":1},"face_with_head_bandage":{"id":"face_with_head_bandage","name":"Face with Head-Bandage","keywords":["head","bandage","injured","clumsy","hurt"],"skins":[{"unified":"1f915","native":"🤕","x":39,"y":2}],"version":1},"nauseated_face":{"id":"nauseated_face","name":"Nauseated Face","keywords":["vomit","gross","green","sick","throw","up","ill"],"skins":[{"unified":"1f922","native":"🤢","x":40,"y":14}],"version":3},"sneezing_face":{"id":"sneezing_face","name":"Sneezing Face","keywords":["gesundheit","sneeze","sick","allergy"],"skins":[{"unified":"1f927","native":"🤧","x":40,"y":36}],"version":3},"dizzy_face":{"id":"dizzy_face","name":"Dizzy Face","keywords":["spent","unconscious","xox"],"skins":[{"unified":"1f635","native":"😵","x":33,"y":14}],"version":1},"face_with_cowboy_hat":{"id":"face_with_cowboy_hat","name":"Cowboy Hat Face","keywords":["with","cowgirl"],"skins":[{"unified":"1f920","native":"🤠","x":40,"y":12}],"version":3},"sunglasses":{"id":"sunglasses","name":"Smiling Face with Sunglasses","emoticons":["8)"],"keywords":["cool","smile","summer","beach","sunglass"],"skins":[{"unified":"1f60e","native":"😎","x":32,"y":34}],"version":1},"nerd_face":{"id":"nerd_face","name":"Nerd Face","keywords":["nerdy","geek","dork"],"skins":[{"unified":"1f913","native":"🤓","x":39,"y":0}],"version":1},"confused":{"id":"confused","name":"Confused Face","emoticons":[":\\",":-\\",":/",":-/"],"keywords":["indifference","huh","weird","hmmm",":/"],"skins":[{"unified":"1f615","native":"😕","x":32,"y":41}],"version":1},"worried":{"id":"worried","name":"Worried Face","keywords":["concern","nervous",":("],"skins":[{"unified":"1f61f","native":"😟","x":32,"y":51}],"version":1},"slightly_frowning_face":{"id":"slightly_frowning_face","name":"Slightly Frowning Face","keywords":["disappointed","sad","upset"],"skins":[{"unified":"1f641","native":"🙁","x":33,"y":27}],"version":1},"white_frowning_face":{"id":"white_frowning_face","name":"Frowning Face","keywords":["white","sad","upset","frown"],"skins":[{"unified":"2639-fe0f","native":"☹️","x":57,"y":3}],"version":1},"open_mouth":{"id":"open_mouth","name":"Face with Open Mouth","emoticons":[":o",":-o",":O",":-O"],"keywords":["surprise","impressed","wow","whoa",":O"],"skins":[{"unified":"1f62e","native":"😮","x":33,"y":6}],"version":1},"hushed":{"id":"hushed","name":"Hushed Face","keywords":["woo","shh"],"skins":[{"unified":"1f62f","native":"😯","x":33,"y":7}],"version":1},"astonished":{"id":"astonished","name":"Astonished Face","keywords":["xox","surprised","poisoned"],"skins":[{"unified":"1f632","native":"😲","x":33,"y":10}],"version":1},"flushed":{"id":"flushed","name":"Flushed Face","keywords":["blush","shy","flattered"],"skins":[{"unified":"1f633","native":"😳","x":33,"y":11}],"version":1},"frowning":{"id":"frowning","name":"Frowning Face with Open Mouth","keywords":["aw","what"],"skins":[{"unified":"1f626","native":"😦","x":32,"y":58}],"version":1},"anguished":{"id":"anguished","name":"Anguished Face","emoticons":["D:"],"keywords":["stunned","nervous"],"skins":[{"unified":"1f627","native":"😧","x":32,"y":59}],"version":1},"fearful":{"id":"fearful","name":"Fearful Face","keywords":["scared","terrified","nervous","oops","huh"],"skins":[{"unified":"1f628","native":"😨","x":32,"y":60}],"version":1},"cold_sweat":{"id":"cold_sweat","name":"Anxious Face with Sweat","keywords":["cold","nervous"],"skins":[{"unified":"1f630","native":"😰","x":33,"y":8}],"version":1},"disappointed_relieved":{"id":"disappointed_relieved","name":"Sad but Relieved Face","keywords":["disappointed","phew","sweat","nervous"],"skins":[{"unified":"1f625","native":"😥","x":32,"y":57}],"version":1},"cry":{"id":"cry","name":"Crying Face","emoticons":[":'("],"keywords":["cry","tears","sad","depressed","upset",":'("],"skins":[{"unified":"1f622","native":"😢","x":32,"y":54}],"version":1},"sob":{"id":"sob","name":"Loudly Crying Face","emoticons":[":'("],"keywords":["sob","cry","tears","sad","upset","depressed"],"skins":[{"unified":"1f62d","native":"😭","x":33,"y":4}],"version":1},"scream":{"id":"scream","name":"Face Screaming in Fear","keywords":["scream","munch","scared","omg"],"skins":[{"unified":"1f631","native":"😱","x":33,"y":9}],"version":1},"confounded":{"id":"confounded","name":"Confounded Face","keywords":["confused","sick","unwell","oops",":S"],"skins":[{"unified":"1f616","native":"😖","x":32,"y":42}],"version":1},"persevere":{"id":"persevere","name":"Persevering Face","keywords":["persevere","sick","no","upset","oops"],"skins":[{"unified":"1f623","native":"😣","x":32,"y":55}],"version":1},"disappointed":{"id":"disappointed","name":"Disappointed Face","emoticons":["):",":(",":-("],"keywords":["sad","upset","depressed",":("],"skins":[{"unified":"1f61e","native":"😞","x":32,"y":50}],"version":1},"sweat":{"id":"sweat","name":"Face with Cold Sweat","keywords":["downcast","hot","sad","tired","exercise"],"skins":[{"unified":"1f613","native":"😓","x":32,"y":39}],"version":1},"weary":{"id":"weary","name":"Weary Face","keywords":["tired","sleepy","sad","frustrated","upset"],"skins":[{"unified":"1f629","native":"😩","x":33,"y":0}],"version":1},"tired_face":{"id":"tired_face","name":"Tired Face","keywords":["sick","whine","upset","frustrated"],"skins":[{"unified":"1f62b","native":"😫","x":33,"y":2}],"version":1},"triumph":{"id":"triumph","name":"Face with Look of Triumph","keywords":["steam","from","nose","gas","phew","proud","pride"],"skins":[{"unified":"1f624","native":"😤","x":32,"y":56}],"version":1},"rage":{"id":"rage","name":"Pouting Face","keywords":["rage","angry","mad","hate","despise"],"skins":[{"unified":"1f621","native":"😡","x":32,"y":53}],"version":1},"angry":{"id":"angry","name":"Angry Face","emoticons":[">:(",">:-("],"keywords":["mad","annoyed","frustrated"],"skins":[{"unified":"1f620","native":"😠","x":32,"y":52}],"version":1},"smiling_imp":{"id":"smiling_imp","name":"Smiling Face with Horns","keywords":["imp","devil"],"skins":[{"unified":"1f608","native":"😈","x":32,"y":28}],"version":1},"imp":{"id":"imp","name":"Imp","keywords":["angry","face","with","horns","devil"],"skins":[{"unified":"1f47f","native":"👿","x":25,"y":8}],"version":1},"skull":{"id":"skull","name":"Skull","keywords":["dead","skeleton","creepy","death"],"skins":[{"unified":"1f480","native":"💀","x":25,"y":9}],"version":1},"skull_and_crossbones":{"id":"skull_and_crossbones","name":"Skull and Crossbones","keywords":["poison","danger","deadly","scary","death","pirate","evil"],"skins":[{"unified":"2620-fe0f","native":"☠️","x":56,"y":56}],"version":1},"hankey":{"id":"hankey","name":"Pile of Poo","keywords":["hankey","poop","shit","shitface","fail","turd"],"skins":[{"unified":"1f4a9","native":"💩","x":27,"y":56}],"version":1},"clown_face":{"id":"clown_face","name":"Clown Face","keywords":[],"skins":[{"unified":"1f921","native":"🤡","x":40,"y":13}],"version":3},"japanese_ogre":{"id":"japanese_ogre","name":"Ogre","keywords":["japanese","monster","red","mask","halloween","scary","creepy","devil","demon"],"skins":[{"unified":"1f479","native":"👹","x":24,"y":58}],"version":1},"japanese_goblin":{"id":"japanese_goblin","name":"Goblin","keywords":["japanese","red","evil","mask","monster","scary","creepy"],"skins":[{"unified":"1f47a","native":"👺","x":24,"y":59}],"version":1},"ghost":{"id":"ghost","name":"Ghost","keywords":["halloween","spooky","scary"],"skins":[{"unified":"1f47b","native":"👻","x":24,"y":60}],"version":1},"alien":{"id":"alien","name":"Alien","keywords":["UFO","paul","weird","outer","space"],"skins":[{"unified":"1f47d","native":"👽","x":25,"y":6}],"version":1},"space_invader":{"id":"space_invader","name":"Alien Monster","keywords":["space","invader","game","arcade","play"],"skins":[{"unified":"1f47e","native":"👾","x":25,"y":7}],"version":1},"robot_face":{"id":"robot_face","name":"Robot","keywords":["face","computer","machine","bot"],"skins":[{"unified":"1f916","native":"🤖","x":39,"y":3}],"version":1},"smiley_cat":{"id":"smiley_cat","name":"Grinning Cat","keywords":["smiley","animal","cats","happy","smile"],"skins":[{"unified":"1f63a","native":"😺","x":33,"y":20}],"version":1},"smile_cat":{"id":"smile_cat","name":"Grinning Cat with Smiling Eyes","keywords":["smile","animal","cats"],"skins":[{"unified":"1f638","native":"😸","x":33,"y":18}],"version":1},"joy_cat":{"id":"joy_cat","name":"Cat with Tears of Joy","keywords":["animal","cats","haha","happy"],"skins":[{"unified":"1f639","native":"😹","x":33,"y":19}],"version":1},"heart_eyes_cat":{"id":"heart_eyes_cat","name":"Smiling Cat with Heart-Eyes","keywords":["heart","eyes","animal","love","like","affection","cats","valentines"],"skins":[{"unified":"1f63b","native":"😻","x":33,"y":21}],"version":1},"smirk_cat":{"id":"smirk_cat","name":"Cat with Wry Smile","keywords":["smirk","animal","cats"],"skins":[{"unified":"1f63c","native":"😼","x":33,"y":22}],"version":1},"kissing_cat":{"id":"kissing_cat","name":"Kissing Cat","keywords":["animal","cats","kiss"],"skins":[{"unified":"1f63d","native":"😽","x":33,"y":23}],"version":1},"scream_cat":{"id":"scream_cat","name":"Weary Cat","keywords":["scream","animal","cats","munch","scared"],"skins":[{"unified":"1f640","native":"🙀","x":33,"y":26}],"version":1},"crying_cat_face":{"id":"crying_cat_face","name":"Crying Cat","keywords":["face","animal","tears","weep","sad","cats","upset","cry"],"skins":[{"unified":"1f63f","native":"😿","x":33,"y":25}],"version":1},"pouting_cat":{"id":"pouting_cat","name":"Pouting Cat","keywords":["animal","cats"],"skins":[{"unified":"1f63e","native":"😾","x":33,"y":24}],"version":1},"see_no_evil":{"id":"see_no_evil","name":"See-No-Evil Monkey","keywords":["see","no","evil","animal","nature","haha"],"skins":[{"unified":"1f648","native":"🙈","x":34,"y":24}],"version":1},"hear_no_evil":{"id":"hear_no_evil","name":"Hear-No-Evil Monkey","keywords":["hear","no","evil","animal","nature"],"skins":[{"unified":"1f649","native":"🙉","x":34,"y":25}],"version":1},"speak_no_evil":{"id":"speak_no_evil","name":"Speak-No-Evil Monkey","keywords":["speak","no","evil","animal","nature","omg"],"skins":[{"unified":"1f64a","native":"🙊","x":34,"y":26}],"version":1},"kiss":{"id":"kiss","name":"Kiss Mark","keywords":["face","lips","love","like","affection","valentines"],"skins":[{"unified":"1f48b","native":"💋","x":26,"y":37}],"version":1},"love_letter":{"id":"love_letter","name":"Love Letter","keywords":["email","like","affection","envelope","valentines"],"skins":[{"unified":"1f48c","native":"💌","x":26,"y":38}],"version":1},"cupid":{"id":"cupid","name":"Heart with Arrow","keywords":["cupid","love","like","affection","valentines"],"skins":[{"unified":"1f498","native":"💘","x":27,"y":39}],"version":1},"gift_heart":{"id":"gift_heart","name":"Heart with Ribbon","keywords":["gift","love","valentines"],"skins":[{"unified":"1f49d","native":"💝","x":27,"y":44}],"version":1},"sparkling_heart":{"id":"sparkling_heart","name":"Sparkling Heart","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f496","native":"💖","x":27,"y":37}],"version":1},"heartpulse":{"id":"heartpulse","name":"Growing Heart","keywords":["heartpulse","like","love","affection","valentines","pink"],"skins":[{"unified":"1f497","native":"💗","x":27,"y":38}],"version":1},"heartbeat":{"id":"heartbeat","name":"Beating Heart","keywords":["heartbeat","love","like","affection","valentines","pink"],"skins":[{"unified":"1f493","native":"💓","x":27,"y":34}],"version":1},"revolving_hearts":{"id":"revolving_hearts","name":"Revolving Hearts","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f49e","native":"💞","x":27,"y":45}],"version":1},"two_hearts":{"id":"two_hearts","name":"Two Hearts","keywords":["love","like","affection","valentines","heart"],"skins":[{"unified":"1f495","native":"💕","x":27,"y":36}],"version":1},"heart_decoration":{"id":"heart_decoration","name":"Heart Decoration","keywords":["purple","square","love","like"],"skins":[{"unified":"1f49f","native":"💟","x":27,"y":46}],"version":1},"heavy_heart_exclamation_mark_ornament":{"id":"heavy_heart_exclamation_mark_ornament","name":"Heart Exclamation","keywords":["heavy","mark","ornament","decoration","love"],"skins":[{"unified":"2763-fe0f","native":"❣️","x":59,"y":7}],"version":1},"broken_heart":{"id":"broken_heart","name":"Broken Heart","emoticons":["",":->"],"keywords":["laughing","satisfied","happy","joy","lol","haha","glad","XD","laugh"],"skins":[{"unified":"1f606","native":"😆","x":32,"y":26}],"version":1},"sweat_smile":{"id":"sweat_smile","name":"Grinning Face with Sweat","keywords":["smile","hot","happy","laugh","relief"],"skins":[{"unified":"1f605","native":"😅","x":32,"y":25}],"version":1},"rolling_on_the_floor_laughing":{"id":"rolling_on_the_floor_laughing","name":"Rolling on the Floor Laughing","keywords":["face","lol","haha","rofl"],"skins":[{"unified":"1f923","native":"🤣","x":40,"y":15}],"version":3},"joy":{"id":"joy","name":"Face with Tears of Joy","keywords":["cry","weep","happy","happytears","haha"],"skins":[{"unified":"1f602","native":"😂","x":32,"y":22}],"version":1},"slightly_smiling_face":{"id":"slightly_smiling_face","name":"Slightly Smiling Face","emoticons":[":)","(:",":-)"],"keywords":["smile"],"skins":[{"unified":"1f642","native":"🙂","x":33,"y":28}],"version":1},"upside_down_face":{"id":"upside_down_face","name":"Upside-Down Face","keywords":["upside","down","flipped","silly","smile"],"skins":[{"unified":"1f643","native":"🙃","x":33,"y":29}],"version":1},"wink":{"id":"wink","name":"Winking Face","emoticons":[";)",";-)"],"keywords":["wink","happy","mischievous","secret",";)","smile","eye"],"skins":[{"unified":"1f609","native":"😉","x":32,"y":29}],"version":1},"blush":{"id":"blush","name":"Smiling Face with Smiling Eyes","emoticons":[":)"],"keywords":["blush","smile","happy","flushed","crush","embarrassed","shy","joy"],"skins":[{"unified":"1f60a","native":"😊","x":32,"y":30}],"version":1},"innocent":{"id":"innocent","name":"Smiling Face with Halo","keywords":["innocent","angel","heaven"],"skins":[{"unified":"1f607","native":"😇","x":32,"y":27}],"version":1},"heart_eyes":{"id":"heart_eyes","name":"Smiling Face with Heart-Eyes","keywords":["heart","eyes","love","like","affection","valentines","infatuation","crush"],"skins":[{"unified":"1f60d","native":"😍","x":32,"y":33}],"version":1},"kissing_heart":{"id":"kissing_heart","name":"Face Blowing a Kiss","emoticons":[":*",":-*"],"keywords":["kissing","heart","love","like","affection","valentines","infatuation"],"skins":[{"unified":"1f618","native":"😘","x":32,"y":44}],"version":1},"kissing":{"id":"kissing","name":"Kissing Face","keywords":["love","like","3","valentines","infatuation","kiss"],"skins":[{"unified":"1f617","native":"😗","x":32,"y":43}],"version":1},"relaxed":{"id":"relaxed","name":"Smiling Face","keywords":["relaxed","blush","massage","happiness"],"skins":[{"unified":"263a-fe0f","native":"☺️","x":57,"y":4}],"version":1},"kissing_closed_eyes":{"id":"kissing_closed_eyes","name":"Kissing Face with Closed Eyes","keywords":["love","like","affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f61a","native":"😚","x":32,"y":46}],"version":1},"kissing_smiling_eyes":{"id":"kissing_smiling_eyes","name":"Kissing Face with Smiling Eyes","keywords":["affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f619","native":"😙","x":32,"y":45}],"version":1},"yum":{"id":"yum","name":"Face Savoring Food","keywords":["yum","happy","joy","tongue","smile","silly","yummy","nom","delicious","savouring"],"skins":[{"unified":"1f60b","native":"😋","x":32,"y":31}],"version":1},"stuck_out_tongue":{"id":"stuck_out_tongue","name":"Face with Tongue","emoticons":[":p",":-p",":P",":-P",":b",":-b"],"keywords":["stuck","out","prank","childish","playful","mischievous","smile"],"skins":[{"unified":"1f61b","native":"😛","x":32,"y":47}],"version":1},"stuck_out_tongue_winking_eye":{"id":"stuck_out_tongue_winking_eye","name":"Winking Face with Tongue","emoticons":[";p",";-p",";b",";-b",";P",";-P"],"keywords":["stuck","out","eye","prank","childish","playful","mischievous","smile","wink"],"skins":[{"unified":"1f61c","native":"😜","x":32,"y":48}],"version":1},"stuck_out_tongue_closed_eyes":{"id":"stuck_out_tongue_closed_eyes","name":"Squinting Face with Tongue","keywords":["stuck","out","closed","eyes","prank","playful","mischievous","smile"],"skins":[{"unified":"1f61d","native":"😝","x":32,"y":49}],"version":1},"money_mouth_face":{"id":"money_mouth_face","name":"Money-Mouth Face","keywords":["money","mouth","rich","dollar"],"skins":[{"unified":"1f911","native":"🤑","x":38,"y":59}],"version":1},"hugging_face":{"id":"hugging_face","name":"Hugging Face","keywords":["smile","hug"],"skins":[{"unified":"1f917","native":"🤗","x":39,"y":4}],"version":1},"thinking_face":{"id":"thinking_face","name":"Thinking Face","keywords":["hmmm","think","consider"],"skins":[{"unified":"1f914","native":"🤔","x":39,"y":1}],"version":1},"zipper_mouth_face":{"id":"zipper_mouth_face","name":"Zipper-Mouth Face","keywords":["zipper","mouth","sealed","secret"],"skins":[{"unified":"1f910","native":"🤐","x":38,"y":58}],"version":1},"neutral_face":{"id":"neutral_face","name":"Neutral Face","emoticons":[":|",":-|"],"keywords":["indifference","meh",":",""],"skins":[{"unified":"1f610","native":"😐","x":32,"y":36}],"version":1},"expressionless":{"id":"expressionless","name":"Expressionless Face","emoticons":["-_-"],"keywords":["indifferent","-","","meh","deadpan"],"skins":[{"unified":"1f611","native":"😑","x":32,"y":37}],"version":1},"no_mouth":{"id":"no_mouth","name":"Face Without Mouth","keywords":["no","hellokitty"],"skins":[{"unified":"1f636","native":"😶","x":33,"y":16}],"version":1},"smirk":{"id":"smirk","name":"Smirking Face","keywords":["smirk","smile","mean","prank","smug","sarcasm"],"skins":[{"unified":"1f60f","native":"😏","x":32,"y":35}],"version":1},"unamused":{"id":"unamused","name":"Unamused Face","emoticons":[":("],"keywords":["indifference","bored","straight","serious","sarcasm","unimpressed","skeptical","dubious","side","eye"],"skins":[{"unified":"1f612","native":"😒","x":32,"y":38}],"version":1},"face_with_rolling_eyes":{"id":"face_with_rolling_eyes","name":"Face with Rolling Eyes","keywords":["eyeroll","frustrated"],"skins":[{"unified":"1f644","native":"🙄","x":33,"y":30}],"version":1},"grimacing":{"id":"grimacing","name":"Grimacing Face","keywords":["grimace","teeth"],"skins":[{"unified":"1f62c","native":"😬","x":33,"y":3}],"version":1},"lying_face":{"id":"lying_face","name":"Lying Face","keywords":["lie","pinocchio"],"skins":[{"unified":"1f925","native":"🤥","x":40,"y":17}],"version":3},"relieved":{"id":"relieved","name":"Relieved Face","keywords":["relaxed","phew","massage","happiness"],"skins":[{"unified":"1f60c","native":"😌","x":32,"y":32}],"version":1},"pensive":{"id":"pensive","name":"Pensive Face","keywords":["sad","depressed","upset"],"skins":[{"unified":"1f614","native":"😔","x":32,"y":40}],"version":1},"sleepy":{"id":"sleepy","name":"Sleepy Face","keywords":["tired","rest","nap"],"skins":[{"unified":"1f62a","native":"😪","x":33,"y":1}],"version":1},"drooling_face":{"id":"drooling_face","name":"Drooling Face","keywords":[],"skins":[{"unified":"1f924","native":"🤤","x":40,"y":16}],"version":3},"sleeping":{"id":"sleeping","name":"Sleeping Face","keywords":["tired","sleepy","night","zzz"],"skins":[{"unified":"1f634","native":"😴","x":33,"y":12}],"version":1},"mask":{"id":"mask","name":"Face with Medical Mask","keywords":["sick","ill","disease"],"skins":[{"unified":"1f637","native":"😷","x":33,"y":17}],"version":1},"face_with_thermometer":{"id":"face_with_thermometer","name":"Face with Thermometer","keywords":["sick","temperature","cold","fever"],"skins":[{"unified":"1f912","native":"🤒","x":38,"y":60}],"version":1},"face_with_head_bandage":{"id":"face_with_head_bandage","name":"Face with Head-Bandage","keywords":["head","bandage","injured","clumsy","hurt"],"skins":[{"unified":"1f915","native":"🤕","x":39,"y":2}],"version":1},"nauseated_face":{"id":"nauseated_face","name":"Nauseated Face","keywords":["vomit","gross","green","sick","throw","up","ill"],"skins":[{"unified":"1f922","native":"🤢","x":40,"y":14}],"version":3},"sneezing_face":{"id":"sneezing_face","name":"Sneezing Face","keywords":["gesundheit","sneeze","sick","allergy"],"skins":[{"unified":"1f927","native":"🤧","x":40,"y":36}],"version":3},"dizzy_face":{"id":"dizzy_face","name":"Dizzy Face","keywords":["spent","unconscious","xox"],"skins":[{"unified":"1f635","native":"😵","x":33,"y":14}],"version":1},"face_with_cowboy_hat":{"id":"face_with_cowboy_hat","name":"Cowboy Hat Face","keywords":["with","cowgirl"],"skins":[{"unified":"1f920","native":"🤠","x":40,"y":12}],"version":3},"sunglasses":{"id":"sunglasses","name":"Smiling Face with Sunglasses","emoticons":["8)"],"keywords":["cool","smile","summer","beach","sunglass"],"skins":[{"unified":"1f60e","native":"😎","x":32,"y":34}],"version":1},"nerd_face":{"id":"nerd_face","name":"Nerd Face","keywords":["nerdy","geek","dork"],"skins":[{"unified":"1f913","native":"🤓","x":39,"y":0}],"version":1},"confused":{"id":"confused","name":"Confused Face","emoticons":[":\\",":-\\",":/",":-/"],"keywords":["indifference","huh","weird","hmmm",":/"],"skins":[{"unified":"1f615","native":"😕","x":32,"y":41}],"version":1},"worried":{"id":"worried","name":"Worried Face","keywords":["concern","nervous",":("],"skins":[{"unified":"1f61f","native":"😟","x":32,"y":51}],"version":1},"slightly_frowning_face":{"id":"slightly_frowning_face","name":"Slightly Frowning Face","keywords":["disappointed","sad","upset"],"skins":[{"unified":"1f641","native":"🙁","x":33,"y":27}],"version":1},"white_frowning_face":{"id":"white_frowning_face","name":"Frowning Face","keywords":["white","sad","upset","frown"],"skins":[{"unified":"2639-fe0f","native":"☹️","x":57,"y":3}],"version":1},"open_mouth":{"id":"open_mouth","name":"Face with Open Mouth","emoticons":[":o",":-o",":O",":-O"],"keywords":["surprise","impressed","wow","whoa",":O"],"skins":[{"unified":"1f62e","native":"😮","x":33,"y":6}],"version":1},"hushed":{"id":"hushed","name":"Hushed Face","keywords":["woo","shh"],"skins":[{"unified":"1f62f","native":"😯","x":33,"y":7}],"version":1},"astonished":{"id":"astonished","name":"Astonished Face","keywords":["xox","surprised","poisoned"],"skins":[{"unified":"1f632","native":"😲","x":33,"y":10}],"version":1},"flushed":{"id":"flushed","name":"Flushed Face","keywords":["blush","shy","flattered"],"skins":[{"unified":"1f633","native":"😳","x":33,"y":11}],"version":1},"frowning":{"id":"frowning","name":"Frowning Face with Open Mouth","keywords":["aw","what"],"skins":[{"unified":"1f626","native":"😦","x":32,"y":58}],"version":1},"anguished":{"id":"anguished","name":"Anguished Face","emoticons":["D:"],"keywords":["stunned","nervous"],"skins":[{"unified":"1f627","native":"😧","x":32,"y":59}],"version":1},"fearful":{"id":"fearful","name":"Fearful Face","keywords":["scared","terrified","nervous","oops","huh"],"skins":[{"unified":"1f628","native":"😨","x":32,"y":60}],"version":1},"cold_sweat":{"id":"cold_sweat","name":"Anxious Face with Sweat","keywords":["cold","nervous"],"skins":[{"unified":"1f630","native":"😰","x":33,"y":8}],"version":1},"disappointed_relieved":{"id":"disappointed_relieved","name":"Sad but Relieved Face","keywords":["disappointed","phew","sweat","nervous"],"skins":[{"unified":"1f625","native":"😥","x":32,"y":57}],"version":1},"cry":{"id":"cry","name":"Crying Face","emoticons":[":'("],"keywords":["cry","tears","sad","depressed","upset",":'("],"skins":[{"unified":"1f622","native":"😢","x":32,"y":54}],"version":1},"sob":{"id":"sob","name":"Loudly Crying Face","emoticons":[":'("],"keywords":["sob","cry","tears","sad","upset","depressed"],"skins":[{"unified":"1f62d","native":"😭","x":33,"y":4}],"version":1},"scream":{"id":"scream","name":"Face Screaming in Fear","keywords":["scream","munch","scared","omg"],"skins":[{"unified":"1f631","native":"😱","x":33,"y":9}],"version":1},"confounded":{"id":"confounded","name":"Confounded Face","keywords":["confused","sick","unwell","oops",":S"],"skins":[{"unified":"1f616","native":"😖","x":32,"y":42}],"version":1},"persevere":{"id":"persevere","name":"Persevering Face","keywords":["persevere","sick","no","upset","oops"],"skins":[{"unified":"1f623","native":"😣","x":32,"y":55}],"version":1},"disappointed":{"id":"disappointed","name":"Disappointed Face","emoticons":["):",":(",":-("],"keywords":["sad","upset","depressed",":("],"skins":[{"unified":"1f61e","native":"😞","x":32,"y":50}],"version":1},"sweat":{"id":"sweat","name":"Face with Cold Sweat","keywords":["downcast","hot","sad","tired","exercise"],"skins":[{"unified":"1f613","native":"😓","x":32,"y":39}],"version":1},"weary":{"id":"weary","name":"Weary Face","keywords":["tired","sleepy","sad","frustrated","upset"],"skins":[{"unified":"1f629","native":"😩","x":33,"y":0}],"version":1},"tired_face":{"id":"tired_face","name":"Tired Face","keywords":["sick","whine","upset","frustrated"],"skins":[{"unified":"1f62b","native":"😫","x":33,"y":2}],"version":1},"triumph":{"id":"triumph","name":"Face with Look of Triumph","keywords":["steam","from","nose","gas","phew","proud","pride"],"skins":[{"unified":"1f624","native":"😤","x":32,"y":56}],"version":1},"rage":{"id":"rage","name":"Pouting Face","keywords":["rage","angry","mad","hate","despise"],"skins":[{"unified":"1f621","native":"😡","x":32,"y":53}],"version":1},"angry":{"id":"angry","name":"Angry Face","emoticons":[">:(",">:-("],"keywords":["mad","annoyed","frustrated"],"skins":[{"unified":"1f620","native":"😠","x":32,"y":52}],"version":1},"smiling_imp":{"id":"smiling_imp","name":"Smiling Face with Horns","keywords":["imp","devil"],"skins":[{"unified":"1f608","native":"😈","x":32,"y":28}],"version":1},"imp":{"id":"imp","name":"Imp","keywords":["angry","face","with","horns","devil"],"skins":[{"unified":"1f47f","native":"👿","x":25,"y":8}],"version":1},"skull":{"id":"skull","name":"Skull","keywords":["dead","skeleton","creepy","death"],"skins":[{"unified":"1f480","native":"💀","x":25,"y":9}],"version":1},"skull_and_crossbones":{"id":"skull_and_crossbones","name":"Skull and Crossbones","keywords":["poison","danger","deadly","scary","death","pirate","evil"],"skins":[{"unified":"2620-fe0f","native":"☠️","x":56,"y":56}],"version":1},"hankey":{"id":"hankey","name":"Pile of Poo","keywords":["hankey","poop","shit","shitface","fail","turd"],"skins":[{"unified":"1f4a9","native":"💩","x":27,"y":56}],"version":1},"clown_face":{"id":"clown_face","name":"Clown Face","keywords":[],"skins":[{"unified":"1f921","native":"🤡","x":40,"y":13}],"version":3},"japanese_ogre":{"id":"japanese_ogre","name":"Ogre","keywords":["japanese","monster","red","mask","halloween","scary","creepy","devil","demon"],"skins":[{"unified":"1f479","native":"👹","x":24,"y":58}],"version":1},"japanese_goblin":{"id":"japanese_goblin","name":"Goblin","keywords":["japanese","red","evil","mask","monster","scary","creepy"],"skins":[{"unified":"1f47a","native":"👺","x":24,"y":59}],"version":1},"ghost":{"id":"ghost","name":"Ghost","keywords":["halloween","spooky","scary"],"skins":[{"unified":"1f47b","native":"👻","x":24,"y":60}],"version":1},"alien":{"id":"alien","name":"Alien","keywords":["UFO","paul","weird","outer","space"],"skins":[{"unified":"1f47d","native":"👽","x":25,"y":6}],"version":1},"space_invader":{"id":"space_invader","name":"Alien Monster","keywords":["space","invader","game","arcade","play"],"skins":[{"unified":"1f47e","native":"👾","x":25,"y":7}],"version":1},"robot_face":{"id":"robot_face","name":"Robot","keywords":["face","computer","machine","bot"],"skins":[{"unified":"1f916","native":"🤖","x":39,"y":3}],"version":1},"smiley_cat":{"id":"smiley_cat","name":"Grinning Cat","keywords":["smiley","animal","cats","happy","smile"],"skins":[{"unified":"1f63a","native":"😺","x":33,"y":20}],"version":1},"smile_cat":{"id":"smile_cat","name":"Grinning Cat with Smiling Eyes","keywords":["smile","animal","cats"],"skins":[{"unified":"1f638","native":"😸","x":33,"y":18}],"version":1},"joy_cat":{"id":"joy_cat","name":"Cat with Tears of Joy","keywords":["animal","cats","haha","happy"],"skins":[{"unified":"1f639","native":"😹","x":33,"y":19}],"version":1},"heart_eyes_cat":{"id":"heart_eyes_cat","name":"Smiling Cat with Heart-Eyes","keywords":["heart","eyes","animal","love","like","affection","cats","valentines"],"skins":[{"unified":"1f63b","native":"😻","x":33,"y":21}],"version":1},"smirk_cat":{"id":"smirk_cat","name":"Cat with Wry Smile","keywords":["smirk","animal","cats"],"skins":[{"unified":"1f63c","native":"😼","x":33,"y":22}],"version":1},"kissing_cat":{"id":"kissing_cat","name":"Kissing Cat","keywords":["animal","cats","kiss"],"skins":[{"unified":"1f63d","native":"😽","x":33,"y":23}],"version":1},"scream_cat":{"id":"scream_cat","name":"Weary Cat","keywords":["scream","animal","cats","munch","scared"],"skins":[{"unified":"1f640","native":"🙀","x":33,"y":26}],"version":1},"crying_cat_face":{"id":"crying_cat_face","name":"Crying Cat","keywords":["face","animal","tears","weep","sad","cats","upset","cry"],"skins":[{"unified":"1f63f","native":"😿","x":33,"y":25}],"version":1},"pouting_cat":{"id":"pouting_cat","name":"Pouting Cat","keywords":["animal","cats"],"skins":[{"unified":"1f63e","native":"😾","x":33,"y":24}],"version":1},"see_no_evil":{"id":"see_no_evil","name":"See-No-Evil Monkey","keywords":["see","no","evil","animal","nature","haha"],"skins":[{"unified":"1f648","native":"🙈","x":34,"y":24}],"version":1},"hear_no_evil":{"id":"hear_no_evil","name":"Hear-No-Evil Monkey","keywords":["hear","no","evil","animal","nature"],"skins":[{"unified":"1f649","native":"🙉","x":34,"y":25}],"version":1},"speak_no_evil":{"id":"speak_no_evil","name":"Speak-No-Evil Monkey","keywords":["speak","no","evil","animal","nature","omg"],"skins":[{"unified":"1f64a","native":"🙊","x":34,"y":26}],"version":1},"kiss":{"id":"kiss","name":"Kiss Mark","keywords":["face","lips","love","like","affection","valentines"],"skins":[{"unified":"1f48b","native":"💋","x":26,"y":37}],"version":1},"love_letter":{"id":"love_letter","name":"Love Letter","keywords":["email","like","affection","envelope","valentines"],"skins":[{"unified":"1f48c","native":"💌","x":26,"y":38}],"version":1},"cupid":{"id":"cupid","name":"Heart with Arrow","keywords":["cupid","love","like","affection","valentines"],"skins":[{"unified":"1f498","native":"💘","x":27,"y":39}],"version":1},"gift_heart":{"id":"gift_heart","name":"Heart with Ribbon","keywords":["gift","love","valentines"],"skins":[{"unified":"1f49d","native":"💝","x":27,"y":44}],"version":1},"sparkling_heart":{"id":"sparkling_heart","name":"Sparkling Heart","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f496","native":"💖","x":27,"y":37}],"version":1},"heartpulse":{"id":"heartpulse","name":"Growing Heart","keywords":["heartpulse","like","love","affection","valentines","pink"],"skins":[{"unified":"1f497","native":"💗","x":27,"y":38}],"version":1},"heartbeat":{"id":"heartbeat","name":"Beating Heart","keywords":["heartbeat","love","like","affection","valentines","pink"],"skins":[{"unified":"1f493","native":"💓","x":27,"y":34}],"version":1},"revolving_hearts":{"id":"revolving_hearts","name":"Revolving Hearts","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f49e","native":"💞","x":27,"y":45}],"version":1},"two_hearts":{"id":"two_hearts","name":"Two Hearts","keywords":["love","like","affection","valentines","heart"],"skins":[{"unified":"1f495","native":"💕","x":27,"y":36}],"version":1},"heart_decoration":{"id":"heart_decoration","name":"Heart Decoration","keywords":["purple","square","love","like"],"skins":[{"unified":"1f49f","native":"💟","x":27,"y":46}],"version":1},"heavy_heart_exclamation_mark_ornament":{"id":"heavy_heart_exclamation_mark_ornament","name":"Heart Exclamation","keywords":["heavy","mark","ornament","decoration","love"],"skins":[{"unified":"2763-fe0f","native":"❣️","x":59,"y":7}],"version":1},"broken_heart":{"id":"broken_heart","name":"Broken Heart","emoticons":[" Date: Wed, 25 Jan 2023 23:22:27 +0300 Subject: [PATCH 4/7] refactor: update tests According to the latest updates --- .../UserInterfaceState.xcuserstate | Bin 90587 -> 100540 bytes .../Pods/Pods.xcodeproj/project.pbxproj | 738 +++++++++--------- .../ArrayExtensionTests.swift | 38 - .../EmojiCategoryTypeTests.swift | 40 - .../EmojiPickerTests/EmojiManagerTests.swift | 45 ++ .../EmojiPickerViewModelTests.swift | 32 +- .../Stubs/EmojiManagerStub.swift | 67 ++ .../Stubs/UnicodeManagerStub.swift | 19 - .../UnicodeManagerTests.swift | 51 -- 9 files changed, 503 insertions(+), 527 deletions(-) delete mode 100644 Tests/EmojiPickerTests/ArrayExtensionTests.swift delete mode 100644 Tests/EmojiPickerTests/EmojiCategoryTypeTests.swift create mode 100644 Tests/EmojiPickerTests/EmojiManagerTests.swift create mode 100644 Tests/EmojiPickerTests/Stubs/EmojiManagerStub.swift delete mode 100644 Tests/EmojiPickerTests/Stubs/UnicodeManagerStub.swift delete mode 100644 Tests/EmojiPickerTests/UnicodeManagerTests.swift diff --git a/Example App/EmojiPicker.xcworkspace/xcuserdata/egbad.xcuserdatad/UserInterfaceState.xcuserstate b/Example App/EmojiPicker.xcworkspace/xcuserdata/egbad.xcuserdatad/UserInterfaceState.xcuserstate index f7d09d67dcb0b740658a236de725ca2970609203..b906058fdf402961c65ebfcd36c2ba5032198c3f 100644 GIT binary patch literal 100540 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 literal 90587 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

j@>=G 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"; }; + 01110519D923178375AEC659DC935704 /* EmojiPicker-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "EmojiPicker-Info.plist"; sourceTree = ""; }; 01F2518BBC39B4BACCF61C2B5E035BBC /* Pods-EmojiPicker_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-EmojiPicker_Example-acknowledgements.plist"; sourceTree = ""; }; - 0A2C22EA600F5B5B34E546C1FDBB9A56 /* Emoji.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Emoji.swift; sourceTree = ""; }; - 0B459C9F29B2A83DDCEE596B88267CCC /* EmojiPicker.unit-tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "EmojiPicker.unit-tests.debug.xcconfig"; sourceTree = ""; }; - 0D84E62111239C369B0B3D2D6528BCE4 /* EmojiPicker-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EmojiPicker-umbrella.h"; sourceTree = ""; }; - 0E766211B93AE00EA5820C6EB7D4FCBD /* EmojiCategoryIconView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiCategoryIconView.swift; sourceTree = ""; }; - 0EBE9A1E3C736DF95091350631B3B8C6 /* 13.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 13.json; sourceTree = ""; }; - 114276F82FE507457E55E8C1D41F5D8B /* UIColor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UIColor.swift; sourceTree = ""; }; - 1455D08D7446DF360DF602A496735D08 /* Skin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Skin.swift; sourceTree = ""; }; - 1A73B69BB08091CBA91E2FD3EB286619 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = fr.lproj/Localizable.strings; sourceTree = ""; }; - 1D8AE8E109045877CA5D7BABE5517C49 /* EmojiPicker.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = EmojiPicker.release.xcconfig; sourceTree = ""; }; + 01FC6DF4E5C22576339D91C59F955FC5 /* EmojiPicker-Unit-Tests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "EmojiPicker-Unit-Tests-Info.plist"; sourceTree = ""; }; + 032DAA6BF07F76BDD5DB8CBFE0063828 /* EmojiPickerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerView.swift; sourceTree = ""; }; + 080E90C15F9CB7CAC2C5ABB284DA373F /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = ru.lproj/Localizable.strings; sourceTree = ""; }; + 0B34CAF72D888BF33BA5EDC927AE0E87 /* EmojiSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiSet.swift; sourceTree = ""; }; + 0D0E8FDE7FD51DDB32EBE6B22890668C /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = tr.lproj/Localizable.strings; sourceTree = ""; }; + 1678BA4FB16E18450F3FAE5C7D9BF48D /* EmojiPicker.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = EmojiPicker.debug.xcconfig; sourceTree = ""; }; + 1A1BC4999B57E1B1194B49C03945CA09 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = de.lproj/Localizable.strings; sourceTree = ""; }; + 1C70B65FE63BCA6A4FF610012338F4A4 /* ObservableTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ObservableTests.swift; path = Tests/EmojiPickerTests/ObservableTests.swift; sourceTree = ""; }; 23BE90F951883808EBCF02CDD69ED1AB /* EmojiPicker */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = EmojiPicker; path = EmojiPicker.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 241B0242F67E40FAFB0CDFAA9808F602 /* 12.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 12.json; sourceTree = ""; }; - 2D79E814DBFF6DCDB0BA71871674AF8D /* EmojiSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiSet.swift; sourceTree = ""; }; + 2568DE7955C597EEFFE7B99A72DF75EB /* EmojiCategoryIconView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiCategoryIconView.swift; sourceTree = ""; }; + 3697C479831FCE781859C9455E7F2B86 /* EmojiPicker.unit-tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "EmojiPicker.unit-tests.release.xcconfig"; sourceTree = ""; }; 382524B7DD3E7F2893D02267E796F68E /* Pods-EmojiPicker_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-EmojiPicker_Example.modulemap"; sourceTree = ""; }; - 3D21C5FC676356F8729839E0F8A9EF25 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = ru.lproj/Localizable.strings; sourceTree = ""; }; - 4DDC26C0A6107DB05C993B2E40A5D25B /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; - 4E3FF5DDF341270692A13C19EBF18886 /* EmojiPicker-Unit-Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "EmojiPicker-Unit-Tests-resources.sh"; sourceTree = ""; }; + 3AB25A1AEF20DB9626EDF86AE09D53A4 /* EmojiPicker-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EmojiPicker-prefix.pch"; sourceTree = ""; }; + 3EE00CF1CA3F8904C85AD06658A5F158 /* EmojiPicker-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "EmojiPicker-dummy.m"; sourceTree = ""; }; + 4177ACBD21981A2A71DE231D9ABF1583 /* Emoji.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Emoji.swift; sourceTree = ""; }; + 44E13D95912AFCB400D646BAC42D7448 /* TouchableEmojiCategoryView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TouchableEmojiCategoryView.swift; sourceTree = ""; }; + 45D6CA63EF4B244E53167A8C23E4BA05 /* EmojiPicker.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = EmojiPicker.modulemap; sourceTree = ""; }; 509EFFB149756F700CC3A368970476A6 /* Pods-EmojiPicker_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-EmojiPicker_Example-umbrella.h"; sourceTree = ""; }; - 55AB59A1A7D14CDE91BE59962EDF603D /* EmojiPicker.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = EmojiPicker.modulemap; sourceTree = ""; }; + 53759225C7C5A642AE4EEF4A632CBE7A /* UIColor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UIColor.swift; sourceTree = ""; }; + 55DDE8592474D342CCA0A1FB502A6BEF /* Observable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Observable.swift; sourceTree = ""; }; + 58080FC58CF79FEE19685D3C7F957FF8 /* 11.json */ = {isa = PBXFileReference; includeInIndex = 1; path = 11.json; sourceTree = ""; }; 5FFCF687F23CBE36E970127D9B9AB400 /* Pods-EmojiPicker_Example */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-EmojiPicker_Example"; path = Pods_EmojiPicker_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 60A491E4B46DAFD75687632B0E08A7B2 /* ResourceBundle-Resources-EmojiPicker-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-Resources-EmojiPicker-Info.plist"; sourceTree = ""; }; 60CDDCE1EBAF6641C515D019921650A6 /* EmojiPicker-Unit-Tests */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "EmojiPicker-Unit-Tests"; path = "EmojiPicker-Unit-Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 62843EFF6E2CF119C910308FD85D7AEE /* EmojiPicker-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EmojiPicker-prefix.pch"; sourceTree = ""; }; - 67C9B3AAE49C37B7CBC6BDCD2EB2D00C /* UIView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UIView.swift; sourceTree = ""; }; + 69E0F685465F1DD0840681DE13136326 /* 12.json */ = {isa = PBXFileReference; includeInIndex = 1; path = 12.json; sourceTree = ""; }; 6E41074865C769D58022F8DB9C2B17FE /* Pods-EmojiPicker_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-EmojiPicker_Example-dummy.m"; sourceTree = ""; }; - 6E4AC8B402CE70E5027BE9085FB33A28 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; - 720CFC2FD0DD124C1A39FBE2EDF9AD62 /* EmojiPickerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerView.swift; sourceTree = ""; }; - 72ABF294222DAB68273906157A55A3E6 /* EmojiPicker-Unit-Tests-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EmojiPicker-Unit-Tests-prefix.pch"; sourceTree = ""; }; + 6E7E3939E69E3EA11CCDB6F1446B1D84 /* Category.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Category.swift; sourceTree = ""; }; 72DF50AF5F8CB0E66065910A9B57FFFE /* EmojiPicker-Resources */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "EmojiPicker-Resources"; path = Resources.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 76E46A79EA45CD3030E4DDBFEBE70841 /* EmojiPickerDelegateMock.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerDelegateMock.swift; sourceTree = ""; }; - 78B4EBC1CF7C118A0964F15037F23A49 /* UnicodeManagerStub.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UnicodeManagerStub.swift; sourceTree = ""; }; - 79D9DA9D7177F959D8DE47C1CC0F8135 /* EmojiManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiManager.swift; sourceTree = ""; }; - 7C4D5DCE0488D3573527E22774645B91 /* 13.1.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 13.1.json; sourceTree = ""; }; - 7CB447BBAB30B870FB199D250ADA8C14 /* TouchableEmojiCategoryView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TouchableEmojiCategoryView.swift; sourceTree = ""; }; - 812F54CDA56ABF6498E0999230931BE0 /* 12.1.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 12.1.json; sourceTree = ""; }; - 8B6B85C5CC79322D762618868B3C370D /* EmojiPickerViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerViewModel.swift; sourceTree = ""; }; - 92F4AA51785FB6B8BED39C74FAAE7F37 /* ObservableTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ObservableTests.swift; path = Tests/EmojiPickerTests/ObservableTests.swift; sourceTree = ""; }; - 96A6D4A422B77C24D7BB3A2F0DD6C360 /* Category.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Category.swift; sourceTree = ""; }; - 96E1B3D4CF7A2B7E6CB251D7E466B8C9 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = en.lproj/Localizable.strings; sourceTree = ""; }; - 99E70F3B23911192E9F0C8F4179B2AA7 /* EmojiPickerViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerViewController.swift; sourceTree = ""; }; - 9B3840BE79F07D4F4C6956F8D4AC9D53 /* PickerArrowDirectionMode.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PickerArrowDirectionMode.swift; sourceTree = ""; }; - 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - A2F202C903864C3B0EC32EFB0400CCC8 /* EmojiCategoryTypeTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EmojiCategoryTypeTests.swift; path = Tests/EmojiPickerTests/EmojiCategoryTypeTests.swift; sourceTree = ""; }; - A4B5A94313F3C88B78D814E6A03AAFAA /* Bundle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Bundle.swift; sourceTree = ""; }; + 734936CBF9DA2413F4C14B6EB579BA25 /* ResourceBundle-Resources-EmojiPicker-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-Resources-EmojiPicker-Info.plist"; sourceTree = ""; }; + 749BE4DD98D1BFF718F8FF89C01269E5 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = fr.lproj/Localizable.strings; sourceTree = ""; }; + 775CE6A22026D8062153BCD58A3D1533 /* Skin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Skin.swift; sourceTree = ""; }; + 792F1BBB06808BC2E5BA00F09C733E4D /* PickerArrowDirectionMode.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PickerArrowDirectionMode.swift; sourceTree = ""; }; + 7D9160B732C69A42AF15E8EF1B232AF0 /* EmojiPicker.unit-tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "EmojiPicker.unit-tests.debug.xcconfig"; sourceTree = ""; }; + 85043E17B9359D1C33071B2281A85B69 /* 13.json */ = {isa = PBXFileReference; includeInIndex = 1; path = 13.json; sourceTree = ""; }; + 861C76504166FB072BAEA3516D6360D6 /* PickerArrowDirectionModeTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PickerArrowDirectionModeTests.swift; path = Tests/EmojiPickerTests/PickerArrowDirectionModeTests.swift; sourceTree = ""; }; + 97020F14B35520B0855FCDC0554A444F /* 14.json */ = {isa = PBXFileReference; includeInIndex = 1; path = 14.json; sourceTree = ""; }; + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 9E3A148A61D7B9B28C1C93E3A7DFEB3D /* EmojiPicker-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EmojiPicker-umbrella.h"; sourceTree = ""; }; A66E21E0B052B50A29602427E1E2DC23 /* Pods-EmojiPicker_Example-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-EmojiPicker_Example-Info.plist"; sourceTree = ""; }; - A99FB808CE529FD4F9FA379DFE1BFA7F /* EmojiPicker-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "EmojiPicker-dummy.m"; sourceTree = ""; }; - AEFFFAE23803201EDC2F47CDE4444F3B /* Observable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Observable.swift; sourceTree = ""; }; - B0F3B19ACABFA2105C91B7A783696835 /* UnicodeManagerTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UnicodeManagerTests.swift; path = Tests/EmojiPickerTests/UnicodeManagerTests.swift; sourceTree = ""; }; - B4EB102F71D06151E7C435419114218D /* EmojiPicker-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "EmojiPicker-Info.plist"; sourceTree = ""; }; - BA72DFECA5CB6E9B70E1F4BDB94E5417 /* EmojiCollectionViewHeader.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewHeader.swift; sourceTree = ""; }; - C3A920FF2D6951F74E8A439C99766735 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = de.lproj/Localizable.strings; sourceTree = ""; }; - C3F81A35240A14AAA6C7B90BC3390638 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = hi.lproj/Localizable.strings; sourceTree = ""; }; - C5D2F51818AEEDF0C94B582F2172F367 /* 11.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 11.json; sourceTree = ""; }; - CB350980F38E26743F6B7225969FF89E /* PickerArrowDirectionModeTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PickerArrowDirectionModeTests.swift; path = Tests/EmojiPickerTests/PickerArrowDirectionModeTests.swift; sourceTree = ""; }; - CEF7819C61FF4536C5694B49D95783C0 /* 5.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 5.json; sourceTree = ""; }; - CF9194F1C2BFD34B2C408033A5BE4503 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = uk.lproj/Localizable.strings; sourceTree = ""; }; + A95288839D02C488E7A7C6BCC96B885F /* 12.1.json */ = {isa = PBXFileReference; includeInIndex = 1; path = 12.1.json; sourceTree = ""; }; + AC2D0F8379D8D79AC8DE011567883C3D /* EmojiPickerViewModelTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EmojiPickerViewModelTests.swift; path = Tests/EmojiPickerTests/EmojiPickerViewModelTests.swift; sourceTree = ""; }; + AD21E4F64085656007E1A4C49691E9D8 /* 5.json */ = {isa = PBXFileReference; includeInIndex = 1; path = 5.json; sourceTree = ""; }; + AE05597799F2772A8E87F253FD358869 /* EmojiPickerViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerViewModel.swift; sourceTree = ""; }; + B3113B059F1175E7C1105852146461C0 /* EmojiManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiManager.swift; sourceTree = ""; }; + B66A723BC2333792FCB82032B3CD1A3E /* EmojiCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewCell.swift; sourceTree = ""; }; + B68233657A8A947E3F04F73DC3CABC73 /* EmojiManagerStub.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiManagerStub.swift; sourceTree = ""; }; + B7F771D6741118E77A77AE040492851F /* Bundle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Bundle.swift; sourceTree = ""; }; + B952BD33603765DD73FDA952E0D2B334 /* EmojiCollectionViewHeader.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewHeader.swift; sourceTree = ""; }; + BAB2FFF5F1161BB0DA52A28D7077FD10 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; D089390CB10DE5D7264EAF267B71BF52 /* Pods-EmojiPicker_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-EmojiPicker_Example.debug.xcconfig"; sourceTree = ""; }; D0B1C88F829541DAEF35CF30E76D83B7 /* Pods-EmojiPicker_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-EmojiPicker_Example.release.xcconfig"; sourceTree = ""; }; + D6035AE16B737240D77F2885580EB236 /* EmojiPicker-Unit-Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "EmojiPicker-Unit-Tests-frameworks.sh"; sourceTree = ""; }; + D6D8C1880EDE22179D7F3C38EA266B06 /* UIView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UIView.swift; sourceTree = ""; }; D9A8ECD769F879596441DCFFBAFD34CC /* Pods-EmojiPicker_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-EmojiPicker_Example-frameworks.sh"; sourceTree = ""; }; - E04078FD88DDC343C6B8093D59A56C6C /* EmojiPickerViewModelTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EmojiPickerViewModelTests.swift; path = Tests/EmojiPickerTests/EmojiPickerViewModelTests.swift; sourceTree = ""; }; - E4580DA8F896D0729F23282903D394D4 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = tr.lproj/Localizable.strings; sourceTree = ""; }; - E4F80D0846A46597C41E71A22868B1EE /* EmojiPicker-Unit-Tests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "EmojiPicker-Unit-Tests-Info.plist"; sourceTree = ""; }; - E74EA740355CB1AFE4DDAED762318AEF /* EmojiPicker.unit-tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "EmojiPicker.unit-tests.release.xcconfig"; sourceTree = ""; }; - ED4DFB05FA69FAEFE666FC01567E7334 /* EmojiPicker.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; path = EmojiPicker.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - F9F0CD3AFA3EA83554B7407BF8B587DA /* EmojiPicker-Unit-Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "EmojiPicker-Unit-Tests-frameworks.sh"; sourceTree = ""; }; - FB234B5215B8544D6C7723510CCF6C9B /* EmojiCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewCell.swift; sourceTree = ""; }; - FB2F11ABCD4FB22F86C92606C1A13A26 /* EmojiPicker.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = EmojiPicker.debug.xcconfig; sourceTree = ""; }; + DDA334B5D65EC7716722263ED828F83B /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = uk.lproj/Localizable.strings; sourceTree = ""; }; + E4FD3B0026723ADB08351117D2B05E76 /* EmojiPickerViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerViewController.swift; sourceTree = ""; }; + E9135CB45F85FC878C6CA5125B6F87A8 /* EmojiPickerDelegateMock.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerDelegateMock.swift; sourceTree = ""; }; + ECC26C6F65D6AD027C546C4D2F9220D9 /* EmojiPicker.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = EmojiPicker.release.xcconfig; sourceTree = ""; }; + EFB92181D9633CD27218C6E8E11B3A23 /* EmojiManagerTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EmojiManagerTests.swift; path = Tests/EmojiPickerTests/EmojiManagerTests.swift; sourceTree = ""; }; + F37C787ED9137E9A17EBC07BC22F4A71 /* EmojiPicker-Unit-Tests-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EmojiPicker-Unit-Tests-prefix.pch"; sourceTree = ""; }; + F4404D097107D0E5C3370ADA3A699D30 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = hi.lproj/Localizable.strings; sourceTree = ""; }; + F5383EAF33B429E1172FA71E03D5860B /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; + F711D2A372CCCCC578D5E43DADD5E322 /* 13.1.json */ = {isa = PBXFileReference; includeInIndex = 1; path = 13.1.json; sourceTree = ""; }; + FAD3929A434C5CC360875C08AAEE8FBE /* EmojiPicker.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = EmojiPicker.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + FCC7EBA5544D2C7BDD60441D0D351534 /* EmojiPicker-Unit-Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "EmojiPicker-Unit-Tests-resources.sh"; sourceTree = ""; }; FEC6B8950F4C546111DE3F93FECA20B5 /* Pods-EmojiPicker_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-EmojiPicker_Example-acknowledgements.markdown"; sourceTree = ""; }; - FF73A55A4418C718FC9D29FAED96D71A /* 14.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 14.json; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - AEA72749B4807F175E85AC64A4464F62 /* Frameworks */ = { + 6B6C17D573AB2080AF9F3EDDB338B081 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 6CCE6EF5DB6DD0545F70DE1C6296AF01 /* Foundation.framework in Frameworks */, + 0497DA15837C04BACF2FFCAB3561B126 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -163,50 +161,32 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - CC05765125F8057E32CE235D7A08ECF7 /* Frameworks */ = { + C7413BD5F4AA8D3A568483A1FA295959 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 7AD411BFDBD6A713CE09B1E0E825F163 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - F50E33FA52AD81C55D4FB4BA846E7465 /* Frameworks */ = { + CC05765125F8057E32CE235D7A08ECF7 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 7AD411BFDBD6A713CE09B1E0E825F163 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 06C30041FD8EBE75F8D248313B5AE532 /* EmojiPicker */ = { - isa = PBXGroup; - children = ( - B5524AE0EEEF0D5587DA53D112B80A05 /* Bindings */, - AE2C2EF4682FA0D99F23DAC6E025D476 /* Data */, - 279D0CE5E904C213EE1E764CC6E2D2B2 /* Extensions */, - 94C525117630F737228C6FD223089C35 /* Localization */, - E6F4B2CD9DB3D981229F83597FEAE185 /* Models */, - C45B5DD382DE086CDB19F1798F71DA75 /* Pod */, - 84107372F9521E5C78DB21C0070DE384 /* Services */, - 2B20A8013FC934126425FEB5ECD679D8 /* Support Files */, - C21C01F25C849F6B6A13BAB24BE56394 /* Tests */, - BE004FE1C90795214C8574A83D4611C8 /* ViewModel */, - D0533FFC0405B46C706FD92C86C05DB8 /* Views */, - ); - name = EmojiPicker; - path = ../..; - sourceTree = ""; - }; - 15E30D8BBCA8519513D8266EC9A54F31 /* EmojiCategoryView */ = { + 18436656DFFEFA3A184C6F8270E8E61E /* Pod */ = { isa = PBXGroup; children = ( - 0E766211B93AE00EA5820C6EB7D4FCBD /* EmojiCategoryIconView.swift */, - 7CB447BBAB30B870FB199D250ADA8C14 /* TouchableEmojiCategoryView.swift */, + FAD3929A434C5CC360875C08AAEE8FBE /* EmojiPicker.podspec */, + BAB2FFF5F1161BB0DA52A28D7077FD10 /* LICENSE */, + F5383EAF33B429E1172FA71E03D5860B /* README.md */, ); - path = EmojiCategoryView; + name = Pod; sourceTree = ""; }; 1A1160E78863D1B69A568D78ED779947 /* Products */ = { @@ -220,170 +200,174 @@ name = Products; sourceTree = ""; }; - 279D0CE5E904C213EE1E764CC6E2D2B2 /* Extensions */ = { + 1BBEF5BDA9005AE036A7E68EEE01ABBC /* Services */ = { isa = PBXGroup; children = ( - 7DDDF4DDCC08D5DB474448D9CCB44130 /* Foundation */, - 5A463891624E61077C800573856C9050 /* UIKit */, + B3113B059F1175E7C1105852146461C0 /* EmojiManager.swift */, ); - name = Extensions; - path = Sources/EmojiPicker/Extensions; + name = Services; + path = Sources/EmojiPicker/Services; sourceTree = ""; }; - 2B20A8013FC934126425FEB5ECD679D8 /* Support Files */ = { + 28FED0D50DB275E654F7DFDD9BF14D54 /* Localization */ = { isa = PBXGroup; children = ( - 55AB59A1A7D14CDE91BE59962EDF603D /* EmojiPicker.modulemap */, - A99FB808CE529FD4F9FA379DFE1BFA7F /* EmojiPicker-dummy.m */, - B4EB102F71D06151E7C435419114218D /* EmojiPicker-Info.plist */, - 62843EFF6E2CF119C910308FD85D7AEE /* EmojiPicker-prefix.pch */, - 0D84E62111239C369B0B3D2D6528BCE4 /* EmojiPicker-umbrella.h */, - F9F0CD3AFA3EA83554B7407BF8B587DA /* EmojiPicker-Unit-Tests-frameworks.sh */, - E4F80D0846A46597C41E71A22868B1EE /* EmojiPicker-Unit-Tests-Info.plist */, - 72ABF294222DAB68273906157A55A3E6 /* EmojiPicker-Unit-Tests-prefix.pch */, - 4E3FF5DDF341270692A13C19EBF18886 /* EmojiPicker-Unit-Tests-resources.sh */, - FB2F11ABCD4FB22F86C92606C1A13A26 /* EmojiPicker.debug.xcconfig */, - 1D8AE8E109045877CA5D7BABE5517C49 /* EmojiPicker.release.xcconfig */, - 0B459C9F29B2A83DDCEE596B88267CCC /* EmojiPicker.unit-tests.debug.xcconfig */, - E74EA740355CB1AFE4DDAED762318AEF /* EmojiPicker.unit-tests.release.xcconfig */, - 60A491E4B46DAFD75687632B0E08A7B2 /* ResourceBundle-Resources-EmojiPicker-Info.plist */, + FE8EF91C905E9713877A80553FA82B90 /* Localizable.strings */, ); - name = "Support Files"; - path = "Example App/Pods/Target Support Files/EmojiPicker"; + name = Localization; + path = Sources/EmojiPicker/Resources/Localization; sourceTree = ""; }; - 578452D2E740E91742655AC8F1636D1F /* iOS */ = { + 33A76C015C27FAC6C5486620692D0230 /* Data */ = { isa = PBXGroup; children = ( - 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */, + 58080FC58CF79FEE19685D3C7F957FF8 /* 11.json */, + 69E0F685465F1DD0840681DE13136326 /* 12.json */, + A95288839D02C488E7A7C6BCC96B885F /* 12.1.json */, + 85043E17B9359D1C33071B2281A85B69 /* 13.json */, + F711D2A372CCCCC578D5E43DADD5E322 /* 13.1.json */, + 97020F14B35520B0855FCDC0554A444F /* 14.json */, + AD21E4F64085656007E1A4C49691E9D8 /* 5.json */, ); - name = iOS; + name = Data; + path = Sources/EmojiPicker/Resources/Data; sourceTree = ""; }; - 5A463891624E61077C800573856C9050 /* UIKit */ = { + 349E4F5DDF56A8630554DB3A39433086 /* Mocks */ = { isa = PBXGroup; children = ( - 114276F82FE507457E55E8C1D41F5D8B /* UIColor.swift */, - 67C9B3AAE49C37B7CBC6BDCD2EB2D00C /* UIView.swift */, + E9135CB45F85FC878C6CA5125B6F87A8 /* EmojiPickerDelegateMock.swift */, ); - path = UIKit; + name = Mocks; + path = Tests/EmojiPickerTests/Mocks; sourceTree = ""; }; - 7DDDF4DDCC08D5DB474448D9CCB44130 /* Foundation */ = { + 398D12D7D013ED40250240863B1EC224 /* Tests */ = { isa = PBXGroup; children = ( - A4B5A94313F3C88B78D814E6A03AAFAA /* Bundle.swift */, + EFB92181D9633CD27218C6E8E11B3A23 /* EmojiManagerTests.swift */, + AC2D0F8379D8D79AC8DE011567883C3D /* EmojiPickerViewModelTests.swift */, + 1C70B65FE63BCA6A4FF610012338F4A4 /* ObservableTests.swift */, + 861C76504166FB072BAEA3516D6360D6 /* PickerArrowDirectionModeTests.swift */, + 349E4F5DDF56A8630554DB3A39433086 /* Mocks */, + 9B30C5736B4A622EA60A63185AE1626A /* Stubs */, ); - path = Foundation; + name = Tests; sourceTree = ""; }; - 81734294209AC4804EF8F7483F2A4AC9 /* Development Pods */ = { + 4CF43EFD100AEA100F627F4F890CEAC6 /* UIKit */ = { isa = PBXGroup; children = ( - 06C30041FD8EBE75F8D248313B5AE532 /* EmojiPicker */, + 53759225C7C5A642AE4EEF4A632CBE7A /* UIColor.swift */, + D6D8C1880EDE22179D7F3C38EA266B06 /* UIView.swift */, ); - name = "Development Pods"; + name = UIKit; + path = UIKit; sourceTree = ""; }; - 84107372F9521E5C78DB21C0070DE384 /* Services */ = { + 578452D2E740E91742655AC8F1636D1F /* iOS */ = { isa = PBXGroup; children = ( - 79D9DA9D7177F959D8DE47C1CC0F8135 /* EmojiManager.swift */, + 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */, ); - name = Services; - path = Sources/EmojiPicker/Services; + name = iOS; sourceTree = ""; }; - 94C525117630F737228C6FD223089C35 /* Localization */ = { + 70F8498FCD93E5309049CD584D7508DC /* Views */ = { isa = PBXGroup; children = ( - 21D9439D328CFCC75E465FC9398F375F /* Localizable.strings */, + B66A723BC2333792FCB82032B3CD1A3E /* EmojiCollectionViewCell.swift */, + B952BD33603765DD73FDA952E0D2B334 /* EmojiCollectionViewHeader.swift */, + 032DAA6BF07F76BDD5DB8CBFE0063828 /* EmojiPickerView.swift */, + E4FD3B0026723ADB08351117D2B05E76 /* EmojiPickerViewController.swift */, + F69265C11572E97D72FE649A20EEB846 /* EmojiCategoryView */, ); - name = Localization; - path = Sources/EmojiPicker/Resources/Localization; + name = Views; + path = Sources/EmojiPicker/Views; sourceTree = ""; }; - 9C32D27DB1D98426BBBC981D1B6F827E /* Pods-EmojiPicker_Example */ = { + 81734294209AC4804EF8F7483F2A4AC9 /* Development Pods */ = { isa = PBXGroup; children = ( - 382524B7DD3E7F2893D02267E796F68E /* Pods-EmojiPicker_Example.modulemap */, - FEC6B8950F4C546111DE3F93FECA20B5 /* Pods-EmojiPicker_Example-acknowledgements.markdown */, - 01F2518BBC39B4BACCF61C2B5E035BBC /* Pods-EmojiPicker_Example-acknowledgements.plist */, - 6E41074865C769D58022F8DB9C2B17FE /* Pods-EmojiPicker_Example-dummy.m */, - D9A8ECD769F879596441DCFFBAFD34CC /* Pods-EmojiPicker_Example-frameworks.sh */, - A66E21E0B052B50A29602427E1E2DC23 /* Pods-EmojiPicker_Example-Info.plist */, - 509EFFB149756F700CC3A368970476A6 /* Pods-EmojiPicker_Example-umbrella.h */, - D089390CB10DE5D7264EAF267B71BF52 /* Pods-EmojiPicker_Example.debug.xcconfig */, - D0B1C88F829541DAEF35CF30E76D83B7 /* Pods-EmojiPicker_Example.release.xcconfig */, + DA18BEA389C03D42A638E0201E6C65C3 /* EmojiPicker */, ); - name = "Pods-EmojiPicker_Example"; - path = "Target Support Files/Pods-EmojiPicker_Example"; + name = "Development Pods"; sourceTree = ""; }; - AE2C2EF4682FA0D99F23DAC6E025D476 /* Data */ = { + 98A6E2DEE814DCF0D9EAB69E70198F72 /* ViewModel */ = { isa = PBXGroup; children = ( - C5D2F51818AEEDF0C94B582F2172F367 /* 11.json */, - 241B0242F67E40FAFB0CDFAA9808F602 /* 12.json */, - 812F54CDA56ABF6498E0999230931BE0 /* 12.1.json */, - 0EBE9A1E3C736DF95091350631B3B8C6 /* 13.json */, - 7C4D5DCE0488D3573527E22774645B91 /* 13.1.json */, - FF73A55A4418C718FC9D29FAED96D71A /* 14.json */, - CEF7819C61FF4536C5694B49D95783C0 /* 5.json */, + AE05597799F2772A8E87F253FD358869 /* EmojiPickerViewModel.swift */, ); - name = Data; - path = Sources/EmojiPicker/Resources/Data; + name = ViewModel; + path = Sources/EmojiPicker/ViewModel; sourceTree = ""; }; - B5524AE0EEEF0D5587DA53D112B80A05 /* Bindings */ = { + 9B30C5736B4A622EA60A63185AE1626A /* Stubs */ = { isa = PBXGroup; children = ( - AEFFFAE23803201EDC2F47CDE4444F3B /* Observable.swift */, + B68233657A8A947E3F04F73DC3CABC73 /* EmojiManagerStub.swift */, ); - name = Bindings; - path = Sources/EmojiPicker/Bindings; + name = Stubs; + path = Tests/EmojiPickerTests/Stubs; sourceTree = ""; }; - BE004FE1C90795214C8574A83D4611C8 /* ViewModel */ = { + 9C32D27DB1D98426BBBC981D1B6F827E /* Pods-EmojiPicker_Example */ = { isa = PBXGroup; children = ( - 8B6B85C5CC79322D762618868B3C370D /* EmojiPickerViewModel.swift */, + 382524B7DD3E7F2893D02267E796F68E /* Pods-EmojiPicker_Example.modulemap */, + FEC6B8950F4C546111DE3F93FECA20B5 /* Pods-EmojiPicker_Example-acknowledgements.markdown */, + 01F2518BBC39B4BACCF61C2B5E035BBC /* Pods-EmojiPicker_Example-acknowledgements.plist */, + 6E41074865C769D58022F8DB9C2B17FE /* Pods-EmojiPicker_Example-dummy.m */, + D9A8ECD769F879596441DCFFBAFD34CC /* Pods-EmojiPicker_Example-frameworks.sh */, + A66E21E0B052B50A29602427E1E2DC23 /* Pods-EmojiPicker_Example-Info.plist */, + 509EFFB149756F700CC3A368970476A6 /* Pods-EmojiPicker_Example-umbrella.h */, + D089390CB10DE5D7264EAF267B71BF52 /* Pods-EmojiPicker_Example.debug.xcconfig */, + D0B1C88F829541DAEF35CF30E76D83B7 /* Pods-EmojiPicker_Example.release.xcconfig */, ); - name = ViewModel; - path = Sources/EmojiPicker/ViewModel; + name = "Pods-EmojiPicker_Example"; + path = "Target Support Files/Pods-EmojiPicker_Example"; sourceTree = ""; }; - C21C01F25C849F6B6A13BAB24BE56394 /* Tests */ = { + BFA4E499FB08B50625B5529E0481F523 /* Support Files */ = { isa = PBXGroup; children = ( - A2F202C903864C3B0EC32EFB0400CCC8 /* EmojiCategoryTypeTests.swift */, - E04078FD88DDC343C6B8093D59A56C6C /* EmojiPickerViewModelTests.swift */, - 92F4AA51785FB6B8BED39C74FAAE7F37 /* ObservableTests.swift */, - CB350980F38E26743F6B7225969FF89E /* PickerArrowDirectionModeTests.swift */, - B0F3B19ACABFA2105C91B7A783696835 /* UnicodeManagerTests.swift */, - C450100AC2839E3C80D44528C38F5705 /* Mocks */, - F4E37DC279BBDC6ACA4BBF755957213A /* Stubs */, + 45D6CA63EF4B244E53167A8C23E4BA05 /* EmojiPicker.modulemap */, + 3EE00CF1CA3F8904C85AD06658A5F158 /* EmojiPicker-dummy.m */, + 01110519D923178375AEC659DC935704 /* EmojiPicker-Info.plist */, + 3AB25A1AEF20DB9626EDF86AE09D53A4 /* EmojiPicker-prefix.pch */, + 9E3A148A61D7B9B28C1C93E3A7DFEB3D /* EmojiPicker-umbrella.h */, + D6035AE16B737240D77F2885580EB236 /* EmojiPicker-Unit-Tests-frameworks.sh */, + 01FC6DF4E5C22576339D91C59F955FC5 /* EmojiPicker-Unit-Tests-Info.plist */, + F37C787ED9137E9A17EBC07BC22F4A71 /* EmojiPicker-Unit-Tests-prefix.pch */, + FCC7EBA5544D2C7BDD60441D0D351534 /* EmojiPicker-Unit-Tests-resources.sh */, + 1678BA4FB16E18450F3FAE5C7D9BF48D /* EmojiPicker.debug.xcconfig */, + ECC26C6F65D6AD027C546C4D2F9220D9 /* EmojiPicker.release.xcconfig */, + 7D9160B732C69A42AF15E8EF1B232AF0 /* EmojiPicker.unit-tests.debug.xcconfig */, + 3697C479831FCE781859C9455E7F2B86 /* EmojiPicker.unit-tests.release.xcconfig */, + 734936CBF9DA2413F4C14B6EB579BA25 /* ResourceBundle-Resources-EmojiPicker-Info.plist */, ); - name = Tests; + name = "Support Files"; + path = "Example App/Pods/Target Support Files/EmojiPicker"; sourceTree = ""; }; - C450100AC2839E3C80D44528C38F5705 /* Mocks */ = { + C5D22F8877CEDBC0DA7D2549508FC578 /* Extensions */ = { isa = PBXGroup; children = ( - 76E46A79EA45CD3030E4DDBFEBE70841 /* EmojiPickerDelegateMock.swift */, + CD84142AE6855F669EF0F2B3DCCCBF68 /* Foundation */, + 4CF43EFD100AEA100F627F4F890CEAC6 /* UIKit */, ); - name = Mocks; - path = Tests/EmojiPickerTests/Mocks; + name = Extensions; + path = Sources/EmojiPicker/Extensions; sourceTree = ""; }; - C45B5DD382DE086CDB19F1798F71DA75 /* Pod */ = { + CD84142AE6855F669EF0F2B3DCCCBF68 /* Foundation */ = { isa = PBXGroup; children = ( - ED4DFB05FA69FAEFE666FC01567E7334 /* EmojiPicker.podspec */, - 6E4AC8B402CE70E5027BE9085FB33A28 /* LICENSE */, - 4DDC26C0A6107DB05C993B2E40A5D25B /* README.md */, + B7F771D6741118E77A77AE040492851F /* Bundle.swift */, ); - name = Pod; + name = Foundation; + path = Foundation; sourceTree = ""; }; CF1408CF629C7361332E53B88F7BD30C = { @@ -397,17 +381,17 @@ ); sourceTree = ""; }; - D0533FFC0405B46C706FD92C86C05DB8 /* Views */ = { + D0E9E192CB1B1886E33BB3AF64CB1747 /* Models */ = { isa = PBXGroup; children = ( - FB234B5215B8544D6C7723510CCF6C9B /* EmojiCollectionViewCell.swift */, - BA72DFECA5CB6E9B70E1F4BDB94E5417 /* EmojiCollectionViewHeader.swift */, - 720CFC2FD0DD124C1A39FBE2EDF9AD62 /* EmojiPickerView.swift */, - 99E70F3B23911192E9F0C8F4179B2AA7 /* EmojiPickerViewController.swift */, - 15E30D8BBCA8519513D8266EC9A54F31 /* EmojiCategoryView */, + 6E7E3939E69E3EA11CCDB6F1446B1D84 /* Category.swift */, + 4177ACBD21981A2A71DE231D9ABF1583 /* Emoji.swift */, + 0B34CAF72D888BF33BA5EDC927AE0E87 /* EmojiSet.swift */, + 792F1BBB06808BC2E5BA00F09C733E4D /* PickerArrowDirectionMode.swift */, + 775CE6A22026D8062153BCD58A3D1533 /* Skin.swift */, ); - name = Views; - path = Sources/EmojiPicker/Views; + name = Models; + path = Sources/EmojiPicker/Models; sourceTree = ""; }; D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */ = { @@ -418,17 +402,32 @@ name = Frameworks; sourceTree = ""; }; - E6F4B2CD9DB3D981229F83597FEAE185 /* Models */ = { + DA18BEA389C03D42A638E0201E6C65C3 /* EmojiPicker */ = { isa = PBXGroup; children = ( - 96A6D4A422B77C24D7BB3A2F0DD6C360 /* Category.swift */, - 0A2C22EA600F5B5B34E546C1FDBB9A56 /* Emoji.swift */, - 2D79E814DBFF6DCDB0BA71871674AF8D /* EmojiSet.swift */, - 9B3840BE79F07D4F4C6956F8D4AC9D53 /* PickerArrowDirectionMode.swift */, - 1455D08D7446DF360DF602A496735D08 /* Skin.swift */, + EF2249D4954091235DA44BBD721A1962 /* Bindings */, + 33A76C015C27FAC6C5486620692D0230 /* Data */, + C5D22F8877CEDBC0DA7D2549508FC578 /* Extensions */, + 28FED0D50DB275E654F7DFDD9BF14D54 /* Localization */, + D0E9E192CB1B1886E33BB3AF64CB1747 /* Models */, + 18436656DFFEFA3A184C6F8270E8E61E /* Pod */, + 1BBEF5BDA9005AE036A7E68EEE01ABBC /* Services */, + BFA4E499FB08B50625B5529E0481F523 /* Support Files */, + 398D12D7D013ED40250240863B1EC224 /* Tests */, + 98A6E2DEE814DCF0D9EAB69E70198F72 /* ViewModel */, + 70F8498FCD93E5309049CD584D7508DC /* Views */, ); - name = Models; - path = Sources/EmojiPicker/Models; + name = EmojiPicker; + path = ../..; + sourceTree = ""; + }; + EF2249D4954091235DA44BBD721A1962 /* Bindings */ = { + isa = PBXGroup; + children = ( + 55DDE8592474D342CCA0A1FB502A6BEF /* Observable.swift */, + ); + name = Bindings; + path = Sources/EmojiPicker/Bindings; sourceTree = ""; }; F335215D4D5B81982E7F065C8F829E1C /* Targets Support Files */ = { @@ -439,13 +438,14 @@ name = "Targets Support Files"; sourceTree = ""; }; - F4E37DC279BBDC6ACA4BBF755957213A /* Stubs */ = { + F69265C11572E97D72FE649A20EEB846 /* EmojiCategoryView */ = { isa = PBXGroup; children = ( - 78B4EBC1CF7C118A0964F15037F23A49 /* UnicodeManagerStub.swift */, + 2568DE7955C597EEFFE7B99A72DF75EB /* EmojiCategoryIconView.swift */, + 44E13D95912AFCB400D646BAC42D7448 /* TouchableEmojiCategoryView.swift */, ); - name = Stubs; - path = Tests/EmojiPickerTests/Stubs; + name = EmojiCategoryView; + path = EmojiCategoryView; sourceTree = ""; }; /* End PBXGroup section */ @@ -472,11 +472,11 @@ /* Begin PBXNativeTarget section */ 3DA7DB1A9F7F32C07F0F0F8CD7CCD936 /* EmojiPicker-Resources */ = { isa = PBXNativeTarget; - buildConfigurationList = 21A7DA069714778E3241D5C894549448 /* Build configuration list for PBXNativeTarget "EmojiPicker-Resources" */; + buildConfigurationList = 2CDF4DD9A44ADA836B119C4A68F73753 /* Build configuration list for PBXNativeTarget "EmojiPicker-Resources" */; buildPhases = ( - 5C97BDAF3BEF9E05C223533163B683DA /* Sources */, - F50E33FA52AD81C55D4FB4BA846E7465 /* Frameworks */, - A406DBDD40988E23792F24EAB670A928 /* Resources */, + 1414F0942A7638C78FB2399DEB0A143A /* Sources */, + C7413BD5F4AA8D3A568483A1FA295959 /* Frameworks */, + F6BA66A5D5E4CD4B57DCE3978B18AF4A /* Resources */, ); buildRules = ( ); @@ -499,7 +499,7 @@ buildRules = ( ); dependencies = ( - C96A90D30DAB0A7DBB06822F65D5308D /* PBXTargetDependency */, + 4824B7A8406E54878D1E92A72FCFD404 /* PBXTargetDependency */, ); name = EmojiPicker; productName = EmojiPicker; @@ -518,7 +518,7 @@ buildRules = ( ); dependencies = ( - D0185C159AA0DDD840ECEDF10A6390FF /* PBXTargetDependency */, + C8F4FD4DC037D88FFB916490C6413963 /* PBXTargetDependency */, ); name = "Pods-EmojiPicker_Example"; productName = Pods_EmojiPicker_Example; @@ -527,18 +527,18 @@ }; E98E11D20D4245D915B15585F8D1D1A8 /* EmojiPicker-Unit-Tests */ = { isa = PBXNativeTarget; - buildConfigurationList = B1C402106C684AF310479CB3941002A4 /* Build configuration list for PBXNativeTarget "EmojiPicker-Unit-Tests" */; + buildConfigurationList = 2605D9E2CE33CF5ABD946828E9080257 /* Build configuration list for PBXNativeTarget "EmojiPicker-Unit-Tests" */; buildPhases = ( - 8806F3B1C26A8A219E5BDEB10986024B /* Sources */, - AEA72749B4807F175E85AC64A4464F62 /* Frameworks */, - C6829FB3EF05CBC2CF12D5C8DF1E7119 /* Resources */, - 8EFEE62EB576E2761FC0D0EC76190AED /* [CP] Embed Pods Frameworks */, - B0E9F1734D89DD1CCD337489CF669FDF /* [CP] Copy Pods Resources */, + 129860AE8692D22FFF1A71598F42D2D1 /* Sources */, + 6B6C17D573AB2080AF9F3EDDB338B081 /* Frameworks */, + 2D15F141245D7180EDDFB2D9CF04F53A /* Resources */, + ACC9CE73FC64FB4901F7E42339A80052 /* [CP] Embed Pods Frameworks */, + 3A42101BC5730F63FDAD20B414BCEDCE /* [CP] Copy Pods Resources */, ); buildRules = ( ); dependencies = ( - 492C9F009B6C98D503CDB95B96B15516 /* PBXTargetDependency */, + 360C658CE27F8FBF14EBA11B260F2A4D /* PBXTargetDependency */, ); name = "EmojiPicker-Unit-Tests"; productName = "EmojiPicker-Unit-Tests"; @@ -582,80 +582,80 @@ /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 3A1EAA898A3CA7A89B81272E2EFC7D24 /* Resources */ = { + 2D15F141245D7180EDDFB2D9CF04F53A /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 9848067FCB2572F0E57861D590C7A909 /* Resources */ = { + 3A1EAA898A3CA7A89B81272E2EFC7D24 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - FCEBE070BE2A3A9DFAA44C54B933EB3F /* EmojiPicker-Resources in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - A406DBDD40988E23792F24EAB670A928 /* Resources */ = { + 9848067FCB2572F0E57861D590C7A909 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - DB0367E451FB7464DD6F3B5093D27F37 /* 11.json in Resources */, - 8CD8136D841F09BD6E18607FDA16042B /* 12.json in Resources */, - 6C47BC3254E7AA5CFA2B1EAEABCF99E8 /* 12.1.json in Resources */, - 39A361F6DE05727DD99CAA94959CB491 /* 13.json in Resources */, - 80583C4282ED2C22DB53A74A325B858F /* 13.1.json in Resources */, - E59995021E47D74EFBCD568752B8D0D5 /* 14.json in Resources */, - 81DF012C9C7B4929C30D997DEC559A40 /* 5.json in Resources */, - 8BF0B9462689A61026AFC4467CADC730 /* Localizable.strings in Resources */, + FCEBE070BE2A3A9DFAA44C54B933EB3F /* EmojiPicker-Resources in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - C6829FB3EF05CBC2CF12D5C8DF1E7119 /* Resources */ = { + F6BA66A5D5E4CD4B57DCE3978B18AF4A /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 489F1BBAA111477E7317274D4142506C /* 11.json in Resources */, + B4C0AC13504031D1EF5EDC81E76B80E5 /* 12.json in Resources */, + 36C8C0E18DCE13890FC7BD6FBDED9119 /* 12.1.json in Resources */, + CE77BF225BD0DE688BCA636B2CD0E6F2 /* 13.json in Resources */, + FC1F4288EDA3623A0789414458F75580 /* 13.1.json in Resources */, + EF151333810F8817AF623BA30945E6AC /* 14.json in Resources */, + F8389B295872C5B053DE3B3F645E03F1 /* 5.json in Resources */, + 61984D53342371E050443EAE181B9FDE /* Localizable.strings in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 8EFEE62EB576E2761FC0D0EC76190AED /* [CP] Embed Pods Frameworks */ = { + 3A42101BC5730F63FDAD20B414BCEDCE /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( - "${PODS_ROOT}/Target Support Files/EmojiPicker/EmojiPicker-Unit-Tests-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/EmojiPicker/EmojiPicker.framework", + "${PODS_ROOT}/Target Support Files/EmojiPicker/EmojiPicker-Unit-Tests-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/EmojiPicker/Resources.bundle", ); - name = "[CP] Embed Pods Frameworks"; + name = "[CP] Copy Pods Resources"; outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/EmojiPicker.framework", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Resources.bundle", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/EmojiPicker/EmojiPicker-Unit-Tests-frameworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/EmojiPicker/EmojiPicker-Unit-Tests-resources.sh\"\n"; showEnvVarsInLog = 0; }; - B0E9F1734D89DD1CCD337489CF669FDF /* [CP] Copy Pods Resources */ = { + ACC9CE73FC64FB4901F7E42339A80052 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( - "${PODS_ROOT}/Target Support Files/EmojiPicker/EmojiPicker-Unit-Tests-resources.sh", - "${PODS_CONFIGURATION_BUILD_DIR}/EmojiPicker/Resources.bundle", + "${PODS_ROOT}/Target Support Files/EmojiPicker/EmojiPicker-Unit-Tests-frameworks.sh", + "${BUILT_PRODUCTS_DIR}/EmojiPicker/EmojiPicker.framework", ); - name = "[CP] Copy Pods Resources"; + name = "[CP] Embed Pods Frameworks"; outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Resources.bundle", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/EmojiPicker.framework", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/EmojiPicker/EmojiPicker-Unit-Tests-resources.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/EmojiPicker/EmojiPicker-Unit-Tests-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ @@ -686,69 +686,68 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 156B3AE09B8921C3DFBBE7E31DD735E8 /* Sources */ = { + 129860AE8692D22FFF1A71598F42D2D1 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 04631E91E77F1BDF6CD1C6FBC1E53AEA /* Pods-EmojiPicker_Example-dummy.m in Sources */, + 35B0CCBF174A4446616EB3431FC29816 /* EmojiManagerStub.swift in Sources */, + C5594336011F4D3963933843C438BA28 /* EmojiManagerTests.swift in Sources */, + B503EA01C769FC95992D9BE56FEF57D6 /* EmojiPickerDelegateMock.swift in Sources */, + 52BBF2A68F33CDFCA0161984E1908957 /* EmojiPickerViewModelTests.swift in Sources */, + B6EA476621B5A369EF5A7CFEC35835EF /* ObservableTests.swift in Sources */, + 15B534936E5E43B90111C1F48932458F /* PickerArrowDirectionModeTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 5C97BDAF3BEF9E05C223533163B683DA /* Sources */ = { + 1414F0942A7638C78FB2399DEB0A143A /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 8806F3B1C26A8A219E5BDEB10986024B /* Sources */ = { + 156B3AE09B8921C3DFBBE7E31DD735E8 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 70EA50369EB2C2E5749ACEC2433BAC09 /* EmojiCategoryTypeTests.swift in Sources */, - A05E77D1B14C347E5AB8487F18BFD8D9 /* EmojiPickerDelegateMock.swift in Sources */, - 6D56A7DD06B973AF953EA59903AF5339 /* EmojiPickerViewModelTests.swift in Sources */, - 5898B4AC66F1994436E68609725C328F /* ObservableTests.swift in Sources */, - 96D990C818F53922131CA4514235903B /* PickerArrowDirectionModeTests.swift in Sources */, - AF06DA78A59B238F3879F20187862449 /* UnicodeManagerStub.swift in Sources */, - 5152326EB0EB27252099A3813011CF1C /* UnicodeManagerTests.swift in Sources */, + 04631E91E77F1BDF6CD1C6FBC1E53AEA /* Pods-EmojiPicker_Example-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 492C9F009B6C98D503CDB95B96B15516 /* PBXTargetDependency */ = { + 360C658CE27F8FBF14EBA11B260F2A4D /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = EmojiPicker; target = 74B1BE29E8F4437DC0A1829FA5157AE0 /* EmojiPicker */; - targetProxy = C2A744C7E16EC2BF8F2837AC2D85FF1D /* PBXContainerItemProxy */; + targetProxy = 623AE93D3B923FE7E9FE14F5B82459D9 /* PBXContainerItemProxy */; }; - C96A90D30DAB0A7DBB06822F65D5308D /* PBXTargetDependency */ = { + 4824B7A8406E54878D1E92A72FCFD404 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "EmojiPicker-Resources"; target = 3DA7DB1A9F7F32C07F0F0F8CD7CCD936 /* EmojiPicker-Resources */; - targetProxy = 01D6A6A189900C400738DC5FA834B097 /* PBXContainerItemProxy */; + targetProxy = 074D5A78DA5A763442F6F3F9CB2F26E8 /* PBXContainerItemProxy */; }; - D0185C159AA0DDD840ECEDF10A6390FF /* PBXTargetDependency */ = { + C8F4FD4DC037D88FFB916490C6413963 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = EmojiPicker; target = 74B1BE29E8F4437DC0A1829FA5157AE0 /* EmojiPicker */; - targetProxy = FFC9340878559A0A4A5B8EE0EC5B64BD /* PBXContainerItemProxy */; + targetProxy = 8D25C874C2CBCDBAFE9A499FFBB1CDD0 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ - 21D9439D328CFCC75E465FC9398F375F /* Localizable.strings */ = { + FE8EF91C905E9713877A80553FA82B90 /* Localizable.strings */ = { isa = PBXVariantGroup; children = ( - C3A920FF2D6951F74E8A439C99766735 /* Localizable.strings */, - 96E1B3D4CF7A2B7E6CB251D7E466B8C9 /* Localizable.strings */, - 1A73B69BB08091CBA91E2FD3EB286619 /* Localizable.strings */, - C3F81A35240A14AAA6C7B90BC3390638 /* Localizable.strings */, - 3D21C5FC676356F8729839E0F8A9EF25 /* Localizable.strings */, - E4580DA8F896D0729F23282903D394D4 /* Localizable.strings */, - CF9194F1C2BFD34B2C408033A5BE4503 /* Localizable.strings */, + 1A1BC4999B57E1B1194B49C03945CA09 /* Localizable.strings */, + 003F1AF87B911D5A82AF58C6F1507DC7 /* Localizable.strings */, + 749BE4DD98D1BFF718F8FF89C01269E5 /* Localizable.strings */, + F4404D097107D0E5C3370ADA3A699D30 /* Localizable.strings */, + 080E90C15F9CB7CAC2C5ABB284DA373F /* Localizable.strings */, + 0D0E8FDE7FD51DDB32EBE6B22890668C /* Localizable.strings */, + DDA334B5D65EC7716722263ED828F83B /* Localizable.strings */, ); name = Localizable.strings; path = .; @@ -757,9 +756,9 @@ /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ - 0DFE7CDB9BF57C6A9EE6D5E68FC2869E /* Debug */ = { + 0039C425BB1222002EA4C3ECCB99D811 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 0B459C9F29B2A83DDCEE596B88267CCC /* EmojiPicker.unit-tests.debug.xcconfig */; + baseConfigurationReference = 7D9160B732C69A42AF15E8EF1B232AF0 /* EmojiPicker.unit-tests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ARCHS = "$(ARCHS_STANDARD_64_BIT)"; @@ -835,7 +834,8 @@ MTL_FAST_MATH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; STRIP_INSTALLED_PRODUCT = NO; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 5.0; SYMROOT = "${SRCROOT}/../build"; }; @@ -875,6 +875,30 @@ }; name = Debug; }; + 2D2E1C0C0258EB87F264F0FDC27AB71C /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 3697C479831FCE781859C9455E7F2B86 /* EmojiPicker.unit-tests.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGNING_ALLOWED = YES; + CODE_SIGNING_REQUIRED = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + GCC_PREFIX_HEADER = "Target Support Files/EmojiPicker/EmojiPicker-Unit-Tests-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/EmojiPicker/EmojiPicker-Unit-Tests-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 11.1; + PRODUCT_NAME = "EmojiPicker-Unit-Tests"; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.2; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; 2FF1CABA2F393C5AC709D7FB7D5C2319 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -941,44 +965,25 @@ }; name = Debug; }; - 906E4876162C8927A901DC959A099993 /* Release */ = { + 6085CE777B4932FB19E4ABD21EE85C56 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D0B1C88F829541DAEF35CF30E76D83B7 /* Pods-EmojiPicker_Example.release.xcconfig */; + baseConfigurationReference = ECC26C6F65D6AD027C546C4D2F9220D9 /* EmojiPicker.release.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-EmojiPicker_Example/Pods-EmojiPicker_Example-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/EmojiPicker"; + IBSC_MODULE = EmojiPicker; + INFOPLIST_FILE = "Target Support Files/EmojiPicker/ResourceBundle-Resources-EmojiPicker-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 11.1; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-EmojiPicker_Example/Pods-EmojiPicker_Example.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PRODUCT_NAME = Resources; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; + WRAPPER_EXTENSION = bundle; }; name = Release; }; - A66CD3EE9A7617C25051ACD6EBF6499E /* Release */ = { + 8DBDF96728ADDE6F2FB667635BE44714 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 1D8AE8E109045877CA5D7BABE5517C49 /* EmojiPicker.release.xcconfig */; + baseConfigurationReference = 1678BA4FB16E18450F3FAE5C7D9BF48D /* EmojiPicker.debug.xcconfig */; buildSettings = { CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/EmojiPicker"; IBSC_MODULE = EmojiPicker; @@ -990,51 +995,46 @@ TARGETED_DEVICE_FAMILY = "1,2"; WRAPPER_EXTENSION = bundle; }; - name = Release; + name = Debug; }; - B982F2D28A86447894FB3628131272EA /* Release */ = { + 906E4876162C8927A901DC959A099993 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E74EA740355CB1AFE4DDAED762318AEF /* EmojiPicker.unit-tests.release.xcconfig */; + baseConfigurationReference = D0B1C88F829541DAEF35CF30E76D83B7 /* Pods-EmojiPicker_Example.release.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGNING_ALLOWED = YES; - CODE_SIGNING_REQUIRED = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - GCC_PREFIX_HEADER = "Target Support Files/EmojiPicker/EmojiPicker-Unit-Tests-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/EmojiPicker/EmojiPicker-Unit-Tests-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 11.1; - PRODUCT_NAME = "EmojiPicker-Unit-Tests"; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.2; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - BABA7177CF9768DF1B23352594C44576 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FB2F11ABCD4FB22F86C92606C1A13A26 /* EmojiPicker.debug.xcconfig */; - buildSettings = { - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/EmojiPicker"; - IBSC_MODULE = EmojiPicker; - INFOPLIST_FILE = "Target Support Files/EmojiPicker/ResourceBundle-Resources-EmojiPicker-Info.plist"; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-EmojiPicker_Example/Pods-EmojiPicker_Example-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 11.1; - PRODUCT_NAME = Resources; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-EmojiPicker_Example/Pods-EmojiPicker_Example.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; E6A3280B88CFE31418BB94369DC1A353 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 1D8AE8E109045877CA5D7BABE5517C49 /* EmojiPicker.release.xcconfig */; + baseConfigurationReference = ECC26C6F65D6AD027C546C4D2F9220D9 /* EmojiPicker.release.xcconfig */; buildSettings = { ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_ENABLE_OBJC_WEAK = NO; @@ -1067,7 +1067,7 @@ }; E9F919F143989AC72F5F92D2749E7596 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = FB2F11ABCD4FB22F86C92606C1A13A26 /* EmojiPicker.debug.xcconfig */; + baseConfigurationReference = 1678BA4FB16E18450F3FAE5C7D9BF48D /* EmojiPicker.debug.xcconfig */; buildSettings = { ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_ENABLE_OBJC_WEAK = NO; @@ -1100,38 +1100,38 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 21A7DA069714778E3241D5C894549448 /* Build configuration list for PBXNativeTarget "EmojiPicker-Resources" */ = { + 2605D9E2CE33CF5ABD946828E9080257 /* Build configuration list for PBXNativeTarget "EmojiPicker-Unit-Tests" */ = { isa = XCConfigurationList; buildConfigurations = ( - BABA7177CF9768DF1B23352594C44576 /* Debug */, - A66CD3EE9A7617C25051ACD6EBF6499E /* Release */, + 0039C425BB1222002EA4C3ECCB99D811 /* Debug */, + 2D2E1C0C0258EB87F264F0FDC27AB71C /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 2E79EC551354858368B86988525197C5 /* Build configuration list for PBXNativeTarget "Pods-EmojiPicker_Example" */ = { + 2CDF4DD9A44ADA836B119C4A68F73753 /* Build configuration list for PBXNativeTarget "EmojiPicker-Resources" */ = { isa = XCConfigurationList; buildConfigurations = ( - 14DB6C1B465C61158D9CEADCEEF9719A /* Debug */, - 906E4876162C8927A901DC959A099993 /* Release */, + 8DBDF96728ADDE6F2FB667635BE44714 /* Debug */, + 6085CE777B4932FB19E4ABD21EE85C56 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { + 2E79EC551354858368B86988525197C5 /* Build configuration list for PBXNativeTarget "Pods-EmojiPicker_Example" */ = { isa = XCConfigurationList; buildConfigurations = ( - 2FF1CABA2F393C5AC709D7FB7D5C2319 /* Debug */, - 12E068767CF35B513130A458C3536CFB /* Release */, + 14DB6C1B465C61158D9CEADCEEF9719A /* Debug */, + 906E4876162C8927A901DC959A099993 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - B1C402106C684AF310479CB3941002A4 /* Build configuration list for PBXNativeTarget "EmojiPicker-Unit-Tests" */ = { + 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - 0DFE7CDB9BF57C6A9EE6D5E68FC2869E /* Debug */, - B982F2D28A86447894FB3628131272EA /* Release */, + 2FF1CABA2F393C5AC709D7FB7D5C2319 /* Debug */, + 12E068767CF35B513130A458C3536CFB /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Tests/EmojiPickerTests/ArrayExtensionTests.swift b/Tests/EmojiPickerTests/ArrayExtensionTests.swift deleted file mode 100644 index 41aca71..0000000 --- a/Tests/EmojiPickerTests/ArrayExtensionTests.swift +++ /dev/null @@ -1,38 +0,0 @@ -// -// ArrayExtensionTests.swift -// EmojiPickerTests -// -// Created by Егор Бадмаев on 13.01.2023. -// - -import XCTest -@testable import EmojiPicker - -class ArrayExtensionTests: XCTestCase { - - var array: [Int]! - - override func tearDownWithError() throws { - array = nil - } - - func testConvertingEmptyArray() throws { - array = [] - - let result = array.emoji() - - XCTAssertEqual(result, "") - } - - func testConvertingSomeEmojis() throws { - array = [0x1F600, - 0x1F601, - 0x1F602, - 0x1F923, - 0x1F603] - - let result = array.emoji() - - XCTAssertEqual(result, "😀😁😂🤣😃") - } -} diff --git a/Tests/EmojiPickerTests/EmojiCategoryTypeTests.swift b/Tests/EmojiPickerTests/EmojiCategoryTypeTests.swift deleted file mode 100644 index ac4fdb5..0000000 --- a/Tests/EmojiPickerTests/EmojiCategoryTypeTests.swift +++ /dev/null @@ -1,40 +0,0 @@ -// -// EmojiCategoryTypeTests.swift -// EmojiPickerTests -// -// Created by Егор Бадмаев on 13.01.2023. -// - -import XCTest -@testable import EmojiPicker - -class EmojiCategoryTypeTests: XCTestCase { - - /// Since we have special order for our emojis, we must test it. - func testEmojiCategoryTypesOrder() throws { - let people = EmojiCategoryType(rawValue: 0) - let nature = EmojiCategoryType(rawValue: 1) - let foodAndDrink = EmojiCategoryType(rawValue: 2) - let activity = EmojiCategoryType(rawValue: 3) - let travelAndPlaces = EmojiCategoryType(rawValue: 4) - let objects = EmojiCategoryType(rawValue: 5) - let symbols = EmojiCategoryType(rawValue: 6) - let flags = EmojiCategoryType(rawValue: 7) - - XCTAssertEqual(people, EmojiCategoryType.people, "The value of this variable should equal \"people\"") - XCTAssertEqual(nature, EmojiCategoryType.nature, "The value of this variable should equal \"nature\"") - XCTAssertEqual(foodAndDrink, EmojiCategoryType.foodAndDrink, "The value of this variable should equal \"foodAndDrink\"") - XCTAssertEqual(activity, EmojiCategoryType.activity, "The value of this variable should equal \"activity\"") - XCTAssertEqual(travelAndPlaces, EmojiCategoryType.travelAndPlaces, "The value of this variable should equal \"travelAndPlaces\"") - XCTAssertEqual(objects, EmojiCategoryType.objects, "The value of this variable should equal \"objects\"") - XCTAssertEqual(symbols, EmojiCategoryType.symbols, "The value of this variable should equal \"symbols\"") - XCTAssertEqual(flags, EmojiCategoryType.flags, "The value of this variable should equal \"flags\"") - } - - /// Signals (fails) us about new emoji category, that must be handled in source code. That is why we test it. - func testNewEmojiCategoryWasAdded() throws { - let newValue = EmojiCategoryType(rawValue: 8) - - XCTAssertNil(newValue) - } -} diff --git a/Tests/EmojiPickerTests/EmojiManagerTests.swift b/Tests/EmojiPickerTests/EmojiManagerTests.swift new file mode 100644 index 0000000..c274cd3 --- /dev/null +++ b/Tests/EmojiPickerTests/EmojiManagerTests.swift @@ -0,0 +1,45 @@ +// +// EmojiManagerTests.swift +// EmojiPickerTests +// +// Created by Егор Бадмаев on 25.01.2023. +// + +import XCTest +@testable import EmojiPicker + +class EmojiManagerTests: XCTestCase { + + /// SUT. + var emojiManager: EmojiManager! + + override func setUpWithError() throws { + emojiManager = EmojiManager() + } + + override func tearDownWithError() throws { + emojiManager = nil + } + + /** + Tests providing emoji set. + + Due to the fact that the tests can be run on different devices, we have to check that the answer does not come to us an empty array. + */ + func testProvideEmojisMethod() throws { + let result = emojiManager.provideEmojis() + + XCTAssertGreaterThan(result.emojis.count, 0) + XCTAssertGreaterThan(result.categories.count, 0) + XCTAssertGreaterThan(result.aliases.count, 0) + } + + /** + Tests that device version are identical. + */ + func testDeterminingDeviceVersion() throws { + let expectedVersion = (UIDevice.current.systemVersion as NSString).doubleValue + + XCTAssertEqual(emojiManager.deviceVersion, expectedVersion) + } +} diff --git a/Tests/EmojiPickerTests/EmojiPickerViewModelTests.swift b/Tests/EmojiPickerTests/EmojiPickerViewModelTests.swift index e1b0ad9..b1fde0b 100644 --- a/Tests/EmojiPickerTests/EmojiPickerViewModelTests.swift +++ b/Tests/EmojiPickerTests/EmojiPickerViewModelTests.swift @@ -10,18 +10,18 @@ import XCTest class EmojiPickerViewModelTests: XCTestCase { - var unicodeManagerStub: UnicodeManagerStub! + var emojiManagerStub: EmojiManagerStub! /// SUT. var viewModel: EmojiPickerViewModel! override func setUpWithError() throws { - unicodeManagerStub = UnicodeManagerStub() - viewModel = EmojiPickerViewModel(unicodeManager: unicodeManagerStub) + emojiManagerStub = EmojiManagerStub() + viewModel = EmojiPickerViewModel(emojiManager: emojiManagerStub) } override func tearDownWithError() throws { viewModel = nil - unicodeManagerStub = nil + emojiManagerStub = nil } /// Tests default values for selected emoji. @@ -33,7 +33,7 @@ class EmojiPickerViewModelTests: XCTestCase { func testNumberOfSectionsMethod() throws { let result = viewModel.numberOfSections() - XCTAssertEqual(result, unicodeManagerStub.emojiCategories.count) + XCTAssertEqual(result, emojiManagerStub.emojiSet.categories.count) } func testNumberOfItemsMethod() throws { @@ -41,16 +41,23 @@ class EmojiPickerViewModelTests: XCTestCase { let result = viewModel.numberOfItems(in: 0) - XCTAssertEqual(result, unicodeManagerStub.emojiCategories[section].emojis.count) + XCTAssertEqual(result, emojiManagerStub.emojiSet.categories[section].emojis.count) } func testEmojiAtIndexPathMethod() throws { - let indexPath = IndexPath(row: 1, section: 1) + let indexPath = IndexPath(row: 1, section: 0) let result = viewModel.emoji(at: indexPath) - XCTAssertEqual(result, - unicodeManagerStub.emojiCategories[indexPath.section].emojis[indexPath.row].emoji()) + let expectedResult = emojiManagerStub.emojiSet.emojis[ + emojiManagerStub.emojiSet.categories[indexPath.section].emojis[indexPath.row] + ]? + .skins[0] + .native + XCTAssertEqual( + result, + expectedResult + ) } func testSectionHeaderViewModelMethod() throws { @@ -58,6 +65,11 @@ class EmojiPickerViewModelTests: XCTestCase { let result = viewModel.sectionHeaderViewModel(for: section) - XCTAssertEqual(result, unicodeManagerStub.emojiCategories[section].categoryName) + let expectedResult = NSLocalizedString( + emojiManagerStub.emojiSet.categories[section].type.rawValue, + bundle: .module, + comment: "" + ) + XCTAssertEqual(result, expectedResult) } } diff --git a/Tests/EmojiPickerTests/Stubs/EmojiManagerStub.swift b/Tests/EmojiPickerTests/Stubs/EmojiManagerStub.swift new file mode 100644 index 0000000..32406cb --- /dev/null +++ b/Tests/EmojiPickerTests/Stubs/EmojiManagerStub.swift @@ -0,0 +1,67 @@ +// +// EmojiManagerStub.swift +// EmojiPicker +// +// Created by Егор Бадмаев on 25.01.2023. +// + +@testable import EmojiPicker + +class EmojiManagerStub: EmojiManagerProtocol { + + var deviceVersion: Double { + 11.1 + } + + func provideEmojis() -> EmojiSet { + emojiSet + } + + var emojiSet = EmojiSet( + categories: [ + Category(type: .people, emojis: [ + "smile", + "laughing", + "grin" + ]), + Category(type: .foods, emojis: [ + "peach" + ]), + ], + emojis: [ + "smile": Emoji( + id: "smile", + name: "Grinning Face with Smiling Eyes", + keywords: [], + skins: [ + Skin(unified: "1f604", native: "😄") + ], + version: 1.0), + "laughing": Emoji( + id: "laughing", + name: "Grinning Squinting Face", + keywords: [], + skins: [ + Skin(unified: "1f606", native: "😆") + ], + version: 1.0), + "grin": Emoji( + id: "grin", + name: "Beaming Face with Smiling Eyes", + keywords: [], + skins: [ + Skin(unified: "1f601", native: "😁") + ], + version: 1.0), + "peach": Emoji( + id: "peach", + name: "Peach", + keywords: [], + skins: [ + Skin(unified: "1f351", native: "🍑") + ], + version: 1.0), + ], + aliases: [:] + ) +} diff --git a/Tests/EmojiPickerTests/Stubs/UnicodeManagerStub.swift b/Tests/EmojiPickerTests/Stubs/UnicodeManagerStub.swift deleted file mode 100644 index fdf78f8..0000000 --- a/Tests/EmojiPickerTests/Stubs/UnicodeManagerStub.swift +++ /dev/null @@ -1,19 +0,0 @@ -// -// UnicodeManagerStub.swift -// EmojiPicker -// -// Created by Егор Бадмаев on 13.01.2023. -// - -@testable import EmojiPicker - -class UnicodeManagerStub: UnicodeManagerProtocol { - - var emojiCategories = [EmojiCategory(categoryName: "People", emojis: [[1, 2, 3]]), - EmojiCategory(categoryName: "Nature", emojis: [[1, 2], [2, 3]]), - EmojiCategory(categoryName: "Food", emojis: [[1], [2], [3]])] - - func getEmojisForCurrentIOSVersion() -> [EmojiCategory] { - return emojiCategories - } -} diff --git a/Tests/EmojiPickerTests/UnicodeManagerTests.swift b/Tests/EmojiPickerTests/UnicodeManagerTests.swift deleted file mode 100644 index ee88e44..0000000 --- a/Tests/EmojiPickerTests/UnicodeManagerTests.swift +++ /dev/null @@ -1,51 +0,0 @@ -// -// UnicodeManagerTests.swift -// EmojiPickerTests -// -// Created by Егор Бадмаев on 13.01.2023. -// - -import XCTest -@testable import EmojiPicker - -class UnicodeManagerTests: XCTestCase { - - /// SUT. - var unicodeManager: UnicodeManager! - - override func setUpWithError() throws { - unicodeManager = UnicodeManager() - } - - override func tearDownWithError() throws { - unicodeManager = nil - } - - /** - Tests getting emojis for device's iOS version. - - Due to the fact that the tests can be run on different devices, we have to check that the answer does not come to us an empty array. - */ - func testGettingEmojisForCurrentIOSVersion() throws { - let result = unicodeManager.getEmojisForCurrentIOSVersion() - - XCTAssertGreaterThan(result.count, 0) - } - - /** - Tests getting title for `flags` emoji category. - - Unit-tests has no access to resource bundle so the result will be `"flags"`. - But this access has CocoaPods, when it is time to do `pod lib lint`. That is why we test it in this way: - * If the `result` is not equal to the expected ones, we fail our test. - */ - func testGettingEmojiCategoryTitle() throws { - let emojiCategory = EmojiCategoryType.flags - - let result = unicodeManager.getEmojiCategoryTitle(for: emojiCategory) - - if result != "flags" && result != "FLAGS" { - XCTFail("The expected output should be one of the expected ones, instead we got: \(result)") - } - } -} From f1983018543a29d8046ea81a5453b1e32ea021aa Mon Sep 17 00:00:00 2001 From: Egor Badmaev <60363270+htmlprogrammist@users.noreply.github.com> Date: Wed, 25 Jan 2023 23:22:37 +0300 Subject: [PATCH 5/7] refactor: add comments to the new models --- Sources/EmojiPicker/Models/Category.swift | 12 ++++++++++-- Sources/EmojiPicker/Models/Emoji.swift | 10 ++++++++-- Sources/EmojiPicker/Models/EmojiSet.swift | 4 ++++ Sources/EmojiPicker/Models/Skin.swift | 3 +++ .../EmojiPicker/ViewModel/EmojiPickerViewModel.swift | 2 +- 5 files changed, 26 insertions(+), 5 deletions(-) diff --git a/Sources/EmojiPicker/Models/Category.swift b/Sources/EmojiPicker/Models/Category.swift index 67155a5..ebef318 100644 --- a/Sources/EmojiPicker/Models/Category.swift +++ b/Sources/EmojiPicker/Models/Category.swift @@ -19,12 +19,20 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. +/// An object that represents category of emojis. struct Category: Decodable { - let id: CategoryType + /// Type-safe category type. + let type: CategoryType + /// Identifiers of emojis. let emojis: [String] + + enum CodingKeys: String, CodingKey { + case type = "id" + case emojis + } } -/// Describes types of emoji categories. +/// Type-safe representation of emoji categories. enum CategoryType: String, Decodable, CaseIterable { case people case nature diff --git a/Sources/EmojiPicker/Models/Emoji.swift b/Sources/EmojiPicker/Models/Emoji.swift index 5cff403..58c1ee3 100644 --- a/Sources/EmojiPicker/Models/Emoji.swift +++ b/Sources/EmojiPicker/Models/Emoji.swift @@ -19,10 +19,16 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. +/// An object that represents emoji. struct Emoji: Decodable { - let id, name: String + /// Emoji identifier. + let id: String + /// Name of an emoji. + let name: String + /// Keywords for an emoji. let keywords: [String] + /// Skin tones. let skins: [Skin] + /// Version in which the emoji appeared. let version: Double - let emoticons: [String]? } diff --git a/Sources/EmojiPicker/Models/EmojiSet.swift b/Sources/EmojiPicker/Models/EmojiSet.swift index 93d851c..357a633 100644 --- a/Sources/EmojiPicker/Models/EmojiSet.swift +++ b/Sources/EmojiPicker/Models/EmojiSet.swift @@ -19,8 +19,12 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. +/// An object that represents set of emojis. struct EmojiSet: Decodable { + /// Emoji categories. let categories: [Category] + /// Emojis dictionary. Key is the name (id) of emoji. let emojis: [String: Emoji] + /// Aliases of keywords for emojis. let aliases: [String: String] } diff --git a/Sources/EmojiPicker/Models/Skin.swift b/Sources/EmojiPicker/Models/Skin.swift index fa84b80..2fa98d1 100644 --- a/Sources/EmojiPicker/Models/Skin.swift +++ b/Sources/EmojiPicker/Models/Skin.swift @@ -19,7 +19,10 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. +/// An object that represents skin tones for emojis. struct Skin: Decodable { + /// Unicode. let unified: String + /// Emoji as symbol. For example: 😄 let native: String } diff --git a/Sources/EmojiPicker/ViewModel/EmojiPickerViewModel.swift b/Sources/EmojiPicker/ViewModel/EmojiPickerViewModel.swift index 63971f0..e50cc38 100644 --- a/Sources/EmojiPicker/ViewModel/EmojiPickerViewModel.swift +++ b/Sources/EmojiPicker/ViewModel/EmojiPickerViewModel.swift @@ -75,7 +75,7 @@ final class EmojiPickerViewModel: EmojiPickerViewModelProtocol { func sectionHeaderViewModel(for section: Int) -> String { return NSLocalizedString( - emojiSet.categories[section].id.rawValue, + emojiSet.categories[section].type.rawValue, bundle: .module, comment: "" ) From 8166fa773a23c12669dc5dec5db478ace2098b40 Mon Sep 17 00:00:00 2001 From: Egor Badmaev <60363270+htmlprogrammist@users.noreply.github.com> Date: Wed, 25 Jan 2023 23:33:05 +0300 Subject: [PATCH 6/7] refactor: delete 12th version of emoji set No need, it was released the same day and 12.1 is being supported --- .../UserInterfaceState.xcuserstate | Bin 100540 -> 103711 bytes .../Pods/Pods.xcodeproj/project.pbxproj | 30 +++++++----------- Sources/EmojiPicker/Resources/Data/12.json | 1 - .../EmojiPicker/Services/EmojiManager.swift | 2 +- 4 files changed, 12 insertions(+), 21 deletions(-) delete mode 100644 Sources/EmojiPicker/Resources/Data/12.json diff --git a/Example App/EmojiPicker.xcworkspace/xcuserdata/egbad.xcuserdatad/UserInterfaceState.xcuserstate b/Example App/EmojiPicker.xcworkspace/xcuserdata/egbad.xcuserdatad/UserInterfaceState.xcuserstate index b906058fdf402961c65ebfcd36c2ba5032198c3f..72b0d61c7bf40aaed96f2819746bd3ff53bc94b4 100644 GIT binary patch literal 103711 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 Y4*u_t@UZ{=n0nd&e*FJGhjQoq7k@=n`v3p{ literal 100540 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 diff --git a/Example App/Pods/Pods.xcodeproj/project.pbxproj b/Example App/Pods/Pods.xcodeproj/project.pbxproj index a55cf6c..884f5c2 100644 --- a/Example App/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example App/Pods/Pods.xcodeproj/project.pbxproj @@ -33,7 +33,6 @@ 9F1900612EA3442E85BF5AD3C26549E1 /* Emoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4177ACBD21981A2A71DE231D9ABF1583 /* Emoji.swift */; }; A033F36AAEDA625337F68F9755BA1D77 /* Category.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E7E3939E69E3EA11CCDB6F1446B1D84 /* Category.swift */; }; AD7FF7F0EC95BD3381737E120FEC7847 /* EmojiPickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4FD3B0026723ADB08351117D2B05E76 /* EmojiPickerViewController.swift */; }; - B4C0AC13504031D1EF5EDC81E76B80E5 /* 12.json in Resources */ = {isa = PBXBuildFile; fileRef = 69E0F685465F1DD0840681DE13136326 /* 12.json */; }; B503EA01C769FC95992D9BE56FEF57D6 /* EmojiPickerDelegateMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9135CB45F85FC878C6CA5125B6F87A8 /* EmojiPickerDelegateMock.swift */; }; B6EA476621B5A369EF5A7CFEC35835EF /* ObservableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C70B65FE63BCA6A4FF610012338F4A4 /* ObservableTests.swift */; }; C5594336011F4D3963933843C438BA28 /* EmojiManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EFB92181D9633CD27218C6E8E11B3A23 /* EmojiManagerTests.swift */; }; @@ -96,10 +95,9 @@ 509EFFB149756F700CC3A368970476A6 /* Pods-EmojiPicker_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-EmojiPicker_Example-umbrella.h"; sourceTree = ""; }; 53759225C7C5A642AE4EEF4A632CBE7A /* UIColor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UIColor.swift; sourceTree = ""; }; 55DDE8592474D342CCA0A1FB502A6BEF /* Observable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Observable.swift; sourceTree = ""; }; - 58080FC58CF79FEE19685D3C7F957FF8 /* 11.json */ = {isa = PBXFileReference; includeInIndex = 1; path = 11.json; sourceTree = ""; }; + 58080FC58CF79FEE19685D3C7F957FF8 /* 11.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 11.json; sourceTree = ""; }; 5FFCF687F23CBE36E970127D9B9AB400 /* Pods-EmojiPicker_Example */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-EmojiPicker_Example"; path = Pods_EmojiPicker_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 60CDDCE1EBAF6641C515D019921650A6 /* EmojiPicker-Unit-Tests */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "EmojiPicker-Unit-Tests"; path = "EmojiPicker-Unit-Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 69E0F685465F1DD0840681DE13136326 /* 12.json */ = {isa = PBXFileReference; includeInIndex = 1; path = 12.json; sourceTree = ""; }; 6E41074865C769D58022F8DB9C2B17FE /* Pods-EmojiPicker_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-EmojiPicker_Example-dummy.m"; sourceTree = ""; }; 6E7E3939E69E3EA11CCDB6F1446B1D84 /* Category.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Category.swift; sourceTree = ""; }; 72DF50AF5F8CB0E66065910A9B57FFFE /* EmojiPicker-Resources */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "EmojiPicker-Resources"; path = Resources.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -109,22 +107,22 @@ 775CE6A22026D8062153BCD58A3D1533 /* Skin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Skin.swift; sourceTree = ""; }; 792F1BBB06808BC2E5BA00F09C733E4D /* PickerArrowDirectionMode.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PickerArrowDirectionMode.swift; sourceTree = ""; }; 7D9160B732C69A42AF15E8EF1B232AF0 /* EmojiPicker.unit-tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "EmojiPicker.unit-tests.debug.xcconfig"; sourceTree = ""; }; - 85043E17B9359D1C33071B2281A85B69 /* 13.json */ = {isa = PBXFileReference; includeInIndex = 1; path = 13.json; sourceTree = ""; }; + 85043E17B9359D1C33071B2281A85B69 /* 13.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 13.json; sourceTree = ""; }; 861C76504166FB072BAEA3516D6360D6 /* PickerArrowDirectionModeTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PickerArrowDirectionModeTests.swift; path = Tests/EmojiPickerTests/PickerArrowDirectionModeTests.swift; sourceTree = ""; }; - 97020F14B35520B0855FCDC0554A444F /* 14.json */ = {isa = PBXFileReference; includeInIndex = 1; path = 14.json; sourceTree = ""; }; - 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 97020F14B35520B0855FCDC0554A444F /* 14.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 14.json; sourceTree = ""; }; + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 9E3A148A61D7B9B28C1C93E3A7DFEB3D /* EmojiPicker-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EmojiPicker-umbrella.h"; sourceTree = ""; }; A66E21E0B052B50A29602427E1E2DC23 /* Pods-EmojiPicker_Example-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-EmojiPicker_Example-Info.plist"; sourceTree = ""; }; - A95288839D02C488E7A7C6BCC96B885F /* 12.1.json */ = {isa = PBXFileReference; includeInIndex = 1; path = 12.1.json; sourceTree = ""; }; + A95288839D02C488E7A7C6BCC96B885F /* 12.1.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 12.1.json; sourceTree = ""; }; AC2D0F8379D8D79AC8DE011567883C3D /* EmojiPickerViewModelTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EmojiPickerViewModelTests.swift; path = Tests/EmojiPickerTests/EmojiPickerViewModelTests.swift; sourceTree = ""; }; - AD21E4F64085656007E1A4C49691E9D8 /* 5.json */ = {isa = PBXFileReference; includeInIndex = 1; path = 5.json; sourceTree = ""; }; + AD21E4F64085656007E1A4C49691E9D8 /* 5.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 5.json; sourceTree = ""; }; AE05597799F2772A8E87F253FD358869 /* EmojiPickerViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerViewModel.swift; sourceTree = ""; }; B3113B059F1175E7C1105852146461C0 /* EmojiManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiManager.swift; sourceTree = ""; }; B66A723BC2333792FCB82032B3CD1A3E /* EmojiCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewCell.swift; sourceTree = ""; }; B68233657A8A947E3F04F73DC3CABC73 /* EmojiManagerStub.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiManagerStub.swift; sourceTree = ""; }; B7F771D6741118E77A77AE040492851F /* Bundle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Bundle.swift; sourceTree = ""; }; B952BD33603765DD73FDA952E0D2B334 /* EmojiCollectionViewHeader.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewHeader.swift; sourceTree = ""; }; - BAB2FFF5F1161BB0DA52A28D7077FD10 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + BAB2FFF5F1161BB0DA52A28D7077FD10 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; D089390CB10DE5D7264EAF267B71BF52 /* Pods-EmojiPicker_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-EmojiPicker_Example.debug.xcconfig"; sourceTree = ""; }; D0B1C88F829541DAEF35CF30E76D83B7 /* Pods-EmojiPicker_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-EmojiPicker_Example.release.xcconfig"; sourceTree = ""; }; D6035AE16B737240D77F2885580EB236 /* EmojiPicker-Unit-Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "EmojiPicker-Unit-Tests-frameworks.sh"; sourceTree = ""; }; @@ -137,9 +135,9 @@ EFB92181D9633CD27218C6E8E11B3A23 /* EmojiManagerTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EmojiManagerTests.swift; path = Tests/EmojiPickerTests/EmojiManagerTests.swift; sourceTree = ""; }; F37C787ED9137E9A17EBC07BC22F4A71 /* EmojiPicker-Unit-Tests-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EmojiPicker-Unit-Tests-prefix.pch"; sourceTree = ""; }; F4404D097107D0E5C3370ADA3A699D30 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = hi.lproj/Localizable.strings; sourceTree = ""; }; - F5383EAF33B429E1172FA71E03D5860B /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; - F711D2A372CCCCC578D5E43DADD5E322 /* 13.1.json */ = {isa = PBXFileReference; includeInIndex = 1; path = 13.1.json; sourceTree = ""; }; - FAD3929A434C5CC360875C08AAEE8FBE /* EmojiPicker.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = EmojiPicker.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + F5383EAF33B429E1172FA71E03D5860B /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + F711D2A372CCCCC578D5E43DADD5E322 /* 13.1.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = 13.1.json; sourceTree = ""; }; + FAD3929A434C5CC360875C08AAEE8FBE /* EmojiPicker.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; path = EmojiPicker.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; FCC7EBA5544D2C7BDD60441D0D351534 /* EmojiPicker-Unit-Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "EmojiPicker-Unit-Tests-resources.sh"; sourceTree = ""; }; FEC6B8950F4C546111DE3F93FECA20B5 /* Pods-EmojiPicker_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-EmojiPicker_Example-acknowledgements.markdown"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -222,7 +220,6 @@ isa = PBXGroup; children = ( 58080FC58CF79FEE19685D3C7F957FF8 /* 11.json */, - 69E0F685465F1DD0840681DE13136326 /* 12.json */, A95288839D02C488E7A7C6BCC96B885F /* 12.1.json */, 85043E17B9359D1C33071B2281A85B69 /* 13.json */, F711D2A372CCCCC578D5E43DADD5E322 /* 13.1.json */, @@ -261,7 +258,6 @@ 53759225C7C5A642AE4EEF4A632CBE7A /* UIColor.swift */, D6D8C1880EDE22179D7F3C38EA266B06 /* UIView.swift */, ); - name = UIKit; path = UIKit; sourceTree = ""; }; @@ -366,7 +362,6 @@ children = ( B7F771D6741118E77A77AE040492851F /* Bundle.swift */, ); - name = Foundation; path = Foundation; sourceTree = ""; }; @@ -444,7 +439,6 @@ 2568DE7955C597EEFFE7B99A72DF75EB /* EmojiCategoryIconView.swift */, 44E13D95912AFCB400D646BAC42D7448 /* TouchableEmojiCategoryView.swift */, ); - name = EmojiCategoryView; path = EmojiCategoryView; sourceTree = ""; }; @@ -609,7 +603,6 @@ buildActionMask = 2147483647; files = ( 489F1BBAA111477E7317274D4142506C /* 11.json in Resources */, - B4C0AC13504031D1EF5EDC81E76B80E5 /* 12.json in Resources */, 36C8C0E18DCE13890FC7BD6FBDED9119 /* 12.1.json in Resources */, CE77BF225BD0DE688BCA636B2CD0E6F2 /* 13.json in Resources */, FC1F4288EDA3623A0789414458F75580 /* 13.1.json in Resources */, @@ -834,8 +827,7 @@ MTL_FAST_MATH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; STRIP_INSTALLED_PRODUCT = NO; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_VERSION = 5.0; SYMROOT = "${SRCROOT}/../build"; }; diff --git a/Sources/EmojiPicker/Resources/Data/12.json b/Sources/EmojiPicker/Resources/Data/12.json deleted file mode 100644 index 5a5ddfd..0000000 --- a/Sources/EmojiPicker/Resources/Data/12.json +++ /dev/null @@ -1 +0,0 @@ -{"categories":[{"id":"people","emojis":["grinning","smiley","smile","grin","laughing","sweat_smile","rolling_on_the_floor_laughing","joy","slightly_smiling_face","upside_down_face","wink","blush","innocent","smiling_face_with_3_hearts","heart_eyes","star-struck","kissing_heart","kissing","relaxed","kissing_closed_eyes","kissing_smiling_eyes","yum","stuck_out_tongue","stuck_out_tongue_winking_eye","zany_face","stuck_out_tongue_closed_eyes","money_mouth_face","hugging_face","face_with_hand_over_mouth","shushing_face","thinking_face","zipper_mouth_face","face_with_raised_eyebrow","neutral_face","expressionless","no_mouth","smirk","unamused","face_with_rolling_eyes","grimacing","lying_face","relieved","pensive","sleepy","drooling_face","sleeping","mask","face_with_thermometer","face_with_head_bandage","nauseated_face","face_vomiting","sneezing_face","hot_face","cold_face","woozy_face","dizzy_face","exploding_head","face_with_cowboy_hat","partying_face","sunglasses","nerd_face","face_with_monocle","confused","worried","slightly_frowning_face","white_frowning_face","open_mouth","hushed","astonished","flushed","pleading_face","frowning","anguished","fearful","cold_sweat","disappointed_relieved","cry","sob","scream","confounded","persevere","disappointed","sweat","weary","tired_face","yawning_face","triumph","rage","angry","face_with_symbols_on_mouth","smiling_imp","imp","skull","skull_and_crossbones","hankey","clown_face","japanese_ogre","japanese_goblin","ghost","alien","space_invader","robot_face","smiley_cat","smile_cat","joy_cat","heart_eyes_cat","smirk_cat","kissing_cat","scream_cat","crying_cat_face","pouting_cat","see_no_evil","hear_no_evil","speak_no_evil","wave","raised_back_of_hand","raised_hand_with_fingers_splayed","hand","spock-hand","ok_hand","pinching_hand","v","crossed_fingers","i_love_you_hand_sign","the_horns","call_me_hand","point_left","point_right","point_up_2","middle_finger","point_down","point_up","+1","-1","fist","facepunch","left-facing_fist","right-facing_fist","clap","raised_hands","open_hands","palms_up_together","handshake","pray","writing_hand","nail_care","selfie","muscle","mechanical_arm","mechanical_leg","leg","foot","ear","ear_with_hearing_aid","nose","brain","tooth","bone","eyes","eye","tongue","lips","baby","child","boy","girl","adult","person_with_blond_hair","man","bearded_person","red_haired_man","curly_haired_man","white_haired_man","bald_man","woman","red_haired_woman","curly_haired_woman","white_haired_woman","bald_woman","blond-haired-woman","blond-haired-man","older_adult","older_man","older_woman","person_frowning","man-frowning","woman-frowning","person_with_pouting_face","man-pouting","woman-pouting","no_good","man-gesturing-no","woman-gesturing-no","ok_woman","man-gesturing-ok","woman-gesturing-ok","information_desk_person","man-tipping-hand","woman-tipping-hand","raising_hand","man-raising-hand","woman-raising-hand","deaf_person","deaf_man","deaf_woman","bow","man-bowing","woman-bowing","face_palm","man-facepalming","woman-facepalming","shrug","man-shrugging","woman-shrugging","male-doctor","female-doctor","male-student","female-student","male-teacher","female-teacher","male-judge","female-judge","male-farmer","female-farmer","male-cook","female-cook","male-mechanic","female-mechanic","male-factory-worker","female-factory-worker","male-office-worker","female-office-worker","male-scientist","female-scientist","male-technologist","female-technologist","male-singer","female-singer","male-artist","female-artist","male-pilot","female-pilot","male-astronaut","female-astronaut","male-firefighter","female-firefighter","cop","male-police-officer","female-police-officer","sleuth_or_spy","male-detective","female-detective","guardsman","male-guard","female-guard","construction_worker","male-construction-worker","female-construction-worker","prince","princess","man_with_turban","man-wearing-turban","woman-wearing-turban","man_with_gua_pi_mao","person_with_headscarf","person_in_tuxedo","bride_with_veil","pregnant_woman","breast-feeding","angel","santa","mrs_claus","superhero","male_superhero","female_superhero","supervillain","male_supervillain","female_supervillain","mage","male_mage","female_mage","fairy","male_fairy","female_fairy","vampire","male_vampire","female_vampire","merperson","merman","mermaid","elf","male_elf","female_elf","genie","male_genie","female_genie","zombie","male_zombie","female_zombie","massage","man-getting-massage","woman-getting-massage","haircut","man-getting-haircut","woman-getting-haircut","walking","man-walking","woman-walking","standing_person","man_standing","woman_standing","kneeling_person","man_kneeling","woman_kneeling","man_with_probing_cane","woman_with_probing_cane","man_in_motorized_wheelchair","woman_in_motorized_wheelchair","man_in_manual_wheelchair","woman_in_manual_wheelchair","runner","man-running","woman-running","dancer","man_dancing","man_in_business_suit_levitating","dancers","men-with-bunny-ears-partying","women-with-bunny-ears-partying","person_in_steamy_room","man_in_steamy_room","woman_in_steamy_room","person_climbing","man_climbing","woman_climbing","fencer","horse_racing","skier","snowboarder","golfer","man-golfing","woman-golfing","surfer","man-surfing","woman-surfing","rowboat","man-rowing-boat","woman-rowing-boat","swimmer","man-swimming","woman-swimming","person_with_ball","man-bouncing-ball","woman-bouncing-ball","weight_lifter","man-lifting-weights","woman-lifting-weights","bicyclist","man-biking","woman-biking","mountain_bicyclist","man-mountain-biking","woman-mountain-biking","person_doing_cartwheel","man-cartwheeling","woman-cartwheeling","wrestlers","man-wrestling","woman-wrestling","water_polo","man-playing-water-polo","woman-playing-water-polo","handball","man-playing-handball","woman-playing-handball","juggling","man-juggling","woman-juggling","person_in_lotus_position","man_in_lotus_position","woman_in_lotus_position","bath","sleeping_accommodation","people_holding_hands","two_women_holding_hands","man_and_woman_holding_hands","two_men_holding_hands","couplekiss","woman-kiss-man","man-kiss-man","woman-kiss-woman","couple_with_heart","woman-heart-man","man-heart-man","woman-heart-woman","family","man-woman-boy","man-woman-girl","man-woman-girl-boy","man-woman-boy-boy","man-woman-girl-girl","man-man-boy","man-man-girl","man-man-girl-boy","man-man-boy-boy","man-man-girl-girl","woman-woman-boy","woman-woman-girl","woman-woman-girl-boy","woman-woman-boy-boy","woman-woman-girl-girl","man-boy","man-boy-boy","man-girl","man-girl-boy","man-girl-girl","woman-boy","woman-boy-boy","woman-girl","woman-girl-boy","woman-girl-girl","speaking_head_in_silhouette","bust_in_silhouette","busts_in_silhouette","footprints","kiss","love_letter","cupid","gift_heart","sparkling_heart","heartpulse","heartbeat","revolving_hearts","two_hearts","heart_decoration","heavy_heart_exclamation_mark_ornament","broken_heart","heart","orange_heart","yellow_heart","green_heart","blue_heart","purple_heart","brown_heart","black_heart","white_heart","100","anger","boom","dizzy","sweat_drops","dash","hole","bomb","speech_balloon","eye-in-speech-bubble","left_speech_bubble","right_anger_bubble","thought_balloon","zzz"]},{"id":"nature","emojis":["monkey_face","monkey","gorilla","orangutan","dog","dog2","guide_dog","service_dog","poodle","wolf","fox_face","raccoon","cat","cat2","lion_face","tiger","tiger2","leopard","horse","racehorse","unicorn_face","zebra_face","deer","cow","ox","water_buffalo","cow2","pig","pig2","boar","pig_nose","ram","sheep","goat","dromedary_camel","camel","llama","giraffe_face","elephant","rhinoceros","hippopotamus","mouse","mouse2","rat","hamster","rabbit","rabbit2","chipmunk","hedgehog","bat","bear","koala","panda_face","sloth","otter","skunk","kangaroo","badger","feet","turkey","chicken","rooster","hatching_chick","baby_chick","hatched_chick","bird","penguin","dove_of_peace","eagle","duck","swan","owl","flamingo","peacock","parrot","frog","crocodile","turtle","lizard","snake","dragon_face","dragon","sauropod","t-rex","whale","whale2","dolphin","fish","tropical_fish","blowfish","shark","octopus","shell","snail","butterfly","bug","ant","bee","ladybug","cricket","spider","spider_web","scorpion","mosquito","microbe","bouquet","cherry_blossom","white_flower","rosette","rose","wilted_flower","hibiscus","sunflower","blossom","tulip","seedling","evergreen_tree","deciduous_tree","palm_tree","cactus","ear_of_rice","herb","shamrock","four_leaf_clover","maple_leaf","fallen_leaf","leaves"]},{"id":"foods","emojis":["grapes","melon","watermelon","tangerine","lemon","banana","pineapple","mango","apple","green_apple","pear","peach","cherries","strawberry","kiwifruit","tomato","coconut","avocado","eggplant","potato","carrot","corn","hot_pepper","cucumber","leafy_green","broccoli","garlic","onion","mushroom","peanuts","chestnut","bread","croissant","baguette_bread","pretzel","bagel","pancakes","waffle","cheese_wedge","meat_on_bone","poultry_leg","cut_of_meat","bacon","hamburger","fries","pizza","hotdog","sandwich","taco","burrito","stuffed_flatbread","falafel","egg","fried_egg","shallow_pan_of_food","stew","bowl_with_spoon","green_salad","popcorn","butter","salt","canned_food","bento","rice_cracker","rice_ball","rice","curry","ramen","spaghetti","sweet_potato","oden","sushi","fried_shrimp","fish_cake","moon_cake","dango","dumpling","fortune_cookie","takeout_box","crab","lobster","shrimp","squid","oyster","icecream","shaved_ice","ice_cream","doughnut","cookie","birthday","cake","cupcake","pie","chocolate_bar","candy","lollipop","custard","honey_pot","baby_bottle","glass_of_milk","coffee","tea","sake","champagne","wine_glass","cocktail","tropical_drink","beer","beers","clinking_glasses","tumbler_glass","cup_with_straw","beverage_box","mate_drink","ice_cube","chopsticks","knife_fork_plate","fork_and_knife","spoon","hocho","amphora"]},{"id":"activity","emojis":["jack_o_lantern","christmas_tree","fireworks","sparkler","firecracker","sparkles","balloon","tada","confetti_ball","tanabata_tree","bamboo","dolls","flags","wind_chime","rice_scene","red_envelope","ribbon","gift","reminder_ribbon","admission_tickets","ticket","medal","trophy","sports_medal","first_place_medal","second_place_medal","third_place_medal","soccer","baseball","softball","basketball","volleyball","football","rugby_football","tennis","flying_disc","bowling","cricket_bat_and_ball","field_hockey_stick_and_ball","ice_hockey_stick_and_puck","lacrosse","table_tennis_paddle_and_ball","badminton_racquet_and_shuttlecock","boxing_glove","martial_arts_uniform","goal_net","golf","ice_skate","fishing_pole_and_fish","diving_mask","running_shirt_with_sash","ski","sled","curling_stone","dart","yo-yo","kite","8ball","crystal_ball","nazar_amulet","video_game","joystick","slot_machine","game_die","jigsaw","teddy_bear","spades","hearts","diamonds","clubs","chess_pawn","black_joker","mahjong","flower_playing_cards","performing_arts","frame_with_picture","art","thread","yarn"]},{"id":"places","emojis":["earth_africa","earth_americas","earth_asia","globe_with_meridians","world_map","japan","compass","snow_capped_mountain","mountain","volcano","mount_fuji","camping","beach_with_umbrella","desert","desert_island","national_park","stadium","classical_building","building_construction","bricks","house_buildings","derelict_house_building","house","house_with_garden","office","post_office","european_post_office","hospital","bank","hotel","love_hotel","convenience_store","school","department_store","factory","japanese_castle","european_castle","wedding","tokyo_tower","statue_of_liberty","church","mosque","hindu_temple","synagogue","shinto_shrine","kaaba","fountain","tent","foggy","night_with_stars","cityscape","sunrise_over_mountains","sunrise","city_sunset","city_sunrise","bridge_at_night","hotsprings","carousel_horse","ferris_wheel","roller_coaster","barber","circus_tent","steam_locomotive","railway_car","bullettrain_side","bullettrain_front","train2","metro","light_rail","station","tram","monorail","mountain_railway","train","bus","oncoming_bus","trolleybus","minibus","ambulance","fire_engine","police_car","oncoming_police_car","taxi","oncoming_taxi","car","oncoming_automobile","blue_car","truck","articulated_lorry","tractor","racing_car","racing_motorcycle","motor_scooter","manual_wheelchair","motorized_wheelchair","auto_rickshaw","bike","scooter","skateboard","busstop","motorway","railway_track","oil_drum","fuelpump","rotating_light","traffic_light","vertical_traffic_light","octagonal_sign","construction","anchor","boat","canoe","speedboat","passenger_ship","ferry","motor_boat","ship","airplane","small_airplane","airplane_departure","airplane_arriving","parachute","seat","helicopter","suspension_railway","mountain_cableway","aerial_tramway","satellite","rocket","flying_saucer","bellhop_bell","luggage","hourglass","hourglass_flowing_sand","watch","alarm_clock","stopwatch","timer_clock","mantelpiece_clock","clock12","clock1230","clock1","clock130","clock2","clock230","clock3","clock330","clock4","clock430","clock5","clock530","clock6","clock630","clock7","clock730","clock8","clock830","clock9","clock930","clock10","clock1030","clock11","clock1130","new_moon","waxing_crescent_moon","first_quarter_moon","moon","full_moon","waning_gibbous_moon","last_quarter_moon","waning_crescent_moon","crescent_moon","new_moon_with_face","first_quarter_moon_with_face","last_quarter_moon_with_face","thermometer","sunny","full_moon_with_face","sun_with_face","ringed_planet","star","star2","stars","milky_way","cloud","partly_sunny","thunder_cloud_and_rain","mostly_sunny","barely_sunny","partly_sunny_rain","rain_cloud","snow_cloud","lightning","tornado","fog","wind_blowing_face","cyclone","rainbow","closed_umbrella","umbrella","umbrella_with_rain_drops","umbrella_on_ground","zap","snowflake","snowman","snowman_without_snow","comet","fire","droplet","ocean"]},{"id":"objects","emojis":["eyeglasses","dark_sunglasses","goggles","lab_coat","safety_vest","necktie","shirt","jeans","scarf","gloves","coat","socks","dress","kimono","sari","one-piece_swimsuit","briefs","shorts","bikini","womans_clothes","purse","handbag","pouch","shopping_bags","school_satchel","mans_shoe","athletic_shoe","hiking_boot","womans_flat_shoe","high_heel","sandal","ballet_shoes","boot","crown","womans_hat","tophat","mortar_board","billed_cap","helmet_with_white_cross","prayer_beads","lipstick","ring","gem","mute","speaker","sound","loud_sound","loudspeaker","mega","postal_horn","bell","no_bell","musical_score","musical_note","notes","studio_microphone","level_slider","control_knobs","microphone","headphones","radio","saxophone","guitar","musical_keyboard","trumpet","violin","banjo","drum_with_drumsticks","iphone","calling","phone","telephone_receiver","pager","fax","battery","electric_plug","computer","desktop_computer","printer","keyboard","three_button_mouse","trackball","minidisc","floppy_disk","cd","dvd","abacus","movie_camera","film_frames","film_projector","clapper","tv","camera","camera_with_flash","video_camera","vhs","mag","mag_right","candle","bulb","flashlight","izakaya_lantern","diya_lamp","notebook_with_decorative_cover","closed_book","book","green_book","blue_book","orange_book","books","notebook","ledger","page_with_curl","scroll","page_facing_up","newspaper","rolled_up_newspaper","bookmark_tabs","bookmark","label","moneybag","yen","dollar","euro","pound","money_with_wings","credit_card","receipt","chart","email","e-mail","incoming_envelope","envelope_with_arrow","outbox_tray","inbox_tray","package","mailbox","mailbox_closed","mailbox_with_mail","mailbox_with_no_mail","postbox","ballot_box_with_ballot","pencil2","black_nib","lower_left_fountain_pen","lower_left_ballpoint_pen","lower_left_paintbrush","lower_left_crayon","memo","briefcase","file_folder","open_file_folder","card_index_dividers","date","calendar","spiral_note_pad","spiral_calendar_pad","card_index","chart_with_upwards_trend","chart_with_downwards_trend","bar_chart","clipboard","pushpin","round_pushpin","paperclip","linked_paperclips","straight_ruler","triangular_ruler","scissors","card_file_box","file_cabinet","wastebasket","lock","unlock","lock_with_ink_pen","closed_lock_with_key","key","old_key","hammer","axe","pick","hammer_and_pick","hammer_and_wrench","dagger_knife","crossed_swords","gun","bow_and_arrow","shield","wrench","nut_and_bolt","gear","compression","scales","probing_cane","link","chains","toolbox","magnet","alembic","test_tube","petri_dish","dna","microscope","telescope","satellite_antenna","syringe","drop_of_blood","pill","adhesive_bandage","stethoscope","door","bed","couch_and_lamp","chair","toilet","shower","bathtub","razor","lotion_bottle","safety_pin","broom","basket","roll_of_paper","soap","sponge","fire_extinguisher","shopping_trolley","smoking","coffin","funeral_urn","moyai"]},{"id":"symbols","emojis":["atm","put_litter_in_its_place","potable_water","wheelchair","mens","womens","restroom","baby_symbol","wc","passport_control","customs","baggage_claim","left_luggage","warning","children_crossing","no_entry","no_entry_sign","no_bicycles","no_smoking","do_not_litter","non-potable_water","no_pedestrians","no_mobile_phones","underage","radioactive_sign","biohazard_sign","arrow_up","arrow_upper_right","arrow_right","arrow_lower_right","arrow_down","arrow_lower_left","arrow_left","arrow_upper_left","arrow_up_down","left_right_arrow","leftwards_arrow_with_hook","arrow_right_hook","arrow_heading_up","arrow_heading_down","arrows_clockwise","arrows_counterclockwise","back","end","on","soon","top","place_of_worship","atom_symbol","om_symbol","star_of_david","wheel_of_dharma","yin_yang","latin_cross","orthodox_cross","star_and_crescent","peace_symbol","menorah_with_nine_branches","six_pointed_star","aries","taurus","gemini","cancer","leo","virgo","libra","scorpius","sagittarius","capricorn","aquarius","pisces","ophiuchus","twisted_rightwards_arrows","repeat","repeat_one","arrow_forward","fast_forward","black_right_pointing_double_triangle_with_vertical_bar","black_right_pointing_triangle_with_double_vertical_bar","arrow_backward","rewind","black_left_pointing_double_triangle_with_vertical_bar","arrow_up_small","arrow_double_up","arrow_down_small","arrow_double_down","double_vertical_bar","black_square_for_stop","black_circle_for_record","eject","cinema","low_brightness","high_brightness","signal_strength","vibration_mode","mobile_phone_off","heavy_multiplication_x","heavy_plus_sign","heavy_minus_sign","heavy_division_sign","infinity","bangbang","interrobang","question","grey_question","grey_exclamation","exclamation","wavy_dash","currency_exchange","heavy_dollar_sign","recycle","fleur_de_lis","trident","name_badge","beginner","o","white_check_mark","ballot_box_with_check","heavy_check_mark","x","negative_squared_cross_mark","curly_loop","loop","part_alternation_mark","eight_spoked_asterisk","eight_pointed_black_star","sparkle","copyright","registered","tm","hash","keycap_star","zero","one","two","three","four","five","six","seven","eight","nine","keycap_ten","capital_abcd","abcd","1234","symbols","abc","a","ab","b","cl","cool","free","information_source","id","m","new","ng","o2","ok","parking","sos","up","vs","koko","sa","u6708","u6709","u6307","ideograph_advantage","u5272","u7121","u7981","accept","u7533","u5408","u7a7a","congratulations","secret","u55b6","u6e80","red_circle","large_orange_circle","large_yellow_circle","large_green_circle","large_blue_circle","large_purple_circle","large_brown_circle","black_circle","white_circle","large_red_square","large_orange_square","large_yellow_square","large_green_square","large_blue_square","large_purple_square","large_brown_square","black_large_square","white_large_square","black_medium_square","white_medium_square","black_medium_small_square","white_medium_small_square","black_small_square","white_small_square","large_orange_diamond","large_blue_diamond","small_orange_diamond","small_blue_diamond","small_red_triangle","small_red_triangle_down","diamond_shape_with_a_dot_inside","radio_button","white_square_button","black_square_button"]},{"id":"flags","emojis":["checkered_flag","cn","crossed_flags","de","es","flag-ac","flag-ad","flag-ae","flag-af","flag-ag","flag-ai","flag-al","flag-am","flag-ao","flag-aq","flag-ar","flag-as","flag-at","flag-au","flag-aw","flag-ax","flag-az","flag-ba","flag-bb","flag-bd","flag-be","flag-bf","flag-bg","flag-bh","flag-bi","flag-bj","flag-bl","flag-bm","flag-bn","flag-bo","flag-bq","flag-br","flag-bs","flag-bt","flag-bv","flag-bw","flag-by","flag-bz","flag-ca","flag-cc","flag-cd","flag-cf","flag-cg","flag-ch","flag-ci","flag-ck","flag-cl","flag-cm","flag-co","flag-cp","flag-cr","flag-cu","flag-cv","flag-cw","flag-cx","flag-cy","flag-cz","flag-dg","flag-dj","flag-dk","flag-dm","flag-do","flag-dz","flag-ea","flag-ec","flag-ee","flag-eg","flag-eh","flag-england","flag-er","flag-et","flag-eu","flag-fi","flag-fj","flag-fk","flag-fm","flag-fo","flag-ga","flag-gd","flag-ge","flag-gf","flag-gg","flag-gh","flag-gi","flag-gl","flag-gm","flag-gn","flag-gp","flag-gq","flag-gr","flag-gs","flag-gt","flag-gu","flag-gw","flag-gy","flag-hk","flag-hm","flag-hn","flag-hr","flag-ht","flag-hu","flag-ic","flag-id","flag-ie","flag-il","flag-im","flag-in","flag-io","flag-iq","flag-ir","flag-is","flag-je","flag-jm","flag-jo","flag-ke","flag-kg","flag-kh","flag-ki","flag-km","flag-kn","flag-kp","flag-kw","flag-ky","flag-kz","flag-la","flag-lb","flag-lc","flag-li","flag-lk","flag-lr","flag-ls","flag-lt","flag-lu","flag-lv","flag-ly","flag-ma","flag-mc","flag-md","flag-me","flag-mf","flag-mg","flag-mh","flag-mk","flag-ml","flag-mm","flag-mn","flag-mo","flag-mp","flag-mq","flag-mr","flag-ms","flag-mt","flag-mu","flag-mv","flag-mw","flag-mx","flag-my","flag-mz","flag-na","flag-nc","flag-ne","flag-nf","flag-ng","flag-ni","flag-nl","flag-no","flag-np","flag-nr","flag-nu","flag-nz","flag-om","flag-pa","flag-pe","flag-pf","flag-pg","flag-ph","flag-pk","flag-pl","flag-pm","flag-pn","flag-pr","flag-ps","flag-pt","flag-pw","flag-py","flag-qa","flag-re","flag-ro","flag-rs","flag-rw","flag-sa","flag-sb","flag-sc","flag-scotland","flag-sd","flag-se","flag-sg","flag-sh","flag-si","flag-sj","flag-sk","flag-sl","flag-sm","flag-sn","flag-so","flag-sr","flag-ss","flag-st","flag-sv","flag-sx","flag-sy","flag-sz","flag-ta","flag-tc","flag-td","flag-tf","flag-tg","flag-th","flag-tj","flag-tk","flag-tl","flag-tm","flag-tn","flag-to","flag-tr","flag-tt","flag-tv","flag-tw","flag-tz","flag-ua","flag-ug","flag-um","flag-un","flag-uy","flag-uz","flag-va","flag-vc","flag-ve","flag-vg","flag-vi","flag-vn","flag-vu","flag-wales","flag-wf","flag-ws","flag-xk","flag-ye","flag-yt","flag-za","flag-zm","flag-zw","fr","gb","it","jp","kr","pirate_flag","rainbow-flag","ru","triangular_flag_on_post","us","waving_black_flag","waving_white_flag"]}],"emojis":{"100":{"id":"100","name":"Hundred Points","keywords":["100","score","perfect","numbers","century","exam","quiz","test","pass"],"skins":[{"unified":"1f4af","native":"💯","x":28,"y":6}],"version":1},"1234":{"id":"1234","name":"Input Numbers","keywords":["1234","blue","square"],"skins":[{"unified":"1f522","native":"🔢","x":29,"y":59}],"version":1},"grinning":{"id":"grinning","name":"Grinning Face","emoticons":[":D"],"keywords":["smile","happy","joy",":D","grin"],"skins":[{"unified":"1f600","native":"😀","x":32,"y":20}],"version":1},"smiley":{"id":"smiley","name":"Grinning Face with Big Eyes","emoticons":[":)","=)","=-)"],"keywords":["smiley","happy","joy","haha",":D",":)","smile","funny"],"skins":[{"unified":"1f603","native":"😃","x":32,"y":23}],"version":1},"smile":{"id":"smile","name":"Grinning Face with Smiling Eyes","emoticons":[":)","C:","c:",":D",":-D"],"keywords":["smile","happy","joy","funny","haha","laugh","like",":D",":)"],"skins":[{"unified":"1f604","native":"😄","x":32,"y":24}],"version":1},"grin":{"id":"grin","name":"Beaming Face with Smiling Eyes","keywords":["grin","happy","smile","joy","kawaii"],"skins":[{"unified":"1f601","native":"😁","x":32,"y":21}],"version":1},"laughing":{"id":"laughing","name":"Grinning Squinting Face","emoticons":[":>",":->"],"keywords":["laughing","satisfied","happy","joy","lol","haha","glad","XD","laugh"],"skins":[{"unified":"1f606","native":"😆","x":32,"y":26}],"version":1},"sweat_smile":{"id":"sweat_smile","name":"Grinning Face with Sweat","keywords":["smile","hot","happy","laugh","relief"],"skins":[{"unified":"1f605","native":"😅","x":32,"y":25}],"version":1},"rolling_on_the_floor_laughing":{"id":"rolling_on_the_floor_laughing","name":"Rolling on the Floor Laughing","keywords":["face","lol","haha","rofl"],"skins":[{"unified":"1f923","native":"🤣","x":40,"y":15}],"version":3},"joy":{"id":"joy","name":"Face with Tears of Joy","keywords":["cry","weep","happy","happytears","haha"],"skins":[{"unified":"1f602","native":"😂","x":32,"y":22}],"version":1},"slightly_smiling_face":{"id":"slightly_smiling_face","name":"Slightly Smiling Face","emoticons":[":)","(:",":-)"],"keywords":["smile"],"skins":[{"unified":"1f642","native":"🙂","x":33,"y":28}],"version":1},"upside_down_face":{"id":"upside_down_face","name":"Upside-Down Face","keywords":["upside","down","flipped","silly","smile"],"skins":[{"unified":"1f643","native":"🙃","x":33,"y":29}],"version":1},"wink":{"id":"wink","name":"Winking Face","emoticons":[";)",";-)"],"keywords":["wink","happy","mischievous","secret",";)","smile","eye"],"skins":[{"unified":"1f609","native":"😉","x":32,"y":29}],"version":1},"blush":{"id":"blush","name":"Smiling Face with Smiling Eyes","emoticons":[":)"],"keywords":["blush","smile","happy","flushed","crush","embarrassed","shy","joy"],"skins":[{"unified":"1f60a","native":"😊","x":32,"y":30}],"version":1},"innocent":{"id":"innocent","name":"Smiling Face with Halo","keywords":["innocent","angel","heaven"],"skins":[{"unified":"1f607","native":"😇","x":32,"y":27}],"version":1},"smiling_face_with_3_hearts":{"id":"smiling_face_with_3_hearts","name":"Smiling Face with Hearts","keywords":["3","love","like","affection","valentines","infatuation","crush","adore"],"skins":[{"unified":"1f970","native":"🥰","x":43,"y":58}],"version":11},"heart_eyes":{"id":"heart_eyes","name":"Smiling Face with Heart-Eyes","keywords":["heart","eyes","love","like","affection","valentines","infatuation","crush"],"skins":[{"unified":"1f60d","native":"😍","x":32,"y":33}],"version":1},"star-struck":{"id":"star-struck","name":"Star-Struck","keywords":["star","struck","grinning","face","with","eyes","smile","starry"],"skins":[{"unified":"1f929","native":"🤩","x":40,"y":38}],"version":5},"kissing_heart":{"id":"kissing_heart","name":"Face Blowing a Kiss","emoticons":[":*",":-*"],"keywords":["kissing","heart","love","like","affection","valentines","infatuation"],"skins":[{"unified":"1f618","native":"😘","x":32,"y":44}],"version":1},"kissing":{"id":"kissing","name":"Kissing Face","keywords":["love","like","3","valentines","infatuation","kiss"],"skins":[{"unified":"1f617","native":"😗","x":32,"y":43}],"version":1},"relaxed":{"id":"relaxed","name":"Smiling Face","keywords":["relaxed","blush","massage","happiness"],"skins":[{"unified":"263a-fe0f","native":"☺️","x":57,"y":4}],"version":1},"kissing_closed_eyes":{"id":"kissing_closed_eyes","name":"Kissing Face with Closed Eyes","keywords":["love","like","affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f61a","native":"😚","x":32,"y":46}],"version":1},"kissing_smiling_eyes":{"id":"kissing_smiling_eyes","name":"Kissing Face with Smiling Eyes","keywords":["affection","valentines","infatuation","kiss"],"skins":[{"unified":"1f619","native":"😙","x":32,"y":45}],"version":1},"yum":{"id":"yum","name":"Face Savoring Food","keywords":["yum","happy","joy","tongue","smile","silly","yummy","nom","delicious","savouring"],"skins":[{"unified":"1f60b","native":"😋","x":32,"y":31}],"version":1},"stuck_out_tongue":{"id":"stuck_out_tongue","name":"Face with Tongue","emoticons":[":p",":-p",":P",":-P",":b",":-b"],"keywords":["stuck","out","prank","childish","playful","mischievous","smile"],"skins":[{"unified":"1f61b","native":"😛","x":32,"y":47}],"version":1},"stuck_out_tongue_winking_eye":{"id":"stuck_out_tongue_winking_eye","name":"Winking Face with Tongue","emoticons":[";p",";-p",";b",";-b",";P",";-P"],"keywords":["stuck","out","eye","prank","childish","playful","mischievous","smile","wink"],"skins":[{"unified":"1f61c","native":"😜","x":32,"y":48}],"version":1},"zany_face":{"id":"zany_face","name":"Zany Face","keywords":["grinning","with","one","large","and","small","eye","goofy","crazy"],"skins":[{"unified":"1f92a","native":"🤪","x":40,"y":39}],"version":5},"stuck_out_tongue_closed_eyes":{"id":"stuck_out_tongue_closed_eyes","name":"Squinting Face with Tongue","keywords":["stuck","out","closed","eyes","prank","playful","mischievous","smile"],"skins":[{"unified":"1f61d","native":"😝","x":32,"y":49}],"version":1},"money_mouth_face":{"id":"money_mouth_face","name":"Money-Mouth Face","keywords":["money","mouth","rich","dollar"],"skins":[{"unified":"1f911","native":"🤑","x":38,"y":59}],"version":1},"hugging_face":{"id":"hugging_face","name":"Hugging Face","keywords":["smile","hug"],"skins":[{"unified":"1f917","native":"🤗","x":39,"y":4}],"version":1},"face_with_hand_over_mouth":{"id":"face_with_hand_over_mouth","name":"Face with Hand over Mouth","keywords":["smiling","eyes","and","covering","whoops","shock","surprise"],"skins":[{"unified":"1f92d","native":"🤭","x":40,"y":42}],"version":5},"shushing_face":{"id":"shushing_face","name":"Shushing Face","keywords":["with","finger","covering","closed","lips","quiet","shhh"],"skins":[{"unified":"1f92b","native":"🤫","x":40,"y":40}],"version":5},"thinking_face":{"id":"thinking_face","name":"Thinking Face","keywords":["hmmm","think","consider"],"skins":[{"unified":"1f914","native":"🤔","x":39,"y":1}],"version":1},"zipper_mouth_face":{"id":"zipper_mouth_face","name":"Zipper-Mouth Face","keywords":["zipper","mouth","sealed","secret"],"skins":[{"unified":"1f910","native":"🤐","x":38,"y":58}],"version":1},"face_with_raised_eyebrow":{"id":"face_with_raised_eyebrow","name":"Face with Raised Eyebrow","keywords":["one","distrust","scepticism","disapproval","disbelief","surprise"],"skins":[{"unified":"1f928","native":"🤨","x":40,"y":37}],"version":5},"neutral_face":{"id":"neutral_face","name":"Neutral Face","emoticons":[":|",":-|"],"keywords":["indifference","meh",":",""],"skins":[{"unified":"1f610","native":"😐","x":32,"y":36}],"version":1},"expressionless":{"id":"expressionless","name":"Expressionless Face","emoticons":["-_-"],"keywords":["indifferent","-","","meh","deadpan"],"skins":[{"unified":"1f611","native":"😑","x":32,"y":37}],"version":1},"no_mouth":{"id":"no_mouth","name":"Face Without Mouth","keywords":["no","hellokitty"],"skins":[{"unified":"1f636","native":"😶","x":33,"y":16}],"version":1},"smirk":{"id":"smirk","name":"Smirking Face","keywords":["smirk","smile","mean","prank","smug","sarcasm"],"skins":[{"unified":"1f60f","native":"😏","x":32,"y":35}],"version":1},"unamused":{"id":"unamused","name":"Unamused Face","emoticons":[":("],"keywords":["indifference","bored","straight","serious","sarcasm","unimpressed","skeptical","dubious","side","eye"],"skins":[{"unified":"1f612","native":"😒","x":32,"y":38}],"version":1},"face_with_rolling_eyes":{"id":"face_with_rolling_eyes","name":"Face with Rolling Eyes","keywords":["eyeroll","frustrated"],"skins":[{"unified":"1f644","native":"🙄","x":33,"y":30}],"version":1},"grimacing":{"id":"grimacing","name":"Grimacing Face","keywords":["grimace","teeth"],"skins":[{"unified":"1f62c","native":"😬","x":33,"y":3}],"version":1},"lying_face":{"id":"lying_face","name":"Lying Face","keywords":["lie","pinocchio"],"skins":[{"unified":"1f925","native":"🤥","x":40,"y":17}],"version":3},"relieved":{"id":"relieved","name":"Relieved Face","keywords":["relaxed","phew","massage","happiness"],"skins":[{"unified":"1f60c","native":"😌","x":32,"y":32}],"version":1},"pensive":{"id":"pensive","name":"Pensive Face","keywords":["sad","depressed","upset"],"skins":[{"unified":"1f614","native":"😔","x":32,"y":40}],"version":1},"sleepy":{"id":"sleepy","name":"Sleepy Face","keywords":["tired","rest","nap"],"skins":[{"unified":"1f62a","native":"😪","x":33,"y":1}],"version":1},"drooling_face":{"id":"drooling_face","name":"Drooling Face","keywords":[],"skins":[{"unified":"1f924","native":"🤤","x":40,"y":16}],"version":3},"sleeping":{"id":"sleeping","name":"Sleeping Face","keywords":["tired","sleepy","night","zzz"],"skins":[{"unified":"1f634","native":"😴","x":33,"y":12}],"version":1},"mask":{"id":"mask","name":"Face with Medical Mask","keywords":["sick","ill","disease"],"skins":[{"unified":"1f637","native":"😷","x":33,"y":17}],"version":1},"face_with_thermometer":{"id":"face_with_thermometer","name":"Face with Thermometer","keywords":["sick","temperature","cold","fever"],"skins":[{"unified":"1f912","native":"🤒","x":38,"y":60}],"version":1},"face_with_head_bandage":{"id":"face_with_head_bandage","name":"Face with Head-Bandage","keywords":["head","bandage","injured","clumsy","hurt"],"skins":[{"unified":"1f915","native":"🤕","x":39,"y":2}],"version":1},"nauseated_face":{"id":"nauseated_face","name":"Nauseated Face","keywords":["vomit","gross","green","sick","throw","up","ill"],"skins":[{"unified":"1f922","native":"🤢","x":40,"y":14}],"version":3},"face_vomiting":{"id":"face_vomiting","name":"Face Vomiting","keywords":["with","open","mouth","sick"],"skins":[{"unified":"1f92e","native":"🤮","x":40,"y":43}],"version":5},"sneezing_face":{"id":"sneezing_face","name":"Sneezing Face","keywords":["gesundheit","sneeze","sick","allergy"],"skins":[{"unified":"1f927","native":"🤧","x":40,"y":36}],"version":3},"hot_face":{"id":"hot_face","name":"Hot Face","keywords":["feverish","heat","red","sweating"],"skins":[{"unified":"1f975","native":"🥵","x":44,"y":2}],"version":11},"cold_face":{"id":"cold_face","name":"Cold Face","keywords":["blue","freezing","frozen","frostbite","icicles"],"skins":[{"unified":"1f976","native":"🥶","x":44,"y":3}],"version":11},"woozy_face":{"id":"woozy_face","name":"Woozy Face","keywords":["dizzy","intoxicated","tipsy","wavy"],"skins":[{"unified":"1f974","native":"🥴","x":44,"y":1}],"version":11},"dizzy_face":{"id":"dizzy_face","name":"Dizzy Face","keywords":["spent","unconscious","xox"],"skins":[{"unified":"1f635","native":"😵","x":33,"y":14}],"version":1},"exploding_head":{"id":"exploding_head","name":"Exploding Head","keywords":["shocked","face","with","mind","blown"],"skins":[{"unified":"1f92f","native":"🤯","x":40,"y":44}],"version":5},"face_with_cowboy_hat":{"id":"face_with_cowboy_hat","name":"Cowboy Hat Face","keywords":["with","cowgirl"],"skins":[{"unified":"1f920","native":"🤠","x":40,"y":12}],"version":3},"partying_face":{"id":"partying_face","name":"Partying Face","keywords":["celebration","woohoo"],"skins":[{"unified":"1f973","native":"🥳","x":44,"y":0}],"version":11},"sunglasses":{"id":"sunglasses","name":"Smiling Face with Sunglasses","emoticons":["8)"],"keywords":["cool","smile","summer","beach","sunglass"],"skins":[{"unified":"1f60e","native":"😎","x":32,"y":34}],"version":1},"nerd_face":{"id":"nerd_face","name":"Nerd Face","keywords":["nerdy","geek","dork"],"skins":[{"unified":"1f913","native":"🤓","x":39,"y":0}],"version":1},"face_with_monocle":{"id":"face_with_monocle","name":"Face with Monocle","keywords":["stuffy","wealthy"],"skins":[{"unified":"1f9d0","native":"🧐","x":47,"y":11}],"version":5},"confused":{"id":"confused","name":"Confused Face","emoticons":[":\\",":-\\",":/",":-/"],"keywords":["indifference","huh","weird","hmmm",":/"],"skins":[{"unified":"1f615","native":"😕","x":32,"y":41}],"version":1},"worried":{"id":"worried","name":"Worried Face","keywords":["concern","nervous",":("],"skins":[{"unified":"1f61f","native":"😟","x":32,"y":51}],"version":1},"slightly_frowning_face":{"id":"slightly_frowning_face","name":"Slightly Frowning Face","keywords":["disappointed","sad","upset"],"skins":[{"unified":"1f641","native":"🙁","x":33,"y":27}],"version":1},"white_frowning_face":{"id":"white_frowning_face","name":"Frowning Face","keywords":["white","sad","upset","frown"],"skins":[{"unified":"2639-fe0f","native":"☹️","x":57,"y":3}],"version":1},"open_mouth":{"id":"open_mouth","name":"Face with Open Mouth","emoticons":[":o",":-o",":O",":-O"],"keywords":["surprise","impressed","wow","whoa",":O"],"skins":[{"unified":"1f62e","native":"😮","x":33,"y":6}],"version":1},"hushed":{"id":"hushed","name":"Hushed Face","keywords":["woo","shh"],"skins":[{"unified":"1f62f","native":"😯","x":33,"y":7}],"version":1},"astonished":{"id":"astonished","name":"Astonished Face","keywords":["xox","surprised","poisoned"],"skins":[{"unified":"1f632","native":"😲","x":33,"y":10}],"version":1},"flushed":{"id":"flushed","name":"Flushed Face","keywords":["blush","shy","flattered"],"skins":[{"unified":"1f633","native":"😳","x":33,"y":11}],"version":1},"pleading_face":{"id":"pleading_face","name":"Pleading Face","keywords":["begging","mercy"],"skins":[{"unified":"1f97a","native":"🥺","x":44,"y":12}],"version":11},"frowning":{"id":"frowning","name":"Frowning Face with Open Mouth","keywords":["aw","what"],"skins":[{"unified":"1f626","native":"😦","x":32,"y":58}],"version":1},"anguished":{"id":"anguished","name":"Anguished Face","emoticons":["D:"],"keywords":["stunned","nervous"],"skins":[{"unified":"1f627","native":"😧","x":32,"y":59}],"version":1},"fearful":{"id":"fearful","name":"Fearful Face","keywords":["scared","terrified","nervous","oops","huh"],"skins":[{"unified":"1f628","native":"😨","x":32,"y":60}],"version":1},"cold_sweat":{"id":"cold_sweat","name":"Anxious Face with Sweat","keywords":["cold","nervous"],"skins":[{"unified":"1f630","native":"😰","x":33,"y":8}],"version":1},"disappointed_relieved":{"id":"disappointed_relieved","name":"Sad but Relieved Face","keywords":["disappointed","phew","sweat","nervous"],"skins":[{"unified":"1f625","native":"😥","x":32,"y":57}],"version":1},"cry":{"id":"cry","name":"Crying Face","emoticons":[":'("],"keywords":["cry","tears","sad","depressed","upset",":'("],"skins":[{"unified":"1f622","native":"😢","x":32,"y":54}],"version":1},"sob":{"id":"sob","name":"Loudly Crying Face","emoticons":[":'("],"keywords":["sob","cry","tears","sad","upset","depressed"],"skins":[{"unified":"1f62d","native":"😭","x":33,"y":4}],"version":1},"scream":{"id":"scream","name":"Face Screaming in Fear","keywords":["scream","munch","scared","omg"],"skins":[{"unified":"1f631","native":"😱","x":33,"y":9}],"version":1},"confounded":{"id":"confounded","name":"Confounded Face","keywords":["confused","sick","unwell","oops",":S"],"skins":[{"unified":"1f616","native":"😖","x":32,"y":42}],"version":1},"persevere":{"id":"persevere","name":"Persevering Face","keywords":["persevere","sick","no","upset","oops"],"skins":[{"unified":"1f623","native":"😣","x":32,"y":55}],"version":1},"disappointed":{"id":"disappointed","name":"Disappointed Face","emoticons":["):",":(",":-("],"keywords":["sad","upset","depressed",":("],"skins":[{"unified":"1f61e","native":"😞","x":32,"y":50}],"version":1},"sweat":{"id":"sweat","name":"Face with Cold Sweat","keywords":["downcast","hot","sad","tired","exercise"],"skins":[{"unified":"1f613","native":"😓","x":32,"y":39}],"version":1},"weary":{"id":"weary","name":"Weary Face","keywords":["tired","sleepy","sad","frustrated","upset"],"skins":[{"unified":"1f629","native":"😩","x":33,"y":0}],"version":1},"tired_face":{"id":"tired_face","name":"Tired Face","keywords":["sick","whine","upset","frustrated"],"skins":[{"unified":"1f62b","native":"😫","x":33,"y":2}],"version":1},"yawning_face":{"id":"yawning_face","name":"Yawning Face","keywords":["tired","sleepy"],"skins":[{"unified":"1f971","native":"🥱","x":43,"y":59}],"version":12},"triumph":{"id":"triumph","name":"Face with Look of Triumph","keywords":["steam","from","nose","gas","phew","proud","pride"],"skins":[{"unified":"1f624","native":"😤","x":32,"y":56}],"version":1},"rage":{"id":"rage","name":"Pouting Face","keywords":["rage","angry","mad","hate","despise"],"skins":[{"unified":"1f621","native":"😡","x":32,"y":53}],"version":1},"angry":{"id":"angry","name":"Angry Face","emoticons":[">:(",">:-("],"keywords":["mad","annoyed","frustrated"],"skins":[{"unified":"1f620","native":"😠","x":32,"y":52}],"version":1},"face_with_symbols_on_mouth":{"id":"face_with_symbols_on_mouth","name":"Face with Symbols on Mouth","keywords":["serious","covering","swearing","cursing","cussing","profanity","expletive"],"skins":[{"unified":"1f92c","native":"🤬","x":40,"y":41}],"version":5},"smiling_imp":{"id":"smiling_imp","name":"Smiling Face with Horns","keywords":["imp","devil"],"skins":[{"unified":"1f608","native":"😈","x":32,"y":28}],"version":1},"imp":{"id":"imp","name":"Imp","keywords":["angry","face","with","horns","devil"],"skins":[{"unified":"1f47f","native":"👿","x":25,"y":8}],"version":1},"skull":{"id":"skull","name":"Skull","keywords":["dead","skeleton","creepy","death"],"skins":[{"unified":"1f480","native":"💀","x":25,"y":9}],"version":1},"skull_and_crossbones":{"id":"skull_and_crossbones","name":"Skull and Crossbones","keywords":["poison","danger","deadly","scary","death","pirate","evil"],"skins":[{"unified":"2620-fe0f","native":"☠️","x":56,"y":56}],"version":1},"hankey":{"id":"hankey","name":"Pile of Poo","keywords":["hankey","poop","shit","shitface","fail","turd"],"skins":[{"unified":"1f4a9","native":"💩","x":27,"y":56}],"version":1},"clown_face":{"id":"clown_face","name":"Clown Face","keywords":[],"skins":[{"unified":"1f921","native":"🤡","x":40,"y":13}],"version":3},"japanese_ogre":{"id":"japanese_ogre","name":"Ogre","keywords":["japanese","monster","red","mask","halloween","scary","creepy","devil","demon"],"skins":[{"unified":"1f479","native":"👹","x":24,"y":58}],"version":1},"japanese_goblin":{"id":"japanese_goblin","name":"Goblin","keywords":["japanese","red","evil","mask","monster","scary","creepy"],"skins":[{"unified":"1f47a","native":"👺","x":24,"y":59}],"version":1},"ghost":{"id":"ghost","name":"Ghost","keywords":["halloween","spooky","scary"],"skins":[{"unified":"1f47b","native":"👻","x":24,"y":60}],"version":1},"alien":{"id":"alien","name":"Alien","keywords":["UFO","paul","weird","outer","space"],"skins":[{"unified":"1f47d","native":"👽","x":25,"y":6}],"version":1},"space_invader":{"id":"space_invader","name":"Alien Monster","keywords":["space","invader","game","arcade","play"],"skins":[{"unified":"1f47e","native":"👾","x":25,"y":7}],"version":1},"robot_face":{"id":"robot_face","name":"Robot","keywords":["face","computer","machine","bot"],"skins":[{"unified":"1f916","native":"🤖","x":39,"y":3}],"version":1},"smiley_cat":{"id":"smiley_cat","name":"Grinning Cat","keywords":["smiley","animal","cats","happy","smile"],"skins":[{"unified":"1f63a","native":"😺","x":33,"y":20}],"version":1},"smile_cat":{"id":"smile_cat","name":"Grinning Cat with Smiling Eyes","keywords":["smile","animal","cats"],"skins":[{"unified":"1f638","native":"😸","x":33,"y":18}],"version":1},"joy_cat":{"id":"joy_cat","name":"Cat with Tears of Joy","keywords":["animal","cats","haha","happy"],"skins":[{"unified":"1f639","native":"😹","x":33,"y":19}],"version":1},"heart_eyes_cat":{"id":"heart_eyes_cat","name":"Smiling Cat with Heart-Eyes","keywords":["heart","eyes","animal","love","like","affection","cats","valentines"],"skins":[{"unified":"1f63b","native":"😻","x":33,"y":21}],"version":1},"smirk_cat":{"id":"smirk_cat","name":"Cat with Wry Smile","keywords":["smirk","animal","cats"],"skins":[{"unified":"1f63c","native":"😼","x":33,"y":22}],"version":1},"kissing_cat":{"id":"kissing_cat","name":"Kissing Cat","keywords":["animal","cats","kiss"],"skins":[{"unified":"1f63d","native":"😽","x":33,"y":23}],"version":1},"scream_cat":{"id":"scream_cat","name":"Weary Cat","keywords":["scream","animal","cats","munch","scared"],"skins":[{"unified":"1f640","native":"🙀","x":33,"y":26}],"version":1},"crying_cat_face":{"id":"crying_cat_face","name":"Crying Cat","keywords":["face","animal","tears","weep","sad","cats","upset","cry"],"skins":[{"unified":"1f63f","native":"😿","x":33,"y":25}],"version":1},"pouting_cat":{"id":"pouting_cat","name":"Pouting Cat","keywords":["animal","cats"],"skins":[{"unified":"1f63e","native":"😾","x":33,"y":24}],"version":1},"see_no_evil":{"id":"see_no_evil","name":"See-No-Evil Monkey","keywords":["see","no","evil","animal","nature","haha"],"skins":[{"unified":"1f648","native":"🙈","x":34,"y":24}],"version":1},"hear_no_evil":{"id":"hear_no_evil","name":"Hear-No-Evil Monkey","keywords":["hear","no","evil","animal","nature"],"skins":[{"unified":"1f649","native":"🙉","x":34,"y":25}],"version":1},"speak_no_evil":{"id":"speak_no_evil","name":"Speak-No-Evil Monkey","keywords":["speak","no","evil","animal","nature","omg"],"skins":[{"unified":"1f64a","native":"🙊","x":34,"y":26}],"version":1},"kiss":{"id":"kiss","name":"Kiss Mark","keywords":["face","lips","love","like","affection","valentines"],"skins":[{"unified":"1f48b","native":"💋","x":26,"y":37}],"version":1},"love_letter":{"id":"love_letter","name":"Love Letter","keywords":["email","like","affection","envelope","valentines"],"skins":[{"unified":"1f48c","native":"💌","x":26,"y":38}],"version":1},"cupid":{"id":"cupid","name":"Heart with Arrow","keywords":["cupid","love","like","affection","valentines"],"skins":[{"unified":"1f498","native":"💘","x":27,"y":39}],"version":1},"gift_heart":{"id":"gift_heart","name":"Heart with Ribbon","keywords":["gift","love","valentines"],"skins":[{"unified":"1f49d","native":"💝","x":27,"y":44}],"version":1},"sparkling_heart":{"id":"sparkling_heart","name":"Sparkling Heart","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f496","native":"💖","x":27,"y":37}],"version":1},"heartpulse":{"id":"heartpulse","name":"Growing Heart","keywords":["heartpulse","like","love","affection","valentines","pink"],"skins":[{"unified":"1f497","native":"💗","x":27,"y":38}],"version":1},"heartbeat":{"id":"heartbeat","name":"Beating Heart","keywords":["heartbeat","love","like","affection","valentines","pink"],"skins":[{"unified":"1f493","native":"💓","x":27,"y":34}],"version":1},"revolving_hearts":{"id":"revolving_hearts","name":"Revolving Hearts","keywords":["love","like","affection","valentines"],"skins":[{"unified":"1f49e","native":"💞","x":27,"y":45}],"version":1},"two_hearts":{"id":"two_hearts","name":"Two Hearts","keywords":["love","like","affection","valentines","heart"],"skins":[{"unified":"1f495","native":"💕","x":27,"y":36}],"version":1},"heart_decoration":{"id":"heart_decoration","name":"Heart Decoration","keywords":["purple","square","love","like"],"skins":[{"unified":"1f49f","native":"💟","x":27,"y":46}],"version":1},"heavy_heart_exclamation_mark_ornament":{"id":"heavy_heart_exclamation_mark_ornament","name":"Heart Exclamation","keywords":["heavy","mark","ornament","decoration","love"],"skins":[{"unified":"2763-fe0f","native":"❣️","x":59,"y":7}],"version":1},"broken_heart":{"id":"broken_heart","name":"Broken Heart","emoticons":[" Date: Thu, 26 Jan 2023 09:27:51 +0300 Subject: [PATCH 7/7] feat: add tests for `Category` --- .../UserInterfaceState.xcuserstate | Bin 103711 -> 103947 bytes .../Pods/Pods.xcodeproj/project.pbxproj | 4 + .../EmojiPicker/Services/EmojiManager.swift | 2 +- .../ViewModel/EmojiPickerViewModel.swift | 4 +- Tests/EmojiPickerTests/CategoryTests.swift | 81 ++++++++++++++++++ 5 files changed, 87 insertions(+), 4 deletions(-) create mode 100644 Tests/EmojiPickerTests/CategoryTests.swift diff --git a/Example App/EmojiPicker.xcworkspace/xcuserdata/egbad.xcuserdatad/UserInterfaceState.xcuserstate b/Example App/EmojiPicker.xcworkspace/xcuserdata/egbad.xcuserdatad/UserInterfaceState.xcuserstate index 72b0d61c7bf40aaed96f2819746bd3ff53bc94b4..d0ff34bd85123ca8ed6c3c42d90129a472c87e6e 100644 GIT binary patch literal 103947 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%0D~BUTWCx}_Qp(3K);Q4-ssK7Z)pgErbNba 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 P@&Enx|NkBu+vk4)!tI9L literal 103711 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 Y4*u_t@UZ{=n0nd&e*FJGhjQoq7k@=n`v3p{ diff --git a/Example App/Pods/Pods.xcodeproj/project.pbxproj b/Example App/Pods/Pods.xcodeproj/project.pbxproj index 884f5c2..036781e 100644 --- a/Example App/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example App/Pods/Pods.xcodeproj/project.pbxproj @@ -41,6 +41,7 @@ D87D90972546DFB456AE2B38379D5E2C /* Pods-EmojiPicker_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 509EFFB149756F700CC3A368970476A6 /* Pods-EmojiPicker_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; E560B1C76BE6582D935CEEA610D0BABE /* EmojiSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B34CAF72D888BF33BA5EDC927AE0E87 /* EmojiSet.swift */; }; EF151333810F8817AF623BA30945E6AC /* 14.json in Resources */ = {isa = PBXBuildFile; fileRef = 97020F14B35520B0855FCDC0554A444F /* 14.json */; }; + F0D36B502981CE1B00FDC310 /* CategoryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0D36B4F2981CE1B00FDC310 /* CategoryTests.swift */; }; F1DCE6CFACDEE599EC225E7AA0E8C7EC /* Skin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 775CE6A22026D8062153BCD58A3D1533 /* Skin.swift */; }; F8389B295872C5B053DE3B3F645E03F1 /* 5.json in Resources */ = {isa = PBXBuildFile; fileRef = AD21E4F64085656007E1A4C49691E9D8 /* 5.json */; }; FC1F4288EDA3623A0789414458F75580 /* 13.1.json in Resources */ = {isa = PBXBuildFile; fileRef = F711D2A372CCCCC578D5E43DADD5E322 /* 13.1.json */; }; @@ -133,6 +134,7 @@ E9135CB45F85FC878C6CA5125B6F87A8 /* EmojiPickerDelegateMock.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EmojiPickerDelegateMock.swift; sourceTree = ""; }; ECC26C6F65D6AD027C546C4D2F9220D9 /* EmojiPicker.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = EmojiPicker.release.xcconfig; sourceTree = ""; }; EFB92181D9633CD27218C6E8E11B3A23 /* EmojiManagerTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EmojiManagerTests.swift; path = Tests/EmojiPickerTests/EmojiManagerTests.swift; sourceTree = ""; }; + F0D36B4F2981CE1B00FDC310 /* CategoryTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = CategoryTests.swift; path = Tests/EmojiPickerTests/CategoryTests.swift; sourceTree = ""; }; F37C787ED9137E9A17EBC07BC22F4A71 /* EmojiPicker-Unit-Tests-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EmojiPicker-Unit-Tests-prefix.pch"; sourceTree = ""; }; F4404D097107D0E5C3370ADA3A699D30 /* Localizable.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = Localizable.strings; path = hi.lproj/Localizable.strings; sourceTree = ""; }; F5383EAF33B429E1172FA71E03D5860B /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; @@ -248,6 +250,7 @@ 861C76504166FB072BAEA3516D6360D6 /* PickerArrowDirectionModeTests.swift */, 349E4F5DDF56A8630554DB3A39433086 /* Mocks */, 9B30C5736B4A622EA60A63185AE1626A /* Stubs */, + F0D36B4F2981CE1B00FDC310 /* CategoryTests.swift */, ); name = Tests; sourceTree = ""; @@ -684,6 +687,7 @@ buildActionMask = 2147483647; files = ( 35B0CCBF174A4446616EB3431FC29816 /* EmojiManagerStub.swift in Sources */, + F0D36B502981CE1B00FDC310 /* CategoryTests.swift in Sources */, C5594336011F4D3963933843C438BA28 /* EmojiManagerTests.swift in Sources */, B503EA01C769FC95992D9BE56FEF57D6 /* EmojiPickerDelegateMock.swift in Sources */, 52BBF2A68F33CDFCA0161984E1908957 /* EmojiPickerViewModelTests.swift in Sources */, diff --git a/Sources/EmojiPicker/Services/EmojiManager.swift b/Sources/EmojiPicker/Services/EmojiManager.swift index 7e75d1b..d1bbb00 100644 --- a/Sources/EmojiPicker/Services/EmojiManager.swift +++ b/Sources/EmojiPicker/Services/EmojiManager.swift @@ -35,7 +35,7 @@ protocol EmojiManagerProtocol { /// The class is responsible for getting a relevant set of emojis for iOS version. final class EmojiManager: EmojiManagerProtocol { - // MARK: - Private + // MARK: - Private Properties private let decoder = JSONDecoder() /// Version of emoji set. diff --git a/Sources/EmojiPicker/ViewModel/EmojiPickerViewModel.swift b/Sources/EmojiPicker/ViewModel/EmojiPickerViewModel.swift index e50cc38..1c5fa74 100644 --- a/Sources/EmojiPicker/ViewModel/EmojiPickerViewModel.swift +++ b/Sources/EmojiPicker/ViewModel/EmojiPickerViewModel.swift @@ -19,8 +19,6 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. -import Foundation - /// Protocol for a ViewModel which is being used in `EmojiPickerViewController`. protocol EmojiPickerViewModelProtocol { /// The observed variable that is responsible for the choice of emoji. @@ -70,7 +68,7 @@ final class EmojiPickerViewModel: EmojiPickerViewModelProtocol { func emoji(at indexPath: IndexPath) -> String { let name = emojiSet.categories[indexPath.section].emojis[indexPath.row] - return emojiSet.emojis[name]?.skins[0].native ?? "" + return emojiSet.emojis[name]?.skins[0].native ?? "❗️" } func sectionHeaderViewModel(for section: Int) -> String { diff --git a/Tests/EmojiPickerTests/CategoryTests.swift b/Tests/EmojiPickerTests/CategoryTests.swift new file mode 100644 index 0000000..f69f382 --- /dev/null +++ b/Tests/EmojiPickerTests/CategoryTests.swift @@ -0,0 +1,81 @@ +// +// CategoryTests.swift +// EmojiPicker-Unit-Tests +// +// Created by Егор Бадмаев on 25.01.2023. +// + +import XCTest +@testable import EmojiPicker + +class CategoryTests: XCTestCase { + + var category: EmojiPicker.Category! + + override func tearDownWithError() throws { + category = nil + } + + func test_decodeCategory_success() throws { + let result = try? JSONDecoder().decode(EmojiPicker.Category.self, from: category1) + + XCTAssertNotNil(result) + XCTAssertEqual(result?.emojis, ["grinning", "smiley", "smile"]) + } + + func test_decodeCategory_arraySuccess() throws { + let result = try? JSONDecoder().decode([EmojiPicker.Category].self, from: category3) + + XCTAssertNotNil(result) + XCTAssertEqual(result?.count, 2) + } + + func test_decodeCategory_wrongCodingKeys() throws { + let result = try? JSONDecoder().decode(EmojiPicker.Category.self, from: category2) + + XCTAssertNil(result) + } +} + +fileprivate let category1 = Data(""" +{ + "id": "people", + "emojis": [ + "grinning", + "smiley", + "smile", + ] +} +""".utf8) + +fileprivate let category2 = Data(""" +{ + "type": "people", + "emojis": [ + "grinning", + "smiley", + "smile", + ] +} +""".utf8) + +fileprivate let category3 = Data(""" +[ + { + "id": "people", + "emojis": [ + "grinning", + "smile", + "zzz" + ] + }, + { + "id": "nature", + "emojis": [ + "monkey", + "leaves", + "dog" + ] + } +] +""".utf8)