This Flutter project is a chat application inspired by WhatsApp. The app features a familiar interface with a functional chat page, a Local Auth Screen, and user registration using email/password or Google Account.
![drawing](https://private-user-images.githubusercontent.com/75115429/311638731-7c602d05-8f31-4d3c-8d68-c565cedbb167.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMTE2Mzg3MzEtN2M2MDJkMDUtOGYzMS00ZDNjLThkNjgtYzU2NWNlZGJiMTY3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWY1ZmVkZDNmN2JiZjUxMGJhMjY3NDVhMzk2NDU1ZDliZGZlMzI5YWYwMDc5NzE0YTFkNjMyYzdkNTNiNTNhNWEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.UKiHt1lGrvvL0nktrAs-RrRiJXxGT6HhsyRyYXa79-g)
![drawing](https://private-user-images.githubusercontent.com/75115429/311638799-05f671fa-1307-4998-ab9a-0f4c073aae74.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMTE2Mzg3OTktMDVmNjcxZmEtMTMwNy00OTk4LWFiOWEtMGY0YzA3M2FhZTc0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTdkODMxMDlkYmJmZjM1MzI5NTQzNjQ5ZWRmZTNlYWRjN2M0MTU3OTMzZTcxZDMzYmIxNDU0YTQzOGIxN2JlYTAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.ccTueSFMFd9BQ-OcUZcIm-QuJApKr16DmbyKzbGbIGY)
![drawing](https://private-user-images.githubusercontent.com/75115429/328134514-56647ac8-b9fd-41f4-9aa9-e531b6b6607c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzQ1MTQtNTY2NDdhYzgtYjlmZC00MWY0LTlhYTktZTUzMWI2YjY2MDdjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk3MWM5NzU1NjRmNjVjMDJjNTE1Y2ZiZDNiYTA3MWRjYjY0MjQzYWZkMjZkMjdjNDdkY2E0NjlhNDJiYWJhZjEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.UoKKTH16oQyumGcAgCv_VZbTCW7-1iciPDy8Qq2tFyY)
![drawing](https://private-user-images.githubusercontent.com/75115429/328135653-6a7407df-504c-41f2-94f2-5668a14e685b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzU2NTMtNmE3NDA3ZGYtNTA0Yy00MWYyLTk0ZjItNTY2OGExNGU2ODViLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWU2ZWJjY2FhZGNjZTJmYzU1NzU0NzRhZTdjYzIyM2ZjYjc0NTIxNTRlNTE1ZjcwNTAxYzZhYjRmMmQzMGQ1NzMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.kQcFvVcAyD5ZZ_SIIrF9RRl44AN1yjn3wrQla7t9L1M)
![drawing](https://private-user-images.githubusercontent.com/75115429/311364914-1cc7b06d-f7b2-4ea8-8895-faa002588433.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMTEzNjQ5MTQtMWNjN2IwNmQtZjdiMi00ZWE4LTg4OTUtZmFhMDAyNTg4NDMzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTdiZWY1Y2RmNzY5NzNiM2FiMTcwZWU0Y2RiNDQ2YWZlMWVhNGY2NzkyNWYzYjIwYTFkN2YxNTA3OTcxYWNjNjMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.e_MhDJXaONLDQnOhtUeox041jy38S12xQ-EMRTlg0QI)
![drawing](https://private-user-images.githubusercontent.com/75115429/311365053-6898582c-fe9f-4168-acd1-55e15219fdfb.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMTEzNjUwNTMtNjg5ODU4MmMtZmU5Zi00MTY4LWFjZDEtNTVlMTUyMTlmZGZiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWIzNGZlMDA3MDczYzE0YzNkZDYyZWU1YTk2MWM3MWU5ZmUzZTgxOGJiOWQ2ZWQyYzg4N2NmNjE1NjYzZDUyMmYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.2zubaICpSpywRf07WRWqAb4UxRwPZHQsNIZ00QodWXc)
![drawing](https://private-user-images.githubusercontent.com/75115429/311365108-e12a3e09-384f-4ae7-af0d-159c87be9ec9.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMTEzNjUxMDgtZTEyYTNlMDktMzg0Zi00YWU3LWFmMGQtMTU5Yzg3YmU5ZWM5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWE5NWI3NWEzMGI0NzNlNDkyOGZiMTQ4MTFjNzZkYjk1ZjE4MTc0Nzg1ZjBiMTAyMWY4M2ZhNTNiNDc1MDI5NmImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.MVm5b2w1Z8E0LiOdMu7oIO_YO89sshROIVFqPkjzqXs)
![drawing](https://private-user-images.githubusercontent.com/75115429/311365196-9e1f9c54-a438-4e4e-a3a8-c7f84a63466a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMTEzNjUxOTYtOWUxZjljNTQtYTQzOC00ZTRlLWEzYTgtYzdmODRhNjM0NjZhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWNjZDQ0YTRlYjg5ZWYzMGE3MWM4MDMwZTY5ZWExNDNlMzQ0YTVjOTE5ZjIxYTZhODQxNWM0OGZjY2VlMjczZDMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.5U-LVl_SMhqQO2RIcpJKls-NEyXDac-nUeGxkTKBu8M)
![drawing](https://private-user-images.githubusercontent.com/75115429/328136075-e9154925-34bb-4aa7-86a2-0031c540d444.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzYwNzUtZTkxNTQ5MjUtMzRiYi00YWE3LTg2YTItMDAzMWM1NDBkNDQ0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTNiMzc1NjIwMGRhNjZhYWU0ZTVlZThjNTZjODQ1ZDJmMTA1NWExNDA1OWNkNWMxY2VkNTJlYTNjNTRjN2ViODAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.2OVfJGpR7F7pPwNMYvYJXfoKxBP7xwQ4M_TEcxiI1xY)
![drawing](https://private-user-images.githubusercontent.com/75115429/311365612-c950c7dc-f50c-4c9c-975e-f7e6abd60ba6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMTEzNjU2MTItYzk1MGM3ZGMtZjUwYy00YzljLTk3NWUtZjdlNmFiZDYwYmE2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTg1NTdiOTZjNjg0MDQ3YjJjMzY5ZGY0MmIxOTZiNmM2ZTFjYmY1ODMzNGRkYWZmYWU2MmJlODY0NzJmYmRiODMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.N4pk_s5BYKdhjjnZt5HRSM9xZ_4oFZ_L-b5leK14Vzg)
![drawing](https://private-user-images.githubusercontent.com/75115429/311365664-472d4063-88a9-488d-9a77-96bb16e5432d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMTEzNjU2NjQtNDcyZDQwNjMtODhhOS00ODhkLTlhNzctOTZiYjE2ZTU0MzJkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTM0YmQ4N2M1OGZlNzc1MTZlMjM2YmE2ZTJhZDhjMmI0MDMwNjNkYzI5YjJjODcxM2Q5YTY5MGFlNTIwMDMzNWImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.Atj2nC1Tav-NOjZXVXU6r4762ydpjQEzsbdbSz3oG9I)
![drawing](https://private-user-images.githubusercontent.com/75115429/328136375-817baebb-6dcc-4acb-a121-2b40bc279acb.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzYzNzUtODE3YmFlYmItNmRjYy00YWNiLWExMjEtMmI0MGJjMjc5YWNiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWU2OWI5MWMzMjdlY2M1ZmYyODY3ZTU0M2ZmOGU4NTMxZTU5Zjk5MzQzMTQyOWM1MTA3N2JjZTU4NmFmY2E0MjMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.firgvz26wG_PVFWj1AikW7p_JdzvM5SrE6Acgc230W8)
![drawing](https://private-user-images.githubusercontent.com/75115429/311366392-f611aabb-3a7a-40d3-9913-34d82c49ff14.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMTEzNjYzOTItZjYxMWFhYmItM2E3YS00MGQzLTk5MTMtMzRkODJjNDlmZjE0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWY4ZmRhYjhiZGNlMDhlOTNkOWYwNzU4NTE1ZTIxNTQxMjQ0NmJmOWY4ZmYxYmIxMDZlZDkyZjQxOWU2ZmI1NzMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.Fba40PmpNcxgk1qcTUDm5u_vn02ggBN1WKHTQW27PW8)
![drawing](https://private-user-images.githubusercontent.com/75115429/311366479-cad93a1c-538f-4e31-b19b-a6ba890ee6e6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMTEzNjY0NzktY2FkOTNhMWMtNTM4Zi00ZTMxLWIxOWItYTZiYTg5MGVlNmU2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTgxY2Q1M2RhZDRmNGUxOGQ0ODM5ZGZkZWU3YWZmYjc0ZGM2OWMyZmY4YTE3Mjc3MGE0NGJlMmE2MjExNmIwMjEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0._WFmYXeiWG7rkm986Rm8_Mu4rvVsUM8XPGqldciifBI)
![drawing](https://private-user-images.githubusercontent.com/75115429/311366550-9bd02d42-86a9-4195-a9b1-7aeaaed92f2e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMTEzNjY1NTAtOWJkMDJkNDItODZhOS00MTk1LWE5YjEtN2FlYWFlZDkyZjJlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTIxNWM1MmM4ZDkyNzA1NTVhMzg1MGYzYWFkMjJhNWUwMDZlNDA4NWVmYmEyYzBmYTQ1MDI4MjE2MTU0MmQ4MmImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.n0lkYOv4C9aOBlC32XwV_ptR2yEBK3kU5OmAejLRUJI)
![drawing](https://private-user-images.githubusercontent.com/75115429/328136671-066c809b-f7a1-4a02-94b5-48aa9b06f6fc.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzY2NzEtMDY2YzgwOWItZjdhMS00YTAyLTk0YjUtNDhhYTliMDZmNmZjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWU0MjM0NzZkMWY1ZWRlYmVkZjFlZjdhYjMzYTMzZTdlOGYyOGFlNGY1NzkyNWU3ZDQxYmE3NThkMTM2MTE1YjEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.CF4OFWx2hNx_ToaQEawK5G0YE_AG42_IIG10uTlyy-c)
![drawing](https://private-user-images.githubusercontent.com/75115429/311366899-e112a7fe-be28-40a8-b108-8f7d0def4556.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMTEzNjY4OTktZTExMmE3ZmUtYmUyOC00MGE4LWIxMDgtOGY3ZDBkZWY0NTU2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWYwNmNjOGY5MGNiMzBiNjk0OWNhN2MxNTk5Y2U2MzE3OWYzYzI4NGRiOGRiNmNiMjgxMjk2NzQxMWQ2YWExYjAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.oJNCYkmD4nX59tbx9QSn6EuuOAOX-zN4mhTMTzEZQ4E)
![drawing](https://private-user-images.githubusercontent.com/75115429/311367016-7d3ff005-98f6-483c-9c5f-b476eda97c18.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMTEzNjcwMTYtN2QzZmYwMDUtOThmNi00ODNjLTljNWYtYjQ3NmVkYTk3YzE4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTEzMWJkZjkwY2JhOTRiMjYzMmJhZDIxOGUyOGRjNWRmNTFlNzY1YTcxODViZmY4YzRjMDgxNTUxMTA3ZWQ0ZGYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.FhqAYpyvsTaC6EiDbtphrNymp2MRBXkdV_bsSezlRyI)
![drawing](https://private-user-images.githubusercontent.com/75115429/328137397-728643a7-dae5-4afd-843f-cc52c782cc1b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzczOTctNzI4NjQzYTctZGFlNS00YWZkLTg0M2YtY2M1MmM3ODJjYzFiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWZjOTk3OWFhYmFjNGM3ZjFlMmMzZjY5YThjYTNlYTY5Zjc0YTYwY2YwMjUzMWZmMmE2NGIyNzE2YzM1YWIzODEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.nQ7rG5P-P-jMOInsYlYICxagc7hjbz_taPXzsgpHE64)
![drawing](https://private-user-images.githubusercontent.com/75115429/328137315-fca11d40-e36e-467b-aeb3-fd7c71d2d3d4.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzczMTUtZmNhMTFkNDAtZTM2ZS00NjdiLWFlYjMtZmQ3YzcxZDJkM2Q0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWUxODEwNjhkOTE3NzcxOGE0MTU0NzljMjE2ZjM1NDdkZGY5NDFmMWEzY2M3ZjE0MzMzY2U1ZjI1MGQ5MGMyNDkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.0lk2lqV5x-HTvNAFSszZ67CYzKRw5xLm8-SFbmcuOQs)
![drawing](https://private-user-images.githubusercontent.com/75115429/328137167-c7730983-4dbf-4f5a-82bf-3d7ebd420958.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzcxNjctYzc3MzA5ODMtNGRiZi00ZjVhLTgyYmYtM2Q3ZWJkNDIwOTU4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTM2YTFlODY3MjM1YjAyZTdmZmZjY2M4OTRlZmU1MWViZTk0ZGIwZDg3Y2M0YTdhMWYwY2EzMWFlMmRiODlmOWEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.IZ6sMCaU5VenvzXq28PU9b59ynaKRCxFJSYR_iqNswM)
![drawing](https://private-user-images.githubusercontent.com/75115429/328137970-0903c423-ae48-4e4f-b824-35e66b95859a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzc5NzAtMDkwM2M0MjMtYWU0OC00ZTRmLWI4MjQtMzVlNjZiOTU4NTlhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTA3ZjBkY2YyZDBmMjU2NzdiMmRjZTNhZjg2N2YwMDg5YTMyMTFiNjcxMjU5YzkxYjIxZWI1NDE4Yzk4OGMwZWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.shctbkkoJ5N-koGySs0QYJ5wdNvQTpY1nEDst8MmVts)
![drawing](https://private-user-images.githubusercontent.com/75115429/328138093-961764ab-aa39-4358-9c49-46642c61a25b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzgwOTMtOTYxNzY0YWItYWEzOS00MzU4LTljNDktNDY2NDJjNjFhMjViLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTUyYTFiNmFhNzcxZDFiMzEwZTY0OTU4OWQ2Mzg4YzkxMjdlOThkY2RiNGMwODE2Zjg2ZTNmYmQxZjcwZmFmOWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.OcJ_TC6FOjtn5pqTgFVGMDkeERj_KKALmymPJKOFYWk)
![drawing](https://private-user-images.githubusercontent.com/75115429/328138201-5c4007b0-e594-468c-94e8-2fb7d46aacb4.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzgyMDEtNWM0MDA3YjAtZTU5NC00NjhjLTk0ZTgtMmZiN2Q0NmFhY2I0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQ2Y2E1MzljNDY1Y2Q1ZjdiZTk4OGFkOTQ5NGY1ZmY0NzZjOWM2OTU2MDE0NmZjNjljNDRkM2Y3MDI5MWNhZTEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0._5EYwHvtkZ1O7sXN_7eOC8wS4yjASIRG8mZ2bIYC4xs)
![drawing](https://private-user-images.githubusercontent.com/75115429/328138755-05581d7d-1543-47df-a42b-9c076effdc6f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzg3NTUtMDU1ODFkN2QtMTU0My00N2RmLWE0MmItOWMwNzZlZmZkYzZmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY0ZmQ3MjAwMjczZTY0NzFmMTk5NzA4NmIzZThiNTk1MGJjZjI5OTJlZDNiMDI2ZDdkYjM4ZmRjMTQwNTc3NTImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.BpUVDbkGip4HB8M4XOU6e5pgEXBFRt0344vtmVvC9UI)
![drawing](https://private-user-images.githubusercontent.com/75115429/328138876-3d138ba2-cd1f-4cb4-bb4c-afc56cc72387.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzg4NzYtM2QxMzhiYTItY2QxZi00Y2I0LWJiNGMtYWZjNTZjYzcyMzg3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWM5MWNjYzZlN2QwZmNhNWZjNzcwNzA2ZDkwZTdhODk1ZjZmYWYwYTM1M2MxZDVhMzAyMDM4YTFiNzU2NzVjYmImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.gX8ZiQzxpiitnQAV8GlsrNgtAmEK7sy-c74770Tt1rE)
![drawing](https://private-user-images.githubusercontent.com/75115429/328138975-5d4b01b8-8aeb-43ab-935c-0fd57077eb80.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzg5NzUtNWQ0YjAxYjgtOGFlYi00M2FiLTkzNWMtMGZkNTcwNzdlYjgwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWJkYzgxYzVkMzI5YjhmZTUwZjU5OTk5YTg1OTAyYjc3ZWUwNTUzMWU0MDc0Y2UwM2FkYTBlODc3ZTg1ZDg0NzMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0._73ptYZkCpninHg2gqecDsUquXS4GRvoIiAxryJNlEQ)
![drawing](https://private-user-images.githubusercontent.com/75115429/328139100-c5917daa-66dc-4ccf-9d04-67384061609d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzkxMDAtYzU5MTdkYWEtNjZkYy00Y2NmLTlkMDQtNjczODQwNjE2MDlkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPThhZWFhZDRkY2MxZDNiYzMwNGRjZGY2MzM0NWU5NjVmY2JjNTA1ZDhhZGMwYzgwZDM4MDEwMzA1YWViZDVmZDImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.n02VShmXKKlM920hGCiG72aht1whnh0f_XlLkd7rEoQ)
![drawing](https://private-user-images.githubusercontent.com/75115429/328139699-bcce51d3-1d24-4819-977d-33a939f32dfc.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzk2OTktYmNjZTUxZDMtMWQyNC00ODE5LTk3N2QtMzNhOTM5ZjMyZGZjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTc0ZGM3ODA5OGQ4YjcxOTYyODIxNjc2MmU4MWVjYjljYjhlODI0NjUxZTA3OGM1ZDFjMjkxYTk2Y2MzY2IzZjYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.s4Nuo6GpgQRHg-gjTzsSMMuBsG3qnkoxKxRjdUhmTr4)
![drawing](https://private-user-images.githubusercontent.com/75115429/328139800-1b4345a9-0057-42af-b4de-59b2d3b6ef67.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzk4MDAtMWI0MzQ1YTktMDA1Ny00MmFmLWI0ZGUtNTliMmQzYjZlZjY3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWUzMTgwNzgwNDI5MGRmMTExNWMxNzUyNDI5MzA3NzliOTEzZjQ4YjlkMDU0OGY5MzJmMWRlNWZkNzk1YzkxNmMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.9Z-5eUGwjYiikH_QlMX0DeGaz7zxM8wpXeUjvzYcf6I)
![drawing](https://private-user-images.githubusercontent.com/75115429/328155786-029149ef-bfd5-48ae-8cf7-fb0fd2c8fc92.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMjgxNTU3ODYtMDI5MTQ5ZWYtYmZkNS00OGFlLThjZjctZmIwZmQyYzhmYzkyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWZmMDY1NDdkZmQ3MjA3NDllNzM0MzE0NmM5ZWFhODUzNTNhMTk2NjYyNzhiNmM2YWYyYmFjMzc5YWRlNmZmMTgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.He9aokMFQ8-wOT9yvWUA678MuIsU00zy6M_Wd15n1TU)
![drawing](https://private-user-images.githubusercontent.com/75115429/328140048-9e93edda-23f3-47ca-9ed8-bdab22389e0c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMjgxNDAwNDgtOWU5M2VkZGEtMjNmMy00N2NhLTllZDgtYmRhYjIyMzg5ZTBjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTgxOWNiODkyNTMzNDhhMjkxYWMxN2NhZWVkMTQ5YzRlYmJiNGZlZjdiNmMzNjI0N2M5YWRhY2U4Y2FlNzRkZTAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.wZffyR3MOgeHABaDzBR7PgCFHtgNqpO8Bv3dN7bV7U0)
![drawing](https://private-user-images.githubusercontent.com/75115429/328140384-5031ade5-8105-4467-af19-09077cf56091.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMjgxNDAzODQtNTAzMWFkZTUtODEwNS00NDY3LWFmMTktMDkwNzdjZjU2MDkxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRiOGUwZmI5YzNkNjgwN2YyZDg0NDEyYjEyMzFmZmQ0MjVmMGQ0OGY2ODhlYjE1OTY1ZGRhZmY2MDI0Njk4MjMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.-SR6InJnuSrLkHzOwdvpeT3rO8h6rPCG8dldA_hsO5I)
![drawing](https://private-user-images.githubusercontent.com/75115429/328140407-9c160fa2-3247-472d-a0e2-709bf87fbad3.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMjgxNDA0MDctOWMxNjBmYTItMzI0Ny00NzJkLWEwZTItNzA5YmY4N2ZiYWQzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTc2ODA1MTgwYjBiOGUwMDZlNWUzYzc5YzcxMWU2M2Q5Mjg1N2JjOTIyMTkzMDU3OTBhNDZlZWMzMjIyYTkyODAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.k7NBPOmfOwGb5u6r2Nhw1qTkyN8BFNcVwG7B4QM3xNI)
![drawing](https://private-user-images.githubusercontent.com/75115429/328140422-0a3a969c-c2f7-455e-8ed7-f8b374eb05f2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMjgxNDA0MjItMGEzYTk2OWMtYzJmNy00NTVlLThlZDctZjhiMzc0ZWIwNWYyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI4MTgyZWE3MjU2MmUxMTkyNWVhOTliYzI3NzU3OGY1ZTVjMTViYTQ1YTJiOWZmM2Q2YzYwYWJlOWE1YjNjZGImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.p8MAC3YNYtgBObiVI8s5yvpeIQyeEomS7-o_lChR-94)
![drawing](https://private-user-images.githubusercontent.com/75115429/311374817-6c78984a-d83e-43c4-b1db-bb16e58b12d4.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMTEzNzQ4MTctNmM3ODk4NGEtZDgzZS00M2M0LWIxZGItYmIxNmU1OGIxMmQ0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTU5MTNjODIxZjE3OTAzZmIwYzNmYWYzNzEzZWZlZWQxYzUyMjQyMGRjYzJhNzE5MzlhMGU5M2VmMTg3Zjk1ZGImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.Ad6yj5kqlDsACXaj4rzesS03G8VBfnok-rSEpWHE0b8)
![drawing](https://private-user-images.githubusercontent.com/75115429/311640091-5089d0cd-27b4-4fce-9bfd-d4390d85a69a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTEyOTIsIm5iZiI6MTcxOTkxMDk5MiwicGF0aCI6Ii83NTExNTQyOS8zMTE2NDAwOTEtNTA4OWQwY2QtMjdiNC00ZmNlLTliZmQtZDQzOTBkODVhNjlhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDA5MDMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTE2MGFmZjA0YmNlMTIzNTMyNjM3Mjk3YThmYTIxYmIxOWIzZThmMThmODUxMTg2Yzc4MWE2ODYwNzdmNWE4ZjUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.Fw5g-bCPlByGZ-B9ApWgu4Xb4WtxpZPtdDEkeMfs7YM)
-
User Authentication:
- Email/Password registration with placeholder image.
- Google Account registration with profile image.
-
Chat Functionality:
- Display all registered users on the home page.
- Clicking on a user tile opens the chat page.
- Chat page displays saved messages from Firebase store.
- Input text field and send button for sending messages.
- Real-time updates using Firebase Cloud Firestore.
- Push notifications using Firebase Cloud Messaging.
-
Notification Handling:
- Display notifications when the app is in the foreground using
flutter_local_notifications
package. - Open the chat with the sender when the app is in the background or terminated.
- Display notifications when the app is in the foreground using
-
Security:
- App lock feature using fingerprint or face ID with
local_auth
package. - Fingerprint/face ID attempts are limited to prevent unauthorized access.
- Lock screen request after multiple unsuccessful attempts.
- App lock feature using fingerprint or face ID with
-
Settings:
- Accessible from the home page's three dots menu.
- Option to enable/disable app lock with a Cupertino switch.
- Option to Change App Language
-
Camera Integration:
- Capture high-quality photos using the device's camera.
- Save pictures on the device.
- Send photos
awesome_dialog
: Provides versatile dialogs for various use cases.cached_network_image
: Library to load and cache network images.chat_bubbles
: Simplifies chat message UI creation.cloud_firestore
: Integrates with Firebase Firestore for data storage and retrieval.dio
: HTTP client for making API requests.easy_localization
: Internationalizing and localization App.firebase_auth
: Manages user authentication with Firebase.firebase_core
: Initializes the Firebase connection.firebase_messaging
: Enables FCM for notifications.firebase_storage
: Plugin for Firebase Cloud Storage.flutter_local_notifications
: Presents local notifications when the app is in the foreground.flutter_native_splash
: Customize the App's default white native splash screen with background color and splash image.flutter_offline
: Handles offline connectivity scenarios.flutter_screenutil
: Adapts UI elements to different screen sizes.flutter_speed_dial
: Plugin to implement a beautiful and dynamic Material Design Speed Dial with labels.flutter_svg
: An SVG rendering and widget library.gap
: Simplifies spacing management in layouts.google_sign_in
: Facilitates Google Sign-In authentication.googleapis_auth
: Obtain Access credentials for Google services using OAuth 2.0.image_picker
: Plugin for selecting images from the image library, and taking new pictures with the camera.intl
: Internationalization and localization support.local_auth
: Enables fingerprint and Face ID authentication.logger
: Assists with logging messages for debugging.shared_preferences
: Stores simple data locally on the device.pretty_dio_logger
: A Dio interceptor that logs network calls in a pretty, easy-to-read format.modal_bottom_sheet
: Create awesome and powerful modal bottom sheets.lottie
: Render After Effects animations natively on Flutter.package_info_plus
: Querying information about the application package.pub_semver
: in this App to compare versions.url_launcher
: Plugin for launching a URL.
- Clone the repository:
git clone https://github.com/MoazSayed7/Flutter-Chat-App-Firebase-Authentication-Messaging-WhatsApp-Like.git
- Navigate to the project directory:
cd Flutter-Chat-App-Firebase-Authentication-Messaging-WhatsApp-Like
- Install dependencies:
flutter pub get
-
Configure Firebase:
- Create a Firebase project at https://console.firebase.google.com/.
- Enable the required Firebase services for your app, including Firestore, Authentication, and Cloud Messaging.
-
Set up Firebase for your project by following the Using Firebase CLI.
I have made custom modifications to the chat_bubbles
package
I have already uploaded the edited files to my project. You can find it in the following path:
removeable/bubble_normal_image.dart
removeable/bubble_special_three.dart
removeable/date_chip.dart
removeable/message_bar.dart
-
Download the edited files.
-
Replace the existing files in your Flutter project with the downloaded files.
-
For
bubble_special_three.dart
andbubble_normal_image.dart
, navigate to:%LocalAppData%\Pub\Cache\hosted\pub.dev\chat_bubbles-1.5.0\lib\bubbles\
-
For
date_chip.dart
, navigate to:%LocalAppData%\Pub\Cache\hosted\pub.dev\chat_bubbles-1.5.0\lib\date_chips\
-
For
message_bar.dart
, navigate to:%LocalAppData%\Pub\Cache\hosted\pub.dev\chat_bubbles-1.5.0\lib\message_bars\
-
- Update the app's launcher icon:
dart run flutter_launcher_icons
- Update the app's splash screen:
dart run flutter_native_splash:create --path=flutter_native_splash.yaml
- Run the app:
flutter run