diff --git a/external/lang b/external/lang index 03347832..50570240 160000 --- a/external/lang +++ b/external/lang @@ -1 +1 @@ -Subproject commit 0334783257c0b1cd47ee9affdc1a0dddc127edf2 +Subproject commit 50570240bc09fc23794bb4452c1c0f35599b3219 diff --git a/package.json b/package.json index b1b5ddef..388e987f 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,7 @@ "sass": "^1.35.1", "styled-components": "^5.3.0", "typescript": "^4.3.2", - "vite": "^2.3.7" + "vite": "^2.3.7", + "vite-plugin-pwa": "^0.8.1" } } diff --git a/public/assets/app_icon.png b/public/assets/app_icon.png new file mode 100644 index 00000000..8cc3feb7 Binary files /dev/null and b/public/assets/app_icon.png differ diff --git a/public/assets/badges/developer.svg b/public/assets/badges/developer.svg new file mode 100644 index 00000000..34676d69 --- /dev/null +++ b/public/assets/badges/developer.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/assets/badges/early_adopter.svg b/public/assets/badges/early_adopter.svg new file mode 100644 index 00000000..0da734ea --- /dev/null +++ b/public/assets/badges/early_adopter.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/assets/badges/translator.svg b/public/assets/badges/translator.svg new file mode 100644 index 00000000..1e8df12f --- /dev/null +++ b/public/assets/badges/translator.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/assets/emojis.ts b/public/assets/emojis.ts new file mode 100644 index 00000000..33a777e3 --- /dev/null +++ b/public/assets/emojis.ts @@ -0,0 +1 @@ +export const emojiDictionary={"100":"๐Ÿ’ฏ","1234":"๐Ÿ”ข","grinning":"๐Ÿ˜€","smiley":"๐Ÿ˜ƒ","smile":"๐Ÿ˜„","grin":"๐Ÿ˜","laughing":"๐Ÿ˜†","satisfied":"๐Ÿ˜†","sweat_smile":"๐Ÿ˜…","rofl":"๐Ÿคฃ","joy":"๐Ÿ˜‚","slightly_smiling_face":"๐Ÿ™‚","upside_down_face":"๐Ÿ™ƒ","wink":"๐Ÿ˜‰","blush":"๐Ÿ˜Š","innocent":"๐Ÿ˜‡","smiling_face_with_three_hearts":"๐Ÿฅฐ","heart_eyes":"๐Ÿ˜","star_struck":"๐Ÿคฉ","kissing_heart":"๐Ÿ˜˜","kissing":"๐Ÿ˜—","relaxed":"โ˜บ๏ธ","kissing_closed_eyes":"๐Ÿ˜š","kissing_smiling_eyes":"๐Ÿ˜™","smiling_face_with_tear":"๐Ÿฅฒ","yum":"๐Ÿ˜‹","stuck_out_tongue":"๐Ÿ˜›","stuck_out_tongue_winking_eye":"๐Ÿ˜œ","zany_face":"๐Ÿคช","stuck_out_tongue_closed_eyes":"๐Ÿ˜","money_mouth_face":"๐Ÿค‘","hugs":"๐Ÿค—","hand_over_mouth":"๐Ÿคญ","shushing_face":"๐Ÿคซ","thinking":"๐Ÿค”","zipper_mouth_face":"๐Ÿค","raised_eyebrow":"๐Ÿคจ","neutral_face":"๐Ÿ˜","expressionless":"๐Ÿ˜‘","no_mouth":"๐Ÿ˜ถ","smirk":"๐Ÿ˜","unamused":"๐Ÿ˜’","roll_eyes":"๐Ÿ™„","grimacing":"๐Ÿ˜ฌ","lying_face":"๐Ÿคฅ","relieved":"๐Ÿ˜Œ","pensive":"๐Ÿ˜”","sleepy":"๐Ÿ˜ช","drooling_face":"๐Ÿคค","sleeping":"๐Ÿ˜ด","mask":"๐Ÿ˜ท","face_with_thermometer":"๐Ÿค’","face_with_head_bandage":"๐Ÿค•","nauseated_face":"๐Ÿคข","vomiting_face":"๐Ÿคฎ","sneezing_face":"๐Ÿคง","hot_face":"๐Ÿฅต","cold_face":"๐Ÿฅถ","woozy_face":"๐Ÿฅด","dizzy_face":"๐Ÿ˜ต","exploding_head":"๐Ÿคฏ","cowboy_hat_face":"๐Ÿค ","partying_face":"๐Ÿฅณ","disguised_face":"๐Ÿฅธ","sunglasses":"๐Ÿ˜Ž","nerd_face":"๐Ÿค“","monocle_face":"๐Ÿง","confused":"๐Ÿ˜•","worried":"๐Ÿ˜Ÿ","slightly_frowning_face":"๐Ÿ™","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":"๐Ÿ˜ก","pout":"๐Ÿ˜ก","angry":"๐Ÿ˜ ","cursing_face":"๐Ÿคฌ","smiling_imp":"๐Ÿ˜ˆ","imp":"๐Ÿ‘ฟ","skull":"๐Ÿ’€","skull_and_crossbones":"โ˜ ๏ธ","hankey":"๐Ÿ’ฉ","poop":"๐Ÿ’ฉ","shit":"๐Ÿ’ฉ","clown_face":"๐Ÿคก","japanese_ogre":"๐Ÿ‘น","japanese_goblin":"๐Ÿ‘บ","ghost":"๐Ÿ‘ป","alien":"๐Ÿ‘ฝ","space_invader":"๐Ÿ‘พ","robot":"๐Ÿค–","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":"โฃ๏ธ","broken_heart":"๐Ÿ’”","heart":"โค๏ธ","orange_heart":"๐Ÿงก","yellow_heart":"๐Ÿ’›","green_heart":"๐Ÿ’š","blue_heart":"๐Ÿ’™","purple_heart":"๐Ÿ’œ","brown_heart":"๐ŸคŽ","black_heart":"๐Ÿ–ค","white_heart":"๐Ÿค","anger":"๐Ÿ’ข","boom":"๐Ÿ’ฅ","collision":"๐Ÿ’ฅ","dizzy":"๐Ÿ’ซ","sweat_drops":"๐Ÿ’ฆ","dash":"๐Ÿ’จ","hole":"๐Ÿ•ณ๏ธ","bomb":"๐Ÿ’ฃ","speech_balloon":"๐Ÿ’ฌ","eye_speech_bubble":"๐Ÿ‘๏ธโ€๐Ÿ—จ๏ธ","left_speech_bubble":"๐Ÿ—จ๏ธ","right_anger_bubble":"๐Ÿ—ฏ๏ธ","thought_balloon":"๐Ÿ’ญ","zzz":"๐Ÿ’ค","wave":"๐Ÿ‘‹","raised_back_of_hand":"๐Ÿคš","raised_hand_with_fingers_splayed":"๐Ÿ–๏ธ","hand":"โœ‹","raised_hand":"โœ‹","vulcan_salute":"๐Ÿ––","ok_hand":"๐Ÿ‘Œ","pinched_fingers":"๐ŸคŒ","pinching_hand":"๐Ÿค","v":"โœŒ๏ธ","crossed_fingers":"๐Ÿคž","love_you_gesture":"๐ŸคŸ","metal":"๐Ÿค˜","call_me_hand":"๐Ÿค™","point_left":"๐Ÿ‘ˆ","point_right":"๐Ÿ‘‰","point_up_2":"๐Ÿ‘†","middle_finger":"๐Ÿ–•","fu":"๐Ÿ–•","point_down":"๐Ÿ‘‡","point_up":"โ˜๏ธ","+1":"๐Ÿ‘","thumbsup":"๐Ÿ‘","-1":"๐Ÿ‘Ž","thumbsdown":"๐Ÿ‘Ž","fist_raised":"โœŠ","fist":"โœŠ","fist_oncoming":"๐Ÿ‘Š","facepunch":"๐Ÿ‘Š","punch":"๐Ÿ‘Š","fist_left":"๐Ÿค›","fist_right":"๐Ÿคœ","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":"๐Ÿง ","anatomical_heart":"๐Ÿซ€","lungs":"๐Ÿซ","tooth":"๐Ÿฆท","bone":"๐Ÿฆด","eyes":"๐Ÿ‘€","eye":"๐Ÿ‘๏ธ","tongue":"๐Ÿ‘…","lips":"๐Ÿ‘„","baby":"๐Ÿ‘ถ","child":"๐Ÿง’","boy":"๐Ÿ‘ฆ","girl":"๐Ÿ‘ง","adult":"๐Ÿง‘","blond_haired_person":"๐Ÿ‘ฑ","man":"๐Ÿ‘จ","bearded_person":"๐Ÿง”","red_haired_man":"๐Ÿ‘จโ€๐Ÿฆฐ","curly_haired_man":"๐Ÿ‘จโ€๐Ÿฆฑ","white_haired_man":"๐Ÿ‘จโ€๐Ÿฆณ","bald_man":"๐Ÿ‘จโ€๐Ÿฆฒ","woman":"๐Ÿ‘ฉ","red_haired_woman":"๐Ÿ‘ฉโ€๐Ÿฆฐ","person_red_hair":"๐Ÿง‘โ€๐Ÿฆฐ","curly_haired_woman":"๐Ÿ‘ฉโ€๐Ÿฆฑ","person_curly_hair":"๐Ÿง‘โ€๐Ÿฆฑ","white_haired_woman":"๐Ÿ‘ฉโ€๐Ÿฆณ","person_white_hair":"๐Ÿง‘โ€๐Ÿฆณ","bald_woman":"๐Ÿ‘ฉโ€๐Ÿฆฒ","person_bald":"๐Ÿง‘โ€๐Ÿฆฒ","blond_haired_woman":"๐Ÿ‘ฑโ€โ™€๏ธ","blonde_woman":"๐Ÿ‘ฑโ€โ™€๏ธ","blond_haired_man":"๐Ÿ‘ฑโ€โ™‚๏ธ","older_adult":"๐Ÿง“","older_man":"๐Ÿ‘ด","older_woman":"๐Ÿ‘ต","frowning_person":"๐Ÿ™","frowning_man":"๐Ÿ™โ€โ™‚๏ธ","frowning_woman":"๐Ÿ™โ€โ™€๏ธ","pouting_face":"๐Ÿ™Ž","pouting_man":"๐Ÿ™Žโ€โ™‚๏ธ","pouting_woman":"๐Ÿ™Žโ€โ™€๏ธ","no_good":"๐Ÿ™…","no_good_man":"๐Ÿ™…โ€โ™‚๏ธ","ng_man":"๐Ÿ™…โ€โ™‚๏ธ","no_good_woman":"๐Ÿ™…โ€โ™€๏ธ","ng_woman":"๐Ÿ™…โ€โ™€๏ธ","ok_person":"๐Ÿ™†","ok_man":"๐Ÿ™†โ€โ™‚๏ธ","ok_woman":"๐Ÿ™†โ€โ™€๏ธ","tipping_hand_person":"๐Ÿ’","information_desk_person":"๐Ÿ’","tipping_hand_man":"๐Ÿ’โ€โ™‚๏ธ","sassy_man":"๐Ÿ’โ€โ™‚๏ธ","tipping_hand_woman":"๐Ÿ’โ€โ™€๏ธ","sassy_woman":"๐Ÿ’โ€โ™€๏ธ","raising_hand":"๐Ÿ™‹","raising_hand_man":"๐Ÿ™‹โ€โ™‚๏ธ","raising_hand_woman":"๐Ÿ™‹โ€โ™€๏ธ","deaf_person":"๐Ÿง","deaf_man":"๐Ÿงโ€โ™‚๏ธ","deaf_woman":"๐Ÿงโ€โ™€๏ธ","bow":"๐Ÿ™‡","bowing_man":"๐Ÿ™‡โ€โ™‚๏ธ","bowing_woman":"๐Ÿ™‡โ€โ™€๏ธ","facepalm":"๐Ÿคฆ","man_facepalming":"๐Ÿคฆโ€โ™‚๏ธ","woman_facepalming":"๐Ÿคฆโ€โ™€๏ธ","shrug":"๐Ÿคท","man_shrugging":"๐Ÿคทโ€โ™‚๏ธ","woman_shrugging":"๐Ÿคทโ€โ™€๏ธ","health_worker":"๐Ÿง‘โ€โš•๏ธ","man_health_worker":"๐Ÿ‘จโ€โš•๏ธ","woman_health_worker":"๐Ÿ‘ฉโ€โš•๏ธ","student":"๐Ÿง‘โ€๐ŸŽ“","man_student":"๐Ÿ‘จโ€๐ŸŽ“","woman_student":"๐Ÿ‘ฉโ€๐ŸŽ“","teacher":"๐Ÿง‘โ€๐Ÿซ","man_teacher":"๐Ÿ‘จโ€๐Ÿซ","woman_teacher":"๐Ÿ‘ฉโ€๐Ÿซ","judge":"๐Ÿง‘โ€โš–๏ธ","man_judge":"๐Ÿ‘จโ€โš–๏ธ","woman_judge":"๐Ÿ‘ฉโ€โš–๏ธ","farmer":"๐Ÿง‘โ€๐ŸŒพ","man_farmer":"๐Ÿ‘จโ€๐ŸŒพ","woman_farmer":"๐Ÿ‘ฉโ€๐ŸŒพ","cook":"๐Ÿง‘โ€๐Ÿณ","man_cook":"๐Ÿ‘จโ€๐Ÿณ","woman_cook":"๐Ÿ‘ฉโ€๐Ÿณ","mechanic":"๐Ÿง‘โ€๐Ÿ”ง","man_mechanic":"๐Ÿ‘จโ€๐Ÿ”ง","woman_mechanic":"๐Ÿ‘ฉโ€๐Ÿ”ง","factory_worker":"๐Ÿง‘โ€๐Ÿญ","man_factory_worker":"๐Ÿ‘จโ€๐Ÿญ","woman_factory_worker":"๐Ÿ‘ฉโ€๐Ÿญ","office_worker":"๐Ÿง‘โ€๐Ÿ’ผ","man_office_worker":"๐Ÿ‘จโ€๐Ÿ’ผ","woman_office_worker":"๐Ÿ‘ฉโ€๐Ÿ’ผ","scientist":"๐Ÿง‘โ€๐Ÿ”ฌ","man_scientist":"๐Ÿ‘จโ€๐Ÿ”ฌ","woman_scientist":"๐Ÿ‘ฉโ€๐Ÿ”ฌ","technologist":"๐Ÿง‘โ€๐Ÿ’ป","man_technologist":"๐Ÿ‘จโ€๐Ÿ’ป","woman_technologist":"๐Ÿ‘ฉโ€๐Ÿ’ป","singer":"๐Ÿง‘โ€๐ŸŽค","man_singer":"๐Ÿ‘จโ€๐ŸŽค","woman_singer":"๐Ÿ‘ฉโ€๐ŸŽค","artist":"๐Ÿง‘โ€๐ŸŽจ","man_artist":"๐Ÿ‘จโ€๐ŸŽจ","woman_artist":"๐Ÿ‘ฉโ€๐ŸŽจ","pilot":"๐Ÿง‘โ€โœˆ๏ธ","man_pilot":"๐Ÿ‘จโ€โœˆ๏ธ","woman_pilot":"๐Ÿ‘ฉโ€โœˆ๏ธ","astronaut":"๐Ÿง‘โ€๐Ÿš€","man_astronaut":"๐Ÿ‘จโ€๐Ÿš€","woman_astronaut":"๐Ÿ‘ฉโ€๐Ÿš€","firefighter":"๐Ÿง‘โ€๐Ÿš’","man_firefighter":"๐Ÿ‘จโ€๐Ÿš’","woman_firefighter":"๐Ÿ‘ฉโ€๐Ÿš’","police_officer":"๐Ÿ‘ฎ","cop":"๐Ÿ‘ฎ","policeman":"๐Ÿ‘ฎโ€โ™‚๏ธ","policewoman":"๐Ÿ‘ฎโ€โ™€๏ธ","detective":"๐Ÿ•ต๏ธ","male_detective":"๐Ÿ•ต๏ธโ€โ™‚๏ธ","female_detective":"๐Ÿ•ต๏ธโ€โ™€๏ธ","guard":"๐Ÿ’‚","guardsman":"๐Ÿ’‚โ€โ™‚๏ธ","guardswoman":"๐Ÿ’‚โ€โ™€๏ธ","ninja":"๐Ÿฅท","construction_worker":"๐Ÿ‘ท","construction_worker_man":"๐Ÿ‘ทโ€โ™‚๏ธ","construction_worker_woman":"๐Ÿ‘ทโ€โ™€๏ธ","prince":"๐Ÿคด","princess":"๐Ÿ‘ธ","person_with_turban":"๐Ÿ‘ณ","man_with_turban":"๐Ÿ‘ณโ€โ™‚๏ธ","woman_with_turban":"๐Ÿ‘ณโ€โ™€๏ธ","man_with_gua_pi_mao":"๐Ÿ‘ฒ","woman_with_headscarf":"๐Ÿง•","person_in_tuxedo":"๐Ÿคต","man_in_tuxedo":"๐Ÿคตโ€โ™‚๏ธ","woman_in_tuxedo":"๐Ÿคตโ€โ™€๏ธ","person_with_veil":"๐Ÿ‘ฐ","man_with_veil":"๐Ÿ‘ฐโ€โ™‚๏ธ","woman_with_veil":"๐Ÿ‘ฐโ€โ™€๏ธ","bride_with_veil":"๐Ÿ‘ฐโ€โ™€๏ธ","pregnant_woman":"๐Ÿคฐ","breast_feeding":"๐Ÿคฑ","woman_feeding_baby":"๐Ÿ‘ฉโ€๐Ÿผ","man_feeding_baby":"๐Ÿ‘จโ€๐Ÿผ","person_feeding_baby":"๐Ÿง‘โ€๐Ÿผ","angel":"๐Ÿ‘ผ","santa":"๐ŸŽ…","mrs_claus":"๐Ÿคถ","mx_claus":"๐Ÿง‘โ€๐ŸŽ„","superhero":"๐Ÿฆธ","superhero_man":"๐Ÿฆธโ€โ™‚๏ธ","superhero_woman":"๐Ÿฆธโ€โ™€๏ธ","supervillain":"๐Ÿฆน","supervillain_man":"๐Ÿฆนโ€โ™‚๏ธ","supervillain_woman":"๐Ÿฆนโ€โ™€๏ธ","mage":"๐Ÿง™","mage_man":"๐Ÿง™โ€โ™‚๏ธ","mage_woman":"๐Ÿง™โ€โ™€๏ธ","fairy":"๐Ÿงš","fairy_man":"๐Ÿงšโ€โ™‚๏ธ","fairy_woman":"๐Ÿงšโ€โ™€๏ธ","vampire":"๐Ÿง›","vampire_man":"๐Ÿง›โ€โ™‚๏ธ","vampire_woman":"๐Ÿง›โ€โ™€๏ธ","merperson":"๐Ÿงœ","merman":"๐Ÿงœโ€โ™‚๏ธ","mermaid":"๐Ÿงœโ€โ™€๏ธ","elf":"๐Ÿง","elf_man":"๐Ÿงโ€โ™‚๏ธ","elf_woman":"๐Ÿงโ€โ™€๏ธ","genie":"๐Ÿงž","genie_man":"๐Ÿงžโ€โ™‚๏ธ","genie_woman":"๐Ÿงžโ€โ™€๏ธ","zombie":"๐ŸงŸ","zombie_man":"๐ŸงŸโ€โ™‚๏ธ","zombie_woman":"๐ŸงŸโ€โ™€๏ธ","massage":"๐Ÿ’†","massage_man":"๐Ÿ’†โ€โ™‚๏ธ","massage_woman":"๐Ÿ’†โ€โ™€๏ธ","haircut":"๐Ÿ’‡","haircut_man":"๐Ÿ’‡โ€โ™‚๏ธ","haircut_woman":"๐Ÿ’‡โ€โ™€๏ธ","walking":"๐Ÿšถ","walking_man":"๐Ÿšถโ€โ™‚๏ธ","walking_woman":"๐Ÿšถโ€โ™€๏ธ","standing_person":"๐Ÿง","standing_man":"๐Ÿงโ€โ™‚๏ธ","standing_woman":"๐Ÿงโ€โ™€๏ธ","kneeling_person":"๐ŸงŽ","kneeling_man":"๐ŸงŽโ€โ™‚๏ธ","kneeling_woman":"๐ŸงŽโ€โ™€๏ธ","person_with_probing_cane":"๐Ÿง‘โ€๐Ÿฆฏ","man_with_probing_cane":"๐Ÿ‘จโ€๐Ÿฆฏ","woman_with_probing_cane":"๐Ÿ‘ฉโ€๐Ÿฆฏ","person_in_motorized_wheelchair":"๐Ÿง‘โ€๐Ÿฆผ","man_in_motorized_wheelchair":"๐Ÿ‘จโ€๐Ÿฆผ","woman_in_motorized_wheelchair":"๐Ÿ‘ฉโ€๐Ÿฆผ","person_in_manual_wheelchair":"๐Ÿง‘โ€๐Ÿฆฝ","man_in_manual_wheelchair":"๐Ÿ‘จโ€๐Ÿฆฝ","woman_in_manual_wheelchair":"๐Ÿ‘ฉโ€๐Ÿฆฝ","runner":"๐Ÿƒ","running":"๐Ÿƒ","running_man":"๐Ÿƒโ€โ™‚๏ธ","running_woman":"๐Ÿƒโ€โ™€๏ธ","woman_dancing":"๐Ÿ’ƒ","dancer":"๐Ÿ’ƒ","man_dancing":"๐Ÿ•บ","business_suit_levitating":"๐Ÿ•ด๏ธ","dancers":"๐Ÿ‘ฏ","dancing_men":"๐Ÿ‘ฏโ€โ™‚๏ธ","dancing_women":"๐Ÿ‘ฏโ€โ™€๏ธ","sauna_person":"๐Ÿง–","sauna_man":"๐Ÿง–โ€โ™‚๏ธ","sauna_woman":"๐Ÿง–โ€โ™€๏ธ","climbing":"๐Ÿง—","climbing_man":"๐Ÿง—โ€โ™‚๏ธ","climbing_woman":"๐Ÿง—โ€โ™€๏ธ","person_fencing":"๐Ÿคบ","horse_racing":"๐Ÿ‡","skier":"โ›ท๏ธ","snowboarder":"๐Ÿ‚","golfing":"๐ŸŒ๏ธ","golfing_man":"๐ŸŒ๏ธโ€โ™‚๏ธ","golfing_woman":"๐ŸŒ๏ธโ€โ™€๏ธ","surfer":"๐Ÿ„","surfing_man":"๐Ÿ„โ€โ™‚๏ธ","surfing_woman":"๐Ÿ„โ€โ™€๏ธ","rowboat":"๐Ÿšฃ","rowing_man":"๐Ÿšฃโ€โ™‚๏ธ","rowing_woman":"๐Ÿšฃโ€โ™€๏ธ","swimmer":"๐ŸŠ","swimming_man":"๐ŸŠโ€โ™‚๏ธ","swimming_woman":"๐ŸŠโ€โ™€๏ธ","bouncing_ball_person":"โ›น๏ธ","bouncing_ball_man":"โ›น๏ธโ€โ™‚๏ธ","basketball_man":"โ›น๏ธโ€โ™‚๏ธ","bouncing_ball_woman":"โ›น๏ธโ€โ™€๏ธ","basketball_woman":"โ›น๏ธโ€โ™€๏ธ","weight_lifting":"๐Ÿ‹๏ธ","weight_lifting_man":"๐Ÿ‹๏ธโ€โ™‚๏ธ","weight_lifting_woman":"๐Ÿ‹๏ธโ€โ™€๏ธ","bicyclist":"๐Ÿšด","biking_man":"๐Ÿšดโ€โ™‚๏ธ","biking_woman":"๐Ÿšดโ€โ™€๏ธ","mountain_bicyclist":"๐Ÿšต","mountain_biking_man":"๐Ÿšตโ€โ™‚๏ธ","mountain_biking_woman":"๐Ÿšตโ€โ™€๏ธ","cartwheeling":"๐Ÿคธ","man_cartwheeling":"๐Ÿคธโ€โ™‚๏ธ","woman_cartwheeling":"๐Ÿคธโ€โ™€๏ธ","wrestling":"๐Ÿคผ","men_wrestling":"๐Ÿคผโ€โ™‚๏ธ","women_wrestling":"๐Ÿคผโ€โ™€๏ธ","water_polo":"๐Ÿคฝ","man_playing_water_polo":"๐Ÿคฝโ€โ™‚๏ธ","woman_playing_water_polo":"๐Ÿคฝโ€โ™€๏ธ","handball_person":"๐Ÿคพ","man_playing_handball":"๐Ÿคพโ€โ™‚๏ธ","woman_playing_handball":"๐Ÿคพโ€โ™€๏ธ","juggling_person":"๐Ÿคน","man_juggling":"๐Ÿคนโ€โ™‚๏ธ","woman_juggling":"๐Ÿคนโ€โ™€๏ธ","lotus_position":"๐Ÿง˜","lotus_position_man":"๐Ÿง˜โ€โ™‚๏ธ","lotus_position_woman":"๐Ÿง˜โ€โ™€๏ธ","bath":"๐Ÿ›€","sleeping_bed":"๐Ÿ›Œ","people_holding_hands":"๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘","two_women_holding_hands":"๐Ÿ‘ญ","couple":"๐Ÿ‘ซ","two_men_holding_hands":"๐Ÿ‘ฌ","couplekiss":"๐Ÿ’","couplekiss_man_woman":"๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ","couplekiss_man_man":"๐Ÿ‘จโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ","couplekiss_woman_woman":"๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ","couple_with_heart":"๐Ÿ’‘","couple_with_heart_woman_man":"๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ‘จ","couple_with_heart_man_man":"๐Ÿ‘จโ€โค๏ธโ€๐Ÿ‘จ","couple_with_heart_woman_woman":"๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ‘ฉ","family":"๐Ÿ‘ช","family_man_woman_boy":"๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ","family_man_woman_girl":"๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง","family_man_woman_girl_boy":"๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ","family_man_woman_boy_boy":"๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ","family_man_woman_girl_girl":"๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง","family_man_man_boy":"๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆ","family_man_man_girl":"๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ง","family_man_man_girl_boy":"๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ","family_man_man_boy_boy":"๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ","family_man_man_girl_girl":"๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง","family_woman_woman_boy":"๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ","family_woman_woman_girl":"๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ง","family_woman_woman_girl_boy":"๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ","family_woman_woman_boy_boy":"๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ","family_woman_woman_girl_girl":"๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง","family_man_boy":"๐Ÿ‘จโ€๐Ÿ‘ฆ","family_man_boy_boy":"๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ","family_man_girl":"๐Ÿ‘จโ€๐Ÿ‘ง","family_man_girl_boy":"๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ","family_man_girl_girl":"๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง","family_woman_boy":"๐Ÿ‘ฉโ€๐Ÿ‘ฆ","family_woman_boy_boy":"๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ","family_woman_girl":"๐Ÿ‘ฉโ€๐Ÿ‘ง","family_woman_girl_boy":"๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ","family_woman_girl_girl":"๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง","speaking_head":"๐Ÿ—ฃ๏ธ","bust_in_silhouette":"๐Ÿ‘ค","busts_in_silhouette":"๐Ÿ‘ฅ","people_hugging":"๐Ÿซ‚","footprints":"๐Ÿ‘ฃ","monkey_face":"๐Ÿต","monkey":"๐Ÿ’","gorilla":"๐Ÿฆ","orangutan":"๐Ÿฆง","dog":"๐Ÿถ","dog2":"๐Ÿ•","guide_dog":"๐Ÿฆฎ","service_dog":"๐Ÿ•โ€๐Ÿฆบ","poodle":"๐Ÿฉ","wolf":"๐Ÿบ","fox_face":"๐ŸฆŠ","raccoon":"๐Ÿฆ","cat":"๐Ÿฑ","cat2":"๐Ÿˆ","black_cat":"๐Ÿˆโ€โฌ›","lion":"๐Ÿฆ","tiger":"๐Ÿฏ","tiger2":"๐Ÿ…","leopard":"๐Ÿ†","horse":"๐Ÿด","racehorse":"๐ŸŽ","unicorn":"๐Ÿฆ„","zebra":"๐Ÿฆ“","deer":"๐ŸฆŒ","bison":"๐Ÿฆฌ","cow":"๐Ÿฎ","ox":"๐Ÿ‚","water_buffalo":"๐Ÿƒ","cow2":"๐Ÿ„","pig":"๐Ÿท","pig2":"๐Ÿ–","boar":"๐Ÿ—","pig_nose":"๐Ÿฝ","ram":"๐Ÿ","sheep":"๐Ÿ‘","goat":"๐Ÿ","dromedary_camel":"๐Ÿช","camel":"๐Ÿซ","llama":"๐Ÿฆ™","giraffe":"๐Ÿฆ’","elephant":"๐Ÿ˜","mammoth":"๐Ÿฆฃ","rhinoceros":"๐Ÿฆ","hippopotamus":"๐Ÿฆ›","mouse":"๐Ÿญ","mouse2":"๐Ÿ","rat":"๐Ÿ€","hamster":"๐Ÿน","rabbit":"๐Ÿฐ","rabbit2":"๐Ÿ‡","chipmunk":"๐Ÿฟ๏ธ","beaver":"๐Ÿฆซ","hedgehog":"๐Ÿฆ”","bat":"๐Ÿฆ‡","bear":"๐Ÿป","polar_bear":"๐Ÿปโ€โ„๏ธ","koala":"๐Ÿจ","panda_face":"๐Ÿผ","sloth":"๐Ÿฆฅ","otter":"๐Ÿฆฆ","skunk":"๐Ÿฆจ","kangaroo":"๐Ÿฆ˜","badger":"๐Ÿฆก","feet":"๐Ÿพ","paw_prints":"๐Ÿพ","turkey":"๐Ÿฆƒ","chicken":"๐Ÿ”","rooster":"๐Ÿ“","hatching_chick":"๐Ÿฃ","baby_chick":"๐Ÿค","hatched_chick":"๐Ÿฅ","bird":"๐Ÿฆ","penguin":"๐Ÿง","dove":"๐Ÿ•Š๏ธ","eagle":"๐Ÿฆ…","duck":"๐Ÿฆ†","swan":"๐Ÿฆข","owl":"๐Ÿฆ‰","dodo":"๐Ÿฆค","feather":"๐Ÿชถ","flamingo":"๐Ÿฆฉ","peacock":"๐Ÿฆš","parrot":"๐Ÿฆœ","frog":"๐Ÿธ","crocodile":"๐ŸŠ","turtle":"๐Ÿข","lizard":"๐ŸฆŽ","snake":"๐Ÿ","dragon_face":"๐Ÿฒ","dragon":"๐Ÿ‰","sauropod":"๐Ÿฆ•","t-rex":"๐Ÿฆ–","whale":"๐Ÿณ","whale2":"๐Ÿ‹","dolphin":"๐Ÿฌ","flipper":"๐Ÿฌ","seal":"๐Ÿฆญ","fish":"๐ŸŸ","tropical_fish":"๐Ÿ ","blowfish":"๐Ÿก","shark":"๐Ÿฆˆ","octopus":"๐Ÿ™","shell":"๐Ÿš","snail":"๐ŸŒ","butterfly":"๐Ÿฆ‹","bug":"๐Ÿ›","ant":"๐Ÿœ","bee":"๐Ÿ","honeybee":"๐Ÿ","beetle":"๐Ÿชฒ","lady_beetle":"๐Ÿž","cricket":"๐Ÿฆ—","cockroach":"๐Ÿชณ","spider":"๐Ÿ•ท๏ธ","spider_web":"๐Ÿ•ธ๏ธ","scorpion":"๐Ÿฆ‚","mosquito":"๐ŸฆŸ","fly":"๐Ÿชฐ","worm":"๐Ÿชฑ","microbe":"๐Ÿฆ ","bouquet":"๐Ÿ’","cherry_blossom":"๐ŸŒธ","white_flower":"๐Ÿ’ฎ","rosette":"๐Ÿต๏ธ","rose":"๐ŸŒน","wilted_flower":"๐Ÿฅ€","hibiscus":"๐ŸŒบ","sunflower":"๐ŸŒป","blossom":"๐ŸŒผ","tulip":"๐ŸŒท","seedling":"๐ŸŒฑ","potted_plant":"๐Ÿชด","evergreen_tree":"๐ŸŒฒ","deciduous_tree":"๐ŸŒณ","palm_tree":"๐ŸŒด","cactus":"๐ŸŒต","ear_of_rice":"๐ŸŒพ","herb":"๐ŸŒฟ","shamrock":"โ˜˜๏ธ","four_leaf_clover":"๐Ÿ€","maple_leaf":"๐Ÿ","fallen_leaf":"๐Ÿ‚","leaves":"๐Ÿƒ","grapes":"๐Ÿ‡","melon":"๐Ÿˆ","watermelon":"๐Ÿ‰","tangerine":"๐ŸŠ","orange":"๐ŸŠ","mandarin":"๐ŸŠ","lemon":"๐Ÿ‹","banana":"๐ŸŒ","pineapple":"๐Ÿ","mango":"๐Ÿฅญ","apple":"๐ŸŽ","green_apple":"๐Ÿ","pear":"๐Ÿ","peach":"๐Ÿ‘","cherries":"๐Ÿ’","strawberry":"๐Ÿ“","blueberries":"๐Ÿซ","kiwi_fruit":"๐Ÿฅ","tomato":"๐Ÿ…","olive":"๐Ÿซ’","coconut":"๐Ÿฅฅ","avocado":"๐Ÿฅ‘","eggplant":"๐Ÿ†","potato":"๐Ÿฅ”","carrot":"๐Ÿฅ•","corn":"๐ŸŒฝ","hot_pepper":"๐ŸŒถ๏ธ","bell_pepper":"๐Ÿซ‘","cucumber":"๐Ÿฅ’","leafy_green":"๐Ÿฅฌ","broccoli":"๐Ÿฅฆ","garlic":"๐Ÿง„","onion":"๐Ÿง…","mushroom":"๐Ÿ„","peanuts":"๐Ÿฅœ","chestnut":"๐ŸŒฐ","bread":"๐Ÿž","croissant":"๐Ÿฅ","baguette_bread":"๐Ÿฅ–","flatbread":"๐Ÿซ“","pretzel":"๐Ÿฅจ","bagel":"๐Ÿฅฏ","pancakes":"๐Ÿฅž","waffle":"๐Ÿง‡","cheese":"๐Ÿง€","meat_on_bone":"๐Ÿ–","poultry_leg":"๐Ÿ—","cut_of_meat":"๐Ÿฅฉ","bacon":"๐Ÿฅ“","hamburger":"๐Ÿ”","fries":"๐ŸŸ","pizza":"๐Ÿ•","hotdog":"๐ŸŒญ","sandwich":"๐Ÿฅช","taco":"๐ŸŒฎ","burrito":"๐ŸŒฏ","tamale":"๐Ÿซ”","stuffed_flatbread":"๐Ÿฅ™","falafel":"๐Ÿง†","egg":"๐Ÿฅš","fried_egg":"๐Ÿณ","shallow_pan_of_food":"๐Ÿฅ˜","stew":"๐Ÿฒ","fondue":"๐Ÿซ•","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":"๐Ÿผ","milk_glass":"๐Ÿฅ›","coffee":"โ˜•","teapot":"๐Ÿซ–","tea":"๐Ÿต","sake":"๐Ÿถ","champagne":"๐Ÿพ","wine_glass":"๐Ÿท","cocktail":"๐Ÿธ","tropical_drink":"๐Ÿน","beer":"๐Ÿบ","beers":"๐Ÿป","clinking_glasses":"๐Ÿฅ‚","tumbler_glass":"๐Ÿฅƒ","cup_with_straw":"๐Ÿฅค","bubble_tea":"๐Ÿง‹","beverage_box":"๐Ÿงƒ","mate":"๐Ÿง‰","ice_cube":"๐ŸงŠ","chopsticks":"๐Ÿฅข","plate_with_cutlery":"๐Ÿฝ๏ธ","fork_and_knife":"๐Ÿด","spoon":"๐Ÿฅ„","hocho":"๐Ÿ”ช","knife":"๐Ÿ”ช","amphora":"๐Ÿบ","earth_africa":"๐ŸŒ","earth_americas":"๐ŸŒŽ","earth_asia":"๐ŸŒ","globe_with_meridians":"๐ŸŒ","world_map":"๐Ÿ—บ๏ธ","japan":"๐Ÿ—พ","compass":"๐Ÿงญ","mountain_snow":"๐Ÿ”๏ธ","mountain":"โ›ฐ๏ธ","volcano":"๐ŸŒ‹","mount_fuji":"๐Ÿ—ป","camping":"๐Ÿ•๏ธ","beach_umbrella":"๐Ÿ–๏ธ","desert":"๐Ÿœ๏ธ","desert_island":"๐Ÿ๏ธ","national_park":"๐Ÿž๏ธ","stadium":"๐ŸŸ๏ธ","classical_building":"๐Ÿ›๏ธ","building_construction":"๐Ÿ—๏ธ","bricks":"๐Ÿงฑ","rock":"๐Ÿชจ","wood":"๐Ÿชต","hut":"๐Ÿ›–","houses":"๐Ÿ˜๏ธ","derelict_house":"๐Ÿš๏ธ","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":"๐Ÿš—","red_car":"๐Ÿš—","oncoming_automobile":"๐Ÿš˜","blue_car":"๐Ÿš™","pickup_truck":"๐Ÿ›ป","truck":"๐Ÿšš","articulated_lorry":"๐Ÿš›","tractor":"๐Ÿšœ","racing_car":"๐ŸŽ๏ธ","motorcycle":"๐Ÿ๏ธ","motor_scooter":"๐Ÿ›ต","manual_wheelchair":"๐Ÿฆฝ","motorized_wheelchair":"๐Ÿฆผ","auto_rickshaw":"๐Ÿ›บ","bike":"๐Ÿšฒ","kick_scooter":"๐Ÿ›ด","skateboard":"๐Ÿ›น","roller_skate":"๐Ÿ›ผ","busstop":"๐Ÿš","motorway":"๐Ÿ›ฃ๏ธ","railway_track":"๐Ÿ›ค๏ธ","oil_drum":"๐Ÿ›ข๏ธ","fuelpump":"โ›ฝ","rotating_light":"๐Ÿšจ","traffic_light":"๐Ÿšฅ","vertical_traffic_light":"๐Ÿšฆ","stop_sign":"๐Ÿ›‘","construction":"๐Ÿšง","anchor":"โš“","boat":"โ›ต","sailboat":"โ›ต","canoe":"๐Ÿ›ถ","speedboat":"๐Ÿšค","passenger_ship":"๐Ÿ›ณ๏ธ","ferry":"โ›ด๏ธ","motor_boat":"๐Ÿ›ฅ๏ธ","ship":"๐Ÿšข","airplane":"โœˆ๏ธ","small_airplane":"๐Ÿ›ฉ๏ธ","flight_departure":"๐Ÿ›ซ","flight_arrival":"๐Ÿ›ฌ","parachute":"๐Ÿช‚","seat":"๐Ÿ’บ","helicopter":"๐Ÿš","suspension_railway":"๐ŸšŸ","mountain_cableway":"๐Ÿš ","aerial_tramway":"๐Ÿšก","artificial_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":"๐ŸŒ”","waxing_gibbous_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":"โ›…","cloud_with_lightning_and_rain":"โ›ˆ๏ธ","sun_behind_small_cloud":"๐ŸŒค๏ธ","sun_behind_large_cloud":"๐ŸŒฅ๏ธ","sun_behind_rain_cloud":"๐ŸŒฆ๏ธ","cloud_with_rain":"๐ŸŒง๏ธ","cloud_with_snow":"๐ŸŒจ๏ธ","cloud_with_lightning":"๐ŸŒฉ๏ธ","tornado":"๐ŸŒช๏ธ","fog":"๐ŸŒซ๏ธ","wind_face":"๐ŸŒฌ๏ธ","cyclone":"๐ŸŒ€","rainbow":"๐ŸŒˆ","closed_umbrella":"๐ŸŒ‚","open_umbrella":"โ˜‚๏ธ","umbrella":"โ˜”","parasol_on_ground":"โ›ฑ๏ธ","zap":"โšก","snowflake":"โ„๏ธ","snowman_with_snow":"โ˜ƒ๏ธ","snowman":"โ›„","comet":"โ˜„๏ธ","fire":"๐Ÿ”ฅ","droplet":"๐Ÿ’ง","ocean":"๐ŸŒŠ","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":"๐ŸŽ—๏ธ","tickets":"๐ŸŽŸ๏ธ","ticket":"๐ŸŽซ","medal_military":"๐ŸŽ–๏ธ","trophy":"๐Ÿ†","medal_sports":"๐Ÿ…","1st_place_medal":"๐Ÿฅ‡","2nd_place_medal":"๐Ÿฅˆ","3rd_place_medal":"๐Ÿฅ‰","soccer":"โšฝ","baseball":"โšพ","softball":"๐ŸฅŽ","basketball":"๐Ÿ€","volleyball":"๐Ÿ","football":"๐Ÿˆ","rugby_football":"๐Ÿ‰","tennis":"๐ŸŽพ","flying_disc":"๐Ÿฅ","bowling":"๐ŸŽณ","cricket_game":"๐Ÿ","field_hockey":"๐Ÿ‘","ice_hockey":"๐Ÿ’","lacrosse":"๐Ÿฅ","ping_pong":"๐Ÿ“","badminton":"๐Ÿธ","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":"๐Ÿ”ฎ","magic_wand":"๐Ÿช„","nazar_amulet":"๐Ÿงฟ","video_game":"๐ŸŽฎ","joystick":"๐Ÿ•น๏ธ","slot_machine":"๐ŸŽฐ","game_die":"๐ŸŽฒ","jigsaw":"๐Ÿงฉ","teddy_bear":"๐Ÿงธ","pinata":"๐Ÿช…","nesting_dolls":"๐Ÿช†","spades":"โ™ ๏ธ","hearts":"โ™ฅ๏ธ","diamonds":"โ™ฆ๏ธ","clubs":"โ™ฃ๏ธ","chess_pawn":"โ™Ÿ๏ธ","black_joker":"๐Ÿƒ","mahjong":"๐Ÿ€„","flower_playing_cards":"๐ŸŽด","performing_arts":"๐ŸŽญ","framed_picture":"๐Ÿ–ผ๏ธ","art":"๐ŸŽจ","thread":"๐Ÿงต","sewing_needle":"๐Ÿชก","yarn":"๐Ÿงถ","knot":"๐Ÿชข","eyeglasses":"๐Ÿ‘“","dark_sunglasses":"๐Ÿ•ถ๏ธ","goggles":"๐Ÿฅฝ","lab_coat":"๐Ÿฅผ","safety_vest":"๐Ÿฆบ","necktie":"๐Ÿ‘”","shirt":"๐Ÿ‘•","tshirt":"๐Ÿ‘•","jeans":"๐Ÿ‘–","scarf":"๐Ÿงฃ","gloves":"๐Ÿงค","coat":"๐Ÿงฅ","socks":"๐Ÿงฆ","dress":"๐Ÿ‘—","kimono":"๐Ÿ‘˜","sari":"๐Ÿฅป","one_piece_swimsuit":"๐Ÿฉฑ","swim_brief":"๐Ÿฉฒ","shorts":"๐Ÿฉณ","bikini":"๐Ÿ‘™","womans_clothes":"๐Ÿ‘š","purse":"๐Ÿ‘›","handbag":"๐Ÿ‘œ","pouch":"๐Ÿ‘","shopping":"๐Ÿ›๏ธ","school_satchel":"๐ŸŽ’","thong_sandal":"๐Ÿฉด","mans_shoe":"๐Ÿ‘ž","shoe":"๐Ÿ‘ž","athletic_shoe":"๐Ÿ‘Ÿ","hiking_boot":"๐Ÿฅพ","flat_shoe":"๐Ÿฅฟ","high_heel":"๐Ÿ‘ ","sandal":"๐Ÿ‘ก","ballet_shoes":"๐Ÿฉฐ","boot":"๐Ÿ‘ข","crown":"๐Ÿ‘‘","womans_hat":"๐Ÿ‘’","tophat":"๐ŸŽฉ","mortar_board":"๐ŸŽ“","billed_cap":"๐Ÿงข","military_helmet":"๐Ÿช–","rescue_worker_helmet":"โ›‘๏ธ","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":"๐ŸŽท","accordion":"๐Ÿช—","guitar":"๐ŸŽธ","musical_keyboard":"๐ŸŽน","trumpet":"๐ŸŽบ","violin":"๐ŸŽป","banjo":"๐Ÿช•","drum":"๐Ÿฅ","long_drum":"๐Ÿช˜","iphone":"๐Ÿ“ฑ","calling":"๐Ÿ“ฒ","phone":"โ˜Ž๏ธ","telephone":"โ˜Ž๏ธ","telephone_receiver":"๐Ÿ“ž","pager":"๐Ÿ“Ÿ","fax":"๐Ÿ“ ","battery":"๐Ÿ”‹","electric_plug":"๐Ÿ”Œ","computer":"๐Ÿ’ป","desktop_computer":"๐Ÿ–ฅ๏ธ","printer":"๐Ÿ–จ๏ธ","keyboard":"โŒจ๏ธ","computer_mouse":"๐Ÿ–ฑ๏ธ","trackball":"๐Ÿ–ฒ๏ธ","minidisc":"๐Ÿ’ฝ","floppy_disk":"๐Ÿ’พ","cd":"๐Ÿ’ฟ","dvd":"๐Ÿ“€","abacus":"๐Ÿงฎ","movie_camera":"๐ŸŽฅ","film_strip":"๐ŸŽž๏ธ","film_projector":"๐Ÿ“ฝ๏ธ","clapper":"๐ŸŽฌ","tv":"๐Ÿ“บ","camera":"๐Ÿ“ท","camera_flash":"๐Ÿ“ธ","video_camera":"๐Ÿ“น","vhs":"๐Ÿ“ผ","mag":"๐Ÿ”","mag_right":"๐Ÿ”Ž","candle":"๐Ÿ•ฏ๏ธ","bulb":"๐Ÿ’ก","flashlight":"๐Ÿ”ฆ","izakaya_lantern":"๐Ÿฎ","lantern":"๐Ÿฎ","diya_lamp":"๐Ÿช”","notebook_with_decorative_cover":"๐Ÿ“”","closed_book":"๐Ÿ“•","book":"๐Ÿ“–","open_book":"๐Ÿ“–","green_book":"๐Ÿ“—","blue_book":"๐Ÿ“˜","orange_book":"๐Ÿ“™","books":"๐Ÿ“š","notebook":"๐Ÿ““","ledger":"๐Ÿ“’","page_with_curl":"๐Ÿ“ƒ","scroll":"๐Ÿ“œ","page_facing_up":"๐Ÿ“„","newspaper":"๐Ÿ“ฐ","newspaper_roll":"๐Ÿ—ž๏ธ","bookmark_tabs":"๐Ÿ“‘","bookmark":"๐Ÿ”–","label":"๐Ÿท๏ธ","moneybag":"๐Ÿ’ฐ","coin":"๐Ÿช™","yen":"๐Ÿ’ด","dollar":"๐Ÿ’ต","euro":"๐Ÿ’ถ","pound":"๐Ÿ’ท","money_with_wings":"๐Ÿ’ธ","credit_card":"๐Ÿ’ณ","receipt":"๐Ÿงพ","chart":"๐Ÿ’น","envelope":"โœ‰๏ธ","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":"๐Ÿ—ณ๏ธ","pencil2":"โœ๏ธ","black_nib":"โœ’๏ธ","fountain_pen":"๐Ÿ–‹๏ธ","pen":"๐Ÿ–Š๏ธ","paintbrush":"๐Ÿ–Œ๏ธ","crayon":"๐Ÿ–๏ธ","memo":"๐Ÿ“","pencil":"๐Ÿ“","briefcase":"๐Ÿ’ผ","file_folder":"๐Ÿ“","open_file_folder":"๐Ÿ“‚","card_index_dividers":"๐Ÿ—‚๏ธ","date":"๐Ÿ“…","calendar":"๐Ÿ“†","spiral_notepad":"๐Ÿ—’๏ธ","spiral_calendar":"๐Ÿ—“๏ธ","card_index":"๐Ÿ“‡","chart_with_upwards_trend":"๐Ÿ“ˆ","chart_with_downwards_trend":"๐Ÿ“‰","bar_chart":"๐Ÿ“Š","clipboard":"๐Ÿ“‹","pushpin":"๐Ÿ“Œ","round_pushpin":"๐Ÿ“","paperclip":"๐Ÿ“Ž","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":"๐Ÿ—ก๏ธ","crossed_swords":"โš”๏ธ","gun":"๐Ÿ”ซ","boomerang":"๐Ÿชƒ","bow_and_arrow":"๐Ÿน","shield":"๐Ÿ›ก๏ธ","carpentry_saw":"๐Ÿชš","wrench":"๐Ÿ”ง","screwdriver":"๐Ÿช›","nut_and_bolt":"๐Ÿ”ฉ","gear":"โš™๏ธ","clamp":"๐Ÿ—œ๏ธ","balance_scale":"โš–๏ธ","probing_cane":"๐Ÿฆฏ","link":"๐Ÿ”—","chains":"โ›“๏ธ","hook":"๐Ÿช","toolbox":"๐Ÿงฐ","magnet":"๐Ÿงฒ","ladder":"๐Ÿชœ","alembic":"โš—๏ธ","test_tube":"๐Ÿงช","petri_dish":"๐Ÿงซ","dna":"๐Ÿงฌ","microscope":"๐Ÿ”ฌ","telescope":"๐Ÿ”ญ","satellite":"๐Ÿ“ก","syringe":"๐Ÿ’‰","drop_of_blood":"๐Ÿฉธ","pill":"๐Ÿ’Š","adhesive_bandage":"๐Ÿฉน","stethoscope":"๐Ÿฉบ","door":"๐Ÿšช","elevator":"๐Ÿ›—","mirror":"๐Ÿชž","window":"๐ŸชŸ","bed":"๐Ÿ›๏ธ","couch_and_lamp":"๐Ÿ›‹๏ธ","chair":"๐Ÿช‘","toilet":"๐Ÿšฝ","plunger":"๐Ÿช ","shower":"๐Ÿšฟ","bathtub":"๐Ÿ›","mouse_trap":"๐Ÿชค","razor":"๐Ÿช’","lotion_bottle":"๐Ÿงด","safety_pin":"๐Ÿงท","broom":"๐Ÿงน","basket":"๐Ÿงบ","roll_of_paper":"๐Ÿงป","bucket":"๐Ÿชฃ","soap":"๐Ÿงผ","toothbrush":"๐Ÿชฅ","sponge":"๐Ÿงฝ","fire_extinguisher":"๐Ÿงฏ","shopping_cart":"๐Ÿ›’","smoking":"๐Ÿšฌ","coffin":"โšฐ๏ธ","headstone":"๐Ÿชฆ","funeral_urn":"โšฑ๏ธ","moyai":"๐Ÿ—ฟ","placard":"๐Ÿชง","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":"โ˜ข๏ธ","biohazard":"โ˜ฃ๏ธ","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":"๐Ÿ•‰๏ธ","star_of_david":"โœก๏ธ","wheel_of_dharma":"โ˜ธ๏ธ","yin_yang":"โ˜ฏ๏ธ","latin_cross":"โœ๏ธ","orthodox_cross":"โ˜ฆ๏ธ","star_and_crescent":"โ˜ช๏ธ","peace_symbol":"โ˜ฎ๏ธ","menorah":"๐Ÿ•Ž","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":"โฉ","next_track_button":"โญ๏ธ","play_or_pause_button":"โฏ๏ธ","arrow_backward":"โ—€๏ธ","rewind":"โช","previous_track_button":"โฎ๏ธ","arrow_up_small":"๐Ÿ”ผ","arrow_double_up":"โซ","arrow_down_small":"๐Ÿ”ฝ","arrow_double_down":"โฌ","pause_button":"โธ๏ธ","stop_button":"โน๏ธ","record_button":"โบ๏ธ","eject_button":"โ๏ธ","cinema":"๐ŸŽฆ","low_brightness":"๐Ÿ”…","high_brightness":"๐Ÿ”†","signal_strength":"๐Ÿ“ถ","vibration_mode":"๐Ÿ“ณ","mobile_phone_off":"๐Ÿ“ด","female_sign":"โ™€๏ธ","male_sign":"โ™‚๏ธ","transgender_symbol":"โšง๏ธ","heavy_multiplication_x":"โœ–๏ธ","heavy_plus_sign":"โž•","heavy_minus_sign":"โž–","heavy_division_sign":"โž—","infinity":"โ™พ๏ธ","bangbang":"โ€ผ๏ธ","interrobang":"โ‰๏ธ","question":"โ“","grey_question":"โ”","grey_exclamation":"โ•","exclamation":"โ—","heavy_exclamation_mark":"โ—","wavy_dash":"ใ€ฐ๏ธ","currency_exchange":"๐Ÿ’ฑ","heavy_dollar_sign":"๐Ÿ’ฒ","medical_symbol":"โš•๏ธ","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":"#๏ธโƒฃ","asterisk":"*๏ธโƒฃ","zero":"0๏ธโƒฃ","one":"1๏ธโƒฃ","two":"2๏ธโƒฃ","three":"3๏ธโƒฃ","four":"4๏ธโƒฃ","five":"5๏ธโƒฃ","six":"6๏ธโƒฃ","seven":"7๏ธโƒฃ","eight":"8๏ธโƒฃ","nine":"9๏ธโƒฃ","keycap_ten":"๐Ÿ”Ÿ","capital_abcd":"๐Ÿ” ","abcd":"๐Ÿ”ก","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":"๐Ÿ”ด","orange_circle":"๐ŸŸ ","yellow_circle":"๐ŸŸก","green_circle":"๐ŸŸข","large_blue_circle":"๐Ÿ”ต","purple_circle":"๐ŸŸฃ","brown_circle":"๐ŸŸค","black_circle":"โšซ","white_circle":"โšช","red_square":"๐ŸŸฅ","orange_square":"๐ŸŸง","yellow_square":"๐ŸŸจ","green_square":"๐ŸŸฉ","blue_square":"๐ŸŸฆ","purple_square":"๐ŸŸช","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":"๐Ÿ”ฒ","checkered_flag":"๐Ÿ","triangular_flag_on_post":"๐Ÿšฉ","crossed_flags":"๐ŸŽŒ","black_flag":"๐Ÿด","white_flag":"๐Ÿณ๏ธ","rainbow_flag":"๐Ÿณ๏ธโ€๐ŸŒˆ","transgender_flag":"๐Ÿณ๏ธโ€โšง๏ธ","pirate_flag":"๐Ÿดโ€โ˜ ๏ธ","ascension_island":"๐Ÿ‡ฆ๐Ÿ‡จ","andorra":"๐Ÿ‡ฆ๐Ÿ‡ฉ","united_arab_emirates":"๐Ÿ‡ฆ๐Ÿ‡ช","afghanistan":"๐Ÿ‡ฆ๐Ÿ‡ซ","antigua_barbuda":"๐Ÿ‡ฆ๐Ÿ‡ฌ","anguilla":"๐Ÿ‡ฆ๐Ÿ‡ฎ","albania":"๐Ÿ‡ฆ๐Ÿ‡ฑ","armenia":"๐Ÿ‡ฆ๐Ÿ‡ฒ","angola":"๐Ÿ‡ฆ๐Ÿ‡ด","antarctica":"๐Ÿ‡ฆ๐Ÿ‡ถ","argentina":"๐Ÿ‡ฆ๐Ÿ‡ท","american_samoa":"๐Ÿ‡ฆ๐Ÿ‡ธ","austria":"๐Ÿ‡ฆ๐Ÿ‡น","australia":"๐Ÿ‡ฆ๐Ÿ‡บ","aruba":"๐Ÿ‡ฆ๐Ÿ‡ผ","aland_islands":"๐Ÿ‡ฆ๐Ÿ‡ฝ","azerbaijan":"๐Ÿ‡ฆ๐Ÿ‡ฟ","bosnia_herzegovina":"๐Ÿ‡ง๐Ÿ‡ฆ","barbados":"๐Ÿ‡ง๐Ÿ‡ง","bangladesh":"๐Ÿ‡ง๐Ÿ‡ฉ","belgium":"๐Ÿ‡ง๐Ÿ‡ช","burkina_faso":"๐Ÿ‡ง๐Ÿ‡ซ","bulgaria":"๐Ÿ‡ง๐Ÿ‡ฌ","bahrain":"๐Ÿ‡ง๐Ÿ‡ญ","burundi":"๐Ÿ‡ง๐Ÿ‡ฎ","benin":"๐Ÿ‡ง๐Ÿ‡ฏ","st_barthelemy":"๐Ÿ‡ง๐Ÿ‡ฑ","bermuda":"๐Ÿ‡ง๐Ÿ‡ฒ","brunei":"๐Ÿ‡ง๐Ÿ‡ณ","bolivia":"๐Ÿ‡ง๐Ÿ‡ด","caribbean_netherlands":"๐Ÿ‡ง๐Ÿ‡ถ","brazil":"๐Ÿ‡ง๐Ÿ‡ท","bahamas":"๐Ÿ‡ง๐Ÿ‡ธ","bhutan":"๐Ÿ‡ง๐Ÿ‡น","bouvet_island":"๐Ÿ‡ง๐Ÿ‡ป","botswana":"๐Ÿ‡ง๐Ÿ‡ผ","belarus":"๐Ÿ‡ง๐Ÿ‡พ","belize":"๐Ÿ‡ง๐Ÿ‡ฟ","canada":"๐Ÿ‡จ๐Ÿ‡ฆ","cocos_islands":"๐Ÿ‡จ๐Ÿ‡จ","congo_kinshasa":"๐Ÿ‡จ๐Ÿ‡ฉ","central_african_republic":"๐Ÿ‡จ๐Ÿ‡ซ","congo_brazzaville":"๐Ÿ‡จ๐Ÿ‡ฌ","switzerland":"๐Ÿ‡จ๐Ÿ‡ญ","cote_divoire":"๐Ÿ‡จ๐Ÿ‡ฎ","cook_islands":"๐Ÿ‡จ๐Ÿ‡ฐ","chile":"๐Ÿ‡จ๐Ÿ‡ฑ","cameroon":"๐Ÿ‡จ๐Ÿ‡ฒ","cn":"๐Ÿ‡จ๐Ÿ‡ณ","colombia":"๐Ÿ‡จ๐Ÿ‡ด","clipperton_island":"๐Ÿ‡จ๐Ÿ‡ต","costa_rica":"๐Ÿ‡จ๐Ÿ‡ท","cuba":"๐Ÿ‡จ๐Ÿ‡บ","cape_verde":"๐Ÿ‡จ๐Ÿ‡ป","curacao":"๐Ÿ‡จ๐Ÿ‡ผ","christmas_island":"๐Ÿ‡จ๐Ÿ‡ฝ","cyprus":"๐Ÿ‡จ๐Ÿ‡พ","czech_republic":"๐Ÿ‡จ๐Ÿ‡ฟ","de":"๐Ÿ‡ฉ๐Ÿ‡ช","diego_garcia":"๐Ÿ‡ฉ๐Ÿ‡ฌ","djibouti":"๐Ÿ‡ฉ๐Ÿ‡ฏ","denmark":"๐Ÿ‡ฉ๐Ÿ‡ฐ","dominica":"๐Ÿ‡ฉ๐Ÿ‡ฒ","dominican_republic":"๐Ÿ‡ฉ๐Ÿ‡ด","algeria":"๐Ÿ‡ฉ๐Ÿ‡ฟ","ceuta_melilla":"๐Ÿ‡ช๐Ÿ‡ฆ","ecuador":"๐Ÿ‡ช๐Ÿ‡จ","estonia":"๐Ÿ‡ช๐Ÿ‡ช","egypt":"๐Ÿ‡ช๐Ÿ‡ฌ","western_sahara":"๐Ÿ‡ช๐Ÿ‡ญ","eritrea":"๐Ÿ‡ช๐Ÿ‡ท","es":"๐Ÿ‡ช๐Ÿ‡ธ","ethiopia":"๐Ÿ‡ช๐Ÿ‡น","eu":"๐Ÿ‡ช๐Ÿ‡บ","european_union":"๐Ÿ‡ช๐Ÿ‡บ","finland":"๐Ÿ‡ซ๐Ÿ‡ฎ","fiji":"๐Ÿ‡ซ๐Ÿ‡ฏ","falkland_islands":"๐Ÿ‡ซ๐Ÿ‡ฐ","micronesia":"๐Ÿ‡ซ๐Ÿ‡ฒ","faroe_islands":"๐Ÿ‡ซ๐Ÿ‡ด","fr":"๐Ÿ‡ซ๐Ÿ‡ท","gabon":"๐Ÿ‡ฌ๐Ÿ‡ฆ","gb":"๐Ÿ‡ฌ๐Ÿ‡ง","uk":"๐Ÿ‡ฌ๐Ÿ‡ง","grenada":"๐Ÿ‡ฌ๐Ÿ‡ฉ","georgia":"๐Ÿ‡ฌ๐Ÿ‡ช","french_guiana":"๐Ÿ‡ฌ๐Ÿ‡ซ","guernsey":"๐Ÿ‡ฌ๐Ÿ‡ฌ","ghana":"๐Ÿ‡ฌ๐Ÿ‡ญ","gibraltar":"๐Ÿ‡ฌ๐Ÿ‡ฎ","greenland":"๐Ÿ‡ฌ๐Ÿ‡ฑ","gambia":"๐Ÿ‡ฌ๐Ÿ‡ฒ","guinea":"๐Ÿ‡ฌ๐Ÿ‡ณ","guadeloupe":"๐Ÿ‡ฌ๐Ÿ‡ต","equatorial_guinea":"๐Ÿ‡ฌ๐Ÿ‡ถ","greece":"๐Ÿ‡ฌ๐Ÿ‡ท","south_georgia_south_sandwich_islands":"๐Ÿ‡ฌ๐Ÿ‡ธ","guatemala":"๐Ÿ‡ฌ๐Ÿ‡น","guam":"๐Ÿ‡ฌ๐Ÿ‡บ","guinea_bissau":"๐Ÿ‡ฌ๐Ÿ‡ผ","guyana":"๐Ÿ‡ฌ๐Ÿ‡พ","hong_kong":"๐Ÿ‡ญ๐Ÿ‡ฐ","heard_mcdonald_islands":"๐Ÿ‡ญ๐Ÿ‡ฒ","honduras":"๐Ÿ‡ญ๐Ÿ‡ณ","croatia":"๐Ÿ‡ญ๐Ÿ‡ท","haiti":"๐Ÿ‡ญ๐Ÿ‡น","hungary":"๐Ÿ‡ญ๐Ÿ‡บ","canary_islands":"๐Ÿ‡ฎ๐Ÿ‡จ","indonesia":"๐Ÿ‡ฎ๐Ÿ‡ฉ","ireland":"๐Ÿ‡ฎ๐Ÿ‡ช","israel":"๐Ÿ‡ฎ๐Ÿ‡ฑ","isle_of_man":"๐Ÿ‡ฎ๐Ÿ‡ฒ","india":"๐Ÿ‡ฎ๐Ÿ‡ณ","british_indian_ocean_territory":"๐Ÿ‡ฎ๐Ÿ‡ด","iraq":"๐Ÿ‡ฎ๐Ÿ‡ถ","iran":"๐Ÿ‡ฎ๐Ÿ‡ท","iceland":"๐Ÿ‡ฎ๐Ÿ‡ธ","it":"๐Ÿ‡ฎ๐Ÿ‡น","jersey":"๐Ÿ‡ฏ๐Ÿ‡ช","jamaica":"๐Ÿ‡ฏ๐Ÿ‡ฒ","jordan":"๐Ÿ‡ฏ๐Ÿ‡ด","jp":"๐Ÿ‡ฏ๐Ÿ‡ต","kenya":"๐Ÿ‡ฐ๐Ÿ‡ช","kyrgyzstan":"๐Ÿ‡ฐ๐Ÿ‡ฌ","cambodia":"๐Ÿ‡ฐ๐Ÿ‡ญ","kiribati":"๐Ÿ‡ฐ๐Ÿ‡ฎ","comoros":"๐Ÿ‡ฐ๐Ÿ‡ฒ","st_kitts_nevis":"๐Ÿ‡ฐ๐Ÿ‡ณ","north_korea":"๐Ÿ‡ฐ๐Ÿ‡ต","kr":"๐Ÿ‡ฐ๐Ÿ‡ท","kuwait":"๐Ÿ‡ฐ๐Ÿ‡ผ","cayman_islands":"๐Ÿ‡ฐ๐Ÿ‡พ","kazakhstan":"๐Ÿ‡ฐ๐Ÿ‡ฟ","laos":"๐Ÿ‡ฑ๐Ÿ‡ฆ","lebanon":"๐Ÿ‡ฑ๐Ÿ‡ง","st_lucia":"๐Ÿ‡ฑ๐Ÿ‡จ","liechtenstein":"๐Ÿ‡ฑ๐Ÿ‡ฎ","sri_lanka":"๐Ÿ‡ฑ๐Ÿ‡ฐ","liberia":"๐Ÿ‡ฑ๐Ÿ‡ท","lesotho":"๐Ÿ‡ฑ๐Ÿ‡ธ","lithuania":"๐Ÿ‡ฑ๐Ÿ‡น","luxembourg":"๐Ÿ‡ฑ๐Ÿ‡บ","latvia":"๐Ÿ‡ฑ๐Ÿ‡ป","libya":"๐Ÿ‡ฑ๐Ÿ‡พ","morocco":"๐Ÿ‡ฒ๐Ÿ‡ฆ","monaco":"๐Ÿ‡ฒ๐Ÿ‡จ","moldova":"๐Ÿ‡ฒ๐Ÿ‡ฉ","montenegro":"๐Ÿ‡ฒ๐Ÿ‡ช","st_martin":"๐Ÿ‡ฒ๐Ÿ‡ซ","madagascar":"๐Ÿ‡ฒ๐Ÿ‡ฌ","marshall_islands":"๐Ÿ‡ฒ๐Ÿ‡ญ","macedonia":"๐Ÿ‡ฒ๐Ÿ‡ฐ","mali":"๐Ÿ‡ฒ๐Ÿ‡ฑ","myanmar":"๐Ÿ‡ฒ๐Ÿ‡ฒ","mongolia":"๐Ÿ‡ฒ๐Ÿ‡ณ","macau":"๐Ÿ‡ฒ๐Ÿ‡ด","northern_mariana_islands":"๐Ÿ‡ฒ๐Ÿ‡ต","martinique":"๐Ÿ‡ฒ๐Ÿ‡ถ","mauritania":"๐Ÿ‡ฒ๐Ÿ‡ท","montserrat":"๐Ÿ‡ฒ๐Ÿ‡ธ","malta":"๐Ÿ‡ฒ๐Ÿ‡น","mauritius":"๐Ÿ‡ฒ๐Ÿ‡บ","maldives":"๐Ÿ‡ฒ๐Ÿ‡ป","malawi":"๐Ÿ‡ฒ๐Ÿ‡ผ","mexico":"๐Ÿ‡ฒ๐Ÿ‡ฝ","malaysia":"๐Ÿ‡ฒ๐Ÿ‡พ","mozambique":"๐Ÿ‡ฒ๐Ÿ‡ฟ","namibia":"๐Ÿ‡ณ๐Ÿ‡ฆ","new_caledonia":"๐Ÿ‡ณ๐Ÿ‡จ","niger":"๐Ÿ‡ณ๐Ÿ‡ช","norfolk_island":"๐Ÿ‡ณ๐Ÿ‡ซ","nigeria":"๐Ÿ‡ณ๐Ÿ‡ฌ","nicaragua":"๐Ÿ‡ณ๐Ÿ‡ฎ","netherlands":"๐Ÿ‡ณ๐Ÿ‡ฑ","norway":"๐Ÿ‡ณ๐Ÿ‡ด","nepal":"๐Ÿ‡ณ๐Ÿ‡ต","nauru":"๐Ÿ‡ณ๐Ÿ‡ท","niue":"๐Ÿ‡ณ๐Ÿ‡บ","new_zealand":"๐Ÿ‡ณ๐Ÿ‡ฟ","oman":"๐Ÿ‡ด๐Ÿ‡ฒ","panama":"๐Ÿ‡ต๐Ÿ‡ฆ","peru":"๐Ÿ‡ต๐Ÿ‡ช","french_polynesia":"๐Ÿ‡ต๐Ÿ‡ซ","papua_new_guinea":"๐Ÿ‡ต๐Ÿ‡ฌ","philippines":"๐Ÿ‡ต๐Ÿ‡ญ","pakistan":"๐Ÿ‡ต๐Ÿ‡ฐ","poland":"๐Ÿ‡ต๐Ÿ‡ฑ","st_pierre_miquelon":"๐Ÿ‡ต๐Ÿ‡ฒ","pitcairn_islands":"๐Ÿ‡ต๐Ÿ‡ณ","puerto_rico":"๐Ÿ‡ต๐Ÿ‡ท","palestinian_territories":"๐Ÿ‡ต๐Ÿ‡ธ","portugal":"๐Ÿ‡ต๐Ÿ‡น","palau":"๐Ÿ‡ต๐Ÿ‡ผ","paraguay":"๐Ÿ‡ต๐Ÿ‡พ","qatar":"๐Ÿ‡ถ๐Ÿ‡ฆ","reunion":"๐Ÿ‡ท๐Ÿ‡ช","romania":"๐Ÿ‡ท๐Ÿ‡ด","serbia":"๐Ÿ‡ท๐Ÿ‡ธ","ru":"๐Ÿ‡ท๐Ÿ‡บ","rwanda":"๐Ÿ‡ท๐Ÿ‡ผ","saudi_arabia":"๐Ÿ‡ธ๐Ÿ‡ฆ","solomon_islands":"๐Ÿ‡ธ๐Ÿ‡ง","seychelles":"๐Ÿ‡ธ๐Ÿ‡จ","sudan":"๐Ÿ‡ธ๐Ÿ‡ฉ","sweden":"๐Ÿ‡ธ๐Ÿ‡ช","singapore":"๐Ÿ‡ธ๐Ÿ‡ฌ","st_helena":"๐Ÿ‡ธ๐Ÿ‡ญ","slovenia":"๐Ÿ‡ธ๐Ÿ‡ฎ","svalbard_jan_mayen":"๐Ÿ‡ธ๐Ÿ‡ฏ","slovakia":"๐Ÿ‡ธ๐Ÿ‡ฐ","sierra_leone":"๐Ÿ‡ธ๐Ÿ‡ฑ","san_marino":"๐Ÿ‡ธ๐Ÿ‡ฒ","senegal":"๐Ÿ‡ธ๐Ÿ‡ณ","somalia":"๐Ÿ‡ธ๐Ÿ‡ด","suriname":"๐Ÿ‡ธ๐Ÿ‡ท","south_sudan":"๐Ÿ‡ธ๐Ÿ‡ธ","sao_tome_principe":"๐Ÿ‡ธ๐Ÿ‡น","el_salvador":"๐Ÿ‡ธ๐Ÿ‡ป","sint_maarten":"๐Ÿ‡ธ๐Ÿ‡ฝ","syria":"๐Ÿ‡ธ๐Ÿ‡พ","swaziland":"๐Ÿ‡ธ๐Ÿ‡ฟ","tristan_da_cunha":"๐Ÿ‡น๐Ÿ‡ฆ","turks_caicos_islands":"๐Ÿ‡น๐Ÿ‡จ","chad":"๐Ÿ‡น๐Ÿ‡ฉ","french_southern_territories":"๐Ÿ‡น๐Ÿ‡ซ","togo":"๐Ÿ‡น๐Ÿ‡ฌ","thailand":"๐Ÿ‡น๐Ÿ‡ญ","tajikistan":"๐Ÿ‡น๐Ÿ‡ฏ","tokelau":"๐Ÿ‡น๐Ÿ‡ฐ","timor_leste":"๐Ÿ‡น๐Ÿ‡ฑ","turkmenistan":"๐Ÿ‡น๐Ÿ‡ฒ","tunisia":"๐Ÿ‡น๐Ÿ‡ณ","tonga":"๐Ÿ‡น๐Ÿ‡ด","tr":"๐Ÿ‡น๐Ÿ‡ท","trinidad_tobago":"๐Ÿ‡น๐Ÿ‡น","tuvalu":"๐Ÿ‡น๐Ÿ‡ป","taiwan":"๐Ÿ‡น๐Ÿ‡ผ","tanzania":"๐Ÿ‡น๐Ÿ‡ฟ","ukraine":"๐Ÿ‡บ๐Ÿ‡ฆ","uganda":"๐Ÿ‡บ๐Ÿ‡ฌ","us_outlying_islands":"๐Ÿ‡บ๐Ÿ‡ฒ","united_nations":"๐Ÿ‡บ๐Ÿ‡ณ","us":"๐Ÿ‡บ๐Ÿ‡ธ","uruguay":"๐Ÿ‡บ๐Ÿ‡พ","uzbekistan":"๐Ÿ‡บ๐Ÿ‡ฟ","vatican_city":"๐Ÿ‡ป๐Ÿ‡ฆ","st_vincent_grenadines":"๐Ÿ‡ป๐Ÿ‡จ","venezuela":"๐Ÿ‡ป๐Ÿ‡ช","british_virgin_islands":"๐Ÿ‡ป๐Ÿ‡ฌ","us_virgin_islands":"๐Ÿ‡ป๐Ÿ‡ฎ","vietnam":"๐Ÿ‡ป๐Ÿ‡ณ","vanuatu":"๐Ÿ‡ป๐Ÿ‡บ","wallis_futuna":"๐Ÿ‡ผ๐Ÿ‡ซ","samoa":"๐Ÿ‡ผ๐Ÿ‡ธ","kosovo":"๐Ÿ‡ฝ๐Ÿ‡ฐ","yemen":"๐Ÿ‡พ๐Ÿ‡ช","mayotte":"๐Ÿ‡พ๐Ÿ‡น","south_africa":"๐Ÿ‡ฟ๐Ÿ‡ฆ","zambia":"๐Ÿ‡ฟ๐Ÿ‡ฒ","zimbabwe":"๐Ÿ‡ฟ๐Ÿ‡ผ","england":"๐Ÿด๓ ง๓ ข๓ ฅ๓ ฎ๓ ง๓ ฟ","scotland":"๐Ÿด๓ ง๓ ข๓ ณ๓ ฃ๓ ด๓ ฟ","wales":"๐Ÿด๓ ง๓ ข๓ ท๓ ฌ๓ ณ๓ ฟ"} \ No newline at end of file diff --git a/public/assets/favicon.ico b/public/assets/favicon.ico new file mode 100644 index 00000000..89850227 Binary files /dev/null and b/public/assets/favicon.ico differ diff --git a/public/assets/group.png b/public/assets/group.png new file mode 100644 index 00000000..0e2f8890 Binary files /dev/null and b/public/assets/group.png differ diff --git a/public/assets/icons/android-chrome-192x192.png b/public/assets/icons/android-chrome-192x192.png new file mode 100644 index 00000000..b9b7d32b Binary files /dev/null and b/public/assets/icons/android-chrome-192x192.png differ diff --git a/public/assets/icons/android-chrome-512x512.png b/public/assets/icons/android-chrome-512x512.png new file mode 100644 index 00000000..00768e55 Binary files /dev/null and b/public/assets/icons/android-chrome-512x512.png differ diff --git a/public/assets/icons/apple-touch-icon.png b/public/assets/icons/apple-touch-icon.png new file mode 100644 index 00000000..fed8ca00 Binary files /dev/null and b/public/assets/icons/apple-touch-icon.png differ diff --git a/public/assets/icons/favicon-16x16.png b/public/assets/icons/favicon-16x16.png new file mode 100644 index 00000000..0cbc4e32 Binary files /dev/null and b/public/assets/icons/favicon-16x16.png differ diff --git a/public/assets/icons/favicon-32x32.png b/public/assets/icons/favicon-32x32.png new file mode 100644 index 00000000..943eec59 Binary files /dev/null and b/public/assets/icons/favicon-32x32.png differ diff --git a/public/assets/icons/mstile-150x150.png b/public/assets/icons/mstile-150x150.png new file mode 100644 index 00000000..bf5bc19a Binary files /dev/null and b/public/assets/icons/mstile-150x150.png differ diff --git a/public/assets/icons/nightly-android-chrome-192x192.png b/public/assets/icons/nightly-android-chrome-192x192.png new file mode 100644 index 00000000..d0ac0944 Binary files /dev/null and b/public/assets/icons/nightly-android-chrome-192x192.png differ diff --git a/public/assets/icons/nightly-android-chrome-512x512.png b/public/assets/icons/nightly-android-chrome-512x512.png new file mode 100644 index 00000000..cdf8bb27 Binary files /dev/null and b/public/assets/icons/nightly-android-chrome-512x512.png differ diff --git a/public/assets/images/dark.svg b/public/assets/images/dark.svg new file mode 100644 index 00000000..374c70a3 --- /dev/null +++ b/public/assets/images/dark.svg @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/light.svg b/public/assets/images/light.svg new file mode 100644 index 00000000..88bd804b --- /dev/null +++ b/public/assets/images/light.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/mutant_emoji.svg b/public/assets/images/mutant_emoji.svg new file mode 100644 index 00000000..ca9ce75b --- /dev/null +++ b/public/assets/images/mutant_emoji.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/noto_emoji.svg b/public/assets/images/noto_emoji.svg new file mode 100644 index 00000000..5749eecb --- /dev/null +++ b/public/assets/images/noto_emoji.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/assets/images/openmoji_emoji.svg b/public/assets/images/openmoji_emoji.svg new file mode 100644 index 00000000..b1e718e2 --- /dev/null +++ b/public/assets/images/openmoji_emoji.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/placeholder.svg b/public/assets/images/placeholder.svg new file mode 100644 index 00000000..3ebb8a24 --- /dev/null +++ b/public/assets/images/placeholder.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/assets/images/twemoji_emoji.svg b/public/assets/images/twemoji_emoji.svg new file mode 100644 index 00000000..d81721c2 --- /dev/null +++ b/public/assets/images/twemoji_emoji.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/inbound.mp3 b/public/assets/inbound.mp3 new file mode 100644 index 00000000..2ae04570 Binary files /dev/null and b/public/assets/inbound.mp3 differ diff --git a/public/assets/inbound.ogg b/public/assets/inbound.ogg new file mode 100644 index 00000000..94b726cd Binary files /dev/null and b/public/assets/inbound.ogg differ diff --git a/public/assets/logo.png b/public/assets/logo.png new file mode 100644 index 00000000..1969aef9 Binary files /dev/null and b/public/assets/logo.png differ diff --git a/public/assets/logo.svg b/public/assets/logo.svg new file mode 100644 index 00000000..3b99f7fa --- /dev/null +++ b/public/assets/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/assets/outbound.mp3 b/public/assets/outbound.mp3 new file mode 100644 index 00000000..068605c0 Binary files /dev/null and b/public/assets/outbound.mp3 differ diff --git a/public/assets/outbound.ogg b/public/assets/outbound.ogg new file mode 100644 index 00000000..f2c326c4 Binary files /dev/null and b/public/assets/outbound.ogg differ diff --git a/public/assets/sounds/call_join.mp3 b/public/assets/sounds/call_join.mp3 new file mode 100644 index 00000000..88d40760 Binary files /dev/null and b/public/assets/sounds/call_join.mp3 differ diff --git a/public/assets/sounds/call_join.ogg b/public/assets/sounds/call_join.ogg new file mode 100644 index 00000000..bb38c7a0 Binary files /dev/null and b/public/assets/sounds/call_join.ogg differ diff --git a/public/assets/sounds/call_leave.mp3 b/public/assets/sounds/call_leave.mp3 new file mode 100644 index 00000000..d50707a5 Binary files /dev/null and b/public/assets/sounds/call_leave.mp3 differ diff --git a/public/assets/sounds/call_leave.ogg b/public/assets/sounds/call_leave.ogg new file mode 100644 index 00000000..55e9212c Binary files /dev/null and b/public/assets/sounds/call_leave.ogg differ diff --git a/public/assets/sounds/message.mp3 b/public/assets/sounds/message.mp3 new file mode 100644 index 00000000..5bbec279 Binary files /dev/null and b/public/assets/sounds/message.mp3 differ diff --git a/public/assets/sounds/message.ogg b/public/assets/sounds/message.ogg new file mode 100644 index 00000000..60894ffc Binary files /dev/null and b/public/assets/sounds/message.ogg differ diff --git a/public/assets/user.png b/public/assets/user.png new file mode 100644 index 00000000..46e62cce Binary files /dev/null and b/public/assets/user.png differ diff --git a/public/assets/wide.svg b/public/assets/wide.svg new file mode 100644 index 00000000..1797d592 --- /dev/null +++ b/public/assets/wide.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/app.tsx b/src/app.tsx index 9e16c37c..b040b2e6 100644 --- a/src/app.tsx +++ b/src/app.tsx @@ -3,15 +3,17 @@ import Context from "./context"; import dayjs from "dayjs"; -import localeData from 'dayjs/plugin/localeData'; -dayjs.extend(localeData) +import localeData from "dayjs/plugin/localeData"; +dayjs.extend(localeData); export function App() { return ( -

-

{ dayjs.locale() }

-

{ dayjs.months() }

+

+ +

+

{dayjs.locale()}

+

{dayjs.months()}

); } diff --git a/src/context/Locale.tsx b/src/context/Locale.tsx index c33aad86..cf0c3916 100644 --- a/src/context/Locale.tsx +++ b/src/context/Locale.tsx @@ -42,7 +42,7 @@ export enum Language { PIRATE = "pr", BOTTOM = "bottom", PIGLATIN = "piglatin", - HARDCORE = "hardcore" + HARDCORE = "hardcore", } export interface LanguageEntry { @@ -58,7 +58,7 @@ export const Languages: { [key in Language]: LanguageEntry } = { display: "English (Traditional)", emoji: "๐Ÿ‡ฌ๐Ÿ‡ง", i18n: "en", - dayjs: "en-gb" + dayjs: "en-gb", }, ar: { display: "ุนุฑุจูŠ", emoji: "๐Ÿ‡ธ๐Ÿ‡ฆ", i18n: "ar", rtl: true }, @@ -80,7 +80,7 @@ export const Languages: { [key in Language]: LanguageEntry } = { display: "Portuguรชs (do Brasil)", emoji: "๐Ÿ‡ง๐Ÿ‡ท", i18n: "pt_BR", - dayjs: "pt-br" + dayjs: "pt-br", }, ro: { display: "Romรขnฤƒ", emoji: "๐Ÿ‡ท๐Ÿ‡ด", i18n: "ro" }, ru: { display: "ะ ัƒััะบะธะน", emoji: "๐Ÿ‡ท๐Ÿ‡บ", i18n: "ru" }, @@ -92,19 +92,24 @@ export const Languages: { [key in Language]: LanguageEntry } = { display: "ไธญๆ–‡ (็ฎ€ไฝ“)", emoji: "๐Ÿ‡จ๐Ÿ‡ณ", i18n: "zh_Hans", - dayjs: "zh" + dayjs: "zh", }, owo: { display: "OwO", emoji: "๐Ÿฑ", i18n: "owo", dayjs: "en-gb" }, pr: { display: "Pirate", emoji: "๐Ÿดโ€โ˜ ๏ธ", i18n: "pr", dayjs: "en-gb" }, bottom: { display: "Bottom", emoji: "๐Ÿฅบ", i18n: "bottom", dayjs: "en-gb" }, - piglatin: { display: "Pig Latin", emoji: "๐Ÿ–", i18n: "piglatin", dayjs: "en-gb" }, + piglatin: { + display: "Pig Latin", + emoji: "๐Ÿ–", + i18n: "piglatin", + dayjs: "en-gb", + }, hardcore: { display: "Hardcore Mode", emoji: "๐Ÿ”ฅ", i18n: "hardcore", - dayjs: "en-gb" - } + dayjs: "en-gb", + }, }; interface Props { @@ -117,45 +122,48 @@ function Locale({ children, locale }: Props) { const lang = Languages[locale]; useEffect(() => { - if (locale === 'en') { + if (locale === "en") { setDefinition(definition); - dayjs.locale('en'); + dayjs.locale("en"); return; } if (lang.i18n === "hardcore") { + // eslint-disable-next-line @typescript-eslint/no-explicit-any setDefinition({} as any); return; } - import( - `../../external/lang/${lang.i18n}.json` - ).then(async lang_file => { - let defn = lang_file.default; - let target = lang.dayjs ?? lang.i18n; - let dayjs_locale = await import(/* @vite-ignore */ `/node_modules/dayjs/esm/locale/${target}.js`); + import(`../../external/lang/${lang.i18n}.json`).then( + async (lang_file) => { + const defn = lang_file.default; + const target = lang.dayjs ?? lang.i18n; + const dayjs_locale = await import( + /* @vite-ignore */ `/node_modules/dayjs/esm/locale/${target}.js` + ); - if (defn.dayjs) { - dayjs.updateLocale(target, { calendar: defn.dayjs }); + if (defn.dayjs) { + dayjs.updateLocale(target, { calendar: defn.dayjs }); + } + + dayjs.locale(dayjs_locale.default); + setDefinition(defn); } - - dayjs.locale(dayjs_locale.default); - setDefinition(defn); - }); - }, [locale]); + ); + }, [locale, lang]); useEffect(() => { document.body.style.direction = lang.rtl ? "rtl" : ""; - }, [ lang.rtl ]); + }, [lang.rtl]); return {children}; } -export default connectState>( +export default connectState>( Locale, - state => { + (state) => { return { - locale: state.locale + locale: state.locale, }; }, true diff --git a/src/context/revoltjs/RevoltClient.tsx b/src/context/revoltjs/RevoltClient.tsx index fdf0f9b2..737f2824 100644 --- a/src/context/revoltjs/RevoltClient.tsx +++ b/src/context/revoltjs/RevoltClient.tsx @@ -1,4 +1,4 @@ -import { Client } from 'revolt.js'; +import { Client } from "revolt.js"; export enum ClientStatus { LOADING, @@ -7,7 +7,7 @@ export enum ClientStatus { DISCONNECTED, CONNECTING, RECONNECTING, - ONLINE + ONLINE, } export const RevoltJSClient = new Client({ diff --git a/src/context/revoltjs/messages.ts b/src/context/revoltjs/messages.ts index 8db3e427..44f52c40 100644 --- a/src/context/revoltjs/messages.ts +++ b/src/context/revoltjs/messages.ts @@ -5,6 +5,6 @@ export function mapMessage(message: Partial) { const { edited, ...msg } = message; return { ...msg, - edited: edited?.$date + edited: edited?.$date, } as MessageObject; } diff --git a/src/main.tsx b/src/main.tsx index 0e16b26f..70a4359b 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -2,5 +2,19 @@ import { render } from "preact"; import "./styles/index.scss"; import { App } from "./app"; +import { registerSW } from 'virtual:pwa-register' + +const updateSW = registerSW({ + onNeedRefresh() { + // ! FIXME: temp + updateSW(true); + // show a prompt to user + }, + onOfflineReady() { + console.info('Ready to work offline.'); + // show a ready to work offline to user + }, +}) + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion render(, document.getElementById("app")!); diff --git a/src/redux/State.tsx b/src/redux/State.tsx index 21985295..5095fcdc 100644 --- a/src/redux/State.tsx +++ b/src/redux/State.tsx @@ -1,6 +1,6 @@ import { store } from "."; import localForage from "localforage"; -import { Provider } from 'react-redux'; +import { Provider } from "react-redux"; import { Children } from "../types/Preact"; import { useEffect, useState } from "preact/hooks"; @@ -12,7 +12,7 @@ async function loadState() { } interface Props { - children: Children + children: Children; } export default function State(props: Props) { @@ -23,10 +23,6 @@ export default function State(props: Props) { }, []); if (!loaded) return null; - - return ( - - { props.children } - - ) + + return {props.children}; } diff --git a/src/redux/connector.tsx b/src/redux/connector.tsx index 3a90faa4..ffe71c79 100644 --- a/src/redux/connector.tsx +++ b/src/redux/connector.tsx @@ -1,6 +1,8 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ + import { State } from "."; import { h } from "preact"; -//import { memo } from "preact/compat"; +// import { memo } from "preact/compat"; import { connect, ConnectedComponent } from "react-redux"; export function connectState( @@ -10,7 +12,9 @@ export function connectState( ): ConnectedComponent<(props: any) => h.JSX.Element | null, T> { return ( useDispatcher - ? connect(mapKeys, dispatcher => { return { dispatcher } }) + ? connect(mapKeys, (dispatcher) => { + return { dispatcher }; + }) : connect(mapKeys) - )(component);//(memo(component)); + )(component); //(memo(component)); } diff --git a/src/redux/index.ts b/src/redux/index.ts index 06e58eae..6d78cc51 100644 --- a/src/redux/index.ts +++ b/src/redux/index.ts @@ -24,6 +24,7 @@ export type State = { experiments: ExperimentOptions; }; +// eslint-disable-next-line @typescript-eslint/no-explicit-any export const store = createStore((state: any, action: any) => { if (process.env.NODE_ENV === "development") { console.debug("State Update:", action); @@ -46,9 +47,9 @@ store.subscribe(() => { queue, drafts, sync, - experiments + experiments, } = store.getState() as State; - + localForage.setItem("state", { locale, auth, @@ -57,6 +58,6 @@ store.subscribe(() => { queue, drafts, sync, - experiments + experiments, }); }); diff --git a/src/redux/reducers/auth.ts b/src/redux/reducers/auth.ts index 9d5cbde4..38cd4df7 100644 --- a/src/redux/reducers/auth.ts +++ b/src/redux/reducers/auth.ts @@ -30,18 +30,19 @@ export function auth( accounts: { ...state.accounts, [action.session.user_id]: { - session: action.session - } + session: action.session, + }, }, - active: action.session.user_id + active: action.session.user_id, }; - case "LOGOUT": + case "LOGOUT": { const accounts = Object.assign({}, state.accounts); action.user_id && delete accounts[action.user_id]; return { - accounts + accounts, }; + } default: return state; } diff --git a/src/redux/reducers/drafts.ts b/src/redux/reducers/drafts.ts index a000e412..4f36a846 100644 --- a/src/redux/reducers/drafts.ts +++ b/src/redux/reducers/drafts.ts @@ -20,11 +20,13 @@ export function drafts(state: Drafts = {}, action: DraftAction): Drafts { case "SET_DRAFT": return { ...state, - [action.channel]: action.content + [action.channel]: action.content, }; - case "CLEAR_DRAFT": + case "CLEAR_DRAFT": { + // eslint-disable-next-line @typescript-eslint/no-unused-vars const { [action.channel]: _, ...newState } = state; return newState; + } case "RESET": return {}; default: diff --git a/src/redux/reducers/experiments.ts b/src/redux/reducers/experiments.ts index 89a13e09..fa3adadd 100644 --- a/src/redux/reducers/experiments.ts +++ b/src/redux/reducers/experiments.ts @@ -1,8 +1,8 @@ export type Experiments = never; -export const AVAILABLE_EXPERIMENTS: Experiments[] = [ ]; +export const AVAILABLE_EXPERIMENTS: Experiments[] = []; export interface ExperimentOptions { - enabled?: Experiments[] + enabled?: Experiments[]; } export type ExperimentsAction = @@ -26,16 +26,17 @@ export function experiments( ...state, enabled: [ ...(state.enabled ?? []) - .filter(x => AVAILABLE_EXPERIMENTS.includes(x)) - .filter(v => v !== action.key), - action.key - ] + .filter((x) => AVAILABLE_EXPERIMENTS.includes(x)) + .filter((v) => v !== action.key), + action.key, + ], }; case "EXPERIMENTS_DISABLE": return { ...state, - enabled: state.enabled?.filter(v => v !== action.key) - .filter(x => AVAILABLE_EXPERIMENTS.includes(x)) + enabled: state.enabled + ?.filter((v) => v !== action.key) + .filter((x) => AVAILABLE_EXPERIMENTS.includes(x)), }; default: return state; diff --git a/src/redux/reducers/index.ts b/src/redux/reducers/index.ts index 2dc3ce7f..3c8d83c9 100644 --- a/src/redux/reducers/index.ts +++ b/src/redux/reducers/index.ts @@ -1,3 +1,4 @@ +import { State } from ".."; import { combineReducers } from "redux"; import { settings, SettingsAction } from "./settings"; @@ -19,7 +20,7 @@ export default combineReducers({ typing, drafts, sync, - experiments + experiments, }); export type Action = @@ -32,11 +33,13 @@ export type Action = | DraftAction | SyncAction | ExperimentsAction - | { type: "__INIT"; state: any }; + | { type: "__INIT"; state: State }; export type WithDispatcher = { dispatcher: (action: Action) => void }; +// eslint-disable-next-line @typescript-eslint/no-explicit-any export function filter(obj: any, keys: string[]) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any const newObj: any = {}; for (const key of keys) { const v = obj[key]; diff --git a/src/redux/reducers/locale.ts b/src/redux/reducers/locale.ts index b573e62a..416da63c 100644 --- a/src/redux/reducers/locale.ts +++ b/src/redux/reducers/locale.ts @@ -1,5 +1,5 @@ import { Language } from "../../context/Locale"; -import { SyncData, SyncKeys, SyncUpdateAction } from "./sync"; +import { SyncUpdateAction } from "./sync"; export type LocaleAction = | { type: undefined } @@ -19,19 +19,20 @@ export function findLanguage(lang?: string): Language { } const code = lang.replace("-", "_"); - const short = code.split("_")[0]; - for (const key of Object.keys(Language)) { - const value = (Language as any)[key]; + + const values = []; + for (const key in Language) { + const value = Language[key as keyof typeof Language]; + values.push(value); if (value.startsWith(code)) { - return value; + return value as Language; } } - for (const key of Object.keys(Language).reverse()) { - const value = (Language as any)[key]; + for (const value of values.reverse()) { if (value.startsWith(short)) { - return value; + return value as Language; } } diff --git a/src/redux/reducers/queue.ts b/src/redux/reducers/queue.ts index c2f0fdfa..9ed4cfd4 100644 --- a/src/redux/reducers/queue.ts +++ b/src/redux/reducers/queue.ts @@ -2,7 +2,7 @@ import { MessageObject } from "../../context/revoltjs/messages"; export enum QueueStatus { SENDING = "sending", - ERRORED = "errored" + ERRORED = "errored", } export interface QueuedMessage { @@ -51,47 +51,47 @@ export function queue( switch (action.type) { case "QUEUE_ADD": { return [ - ...state.filter(x => x.id !== action.nonce), + ...state.filter((x) => x.id !== action.nonce), { id: action.nonce, data: action.message, channel: action.channel, - status: QueueStatus.SENDING - } + status: QueueStatus.SENDING, + }, ]; } case "QUEUE_FAIL": { const entry = state.find( - x => x.id === action.nonce + (x) => x.id === action.nonce ) as QueuedMessage; return [ - ...state.filter(x => x.id !== action.nonce), + ...state.filter((x) => x.id !== action.nonce), { ...entry, status: QueueStatus.ERRORED, - error: action.error - } + error: action.error, + }, ]; } case "QUEUE_START": { const entry = state.find( - x => x.id === action.nonce + (x) => x.id === action.nonce ) as QueuedMessage; return [ - ...state.filter(x => x.id !== action.nonce), + ...state.filter((x) => x.id !== action.nonce), { ...entry, - status: QueueStatus.SENDING - } + status: QueueStatus.SENDING, + }, ]; } case "QUEUE_REMOVE": - return state.filter(x => x.id !== action.nonce); + return state.filter((x) => x.id !== action.nonce); case "QUEUE_FAIL_ALL": - return state.map(x => { + return state.map((x) => { return { ...x, - status: QueueStatus.ERRORED + status: QueueStatus.ERRORED, }; }); case "QUEUE_DROP_ALL": diff --git a/src/redux/reducers/settings.ts b/src/redux/reducers/settings.ts index 744c3289..ac184383 100644 --- a/src/redux/reducers/settings.ts +++ b/src/redux/reducers/settings.ts @@ -8,9 +8,9 @@ export interface NotificationOptions { outgoingSoundEnabled?: boolean; } -export type EmojiPacks = 'mutant' | 'twemoji' | 'noto' | 'openmoji'; +export type EmojiPacks = "mutant" | "twemoji" | "noto" | "openmoji"; export interface AppearanceOptions { - emojiPack?: EmojiPacks + emojiPack?: EmojiPacks; } export interface Settings { @@ -53,9 +53,9 @@ export function settings( return { ...state, theme: { - ...filter(state.theme, [ 'custom', 'preset' ]), + ...filter(state.theme, ["custom", "preset"]), ...action.theme, - } + }, }; case "SETTINGS_SET_THEME_OVERRIDE": return { @@ -64,32 +64,32 @@ export function settings( ...state.theme, custom: { ...state.theme?.custom, - ...action.custom - } - } + ...action.custom, + }, + }, }; case "SETTINGS_SET_NOTIFICATION_OPTIONS": return { ...state, notification: { ...state.notification, - ...action.options - } + ...action.options, + }, }; case "SETTINGS_SET_APPEARANCE": return { ...state, appearance: { - ...filter(state.appearance, [ 'emojiPack' ]), - ...action.options - } - } + ...filter(state.appearance, ["emojiPack"]), + ...action.options, + }, + }; case "SYNC_UPDATE": return { ...state, appearance: action.update.appearance?.[1] ?? state.appearance, - theme: action.update.theme?.[1] ?? state.theme - } + theme: action.update.theme?.[1] ?? state.theme, + }; case "RESET": return {}; default: diff --git a/src/redux/reducers/sync.ts b/src/redux/reducers/sync.ts index 2edf5e90..1e2d4a31 100644 --- a/src/redux/reducers/sync.ts +++ b/src/redux/reducers/sync.ts @@ -2,7 +2,7 @@ import { AppearanceOptions } from "./settings"; import { Language } from "../../context/Locale"; import { ThemeOptions } from "../../context/Theme"; -export type SyncKeys = 'theme' | 'appearance' | 'locale'; +export type SyncKeys = "theme" | "appearance" | "locale"; export interface SyncData { locale?: Language; @@ -10,17 +10,21 @@ export interface SyncData { appearance?: AppearanceOptions; } -export const DEFAULT_ENABLED_SYNC: SyncKeys[] = [ 'theme', 'appearance', 'locale' ]; +export const DEFAULT_ENABLED_SYNC: SyncKeys[] = [ + "theme", + "appearance", + "locale", +]; export interface SyncOptions { - disabled?: SyncKeys[] + disabled?: SyncKeys[]; revision?: { - [key: string]: number - } + [key: string]: number; + }; } export type SyncUpdateAction = { type: "SYNC_UPDATE"; - update: { [key in SyncKeys]?: [ number, SyncData[key] ] } + update: { [key in SyncKeys]?: [number, SyncData[key]] }; }; export type SyncAction = @@ -49,24 +53,24 @@ export function sync( return { ...state, disabled: [ - ...(state.disabled ?? []).filter(v => v !== action.key), - action.key - ] + ...(state.disabled ?? []).filter((v) => v !== action.key), + action.key, + ], }; case "SYNC_ENABLE_KEY": return { ...state, - disabled: state.disabled?.filter(v => v !== action.key) + disabled: state.disabled?.filter((v) => v !== action.key), }; case "SYNC_SET_REVISION": return { ...state, revision: { ...state.revision, - [action.key]: action.timestamp - } + [action.key]: action.timestamp, + }, }; - case "SYNC_UPDATE": + case "SYNC_UPDATE": { const revision = { ...state.revision }; for (const key of Object.keys(action.update)) { const value = action.update[key as SyncKeys]; @@ -77,8 +81,9 @@ export function sync( return { ...state, - revision - } + revision, + }; + } default: return state; } diff --git a/src/redux/reducers/typing.ts b/src/redux/reducers/typing.ts index b3436219..7ec152aa 100644 --- a/src/redux/reducers/typing.ts +++ b/src/redux/reducers/typing.ts @@ -1,4 +1,4 @@ -export type TypingUser = { id: string, started: number }; +export type TypingUser = { id: string; started: number }; export type Typing = { [key: string]: TypingUser[] }; export type TypingAction = @@ -24,19 +24,21 @@ export function typing(state: Typing = {}, action: TypingAction): Typing { ...state, [action.channel]: [ ...(state[action.channel] ?? []).filter( - x => x.id !== action.user + (x) => x.id !== action.user ), { id: action.user, - started: + new Date() - } - ] + started: +new Date(), + }, + ], }; case "TYPING_STOP": return { ...state, [action.channel]: - state[action.channel]?.filter(x => x.id !== action.user) ?? [] + state[action.channel]?.filter( + (x) => x.id !== action.user + ) ?? [], }; case "RESET": return {}; diff --git a/src/redux/reducers/unreads.ts b/src/redux/reducers/unreads.ts index a81a55d3..f7f640a6 100644 --- a/src/redux/reducers/unreads.ts +++ b/src/redux/reducers/unreads.ts @@ -1,31 +1,31 @@ import { Sync } from "revolt.js/dist/api/objects"; export interface Unreads { - [key: string]: Partial>; + [key: string]: Partial>; } export type UnreadsAction = | { type: undefined } | { - type: "UNREADS_MARK_READ"; - channel: string; - message: string; - request: boolean; + type: "UNREADS_MARK_READ"; + channel: string; + message: string; + request: boolean; } | { - type: "UNREADS_SET"; - unreads: Sync.ChannelUnread[]; - } + type: "UNREADS_SET"; + unreads: Sync.ChannelUnread[]; + } | { - type: "UNREADS_MENTION"; - channel: string; - message: string; - } + type: "UNREADS_MENTION"; + channel: string; + message: string; + } | { - type: "RESET"; + type: "RESET"; }; -export function unreads(state = {}, action: UnreadsAction): Unreads { +export function unreads(state = {} as Unreads, action: UnreadsAction): Unreads { switch (action.type) { case "UNREADS_MARK_READ": if (action.request) { @@ -35,31 +35,29 @@ export function unreads(state = {}, action: UnreadsAction): Unreads { return { ...state, [action.channel]: { - last_id: action.message - } + last_id: action.message, + }, }; - case "UNREADS_SET": - { - const obj: Unreads = {}; - for (const entry of action.unreads) { - const { _id, ...v } = entry; - obj[_id.channel] = v; - } - - return obj; + case "UNREADS_SET": { + const obj: Unreads = {}; + for (const entry of action.unreads) { + const { _id, ...v } = entry; + obj[_id.channel] = v; } - case "UNREADS_MENTION": - { - const obj = (state as any)[action.channel]; - return { - ...state, - [action.channel]: { - ...obj, - mentions: [ ...(obj?.mentions ?? []), action.message ] - } - } - } + return obj; + } + case "UNREADS_MENTION": { + const obj = state[action.channel]; + + return { + ...state, + [action.channel]: { + ...obj, + mentions: [...(obj?.mentions ?? []), action.message], + }, + }; + } case "RESET": return {}; default: diff --git a/tsconfig.json b/tsconfig.json index 56bf37aa..cdda19f4 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,7 +15,10 @@ "noEmit": true, "jsx": "preserve", "jsxFactory": "h", - "jsxFragmentFactory": "Fragment" + "jsxFragmentFactory": "Fragment", + "types": [ + "vite-plugin-pwa/client" + ] }, "include": ["src", "ui/ui.tsx"] } diff --git a/vite.config.ts b/vite.config.ts index 603d5d4a..d53d1b3c 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,10 +1,38 @@ import { resolve } from 'path' import { defineConfig } from 'vite' import preact from '@preact/preset-vite' +import { VitePWA } from 'vite-plugin-pwa' // https://vitejs.dev/config/ export default defineConfig({ - plugins: [preact()], + plugins: [ + preact(), + VitePWA({ + manifest: { + name: "Revolt", + short_name: "Revolt", + description: "User-first, privacy-focused chat platform.", + categories: ["messaging"], + start_url: "/", + display: "standalone", + orientation: "portrait", + background_color: "#101823", + icons: [ + { + "src": "/assets/icons/android-chrome-192x192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "/assets/icons/android-chrome-512x512.png", + "type": "image/png", + "sizes": "512x512" + } + ] + }, + workbox: { } + }) + ], build: { rollupOptions: { input: { diff --git a/yarn.lock b/yarn.lock index bbbd0a37..b78df3cc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,19 +9,19 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.14.5": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== dependencies: "@babel/highlight" "^7.14.5" -"@babel/compat-data@^7.14.5": +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.5.tgz#8ef4c18e58e801c5c95d3c1c0f2874a2680fadea" integrity sha512-kixrYn4JwfAVPa0f2yfzc2AWti6WRRyO3XjWW5PJAvtE11qhSayrrcrEnee05KAtNaPC+EwehE8Qt1UedEVB8w== -"@babel/core@^7.9.6": +"@babel/core@^7.11.1", "@babel/core@^7.9.6": version "7.14.6" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.6.tgz#e0814ec1a950032ff16c13a2721de39a8416fcab" integrity sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA== @@ -51,14 +51,22 @@ jsesc "^2.5.1" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.0.0": +"@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz#7bf478ec3b71726d56a8ca5775b046fc29879e61" integrity sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA== dependencies: "@babel/types" "^7.14.5" -"@babel/helper-compilation-targets@^7.14.5": +"@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz#b939b43f8c37765443a19ae74ad8b15978e0a191" + integrity sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz#7a99c5d0967911e972fe2c3411f7d5b498498ecf" integrity sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw== @@ -68,6 +76,47 @@ browserslist "^4.16.6" semver "^6.3.0" +"@babel/helper-create-class-features-plugin@^7.14.5": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz#f114469b6c06f8b5c59c6c4e74621f5085362542" + integrity sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-member-expression-to-functions" "^7.14.5" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" + +"@babel/helper-create-regexp-features-plugin@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz#c7d5ac5e9cf621c26057722fb7a8a4c5889358c4" + integrity sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + regexpu-core "^4.7.1" + +"@babel/helper-define-polyfill-provider@^0.2.2": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6" + integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew== + dependencies: + "@babel/helper-compilation-targets" "^7.13.0" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/traverse" "^7.13.0" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + +"@babel/helper-explode-assignable-expression@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz#8aa72e708205c7bb643e45c73b4386cdf2a1f645" + integrity sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ== + dependencies: + "@babel/types" "^7.14.5" + "@babel/helper-function-name@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4" @@ -98,7 +147,7 @@ dependencies: "@babel/types" "^7.14.5" -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.14.5": +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ== @@ -126,6 +175,20 @@ dependencies: "@babel/types" "^7.14.5" +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" + integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== + +"@babel/helper-remap-async-to-generator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz#51439c913612958f54a987a4ffc9ee587a2045d6" + integrity sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-wrap-function" "^7.14.5" + "@babel/types" "^7.14.5" + "@babel/helper-replace-supers@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz#0ecc0b03c41cd567b4024ea016134c28414abb94" @@ -143,6 +206,13 @@ dependencies: "@babel/types" "^7.14.5" +"@babel/helper-skip-transparent-expression-wrappers@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz#96f486ac050ca9f44b009fbe5b7d394cab3a0ee4" + integrity sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ== + dependencies: + "@babel/types" "^7.14.5" + "@babel/helper-split-export-declaration@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a" @@ -160,6 +230,16 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== +"@babel/helper-wrap-function@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz#5919d115bf0fe328b8a5d63bcb610f51601f2bff" + integrity sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ== + dependencies: + "@babel/helper-function-name" "^7.14.5" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + "@babel/helpers@^7.14.6": version "7.14.6" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.6.tgz#5b58306b95f1b47e2a0199434fa8658fa6c21635" @@ -183,7 +263,580 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.6.tgz#d85cc68ca3cac84eae384c06f032921f5227f4b2" integrity sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ== -"@babel/runtime@^7.10.5", "@babel/runtime@^7.12.1", "@babel/runtime@^7.14.0", "@babel/runtime@^7.9.2": +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz#4b467302e1548ed3b1be43beae2cc9cf45e0bb7e" + integrity sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + "@babel/plugin-proposal-optional-chaining" "^7.14.5" + +"@babel/plugin-proposal-async-generator-functions@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.5.tgz#4024990e3dd74181f4f426ea657769ff49a2df39" + integrity sha512-tbD/CG3l43FIXxmu4a7RBe4zH7MLJ+S/lFowPFO7HetS2hyOZ/0nnnznegDuzFzfkyQYTxqdTH/hKmuBngaDAA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.14.5" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-proposal-class-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz#40d1ee140c5b1e31a350f4f5eed945096559b42e" + integrity sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-proposal-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz#158e9e10d449c3849ef3ecde94a03d9f1841b681" + integrity sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-proposal-dynamic-import@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz#0c6617df461c0c1f8fff3b47cd59772360101d2c" + integrity sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-proposal-export-namespace-from@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz#dbad244310ce6ccd083072167d8cea83a52faf76" + integrity sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz#38de60db362e83a3d8c944ac858ddf9f0c2239eb" + integrity sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-proposal-logical-assignment-operators@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz#6e6229c2a99b02ab2915f82571e0cc646a40c738" + integrity sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz#ee38589ce00e2cc59b299ec3ea406fcd3a0fdaf6" + integrity sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz#83631bf33d9a51df184c2102a069ac0c58c05f18" + integrity sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.5.tgz#e581d5ccdfa187ea6ed73f56c6a21c1580b90fbf" + integrity sha512-VzMyY6PWNPPT3pxc5hi9LloKNr4SSrVCg7Yr6aZpW4Ym07r7KqSU/QXYwjXLVxqwSv0t/XSXkFoKBPUkZ8vb2A== + dependencies: + "@babel/compat-data" "^7.14.5" + "@babel/helper-compilation-targets" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.14.5" + +"@babel/plugin-proposal-optional-catch-binding@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz#939dd6eddeff3a67fdf7b3f044b5347262598c3c" + integrity sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz#fa83651e60a360e3f13797eef00b8d519695b603" + integrity sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-private-methods@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz#37446495996b2945f30f5be5b60d5e2aa4f5792d" + integrity sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-proposal-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz#9f65a4d0493a940b4c01f8aa9d3f1894a587f636" + integrity sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-proposal-unicode-property-regex@^7.14.5", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz#0f95ee0e757a5d647f378daa0eca7e93faa8bbe8" + integrity sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-arrow-functions@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz#f7187d9588a768dd080bf4c9ffe117ea62f7862a" + integrity sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-async-to-generator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz#72c789084d8f2094acb945633943ef8443d39e67" + integrity sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA== + dependencies: + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.14.5" + +"@babel/plugin-transform-block-scoped-functions@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz#e48641d999d4bc157a67ef336aeb54bc44fd3ad4" + integrity sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-block-scoping@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz#8cc63e61e50f42e078e6f09be775a75f23ef9939" + integrity sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-classes@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.5.tgz#0e98e82097b38550b03b483f9b51a78de0acb2cf" + integrity sha512-J4VxKAMykM06K/64z9rwiL6xnBHgB1+FVspqvlgCdwD1KUbQNfszeKVVOMh59w3sztHYIZDgnhOC4WbdEfHFDA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz#1b9d78987420d11223d41195461cc43b974b204f" + integrity sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-destructuring@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.5.tgz#d32ad19ff1a6da1e861dc62720d80d9776e3bf35" + integrity sha512-wU9tYisEbRMxqDezKUqC9GleLycCRoUsai9ddlsq54r8QRLaeEhc+d+9DqCG+kV9W2GgQjTZESPTpn5bAFMDww== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-dotall-regex@^7.14.5", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz#2f6bf76e46bdf8043b4e7e16cf24532629ba0c7a" + integrity sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-duplicate-keys@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz#365a4844881bdf1501e3a9f0270e7f0f91177954" + integrity sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-exponentiation-operator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz#5154b8dd6a3dfe6d90923d61724bd3deeb90b493" + integrity sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-for-of@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz#dae384613de8f77c196a8869cbf602a44f7fc0eb" + integrity sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-function-name@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz#e81c65ecb900746d7f31802f6bed1f52d915d6f2" + integrity sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ== + dependencies: + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz#41d06c7ff5d4d09e3cf4587bd3ecf3930c730f78" + integrity sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-member-expression-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz#b39cd5212a2bf235a617d320ec2b48bcc091b8a7" + integrity sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-modules-amd@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz#4fd9ce7e3411cb8b83848480b7041d83004858f7" + integrity sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g== + dependencies: + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-commonjs@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.5.tgz#7aaee0ea98283de94da98b28f8c35701429dad97" + integrity sha512-en8GfBtgnydoao2PS+87mKyw62k02k7kJ9ltbKe0fXTHrQmG6QZZflYuGI1VVG7sVpx4E1n7KBpNlPb8m78J+A== + dependencies: + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-simple-access" "^7.14.5" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-systemjs@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz#c75342ef8b30dcde4295d3401aae24e65638ed29" + integrity sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA== + dependencies: + "@babel/helper-hoist-variables" "^7.14.5" + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.5" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-umd@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz#fb662dfee697cce274a7cda525190a79096aa6e0" + integrity sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA== + dependencies: + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.5.tgz#d537e8ee083ee6f6aa4f4eef9d2081d555746e4c" + integrity sha512-+Xe5+6MWFo311U8SchgeX5c1+lJM+eZDBZgD+tvXu9VVQPXwwVzeManMMjYX6xw2HczngfOSZjoFYKwdeB/Jvw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + +"@babel/plugin-transform-new-target@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz#31bdae8b925dc84076ebfcd2a9940143aed7dbf8" + integrity sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-object-super@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz#d0b5faeac9e98597a161a9cf78c527ed934cdc45" + integrity sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" + +"@babel/plugin-transform-parameters@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz#49662e86a1f3ddccac6363a7dfb1ff0a158afeb3" + integrity sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz#0ddbaa1f83db3606f1cdf4846fa1dfb473458b34" + integrity sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-regenerator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz#9676fd5707ed28f522727c5b3c0aa8544440b04f" + integrity sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg== + dependencies: + regenerator-transform "^0.14.2" + +"@babel/plugin-transform-reserved-words@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz#c44589b661cfdbef8d4300dcc7469dffa92f8304" + integrity sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-shorthand-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz#97f13855f1409338d8cadcbaca670ad79e091a58" + integrity sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-spread@^7.14.5": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz#6bd40e57fe7de94aa904851963b5616652f73144" + integrity sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + +"@babel/plugin-transform-sticky-regex@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz#5b617542675e8b7761294381f3c28c633f40aeb9" + integrity sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-template-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz#a5f2bc233937d8453885dc736bdd8d9ffabf3d93" + integrity sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-typeof-symbol@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz#39af2739e989a2bd291bf6b53f16981423d457d4" + integrity sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-unicode-escapes@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz#9d4bd2a681e3c5d7acf4f57fa9e51175d91d0c6b" + integrity sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-unicode-regex@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz#4cd09b6c8425dd81255c7ceb3fb1836e7414382e" + integrity sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/preset-env@^7.11.0": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.5.tgz#c0c84e763661fd0e74292c3d511cb33b0c668997" + integrity sha512-ci6TsS0bjrdPpWGnQ+m4f+JSSzDKlckqKIJJt9UZ/+g7Zz9k0N8lYU8IeLg/01o2h8LyNZDMLGgRLDTxpudLsA== + dependencies: + "@babel/compat-data" "^7.14.5" + "@babel/helper-compilation-targets" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.14.5" + "@babel/plugin-proposal-async-generator-functions" "^7.14.5" + "@babel/plugin-proposal-class-properties" "^7.14.5" + "@babel/plugin-proposal-class-static-block" "^7.14.5" + "@babel/plugin-proposal-dynamic-import" "^7.14.5" + "@babel/plugin-proposal-export-namespace-from" "^7.14.5" + "@babel/plugin-proposal-json-strings" "^7.14.5" + "@babel/plugin-proposal-logical-assignment-operators" "^7.14.5" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5" + "@babel/plugin-proposal-numeric-separator" "^7.14.5" + "@babel/plugin-proposal-object-rest-spread" "^7.14.5" + "@babel/plugin-proposal-optional-catch-binding" "^7.14.5" + "@babel/plugin-proposal-optional-chaining" "^7.14.5" + "@babel/plugin-proposal-private-methods" "^7.14.5" + "@babel/plugin-proposal-private-property-in-object" "^7.14.5" + "@babel/plugin-proposal-unicode-property-regex" "^7.14.5" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-transform-arrow-functions" "^7.14.5" + "@babel/plugin-transform-async-to-generator" "^7.14.5" + "@babel/plugin-transform-block-scoped-functions" "^7.14.5" + "@babel/plugin-transform-block-scoping" "^7.14.5" + "@babel/plugin-transform-classes" "^7.14.5" + "@babel/plugin-transform-computed-properties" "^7.14.5" + "@babel/plugin-transform-destructuring" "^7.14.5" + "@babel/plugin-transform-dotall-regex" "^7.14.5" + "@babel/plugin-transform-duplicate-keys" "^7.14.5" + "@babel/plugin-transform-exponentiation-operator" "^7.14.5" + "@babel/plugin-transform-for-of" "^7.14.5" + "@babel/plugin-transform-function-name" "^7.14.5" + "@babel/plugin-transform-literals" "^7.14.5" + "@babel/plugin-transform-member-expression-literals" "^7.14.5" + "@babel/plugin-transform-modules-amd" "^7.14.5" + "@babel/plugin-transform-modules-commonjs" "^7.14.5" + "@babel/plugin-transform-modules-systemjs" "^7.14.5" + "@babel/plugin-transform-modules-umd" "^7.14.5" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.14.5" + "@babel/plugin-transform-new-target" "^7.14.5" + "@babel/plugin-transform-object-super" "^7.14.5" + "@babel/plugin-transform-parameters" "^7.14.5" + "@babel/plugin-transform-property-literals" "^7.14.5" + "@babel/plugin-transform-regenerator" "^7.14.5" + "@babel/plugin-transform-reserved-words" "^7.14.5" + "@babel/plugin-transform-shorthand-properties" "^7.14.5" + "@babel/plugin-transform-spread" "^7.14.5" + "@babel/plugin-transform-sticky-regex" "^7.14.5" + "@babel/plugin-transform-template-literals" "^7.14.5" + "@babel/plugin-transform-typeof-symbol" "^7.14.5" + "@babel/plugin-transform-unicode-escapes" "^7.14.5" + "@babel/plugin-transform-unicode-regex" "^7.14.5" + "@babel/preset-modules" "^0.1.4" + "@babel/types" "^7.14.5" + babel-plugin-polyfill-corejs2 "^0.2.2" + babel-plugin-polyfill-corejs3 "^0.2.2" + babel-plugin-polyfill-regenerator "^0.2.2" + core-js-compat "^3.14.0" + semver "^6.3.0" + +"@babel/preset-modules@^0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" + integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/runtime@^7.10.5", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.14.0", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": version "7.14.6" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.6.tgz#535203bc0892efc7dec60bdc27b2ecf6e409062d" integrity sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg== @@ -199,7 +852,7 @@ "@babel/parser" "^7.14.5" "@babel/types" "^7.14.5" -"@babel/traverse@^7.14.5", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.0": +"@babel/traverse@^7.13.0", "@babel/traverse@^7.14.5", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.0": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.5.tgz#c111b0f58afab4fea3d3385a406f692748c59870" integrity sha512-G3BiS15vevepdmFqmUc9X+64y0viZYygubAMO8SvBmKARuF6CPSZtH4Ng9vi/lrWlZFGe3FWdXNy835akH8Glg== @@ -214,7 +867,7 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.14.5", "@babel/types@^7.7.0": +"@babel/types@^7.14.5", "@babel/types@^7.4.4", "@babel/types@^7.7.0": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.5.tgz#3bb997ba829a2104cedb20689c4a5b8121d383ff" integrity sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg== @@ -264,6 +917,44 @@ resolved "https://registry.yarnpkg.com/@fontsource/open-sans/-/open-sans-4.4.5.tgz#07b31617e62ed753c94cabcf552ebaed4de497ce" integrity sha512-PDWEvO1/p8OAHHiielvEmwGXHNbZhrZn96ojV7+/mKgFu+cCUcGVJl9sFs97rCWLe3hKQsYLEsJs4EiLjwa+UQ== +"@hapi/address@^2.1.2": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" + integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ== + +"@hapi/formula@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@hapi/formula/-/formula-1.2.0.tgz#994649c7fea1a90b91a0a1e6d983523f680e10cd" + integrity sha512-UFbtbGPjstz0eWHb+ga/GM3Z9EzqKXFWIbSOFURU0A/Gku0Bky4bCk9/h//K2Xr3IrCfjFNhMm4jyZ5dbCewGA== + +"@hapi/hoek@^8.2.4", "@hapi/hoek@^8.3.0": + version "8.5.1" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06" + integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow== + +"@hapi/joi@^16.1.8": + version "16.1.8" + resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-16.1.8.tgz#84c1f126269489871ad4e2decc786e0adef06839" + integrity sha512-wAsVvTPe+FwSrsAurNt5vkg3zo+TblvC5Bb1zMVK6SJzZqw9UrJnexxR+76cpePmtUZKHAPxcQ2Bf7oVHyahhg== + dependencies: + "@hapi/address" "^2.1.2" + "@hapi/formula" "^1.2.0" + "@hapi/hoek" "^8.2.4" + "@hapi/pinpoint" "^1.0.2" + "@hapi/topo" "^3.1.3" + +"@hapi/pinpoint@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@hapi/pinpoint/-/pinpoint-1.0.2.tgz#025b7a36dbbf4d35bf1acd071c26b20ef41e0d13" + integrity sha512-dtXC/WkZBfC5vxscazuiJ6iq4j9oNx1SHknmIr8hofarpKUZKmlUVYVIhNVzIEgK5Wrc4GMHL5lZtt1uS2flmQ== + +"@hapi/topo@^3.1.3": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29" + integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ== + dependencies: + "@hapi/hoek" "^8.3.0" + "@insertish/mutable@1.0.6": version "1.0.6" resolved "https://registry.yarnpkg.com/@insertish/mutable/-/mutable-1.0.6.tgz#f42eaba8528ff68cc8065d51f9bbbd30a24f34de" @@ -348,6 +1039,43 @@ "@prefresh/utils" "^1.0.0" "@rollup/pluginutils" "^4.1.0" +"@rollup/plugin-babel@^5.2.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.0.tgz#9cb1c5146ddd6a4968ad96f209c50c62f92f9879" + integrity sha512-9uIC8HZOnVLrLHxayq/PTzw+uS25E14KPUBh5ktF+18Mjo5yK0ToMMx6epY0uEgkjwJw0aBW4x2horYXh8juWw== + dependencies: + "@babel/helper-module-imports" "^7.10.4" + "@rollup/pluginutils" "^3.1.0" + +"@rollup/plugin-node-resolve@^11.2.1": + version "11.2.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz#82aa59397a29cd4e13248b106e6a4a1880362a60" + integrity sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg== + dependencies: + "@rollup/pluginutils" "^3.1.0" + "@types/resolve" "1.17.1" + builtin-modules "^3.1.0" + deepmerge "^4.2.2" + is-module "^1.0.0" + resolve "^1.19.0" + +"@rollup/plugin-replace@^2.4.1": + version "2.4.2" + resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz#a2d539314fbc77c244858faa523012825068510a" + integrity sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg== + dependencies: + "@rollup/pluginutils" "^3.1.0" + magic-string "^0.25.7" + +"@rollup/pluginutils@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + "@rollup/pluginutils@^4.1.0": version "4.1.0" resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.1.0.tgz#0dcc61c780e39257554feb7f77207dceca13c838" @@ -380,6 +1108,19 @@ "@babel/runtime" "^7.10.5" "@emotion/is-prop-valid" "^0.8.7" +"@surma/rollup-plugin-off-main-thread@^1.4.1": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-1.4.2.tgz#e6786b6af5799f82f7ab3a82e53f6182d2b91a58" + integrity sha512-yBMPqmd1yEJo/280PAMkychuaALyQ9Lkb5q1ck3mjJrFuEobIfhnQ4J3mbvBoISmR3SWMWV+cGB/I0lCQee79A== + dependencies: + ejs "^2.6.1" + magic-string "^0.25.0" + +"@types/estree@0.0.39": + version "0.0.39" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" + integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== + "@types/hoist-non-react-statics@*", "@types/hoist-non-react-statics@^3.3.0": version "3.3.1" resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f" @@ -393,7 +1134,7 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== -"@types/node@^15.12.3": +"@types/node@*", "@types/node@^15.12.3": version "15.12.3" resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.3.tgz#2817bf5f25bc82f56579018c53f7d41b1830b1af" integrity sha512-SNt65CPCXvGNDZ3bvk1TQ0Qxoe3y1RKH88+wZ2Uf05dduBCqqFQ76ADP9pbT+Cpvj60SkRppMCh2Zo8tDixqjQ== @@ -436,6 +1177,13 @@ "@types/scheduler" "*" csstype "^3.0.2" +"@types/resolve@1.17.1": + version "1.17.1" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" + integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== + dependencies: + "@types/node" "*" + "@types/scheduler@*": version "0.16.1" resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.1.tgz#18845205e86ff0038517aab7a18a62a6b9f71275" @@ -648,6 +1396,11 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + axios@^0.19.2: version "0.19.2" resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27" @@ -667,6 +1420,37 @@ babel-eslint@^10.0.1: eslint-visitor-keys "^1.0.0" resolve "^1.12.0" +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-polyfill-corejs2@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327" + integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ== + dependencies: + "@babel/compat-data" "^7.13.11" + "@babel/helper-define-polyfill-provider" "^0.2.2" + semver "^6.1.1" + +babel-plugin-polyfill-corejs3@^0.2.2: + version "0.2.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.3.tgz#72add68cf08a8bf139ba6e6dfc0b1d504098e57b" + integrity sha512-rCOFzEIJpJEAU14XCcV/erIf/wZQMmMT5l5vXOpL5uoznyOGfDIjPj6FVytMvtzaKSTSVKouOCTPJ5OMUZH30g== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.2.2" + core-js-compat "^3.14.0" + +babel-plugin-polyfill-regenerator@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077" + integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.2.2" + "babel-plugin-styled-components@>= 1.12.0": version "1.12.0" resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.12.0.tgz#1dec1676512177de6b827211e9eda5a30db4f9b9" @@ -723,6 +1507,16 @@ browserslist@^4.12.2, browserslist@^4.16.6: escalade "^3.1.1" node-releases "^1.1.71" +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +builtin-modules@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" + integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== + call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -817,6 +1611,16 @@ colorette@^1.2.2: resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +common-tags@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" + integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -829,6 +1633,14 @@ convert-source-map@^1.7.0: dependencies: safe-buffer "~5.1.1" +core-js-compat@^3.14.0: + version "3.14.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.14.0.tgz#b574dabf29184681d5b16357bd33d104df3d29a5" + integrity sha512-R4NS2eupxtiJU+VwgkF9WTpnSfZW4pogwKHd8bclWU2sp93Pr5S1uYJI84cMOubJRou7bcfL0vmwtLslWN5p3A== + dependencies: + browserslist "^4.16.6" + semver "7.0.0" + core-js@^3.6.5: version "3.14.0" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.14.0.tgz#62322b98c71cc2018b027971a69419e2425c2a6c" @@ -843,6 +1655,11 @@ cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + css-color-keywords@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" @@ -889,6 +1706,13 @@ debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: dependencies: ms "2.1.2" +debug@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + deep-is@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" @@ -937,6 +1761,11 @@ duplexer@~0.1.1: resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== +ejs@^2.6.1: + version "2.7.4" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" + integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== + electron-to-chromium@^1.3.723: version "1.3.752" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.752.tgz#0728587f1b9b970ec9ffad932496429aef750d09" @@ -1211,6 +2040,11 @@ estraverse@^5.1.0, estraverse@^5.2.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== +estree-walker@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== + estree-walker@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" @@ -1269,7 +2103,7 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.1.1: +fast-glob@^3.1.1, fast-glob@^3.2.5: version "3.2.5" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== @@ -1281,7 +2115,7 @@ fast-glob@^3.1.1: micromatch "^4.0.2" picomatch "^2.2.1" -fast-json-stable-stringify@^2.0.0: +fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== @@ -1345,6 +2179,16 @@ from@~0: resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= +fs-extra@^9.0.1: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -1379,6 +2223,11 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.1" +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + glob-parent@^5.1.0, glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -1422,6 +2271,11 @@ globby@^11.0.3: merge2 "^1.3.0" slash "^3.0.0" +graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.6" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" + integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== + has-bigints@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" @@ -1559,6 +2413,11 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= + is-negative-zero@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" @@ -1574,6 +2433,11 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + is-promise@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" @@ -1587,6 +2451,16 @@ is-regex@^1.1.3: call-bind "^1.0.2" has-symbols "^1.0.2" +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= + +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + is-string@^1.0.5, is-string@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" @@ -1609,6 +2483,15 @@ isomorphic-ws@^4.0.1: resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== +jest-worker@^26.2.1: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -1627,6 +2510,11 @@ jsesc@^2.5.1: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -1649,6 +2537,15 @@ json5@^2.1.2: dependencies: minimist "^1.2.5" +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + "jsx-ast-utils@^2.4.1 || ^3.0.0": version "3.2.0" resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz#41108d2cec408c3453c1bbe8a4aae9e1e2bd8f82" @@ -1696,6 +2593,11 @@ lodash.clonedeep@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + lodash.defaultsdeep@^4.6.1: version "4.6.1" resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz#512e9bd721d272d94e3d3a63653fa17516741ca6" @@ -1716,12 +2618,17 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + lodash.truncate@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= -lodash@^4.17.11, lodash@^4.17.15, lodash@^4.17.21: +lodash@^4.17.11, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -1747,6 +2654,13 @@ lru-queue@^0.1.0: dependencies: es5-ext "~0.10.2" +magic-string@^0.25.0, magic-string@^0.25.7: + version "0.25.7" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" + integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== + dependencies: + sourcemap-codec "^1.4.4" + map-stream@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" @@ -1766,6 +2680,11 @@ memoizee@^0.4.15: next-tick "^1.1.0" timers-ext "^0.1.7" +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + merge2@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" @@ -1856,7 +2775,7 @@ object-keys@^1.0.12, object-keys@^1.1.1: resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.2: +object.assign@^4.1.0, object.assign@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== @@ -2018,6 +2937,11 @@ prettier@^2.3.1: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.1.tgz#76903c3f8c4449bc9ac597acefa24dc5ad4cbea6" integrity sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA== +pretty-bytes@^5.3.0, pretty-bytes@^5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" + integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== + progress@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" @@ -2054,6 +2978,13 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + react-device-detect@^1.17.0: version "1.17.0" resolved "https://registry.yarnpkg.com/react-device-detect/-/react-device-detect-1.17.0.tgz#a00b4fd6880cebfab3fd8a42a79dc0290cdddca9" @@ -2117,11 +3048,30 @@ redux@^4.0.0, redux@^4.1.0: dependencies: "@babel/runtime" "^7.9.2" +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== + dependencies: + regenerate "^1.4.0" + +regenerate@^1.4.0: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + regenerator-runtime@^0.13.4: version "0.13.7" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== +regenerator-transform@^0.14.2: + version "0.14.5" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" + integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== + dependencies: + "@babel/runtime" "^7.8.4" + regexp.prototype.flags@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" @@ -2135,6 +3085,30 @@ regexpp@^3.1.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== +regexpu-core@^4.7.1: + version "4.7.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" + integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.2.0" + regjsgen "^0.5.1" + regjsparser "^0.6.4" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.2.0" + +regjsgen@^0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" + integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== + +regjsparser@^0.6.4: + version "0.6.9" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.9.tgz#b489eef7c9a2ce43727627011429cf833a7183e6" + integrity sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ== + dependencies: + jsesc "~0.5.0" + require-from-string@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" @@ -2145,7 +3119,7 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve@^1.12.0, resolve@^1.19.0: +resolve@^1.12.0, resolve@^1.14.2, resolve@^1.19.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -2189,7 +3163,17 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" -rollup@^2.38.5: +rollup-plugin-terser@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" + integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ== + dependencies: + "@babel/code-frame" "^7.10.4" + jest-worker "^26.2.1" + serialize-javascript "^4.0.0" + terser "^5.0.0" + +rollup@^2.38.5, rollup@^2.43.1, rollup@^2.51.2: version "2.52.1" resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.52.1.tgz#dd1cc178d70cf35c48d943fc06fdc32d546e6876" integrity sha512-/SPqz8UGnp4P1hq6wc9gdTqA2bXQXGx13TtoL03GBm6qGRI6Hm3p4Io7GeiHNLl0BsQAne1JNYY+q/apcY933w== @@ -2203,6 +3187,11 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" +safe-buffer@^5.1.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -2215,12 +3204,17 @@ sass@^1.35.1: dependencies: chokidar ">=3.0.0 <4.0.0" +semver@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + semver@7.3.2: version "7.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== -semver@^6.3.0: +semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -2232,6 +3226,13 @@ semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: dependencies: lru-cache "^6.0.0" +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + shallowequal@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" @@ -2277,11 +3278,46 @@ source-map-js@^0.6.2: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== +source-map-support@~0.5.19: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + source-map@^0.5.0: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.8.0-beta.0: + version "0.8.0-beta.0" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11" + integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA== + dependencies: + whatwg-url "^7.0.0" + +source-map@~0.7.2: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +sourcemap-codec@^1.4.4: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + split@0.3: version "0.3.3" resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" @@ -2345,6 +3381,15 @@ string.prototype.trimstart@^1.0.4: call-bind "^1.0.2" define-properties "^1.1.3" +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + strip-ansi@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" @@ -2352,6 +3397,11 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" +strip-comments@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-2.0.1.tgz#4ad11c3fbcac177a67a40ac224ca339ca1c1ba9b" + integrity sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw== + strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -2380,7 +3430,7 @@ supports-color@^5.3.0, supports-color@^5.5.0: dependencies: has-flag "^3.0.0" -supports-color@^7.1.0: +supports-color@^7.0.0, supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== @@ -2399,6 +3449,30 @@ table@^6.0.9: string-width "^4.2.0" strip-ansi "^6.0.0" +temp-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" + integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== + +tempy@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.6.0.tgz#65e2c35abc06f1124a97f387b08303442bde59f3" + integrity sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw== + dependencies: + is-stream "^2.0.0" + temp-dir "^2.0.0" + type-fest "^0.16.0" + unique-string "^2.0.0" + +terser@^5.0.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.0.tgz#a761eeec206bc87b605ab13029876ead938ae693" + integrity sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g== + dependencies: + commander "^2.20.0" + source-map "~0.7.2" + source-map-support "~0.5.19" + text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -2429,6 +3503,13 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + tsc-watch@^4.1.0: version "4.4.0" resolved "https://registry.yarnpkg.com/tsc-watch/-/tsc-watch-4.4.0.tgz#3ebbf1db54bcef6bfe534b330fa87284a4139320" @@ -2459,6 +3540,11 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" +type-fest@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860" + integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== + type-fest@^0.20.2: version "0.20.2" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" @@ -2499,6 +3585,46 @@ unbox-primitive@^1.0.1: has-symbols "^1.0.2" which-boxed-primitive "^1.0.2" +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== + +unicode-property-aliases-ecmascript@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" + integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== + +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +upath@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -2511,6 +3637,18 @@ v8-compile-cache@^2.0.3: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== +vite-plugin-pwa@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/vite-plugin-pwa/-/vite-plugin-pwa-0.8.1.tgz#8b6fc6c26fcc6fab9d39a087256ba6280173b6eb" + integrity sha512-Hrfz+NpZ6yroVm5yiCWQ1N9HX9o6H/CCyg7ZHiaP3ZZC29a0Z9lqnnicEAhZMLkVPJqHM60wowL0EJkyOVyxBg== + dependencies: + debug "^4.3.2" + fast-glob "^3.2.5" + pretty-bytes "^5.6.0" + rollup "^2.51.2" + workbox-build "^6.1.5" + workbox-window "^6.1.5" + vite@^2.3.7: version "2.3.7" resolved "https://registry.yarnpkg.com/vite/-/vite-2.3.7.tgz#3023892419367465e1af1739578f8663d04243b2" @@ -2523,6 +3661,20 @@ vite@^2.3.7: optionalDependencies: fsevents "~2.3.1" +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -2546,6 +3698,161 @@ word-wrap@^1.2.3: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== +workbox-background-sync@^6.1.5: + version "6.1.5" + resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.1.5.tgz#83904fc6487722db98ed9b19eaa39ab5f826c33e" + integrity sha512-VbUmPLsdz+sLzuNxHvMylzyRTiM4q+q7rwLBk3p2mtRL5NZozI8j/KgoGbno96vs84jx4b9zCZMEOIKEUTPf6w== + dependencies: + workbox-core "^6.1.5" + +workbox-broadcast-update@^6.1.5: + version "6.1.5" + resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-6.1.5.tgz#49a2a4cc50c7b1cfe86bed6d8f15edf1891d1e79" + integrity sha512-zGrTTs+n4wHpYtqYMqBg6kl/x5j1UrczGCQnODSHTxIDV8GXLb/GtA1BCZdysNxpMmdVSeLmTcgIYAAqWFamrA== + dependencies: + workbox-core "^6.1.5" + +workbox-build@^6.1.5: + version "6.1.5" + resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-6.1.5.tgz#31c3034a38527f1f7697335c15af9c5593168841" + integrity sha512-P+fakR5QFVqJN9l9xHVXtmafga72gh9I+jM3A9HiB/6UNRmOAejXnDgD+RMegOHgQHPwnB44TalMToFaXKWIyA== + dependencies: + "@babel/core" "^7.11.1" + "@babel/preset-env" "^7.11.0" + "@babel/runtime" "^7.11.2" + "@hapi/joi" "^16.1.8" + "@rollup/plugin-babel" "^5.2.0" + "@rollup/plugin-node-resolve" "^11.2.1" + "@rollup/plugin-replace" "^2.4.1" + "@surma/rollup-plugin-off-main-thread" "^1.4.1" + common-tags "^1.8.0" + fast-json-stable-stringify "^2.1.0" + fs-extra "^9.0.1" + glob "^7.1.6" + lodash "^4.17.20" + pretty-bytes "^5.3.0" + rollup "^2.43.1" + rollup-plugin-terser "^7.0.0" + source-map "^0.8.0-beta.0" + source-map-url "^0.4.0" + stringify-object "^3.3.0" + strip-comments "^2.0.1" + tempy "^0.6.0" + upath "^1.2.0" + workbox-background-sync "^6.1.5" + workbox-broadcast-update "^6.1.5" + workbox-cacheable-response "^6.1.5" + workbox-core "^6.1.5" + workbox-expiration "^6.1.5" + workbox-google-analytics "^6.1.5" + workbox-navigation-preload "^6.1.5" + workbox-precaching "^6.1.5" + workbox-range-requests "^6.1.5" + workbox-recipes "^6.1.5" + workbox-routing "^6.1.5" + workbox-strategies "^6.1.5" + workbox-streams "^6.1.5" + workbox-sw "^6.1.5" + workbox-window "^6.1.5" + +workbox-cacheable-response@^6.1.5: + version "6.1.5" + resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-6.1.5.tgz#2772e09a333cba47b0923ed91fd022416b69e75c" + integrity sha512-x8DC71lO/JCgiaJ194l9le8wc8lFPLgUpDkLhp2si7mXV6S/wZO+8Osvw1LLgYa8YYTWGbhbFhFTXIkEMknIIA== + dependencies: + workbox-core "^6.1.5" + +workbox-core@^6.1.5: + version "6.1.5" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-6.1.5.tgz#424ff600e2c5448b14ebd58b2f5ac8ed91b73fb9" + integrity sha512-9SOEle7YcJzg3njC0xMSmrPIiFjfsFm9WjwGd5enXmI8Lwk8wLdy63B0nzu5LXoibEmS9k+aWF8EzaKtOWjNSA== + +workbox-expiration@^6.1.5: + version "6.1.5" + resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-6.1.5.tgz#a62a4ac953bb654aa969ede13507ca5bd154adc2" + integrity sha512-6cN+FVbh8fNq56LFKPMchGNKCJeyboHsDuGBqmhDUPvD4uDjsegQpDQzn52VaE0cpywbSIsDF/BSq9E9Yjh5oQ== + dependencies: + workbox-core "^6.1.5" + +workbox-google-analytics@^6.1.5: + version "6.1.5" + resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-6.1.5.tgz#895fcc50e4976c176b5982e1a8fd08776f18d639" + integrity sha512-LYsJ/VxTkYVLxM1uJKXZLz4cJdemidY7kPyAYtKVZ6EiDG89noASqis75/5lhqM1m3HwQfp2DtoPrelKSpSDBA== + dependencies: + workbox-background-sync "^6.1.5" + workbox-core "^6.1.5" + workbox-routing "^6.1.5" + workbox-strategies "^6.1.5" + +workbox-navigation-preload@^6.1.5: + version "6.1.5" + resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-6.1.5.tgz#47a0d3a6d2e74bd3a52b58b72ca337cb5b654310" + integrity sha512-hDbNcWlffv0uvS21jCAC/mYk7NzaGRSWOQXv1p7bj2aONAX5l699D2ZK4D27G8TO0BaLHUmW/1A5CZcsvweQdg== + dependencies: + workbox-core "^6.1.5" + +workbox-precaching@^6.1.5: + version "6.1.5" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-6.1.5.tgz#9e0fecb5c567192f46783323fccea10bffc9f79e" + integrity sha512-yhm1kb6wgi141JeM5X7z42XJxCry53tbMLB3NgrxktrZbwbrJF8JILzYy+RFKC9tHC6u2bPmL789GPLT2NCDzw== + dependencies: + workbox-core "^6.1.5" + workbox-routing "^6.1.5" + workbox-strategies "^6.1.5" + +workbox-range-requests@^6.1.5: + version "6.1.5" + resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-6.1.5.tgz#047ccd12838bebe51a720256a4ca0cfa7197dfd3" + integrity sha512-iACChSapzB0yuIum3ascP/+cfBNuZi5DRrE+u4u5mCHigPlwfSWtlaY+y8p+a8EwcDTVTZVtnrGrRnF31SiLqQ== + dependencies: + workbox-core "^6.1.5" + +workbox-recipes@^6.1.5: + version "6.1.5" + resolved "https://registry.yarnpkg.com/workbox-recipes/-/workbox-recipes-6.1.5.tgz#bb1f8976bcdb202618d967596e9f248e6077e69a" + integrity sha512-MD1yabHca6O/oj1hrRdfj9cRwhKA5zqIE53rWOAg/dKMMzWQsf9nyRbXRgzK3a13iQvYKuQzURU4Cx58tdnR+Q== + dependencies: + workbox-cacheable-response "^6.1.5" + workbox-core "^6.1.5" + workbox-expiration "^6.1.5" + workbox-precaching "^6.1.5" + workbox-routing "^6.1.5" + workbox-strategies "^6.1.5" + +workbox-routing@^6.1.5: + version "6.1.5" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-6.1.5.tgz#15884d6152dba03faef83f0b23331846d8b6ef8e" + integrity sha512-uC/Ctz+4GXGL42h1WxUNKxqKRik/38uS0NZ6VY/EHqL2F1ObLFqMHUZ4ZYvyQsKdyI82cxusvhJZHOrY0a2fIQ== + dependencies: + workbox-core "^6.1.5" + +workbox-strategies@^6.1.5: + version "6.1.5" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-6.1.5.tgz#2549a3e78f0eda371b760c4db21feb0d26143573" + integrity sha512-QhiOn9KT9YGBdbfWOmJT6pXZOIAxaVrs6J6AMYzRpkUegBTEcv36+ZhE/cfHoT0u2fxVtthHnskOQ/snEzaXQw== + dependencies: + workbox-core "^6.1.5" + +workbox-streams@^6.1.5: + version "6.1.5" + resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-6.1.5.tgz#bb7678677275fc23c9627565a1f238e4ca350290" + integrity sha512-OI1kLvRHGFXV+soDvs6aEwfBwdAkvPB0mRryqdh3/K17qUj/1gRXc8QtpgU+83xqx/I/ar2bTCIj0KPzI/ChCQ== + dependencies: + workbox-core "^6.1.5" + workbox-routing "^6.1.5" + +workbox-sw@^6.1.5: + version "6.1.5" + resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-6.1.5.tgz#06eb0c91f22e207422175b3f815cd2181c7074a0" + integrity sha512-IMDiqxYbKzPorZLGMUMacLB6r76iVQbdTzYthIZoPfy+uFURJFUtqiWQJKg1L+RMyuYXwKXTahCIGkgFs4jBeg== + +workbox-window@^6.1.5: + version "6.1.5" + resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-6.1.5.tgz#017b22342e10c6df6b9672326b575ec950b6cd80" + integrity sha512-akL0X6mAegai2yypnq78RgfazeqvKbsllRtEI4dnbhPcRINEY1NmecFmsQk8SD+zWLK1gw5OdwAOX+zHSRVmeA== + dependencies: + workbox-core "^6.1.5" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"