From 63b9a09a2d249f74ea357fa20bc6387778087c6e Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Mon, 12 May 2025 19:07:58 +0530 Subject: [PATCH 001/316] feat: init widgets settings and default states Next: Add Grid, make things dynamic, Add sync logic and native code --- mobile/assets/2.0x/albums-widget-static.png | Bin 0 -> 25846 bytes mobile/assets/2.0x/memories-widget-static.png | Bin 0 -> 24302 bytes mobile/assets/2.0x/people-widget-static.png | Bin 0 -> 21417 bytes mobile/assets/3.0x/albums-widget-static.png | Bin 0 -> 39392 bytes mobile/assets/3.0x/memories-widget-static.png | Bin 0 -> 37246 bytes mobile/assets/3.0x/people-widget-static.png | Bin 0 -> 33082 bytes mobile/assets/albums-widget-static.png | Bin 0 -> 12738 bytes mobile/assets/icons/albums-widget-icon.svg | 3 + mobile/assets/icons/memories-widget-icon.svg | 4 + mobile/assets/icons/past-year-memory-icon.svg | 3 + mobile/assets/icons/people-widget-icon.svg | 3 + mobile/assets/icons/smart-memory-icon.svg | 11 ++ mobile/assets/memories-widget-static.png | Bin 0 -> 12142 bytes mobile/assets/people-widget-static.png | Bin 0 -> 10020 bytes mobile/lib/generated/intl/messages_en.dart | 11 ++ mobile/lib/generated/l10n.dart | 70 ++++++++++ mobile/lib/l10n/intl_en.arb | 9 +- .../lib/ui/components/title_bar_widget.dart | 13 +- .../ui/settings/general_section_widget.dart | 20 +++ .../ui/settings/widget_settings_screen.dart | 125 ++++++++++++++++++ .../widgets/albums_widget_settings.dart | 85 ++++++++++++ .../widgets/memories_widget_settings.dart | 114 ++++++++++++++++ .../widgets/people_widget_settings.dart | 85 ++++++++++++ 23 files changed, 553 insertions(+), 3 deletions(-) create mode 100644 mobile/assets/2.0x/albums-widget-static.png create mode 100644 mobile/assets/2.0x/memories-widget-static.png create mode 100644 mobile/assets/2.0x/people-widget-static.png create mode 100644 mobile/assets/3.0x/albums-widget-static.png create mode 100644 mobile/assets/3.0x/memories-widget-static.png create mode 100644 mobile/assets/3.0x/people-widget-static.png create mode 100644 mobile/assets/albums-widget-static.png create mode 100644 mobile/assets/icons/albums-widget-icon.svg create mode 100644 mobile/assets/icons/memories-widget-icon.svg create mode 100644 mobile/assets/icons/past-year-memory-icon.svg create mode 100644 mobile/assets/icons/people-widget-icon.svg create mode 100644 mobile/assets/icons/smart-memory-icon.svg create mode 100644 mobile/assets/memories-widget-static.png create mode 100644 mobile/assets/people-widget-static.png create mode 100644 mobile/lib/ui/settings/widget_settings_screen.dart create mode 100644 mobile/lib/ui/settings/widgets/albums_widget_settings.dart create mode 100644 mobile/lib/ui/settings/widgets/memories_widget_settings.dart create mode 100644 mobile/lib/ui/settings/widgets/people_widget_settings.dart diff --git a/mobile/assets/2.0x/albums-widget-static.png b/mobile/assets/2.0x/albums-widget-static.png new file mode 100644 index 0000000000000000000000000000000000000000..00bb2ba52a1f8ad691cc566e62ca6323b850ef26 GIT binary patch literal 25846 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⪻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 KMNUMnLSTZVe7l7J literal 0 HcmV?d00001 diff --git a/mobile/assets/2.0x/memories-widget-static.png b/mobile/assets/2.0x/memories-widget-static.png new file mode 100644 index 0000000000000000000000000000000000000000..1e079f1e993556197d773f9c4de8ee479eb845aa GIT binary patch literal 24302 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 literal 0 HcmV?d00001 diff --git a/mobile/assets/3.0x/albums-widget-static.png b/mobile/assets/3.0x/albums-widget-static.png new file mode 100644 index 0000000000000000000000000000000000000000..9826a8d8c288b3c1c62928ce134fdb235acabf86 GIT binary patch literal 39392 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ÏlhfLO2thzOMe^Ow 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∾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 literal 0 HcmV?d00001 diff --git a/mobile/assets/albums-widget-static.png b/mobile/assets/albums-widget-static.png new file mode 100644 index 0000000000000000000000000000000000000000..9e6ddcf8329f1edd0275efbc7da524529aa9c86a GIT binary patch literal 12738 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 IM6N<$f}MlQdH?_b literal 0 HcmV?d00001 diff --git a/mobile/assets/icons/albums-widget-icon.svg b/mobile/assets/icons/albums-widget-icon.svg new file mode 100644 index 0000000000..d42448bcef --- /dev/null +++ b/mobile/assets/icons/albums-widget-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/mobile/assets/icons/memories-widget-icon.svg b/mobile/assets/icons/memories-widget-icon.svg new file mode 100644 index 0000000000..7a72222cc7 --- /dev/null +++ b/mobile/assets/icons/memories-widget-icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/mobile/assets/icons/past-year-memory-icon.svg b/mobile/assets/icons/past-year-memory-icon.svg new file mode 100644 index 0000000000..4c50152714 --- /dev/null +++ b/mobile/assets/icons/past-year-memory-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/mobile/assets/icons/people-widget-icon.svg b/mobile/assets/icons/people-widget-icon.svg new file mode 100644 index 0000000000..3cd1ee3972 --- /dev/null +++ b/mobile/assets/icons/people-widget-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/mobile/assets/icons/smart-memory-icon.svg b/mobile/assets/icons/smart-memory-icon.svg new file mode 100644 index 0000000000..cdc2d89b59 --- /dev/null +++ b/mobile/assets/icons/smart-memory-icon.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/mobile/assets/memories-widget-static.png b/mobile/assets/memories-widget-static.png new file mode 100644 index 0000000000000000000000000000000000000000..4f7f546ad7cdb393352f1805f0b4850c7919887f GIT binary patch literal 12142 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 literal 0 HcmV?d00001 diff --git a/mobile/assets/people-widget-static.png b/mobile/assets/people-widget-static.png new file mode 100644 index 0000000000000000000000000000000000000000..bfdadee7d86f15349601c2de07505a03eece5944 GIT binary patch literal 10020 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 Stv`#}pukc}lGWly!T$sHWDtx1 literal 0 HcmV?d00001 diff --git a/mobile/lib/generated/intl/messages_en.dart b/mobile/lib/generated/intl/messages_en.dart index 89b5981efc..e21d119f4a 100644 --- a/mobile/lib/generated/intl/messages_en.dart +++ b/mobile/lib/generated/intl/messages_en.dart @@ -386,6 +386,8 @@ class MessageLookup extends MessageLookupByLibrary { "albumTitle": MessageLookupByLibrary.simpleMessage("Album title"), "albumUpdated": MessageLookupByLibrary.simpleMessage("Album updated"), "albums": MessageLookupByLibrary.simpleMessage("Albums"), + "albumsWidgetDesc": MessageLookupByLibrary.simpleMessage( + "Select the albums you wish to see on your homescreen."), "allClear": MessageLookupByLibrary.simpleMessage("✨ All clear"), "allMemoriesPreserved": MessageLookupByLibrary.simpleMessage("All memories preserved"), @@ -1259,6 +1261,9 @@ class MessageLookup extends MessageLookupByLibrary { "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), "me": MessageLookupByLibrary.simpleMessage("Me"), + "memories": MessageLookupByLibrary.simpleMessage("Memories"), + "memoriesWidgetDesc": MessageLookupByLibrary.simpleMessage( + "Select the kind of memories you wish to see on your homescreen."), "memoryCount": m48, "merchandise": MessageLookupByLibrary.simpleMessage("Merchandise"), "mergeWithExisting": @@ -1407,6 +1412,8 @@ class MessageLookup extends MessageLookupByLibrary { "Password strength is calculated considering the length of the password, used characters, and whether or not the password appears in the top 10,000 most used passwords"), "passwordWarning": MessageLookupByLibrary.simpleMessage( "We don\'t store this password, so if you forget, we cannot decrypt your data"), + "pastYearsMemories": + MessageLookupByLibrary.simpleMessage("Past years\' memories"), "paymentDetails": MessageLookupByLibrary.simpleMessage("Payment details"), "paymentFailed": MessageLookupByLibrary.simpleMessage("Payment failed"), @@ -1418,6 +1425,8 @@ class MessageLookup extends MessageLookupByLibrary { "people": MessageLookupByLibrary.simpleMessage("People"), "peopleUsingYourCode": MessageLookupByLibrary.simpleMessage("People using your code"), + "peopleWidgetDesc": MessageLookupByLibrary.simpleMessage( + "Select the people you wish to see on your homescreen."), "permDeleteWarning": MessageLookupByLibrary.simpleMessage( "All items in trash will be permanently deleted\n\nThis action cannot be undone"), "permanentlyDelete": @@ -1813,6 +1822,7 @@ class MessageLookup extends MessageLookupByLibrary { "singleFileInBothLocalAndRemote": m86, "singleFileInRemoteOnly": m87, "skip": MessageLookupByLibrary.simpleMessage("Skip"), + "smartMemories": MessageLookupByLibrary.simpleMessage("Smart memories"), "social": MessageLookupByLibrary.simpleMessage("Social"), "someItemsAreInBothEnteAndYourDevice": MessageLookupByLibrary.simpleMessage( @@ -2089,6 +2099,7 @@ class MessageLookup extends MessageLookupByLibrary { "whatsNew": MessageLookupByLibrary.simpleMessage("What\'s new"), "whyAddTrustContact": MessageLookupByLibrary.simpleMessage( "Trusted contact can help in recovering your data."), + "widgets": MessageLookupByLibrary.simpleMessage("Widgets"), "yearShort": MessageLookupByLibrary.simpleMessage("yr"), "yearly": MessageLookupByLibrary.simpleMessage("Yearly"), "yearsAgo": m111, diff --git a/mobile/lib/generated/l10n.dart b/mobile/lib/generated/l10n.dart index 85f95e667b..0989c4e703 100644 --- a/mobile/lib/generated/l10n.dart +++ b/mobile/lib/generated/l10n.dart @@ -11785,6 +11785,76 @@ class S { args: [], ); } + + /// `Widgets` + String get widgets { + return Intl.message( + 'Widgets', + name: 'widgets', + desc: '', + args: [], + ); + } + + /// `Memories` + String get memories { + return Intl.message( + 'Memories', + name: 'memories', + desc: '', + args: [], + ); + } + + /// `Select the people you wish to see on your homescreen.` + String get peopleWidgetDesc { + return Intl.message( + 'Select the people you wish to see on your homescreen.', + name: 'peopleWidgetDesc', + desc: '', + args: [], + ); + } + + /// `Select the albums you wish to see on your homescreen.` + String get albumsWidgetDesc { + return Intl.message( + 'Select the albums you wish to see on your homescreen.', + name: 'albumsWidgetDesc', + desc: '', + args: [], + ); + } + + /// `Select the kind of memories you wish to see on your homescreen.` + String get memoriesWidgetDesc { + return Intl.message( + 'Select the kind of memories you wish to see on your homescreen.', + name: 'memoriesWidgetDesc', + desc: '', + args: [], + ); + } + + /// `Smart memories` + String get smartMemories { + return Intl.message( + 'Smart memories', + name: 'smartMemories', + desc: '', + args: [], + ); + } + + /// `Past years' memories` + String get pastYearsMemories { + return Intl.message( + 'Past years\' memories', + name: 'pastYearsMemories', + desc: '', + args: [], + ); + } } class AppLocalizationDelegate extends LocalizationsDelegate { diff --git a/mobile/lib/l10n/intl_en.arb b/mobile/lib/l10n/intl_en.arb index d5207f0d10..2565b457db 100644 --- a/mobile/lib/l10n/intl_en.arb +++ b/mobile/lib/l10n/intl_en.arb @@ -1737,5 +1737,12 @@ "cLFamilyPlanDesc": "You can now set limits on how much storage your family members can use.", "cLBulkEdit": "Bulk Edit dates", "cLBulkEditDesc": "You can now select multiple photos, and edit date/time for all of them with one quick action. Shifting dates is also supported.", - "curatedMemories": "Curated memories" + "curatedMemories": "Curated memories", + "widgets": "Widgets", + "memories": "Memories", + "peopleWidgetDesc": "Select the people you wish to see on your homescreen.", + "albumsWidgetDesc": "Select the albums you wish to see on your homescreen.", + "memoriesWidgetDesc": "Select the kind of memories you wish to see on your homescreen.", + "smartMemories": "Smart memories", + "pastYearsMemories": "Past years' memories" } \ No newline at end of file diff --git a/mobile/lib/ui/components/title_bar_widget.dart b/mobile/lib/ui/components/title_bar_widget.dart index 9bdaf81c0f..2105d9b36b 100644 --- a/mobile/lib/ui/components/title_bar_widget.dart +++ b/mobile/lib/ui/components/title_bar_widget.dart @@ -14,6 +14,8 @@ class TitleBarWidget extends StatelessWidget { final bool isOnTopOfScreen; final Color? backgroundColor; final bool isSliver; + final double? expandedHeight; + const TitleBarWidget({ this.leading, this.title, @@ -26,6 +28,7 @@ class TitleBarWidget extends StatelessWidget { this.isOnTopOfScreen = true, this.backgroundColor, this.isSliver = true, + this.expandedHeight, super.key, }); @@ -40,7 +43,8 @@ class TitleBarWidget extends StatelessWidget { leadingWidth: 48, automaticallyImplyLeading: false, pinned: true, - expandedHeight: isFlexibleSpaceDisabled ? toolbarHeight : 102, + expandedHeight: + expandedHeight ?? (isFlexibleSpaceDisabled ? toolbarHeight : 102), centerTitle: false, titleSpacing: 4, title: TitleWidget( @@ -72,6 +76,7 @@ class TitleBarWidget extends StatelessWidget { flexibleSpaceTitle, flexibleSpaceCaption, toolbarHeight, + maxLines: expandedHeight == null ? 1 : 2, ), ); } else { @@ -112,6 +117,7 @@ class TitleBarWidget extends StatelessWidget { flexibleSpaceTitle, flexibleSpaceCaption, toolbarHeight, + maxLines: expandedHeight == null ? 1 : 2, ), ); } @@ -189,11 +195,14 @@ class FlexibleSpaceBarWidget extends StatelessWidget { final Widget? flexibleSpaceTitle; final String? flexibleSpaceCaption; final double toolbarHeight; + final int maxLines; + const FlexibleSpaceBarWidget( this.flexibleSpaceTitle, this.flexibleSpaceCaption, this.toolbarHeight, { super.key, + required this.maxLines, }); @override @@ -223,7 +232,7 @@ class FlexibleSpaceBarWidget extends StatelessWidget { flexibleSpaceCaption!, style: textTheme.smallMuted, overflow: TextOverflow.ellipsis, - maxLines: 1, + maxLines: maxLines, ), ], ), diff --git a/mobile/lib/ui/settings/general_section_widget.dart b/mobile/lib/ui/settings/general_section_widget.dart index b5f7e35ad3..b1ebd21927 100644 --- a/mobile/lib/ui/settings/general_section_widget.dart +++ b/mobile/lib/ui/settings/general_section_widget.dart @@ -15,6 +15,7 @@ import 'package:photos/ui/settings/advanced_settings_screen.dart'; import 'package:photos/ui/settings/common_settings.dart'; import "package:photos/ui/settings/language_picker.dart"; import "package:photos/ui/settings/notification_settings_screen.dart"; +import "package:photos/ui/settings/widget_settings_screen.dart"; import 'package:photos/utils/navigation_util.dart'; class GeneralSectionWidget extends StatelessWidget { @@ -98,6 +99,18 @@ class GeneralSectionWidget extends StatelessWidget { }, ), sectionOptionSpacing, + MenuItemWidget( + captionedTextWidget: CaptionedTextWidget( + title: S.of(context).widgets, + ), + pressedColor: getEnteColorScheme(context).fillFaint, + trailingIcon: Icons.chevron_right_outlined, + trailingIconIsMuted: true, + onTap: () async { + _onWidgetsTapped(context); + }, + ), + sectionOptionSpacing, MenuItemWidget( captionedTextWidget: CaptionedTextWidget( title: S.of(context).advanced, @@ -128,6 +141,13 @@ class GeneralSectionWidget extends StatelessWidget { ); } + void _onWidgetsTapped(BuildContext context) { + routeToPage( + context, + const WidgetSettingsScreen(), + ); + } + void _onAdvancedTapped(BuildContext context) { routeToPage( context, diff --git a/mobile/lib/ui/settings/widget_settings_screen.dart b/mobile/lib/ui/settings/widget_settings_screen.dart new file mode 100644 index 0000000000..b82ba4130e --- /dev/null +++ b/mobile/lib/ui/settings/widget_settings_screen.dart @@ -0,0 +1,125 @@ +import 'package:flutter/material.dart'; +import "package:flutter_svg/flutter_svg.dart"; +import "package:photos/generated/l10n.dart"; +import 'package:photos/theme/ente_theme.dart'; +import 'package:photos/ui/components/buttons/icon_button_widget.dart'; +import 'package:photos/ui/components/captioned_text_widget.dart'; +import 'package:photos/ui/components/menu_item_widget/menu_item_widget.dart'; +import 'package:photos/ui/components/title_bar_title_widget.dart'; +import 'package:photos/ui/components/title_bar_widget.dart'; +import "package:photos/ui/settings/widgets/albums_widget_settings.dart"; +import "package:photos/ui/settings/widgets/memories_widget_settings.dart"; +import "package:photos/ui/settings/widgets/people_widget_settings.dart"; +import "package:photos/utils/navigation_util.dart"; + +class WidgetSettingsScreen extends StatelessWidget { + const WidgetSettingsScreen({super.key}); + + void onPeopleTapped(BuildContext context) { + routeToPage( + context, + const PeopleWidgetSettings(), + ); + } + + void onAlbumsTapped(BuildContext context) { + routeToPage( + context, + const AlbumsWidgetSettings(), + ); + } + + void onMemoriesTapped(BuildContext context) { + routeToPage( + context, + const MemoriesWidgetSettings(), + ); + } + + @override + Widget build(BuildContext context) { + final colorScheme = getEnteColorScheme(context); + return Scaffold( + body: CustomScrollView( + primary: false, + slivers: [ + TitleBarWidget( + flexibleSpaceTitle: TitleBarTitleWidget( + title: S.of(context).widgets, + ), + actionIcons: [ + IconButtonWidget( + icon: Icons.close_outlined, + iconButtonType: IconButtonType.secondary, + onTap: () { + Navigator.pop(context); + Navigator.pop(context); + }, + ), + ], + ), + SliverList( + delegate: SliverChildBuilderDelegate( + (context, index) { + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 20), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Column( + children: [ + MenuItemWidget( + captionedTextWidget: CaptionedTextWidget( + title: S.of(context).people, + ), + leadingIconWidget: SvgPicture.asset( + "assets/icons/people-widget-icon.svg", + ), + menuItemColor: colorScheme.fillFaint, + singleBorderRadius: 8, + trailingIcon: Icons.chevron_right_outlined, + onTap: () async => onPeopleTapped(context), + ), + const SizedBox(height: 8), + MenuItemWidget( + captionedTextWidget: CaptionedTextWidget( + title: S.of(context).albums, + ), + leadingIconWidget: SvgPicture.asset( + "assets/icons/albums-widget-icon.svg", + ), + menuItemColor: colorScheme.fillFaint, + singleBorderRadius: 8, + trailingIcon: Icons.chevron_right_outlined, + onTap: () async => onAlbumsTapped(context), + ), + const SizedBox(height: 8), + MenuItemWidget( + captionedTextWidget: CaptionedTextWidget( + title: S.of(context).memories, + ), + leadingIconWidget: SvgPicture.asset( + "assets/icons/memories-widget-icon.svg", + ), + menuItemColor: colorScheme.fillFaint, + singleBorderRadius: 8, + trailingIcon: Icons.chevron_right_outlined, + onTap: () async => onMemoriesTapped(context), + ), + ], + ), + ], + ), + ), + ); + }, + childCount: 1, + ), + ), + ], + ), + ); + } +} diff --git a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart new file mode 100644 index 0000000000..b57cf99db3 --- /dev/null +++ b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart @@ -0,0 +1,85 @@ +import 'package:flutter/material.dart'; +import "package:photos/generated/l10n.dart"; +import 'package:photos/theme/ente_theme.dart'; +import 'package:photos/ui/components/buttons/icon_button_widget.dart'; +import 'package:photos/ui/components/title_bar_title_widget.dart'; +import 'package:photos/ui/components/title_bar_widget.dart'; + +class AlbumsWidgetSettings extends StatelessWidget { + const AlbumsWidgetSettings({super.key}); + + @override + Widget build(BuildContext context) { + final textTheme = getEnteTextTheme(context); + return Scaffold( + body: CustomScrollView( + primary: false, + slivers: [ + TitleBarWidget( + flexibleSpaceTitle: TitleBarTitleWidget( + title: S.of(context).albums, + ), + expandedHeight: 120, + flexibleSpaceCaption: S.of(context).albumsWidgetDesc, + actionIcons: [ + IconButtonWidget( + icon: Icons.close_outlined, + iconButtonType: IconButtonType.secondary, + onTap: () { + Navigator.pop(context); + Navigator.pop(context); + Navigator.pop(context); + }, + ), + ], + ), + if (1 == 1) + SliverToBoxAdapter( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 32.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox( + height: MediaQuery.sizeOf(context).height * 0.5 - 300, + ), + Image.asset( + "assets/albums-widget-static.png", + height: 160, + ), + const SizedBox(height: 16), + Text( + "Add an album widget to your homescreen and come back here to customize", + style: textTheme.largeFaint, + textAlign: TextAlign.center, + ), + ], + ), + ), + ) + else + SliverList( + delegate: SliverChildBuilderDelegate( + (context, index) { + return const Padding( + padding: EdgeInsets.symmetric(horizontal: 32.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + "Show a grid here with lots of data and a save button", + ), + ], + ), + ); + }, + childCount: 1, + ), + ), + ], + ), + ); + } +} diff --git a/mobile/lib/ui/settings/widgets/memories_widget_settings.dart b/mobile/lib/ui/settings/widgets/memories_widget_settings.dart new file mode 100644 index 0000000000..64369ab126 --- /dev/null +++ b/mobile/lib/ui/settings/widgets/memories_widget_settings.dart @@ -0,0 +1,114 @@ +import 'package:flutter/material.dart'; +import "package:photos/generated/l10n.dart"; +import 'package:photos/theme/ente_theme.dart'; +import 'package:photos/ui/components/buttons/icon_button_widget.dart'; +import "package:photos/ui/components/captioned_text_widget.dart"; +import "package:photos/ui/components/menu_item_widget/menu_item_widget.dart"; +import 'package:photos/ui/components/title_bar_title_widget.dart'; +import 'package:photos/ui/components/title_bar_widget.dart'; +import "package:photos/ui/components/toggle_switch_widget.dart"; + +class MemoriesWidgetSettings extends StatelessWidget { + const MemoriesWidgetSettings({super.key}); + + @override + Widget build(BuildContext context) { + final textTheme = getEnteTextTheme(context); + final colorScheme = getEnteColorScheme(context); + return Scaffold( + body: CustomScrollView( + primary: false, + slivers: [ + TitleBarWidget( + flexibleSpaceTitle: TitleBarTitleWidget( + title: S.of(context).memories, + ), + expandedHeight: 120, + flexibleSpaceCaption: S.of(context).memoriesWidgetDesc, + actionIcons: [ + IconButtonWidget( + icon: Icons.close_outlined, + iconButtonType: IconButtonType.secondary, + onTap: () { + Navigator.pop(context); + Navigator.pop(context); + Navigator.pop(context); + }, + ), + ], + ), + if (1 != 1) + SliverToBoxAdapter( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 32.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox( + height: MediaQuery.sizeOf(context).height * 0.5 - 300, + ), + Image.asset( + "assets/memories-widget-static.png", + height: 160, + ), + const SizedBox(height: 16), + Text( + "Add a memories widget to your homescreen and come back here to customize", + style: textTheme.largeFaint, + textAlign: TextAlign.center, + ), + ], + ), + ), + ) + else + SliverList( + delegate: SliverChildBuilderDelegate( + (context, index) { + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 6), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const SizedBox(height: 18), + MenuItemWidget( + captionedTextWidget: CaptionedTextWidget( + title: S.of(context).pastYearsMemories, + ), + menuItemColor: colorScheme.fillFaint, + trailingWidget: ToggleSwitchWidget( + value: () => true, + onChanged: () async {}, + ), + singleBorderRadius: 8, + alignCaptionedTextToLeft: true, + isGestureDetectorDisabled: true, + ), + const SizedBox(height: 4), + MenuItemWidget( + captionedTextWidget: CaptionedTextWidget( + title: S.of(context).smartMemories, + ), + menuItemColor: colorScheme.fillFaint, + trailingWidget: ToggleSwitchWidget( + value: () => true, + onChanged: () async {}, + ), + singleBorderRadius: 8, + alignCaptionedTextToLeft: true, + isGestureDetectorDisabled: true, + ), + ], + ), + ); + }, + childCount: 1, + ), + ), + ], + ), + ); + } +} diff --git a/mobile/lib/ui/settings/widgets/people_widget_settings.dart b/mobile/lib/ui/settings/widgets/people_widget_settings.dart new file mode 100644 index 0000000000..31853218ed --- /dev/null +++ b/mobile/lib/ui/settings/widgets/people_widget_settings.dart @@ -0,0 +1,85 @@ +import 'package:flutter/material.dart'; +import "package:photos/generated/l10n.dart"; +import 'package:photos/theme/ente_theme.dart'; +import 'package:photos/ui/components/buttons/icon_button_widget.dart'; +import 'package:photos/ui/components/title_bar_title_widget.dart'; +import 'package:photos/ui/components/title_bar_widget.dart'; + +class PeopleWidgetSettings extends StatelessWidget { + const PeopleWidgetSettings({super.key}); + + @override + Widget build(BuildContext context) { + final textTheme = getEnteTextTheme(context); + return Scaffold( + body: CustomScrollView( + primary: false, + slivers: [ + TitleBarWidget( + flexibleSpaceTitle: TitleBarTitleWidget( + title: S.of(context).people, + ), + expandedHeight: 120, + flexibleSpaceCaption: S.of(context).peopleWidgetDesc, + actionIcons: [ + IconButtonWidget( + icon: Icons.close_outlined, + iconButtonType: IconButtonType.secondary, + onTap: () { + Navigator.pop(context); + Navigator.pop(context); + Navigator.pop(context); + }, + ), + ], + ), + if (1 == 1) + SliverToBoxAdapter( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 32.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox( + height: MediaQuery.sizeOf(context).height * 0.5 - 300, + ), + Image.asset( + "assets/people-widget-static.png", + height: 160, + ), + const SizedBox(height: 16), + Text( + "Add a people widget to your homescreen and come back here to customize", + style: textTheme.largeFaint, + textAlign: TextAlign.center, + ), + ], + ), + ), + ) + else + SliverList( + delegate: SliverChildBuilderDelegate( + (context, index) { + return const Padding( + padding: EdgeInsets.symmetric(horizontal: 32.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + "Show a grid here with lots of data and a save button", + ), + ], + ), + ); + }, + childCount: 1, + ), + ), + ], + ), + ); + } +} From 91fefa7eb971c84c7290792a2f6f17f4e8d5b648 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Mon, 12 May 2025 19:12:46 +0530 Subject: [PATCH 002/316] feat: memories leading icons --- .../ui/settings/widgets/memories_widget_settings.dart | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/mobile/lib/ui/settings/widgets/memories_widget_settings.dart b/mobile/lib/ui/settings/widgets/memories_widget_settings.dart index 64369ab126..13e3852358 100644 --- a/mobile/lib/ui/settings/widgets/memories_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/memories_widget_settings.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import "package:flutter_svg/flutter_svg.dart"; import "package:photos/generated/l10n.dart"; import 'package:photos/theme/ente_theme.dart'; import 'package:photos/ui/components/buttons/icon_button_widget.dart'; @@ -77,13 +78,15 @@ class MemoriesWidgetSettings extends StatelessWidget { captionedTextWidget: CaptionedTextWidget( title: S.of(context).pastYearsMemories, ), + leadingIconWidget: SvgPicture.asset( + "assets/icons/past-year-memory-icon.svg", + ), menuItemColor: colorScheme.fillFaint, trailingWidget: ToggleSwitchWidget( value: () => true, onChanged: () async {}, ), singleBorderRadius: 8, - alignCaptionedTextToLeft: true, isGestureDetectorDisabled: true, ), const SizedBox(height: 4), @@ -91,13 +94,15 @@ class MemoriesWidgetSettings extends StatelessWidget { captionedTextWidget: CaptionedTextWidget( title: S.of(context).smartMemories, ), + leadingIconWidget: SvgPicture.asset( + "assets/icons/smart-memory-icon.svg", + ), menuItemColor: colorScheme.fillFaint, trailingWidget: ToggleSwitchWidget( value: () => true, onChanged: () async {}, ), singleBorderRadius: 8, - alignCaptionedTextToLeft: true, isGestureDetectorDisabled: true, ), ], From 51d55ee92b73936878fff39764dfb6fce8e7b720 Mon Sep 17 00:00:00 2001 From: Aman Raj Singh Mourya Date: Mon, 12 May 2025 22:06:19 +0530 Subject: [PATCH 003/316] feat: Add new album row item widget and update collections grid view --- .../ui/collections/album/new_row_item.dart | 96 +++++++++++++++++++ .../ui/collections/collection_list_page.dart | 10 +- mobile/lib/ui/collections/flex_grid_view.dart | 67 ++++++++++--- mobile/lib/ui/tabs/user_collections_tab.dart | 4 +- 4 files changed, 161 insertions(+), 16 deletions(-) create mode 100644 mobile/lib/ui/collections/album/new_row_item.dart diff --git a/mobile/lib/ui/collections/album/new_row_item.dart b/mobile/lib/ui/collections/album/new_row_item.dart new file mode 100644 index 0000000000..6212d17657 --- /dev/null +++ b/mobile/lib/ui/collections/album/new_row_item.dart @@ -0,0 +1,96 @@ +import "package:dotted_border/dotted_border.dart"; +import 'package:flutter/material.dart'; +import "package:logging/logging.dart"; +import "package:photos/generated/l10n.dart"; +import 'package:photos/models/collection/collection.dart'; +import 'package:photos/models/collection/collection_items.dart'; +import "package:photos/services/collections_service.dart"; +import "package:photos/theme/ente_theme.dart"; +import "package:photos/ui/viewer/gallery/collection_page.dart"; +import "package:photos/utils/dialog_util.dart"; +import "package:photos/utils/navigation_util.dart"; + +class NewAlbumRowItemWidget extends StatelessWidget { + final Color? color; + final double height; + final double width; + const NewAlbumRowItemWidget({ + this.color, + super.key, + required this.height, + required this.width, + }); + + @override + Widget build(BuildContext context) { + final enteColorScheme = getEnteColorScheme(context); + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 2.5), + child: GestureDetector( + onTap: () async { + final result = await showTextInputDialog( + context, + title: S.of(context).newAlbum, + submitButtonLabel: S.of(context).create, + hintText: S.of(context).enterAlbumName, + alwaysShowSuccessState: false, + initialValue: "", + textCapitalization: TextCapitalization.words, + popnavAfterSubmission: false, + onSubmit: (String text) async { + if (text.trim() == "") { + return; + } + + try { + final Collection c = + await CollectionsService.instance.createAlbum(text); + // ignore: unawaited_futures + await routeToPage( + context, + CollectionPage(CollectionWithThumbnail(c, null)), + ); + Navigator.of(context).pop(); + } catch (e, s) { + Logger("CreateNewAlbumRowItemWidget") + .severe("Failed to rename album", e, s); + rethrow; + } + }, + ); + + if (result is Exception) { + await showGenericErrorDialog(context: context, error: result); + } + }, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + DottedBorder( + borderType: BorderType.RRect, + strokeWidth: 1.5, + borderPadding: const EdgeInsets.all(0.75), + dashPattern: const [3.75, 3.75], + radius: const Radius.circular(2.35), + padding: EdgeInsets.zero, + color: enteColorScheme.blurStrokePressed, + child: SizedBox( + height: height, + width: width, + child: Icon( + Icons.add, + color: enteColorScheme.blurStrokePressed, + ), + ), + ), + const SizedBox(height: 4), + Text( + S.of(context).addNew, + style: getEnteTextTheme(context).smallFaint, + ), + ], + ), + ), + ); + } +} diff --git a/mobile/lib/ui/collections/collection_list_page.dart b/mobile/lib/ui/collections/collection_list_page.dart index 974acdfdbb..1de8aab906 100644 --- a/mobile/lib/ui/collections/collection_list_page.dart +++ b/mobile/lib/ui/collections/collection_list_page.dart @@ -57,6 +57,12 @@ class _CollectionListPageState extends State { @override Widget build(BuildContext context) { + final displayLimitCount = (collections?.length ?? 0); + final bool enableSelectionMode = + widget.sectionType == UISectionType.homeCollections || + widget.sectionType == UISectionType.outgoingCollections || + widget.sectionType == UISectionType.incomingCollections; + return Scaffold( body: SafeArea( child: CustomScrollView( @@ -75,8 +81,10 @@ class _CollectionListPageState extends State { ), CollectionsFlexiGridViewWidget( collections, - displayLimitCount: collections?.length ?? 0, + displayLimitCount: displayLimitCount, tag: widget.tag, + enableSelectionMode: enableSelectionMode, + scrollBottomSafeArea: 140, ), ], ), diff --git a/mobile/lib/ui/collections/flex_grid_view.dart b/mobile/lib/ui/collections/flex_grid_view.dart index 4114ff0493..5fb3349896 100644 --- a/mobile/lib/ui/collections/flex_grid_view.dart +++ b/mobile/lib/ui/collections/flex_grid_view.dart @@ -2,16 +2,17 @@ import 'dart:math'; import 'package:flutter/material.dart'; import 'package:photos/models/collection/collection.dart'; +import "package:photos/ui/collections/album/new_row_item.dart"; import "package:photos/ui/collections/album/row_item.dart"; -class CollectionsFlexiGridViewWidget extends StatelessWidget { +class CollectionsFlexiGridViewWidget extends StatefulWidget { /* Aspect ratio 1:1 Max width 224 Fixed gap 8 Width changes dynamically with screen width such that we can fit 2 in one row. Keep the width integral (center the albums to distribute excess pixels) */ - static const maxThumbnailWidth = 224.0; - static const fixedGapBetweenAlbum = 8.0; + static const maxThumbnailWidth = 170.0; + static const fixedGapBetweenAlbum = 2.0; static const minGapForHorizontalPadding = 8.0; static const collectionItemsToPreload = 20; @@ -23,45 +24,83 @@ class CollectionsFlexiGridViewWidget extends StatelessWidget { final bool shrinkWrap; final String tag; + final bool enableSelectionMode; + final bool shouldShowCreateAlbum; + final double scrollBottomSafeArea; + const CollectionsFlexiGridViewWidget( this.collections, { this.displayLimitCount = 10, this.shrinkWrap = false, this.tag = "", super.key, + this.enableSelectionMode = false, + this.shouldShowCreateAlbum = false, + this.scrollBottomSafeArea = 8, }); + @override + State createState() => + _CollectionsFlexiGridViewWidgetState(); +} + +class _CollectionsFlexiGridViewWidgetState + extends State { @override Widget build(BuildContext context) { final double screenWidth = MediaQuery.of(context).size.width; - final int albumsCountInOneRow = max(screenWidth ~/ maxThumbnailWidth, 2); - final double gapBetweenAlbums = - (albumsCountInOneRow - 1) * fixedGapBetweenAlbum; + final int albumsCountInOneRow = + max(screenWidth ~/ CollectionsFlexiGridViewWidget.maxThumbnailWidth, 3); + final double gapBetweenAlbums = (albumsCountInOneRow - 1) * + CollectionsFlexiGridViewWidget.fixedGapBetweenAlbum; // gapOnSizeOfAlbums will be - final double gapOnSizeOfAlbums = minGapForHorizontalPadding + - (screenWidth - gapBetweenAlbums - (2 * minGapForHorizontalPadding)) % - albumsCountInOneRow; + final double gapOnSizeOfAlbums = + CollectionsFlexiGridViewWidget.minGapForHorizontalPadding + + (screenWidth - + gapBetweenAlbums - + (2 * + CollectionsFlexiGridViewWidget + .minGapForHorizontalPadding)) % + albumsCountInOneRow; final double sideOfThumbnail = (screenWidth - gapOnSizeOfAlbums - gapBetweenAlbums) / albumsCountInOneRow; + final int totalCollections = widget.collections!.length; + final bool showCreateAlbum = widget.shouldShowCreateAlbum; + final int totalItemCount = totalCollections + (showCreateAlbum ? 1 : 0); + final int displayItemCount = min(totalItemCount, widget.displayLimitCount); + return SliverPadding( - padding: const EdgeInsets.all(8), + padding: EdgeInsets.only( + top: 8, + left: 8, + right: 8, + bottom: widget.scrollBottomSafeArea, + ), sliver: SliverGrid( delegate: SliverChildBuilderDelegate( (context, index) { + if (showCreateAlbum && index == 0) { + return NewAlbumRowItemWidget( + height: sideOfThumbnail, + width: sideOfThumbnail, + ); + } + final collectionIndex = showCreateAlbum ? index - 1 : index; return AlbumRowItemWidget( - collections![index], + widget.collections![collectionIndex], sideOfThumbnail, - tag: tag, + tag: widget.tag, + showFileCount: false, ); }, - childCount: min(collections!.length, displayLimitCount), + childCount: displayItemCount, ), gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: albumsCountInOneRow, - mainAxisSpacing: 4, + mainAxisSpacing: 2, crossAxisSpacing: gapBetweenAlbums, childAspectRatio: sideOfThumbnail / (sideOfThumbnail + 46), ), diff --git a/mobile/lib/ui/tabs/user_collections_tab.dart b/mobile/lib/ui/tabs/user_collections_tab.dart index afc6178c24..655f9a016c 100644 --- a/mobile/lib/ui/tabs/user_collections_tab.dart +++ b/mobile/lib/ui/tabs/user_collections_tab.dart @@ -57,7 +57,7 @@ class _UserCollectionsTabState extends State leading: true, ); - static const int _kOnEnteItemLimitCount = 10; + static const int _kOnEnteItemLimitCount = 12; @override void initState() { super.initState(); @@ -164,6 +164,8 @@ class _UserCollectionsTabState extends State collections, displayLimitCount: _kOnEnteItemLimitCount, shrinkWrap: true, + shouldShowCreateAlbum: true, + enableSelectionMode: true, ) : const SliverToBoxAdapter(child: EmptyState()), collections.length > _kOnEnteItemLimitCount From 5fc5d0ef485ff58ec0f5f25882357af8bc017642 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 14 May 2025 13:48:08 +0530 Subject: [PATCH 004/316] feat: add initial album grid and save button --- .../widgets/albums_widget_settings.dart | 61 +++++++++++++------ 1 file changed, 43 insertions(+), 18 deletions(-) diff --git a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart index b57cf99db3..6f06192729 100644 --- a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart @@ -1,7 +1,13 @@ import 'package:flutter/material.dart'; import "package:photos/generated/l10n.dart"; +import "package:photos/models/collection/collection.dart"; +import "package:photos/services/collections_service.dart"; import 'package:photos/theme/ente_theme.dart'; +import "package:photos/ui/collections/flex_grid_view.dart"; +import "package:photos/ui/common/loading_widget.dart"; +import "package:photos/ui/components/buttons/button_widget.dart"; import 'package:photos/ui/components/buttons/icon_button_widget.dart'; +import "package:photos/ui/components/models/button_type.dart"; import 'package:photos/ui/components/title_bar_title_widget.dart'; import 'package:photos/ui/components/title_bar_widget.dart'; @@ -12,6 +18,23 @@ class AlbumsWidgetSettings extends StatelessWidget { Widget build(BuildContext context) { final textTheme = getEnteTextTheme(context); return Scaffold( + bottomNavigationBar: Padding( + padding: EdgeInsets.fromLTRB( + 16, + 8, + 16, + 8 + MediaQuery.viewPaddingOf(context).bottom, + ), + child: ButtonWidget( + buttonType: ButtonType.primary, + buttonSize: ButtonSize.large, + labelText: S.of(context).save, + shouldSurfaceExecutionStates: false, + onTap: () async { + // await _generateAlbumUrl(); + }, + ), + ), body: CustomScrollView( primary: false, slivers: [ @@ -33,7 +56,7 @@ class AlbumsWidgetSettings extends StatelessWidget { ), ], ), - if (1 == 1) + if (1 != 1) SliverToBoxAdapter( child: Padding( padding: const EdgeInsets.symmetric(horizontal: 32.0), @@ -59,24 +82,26 @@ class AlbumsWidgetSettings extends StatelessWidget { ), ) else - SliverList( - delegate: SliverChildBuilderDelegate( - (context, index) { - return const Padding( - padding: EdgeInsets.symmetric(horizontal: 32.0), - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - "Show a grid here with lots of data and a save button", - ), - ], - ), + FutureBuilder>( + future: + CollectionsService.instance.getCollectionForOnEnteSection(), + builder: (context, snapshot) { + if (snapshot.hasData) { + return CollectionsFlexiGridViewWidget( + snapshot.data!, + displayLimitCount: 1000000, + shrinkWrap: true, + shouldShowCreateAlbum: true, + enableSelectionMode: true, ); - }, - childCount: 1, - ), + } else if (snapshot.hasError) { + return SliverToBoxAdapter( + child: Text(snapshot.error.toString()), + ); + } else { + return const SliverToBoxAdapter(child: EnteLoadingWidget()); + } + }, ), ], ), From 0c9d7321ebdf21311b2371e4e14be973f57ed7fa Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 14 May 2025 13:52:13 +0530 Subject: [PATCH 005/316] fix: nominal display limit count & disable show create album --- mobile/lib/ui/settings/widgets/albums_widget_settings.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart index 6f06192729..7cd3368d58 100644 --- a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart @@ -89,9 +89,9 @@ class AlbumsWidgetSettings extends StatelessWidget { if (snapshot.hasData) { return CollectionsFlexiGridViewWidget( snapshot.data!, - displayLimitCount: 1000000, + displayLimitCount: snapshot.data!.length, shrinkWrap: true, - shouldShowCreateAlbum: true, + shouldShowCreateAlbum: false, enableSelectionMode: true, ); } else if (snapshot.hasError) { From 9cafa72ae360f06b18fd141e8d3d7ac5019d0b0e Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 14 May 2025 14:01:25 +0530 Subject: [PATCH 006/316] fix: add color scheme based icon --- mobile/lib/ui/settings/widget_settings_screen.dart | 3 +++ mobile/lib/ui/settings/widgets/memories_widget_settings.dart | 2 ++ 2 files changed, 5 insertions(+) diff --git a/mobile/lib/ui/settings/widget_settings_screen.dart b/mobile/lib/ui/settings/widget_settings_screen.dart index b82ba4130e..70196867a9 100644 --- a/mobile/lib/ui/settings/widget_settings_screen.dart +++ b/mobile/lib/ui/settings/widget_settings_screen.dart @@ -76,6 +76,7 @@ class WidgetSettingsScreen extends StatelessWidget { ), leadingIconWidget: SvgPicture.asset( "assets/icons/people-widget-icon.svg", + color: colorScheme.textBase, ), menuItemColor: colorScheme.fillFaint, singleBorderRadius: 8, @@ -89,6 +90,7 @@ class WidgetSettingsScreen extends StatelessWidget { ), leadingIconWidget: SvgPicture.asset( "assets/icons/albums-widget-icon.svg", + color: colorScheme.textBase, ), menuItemColor: colorScheme.fillFaint, singleBorderRadius: 8, @@ -102,6 +104,7 @@ class WidgetSettingsScreen extends StatelessWidget { ), leadingIconWidget: SvgPicture.asset( "assets/icons/memories-widget-icon.svg", + color: colorScheme.textBase, ), menuItemColor: colorScheme.fillFaint, singleBorderRadius: 8, diff --git a/mobile/lib/ui/settings/widgets/memories_widget_settings.dart b/mobile/lib/ui/settings/widgets/memories_widget_settings.dart index 13e3852358..2cd40bd1ee 100644 --- a/mobile/lib/ui/settings/widgets/memories_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/memories_widget_settings.dart @@ -80,6 +80,7 @@ class MemoriesWidgetSettings extends StatelessWidget { ), leadingIconWidget: SvgPicture.asset( "assets/icons/past-year-memory-icon.svg", + color: colorScheme.textBase, ), menuItemColor: colorScheme.fillFaint, trailingWidget: ToggleSwitchWidget( @@ -96,6 +97,7 @@ class MemoriesWidgetSettings extends StatelessWidget { ), leadingIconWidget: SvgPicture.asset( "assets/icons/smart-memory-icon.svg", + color: colorScheme.textBase, ), menuItemColor: colorScheme.fillFaint, trailingWidget: ToggleSwitchWidget( From f22ad9611ff6aacd9eb9fba2b4333200093c0f1c Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 14 May 2025 15:14:11 +0530 Subject: [PATCH 007/316] feat: populate people as well --- mobile/lib/models/search/search_types.dart | 26 ++-- .../widgets/people_widget_settings.dart | 42 +++--- .../result/people_section_all_page.dart | 135 ++++++++++-------- 3 files changed, 104 insertions(+), 99 deletions(-) diff --git a/mobile/lib/models/search/search_types.dart b/mobile/lib/models/search/search_types.dart index db2c9be797..fa177c92f6 100644 --- a/mobile/lib/models/search/search_types.dart +++ b/mobile/lib/models/search/search_types.dart @@ -97,19 +97,14 @@ extension SectionTypeExtensions on SectionType { bool get isCTAVisible { switch (this) { case SectionType.face: - return false; case SectionType.magic: - return false; case SectionType.moment: - return false; - case SectionType.location: - return true; - case SectionType.contacts: - return true; - case SectionType.album: - return true; case SectionType.fileTypesAndExtension: return false; + case SectionType.location: + case SectionType.contacts: + case SectionType.album: + return true; } } @@ -122,19 +117,14 @@ extension SectionTypeExtensions on SectionType { bool get isEmptyCTAVisible { switch (this) { case SectionType.face: - return false; case SectionType.magic: - return false; case SectionType.moment: - return false; - case SectionType.location: - return true; - case SectionType.contacts: - return true; - case SectionType.album: - return true; case SectionType.fileTypesAndExtension: return false; + case SectionType.location: + case SectionType.contacts: + case SectionType.album: + return true; } } diff --git a/mobile/lib/ui/settings/widgets/people_widget_settings.dart b/mobile/lib/ui/settings/widgets/people_widget_settings.dart index 31853218ed..128af97ac5 100644 --- a/mobile/lib/ui/settings/widgets/people_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/people_widget_settings.dart @@ -1,9 +1,12 @@ import 'package:flutter/material.dart'; import "package:photos/generated/l10n.dart"; import 'package:photos/theme/ente_theme.dart'; +import "package:photos/ui/components/buttons/button_widget.dart"; import 'package:photos/ui/components/buttons/icon_button_widget.dart'; +import "package:photos/ui/components/models/button_type.dart"; import 'package:photos/ui/components/title_bar_title_widget.dart'; import 'package:photos/ui/components/title_bar_widget.dart'; +import "package:photos/ui/viewer/search/result/people_section_all_page.dart"; class PeopleWidgetSettings extends StatelessWidget { const PeopleWidgetSettings({super.key}); @@ -12,6 +15,23 @@ class PeopleWidgetSettings extends StatelessWidget { Widget build(BuildContext context) { final textTheme = getEnteTextTheme(context); return Scaffold( + bottomNavigationBar: Padding( + padding: EdgeInsets.fromLTRB( + 16, + 8, + 16, + 8 + MediaQuery.viewPaddingOf(context).bottom, + ), + child: ButtonWidget( + buttonType: ButtonType.primary, + buttonSize: ButtonSize.large, + labelText: S.of(context).save, + shouldSurfaceExecutionStates: false, + onTap: () async { + // await _generateAlbumUrl(); + }, + ), + ), body: CustomScrollView( primary: false, slivers: [ @@ -33,7 +53,7 @@ class PeopleWidgetSettings extends StatelessWidget { ), ], ), - if (1 == 1) + if (1 != 1) SliverToBoxAdapter( child: Padding( padding: const EdgeInsets.symmetric(horizontal: 32.0), @@ -59,24 +79,8 @@ class PeopleWidgetSettings extends StatelessWidget { ), ) else - SliverList( - delegate: SliverChildBuilderDelegate( - (context, index) { - return const Padding( - padding: EdgeInsets.symmetric(horizontal: 32.0), - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - "Show a grid here with lots of data and a save button", - ), - ], - ), - ); - }, - childCount: 1, - ), + const SliverToBoxAdapter( + child: PeopleSectionAllWidget(), ), ], ), diff --git a/mobile/lib/ui/viewer/search/result/people_section_all_page.dart b/mobile/lib/ui/viewer/search/result/people_section_all_page.dart index 544dc4d98a..c8a76958bd 100644 --- a/mobile/lib/ui/viewer/search/result/people_section_all_page.dart +++ b/mobile/lib/ui/viewer/search/result/people_section_all_page.dart @@ -10,16 +10,31 @@ import "package:photos/theme/ente_theme.dart"; import "package:photos/ui/common/loading_widget.dart"; import "package:photos/ui/viewer/search_tab/people_section.dart"; -class PeopleSectionAllPage extends StatefulWidget { +class PeopleSectionAllPage extends StatelessWidget { const PeopleSectionAllPage({ super.key, }); @override - State createState() => _PeopleSectionAllPageState(); + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text(SectionType.face.sectionTitle(context)), + centerTitle: false, + ), + body: const PeopleSectionAllWidget(), + ); + } } -class _PeopleSectionAllPageState extends State { +class PeopleSectionAllWidget extends StatefulWidget { + const PeopleSectionAllWidget({super.key}); + + @override + State createState() => _PeopleSectionAllWidgetState(); +} + +class _PeopleSectionAllWidgetState extends State { late Future> sectionData; final streamSubscriptions = []; @@ -55,67 +70,63 @@ class _PeopleSectionAllPageState extends State { MediaQuery.textScalerOf(context).scale(smallFontSize) / smallFontSize; const horizontalEdgePadding = 20.0; const gridPadding = 16.0; - return Scaffold( - appBar: AppBar( - title: Text(SectionType.face.sectionTitle(context)), - centerTitle: false, - ), - body: FutureBuilder>( - future: sectionData, - builder: (context, snapshot) { - if (snapshot.connectionState == ConnectionState.waiting) { - return const Center(child: EnteLoadingWidget()); - } else if (snapshot.hasError) { - return const Center(child: Icon(Icons.error_outline_rounded)); - } else if (!snapshot.hasData || snapshot.data!.isEmpty) { - return Center(child: Text(S.of(context).noResultsFound + '.')); - } else { - final results = snapshot.data!; - final screenWidth = MediaQuery.of(context).size.width; - final crossAxisCount = (screenWidth / 100).floor(); - final itemSize = (screenWidth - - ((horizontalEdgePadding * 2) + - ((crossAxisCount - 1) * gridPadding))) / - crossAxisCount; + return FutureBuilder>( + future: sectionData, + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return const Center(child: EnteLoadingWidget()); + } else if (snapshot.hasError) { + return const Center(child: Icon(Icons.error_outline_rounded)); + } else if (!snapshot.hasData || snapshot.data!.isEmpty) { + return Center(child: Text(S.of(context).noResultsFound + '.')); + } else { + final results = snapshot.data!; + final screenWidth = MediaQuery.of(context).size.width; + final crossAxisCount = (screenWidth / 100).floor(); - return GridView.builder( - padding: const EdgeInsets.fromLTRB( - horizontalEdgePadding, - 16, - horizontalEdgePadding, - 96, - ), - gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( - mainAxisSpacing: gridPadding, - crossAxisSpacing: gridPadding, - crossAxisCount: crossAxisCount, - childAspectRatio: - itemSize / (itemSize + (24 * textScaleFactor)), - ), - itemCount: results.length, - itemBuilder: (context, index) { - return PersonSearchExample( - searchResult: results[index], - size: itemSize, - ) - .animate(delay: Duration(milliseconds: index * 13)) - .fadeIn( - duration: const Duration(milliseconds: 225), - curve: Curves.easeIn, - ) - .slide( - begin: const Offset(0, -0.06), - curve: Curves.easeInOut, - duration: const Duration( - milliseconds: 225, - ), - ); - }, - ); - } - }, - ), + final itemSize = (screenWidth - + ((horizontalEdgePadding * 2) + + ((crossAxisCount - 1) * gridPadding))) / + crossAxisCount; + + return GridView.builder( + padding: const EdgeInsets.fromLTRB( + horizontalEdgePadding, + 16, + horizontalEdgePadding, + 96, + ), + shrinkWrap: true, + primary: false, + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + mainAxisSpacing: gridPadding, + crossAxisSpacing: gridPadding, + crossAxisCount: crossAxisCount, + childAspectRatio: itemSize / (itemSize + (24 * textScaleFactor)), + ), + itemCount: results.length, + itemBuilder: (context, index) { + return PersonSearchExample( + searchResult: results[index], + size: itemSize, + ) + .animate(delay: Duration(milliseconds: index * 13)) + .fadeIn( + duration: const Duration(milliseconds: 225), + curve: Curves.easeIn, + ) + .slide( + begin: const Offset(0, -0.06), + curve: Curves.easeInOut, + duration: const Duration( + milliseconds: 225, + ), + ); + }, + ); + } + }, ); } } From 9fa13508b83c5764db2a1987ce3ffacb3905ea8a Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Thu, 15 May 2025 16:26:16 +0530 Subject: [PATCH 008/316] feat: add iOS widgets --- .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 35 ++ .../Assets.xcassets/Contents.json | 6 + .../WidgetBackground.colorset/Contents.json | 11 + .../ios/EnteAlbumWidget/EnteAlbumWidget.swift | 86 ++++ .../EnteAlbumWidgetBundle.swift | 17 + mobile/ios/EnteAlbumWidget/Info.plist | 11 + .../ios/EnteAlbumWidgetExtension.entitlements | 10 + .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 35 ++ .../Assets.xcassets/Contents.json | 6 + .../WidgetBackground.colorset/Contents.json | 11 + .../EntePeopleWidget/EntePeopleWidget.swift | 86 ++++ .../EntePeopleWidgetBundle.swift | 17 + mobile/ios/EntePeopleWidget/Info.plist | 11 + .../EntePeopleWidgetExtension.entitlements | 10 + mobile/ios/Runner.xcodeproj/project.pbxproj | 443 +++++++++++++++++- mobile/ios/Runner/Runner.entitlements | 2 + 18 files changed, 803 insertions(+), 16 deletions(-) create mode 100644 mobile/ios/EnteAlbumWidget/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 mobile/ios/EnteAlbumWidget/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 mobile/ios/EnteAlbumWidget/Assets.xcassets/Contents.json create mode 100644 mobile/ios/EnteAlbumWidget/Assets.xcassets/WidgetBackground.colorset/Contents.json create mode 100644 mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift create mode 100644 mobile/ios/EnteAlbumWidget/EnteAlbumWidgetBundle.swift create mode 100644 mobile/ios/EnteAlbumWidget/Info.plist create mode 100644 mobile/ios/EnteAlbumWidgetExtension.entitlements create mode 100644 mobile/ios/EntePeopleWidget/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 mobile/ios/EntePeopleWidget/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 mobile/ios/EntePeopleWidget/Assets.xcassets/Contents.json create mode 100644 mobile/ios/EntePeopleWidget/Assets.xcassets/WidgetBackground.colorset/Contents.json create mode 100644 mobile/ios/EntePeopleWidget/EntePeopleWidget.swift create mode 100644 mobile/ios/EntePeopleWidget/EntePeopleWidgetBundle.swift create mode 100644 mobile/ios/EntePeopleWidget/Info.plist create mode 100644 mobile/ios/EntePeopleWidgetExtension.entitlements diff --git a/mobile/ios/EnteAlbumWidget/Assets.xcassets/AccentColor.colorset/Contents.json b/mobile/ios/EnteAlbumWidget/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000000..eb87897008 --- /dev/null +++ b/mobile/ios/EnteAlbumWidget/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/mobile/ios/EnteAlbumWidget/Assets.xcassets/AppIcon.appiconset/Contents.json b/mobile/ios/EnteAlbumWidget/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000000..2305880107 --- /dev/null +++ b/mobile/ios/EnteAlbumWidget/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,35 @@ +{ + "images" : [ + { + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "tinted" + } + ], + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/mobile/ios/EnteAlbumWidget/Assets.xcassets/Contents.json b/mobile/ios/EnteAlbumWidget/Assets.xcassets/Contents.json new file mode 100644 index 0000000000..73c00596a7 --- /dev/null +++ b/mobile/ios/EnteAlbumWidget/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/mobile/ios/EnteAlbumWidget/Assets.xcassets/WidgetBackground.colorset/Contents.json b/mobile/ios/EnteAlbumWidget/Assets.xcassets/WidgetBackground.colorset/Contents.json new file mode 100644 index 0000000000..eb87897008 --- /dev/null +++ b/mobile/ios/EnteAlbumWidget/Assets.xcassets/WidgetBackground.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift b/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift new file mode 100644 index 0000000000..62ce88f2f4 --- /dev/null +++ b/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift @@ -0,0 +1,86 @@ +// +// EnteAlbumWidget.swift +// EnteAlbumWidget +// +// Created by Prateek Sunal on 5/15/25. +// Copyright © 2025 The Chromium Authors. All rights reserved. +// + +import SwiftUI +import WidgetKit + +struct Provider: TimelineProvider { + func placeholder(in context: Context) -> SimpleEntry { + SimpleEntry(date: Date(), emoji: "😀") + } + + func getSnapshot(in context: Context, completion: @escaping (SimpleEntry) -> Void) { + let entry = SimpleEntry(date: Date(), emoji: "😀") + completion(entry) + } + + func getTimeline(in context: Context, completion: @escaping (Timeline) -> Void) { + var entries: [SimpleEntry] = [] + + // Generate a timeline consisting of five entries an hour apart, starting from the current date. + let currentDate = Date() + for hourOffset in 0..<5 { + let entryDate = Calendar.current.date( + byAdding: .hour, value: hourOffset, to: currentDate)! + let entry = SimpleEntry(date: entryDate, emoji: "😀") + entries.append(entry) + } + + let timeline = Timeline(entries: entries, policy: .atEnd) + completion(timeline) + } + + // func relevances() async -> WidgetRelevances { + // // Generate a list containing the contexts this widget is relevant in. + // } +} + +struct SimpleEntry: TimelineEntry { + let date: Date + let emoji: String +} + +struct EnteAlbumWidgetEntryView: View { + var entry: Provider.Entry + + var body: some View { + VStack { + Text("Time:") + Text(entry.date, style: .time) + + Text("Emoji:") + Text(entry.emoji) + } + } +} + +struct EnteAlbumWidget: Widget { + let kind: String = "EnteAlbumWidget" + + var body: some WidgetConfiguration { + StaticConfiguration(kind: kind, provider: Provider()) { entry in + if #available(iOS 17.0, *) { + EnteAlbumWidgetEntryView(entry: entry) + .containerBackground(.fill.tertiary, for: .widget) + } else { + EnteAlbumWidgetEntryView(entry: entry) + .padding() + .background() + } + } + .configurationDisplayName("Albums") + .description("See photos from selected albums including your favorites") + } +} + +#Preview(as: .systemSmall) { + EnteAlbumWidget() +} timeline: { + SimpleEntry(date: .now, emoji: "😀") + SimpleEntry(date: .now, emoji: "🤩") +} diff --git a/mobile/ios/EnteAlbumWidget/EnteAlbumWidgetBundle.swift b/mobile/ios/EnteAlbumWidget/EnteAlbumWidgetBundle.swift new file mode 100644 index 0000000000..447511b8ae --- /dev/null +++ b/mobile/ios/EnteAlbumWidget/EnteAlbumWidgetBundle.swift @@ -0,0 +1,17 @@ +// +// EnteAlbumWidgetBundle.swift +// EnteAlbumWidget +// +// Created by Prateek Sunal on 5/15/25. +// Copyright © 2025 The Chromium Authors. All rights reserved. +// + +import WidgetKit +import SwiftUI + +@main +struct EnteAlbumWidgetBundle: WidgetBundle { + var body: some Widget { + EnteAlbumWidget() + } +} diff --git a/mobile/ios/EnteAlbumWidget/Info.plist b/mobile/ios/EnteAlbumWidget/Info.plist new file mode 100644 index 0000000000..0f118fb75e --- /dev/null +++ b/mobile/ios/EnteAlbumWidget/Info.plist @@ -0,0 +1,11 @@ + + + + + NSExtension + + NSExtensionPointIdentifier + com.apple.widgetkit-extension + + + diff --git a/mobile/ios/EnteAlbumWidgetExtension.entitlements b/mobile/ios/EnteAlbumWidgetExtension.entitlements new file mode 100644 index 0000000000..97b82d232c --- /dev/null +++ b/mobile/ios/EnteAlbumWidgetExtension.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.application-groups + + group.io.ente.frame.EnteAlbumWidget + + + diff --git a/mobile/ios/EntePeopleWidget/Assets.xcassets/AccentColor.colorset/Contents.json b/mobile/ios/EntePeopleWidget/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000000..eb87897008 --- /dev/null +++ b/mobile/ios/EntePeopleWidget/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/mobile/ios/EntePeopleWidget/Assets.xcassets/AppIcon.appiconset/Contents.json b/mobile/ios/EntePeopleWidget/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000000..2305880107 --- /dev/null +++ b/mobile/ios/EntePeopleWidget/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,35 @@ +{ + "images" : [ + { + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "tinted" + } + ], + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/mobile/ios/EntePeopleWidget/Assets.xcassets/Contents.json b/mobile/ios/EntePeopleWidget/Assets.xcassets/Contents.json new file mode 100644 index 0000000000..73c00596a7 --- /dev/null +++ b/mobile/ios/EntePeopleWidget/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/mobile/ios/EntePeopleWidget/Assets.xcassets/WidgetBackground.colorset/Contents.json b/mobile/ios/EntePeopleWidget/Assets.xcassets/WidgetBackground.colorset/Contents.json new file mode 100644 index 0000000000..eb87897008 --- /dev/null +++ b/mobile/ios/EntePeopleWidget/Assets.xcassets/WidgetBackground.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift b/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift new file mode 100644 index 0000000000..120ba7f1c9 --- /dev/null +++ b/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift @@ -0,0 +1,86 @@ +// +// EntePeopleWidget.swift +// EntePeopleWidget +// +// Created by Prateek Sunal on 5/15/25. +// Copyright © 2025 The Chromium Authors. All rights reserved. +// + +import SwiftUI +import WidgetKit + +struct Provider: TimelineProvider { + func placeholder(in context: Context) -> SimpleEntry { + SimpleEntry(date: Date(), emoji: "😀") + } + + func getSnapshot(in context: Context, completion: @escaping (SimpleEntry) -> Void) { + let entry = SimpleEntry(date: Date(), emoji: "😀") + completion(entry) + } + + func getTimeline(in context: Context, completion: @escaping (Timeline) -> Void) { + var entries: [SimpleEntry] = [] + + // Generate a timeline consisting of five entries an hour apart, starting from the current date. + let currentDate = Date() + for hourOffset in 0..<5 { + let entryDate = Calendar.current.date( + byAdding: .hour, value: hourOffset, to: currentDate)! + let entry = SimpleEntry(date: entryDate, emoji: "😀") + entries.append(entry) + } + + let timeline = Timeline(entries: entries, policy: .atEnd) + completion(timeline) + } + + // func relevances() async -> WidgetRelevances { + // // Generate a list containing the contexts this widget is relevant in. + // } +} + +struct SimpleEntry: TimelineEntry { + let date: Date + let emoji: String +} + +struct EntePeopleWidgetEntryView: View { + var entry: Provider.Entry + + var body: some View { + VStack { + Text("Time:") + Text(entry.date, style: .time) + + Text("Emoji:") + Text(entry.emoji) + } + } +} + +struct EntePeopleWidget: Widget { + let kind: String = "EntePeopleWidget" + + var body: some WidgetConfiguration { + StaticConfiguration(kind: kind, provider: Provider()) { entry in + if #available(iOS 17.0, *) { + EntePeopleWidgetEntryView(entry: entry) + .containerBackground(.fill.tertiary, for: .widget) + } else { + EntePeopleWidgetEntryView(entry: entry) + .padding() + .background() + } + } + .configurationDisplayName("People") + .description("See photos of your favorite people") + } +} + +#Preview(as: .systemSmall) { + EntePeopleWidget() +} timeline: { + SimpleEntry(date: .now, emoji: "😀") + SimpleEntry(date: .now, emoji: "🤩") +} diff --git a/mobile/ios/EntePeopleWidget/EntePeopleWidgetBundle.swift b/mobile/ios/EntePeopleWidget/EntePeopleWidgetBundle.swift new file mode 100644 index 0000000000..e68b752d45 --- /dev/null +++ b/mobile/ios/EntePeopleWidget/EntePeopleWidgetBundle.swift @@ -0,0 +1,17 @@ +// +// EntePeopleWidgetBundle.swift +// EntePeopleWidget +// +// Created by Prateek Sunal on 5/15/25. +// Copyright © 2025 The Chromium Authors. All rights reserved. +// + +import WidgetKit +import SwiftUI + +@main +struct EntePeopleWidgetBundle: WidgetBundle { + var body: some Widget { + EntePeopleWidget() + } +} diff --git a/mobile/ios/EntePeopleWidget/Info.plist b/mobile/ios/EntePeopleWidget/Info.plist new file mode 100644 index 0000000000..0f118fb75e --- /dev/null +++ b/mobile/ios/EntePeopleWidget/Info.plist @@ -0,0 +1,11 @@ + + + + + NSExtension + + NSExtensionPointIdentifier + com.apple.widgetkit-extension + + + diff --git a/mobile/ios/EntePeopleWidgetExtension.entitlements b/mobile/ios/EntePeopleWidgetExtension.entitlements new file mode 100644 index 0000000000..2d30987b9a --- /dev/null +++ b/mobile/ios/EntePeopleWidgetExtension.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.application-groups + + group.io.ente.frame.EntePeopleWidget + + + diff --git a/mobile/ios/Runner.xcodeproj/project.pbxproj b/mobile/ios/Runner.xcodeproj/project.pbxproj index 678d1e3446..8be865b8bf 100644 --- a/mobile/ios/Runner.xcodeproj/project.pbxproj +++ b/mobile/ios/Runner.xcodeproj/project.pbxproj @@ -16,13 +16,33 @@ 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + CEE166242DD5E7820012CF61 /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DACD83C2B755B0600BA9516 /* WidgetKit.framework */; }; + CEE166252DD5E7820012CF61 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DACD83E2B755B0600BA9516 /* SwiftUI.framework */; }; + CEE166302DD5E7830012CF61 /* EnteAlbumWidgetExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = CEE166232DD5E7820012CF61 /* EnteAlbumWidgetExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + CEE1667C2DD5F6F20012CF61 /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DACD83C2B755B0600BA9516 /* WidgetKit.framework */; }; + CEE1667D2DD5F6F20012CF61 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DACD83E2B755B0600BA9516 /* SwiftUI.framework */; }; + CEE166882DD5F6F30012CF61 /* EntePeopleWidgetExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = CEE1667B2DD5F6F20012CF61 /* EntePeopleWidgetExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; CEE6BE702D7AE7FD00E4048B /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DACD83C2B755B0600BA9516 /* WidgetKit.framework */; }; CEE6BE712D7AE7FD00E4048B /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DACD83E2B755B0600BA9516 /* SwiftUI.framework */; }; CEE6BE7C2D7AE7FE00E4048B /* EnteMemoryWidgetExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = CEE6BE6F2D7AE7FD00E4048B /* EnteMemoryWidgetExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - DA6BE5E826B3BC8600656280 /* BuildFile in Resources */ = {isa = PBXBuildFile; }; + DA6BE5E826B3BC8600656280 /* (null) in Resources */ = {isa = PBXBuildFile; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + CEE1662E2DD5E7830012CF61 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = CEE166222DD5E7820012CF61; + remoteInfo = EnteAlbumWidgetExtension; + }; + CEE166862DD5F6F30012CF61 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = CEE1667A2DD5F6F20012CF61; + remoteInfo = EntePeopleWidgetExtension; + }; CEE6BE7A2D7AE7FE00E4048B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 97C146E61CF9000F007C117D /* Project object */; @@ -39,7 +59,9 @@ dstPath = ""; dstSubfolderSpec = 13; files = ( + CEE166302DD5E7830012CF61 /* EnteAlbumWidgetExtension.appex in Embed Foundation Extensions */, CEE6BE7C2D7AE7FE00E4048B /* EnteMemoryWidgetExtension.appex in Embed Foundation Extensions */, + CEE166882DD5F6F30012CF61 /* EntePeopleWidgetExtension.appex in Embed Foundation Extensions */, ); name = "Embed Foundation Extensions"; runOnlyForDeploymentPostprocessing = 0; @@ -79,6 +101,10 @@ A78E51A260432466D4C456A9 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; BB097BB5EB0EEB41344338D2 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; CE93A9062D808893005CD942 /* EnteMemoryWidgetExtensionDebug.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = EnteMemoryWidgetExtensionDebug.entitlements; sourceTree = ""; }; + CEE166232DD5E7820012CF61 /* EnteAlbumWidgetExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = EnteAlbumWidgetExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + CEE166362DD5E7950012CF61 /* EnteAlbumWidgetExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = EnteAlbumWidgetExtension.entitlements; sourceTree = ""; }; + CEE1667B2DD5F6F20012CF61 /* EntePeopleWidgetExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = EntePeopleWidgetExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + CEE1668E2DD5F70F0012CF61 /* EntePeopleWidgetExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = EntePeopleWidgetExtension.entitlements; sourceTree = ""; }; CEE6BE6F2D7AE7FD00E4048B /* EnteMemoryWidgetExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = EnteMemoryWidgetExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; CEE6BE822D7AE8C700E4048B /* EnteMemoryWidgetExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = EnteMemoryWidgetExtension.entitlements; sourceTree = ""; }; DA8D6672273BBB59007651D4 /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = ""; }; @@ -86,7 +112,21 @@ /* End PBXFileReference section */ /* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ - CEE6BE802D7AE7FE00E4048B /* Exceptions for "EnteMemoryWidget" folder in "EnteMemoryWidgetExtension" target */ = { + CEE166342DD5E7830012CF61 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + Info.plist, + ); + target = CEE166222DD5E7820012CF61 /* EnteAlbumWidgetExtension */; + }; + CEE1668C2DD5F6F30012CF61 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + Info.plist, + ); + target = CEE1667A2DD5F6F20012CF61 /* EntePeopleWidgetExtension */; + }; + CEE6BE802D7AE7FE00E4048B /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { isa = PBXFileSystemSynchronizedBuildFileExceptionSet; membershipExceptions = ( Info.plist, @@ -96,18 +136,9 @@ /* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ /* Begin PBXFileSystemSynchronizedRootGroup section */ - CEE6BE722D7AE7FD00E4048B /* EnteMemoryWidget */ = { - isa = PBXFileSystemSynchronizedRootGroup; - exceptions = ( - CEE6BE802D7AE7FE00E4048B /* Exceptions for "EnteMemoryWidget" folder in "EnteMemoryWidgetExtension" target */, - ); - explicitFileTypes = { - }; - explicitFolders = ( - ); - path = EnteMemoryWidget; - sourceTree = ""; - }; + CEE166262DD5E7820012CF61 /* EnteAlbumWidget */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (CEE166342DD5E7830012CF61 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = EnteAlbumWidget; sourceTree = ""; }; + CEE1667E2DD5F6F20012CF61 /* EntePeopleWidget */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (CEE1668C2DD5F6F30012CF61 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = EntePeopleWidget; sourceTree = ""; }; + CEE6BE722D7AE7FD00E4048B /* EnteMemoryWidget */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (CEE6BE802D7AE7FE00E4048B /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = EnteMemoryWidget; sourceTree = ""; }; /* End PBXFileSystemSynchronizedRootGroup section */ /* Begin PBXFrameworksBuildPhase section */ @@ -120,6 +151,24 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + CEE166202DD5E7820012CF61 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + CEE166252DD5E7820012CF61 /* SwiftUI.framework in Frameworks */, + CEE166242DD5E7820012CF61 /* WidgetKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + CEE166782DD5F6F20012CF61 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + CEE1667D2DD5F6F20012CF61 /* SwiftUI.framework in Frameworks */, + CEE1667C2DD5F6F20012CF61 /* WidgetKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; CEE6BE6C2D7AE7FD00E4048B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -146,12 +195,16 @@ 97C146E51CF9000F007C117D = { isa = PBXGroup; children = ( + CEE1668E2DD5F70F0012CF61 /* EntePeopleWidgetExtension.entitlements */, + CEE166362DD5E7950012CF61 /* EnteAlbumWidgetExtension.entitlements */, CE93A9062D808893005CD942 /* EnteMemoryWidgetExtensionDebug.entitlements */, CEE6BE822D7AE8C700E4048B /* EnteMemoryWidgetExtension.entitlements */, 2772189F270F596900FFE3CC /* GoogleService-Info.plist */, 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, CEE6BE722D7AE7FD00E4048B /* EnteMemoryWidget */, + CEE166262DD5E7820012CF61 /* EnteAlbumWidget */, + CEE1667E2DD5F6F20012CF61 /* EntePeopleWidget */, 97C146EF1CF9000F007C117D /* Products */, AC6CA265BB505D982CB00391 /* Pods */, C6A22658E77FF012720BEDDA /* Frameworks */, @@ -163,6 +216,8 @@ children = ( 97C146EE1CF9000F007C117D /* Runner.app */, CEE6BE6F2D7AE7FD00E4048B /* EnteMemoryWidgetExtension.appex */, + CEE166232DD5E7820012CF61 /* EnteAlbumWidgetExtension.appex */, + CEE1667B2DD5F6F20012CF61 /* EntePeopleWidgetExtension.appex */, ); name = Products; sourceTree = ""; @@ -235,12 +290,58 @@ ); dependencies = ( CEE6BE7B2D7AE7FE00E4048B /* PBXTargetDependency */, + CEE1662F2DD5E7830012CF61 /* PBXTargetDependency */, + CEE166872DD5F6F30012CF61 /* PBXTargetDependency */, ); name = Runner; productName = Runner; productReference = 97C146EE1CF9000F007C117D /* Runner.app */; productType = "com.apple.product-type.application"; }; + CEE166222DD5E7820012CF61 /* EnteAlbumWidgetExtension */ = { + isa = PBXNativeTarget; + buildConfigurationList = CEE166352DD5E7830012CF61 /* Build configuration list for PBXNativeTarget "EnteAlbumWidgetExtension" */; + buildPhases = ( + CEE1661F2DD5E7820012CF61 /* Sources */, + CEE166202DD5E7820012CF61 /* Frameworks */, + CEE166212DD5E7820012CF61 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + fileSystemSynchronizedGroups = ( + CEE166262DD5E7820012CF61 /* EnteAlbumWidget */, + ); + name = EnteAlbumWidgetExtension; + packageProductDependencies = ( + ); + productName = EnteAlbumWidgetExtension; + productReference = CEE166232DD5E7820012CF61 /* EnteAlbumWidgetExtension.appex */; + productType = "com.apple.product-type.app-extension"; + }; + CEE1667A2DD5F6F20012CF61 /* EntePeopleWidgetExtension */ = { + isa = PBXNativeTarget; + buildConfigurationList = CEE1668D2DD5F6F30012CF61 /* Build configuration list for PBXNativeTarget "EntePeopleWidgetExtension" */; + buildPhases = ( + CEE166772DD5F6F20012CF61 /* Sources */, + CEE166782DD5F6F20012CF61 /* Frameworks */, + CEE166792DD5F6F20012CF61 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + fileSystemSynchronizedGroups = ( + CEE1667E2DD5F6F20012CF61 /* EntePeopleWidget */, + ); + name = EntePeopleWidgetExtension; + packageProductDependencies = ( + ); + productName = EntePeopleWidgetExtension; + productReference = CEE1667B2DD5F6F20012CF61 /* EntePeopleWidgetExtension.appex */; + productType = "com.apple.product-type.app-extension"; + }; CEE6BE6E2D7AE7FD00E4048B /* EnteMemoryWidgetExtension */ = { isa = PBXNativeTarget; buildConfigurationList = CEE6BE812D7AE7FE00E4048B /* Build configuration list for PBXNativeTarget "EnteMemoryWidgetExtension" */; @@ -267,7 +368,7 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 1620; + LastSwiftUpdateCheck = 1630; LastUpgradeCheck = 1510; ORGANIZATIONNAME = "The Chromium Authors"; TargetAttributes = { @@ -276,6 +377,12 @@ LastSwiftMigration = 1100; ProvisioningStyle = Automatic; }; + CEE166222DD5E7820012CF61 = { + CreatedOnToolsVersion = 16.3; + }; + CEE1667A2DD5F6F20012CF61 = { + CreatedOnToolsVersion = 16.3; + }; CEE6BE6E2D7AE7FD00E4048B = { CreatedOnToolsVersion = 16.2; }; @@ -296,6 +403,8 @@ targets = ( 97C146ED1CF9000F007C117D /* Runner */, CEE6BE6E2D7AE7FD00E4048B /* EnteMemoryWidgetExtension */, + CEE166222DD5E7820012CF61 /* EnteAlbumWidgetExtension */, + CEE1667A2DD5F6F20012CF61 /* EntePeopleWidgetExtension */, ); }; /* End PBXProject section */ @@ -309,11 +418,25 @@ 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, - DA6BE5E826B3BC8600656280 /* BuildFile in Resources */, + DA6BE5E826B3BC8600656280 /* (null) in Resources */, 277218A0270F596900FFE3CC /* GoogleService-Info.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; + CEE166212DD5E7820012CF61 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + CEE166792DD5F6F20012CF61 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; CEE6BE6D2D7AE7FD00E4048B /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -607,6 +730,20 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + CEE1661F2DD5E7820012CF61 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + CEE166772DD5F6F20012CF61 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; CEE6BE6B2D7AE7FD00E4048B /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -617,6 +754,16 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ + CEE1662F2DD5E7830012CF61 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = CEE166222DD5E7820012CF61 /* EnteAlbumWidgetExtension */; + targetProxy = CEE1662E2DD5E7830012CF61 /* PBXContainerItemProxy */; + }; + CEE166872DD5F6F30012CF61 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = CEE1667A2DD5F6F20012CF61 /* EntePeopleWidgetExtension */; + targetProxy = CEE166862DD5F6F30012CF61 /* PBXContainerItemProxy */; + }; CEE6BE7B2D7AE7FE00E4048B /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = CEE6BE6E2D7AE7FD00E4048B /* EnteMemoryWidgetExtension */; @@ -949,6 +1096,250 @@ }; name = Release; }; + CEE166312DD5E7830012CF61 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = EnteAlbumWidgetExtension.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 6Z68YJY9Q2; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = EnteAlbumWidget/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = EnteAlbumWidget; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2025 The Chromium Authors. All rights reserved."; + IPHONEOS_DEPLOYMENT_TARGET = 18.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = io.ente.frame.debug.EnteAlbumWidget; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + CEE166322DD5E7830012CF61 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = EnteAlbumWidgetExtension.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 6Z68YJY9Q2; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = EnteAlbumWidget/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = EnteAlbumWidget; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2025 The Chromium Authors. All rights reserved."; + IPHONEOS_DEPLOYMENT_TARGET = 18.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = io.ente.frame.EnteAlbumWidget; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + CEE166332DD5E7830012CF61 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = EnteAlbumWidgetExtension.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 6Z68YJY9Q2; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = EnteAlbumWidget/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = EnteAlbumWidget; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2025 The Chromium Authors. All rights reserved."; + IPHONEOS_DEPLOYMENT_TARGET = 18.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = io.ente.frame.EnteAlbumWidget; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Profile; + }; + CEE166892DD5F6F30012CF61 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = EntePeopleWidgetExtension.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 6Z68YJY9Q2; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = EntePeopleWidget/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = EntePeopleWidget; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2025 The Chromium Authors. All rights reserved."; + IPHONEOS_DEPLOYMENT_TARGET = 18.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = io.ente.frame.debug.EntePeopleWidget; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + CEE1668A2DD5F6F30012CF61 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = EntePeopleWidgetExtension.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 6Z68YJY9Q2; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = EntePeopleWidget/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = EntePeopleWidget; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2025 The Chromium Authors. All rights reserved."; + IPHONEOS_DEPLOYMENT_TARGET = 18.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = io.ente.frame.EntePeopleWidget; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + CEE1668B2DD5F6F30012CF61 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = EntePeopleWidgetExtension.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 6Z68YJY9Q2; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = EntePeopleWidget/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = EntePeopleWidget; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2025 The Chromium Authors. All rights reserved."; + IPHONEOS_DEPLOYMENT_TARGET = 18.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = io.ente.frame.EntePeopleWidget; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Profile; + }; CEE6BE7D2D7AE7FE00E4048B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1094,6 +1485,26 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + CEE166352DD5E7830012CF61 /* Build configuration list for PBXNativeTarget "EnteAlbumWidgetExtension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + CEE166312DD5E7830012CF61 /* Debug */, + CEE166322DD5E7830012CF61 /* Release */, + CEE166332DD5E7830012CF61 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + CEE1668D2DD5F6F30012CF61 /* Build configuration list for PBXNativeTarget "EntePeopleWidgetExtension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + CEE166892DD5F6F30012CF61 /* Debug */, + CEE1668A2DD5F6F30012CF61 /* Release */, + CEE1668B2DD5F6F30012CF61 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; CEE6BE812D7AE7FE00E4048B /* Build configuration list for PBXNativeTarget "EnteMemoryWidgetExtension" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/mobile/ios/Runner/Runner.entitlements b/mobile/ios/Runner/Runner.entitlements index 729e142a0a..16cbc1a46e 100644 --- a/mobile/ios/Runner/Runner.entitlements +++ b/mobile/ios/Runner/Runner.entitlements @@ -11,7 +11,9 @@ com.apple.security.application-groups + group.io.ente.frame.EnteAlbumWidget group.io.ente.frame.EnteMemoryWidget + group.io.ente.frame.EntePeopleWidget From 491de296ca941a6e8be3153c81ace713286e2493 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Thu, 15 May 2025 18:18:42 +0530 Subject: [PATCH 009/316] feat: similar UI's for all the widgets --- .../ios/EnteAlbumWidget/EnteAlbumWidget.swift | 226 +++++++++++++++-- .../EnteMemoryWidget/EnteMemoryWidget.swift | 8 +- .../EntePeopleWidget/EntePeopleWidget.swift | 228 ++++++++++++++++-- 3 files changed, 417 insertions(+), 45 deletions(-) diff --git a/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift b/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift index 62ce88f2f4..10014f0e1e 100644 --- a/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift +++ b/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift @@ -7,27 +7,65 @@ // import SwiftUI +import UIKit import WidgetKit +private let widgetGroupId = "group.io.ente.frame.EnteAlbumWidget" + struct Provider: TimelineProvider { - func placeholder(in context: Context) -> SimpleEntry { - SimpleEntry(date: Date(), emoji: "😀") + let minutes = 15 + let data = UserDefaults(suiteName: widgetGroupId) + + func placeholder(in _: Context) -> FileEntry { + FileEntry( + date: Date(), index: nil, imageData: nil, title: "Title", subTitle: "Sub Title", + generatedId: nil) } - func getSnapshot(in context: Context, completion: @escaping (SimpleEntry) -> Void) { - let entry = SimpleEntry(date: Date(), emoji: "😀") + func getSnapshot(in _: Context, completion: @escaping (FileEntry) -> Void) { + let entry = FileEntry( + date: Date(), index: -2, imageData: nil, title: "Favorites", + subTitle: "May 3, 2021", + generatedId: nil) completion(entry) } - func getTimeline(in context: Context, completion: @escaping (Timeline) -> Void) { - var entries: [SimpleEntry] = [] + func getTimeline(in _: Context, completion: @escaping (Timeline) -> Void) { + var entries: [FileEntry] = [] // Generate a timeline consisting of five entries an hour apart, starting from the current date. - let currentDate = Date() - for hourOffset in 0..<5 { - let entryDate = Calendar.current.date( - byAdding: .hour, value: hourOffset, to: currentDate)! - let entry = SimpleEntry(date: entryDate, emoji: "😀") + let currentDate = Calendar.current.nextDate( + after: Date(), matching: DateComponents(second: 0), matchingPolicy: .nextTime, + direction: .backward + )! + + var totalMemories = + data?.integer(forKey: "totalMemories") + + if totalMemories != nil && totalMemories! > 0 { + let count = totalMemories! > 5 ? 5 : totalMemories + for offset in 0.. some View { + if #available(iOS 16.0, *) { + self.widgetAccentable(accentable) + } else { + self + } + } +} + +extension Image { + @ViewBuilder + func backwardWidgetAccentedRenderingMode(_ isAccentedRenderingMode: Bool = true) -> some View { + if #available(iOS 18.0, *) { + self.widgetAccentedRenderingMode(isAccentedRenderingMode ? .accented : .fullColor) + } else { + self + } + } + + @ViewBuilder + func backwardWidgetFullColorRenderingMode() -> some View { + backwardWidgetAccentedRenderingMode(false) + } } diff --git a/mobile/ios/EnteMemoryWidget/EnteMemoryWidget.swift b/mobile/ios/EnteMemoryWidget/EnteMemoryWidget.swift index 0d7d3790e1..dec4f5a9ad 100644 --- a/mobile/ios/EnteMemoryWidget/EnteMemoryWidget.swift +++ b/mobile/ios/EnteMemoryWidget/EnteMemoryWidget.swift @@ -13,7 +13,7 @@ import WidgetKit private let widgetGroupId = "group.io.ente.frame.EnteMemoryWidget" struct Provider: TimelineProvider { - let X = 15 + let minutes = 15 let data = UserDefaults(suiteName: widgetGroupId) func placeholder(in _: Context) -> FileEntry { @@ -47,7 +47,7 @@ struct Provider: TimelineProvider { for offset in 0.. SimpleEntry { - SimpleEntry(date: Date(), emoji: "😀") + let minutes = 15 + let data = UserDefaults(suiteName: widgetGroupId) + + func placeholder(in _: Context) -> FileEntry { + FileEntry( + date: Date(), index: nil, imageData: nil, title: "Title", subTitle: "Sub Title", + generatedId: nil) } - func getSnapshot(in context: Context, completion: @escaping (SimpleEntry) -> Void) { - let entry = SimpleEntry(date: Date(), emoji: "😀") + func getSnapshot(in _: Context, completion: @escaping (FileEntry) -> Void) { + let entry = FileEntry( + date: Date(), index: -2, imageData: nil, title: "Jane Fonda", + subTitle: "Sep 23, 2021", + generatedId: nil) completion(entry) } - func getTimeline(in context: Context, completion: @escaping (Timeline) -> Void) { - var entries: [SimpleEntry] = [] + func getTimeline(in _: Context, completion: @escaping (Timeline) -> Void) { + var entries: [FileEntry] = [] // Generate a timeline consisting of five entries an hour apart, starting from the current date. - let currentDate = Date() - for hourOffset in 0..<5 { - let entryDate = Calendar.current.date( - byAdding: .hour, value: hourOffset, to: currentDate)! - let entry = SimpleEntry(date: entryDate, emoji: "😀") + let currentDate = Calendar.current.nextDate( + after: Date(), matching: DateComponents(second: 0), matchingPolicy: .nextTime, + direction: .backward + )! + + var totalMemories = + data?.integer(forKey: "totalMemories") + + if totalMemories != nil && totalMemories! > 0 { + let count = totalMemories! > 5 ? 5 : totalMemories + for offset in 0.. some View { + if #available(iOS 16.0, *) { + self.widgetAccentable(accentable) + } else { + self + } + } +} + +extension Image { + @ViewBuilder + func backwardWidgetAccentedRenderingMode(_ isAccentedRenderingMode: Bool = true) -> some View { + if #available(iOS 18.0, *) { + self.widgetAccentedRenderingMode(isAccentedRenderingMode ? .accented : .fullColor) + } else { + self + } + } + + @ViewBuilder + func backwardWidgetFullColorRenderingMode() -> some View { + backwardWidgetAccentedRenderingMode(false) + } } From 538a5df32d339d7d6ffd0007635e9d1dd7f30041 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Fri, 16 May 2025 14:30:13 +0530 Subject: [PATCH 010/316] feat: add preview images for both android & iOS --- .../android/app/src/main/AndroidManifest.xml | 14 ++ .../ente/photos/EnteAlbumsWidgetProvider.kt | 198 ++++++++++++++++++ .../ente/photos/EntePeopleWidgetProvider.kt | 198 ++++++++++++++++++ .../res/drawable/albums_widget_preview.png | Bin 0 -> 174607 bytes .../res/drawable/people_widget_preview.png | Bin 0 -> 148379 bytes .../main/res/layout/albums_widget_layout.xml | 84 ++++++++ .../main/res/layout/people_widget_layout.xml | 84 ++++++++ .../app/src/main/res/xml/albums_widget.xml | 10 + .../app/src/main/res/xml/people_widget.xml | 10 + .../ios/EnteAlbumWidget/EnteAlbumWidget.swift | 7 +- .../EnteMemoryWidget/EnteMemoryWidget.swift | 2 +- .../EntePeopleWidget/EntePeopleWidget.swift | 5 +- 12 files changed, 604 insertions(+), 8 deletions(-) create mode 100644 mobile/android/app/src/main/kotlin/io/ente/photos/EnteAlbumsWidgetProvider.kt create mode 100644 mobile/android/app/src/main/kotlin/io/ente/photos/EntePeopleWidgetProvider.kt create mode 100644 mobile/android/app/src/main/res/drawable/albums_widget_preview.png create mode 100644 mobile/android/app/src/main/res/drawable/people_widget_preview.png create mode 100644 mobile/android/app/src/main/res/layout/albums_widget_layout.xml create mode 100644 mobile/android/app/src/main/res/layout/people_widget_layout.xml create mode 100644 mobile/android/app/src/main/res/xml/albums_widget.xml create mode 100644 mobile/android/app/src/main/res/xml/people_widget.xml diff --git a/mobile/android/app/src/main/AndroidManifest.xml b/mobile/android/app/src/main/AndroidManifest.xml index 60f760e2c4..88db745114 100644 --- a/mobile/android/app/src/main/AndroidManifest.xml +++ b/mobile/android/app/src/main/AndroidManifest.xml @@ -150,6 +150,20 @@ + + + + + + + + + + + + diff --git a/mobile/android/app/src/main/kotlin/io/ente/photos/EnteAlbumsWidgetProvider.kt b/mobile/android/app/src/main/kotlin/io/ente/photos/EnteAlbumsWidgetProvider.kt new file mode 100644 index 0000000000..5e63bfe9e8 --- /dev/null +++ b/mobile/android/app/src/main/kotlin/io/ente/photos/EnteAlbumsWidgetProvider.kt @@ -0,0 +1,198 @@ +package io.ente.photos + +import android.appwidget.AppWidgetManager +import android.content.Context +import android.content.SharedPreferences +import android.graphics.Bitmap +import android.graphics.BitmapFactory +import android.graphics.drawable.BitmapDrawable +import android.net.Uri +import android.util.Log +import android.view.View +import android.widget.RemoteViews +import androidx.core.content.ContextCompat +import es.antonborri.home_widget.HomeWidgetLaunchIntent +import es.antonborri.home_widget.HomeWidgetProvider +import java.io.File +import kotlinx.serialization.Serializable +import kotlinx.serialization.decodeFromString +import kotlinx.serialization.json.Json + +@Serializable +data class AlbumsFileData(val title: String?, val subText: String?, val generatedId: Int?) + +class EnteAlbumsWidgetProvider : HomeWidgetProvider() { + override fun onUpdate( + context: Context, + appWidgetManager: AppWidgetManager, + appWidgetIds: IntArray, + widgetData: SharedPreferences + ) { + appWidgetIds.forEach { widgetId -> + val views = + RemoteViews(context.packageName, R.layout.albums_widget_layout) + .apply { + val totalMemories = + widgetData.getInt("totalMemories", 0) + var randomNumber = -1 + var imagePath: String? = null + if (totalMemories > 0) { + randomNumber = + (0 until totalMemories!!).random() + imagePath = + widgetData.getString( + "albums_widget_" + + randomNumber, + null + ) + } + var imageExists: Boolean = false + if (imagePath != null) { + val imageFile = File(imagePath) + imageExists = imageFile.exists() + } + if (imageExists) { + val data = + widgetData.getString( + "albums_widget_${randomNumber}_data", + null + ) + val decoded: AlbumsFileData? = + data?.let { + Json.decodeFromString< + AlbumsFileData>(it) + } + val title = decoded?.title + val subText = decoded?.subText + val generatedId = decoded?.generatedId + + val deepLinkUri = + Uri.parse( + "albumswidget://message?generatedId=${generatedId}&homeWidget" + ) + + val pendingIntent = + HomeWidgetLaunchIntent.getActivity( + context, + MainActivity::class.java, + deepLinkUri + ) + + setOnClickPendingIntent( + R.id.widget_container, + pendingIntent + ) + + Log.d( + "EnteAlbumsWidgetProvider", + "Image exists: $imagePath" + ) + setViewVisibility( + R.id.widget_img, + View.VISIBLE + ) + setViewVisibility( + R.id.widget_placeholder_container, + View.VISIBLE + ) + setViewVisibility( + R.id.widget_subtitle, + View.VISIBLE + ) + setViewVisibility( + R.id.widget_title, + View.VISIBLE + ) + setViewVisibility( + R.id.widget_overlay, + View.VISIBLE + ) + setViewVisibility( + R.id.widget_placeholder, + View.GONE + ) + setViewVisibility( + R.id.widget_placeholder_text, + View.GONE + ) + setViewVisibility( + R.id.widget_placeholder_container, + View.GONE + ) + + val bitmap: Bitmap = + BitmapFactory.decodeFile(imagePath) + setImageViewBitmap(R.id.widget_img, bitmap) + setTextViewText(R.id.widget_title, title) + setTextViewText( + R.id.widget_subtitle, + subText + ) + } else { + // Open App on Widget Click + val pendingIntent = + HomeWidgetLaunchIntent.getActivity( + context, + MainActivity::class.java + ) + setOnClickPendingIntent( + R.id.widget_container, + pendingIntent + ) + + Log.d( + "EnteAlbumsWidgetProvider", + "Image doesn't exists" + ) + setViewVisibility( + R.id.widget_img, + View.GONE + ) + setViewVisibility( + R.id.widget_placeholder_container, + View.GONE + ) + setViewVisibility( + R.id.widget_subtitle, + View.GONE + ) + setViewVisibility( + R.id.widget_title, + View.GONE + ) + setViewVisibility( + R.id.widget_overlay, + View.GONE + ) + setViewVisibility( + R.id.widget_placeholder, + View.VISIBLE + ) + setViewVisibility( + R.id.widget_placeholder_text, + View.VISIBLE + ) + setViewVisibility( + R.id.widget_placeholder_container, + View.VISIBLE + ) + + val drawable = + ContextCompat.getDrawable( + context, + R.drawable + .ic_home_widget_default + ) + val bitmap = + (drawable as BitmapDrawable).bitmap + setImageViewBitmap( + R.id.widget_placeholder, + bitmap + ) + } + } + + appWidgetManager.updateAppWidget(widgetId, views) + } + } +} diff --git a/mobile/android/app/src/main/kotlin/io/ente/photos/EntePeopleWidgetProvider.kt b/mobile/android/app/src/main/kotlin/io/ente/photos/EntePeopleWidgetProvider.kt new file mode 100644 index 0000000000..2a3efa789c --- /dev/null +++ b/mobile/android/app/src/main/kotlin/io/ente/photos/EntePeopleWidgetProvider.kt @@ -0,0 +1,198 @@ +package io.ente.photos + +import android.appwidget.AppWidgetManager +import android.content.Context +import android.content.SharedPreferences +import android.graphics.Bitmap +import android.graphics.BitmapFactory +import android.graphics.drawable.BitmapDrawable +import android.net.Uri +import android.util.Log +import android.view.View +import android.widget.RemoteViews +import androidx.core.content.ContextCompat +import es.antonborri.home_widget.HomeWidgetLaunchIntent +import es.antonborri.home_widget.HomeWidgetProvider +import java.io.File +import kotlinx.serialization.Serializable +import kotlinx.serialization.decodeFromString +import kotlinx.serialization.json.Json + +@Serializable +data class PeopleFileData(val title: String?, val subText: String?, val generatedId: Int?) + +class EntePeopleWidgetProvider : HomeWidgetProvider() { + override fun onUpdate( + context: Context, + appWidgetManager: AppWidgetManager, + appWidgetIds: IntArray, + widgetData: SharedPreferences + ) { + appWidgetIds.forEach { widgetId -> + val views = + RemoteViews(context.packageName, R.layout.people_widget_layout) + .apply { + val totalMemories = + widgetData.getInt("totalMemories", 0) + var randomNumber = -1 + var imagePath: String? = null + if (totalMemories > 0) { + randomNumber = + (0 until totalMemories!!).random() + imagePath = + widgetData.getString( + "people_widget_" + + randomNumber, + null + ) + } + var imageExists: Boolean = false + if (imagePath != null) { + val imageFile = File(imagePath) + imageExists = imageFile.exists() + } + if (imageExists) { + val data = + widgetData.getString( + "people_widget_${randomNumber}_data", + null + ) + val decoded: PeopleFileData? = + data?.let { + Json.decodeFromString< + PeopleFileData>(it) + } + val title = decoded?.title + val subText = decoded?.subText + val generatedId = decoded?.generatedId + + val deepLinkUri = + Uri.parse( + "peoplewidget://message?generatedId=${generatedId}&homeWidget" + ) + + val pendingIntent = + HomeWidgetLaunchIntent.getActivity( + context, + MainActivity::class.java, + deepLinkUri + ) + + setOnClickPendingIntent( + R.id.widget_container, + pendingIntent + ) + + Log.d( + "EntePeopleWidgetProvider", + "Image exists: $imagePath" + ) + setViewVisibility( + R.id.widget_img, + View.VISIBLE + ) + setViewVisibility( + R.id.widget_placeholder_container, + View.VISIBLE + ) + setViewVisibility( + R.id.widget_subtitle, + View.VISIBLE + ) + setViewVisibility( + R.id.widget_title, + View.VISIBLE + ) + setViewVisibility( + R.id.widget_overlay, + View.VISIBLE + ) + setViewVisibility( + R.id.widget_placeholder, + View.GONE + ) + setViewVisibility( + R.id.widget_placeholder_text, + View.GONE + ) + setViewVisibility( + R.id.widget_placeholder_container, + View.GONE + ) + + val bitmap: Bitmap = + BitmapFactory.decodeFile(imagePath) + setImageViewBitmap(R.id.widget_img, bitmap) + setTextViewText(R.id.widget_title, title) + setTextViewText( + R.id.widget_subtitle, + subText + ) + } else { + // Open App on Widget Click + val pendingIntent = + HomeWidgetLaunchIntent.getActivity( + context, + MainActivity::class.java + ) + setOnClickPendingIntent( + R.id.widget_container, + pendingIntent + ) + + Log.d( + "EntePeopleWidgetProvider", + "Image doesn't exists" + ) + setViewVisibility( + R.id.widget_img, + View.GONE + ) + setViewVisibility( + R.id.widget_placeholder_container, + View.GONE + ) + setViewVisibility( + R.id.widget_subtitle, + View.GONE + ) + setViewVisibility( + R.id.widget_title, + View.GONE + ) + setViewVisibility( + R.id.widget_overlay, + View.GONE + ) + setViewVisibility( + R.id.widget_placeholder, + View.VISIBLE + ) + setViewVisibility( + R.id.widget_placeholder_text, + View.VISIBLE + ) + setViewVisibility( + R.id.widget_placeholder_container, + View.VISIBLE + ) + + val drawable = + ContextCompat.getDrawable( + context, + R.drawable + .ic_home_widget_default + ) + val bitmap = + (drawable as BitmapDrawable).bitmap + setImageViewBitmap( + R.id.widget_placeholder, + bitmap + ) + } + } + + appWidgetManager.updateAppWidget(widgetId, views) + } + } +} diff --git a/mobile/android/app/src/main/res/drawable/albums_widget_preview.png b/mobile/android/app/src/main/res/drawable/albums_widget_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..5a7d069ed03b5bc84fc43913b5b43fa0070cfd0d GIT binary patch literal 174607 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]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

    hX`8*lKpU(ok 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 literal 0 HcmV?d00001 diff --git a/mobile/android/app/src/main/res/drawable/people_widget_preview.png b/mobile/android/app/src/main/res/drawable/people_widget_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..7501d680983f8bfd70d9251073621341853600e5 GIT binary patch literal 148379 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
      KTT8^(K(!MOG_7*iXDNP9tL2O6L&YD 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 + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mobile/android/app/src/main/res/layout/people_widget_layout.xml b/mobile/android/app/src/main/res/layout/people_widget_layout.xml new file mode 100644 index 0000000000..f7b55a77fa --- /dev/null +++ b/mobile/android/app/src/main/res/layout/people_widget_layout.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mobile/android/app/src/main/res/xml/albums_widget.xml b/mobile/android/app/src/main/res/xml/albums_widget.xml new file mode 100644 index 0000000000..464b74db66 --- /dev/null +++ b/mobile/android/app/src/main/res/xml/albums_widget.xml @@ -0,0 +1,10 @@ + + + \ No newline at end of file diff --git a/mobile/android/app/src/main/res/xml/people_widget.xml b/mobile/android/app/src/main/res/xml/people_widget.xml new file mode 100644 index 0000000000..a6c37ba398 --- /dev/null +++ b/mobile/android/app/src/main/res/xml/people_widget.xml @@ -0,0 +1,10 @@ + + + \ No newline at end of file diff --git a/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift b/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift index 10014f0e1e..a9413f0789 100644 --- a/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift +++ b/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift @@ -90,10 +90,9 @@ struct FileEntry: TimelineEntry { struct EnteAlbumWidgetEntryView: View { var entry: Provider.Entry let defaultBase64Image = - "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" let defaultBase64Preview = - "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" let data = UserDefaults.init(suiteName: widgetGroupId) @@ -208,7 +207,7 @@ struct EnteAlbumWidgetEntryView: View { .widgetURL( URL( string: - "albumwidget://message?generatedId=\(entry.generatedId != nil ? String(entry.generatedId!) : "nan")&homeWidget" + "albumswidget://message?generatedId=\(entry.generatedId != nil ? String(entry.generatedId!) : "nan")&homeWidget" ) ) } diff --git a/mobile/ios/EnteMemoryWidget/EnteMemoryWidget.swift b/mobile/ios/EnteMemoryWidget/EnteMemoryWidget.swift index dec4f5a9ad..22071159ea 100644 --- a/mobile/ios/EnteMemoryWidget/EnteMemoryWidget.swift +++ b/mobile/ios/EnteMemoryWidget/EnteMemoryWidget.swift @@ -90,7 +90,7 @@ struct FileEntry: TimelineEntry { struct EnteMemoryWidgetEntryView: View { var entry: Provider.Entry let defaultBase64Image = - "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" let defaultBase64Preview = "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" diff --git a/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift b/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift index c043722f4c..f8621a7cb2 100644 --- a/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift +++ b/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift @@ -90,10 +90,9 @@ struct FileEntry: TimelineEntry { struct EntePeopleWidgetEntryView: View { var entry: Provider.Entry let defaultBase64Image = - "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" let defaultBase64Preview = - "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" let data = UserDefaults.init(suiteName: widgetGroupId) From 9b1eacf73665e80d790c312e8664d598bf02a53d Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Fri, 16 May 2025 14:37:33 +0530 Subject: [PATCH 011/316] fix: update the preview images --- .../io/ente/photos/EnteAlbumsWidgetProvider.kt | 3 +-- .../io/ente/photos/EnteMemoryWidgetProvider.kt | 2 +- .../io/ente/photos/EntePeopleWidgetProvider.kt | 3 +-- .../res/drawable-hdpi/ic_albums_widget.png | Bin 0 -> 24870 bytes .../drawable-hdpi/ic_home_widget_default.png | Bin 51352 -> 0 bytes .../res/drawable-hdpi/ic_memories_widget.png | Bin 0 -> 24269 bytes .../res/drawable-hdpi/ic_people_widget.png | Bin 0 -> 31538 bytes .../res/drawable-mdpi/ic_albums_widget.png | Bin 0 -> 15365 bytes .../drawable-mdpi/ic_home_widget_default.png | Bin 25974 -> 0 bytes .../res/drawable-mdpi/ic_memories_widget.png | Bin 0 -> 14460 bytes .../res/drawable-mdpi/ic_people_widget.png | Bin 0 -> 17815 bytes .../res/drawable-xhdpi/ic_albums_widget.png | Bin 0 -> 34339 bytes .../drawable-xhdpi/ic_home_widget_default.png | Bin 83772 -> 0 bytes .../res/drawable-xhdpi/ic_memories_widget.png | Bin 0 -> 34010 bytes .../res/drawable-xhdpi/ic_people_widget.png | Bin 0 -> 46561 bytes .../res/drawable-xxhdpi/ic_albums_widget.png | Bin 0 -> 58445 bytes .../drawable-xxhdpi/ic_home_widget_default.png | Bin 168217 -> 0 bytes .../res/drawable-xxhdpi/ic_memories_widget.png | Bin 0 -> 56965 bytes .../res/drawable-xxhdpi/ic_people_widget.png | Bin 0 -> 82375 bytes .../res/drawable-xxxhdpi/ic_albums_widget.png | Bin 0 -> 20601 bytes .../ic_home_widget_default.png | Bin 206928 -> 0 bytes .../drawable-xxxhdpi/ic_memories_widget.png | Bin 0 -> 19971 bytes .../res/drawable-xxxhdpi/ic_people_widget.png | Bin 0 -> 28075 bytes .../main/res/layout/albums_widget_layout.xml | 2 +- .../main/res/layout/memory_widget_layout.xml | 2 +- .../main/res/layout/people_widget_layout.xml | 2 +- 26 files changed, 6 insertions(+), 8 deletions(-) create mode 100644 mobile/android/app/src/main/res/drawable-hdpi/ic_albums_widget.png delete mode 100644 mobile/android/app/src/main/res/drawable-hdpi/ic_home_widget_default.png create mode 100644 mobile/android/app/src/main/res/drawable-hdpi/ic_memories_widget.png create mode 100644 mobile/android/app/src/main/res/drawable-hdpi/ic_people_widget.png create mode 100644 mobile/android/app/src/main/res/drawable-mdpi/ic_albums_widget.png delete mode 100644 mobile/android/app/src/main/res/drawable-mdpi/ic_home_widget_default.png create mode 100644 mobile/android/app/src/main/res/drawable-mdpi/ic_memories_widget.png create mode 100644 mobile/android/app/src/main/res/drawable-mdpi/ic_people_widget.png create mode 100644 mobile/android/app/src/main/res/drawable-xhdpi/ic_albums_widget.png delete mode 100644 mobile/android/app/src/main/res/drawable-xhdpi/ic_home_widget_default.png create mode 100644 mobile/android/app/src/main/res/drawable-xhdpi/ic_memories_widget.png create mode 100644 mobile/android/app/src/main/res/drawable-xhdpi/ic_people_widget.png create mode 100644 mobile/android/app/src/main/res/drawable-xxhdpi/ic_albums_widget.png delete mode 100644 mobile/android/app/src/main/res/drawable-xxhdpi/ic_home_widget_default.png create mode 100644 mobile/android/app/src/main/res/drawable-xxhdpi/ic_memories_widget.png create mode 100644 mobile/android/app/src/main/res/drawable-xxhdpi/ic_people_widget.png create mode 100644 mobile/android/app/src/main/res/drawable-xxxhdpi/ic_albums_widget.png delete mode 100644 mobile/android/app/src/main/res/drawable-xxxhdpi/ic_home_widget_default.png create mode 100644 mobile/android/app/src/main/res/drawable-xxxhdpi/ic_memories_widget.png create mode 100644 mobile/android/app/src/main/res/drawable-xxxhdpi/ic_people_widget.png diff --git a/mobile/android/app/src/main/kotlin/io/ente/photos/EnteAlbumsWidgetProvider.kt b/mobile/android/app/src/main/kotlin/io/ente/photos/EnteAlbumsWidgetProvider.kt index 5e63bfe9e8..884042afb3 100644 --- a/mobile/android/app/src/main/kotlin/io/ente/photos/EnteAlbumsWidgetProvider.kt +++ b/mobile/android/app/src/main/kotlin/io/ente/photos/EnteAlbumsWidgetProvider.kt @@ -180,8 +180,7 @@ class EnteAlbumsWidgetProvider : HomeWidgetProvider() { val drawable = ContextCompat.getDrawable( context, - R.drawable - .ic_home_widget_default + R.drawable.ic_albums_widget ) val bitmap = (drawable as BitmapDrawable).bitmap diff --git a/mobile/android/app/src/main/kotlin/io/ente/photos/EnteMemoryWidgetProvider.kt b/mobile/android/app/src/main/kotlin/io/ente/photos/EnteMemoryWidgetProvider.kt index a2a4e09bf7..036fb4872a 100644 --- a/mobile/android/app/src/main/kotlin/io/ente/photos/EnteMemoryWidgetProvider.kt +++ b/mobile/android/app/src/main/kotlin/io/ente/photos/EnteMemoryWidgetProvider.kt @@ -181,7 +181,7 @@ class EnteMemoryWidgetProvider : HomeWidgetProvider() { ContextCompat.getDrawable( context, R.drawable - .ic_home_widget_default + .ic_memories_widget ) val bitmap = (drawable as BitmapDrawable).bitmap diff --git a/mobile/android/app/src/main/kotlin/io/ente/photos/EntePeopleWidgetProvider.kt b/mobile/android/app/src/main/kotlin/io/ente/photos/EntePeopleWidgetProvider.kt index 2a3efa789c..0e7404adac 100644 --- a/mobile/android/app/src/main/kotlin/io/ente/photos/EntePeopleWidgetProvider.kt +++ b/mobile/android/app/src/main/kotlin/io/ente/photos/EntePeopleWidgetProvider.kt @@ -180,8 +180,7 @@ class EntePeopleWidgetProvider : HomeWidgetProvider() { val drawable = ContextCompat.getDrawable( context, - R.drawable - .ic_home_widget_default + R.drawable.ic_people_widget ) val bitmap = (drawable as BitmapDrawable).bitmap diff --git a/mobile/android/app/src/main/res/drawable-hdpi/ic_albums_widget.png b/mobile/android/app/src/main/res/drawable-hdpi/ic_albums_widget.png new file mode 100644 index 0000000000000000000000000000000000000000..41ba0108a9916c066bacfa0646471dfb43cf4900 GIT binary patch literal 24870 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

      WXA#!O;b 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%0Dt>}u{e|)ik6;0S^aN%A*v88au>P%3 zKAHE0IRP#e>>crb-vCqPSz`b465HZBckV2Yu%A79cFp+s_*xcb=#wW;W>`AHvb1D^ zfopo=zulSGLtb?5(~b|j)T7ttU`Bt_jUH!>#AImcene@2^*Sv|mI1_{@~6k%0Q^4E z;+oKkhMntR*YF)WH?2pix+VL2dh^rx2$epFhY@<^or0 z4{1oVt*+R9(u@Y5cc5NMBiz;)(WVFDali-FL4QfK;+AY)2quZCj8bzC;L52bJUZT4 zc7VlPZ@EzXYu<1*kn%ilDDssAH43y;hz_mH6J8_2{hvI5+R6i1n4;DlX!GC8*HLy% z$IERxI14#yoaOjRx<3yS_9!Se3LulTx zKTZw<=+JT`8rPYq+t0`B&%e$9-Jwi?{mBGarBcazty;B2W31-Lkt1tOnlwo=L%;g!s}M5)Dn}&e z?3sk$@{Tm~Zh)iKhCW#_Bo>7bazsVcaU=0(jr2VgMEt=Jg4cQDKCB}xyc%Ka^gc}; z>JZ}Oz#MN^j`#ECrzs(n&kKj8q42RcB^z~=rs*j^gqHWlvKld^m@ z<%KG^>d(C_Z_a<=LE#oHCFet+*q?Gy$;eY-l2%pEFQ)_O(7X;qQat$TRs=H^yHJ08 z3vAc7z+rt8J{;SKj`OUu^;-3V7zt(;xa0Ln5CPUa_TOl zPJhX$6W@@U^&LqEib>j2NbG`*j9c}YVwuWI#R=nb;4?pCC?&a_FbSetj#esr`WjEd z^$l^X|94!Qz00(LZTR(^KNRWZijzvBn^lGAPsjO{KT~Dh%X2*_&vmClyhqilKvrN7 z`-QS~yxO6MJ$`)snUVVM{*!?bLnHte4Vcfu)owVeV9Cpzx7X-&$ zOIfb6|E4TAn5julG45z->jwXBPeYY+?iFJfNuVp3w4;?#IBEgXl^s%Z+%8}_BC zLk~K%9)Z?%4l0*vc(j{=N4r@H0NM!v%s}lt9S@foXxdLiW!Down{EV45cDKeRFFg& zRRW+F;dZ?gPhexo0Tcj4+V#f2c6Z|S1LYaT@;pg-DvWdi28##ybJ}n22%kA~M$QQj zA3nTR_wL>QVsCFRszLui7!tm)CY6?f9G})U+&XGz5%Wn zxwK2qUu)FhueECO*>rcF6$JA5LNGo2?IZ~14047q{dkoty2U!HxZRQ;{5cOGm0y79 zvH{a2U#{$S=khiUPcHhwO+T4;i1*9V8LrF&a`e31ujkbk9b|+vKCCfq?K(2A-#lgv zSc135R2th4q;>PbG_~(dbB83{+fPF6IvrK}X{bcVBb9z8D)ZgLMJWF?Je+5ucA1X5 z(_nPAT?w-3MreZ`gqlHM@c)OkS10s;E$o2z!FbWFs43 zzsCUmqf4wz6vOftFJ2UL!ZnRX;~Rqq50;7WufP8Kxe^8`J42s5dx{~}m$#kjP}}ZZ zS~h!|2#q~+6WeiWwt??A1yg!72+sS!1*6Zh zfa;JRnuC65(gIQM55V(CFz#!-=rA}6b?PYU#kQu-2nQMrY{SjFN^QEl%$xvU+RM)e z-K6E^rj9WQ%F4qv<2u53A(UV20@tKd3l;eR3MtPDSc0A*Xxgt1dQ!686Vme<|X5 zI{|{Jcr=W|uR#nU^}7?&pc^4}B0270at%=6B^xP%V=gS$t6U8w7e!bi#GkT@0X)wQgsUOaGMgkJOeKdwQ0Dv@

      y-z>u!vi7-sU$)PV!_DQs8n1rgsB;4C6A&&@s6abi&URZu-^Xu}tcs$(Lk1}42mOEB*-E+FqcS055QPIjKVVt1GHQWS}Wntr%Lt5 z^ylOM*RPv5Zwhv($O9xZ^y<~C2J_O~%AKJXvzG8vx;wv~(eX4}&6DGu_$AwgUr(!e zbbTs1$E-MbFcmF#30IPW|`a zBA{hcHpO=4+)yvhr1)?kLB#}PJG@%frIXWtv2l^uh3`wLP#mjjNfp;!QHV0}p!4z|eQ^fy1EFRW^m7`rG7{vcy zlpf{#@RdKQAr83K`3DtO0%X`%Cc+dk-z!7J*ZT%ljjY!jYof#|HbQKlqmjz4ajwg= zoDjI>$G0a!ace7%RjR>;Szk+{@?OLwVoo?CBcoe{YhW# zjqQhT(#5$p;}V^jHOP$^|HkwPsY_X&w>j4L<<6ln3|;Ee#i2gC6TK*%9R&-5VWuz4 z@`X7eFh3Gjb!B~=H|<-#&66{sN-}3z7G+k3%Bd((Y81~4)ckxp7)^%;xOv*pa83*C z*0rO~7+ajiIpgt#5Bl^#RENFsFqb_wX+BcPMLE!b(V^$y^{Jj>P+q{FR*eLTak#EQnbFP8XBYIx$&{HPPBG?;BaEJP|aq5M0(-fQ> z`q8#oA2hDQnk(UsQteT~A0-4bTYR(Cw|D@N1S_vk$D{om+**!6TQ8Cz+ZgEuf~6Pe zA!!w|Par{{ghEkveenGtk|7bwNju7^Ugiy;m^zp}z@JZmU%w(EBIN4y9zA-z5f~UK zMkN3C>eVar;TcLIeEaJ{j;;0Nex{nAv)p-j+?`)edhqOwnv(OPB&j5!50CrPsqKF= zc0e1R=LRdgYHs?&wNM@ipokB@P|MvjzIb+MKv-J`?oJ4Y*#R)sNX0ZS5WJuH;V>_P zpQi=0BT++W3mXPS+fkk$2st8@vWktRg|q;`Q+}YL=|r(FNs&$X!0vq-&2+-W8 z-woGk8m@d_WbObfOK`vc_5xpKc*+V_RaHiWY{Jr-*PDxfuLOcdz9(GO%P>+Zvv|Eg zk15AUdA5=AECc1o^inEL8xi(7;u}e^*nU<0j+v za#7AK)KV%EzncLp8rPmK_8;O&kX#p`Zd7VhOGoRFP%hY#lH6YWQ`% zj>juKd9p&!(-k^J)~I>9(SsNJ#P(`$xag(uc|;LFu6U0ul$thC#!Ac=C$jhC{dQ>Ny#ox1psN@tQ_o1lcob`)+B{ij>$OM#?z_I zcr@+jD3)I)x3hi=04oomcnIZgDUqsNX5!IiI3BiP_}Rn|U}FY>s0xWjnZ57;0s!5J zb?A-$-5@fy$vw{EaBTA_FdVngpa1Rn|C?{Vsd4JmsT$vX_njD-tQ?X2;fEg*E199@ z!!wR=9mZD&I&k;68~3w1^Z0}r0B6;_IO+ z4)2rb=18)K6NA;QB?->2Rb7HR)g#{Dh6TghQm{!_^KiJXR4$Zo$80?-U4M0+d$~-6 z#ozH}+d?D%eE+{_Ji!UujjgG_wmEj6w!}sNVM{CQMm5EAT_EZVMbRq(AS*xqW>GwV zN_qfaJOltfH_&l~nx->b(rbMmNq-Ota7BeO3tW&nm*;1d5y+~>lT|gxy!}Dh*r0d> zkraz=@rwf*o~&`_`EngEml}Av)X2*fMqVs8@^ZP6l4V9-EYTU$ac@6^E{+Kp z>xUC$8!J74B_WpdYP()U*!3XNrZ;}}(cHXrvyuU7UV=5>T>t;y$N!eg!k;*Q{=7Ip ztk#GTBP264FE6jN5@m@^5z5Zca~Vsxw6h}*jtKy`@mS;mr&T;ZE5aZ(uW}U2`zlA& z^+jvniiIexorukaBDljPZ%%E|GiP`UW~4S})x@@>Ez?o3ErbW6A#`1=`16$(OMHOk zIU*VK1hG*;erUg46jfOU6;%|W1jPn&cluDr_MbEw*8;l@t!VIBGweQVh3%)Uuv_02 zyAh4?+~|jUhCd!6*?kQFA~(>ABv}H$PliCMEnak4tEba4HI9>8F(+f5IsO;vZ-v|e zT9lS#PAseDa4VZnl^#IZ;iK&G5lulYFAk}Bw#-1;axY3(7V_rAf zwdjpg;~^3NEt@9OtWjT@*vI4MG8qqH$^Rz+SSfy`Cy?Gi^bTg=(RLI%+X#Yeq6xMU z01(o{Z2fx?Vc(0OdcBD3kid(l(z}|hj`kIco&RqDID6)7jr_cPF(4yYp_WAWul@V? zuTxf5CRR8L07z!&jpC!6`n)5Lv)s9#<<8?1DxRKJTLC~L0U(-MuLGcRS(9}6g0`TO z2_av4!`DXm(kMd~(Y&G1O}6gKaywEXXaq7Ywpc4+$;?fn-;lbLkwZCiD|zl39-a24 zRqGF^m+XlB##Yq-tU0!ywZLI*TN*EHO{0m;(5HvucF+fvrS$n40E7onLLfg>yS#AU zV4&j~Ev}2*X+FW3{e^NrJ*DOj@WcDxapORcZ0cE-R#hXrnE_Ds-k7CG!?QFGeqF5M z)e-}x%e^UE?#(Ny>_%R$@{&qlveFEM6<)j&AXw?e(`7n--K^B|<^NxVLE&D$$F`hQ09mAc~RQrLAlz#Gxg(f>3bo+0;pmz$ZPKmGU>M?TZ=AhR>~vpjfoOwE&1 z8lIokm;s=o?4pQ6h1)kPtHrulQ+;Jv;7P>=9c33p?5ma`i}*QZE1EeGG>`37D){T{ z#@_)zwP`D%d_{hEy4T~q?jO>4OKa+_b;4$CYZ|Y2q0UGfIGQ{xJZoIr`?Wm&=4! z&#V1fp0C&Pbd`>$%RPC%!pL(G1}*cVWVx5w0~i!9AVQ;+dY&!!+HC!Q zlLY^fC$LV4J4{2>dOV)>q6ugaL!bmfH%XccvF%Aj!(Mp48^Wh^G!2mU%0x1Ts zC4cSTj{n6a;(zfA?%lgrW8}z@HPvc$t*KL|%0&3_2L#r? zM{r>T>oOt8kvBCT;JC$=`s*=^sOUv0E@m~_mFRy-)8_FyIC_eKk507ao6X4${{~zq^sTA>Z7xa{8 z8z?!Vb?IT zb_WRnWP4cwz>loCzSz}nM4)CkO&yYH*;M2L$r1p~8}+44(*eH^0IBf5BW7NZrAzE4 zDHJnsZ`2!O{YZl9#}e2;;R=a_Sd33<-}NK=;HfGGs8asi_rDr}{G%%`FHZtM073Kv zVq;@PM_3~3_U+rzq9JCg5F?Vx-#vX`9Jls%kmb<(nJRwC764H5QY6ATiZvHrKv7zA zylzfdtz-7;(@<8&{#155s|GkME5Z2_9-u1e6iuNna3h!*$({I{-J3YBYDc{l-hJz zg<#Ms4AAs3l$~|AqAvUk4^WxFD;pz3pP)iib7VLt3Jc<~0*Z?BMk>x4sW@ezEL%@S zwm~_^?4$v5w6a2`(5kE6PwO$uf9V0L0l=4&i~MNxZf%CdjzQ-!n&yrB)2c}dZJVXw z)VMconhiwL-U5J`zx4nX%Wr9vS%W}ugXCQ_)kfjbAd-N3u>{(5B}g>KYmYt!s($mvhm6w-47i$+Q%3sMu_~MCA z$=l+>!z?ZLGd*~ct>XD<4KL4W%mA>2K;i?oSimY}{f+hh13r7T@BNqG|9c~UVj--% z?7Hq*sN&uC-o_^0j;6ah@!?cQT2FA13{Q`P-e}W;P)WsCI=_}Os8sv|eyH{f>+gg6 zE+cN6J?Zp`j*g49I8JKI@{_BpO@N6radXppK)!n=_^ZYbe>?eQJ)T(Q6{|c)W!1~# zCCp`0AxfMtsN!nM3sjWnyH)4^=PCdYNpHm;4c%J<)SLth0K5_aIN(e6JYSl=`yr#F zl9`k^l@MJDO&a#2iCu5(>&Mcu%@{NtL{DH&H4k7Zky=8Y%DCTB8Z`qzxzE78{Vd!Z z2coYRfxm4u{}ggP81260hE_0hs`R7V8|T6_y3##Tdo;1X2_Fc5)%_^8Vm+` zie!TZ4gUWA`|rP1T3UKdnEr|iu4{9^Is}HmL_ra@UKRULZM5mV1QM=4FdjgBHo2xx$C9jtJn!Uhp0MTwDss=H5 z*+$?eszMIk(Y_bR_&(Dt;g2~1=9$T4a`?j?p#R(J#*G^?3=%y7ad<{>aPS*qSCDx` za+{KLC;{%Hhd-0P-iNyx?)-E_BPkKTo>cMtjPL^5*FqpGD`ve0@ZS>a`2Tl8q1VDF z*$)sM&>Z0f{FyVR6}3OCOYM5KX%gCs4y!zI-RMQK|{o%lll=;44L$LIL+x0-*W zN!{8E324ft<=(J20Mmg`zTMKBwc`iV&3`iPt)}AIY7%Pa8ECBP|7yt#5^=t{A!bF5 zsPYWTT`l_p1JE@H!{0UnABR}lzN6>!m0Oi4v$Ra||4o>#2)#AW0RNx$UyMP@U$%Sq z?i!OOO{(eb?fr(ic_RP-AOJ~3K~%={>CG)9#+^ojsI6AtTYW9YyDs({OX1 zf!=vG`nEH17o@mq*58r`SgJt+9Mez>ibUIqbh3${Q-dH}?4xM>p)Y4oD>PkGbewG$ zoj8qc+g4*XXfUyjCQXwxjjhHu8r!yQCyg50Hvjj#_-C!Tm|2;Xne!a%gXio&Jmnah zcOS9POTV68UKU+%CU~v6Y*(8H{b3NlQ&CZ=og;O4zok{l|5nI_E(7OHk)-$iJ*!+5 z$=x#s2m=LO-3KFazX{RBc7T-qYO3*=70P`2ptK;0o?&55N@ee`DHjT)!b4OTrC`Hc z+~-D1cp`27{Blmg>qX5mF@aYada?KTO)CrB?| z-TLXvQul&XW_d<|xwD+EvrW3?yAc(uK2`}mzhH!B+_g=m2-vFVL*WhS0+t5pZrjs9bCgmC0_ZvYtGx3%5%)xVrPjBR7M*;#-i+>6eDkO zSe@@F9E>^gJPL9z1k<7v<1Z}*kQLwk5ZJd{P8c5=6=oI z7Q0W$Wp67?9D8a1517<%{}Kl$IWh0Llqte03ZZ@)<5 z8CgiD!P%O@QyiZ>F=QH^A`STES4>}ubv)n|pZHqYB4J~C?M;%4b$hV!B1{e5;jJ~n zP%lcj=@suN=VZRLeDUTh+9|^%U?B$EThtN4Y1HqYP?*DNebzzF6n2w&x19lT4juK5 zj_s#sUW*%+G#7ro`f2W~_B{-)FA+LootgC7s)Y9;L>6 zO)z%<1YPiGB%A+~hc>(drDcK4LO?e$e`S)Kq$vQ6OXq8Z{l>Y(GLM~{i|g3v%*~rIR^`!9d1oHHibB3a_?4p-BbFC~&Oxdr zL%b|Yd^IbNlQ=x8A`hqNp7}Cl4o{Wn#{;2Jm0?m)FW|VXqwqNk zEx_PuLnPP$qoDVW{Cuh+0?yk%Ux^H>_6;;>wNcdhdo4i2-o9UIF%k=t?oowA8^oeE z$}cO|=SvyFb%gcCGCcw%D0>601u3zggu}$KV2l`$de!jcrIf1$Ln@h+)t!X(H zTB>boI7K#+8jeOU4}$+CKVE02xPkFX;-FIwf{%Xj$`8C@1+tQS*Kp3+goGaXDFq^b z@rT9xB#%m&Y@f~6!SMu+_rG}47v#^`9-)T;^lqhR80Px7ZUu~^c=udykWjsuPj0)^K0DV6s$5J6WKaS*Ret$&{B^FSyykPCx^WGhX={3} zmLmixXIkZoSz`kOmilAA1r*x;l`O^Q%X_;NG<;C+o|(Lq5IyT{Jd7_w$1|xXF|L4Ql+or2u2?f) zW47UvV{gO_xJ7ZO;*5&RhB+@mgNS?!ePvSgpD{w@iFA#Zb!!XMk4nxy?eOal>204e zr_&{NZDfqk-C=u---7}J)mbJwfDqd)2TJJx@7wkuoec-%5s(mTUhU=!OerFQEZv+8 z9tc5NLwQwM-j)@IVIlpBo}&8!c^iA37G|4Bu+9Y?*}>|6O5sN~K}(7W53`OMs< zce!gE74>pZ|LQ8&$D8`S^3;Ckwos8sYb||ztpn?X)zk+DlpHm&dqmG&=>Kz+^&$VY z6qJGSj}q&nR-KQM$)kX}DFhOWnu|k(m(la@VwvO!F;h2Mmw;4|8Ww88mmCU1s-=A! zLL7|Mu1gRHTnvfmZ+;w@hf3(*1IL;^dQP~y)CMC5!tJa3Q1}q1>8todF2ZJdjvPA_ zL!3JB=gMenWb9h(j(WE6t9HV9{z9U9EB%P6G?03o7*gj z-XOh;4?_0T3+%;sx|Vs;^9Yj}HP+*KFVf^Bo*&wUIk#b8Z&dG*tKDQ^H|sCK78irD z3|0Ql$=8pS7nJJa%8E12dMh@G3$nkq^LUJ5VH6Y$_vYW z&=N!c;VXm5om9MZ>?9U^;SJ3L`fbObr^ zLo=A1jldOSAAKJZx;FVynEK(K1J9F>eXXEF@^y=3adkbA!ERu^*+96~JGL`IBW9h99udDylV7Z^;Kh9Hk;K2q&q z8YnmPX>%#Dq4LXd9dA|@d;>Qr^Q=1o?5>=qVkjkMbqwEvsZ_*Wa63BkT7fZ>7lZQ* zj~-PM&w1-KTx)-4@e(Gy0&@X-KA#|VZV#iE1lqiEUMV0`3u!~Ocf2SA=5+Sg0k(1i zVZyTD$=>HJhZ@^QqH;nZ+&{ETy`@*y=t8cHurNQqbR+(mZm=O*;nj^A9{G_$-S}Qn z4NDi<2nl*`25DjaVqPI&ei)(6s%B0YjKDYLG3ke25$vlktvwC_fizHEQ+!}P{d3l!(+X_xY90`3kE1 zP;vGf<*MGFqHBfN2(DR#v^;cD(4hM1LGIixf?j!#K=e|J%atldC%Bjak-huF4vXrc z_pRTy*{huJ8pToK*o8Ru(q8w}_Z(88!Ov)VV(#b--g>^}pPeCp*tN4f`kEO8yYc(tPOzN96VZL-bCC#GR2!`#>9Z%y9 zClv7()Md4Nxj%~w#iUL9u~aQ~ibPz5`xaa6_GLCxGq$aWl7#3ah?Yx&Ng3LAdWW@M zN^l24k}(0NyO!T9BZjy~_j}dM~c}U5M*k zC z*o^Xi`30t~AU#DP-y+vI zY)WLlz9w-IKP|0Kp$w;&KHCWH00Y{yus*4`ReKsiYXlA%O;o39iTvQ^L*2Ul+8svck$vAD2%pE5RHZ5*qmh-9b63_1);~p(I=(uSc{-O` z6~gbf2*IXCL&n(gJpg4l4r6x{G}k9fi)AtD*eSP270{xEh+0}+A;Z3S!hX1}J`3uTM_`GR5GOuu*J;G-?{im2K@c@9V3DDAp_@h0_eM7Gf}nm2=GxbKPh-+U z4jK;cQAYdx?wJ#ZhZR0wdM<5y6~{0{lk7HeiR#nOz0E4TbQgy4m{1DNNZ)IZ@FI`P zEuG89GyTHK@e<4>A$f7PcDN-rH~L{UQBchyy`q(1C_W@zRs~n_mtPFTN0V*rU;8wc z-l8p<|F|TuP9D~CX~XOAAc_XB?t005u;VDPNak{I;xzN%J|3BG9%GQXklQ8VlkJOT zQO;t{h%X}J5g{8AzCGQ5jL?`)2Jn9CFu&5?*fJ=S_fFcZ1CF&%Jgay!8?P! z?feoSA#EK@H_p_%%H#?5@!gR2OnPsmJl2GR#l1oCu`fvVpV_BphNCQSGO;>of;F#? zPx0lq$~a6P?LQMFCV#6|jztfxjj+TrObeYorQ0P6{etKs?b%uh#lU*o8-Tg?^TL&P zRd61AxviCKtIiqFYdFKovyj;$&6H8=z)x(wD-iM|>r*{@h#Q;Ru@f>c#^jYmAw6&L zGsQ9mH&ozph{~y*p4c(QT17l0BuFQ8L(D+GnnnM>s-nxFgyHNkq#6TJ`%f?jYE0vJ zJp@;eK?AL7bY&E@b6=>uvP-_bop6W+d3HIY-I1Rt_1wH~!MpX42zmW8l3K!II^iYx z`l8e~>Nle$L`PuVmscY!h(j1O-aBaQP#r2Ndet5B^f;6SdYe>nDh6IzKqv`?9N9JN6A12x5->T8bOmCvG)QwKOm*6lDZ2vkhtp?ef2U|;oD8fk z8rmdnCk1Dw@3p2m)QDNw0crBhZ(BbPnraH#K5I5!da@_FT57M4Q~aKyu1Pzbvnfb0oDQLX zj7Cn!qoqL;iD2Rd_R3c3=*&ukCF!na7)LM{kN{uV7;g6SmE+A2btc(r5%GTte~ucu zj-l5g;U_MG`(hdi@7u$^geHth2;jNG9ETLzB|cA*JaNPqC8=X89FWA=!r?diY&)2} z4+lsi<&bAjpe)FQ@(2Kqeklj-Z-;-&G~q%ra@=z`xr`To?Vj2CNz=A&UWHcD2}*q} zfX)_N&gRyE1_6`$rUOj5Y=RR28g`!&4ll`L!z$mO+^leS&X}DelR6keDm+z}U(N%w zMASymB@{{L3JM`$TfNdLgiEs1e-zLq=oPXP?^(@VQn_Jd7Je~)8fUTGvWea?RO~LX zqlo!sgvmnV9S}Zp#rMaPh*ptA%2}fl46!iN3eBYi$t@lm^RO)H+&R6nz&G!`%s_j@W~uM*JZa+ zK#FBcnyk#REmbapdCN%PkLhNJ4mk(w#3^mkl^1#YS@%@D@^MSME>uZD;<%O>ykucm zy$I$%WbgVUt_J);d;q`L88_0`m#CpQBgk&Ea`;q#bz^ibAvVYpSSjPTP5cnV=&cTr zpV88fazb{*vM*D;uUm6hhbX$Ks#T^|E;u08`8pKv8|enb3OGF@W0|M)50A}u5{v%# zTC))h9;xeKQg6$`zu&(O?}b;)B&&Az4pjZ)K)u{_)x-i@-yWUQnSU(+GjbTB7mBgq zrkcVqn9A6gWOs<;2!E-*WOq`d2`-lBDy_{`meml7k75^$Y{3e>{u*069wII^h?MY6 zGWS-6N^bT^IgP-tHXOZJKGGzQiy1+QRlcu774zrbux0)kVYq{UY0Pb38DH`xiHa%; zIqeGq!q?1f9o0_?1+dhC)Xi6O$a>8`QG!uOyZ@HGZp-WNXr}Q?{N@+EgGy(Wm&z$j zSag2BXZxPN_&wVchI5M(Do3A+RJb`H>z8Uw>^1Tv=~`I*TNT;Err_#ll7QM9_URf| ze@jfaP&cRfP(hfxkNHMbLfIyZza5o#XbpD(@RoBDgdpDqW@JePaaQk0F#D!CC|l!@ zpKZG4`o)_r&n7VnMch*lEj=FxZ?1(G=Z-L7K+Lo{0yOP|p>dxT_7^xNOdKnaujLP< z=z&7=nk5c18Xn}VK+QhN8Ws!odUb9y`9~D6Gv>^Thymo@!#(U;t5Y~gRJSCp!EPgy zUjmyTl13i{%Io5-%IZ6sg1S7^;`JWs$6Nz@GN2WV_!Y}+z4#Y1`zI-sE1sb0D?)Rb ztvQ6OquFKorJdq42}rbOl($>1g^tFkSCN%v%4%dBoc+)X6W7*(mQ#6B9v*bWDpHct zUQtt>3f{Ue@vlsRmy;j zfQT5A<%9eAv$l+)V((TT+|?ySoqVw|J=h?p%l(pDhvxqG+7^%Nl^J}e*CUi1IC4Ht zFdyez9+GE6N`V5s<-%Xlyo$nH3hP2ntmp7O^Md9F2a;NqXfmNI)pU_+1gqeE@(W3> za~i4a2xVHx-)xm=)D)uQK~Y$Ob20DZ6@PTWgou|Fc;#RhH!j2=>ttK3HW{mb^J}n2 z3ZkCJj(G%&ndgp`xh}E%_+wzB9I2g&0AW`gl;Fq zIw@sD4bkt|pFHxJ5#vSQcodOYEfS@ZuV-9SSDIz@?7)fC*n~%f8Wfph{^QnRE-kYL zD=UZk=TfYWeBh^QC&wlL*RhA9^YRm#E-B7NSVjWYwwyN=TO^zd>6_z8ehMxVK;Xjl zkasedM|b&7*UkN`JN9OFGGT|ZTVL8d`BZ-i+R&T_!_!FxqS`-Lu&`taL?8}r^tHT= z#o8P3{ED9J-f^fYmW#$Hp8MeqX5a}1i5d7SbzJvV=Q*PMbR)R6@_HJ%SHr_Rz)n9w zo>(`KzbbRNh4F@$dcAIJezQlle7OBG;o|qBSAO7KS&OIk^XUW@-ZD9Sc)*a6auvE3 zjv(yVb7Wr`Ic7D3BgVpS#hw)i)f%231Pg%*L(gKdA%s|gkpUx!{YG<}c%~Y8iXyvdeUT7#VV6zQNu#s%vQE<>%umWeWD3{cDPejrHsAmrNJ- zBKS*yT(`1KAey!Mgi96Np2IhXRIB<9&a_3*_GhJ%79tnfLM@w{=qCO(7~$w`W!G2{ zEw&JHAk(We_ivh-F5knBiP_Lp&lK(O ziq1E3FA;?AiQs2Uo+%l=cJ$?quHV7ZCCvVoVAMtf@YNB?k6d{x zm2YbKzq9!%A+aO6r1Ll^VX>1fC37jf_(xTXI2jG(>w^-6m?8H7t4kFo4#X|oG#GW= zB_a*1f5VKu_JW=~)eYec{_q<+c-UTO2&ZFlh4xnJf<2y`<2HtulN$NjS-S)RCAci) zm6j5io142n-_ip;P(Pq4(LXdqc{NYp`C(X9wg&6;(9s9R0L8tM37x^Y<&rWfKK0zn zbJAg^_1>Ftrck-&nO;w?bT3_gV9~e{3X!5G+=(go;cRi!6zrKdXJrMij$`s=T~f33 z+lj42huiP{WV()b4am)7!Z80+8JipeQ)`+{IW@kI1jc1yu8_G)BeUFr0mZ=a5e3=d zx(xZ=8$53B85}N-!=5Mcz~9@14|qu%iCvIuO*0Z9dPMhQCA9Nk|rfr`Oy7UI*Wn8Lh33nVi(qd&DMavWXA)53Off@1Gr+B(_&(BT=DbSy zF19!AJzS-g&6|UcO1Ll`(Zdtb3OhW7OP^Gg8W*2d|J7Sc8HHE)5jc(QS-+NMcPb3j zDajlLFM@x$VfR=Pifp>|cvd~rMfYM8R|XO9Y@pX^(xP{EXbTKXF7?k8^9R)9r$W%- z&nSKE-9N`KK4T$zp!RKN$7-#(AgR9Z_3Tu~(Se7d%g;s7ttDtp^$*SZkyHGetLZ}s z`H)ZGl!l)D=FoUu`8DqT`0`q?>{WEdJa1(szYmC1K;16>=9$goGa5~xw~z=%DG*(1 zFD(t5fSIqga6KelZwt>Oedv38v~6~{q!v^-{Oymqwj72I^GW~mH;2SG>6}Lst}r^} zRP+fDI0+|k=%8>*an@{?D9sl!qG?KUwo{$YlZ38Ps^p4TskFE6qj1H6s(yiSdX}YgaCV(6hd@o~r1YlmY}dJ&7ACX!Qml{73?-QZbJP#T?tir&vpK3L`AY`~lR5z|JGEdKD)$U*v_6ZY zZRjMnHDW-=j~}u<*8z6+Cd#Ce-kvNO84jmC5ytt}l@+AgmQ1nt2sbP%5b}?g1FWJ0 zT@j;S@-f{oeaJO^_}DJ+hBA}*JUWS*G+09HG%AMjHE$-nwiKfP+nkPxMcmk!904(0 zSxf7;zkiYIDClPv#O6waHNYu^0o9HAa=*27wd48TrSY`Hr7k#=oU1!aCll2snz)1% zrs`cSe;s^eue3DK6*6^kVRRrqFGa@Pj*ZK<41O9ZO-@b*!WVQwLBT0^MiV&TNnI2V zr6SW;E)P~mpPSkFWBh@UfzkeAl3PzUd?>K*VrNP7=BN9RmfmAKt*!Sw@HDe5i+ zY~P4@=#vnfiIou_4h+hme`Y{Uh;kOW77-WH*mFcbV^3bSpevUKZ1mvqroGmh9i&FE ze0Lfe2{d3L#$F#IA&42jk&WZgc#SxCP||{){3K#sV;WKq8|s${e2}FFV5;kN&U`eV zjzj?HW`?7;&-V@PJ}=i_ z#4uAF9nFpPXFD4{&lNMdk}XOdC&^}1YmV+LTROuo?c_~Oa8x3k3kjYt4GG86Xq*C3<}^amtF-!sbF?1nOhgozTAQT9|@3*6`5eJ2fn3 zf(s8>zRlC24MWWk@zvhll0Wd+J|R9w_D{5DEzwWY;PpP)p?~vzTYUNe=6zcLl7w3G zIV;=|K*%a$5j=B;T8p_lOVd_E!sS_#<-$$+%*G3Q=2KeEHi?Cfk1aJ$~@HH!}H z?94NnB@zwrSQ!H)(S|@a?=U*Mfn`T^5MgB}oNbqYCnn_ON@TRMFUEaK&}8&MLpuin zUD_dpBnYj7(>W8lhpdwa8b)7a4X#nqD!`+l3b{7xfc=q+Nm88 zLSbv4U4d;}-jYk5u7t&>a9Bb+=6goam90K9ef#i+HXS*1*&URS#0eb(iMDgCH*#V| zLQ_sI9wBnY@eN26KYMjmF9}vbR@T@FM9^T+%{Ey9oQ+&em-d>SBs$Xjxr0oUi#u=|0%$5I(N zabeeCq{vC~FMK-ZfjPx;~0hwxDos?!#dwnAvZXf zmqJ_Xi_lTYP-^#)6Ibv+nJ(|hkz&fq=mLhZ{GkT9#%ODooj1!I0Pidt++ro{#NWC ztPTx1TEevol|AkHrh9YEC~7!&a%bVQf;GHB@w;<1UC$PX+Ho+5IA9@Pryv|$?4eI` zQ#>{m4bu_U!XBo!)+C!dSzW!lyj_yE*f!^4yvZA?;TJ_*Oz=X8AorhLQp=HVQRFsc zw#*FDvi6_q67uo5p8T1p>0yaSe#N%7Lb!l2c%ip>j zU1%m~&gUt1ao^-~$`5cH_oJGsC@V+lE>=+<8414MMY~k9yOSiLru$M01sfYoiG>^! z2l;e7DT(=LMFyQgRt0+}zenpq-EJs*+XGwhXI4S+1z(eEMIRR`bo+j&M{h@Cl5Q;XFeGmRV9m$@0`+H>Nn*^hhq*(n!(*9iGGZ(RX5`nH-t zr|Ur5-n8B~p@m$NCrKThwE9aP`Q8F94$d*DkbC~r)YRferMaT8wJ4S`VkZBp;+%fmWoTRaOuxb zLa#Q$+>>!B8GU1_jEtNIi$yrk@Zx|V5d?aqMq%=%xi*T0nzJnagG@qXmj*-5tEaAB zz|72CLC?fAA9p}zCwe93Eo?~J?0)xs@9E~C3dl7t9!~&k>q($jO;Y^BbG8S(c+N_m zWhHjIJ)CJMEoI2FVu3&!6g75bnetSM@YCYg9R4}efqpT?s$4_?B^vTDv(&)_on$O1 zb{nL5{4KzY@}aJC2(4H(^2^QY2?hpqkhSkUW|HU!FsuwT`#xJ+Tc7{cG~5FM9$9Eu z7zZ$UuW$3M_>rwa+~ZcaNd&@Wi6lvuIfs7@;abv12GcW}|1Xk8s5h9FC%`S2)e{5q zs`!|`?U5jfv`Wd30Jb|3+X+j?Q)W8=gOfby^}dO&&C*RO0~a>WG1mnRyP~;S>*jK+ zPoSlxCG_g*inQ}-|4(=j3Ne50_;@+)kbOqrOvVnM`$oV%jy=($2o;stHUQNOKD*x@ z76C9-iHU)sRhRO-@Mm^R&7f>qgw>NC(E@4`~Tdttf3NbJhu7lK0A z(*CQTTnzclA+*_}7Q7Xd}8ZNOmRVZ*_nbD#ge%uPu?^rz1_Rk4V>`W*#FB>si z#Rd4V2vwY5=e&LSyct1eCMNk#=d+bYVDDGpSTZZ>!`PcfqjlxqKNkl_McCk-^~b5MYdAjed>PFPr5lt{#SfWXOlcO9sEm2NzWyKPzusTnjzI-SF?wcZ`MZ0`hCIvdZk$lvz^%Bv zz^@db>N2;Ted$ey!-VcyRzQk{6{~5egEVeo~y7giTaSD0nl5V zyhAcaA5Gv?*iqYr>4o|EgoMOI^ZkQ^3wZ?v{T7>ljmleFTlw|EL_;mVhz?lVZEe4O zTO6I6tBV9M5@CbRnhrx^W8BzYg&Bu7BO)TA`wWLZ2P1$ih4^6N&o>U!L8L}C zIdO4uxJFC#77lWl6vG>62w4eZ_g>;ss!nE6_fg#1x%YDOrPF#;!RW5v>7$HJZ&yK| z4`DxHn2NHweh4y1jM{QN&mKAc1t2Fc;NcwEczGX4fjNag1o-&N`qjtzr!4-x9{-k> z9$%iHdF}vnaBz0MuWM|)S1$Xzju6=UZ*;WOSxZOfSxZ~{X&lb9~%n`>;CzqYD!*4 z#`Wd-?j$%oJltp2k}Giv;-hK+vkM+c1q=yo{}yDh-2}bTwNH&y!th24jc|?e<&cOH zy7wEWB%)h*^#Bx*wcSI>t%DZWgI}o>G4g!Wv9*;yt!2D=obS4q0iV*&Z01m5!c_ z2oFcJx3?!ZzsX+C0(8Wl=%4^h_nO9KwS56lfQM2#nQ#LVDV%j&=0-d<^z!UpGtW@dQ5imCBQW9Vmk*8AP$&MOJ&inm85qKT3nhirPgP7zEnHRY=p0?TNHKb zN8KON%a*Z%InU>X&G<7|E7CjY5%gNsC~tR(=EIqovr#cKkCm8^kiP~@fu1BJB$#J; zUXNT>>bEu0TC-?5*Is544L$J-2)w*JJw3Ixwmz>cFUP9eQ6!HE0pgS0THF2gS=F{g z?Kl@qmkzv>G5@_G4^Y#9$jHbJ;2DsZh)sNExwNvfq7AG}|4*7Z8f8Zv9V#V`;1V^I zUKip-xq^7$6Lr8b;E3)pB+9LgPfV0hYoPXMZDV5tD5(u#oDJeR)s1y^bs8mV-vPa9C@7#NR!2cWVW6d@ zO#~X{gi%pZ-*Itq8vuC&a@Mi2v$InOct?5DZ_u$RQz+%VJ0j>)w_G)z{XV zkk!=G*gsreUf$l_-Pz9M23Gy~^Ct^}Ofb-NY;$uHV0*F6@C3$JCwT4FS2eY?T&416 zs<{UveRJk!5$0Lw0AE88t1vUm9M3yfWwK=fQW$0-ld- z3URzg%XLL=T3RV_JA8FvVPOHiq2WhD9g2o|RSP!>4OlwuZf_2+kDJgA_DtqF9?{x} zev_MGcw^r!%gV|wgx#)p%?u3I1%gqC!wed}tFyrrKpMK>L>YW7VG3 zSvKdupFwkJ(Nk0#lu~n6;Zkv~oks}t$6CuQZ_#6ED#!uT{g5dK9)PlO)3*Q?xxBPg zY{rp_jr@ZnVT2X*VHKU@$u1Rq^Dy6D;ZO}vD_ z`^wF&tqdLQ?Fqntm($hN{koF8+|$!Dy0D<3AW@*A4ZQUa@U<8+r-!S6Ne}}j;)ecZ zKu=#^==JTbqrIcU>-6;06UOd<+COWjxe?GAl(qMP`&26{tB>)iDG_Z01I03?#aBot zlVx_(@)0z=py*LFtSM_5E~J=&yqHQH(zYcd{FnbcK|CTZ%TM5g`LE@yA^WhufB#Mi z3=UQ`jCpz|edx-cJ1Uh#n_pwm*u@wTBCMYwIr}Wn`iQk#hw}wM7xeV>pM3yVWHT}{ z5^m^m*5GHeQg6j5xTM2iYHTbf$8zmld)xm{ilNU{KpU*$s^Xj~zfYAshK~)zQnOLT zq+~iI`c#z?D)TxZ&@7m30pbNBZCOQmxeR6npmxA(3a=)$61DtOIY7A!^78U}Cnuv~ zD4Lp@k^zS>qQ-!2!^Ps{;1JIbG$0?JpLObiYcH!nA*CJ2_i z@LlSHIgQ7L;qLyv@M750(-Y4XUf$N$R?fr2<0~W_#MJ1hoPv=W9TqfrpF2bcz2eu; zpFbU(obGIO_DVvFP<8k4sHgOP%O55q<74Wqd}g=bYX3D zG)&u>laupniJBaajx5ePVDf-Zm7S6OoLbA6D3=Ndc^(kN@z$2{Ouj58BH#`jl$4a@ za8dy8@yF?Sexx1%=N15r;zmY9Fu4GQaV09W@u<^Orpm^_?!WkLE%OQL{W^&zAu-002qxBB)Gu> zywf@0pEH4LqU)2BlbyXC*d5Tse_Srsg?^qaRA4Hm^VOUKManjy`CR8sj{RaiKaxWE zjiOP8OXg>_PTWsHDn;KJHS6ZC$m#F)K>aZRwqS3L8n6_ePY4JcwAKI=F;i%hJ^$BK zc6by`q;mgZC{!Q>>O)dmwQA{mxA<0F%K)S72;yJ%(klduH}mc6nlA zLS3aKL7x9efF48JIhR5X_&CB~Q1&GUAt9lPV=90;>Q2|!*Ky3&thlUZe`Bq+%f{1K zFzeJC?F8Z)upz_4v)L?^r&qYu-4L!+2Lqd!;Jgx?C6#zpp|L=5H+T9#DQBhGH06%a1?Hes% zZP4P^qH-;Iw)DwkpW44eHUQaCq#A=cM2i|jLG$1;5FQ35CL)z-MMOj-z+C8}VqB#Y zfd0OCU-rN$1FVQ1H$V&w23(@u_W@$DOjLwU=KIg{B|R=kFWHjMoHF?$s~fWLAi!U& z0=2*9Pna|^t&T?~;y4o<8(DfCxd25ammpltO3s%Qb292}yFK4Ux` z6=k9P5%$vIRmGI$gfjm|FEg6#;pz(R%$W5PZftBc(9qD3U#17EGbA#>$S$nS&cfm&}(yAeo8X~Em7HaZLs6^Y5uMJR%qLeyUjo`(hNc_hqJSDMB5ygA@LUw7eCXt z0ugh3ZcbGW;o|(D$_)eKu5fN}t5vNB(Mv zvQTv)(yP&A0AZvk%bNi>(#U*(P!b7iR{`+$6M(vn>onOaY}S#j?CtLMcYn9GF3Ucl z1j8?u3RrIAUPIR)~;{myfWa&12+T-;J)ssQC8TlxY;6EOyJvwp06J(h3(_4SO|7$lM+%K3#vRh+ladX2;wuAEEMN*k-I!6SRWa$zId z;+-_h=#@=Nu*&&WodHc!aZSz0ASRULe0_ZliPi-Itk&bp%b&T+n;X+GMTEs%Da2OW zIlxK&0oH_##i6X_(MpxHvUbL{uLOKs&Dw{FnKTk=l*5KP} z59oU%FO9Jz<}#NmtENfd9NEc2j=F)Ozltt@#ey_p3Yu>-K;9$g@9z(9MpIvE8 z|F6;JYtYE}&`_{oePCT3r=QmT<|Y|#rM~RLZ*lxqL&=PMm68fIh6Y?wF)PDwz=Jne z(L`{DteeJerrhadK_4h>2+#-%d;bLn;JSb!Ogj+UCmNl7qC&dS!bBSe+BqL?E_4yr zvV2Z)ihc5@L(kUQk|B*{0T?6C?|3N6yV5%_5Qr689uWxyCDSsE3O(I=OEKQ6P@vew~$kbld*}=iVAp7sz=lN7v`6>W4<+mXwPhf6r+|$cz z;_&d|V#?JG3`Wzh8UZQ;3a}_dmbI=|Cf|{BusNyfn>Zo?@-hbj=Tjp!dtjt#74E`E zw1=q81rCMCb>9FM2F4z!Eb%v4Oc3N*b5dt0nyhO=i#coX;NoMC+yTww`#NCa;XLc( zl~#8th2ObIF+;BIfyyzHwf)ln(@Y_-iIW2i;Hk8DT1qeNSRA z6*fX(2AUF@)2~{&VF?OGWgXR(;=q*`GXCH4?DX0(0jlfw0P)PSQKY#&A--q z7XmdiUc1H0j06>rgc7oI*)T>dKO%Z43B3%a));q39wwI9T2(*UY|eypQ+k;eJ%c~q zR1eH_?Q&=q%d#P(Xo0jYN|X-Xn#ZbW~;ci`_b9{cK=TgkSU+E^w7%GFz57#7^7>`k-csOsa7RZ+LJ$Z6!H*7wg3?5a9aCABL)ibpJUhEN zymTFawa^HxhK7cuKwRqs{nO`bgolSeY_?r%g#a80u?NrIX#!9-u?Jvh$M*L252XE! zl#s||pRYL@A%N*Re49+qaV(}{;E>xsJF^j&li&r03HBW^>8WMt1xC%|8{;Vcg?@If zrQ7{}B&6*sC!t~=>a9c*zYO?Ogw>GV>RU?W(O>X>87b*Gr*QOw^!#<_X3ZhJF=e=V zo%3U3WB!m*+k+En+@}9|Bo*h@QQ~|M2p&>aQcP|89Ec)?K-Cx8C>ObqSisp#tx)=b zgl1^no+aTZ1qp` z;|t~XC2;4z6-lL;{yLl{ci^A{y!p%3r@L5C44H1YI6 zGE#S%;7=t*dr}FeqdPQh&%iPmZu!G&vyxzf$;r#h%UOE~Jqy(6>%@|TsHpnQfO;|0 zn@m#1;W)4hV9E8UAh{WsJ&>MxWx1nIsalrsocmc-*9+bu=>36yzW|`-pQaC02 zQoi1fqH`wjVc^}7>MhXuuP3Vh8g6C0J$IhHH&BgdUrcFcyQ8367|TlT7gR#4u62aw8P+PB@S(2%@Pfn1)4q z0`vmfPS5G({Py5yp=WbI31j3&75xZ_=|2=w|H}%K{HfLz^%h1(LV?TX?d>v06FQAQ zMrNbU*6814AQrpRR=vVt^>m9naKYPSiq`ruUeYpZDBeN4rC;9VH?-lR;;-}NzQ?ta+ zCKMl?{B;J6Q(A~&h+D_8>n$WG7^0!lap9RM@@CYfim1z#H$ zAJ5w^enpdt?7y?hU8kDi$j3AJn7av0kA9dcB=r}Yd z0(O(%R#TZm_+GitkOLaGuK+fL!G;~tn&Hf+g!n>-mKOKm^|0nb4PD=5-u?1b{C~4P zenE~Y?_FMx@MKd}fiG`vP8ONK8ZMF`bg8rZ_N`l+=2$(w-YGXRQK5TX(8?Rnr*tY_ z_gbKss($+2g9i==CI9k1dYAUa{N%3k*VlTrR_XA1cHIZo_rj|@C%jg>cW-NUxYz=r z{CZ$^RGBhyVZzi~mcUBvn9cR;@%3ldJwDjX{^rI)XZCLb*Ve_Jc5wJ)|2^Q}fvpL^ zu21amIF{yRZT`o(f<+>$rUh+RcJEtqqgjYaXqE34VBad`%nZX2=ETCOGmMr!caz+5 z;DCehC2=q2?s;G9!;YLe3>@srn4HTQ*bB7dx>yE_SCZeHIX@O}-D-MKc@s~_!Ibr! zDk(QRj|pUW-0a-Gd&dr7Im)QDB)&s4bq+ALB4<8$kZ`Kfn~h)YOvP*9e3V*m9C=S2^wHn035QR@1?B@jZ!OcA8d^ zlY#3DjJtuur+P21ub0o3UEmnIa!Q}7xK-vQm9k<@-)dkP$>t%n>*bNRD_?ops|(g& z)A&C#Ah&7F{)Ix9vw9XkZlb z(hPc-@#Dio9fqZ=40#`QKN0FY79ikq&^Xi(cy&^Okd)LZk$Dxsd2z)B^CT7-hls}R zue053HKlC{`+~65JEu$$0hUE&TUix_Hm-2d`*vD?{~z!7=l}a}%DruN?(*fyi{H%D z0QQ2nnob0^6OE;`?3VvGcG@%RNw@w!f$9EE7OIWK>%F6{rcMQUjv^V07*naRCt{1T?cqn)z%%*=ktjIf%Hjc?!8med+)s$k^l)w=)L!* zbdV~_QxttzP!KC1D!un6y?5z?2m}%m$jsdJfBW3IVG;sQ5f$Ih`M&erX}L3*yJqdZ z*WPCzh2jYq8jZ$sK0`+}Cn&6Kc}2s<9J_7rz$km2X_-%qc_)A2}y z=Xr&bGq2EUHFdOFjUqkC<;CDYofgQKz^T!U<#_?0z3pF#i;+h0T%=fWB0{`-DguTd zBP!#g^ssZ_-+TT=HG%gTtycT=N<1Bp21JcUsOzF<{$QS?lK;uZjyEZtgf;%Y+9uYv zeA$>m-oVdMrjo8dz}zzJFMPP!NQ=W^g`ZKGvnjpR(rDQEiw3^UU-0)CvbBKQ}T=hti|rcX2IB zJiR&8s8$Q6+zeOI@M8q79}E|79+3c8aUufrnk91rMF*t-p8%boV|`VPZ@0d}N@1^1 zzNAv9Y&iw*EP+$w%KT3T%BO7kbg&_@mPXOGh5L(*ZTO2*hI<2-B28EJgfZ|f`Xo?X zKQBnc4BdEX|0oh*gj&+BNpB@^G2Am^*S8dPl=GDR|7hkQ8m{QC1N8uUHS(1OA zYLWkshRi@@mhBlk32_t|AKMUW#HA?l!0HgZKgAar6AL#b8j7|g8j7|i8e45oF&1x2GB)25ZOq#gVaQn>YRLRD$dLM8 zpdoUoH+-|*pmWoLbKnhvTKL2@NT<|jC38)ne9DghzW_+0^)qT`t`4Ub6dG4;yxv8N zp*=hexd}RvbKu~h(!e#*3sL=pk@;Q(^1qKo@x}zS+L45o+mleVB~dKgn1B}R62yWv z@nXU1coeQl6q~FFL(`Sf=)Jk6IAUin^jz0MOkLn3rhMxq<}MEvn=B17rp*ql4DIeI z0n(8#)w*g5cupWcvaSrqr{jMbfD#MpT(k<#iB}ZNO8SRZuWhQb=e9W8s-fgHCcmbB zV$R!fXtypE?RTf4)ep%i+M0;M4GAb%6OV#b=DFHD>9IBOC|sL}CM(16>YhP3R&ofH z#!ApInhZGf%U<+ZU5tb;+{Nq#A!62dLC9GiET+u~tn|%rCon>z6JFuffP0;gn z4%+WeW5CN_6^Hy))d5Gd#oB~w$D*}K41`nnkA&s8e&=e{?YqW1=)1NhlD_sr_JUwB zb6%jB{ap~6ED1IScknQAP6D)gO;_^|hUA{7{^I|_kR5-WUP~ADSu%MF#Xl8V7i~wC zt@@lG2#9POfHsTM4gD|W8+-hii&oo`#pWyH#O5pFs(@w*x|&mdy!o0~wBL}8YZVgk z4qe}i-dl>1wJ-=>R^;K}FT2^}hp+8J`g}iReG^1e%$y%6W-bUMb~FVPNX)4B()tr4 z%9`WT@i!h-rCT~p9kr6HOa7Oezl)#Rk=vqHatLqbhfW)_D+gUGH1+&3S1jI`gyzd* z#r#$AVr@Ws*d#X0S{Z_A2gaC9u@NJ8^+NvgSae&_44qfz;me~RvgayImFTs)5Xr=f z-vl#25*V`<1|n;IkijiT58jzyWus6Mlan9&SAUgH$M5zBb(*@KVQvbgl{2wmKb5T- z-qG%8xggarm;o>k#T%1|{aB!33BF$gKuaKIt_a55lQXMKaB1aDJZQZ3!!X2s>4GK; zLqTlFz&I~ZY_cp^j2Y=`NIs-{q*cHLC}1xvgZ)j zCj|Y^7a00oYL3=hQjotgPRw6@j{$!R_-X^<2gjx{pqWGyelEX^Q#X&{;MLvOd~r1v zoS1`m_fE$2J>$`CStiov`yxwb#07yg#jI}vkvT8O;2NL<=fux)Zp?JWXVhx-U;VW{ z9lv$R=GZgLmEGq#VG*wukoRtU<&cshQ>O!2$X^*R=C6*c2Ea!Jp&Tveu8P2r9i0JD zV!f}A%|hfC0wO-=5irLdomS-H&E4aWzQ7-;^L&_Du42Ol@_^c&KOWxK z>p6|~slffW8^nYZm~hTqU8R+Z?$6>m0R^*@?hd(CB(~k21`0%es}J}v5VG5A5*QeB zR)u5T#bs5jxcTB5e0F3emi@Q@rFUtwFnDpLS z7uh^p6j4+aR6O+`pU@#^N*EwrwH?(C9CByGRSqpJ7Tf)hUJZo52Y@xD8^((35|Ohc z47m%#u=UcqT7AQx$}V8=`i@AM=Uv5!ne)waULZ2Q4n+2ML1N;YekMu>3WCstQ?i`& zKg?jHD7vm($s9sBGo^w*vQM{;lQDLokNnxXCps-a~DeM&13I~P5 z3r-4^ty;mW1g4F$k~7WIB8tCss8lM(hR*E5@Kg03I&|BYQ#s&r3$)&vLO$VR0Ac(C zL1+#*khLHfne&4X|Aiakzj8&&LN6qJ?~cSpZpdC9h}@;2i~-Z;_#^QhU&OrXjfkP1 z2BlH%k7RTHbo@z!nI^495!p8IMQ3aE#e@N&7;>}7 z)bn_rSh()-uwXS1njgE0 zY*+ZCxxqKt9sX%v2+s9ISPOqdwF^XC_Yfox3`fe#5l9~!C1y^DLi)H!q>YL|@+;v; z92kn2Zb1ld?T4Ty-tdX_fQyeF0w+Li&s|a3a^DM_(B3E6{Uzo@@*0KCL;Dnnf94=R ziKBHVdTl(X;?e56RMX&Vg<`kEIpSjn;pzl7bC-l8dvOqQRs^$S+Ux+tPVq))9}fhy zaz{Wj4}`Y#WwKGmxM(#0AQ5dBXQ1o$9P~WY6unP1L%)m7(f3j_^g5r1?myjE z=i^yo$3vOucqqfv{$RSH-TpK-+wMy>wB0MsHoH>|#T%0h`Ag#sS+gR=*jEDKpX~vS zPD7x)q|s>F6A*c4fz>)b9e>i$Xf)5N>^Lf9=;z|CLytpwh5^}rX&_|vwZf-I8a)#`SMulXgOC(&sUqP;-nwg`UJ6P zbD~(hEy+ZsXidM3tqkkr3sMWTI!!A1j!#ALKWR|8y&wqBDjPT}RCe4%uShraIn%td z|HT5a`_Y_VZI&MdKJo*Lw)B_LkNN3WAj8IT@!!S4g0x!R^^b0S*q zOdvG1AY%miBIk{<>@x?Q{@ ziPaxwejJI=jy`M&Ky>FowD>d`eNHsT(3?ff-1a)1hYq_lCB~CY?5|FiTnXpIf2Q};1(6W0^VCw7 z>4^fO#;kSHDn>Kl>eSFipJl+)YU&7_S->YzU(nF84$tvVcAX~uBTW1iG&zDsK)baW z#sOCf#D3@U(P4K614zvaUk!lk643I8Bz8Yxd@y`7-4T%KiL6P{=)OCbncRWbTA;^? zT(sMnUY+$G0KD4j7HcqEwIW;k427E#QM@&gxdAP=C8C&$alem4_J@&T{ODi=xAcZ* zj4QORT5w7pDm(5h=fHn12tsR*2v>VrF(@x%B^BYXSazVPzOI`At;UktXXMHv@?oh! znRDdXN=K&#YK67JQSqF@O0f(h>$r!x*y=pA-a2=kBP)&5YwA4FqCKNNxH&o7 zsLQh7h#_B%7*XtbBCnbTSPg*d6PWoeSQ(F~0se3e(j%mqFN(iPMgNNh7<8i$Jx=AJ z9huy9i41fy>ph5JYh^cinzhHmjb^}+@3}1rEw?11#j6dc0b2RNM2uYCAqtWv%Y2 zvf;+7Y`8fpYxO#{9d}&qz+dH*yiwqU+ZwGVNv_jWJgI|yF@mN}eT9ueWv5>5pXP}H zmkSJJn){#67s+>HtVsSBMZW~VACk~~X&fT^_`@|okB~fHwEi|71Ai_+p9{^#5jUZU74ZJkNT1PaUVxYQlMEK2L4W_f^?) zud8gi`6_E}o7#atrPXO}xq9m0?x%-mge$xg+~Awxf#6o&i0bE$#BssM{3z1klk85i z)OU{ma(=QalH~GwDuC6xXq%DQDxQ~O81zdE^gWZ$SdoB40HFxD>G!b+>*5Qoiw1!i zK2)QK-shX5%h7DAQIwcZX0HvB$)rgE3l|GzU~;D;D=cSVc5_$1{a4W!7wHb zn2-TX$^<548gqj^VC&57#yfe`C`x7^#iLvlsm;ngvuTmHrlSOC0+|!9P&@DnwLPbB zwo)r>6-vePibm`lUa@XgdM}-;zzLB8Clsk2`JpOX?mZILRo2`OYJ2V{&WSH)5xlF0 z1yWvdZt%j90m|j#z=}iG$eGR!^Mpw4pn`~(LLz0pF;i9dHrq%~i z3=!S^pt9k%DHQeOABf_K9rWRRqrBK{l^wS`Fv}YQuM`;joR(Oz%du?aeHVl1e*SRv z(IFt!69u0opy#<9bUvPeB3hBRCJu!phpdc8i)C>rSR9A^Z)4GHehiv^6@%P4QOKGZ z!PqQmatLBa1|g!KKY}~^!n?o|`eZk#LUeHO)WA-|!`faACwmT_Dh(oadK3nFU_`P% zKFANnn$FQUJtz^SBU6F#8NkF$X->!l#$^Cw(qS5%hC3ruMS6Z~w^)NS$3w5xv{Fe` zIjqmlZyB=lPZyIIl@@CeqY=vz+t}4{Qq)seE4<^~o_7t@+i6|2?z~z^=9GL#wLLdl zWy5`_vR1ED*>OkI4*X?K$=}szHMG`-SrzXjcLe5pA-t;}VuuAH<@HcxeG)0=eG_BM zUmjOUfmX|1$%cYuaYkLdtI1EV6Z^#bimxR2iD{m$qLSmq(4KxMTA#pVDO##a8Yv0( zDqHS!V1d_*PkiN(Tz$iuYkKI?sTekQMx5!Dieho_T96IXEggsFXZ3N*=D% zFHx;QyqgP}`@5rSq&G&T`s0JHg?60;91w+!NML+)ny`-|dq9n=gpDa=i}uT6zy%eXU*-!mIdfwFBQx zWy?)b*>In$Y`BfQGk=Uz^4F=BlR&2T(!nFbg_+HuB5y?Y@&g4=Y16}yJ1@o<(#FS- z{%*LT)vjb(+szoQ<&Gp1Nlb;C5=9c;nPu6SC>E_v5QQ*3ay{H|V|a@6!=oSItLa$Y zJ_;U=0s`Cnpm;O6Me$^L#FW>=C^)y8A6i@1)FPRtEhpg+|Sgqik`Hv~f z64O1{ppW-NBP%uRZE4x21|b1Dq=f5`8Kp;Fq6-RAUD3LU8#?E>qfd?(hBWcPm?r+1 z+#~>R$OR|#Sib-4(9Wb!>`kX2%K=40nJ4NSARW=#tCR)9etSzjq2l%%nu^OCZ9)} znlFtrv{)NoNlgUIAd^hz=0vg8-efVVpTC$iDTL%Dk-%ftJQ}lLt7C9`O$^FcNza$Bj77z=I8-c-!=3NraA#pW?#zqF-OmzG`Eeo)Gm~JP zmI85ND#X!dU=B+cF_M{TL#(eW>{a}nf7sq@gZHby8;#}}rv@sLOTO@oc18B=sLI^= zF~;Ug<0=a`BrrB>b1=mi*~j0M{%*Lb^}b|cGR9~v*0M$dRUl(PTM^F!v6!KOY%&GH ztjDsXz}7_Md>RF}JP#;6HPEfVf*-gjy%gMSNFdX0 zqGklVGv9=K)+at&RHa=Bf+9Xr?_h1m|MJ=}U*M-$69d`tXc&$}q2fRkO7}+M7R^18 zxGB%w=HuQ-ltJNnETwtKe5`FAvN+1~a3pRX zia^Oh>0CGI{q{tnY)2Hz*T+Eh-+0L-Ar>5y&Ok`)Pi_ghEBkxJL#+|eWNs7% zh+_WoI0N~hY6q^jlND=-`n_z z!7~bFH75O?@klgqG8%@%(dOGRxN|^yuIB6IS-K|*w+P(3%yV}nd#r5Fz31t16P@pb zbZ#7r22Mre_JK&;JRkv;0DE&!q==1i;u99B5h``VpkQxf0`k6$hNFhZl#D=N zve^$LpV%CXRR^JTWVgqrZoRssZl%;gFZ;0zdO5aZOiZM(87aQ&`1}NKvuR-VnRCpnkj>mfbqjOq3GAq6KM%9 z$WC#^guynd+;l7<(Cv+649wX0WHe02qEWtI0`$UV5(@+3s(7^8o&@h!-e~6S#sV_}n1Ou3 z(H8!o1qiDFaZEZY$D|=%uSfLQV6@tlBsTjd*65w&24_3PmOyrUzXY(m2cvLsaTvav8Ho8a06in#$J`*_2~j)%9W7R|HVkelX8PC25(^f4(+6z#WZk`ArIi zE$OGfT34g*hs0-%Rud`k0!b?-Y9=LTidg#;0@j=;P&rxA=ITJaFMDJLFDt|_gOD-e z%6K^WYcaPVi~*5+!J1&JZOYG8j7&v>k1On4R8YD)i4IC9aB5z3cXvf_kS~G)eW+3INAIR38nzIXiygalxyFT1tzK~Un_*;Njejo~$ zw?;4~TsA9+0nBt%GR@~VgrjcRbOc1K~>YyOCf)5DSDiM^my3UF}d z;o+mf;2vH$yDpr8t8=jj7R(4_pfnzhg7IiHuI`A$q#-`|YI*=fI=30*B?QD%(WW)k0RUYP)A4=px#j$x*lSny#0ltIXta$Guoc{v&0E*f;}*bH;t z8;YghOb~Z%dIuLz%r#Z~@~xrb>O#YjUGE!*^e=`=r3T0GGoF2}zCxjRftvCw{?Z{Q z`xOc&g|!{Ouvvy1fyQuauLQ#13Pej&D+fAso4`g)NsLC!#@NvOIs(!6?*}0$RLfYd zZJ0N{Z4-&({S$C;ND_8*kHwU%AoywYPzpSzyyC;ofzvVf&b=oR6$hi3J3!~QH1`B{ zoQM{`e?LfcQ1bBd(E6#Qn!~ye0wBvc2|^v(wnM4r*<6ajb=3CUMG}gsj?pZ+RL_a8 zub!%;>`|*7$yNIG1Q9p99zoh^s{yR{?jHi@3d1nw2X>V54!-{8uYEj+MR*QYxhsAnlj) zmjaQxzmDkb{jWwg+?jC$eCT4Dh(&%62pIs(QMF}I!=i073lb134@F^2KW|vsaOf22 z&A`V*YjVzCm4s{Ntdpr4or?FHheGYBL3Wxeu5689Y)j{nT>^G)i_ajxr}0RXxcl2s zqgJb-&4%(Eq$Q`!Pn5w&&bwBldFGV_H-(xfQ)R6Pa@V^#b9}z7GuM%K)266wxntqo z{Lp$|GU zW62^IZhX&Pu^GLaHVk%L@gfv28JWFP*88I`{JTVKIUK+eItUZ9W41_ZH#L^{Iw^6zTrkjgIR4m8OKYn5G z@F2fk)yme+kwwyfB@mx+au$dc^T^rXzc|!rI1(kwLBykg@wfVtk>Pq|d2@+dfB*m> z07*naRC(aTreWCJITkX;K#EO#eh|?Hr3a&BM_y*c(0`S{zs$S{3m8 z*Z0~VCEnN-S!s@($5~mkZ8e@1c#c5$th-*TXyn8xd|h?1b}H@%Cyqx>um={liNKDY z@rGBD{VH9YolK3a9bjkYDB3$J!8-}?cJ)AHU?6gmTnG1<%x`R7eqzq5#p~yw7&~t1Ed)p z;DWFKJ)$G^$jx@efF7PK(_{D*AhcxZvVBpNNii<4wdddbXFat-LqUj{1+#+O8>xBW zLu)4vX#s9n+d0~RDOtu%-C{*IwMx``xTAZQrsA|oJ;X0(56AjtQ^g~@-^Z0RpTkH1 zs$4-n835{7u?`T|00#2URsgq`%4V_3WZpBIi>la)0kL8^%6^)U{DL$%**junk~jAD zjDvwp@uY0YVoc1ka9uKhsZH>5f)|oAHtHW?=T{vUT8?uP~V@x$B{BNJt{JdCkAj*)L-op zc(b~HRudpKZ&$G*o%7Ce%>LkI#3o09*Ju!+QKLb4>PfM>$}VsE&ur&Gl&;UE`f3NeQawv zWgss6VoX)!tX6Y>P2@~Kw6n8gw;S8=JA1eD{L_K>CxczgpydTl!VQ%mAl}y%=gln0 z^te%JbQDRGi*@DEuU~Oh1o|L$`J=!nT7ZZcQf6ZI`0ZuPbhAK*`KD{kKwZxm^vKS4 zv3JWm479cVXk>pCrq$y1b#IAkH3z+3=Vi`A|M{h2M8n?R-fXQzV;g=CWkUW}fkb7BP;=fDf<2J8$*BPYU^?L5K&iV>LiBKXOG? zP*i$(9yYF+jMpc2LDx>r(WOggf!9HPPesn z{Of?|>+AbKApWm_Q3m3*osnWpgdUt)5N%bQIImR%MW3RfW(H$i1_Cu|OrF?-U2GYM ze-;yp7E|^|QMME?5%Xm@Egh^O3 ze>D62RZLnFlm@pa3maW3Yi{R3doR2Yz$D;q|7?HG5DnFxY z9gd^&c>%k6#4)khGIPQ5wv)2ZIm``t`DrXrkR#(ilJyK`Ka_$D#(Kt8xP0nUES@(S zBZjs@rw%R9r%!Lpe18`9>^*?e(z5%y>z3WPjx(oD;?A8rxOnL@x^^zYonO9TZ2Ca+ zY+7w-U7U^v4Q*!=Cd^A;{}TD8F3C4m*4%eRIc_+*BFsS5D`d+4R~V6`9+H5Lt_Xv> zs|Fk|K&#Q;n~|{;#ki%WEHr!k+I!q1S1^3j*7IcW=B|zmWiS@)axOVPytX?!86Gpd3=MMSk*`qt&neiWN-L@0gZ>hBHDF>L;taO@!fCH;D`Y)jd%;6{pVfw+F2ieis@6kv-hfE+*%}@H(%>X zruhVbx+<0W&(#v8_8KhV|12Hd-82&$+wy3V;%cDG1_{W2Mw;)>1R|vc35aBtIYD6M zW%rq80^)>Btm+U2wN{HC56ogRNtMX_E1A!9(<0CyxrJq9)&sYf;N-rUnDhQX4C-5i zj_r#vY}g2V`PBlPIB^=4mC~k|@(@K4*MGW%?WI~)VtWs#T!ZUikM&aqM?L?K??F!r}qau)*TGo)0iW=5- zzE}4rGa?IC%tZuBCpEULo<@Gu1B(bA$cA^wr2a zH*CSRYd7v=y}RY*ICu0gzW@AFygYOWV%v3rve$6D`0hfywBZ68{|MOs3^-f>>`wxA zM~$#MY5;MX)e!@NT6M&gGpAuNiRjv;BTnuApjKa({ZHZ=aogHA;ppgW^73@^GK<=E z|GZtMw8FD4dX2)%Lz{2sz_U{O+xw$TRN~JTHvPuz#gja%%Fd2Np=F*s932JNsW{AU z9l;hS$?{DV5XWWU>MN;GJ1X(@+)=+ea;{>W+e>lz)LeY|$xys9s3khIYk`3S2Qhi& z@R8#vFR!T1dH_nV{er!l*5iXWr=fM%?(k{f6OBi_iF#jbM#Fu#CDywPIGh3Oj++?p z?2egWcU*++33^PF9=iY|6U zN}cehl!H}m`l!(`CiL~z`Z_xC#@I+bu5OPonn5T&2_Ssj?`^Kq#@BBLvgHT1Dh@N6 zh1>_ks)b0S)8Wsn@W#~M)kN)wfzW(maq7TFNKZ?|q{&mUa@9Kg^wSk)Vl9WU@-8l( zJdWk_zQmXj!;#jZE7aYG;-%N;;>Fdc(dZOle+6*3XlA`5l@ibhgakUvSp`HR9DV{` z{9q}@4ts^Y&ziLxF{odW6tL9L6HR6<@#dv@OiQ%0SGI4^(Dskl63t2NI^+{Zhq=7K zal&yIy@u-g45ni-DA^rd1;Rfac)tRerF$dHGyK0y`E{0hsB|P|Opb9ueLFRVruyAi zl7CN2%tW$>fZly6&3FGrtj#Z!&G#>7KS%p^g{Z8QqTI^LyH)baq3v7n>3cKKrFUQW zx9$w({*UD>n3b20uBVevw%GT>(Cw8A2Tu*bT|*#{|ML}GfGnipCu5Fi|jQG zcKm|WR_#!6>n3iL+(MVmtxtv6vqe&GePUq}FyK`0-O8QE*N zPW`ZFgS4C1@Zlq|cJYM!vMgpPNhB??xJ4>e;mlGf{#CUT*&hkSXNV2GJ++Ah!Zyv_ zO{Sx<;>}$_V%ec4V)^k-W*~(Bpj9zDX$6BHMNOK0%(tWWg+ZT?TyQQk|AXh!gsjJx7Dw8Z$ zj$-|CaH4;r$(`qrk`e__HFN2bT7hWk7oI-&F+O^?KSsXX2BE=TnDW|G2831LEyPRN zMX0~06gKC~tVaw-;9S;c9H_vWnkahj9Q+jRpYUimq(Fvu8S^z($;KNBiu(IWFpijIc z;fzYF0^!O235Ec7J!~9RhKNvqvE;%$rX`vl07Ub}ME_p-7(Q}5TD5M6=bn2WEn2jI z!DPaXpDrP;OK&tfYJ$TFv09*U-#iJ}o&@YW48fRTTAaHSiaUtMT_mCcaoD@ZA4NrO zuzF(w17j64TAYJS`Ah51qE)vZfM~+$AJ3s%=Rz1uqY{}2|G8JAe9{Af$u zVZgCuv#x*0l+N7)m8ZMm`rdrF`)KiUlD|l0V9Xp($`beYiofgQs)K`?-|C_fy6g2i zoIg6pM3pKm7^ww_k}$jhGp6;xlBFx~!w=hGZEX!NFE1QDdX#;){rmJmy)U=0;KLGx zRg6ZgNIu~upi%!fFnux)AOmGc#SK%EG{q#`MLO;v5p7$!puwlxtH8+4LyUT)k_9YQ z^R~m=KM-esJk8#}ckiCqzim28AzEspvZ(#}$HQP_>v%0AEvliDlj`wniB&zEHCjcd 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 AssI20 literal 0 HcmV?d00001 diff --git a/mobile/android/app/src/main/res/drawable-hdpi/ic_people_widget.png b/mobile/android/app/src/main/res/drawable-hdpi/ic_people_widget.png new file mode 100644 index 0000000000000000000000000000000000000000..644b41602636eefb2ebc739f10e7dfc1dc042016 GIT binary patch literal 31538 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%0DBhkbK(Ycw z`wlzO(CYJ8jN3mzfVJt;8a%TtAH#Qc#ffW2#JOHu+sK)#1LeFABhYGVWJS`%AZQfQ z!AdRH^8f3209h`rRx9LR-c%lH<{hGA&bIEhjhPd3Yv|d{D?lf=U6hI;Keemqex#+b zaBDIFCCpv>9jUSvAYlS6LZ3@^q$7W8H0FH&f&k~9;Vw+F2?p7Ki?`00$B}aGns7OPeWWok!y6v;RXOgploU~+aU1*p^XBE{C89#1p`mu$wr#Wf#~y5L z7>_1O+oq&hjTIw;lKs%@n*#Lxp};7+VYEKPQD>QaaHtx)= zk)mB-k}n3HY%4$WeU7o+rWRJ9p&U6%PiNVKb-WQ-${f&6c4V9T7ARugBN zn3!m{Z{NPkxM}Owt*yXl92^`vmXwsN%+JsNk}=kRPX6skkFc*A$;Qdfoq0Mcowa)Y z>oeQ)(C=I;W4p~Q(0=Cwt$Gwtj{-~Vx1}I&Z6vZj48rtp#^9S@cHzM9Ut!_#X=wdf zH1aoxq1EO{nKtp*=Uqz?fXw{zJ9*K%moDn*$o~%xYEq&^?J5@_ij3D#28D7i;J5wV8DRAZ@lrw z{V%@w0{8FV$ETluN(i=~o8sc){$5aA42pH!t{HP>uJt{~r4Eh4s9Pl!WY&ter#wAa z+fz~Wc`^zrccA_-m-rT?lX{U`ZAEuy=Aj|0K*U5+OExrv z@bB8<;^Rac>GgWs?CfkZbE2W`?d@6b-o33_5d^~mP)L+)ETZc1e&Y;3* z6cz=50YKT=vu6<(7dIgS$pRMw4oQ<+ht=*47prrq`|Khu)hLH zu*GdD=&&md9d@S(kXo(^McTq(BuxrL(&!MRjEX?k_&BthnT&Re(onKIQ!vl2TXWFu ziyU;@or7+BTgu(`wM3V_+337G6CHPCpu=ZrDEv4D1#c%JZE_T%y9dE1(yKzFl9p<{ zcymcZ42(appZ~x{+Co|s79M6dW5$e1EsBbYvI68(yLRo|w6wHWMvfeLWa-kSrf~WxOgu5o-IJn6S?SmIEx}7DETT4?RTZ3c&GXIinb-oMca~1McY$o_+TpDkz#7U zGsW0pcdDV&{`872$1}@2?N2WcYvT{4v-%bH1`5(NA}D_wpz!c;(GEU7KDLF0g``EI z12{N1uql(L(4jqJEG!@(U}V>>T{q8}Gw1r2En9H$;zcV!RxL7^ZrwJW+;>2J=iPVF zdBXFu_qbs)>(fDA@a7vb-LzoAf;+_T=%FDYAy41Ys3#F%^;xs#{;}S72Ayt)!57+9 zl8gsHSwORBQ_1c$bo@3Qg`XuOYkmw`j0#8U=tva4m4@DXT4C_{LJaz`E&80!N0$Rx zLi@;67H(-F7-!MeWE52yY+Iiz2H>Bkh#^D!FH%vmC(YPtU%H{=*Xf4BjmgNG8-s|F zK#GoB)F`D$ii&V9+3Ivp&LFFT8y+5Rw`$d@N-fID%Cc&a!ok6zI4>{n?Q!GAomsJB z1&$m!g4=iRSOGFxKr;S%_Po4#-8y;9%;|FMsKIihu>-;8j{{r%D%h?SU>n~;$&2F% zFyo%Rd!bY+OGt~8lauW{JUpHnFjik^SkwAm0lJ_19&CkSKNp)ieU%{w#+BM-1!_+k zI)0so{14)hG%5@&21lUHf)w=LQ-C3t3Nhe9Yji){5+%FRU>&y+P?Zr78oNCJMjX@g zOTJ7)r@d+D{B63Bj=R(3!VSsDSrmt)QQ-(L41iCBzFh60+2vkeIiNXnZ>Vg$wTzS@`A3FIIqLiMI>4y6CH0H2aiXBBr)GWe`{@{Uqr}kTV6JR#=v2|L zR-keg$04py2#B0?TAhV~r`uw{53SMdK(=UnVwR+JMO&+cs|b|sspzmXRcNLam@fO$ zQMxxxT+d&fh~(E|5I!ahzNG=OKGhpMP;25UX`iQq>UFm|iViNeo@!!wiyZF2K+?e^~7YiBWgHUR+vo!hl*_u=HplYji=lTUE+ z)G3r#R8%u_s4$p*Jbps{_`}s0^wK0bbkrcZ&V<2W3tt5LFzJ1SLy?XT_vT*z7EApOg+vOPx=F8b*hRe>Q2gq#J7_jAY zz_u<0`*J00cdmdP9dCRWO}8#W{jH0^)~!I{cM~z^Qa`Zu%V77}JFwZl3~b2^dEA_r zg&$k7awXZ^2zr6o*x0A1_tXO&mwk20-81 z7hWme@Q>6ZCd3N`VZIm;7l=98;aFD^hhzPdas9arU~)@fdahYs&NuGvlLVzkIu;k; zRVO9b+m>@N_F|eE6P;B-vu^J0?!q6*A>(@`5YtW#9OH546v>rWrd=wKCv%}TZ z^+KF!)K(N(oF!I!J3_m>rZ0%~W%}Y>s>pNf@-$skEBV?FhIDYaZ zf`fxcBqk;@8Y)CbM?W=YG32;KJ-7^4S8%Z|;}aB>w}hlz93d{6 zt_DMNVT?sPJ3AKz2M0e}P*AWaJUo1JKtRB8cX#(|{rmS9sx)ujJUBZ$L9JF}=NDgy zp5Noy;b0R7f_=PD_#L4|JC?(Ci^a5AK&q6_mcZt-cfmF+fyb_e*mSQe*v?g$eq|`y zeD?wxZhaGLua+Y8t65+>R-^gYfw*w=xWQmDp=ZyY8!YtR=5Lurowt@XWzIIVXvW=D z{b_Wl7K1za8s?4*#`?D+@b&UY99$iRqwAt^YGVw}uZzRwj}!3w$BDT4Q48E%lZ^7! zDKM-~1wKv#)@MABbs4}X>EgU`O)APiOvSyGDY&;R1^3=hMcF%PC|i_{@_89B%*cd1 zC0jO*&6e>(p5c?ycsMK7>j<#Ca9 zHVu3B?7=h7JcGi*LgANwynNXh92{(PaA+#ibs`mSy|)x>@l@D-B!a|rDiOw$i7=ciKR5`do)h1@?Ik3YVT!;NEcxPHvCKN=^_UAM@Mqj9)>JRUcX#fkfI zIT5&&2%JvDov#yd_wyFAX=R#xeOfx={Jm~7M-LCySS*=)=#L{1_wL5YEmnXw#;R(7N;AA4Rk0 z2b#^F6)XYFyW+FmmL)=}Y1@uvuz6`L3P&en@$wjK*b;>WOJb2cEF0|A>0sMdgROrH zcDq-B%^i<^g9p*?n?B#R4UUeE1+K2HjN*`wGV4#a$i_w)nw{!}TZiLu>rlLW<3K!a z9u&uqm5O5t_MQ#N+<=3BcJT;G9KHCyDF# zk0#*6<`_&K9)wYS1F+$(2$Y{l!0n^)^37v$vV1bp*ssJNtd^n!W1jS$4^6w!ADfq# zXHPyWEG%s7k3as1^XJc3xVX5;4I4I;0|Elf&VI!TL_|aga4ufFgjVTZ&~hcby?t@% z@@3$@0SRMBfwsH33hu|fh}8r-bHa(P?{|NcDuadw_mRyBO_zZfB^&8(4j-^e0_bN z94u-8y^a>yC|Irfs&SKs2LeAN8Ezbmmv0}A2g#l95~>NEBd|#87EcRBt1NHP=p%Xs zAT7}gJ3oko;Y0%N98M4bo!=RY`7Z@ya9=-+9^#LW-V77k^!sGnG9n0V zb9}IPYAB2+67k2rco`RyD&|cLMuR5m+4O#XKHRP0 zw~&Q$Ln3lVW{CUJJ7fTplCY&uG(O+?r3f;P8a3)W#+YD2rR2V+q| zH0I<)qFuN@ax%T}-n>u(hB}D&ZuzkUoZB8Ne&gn$cp0Y?jho+zfJTxw`}uN)`zfM> zDb%zWmD{K^k{xsKV62uSV~w0x^ZK=eC~QPqZf>sZ=H>=3FE9M?!w5>5N=bwMX zwOhb@FGXWQ4-eF;?~IWnhM8x_*RO}|v{7I?mzyd3+QrB!PQ%q95x|TTU`8qo&&6U+ zmpHg(r(@$@0xTPU7}9Xvl!lu~7jpG}n$Wl<8{*-Ulz?l`Cjj$vaC&g4{Q4`igvKvf zvZR6n$Am$2bo7(^F|%Kw5Q#_A@DSa#%e&)Hb~M3s`> zySTW3bB=xc_Q7BmJZCy1ZJn>{LolT=@Euy8=`Rs>8L=)1K><)C`SgSObx@K zJ~6;6Sujq|fZ@e>%pY1R%YfngBj3Tt$EP2~GSkx1?4JfOTk;Q#DWVH=ePjz5e+pJr zQ(4n&lBp~|nt*dVVv!W;g>@wfI6WW@=Le?Y$06ysI5-{0`=#Po|5Wsj3dZ#3f`r*5 zUs?0HWk(ZCq_N>4y6cR&HKyq%7p2CQSfhi7%A>A}^6e-;y>U!dD3+BbU|=lAOOq!F z);Dp&1aj<9sZ`jsX_L^Pl#~=~-SU|@UO2TQu7BDPY4IHHo*EoDWL_}TVdC>(o8CtA z;l1%)p9o-X7AmHu0n^ik$kWnbpwDwMfhpoF^rfE-<@fHQW5zQshn`>(X? z@n9wh(n6YYa9uRUj|{-D9swB9H4q~@2V!KGKs?(c0M88$z>0-o)jC1VPI2%11o`T> z@kox>-(^gpVzsGbHDa}#6@9&Q{MP)ok-(H3;FVStc(ttolT!_Ejvp*c&O2|vEjv3q zgUsRwAABIdC@d_*2OpSc!RJpO1jA?bFn2gdt$I$FKYy+`zhKEbVBLzbrbiqwC!-Q9 z0?I1%**G-~@{Ba#l}!9TIvMjy!ZBw-1g@A;@zJIjyjKzl%+7$(a=(f8bF#3fZP#6L0U!wW!n1m>4Vv`Up5b(XHUfSwRLcMxeCrMt|%!f z5$C_$cL-zB{Vk1c0m=ecRp6>=+smXq893B00i!zyqi=QqFf&6ugRWP8=jAN?J}N?< z|H5c`M|s2g^{7*)PI}$Cby<9TJVkT<94uNi;_b!lnT?XwX{eg?^4MSktm4MOzYkVb zvqt8To@E^x+_ngPww`|!Sa&R+?-F49;*r_H>vl62^|T;w-HkVjqDiYNFf-p&8XEvr zSARKfTBIB~F#_RJLXp%x0fxH<96xy+-rnADaB#qc2@?buRS^-mAz*GaEs#5hlX^+sPxf#MtZtfk6DXl|sbY!C0 zbk0Z@zzH8XEg1{@7Ra|MP;vRvMIY{x2-W>!51Y*tp?Sac#~E&*93m;X)%G2iT*4Gn>hD0n(N6$(U0Zh6U{-aC36HATF4l z1STi*UFNH%SQ*( zSSU|^F((X7+*L>l^g>LOH-h85<&ao!L?rr|RNkIgxl#;-<<6Zuqe+t{Xx+NC0OFf( zz9D8Nj(2_eH8#$41@<}vU%8^Rr7L3M)5Wz@7k|d$t_i@)W_I^D|0P=h5)5!=rWqtM zfzw*x_t6pfvR4Q`?vsRBgF9pDtU35%&)4|rk6TqIMUC`Mk|cGZXa~(g(@evk0wz+4 z?3AoQ6V$}CH z?D;JD+@Mt48kJ#OQXB_c`}$umdVS&VmS}?9xN&17CsXJM6tY4=L4i0vbmR;^oT38u zGzY$R!I~-VaP`pQ)QMxFCFc(5g8LKW1Q2F$s%w!vJwupG%*_U7rQ-gC7#trIg0r7EFE~Yd`%IN6-BzCfTZPCZiFSn5Ti};|dE4-&wI@1uZzWrR4*U^%K?CQ|AT3mC3H$oD0A}Xny$&&G z;HE^UxByw6m`xxWJ}ixcvx@Ir^Tj?k;@J^vsUdcJvBTi%?g~GDU);QXQ#4*)el98u zcSWyXGC36ZzA5mnD{#^k&z3r%xU`qJ@8Hp6*wQZ+cs*N;wJ+gbj{XDREs5|=RxB05T;C- zhs6t*;@#Jm;Eh)nVg8JHm^1Yi%$+t5^JdJ)ycw_lrMxm@zPxbGBIENT#zE<*S<{3$ zx;17F51T@NU(T92X>6%1LsLif2i=POh#lU)bto3M4=2iZz9S9$=YTSs*ErlhOwW(8 zNUY^tTot-s{hpf#VuyX|9yNyLjS(JLvC%%Z%wINC5WBe$3`TmS$Y zt4TybR0OQK=cvJ%f%P>?>1;rzH~czijDa0>i0vJM*xtbiDAB^VSc9k@0pi%Ny#`^= z1i`;s7y`P5!mn#6LVJcHu75E6OF4o%bAf-QFJuZJ4E&SH4 z@6zPkhob&ArLP&OFgHF$-xG1?NGk3g&Bonh1-N&j9qyfMk9#LOq3l#=l%48gkI#1^EmRumbEmqVOzEV4 zlX9y|_h;PivOf!@`!eN@-=u@2^ZqQcMzRwvrQ4q+q?8s4?N1XKq+KYBbf0;>CEX{k zTNV^`{yH7coXkRe{}AL(Nx*n?!RYH9G3HjMe^ul$w@PJt)>yf;y!HHKC|%VbRs&3{ z<VshdDG7Iv<>B7R z5|o{O24!dZp!{qy2~V&#@0-m+<8OJGt<*)%cR5bLjp zr&IDO-u6RB1$^^JcR`RvRIbu1!ef6>!utG|D_m%&$Ywg9}52o zkq4b^Cy%_=!O(V53Y0FYRn^D_1$%AkC|MIn_2}FTUz8sSskr~^GOH6r*~N*teK15c z_|t2Z8K`^5+oJ4D&nk^iK=l=%J++)QgIsa0x7;!_5PNzi$(WvJ9N#jGrcS=ra=wG6 zP`H*u?WsZPq)3_8PztcBtzNFN)ci5WkIZ@7orZ#C2?%W&AXYUG{jmr`E*1(Ida3Ad zi{%+I$?#u`jg;-`Wb59lnmMEzP}!+o4PD*&#SiEE1DCs*h+-08h8w$Z`*8H%G=Z_W zdo&AWr+Zkm-7tkYc;-83EG81jQG91krGiPNjj!-S3g)CM%q=ck&1{$ zX-a}OZXO6X7;kJ7V9CZixO<`qw+}@KbNHmxyArHp`4&y;_YgSN ze)9RRxxgv?m;P{x{wsUa_|L~9mnyD$&t z(O5Y)vST2DQz25OC=F_N8Zu@@Beb}!{^Fx}p zGgT}<4=V^jzawoh?577nkqrB(7=`boA!SGux^2x701;4Du)1x@5!dLRVLumF*S?E| z^01$a<-Uhn!za}1hO?c!JFO430%p^wshX)&l8Yqq8(*yqhkUj`Hrzcco63L0ouj#e zNXe?<@iG2i| zTO9@SY^>}{z;xK1W+1=_fc*CpAZa8hUDQyyszIcL(ws=*2Zuu8pn|fwnkx8+oB#r- z(&t$cKw2(}MPl#p2Vh(@6NZu3+Jo{D6izC5HdDeYK!-jDS_x2xUM@o4!>x&`!^1%- z?kQfHCN#}rQiXPnx>;h#ot_Afri#T)m^0IQYwfC;!zRttd5N)lTt5(Jx_c;uA{sIg z1v6NW8$&&q->L-50$ACpQlVYd!Rq^u%iU9bfGYzHYu{=OPlfv9+I3x7|8BA7HTGPx zbE~Uho=uePh{?6znQ9UhdG?yMOQVvY^U(^xNTbLE5-?$H0|Zgg>ba2CYm!8sK&43} z|Fth2Nu$HidS0?HZC3wf@jW8nKRgeIo@*H#PMBIsq6ZHIBMj zV)khl3+17giUi>Z$?%7hje9g@!ipt_<|J-OOjOoytRCB=gC9&M<16m}zE(EgJ}kyY zW`_58Qb7?ATDnH-HE2+6Hia!KeHM|3e-~I~WB z2ZAf9e9dtcO}F4&BKEJ1#>p))A}D+7P@EX#TD9w+@>%770-E7`Kl$o+JrNo1bAz!) zO)P$lmT=p8G*&W2GgY8hkj_xJ$y}!5A;4U!0~TKN05Gk$7Hz6%m;h^6D%yUUgcd_0 zEM%dIcKuq6u3K`5*@5dg4R{gPIaFvD-Am)Nz!ts&C^E_3!Fu#RTImDjAr}hekyqOr z<4Qx}T+5>qX%}S@SqiVX+c0}~=Ix_#YtTgf_1y76z{PZ9`Hh3J>HZbmJyDF?hoUOk zVNDZA>ju}n7A_Wx(vCYN&D2!@v+-!C zWS&h`ZaN?BUDA~HUpyMH#3u!e*x}wZWW5@Lf;mZo9a_yHnKYvJc{3Bu=FnR!_W3U- zVdNhj1Ss9N=Zdi*37N&1l8^_a!wk6TnVos`-3xB@JR3BnVxW~3fb88_qh`thp+UMb zA1@u|O$;&NTpVs3Ov0V-GjRKmdF)k9s}97Y;&_5sS3iApFipD%b69>f5fpQzC`L63 z{~rMC{<*&Lom0J0kR5WLF-Kpj5J6y(S)@cik4DM{T*rUQTM|!<&qT!HPc^KnN%Vf$ zBvSr$>t#vk{cS-th9?-{FU5#04HcRtfZ-gJszt1kz%7{D;sKb>D&$T}G>_rVKOh_F zqhsLKz;hC%dr>t9t=`ced)zC-ao8X*6>HLJV^V0TaVL7Uvr3Nv7p8pa%%JC%W; za<#{^UyUUeXa;O{jPNg3AC@@c0qGEcc~tRXHAn|#q4xYf55s?HUu{rK8bs!ed={BI z>JR}5zQU)`Jp^ui*D$Eu)Z%x^Y|_AZ#BYKj%EK-f$pcQbg@259nUk%%jwNi&4aWgS}cneeu_*Wt$8PTcV;LulfCfCqHqCTHHJuY zRe~K>A0+=L0K0vnH*zw9%NcXjSJg1Ke8q6$4J2NkmocB0&1=ZzX`B&Oo$1sZT^Dp&&{ho*yU(2XzSF za4$2MKNblMqk%F7dOe$~RuPrg`|E5e<*RZF^4FQJZp}3r_7vc!4LP!(j}D){5f1#+ z!n}5nK>8sG@~K4Z_#jdwC3I}nA|-i}x1PowSRzFKb?m0FoLt zrblpf?b?=t(mk2g!Kz^rvtNjZR>u(#?}KM{{|QiMJNI-!HY6%3UuE-DYQEXrnE) zweA#^GorALXA{+%34=pXdLY9<^uB{7vXS?0JPJ1_SB9XhLEYA?laTjLyzpt(L35=! zJd%fDm#ar7s>T8dpuUG%VbGa&m6YFloj@bAN2ZgGtuaSphMm@Ckr_QuIfJ6FQG2Rx zV?|MJia!i{3k>&m<;&RD8XM=O$V#Pz_-H+{lD*Kg#7{6mk%@ASh=tiiK1}l|x>21W z{wI9cT^cz5GSIMLX3jolX>c>md1Yi#^SN zrT*I^8|78BtL#i4Vuvz*A5<}Qj5RdnC_+=#f{_xJ>|JXKrZ^(9B#tpjG=^JyvKv7UQnrzZ9Fu_jv{Aes`(u;b<9qJ-ilCrJ@|L z@itAHt2PfQ4FkSuRe{58`j31K3lITAJsybk4|8c;|&-N9Pn;8sd>l{TX z!sg7;N@8UWPc>E+24(t^=2X_q`m@r356yjjnTA%Y6VY;NJcic@*8YvTu1c`Tw~fA2 za-YbFdt=39Dz(A6WT*FiL=_)}Qe*4rtYW}M*2GcyQTv=g81@vHK6^FA*s7%$9`?}NY`Gct=F4=fCQ89^gM@b`H zr7Ai!FGdl0%gpm%&OXz<#2{OY4M+C)crl(LcK3H@l7*ZX5q){gy^iI1GZKmF9}a67 zSlg|k;?de=AsqrV^Z!k0!0I0)NOrSxEiA*@}1q3h-xc}!VHdE_4*3`E2Kj?mzE)XkC#A|5o~rSec8 zmo$>6M-wH}C^WVje22!{1kXIVQ{-t+TyN#uJG~Yv!XB zw8!N)Q_Ru41mK?stgOoX7XfvfW}B}Mxj%hu8k#zKu4Sw)b9GbN`1?J)LRRa`i6`2) zFi)m*QIDV~Lv*(wq)d#Yr2}SpF%oH$BatyP8ksLgo6@I8A?+oz&@l}Oe8Ti-w>T9Y zmS@O?Z>6H$TdA<_pGGL!k<>SW=DNz=8!KM*kM*hN(L}+N&MG^VyXMb}bJ9gxJR0Du zWlfz_cFfM5)oG+?tWas*baB&Q+#rz~RzZM}FMAwl*3V_9yFVC*{Tsl#d%BM-nBnyy z_m{kqOH(Qryu7rI4V!ofQ=)l9VN0r?=oPAC&6t}FMekKEYA=t*$`=%ls+CG7^+!r4 z^%`Y!^$Mkv`hB&#=2sejsa!SRD4o^ss+`r!mCovADi`$!l1BPa<)*$*VJC%?YQ3kU z>ODns)pA91)v_lRN7ZuoMv8^bcJ95MYk8nY*XP zj@gPBBjt!CxVUMK3eZj`R+vsEnkbfN@oUwVy_u(0{<%m;&E*7lPg~Y-TJ3>bdW9QjKDPoLH%w0$`s`g{=$y$sG zuf?_e3Pm@(f^<4+NNago&!$R>>*+;&P{)6w=Q`J>@4AYAy6{&*WP-$cOw_$Ob7LB% zhUmL()tbdm44U<3%EVVFC3|-d4J*#~uG7R({ZUb#500#l7I|U>oT%4v@Bw&cz-Vfv zL$!&^zXOhCKrF^sL@ekte(X;KLq5H$i|Lt?C^T!X*v2_`Be0q~EA5TG8D*}*vaXTSeUf)v1d$0&sasHu3B{8j@*V1}( zyT^&nM{CFRyq4ZaFRHZBrt{X-lDJgM`fs=_d(rN+e%^BKiT;*qpwY4c0?na0)jV>c zOw2xBdj8vp-T~PEaWqX@$}~o!CDSyhzIB)?2E^dj_ib?Zbbs7E)mt<;X~w6~aZ`3#GYsZo{T(8_E@H z(oF48tG?+zG(jegHffO6WF9)8%t~JG&Ju#i8O`y?8aB)#mwu*_&l0q$A_0?;g zeRSHVuJ22AbzNLsY^ip~f{MggHSI4qYrR3s7wm~9Yqi`~sgmqjZ7LwFV4;CJ=FnXIrbfY`R7nQ!07=fy z^1^^;d@*Z$Bv!nZkInD5!``*+@!jT*IKHhEr@!coGhcKO`=i@R<$W7Uu>0fo*uJVr zUiWruESZyo>CdHN@H25J$O=Jtus2jnjR48RLk+b?f`>+un|Z2bKfTrv?XQQ2O4Hk2 zC0NxH|Az%jL)tcJ(u6rVIRys<1Yq2_aiXHY?Af#Bn3x#2ySu-j*X#2+=Y^6ab(AFO zngu8mfhMBylJvSHNi8|&#gZfy(!Ex(d@j=IbOj29;wwrPeD~dV@%Gzqqqw*j3WefJ zy zn%`aARj_aBA=@?aK<%a;sO#W~hE59cJtu`4E-DQa8VNz(IuytFV{Yq6+;;rIn zN_v>X8o4pO_JL`#{+mXNSrK*Yt+UV8p0C&I?d#XCPk_zt-n~0jpD8aWD3IsOnIlh} zI8js?umDskk|Y_bd^U=`WS-Nid9PKJN+n`rWAWa5?-_db>?!x}-=AtP8ls}2M4b@J zeFlr>$`&ny#HB$(%V@pLp8#f41*C?OBqedqhjPx};GA!iBxxV#{1oT>oL5AfcpCQhYk_s$;ze@Zg0@kZ)ha^Byf%@hlwfZvQn|-d zEgc?^8jMf7#ha$&hhtEBF#4nfp-*xUhNJ~!Qf@eww2#4;y_0ZdR5~yzhw{K=%*;3T zO%8%hb47;+u4eyb1*4{Us`{DC9QhL;A0Io~ySTW#Ibgs5EL^y-!pFylstK5=?4CxW zxh6@{2G04%k|dq9fFd-D8rGr-cR1&C&pN9}l4RYl*J`zE-96lQQKI1c@4qi+W@b{^ zBymjD<2*b(c51cSn-+k?Gdbt?Ezcff!Q`=kSxc`rmn3PPBuT$mzE~-iURLFpQ+9|< zYuPVQ%IXU(ftRRqXdW;lpR)RamkS6`^L|D?C|~Q%qGrUp~8gGtNzF3$OKNs<b57=rI$V$> zNs`6HG}Y;JwaIr7Q*?52qLSum@$vC^{q@)7<;#~-?>FY;@|@aMt5F#r zt*Tv;Bz$8*^Nu2Z3Yf%*Ak5QQ+m{kxVosfQ#<`I01UwmhHOf`01?=RAu#1m`@2a~{Y!50E6ui*qhSk|bYm zZ*LccLeW{P)!xs^$uVYUXVZJ%@KktaPnIgb~KC0(Nk@7^i&&2oD^z8T)R2vdpPH$Jj*%f^Ev0wN|KaZ z6)-E|pnU^Lk~&F}L}QZ6k9%SBv1GJ@spH(B*H((rA||U?8rf)h;mQtR=>+CynC}$; z))bwVLu+ja3uB|+$~nJ8*&U=cob%0`^VOX5_a#Yshgg`!>@4P-FX5c8;+(JNoPRD! z(wCg`ZzM_jPOH_P(CKuiv|8;s^3k00^HqeN{|l{uA(15MXKHAR+xWSvSg!w4Wl!z* z6X*O#olbXNr_+&!pOYl%2hKV9Mw0I&N&1R&zMXTvm7CL~Hb|1RT9Tx>pABxob!5?f|ga;Zne)fuRZR%x3{;wmzNh!e%7-*m-a-!8gtGY z*W6pAkyRu~s(DP$s7ue$>-DuP&$qRX@&4@n9%~Y-j!&%Su?j7I)C1|d6X)EYbDkkd zQfJQjNJ)}raL(W4oPWYO|AKRVkaK=qlB6>vbj&$FAaQAz<({{>Bpmm63lK$|^Aw9O z@Zeg}SsvTK{1MLH5^^G`r1&+Ct=B96X@xwC6sfH zh#+##n4D~K&Pga|385@<4k8<4Fvgfc?! z{k!Vw>Mr&5^${kMX@$vTDwQPjk7lzOli4JP(PV5qmn2EV%NH+R7{vd-eEIU*rKP3v zYl-*w_4T#s-@m_&!CDnaz?Jv)M$wsUD-*gms9MdcbHs7spyNW&wgnhmRa?Azt^=rAxn@HEWjq z9_i`n^3h~6y;WIR`Ibo3v17+o%WRq$%3svi*T41b*)yB+@^bm}EL^zIX6x3i{~-W=Zu~O<{AZr`KX%NVIn!pu z$Px1SojZ5rKi+IMzd_|cH@olOzyHTquU>Vpudk0WnM`ZUX7eFQlAbmu+azYU5$ScZ zjn**N*VRi8o;{EbT{$9cDcjDp%$ZW)rV#AERMLBuf-Wn1(s^Y!K3&jGTA02_yoAXl znW?R6$D*x0;nV`KByqD70|%gxRGdro%tyDl!yziRq-3SgW( zdGZZVJbwJ-tvlb{k*krv{N*pQjQsy*#K*_W$6dR2$zRS-O0ZvwnQf)_#<+at@^79$ zf8MsXw${&NGA%NhO!;QB`L3L7naa(wZi{ooRBe)Mvr&?sRX&q0+`J$q9!X|y&SEKI z$6!gd%$a^G2GDIyPr7aFNxz-8IP7*rxm$^Dw+h`Z4ayx33|#9h-G6#d#*xuztjo{O zSJ>Ft{Mp9F=I=|EEKxjp@+76Uw(eV_(fGK&-uQiOZQY65+S-mwzgJlG#aOv&E_Pt*?iS(HrI~%u1t`7$54udnCWv13zhY;2m18#m6Y=GCi5{LGLfFd5AljV4Sc z^Gl=Ac&4_tcE`(?FGoLk@WAfau@iq4%+d67KY8+`>38!BqtW=*gZmF;KOshFXsC^k zkB`m&*m3^+d7H_TCO3A|>g((Op#=M>Zi{&M@Zq0pYHIo#jmBXnlWDWrY(8N&n=9pH zOIF=By`kHUv%99IR=WS>fpqB70clgoCdQ{ule{(tVYf_8-<3{uS=EzXTY6)^+a9OA zD%1%YbctG=6D(m!&|yf@;*z4pHC2mSnhy6=J)X%LJd;#-CM$8+)Pvmzx5_}PtgPh7 zkt4#K^t^ND&Qa^%R9jn9XTI_E59WvWo|tQDsvFFs2&)1KDv|^kJRaI60knCGGZ~eBas;Yf$ZEdj8X#CP_HW!-B=KC^@OOmAoGYj38{(;I( zMzi#!^0{>8##w34;l0exTqFf=ipE@pLt z3g;v>hGaD^DJoo3)p(?8@J!RaoPn2ko$&APg}teTpdxzC?H^Ze$UZ(8r!z2}{#-(PiAwN0l_ zKK)tg2oDdpv9-08nd1NGXh{0gr%&HV_R*t9e_dHw*`mI_exT84{M>9dXP71P4M~zr z4JNIj-flwWmM=*{s;sJ%u7CfPlyN+h`FV?_*gYd8^(q(ouXLo>YFoOk>r3Aqb~x;I zLKUw?ljw{tL5F^?4(9|l&emiPOx56)rolZ!gJ-4&uPiOTSvq{PwFG4A3CeXQIMiVBD93%Xb8<#6PBSOD8Z4TTLO9b<9+G&?OWvM=RG)l_;69f#Li4ViNSuC6zH0d zuOSCdZ5DdPUi6BcxN0`x>$XuEH!M|JxujUiOg$-GxqMrC@uJEM^$nlb{DySA21Sjr z-gu$5wl==Hx_Z)&KR#BUJA3Yf58nIh8zpa(DoJJuk&nlZAIt0^Mp#&wO-M+{e`&%k z-Lrf58t6&>`RbLc|5j5|)7@w^#+gi}Z6=fHtl4a?{?C+PHLqStcOTu6_FpKM))Z}I zY~pyyb-g?NSJ=~g%>cTt>Q0|6{jlHdh*P{1>b+`o2^u-k`b0I(Nh+LER5+)KgsX5* zRpOqm#4|&MSEdf{EIqzidi-;A1mx-n&J&>_Y@d#Zd_9r*dZPB}7?iIkcAqn`xz5Dq z=oyryCn`-v^cFp*FP@Zc+_*tOVSe4ihYxESa<=gEY{^Trmk^H(g51&xbW0=1T^utA zaLvTekd22r1)cqFoSouv)$AnHcaJnE?!hEaHm zXLWV;hihtT)>l3@+3$tk9X^ z1v-ZB*All+OI(hcp_ys|*YzR2XfIbUe)lDSODRcN{~l7f$muZxMtz&oQ0b*8E5-lxT$yJq212luy|?Sj6CAE zACZn8z9Kz%@I3W$>a`MG&7fq6er2hkzn~|PZRZ3UB zyC$U^$zVbD5-Db9oTOgqLci5cbX(PjZfkqfZ@UBb@hY4W9Z@H$(27J0qn4<}B}v1; zWQ}an+|%^9rE77|)Zme+#XCzQYqx*4j({9JK{bE9;a z{!uzim`&z-qtSS^rlvNjy1IJW)2B~$mo8mu79JMmKCg$;u6P71J`+ByTXA!YZY``*PFgO zM7`~Va*tXrzjR4DS-Zsyx9GMK*Hk5LX=>clG8;C1%Ax=)X3!{n*j4n1Xw%D0*CC-d5HZZZ+ zz@%aWQ;J=fTI|e}LT4uL*E1gb!LHkh^-Cwl zCsmFppA@3JQ;76RCDJR6aIZANJktsDOeNGajZpV=IYIpGb$*YZ*;d z_4V~9Yinz_RaI7vcyRxL?THhoL@D}azvc4fMnH)5716+I90>^t7AJq}RztV$h_&%j z|KRC;mS!)Pd^d(kwsJSkmTs&2(sN^9YG+Rqpo{oq-XQJ|SMCa*<*{5YtzLwbiItK68 zGqga@umUZ^3$=_a(lM%7&!}P@W2`Z*SjWU-tsIj}v`i_{F|}C7^kN+|inYuv(J`w; z%d8?TvkJ7#$Wt*T-H}my?1)>UCM!3CyZ7!jy7--2N(gq{&9K092K%Kl*e^wnSie*T zd8aYRCyi*IG@`uIiS$Y#LWF0k9N}K6GAP2_QwZ}&vjC!jA>7jll+UvWa?2*rEr)=C z+4vbUaaX0Fx8H-SDjql8b|QjyOS7hBv19W==|K4<>Fy6dO4T)Q_=(0+Q~<(gG+NBJ z$@rkIuCAn}re;}XWo78y@9%cV%F6mp0~nq@lTH0EML8<=OxU=%xHKZ=>#x85i`i_p zv|UX`Y4GM@(x*#0O8qwXL$T8y)h;EPJsNcJq72iZmuI&Mmt-{qMZGP`FrnL-TD-Ev z3>PJshQJ&xfw?+@gi*`Y5w_1DQ+eb*JyH8D+8vwk%#i)g3=zpL)Du^zV|byC5k-1N z73mpWtYd7ENVc8{CC*GJ(J`r5$K+xiQ;PLWE73B&M8}L09WzVx%qr0{yI9YhVjXi! zbj&N&Gp|I){9-M0_bHi??#TE(_6(ZWhn;&i@~XPg|FQVBF-=5?mYKy`W?5rS zv4%M%S~=PC<*yx&xEr?Fsw5J?pp4Yy9G#J$=Ub z!8;fpn9iu+R7M7+F)}EXk%6g<2uNeNe;RTA=?wEvXNYeagMCx1k;Y&@0georA!5AK zi1tn;N{%!c6v9hH$bd*AR7i(M8e#4kgt=!D?4ChTL%0bbWDxA0L$G@;L2kMDxn$$1 zO~cuKF9wHrT-7`AbK5SB8=1taWd%}B)*0#gS9hh#N?AJop%gU>Fc{59X6dHcYz}Gw zfz8`*zum|H`}Xa7S2S?Me|S+#~WI^W|yfZ8{w_lcp#zPC8 z2`z9TG|xcTK8q_CvszBHpz#7{h7?*gyU3a0!j%^q7%6nS$iSFl7seDD7+2yV>-WSG z1CxslOf7L?T8T5$OPrZes%K`YUOvt$b>{O@9dpF2w#LFT9g9l!EGcznX{ny2Wjekn z)3QuNxt5jXT2__nSXrXu%X}pZ(;b<<+n$(t?OCyDLL&ffUcbX&zYUBFPiIU>5@SMB z7#)(z=wM5X3`${mKr*9)GZ-71&FGLU;sR3{>X#z3#4!InlRYMKUoy$wYgn zSi&oXC{K%Qgo~pU5Mdqy5Y~`cB8?EY3^{`3@-vM9_Y}G65CHLa&A`u)fx9{dy<)dT zI@CJ|_unN=pOC}mwFjk=!i&cE?HT?S1gvtHLW;g>SkFzbrLDIT|@)N?c@v=DkftSgMY}Mb5{2ar zO0~=_(=xYI!~9Y$3(7PsEY+~MRKt=|4PTUMSXQcGd8vjKr5aY2s##g4X0aw+N~q(hmAPO*o9>UiAs+oiz~ z$t;|^Pda?)itO#IAh;_b{kahUhYlT*7jeXjm$mdWuFhM6(}r&NCu{LfQxlw}CM;J& zc%FvgC9e3cbfTO7Q*^3N=;P3ukoAs?E;lfuz?o4+I!4Q(XLO;KafKQt7HOGOtY@+u zg3h&a!l#vJm{F>+B)de%oD!ki8s?U0nO~}5L8(Tb-HXb!EH2Zsv`oX&G9@bxsabtk z!|KCo)*jZd?vREJhjnZ`tYzb2HJc8r*?L$f$F`$7wjb89{g9T;#cI}MIk8}eEhFZ& zY$;us+0BZDFS85YT~Myzj!95KEb z7BAtGE}P6KuS_C5GvpF9!aG9-M38H$9D*4_JcWE@T0DiT=uZfYQA0B)qC%>+~mgTcjm=qGvjF=RrM

      eGKnb>iA)YpWNJ(@ZJPDt{Xf~T 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 B^LGFM diff --git a/mobile/android/app/src/main/res/drawable-mdpi/ic_memories_widget.png b/mobile/android/app/src/main/res/drawable-mdpi/ic_memories_widget.png new file mode 100644 index 0000000000000000000000000000000000000000..fdaa8e7d53f391ea990a8972e51be5da1ab72b27 GIT binary patch literal 14460 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 literal 0 HcmV?d00001 diff --git a/mobile/android/app/src/main/res/drawable-xhdpi/ic_home_widget_default.png b/mobile/android/app/src/main/res/drawable-xhdpi/ic_home_widget_default.png deleted file mode 100644 index f158f6a086e2e3b4d03a918a343a6b7ddfa552b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83772 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

      g9?kHfoz!Qd%-TH zY|KD+5uYPVY*?0ZA#f4BBJ)(g^C4GHFZ!)pz+3~@`-3@=M5G%PwHV&zyZxt6yjQ!~ zjveQFLaz@P>;6wCgLh}^uLB@H=f%GX80WOey&}WG6~r*zztp|TAk9AWzeMUGD1MQC zBB=Y|#QJ$Fiq`xZ>|(TcaA*|6gi#8r(7*2Rdy>SHK%$Gr_6F#v)Co8>8(>xkfJa^j z2D@Vhz!pcKwPgAA8T{L$)760c#iOduTP5OLeXgsgt17;71}$A%{SBpMS9B{2%3ShZ zt-_Y82j89W`>;k0q!el;s(0@E=#JNeWlAPZ#RM1?T%S*7FZ?@=4!ziVQ&xvBXU}Kb zx%u6halYu1X-|ZDw62PlKp&ND2HhG~%@d%)`Ct- z^??wGRu`CQh!COz5-LO<=6lpP#9t8jpGbZ0Pt?tvPKw@bdbGxBI@ABx>J}FAvQWUZ+qGrckrx; z+x*hVFKu3ybC^`yv-Yd7NbsJLZd4>CVO0O|IXzPRj0$nEBoJjgZf|F{(+qUX}q5P`an_W$YIMx?lOnW6kiRH+e ziK{))hp+^@17KVIX8rLnvp!Rn_S#z2PmUvWmNn(%gUleKK=-T z4-A?L%h=U7vZ9wO8EjFKC%}qdi(;{Ivn2$C=##rUvTv@&W|+j7akO4FLY52FOcn zHag5Nj4`82dOcpA7>mowWQYK;fkgUpUeN32m)h9KX#s+R!Rm#!aealy71s&(f4;pb z#Hk2mUcxYaYDxnAlJx+ZD%91|qK%#&7?9-5ubH2llTn81|Ifa0qmHA5vXY{;$hq-z zXQV1Xw8jNUaqjV8U;|;cuwN{93`+_JsQ}=oAn{{9?p&a&n+pnkP zjK=Un@+>SHz0TV2HsEFf5;YA^vIEo0sy07erAU)9+pW+4$tIG6B+Wy>Ps6;uCjP2x-b$@K_s@Sf zrBcCs*6R&N!0n>d&OLCOBL2HB&8YzOCF5cOI8jmC^W~_jWrcpT>PQmSJIU_=fT86c zzJvN*G-LCbGRdiL+gSwlz%8p8_Laf{;)_IzElVHFXdM(dc0<`p_)$w*Cs7~Qf+{k| zTZ9OD3Wb%Oo%EX#FuKh^4DaEPP`$sEjC1aUBH@Iud++72aoI1qZT~cA&0XjW5ISjp zLC_nw;A-Y=7bIHj`A zVsigBHtOAr*9ac3w`F+gYQH!eMf=P_>a9K3clQ(>hQf0Jo;HB4Smt=djWLri5;Jyct^6W9P}Spjfuic+A|arnR&1`#`)YPZNyy+n%ypb6qWItz_#aV0-XG=V z2QJ(^O>Xb@W1ZHT;VsEI-EgPl^7XHL+EX3Bg%|Y|Dh!jDj1#RQF17VAk>8uv;0>{7 z%BQELr(@&(SaI;wFeI8HA_R4gKfXXo4BJ2^~Si{}rPQL2c{v zPf!s&6?!>PnlbXbnZsRA`RvyA`tRuw1SmTWhNY>_LCyIfQ*5ktKhku6xZJ@;G_4^l z!cAFOoSY04hPyz1aVSG4pO0LsUmRL9caG$Rfob5Yj^C5Ei~Hx&Gud|KLvd!!!4i1e zMnFJvlS5y}!P+YPnIxy8J4ts9b2Cw)C>_B=wNuPE`-I15YxWWq=g((;G6H=Bdlpu{ zA_5(<-L>xrK~18u038XsGWVu&*U`x&tz{%jm`N^7F+Bo$#(WEsBh_9e{a=`phB-n3 z9gnML{#yA0Tt40x{R9?Vw6*U&0HJL(j{RDjPVTzrx?he+;K@33?M+Af(?6p z2`1tf-;s{c!YYxD;FkDu#xd=AhWKD9qw9#b@RAlq*OGQ9^4Jv${}eGXp(|-Rx2`fC zdOcp$H!061trE>vR9|xo;$TRxgL#kPYi_<1oDD7&rb8)N zNi@IQE~lwYkHy>%5IfS92Q=#bS0bMKZ)6La{>5eqkmi|g_iPwjFZlr^A{ZJ)R~uE# z58XGR-xOxkW-z<_@ArpG_Zv$zB{}rr_QiyVN~v!ADDk3j+V^}piX>~W6|{(%)npN+ z;Z}(X#zz3i_%4#kpS+r>40dq6NzCmwf44jXPhAK4ar7Q{ApD`6%-7rxpajEIO;(!6 z=gH`_25;p8_P+m^)0msi4mc>zm_;}Z5O%nH>_K5djB2u-XWR)Vc1XPP0lyl->Yz3% z@q51n8ZU@g(`4QK=Z)#UPqt8nWa&A5G-y%(FD0SASHV{J%B|84kY2mJ9M4?D9MFN| zV1-J;op`iey=bQh(IDr{VZezCCKR`qF*bG}|HC>7BdxNOikX0zZLN`B7C1!=I_IH83dD+E|K3aUbgJ_f$HlOl^gwpXjb47R0`9G}C+rPe zVQyAhbT|`9a+)jAS{@SgL&uF@(u!s^Um%b}k2-`Zn=JlaD{EVmBWEAAz+S|N-b=yR zOY{h_NWQP6xRG@L;#2ozRErGJ6wLmO981;u^x_|9mryuAI~&<6MTzCmuGpE)uq~V_ zwp&(JMG*NmVbK2kZ3sM?=~mQCN+o0GvkTsDNX(DZU)$(us!@Zse=1CRU~c%dO#cC6 zjeEecd*g%Gx;p;baOWYx|N0$IZgT9U45}5Fi&fflWu>K7_8+~>=zK0FDV5KpOmKYM z%l`Wi$F)XxqI{qFA5<|;_L*}f8m$KpO#j!LemFf%3|O2^P;`^9sN%Z)5wBGRyh6S0QwV8h9kdel*gq=wiHTRUPl=)#dN=;T@PJj?ts8<@Nl$1FTY^Ab2noZ1UbSSn1nS8V|sM) zkB@tNX*>;#ey+lg;XV=gWzsMe&|y}_vy{+ndRvj zY0Cg#Acs#)ZPrJZpr+GUN+kjKO=Tfv?@#|*PxcSC7)D*PHCa95J+}`!Gp*uU` z?+8USB2rT3i1>H=w)atIEyK6umt2|quQ$DgHgdbC->G90BGyNkC>E=3?Zdx!25ogn z=AmV8IXE)FyEAli|8f?<6lDHTyK|W1xkg_p`|FEJq2yvo?mJt*u;X@S^WN{9mV|cZ# zgWFU4P(dWxNyAfAAqUUQ2^&F)<^e}~>#CsTuZMBvvJ)hPJ91{%QO$(h!mh4tClpcP z=F*WQ*T-mRXtzHO-}kXh3nhqC!VCu;S|g(pRenDbMvjyuid@4r`)sw?(0lr}y6r#*u`ev&X8j4lR6o)xTU~Snz$qhoy8bOEiKvcx! z8d)TwETW25`?Oz}klG{q2GK}0q)bw%+T%nQPZgDecm*m(+xiO3y5ZP_(GHoja+eKB zJ6q~Hn|suH)8S5YD9rpG1bAg>I>Pw71~3=a^Jn{d%359Bv)fqtlNY>?5B`ks8i==| zXB$B!M05=+)#vWu;pg;hP=dbl0!g4e+er;Jc|A?_Hp6)j&xS5d9QN~vJ zKhmJ^r{fpZd&Qdwmj~?${ie?gh>wa{=7(MKlR(4zK*ToyAx+*?SaHp?+(#+H4`o#VO*{Guk89a#&& z#go(hH=gfQnX&mV_5)uc+@I;`Z@y(G(~BAJjh>d~Q=wtu^C`5_8FYG(cF+e7z4vlU z-#8IlHK;@setTzzLC7pj!jmM;z4)~+)VNGtcF6_P>p508w_^N#3z%?dn7dYtsaw;%KXFR^Y*iKtLJ4qj;(Q{lZ zv-NnYX@V(ICs+RBgF552wy@wOZ~MF%@fP0zfzx@buk#|{9~?9JAFU2bhUN;T2=#K1 zt;a)^kZz%I;*s*4lLn7lH%ArW!_S9a0g>SjOL`|2U5`tbu!L?6uZKYaJ0)fd)INxh zs(gN|Ih^AXLb>D$vs`v3@}7q38HBI2QlC7odZw!yk4J4moAt4}#V+v#7JFubNPv?> zx?gyAa2*E^Oacf>rP|Ndp2U$5h(fMl2M>x3-KHc|OU0(47e$cFJxNGSet(%V`+Elo z1by4mpW{W8a^n;!{=-X3YNg@qd0i|IJ!|==XU#=wuYv`^9%0pzFB3W+t!|4tz7b2}MgO%B49Pg{;|{jPBMm`kkF)4CgkTZzSL&^Rb8GTB3w0&}w_;%G2=OT+y{v zr`S8DIWkZc{Cf*JC)bZ(o5om2|0ST62(FW3fw#^&%JBd4P5z;FIRN%HF>hpM@Vyfh O_>z%O6#pq|9Q;2?QX(J# diff --git a/mobile/android/app/src/main/res/drawable-xhdpi/ic_memories_widget.png b/mobile/android/app/src/main/res/drawable-xhdpi/ic_memories_widget.png new file mode 100644 index 0000000000000000000000000000000000000000..25db5c73b696d599988e828d2e29be6b66f76c9c GIT binary patch literal 34010 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

      *`NF&O`n+2i45ry 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 literal 0 HcmV?d00001 diff --git a/mobile/android/app/src/main/res/drawable-xxhdpi/ic_people_widget.png b/mobile/android/app/src/main/res/drawable-xxhdpi/ic_people_widget.png new file mode 100644 index 0000000000000000000000000000000000000000..4a9122ab54b76c88f9bd6c5670d0d92e8fa79c33 GIT binary patch literal 82375 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�(OZ_m0PI}g(#r` zdJa3|B-P`N@E<&J;97Do*+RSo{B5EFPJe92fi!tA!5JkzXQ6{v z=M}_Von|HUZU=}qyXHL1Kb)4n_Fs1%rOQqdw@#m!#Zzl?%)$}T1b!n}!IpO6<8iKv zem-LD*OBX+j&DUvL=1_D!c8UuvS%IwMF)bU^yo#Bl8v-^7$BY_06BFOm*Jt21d!KO zMN=va6rG!_eBUtfO6&lMNL93+v4Nif#zP$~h?aoU(qaOvi^h!0$@JqYN?fQpkhUnI z4*UvGqvM9K@Wdn5A(YSs-piJD&wZ+xBa|yJZ^b@ zg1k;G8gl)cY820fwlZ6kJn@DPBl-Ngbw8INCen#bw)P_U>a9PJaK^udMf+@{&*A>H(vbGFRLr zO3k7&06z~)r7AMMlIU-o2fhl$DAMrWlT>`VW1xsoxB`xj@C z=X!Ln3M@f1Ig=e;m`OPdkn1`7i00^oITT;LSY_FvtV$yyi8~E}D0Pi}q(t0*`}F3% ziHL&dQpp)&Rh3j+?Zrdp=1JG{+-MCykO|Jox&nZ5|IFk-5Ra20?)9?9?oS{Zy^}JH zFb0S@1%L2BXHuoe=OalDWVFEsYh&L`k$)--8inP13>i?AzF3gTsx(&U#8Lq^MrTvZ zhH_6%9llBv5^;Wya77xC&FQ}nJ>$D$+D>oY+hB-9Ye?twM^GB5h~mub1!%J3I}sYB zH=qLXsG}=EJ^Nh6AQ}XQTK4VUp-d;{3!kH@2n3TgkgaXyY_SuvV*phH@TbIh%x`j5 z=0R4A9P!J7g21mcHyrm$w(Cxcj0vUJ4^-h&KCFvKlP!qFxYW|-C?kd!T=tV_jjBb+ zpl5(pYe#0b+;KJs2IAihU|^!N2$wcnb0^Dx7r^r*a9)wYQuV90YBe#x3H-kRSPrN0 z+T2zbQ`LwdG-}de0;4B~Hb!5mW`EU*!XT;d(|8qGyaC+xE@{Ik1m==b6h4Y-6xJ1kUna0_5$J~>zIEa{&g}`*g~Yl%ZUrvn~#NnBZ| z4U-X=?M8yY19E#c3VZC`)8qsc0@Rx>BWmg}+Z);C-a|CjwZWHi`jG2i3tj>ZqzbEu z3)fMO>GJ3VCaI$)=8B1k>&VUH9o-u{B`w8s3_b`dHoJjxj8~5r`hgk_X>XMjH zDZ;hl){pKjQ*hKI6e@kl{a*`4!n*JIW2HJ1DOL+<2`uKAGE7Eb0`Q8fx|w8v)TjxF z35=dVGE^OAojUYwb1_9{O@IdK)KH@@*c@SVW=xlB06`1ZL?_6oz-pVW^^{M9+GtEg z+byPE`Sv@=H(*BCx>p-ghjmN`7`z69D{Fv0!bNIlnQRHnHyUg6yf7xP_7dpD$Hwi> za&jC9G=61liZf%-chXwLp4^61VHO1D8jYbI_SMhcKu$(=z%#)*Gv_NS$AQ52A08xE zI5O)GS#7xzg)gJ&9S<{Ixvt4R7*;%0(HM&8Z4`Adfpv$x+Efc@0-Pr{HCN#0P0$V6 z)L^;lJ(@r_w=mUb=ZMW6Au1Ed55Uwn)>aZ@H;zt_*LoZ40Xbk8-Bl7;ENQk2dFCz) zXUuu6K~8Cnl`fDNH#4_eu)*Zjn837dJaS}9@h~jV^@wD)XCOZS7m)`@tSvP$Cb0HO z<(a&KJcwG;hlJ#r#Rwe6TsH~K_9WGo`C-(XGo#vJLv5mG@@jwjaQOK)@?50e+Zb~} z*PwMbLmMoo*o`Ak5`E@(ZlAC)>ziPs!|6k=f1T?ea=#(wb*iG=>tfssmY+40A!S&m zm6*KRpFZUJ*IX~rmK$TOP0<(=SSz9~PAPROeaQ8%bNvJP0d!HN$h~0n#P#LR+*zEw z<9gF(il}~``nv8CDAR|-&*%Erx&DFt079h+&fl{$8zSRgFj|pDMY=G{sj_WH2I)ht zf1T?m+Iq7X9Xya$q$V2h>WGXwh1M5X zQiUdT!k{-7WRO1O`q#OBg8Tqt8v}#LzVyVt^aRF(Eu*Rm;T&IsxMXk*tOMyofa_m# zy#@IJ1iXnVpTZ#az?ha)Q5h={<3w9X6IQ4SeX!1{MDIG&qU2(~HoWInDbk0-iSMPW zK4tnc@jfTcd3m_*Ys2qib@<)PhrXtz&n&{LcC9Q6e)|BGyk2!XZ8uX>kGvMB<|%{xOG=zxT=uy!1);%2xQ-Bng&dP)g_Ix!7$7XvB~ufY z2J6(93w3gE?l^vf0&pWoNL<4m*c|%`Ikk7&|ema4fVA5pW9V7QzH$DXafzl zT_Y!)6V43;C88;i6xJX?-6{rn%!cNvALNA%(Y9&I0NI5S%Q#B(JEcI?oim~?pYP!D z#~&{V&-I*b<`7K~d$KwC7e)aW>zUBN#*Qciy-NT#eE?H|K>{EH7|((j1V9urKpu4o zM}_=3_-p|j4Y#|mP?vA2|*#<2UEt;N#uy-6Ew+j>tRJ?OJ>3Lw>}S^Kpb2vUbL zV7=xs#m3kF><2|<(#RrcRGrP8p{d=xY^w+1e0!;1#s0VId@j(KnO z^=4g^7Z~J)O-g%J;Fg+OPRE8%{o-~pj^?AgsF_YgsA%QfI3)B=MHa}ki(*gArkRga|>G-~KlgyRe zguIzT&=P{MkQ&5Vi<*`%)LLhsYhda)5)hRSA(>?MOkfSJ^WD3(Yl?_h_wze;>@bQs zy4-7-Js}M@*fT@n#iEEBBty~03L0#PAqdPyZiw2j>7u>{fHv|N@>#uBAvPs2Q^dvumX5#%6%iZdJ=_ZdL;6PJc${>RebP^{ zfnxzcc7pH#M2a9jL4K&?2nfK-Vf)1 z&lN;fH?nepTK`IEeba^%qA8-%r4XwGA538BQiyW~!ABM0r9#tY_N)kO_{0wGzagBCBG$30+bXCC52y&)c3mk)bzI|69`iMB>9xtS=OwpQQqdnt_ zKt{qgtoR&LY^dj4CE}3Rc4lVA_zA&Ga4EFYLm2PB+TdBpK20j$VB$IrQJaz zqaQoxVK5PQo!cm*m*&YNPX{&uBC)P)+`f^Qj>I5Hp+1igKx)!Z(_1Y!%PX758Ie{+ zRMsb9hx%}7s%yDIV`b#!KbSyVw3fS#6doj+^y57~sX&~tlTsgEVjyOQBi5JDcnkm~ zuyJFnBdXMUCVv#d8Sw`OK zIaj4~FZx?aEfYk$?Xi-I;T)X4ozHbCbHOT;Q-+~x2h7~aKk|TVLm7FQ#Vg+ zfW8rcPUunB%r{~bww7z%Q+Lj`RN_SqdFjl2P3Igl3X8qYA=8B^imqgU`YuN@!$yr% zVM@y@^iZL;7E0D0t_SaMsg$Ia|A!(!De7AtW;GV82r$4H`OWG^W)o`2o2G7@O4C%G z+OwH^O(q0%=UgS!xTw?~HRNR z=de-BYXJgDu@>?=ASz@7W@i#yF%aR13{CekqA?Jex``sqhEfcs+ z=~Kw%K~l1SW@$KBw8HmrG4;bjOzC`30*g4ar*#0KU^5kcO^61tv16kZyDX0H6fGVPz+uJz6LsR4X87#MD*B5&@m)~2{KiI{mj*p zF2yF@Kwz<6H&xnD)RFWdA;_DwO)AgeHQ;N2uYpXi0hhs=bp#fxYPwj4rjdG#*oS}T z^U#2HltU@WD;R+dqp&O-H5j}Gd=2n5z}LVa*&1lXM%p^78s%m~U{WoNBQf4Qc=OTK(yJPE6f~SePB@VT41?EzuK~UW_!=1WY7In96hf1E@J*Dwq~ylI zX+`=koxy9s*8pDwMF-blHEMxv*x~J43}o;c@HN2K0AB-q4HTL*<1*BhLNF4Qz$T)y zslmCfJ9aR54FapsIE%s8R2TP^HKq1dia%7*hpk;98G&h1jA9lI3qR;DCPsrBPUmQ$ zHtdG>gp=P_BY!R@m@BgBWd*AmFoE{tURbYqVA5R|>a{bv?qySJ-8~@p)y3$WBOx%Y z4FAd^Frm?3+=}Yh!Ent!f%JfqJlHVpKL(>yS&6^=t;n^~TsN zrZx{Z7*3~6%dotW8LiV39cn$a(m?K{U@&oW}mYyGONGn`R>nAzM5tB$= zFfq~JpA24uSthVx#KsX@JJWd_HStEsWXRXRrp`rRHJhr-e7YbvPDc{UU!|ytYfSX_ z2!q#Pw&iO;egKq_n?i7BDzIIhAiZ# zZLKNE(%DygFHdrQ8qDn4fqEiP*f!{W|8=j^l3KKm1;sjh^FO@$2tf$&t6<+VW|FbW8S@)Z*Uc*QD& z1r7Lt^-*NV~+v z+l!-lHp+f^wXoD8c1ZSIIuWeUc-VUJ*<+`M)KI@ppDNqhwFA-SxtuAMqLQe6-EcLF zIA6|G3$;F!KpZlVA?L(n$Qebcrrjgn+E&^*68yoHNny6x3GE`6PQ&auZ;S|hg66k2M9A+Dh!mMn$GjoT0;Oa z%i?{;uad2#vYp)J-Ql|V%EaJ(rWXw*r9m9R@4lBnismOG&ublv0aN+%RFnhk#oW`= z^FxKGYk=7wJ1BzAM;Q~uf%cpz|36`!r=O|NMN`XtsU!S;l6h&a+6w*T4O$}7Thi;; z+=WNQgjlfJ>%@`)ZF|0T$%(#O)vNuMPi4bzNsd55zJP#f?doVnDhDosTn$P?vd>O`G*w2CFvDpD7dp`>da8cP6C~TVWNYVm)8s8 zR%VOj=U7>*1IovyJry1+{#RiW!))GCH`|3h*$93{M#eG?nB*EN1}-LiYz&`m{!IDU zXwIQw_tf3gg>bpidFA-{_#*?Df~D#4;ntrqSgDu<>2~6KEQ*byh=z2Yl862`mjmsH zq$h1F0uC3OWeJZ(ql4yaZE;YfDib|K)zsyP|zeMp#&tb!Thx4agk?y+7NWCNA4`l@qZaGwNGGA z3S#!nY-GEBgF9H)Rrh`hP5Jaqu^Le@l=&4A1m{Azu0~m->A{qkRr!J0D*3sJBsVvA z4#WN6pt8@=T4rWu@Np+{J;uito_DZy;-#3DnktSBDJiRSC|x*s!0qxRw)twa;w?_M zj@P&_njp37(aL>$byTS#BW(fcN9#uk3%xU7WMb;I_K{WO`oEGz`EoZElt7Bk>|@Zx z7IUtg#eDwl8~fVHR4J?SjrgQ;!@ry!TuKQA>WQ)K6S1Jm&EEv63eTJK9Vd_?kmqpl zF$UBPv!-TJAT>Sxc1(hf;F;hxf8#>#8)IXK@4DrN^65M#jO%~@mJ0spI?7H;VhEsn z@KdAIMB}4nU?Ma0{GSjGDuXzY(`gsXfn>)Mt?6`vZpX}?;deXNs$QjMy)4^n!yoUv zL!RvUU_IjdTyAb|!c=4tT2w=(#2t0(>+8^gZu)fiiM&p3N<)ep`*_=X3N_uFBH(8% zWeWlpXxbKDna1si7V~HB(Btv`Dh6TDb=60r5jk58&Z}JeTaxGV%1;vRy|IUM$(u?k zVN+vVZ1-)%yh=gKY_!FMeQ_feA4)d9TGJO(Y+5wvnO{9W3*Z zhxA=;aLjhPy*y|EKI^u};o|p&dV4+4^IOLX`Y2UO=(7{w$LoL{*kj;Q-AdBC$2W}7 zawp~h?~U1{b?N(;!OW}+8*d#yp~$%-7lEe~M$UDHBn64vzK}!@YQ)nZ-MbjuJYVzGqSfP|fc142sf7T_4ettXp+9z%H8L>104Dy|1S4NCEuw%xTN8FfLs@*rdb7y*(tVJdS zcc{dH-$Mc;jZeG(ikzapLM#{>xJD=ew>~<;nZZfC<*k`wP7>u3+^WNF9wK;B+~o3DHu~T zr3Hb#b}NvF{fM5ua1c-mJm?oxFFuei0gYi>$nj6)4QNLC?xHfV+|<-my_+SReyB5u z6&xVOl=+G%pU0d1BTM z*3&&p+1`osLF~pPHMzRrpUsX~rQAiOrjlxv!(cF}KR{lbdWk>%bLMAkWE!8GObjE` z#0jzI0Q)8Az*S#uS$Sp#QfQ{hN*^4U?fy+?0NW`g(76jaEh1m$s*_KZ>Q!dE8_iOv zRqXmuubU7TSFTRf&nScathrhf8>O7@c=m2BxE#k$Lp8v<09 zYg2MbqN*2JKxM*rPJByG(X07F;fRe`U*g0@bKd-n1V-o=|A=0#dw~78$Hc_=l9Q9e zH;~2&18&n6_o`7))s!DSKhytK$#H|lS@J(YuiA>r^u>A224Io&?xh``&FLpG;$h22 z+m$kjQYr@HfnUmsiZ;skDmy#g0oD8=G%T#Y&S~l850h4pB&(mXQTny-;*b*Qsi~ok zb5%0GpM1mN%M4%h4W=f&?od`%9`FD8b61Tur2=T*FWXHkV-gZ(4a#*-_(Qt$Yv&!- z2WK-z-<|LW!&{AcOg?=0!NbJF#EhiF3nMr6k|9lX{llckTWQuQ$^4&|^)P>BrZ0w3D16S_a)n#2tl0TUJWa}bVa2L1I1i=sq?}@VOd$v`npPB z0l%s`!YuBAD622ss?$z(x@tW9+IJP-8;9vl+-ZdfoYcS4VqMiDMq^jth}PT>qrPVE z3UmRR-65YYOP=$XK3=}Q`#Yy3V(39y@{x-Cqp7!}H&(R754%w8wD|%0z#L5gehpvd zRw$lrjavQCDJ4tG&83}haoC~0i)$y(V&84eah9_r>#&*=t`O#xU8Eez~kE(TaGi2Nt z4YI=wrgixU5V@AfrkRa|dfZqG(zyn1Q zghXnCfnNEaNv+d`8Jc~DbZOZ7u40zlKC+fVv%QwGQCLvm=jfAszG+Uib?Utly;!J} z(6GUnTQgZ>0Q5zmnw9N#DR0F+TbHm`9$q9zhal#RyvA;1!PB4VBg%f=n7uKq8Mf^3 zOtU)19eyS!sz2BqS4HckI4k*t{ftzQNLXjhD|zS#=k9Bti{0r8qsGGvJZhn~3ZQSk z(5D^;vSE8HS4^pDiQaxPN5PuIT8d9rm|{?_%{Z`!17(S@(GTc7VbaUK*?f+dxmB-g3*9?s>@u!x z7X_M0d?XShL)p0aIy1n3RXN7t9tawEe^O#f{wzMl8@5 zx#%seyAC`eMzdaUz9N1AntH!+5Rhw8RKXU#;VxDdecKa-OvtN%^(eLPvIf*coM)sfbRNwLF6d*@@u*TjbnDo1B^o)3eqBrVn%3!jeXw8nZOEf+&B*52&(|7eThZ4U z(|=u0^SHKC+;(E3qgz}@cuEedC5{Y}YIwo_h?xL~ipl4F{)kHC`G?d3{f)CFWW_e7 zM_@g5Z3FygIqz%5{Yd$`omrHF@K1`1xr+L9Ze0(S*!ySN<{9?n*7TiS(M{+c=UL8j zm0`MlJPiY?RpVO&`HetQ-1$Du{MX`Q z#s2<&1!iXEK21JC-BKMjMu){F7hDTIih^sGVhY0s2g?5Ez4$c1=HwBcH^We0DGe*6M8r<7a9JC6+lFR2DkU_}`*7WjYyF202%>x%}X~ z{0d5R^ga#WFGnLsxTes#A#1o3rY_k*6uY+iQUIDwe)pB)w5ESfI4~P{ySraK6KeLeS zA(kLcr|L_JG|LHXQizH)BIWIhguZXU8nex{%k&nM6um~DbL$FB7{T@uME&I~KZEO~ zM@UXenp3G$Is-GTv(qX8rkUB5f6pJFz()3e>fZAM19pr{v$0lhI9`mpib}K7dS8^5 zP&RiKci6!~V`s(tsp1!uGTVRZ?MH!dO@Eju2vg?%4e*S2weLnh2szAEZE-g)%0|AG zi@>M-@Z4dJFPyR0sZq(rd;%ERnVg$9KM#^|8_K(?qZDG$?DpA#SM*}Zj{OI&KFG)f zZSzD$M-wY4Vp7mT)&z;GoDN>PR78RPBi8hTWy@;XW19Vm#Z+KlfO%an%&wo1j=0@Z zf#>YXau>);Gye;nb^v9U0hCSPD}!IQsp2hjJbTt+c~~hu!@!7AbJbxPzYI&@jWBvj zT`7-=76lUeJMq_+5BBs%{E-N8eBFGne|oi<(Xk;pS1dZgsLC<7_tBoMPcj2?iX;m^ zRXJAWQr5Rryt71IC)-J?8U#(bK8YQ6ShrG%83hMS>Lu2V;NBCHoU7s~8JPIO_a!gg zckjLfV1BU+yy0J~yZG??+erza(MY{`KN-5djuD&`4!r5N(@YuV9zg}bSpr6ZILt)zGmOax6rIbxKZy)- zKlhksp8jPwvp^(JT<$MsSG<6WFeBA-yJJLTWTez=xzQE;O^LeW8SrFm z{Q-f4z_{t7g$ba8wE&um=c3b<7z+!FGdUSqhl!?URYQKhxhe3=Hv{ps)Sm#sb>pjQ zy3lukn?9j10YcHfm-WJ4F^Di1m@j%s(b%Xjcc$1*zeLaxzhK=rUiE!TR``o(QjIOL zN*5T9KXV)XRIQ_`6fW*#&UlrW6#7q1q1hBMrQ3AnG|jdeh@Zxzmuv$o#?x@{efZ73 z1T;B!fNx{{(^mHb7c1&96F1;@;&94k=82SJ8(2FoVz?0Z;OsB%Qp$$6)kYF4mRa6Z zsimEn?tvhhYQkOweSqE2WgGC(3>@HAEDzHOv+b{1dor(oSR%2LKrGn#;;LE@Ch%8w zqQ~m`Lol`r2I6F_`|9NGCY|qQ=VbfkbF$akMg_g!=(a^!u;P{8B;EKq>*uM5?|47q z5~Ll6*Fao8(_x+A_6(DU=2^-1yb6)lRwpLbWo2-(5%(#NCLciN$TL@H=9{gNqlWSi zpuLI5+S&{U>3`1h`^4D=xFQ}daL0}+y`gHpEX0OtD?weMj)W6>N8j$$1rYlTt9|2v<@Hqgb z1KGekz1@Hajl%p+ha?mf6r>XGzJeg%&4zpxqF=isf^W{EV`4hlpFR8I0>H7aMvlmu zas3A!s~MV)9Wp?t^!tvch#iSf`!ccu!zsFmaBOgpum=jBH@am6r1CFcNHMfAk8iAt zpp51~1OBg6{j3o{cat|nklyS4iS&)i(@0 zA||g_^7R2&__mBE?o~b5Cx`dgc^xn$iQpg4eOA|i4l7qA{ zN@Ir5pmK4_b{BQ2KAb;bU06-^$QO+?FnPT7H0~2kg}PJxP>+VJr?2|14)b>A%m9&K zb>EwD)CM3-5s;K#+fVFss)-u@EdfEdfY z)qFVk4W6X7Xxi_*-jt-TtGJFiL%@%kyiV37r0$MGQj&tRom#$!d&*gk05qSgg;E4R z^B}s6bM=okSzS#>*erG>bwkrHWt2*lXpnbqbpY#IQfbvE|2ViLHJ>?@5DYLSl2yFm z4JlxUvlNO&(kFmN>9mm~Oyfh#HCfo$%>*kvDem31HK^7gg7}_KJ9;zwEw^pYPqkXm z!QgHvv7_%wc^VNz;t$h4r@J3c&6vQek926+M==VAro^%5LiariJ1e|Ayu_vtfvWLV z3ni7SnWMZGBO^v9=?uB!kXlj0xc3Q%S1b&NL`<>pOp82=VDCKi&)2&8WPi*}9U{EH zlZ1cOb=HwQyHV`p5oB~~#)=vqHRWAdXY${fPFX}Bs?^NC+z*lP-#Lf~c2863YM4Y* zVyUX+>#6R++;de#Aq_G&%|jbLMbjr6VDSHf8b~=#ypm3T83po6-5oMN)q7M2H2sD; z0OpwQw}9sH;a?rqcpUsG2dc+VNlB>@4+qD-a%$(LY2f_@Ex=4BPL_R-+)diNPUfbg zdtsdHrTU|Hp9lVC`fiP6o|pyRyZaR?#?5_&Tr&0j{2A@h9~p_sfGhGhACPH?62woH z-A$F$;)a6dUReKzzDK9?j;keu&Nhj&d5uwlW(be}ApD^SU`n5VY#Pc&;s3O)d6JJ#T~+J6tUILw39^O@u6WteY~s3v|o26T?~>3hp5xD z(X1`_HzkWn4P*V3{hNq$Wtb=h2krI^T4VuMCuX9B zXE5C@Fm?q-#>YER($e|^?dMbW;NW1xzY2Q;aJTrRq$Juspbhb}vKAZVzI1OWP`~sNcZ;W!czF!eOSl(cIh~E;%>jQM&@TvGBSrfe3HC=i#4*X( z7ebhsIP}HiT;u}TBG$svkey(egkeG(x^O}}y2RmY=!F4!j^I?HxD?4}@1ZK5*Fo=_ zaf)f!h+Q4ph<~U2j~8IOz7KjB1B~MDiPzoEe}E-*1_Q#dil374I)Jxm#L75n`6_GB zyP94So_ecX&eS)6=4R&6Y4*y}dg^DQH(mrO8z^O1}w1 zb(waeY+xC@v&O7u!l$FgN!p)eL&x$>n=AvII0%Q6bLV)pwkrV}-vxlw*CoWq7tgM+ z083C`U?G~Yy}eBb#LO?{;0<62MPrf>Ap(}ycXK1#h){O_8LF6c+>N9mo(gSy89 zzlMhsNXf~arQEhg&QsVlS^zbN8c;>CwWM9T)|9x78e;KraIBPMNpT3o+;^D`pL)O6 zrqQI}lN}h$b&@!RUjVo;a)Pctr zsqW1qD^pWaA@nYNXSA1ott4;L4B_;)&;_FAU?iBb_|iy3~4LuxA)Y%%gw3 zOgM3490A%8z3h9rDHsat`fyJ}vhEriIXr=*3Hqi0B?SxEI*(QNwDe#vyrOmx#Yg9K ztn#ri+6=XMVNr?s^jdW?J%P4aUBvA`htWHimcw306AKg!hUlY-%n+-5tWcNVbtTb$ zCt{wF9O`GRsoXNcbV-I@0>X@j;*j%T?k_YRJpe_84~%gpfL`1>3ve)Bpwb-F)YOcv zt*!m^_4Rv#P@j1Gf?s*PLKR{%O~d@=x^_Ap1=1On{`!Kq2C0c%05D-V4i1hUOx)Y` z4$yCD%o?3c#+1KxV?_gmWj$Phh}*oBF@oBCXOboPI~v)_Db?qC(YA`sB0203LPp5y z@)sZ^CgJ=grcdW^Xkry&$fA-8a#G-Jt!3bM40PRaD;c^4C`CcKsPDYk2onR&*sQa{^qZiH_J~Vqq;_1k+#Nw<)JUp zrH^1*Pyl4sHil9Fw*`TSY?BdCYP`t-z!jKJQzZoiCMifrtQI@`Z>Ksso72sw6F36{ zpB_C7KQ<95aR?d`Qd18vVXbFfjU5qQVML?G?``EIJmu8I{P;=u z=ye;xNnW3Cs)Gh|Q*kzW&*Dz^JVOpc&x}RhnJCZYI+!njt}{NgOln;s){UsiD(I?5 zGp6sK+kpj)^l7*sWQqtGeC3}kWd?t+Fn!*Z7#tI7ohJFTlZ$j+bjb9Dn^e9Dpmc5T z)S5&gaQ6bwMujg<&(3P+6OK;2c%+HLXxbf>31t01<>dB|=#k&>(T_^~_Az*mM_#2}>w^h_D)G4fX zHffQOzCL>3)>eUqHLPDXa3`T6rFFi+R`!Ze>2h0jP*-B>5NqmHDHL-hVq~5(v5#K* z)PAR23_Yi(*0ZO6d6UVH(I#XnA6bl1r6NTjX8x8vexY+wgp%xFz>HzkkC1@v*2ay^Rq{Cyp*{Vey3!gn+{a z0KbaM&G~x|Oh2{C71f7uz=ZJz$N|x3&wgo_>T=s_X-&8U1UyynPQQ8}4U66kV1O|E zAU|n+-t1moRAjB>;&MXrgn;hT=ElZzr^TjfLX2{w#`t%A(1R$TzedxDd6a$QHn+uZ zCGt8TpcDvA5mu;^K9Kja^~Ib-+(%BxVWTX=yqI@teIu1#0RE79`kw(DMAGP^Zpl(A zFr{YEgaRn}vxUgtGB?bL4MpeKCjTnkITu!>;Bn;OuY2hByP^}S zLD^JD!2FQIY=&bx9p>|nzRaE*yeliARYsoLXgg>cmwF+Dl1|PXAXTP3T8j?xPibdt zvxEr3c_LQ`R6znW*-2^kiZeb;0<)Bf4eCTFXoaYhr6b$Dmp{eCth(dp2YJN^8kOFo zr(u$T05Q|j6NFDA0yS;-`RX;aLj3fpOT>P&#o4mktchn-Cc0ml0^nVc z%gj1fS(MU416&odg`j*}UL53aRrd|8cGmRJqudt6@Y0!OarIF~ADn67-`vE~r=Y7>D)rz?g3?{+J?tmgU08ao+lBKeL382d|M|I+x$h;hBgh- zvo0nRd-0}x0K3{$AjfsfiOjW^StRE4;jV@_h0&gfs`v3WGI@MAfH-C1h3mXm*54(p zOu=!#<9kbp!W@7l8avSTXCrK7iVc~Qb?4apj-F;uzuNgUD8a=3UYSg`DINd;#TrBK-kYq*xdx+~7lV|@{5y>)3PeE~qy5p{v}}UOK8?s=ctqLvPplD)HU##O zj>RUd<4#ITQxoz5WR13pJo$@+2R?*UcHCeSNSu!!Fh2kc-xeqF5r*o;`cX zV1!#rhO&tgmT%MFMW7UYvfFX5-?-)OVEibw?2C{Rsd`j07B5|PI4^a*(aEL>?tA;n z=IjN)XjVD^+S7K_`54dz^jS-10AR60_9!@3f4l=W<4eH0i(L_K?#E!-LM-XWh9^fH z0=eJf#edzByvg|If+4US@l9%@e3nuuuCj5p64XNtWZ@kxe= zCx5Uo5=2Z<2tq3ak%D4DG?IQ4D*?CMmq#lJfTNRpeCJa|RTZBinl>;EYX5U56fn1` z#wYTWq~oTNq8zn(lit_T$-vb~#%s?=na`V0RoV|_D=XeibWF2ZOIBdOJ`02cu-kQa_bb z=D?#llcZr=yGKBQXDkC6Ws{mMU_z=$J+A!r^3m{*j)Knc8i$TkU9_jhN{43M&cu{w zA+D0Dy5*E_n9l`e&pKsSzV;nFqIkLkG-RntV!hwOvx#-ZJ(sEX%H=A__! zxDOzn)y_~Rw$DI2O1ZZie}#Whot$tqr>5Z$iR`KIV*qWpo3?pr$%C!=R{;+g01Lt^ zeoXRR0N!2#ve?&%hzQ%=Pc5;4fu<-|)NN~cn2tvWKeZ(Y0b7n9b5#1`{L|rF#Uxmg zgL9nMk>#d%3nJ#-EOPnUBz}1aC-H+Xo$fvA_Vk7BCp%$KaZxpe@Qn+XK^?7gM>YLd zHQK7;po@@K#VR>w7q|DqHTmqTLE)xhTyL4zw|zrt7Wj zLNU)nu1lsWlC>zdJi?fi48_%U)ftjw<(~8_Dd%64jWkj6@Rw|4EZUffcR=swW&G-A z3iuqZ6emk&HBh9hT43mcHGKb^3{=7g{ES`PzE?}0uqNr>jy?jjyhBogf`WeA<6jC^ z^dv$f6vRjVo^3nA&m7^UTxGoUW*&1L!I({dMC>%1^I8ba?)_!&*xS-u+V@;HnaGZE zyAAw|{6MW8OK~NQk|EW#Z21dKB8$(zaT~_lCD2Xb@kylM?v1?7c-JB?)nOB)dcJX$ zm5bJ^Ep|TaXt_}#zwTPPK2cf4evFNBAz~8P-yz@?k%GJn^V@=scR1J34F$$cJaNZ- z)XwXmXDxDg{sbc8$1CAmA5j?&2~6|USl25I#+-Ai#H^&)?i`IrF>+*>2#k4pFGM}T z3x{@4UvyZ(@Km<5?WH^G70=DAes<}2;2Pw_BCBbu_ENZ!LvAQ6hm53T523ZT@W{7a znS!?Rq^pBTOd^0fO$agzxMo@QzgkKWUi>I$2#iClNx8WaLaVgoe4l=-|6=_d>7f6J z)#8x>m1$4^;(YVr{PhyF0>`t6h!{CSSjq_j2~|H;pV&VRJ6 zo42}ceCSjp=%o|Xr^c%f?B;Mi*Yg(i%pJ#+kXysV3TR#+PkzmxEj{_eY@a;V1jy8k z#|3egn{lfVpsTBT+Ao|yLO3}d-j zr|I%=k2SVTG}=oUQjn{8=00&g$lMxG%YhtOFPSVisAa{u2!)v2b>`A zCM&+B9iAl4yZ^Gy-MPFs)u54SM^}*Q>kApc{4&0INvG`B z$Nb|wPS6-|I&|}`pxj$NiRGl(u7=3O&cvBH5UzeRNp6!=Qa}dZIVu|-o@1eiX2PZ3 z&90-i2dvQC>nKv_Ql}}1eITm(1IZ@?=|qFlK$xT`#jg}VLuTvAjMB8r zND=07!J`l-hC}_^xY2j#E7tOlqdvHUsc2Y^@!ztRCWY369v`kcPj*UR>oL3?UBCt?64(yoM#aYNlaP_kcmkG) zVV?VkvzZ8i^0yfJxSkL(cODEIC+T7 zg{ZtDm`!hf+&G@Po(8yNE@4_0t^=6Hw+ftScs~p5ZTK6ztOZ=0WIh=h8opiW@KIDkDOEeUDU2Mq?Yf#*Hw2O8Fmwz+;ZU0VymXK&8SDjw4|{q*c? z&Msp~POF`1)uX&ux??lx)Lm^1fkb10yWdMPcyS8(%#~q%8Yo?aQoT3K{?VYzt=f-A zfd9GtNxrAS`*|k11Y6F9vx+*A%3nS0KN|k%@Utsiu9`ixzmjlL68-$y%~8F2d!QuU zY!z?+4d`R#qOH^ePV?hja5Y>b+~Nm`Fy1~?x3INfDmRKxd_8o><;e(K)I4)7*wINq z?JSp%%N61hg{q=@&{K;Lzo#2c9=9?Gmfo+C@8j0dT~A)Tx30hh`^U=x=Ekt&c2&0w zxS0hJs?SEBgxTPVQMt2$J!w^iAQn5bGn8reoAkj6!Z0bvo=lS*@mGj|2%u~o zmoi>=8118MH%=3Q!p~8wM(LnI3$&(l&nzR*Q5!Qk&AWzK=`kF2_&%mEf-#)<%rz^t zBB9;(&Dwy&-Pq3=(_0@%wGO z+SazUhoD-XxIx|XU*1oM{YDVYFVd#Su5UB}!?!ZpAf5>+*fpZj5A_sps7G?^>Z@hi z27Jgzps)XfKXFG+DLp0S&e{29nREE*^}9-~Ld6Tu6@NVkI43VJ`I{?ox&+>`!0%dx zofVi(ZNADMUo=qc?d2X0&;$f|8t^zAV2_l-ezSu<3^S4U8MtCqsq zB_HO_aq1b$Oy#VU_`c@vRU;Z9?g7!5N7UpWO)BtiSYC-p<>_0HX<}a|`>jIg!Y^2^ zpY&G!stB&P9Hu+F&*^I%+c_G(!e4SJV=DuX;R&Ibb?5OWRM!0+lJwg;!7^}xHOxOt z?C57rtnVj+E*s@yn>OH_`_DfOmDVs#zU?}w0O9^gGRDe5p}332kwd4Eslvitw&))} z2*90x*S(rP3f2bUE?f5Gk1FE+nzFLXqm*-fP0=F7>33y4pUdSF`)d^Bmhp4rQg3Vh%MMA~}+ zK|$y8UB~ZqbUN#J@GJFB^6#I?`5-Lhy#k)*PM22uBrXm)L^?__`$-IH#Saukg<*OXLI40Lbzr zR_aDJQ;;e*z>cp&NFw?1|D3|$<-Mv$phqn8luRG$5uxazTKp) z4C$H5IzmX|uK@M=FgN&oRWv+3@!B_Y0pSffd6INT)e5yKNB!*X`dM<}vpvN{3Pkv|G?u1nK#`0oWk#_LiG~QDM+K^mhd_Z;j*@#AdAVa1!ZEymPYAf?~;1F{t^jpd$=jp2V6h_ zPJ^b+uA6s1Du_5x7Dv!QB3@M#OJWIRUv7hTsQLN)aWIOU6goG`DH3bsx z-|P;*zbTn3rdX-6=*_~Tdj4&wA{4Mm`~=+E3U6qvZEckr-cKo#(*25yj-?oMVy6sB zbNubc6+ucQ&Nh*P+*DNHdHwH*UL@goZ%IjI6jaKKSz5ifpk^am#c3kti@zwd+*T#U zuk?kpw!C(`0j3kTU9$Foc!apuaX#i=%5g{|BCJK3=i-i+11x__d-Ocbe=q+wT#axr z&#&>@6v9>CX`(e!Bf&p>vo-zi1A3s`FUR*yU(LuDf0y93s2xU`5->CFh^Aze!uST5 zu`hkb)PvtQ%he(H1L+&twPNQE>P1XN%?ilNy+WBE5?6zB36}$^K#<=tpU|!me=IJD zI}`47G=J`4T&@b1X-r<>KncZ%jzxqp0O!zH1YXGkzBU=ns1JM zMV_ov<_td)0g71HM4?i-iwBs4=CaX{Wwm!IZ{OcCjwS@o;~wPUc#gnc5+w*_9j_? zt0iXV_xF@-HM^Oz%x{8rz*!h(B?b~TSdB@NJI2n=j^+9nE}_&NRG-IFIvyslYsh+9 zB&az~D;NexJimPe_EA1&W2NuD!TQYJzGe2&n=c*^#$Mr@Y_+W{^@M0-JSUcv@WDpu zSeq+GlXu=_vg1-FJ4IxK(IM)ej#nyM*&{?M%)xxno4*m#Kqu zA}kah`>>YGq<^cA^%Pze9Bf?S)^xAr>DD-WzmpMuR#6BhG!n z_ml6;?PjQOhX#A|>t0i&HuRGd5o!gIa$w&Ph902epbG0oNmk%>xNTl!hYp$-eMxx3 z5a@FF3rD)aO`;}uZ=B7W`-Ztv5oZ0>Ch2_`>987wCA~}~k7t2zNtCji1k|O_*0Mjj z@i>8iASSRdBXCu>n0AsPs4xwKNPzy#syivvUKD5NLwNZ2m<;q^$6+P7V!*PZgkH>J zWE${UWdXbGb|8~HV#$8njpqlkOMe0^u3X~#fD3yrPC8=bU9Ap6;s$Wpk(0df)=0;v zJ32AWVSdxX?1v4?l!Rm$n!iQ~12JLwNrXWSaR>jKQ-gd`I1d!N=|<-p)Uw#1X8Di< zuNvW%TUKma%;+B}eHt2%z!?{Az@YUF5CJm*rygub*mZEasWS`{lLaX!amhV?f<`E{ zm-cNTQ1<(`-@KPRlcKslVBd~E5eVUSsFp^oVuFRlxOkzcA%T4i&s0nAT@m07_R!xl z1Wb&w>tG3Dvdlh_C6HI?#m<`QBqGNjEBwU&z>^{0^xI#fGNxXnX)*y_38%#MYJgwn zF!`Jv7FOn8wjEXWFkkF7oYR$k?#1D=9x=ZGy*@paiWQBASMgF!N}Z4RN+7T+vT}|S zl5y_8(aC9GzM=lqLlk|dl;5L-6HOcKXM1vRwOBHzbaYTPFK0f8qP>5I1XUX?cI1WC z1{JkpS)KU?wxHt3$Nb0NYB?N$r=EOlb+MV=Wn-H_#A{p353o8S_s=wryCaUG-genn z-kU^1fe2Y#9WFWRzJ4CWm|uscyf2CsQbT5?tXRPao)pGr;N#0>etoK^Y?@aJd-GSD zQ5sL-tpmvphO8o~b%czW8JdMEW*b)vnScXzl7(3%DTK9B*5g#$x`a!<#R?tH z0Zx5@%O2cO`bsgf9Q?`naxA}B*Wu|F*9J`e)l81Z+vGs~4r=JrjE z;o2_5OuWCI90pE^kX4Lub8yT99xh!A%mg16JM+rZ7wu}yZV}-(hC1Y%dVjtk;4IJP zeSI$b3tmale?{_+{XJU`wA#6~=d+nG+2$9*4|ElhUf^%cM@XDR-WrK>@y?s)*^@Bb z7on2@TnOS}ntXiPk2FpyX}p2R-VDd_aS29q_~w);DObW0<-G2Cz3$qPACO9iK1OHy z<((ClILlvePEfH{HbOYzT!i}d&ayuh(Sx^zDU&)3WVXmsq-WmoHe{uJ>?m7IM-Pzs zwtB6K0$DgkyI%17rhGR88U%M(w9=qJ)=Ix5cC>?k9=f8LFRJ%!_9AJ=Uhz9+qyB9a z<#Q@!#87mu$BA9E?jMXJi(T%@0tqUX3t9C&L;cCC9_FH{K_lspSpv@^+=0qP5d1Y; zp(Axe(I=$f0-O3Cyh!3Pw|CH)&1%Ws9OhLoG`g*(_#^g2PCy8g2*S^9RSW6|G0;De z;$@h`{18fr7X;_n!ANq|R3K%R-<3{N-_EV+k4aC;ZNZ!WZq)ym3&CnF`cx+IgF%># z0WZ@+J;wc{ZegQ6k-$N1qJs}H){>J_g1Xg2;gsD(vB=rA$z1b+5zQm7=GzVOo3EDm zO8w}@5595YrjFffX-fmadXlA{!jYXNznYU(^MTq$tKwO#=g=Z5&_+ zjfzJL=_c$|iBO~eCONfm<#}iHthKhGl@tp>5V7&}y_9Y{nytTE4f~E89 zFU6{!p-I2+-k{e`?hqb1;@nR$x@^0@HqJC^Y-?LI*4FMJlQ83vdOO|WsS@Gr_}%ZY z=H{ewqMzjBweBTx8b|Y;HvI|tYOu&-1yXA8){f+7=X3O*?|JH|7Ad)vJ}E|gcZu{J z2k)H?RgJ0>m3!mvWRq1Z!~ zbLOA!-ZM%AmL9AX2*l`Y!)m?&VLy7t*hH|>oCl}$_eX|io%{E}Y)SLeEAh`#kkkK* zrn8ERs_mlq%rJBgE!`nVNcRv!H%d2%C@I|x-65c$NQ#6sNOyxEE!`m9-F)Z0_-@YC z{O0O;&e?nIwf>v#zqizT`J)#k^bx0#&5ydQRdugTXSoq@^FdSdbegDTv;Ma|qZyyE z$SiP-*YtRT$!jA#Oak6=pRG+FMGipe`wS)R*d_ih;S zx|Cuv>M~m_Bw3S3xc4Y52O!tqJ{Aw5T_5taiX1!flEJ4?nlCOXy)ORx%Rm8JhXxK2 z7EAa~x%TKcz83LqWQ@0)KjlCPlsx?$&;SwGiUu!Kfy9piE)xkt017hmb-fc-6Jc%i zHYnji+mm6Uj99=%f9iXi-Sf=Sw~UtNGJ^?;1am_Q|2w?u!e z+sKW)i(dxtp35o704cxkKHZWp-F73fIYCV}|4u$6vc&WqMeNg@cpc~x^ zC#5p7cw0XeQjMu}vR+3p4pf(hMkoBe$2qI6*HB**^FFm!aU64PT1*u(Yx`N}IqIC5 zc=S|EI2n|cy|8w#ocY*X#r%gT#fout@RR5p;RNjKoDJXo2NxmJxqAqUI3Hi9K-`CyqolhP+G&XCe3u0(voTz1U$ z8z$oS)SiLN^gW{Tzugdc{)@j{B#)>n zk6noxYoeB}Ks8@*d<$aPuSK^kz$G&M0ENTQuvqM`tnLLVdmRO=?nya%H@=X-DwbkD z+Tk(~@;F8jJ*(@pn)+Js;lA&?u-mmSGs$r|%JqKr$T2YDB%*D7;#%^KVOV*c5B|?v zeCK$ZN<6!yVl$q``tiL#731AM3)@Y3oIeX2MBv>*I9ueeAS@IV%^Eh%UEEie?RQ@T ziYWcIDUssbf_m}9SfD`q?`d``D%?D{m8R0aMbFg?808sa#`=q5M#a2ov^lvu$ghNb zJQ~rd=VQZOOX1e3eGQA-dyIN8`=)0@Rv1|NvUG(y%6L_8pLvgiFOXPUXptuddB>booXu<}Nfq2Q=^Qcv7h>5<7Bl@zQ#fgL)XuJ`ZkZ>dj? z=4xgvKjTY0zt8olWiN4&xBlP1TBFf73 zf857i^utn@OV*Rs(UVs%jj>@XS$o-N*vY5?;TVZWB(LAEiq8`RJ>C|Lgpb<_rBm|< zY&&en`ql8guYwK~RyBs-MOF%dYF#UoQ*vV;l21T|r{JE@$7s{up8`e%8K*EIz^wi1 zUtaboJjT)-v)N&>L4d%d0PNTm0V=ruxZjYO8p>_-pm=|N{|t47HYR_1uR*!a6L8>A z<}5KycXIiPmp}29ZNE>-D>qL5w|2`Jq>xSU=K6X=Pyc%E{X)yWH2IMtsq2MNf@4B_ zou|SG`fTP~Sj)9iHK*d&w+fy1*o0e#-5U}QG8{>y>4@S?E!7E~_EPUq?(U<5Hr7c- zcg!ck3_AR_B;Ljjq6-3y7Dw~Fd<)8a4uBOq_qk#_Dd1)fxNVdhzcBU@O-@-|N6*udK#$=!NOK^u6_D|x+w(tI`C$g~0^_4J&1A#c?`=lJ$L z0&>8JX+n;{UW*L8qoU-`>)>GNxDErX6#n40{A`9=ENB5yN?E8HdD>T2=c03&H$`Ei zi`Y3UFKk~$Va)#ScMJ_E`@5Z0rL3y8pVeqAhg)UrYOdr(wK%7Sh)D0t)!T|ndl^8# zIXn{=*!*O6UubQmsfocu^n8o-TFKBq^`}q0BHLPybiY$bY0Bm2xSs z>ddcs<=>jQA9}GL+$XKPWaFN29B7X0A0R0}xN|jEzuOQw{dj?A<7k4Eyuy=CU&?US z$@1716#*|Ejdk7IW2y4#B=QdeHVxJnRkt!X5&#ast^xDIAZMh>ds2mm=VF9<2G8yP z=uBU@vXn8Ns*juV6*Ir*k3|1nq8;VtOO&S|;XKWR}))=E;1FR|> zz7W8+FVTE9W#skncUq1KnF0RB=v=g?LG?_=110Nz-8XHG)!bGv0$Pei2u?54hbms@ zqVA+~tXwfeh(qT>5)aH(tY~gU&PJDOl#p7%ob#gAGrBo-uFO>#RPTS0?@Vp2j!K1g zXC{x`e3q`DU^O4FFQ{;S^k{xMlny0FaW>E;Ia#NWhfE&DA&<&`vL@D;xLjdPU@YW& z0m%Vh12bo!wVYmCV;bf%@1VEC*0)Q{%;ai>&3tO-f{Lc^KTp1}vDZln3y*!pM-A5` z5dNu%YP*Ac&HyF`6QhWmRa%B|iHaJAJ}5nw>|c?(M}BGo4J}l8HaI1j@6BY5N6{xNvnYwK9*WIVos{A5l47wyusC!uR@TcIM3#^qG#10NTY z#2$PN+h+T%f%&($Ar?WX;ixQ3FZeO>vmi)>FXkYQvZ7R9Z0Kvj?($!ejHpNp+#aMf zXWyz8+eO)z-CoFsRq1^(HI8xhb=M;^-&UOZ&i@ zwC27j_NLb}Iv@874$rOTxSH@=w>S8-CT6gEgv8XPX_l6o{_m=Zo z?mw64WlasO{PGFaEGHT6b;vq<4KiF>?HPN4u6$x7;=F)EuREbwI>`T=}`G zT+XbKh`|On^$YLvc?`E`Nwrd(6U7;sL#`TllV>*ERPk_HO)ys=%x&jvXd%#`)N>Bm zu;4BZVz3^B9*qs!T#YG59W?W41^tTMIWq|9MLmJuVCf-U8{>-onSQVVZm+WuADWjL z*z=-PVf}L(4q|yJVWp$3w70cod2O(K_}cHQxh1~fm%CKjRCmzyOKRuRq4kqyAUw%) z1vq_C;;BRk_1XgbYuTr4XDaBo$mD##qmJ#%t(XGA9u_&b!v&Gx&Xpi^8Uoih)~pn$ zV6|Gn-{X-nu`~JO$B!Lju2e1of!F`V^cSZ}jZlG*E)$&{iat?$^OIe9OFmHQEYp5x zfpgughDu?9H;pG{1FUf$Fw|LBP>Hq!L1^m zAd$PNm9p7D#5kLn??hnf_9#fusqcB(+pD$vz;~#=_oQjlw?eOMtciwS01e8=^lxJ;}!|@+}GI0}YnHxL6P<=~gQonot4e|D?zGykS zz-cS-_8n8|e^l z`2$rvnZN$G>mICkJQjLYNd@H)rjue+rKehn0ZCONXEYhaZAZOT0d-y58W~u}Owejq zmm}X^aCJ(YkHwM4(y|P5eR`YM(VeijoX31koa3d_UOd@n$?!nxIWuW!^Ud6zB<%RG z>B#itpRmXEI(fo>;kg=9Q%~;^Jzzks^R0uX$$Z=tt2nC36PaMot%GTLUb1edYDW^pjhNO6^W`GAXAU}e> zJZ*8uTLkL5oRS&p>w8W7^Lf%UD>WOK#@O!B8(PNc%9VH%L9;ymBUf!CB!qd{;;(N* zy~C0TkA{1;_t9rt-U<>?^}}dWdr>(el}D&857DyT z_f{S#1Cq9DnOGe$?ta)FuT(tl^N#RO-rCoo!RdXA@n`4l!5B2?*yw4b<0LdQ3MPKcmFiBFgdpnc+Du?_srP_!`%{mUl&nUCy95Z#jw` z&b+x;Ez{et_iuV_J|~EM=rtQ$l>Q23E0F3UpW5@%?8sJoA9|CrS{gil_=rmug# z`lMXeY%S)&>{_nf$f<>K6XL8)hiKO`^CwwbE8f@~@u_8?s~x0^ea27w{kE*Pa9=!j z$dtRgy?-g43!CA6cJIIFh~MLw#5m84UKNEjKi|WKOkf(7k+)9u@S}DtqIDp`s^;mk z-N#~=q9rZ;SEYvi|MnSb|Ve@FS^g;NLawx37PAzi9zu4*}J1 zn{(5m7+?|ch9mkAIWvEvC#1fYDO(!fFbj)qG?Jn$}JUw-A6EGg~p z4tY1nhCKDMAE{#?Oi2yc@vzv@_L9$D>C+!YkVJqyC=Zl<1!NAR%;Z7jra2%W^vE#( zz!hkJR6_ukW;uI!vlQIIkP>Yyd3GIvg};8Z+#LSaHLLIXEo<&sHjSmPX*w)p^djDC zo3^@xmk+o13)a{knd|E^-0&YBypa(o-btjC2(PR`H}bW&^jVM}Qf7+q~e{F`5H*s*Ba+p-;AYw8LCzlU!qE=*DvBLbDl2Hg$Z#zUD zm3)&>2olTjgXSL(vDzp7Q}L4?sqd0doTnw8il-!XpGnk+;DU2KdI!cPF0R;roY=Tn5Gm2Hdj)B@RmS&E|aY{SSg`U@E|2{0=Oc z^S)VN58NvCDwfOP&T1j?2e}yCG&iISjscjbQ`wd;rjkPZP%yI*;hZdA%OJ(AS9Ud!oFrJ`KUX$$LI%_usc=q%A95bty7 zUE-)e*5kMfDCuD0r2WC}WA(iR)xBQP_56S@Uk|7!2w4ZJv}B^IcUaw8Y$+FPBv585 z9By0r)dfUb6QrD1Koc0#J8q(5x#R#_tE*F%lp2_mg~X*P13p~XH{HQp*v_zwFty)RT z!rbe8HI^`<=FQ~3dGsm3uXf{^pOyPgkIHrJj(3YcxB;PYxnKPJ<{`^2NJN2s(@NOv zawB=)p+TPegad=7bDd+dxVsuCYRpel^Jv9Y+NuV82xsSI?8mUb*3ka$!e_bD$OjW`bG2lFKS-o-!-%wP@z-((c$5yuF8 z&!ejKLz7_;Jsh@@fR@H9G99aA7nfGgGR6TRiSsS(_}ZYARi9zJObjL`j!lk3jQ_@ff!TTPVZDc zt`T!^(ThqZM>W9->A*71n54$hO)9}mL2UGgn3{-G?Rk&o1Kl>q`9)IYnDB+=3-Q1& zZE>LFG|SQpFjz!uUh> zk$@o_hOPbWh}d}=triXEO-Q&lF&cix7m>sm^u13Zqa|#=UA~4jv!Dcf6BiLAMuEUN z0R`+b$&71n>9Ahsx}r`QL)Xj*V2SaO?Xnmri>R~*hPD!*M){>T$ZMqXDR7>$(M}0=3Gsd-m{x=MXIf&DMq+&SU z(#Dyf(^5%))+wDdUiaV^43Hxiav_yqB=A&KH87HZuIVWbpTe8=NlFHa@w7AgZD0On z-W5DCqc3msA(Hl(&vC6QotA#fMbc(J110MwXq!Y3B++$ep*U_^|HIZ?e+zp;H*nk2 z;JV4rvRl^Uv_|1RTfKU;R&utFHN>|&E@6MQiTVm@6wVr^dgx2@7UG_=!g4i`Cu!9* zsDG4n=Lez98C*I_UK^=78Q>$!m9=+M6EURuvJ)TI;%mg}x1%Jr5gQi9aVVKmK^PMm zY03MMSu(OVg#X2e;pDTm-~I=LW~&jH|DX*cl6vPmDXr&nW(URnDHJi0d4^I<)A~w3 zYmXCirAm7>f;aNa);TP7Gf-XMA24#Bo>?PIhk`|=IDe8@!YV6z$zp!`S62M)w9MBJ zLq21FBR|B=Yi`QR2-(aSvvACzsXh}(%ls~Xs>H4O$EEAl8b$pwwT>r+MXWD%M3vy` z=>@je(Hir&z&+|ofp4-V4k$l=zSq>z17?W(QJ`Ci!O#&+SVh2V($0q|I^JDjLWZg* zILtgOi+5$<>4+Nwr9m}5348@>H^J0LfGS0~NMk@s`h-#maJ4vnS;l3zuTccMbpRkn z47PHHhO^s4&iDSg=@BhzjUHhVi&Jmqxnc9&=JJO-vX$ZT{pB0~&*(UoFuEE|hj`F+ zLNw^{7U|0`X?tIFBF)$!uYdhl&+Ow(usQ%`^$Rv;tZ!(5^~t)#jphScKeuD&LSx^p zK}W=?e9*F`;O)Naz@#MmT5YiVWKyT2@S9(`1aX6_$yP}<$Np!rZWtQ%$=qrK)%pLT z0D8z|vmcsKhX|GG2Quhp%5`KSnRko}Q(5+QGP@t1fo0~edX+T&otRK8ypsosx3%9V zTggaWwJcbBTBkbsN{7iN?EK%b`aD{5v!DJN#WuQBMzl^1@s$rNgrD=bRrCtxjdFjs zu&FfHs=@#K>dySb4};!LEFx0fYjcaDk5$>-$eSL+JmOt8S8TVmPv1LYb(Ycs#!)8J zy)1X>om3Z#6wZzDhZLz}umioZom%ejhBKui=E8kmO;2Sv|0FyzX>RxP6eR%Pd$jx0 zN%{z6pesg-OC#Wxa$uIQe=*seaOC+qQJ2esWw{F7E_rBGD6w{lUF3~NMN96sqN?*W zwzeyy5l76_-<}EL9f9B%DY3DUpcT`>_0M0Bd74=hL!W~1iRx5C<>labmcisij7iz# zFy~lI)ha6a$bX=FocU~5qoA>nx9b;@C!@Z95Wn~Nt>2n-v(hdRn$h!rh>99|O3|zO z6y5p|8>-O2S-}j+ndTsuwGs}u{QwXx5L z%lRmK5?#a?&Wzi)@~ms6MIC?r5VU=HJ4V#HXNqf#zsGZ0K~c8zzBNu`?zXw-@Pm`j z&n*kjlN-TSICK;enDpiM7Ry-}hQ{TB4~@j^S&u2V`XEuZTY`q(i8TY93zWj(DpG$g zPMFLQs`AIG!f*!*fh^o6!{+4;TVjznyzWcYhn26ht8K;5_n3XoWqr0lRJu`#;#(ys zIsZGA)SCgMXi?`~pb;Y(aZ#2jJK6dcyX|<`bgEU4?KUrQKA8A+k^-+fmiaGBp6-pg z5^&7cT!>_gp2aA~>g$(u1v9)LC4SF#2E4M858|E`h6|($>JU6HSoAuUJNrDeSZgEcXPkETx*qCjJ9 z24N8uR&>O8fED8VyJ&#RZgL)mO@@}J-f_IzHD3czflUBw*EWd^aIEGp0W6yuVE?o2 zYq#Z38qNF6#27L3Eb&$e@2_zojmV8_F47Gp5`#_;S{p5exp}990M!xpALzK4iQjZ3 zD*cYYryX{uTIIO0V|-#e6v~Nev1+`lfVGV_-OKweT}voSNOkZ!(tYBZCcQFsnNU+c-vju@Wt^BSKMbJ*1Y@K=K5Ht8u|4j91i$O{Wdd~baJ*` z@2=M%<*NlJVKjGnGb*K?N-A0Vt1+sckv(N}q^a$t3j>$O0}_(+OIwByGTi=>&-Ez2 z4CYiMXj~qP$Z>cpPuwJV0AIQW3yF6h$+X^QH(g@>&~|A|aH){rpydCEAu;gTL^toN_59Hg!c|FP6v{2Z?9=j~Yq+VXLIdlHSOF ze{C|~d}8@Mj`jW1OCoKRIDPHho?He2QW75>(hXlL$68jK%=7MZRUuWW!zgz21)et% z=to)jgDFoVqoY?Yxsj0slKhJp@?-Dh5yawW0LqL}HmMrHkhp?MML=een7CJ;~ zU~b7IH*l*D8^HSRHIo=-q+q?gDW$OS8a_odkS_!4{KJg1A@D=#eK(xg7I;&7AwwMU+#{Vf!1`RKj$742-aw z;4?KfHK+e9Ig%nGA{miR!2dMg?iRbXW&_x;1OPr&gNupxE;%htF&xk6BMSd)A!EKz z_h{rEULyK4ekK_tv2RjDh5MfFU%=D(3V??cj0FC~SlI+Cj;5(4=4MoCQs zW!UD+Ps_K{z1@i~)$gp8685(PuT~W7hZj*EV&TpE6GRg05f;bd+}m}iUB2n4w-1lU zOIG1`lGO6Fqvq%I+?y#`j@k9p0xxOq_ERK3Ofe#|nkKdmPnCjLU-)l+X{aNsc`&G- z6n_^PKlwppx4G|Nb#VNwKGOKo5%?il?VVBw{?G((>HP%S<*O0WK&8s9XmO%1#s3^U z1`IR%9rf0lSzp}B5Yg-?(|A^q$zZie5Hc}+rbH;}oaV8S1fWSUH;lu-sB^lKB$5R% zjtsqLwE3GxOi!C`@@50Ot>&6iF0qr_+M=|BE9QN7-W0_F1NS`|?_YV?;7^>CAD?_m z3i-_qL||aFywAH8zw~2z-ZobhjwX|V&s>^$w(`hq-uP(268%Q0lj{;Xe!W=Yk-LIx zU0^m}EO~#EScW%&<)DdsNHeG9`~wpO2IS2EChg~1ec$?&^M z=5Z2uRe1bt3Bz&YL$su*by%F*GbMT^+pOGrb2cu z>d;70)O~@ji(d3NW~s;P_0AEgr-g{fV1O_AG4h{>HBk@-N>!$!C|aHokK6X>6i~hA znFIrrG)-xED5$7zfzO)&28V)znjdv&fKu#VIkaDtjtpJZ2CQheUbh^;7>}%KBL4T9 z@Q^!Djow(ZiobF;UcFnr6HpHZ6!w6hIjs( z-P}rJR_h9!7OSo4{`&$MAMn(@4-Wj2E zAM((fH*`Z!!kv(D0#auJ(ejJY#&Yv}>{~T>;nVXH!>=K`rz0mjeOK24h~eTD8UfBE zM)p~(tdqir;0RStD%#3@^3AhSOQdh2EccyXrZMCFaTop=lUgN^MbIGB`3_Jp#pR*W z0EoAUj*cq=I9QYVE;B3+@_#z?;Rkx zQ0(wzR%rbkyx?$)yDWK6np5;~oBaHF^Jlx&7E=wQd#hUC4)+AI#V${=eKmSSV7H^5 z7xh@Xm>PCDzmr!%@w4$?Lw7T;#gE*$u~;GXp%THbp!$n9lMG!GQjIYxQ!-=zMSy%WG#1j(m|{dW^;#I8W(G8 zN3j@+fHT)kF@P9GM*vD-f#3wDVJJQ%#DJ(tz#P9X@DT0aROO*VqH9q_V#d4<}Zp{V{%7Ap|!@(AorKiO1Ahp5Z?N5oJ z(-Ax%hLXP|upZucz?Sj9?AUK1Wi-nQvOpnR6=cB735uzFC(H8Qu57(mZDrV`*es|D zBQYB6$R~ZORZy}+J4Xg~^Eqe@CLp-Sve$#}T)l1D6pG}j2QGUfcia8Av8Lu|5wLYf zBN54D>0hEWz*f#5w!#Ct0RZQ)oPDM!J~8L1HZiuNy@lE z*6n9(YsoFrwGmD&%c-?jr7!&H$8)6$hB-UfI<>}FJ?~|{8lCIxsWE(>iuy2lXlC%% zp0xNqj^)pDeS@N|XqOkCKlxZ0RDLCa#A4{D9fYMMFQuif#?2~7@SatmlYj@(I)+j`nci6sU7;Vber^w>J{!OidNHQO~a$B^s4i2x;|VRrnW` zNcxZ$X^iP&K}U#bftoUqbHiD{KJ0;!#}Tdlb)G%(mQ+y;d@03sL?CQv@QQ|qbK}F( zXXOXnwca&bC5!=ra; zpPPxqJc-vcJX<^49vvLGT=V7gT-zT8nHD)%QWR}jRj~NpdYC)CHc6|py$kI8UiJzq zzP9e46n6}mfD{6NofrN}(F`!CY&Z@*O1MKm4$U(jre_ihuRDO!*9geXw)V8CmGlut%;EL`AlD;B0(=_;8dUb$sCU2hl949~ZwRP@eO8Hlk1Ye;U)v#!;bEt<@7j^{~1u^0py`x$Ka#df6_sO@tU zj3nS<4mbVRWj&{aPMq9h=I=fVk$_cBCtpE_Mov2yh)mNmHiMp__nPkxYrTT1n*0m< zIOoV#KG4^2CSYq@_&q-8KQ3bD$n$xIl};nt_C8;V{BEjSGuVF}&=qkL-8K2J7cnD@F7gcvQ|SRQzBNc)sJIPsh$V6^F63oNy{ZmIVIDLHa)V3@Dx=jUgO z2ALJ4o9Z>TrDes41l2pQ2JeplP&vQBhk*fovu18DcJZa?C zNyfl=scq&zoT5k@-Iw$t{G_Sa zL#y8|`tN2HjoFQj%YJREXxw%78*|93mhfv4G99ztyP)lCNRnj@(kJwhkohZw_zk7B zW+b;lSK}q?3b;+jh_d#7Ox(xp)>Hev*(Y(QAKd*T&arD>U8M^#nw*~eLSkTa#JC9UR2PE>%af>gO;D=fo{GfG(;dV12vWfKsi}$L6`SMwtUq~~! zS$2Ps5A-E7ViQ+-ps2@SO38j9%o*A^mWg)LT^SQ$l#z5jww=X@w@+}OC&Bs62h}xN zPeWRw3Ho>&Bgqv!`v1fm>Qcd9wNF!Ic3ZO(NQES0T>Qz)Q3~30gQmyRY1Yx&jJ$BB z{TjXc@V0%zol7P}*WzH8DuvXfPpZwXb5U$aN^STtO+4*}^an|g0vR~)T$T+(kv0B; zSNOj$xDtR6c;m!?)*lW|pWBlex>Jl}kwLnF6@`$*x1*z@%dC({5M39tn?CUj?Z5sb zCiu>hItFBU?uxENncv|{-|!?f#{Tp%qJ`%)GC~nbptwrLKnU&=f5QMLF5qB$G){~^ z4&|0ytnSI;xLv>m9$_pr%;_dK*_rj*5uef!i9`}F9)l-ZwztTv{ERzGOm}1^;T%U^x#{jA?Z?(P*uD`~j9M55?R_^MAgb!J4%3Nt*JMc#ABD0DScK9pUB6)x*}f$8=pp`{P#4a1ghztJbWpfok` z%}P7&*S#p=@EISaDyxr3{X(GoyVWc$S3$}V{_4v|8I803q72|#N7uR8YG7)wutUuJ zf2^q=9z@+`PI`DMlb}y5ZT<0rdSBIIN$5;64|pZn8oyJ{1nko3Uuc>b_P6Wk4Hn-X2VJnC81cQavtjb^EBLxWo%d7Q*XFd0j>> zX2ri&@KwvT76X7?)%#pf)PPBiI_A9jAwG4LiWE)g6Mb*Y4c*EL3pEm|6w07sBT?cn zEDhzr%p&5n1FHpyeyB|MyMS7X;^=0Qm#&}S-|&k(gGT7D3+tr!YSCnG zH46C9NM)aI4lDPq%Hn#R-ILY(Ca~*_zwmTqJ{j>5-~H4HIExdOn>@?Wr%C9-ZWle5 zU!$U-oiZSsKVyLl5Fi6BI<6o&heU5AFc_}`0uk=%2>=gUApInM+}7+RPpH^7=_JZ$ z>c`_56~b$MvNnEvo3*D%k^?Q?+x7P_dCTGCqSsuvRJmYDyV3Y#$t>>2;0_6k6SCPu zELE?R=r(O18divxT(J)t&D7DdCuE6Q$&(2gKtsXY;(xyYUXQv_V2Wk zeu|U?+(M0P#N%_Fw_e?0(IJ*B(Fc@Fb4FFLo4b-*LOQt@n^GAlo2@?Nk8)I&eGTGx zqyiR(IH%)8gFs5&n~ zs3VBmmm*M>);LMI^qI!iYY*pnvGPfeRBP^Xn|c(IWu+r*F6QbfBbO*9r4HVosm zok?t&>M5$%S(a+N$d%is4%3@DBt9jdwB)avh0?;_;?_fq;=CS%(XyIGa!x}o%jC(vJJ(IS^ zCUlx5>esl$cZ_&7LlId7W?bQRvqX6Xw^4+7h^!7aE0-Fjl-z>t7Bj}S<+?ZBU22Ch zb648Znv71%DjE;tIpXZ&(&Ae~UgzRfB+V3eJUu2($pY^3ustd|$(_9&_9dG1-8hEY zNz5@T*HZQF{O1CKue>b$zZA$py|iH!{C&wDDB3Uk%$LT-()^wIZT4w`^8R!s{&Hl> z&x;RA{XvAKJg#ZzjV2WEi1s+m}*kpQx*@!ypq19DK6rHz~youT2kHCqL+6Lj*Ruz?}F zWffH(y8jpM*`NOIs=!zH!)aY-#{DNKQb2k{Ud+tGYh=kJz^e#f_REIc2&s2jy=&qX zd*(57m|4*^UqOJ~SSl7W>Ypx*j`P%5wQK?cu$5TF59VV=|ApV?g)Nt15MY5XC6_Zn z1a)_~fr%KSPwKF2PeW*lt1@&O!LI;y4l|3?1lbo=GDE}>49GpSA*s!1kqF}=48?o~ zbK#`VaY)H}qS^z4*xz3X7aDt@U85XeR=M`tnrD%?rtB~z(OnzBfGe5cfd~H(@6< zl=E})(y_=7(#0d!1Ap!Nh7~FUWc;X#*~=U!Cr$33L!7}`lVqy<*p=!>)nO)85hJA= zA26^brS-RgVU`|R(vFP75W!t=pMCW-EcjNE;Z&otPLEiJrQ~s@` z5`H^<|B~;}VA^NY3VUAh>bFjl>2erH$Ioy)K4zW^{oO;@mkLGBn7$>fES+MrwEIMp z{+xeCKfgCz+o^2lzegh7M7_2P=20%vYMiMBX&>%lWwW0wOAJ26?U!6RKg_jVJ7JCU(k)9um%hUF zDWaS;zc&21(6+7U%VC02sk0HPJUN11DGT3an;=oKN$V5UkufnU9F}&%&MWP;-B0B0 zWX`A3Xef7~E#XM&01RO{aY!#busb9g^q}QLp773KlIN{0s{Z_wG6X61ki6qRU*ugf z8(*=)f!J1#4s>h4$DeIWrMEqDow)0)5zimR9`a;ry6)7Kr2S;17TuJvEim1v_kLF8 zW7b;FJD=#D%$Pr=XUXQPIh76WtqgKvw@GX!Klob^H31M#Ks*g8+xUAE`SI%!e;PtD z&O5Z&2S=X9@SJi;ym;?GR_~lbReU^HLx0(Pb5_3`9x}#q?zU{6WWECEYx4$-Bk^dA z9+T+^4AhQzL!#Q(loda;IS3#W_MB5|aWYON181GlI+^+b<3uqDO;*x#nRgnS;c z-IH;$yzU1COfP6dqt4{pxh?r6uQ#wve&k+dO$sA8A=g<33rZW3=57gnu_t#to_;Jg zeOTBnuK8M~Jqf;4cZ#aSTf_?=%^qWt` zROl}vco{@d_hpp4{a7x-$kIu12@z-5;o{EGE6zW5>PUH>l6A6fe_+eoRx-H~UZ?K$Q;7Cr z&Ei{yk@|}k7L4}l$^3WEAAeCuVXhS#?+lpoa@GB2NErO|?bw00d`d62KdlcPdzX^| zsDcs=w>YGY&y}Jx3B0xHMt=LmkV}v0J-=7>y_N|@EZO9g3t8!e;J;C6ff{@y>&iF| z>oM&gu4aKXQIdO1Q5pyX_^z@slk$u7YIW=7JX~WkGKc=HOl;0FO6#u8^+YDqV zYS2m)rLy7jS?Uq7AVO9(9;Jh>RXI_Ve6G9qXYRSHwMXBoH?btYl84C(9o;~bnv!Wiwj~pfbLPg{&{zyLjltny7>kJh3{c`Ctru*n3 zeL9m6^DL_OHh?IJ!skYAFA0sYVI49}=dn4KXWSVRz&n$7_x|yI5W+2&_Cq z{f1jrh%}=1Q2P7JMS~0SE%2MaHLM+%j35vRfX;paq)e~9jg5^dinz^6fc%uG4i9fx zHn{FuqdBygivKdorP&o&{!CJV9F{G$iFx+HNk87ZD-{Dt^#1yd!72hCA09yjj(y+~ zJMJsn56hUEm@)pi$h8BifY3E|M@)OBvTuPRMklc|tCLacfP>_*2co!Y zW;jUCeLK!(;@c}0Z6kg`T2f|J>Do#5^+eJ0#Cs;WwPa;_07m*)D$asl@#4`3#r3xy zT>o0+ax%T531D*#$;!3IV@cGe+ExC?jq9PX7x~`P3&CBYV_3;!)wT99AJ7uw6yA?+ zxFd%pHhe*4xSZMn8>s5#1M&86oF@iRG zHq8&~jWeIpFcK{b>=LOyF|K$^7|~d) z%#S|s*lk&U_$^JPR@|;Yd*ANF7+G~GHw{Ue1zjrVJWF_`ms<9JFTiYqA2mD_uCA^= z_=!W0FeH0Q!spyp<@6)4s%P#HSi0Dh@qiWi*4$^-qMkKQzMlr0bH|W8!Kc%0CV~DO;WMkQjTfE3B5n*`gXLi+EUm_YJl~N#w5S+e3&!I}v zc*MuwcnE35c#@vI5MzWrf@8i>Hxd|i#VUX9VN=m1{K3%iF)~q}JLZ_X;#rSM9;a`bih!oX`B*5`yh^=i0FpFGCFJ6++8;f4+HESac6v_G1=& zLAPw@sq~HEPSf~L-4orJ?}&spD^gQmf99o-P^u3!(GjWq(8ARRIiyj^wILb~P6HXd{Cl9hE@Gt}#prLnJ zFwhu69;;^Ib=o-D;ye+ze^k1ueN?8TtLJ6j4{ox zFtZW98kvL*WfpiuAT3#;&bx|tr5xO+@&zA7581z*u%T`%9(aU#UIWr|=$>Np#V4J! zuaw!}$toL{*ksOm!#=eLT=-g5AL=J*8pZfJcNgDGv(r9 zhBI?#>`NMre-aj?%-7uMB2i(@yM2V>I0LMUBj=*1L*#nEu*almdsz~cEQw~k)$XAn zEltcO$2{l?18ih&*g0SL&^-`v_)?%g^c!g;NZKoj=MK(*(XBOTsrZ(jr5@vB5Guxn zL=Zd+#qIT2o`LKGw&@Wix+f5jQ#DTbwvTvb|=53&do-Rc+Iyor^ z!7{GDfHOdS&bLoyih=0!HL$duzc*l&Op@XRRLA?=jiA%x%c^g8Iu>XhQ%@J_b(XkB z`>hnA7#~mgwE&^t8qd1+>vJdbA#aqAs2tf2do0E%eParJzN&`BQ#;L#Jn{rMm z-;PU}loNYbm93l+s2MSBrIwn}ov)P#lW#YTV(L#kt(>SwZYIT15`c|)TKr|&Ib;kk zHsT3Ly))6MN5Xx0#~I3nGnTWfF+IQ5`Tlg0|Cm~JRU+N}h=%EIc{#OR(WEUK27-ab zqHCfV%y(dVoT9>nXCAmcB@VJY{$1uw<pofnaQvG$UeJ!_6Qetj$o5wQjwKD z_}nWCTYMj=&Oj-vV8Et6x~~T0$PdWH{qi$~*{l~_>I4@-U`_+E@P<`!U^ z4A=#_ikJ*F)1r|)rPUrWs1>Aq1}c{49-z1^ zzag(-N^)RL`hnD#4&DADyNoa2%q3f~K@#?mTL#vbTX5q8#g{{ECW;UQQ04)ZAY#I2 zO7C_y+1F)Uley`k!cgA3F|kZENmDyBx@$`B110{=RjX(?BA2mpT-9VUgVj(@C%C-a zx*B1o*z&(R*KefF%*$Jke!)~7|CkXA_$Rr?7LxK4vQiNm)EN;2_%upZeYkn+1+^t6yl7Upi1pqdDV5gCRK`G%4)^X2N_3>SQXxTdU2y*l zlZ?{86_9;INNzW{^cY;}z4^aGXEFv7gV2Cl1n5h=2{ZpdD-%Tdo5;P5ZNmlHX7=etNS&i(_IRq*v=-O9@1{4m+VDcrsh^0AmGd_`ff6VKQqYjfR(n`obvUvhMZdUXk?k@i74PCp2+g zy|BDFS{8llaFJ(OLK_?pz1U0%iqXdMmjg3a)+g}XR3hsl?Kh>!6*r1eEskk}hI~Cj zc;#MT6#Fb~Lqyh^3LBQRx-b6ICm!P6-(-fe9#W4$m7VZF6*b>#WAPvA6oh+m(&~lS zh8dP0 zs-bQy!*rgG-@?;&HgI-BIq(FW1)B=r%rld{L`zTGn42t*>bj z(B9hWZ&_<1+vG29n>DL!sAQP5SPKUYbqcW}QjoODh9xr3)Ic`^#p9&eB=Z{ zw4WH7W>UcdQu2fq!_i=5@>N=XKg-!*xu^_GO2J0i|FntkkHA}T@JpOYge^9*nYPph zca08H0d0sUkz9A<9+Q7d*A}nuhi-%Noi69hA4o?L!IC)j#jCV%Oym?*P><0@%pLgZ z?_%{w1c{W2n;0|ke{|$O2s~a95gybk1;abt);Sc9Q>F~7mqfXvx(;)WAOqr}o0>*6p+@NiQ37KD|< zJt44QVkKaYj|P{#Hp8heUw98{-RDL;!6F!!C@9Q7fq&?7V^$uqwkMvQ7aRs7;he*b zZH+k0naiY|A9HD`yRvAhzqFpeLo5%23*$U2IXU4SXphj7E`VVkS#-I+XRyK|siUD@ zQF<&o8>^;^t8F+To8wH8C3CaQVF+QZ2L3;~S?NVAM}7DH`C8v0#~B@^=v8?kByJn+ ztuQG_)H7BIEj;wIGQKA|q)!pd1POknq=iL=YK*+rN%h+@YGWZwz#q;i+&%4QH0C~zSJ@l-MQuS|h(n44u$;VL2}DIvqL%e3!ItmFaeZsw+WJ27ld z>_zjNU(P4&*^3|Tb7zaKWv_y2xg)O5q6VIg#Ba5Y2aiIHB@=SDF}v2cP|z8CL&@2C#Dc-oo@E9%g(^6GW0;FXI;)&O^#yi&pV( zB+5QHj}XEty9sCZR=|6h8xT3{&#S257jW*CWW1l&`{~JqUhXIB7+~eCBDw0SwLZ9E z=qz1Xe<|trhBWe6ta@kwM0nY+@m3f2aRYd1=sdaQT{un2abL9M7&P~&e4FeqN z9$mGHyIdd#N)c@Zq z(DMv9uZSQ;s@D38psbIQRUclA+D{f;XJ$G?mmSQ`+cbp%$H^b>&KQ?9PA zvPMIxmw{4{?x%l~C!L-r54(s+>$KgcDha&PE&eOagRqL{UWoEC?Rgj@h`Yxdh`_qS zK-9D(?8%{NO&a z`I5_7^m<7=*M$7koi91JVk9R|9>esRKkncb|KZ9P_~+3Rwj9iECZ)>GGDQ)YCEc5; z_8s{!li;Iw1rGL6Ze7@dl{OPdit))R3a}?&SPfCl{zdfbSdeu0lfpC}VIXem4n&heGy0lV4Vk6_##w%0(#2yzYzSp9OOd+*Q`s#lf&18LcZczoVM*@@tP3<1zI* zR|xCXH42&_rQX`KT`kW+vQ@0F44AxXVao(TeODmCso#$y?LuEz$v%mWCvoD!;Ru?i z{$VHvZd#7(|4~Y(=HVnnxhd;Ad2k?zP{A|vXEfinNgz^e5kb=!%}%8fUo+kdpB7075fS9Mt8HZwz85Z6-|`{2 zd~(Mi$fKpwuAIsC1RGRP+Z6iZP9tt14KMb|c^;PKqVnCMAQCD zDnJJ+k$}BLNFX*VKArc`QV(W02WtQz(r^`;B9?my--(RFf*|7<@NTSWDh5u7P%k^p z-W4Q|LJ+N?5$ORDoRk5Ec%1yYzCd{X2wyDeJHKh4M&=YUHNOMgLi-qS3-y(vz_&Yn?c3qhCwY3Sw?t%|r8=^| z@0#X|XJqGrhN#^kqIK7>>C-j5|}0^A|5! z(Hx0^ly%p(iFrsuh0kzLi0)P}{hm2z8!cS-4_?-}PP}*209IRSoyKwLP3PRA$hUZB zKNA(BJ4@Hj6dOa*!s`0s>Dps7BzFtOKt48YjRX3bOam-6yF7wfw%#59h1u{YW>{Jg zqik>0e*3{$E0XQenKQ@iqt`#BO72aQ9(nLaku%2*M`AMj@zT7IvkLZglsdb|X4(tx!&-)*)ICVac z6HMO5^%pq~)tl@n4$b# z;_onKiLyZW0@?>^pqhN+1)ft6It*i?Ak)r4;P~E)R8%4awRxk6i^A~1(ayr_ ze8$(Yf5%S-)2r6xd%2vLv2PF5a!Wumnj=@dm1O zEL7S5!cj7|qa*0U(<|Hs?K8>_dDNDKt301yYVxl=tA<7f&F(DuCAa%q39g~GNhan^ z7f%*o9hm#z#9o>ws}qKGq+3`U>w-BzFoz#>_`o?s|5=Kl+Vu;H-WjhAql-Gu`R(aK zn}tu3^{gNPpotyRTFYY$l%2TG=rM?O`yQK z$v|{duYl`R^MGpbhn$Z_-(qs1X(L4j^W8uSS z*0DeJFHy`(l*HkCT@mK98HIAI9K@fO-;5k<7AH4O#Ql!XFTi;#u_A6q{g~F<2E_|q zHj}4i1~FKDU9mHXmS zvXxPpgUOlP#*&oY1qm; zUIIW4Bx-6|9oQcYzoVsyMZr_RObb)zx^~{ay$Pp4eAr`Ow*e07u zc`{o!i2-pBKyI-exVtzJSo3Gb^cKVYsQuH%*En*6tz&E5c+K^3TW+n-YP7aGT8ICH z7xUF~7oN$L?mj@E%=<^-{KZ)cqr2AE@*sO zzc0C}<6Ow3`}ddQ#wDY7Lpoa|6OZh7tu~`5N}*{|rnMwWuf*xKTe60xsgOS{fpI^b zdh&RGn<{x_;`L(REN8hCj7A|XT9JRdk=FB|PFM=tvhe^XEJ~^0wN)3n6mg-CG1C%2 z#-ghr3NjvV_q;uLBu@k;8vc5d*KJ2xQd8BTja>YK zkXLii_Gl#1(W8(f?h*qa)*CB7bJ+++zVa^9p+Zib4(qq-ZEvI}{xi*NGZpyno9oy^ z?hf#2*f;&RpH5##>dvR+6c=bL9#=gN4aOvHBjPR6)Ql48mJfptmmCAR5N5K@FbF3A z;Bj%VUr=8ao6l-3<`EvXvXTH{dau*Xnl$5@;g@49&F34PgrR=Rk}i*pS%iVzQ~-me z!own>Y&JinGkupwb%2v`^ibc%M=1phKjDoCNOT51EeJ6Q2LDbnd7JnrxFjkx4nj=< zcRlvqX$PVIRE%Ox(xp}8M=udYRmYjlS+Q*Vc5o0Q&KGr{anHiKgyju}&9EpzCJUy!nIPY#{14EEQLJhB?(o@BwnL_=*(x$+-=ljw z{J>wy6;Fze;TGOr1^osp&Jjq<2;=E^SxXTOR!GZk@84n$X z;K{+EIG_@;8N|{t*5!4!emX*A?Eeq3o;*r@2DSXtq}wOU#UG?Zy?k!oB2ghNuap!E&frGssqd{8r$$$k;VMx_WPk&;T(+STYx+P zq0)3>nEkP8_sYKR)#(N>pi?xWpObx4VhVq)i!gFj5oNOz8JoT8;=G86(!gDIhd@QR z{WxN@+Wh=Ho3zjHYQV4j>D-r}p!51~6y=by__?r3Nk*6%jpJ&Q1kC-PH5fn#$~-Wz zKiYT;1qvoZOq3r532%0%Yfl;;9|omF*u+%=JBfVH6(jC-Xs8JR6MS8*$Z$;v2kqu8 z7%qupQhxX8%zsO{*Ft^6x4f=AJjnSY;6^Lb#MlG6=Ysf+YarA1a6x6OLtMML@DE3T zE4j7BBW@?BTRKhV0$L6vF{NZErdz)PGuw)YtXNMHvJ^W_m$oT0J1Q70M?+49KWAJG zcU$%}*k}f^=n6rZ`7lRf-V8N349T&q@{q>z`x{7CY$l0yRj$@tW8 zSRuw&c5n7w9fGujzoRkLc||L;VQWxZsyn_rmIuZ1k-OTyqVG96UROTf$;d#v5| z+e&~pCp>7Uu!(k)X7h+5a^c;f4ktYV^p*kVJPb*}?ELxE$MScj`-|GiJHwN>INva| zp?OOz24}r!cg)NObs=Wn+f4LW#@hiEqVnwl<3ZQk6r7LCnEkwOp4UesUu^uf<0H>H zf!e}w`_ukC&MQBvGqT`Y#1QR=mdX8%JB;2IWAKx_=sz)pH{cb^xVu5W1r#+roUPCq5o6mYKw` zk%IpUFycJm>I2^~wVC8Rl*}y$J)}L!U_^ZAE~#jP9W=f_*@-Ac)pH2#CMGjzih3?3 zyrMsVc!eL*hfw&*;sCd{wh)1dv>Jtlg;klE#F~h3%&H4<^H_vIX2<`dg(#+eUr;Dj zZ#hL+i~UAi62+FPwd)uK-4D(e5TTX%yFbp9xYG_@HtUFSmZTw)k4D{jm}ra{rrE-q488Wf32Oo{Ds#G(;JPRXyT zIn$tabOD{tiYT1Mrjp<2@Rduj_ZJY!*cm(3TF76OH1Ri4(fN5JyNfiEfmO$@ylv-? zt@zPN(zU*tAr)=htqTZJ2%EFQnplU?;q5`WQp5Mdm$e>+N$->?I48_#v ze0;yT({k1z^*b^pojH?%MiemywYt#|`bAM419`oBLYC^bsBKs6+%}WF4=Ih-_#~H6 zzwa5MQN_$_Cs&T%tDGyM-tLM%9{1cyv8> z0t4CV8EZItu3z=J8#aN_-;r}OXM$h1rrw2#=+n3ATlc5$g_kwMt-HE5SDk9l9TJzk zTV?fym%AvYn|dh6K8gG)_{d10FuAeY6<^FKjYogqNV=Tu<2OI0 zX*0;aFdbTZu~b&1y3o}7HpuUlEOSiC+{aCDNomqjs$WVA@OIZk*X&znm_LrXT7Pte zCEjNyMaG=Le;1g$9)H7x-(zYiiG<6W+MoaXByy4YSH8J~78cH^@!s8ADIAIUVW)hu zq1}(3I9^-Hrn_orsG5}LS$fh%6Wd@Bq}?4{ohOW4=Q}^`=Pey6q#b&(lYR)fP%Vs) zIfPVb)Xp@HT)I$^%5(v_ixbtXC1k*IwTZQ!<2i}J#}EAxZyH&JEFSR%a5@}b1;smy zm|Da=m$qh-|L^CzF|L z)_nukRL>#U-(JYha$hO;t6rnmcBsq^?MPD0<~ccODe#6=s5!Y%(Y89G-Uxp;rg1Su z>3Gu^;NV0jyzLNtZ2XLOP^WZ0X0Gi>hX{s@8*$O?>1Q}jsgyHAc(($X+&<* zdjuDca7_uIi>Fbk!HR^0^gD@n0O9ebKGu&A<%?bX;GP!NR8za?^c~z5|NmToCfu+U zGQMp-D<>tXD?utHf$i7}#y3&lwdmgKCmxU^jqV-ce61U~^QU0QS>gf}tia_*1Site zMat4hlQl+Oxuzc`%W71rur?Rzh_&s_{OV z*P{b7q!+)-d1UJ(TA<==NHKwI9vDj-U_ z|7L?8)Q;DiT{wUtH0|49?;8hM(cX`JZg~;VA%UAOnhI!ahTa{XAiPn~>)cffWvvM$ zuHGxf22$!1zLB|M!xOtKtle4g?)_)HtnL)hNy-0ej~94vCgv3IHTbI-{?-`P z#Kp+#yOHvZw9VAIiSsS(J@3~^bc07(-fvIO9}QlPMGPK}2)b{-^LF1}cywQHp$gm% zMA{%cbQcU?p)Jc|GK($PYChM33hYMGvt3_Q@BZ^+5_qKi_jhBoGW&A8$^j;0E0T~~ zIa;{Jb^Jp(zE<{g{e>Li(y>r5fzW)t*&|Mg(`uyj5#M&Kb6<%#06Uww4b~7sgaP0p zyYu|XE2VE`V);*vB|nEA3M@~PhJz7pa(f@*ebFBSPzFHd_)QLnK`hys(bCb693_z% zc|X4E8Iz@BaQ{F+LF1&@Prj^_@yq^q+tUNF0K&2Z=FhKHz_tx+*&#HHKh)HJ0FADj zMZUP~%}1fbQ7xG`0mMyajT~MEtrA!vtT-lni3C8O*L;N00Tj1^!>SI#AWL9o=FKpQ zOd%t&U|M5j5R#qp8hX|Ta(aTbYQpu!La`?PJnT^hcKA^72O&O%to07~PsN`FdyzS9 zZzgzga@tYh7SAUUrw4~cIlN~v^XJaW3bjHH7Lx|MNc8ssTnBWc&VOT4JzIodiFeV$ zEZgv)xa38oLY^$V=yt1(^tl-Aez)Hy5$V5%xOjN_c)v{=X<&#XR>`jaRipfWAOOcu zuqS2Q7r;E)N^TFZ_w!nE8ez!rC#yJwqC`+TGE-P&`?5JRsZLxXIAaSF2gpEawjorh zlvv_Mkut%XsaIM0R@>J5zcetdZwDp&O<+#zdE|8fu=11N)`oU@!J!?8i~O;MV#gMcXnljJ;l}byQ!Y5Q(VUj0GEFn*NA0#9^X&Erek2MMoDWtR;O* zM;j;p+Ok1MTNvvomeEY|0^dP6H7vfI(Oh!it%GoG6svS&KUQ)=$j z6A_TOw18sru}4hgqOOYbT-pdsRx{LmMZ#=Y9ZPvswQN!{etY_nwv|WD^yZ>1k5|1_ zzJ774t@YaR>*);M^9Q_}9PSlZq{#l_%I9?qziB^{vk&Y`7GtQ7M**(&e8jT$JN1WA zBn)Ci!W+uSmkcUd-A>Iwj$RffBe9J&n%}sc!_>z!`nAse>?{I z388qg4R4)}c(3&c<9M;tZ?C7zv!JDo_9=}%+o!tT>fxRmDUSAFTdAK031Hlc<%E{0 zsGpxVY4E%RP*D1Jka_hA1%KVx-}!omesSwOdA`b@es@s)zWddZ;G4fu=;W&hA(5yb z*_ppDj`Q<1*HpkiqJSC}(#xWQhs;#eXWNeg*HfAn zJw5~^`)pe_fBfX?0*GYaZ;TGiU9No6iL71STS?Ll^B7Y$Uo3QBSx-;6*S|3x_)kQq z(?{r(hxdOwxW_6%z7*I&*A?)2dzq8gWDe~;KudXIz>S_Ee_J;r^C!pQTWmUV;_*63 z9Z}KPMt6U#a04_J1-Z!lW$$Lq9(47;TJ?)#y{0RIJLsJ>en6)59mgEQmF`{@!N-}=J zCoum)V3rx=Tn;;Sv7u1PAw0oMG;w-6p*fBRX5~~upDsg-D-rmN?5nQ9mtvM^a+yu* zJMntLaK0mUwzVI$F~rVKYCHS7_n+a~-M#kH)BMMY_n;(##n5#Q~Vd)A*1&{Fp;~H)LEhqu3Ag{1|rK zX0vT4c+>>IU37#_FN)Y^zU&Pewq1k6Di<#GLP!l-N(Z1;>$e@kddpoB9tHm&NPLe- zPQb-EFQdbO1y(>A8~xhjFR8R7b2%`%6J$&k5~#KtdpP-IC6W8@gn4l>h#7L1Ow^Nu zJ&{I=3kP7~Eyo1vyzxgCdGxZ9g1Pb#04J+{>KHkW#wg%v zX=Tre(V|QsC{5P+7#l#Y&OONC(}a>78#%z$!p?Ic!YQ~*aJ48JpO>dn zIF?y{K2eb2-H?x-i_#|HeCtVU;SU@_G7foM(KgLqA~M(ZGa04C$k>-MmAv5j*F-0bJNYWgn5bi4azB`v7hHRg4d$|)TT+sk%K@qN5 zDrlI%z_#nYC{V`8;Rc@F0iEv)8m8cp`#*mCK0`(#8iL2-^oP6rr;9KP*i^uDu_PaA zLBm|e(=7ummv0S3Vz|6Ed9>eNi>^K0fP0?>QG*_<0Qvs9aoD{kU4Z=Mt?iBJ?Vi4# zcz&_2sHS`)nW6G!)yHLQ)$8w(6?eOIX#xM<#fZIN-Y<)Z-z+A&{`-eI-hB?_T7QO) zt@kE0f7W(wKgGq;G9F%!@oK0(5N;)0FgN!kSRZE^`CBZl=S$JrgBHX5 zzBKpqhROkWjKMZ8w=tw`>-q4HmurWbNI2xXw|-SWG0sT|<4DZC%$HVn9NhoOBM+Ow z%b0&167w)htI0zIj`7b2`V zpC8WtdIMb?F*bKnCuB$ziHXJ;JK!+&AD8$1O|74lky%chc@-H0_?Bv-2m$}6K7ebY zli>K3>nk1T#Y`KV#D*Yq?egLPhB?m>fVjJW%VL%0Te%8L#G!a{AQW|e3q}hP^g4YS z?hi)F@ASJp6%`1eaKUan=Z=WH9%yc6Qu=u_bmyQlyzh;mb-kM=OTApoRNst$7j7qr z%F#QFffw78q~X+mWhP>k-%8!Wlh^rLx+`rSXhf{8NZZiNgNYIA-|%oHbw$34BjV>V zQ1HTT_FubEyT`kPcgIBC!LfO6IMfnI2HYU+YYp&|n+Q%}hLd;8*km)_Cg~liRz{rV z>GAhphAkxa@;GeRW1ZX=Iv($VO*g~T42!7i4U)6Q%Q$tI2>2I8IGQaqPrOZhx_G~U zXx7}sulv^-a`&%WX?LF!dUwAQf~$jNG?B-?7^mmX0{vIzgQZsjcd`|nKPWvRY@sjg zUS~kfy$+8pC%-d84JqmR+lZ(N#LjO!hXeLI8#O9=*NSg02|QdhN=_)MFmdLL&d$_n z@Y?Ly3FzzLUrgEEeep7w$}|rZA8|#g+1I!K)?rsX-^p;Tw^-mbS=D@69GhkDHyR|A z#$GJb=vF7foQRof?>A}oP`_PK>Hn}yc&{RGhjIFc$b*YNsPOd;Cl~ubHKl6B<#jf6Vst`J5I%zl7eI+6sgDCbv&&N zHU7Kc0umO$8kZs_vsWHDt`k)Iy971kafRjSTJHUFk5nbsFW-f z;8dFZzU4BAq8tx*mzDF1z_gb03U4}fnfe3_#+d)!+nVOp7c@QD_tgHX&D6Jswe$Dn zk3oA&ep4R>?a4A-&J%C&4u3-O)o0R+WfeTXXO_siJnN10%j0gByoy+&=x*=ydW>br zM7u)&A@g0i;lS;Rw13KU1MeZrS99*WLse3-V?1cm;NK_#Eo5?wtTQ7*=Re+NGvt?v>7l<_5xq_4BZb3<(LLoeNxg) z->#Z#r2fKMJ6Ina^QkMxn^o&&>M9J=T%i2j0aXM%2Xj7A;pv6nnnFIFSVi+%u0V=& z3x_FItt(i`U2oc={6xv?#=J})?go>mYul8V%hS+0`jq?~S%p35FXrWbp1}*bZQ<5u z&0Piamus1y-ZZb7G{>RkU+9UW7=!jzyK@6{F87R1H`Mf=8-Kp;mbTXKe?b8o$=Ql( zUFlRas&Fm((h8xn=f5is3!~%D;&Wm?z1iTNFeO`02yVx^99n#znQJJsXJ#9orkA8}ho4X$X_fE-+<~yKGKMvek%g544{>n(>!o{Bb0mU8oRz^GmDP z^hof4ctNIImzDHjx!Cmbfro1*8JB9=Q7`r3=g~~N2U2$PqI6w6mLTh2)s1?#H+oC5 z<>^JftiyFj<3Xv)mof{^Ws0F?ojg1IZI zK4R->jt$R{4}zKbtsdpJk_4X|G=+a1$t~p#bZ;!@dOiM5ZmFYKeH0ojoN{T$AU{Qs z_3c-qb4wsqL?a$o=1BL=r-l_!efW+Ju_(t(OZfw&0fKN*YVe`ZKOys;cF>t|-8aa^ z;~)5wYnU&6UVrNuy>z6@dWE)M`w1*NpJ_<;I9S$~?XfkEU4@8jb0)`gb zukfyC-+SKn-wtE*d^&_CYTd7X5Qw%S5-?jW3=W5`IkwGo#4~$2^`#u<=A!}cu^~R* z-f}*^z6#N7@TA(>+GCWc@}OB9rcY%`oLgx14GlPBVG0DyT1wSZqbV{r+_wS#Wm_bAb&C-^#X}_lJEyP|BR)tlnpi!hzsh-CEDNgH+=9)64idN^F zoKtLTrSXY_k*=nm@d?#m53j@^<*(zf?DIq26}9W4(CDyIO#)6kew|>zKC6<)wP{2b zdy~vVr8q1&_yb+&Kc?N#$TU&>uTO`e3PET1mt&(C(v_RRC9f@;h~IfVFm6;T-;O&(X)d` z+Gm#KTU*aw!joafb(T9#G-xVg*WL*$w9jbSuCU&sI?>oC8VC~@9eF5G6oQNs&MOSr zHx)Cn5;h79jae|#ee$_|2g%IF2FWB+=Bj|eYiny7r>CcGBB}uR0Se@2zF1#-I};+d zVLJuUKiU2ul8hUztgI}nHLJA>t$t>w+bz}TN}FRnU9kc$N_z+P`xAA39)&M^a(55K zkr1q=&Z>>#f*7Q-xZX9grxrbOIH@=@9CKM)9Y8vTcuRXtrLVG=hWiV!B2Zd5cxoaF z#ouJ}RYx1m3(gH}z*O4r^oy&t6Q@`;);{p&?^_>#7yN@gH!N7tIfD_+E8f8Nwp5pd zhw&&4`Ak{=;vtU0FNmk;^W@yY-*-EJP^@^HwaQjumbb8y!a}S!*@rXrS?b5vnD)iL z8wCYf-+wB%^s#HJh0Pmz9N0L*R|V)C2z9q#aw#akQe;852Qp0yW2@ zKkods|1Q@@Rm0o{4RUnhq zRT53mMkR=jpeds2j=748y-4tat(#t|EjX9LRKg9Dt~1tdwq#;?86vOy^S_W#%fz67un zIZ-k^w}I!J-n#x9bxnBnSC@bdwzwansZwtig~1OLwWB*-3?*RaSqN92sf=N6hd9Ml zXuW3;m%S%rJ=YV5BGS!!=qBD&PQ3V!JEyKNIQ!Dm_&m8NI`AI0Nx+iX9P>S4Qisn7 z1~Z|Ar~)>Jph;9<3w{%KKxj&N+T3LIncZRcdJ9@1Sbx z+A8qa38kSWR1*~S z|9SMm;h83jWGAFlOdO3KeP~Ef;@vi1M@o2r&fDS|+P!Mkb)Mm(t6OSnz~g{D@zKSb zvvrtO#@%Va?FXm{qTm=lW~ZreTTf~H%;c2pMW^bYNN0}iYHzQQA~IR2H>E#5IZ>?9 zX(%d*kN;?!Oh7FIGW&>dm#SA!f3I29jR>mD|Ic~CH($CJf51N%?y!E59gEGyabY)k z;AjrMiluG-Nglr}CaP~Q?vm85B@?ocSCPjv|3Zd_o#3a=$HlI(4 zBmI`xmdi%?XL3$LRywwf*J8`LY6G)p^rP)J{Wq6W?@vpoH!V9UbPxZVJ7!F0F#2gp z*k7$dcOSZ)djPe-+;p@H`XK6^A)4_!nmcQ2E~eF2(`L0B?E&S@-h9ANnIO-CGj;y> z5%EHCnfM#KmP+wjti_5yJ-CJsS+;{}(BI&67IYmbK#Wes#F%m*IKt!knU2eca)=4NgU zL+HhZ^($`A(vd!7dkEE{liaePGxY`6ZQ8D>5I%>HJVyUVr7Bi=GKRAGMHs)&Tej?n zlU%vp`)_B&{g+Xv_0_DaYClb^xuf{P3~Noj>{sSxdGD*i4t>sV)dS zT(`*2AALNU^zk^7rQATGMdtGESB2N*?@9#whS|St$&4$&>uTUVl4> z>}lL7aW!%jmft61Gs+uMLbZwe`xASE$eu*6a{q1QCwj1dlTb$b7OF08`x7EH#@<_Mr1E25Q|4V#H*u!g8gxt9~a4;{X zP}vW_n(rmi?UgbYQf6ORvg!%;fq0f%bvoUImI@l>?NyB$(c9_oDy!sNHFaZ%m{mH| z)0s58Su7QqW_uYuKW^>WYFpwLtl#0Nymmkfg8h=wO!Ra}7^D>?;GAbFLeQS|n7~eYEY=*Q~={Rw9th11BPKx^aqW7pF$cMpT|@<{-$`u487LT7vcZ zuK$BU?M$KqVrsn*e`)%jkByq&6<=_I8@Dp@cK?r(8-{gGHTLInr~Qd=MqI$Dn77h@ z^Nhm2|Dt}BXQ_7plFG@>2RQrZr=QlwgadA(tf$jY`%mSGFBxIx2((>S$o;>bv8jC&%bH|fojkvW*&dn+BLHjMks;e^|| z%Jq%Zyjr!XJ7b8$reqUQZE0ZmPu+T*?v)GMBeA8NsuswQ&jk$Ju(v2Th#7eo(RUTl zA;dg3s#yp+^A~nR&hm&IVutQTFqRC|o_LSo&KteY5O9=Vh>9(DGY#G|>bqPx2+G0R z&7K((s(ELfn8iV&bT5{Jl2!T$H;xM`7(4i zf|WdKK5p>Q+t%slEq(lJUQovfg#EZXB3mk}5~sIot`1SI`^7_57JE0;+&?G>m&GOODAG{Lxd!{%Z07Wv-ka6MTvIg$ zbYdwl>y@b~I}b~p=HxU@DeVZb*NEr}KI#V0+o^5HcLerJsHMzm*>1t+Q@UWpB0V&! zt|hxShGs{k zLRJyZ$1o69S5bAb+0LDvMMU;L(ISdtuD3#+4fwM^37{*hAkP+!<}UgVetIcAb#GQ5 zf2Y!m7kuS;gKkO17eV|bCOB}3P(i>{GsayDP5sbRi=5FNe&?5e0W{ znMa22@Csw99C0|_7Hn#cOh>|14^<&g6Rg$+v&ATkyqpG`<8C@7K%R14Kh71HYryZCfo za*|NO2PYmS>0@uZcRx&B)|}rBq;VE9c+1|HxToRl(D`xF52hWeJ--FBtnh-^Lu z>%c$1E)^T5{#Ej{88Nm^Z4a8r^Ly7SOqjK?-z^Z(kMp~C&t|?|fR%Kyu;m*Fh&`<| zi3IHN{<1E)j_U38joq2+2cjS|_pN*GSp$Xbtv$<}BXN10Yl@^VtD2o>ApwRIdc=H^ z+I_&5tLjf3n!0v3?_|3gd@=QxQQP2!aldRQGly=xM|5`5ZQ{+9f^v3HHr*|#6Hr-Q zJ_rN8th@-k%~tp@`c7#L3@a zOC8z!4}8g^E8#a8A26^6p6h?lVN168E^t-J?IgUhv6)fLenZw$7ar_N(0k>zJtiQ; zM@cmtF&zBYy+^p*CEVioddeG80;Y%T)?POkYrt3B$Nf~UuIcpue2v5%RmiFL^kISW zgj7i%0>3|>$MZ9sSJ2~Glg(5{$2@kicvJmJK9-YoqrEPPvIET)kv|!{l8HrOlIYpYG0v>>s}a@2NL`IKPvY=ue&`Iqq_2qXI{a)4FM zrRmh)c!QUn;A7CP1S}9b;|W?I1MQ~-4GlO58!O*fE)D~FDX9jRcZPI$*`)0D?x^1Z zQ6whE-pvsPwq(R%m^BV*FVwAt%^?a{BfY2@6QI6yq3}gZt*9g>rBpMGxz699F;n0_ z#2&oMKFYhhC5_!N&Ccfy#n~+9sSeIQfg8O-LBkQ^D(gn>RuO)mCnnV3De|fcnk0Uc zl}c_e$_b#ifZbpK5FjnyFFakZ!bF>oo^PD+RDqsr>=~U^k_!rfzky1YtHH-g58BD37WsAZ7NcsVb>GgFHCk9{R_VYsHW&p0!WnOI5K9C8h>|hle+dmZS?rd7W|J8Y!#S5Dl%0#k$Ng7={e_Xh*Dqzo-(sdZ-$!_=U+i89 zkRZROhBc#YLhZ zO-=NI%*SK!zu)3Y>t_+m1E$`Tk0+ujS9xDO@-8)RcU8SN#Q0~htk zPO_+6Tvh-l*+*_JD{3QD2a+DIurSobiY)Ci^1tW@V^%iv%9n#RR32o~Jt^Y&QS4TDZzkhFI!06E-F*>CYkQ$u=(%lV`N+>b9 zLy>NflJ1ml5K#CC(kTt28=ifC=REt5KeofU&wah$*Y&zyLCFWX7qSyP)(?GM^?j!7 z9Whmlt3p8Ne&eoTe7I!jJhfEFOJ&*Zc2jNu8|DWaq&g77=G2@=4mz8J9Vs=kG2uZDmH6!yE3xjiT&A7BS^fN~utab?a&KX}f+@@-R!J|q9{(+BIvgSq zP6z1W^Sd27<$BuoI#hFvO9 zu?wqzc9)2s=PVWVXV3XTE->%)){p?V+dVw#q5_^=#aMbE zCCP4%tX7(p?B3y9-zAEnE7hgFN->m zpfAvpb3)VCt|UhJgj)l*t6c`4Kb!!s=_Iv$K)DWdndh}$w3pze4j+xc z?2L@j95J6(pA(+k?vH)rX)2PvMIAhC@AoCMx<&h3rr<0KnEa#M>CxT=ar&jqF>G6( zz1M@#Kn&Q*?}1@_zie+3agU_3T$tCzG-Boy=`8~2AqMp}(Rziu&M^3S9fW`=7XUiLY4eLuyzjgN?Oj6AS-E?pX#Hl2}GsKF0_OmMIhGjNu;XMQ5D~_+~rxSIh=> zO4v;=38xwRE18BNKb?5hDAn-I$GmcW~oug{Q zcaCaB{C|e-s`a4#Gs!Z1L;4ReHO05SXb@-cdV37R3(go<25I;V;mF%igyv*dLTxwB z;Q_`yIxgE^5Q9E~f{%kYV&3exT$vIO_?a{RFH;g{c%PE53)?pc)E&n9j^t$O=hkIY z%}D27f6gjnEB72)qUT+jjrv3O_gCm8|63ViB^?BlbF0c)DBXR)0zR?U)Ja@YNwVwD zXZn8rc{=uSEs?L33GCk?Rt^PEEPcTNuDakP?}V&45`$*F_X@U&nCJv^GJ8k}HXAMRQszx^K(?T;<%gLStnHLZ$52 zQ;GjZMagsXKCJmg;7kcD`33|Erg`JT96U^qng5>g_s66$%pRCXH5KR|U4BOIE;V|_ z1=UYoZU1$|;lDD}u88}M4mCFqC$e?as*or;O5+_Q_ms&@9sCl3l;DP{f2P;NKv*&kSgqIIL^C@tL z!1d81w&U7${J*|59@6Ila( zidxojvnc>KzSVyI{I;A3RqbTgXcre3W8NsLrT^pIWiihh>bjPuGVdvctqo?iJUnf% zNG!dlJaHZxnC?=;6-Wi}N;I+x_+;`jcGAVlC`=EucD~;}5H1TVwf*pJF=^pVvpQoBHDET_YpUWb64bpK!?BdwZoC zeu`Imqemea@u;3E8b5GOF+vL`Y@#3yp`h;rf@YjdxIbi_!dr)OzJL&JFUDtY97;1q- z;KC?oNwXAAxOlhLY6ZcI-_M_^euZcB-?w0C+e~k^-m{ngz)bTSUOEFu-wBSR8ruDG zF9xYrO6~9b0I-!x&C|JES^4gKCV+zu06f6H95rvLmaT~`%t+dT)^Wa@`VoH6`==b2jq}aKwr9J5y+Rw9zJ7F^#rDa!}nOg#Gv!_#Km=!j6?@#RU&^e_T*oRY8ysUKJS>Vp zQdOP4&P7P)yKb9}sFU>l#^^n6p&{r>L~VT=(|$uAP~*+)Sg!v?@6FfJr;@u%hu_Wg zmneMK>b{<0VUOS6G-&C1VcmBcdxud^WEl60#yz)3fQLHo5PKIZKp%iT z()V)PzzqR!WaGhaUPJ}$i*T0 z-ON9lo}?E}(`AmNudk~o^(C)v2IDl_fldN>cBv=Hg7ELt;^yyW7jtLL$AsUGsB!+S zpDOZ~H#MCPJsTCz3n9KI&bBF0>a5Yz)CvkA#vmq@A}UJYXx7m2SS`gm0qrN#Xy#<+ zJK13Vm&6NKdIzaOD*%D_cQ`sFMc460qGw-%z(y)i3k|XP8R>sGN-&XWorl^WI`4F!sON@JaKB}OG}C+?FATd%j5v8=bTEh0+Ll3H+J zYTbp%9W%@aMX38wCg!mHOj~Y@3iCjj%q`V;`S*1}r5oTM_8dTIUiw~rxM4Lmc*5ga z+Xv{q#r`C%m6-)uScDYGoU?T%o#j~k$+mrpk`%RKgW%;&N9s{Xp%Z9Tf4*%;Cn7tm z;`&!YtwIotq-aIw4?4r=S6|xDF~ZoHDm@>s(Z6|2T-};!B?Dns0iJvqgG>D^-~#xX z`D=thE8XRA)K<4M@Ful_U8-T^6Z&~JS>1?-==qU8pWm8Q3Bi44idit%C3Z3|?~s$& z=8=$f2=7a%gF4%%`Di}rMrs;gr$qK}4%RFh8OozI)ssnLWhuWruBPiQq)I-^ih%jD z?&CWM6bqF_s@aL9foNrfS%s!?n;K~`VHz12e5HKll1_p1l~@?ep;|g9E16+w8MuLCl zisfIRy~jJyo~gzD@KL9D6_;_T#X!I@Pt5hcih|a9GGBx^V)(M3-4T$Wc)#&}7QEA% zD}o|G+pf+vI6h=%mbS1bz;LF|kNr(LZ#%FiAwk*R!7AJL zdL6oixpRr;XrpD!LKLG0B;=iK2$E<%eleO_r1zVymbsUU4h-2`8HT~p08dzL9QDYG z6yw8K3;-683cw~)a4L%>x~ts3&yf(In?)}9Vf3s<`cDFf4W>@Y7*=ILIPfKOD>UTe ztu%a-aNZVvbxek$R=l0;y7Ej$O{$pn_}(L!Xrg>=ma-s>Z~8FlB}UC=Y^B;TCQdBi zi9iXelKRbCybko3(t;K>hIsh+8Q117t(l&)Rr)T82Ta8V3pnlPeUxv2{88<`xk#Ke zh@?+=e%!$=%wn7m9TXTNHhf)IYUs1Yv`Q;7^j!iQ%!Ru$ZenhUjcYqp0xt>Z&Y@g& z*_z<-@k=QJzI~(K6G^{jp!V9@yoi$*6T^JEZ* zO#Tp%rv!#JwQTw^Ejt0%n^UB%J<>3N)qHDfG}$IwVsuKF8^u!Qc|g(pey3kQlYwpQ z?8c5meedQvd0_BQK5MtcPn|(o!-;grvr(KCN#CiT$vy^rSH@&wJeJWj{3QgLX+l67v0;F>i&89gsD$1(*3emMA|k*4gOhCC+<0U{QTXxM z-Q6AO#pNZZZk3VlA-&|UII!deOV`sJ!(J5EE5(4=pA)WXc!Ks;t%S)8A9>jeS-rfC zk@7e0sjfan(y?Cz9lyhS2m}^9ccN&fv?DkI5hU7XEEj9Ko&P5jCAGVa9~5;^)cE{gcgbgid*VU!5z%U?V~>Ao3vN@Fhq!H6r@20zMC$lL;QT<) zr_bjxilT|Woc&+T$LP9iR(FtBIjybf{mv`rVWkg!wk45%{9NB~LVa4^)(}%EM_ci{ z2LI-%<(w1Fr=*FRTkrTd@)A_1wcGxI;$uLTW{aaKuJQi#Kt9)>qO69OL!t4Cn2tC> zlI6ztD!n`pTRb>HwA(yaGLL8Mg1_RX!=7RW?$Jq7ZJsQd4bF4&gf7R*Z>&FgdHPo* zZyIN~JjZO^=zk_M1^%UkRMN|9zG>P|BIXiDyBxuvp%*Iz$_Yi}ys@cfGQeN>#tTh{64;)$A+;x0= zpcflcr^~+tDkZar^f438w~xW8^3-;L)7<~=6nH;5^EL?I@f~!$oG|a!t$Y|)@5$mC z86zAt+rxl3@}miMS)X1le}AdwW!fv8{9v;fk zh5cWz*RFAF?j#VCBo_jJ9x;AHBajjti_FeYVl3fkv5(owj^*F%v)2|bamJL^CTaGj zc@D8|4EUaRtV7j4tj{43XPNA7gi${Mr=nI|Fv%0$e_p5>SH0_1<)Ur-V(ZG8A>bm} z5W!`axh=zz#bcqC=NHGHJ32xuaLS)C^}gc6#D@#Zh~-yyaY*Y->m)&y7z$fI(O>F~ z&;7+%nsCIw!VQrf3x$R1{-3UIT^Db(|N4(D-UWeyRv$D;0zcETy#{TxKp<>poxaMS zDW}`K>_y2OP?V0gc2qjC1B!Jqm?`9}7w~xZVXU-^;SCK*+IV8_Qa|EzRmQ#)T&8D0 z2_0l7e`zlrCB*q4{_CA-Cd<$L-wHM2<{JEKQ}cwKl9FGA*#rEtIPAhhN7U-p_9$7O zUaw0dUlYd}MX^2;QM@WokUozPL}5yALXBo!^^@%$UrhTr>9d5l@diFahM52I^LxP5 zqaWSXb}P~!ut{!1hyoFvMB(O)Ek$U^1>y8Eu`EAj7M_)^uL?@rtGPc9xYhw98$8FJ z$OYPvnHFLXdc^D}tj-P6jRx~kZPh+F`w$BVOzU;{%hDwD-m0M@nd{1L4*Q(!sgUV4 zL27x9&Q;u+?kdO7i6f|&IyBwqy2`nHDk>d$VM}0j)bOB znj?4j6PKQt)18H{*&;&&qc?BjZN5~~r2$~=fXJHShUYWGHc}Wqro34zd^bE6#Vl5X z-!-8c+Q`<1%6QSAEs^T=o^IIVK7(~^53qA@Ie}r}uZG5G=?#`I8vZ;E+yR)GlmhAg zZG{82gV5<=_b=71(#PinnrlCfC1}X>2yceo*qKD>QB5JH$D)nPjk|!hF)1Zs-$}M( z%WGYV7|sVs9FIwVb^Fohvu#UW24MhDJEMT@3Nlc_i_Za0kQ4QeI%_|2zZ^|n6K2Mk z@vmiZ>bkPxmG*q2e$3j`-Inc}K13k94p*z(1G_Hw^Up>iTEJlR+zr^5?mG@EZpece zWJK2z0=b0&P}?T6M{{We!)JLIH)jlYkMGXUht`ig>>g=R5}6~Xo9x-jQls0PJGa|& zdAE<(#-2?1M;QKkZ=ZLdNP{0Vuy3bmQ66C!pn-cUXK8s=^-EKbv3bvixhq-_e?tP8Yfx%4d3eDybN`#B3M#g zbFl9sc;g*w?vw0n4K{V0*GlkmzC2f6x6t$9&5T?B6CpV29S{g)V1&7`!Yi?2)DgQN z!FLOdmDSbNVE_-MGNUFZ-8`wFr3~HyouS$$1Vb>N4 z=~(7rxa;FI$AWtXsY7>7s2MX8z3AZ7zFuM~@p|V7OFOqT(^L5Gmkvkb`5o(6Lsn8# zqm*LZ*pIW$nvp|4Q)v7M>x@@BU%xuI+a!FI&DZfRg|vIV*K_3rmWw2QLkf)&PS&`3 zCIKnXP>mI)V?7KCQN}RE1#LVx=y(1rZbUa@KGZj7Il1Z)b$}%V+i9tHp@(~l`DsvFCW-~BeDKJ7eFSw>qL<>b@n7Q zCa%G5LQbNxqoTF@2fJaGO7f4YI0kbd8YvU*nmM|+jxLGjO9BYnGVmotZZ?gGH;Lv~ z)M3=nmYg6ns|+0j3fjp5#(QWMWj``}sLde**W>%VZ3iiande7dsaUF4ii$?-+2mbp z{B0Xty7v?4ejpnyHpblg2{_vBac1561^b0A;(uA$NnX3NA@6Mltq4woNCX+u;t@gD z(gN}F8Y^6se~gt_r_Cq54?fu>g&2HT6B)l^suSUeKrgsYKcE}s%CmThvP``v?nwT9 z_7Xf6QiBfk*o}S2LA3BLO=R$tJ`8-vS~L(7P5+QAV<^lV_d#1`YuGtV1779E3a+>F zuPww1uB0W;cj%Nd*I39V0CA9MTP`*TYN)^2^!v_i!mB$3ER_NRgA~yLa0c4S8fvDVTYDqlI6L*rD+IIMmX=pHJFc@O79NI}@u&^%5KneK1CEpO?T5&evx>DHM|^Ha0v^(7nHo*9 zkKq-hMoRJt1Jug&EG(&E-{erf zs-uIkJGZwx&P$!Q6}U%)8e6wTfzM(P-^x@G<;npF=OUI20j>C#oahNmY_N@le}C^$ z9T(l@5i7lgP1JV$ts+} znx>y(r=F(4tVpzW2mE(TV0)*l=~)rV8}#IV>u9A4Z(xV%p`(M-Gc!}UP&6j?Iu5qD zU{okYHS7zT^IWy*ElS$ADRoKe2!s258iroePAt5NWA6>fpt79!I( zv*$#od}BJ+KrI?LW^H0y+KUksI>a*)Zepm@XLb^Y{<94^_4Vo$#ZHs`bt{UM&4_kX~aDmK{~9ys?WPn+CN*REU&ienbrG^C*I zCzrlYKYB6xJ`ZZ=a+VC`-CU$o>iDP%>gf<)O(p`(!cfmS@P}t4A)2^>gf-`?8q)T0 z3;IVx4}e;(_zOtF$U%(@DACIPX;)=#ZF~*uv(oa}CA)rSocNe_c`J78D-PNm9Ussv z0GTHXZ_hBnB;kbx9{tD8>YsX<;s<6PFtRAGFVnFt)9V7}GM4ZSJ>d))Oxf3Os@Szx zT2~(sOn5E!$Xv%eLFOl{603+nWQhw;c`|T%Hn#6s$Tld-;Qry||DakFvFglATqfiA z-|+jXqsnJbRz6HE(b{LIV!{wn7F5H@iDPFfZwKZ3@Nlv}v1ZrUK1z`a- z&K@#0%92bd{V&3XGc=09V2DKEP1p_rohk%rPTI%NqU%Y`yXYiM523IX#7nGBW(K$V zP{)4is1s>9>sxUrxx%onb>zcuaXrtFyukeT+Qt5R4gv9z|MtJI3p^1p{~te2iP!U9 zn+uNwF6hY7Z#~^dSWs)g=NI{+EKJQ{Ijgn4a2(Z`m%#B4Ni>?MtBEL zx~(5w$b2;3Z2GpMB`Y?6lRvlG-AgMDHbcM2)G3f|;FvwoioGKfa$j)htpt-R(Ckf( z6xr45@?c*^ZAr!{9p}{CaPsD-9%8W31Q&k29yM2DdXClyf@e0CMz;uVace4pcFIyc z0<^VvJzPTy_=B6fFpQJE-nFtxB9Ke}r#0v=%mbPdUrf=Byu*I4+;N2M>5h#pPIr%2 zu6v{|mRDWk?zJBjCJyTO8W-GIzr09u?@mnJMF-zjx1Dx;o0v*-;qYG*zj4tJG;>Q1 zStkuz1{`dDFbto3=~9iHEF za!lpB!KSfOcKk(^U=7N77K?m_8$HnTSgkA`xKIFUfEQBX{4><5NwY(XVgV}ifnF^b z_={3g0qn;R<3P+{vXf7Rf$uYd29y|$A?B=X?tCo~exKI0+492jH%?L@ zXD+cYvGOf*#dsn<>fw*~(K#DVYqy;HRS4%>7~C7ERb5NJMO5Jsc!>CJ`UN_O4GayhM$wfV|g9)m36i5Uz5jHuJW`Ukj=X{5;m zK4X_9aBvqdaqiB4XRUs4KWo)AkF@isg3}E3U)Md&o7>2SC&4Fjwx4U z>@>#tdE=lM9Tbh}q8(zIgU#|@>XKdyh?M-uJZ247@97;rV;b(?mcoQ5nPK;XJ`GWpU z=2Q?_13h$|MV7F1kHD}x3MSe{3M`$ z{w96hZM0HT+b;aV!m<@hweP-;%abBNQAl2~n+oIO2R__F2ZS3<_AGIQU=(a0(JcqX&<%CF{64nn*_2os`*&i2enJnp})%$Ht_p(DWO zC;x){ypS82nbXG6})>-uq5+xPqYp1!{S_V zR~LRfp7Yx4F0tM^?yzrc(EQ4CcIQuic@IKR*hGLI5RL{!A*VPhGQO4y$5NQ{v569XK2ft!ultMur;-)(P(6@T}4_d|6qt!cc}&Kn2yb zfO}&wWXgPd9bq6xfOGUp=MTcyE9W(5-5`UZ?3+*o!9l4p6imP7D!`7W$ngI znQ2*xJ77WQv<7|)xWdI_C zLwZ|Fs7zlu@hZM!ru*DI8#B(neKBo9wJ!}f`#(YILpMIK!4xfBYAEqP)dyt}|1SX@*L7~swD`2*BkTQqOiWB38*)_S zlQ}zg|2Z$+9kKYhK2QGWKK^oxwCqa#F^zh$G=%7O_?Vp#aMaEOGs8sULx#L{mrZrQ z*1rWVo5|X6Bki@Y6)y^FakQFhZRD;XJsnu2=^_!vhu~W4YncM9eni@CPzNDiT6M`e9%!*-MVU zD84U$YHF%2m5`H;Ua?k64Js>#IYmYH@^6Fvz0_sOwgWvN@cx`3bm)Uc^Rp)EMz)m> z!x}HTuNUl#WA2F9Xe`5gjnTyC@SFNEqG|89Or##3>hF3FLn^`VDnIR-*ow__&m_k9 zE-Glb)I6-!GttaE>_q5}d&{;0TL&^!08qcD--CJI#BVzW4M*MqPWQi9a2LSeW62?> zA_4GVK!dmzyoY&3D*@a8$)sPK-a5HqBDm78J79f##<=`=vmocENQ zOpth%lvS?{%Y3#1!zK*fTLyxC(+!2vx}gRTbfOTDy7#Y*&UpDgQQxc9qtd8D<*eyV;-u>z6O0Df?{)@T5Q3MnMcfRpn zlOF;-byAI_nB#MrB8-*4J*3L?@eD^j8UlJ8@lD0XpDM`beQxI)s*@=KFGfR&mk842R{|@6^s;f;W%^x|+d3(1r5uWW zx{hOG8#Q3`6wQ>c(f$~^I^v`0y$3V0>n119WS}jT{5m6+PUV)J+1^ndF7}Y%uZ!q~ zH{{yg<}x{C1}eHCT0}-1nso-Y94VFRILni`dk1|6!}4n0_YrMoQllHq4r&0LA83ZV zRV3>n(AqxLUui}CXO7`UZAHPItm$5t>`~Kwz4jlm$@~>=rYjwh{Vl7;ESM zSCuG+&n_4h29V03tKy0s)d^r_EhR#!Q;Sj24n`_r7<;?BUxoPjIrLE>hAOt>sZ|fC z1&}VC5T?^p@<&+4psHGq5#R7!W?QcvR}8=HHn*3aoWY2C&$p(~@*@3=A-t^V?~bZe zbJZFGIYxr-%wiWXbj#+Oso#kk@x5E6Aj`e9TZ#^ji#m!?jp4iETXs)4idW6f5MN`2 z!D+9QdDG-qCH`oc-4Mgph}=#yph@Hak~S9HBq;BOLr|glJvjnkn`RxfuO9gNhWTw; zi^tUms-UwDm&@+0x<)`uCme{oac*uSMg9rg`47l*8%s@l9@CNS=N0!RZO-Dw-xE|R z>Kcf-6m?h+%Ke#l4Q>>xdz4aNC34-3qJ2fjt)mmD!Jh z+;RQwziT62QpDa@7`^sE^t_w;4;s(kBM>i82eE)ZLq?ZS9Q(dHT*;-L3?yiV2ysKv z3@0I6?Z&5%;^u$UFW2wO#cl$fYG>~pgX{l${%J$kmD`@OO&nxpq0dUC|4vp}*Or5% zLS0!`G-kBWTrH!CT>I^JIh1;ZOa3pBZJCame9i{P(`&wzxjjAiNkQ}7sUTGQZKD8J zzXRmvQN{)*#B2v)nWY7=+#?SDu`yenTh;QB98B61lZAa!4KDEW7;OV z;X@x@^OYsCZZ7MOzPcv24j_RcS9(2bVCAGMy|)+JyU?byPz2Z3Gd-B=Rw@L6&KTZz z(SCIkD8AbuBFPuKRRth6Rcwpktw@4{n?#UU2RCX&&_R2;+fHwx_|K z$M+72RYTjgc3-?IFdTr@K%L4r?208&MaK8{0p}e#3Z!B8_09?YRLb7!osQ7%@DORD zij^Jrm>0YpQkcRKqcmDM<;N*HJl&Y~tYc;RcYIF!Zx;oki&aj~$C@4#vt0FF#Ro?z4Z#)yVhAy{<|JEQrs4R#Y;i!b znO>9tysy4~%=3zRtJs~UC-%xWT$s0EREJ*jl za&5F`sB#iRBdB;cbDc*9a6f%go|_A(cZli%WbjX8r-e;2lg5$IguD%5g-|0-DhILH z=S%oQMG)Vj_163PHTDT9Lmr@~ z>R_bZFzn)w7L%|(LqRdw=^MPLcMb|V?{NAmjMKw<#$Mg%FAZ$hzcS%!!|E>7%kEl< zO4dI(6*xuP(plHE6TK=X>lb^X@>a0zmk`9Oe)5<dMHZ)N zFhzwuPPYHHqu^XvyJ=Px*&zx^z6us;5yEB_j@&3qro$Jdi)_lIv5U`&rLQEs&^%oA zfquL`j_pN@u!5iT?yfpRhY~UYZ{NPn7C99NslKs{p+l+TtpzmhILLEmL!dZY~*Jv!xAnUpyJpEoG z4zwZte+cKT_Y;4R1wMI$P%7CB#6iNt-C_OD7y`6FFeJIZMknlEcB8rSf2^&qT-`VVM(c9VzMh;NJvQX8yml7 zf{l%g+z-eE*x{a!-B=(~{KM`JuQgl!R^Q&;YyFzj{XMU*HYxr6f5^EbI@Sv}W2>kJ z_PUAj`CaF^HWT7GM~_y?$T*ksU)rGcqkB*1DFS-F@PV};wTRa>?1Fx8*um~_xOF|D zPAQd)W2WTSTU7MoE`Mjx*^?q*?J5nh7O4Op4Fh1|FmOgl`QN~$5oiDu{~;ii%TPuE z-7iWsX$$@0c=;2u*0MjMqpj_Yv)i-6OkvSIW83ZVgP#DG|DXP&7_Lsn?OHK4tlS;l zI(0|vk_o1g?)9}iQ9^%#z&;IBeK~F$lzkfQyI){&;Sq}PihuRWBn9EL;8aEo86hqG zJwX`h-7G>5O3%-m%nh3BlH5VC!jN+S*a9ACQk;Sea)E9Lj#k4=@8O{HmYEH^%JuWp|LPEZ_`7 zkxvF*+I|Q9swkkO$NvHGn|QU;UnbhmYx|E)&3vS<3kMrAswK^Y$}J5uH69Km+3Tz` zCzX}!Vq-WPAWY#2PB&qf+Zm_-qKCFcm{E!t5oe}C5~mhLB$=eRV)JM!8ql7L`^B|a zhqp4Ifo;lQyxKJMqDGMM85zw84lC?N!XVQZqm=E?!>K;qRc7A<;Zz_(z$ND>F`)si zn*hXJOOMb2a}!vE_VD%uv3;sc0s^VT2QYxgRt)uDqZ-nqaL~TJhI62SL1aY|@h+4) zgLKT^z6-wCRV`L;{URHI*pBG1ED)Uj_hQWF-$oH(B^(2<=IBf6Xg}klEc68~qLVYf1vHzUo$xuYz6gOD0m|nt{GOe-Ub)u>Mmu zm`TF@`pU^khYRM-+4%4j4KBD5%|n`f-tIWQf70IF^V~Muvo*vzt7a`KmabCgsLtZd zzkS0;ZdID1XI~L7s4;sbE&P;t$ZFh9(WE;yv^3EOAdZFvICO_AGiD5m_uunEH7TsZ z5_LbSG4V?5KGQ&8S#qm$mHk<-b#+Q9te=?dwAb>V)P&&fL^#`gnKwl$W|&{Sr*mO(`HJfNlF`4-k*LH$#mf`Z$b94VG&C_Kylh1h{xyUn~@Wi zcItTeN{oQcOX{$xb0P{2L;`BpL3=WfMDQHSA_egW)fpMI2(kLgX+9$x7h?~~=RT7p z$IO?3jqqTwB$7P1G)$~R3^MH)Y~13GiVJcJ?diq^@&pA$Xz)m_PbcKnEiaL~zPRdB z4q$C|^tI00^I)QzjEHO}s0^dAXj&k&8_%(5AHaH%_Ig?mrP{-j1_4t|AZrMKHr6ga z@NA|rzhf+lM(}z$0@2!y4&>(MZlr?45sm0dst6r)|A2r`=SbvqxQvR5O2Eh~=?%Pe z$$-23_5R3YzTSe)&Q8V-SCR)}z(qa{f1DAkJo@w= zF=}l;R*Nq^4!C)9m|nOny|2{Ck4aPAt6zo5M`ItIR(z`pH_C)G@)zf4yu|zIqKplY z%kJ-H1^c&rTzTpM0EXdZdF+_UftH0xLMTPGu{VC(hW@On3WIS zoqv%i9=7}gaP6YFi^&P+G$8u^o6Njj#;qfvDw*LO%Y9CH(9hl|+sDH|WEi+ffgzFR_&+xU51>iv*;k3S%(F zu>2bX8P`&@DZww~k0;EsjNa984r4K*XPd-`RCn&%vDfvbHXzWaV|TeC=`Epgw%Du( z{mIg|ijCwF_t&jGX~j>t-J|FI1A4pX9rd$G)+v+J_r6y1y)X01%^T3ITnvH(^TE+Cx1-)w+5z(GfR>kUAmxsh zzk!^_9_592Tc%=GqC2?NL<>eF^3y0 z-MdJX8AGqlqI;ZOC41(AGW?%rdvClKf{(Ji`})0w@n7c+u+PPcG~NnM2)>ezawGiM za92Q3A&hac7ix)yX#v%cQlpR{qjK6G`8nAenK+T#myjR^*avO_rXEg9F6|A<-V}0v zR8|fUj17;&X}{6597zC?J6guEy3-EO zn$F-=xGN-8Lpx6F{?%U;6;m)?b9|V7TOO`Ky5MVE9=Wsq;&Y%Oh>YX0S1JyOUGIh9 zqP42K3yBoME%Lp|=W@a&IOw0Z{Q&CH3q&?C@YO#dn;>@hLFY<0nTq|x44DC~m_fqe zi%OV#C%QTDU(f58j{!;+MEIh7BU_g_ECt9F3J^~+{Na!qPh& z9gT{Qv0ebxVJWFAl{^7JpaD9hEDXs5@4-2%%j@nrST$R}oS9>r8URq?f~=2H!nDB>{#}mA-{!{Rd~*z|1|WVEq4F02r(X3!i})R8ms% zsN}SEwmt5LY9L1V3xd7=P0+s#wtRSa=$8z-qki}Sg{N){F7X8SMHC}NiqJCfKsUNj9Obwh?#UzBxh3eS9{CW-~QB-jx2(A`pkAOx2#iT*#rMu z4FPDqg;k;d$Lq0cu7{B~%cPbe1uQDX8=A0{g(kU#jZ|PB%2^|rW^pa+1kXLOE`~L=^36fflMdO^jc04i?lxqy3FR(y6 zW5f26LKFC=<7otNSIkh7sX^IxN^suDrsn`VzIu+)!YM<(=GHNSQtY_& zB^_p5YP;hy5qTWTSAXB$xyd3(Oo?W*U85`mGK}xnB)Q@?E!XQ$usb;fFr0K8UqhOK_zSJAZ#InFuRn(XP9aP~%nW>dgpQ7mBcr2x7@+w0 z_*RrtGCFXw-5ekH;RO^K0>+RCQvZpl$@|fJ&r0WRbC1v?O!2UJD1~W;~3g4u~)pQkwSD&+Sa-O4{HBj4N%yy~UGi=oBw3e_BJ3!EH<28mpjQxYQa-v&8VY7qDBcK}y5lkid%PzPL#*jcWcT6}P|lRwLDa%~;zrlV)4`I`3g6J> zm~V)EZ-+t>gT%w^5(fQ)={1dh6ZB@?BFBqGZyvcs4-I?J$pQ{VR(I}UYpM~wIN7xY z!7ejvn(x89yl`W1ZxKa!l84OI1$^K=HXyIiZe4Z>yV2fh^HP_5speAF+L>X@?VlE4 zq(e7u!q|4Cb(8{_98G{|1X4K@>Y7K^Mqr@&k`Ka!nqI_doNgOhgD-DVR{L&$FNzrZ z6WhBk^^G1>-L&Nc70>tG**d811vu8Sv_LiAUbrVt4mTrlU9i;l!Vm%zS3Q;cWbFd^ ziyUV>WslaFl3n+4Ej&+%!f)8(IX~+BuZ%9NKL34^zChB=JHviH>wis=b+7=W1MSYP zA4QQ*9FkI9al&uJPTT+ByM2F;Y}O*Ac2|#K4Vn_9 zP%^U4>-VF6kJ}@S$xlWxAraJ$rlXtw%8I|U>Pq|n0T)5&z5sC3*#}oOUz!cDNpcHq0oV#}hSi!) zuwLr`J5dLe2i!owwhPdkw*fk{&A$l&nq443eX2fGrfFj7$mJ+cE$dA8`o5;Xh<^kE zNCkjw6(p?yQW4-p36tO;;t5b!SLY$gfos;R8Mt)m(m_H(LW3txoH(qdrA2}Jd#0O7 zkOKjKE(z%C>thPB6d1o%Y~0)5M{k zCIJXyO%o~asbH{>LZ~{#poHCP_YSN6U7%w;;V+F@xjL=Ao znLP?)=ZwPWxuY<4?g)&ZKME5TjK!n{w`&p!e4rw_#1X)GMj>5bRHGiYS+=hH0UVlUwQw<`ez627PleYyDp zoymioi~)AO04HOB1P+l=!qCYS0zO5}#K+kAc%LkexA~j!r0h5vo0Cw|b`3XfUBlIz zH;{d+gaSZ%Yh^b8h;C>=cwIdOfS~$T1lHa{K+SDjuDp$l6?foQeuoVKx4S?=a8T;3P53AA!hQ;#<2dQsmSWz zfxU)eV6VYgFmpbxW#+Iq5RhQ92f)Wly#FN(Z<@UEd#x4TR;c4sr7Yvz4A@Q!l@eG}!gf=d2Cph(s1Y zdhiHO?*EE=4Ugevy%%o!z7zmFbdSJA(Fa@PJmDni0(&t>I7&LgUVIb0GX(X$6bNMj;wW7J`vuL8$PRoK_4!>ULF8cC8+j1`7jk_0p} z$RRHU?FA*5y zKL-Y0;x}YGN`hmAF|2}=VC63Zi;L2*x}Xf-L>GkD2I46m&@sa|9k1|-9jZXQ1?0~r zJ&1-ui~i$AMXVem3WGE17_)LTCd`}${#nzpOk^rHZW6co2AJ@_=vFK=9A%1OAzPFp69nmD|3eVatIKF1 zyCT3DBjkt^Hsn8qEdm3h@hO<>AK=G_=vnv>zX~fu%oP$7mt zO2lY7Vctn0Jk3+btCIEjTq}+CG6DePFqZ_%Wtm6%-(1rPFcl=ym>m2fv}(arE<~8k zhHMz1Ymh5NffgnFQKf{J6-FqF)rPg&NQ~*lj2RAPkt)Fe3}cOl>@t0LTAzWJ&1Lv* z3WK-JmjQsYl9_B{+;7#nnUTES_3gb@5scVxlNHWHzE)x1rLVOfye&dH#esq@&v8Z? zJuQOaWf4f_X?_LnBt*%`4+rc*uwCyYHp%SO2mp{OKyy_a_G~+Zt$I5t0PN5{1XohgSnmaASr2TM-U=sa zJNUaEMaq#YNIn{hEee}pxX2hje-K)e9^_U)tMtP|!e5+cSx9v+@PQc_ZVNi~2N1E)@%+JF4` z@q_yJ?>~6t$dSVZ1O$eE`0%0T!-v0WVz6PL{Uh>o(=lQ4D2$yw4ARc)ur=Kb&ZP#h zDwBt4i3|)2#Gx9$7HaX5P>mCZN`g4lQpKR2E=sEcL^^2_R0IGh1Z0W*Ux0wFARtQf z2rN@IvA@6_Z}5~32DXzmY~+Rh06*gy9^(Zbp#FUhs$M3d{!Kc5K@DEx5gjjN*13K{ zN5^NXcOAde(BMW?z%kw&Dxo4+AGd<5o(4gBxOag74hWFLUp<;xBBT{A&Xy$ISzr*L z3}sJQ2uaSsB*AGAnll@GLgToGtcV-;RT29`Ly4fGq`9*i^6)W;wbr%2I`1rZoLNk&q^% zJXtF8HqCO#l7U`^EDW-gV4AG~+iZQ9MXJIv)&S<0RiNfBius~5Xggu9kRTRM?Tszc zEc_b00547t?tb9^M-b2@Ux4@p{Q5KE7zr;80H|MpWD1PJhoFi0BYGZQ$FIeURAsy_ z*^WE4!KiO7K=JJ|&>B4lB7`u$0&iN4cFeUw^CeZn&uL zg1fOd4!IpgNp2a^64JTe05UC*n3&uJ1Tv^cfJ_aLwZoNF<*2Kxqg8>HmL{~dwcyU3 zJKbP_v|3xK+s3OToa0tpNR{L1|MkAKCzwg-4}=NXRfK8_vMyWpzl4G%p6 z0DEaN;AUx0I7+)=i|jURS#OUh-!ph!){Ohvwb*Cujg8A}=vbikEDLB0SwUOSifIY( zn==qF&7>OyP!QlXfXY-YtmjjJkDYht-^=eC5j6hW5a93c&pLkmIP1iT6ZCb?bN~qt zA}?f-keaGm9~O(%m&IcB6A%y>AS^6AuwTD^gZuR9GqivI{=?tCeS7AspJF#_z-M%{ zzsHl8chG+d3)ZLfu{qron+gr#SkANnNZDI0aV;(XbEJ|e3e^-*IuW3mMnFIm+Nt7H zB+H-bD-iJa%z$5S32-t7OtKVV5v_%k`;m0<&u7{zWe;G}pCQ>Q@CG080w3`kKH)jN z=YPWQG(3sCk2nZ8-=vTD9S_k4*9>bY2Cs#D^lHe(uYh#?QphAMgIxSF1_q+nKsjn1 zlp|L|DQY?7q8C9vb|Dnv7BSfXQ7fPqDGt*JH5mJAK=aso2sklHkiUp|tS?RkZ! zV#Z7XOy{49$umY_^8Dc#y?_Tpm#{EiYB1)QPQzOFrBFO24eMlmxR=^tcdZjV%B``Z z(2TZj?6b9DnW2J>sfsYpP{4*v1sG(lhko{Y=w*{}%ATo<-9?iebETM2r(7AB=BZ+1 zmI@3~6k(TSf=$P*FlpvQ2nh&c`P9L15M|-PrP+9MYB+GZFJlxu|Anw1@?2N>^$_=c zDe%0+^j#9t)^9g_EP4Nmfrsb2;hJKg@LZCh}kKHOh^$E zDcmh!sH@7m{@E|AGv<6Owmz4M;A5E-K9nioU8xRU7F*)*kr>v0 zEOZr2Y1Fc}=~?Wz4W@l`vY3h4#2AXhR-rg#6;5@)x~ICYZf3xNqc6Y#yPfd85b)Pf z5QJTpLERvL9R5BQm$1+33LTR)m)H(7(XFtTVUqQnd$q{5eo-k z^n#(7uwXPM&L4}3^G9RMtbrK6a1iDwOoq7aVr)FEj?M8VI8ft?{jILp*|H5T4fe3F zF@RaQDhvzP(*xTuO9F-&;xNb%r>_&UB(twU656@nSAn4rkV_IBneC2R`6RnR8U}ev z(92YYMZ6JK=r4i5g6ZI$JO#`6hU4JI$+#D|3LmcUq5aGN;B0T2AJEMpNI`&e_>-0a z>&pOet~YzypigJ`(78dt`GHJD;Nmc}2TZ_+Fai7?vjERhB=Pu~9qv>fLqmNc%9=?F z;0Cf<68vt4;00h-H(-r^$fQxmvDF9roy$`?Y`xF4qm*1lR zaJ=Ydr@BDEzN||4q?XWDfO~8KT*9;99Fzv9%Sl`a*m5!e`E@t(={q5SycAbg(C{1w zXIs4Z?HTat74VtlkCfwcqYv6EP3fW5Q7r~ktz_S#2?$8`fPgQFeOPjO|E25DUb>dM zJ+SjY{UZH?@5vLVEAYhlpW$d^1#}T_gn2Ni=XpJMxMYh6L zVjE4?bClgqL12rj2VC@a!exU8e4P)WD5DHl)2<^sH4o7d(bOZr_yl6_nOW&v z7$_{f#)W~}+G^C-*P^+(k**^qlLRDjkm}AIZl!=s7jQ)0zH|Q`Zr;9ymgY9JHQ&bl zo4=r`tPTFhg0a)e8{3TCu|;nO{al@uJm93T9rm)@U@Nf|wxZ6|6llKI5<65}v46uJ zc&d3)lOPQUnq>=3K^vM4&=mlBLI9Z#Ae8{cDLRnnSI4}OOVC={*6HSL|IaoD{znkd zRe^zlEKY2&r>7_J1oRFM5AU;M#}4WV;H(v1vu4epv17*$nLT^<(Ae161s^|t#215u zdaN*O|MVVjKR<)*9z&R)(STj19*lAopqVTIg{algh!>^m2?3fZV%^2A2>kmH@NF69 zOT+Y@bCV-}6a zL{jFTH4YPJjleLWz8E-{x#cgl5`e<~Rj`Ru!;Zp@@TswZXO%g;n{D9UXofAd2Cyns z#fEG0&?}II-c?EN(j@{woH%CAjlOF@(~q=a=t8GF8R+H7QRx>b!5~u&Rtd%s-?A1H z=Z^>fjA`H(;KkxOqfiv*gyslEJP(?Oj=)LGk|4i+Xg}K*?dSWW!*4)mb^r$kx*q%- zC^*j+O&{z9oa=**bN$hNVHi3tkD&VGKOUbV=ip_c8183nKue(qYHBW`qA3+c%~z4% zbOSjpH;~>^gtV3tB)60zzNL%}0JVs2ZA4^KGr}6%5Zchft^(Y|rCJ66{Oa!GeC<67 z0p}_o;7s{loGiYBpNno&9V=|Xk*iHOkXM6!IaTmsw*p8NfcOENLo>Kl06V{E*q;r@ z))QCI_S;*0Vhpt&ZW4LjYaNOsWBNJ+n<14%&WQWSb)qsU%R@gnmQe*lXKe z9PdF-^)x7cNp!T44Ff(_f$*`of;|?Ou+#7)v=&=p!^%zAxOx+;);Ysod>b4jx6^bz z0s<}?JF!jM3$7cyu-EYruEyV>X2GE(TRcR*jU8G#~>j&9w{kF6b3Rf$rxc4 z7Y0b1fCB_IHC41iK%juCv5u;-r4dc7O=jB$T!U zINGse2OSe66#;vDdm0}sCMMRuU%!5XCQX_|S^~o+PMkQRy}kV<0fBG7Fkcn9_5K{< z1MNLBw5LuEe=;vm4t=#aVMd&a0H+d=Ec#ys0nFjWR<;y1?kR+>gnpPDwnUqw^kpus zc>GRx0{q6+@ANrF#7FQ4UZC`89u8mKNsV&qVWN-^UIDFm38+S`p(}{xV;3`}{+Pv3 zjamVXh;`5jk$_>K3^w>nLvq&w@Trf&pvAp0c2mF zIndfA1;>aD@F{kLSA{ipHCkbNs}Wpp>cgo?6P6VUFe;LQPQEZSbJs$*pmPN?X@8Kz zUprTfEs1V7{;%n;zmJ|ArhfncAOJ~3K~xL?8008Y4}nRV1~e}zV5Tk~of;6FF93lV z{B#0g?=e^0YKz95QeQkw)yJdImH0h$7Cr<{#)m88@Zr)3e7G^ez_whz?zA!NL3n?8~mfp3EwEr!iH4?J@bZ6+o&0j+YW)=NAjB^O3MU z9Sn~%fq31)*%QDV^WOph@>)cAFd7@mf%ZoLn(@cOD|lODg+EGVfjViRRu~;M>u4Xp zqiQWXlb>BiXP3zT5(3!z{|W*sL}?Y`Q>idM6%iw(8Xlx;BKMLy=8b1Ui-=EvELfU4 zVj3I`w!z2t1O)+75g@IBgSH{xfPj!6ga8Hvx{B)~_!|&FD-4z-7C8`mOfSPs#0~mO z?O?oO6HHdv!E9A`5Fo}n7bP!jQ}x1Dbx*hwe}wG;grA8+X=a273Fyo>YQ^+m2HJ@HFy)s}}jZ+_6=aQvq;;y_5@V#9d%1>l3zR0V8pZTm?|O7m<~p2=`Hsd#FPt3Xt?L6qo9c!8k}6 zy5Ta=ij<&XJ_^w*sR#(^B}+mnd=*vLhktxeTT;O7N_)z>XSI>}s~b-usT&dD9YG8w_Aqr4Ex4Ip`OX zgI|>KIdE1i=Sy`HS+qn%4}SI|(T{w;$j^cNY&dUgW{APCKmmriO3+W0hf$0w^pB}R zKynf$%_Y+#;~*d~9g9~i$Ig?7k<(UzoaQ_fH71~;_6qJ-A3$5?2HZ;!$1fqX@giUf zJ_Jp`2mcXxcWD^jT^NjymxiJJ(oo>i;O@FSgwe&Jz-2NHI0~NwCgS(-xp*EYhKFgI zXwI=gQ|)n-*9YT9eIg3#bCFSBgw%#IBsY~Hsi}k>{ABzuzNrQ=O|>)xD5$OuL3IrX ztZPDW!!6nZAOLW&rVSTr?$8Rrx!MOfQ}Ym~s~_NW)h{?%aUaJ@?%_z$ZK`88ZsXw9 zX6(;vfNyp!d@`!BE2R{k@r7`UD!{g|9BdBYKtMFC&WF>X&ZE^dt0H?WcaO?LNGNf_7pkziOB2wEQ7GuEC9ZS=b<&v z3i^v}VYJ*1#>;GAy4()ts~x(5fRo$~3IeX`yXZ0=QWe-?;)V13{E?S*9oI5%ASd%G zQj#<1jscP`$oK`AbU_js=FUx}y%K`#NyAr493HMHm;8^1e8?w9gTzve9|?lUq8`pJ9NbAN`&g7s}I*M}8(` znUhh963h~`XrR(k%NZCokB9Cw;1w7}gNB6W2;ovx1Tvdzk#?sMiEUN1^q$|Chth^P zG&EmCbLB4Fx@JvpSx*zC@hol)o<%Oj^Y8_D6*dR&!e--rm{6xeXH)$iItOn;7vN>s z61<39g{N^cc$8^`M@8FlukJYN8iP>Kn2e0(e55xP(!)Qgz7mNIm56UFM{H9$Vj3!` z^PkNBlRW^8`R~sofER0S;X>^#TK*>haJu#(PE|j^sp?;FqVg9UFJ&O$5UBvLLEvCP zEB5C#b%B8LZV=$?p9ZH(iLgB%MIpfcOaP*CO7M=IUQISte!B|r3Hbagj_)%E-ell) zgAYEGn*imC=-`gb3A4rY?l}<9Ub7tSH3S5N{|5ozfB*KL!Ex&?h&4vN_T8 z3iewBVW068Y?j>vow-(YqaInQOAgD8UjTtk(ym+(AQb`99@wJojvZ#ZvCZ5QCw$H! zKlvK2W)~qVEf1+lSx8PuMN)hUTS-VwN<&6!1~St!k(Hi7m7ST%h6AQjkXMk)hJ;)c zUn@b?^%~R`G$7(+H1=*fjGe}Nu+wlqwrlUEro}DFUf9Yu0TKXk6yFYeQCHZk-3qIf zPB2@#2_}ndn8SaLRhPrx61p?YDFA5mn?sY282*f*Hg)4yA%N@*AVEP&{90HxVI2zM z3cLIz?L0?+baUVjLx7*3UpH~414v>ZnGhgV0J1-TCa-Z z22GqekyZlk+_|Gq#st3%0c3U1CvJxM=XSDO=Qk*Ak$~a}VJL;KgF+Mo0t5oo*$|)> zxAwmp0(7&)p`NskhVYQmJ&|%W6X>HDx12r7$0YR;k*`Z5R+K)H9Dk}95vatiVS<1N z48*RWhCpKa(+!h@{yAmHZ4<#9`RN$7U;sv}?2EyxSQsqK!f=`1m}k!q)$`KuEO&xO zl{LH@%;D8&0W=n8jDcSb`@7|W}>Jq6-Cvds3<*)x*Pk^lJAO} z8P>R+WPrPgnz)xhq|TNm?j~sCc7i@yQ!LSv>x!GDN6}pCkE+HP6g4E_dP^4aTCX9! zxdh3LWk_zUKypJB5*w-!-%w4<{^aIQ0Dv6+kqs?${4c1s1pzg!+}{6{x_h`-a|ahl z4nXx?3IS(o?o$9bQS$&Nsvh8Y#X}q`d4Quu_i^yXEvmzXcd#$N4SRAM;geYh@APVT zC6~b??mAo}^WhSj4X4W~aPW(V&ACWeoezb>=>SyTe2lk$a8?9=S@drqd-nf+YbL_Z z=;C>eBVLrKp`$_-D3@bQe{=$X{YY=k3HM-;QtmF{HapVqlI7- z(M?4{m$ zNXkZLN*1zGvyq#gi`?{Vnh*?Ck~bFQJ}dMQc^%21eAgs@YQ*kgYHUM9ZS zX}A~L)xEJ@&4(WP+sFu`qBm_Fh z@|#oFKS={5Aix0t4g`?rIS`=5w*m5e8kj$7F&;ILQQWQoz>JN5#Uc2Yroiup05TcC z(U~)6xFEn87bJ;+Bshpv0+f}N`k~Y-uxw%N+x3y{!$`J6dpR zRDo%U6jXCpLp5I*+SeqZT|jQ~(p0n$pDPEWY&n=@%TNgD1_JpK-Sj00_~Q45ov29E za{&|021t>CO|CYKo)kQSagrK}O7T4=Dk=0N@`}>J4m56PsL`*|DE%Q@x4*!N4=HPE^pdz#X zWCuW4eG5YBS`kP~|7`PL?Op2rzfkjlG5=NHrvN}&04J*M;pfWx3;>kf$I+4pI8<~O z2MTYpbsKy0THu@0fL)oj*p*fVkEC*Jk1fQuh+J$9$)XTof1xV`T*1BH$TmynrRU*K zDg)fVR80+wr?Xph~2+_q)6!%>Mb;W?_fQEk@TPTl#gCOhF_?Sp;JM{(sy2vUP{P>@)J z;_OP?$SlK+%o4VWsEV?RxgyJo(jzkwa54x7+z!FZW;b@4?uNJVUbty^!Ck`#?rJ{R zCbtvY6uq%^{VtjV;2`M^J26+-iEQIm04M+~b%g0cI~dKih2d-~=*_h1cKGWFSWs#6 znSM6}s7=;`62Asy=E!yarKJ$?8RVZ%5cvMhfj zbVlpG!KsA9SiN;Iw1U<{F;p1q!&lMScT!d-H)mRAPhbvOa^oh_NEU`>ib&_-&la;l zs8c#Qq~t91?^FOtKRZ(dYRPM$nm}&)D;WTYWXJQyub_wh`uIhVPgqQ)7{3@waf`7& zVlL#u=RiJk4phmwU*r<34_XeL2q|b^kilAq`Ix0T1;ZEgrHB5wD{cbPCx5ZQPeG4;0*+t`Nq#umDbkKD*fAP+gDQ(LQ%-dusq#v90PypG()eB?FcBDX$= ztL%mxWY^~*yS@OKbytyEe*;MkrR)-aCB5ZGH&(J2{nQ|;sh%r(@HaNmu|Fbm_=ncF zQ4s*}XNUh>s=1GgwGVN=h8O@JQqlfDX#rF+6@Z^BA5tADdx*oO4{)&fE)Epk!TuY! zvG@8d>@8@+?%XEq%Bbf;fLqLUxP;|lOAu2DAf`a;vk|a49}K6{SMaJ!%2>}9z-O*u zkn_ZEIJaLBCGpC5SEa-pPUO%pB>+GUGU3kAK6X2R!~%EE0{Dv&y#Md@jf{aZ3B1Y> zrfsN)kw!RUy_~LE9@Lu|A)GXXmoBb3WP1+BtuNuQ`57G9bPh*0`Qe0Z2u|2W;HZ5F zj%*5ID+EXF!zdhZ)Ex@Kam1Dpd7X%3F#LW`L8r+0;!*1`oV1I?ZtYVrm}d`dK?~>z zT0mRC6gq+%p*P!B@k>dN*1XAR<7pS$zkbwRX^P zLe~x6bdrFGBo6vG9L5p1Q#j*&3Fmwno!@gAem+-l(&HQsI30nPr4QUp-Qi~JLA8B@ zC*1XR!9!~|+||6XUD+G1^1I+H?G6`NFKm|dfP>f$*a^GAcAYD%R&U`}04$bt0f1RH zwD(USKu5p|x`K=kfPCG$(=DORXU@$5=nMtwTo^<(*@Q}YvL57km9a&CD>E5Dk4er2 zy0e}4g%>aGA^%q|e+2>L!0##o0f!D9V(s6*pTr6GCanPi0VG0r*REZCSFKt_K|o$! zzCYO^K;nbRTH$fy#*KLX{CUXNA)u!x`2#8+mtvlgAoTrJARn+6^27ue$v^<8omUYAuH$( z0fTTktn;0RS(ZOxq--AyUD*qxSN6xqMg6fvQwUliJ^OC=iD>r{DjlN(hs8!0rF{m~{A22++%wr(!@rf&zd+ zrZ5aLMPZyJNvjN|=?XAURDtG6G0f8Z36qx&$3(v2n8E)O=FA+2xibesRb?_lBaD%d zrh}Ax6(n6<53ke9F-V{<;%e#;Skp)s?S$3dLs;D%gw?kpqOOIO;$s>c5!b?qg!6n$ z(aqh}^?>Id^v(5%XsTn>*nsfnMuasrA&k!Zw;;H&g*yI;g6eNFs=Lkf|4I3uefvLO z^9#<^5POT7NCAL&0IC@MT=@vcDt`GQ1o&S4YY5;}0&LC(;b?3+vv-7j(0|Pg zNUH$!g1z5RRAy!9`{dH2BHE&p?2lfEn}!&7mh`2K_l^6a+Rd?Q9EhV1Q{4Y^BCK;=m^` zKw1REl*erosC#0Ywl`dLcEeR?7u9w{Z@3xlhMUnYDw0CDgFG5|QxTUx(RPEKaM9il z7tI}T(eQw)swcK7dSWXXQ}O+R({J(O#XM3{QUiE-c?XJ!hzumY0A5~R0s*c)A)w2z zo^At>q%uIZ?aff(g`S@(^kNjD8Y9*X0@P#HLF2y+0=fc#Tn$z1pG5NXNG^7W=WrY%quFFCvhxFLV7@q|6uSrAa8Uq8IQNFLW zL%Kr1m!AJCQKMj<9CUM)sc3s4PYN4yC19E_5A%E#SY_zY=wmrIVJuMO#gzGj>E=Pc z>BGUtN7e@qf}FxAoH?(6oNJay&(}s)p(H_Y{*%a@{N`ab`=%y@Ha1WNH#V`w9Q*f{22nmbFd{i6Pqq4!}fd(Y|lp0$$-?_TMPtne`|aRzsa6*_LR=+ z2KYKp!>f7&yswa8M*lbvP|h|4b_v}1(vAOr5b$@a9pXTt1U@B5;%%f79!GA#39H4l zB0xL>Bu8L@;7aVXIg8_)f^p35GLG0^riVS1LvS}8+Z5XQJ_-ok)${qUdkHv(!>$#B zFnaiNUMCQ6#3C5SOoN~yXijtTyFvgJX$j0ShyEN37|pkV$s#+LE^%OP*UOw>zG5@2 z3RtY!OuYgG21q}iXI@pMTfGI|hpQwe^W5rOBQOS1mGUd9i5b&+d zf&T~ukeh!`ktzU*5+(q^Ne?8x01_XprKLsF1IZ$xDO08l7&mSlnGzU6@&el0+7vhk zf6sBjKUV@i<27DD&r=I(2i8L^P#VfnBGeN=AV59pzYhY4*FZIOEd>CD*k!c0&r#>w z%ef#xssbd#Uo&bsT_LO=Dh{3Vl33+93lpV=Vd&z%7_)RBCJB##%+}Sg2++o!s;$`F z>WFPE8?oi40UU1W!tRz9obTzuyiNfo<+3m=mV!Z{6b!FQ!=QkSDl$Pn9G8FREdM_b z0pw$KP7BCDH&2m5fI*HtjI!lnnx+J&93z;7X+nCJ2*wMORKlU)7a9Y>>BBIGe<9fHk<=9V1FrzwgYU>hQsdXi>P__?oSZV^=}^MX|n7Z9q)0! zF#%!6SKvjZ8a`D?vJZXI24GJGR0{Vf|NjpH{_*xk6@e~EyiHhzcd-(98>5J42^Mfw zpF@`q^`#YoL6BOghW)nZC;(77T%maa+{51~+_uV{U`)<)p3U?Y6#pUwj1gK zrnC}34nks#)8{v1G{cmFfZl8d1ju396$Z#Hn}C4DN@tj_CSCz&dLYxv0GT3?aOGwT zY+3J4MNE9e!A~a(ly}is-)*Yi^pPXt@+a?e{XguT1yoh(_x`WlO?L^>2uMnIcXxM) zU3A#3*j=Nd2x1{9NSL5bI*y}`&gj@Pwt~-pz3;i_asg3hzEi*T_s)9OxzrJub=jYH z?`QAro=dMZvtT!a7yQZSUvmE>^T{+5LH^x%Bj)=c01&C0h6vK#zyg43ECQ9|c)_2R z0!aFw3jyTkW`_WE2>^T$K(YWHQekkB_J`WQv3U334f6u!LICTj`_$&ZzXbwF7Jxti z3H;>2^#st804WcstE=~McX#irrl!_ULPCOO14x@7F$d0_JD0anu=C6S?w=uEs*+3# zc!d?EOJFb*E^j8@KNjo4h z0=iWg(ST2e__&tn!lOio%H;qvyWe5IChYf(r7eOkd-dV5#{mA@%n-H473K+A7^=|& z!^ZZ;07DKGBShi0!VFXEVvzTBI%a*9fZ5j*=&66=jS!^&;E&XAeGz}z6Jhm^2(5K& z8(&OL(0E<^C`-?T_4f<55u)f{N1~IC9zrN9ycwtj-3<>a0-N;D}=lt~lJ_ zjqDYc7$83wdz-$+hUTkSM~3WNx{Zy^x2fBH{pIU4J3vItc+9E1y~t^ur0TmP_H@sl z@JY}oCwz9v4;}JD=KNo|!xL-xV}n0Q`_ohZ<@;EA%H*+$%J<*p&; z{q6YBIf7{(M9UK#-ZcYt`|a_x*%7VH!~kf{EXSckeE2;8CVwEs-9i7~djdZ3yCPYa z^EN=e4PG9%z^gJlye#*}-LhDuIf!!S2=u`)&QL@;#UL+sA(mvU$NcnSES$6+3ny%8 zp9%PcNH&3H6u5791cUbKJg0!2T|i0-%TxDYVbm7*t0hthAOmqoe>^e91dA=EN=1~;1Sa*aH-VN1h!Tt^BFSV5 zHRlnBK55mPU^NR9tVtlBNizj>`XJfp=a@+~(J71foa`!?;4qu6{Ust_LtrA!g4}Nk zRg&o>YW$-BqMyM_|3_-4P=#wIAw)fiI{+vS0b^o6c>1Rq05TVV4+7Yr@53k72jIn) z0;EIWEawAH9dG7^OAgRn2%w>|>oh>=-wFZq=g+650RjS~O^`g;t%78iK+m2%dy{zq zW5$f>D=#nKuSbs_q#Q7a!{H1WHEPs|mUk^*b_W8;<1OCd#FgXFi`0bQHfLH6AT#m* zix5ED0S}L-z5JvMKu-N``^V85Katmd?%Li1dej@>@r5}Z8sxFY3}aKJFvOUHkp{gX zVlfz&6UQN8Zy+)+rDEo_Sj@Z?izzq4G5zN#dh#cV`^F7{XRWEZj|APYla2_jcA_V4 zQiG?ba9-bjTd)7$4FPOMg#0eUPdOv1tDmID@-TqV#K&X5FaZH88rzS{H3Lb zKwfbmOsqvPv(OHQPA8+HE&xXwZBbTZj3f0{I8tweWAzqPl@0b30**BLA$x^22FMS^ z?xydsw)uOk{rWc6UHX~Pc-%mUd zvmcx8CxM^QBO2(5_=7(S0E;d@#DeqpG55?p%xV0E2LJ_iw~=$|2C`0kk6A~)#LS9j z%s6-!llRmhV@D;@wjM#k`Z6S~KY--ooygm|4-Z?pW5?fjc)jtx<`}0j(QjCuIwupW(UZXz`>HFU058q1Jm6W!b3iiHxZ8j z08s#Yr9Od3nhjtZvAg7IW((n~QT0emK}cF&5y zL8?_}(e^$*C0k76ru!#Tz#t+ge-ivj+MoaAPcjumBm=+?0JP(Q@8r)0e=-xG<6@wW z5WoTe3jrhx;3^XYYZ+%ukC@4L0m$y)))pQF@OB7vex(1c5I{_UP*W4 zWNM)6KL`QLmOI;zW&nst$$|9o6Au7c=tEln$Q*x?1@PWG4t~4IC|?VBZL>tsE*Cg0 zFoSBiJOs^#VSrvQ47Te5<6IR?y%3F=S7R{qMhsHE@xhdzLy>+f02z0JkaXP}vERDE z|EvW(PaDI((G0$|rtqmYr^dUGQ_fTr0!}%=uhtH}HN*qZ1_E7u|GXLhT^Rm4P6+G@ z0NCFlxrUZI!E3G!bbM6kh+k1P5lAYEKw54T6y%0NMY$hbJcW@n-xNn05^<3hTi3D(dF(>)1#eQB}YX5e-$$qS{kBap8lQzHR+qB(}IQ>bDf8nKHxq8q}EDW$B z@0)+|SIj+s7jw@2f`Z1|$ZxoVy!zY7J^d51PyUF^%Bz@p_zGr}H(^@o8BF@(6w-Da zNAlLgh+SWbxV0rnTCp8lD(mUg|F#(bd_{ncFGI2*2)|%PtTG-p2jkTxX8u2gfD2sl zWdUd=pyQ&S&-%-L2ej03iEJ>m!~0qX{9a;(mU0jLb|4TJRtLgJkOSeK9E|8O2r7a~ zw9lPn0v2U##^UsC?Sub>om_3FT9(ded0Klh@88)83P?GDU!-KPAdSyMkh}}a()M6+ z!cICJFl^jJxJZRk2q3|bw8jy!FyJQ_!3BY61S-Yy#17b@b#}ExI#(b>v%O~^PA>!T z`je4hFa?Q5(~vU0vyzNS8(*6UFc8t&zDb+n$cf)*67ST{p8Qz=AP^F&mBb7FY{r6? z0F>h>08p{De{S&S2Y~KC01E&fGNEvi^Miq?8Ok?Qa8LfP7zk+Pg8=@O!tdLg0{_-b zKv7W<1ps0UWJ>})di3a7Qc}{3bO@N4nf2Dw)9b?>A3Q)@Tznu|BqSgpFzoK#yNNAy zh1rL)0elbc&-n)LFfL#$eAheCHbDvj2aKpO(7VLsUxNTP@X^h9CoJJvVM03r$W}kr z5J(pJkd?juyG-aD|M1Oju+7znxbH~xG2&pbX3c)qs8kuL(F!O30CjS_O3AcSQ z>9!v-?)V|;hBp#_^hDZCfA}<*!?(_iY4K~YfM2~i{7zfYlz&LABSKC&eh>oqvjHCi zfOZhj0R-5r0=Zw?q(HLNhqM4XAnb$-B9D6@qTB<~<=(JaVSv$5Vi>707~)DIkX4d` z;utB6Q5pp$`QGqwk;T#_9ynf`fMX2-D6etB5t8aZXNO~FtZ}@-nhE>_04M}lF_{1g z0rog@)(x4fOwmtv2zH#miq%awX^ou(VIp3;T?bJ!UI)=M{htv3R6jV@gQ_GImuXW!n+NZ$500siKQY~lI4g$9S zG+p;U)$iXwlVczI*vBR^viC7U5eXUDd+(Kb?7d1N>lj(tBs0gJAr#pwiEPStpU?ex zeE)#+)4AT)^?E%gE6jqMsv#Rqm#?uZEKOK5Wx1ER0hf>^!`oy-@T%yfR|H-QVex*T zJ{n4!#6c`x#kijk+aUcGRhWr67_^id)@(TFpQuKxaon397^HUH-Ox>1Q^_wPnZs&p z-O-7jH_`z>K!}nd82RMJTl-GM=P!^2kXGji)`RwQ7iTt`{Z1R3_Q?P&ED1p!TEmh`-==UnuArwc<01hsLxcOBv5rr0lQ1Y-ZsQ-RmPBel7u{9MUw}H z2&tDzd;vwdpD5iL&}H2`;V%uLOo(5(u->UgN>AF4JP9iaJ4lWrN`X1m6$5i~&tEoP zU8r=i%%@HepR;yn^Wx9>zVxzxaTE8VfZB1*8it*B1ATAc_=gb-RlTmb?SFgV3BEJsZ_(@nU^_-rh5k(`*X*CD zpe#a9l=HX5eh;te? zG=ZECo>?Yn{`n6Lq~jr9=AJodI=k&~-tu8`c+&^1+hcHNPu4()4$Ud8ofOS|L|Wrl%)(9y;v=Rh5`(EFz>oYQHA!rM8fk{{-#&|#nt`mn6`$iM_{?EaAH zc5{WzPN6xc(3&t`!CKJ*9eT@+L<50*W(V?nD|fg{c9N#|a9Rsi>!oJcN?Swf_tg5{b;jMl z1r3i%Owkq9;<}9XM!^4cKJ(Jh{%zlQ*hsW2PUme8$qGRLXNqa^yh_IF7xupHTg9Y+xCQ@+%3u0_(p4Cwa@W`R(F>OaWEqYZzu`-{qlq14n&kdI3O3 z18(_ozO~$Gi8Rw7rtGp%>{#UomS}XjSP*%u4-w6q=hOTEhMk3o(1od*=1;?Zh30iW znZW(;v1|H`l(=7K+^LNM3Wgv)Gxi7AG7+G|1Bd{<2z*j~3r}*@^gYy!u>tGODIV~A zCnc6sUQ&93yf{z@C$;gqWE0N^?Q;qgBsyF0A%qcX{IKiWsD6g2zXc znx^cazu|l@P9hJ;{d-ja_i)nzS$=q&kEr3S&{Qi~Yk!4MHC6t&v*B^3ch8Aylk&+= zUE#98+vyM?15K=URM%tB8y14|k@`a>O67-s%y0m*yMS5&@RSUT9}(t{#J+fiRTeen zQ6Uab@nRNA|ERLI**Z4*3Lr}a3bXKDRR94?l+n2QZyjVKB)$V=Sp&?9;U>G_#RWhQvWlFyTho(1yfvPUM3>C@k z2Jd<<>c~Zi%T>togObTxdI>*kj3IxCGe(L@A*z0WO9|T4e=wz7yFU;*a^eyD$GM1` zbnm-sUJtYAy2rBKR4NqZm^iq1xxXQB$EKQ71Jj!KLQJ!dZfRjKN!t-Ls+toFTyzZM zD25w9@xzy7U5_FvN^NIdt0R*&FjNvWqKh0j>xP|$!(TH2ZC?^Ns3$5J7{l-=df^r& zNxyGt4yRuC8q%?r567bv{otZLf!3p+0gO^i=-#qDogYKFf7`*pHzclblpQpU6i5RS zpEd9GdZycT3Of;8Dn?@QtecyczeWvi8_>60e6yS1n2r6M>Acl`U7jb67pAJY`fGL& zX)zuhtM~9%*u%BfpdsfDPN$fyDWV2GOP9FRs`O+M_POyZpYC+V znYU8P>$q5tBYd{1e5;oMg7?h=6}LFkkI6t z^g#S$I7(uM8d8VEuISXU+2VgM+3U|;{U++rfD=KmqM<;x9lCQkv5yeNtN0KV4qdDW zwb#Q4*|14_a2VWR%u%5*q|IFTT?8!sQ!s?&+Gd-a@B8&2JwWFDO*;{AeRJdMVR~}R z?6%O{NE_C0p7>+zPQZsq1>2He@=dpIG*Q99vay;Z9J&x9Lc;AyOjT9Y^3l6t;(9pe|RB4L8k!uS}1=cAzSgx4Ug??5UC>8%39L>`Af^cZgKe+ z@;C1HL$6QnjOH*X)D{8Uu-tZpOi>>PocTOlBxmV6IEp^-L5jb7 z^E7b&75&Y*B02+a{w+Sgjy_JB$1V>uv)#2@DK$8248HhZkt(x=z275#+n zo61D2k9`fec(1T*(zJ6-b=Up+`j;lw90I(?*p5X5CnkMBRB0gV+%|R+F&yfdJLx!<$e(yS}TIgT;Rjw1rls~ui zVcq}btEV=B9hu29eA7VLPaq@Q&qXF+bCj$nBwM01A0Lh0&wxs2!nTuuF9*UWPKZ6O zj(-5=*Z|NqM;zN4 zd$$c}NUnpLod?20Hrw~Xyj3|ue!cKlknEZS^wt`VO(C;$`&Nu^#OLDXrezQ9>+3sZ z%?4PJav(94mC|upU@}HY%#Wqhfe)Fp0V%(-TBMmsrAiN%EJu?_m#_Sl0sci6Vg!@T z9pW-wkBI`9MI#2?lpzQ8Dw8yP+a>CXLp3ac&fXY$uIQor`#hK8BvKL^LO%xqf$Iex z3oO6=uhYFoX&*@hlV7}%Sz4UkT0U?($=_SS19o@p<2gfKJqhPFf$RJZAL^BlQ=kC7 z{W(@)ZV?<7=RgwK)Bw+*>cenx1MfRpZmW|Msk7Fx%%Iv~jDjXS=oUCB!IL%HaF4vt) z+Wl5x$nQIN`Inz;#YER}$==LuI&xVnnEO&(Zl@W6Lw@ea_1AvHG9g#B@L}gPulZ^$ zrn-rScpOzmYF?|)c|kmLNZI^ugu-lc6S$M z7Z*Fa>g$E?6X1k{q?{)pfb8D5_P2z80pYZB9#*&-IK-4#8?$**8Lo{3j}nGFmUqzl zscYB0EjR+HgRh!8lbRP<)4=BJlk0rPg|w%m(jKu8<8nl^?&Hhvj-_4bGnNK3Bn&IW zAa7z6_KvjM>D2MBOKw+FTij*g9s>zAhiA3cvFC;-4@j9J<#CKsa)L|U0U^CS0dTQ8 z)FsH;;th$Cwj|q5Iky$rIjf~Tf}cA%_FWlaOeJv)X5B-bk5DnRNk}w9eU*inGCf~? zhP=BO#cnb|*3;XA?BF@=J>jSA7;5O(*4FcQHMqslvY~K9o@r z6Alfwu(_YiT*IJG$SQ`sLq9G>wrZ=@|8uyz9n9N5QBy%;wtK9pC;*aou!~>JYzKej zY$UFesxD=Qq(c}QopJY`?yPX<4m}sk1wG|xPP$GYvt!V1T1zLzQ4Se<=!RlnHM>Tn zpViiuTmY8jU@Xu=9doD({9& z+#^0b#&9k()(!542m~}QP?C|p@6qg}T@sbdn5G;!4m6asWTnwIRMi0YvDZn5@Uc_$ zO{>2|>-e*xsiEkZJu1L=u7f_kh2WM1C{~vZvHYy?@D*|44k0Lj$h+nEbwZJq?sncN zBx&w}BDXcOf#!~U1nuOH40++xkJH=bewVnq$p8Gt=iYGma3t=M@_CzpF3wP>vdJa4 zV(9JgxG<|N2(Y>1gQFe;Ilw4C7#xmV1}G?Wnc*7dI>p4qu3B1JPT5aDRn^s31Vlt+ z&vbPeq^3S{h z^HG329Pr?8rpco^;`^R4`r)K1dw5pmZe+wWYgkTy*#-uR^b36|yQLJ=zNl)#;kUAI6L+!A#V^=A9NrX^n}uv@=@8!>+?o0fLROW)bv|l^KYEgw&|;a|_8K62+8a>69m4 zgMx|HM*(i|IwWk!8~R``T=NBTf%Kq(=}3B-q_#o!P<#PQb{y+Y{pCGZCdzQ5I+eOWvm$EwB6dj5pDa6>7&2Dl9Er}R z0(~xlr+vQTr|_Rex-EG2xmID`qt8DEr8hY-WHMLvDeqfG)DUcar~ToAl7S&Zh62z% z1bF9Xxh%_OTl>ww=x^lTf^Q$fR^LE|zQHAH$#UsZ?WqF;%-pmzK<0w9b}f!i&X?MP3nn`N)mPhk^o>nA`u&fh@X1VWF!#RR~#|)jMG;L|U*gH>( zaWz6WHz{=CheLcRu9ZLVlbd{T)tBu@L9RaT;nRD{5U2|(_`3u0*37NJwe)=F-{)CN z2AI+ZJJae`$aoieEppsQ#c1`DrWh3?yU>ds>i6Q5G)(|I4|;^s>5>dhg{zJy`y`Bj z0iqJHiG<)omlS-nG0)z15N*eVKj?T5ZSn#+%Y4wt!~^U2(loeWBGbX+(=XV1D~UKD z4*A;s^zGZI<_3r!RiMQgz5k48)P`a8eXW`7HN8%;Vm!)RCm~heNa(kCRgoHgkD_j7 zZu-TvPh<2CF6Rx+{bTWg7jFyL?nbNwzqFsiTHo#qJB21KZk6eI3(EDr+FGgG?3oy< ztct$)!@HVQ8Nn_A%S~q_p45qW@mG_IQ6ahKwSjQi5%U9veXGB%_(PrNQ9UY_C*XU> z?lhtb8ws*uJy0~h-k)Db5prQ%M@vS>|I-2##kbOaSWHYUS3l$)kq=`rvJbPp-HVaQ z(ho`m0eGQfRoA4tWMT2cwytn^`xzn{UE*u2&Tsb^7&Kuz!0zU}${@b&4+8u>0tNgP zv+Ez;_%|9J;GfM;fT3;HNx-ayIFDulw5%xlJeQ05BgTp_IeC%t~gY#_Vz zGv54h1i9-x<<0i1!h9ip5k*TY)~$ZQf%QHy!~CgbhRHX=bgnH-?`k? zN_S1(m2!9g(2cMG_5=`lZd1ut)M+aL_{`EW5-?VUXp+zQ4K@JsY#Hpmq8B?5q6Y=% z^q+kcUYs0M?oY5>%Oo)2ZSsxZOG+>xU0v?gXM3fDl_VDt)epH*dkpNr$=f6$9?38{ zFE6jahS8`NN=Q(;K=}6dw!HOV3TF`Hl8=Xn7}qaKC+adM)Q0Qpr3AO8(lkxJ=@C3+ z)S`4~;kq(&**WlGkUk<%@@O$p2L zgO~l$fTBzjnWoK!^(XmYv!561&)qnV^O7x*@`T1->rc~|Ktv~nl24iADSh`v=S1KZ z;kwB&df!OwSfT;Ek>l_*|DVFgHFa>00`h2dY*x@u;FiRa>iDqt4gAVv1V{X?%5X}#(N~qzN9Q*RgbJcI+O#NZ;AIOl^ z=R}%@pP|YA`?{atQcu&y)@9siR(s8gR}QBQuIjwgIrGg;YWST8fH)O!$+` zV>o%8>tsXN^B4~6_tB}!*ymMW=Hk~k?;Fy0<_pYPYG3K&GER z)~=P8+mE09#@46HL7e?7vFGu>YkEihO_4*#AyvP0b*yI$zVX7iZPme0r5NMd5 zsrZZ(H?cQyVAnh@w|92_vci$9tin$n^N8|@A}ZVS;lyh<(>0;(@b6CN4?Xnp$?{qIEhv*R601#UHO}_ zgR&xq1jNV#K+dLv04Iyg)h{_1R-+7BnFF375}dtXr(@WOeA6wT(%%PhMt2{crK>)% z=5d;s_hiKqi=7QDjX>ZqLtTFcq6viy6xS*N$*t6r)N(?>+az1su7`8)-mfAEi{BOy z>%DEY(5%0ok@%&sb%rXTVh4Uo8#x+iK37YIBBOoeF%!e)HSIK3-Ia7bkTWE8#RmoA z0YcrU@mbLXw_!9OyMilf5r)w2q|1dYoghjP7(mao_jJU)r4(B#4x0;R6#g)p*02NM zqB`iFS!Zfl8ZnF+&IL4goLj<>?s7_|FU6hw+SZI-b1xs~-75S$yBmdLKY!^8Pah+3 z@Iq;PgqpDk^?r~O55P58@tpL#2jzNx;vgosQ}St@OkFN8*T-NlnxxsZG#$Y`f1St~?{9U=|Nps24hANeof%$Ew{UHJeh=F@eF> zc2;5mwQfUKU@ObmxWyGkenhj^t;ghv_ufnL0O?u$1H#-x`B}p1AI(@33EaGZ&G}JE1sJO6`iLecxTOLd zx1rG{YE4_x#hkO$g5DvAO+3W34Lxh+Jb))JEqOGEP_CK^{ANxmJI3z0m5pk?dAv?L zPs-Jw;~1~T<|mDci2y7*YSCVFZq!fRv!b^It8O{T+{2ys4kKf zkauGfJhFF?3)=ii3Lv|9+=|-%!)MX~=-`?FG#8ueYwclwn7aCHOFkO65w1j|HT+O{V#~}A21f5Bf&{+@W|7S(}KLBCy+0`05$X?V%uY@h{i5$Ku}am=g3O zmK?(Kum3*_z^yGbHHo>Uq_U^G!omnaeT?eT5Wp$NUIYgNrnXiAdY>lA`NW*`pIIo0{Y2uzR(^7r!tMZB^}dQp=B1Oi#hv zqK8%t0g4~XL^1m*Z2}EA-a>la)0upVsaTz)Aw?Uiih8E7qQ^aHuP9?)l^}ikReMx} zIVc84EY<3G1;$UiwWBQq9w;zQ5Oo}7B5u5x90R*JXJfvf(Me%AQz5>`!fZjviHgp1 zg#k)1sJgYrVfd_XsRQ7m;Sp8nU|#-+5Tz4{7^w92DCfuf_Ho<|ajj-Q3#E{J^iKZZPY6|BtD3=qK)VO{D}zC#HCxJU zA;nYkDzZ1<-lZ8;6W1rdL+Dq5-haDH)KhfswHV=ib#EaA+BYQoBZPuPtj}!YheHjPGQr(!!9;M zh6Q2O7Lr%G@H{9VRy+#`jn^df0n{`pV(o9#Lh)&(w<(P7*+gd+X9gTa^BVt~Ut6M0 z@o~c*T*-R+hlwhk1zICxBNaP?dd&t2Uw(aQnDIQRf7rR6<0WP0d$(@F8ucco>w zF^Ykag$3d?jr1ErH|_9}r9;#XlSIkNsmi6VHcow>e0mV#h~?T+q^JWs@4fWCy;FC; z8$_aaIHvPf&3~dXkMX0POS2!B$XI>ognJJW9lgJeTUx_!jGsqT&QcaP;h|JQ5Sus) zdI<-yFI2~Y57w>j$6=zHs?yvkpruLJtxfc*{OiF_S##Nmf7k^OS;vGoxFIjxMGZNa zjyvrDkDdiaTKb{%jWNh2BgJao`DRbBE9uF{(+$0p#UN>Lww6OSC0d4vGR+PNW{OWo zu(LT$02ZQ&y9nGnfS{x#PH_q=9~X++dB&7vRz{fpq`0t71Kj(4NXg|Ro*vC^ z_{LCpU)9&Tr2~Q!FZ(QJ-w4HQlBCDgmY$OYTAbk?CUk@;pCxS~uZ1?$ z55`<^YUc19o-0PmF&RYwEu@VIC^B)K;OMJhZM>(Q6?n{5s&|7P=KkEfX>HDW^Hk&+ zX|CFJKAwtut!iIPZ=7KWyuLpuy~B&)-sem5t`Gt;qVvR z&gT~p_G29<2!4ypG7TAy5TFS(w~aR7+;UiQj{Gj@^7WZjD(w~HQ3D&yR%#2r^Q9Zr z;MVdFJ{C7_gG5>~(Qwt^2t*~68seM^!k@&e`s%`_Mg8jJ4Y;Ku#7|Cu1=d71HAbaK zalL5EzRIOW1(nElXwewJn#$4(tgnea+`q>_U=ZzKs1cdk5@?+g$akp z^o0k9;QrF&Vlz=Tvl3GmNT1V&X z3L%`Iw-gu3Bffp3agcQ$hK7s7$}2x&f2(r86VA$zAXVDDC#dQk%YB@o;wFIFw5r1KuCfUvlAJ#Twymf}3$d4M-N;!il$6{t1t`t1ASa70T zGa_sVxRDx&JuGJ+PLWjlhlUQk{n2|A$HMpzujeXJ1%{UlRnsN*#80&jyz$*M>4>fP zDA58xg#EBDcqR<@sFj0wjDkxbs2f7sf=TDU{jo!z4-rPcSe~W3Mb#iJ);;k+uO2TT zk-;05QPq}6r0vCXQH5YFT>I5EWzQ3_XD|%I$nyH=z?V50bGq7`+)1w=cD`MxZj+qvl151C6S$m(gO&2aWx^A>RXnCZYb1l`MzyCk85L}l969dCStP2 UeH#CtUyZe?Yq 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 N=wUa9=ZE}~{s+tpS+oEE diff --git a/mobile/android/app/src/main/res/drawable-xxxhdpi/ic_memories_widget.png b/mobile/android/app/src/main/res/drawable-xxxhdpi/ic_memories_widget.png new file mode 100644 index 0000000000000000000000000000000000000000..616d6f31489872db729ae9f4c8912af447ade4d6 GIT binary patch literal 19971 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 e)R}#D!N1bG?NifPs&m Date: Fri, 16 May 2025 15:07:45 +0530 Subject: [PATCH 012/316] fix(home-widget): update default image caption & rename totalMemories --- .../io/ente/photos/EnteAlbumsWidgetProvider.kt | 8 ++++---- .../io/ente/photos/EntePeopleWidgetProvider.kt | 8 ++++---- .../app/src/main/res/layout/albums_widget_layout.xml | 2 +- .../app/src/main/res/layout/memory_widget_layout.xml | 2 +- .../app/src/main/res/layout/people_widget_layout.xml | 2 +- mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift | 12 ++++++------ mobile/ios/EnteMemoryWidget/EnteMemoryWidget.swift | 2 +- mobile/ios/EntePeopleWidget/EntePeopleWidget.swift | 12 ++++++------ 8 files changed, 24 insertions(+), 24 deletions(-) diff --git a/mobile/android/app/src/main/kotlin/io/ente/photos/EnteAlbumsWidgetProvider.kt b/mobile/android/app/src/main/kotlin/io/ente/photos/EnteAlbumsWidgetProvider.kt index 884042afb3..81ac6cc5c4 100644 --- a/mobile/android/app/src/main/kotlin/io/ente/photos/EnteAlbumsWidgetProvider.kt +++ b/mobile/android/app/src/main/kotlin/io/ente/photos/EnteAlbumsWidgetProvider.kt @@ -32,13 +32,13 @@ class EnteAlbumsWidgetProvider : HomeWidgetProvider() { val views = RemoteViews(context.packageName, R.layout.albums_widget_layout) .apply { - val totalMemories = - widgetData.getInt("totalMemories", 0) + val totalAlbums = + widgetData.getInt("totalAlbums", 0) var randomNumber = -1 var imagePath: String? = null - if (totalMemories > 0) { + if (totalAlbums > 0) { randomNumber = - (0 until totalMemories!!).random() + (0 until totalAlbums!!).random() imagePath = widgetData.getString( "albums_widget_" + diff --git a/mobile/android/app/src/main/kotlin/io/ente/photos/EntePeopleWidgetProvider.kt b/mobile/android/app/src/main/kotlin/io/ente/photos/EntePeopleWidgetProvider.kt index 0e7404adac..082810a654 100644 --- a/mobile/android/app/src/main/kotlin/io/ente/photos/EntePeopleWidgetProvider.kt +++ b/mobile/android/app/src/main/kotlin/io/ente/photos/EntePeopleWidgetProvider.kt @@ -32,13 +32,13 @@ class EntePeopleWidgetProvider : HomeWidgetProvider() { val views = RemoteViews(context.packageName, R.layout.people_widget_layout) .apply { - val totalMemories = - widgetData.getInt("totalMemories", 0) + val totalPeople = + widgetData.getInt("totalPeople", 0) var randomNumber = -1 var imagePath: String? = null - if (totalMemories > 0) { + if (totalPeople > 0) { randomNumber = - (0 until totalMemories!!).random() + (0 until totalPeople!!).random() imagePath = widgetData.getString( "people_widget_" + diff --git a/mobile/android/app/src/main/res/layout/albums_widget_layout.xml b/mobile/android/app/src/main/res/layout/albums_widget_layout.xml index b8ff8dd548..a24d08014d 100644 --- a/mobile/android/app/src/main/res/layout/albums_widget_layout.xml +++ b/mobile/android/app/src/main/res/layout/albums_widget_layout.xml @@ -72,7 +72,7 @@ android:id="@+id/widget_placeholder_text" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="Your albums will appear here" + android:text="Go to Settings->General to customise the widget" android:textSize="14sp" android:gravity="center_horizontal" android:textColor="@color/widget_text_color" diff --git a/mobile/android/app/src/main/res/layout/memory_widget_layout.xml b/mobile/android/app/src/main/res/layout/memory_widget_layout.xml index 22dd0af334..7f831b1f94 100644 --- a/mobile/android/app/src/main/res/layout/memory_widget_layout.xml +++ b/mobile/android/app/src/main/res/layout/memory_widget_layout.xml @@ -72,7 +72,7 @@ android:id="@+id/widget_placeholder_text" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="Your memories will appear here" + android:text="Go to Settings->General to customise the widget" android:textSize="14sp" android:gravity="center_horizontal" android:textColor="@color/widget_text_color" diff --git a/mobile/android/app/src/main/res/layout/people_widget_layout.xml b/mobile/android/app/src/main/res/layout/people_widget_layout.xml index 9be85822aa..1f5e1f17be 100644 --- a/mobile/android/app/src/main/res/layout/people_widget_layout.xml +++ b/mobile/android/app/src/main/res/layout/people_widget_layout.xml @@ -72,7 +72,7 @@ android:id="@+id/widget_placeholder_text" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="People related photos will appear here" + android:text="Go to Settings->General to customise the widget" android:textSize="14sp" android:gravity="center_horizontal" android:textColor="@color/widget_text_color" diff --git a/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift b/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift index a9413f0789..4552db4db2 100644 --- a/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift +++ b/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift @@ -39,13 +39,13 @@ struct Provider: TimelineProvider { direction: .backward )! - var totalMemories = - data?.integer(forKey: "totalMemories") + var totalAlbums = + data?.integer(forKey: "totalAlbums") - if totalMemories != nil && totalMemories! > 0 { - let count = totalMemories! > 5 ? 5 : totalMemories + if totalAlbums != nil && totalAlbums! > 0 { + let count = totalAlbums! > 5 ? 5 : totalAlbums for offset in 0..General to customise the widget") .font(.custom("Inter", size: 14, relativeTo: .caption)) .foregroundStyle(.white) // Tint-aware color .multilineTextAlignment(.center) diff --git a/mobile/ios/EnteMemoryWidget/EnteMemoryWidget.swift b/mobile/ios/EnteMemoryWidget/EnteMemoryWidget.swift index 22071159ea..6888e53da7 100644 --- a/mobile/ios/EnteMemoryWidget/EnteMemoryWidget.swift +++ b/mobile/ios/EnteMemoryWidget/EnteMemoryWidget.swift @@ -190,7 +190,7 @@ struct EnteMemoryWidgetEntryView: View { .aspectRatio(contentMode: .fit) .padding(8) - Text("Your memories will appear here") + Text("Go to Settings->General to customise the widget") .font(.custom("Inter", size: 14, relativeTo: .caption)) .foregroundStyle(.white) // Tint-aware color .multilineTextAlignment(.center) diff --git a/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift b/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift index f8621a7cb2..857e9cf8df 100644 --- a/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift +++ b/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift @@ -39,13 +39,13 @@ struct Provider: TimelineProvider { direction: .backward )! - var totalMemories = - data?.integer(forKey: "totalMemories") + var totalPeople = + data?.integer(forKey: "totalPeople") - if totalMemories != nil && totalMemories! > 0 { - let count = totalMemories! > 5 ? 5 : totalMemories + if totalPeople != nil && totalPeople! > 0 { + let count = totalPeople! > 5 ? 5 : totalPeople for offset in 0..General to customise the widget") .font(.custom("Inter", size: 14, relativeTo: .caption)) .foregroundStyle(.white) // Tint-aware color .multilineTextAlignment(.center) From bffd4d83a5be2ca68a0ad32511a7bb07f99ea273 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Fri, 16 May 2025 18:41:21 +0530 Subject: [PATCH 013/316] fix: update the deep link --- .../src/main/kotlin/io/ente/photos/EnteAlbumsWidgetProvider.kt | 2 +- mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mobile/android/app/src/main/kotlin/io/ente/photos/EnteAlbumsWidgetProvider.kt b/mobile/android/app/src/main/kotlin/io/ente/photos/EnteAlbumsWidgetProvider.kt index 81ac6cc5c4..5f0ae9456f 100644 --- a/mobile/android/app/src/main/kotlin/io/ente/photos/EnteAlbumsWidgetProvider.kt +++ b/mobile/android/app/src/main/kotlin/io/ente/photos/EnteAlbumsWidgetProvider.kt @@ -68,7 +68,7 @@ class EnteAlbumsWidgetProvider : HomeWidgetProvider() { val deepLinkUri = Uri.parse( - "albumswidget://message?generatedId=${generatedId}&homeWidget" + "albumwidget://message?generatedId=${generatedId}&homeWidget" ) val pendingIntent = diff --git a/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift b/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift index 4552db4db2..82e1aed750 100644 --- a/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift +++ b/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift @@ -207,7 +207,7 @@ struct EnteAlbumWidgetEntryView: View { .widgetURL( URL( string: - "albumswidget://message?generatedId=\(entry.generatedId != nil ? String(entry.generatedId!) : "nan")&homeWidget" + "albumwidget://message?generatedId=\(entry.generatedId != nil ? String(entry.generatedId!) : "nan")&homeWidget" ) ) } From 4c7121fd6c290f22de16df146d8c59c24a938cbd Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Mon, 19 May 2025 14:04:19 +0530 Subject: [PATCH 014/316] chore: update generated messages --- mobile/lib/generated/intl/messages_ar.dart | 1 - mobile/lib/generated/intl/messages_de.dart | 8 +- mobile/lib/generated/intl/messages_es.dart | 2 - mobile/lib/generated/intl/messages_fr.dart | 9 +- mobile/lib/generated/intl/messages_it.dart | 7 + mobile/lib/generated/intl/messages_ja.dart | 1 - mobile/lib/generated/intl/messages_lt.dart | 151 +- mobile/lib/generated/intl/messages_nl.dart | 2 - mobile/lib/generated/intl/messages_no.dart | 2 - mobile/lib/generated/intl/messages_pt.dart | 1618 +++++++---------- mobile/lib/generated/intl/messages_pt_BR.dart | 8 +- mobile/lib/generated/intl/messages_ru.dart | 26 +- mobile/lib/generated/intl/messages_tr.dart | 1 - mobile/lib/generated/intl/messages_uk.dart | 10 +- mobile/lib/generated/intl/messages_zh.dart | 1 - 15 files changed, 795 insertions(+), 1052 deletions(-) diff --git a/mobile/lib/generated/intl/messages_ar.dart b/mobile/lib/generated/intl/messages_ar.dart index 9550bdd5e1..96f0431c1a 100644 --- a/mobile/lib/generated/intl/messages_ar.dart +++ b/mobile/lib/generated/intl/messages_ar.dart @@ -2067,7 +2067,6 @@ class MessageLookup extends MessageLookupByLibrary { "جارٍ التحقق من مفتاح الاسترداد..."), "videoInfo": MessageLookupByLibrary.simpleMessage("معلومات الفيديو"), "videoSmallCase": MessageLookupByLibrary.simpleMessage("فيديو"), - "videoStreaming": MessageLookupByLibrary.simpleMessage("بث الفيديو"), "videos": MessageLookupByLibrary.simpleMessage("مقاطع الفيديو"), "viewActiveSessions": MessageLookupByLibrary.simpleMessage("عرض الجلسات النشطة"), diff --git a/mobile/lib/generated/intl/messages_de.dart b/mobile/lib/generated/intl/messages_de.dart index af0429846a..c35ae73cfd 100644 --- a/mobile/lib/generated/intl/messages_de.dart +++ b/mobile/lib/generated/intl/messages_de.dart @@ -99,6 +99,8 @@ class MessageLookup extends MessageLookupByLibrary { static String m26(count, formattedSize) => "${count} Dateien, ${formattedSize} jede"; + static String m114(name) => "Diese E-Mail ist bereits verknüpft mit ${name}."; + static String m27(newEmail) => "E-Mail-Adresse geändert zu ${newEmail}"; static String m28(email) => "${email} hat kein Ente-Konto."; @@ -306,6 +308,8 @@ class MessageLookup extends MessageLookupByLibrary { static String m108(email) => "Verifiziere ${email}"; + static String m115(name) => "${name} zum Entfernen des Links anzeigen"; + static String m109(count) => "${Intl.plural(count, zero: '0 Betrachter hinzugefügt', one: 'Einen Betrachter hinzugefügt', other: '${count} Betrachter hinzugefügt')}"; @@ -873,6 +877,7 @@ class MessageLookup extends MessageLookupByLibrary { "duplicateFileCountWithStorageSaved": m25, "duplicateItemsGroup": m26, "edit": MessageLookupByLibrary.simpleMessage("Bearbeiten"), + "editEmailAlreadyLinked": m114, "editLocation": MessageLookupByLibrary.simpleMessage("Standort bearbeiten"), "editLocationTagTitle": @@ -2145,8 +2150,6 @@ class MessageLookup extends MessageLookupByLibrary { "videoInfo": MessageLookupByLibrary.simpleMessage("Video-Informationen"), "videoSmallCase": MessageLookupByLibrary.simpleMessage("Video"), - "videoStreaming": - MessageLookupByLibrary.simpleMessage("Video-Streaming"), "videos": MessageLookupByLibrary.simpleMessage("Videos"), "viewActiveSessions": MessageLookupByLibrary.simpleMessage("Aktive Sitzungen anzeigen"), @@ -2159,6 +2162,7 @@ class MessageLookup extends MessageLookupByLibrary { "viewLargeFilesDesc": MessageLookupByLibrary.simpleMessage( "Dateien anzeigen, die den meisten Speicherplatz belegen."), "viewLogs": MessageLookupByLibrary.simpleMessage("Protokolle anzeigen"), + "viewPersonToUnlink": m115, "viewRecoveryKey": MessageLookupByLibrary.simpleMessage( "Wiederherstellungsschlüssel anzeigen"), "viewer": MessageLookupByLibrary.simpleMessage("Zuschauer"), diff --git a/mobile/lib/generated/intl/messages_es.dart b/mobile/lib/generated/intl/messages_es.dart index a454c25b56..9cf4981631 100644 --- a/mobile/lib/generated/intl/messages_es.dart +++ b/mobile/lib/generated/intl/messages_es.dart @@ -2156,8 +2156,6 @@ class MessageLookup extends MessageLookupByLibrary { "videoInfo": MessageLookupByLibrary.simpleMessage("Información de video"), "videoSmallCase": MessageLookupByLibrary.simpleMessage("vídeo"), - "videoStreaming": - MessageLookupByLibrary.simpleMessage("Transmisión de vídeo"), "videos": MessageLookupByLibrary.simpleMessage("Vídeos"), "viewActiveSessions": MessageLookupByLibrary.simpleMessage("Ver sesiones activas"), diff --git a/mobile/lib/generated/intl/messages_fr.dart b/mobile/lib/generated/intl/messages_fr.dart index f33ec00c7e..c79873d653 100644 --- a/mobile/lib/generated/intl/messages_fr.dart +++ b/mobile/lib/generated/intl/messages_fr.dart @@ -137,6 +137,9 @@ class MessageLookup extends MessageLookupByLibrary { static String m47(personName, email) => "Cela va associer ${personName} à ${email}"; + static String m48(count, formattedCount) => + "${Intl.plural(count, zero: 'aucun souvenir', one: '${formattedCount} souvenir', other: '${formattedCount} souvenirs')}"; + static String m50(albumName) => "Déplacé avec succès vers ${albumName}"; static String m51(personName) => "Aucune suggestion pour ${personName}"; @@ -282,6 +285,8 @@ class MessageLookup extends MessageLookupByLibrary { static String m108(email) => "Vérifier ${email}"; + static String m115(name) => "Voir ${name} pour délier"; + static String m110(email) => "Nous avons envoyé un email à ${email}"; @@ -1296,6 +1301,7 @@ class MessageLookup extends MessageLookupByLibrary { "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), "me": MessageLookupByLibrary.simpleMessage("Moi"), + "memoryCount": m48, "merchandise": MessageLookupByLibrary.simpleMessage("Boutique"), "mergeWithExisting": MessageLookupByLibrary.simpleMessage("Fusionner avec existant"), @@ -2155,8 +2161,6 @@ class MessageLookup extends MessageLookupByLibrary { "Vérification de la clé de récupération..."), "videoInfo": MessageLookupByLibrary.simpleMessage("Informations vidéo"), "videoSmallCase": MessageLookupByLibrary.simpleMessage("vidéo"), - "videoStreaming": - MessageLookupByLibrary.simpleMessage("Streaming vidéo"), "videos": MessageLookupByLibrary.simpleMessage("Vidéos"), "viewActiveSessions": MessageLookupByLibrary.simpleMessage( "Afficher les connexions actives"), @@ -2171,6 +2175,7 @@ class MessageLookup extends MessageLookupByLibrary { "Affichez les fichiers qui consomment le plus de stockage."), "viewLogs": MessageLookupByLibrary.simpleMessage("Afficher les journaux"), + "viewPersonToUnlink": m115, "viewRecoveryKey": MessageLookupByLibrary.simpleMessage("Voir la clé de récupération"), "viewer": MessageLookupByLibrary.simpleMessage("Observateur"), diff --git a/mobile/lib/generated/intl/messages_it.dart b/mobile/lib/generated/intl/messages_it.dart index 3e1bedb7af..67953e6a81 100644 --- a/mobile/lib/generated/intl/messages_it.dart +++ b/mobile/lib/generated/intl/messages_it.dart @@ -87,6 +87,8 @@ class MessageLookup extends MessageLookupByLibrary { static String m27(newEmail) => "Email cambiata in ${newEmail}"; + static String m28(email) => "${email} non ha un account Ente."; + static String m29(email) => "${email} non ha un account Ente.\n\nInvia un invito per condividere foto."; @@ -775,6 +777,7 @@ class MessageLookup extends MessageLookupByLibrary { "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage("Email già registrata."), "emailChangedTo": m27, + "emailDoesNotHaveEnteAccount": m28, "emailNoEnteAccount": m29, "emailNotRegistered": MessageLookupByLibrary.simpleMessage("Email non registrata."), @@ -1032,6 +1035,8 @@ class MessageLookup extends MessageLookupByLibrary { "Gli elementi mostrano il numero di giorni rimanenti prima della cancellazione permanente"), "itemsWillBeRemovedFromAlbum": MessageLookupByLibrary.simpleMessage( "Gli elementi selezionati saranno rimossi da questo album"), + "joinAlbumConfirmationDialogBody": MessageLookupByLibrary.simpleMessage( + "Unirsi a un album renderà visibile la tua email ai suoi partecipanti."), "joinDiscord": MessageLookupByLibrary.simpleMessage("Unisciti a Discord"), "keepPhotos": MessageLookupByLibrary.simpleMessage("Mantieni foto"), @@ -1079,6 +1084,8 @@ class MessageLookup extends MessageLookupByLibrary { "livePhotos": MessageLookupByLibrary.simpleMessage("Live Photo"), "loadMessage1": MessageLookupByLibrary.simpleMessage( "Puoi condividere il tuo abbonamento con la tua famiglia"), + "loadMessage2": MessageLookupByLibrary.simpleMessage( + "Finora abbiamo conservato oltre 200 milioni di ricordi"), "loadMessage3": MessageLookupByLibrary.simpleMessage( "Teniamo 3 copie dei tuoi dati, uno in un rifugio sotterraneo antiatomico"), "loadMessage4": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_ja.dart b/mobile/lib/generated/intl/messages_ja.dart index 814fb0413f..0c9fbc3680 100644 --- a/mobile/lib/generated/intl/messages_ja.dart +++ b/mobile/lib/generated/intl/messages_ja.dart @@ -1793,7 +1793,6 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("リカバリキーを確認中..."), "videoInfo": MessageLookupByLibrary.simpleMessage("ビデオ情報"), "videoSmallCase": MessageLookupByLibrary.simpleMessage("ビデオ"), - "videoStreaming": MessageLookupByLibrary.simpleMessage("動画ストリーミング"), "videos": MessageLookupByLibrary.simpleMessage("ビデオ"), "viewActiveSessions": MessageLookupByLibrary.simpleMessage("アクティブなセッションを表示"), diff --git a/mobile/lib/generated/intl/messages_lt.dart b/mobile/lib/generated/intl/messages_lt.dart index 4242687d1d..619302f1f2 100644 --- a/mobile/lib/generated/intl/messages_lt.dart +++ b/mobile/lib/generated/intl/messages_lt.dart @@ -23,16 +23,20 @@ class MessageLookup extends MessageLookupByLibrary { static String m0(title) => "${title} (Aš)"; static String m1(count) => - "${Intl.plural(count, zero: 'Pridėti bendradarbių', one: 'Pridėti bendradarbį', few: 'Pridėti bendradarbius', many: 'Pridėti bendradarbio', other: 'Pridėti bendradarbių')}"; + "${Intl.plural(count, zero: 'Pridėti bendradarbių', one: 'Pridėti bendradarbį', other: 'Pridėti bendradarbių')}"; static String m2(count) => - "${Intl.plural(count, one: 'Pridėti elementą', few: 'Pridėti elementus', many: 'Pridėti elemento', other: 'Pridėti elementų')}"; + "${Intl.plural(count, one: 'Pridėti elementą', other: 'Pridėti elementų')}"; static String m3(storageAmount, endDate) => "Jūsų ${storageAmount} priedas galioja iki ${endDate}"; static String m4(count) => - "${Intl.plural(count, zero: 'Pridėti žiūrėtojų', one: 'Pridėti žiūrėtoją', few: 'Pridėti žiūrėtojus', many: 'Pridėti žiūrėtojo', other: 'Pridėti žiūrėtojų')}"; + "${Intl.plural(count, zero: 'Pridėti žiūrėtojų', one: 'Pridėti žiūrėtoją', other: 'Pridėti žiūrėtojų')}"; + + static String m5(emailOrName) => "Įtraukė ${emailOrName}"; + + static String m6(albumName) => "Sėkmingai įtraukta į „${albumName}“"; static String m7(name) => "Žavisi ${name}"; @@ -56,6 +60,9 @@ class MessageLookup extends MessageLookupByLibrary { 'other': 'Jūs gavote ${storageAmountInGb} GB iki šiol.', })}"; + static String m15(albumName) => + "Bendradarbiavimo nuoroda sukurta albumui „${albumName}“"; + static String m16(count) => "${Intl.plural(count, zero: 'Pridėta 0 bendradarbių', one: 'Pridėtas 1 bendradarbis', other: 'Pridėta ${count} bendradarbių')}"; @@ -71,7 +78,7 @@ class MessageLookup extends MessageLookupByLibrary { static String m20(endpoint) => "Prijungta prie ${endpoint}"; static String m21(count) => - "${Intl.plural(count, one: 'Ištrinti ${count} elementą', few: 'Ištrinti ${count} elementus', many: 'Ištrinti ${count} elemento', other: 'Ištrinti ${count} elementų')}"; + "${Intl.plural(count, one: 'Ištrinti ${count} elementą', other: 'Ištrinti ${count} elementų')}"; static String m22(currentlyDeleting, totalCount) => "Ištrinama ${currentlyDeleting} / ${totalCount}"; @@ -83,7 +90,7 @@ class MessageLookup extends MessageLookupByLibrary { "Iš savo registruoto el. pašto adreso atsiųskite el. laišką adresu ${supportEmail}"; static String m25(count, storageSaved) => - "Išvalėte ${Intl.plural(count, one: '${count} dubliuojantį failą', few: '${count} dubliuojančius failus', many: '${count} dubliuojančio failo', other: '${count} dubliuojančių failų')}, išsaugodami (${storageSaved})."; + "Išvalėte ${Intl.plural(count, one: '${count} dubliuojantį failą', other: '${count} dubliuojančių failų')}, išsaugodami (${storageSaved})"; static String m26(count, formattedSize) => "${count} failai (-ų), kiekvienas ${formattedSize}"; @@ -97,6 +104,9 @@ class MessageLookup extends MessageLookupByLibrary { static String m31(text) => "Rastos papildomos nuotraukos, skirtos ${text}"; + static String m34(count, formattedNumber) => + "${Intl.plural(count, one: '${formattedNumber} failas šiame albume saugiai sukurta atsarginė kopija', few: '${formattedNumber} failai šiame albume saugiai sukurtos atsarginės kopijos', many: '${formattedNumber} failo šiame albume saugiai sukurtos atsargines kopijos', other: '${formattedNumber} failų šiame albume saugiai sukurta atsarginė kopija')}."; + static String m35(storageAmountInGB) => "${storageAmountInGB} GB kiekvieną kartą, kai kas nors užsiregistruoja mokamam planui ir pritaiko jūsų kodą."; @@ -104,15 +114,18 @@ class MessageLookup extends MessageLookupByLibrary { "Nemokamas bandomasis laikotarpis galioja iki ${endDate}"; static String m37(count) => - "Vis dar galite pasiekti ${Intl.plural(count, one: 'jį', few: 'juos', many: 'juos', other: 'jų')} platformoje „Ente“, kol turite aktyvų prenumeratą."; + "Vis dar galite pasiekti ${Intl.plural(count, one: 'jį', other: 'jų')} platformoje „Ente“, kol turite aktyvų prenumeratą."; static String m38(sizeInMBorGB) => "Atlaisvinti ${sizeInMBorGB}"; + static String m39(count, formattedSize) => + "${Intl.plural(count, one: 'Jį galima ištrinti iš įrenginio, kad atlaisvintų ${formattedSize}', other: 'Jų galima ištrinti iš įrenginio, kad atlaisvintų ${formattedSize}')}"; + static String m40(currentlyProcessing, totalCount) => "Apdorojama ${currentlyProcessing} / ${totalCount}"; static String m42(count) => - "${Intl.plural(count, one: '${count} elementas', few: '${count} elementai', many: '${count} elemento', other: '${count} elementų')}"; + "${Intl.plural(count, one: '${count} elementas', other: '${count} elementų')}"; static String m44(email) => "${email} pakvietė jus būti patikimu kontaktu"; @@ -122,10 +135,12 @@ class MessageLookup extends MessageLookupByLibrary { "Tai susies ${personName} su ${email}."; static String m48(count, formattedCount) => - "${Intl.plural(count, zero: 'nėra prisiminimų', one: '${formattedCount} prisiminimas', few: '${formattedCount} prisiminimai', many: '${formattedCount} prisiminimo', other: '${formattedCount} prisiminimų')}"; + "${Intl.plural(count, zero: 'nėra prisiminimų', one: '${formattedCount} prisiminimas', other: '${formattedCount} prisiminimų')}"; static String m49(count) => - "${Intl.plural(count, one: 'Perkelti elementą', few: 'Perkelti elementus', many: 'Perkelti elemento', other: 'Perkelti elementų')}"; + "${Intl.plural(count, one: 'Perkelti elementą', other: 'Perkelti elementų')}"; + + static String m50(albumName) => "Sėkmingai perkelta į „${albumName}“"; static String m51(personName) => "Nėra pasiūlymų asmeniui ${personName}."; @@ -141,10 +156,7 @@ class MessageLookup extends MessageLookupByLibrary { "Kreipkitės į ${providerName} palaikymo komandą, jei jums buvo nuskaičiuota."; static String m59(count) => - "${Intl.plural(count, zero: 'Nėra nuotraukų', one: '1 nuotrauka', few: '${count} nuotraukos', many: '${count} nuotraukos', other: '${count} nuotraukų')}"; - - static String m60(count) => - "${Intl.plural(count, zero: '0 nuotraukų', one: '1 nuotrauka', few: '${count} nuotraukos', many: '${count} nuotraukos', other: '${count} nuotraukų')}"; + "${Intl.plural(count, zero: 'Nėra nuotraukų', one: '1 nuotrauka', other: '${count} nuotraukų')}"; static String m61(endDate) => "Nemokama bandomoji versija galioja iki ${endDate}.\nVėliau galėsite pasirinkti mokamą planą."; @@ -174,7 +186,7 @@ class MessageLookup extends MessageLookupByLibrary { static String m73(endDate) => "Prenumerata pratęsiama ${endDate}"; static String m75(count) => - "${Intl.plural(count, one: 'Rastas ${count} rezultatas', few: 'Rasti ${count} rezultatai', many: 'Rasta ${count} rezultato', other: 'Rasta ${count} rezultatų')}"; + "${Intl.plural(count, one: 'Rastas ${count} rezultatas', other: 'Rasta ${count} rezultatų')}"; static String m76(snapshotLength, searchLength) => "Sekcijų ilgio neatitikimas: ${snapshotLength} != ${searchLength}"; @@ -196,6 +208,8 @@ class MessageLookup extends MessageLookupByLibrary { static String m83(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Bendrinti su konkrečiais asmenimis', one: 'Bendrinta su 1 asmeniu', other: 'Bendrinta su ${numberOfPeople} asmenimis')}"; + static String m84(emailIDs) => "Bendrinta su ${emailIDs}"; + static String m85(fileType) => "Šis ${fileType} bus ištrintas iš jūsų įrenginio."; @@ -223,7 +237,7 @@ class MessageLookup extends MessageLookupByLibrary { static String m97(email) => "Tai – ${email} patvirtinimo ID"; static String m98(count) => - "${Intl.plural(count, one: 'Šią savaitę, prieš ${count} metus', few: 'Šią savaitę, prieš ${count} metus', many: 'Šią savaitę, prieš ${count} metų', other: 'Šią savaitę, prieš ${count} metų')}"; + "${Intl.plural(count, one: 'Šią savaitę, prieš ${count} metus', other: 'Šią savaitę, prieš ${count} metų')}"; static String m99(dateFormat) => "${dateFormat} per metus"; @@ -243,18 +257,17 @@ class MessageLookup extends MessageLookupByLibrary { static String m105(ignoreReason) => "Įkėlimas ignoruojamas dėl ${ignoreReason}."; + static String m106(count) => "Išsaugomi ${count} prisiminimai..."; + static String m107(endDate) => "Galioja iki ${endDate}"; static String m108(email) => "Patvirtinti ${email}"; - static String m109(count) => - "${Intl.plural(count, zero: 'Pridėta 0 žiūrėtojų', one: 'Pridėtas 1 žiūrėtojas', few: 'Pridėti ${count} žiūrėtojai', many: 'Pridėta ${count} žiūrėtojo', other: 'Pridėta ${count} žiūrėtojų')}"; - static String m110(email) => "Išsiuntėme laišką adresu ${email}"; static String m111(count) => - "${Intl.plural(count, one: 'prieš ${count} metus', few: 'prieš ${count} metus', many: 'prieš ${count} metų', other: 'prieš ${count} metų')}"; + "${Intl.plural(count, one: 'prieš ${count} metus', other: 'prieš ${count} metų')}"; static String m112(name) => "Jūs ir ${name}"; @@ -306,6 +319,8 @@ class MessageLookup extends MessageLookupByLibrary { "addViewer": MessageLookupByLibrary.simpleMessage("Pridėti žiūrėtoją"), "addViewers": m4, "addedAs": MessageLookupByLibrary.simpleMessage("Pridėta kaip"), + "addedBy": m5, + "addedSuccessfullyTo": m6, "addingToFavorites": MessageLookupByLibrary.simpleMessage("Pridedama prie mėgstamų..."), "admiringThem": m7, @@ -398,6 +413,8 @@ class MessageLookup extends MessageLookupByLibrary { "Jūsų prenumerata buvo atšaukta. Ar norėtumėte pasidalyti priežastimi?"), "askDeleteReason": MessageLookupByLibrary.simpleMessage( "Kokia yra pagrindinė priežastis, dėl kurios ištrinate savo paskyrą?"), + "askYourLovedOnesToShare": MessageLookupByLibrary.simpleMessage( + "Paprašykite savo artimuosius bendrinti"), "atAFalloutShelter": MessageLookupByLibrary.simpleMessage("priešgaisrinėje slėptuvėje"), "authToChangeEmailVerificationSetting": @@ -424,6 +441,8 @@ class MessageLookup extends MessageLookupByLibrary { "Nustatykite tapatybę, kad peržiūrėtumėte savo aktyvius seansus"), "authToViewYourHiddenFiles": MessageLookupByLibrary.simpleMessage( "Nustatykite tapatybę, kad peržiūrėtumėte paslėptus failus"), + "authToViewYourMemories": MessageLookupByLibrary.simpleMessage( + "Nustatykite tapatybę, kad peržiūrėtumėte savo prisiminimus"), "authToViewYourRecoveryKey": MessageLookupByLibrary.simpleMessage( "Nustatykite tapatybę, kad peržiūrėtumėte savo atkūrimo raktą"), "authenticating": @@ -451,6 +470,8 @@ class MessageLookup extends MessageLookupByLibrary { "backgroundWithThem": m11, "backup": MessageLookupByLibrary.simpleMessage("Kurti atsarginę kopiją"), + "backupFailed": + MessageLookupByLibrary.simpleMessage("Atsarginė kopija nepavyko"), "backupFile": MessageLookupByLibrary.simpleMessage( "Kurti atsarginę failo kopiją"), "backupOverMobileData": MessageLookupByLibrary.simpleMessage( @@ -487,10 +508,17 @@ class MessageLookup extends MessageLookupByLibrary { "Dabar galima naudoti su prisiminimais integruotus pagrindinio ekrano valdiklius. Jie parodys jūsų ypatingas akimirkas neatvėrus programos."), "cachedData": MessageLookupByLibrary.simpleMessage("Podėliuoti duomenis"), + "calculating": MessageLookupByLibrary.simpleMessage("Skaičiuojama..."), "canNotOpenBody": MessageLookupByLibrary.simpleMessage( "Atsiprašome, šio albumo negalima atverti programoje."), "canNotOpenTitle": MessageLookupByLibrary.simpleMessage("Negalima atverti šio albumo"), + "canNotUploadToAlbumsOwnedByOthers": + MessageLookupByLibrary.simpleMessage( + "Negalima įkelti į kitiems priklausančius albumus"), + "canOnlyCreateLinkForFilesOwnedByYou": + MessageLookupByLibrary.simpleMessage( + "Galima sukurti nuorodą tik jums priklausantiems failams"), "canOnlyRemoveFilesOwnedByYou": MessageLookupByLibrary.simpleMessage( "Galima pašalinti tik jums priklausančius failus"), "cancel": MessageLookupByLibrary.simpleMessage("Atšaukti"), @@ -548,6 +576,10 @@ class MessageLookup extends MessageLookupByLibrary { "clickOnTheOverflowMenu": MessageLookupByLibrary.simpleMessage( "• Spustelėkite ant perpildymo meniu"), "close": MessageLookupByLibrary.simpleMessage("Uždaryti"), + "clubByCaptureTime": MessageLookupByLibrary.simpleMessage( + "Grupuoti pagal užfiksavimo laiką"), + "clubByFileName": MessageLookupByLibrary.simpleMessage( + "Grupuoti pagal failo pavadinimą"), "clusteringProgress": MessageLookupByLibrary.simpleMessage("Sankaupos vykdymas"), "codeAppliedPageTitle": @@ -562,11 +594,15 @@ class MessageLookup extends MessageLookupByLibrary { "Sukurkite nuorodą, kad asmenys galėtų pridėti ir peržiūrėti nuotraukas bendrinamame albume, nereikalaujant „Ente“ programos ar paskyros. Puikiai tinka įvykių nuotraukoms rinkti."), "collaborativeLink": MessageLookupByLibrary.simpleMessage("Bendradarbiavimo nuoroda"), + "collaborativeLinkCreatedFor": m15, "collaborator": MessageLookupByLibrary.simpleMessage("Bendradarbis"), "collaboratorsCanAddPhotosAndVideosToTheSharedAlbum": MessageLookupByLibrary.simpleMessage( "Bendradarbiai gali pridėti nuotraukų ir vaizdo įrašų į bendrintą albumą."), "collaboratorsSuccessfullyAdded": m16, + "collageLayout": MessageLookupByLibrary.simpleMessage("Išdėstymas"), + "collageSaved": MessageLookupByLibrary.simpleMessage( + "Koliažas išsaugotas į galeriją"), "collect": MessageLookupByLibrary.simpleMessage("Rinkti"), "collectEventPhotos": MessageLookupByLibrary.simpleMessage("Rinkti įvykių nuotraukas"), @@ -602,6 +638,8 @@ class MessageLookup extends MessageLookupByLibrary { "continueLabel": MessageLookupByLibrary.simpleMessage("Tęsti"), "continueOnFreeTrial": MessageLookupByLibrary.simpleMessage( "Tęsti nemokame bandomajame laikotarpyje"), + "convertToAlbum": + MessageLookupByLibrary.simpleMessage("Konvertuoti į albumą"), "copyEmailAddress": MessageLookupByLibrary.simpleMessage("Kopijuoti el. pašto adresą"), "copyLink": MessageLookupByLibrary.simpleMessage("Kopijuoti nuorodą"), @@ -614,6 +652,7 @@ class MessageLookup extends MessageLookupByLibrary { "Nepavyko atlaisvinti vietos."), "couldNotUpdateSubscription": MessageLookupByLibrary.simpleMessage( "Nepavyko atnaujinti prenumeratos"), + "count": MessageLookupByLibrary.simpleMessage("Skaičių"), "create": MessageLookupByLibrary.simpleMessage("Kurti"), "createAccount": MessageLookupByLibrary.simpleMessage("Kurti paskyrą"), "createAlbumActionHint": MessageLookupByLibrary.simpleMessage( @@ -646,6 +685,8 @@ class MessageLookup extends MessageLookupByLibrary { "declineTrustInvite": MessageLookupByLibrary.simpleMessage("Atmesti kvietimą"), "decrypting": MessageLookupByLibrary.simpleMessage("Iššifruojama..."), + "decryptingVideo": MessageLookupByLibrary.simpleMessage( + "Iššifruojamas vaizdo įrašas..."), "deduplicateFiles": MessageLookupByLibrary.simpleMessage("Atdubliuoti failus"), "delete": MessageLookupByLibrary.simpleMessage("Ištrinti"), @@ -705,6 +746,8 @@ class MessageLookup extends MessageLookupByLibrary { "developerSettingsWarning": MessageLookupByLibrary.simpleMessage( "Ar tikrai norite modifikuoti kūrėjo nustatymus?"), "deviceCodeHint": MessageLookupByLibrary.simpleMessage("Įveskite kodą"), + "deviceFilesAutoUploading": MessageLookupByLibrary.simpleMessage( + "Į šį įrenginio albumą įtraukti failai bus automatiškai įkelti į „Ente“."), "deviceLock": MessageLookupByLibrary.simpleMessage("Įrenginio užraktas"), "deviceLockExplanation": MessageLookupByLibrary.simpleMessage( @@ -807,6 +850,9 @@ class MessageLookup extends MessageLookupByLibrary { "Galutinis taškas sėkmingai atnaujintas"), "endtoendEncryptedByDefault": MessageLookupByLibrary.simpleMessage( "Pagal numatytąjį užšifruota visapusiškai"), + "enteCanEncryptAndPreserveFilesOnlyIfYouGrant": + MessageLookupByLibrary.simpleMessage( + "„Ente“ gali užšifruoti ir išsaugoti failus tik tada, jei suteikiate prieigą prie jų."), "entePhotosPerm": MessageLookupByLibrary.simpleMessage( "„Ente“ reikia leidimo išsaugoti jūsų nuotraukas"), "enteSubscriptionPitch": MessageLookupByLibrary.simpleMessage( @@ -904,6 +950,7 @@ class MessageLookup extends MessageLookupByLibrary { "fileSavedToGallery": MessageLookupByLibrary.simpleMessage( "Failas išsaugotas į galeriją"), "fileTypes": MessageLookupByLibrary.simpleMessage("Failų tipai"), + "filesBackedUpInAlbum": m34, "filesSavedToGallery": MessageLookupByLibrary.simpleMessage("Failai išsaugoti į galeriją"), "findPeopleByName": MessageLookupByLibrary.simpleMessage( @@ -932,6 +979,7 @@ class MessageLookup extends MessageLookupByLibrary { "Sutaupykite vietos savo įrenginyje išvalydami failus, kurių atsarginės kopijos jau buvo sukurtos."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Atlaisvinti vietos"), + "freeUpSpaceSaving": m39, "gallery": MessageLookupByLibrary.simpleMessage("Galerija"), "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "Galerijoje rodoma iki 1000 prisiminimų"), @@ -943,6 +991,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Eiti į nustatymus"), "googlePlayId": MessageLookupByLibrary.simpleMessage("„Google Play“ ID"), + "grantFullAccessPrompt": MessageLookupByLibrary.simpleMessage( + "Leiskite prieigą prie visų nuotraukų nustatymų programoje."), "grantPermission": MessageLookupByLibrary.simpleMessage("Suteikti leidimą"), "greenery": MessageLookupByLibrary.simpleMessage("Žaliasis gyvenimas"), @@ -974,6 +1024,8 @@ class MessageLookup extends MessageLookupByLibrary { "iOSOkButton": MessageLookupByLibrary.simpleMessage("Gerai"), "ignoreUpdate": MessageLookupByLibrary.simpleMessage("Ignoruoti"), "ignored": MessageLookupByLibrary.simpleMessage("ignoruota"), + "ignoredFolderUploadReason": MessageLookupByLibrary.simpleMessage( + "Kai kurie šio albumo failai ignoruojami, nes anksčiau buvo ištrinti iš „Ente“."), "imageNotAnalyzed": MessageLookupByLibrary.simpleMessage("Vaizdas neanalizuotas."), "immediately": MessageLookupByLibrary.simpleMessage("Iš karto"), @@ -1008,6 +1060,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Netinkamas raktas."), "invalidRecoveryKey": MessageLookupByLibrary.simpleMessage( "Įvestas atkūrimo raktas yra netinkamas. Įsitikinkite, kad jame yra 24 žodžiai, ir patikrinkite kiekvieno iš jų rašybą.\n\nJei įvedėte senesnį atkūrimo kodą, įsitikinkite, kad jis yra 64 simbolių ilgio, ir patikrinkite kiekvieną iš jų."), + "invite": MessageLookupByLibrary.simpleMessage("Kviesti"), "inviteToEnte": MessageLookupByLibrary.simpleMessage("Kviesti į „Ente“"), "inviteYourFriends": @@ -1059,6 +1112,8 @@ class MessageLookup extends MessageLookupByLibrary { "light": MessageLookupByLibrary.simpleMessage("Šviesi"), "lightTheme": MessageLookupByLibrary.simpleMessage("Šviesi"), "link": MessageLookupByLibrary.simpleMessage("Susieti"), + "linkCopiedToClipboard": MessageLookupByLibrary.simpleMessage( + "Nuoroda nukopijuota į iškarpinę"), "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Įrenginių riba"), "linkEmail": MessageLookupByLibrary.simpleMessage("Susieti el. paštą"), @@ -1093,6 +1148,8 @@ class MessageLookup extends MessageLookupByLibrary { "web.ente.io turi sklandų įkėlėją"), "loadMessage9": MessageLookupByLibrary.simpleMessage( "Naudojame „Xchacha20Poly1305“, kad saugiai užšifruotume jūsų duomenis."), + "loadingExifData": + MessageLookupByLibrary.simpleMessage("Įkeliami EXIF duomenys..."), "loadingGallery": MessageLookupByLibrary.simpleMessage("Įkeliama galerija..."), "loadingModel": @@ -1129,6 +1186,9 @@ class MessageLookup extends MessageLookupByLibrary { "longPressAnEmailToVerifyEndToEndEncryption": MessageLookupByLibrary.simpleMessage( "Ilgai paspauskite el. paštą, kad patvirtintumėte visapusį šifravimą."), + "longpressOnAnItemToViewInFullscreen": + MessageLookupByLibrary.simpleMessage( + "Ilgai paspauskite elementą, kad peržiūrėtumėte per visą ekraną"), "loopVideoOff": MessageLookupByLibrary.simpleMessage( "Išjungtas vaizdo įrašo ciklas"), "loopVideoOn": MessageLookupByLibrary.simpleMessage( @@ -1192,8 +1252,11 @@ class MessageLookup extends MessageLookupByLibrary { "Perkelti pasirinktas nuotraukas į vieną datą"), "moveToAlbum": MessageLookupByLibrary.simpleMessage("Perkelti į albumą"), + "movedSuccessfullyTo": m50, "movedToTrash": MessageLookupByLibrary.simpleMessage("Perkelta į šiukšlinę"), + "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( + "Perkeliami failai į albumą..."), "name": MessageLookupByLibrary.simpleMessage("Pavadinimą"), "nameTheAlbum": MessageLookupByLibrary.simpleMessage("Pavadinkite albumą"), @@ -1222,6 +1285,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Nėra „Ente“ paskyros!"), "noExifData": MessageLookupByLibrary.simpleMessage("Nėra EXIF duomenų"), "noFacesFound": MessageLookupByLibrary.simpleMessage("Nerasta veidų."), + "noHiddenPhotosOrVideos": MessageLookupByLibrary.simpleMessage( + "Nėra paslėptų nuotraukų arba vaizdo įrašų"), "noImagesWithLocation": MessageLookupByLibrary.simpleMessage("Nėra vaizdų su vietove"), "noInternetConnection": @@ -1263,6 +1328,8 @@ class MessageLookup extends MessageLookupByLibrary { "openAlbumInBrowserTitle": MessageLookupByLibrary.simpleMessage( "Naudokite interneto programą, kad pridėtumėte nuotraukų į šį albumą."), "openFile": MessageLookupByLibrary.simpleMessage("Atverti failą"), + "openSettings": + MessageLookupByLibrary.simpleMessage("Atverti nustatymus"), "openTheItem": MessageLookupByLibrary.simpleMessage("• Atverkite elementą."), "optionalAsShortAsYouLike": MessageLookupByLibrary.simpleMessage( @@ -1320,7 +1387,6 @@ class MessageLookup extends MessageLookupByLibrary { "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "Jūsų pridėtos nuotraukos bus pašalintos iš albumo"), - "photosCount": m60, "photosKeepRelativeTimeDifference": MessageLookupByLibrary.simpleMessage( "Nuotraukos išlaiko santykinį laiko skirtumą"), @@ -1353,6 +1419,8 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseVerifyTheCodeYouHaveEntered": MessageLookupByLibrary.simpleMessage("Patvirtinkite įvestą kodą."), "pleaseWait": MessageLookupByLibrary.simpleMessage("Palaukite..."), + "pleaseWaitDeletingAlbum": MessageLookupByLibrary.simpleMessage( + "Palaukite. Ištrinamas albumas"), "pleaseWaitForSometimeBeforeRetrying": MessageLookupByLibrary.simpleMessage( "Palaukite kurį laiką prieš bandydami pakartotinai"), @@ -1380,6 +1448,8 @@ class MessageLookup extends MessageLookupByLibrary { "processingImport": m65, "processingVideos": MessageLookupByLibrary.simpleMessage("Apdorojami vaizdo įrašai"), + "publicLinkCreated": + MessageLookupByLibrary.simpleMessage("Vieša nuoroda sukurta"), "publicLinkEnabled": MessageLookupByLibrary.simpleMessage("Įjungta viešoji nuoroda"), "queued": MessageLookupByLibrary.simpleMessage("Įtraukta eilėje"), @@ -1479,6 +1549,8 @@ class MessageLookup extends MessageLookupByLibrary { "removingFromFavorites": MessageLookupByLibrary.simpleMessage("Pašalinama iš mėgstamų..."), "rename": MessageLookupByLibrary.simpleMessage("Pervadinti"), + "renameAlbum": + MessageLookupByLibrary.simpleMessage("Pervadinti albumą"), "renameFile": MessageLookupByLibrary.simpleMessage("Pervadinti failą"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Pratęsti prenumeratą"), @@ -1489,6 +1561,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Pranešti apie riktą"), "resendEmail": MessageLookupByLibrary.simpleMessage("Iš naujo siųsti el. laišką"), + "resetIgnoredFiles": + MessageLookupByLibrary.simpleMessage("Atkurti ignoruojamus failus"), "resetPasswordTitle": MessageLookupByLibrary.simpleMessage( "Nustatyti slaptažodį iš naujo"), "resetToDefault": MessageLookupByLibrary.simpleMessage( @@ -1551,6 +1625,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Pasirinkite vietovę"), "selectALocationFirst": MessageLookupByLibrary.simpleMessage( "Pirmiausia pasirinkite vietovę"), + "selectAlbum": + MessageLookupByLibrary.simpleMessage("Pasirinkti albumą"), "selectAll": MessageLookupByLibrary.simpleMessage("Pasirinkti viską"), "selectAllShort": MessageLookupByLibrary.simpleMessage("Viskas"), "selectCoverPhoto": MessageLookupByLibrary.simpleMessage( @@ -1562,6 +1638,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Pasirinkite kalbą"), "selectMailApp": MessageLookupByLibrary.simpleMessage("Pasirinkti pašto programą"), + "selectMorePhotos": MessageLookupByLibrary.simpleMessage( + "Pasirinkti daugiau nuotraukų"), "selectOneDateAndTime": MessageLookupByLibrary.simpleMessage( "Pasirinkti vieną datą ir laiką"), "selectOneDateAndTimeForAll": MessageLookupByLibrary.simpleMessage( @@ -1623,14 +1701,18 @@ class MessageLookup extends MessageLookupByLibrary { "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Bendrinkite su ne „Ente“ naudotojais."), "shareWithPeopleSectionTitle": m83, + "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage( + "Bendrinkite savo pirmąjį albumą"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( "Sukurkite bendrinamus ir bendradarbiaujamus albumus su kitais „Ente“ naudotojais, įskaitant naudotojus nemokamuose planuose."), + "sharedByMe": MessageLookupByLibrary.simpleMessage("Bendrinta manimi"), "sharedByYou": MessageLookupByLibrary.simpleMessage("Bendrinta iš jūsų"), "sharedPhotoNotifications": MessageLookupByLibrary.simpleMessage( "Naujos bendrintos nuotraukos"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Gaukite pranešimus, kai kas nors prideda nuotrauką į bendrinamą albumą, kuriame dalyvaujate."), + "sharedWith": m84, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Bendrinta su manimi"), "sharedWithYou": @@ -1747,6 +1829,9 @@ class MessageLookup extends MessageLookupByLibrary { "Įvestas atkūrimo raktas yra neteisingas."), "theme": MessageLookupByLibrary.simpleMessage("Tema"), "theyAlsoGetXGb": m96, + "thisAlbumAlreadyHDACollaborativeLink": + MessageLookupByLibrary.simpleMessage( + "Šis albumas jau turi bendradarbiavimo nuorodą."), "thisCanBeUsedToRecoverYourAccountIfYou": MessageLookupByLibrary.simpleMessage( "Tai gali būti naudojama paskyrai atkurti, jei prarandate dvigubo tapatybės nustatymą"), @@ -1786,6 +1871,7 @@ class MessageLookup extends MessageLookupByLibrary { "tooManyIncorrectAttempts": MessageLookupByLibrary.simpleMessage( "Per daug neteisingų bandymų."), "total": MessageLookupByLibrary.simpleMessage("iš viso"), + "totalSize": MessageLookupByLibrary.simpleMessage("Bendrą dydį"), "trash": MessageLookupByLibrary.simpleMessage("Šiukšlinė"), "trashDaysLeft": m100, "trim": MessageLookupByLibrary.simpleMessage("Trumpinti"), @@ -1795,6 +1881,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Patikimi kontaktai"), "trustedInviteBody": m103, "tryAgain": MessageLookupByLibrary.simpleMessage("Bandyti dar kartą"), + "turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage( + "Įjunkite atsarginės kopijos kūrimą, kad automatiškai įkeltumėte į šį įrenginio aplanką įtrauktus failus į „Ente“."), "twitter": MessageLookupByLibrary.simpleMessage("„Twitter“"), "twoMonthsFreeOnYearlyPlans": MessageLookupByLibrary.simpleMessage( "2 mėnesiai nemokamai metiniuose planuose"), @@ -1819,6 +1907,10 @@ class MessageLookup extends MessageLookupByLibrary { "uncategorized": MessageLookupByLibrary.simpleMessage("Nekategorizuoti"), "unhide": MessageLookupByLibrary.simpleMessage("Rodyti"), + "unhideToAlbum": + MessageLookupByLibrary.simpleMessage("Rodyti į albumą"), + "unhidingFilesToAlbum": + MessageLookupByLibrary.simpleMessage("Rodomi failai į albumą"), "unlock": MessageLookupByLibrary.simpleMessage("Atrakinti"), "unpinAlbum": MessageLookupByLibrary.simpleMessage("Atsegti albumą"), "unselectAll": MessageLookupByLibrary.simpleMessage("Nesirinkti visų"), @@ -1829,6 +1921,11 @@ class MessageLookup extends MessageLookupByLibrary { "Atnaujinamas aplankų pasirinkimas..."), "upgrade": MessageLookupByLibrary.simpleMessage("Keisti planą"), "uploadIsIgnoredDueToIgnorereason": m105, + "uploadingFilesToAlbum": + MessageLookupByLibrary.simpleMessage("Įkeliami failai į albumą..."), + "uploadingMultipleMemories": m106, + "uploadingSingleMemory": + MessageLookupByLibrary.simpleMessage("Išsaugomas prisiminimas..."), "upto50OffUntil4thDec": MessageLookupByLibrary.simpleMessage( "Iki 50% nuolaida, gruodžio 4 d."), "usableReferralStorageInfo": MessageLookupByLibrary.simpleMessage( @@ -1863,8 +1960,6 @@ class MessageLookup extends MessageLookupByLibrary { "videoInfo": MessageLookupByLibrary.simpleMessage("Vaizdo įrašo informacija"), "videoSmallCase": MessageLookupByLibrary.simpleMessage("vaizdo įrašas"), - "videoStreaming": MessageLookupByLibrary.simpleMessage( - "Vaizdo įrašų srautinis perdavimas"), "videos": MessageLookupByLibrary.simpleMessage("Vaizdo įrašai"), "viewActiveSessions": MessageLookupByLibrary.simpleMessage("Peržiūrėti aktyvius seansus"), @@ -1880,7 +1975,6 @@ class MessageLookup extends MessageLookupByLibrary { "viewRecoveryKey": MessageLookupByLibrary.simpleMessage("Peržiūrėti atkūrimo raktą"), "viewer": MessageLookupByLibrary.simpleMessage("Žiūrėtojas"), - "viewersSuccessfullyAdded": m109, "visitWebToManage": MessageLookupByLibrary.simpleMessage( "Aplankykite web.ente.io, kad tvarkytumėte savo prenumeratą"), "waitingForVerification": @@ -1920,6 +2014,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Esate naujausioje versijoje"), "youCanAtMaxDoubleYourStorage": MessageLookupByLibrary.simpleMessage( "* Galite daugiausiai padvigubinti savo saugyklą."), + "youCanManageYourLinksInTheShareTab": + MessageLookupByLibrary.simpleMessage( + "Nuorodas galite valdyti bendrinimo kortelėje."), + "youCanTrySearchingForADifferentQuery": + MessageLookupByLibrary.simpleMessage( + "Galite pabandyti ieškoti pagal kitą užklausą."), "youCannotDowngradeToThisPlan": MessageLookupByLibrary.simpleMessage( "Negalite pakeisti į šį planą"), "youCannotShareWithYourself": MessageLookupByLibrary.simpleMessage( @@ -1949,6 +2049,9 @@ class MessageLookup extends MessageLookupByLibrary { "Jūsų patvirtinimo kodas nebegaliojantis."), "youveNoDuplicateFilesThatCanBeCleared": MessageLookupByLibrary.simpleMessage( - "Neturite dubliuotų failų, kuriuos būtų galima išvalyti.") + "Neturite dubliuotų failų, kuriuos būtų galima išvalyti."), + "youveNoFilesInThisAlbumThatCanBeDeleted": + MessageLookupByLibrary.simpleMessage( + "Neturite šiame albume failų, kuriuos būtų galima ištrinti.") }; } diff --git a/mobile/lib/generated/intl/messages_nl.dart b/mobile/lib/generated/intl/messages_nl.dart index b1c44c706e..e48bb991ea 100644 --- a/mobile/lib/generated/intl/messages_nl.dart +++ b/mobile/lib/generated/intl/messages_nl.dart @@ -2097,8 +2097,6 @@ class MessageLookup extends MessageLookupByLibrary { "Herstelsleutel verifiëren..."), "videoInfo": MessageLookupByLibrary.simpleMessage("Video-info"), "videoSmallCase": MessageLookupByLibrary.simpleMessage("video"), - "videoStreaming": - MessageLookupByLibrary.simpleMessage("Video streamen"), "videos": MessageLookupByLibrary.simpleMessage("Video\'s"), "viewActiveSessions": MessageLookupByLibrary.simpleMessage("Actieve sessies bekijken"), diff --git a/mobile/lib/generated/intl/messages_no.dart b/mobile/lib/generated/intl/messages_no.dart index c3d24e64f1..7e16e8d8f3 100644 --- a/mobile/lib/generated/intl/messages_no.dart +++ b/mobile/lib/generated/intl/messages_no.dart @@ -2075,8 +2075,6 @@ class MessageLookup extends MessageLookupByLibrary { "Verifiserer gjenopprettingsnøkkel..."), "videoInfo": MessageLookupByLibrary.simpleMessage("Videoinformasjon"), "videoSmallCase": MessageLookupByLibrary.simpleMessage("video"), - "videoStreaming": - MessageLookupByLibrary.simpleMessage("Videostrømming"), "videos": MessageLookupByLibrary.simpleMessage("Videoer"), "viewActiveSessions": MessageLookupByLibrary.simpleMessage("Vis aktive økter"), diff --git a/mobile/lib/generated/intl/messages_pt.dart b/mobile/lib/generated/intl/messages_pt.dart index 179e745e90..f2a28747c5 100644 --- a/mobile/lib/generated/intl/messages_pt.dart +++ b/mobile/lib/generated/intl/messages_pt.dart @@ -20,25 +20,12 @@ typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { String get localeName => 'pt'; - static String m0(title) => "${title} (Eu)"; - - static String m1(count) => - "${Intl.plural(count, one: 'Adicionar colaborador', other: 'Adicionar colaboradores')}"; - - static String m2(count) => - "${Intl.plural(count, one: 'Adicionar item', other: 'Adicionar itens')}"; - static String m3(storageAmount, endDate) => - "Seu complemento ${storageAmount} é válido até ${endDate}"; - - static String m4(count) => - "${Intl.plural(count, one: 'Adicionar visualizador', other: 'Adicionar visualizadores')}"; + "Seu addon ${storageAmount} é válido até o momento ${endDate}"; static String m5(emailOrName) => "Adicionado por ${emailOrName}"; - static String m6(albumName) => "Adicionado com sucesso a ${albumName}"; - - static String m7(name) => "Admirando ${name}"; + static String m6(albumName) => "Adicionado com sucesso a ${albumName}"; static String m8(count) => "${Intl.plural(count, zero: 'Nenhum participante', one: '1 participante', other: '${count} participantes')}"; @@ -46,15 +33,13 @@ class MessageLookup extends MessageLookupByLibrary { static String m9(versionValue) => "Versão: ${versionValue}"; static String m10(freeAmount, storageUnit) => - "${freeAmount} ${storageUnit} livre"; - - static String m11(name) => "Vistas bonitas com ${name}"; + "${freeAmount} ${storageUnit} grátis"; static String m12(paymentProvider) => - "Primeiramente cancele sua assinatura existente do ${paymentProvider}"; + "Por favor, cancele primeiro a sua subscrição existente de ${paymentProvider}"; static String m13(user) => - "${user} Não poderá adicionar mais fotos a este álbum\n\nEles ainda conseguirão remover fotos existentes adicionadas por eles"; + "${user} não será capaz de adicionar mais fotos a este álbum\n\nEles ainda serão capazes de remover fotos existentes adicionadas por eles"; static String m14(isFamilyMember, storageAmountInGb) => "${Intl.select(isFamilyMember, { @@ -68,191 +53,121 @@ class MessageLookup extends MessageLookupByLibrary { static String m16(count) => "${Intl.plural(count, zero: 'Adicionado 0 colaboradores', one: 'Adicionado 1 colaborador', other: 'Adicionado ${count} colaboradores')}"; - static String m17(email, numOfDays) => - "Você está prestes a adicionar ${email} como contato confiável. Eles poderão recuperar sua conta se você estiver ausente por ${numOfDays} dias."; - static String m18(familyAdminEmail) => - "Entre em contato com ${familyAdminEmail} para gerenciar sua assinatura"; + "Contacte ${familyAdminEmail} para gerir a sua subscrição"; static String m19(provider) => - "Entre em contato conosco em support@ente.io para gerenciar sua assinatura ${provider}."; + "Contacte-nos em support@ente.io para gerir a sua subscrição ${provider}"; - static String m20(endpoint) => "Conectado à ${endpoint}"; + static String m20(endpoint) => "Conectado a ${endpoint}"; static String m21(count) => - "${Intl.plural(count, one: 'Excluir ${count} item', other: 'Excluir ${count} itens')}"; + "${Intl.plural(count, one: 'Apagar ${count} item', other: 'Apagar ${count} itens')}"; static String m22(currentlyDeleting, totalCount) => - "Excluindo ${currentlyDeleting} / ${totalCount}"; + "Apagar ${currentlyDeleting} / ${totalCount}"; static String m23(albumName) => - "Isso removerá o link público para acessar \"${albumName}\"."; + "Isto removerá o link público para acessar \"${albumName}\"."; static String m24(supportEmail) => - "Envie um e-mail para ${supportEmail} a partir do seu endereço de e-mail registrado"; + "Envie um e-mail para ${supportEmail} a partir do seu endereço de e-mail registado"; static String m25(count, storageSaved) => - "Você limpou ${Intl.plural(count, one: '${count} arquivo duplicado', other: '${count} arquivos duplicados')}, salvando (${storageSaved}!)"; + "Você limpou ${Intl.plural(count, one: '${count} arquivo duplicado', other: '${count} arquivos duplicados')}, guardando (${storageSaved}!)"; static String m26(count, formattedSize) => "${count} arquivos, ${formattedSize} cada"; - static String m27(newEmail) => "E-mail alterado para ${newEmail}"; - - static String m28(email) => "${email} não possui uma conta Ente."; + static String m27(newEmail) => "Email alterado para ${newEmail}"; static String m29(email) => - "${email} não tem uma conta Ente.\n\nEnvie-os um convite para compartilhar fotos."; + "${email} não possui uma conta Ente.\n\nEnvie um convite para compartilhar fotos."; - static String m30(name) => "Abraçando ${name}"; - - static String m31(text) => "Fotos adicionais encontradas para ${text}"; - - static String m32(name) => "Tendo banquete com ${name}"; + static String m31(text) => "Fotos extras encontradas para ${text}"; static String m33(count, formattedNumber) => - "${Intl.plural(count, one: '1 arquivo', other: '${formattedNumber} arquivos')} deste dispositivo foi copiado com segurança"; + "${Intl.plural(count, one: '1 arquivo', other: '${formattedNumber} arquivos')} neste dispositivo teve um backup seguro"; static String m34(count, formattedNumber) => - "${Intl.plural(count, one: '1 arquivo', other: '${formattedNumber} arquivos')} deste álbum foi copiado com segurança"; + "${Intl.plural(count, one: '1 arquivo', other: '${formattedNumber} arquivos')} neste álbum teve um backup seguro"; static String m35(storageAmountInGB) => - "${storageAmountInGB} GB cada vez que alguém se inscrever a um plano pago e aplicar seu código"; + "${storageAmountInGB} GB sempre que alguém se inscreve num plano pago e aplica o seu código"; - static String m36(endDate) => "A avaliação grátis acaba em ${endDate}"; + static String m36(endDate) => "Teste gratuito válido até ${endDate}"; - static String m37(count) => - "Você ainda pode acessá-${Intl.plural(count, one: 'lo', other: 'los')} no Ente, contanto que você tenha uma assinatura ativa"; - - static String m38(sizeInMBorGB) => "Liberar ${sizeInMBorGB}"; - - static String m39(count, formattedSize) => - "${Intl.plural(count, one: 'Ele pode ser excluído do dispositivo para liberar ${formattedSize}', other: 'Eles podem ser excluídos do dispositivo para liberar ${formattedSize}')}"; + static String m38(sizeInMBorGB) => "Libertar ${sizeInMBorGB}"; static String m40(currentlyProcessing, totalCount) => "Processando ${currentlyProcessing} / ${totalCount}"; - static String m41(name) => "Caminhando com ${name}"; - static String m42(count) => "${Intl.plural(count, one: '${count} item', other: '${count} itens')}"; - static String m43(name) => "Últimos momentos com ${name}"; - - static String m44(email) => - "${email} convidou você para ser um contato confiável"; - static String m45(expiryTime) => "O link expirará em ${expiryTime}"; - static String m46(email) => "Vincular pessoa a ${email}"; - - static String m47(personName, email) => - "Isso vinculará ${personName} a ${email}"; - - static String m48(count, formattedCount) => - "${Intl.plural(count, zero: 'sem memórias', one: '${formattedCount} memória', other: '${formattedCount} memórias')}"; - - static String m49(count) => - "${Intl.plural(count, one: 'Mover item', other: 'Mover itens')}"; - static String m50(albumName) => "Movido com sucesso para ${albumName}"; - static String m51(personName) => "Sem sugestões para ${personName}"; - static String m52(name) => "Não é ${name}?"; static String m53(familyAdminEmail) => "Entre em contato com ${familyAdminEmail} para alterar o seu código."; - static String m54(name) => "Festejando com ${name}"; - static String m55(passwordStrengthValue) => - "Força da senha: ${passwordStrengthValue}"; + "Força da palavra-passe: ${passwordStrengthValue}"; static String m56(providerName) => - "Fale com o suporte ${providerName} se você foi cobrado"; - - static String m57(name, age) => "${name} está com ${age}!"; - - static String m58(name, age) => "${name} terá ${age} em breve"; - - static String m59(count) => - "${Intl.plural(count, zero: 'Sem fotos', one: '1 foto', other: '${count} fotos')}"; - - static String m60(count) => - "${Intl.plural(count, zero: '0 fotos', one: '1 foto', other: '${count} fotos')}"; + "Por favor, fale com o suporte ${providerName} se você foi cobrado"; static String m61(endDate) => - "Avaliação grátis válida até ${endDate}.\nVocê pode alterar para um plano pago depois."; + "Teste gratuito válido até ${endDate}.\nVocê pode escolher um plano pago depois."; - static String m62(toEmail) => "Envie-nos um e-mail para ${toEmail}"; + static String m62(toEmail) => + "Por favor, envie-nos um e-mail para ${toEmail}"; - static String m63(toEmail) => "Envie os registros para \n${toEmail}"; - - static String m64(name) => "Fazendo pose com ${name}"; + static String m63(toEmail) => "Por favor, envie os logs para \n${toEmail}"; static String m65(folderName) => "Processando ${folderName}..."; - static String m66(storeName) => "Avalie-nos no ${storeName}"; + static String m66(storeName) => "Avalie-nos em ${storeName}"; - static String m67(name) => "Atribuído a ${name}"; - - static String m68(days, email) => - "Você poderá acessar a conta após ${days} dias. Uma notificação será enviada para ${email}."; - - static String m69(email) => - "Você pode recuperar a conta com e-mail ${email} por definir uma nova senha."; - - static String m70(email) => "${email} está tentando recuperar sua conta."; - - static String m71(storageInGB) => - "3. Ambos os dois ganham ${storageInGB} GB* grátis"; + static String m71(storageInGB) => "3. Ambos ganham ${storageInGB} GB* grátis"; static String m72(userEmail) => - "${userEmail} será removido deste álbum compartilhado\n\nQuaisquer fotos adicionadas por eles também serão removidas do álbum"; + "${userEmail} será removido deste álbum compartilhado\n\nQuaisquer fotos adicionadas por elas também serão removidas do álbum"; - static String m73(endDate) => "Renovação de assinatura em ${endDate}"; - - static String m74(name) => "Viajando de carro com ${name}"; + static String m73(endDate) => "A subscrição é renovada em ${endDate}"; static String m75(count) => - "${Intl.plural(count, one: '${count} resultado encontrado', other: '${count} resultados encontrados')}"; - - static String m76(snapshotLength, searchLength) => - "Incompatibilidade de comprimento de seções: ${snapshotLength} != ${searchLength}"; + "${Intl.plural(count, one: '${count} ano atrás', other: '${count} anos atrás')}"; static String m77(count) => "${count} selecionado(s)"; static String m78(count, yourCount) => "${count} selecionado(s) (${yourCount} seus)"; - static String m79(name) => "Tirando selfies com ${name}"; - static String m80(verificationID) => - "Aqui está meu ID de verificação para o ente.io: ${verificationID}"; + "Aqui está o meu ID de verificação: ${verificationID} para ente.io."; static String m81(verificationID) => - "Ei, você pode confirmar se este ID de verificação do ente.io é seu?: ${verificationID}"; + "Ei, você pode confirmar que este é seu ID de verificação do ente.io: ${verificationID}"; static String m82(referralCode, referralStorageInGB) => - "Código de referência do Ente: ${referralCode} \n\nAplique-o em Configurações → Geral → Referências para obter ${referralStorageInGB} GB grátis após a sua inscrição num plano pago\n\nhttps://ente.io"; + "Insira o código de referência: ${referralCode} \n\nAplique-o em Configurações → Geral → Indicações para obter ${referralStorageInGB} GB gratuitamente após a sua inscrição para um plano pago\n\nhttps://ente.io"; static String m83(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Compartilhe com pessoas específicas', one: 'Compartilhado com 1 pessoa', other: 'Compartilhado com ${numberOfPeople} pessoas')}"; - static String m84(emailIDs) => "Compartilhado com ${emailIDs}"; + static String m84(emailIDs) => "Partilhado com ${emailIDs}"; static String m85(fileType) => - "Este ${fileType} será excluído do dispositivo."; + "Este ${fileType} será eliminado do seu dispositivo."; static String m86(fileType) => - "Este ${fileType} está no Ente e em seu dispositivo."; + "Este ${fileType} encontra-se tanto no Ente como no seu dispositivo."; - static String m87(fileType) => "Este ${fileType} será excluído do Ente."; - - static String m88(name) => "Jogando esportes com ${name}"; - - static String m89(name) => "Destacar ${name}"; + static String m87(fileType) => "Este ${fileType} será eliminado do Ente."; static String m90(storageAmountInGB) => "${storageAmountInGB} GB"; @@ -261,89 +176,63 @@ class MessageLookup extends MessageLookupByLibrary { "${usedAmount} ${usedStorageUnit} de ${totalAmount} ${totalStorageUnit} usado"; static String m92(id) => - "Seu ${id} já está vinculado a outra conta Ente. Se você gostaria de usar seu ${id} com esta conta, entre em contato conosco\""; + "Seu ${id} já está vinculado a outra conta Ente.\nSe você gostaria de usar seu ${id} com esta conta, por favor contate nosso suporte\'\'"; - static String m93(endDate) => "Sua assinatura será cancelada em ${endDate}"; + static String m93(endDate) => "A sua subscrição será cancelada em ${endDate}"; static String m94(completed, total) => "${completed}/${total} memórias preservadas"; - static String m95(ignoreReason) => - "Toque para enviar, atualmente o envio é ignorado devido a ${ignoreReason}"; - static String m96(storageAmountInGB) => "Eles também recebem ${storageAmountInGB} GB"; static String m97(email) => "Este é o ID de verificação de ${email}"; - static String m98(count) => - "${Intl.plural(count, one: 'Esta semana, ${count} ano atrás', other: 'Esta semana, ${count} anos atrás')}"; - - static String m99(dateFormat) => "${dateFormat} com o passar dos anos"; - static String m100(count) => - "${Intl.plural(count, zero: 'Em breve', one: '1 dia', other: '${count} dias')}"; - - static String m101(year) => "Viajem em ${year}"; - - static String m102(location) => "Viajem à ${location}"; - - static String m103(email) => - "Você foi convidado para ser um contato legado por ${email}."; + "${Intl.plural(count, zero: 'Brevemente', one: '1 dia', other: '${count} dias')}"; static String m104(galleryType) => - "O tipo de galeria ${galleryType} não é suportado para renomear"; + "Tipo de galeria ${galleryType} não é permitido para renomear"; - static String m105(ignoreReason) => - "O envio é ignorado devido a ${ignoreReason}"; + static String m105(ignoreReason) => "Envio ignorado devido à ${ignoreReason}"; - static String m106(count) => "Preservando ${count} memórias..."; + static String m106(count) => "Preservar ${count} memórias..."; static String m107(endDate) => "Válido até ${endDate}"; - static String m108(email) => "Verificar ${email}"; + static String m108(email) => "Verificar e-mail"; - static String m109(count) => - "${Intl.plural(count, zero: 'Adicionado 0 visualizadores', one: 'Adicionado 1 visualizador', other: 'Adicionado ${count} visualizadores')}"; - - static String m110(email) => "Enviamos um e-mail à ${email}"; + static String m110(email) => + "Enviamos um e-mail para ${email}"; static String m111(count) => "${Intl.plural(count, one: '${count} ano atrás', other: '${count} anos atrás')}"; - static String m112(name) => "Você e ${name}"; - static String m113(storageSaved) => "Você liberou ${storageSaved} com sucesso!"; final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { "aNewVersionOfEnteIsAvailable": MessageLookupByLibrary.simpleMessage( - "Uma nova versão do Ente está disponível."), + "Está disponível uma nova versão do Ente."), "about": MessageLookupByLibrary.simpleMessage("Sobre"), - "acceptTrustInvite": - MessageLookupByLibrary.simpleMessage("Aceitar convite"), "account": MessageLookupByLibrary.simpleMessage("Conta"), - "accountIsAlreadyConfigured": MessageLookupByLibrary.simpleMessage( - "A conta já está configurada."), - "accountOwnerPersonAppbarTitle": m0, + "accountIsAlreadyConfigured": + MessageLookupByLibrary.simpleMessage("A conta já está ajustada."), "accountWelcomeBack": - MessageLookupByLibrary.simpleMessage("Bem-vindo(a) de volta!"), + MessageLookupByLibrary.simpleMessage("Bem-vindo de volta!"), "ackPasswordLostWarning": MessageLookupByLibrary.simpleMessage( - "Eu entendo que se eu perder minha senha, posso perder meus dados, já que meus dados são criptografados de ponta a ponta."), + "Eu entendo que se eu perder a minha palavra-passe, posso perder os meus dados já que esses dados são encriptados de ponta a ponta."), "activeSessions": MessageLookupByLibrary.simpleMessage("Sessões ativas"), "add": MessageLookupByLibrary.simpleMessage("Adicionar"), - "addAName": MessageLookupByLibrary.simpleMessage("Adicione um nome"), + "addAName": MessageLookupByLibrary.simpleMessage("Adiciona um nome"), "addANewEmail": MessageLookupByLibrary.simpleMessage("Adicionar um novo e-mail"), "addCollaborator": MessageLookupByLibrary.simpleMessage("Adicionar colaborador"), - "addCollaborators": m1, - "addFiles": MessageLookupByLibrary.simpleMessage("Adicionar arquivos"), - "addFromDevice": - MessageLookupByLibrary.simpleMessage("Adicionar do dispositivo"), - "addItem": m2, + "addFromDevice": MessageLookupByLibrary.simpleMessage( + "Adicionar a partir do dispositivo"), "addLocation": MessageLookupByLibrary.simpleMessage("Adicionar localização"), "addLocationButton": MessageLookupByLibrary.simpleMessage("Adicionar"), @@ -355,22 +244,19 @@ class MessageLookup extends MessageLookupByLibrary { "addNewPerson": MessageLookupByLibrary.simpleMessage("Adicionar nova pessoa"), "addOnPageSubtitle": - MessageLookupByLibrary.simpleMessage("Detalhes dos complementos"), + MessageLookupByLibrary.simpleMessage("Detalhes dos addons"), "addOnValidTill": m3, - "addOns": MessageLookupByLibrary.simpleMessage("Complementos"), + "addOns": MessageLookupByLibrary.simpleMessage("addons"), "addPhotos": MessageLookupByLibrary.simpleMessage("Adicionar fotos"), "addSelected": - MessageLookupByLibrary.simpleMessage("Adicionar selecionado"), + MessageLookupByLibrary.simpleMessage("Adicionar selecionados"), "addToAlbum": MessageLookupByLibrary.simpleMessage("Adicionar ao álbum"), "addToEnte": MessageLookupByLibrary.simpleMessage("Adicionar ao Ente"), "addToHiddenAlbum": - MessageLookupByLibrary.simpleMessage("Adicionar ao álbum oculto"), - "addTrustedContact": - MessageLookupByLibrary.simpleMessage("Adicionar contato confiável"), + MessageLookupByLibrary.simpleMessage("Adicionar a álbum oculto"), "addViewer": MessageLookupByLibrary.simpleMessage("Adicionar visualizador"), - "addViewers": m4, "addYourPhotosNow": MessageLookupByLibrary.simpleMessage("Adicione suas fotos agora"), "addedAs": MessageLookupByLibrary.simpleMessage("Adicionado como"), @@ -378,15 +264,16 @@ class MessageLookup extends MessageLookupByLibrary { "addedSuccessfullyTo": m6, "addingToFavorites": MessageLookupByLibrary.simpleMessage( "Adicionando aos favoritos..."), - "admiringThem": m7, "advanced": MessageLookupByLibrary.simpleMessage("Avançado"), - "advancedSettings": MessageLookupByLibrary.simpleMessage("Avançado"), - "after1Day": MessageLookupByLibrary.simpleMessage("Após 1 dia"), - "after1Hour": MessageLookupByLibrary.simpleMessage("Após 1 hora"), - "after1Month": MessageLookupByLibrary.simpleMessage("Após 1 mês"), - "after1Week": MessageLookupByLibrary.simpleMessage("Após 1 semana"), - "after1Year": MessageLookupByLibrary.simpleMessage("Após 1 ano"), - "albumOwner": MessageLookupByLibrary.simpleMessage("Proprietário"), + "advancedSettings": + MessageLookupByLibrary.simpleMessage("Definições avançadas"), + "after1Day": MessageLookupByLibrary.simpleMessage("Depois de 1 dia"), + "after1Hour": MessageLookupByLibrary.simpleMessage("Depois de 1 Hora"), + "after1Month": MessageLookupByLibrary.simpleMessage("Depois de 1 mês"), + "after1Week": + MessageLookupByLibrary.simpleMessage("Depois de 1 semana"), + "after1Year": MessageLookupByLibrary.simpleMessage("Depois de 1 ano"), + "albumOwner": MessageLookupByLibrary.simpleMessage("Dono"), "albumParticipantsCount": m8, "albumTitle": MessageLookupByLibrary.simpleMessage("Título do álbum"), "albumUpdated": @@ -396,257 +283,213 @@ class MessageLookup extends MessageLookupByLibrary { "allMemoriesPreserved": MessageLookupByLibrary.simpleMessage( "Todas as memórias preservadas"), "allPersonGroupingWillReset": MessageLookupByLibrary.simpleMessage( - "Todos os agrupamentos dessa pessoa serão redefinidos, e você perderá todas as sugestões feitas por essa pessoa."), - "allWillShiftRangeBasedOnFirst": MessageLookupByLibrary.simpleMessage( - "Este é o primeiro do grupo. As outras fotos selecionadas serão automaticamente alteradas para esta nova data"), - "allow": MessageLookupByLibrary.simpleMessage("Permitir"), + "Todos os agrupamentos para esta pessoa serão reiniciados e perderá todas as sugestões feitas para esta pessoa"), "allowAddPhotosDescription": MessageLookupByLibrary.simpleMessage( - "Permitir que as pessoas com link também adicionem fotos ao álbum compartilhado."), + "Permitir que pessoas com o link também adicionem fotos ao álbum compartilhado."), "allowAddingPhotos": MessageLookupByLibrary.simpleMessage("Permitir adicionar fotos"), - "allowAppToOpenSharedAlbumLinks": MessageLookupByLibrary.simpleMessage( - "Permitir aplicativo abrir links de álbum compartilhado"), "allowDownloads": MessageLookupByLibrary.simpleMessage("Permitir downloads"), "allowPeopleToAddPhotos": MessageLookupByLibrary.simpleMessage( - "Permitir que pessoas adicionem fotos"), - "allowPermBody": MessageLookupByLibrary.simpleMessage( - "Permita o acesso a suas fotos das Configurações para que Ente possa exibir e copiar com segurança sua biblioteca."), - "allowPermTitle": - MessageLookupByLibrary.simpleMessage("Permita acesso às Fotos"), + "Permitir que as pessoas adicionem fotos"), "androidBiometricHint": MessageLookupByLibrary.simpleMessage("Verificar identidade"), "androidBiometricNotRecognized": MessageLookupByLibrary.simpleMessage( "Não reconhecido. Tente novamente."), "androidBiometricRequiredTitle": - MessageLookupByLibrary.simpleMessage("Biométrica necessária"), + MessageLookupByLibrary.simpleMessage("Biometria necessária"), "androidBiometricSuccess": MessageLookupByLibrary.simpleMessage("Sucesso"), "androidCancelButton": MessageLookupByLibrary.simpleMessage("Cancelar"), "androidDeviceCredentialsRequiredTitle": - MessageLookupByLibrary.simpleMessage("Credenciais necessários"), + MessageLookupByLibrary.simpleMessage( + "Credenciais do dispositivo são necessárias"), "androidDeviceCredentialsSetupDescription": - MessageLookupByLibrary.simpleMessage("Credenciais necessários"), + MessageLookupByLibrary.simpleMessage( + "Credenciais do dispositivo necessárias"), "androidGoToSettingsDescription": MessageLookupByLibrary.simpleMessage( - "A autenticação biométrica não está definida no dispositivo. Vá em \'Opções > Segurança\' para adicionar a autenticação biométrica."), - "androidIosWebDesktop": MessageLookupByLibrary.simpleMessage( - "Android, iOS, Web, Computador"), + "A autenticação biométrica não está configurada no seu dispositivo. Vá a “Definições > Segurança” para adicionar a autenticação biométrica."), + "androidIosWebDesktop": + MessageLookupByLibrary.simpleMessage("Android, iOS, Web, Desktop"), "androidSignInTitle": MessageLookupByLibrary.simpleMessage("Autenticação necessária"), - "appIcon": MessageLookupByLibrary.simpleMessage("Ícone do aplicativo"), - "appLock": - MessageLookupByLibrary.simpleMessage("Bloqueio do aplicativo"), + "appLock": MessageLookupByLibrary.simpleMessage("Bloqueio de app"), "appLockDescriptions": MessageLookupByLibrary.simpleMessage( - "Escolha entre a tela de bloqueio padrão do seu dispositivo e uma tela de bloqueio personalizada com PIN ou senha."), + "Escolha entre o ecrã de bloqueio predefinido do seu dispositivo e um ecrã de bloqueio personalizado com um PIN ou uma palavra-passe."), "appVersion": m9, "appleId": MessageLookupByLibrary.simpleMessage("ID da Apple"), "apply": MessageLookupByLibrary.simpleMessage("Aplicar"), "applyCodeTitle": MessageLookupByLibrary.simpleMessage("Aplicar código"), "appstoreSubscription": - MessageLookupByLibrary.simpleMessage("Assinatura da AppStore"), - "archive": MessageLookupByLibrary.simpleMessage("Arquivo"), + MessageLookupByLibrary.simpleMessage("Subscrição da AppStore"), + "archive": MessageLookupByLibrary.simpleMessage("............"), "archiveAlbum": MessageLookupByLibrary.simpleMessage("Arquivar álbum"), - "archiving": MessageLookupByLibrary.simpleMessage("Arquivando..."), + "archiving": MessageLookupByLibrary.simpleMessage("Arquivar..."), "areYouSureThatYouWantToLeaveTheFamily": MessageLookupByLibrary.simpleMessage( - "Você tem certeza que queira sair do plano familiar?"), - "areYouSureYouWantToCancel": - MessageLookupByLibrary.simpleMessage("Deseja cancelar?"), + "Tem certeza que deseja sair do plano familiar?"), + "areYouSureYouWantToCancel": MessageLookupByLibrary.simpleMessage( + "Tem a certeza de que quer cancelar?"), "areYouSureYouWantToChangeYourPlan": - MessageLookupByLibrary.simpleMessage("Deseja trocar de plano?"), + MessageLookupByLibrary.simpleMessage( + "Tem a certeza de que pretende alterar o seu plano?"), "areYouSureYouWantToExit": MessageLookupByLibrary.simpleMessage( - "Tem certeza de que queira sair?"), + "Tem certeza de que deseja sair?"), "areYouSureYouWantToLogout": MessageLookupByLibrary.simpleMessage( - "Você tem certeza que quer encerrar sessão?"), - "areYouSureYouWantToRenew": - MessageLookupByLibrary.simpleMessage("Deseja renovar?"), + "Tem certeza que deseja terminar a sessão?"), + "areYouSureYouWantToRenew": MessageLookupByLibrary.simpleMessage( + "Tem a certeza de que pretende renovar?"), "areYouSureYouWantToResetThisPerson": MessageLookupByLibrary.simpleMessage( - "Deseja redefinir esta pessoa?"), + "Tens a certeza de que queres repor esta pessoa?"), "askCancelReason": MessageLookupByLibrary.simpleMessage( - "Sua assinatura foi cancelada. Deseja compartilhar o motivo?"), + "A sua subscrição foi cancelada. Gostaria de partilhar o motivo?"), "askDeleteReason": MessageLookupByLibrary.simpleMessage( - "Por que você quer excluir sua conta?"), + "Qual o principal motivo pelo qual está a eliminar a conta?"), "askYourLovedOnesToShare": MessageLookupByLibrary.simpleMessage( - "Peça que seus entes queridos compartilhem"), + "Peça aos seus entes queridos para partilharem"), "atAFalloutShelter": MessageLookupByLibrary.simpleMessage("em um abrigo avançado"), "authToChangeEmailVerificationSetting": MessageLookupByLibrary.simpleMessage( - "Autentique-se para alterar o e-mail de verificação"), + "Por favor, autentique-se para alterar a verificação de e-mail"), "authToChangeLockscreenSetting": MessageLookupByLibrary.simpleMessage( - "Autentique para alterar a configuração da tela de bloqueio"), + "Por favor, autentique-se para alterar a configuração da tela do ecrã de bloqueio"), "authToChangeYourEmail": MessageLookupByLibrary.simpleMessage( "Por favor, autentique-se para alterar o seu e-mail"), "authToChangeYourPassword": MessageLookupByLibrary.simpleMessage( - "Autentique para alterar sua senha"), + "Por favor, autentique-se para alterar a palavra-passe"), "authToConfigureTwofactorAuthentication": MessageLookupByLibrary.simpleMessage( - "Autentique para configurar a autenticação de dois fatores"), + "Por favor, autentique para configurar a autenticação de dois fatores"), "authToInitiateAccountDeletion": MessageLookupByLibrary.simpleMessage( - "Autentique para iniciar a exclusão de conta"), - "authToManageLegacy": MessageLookupByLibrary.simpleMessage( - "Autentique-se para gerenciar seus contatos confiáveis"), + "Autentique-se para iniciar a eliminação da conta"), "authToViewPasskey": MessageLookupByLibrary.simpleMessage( - "Autentique-se para ver sua chave de acesso"), - "authToViewTrashedFiles": MessageLookupByLibrary.simpleMessage( - "Autentique-se para ver seus arquivos excluídos"), + "Autentique-se para ver a sua chave de acesso"), "authToViewYourActiveSessions": MessageLookupByLibrary.simpleMessage( - "Autentique para ver as sessões ativas"), + "Por favor, autentique-se para ver as suas sessões ativas"), "authToViewYourHiddenFiles": MessageLookupByLibrary.simpleMessage( - "Autentique-se para visualizar seus arquivos ocultos"), + "Por favor, autentique para ver seus arquivos ocultos"), "authToViewYourMemories": MessageLookupByLibrary.simpleMessage( - "Autentique-se para ver suas memórias"), + "Por favor, autentique-se para ver suas memórias"), "authToViewYourRecoveryKey": MessageLookupByLibrary.simpleMessage( - "Autentique para ver sua chave de recuperação"), + "Por favor, autentique-se para ver a chave de recuperação"), "authenticating": - MessageLookupByLibrary.simpleMessage("Autenticando..."), + MessageLookupByLibrary.simpleMessage("A Autenticar..."), "authenticationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( - "Falha na autenticação. Tente novamente"), + "Falha na autenticação, por favor tente novamente"), "authenticationSuccessful": - MessageLookupByLibrary.simpleMessage("Autenticado com sucesso!"), + MessageLookupByLibrary.simpleMessage("Autenticação bem sucedida!"), "autoCastDialogBody": MessageLookupByLibrary.simpleMessage( - "Você verá dispositivos de transmissão disponível aqui."), + "Verá os dispositivos Cast disponíveis aqui."), "autoCastiOSPermission": MessageLookupByLibrary.simpleMessage( - "Certifique-se que as permissões da internet local estejam ligadas para o Ente Photos App, em opções."), + "Certifique-se de que as permissões de Rede local estão activadas para a aplicação Ente Photos, nas Definições."), "autoLock": MessageLookupByLibrary.simpleMessage("Bloqueio automático"), "autoLockFeatureDescription": MessageLookupByLibrary.simpleMessage( - "Tempo após o qual o aplicativo bloqueia após ser colocado em segundo plano"), + "Tempo após o qual a aplicação bloqueia depois de ser colocada em segundo plano"), "autoLogoutMessage": MessageLookupByLibrary.simpleMessage( - "Devido ao ocorrido de erros técnicos, você foi desconectado. Pedimos desculpas pela inconveniência."), + "Devido a uma falha técnica, a sua sessão foi encerrada. Pedimos desculpas pelo incómodo."), "autoPair": - MessageLookupByLibrary.simpleMessage("Pareamento automático"), + MessageLookupByLibrary.simpleMessage("Emparelhamento automático"), "autoPairDesc": MessageLookupByLibrary.simpleMessage( - "O pareamento automático só funciona com dispositivos que suportam o Chromecast."), + "O pareamento automático funciona apenas com dispositivos que suportam o Chromecast."), "available": MessageLookupByLibrary.simpleMessage("Disponível"), "availableStorageSpace": m10, "backedUpFolders": MessageLookupByLibrary.simpleMessage( - "Pastas copiadas com segurança"), - "backgroundWithThem": m11, + "Pastas com cópia de segurança"), "backup": MessageLookupByLibrary.simpleMessage("Cópia de segurança"), - "backupFailed": MessageLookupByLibrary.simpleMessage( - "Falhou ao copiar com segurança"), - "backupFile": MessageLookupByLibrary.simpleMessage( - "Copiar arquivo com segurança"), + "backupFailed": MessageLookupByLibrary.simpleMessage("Backup falhou"), "backupOverMobileData": MessageLookupByLibrary.simpleMessage( - "Salvamento com segurança usando dados móveis"), + "Cópia de segurança através dos dados móveis"), "backupSettings": MessageLookupByLibrary.simpleMessage( - "Opções de cópia de segurança"), + "Definições da cópia de segurança"), "backupStatus": MessageLookupByLibrary.simpleMessage( "Status da cópia de segurança"), "backupStatusDescription": MessageLookupByLibrary.simpleMessage( "Os itens que foram salvos com segurança aparecerão aqui"), "backupVideos": MessageLookupByLibrary.simpleMessage( "Cópia de segurança de vídeos"), - "beach": MessageLookupByLibrary.simpleMessage("Areia e o mar"), "birthday": MessageLookupByLibrary.simpleMessage("Aniversário"), "blackFridaySale": MessageLookupByLibrary.simpleMessage("Promoção Black Friday"), "blog": MessageLookupByLibrary.simpleMessage("Blog"), - "cLBulkEdit": - MessageLookupByLibrary.simpleMessage("Editar todas as datas"), - "cLBulkEditDesc": MessageLookupByLibrary.simpleMessage( - "Agora você pode selecionar várias fotos, editar data e hora de todos com um só clique. Alternar datas também são suportados."), - "cLFamilyPlan": MessageLookupByLibrary.simpleMessage( - "Limites de planos familiares"), - "cLFamilyPlanDesc": MessageLookupByLibrary.simpleMessage( - "Agora você pode definir um limite de quanto armazenamento os seus entes queridos podem usar."), - "cLIcon": MessageLookupByLibrary.simpleMessage("Novo Ícone"), - "cLIconDesc": MessageLookupByLibrary.simpleMessage( - "Finalmente, um novo ícone para o ente que acreditamos que represente melhor nosso trabalho. Também, adicionamos um alterador de ícone para que você ainda consiga utilizar o ícone antigo."), - "cLMemories": MessageLookupByLibrary.simpleMessage("Memórias"), - "cLMemoriesDesc": MessageLookupByLibrary.simpleMessage( - "Redescubra seus momentos especiais - destaque pessoas importantes, suas viagens e celebrações, melhores visitas e muito mais. Ative a aprendizagem automática, mencione si mesmo e seus amigos para melhor experiência."), - "cLWidgets": MessageLookupByLibrary.simpleMessage("Widgets"), - "cLWidgetsDesc": MessageLookupByLibrary.simpleMessage( - "Widgets integrados com memórias já estão disponíveis. Eles apareceram com seus melhores momentos sem precisar abrir o ente."), - "cachedData": - MessageLookupByLibrary.simpleMessage("Dados armazenados em cache"), - "calculating": MessageLookupByLibrary.simpleMessage("Calculando..."), - "canNotOpenBody": MessageLookupByLibrary.simpleMessage( - "Desculpe, este álbum não pode ser aberto no aplicativo."), - "canNotOpenTitle": - MessageLookupByLibrary.simpleMessage("Não pôde abrir este álbum"), + "cachedData": MessageLookupByLibrary.simpleMessage("Dados em cache"), + "calculating": MessageLookupByLibrary.simpleMessage("Calcular..."), "canNotUploadToAlbumsOwnedByOthers": MessageLookupByLibrary.simpleMessage( - "Não é possível enviar para álbuns pertencentes a outros"), + "Não é possível fazer upload para álbuns pertencentes a outros"), "canOnlyCreateLinkForFilesOwnedByYou": MessageLookupByLibrary.simpleMessage( - "Só é possível criar um link para arquivos pertencentes a você"), - "canOnlyRemoveFilesOwnedByYou": MessageLookupByLibrary.simpleMessage( - "Só pode remover arquivos de sua propriedade"), + "Só pode criar um link para arquivos pertencentes a você"), + "canOnlyRemoveFilesOwnedByYou": + MessageLookupByLibrary.simpleMessage(""), "cancel": MessageLookupByLibrary.simpleMessage("Cancelar"), - "cancelAccountRecovery": - MessageLookupByLibrary.simpleMessage("Cancelar recuperação"), - "cancelAccountRecoveryBody": MessageLookupByLibrary.simpleMessage( - "Deseja mesmo cancelar a recuperação de conta?"), "cancelOtherSubscription": m12, "cancelSubscription": - MessageLookupByLibrary.simpleMessage("Cancelar assinatura"), + MessageLookupByLibrary.simpleMessage("Cancelar subscrição"), "cannotAddMorePhotosAfterBecomingViewer": m13, "cannotDeleteSharedFiles": MessageLookupByLibrary.simpleMessage( - "Não é possível excluir arquivos compartilhados"), - "castAlbum": MessageLookupByLibrary.simpleMessage("Transferir álbum"), + "Não é possível eliminar ficheiros partilhados"), "castIPMismatchBody": MessageLookupByLibrary.simpleMessage( - "Certifique-se de estar na mesma internet que a TV."), + "Certifique-se de estar na mesma rede que a TV."), "castIPMismatchTitle": - MessageLookupByLibrary.simpleMessage("Falhou ao transmitir álbum"), + MessageLookupByLibrary.simpleMessage("Falha ao transmitir álbum"), "castInstruction": MessageLookupByLibrary.simpleMessage( - "Acesse cast.ente.io no dispositivo desejado para parear.\n\nInsira o código abaixo para reproduzir o álbum na sua TV."), + "Visite cast.ente.io no dispositivo que pretende emparelhar.\n\n\nIntroduza o código abaixo para reproduzir o álbum na sua TV."), "centerPoint": MessageLookupByLibrary.simpleMessage("Ponto central"), "change": MessageLookupByLibrary.simpleMessage("Alterar"), "changeEmail": MessageLookupByLibrary.simpleMessage("Alterar e-mail"), "changeLocationOfSelectedItems": MessageLookupByLibrary.simpleMessage( "Alterar a localização dos itens selecionados?"), - "changePassword": MessageLookupByLibrary.simpleMessage("Alterar senha"), + "changePassword": + MessageLookupByLibrary.simpleMessage("Alterar palavra-passe"), "changePasswordTitle": - MessageLookupByLibrary.simpleMessage("Alterar senha"), + MessageLookupByLibrary.simpleMessage("Alterar palavra-passe"), "changePermissions": - MessageLookupByLibrary.simpleMessage("Alterar permissões?"), + MessageLookupByLibrary.simpleMessage("Alterar permissões"), "changeYourReferralCode": MessageLookupByLibrary.simpleMessage( - "Alterar código de referência"), + "Alterar o código de referência"), "checkForUpdates": - MessageLookupByLibrary.simpleMessage("Buscar atualizações"), + MessageLookupByLibrary.simpleMessage("Procurar atualizações"), "checkInboxAndSpamFolder": MessageLookupByLibrary.simpleMessage( - "Verifique sua caixa de entrada (e spam) para concluir a verificação"), - "checkStatus": MessageLookupByLibrary.simpleMessage("Verificar estado"), - "checking": MessageLookupByLibrary.simpleMessage("Verificando..."), + "Verifique a sua caixa de entrada (e spam) para concluir a verificação"), + "checkStatus": MessageLookupByLibrary.simpleMessage("Verificar status"), + "checking": MessageLookupByLibrary.simpleMessage("A verificar..."), "checkingModels": - MessageLookupByLibrary.simpleMessage("Verificando modelos..."), - "city": MessageLookupByLibrary.simpleMessage("Na cidade"), + MessageLookupByLibrary.simpleMessage("A verificar modelos..."), "claimFreeStorage": MessageLookupByLibrary.simpleMessage( - "Reivindicar armazenamento grátis"), - "claimMore": MessageLookupByLibrary.simpleMessage("Reivindique mais!"), - "claimed": MessageLookupByLibrary.simpleMessage("Reivindicado"), + "Solicitar armazenamento gratuito"), + "claimMore": MessageLookupByLibrary.simpleMessage("Reclamar mais!"), + "claimed": MessageLookupByLibrary.simpleMessage("Reclamado"), "claimedStorageSoFar": m14, "cleanUncategorized": - MessageLookupByLibrary.simpleMessage("Limpar não categorizado"), + MessageLookupByLibrary.simpleMessage("Limpar sem categoria"), "cleanUncategorizedDescription": MessageLookupByLibrary.simpleMessage( - "Remover todos os arquivos não categorizados que estão presentes em outros álbuns"), + "Remover todos os arquivos da Não Categorizados que estão presentes em outros álbuns"), "clearCaches": MessageLookupByLibrary.simpleMessage("Limpar cache"), "clearIndexes": MessageLookupByLibrary.simpleMessage("Limpar índices"), - "click": MessageLookupByLibrary.simpleMessage("• Clique"), + "click": MessageLookupByLibrary.simpleMessage("Clique"), "clickOnTheOverflowMenu": MessageLookupByLibrary.simpleMessage("• Clique no menu adicional"), "close": MessageLookupByLibrary.simpleMessage("Fechar"), "clubByCaptureTime": MessageLookupByLibrary.simpleMessage( "Agrupar por tempo de captura"), - "clubByFileName": - MessageLookupByLibrary.simpleMessage("Agrupar por nome do arquivo"), + "clubByFileName": MessageLookupByLibrary.simpleMessage( + "Agrupar pelo nome de arquivo"), "clusteringProgress": MessageLookupByLibrary.simpleMessage("Progresso de agrupamento"), "codeAppliedPageTitle": MessageLookupByLibrary.simpleMessage("Código aplicado"), "codeChangeLimitReached": MessageLookupByLibrary.simpleMessage( - "Desculpe, você atingiu o limite de mudanças de código."), + "Desculpe, você atingiu o limite de alterações de código."), "codeCopiedToClipboard": MessageLookupByLibrary.simpleMessage( - "Código copiado para a área de transferência"), + "Código copiado para área de transferência"), "codeUsedByYou": MessageLookupByLibrary.simpleMessage("Código usado por você"), "collabLinkSectionDescription": MessageLookupByLibrary.simpleMessage( - "Crie um link para permitir que as pessoas adicionem e vejam fotos no seu álbum compartilhado sem a necessidade do aplicativo ou uma conta Ente. Ótimo para colecionar fotos de eventos."), + "Criar um link para permitir que as pessoas adicionem e visualizem fotos em seu álbum compartilhado sem precisar de um aplicativo Ente ou conta. Ótimo para coletar fotos do evento."), "collaborativeLink": MessageLookupByLibrary.simpleMessage("Link colaborativo"), "collaborativeLinkCreatedFor": m15, @@ -657,10 +500,10 @@ class MessageLookup extends MessageLookupByLibrary { "collaboratorsSuccessfullyAdded": m16, "collageLayout": MessageLookupByLibrary.simpleMessage("Layout"), "collageSaved": - MessageLookupByLibrary.simpleMessage("Colagem salva na galeria"), - "collect": MessageLookupByLibrary.simpleMessage("Coletar"), + MessageLookupByLibrary.simpleMessage("Colagem guardada na galeria"), + "collect": MessageLookupByLibrary.simpleMessage("Recolher"), "collectEventPhotos": - MessageLookupByLibrary.simpleMessage("Coletar fotos de evento"), + MessageLookupByLibrary.simpleMessage("Coletar fotos do evento"), "collectPhotos": MessageLookupByLibrary.simpleMessage("Coletar fotos"), "collectPhotosDescription": MessageLookupByLibrary.simpleMessage( "Crie um link onde seus amigos podem enviar fotos na qualidade original."), @@ -668,164 +511,155 @@ class MessageLookup extends MessageLookupByLibrary { "configuration": MessageLookupByLibrary.simpleMessage("Configuração"), "confirm": MessageLookupByLibrary.simpleMessage("Confirmar"), "confirm2FADisable": MessageLookupByLibrary.simpleMessage( - "Você tem certeza que queira desativar a autenticação de dois fatores?"), - "confirmAccountDeletion": - MessageLookupByLibrary.simpleMessage("Confirmar exclusão da conta"), - "confirmAddingTrustedContact": m17, + "Tem a certeza de que pretende desativar a autenticação de dois fatores?"), + "confirmAccountDeletion": MessageLookupByLibrary.simpleMessage( + "Confirmar eliminação de conta"), "confirmDeletePrompt": MessageLookupByLibrary.simpleMessage( - "Sim, eu quero permanentemente excluir esta conta e os dados em todos os aplicativos."), + "Sim, pretendo apagar permanentemente esta conta e os respetivos dados em todas as aplicações."), "confirmPassword": - MessageLookupByLibrary.simpleMessage("Confirmar senha"), - "confirmPlanChange": - MessageLookupByLibrary.simpleMessage("Confirmar mudança de plano"), + MessageLookupByLibrary.simpleMessage("Confirmar palavra-passe"), + "confirmPlanChange": MessageLookupByLibrary.simpleMessage( + "Confirmar alteração de plano"), "confirmRecoveryKey": MessageLookupByLibrary.simpleMessage( "Confirmar chave de recuperação"), "confirmYourRecoveryKey": MessageLookupByLibrary.simpleMessage( - "Confirme sua chave de recuperação"), + "Confirmar chave de recuperação"), "connectToDevice": - MessageLookupByLibrary.simpleMessage("Conectar ao dispositivo"), + MessageLookupByLibrary.simpleMessage("Ligar ao dispositivo"), "contactFamilyAdmin": m18, "contactSupport": - MessageLookupByLibrary.simpleMessage("Contatar suporte"), + MessageLookupByLibrary.simpleMessage("Contactar o suporte"), "contactToManageSubscription": m19, - "contacts": MessageLookupByLibrary.simpleMessage("Contatos"), + "contacts": MessageLookupByLibrary.simpleMessage("Contactos"), "contents": MessageLookupByLibrary.simpleMessage("Conteúdos"), "continueLabel": MessageLookupByLibrary.simpleMessage("Continuar"), - "continueOnFreeTrial": MessageLookupByLibrary.simpleMessage( - "Continuar com a avaliação grátis"), + "continueOnFreeTrial": + MessageLookupByLibrary.simpleMessage("Continuar em teste gratuito"), "convertToAlbum": MessageLookupByLibrary.simpleMessage("Converter para álbum"), "copyEmailAddress": - MessageLookupByLibrary.simpleMessage("Copiar endereço de e-mail"), + MessageLookupByLibrary.simpleMessage("Copiar endereço de email"), "copyLink": MessageLookupByLibrary.simpleMessage("Copiar link"), "copypasteThisCodentoYourAuthenticatorApp": MessageLookupByLibrary.simpleMessage( - "Copie e cole este código\npara o aplicativo autenticador"), + "Copie e cole este código\nno seu aplicativo de autenticação"), "couldNotBackUpTryLater": MessageLookupByLibrary.simpleMessage( - "Nós não podemos copiar com segurança seus dados.\nNós tentaremos novamente mais tarde."), + "Não foi possível fazer o backup de seus dados.\nTentaremos novamente mais tarde."), "couldNotFreeUpSpace": MessageLookupByLibrary.simpleMessage( - "Não foi possível liberar espaço"), + "Não foi possível libertar espaço"), "couldNotUpdateSubscription": MessageLookupByLibrary.simpleMessage( - "Não foi possível atualizar a assinatura"), + "Não foi possível atualizar a subscrição"), "count": MessageLookupByLibrary.simpleMessage("Contagem"), "crashReporting": - MessageLookupByLibrary.simpleMessage("Relatório de erros"), + MessageLookupByLibrary.simpleMessage("Relatório de falhas"), "create": MessageLookupByLibrary.simpleMessage("Criar"), "createAccount": MessageLookupByLibrary.simpleMessage("Criar conta"), "createAlbumActionHint": MessageLookupByLibrary.simpleMessage( - "Pressione para selecionar fotos e clique em + para criar um álbum"), + "Pressione e segure para selecionar fotos e clique em + para criar um álbum"), "createCollaborativeLink": MessageLookupByLibrary.simpleMessage("Criar link colaborativo"), - "createCollage": MessageLookupByLibrary.simpleMessage("Criar colagem"), + "createCollage": MessageLookupByLibrary.simpleMessage("Criar coleção"), "createNewAccount": MessageLookupByLibrary.simpleMessage("Criar nova conta"), "createOrSelectAlbum": MessageLookupByLibrary.simpleMessage("Criar ou selecionar álbum"), "createPublicLink": MessageLookupByLibrary.simpleMessage("Criar link público"), - "creatingLink": MessageLookupByLibrary.simpleMessage("Criando link..."), + "creatingLink": MessageLookupByLibrary.simpleMessage("Criar link..."), "criticalUpdateAvailable": MessageLookupByLibrary.simpleMessage( "Atualização crítica disponível"), - "crop": MessageLookupByLibrary.simpleMessage("Cortar"), - "curatedMemories": - MessageLookupByLibrary.simpleMessage("Curated memories"), + "crop": MessageLookupByLibrary.simpleMessage("Recortar"), "currentUsageIs": MessageLookupByLibrary.simpleMessage("O uso atual é "), - "currentlyRunning": - MessageLookupByLibrary.simpleMessage("Atualmente executando"), "custom": MessageLookupByLibrary.simpleMessage("Personalizado"), "customEndpoint": m20, "darkTheme": MessageLookupByLibrary.simpleMessage("Escuro"), "dayToday": MessageLookupByLibrary.simpleMessage("Hoje"), "dayYesterday": MessageLookupByLibrary.simpleMessage("Ontem"), - "declineTrustInvite": - MessageLookupByLibrary.simpleMessage("Recusar convite"), - "decrypting": - MessageLookupByLibrary.simpleMessage("Descriptografando..."), + "decrypting": MessageLookupByLibrary.simpleMessage("A desencriptar…"), "decryptingVideo": MessageLookupByLibrary.simpleMessage("Descriptografando vídeo..."), "deduplicateFiles": MessageLookupByLibrary.simpleMessage("Arquivos duplicados"), - "delete": MessageLookupByLibrary.simpleMessage("Excluir"), - "deleteAccount": MessageLookupByLibrary.simpleMessage("Excluir conta"), + "delete": MessageLookupByLibrary.simpleMessage("Apagar"), + "deleteAccount": MessageLookupByLibrary.simpleMessage("Eliminar conta"), "deleteAccountFeedbackPrompt": MessageLookupByLibrary.simpleMessage( - "Lamentamos você ir. Compartilhe seu feedback para nos ajudar a melhorar."), + "Lamentamos a sua partida. Indique-nos a razão para podermos melhorar o serviço."), "deleteAccountPermanentlyButton": MessageLookupByLibrary.simpleMessage( "Excluir conta permanentemente"), - "deleteAlbum": MessageLookupByLibrary.simpleMessage("Excluir álbum"), + "deleteAlbum": MessageLookupByLibrary.simpleMessage("Apagar álbum"), "deleteAlbumDialog": MessageLookupByLibrary.simpleMessage( - "Também excluir as fotos (e vídeos) presentes neste álbum de todos os outros álbuns que eles fazem parte?"), + "Eliminar também as fotos (e vídeos) presentes neste álbum de all os outros álbuns de que fazem parte?"), "deleteAlbumsDialogBody": MessageLookupByLibrary.simpleMessage( - "Isso excluirá todos os álbuns vazios. Isso é útil quando você quiser reduzir a desordem no seu álbum."), - "deleteAll": MessageLookupByLibrary.simpleMessage("Excluir tudo"), + "Esta ação elimina todos os álbuns vazios. Isto é útil quando pretende reduzir a confusão na sua lista de álbuns."), + "deleteAll": MessageLookupByLibrary.simpleMessage("Apagar tudo"), "deleteConfirmDialogBody": MessageLookupByLibrary.simpleMessage( - "Esta conta está vinculada aos outros aplicativos do Ente, se você usar algum. Seus dados baixados, entre todos os aplicativos do Ente, serão programados para exclusão, e sua conta será permanentemente excluída."), + "Esta conta está ligada a outras aplicações Ente, se utilizar alguma. Os seus dados carregados, em todas as aplicações Ente, serão agendados para eliminação e a sua conta será permanentemente eliminada."), "deleteEmailRequest": MessageLookupByLibrary.simpleMessage( - "Por favor, envie um e-mail a account-deletion@ente.io do seu endereço de e-mail registrado."), + "Envie um e-mail para accountt-deletion@ente.io a partir do seu endereço de email registrado."), "deleteEmptyAlbums": - MessageLookupByLibrary.simpleMessage("Excluir álbuns vazios"), + MessageLookupByLibrary.simpleMessage("Apagar álbuns vazios"), "deleteEmptyAlbumsWithQuestionMark": - MessageLookupByLibrary.simpleMessage("Excluir álbuns vazios?"), + MessageLookupByLibrary.simpleMessage("Apagar álbuns vazios?"), "deleteFromBoth": - MessageLookupByLibrary.simpleMessage("Excluir de ambos"), + MessageLookupByLibrary.simpleMessage("Apagar de ambos"), "deleteFromDevice": - MessageLookupByLibrary.simpleMessage("Excluir do dispositivo"), + MessageLookupByLibrary.simpleMessage("Apagar do dispositivo"), "deleteFromEnte": - MessageLookupByLibrary.simpleMessage("Excluir do Ente"), + MessageLookupByLibrary.simpleMessage("Apagar do Ente"), "deleteItemCount": m21, "deleteLocation": - MessageLookupByLibrary.simpleMessage("Excluir localização"), - "deletePhotos": MessageLookupByLibrary.simpleMessage("Excluir fotos"), + MessageLookupByLibrary.simpleMessage("Apagar localização"), + "deletePhotos": MessageLookupByLibrary.simpleMessage("Apagar fotos"), "deleteProgress": m22, "deleteReason1": MessageLookupByLibrary.simpleMessage( - "Está faltando um recurso-chave que eu preciso"), + "Falta uma funcionalidade-chave de que eu necessito"), "deleteReason2": MessageLookupByLibrary.simpleMessage( - "O aplicativo ou um certo recurso não funciona da maneira que eu acredito que deveria funcionar"), + "O aplicativo ou um determinado recurso não se comportou como era suposto"), "deleteReason3": MessageLookupByLibrary.simpleMessage( - "Encontrei outro serviço que considero melhor"), + "Encontrei outro serviço de que gosto mais"), "deleteReason4": - MessageLookupByLibrary.simpleMessage("Meu motivo não está listado"), + MessageLookupByLibrary.simpleMessage("O motivo não está na lista"), "deleteRequestSLAText": MessageLookupByLibrary.simpleMessage( - "Sua solicitação será revisada em até 72 horas."), + "O seu pedido será processado dentro de 72 horas."), "deleteSharedAlbum": MessageLookupByLibrary.simpleMessage( "Excluir álbum compartilhado?"), "deleteSharedAlbumDialogBody": MessageLookupByLibrary.simpleMessage( - "O álbum será apagado para todos\n\nVocê perderá o acesso a fotos compartilhadas neste álbum que pertencem aos outros"), - "deselectAll": - MessageLookupByLibrary.simpleMessage("Deselecionar tudo"), + "O álbum será apagado para todos\n\nVocê perderá o acesso a fotos compartilhadas neste álbum que são propriedade de outros"), + "deselectAll": MessageLookupByLibrary.simpleMessage("Desmarcar tudo"), "designedToOutlive": MessageLookupByLibrary.simpleMessage("Feito para ter longevidade"), "details": MessageLookupByLibrary.simpleMessage("Detalhes"), "developerSettings": - MessageLookupByLibrary.simpleMessage("Opções de desenvolvedor"), + MessageLookupByLibrary.simpleMessage("Definições do programador"), "developerSettingsWarning": MessageLookupByLibrary.simpleMessage( - "Deseja modificar as Opções de Desenvolvedor?"), + "Tem a certeza de que pretende modificar as definições de programador?"), "deviceCodeHint": - MessageLookupByLibrary.simpleMessage("Insira o código"), + MessageLookupByLibrary.simpleMessage("Introduza o código"), "deviceFilesAutoUploading": MessageLookupByLibrary.simpleMessage( - "Arquivos adicionados ao álbum do dispositivo serão automaticamente enviados para o Ente."), + "Os ficheiros adicionados a este álbum de dispositivo serão automaticamente transferidos para o Ente."), "deviceLock": MessageLookupByLibrary.simpleMessage("Bloqueio do dispositivo"), "deviceLockExplanation": MessageLookupByLibrary.simpleMessage( - "Desativa o bloqueio de tela quando o Ente está de fundo e têm uma cópia de segurança sendo feita. Isso normalmente não é necessário, no entanto, ajuda a envios grandes e importações iniciais de bibliotecas maiores concluírem mais rápido."), + "Desativar o bloqueio do ecrã do dispositivo quando o Ente estiver em primeiro plano e houver uma cópia de segurança em curso. Normalmente, isto não é necessário, mas pode ajudar a que os grandes carregamentos e as importações iniciais de grandes bibliotecas sejam concluídos mais rapidamente."), "deviceNotFound": MessageLookupByLibrary.simpleMessage("Dispositivo não encontrado"), "didYouKnow": MessageLookupByLibrary.simpleMessage("Você sabia?"), "disableAutoLock": MessageLookupByLibrary.simpleMessage( "Desativar bloqueio automático"), "disableDownloadWarningBody": MessageLookupByLibrary.simpleMessage( - "Os visualizadores podem fazer capturas de tela ou salvar uma cópia de suas fotos usando ferramentas externas"), + "Visualizadores ainda podem fazer capturas de tela ou salvar uma cópia das suas fotos usando ferramentas externas"), "disableDownloadWarningTitle": - MessageLookupByLibrary.simpleMessage("Por favor, saiba que"), + MessageLookupByLibrary.simpleMessage("Por favor, observe"), "disableLinkMessage": m23, "disableTwofactor": MessageLookupByLibrary.simpleMessage( "Desativar autenticação de dois fatores"), "disablingTwofactorAuthentication": MessageLookupByLibrary.simpleMessage( - "Desativando a autenticação de dois fatores..."), + "Desativar a autenticação de dois factores..."), "discord": MessageLookupByLibrary.simpleMessage("Discord"), - "discover": MessageLookupByLibrary.simpleMessage("Explorar"), - "discover_babies": MessageLookupByLibrary.simpleMessage("Bebês"), + "discover": MessageLookupByLibrary.simpleMessage("Descobrir"), + "discover_babies": MessageLookupByLibrary.simpleMessage("Bebés"), "discover_celebrations": MessageLookupByLibrary.simpleMessage("Comemorações"), "discover_food": MessageLookupByLibrary.simpleMessage("Comida"), @@ -838,29 +672,29 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Animais de estimação"), "discover_receipts": MessageLookupByLibrary.simpleMessage("Recibos"), "discover_screenshots": - MessageLookupByLibrary.simpleMessage("Capturas de tela"), + MessageLookupByLibrary.simpleMessage("Capturas de ecrã"), "discover_selfies": MessageLookupByLibrary.simpleMessage("Selfies"), "discover_sunset": MessageLookupByLibrary.simpleMessage("Pôr do sol"), "discover_visiting_cards": MessageLookupByLibrary.simpleMessage("Cartões de visita"), "discover_wallpapers": MessageLookupByLibrary.simpleMessage("Papéis de parede"), - "dismiss": MessageLookupByLibrary.simpleMessage("Descartar"), + "dismiss": MessageLookupByLibrary.simpleMessage("Rejeitar"), "distanceInKMUnit": MessageLookupByLibrary.simpleMessage("km"), - "doNotSignOut": MessageLookupByLibrary.simpleMessage("Não sair"), + "doNotSignOut": + MessageLookupByLibrary.simpleMessage("Não terminar a sessão"), "doThisLater": - MessageLookupByLibrary.simpleMessage("Fazer isso depois"), + MessageLookupByLibrary.simpleMessage("Fazer isto mais tarde"), "doYouWantToDiscardTheEditsYouHaveMade": MessageLookupByLibrary.simpleMessage( - "Você quer descartar as edições que você fez?"), + "Pretende eliminar as edições que efectuou?"), "done": MessageLookupByLibrary.simpleMessage("Concluído"), - "dontSave": MessageLookupByLibrary.simpleMessage("Não salvar"), - "doubleYourStorage": - MessageLookupByLibrary.simpleMessage("Duplique seu armazenamento"), - "download": MessageLookupByLibrary.simpleMessage("Baixar"), + "doubleYourStorage": MessageLookupByLibrary.simpleMessage( + "Duplicar o seu armazenamento"), + "download": MessageLookupByLibrary.simpleMessage("Download"), "downloadFailed": - MessageLookupByLibrary.simpleMessage("Falhou ao baixar"), - "downloading": MessageLookupByLibrary.simpleMessage("Baixando..."), + MessageLookupByLibrary.simpleMessage("Falha no download"), + "downloading": MessageLookupByLibrary.simpleMessage("A transferir..."), "dropSupportEmail": m24, "duplicateFileCountWithStorageSaved": m25, "duplicateItemsGroup": m26, @@ -870,247 +704,219 @@ class MessageLookup extends MessageLookupByLibrary { "editLocationTagTitle": MessageLookupByLibrary.simpleMessage("Editar localização"), "editPerson": MessageLookupByLibrary.simpleMessage("Editar pessoa"), - "editTime": MessageLookupByLibrary.simpleMessage("Editar tempo"), - "editsSaved": MessageLookupByLibrary.simpleMessage("Edições salvas"), + "editsSaved": MessageLookupByLibrary.simpleMessage("Edição guardada"), "editsToLocationWillOnlyBeSeenWithinEnte": MessageLookupByLibrary.simpleMessage( - "Edições à localização serão apenas vistos no Ente"), + "Edições para localização só serão vistas dentro do Ente"), "eligible": MessageLookupByLibrary.simpleMessage("elegível"), - "email": MessageLookupByLibrary.simpleMessage("E-mail"), - "emailAlreadyRegistered": - MessageLookupByLibrary.simpleMessage("E-mail já registrado."), + "email": MessageLookupByLibrary.simpleMessage("Email"), "emailChangedTo": m27, - "emailDoesNotHaveEnteAccount": m28, "emailNoEnteAccount": m29, - "emailNotRegistered": - MessageLookupByLibrary.simpleMessage("E-mail não registrado."), "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("Verificação por e-mail"), "emailYourLogs": - MessageLookupByLibrary.simpleMessage("Enviar registros por e-mail"), - "embracingThem": m30, - "emergencyContacts": - MessageLookupByLibrary.simpleMessage("Contatos de emergência"), + MessageLookupByLibrary.simpleMessage("Enviar logs por e-mail"), "empty": MessageLookupByLibrary.simpleMessage("Esvaziar"), - "emptyTrash": - MessageLookupByLibrary.simpleMessage("Esvaziar a lixeira?"), + "emptyTrash": MessageLookupByLibrary.simpleMessage("Esvaziar lixo?"), "enable": MessageLookupByLibrary.simpleMessage("Ativar"), "enableMLIndexingDesc": MessageLookupByLibrary.simpleMessage( - "Ente suporta aprendizagem de máquina para reconhecimento facial, busca mágica e outros recursos de busca avançados"), + "O Ente suporta a aprendizagem automática no dispositivo para reconhecimento facial, pesquisa mágica e outras funcionalidades de pesquisa avançadas"), "enableMachineLearningBanner": MessageLookupByLibrary.simpleMessage( - "Ativar aprendizagem de máquina para busca mágica e reconhecimento facial"), + "Habilitar aprendizagem automática para pesquisa mágica e reconhecimento de rosto"), "enableMaps": MessageLookupByLibrary.simpleMessage("Ativar mapas"), "enableMapsDesc": MessageLookupByLibrary.simpleMessage( - "Isso exibirá suas fotos em um mapa mundial.\n\nEste mapa é hospedado por Open Street Map, e as exatas localizações das fotos nunca serão compartilhadas.\n\nVocê pode desativar esta função a qualquer momento em Opções."), + "Esta opção mostra as suas fotografias num mapa do mundo.\n\n\nEste mapa é alojado pelo Open Street Map e as localizações exactas das suas fotografias nunca são partilhadas.\n\n\nPode desativar esta funcionalidade em qualquer altura nas Definições."), "enabled": MessageLookupByLibrary.simpleMessage("Ativado"), - "encryptingBackup": MessageLookupByLibrary.simpleMessage( - "Criptografando cópia de segurança..."), - "encryption": MessageLookupByLibrary.simpleMessage("Criptografia"), + "encryptingBackup": + MessageLookupByLibrary.simpleMessage("Criptografando backup..."), + "encryption": MessageLookupByLibrary.simpleMessage("Encriptação"), "encryptionKeys": - MessageLookupByLibrary.simpleMessage("Chaves de criptografia"), + MessageLookupByLibrary.simpleMessage("Chaves de encriptação"), "endpointUpdatedMessage": MessageLookupByLibrary.simpleMessage( - "Ponto final atualizado com sucesso"), + "Endpoint atualizado com sucesso"), "endtoendEncryptedByDefault": MessageLookupByLibrary.simpleMessage( - "Criptografado de ponta a ponta por padrão"), + "Criptografia de ponta a ponta por padrão"), "enteCanEncryptAndPreserveFilesOnlyIfYouGrant": MessageLookupByLibrary.simpleMessage( "Ente pode criptografar e preservar arquivos apenas se você conceder acesso a eles"), "entePhotosPerm": MessageLookupByLibrary.simpleMessage( "Ente precisa de permissão para preservar suas fotos"), "enteSubscriptionPitch": MessageLookupByLibrary.simpleMessage( - "O Ente preserva suas memórias, então eles sempre estão disponíveis para você, mesmo se você perder o dispositivo."), + "O Ente preserva as suas memórias, para que estejam sempre disponíveis, mesmo que perca o seu dispositivo."), "enteSubscriptionShareWithFamily": MessageLookupByLibrary.simpleMessage( "Sua família também pode ser adicionada ao seu plano."), "enterAlbumName": - MessageLookupByLibrary.simpleMessage("Inserir nome do álbum"), + MessageLookupByLibrary.simpleMessage("Introduzir nome do álbum"), "enterCode": MessageLookupByLibrary.simpleMessage("Insira o código"), "enterCodeDescription": MessageLookupByLibrary.simpleMessage( - "Insira o código fornecido pelo seu amigo para reivindicar o armazenamento grátis para os dois"), + "Introduza o código fornecido pelo seu amigo para obter armazenamento gratuito para ambos"), "enterDateOfBirth": MessageLookupByLibrary.simpleMessage("Aniversário (opcional)"), - "enterEmail": MessageLookupByLibrary.simpleMessage("Inserir e-mail"), + "enterEmail": MessageLookupByLibrary.simpleMessage("Digite o e-mail"), "enterFileName": MessageLookupByLibrary.simpleMessage("Inserir nome do arquivo"), "enterName": MessageLookupByLibrary.simpleMessage("Inserir nome"), "enterNewPasswordToEncrypt": MessageLookupByLibrary.simpleMessage( - "Insira uma senha nova para criptografar seus dados"), - "enterPassword": MessageLookupByLibrary.simpleMessage("Inserir senha"), + "Inserir uma nova palavra-passe para encriptar os seus dados"), + "enterPassword": + MessageLookupByLibrary.simpleMessage("Introduzir palavra-passe"), "enterPasswordToEncrypt": MessageLookupByLibrary.simpleMessage( - "Insira uma senha que podemos usar para criptografar seus dados"), + "Inserir uma palavra-passe para encriptar os seus dados"), "enterPersonName": MessageLookupByLibrary.simpleMessage("Inserir nome da pessoa"), - "enterPin": MessageLookupByLibrary.simpleMessage("Inserir PIN"), + "enterPin": MessageLookupByLibrary.simpleMessage("Introduzir PIN"), "enterReferralCode": MessageLookupByLibrary.simpleMessage( - "Inserir código de referência"), + "Insira o código de referência"), "enterThe6digitCodeFromnyourAuthenticatorApp": MessageLookupByLibrary.simpleMessage( - "Digite o código de 6 dígitos do\naplicativo de autenticador"), + "Introduzir o código de 6 dígitos da\nsua aplicação de autenticação"), "enterValidEmail": MessageLookupByLibrary.simpleMessage( - "Insira um endereço de e-mail válido."), + "Por favor, insira um endereço de email válido."), "enterYourEmailAddress": MessageLookupByLibrary.simpleMessage( - "Insira seu endereço de e-mail"), - "enterYourPassword": - MessageLookupByLibrary.simpleMessage("Insira sua senha"), + "Insira o seu endereço de email"), + "enterYourPassword": MessageLookupByLibrary.simpleMessage( + "Introduza a sua palavra-passe"), "enterYourRecoveryKey": MessageLookupByLibrary.simpleMessage( - "Insira sua chave de recuperação"), + "Insira a sua chave de recuperação"), "error": MessageLookupByLibrary.simpleMessage("Erro"), - "everywhere": - MessageLookupByLibrary.simpleMessage("em todas as partes"), + "everywhere": MessageLookupByLibrary.simpleMessage("em todo o lado"), "exif": MessageLookupByLibrary.simpleMessage("EXIF"), "existingUser": - MessageLookupByLibrary.simpleMessage("Usuário existente"), + MessageLookupByLibrary.simpleMessage("Utilizador existente"), "expiredLinkInfo": MessageLookupByLibrary.simpleMessage( - "O link expirou. Selecione um novo tempo de expiração ou desative a expiração do link."), - "exportLogs": - MessageLookupByLibrary.simpleMessage("Exportar registros"), + "Este link expirou. Por favor, selecione um novo tempo de expiração ou desabilite a expiração do link."), + "exportLogs": MessageLookupByLibrary.simpleMessage("Exportar logs"), "exportYourData": - MessageLookupByLibrary.simpleMessage("Exportar dados"), + MessageLookupByLibrary.simpleMessage("Exportar os seus dados"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage( "Fotos adicionais encontradas"), "extraPhotosFoundFor": m31, - "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( - "Rosto não agrupado ainda, volte aqui mais tarde"), "faceRecognition": MessageLookupByLibrary.simpleMessage("Reconhecimento facial"), "faces": MessageLookupByLibrary.simpleMessage("Rostos"), - "failed": MessageLookupByLibrary.simpleMessage("Falhou"), "failedToApplyCode": - MessageLookupByLibrary.simpleMessage("Falhou ao aplicar código"), + MessageLookupByLibrary.simpleMessage("Falha ao aplicar código"), "failedToCancel": MessageLookupByLibrary.simpleMessage("Falhou ao cancelar"), - "failedToDownloadVideo": - MessageLookupByLibrary.simpleMessage("Falhou ao baixar vídeo"), + "failedToDownloadVideo": MessageLookupByLibrary.simpleMessage( + "Falha ao fazer o download do vídeo"), "failedToFetchActiveSessions": MessageLookupByLibrary.simpleMessage( - "Falhou ao obter sessões ativas"), + "Falha ao obter sessões em atividade"), "failedToFetchOriginalForEdit": MessageLookupByLibrary.simpleMessage( - "Falhou ao obter original para edição"), + "Falha ao obter original para edição"), "failedToFetchReferralDetails": MessageLookupByLibrary.simpleMessage( - "Não foi possível buscar os detalhes de referência. Tente novamente mais tarde."), + "Não foi possível obter detalhes de indicação. Por favor, tente novamente mais tarde."), "failedToLoadAlbums": - MessageLookupByLibrary.simpleMessage("Falhou ao carregar álbuns"), - "failedToPlayVideo": - MessageLookupByLibrary.simpleMessage("Falhou ao reproduzir vídeo"), + MessageLookupByLibrary.simpleMessage("Falha ao carregar álbuns"), + "failedToPlayVideo": MessageLookupByLibrary.simpleMessage( + "Falha ao reproduzir multimédia"), "failedToRefreshStripeSubscription": MessageLookupByLibrary.simpleMessage( - "Falhou ao atualizar assinatura"), + "Falha ao atualizar subscrição"), "failedToRenew": MessageLookupByLibrary.simpleMessage("Falhou ao renovar"), "failedToVerifyPaymentStatus": MessageLookupByLibrary.simpleMessage( - "Falhou ao verificar estado do pagamento"), + "Falha ao verificar status do pagamento"), "familyPlanOverview": MessageLookupByLibrary.simpleMessage( - "Adicione 5 familiares para seu plano existente sem pagar nenhum custo adicional.\n\nCada membro ganha seu espaço privado, significando que eles não podem ver os arquivos dos outros a menos que eles sejam compartilhados.\n\nOs planos familiares estão disponíveis para clientes que já tem uma assinatura paga do Ente.\n\nAssine agora para iniciar!"), + "Adicione 5 membros da família ao seu plano existente sem pagar mais.\n\n\nCada membro tem o seu próprio espaço privado e não pode ver os ficheiros dos outros, a menos que sejam partilhados.\n\n\nOs planos familiares estão disponíveis para clientes que tenham uma subscrição paga do Ente.\n\n\nSubscreva agora para começar!"), "familyPlanPortalTitle": MessageLookupByLibrary.simpleMessage("Família"), "familyPlans": MessageLookupByLibrary.simpleMessage("Planos familiares"), - "faq": MessageLookupByLibrary.simpleMessage("Perguntas frequentes"), + "faq": MessageLookupByLibrary.simpleMessage("Perguntas Frequentes"), "faqs": MessageLookupByLibrary.simpleMessage("Perguntas frequentes"), "favorite": MessageLookupByLibrary.simpleMessage("Favorito"), - "feastingWithThem": m32, - "feedback": MessageLookupByLibrary.simpleMessage("Feedback"), - "file": MessageLookupByLibrary.simpleMessage("Arquivo"), + "feedback": MessageLookupByLibrary.simpleMessage("Opinião"), "fileFailedToSaveToGallery": MessageLookupByLibrary.simpleMessage( - "Falhou ao salvar arquivo na galeria"), + "Falha ao guardar o ficheiro na galeria"), "fileInfoAddDescHint": - MessageLookupByLibrary.simpleMessage("Adicionar descrição..."), - "fileNotUploadedYet": - MessageLookupByLibrary.simpleMessage("Arquivo ainda não enviado"), + MessageLookupByLibrary.simpleMessage("Acrescente uma descrição..."), "fileSavedToGallery": - MessageLookupByLibrary.simpleMessage("Arquivo salvo na galeria"), + MessageLookupByLibrary.simpleMessage("Arquivo guardado na galeria"), "fileTypes": MessageLookupByLibrary.simpleMessage("Tipos de arquivo"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Tipos de arquivo e nomes"), "filesBackedUpFromDevice": m33, "filesBackedUpInAlbum": m34, "filesDeleted": - MessageLookupByLibrary.simpleMessage("Arquivos excluídos"), - "filesSavedToGallery": - MessageLookupByLibrary.simpleMessage("Arquivos salvos na galeria"), + MessageLookupByLibrary.simpleMessage("Arquivos apagados"), + "filesSavedToGallery": MessageLookupByLibrary.simpleMessage( + "Arquivos guardados na galeria"), "findPeopleByName": MessageLookupByLibrary.simpleMessage( - "Busque pessoas facilmente pelo nome"), + "Encontrar pessoas rapidamente pelo nome"), "findThemQuickly": - MessageLookupByLibrary.simpleMessage("Busque-os rapidamente"), + MessageLookupByLibrary.simpleMessage("Ache-os rapidamente"), "flip": MessageLookupByLibrary.simpleMessage("Inverter"), - "food": MessageLookupByLibrary.simpleMessage("Prazer em culinária"), "forYourMemories": MessageLookupByLibrary.simpleMessage("para suas memórias"), - "forgotPassword": - MessageLookupByLibrary.simpleMessage("Esqueci a senha"), + "forgotPassword": MessageLookupByLibrary.simpleMessage( + "Esqueceu-se da palavra-passe"), "foundFaces": MessageLookupByLibrary.simpleMessage("Rostos encontrados"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage( - "Armazenamento grátis reivindicado"), + "Armazenamento gratuito reclamado"), "freeStorageOnReferralSuccess": m35, - "freeStorageUsable": - MessageLookupByLibrary.simpleMessage("Armazenamento disponível"), - "freeTrial": MessageLookupByLibrary.simpleMessage("Avaliação grátis"), + "freeStorageUsable": MessageLookupByLibrary.simpleMessage( + "Armazenamento livre utilizável"), + "freeTrial": MessageLookupByLibrary.simpleMessage("Teste grátis"), "freeTrialValidTill": m36, - "freeUpAccessPostDelete": m37, "freeUpAmount": m38, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage( - "Liberar espaço no dispositivo"), + "Libertar espaço no dispositivo"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( - "Economize espaço em seu dispositivo por limpar arquivos já salvos com segurança."), - "freeUpSpace": MessageLookupByLibrary.simpleMessage("Liberar espaço"), - "freeUpSpaceSaving": m39, - "gallery": MessageLookupByLibrary.simpleMessage("Galeria"), + "Poupe espaço no seu dispositivo limpando ficheiros dos quais já foi feita uma cópia de segurança."), + "freeUpSpace": MessageLookupByLibrary.simpleMessage("Libertar espaço"), "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( - "Até 1.000 memórias exibidas na galeria"), + "Até 1000 memórias mostradas na galeria"), "general": MessageLookupByLibrary.simpleMessage("Geral"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( - "Gerando chaves de criptografia..."), + "Gerando chaves de encriptação..."), "genericProgress": m40, - "goToSettings": MessageLookupByLibrary.simpleMessage("Ir às opções"), + "goToSettings": + MessageLookupByLibrary.simpleMessage("Ir para as definições"), "googlePlayId": MessageLookupByLibrary.simpleMessage("ID do Google Play"), "grantFullAccessPrompt": MessageLookupByLibrary.simpleMessage( - "Permita o acesso a todas as fotos nas opções do aplicativo"), + "Por favor, permita o acesso a todas as fotos nas definições do aplicativo"), "grantPermission": - MessageLookupByLibrary.simpleMessage("Conceder permissões"), - "greenery": MessageLookupByLibrary.simpleMessage("A vegetação verde"), + MessageLookupByLibrary.simpleMessage("Conceder permissão"), "groupNearbyPhotos": MessageLookupByLibrary.simpleMessage("Agrupar fotos próximas"), - "guestView": MessageLookupByLibrary.simpleMessage("Vista do convidado"), + "guestView": MessageLookupByLibrary.simpleMessage("Visão de convidado"), "guestViewEnablePreSteps": MessageLookupByLibrary.simpleMessage( - "Para ativar a vista do convidado, defina uma senha de acesso no dispositivo ou bloqueie sua tela nas opções do sistema."), + "Para ativar a vista de convidado, configure o código de acesso do dispositivo ou o bloqueio do ecrã nas definições do sistema."), "hearUsExplanation": MessageLookupByLibrary.simpleMessage( - "Não rastreamos instalações de aplicativo. Seria útil se você contasse onde nos encontrou!"), + "Não monitorizamos as instalações de aplicações. Ajudaria se nos dissesse onde nos encontrou!"), "hearUsWhereTitle": MessageLookupByLibrary.simpleMessage( - "Como você soube do Ente? (opcional)"), + "Como é que soube do Ente? (opcional)"), "help": MessageLookupByLibrary.simpleMessage("Ajuda"), "hidden": MessageLookupByLibrary.simpleMessage("Oculto"), "hide": MessageLookupByLibrary.simpleMessage("Ocultar"), "hideContent": MessageLookupByLibrary.simpleMessage("Ocultar conteúdo"), "hideContentDescriptionAndroid": MessageLookupByLibrary.simpleMessage( - "Oculta os conteúdos do aplicativo no seletor de aplicativos e desativa capturas de tela"), + "Oculta o conteúdo da aplicação no alternador de aplicações e desactiva as capturas de ecrã"), "hideContentDescriptionIos": MessageLookupByLibrary.simpleMessage( - "Oculta o conteúdo no seletor de aplicativos"), - "hideSharedItemsFromHomeGallery": MessageLookupByLibrary.simpleMessage( - "Ocultar itens compartilhados da galeria inicial"), + "Oculta o conteúdo da aplicação no alternador de aplicações"), "hiding": MessageLookupByLibrary.simpleMessage("Ocultando..."), - "hikingWithThem": m41, "hostedAtOsmFrance": - MessageLookupByLibrary.simpleMessage("Hospedado em OSM France"), + MessageLookupByLibrary.simpleMessage("Hospedado na OSM France"), "howItWorks": MessageLookupByLibrary.simpleMessage("Como funciona"), "howToViewShareeVerificationID": MessageLookupByLibrary.simpleMessage( - "Peça-os para manterem pressionado no endereço de e-mail na tela de opções, e verifique-se os IDs de ambos os dispositivos correspondem."), + "Por favor, peça-lhes para pressionar longamente o endereço de e-mail na tela de configurações e verifique se os IDs de ambos os dispositivos coincidem."), "iOSGoToSettingsDescription": MessageLookupByLibrary.simpleMessage( - "A autenticação biométrica não está definida no dispositivo. Ative o Touch ID ou Face ID no dispositivo."), + "A autenticação biométrica não está configurada no seu dispositivo. Active o Touch ID ou o Face ID no seu telemóvel."), "iOSLockOut": MessageLookupByLibrary.simpleMessage( - "A autenticação biométrica está desativada. Bloqueie e desbloqueie sua tela para ativá-la."), + "A autenticação biométrica está desativada. Por favor, bloqueie e desbloqueie o ecrã para ativá-la."), "iOSOkButton": MessageLookupByLibrary.simpleMessage("OK"), "ignoreUpdate": MessageLookupByLibrary.simpleMessage("Ignorar"), - "ignored": MessageLookupByLibrary.simpleMessage("ignorado"), "ignoredFolderUploadReason": MessageLookupByLibrary.simpleMessage( - "Alguns arquivos neste álbum são ignorados do envio porque eles foram anteriormente excluídos do Ente."), - "imageNotAnalyzed": - MessageLookupByLibrary.simpleMessage("Imagem não analisada"), + "Alguns ficheiros deste álbum não podem ser carregados porque foram anteriormente eliminados do Ente."), "immediately": MessageLookupByLibrary.simpleMessage("Imediatamente"), - "importing": MessageLookupByLibrary.simpleMessage("Importando...."), + "importing": MessageLookupByLibrary.simpleMessage("A importar..."), "incorrectCode": - MessageLookupByLibrary.simpleMessage("Código incorreto"), + MessageLookupByLibrary.simpleMessage("Código incorrecto"), "incorrectPasswordTitle": - MessageLookupByLibrary.simpleMessage("Senha incorreta"), + MessageLookupByLibrary.simpleMessage("Palavra-passe incorreta"), "incorrectRecoveryKey": MessageLookupByLibrary.simpleMessage( "Chave de recuperação incorreta"), "incorrectRecoveryKeyBody": MessageLookupByLibrary.simpleMessage( @@ -1119,112 +925,81 @@ class MessageLookup extends MessageLookupByLibrary { "Chave de recuperação incorreta"), "indexedItems": MessageLookupByLibrary.simpleMessage("Itens indexados"), "indexingIsPaused": MessageLookupByLibrary.simpleMessage( - "A indexação parou, ela será retomada automaticamente quando o dispositivo estiver pronto."), - "ineligible": MessageLookupByLibrary.simpleMessage("Inelegível"), - "info": MessageLookupByLibrary.simpleMessage("Info"), + "A indexação está pausada, será retomada automaticamente quando o dispositivo estiver pronto."), "insecureDevice": MessageLookupByLibrary.simpleMessage("Dispositivo inseguro"), "installManually": MessageLookupByLibrary.simpleMessage("Instalar manualmente"), "invalidEmailAddress": - MessageLookupByLibrary.simpleMessage("Endereço de e-mail inválido"), + MessageLookupByLibrary.simpleMessage("Endereço de email inválido"), "invalidEndpoint": - MessageLookupByLibrary.simpleMessage("Ponto final inválido"), + MessageLookupByLibrary.simpleMessage("Endpoint inválido"), "invalidEndpointMessage": MessageLookupByLibrary.simpleMessage( - "Desculpe, o ponto final inserido é inválido. Insira um ponto final válido e tente novamente."), + "Desculpe, o endpoint que introduziu é inválido. Introduza um ponto final válido e tente novamente."), "invalidKey": MessageLookupByLibrary.simpleMessage("Chave inválida"), "invalidRecoveryKey": MessageLookupByLibrary.simpleMessage( - "A chave de recuperação que você inseriu não é válida. Certifique-se de conter 24 caracteres, e verifique a ortografia de cada um deles.\n\nSe você inseriu um código de recuperação mais antigo, verifique se ele tem 64 caracteres e verifique cada um deles."), + "A chave de recuperação que inseriu não é válida. Por favor, certifique-se que ela contém 24 palavras e verifique a ortografia de cada uma.\n\nSe inseriu um código de recuperação mais antigo, certifique-se de que tem 64 caracteres e verifique cada um deles."), "invite": MessageLookupByLibrary.simpleMessage("Convidar"), "inviteToEnte": - MessageLookupByLibrary.simpleMessage("Convidar ao Ente"), + MessageLookupByLibrary.simpleMessage("Convidar para Ente"), "inviteYourFriends": - MessageLookupByLibrary.simpleMessage("Convide seus amigos"), - "inviteYourFriendsToEnte": - MessageLookupByLibrary.simpleMessage("Convide seus amigos ao Ente"), + MessageLookupByLibrary.simpleMessage("Convide os seus amigos"), + "inviteYourFriendsToEnte": MessageLookupByLibrary.simpleMessage( + "Convide seus amigos para o Ente"), "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( - "Parece que algo deu errado. Tente novamente mais tarde. Caso o erro persistir, por favor, entre em contato com nossa equipe."), + "Parece que algo correu mal. Por favor, tente novamente após algum tempo. Se o erro persistir, contacte a nossa equipa de apoio."), "itemCount": m42, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( - "Os itens exibem o número de dias restantes antes da exclusão permanente"), + "Os itens mostram o número de dias restantes antes da eliminação permanente"), "itemsWillBeRemovedFromAlbum": MessageLookupByLibrary.simpleMessage( "Os itens selecionados serão removidos deste álbum"), - "join": MessageLookupByLibrary.simpleMessage("Unir-se"), - "joinAlbum": MessageLookupByLibrary.simpleMessage("Unir-se ao álbum"), - "joinAlbumConfirmationDialogBody": MessageLookupByLibrary.simpleMessage( - "Unir-se ao álbum fará que seu e-mail seja visível a todos do álbum."), - "joinAlbumSubtext": MessageLookupByLibrary.simpleMessage( - "para visualizar e adicionar suas fotos"), - "joinAlbumSubtextViewer": MessageLookupByLibrary.simpleMessage( - "para adicionar isso aos álbuns compartilhados"), "joinDiscord": - MessageLookupByLibrary.simpleMessage("Junte-se ao Discord"), + MessageLookupByLibrary.simpleMessage("Juntar-se ao Discord"), "keepPhotos": MessageLookupByLibrary.simpleMessage("Manter fotos"), "kiloMeterUnit": MessageLookupByLibrary.simpleMessage("km"), "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage( - "Ajude-nos com esta informação"), + "Por favor, ajude-nos com esta informação"), "language": MessageLookupByLibrary.simpleMessage("Idioma"), - "lastTimeWithThem": m43, "lastUpdated": MessageLookupByLibrary.simpleMessage("Última atualização"), - "lastYearsTrip": - MessageLookupByLibrary.simpleMessage("Viajem do ano passado"), "leave": MessageLookupByLibrary.simpleMessage("Sair"), "leaveAlbum": MessageLookupByLibrary.simpleMessage("Sair do álbum"), "leaveFamily": - MessageLookupByLibrary.simpleMessage("Sair do plano familiar"), + MessageLookupByLibrary.simpleMessage("Deixar plano famíliar"), "leaveSharedAlbum": MessageLookupByLibrary.simpleMessage( "Sair do álbum compartilhado?"), "left": MessageLookupByLibrary.simpleMessage("Esquerda"), - "legacy": MessageLookupByLibrary.simpleMessage("Legado"), - "legacyAccounts": - MessageLookupByLibrary.simpleMessage("Contas legadas"), - "legacyInvite": m44, - "legacyPageDesc": MessageLookupByLibrary.simpleMessage( - "O legado permite que contatos confiáveis acessem sua conta em sua ausência."), - "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( - "Contatos confiáveis podem iniciar recuperação de conta. Se não cancelado dentro de 30 dias, redefina sua senha e acesse sua conta."), - "light": MessageLookupByLibrary.simpleMessage("Brilho"), + "light": MessageLookupByLibrary.simpleMessage("Claro"), "lightTheme": MessageLookupByLibrary.simpleMessage("Claro"), - "link": MessageLookupByLibrary.simpleMessage("Vincular"), "linkCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Link copiado para a área de transferência"), "linkDeviceLimit": - MessageLookupByLibrary.simpleMessage("Limite do dispositivo"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Vincular e-mail"), - "linkEmailToContactBannerCaption": - MessageLookupByLibrary.simpleMessage("para compartilhar rápido"), + MessageLookupByLibrary.simpleMessage("Limite de dispositivo"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Ativado"), "linkExpired": MessageLookupByLibrary.simpleMessage("Expirado"), "linkExpiresOn": m45, - "linkExpiry": MessageLookupByLibrary.simpleMessage("Expiração do link"), + "linkExpiry": MessageLookupByLibrary.simpleMessage("Link expirado"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("O link expirou"), "linkNeverExpires": MessageLookupByLibrary.simpleMessage("Nunca"), - "linkPerson": MessageLookupByLibrary.simpleMessage("Vincular pessoa"), - "linkPersonCaption": MessageLookupByLibrary.simpleMessage( - "para melhor experiência de compartilhamento"), - "linkPersonToEmail": m46, - "linkPersonToEmailConfirmation": m47, - "livePhotos": MessageLookupByLibrary.simpleMessage("Fotos animadas"), + "livePhotos": + MessageLookupByLibrary.simpleMessage("Fotos Em Tempo Real"), "loadMessage1": MessageLookupByLibrary.simpleMessage( - "Você pode compartilhar sua assinatura com seus familiares"), - "loadMessage2": MessageLookupByLibrary.simpleMessage( - "Nós preservamos mais de 30 milhões de memórias até então"), + "Pode partilhar a sua subscrição com a sua família"), "loadMessage3": MessageLookupByLibrary.simpleMessage( "Mantemos 3 cópias dos seus dados, uma em um abrigo subterrâneo"), "loadMessage4": MessageLookupByLibrary.simpleMessage( "Todos os nossos aplicativos são de código aberto"), "loadMessage5": MessageLookupByLibrary.simpleMessage( "Nosso código-fonte e criptografia foram auditadas externamente"), - "loadMessage6": MessageLookupByLibrary.simpleMessage( - "Você pode compartilhar links para seus álbuns com seus entes queridos"), + "loadMessage6": + MessageLookupByLibrary.simpleMessage("Deixar o álbum partilhado?"), "loadMessage7": MessageLookupByLibrary.simpleMessage( - "Nossos aplicativos móveis são executados em segundo plano para criptografar e copiar com segurança quaisquer fotos novas que você acessar"), + "Nossos aplicativos móveis são executados em segundo plano para criptografar e fazer backup de quaisquer novas fotos que você clique"), "loadMessage8": MessageLookupByLibrary.simpleMessage( - "web.ente.io tem um enviador mais rápido"), + "web.ente.io tem um envio mais rápido"), "loadMessage9": MessageLookupByLibrary.simpleMessage( "Nós usamos Xchacha20Poly1305 para criptografar seus dados com segurança"), "loadingExifData": @@ -1232,412 +1007,349 @@ class MessageLookup extends MessageLookupByLibrary { "loadingGallery": MessageLookupByLibrary.simpleMessage("Carregando galeria..."), "loadingMessage": - MessageLookupByLibrary.simpleMessage("Carregando suas fotos..."), + MessageLookupByLibrary.simpleMessage("Carregar as suas fotos..."), "loadingModel": - MessageLookupByLibrary.simpleMessage("Baixando modelos..."), + MessageLookupByLibrary.simpleMessage("Transferindo modelos..."), "loadingYourPhotos": - MessageLookupByLibrary.simpleMessage("Carregando suas fotos..."), + MessageLookupByLibrary.simpleMessage("Carregar as suas fotos..."), "localGallery": MessageLookupByLibrary.simpleMessage("Galeria local"), "localIndexing": MessageLookupByLibrary.simpleMessage("Indexação local"), "localSyncErrorMessage": MessageLookupByLibrary.simpleMessage( - "Ocorreu um erro devido à sincronização de localização das fotos estar levando mais tempo que o esperado. Entre em contato conosco."), + "Parece que algo correu mal, uma vez que a sincronização de fotografias locais está a demorar mais tempo do que o esperado. Contacte a nossa equipa de apoio"), "location": MessageLookupByLibrary.simpleMessage("Localização"), "locationName": MessageLookupByLibrary.simpleMessage("Nome da localização"), "locationTagFeatureDescription": MessageLookupByLibrary.simpleMessage( - "Uma etiqueta de localização agrupa todas as fotos fotografadas em algum raio de uma foto"), + "Uma etiqueta de localização agrupa todas as fotos que foram tiradas num determinado raio de uma fotografia"), "locations": MessageLookupByLibrary.simpleMessage("Localizações"), "lockButtonLabel": MessageLookupByLibrary.simpleMessage("Bloquear"), - "lockscreen": MessageLookupByLibrary.simpleMessage("Tela de bloqueio"), - "logInLabel": MessageLookupByLibrary.simpleMessage("Entrar"), - "loggingOut": MessageLookupByLibrary.simpleMessage("Desconectando..."), + "lockscreen": MessageLookupByLibrary.simpleMessage("Ecrã de bloqueio"), + "logInLabel": MessageLookupByLibrary.simpleMessage("Iniciar sessão"), + "loggingOut": + MessageLookupByLibrary.simpleMessage("Terminar a sessão..."), "loginSessionExpired": MessageLookupByLibrary.simpleMessage("Sessão expirada"), "loginSessionExpiredDetails": MessageLookupByLibrary.simpleMessage( - "Sua sessão expirou. Registre-se novamente."), + "A sua sessão expirou. Por favor, inicie sessão novamente."), "loginTerms": MessageLookupByLibrary.simpleMessage( - "Ao clicar em entrar, eu concordo com os termos de serviço e a política de privacidade"), + "Ao clicar em iniciar sessão, eu concordo com os termos de serviço e política de privacidade"), "loginWithTOTP": - MessageLookupByLibrary.simpleMessage("Registrar com TOTP"), - "logout": MessageLookupByLibrary.simpleMessage("Encerrar sessão"), + MessageLookupByLibrary.simpleMessage("Iniciar sessão com TOTP"), + "logout": MessageLookupByLibrary.simpleMessage("Terminar sessão"), "logsDialogBody": MessageLookupByLibrary.simpleMessage( - "Isso enviará através dos registros para ajudar-nos a resolver seu problema. Saiba que, nome de arquivos serão incluídos para ajudar a buscar problemas com arquivos específicos."), + "Isto enviará os registos para nos ajudar a resolver o problema. Tenha em atenção que os nomes dos ficheiros serão incluídos para ajudar a localizar problemas com ficheiros específicos."), "longPressAnEmailToVerifyEndToEndEncryption": MessageLookupByLibrary.simpleMessage( - "Pressione um e-mail para verificar a criptografia ponta a ponta."), + "Pressione e segure um e-mail para verificar a criptografia de ponta a ponta."), "longpressOnAnItemToViewInFullscreen": MessageLookupByLibrary.simpleMessage( - "Mantenha pressionado em um item para visualizá-lo em tela cheia"), + "Pressione e segure em um item para ver em tela cheia"), "loopVideoOff": - MessageLookupByLibrary.simpleMessage("Repetir vídeo desativado"), + MessageLookupByLibrary.simpleMessage("Repetir vídeo desligado"), "loopVideoOn": - MessageLookupByLibrary.simpleMessage("Repetir vídeo ativado"), + MessageLookupByLibrary.simpleMessage("Repetir vídeo ligado"), "lostDevice": - MessageLookupByLibrary.simpleMessage("Perdeu o dispositivo?"), + MessageLookupByLibrary.simpleMessage("Perdeu o seu dispositívo?"), "machineLearning": MessageLookupByLibrary.simpleMessage("Aprendizagem automática"), - "magicSearch": MessageLookupByLibrary.simpleMessage("Busca mágica"), + "magicSearch": MessageLookupByLibrary.simpleMessage("Pesquisa mágica"), "magicSearchHint": MessageLookupByLibrary.simpleMessage( - "A busca mágica permite buscar fotos pelo conteúdo, p. e.x. \'flor\', \'carro vermelho\', \'identidade\'"), - "manage": MessageLookupByLibrary.simpleMessage("Gerenciar"), - "manageDeviceStorage": MessageLookupByLibrary.simpleMessage( - "Gerenciar cache do dispositivo"), + "A pesquisa mágica permite pesquisar fotos por seu conteúdo, por exemplo, \'flor\', \'carro vermelho\', \'documentos de identidade\'"), + "manage": MessageLookupByLibrary.simpleMessage("Gerir"), "manageDeviceStorageDesc": MessageLookupByLibrary.simpleMessage( "Reveja e limpe o armazenamento de cache local."), - "manageFamily": - MessageLookupByLibrary.simpleMessage("Gerenciar família"), - "manageLink": MessageLookupByLibrary.simpleMessage("Gerenciar link"), - "manageParticipants": MessageLookupByLibrary.simpleMessage("Gerenciar"), + "manageFamily": MessageLookupByLibrary.simpleMessage("Gerir família"), + "manageLink": MessageLookupByLibrary.simpleMessage("Gerir link"), + "manageParticipants": MessageLookupByLibrary.simpleMessage("Gerir"), "manageSubscription": - MessageLookupByLibrary.simpleMessage("Gerenciar assinatura"), + MessageLookupByLibrary.simpleMessage("Gerir subscrição"), "manualPairDesc": MessageLookupByLibrary.simpleMessage( - "Parear com PIN funciona com qualquer tela que queira visualizar seu álbum."), + "Emparelhar com PIN funciona com qualquer ecrã onde pretenda ver o seu álbum."), "map": MessageLookupByLibrary.simpleMessage("Mapa"), "maps": MessageLookupByLibrary.simpleMessage("Mapas"), "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), - "me": MessageLookupByLibrary.simpleMessage("Eu"), - "memoryCount": m48, "merchandise": MessageLookupByLibrary.simpleMessage("Produtos"), "mergeWithExisting": MessageLookupByLibrary.simpleMessage("Juntar com o existente"), - "mergedPhotos": MessageLookupByLibrary.simpleMessage("Fotos mescladas"), + "mergedPhotos": + MessageLookupByLibrary.simpleMessage("Fotos combinadas"), "mlConsent": MessageLookupByLibrary.simpleMessage( "Ativar aprendizagem automática"), "mlConsentConfirmation": MessageLookupByLibrary.simpleMessage( "Eu entendo, e desejo ativar a aprendizagem automática"), "mlConsentDescription": MessageLookupByLibrary.simpleMessage( - "Se você ativar a aprendizagem automática, o Ente irá extrair informações como geometria de rosto dos arquivos, incluindo os compartilhados com você.\n\nIsso acontecerá no seu dispositivo, qualquer informação biométrica gerada será criptografada ponta a ponta."), + "Se ativar a aprendizagem automática, o Ente extrairá informações como a geometria do rosto de ficheiros, incluindo os partilhados consigo.\n\n\nIsto acontecerá no seu dispositivo e todas as informações biométricas geradas serão encriptadas de ponta a ponta."), "mlConsentPrivacy": MessageLookupByLibrary.simpleMessage( - "Clique aqui para mais detalhes sobre este recurso na política de privacidade"), + "Por favor, clique aqui para mais detalhes sobre este recurso na nossa política de privacidade"), "mlConsentTitle": MessageLookupByLibrary.simpleMessage( "Ativar aprendizagem automática?"), "mlIndexingDescription": MessageLookupByLibrary.simpleMessage( - "Note que a aprendizagem automática resultará em uso de bateria e largura de banda maior até que todos os itens forem indexados. Considere-se usar o aplicativo para notebook para uma indexação mais rápida, todos os resultados serão sincronizados automaticamente."), + "Tenha em atenção que a aprendizagem automática resultará numa maior utilização da largura de banda e da bateria até que todos os itens sejam indexados. Considere utilizar a aplicação de ambiente de trabalho para uma indexação mais rápida, todos os resultados serão sincronizados automaticamente."), "mobileWebDesktop": - MessageLookupByLibrary.simpleMessage("Celular, Web, Computador"), - "moderateStrength": MessageLookupByLibrary.simpleMessage("Moderado"), + MessageLookupByLibrary.simpleMessage("Mobile, Web, Desktop"), + "moderateStrength": MessageLookupByLibrary.simpleMessage("Moderada"), "modifyYourQueryOrTrySearchingFor": MessageLookupByLibrary.simpleMessage( - "Altere o termo de busca ou tente consultar"), + "Modifique a sua consulta ou tente pesquisar por"), "moments": MessageLookupByLibrary.simpleMessage("Momentos"), - "month": MessageLookupByLibrary.simpleMessage("mês"), "monthly": MessageLookupByLibrary.simpleMessage("Mensal"), - "moon": MessageLookupByLibrary.simpleMessage("Na luz do luar"), "moreDetails": MessageLookupByLibrary.simpleMessage("Mais detalhes"), "mostRecent": MessageLookupByLibrary.simpleMessage("Mais recente"), "mostRelevant": MessageLookupByLibrary.simpleMessage("Mais relevante"), - "mountains": MessageLookupByLibrary.simpleMessage("Sob as montanhas"), - "moveItem": m49, - "moveSelectedPhotosToOneDate": MessageLookupByLibrary.simpleMessage( - "Mover fotos selecionadas para uma data"), - "moveToAlbum": - MessageLookupByLibrary.simpleMessage("Mover para o álbum"), + "moveToAlbum": MessageLookupByLibrary.simpleMessage("Mover para álbum"), "moveToHiddenAlbum": - MessageLookupByLibrary.simpleMessage("Mover ao álbum oculto"), + MessageLookupByLibrary.simpleMessage("Mover para álbum oculto"), "movedSuccessfullyTo": m50, "movedToTrash": - MessageLookupByLibrary.simpleMessage("Movido para a lixeira"), + MessageLookupByLibrary.simpleMessage("Mover para o lixo"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( - "Movendo arquivos para o álbum..."), + "Mover arquivos para o álbum..."), "name": MessageLookupByLibrary.simpleMessage("Nome"), - "nameTheAlbum": MessageLookupByLibrary.simpleMessage("Nomear álbum"), + "nameTheAlbum": MessageLookupByLibrary.simpleMessage("Nomear o álbum"), "networkConnectionRefusedErr": MessageLookupByLibrary.simpleMessage( - "Não foi possível conectar ao Ente, tente novamente mais tarde. Se o erro persistir, entre em contato com o suporte."), + "Não foi possível conectar ao Ente, tente novamente após algum tempo. Se o erro persistir, entre em contato com o suporte."), "networkHostLookUpErr": MessageLookupByLibrary.simpleMessage( - "Não foi possível conectar-se ao Ente, verifique suas configurações de rede e entre em contato com o suporte se o erro persistir."), + "Não foi possível estabelecer ligação ao Ente. Verifique as definições de rede e contacte o serviço de apoio se o erro persistir."), "never": MessageLookupByLibrary.simpleMessage("Nunca"), "newAlbum": MessageLookupByLibrary.simpleMessage("Novo álbum"), - "newLocation": MessageLookupByLibrary.simpleMessage("Nova localização"), "newPerson": MessageLookupByLibrary.simpleMessage("Nova pessoa"), - "newRange": MessageLookupByLibrary.simpleMessage("Novo intervalo"), "newToEnte": MessageLookupByLibrary.simpleMessage("Novo no Ente"), - "newest": MessageLookupByLibrary.simpleMessage("Mais recente"), - "next": MessageLookupByLibrary.simpleMessage("Próximo"), + "newest": MessageLookupByLibrary.simpleMessage("Recentes"), + "next": MessageLookupByLibrary.simpleMessage("Seguinte"), "no": MessageLookupByLibrary.simpleMessage("Não"), "noAlbumsSharedByYouYet": MessageLookupByLibrary.simpleMessage( - "Nenhum álbum compartilhado por você ainda"), + "Ainda não há álbuns partilhados por si"), "noDeviceFound": MessageLookupByLibrary.simpleMessage( "Nenhum dispositivo encontrado"), "noDeviceLimit": MessageLookupByLibrary.simpleMessage("Nenhum"), "noDeviceThatCanBeDeleted": MessageLookupByLibrary.simpleMessage( - "Você não tem arquivos neste dispositivo que possam ser excluídos"), + "Você não tem arquivos neste dispositivo que possam ser apagados"), "noDuplicates": - MessageLookupByLibrary.simpleMessage("✨ Sem duplicatas"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("Nenhuma conta Ente!"), + MessageLookupByLibrary.simpleMessage("✨ Sem duplicados"), "noExifData": MessageLookupByLibrary.simpleMessage("Sem dados EXIF"), - "noFacesFound": - MessageLookupByLibrary.simpleMessage("Nenhum rosto encontrado"), "noHiddenPhotosOrVideos": MessageLookupByLibrary.simpleMessage("Sem fotos ou vídeos ocultos"), "noImagesWithLocation": MessageLookupByLibrary.simpleMessage( "Nenhuma imagem com localização"), "noInternetConnection": - MessageLookupByLibrary.simpleMessage("Sem conexão à internet"), + MessageLookupByLibrary.simpleMessage("Sem ligação à internet"), "noPhotosAreBeingBackedUpRightNow": MessageLookupByLibrary.simpleMessage( - "No momento não há fotos sendo copiadas com segurança"), + "No momento não há backup de fotos sendo feito"), "noPhotosFoundHere": MessageLookupByLibrary.simpleMessage( "Nenhuma foto encontrada aqui"), "noQuickLinksSelected": MessageLookupByLibrary.simpleMessage( "Nenhum link rápido selecionado"), - "noRecoveryKey": - MessageLookupByLibrary.simpleMessage("Sem chave de recuperação?"), + "noRecoveryKey": MessageLookupByLibrary.simpleMessage( + "Não tem chave de recuperação?"), "noRecoveryKeyNoDecryption": MessageLookupByLibrary.simpleMessage( - "Devido à natureza do nosso protocolo de criptografia de ponta a ponta, seus dados não podem ser descriptografados sem sua senha ou chave de recuperação"), + "Devido à natureza do nosso protocolo de criptografia de ponta a ponta, os seus dados não podem ser descriptografados sem a sua palavra-passe ou a sua chave de recuperação"), "noResults": MessageLookupByLibrary.simpleMessage("Nenhum resultado"), - "noResultsFound": - MessageLookupByLibrary.simpleMessage("Nenhum resultado encontrado"), - "noSuggestionsForPerson": m51, + "noResultsFound": MessageLookupByLibrary.simpleMessage( + "Não foram encontrados resultados"), "noSystemLockFound": MessageLookupByLibrary.simpleMessage( - "Nenhum bloqueio do sistema encontrado"), + "Nenhum bloqueio de sistema encontrado"), "notPersonLabel": m52, - "notThisPerson": - MessageLookupByLibrary.simpleMessage("Não é esta pessoa?"), "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( - "Nada compartilhado com você ainda"), + "Ainda nada partilhado consigo"), "nothingToSeeHere": MessageLookupByLibrary.simpleMessage("Nada para ver aqui! 👀"), "notifications": MessageLookupByLibrary.simpleMessage("Notificações"), - "ok": MessageLookupByLibrary.simpleMessage("OK"), + "ok": MessageLookupByLibrary.simpleMessage("Ok"), "onDevice": MessageLookupByLibrary.simpleMessage("No dispositivo"), "onEnte": MessageLookupByLibrary.simpleMessage( - "No ente"), - "onTheRoad": MessageLookupByLibrary.simpleMessage("Na estrada de novo"), + "Em ente"), "onlyFamilyAdminCanChangeCode": m53, "onlyThem": MessageLookupByLibrary.simpleMessage("Apenas eles"), - "oops": MessageLookupByLibrary.simpleMessage("Ops"), + "oops": MessageLookupByLibrary.simpleMessage("Oops"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( - "Opa! Não foi possível salvar as edições"), + "Oops, não foi possível guardar as edições"), "oopsSomethingWentWrong": MessageLookupByLibrary.simpleMessage("Ops, algo deu errado"), - "openAlbumInBrowser": - MessageLookupByLibrary.simpleMessage("Abrir álbum no navegador"), - "openAlbumInBrowserTitle": MessageLookupByLibrary.simpleMessage( - "Use o aplicativo da web para adicionar fotos a este álbum"), - "openFile": MessageLookupByLibrary.simpleMessage("Abrir arquivo"), - "openSettings": MessageLookupByLibrary.simpleMessage("Abrir opções"), - "openTheItem": - MessageLookupByLibrary.simpleMessage("• Abra a foto ou vídeo"), + "openSettings": + MessageLookupByLibrary.simpleMessage("Abrir Definições"), + "openTheItem": MessageLookupByLibrary.simpleMessage("• Abra o item"), "openstreetmapContributors": MessageLookupByLibrary.simpleMessage( "Contribuidores do OpenStreetMap"), "optionalAsShortAsYouLike": MessageLookupByLibrary.simpleMessage( - "Opcional, tão curto como quiser..."), - "orMergeWithExistingPerson": - MessageLookupByLibrary.simpleMessage("Ou mesclar com existente"), + "Opcional, o mais breve que quiser..."), + "orMergeWithExistingPerson": MessageLookupByLibrary.simpleMessage( + "Ou combinar com já existente"), "orPickAnExistingOne": - MessageLookupByLibrary.simpleMessage("Ou escolha um existente"), - "orPickFromYourContacts": MessageLookupByLibrary.simpleMessage( - "ou escolher dos seus contatos"), - "pair": MessageLookupByLibrary.simpleMessage("Parear"), - "pairWithPin": MessageLookupByLibrary.simpleMessage("Parear com PIN"), + MessageLookupByLibrary.simpleMessage("Ou escolha um já existente"), + "pair": MessageLookupByLibrary.simpleMessage("Emparelhar"), + "pairWithPin": + MessageLookupByLibrary.simpleMessage("Emparelhar com PIN"), "pairingComplete": - MessageLookupByLibrary.simpleMessage("Pareamento concluído"), + MessageLookupByLibrary.simpleMessage("Emparelhamento concluído"), "panorama": MessageLookupByLibrary.simpleMessage("Panorama"), - "partyWithThem": m54, - "passKeyPendingVerification": - MessageLookupByLibrary.simpleMessage("Verificação pendente"), + "passKeyPendingVerification": MessageLookupByLibrary.simpleMessage( + "A verificação ainda está pendente"), "passkey": MessageLookupByLibrary.simpleMessage("Chave de acesso"), "passkeyAuthTitle": MessageLookupByLibrary.simpleMessage( - "Verificação de chave de acesso"), - "password": MessageLookupByLibrary.simpleMessage("Senha"), - "passwordChangedSuccessfully": - MessageLookupByLibrary.simpleMessage("Senha alterada com sucesso"), + "Verificação da chave de acesso"), + "password": MessageLookupByLibrary.simpleMessage("Palavra-passe"), + "passwordChangedSuccessfully": MessageLookupByLibrary.simpleMessage( + "Palavra-passe alterada com sucesso"), "passwordLock": - MessageLookupByLibrary.simpleMessage("Bloqueio por senha"), + MessageLookupByLibrary.simpleMessage("Bloqueio da palavra-passe"), "passwordStrength": m55, "passwordStrengthInfo": MessageLookupByLibrary.simpleMessage( - "A força da senha é calculada considerando o comprimento dos dígitos, carácteres usados, e se ou não a senha aparece nas 10.000 senhas usadas."), + "A força da palavra-passe é calculada tendo em conta o comprimento da palavra-passe, os caracteres utilizados e se a palavra-passe aparece ou não nas 10.000 palavras-passe mais utilizadas"), "passwordWarning": MessageLookupByLibrary.simpleMessage( - "Nós não armazenamos esta senha, se você esquecer, nós não poderemos descriptografar seus dados"), + "Não armazenamos esta palavra-passe, se você a esquecer, não podemos desencriptar os seus dados"), "paymentDetails": MessageLookupByLibrary.simpleMessage("Detalhes de pagamento"), "paymentFailed": MessageLookupByLibrary.simpleMessage("O pagamento falhou"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( - "Infelizmente o pagamento falhou. Entre em contato com o suporte e nós ajudaremos você!"), + "Infelizmente o seu pagamento falhou. Entre em contato com o suporte e nós ajudaremos você!"), "paymentFailedTalkToProvider": m56, "pendingItems": MessageLookupByLibrary.simpleMessage("Itens pendentes"), "pendingSync": MessageLookupByLibrary.simpleMessage("Sincronização pendente"), "people": MessageLookupByLibrary.simpleMessage("Pessoas"), - "peopleUsingYourCode": - MessageLookupByLibrary.simpleMessage("Pessoas que usam seu código"), + "peopleUsingYourCode": MessageLookupByLibrary.simpleMessage( + "Pessoas que utilizam seu código"), "permDeleteWarning": MessageLookupByLibrary.simpleMessage( - "Todos os itens na lixeira serão excluídos permanentemente\n\nEsta ação não pode ser desfeita"), + "Todos os itens no lixo serão permanentemente eliminados\n\n\nEsta ação não pode ser anulada"), "permanentlyDelete": - MessageLookupByLibrary.simpleMessage("Excluir permanentemente"), + MessageLookupByLibrary.simpleMessage("Eliminar permanentemente"), "permanentlyDeleteFromDevice": MessageLookupByLibrary.simpleMessage( - "Excluir permanentemente do dispositivo?"), - "personIsAge": m57, + "Apagar permanentemente do dispositivo?"), "personName": MessageLookupByLibrary.simpleMessage("Nome da pessoa"), - "personTurningAge": m58, - "pets": MessageLookupByLibrary.simpleMessage("Companhia de pelos"), "photoDescriptions": MessageLookupByLibrary.simpleMessage("Descrições das fotos"), "photoGridSize": - MessageLookupByLibrary.simpleMessage("Tamanho da grade de fotos"), + MessageLookupByLibrary.simpleMessage("Tamanho da grelha de fotos"), "photoSmallCase": MessageLookupByLibrary.simpleMessage("foto"), - "photocountPhotos": m59, "photos": MessageLookupByLibrary.simpleMessage("Fotos"), "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( - "Suas fotos adicionadas serão removidas do álbum"), - "photosCount": m60, - "photosKeepRelativeTimeDifference": - MessageLookupByLibrary.simpleMessage( - "As fotos mantêm a diferença de tempo relativo"), + "As fotos adicionadas por si serão removidas do álbum"), "pickCenterPoint": MessageLookupByLibrary.simpleMessage("Escolha o ponto central"), "pinAlbum": MessageLookupByLibrary.simpleMessage("Fixar álbum"), "pinLock": MessageLookupByLibrary.simpleMessage("Bloqueio por PIN"), "playOnTv": MessageLookupByLibrary.simpleMessage("Reproduzir álbum na TV"), - "playOriginal": - MessageLookupByLibrary.simpleMessage("Reproduzir original"), "playStoreFreeTrialValidTill": m61, - "playStream": - MessageLookupByLibrary.simpleMessage("Reproduzir transmissão"), "playstoreSubscription": - MessageLookupByLibrary.simpleMessage("Assinatura da PlayStore"), + MessageLookupByLibrary.simpleMessage("Subscrição da PlayStore"), "pleaseCheckYourInternetConnectionAndTryAgain": MessageLookupByLibrary.simpleMessage( - "Verifique sua conexão com a internet e tente novamente."), + "Por favor, verifique a sua ligação à Internet e tente novamente."), "pleaseContactSupportAndWeWillBeHappyToHelp": MessageLookupByLibrary.simpleMessage( - "Entre em contato com support@ente.io e nós ficaremos felizes em ajudar!"), + "Por favor, entre em contato com support@ente.io e nós ficaremos felizes em ajudar!"), "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Por favor, contate o suporte se o problema persistir"), "pleaseEmailUsAt": m62, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage( "Por favor, conceda as permissões"), - "pleaseLoginAgain": - MessageLookupByLibrary.simpleMessage("Registre-se novamente"), + "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage( + "Por favor, inicie sessão novamente"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Selecione links rápidos para remover"), "pleaseSendTheLogsTo": m63, "pleaseTryAgain": - MessageLookupByLibrary.simpleMessage("Tente novamente"), + MessageLookupByLibrary.simpleMessage("Por favor, tente novamente"), "pleaseVerifyTheCodeYouHaveEntered": - MessageLookupByLibrary.simpleMessage("Verifique o código inserido"), - "pleaseWait": MessageLookupByLibrary.simpleMessage("Aguarde..."), - "pleaseWaitDeletingAlbum": - MessageLookupByLibrary.simpleMessage("Aguarde, excluindo álbum"), + MessageLookupByLibrary.simpleMessage( + "Por favor, verifique se o código que você inseriu"), + "pleaseWait": + MessageLookupByLibrary.simpleMessage("Por favor, aguarde ..."), + "pleaseWaitDeletingAlbum": MessageLookupByLibrary.simpleMessage( + "Por favor aguarde, apagar o álbum"), "pleaseWaitForSometimeBeforeRetrying": MessageLookupByLibrary.simpleMessage( - "Por favor, aguarde mais algum tempo antes de tentar novamente"), - "pleaseWaitThisWillTakeAWhile": MessageLookupByLibrary.simpleMessage( - "Aguarde um pouco, isso talvez leve um tempo."), - "posingWithThem": m64, + "Por favor, aguarde algum tempo antes de tentar novamente"), "preparingLogs": - MessageLookupByLibrary.simpleMessage("Preparando registros..."), + MessageLookupByLibrary.simpleMessage("Preparando logs..."), "preserveMore": MessageLookupByLibrary.simpleMessage("Preservar mais"), "pressAndHoldToPlayVideo": MessageLookupByLibrary.simpleMessage( "Pressione e segure para reproduzir o vídeo"), "pressAndHoldToPlayVideoDetailed": MessageLookupByLibrary.simpleMessage( "Pressione e segure na imagem para reproduzir o vídeo"), - "previous": MessageLookupByLibrary.simpleMessage("Anterior"), "privacy": MessageLookupByLibrary.simpleMessage("Privacidade"), "privacyPolicyTitle": - MessageLookupByLibrary.simpleMessage("Política de Privacidade"), + MessageLookupByLibrary.simpleMessage("Política de privacidade"), "privateBackups": - MessageLookupByLibrary.simpleMessage("Cópias privadas"), + MessageLookupByLibrary.simpleMessage("Backups privados"), "privateSharing": - MessageLookupByLibrary.simpleMessage("Compartilhamento privado"), - "proceed": MessageLookupByLibrary.simpleMessage("Continuar"), - "processed": MessageLookupByLibrary.simpleMessage("Processado"), - "processing": MessageLookupByLibrary.simpleMessage("Processando"), + MessageLookupByLibrary.simpleMessage("Partilha privada"), "processingImport": m65, - "processingVideos": - MessageLookupByLibrary.simpleMessage("Processando vídeos"), "publicLinkCreated": MessageLookupByLibrary.simpleMessage("Link público criado"), "publicLinkEnabled": - MessageLookupByLibrary.simpleMessage("Link público ativo"), - "queued": MessageLookupByLibrary.simpleMessage("Na fila"), + MessageLookupByLibrary.simpleMessage("Link público ativado"), "quickLinks": MessageLookupByLibrary.simpleMessage("Links rápidos"), "radius": MessageLookupByLibrary.simpleMessage("Raio"), "raiseTicket": MessageLookupByLibrary.simpleMessage("Abrir ticket"), - "rateTheApp": - MessageLookupByLibrary.simpleMessage("Avalie o aplicativo"), - "rateUs": MessageLookupByLibrary.simpleMessage("Avaliar"), + "rateTheApp": MessageLookupByLibrary.simpleMessage("Avaliar aplicação"), + "rateUs": MessageLookupByLibrary.simpleMessage("Avalie-nos"), "rateUsOnStore": m66, - "reassignMe": MessageLookupByLibrary.simpleMessage("Reatribuir \"Eu\""), - "reassignedToName": m67, - "reassigningLoading": - MessageLookupByLibrary.simpleMessage("Reatribuindo..."), "recover": MessageLookupByLibrary.simpleMessage("Recuperar"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Recuperar conta"), "recoverButton": MessageLookupByLibrary.simpleMessage("Recuperar"), - "recoveryAccount": - MessageLookupByLibrary.simpleMessage("Recuperar conta"), - "recoveryInitiated": - MessageLookupByLibrary.simpleMessage("A recuperação iniciou"), - "recoveryInitiatedDesc": m68, "recoveryKey": MessageLookupByLibrary.simpleMessage("Chave de recuperação"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Chave de recuperação copiada para a área de transferência"), "recoveryKeyOnForgotPassword": MessageLookupByLibrary.simpleMessage( - "Caso você esqueça sua senha, a única maneira de recuperar seus dados é com esta chave."), + "Se esquecer sua palavra-passe, a única maneira de recuperar os seus dados é com esta chave."), "recoveryKeySaveDescription": MessageLookupByLibrary.simpleMessage( - "Não armazenamos esta chave, salve esta chave de 24 palavras em um lugar seguro."), + "Não armazenamos essa chave, por favor, guarde esta chave de 24 palavras num lugar seguro."), "recoveryKeySuccessBody": MessageLookupByLibrary.simpleMessage( - "Ótimo! Sua chave de recuperação é válida. Obrigada por verificar.\n\nLembre-se de manter sua chave de recuperação copiada com segurança."), + "Ótimo! A sua chave de recuperação é válida. Obrigado por verificar.\n\nLembre-se de manter cópia de segurança da sua chave de recuperação."), "recoveryKeyVerified": MessageLookupByLibrary.simpleMessage( "Chave de recuperação verificada"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( - "Sua chave de recuperação é a única maneira de recuperar suas fotos se você esqueceu sua senha. Você pode encontrar sua chave de recuperação em Opções > Conta.\n\nInsira sua chave de recuperação aqui para verificar se você a salvou corretamente."), - "recoveryReady": m69, + "A sua chave de recuperação é a única forma de recuperar as suas fotografias se se esquecer da sua palavra-passe. Pode encontrar a sua chave de recuperação em Definições > Conta.\n\n\nIntroduza aqui a sua chave de recuperação para verificar se a guardou corretamente."), "recoverySuccessful": - MessageLookupByLibrary.simpleMessage("Recuperação com sucesso!"), - "recoveryWarning": MessageLookupByLibrary.simpleMessage( - "Um contato confiável está tentando acessar sua conta"), - "recoveryWarningBody": m70, + MessageLookupByLibrary.simpleMessage("Recuperação bem sucedida!"), "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( - "O dispositivo atual não é poderoso o suficiente para verificar sua senha, no entanto, nós podemos regenerar numa maneira que funciona em todos os dispositivos.\n\nEntre usando a chave de recuperação e regenere sua senha (você pode usar a mesma novamente se desejar)."), + "O dispositivo atual não é suficientemente poderoso para verificar a palavra-passe, mas podemos regenerar novamente de uma maneira que funcione no seu dispositivo.\n\nPor favor, iniciar sessão utilizando código de recuperação e gerar novamente a sua palavra-passe (pode utilizar a mesma se quiser)."), "recreatePasswordTitle": - MessageLookupByLibrary.simpleMessage("Redefinir senha"), + MessageLookupByLibrary.simpleMessage("Recriar palavra-passe"), "reddit": MessageLookupByLibrary.simpleMessage("Reddit"), - "reenterPassword": - MessageLookupByLibrary.simpleMessage("Reinserir senha"), - "reenterPin": MessageLookupByLibrary.simpleMessage("Reinserir PIN"), + "reenterPassword": MessageLookupByLibrary.simpleMessage( + "Insira novamente a palavra-passe"), + "reenterPin": + MessageLookupByLibrary.simpleMessage("Inserir PIN novamente"), "referFriendsAnd2xYourPlan": MessageLookupByLibrary.simpleMessage( - "Recomende seus amigos e duplique seu plano"), + "Recomende amigos e duplique o seu plano"), "referralStep1": MessageLookupByLibrary.simpleMessage( "1. Envie este código aos seus amigos"), "referralStep2": MessageLookupByLibrary.simpleMessage( - "2. Eles então se inscrevem num plano pago"), + "2. Eles se inscrevem em um plano pago"), "referralStep3": m71, "referrals": MessageLookupByLibrary.simpleMessage("Referências"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( - "As referências estão atualmente pausadas"), - "rejectRecovery": - MessageLookupByLibrary.simpleMessage("Rejeitar recuperação"), + "As referências estão atualmente em pausa"), "remindToEmptyDeviceTrash": MessageLookupByLibrary.simpleMessage( - "Também vazio \"Excluído recentemente\" de \"Opções\" -> \"Armazenamento\" para reivindicar espaço liberado"), + "Esvazie também a opção “Eliminados recentemente” em “Definições” -> “Armazenamento” para reclamar o espaço libertado"), "remindToEmptyEnteTrash": MessageLookupByLibrary.simpleMessage( - "Também esvazie sua \"Lixeira\" para reivindicar o espaço liberado"), + "Esvazie também o seu “Lixo” para reivindicar o espaço libertado"), "remoteImages": MessageLookupByLibrary.simpleMessage("Imagens remotas"), "remoteThumbnails": MessageLookupByLibrary.simpleMessage("Miniaturas remotas"), "remoteVideos": MessageLookupByLibrary.simpleMessage("Vídeos remotos"), "remove": MessageLookupByLibrary.simpleMessage("Remover"), "removeDuplicates": - MessageLookupByLibrary.simpleMessage("Excluir duplicatas"), + MessageLookupByLibrary.simpleMessage("Remover duplicados"), "removeDuplicatesDesc": MessageLookupByLibrary.simpleMessage( - "Revise e remova arquivos que são duplicatas exatas."), + "Rever e remover ficheiros que sejam duplicados exatos."), "removeFromAlbum": MessageLookupByLibrary.simpleMessage("Remover do álbum"), "removeFromAlbumTitle": - MessageLookupByLibrary.simpleMessage("Remover do álbum?"), + MessageLookupByLibrary.simpleMessage("Remover do álbum"), "removeFromFavorite": - MessageLookupByLibrary.simpleMessage("Desfavoritar"), - "removeInvite": MessageLookupByLibrary.simpleMessage("Remover convite"), + MessageLookupByLibrary.simpleMessage("Remover dos favoritos"), "removeLink": MessageLookupByLibrary.simpleMessage("Remover link"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Remover participante"), @@ -1652,23 +1364,21 @@ class MessageLookup extends MessageLookupByLibrary { "Alguns dos itens que você está removendo foram adicionados por outras pessoas, e você perderá o acesso a eles"), "removeWithQuestionMark": MessageLookupByLibrary.simpleMessage("Remover?"), - "removeYourselfAsTrustedContact": MessageLookupByLibrary.simpleMessage( - "Remover si mesmo dos contatos confiáveis"), "removingFromFavorites": MessageLookupByLibrary.simpleMessage("Removendo dos favoritos..."), "rename": MessageLookupByLibrary.simpleMessage("Renomear"), "renameAlbum": MessageLookupByLibrary.simpleMessage("Renomear álbum"), "renameFile": MessageLookupByLibrary.simpleMessage("Renomear arquivo"), "renewSubscription": - MessageLookupByLibrary.simpleMessage("Renovar assinatura"), + MessageLookupByLibrary.simpleMessage("Renovar subscrição"), "renewsOn": m73, - "reportABug": MessageLookupByLibrary.simpleMessage("Informar um erro"), - "reportBug": MessageLookupByLibrary.simpleMessage("Informar erro"), + "reportABug": MessageLookupByLibrary.simpleMessage("Reporte um bug"), + "reportBug": MessageLookupByLibrary.simpleMessage("Reportar bug"), "resendEmail": MessageLookupByLibrary.simpleMessage("Reenviar e-mail"), - "resetIgnoredFiles": MessageLookupByLibrary.simpleMessage( - "Redefinir arquivos ignorados"), + "resetIgnoredFiles": + MessageLookupByLibrary.simpleMessage("Repor ficheiros ignorados"), "resetPasswordTitle": - MessageLookupByLibrary.simpleMessage("Redefinir senha"), + MessageLookupByLibrary.simpleMessage("Redefinir palavra-passe"), "resetPerson": MessageLookupByLibrary.simpleMessage("Remover"), "resetToDefault": MessageLookupByLibrary.simpleMessage("Redefinir para o padrão"), @@ -1676,218 +1386,186 @@ class MessageLookup extends MessageLookupByLibrary { "restoreToAlbum": MessageLookupByLibrary.simpleMessage("Restaurar para álbum"), "restoringFiles": - MessageLookupByLibrary.simpleMessage("Restaurando arquivos..."), + MessageLookupByLibrary.simpleMessage("Restaurar arquivos..."), "resumableUploads": - MessageLookupByLibrary.simpleMessage("Envios retomáveis"), + MessageLookupByLibrary.simpleMessage("Uploads reenviados"), "retry": MessageLookupByLibrary.simpleMessage("Tentar novamente"), - "review": MessageLookupByLibrary.simpleMessage("Revisar"), + "review": MessageLookupByLibrary.simpleMessage("Rever"), "reviewDeduplicateItems": MessageLookupByLibrary.simpleMessage( - "Reveja e exclua os itens que você acredita serem duplicados."), + "Reveja e elimine os itens que considera serem duplicados."), "reviewSuggestions": MessageLookupByLibrary.simpleMessage("Revisar sugestões"), "right": MessageLookupByLibrary.simpleMessage("Direita"), - "roadtripWithThem": m74, - "rotate": MessageLookupByLibrary.simpleMessage("Girar"), + "rotate": MessageLookupByLibrary.simpleMessage("Rodar"), "rotateLeft": - MessageLookupByLibrary.simpleMessage("Girar para a esquerda"), + MessageLookupByLibrary.simpleMessage("Rodar para a esquerda"), "rotateRight": - MessageLookupByLibrary.simpleMessage("Girar para a direita"), + MessageLookupByLibrary.simpleMessage("Rodar para a direita"), "safelyStored": MessageLookupByLibrary.simpleMessage("Armazenado com segurança"), - "save": MessageLookupByLibrary.simpleMessage("Salvar"), - "saveChangesBeforeLeavingQuestion": - MessageLookupByLibrary.simpleMessage( - "Salvar mudanças antes de sair?"), - "saveCollage": MessageLookupByLibrary.simpleMessage("Salvar colagem"), - "saveCopy": MessageLookupByLibrary.simpleMessage("Salvar cópia"), - "saveKey": MessageLookupByLibrary.simpleMessage("Salvar chave"), - "savePerson": MessageLookupByLibrary.simpleMessage("Salvar pessoa"), + "save": MessageLookupByLibrary.simpleMessage("Guardar"), + "saveCollage": MessageLookupByLibrary.simpleMessage("Guardar colagem"), + "saveCopy": MessageLookupByLibrary.simpleMessage("Guardar cópia"), + "saveKey": MessageLookupByLibrary.simpleMessage("Guardar chave"), + "savePerson": MessageLookupByLibrary.simpleMessage("Guardar pessoa"), "saveYourRecoveryKeyIfYouHaventAlready": MessageLookupByLibrary.simpleMessage( - "Salve sua chave de recuperação, se você ainda não fez"), - "saving": MessageLookupByLibrary.simpleMessage("Salvando..."), + "Guarde a sua chave de recuperação, caso ainda não o tenha feito"), + "saving": MessageLookupByLibrary.simpleMessage("A gravar..."), "savingEdits": - MessageLookupByLibrary.simpleMessage("Salvando edições..."), - "scanCode": MessageLookupByLibrary.simpleMessage("Escanear código"), + MessageLookupByLibrary.simpleMessage("Gravando edições..."), + "scanCode": MessageLookupByLibrary.simpleMessage("Ler código Qr"), "scanThisBarcodeWithnyourAuthenticatorApp": MessageLookupByLibrary.simpleMessage( - "Escaneie este código de barras com\no aplicativo autenticador"), - "search": MessageLookupByLibrary.simpleMessage("Buscar"), + "Leia este código com a sua aplicação dois fatores."), + "search": MessageLookupByLibrary.simpleMessage("Pesquisar"), "searchAlbumsEmptySection": MessageLookupByLibrary.simpleMessage("Álbuns"), "searchByAlbumNameHint": MessageLookupByLibrary.simpleMessage("Nome do álbum"), "searchByExamples": MessageLookupByLibrary.simpleMessage( - "• Nomes de álbuns (ex: \"Câmera\")\n• Tipos de arquivos (ex.: \"Vídeos\", \".gif\")\n• Anos e meses (ex.: \"2022\", \"Janeiro\")\n• Temporadas (ex.: \"Natal\")\n• Tags (ex.: \"#divertido\")"), + "• Nomes de álbuns (ex: \"Câmera\")\n• Tipos de arquivos (ex.: \"Vídeos\", \".gif\")\n• Anos e meses (e.. \"2022\", \"Janeiro\")\n• Feriados (por exemplo, \"Natal\")\n• Descrições de fotos (por exemplo, \"#divertido\")"), "searchCaptionEmptySection": MessageLookupByLibrary.simpleMessage( - "Adicione marcações como \"#viagem\" nas informações das fotos para encontrá-las aqui com facilidade"), - "searchDatesEmptySection": - MessageLookupByLibrary.simpleMessage("Buscar por data, mês ou ano"), - "searchDiscoverEmptySection": MessageLookupByLibrary.simpleMessage( - "As imagens serão exibidas aqui quando o processamento e sincronização for concluído"), + "Adicione descrições como \"#trip\" nas informações das fotos para encontrá-las aqui rapidamente"), + "searchDatesEmptySection": MessageLookupByLibrary.simpleMessage( + "Pesquisar por data, mês ou ano"), "searchFaceEmptySection": MessageLookupByLibrary.simpleMessage( - "As pessoas apareceram aqui quando a indexação for concluída"), + "As pessoas serão mostradas aqui quando a indexação estiver concluída"), "searchFileTypesAndNamesEmptySection": MessageLookupByLibrary.simpleMessage("Tipos de arquivo e nomes"), - "searchHint1": - MessageLookupByLibrary.simpleMessage("busca rápida no dispositivo"), + "searchHint1": MessageLookupByLibrary.simpleMessage( + "Pesquisa rápida no dispositivo"), "searchHint2": - MessageLookupByLibrary.simpleMessage("Descrições e data das fotos"), + MessageLookupByLibrary.simpleMessage("Datas das fotos, descrições"), "searchHint3": MessageLookupByLibrary.simpleMessage( "Álbuns, nomes de arquivos e tipos"), - "searchHint4": MessageLookupByLibrary.simpleMessage("Localização"), + "searchHint4": MessageLookupByLibrary.simpleMessage("Local"), "searchHint5": MessageLookupByLibrary.simpleMessage( - "Em breve: Busca mágica e rostos ✨"), + "Em breve: Rostos e pesquisa mágica ✨"), "searchLocationEmptySection": MessageLookupByLibrary.simpleMessage( "Fotos de grupo que estão sendo tiradas em algum raio da foto"), "searchPeopleEmptySection": MessageLookupByLibrary.simpleMessage( - "Convide pessoas e você verá todas as fotos compartilhadas por elas aqui"), - "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( - "As pessoas serão exibidas aqui quando o processamento e sincronização for concluído"), + "Convide pessoas e verá todas as fotos partilhadas por elas aqui"), "searchResultCount": m75, - "searchSectionsLengthMismatch": m76, "security": MessageLookupByLibrary.simpleMessage("Segurança"), - "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( - "Ver links de álbum compartilhado no aplicativo"), "selectALocation": - MessageLookupByLibrary.simpleMessage("Selecionar localização"), + MessageLookupByLibrary.simpleMessage("Selecione uma localização"), "selectALocationFirst": MessageLookupByLibrary.simpleMessage( - "Primeiramente selecione uma localização"), + "Selecione uma localização primeiro"), "selectAlbum": MessageLookupByLibrary.simpleMessage("Selecionar álbum"), "selectAll": MessageLookupByLibrary.simpleMessage("Selecionar tudo"), - "selectAllShort": MessageLookupByLibrary.simpleMessage("Tudo"), - "selectCoverPhoto": - MessageLookupByLibrary.simpleMessage("Selecionar foto da capa"), - "selectDate": MessageLookupByLibrary.simpleMessage("Selecionar data"), "selectFoldersForBackup": MessageLookupByLibrary.simpleMessage( - "Selecionar pastas para copiar com segurança"), + "Selecionar pastas para cópia de segurança"), "selectItemsToAdd": MessageLookupByLibrary.simpleMessage( "Selecionar itens para adicionar"), "selectLanguage": - MessageLookupByLibrary.simpleMessage("Selecionar idioma"), - "selectMailApp": MessageLookupByLibrary.simpleMessage( - "Selecionar aplicativo de e-mail"), + MessageLookupByLibrary.simpleMessage("Selecionar Idioma"), "selectMorePhotos": MessageLookupByLibrary.simpleMessage("Selecionar mais fotos"), - "selectOneDateAndTime": - MessageLookupByLibrary.simpleMessage("Selecionar data e hora"), - "selectOneDateAndTimeForAll": MessageLookupByLibrary.simpleMessage( - "Selecione uma data e hora para todos"), - "selectPersonToLink": MessageLookupByLibrary.simpleMessage( - "Selecione a pessoa para vincular"), - "selectReason": MessageLookupByLibrary.simpleMessage("Diga o motivo"), - "selectStartOfRange": MessageLookupByLibrary.simpleMessage( - "Selecionar início de intervalo"), - "selectTime": MessageLookupByLibrary.simpleMessage("Selecionar tempo"), - "selectYourFace": - MessageLookupByLibrary.simpleMessage("Selecione seu rosto"), + "selectReason": + MessageLookupByLibrary.simpleMessage("Selecionar motivo"), "selectYourPlan": - MessageLookupByLibrary.simpleMessage("Selecione seu plano"), + MessageLookupByLibrary.simpleMessage("Selecione o seu plano"), "selectedFilesAreNotOnEnte": MessageLookupByLibrary.simpleMessage( "Os arquivos selecionados não estão no Ente"), "selectedFoldersWillBeEncryptedAndBackedUp": MessageLookupByLibrary.simpleMessage( - "As pastas selecionadas serão criptografadas e armazenadas em copiadas com segurança"), + "As pastas selecionadas serão encriptadas e guardadas como cópia de segurança"), "selectedItemsWillBeDeletedFromAllAlbumsAndMoved": MessageLookupByLibrary.simpleMessage( - "Os itens selecionados serão excluídos de todos os álbuns e movidos para a lixeira."), - "selectedItemsWillBeRemovedFromThisPerson": - MessageLookupByLibrary.simpleMessage( - "Os itens selecionados serão removidos desta pessoa, entretanto não serão excluídos da sua biblioteca."), + "Os itens selecionados serão eliminados de todos os álbuns e movidos para o lixo."), "selectedPhotos": m77, "selectedPhotosWithYours": m78, - "selfiesWithThem": m79, "send": MessageLookupByLibrary.simpleMessage("Enviar"), - "sendEmail": MessageLookupByLibrary.simpleMessage("Enviar e-mail"), + "sendEmail": MessageLookupByLibrary.simpleMessage("Enviar email"), "sendInvite": MessageLookupByLibrary.simpleMessage("Enviar convite"), "sendLink": MessageLookupByLibrary.simpleMessage("Enviar link"), "serverEndpoint": - MessageLookupByLibrary.simpleMessage("Ponto final do servidor"), + MessageLookupByLibrary.simpleMessage("Endpoint do servidor"), "sessionExpired": MessageLookupByLibrary.simpleMessage("Sessão expirada"), "sessionIdMismatch": MessageLookupByLibrary.simpleMessage( "Incompatibilidade de ID de sessão"), - "setAPassword": MessageLookupByLibrary.simpleMessage("Definir senha"), + "setAPassword": + MessageLookupByLibrary.simpleMessage("Definir uma palavra-passe"), "setAs": MessageLookupByLibrary.simpleMessage("Definir como"), "setCover": MessageLookupByLibrary.simpleMessage("Definir capa"), "setLabel": MessageLookupByLibrary.simpleMessage("Definir"), "setNewPassword": - MessageLookupByLibrary.simpleMessage("Definir nova senha"), - "setNewPin": MessageLookupByLibrary.simpleMessage("Definir PIN novo"), + MessageLookupByLibrary.simpleMessage("Definir nova palavra-passe"), + "setNewPin": MessageLookupByLibrary.simpleMessage("Definir novo PIN"), "setPasswordTitle": - MessageLookupByLibrary.simpleMessage("Definir senha"), + MessageLookupByLibrary.simpleMessage("Definir palavra-passe"), "setRadius": MessageLookupByLibrary.simpleMessage("Definir raio"), "setupComplete": MessageLookupByLibrary.simpleMessage("Configuração concluída"), - "share": MessageLookupByLibrary.simpleMessage("Compartilhar"), - "shareALink": MessageLookupByLibrary.simpleMessage("Compartilhar link"), + "share": MessageLookupByLibrary.simpleMessage("Partilhar"), + "shareALink": MessageLookupByLibrary.simpleMessage("Partilhar um link"), "shareAlbumHint": MessageLookupByLibrary.simpleMessage( - "Abra um álbum e toque no botão compartilhar no canto superior direito para compartilhar."), + "Abra um álbum e toque no botão de partilha no canto superior direito para partilhar"), "shareAnAlbumNow": - MessageLookupByLibrary.simpleMessage("Compartilhar um álbum agora"), - "shareLink": MessageLookupByLibrary.simpleMessage("Compartilhar link"), + MessageLookupByLibrary.simpleMessage("Partilhar um álbum"), + "shareLink": MessageLookupByLibrary.simpleMessage("Partilhar link"), "shareMyVerificationID": m80, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( - "Compartilhar apenas com as pessoas que você quiser"), + "Partilhar apenas com as pessoas que deseja"), "shareTextConfirmOthersVerificationID": m81, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( - "Baixe o Ente para que nós possamos compartilhar com facilidade fotos e vídeos de qualidade original\n\nhttps://ente.io"), + "Descarregue o Ente para poder partilhar facilmente fotografias e vídeos de qualidade original\n\n\nhttps://ente.io"), "shareTextReferralCode": m82, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( - "Compartilhar com usuários não ente"), + "Compartilhar com usuários que não usam Ente"), "shareWithPeopleSectionTitle": m83, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage( - "Compartilhar seu primeiro álbum"), + "Partilhe o seu primeiro álbum"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( - "Criar álbuns compartilhados e colaborativos com outros usuários Ente, incluindo usuários em planos gratuitos."), + "Criar álbuns compartilhados e colaborativos com outros usuários da Ente, incluindo usuários em planos gratuitos."), "sharedByMe": - MessageLookupByLibrary.simpleMessage("Compartilhada por mim"), + MessageLookupByLibrary.simpleMessage("Partilhado por mim"), "sharedByYou": - MessageLookupByLibrary.simpleMessage("Compartilhado por você"), + MessageLookupByLibrary.simpleMessage("Partilhado por si"), "sharedPhotoNotifications": - MessageLookupByLibrary.simpleMessage("Novas fotos compartilhadas"), + MessageLookupByLibrary.simpleMessage("Novas fotos partilhadas"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( - "Receber notificações quando alguém adicionar uma foto a um álbum compartilhado que você faz parte"), + "Receber notificações quando alguém adiciona uma foto a um álbum partilhado do qual faz parte"), "sharedWith": m84, "sharedWithMe": - MessageLookupByLibrary.simpleMessage("Compartilhado comigo"), + MessageLookupByLibrary.simpleMessage("Partilhado comigo"), "sharedWithYou": - MessageLookupByLibrary.simpleMessage("Compartilhado com você"), - "sharing": MessageLookupByLibrary.simpleMessage("Compartilhando..."), - "shiftDatesAndTime": - MessageLookupByLibrary.simpleMessage("Alterar as datas e horas"), + MessageLookupByLibrary.simpleMessage("Partilhado consigo"), + "sharing": MessageLookupByLibrary.simpleMessage("Partilhar..."), "showMemories": MessageLookupByLibrary.simpleMessage("Mostrar memórias"), "showPerson": MessageLookupByLibrary.simpleMessage("Mostrar pessoa"), "signOutFromOtherDevices": MessageLookupByLibrary.simpleMessage( - "Sair da conta em outros dispositivos"), + "Terminar sessão noutros dispositivos"), "signOutOtherBody": MessageLookupByLibrary.simpleMessage( - "Se você acha que alguém possa saber da sua senha, você pode forçar desconectar sua conta de outros dispositivos."), - "signOutOtherDevices": - MessageLookupByLibrary.simpleMessage("Sair em outros dispositivos"), + "Se pensa que alguém pode saber a sua palavra-passe, pode forçar todos os outros dispositivos que utilizam a sua conta a terminar a sessão."), + "signOutOtherDevices": MessageLookupByLibrary.simpleMessage( + "Terminar a sessão noutros dispositivos"), "signUpTerms": MessageLookupByLibrary.simpleMessage( - "Eu concordo com os termos de serviço e a política de privacidade"), + "Eu concordo com os termos de serviço e política de privacidade"), "singleFileDeleteFromDevice": m85, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( - "Ele será excluído de todos os álbuns."), + "Será eliminado de todos os álbuns."), "singleFileInBothLocalAndRemote": m86, "singleFileInRemoteOnly": m87, "skip": MessageLookupByLibrary.simpleMessage("Pular"), - "social": MessageLookupByLibrary.simpleMessage("Redes sociais"), + "social": MessageLookupByLibrary.simpleMessage("Social"), "someItemsAreInBothEnteAndYourDevice": MessageLookupByLibrary.simpleMessage( - "Alguns itens estão em ambos o Ente quanto no seu dispositivo."), + "Alguns itens estão tanto no Ente como no seu dispositivo."), "someOfTheFilesYouAreTryingToDeleteAre": MessageLookupByLibrary.simpleMessage( - "Alguns dos arquivos que você está tentando excluir só estão disponíveis no seu dispositivo e não podem ser recuperados se forem excluídos"), + "Alguns dos ficheiros que está a tentar eliminar só estão disponíveis no seu dispositivo e não podem ser recuperados se forem eliminados"), "someoneSharingAlbumsWithYouShouldSeeTheSameId": MessageLookupByLibrary.simpleMessage( - "Alguém compartilhando álbuns com você deve ver o mesmo ID no dispositivo."), + "Alguém compartilhando álbuns com você deve ver o mesmo ID no seu dispositivo."), "somethingWentWrong": - MessageLookupByLibrary.simpleMessage("Algo deu errado"), + MessageLookupByLibrary.simpleMessage("Ocorreu um erro"), "somethingWentWrongPleaseTryAgain": MessageLookupByLibrary.simpleMessage( - "Algo deu errado. Tente outra vez"), + "Ocorreu um erro. Tente novamente"), "sorry": MessageLookupByLibrary.simpleMessage("Desculpe"), "sorryCouldNotAddToFavorites": MessageLookupByLibrary.simpleMessage( "Desculpe, não foi possível adicionar aos favoritos!"), @@ -1896,46 +1574,38 @@ class MessageLookup extends MessageLookupByLibrary { "Desculpe, não foi possível remover dos favoritos!"), "sorryTheCodeYouveEnteredIsIncorrect": MessageLookupByLibrary.simpleMessage( - "O código inserido está incorreto"), + "Desculpe, o código inserido está incorreto"), "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( - "Desculpe, não foi possível gerar chaves seguras neste dispositivo.\n\ninicie sessão com um dispositivo diferente."), + "Desculpe, não foi possível gerar chaves seguras neste dispositivo.\n\npor favor iniciar sessão com um dispositivo diferente."), "sort": MessageLookupByLibrary.simpleMessage("Ordenar"), "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("Ordenar por"), "sortNewestFirst": - MessageLookupByLibrary.simpleMessage("Recentes primeiro"), + MessageLookupByLibrary.simpleMessage("Mais recentes primeiro"), "sortOldestFirst": - MessageLookupByLibrary.simpleMessage("Antigos primeiro"), + MessageLookupByLibrary.simpleMessage("Mais antigos primeiro"), "sparkleSuccess": MessageLookupByLibrary.simpleMessage("✨ Sucesso"), - "sportsWithThem": m88, - "spotlightOnThem": m89, - "spotlightOnYourself": - MessageLookupByLibrary.simpleMessage("Destacar si mesmo"), - "startAccountRecoveryTitle": - MessageLookupByLibrary.simpleMessage("Iniciar recuperação"), "startBackup": MessageLookupByLibrary.simpleMessage("Iniciar cópia de segurança"), - "status": MessageLookupByLibrary.simpleMessage("Estado"), - "stopCastingBody": - MessageLookupByLibrary.simpleMessage("Deseja parar a transmissão?"), + "status": MessageLookupByLibrary.simpleMessage("Status"), + "stopCastingBody": MessageLookupByLibrary.simpleMessage( + "Queres parar de fazer transmissão?"), "stopCastingTitle": MessageLookupByLibrary.simpleMessage("Parar transmissão"), "storage": MessageLookupByLibrary.simpleMessage("Armazenamento"), "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("Família"), - "storageBreakupYou": MessageLookupByLibrary.simpleMessage("Você"), + "storageBreakupYou": MessageLookupByLibrary.simpleMessage("Tu"), "storageInGB": m90, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage( "Limite de armazenamento excedido"), "storageUsageInfo": m91, - "streamDetails": - MessageLookupByLibrary.simpleMessage("Detalhes da transmissão"), "strongStrength": MessageLookupByLibrary.simpleMessage("Forte"), "subAlreadyLinkedErrMessage": m92, "subWillBeCancelledOn": m93, - "subscribe": MessageLookupByLibrary.simpleMessage("Inscrever-se"), + "subscribe": MessageLookupByLibrary.simpleMessage("Subscrever"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( - "Você precisa de uma inscrição paga ativa para ativar o compartilhamento."), - "subscription": MessageLookupByLibrary.simpleMessage("Assinatura"), + "Você precisa de uma assinatura paga ativa para ativar o compartilhamento."), + "subscription": MessageLookupByLibrary.simpleMessage("Subscrição"), "success": MessageLookupByLibrary.simpleMessage("Sucesso"), "successfullyArchived": MessageLookupByLibrary.simpleMessage("Arquivado com sucesso"), @@ -1944,10 +1614,9 @@ class MessageLookup extends MessageLookupByLibrary { "successfullyUnarchived": MessageLookupByLibrary.simpleMessage("Desarquivado com sucesso"), "successfullyUnhid": - MessageLookupByLibrary.simpleMessage("Desocultado com sucesso"), + MessageLookupByLibrary.simpleMessage("Reexibido com sucesso"), "suggestFeatures": - MessageLookupByLibrary.simpleMessage("Sugerir recurso"), - "sunrise": MessageLookupByLibrary.simpleMessage("No horizonte"), + MessageLookupByLibrary.simpleMessage("Sugerir recursos"), "support": MessageLookupByLibrary.simpleMessage("Suporte"), "syncProgress": m94, "syncStopped": @@ -1959,33 +1628,28 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Toque para inserir código"), "tapToUnlock": MessageLookupByLibrary.simpleMessage("Toque para desbloquear"), - "tapToUpload": - MessageLookupByLibrary.simpleMessage("Toque para enviar"), - "tapToUploadIsIgnoredDue": m95, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( - "Parece que algo deu errado. Tente novamente mais tarde. Caso o erro persistir, por favor, entre em contato com nossa equipe."), - "terminate": MessageLookupByLibrary.simpleMessage("Encerrar"), - "terminateSession": MessageLookupByLibrary.simpleMessage("Sair?"), + "Parece que algo correu mal. Por favor, tente novamente mais tarde. Se o erro persistir, entre em contacto com a nossa equipa de suporte."), + "terminate": MessageLookupByLibrary.simpleMessage("Terminar"), + "terminateSession": + MessageLookupByLibrary.simpleMessage("Terminar sessão?"), "terms": MessageLookupByLibrary.simpleMessage("Termos"), "termsOfServicesTitle": MessageLookupByLibrary.simpleMessage("Termos"), "thankYou": MessageLookupByLibrary.simpleMessage("Obrigado"), - "thankYouForSubscribing": - MessageLookupByLibrary.simpleMessage("Obrigado por assinar!"), + "thankYouForSubscribing": MessageLookupByLibrary.simpleMessage( + "Obrigado pela sua subscrição!"), "theDownloadCouldNotBeCompleted": MessageLookupByLibrary.simpleMessage( - "A instalação não pôde ser concluída"), - "theLinkYouAreTryingToAccessHasExpired": - MessageLookupByLibrary.simpleMessage( - "O link que você está tentando acessar já expirou."), + "Não foi possível concluir o download."), "theRecoveryKeyYouEnteredIsIncorrect": MessageLookupByLibrary.simpleMessage( "A chave de recuperação inserida está incorreta"), "theme": MessageLookupByLibrary.simpleMessage("Tema"), "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( - "Estes itens serão excluídos do seu dispositivo."), + "Estes itens serão eliminados do seu dispositivo."), "theyAlsoGetXGb": m96, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( - "Eles serão excluídos de todos os álbuns."), + "Serão eliminados de todos os álbuns."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( "Esta ação não pode ser desfeita"), "thisAlbumAlreadyHDACollaborativeLink": @@ -1993,56 +1657,42 @@ class MessageLookup extends MessageLookupByLibrary { "Este álbum já tem um link colaborativo"), "thisCanBeUsedToRecoverYourAccountIfYou": MessageLookupByLibrary.simpleMessage( - "Isso pode ser usado para recuperar sua conta se você perder seu segundo fator"), + "Isto pode ser usado para recuperar sua conta se você perder seu segundo fator"), "thisDevice": MessageLookupByLibrary.simpleMessage("Este dispositivo"), - "thisEmailIsAlreadyInUse": MessageLookupByLibrary.simpleMessage( - "Este e-mail já está sendo usado"), + "thisEmailIsAlreadyInUse": + MessageLookupByLibrary.simpleMessage("Este email já está em uso"), "thisImageHasNoExifData": MessageLookupByLibrary.simpleMessage( - "Esta imagem não possui dados EXIF"), - "thisIsMeExclamation": - MessageLookupByLibrary.simpleMessage("Este é você!"), + "Esta imagem não tem dados exif"), "thisIsPersonVerificationId": m97, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage( "Este é o seu ID de verificação"), - "thisWeekThroughTheYears": MessageLookupByLibrary.simpleMessage( - "Esta semana com o passar dos anos"), - "thisWeekXYearsAgo": m98, "thisWillLogYouOutOfTheFollowingDevice": MessageLookupByLibrary.simpleMessage( - "Isso fará você sair do dispositivo a seguir:"), + "Irá desconectar a sua conta do seguinte dispositivo:"), "thisWillLogYouOutOfThisDevice": MessageLookupByLibrary.simpleMessage( - "Isso fará você sair deste dispositivo!"), - "thisWillMakeTheDateAndTimeOfAllSelected": - MessageLookupByLibrary.simpleMessage( - "Isso fará que a data e hora de todas as fotos selecionadas fiquem iguais."), + "Irá desconectar a sua conta do seu dispositivo!"), "thisWillRemovePublicLinksOfAllSelectedQuickLinks": MessageLookupByLibrary.simpleMessage( "Isto removerá links públicos de todos os links rápidos selecionados."), - "throughTheYears": m99, "toEnableAppLockPleaseSetupDevicePasscodeOrScreen": MessageLookupByLibrary.simpleMessage( - "Para ativar o bloqueio do aplicativo, defina uma senha de acesso no dispositivo ou bloqueie sua tela nas opções do sistema."), + "Para ativar o bloqueio de aplicações, configure o código de acesso do dispositivo ou o bloqueio de ecrã nas definições do sistema."), "toHideAPhotoOrVideo": MessageLookupByLibrary.simpleMessage( - "Para ocultar uma foto ou vídeo"), + "Para ocultar uma foto ou um vídeo"), "toResetVerifyEmail": MessageLookupByLibrary.simpleMessage( - "Para redefinir sua senha, verifique seu e-mail primeiramente."), - "todaysLogs": MessageLookupByLibrary.simpleMessage("Registros de hoje"), + "Para redefinir a sua palavra-passe, verifique primeiro o seu e-mail."), + "todaysLogs": MessageLookupByLibrary.simpleMessage("Logs de hoje"), "tooManyIncorrectAttempts": MessageLookupByLibrary.simpleMessage( "Muitas tentativas incorretas"), "total": MessageLookupByLibrary.simpleMessage("total"), "totalSize": MessageLookupByLibrary.simpleMessage("Tamanho total"), - "trash": MessageLookupByLibrary.simpleMessage("Lixeira"), + "trash": MessageLookupByLibrary.simpleMessage("Lixo"), "trashDaysLeft": m100, - "trim": MessageLookupByLibrary.simpleMessage("Recortar"), - "tripInYear": m101, - "tripToLocation": m102, - "trustedContacts": - MessageLookupByLibrary.simpleMessage("Contatos confiáveis"), - "trustedInviteBody": m103, + "trim": MessageLookupByLibrary.simpleMessage("Cortar"), "tryAgain": MessageLookupByLibrary.simpleMessage("Tente novamente"), "turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage( - "Ative a cópia de segurança para automaticamente enviar arquivos adicionados à pasta do dispositivo para o Ente."), - "twitter": MessageLookupByLibrary.simpleMessage("Twitter/X"), + "Ative o backup para enviar automaticamente arquivos adicionados a esta pasta do dispositivo para o Ente."), + "twitter": MessageLookupByLibrary.simpleMessage("Twitter"), "twoMonthsFreeOnYearlyPlans": MessageLookupByLibrary.simpleMessage( "2 meses grátis em planos anuais"), "twofactor": MessageLookupByLibrary.simpleMessage("Dois fatores"), @@ -2054,23 +1704,23 @@ class MessageLookup extends MessageLookupByLibrary { "Autenticação de dois fatores"), "twofactorAuthenticationSuccessfullyReset": MessageLookupByLibrary.simpleMessage( - "Autenticação de dois fatores redefinida com sucesso"), + "Autenticação de dois fatores redefinida com êxito"), "twofactorSetup": MessageLookupByLibrary.simpleMessage( "Configuração de dois fatores"), "typeOfGallerGallerytypeIsNotSupportedForRename": m104, "unarchive": MessageLookupByLibrary.simpleMessage("Desarquivar"), "unarchiveAlbum": MessageLookupByLibrary.simpleMessage("Desarquivar álbum"), - "unarchiving": MessageLookupByLibrary.simpleMessage("Desarquivando..."), + "unarchiving": MessageLookupByLibrary.simpleMessage("Desarquivar..."), "unavailableReferralCode": MessageLookupByLibrary.simpleMessage( - "Desculpe, este código está indisponível."), + "Desculpe, este código não está disponível."), "uncategorized": MessageLookupByLibrary.simpleMessage("Sem categoria"), - "unhide": MessageLookupByLibrary.simpleMessage("Desocultar"), + "unhide": MessageLookupByLibrary.simpleMessage("Mostrar"), "unhideToAlbum": - MessageLookupByLibrary.simpleMessage("Desocultar para o álbum"), + MessageLookupByLibrary.simpleMessage("Mostrar para o álbum"), "unhiding": MessageLookupByLibrary.simpleMessage("Reexibindo..."), "unhidingFilesToAlbum": MessageLookupByLibrary.simpleMessage( - "Desocultando arquivos para o álbum"), + "Desocultar ficheiros para o álbum"), "unlock": MessageLookupByLibrary.simpleMessage("Desbloquear"), "unpinAlbum": MessageLookupByLibrary.simpleMessage("Desafixar álbum"), "unselectAll": MessageLookupByLibrary.simpleMessage("Desmarcar tudo"), @@ -2082,147 +1732,133 @@ class MessageLookup extends MessageLookupByLibrary { "upgrade": MessageLookupByLibrary.simpleMessage("Atualizar"), "uploadIsIgnoredDueToIgnorereason": m105, "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage( - "Enviando arquivos para o álbum..."), + "Enviar ficheiros para o álbum..."), "uploadingMultipleMemories": m106, "uploadingSingleMemory": - MessageLookupByLibrary.simpleMessage("Preservando 1 memória..."), + MessageLookupByLibrary.simpleMessage("Preservar 1 memória..."), "upto50OffUntil4thDec": MessageLookupByLibrary.simpleMessage( - "Com 50% de desconto, até 4 de dezembro"), + "Até 50% de desconto, até 4 de dezembro."), "usableReferralStorageInfo": MessageLookupByLibrary.simpleMessage( "O armazenamento disponível é limitado pelo seu plano atual. O excesso de armazenamento reivindicado tornará automaticamente útil quando você atualizar seu plano."), "useAsCover": MessageLookupByLibrary.simpleMessage("Usar como capa"), - "useDifferentPlayerInfo": MessageLookupByLibrary.simpleMessage( - "Enfrentando problemas ao reproduzir este vídeo? Mantenha pressionado aqui ou tente outro reprodutor de vídeo"), "usePublicLinksForPeopleNotOnEnte": MessageLookupByLibrary.simpleMessage( "Usar links públicos para pessoas que não estão no Ente"), "useRecoveryKey": MessageLookupByLibrary.simpleMessage("Usar chave de recuperação"), "useSelectedPhoto": - MessageLookupByLibrary.simpleMessage("Usar foto selecionada"), - "usedSpace": MessageLookupByLibrary.simpleMessage("Espaço usado"), + MessageLookupByLibrary.simpleMessage("Utilizar foto selecionada"), + "usedSpace": MessageLookupByLibrary.simpleMessage("Espaço utilizado"), "validTill": m107, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( - "Falha na verificação. Tente novamente"), + "Falha na verificação, por favor tente novamente"), "verificationId": - MessageLookupByLibrary.simpleMessage("ID de verificação"), + MessageLookupByLibrary.simpleMessage("ID de Verificação"), "verify": MessageLookupByLibrary.simpleMessage("Verificar"), - "verifyEmail": MessageLookupByLibrary.simpleMessage("Verificar e-mail"), + "verifyEmail": MessageLookupByLibrary.simpleMessage("Verificar email"), "verifyEmailID": m108, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("Verificar"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("Verificar chave de acesso"), "verifyPassword": - MessageLookupByLibrary.simpleMessage("Verificar senha"), - "verifying": MessageLookupByLibrary.simpleMessage("Verificando..."), + MessageLookupByLibrary.simpleMessage("Verificar palavra-passe"), + "verifying": MessageLookupByLibrary.simpleMessage("A verificar…"), "verifyingRecoveryKey": MessageLookupByLibrary.simpleMessage( "Verificando chave de recuperação..."), "videoInfo": - MessageLookupByLibrary.simpleMessage("Informações do vídeo"), + MessageLookupByLibrary.simpleMessage("Informação de Vídeo"), "videoSmallCase": MessageLookupByLibrary.simpleMessage("vídeo"), - "videoStreaming": - MessageLookupByLibrary.simpleMessage("Transmissão de vídeo"), "videos": MessageLookupByLibrary.simpleMessage("Vídeos"), "viewActiveSessions": MessageLookupByLibrary.simpleMessage("Ver sessões ativas"), - "viewAddOnButton": - MessageLookupByLibrary.simpleMessage("Ver complementos"), + "viewAddOnButton": MessageLookupByLibrary.simpleMessage("Ver addons"), "viewAll": MessageLookupByLibrary.simpleMessage("Ver tudo"), "viewAllExifData": MessageLookupByLibrary.simpleMessage("Ver todos os dados EXIF"), "viewLargeFiles": - MessageLookupByLibrary.simpleMessage("Arquivos grandes"), + MessageLookupByLibrary.simpleMessage("Ficheiros grandes"), "viewLargeFilesDesc": MessageLookupByLibrary.simpleMessage( - "Ver arquivos que consumem a maior parte do armazenamento."), - "viewLogs": MessageLookupByLibrary.simpleMessage("Ver registros"), + "Ver os ficheiros que estão a consumir a maior quantidade de armazenamento."), + "viewLogs": MessageLookupByLibrary.simpleMessage("Ver logs"), "viewRecoveryKey": MessageLookupByLibrary.simpleMessage("Ver chave de recuperação"), "viewer": MessageLookupByLibrary.simpleMessage("Visualizador"), - "viewersSuccessfullyAdded": m109, "visitWebToManage": MessageLookupByLibrary.simpleMessage( - "Visite o web.ente.io para gerenciar sua assinatura"), + "Visite web.ente.io para gerir a sua subscrição"), "waitingForVerification": - MessageLookupByLibrary.simpleMessage("Esperando verificação..."), + MessageLookupByLibrary.simpleMessage("Aguardando verificação..."), "waitingForWifi": MessageLookupByLibrary.simpleMessage("Aguardando Wi-Fi..."), - "warning": MessageLookupByLibrary.simpleMessage("Aviso"), "weAreOpenSource": MessageLookupByLibrary.simpleMessage("Nós somos de código aberto!"), "weDontSupportEditingPhotosAndAlbumsThatYouDont": MessageLookupByLibrary.simpleMessage( - "Não suportamos a edição de fotos e álbuns que você ainda não possui"), + "Não suportamos a edição de fotos e álbuns que ainda não possui"), "weHaveSendEmailTo": m110, "weakStrength": MessageLookupByLibrary.simpleMessage("Fraca"), "welcomeBack": MessageLookupByLibrary.simpleMessage("Bem-vindo(a) de volta!"), "whatsNew": MessageLookupByLibrary.simpleMessage("O que há de novo"), - "whyAddTrustContact": MessageLookupByLibrary.simpleMessage( - "Um contato confiável pode ajudá-lo em recuperar seus dados."), - "yearShort": MessageLookupByLibrary.simpleMessage("ano"), "yearly": MessageLookupByLibrary.simpleMessage("Anual"), "yearsAgo": m111, "yes": MessageLookupByLibrary.simpleMessage("Sim"), - "yesCancel": MessageLookupByLibrary.simpleMessage("Sim"), + "yesCancel": MessageLookupByLibrary.simpleMessage("Sim, cancelar"), "yesConvertToViewer": MessageLookupByLibrary.simpleMessage( "Sim, converter para visualizador"), - "yesDelete": MessageLookupByLibrary.simpleMessage("Sim, excluir"), + "yesDelete": MessageLookupByLibrary.simpleMessage("Sim, apagar"), "yesDiscardChanges": - MessageLookupByLibrary.simpleMessage("Sim, descartar alterações"), + MessageLookupByLibrary.simpleMessage("Sim, rejeitar alterações"), "yesLogout": - MessageLookupByLibrary.simpleMessage("Sim, encerrar sessão"), - "yesRemove": MessageLookupByLibrary.simpleMessage("Sim, excluir"), - "yesRenew": MessageLookupByLibrary.simpleMessage("Sim"), + MessageLookupByLibrary.simpleMessage("Sim, terminar sessão"), + "yesRemove": MessageLookupByLibrary.simpleMessage("Sim, remover"), + "yesRenew": MessageLookupByLibrary.simpleMessage("Sim, Renovar"), "yesResetPerson": - MessageLookupByLibrary.simpleMessage("Sim, redefinir pessoa"), - "you": MessageLookupByLibrary.simpleMessage("Você"), - "youAndThem": m112, + MessageLookupByLibrary.simpleMessage("Sim, repor pessoa"), + "you": MessageLookupByLibrary.simpleMessage("Tu"), "youAreOnAFamilyPlan": MessageLookupByLibrary.simpleMessage( "Você está em um plano familiar!"), "youAreOnTheLatestVersion": MessageLookupByLibrary.simpleMessage( - "Você está na versão mais recente"), + "Está a utilizar a versão mais recente"), "youCanAtMaxDoubleYourStorage": MessageLookupByLibrary.simpleMessage( - "* Você pode duplicar seu armazenamento ao máximo"), + "* Você pode duplicar seu armazenamento no máximo"), "youCanManageYourLinksInTheShareTab": MessageLookupByLibrary.simpleMessage( - "Você pode gerenciar seus links na aba de compartilhamento."), + "Pode gerir as suas ligações no separador partilhar."), "youCanTrySearchingForADifferentQuery": MessageLookupByLibrary.simpleMessage( - "Você pode tentar buscar por outra consulta."), + "Pode tentar pesquisar uma consulta diferente."), "youCannotDowngradeToThisPlan": MessageLookupByLibrary.simpleMessage( - "Você não pode rebaixar para este plano"), + "Não é possível fazer o downgrade para este plano"), "youCannotShareWithYourself": MessageLookupByLibrary.simpleMessage( - "Você não pode compartilhar consigo mesmo"), + "Não podes partilhar contigo mesmo"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage( - "Você não tem nenhum item arquivado."), + "Não tem nenhum item arquivado."), "youHaveSuccessfullyFreedUp": m113, "yourAccountHasBeenDeleted": - MessageLookupByLibrary.simpleMessage("Sua conta foi excluída"), + MessageLookupByLibrary.simpleMessage("A sua conta foi eliminada"), "yourMap": MessageLookupByLibrary.simpleMessage("Seu mapa"), "yourPlanWasSuccessfullyDowngraded": MessageLookupByLibrary.simpleMessage( - "Seu plano foi rebaixado com sucesso"), + "O seu plano foi rebaixado com sucesso"), "yourPlanWasSuccessfullyUpgraded": MessageLookupByLibrary.simpleMessage( - "Seu plano foi atualizado com sucesso"), + "O seu plano foi atualizado com sucesso"), "yourPurchaseWasSuccessful": MessageLookupByLibrary.simpleMessage( - "Sua compra foi efetuada com sucesso"), + "Sua compra foi realizada com sucesso"), "yourStorageDetailsCouldNotBeFetched": MessageLookupByLibrary.simpleMessage( - "Seus detalhes de armazenamento não puderam ser obtidos"), + "Não foi possível obter os seus dados de armazenamento"), "yourSubscriptionHasExpired": - MessageLookupByLibrary.simpleMessage("A sua assinatura expirou"), + MessageLookupByLibrary.simpleMessage("A sua subscrição expirou"), "yourSubscriptionWasUpdatedSuccessfully": MessageLookupByLibrary.simpleMessage( - "Sua assinatura foi atualizada com sucesso"), + "A sua subscrição foi actualizada com sucesso"), "yourVerificationCodeHasExpired": MessageLookupByLibrary.simpleMessage( - "O código de verificação expirou"), - "youveNoDuplicateFilesThatCanBeCleared": - MessageLookupByLibrary.simpleMessage( - "Você não possui nenhum arquivo duplicado que possa ser excluído"), + "O seu código de verificação expirou"), "youveNoFilesInThisAlbumThatCanBeDeleted": MessageLookupByLibrary.simpleMessage( - "Você não tem arquivos neste álbum que possam ser excluídos"), + "Não existem ficheiros neste álbum que possam ser eliminados"), "zoomOutToSeePhotos": MessageLookupByLibrary.simpleMessage( - "Reduzir ampliação para ver as fotos") + "Diminuir o zoom para ver fotos") }; } diff --git a/mobile/lib/generated/intl/messages_pt_BR.dart b/mobile/lib/generated/intl/messages_pt_BR.dart index 7c17ac6915..58e340e8a5 100644 --- a/mobile/lib/generated/intl/messages_pt_BR.dart +++ b/mobile/lib/generated/intl/messages_pt_BR.dart @@ -97,6 +97,8 @@ class MessageLookup extends MessageLookupByLibrary { static String m26(count, formattedSize) => "${count} arquivos, ${formattedSize} cada"; + static String m114(name) => "Este e-mail já está vinculado a ${name}."; + static String m27(newEmail) => "E-mail alterado para ${newEmail}"; static String m28(email) => "${email} não possui uma conta Ente."; @@ -303,6 +305,8 @@ class MessageLookup extends MessageLookupByLibrary { static String m108(email) => "Verificar ${email}"; + static String m115(name) => "Visualizar ${name} para desvincular"; + static String m109(count) => "${Intl.plural(count, zero: 'Adicionado 0 vizualizadores', one: 'Adicionado 1 visualizador', other: 'Adicionado ${count} visualizadores')}"; @@ -865,6 +869,7 @@ class MessageLookup extends MessageLookupByLibrary { "duplicateFileCountWithStorageSaved": m25, "duplicateItemsGroup": m26, "edit": MessageLookupByLibrary.simpleMessage("Editar"), + "editEmailAlreadyLinked": m114, "editLocation": MessageLookupByLibrary.simpleMessage("Editar localização"), "editLocationTagTitle": @@ -2124,8 +2129,6 @@ class MessageLookup extends MessageLookupByLibrary { "videoInfo": MessageLookupByLibrary.simpleMessage("Informações do vídeo"), "videoSmallCase": MessageLookupByLibrary.simpleMessage("vídeo"), - "videoStreaming": - MessageLookupByLibrary.simpleMessage("Transmissão de vídeo"), "videos": MessageLookupByLibrary.simpleMessage("Vídeos"), "viewActiveSessions": MessageLookupByLibrary.simpleMessage("Ver sessões ativas"), @@ -2139,6 +2142,7 @@ class MessageLookup extends MessageLookupByLibrary { "viewLargeFilesDesc": MessageLookupByLibrary.simpleMessage( "Ver arquivos que consumem a maior parte do armazenamento."), "viewLogs": MessageLookupByLibrary.simpleMessage("Ver registros"), + "viewPersonToUnlink": m115, "viewRecoveryKey": MessageLookupByLibrary.simpleMessage("Ver chave de recuperação"), "viewer": MessageLookupByLibrary.simpleMessage("Visualizador"), diff --git a/mobile/lib/generated/intl/messages_ru.dart b/mobile/lib/generated/intl/messages_ru.dart index dc27bcc326..23d18e5d27 100644 --- a/mobile/lib/generated/intl/messages_ru.dart +++ b/mobile/lib/generated/intl/messages_ru.dart @@ -41,7 +41,7 @@ class MessageLookup extends MessageLookupByLibrary { static String m7(name) => "Любуясь ${name}"; static String m8(count) => - "${Intl.plural(count, zero: 'Нет участников', one: '${count} участник', few: '${count} участника', other: '${count} участников')}"; + "${Intl.plural(count, zero: 'Нет участников', one: '${count} участник', other: '${count} участников')}"; static String m9(versionValue) => "Версия: ${versionValue}"; @@ -67,7 +67,7 @@ class MessageLookup extends MessageLookupByLibrary { static String m15(albumName) => "Совместная ссылка создана для ${albumName}"; static String m16(count) => - "${Intl.plural(count, zero: 'Добавлено 0 соавторов', one: 'Добавлен 1 соавтор', few: 'Добавлено ${count} соавтора', other: 'Добавлено ${count} соавторов')}"; + "${Intl.plural(count, zero: 'Добавлено 0 соавторов', one: 'Добавлен 1 соавтор', other: 'Добавлено ${count} соавторов')}"; static String m17(email, numOfDays) => "Вы собираетесь добавить ${email} в качестве доверенного контакта. Доверенный контакт сможет восстановить ваш аккаунт, если вы будете отсутствовать ${numOfDays} дней."; @@ -81,7 +81,7 @@ class MessageLookup extends MessageLookupByLibrary { static String m20(endpoint) => "Подключено к ${endpoint}"; static String m21(count) => - "${Intl.plural(count, one: 'Удалить ${count} элемент', few: 'Удалить ${count} элемента', other: 'Удалить ${count} элементов')}"; + "${Intl.plural(count, one: 'Удалить ${count} элемент', other: 'Удалить ${count} элементов')}"; static String m22(currentlyDeleting, totalCount) => "Удаление ${currentlyDeleting} / ${totalCount}"; @@ -93,7 +93,7 @@ class MessageLookup extends MessageLookupByLibrary { "Пожалуйста, отправьте письмо на ${supportEmail} с вашего зарегистрированного адреса электронной почты"; static String m25(count, storageSaved) => - "Вы удалили ${Intl.plural(count, one: '${count} дубликат', few: '${count} дубликата', other: '${count} дубликатов')}, освободив (${storageSaved}!)"; + "Вы удалили ${Intl.plural(count, one: '${count} дубликат', other: '${count} дубликатов')}, освободив (${storageSaved}!)"; static String m26(count, formattedSize) => "${count} файлов, по ${formattedSize} каждый"; @@ -112,10 +112,10 @@ class MessageLookup extends MessageLookupByLibrary { static String m32(name) => "Пир с ${name}"; static String m33(count, formattedNumber) => - "${Intl.plural(count, one: '${formattedNumber} файл на этом устройстве был успешно сохранён', few: '${formattedNumber} файла на этом устройстве были успешно сохранены', other: '${formattedNumber} файлов на этом устройстве были успешно сохранены')}"; + "${Intl.plural(count, one: '${formattedNumber} файл на этом устройстве был успешно сохранён', other: '${formattedNumber} файлов на этом устройстве были успешно сохранены')}"; static String m34(count, formattedNumber) => - "${Intl.plural(count, one: '${formattedNumber} файл в этом альбоме был успешно сохранён', few: '${formattedNumber} файла в этом альбоме были успешно сохранены', other: '${formattedNumber} файлов в этом альбоме были успешно сохранены')}"; + "${Intl.plural(count, one: '${formattedNumber} файл в этом альбоме был успешно сохранён', other: '${formattedNumber} файлов в этом альбоме были успешно сохранены')}"; static String m35(storageAmountInGB) => "${storageAmountInGB} ГБ каждый раз, когда кто-то подписывается на платный тариф и применяет ваш код"; @@ -137,7 +137,7 @@ class MessageLookup extends MessageLookupByLibrary { static String m41(name) => "Поход с ${name}"; static String m42(count) => - "${Intl.plural(count, one: '${count} элемент', few: '${count} элемента', other: '${count} элементов')}"; + "${Intl.plural(count, one: '${count} элемент', other: '${count} элементов')}"; static String m43(name) => "В последний раз с ${name}"; @@ -151,7 +151,7 @@ class MessageLookup extends MessageLookupByLibrary { static String m47(personName, email) => "Это свяжет ${personName} с ${email}"; static String m48(count, formattedCount) => - "${Intl.plural(count, zero: 'нет воспоминаний', one: '${formattedCount} воспоминание', few: '${formattedCount} воспоминания', other: '${formattedCount} воспоминаний')}"; + "${Intl.plural(count, zero: 'нет воспоминаний', one: '${formattedCount} воспоминание', other: '${formattedCount} воспоминаний')}"; static String m49(count) => "${Intl.plural(count, one: 'Переместить элемент', other: 'Переместить элементы')}"; @@ -181,7 +181,7 @@ class MessageLookup extends MessageLookupByLibrary { "${Intl.plural(count, zero: 'Нет фото', one: '1 фото', other: '${count} фото')}"; static String m60(count) => - "${Intl.plural(count, zero: '0 фотографий', one: '1 фотография', few: '${count} фотографии', other: '${count} фотографий')}"; + "${Intl.plural(count, zero: '0 фотографий', one: '1 фотография', other: '${count} фотографий')}"; static String m61(endDate) => "Бесплатный пробный период действителен до ${endDate}.\nПосле этого вы можете выбрать платный тариф."; @@ -217,7 +217,7 @@ class MessageLookup extends MessageLookupByLibrary { static String m74(name) => "Путешествие с ${name}"; static String m75(count) => - "${Intl.plural(count, one: '${count} результат найден', few: '${count} результата найдено', other: '${count} результатов найдено')}"; + "${Intl.plural(count, one: '${count} результат найден', other: '${count} результатов найдено')}"; static String m76(snapshotLength, searchLength) => "Несоответствие длины разделов: ${snapshotLength} != ${searchLength}"; @@ -278,12 +278,12 @@ class MessageLookup extends MessageLookupByLibrary { static String m97(email) => "Это идентификатор подтверждения ${email}"; static String m98(count) => - "${Intl.plural(count, one: 'Эта неделя, ${count} год назад', few: 'Эта неделя, ${count} года назад', other: 'Эта неделя, ${count} лет назад')}"; + "${Intl.plural(count, one: 'Эта неделя, ${count} год назад', other: 'Эта неделя, ${count} лет назад')}"; static String m99(dateFormat) => "${dateFormat} сквозь годы"; static String m100(count) => - "${Intl.plural(count, zero: 'Скоро', one: '1 день', few: '${count} дня', other: '${count} дней')}"; + "${Intl.plural(count, zero: 'Скоро', one: '1 день', other: '${count} дней')}"; static String m101(year) => "Поездка в ${year}"; @@ -2143,8 +2143,6 @@ class MessageLookup extends MessageLookupByLibrary { "Проверка ключа восстановления..."), "videoInfo": MessageLookupByLibrary.simpleMessage("Информация о видео"), "videoSmallCase": MessageLookupByLibrary.simpleMessage("видео"), - "videoStreaming": - MessageLookupByLibrary.simpleMessage("Потоковое видео"), "videos": MessageLookupByLibrary.simpleMessage("Видео"), "viewActiveSessions": MessageLookupByLibrary.simpleMessage("Просмотр активных сессий"), diff --git a/mobile/lib/generated/intl/messages_tr.dart b/mobile/lib/generated/intl/messages_tr.dart index ad37a2c98e..bca2eed899 100644 --- a/mobile/lib/generated/intl/messages_tr.dart +++ b/mobile/lib/generated/intl/messages_tr.dart @@ -2119,7 +2119,6 @@ class MessageLookup extends MessageLookupByLibrary { "Kurtarma kodu doğrulanıyor..."), "videoInfo": MessageLookupByLibrary.simpleMessage("Video Bilgileri"), "videoSmallCase": MessageLookupByLibrary.simpleMessage("video"), - "videoStreaming": MessageLookupByLibrary.simpleMessage("Video akışı"), "videos": MessageLookupByLibrary.simpleMessage("Videolar"), "viewActiveSessions": MessageLookupByLibrary.simpleMessage("Aktif oturumları görüntüle"), diff --git a/mobile/lib/generated/intl/messages_uk.dart b/mobile/lib/generated/intl/messages_uk.dart index be09ba23a2..83774af3ea 100644 --- a/mobile/lib/generated/intl/messages_uk.dart +++ b/mobile/lib/generated/intl/messages_uk.dart @@ -51,9 +51,6 @@ class MessageLookup extends MessageLookupByLibrary { static String m15(albumName) => "Створено спільне посилання для «${albumName}»"; - static String m16(count) => - "${Intl.plural(count, zero: 'Додано 0 співавторів', one: 'Додано 1 співавтор', few: 'Додано ${count} співаторів', many: 'Додано ${count} співаторів', other: 'Додано ${count} співавторів')}"; - static String m17(email, numOfDays) => "Ви збираєтеся додати ${email} як довірений контакт. Вони зможуть відновити ваш обліковий запис, якщо ви будете відсутні протягом ${numOfDays} днів."; @@ -66,7 +63,7 @@ class MessageLookup extends MessageLookupByLibrary { static String m20(endpoint) => "Під\'єднано до ${endpoint}"; static String m21(count) => - "${Intl.plural(count, one: 'Видалено ${count} елемент', few: 'Видалено ${count} елементи', many: 'Видалено ${count} елементів', other: 'Видалено ${count} елементів')}"; + "${Intl.plural(count, one: 'Видалено ${count} елемент', other: 'Видалено ${count} елементів')}"; static String m22(currentlyDeleting, totalCount) => "Видалення ${currentlyDeleting} / ${totalCount}"; @@ -94,7 +91,7 @@ class MessageLookup extends MessageLookupByLibrary { "${Intl.plural(count, one: 'Для 1 файлу', other: 'Для ${formattedNumber} файлів')} на цьому пристрої було створено резервну копію"; static String m34(count, formattedNumber) => - "${Intl.plural(count, one: 'Для 1 файлу', few: 'Для ${formattedNumber} файлів', many: 'Для ${formattedNumber} файлів', other: 'Для ${formattedNumber} файлів')} у цьому альбомі було створено резервну копію"; + "${Intl.plural(count, one: 'Для 1 файлу', other: 'Для ${formattedNumber} файлів')} у цьому альбомі було створено резервну копію"; static String m35(storageAmountInGB) => "${storageAmountInGB} ГБ щоразу, коли хтось оформлює передплату і застосовує ваш код"; @@ -230,7 +227,7 @@ class MessageLookup extends MessageLookupByLibrary { static String m110(email) => "Ми надіслали листа на ${email}"; static String m111(count) => - "${Intl.plural(count, one: '${count} рік тому', few: '${count} роки тому', many: '${count} років тому', other: '${count} років тому')}"; + "${Intl.plural(count, one: '${count} рік тому', other: '${count} років тому')}"; static String m113(storageSaved) => "Ви успішно звільнили ${storageSaved}!"; @@ -541,7 +538,6 @@ class MessageLookup extends MessageLookupByLibrary { "collaboratorsCanAddPhotosAndVideosToTheSharedAlbum": MessageLookupByLibrary.simpleMessage( "Співавтори можуть додавати фотографії та відео до спільного альбому."), - "collaboratorsSuccessfullyAdded": m16, "collageLayout": MessageLookupByLibrary.simpleMessage("Макет"), "collageSaved": MessageLookupByLibrary.simpleMessage("Колаж збережено до галереї"), diff --git a/mobile/lib/generated/intl/messages_zh.dart b/mobile/lib/generated/intl/messages_zh.dart index 396c964b16..3b74ac0c55 100644 --- a/mobile/lib/generated/intl/messages_zh.dart +++ b/mobile/lib/generated/intl/messages_zh.dart @@ -1727,7 +1727,6 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("正在验证恢复密钥..."), "videoInfo": MessageLookupByLibrary.simpleMessage("视频详情"), "videoSmallCase": MessageLookupByLibrary.simpleMessage("视频"), - "videoStreaming": MessageLookupByLibrary.simpleMessage("影音流"), "videos": MessageLookupByLibrary.simpleMessage("视频"), "viewActiveSessions": MessageLookupByLibrary.simpleMessage("查看活动会话"), "viewAddOnButton": MessageLookupByLibrary.simpleMessage("查看附加组件"), From 22bae0292db1c5c1166518df355270ee002e3f21 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Mon, 19 May 2025 14:04:42 +0530 Subject: [PATCH 015/316] feat: add new widget services --- .../services/album_home_widget_service.dart | 268 ++++++++++++++++++ mobile/lib/services/home_widget_service.dart | 20 ++ .../services/people_home_widget_service.dart | 265 +++++++++++++++++ 3 files changed, 553 insertions(+) create mode 100644 mobile/lib/services/album_home_widget_service.dart create mode 100644 mobile/lib/services/people_home_widget_service.dart diff --git a/mobile/lib/services/album_home_widget_service.dart b/mobile/lib/services/album_home_widget_service.dart new file mode 100644 index 0000000000..504d2e6a4a --- /dev/null +++ b/mobile/lib/services/album_home_widget_service.dart @@ -0,0 +1,268 @@ +import "package:flutter/material.dart"; +import "package:fluttertoast/fluttertoast.dart"; +import "package:logging/logging.dart"; +import "package:photos/models/file/file.dart"; +import "package:photos/service_locator.dart"; +import "package:photos/services/home_widget_service.dart"; +import "package:photos/services/sync/local_sync_service.dart"; +import "package:shared_preferences/shared_preferences.dart"; +import "package:synchronized/synchronized.dart"; + +class AlbumHomeWidgetService { + final Logger _logger = Logger((AlbumHomeWidgetService).toString()); + + AlbumHomeWidgetService._privateConstructor(); + + static final AlbumHomeWidgetService instance = + AlbumHomeWidgetService._privateConstructor(); + + late final SharedPreferences _prefs; + + final _albumsForceRefreshLock = Lock(); + bool _hasSyncedAlbums = false; + + static const albumsChangedKey = "albumsChanged.widget"; + static const totalAlbums = "totalAlbums"; + + init(SharedPreferences prefs) { + _prefs = prefs; + } + + Future _forceAlbumsUpdate() async { + await _lockAndLoadAlbum(); + await updateAlbumsChanged(false); + } + + Future _albumsSync() async { + final homeWidgetCount = await HomeWidgetService.instance.countHomeWidgets(); + if (homeWidgetCount == 0) { + _logger.warning("no home widget active"); + return; + } + + await _updateWidget(text: "refreshing from same set"); + } + + Future hasAnyBlockers() async { + final hasCompletedFirstImport = + LocalSyncService.instance.hasCompletedFirstImport(); + if (!hasCompletedFirstImport) { + _logger.warning("first import not completed"); + return true; + } + + // TODO: Check if any selected album doesn't exist + // final areAlbumShown = albumsCacheService.showAnyAlbum; + // if (!areAlbumShown) { + // _logger.warning("albums not enabled"); + // return true; + // } + + return false; + } + + Future initAlbumsHW(bool? forceFetchNewAlbum) async { + final result = await hasAnyBlockers(); + if (result) { + await clearWidget(); + return; + } + + await _albumsForceRefreshLock.synchronized(() async { + final result = await hasAnyBlockers(); + if (result) { + return; + } + final isTotalEmpty = await _checkIfTotalEmpty(); + forceFetchNewAlbum ??= await getForceFetchCondition(isTotalEmpty); + + _logger.warning( + "init albums hw: forceFetch: $forceFetchNewAlbum, isTotalEmpty: $isTotalEmpty", + ); + + if (forceFetchNewAlbum!) { + await _forceAlbumsUpdate(); + } else if (!isTotalEmpty) { + await _albumsSync(); + } + }); + } + + Future clearWidget() async { + final isTotalEmpty = await _checkIfTotalEmpty(); + if (isTotalEmpty) { + _logger.info(">>> Nothing to clear"); + return; + } + + _logger.info("Clearing AlbumsHomeWidget"); + + await _setTotal(null); + _hasSyncedAlbums = false; + + await _updateWidget(text: "AlbumsHomeWidget cleared & updated"); + } + + Future updateAlbumsChanged(bool value) async { + _logger.info("Updating albums changed to $value"); + await _prefs.setBool(albumsChangedKey, value); + } + + Future _checkIfTotalEmpty() async { + final total = await _getTotal(); + return total == 0 || total == null; + } + + Future getForceFetchCondition(bool isTotalEmpty) async { + final albumsChanged = _prefs.getBool(albumsChangedKey); + if (albumsChanged == true) return true; + + // TODO: Get Album data i.e. List of Ente Files + final cachedAlbum = []; // await albumsCacheService.getCachedAlbum(); + + final forceFetchNewAlbum = + isTotalEmpty && (cachedAlbum.isNotEmpty ?? false); + return forceFetchNewAlbum; + } + + Future checkPendingAlbumsSync() async { + await Future.delayed(const Duration(seconds: 5), () {}); + + final isTotalEmpty = await _checkIfTotalEmpty(); + final forceFetchNewAlbum = await getForceFetchCondition(isTotalEmpty); + + if (_hasSyncedAlbums && !forceFetchNewAlbum) { + _logger.info(">>> Albums already synced"); + return; + } + await HomeWidgetService.instance.initHomeWidget(); + } + + Future>> _getAlbum() async { + // TODO: Get Albums from the selected album and map them into title: files format + + // final albums = await albumsCacheService.getAlbum(); + // if (albums.isEmpty) { + // return {}; + // } + + // final files = Map.fromEntries( + // albums.map((m) { + // return MapEntry(m.title, m.albums.map((e) => e.file).toList()); + // }), + // ); + + // return files; + + return {}; + } + + Future _updateWidget({String? text}) async { + await HomeWidgetService.instance.updateWidget( + androidClass: "EnteAlbumsWidgetProvider", + iOSClass: "EnteAlbumsWidget", + ); + if (flagService.internalUser) { + await Fluttertoast.showToast( + msg: "[i] ${text ?? "AlbumsHomeWidget updated"}", + toastLength: Toast.LENGTH_SHORT, + gravity: ToastGravity.BOTTOM, + timeInSecForIosWeb: 1, + backgroundColor: Colors.black, + textColor: Colors.white, + fontSize: 16.0, + ); + } + _logger.info(">>> Home Widget updated, type: ${text ?? "normal"}"); + } + + Future albumsChanged() async { + // TODO: Get Albums and checks if size is changed + final cachedAlbum = []; // await albumsCacheService.getCachedAlbum(); + final currentTotal = cachedAlbum.length ?? 0; + + final int total = await _getTotal() ?? 0; + + if (total == currentTotal && total == 0) { + _logger.info(">>> Album not changed, doing nothing"); + return; + } + + _logger.info(">>> Album changed, updating widget"); + await updateAlbumsChanged(true); + await initAlbumsHW(true); + } + + Future _getTotal() async { + return HomeWidgetService.instance.getData(totalAlbums); + } + + Future _setTotal(int? total) async => + await HomeWidgetService.instance.setData(totalAlbums, total); + + Future _lockAndLoadAlbum() async { + final files = await _getAlbum(); + + if (files.isEmpty) { + _logger.warning("No files found, clearing everything"); + await clearWidget(); + return; + } + + final total = await _getTotal(); + _logger.info(">>> Total albums before: $total"); + + int index = 0; + + for (final i in files.entries) { + for (final file in i.value) { + final value = await HomeWidgetService.instance + .renderFile(file, "albums_widget_$index", i.key) + .catchError( + (e, sT) { + _logger.severe("Error rendering widget", e, sT); + return null; + }, + ); + + if (value != null) { + final result = await hasAnyBlockers(); + if (result) { + return; + } + await _setTotal(index); + if (index == 1) { + await _updateWidget( + text: "First albums fetched. updating widget", + ); + } + index++; + + if (index >= 50) { + _logger.warning(">>> Max albums limit reached"); + break; + } + } + } + + if (index >= 50) { + break; + } + } + + if (index == 0) { + return; + } + + await _updateWidget( + text: ">>> Switching to next albums set, total: $index", + ); + } + + Future onLaunchFromWidget(int generatedId, BuildContext context) async { + _hasSyncedAlbums = true; + await _albumsSync(); + + // TODO: Open albums page for this album + } +} diff --git a/mobile/lib/services/home_widget_service.dart b/mobile/lib/services/home_widget_service.dart index 8e11dfa574..94f3f94804 100644 --- a/mobile/lib/services/home_widget_service.dart +++ b/mobile/lib/services/home_widget_service.dart @@ -8,7 +8,9 @@ import "package:path_provider/path_provider.dart"; import "package:path_provider_foundation/path_provider_foundation.dart"; import "package:photos/core/constants.dart"; import "package:photos/models/file/file.dart"; +import "package:photos/services/album_home_widget_service.dart"; import "package:photos/services/memory_home_widget_service.dart"; +import "package:photos/services/people_home_widget_service.dart"; import "package:photos/services/smart_memories_service.dart"; import "package:photos/utils/thumbnail_util.dart"; import "package:shared_preferences/shared_preferences.dart"; @@ -24,6 +26,8 @@ class HomeWidgetService { init(SharedPreferences prefs) { setAppGroupID(iOSGroupID); MemoryHomeWidgetService.instance.init(prefs); + PeopleHomeWidgetService.instance.init(prefs); + AlbumHomeWidgetService.instance.init(prefs); } void setAppGroupID(String id) { @@ -32,6 +36,8 @@ class HomeWidgetService { Future initHomeWidget() async { await MemoryHomeWidgetService.instance.initMemoryHW(null); + await PeopleHomeWidgetService.instance.initPeopleHW(null); + await AlbumHomeWidgetService.instance.initAlbumsHW(null); } Future updateWidget({ @@ -154,6 +160,20 @@ class HomeWidgetService { generatedId, context, ); + } else if (uri.scheme == "peoplewidget") { + _logger.info("onLaunchFromWidget: redirecting to people widget"); + await PeopleHomeWidgetService.instance.onLaunchFromWidget( + generatedId, + context, + ); + } else if (uri.scheme == "albumwidget") { + _logger.info("onLaunchFromWidget: redirecting to album widget"); + await AlbumHomeWidgetService.instance.onLaunchFromWidget( + generatedId, + context, + ); + } else { + _logger.warning("onLaunchFromWidget: unknown scheme"); } } } diff --git a/mobile/lib/services/people_home_widget_service.dart b/mobile/lib/services/people_home_widget_service.dart new file mode 100644 index 0000000000..68fa334af7 --- /dev/null +++ b/mobile/lib/services/people_home_widget_service.dart @@ -0,0 +1,265 @@ +import "package:flutter/material.dart"; +import "package:fluttertoast/fluttertoast.dart"; +import "package:logging/logging.dart"; +import "package:photos/models/file/file.dart"; +import "package:photos/service_locator.dart"; +import "package:photos/services/home_widget_service.dart"; +import "package:photos/services/sync/local_sync_service.dart"; +import "package:shared_preferences/shared_preferences.dart"; +import "package:synchronized/synchronized.dart"; + +class PeopleHomeWidgetService { + final Logger _logger = Logger((PeopleHomeWidgetService).toString()); + + PeopleHomeWidgetService._privateConstructor(); + + static final PeopleHomeWidgetService instance = + PeopleHomeWidgetService._privateConstructor(); + + late final SharedPreferences _prefs; + + final _peopleForceRefreshLock = Lock(); + bool _hasSyncedPeople = false; + + static const peopleChangedKey = "peopleChanged.widget"; + static const totalPeople = "totalPeople"; + + init(SharedPreferences prefs) { + _prefs = prefs; + } + + Future _forcePeopleUpdate() async { + await _lockAndLoadPeople(); + await updatePeopleChanged(false); + } + + Future _peopleSync() async { + final homeWidgetCount = await HomeWidgetService.instance.countHomeWidgets(); + if (homeWidgetCount == 0) { + _logger.warning("no home widget active"); + return; + } + + await _updateWidget(text: "refreshing from same set"); + } + + Future hasAnyBlockers() async { + final hasCompletedFirstImport = + LocalSyncService.instance.hasCompletedFirstImport(); + if (!hasCompletedFirstImport) { + _logger.warning("first import not completed"); + return true; + } + + // TODO: Check if either people are empty or selected people don't exist + // final arePeopleShown = peopleCacheService.showAnyPeople; + // if (!arePeopleShown) { + // _logger.warning("people not enabled"); + // return true; + // } + + return false; + } + + Future initPeopleHW(bool? forceFetchNewPeople) async { + final result = await hasAnyBlockers(); + if (result) { + await clearWidget(); + return; + } + + await _peopleForceRefreshLock.synchronized(() async { + final result = await hasAnyBlockers(); + if (result) { + return; + } + final isTotalEmpty = await _checkIfTotalEmpty(); + forceFetchNewPeople ??= await getForceFetchCondition(isTotalEmpty); + + _logger.warning( + "init people hw: forceFetch: $forceFetchNewPeople, isTotalEmpty: $isTotalEmpty", + ); + + if (forceFetchNewPeople!) { + await _forcePeopleUpdate(); + } else if (!isTotalEmpty) { + await _peopleSync(); + } + }); + } + + Future clearWidget() async { + final isTotalEmpty = await _checkIfTotalEmpty(); + if (isTotalEmpty) { + _logger.info(">>> Nothing to clear"); + return; + } + + _logger.info("Clearing PeopleHomeWidget"); + + await _setTotal(null); + _hasSyncedPeople = false; + + await _updateWidget(text: "PeopleHomeWidget cleared & updated"); + } + + Future updatePeopleChanged(bool value) async { + _logger.info("Updating people changed to $value"); + await _prefs.setBool(peopleChangedKey, value); + } + + Future _checkIfTotalEmpty() async { + final total = await _getTotal(); + return total == 0 || total == null; + } + + Future getForceFetchCondition(bool isTotalEmpty) async { + final peopleChanged = _prefs.getBool(peopleChangedKey); + if (peopleChanged == true) return true; + + // + final cachedPeople = []; //await peopleCacheService.getCachedPeople(); + + final forceFetchNewPeople = + isTotalEmpty && (cachedPeople.isNotEmpty ?? false); + return forceFetchNewPeople; + } + + Future checkPendingPeopleSync() async { + await Future.delayed(const Duration(seconds: 5), () {}); + + final isTotalEmpty = await _checkIfTotalEmpty(); + final forceFetchNewPeople = await getForceFetchCondition(isTotalEmpty); + + if (_hasSyncedPeople && !forceFetchNewPeople) { + _logger.info(">>> People already synced"); + return; + } + await HomeWidgetService.instance.initHomeWidget(); + } + + Future>> _getPeople() async { + // TODO: Get People data i.e. List of Ente Files + final people = []; // await peopleCacheService.getPeople(); + if (people.isEmpty) { + return {}; + } + + final files = Map.fromEntries( + people.map((m) { + return MapEntry(m.title, m.people.map((e) => e.file).toList()); + }), + ); + + return files as Map>; + } + + Future _updateWidget({String? text}) async { + await HomeWidgetService.instance.updateWidget( + androidClass: "EntePeopleWidgetProvider", + iOSClass: "EntePeopleWidget", + ); + if (flagService.internalUser) { + await Fluttertoast.showToast( + msg: "[i] ${text ?? "PeopleHomeWidget updated"}", + toastLength: Toast.LENGTH_SHORT, + gravity: ToastGravity.BOTTOM, + timeInSecForIosWeb: 1, + backgroundColor: Colors.black, + textColor: Colors.white, + fontSize: 16.0, + ); + } + _logger.info(">>> Home Widget updated, type: ${text ?? "normal"}"); + } + + Future peopleChanged() async { + // TODO: Get list of cached people + final cachedPeople = []; // await peopleCacheService.getCachedPeople(); + final currentTotal = cachedPeople.length ?? 0; + + final int total = await _getTotal() ?? 0; + + if (total == currentTotal && total == 0) { + _logger.info(">>> People not changed, doing nothing"); + return; + } + + _logger.info(">>> People changed, updating widget"); + await updatePeopleChanged(true); + await initPeopleHW(true); + } + + Future _getTotal() async { + return HomeWidgetService.instance.getData(totalPeople); + } + + Future _setTotal(int? total) async => + await HomeWidgetService.instance.setData(totalPeople, total); + + Future _lockAndLoadPeople() async { + final files = await _getPeople(); + + if (files.isEmpty) { + _logger.warning("No files found, clearing everything"); + await clearWidget(); + return; + } + + final total = await _getTotal(); + _logger.info(">>> Total people before: $total"); + + int index = 0; + + for (final i in files.entries) { + for (final file in i.value) { + final value = await HomeWidgetService.instance + .renderFile(file, "people_widget_$index", i.key) + .catchError( + (e, sT) { + _logger.severe("Error rendering widget", e, sT); + return null; + }, + ); + + if (value != null) { + final result = await hasAnyBlockers(); + if (result) { + return; + } + await _setTotal(index); + if (index == 1) { + await _updateWidget( + text: "First people fetched. updating widget", + ); + } + index++; + + if (index >= 50) { + _logger.warning(">>> Max people limit reached"); + break; + } + } + } + + if (index >= 50) { + break; + } + } + + if (index == 0) { + return; + } + + await _updateWidget( + text: ">>> Switching to next people set, total: $index", + ); + } + + Future onLaunchFromWidget(int generatedId, BuildContext context) async { + _hasSyncedPeople = true; + await _peopleSync(); + + // TODO: Open person page for this person + } +} From d127199ade731494bc5f289829d2633ca88d8b9d Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Mon, 19 May 2025 17:35:33 +0530 Subject: [PATCH 016/316] feat: complete save and selection logic for memories and albums settings --- mobile/ios/Podfile.lock | 110 ++++++------- mobile/lib/generated/intl/messages_en.dart | 2 + mobile/lib/generated/l10n.dart | 10 ++ mobile/lib/l10n/intl_en.arb | 3 +- .../services/album_home_widget_service.dart | 37 ++++- mobile/lib/services/favorites_service.dart | 12 +- mobile/lib/services/home_widget_service.dart | 7 +- .../services/memory_home_widget_service.dart | 54 ++++++- .../services/people_home_widget_service.dart | 37 ++++- .../ui/settings/widget_settings_screen.dart | 11 ++ .../widgets/albums_widget_settings.dart | 117 +++++++++++--- .../widgets/memories_widget_settings.dart | 149 +++++++++++++++--- .../widgets/people_widget_settings.dart | 61 ++++--- 13 files changed, 481 insertions(+), 129 deletions(-) diff --git a/mobile/ios/Podfile.lock b/mobile/ios/Podfile.lock index 35f0ecafad..d76dd0c63d 100644 --- a/mobile/ios/Podfile.lock +++ b/mobile/ios/Podfile.lock @@ -435,81 +435,81 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/wakelock_plus/ios" SPEC CHECKSUMS: - app_links: f3e17e4ee5e357b39d8b95290a9b2c299fca71c6 - background_fetch: 39f11371c0dce04b001c4bfd5e782bcccb0a85e2 - battery_info: b6c551049266af31556b93c9d9b9452cfec0219f - connectivity_plus: 2a701ffec2c0ae28a48cf7540e279787e77c447d - cupertino_http: 947a233f40cfea55167a49f2facc18434ea117ba - dart_ui_isolate: d5bcda83ca4b04f129d70eb90110b7a567aece14 - device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6 + app_links: 76b66b60cc809390ca1ad69bfd66b998d2387ac7 + background_fetch: 94b36ee293e82972852dba8ede1fbcd3bd3d9d57 + battery_info: 83f3aae7be2fccefab1d2bf06b8aa96f11c8bcdd + connectivity_plus: cb623214f4e1f6ef8fe7403d580fdad517d2f7dd + cupertino_http: 94ac07f5ff090b8effa6c5e2c47871d48ab7c86c + dart_ui_isolate: 46f6714abe6891313267153ef6f9748d8ecfcab1 + device_info_plus: 335f3ce08d2e174b9fdc3db3db0f4e3b1f66bd89 ffmpeg_kit_custom: 682b4f2f1ff1f8abae5a92f6c3540f2441d5be99 - ffmpeg_kit_flutter: 9dce4803991478c78c6fb9f972703301101095fe - file_saver: 503e386464dbe118f630e17b4c2e1190fa0cf808 + ffmpeg_kit_flutter: 915b345acc97d4142e8a9a8549d177ff10f043f5 + file_saver: 6cdbcddd690cb02b0c1a0c225b37cd805c2bf8b6 Firebase: d80354ed7f6df5f9aca55e9eb47cc4b634735eaf - firebase_core: 6e223dfa350b2edceb729cea505eaaef59330682 - firebase_messaging: 07fde77ae28c08616a1d4d870450efc2b38cf40d + firebase_core: 6cbed78b4f298ed103a9fd034e6dbc846320480f + firebase_messaging: 5e0adf2eb18b0ee59aa0c109314c091a0497ecac FirebaseCore: 99fe0c4b44a39f37d99e6404e02009d2db5d718d FirebaseCoreInternal: df24ce5af28864660ecbd13596fc8dd3a8c34629 FirebaseInstallations: 6c963bd2a86aca0481eef4f48f5a4df783ae5917 FirebaseMessaging: 487b634ccdf6f7b7ff180fdcb2a9935490f764e8 Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 - flutter_email_sender: e03bdda7637bcd3539bfe718fddd980e9508efaa - flutter_image_compress_common: ec1d45c362c9d30a3f6a0426c297f47c52007e3e - flutter_inappwebview_ios: 6f63631e2c62a7c350263b13fa5427aedefe81d4 - flutter_local_notifications: 4cde75091f6327eb8517fa068a0a5950212d2086 - flutter_native_splash: f71420956eb811e6d310720fee915f1d42852e7a - flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be - flutter_sodium: a00383520fc689c688b66fd3092984174712493e - fluttertoast: 21eecd6935e7064cc1fcb733a4c5a428f3f24f0f + flutter_email_sender: aa1e9772696691d02cd91fea829856c11efb8e58 + flutter_image_compress_common: 1697a328fd72bfb335507c6bca1a65fa5ad87df1 + flutter_inappwebview_ios: b89ba3482b96fb25e00c967aae065701b66e9b99 + flutter_local_notifications: ad39620c743ea4c15127860f4b5641649a988100 + flutter_native_splash: 6cad9122ea0fad137d23137dd14b937f3e90b145 + flutter_secure_storage: 2c2ff13db9e0a5647389bff88b0ecac56e3f3418 + flutter_sodium: 7e4621538491834eba53bd524547854bcbbd6987 + fluttertoast: 2c67e14dce98bbdb200df9e1acf610d7a6264ea1 GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7 GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d - home_widget: 0434835a4c9a75704264feff6be17ea40e0f0d57 - image_editor_common: d6f6644ae4a6de80481e89fe6d0a8c49e30b4b43 - in_app_purchase_storekit: a1ce04056e23eecc666b086040239da7619cd783 - integration_test: 252f60fa39af5e17c3aa9899d35d908a0721b573 - launcher_icon_switcher: 8e0ad2131a20c51c1dd939896ee32e70cd845b37 + home_widget: f169fc41fd807b4d46ab6615dc44d62adbf9f64f + image_editor_common: 3de87e7c4804f4ae24c8f8a998362b98c105cac1 + in_app_purchase_storekit: d1a48cb0f8b29dbf5f85f782f5dd79b21b90a5e6 + integration_test: 4a889634ef21a45d28d50d622cf412dc6d9f586e + launcher_icon_switcher: 84c218d233505aa7d8655d8fa61a3ba802c022da libwebp: 02b23773aedb6ff1fd38cec7a77b81414c6842a8 - local_auth_darwin: 66e40372f1c29f383a314c738c7446e2f7fdadc3 - local_auth_ios: 5046a18c018dd973247a0564496c8898dbb5adf9 + local_auth_darwin: 553ce4f9b16d3fdfeafce9cf042e7c9f77c1c391 + local_auth_ios: f7a1841beef3151d140a967c2e46f30637cdf451 Mantle: c5aa8794a29a022dfbbfc9799af95f477a69b62d - maps_launcher: 2e5b6a2d664ec6c27f82ffa81b74228d770ab203 - media_extension: 6618f07abd762cdbfaadf1b0c56a287e820f0c84 - media_kit_libs_ios_video: a5fe24bc7875ccd6378a0978c13185e1344651c1 - media_kit_video: 5da63f157170e5bf303bf85453b7ef6971218a2e - motion_sensors: 03f55b7c637a7e365a0b5f9697a449f9059d5d91 - motionphoto: 8b65ce50c7d7ff3c767534fc3768b2eed9ac24e4 - move_to_background: cd3091014529ec7829e342ad2d75c0a11f4378a5 + maps_launcher: edf829809ba9e894d70e569bab11c16352dedb45 + media_extension: 671e2567880d96c95c65c9a82ccceed8f2e309fd + media_kit_libs_ios_video: 5a18affdb97d1f5d466dc79988b13eff6c5e2854 + media_kit_video: 1746e198cb697d1ffb734b1d05ec429d1fcd1474 + motion_sensors: 741e702c17467b9569a92165dda8d4d88c6167f1 + motionphoto: 23e2aeb5c6380112f69468d71f970fa7438e5ed1 + move_to_background: 7e3467dd2a1d1013e98c9c1cb93fd53cd7ef9d84 nanopb: fad817b59e0457d11a5dfbde799381cd727c1275 - native_video_player: 5d36066807b680e181473e6890dde643ac85380d - objective_c: 77e887b5ba1827970907e10e832eec1683f3431d - onnxruntime: e7c2ae44385191eaad5ae64c935a72debaddc997 + native_video_player: e363dd14f6a498ad8a8f7e6486a0db046ad19f13 + objective_c: 89e720c30d716b036faf9c9684022048eee1eee2 + onnxruntime: f9b296392c96c42882be020a59dbeac6310d81b2 onnxruntime-c: a909204639a1f035f575127ac406f781ac797c9c onnxruntime-objc: b6fab0f1787aa6f7190c2013f03037df4718bd8b - open_mail_app: 70273c53f768beefdafbe310c3d9086e4da3cb02 + open_mail_app: 7314a609e88eed22d53671279e189af7a0ab0f11 OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94 - package_info_plus: c0502532a26c7662a62a356cebe2692ec5fe4ec4 - path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 - permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2 - photo_manager: ff695c7a1dd5bc379974953a2b5c0a293f7c4c8a - privacy_screen: 1a131c052ceb3c3659934b003b0d397c2381a24e + package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499 + path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564 + permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d + photo_manager: d2fbcc0f2d82458700ee6256a15018210a81d413 + privacy_screen: 3159a541f5d3a31bea916cfd4e58f9dc722b3fd4 PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 - receive_sharing_intent: 79c848f5b045674ad60b9fea3bafea59962ad2c1 + receive_sharing_intent: 222384f00ffe7e952bbfabaa9e3967cb87e5fe00 SDWebImage: f84b0feeb08d2d11e6a9b843cb06d75ebf5b8868 SDWebImageWebPCoder: e38c0a70396191361d60c092933e22c20d5b1380 Sentry: da60d980b197a46db0b35ea12cb8f39af48d8854 - sentry_flutter: 6a134f9d381e49f22ea25a67736cf0cf4d02ec9c - share_plus: 8b6f8b3447e494cca5317c8c3073de39b3600d1f - shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 - sqflite_darwin: 5a7236e3b501866c1c9befc6771dfd73ffb8702d + sentry_flutter: 942017adbe00f963061cb11ec260414a990b7a42 + share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a + shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7 + sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0 sqlite3: fc1400008a9b3525f5914ed715a5d1af0b8f4983 - sqlite3_flutter_libs: 069c435986dd4b63461aecd68f4b30be4a9e9daa - system_info_plus: 5393c8da281d899950d751713575fbf91c7709aa - ua_client_hints: aeabd123262c087f0ce151ef96fa3ab77bfc8b38 - url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe - video_player_avfoundation: 7c6c11d8470e1675df7397027218274b6d2360b3 - video_thumbnail: 94ba6705afbaa120b77287080424930f23ea0c40 - volume_controller: 2e3de73d6e7e81a0067310d17fb70f2f86d71ac7 - wakelock_plus: 373cfe59b235a6dd5837d0fb88791d2f13a90d56 + sqlite3_flutter_libs: 3c323550ef3b928bc0aa9513c841e45a7d242832 + system_info_plus: 555ce7047fbbf29154726db942ae785c29211740 + ua_client_hints: 92fe0d139619b73ec9fcb46cc7e079a26178f586 + url_launcher_ios: 694010445543906933d732453a59da0a173ae33d + video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b + video_thumbnail: 584ccfa55d8fd2f3d5507218b0a18d84c839c620 + volume_controller: 3657a1f65bedb98fa41ff7dc5793537919f31b12 + wakelock_plus: 04623e3f525556020ebd4034310f20fe7fda8b49 PODFILE CHECKSUM: a8ef88ad74ba499756207e7592c6071a96756d18 diff --git a/mobile/lib/generated/intl/messages_en.dart b/mobile/lib/generated/intl/messages_en.dart index d6bbda975f..7f0a2ed630 100644 --- a/mobile/lib/generated/intl/messages_en.dart +++ b/mobile/lib/generated/intl/messages_en.dart @@ -1384,6 +1384,8 @@ class MessageLookup extends MessageLookupByLibrary { "onEnte": MessageLookupByLibrary.simpleMessage( "On ente"), "onTheRoad": MessageLookupByLibrary.simpleMessage("On the road again"), + "onThisDayMemories": + MessageLookupByLibrary.simpleMessage("On this day memories"), "onlyFamilyAdminCanChangeCode": m53, "onlyThem": MessageLookupByLibrary.simpleMessage("Only them"), "oops": MessageLookupByLibrary.simpleMessage("Oops"), diff --git a/mobile/lib/generated/l10n.dart b/mobile/lib/generated/l10n.dart index 1272e3e5a2..c6c6397bd2 100644 --- a/mobile/lib/generated/l10n.dart +++ b/mobile/lib/generated/l10n.dart @@ -11915,6 +11915,16 @@ class S { args: [], ); } + + /// `On this day memories` + String get onThisDayMemories { + return Intl.message( + 'On this day memories', + name: 'onThisDayMemories', + desc: '', + args: [], + ); + } } class AppLocalizationDelegate extends LocalizationsDelegate { diff --git a/mobile/lib/l10n/intl_en.arb b/mobile/lib/l10n/intl_en.arb index 3726549a69..afa94ac121 100644 --- a/mobile/lib/l10n/intl_en.arb +++ b/mobile/lib/l10n/intl_en.arb @@ -1750,5 +1750,6 @@ "deleteMultipleAlbumDialog": "Also delete the photos (and videos) present in these {count} albums from all other albums they are part of?", "addParticipants": "Add participants", "selectedAlbums": "{count} selected", - "actionNotSupportedOnFavouritesAlbum": "Action not supported on Favourites album" + "actionNotSupportedOnFavouritesAlbum": "Action not supported on Favourites album", + "onThisDayMemories": "On this day memories" } \ No newline at end of file diff --git a/mobile/lib/services/album_home_widget_service.dart b/mobile/lib/services/album_home_widget_service.dart index 504d2e6a4a..0f5cfac554 100644 --- a/mobile/lib/services/album_home_widget_service.dart +++ b/mobile/lib/services/album_home_widget_service.dart @@ -13,6 +13,10 @@ class AlbumHomeWidgetService { AlbumHomeWidgetService._privateConstructor(); + static const _selectedAlbumsHWKey = "selectedAlbumsHW"; + static const _androidClass = "EnteAlbumsWidgetProvider"; + static const _iOSClass = "EnteAlbumsWidget"; + static final AlbumHomeWidgetService instance = AlbumHomeWidgetService._privateConstructor(); @@ -33,8 +37,35 @@ class AlbumHomeWidgetService { await updateAlbumsChanged(false); } + List? getSelectedAlbums() { + final selectedAlbums = _prefs.getStringList(_selectedAlbumsHWKey); + + return selectedAlbums; + } + + Future setSelectedAlbums( + List selectedAlbums, + ) async { + await _prefs.setStringList(_selectedAlbumsHWKey, selectedAlbums); + } + + Future countHomeWidgets() async { + final installedWidgets = + await HomeWidgetService.instance.getInstalledWidgets(); + + final albumWidgets = installedWidgets + .where( + (element) => + element.androidClassName == _androidClass || + element.iOSKind == _iOSClass, + ) + .toList(); + + return albumWidgets.length; + } + Future _albumsSync() async { - final homeWidgetCount = await HomeWidgetService.instance.countHomeWidgets(); + final homeWidgetCount = await countHomeWidgets(); if (homeWidgetCount == 0) { _logger.warning("no home widget active"); return; @@ -159,8 +190,8 @@ class AlbumHomeWidgetService { Future _updateWidget({String? text}) async { await HomeWidgetService.instance.updateWidget( - androidClass: "EnteAlbumsWidgetProvider", - iOSClass: "EnteAlbumsWidget", + androidClass: _androidClass, + iOSClass: _iOSClass, ); if (flagService.internalUser) { await Fluttertoast.showToast( diff --git a/mobile/lib/services/favorites_service.dart b/mobile/lib/services/favorites_service.dart index 68cdc59944..9b8d9d6b59 100644 --- a/mobile/lib/services/favorites_service.dart +++ b/mobile/lib/services/favorites_service.dart @@ -60,7 +60,7 @@ class FavoritesService { } Future _warmUpCache() async { - final favCollection = await _getFavoritesCollection(); + final favCollection = await getFavoritesCollection(); if (favCollection != null) { Set uploadedIDs; Map fileHashes; @@ -103,7 +103,7 @@ class FavoritesService { } Future isFavorite(EnteFile file) async { - final collection = await _getFavoritesCollection(); + final collection = await getFavoritesCollection(); if (collection == null || file.uploadedFileID == null) { return false; } @@ -176,7 +176,7 @@ class FavoritesService { if (favFlag) { await _collectionsService.addOrCopyToCollection(collectionID, files); } else { - final Collection? favCollection = await _getFavoritesCollection(); + final Collection? favCollection = await getFavoritesCollection(); await _collectionActions.moveFilesFromCurrentCollection( context, favCollection!, @@ -194,7 +194,7 @@ class FavoritesService { if (inUploadID == null) { // Do nothing, ignore } else { - final Collection? favCollection = await _getFavoritesCollection(); + final Collection? favCollection = await getFavoritesCollection(); // The file might be part of another collection. For unfav, we need to // move file from the fav collection to the . if (file.ownerID != _config.getUserID() && @@ -225,7 +225,7 @@ class FavoritesService { _updateFavoriteFilesCache([file], favFlag: false); } - Future _getFavoritesCollection() async { + Future getFavoritesCollection() async { if (_cachedFavoritesCollectionID == null) { final collections = _collectionsService.getActiveCollections(); for (final collection in collections) { @@ -241,7 +241,7 @@ class FavoritesService { } Future getFavoriteCollectionID() async { - final collection = await _getFavoritesCollection(); + final collection = await getFavoritesCollection(); return collection?.id; } diff --git a/mobile/lib/services/home_widget_service.dart b/mobile/lib/services/home_widget_service.dart index 94f3f94804..7934a2df35 100644 --- a/mobile/lib/services/home_widget_service.dart +++ b/mobile/lib/services/home_widget_service.dart @@ -3,6 +3,7 @@ import "dart:io"; import "package:flutter/material.dart"; import 'package:home_widget/home_widget.dart' as hw; +import "package:home_widget/home_widget.dart"; import "package:logging/logging.dart"; import "package:path_provider/path_provider.dart"; import "package:path_provider_foundation/path_provider_foundation.dart"; @@ -75,7 +76,11 @@ class HomeWidgetService { } Future countHomeWidgets() async { - return (await hw.HomeWidget.getInstalledWidgets()).length; + return (await getInstalledWidgets()).length; + } + + Future> getInstalledWidgets() async { + return await hw.HomeWidget.getInstalledWidgets(); } Future _captureFile( diff --git a/mobile/lib/services/memory_home_widget_service.dart b/mobile/lib/services/memory_home_widget_service.dart index 6b76bff295..e6b136d523 100644 --- a/mobile/lib/services/memory_home_widget_service.dart +++ b/mobile/lib/services/memory_home_widget_service.dart @@ -13,6 +13,12 @@ class MemoryHomeWidgetService { MemoryHomeWidgetService._privateConstructor(); + static const _selectedLastYearMemoriesKey = "selectedLastYearMemoriesHW"; + static const _selectedMLMemoriesKey = "selectedMLMemoriesHW"; + static const _selectedOnThisDayMemoriesKey = "selectedOnThisDayMemoriesHW"; + static const _androidClass = "EnteMemoryWidgetProvider"; + static const _iOSClass = "EnteMemoryWidget"; + static final MemoryHomeWidgetService instance = MemoryHomeWidgetService._privateConstructor(); @@ -33,8 +39,50 @@ class MemoryHomeWidgetService { await updateMemoryChanged(false); } + Future getSelectedLastYearMemories() async { + final selectedMemories = _prefs.getBool(_selectedLastYearMemoriesKey); + return selectedMemories; + } + + Future setSelectedLastYearMemories(bool selectedMemories) async { + await _prefs.setBool(_selectedLastYearMemoriesKey, selectedMemories); + } + + Future getSelectedMLMemories() async { + final selectedMemories = _prefs.getBool(_selectedMLMemoriesKey); + return selectedMemories; + } + + Future setSelectedMLMemories(bool selectedMemories) async { + await _prefs.setBool(_selectedMLMemoriesKey, selectedMemories); + } + + Future getSelectedOnThisDayMemories() async { + final selectedMemories = _prefs.getBool(_selectedOnThisDayMemoriesKey); + return selectedMemories; + } + + Future setSelectedOnThisDayMemories(bool selectedMemories) async { + await _prefs.setBool(_selectedOnThisDayMemoriesKey, selectedMemories); + } + + Future countHomeWidgets() async { + final installedWidgets = + await HomeWidgetService.instance.getInstalledWidgets(); + + final memoryWidgets = installedWidgets + .where( + (element) => + element.androidClassName == _androidClass || + element.iOSKind == _iOSClass, + ) + .toList(); + + return memoryWidgets.length; + } + Future _memorySync() async { - final homeWidgetCount = await HomeWidgetService.instance.countHomeWidgets(); + final homeWidgetCount = await countHomeWidgets(); if (homeWidgetCount == 0) { _logger.warning("no home widget active"); return; @@ -153,8 +201,8 @@ class MemoryHomeWidgetService { Future _updateWidget({String? text}) async { await HomeWidgetService.instance.updateWidget( - androidClass: "EnteMemoryWidgetProvider", - iOSClass: "EnteMemoryWidget", + androidClass: _androidClass, + iOSClass: _iOSClass, ); if (flagService.internalUser) { await Fluttertoast.showToast( diff --git a/mobile/lib/services/people_home_widget_service.dart b/mobile/lib/services/people_home_widget_service.dart index 68fa334af7..98c4115ac4 100644 --- a/mobile/lib/services/people_home_widget_service.dart +++ b/mobile/lib/services/people_home_widget_service.dart @@ -13,6 +13,10 @@ class PeopleHomeWidgetService { PeopleHomeWidgetService._privateConstructor(); + static const _selectedPeopleHWKey = "selectedPeopleHW"; + static const _androidClass = "EntePeopleWidgetProvider"; + static const _iOSClass = "EntePeopleWidget"; + static final PeopleHomeWidgetService instance = PeopleHomeWidgetService._privateConstructor(); @@ -33,8 +37,35 @@ class PeopleHomeWidgetService { await updatePeopleChanged(false); } + List? getSelectedPeople() { + final selectedAlbums = _prefs.getStringList(_selectedPeopleHWKey); + + return selectedAlbums; + } + + Future setSelectedPeople( + List selectedAlbums, + ) async { + await _prefs.setStringList(_selectedPeopleHWKey, selectedAlbums); + } + + Future countHomeWidgets() async { + final installedWidgets = + await HomeWidgetService.instance.getInstalledWidgets(); + + final peopleWidgets = installedWidgets + .where( + (element) => + element.androidClassName == _androidClass || + element.iOSKind == _iOSClass, + ) + .toList(); + + return peopleWidgets.length; + } + Future _peopleSync() async { - final homeWidgetCount = await HomeWidgetService.instance.countHomeWidgets(); + final homeWidgetCount = await countHomeWidgets(); if (homeWidgetCount == 0) { _logger.warning("no home widget active"); return; @@ -156,8 +187,8 @@ class PeopleHomeWidgetService { Future _updateWidget({String? text}) async { await HomeWidgetService.instance.updateWidget( - androidClass: "EntePeopleWidgetProvider", - iOSClass: "EntePeopleWidget", + androidClass: _androidClass, + iOSClass: _iOSClass, ); if (flagService.internalUser) { await Fluttertoast.showToast( diff --git a/mobile/lib/ui/settings/widget_settings_screen.dart b/mobile/lib/ui/settings/widget_settings_screen.dart index 70196867a9..c5d491397f 100644 --- a/mobile/lib/ui/settings/widget_settings_screen.dart +++ b/mobile/lib/ui/settings/widget_settings_screen.dart @@ -1,12 +1,14 @@ import 'package:flutter/material.dart'; import "package:flutter_svg/flutter_svg.dart"; import "package:photos/generated/l10n.dart"; +import "package:photos/service_locator.dart"; import 'package:photos/theme/ente_theme.dart'; import 'package:photos/ui/components/buttons/icon_button_widget.dart'; import 'package:photos/ui/components/captioned_text_widget.dart'; import 'package:photos/ui/components/menu_item_widget/menu_item_widget.dart'; import 'package:photos/ui/components/title_bar_title_widget.dart'; import 'package:photos/ui/components/title_bar_widget.dart'; +import "package:photos/ui/settings/ml/enable_ml_consent.dart"; import "package:photos/ui/settings/widgets/albums_widget_settings.dart"; import "package:photos/ui/settings/widgets/memories_widget_settings.dart"; import "package:photos/ui/settings/widgets/people_widget_settings.dart"; @@ -16,6 +18,15 @@ class WidgetSettingsScreen extends StatelessWidget { const WidgetSettingsScreen({super.key}); void onPeopleTapped(BuildContext context) { + final bool isMLEnabled = !flagService.hasGrantedMLConsent; + if (isMLEnabled) { + routeToPage( + context, + const EnableMachineLearningConsent(), + forceCustomPageRoute: true, + ); + return; + } routeToPage( context, const PeopleWidgetSettings(), diff --git a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart index 7cd3368d58..f0f1f913b9 100644 --- a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart @@ -1,7 +1,10 @@ import 'package:flutter/material.dart'; import "package:photos/generated/l10n.dart"; import "package:photos/models/collection/collection.dart"; +import "package:photos/models/selected_albums.dart"; +import "package:photos/services/album_home_widget_service.dart"; import "package:photos/services/collections_service.dart"; +import "package:photos/services/favorites_service.dart"; import 'package:photos/theme/ente_theme.dart'; import "package:photos/ui/collections/flex_grid_view.dart"; import "package:photos/ui/common/loading_widget.dart"; @@ -11,30 +14,105 @@ import "package:photos/ui/components/models/button_type.dart"; import 'package:photos/ui/components/title_bar_title_widget.dart'; import 'package:photos/ui/components/title_bar_widget.dart'; -class AlbumsWidgetSettings extends StatelessWidget { +class AlbumsWidgetSettings extends StatefulWidget { const AlbumsWidgetSettings({super.key}); + @override + State createState() => _AlbumsWidgetSettingsState(); +} + +class _AlbumsWidgetSettingsState extends State { + final _selectedAlbums = SelectedAlbums(); + bool hasInstalledAny = false; + Set _albums = {}; + + @override + void initState() { + super.initState(); + _selectedAlbums.addListener(_selectedAlbumsListener); + checkIfAnyWidgetInstalled(); + selectExisting(); + } + + void _selectedAlbumsListener() { + _albums = _selectedAlbums.albums; + setState(() {}); + } + + Future checkIfAnyWidgetInstalled() async { + final count = await AlbumHomeWidgetService.instance.countHomeWidgets(); + setState(() { + hasInstalledAny = count > 0; + }); + } + + Future selectExisting() async { + final selectedAlbums = AlbumHomeWidgetService.instance.getSelectedAlbums(); + final albums = {}; + + if (selectedAlbums != null) { + for (final collectionID in selectedAlbums) { + final collection = CollectionsService.instance + .getCollectionByID(int.parse(collectionID)); + + if (collection != null) { + albums.add(collection); + } + } + } + + if (albums.isEmpty) { + final favorites = + await FavoritesService.instance.getFavoritesCollection(); + + if (favorites == null) { + return; + } + + albums.add(favorites); + } + + _selectedAlbums.select(albums); + } + + @override + void dispose() { + _selectedAlbums.removeListener(_selectedAlbumsListener); + super.dispose(); + } + @override Widget build(BuildContext context) { final textTheme = getEnteTextTheme(context); return Scaffold( - bottomNavigationBar: Padding( - padding: EdgeInsets.fromLTRB( - 16, - 8, - 16, - 8 + MediaQuery.viewPaddingOf(context).bottom, - ), - child: ButtonWidget( - buttonType: ButtonType.primary, - buttonSize: ButtonSize.large, - labelText: S.of(context).save, - shouldSurfaceExecutionStates: false, - onTap: () async { - // await _generateAlbumUrl(); - }, - ), - ), + bottomNavigationBar: hasInstalledAny + ? Padding( + padding: EdgeInsets.fromLTRB( + 16, + 8, + 16, + 8 + MediaQuery.viewPaddingOf(context).bottom, + ), + child: ButtonWidget( + buttonType: ButtonType.primary, + buttonSize: ButtonSize.large, + labelText: S.of(context).save, + shouldSurfaceExecutionStates: false, + onTap: _albums.isNotEmpty + ? () async { + final albums = + _albums.map((e) => e.id.toString()).toList(); + await AlbumHomeWidgetService.instance + .setSelectedAlbums(albums); + // TODO: Run sync + // await AlbumHomeWidgetService.instance.updateWidget(); + Navigator.pop(context); + } + : null, + isDisabled: _albums.isEmpty, + ), + ) + : null, body: CustomScrollView( primary: false, slivers: [ @@ -56,7 +134,7 @@ class AlbumsWidgetSettings extends StatelessWidget { ), ], ), - if (1 != 1) + if (!hasInstalledAny) SliverToBoxAdapter( child: Padding( padding: const EdgeInsets.symmetric(horizontal: 32.0), @@ -91,6 +169,7 @@ class AlbumsWidgetSettings extends StatelessWidget { snapshot.data!, displayLimitCount: snapshot.data!.length, shrinkWrap: true, + selectedAlbums: _selectedAlbums, shouldShowCreateAlbum: false, enableSelectionMode: true, ); diff --git a/mobile/lib/ui/settings/widgets/memories_widget_settings.dart b/mobile/lib/ui/settings/widgets/memories_widget_settings.dart index 2cd40bd1ee..6ab612ea03 100644 --- a/mobile/lib/ui/settings/widgets/memories_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/memories_widget_settings.dart @@ -1,6 +1,8 @@ import 'package:flutter/material.dart'; import "package:flutter_svg/flutter_svg.dart"; import "package:photos/generated/l10n.dart"; +import "package:photos/service_locator.dart"; +import "package:photos/services/memory_home_widget_service.dart"; import 'package:photos/theme/ente_theme.dart'; import 'package:photos/ui/components/buttons/icon_button_widget.dart'; import "package:photos/ui/components/captioned_text_widget.dart"; @@ -9,13 +11,85 @@ import 'package:photos/ui/components/title_bar_title_widget.dart'; import 'package:photos/ui/components/title_bar_widget.dart'; import "package:photos/ui/components/toggle_switch_widget.dart"; -class MemoriesWidgetSettings extends StatelessWidget { +class MemoriesWidgetSettings extends StatefulWidget { const MemoriesWidgetSettings({super.key}); + @override + State createState() => _MemoriesWidgetSettingsState(); +} + +class _MemoriesWidgetSettingsState extends State { + bool hasInstalledAny = false; + + bool? isYearlyMemoriesEnabled = true; + bool? isSmartMemoriesEnabled = false; + bool? isOnThisDayMemoriesEnabled = false; + + late final bool isMLEnabled; + + @override + void initState() { + super.initState(); + + initVariables(); + checkIfAnyWidgetInstalled(); + } + + Future checkIfAnyWidgetInstalled() async { + final count = await MemoryHomeWidgetService.instance.countHomeWidgets(); + setState(() { + hasInstalledAny = count > 0; + }); + } + + Future initVariables() async { + isMLEnabled = flagService.hasGrantedMLConsent; + isYearlyMemoriesEnabled = + await MemoryHomeWidgetService.instance.getSelectedLastYearMemories(); + isSmartMemoriesEnabled = + await MemoryHomeWidgetService.instance.getSelectedMLMemories(); + isOnThisDayMemoriesEnabled = + await MemoryHomeWidgetService.instance.getSelectedOnThisDayMemories(); + + if (isYearlyMemoriesEnabled == null || + isSmartMemoriesEnabled == null || + isOnThisDayMemoriesEnabled == null) { + if (isMLEnabled) { + enableMLMemories(); + } else { + enableNonMLMemories(); + } + } + + setState(() {}); + } + + void enableMLMemories() { + isYearlyMemoriesEnabled = false; + isSmartMemoriesEnabled = true; + isOnThisDayMemoriesEnabled = true; + } + + void enableNonMLMemories() { + isYearlyMemoriesEnabled = true; + isSmartMemoriesEnabled = false; + isOnThisDayMemoriesEnabled = false; + } + + Future updateVariables() async { + await MemoryHomeWidgetService.instance + .setSelectedLastYearMemories(isYearlyMemoriesEnabled!); + await MemoryHomeWidgetService.instance + .setSelectedMLMemories(isSmartMemoriesEnabled!); + await MemoryHomeWidgetService.instance + .setSelectedOnThisDayMemories(isOnThisDayMemoriesEnabled!); + } + @override Widget build(BuildContext context) { final textTheme = getEnteTextTheme(context); final colorScheme = getEnteColorScheme(context); + return Scaffold( body: CustomScrollView( primary: false, @@ -38,7 +112,7 @@ class MemoriesWidgetSettings extends StatelessWidget { ), ], ), - if (1 != 1) + if (!hasInstalledAny) SliverToBoxAdapter( child: Padding( padding: const EdgeInsets.symmetric(horizontal: 32.0), @@ -84,29 +158,66 @@ class MemoriesWidgetSettings extends StatelessWidget { ), menuItemColor: colorScheme.fillFaint, trailingWidget: ToggleSwitchWidget( - value: () => true, - onChanged: () async {}, + value: () => isYearlyMemoriesEnabled ?? true, + onChanged: () async { + setState(() { + isYearlyMemoriesEnabled = + !isYearlyMemoriesEnabled!; + }); + await updateVariables(); + }, ), singleBorderRadius: 8, isGestureDetectorDisabled: true, ), - const SizedBox(height: 4), - MenuItemWidget( - captionedTextWidget: CaptionedTextWidget( - title: S.of(context).smartMemories, + if (isMLEnabled) ...[ + const SizedBox(height: 4), + MenuItemWidget( + captionedTextWidget: CaptionedTextWidget( + title: S.of(context).smartMemories, + ), + leadingIconWidget: SvgPicture.asset( + "assets/icons/smart-memory-icon.svg", + color: colorScheme.textBase, + ), + menuItemColor: colorScheme.fillFaint, + trailingWidget: ToggleSwitchWidget( + value: () => isSmartMemoriesEnabled!, + onChanged: () async { + setState(() { + isSmartMemoriesEnabled = + !isSmartMemoriesEnabled!; + }); + await updateVariables(); + }, + ), + singleBorderRadius: 8, + isGestureDetectorDisabled: true, ), - leadingIconWidget: SvgPicture.asset( - "assets/icons/smart-memory-icon.svg", - color: colorScheme.textBase, + const SizedBox(height: 4), + MenuItemWidget( + captionedTextWidget: CaptionedTextWidget( + title: S.of(context).onThisDayMemories, + ), + leadingIconWidget: SvgPicture.asset( + "assets/icons/memories-widget-icon.svg", + color: colorScheme.textBase, + ), + menuItemColor: colorScheme.fillFaint, + trailingWidget: ToggleSwitchWidget( + value: () => isOnThisDayMemoriesEnabled!, + onChanged: () async { + setState(() { + isOnThisDayMemoriesEnabled = + !isOnThisDayMemoriesEnabled!; + }); + await updateVariables(); + }, + ), + singleBorderRadius: 8, + isGestureDetectorDisabled: true, ), - menuItemColor: colorScheme.fillFaint, - trailingWidget: ToggleSwitchWidget( - value: () => true, - onChanged: () async {}, - ), - singleBorderRadius: 8, - isGestureDetectorDisabled: true, - ), + ], ], ), ); diff --git a/mobile/lib/ui/settings/widgets/people_widget_settings.dart b/mobile/lib/ui/settings/widgets/people_widget_settings.dart index 128af97ac5..5a982f83f5 100644 --- a/mobile/lib/ui/settings/widgets/people_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/people_widget_settings.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import "package:photos/generated/l10n.dart"; +import "package:photos/services/people_home_widget_service.dart"; import 'package:photos/theme/ente_theme.dart'; import "package:photos/ui/components/buttons/button_widget.dart"; import 'package:photos/ui/components/buttons/icon_button_widget.dart'; @@ -8,30 +9,52 @@ import 'package:photos/ui/components/title_bar_title_widget.dart'; import 'package:photos/ui/components/title_bar_widget.dart'; import "package:photos/ui/viewer/search/result/people_section_all_page.dart"; -class PeopleWidgetSettings extends StatelessWidget { +class PeopleWidgetSettings extends StatefulWidget { const PeopleWidgetSettings({super.key}); + @override + State createState() => _PeopleWidgetSettingsState(); +} + +class _PeopleWidgetSettingsState extends State { + bool hasInstalledAny = false; + + @override + void initState() { + super.initState(); + checkIfAnyWidgetInstalled(); + } + + Future checkIfAnyWidgetInstalled() async { + final count = await PeopleHomeWidgetService.instance.countHomeWidgets(); + setState(() { + hasInstalledAny = count > 0; + }); + } + @override Widget build(BuildContext context) { final textTheme = getEnteTextTheme(context); return Scaffold( - bottomNavigationBar: Padding( - padding: EdgeInsets.fromLTRB( - 16, - 8, - 16, - 8 + MediaQuery.viewPaddingOf(context).bottom, - ), - child: ButtonWidget( - buttonType: ButtonType.primary, - buttonSize: ButtonSize.large, - labelText: S.of(context).save, - shouldSurfaceExecutionStates: false, - onTap: () async { - // await _generateAlbumUrl(); - }, - ), - ), + bottomNavigationBar: hasInstalledAny + ? Padding( + padding: EdgeInsets.fromLTRB( + 16, + 8, + 16, + 8 + MediaQuery.viewPaddingOf(context).bottom, + ), + child: ButtonWidget( + buttonType: ButtonType.primary, + buttonSize: ButtonSize.large, + labelText: S.of(context).save, + shouldSurfaceExecutionStates: false, + onTap: () async { + // await _generateAlbumUrl(); + }, + ), + ) + : null, body: CustomScrollView( primary: false, slivers: [ @@ -53,7 +76,7 @@ class PeopleWidgetSettings extends StatelessWidget { ), ], ), - if (1 != 1) + if (!hasInstalledAny) SliverToBoxAdapter( child: Padding( padding: const EdgeInsets.symmetric(horizontal: 32.0), From c8b23f80e2708cb0ae0a8e633b584886f507f9b2 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Mon, 19 May 2025 18:53:41 +0530 Subject: [PATCH 017/316] feat: add selection and save/get from db for people widget settings --- mobile/lib/models/selected_people.dart | 42 +++ .../widgets/people_widget_settings.dart | 43 ++- .../result/people_section_all_page.dart | 23 +- .../ui/viewer/search_tab/people_section.dart | 283 +++++++++++------- 4 files changed, 265 insertions(+), 126 deletions(-) create mode 100644 mobile/lib/models/selected_people.dart diff --git a/mobile/lib/models/selected_people.dart b/mobile/lib/models/selected_people.dart new file mode 100644 index 0000000000..f9ba503d7d --- /dev/null +++ b/mobile/lib/models/selected_people.dart @@ -0,0 +1,42 @@ +import 'package:collection/collection.dart' show IterableExtension; +import 'package:flutter/foundation.dart'; + +class SelectedPeople extends ChangeNotifier { + final personIds = {}; + + void toggleSelection(String personID) { + final String? alreadySelected = personIds.firstWhereOrNull( + (element) => element == personID, + ); + if (alreadySelected != null) { + personIds.remove(alreadySelected); + } else { + personIds.add(personID); + } + notifyListeners(); + } + + void select(Set personToSelect) { + personIds.addAll(personToSelect); + notifyListeners(); + } + + void unSelect( + Set peopleToUnselect, { + bool skipNotify = false, + }) { + personIds.removeWhere((personID) => peopleToUnselect.contains(personID)); + if (!skipNotify) { + notifyListeners(); + } + } + + bool isPersonSelected(String personId) { + return personIds.any((element) => element == personId); + } + + void clearAll() { + personIds.clear(); + notifyListeners(); + } +} diff --git a/mobile/lib/ui/settings/widgets/people_widget_settings.dart b/mobile/lib/ui/settings/widgets/people_widget_settings.dart index 5a982f83f5..76c3f6025b 100644 --- a/mobile/lib/ui/settings/widgets/people_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/people_widget_settings.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import "package:photos/generated/l10n.dart"; +import "package:photos/models/selected_people.dart"; import "package:photos/services/people_home_widget_service.dart"; import 'package:photos/theme/ente_theme.dart'; import "package:photos/ui/components/buttons/button_widget.dart"; @@ -18,13 +19,26 @@ class PeopleWidgetSettings extends StatefulWidget { class _PeopleWidgetSettingsState extends State { bool hasInstalledAny = false; + final _selectedPeople = SelectedPeople(); + + Set people = {}; @override void initState() { super.initState(); + _selectedPeople.addListener(_selectedPeopleListener); + getSelections(); checkIfAnyWidgetInstalled(); } + Future getSelections() async { + final selectedPeople = PeopleHomeWidgetService.instance.getSelectedPeople(); + + if (selectedPeople != null) { + _selectedPeople.select(selectedPeople.toSet()); + } + } + Future checkIfAnyWidgetInstalled() async { final count = await PeopleHomeWidgetService.instance.countHomeWidgets(); setState(() { @@ -32,6 +46,17 @@ class _PeopleWidgetSettingsState extends State { }); } + void _selectedPeopleListener() { + people = _selectedPeople.personIds; + setState(() {}); + } + + @override + void dispose() { + _selectedPeople.removeListener(_selectedPeopleListener); + super.dispose(); + } + @override Widget build(BuildContext context) { final textTheme = getEnteTextTheme(context); @@ -49,9 +74,15 @@ class _PeopleWidgetSettingsState extends State { buttonSize: ButtonSize.large, labelText: S.of(context).save, shouldSurfaceExecutionStates: false, - onTap: () async { - // await _generateAlbumUrl(); - }, + isDisabled: people.isEmpty, + onTap: people.isEmpty + ? null + : () async { + await PeopleHomeWidgetService.instance + .setSelectedPeople(people.toList()); + // TODO: update/sync widget + Navigator.pop(context); + }, ), ) : null, @@ -102,8 +133,10 @@ class _PeopleWidgetSettingsState extends State { ), ) else - const SliverToBoxAdapter( - child: PeopleSectionAllWidget(), + SliverToBoxAdapter( + child: PeopleSectionAllWidget( + selectedPeople: _selectedPeople, + ), ), ], ), diff --git a/mobile/lib/ui/viewer/search/result/people_section_all_page.dart b/mobile/lib/ui/viewer/search/result/people_section_all_page.dart index c8a76958bd..e658f1747c 100644 --- a/mobile/lib/ui/viewer/search/result/people_section_all_page.dart +++ b/mobile/lib/ui/viewer/search/result/people_section_all_page.dart @@ -4,8 +4,9 @@ import 'package:flutter/material.dart'; import "package:flutter_animate/flutter_animate.dart"; import "package:photos/events/event.dart"; import "package:photos/generated/l10n.dart"; -import "package:photos/models/search/search_result.dart"; +import "package:photos/models/search/generic_search_result.dart"; import "package:photos/models/search/search_types.dart"; +import "package:photos/models/selected_people.dart"; import "package:photos/theme/ente_theme.dart"; import "package:photos/ui/common/loading_widget.dart"; import "package:photos/ui/viewer/search_tab/people_section.dart"; @@ -28,27 +29,36 @@ class PeopleSectionAllPage extends StatelessWidget { } class PeopleSectionAllWidget extends StatefulWidget { - const PeopleSectionAllWidget({super.key}); + const PeopleSectionAllWidget({ + super.key, + this.selectedPeople, + }); + + final SelectedPeople? selectedPeople; @override State createState() => _PeopleSectionAllWidgetState(); } class _PeopleSectionAllWidgetState extends State { - late Future> sectionData; + late Future> sectionData; final streamSubscriptions = []; @override void initState() { super.initState(); - sectionData = SectionType.face.getData(context); + sectionData = SectionType.face.getData(context).then( + (value) => List.from(value), + ); final streamsToListenTo = SectionType.face.viewAllUpdateEvents(); for (Stream stream in streamsToListenTo) { streamSubscriptions.add( stream.listen((event) async { setState(() { - sectionData = SectionType.face.getData(context); + sectionData = SectionType.face.getData(context).then( + (value) => List.from(value), + ); }); }), ); @@ -71,7 +81,7 @@ class _PeopleSectionAllWidgetState extends State { const horizontalEdgePadding = 20.0; const gridPadding = 16.0; - return FutureBuilder>( + return FutureBuilder>( future: sectionData, builder: (context, snapshot) { if (snapshot.connectionState == ConnectionState.waiting) { @@ -110,6 +120,7 @@ class _PeopleSectionAllWidgetState extends State { return PersonSearchExample( searchResult: results[index], size: itemSize, + selectedPeople: widget.selectedPeople, ) .animate(delay: Duration(milliseconds: index * 13)) .fadeIn( diff --git a/mobile/lib/ui/viewer/search_tab/people_section.dart b/mobile/lib/ui/viewer/search_tab/people_section.dart index 644c0966b9..e8a9211500 100644 --- a/mobile/lib/ui/viewer/search_tab/people_section.dart +++ b/mobile/lib/ui/viewer/search_tab/people_section.dart @@ -6,10 +6,12 @@ import "package:photos/events/event.dart"; import "package:photos/models/file/file.dart"; import "package:photos/models/ml/face/person.dart"; import "package:photos/models/search/generic_search_result.dart"; +import "package:photos/models/search/hierarchical/face_filter.dart"; import "package:photos/models/search/recent_searches.dart"; import "package:photos/models/search/search_constants.dart"; import "package:photos/models/search/search_result.dart"; import "package:photos/models/search/search_types.dart"; +import "package:photos/models/selected_people.dart"; import "package:photos/theme/ente_theme.dart"; import "package:photos/ui/settings/ml/machine_learning_settings_page.dart"; import "package:photos/ui/viewer/file/no_thumbnail_widget.dart"; @@ -24,7 +26,7 @@ import "package:photos/utils/navigation_util.dart"; class PeopleSection extends StatefulWidget { final SectionType sectionType = SectionType.face; - final List examples; + final List examples; final int limit; const PeopleSection({ @@ -38,7 +40,7 @@ class PeopleSection extends StatefulWidget { } class _PeopleSectionState extends State { - late List _examples; + late List _examples; final streamSubscriptions = []; @override @@ -50,10 +52,12 @@ class _PeopleSectionState extends State { for (Stream stream in streamsToListenTo) { streamSubscriptions.add( stream.listen((event) async { - _examples = await widget.sectionType.getData( - context, - limit: kSearchSectionLimit, - ); + _examples = await widget.sectionType + .getData( + context, + limit: kSearchSectionLimit, + ) + .then((value) => List.from(value)); setState(() {}); }), ); @@ -161,7 +165,7 @@ class _PeopleSectionState extends State { class SearchExampleRow extends StatelessWidget { final SectionType sectionType; - final List examples; + final List examples; const SearchExampleRow(this.examples, this.sectionType, {super.key}); @@ -177,6 +181,7 @@ class SearchExampleRow extends StatelessWidget { itemBuilder: (context, index) { return PersonSearchExample( searchResult: examples[index], + selectedPeople: null, ); }, separatorBuilder: (context, index) => const SizedBox(width: 3), @@ -186,15 +191,23 @@ class SearchExampleRow extends StatelessWidget { } class PersonSearchExample extends StatelessWidget { - final SearchResult searchResult; + final GenericSearchResult searchResult; final double size; + final SelectedPeople? selectedPeople; const PersonSearchExample({ super.key, required this.searchResult, + required this.selectedPeople, this.size = 102, }); + void toggleSelection() { + selectedPeople?.toggleSelection( + (searchResult.hierarchicalSearchFilter as FaceFilter).clusterId!, + ); + } + @override Widget build(BuildContext context) { final borderRadius = 82 * (size / 102); @@ -202,124 +215,164 @@ class PersonSearchExample extends StatelessWidget { final bool isCluster = (searchResult.type() == ResultType.faces && int.tryParse(searchResult.name()) != null); - return GestureDetector( - onTap: () { - RecentSearches().add(searchResult.name()); - final genericSearchResult = searchResult as GenericSearchResult; - if (genericSearchResult.onResultTap != null) { - genericSearchResult.onResultTap!(context); - } else { - routeToPage( - context, - SearchResultPage(searchResult), - ); - } - }, - child: Column( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Stack( - clipBehavior: Clip.none, - alignment: Alignment.center, + return ListenableBuilder( + listenable: selectedPeople ?? ValueNotifier(false), + builder: (context, _) { + final bool isSelected = selectedPeople?.isPersonSelected( + (searchResult.hierarchicalSearchFilter as FaceFilter).clusterId!, + ) ?? + false; + return GestureDetector( + onTap: isSelected + ? toggleSelection + : () { + RecentSearches().add(searchResult.name()); + if (searchResult.onResultTap != null) { + searchResult.onResultTap!(context); + } else { + routeToPage( + context, + SearchResultPage(searchResult), + ); + } + }, + onLongPress: toggleSelection, + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, children: [ - ClipPath( - clipper: ShapeBorderClipper( - shape: ContinuousRectangleBorder( - borderRadius: BorderRadius.circular(borderRadius), + Stack( + clipBehavior: Clip.none, + alignment: Alignment.center, + children: [ + ClipPath( + clipper: ShapeBorderClipper( + shape: ContinuousRectangleBorder( + borderRadius: BorderRadius.circular(borderRadius), + ), + ), + child: Container( + width: size, + height: size, + decoration: BoxDecoration( + color: getEnteColorScheme(context).strokeFaint, + ), + ), ), - ), - child: Container( - width: size, - height: size, - decoration: BoxDecoration( - color: getEnteColorScheme(context).strokeFaint, - ), - ), - ), - SizedBox( - width: size - 2, - height: size - 2, - child: searchResult.previewThumbnail() != null - ? ClipPath( - clipper: ShapeBorderClipper( - shape: ContinuousRectangleBorder( - borderRadius: - BorderRadius.circular(borderRadius - 1), - ), - ), - child: searchResult.type() != ResultType.faces + Builder( + builder: (context) { + late Widget child; + + if (searchResult.previewThumbnail() != null) { + child = searchResult.type() != ResultType.faces ? ThumbnailWidget( searchResult.previewThumbnail()!, shouldShowSyncStatus: false, ) - : FaceSearchResult(searchResult), - ) - : ClipPath( - clipper: ShapeBorderClipper( - shape: ContinuousRectangleBorder( - borderRadius: BorderRadius.circular(81), + : FaceSearchResult(searchResult); + } else { + child = const NoThumbnailWidget( + addBorder: false, + ); + } + return SizedBox( + width: size - 2, + height: size - 2, + child: ClipPath( + clipper: ShapeBorderClipper( + shape: ContinuousRectangleBorder( + borderRadius: + searchResult.previewThumbnail() != null + ? BorderRadius.circular(borderRadius - 1) + : BorderRadius.circular(81), + ), + ), + child: ColorFiltered( + colorFilter: ColorFilter.mode( + Colors.black.withOpacity( + isSelected ? 0.4 : 0, + ), + BlendMode.darken, + ), + child: child, ), ), - child: const NoThumbnailWidget( - addBorder: false, - ), - ), - ), - ], - ), - isCluster - ? GestureDetector( - behavior: HitTestBehavior.translucent, - onTap: () async { - final result = await showAssignPersonAction( - context, - clusterID: searchResult.name(), - ); - if (result != null && result is (PersonEntity, EnteFile)) { - // ignore: unawaited_futures - routeToPage( - context, - PeoplePage( - person: result.$1, - searchResult: null, - ), ); - } else if (result != null && result is PersonEntity) { - // ignore: unawaited_futures - routeToPage( - context, - PeoplePage( - person: result, - searchResult: null, - ), - ); - } - }, - child: Padding( - padding: const EdgeInsets.only(top: 6, bottom: 0), - child: Text( - "Add name", - maxLines: 1, - textAlign: TextAlign.center, - overflow: TextOverflow.ellipsis, - style: getEnteTextTheme(context).small, + }, + ), + Positioned( + top: 5, + right: 5, + child: AnimatedSwitcher( + duration: const Duration(milliseconds: 200), + switchInCurve: Curves.easeOut, + switchOutCurve: Curves.easeIn, + child: isSelected + ? const Icon( + Icons.check_circle_rounded, + color: Colors.white, + size: 22, + ) + : null, ), ), - ) - : Padding( - padding: const EdgeInsets.only(top: 6, bottom: 0), - child: Text( - searchResult.name(), - maxLines: 1, - textAlign: TextAlign.center, - overflow: TextOverflow.ellipsis, - style: getEnteTextTheme(context).small, - ), - ), - ], - ), + ], + ), + isCluster + ? GestureDetector( + behavior: HitTestBehavior.translucent, + onTap: () async { + final result = await showAssignPersonAction( + context, + clusterID: searchResult.name(), + ); + if (result != null && + result is (PersonEntity, EnteFile)) { + // ignore: unawaited_futures + routeToPage( + context, + PeoplePage( + person: result.$1, + searchResult: null, + ), + ); + } else if (result != null && result is PersonEntity) { + // ignore: unawaited_futures + routeToPage( + context, + PeoplePage( + person: result, + searchResult: null, + ), + ); + } + }, + child: Padding( + padding: const EdgeInsets.only(top: 6, bottom: 0), + child: Text( + "Add name", + maxLines: 1, + textAlign: TextAlign.center, + overflow: TextOverflow.ellipsis, + style: getEnteTextTheme(context).small, + ), + ), + ) + : Padding( + padding: const EdgeInsets.only(top: 6, bottom: 0), + child: Text( + searchResult.name(), + maxLines: 1, + textAlign: TextAlign.center, + overflow: TextOverflow.ellipsis, + style: getEnteTextTheme(context).small, + ), + ), + ], + ), + ); + }, ); } } From 423a7eec37c7ca80e3aef2bbab1087d623599c15 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Mon, 19 May 2025 19:10:29 +0530 Subject: [PATCH 018/316] fix: show on this day to both ml & non-ml users --- .../widgets/memories_widget_settings.dart | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/mobile/lib/ui/settings/widgets/memories_widget_settings.dart b/mobile/lib/ui/settings/widgets/memories_widget_settings.dart index 6ab612ea03..1b8970885d 100644 --- a/mobile/lib/ui/settings/widgets/memories_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/memories_widget_settings.dart @@ -67,13 +67,13 @@ class _MemoriesWidgetSettingsState extends State { void enableMLMemories() { isYearlyMemoriesEnabled = false; isSmartMemoriesEnabled = true; - isOnThisDayMemoriesEnabled = true; + isOnThisDayMemoriesEnabled = false; } void enableNonMLMemories() { isYearlyMemoriesEnabled = true; isSmartMemoriesEnabled = false; - isOnThisDayMemoriesEnabled = false; + isOnThisDayMemoriesEnabled = true; } Future updateVariables() async { @@ -170,6 +170,29 @@ class _MemoriesWidgetSettingsState extends State { singleBorderRadius: 8, isGestureDetectorDisabled: true, ), + const SizedBox(height: 4), + MenuItemWidget( + captionedTextWidget: CaptionedTextWidget( + title: S.of(context).onThisDayMemories, + ), + leadingIconWidget: SvgPicture.asset( + "assets/icons/memories-widget-icon.svg", + color: colorScheme.textBase, + ), + menuItemColor: colorScheme.fillFaint, + trailingWidget: ToggleSwitchWidget( + value: () => isOnThisDayMemoriesEnabled!, + onChanged: () async { + setState(() { + isOnThisDayMemoriesEnabled = + !isOnThisDayMemoriesEnabled!; + }); + await updateVariables(); + }, + ), + singleBorderRadius: 8, + isGestureDetectorDisabled: true, + ), if (isMLEnabled) ...[ const SizedBox(height: 4), MenuItemWidget( @@ -194,29 +217,6 @@ class _MemoriesWidgetSettingsState extends State { singleBorderRadius: 8, isGestureDetectorDisabled: true, ), - const SizedBox(height: 4), - MenuItemWidget( - captionedTextWidget: CaptionedTextWidget( - title: S.of(context).onThisDayMemories, - ), - leadingIconWidget: SvgPicture.asset( - "assets/icons/memories-widget-icon.svg", - color: colorScheme.textBase, - ), - menuItemColor: colorScheme.fillFaint, - trailingWidget: ToggleSwitchWidget( - value: () => isOnThisDayMemoriesEnabled!, - onChanged: () async { - setState(() { - isOnThisDayMemoriesEnabled = - !isOnThisDayMemoriesEnabled!; - }); - await updateVariables(); - }, - ), - singleBorderRadius: 8, - isGestureDetectorDisabled: true, - ), ], ], ), From 10c65f13c85b5c2df7247996b69af79336aac5b6 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Mon, 19 May 2025 19:19:30 +0530 Subject: [PATCH 019/316] fix: update get total function for memory home widget --- mobile/lib/services/memory_home_widget_service.dart | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/mobile/lib/services/memory_home_widget_service.dart b/mobile/lib/services/memory_home_widget_service.dart index e6b136d523..5d4720527b 100644 --- a/mobile/lib/services/memory_home_widget_service.dart +++ b/mobile/lib/services/memory_home_widget_service.dart @@ -185,7 +185,17 @@ class MemoryHomeWidgetService { } Future>> _getMemories() async { - final memories = await memoriesCacheService.getMemories(); + final lastYearValue = await getSelectedLastYearMemories(); + final mlValue = await getSelectedMLMemories(); + final onThisDayValue = await getSelectedOnThisDayMemories(); + final isMLEnabled = flagService.hasGrantedMLConsent; + + final memories = await memoriesCacheService.getMemoriesForWidget( + onThisDay: onThisDayValue ?? !isMLEnabled, + pastYears: lastYearValue ?? !isMLEnabled, + smart: mlValue ?? isMLEnabled, + ); + if (memories.isEmpty) { return {}; } From 3d63ded84dbd379cae20606329a95bd0ec7adfee Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Mon, 19 May 2025 19:54:09 +0530 Subject: [PATCH 020/316] fix: blockers, getter function for albums hw service --- .../services/album_home_widget_service.dart | 65 +++++++++++++------ 1 file changed, 44 insertions(+), 21 deletions(-) diff --git a/mobile/lib/services/album_home_widget_service.dart b/mobile/lib/services/album_home_widget_service.dart index 0f5cfac554..ccc2a1b90f 100644 --- a/mobile/lib/services/album_home_widget_service.dart +++ b/mobile/lib/services/album_home_widget_service.dart @@ -1,8 +1,11 @@ import "package:flutter/material.dart"; import "package:fluttertoast/fluttertoast.dart"; import "package:logging/logging.dart"; +import "package:photos/db/files_db.dart"; import "package:photos/models/file/file.dart"; import "package:photos/service_locator.dart"; +import "package:photos/services/collections_service.dart"; +import "package:photos/services/favorites_service.dart"; import "package:photos/services/home_widget_service.dart"; import "package:photos/services/sync/local_sync_service.dart"; import "package:shared_preferences/shared_preferences.dart"; @@ -37,10 +40,10 @@ class AlbumHomeWidgetService { await updateAlbumsChanged(false); } - List? getSelectedAlbums() { + List? getSelectedAlbums() { final selectedAlbums = _prefs.getStringList(_selectedAlbumsHWKey); - return selectedAlbums; + return selectedAlbums?.map((e) => int.tryParse(e) ?? 0).toList(); } Future setSelectedAlbums( @@ -82,12 +85,20 @@ class AlbumHomeWidgetService { return true; } - // TODO: Check if any selected album doesn't exist - // final areAlbumShown = albumsCacheService.showAnyAlbum; - // if (!areAlbumShown) { - // _logger.warning("albums not enabled"); - // return true; - // } + final selectedAlbums = getSelectedAlbums(); + final albums = []; + for (final selectedAlbum in selectedAlbums ?? []) { + final collection = + CollectionsService.instance.getCollectionByID(selectedAlbum); + if (collection != null) { + albums.add(collection); + } + } + + if ((selectedAlbums?.isNotEmpty ?? false) && albums.isEmpty) { + _logger.warning("selected albums not found"); + return true; + } return false; } @@ -170,22 +181,34 @@ class AlbumHomeWidgetService { } Future>> _getAlbum() async { - // TODO: Get Albums from the selected album and map them into title: files format + var selectedAlbums = getSelectedAlbums(); + if (selectedAlbums == null || selectedAlbums.isEmpty) { + final favoriteId = + await FavoritesService.instance.getFavoriteCollectionID(); + if (favoriteId != null) { + selectedAlbums = [favoriteId]; + } + } - // final albums = await albumsCacheService.getAlbum(); - // if (albums.isEmpty) { - // return {}; - // } + final albums = >{}; + for (final selectedAlbum in selectedAlbums ?? []) { + final collection = + CollectionsService.instance.getCollectionByID(selectedAlbum); + if (collection != null) { + final files = + await FilesDB.instance.getAllFilesCollection(collection.id); + albums.addAll({ + collection.decryptedName ?? "Album": files, + }); + } + } - // final files = Map.fromEntries( - // albums.map((m) { - // return MapEntry(m.title, m.albums.map((e) => e.file).toList()); - // }), - // ); + if (albums.isEmpty) { + _logger.warning("No albums found"); + return {}; + } - // return files; - - return {}; + return albums; } Future _updateWidget({String? text}) async { From 138310b8f813670abb7b6aa993926d6f99c03044 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Mon, 19 May 2025 19:54:24 +0530 Subject: [PATCH 021/316] fix: update get collection by id function --- mobile/lib/ui/settings/widgets/albums_widget_settings.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart index f0f1f913b9..e68d3f754c 100644 --- a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart @@ -52,8 +52,8 @@ class _AlbumsWidgetSettingsState extends State { if (selectedAlbums != null) { for (final collectionID in selectedAlbums) { - final collection = CollectionsService.instance - .getCollectionByID(int.parse(collectionID)); + final collection = + CollectionsService.instance.getCollectionByID(collectionID); if (collection != null) { albums.add(collection); From 574eea58fc02818009fc1d8a496f193bd76040ad Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 20 May 2025 07:06:57 +0530 Subject: [PATCH 022/316] fix: add robust logic for album home widget service --- .../ios/EnteAlbumWidget/EnteAlbumWidget.swift | 8 +- mobile/lib/core/constants.dart | 4 +- .../services/album_home_widget_service.dart | 169 ++++++++++++++---- mobile/lib/services/home_widget_service.dart | 40 +++-- .../services/memory_home_widget_service.dart | 31 +++- .../services/people_home_widget_service.dart | 17 +- .../widgets/albums_widget_settings.dart | 4 +- 7 files changed, 204 insertions(+), 69 deletions(-) diff --git a/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift b/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift index 82e1aed750..3eb5cf6ed2 100644 --- a/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift +++ b/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift @@ -50,9 +50,9 @@ struct Provider: TimelineProvider { byAdding: .minute, value: minutes * offset, to: currentDate )! let imageData = - data?.string(forKey: "album_widget_" + String(randomInt)) + data?.string(forKey: "albums_widget_" + String(randomInt)) let dictionary = data?.dictionary( - forKey: "album_widget_" + String(randomInt) + "_data") + forKey: "albums_widget_" + String(randomInt) + "_data") let generatedId = dictionary?["generatedId"] as? Int let subTitle = dictionary?["subText"] as? String let title = dictionary?["title"] as? String @@ -177,9 +177,9 @@ struct EnteAlbumWidgetEntryView: View { alignment: .bottomLeading ) } - } else if let data = Data( + } else if let imgData = Data( base64Encoded: defaultBase64Image), - let uiImage = UIImage(data: data) + let uiImage = UIImage(data: imgData) { VStack(spacing: 8) { Spacer() diff --git a/mobile/lib/core/constants.dart b/mobile/lib/core/constants.dart index 9067d14b14..02cc6f60e7 100644 --- a/mobile/lib/core/constants.dart +++ b/mobile/lib/core/constants.dart @@ -71,7 +71,9 @@ const kSearchSectionLimit = 9; const maxPickAssetLimit = 50; -const iOSGroupID = "group.io.ente.frame.EnteMemoryWidget"; +const iOSGroupIDMemory = "group.io.ente.frame.EnteMemoryWidget"; +const iOSGroupIDAlbum = "group.io.ente.frame.EntePeopleWidget"; +const iOSGroupIDPeople = "group.io.ente.frame.EnteAlbumWidget"; const blackThumbnailBase64 = '/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEB' 'AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQ' diff --git a/mobile/lib/services/album_home_widget_service.dart b/mobile/lib/services/album_home_widget_service.dart index ccc2a1b90f..d26cbbb39f 100644 --- a/mobile/lib/services/album_home_widget_service.dart +++ b/mobile/lib/services/album_home_widget_service.dart @@ -1,13 +1,22 @@ +import "dart:convert"; + +import "package:crypto/crypto.dart"; import "package:flutter/material.dart"; import "package:fluttertoast/fluttertoast.dart"; import "package:logging/logging.dart"; +import "package:photos/core/constants.dart"; import "package:photos/db/files_db.dart"; +import "package:photos/models/collection/collection.dart"; +import "package:photos/models/collection/collection_items.dart"; import "package:photos/models/file/file.dart"; import "package:photos/service_locator.dart"; import "package:photos/services/collections_service.dart"; import "package:photos/services/favorites_service.dart"; import "package:photos/services/home_widget_service.dart"; import "package:photos/services/sync/local_sync_service.dart"; +import "package:photos/ui/viewer/file/file_widget.dart"; +import "package:photos/ui/viewer/gallery/collection_page.dart"; +import "package:photos/utils/navigation_util.dart"; import "package:shared_preferences/shared_preferences.dart"; import "package:synchronized/synchronized.dart"; @@ -17,8 +26,9 @@ class AlbumHomeWidgetService { AlbumHomeWidgetService._privateConstructor(); static const _selectedAlbumsHWKey = "selectedAlbumsHW"; + static const _albumsLastHashKey = "albumsLastHash"; static const _androidClass = "EnteAlbumsWidgetProvider"; - static const _iOSClass = "EnteAlbumsWidget"; + static const _iOSClass = "EnteAlbumWidget"; static final AlbumHomeWidgetService instance = AlbumHomeWidgetService._privateConstructor(); @@ -40,6 +50,16 @@ class AlbumHomeWidgetService { await updateAlbumsChanged(false); } + String? getAlbumsLastHash() { + final albumsLastHash = _prefs.getString(_albumsLastHashKey); + + return albumsLastHash; + } + + Future setAlbumsLastHash(String hash) async { + await _prefs.setString(_albumsLastHashKey, hash); + } + List? getSelectedAlbums() { final selectedAlbums = _prefs.getStringList(_selectedAlbumsHWKey); @@ -86,14 +106,7 @@ class AlbumHomeWidgetService { } final selectedAlbums = getSelectedAlbums(); - final albums = []; - for (final selectedAlbum in selectedAlbums ?? []) { - final collection = - CollectionsService.instance.getCollectionByID(selectedAlbum); - if (collection != null) { - albums.add(collection); - } - } + final albums = getAlbums(selectedAlbums ?? []); if ((selectedAlbums?.isNotEmpty ?? false) && albums.isEmpty) { _logger.warning("selected albums not found"); @@ -111,6 +124,7 @@ class AlbumHomeWidgetService { } await _albumsForceRefreshLock.synchronized(() async { + HomeWidgetService.instance.setAppGroupID(iOSGroupIDAlbum); final result = await hasAnyBlockers(); if (result) { return; @@ -151,6 +165,7 @@ class AlbumHomeWidgetService { } Future _checkIfTotalEmpty() async { + HomeWidgetService.instance.setAppGroupID(iOSGroupIDAlbum); final total = await _getTotal(); return total == 0 || total == null; } @@ -159,12 +174,21 @@ class AlbumHomeWidgetService { final albumsChanged = _prefs.getBool(albumsChangedKey); if (albumsChanged == true) return true; - // TODO: Get Album data i.e. List of Ente Files - final cachedAlbum = []; // await albumsCacheService.getCachedAlbum(); + final selectedAlbums = await getSelectedAlbumsIDs(); + if (selectedAlbums.isEmpty) { + _logger.warning("No selected albums"); + return false; + } - final forceFetchNewAlbum = - isTotalEmpty && (cachedAlbum.isNotEmpty ?? false); - return forceFetchNewAlbum; + final hash = getHash(selectedAlbums); + final lastHash = getAlbumsLastHash(); + + if (hash == lastHash) { + _logger.warning("No changes detected"); + return false; + } + + return true; } Future checkPendingAlbumsSync() async { @@ -177,21 +201,14 @@ class AlbumHomeWidgetService { _logger.info(">>> Albums already synced"); return; } - await HomeWidgetService.instance.initHomeWidget(); + await initAlbumsHW(forceFetchNewAlbum); } Future>> _getAlbum() async { - var selectedAlbums = getSelectedAlbums(); - if (selectedAlbums == null || selectedAlbums.isEmpty) { - final favoriteId = - await FavoritesService.instance.getFavoriteCollectionID(); - if (favoriteId != null) { - selectedAlbums = [favoriteId]; - } - } + final selectedAlbums = await getSelectedAlbumsIDs(); final albums = >{}; - for (final selectedAlbum in selectedAlbums ?? []) { + for (final selectedAlbum in selectedAlbums) { final collection = CollectionsService.instance.getCollectionByID(selectedAlbum); if (collection != null) { @@ -218,7 +235,7 @@ class AlbumHomeWidgetService { ); if (flagService.internalUser) { await Fluttertoast.showToast( - msg: "[i] ${text ?? "AlbumsHomeWidget updated"}", + msg: "[i][al] ${text ?? "AlbumsHomeWidget updated"}", toastLength: Toast.LENGTH_SHORT, gravity: ToastGravity.BOTTOM, timeInSecForIosWeb: 1, @@ -230,15 +247,56 @@ class AlbumHomeWidgetService { _logger.info(">>> Home Widget updated, type: ${text ?? "normal"}"); } + String getHash(List selectedAlbums) { + final albums = {}; + String currentDates = ""; + for (final selectedAlbum in selectedAlbums) { + final collection = + CollectionsService.instance.getCollectionByID(selectedAlbum); + if (collection != null) { + albums.add(collection); + currentDates += "${collection.updationTime.toString()}_"; + } + } + + final hash = + md5.convert(utf8.encode(currentDates)).toString().substring(0, 10); + return hash; + } + + List getAlbums(List selectedAlbums) { + final albums = []; + for (final selectedAlbum in selectedAlbums) { + final collection = + CollectionsService.instance.getCollectionByID(selectedAlbum); + if (collection != null) { + albums.add(collection); + } + } + + return albums; + } + + Future> getSelectedAlbumsIDs() async { + final selectedAlbums = getSelectedAlbums(); + if (selectedAlbums == null || selectedAlbums.isEmpty) { + final favoriteId = + await FavoritesService.instance.getFavoriteCollectionID(); + if (favoriteId != null) { + return [favoriteId]; + } + } + return selectedAlbums ?? []; + } + Future albumsChanged() async { - // TODO: Get Albums and checks if size is changed - final cachedAlbum = []; // await albumsCacheService.getCachedAlbum(); - final currentTotal = cachedAlbum.length ?? 0; + final lastHash = getAlbumsLastHash(); - final int total = await _getTotal() ?? 0; + final selectedAlbums = await getSelectedAlbumsIDs(); + final hash = getHash(selectedAlbums); - if (total == currentTotal && total == 0) { - _logger.info(">>> Album not changed, doing nothing"); + if (selectedAlbums.isEmpty || hash == lastHash) { + _logger.info(">>> No changes detected"); return; } @@ -248,11 +306,12 @@ class AlbumHomeWidgetService { } Future _getTotal() async { - return HomeWidgetService.instance.getData(totalAlbums); + return HomeWidgetService.instance + .getData(totalAlbums, iOSGroupIDAlbum); } - Future _setTotal(int? total) async => - await HomeWidgetService.instance.setData(totalAlbums, total); + Future _setTotal(int? total) async => await HomeWidgetService.instance + .setData(totalAlbums, total, iOSGroupIDAlbum); Future _lockAndLoadAlbum() async { final files = await _getAlbum(); @@ -271,7 +330,7 @@ class AlbumHomeWidgetService { for (final i in files.entries) { for (final file in i.value) { final value = await HomeWidgetService.instance - .renderFile(file, "albums_widget_$index", i.key) + .renderFile(file, "albums_widget_$index", i.key, iOSGroupIDAlbum) .catchError( (e, sT) { _logger.severe("Error rendering widget", e, sT); @@ -284,13 +343,13 @@ class AlbumHomeWidgetService { if (result) { return; } - await _setTotal(index); if (index == 1) { await _updateWidget( text: "First albums fetched. updating widget", ); } index++; + await _setTotal(index); if (index >= 50) { _logger.warning(">>> Max albums limit reached"); @@ -304,6 +363,11 @@ class AlbumHomeWidgetService { } } + final selectedAlbums = await getSelectedAlbumsIDs(); + + final hash = getHash(selectedAlbums); + await setAlbumsLastHash(hash); + if (index == 0) { return; } @@ -313,10 +377,39 @@ class AlbumHomeWidgetService { ); } - Future onLaunchFromWidget(int generatedId, BuildContext context) async { + Future onLaunchFromWidget( + int generatedId, + int collectionID, + BuildContext context, + ) async { _hasSyncedAlbums = true; await _albumsSync(); - // TODO: Open albums page for this album + final c = CollectionsService.instance.getCollectionByID(collectionID); + if (c == null) { + _logger.warning("onLaunchFromWidget: collection is null"); + return; + } + + final thumbnail = await CollectionsService.instance.getCover(c); + await routeToPage( + context, + CollectionPage( + CollectionWithThumbnail(c, thumbnail), + ), + ); + final file = await FilesDB.instance.getFile(generatedId); + if (file == null) { + _logger.warning("onLaunchFromWidget: file is null"); + return; + } + // open generated id file preview + await routeToPage( + context, + FileWidget( + file, + tagPrefix: "albumwidget", + ), + ); } } diff --git a/mobile/lib/services/home_widget_service.dart b/mobile/lib/services/home_widget_service.dart index 7934a2df35..478e461846 100644 --- a/mobile/lib/services/home_widget_service.dart +++ b/mobile/lib/services/home_widget_service.dart @@ -15,6 +15,7 @@ import "package:photos/services/people_home_widget_service.dart"; import "package:photos/services/smart_memories_service.dart"; import "package:photos/utils/thumbnail_util.dart"; import "package:shared_preferences/shared_preferences.dart"; +import "package:synchronized/synchronized.dart"; class HomeWidgetService { final Logger _logger = Logger((HomeWidgetService).toString()); @@ -23,9 +24,9 @@ class HomeWidgetService { static final HomeWidgetService instance = HomeWidgetService._privateConstructor(); + final _groupIDLock = Lock(); init(SharedPreferences prefs) { - setAppGroupID(iOSGroupID); MemoryHomeWidgetService.instance.init(prefs); PeopleHomeWidgetService.instance.init(prefs); AlbumHomeWidgetService.instance.init(prefs); @@ -53,20 +54,29 @@ class HomeWidgetService { ); } - Future getData(String key) async => - await hw.HomeWidget.getWidgetData(key); + Future getData(String key, String iOSGroupID) async { + return await _groupIDLock.synchronized(() { + setAppGroupID(iOSGroupID); + return hw.HomeWidget.getWidgetData(key); + }); + } - Future setData(String key, T? data) async => - await hw.HomeWidget.saveWidgetData(key, data); + Future setData(String key, T? data, String iOSGroupID) async { + return await _groupIDLock.synchronized(() { + setAppGroupID(iOSGroupID); + return hw.HomeWidget.saveWidgetData(key, data); + }); + } Future renderFile( EnteFile randomFile, String key, String title, + String iOSGroupID, ) async { const size = 512.0; - final result = await _captureFile(randomFile, key, title); + final result = await _captureFile(randomFile, key, title, iOSGroupID); if (!result) { _logger.warning("can't capture file ${randomFile.displayName}"); return null; @@ -87,6 +97,7 @@ class HomeWidgetService { EnteFile ogFile, String key, String title, + String iOSGroupID, ) async { try { final thumbnail = await getThumbnail(ogFile); @@ -110,7 +121,7 @@ class HomeWidgetService { } await file.writeAsBytes(thumbnail!); - await setData(key, path); + await setData(key, path, iOSGroupID); final subText = await SmartMemoriesService.getDateFormattedLocale( creationTime: ogFile.creationTime!, @@ -140,10 +151,12 @@ class HomeWidgetService { } Future clearWidget(bool autoLogout) async { - if (autoLogout) { - setAppGroupID(iOSGroupID); - } + setAppGroupID(iOSGroupIDMemory); await MemoryHomeWidgetService.instance.clearWidget(); + setAppGroupID(iOSGroupIDAlbum); + await AlbumHomeWidgetService.instance.clearWidget(); + setAppGroupID(iOSGroupIDPeople); + await PeopleHomeWidgetService.instance.clearWidget(); } Future onLaunchFromWidget(Uri? uri, BuildContext context) async { @@ -173,8 +186,15 @@ class HomeWidgetService { ); } else if (uri.scheme == "albumwidget") { _logger.info("onLaunchFromWidget: redirecting to album widget"); + final collectionID = + int.tryParse(uri.queryParameters["collectionID"] ?? ""); + if (collectionID == null) { + _logger.warning("onLaunchFromWidget: collectionID is null"); + return; + } await AlbumHomeWidgetService.instance.onLaunchFromWidget( generatedId, + collectionID, context, ); } else { diff --git a/mobile/lib/services/memory_home_widget_service.dart b/mobile/lib/services/memory_home_widget_service.dart index 5d4720527b..60868dcafa 100644 --- a/mobile/lib/services/memory_home_widget_service.dart +++ b/mobile/lib/services/memory_home_widget_service.dart @@ -1,7 +1,9 @@ import "package:flutter/material.dart"; import "package:fluttertoast/fluttertoast.dart"; import "package:logging/logging.dart"; +import "package:photos/core/constants.dart"; import "package:photos/models/file/file.dart"; +import "package:photos/models/memories/smart_memory.dart"; import "package:photos/service_locator.dart"; import "package:photos/services/home_widget_service.dart"; import "package:photos/services/sync/local_sync_service.dart"; @@ -164,10 +166,9 @@ class MemoryHomeWidgetService { final memoryChanged = _prefs.getBool(memoryChangedKey); if (memoryChanged == true) return true; - final cachedMemories = await memoriesCacheService.getCachedMemories(); + final cachedMemories = await _getMemoriesForWidget(); - final forceFetchNewMemories = - isTotalEmpty && (cachedMemories?.isNotEmpty ?? false); + final forceFetchNewMemories = isTotalEmpty && cachedMemories.isNotEmpty; return forceFetchNewMemories; } @@ -184,7 +185,7 @@ class MemoryHomeWidgetService { await HomeWidgetService.instance.initHomeWidget(); } - Future>> _getMemories() async { + Future> _getMemoriesForWidget() async { final lastYearValue = await getSelectedLastYearMemories(); final mlValue = await getSelectedMLMemories(); final onThisDayValue = await getSelectedOnThisDayMemories(); @@ -196,6 +197,12 @@ class MemoryHomeWidgetService { smart: mlValue ?? isMLEnabled, ); + return memories; + } + + Future>> _getMemories() async { + final memories = await _getMemoriesForWidget(); + if (memories.isEmpty) { return {}; } @@ -245,11 +252,12 @@ class MemoryHomeWidgetService { } Future _getTotal() async { - return HomeWidgetService.instance.getData(totalMemories); + return HomeWidgetService.instance + .getData(totalMemories, iOSGroupIDMemory); } - Future _setTotal(int? total) async => - await HomeWidgetService.instance.setData(totalMemories, total); + Future _setTotal(int? total) async => await HomeWidgetService.instance + .setData(totalMemories, total, iOSGroupIDMemory); Future _lockAndLoadMemories() async { final files = await _getMemories(); @@ -268,7 +276,12 @@ class MemoryHomeWidgetService { for (final i in files.entries) { for (final file in i.value) { final value = await HomeWidgetService.instance - .renderFile(file, "memory_widget_$index", i.key) + .renderFile( + file, + "memory_widget_$index", + i.key, + iOSGroupIDMemory, + ) .catchError( (e, sT) { _logger.severe("Error rendering widget", e, sT); @@ -281,13 +294,13 @@ class MemoryHomeWidgetService { if (result) { return; } - await _setTotal(index); if (index == 1) { await _updateWidget( text: "First memory fetched. updating widget", ); } index++; + await _setTotal(index); if (index >= 50) { _logger.warning(">>> Max memory limit reached"); diff --git a/mobile/lib/services/people_home_widget_service.dart b/mobile/lib/services/people_home_widget_service.dart index 98c4115ac4..ab675aafec 100644 --- a/mobile/lib/services/people_home_widget_service.dart +++ b/mobile/lib/services/people_home_widget_service.dart @@ -1,6 +1,7 @@ import "package:flutter/material.dart"; import "package:fluttertoast/fluttertoast.dart"; import "package:logging/logging.dart"; +import "package:photos/core/constants.dart"; import "package:photos/models/file/file.dart"; import "package:photos/service_locator.dart"; import "package:photos/services/home_widget_service.dart"; @@ -170,7 +171,7 @@ class PeopleHomeWidgetService { } Future>> _getPeople() async { - // TODO: Get People data i.e. List of Ente Files + final peopleIds = getSelectedPeople(); final people = []; // await peopleCacheService.getPeople(); if (people.isEmpty) { return {}; @@ -222,11 +223,12 @@ class PeopleHomeWidgetService { } Future _getTotal() async { - return HomeWidgetService.instance.getData(totalPeople); + return HomeWidgetService.instance + .getData(totalPeople, iOSGroupIDPeople); } - Future _setTotal(int? total) async => - await HomeWidgetService.instance.setData(totalPeople, total); + Future _setTotal(int? total) async => await HomeWidgetService.instance + .setData(totalPeople, total, iOSGroupIDPeople); Future _lockAndLoadPeople() async { final files = await _getPeople(); @@ -245,7 +247,12 @@ class PeopleHomeWidgetService { for (final i in files.entries) { for (final file in i.value) { final value = await HomeWidgetService.instance - .renderFile(file, "people_widget_$index", i.key) + .renderFile( + file, + "people_widget_$index", + i.key, + iOSGroupIDPeople, + ) .catchError( (e, sT) { _logger.severe("Error rendering widget", e, sT); diff --git a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart index e68d3f754c..121267207c 100644 --- a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart @@ -104,9 +104,9 @@ class _AlbumsWidgetSettingsState extends State { _albums.map((e) => e.id.toString()).toList(); await AlbumHomeWidgetService.instance .setSelectedAlbums(albums); - // TODO: Run sync - // await AlbumHomeWidgetService.instance.updateWidget(); Navigator.pop(context); + await AlbumHomeWidgetService.instance + .checkPendingAlbumsSync(); } : null, isDisabled: _albums.isEmpty, From 91447cdc777d027419855036e33d9b3912545bdb Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 21 May 2025 01:11:40 +0530 Subject: [PATCH 023/316] fix: widgets code --- .../ios/EnteAlbumWidget/EnteAlbumWidget.swift | 2 +- .../ios/EnteAlbumWidgetExtension.entitlements | 2 +- .../EntePeopleWidget/EntePeopleWidget.swift | 2 +- .../EntePeopleWidgetExtension.entitlements | 2 +- mobile/ios/Runner/Runner.entitlements | 2 - mobile/lib/core/constants.dart | 2 - .../services/album_home_widget_service.dart | 29 ++-- mobile/lib/services/home_widget_service.dart | 37 ++--- .../services/memory_home_widget_service.dart | 32 ++--- .../services/people_home_widget_service.dart | 133 +++++++++++------- .../widgets/memories_widget_settings.dart | 2 + .../widgets/people_widget_settings.dart | 4 +- mobile/lib/ui/tabs/home_widget.dart | 6 + .../result/people_section_all_page.dart | 2 + .../ui/viewer/search_tab/people_section.dart | 10 +- 15 files changed, 143 insertions(+), 124 deletions(-) diff --git a/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift b/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift index 3eb5cf6ed2..bb5e3ac14d 100644 --- a/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift +++ b/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift @@ -10,7 +10,7 @@ import SwiftUI import UIKit import WidgetKit -private let widgetGroupId = "group.io.ente.frame.EnteAlbumWidget" +private let widgetGroupId = "group.io.ente.frame.EnteMemoryWidget" struct Provider: TimelineProvider { let minutes = 15 diff --git a/mobile/ios/EnteAlbumWidgetExtension.entitlements b/mobile/ios/EnteAlbumWidgetExtension.entitlements index 97b82d232c..866b9602db 100644 --- a/mobile/ios/EnteAlbumWidgetExtension.entitlements +++ b/mobile/ios/EnteAlbumWidgetExtension.entitlements @@ -4,7 +4,7 @@ com.apple.security.application-groups - group.io.ente.frame.EnteAlbumWidget + group.io.ente.frame.EnteMemoryWidget diff --git a/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift b/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift index 857e9cf8df..4f4b24e9f9 100644 --- a/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift +++ b/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift @@ -10,7 +10,7 @@ import SwiftUI import UIKit import WidgetKit -private let widgetGroupId = "group.io.ente.frame.EntePeopleWidget" +private let widgetGroupId = "group.io.ente.frame.EnteMemoryWidget" struct Provider: TimelineProvider { let minutes = 15 diff --git a/mobile/ios/EntePeopleWidgetExtension.entitlements b/mobile/ios/EntePeopleWidgetExtension.entitlements index 2d30987b9a..866b9602db 100644 --- a/mobile/ios/EntePeopleWidgetExtension.entitlements +++ b/mobile/ios/EntePeopleWidgetExtension.entitlements @@ -4,7 +4,7 @@ com.apple.security.application-groups - group.io.ente.frame.EntePeopleWidget + group.io.ente.frame.EnteMemoryWidget diff --git a/mobile/ios/Runner/Runner.entitlements b/mobile/ios/Runner/Runner.entitlements index 16cbc1a46e..729e142a0a 100644 --- a/mobile/ios/Runner/Runner.entitlements +++ b/mobile/ios/Runner/Runner.entitlements @@ -11,9 +11,7 @@ com.apple.security.application-groups - group.io.ente.frame.EnteAlbumWidget group.io.ente.frame.EnteMemoryWidget - group.io.ente.frame.EntePeopleWidget diff --git a/mobile/lib/core/constants.dart b/mobile/lib/core/constants.dart index 02cc6f60e7..24f8fade5b 100644 --- a/mobile/lib/core/constants.dart +++ b/mobile/lib/core/constants.dart @@ -72,8 +72,6 @@ const kSearchSectionLimit = 9; const maxPickAssetLimit = 50; const iOSGroupIDMemory = "group.io.ente.frame.EnteMemoryWidget"; -const iOSGroupIDAlbum = "group.io.ente.frame.EntePeopleWidget"; -const iOSGroupIDPeople = "group.io.ente.frame.EnteAlbumWidget"; const blackThumbnailBase64 = '/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEB' 'AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQ' diff --git a/mobile/lib/services/album_home_widget_service.dart b/mobile/lib/services/album_home_widget_service.dart index d26cbbb39f..0a52b6c912 100644 --- a/mobile/lib/services/album_home_widget_service.dart +++ b/mobile/lib/services/album_home_widget_service.dart @@ -4,7 +4,6 @@ import "package:crypto/crypto.dart"; import "package:flutter/material.dart"; import "package:fluttertoast/fluttertoast.dart"; import "package:logging/logging.dart"; -import "package:photos/core/constants.dart"; import "package:photos/db/files_db.dart"; import "package:photos/models/collection/collection.dart"; import "package:photos/models/collection/collection_items.dart"; @@ -124,7 +123,6 @@ class AlbumHomeWidgetService { } await _albumsForceRefreshLock.synchronized(() async { - HomeWidgetService.instance.setAppGroupID(iOSGroupIDAlbum); final result = await hasAnyBlockers(); if (result) { return; @@ -165,7 +163,6 @@ class AlbumHomeWidgetService { } Future _checkIfTotalEmpty() async { - HomeWidgetService.instance.setAppGroupID(iOSGroupIDAlbum); final total = await _getTotal(); return total == 0 || total == null; } @@ -191,8 +188,8 @@ class AlbumHomeWidgetService { return true; } - Future checkPendingAlbumsSync() async { - await Future.delayed(const Duration(seconds: 5), () {}); + Future checkPendingAlbumsSync({bool addDelay = true}) async { + if (addDelay) await Future.delayed(const Duration(seconds: 5), () {}); final isTotalEmpty = await _checkIfTotalEmpty(); final forceFetchNewAlbum = await getForceFetchCondition(isTotalEmpty); @@ -204,10 +201,10 @@ class AlbumHomeWidgetService { await initAlbumsHW(forceFetchNewAlbum); } - Future>> _getAlbum() async { + Future)>> _getAlbum() async { final selectedAlbums = await getSelectedAlbumsIDs(); - final albums = >{}; + final albums = )>{}; for (final selectedAlbum in selectedAlbums) { final collection = CollectionsService.instance.getCollectionByID(selectedAlbum); @@ -215,7 +212,7 @@ class AlbumHomeWidgetService { final files = await FilesDB.instance.getAllFilesCollection(collection.id); albums.addAll({ - collection.decryptedName ?? "Album": files, + collection.id: (collection.decryptedName ?? "Album", files), }); } } @@ -306,12 +303,11 @@ class AlbumHomeWidgetService { } Future _getTotal() async { - return HomeWidgetService.instance - .getData(totalAlbums, iOSGroupIDAlbum); + return HomeWidgetService.instance.getData(totalAlbums); } - Future _setTotal(int? total) async => await HomeWidgetService.instance - .setData(totalAlbums, total, iOSGroupIDAlbum); + Future _setTotal(int? total) async => + await HomeWidgetService.instance.setData(totalAlbums, total); Future _lockAndLoadAlbum() async { final files = await _getAlbum(); @@ -328,9 +324,14 @@ class AlbumHomeWidgetService { int index = 0; for (final i in files.entries) { - for (final file in i.value) { + for (final file in i.value.$2) { final value = await HomeWidgetService.instance - .renderFile(file, "albums_widget_$index", i.key, iOSGroupIDAlbum) + .renderFile( + file, + "albums_widget_$index", + i.value.$1, + i.key.toString(), + ) .catchError( (e, sT) { _logger.severe("Error rendering widget", e, sT); diff --git a/mobile/lib/services/home_widget_service.dart b/mobile/lib/services/home_widget_service.dart index 478e461846..58ea27de8c 100644 --- a/mobile/lib/services/home_widget_service.dart +++ b/mobile/lib/services/home_widget_service.dart @@ -15,7 +15,6 @@ import "package:photos/services/people_home_widget_service.dart"; import "package:photos/services/smart_memories_service.dart"; import "package:photos/utils/thumbnail_util.dart"; import "package:shared_preferences/shared_preferences.dart"; -import "package:synchronized/synchronized.dart"; class HomeWidgetService { final Logger _logger = Logger((HomeWidgetService).toString()); @@ -24,9 +23,9 @@ class HomeWidgetService { static final HomeWidgetService instance = HomeWidgetService._privateConstructor(); - final _groupIDLock = Lock(); init(SharedPreferences prefs) { + setAppGroupID(iOSGroupIDMemory); MemoryHomeWidgetService.instance.init(prefs); PeopleHomeWidgetService.instance.init(prefs); AlbumHomeWidgetService.instance.init(prefs); @@ -54,29 +53,23 @@ class HomeWidgetService { ); } - Future getData(String key, String iOSGroupID) async { - return await _groupIDLock.synchronized(() { - setAppGroupID(iOSGroupID); - return hw.HomeWidget.getWidgetData(key); - }); + Future getData(String key) async { + return hw.HomeWidget.getWidgetData(key); } - Future setData(String key, T? data, String iOSGroupID) async { - return await _groupIDLock.synchronized(() { - setAppGroupID(iOSGroupID); - return hw.HomeWidget.saveWidgetData(key, data); - }); + Future setData(String key, T? data) async { + return hw.HomeWidget.saveWidgetData(key, data); } Future renderFile( EnteFile randomFile, String key, String title, - String iOSGroupID, + String? mainKey, ) async { const size = 512.0; - final result = await _captureFile(randomFile, key, title, iOSGroupID); + final result = await _captureFile(randomFile, key, title, mainKey); if (!result) { _logger.warning("can't capture file ${randomFile.displayName}"); return null; @@ -97,7 +90,7 @@ class HomeWidgetService { EnteFile ogFile, String key, String title, - String iOSGroupID, + String? mainKey, ) async { try { final thumbnail = await getThumbnail(ogFile); @@ -108,7 +101,7 @@ class HomeWidgetService { if (Platform.isIOS) { final PathProviderFoundation provider = PathProviderFoundation(); directory = await provider.getContainerPath( - appGroupIdentifier: iOSGroupID, + appGroupIdentifier: iOSGroupIDMemory, ); } else { directory = (await getApplicationSupportDirectory()).path; @@ -121,7 +114,7 @@ class HomeWidgetService { } await file.writeAsBytes(thumbnail!); - await setData(key, path, iOSGroupID); + await setData(key, path); final subText = await SmartMemoriesService.getDateFormattedLocale( creationTime: ogFile.creationTime!, @@ -131,6 +124,7 @@ class HomeWidgetService { "title": title, "subText": subText, "generatedId": ogFile.generatedID!, + if (mainKey != null) "mainKey": mainKey, }; if (Platform.isIOS) { await hw.HomeWidget.saveWidgetData>( @@ -151,11 +145,9 @@ class HomeWidgetService { } Future clearWidget(bool autoLogout) async { - setAppGroupID(iOSGroupIDMemory); + if (autoLogout) setAppGroupID(iOSGroupIDMemory); await MemoryHomeWidgetService.instance.clearWidget(); - setAppGroupID(iOSGroupIDAlbum); await AlbumHomeWidgetService.instance.clearWidget(); - setAppGroupID(iOSGroupIDPeople); await PeopleHomeWidgetService.instance.clearWidget(); } @@ -186,10 +178,9 @@ class HomeWidgetService { ); } else if (uri.scheme == "albumwidget") { _logger.info("onLaunchFromWidget: redirecting to album widget"); - final collectionID = - int.tryParse(uri.queryParameters["collectionID"] ?? ""); + final collectionID = int.tryParse(uri.queryParameters["mainKey"] ?? ""); if (collectionID == null) { - _logger.warning("onLaunchFromWidget: collectionID is null"); + _logger.warning("onLaunchFromWidget: mainKey is null"); return; } await AlbumHomeWidgetService.instance.onLaunchFromWidget( diff --git a/mobile/lib/services/memory_home_widget_service.dart b/mobile/lib/services/memory_home_widget_service.dart index 60868dcafa..0976506f91 100644 --- a/mobile/lib/services/memory_home_widget_service.dart +++ b/mobile/lib/services/memory_home_widget_service.dart @@ -1,7 +1,6 @@ import "package:flutter/material.dart"; import "package:fluttertoast/fluttertoast.dart"; import "package:logging/logging.dart"; -import "package:photos/core/constants.dart"; import "package:photos/models/file/file.dart"; import "package:photos/models/memories/smart_memory.dart"; import "package:photos/service_locator.dart"; @@ -163,7 +162,7 @@ class MemoryHomeWidgetService { } Future getForceFetchCondition(bool isTotalEmpty) async { - final memoryChanged = _prefs.getBool(memoryChangedKey); + final memoryChanged = _prefs.getBool(memoryChangedKey) ?? true; if (memoryChanged == true) return true; final cachedMemories = await _getMemoriesForWidget(); @@ -172,8 +171,8 @@ class MemoryHomeWidgetService { return forceFetchNewMemories; } - Future checkPendingMemorySync() async { - await Future.delayed(const Duration(seconds: 5), () {}); + Future checkPendingMemorySync({bool addDelay = true}) async { + if (addDelay) await Future.delayed(const Duration(seconds: 5), () {}); final isTotalEmpty = await _checkIfTotalEmpty(); final forceFetchNewMemories = await getForceFetchCondition(isTotalEmpty); @@ -182,7 +181,7 @@ class MemoryHomeWidgetService { _logger.info(">>> Memory already synced"); return; } - await HomeWidgetService.instance.initHomeWidget(); + await MemoryHomeWidgetService.instance.initMemoryHW(null); } Future> _getMemoriesForWidget() async { @@ -236,28 +235,28 @@ class MemoryHomeWidgetService { } Future memoryChanged() async { - final cachedMemories = await memoriesCacheService.getCachedMemories(); - final currentTotal = cachedMemories?.length ?? 0; + await updateMemoryChanged(true); + final cachedMemories = await _getMemoriesForWidget(); + final currentTotal = cachedMemories.length; final int total = await _getTotal() ?? 0; if (total == currentTotal && total == 0) { - _logger.info(">>> Memories not changed, doing nothing"); + await updateMemoryChanged(false); + _logger.info(">>> Memories empty, doing nothing"); return; } _logger.info(">>> Memories changed, updating widget"); - await updateMemoryChanged(true); await initMemoryHW(true); } Future _getTotal() async { - return HomeWidgetService.instance - .getData(totalMemories, iOSGroupIDMemory); + return HomeWidgetService.instance.getData(totalMemories); } - Future _setTotal(int? total) async => await HomeWidgetService.instance - .setData(totalMemories, total, iOSGroupIDMemory); + Future _setTotal(int? total) async => + await HomeWidgetService.instance.setData(totalMemories, total); Future _lockAndLoadMemories() async { final files = await _getMemories(); @@ -276,12 +275,7 @@ class MemoryHomeWidgetService { for (final i in files.entries) { for (final file in i.value) { final value = await HomeWidgetService.instance - .renderFile( - file, - "memory_widget_$index", - i.key, - iOSGroupIDMemory, - ) + .renderFile(file, "memory_widget_$index", i.key, null) .catchError( (e, sT) { _logger.severe("Error rendering widget", e, sT); diff --git a/mobile/lib/services/people_home_widget_service.dart b/mobile/lib/services/people_home_widget_service.dart index ab675aafec..c66ad3a52d 100644 --- a/mobile/lib/services/people_home_widget_service.dart +++ b/mobile/lib/services/people_home_widget_service.dart @@ -1,11 +1,15 @@ import "package:flutter/material.dart"; import "package:fluttertoast/fluttertoast.dart"; import "package:logging/logging.dart"; -import "package:photos/core/constants.dart"; +import "package:photos/db/files_db.dart"; import "package:photos/models/file/file.dart"; import "package:photos/service_locator.dart"; import "package:photos/services/home_widget_service.dart"; +import "package:photos/services/machine_learning/face_ml/person/person_service.dart"; +import "package:photos/services/search_service.dart"; import "package:photos/services/sync/local_sync_service.dart"; +import "package:photos/ui/viewer/file/file_widget.dart"; +import "package:photos/utils/navigation_util.dart"; import "package:shared_preferences/shared_preferences.dart"; import "package:synchronized/synchronized.dart"; @@ -40,14 +44,25 @@ class PeopleHomeWidgetService { List? getSelectedPeople() { final selectedAlbums = _prefs.getStringList(_selectedPeopleHWKey); - return selectedAlbums; } Future setSelectedPeople( List selectedAlbums, ) async { + final oldValue = getSelectedPeople(); await _prefs.setStringList(_selectedPeopleHWKey, selectedAlbums); + if (oldValue != null) { + final set1 = oldValue.toSet(); + final set2 = selectedAlbums.toSet(); + + if (set1.containsAll(set2) && set2.containsAll(set1)) { + _logger.info("People not changed, doing nothing"); + return; + } + } + _logger.info("People changed, updating widget"); + await updatePeopleChanged(true); } Future countHomeWidgets() async { @@ -83,12 +98,26 @@ class PeopleHomeWidgetService { return true; } - // TODO: Check if either people are empty or selected people don't exist - // final arePeopleShown = peopleCacheService.showAnyPeople; - // if (!arePeopleShown) { - // _logger.warning("people not enabled"); - // return true; - // } + if (!flagService.hasGrantedMLConsent) { + _logger.warning("ML consent not granted"); + return true; + } + + final peopleIds = getSelectedPeople(); + try { + for (final id in peopleIds ?? []) { + final person = await PersonService.instance.getPerson(id); + if (person == null) { + _logger.warning("Person not found for id: $id"); + return true; + } + } + } catch (e) { + _logger.warning("Error looking people:", e); + return true; + } + + // TODO: If peopleIds are null then check if SearchFilter contains atleast one return false; } @@ -147,18 +176,11 @@ class PeopleHomeWidgetService { Future getForceFetchCondition(bool isTotalEmpty) async { final peopleChanged = _prefs.getBool(peopleChangedKey); - if (peopleChanged == true) return true; - - // - final cachedPeople = []; //await peopleCacheService.getCachedPeople(); - - final forceFetchNewPeople = - isTotalEmpty && (cachedPeople.isNotEmpty ?? false); - return forceFetchNewPeople; + return peopleChanged ?? true; } - Future checkPendingPeopleSync() async { - await Future.delayed(const Duration(seconds: 5), () {}); + Future checkPendingPeopleSync({bool addDelay = true}) async { + if (addDelay) await Future.delayed(const Duration(seconds: 5), () {}); final isTotalEmpty = await _checkIfTotalEmpty(); final forceFetchNewPeople = await getForceFetchCondition(isTotalEmpty); @@ -170,20 +192,24 @@ class PeopleHomeWidgetService { await HomeWidgetService.instance.initHomeWidget(); } - Future>> _getPeople() async { + Future)>> _getPeople() async { final peopleIds = getSelectedPeople(); - final people = []; // await peopleCacheService.getPeople(); - if (people.isEmpty) { - return {}; + final Map)> files = {}; + for (final id in peopleIds ?? []) { + final person = await PersonService.instance.getPerson(id); + if (person == null) { + _logger.warning("Person not found for id: $id"); + continue; + } + final clusterFiles = + await SearchService.instance.getClusterFilesForPersonID(id); + files[id] = ( + person.data.name, + clusterFiles.entries.expand((e) => e.value).toList() + ); } - final files = Map.fromEntries( - people.map((m) { - return MapEntry(m.title, m.people.map((e) => e.file).toList()); - }), - ); - - return files as Map>; + return files; } Future _updateWidget({String? text}) async { @@ -193,7 +219,7 @@ class PeopleHomeWidgetService { ); if (flagService.internalUser) { await Fluttertoast.showToast( - msg: "[i] ${text ?? "PeopleHomeWidget updated"}", + msg: "[i][pe] ${text ?? "PeopleHomeWidget updated"}", toastLength: Toast.LENGTH_SHORT, gravity: ToastGravity.BOTTOM, timeInSecForIosWeb: 1, @@ -205,30 +231,12 @@ class PeopleHomeWidgetService { _logger.info(">>> Home Widget updated, type: ${text ?? "normal"}"); } - Future peopleChanged() async { - // TODO: Get list of cached people - final cachedPeople = []; // await peopleCacheService.getCachedPeople(); - final currentTotal = cachedPeople.length ?? 0; - - final int total = await _getTotal() ?? 0; - - if (total == currentTotal && total == 0) { - _logger.info(">>> People not changed, doing nothing"); - return; - } - - _logger.info(">>> People changed, updating widget"); - await updatePeopleChanged(true); - await initPeopleHW(true); - } - Future _getTotal() async { - return HomeWidgetService.instance - .getData(totalPeople, iOSGroupIDPeople); + return HomeWidgetService.instance.getData(totalPeople); } - Future _setTotal(int? total) async => await HomeWidgetService.instance - .setData(totalPeople, total, iOSGroupIDPeople); + Future _setTotal(int? total) async => + await HomeWidgetService.instance.setData(totalPeople, total); Future _lockAndLoadPeople() async { final files = await _getPeople(); @@ -245,13 +253,13 @@ class PeopleHomeWidgetService { int index = 0; for (final i in files.entries) { - for (final file in i.value) { + for (final file in i.value.$2) { final value = await HomeWidgetService.instance .renderFile( file, "people_widget_$index", + i.value.$1, i.key, - iOSGroupIDPeople, ) .catchError( (e, sT) { @@ -298,6 +306,23 @@ class PeopleHomeWidgetService { _hasSyncedPeople = true; await _peopleSync(); - // TODO: Open person page for this person + // routeToPage( + // context, + // SearchResultPage(searchResult), + // ); + + final file = await FilesDB.instance.getFile(generatedId); + if (file == null) { + _logger.warning("onLaunchFromWidget: file is null"); + return; + } + // open generated id file preview + await routeToPage( + context, + FileWidget( + file, + tagPrefix: "peoplewidget", + ), + ); } } diff --git a/mobile/lib/ui/settings/widgets/memories_widget_settings.dart b/mobile/lib/ui/settings/widgets/memories_widget_settings.dart index 1b8970885d..75ba7c587a 100644 --- a/mobile/lib/ui/settings/widgets/memories_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/memories_widget_settings.dart @@ -83,6 +83,8 @@ class _MemoriesWidgetSettingsState extends State { .setSelectedMLMemories(isSmartMemoriesEnabled!); await MemoryHomeWidgetService.instance .setSelectedOnThisDayMemories(isOnThisDayMemoriesEnabled!); + await MemoryHomeWidgetService.instance + .checkPendingMemorySync(addDelay: true); } @override diff --git a/mobile/lib/ui/settings/widgets/people_widget_settings.dart b/mobile/lib/ui/settings/widgets/people_widget_settings.dart index 76c3f6025b..3819a36aa0 100644 --- a/mobile/lib/ui/settings/widgets/people_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/people_widget_settings.dart @@ -80,7 +80,8 @@ class _PeopleWidgetSettingsState extends State { : () async { await PeopleHomeWidgetService.instance .setSelectedPeople(people.toList()); - // TODO: update/sync widget + await PeopleHomeWidgetService.instance + .checkPendingPeopleSync(addDelay: false); Navigator.pop(context); }, ), @@ -136,6 +137,7 @@ class _PeopleWidgetSettingsState extends State { SliverToBoxAdapter( child: PeopleSectionAllWidget( selectedPeople: _selectedPeople, + namedOnly: true, ), ), ], diff --git a/mobile/lib/ui/tabs/home_widget.dart b/mobile/lib/ui/tabs/home_widget.dart index 3d1b8c28bc..700619e22f 100644 --- a/mobile/lib/ui/tabs/home_widget.dart +++ b/mobile/lib/ui/tabs/home_widget.dart @@ -36,11 +36,13 @@ import "package:photos/models/selected_albums.dart"; import 'package:photos/models/selected_files.dart'; import "package:photos/service_locator.dart"; import 'package:photos/services/account/user_service.dart'; +import "package:photos/services/album_home_widget_service.dart"; import 'package:photos/services/app_lifecycle_service.dart'; import 'package:photos/services/collections_service.dart'; import "package:photos/services/machine_learning/face_ml/person/person_service.dart"; import "package:photos/services/memory_home_widget_service.dart"; import "package:photos/services/notification_service.dart"; +import "package:photos/services/people_home_widget_service.dart"; import "package:photos/services/sync/diff_fetcher.dart"; import 'package:photos/services/sync/local_sync_service.dart'; import "package:photos/services/sync/remote_sync_service.dart"; @@ -126,6 +128,8 @@ class _HomeWidgetState extends State { if (LocalSyncService.instance.hasCompletedFirstImport()) { MemoryHomeWidgetService.instance.checkPendingMemorySync(); + PeopleHomeWidgetService.instance.checkPendingPeopleSync(); + AlbumHomeWidgetService.instance.checkPendingAlbumsSync(); } _tabChangedEventSubscription = Bus.instance.on().listen((event) { @@ -190,6 +194,8 @@ class _HomeWidgetState extends State { if (mounted) { setState(() {}); MemoryHomeWidgetService.instance.checkPendingMemorySync(); + AlbumHomeWidgetService.instance.checkPendingAlbumsSync(); + PeopleHomeWidgetService.instance.checkPendingPeopleSync(); } }, ); diff --git a/mobile/lib/ui/viewer/search/result/people_section_all_page.dart b/mobile/lib/ui/viewer/search/result/people_section_all_page.dart index e658f1747c..8bd8198783 100644 --- a/mobile/lib/ui/viewer/search/result/people_section_all_page.dart +++ b/mobile/lib/ui/viewer/search/result/people_section_all_page.dart @@ -32,9 +32,11 @@ class PeopleSectionAllWidget extends StatefulWidget { const PeopleSectionAllWidget({ super.key, this.selectedPeople, + this.namedOnly = false, }); final SelectedPeople? selectedPeople; + final bool namedOnly; @override State createState() => _PeopleSectionAllWidgetState(); diff --git a/mobile/lib/ui/viewer/search_tab/people_section.dart b/mobile/lib/ui/viewer/search_tab/people_section.dart index e8a9211500..ad05f4e621 100644 --- a/mobile/lib/ui/viewer/search_tab/people_section.dart +++ b/mobile/lib/ui/viewer/search_tab/people_section.dart @@ -204,7 +204,7 @@ class PersonSearchExample extends StatelessWidget { void toggleSelection() { selectedPeople?.toggleSelection( - (searchResult.hierarchicalSearchFilter as FaceFilter).clusterId!, + (searchResult.hierarchicalSearchFilter as FaceFilter).personId!, ); } @@ -218,10 +218,10 @@ class PersonSearchExample extends StatelessWidget { return ListenableBuilder( listenable: selectedPeople ?? ValueNotifier(false), builder: (context, _) { - final bool isSelected = selectedPeople?.isPersonSelected( - (searchResult.hierarchicalSearchFilter as FaceFilter).clusterId!, - ) ?? - false; + final filter = (searchResult.hierarchicalSearchFilter as FaceFilter); + final id = filter.personId ?? filter.clusterId ?? ""; + final bool isSelected = selectedPeople?.isPersonSelected(id) ?? false; + return GestureDetector( onTap: isSelected ? toggleSelection From 734b836a7a216c988b84d0ec405ec3e08fec047d Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 21 May 2025 01:11:48 +0530 Subject: [PATCH 024/316] chore: update locals --- mobile/lib/generated/intl/messages_ar.dart | 380 ++++++++-------- mobile/lib/generated/intl/messages_be.dart | 12 +- mobile/lib/generated/intl/messages_cs.dart | 24 +- mobile/lib/generated/intl/messages_da.dart | 32 +- mobile/lib/generated/intl/messages_de.dart | 370 ++++++++-------- mobile/lib/generated/intl/messages_en.dart | 368 ++++++++-------- mobile/lib/generated/intl/messages_es.dart | 362 +++++++-------- mobile/lib/generated/intl/messages_eu.dart | 88 ++-- mobile/lib/generated/intl/messages_fa.dart | 20 +- mobile/lib/generated/intl/messages_fr.dart | 338 +++++++------- mobile/lib/generated/intl/messages_he.dart | 106 ++--- mobile/lib/generated/intl/messages_id.dart | 174 ++++---- mobile/lib/generated/intl/messages_it.dart | 244 +++++------ mobile/lib/generated/intl/messages_ja.dart | 326 +++++++------- mobile/lib/generated/intl/messages_lt.dart | 278 ++++++------ mobile/lib/generated/intl/messages_nl.dart | 330 +++++++------- mobile/lib/generated/intl/messages_no.dart | 338 +++++++------- mobile/lib/generated/intl/messages_pl.dart | 240 +++++----- mobile/lib/generated/intl/messages_pt.dart | 336 +++++++------- mobile/lib/generated/intl/messages_pt_BR.dart | 370 ++++++++-------- mobile/lib/generated/intl/messages_pt_PT.dart | 208 ++++----- mobile/lib/generated/intl/messages_ro.dart | 240 +++++----- mobile/lib/generated/intl/messages_ru.dart | 360 +++++++-------- mobile/lib/generated/intl/messages_sv.dart | 88 ++-- mobile/lib/generated/intl/messages_ta.dart | 10 +- mobile/lib/generated/intl/messages_th.dart | 20 +- mobile/lib/generated/intl/messages_tr.dart | 413 +++++++++--------- mobile/lib/generated/intl/messages_uk.dart | 240 +++++----- mobile/lib/generated/intl/messages_vi.dart | 240 +++++----- mobile/lib/generated/intl/messages_zh.dart | 356 +++++++-------- 30 files changed, 3471 insertions(+), 3440 deletions(-) diff --git a/mobile/lib/generated/intl/messages_ar.dart b/mobile/lib/generated/intl/messages_ar.dart index fa2b553afa..ac91edd2db 100644 --- a/mobile/lib/generated/intl/messages_ar.dart +++ b/mobile/lib/generated/intl/messages_ar.dart @@ -97,220 +97,224 @@ class MessageLookup extends MessageLookupByLibrary { static String m26(count, formattedSize) => "${count} ملفات، ${formattedSize} لكل منها"; - static String m27(newEmail) => "تم تغيير البريد الإلكتروني إلى ${newEmail}"; + static String m27(name) => "هذا البريد الإلكتروني مرتبط مسبقاً بـ ${name}."; - static String m28(email) => "${email} لا يملك حساب Ente."; + static String m28(newEmail) => "تم تغيير البريد الإلكتروني إلى ${newEmail}"; - static String m29(email) => + static String m29(email) => "${email} لا يملك حساب Ente."; + + static String m30(email) => "${email} لا يملك حسابًا على Ente.\n\nأرسل له دعوة لمشاركة الصور."; - static String m30(name) => "معانقة ${name}"; + static String m31(name) => "معانقة ${name}"; - static String m31(text) => "تم العثور على صور إضافية لـ ${text}"; + static String m32(text) => "تم العثور على صور إضافية لـ ${text}"; - static String m32(name) => "الاستمتاع بالطعام مع ${name}"; - - static String m33(count, formattedNumber) => - "${Intl.plural(count, one: 'ملف واحد', two: 'ملفان', few: '${formattedNumber} ملفات', many: '${formattedNumber} ملفًا', other: '${formattedNumber} ملفًا')} على هذا الجهاز تم نسخه احتياطيًا بأمان"; + static String m33(name) => "الاستمتاع بالطعام مع ${name}"; static String m34(count, formattedNumber) => + "${Intl.plural(count, one: 'ملف واحد', two: 'ملفان', few: '${formattedNumber} ملفات', many: '${formattedNumber} ملفًا', other: '${formattedNumber} ملفًا')} على هذا الجهاز تم نسخه احتياطيًا بأمان"; + + static String m35(count, formattedNumber) => "${Intl.plural(count, one: 'ملف واحد', two: 'ملفان', few: '${formattedNumber} ملفات', many: '${formattedNumber} ملفًا', other: '${formattedNumber} ملفًا')} في هذا الألبوم تم نسخه احتياطيًا بأمان"; - static String m35(storageAmountInGB) => + static String m36(storageAmountInGB) => "${storageAmountInGB} جيجابايت مجانية في كل مرة يشترك فيها شخص بخطة مدفوعة ويطبق رمزك"; - static String m36(endDate) => "التجربة المجانية صالحة حتى ${endDate}"; + static String m37(endDate) => "التجربة المجانية صالحة حتى ${endDate}"; - static String m37(count) => + static String m38(count) => "لا يزال بإمكانك الوصول ${Intl.plural(count, one: 'إليه', two: 'إليهما', other: 'إليها')} على Ente طالما لديك اشتراك نشط."; - static String m38(sizeInMBorGB) => "تحرير ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "تحرير ${sizeInMBorGB}"; - static String m39(count, formattedSize) => + static String m40(count, formattedSize) => "${Intl.plural(count, one: 'يمكن حذفه من الجهاز لتحرير ${formattedSize}', two: 'يمكن حذفهما من الجهاز لتحرير ${formattedSize}', few: 'يمكن حذفها من الجهاز لتحرير ${formattedSize}', many: 'يمكن حذفها من الجهاز لتحرير ${formattedSize}', other: 'يمكن حذفها من الجهاز لتحرير ${formattedSize}')}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "جارٍ المعالجة ${currentlyProcessing} / ${totalCount}"; - static String m41(name) => "التنزه مع ${name}"; + static String m42(name) => "التنزه مع ${name}"; - static String m42(count) => + static String m43(count) => "${Intl.plural(count, one: '${count} عُنْصُر', other: '${count} عَنَاصِر')}"; - static String m43(name) => "آخر مرة مع ${name}"; + static String m44(name) => "آخر مرة مع ${name}"; - static String m44(email) => "${email} دعاك لتكون جهة اتصال موثوقة"; + static String m45(email) => "${email} دعاك لتكون جهة اتصال موثوقة"; - static String m45(expiryTime) => "ستنتهي صلاحية الرابط في ${expiryTime}"; + static String m46(expiryTime) => "ستنتهي صلاحية الرابط في ${expiryTime}"; - static String m46(email) => "ربط الشخص بـ ${email}"; + static String m47(email) => "ربط الشخص بـ ${email}"; - static String m47(personName, email) => + static String m48(personName, email) => "سيؤدي هذا إلى ربط ${personName} بـ ${email}"; - static String m48(count, formattedCount) => + static String m49(count, formattedCount) => "${Intl.plural(count, zero: 'لا توجد ذكريات', one: 'ذكرى واحدة', two: 'ذكريتان', few: '${formattedCount} ذكريات', many: '${formattedCount} ذكرى', other: '${formattedCount} ذكرى')}"; - static String m49(count) => + static String m50(count) => "${Intl.plural(count, one: 'نقل عنصر', two: 'نقل عنصرين', few: 'نقل ${count} عناصر', many: 'نقل ${count} عنصرًا', other: 'نقل ${count} عنصرًا')}"; - static String m50(albumName) => "تم النقل بنجاح إلى ${albumName}"; + static String m51(albumName) => "تم النقل بنجاح إلى ${albumName}"; - static String m51(personName) => "لا توجد اقتراحات لـ ${personName}"; + static String m52(personName) => "لا توجد اقتراحات لـ ${personName}"; - static String m52(name) => "ليس ${name}؟"; + static String m53(name) => "ليس ${name}؟"; - static String m53(familyAdminEmail) => + static String m54(familyAdminEmail) => "يرجى الاتصال بـ ${familyAdminEmail} لتغيير الرمز الخاص بك."; - static String m54(name) => "الاحتفال مع ${name}"; + static String m55(name) => "الاحتفال مع ${name}"; - static String m55(passwordStrengthValue) => + static String m56(passwordStrengthValue) => "قوة كلمة المرور: ${passwordStrengthValue}"; - static String m56(providerName) => + static String m57(providerName) => "يرجى التواصل مع دعم ${providerName} إذا تم خصم المبلغ منك."; - static String m57(name, age) => "${name} يبلغ ${age}!"; + static String m58(name, age) => "${name} يبلغ ${age}!"; - static String m58(name, age) => "${name} سيبلغ ${age} قريبًا"; - - static String m59(count) => - "${Intl.plural(count, zero: 'لا توجد صور', one: 'صورة واحدة', two: 'صورتان', few: '${count} صور', many: '${count} صورة', other: '${count} صورة')}"; + static String m59(name, age) => "${name} سيبلغ ${age} قريبًا"; static String m60(count) => "${Intl.plural(count, zero: 'لا توجد صور', one: 'صورة واحدة', two: 'صورتان', few: '${count} صور', many: '${count} صورة', other: '${count} صورة')}"; - static String m61(endDate) => + static String m61(count) => + "${Intl.plural(count, zero: 'لا توجد صور', one: 'صورة واحدة', two: 'صورتان', few: '${count} صور', many: '${count} صورة', other: '${count} صورة')}"; + + static String m62(endDate) => "التجربة المجانية صالحة حتى ${endDate}.\nيمكنك اختيار خطة مدفوعة بعد ذلك."; - static String m62(toEmail) => + static String m63(toEmail) => "يرجى مراسلتنا عبر البريد الإلكتروني على ${toEmail}"; - static String m63(toEmail) => "يرجى إرسال السجلات إلى \n${toEmail}"; + static String m64(toEmail) => "يرجى إرسال السجلات إلى \n${toEmail}"; - static String m64(name) => "التقاط صور مع ${name}"; + static String m65(name) => "التقاط صور مع ${name}"; - static String m65(folderName) => "جارٍ معالجة ${folderName}..."; + static String m66(folderName) => "جارٍ معالجة ${folderName}..."; - static String m66(storeName) => "قيّمنا على ${storeName}"; + static String m67(storeName) => "قيّمنا على ${storeName}"; - static String m67(name) => "تمت إعادة تعيينك إلى ${name}"; + static String m68(name) => "تمت إعادة تعيينك إلى ${name}"; - static String m68(days, email) => + static String m69(days, email) => "يمكنك الوصول إلى الحساب بعد ${days} أيام. سيتم إرسال إشعار إلى ${email}."; - static String m69(email) => + static String m70(email) => "يمكنك الآن استرداد حساب ${email} عن طريق تعيين كلمة مرور جديدة."; - static String m70(email) => "${email} يحاول استرداد حسابك."; + static String m71(email) => "${email} يحاول استرداد حسابك."; - static String m71(storageInGB) => + static String m72(storageInGB) => "3. تحصلون كلاكما على ${storageInGB} جيجابايت* مجانًا"; - static String m72(userEmail) => + static String m73(userEmail) => "سيتم إزالة ${userEmail} من هذا الألبوم المشترك.\n\nسيتم أيضًا إزالة أي صور أضافها إلى الألبوم."; - static String m73(endDate) => "يتجدد الاشتراك في ${endDate}"; + static String m74(endDate) => "يتجدد الاشتراك في ${endDate}"; - static String m74(name) => "رحلة برية مع ${name}"; + static String m75(name) => "رحلة برية مع ${name}"; - static String m75(count) => + static String m76(count) => "${Intl.plural(count, one: '${count} النتائج التي تم العثور عليها', other: '${count} النتائج التي تم العثور عليها')}"; - static String m76(snapshotLength, searchLength) => + static String m77(snapshotLength, searchLength) => "عدم تطابق طول الأقسام: ${snapshotLength} != ${searchLength}"; - static String m77(count) => "تم تحديد ${count}"; + static String m78(count) => "تم تحديد ${count}"; - static String m78(count, yourCount) => + static String m79(count, yourCount) => "تم تحديد ${count} (${yourCount} منها لك)"; - static String m79(name) => "صور سيلفي مع ${name}"; - - static String m80(verificationID) => - "إليك معرّف التحقق الخاص بي لـ ente.io: ${verificationID}"; + static String m80(name) => "صور سيلفي مع ${name}"; static String m81(verificationID) => + "إليك معرّف التحقق الخاص بي لـ ente.io: ${verificationID}"; + + static String m82(verificationID) => "مرحبًا، هل يمكنك تأكيد أن هذا هو معرّف التحقق الخاص بك على ente.io: ${verificationID}؟"; - static String m82(referralCode, referralStorageInGB) => + static String m83(referralCode, referralStorageInGB) => "رمز إحالة Ente الخاص بي: ${referralCode}\n\nطبقه في الإعدادات ← عام ← الإحالات للحصول على ${referralStorageInGB} جيجابايت مجانًا بعد الاشتراك في خطة مدفوعة.\n\nhttps://ente.io"; - static String m83(numberOfPeople) => + static String m84(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'مشاركة مع أشخاص محددين', one: 'تمت المشاركة مع شخص واحد', two: 'تمت المشاركة مع شخصين', few: 'تمت المشاركة مع ${numberOfPeople} أشخاص', many: 'تمت المشاركة مع ${numberOfPeople} شخصًا', other: 'تمت المشاركة مع ${numberOfPeople} شخصًا')}"; - static String m84(emailIDs) => "تمت المشاركة مع ${emailIDs}"; + static String m85(emailIDs) => "تمت المشاركة مع ${emailIDs}"; - static String m85(fileType) => "سيتم حذف ${fileType} من جهازك."; + static String m86(fileType) => "سيتم حذف ${fileType} من جهازك."; - static String m86(fileType) => "${fileType} موجود في Ente وعلى جهازك."; + static String m87(fileType) => "${fileType} موجود في Ente وعلى جهازك."; - static String m87(fileType) => "سيتم حذف ${fileType} من Ente."; + static String m88(fileType) => "سيتم حذف ${fileType} من Ente."; - static String m88(name) => "الرياضة مع ${name}"; + static String m89(name) => "الرياضة مع ${name}"; - static String m89(name) => "تسليط الضوء على ${name}"; + static String m90(name) => "تسليط الضوء على ${name}"; - static String m90(storageAmountInGB) => "${storageAmountInGB} جيجابايت"; + static String m91(storageAmountInGB) => "${storageAmountInGB} جيجابايت"; - static String m91( + static String m92( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "تم استخدام ${usedAmount} ${usedStorageUnit} من ${totalAmount} ${totalStorageUnit}"; - static String m92(id) => + static String m93(id) => "تم ربط ${id} الخاص بك بحساب Ente آخر.\nإذا كنت ترغب في استخدام ${id} مع هذا الحساب، يرجى الاتصال بدعمنا."; - static String m93(endDate) => "سيتم إلغاء اشتراكك في ${endDate}"; + static String m94(endDate) => "سيتم إلغاء اشتراكك في ${endDate}"; - static String m94(completed, total) => "${completed}/${total} ذكريات محفوظة"; + static String m95(completed, total) => "${completed}/${total} ذكريات محفوظة"; - static String m95(ignoreReason) => + static String m96(ignoreReason) => "انقر للتحميل، تم تجاهل التحميل حاليًا بسبب ${ignoreReason}"; - static String m96(storageAmountInGB) => + static String m97(storageAmountInGB) => "سيحصلون أيضًا على ${storageAmountInGB} جيجابايت"; - static String m97(email) => "هذا هو معرّف التحقق الخاص بـ ${email}"; + static String m98(email) => "هذا هو معرّف التحقق الخاص بـ ${email}"; - static String m98(count) => + static String m99(count) => "${Intl.plural(count, one: 'هذا الأسبوع، قبل سنة', two: 'هذا الأسبوع، قبل سنتين', few: 'هذا الأسبوع، قبل ${count} سنوات', many: 'هذا الأسبوع، قبل ${count} سنة', other: 'هذا الأسبوع، قبل ${count} سنة')}"; - static String m99(dateFormat) => "${dateFormat} عبر السنين"; + static String m100(dateFormat) => "${dateFormat} عبر السنين"; - static String m100(count) => + static String m101(count) => "${Intl.plural(count, zero: 'قريبًا', one: 'يوم واحد', two: 'يومان', few: '${count} أيام', many: '${count} يومًا', other: '${count} يومًا')}"; - static String m101(year) => "رحلة في ${year}"; + static String m102(year) => "رحلة في ${year}"; - static String m102(location) => "رحلة إلى ${location}"; + static String m103(location) => "رحلة إلى ${location}"; - static String m103(email) => + static String m104(email) => "لقد تمت دعوتك لتكون جهة اتصال موثوقة بواسطة ${email}."; - static String m104(galleryType) => + static String m105(galleryType) => "نوع المعرض ${galleryType} غير مدعوم لإعادة التسمية."; - static String m105(ignoreReason) => "تم تجاهل التحميل بسبب ${ignoreReason}"; + static String m106(ignoreReason) => "تم تجاهل التحميل بسبب ${ignoreReason}"; - static String m106(count) => "جارٍ حفظ ${count} ذكريات..."; + static String m107(count) => "جارٍ حفظ ${count} ذكريات..."; - static String m107(endDate) => "صالح حتى ${endDate}"; + static String m108(endDate) => "صالح حتى ${endDate}"; - static String m108(email) => "التحقق من ${email}"; + static String m109(email) => "التحقق من ${email}"; - static String m109(count) => - "${Intl.plural(count, zero: 'تمت إضافة 0 مشاهدين', one: 'تمت إضافة مشاهد واحد', two: 'تمت إضافة مشاهدين', few: 'تمت إضافة ${count} مشاهدين', many: 'تمت إضافة ${count} مشاهدًا', other: 'تمت إضافة ${count} مشاهدًا')}"; - - static String m110(email) => - "لقد أرسلنا بريدًا إلكترونيًا إلى ${email}"; + static String m110(name) => "عرض ${name} لإلغاء الربط"; static String m111(count) => + "${Intl.plural(count, zero: 'تمت إضافة 0 مشاهدين', one: 'تمت إضافة مشاهد واحد', two: 'تمت إضافة مشاهدين', few: 'تمت إضافة ${count} مشاهدين', many: 'تمت إضافة ${count} مشاهدًا', other: 'تمت إضافة ${count} مشاهدًا')}"; + + static String m112(email) => + "لقد أرسلنا بريدًا إلكترونيًا إلى ${email}"; + + static String m113(count) => "${Intl.plural(count, one: 'قبل سنة', two: 'قبل سنتين', few: 'قبل ${count} سنوات', many: 'قبل ${count} سنة', other: 'قبل ${count} سنة')}"; - static String m112(name) => "أنت و ${name}"; + static String m114(name) => "أنت و ${name}"; - static String m113(storageSaved) => "لقد حررت ${storageSaved} بنجاح!"; + static String m115(storageSaved) => "لقد حررت ${storageSaved} بنجاح!"; final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { @@ -324,7 +328,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("الحساب تم تكوينه بالفعل."), "accountOwnerPersonAppbarTitle": m0, "accountWelcomeBack": - MessageLookupByLibrary.simpleMessage("مرحبًا مجددًا!"), + MessageLookupByLibrary.simpleMessage("أهلاً بعودتك!"), "ackPasswordLostWarning": MessageLookupByLibrary.simpleMessage( "أدرك أنني إذا فقدت كلمة المرور، فقد أفقد بياناتي لأنها مشفرة بالكامل من طرف إلى طرف."), "activeSessions": @@ -848,6 +852,7 @@ class MessageLookup extends MessageLookupByLibrary { "duplicateFileCountWithStorageSaved": m25, "duplicateItemsGroup": m26, "edit": MessageLookupByLibrary.simpleMessage("تعديل"), + "editEmailAlreadyLinked": m27, "editLocation": MessageLookupByLibrary.simpleMessage("تعديل الموقع"), "editLocationTagTitle": MessageLookupByLibrary.simpleMessage("تعديل الموقع"), @@ -860,17 +865,17 @@ class MessageLookup extends MessageLookupByLibrary { "eligible": MessageLookupByLibrary.simpleMessage("مؤهل"), "email": MessageLookupByLibrary.simpleMessage("البريد الإلكتروني"), "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage( - "البريد الإلكتروني مُسَجَّل من قبل."), - "emailChangedTo": m27, - "emailDoesNotHaveEnteAccount": m28, - "emailNoEnteAccount": m29, + "البريد الإلكتروني مُسجل من قبل."), + "emailChangedTo": m28, + "emailDoesNotHaveEnteAccount": m29, + "emailNoEnteAccount": m30, "emailNotRegistered": MessageLookupByLibrary.simpleMessage("البريد الإلكتروني غير مسجل."), "emailVerificationToggle": MessageLookupByLibrary.simpleMessage( "تأكيد عنوان البريد الإلكتروني"), "emailYourLogs": MessageLookupByLibrary.simpleMessage( "إرسال سجلاتك عبر البريد الإلكتروني"), - "embracingThem": m30, + "embracingThem": m31, "emergencyContacts": MessageLookupByLibrary.simpleMessage("جهات اتصال الطوارئ"), "empty": MessageLookupByLibrary.simpleMessage("إفراغ"), @@ -946,7 +951,7 @@ class MessageLookup extends MessageLookupByLibrary { "exportYourData": MessageLookupByLibrary.simpleMessage("تصدير بياناتك"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage("تم العثور على صور إضافية"), - "extraPhotosFoundFor": m31, + "extraPhotosFoundFor": m32, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "لم يتم تجميع الوجه بعد، يرجى العودة لاحقًا"), "faceRecognition": @@ -981,7 +986,7 @@ class MessageLookup extends MessageLookupByLibrary { "faq": MessageLookupByLibrary.simpleMessage("الأسئلة الشائعة"), "faqs": MessageLookupByLibrary.simpleMessage("الأسئلة الشائعة"), "favorite": MessageLookupByLibrary.simpleMessage("المفضلة"), - "feastingWithThem": m32, + "feastingWithThem": m33, "feedback": MessageLookupByLibrary.simpleMessage("ملاحظات"), "file": MessageLookupByLibrary.simpleMessage("ملف"), "fileFailedToSaveToGallery": @@ -995,8 +1000,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("أنواع الملفات"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("أنواع وأسماء الملفات"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m34, + "filesBackedUpInAlbum": m35, "filesDeleted": MessageLookupByLibrary.simpleMessage("تم حذف الملفات."), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage("تم حفظ الملفات في المعرض."), @@ -1013,26 +1018,26 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("الوجوه التي تم العثور عليها"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage( "تم المطالبة بمساحة التخزين المجانية"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m36, "freeStorageUsable": MessageLookupByLibrary.simpleMessage( "مساحة تخزين مجانية متاحة للاستخدام"), "freeTrial": MessageLookupByLibrary.simpleMessage("تجربة مجانية"), - "freeTrialValidTill": m36, - "freeUpAccessPostDelete": m37, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAccessPostDelete": m38, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage("تحرير مساحة على الجهاز"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "وفر مساحة على جهازك عن طريق مسح الملفات التي تم نسخها احتياطيًا."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("تحرير المساحة"), - "freeUpSpaceSaving": m39, + "freeUpSpaceSaving": m40, "gallery": MessageLookupByLibrary.simpleMessage("المعرض"), "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "يتم عرض ما يصل إلى 1000 ذكرى في المعرض."), "general": MessageLookupByLibrary.simpleMessage("عام"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "جارٍ إنشاء مفاتيح التشفير..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("الانتقال إلى الإعدادات"), "googlePlayId": @@ -1061,7 +1066,7 @@ class MessageLookup extends MessageLookupByLibrary { "hideSharedItemsFromHomeGallery": MessageLookupByLibrary.simpleMessage( "إخفاء العناصر المشتركة من معرض الصفحة الرئيسية"), "hiding": MessageLookupByLibrary.simpleMessage("جارٍ الإخفاء..."), - "hikingWithThem": m41, + "hikingWithThem": m42, "hostedAtOsmFrance": MessageLookupByLibrary.simpleMessage("مستضاف في OSM France"), "howItWorks": MessageLookupByLibrary.simpleMessage("كيف يعمل"), @@ -1116,7 +1121,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "يبدو أن خطأً ما قد حدث. يرجى المحاولة مرة أخرى بعد بعض الوقت. إذا استمر الخطأ، يرجى الاتصال بفريق الدعم لدينا."), - "itemCount": m42, + "itemCount": m43, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "تعرض العناصر عدد الأيام المتبقية قبل الحذف الدائم."), @@ -1138,7 +1143,7 @@ class MessageLookup extends MessageLookupByLibrary { "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage( "يرجى مساعدتنا بهذه المعلومات"), "language": MessageLookupByLibrary.simpleMessage("اللغة"), - "lastTimeWithThem": m43, + "lastTimeWithThem": m44, "lastUpdated": MessageLookupByLibrary.simpleMessage("آخر تحديث"), "lastYearsTrip": MessageLookupByLibrary.simpleMessage("رحلة العام الماضي"), @@ -1152,7 +1157,7 @@ class MessageLookup extends MessageLookupByLibrary { "legacy": MessageLookupByLibrary.simpleMessage("جهات الاتصال الموثوقة"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("الحسابات الموثوقة"), - "legacyInvite": m44, + "legacyInvite": m45, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "تسمح جهات الاتصال الموثوقة لأشخاص معينين بالوصول إلى حسابك في حالة غيابك."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( @@ -1169,7 +1174,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("لمشاركة أسرع"), "linkEnabled": MessageLookupByLibrary.simpleMessage("مفعّل"), "linkExpired": MessageLookupByLibrary.simpleMessage("منتهي الصلاحية"), - "linkExpiresOn": m45, + "linkExpiresOn": m46, "linkExpiry": MessageLookupByLibrary.simpleMessage("انتهاء صلاحية الرابط"), "linkHasExpired": @@ -1178,11 +1183,13 @@ class MessageLookup extends MessageLookupByLibrary { "linkPerson": MessageLookupByLibrary.simpleMessage("ربط الشخص"), "linkPersonCaption": MessageLookupByLibrary.simpleMessage("لتجربة مشاركة أفضل"), - "linkPersonToEmail": m46, - "linkPersonToEmailConfirmation": m47, + "linkPersonToEmail": m47, + "linkPersonToEmailConfirmation": m48, "livePhotos": MessageLookupByLibrary.simpleMessage("الصور الحية"), "loadMessage1": MessageLookupByLibrary.simpleMessage( "يمكنك مشاركة اشتراكك مع عائلتك."), + "loadMessage2": MessageLookupByLibrary.simpleMessage( + "لقد حفظنا أكثر من 200 مليون ذكرى حتى الآن."), "loadMessage3": MessageLookupByLibrary.simpleMessage( "نحتفظ بـ 3 نسخ من بياناتك، إحداها في ملجأ للطوارئ تحت الأرض."), "loadMessage4": MessageLookupByLibrary.simpleMessage( @@ -1266,7 +1273,7 @@ class MessageLookup extends MessageLookupByLibrary { "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), "me": MessageLookupByLibrary.simpleMessage("أنا"), - "memoryCount": m48, + "memoryCount": m49, "merchandise": MessageLookupByLibrary.simpleMessage("المنتجات الترويجية"), "mergeWithExisting": @@ -1298,13 +1305,13 @@ class MessageLookup extends MessageLookupByLibrary { "mostRecent": MessageLookupByLibrary.simpleMessage("الأحدث"), "mostRelevant": MessageLookupByLibrary.simpleMessage("الأكثر صلة"), "mountains": MessageLookupByLibrary.simpleMessage("فوق التلال"), - "moveItem": m49, + "moveItem": m50, "moveSelectedPhotosToOneDate": MessageLookupByLibrary.simpleMessage( "نقل الصور المحددة إلى تاريخ واحد"), "moveToAlbum": MessageLookupByLibrary.simpleMessage("نقل إلى ألبوم"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("نقل إلى الألبوم المخفي"), - "movedSuccessfullyTo": m50, + "movedSuccessfullyTo": m51, "movedToTrash": MessageLookupByLibrary.simpleMessage("تم النقل إلى سلة المهملات"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1359,10 +1366,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("لا توجد نتائج"), "noResultsFound": MessageLookupByLibrary.simpleMessage("لم يتم العثور على نتائج."), - "noSuggestionsForPerson": m51, + "noSuggestionsForPerson": m52, "noSystemLockFound": MessageLookupByLibrary.simpleMessage("لم يتم العثور على قفل نظام."), - "notPersonLabel": m52, + "notPersonLabel": m53, "notThisPerson": MessageLookupByLibrary.simpleMessage("ليس هذا الشخص؟"), "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( "لم تتم مشاركة أي شيء معك بعد"), @@ -1376,7 +1383,7 @@ class MessageLookup extends MessageLookupByLibrary { "onTheRoad": MessageLookupByLibrary.simpleMessage("على الطريق مرة أخرى"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), - "onlyFamilyAdminCanChangeCode": m53, + "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("هم فقط"), "oops": MessageLookupByLibrary.simpleMessage("عفوًا"), "oopsCouldNotSaveEdits": @@ -1406,7 +1413,7 @@ class MessageLookup extends MessageLookupByLibrary { "pairingComplete": MessageLookupByLibrary.simpleMessage("اكتمل الإقران"), "panorama": MessageLookupByLibrary.simpleMessage("بانوراما"), - "partyWithThem": m54, + "partyWithThem": m55, "passKeyPendingVerification": MessageLookupByLibrary.simpleMessage("التحقق لا يزال معلقًا."), "passkey": MessageLookupByLibrary.simpleMessage("مفتاح المرور"), @@ -1414,19 +1421,19 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("التحقق من مفتاح المرور"), "password": MessageLookupByLibrary.simpleMessage("كلمة المرور"), "passwordChangedSuccessfully": - MessageLookupByLibrary.simpleMessage("تم تغيير كلمة المرور بنجاح."), + MessageLookupByLibrary.simpleMessage("تم تغيير كلمة المرور بنجاح"), "passwordLock": MessageLookupByLibrary.simpleMessage("قفل بكلمة مرور"), - "passwordStrength": m55, + "passwordStrength": m56, "passwordStrengthInfo": MessageLookupByLibrary.simpleMessage( "يتم حساب قوة كلمة المرور مع الأخذ في الاعتبار طول كلمة المرور، والأحرف المستخدمة، وما إذا كانت كلمة المرور تظهر في قائمة أفضل 10,000 كلمة مرور شائعة الاستخدام."), "passwordWarning": MessageLookupByLibrary.simpleMessage( - "نحن لا نخزن كلمة المرور هذه، لذا إذا نسيتها، لا يمكننا المساعدة في فك تشفير بياناتك."), + "نحن لا نقوم بتخزين كلمة المرور هذه، لذا إذا نسيتها، لا يمكننا فك تشفير بياناتك"), "paymentDetails": MessageLookupByLibrary.simpleMessage("تفاصيل الدفع"), "paymentFailed": MessageLookupByLibrary.simpleMessage("فشلت عملية الدفع"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "للأسف، فشلت عملية الدفع الخاصة بك. يرجى الاتصال بالدعم وسوف نساعدك!"), - "paymentFailedTalkToProvider": m56, + "paymentFailedTalkToProvider": m57, "pendingItems": MessageLookupByLibrary.simpleMessage("العناصر المعلقة"), "pendingSync": MessageLookupByLibrary.simpleMessage("المزامنة المعلقة"), "people": MessageLookupByLibrary.simpleMessage("الأشخاص"), @@ -1437,20 +1444,20 @@ class MessageLookup extends MessageLookupByLibrary { "permanentlyDelete": MessageLookupByLibrary.simpleMessage("حذف نهائي"), "permanentlyDeleteFromDevice": MessageLookupByLibrary.simpleMessage("حذف نهائي من الجهاز؟"), - "personIsAge": m57, + "personIsAge": m58, "personName": MessageLookupByLibrary.simpleMessage("اسم الشخص"), - "personTurningAge": m58, + "personTurningAge": m59, "pets": MessageLookupByLibrary.simpleMessage("رفاق فروي"), "photoDescriptions": MessageLookupByLibrary.simpleMessage("أوصاف الصور"), "photoGridSize": MessageLookupByLibrary.simpleMessage("حجم شبكة الصور"), "photoSmallCase": MessageLookupByLibrary.simpleMessage("صورة"), - "photocountPhotos": m59, + "photocountPhotos": m60, "photos": MessageLookupByLibrary.simpleMessage("الصور"), "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "ستتم إزالة الصور التي أضفتها من الألبوم."), - "photosCount": m60, + "photosCount": m61, "photosKeepRelativeTimeDifference": MessageLookupByLibrary.simpleMessage( "تحتفظ الصور بالفرق الزمني النسبي"), @@ -1461,7 +1468,7 @@ class MessageLookup extends MessageLookupByLibrary { "playOnTv": MessageLookupByLibrary.simpleMessage("تشغيل الألبوم على التلفزيون"), "playOriginal": MessageLookupByLibrary.simpleMessage("تشغيل الأصلي"), - "playStoreFreeTrialValidTill": m61, + "playStoreFreeTrialValidTill": m62, "playStream": MessageLookupByLibrary.simpleMessage("تشغيل البث"), "playstoreSubscription": MessageLookupByLibrary.simpleMessage("اشتراك متجر Play"), @@ -1474,14 +1481,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "يرجى الاتصال بالدعم إذا استمرت المشكلة."), - "pleaseEmailUsAt": m62, + "pleaseEmailUsAt": m63, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage("يرجى منح الأذونات."), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("يرجى تسجيل الدخول مرة أخرى."), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "يرجى تحديد الروابط السريعة للإزالة."), - "pleaseSendTheLogsTo": m63, + "pleaseSendTheLogsTo": m64, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("يرجى المحاولة مرة أخرى"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1495,7 +1502,7 @@ class MessageLookup extends MessageLookupByLibrary { "يرجى الانتظار لبعض الوقت قبل إعادة المحاولة."), "pleaseWaitThisWillTakeAWhile": MessageLookupByLibrary.simpleMessage( "يرجى الانتظار، قد يستغرق هذا بعض الوقت."), - "posingWithThem": m64, + "posingWithThem": m65, "preparingLogs": MessageLookupByLibrary.simpleMessage("جارٍ تحضير السجلات..."), "preserveMore": MessageLookupByLibrary.simpleMessage("حفظ المزيد"), @@ -1513,7 +1520,7 @@ class MessageLookup extends MessageLookupByLibrary { "proceed": MessageLookupByLibrary.simpleMessage("متابعة"), "processed": MessageLookupByLibrary.simpleMessage("تمت المعالجة"), "processing": MessageLookupByLibrary.simpleMessage("المعالجة"), - "processingImport": m65, + "processingImport": m66, "processingVideos": MessageLookupByLibrary.simpleMessage("معالجة مقاطع الفيديو"), "publicLinkCreated": @@ -1526,10 +1533,10 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("فتح تذكرة دعم"), "rateTheApp": MessageLookupByLibrary.simpleMessage("تقييم التطبيق"), "rateUs": MessageLookupByLibrary.simpleMessage("تقييم التطبيق"), - "rateUsOnStore": m66, + "rateUsOnStore": m67, "reassignMe": MessageLookupByLibrary.simpleMessage("إعادة تعيين \"أنا\""), - "reassignedToName": m67, + "reassignedToName": m68, "reassigningLoading": MessageLookupByLibrary.simpleMessage("جارٍ إعادة التعيين..."), "recover": MessageLookupByLibrary.simpleMessage("استعادة"), @@ -1540,7 +1547,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("استرداد الحساب"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("بدء الاسترداد"), - "recoveryInitiatedDesc": m68, + "recoveryInitiatedDesc": m69, "recoveryKey": MessageLookupByLibrary.simpleMessage("مفتاح الاسترداد"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "تم نسخ مفتاح الاسترداد إلى الحافظة"), @@ -1554,12 +1561,12 @@ class MessageLookup extends MessageLookupByLibrary { "تم التحقق من مفتاح الاسترداد."), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "مفتاح الاسترداد هو الطريقة الوحيدة لاستعادة صورك إذا نسيت كلمة المرور. يمكنك العثور عليه في الإعدادات > الحساب.\n\nالرجاء إدخال مفتاح الاسترداد هنا للتحقق من أنك حفظته بشكل صحيح."), - "recoveryReady": m69, + "recoveryReady": m70, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("تم الاسترداد بنجاح!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "جهة اتصال موثوقة تحاول الوصول إلى حسابك"), - "recoveryWarningBody": m70, + "recoveryWarningBody": m71, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "لا يمكن التحقق من كلمة المرور على جهازك الحالي، لكن يمكننا تعديلها لتعمل على جميع الأجهزة.\n\nسجّل الدخول باستخدام مفتاح الاسترداد، ثم أنشئ كلمة مرور جديدة (يمكنك اختيار نفس الكلمة السابقة إذا أردت)."), "recreatePasswordTitle": @@ -1575,7 +1582,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("1. أعطِ هذا الرمز لأصدقائك"), "referralStep2": MessageLookupByLibrary.simpleMessage("2. يشتركون في خطة مدفوعة"), - "referralStep3": m71, + "referralStep3": m72, "referrals": MessageLookupByLibrary.simpleMessage("الإحالات"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage("الإحالات متوقفة مؤقتًا"), @@ -1604,7 +1611,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("إزالة الرابط"), "removeParticipant": MessageLookupByLibrary.simpleMessage("إزالة المشارك"), - "removeParticipantBody": m72, + "removeParticipantBody": m73, "removePersonLabel": MessageLookupByLibrary.simpleMessage("إزالة تسمية الشخص"), "removePublicLink": @@ -1625,7 +1632,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("إعادة تسمية الملف"), "renewSubscription": MessageLookupByLibrary.simpleMessage("تجديد الاشتراك"), - "renewsOn": m73, + "renewsOn": m74, "reportABug": MessageLookupByLibrary.simpleMessage("الإبلاغ عن خطأ"), "reportBug": MessageLookupByLibrary.simpleMessage("الإبلاغ عن خطأ"), "resendEmail": MessageLookupByLibrary.simpleMessage( @@ -1651,7 +1658,7 @@ class MessageLookup extends MessageLookupByLibrary { "reviewSuggestions": MessageLookupByLibrary.simpleMessage("مراجعة الاقتراحات"), "right": MessageLookupByLibrary.simpleMessage("يمين"), - "roadtripWithThem": m74, + "roadtripWithThem": m75, "rotate": MessageLookupByLibrary.simpleMessage("تدوير"), "rotateLeft": MessageLookupByLibrary.simpleMessage("تدوير لليسار"), "rotateRight": MessageLookupByLibrary.simpleMessage("تدوير لليمين"), @@ -1705,8 +1712,8 @@ class MessageLookup extends MessageLookupByLibrary { "ادعُ الأشخاص، وسترى جميع الصور التي شاركوها هنا."), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "سيتم عرض الأشخاص هنا بمجرد اكتمال المعالجة والمزامنة."), - "searchResultCount": m75, - "searchSectionsLengthMismatch": m76, + "searchResultCount": m76, + "searchSectionsLengthMismatch": m77, "security": MessageLookupByLibrary.simpleMessage("الأمان"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "رؤية روابط الألبومات العامة في التطبيق"), @@ -1751,9 +1758,9 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeRemovedFromThisPerson": MessageLookupByLibrary.simpleMessage( "سيتم إزالة العناصر المحددة من هذا الشخص، ولكن لن يتم حذفها من مكتبتك."), - "selectedPhotos": m77, - "selectedPhotosWithYours": m78, - "selfiesWithThem": m79, + "selectedPhotos": m78, + "selectedPhotosWithYours": m79, + "selfiesWithThem": m80, "send": MessageLookupByLibrary.simpleMessage("إرسال"), "sendEmail": MessageLookupByLibrary.simpleMessage("إرسال بريد إلكتروني"), @@ -1783,16 +1790,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("شارك ألبومًا الآن"), "shareLink": MessageLookupByLibrary.simpleMessage("مشاركة الرابط"), - "shareMyVerificationID": m80, + "shareMyVerificationID": m81, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "شارك فقط مع الأشخاص الذين تريدهم."), - "shareTextConfirmOthersVerificationID": m81, + "shareTextConfirmOthersVerificationID": m82, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "قم بتنزيل تطبيق Ente حتى نتمكن من مشاركة الصور ومقاطع الفيديو بالجودة الأصلية بسهولة.\n\nhttps://ente.io"), - "shareTextReferralCode": m82, + "shareTextReferralCode": m83, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "المشاركة مع غير مستخدمي Ente"), - "shareWithPeopleSectionTitle": m83, + "shareWithPeopleSectionTitle": m84, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("شارك ألبومك الأول"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1805,7 +1812,7 @@ class MessageLookup extends MessageLookupByLibrary { "إشعارات الصور المشتركة الجديدة"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "تلقّ إشعارات عندما يضيف شخص ما صورة إلى ألبوم مشترك أنت جزء منه."), - "sharedWith": m84, + "sharedWith": m85, "sharedWithMe": MessageLookupByLibrary.simpleMessage("تمت مشاركتها معي"), "sharedWithYou": @@ -1823,11 +1830,11 @@ class MessageLookup extends MessageLookupByLibrary { "تسجيل الخروج من الأجهزة الأخرى"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "أوافق على شروط الخدمة وسياسة الخصوصية"), - "singleFileDeleteFromDevice": m85, + "singleFileDeleteFromDevice": m86, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "سيتم حذفه من جميع الألبومات."), - "singleFileInBothLocalAndRemote": m86, - "singleFileInRemoteOnly": m87, + "singleFileInBothLocalAndRemote": m87, + "singleFileInRemoteOnly": m88, "skip": MessageLookupByLibrary.simpleMessage("تخط"), "social": MessageLookupByLibrary.simpleMessage("التواصل الاجتماعي"), "someItemsAreInBothEnteAndYourDevice": @@ -1845,6 +1852,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "حدث خطأ ما، يرجى المحاولة مرة أخرى"), "sorry": MessageLookupByLibrary.simpleMessage("عفوًا"), + "sorryBackupFailedDesc": MessageLookupByLibrary.simpleMessage( + "عذرًا، لم نتمكن من عمل نسخة احتياطية لهذا الملف الآن، سنعيد المحاولة لاحقًا."), "sorryCouldNotAddToFavorites": MessageLookupByLibrary.simpleMessage( "عذرًا، تعذرت الإضافة إلى المفضلة!"), "sorryCouldNotRemoveFromFavorites": @@ -1861,8 +1870,8 @@ class MessageLookup extends MessageLookupByLibrary { "sortNewestFirst": MessageLookupByLibrary.simpleMessage("الأحدث أولاً"), "sortOldestFirst": MessageLookupByLibrary.simpleMessage("الأقدم أولاً"), "sparkleSuccess": MessageLookupByLibrary.simpleMessage("✨ نجاح"), - "sportsWithThem": m88, - "spotlightOnThem": m89, + "sportsWithThem": m89, + "spotlightOnThem": m90, "spotlightOnYourself": MessageLookupByLibrary.simpleMessage("تسليط الضوء عليك"), "startAccountRecoveryTitle": @@ -1876,14 +1885,14 @@ class MessageLookup extends MessageLookupByLibrary { "storage": MessageLookupByLibrary.simpleMessage("التخزين"), "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("العائلة"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("أنت"), - "storageInGB": m90, + "storageInGB": m91, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("تم تجاوز حد التخزين."), - "storageUsageInfo": m91, + "storageUsageInfo": m92, "streamDetails": MessageLookupByLibrary.simpleMessage("تفاصيل البث"), "strongStrength": MessageLookupByLibrary.simpleMessage("قوية"), - "subAlreadyLinkedErrMessage": m92, - "subWillBeCancelledOn": m93, + "subAlreadyLinkedErrMessage": m93, + "subWillBeCancelledOn": m94, "subscribe": MessageLookupByLibrary.simpleMessage("اشتراك"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "المشاركة متاحة فقط للاشتراكات المدفوعة النشطة."), @@ -1900,7 +1909,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("اقتراح ميزة"), "sunrise": MessageLookupByLibrary.simpleMessage("على الأفق"), "support": MessageLookupByLibrary.simpleMessage("الدعم"), - "syncProgress": m94, + "syncProgress": m95, "syncStopped": MessageLookupByLibrary.simpleMessage("توقفت المزامنة"), "syncing": MessageLookupByLibrary.simpleMessage("جارٍ المزامنة..."), "systemTheme": MessageLookupByLibrary.simpleMessage("النظام"), @@ -1909,7 +1918,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("انقر لإدخال الرمز"), "tapToUnlock": MessageLookupByLibrary.simpleMessage("انقر لفتح القفل"), "tapToUpload": MessageLookupByLibrary.simpleMessage("انقر للتحميل"), - "tapToUploadIsIgnoredDue": m95, + "tapToUploadIsIgnoredDue": m96, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "يبدو أن خطأً ما قد حدث. يرجى المحاولة مرة أخرى بعد بعض الوقت. إذا استمر الخطأ، يرجى الاتصال بفريق الدعم لدينا."), "terminate": MessageLookupByLibrary.simpleMessage("إنهاء"), @@ -1933,7 +1942,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "سيتم حذف هذه العناصر من جهازك."), - "theyAlsoGetXGb": m96, + "theyAlsoGetXGb": m97, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "سيتم حذفها من جميع الألبومات."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( @@ -1950,12 +1959,12 @@ class MessageLookup extends MessageLookupByLibrary { "thisImageHasNoExifData": MessageLookupByLibrary.simpleMessage( "لا تحتوي هذه الصورة على بيانات EXIF."), "thisIsMeExclamation": MessageLookupByLibrary.simpleMessage("هذا أنا!"), - "thisIsPersonVerificationId": m97, + "thisIsPersonVerificationId": m98, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage( "هذا هو معرّف التحقق الخاص بك"), "thisWeekThroughTheYears": MessageLookupByLibrary.simpleMessage("هذا الأسبوع عبر السنين"), - "thisWeekXYearsAgo": m98, + "thisWeekXYearsAgo": m99, "thisWillLogYouOutOfTheFollowingDevice": MessageLookupByLibrary.simpleMessage( "سيؤدي هذا إلى تسجيل خروجك من الجهاز التالي:"), @@ -1967,7 +1976,7 @@ class MessageLookup extends MessageLookupByLibrary { "thisWillRemovePublicLinksOfAllSelectedQuickLinks": MessageLookupByLibrary.simpleMessage( "سيؤدي هذا إلى إزالة الروابط العامة لجميع الروابط السريعة المحددة."), - "throughTheYears": m99, + "throughTheYears": m100, "toEnableAppLockPleaseSetupDevicePasscodeOrScreen": MessageLookupByLibrary.simpleMessage( "لتمكين قفل التطبيق، يرجى إعداد رمز مرور الجهاز أو قفل الشاشة في إعدادات النظام."), @@ -1981,13 +1990,13 @@ class MessageLookup extends MessageLookupByLibrary { "total": MessageLookupByLibrary.simpleMessage("المجموع"), "totalSize": MessageLookupByLibrary.simpleMessage("الحجم الإجمالي"), "trash": MessageLookupByLibrary.simpleMessage("سلة المهملات"), - "trashDaysLeft": m100, + "trashDaysLeft": m101, "trim": MessageLookupByLibrary.simpleMessage("قص"), - "tripInYear": m101, - "tripToLocation": m102, + "tripInYear": m102, + "tripToLocation": m103, "trustedContacts": MessageLookupByLibrary.simpleMessage("جهات الاتصال الموثوقة"), - "trustedInviteBody": m103, + "trustedInviteBody": m104, "tryAgain": MessageLookupByLibrary.simpleMessage("المحاولة مرة أخرى"), "turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage( "قم بتشغيل النسخ الاحتياطي لتحميل الملفات المضافة إلى مجلد الجهاز هذا تلقائيًا إلى Ente."), @@ -2004,7 +2013,7 @@ class MessageLookup extends MessageLookupByLibrary { "تمت إعادة تعيين المصادقة الثنائية بنجاح."), "twofactorSetup": MessageLookupByLibrary.simpleMessage("إعداد المصادقة الثنائية"), - "typeOfGallerGallerytypeIsNotSupportedForRename": m104, + "typeOfGallerGallerytypeIsNotSupportedForRename": m105, "unarchive": MessageLookupByLibrary.simpleMessage("إلغاء الأرشفة"), "unarchiveAlbum": MessageLookupByLibrary.simpleMessage("إلغاء أرشفة الألبوم"), @@ -2028,10 +2037,10 @@ class MessageLookup extends MessageLookupByLibrary { "updatingFolderSelection": MessageLookupByLibrary.simpleMessage("جارٍ تحديث تحديد المجلد..."), "upgrade": MessageLookupByLibrary.simpleMessage("ترقية"), - "uploadIsIgnoredDueToIgnorereason": m105, + "uploadIsIgnoredDueToIgnorereason": m106, "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage( "جارٍ تحميل الملفات إلى الألبوم..."), - "uploadingMultipleMemories": m106, + "uploadingMultipleMemories": m107, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage("جارٍ حفظ ذكرى واحدة..."), "upto50OffUntil4thDec": MessageLookupByLibrary.simpleMessage( @@ -2049,7 +2058,7 @@ class MessageLookup extends MessageLookupByLibrary { "useSelectedPhoto": MessageLookupByLibrary.simpleMessage("استخدام الصورة المحددة"), "usedSpace": MessageLookupByLibrary.simpleMessage("المساحة المستخدمة"), - "validTill": m107, + "validTill": m108, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "فشل التحقق، يرجى المحاولة مرة أخرى."), @@ -2057,7 +2066,7 @@ class MessageLookup extends MessageLookupByLibrary { "verify": MessageLookupByLibrary.simpleMessage("التحقق"), "verifyEmail": MessageLookupByLibrary.simpleMessage("التحقق من البريد الإلكتروني"), - "verifyEmailID": m108, + "verifyEmailID": m109, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("تحقق"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("التحقق من مفتاح المرور"), @@ -2068,6 +2077,8 @@ class MessageLookup extends MessageLookupByLibrary { "جارٍ التحقق من مفتاح الاسترداد..."), "videoInfo": MessageLookupByLibrary.simpleMessage("معلومات الفيديو"), "videoSmallCase": MessageLookupByLibrary.simpleMessage("فيديو"), + "videoStreaming": + MessageLookupByLibrary.simpleMessage("مقاطع فيديو قابلة للبث"), "videos": MessageLookupByLibrary.simpleMessage("مقاطع الفيديو"), "viewActiveSessions": MessageLookupByLibrary.simpleMessage("عرض الجلسات النشطة"), @@ -2080,10 +2091,11 @@ class MessageLookup extends MessageLookupByLibrary { "viewLargeFilesDesc": MessageLookupByLibrary.simpleMessage( "عرض الملفات التي تستهلك أكبر قدر من مساحة التخزين."), "viewLogs": MessageLookupByLibrary.simpleMessage("عرض السجلات"), + "viewPersonToUnlink": m110, "viewRecoveryKey": MessageLookupByLibrary.simpleMessage("عرض مفتاح الاسترداد"), "viewer": MessageLookupByLibrary.simpleMessage("مشاهد"), - "viewersSuccessfullyAdded": m109, + "viewersSuccessfullyAdded": m111, "visitWebToManage": MessageLookupByLibrary.simpleMessage( "يرجى زيارة web.ente.io لإدارة اشتراكك."), "waitingForVerification": @@ -2096,7 +2108,7 @@ class MessageLookup extends MessageLookupByLibrary { "weDontSupportEditingPhotosAndAlbumsThatYouDont": MessageLookupByLibrary.simpleMessage( "لا ندعم تعديل الصور والألبومات التي لا تملكها بعد."), - "weHaveSendEmailTo": m110, + "weHaveSendEmailTo": m112, "weakStrength": MessageLookupByLibrary.simpleMessage("ضعيفة"), "welcomeBack": MessageLookupByLibrary.simpleMessage("أهلاً بعودتك!"), "whatsNew": MessageLookupByLibrary.simpleMessage("ما الجديد"), @@ -2104,7 +2116,7 @@ class MessageLookup extends MessageLookupByLibrary { "يمكن لجهة الاتصال الموثوقة المساعدة في استعادة بياناتك."), "yearShort": MessageLookupByLibrary.simpleMessage("سنة"), "yearly": MessageLookupByLibrary.simpleMessage("سنويًا"), - "yearsAgo": m111, + "yearsAgo": m113, "yes": MessageLookupByLibrary.simpleMessage("نعم"), "yesCancel": MessageLookupByLibrary.simpleMessage("نعم، إلغاء"), "yesConvertToViewer": @@ -2118,7 +2130,7 @@ class MessageLookup extends MessageLookupByLibrary { "yesResetPerson": MessageLookupByLibrary.simpleMessage("نعم، إعادة تعيين الشخص"), "you": MessageLookupByLibrary.simpleMessage("أنت"), - "youAndThem": m112, + "youAndThem": m114, "youAreOnAFamilyPlan": MessageLookupByLibrary.simpleMessage("أنت مشترك في خطة عائلية!"), "youAreOnTheLatestVersion": @@ -2137,9 +2149,9 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("لا يمكنك المشاركة مع نفسك."), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage( "لا توجد لديك أي عناصر مؤرشفة."), - "youHaveSuccessfullyFreedUp": m113, + "youHaveSuccessfullyFreedUp": m115, "yourAccountHasBeenDeleted": - MessageLookupByLibrary.simpleMessage("تم حذف حسابك بنجاح."), + MessageLookupByLibrary.simpleMessage("تم حذف حسابك بنجاح"), "yourMap": MessageLookupByLibrary.simpleMessage("خريطتك"), "yourPlanWasSuccessfullyDowngraded": MessageLookupByLibrary.simpleMessage("تم تخفيض خطتك بنجاح."), diff --git a/mobile/lib/generated/intl/messages_be.dart b/mobile/lib/generated/intl/messages_be.dart index dd0cbbe855..824414a962 100644 --- a/mobile/lib/generated/intl/messages_be.dart +++ b/mobile/lib/generated/intl/messages_be.dart @@ -20,12 +20,12 @@ typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { String get localeName => 'be'; - static String m55(passwordStrengthValue) => + static String m56(passwordStrengthValue) => "Надзейнасць пароля: ${passwordStrengthValue}"; - static String m90(storageAmountInGB) => "${storageAmountInGB} Гб"; + static String m91(storageAmountInGB) => "${storageAmountInGB} Гб"; - static String m110(email) => + static String m112(email) => "Ліст адпраўлены на электронную пошту ${email}"; final messages = _notInlinedMessages(_notInlinedMessages); @@ -188,7 +188,7 @@ class MessageLookup extends MessageLookupByLibrary { "password": MessageLookupByLibrary.simpleMessage("Пароль"), "passwordChangedSuccessfully": MessageLookupByLibrary.simpleMessage("Пароль паспяхова зменены"), - "passwordStrength": m55, + "passwordStrength": m56, "passwordWarning": MessageLookupByLibrary.simpleMessage( "Мы не захоўваем гэты пароль і мы не зможам расшыфраваць вашы даныя, калі вы забудзеце яго"), "photoSmallCase": MessageLookupByLibrary.simpleMessage("фота"), @@ -250,7 +250,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "Немагчыма згенерыраваць ключы бяспекі на гэтай прыладзе.\n\nЗарэгіструйцеся з іншай прылады."), "status": MessageLookupByLibrary.simpleMessage("Стан"), - "storageInGB": m90, + "storageInGB": m91, "strongStrength": MessageLookupByLibrary.simpleMessage("Надзейны"), "support": MessageLookupByLibrary.simpleMessage("Падтрымка"), "systemTheme": MessageLookupByLibrary.simpleMessage("Сістэма"), @@ -289,7 +289,7 @@ class MessageLookup extends MessageLookupByLibrary { "videoSmallCase": MessageLookupByLibrary.simpleMessage("відэа"), "viewLargeFiles": MessageLookupByLibrary.simpleMessage("Вялікія файлы"), "viewer": MessageLookupByLibrary.simpleMessage("Праглядальнік"), - "weHaveSendEmailTo": m110, + "weHaveSendEmailTo": m112, "weakStrength": MessageLookupByLibrary.simpleMessage("Ненадзейны"), "welcomeBack": MessageLookupByLibrary.simpleMessage("З вяртаннем!"), "yesDelete": MessageLookupByLibrary.simpleMessage("Так, выдаліць"), diff --git a/mobile/lib/generated/intl/messages_cs.dart b/mobile/lib/generated/intl/messages_cs.dart index 54f895e0f9..5827864a84 100644 --- a/mobile/lib/generated/intl/messages_cs.dart +++ b/mobile/lib/generated/intl/messages_cs.dart @@ -22,17 +22,17 @@ class MessageLookup extends MessageLookupByLibrary { static String m6(albumName) => "Úspěšně přidáno do ${albumName}"; - static String m45(expiryTime) => "Platnost odkazu vyprší ${expiryTime}"; + static String m46(expiryTime) => "Platnost odkazu vyprší ${expiryTime}"; - static String m66(storeName) => "Ohodnoťte nás na ${storeName}"; + static String m67(storeName) => "Ohodnoťte nás na ${storeName}"; - static String m73(endDate) => "Předplatné se obnoví ${endDate}"; + static String m74(endDate) => "Předplatné se obnoví ${endDate}"; - static String m79(name) => "Selfie s ${name}"; + static String m80(name) => "Selfie s ${name}"; - static String m108(email) => "Ověřit ${email}"; + static String m109(email) => "Ověřit ${email}"; - static String m112(name) => "Vy a ${name}"; + static String m114(name) => "Vy a ${name}"; final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { @@ -292,7 +292,7 @@ class MessageLookup extends MessageLookupByLibrary { "leaveAlbum": MessageLookupByLibrary.simpleMessage("Opustit album"), "left": MessageLookupByLibrary.simpleMessage("Doleva"), "lightTheme": MessageLookupByLibrary.simpleMessage("Světlý"), - "linkExpiresOn": m45, + "linkExpiresOn": m46, "linkHasExpired": MessageLookupByLibrary.simpleMessage("Platnost odkazu vypršela"), "linkNeverExpires": MessageLookupByLibrary.simpleMessage("Nikdy"), @@ -389,7 +389,7 @@ class MessageLookup extends MessageLookupByLibrary { "queued": MessageLookupByLibrary.simpleMessage("Ve frontě"), "radius": MessageLookupByLibrary.simpleMessage("Rádius"), "rateUs": MessageLookupByLibrary.simpleMessage("Ohodnoť nás"), - "rateUsOnStore": m66, + "rateUsOnStore": m67, "recoverButton": MessageLookupByLibrary.simpleMessage("Obnovit"), "recoveryKeyVerified": MessageLookupByLibrary.simpleMessage("Obnovovací klíč byl ověřen"), @@ -418,7 +418,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Přejmenovat album"), "renameFile": MessageLookupByLibrary.simpleMessage("Přejmenovat soubor"), - "renewsOn": m73, + "renewsOn": m74, "reportABug": MessageLookupByLibrary.simpleMessage("Nahlásit chybu"), "reportBug": MessageLookupByLibrary.simpleMessage("Nahlásit chybu"), "resendEmail": @@ -460,7 +460,7 @@ class MessageLookup extends MessageLookupByLibrary { "selectTime": MessageLookupByLibrary.simpleMessage("Vybrat čas"), "selectYourPlan": MessageLookupByLibrary.simpleMessage("Vyberte svůj plán"), - "selfiesWithThem": m79, + "selfiesWithThem": m80, "send": MessageLookupByLibrary.simpleMessage("Odeslat"), "sendEmail": MessageLookupByLibrary.simpleMessage("Odeslat e-mail"), "sendInvite": MessageLookupByLibrary.simpleMessage("Odeslat pozvánku"), @@ -528,7 +528,7 @@ class MessageLookup extends MessageLookupByLibrary { "usedSpace": MessageLookupByLibrary.simpleMessage("Využité místo"), "verify": MessageLookupByLibrary.simpleMessage("Ověřit"), "verifyEmail": MessageLookupByLibrary.simpleMessage("Ověřit e-mail"), - "verifyEmailID": m108, + "verifyEmailID": m109, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("Ověřit"), "verifying": MessageLookupByLibrary.simpleMessage("Ověřování..."), "verifyingRecoveryKey": MessageLookupByLibrary.simpleMessage( @@ -552,7 +552,7 @@ class MessageLookup extends MessageLookupByLibrary { "yesRemove": MessageLookupByLibrary.simpleMessage("Ano, odstranit"), "yesRenew": MessageLookupByLibrary.simpleMessage("Ano, obnovit"), "you": MessageLookupByLibrary.simpleMessage("Vy"), - "youAndThem": m112, + "youAndThem": m114, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage("Váš účet byl smazán"), "yourMap": MessageLookupByLibrary.simpleMessage("Vaše mapa") diff --git a/mobile/lib/generated/intl/messages_da.dart b/mobile/lib/generated/intl/messages_da.dart index 92d3c0e72c..7946b907ad 100644 --- a/mobile/lib/generated/intl/messages_da.dart +++ b/mobile/lib/generated/intl/messages_da.dart @@ -29,24 +29,24 @@ class MessageLookup extends MessageLookupByLibrary { static String m24(supportEmail) => "Send venligst en email til ${supportEmail} fra din registrerede email adresse"; - static String m35(storageAmountInGB) => + static String m36(storageAmountInGB) => "${storageAmountInGB} GB hver gang nogen tilmelder sig et betalt abonnement og anvender din kode"; - static String m45(expiryTime) => "Link udløber den ${expiryTime}"; + static String m46(expiryTime) => "Link udløber den ${expiryTime}"; - static String m55(passwordStrengthValue) => + static String m56(passwordStrengthValue) => "Kodeordets styrke: ${passwordStrengthValue}"; - static String m77(count) => "${count} valgt"; + static String m78(count) => "${count} valgt"; - static String m81(verificationID) => + static String m82(verificationID) => "Hey, kan du bekræfte, at dette er dit ente.io verifikation ID: ${verificationID}"; - static String m90(storageAmountInGB) => "${storageAmountInGB} GB"; + static String m91(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m96(storageAmountInGB) => "De får også ${storageAmountInGB} GB"; + static String m97(storageAmountInGB) => "De får også ${storageAmountInGB} GB"; - static String m110(email) => + static String m112(email) => "Vi har sendt en email til ${email}"; final messages = _notInlinedMessages(_notInlinedMessages); @@ -219,7 +219,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Find folk hurtigt ved navn"), "forgotPassword": MessageLookupByLibrary.simpleMessage("Glemt adgangskode"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m36, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage("Frigør enhedsplads"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( @@ -253,7 +253,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Enheds grænse"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Aktiveret"), "linkExpired": MessageLookupByLibrary.simpleMessage("Udløbet"), - "linkExpiresOn": m45, + "linkExpiresOn": m46, "linkExpiry": MessageLookupByLibrary.simpleMessage("Udløb af link"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("Linket er udløbet"), @@ -304,7 +304,7 @@ class MessageLookup extends MessageLookupByLibrary { "passwordChangedSuccessfully": MessageLookupByLibrary.simpleMessage( "Adgangskoden er blevet ændret"), "passwordLock": MessageLookupByLibrary.simpleMessage("Adgangskodelås"), - "passwordStrength": m55, + "passwordStrength": m56, "passwordWarning": MessageLookupByLibrary.simpleMessage( "Vi gemmer ikke denne adgangskode, så hvis du glemmer den kan vi ikke dekryptere dine data"), "pendingItems": @@ -376,7 +376,7 @@ class MessageLookup extends MessageLookupByLibrary { "selectedFoldersWillBeEncryptedAndBackedUp": MessageLookupByLibrary.simpleMessage( "Valgte mapper vil blive krypteret og sikkerhedskopieret"), - "selectedPhotos": m77, + "selectedPhotos": m78, "sendEmail": MessageLookupByLibrary.simpleMessage("Send email"), "sendLink": MessageLookupByLibrary.simpleMessage("Send link"), "setPasswordTitle": @@ -384,7 +384,7 @@ class MessageLookup extends MessageLookupByLibrary { "setupComplete": MessageLookupByLibrary.simpleMessage("Opsætning fuldført"), "shareALink": MessageLookupByLibrary.simpleMessage("Del et link"), - "shareTextConfirmOthersVerificationID": m81, + "shareTextConfirmOthersVerificationID": m82, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage("Del med ikke Ente brugere"), "showMemories": MessageLookupByLibrary.simpleMessage("Vis minder"), @@ -404,7 +404,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "Beklager, vi kunne ikke generere sikre krypteringsnøgler på denne enhed.\n\nForsøg venligst at oprette en konto fra en anden enhed."), "status": MessageLookupByLibrary.simpleMessage("Status"), - "storageInGB": m90, + "storageInGB": m91, "strongStrength": MessageLookupByLibrary.simpleMessage("Stærkt"), "subscribe": MessageLookupByLibrary.simpleMessage("Abonner"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( @@ -418,7 +418,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Afslut session?"), "termsOfServicesTitle": MessageLookupByLibrary.simpleMessage("Betingelser"), - "theyAlsoGetXGb": m96, + "theyAlsoGetXGb": m97, "thisCanBeUsedToRecoverYourAccountIfYou": MessageLookupByLibrary.simpleMessage( "Dette kan bruges til at gendanne din konto, hvis du mister din anden faktor"), @@ -457,7 +457,7 @@ class MessageLookup extends MessageLookupByLibrary { "viewer": MessageLookupByLibrary.simpleMessage("Seer"), "waitingForWifi": MessageLookupByLibrary.simpleMessage("Venter på Wi-fi..."), - "weHaveSendEmailTo": m110, + "weHaveSendEmailTo": m112, "weakStrength": MessageLookupByLibrary.simpleMessage("Svagt"), "welcomeBack": MessageLookupByLibrary.simpleMessage("Velkommen tilbage!"), diff --git a/mobile/lib/generated/intl/messages_de.dart b/mobile/lib/generated/intl/messages_de.dart index 6e537e4bd2..4f738f11fc 100644 --- a/mobile/lib/generated/intl/messages_de.dart +++ b/mobile/lib/generated/intl/messages_de.dart @@ -99,229 +99,229 @@ class MessageLookup extends MessageLookupByLibrary { static String m26(count, formattedSize) => "${count} Dateien, ${formattedSize} jede"; - static String m114(name) => "Diese E-Mail ist bereits verknüpft mit ${name}."; + static String m27(name) => "Diese E-Mail ist bereits verknüpft mit ${name}."; - static String m27(newEmail) => "E-Mail-Adresse geändert zu ${newEmail}"; + static String m28(newEmail) => "E-Mail-Adresse geändert zu ${newEmail}"; - static String m28(email) => "${email} hat kein Ente-Konto."; + static String m29(email) => "${email} hat kein Ente-Konto."; - static String m29(email) => + static String m30(email) => "${email} hat kein Ente-Konto.\n\nSende eine Einladung, um Fotos zu teilen."; - static String m30(name) => "${name} umarmen"; + static String m31(name) => "${name} umarmen"; - static String m31(text) => "Zusätzliche Fotos für ${text} gefunden"; + static String m32(text) => "Zusätzliche Fotos für ${text} gefunden"; - static String m32(name) => "Feiern mit ${name}"; - - static String m33(count, formattedNumber) => - "${Intl.plural(count, one: '1 Datei', other: '${formattedNumber} Dateien')} auf diesem Gerät wurde(n) sicher gespeichert"; + static String m33(name) => "Feiern mit ${name}"; static String m34(count, formattedNumber) => + "${Intl.plural(count, one: '1 Datei', other: '${formattedNumber} Dateien')} auf diesem Gerät wurde(n) sicher gespeichert"; + + static String m35(count, formattedNumber) => "${Intl.plural(count, one: '1 Datei', other: '${formattedNumber} Dateien')} in diesem Album wurde(n) sicher gespeichert"; - static String m35(storageAmountInGB) => + static String m36(storageAmountInGB) => "${storageAmountInGB} GB jedes Mal, wenn sich jemand mit deinem Code für einen bezahlten Tarif anmeldet"; - static String m36(endDate) => "Kostenlose Demo verfügbar bis zum ${endDate}"; + static String m37(endDate) => "Kostenlose Demo verfügbar bis zum ${endDate}"; - static String m37(count) => + static String m38(count) => "Du hast ${Intl.plural(count, one: 'darauf', other: 'auf sie')} weiterhin Zugriff, solange du ein aktives Abo hast"; - static String m38(sizeInMBorGB) => "${sizeInMBorGB} freigeben"; + static String m39(sizeInMBorGB) => "${sizeInMBorGB} freigeben"; - static String m39(count, formattedSize) => + static String m40(count, formattedSize) => "${Intl.plural(count, one: 'Es kann vom Gerät gelöscht werden, um ${formattedSize} freizugeben', other: 'Sie können vom Gerät gelöscht werden, um ${formattedSize} freizugeben')}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Verarbeite ${currentlyProcessing} / ${totalCount}"; - static String m41(name) => "Wandern mit ${name}"; + static String m42(name) => "Wandern mit ${name}"; - static String m42(count) => + static String m43(count) => "${Intl.plural(count, one: '${count} Objekt', other: '${count} Objekte')}"; - static String m43(name) => "Zuletzt mit ${name}"; + static String m44(name) => "Zuletzt mit ${name}"; - static String m44(email) => + static String m45(email) => "${email} hat dich eingeladen, ein vertrauenswürdiger Kontakt zu werden"; - static String m45(expiryTime) => "Link läuft am ${expiryTime} ab"; + static String m46(expiryTime) => "Link läuft am ${expiryTime} ab"; - static String m46(email) => "Person mit ${email} verknüpfen"; + static String m47(email) => "Person mit ${email} verknüpfen"; - static String m47(personName, email) => + static String m48(personName, email) => "Dies wird ${personName} mit ${email} verknüpfen"; - static String m48(count, formattedCount) => + static String m49(count, formattedCount) => "${Intl.plural(count, zero: 'keine Erinnerungen', one: '${formattedCount} Erinnerung', other: '${formattedCount} Erinnerungen')}"; - static String m49(count) => + static String m50(count) => "${Intl.plural(count, one: 'Element verschieben', other: 'Elemente verschieben')}"; - static String m50(albumName) => "Erfolgreich zu ${albumName} hinzugefügt"; + static String m51(albumName) => "Erfolgreich zu ${albumName} hinzugefügt"; - static String m51(personName) => "Keine Vorschläge für ${personName}"; + static String m52(personName) => "Keine Vorschläge für ${personName}"; - static String m52(name) => "Nicht ${name}?"; + static String m53(name) => "Nicht ${name}?"; - static String m53(familyAdminEmail) => + static String m54(familyAdminEmail) => "Bitte wende Dich an ${familyAdminEmail}, um den Code zu ändern."; - static String m54(name) => "Party mit ${name}"; + static String m55(name) => "Party mit ${name}"; - static String m55(passwordStrengthValue) => + static String m56(passwordStrengthValue) => "Passwortstärke: ${passwordStrengthValue}"; - static String m56(providerName) => + static String m57(providerName) => "Bitte kontaktiere den Support von ${providerName}, falls etwas abgebucht wurde"; - static String m57(name, age) => "${name} ist ${age}!"; + static String m58(name, age) => "${name} ist ${age}!"; - static String m58(name, age) => "${name} wird bald ${age}"; - - static String m59(count) => - "${Intl.plural(count, zero: 'Keine Fotos', one: 'Ein Foto', other: '${count} Fotos')}"; + static String m59(name, age) => "${name} wird bald ${age}"; static String m60(count) => + "${Intl.plural(count, zero: 'Keine Fotos', one: 'Ein Foto', other: '${count} Fotos')}"; + + static String m61(count) => "${Intl.plural(count, zero: '0 Fotos', one: 'Ein Foto', other: '${count} Fotos')}"; - static String m61(endDate) => + static String m62(endDate) => "Kostenlose Testversion gültig bis ${endDate}.\nDu kannst anschließend ein bezahltes Paket auswählen."; - static String m62(toEmail) => "Bitte sende uns eine E-Mail an ${toEmail}"; + static String m63(toEmail) => "Bitte sende uns eine E-Mail an ${toEmail}"; - static String m63(toEmail) => "Bitte sende die Protokolle an ${toEmail}"; + static String m64(toEmail) => "Bitte sende die Protokolle an ${toEmail}"; - static String m64(name) => "Posieren mit ${name}"; + static String m65(name) => "Posieren mit ${name}"; - static String m65(folderName) => "Verarbeite ${folderName}..."; + static String m66(folderName) => "Verarbeite ${folderName}..."; - static String m66(storeName) => "Bewerte uns auf ${storeName}"; + static String m67(storeName) => "Bewerte uns auf ${storeName}"; - static String m67(name) => "Du wurdest an ${name} neu zugewiesen"; + static String m68(name) => "Du wurdest an ${name} neu zugewiesen"; - static String m68(days, email) => + static String m69(days, email) => "Du kannst nach ${days} Tagen auf das Konto zugreifen. Eine Benachrichtigung wird an ${email} versendet."; - static String m69(email) => + static String m70(email) => "Du kannst jetzt das Konto von ${email} wiederherstellen, indem du ein neues Passwort setzt."; - static String m70(email) => + static String m71(email) => "${email} versucht, dein Konto wiederherzustellen."; - static String m71(storageInGB) => + static String m72(storageInGB) => "3. Ihr beide erhaltet ${storageInGB} GB* kostenlos"; - static String m72(userEmail) => + static String m73(userEmail) => "${userEmail} wird aus diesem geteilten Album entfernt\n\nAlle von ihnen hinzugefügte Fotos werden ebenfalls aus dem Album entfernt"; - static String m73(endDate) => "Erneuert am ${endDate}"; + static String m74(endDate) => "Erneuert am ${endDate}"; - static String m74(name) => "Roadtrip mit ${name}"; + static String m75(name) => "Roadtrip mit ${name}"; - static String m75(count) => + static String m76(count) => "${Intl.plural(count, one: '${count} Ergebnis gefunden', other: '${count} Ergebnisse gefunden')}"; - static String m76(snapshotLength, searchLength) => + static String m77(snapshotLength, searchLength) => "Abschnittslänge stimmt nicht überein: ${snapshotLength} != ${searchLength}"; - static String m77(count) => "${count} ausgewählt"; + static String m78(count) => "${count} ausgewählt"; - static String m78(count, yourCount) => + static String m79(count, yourCount) => "${count} ausgewählt (${yourCount} von Ihnen)"; - static String m79(name) => "Selfies mit ${name}"; - - static String m80(verificationID) => - "Hier ist meine Verifizierungs-ID: ${verificationID} für ente.io."; + static String m80(name) => "Selfies mit ${name}"; static String m81(verificationID) => + "Hier ist meine Verifizierungs-ID: ${verificationID} für ente.io."; + + static String m82(verificationID) => "Hey, kannst du bestätigen, dass dies deine ente.io Verifizierungs-ID ist: ${verificationID}"; - static String m82(referralCode, referralStorageInGB) => + static String m83(referralCode, referralStorageInGB) => "Ente Weiterempfehlungs-Code: ${referralCode} \n\nEinlösen unter Einstellungen → Allgemein → Weiterempfehlungen, um ${referralStorageInGB} GB kostenlos zu erhalten, sobald Sie einen kostenpflichtigen Tarif abgeschlossen haben\n\nhttps://ente.io"; - static String m83(numberOfPeople) => + static String m84(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Teile mit bestimmten Personen', one: 'Teilen mit 1 Person', other: 'Teilen mit ${numberOfPeople} Personen')}"; - static String m84(emailIDs) => "Geteilt mit ${emailIDs}"; - - static String m85(fileType) => - "Dieses ${fileType} wird von deinem Gerät gelöscht."; + static String m85(emailIDs) => "Geteilt mit ${emailIDs}"; static String m86(fileType) => + "Dieses ${fileType} wird von deinem Gerät gelöscht."; + + static String m87(fileType) => "Diese Datei ist sowohl in Ente als auch auf deinem Gerät."; - static String m87(fileType) => "Diese Datei wird von Ente gelöscht."; + static String m88(fileType) => "Diese Datei wird von Ente gelöscht."; - static String m88(name) => "Sport mit ${name}"; + static String m89(name) => "Sport mit ${name}"; - static String m89(name) => "Spot auf ${name}"; + static String m90(name) => "Spot auf ${name}"; - static String m90(storageAmountInGB) => "${storageAmountInGB} GB"; + static String m91(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m91( + static String m92( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} von ${totalAmount} ${totalStorageUnit} verwendet"; - static String m92(id) => + static String m93(id) => "Dein ${id} ist bereits mit einem anderen Ente-Konto verknüpft.\nWenn du deine ${id} mit diesem Konto verwenden möchtest, kontaktiere bitte unseren Support"; - static String m93(endDate) => "Dein Abo endet am ${endDate}"; + static String m94(endDate) => "Dein Abo endet am ${endDate}"; - static String m94(completed, total) => + static String m95(completed, total) => "${completed}/${total} Erinnerungsstücke gesichert"; - static String m95(ignoreReason) => + static String m96(ignoreReason) => "Zum Hochladen tippen, Hochladen wird derzeit ignoriert, da ${ignoreReason}"; - static String m96(storageAmountInGB) => + static String m97(storageAmountInGB) => "Diese erhalten auch ${storageAmountInGB} GB"; - static String m97(email) => "Dies ist ${email}s Verifizierungs-ID"; + static String m98(email) => "Dies ist ${email}s Verifizierungs-ID"; - static String m98(count) => + static String m99(count) => "${Intl.plural(count, one: 'Diese Woche, vor einem Jahr', other: 'Diese Woche, vor ${count} Jahren')}"; - static String m99(dateFormat) => "${dateFormat} über die Jahre"; + static String m100(dateFormat) => "${dateFormat} über die Jahre"; - static String m100(count) => + static String m101(count) => "${Intl.plural(count, zero: 'Demnächst', one: '1 Tag', other: '${count} Tage')}"; - static String m101(year) => "Reise in ${year}"; + static String m102(year) => "Reise in ${year}"; - static String m102(location) => "Ausflug nach ${location}"; + static String m103(location) => "Ausflug nach ${location}"; - static String m103(email) => + static String m104(email) => "Du wurdest von ${email} eingeladen, ein Kontakt für das digitale Erbe zu werden."; - static String m104(galleryType) => + static String m105(galleryType) => "Der Galerie-Typ ${galleryType} unterstützt kein Umbenennen"; - static String m105(ignoreReason) => + static String m106(ignoreReason) => "Upload wird aufgrund von ${ignoreReason} ignoriert"; - static String m106(count) => "Sichere ${count} Erinnerungsstücke..."; + static String m107(count) => "Sichere ${count} Erinnerungsstücke..."; - static String m107(endDate) => "Gültig bis ${endDate}"; + static String m108(endDate) => "Gültig bis ${endDate}"; - static String m108(email) => "Verifiziere ${email}"; + static String m109(email) => "Verifiziere ${email}"; - static String m115(name) => "${name} zum Entfernen des Links anzeigen"; - - static String m109(count) => - "${Intl.plural(count, zero: '0 Betrachter hinzugefügt', one: 'Einen Betrachter hinzugefügt', other: '${count} Betrachter hinzugefügt')}"; - - static String m110(email) => - "Wir haben eine E-Mail an ${email} gesendet"; + static String m110(name) => "${name} zum Entfernen des Links anzeigen"; static String m111(count) => + "${Intl.plural(count, zero: '0 Betrachter hinzugefügt', one: 'Einen Betrachter hinzugefügt', other: '${count} Betrachter hinzugefügt')}"; + + static String m112(email) => + "Wir haben eine E-Mail an ${email} gesendet"; + + static String m113(count) => "${Intl.plural(count, one: 'vor einem Jahr', other: 'vor ${count} Jahren')}"; - static String m112(name) => "Du und ${name}"; + static String m114(name) => "Du und ${name}"; - static String m113(storageSaved) => + static String m115(storageSaved) => "Du hast ${storageSaved} erfolgreich freigegeben!"; final messages = _notInlinedMessages(_notInlinedMessages); @@ -877,7 +877,7 @@ class MessageLookup extends MessageLookupByLibrary { "duplicateFileCountWithStorageSaved": m25, "duplicateItemsGroup": m26, "edit": MessageLookupByLibrary.simpleMessage("Bearbeiten"), - "editEmailAlreadyLinked": m114, + "editEmailAlreadyLinked": m27, "editLocation": MessageLookupByLibrary.simpleMessage("Standort bearbeiten"), "editLocationTagTitle": @@ -893,16 +893,16 @@ class MessageLookup extends MessageLookupByLibrary { "email": MessageLookupByLibrary.simpleMessage("E-Mail"), "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage( "E-Mail ist bereits registriert."), - "emailChangedTo": m27, - "emailDoesNotHaveEnteAccount": m28, - "emailNoEnteAccount": m29, + "emailChangedTo": m28, + "emailDoesNotHaveEnteAccount": m29, + "emailNoEnteAccount": m30, "emailNotRegistered": MessageLookupByLibrary.simpleMessage("E-Mail nicht registriert."), "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("E-Mail-Verifizierung"), "emailYourLogs": MessageLookupByLibrary.simpleMessage( "Protokolle per E-Mail senden"), - "embracingThem": m30, + "embracingThem": m31, "emergencyContacts": MessageLookupByLibrary.simpleMessage("Notfallkontakte"), "empty": MessageLookupByLibrary.simpleMessage("Leeren"), @@ -981,7 +981,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Daten exportieren"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage("Zusätzliche Fotos gefunden"), - "extraPhotosFoundFor": m31, + "extraPhotosFoundFor": m32, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Gesicht ist noch nicht gruppiert, bitte komm später zurück"), "faceRecognition": @@ -1019,7 +1019,7 @@ class MessageLookup extends MessageLookupByLibrary { "faq": MessageLookupByLibrary.simpleMessage("Häufig gestellte Fragen"), "faqs": MessageLookupByLibrary.simpleMessage("FAQs"), "favorite": MessageLookupByLibrary.simpleMessage("Favorit"), - "feastingWithThem": m32, + "feastingWithThem": m33, "feedback": MessageLookupByLibrary.simpleMessage("Rückmeldung"), "file": MessageLookupByLibrary.simpleMessage("Datei"), "fileFailedToSaveToGallery": MessageLookupByLibrary.simpleMessage( @@ -1033,8 +1033,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Dateitypen"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Dateitypen und -namen"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m34, + "filesBackedUpInAlbum": m35, "filesDeleted": MessageLookupByLibrary.simpleMessage("Dateien gelöscht"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage( @@ -1053,28 +1053,28 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Gesichter gefunden"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage( "Kostenlos hinzugefügter Speicherplatz"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m36, "freeStorageUsable": MessageLookupByLibrary.simpleMessage( "Freier Speicherplatz nutzbar"), "freeTrial": MessageLookupByLibrary.simpleMessage("Kostenlose Testphase"), - "freeTrialValidTill": m36, - "freeUpAccessPostDelete": m37, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAccessPostDelete": m38, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage("Gerätespeicher freiräumen"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "Spare Speicherplatz auf deinem Gerät, indem du Dateien löschst, die bereits gesichert wurden."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Speicherplatz freigeben"), - "freeUpSpaceSaving": m39, + "freeUpSpaceSaving": m40, "gallery": MessageLookupByLibrary.simpleMessage("Galerie"), "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "Bis zu 1000 Erinnerungsstücke angezeigt in der Galerie"), "general": MessageLookupByLibrary.simpleMessage("Allgemein"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Generierung von Verschlüsselungscodes..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Zu den Einstellungen"), "googlePlayId": MessageLookupByLibrary.simpleMessage("Google Play ID"), @@ -1104,7 +1104,7 @@ class MessageLookup extends MessageLookupByLibrary { "hideSharedItemsFromHomeGallery": MessageLookupByLibrary.simpleMessage( "Geteilte Elemente in der Home-Galerie ausblenden"), "hiding": MessageLookupByLibrary.simpleMessage("Verstecken..."), - "hikingWithThem": m41, + "hikingWithThem": m42, "hostedAtOsmFrance": MessageLookupByLibrary.simpleMessage("Gehostet bei OSM France"), "howItWorks": @@ -1163,7 +1163,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Etwas ist schiefgelaufen. Bitte versuche es später noch einmal. Sollte der Fehler weiter bestehen, kontaktiere unser Supportteam."), - "itemCount": m42, + "itemCount": m43, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Elemente zeigen die Anzahl der Tage bis zum dauerhaften Löschen an"), @@ -1184,7 +1184,7 @@ class MessageLookup extends MessageLookupByLibrary { "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage("Bitte gib diese Daten ein"), "language": MessageLookupByLibrary.simpleMessage("Sprache"), - "lastTimeWithThem": m43, + "lastTimeWithThem": m44, "lastUpdated": MessageLookupByLibrary.simpleMessage("Zuletzt aktualisiert"), "lastYearsTrip": @@ -1199,7 +1199,7 @@ class MessageLookup extends MessageLookupByLibrary { "legacy": MessageLookupByLibrary.simpleMessage("Digitales Erbe"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Digital geerbte Konten"), - "legacyInvite": m44, + "legacyInvite": m45, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "Das digitale Erbe erlaubt vertrauenswürdigen Kontakten den Zugriff auf dein Konto in deiner Abwesenheit."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( @@ -1216,7 +1216,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("für schnelleres Teilen"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Aktiviert"), "linkExpired": MessageLookupByLibrary.simpleMessage("Abgelaufen"), - "linkExpiresOn": m45, + "linkExpiresOn": m46, "linkExpiry": MessageLookupByLibrary.simpleMessage("Ablaufdatum des Links"), "linkHasExpired": @@ -1225,8 +1225,8 @@ class MessageLookup extends MessageLookupByLibrary { "linkPerson": MessageLookupByLibrary.simpleMessage("Person verknüpfen"), "linkPersonCaption": MessageLookupByLibrary.simpleMessage( "um besseres Teilen zu ermöglichen"), - "linkPersonToEmail": m46, - "linkPersonToEmailConfirmation": m47, + "linkPersonToEmail": m47, + "linkPersonToEmailConfirmation": m48, "livePhotos": MessageLookupByLibrary.simpleMessage("Live-Fotos"), "loadMessage1": MessageLookupByLibrary.simpleMessage( "Du kannst dein Abonnement mit deiner Familie teilen"), @@ -1313,7 +1313,7 @@ class MessageLookup extends MessageLookupByLibrary { "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), "me": MessageLookupByLibrary.simpleMessage("Ich"), - "memoryCount": m48, + "memoryCount": m49, "merchandise": MessageLookupByLibrary.simpleMessage("Merchandise"), "mergeWithExisting": MessageLookupByLibrary.simpleMessage( "Mit vorhandenem zusammenführen"), @@ -1345,14 +1345,14 @@ class MessageLookup extends MessageLookupByLibrary { "mostRecent": MessageLookupByLibrary.simpleMessage("Neuste"), "mostRelevant": MessageLookupByLibrary.simpleMessage("Nach Relevanz"), "mountains": MessageLookupByLibrary.simpleMessage("Über den Bergen"), - "moveItem": m49, + "moveItem": m50, "moveSelectedPhotosToOneDate": MessageLookupByLibrary.simpleMessage( "Ausgewählte Fotos auf ein Datum verschieben"), "moveToAlbum": MessageLookupByLibrary.simpleMessage("Zum Album verschieben"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage( "Zu verstecktem Album verschieben"), - "movedSuccessfullyTo": m50, + "movedSuccessfullyTo": m51, "movedToTrash": MessageLookupByLibrary.simpleMessage( "In den Papierkorb verschoben"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1406,10 +1406,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Keine Ergebnisse"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Keine Ergebnisse gefunden"), - "noSuggestionsForPerson": m51, + "noSuggestionsForPerson": m52, "noSystemLockFound": MessageLookupByLibrary.simpleMessage("Keine Systemsperre gefunden"), - "notPersonLabel": m52, + "notPersonLabel": m53, "notThisPerson": MessageLookupByLibrary.simpleMessage("Nicht diese Person?"), "nothingSharedWithYouYet": @@ -1424,7 +1424,7 @@ class MessageLookup extends MessageLookupByLibrary { "Auf ente"), "onTheRoad": MessageLookupByLibrary.simpleMessage("Wieder unterwegs"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), - "onlyFamilyAdminCanChangeCode": m53, + "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Nur diese"), "oops": MessageLookupByLibrary.simpleMessage("Hoppla"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( @@ -1454,7 +1454,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Mit PIN verbinden"), "pairingComplete": MessageLookupByLibrary.simpleMessage("Verbunden"), "panorama": MessageLookupByLibrary.simpleMessage("Panorama"), - "partyWithThem": m54, + "partyWithThem": m55, "passKeyPendingVerification": MessageLookupByLibrary.simpleMessage( "Verifizierung steht noch aus"), "passkey": MessageLookupByLibrary.simpleMessage("Passkey"), @@ -1464,7 +1464,7 @@ class MessageLookup extends MessageLookupByLibrary { "passwordChangedSuccessfully": MessageLookupByLibrary.simpleMessage( "Passwort erfolgreich geändert"), "passwordLock": MessageLookupByLibrary.simpleMessage("Passwort Sperre"), - "passwordStrength": m55, + "passwordStrength": m56, "passwordStrengthInfo": MessageLookupByLibrary.simpleMessage( "Die Berechnung der Stärke des Passworts basiert auf dessen Länge, den verwendeten Zeichen, und ob es in den 10.000 am häufigsten verwendeten Passwörtern vorkommt"), "passwordWarning": MessageLookupByLibrary.simpleMessage( @@ -1475,7 +1475,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Zahlung fehlgeschlagen"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Leider ist deine Zahlung fehlgeschlagen. Wende dich an unseren Support und wir helfen dir weiter!"), - "paymentFailedTalkToProvider": m56, + "paymentFailedTalkToProvider": m57, "pendingItems": MessageLookupByLibrary.simpleMessage("Ausstehende Elemente"), "pendingSync": @@ -1489,21 +1489,21 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Dauerhaft löschen"), "permanentlyDeleteFromDevice": MessageLookupByLibrary.simpleMessage( "Endgültig vom Gerät löschen?"), - "personIsAge": m57, + "personIsAge": m58, "personName": MessageLookupByLibrary.simpleMessage("Name der Person"), - "personTurningAge": m58, + "personTurningAge": m59, "pets": MessageLookupByLibrary.simpleMessage("Pelzige Begleiter"), "photoDescriptions": MessageLookupByLibrary.simpleMessage("Foto Beschreibungen"), "photoGridSize": MessageLookupByLibrary.simpleMessage("Fotorastergröße"), "photoSmallCase": MessageLookupByLibrary.simpleMessage("Foto"), - "photocountPhotos": m59, + "photocountPhotos": m60, "photos": MessageLookupByLibrary.simpleMessage("Fotos"), "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "Von dir hinzugefügte Fotos werden vom Album entfernt"), - "photosCount": m60, + "photosCount": m61, "photosKeepRelativeTimeDifference": MessageLookupByLibrary.simpleMessage( "Fotos behalten relativen Zeitunterschied"), @@ -1515,7 +1515,7 @@ class MessageLookup extends MessageLookupByLibrary { "Album auf dem Fernseher wiedergeben"), "playOriginal": MessageLookupByLibrary.simpleMessage("Original abspielen"), - "playStoreFreeTrialValidTill": m61, + "playStoreFreeTrialValidTill": m62, "playStream": MessageLookupByLibrary.simpleMessage("Stream abspielen"), "playstoreSubscription": MessageLookupByLibrary.simpleMessage("PlayStore Abo"), @@ -1528,14 +1528,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Bitte wenden Sie sich an den Support, falls das Problem weiterhin besteht"), - "pleaseEmailUsAt": m62, + "pleaseEmailUsAt": m63, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage( "Bitte erteile die nötigen Berechtigungen"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Bitte logge dich erneut ein"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Bitte wähle die zu entfernenden schnellen Links"), - "pleaseSendTheLogsTo": m63, + "pleaseSendTheLogsTo": m64, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Bitte versuche es erneut"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1549,7 +1549,7 @@ class MessageLookup extends MessageLookupByLibrary { "Bitte warte kurz, bevor du es erneut versuchst"), "pleaseWaitThisWillTakeAWhile": MessageLookupByLibrary.simpleMessage( "Bitte warten, dies wird eine Weile dauern."), - "posingWithThem": m64, + "posingWithThem": m65, "preparingLogs": MessageLookupByLibrary.simpleMessage( "Protokolle werden vorbereitet..."), "preserveMore": @@ -1569,7 +1569,7 @@ class MessageLookup extends MessageLookupByLibrary { "proceed": MessageLookupByLibrary.simpleMessage("Fortfahren"), "processed": MessageLookupByLibrary.simpleMessage("Verarbeitet"), "processing": MessageLookupByLibrary.simpleMessage("In Bearbeitung"), - "processingImport": m65, + "processingImport": m66, "processingVideos": MessageLookupByLibrary.simpleMessage("Verarbeite Videos"), "publicLinkCreated": @@ -1582,10 +1582,10 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("Ticket erstellen"), "rateTheApp": MessageLookupByLibrary.simpleMessage("App bewerten"), "rateUs": MessageLookupByLibrary.simpleMessage("Bewerte uns"), - "rateUsOnStore": m66, + "rateUsOnStore": m67, "reassignMe": MessageLookupByLibrary.simpleMessage("\"Ich\" neu zuweisen"), - "reassignedToName": m67, + "reassignedToName": m68, "reassigningLoading": MessageLookupByLibrary.simpleMessage("Ordne neu zu..."), "recover": MessageLookupByLibrary.simpleMessage("Wiederherstellen"), @@ -1597,7 +1597,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Konto wiederherstellen"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("Wiederherstellung gestartet"), - "recoveryInitiatedDesc": m68, + "recoveryInitiatedDesc": m69, "recoveryKey": MessageLookupByLibrary.simpleMessage( "Wiederherstellungs-Schlüssel"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( @@ -1612,12 +1612,12 @@ class MessageLookup extends MessageLookupByLibrary { "Wiederherstellungs-Schlüssel überprüft"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Dein Wiederherstellungsschlüssel ist die einzige Möglichkeit, auf deine Fotos zuzugreifen, solltest du dein Passwort vergessen. Du findest ihn unter Einstellungen > Konto.\n\nBitte gib deinen Wiederherstellungsschlüssel hier ein, um sicherzugehen, dass du ihn korrekt gesichert hast."), - "recoveryReady": m69, + "recoveryReady": m70, "recoverySuccessful": MessageLookupByLibrary.simpleMessage( "Wiederherstellung erfolgreich!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "Ein vertrauenswürdiger Kontakt versucht, auf dein Konto zuzugreifen"), - "recoveryWarningBody": m70, + "recoveryWarningBody": m71, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "Das aktuelle Gerät ist nicht leistungsfähig genug, um dein Passwort zu verifizieren, aber wir können es neu erstellen, damit es auf allen Geräten funktioniert.\n\nBitte melde dich mit deinem Wiederherstellungs-Schlüssel an und erstelle dein Passwort neu (Wenn du willst, kannst du dasselbe erneut verwenden)."), "recreatePasswordTitle": @@ -1633,7 +1633,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Gib diesen Code an deine Freunde"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Sie schließen ein bezahltes Abo ab"), - "referralStep3": m71, + "referralStep3": m72, "referrals": MessageLookupByLibrary.simpleMessage("Weiterempfehlungen"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Einlösungen sind derzeit pausiert"), @@ -1665,7 +1665,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Link entfernen"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Teilnehmer entfernen"), - "removeParticipantBody": m72, + "removeParticipantBody": m73, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Personenetikett entfernen"), "removePublicLink": @@ -1685,7 +1685,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("Datei umbenennen"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Abonnement erneuern"), - "renewsOn": m73, + "renewsOn": m74, "reportABug": MessageLookupByLibrary.simpleMessage("Fehler melden"), "reportBug": MessageLookupByLibrary.simpleMessage("Fehler melden"), "resendEmail": @@ -1711,7 +1711,7 @@ class MessageLookup extends MessageLookupByLibrary { "reviewSuggestions": MessageLookupByLibrary.simpleMessage("Vorschläge überprüfen"), "right": MessageLookupByLibrary.simpleMessage("Rechts"), - "roadtripWithThem": m74, + "roadtripWithThem": m75, "rotate": MessageLookupByLibrary.simpleMessage("Drehen"), "rotateLeft": MessageLookupByLibrary.simpleMessage("Nach links drehen"), "rotateRight": @@ -1768,8 +1768,8 @@ class MessageLookup extends MessageLookupByLibrary { "Laden Sie Personen ein, damit Sie geteilte Fotos hier einsehen können"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "Personen werden hier angezeigt, sobald Verarbeitung und Synchronisierung abgeschlossen sind"), - "searchResultCount": m75, - "searchSectionsLengthMismatch": m76, + "searchResultCount": m76, + "searchSectionsLengthMismatch": m77, "security": MessageLookupByLibrary.simpleMessage("Sicherheit"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Öffentliche Album-Links in der App ansehen"), @@ -1818,9 +1818,9 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeRemovedFromThisPerson": MessageLookupByLibrary.simpleMessage( "Ausgewählte Elemente werden von dieser Person entfernt, aber nicht aus deiner Bibliothek gelöscht."), - "selectedPhotos": m77, - "selectedPhotosWithYours": m78, - "selfiesWithThem": m79, + "selectedPhotos": m78, + "selectedPhotosWithYours": m79, + "selfiesWithThem": m80, "send": MessageLookupByLibrary.simpleMessage("Absenden"), "sendEmail": MessageLookupByLibrary.simpleMessage("E-Mail senden"), "sendInvite": MessageLookupByLibrary.simpleMessage("Einladung senden"), @@ -1850,16 +1850,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Teile jetzt ein Album"), "shareLink": MessageLookupByLibrary.simpleMessage("Link teilen"), - "shareMyVerificationID": m80, + "shareMyVerificationID": m81, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Teile mit ausgewählten Personen"), - "shareTextConfirmOthersVerificationID": m81, + "shareTextConfirmOthersVerificationID": m82, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Hol dir Ente, damit wir ganz einfach Fotos und Videos in Originalqualität teilen können\n\nhttps://ente.io"), - "shareTextReferralCode": m82, + "shareTextReferralCode": m83, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Mit Nicht-Ente-Benutzern teilen"), - "shareWithPeopleSectionTitle": m83, + "shareWithPeopleSectionTitle": m84, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("Teile dein erstes Album"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1870,7 +1870,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Neue geteilte Fotos"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Erhalte Benachrichtigungen, wenn jemand ein Foto zu einem gemeinsam genutzten Album hinzufügt, dem du angehörst"), - "sharedWith": m84, + "sharedWith": m85, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Mit mir geteilt"), "sharedWithYou": MessageLookupByLibrary.simpleMessage("Mit dir geteilt"), @@ -1888,11 +1888,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Andere Geräte abmelden"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Ich stimme den Nutzungsbedingungen und der Datenschutzerklärung zu"), - "singleFileDeleteFromDevice": m85, + "singleFileDeleteFromDevice": m86, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Es wird aus allen Alben gelöscht."), - "singleFileInBothLocalAndRemote": m86, - "singleFileInRemoteOnly": m87, + "singleFileInBothLocalAndRemote": m87, + "singleFileInRemoteOnly": m88, "skip": MessageLookupByLibrary.simpleMessage("Überspringen"), "social": MessageLookupByLibrary.simpleMessage("Social Media"), "someItemsAreInBothEnteAndYourDevice": @@ -1931,8 +1931,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Älteste zuerst"), "sparkleSuccess": MessageLookupByLibrary.simpleMessage("✨ Abgeschlossen"), - "sportsWithThem": m88, - "spotlightOnThem": m89, + "sportsWithThem": m89, + "spotlightOnThem": m90, "spotlightOnYourself": MessageLookupByLibrary.simpleMessage("Spot auf dich selbst"), "startAccountRecoveryTitle": @@ -1947,14 +1947,14 @@ class MessageLookup extends MessageLookupByLibrary { "storage": MessageLookupByLibrary.simpleMessage("Speicherplatz"), "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("Familie"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("Sie"), - "storageInGB": m90, + "storageInGB": m91, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage( "Speichergrenze überschritten"), - "storageUsageInfo": m91, + "storageUsageInfo": m92, "streamDetails": MessageLookupByLibrary.simpleMessage("Stream-Details"), "strongStrength": MessageLookupByLibrary.simpleMessage("Stark"), - "subAlreadyLinkedErrMessage": m92, - "subWillBeCancelledOn": m93, + "subAlreadyLinkedErrMessage": m93, + "subWillBeCancelledOn": m94, "subscribe": MessageLookupByLibrary.simpleMessage("Abonnieren"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Du benötigst ein aktives, bezahltes Abonnement, um das Teilen zu aktivieren."), @@ -1972,7 +1972,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Verbesserung vorschlagen"), "sunrise": MessageLookupByLibrary.simpleMessage("Am Horizont"), "support": MessageLookupByLibrary.simpleMessage("Support"), - "syncProgress": m94, + "syncProgress": m95, "syncStopped": MessageLookupByLibrary.simpleMessage("Synchronisierung angehalten"), "syncing": MessageLookupByLibrary.simpleMessage("Synchronisiere …"), @@ -1985,7 +1985,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Zum Entsperren antippen"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Zum Hochladen antippen"), - "tapToUploadIsIgnoredDue": m95, + "tapToUploadIsIgnoredDue": m96, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Etwas ist schiefgelaufen. Bitte versuche es später noch einmal. Sollte der Fehler weiter bestehen, kontaktiere unser Supportteam."), "terminate": MessageLookupByLibrary.simpleMessage("Beenden"), @@ -2009,7 +2009,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Diese Elemente werden von deinem Gerät gelöscht."), - "theyAlsoGetXGb": m96, + "theyAlsoGetXGb": m97, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Sie werden aus allen Alben gelöscht."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( @@ -2027,12 +2027,12 @@ class MessageLookup extends MessageLookupByLibrary { "Dieses Bild hat keine Exif-Daten"), "thisIsMeExclamation": MessageLookupByLibrary.simpleMessage("Das bin ich!"), - "thisIsPersonVerificationId": m97, + "thisIsPersonVerificationId": m98, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage( "Dies ist deine Verifizierungs-ID"), "thisWeekThroughTheYears": MessageLookupByLibrary.simpleMessage("Diese Woche über die Jahre"), - "thisWeekXYearsAgo": m98, + "thisWeekXYearsAgo": m99, "thisWillLogYouOutOfTheFollowingDevice": MessageLookupByLibrary.simpleMessage( "Dadurch wirst du von folgendem Gerät abgemeldet:"), @@ -2044,7 +2044,7 @@ class MessageLookup extends MessageLookupByLibrary { "thisWillRemovePublicLinksOfAllSelectedQuickLinks": MessageLookupByLibrary.simpleMessage( "Hiermit werden die öffentlichen Links aller ausgewählten schnellen Links entfernt."), - "throughTheYears": m99, + "throughTheYears": m100, "toEnableAppLockPleaseSetupDevicePasscodeOrScreen": MessageLookupByLibrary.simpleMessage( "Um die App-Sperre zu aktivieren, konfiguriere bitte den Gerätepasscode oder die Bildschirmsperre in den Systemeinstellungen."), @@ -2059,13 +2059,13 @@ class MessageLookup extends MessageLookupByLibrary { "total": MessageLookupByLibrary.simpleMessage("Gesamt"), "totalSize": MessageLookupByLibrary.simpleMessage("Gesamtgröße"), "trash": MessageLookupByLibrary.simpleMessage("Papierkorb"), - "trashDaysLeft": m100, + "trashDaysLeft": m101, "trim": MessageLookupByLibrary.simpleMessage("Schneiden"), - "tripInYear": m101, - "tripToLocation": m102, + "tripInYear": m102, + "tripToLocation": m103, "trustedContacts": MessageLookupByLibrary.simpleMessage("Vertrauenswürdige Kontakte"), - "trustedInviteBody": m103, + "trustedInviteBody": m104, "tryAgain": MessageLookupByLibrary.simpleMessage("Erneut versuchen"), "turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage( "Aktiviere die Sicherung, um neue Dateien in diesem Ordner automatisch zu Ente hochzuladen."), @@ -2084,7 +2084,7 @@ class MessageLookup extends MessageLookupByLibrary { "Zwei-Faktor-Authentifizierung (2FA) erfolgreich zurückgesetzt"), "twofactorSetup": MessageLookupByLibrary.simpleMessage( "Zweiten Faktor (2FA) einrichten"), - "typeOfGallerGallerytypeIsNotSupportedForRename": m104, + "typeOfGallerGallerytypeIsNotSupportedForRename": m105, "unarchive": MessageLookupByLibrary.simpleMessage("Dearchivieren"), "unarchiveAlbum": MessageLookupByLibrary.simpleMessage("Album dearchivieren"), @@ -2108,10 +2108,10 @@ class MessageLookup extends MessageLookupByLibrary { "updatingFolderSelection": MessageLookupByLibrary.simpleMessage( "Ordnerauswahl wird aktualisiert..."), "upgrade": MessageLookupByLibrary.simpleMessage("Upgrade"), - "uploadIsIgnoredDueToIgnorereason": m105, + "uploadIsIgnoredDueToIgnorereason": m106, "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage( "Dateien werden ins Album hochgeladen..."), - "uploadingMultipleMemories": m106, + "uploadingMultipleMemories": m107, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage( "Sichere ein Erinnerungsstück..."), "upto50OffUntil4thDec": MessageLookupByLibrary.simpleMessage( @@ -2130,7 +2130,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Ausgewähltes Foto verwenden"), "usedSpace": MessageLookupByLibrary.simpleMessage("Belegter Speicherplatz"), - "validTill": m107, + "validTill": m108, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Verifizierung fehlgeschlagen, bitte versuchen Sie es erneut"), @@ -2139,7 +2139,7 @@ class MessageLookup extends MessageLookupByLibrary { "verify": MessageLookupByLibrary.simpleMessage("Überprüfen"), "verifyEmail": MessageLookupByLibrary.simpleMessage("E-Mail-Adresse verifizieren"), - "verifyEmailID": m108, + "verifyEmailID": m109, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("Überprüfen"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("Passkey verifizieren"), @@ -2163,11 +2163,11 @@ class MessageLookup extends MessageLookupByLibrary { "viewLargeFilesDesc": MessageLookupByLibrary.simpleMessage( "Dateien anzeigen, die den meisten Speicherplatz belegen."), "viewLogs": MessageLookupByLibrary.simpleMessage("Protokolle anzeigen"), - "viewPersonToUnlink": m115, + "viewPersonToUnlink": m110, "viewRecoveryKey": MessageLookupByLibrary.simpleMessage( "Wiederherstellungsschlüssel anzeigen"), "viewer": MessageLookupByLibrary.simpleMessage("Zuschauer"), - "viewersSuccessfullyAdded": m109, + "viewersSuccessfullyAdded": m111, "visitWebToManage": MessageLookupByLibrary.simpleMessage( "Bitte rufe \"web.ente.io\" auf, um dein Abo zu verwalten"), "waitingForVerification": @@ -2180,7 +2180,7 @@ class MessageLookup extends MessageLookupByLibrary { "weDontSupportEditingPhotosAndAlbumsThatYouDont": MessageLookupByLibrary.simpleMessage( "Wir unterstützen keine Bearbeitung von Fotos und Alben, die du noch nicht besitzt"), - "weHaveSendEmailTo": m110, + "weHaveSendEmailTo": m112, "weakStrength": MessageLookupByLibrary.simpleMessage("Schwach"), "welcomeBack": MessageLookupByLibrary.simpleMessage("Willkommen zurück!"), @@ -2189,7 +2189,7 @@ class MessageLookup extends MessageLookupByLibrary { "Ein vertrauenswürdiger Kontakt kann helfen, deine Daten wiederherzustellen."), "yearShort": MessageLookupByLibrary.simpleMessage("Jahr"), "yearly": MessageLookupByLibrary.simpleMessage("Jährlich"), - "yearsAgo": m111, + "yearsAgo": m113, "yes": MessageLookupByLibrary.simpleMessage("Ja"), "yesCancel": MessageLookupByLibrary.simpleMessage("Ja, kündigen"), "yesConvertToViewer": MessageLookupByLibrary.simpleMessage( @@ -2203,7 +2203,7 @@ class MessageLookup extends MessageLookupByLibrary { "yesResetPerson": MessageLookupByLibrary.simpleMessage("Ja, Person zurücksetzen"), "you": MessageLookupByLibrary.simpleMessage("Du"), - "youAndThem": m112, + "youAndThem": m114, "youAreOnAFamilyPlan": MessageLookupByLibrary.simpleMessage("Du bist im Familien-Tarif!"), "youAreOnTheLatestVersion": MessageLookupByLibrary.simpleMessage( @@ -2222,7 +2222,7 @@ class MessageLookup extends MessageLookupByLibrary { "Du kannst nicht mit dir selbst teilen"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage( "Du hast keine archivierten Elemente."), - "youHaveSuccessfullyFreedUp": m113, + "youHaveSuccessfullyFreedUp": m115, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage( "Dein Benutzerkonto wurde gelöscht"), "yourMap": MessageLookupByLibrary.simpleMessage("Deine Karte"), diff --git a/mobile/lib/generated/intl/messages_en.dart b/mobile/lib/generated/intl/messages_en.dart index 48e1d35965..b277c7d3f3 100644 --- a/mobile/lib/generated/intl/messages_en.dart +++ b/mobile/lib/generated/intl/messages_en.dart @@ -100,230 +100,230 @@ class MessageLookup extends MessageLookupByLibrary { static String m26(count, formattedSize) => "${count} files, ${formattedSize} each"; - static String m114(name) => "This email is already linked to ${name}."; + static String m27(name) => "This email is already linked to ${name}."; - static String m27(newEmail) => "Email changed to ${newEmail}"; + static String m28(newEmail) => "Email changed to ${newEmail}"; - static String m28(email) => "${email} does not have an Ente account."; + static String m29(email) => "${email} does not have an Ente account."; - static String m29(email) => + static String m30(email) => "${email} does not have an Ente account.\n\nSend them an invite to share photos."; - static String m30(name) => "Embracing ${name}"; + static String m31(name) => "Embracing ${name}"; - static String m31(text) => "Extra photos found for ${text}"; + static String m32(text) => "Extra photos found for ${text}"; - static String m32(name) => "Feasting with ${name}"; - - static String m33(count, formattedNumber) => - "${Intl.plural(count, one: '1 file', other: '${formattedNumber} files')} on this device have been backed up safely"; + static String m33(name) => "Feasting with ${name}"; static String m34(count, formattedNumber) => + "${Intl.plural(count, one: '1 file', other: '${formattedNumber} files')} on this device have been backed up safely"; + + static String m35(count, formattedNumber) => "${Intl.plural(count, one: '1 file', other: '${formattedNumber} files')} in this album has been backed up safely"; - static String m35(storageAmountInGB) => + static String m36(storageAmountInGB) => "${storageAmountInGB} GB each time someone signs up for a paid plan and applies your code"; - static String m36(endDate) => "Free trial valid till ${endDate}"; + static String m37(endDate) => "Free trial valid till ${endDate}"; - static String m37(count) => + static String m38(count) => "You can still access ${Intl.plural(count, one: 'it', other: 'them')} on Ente as long as you have an active subscription"; - static String m38(sizeInMBorGB) => "Free up ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "Free up ${sizeInMBorGB}"; - static String m39(count, formattedSize) => + static String m40(count, formattedSize) => "${Intl.plural(count, one: 'It can be deleted from the device to free up ${formattedSize}', other: 'They can be deleted from the device to free up ${formattedSize}')}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Processing ${currentlyProcessing} / ${totalCount}"; - static String m41(name) => "Hiking with ${name}"; + static String m42(name) => "Hiking with ${name}"; - static String m42(count) => + static String m43(count) => "${Intl.plural(count, one: '${count} item', other: '${count} items')}"; - static String m43(name) => "Last time with ${name}"; + static String m44(name) => "Last time with ${name}"; - static String m44(email) => + static String m45(email) => "${email} has invited you to be a trusted contact"; - static String m45(expiryTime) => "Link will expire on ${expiryTime}"; + static String m46(expiryTime) => "Link will expire on ${expiryTime}"; - static String m46(email) => "Link person to ${email}"; + static String m47(email) => "Link person to ${email}"; - static String m47(personName, email) => + static String m48(personName, email) => "This will link ${personName} to ${email}"; - static String m48(count, formattedCount) => + static String m49(count, formattedCount) => "${Intl.plural(count, zero: 'no memories', one: '${formattedCount} memory', other: '${formattedCount} memories')}"; - static String m49(count) => + static String m50(count) => "${Intl.plural(count, one: 'Move item', other: 'Move items')}"; - static String m50(albumName) => "Moved successfully to ${albumName}"; + static String m51(albumName) => "Moved successfully to ${albumName}"; - static String m51(personName) => "No suggestions for ${personName}"; + static String m52(personName) => "No suggestions for ${personName}"; - static String m52(name) => "Not ${name}?"; + static String m53(name) => "Not ${name}?"; - static String m53(familyAdminEmail) => + static String m54(familyAdminEmail) => "Please contact ${familyAdminEmail} to change your code."; - static String m54(name) => "Party with ${name}"; + static String m55(name) => "Party with ${name}"; - static String m55(passwordStrengthValue) => + static String m56(passwordStrengthValue) => "Password strength: ${passwordStrengthValue}"; - static String m56(providerName) => + static String m57(providerName) => "Please talk to ${providerName} support if you were charged"; - static String m57(name, age) => "${name} is ${age}!"; + static String m58(name, age) => "${name} is ${age}!"; - static String m58(name, age) => "${name} turning ${age} soon"; - - static String m59(count) => - "${Intl.plural(count, zero: 'No photos', one: '1 photo', other: '${count} photos')}"; + static String m59(name, age) => "${name} turning ${age} soon"; static String m60(count) => + "${Intl.plural(count, zero: 'No photos', one: '1 photo', other: '${count} photos')}"; + + static String m61(count) => "${Intl.plural(count, zero: '0 photos', one: '1 photo', other: '${count} photos')}"; - static String m61(endDate) => + static String m62(endDate) => "Free trial valid till ${endDate}.\nYou can choose a paid plan afterwards."; - static String m62(toEmail) => "Please email us at ${toEmail}"; + static String m63(toEmail) => "Please email us at ${toEmail}"; - static String m63(toEmail) => "Please send the logs to \n${toEmail}"; + static String m64(toEmail) => "Please send the logs to \n${toEmail}"; - static String m64(name) => "Posing with ${name}"; + static String m65(name) => "Posing with ${name}"; - static String m65(folderName) => "Processing ${folderName}..."; + static String m66(folderName) => "Processing ${folderName}..."; - static String m66(storeName) => "Rate us on ${storeName}"; + static String m67(storeName) => "Rate us on ${storeName}"; - static String m67(name) => "Reassigned you to ${name}"; + static String m68(name) => "Reassigned you to ${name}"; - static String m68(days, email) => + static String m69(days, email) => "You can access the account after ${days} days. A notification will be sent to ${email}."; - static String m69(email) => + static String m70(email) => "You can now recover ${email}\'s account by setting a new password."; - static String m70(email) => "${email} is trying to recover your account."; + static String m71(email) => "${email} is trying to recover your account."; - static String m71(storageInGB) => + static String m72(storageInGB) => "3. Both of you get ${storageInGB} GB* free"; - static String m72(userEmail) => + static String m73(userEmail) => "${userEmail} will be removed from this shared album\n\nAny photos added by them will also be removed from the album"; - static String m73(endDate) => "Subscription renews on ${endDate}"; + static String m74(endDate) => "Subscription renews on ${endDate}"; - static String m74(name) => "Road trip with ${name}"; + static String m75(name) => "Road trip with ${name}"; - static String m75(count) => + static String m76(count) => "${Intl.plural(count, one: '${count} result found', other: '${count} results found')}"; - static String m76(snapshotLength, searchLength) => + static String m77(snapshotLength, searchLength) => "Sections length mismatch: ${snapshotLength} != ${searchLength}"; static String m117(count) => "${count} selected"; - static String m77(count) => "${count} selected"; + static String m78(count) => "${count} selected"; - static String m78(count, yourCount) => + static String m79(count, yourCount) => "${count} selected (${yourCount} yours)"; - static String m79(name) => "Selfies with ${name}"; - - static String m80(verificationID) => - "Here\'s my verification ID: ${verificationID} for ente.io."; + static String m80(name) => "Selfies with ${name}"; static String m81(verificationID) => + "Here\'s my verification ID: ${verificationID} for ente.io."; + + static String m82(verificationID) => "Hey, can you confirm that this is your ente.io verification ID: ${verificationID}"; - static String m82(referralCode, referralStorageInGB) => + static String m83(referralCode, referralStorageInGB) => "Ente referral code: ${referralCode} \n\nApply it in Settings → General → Referrals to get ${referralStorageInGB} GB free after you signup for a paid plan\n\nhttps://ente.io"; - static String m83(numberOfPeople) => + static String m84(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Share with specific people', one: 'Shared with 1 person', other: 'Shared with ${numberOfPeople} people')}"; - static String m84(emailIDs) => "Shared with ${emailIDs}"; - - static String m85(fileType) => - "This ${fileType} will be deleted from your device."; + static String m85(emailIDs) => "Shared with ${emailIDs}"; static String m86(fileType) => + "This ${fileType} will be deleted from your device."; + + static String m87(fileType) => "This ${fileType} is in both Ente and your device."; - static String m87(fileType) => "This ${fileType} will be deleted from Ente."; + static String m88(fileType) => "This ${fileType} will be deleted from Ente."; - static String m88(name) => "Sports with ${name}"; + static String m89(name) => "Sports with ${name}"; - static String m89(name) => "Spotlight on ${name}"; + static String m90(name) => "Spotlight on ${name}"; - static String m90(storageAmountInGB) => "${storageAmountInGB} GB"; + static String m91(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m91( + static String m92( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} of ${totalAmount} ${totalStorageUnit} used"; - static String m92(id) => + static String m93(id) => "Your ${id} is already linked to another Ente account.\nIf you would like to use your ${id} with this account, please contact our support\'\'"; - static String m93(endDate) => + static String m94(endDate) => "Your subscription will be cancelled on ${endDate}"; - static String m94(completed, total) => + static String m95(completed, total) => "${completed}/${total} memories preserved"; - static String m95(ignoreReason) => + static String m96(ignoreReason) => "Tap to upload, upload is currently ignored due to ${ignoreReason}"; - static String m96(storageAmountInGB) => + static String m97(storageAmountInGB) => "They also get ${storageAmountInGB} GB"; - static String m97(email) => "This is ${email}\'s Verification ID"; + static String m98(email) => "This is ${email}\'s Verification ID"; - static String m98(count) => + static String m99(count) => "${Intl.plural(count, one: 'This week, ${count} year ago', other: 'This week, ${count} years ago')}"; - static String m99(dateFormat) => "${dateFormat} through the years"; + static String m100(dateFormat) => "${dateFormat} through the years"; - static String m100(count) => + static String m101(count) => "${Intl.plural(count, zero: 'Soon', one: '1 day', other: '${count} days')}"; - static String m101(year) => "Trip in ${year}"; + static String m102(year) => "Trip in ${year}"; - static String m102(location) => "Trip to ${location}"; + static String m103(location) => "Trip to ${location}"; - static String m103(email) => + static String m104(email) => "You have been invited to be a legacy contact by ${email}."; - static String m104(galleryType) => + static String m105(galleryType) => "Type of gallery ${galleryType} is not supported for rename"; - static String m105(ignoreReason) => + static String m106(ignoreReason) => "Upload is ignored due to ${ignoreReason}"; - static String m106(count) => "Preserving ${count} memories..."; + static String m107(count) => "Preserving ${count} memories..."; - static String m107(endDate) => "Valid till ${endDate}"; + static String m108(endDate) => "Valid till ${endDate}"; - static String m108(email) => "Verify ${email}"; + static String m109(email) => "Verify ${email}"; - static String m115(name) => "View ${name} to unlink"; - - static String m109(count) => - "${Intl.plural(count, zero: 'Added 0 viewers', one: 'Added 1 viewer', other: 'Added ${count} viewers')}"; - - static String m110(email) => "We have sent a mail to ${email}"; + static String m110(name) => "View ${name} to unlink"; static String m111(count) => + "${Intl.plural(count, zero: 'Added 0 viewers', one: 'Added 1 viewer', other: 'Added ${count} viewers')}"; + + static String m112(email) => "We have sent a mail to ${email}"; + + static String m113(count) => "${Intl.plural(count, one: '${count} year ago', other: '${count} years ago')}"; - static String m112(name) => "You and ${name}"; + static String m114(name) => "You and ${name}"; - static String m113(storageSaved) => + static String m115(storageSaved) => "You have successfully freed up ${storageSaved}!"; final messages = _notInlinedMessages(_notInlinedMessages); @@ -865,7 +865,7 @@ class MessageLookup extends MessageLookupByLibrary { "duplicateFileCountWithStorageSaved": m25, "duplicateItemsGroup": m26, "edit": MessageLookupByLibrary.simpleMessage("Edit"), - "editEmailAlreadyLinked": m114, + "editEmailAlreadyLinked": m27, "editLocation": MessageLookupByLibrary.simpleMessage("Edit location"), "editLocationTagTitle": MessageLookupByLibrary.simpleMessage("Edit location"), @@ -879,16 +879,16 @@ class MessageLookup extends MessageLookupByLibrary { "email": MessageLookupByLibrary.simpleMessage("Email"), "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage("Email already registered."), - "emailChangedTo": m27, - "emailDoesNotHaveEnteAccount": m28, - "emailNoEnteAccount": m29, + "emailChangedTo": m28, + "emailDoesNotHaveEnteAccount": m29, + "emailNoEnteAccount": m30, "emailNotRegistered": MessageLookupByLibrary.simpleMessage("Email not registered."), "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("Email verification"), "emailYourLogs": MessageLookupByLibrary.simpleMessage("Email your logs"), - "embracingThem": m30, + "embracingThem": m31, "emergencyContacts": MessageLookupByLibrary.simpleMessage("Emergency Contacts"), "empty": MessageLookupByLibrary.simpleMessage("Empty"), @@ -963,7 +963,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Export your data"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage("Extra photos found"), - "extraPhotosFoundFor": m31, + "extraPhotosFoundFor": m32, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Face not clustered yet, please come back later"), "faceRecognition": @@ -1000,7 +1000,7 @@ class MessageLookup extends MessageLookupByLibrary { "faq": MessageLookupByLibrary.simpleMessage("FAQ"), "faqs": MessageLookupByLibrary.simpleMessage("FAQs"), "favorite": MessageLookupByLibrary.simpleMessage("Favorite"), - "feastingWithThem": m32, + "feastingWithThem": m33, "feedback": MessageLookupByLibrary.simpleMessage("Feedback"), "file": MessageLookupByLibrary.simpleMessage("File"), "fileFailedToSaveToGallery": MessageLookupByLibrary.simpleMessage( @@ -1014,8 +1014,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("File types"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("File types and names"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m34, + "filesBackedUpInAlbum": m35, "filesDeleted": MessageLookupByLibrary.simpleMessage("Files deleted"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage("Files saved to gallery"), @@ -1032,26 +1032,26 @@ class MessageLookup extends MessageLookupByLibrary { "foundFaces": MessageLookupByLibrary.simpleMessage("Found faces"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("Free storage claimed"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m36, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("Free storage usable"), "freeTrial": MessageLookupByLibrary.simpleMessage("Free trial"), - "freeTrialValidTill": m36, - "freeUpAccessPostDelete": m37, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAccessPostDelete": m38, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage("Free up device space"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "Save space on your device by clearing files that have been already backed up."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Free up space"), - "freeUpSpaceSaving": m39, + "freeUpSpaceSaving": m40, "gallery": MessageLookupByLibrary.simpleMessage("Gallery"), "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "Up to 1000 memories shown in gallery"), "general": MessageLookupByLibrary.simpleMessage("General"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Generating encryption keys..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Go to settings"), "googlePlayId": MessageLookupByLibrary.simpleMessage("Google Play ID"), "grantFullAccessPrompt": MessageLookupByLibrary.simpleMessage( @@ -1079,7 +1079,7 @@ class MessageLookup extends MessageLookupByLibrary { "hideSharedItemsFromHomeGallery": MessageLookupByLibrary.simpleMessage( "Hide shared items from home gallery"), "hiding": MessageLookupByLibrary.simpleMessage("Hiding..."), - "hikingWithThem": m41, + "hikingWithThem": m42, "hostedAtOsmFrance": MessageLookupByLibrary.simpleMessage("Hosted at OSM France"), "howItWorks": MessageLookupByLibrary.simpleMessage("How it works"), @@ -1134,7 +1134,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "It looks like something went wrong. Please retry after some time. If the error persists, please contact our support team."), - "itemCount": m42, + "itemCount": m43, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Items show the number of days remaining before permanent deletion"), @@ -1154,7 +1154,7 @@ class MessageLookup extends MessageLookupByLibrary { "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage( "Kindly help us with this information"), "language": MessageLookupByLibrary.simpleMessage("Language"), - "lastTimeWithThem": m43, + "lastTimeWithThem": m44, "lastUpdated": MessageLookupByLibrary.simpleMessage("Last updated"), "lastYearsTrip": MessageLookupByLibrary.simpleMessage("Last year\'s trip"), @@ -1167,7 +1167,7 @@ class MessageLookup extends MessageLookupByLibrary { "legacy": MessageLookupByLibrary.simpleMessage("Legacy"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Legacy accounts"), - "legacyInvite": m44, + "legacyInvite": m45, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "Legacy allows trusted contacts to access your account in your absence."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( @@ -1183,7 +1183,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("for faster sharing"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Enabled"), "linkExpired": MessageLookupByLibrary.simpleMessage("Expired"), - "linkExpiresOn": m45, + "linkExpiresOn": m46, "linkExpiry": MessageLookupByLibrary.simpleMessage("Link expiry"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("Link has expired"), @@ -1191,8 +1191,8 @@ class MessageLookup extends MessageLookupByLibrary { "linkPerson": MessageLookupByLibrary.simpleMessage("Link person"), "linkPersonCaption": MessageLookupByLibrary.simpleMessage( "for better sharing experience"), - "linkPersonToEmail": m46, - "linkPersonToEmailConfirmation": m47, + "linkPersonToEmail": m47, + "linkPersonToEmailConfirmation": m48, "livePhotos": MessageLookupByLibrary.simpleMessage("Live Photos"), "loadMessage1": MessageLookupByLibrary.simpleMessage( "You can share your subscription with your family"), @@ -1280,7 +1280,7 @@ class MessageLookup extends MessageLookupByLibrary { "memories": MessageLookupByLibrary.simpleMessage("Memories"), "memoriesWidgetDesc": MessageLookupByLibrary.simpleMessage( "Select the kind of memories you wish to see on your homescreen."), - "memoryCount": m48, + "memoryCount": m49, "merchandise": MessageLookupByLibrary.simpleMessage("Merchandise"), "mergeWithExisting": MessageLookupByLibrary.simpleMessage("Merge with existing"), @@ -1311,13 +1311,13 @@ class MessageLookup extends MessageLookupByLibrary { "mostRecent": MessageLookupByLibrary.simpleMessage("Most recent"), "mostRelevant": MessageLookupByLibrary.simpleMessage("Most relevant"), "mountains": MessageLookupByLibrary.simpleMessage("Over the hills"), - "moveItem": m49, + "moveItem": m50, "moveSelectedPhotosToOneDate": MessageLookupByLibrary.simpleMessage( "Move selected photos to one date"), "moveToAlbum": MessageLookupByLibrary.simpleMessage("Move to album"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("Move to hidden album"), - "movedSuccessfullyTo": m50, + "movedSuccessfullyTo": m51, "movedToTrash": MessageLookupByLibrary.simpleMessage("Moved to trash"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage("Moving files to album..."), @@ -1368,10 +1368,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("No results"), "noResultsFound": MessageLookupByLibrary.simpleMessage("No results found"), - "noSuggestionsForPerson": m51, + "noSuggestionsForPerson": m52, "noSystemLockFound": MessageLookupByLibrary.simpleMessage("No system lock found"), - "notPersonLabel": m52, + "notPersonLabel": m53, "notThisPerson": MessageLookupByLibrary.simpleMessage("Not this person?"), "nothingSharedWithYouYet": @@ -1387,7 +1387,7 @@ class MessageLookup extends MessageLookupByLibrary { "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), "onThisDayMemories": MessageLookupByLibrary.simpleMessage("On this day memories"), - "onlyFamilyAdminCanChangeCode": m53, + "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Only them"), "oops": MessageLookupByLibrary.simpleMessage("Oops"), "oopsCouldNotSaveEdits": @@ -1416,7 +1416,7 @@ class MessageLookup extends MessageLookupByLibrary { "pairingComplete": MessageLookupByLibrary.simpleMessage("Pairing complete"), "panorama": MessageLookupByLibrary.simpleMessage("Panorama"), - "partyWithThem": m54, + "partyWithThem": m55, "passKeyPendingVerification": MessageLookupByLibrary.simpleMessage( "Verification is still pending"), "passkey": MessageLookupByLibrary.simpleMessage("Passkey"), @@ -1426,7 +1426,7 @@ class MessageLookup extends MessageLookupByLibrary { "passwordChangedSuccessfully": MessageLookupByLibrary.simpleMessage( "Password changed successfully"), "passwordLock": MessageLookupByLibrary.simpleMessage("Password lock"), - "passwordStrength": m55, + "passwordStrength": m56, "passwordStrengthInfo": MessageLookupByLibrary.simpleMessage( "Password strength is calculated considering the length of the password, used characters, and whether or not the password appears in the top 10,000 most used passwords"), "passwordWarning": MessageLookupByLibrary.simpleMessage( @@ -1438,7 +1438,7 @@ class MessageLookup extends MessageLookupByLibrary { "paymentFailed": MessageLookupByLibrary.simpleMessage("Payment failed"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Unfortunately your payment failed. Please contact support and we\'ll help you out!"), - "paymentFailedTalkToProvider": m56, + "paymentFailedTalkToProvider": m57, "pendingItems": MessageLookupByLibrary.simpleMessage("Pending items"), "pendingSync": MessageLookupByLibrary.simpleMessage("Pending sync"), "people": MessageLookupByLibrary.simpleMessage("People"), @@ -1452,21 +1452,21 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Permanently delete"), "permanentlyDeleteFromDevice": MessageLookupByLibrary.simpleMessage( "Permanently delete from device?"), - "personIsAge": m57, + "personIsAge": m58, "personName": MessageLookupByLibrary.simpleMessage("Person name"), - "personTurningAge": m58, + "personTurningAge": m59, "pets": MessageLookupByLibrary.simpleMessage("Furry companions"), "photoDescriptions": MessageLookupByLibrary.simpleMessage("Photo descriptions"), "photoGridSize": MessageLookupByLibrary.simpleMessage("Photo grid size"), "photoSmallCase": MessageLookupByLibrary.simpleMessage("photo"), - "photocountPhotos": m59, + "photocountPhotos": m60, "photos": MessageLookupByLibrary.simpleMessage("Photos"), "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "Photos added by you will be removed from the album"), - "photosCount": m60, + "photosCount": m61, "photosKeepRelativeTimeDifference": MessageLookupByLibrary.simpleMessage( "Photos keep relative time difference"), @@ -1476,7 +1476,7 @@ class MessageLookup extends MessageLookupByLibrary { "pinLock": MessageLookupByLibrary.simpleMessage("PIN lock"), "playOnTv": MessageLookupByLibrary.simpleMessage("Play album on TV"), "playOriginal": MessageLookupByLibrary.simpleMessage("Play original"), - "playStoreFreeTrialValidTill": m61, + "playStoreFreeTrialValidTill": m62, "playStream": MessageLookupByLibrary.simpleMessage("Play stream"), "playstoreSubscription": MessageLookupByLibrary.simpleMessage("PlayStore subscription"), @@ -1489,14 +1489,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Please contact support if the problem persists"), - "pleaseEmailUsAt": m62, + "pleaseEmailUsAt": m63, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage("Please grant permissions"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Please login again"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Please select quick links to remove"), - "pleaseSendTheLogsTo": m63, + "pleaseSendTheLogsTo": m64, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Please try again"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1510,7 +1510,7 @@ class MessageLookup extends MessageLookupByLibrary { "Please wait for sometime before retrying"), "pleaseWaitThisWillTakeAWhile": MessageLookupByLibrary.simpleMessage( "Please wait, this will take a while."), - "posingWithThem": m64, + "posingWithThem": m65, "preparingLogs": MessageLookupByLibrary.simpleMessage("Preparing logs..."), "preserveMore": MessageLookupByLibrary.simpleMessage("Preserve more"), @@ -1529,7 +1529,7 @@ class MessageLookup extends MessageLookupByLibrary { "proceed": MessageLookupByLibrary.simpleMessage("Proceed"), "processed": MessageLookupByLibrary.simpleMessage("Processed"), "processing": MessageLookupByLibrary.simpleMessage("Processing"), - "processingImport": m65, + "processingImport": m66, "processingVideos": MessageLookupByLibrary.simpleMessage("Processing videos"), "publicLinkCreated": @@ -1542,9 +1542,9 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("Raise ticket"), "rateTheApp": MessageLookupByLibrary.simpleMessage("Rate the app"), "rateUs": MessageLookupByLibrary.simpleMessage("Rate us"), - "rateUsOnStore": m66, + "rateUsOnStore": m67, "reassignMe": MessageLookupByLibrary.simpleMessage("Reassign \"Me\""), - "reassignedToName": m67, + "reassignedToName": m68, "reassigningLoading": MessageLookupByLibrary.simpleMessage("Reassigning..."), "recover": MessageLookupByLibrary.simpleMessage("Recover"), @@ -1555,7 +1555,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Recover account"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("Recovery initiated"), - "recoveryInitiatedDesc": m68, + "recoveryInitiatedDesc": m69, "recoveryKey": MessageLookupByLibrary.simpleMessage("Recovery key"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Recovery key copied to clipboard"), @@ -1569,12 +1569,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Recovery key verified"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Your recovery key is the only way to recover your photos if you forget your password. You can find your recovery key in Settings > Account.\n\nPlease enter your recovery key here to verify that you have saved it correctly."), - "recoveryReady": m69, + "recoveryReady": m70, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("Recovery successful!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "A trusted contact is trying to access your account"), - "recoveryWarningBody": m70, + "recoveryWarningBody": m71, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "The current device is not powerful enough to verify your password, but we can regenerate in a way that works with all devices.\n\nPlease login using your recovery key and regenerate your password (you can use the same one again if you wish)."), "recreatePasswordTitle": @@ -1589,7 +1589,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Give this code to your friends"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. They sign up for a paid plan"), - "referralStep3": m71, + "referralStep3": m72, "referrals": MessageLookupByLibrary.simpleMessage("Referrals"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Referrals are currently paused"), @@ -1618,7 +1618,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Remove link"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Remove participant"), - "removeParticipantBody": m72, + "removeParticipantBody": m73, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Remove person label"), "removePublicLink": @@ -1638,7 +1638,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("Rename file"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Renew subscription"), - "renewsOn": m73, + "renewsOn": m74, "reportABug": MessageLookupByLibrary.simpleMessage("Report a bug"), "reportBug": MessageLookupByLibrary.simpleMessage("Report bug"), "resendEmail": MessageLookupByLibrary.simpleMessage("Resend email"), @@ -1663,7 +1663,7 @@ class MessageLookup extends MessageLookupByLibrary { "reviewSuggestions": MessageLookupByLibrary.simpleMessage("Review suggestions"), "right": MessageLookupByLibrary.simpleMessage("Right"), - "roadtripWithThem": m74, + "roadtripWithThem": m75, "rotate": MessageLookupByLibrary.simpleMessage("Rotate"), "rotateLeft": MessageLookupByLibrary.simpleMessage("Rotate left"), "rotateRight": MessageLookupByLibrary.simpleMessage("Rotate right"), @@ -1717,8 +1717,8 @@ class MessageLookup extends MessageLookupByLibrary { "Invite people, and you\'ll see all photos shared by them here"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "People will be shown here once processing and syncing is complete"), - "searchResultCount": m75, - "searchSectionsLengthMismatch": m76, + "searchResultCount": m76, + "searchSectionsLengthMismatch": m77, "security": MessageLookupByLibrary.simpleMessage("Security"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "See public album links in app"), @@ -1768,9 +1768,9 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeRemovedFromThisPerson": MessageLookupByLibrary.simpleMessage( "Selected items will be removed from this person, but not deleted from your library."), - "selectedPhotos": m77, - "selectedPhotosWithYours": m78, - "selfiesWithThem": m79, + "selectedPhotos": m78, + "selectedPhotosWithYours": m79, + "selfiesWithThem": m80, "send": MessageLookupByLibrary.simpleMessage("Send"), "sendEmail": MessageLookupByLibrary.simpleMessage("Send email"), "sendInvite": MessageLookupByLibrary.simpleMessage("Send invite"), @@ -1799,16 +1799,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Share an album now"), "shareLink": MessageLookupByLibrary.simpleMessage("Share link"), - "shareMyVerificationID": m80, + "shareMyVerificationID": m81, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Share only with the people you want"), - "shareTextConfirmOthersVerificationID": m81, + "shareTextConfirmOthersVerificationID": m82, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Download Ente so we can easily share original quality photos and videos\n\nhttps://ente.io"), - "shareTextReferralCode": m82, + "shareTextReferralCode": m83, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage("Share with non-Ente users"), - "shareWithPeopleSectionTitle": m83, + "shareWithPeopleSectionTitle": m84, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("Share your first album"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1819,7 +1819,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("New shared photos"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Receive notifications when someone adds a photo to a shared album that you\'re a part of"), - "sharedWith": m84, + "sharedWith": m85, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Shared with me"), "sharedWithYou": MessageLookupByLibrary.simpleMessage("Shared with you"), @@ -1836,11 +1836,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Sign out other devices"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "I agree to the terms of service and privacy policy"), - "singleFileDeleteFromDevice": m85, + "singleFileDeleteFromDevice": m86, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "It will be deleted from all albums."), - "singleFileInBothLocalAndRemote": m86, - "singleFileInRemoteOnly": m87, + "singleFileInBothLocalAndRemote": m87, + "singleFileInRemoteOnly": m88, "skip": MessageLookupByLibrary.simpleMessage("Skip"), "smartMemories": MessageLookupByLibrary.simpleMessage("Smart memories"), "social": MessageLookupByLibrary.simpleMessage("Social"), @@ -1877,8 +1877,8 @@ class MessageLookup extends MessageLookupByLibrary { "sortNewestFirst": MessageLookupByLibrary.simpleMessage("Newest first"), "sortOldestFirst": MessageLookupByLibrary.simpleMessage("Oldest first"), "sparkleSuccess": MessageLookupByLibrary.simpleMessage("✨ Success"), - "sportsWithThem": m88, - "spotlightOnThem": m89, + "sportsWithThem": m89, + "spotlightOnThem": m90, "spotlightOnYourself": MessageLookupByLibrary.simpleMessage("Spotlight on yourself"), "startAccountRecoveryTitle": @@ -1892,14 +1892,14 @@ class MessageLookup extends MessageLookupByLibrary { "storage": MessageLookupByLibrary.simpleMessage("Storage"), "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("Family"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("You"), - "storageInGB": m90, + "storageInGB": m91, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Storage limit exceeded"), - "storageUsageInfo": m91, + "storageUsageInfo": m92, "streamDetails": MessageLookupByLibrary.simpleMessage("Stream details"), "strongStrength": MessageLookupByLibrary.simpleMessage("Strong"), - "subAlreadyLinkedErrMessage": m92, - "subWillBeCancelledOn": m93, + "subAlreadyLinkedErrMessage": m93, + "subWillBeCancelledOn": m94, "subscribe": MessageLookupByLibrary.simpleMessage("Subscribe"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "You need an active paid subscription to enable sharing."), @@ -1917,7 +1917,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Suggest features"), "sunrise": MessageLookupByLibrary.simpleMessage("On the horizon"), "support": MessageLookupByLibrary.simpleMessage("Support"), - "syncProgress": m94, + "syncProgress": m95, "syncStopped": MessageLookupByLibrary.simpleMessage("Sync stopped"), "syncing": MessageLookupByLibrary.simpleMessage("Syncing..."), "systemTheme": MessageLookupByLibrary.simpleMessage("System"), @@ -1926,7 +1926,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Tap to enter code"), "tapToUnlock": MessageLookupByLibrary.simpleMessage("Tap to unlock"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Tap to upload"), - "tapToUploadIsIgnoredDue": m95, + "tapToUploadIsIgnoredDue": m96, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "It looks like something went wrong. Please retry after some time. If the error persists, please contact our support team."), "terminate": MessageLookupByLibrary.simpleMessage("Terminate"), @@ -1949,7 +1949,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "These items will be deleted from your device."), - "theyAlsoGetXGb": m96, + "theyAlsoGetXGb": m97, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "They will be deleted from all albums."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( @@ -1967,12 +1967,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("This image has no exif data"), "thisIsMeExclamation": MessageLookupByLibrary.simpleMessage("This is me!"), - "thisIsPersonVerificationId": m97, + "thisIsPersonVerificationId": m98, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage( "This is your Verification ID"), "thisWeekThroughTheYears": MessageLookupByLibrary.simpleMessage("This week through the years"), - "thisWeekXYearsAgo": m98, + "thisWeekXYearsAgo": m99, "thisWillLogYouOutOfTheFollowingDevice": MessageLookupByLibrary.simpleMessage( "This will log you out of the following device:"), @@ -1984,7 +1984,7 @@ class MessageLookup extends MessageLookupByLibrary { "thisWillRemovePublicLinksOfAllSelectedQuickLinks": MessageLookupByLibrary.simpleMessage( "This will remove public links of all selected quick links."), - "throughTheYears": m99, + "throughTheYears": m100, "toEnableAppLockPleaseSetupDevicePasscodeOrScreen": MessageLookupByLibrary.simpleMessage( "To enable app lock, please setup device passcode or screen lock in your system settings."), @@ -1998,13 +1998,13 @@ class MessageLookup extends MessageLookupByLibrary { "total": MessageLookupByLibrary.simpleMessage("total"), "totalSize": MessageLookupByLibrary.simpleMessage("Total size"), "trash": MessageLookupByLibrary.simpleMessage("Trash"), - "trashDaysLeft": m100, + "trashDaysLeft": m101, "trim": MessageLookupByLibrary.simpleMessage("Trim"), - "tripInYear": m101, - "tripToLocation": m102, + "tripInYear": m102, + "tripToLocation": m103, "trustedContacts": MessageLookupByLibrary.simpleMessage("Trusted contacts"), - "trustedInviteBody": m103, + "trustedInviteBody": m104, "tryAgain": MessageLookupByLibrary.simpleMessage("Try again"), "turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage( "Turn on backup to automatically upload files added to this device folder to Ente."), @@ -2022,7 +2022,7 @@ class MessageLookup extends MessageLookupByLibrary { "Two-factor authentication successfully reset"), "twofactorSetup": MessageLookupByLibrary.simpleMessage("Two-factor setup"), - "typeOfGallerGallerytypeIsNotSupportedForRename": m104, + "typeOfGallerGallerytypeIsNotSupportedForRename": m105, "unarchive": MessageLookupByLibrary.simpleMessage("Unarchive"), "unarchiveAlbum": MessageLookupByLibrary.simpleMessage("Unarchive album"), @@ -2045,10 +2045,10 @@ class MessageLookup extends MessageLookupByLibrary { "updatingFolderSelection": MessageLookupByLibrary.simpleMessage( "Updating folder selection..."), "upgrade": MessageLookupByLibrary.simpleMessage("Upgrade"), - "uploadIsIgnoredDueToIgnorereason": m105, + "uploadIsIgnoredDueToIgnorereason": m106, "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage("Uploading files to album..."), - "uploadingMultipleMemories": m106, + "uploadingMultipleMemories": m107, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage("Preserving 1 memory..."), "upto50OffUntil4thDec": MessageLookupByLibrary.simpleMessage( @@ -2066,7 +2066,7 @@ class MessageLookup extends MessageLookupByLibrary { "useSelectedPhoto": MessageLookupByLibrary.simpleMessage("Use selected photo"), "usedSpace": MessageLookupByLibrary.simpleMessage("Used space"), - "validTill": m107, + "validTill": m108, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Verification failed, please try again"), @@ -2074,7 +2074,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Verification ID"), "verify": MessageLookupByLibrary.simpleMessage("Verify"), "verifyEmail": MessageLookupByLibrary.simpleMessage("Verify email"), - "verifyEmailID": m108, + "verifyEmailID": m109, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("Verify"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("Verify passkey"), "verifyPassword": @@ -2097,11 +2097,11 @@ class MessageLookup extends MessageLookupByLibrary { "viewLargeFilesDesc": MessageLookupByLibrary.simpleMessage( "View files that are consuming the most amount of storage."), "viewLogs": MessageLookupByLibrary.simpleMessage("View logs"), - "viewPersonToUnlink": m115, + "viewPersonToUnlink": m110, "viewRecoveryKey": MessageLookupByLibrary.simpleMessage("View recovery key"), "viewer": MessageLookupByLibrary.simpleMessage("Viewer"), - "viewersSuccessfullyAdded": m109, + "viewersSuccessfullyAdded": m111, "visitWebToManage": MessageLookupByLibrary.simpleMessage( "Please visit web.ente.io to manage your subscription"), "waitingForVerification": @@ -2114,7 +2114,7 @@ class MessageLookup extends MessageLookupByLibrary { "weDontSupportEditingPhotosAndAlbumsThatYouDont": MessageLookupByLibrary.simpleMessage( "We don\'t support editing photos and albums that you don\'t own yet"), - "weHaveSendEmailTo": m110, + "weHaveSendEmailTo": m112, "weakStrength": MessageLookupByLibrary.simpleMessage("Weak"), "welcomeBack": MessageLookupByLibrary.simpleMessage("Welcome back!"), "whatsNew": MessageLookupByLibrary.simpleMessage("What\'s new"), @@ -2123,7 +2123,7 @@ class MessageLookup extends MessageLookupByLibrary { "widgets": MessageLookupByLibrary.simpleMessage("Widgets"), "yearShort": MessageLookupByLibrary.simpleMessage("yr"), "yearly": MessageLookupByLibrary.simpleMessage("Yearly"), - "yearsAgo": m111, + "yearsAgo": m113, "yes": MessageLookupByLibrary.simpleMessage("Yes"), "yesCancel": MessageLookupByLibrary.simpleMessage("Yes, cancel"), "yesConvertToViewer": @@ -2137,7 +2137,7 @@ class MessageLookup extends MessageLookupByLibrary { "yesResetPerson": MessageLookupByLibrary.simpleMessage("Yes, reset person"), "you": MessageLookupByLibrary.simpleMessage("You"), - "youAndThem": m112, + "youAndThem": m114, "youAreOnAFamilyPlan": MessageLookupByLibrary.simpleMessage("You are on a family plan!"), "youAreOnTheLatestVersion": MessageLookupByLibrary.simpleMessage( @@ -2156,7 +2156,7 @@ class MessageLookup extends MessageLookupByLibrary { "You cannot share with yourself"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage( "You don\'t have any archived items."), - "youHaveSuccessfullyFreedUp": m113, + "youHaveSuccessfullyFreedUp": m115, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage( "Your account has been deleted"), "yourMap": MessageLookupByLibrary.simpleMessage("Your map"), diff --git a/mobile/lib/generated/intl/messages_es.dart b/mobile/lib/generated/intl/messages_es.dart index bcdf6c7b31..f174fc1adb 100644 --- a/mobile/lib/generated/intl/messages_es.dart +++ b/mobile/lib/generated/intl/messages_es.dart @@ -100,225 +100,225 @@ class MessageLookup extends MessageLookupByLibrary { static String m26(count, formattedSize) => "${count} archivos, ${formattedSize} cada uno"; - static String m27(newEmail) => "Correo cambiado a ${newEmail}"; + static String m28(newEmail) => "Correo cambiado a ${newEmail}"; - static String m28(email) => "${email} no tiene una cuenta de Ente."; + static String m29(email) => "${email} no tiene una cuenta de Ente."; - static String m29(email) => + static String m30(email) => "${email} no tiene una cuente en Ente.\n\nEnvíale una invitación para compartir fotos."; - static String m30(name) => "Abrazando a ${name}"; + static String m31(name) => "Abrazando a ${name}"; - static String m31(text) => "Fotos adicionales encontradas para ${text}"; + static String m32(text) => "Fotos adicionales encontradas para ${text}"; - static String m32(name) => "Festejando con ${name}"; - - static String m33(count, formattedNumber) => - "Se ha realizado la copia de seguridad de ${Intl.plural(count, one: '1 archivo', other: '${formattedNumber} archivos')} de este dispositivo de forma segura"; + static String m33(name) => "Festejando con ${name}"; static String m34(count, formattedNumber) => + "Se ha realizado la copia de seguridad de ${Intl.plural(count, one: '1 archivo', other: '${formattedNumber} archivos')} de este dispositivo de forma segura"; + + static String m35(count, formattedNumber) => "Se ha realizado la copia de seguridad de ${Intl.plural(count, one: '1 archivo', other: '${formattedNumber} archivos')} de este álbum de forma segura"; - static String m35(storageAmountInGB) => + static String m36(storageAmountInGB) => "${storageAmountInGB} GB cada vez que alguien se registra en un plan de pago y aplica tu código"; - static String m36(endDate) => "Prueba gratuita válida hasta ${endDate}"; + static String m37(endDate) => "Prueba gratuita válida hasta ${endDate}"; - static String m37(count) => + static String m38(count) => "Aún puedes acceder ${Intl.plural(count, one: 'a él', other: 'a ellos')} en Ente mientras tengas una suscripción activa"; - static String m38(sizeInMBorGB) => "Liberar ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "Liberar ${sizeInMBorGB}"; - static String m39(count, formattedSize) => + static String m40(count, formattedSize) => "${Intl.plural(count, one: 'Se puede eliminar del dispositivo para liberar ${formattedSize}', other: 'Se pueden eliminar del dispositivo para liberar ${formattedSize}')}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Procesando ${currentlyProcessing} / ${totalCount}"; - static String m41(name) => "Senderismo con ${name}"; + static String m42(name) => "Senderismo con ${name}"; - static String m42(count) => + static String m43(count) => "${Intl.plural(count, one: '${count} elemento', other: '${count} elementos')}"; - static String m43(name) => "Última vez con ${name}"; + static String m44(name) => "Última vez con ${name}"; - static String m44(email) => + static String m45(email) => "${email} te ha invitado a ser un contacto de confianza"; - static String m45(expiryTime) => "El enlace caducará en ${expiryTime}"; + static String m46(expiryTime) => "El enlace caducará en ${expiryTime}"; - static String m46(email) => "Enlazar persona a ${email}"; + static String m47(email) => "Enlazar persona a ${email}"; - static String m47(personName, email) => + static String m48(personName, email) => "Esto enlazará a ${personName} a ${email}"; - static String m48(count, formattedCount) => + static String m49(count, formattedCount) => "${Intl.plural(count, zero: 'no hay recuerdos', one: '${formattedCount} recuerdo', other: '${formattedCount} recuerdos')}"; - static String m49(count) => + static String m50(count) => "${Intl.plural(count, one: 'Mover objeto', other: 'Mover objetos')}"; - static String m50(albumName) => "Movido exitosamente a ${albumName}"; + static String m51(albumName) => "Movido exitosamente a ${albumName}"; - static String m51(personName) => "No hay sugerencias para ${personName}"; + static String m52(personName) => "No hay sugerencias para ${personName}"; - static String m52(name) => "¿No es ${name}?"; + static String m53(name) => "¿No es ${name}?"; - static String m53(familyAdminEmail) => + static String m54(familyAdminEmail) => "Por favor, contacta a ${familyAdminEmail} para cambiar tu código."; - static String m54(name) => "Fiesta con ${name}"; + static String m55(name) => "Fiesta con ${name}"; - static String m55(passwordStrengthValue) => + static String m56(passwordStrengthValue) => "Seguridad de la contraseña: ${passwordStrengthValue}"; - static String m56(providerName) => + static String m57(providerName) => "Por favor, habla con el soporte de ${providerName} si se te cobró"; - static String m57(name, age) => "¡${name} tiene ${age} años!"; + static String m58(name, age) => "¡${name} tiene ${age} años!"; - static String m58(name, age) => "${name} cumpliendo ${age} pronto"; - - static String m59(count) => - "${Intl.plural(count, zero: 'No hay fotos', one: '1 foto', other: '${count} fotos')}"; + static String m59(name, age) => "${name} cumpliendo ${age} pronto"; static String m60(count) => + "${Intl.plural(count, zero: 'No hay fotos', one: '1 foto', other: '${count} fotos')}"; + + static String m61(count) => "${Intl.plural(count, zero: '0 fotos', one: '1 foto', other: '${count} fotos')}"; - static String m61(endDate) => + static String m62(endDate) => "Prueba gratuita válida hasta ${endDate}.\nPuedes elegir un plan de pago después."; - static String m62(toEmail) => + static String m63(toEmail) => "Por favor, envíanos un correo electrónico a ${toEmail}"; - static String m63(toEmail) => "Por favor, envía los registros a ${toEmail}"; + static String m64(toEmail) => "Por favor, envía los registros a ${toEmail}"; - static String m64(name) => "Posando con ${name}"; + static String m65(name) => "Posando con ${name}"; - static String m65(folderName) => "Procesando ${folderName}..."; + static String m66(folderName) => "Procesando ${folderName}..."; - static String m66(storeName) => "Puntúanos en ${storeName}"; + static String m67(storeName) => "Puntúanos en ${storeName}"; - static String m67(name) => "Te has reasignado a ${name}"; + static String m68(name) => "Te has reasignado a ${name}"; - static String m68(days, email) => + static String m69(days, email) => "Puedes acceder a la cuenta después de ${days} días. Se enviará una notificación a ${email}."; - static String m69(email) => + static String m70(email) => "Ahora puedes recuperar la cuenta de ${email} estableciendo una nueva contraseña."; - static String m70(email) => "${email} está intentando recuperar tu cuenta."; + static String m71(email) => "${email} está intentando recuperar tu cuenta."; - static String m71(storageInGB) => + static String m72(storageInGB) => "3. Ambos obtienen ${storageInGB} GB* gratis"; - static String m72(userEmail) => + static String m73(userEmail) => "${userEmail} será eliminado de este álbum compartido\n\nCualquier foto añadida por ellos también será eliminada del álbum"; - static String m73(endDate) => "La suscripción se renueva el ${endDate}"; + static String m74(endDate) => "La suscripción se renueva el ${endDate}"; - static String m74(name) => "Viaje en carretera con ${name}"; + static String m75(name) => "Viaje en carretera con ${name}"; - static String m75(count) => + static String m76(count) => "${Intl.plural(count, one: '${count} resultado encontrado', other: '${count} resultados encontrados')}"; - static String m76(snapshotLength, searchLength) => + static String m77(snapshotLength, searchLength) => "La longitud de las secciones no coincide: ${snapshotLength} != ${searchLength}"; - static String m77(count) => "${count} seleccionados"; + static String m78(count) => "${count} seleccionados"; - static String m78(count, yourCount) => + static String m79(count, yourCount) => "${count} seleccionados (${yourCount} tuyos)"; - static String m79(name) => "Selfies con ${name}"; - - static String m80(verificationID) => - "Aquí está mi ID de verificación: ${verificationID} para ente.io."; + static String m80(name) => "Selfies con ${name}"; static String m81(verificationID) => + "Aquí está mi ID de verificación: ${verificationID} para ente.io."; + + static String m82(verificationID) => "Hola, ¿puedes confirmar que esta es tu ID de verificación ente.io: ${verificationID}?"; - static String m82(referralCode, referralStorageInGB) => + static String m83(referralCode, referralStorageInGB) => "Código de referido de Ente: ${referralCode} \n\nAñádelo en Ajustes → General → Referidos para obtener ${referralStorageInGB} GB gratis tras comprar un plan de pago.\n\nhttps://ente.io"; - static String m83(numberOfPeople) => + static String m84(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Compartir con personas específicas', one: 'Compartido con 1 persona', other: 'Compartido con ${numberOfPeople} personas')}"; - static String m84(emailIDs) => "Compartido con ${emailIDs}"; - - static String m85(fileType) => - "Este ${fileType} se eliminará de tu dispositivo."; + static String m85(emailIDs) => "Compartido con ${emailIDs}"; static String m86(fileType) => + "Este ${fileType} se eliminará de tu dispositivo."; + + static String m87(fileType) => "Este ${fileType} está tanto en Ente como en tu dispositivo."; - static String m87(fileType) => "Este ${fileType} será eliminado de Ente."; + static String m88(fileType) => "Este ${fileType} será eliminado de Ente."; - static String m88(name) => "Deportes con ${name}"; + static String m89(name) => "Deportes con ${name}"; - static String m89(name) => "Enfocar a ${name}"; + static String m90(name) => "Enfocar a ${name}"; - static String m90(storageAmountInGB) => "${storageAmountInGB} GB"; + static String m91(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m91( + static String m92( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} de ${totalAmount} ${totalStorageUnit} usados"; - static String m92(id) => + static String m93(id) => "Tu ${id} ya está vinculada a otra cuenta de Ente.\nSi deseas utilizar tu ${id} con esta cuenta, ponte en contacto con nuestro servicio de asistencia\'\'"; - static String m93(endDate) => "Tu suscripción se cancelará el ${endDate}"; + static String m94(endDate) => "Tu suscripción se cancelará el ${endDate}"; - static String m94(completed, total) => + static String m95(completed, total) => "${completed}/${total} recuerdos conservados"; - static String m95(ignoreReason) => + static String m96(ignoreReason) => "Toca para subir, la subida se está ignorando debido a ${ignoreReason}"; - static String m96(storageAmountInGB) => + static String m97(storageAmountInGB) => "También obtienen ${storageAmountInGB} GB"; - static String m97(email) => "Este es el ID de verificación de ${email}"; + static String m98(email) => "Este es el ID de verificación de ${email}"; - static String m98(count) => + static String m99(count) => "${Intl.plural(count, one: 'Esta semana, hace ${count} año', other: 'Esta semana, hace ${count} años')}"; - static String m99(dateFormat) => "${dateFormat} a través de los años"; + static String m100(dateFormat) => "${dateFormat} a través de los años"; - static String m100(count) => + static String m101(count) => "${Intl.plural(count, zero: 'Pronto', one: '1 día', other: '${count} días')}"; - static String m101(year) => "Viaje en ${year}"; + static String m102(year) => "Viaje en ${year}"; - static String m102(location) => "Viaje a ${location}"; + static String m103(location) => "Viaje a ${location}"; - static String m103(email) => + static String m104(email) => "Has sido invitado a ser un contacto legado por ${email}."; - static String m104(galleryType) => + static String m105(galleryType) => "El tipo de galería ${galleryType} no es compatible con el renombrado"; - static String m105(ignoreReason) => + static String m106(ignoreReason) => "La subida se ignoró debido a ${ignoreReason}"; - static String m106(count) => "Preservando ${count} memorias..."; + static String m107(count) => "Preservando ${count} memorias..."; - static String m107(endDate) => "Válido hasta ${endDate}"; + static String m108(endDate) => "Válido hasta ${endDate}"; - static String m108(email) => "Verificar ${email}"; - - static String m109(count) => - "${Intl.plural(count, zero: '0 espectadores añadidos', one: '1 espectador añadido', other: '${count} espectadores añadidos')}"; - - static String m110(email) => - "Hemos enviado un correo a ${email}"; + static String m109(email) => "Verificar ${email}"; static String m111(count) => + "${Intl.plural(count, zero: '0 espectadores añadidos', one: '1 espectador añadido', other: '${count} espectadores añadidos')}"; + + static String m112(email) => + "Hemos enviado un correo a ${email}"; + + static String m113(count) => "${Intl.plural(count, one: 'Hace ${count} año', other: 'Hace ${count} años')}"; - static String m112(name) => "Tú y ${name}"; + static String m114(name) => "Tú y ${name}"; - static String m113(storageSaved) => + static String m115(storageSaved) => "¡Has liberado ${storageSaved} con éxito!"; final messages = _notInlinedMessages(_notInlinedMessages); @@ -892,16 +892,16 @@ class MessageLookup extends MessageLookupByLibrary { "email": MessageLookupByLibrary.simpleMessage("Correo electrónico"), "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage( "Correo electrónico ya registrado."), - "emailChangedTo": m27, - "emailDoesNotHaveEnteAccount": m28, - "emailNoEnteAccount": m29, + "emailChangedTo": m28, + "emailDoesNotHaveEnteAccount": m29, + "emailNoEnteAccount": m30, "emailNotRegistered": MessageLookupByLibrary.simpleMessage( "Correo electrónico no registrado."), "emailVerificationToggle": MessageLookupByLibrary.simpleMessage( "Verificación por correo electrónico"), "emailYourLogs": MessageLookupByLibrary.simpleMessage( "Envía tus registros por correo electrónico"), - "embracingThem": m30, + "embracingThem": m31, "emergencyContacts": MessageLookupByLibrary.simpleMessage("Contactos de emergencia"), "empty": MessageLookupByLibrary.simpleMessage("Vaciar"), @@ -983,7 +983,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Exportar tus datos"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage( "Fotos adicionales encontradas"), - "extraPhotosFoundFor": m31, + "extraPhotosFoundFor": m32, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Cara no agrupada todavía, por favor vuelve más tarde"), "faceRecognition": @@ -1022,7 +1022,7 @@ class MessageLookup extends MessageLookupByLibrary { "faq": MessageLookupByLibrary.simpleMessage("Preguntas Frecuentes"), "faqs": MessageLookupByLibrary.simpleMessage("Preguntas frecuentes"), "favorite": MessageLookupByLibrary.simpleMessage("Favorito"), - "feastingWithThem": m32, + "feastingWithThem": m33, "feedback": MessageLookupByLibrary.simpleMessage("Sugerencias"), "file": MessageLookupByLibrary.simpleMessage("Archivo"), "fileFailedToSaveToGallery": MessageLookupByLibrary.simpleMessage( @@ -1036,8 +1036,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Tipos de archivos"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Tipos de archivo y nombres"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m34, + "filesBackedUpInAlbum": m35, "filesDeleted": MessageLookupByLibrary.simpleMessage("Archivos eliminados"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage( @@ -1055,26 +1055,26 @@ class MessageLookup extends MessageLookupByLibrary { "foundFaces": MessageLookupByLibrary.simpleMessage("Caras encontradas"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage( "Almacenamiento gratuito obtenido"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m36, "freeStorageUsable": MessageLookupByLibrary.simpleMessage( "Almacenamiento libre disponible"), "freeTrial": MessageLookupByLibrary.simpleMessage("Prueba gratuita"), - "freeTrialValidTill": m36, - "freeUpAccessPostDelete": m37, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAccessPostDelete": m38, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage( "Liberar espacio del dispositivo"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "Ahorra espacio en tu dispositivo limpiando archivos que tienen copia de seguridad."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Liberar espacio"), - "freeUpSpaceSaving": m39, + "freeUpSpaceSaving": m40, "gallery": MessageLookupByLibrary.simpleMessage("Galería"), "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "Hasta 1000 memorias mostradas en la galería"), "general": MessageLookupByLibrary.simpleMessage("General"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Generando claves de cifrado..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Ir a Ajustes"), "googlePlayId": MessageLookupByLibrary.simpleMessage("ID de Google Play"), @@ -1104,7 +1104,7 @@ class MessageLookup extends MessageLookupByLibrary { "hideSharedItemsFromHomeGallery": MessageLookupByLibrary.simpleMessage( "Ocultar elementos compartidos de la galería de inicio"), "hiding": MessageLookupByLibrary.simpleMessage("Ocultando..."), - "hikingWithThem": m41, + "hikingWithThem": m42, "hostedAtOsmFrance": MessageLookupByLibrary.simpleMessage("Alojado en OSM France"), "howItWorks": MessageLookupByLibrary.simpleMessage("Cómo funciona"), @@ -1161,7 +1161,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Parece que algo salió mal. Por favor, vuelve a intentarlo después de algún tiempo. Si el error persiste, ponte en contacto con nuestro equipo de soporte."), - "itemCount": m42, + "itemCount": m43, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Los artículos muestran el número de días restantes antes de ser borrados permanente"), @@ -1182,7 +1182,7 @@ class MessageLookup extends MessageLookupByLibrary { "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage( "Por favor ayúdanos con esta información"), "language": MessageLookupByLibrary.simpleMessage("Idioma"), - "lastTimeWithThem": m43, + "lastTimeWithThem": m44, "lastUpdated": MessageLookupByLibrary.simpleMessage("Última actualización"), "lastYearsTrip": @@ -1197,7 +1197,7 @@ class MessageLookup extends MessageLookupByLibrary { "legacy": MessageLookupByLibrary.simpleMessage("Legado"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Cuentas legadas"), - "legacyInvite": m44, + "legacyInvite": m45, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "Legado permite a los contactos de confianza acceder a su cuenta en su ausencia."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( @@ -1215,7 +1215,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("para compartir más rápido"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Habilitado"), "linkExpired": MessageLookupByLibrary.simpleMessage("Vencido"), - "linkExpiresOn": m45, + "linkExpiresOn": m46, "linkExpiry": MessageLookupByLibrary.simpleMessage("Enlace vence"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("El enlace ha caducado"), @@ -1223,8 +1223,8 @@ class MessageLookup extends MessageLookupByLibrary { "linkPerson": MessageLookupByLibrary.simpleMessage("Vincular persona"), "linkPersonCaption": MessageLookupByLibrary.simpleMessage( "para una mejor experiencia compartida"), - "linkPersonToEmail": m46, - "linkPersonToEmailConfirmation": m47, + "linkPersonToEmail": m47, + "linkPersonToEmailConfirmation": m48, "livePhotos": MessageLookupByLibrary.simpleMessage("Foto en vivo"), "loadMessage1": MessageLookupByLibrary.simpleMessage( "Puedes compartir tu suscripción con tu familia"), @@ -1316,7 +1316,7 @@ class MessageLookup extends MessageLookupByLibrary { "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), "me": MessageLookupByLibrary.simpleMessage("Yo"), - "memoryCount": m48, + "memoryCount": m49, "merchandise": MessageLookupByLibrary.simpleMessage("Mercancías"), "mergeWithExisting": MessageLookupByLibrary.simpleMessage("Combinar con existente"), @@ -1348,13 +1348,13 @@ class MessageLookup extends MessageLookupByLibrary { "mostRecent": MessageLookupByLibrary.simpleMessage("Más reciente"), "mostRelevant": MessageLookupByLibrary.simpleMessage("Más relevante"), "mountains": MessageLookupByLibrary.simpleMessage("Sobre las colinas"), - "moveItem": m49, + "moveItem": m50, "moveSelectedPhotosToOneDate": MessageLookupByLibrary.simpleMessage( "Mover las fotos seleccionadas a una fecha"), "moveToAlbum": MessageLookupByLibrary.simpleMessage("Mover al álbum"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("Mover al álbum oculto"), - "movedSuccessfullyTo": m50, + "movedSuccessfullyTo": m51, "movedToTrash": MessageLookupByLibrary.simpleMessage("Movido a la papelera"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1408,10 +1408,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Sin resultados"), "noResultsFound": MessageLookupByLibrary.simpleMessage( "No se han encontrado resultados"), - "noSuggestionsForPerson": m51, + "noSuggestionsForPerson": m52, "noSystemLockFound": MessageLookupByLibrary.simpleMessage( "Bloqueo de sistema no encontrado"), - "notPersonLabel": m52, + "notPersonLabel": m53, "notThisPerson": MessageLookupByLibrary.simpleMessage("¿No es esta persona?"), "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( @@ -1426,7 +1426,7 @@ class MessageLookup extends MessageLookupByLibrary { "onTheRoad": MessageLookupByLibrary.simpleMessage("De nuevo en la carretera"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), - "onlyFamilyAdminCanChangeCode": m53, + "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Solo ellos"), "oops": MessageLookupByLibrary.simpleMessage("Ups"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( @@ -1457,7 +1457,7 @@ class MessageLookup extends MessageLookupByLibrary { "pairingComplete": MessageLookupByLibrary.simpleMessage("Emparejamiento completo"), "panorama": MessageLookupByLibrary.simpleMessage("Panorama"), - "partyWithThem": m54, + "partyWithThem": m55, "passKeyPendingVerification": MessageLookupByLibrary.simpleMessage( "La verificación aún está pendiente"), "passkey": MessageLookupByLibrary.simpleMessage("Clave de acceso"), @@ -1468,7 +1468,7 @@ class MessageLookup extends MessageLookupByLibrary { "Contraseña cambiada correctamente"), "passwordLock": MessageLookupByLibrary.simpleMessage("Bloqueo con contraseña"), - "passwordStrength": m55, + "passwordStrength": m56, "passwordStrengthInfo": MessageLookupByLibrary.simpleMessage( "La fortaleza de la contraseña se calcula teniendo en cuenta la longitud de la contraseña, los caracteres utilizados, y si la contraseña aparece o no en el top 10.000 de contraseñas más usadas"), "passwordWarning": MessageLookupByLibrary.simpleMessage( @@ -1478,7 +1478,7 @@ class MessageLookup extends MessageLookupByLibrary { "paymentFailed": MessageLookupByLibrary.simpleMessage("Pago fallido"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Lamentablemente tu pago falló. Por favor, ¡contacta con el soporte técnico y te ayudaremos!"), - "paymentFailedTalkToProvider": m56, + "paymentFailedTalkToProvider": m57, "pendingItems": MessageLookupByLibrary.simpleMessage("Elementos pendientes"), "pendingSync": @@ -1492,22 +1492,22 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Borrar permanentemente"), "permanentlyDeleteFromDevice": MessageLookupByLibrary.simpleMessage( "¿Eliminar permanentemente del dispositivo?"), - "personIsAge": m57, + "personIsAge": m58, "personName": MessageLookupByLibrary.simpleMessage("Nombre de la persona"), - "personTurningAge": m58, + "personTurningAge": m59, "pets": MessageLookupByLibrary.simpleMessage("Compañeros peludos"), "photoDescriptions": MessageLookupByLibrary.simpleMessage("Descripciones de fotos"), "photoGridSize": MessageLookupByLibrary.simpleMessage( "Tamaño de la cuadrícula de fotos"), "photoSmallCase": MessageLookupByLibrary.simpleMessage("foto"), - "photocountPhotos": m59, + "photocountPhotos": m60, "photos": MessageLookupByLibrary.simpleMessage("Fotos"), "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "Las fotos añadidas por ti serán removidas del álbum"), - "photosCount": m60, + "photosCount": m61, "photosKeepRelativeTimeDifference": MessageLookupByLibrary.simpleMessage( "Las fotos mantienen una diferencia de tiempo relativa"), @@ -1519,7 +1519,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Reproducir álbum en TV"), "playOriginal": MessageLookupByLibrary.simpleMessage("Reproducir original"), - "playStoreFreeTrialValidTill": m61, + "playStoreFreeTrialValidTill": m62, "playStream": MessageLookupByLibrary.simpleMessage("Reproducir transmisión"), "playstoreSubscription": @@ -1533,14 +1533,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Por favor, contacta a soporte técnico si el problema persiste"), - "pleaseEmailUsAt": m62, + "pleaseEmailUsAt": m63, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage("Por favor, concede permiso"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage( "Por favor, vuelve a iniciar sesión"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Por favor, selecciona enlaces rápidos para eliminar"), - "pleaseSendTheLogsTo": m63, + "pleaseSendTheLogsTo": m64, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Por favor, inténtalo nuevamente"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1555,7 +1555,7 @@ class MessageLookup extends MessageLookupByLibrary { "Por favor, espera un momento antes de volver a intentarlo"), "pleaseWaitThisWillTakeAWhile": MessageLookupByLibrary.simpleMessage( "Espera. Esto tardará un poco."), - "posingWithThem": m64, + "posingWithThem": m65, "preparingLogs": MessageLookupByLibrary.simpleMessage("Preparando registros..."), "preserveMore": MessageLookupByLibrary.simpleMessage("Preservar más"), @@ -1574,7 +1574,7 @@ class MessageLookup extends MessageLookupByLibrary { "proceed": MessageLookupByLibrary.simpleMessage("Continuar"), "processed": MessageLookupByLibrary.simpleMessage("Procesado"), "processing": MessageLookupByLibrary.simpleMessage("Procesando"), - "processingImport": m65, + "processingImport": m66, "processingVideos": MessageLookupByLibrary.simpleMessage("Procesando vídeos"), "publicLinkCreated": @@ -1588,9 +1588,9 @@ class MessageLookup extends MessageLookupByLibrary { "rateTheApp": MessageLookupByLibrary.simpleMessage("Evalúa la aplicación"), "rateUs": MessageLookupByLibrary.simpleMessage("Califícanos"), - "rateUsOnStore": m66, + "rateUsOnStore": m67, "reassignMe": MessageLookupByLibrary.simpleMessage("Reasignar \"Yo\""), - "reassignedToName": m67, + "reassignedToName": m68, "reassigningLoading": MessageLookupByLibrary.simpleMessage("Reasignando..."), "recover": MessageLookupByLibrary.simpleMessage("Recuperar"), @@ -1601,7 +1601,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Recuperar cuenta"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("Recuperación iniciada"), - "recoveryInitiatedDesc": m68, + "recoveryInitiatedDesc": m69, "recoveryKey": MessageLookupByLibrary.simpleMessage("Clave de recuperación"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( @@ -1616,12 +1616,12 @@ class MessageLookup extends MessageLookupByLibrary { "Clave de recuperación verificada"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Tu clave de recuperación es la única forma de recuperar tus fotos si olvidas tu contraseña. Puedes encontrar tu clave de recuperación en Ajustes > Cuenta.\n\nPor favor, introduce tu clave de recuperación aquí para verificar que la has guardado correctamente."), - "recoveryReady": m69, + "recoveryReady": m70, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("¡Recuperación exitosa!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "Un contacto de confianza está intentando acceder a tu cuenta"), - "recoveryWarningBody": m70, + "recoveryWarningBody": m71, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "El dispositivo actual no es lo suficientemente potente para verificar su contraseña, pero podemos regenerarla de una manera que funcione con todos los dispositivos.\n\nPor favor inicie sesión usando su clave de recuperación y regenere su contraseña (puede volver a utilizar la misma si lo desea)."), "recreatePasswordTitle": @@ -1636,7 +1636,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Dale este código a tus amigos"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Se suscriben a un plan de pago"), - "referralStep3": m71, + "referralStep3": m72, "referrals": MessageLookupByLibrary.simpleMessage("Referidos"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Las referencias están actualmente en pausa"), @@ -1667,7 +1667,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Eliminar enlace"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Quitar participante"), - "removeParticipantBody": m72, + "removeParticipantBody": m73, "removePersonLabel": MessageLookupByLibrary.simpleMessage( "Eliminar etiqueta de persona"), "removePublicLink": @@ -1687,7 +1687,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("Renombrar archivo"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Renovar suscripción"), - "renewsOn": m73, + "renewsOn": m74, "reportABug": MessageLookupByLibrary.simpleMessage("Reportar un error"), "reportBug": MessageLookupByLibrary.simpleMessage("Reportar error"), "resendEmail": @@ -1713,7 +1713,7 @@ class MessageLookup extends MessageLookupByLibrary { "reviewSuggestions": MessageLookupByLibrary.simpleMessage("Revisar sugerencias"), "right": MessageLookupByLibrary.simpleMessage("Derecha"), - "roadtripWithThem": m74, + "roadtripWithThem": m75, "rotate": MessageLookupByLibrary.simpleMessage("Girar"), "rotateLeft": MessageLookupByLibrary.simpleMessage("Girar a la izquierda"), @@ -1771,8 +1771,8 @@ class MessageLookup extends MessageLookupByLibrary { "Invita a gente y verás todas las fotos compartidas aquí"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "Las personas se mostrarán aquí cuando se complete el procesado y la sincronización"), - "searchResultCount": m75, - "searchSectionsLengthMismatch": m76, + "searchResultCount": m76, + "searchSectionsLengthMismatch": m77, "security": MessageLookupByLibrary.simpleMessage("Seguridad"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Ver enlaces del álbum público en la aplicación"), @@ -1823,9 +1823,9 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeRemovedFromThisPerson": MessageLookupByLibrary.simpleMessage( "Los elementos seleccionados se eliminarán de esta persona, pero no se eliminarán de tu biblioteca."), - "selectedPhotos": m77, - "selectedPhotosWithYours": m78, - "selfiesWithThem": m79, + "selectedPhotos": m78, + "selectedPhotosWithYours": m79, + "selfiesWithThem": m80, "send": MessageLookupByLibrary.simpleMessage("Enviar"), "sendEmail": MessageLookupByLibrary.simpleMessage("Enviar correo electrónico"), @@ -1859,16 +1859,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Compartir un álbum ahora"), "shareLink": MessageLookupByLibrary.simpleMessage("Compartir enlace"), - "shareMyVerificationID": m80, + "shareMyVerificationID": m81, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Comparte sólo con la gente que quieres"), - "shareTextConfirmOthersVerificationID": m81, + "shareTextConfirmOthersVerificationID": m82, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Descarga Ente para que podamos compartir fácilmente fotos y videos en calidad original.\n\nhttps://ente.io"), - "shareTextReferralCode": m82, + "shareTextReferralCode": m83, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Compartir con usuarios fuera de Ente"), - "shareWithPeopleSectionTitle": m83, + "shareWithPeopleSectionTitle": m84, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("Comparte tu primer álbum"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1880,7 +1880,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Nuevas fotos compartidas"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Recibir notificaciones cuando alguien agrega una foto a un álbum compartido contigo"), - "sharedWith": m84, + "sharedWith": m85, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Compartido conmigo"), "sharedWithYou": @@ -1899,11 +1899,11 @@ class MessageLookup extends MessageLookupByLibrary { "Cerrar la sesión de otros dispositivos"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Estoy de acuerdo con los términos del servicio y la política de privacidad"), - "singleFileDeleteFromDevice": m85, + "singleFileDeleteFromDevice": m86, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Se borrará de todos los álbumes."), - "singleFileInBothLocalAndRemote": m86, - "singleFileInRemoteOnly": m87, + "singleFileInBothLocalAndRemote": m87, + "singleFileInRemoteOnly": m88, "skip": MessageLookupByLibrary.simpleMessage("Omitir"), "social": MessageLookupByLibrary.simpleMessage("Social"), "someItemsAreInBothEnteAndYourDevice": @@ -1939,8 +1939,8 @@ class MessageLookup extends MessageLookupByLibrary { "sortOldestFirst": MessageLookupByLibrary.simpleMessage("Más antiguos primero"), "sparkleSuccess": MessageLookupByLibrary.simpleMessage("✨ Éxito"), - "sportsWithThem": m88, - "spotlightOnThem": m89, + "sportsWithThem": m89, + "spotlightOnThem": m90, "spotlightOnYourself": MessageLookupByLibrary.simpleMessage("Enfócate a ti mismo"), "startAccountRecoveryTitle": @@ -1955,15 +1955,15 @@ class MessageLookup extends MessageLookupByLibrary { "storage": MessageLookupByLibrary.simpleMessage("Almacenamiento"), "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("Familia"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("Usted"), - "storageInGB": m90, + "storageInGB": m91, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Límite de datos excedido"), - "storageUsageInfo": m91, + "storageUsageInfo": m92, "streamDetails": MessageLookupByLibrary.simpleMessage("Detalles de la transmisión"), "strongStrength": MessageLookupByLibrary.simpleMessage("Segura"), - "subAlreadyLinkedErrMessage": m92, - "subWillBeCancelledOn": m93, + "subAlreadyLinkedErrMessage": m93, + "subWillBeCancelledOn": m94, "subscribe": MessageLookupByLibrary.simpleMessage("Suscribirse"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Necesitas una suscripción activa de pago para habilitar el compartir."), @@ -1981,7 +1981,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Sugerir una característica"), "sunrise": MessageLookupByLibrary.simpleMessage("Sobre el horizonte"), "support": MessageLookupByLibrary.simpleMessage("Soporte"), - "syncProgress": m94, + "syncProgress": m95, "syncStopped": MessageLookupByLibrary.simpleMessage("Sincronización detenida"), "syncing": MessageLookupByLibrary.simpleMessage("Sincronizando..."), @@ -1992,7 +1992,7 @@ class MessageLookup extends MessageLookupByLibrary { "tapToUnlock": MessageLookupByLibrary.simpleMessage("Toca para desbloquear"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Toca para subir"), - "tapToUploadIsIgnoredDue": m95, + "tapToUploadIsIgnoredDue": m96, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Parece que algo salió mal. Por favor, vuelve a intentarlo después de algún tiempo. Si el error persiste, ponte en contacto con nuestro equipo de soporte."), "terminate": MessageLookupByLibrary.simpleMessage("Terminar"), @@ -2016,7 +2016,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Estos elementos se eliminarán de tu dispositivo."), - "theyAlsoGetXGb": m96, + "theyAlsoGetXGb": m97, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Se borrarán de todos los álbumes."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( @@ -2034,12 +2034,12 @@ class MessageLookup extends MessageLookupByLibrary { "Esta imagen no tiene datos exif"), "thisIsMeExclamation": MessageLookupByLibrary.simpleMessage("¡Este soy yo!"), - "thisIsPersonVerificationId": m97, + "thisIsPersonVerificationId": m98, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage( "Esta es tu ID de verificación"), "thisWeekThroughTheYears": MessageLookupByLibrary.simpleMessage( "Esta semana a través de los años"), - "thisWeekXYearsAgo": m98, + "thisWeekXYearsAgo": m99, "thisWillLogYouOutOfTheFollowingDevice": MessageLookupByLibrary.simpleMessage( "Esto cerrará la sesión del siguiente dispositivo:"), @@ -2051,7 +2051,7 @@ class MessageLookup extends MessageLookupByLibrary { "thisWillRemovePublicLinksOfAllSelectedQuickLinks": MessageLookupByLibrary.simpleMessage( "Esto eliminará los enlaces públicos de todos los enlaces rápidos seleccionados."), - "throughTheYears": m99, + "throughTheYears": m100, "toEnableAppLockPleaseSetupDevicePasscodeOrScreen": MessageLookupByLibrary.simpleMessage( "Para habilitar el bloqueo de la aplicación, por favor configura el código de acceso del dispositivo o el bloqueo de pantalla en los ajustes del sistema."), @@ -2065,13 +2065,13 @@ class MessageLookup extends MessageLookupByLibrary { "total": MessageLookupByLibrary.simpleMessage("total"), "totalSize": MessageLookupByLibrary.simpleMessage("Tamaño total"), "trash": MessageLookupByLibrary.simpleMessage("Papelera"), - "trashDaysLeft": m100, + "trashDaysLeft": m101, "trim": MessageLookupByLibrary.simpleMessage("Ajustar duración"), - "tripInYear": m101, - "tripToLocation": m102, + "tripInYear": m102, + "tripToLocation": m103, "trustedContacts": MessageLookupByLibrary.simpleMessage("Contactos de confianza"), - "trustedInviteBody": m103, + "trustedInviteBody": m104, "tryAgain": MessageLookupByLibrary.simpleMessage("Inténtalo de nuevo"), "turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage( "Activar la copia de seguridad para subir automáticamente archivos añadidos a la carpeta de este dispositivo a Ente."), @@ -2089,7 +2089,7 @@ class MessageLookup extends MessageLookupByLibrary { "Autenticación de doble factor restablecida con éxito"), "twofactorSetup": MessageLookupByLibrary.simpleMessage("Configuración de dos pasos"), - "typeOfGallerGallerytypeIsNotSupportedForRename": m104, + "typeOfGallerGallerytypeIsNotSupportedForRename": m105, "unarchive": MessageLookupByLibrary.simpleMessage("Desarchivar"), "unarchiveAlbum": MessageLookupByLibrary.simpleMessage("Desarchivar álbum"), @@ -2114,10 +2114,10 @@ class MessageLookup extends MessageLookupByLibrary { "updatingFolderSelection": MessageLookupByLibrary.simpleMessage( "Actualizando la selección de carpeta..."), "upgrade": MessageLookupByLibrary.simpleMessage("Mejorar"), - "uploadIsIgnoredDueToIgnorereason": m105, + "uploadIsIgnoredDueToIgnorereason": m106, "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage( "Subiendo archivos al álbum..."), - "uploadingMultipleMemories": m106, + "uploadingMultipleMemories": m107, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage("Preservando 1 memoria..."), "upto50OffUntil4thDec": MessageLookupByLibrary.simpleMessage( @@ -2136,7 +2136,7 @@ class MessageLookup extends MessageLookupByLibrary { "useSelectedPhoto": MessageLookupByLibrary.simpleMessage("Usar foto seleccionada"), "usedSpace": MessageLookupByLibrary.simpleMessage("Espacio usado"), - "validTill": m107, + "validTill": m108, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Verificación fallida, por favor inténtalo de nuevo"), @@ -2145,7 +2145,7 @@ class MessageLookup extends MessageLookupByLibrary { "verify": MessageLookupByLibrary.simpleMessage("Verificar"), "verifyEmail": MessageLookupByLibrary.simpleMessage( "Verificar correo electrónico"), - "verifyEmailID": m108, + "verifyEmailID": m109, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("Verificar"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("Verificar clave de acceso"), @@ -2173,7 +2173,7 @@ class MessageLookup extends MessageLookupByLibrary { "viewRecoveryKey": MessageLookupByLibrary.simpleMessage("Ver código de recuperación"), "viewer": MessageLookupByLibrary.simpleMessage("Espectador"), - "viewersSuccessfullyAdded": m109, + "viewersSuccessfullyAdded": m111, "visitWebToManage": MessageLookupByLibrary.simpleMessage( "Por favor, visita web.ente.io para administrar tu suscripción"), "waitingForVerification": @@ -2186,7 +2186,7 @@ class MessageLookup extends MessageLookupByLibrary { "weDontSupportEditingPhotosAndAlbumsThatYouDont": MessageLookupByLibrary.simpleMessage( "No admitimos la edición de fotos y álbumes que aún no son tuyos"), - "weHaveSendEmailTo": m110, + "weHaveSendEmailTo": m112, "weakStrength": MessageLookupByLibrary.simpleMessage("Poco segura"), "welcomeBack": MessageLookupByLibrary.simpleMessage("¡Bienvenido de nuevo!"), @@ -2195,7 +2195,7 @@ class MessageLookup extends MessageLookupByLibrary { "Un contacto de confianza puede ayudar a recuperar sus datos."), "yearShort": MessageLookupByLibrary.simpleMessage("año"), "yearly": MessageLookupByLibrary.simpleMessage("Anualmente"), - "yearsAgo": m111, + "yearsAgo": m113, "yes": MessageLookupByLibrary.simpleMessage("Sí"), "yesCancel": MessageLookupByLibrary.simpleMessage("Sí, cancelar"), "yesConvertToViewer": @@ -2209,7 +2209,7 @@ class MessageLookup extends MessageLookupByLibrary { "yesResetPerson": MessageLookupByLibrary.simpleMessage("Si, eliminar persona"), "you": MessageLookupByLibrary.simpleMessage("Tu"), - "youAndThem": m112, + "youAndThem": m114, "youAreOnAFamilyPlan": MessageLookupByLibrary.simpleMessage("¡Estás en un plan familiar!"), "youAreOnTheLatestVersion": MessageLookupByLibrary.simpleMessage( @@ -2228,7 +2228,7 @@ class MessageLookup extends MessageLookupByLibrary { "No puedes compartir contigo mismo"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage( "No tienes ningún elemento archivado."), - "youHaveSuccessfullyFreedUp": m113, + "youHaveSuccessfullyFreedUp": m115, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage("Tu cuenta ha sido eliminada"), "yourMap": MessageLookupByLibrary.simpleMessage("Tu mapa"), diff --git a/mobile/lib/generated/intl/messages_eu.dart b/mobile/lib/generated/intl/messages_eu.dart index 0c2d0a8c94..96984ea43c 100644 --- a/mobile/lib/generated/intl/messages_eu.dart +++ b/mobile/lib/generated/intl/messages_eu.dart @@ -39,64 +39,64 @@ class MessageLookup extends MessageLookupByLibrary { static String m24(supportEmail) => "Mesedez, bidali e-maila ${supportEmail}-era zure erregistratutako e-mail helbidetik"; - static String m29(email) => + static String m30(email) => "${email}-(e)k ez du Ente konturik. \n\nBidali gonbidapena argazkiak partekatzeko."; - static String m35(storageAmountInGB) => + static String m36(storageAmountInGB) => "${storageAmountInGB} GB norbaitek ordainpeko plan batean sartzen denean zure kodea aplikatzen badu"; - static String m45(expiryTime) => + static String m46(expiryTime) => "Esteka epe honetan iraungiko da: ${expiryTime}"; - static String m48(count, formattedCount) => + static String m49(count, formattedCount) => "${Intl.plural(count, zero: 'oroitzapenik ez', one: 'oroitzapen ${formattedCount}', other: '${formattedCount} oroitzapen')}"; - static String m53(familyAdminEmail) => + static String m54(familyAdminEmail) => "Mesedez, jarri harremanetan ${familyAdminEmail}-(r)ekin zure kodea aldatzeko."; - static String m55(passwordStrengthValue) => + static String m56(passwordStrengthValue) => "Pasahitzaren indarra: ${passwordStrengthValue}"; - static String m71(storageInGB) => + static String m72(storageInGB) => "3. Bai zuk bai haiek ${storageInGB} GB* dohainik izango duzue"; - static String m72(userEmail) => + static String m73(userEmail) => "${userEmail} partekatutako album honetatik ezabatuko da \n\nHaiek gehitutako argazki guztiak ere ezabatuak izango dira albumetik"; - static String m77(count) => "${count} hautatuta"; + static String m78(count) => "${count} hautatuta"; - static String m78(count, yourCount) => + static String m79(count, yourCount) => "${count} hautatuta (${yourCount} zureak)"; - static String m80(verificationID) => + static String m81(verificationID) => "Hau da nire Egiaztatze IDa: ${verificationID} ente.io-rako."; - static String m81(verificationID) => + static String m82(verificationID) => "Ei, baieztatu ahal duzu hau dela zure ente.io Egiaztatze IDa?: ${verificationID}"; - static String m82(referralCode, referralStorageInGB) => + static String m83(referralCode, referralStorageInGB) => "Sartu erreferentzia kodea: ${referralCode}\n\nAplikatu hemen: Ezarpenak → Orokorra→ Erreferentziak, ${referralStorageInGB} GB dohainik izateko ordainpeko plan batean \n\nhttps://ente.io"; - static String m83(numberOfPeople) => + static String m84(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Partekatu pertsona zehatz batzuekin', one: 'Partekatu pertsona batekin', other: 'Partekatu ${numberOfPeople} pertsonarekin')}"; - static String m85(fileType) => "${fileType} hau zure gailutik ezabatuko da."; + static String m86(fileType) => "${fileType} hau zure gailutik ezabatuko da."; - static String m86(fileType) => + static String m87(fileType) => "${fileType} hau Ente-n eta zure gailuan dago."; - static String m87(fileType) => "${fileType} hau Ente-tik ezabatuko da."; + static String m88(fileType) => "${fileType} hau Ente-tik ezabatuko da."; - static String m90(storageAmountInGB) => "${storageAmountInGB} GB"; + static String m91(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m96(storageAmountInGB) => + static String m97(storageAmountInGB) => "Haiek ere lortuko dute ${storageAmountInGB} GB"; - static String m97(email) => "Hau da ${email}-(r)en Egiaztatze IDa"; + static String m98(email) => "Hau da ${email}-(r)en Egiaztatze IDa"; - static String m108(email) => "Egiaztatu ${email}"; + static String m109(email) => "Egiaztatu ${email}"; - static String m110(email) => + static String m112(email) => "Mezua bidali dugu ${email} helbidera"; final messages = _notInlinedMessages(_notInlinedMessages); @@ -301,7 +301,7 @@ class MessageLookup extends MessageLookupByLibrary { "email": MessageLookupByLibrary.simpleMessage("E-maila"), "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage( "Helbide hau badago erregistratuta lehendik."), - "emailNoEnteAccount": m29, + "emailNoEnteAccount": m30, "emailNotRegistered": MessageLookupByLibrary.simpleMessage( "Helbide hau ez dago erregistratuta."), "encryption": MessageLookupByLibrary.simpleMessage("Zifratzea"), @@ -346,7 +346,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Ahaztu pasahitza"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage( "Debaldeko biltegiratzea eskatuta"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m36, "freeStorageUsable": MessageLookupByLibrary.simpleMessage( "Debaldeko biltegiratzea erabilgarri"), "generatingEncryptionKeys": @@ -385,7 +385,7 @@ class MessageLookup extends MessageLookupByLibrary { "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Gailu muga"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Indarrean"), "linkExpired": MessageLookupByLibrary.simpleMessage("Iraungita"), - "linkExpiresOn": m45, + "linkExpiresOn": m46, "linkExpiry": MessageLookupByLibrary.simpleMessage("Estekaren epemuga"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("Esteka iraungi da"), @@ -406,7 +406,7 @@ class MessageLookup extends MessageLookupByLibrary { "Berrikusi eta garbitu katxe lokalaren biltegiratzea."), "manageLink": MessageLookupByLibrary.simpleMessage("Kudeatu esteka"), "manageParticipants": MessageLookupByLibrary.simpleMessage("Kudeatu"), - "memoryCount": m48, + "memoryCount": m49, "mlConsent": MessageLookupByLibrary.simpleMessage( "Aktibatu ikasketa automatikoa"), "mlConsentConfirmation": MessageLookupByLibrary.simpleMessage( @@ -428,7 +428,7 @@ class MessageLookup extends MessageLookupByLibrary { "Gure puntutik-puntura zifratze protokoloa dela eta, zure data ezin da deszifratu zure pasahitza edo berreskuratze giltzarik gabe"), "ok": MessageLookupByLibrary.simpleMessage("Ondo"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), - "onlyFamilyAdminCanChangeCode": m53, + "onlyFamilyAdminCanChangeCode": m54, "oops": MessageLookupByLibrary.simpleMessage("Ai!"), "oopsSomethingWentWrong": MessageLookupByLibrary.simpleMessage( "Oops, zerbait txarto joan da"), @@ -439,7 +439,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Pasahitza zuzenki aldatuta"), "passwordLock": MessageLookupByLibrary.simpleMessage("Pasahitza blokeoa"), - "passwordStrength": m55, + "passwordStrength": m56, "passwordWarning": MessageLookupByLibrary.simpleMessage( "Ezin dugu zure pasahitza gorde, beraz, ahazten baduzu, ezin dugu zure data deszifratu"), "peopleUsingYourCode": MessageLookupByLibrary.simpleMessage( @@ -483,7 +483,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Eman kode hau zure lagunei"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Haiek ordainpeko plan batean sinatu behar dute"), - "referralStep3": m71, + "referralStep3": m72, "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Erreferentziak momentuz geldituta daude"), "remove": MessageLookupByLibrary.simpleMessage("Kendu"), @@ -494,7 +494,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Ezabatu esteka"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Kendu parte hartzailea"), - "removeParticipantBody": m72, + "removeParticipantBody": m73, "removePublicLink": MessageLookupByLibrary.simpleMessage("Ezabatu esteka publikoa"), "removeShareItemsWarning": MessageLookupByLibrary.simpleMessage( @@ -517,8 +517,8 @@ class MessageLookup extends MessageLookupByLibrary { "Eskaneatu barra kode hau zure autentifikazio aplikazioaz"), "selectReason": MessageLookupByLibrary.simpleMessage("Aukeratu arrazoia"), - "selectedPhotos": m77, - "selectedPhotosWithYours": m78, + "selectedPhotos": m78, + "selectedPhotosWithYours": m79, "sendEmail": MessageLookupByLibrary.simpleMessage("Bidali mezua"), "sendInvite": MessageLookupByLibrary.simpleMessage("Bidali gonbidapena"), @@ -530,24 +530,24 @@ class MessageLookup extends MessageLookupByLibrary { "setupComplete": MessageLookupByLibrary.simpleMessage("Prestaketa burututa"), "shareALink": MessageLookupByLibrary.simpleMessage("Partekatu esteka"), - "shareMyVerificationID": m80, - "shareTextConfirmOthersVerificationID": m81, + "shareMyVerificationID": m81, + "shareTextConfirmOthersVerificationID": m82, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Jaitsi Ente argazkiak eta bideoak jatorrizko kalitatean errez partekatu ahal izateko \n\nhttps://ente.io"), - "shareTextReferralCode": m82, + "shareTextReferralCode": m83, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Partekatu Ente erabiltzen ez dutenekin"), - "shareWithPeopleSectionTitle": m83, + "shareWithPeopleSectionTitle": m84, "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( "Sortu partekatutako eta parte hartzeko albumak beste Ente erabiltzaileekin, debaldeko planak dituztenak barne."), "sharing": MessageLookupByLibrary.simpleMessage("Partekatzen..."), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Zerbitzu baldintzak eta pribatutasun politikak onartzen ditut"), - "singleFileDeleteFromDevice": m85, + "singleFileDeleteFromDevice": m86, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Album guztietatik ezabatuko da."), - "singleFileInBothLocalAndRemote": m86, - "singleFileInRemoteOnly": m87, + "singleFileInBothLocalAndRemote": m87, + "singleFileInRemoteOnly": m88, "someoneSharingAlbumsWithYouShouldSeeTheSameId": MessageLookupByLibrary.simpleMessage( "Zurekin albumak partekatzen dituen norbaitek ID berbera ikusi beharko luke bere gailuan."), @@ -565,7 +565,7 @@ class MessageLookup extends MessageLookupByLibrary { "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "Tamalez, ezin dugu giltza segururik sortu gailu honetan. \n\nMesedez, eman izena beste gailu batetik."), - "storageInGB": m90, + "storageInGB": m91, "strongStrength": MessageLookupByLibrary.simpleMessage("Gogorra"), "subscribe": MessageLookupByLibrary.simpleMessage("Harpidetu"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( @@ -578,12 +578,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Saioa bukatu?"), "termsOfServicesTitle": MessageLookupByLibrary.simpleMessage("Baldintzak"), - "theyAlsoGetXGb": m96, + "theyAlsoGetXGb": m97, "thisCanBeUsedToRecoverYourAccountIfYou": MessageLookupByLibrary.simpleMessage( "Hau zure kontua berreskuratzeko erabili ahal duzu, zure bigarren faktorea ahaztuz gero"), "thisDevice": MessageLookupByLibrary.simpleMessage("Gailu hau"), - "thisIsPersonVerificationId": m97, + "thisIsPersonVerificationId": m98, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage("Hau da zure Egiaztatze IDa"), "thisWillLogYouOutOfTheFollowingDevice": @@ -617,7 +617,7 @@ class MessageLookup extends MessageLookupByLibrary { "verify": MessageLookupByLibrary.simpleMessage("Egiaztatu"), "verifyEmail": MessageLookupByLibrary.simpleMessage("Egiaztatu e-maila"), - "verifyEmailID": m108, + "verifyEmailID": m109, "verifyPassword": MessageLookupByLibrary.simpleMessage("Egiaztatu pasahitza"), "verifyingRecoveryKey": MessageLookupByLibrary.simpleMessage( @@ -626,7 +626,7 @@ class MessageLookup extends MessageLookupByLibrary { "viewRecoveryKey": MessageLookupByLibrary.simpleMessage("Ikusi berreskuratze kodea"), "viewer": MessageLookupByLibrary.simpleMessage("Ikuslea"), - "weHaveSendEmailTo": m110, + "weHaveSendEmailTo": m112, "weakStrength": MessageLookupByLibrary.simpleMessage("Ahula"), "welcomeBack": MessageLookupByLibrary.simpleMessage("Ongi etorri berriro!"), diff --git a/mobile/lib/generated/intl/messages_fa.dart b/mobile/lib/generated/intl/messages_fa.dart index 3ce0c66c55..255beb35a6 100644 --- a/mobile/lib/generated/intl/messages_fa.dart +++ b/mobile/lib/generated/intl/messages_fa.dart @@ -28,18 +28,18 @@ class MessageLookup extends MessageLookupByLibrary { static String m24(supportEmail) => "لطفا یک ایمیل از آدرس ایمیلی که ثبت نام کردید به ${supportEmail} ارسال کنید"; - static String m55(passwordStrengthValue) => + static String m56(passwordStrengthValue) => "قدرت رمز عبور: ${passwordStrengthValue}"; - static String m66(storeName) => "به ما در ${storeName} امتیاز دهید"; + static String m67(storeName) => "به ما در ${storeName} امتیاز دهید"; - static String m91( + static String m92( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} از ${totalAmount} ${totalStorageUnit} استفاده شده"; - static String m108(email) => "تایید ${email}"; + static String m109(email) => "تایید ${email}"; - static String m110(email) => + static String m112(email) => "ما یک ایمیل به ${email} ارسال کرده‌ایم"; final messages = _notInlinedMessages(_notInlinedMessages); @@ -271,7 +271,7 @@ class MessageLookup extends MessageLookupByLibrary { "password": MessageLookupByLibrary.simpleMessage("رمز عبور"), "passwordChangedSuccessfully": MessageLookupByLibrary.simpleMessage( "رمز عبور با موفقیت تغییر کرد"), - "passwordStrength": m55, + "passwordStrength": m56, "passwordWarning": MessageLookupByLibrary.simpleMessage( "ما این رمز عبور را ذخیره نمی‌کنیم، بنابراین اگر فراموش کنید، نمی‌توانیم اطلاعات شما را رمزگشایی کنیم"), "photoSmallCase": MessageLookupByLibrary.simpleMessage("عکس"), @@ -291,7 +291,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("پشتیبان گیری خصوصی"), "privateSharing": MessageLookupByLibrary.simpleMessage("اشتراک گذاری خصوصی"), - "rateUsOnStore": m66, + "rateUsOnStore": m67, "recover": MessageLookupByLibrary.simpleMessage("بازیابی"), "recoverAccount": MessageLookupByLibrary.simpleMessage("بازیابی حساب کاربری"), @@ -367,7 +367,7 @@ class MessageLookup extends MessageLookupByLibrary { "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("خانوادگی"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("شما"), - "storageUsageInfo": m91, + "storageUsageInfo": m92, "strongStrength": MessageLookupByLibrary.simpleMessage("قوی"), "support": MessageLookupByLibrary.simpleMessage("پشتیبانی"), "systemTheme": MessageLookupByLibrary.simpleMessage("سیستم"), @@ -408,7 +408,7 @@ class MessageLookup extends MessageLookupByLibrary { "از کلید بازیابی استفاده کنید"), "verify": MessageLookupByLibrary.simpleMessage("تایید"), "verifyEmail": MessageLookupByLibrary.simpleMessage("تایید ایمیل"), - "verifyEmailID": m108, + "verifyEmailID": m109, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("تایید"), "verifyPassword": MessageLookupByLibrary.simpleMessage("تایید رمز عبور"), @@ -421,7 +421,7 @@ class MessageLookup extends MessageLookupByLibrary { "viewer": MessageLookupByLibrary.simpleMessage("بیننده"), "weAreOpenSource": MessageLookupByLibrary.simpleMessage("ما متن‌باز هستیم!"), - "weHaveSendEmailTo": m110, + "weHaveSendEmailTo": m112, "weakStrength": MessageLookupByLibrary.simpleMessage("ضعیف"), "welcomeBack": MessageLookupByLibrary.simpleMessage("خوش آمدید!"), "whatsNew": MessageLookupByLibrary.simpleMessage("تغییرات جدید"), diff --git a/mobile/lib/generated/intl/messages_fr.dart b/mobile/lib/generated/intl/messages_fr.dart index e72d21ea76..944c18761f 100644 --- a/mobile/lib/generated/intl/messages_fr.dart +++ b/mobile/lib/generated/intl/messages_fr.dart @@ -91,211 +91,211 @@ class MessageLookup extends MessageLookupByLibrary { static String m26(count, formattedSize) => "${count} fichiers, ${formattedSize} chacun"; - static String m27(newEmail) => "L\'email a été changé par ${newEmail}"; + static String m28(newEmail) => "L\'email a été changé par ${newEmail}"; - static String m28(email) => "${email} n\'a pas de compte Ente."; + static String m29(email) => "${email} n\'a pas de compte Ente."; - static String m29(email) => + static String m30(email) => "${email} n\'a pas de compte Ente.\n\nEnvoyez une invitation pour partager des photos."; - static String m30(name) => "Embrasse ${name}"; + static String m31(name) => "Embrasse ${name}"; - static String m31(text) => "Photos supplémentaires trouvées pour ${text}"; + static String m32(text) => "Photos supplémentaires trouvées pour ${text}"; - static String m32(name) => "Fête avec ${name}"; - - static String m33(count, formattedNumber) => - "${Intl.plural(count, one: '1 fichier sur cet appareil a été sauvegardé en toute sécurité', other: '${formattedNumber} fichiers sur cet appareil ont été sauvegardés en toute sécurité')}"; + static String m33(name) => "Fête avec ${name}"; static String m34(count, formattedNumber) => + "${Intl.plural(count, one: '1 fichier sur cet appareil a été sauvegardé en toute sécurité', other: '${formattedNumber} fichiers sur cet appareil ont été sauvegardés en toute sécurité')}"; + + static String m35(count, formattedNumber) => "${Intl.plural(count, one: '1 fichier dans cet album a été sauvegardé en toute sécurité', other: '${formattedNumber} fichiers dans cet album ont été sauvegardés en toute sécurité')}"; - static String m35(storageAmountInGB) => + static String m36(storageAmountInGB) => "${storageAmountInGB} Go chaque fois que quelqu\'un s\'inscrit à une offre payante et applique votre code"; - static String m36(endDate) => "Essai gratuit valide jusqu’au ${endDate}"; + static String m37(endDate) => "Essai gratuit valide jusqu’au ${endDate}"; - static String m38(sizeInMBorGB) => "Libérer ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "Libérer ${sizeInMBorGB}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Traitement en cours ${currentlyProcessing} / ${totalCount}"; - static String m41(name) => "Randonnée avec ${name}"; + static String m42(name) => "Randonnée avec ${name}"; - static String m42(count) => + static String m43(count) => "${Intl.plural(count, one: '${count} objet', other: '${count} objets')}"; - static String m43(name) => "Dernière fois avec ${name}"; + static String m44(name) => "Dernière fois avec ${name}"; - static String m44(email) => + static String m45(email) => "${email} vous a invité à être un contact de confiance"; - static String m45(expiryTime) => "Le lien expirera le ${expiryTime}"; + static String m46(expiryTime) => "Le lien expirera le ${expiryTime}"; - static String m46(email) => "Associer la personne à ${email}"; + static String m47(email) => "Associer la personne à ${email}"; - static String m47(personName, email) => + static String m48(personName, email) => "Cela va associer ${personName} à ${email}"; - static String m48(count, formattedCount) => + static String m49(count, formattedCount) => "${Intl.plural(count, zero: 'aucun souvenir', one: '${formattedCount} souvenir', other: '${formattedCount} souvenirs')}"; - static String m50(albumName) => "Déplacé avec succès vers ${albumName}"; + static String m51(albumName) => "Déplacé avec succès vers ${albumName}"; - static String m51(personName) => "Aucune suggestion pour ${personName}"; + static String m52(personName) => "Aucune suggestion pour ${personName}"; - static String m52(name) => "Pas ${name}?"; + static String m53(name) => "Pas ${name}?"; - static String m53(familyAdminEmail) => + static String m54(familyAdminEmail) => "Veuillez contacter ${familyAdminEmail} pour modifier votre code."; - static String m54(name) => "En soirée avec ${name}"; + static String m55(name) => "En soirée avec ${name}"; - static String m55(passwordStrengthValue) => + static String m56(passwordStrengthValue) => "Sécurité du mot de passe : ${passwordStrengthValue}"; - static String m56(providerName) => + static String m57(providerName) => "Veuillez contacter le support ${providerName} si vous avez été facturé"; - static String m57(name, age) => "${name} a ${age}!"; + static String m58(name, age) => "${name} a ${age}!"; - static String m58(name, age) => "${name} aura bientôt ${age}"; + static String m59(name, age) => "${name} aura bientôt ${age}"; - static String m59(count) => + static String m60(count) => "${Intl.plural(count, zero: 'No photos', one: '1 photo', other: '${count} photos')}"; - static String m61(endDate) => + static String m62(endDate) => "Essai gratuit valable jusqu\'à ${endDate}.\nVous pouvez choisir un plan payant par la suite."; - static String m62(toEmail) => "Merci de nous envoyer un email à ${toEmail}"; + static String m63(toEmail) => "Merci de nous envoyer un email à ${toEmail}"; - static String m63(toEmail) => "Envoyez les logs à ${toEmail}"; + static String m64(toEmail) => "Envoyez les logs à ${toEmail}"; - static String m64(name) => "Pose avec ${name}"; + static String m65(name) => "Pose avec ${name}"; - static String m65(folderName) => "Traitement de ${folderName}..."; + static String m66(folderName) => "Traitement de ${folderName}..."; - static String m66(storeName) => "Laissez une note sur ${storeName}"; + static String m67(storeName) => "Laissez une note sur ${storeName}"; - static String m67(name) => "Vous a réassigné à ${name}"; + static String m68(name) => "Vous a réassigné à ${name}"; - static String m68(days, email) => + static String m69(days, email) => "Vous pourrez accéder au compte d\'ici ${days} jours. Une notification sera envoyée à ${email}."; - static String m69(email) => + static String m70(email) => "Vous pouvez maintenant récupérer le compte de ${email} en définissant un nouveau mot de passe."; - static String m70(email) => "${email} tente de récupérer votre compte."; + static String m71(email) => "${email} tente de récupérer votre compte."; - static String m71(storageInGB) => + static String m72(storageInGB) => "3. Vous recevez tous les deux ${storageInGB} Go* gratuits"; - static String m72(userEmail) => + static String m73(userEmail) => "${userEmail} sera retiré de cet album partagé\n\nToutes les photos ajoutées par eux seront également retirées de l\'album"; - static String m73(endDate) => "Renouvellement le ${endDate}"; + static String m74(endDate) => "Renouvellement le ${endDate}"; - static String m74(name) => "En route avec ${name}"; + static String m75(name) => "En route avec ${name}"; - static String m75(count) => + static String m76(count) => "${Intl.plural(count, one: '${count} résultat trouvé', other: '${count} résultats trouvés')}"; - static String m76(snapshotLength, searchLength) => + static String m77(snapshotLength, searchLength) => "Incompatibilité de longueur des sections : ${snapshotLength} != ${searchLength}"; - static String m77(count) => "${count} sélectionné(s)"; + static String m78(count) => "${count} sélectionné(s)"; - static String m78(count, yourCount) => + static String m79(count, yourCount) => "${count} sélectionné(s) (${yourCount} à vous)"; - static String m79(name) => "Selfies avec ${name}"; - - static String m80(verificationID) => - "Voici mon ID de vérification : ${verificationID} pour ente.io."; + static String m80(name) => "Selfies avec ${name}"; static String m81(verificationID) => + "Voici mon ID de vérification : ${verificationID} pour ente.io."; + + static String m82(verificationID) => "Hé, pouvez-vous confirmer qu\'il s\'agit de votre ID de vérification ente.io : ${verificationID}"; - static String m82(referralCode, referralStorageInGB) => + static String m83(referralCode, referralStorageInGB) => "Code de parrainage Ente : ${referralCode} \n\nValidez le dans Paramètres → Général → Références pour obtenir ${referralStorageInGB} Go gratuitement après votre inscription à un plan payant\n\nhttps://ente.io"; - static String m83(numberOfPeople) => + static String m84(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Partagez avec des personnes spécifiques', one: 'Partagé avec 1 personne', other: 'Partagé avec ${numberOfPeople} personnes')}"; - static String m84(emailIDs) => "Partagé avec ${emailIDs}"; - - static String m85(fileType) => - "Elle ${fileType} sera supprimée de votre appareil."; + static String m85(emailIDs) => "Partagé avec ${emailIDs}"; static String m86(fileType) => + "Elle ${fileType} sera supprimée de votre appareil."; + + static String m87(fileType) => "Cette ${fileType} est à la fois sur ente et sur votre appareil."; - static String m87(fileType) => "Cette ${fileType} sera supprimée de l\'Ente."; + static String m88(fileType) => "Cette ${fileType} sera supprimée de l\'Ente."; - static String m88(name) => "Sports avec ${name}"; + static String m89(name) => "Sports avec ${name}"; - static String m89(name) => "Spotlight sur ${name}"; + static String m90(name) => "Spotlight sur ${name}"; - static String m90(storageAmountInGB) => "${storageAmountInGB} Go"; + static String m91(storageAmountInGB) => "${storageAmountInGB} Go"; - static String m91( + static String m92( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} sur ${totalAmount} ${totalStorageUnit} utilisés"; - static String m92(id) => + static String m93(id) => "Votre ${id} est déjà lié à un autre compte Ente.\nSi vous souhaitez utiliser votre ${id} avec ce compte, veuillez contacter notre support"; - static String m93(endDate) => "Votre abonnement sera annulé le ${endDate}"; + static String m94(endDate) => "Votre abonnement sera annulé le ${endDate}"; - static String m94(completed, total) => + static String m95(completed, total) => "${completed}/${total} souvenirs sauvegardés"; - static String m95(ignoreReason) => + static String m96(ignoreReason) => "Appuyer pour envoyer, l\'envoi est actuellement ignoré en raison de ${ignoreReason}"; - static String m96(storageAmountInGB) => + static String m97(storageAmountInGB) => "Ils obtiennent aussi ${storageAmountInGB} Go"; - static String m97(email) => "Ceci est l\'ID de vérification de ${email}"; + static String m98(email) => "Ceci est l\'ID de vérification de ${email}"; - static String m98(count) => + static String m99(count) => "${Intl.plural(count, one: 'Cette semaine, ${count} il y a l\'année', other: 'Cette semaine, ${count} il y a des années')}"; - static String m99(dateFormat) => "${dateFormat} au fil des années"; + static String m100(dateFormat) => "${dateFormat} au fil des années"; - static String m100(count) => + static String m101(count) => "${Intl.plural(count, zero: 'Bientôt', one: '1 jour', other: '${count} jours')}"; - static String m101(year) => "Voyage en ${year}"; + static String m102(year) => "Voyage en ${year}"; - static String m102(location) => "Voyage vers ${location}"; + static String m103(location) => "Voyage vers ${location}"; - static String m103(email) => + static String m104(email) => "Vous avez été invité(e) à être un(e) héritier(e) par ${email}."; - static String m104(galleryType) => + static String m105(galleryType) => "Les galeries de type \'${galleryType}\' ne peuvent être renommées"; - static String m105(ignoreReason) => + static String m106(ignoreReason) => "L\'envoi est ignoré en raison de ${ignoreReason}"; - static String m106(count) => "Sauvegarde de ${count} souvenirs..."; + static String m107(count) => "Sauvegarde de ${count} souvenirs..."; - static String m107(endDate) => "Valable jusqu\'au ${endDate}"; + static String m108(endDate) => "Valable jusqu\'au ${endDate}"; - static String m108(email) => "Vérifier ${email}"; + static String m109(email) => "Vérifier ${email}"; - static String m115(name) => "Voir ${name} pour délier"; + static String m110(name) => "Voir ${name} pour délier"; - static String m110(email) => + static String m112(email) => "Nous avons envoyé un email à ${email}"; - static String m111(count) => + static String m113(count) => "${Intl.plural(count, one: 'il y a ${count} an', other: 'il y a ${count} ans')}"; - static String m112(name) => "Vous et ${name}"; + static String m114(name) => "Vous et ${name}"; - static String m113(storageSaved) => + static String m115(storageSaved) => "Vous avez libéré ${storageSaved} avec succès !"; final messages = _notInlinedMessages(_notInlinedMessages); @@ -880,16 +880,16 @@ class MessageLookup extends MessageLookupByLibrary { "email": MessageLookupByLibrary.simpleMessage("E-mail"), "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage("Email déjà enregistré."), - "emailChangedTo": m27, - "emailDoesNotHaveEnteAccount": m28, - "emailNoEnteAccount": m29, + "emailChangedTo": m28, + "emailDoesNotHaveEnteAccount": m29, + "emailNoEnteAccount": m30, "emailNotRegistered": MessageLookupByLibrary.simpleMessage("E-mail non enregistré."), "emailVerificationToggle": MessageLookupByLibrary.simpleMessage( "Authentification à deux facteurs par email"), "emailYourLogs": MessageLookupByLibrary.simpleMessage( "Envoyez vos journaux par email"), - "embracingThem": m30, + "embracingThem": m31, "emergencyContacts": MessageLookupByLibrary.simpleMessage("Contacts d\'urgence"), "empty": MessageLookupByLibrary.simpleMessage("Vider"), @@ -967,7 +967,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Exportez vos données"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage( "Photos supplémentaires trouvées"), - "extraPhotosFoundFor": m31, + "extraPhotosFoundFor": m32, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Ce visage n\'a pas encore été regroupé, veuillez revenir plus tard"), "faceRecognition": @@ -1006,7 +1006,7 @@ class MessageLookup extends MessageLookupByLibrary { "faq": MessageLookupByLibrary.simpleMessage("FAQ"), "faqs": MessageLookupByLibrary.simpleMessage("FAQ"), "favorite": MessageLookupByLibrary.simpleMessage("Favori"), - "feastingWithThem": m32, + "feastingWithThem": m33, "feedback": MessageLookupByLibrary.simpleMessage("Commentaires"), "file": MessageLookupByLibrary.simpleMessage("Fichier"), "fileFailedToSaveToGallery": MessageLookupByLibrary.simpleMessage( @@ -1020,8 +1020,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Types de fichiers"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Types et noms de fichiers"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m34, + "filesBackedUpInAlbum": m35, "filesDeleted": MessageLookupByLibrary.simpleMessage("Fichiers supprimés"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage( @@ -1039,12 +1039,12 @@ class MessageLookup extends MessageLookupByLibrary { "foundFaces": MessageLookupByLibrary.simpleMessage("Visages trouvés"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("Stockage gratuit obtenu"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m36, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("Stockage gratuit disponible"), "freeTrial": MessageLookupByLibrary.simpleMessage("Essai gratuit"), - "freeTrialValidTill": m36, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage( "Libérer de l\'espace sur l\'appareil"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( @@ -1057,7 +1057,7 @@ class MessageLookup extends MessageLookupByLibrary { "general": MessageLookupByLibrary.simpleMessage("Général"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Génération des clés de chiffrement..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Allez aux réglages"), "googlePlayId": @@ -1088,7 +1088,7 @@ class MessageLookup extends MessageLookupByLibrary { "hideSharedItemsFromHomeGallery": MessageLookupByLibrary.simpleMessage( "Masquer les éléments partagés avec vous dans la galerie"), "hiding": MessageLookupByLibrary.simpleMessage("Masquage en cours..."), - "hikingWithThem": m41, + "hikingWithThem": m42, "hostedAtOsmFrance": MessageLookupByLibrary.simpleMessage("Hébergé chez OSM France"), "howItWorks": @@ -1148,7 +1148,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Il semble qu\'une erreur s\'est produite. Veuillez réessayer après un certain temps. Si l\'erreur persiste, veuillez contacter notre équipe d\'assistance."), - "itemCount": m42, + "itemCount": m43, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Les éléments montrent le nombre de jours restants avant la suppression définitive"), @@ -1170,7 +1170,7 @@ class MessageLookup extends MessageLookupByLibrary { "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage( "Merci de nous aider avec cette information"), "language": MessageLookupByLibrary.simpleMessage("Langue"), - "lastTimeWithThem": m43, + "lastTimeWithThem": m44, "lastUpdated": MessageLookupByLibrary.simpleMessage("Dernière mise à jour"), "lastYearsTrip": @@ -1185,7 +1185,7 @@ class MessageLookup extends MessageLookupByLibrary { "legacy": MessageLookupByLibrary.simpleMessage("Héritage"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Comptes hérités"), - "legacyInvite": m44, + "legacyInvite": m45, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "L\'héritage permet aux contacts de confiance d\'accéder à votre compte en votre absence."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( @@ -1202,7 +1202,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("pour un partage plus rapide"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Activé"), "linkExpired": MessageLookupByLibrary.simpleMessage("Expiré"), - "linkExpiresOn": m45, + "linkExpiresOn": m46, "linkExpiry": MessageLookupByLibrary.simpleMessage("Expiration du lien"), "linkHasExpired": @@ -1211,8 +1211,8 @@ class MessageLookup extends MessageLookupByLibrary { "linkPerson": MessageLookupByLibrary.simpleMessage("Lier la personne"), "linkPersonCaption": MessageLookupByLibrary.simpleMessage( "pour une meilleure expérience de partage"), - "linkPersonToEmail": m46, - "linkPersonToEmailConfirmation": m47, + "linkPersonToEmail": m47, + "linkPersonToEmailConfirmation": m48, "livePhotos": MessageLookupByLibrary.simpleMessage("Photos en direct"), "loadMessage1": MessageLookupByLibrary.simpleMessage( "Vous pouvez partager votre abonnement avec votre famille"), @@ -1301,7 +1301,7 @@ class MessageLookup extends MessageLookupByLibrary { "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), "me": MessageLookupByLibrary.simpleMessage("Moi"), - "memoryCount": m48, + "memoryCount": m49, "merchandise": MessageLookupByLibrary.simpleMessage("Boutique"), "mergeWithExisting": MessageLookupByLibrary.simpleMessage("Fusionner avec existant"), @@ -1341,7 +1341,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Déplacer vers l\'album"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage( "Déplacer vers un album masqué"), - "movedSuccessfullyTo": m50, + "movedSuccessfullyTo": m51, "movedToTrash": MessageLookupByLibrary.simpleMessage("Déplacé dans la corbeille"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1395,10 +1395,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Aucun résultat"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Aucun résultat trouvé"), - "noSuggestionsForPerson": m51, + "noSuggestionsForPerson": m52, "noSystemLockFound": MessageLookupByLibrary.simpleMessage("Aucun verrou système trouvé"), - "notPersonLabel": m52, + "notPersonLabel": m53, "notThisPerson": MessageLookupByLibrary.simpleMessage( "Ce n\'est pas cette personne ?"), "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( @@ -1413,7 +1413,7 @@ class MessageLookup extends MessageLookupByLibrary { "onTheRoad": MessageLookupByLibrary.simpleMessage("De nouveau sur la route"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), - "onlyFamilyAdminCanChangeCode": m53, + "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Seulement eux"), "oops": MessageLookupByLibrary.simpleMessage("Oups"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( @@ -1445,7 +1445,7 @@ class MessageLookup extends MessageLookupByLibrary { "pairingComplete": MessageLookupByLibrary.simpleMessage("Appairage terminé"), "panorama": MessageLookupByLibrary.simpleMessage("Panorama"), - "partyWithThem": m54, + "partyWithThem": m55, "passKeyPendingVerification": MessageLookupByLibrary.simpleMessage( "La vérification est toujours en attente"), "passkey": MessageLookupByLibrary.simpleMessage( @@ -1457,7 +1457,7 @@ class MessageLookup extends MessageLookupByLibrary { "Le mot de passe a été modifié"), "passwordLock": MessageLookupByLibrary.simpleMessage( "Verrouillage par mot de passe"), - "passwordStrength": m55, + "passwordStrength": m56, "passwordStrengthInfo": MessageLookupByLibrary.simpleMessage( "La force du mot de passe est calculée en tenant compte de la longueur du mot de passe, des caractères utilisés et du fait que le mot de passe figure ou non parmi les 10 000 mots de passe les plus utilisés"), "passwordWarning": MessageLookupByLibrary.simpleMessage( @@ -1468,7 +1468,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Échec du paiement"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Malheureusement votre paiement a échoué. Veuillez contacter le support et nous vous aiderons !"), - "paymentFailedTalkToProvider": m56, + "paymentFailedTalkToProvider": m57, "pendingItems": MessageLookupByLibrary.simpleMessage("Éléments en attente"), "pendingSync": @@ -1482,10 +1482,10 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Supprimer définitivement"), "permanentlyDeleteFromDevice": MessageLookupByLibrary.simpleMessage( "Supprimer définitivement de l\'appareil ?"), - "personIsAge": m57, + "personIsAge": m58, "personName": MessageLookupByLibrary.simpleMessage("Nom de la personne"), - "personTurningAge": m58, + "personTurningAge": m59, "pets": MessageLookupByLibrary.simpleMessage("Compagnons à quatre pattes"), "photoDescriptions": @@ -1493,7 +1493,7 @@ class MessageLookup extends MessageLookupByLibrary { "photoGridSize": MessageLookupByLibrary.simpleMessage("Taille de la grille photo"), "photoSmallCase": MessageLookupByLibrary.simpleMessage("photo"), - "photocountPhotos": m59, + "photocountPhotos": m60, "photos": MessageLookupByLibrary.simpleMessage("Photos"), "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( @@ -1510,7 +1510,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Lire l\'album sur la TV"), "playOriginal": MessageLookupByLibrary.simpleMessage("Lire l\'original"), - "playStoreFreeTrialValidTill": m61, + "playStoreFreeTrialValidTill": m62, "playStream": MessageLookupByLibrary.simpleMessage("Lire le stream"), "playstoreSubscription": MessageLookupByLibrary.simpleMessage("Abonnement au PlayStore"), @@ -1523,14 +1523,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Merci de contacter l\'assistance si cette erreur persiste"), - "pleaseEmailUsAt": m62, + "pleaseEmailUsAt": m63, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage( "Veuillez accorder la permission"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Veuillez vous reconnecter"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Veuillez sélectionner les liens rapides à supprimer"), - "pleaseSendTheLogsTo": m63, + "pleaseSendTheLogsTo": m64, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Veuillez réessayer"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1545,7 +1545,7 @@ class MessageLookup extends MessageLookupByLibrary { "Veuillez attendre quelque temps avant de réessayer"), "pleaseWaitThisWillTakeAWhile": MessageLookupByLibrary.simpleMessage( "Veuillez patienter, cela prendra un peu de temps."), - "posingWithThem": m64, + "posingWithThem": m65, "preparingLogs": MessageLookupByLibrary.simpleMessage("Préparation des journaux..."), "preserveMore": MessageLookupByLibrary.simpleMessage("Conserver plus"), @@ -1565,7 +1565,7 @@ class MessageLookup extends MessageLookupByLibrary { "processed": MessageLookupByLibrary.simpleMessage("Appris"), "processing": MessageLookupByLibrary.simpleMessage("Traitement en cours"), - "processingImport": m65, + "processingImport": m66, "processingVideos": MessageLookupByLibrary.simpleMessage("Traitement des vidéos"), "publicLinkCreated": @@ -1579,10 +1579,10 @@ class MessageLookup extends MessageLookupByLibrary { "rateTheApp": MessageLookupByLibrary.simpleMessage("Évaluer l\'application"), "rateUs": MessageLookupByLibrary.simpleMessage("Évaluez-nous"), - "rateUsOnStore": m66, + "rateUsOnStore": m67, "reassignMe": MessageLookupByLibrary.simpleMessage("Réassigner \"Moi\""), - "reassignedToName": m67, + "reassignedToName": m68, "reassigningLoading": MessageLookupByLibrary.simpleMessage("Réassignation..."), "recover": MessageLookupByLibrary.simpleMessage("Récupérer"), @@ -1593,7 +1593,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Récupérer un compte"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("Récupération initiée"), - "recoveryInitiatedDesc": m68, + "recoveryInitiatedDesc": m69, "recoveryKey": MessageLookupByLibrary.simpleMessage("Clé de secours"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Clé de secours copiée dans le presse-papiers"), @@ -1607,12 +1607,12 @@ class MessageLookup extends MessageLookupByLibrary { "Clé de récupération vérifiée"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Votre clé de récupération est la seule façon de récupérer vos photos si vous oubliez votre mot de passe. Vous pouvez trouver votre clé de récupération dans Paramètres > Compte.\n\nVeuillez saisir votre clé de récupération ici pour vous assurer de l\'avoir enregistré correctement."), - "recoveryReady": m69, + "recoveryReady": m70, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("Restauration réussie !"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "Un contact de confiance tente d\'accéder à votre compte"), - "recoveryWarningBody": m70, + "recoveryWarningBody": m71, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "L\'appareil actuel n\'est pas assez puissant pour vérifier votre mot de passe, mais nous pouvons le régénérer d\'une manière qui fonctionne avec tous les appareils.\n\nVeuillez vous connecter à l\'aide de votre clé de secours et régénérer votre mot de passe (vous pouvez réutiliser le même si vous le souhaitez)."), "recreatePasswordTitle": @@ -1628,7 +1628,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Donnez ce code à vos ami·e·s"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Ils souscrivent à une offre payante"), - "referralStep3": m71, + "referralStep3": m72, "referrals": MessageLookupByLibrary.simpleMessage("Parrainages"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Les recommandations sont actuellement en pause"), @@ -1660,7 +1660,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Supprimer le lien"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Supprimer le participant"), - "removeParticipantBody": m72, + "removeParticipantBody": m73, "removePersonLabel": MessageLookupByLibrary.simpleMessage( "Supprimer le libellé d\'une personne"), "removePublicLink": @@ -1682,7 +1682,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Renommer le fichier"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Renouveler l’abonnement"), - "renewsOn": m73, + "renewsOn": m74, "reportABug": MessageLookupByLibrary.simpleMessage("Signaler un bogue"), "reportBug": MessageLookupByLibrary.simpleMessage("Signaler un bogue"), "resendEmail": @@ -1708,7 +1708,7 @@ class MessageLookup extends MessageLookupByLibrary { "reviewSuggestions": MessageLookupByLibrary.simpleMessage("Examiner les suggestions"), "right": MessageLookupByLibrary.simpleMessage("Droite"), - "roadtripWithThem": m74, + "roadtripWithThem": m75, "rotate": MessageLookupByLibrary.simpleMessage("Pivoter"), "rotateLeft": MessageLookupByLibrary.simpleMessage("Pivoter à gauche"), "rotateRight": @@ -1768,8 +1768,8 @@ class MessageLookup extends MessageLookupByLibrary { "Invitez quelqu\'un·e et vous verrez ici toutes les photos partagées"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "Les personnes seront affichées ici une fois le traitement terminé"), - "searchResultCount": m75, - "searchSectionsLengthMismatch": m76, + "searchResultCount": m76, + "searchSectionsLengthMismatch": m77, "security": MessageLookupByLibrary.simpleMessage("Sécurité"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Ouvrir les liens des albums publics dans l\'application"), @@ -1822,9 +1822,9 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeRemovedFromThisPerson": MessageLookupByLibrary.simpleMessage( "Les éléments sélectionnés seront retirés de cette personne, mais pas supprimés de votre bibliothèque."), - "selectedPhotos": m77, - "selectedPhotosWithYours": m78, - "selfiesWithThem": m79, + "selectedPhotos": m78, + "selectedPhotosWithYours": m79, + "selfiesWithThem": m80, "send": MessageLookupByLibrary.simpleMessage("Envoyer"), "sendEmail": MessageLookupByLibrary.simpleMessage("Envoyer un e-mail"), "sendInvite": @@ -1858,16 +1858,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage( "Partagez un album maintenant"), "shareLink": MessageLookupByLibrary.simpleMessage("Partager le lien"), - "shareMyVerificationID": m80, + "shareMyVerificationID": m81, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Partagez uniquement avec les personnes que vous souhaitez"), - "shareTextConfirmOthersVerificationID": m81, + "shareTextConfirmOthersVerificationID": m82, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Téléchargez Ente pour pouvoir facilement partager des photos et vidéos en qualité originale\n\nhttps://ente.io"), - "shareTextReferralCode": m82, + "shareTextReferralCode": m83, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Partager avec des utilisateurs non-Ente"), - "shareWithPeopleSectionTitle": m83, + "shareWithPeopleSectionTitle": m84, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage( "Partagez votre premier album"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1878,7 +1878,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Nouvelles photos partagées"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Recevoir des notifications quand quelqu\'un·e ajoute une photo à un album partagé dont vous faites partie"), - "sharedWith": m84, + "sharedWith": m85, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Partagés avec moi"), "sharedWithYou": @@ -1898,11 +1898,11 @@ class MessageLookup extends MessageLookupByLibrary { "Déconnecter les autres appareils"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "J\'accepte les conditions d\'utilisation et la politique de confidentialité"), - "singleFileDeleteFromDevice": m85, + "singleFileDeleteFromDevice": m86, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Elle sera supprimée de tous les albums."), - "singleFileInBothLocalAndRemote": m86, - "singleFileInRemoteOnly": m87, + "singleFileInBothLocalAndRemote": m87, + "singleFileInRemoteOnly": m88, "skip": MessageLookupByLibrary.simpleMessage("Ignorer"), "social": MessageLookupByLibrary.simpleMessage("Retrouvez nous"), "someItemsAreInBothEnteAndYourDevice": @@ -1938,8 +1938,8 @@ class MessageLookup extends MessageLookupByLibrary { "sortOldestFirst": MessageLookupByLibrary.simpleMessage("Plus ancien en premier"), "sparkleSuccess": MessageLookupByLibrary.simpleMessage("✨ Succès"), - "sportsWithThem": m88, - "spotlightOnThem": m89, + "sportsWithThem": m89, + "spotlightOnThem": m90, "spotlightOnYourself": MessageLookupByLibrary.simpleMessage("Éclairage sur vous-même"), "startAccountRecoveryTitle": @@ -1954,15 +1954,15 @@ class MessageLookup extends MessageLookupByLibrary { "storage": MessageLookupByLibrary.simpleMessage("Stockage"), "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("Famille"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("Vous"), - "storageInGB": m90, + "storageInGB": m91, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Limite de stockage atteinte"), - "storageUsageInfo": m91, + "storageUsageInfo": m92, "streamDetails": MessageLookupByLibrary.simpleMessage("Détails du stream"), "strongStrength": MessageLookupByLibrary.simpleMessage("Forte"), - "subAlreadyLinkedErrMessage": m92, - "subWillBeCancelledOn": m93, + "subAlreadyLinkedErrMessage": m93, + "subWillBeCancelledOn": m94, "subscribe": MessageLookupByLibrary.simpleMessage("S\'abonner"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Vous avez besoin d\'un abonnement payant actif pour activer le partage."), @@ -1980,7 +1980,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Suggérer une fonctionnalité"), "sunrise": MessageLookupByLibrary.simpleMessage("À l\'horizon"), "support": MessageLookupByLibrary.simpleMessage("Support"), - "syncProgress": m94, + "syncProgress": m95, "syncStopped": MessageLookupByLibrary.simpleMessage("Synchronisation arrêtée ?"), "syncing": MessageLookupByLibrary.simpleMessage( @@ -1993,7 +1993,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Appuyer pour déverrouiller"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Appuyer pour envoyer"), - "tapToUploadIsIgnoredDue": m95, + "tapToUploadIsIgnoredDue": m96, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Il semble qu\'une erreur s\'est produite. Veuillez réessayer après un certain temps. Si l\'erreur persiste, veuillez contacter notre équipe d\'assistance."), "terminate": MessageLookupByLibrary.simpleMessage("Se déconnecter"), @@ -2017,7 +2017,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Ces éléments seront supprimés de votre appareil."), - "theyAlsoGetXGb": m96, + "theyAlsoGetXGb": m97, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Ils seront supprimés de tous les albums."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( @@ -2035,12 +2035,12 @@ class MessageLookup extends MessageLookupByLibrary { "Cette image n\'a pas de données exif"), "thisIsMeExclamation": MessageLookupByLibrary.simpleMessage("C\'est moi !"), - "thisIsPersonVerificationId": m97, + "thisIsPersonVerificationId": m98, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage( "Ceci est votre ID de vérification"), "thisWeekThroughTheYears": MessageLookupByLibrary.simpleMessage( "Cette semaine au fil des années"), - "thisWeekXYearsAgo": m98, + "thisWeekXYearsAgo": m99, "thisWillLogYouOutOfTheFollowingDevice": MessageLookupByLibrary.simpleMessage( "Cela vous déconnectera de l\'appareil suivant :"), @@ -2052,7 +2052,7 @@ class MessageLookup extends MessageLookupByLibrary { "thisWillRemovePublicLinksOfAllSelectedQuickLinks": MessageLookupByLibrary.simpleMessage( "Ceci supprimera les liens publics de tous les liens rapides sélectionnés."), - "throughTheYears": m99, + "throughTheYears": m100, "toEnableAppLockPleaseSetupDevicePasscodeOrScreen": MessageLookupByLibrary.simpleMessage( "Pour activer le verrouillage de l\'application vous devez configurer le code d\'accès de l\'appareil ou le verrouillage de l\'écran dans les paramètres de votre système."), @@ -2066,13 +2066,13 @@ class MessageLookup extends MessageLookupByLibrary { "total": MessageLookupByLibrary.simpleMessage("total"), "totalSize": MessageLookupByLibrary.simpleMessage("Taille totale"), "trash": MessageLookupByLibrary.simpleMessage("Corbeille"), - "trashDaysLeft": m100, + "trashDaysLeft": m101, "trim": MessageLookupByLibrary.simpleMessage("Recadrer"), - "tripInYear": m101, - "tripToLocation": m102, + "tripInYear": m102, + "tripToLocation": m103, "trustedContacts": MessageLookupByLibrary.simpleMessage("Contacts de confiance"), - "trustedInviteBody": m103, + "trustedInviteBody": m104, "tryAgain": MessageLookupByLibrary.simpleMessage("Réessayer"), "turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage( "Activez la sauvegarde pour charger automatiquement sur Ente les fichiers ajoutés à ce dossier de l\'appareil."), @@ -2092,7 +2092,7 @@ class MessageLookup extends MessageLookupByLibrary { "L\'authentification à deux facteurs a été réinitialisée avec succès "), "twofactorSetup": MessageLookupByLibrary.simpleMessage( "Configuration de l\'authentification à deux facteurs"), - "typeOfGallerGallerytypeIsNotSupportedForRename": m104, + "typeOfGallerGallerytypeIsNotSupportedForRename": m105, "unarchive": MessageLookupByLibrary.simpleMessage("Désarchiver"), "unarchiveAlbum": MessageLookupByLibrary.simpleMessage("Désarchiver l\'album"), @@ -2120,10 +2120,10 @@ class MessageLookup extends MessageLookupByLibrary { "updatingFolderSelection": MessageLookupByLibrary.simpleMessage( "Mise à jour de la sélection du dossier..."), "upgrade": MessageLookupByLibrary.simpleMessage("Améliorer"), - "uploadIsIgnoredDueToIgnorereason": m105, + "uploadIsIgnoredDueToIgnorereason": m106, "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage( "Envoi des fichiers vers l\'album..."), - "uploadingMultipleMemories": m106, + "uploadingMultipleMemories": m107, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage( "Sauvegarde d\'un souvenir..."), "upto50OffUntil4thDec": MessageLookupByLibrary.simpleMessage( @@ -2141,7 +2141,7 @@ class MessageLookup extends MessageLookupByLibrary { "useSelectedPhoto": MessageLookupByLibrary.simpleMessage( "Utiliser la photo sélectionnée"), "usedSpace": MessageLookupByLibrary.simpleMessage("Stockage utilisé"), - "validTill": m107, + "validTill": m108, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "La vérification a échouée, veuillez réessayer"), @@ -2150,7 +2150,7 @@ class MessageLookup extends MessageLookupByLibrary { "verify": MessageLookupByLibrary.simpleMessage("Vérifier"), "verifyEmail": MessageLookupByLibrary.simpleMessage("Vérifier l\'email"), - "verifyEmailID": m108, + "verifyEmailID": m109, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("Vérifier"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("Vérifier la clé de sécurité"), @@ -2176,7 +2176,7 @@ class MessageLookup extends MessageLookupByLibrary { "Affichez les fichiers qui consomment le plus de stockage."), "viewLogs": MessageLookupByLibrary.simpleMessage("Afficher les journaux"), - "viewPersonToUnlink": m115, + "viewPersonToUnlink": m110, "viewRecoveryKey": MessageLookupByLibrary.simpleMessage("Voir la clé de récupération"), "viewer": MessageLookupByLibrary.simpleMessage("Observateur"), @@ -2192,7 +2192,7 @@ class MessageLookup extends MessageLookupByLibrary { "weDontSupportEditingPhotosAndAlbumsThatYouDont": MessageLookupByLibrary.simpleMessage( "Nous ne prenons pas en charge l\'édition des photos et des albums que vous ne possédez pas encore"), - "weHaveSendEmailTo": m110, + "weHaveSendEmailTo": m112, "weakStrength": MessageLookupByLibrary.simpleMessage("Securité Faible"), "welcomeBack": MessageLookupByLibrary.simpleMessage("Bienvenue !"), "whatsNew": MessageLookupByLibrary.simpleMessage("Nouveautés"), @@ -2200,7 +2200,7 @@ class MessageLookup extends MessageLookupByLibrary { "Un contact de confiance peut vous aider à récupérer vos données."), "yearShort": MessageLookupByLibrary.simpleMessage("an"), "yearly": MessageLookupByLibrary.simpleMessage("Annuel"), - "yearsAgo": m111, + "yearsAgo": m113, "yes": MessageLookupByLibrary.simpleMessage("Oui"), "yesCancel": MessageLookupByLibrary.simpleMessage("Oui, annuler"), "yesConvertToViewer": MessageLookupByLibrary.simpleMessage( @@ -2215,7 +2215,7 @@ class MessageLookup extends MessageLookupByLibrary { "yesResetPerson": MessageLookupByLibrary.simpleMessage( "Oui, réinitialiser la personne"), "you": MessageLookupByLibrary.simpleMessage("Vous"), - "youAndThem": m112, + "youAndThem": m114, "youAreOnAFamilyPlan": MessageLookupByLibrary.simpleMessage( "Vous êtes sur un plan familial !"), "youAreOnTheLatestVersion": MessageLookupByLibrary.simpleMessage( @@ -2234,7 +2234,7 @@ class MessageLookup extends MessageLookupByLibrary { "Vous ne pouvez pas partager avec vous-même"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage( "Vous n\'avez aucun élément archivé."), - "youHaveSuccessfullyFreedUp": m113, + "youHaveSuccessfullyFreedUp": m115, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage("Votre compte a été supprimé"), "yourMap": MessageLookupByLibrary.simpleMessage("Votre carte"), diff --git a/mobile/lib/generated/intl/messages_he.dart b/mobile/lib/generated/intl/messages_he.dart index 6fb4cb704c..9da980c999 100644 --- a/mobile/lib/generated/intl/messages_he.dart +++ b/mobile/lib/generated/intl/messages_he.dart @@ -57,67 +57,67 @@ class MessageLookup extends MessageLookupByLibrary { static String m26(count, formattedSize) => "${count} קבצים, כל אחד ${formattedSize}"; - static String m29(email) => + static String m30(email) => "לא נמצא חשבון ente ל-${email}.\n\nשלח להם הזמנה על מנת לשתף תמונות."; - static String m35(storageAmountInGB) => + static String m36(storageAmountInGB) => "${storageAmountInGB} GB כל פעם שמישהו נרשם עבור תוכנית בתשלום ומחיל את הקוד שלך"; - static String m36(endDate) => "ניסיון חינם בתוקף עד ל-${endDate}"; + static String m37(endDate) => "ניסיון חינם בתוקף עד ל-${endDate}"; - static String m42(count) => + static String m43(count) => "${Intl.plural(count, one: '${count} פריט', two: '${count} פריטים', many: '${count} פריטים', other: '${count} פריטים')}"; - static String m45(expiryTime) => "תוקף הקישור יפוג ב-${expiryTime}"; + static String m46(expiryTime) => "תוקף הקישור יפוג ב-${expiryTime}"; - static String m55(passwordStrengthValue) => + static String m56(passwordStrengthValue) => "חוזק הסיסמא: ${passwordStrengthValue}"; - static String m56(providerName) => + static String m57(providerName) => "אנא דבר עם התמיכה של ${providerName} אם אתה חוייבת"; - static String m66(storeName) => "דרג אותנו ב-${storeName}"; + static String m67(storeName) => "דרג אותנו ב-${storeName}"; - static String m71(storageInGB) => "3. שניכים מקבלים ${storageInGB} GB* בחינם"; + static String m72(storageInGB) => "3. שניכים מקבלים ${storageInGB} GB* בחינם"; - static String m72(userEmail) => + static String m73(userEmail) => "${userEmail} יוסר מהאלבום המשותף הזה\n\nגם תמונות שנוספו על ידיהם יוסרו מהאלבום"; - static String m77(count) => "${count} נבחרו"; + static String m78(count) => "${count} נבחרו"; - static String m78(count, yourCount) => "${count} נבחרו (${yourCount} שלך)"; - - static String m80(verificationID) => - "הנה מזהה האימות שלי: ${verificationID} עבור ente.io."; + static String m79(count, yourCount) => "${count} נבחרו (${yourCount} שלך)"; static String m81(verificationID) => + "הנה מזהה האימות שלי: ${verificationID} עבור ente.io."; + + static String m82(verificationID) => "היי, תוכל לוודא שזה מזהה האימות שלך של ente.io: ${verificationID}"; - static String m83(numberOfPeople) => + static String m84(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'שתף עם אנשים ספציפיים', one: 'שותף עם איש 1', two: 'שותף עם 2 אנשים', other: 'שותף עם ${numberOfPeople} אנשים')}"; - static String m84(emailIDs) => "הושתף ע\"י ${emailIDs}"; + static String m85(emailIDs) => "הושתף ע\"י ${emailIDs}"; - static String m85(fileType) => "${fileType} יימחק מהמכשיר שלך."; + static String m86(fileType) => "${fileType} יימחק מהמכשיר שלך."; - static String m90(storageAmountInGB) => "${storageAmountInGB} GB"; + static String m91(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m93(endDate) => "המנוי שלך יבוטל ב-${endDate}"; + static String m94(endDate) => "המנוי שלך יבוטל ב-${endDate}"; - static String m94(completed, total) => "${completed}/${total} זכרונות נשמרו"; + static String m95(completed, total) => "${completed}/${total} זכרונות נשמרו"; - static String m96(storageAmountInGB) => "הם גם יקבלו ${storageAmountInGB} GB"; + static String m97(storageAmountInGB) => "הם גם יקבלו ${storageAmountInGB} GB"; - static String m97(email) => "זה מזהה האימות של ${email}"; + static String m98(email) => "זה מזהה האימות של ${email}"; - static String m108(email) => "אמת ${email}"; + static String m109(email) => "אמת ${email}"; - static String m110(email) => "שלחנו דוא\"ל ל${email}"; + static String m112(email) => "שלחנו דוא\"ל ל${email}"; - static String m111(count) => + static String m113(count) => "${Intl.plural(count, one: 'לפני ${count} שנה', two: 'לפני ${count} שנים', many: 'לפני ${count} שנים', other: 'לפני ${count} שנים')}"; - static String m113(storageSaved) => "הצלחת לפנות ${storageSaved}!"; + static String m115(storageSaved) => "הצלחת לפנות ${storageSaved}!"; final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { @@ -396,7 +396,7 @@ class MessageLookup extends MessageLookupByLibrary { "edit": MessageLookupByLibrary.simpleMessage("ערוך"), "eligible": MessageLookupByLibrary.simpleMessage("זכאי"), "email": MessageLookupByLibrary.simpleMessage("דוא\"ל"), - "emailNoEnteAccount": m29, + "emailNoEnteAccount": m30, "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("אימות מייל"), "empty": MessageLookupByLibrary.simpleMessage("ריק"), @@ -465,11 +465,11 @@ class MessageLookup extends MessageLookupByLibrary { "forgotPassword": MessageLookupByLibrary.simpleMessage("שכחתי סיסמה"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("מקום אחסון בחינם נתבע"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m36, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("מקום אחסון שמיש"), "freeTrial": MessageLookupByLibrary.simpleMessage("ניסיון חינמי"), - "freeTrialValidTill": m36, + "freeTrialValidTill": m37, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage("פנה אחסון במכשיר"), "freeUpSpace": MessageLookupByLibrary.simpleMessage("פנה מקום"), @@ -507,7 +507,7 @@ class MessageLookup extends MessageLookupByLibrary { "invite": MessageLookupByLibrary.simpleMessage("הזמן"), "inviteYourFriends": MessageLookupByLibrary.simpleMessage("הזמן את חברייך"), - "itemCount": m42, + "itemCount": m43, "itemsWillBeRemovedFromAlbum": MessageLookupByLibrary.simpleMessage( "הפריטים שנבחרו יוסרו מהאלבום הזה"), "keepPhotos": MessageLookupByLibrary.simpleMessage("השאר תמונות"), @@ -529,7 +529,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("מגבלת כמות מכשירים"), "linkEnabled": MessageLookupByLibrary.simpleMessage("מאופשר"), "linkExpired": MessageLookupByLibrary.simpleMessage("פג תוקף"), - "linkExpiresOn": m45, + "linkExpiresOn": m46, "linkExpiry": MessageLookupByLibrary.simpleMessage("תאריך תפוגה ללינק"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("הקישור פג תוקף"), @@ -599,12 +599,12 @@ class MessageLookup extends MessageLookupByLibrary { "passwordChangedSuccessfully": MessageLookupByLibrary.simpleMessage("הססמה הוחלפה בהצלחה"), "passwordLock": MessageLookupByLibrary.simpleMessage("נעילת סיסמא"), - "passwordStrength": m55, + "passwordStrength": m56, "passwordWarning": MessageLookupByLibrary.simpleMessage( "אנחנו לא שומרים את הסיסמא הזו, לכן אם אתה שוכח אותה, אנחנו לא יכולים לפענח את המידע שלך"), "paymentDetails": MessageLookupByLibrary.simpleMessage("פרטי תשלום"), "paymentFailed": MessageLookupByLibrary.simpleMessage("התשלום נכשל"), - "paymentFailedTalkToProvider": m56, + "paymentFailedTalkToProvider": m57, "peopleUsingYourCode": MessageLookupByLibrary.simpleMessage("אנשים משתמשים בקוד שלך"), "permanentlyDelete": @@ -646,7 +646,7 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("צור ticket"), "rateTheApp": MessageLookupByLibrary.simpleMessage("דרג את האפליקציה"), "rateUs": MessageLookupByLibrary.simpleMessage("דרג אותנו"), - "rateUsOnStore": m66, + "rateUsOnStore": m67, "recover": MessageLookupByLibrary.simpleMessage("שחזר"), "recoverAccount": MessageLookupByLibrary.simpleMessage("שחזר חשבון"), "recoverButton": MessageLookupByLibrary.simpleMessage("שחזר"), @@ -672,7 +672,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. תמסור את הקוד הזה לחברייך"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. הם נרשמים עבור תוכנית בתשלום"), - "referralStep3": m71, + "referralStep3": m72, "referrals": MessageLookupByLibrary.simpleMessage("הפניות"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage("הפניות כרגע מושהות"), @@ -688,7 +688,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("הסר מהאלבום?"), "removeLink": MessageLookupByLibrary.simpleMessage("הסרת קישור"), "removeParticipant": MessageLookupByLibrary.simpleMessage("הסר משתתף"), - "removeParticipantBody": m72, + "removeParticipantBody": m73, "removePublicLink": MessageLookupByLibrary.simpleMessage("הסר לינק ציבורי"), "removeShareItemsWarning": MessageLookupByLibrary.simpleMessage( @@ -739,8 +739,8 @@ class MessageLookup extends MessageLookupByLibrary { "selectedFoldersWillBeEncryptedAndBackedUp": MessageLookupByLibrary.simpleMessage( "התיקיות שנבחרו יוצפנו ויגובו"), - "selectedPhotos": m77, - "selectedPhotosWithYours": m78, + "selectedPhotos": m78, + "selectedPhotosWithYours": m79, "send": MessageLookupByLibrary.simpleMessage("שלח"), "sendEmail": MessageLookupByLibrary.simpleMessage("שלח דוא\"ל"), "sendInvite": MessageLookupByLibrary.simpleMessage("שלח הזמנה"), @@ -759,15 +759,15 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("שתף אלבום עכשיו"), "shareLink": MessageLookupByLibrary.simpleMessage("שתף קישור"), - "shareMyVerificationID": m80, + "shareMyVerificationID": m81, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage("שתף רק אם אנשים שאתה בוחר"), - "shareTextConfirmOthersVerificationID": m81, + "shareTextConfirmOthersVerificationID": m82, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "הורד את ente על מנת שנוכל לשתף תמונות וסרטונים באיכות המקור באופן קל\n\nhttps://ente.io"), "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "שתף עם משתמשים שהם לא של ente"), - "shareWithPeopleSectionTitle": m83, + "shareWithPeopleSectionTitle": m84, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("שתף את האלבום הראשון שלך"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -778,13 +778,13 @@ class MessageLookup extends MessageLookupByLibrary { "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "קבל התראות כשמישהו מוסיף תמונה לאלבום משותף שאתה חלק ממנו"), - "sharedWith": m84, + "sharedWith": m85, "sharedWithMe": MessageLookupByLibrary.simpleMessage("שותף איתי"), "sharing": MessageLookupByLibrary.simpleMessage("משתף..."), "showMemories": MessageLookupByLibrary.simpleMessage("הצג זכרונות"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "אני מסכים לתנאי שירות ולמדיניות הפרטיות"), - "singleFileDeleteFromDevice": m85, + "singleFileDeleteFromDevice": m86, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage("זה יימחק מכל האלבומים."), "skip": MessageLookupByLibrary.simpleMessage("דלג"), @@ -813,18 +813,18 @@ class MessageLookup extends MessageLookupByLibrary { "storage": MessageLookupByLibrary.simpleMessage("אחסון"), "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("משפחה"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("אתה"), - "storageInGB": m90, + "storageInGB": m91, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("גבול מקום האחסון נחרג"), "strongStrength": MessageLookupByLibrary.simpleMessage("חזקה"), - "subWillBeCancelledOn": m93, + "subWillBeCancelledOn": m94, "subscribe": MessageLookupByLibrary.simpleMessage("הרשם"), "subscription": MessageLookupByLibrary.simpleMessage("מנוי"), "success": MessageLookupByLibrary.simpleMessage("הצלחה"), "suggestFeatures": MessageLookupByLibrary.simpleMessage("הציעו מאפיינים"), "support": MessageLookupByLibrary.simpleMessage("תמיכה"), - "syncProgress": m94, + "syncProgress": m95, "syncing": MessageLookupByLibrary.simpleMessage("מסנכרן..."), "systemTheme": MessageLookupByLibrary.simpleMessage("מערכת"), "tapToCopy": MessageLookupByLibrary.simpleMessage("הקש כדי להעתיק"), @@ -840,12 +840,12 @@ class MessageLookup extends MessageLookupByLibrary { "theDownloadCouldNotBeCompleted": MessageLookupByLibrary.simpleMessage("לא ניתן להשלים את ההורדה"), "theme": MessageLookupByLibrary.simpleMessage("ערכת נושא"), - "theyAlsoGetXGb": m96, + "theyAlsoGetXGb": m97, "thisCanBeUsedToRecoverYourAccountIfYou": MessageLookupByLibrary.simpleMessage( "זה יכול לשמש לשחזור החשבון שלך במקרה ותאבד את הגורם השני"), "thisDevice": MessageLookupByLibrary.simpleMessage("מכשיר זה"), - "thisIsPersonVerificationId": m97, + "thisIsPersonVerificationId": m98, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage("זה מזהה האימות שלך"), "thisWillLogYouOutOfTheFollowingDevice": @@ -889,7 +889,7 @@ class MessageLookup extends MessageLookupByLibrary { "verificationId": MessageLookupByLibrary.simpleMessage("מזהה אימות"), "verify": MessageLookupByLibrary.simpleMessage("אמת"), "verifyEmail": MessageLookupByLibrary.simpleMessage("אימות דוא\"ל"), - "verifyEmailID": m108, + "verifyEmailID": m109, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("אמת"), "verifyPassword": MessageLookupByLibrary.simpleMessage("אמת סיסמא"), "verifyingRecoveryKey": @@ -906,11 +906,11 @@ class MessageLookup extends MessageLookupByLibrary { "אנא בקר ב-web.ente.io על מנת לנהל את המנוי שלך"), "weAreOpenSource": MessageLookupByLibrary.simpleMessage("הקוד שלנו פתוח!"), - "weHaveSendEmailTo": m110, + "weHaveSendEmailTo": m112, "weakStrength": MessageLookupByLibrary.simpleMessage("חלשה"), "welcomeBack": MessageLookupByLibrary.simpleMessage("ברוך שובך!"), "yearly": MessageLookupByLibrary.simpleMessage("שנתי"), - "yearsAgo": m111, + "yearsAgo": m113, "yes": MessageLookupByLibrary.simpleMessage("כן"), "yesCancel": MessageLookupByLibrary.simpleMessage("כן, בטל"), "yesConvertToViewer": @@ -933,7 +933,7 @@ class MessageLookup extends MessageLookupByLibrary { "אתה לא יכול לשנמך לתוכנית הזו"), "youCannotShareWithYourself": MessageLookupByLibrary.simpleMessage("אתה לא יכול לשתף עם עצמך"), - "youHaveSuccessfullyFreedUp": m113, + "youHaveSuccessfullyFreedUp": m115, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage("החשבון שלך נמחק"), "yourPlanWasSuccessfullyDowngraded": diff --git a/mobile/lib/generated/intl/messages_id.dart b/mobile/lib/generated/intl/messages_id.dart index 7aab424b4a..dac91a45fc 100644 --- a/mobile/lib/generated/intl/messages_id.dart +++ b/mobile/lib/generated/intl/messages_id.dart @@ -74,117 +74,117 @@ class MessageLookup extends MessageLookupByLibrary { static String m25(count, storageSaved) => "Kamu telah menghapus ${Intl.plural(count, other: '${count} file duplikat')} dan membersihkan (${storageSaved}!)"; - static String m27(newEmail) => "Email diubah menjadi ${newEmail}"; + static String m28(newEmail) => "Email diubah menjadi ${newEmail}"; - static String m29(email) => + static String m30(email) => "${email} tidak punya akun Ente.\n\nUndang dia untuk berbagi foto."; - static String m33(count, formattedNumber) => + static String m34(count, formattedNumber) => "${Intl.plural(count, other: '${formattedNumber} file')} di perangkat ini telah berhasil dicadangkan"; - static String m34(count, formattedNumber) => + static String m35(count, formattedNumber) => "${Intl.plural(count, other: '${formattedNumber} file')} dalam album ini telah berhasil dicadangkan"; - static String m35(storageAmountInGB) => + static String m36(storageAmountInGB) => "${storageAmountInGB} GB setiap kali orang mendaftar dengan paket berbayar lalu menerapkan kode milikmu"; - static String m36(endDate) => "Percobaan gratis berlaku hingga ${endDate}"; + static String m37(endDate) => "Percobaan gratis berlaku hingga ${endDate}"; - static String m38(sizeInMBorGB) => "Bersihkan ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "Bersihkan ${sizeInMBorGB}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Memproses ${currentlyProcessing} / ${totalCount}"; - static String m42(count) => "${Intl.plural(count, other: '${count} item')}"; + static String m43(count) => "${Intl.plural(count, other: '${count} item')}"; - static String m45(expiryTime) => "Link akan kedaluwarsa pada ${expiryTime}"; + static String m46(expiryTime) => "Link akan kedaluwarsa pada ${expiryTime}"; - static String m50(albumName) => "Berhasil dipindahkan ke ${albumName}"; + static String m51(albumName) => "Berhasil dipindahkan ke ${albumName}"; - static String m53(familyAdminEmail) => + static String m54(familyAdminEmail) => "Harap hubungi ${familyAdminEmail} untuk mengubah kode kamu."; - static String m55(passwordStrengthValue) => + static String m56(passwordStrengthValue) => "Keamanan sandi: ${passwordStrengthValue}"; - static String m56(providerName) => + static String m57(providerName) => "Harap hubungi dukungan ${providerName} jika kamu dikenai biaya"; - static String m61(endDate) => + static String m62(endDate) => "Percobaan gratis berlaku hingga ${endDate}.\nKamu dapat memilih paket berbayar setelahnya."; - static String m62(toEmail) => "Silakan kirimi kami email di ${toEmail}"; + static String m63(toEmail) => "Silakan kirimi kami email di ${toEmail}"; - static String m63(toEmail) => "Silakan kirim log-nya ke \n${toEmail}"; + static String m64(toEmail) => "Silakan kirim log-nya ke \n${toEmail}"; - static String m66(storeName) => "Beri nilai di ${storeName}"; + static String m67(storeName) => "Beri nilai di ${storeName}"; - static String m71(storageInGB) => + static String m72(storageInGB) => "3. Kalian berdua mendapat ${storageInGB} GB* gratis"; - static String m72(userEmail) => + static String m73(userEmail) => "${userEmail} akan dikeluarkan dari album berbagi ini\n\nSemua foto yang ia tambahkan juga akan dihapus dari album ini"; - static String m73(endDate) => "Langganan akan diperpanjang pada ${endDate}"; + static String m74(endDate) => "Langganan akan diperpanjang pada ${endDate}"; - static String m75(count) => + static String m76(count) => "${Intl.plural(count, other: '${count} hasil ditemukan')}"; - static String m77(count) => "${count} terpilih"; + static String m78(count) => "${count} terpilih"; - static String m78(count, yourCount) => + static String m79(count, yourCount) => "${count} dipilih (${yourCount} milikmu)"; - static String m80(verificationID) => + static String m81(verificationID) => "Ini ID Verifikasi saya di ente.io: ${verificationID}."; - static String m81(verificationID) => + static String m82(verificationID) => "Halo, bisakah kamu pastikan bahwa ini adalah ID Verifikasi ente.io milikmu: ${verificationID}"; - static String m82(referralCode, referralStorageInGB) => + static String m83(referralCode, referralStorageInGB) => "Kode rujukan Ente: ${referralCode} \n\nTerapkan pada Pengaturan → Umum → Rujukan untuk mendapatkan ${referralStorageInGB} GB gratis setelah kamu mendaftar paket berbayar\n\nhttps://ente.io"; - static String m83(numberOfPeople) => + static String m84(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Bagikan dengan orang tertentu', one: 'Berbagi dengan 1 orang', other: 'Berbagi dengan ${numberOfPeople} orang')}"; - static String m84(emailIDs) => "Dibagikan dengan ${emailIDs}"; - - static String m85(fileType) => - "${fileType} ini akan dihapus dari perangkat ini."; + static String m85(emailIDs) => "Dibagikan dengan ${emailIDs}"; static String m86(fileType) => + "${fileType} ini akan dihapus dari perangkat ini."; + + static String m87(fileType) => "${fileType} ini tersimpan di Ente dan juga di perangkat ini."; - static String m87(fileType) => "${fileType} ini akan dihapus dari Ente."; + static String m88(fileType) => "${fileType} ini akan dihapus dari Ente."; - static String m90(storageAmountInGB) => "${storageAmountInGB} GB"; + static String m91(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m91( + static String m92( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} dari ${totalAmount} ${totalStorageUnit} terpakai"; - static String m92(id) => + static String m93(id) => "${id} kamu telah terhubung dengan akun Ente lain.\nJika kamu ingin menggunakan ${id} kamu untuk akun ini, silahkan hubungi tim bantuan kami"; - static String m93(endDate) => + static String m94(endDate) => "Langganan kamu akan dibatalkan pada ${endDate}"; - static String m96(storageAmountInGB) => + static String m97(storageAmountInGB) => "Ia juga mendapat ${storageAmountInGB} GB"; - static String m97(email) => "Ini adalah ID Verifikasi milik ${email}"; + static String m98(email) => "Ini adalah ID Verifikasi milik ${email}"; - static String m107(endDate) => "Berlaku hingga ${endDate}"; + static String m108(endDate) => "Berlaku hingga ${endDate}"; - static String m108(email) => "Verifikasi ${email}"; + static String m109(email) => "Verifikasi ${email}"; - static String m110(email) => + static String m112(email) => "Kami telah mengirimkan email ke ${email}"; - static String m111(count) => + static String m113(count) => "${Intl.plural(count, other: '${count} tahun lalu')}"; - static String m113(storageSaved) => + static String m115(storageSaved) => "Kamu telah berhasil membersihkan ${storageSaved}!"; final messages = _notInlinedMessages(_notInlinedMessages); @@ -587,8 +587,8 @@ class MessageLookup extends MessageLookupByLibrary { "Perubahan lokasi hanya akan terlihat di Ente"), "eligible": MessageLookupByLibrary.simpleMessage("memenuhi syarat"), "email": MessageLookupByLibrary.simpleMessage("Email"), - "emailChangedTo": m27, - "emailNoEnteAccount": m29, + "emailChangedTo": m28, + "emailNoEnteAccount": m30, "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("Verifikasi email"), "empty": MessageLookupByLibrary.simpleMessage("Kosongkan"), @@ -686,8 +686,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Jenis file"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Nama dan jenis file"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m34, + "filesBackedUpInAlbum": m35, "filesDeleted": MessageLookupByLibrary.simpleMessage("File terhapus"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage("File tersimpan ke galeri"), @@ -701,12 +701,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Wajah yang ditemukan"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("Kuota gratis diperoleh"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m36, "freeStorageUsable": MessageLookupByLibrary.simpleMessage( "Kuota gratis yang dapat digunakan"), "freeTrial": MessageLookupByLibrary.simpleMessage("Percobaan gratis"), - "freeTrialValidTill": m36, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage( "Bersihkan penyimpanan perangkat"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( @@ -715,7 +715,7 @@ class MessageLookup extends MessageLookupByLibrary { "general": MessageLookupByLibrary.simpleMessage("Umum"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Menghasilkan kunci enkripsi..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Buka pengaturan"), "googlePlayId": MessageLookupByLibrary.simpleMessage("ID Google Play"), "grantFullAccessPrompt": MessageLookupByLibrary.simpleMessage( @@ -775,7 +775,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Sepertinya terjadi kesalahan. Silakan coba lagi setelah beberapa saat. Jika kesalahan terus terjadi, silakan hubungi tim dukungan kami."), - "itemCount": m42, + "itemCount": m43, "itemsWillBeRemovedFromAlbum": MessageLookupByLibrary.simpleMessage( "Item yang dipilih akan dihapus dari album ini"), "joinDiscord": @@ -802,7 +802,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Batas perangkat"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Aktif"), "linkExpired": MessageLookupByLibrary.simpleMessage("Kedaluwarsa"), - "linkExpiresOn": m45, + "linkExpiresOn": m46, "linkExpiry": MessageLookupByLibrary.simpleMessage("Waktu kedaluwarsa link"), "linkHasExpired": @@ -883,7 +883,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Pindahkan ke album"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage( "Pindahkan ke album tersembunyi"), - "movedSuccessfullyTo": m50, + "movedSuccessfullyTo": m51, "movedToTrash": MessageLookupByLibrary.simpleMessage("Pindah ke sampah"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -935,7 +935,7 @@ class MessageLookup extends MessageLookupByLibrary { "onEnte": MessageLookupByLibrary.simpleMessage( "Di ente"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), - "onlyFamilyAdminCanChangeCode": m53, + "onlyFamilyAdminCanChangeCode": m54, "oops": MessageLookupByLibrary.simpleMessage("Aduh"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( "Aduh, tidak dapat menyimpan perubahan"), @@ -962,7 +962,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Sandi berhasil diubah"), "passwordLock": MessageLookupByLibrary.simpleMessage("Kunci dengan sandi"), - "passwordStrength": m55, + "passwordStrength": m56, "passwordWarning": MessageLookupByLibrary.simpleMessage( "Kami tidak menyimpan sandi ini, jadi jika kamu melupakannya, kami tidak akan bisa mendekripsi data kamu"), "paymentDetails": @@ -971,7 +971,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Pembayaran gagal"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Sayangnya, pembayaranmu gagal. Silakan hubungi tim bantuan agar dapat kami bantu!"), - "paymentFailedTalkToProvider": m56, + "paymentFailedTalkToProvider": m57, "pendingItems": MessageLookupByLibrary.simpleMessage("Item menunggu"), "pendingSync": MessageLookupByLibrary.simpleMessage("Sinkronisasi tertunda"), @@ -994,7 +994,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "Foto yang telah kamu tambahkan akan dihapus dari album ini"), "playOnTv": MessageLookupByLibrary.simpleMessage("Putar album di TV"), - "playStoreFreeTrialValidTill": m61, + "playStoreFreeTrialValidTill": m62, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("Langganan PlayStore"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1006,12 +1006,12 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Silakan hubungi tim bantuan jika masalah terus terjadi"), - "pleaseEmailUsAt": m62, + "pleaseEmailUsAt": m63, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage("Harap berikan izin"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Silakan masuk akun lagi"), - "pleaseSendTheLogsTo": m63, + "pleaseSendTheLogsTo": m64, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Silakan coba lagi"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1045,7 +1045,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Buat tiket dukungan"), "rateTheApp": MessageLookupByLibrary.simpleMessage("Nilai app ini"), "rateUs": MessageLookupByLibrary.simpleMessage("Beri kami nilai"), - "rateUsOnStore": m66, + "rateUsOnStore": m67, "recover": MessageLookupByLibrary.simpleMessage("Pulihkan"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Pulihkan akun"), "recoverButton": MessageLookupByLibrary.simpleMessage("Pulihkan"), @@ -1073,7 +1073,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Berikan kode ini ke teman kamu"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Ia perlu daftar ke paket berbayar"), - "referralStep3": m71, + "referralStep3": m72, "referrals": MessageLookupByLibrary.simpleMessage("Referensi"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage("Rujukan sedang dijeda"), @@ -1095,7 +1095,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Hapus link"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Hapus peserta"), - "removeParticipantBody": m72, + "removeParticipantBody": m73, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Hapus label orang"), "removePublicLink": @@ -1111,7 +1111,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("Ubah nama file"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Perpanjang langganan"), - "renewsOn": m73, + "renewsOn": m74, "reportABug": MessageLookupByLibrary.simpleMessage("Laporkan bug"), "reportBug": MessageLookupByLibrary.simpleMessage("Laporkan bug"), "resendEmail": @@ -1162,7 +1162,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Album, nama dan jenis file"), "searchHint5": MessageLookupByLibrary.simpleMessage( "Segera tiba: Penelusuran wajah & ajaib ✨"), - "searchResultCount": m75, + "searchResultCount": m76, "security": MessageLookupByLibrary.simpleMessage("Keamanan"), "selectALocation": MessageLookupByLibrary.simpleMessage("Pilih lokasi"), "selectALocationFirst": MessageLookupByLibrary.simpleMessage( @@ -1187,8 +1187,8 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeDeletedFromAllAlbumsAndMoved": MessageLookupByLibrary.simpleMessage( "Item terpilih akan dihapus dari semua album dan dipindahkan ke sampah."), - "selectedPhotos": m77, - "selectedPhotosWithYours": m78, + "selectedPhotos": m78, + "selectedPhotosWithYours": m79, "send": MessageLookupByLibrary.simpleMessage("Kirim"), "sendEmail": MessageLookupByLibrary.simpleMessage("Kirim email"), "sendInvite": MessageLookupByLibrary.simpleMessage("Kirim undangan"), @@ -1209,16 +1209,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Bagikan album sekarang"), "shareLink": MessageLookupByLibrary.simpleMessage("Bagikan link"), - "shareMyVerificationID": m80, + "shareMyVerificationID": m81, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Bagikan hanya dengan orang yang kamu inginkan"), - "shareTextConfirmOthersVerificationID": m81, + "shareTextConfirmOthersVerificationID": m82, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Unduh Ente agar kita bisa berbagi foto dan video kualitas asli dengan mudah\n\nhttps://ente.io"), - "shareTextReferralCode": m82, + "shareTextReferralCode": m83, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Bagikan ke pengguna non-Ente"), - "shareWithPeopleSectionTitle": m83, + "shareWithPeopleSectionTitle": m84, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("Bagikan album pertamamu"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1231,7 +1231,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Foto terbagi baru"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Terima notifikasi apabila seseorang menambahkan foto ke album bersama yang kamu ikuti"), - "sharedWith": m84, + "sharedWith": m85, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Dibagikan dengan saya"), "sharedWithYou": @@ -1246,11 +1246,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Keluar di perangkat lain"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Saya menyetujui ketentuan layanan dan kebijakan privasi Ente"), - "singleFileDeleteFromDevice": m85, + "singleFileDeleteFromDevice": m86, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Ia akan dihapus dari semua album."), - "singleFileInBothLocalAndRemote": m86, - "singleFileInRemoteOnly": m87, + "singleFileInBothLocalAndRemote": m87, + "singleFileInRemoteOnly": m88, "skip": MessageLookupByLibrary.simpleMessage("Lewati"), "social": MessageLookupByLibrary.simpleMessage("Sosial"), "someItemsAreInBothEnteAndYourDevice": @@ -1292,13 +1292,13 @@ class MessageLookup extends MessageLookupByLibrary { "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("Keluarga"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("Kamu"), - "storageInGB": m90, + "storageInGB": m91, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage( "Batas penyimpanan terlampaui"), - "storageUsageInfo": m91, + "storageUsageInfo": m92, "strongStrength": MessageLookupByLibrary.simpleMessage("Kuat"), - "subAlreadyLinkedErrMessage": m92, - "subWillBeCancelledOn": m93, + "subAlreadyLinkedErrMessage": m93, + "subWillBeCancelledOn": m94, "subscribe": MessageLookupByLibrary.simpleMessage("Berlangganan"), "subscription": MessageLookupByLibrary.simpleMessage("Langganan"), "success": MessageLookupByLibrary.simpleMessage("Berhasil"), @@ -1338,7 +1338,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Item ini akan dihapus dari perangkat ini."), - "theyAlsoGetXGb": m96, + "theyAlsoGetXGb": m97, "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( "Tindakan ini tidak dapat dibatalkan"), "thisAlbumAlreadyHDACollaborativeLink": @@ -1352,7 +1352,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Email ini telah digunakan"), "thisImageHasNoExifData": MessageLookupByLibrary.simpleMessage( "Gambar ini tidak memiliki data exif"), - "thisIsPersonVerificationId": m97, + "thisIsPersonVerificationId": m98, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage( "Ini adalah ID Verifikasi kamu"), "thisWillLogYouOutOfTheFollowingDevice": @@ -1418,14 +1418,14 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Gunakan kunci pemulihan"), "useSelectedPhoto": MessageLookupByLibrary.simpleMessage("Gunakan foto terpilih"), - "validTill": m107, + "validTill": m108, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Verifikasi gagal, silakan coba lagi"), "verificationId": MessageLookupByLibrary.simpleMessage("ID Verifikasi"), "verify": MessageLookupByLibrary.simpleMessage("Verifikasi"), "verifyEmail": MessageLookupByLibrary.simpleMessage("Verifikasi email"), - "verifyEmailID": m108, + "verifyEmailID": m109, "verifyPasskey": MessageLookupByLibrary.simpleMessage("Verifikasi passkey"), "verifyPassword": @@ -1455,13 +1455,13 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Menunggu WiFi..."), "weAreOpenSource": MessageLookupByLibrary.simpleMessage("Kode sumber kami terbuka!"), - "weHaveSendEmailTo": m110, + "weHaveSendEmailTo": m112, "weakStrength": MessageLookupByLibrary.simpleMessage("Lemah"), "welcomeBack": MessageLookupByLibrary.simpleMessage("Selamat datang kembali!"), "whatsNew": MessageLookupByLibrary.simpleMessage("Hal yang baru"), "yearly": MessageLookupByLibrary.simpleMessage("Tahunan"), - "yearsAgo": m111, + "yearsAgo": m113, "yes": MessageLookupByLibrary.simpleMessage("Ya"), "yesCancel": MessageLookupByLibrary.simpleMessage("Ya, batalkan"), "yesConvertToViewer": @@ -1488,7 +1488,7 @@ class MessageLookup extends MessageLookupByLibrary { "Kamu tidak bisa berbagi dengan dirimu sendiri"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage( "Kamu tidak memiliki item di arsip."), - "youHaveSuccessfullyFreedUp": m113, + "youHaveSuccessfullyFreedUp": m115, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage("Akunmu telah dihapus"), "yourMap": MessageLookupByLibrary.simpleMessage("Peta kamu"), diff --git a/mobile/lib/generated/intl/messages_it.dart b/mobile/lib/generated/intl/messages_it.dart index 4748bbe66c..383646c970 100644 --- a/mobile/lib/generated/intl/messages_it.dart +++ b/mobile/lib/generated/intl/messages_it.dart @@ -85,160 +85,160 @@ class MessageLookup extends MessageLookupByLibrary { static String m26(count, formattedSize) => "${count} file, ${formattedSize} l\'uno"; - static String m27(newEmail) => "Email cambiata in ${newEmail}"; + static String m28(newEmail) => "Email cambiata in ${newEmail}"; - static String m28(email) => "${email} non ha un account Ente."; + static String m29(email) => "${email} non ha un account Ente."; - static String m29(email) => + static String m30(email) => "${email} non ha un account Ente.\n\nInvia un invito per condividere foto."; - static String m31(text) => "Trovate foto aggiuntive per ${text}"; - - static String m33(count, formattedNumber) => - "${Intl.plural(count, one: '1 file', other: '${formattedNumber} file')} di quest\'album sono stati salvati in modo sicuro"; + static String m32(text) => "Trovate foto aggiuntive per ${text}"; static String m34(count, formattedNumber) => "${Intl.plural(count, one: '1 file', other: '${formattedNumber} file')} di quest\'album sono stati salvati in modo sicuro"; - static String m35(storageAmountInGB) => + static String m35(count, formattedNumber) => + "${Intl.plural(count, one: '1 file', other: '${formattedNumber} file')} di quest\'album sono stati salvati in modo sicuro"; + + static String m36(storageAmountInGB) => "${storageAmountInGB} GB ogni volta che qualcuno si iscrive a un piano a pagamento e applica il tuo codice"; - static String m36(endDate) => "La prova gratuita termina il ${endDate}"; + static String m37(endDate) => "La prova gratuita termina il ${endDate}"; - static String m38(sizeInMBorGB) => "Libera ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "Libera ${sizeInMBorGB}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Elaborazione ${currentlyProcessing} / ${totalCount}"; - static String m42(count) => + static String m43(count) => "${Intl.plural(count, one: '${count} elemento', other: '${count} elementi')}"; - static String m44(email) => + static String m45(email) => "${email} ti ha invitato a essere un contatto fidato"; - static String m45(expiryTime) => "Il link scadrà il ${expiryTime}"; + static String m46(expiryTime) => "Il link scadrà il ${expiryTime}"; - static String m46(email) => "Collega persona a ${email}"; + static String m47(email) => "Collega persona a ${email}"; - static String m50(albumName) => "Spostato con successo su ${albumName}"; + static String m51(albumName) => "Spostato con successo su ${albumName}"; - static String m51(personName) => "Nessun suggerimento per ${personName}"; + static String m52(personName) => "Nessun suggerimento per ${personName}"; - static String m52(name) => "Non è ${name}?"; + static String m53(name) => "Non è ${name}?"; - static String m53(familyAdminEmail) => + static String m54(familyAdminEmail) => "Per favore contatta ${familyAdminEmail} per cambiare il tuo codice."; - static String m55(passwordStrengthValue) => + static String m56(passwordStrengthValue) => "Sicurezza password: ${passwordStrengthValue}"; - static String m56(providerName) => + static String m57(providerName) => "Si prega di parlare con il supporto di ${providerName} se ti è stato addebitato qualcosa"; - static String m61(endDate) => + static String m62(endDate) => "Prova gratuita valida fino al ${endDate}.\nIn seguito potrai scegliere un piano a pagamento."; - static String m62(toEmail) => "Per favore invia un\'email a ${toEmail}"; + static String m63(toEmail) => "Per favore invia un\'email a ${toEmail}"; - static String m63(toEmail) => "Invia i log a \n${toEmail}"; + static String m64(toEmail) => "Invia i log a \n${toEmail}"; - static String m65(folderName) => "Elaborando ${folderName}..."; + static String m66(folderName) => "Elaborando ${folderName}..."; - static String m66(storeName) => "Valutaci su ${storeName}"; + static String m67(storeName) => "Valutaci su ${storeName}"; - static String m67(name) => "Riassegnato a ${name}"; + static String m68(name) => "Riassegnato a ${name}"; - static String m68(days, email) => + static String m69(days, email) => "Puoi accedere all\'account dopo ${days} giorni. Una notifica verrà inviata a ${email}."; - static String m69(email) => + static String m70(email) => "Ora puoi recuperare l\'account di ${email} impostando una nuova password."; - static String m70(email) => + static String m71(email) => "${email} sta cercando di recuperare il tuo account."; - static String m71(storageInGB) => + static String m72(storageInGB) => "3. Ottenete entrambi ${storageInGB} GB* gratis"; - static String m72(userEmail) => + static String m73(userEmail) => "${userEmail} verrà rimosso da questo album condiviso\n\nQualsiasi foto aggiunta dall\'utente verrà rimossa dall\'album"; - static String m73(endDate) => "Si rinnova il ${endDate}"; + static String m74(endDate) => "Si rinnova il ${endDate}"; - static String m75(count) => + static String m76(count) => "${Intl.plural(count, one: '${count} risultato trovato', other: '${count} risultati trovati')}"; - static String m77(count) => "${count} selezionati"; + static String m78(count) => "${count} selezionati"; - static String m78(count, yourCount) => + static String m79(count, yourCount) => "${count} selezionato (${yourCount} tuoi)"; - static String m80(verificationID) => + static String m81(verificationID) => "Ecco il mio ID di verifica: ${verificationID} per ente.io."; - static String m81(verificationID) => + static String m82(verificationID) => "Hey, puoi confermare che questo è il tuo ID di verifica: ${verificationID} su ente.io"; - static String m82(referralCode, referralStorageInGB) => + static String m83(referralCode, referralStorageInGB) => "Codice invito Ente: ${referralCode} \n\nInseriscilo in Impostazioni → Generali → Inviti per ottenere ${referralStorageInGB} GB gratis dopo la sottoscrizione a un piano a pagamento\n\nhttps://ente.io"; - static String m83(numberOfPeople) => + static String m84(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Condividi con persone specifiche', one: 'Condividi con una persona', other: 'Condividi con ${numberOfPeople} persone')}"; - static String m84(emailIDs) => "Condiviso con ${emailIDs}"; - - static String m85(fileType) => - "Questo ${fileType} verrà eliminato dal tuo dispositivo."; + static String m85(emailIDs) => "Condiviso con ${emailIDs}"; static String m86(fileType) => + "Questo ${fileType} verrà eliminato dal tuo dispositivo."; + + static String m87(fileType) => "Questo ${fileType} è sia su Ente che sul tuo dispositivo."; - static String m87(fileType) => "Questo ${fileType} verrà eliminato da Ente."; + static String m88(fileType) => "Questo ${fileType} verrà eliminato da Ente."; - static String m90(storageAmountInGB) => "${storageAmountInGB} GB"; + static String m91(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m91( + static String m92( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} di ${totalAmount} ${totalStorageUnit} utilizzati"; - static String m92(id) => + static String m93(id) => "Il tuo ${id} è già collegato a un altro account Ente.\nSe desideri utilizzare il tuo ${id} con questo account, per favore contatta il nostro supporto\'\'"; - static String m93(endDate) => "L\'abbonamento verrà cancellato il ${endDate}"; + static String m94(endDate) => "L\'abbonamento verrà cancellato il ${endDate}"; - static String m94(completed, total) => + static String m95(completed, total) => "${completed}/${total} ricordi conservati"; - static String m95(ignoreReason) => + static String m96(ignoreReason) => "Tocca per caricare, il caricamento è attualmente ignorato a causa di ${ignoreReason}"; - static String m96(storageAmountInGB) => + static String m97(storageAmountInGB) => "Anche loro riceveranno ${storageAmountInGB} GB"; - static String m97(email) => "Questo è l\'ID di verifica di ${email}"; + static String m98(email) => "Questo è l\'ID di verifica di ${email}"; - static String m100(count) => + static String m101(count) => "${Intl.plural(count, zero: 'Presto', one: '1 giorno', other: '${count} giorni')}"; - static String m103(email) => + static String m104(email) => "Sei stato invitato a essere un contatto Legacy da ${email}."; - static String m105(ignoreReason) => + static String m106(ignoreReason) => "Il caricamento è ignorato a causa di ${ignoreReason}"; - static String m106(count) => "Conservando ${count} ricordi..."; + static String m107(count) => "Conservando ${count} ricordi..."; - static String m107(endDate) => "Valido fino al ${endDate}"; + static String m108(endDate) => "Valido fino al ${endDate}"; - static String m108(email) => "Verifica ${email}"; + static String m109(email) => "Verifica ${email}"; - static String m110(email) => + static String m112(email) => "Abbiamo inviato una mail a ${email}"; - static String m111(count) => + static String m113(count) => "${Intl.plural(count, one: '${count} anno fa', other: '${count} anni fa')}"; - static String m113(storageSaved) => + static String m115(storageSaved) => "Hai liberato con successo ${storageSaved}!"; final messages = _notInlinedMessages(_notInlinedMessages); @@ -776,9 +776,9 @@ class MessageLookup extends MessageLookupByLibrary { "email": MessageLookupByLibrary.simpleMessage("Email"), "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage("Email già registrata."), - "emailChangedTo": m27, - "emailDoesNotHaveEnteAccount": m28, - "emailNoEnteAccount": m29, + "emailChangedTo": m28, + "emailDoesNotHaveEnteAccount": m29, + "emailNoEnteAccount": m30, "emailNotRegistered": MessageLookupByLibrary.simpleMessage("Email non registrata."), "emailVerificationToggle": @@ -860,7 +860,7 @@ class MessageLookup extends MessageLookupByLibrary { "exportYourData": MessageLookupByLibrary.simpleMessage("Esporta dati"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage("Trovate foto aggiuntive"), - "extraPhotosFoundFor": m31, + "extraPhotosFoundFor": m32, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Faccia non ancora raggruppata, per favore torna più tardi"), "faceRecognition": @@ -910,8 +910,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Tipi di file"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Tipi e nomi di file"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m34, + "filesBackedUpInAlbum": m35, "filesDeleted": MessageLookupByLibrary.simpleMessage("File eliminati"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage("File salvati nella galleria"), @@ -927,12 +927,12 @@ class MessageLookup extends MessageLookupByLibrary { "foundFaces": MessageLookupByLibrary.simpleMessage("Volti trovati"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("Spazio gratuito richiesto"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m36, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("Spazio libero utilizzabile"), "freeTrial": MessageLookupByLibrary.simpleMessage("Prova gratuita"), - "freeTrialValidTill": m36, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage("Libera spazio"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( @@ -944,7 +944,7 @@ class MessageLookup extends MessageLookupByLibrary { "general": MessageLookupByLibrary.simpleMessage("Generali"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Generazione delle chiavi di crittografia..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Vai alle impostazioni"), "googlePlayId": MessageLookupByLibrary.simpleMessage("Google Play ID"), @@ -1029,7 +1029,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Sembra che qualcosa sia andato storto. Riprova tra un po\'. Se l\'errore persiste, contatta il nostro team di supporto."), - "itemCount": m42, + "itemCount": m43, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Gli elementi mostrano il numero di giorni rimanenti prima della cancellazione permanente"), @@ -1057,7 +1057,7 @@ class MessageLookup extends MessageLookupByLibrary { "legacy": MessageLookupByLibrary.simpleMessage("Legacy"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Account Legacy"), - "legacyInvite": m44, + "legacyInvite": m45, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "Legacy consente ai contatti fidati di accedere al tuo account in tua assenza."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( @@ -1072,7 +1072,7 @@ class MessageLookup extends MessageLookupByLibrary { "per una condivisione più veloce"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Attivato"), "linkExpired": MessageLookupByLibrary.simpleMessage("Scaduto"), - "linkExpiresOn": m45, + "linkExpiresOn": m46, "linkExpiry": MessageLookupByLibrary.simpleMessage("Scadenza del link"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("Il link è scaduto"), @@ -1080,7 +1080,7 @@ class MessageLookup extends MessageLookupByLibrary { "linkPerson": MessageLookupByLibrary.simpleMessage("Collega persona"), "linkPersonCaption": MessageLookupByLibrary.simpleMessage( "per una migliore esperienza di condivisione"), - "linkPersonToEmail": m46, + "linkPersonToEmail": m47, "livePhotos": MessageLookupByLibrary.simpleMessage("Live Photo"), "loadMessage1": MessageLookupByLibrary.simpleMessage( "Puoi condividere il tuo abbonamento con la tua famiglia"), @@ -1202,7 +1202,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Sposta nell\'album"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("Sposta in album nascosto"), - "movedSuccessfullyTo": m50, + "movedSuccessfullyTo": m51, "movedToTrash": MessageLookupByLibrary.simpleMessage("Spostato nel cestino"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1255,10 +1255,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Nessun risultato"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Nessun risultato trovato"), - "noSuggestionsForPerson": m51, + "noSuggestionsForPerson": m52, "noSystemLockFound": MessageLookupByLibrary.simpleMessage( "Nessun blocco di sistema trovato"), - "notPersonLabel": m52, + "notPersonLabel": m53, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( "Ancora nulla di condiviso con te"), "nothingToSeeHere": @@ -1269,7 +1269,7 @@ class MessageLookup extends MessageLookupByLibrary { "onEnte": MessageLookupByLibrary.simpleMessage( "Su ente"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), - "onlyFamilyAdminCanChangeCode": m53, + "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Solo loro"), "oops": MessageLookupByLibrary.simpleMessage("Oops"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( @@ -1308,7 +1308,7 @@ class MessageLookup extends MessageLookupByLibrary { "Password modificata con successo"), "passwordLock": MessageLookupByLibrary.simpleMessage("Blocco con password"), - "passwordStrength": m55, + "passwordStrength": m56, "passwordStrengthInfo": MessageLookupByLibrary.simpleMessage( "La sicurezza della password viene calcolata considerando la lunghezza della password, i caratteri usati e se la password appare o meno nelle prime 10.000 password più usate"), "passwordWarning": MessageLookupByLibrary.simpleMessage( @@ -1319,7 +1319,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Pagamento non riuscito"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Purtroppo il tuo pagamento non è riuscito. Contatta l\'assistenza e ti aiuteremo!"), - "paymentFailedTalkToProvider": m56, + "paymentFailedTalkToProvider": m57, "pendingItems": MessageLookupByLibrary.simpleMessage("Elementi in sospeso"), "pendingSync": @@ -1350,7 +1350,7 @@ class MessageLookup extends MessageLookupByLibrary { "pinLock": MessageLookupByLibrary.simpleMessage("Blocco con PIN"), "playOnTv": MessageLookupByLibrary.simpleMessage("Riproduci album sulla TV"), - "playStoreFreeTrialValidTill": m61, + "playStoreFreeTrialValidTill": m62, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("Abbonamento su PlayStore"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1362,14 +1362,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Riprova. Se il problema persiste, ti invitiamo a contattare l\'assistenza"), - "pleaseEmailUsAt": m62, + "pleaseEmailUsAt": m63, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage("Concedi i permessi"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage( "Effettua nuovamente l\'accesso"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Si prega di selezionare i link rapidi da rimuovere"), - "pleaseSendTheLogsTo": m63, + "pleaseSendTheLogsTo": m64, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Riprova"), "pleaseVerifyTheCodeYouHaveEntered": MessageLookupByLibrary.simpleMessage( @@ -1394,7 +1394,7 @@ class MessageLookup extends MessageLookupByLibrary { "privateSharing": MessageLookupByLibrary.simpleMessage("Condivisioni private"), "proceed": MessageLookupByLibrary.simpleMessage("Prosegui"), - "processingImport": m65, + "processingImport": m66, "processingVideos": MessageLookupByLibrary.simpleMessage("Elaborando video"), "publicLinkCreated": @@ -1407,9 +1407,9 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("Invia ticket"), "rateTheApp": MessageLookupByLibrary.simpleMessage("Valuta l\'app"), "rateUs": MessageLookupByLibrary.simpleMessage("Lascia una recensione"), - "rateUsOnStore": m66, + "rateUsOnStore": m67, "reassignMe": MessageLookupByLibrary.simpleMessage("Riassegna \"Io\""), - "reassignedToName": m67, + "reassignedToName": m68, "reassigningLoading": MessageLookupByLibrary.simpleMessage("Riassegnando..."), "recover": MessageLookupByLibrary.simpleMessage("Recupera"), @@ -1420,7 +1420,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Recupera l\'account"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("Recupero avviato"), - "recoveryInitiatedDesc": m68, + "recoveryInitiatedDesc": m69, "recoveryKey": MessageLookupByLibrary.simpleMessage("Chiave di recupero"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( @@ -1435,12 +1435,12 @@ class MessageLookup extends MessageLookupByLibrary { "Chiave di recupero verificata"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Se hai dimenticato la password, la tua chiave di ripristino è l\'unico modo per recuperare le tue foto. La puoi trovare in Impostazioni > Account.\n\nInserisci la tua chiave di recupero per verificare di averla salvata correttamente."), - "recoveryReady": m69, + "recoveryReady": m70, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("Recupero riuscito!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "Un contatto fidato sta tentando di accedere al tuo account"), - "recoveryWarningBody": m70, + "recoveryWarningBody": m71, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "Il dispositivo attuale non è abbastanza potente per verificare la tua password, ma la possiamo rigenerare in un modo che funzioni su tutti i dispositivi.\n\nEffettua il login utilizzando la tua chiave di recupero e rigenera la tua password (puoi utilizzare nuovamente la stessa se vuoi)."), "recreatePasswordTitle": @@ -1456,7 +1456,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Condividi questo codice con i tuoi amici"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Si iscrivono per un piano a pagamento"), - "referralStep3": m71, + "referralStep3": m72, "referrals": MessageLookupByLibrary.simpleMessage("Invita un Amico"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "I referral code sono attualmente in pausa"), @@ -1485,7 +1485,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Elimina link"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Rimuovi partecipante"), - "removeParticipantBody": m72, + "removeParticipantBody": m73, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Rimuovi etichetta persona"), "removePublicLink": @@ -1505,7 +1505,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("Rinomina file"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Rinnova abbonamento"), - "renewsOn": m73, + "renewsOn": m74, "reportABug": MessageLookupByLibrary.simpleMessage("Segnala un bug"), "reportBug": MessageLookupByLibrary.simpleMessage("Segnala un bug"), "resendEmail": MessageLookupByLibrary.simpleMessage("Rinvia email"), @@ -1582,7 +1582,7 @@ class MessageLookup extends MessageLookupByLibrary { "Invita persone e vedrai qui tutte le foto condivise da loro"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "Le persone saranno mostrate qui una volta che l\'elaborazione e la sincronizzazione saranno completate"), - "searchResultCount": m75, + "searchResultCount": m76, "security": MessageLookupByLibrary.simpleMessage("Sicurezza"), "selectALocation": MessageLookupByLibrary.simpleMessage("Seleziona un luogo"), @@ -1614,8 +1614,8 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeDeletedFromAllAlbumsAndMoved": MessageLookupByLibrary.simpleMessage( "Gli elementi selezionati verranno eliminati da tutti gli album e spostati nel cestino."), - "selectedPhotos": m77, - "selectedPhotosWithYours": m78, + "selectedPhotos": m78, + "selectedPhotosWithYours": m79, "send": MessageLookupByLibrary.simpleMessage("Invia"), "sendEmail": MessageLookupByLibrary.simpleMessage("Invia email"), "sendInvite": MessageLookupByLibrary.simpleMessage("Invita"), @@ -1647,16 +1647,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Condividi un album"), "shareLink": MessageLookupByLibrary.simpleMessage("Condividi link"), - "shareMyVerificationID": m80, + "shareMyVerificationID": m81, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Condividi solo con le persone che vuoi"), - "shareTextConfirmOthersVerificationID": m81, + "shareTextConfirmOthersVerificationID": m82, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Scarica Ente in modo da poter facilmente condividere foto e video in qualità originale\n\nhttps://ente.io"), - "shareTextReferralCode": m82, + "shareTextReferralCode": m83, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Condividi con utenti che non hanno un account Ente"), - "shareWithPeopleSectionTitle": m83, + "shareWithPeopleSectionTitle": m84, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage( "Condividi il tuo primo album"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1667,7 +1667,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Nuove foto condivise"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Ricevi notifiche quando qualcuno aggiunge una foto a un album condiviso, di cui fai parte"), - "sharedWith": m84, + "sharedWith": m85, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Condivisi con me"), "sharedWithYou": @@ -1684,11 +1684,11 @@ class MessageLookup extends MessageLookupByLibrary { "Esci dagli altri dispositivi"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Accetto i termini di servizio e la politica sulla privacy"), - "singleFileDeleteFromDevice": m85, + "singleFileDeleteFromDevice": m86, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Verrà eliminato da tutti gli album."), - "singleFileInBothLocalAndRemote": m86, - "singleFileInRemoteOnly": m87, + "singleFileInBothLocalAndRemote": m87, + "singleFileInRemoteOnly": m88, "skip": MessageLookupByLibrary.simpleMessage("Salta"), "social": MessageLookupByLibrary.simpleMessage("Social"), "someItemsAreInBothEnteAndYourDevice": @@ -1737,13 +1737,13 @@ class MessageLookup extends MessageLookupByLibrary { "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("Famiglia"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("Tu"), - "storageInGB": m90, + "storageInGB": m91, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage( "Limite d\'archiviazione superato"), - "storageUsageInfo": m91, + "storageUsageInfo": m92, "strongStrength": MessageLookupByLibrary.simpleMessage("Forte"), - "subAlreadyLinkedErrMessage": m92, - "subWillBeCancelledOn": m93, + "subAlreadyLinkedErrMessage": m93, + "subWillBeCancelledOn": m94, "subscribe": MessageLookupByLibrary.simpleMessage("Iscriviti"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "È necessario un abbonamento a pagamento attivo per abilitare la condivisione."), @@ -1760,7 +1760,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("Suggerisci una funzionalità"), "support": MessageLookupByLibrary.simpleMessage("Assistenza"), - "syncProgress": m94, + "syncProgress": m95, "syncStopped": MessageLookupByLibrary.simpleMessage("Sincronizzazione interrotta"), "syncing": MessageLookupByLibrary.simpleMessage( @@ -1773,7 +1773,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Tocca per sbloccare"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Premi per caricare"), - "tapToUploadIsIgnoredDue": m95, + "tapToUploadIsIgnoredDue": m96, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Sembra che qualcosa sia andato storto. Riprova tra un po\'. Se l\'errore persiste, contatta il nostro team di supporto."), "terminate": MessageLookupByLibrary.simpleMessage("Terminata"), @@ -1794,7 +1794,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Questi file verranno eliminati dal tuo dispositivo."), - "theyAlsoGetXGb": m96, + "theyAlsoGetXGb": m97, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Verranno eliminati da tutti gli album."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( @@ -1813,7 +1813,7 @@ class MessageLookup extends MessageLookupByLibrary { "Questa immagine non ha dati EXIF"), "thisIsMeExclamation": MessageLookupByLibrary.simpleMessage("Questo sono io!"), - "thisIsPersonVerificationId": m97, + "thisIsPersonVerificationId": m98, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage( "Questo è il tuo ID di verifica"), "thisWillLogYouOutOfTheFollowingDevice": @@ -1837,11 +1837,11 @@ class MessageLookup extends MessageLookupByLibrary { "total": MessageLookupByLibrary.simpleMessage("totale"), "totalSize": MessageLookupByLibrary.simpleMessage("Dimensioni totali"), "trash": MessageLookupByLibrary.simpleMessage("Cestino"), - "trashDaysLeft": m100, + "trashDaysLeft": m101, "trim": MessageLookupByLibrary.simpleMessage("Taglia"), "trustedContacts": MessageLookupByLibrary.simpleMessage("Contatti fidati"), - "trustedInviteBody": m103, + "trustedInviteBody": m104, "tryAgain": MessageLookupByLibrary.simpleMessage("Riprova"), "turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage( "Attiva il backup per caricare automaticamente i file aggiunti a questa cartella del dispositivo su Ente."), @@ -1887,10 +1887,10 @@ class MessageLookup extends MessageLookupByLibrary { "Aggiornamento della selezione delle cartelle..."), "upgrade": MessageLookupByLibrary.simpleMessage("Acquista altro spazio"), - "uploadIsIgnoredDueToIgnorereason": m105, + "uploadIsIgnoredDueToIgnorereason": m106, "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage( "Caricamento dei file nell\'album..."), - "uploadingMultipleMemories": m106, + "uploadingMultipleMemories": m107, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage("Conservando 1 ricordo..."), "upto50OffUntil4thDec": MessageLookupByLibrary.simpleMessage( @@ -1909,7 +1909,7 @@ class MessageLookup extends MessageLookupByLibrary { "useSelectedPhoto": MessageLookupByLibrary.simpleMessage("Usa la foto selezionata"), "usedSpace": MessageLookupByLibrary.simpleMessage("Spazio utilizzato"), - "validTill": m107, + "validTill": m108, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Verifica fallita, per favore prova di nuovo"), @@ -1917,7 +1917,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("ID di verifica"), "verify": MessageLookupByLibrary.simpleMessage("Verifica"), "verifyEmail": MessageLookupByLibrary.simpleMessage("Verifica email"), - "verifyEmailID": m108, + "verifyEmailID": m109, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("Verifica"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("Verifica passkey"), @@ -1957,7 +1957,7 @@ class MessageLookup extends MessageLookupByLibrary { "weDontSupportEditingPhotosAndAlbumsThatYouDont": MessageLookupByLibrary.simpleMessage( "Non puoi modificare foto e album che non possiedi"), - "weHaveSendEmailTo": m110, + "weHaveSendEmailTo": m112, "weakStrength": MessageLookupByLibrary.simpleMessage("Debole"), "welcomeBack": MessageLookupByLibrary.simpleMessage("Bentornato/a!"), "whatsNew": MessageLookupByLibrary.simpleMessage("Novità"), @@ -1965,7 +1965,7 @@ class MessageLookup extends MessageLookupByLibrary { "Un contatto fidato può aiutare a recuperare i tuoi dati."), "yearShort": MessageLookupByLibrary.simpleMessage("anno"), "yearly": MessageLookupByLibrary.simpleMessage("Annuale"), - "yearsAgo": m111, + "yearsAgo": m113, "yes": MessageLookupByLibrary.simpleMessage("Si"), "yesCancel": MessageLookupByLibrary.simpleMessage("Sì, cancella"), "yesConvertToViewer": MessageLookupByLibrary.simpleMessage( @@ -1997,7 +1997,7 @@ class MessageLookup extends MessageLookupByLibrary { "Non puoi condividere con te stesso"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage( "Non hai nulla di archiviato."), - "youHaveSuccessfullyFreedUp": m113, + "youHaveSuccessfullyFreedUp": m115, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage( "Il tuo account è stato eliminato"), "yourMap": MessageLookupByLibrary.simpleMessage("La tua mappa"), diff --git a/mobile/lib/generated/intl/messages_ja.dart b/mobile/lib/generated/intl/messages_ja.dart index 101fe54b04..bb1ed7dd43 100644 --- a/mobile/lib/generated/intl/messages_ja.dart +++ b/mobile/lib/generated/intl/messages_ja.dart @@ -87,191 +87,191 @@ class MessageLookup extends MessageLookupByLibrary { static String m26(count, formattedSize) => "${count} 個のファイル、それぞれ${formattedSize}"; - static String m27(newEmail) => "メールアドレスが ${newEmail} に変更されました"; + static String m28(newEmail) => "メールアドレスが ${newEmail} に変更されました"; - static String m28(email) => "${email} は Ente アカウントを持っていません。"; + static String m29(email) => "${email} は Ente アカウントを持っていません。"; - static String m29(email) => + static String m30(email) => "${email} はEnteアカウントを持っていません。\n\n写真を共有するために「招待」を送信してください。"; - static String m30(name) => "${name}抱きしめて!"; + static String m31(name) => "${name}抱きしめて!"; - static String m31(text) => "${text} の写真が見つかりました"; + static String m32(text) => "${text} の写真が見つかりました"; - static String m32(name) => "${name}とご飯!"; - - static String m33(count, formattedNumber) => - "${Intl.plural(count, other: '${formattedNumber} 個のファイル')} が安全にバックアップされました"; + static String m33(name) => "${name}とご飯!"; static String m34(count, formattedNumber) => + "${Intl.plural(count, other: '${formattedNumber} 個のファイル')} が安全にバックアップされました"; + + static String m35(count, formattedNumber) => "${Intl.plural(count, other: '${formattedNumber} ファイル')} が安全にバックアップされました"; - static String m35(storageAmountInGB) => + static String m36(storageAmountInGB) => "誰かが有料プランにサインアップしてコードを適用する度に ${storageAmountInGB} GB"; - static String m36(endDate) => "無料トライアルは${endDate} までです"; + static String m37(endDate) => "無料トライアルは${endDate} までです"; - static String m38(sizeInMBorGB) => "${sizeInMBorGB} を解放する"; + static String m39(sizeInMBorGB) => "${sizeInMBorGB} を解放する"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "${currentlyProcessing} / ${totalCount} を処理中"; - static String m41(name) => "${name}とハイキング!"; + static String m42(name) => "${name}とハイキング!"; - static String m42(count) => "${Intl.plural(count, other: '${count}個のアイテム')}"; + static String m43(count) => "${Intl.plural(count, other: '${count}個のアイテム')}"; - static String m43(name) => "前回の${name}との時間"; + static String m44(name) => "前回の${name}との時間"; - static String m44(email) => "${email} があなたを信頼する連絡先として招待しました"; + static String m45(email) => "${email} があなたを信頼する連絡先として招待しました"; - static String m45(expiryTime) => "リンクは ${expiryTime} に期限切れになります"; + static String m46(expiryTime) => "リンクは ${expiryTime} に期限切れになります"; - static String m46(email) => "この人物を ${email}に紐づけ"; + static String m47(email) => "この人物を ${email}に紐づけ"; - static String m47(personName, email) => "${personName} を ${email} に紐づけします"; + static String m48(personName, email) => "${personName} を ${email} に紐づけします"; - static String m50(albumName) => "${albumName} に移動しました"; + static String m51(albumName) => "${albumName} に移動しました"; - static String m51(personName) => "${personName} の候補はありません"; + static String m52(personName) => "${personName} の候補はありません"; - static String m52(name) => "${name} ではありませんか?"; + static String m53(name) => "${name} ではありませんか?"; - static String m53(familyAdminEmail) => + static String m54(familyAdminEmail) => "コードを変更するには、 ${familyAdminEmail} までご連絡ください。"; - static String m54(name) => "${name}とパーティー!"; + static String m55(name) => "${name}とパーティー!"; - static String m55(passwordStrengthValue) => + static String m56(passwordStrengthValue) => "パスワードの長さ: ${passwordStrengthValue}"; - static String m56(providerName) => "請求された場合は、 ${providerName} のサポートに連絡してください"; + static String m57(providerName) => "請求された場合は、 ${providerName} のサポートに連絡してください"; - static String m57(name, age) => "${name}が${age}才!"; + static String m58(name, age) => "${name}が${age}才!"; - static String m58(name, age) => "${name}が${age}才になった!"; + static String m59(name, age) => "${name}が${age}才になった!"; - static String m59(count) => + static String m60(count) => "${Intl.plural(count, zero: '0枚の写真', one: '1枚の写真', other: '${count} 枚の写真')}"; - static String m61(endDate) => + static String m62(endDate) => "${endDate} まで無料トライアルが有効です。\nその後、有料プランを選択することができます。"; - static String m62(toEmail) => "${toEmail} にメールでご連絡ください"; + static String m63(toEmail) => "${toEmail} にメールでご連絡ください"; - static String m63(toEmail) => "ログを以下のアドレスに送信してください \n${toEmail}"; + static String m64(toEmail) => "ログを以下のアドレスに送信してください \n${toEmail}"; - static String m64(name) => "${name}と一緒にポーズ!"; + static String m65(name) => "${name}と一緒にポーズ!"; - static String m65(folderName) => "${folderName} を処理中..."; + static String m66(folderName) => "${folderName} を処理中..."; - static String m66(storeName) => "${storeName} で評価"; + static String m67(storeName) => "${storeName} で評価"; - static String m67(name) => "あなたを ${name} に紐づけました"; + static String m68(name) => "あなたを ${name} に紐づけました"; - static String m68(days, email) => + static String m69(days, email) => "${days} 日後にアカウントにアクセスできます。通知は ${email}に送信されます。"; - static String m69(email) => "${email}のアカウントを復元できるようになりました。新しいパスワードを設定してください。"; + static String m70(email) => "${email}のアカウントを復元できるようになりました。新しいパスワードを設定してください。"; - static String m70(email) => "${email} はあなたのアカウントを復元しようとしています。"; + static String m71(email) => "${email} はあなたのアカウントを復元しようとしています。"; - static String m71(storageInGB) => "3. お二人とも ${storageInGB} GB*を無料で手に入ります。"; + static String m72(storageInGB) => "3. お二人とも ${storageInGB} GB*を無料で手に入ります。"; - static String m72(userEmail) => + static String m73(userEmail) => "${userEmail} はこの共有アルバムから退出します\n\n${userEmail} が追加した写真もアルバムから削除されます"; - static String m73(endDate) => "サブスクリプションは ${endDate} に更新します"; + static String m74(endDate) => "サブスクリプションは ${endDate} に更新します"; - static String m74(name) => "${name}と車で旅行!"; + static String m75(name) => "${name}と車で旅行!"; - static String m75(count) => + static String m76(count) => "${Intl.plural(count, one: '${count} 個の結果', other: '${count} 個の結果')}"; - static String m76(snapshotLength, searchLength) => + static String m77(snapshotLength, searchLength) => "セクションの長さの不一致: ${snapshotLength} != ${searchLength}"; - static String m77(count) => "${count} 個を選択"; + static String m78(count) => "${count} 個を選択"; - static String m78(count, yourCount) => "${count} 個選択中(${yourCount} あなた)"; + static String m79(count, yourCount) => "${count} 個選択中(${yourCount} あなた)"; - static String m79(name) => "${name}とセルフィー!"; + static String m80(name) => "${name}とセルフィー!"; - static String m80(verificationID) => "私の確認ID: ente.ioの ${verificationID}"; + static String m81(verificationID) => "私の確認ID: ente.ioの ${verificationID}"; - static String m81(verificationID) => + static String m82(verificationID) => "これがあなたのente.io確認用IDであることを確認できますか? ${verificationID}"; - static String m82(referralCode, referralStorageInGB) => + static String m83(referralCode, referralStorageInGB) => "リフェラルコード: ${referralCode}\n\n設定→一般→リフェラルで使うことで${referralStorageInGB}が無料になります(あなたが有料プランに加入したあと)。\n\nhttps://ente.io"; - static String m83(numberOfPeople) => + static String m84(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: '誰かと共有しましょう', one: '1人と共有されています', other: '${numberOfPeople} 人と共有されています')}"; - static String m84(emailIDs) => "${emailIDs} と共有中"; + static String m85(emailIDs) => "${emailIDs} と共有中"; - static String m85(fileType) => "${fileType} はEnteから削除されます。"; + static String m86(fileType) => "${fileType} はEnteから削除されます。"; - static String m86(fileType) => "この ${fileType} はEnteとお使いのデバイスの両方にあります。"; + static String m87(fileType) => "この ${fileType} はEnteとお使いのデバイスの両方にあります。"; - static String m87(fileType) => "${fileType} はEnteから削除されます。"; + static String m88(fileType) => "${fileType} はEnteから削除されます。"; - static String m88(name) => "${name}とスポーツ!"; + static String m89(name) => "${name}とスポーツ!"; - static String m89(name) => "${name}にスポットライト!"; + static String m90(name) => "${name}にスポットライト!"; - static String m90(storageAmountInGB) => "${storageAmountInGB} GB"; + static String m91(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m91( + static String m92( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} / ${totalAmount} ${totalStorageUnit} 使用"; - static String m92(id) => + static String m93(id) => "あなたの ${id} はすでに別のEnteアカウントにリンクされています。\nこのアカウントであなたの ${id} を使用したい場合は、サポートにお問い合わせください。"; - static String m93(endDate) => "サブスクリプションは ${endDate} でキャンセルされます"; + static String m94(endDate) => "サブスクリプションは ${endDate} でキャンセルされます"; - static String m94(completed, total) => "${completed}/${total} のメモリが保存されました"; + static String m95(completed, total) => "${completed}/${total} のメモリが保存されました"; - static String m95(ignoreReason) => + static String m96(ignoreReason) => "アップロードするにはタップしてください。 以下の理由のためアップロードは現在無視されています: ${ignoreReason}"; - static String m96(storageAmountInGB) => "紹介者も ${storageAmountInGB} GB を得ます"; + static String m97(storageAmountInGB) => "紹介者も ${storageAmountInGB} GB を得ます"; - static String m97(email) => "これは ${email} の確認用ID"; + static String m98(email) => "これは ${email} の確認用ID"; - static String m98(count) => + static String m99(count) => "${Intl.plural(count, one: '${count} 1年前の今週', other: '${count}年前の今週')}"; - static String m99(dateFormat) => "${dateFormat} から年"; + static String m100(dateFormat) => "${dateFormat} から年"; - static String m100(count) => + static String m101(count) => "${Intl.plural(count, zero: '', one: '1日', other: '${count} 日')}"; - static String m101(year) => "${year}年の旅行"; + static String m102(year) => "${year}年の旅行"; - static String m102(location) => "${location}への旅行"; + static String m103(location) => "${location}への旅行"; - static String m103(email) => "あなたは ${email}から信頼する連絡先になってもらうよう、お願いされています。"; + static String m104(email) => "あなたは ${email}から信頼する連絡先になってもらうよう、お願いされています。"; - static String m104(galleryType) => + static String m105(galleryType) => "このギャラリーのタイプ ${galleryType} は名前の変更には対応していません"; - static String m105(ignoreReason) => "以下の理由によりアップロードは無視されます: ${ignoreReason}"; + static String m106(ignoreReason) => "以下の理由によりアップロードは無視されます: ${ignoreReason}"; - static String m106(count) => "${count} メモリを保存しています..."; + static String m107(count) => "${count} メモリを保存しています..."; - static String m107(endDate) => "${endDate} まで"; + static String m108(endDate) => "${endDate} まで"; - static String m108(email) => "${email} を確認"; + static String m109(email) => "${email} を確認"; - static String m110(email) => "${email}にメールを送りました"; + static String m112(email) => "${email}にメールを送りました"; - static String m111(count) => + static String m113(count) => "${Intl.plural(count, one: '${count} 年前', other: '${count} 年前')}"; - static String m112(name) => "あなたと${name}"; + static String m114(name) => "あなたと${name}"; - static String m113(storageSaved) => "${storageSaved} を解放しました"; + static String m115(storageSaved) => "${storageSaved} を解放しました"; final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { @@ -739,15 +739,15 @@ class MessageLookup extends MessageLookupByLibrary { "email": MessageLookupByLibrary.simpleMessage("Eメール"), "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage("このメールアドレスはすでに登録されています。"), - "emailChangedTo": m27, - "emailDoesNotHaveEnteAccount": m28, - "emailNoEnteAccount": m29, + "emailChangedTo": m28, + "emailDoesNotHaveEnteAccount": m29, + "emailNoEnteAccount": m30, "emailNotRegistered": MessageLookupByLibrary.simpleMessage("このメールアドレスはまだ登録されていません。"), "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("メール確認"), "emailYourLogs": MessageLookupByLibrary.simpleMessage("ログをメールで送信"), - "embracingThem": m30, + "embracingThem": m31, "emergencyContacts": MessageLookupByLibrary.simpleMessage("緊急連絡先"), "empty": MessageLookupByLibrary.simpleMessage("空"), "emptyTrash": MessageLookupByLibrary.simpleMessage("ゴミ箱を空にしますか?"), @@ -814,7 +814,7 @@ class MessageLookup extends MessageLookupByLibrary { "exportYourData": MessageLookupByLibrary.simpleMessage("データをエクスポート"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage("追加の写真が見つかりました"), - "extraPhotosFoundFor": m31, + "extraPhotosFoundFor": m32, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage("顔がまだ集まっていません。後で戻ってきてください"), "faceRecognition": MessageLookupByLibrary.simpleMessage("顔認識"), @@ -847,7 +847,7 @@ class MessageLookup extends MessageLookupByLibrary { "faq": MessageLookupByLibrary.simpleMessage("よくある質問"), "faqs": MessageLookupByLibrary.simpleMessage("よくある質問"), "favorite": MessageLookupByLibrary.simpleMessage("お気に入り"), - "feastingWithThem": m32, + "feastingWithThem": m33, "feedback": MessageLookupByLibrary.simpleMessage("フィードバック"), "file": MessageLookupByLibrary.simpleMessage("ファイル"), "fileFailedToSaveToGallery": @@ -859,8 +859,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("ファイルをギャラリーに保存しました"), "fileTypes": MessageLookupByLibrary.simpleMessage("ファイルの種類"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("ファイルの種類と名前"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m34, + "filesBackedUpInAlbum": m35, "filesDeleted": MessageLookupByLibrary.simpleMessage("削除されたファイル"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage("写真をダウンロードしました"), @@ -872,12 +872,12 @@ class MessageLookup extends MessageLookupByLibrary { "forgotPassword": MessageLookupByLibrary.simpleMessage("パスワードを忘れた"), "foundFaces": MessageLookupByLibrary.simpleMessage("見つかった顔"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("空き容量を受け取る"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m36, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("無料のストレージが利用可能です"), "freeTrial": MessageLookupByLibrary.simpleMessage("無料トライアル"), - "freeTrialValidTill": m36, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage("デバイスの空き領域を解放する"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( @@ -889,7 +889,7 @@ class MessageLookup extends MessageLookupByLibrary { "general": MessageLookupByLibrary.simpleMessage("設定"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage("暗号化鍵を生成しています"), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("設定に移動"), "googlePlayId": MessageLookupByLibrary.simpleMessage("Google Play ID"), "grantFullAccessPrompt": MessageLookupByLibrary.simpleMessage( @@ -916,7 +916,7 @@ class MessageLookup extends MessageLookupByLibrary { "hideSharedItemsFromHomeGallery": MessageLookupByLibrary.simpleMessage("ホームギャラリーから共有された写真等を非表示"), "hiding": MessageLookupByLibrary.simpleMessage("非表示にしています"), - "hikingWithThem": m41, + "hikingWithThem": m42, "hostedAtOsmFrance": MessageLookupByLibrary.simpleMessage("OSM Franceでホスト"), "howItWorks": MessageLookupByLibrary.simpleMessage("仕組みを知る"), @@ -967,7 +967,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "問題が発生したようです。しばらくしてから再試行してください。エラーが解決しない場合は、サポートチームにお問い合わせください。"), - "itemCount": m42, + "itemCount": m43, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage("完全に削除されるまでの日数が項目に表示されます"), "itemsWillBeRemovedFromAlbum": @@ -986,7 +986,7 @@ class MessageLookup extends MessageLookupByLibrary { "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage("よければ、情報をお寄せください"), "language": MessageLookupByLibrary.simpleMessage("言語"), - "lastTimeWithThem": m43, + "lastTimeWithThem": m44, "lastUpdated": MessageLookupByLibrary.simpleMessage("更新された順"), "lastYearsTrip": MessageLookupByLibrary.simpleMessage("昨年の旅行"), "leave": MessageLookupByLibrary.simpleMessage("離脱"), @@ -997,7 +997,7 @@ class MessageLookup extends MessageLookupByLibrary { "left": MessageLookupByLibrary.simpleMessage("左"), "legacy": MessageLookupByLibrary.simpleMessage("レガシー"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("レガシーアカウント"), - "legacyInvite": m44, + "legacyInvite": m45, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "レガシーでは、信頼できる連絡先が不在時(あなたが亡くなった時など)にアカウントにアクセスできます。"), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( @@ -1013,15 +1013,15 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("共有を高速化するために"), "linkEnabled": MessageLookupByLibrary.simpleMessage("有効"), "linkExpired": MessageLookupByLibrary.simpleMessage("期限切れ"), - "linkExpiresOn": m45, + "linkExpiresOn": m46, "linkExpiry": MessageLookupByLibrary.simpleMessage("リンクの期限切れ"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("リンクは期限切れです"), "linkNeverExpires": MessageLookupByLibrary.simpleMessage("なし"), "linkPerson": MessageLookupByLibrary.simpleMessage("人を紐づけ"), "linkPersonCaption": MessageLookupByLibrary.simpleMessage("良い経験を分かち合うために"), - "linkPersonToEmail": m46, - "linkPersonToEmailConfirmation": m47, + "linkPersonToEmail": m47, + "linkPersonToEmailConfirmation": m48, "livePhotos": MessageLookupByLibrary.simpleMessage("ライブフォト"), "loadMessage1": MessageLookupByLibrary.simpleMessage("サブスクリプションを家族と共有できます"), @@ -1129,7 +1129,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("選択した写真を1つの日付に移動"), "moveToAlbum": MessageLookupByLibrary.simpleMessage("アルバムに移動"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("隠しアルバムに移動"), - "movedSuccessfullyTo": m50, + "movedSuccessfullyTo": m51, "movedToTrash": MessageLookupByLibrary.simpleMessage("ごみ箱へ移動"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage("アルバムにファイルを移動中"), @@ -1176,10 +1176,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("該当なし"), "noResultsFound": MessageLookupByLibrary.simpleMessage("一致する結果が見つかりませんでした"), - "noSuggestionsForPerson": m51, + "noSuggestionsForPerson": m52, "noSystemLockFound": MessageLookupByLibrary.simpleMessage("システムロックが見つかりませんでした"), - "notPersonLabel": m52, + "notPersonLabel": m53, "notThisPerson": MessageLookupByLibrary.simpleMessage("この人ではありませんか?"), "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage("あなたに共有されたものはありません"), @@ -1192,7 +1192,7 @@ class MessageLookup extends MessageLookupByLibrary { "Enteが保管"), "onTheRoad": MessageLookupByLibrary.simpleMessage("再び道で"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), - "onlyFamilyAdminCanChangeCode": m53, + "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("この人のみ"), "oops": MessageLookupByLibrary.simpleMessage("Oops"), "oopsCouldNotSaveEdits": @@ -1220,7 +1220,7 @@ class MessageLookup extends MessageLookupByLibrary { "pairWithPin": MessageLookupByLibrary.simpleMessage("PINを使ってペアリングする"), "pairingComplete": MessageLookupByLibrary.simpleMessage("ペアリング完了"), "panorama": MessageLookupByLibrary.simpleMessage("パノラマ"), - "partyWithThem": m54, + "partyWithThem": m55, "passKeyPendingVerification": MessageLookupByLibrary.simpleMessage("検証はまだ保留中です"), "passkey": MessageLookupByLibrary.simpleMessage("パスキー"), @@ -1229,7 +1229,7 @@ class MessageLookup extends MessageLookupByLibrary { "passwordChangedSuccessfully": MessageLookupByLibrary.simpleMessage("パスワードの変更に成功しました"), "passwordLock": MessageLookupByLibrary.simpleMessage("パスワード保護"), - "passwordStrength": m55, + "passwordStrength": m56, "passwordStrengthInfo": MessageLookupByLibrary.simpleMessage( "パスワードの長さ、使用される文字の種類を考慮してパスワードの強度は計算されます。"), "passwordWarning": MessageLookupByLibrary.simpleMessage( @@ -1238,7 +1238,7 @@ class MessageLookup extends MessageLookupByLibrary { "paymentFailed": MessageLookupByLibrary.simpleMessage("支払いに失敗しました"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "残念ながらお支払いに失敗しました。サポートにお問い合わせください。お手伝いします!"), - "paymentFailedTalkToProvider": m56, + "paymentFailedTalkToProvider": m57, "pendingItems": MessageLookupByLibrary.simpleMessage("処理待ちの項目"), "pendingSync": MessageLookupByLibrary.simpleMessage("同期を保留中"), "people": MessageLookupByLibrary.simpleMessage("人物"), @@ -1249,14 +1249,14 @@ class MessageLookup extends MessageLookupByLibrary { "permanentlyDelete": MessageLookupByLibrary.simpleMessage("完全に削除"), "permanentlyDeleteFromDevice": MessageLookupByLibrary.simpleMessage("デバイスから完全に削除しますか?"), - "personIsAge": m57, + "personIsAge": m58, "personName": MessageLookupByLibrary.simpleMessage("人名名"), - "personTurningAge": m58, + "personTurningAge": m59, "pets": MessageLookupByLibrary.simpleMessage("毛むくじゃらな仲間たち"), "photoDescriptions": MessageLookupByLibrary.simpleMessage("写真の説明"), "photoGridSize": MessageLookupByLibrary.simpleMessage("写真のグリッドサイズ"), "photoSmallCase": MessageLookupByLibrary.simpleMessage("写真"), - "photocountPhotos": m59, + "photocountPhotos": m60, "photos": MessageLookupByLibrary.simpleMessage("写真"), "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage("あなたの追加した写真はこのアルバムから削除されます"), @@ -1267,7 +1267,7 @@ class MessageLookup extends MessageLookupByLibrary { "pinLock": MessageLookupByLibrary.simpleMessage("PINロック"), "playOnTv": MessageLookupByLibrary.simpleMessage("TVでアルバムを再生"), "playOriginal": MessageLookupByLibrary.simpleMessage("元動画を再生"), - "playStoreFreeTrialValidTill": m61, + "playStoreFreeTrialValidTill": m62, "playStream": MessageLookupByLibrary.simpleMessage("再生"), "playstoreSubscription": MessageLookupByLibrary.simpleMessage("PlayStoreサブスクリプション"), @@ -1278,13 +1278,13 @@ class MessageLookup extends MessageLookupByLibrary { "Support@ente.ioにお問い合わせください、お手伝いいたします。"), "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage("問題が解決しない場合はサポートにお問い合わせください"), - "pleaseEmailUsAt": m62, + "pleaseEmailUsAt": m63, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage("権限を付与してください"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("もう一度試してください"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage("削除するクイックリンクを選択してください"), - "pleaseSendTheLogsTo": m63, + "pleaseSendTheLogsTo": m64, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("もう一度試してください"), "pleaseVerifyTheCodeYouHaveEntered": MessageLookupByLibrary.simpleMessage("入力したコードを確認してください"), @@ -1295,7 +1295,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("再試行する前にしばらくお待ちください"), "pleaseWaitThisWillTakeAWhile": MessageLookupByLibrary.simpleMessage("しばらくお待ちください。時間がかかります。"), - "posingWithThem": m64, + "posingWithThem": m65, "preparingLogs": MessageLookupByLibrary.simpleMessage("ログを準備中..."), "preserveMore": MessageLookupByLibrary.simpleMessage("もっと保存する"), "pressAndHoldToPlayVideo": @@ -1311,7 +1311,7 @@ class MessageLookup extends MessageLookupByLibrary { "proceed": MessageLookupByLibrary.simpleMessage("続行"), "processed": MessageLookupByLibrary.simpleMessage("処理完了"), "processing": MessageLookupByLibrary.simpleMessage("処理中"), - "processingImport": m65, + "processingImport": m66, "processingVideos": MessageLookupByLibrary.simpleMessage("動画を処理中"), "publicLinkCreated": MessageLookupByLibrary.simpleMessage("公開リンクが作成されました"), @@ -1323,9 +1323,9 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("サポートを受ける"), "rateTheApp": MessageLookupByLibrary.simpleMessage("アプリを評価"), "rateUs": MessageLookupByLibrary.simpleMessage("評価して下さい"), - "rateUsOnStore": m66, + "rateUsOnStore": m67, "reassignMe": MessageLookupByLibrary.simpleMessage("\"自分\" を再割り当て"), - "reassignedToName": m67, + "reassignedToName": m68, "reassigningLoading": MessageLookupByLibrary.simpleMessage("再割り当て中..."), "recover": MessageLookupByLibrary.simpleMessage("復元"), "recoverAccount": MessageLookupByLibrary.simpleMessage("アカウントを復元"), @@ -1333,7 +1333,7 @@ class MessageLookup extends MessageLookupByLibrary { "recoveryAccount": MessageLookupByLibrary.simpleMessage("アカウントを復元"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("リカバリが開始されました"), - "recoveryInitiatedDesc": m68, + "recoveryInitiatedDesc": m69, "recoveryKey": MessageLookupByLibrary.simpleMessage("リカバリーキー"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage("リカバリーキーはクリップボードにコピーされました"), @@ -1347,12 +1347,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("リカバリキーが確認されました"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "パスワードを忘れた場合、リカバリーキーは写真を復元するための唯一の方法になります。なお、設定 > アカウント でリカバリーキーを確認することができます。\n \n\nここにリカバリーキーを入力して、正しく保存できていることを確認してください。"), - "recoveryReady": m69, + "recoveryReady": m70, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("復元に成功しました!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "信頼する連絡先の持ち主があなたのアカウントにアクセスしようとしています"), - "recoveryWarningBody": m70, + "recoveryWarningBody": m71, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "このデバイスではパスワードを確認する能力が足りません。\n\n恐れ入りますが、リカバリーキーを入力してパスワードを再生成する必要があります。"), "recreatePasswordTitle": @@ -1366,7 +1366,7 @@ class MessageLookup extends MessageLookupByLibrary { "referralStep1": MessageLookupByLibrary.simpleMessage("1. このコードを友達に贈りましょう"), "referralStep2": MessageLookupByLibrary.simpleMessage("2. 友達が有料プランに登録"), - "referralStep3": m71, + "referralStep3": m72, "referrals": MessageLookupByLibrary.simpleMessage("リフェラル"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage("リフェラルは現在一時停止しています"), @@ -1391,7 +1391,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeInvite": MessageLookupByLibrary.simpleMessage("招待を削除"), "removeLink": MessageLookupByLibrary.simpleMessage("リンクを削除"), "removeParticipant": MessageLookupByLibrary.simpleMessage("参加者を削除"), - "removeParticipantBody": m72, + "removeParticipantBody": m73, "removePersonLabel": MessageLookupByLibrary.simpleMessage("人名を削除"), "removePublicLink": MessageLookupByLibrary.simpleMessage("公開リンクを削除"), "removePublicLinks": MessageLookupByLibrary.simpleMessage("公開リンクを削除"), @@ -1408,7 +1408,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("ファイル名を変更"), "renewSubscription": MessageLookupByLibrary.simpleMessage("サブスクリプションの更新"), - "renewsOn": m73, + "renewsOn": m74, "reportABug": MessageLookupByLibrary.simpleMessage("バグを報告"), "reportBug": MessageLookupByLibrary.simpleMessage("バグを報告"), "resendEmail": MessageLookupByLibrary.simpleMessage("メールを再送信"), @@ -1428,7 +1428,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("重複だと思うファイルを確認して削除してください"), "reviewSuggestions": MessageLookupByLibrary.simpleMessage("提案を確認"), "right": MessageLookupByLibrary.simpleMessage("右"), - "roadtripWithThem": m74, + "roadtripWithThem": m75, "rotate": MessageLookupByLibrary.simpleMessage("回転"), "rotateLeft": MessageLookupByLibrary.simpleMessage("左に回転"), "rotateRight": MessageLookupByLibrary.simpleMessage("右に回転"), @@ -1475,8 +1475,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("友達を招待すると、共有される写真はここから閲覧できます"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage("処理と同期が完了すると、ここに人々が表示されます"), - "searchResultCount": m75, - "searchSectionsLengthMismatch": m76, + "searchResultCount": m76, + "searchSectionsLengthMismatch": m77, "security": MessageLookupByLibrary.simpleMessage("セキュリティ"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage("アプリ内で公開アルバムのリンクを見る"), @@ -1516,9 +1516,9 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeRemovedFromThisPerson": MessageLookupByLibrary.simpleMessage( "選択したアイテムはこの人としての登録が解除されますが、ライブラリからは削除されません。"), - "selectedPhotos": m77, - "selectedPhotosWithYours": m78, - "selfiesWithThem": m79, + "selectedPhotos": m78, + "selectedPhotosWithYours": m79, + "selfiesWithThem": m80, "send": MessageLookupByLibrary.simpleMessage("送信"), "sendEmail": MessageLookupByLibrary.simpleMessage("メールを送信する"), "sendInvite": MessageLookupByLibrary.simpleMessage("招待を送る"), @@ -1542,16 +1542,16 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("アルバムを開いて右上のシェアボタンをタップ"), "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("アルバムを共有"), "shareLink": MessageLookupByLibrary.simpleMessage("リンクの共有"), - "shareMyVerificationID": m80, + "shareMyVerificationID": m81, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage("選んだ人と共有します"), - "shareTextConfirmOthersVerificationID": m81, + "shareTextConfirmOthersVerificationID": m82, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Enteをダウンロードして、写真や動画の共有を簡単に!\n\nhttps://ente.io"), - "shareTextReferralCode": m82, + "shareTextReferralCode": m83, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage("Enteを使っていない人に共有"), - "shareWithPeopleSectionTitle": m83, + "shareWithPeopleSectionTitle": m84, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("アルバムの共有をしてみましょう"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1562,7 +1562,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("新しい共有写真"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage("誰かが写真を共有アルバムに追加した時に通知を受け取る"), - "sharedWith": m84, + "sharedWith": m85, "sharedWithMe": MessageLookupByLibrary.simpleMessage("あなたと共有されたアルバム"), "sharedWithYou": MessageLookupByLibrary.simpleMessage("あなたと共有されています"), "sharing": MessageLookupByLibrary.simpleMessage("共有中..."), @@ -1577,11 +1577,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("他のデバイスからサインアウトする"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "利用規約プライバシーポリシーに同意します"), - "singleFileDeleteFromDevice": m85, + "singleFileDeleteFromDevice": m86, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage("全てのアルバムから削除されます。"), - "singleFileInBothLocalAndRemote": m86, - "singleFileInRemoteOnly": m87, + "singleFileInBothLocalAndRemote": m87, + "singleFileInRemoteOnly": m88, "skip": MessageLookupByLibrary.simpleMessage("スキップ"), "social": MessageLookupByLibrary.simpleMessage("SNS"), "someItemsAreInBothEnteAndYourDevice": @@ -1612,8 +1612,8 @@ class MessageLookup extends MessageLookupByLibrary { "sortNewestFirst": MessageLookupByLibrary.simpleMessage("新しい順"), "sortOldestFirst": MessageLookupByLibrary.simpleMessage("古い順"), "sparkleSuccess": MessageLookupByLibrary.simpleMessage("成功✨"), - "sportsWithThem": m88, - "spotlightOnThem": m89, + "sportsWithThem": m89, + "spotlightOnThem": m90, "spotlightOnYourself": MessageLookupByLibrary.simpleMessage("あなた自身にスポットライト!"), "startAccountRecoveryTitle": @@ -1625,14 +1625,14 @@ class MessageLookup extends MessageLookupByLibrary { "storage": MessageLookupByLibrary.simpleMessage("ストレージ"), "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("ファミリー"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("あなた"), - "storageInGB": m90, + "storageInGB": m91, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("ストレージの上限を超えました"), - "storageUsageInfo": m91, + "storageUsageInfo": m92, "streamDetails": MessageLookupByLibrary.simpleMessage("動画の詳細"), "strongStrength": MessageLookupByLibrary.simpleMessage("強いパスワード"), - "subAlreadyLinkedErrMessage": m92, - "subWillBeCancelledOn": m93, + "subAlreadyLinkedErrMessage": m93, + "subWillBeCancelledOn": m94, "subscribe": MessageLookupByLibrary.simpleMessage("サブスクライブ"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "共有を有効にするには、有料サブスクリプションが必要です。"), @@ -1647,7 +1647,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("機能を提案"), "sunrise": MessageLookupByLibrary.simpleMessage("水平線"), "support": MessageLookupByLibrary.simpleMessage("サポート"), - "syncProgress": m94, + "syncProgress": m95, "syncStopped": MessageLookupByLibrary.simpleMessage("同期が停止しました"), "syncing": MessageLookupByLibrary.simpleMessage("同期中..."), "systemTheme": MessageLookupByLibrary.simpleMessage("システム"), @@ -1655,7 +1655,7 @@ class MessageLookup extends MessageLookupByLibrary { "tapToEnterCode": MessageLookupByLibrary.simpleMessage("タップしてコードを入力"), "tapToUnlock": MessageLookupByLibrary.simpleMessage("タップして解除"), "tapToUpload": MessageLookupByLibrary.simpleMessage("タップしてアップロード"), - "tapToUploadIsIgnoredDue": m95, + "tapToUploadIsIgnoredDue": m96, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "問題が発生したようです。しばらくしてから再試行してください。エラーが解決しない場合は、サポートチームにお問い合わせください。"), "terminate": MessageLookupByLibrary.simpleMessage("終了させる"), @@ -1674,7 +1674,7 @@ class MessageLookup extends MessageLookupByLibrary { "theme": MessageLookupByLibrary.simpleMessage("テーマ"), "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage("これらの項目はデバイスから削除されます。"), - "theyAlsoGetXGb": m96, + "theyAlsoGetXGb": m97, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage("全てのアルバムから削除されます。"), "thisActionCannotBeUndone": @@ -1691,12 +1691,12 @@ class MessageLookup extends MessageLookupByLibrary { "thisImageHasNoExifData": MessageLookupByLibrary.simpleMessage("この画像にEXIFデータはありません"), "thisIsMeExclamation": MessageLookupByLibrary.simpleMessage("これは私です"), - "thisIsPersonVerificationId": m97, + "thisIsPersonVerificationId": m98, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage("これはあなたの認証IDです"), "thisWeekThroughTheYears": MessageLookupByLibrary.simpleMessage("毎年のこの週"), - "thisWeekXYearsAgo": m98, + "thisWeekXYearsAgo": m99, "thisWillLogYouOutOfTheFollowingDevice": MessageLookupByLibrary.simpleMessage("以下のデバイスからログアウトします:"), "thisWillLogYouOutOfThisDevice": @@ -1706,7 +1706,7 @@ class MessageLookup extends MessageLookupByLibrary { "thisWillRemovePublicLinksOfAllSelectedQuickLinks": MessageLookupByLibrary.simpleMessage( "選択したすべてのクイックリンクの公開リンクを削除します。"), - "throughTheYears": m99, + "throughTheYears": m100, "toEnableAppLockPleaseSetupDevicePasscodeOrScreen": MessageLookupByLibrary.simpleMessage( "アプリのロックを有効にするには、システム設定でデバイスのパスコードまたは画面ロックを設定してください。"), @@ -1720,12 +1720,12 @@ class MessageLookup extends MessageLookupByLibrary { "total": MessageLookupByLibrary.simpleMessage("合計"), "totalSize": MessageLookupByLibrary.simpleMessage("合計サイズ"), "trash": MessageLookupByLibrary.simpleMessage("ゴミ箱"), - "trashDaysLeft": m100, + "trashDaysLeft": m101, "trim": MessageLookupByLibrary.simpleMessage("トリミング"), - "tripInYear": m101, - "tripToLocation": m102, + "tripInYear": m102, + "tripToLocation": m103, "trustedContacts": MessageLookupByLibrary.simpleMessage("信頼する連絡先"), - "trustedInviteBody": m103, + "trustedInviteBody": m104, "tryAgain": MessageLookupByLibrary.simpleMessage("もう一度試してください"), "turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage( "バックアップをオンにすると、このデバイスフォルダに追加されたファイルは自動的にEnteにアップロードされます。"), @@ -1740,7 +1740,7 @@ class MessageLookup extends MessageLookupByLibrary { "twofactorAuthenticationSuccessfullyReset": MessageLookupByLibrary.simpleMessage("2段階認証をリセットしました"), "twofactorSetup": MessageLookupByLibrary.simpleMessage("2段階認証のセットアップ"), - "typeOfGallerGallerytypeIsNotSupportedForRename": m104, + "typeOfGallerGallerytypeIsNotSupportedForRename": m105, "unarchive": MessageLookupByLibrary.simpleMessage("アーカイブ解除"), "unarchiveAlbum": MessageLookupByLibrary.simpleMessage("アルバムのアーカイブ解除"), "unarchiving": MessageLookupByLibrary.simpleMessage("アーカイブを解除中..."), @@ -1760,10 +1760,10 @@ class MessageLookup extends MessageLookupByLibrary { "updatingFolderSelection": MessageLookupByLibrary.simpleMessage("フォルダの選択を更新しています..."), "upgrade": MessageLookupByLibrary.simpleMessage("アップグレード"), - "uploadIsIgnoredDueToIgnorereason": m105, + "uploadIsIgnoredDueToIgnorereason": m106, "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage("アルバムにファイルをアップロード中"), - "uploadingMultipleMemories": m106, + "uploadingMultipleMemories": m107, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage("1メモリを保存しています..."), "upto50OffUntil4thDec": @@ -1779,13 +1779,13 @@ class MessageLookup extends MessageLookupByLibrary { "useRecoveryKey": MessageLookupByLibrary.simpleMessage("リカバリーキーを使用"), "useSelectedPhoto": MessageLookupByLibrary.simpleMessage("選択した写真を使用"), "usedSpace": MessageLookupByLibrary.simpleMessage("使用済み領域"), - "validTill": m107, + "validTill": m108, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage("確認に失敗しました、再試行してください"), "verificationId": MessageLookupByLibrary.simpleMessage("確認用ID"), "verify": MessageLookupByLibrary.simpleMessage("確認"), "verifyEmail": MessageLookupByLibrary.simpleMessage("Eメールの確認"), - "verifyEmailID": m108, + "verifyEmailID": m109, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("確認"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("パスキーを確認"), "verifyPassword": MessageLookupByLibrary.simpleMessage("パスワードの確認"), @@ -1818,7 +1818,7 @@ class MessageLookup extends MessageLookupByLibrary { "weDontSupportEditingPhotosAndAlbumsThatYouDont": MessageLookupByLibrary.simpleMessage( "あなたが所有していない写真やアルバムの編集はサポートされていません"), - "weHaveSendEmailTo": m110, + "weHaveSendEmailTo": m112, "weakStrength": MessageLookupByLibrary.simpleMessage("弱いパスワード"), "welcomeBack": MessageLookupByLibrary.simpleMessage("おかえりなさい!"), "whatsNew": MessageLookupByLibrary.simpleMessage("最新情報"), @@ -1826,7 +1826,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("信頼する連絡先は、データの復旧が必要な際に役立ちます。"), "yearShort": MessageLookupByLibrary.simpleMessage("年"), "yearly": MessageLookupByLibrary.simpleMessage("年額"), - "yearsAgo": m111, + "yearsAgo": m113, "yes": MessageLookupByLibrary.simpleMessage("はい"), "yesCancel": MessageLookupByLibrary.simpleMessage("キャンセル"), "yesConvertToViewer": @@ -1839,7 +1839,7 @@ class MessageLookup extends MessageLookupByLibrary { "yesRenew": MessageLookupByLibrary.simpleMessage("はい、更新する"), "yesResetPerson": MessageLookupByLibrary.simpleMessage("リセット"), "you": MessageLookupByLibrary.simpleMessage("あなた"), - "youAndThem": m112, + "youAndThem": m114, "youAreOnAFamilyPlan": MessageLookupByLibrary.simpleMessage("ファミリープランに入会しています!"), "youAreOnTheLatestVersion": @@ -1856,7 +1856,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("自分自身と共有することはできません"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage("アーカイブした項目はありません"), - "youHaveSuccessfullyFreedUp": m113, + "youHaveSuccessfullyFreedUp": m115, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage("アカウントは削除されました"), "yourMap": MessageLookupByLibrary.simpleMessage("あなたの地図"), diff --git a/mobile/lib/generated/intl/messages_lt.dart b/mobile/lib/generated/intl/messages_lt.dart index 258ecedb11..f407024543 100644 --- a/mobile/lib/generated/intl/messages_lt.dart +++ b/mobile/lib/generated/intl/messages_lt.dart @@ -95,183 +95,183 @@ class MessageLookup extends MessageLookupByLibrary { static String m26(count, formattedSize) => "${count} failai (-ų), kiekvienas ${formattedSize}"; - static String m27(newEmail) => "El. paštas pakeistas į ${newEmail}"; + static String m28(newEmail) => "El. paštas pakeistas į ${newEmail}"; - static String m28(email) => "${email} neturi „Ente“ paskyros."; + static String m29(email) => "${email} neturi „Ente“ paskyros."; - static String m29(email) => + static String m30(email) => "${email} neturi „Ente“ paskyros.\n\nSiųskite jiems kvietimą bendrinti nuotraukas."; - static String m31(text) => "Rastos papildomos nuotraukos, skirtos ${text}"; + static String m32(text) => "Rastos papildomos nuotraukos, skirtos ${text}"; - static String m34(count, formattedNumber) => + static String m35(count, formattedNumber) => "${Intl.plural(count, one: '${formattedNumber} failas šiame albume saugiai sukurta atsarginė kopija', few: '${formattedNumber} failai šiame albume saugiai sukurtos atsarginės kopijos', many: '${formattedNumber} failo šiame albume saugiai sukurtos atsargines kopijos', other: '${formattedNumber} failų šiame albume saugiai sukurta atsarginė kopija')}."; - static String m35(storageAmountInGB) => + static String m36(storageAmountInGB) => "${storageAmountInGB} GB kiekvieną kartą, kai kas nors užsiregistruoja mokamam planui ir pritaiko jūsų kodą."; - static String m36(endDate) => + static String m37(endDate) => "Nemokamas bandomasis laikotarpis galioja iki ${endDate}"; - static String m37(count) => + static String m38(count) => "Vis dar galite pasiekti ${Intl.plural(count, one: 'jį', other: 'jų')} platformoje „Ente“, kol turite aktyvų prenumeratą."; - static String m38(sizeInMBorGB) => "Atlaisvinti ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "Atlaisvinti ${sizeInMBorGB}"; - static String m39(count, formattedSize) => + static String m40(count, formattedSize) => "${Intl.plural(count, one: 'Jį galima ištrinti iš įrenginio, kad atlaisvintų ${formattedSize}', other: 'Jų galima ištrinti iš įrenginio, kad atlaisvintų ${formattedSize}')}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Apdorojama ${currentlyProcessing} / ${totalCount}"; - static String m42(count) => + static String m43(count) => "${Intl.plural(count, one: '${count} elementas', other: '${count} elementų')}"; - static String m44(email) => "${email} pakvietė jus būti patikimu kontaktu"; + static String m45(email) => "${email} pakvietė jus būti patikimu kontaktu"; - static String m45(expiryTime) => "Nuoroda nebegalios ${expiryTime}"; + static String m46(expiryTime) => "Nuoroda nebegalios ${expiryTime}"; - static String m47(personName, email) => + static String m48(personName, email) => "Tai susies ${personName} su ${email}."; - static String m48(count, formattedCount) => + static String m49(count, formattedCount) => "${Intl.plural(count, zero: 'nėra prisiminimų', one: '${formattedCount} prisiminimas', other: '${formattedCount} prisiminimų')}"; - static String m49(count) => + static String m50(count) => "${Intl.plural(count, one: 'Perkelti elementą', other: 'Perkelti elementų')}"; - static String m50(albumName) => "Sėkmingai perkelta į „${albumName}“"; + static String m51(albumName) => "Sėkmingai perkelta į „${albumName}“"; - static String m51(personName) => "Nėra pasiūlymų asmeniui ${personName}."; + static String m52(personName) => "Nėra pasiūlymų asmeniui ${personName}."; - static String m52(name) => "Ne ${name}?"; + static String m53(name) => "Ne ${name}?"; - static String m53(familyAdminEmail) => + static String m54(familyAdminEmail) => "Susisiekite su ${familyAdminEmail}, kad pakeistumėte savo kodą."; - static String m55(passwordStrengthValue) => + static String m56(passwordStrengthValue) => "Slaptažodžio stiprumas: ${passwordStrengthValue}"; - static String m56(providerName) => + static String m57(providerName) => "Kreipkitės į ${providerName} palaikymo komandą, jei jums buvo nuskaičiuota."; - static String m59(count) => + static String m60(count) => "${Intl.plural(count, zero: 'Nėra nuotraukų', one: '1 nuotrauka', other: '${count} nuotraukų')}"; - static String m61(endDate) => + static String m62(endDate) => "Nemokama bandomoji versija galioja iki ${endDate}.\nVėliau galėsite pasirinkti mokamą planą."; - static String m63(toEmail) => "Siųskite žurnalus adresu\n${toEmail}"; + static String m64(toEmail) => "Siųskite žurnalus adresu\n${toEmail}"; - static String m65(folderName) => "Apdorojama ${folderName}..."; + static String m66(folderName) => "Apdorojama ${folderName}..."; - static String m66(storeName) => "Vertinti mus parduotuvėje „${storeName}“"; + static String m67(storeName) => "Vertinti mus parduotuvėje „${storeName}“"; - static String m67(name) => "Perskirstė jus į ${name}"; + static String m68(name) => "Perskirstė jus į ${name}"; - static String m68(days, email) => + static String m69(days, email) => "Paskyrą galėsite pasiekti po ${days} dienų. Pranešimas bus išsiųstas į ${email}."; - static String m69(email) => + static String m70(email) => "Dabar galite atkurti ${email} paskyrą nustatydami naują slaptažodį."; - static String m70(email) => "${email} bando atkurti jūsų paskyrą."; + static String m71(email) => "${email} bando atkurti jūsų paskyrą."; - static String m71(storageInGB) => + static String m72(storageInGB) => "3. Abu gaunate ${storageInGB} GB* nemokamai"; - static String m72(userEmail) => + static String m73(userEmail) => "${userEmail} bus pašalintas iš šio bendrinamo albumo.\n\nVisos jų pridėtos nuotraukos taip pat bus pašalintos iš albumo."; - static String m73(endDate) => "Prenumerata pratęsiama ${endDate}"; + static String m74(endDate) => "Prenumerata pratęsiama ${endDate}"; - static String m75(count) => + static String m76(count) => "${Intl.plural(count, one: 'Rastas ${count} rezultatas', other: 'Rasta ${count} rezultatų')}"; - static String m76(snapshotLength, searchLength) => + static String m77(snapshotLength, searchLength) => "Sekcijų ilgio neatitikimas: ${snapshotLength} != ${searchLength}"; - static String m77(count) => "${count} pasirinkta"; + static String m78(count) => "${count} pasirinkta"; - static String m78(count, yourCount) => + static String m79(count, yourCount) => "${count} pasirinkta (${yourCount} jūsų)"; - static String m80(verificationID) => + static String m81(verificationID) => "Štai mano patvirtinimo ID: ${verificationID}, skirta ente.io."; - static String m81(verificationID) => + static String m82(verificationID) => "Ei, ar galite patvirtinti, kad tai yra jūsų ente.io patvirtinimo ID: ${verificationID}"; - static String m82(referralCode, referralStorageInGB) => + static String m83(referralCode, referralStorageInGB) => "„Ente“ rekomendacijos kodas: ${referralCode} \n\nTaikykite jį per Nustatymai → Bendrieji → Rekomendacijos, kad gautumėte ${referralStorageInGB} GB nemokamai po to, kai užsiregistruosite mokamam planui.\n\nhttps://ente.io"; - static String m83(numberOfPeople) => + static String m84(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Bendrinti su konkrečiais asmenimis', one: 'Bendrinta su 1 asmeniu', other: 'Bendrinta su ${numberOfPeople} asmenimis')}"; - static String m84(emailIDs) => "Bendrinta su ${emailIDs}"; - - static String m85(fileType) => - "Šis ${fileType} bus ištrintas iš jūsų įrenginio."; + static String m85(emailIDs) => "Bendrinta su ${emailIDs}"; static String m86(fileType) => + "Šis ${fileType} bus ištrintas iš jūsų įrenginio."; + + static String m87(fileType) => "Šis ${fileType} yra ir saugykloje „Ente“ bei įrenginyje."; - static String m87(fileType) => "Šis ${fileType} bus ištrintas iš „Ente“."; + static String m88(fileType) => "Šis ${fileType} bus ištrintas iš „Ente“."; - static String m90(storageAmountInGB) => "${storageAmountInGB} GB"; + static String m91(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m92(id) => + static String m93(id) => "Jūsų ${id} jau susietas su kita „Ente“ paskyra.\nJei norite naudoti savo ${id} su šia paskyra, susisiekite su mūsų palaikymo komanda."; - static String m93(endDate) => "Jūsų prenumerata bus atsisakyta ${endDate}"; + static String m94(endDate) => "Jūsų prenumerata bus atsisakyta ${endDate}"; - static String m94(completed, total) => + static String m95(completed, total) => "${completed} / ${total} išsaugomi prisiminimai"; - static String m95(ignoreReason) => + static String m96(ignoreReason) => "Palieskite, kad įkeltumėte. Įkėlimas šiuo metu ignoruojamas dėl ${ignoreReason}."; - static String m96(storageAmountInGB) => + static String m97(storageAmountInGB) => "Jie taip pat gauna ${storageAmountInGB} GB"; - static String m97(email) => "Tai – ${email} patvirtinimo ID"; + static String m98(email) => "Tai – ${email} patvirtinimo ID"; - static String m98(count) => + static String m99(count) => "${Intl.plural(count, one: 'Šią savaitę, prieš ${count} metus', other: 'Šią savaitę, prieš ${count} metų')}"; - static String m99(dateFormat) => "${dateFormat} per metus"; + static String m100(dateFormat) => "${dateFormat} per metus"; - static String m100(count) => + static String m101(count) => "${Intl.plural(count, zero: 'Netrukus', one: '1 diena', other: '${count} dienų')}"; - static String m101(year) => "Kelionė per ${year}"; + static String m102(year) => "Kelionė per ${year}"; - static String m102(location) => "Kelionė į ${location}"; + static String m103(location) => "Kelionė į ${location}"; - static String m103(email) => + static String m104(email) => "Buvote pakviesti tapti ${email} palikimo kontaktu."; - static String m104(galleryType) => + static String m105(galleryType) => "Galerijos tipas ${galleryType} nepalaikomas pervadinimui."; - static String m105(ignoreReason) => + static String m106(ignoreReason) => "Įkėlimas ignoruojamas dėl ${ignoreReason}."; - static String m106(count) => "Išsaugomi ${count} prisiminimai..."; + static String m107(count) => "Išsaugomi ${count} prisiminimai..."; - static String m107(endDate) => "Galioja iki ${endDate}"; + static String m108(endDate) => "Galioja iki ${endDate}"; - static String m108(email) => "Patvirtinti ${email}"; + static String m109(email) => "Patvirtinti ${email}"; - static String m110(email) => + static String m112(email) => "Išsiuntėme laišką adresu ${email}"; - static String m111(count) => + static String m113(count) => "${Intl.plural(count, one: 'prieš ${count} metus', other: 'prieš ${count} metų')}"; - static String m112(name) => "Jūs ir ${name}"; + static String m114(name) => "Jūs ir ${name}"; - static String m113(storageSaved) => "Sėkmingai atlaisvinote ${storageSaved}!"; + static String m115(storageSaved) => "Sėkmingai atlaisvinote ${storageSaved}!"; final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { @@ -817,9 +817,9 @@ class MessageLookup extends MessageLookupByLibrary { "email": MessageLookupByLibrary.simpleMessage("El. paštas"), "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage( "El. paštas jau užregistruotas."), - "emailChangedTo": m27, - "emailDoesNotHaveEnteAccount": m28, - "emailNoEnteAccount": m29, + "emailChangedTo": m28, + "emailDoesNotHaveEnteAccount": m29, + "emailNoEnteAccount": m30, "emailNotRegistered": MessageLookupByLibrary.simpleMessage("El. paštas neregistruotas."), "emailVerificationToggle": @@ -904,7 +904,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Eksportuoti duomenis"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage( "Rastos papildomos nuotraukos"), - "extraPhotosFoundFor": m31, + "extraPhotosFoundFor": m32, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Veidas dar nesugrupuotas. Grįžkite vėliau."), "faceRecognition": @@ -950,7 +950,7 @@ class MessageLookup extends MessageLookupByLibrary { "fileSavedToGallery": MessageLookupByLibrary.simpleMessage( "Failas išsaugotas į galeriją"), "fileTypes": MessageLookupByLibrary.simpleMessage("Failų tipai"), - "filesBackedUpInAlbum": m34, + "filesBackedUpInAlbum": m35, "filesSavedToGallery": MessageLookupByLibrary.simpleMessage("Failai išsaugoti į galeriją"), "findPeopleByName": MessageLookupByLibrary.simpleMessage( @@ -965,28 +965,28 @@ class MessageLookup extends MessageLookupByLibrary { "foundFaces": MessageLookupByLibrary.simpleMessage("Rasti veidai"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("Gauta nemokama saugykla"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m36, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("Naudojama nemokama saugykla"), "freeTrial": MessageLookupByLibrary.simpleMessage( "Nemokamas bandomasis laikotarpis"), - "freeTrialValidTill": m36, - "freeUpAccessPostDelete": m37, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAccessPostDelete": m38, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage("Atlaisvinti įrenginio vietą"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "Sutaupykite vietos savo įrenginyje išvalydami failus, kurių atsarginės kopijos jau buvo sukurtos."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Atlaisvinti vietos"), - "freeUpSpaceSaving": m39, + "freeUpSpaceSaving": m40, "gallery": MessageLookupByLibrary.simpleMessage("Galerija"), "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "Galerijoje rodoma iki 1000 prisiminimų"), "general": MessageLookupByLibrary.simpleMessage("Bendrieji"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Generuojami šifravimo raktai..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Eiti į nustatymus"), "googlePlayId": @@ -1068,7 +1068,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Atrodo, kad kažkas nutiko ne taip. Bandykite pakartotinai po kurio laiko. Jei klaida tęsiasi, susisiekite su mūsų palaikymo komanda."), - "itemCount": m42, + "itemCount": m43, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Elementai rodo likusių dienų skaičių iki visiško ištrynimo."), @@ -1104,7 +1104,7 @@ class MessageLookup extends MessageLookupByLibrary { "legacy": MessageLookupByLibrary.simpleMessage("Palikimas"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Palikimo paskyros"), - "legacyInvite": m44, + "legacyInvite": m45, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "Palikimas leidžia patikimiems kontaktams pasiekti jūsų paskyrą jums nesant."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( @@ -1119,7 +1119,7 @@ class MessageLookup extends MessageLookupByLibrary { "linkEmail": MessageLookupByLibrary.simpleMessage("Susieti el. paštą"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Įjungta"), "linkExpired": MessageLookupByLibrary.simpleMessage("Nebegalioja"), - "linkExpiresOn": m45, + "linkExpiresOn": m46, "linkExpiry": MessageLookupByLibrary.simpleMessage("Nuorodos galiojimo laikas"), "linkHasExpired": @@ -1128,7 +1128,7 @@ class MessageLookup extends MessageLookupByLibrary { "linkPerson": MessageLookupByLibrary.simpleMessage("Susiekite asmenį,"), "linkPersonCaption": MessageLookupByLibrary.simpleMessage( "kad geriau bendrintumėte patirtį"), - "linkPersonToEmailConfirmation": m47, + "linkPersonToEmailConfirmation": m48, "livePhotos": MessageLookupByLibrary.simpleMessage("Gyvos nuotraukos"), "loadMessage1": MessageLookupByLibrary.simpleMessage( "Galite bendrinti savo prenumeratą su šeima."), @@ -1217,7 +1217,7 @@ class MessageLookup extends MessageLookupByLibrary { "mastodon": MessageLookupByLibrary.simpleMessage("„Mastodon“"), "matrix": MessageLookupByLibrary.simpleMessage("„Matrix“"), "me": MessageLookupByLibrary.simpleMessage("Aš"), - "memoryCount": m48, + "memoryCount": m49, "merchandise": MessageLookupByLibrary.simpleMessage("Atributika"), "mergeWithExisting": MessageLookupByLibrary.simpleMessage("Sujungti su esamais"), @@ -1247,12 +1247,12 @@ class MessageLookup extends MessageLookupByLibrary { "mostRecent": MessageLookupByLibrary.simpleMessage("Naujausią"), "mostRelevant": MessageLookupByLibrary.simpleMessage("Aktualiausią"), "mountains": MessageLookupByLibrary.simpleMessage("Per kalvas"), - "moveItem": m49, + "moveItem": m50, "moveSelectedPhotosToOneDate": MessageLookupByLibrary.simpleMessage( "Perkelti pasirinktas nuotraukas į vieną datą"), "moveToAlbum": MessageLookupByLibrary.simpleMessage("Perkelti į albumą"), - "movedSuccessfullyTo": m50, + "movedSuccessfullyTo": m51, "movedToTrash": MessageLookupByLibrary.simpleMessage("Perkelta į šiukšlinę"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1303,10 +1303,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Rezultatų nėra."), "noResultsFound": MessageLookupByLibrary.simpleMessage("Rezultatų nerasta."), - "noSuggestionsForPerson": m51, + "noSuggestionsForPerson": m52, "noSystemLockFound": MessageLookupByLibrary.simpleMessage("Nerastas sistemos užraktas"), - "notPersonLabel": m52, + "notPersonLabel": m53, "notThisPerson": MessageLookupByLibrary.simpleMessage("Ne šis asmuo?"), "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( "Kol kas su jumis niekuo nesibendrinama."), @@ -1319,7 +1319,7 @@ class MessageLookup extends MessageLookupByLibrary { "Saugykloje ente"), "onTheRoad": MessageLookupByLibrary.simpleMessage("Vėl kelyje"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), - "onlyFamilyAdminCanChangeCode": m53, + "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Tik jiems"), "oops": MessageLookupByLibrary.simpleMessage("Ups"), "oopsSomethingWentWrong": @@ -1356,7 +1356,7 @@ class MessageLookup extends MessageLookupByLibrary { "Slaptažodis sėkmingai pakeistas"), "passwordLock": MessageLookupByLibrary.simpleMessage("Slaptažodžio užraktas"), - "passwordStrength": m55, + "passwordStrength": m56, "passwordStrengthInfo": MessageLookupByLibrary.simpleMessage( "Slaptažodžio stiprumas apskaičiuojamas atsižvelgiant į slaptažodžio ilgį, naudotus simbolius ir į tai, ar slaptažodis patenka į 10 000 dažniausiai naudojamų slaptažodžių."), "passwordWarning": MessageLookupByLibrary.simpleMessage( @@ -1367,7 +1367,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Mokėjimas nepavyko"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Deja, jūsų mokėjimas nepavyko. Susisiekite su palaikymo komanda ir mes jums padėsime!"), - "paymentFailedTalkToProvider": m56, + "paymentFailedTalkToProvider": m57, "pendingItems": MessageLookupByLibrary.simpleMessage("Laukiami elementai"), "pendingSync": @@ -1383,7 +1383,7 @@ class MessageLookup extends MessageLookupByLibrary { "photoGridSize": MessageLookupByLibrary.simpleMessage("Nuotraukų tinklelio dydis"), "photoSmallCase": MessageLookupByLibrary.simpleMessage("nuotrauka"), - "photocountPhotos": m59, + "photocountPhotos": m60, "photos": MessageLookupByLibrary.simpleMessage("Nuotraukos"), "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( @@ -1397,7 +1397,7 @@ class MessageLookup extends MessageLookupByLibrary { "Paleisti albumą televizoriuje"), "playOriginal": MessageLookupByLibrary.simpleMessage("Leisti originalą"), - "playStoreFreeTrialValidTill": m61, + "playStoreFreeTrialValidTill": m62, "playStream": MessageLookupByLibrary.simpleMessage("Leisti srautinį perdavimą"), "playstoreSubscription": @@ -1414,7 +1414,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Prisijunkite iš naujo."), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Pasirinkite sparčiąsias nuorodas, kad pašalintumėte"), - "pleaseSendTheLogsTo": m63, + "pleaseSendTheLogsTo": m64, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Bandykite dar kartą."), "pleaseVerifyTheCodeYouHaveEntered": @@ -1446,7 +1446,7 @@ class MessageLookup extends MessageLookupByLibrary { "proceed": MessageLookupByLibrary.simpleMessage("Tęsti"), "processed": MessageLookupByLibrary.simpleMessage("Apdorota"), "processing": MessageLookupByLibrary.simpleMessage("Apdorojama"), - "processingImport": m65, + "processingImport": m66, "processingVideos": MessageLookupByLibrary.simpleMessage("Apdorojami vaizdo įrašai"), "publicLinkCreated": @@ -1457,8 +1457,8 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("Sukurti paraišką"), "rateTheApp": MessageLookupByLibrary.simpleMessage("Vertinti programą"), "rateUs": MessageLookupByLibrary.simpleMessage("Vertinti mus"), - "rateUsOnStore": m66, - "reassignedToName": m67, + "rateUsOnStore": m67, + "reassignedToName": m68, "recover": MessageLookupByLibrary.simpleMessage("Atkurti"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Atkurti paskyrą"), @@ -1467,7 +1467,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Atkurti paskyrą"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("Pradėtas atkūrimas"), - "recoveryInitiatedDesc": m68, + "recoveryInitiatedDesc": m69, "recoveryKey": MessageLookupByLibrary.simpleMessage("Atkūrimo raktas"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Nukopijuotas atkūrimo raktas į iškarpinę"), @@ -1481,12 +1481,12 @@ class MessageLookup extends MessageLookupByLibrary { "Patvirtintas atkūrimo raktas"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Atkūrimo raktas – vienintelis būdas atkurti nuotraukas, jei pamiršote slaptažodį. Atkūrimo raktą galite rasti Nustatymose > Paskyra.\n\nĮveskite savo atkūrimo raktą čia, kad patvirtintumėte, ar teisingai jį išsaugojote."), - "recoveryReady": m69, + "recoveryReady": m70, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("Atkūrimas sėkmingas."), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "Patikimas kontaktas bando pasiekti jūsų paskyrą."), - "recoveryWarningBody": m70, + "recoveryWarningBody": m71, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "Dabartinis įrenginys nėra pakankamai galingas, kad patvirtintų jūsų slaptažodį, bet mes galime iš naujo sugeneruoti taip, kad jis veiktų su visais įrenginiais.\n\nPrisijunkite naudojant atkūrimo raktą ir sugeneruokite iš naujo slaptažodį (jei norite, galite vėl naudoti tą patį)."), "recreatePasswordTitle": @@ -1502,7 +1502,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Duokite šį kodą savo draugams"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Jie užsiregistruoja mokamą planą"), - "referralStep3": m71, + "referralStep3": m72, "referrals": MessageLookupByLibrary.simpleMessage("Rekomendacijos"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Šiuo metu rekomendacijos yra pristabdytos"), @@ -1534,7 +1534,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Šalinti nuorodą"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Šalinti dalyvį"), - "removeParticipantBody": m72, + "removeParticipantBody": m73, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Šalinti asmens žymą"), "removePublicLink": @@ -1555,7 +1555,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("Pervadinti failą"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Pratęsti prenumeratą"), - "renewsOn": m73, + "renewsOn": m74, "reportABug": MessageLookupByLibrary.simpleMessage("Pranešti apie riktą"), "reportBug": @@ -1617,8 +1617,8 @@ class MessageLookup extends MessageLookupByLibrary { "Pakvieskite asmenis ir čia matysite visas jų bendrinamas nuotraukas."), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "Asmenys bus rodomi čia, kai bus užbaigtas apdorojimas ir sinchronizavimas."), - "searchResultCount": m75, - "searchSectionsLengthMismatch": m76, + "searchResultCount": m76, + "searchSectionsLengthMismatch": m77, "security": MessageLookupByLibrary.simpleMessage("Saugumas"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Žiūrėti viešų albumų nuorodas programoje"), @@ -1660,8 +1660,8 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeRemovedFromThisPerson": MessageLookupByLibrary.simpleMessage( "Pasirinkti elementai bus pašalinti iš šio asmens, bet nebus ištrinti iš jūsų bibliotekos."), - "selectedPhotos": m77, - "selectedPhotosWithYours": m78, + "selectedPhotos": m78, + "selectedPhotosWithYours": m79, "send": MessageLookupByLibrary.simpleMessage("Siųsti"), "sendEmail": MessageLookupByLibrary.simpleMessage("Siųsti el. laišką"), "sendInvite": MessageLookupByLibrary.simpleMessage("Siųsti kvietimą"), @@ -1692,16 +1692,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Bendrinti albumą dabar"), "shareLink": MessageLookupByLibrary.simpleMessage("Bendrinti nuorodą"), - "shareMyVerificationID": m80, + "shareMyVerificationID": m81, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Bendrinkite tik su tais asmenimis, su kuriais norite"), - "shareTextConfirmOthersVerificationID": m81, + "shareTextConfirmOthersVerificationID": m82, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Atsisiųskite „Ente“, kad galėtume lengvai bendrinti originalios kokybės nuotraukas ir vaizdo įrašus.\n\nhttps://ente.io"), - "shareTextReferralCode": m82, + "shareTextReferralCode": m83, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Bendrinkite su ne „Ente“ naudotojais."), - "shareWithPeopleSectionTitle": m83, + "shareWithPeopleSectionTitle": m84, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage( "Bendrinkite savo pirmąjį albumą"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1713,7 +1713,7 @@ class MessageLookup extends MessageLookupByLibrary { "Naujos bendrintos nuotraukos"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Gaukite pranešimus, kai kas nors prideda nuotrauką į bendrinamą albumą, kuriame dalyvaujate."), - "sharedWith": m84, + "sharedWith": m85, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Bendrinta su manimi"), "sharedWithYou": @@ -1728,11 +1728,11 @@ class MessageLookup extends MessageLookupByLibrary { "Jei manote, kad kas nors gali žinoti jūsų slaptažodį, galite priverstinai atsijungti iš visų kitų įrenginių, naudojančių jūsų paskyrą."), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Sutinku su paslaugų sąlygomis ir privatumo politika"), - "singleFileDeleteFromDevice": m85, + "singleFileDeleteFromDevice": m86, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Jis bus ištrintas iš visų albumų."), - "singleFileInBothLocalAndRemote": m86, - "singleFileInRemoteOnly": m87, + "singleFileInBothLocalAndRemote": m87, + "singleFileInRemoteOnly": m88, "skip": MessageLookupByLibrary.simpleMessage("Praleisti"), "social": MessageLookupByLibrary.simpleMessage("Socialinės"), "someOfTheFilesYouAreTryingToDeleteAre": @@ -1775,14 +1775,14 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Stabdyti perdavimą"), "storage": MessageLookupByLibrary.simpleMessage("Saugykla"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("Jūs"), - "storageInGB": m90, + "storageInGB": m91, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Viršyta saugyklos riba."), "streamDetails": MessageLookupByLibrary.simpleMessage( "Srautinio perdavimo išsami informacija"), "strongStrength": MessageLookupByLibrary.simpleMessage("Stipri"), - "subAlreadyLinkedErrMessage": m92, - "subWillBeCancelledOn": m93, + "subAlreadyLinkedErrMessage": m93, + "subWillBeCancelledOn": m94, "subscribe": MessageLookupByLibrary.simpleMessage("Prenumeruoti"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Kad įjungtumėte bendrinimą, reikia aktyvios mokamos prenumeratos."), @@ -1796,7 +1796,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Siūlyti funkcijas"), "sunrise": MessageLookupByLibrary.simpleMessage("Akiratyje"), "support": MessageLookupByLibrary.simpleMessage("Pagalba"), - "syncProgress": m94, + "syncProgress": m95, "syncStopped": MessageLookupByLibrary.simpleMessage( "Sinchronizavimas sustabdytas"), "syncing": MessageLookupByLibrary.simpleMessage("Sinchronizuojama..."), @@ -1809,7 +1809,7 @@ class MessageLookup extends MessageLookupByLibrary { "Palieskite, kad atrakintumėte"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Palieskite, kad įkeltumėte"), - "tapToUploadIsIgnoredDue": m95, + "tapToUploadIsIgnoredDue": m96, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Atrodo, kad kažkas nutiko ne taip. Bandykite dar kartą po kurio laiko. Jei klaida tęsiasi, susisiekite su mūsų palaikymo komanda."), "terminate": MessageLookupByLibrary.simpleMessage("Baigti"), @@ -1829,7 +1829,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "Įvestas atkūrimo raktas yra neteisingas."), "theme": MessageLookupByLibrary.simpleMessage("Tema"), - "theyAlsoGetXGb": m96, + "theyAlsoGetXGb": m97, "thisAlbumAlreadyHDACollaborativeLink": MessageLookupByLibrary.simpleMessage( "Šis albumas jau turi bendradarbiavimo nuorodą."), @@ -1842,12 +1842,12 @@ class MessageLookup extends MessageLookupByLibrary { "thisImageHasNoExifData": MessageLookupByLibrary.simpleMessage( "Šis vaizdas neturi Exif duomenų"), "thisIsMeExclamation": MessageLookupByLibrary.simpleMessage("Tai aš!"), - "thisIsPersonVerificationId": m97, + "thisIsPersonVerificationId": m98, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage("Tai – jūsų patvirtinimo ID"), "thisWeekThroughTheYears": MessageLookupByLibrary.simpleMessage("Ši savaitė per metus"), - "thisWeekXYearsAgo": m98, + "thisWeekXYearsAgo": m99, "thisWillLogYouOutOfTheFollowingDevice": MessageLookupByLibrary.simpleMessage( "Tai jus atjungs nuo toliau nurodyto įrenginio:"), @@ -1859,7 +1859,7 @@ class MessageLookup extends MessageLookupByLibrary { "thisWillRemovePublicLinksOfAllSelectedQuickLinks": MessageLookupByLibrary.simpleMessage( "Tai pašalins visų pasirinktų sparčiųjų nuorodų viešąsias nuorodas."), - "throughTheYears": m99, + "throughTheYears": m100, "toEnableAppLockPleaseSetupDevicePasscodeOrScreen": MessageLookupByLibrary.simpleMessage( "Kad įjungtumėte programos užraktą, sistemos nustatymuose nustatykite įrenginio prieigos kodą arba ekrano užraktą."), @@ -1874,13 +1874,13 @@ class MessageLookup extends MessageLookupByLibrary { "total": MessageLookupByLibrary.simpleMessage("iš viso"), "totalSize": MessageLookupByLibrary.simpleMessage("Bendrą dydį"), "trash": MessageLookupByLibrary.simpleMessage("Šiukšlinė"), - "trashDaysLeft": m100, + "trashDaysLeft": m101, "trim": MessageLookupByLibrary.simpleMessage("Trumpinti"), - "tripInYear": m101, - "tripToLocation": m102, + "tripInYear": m102, + "tripToLocation": m103, "trustedContacts": MessageLookupByLibrary.simpleMessage("Patikimi kontaktai"), - "trustedInviteBody": m103, + "trustedInviteBody": m104, "tryAgain": MessageLookupByLibrary.simpleMessage("Bandyti dar kartą"), "turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage( "Įjunkite atsarginės kopijos kūrimą, kad automatiškai įkeltumėte į šį įrenginio aplanką įtrauktus failus į „Ente“."), @@ -1897,7 +1897,7 @@ class MessageLookup extends MessageLookupByLibrary { "Dvigubas tapatybės nustatymas sėkmingai iš naujo nustatytas."), "twofactorSetup": MessageLookupByLibrary.simpleMessage( "Dvigubo tapatybės nustatymo sąranka"), - "typeOfGallerGallerytypeIsNotSupportedForRename": m104, + "typeOfGallerGallerytypeIsNotSupportedForRename": m105, "unarchive": MessageLookupByLibrary.simpleMessage("Išarchyvuoti"), "unarchiveAlbum": MessageLookupByLibrary.simpleMessage("Išarchyvuoti albumą"), @@ -1921,10 +1921,10 @@ class MessageLookup extends MessageLookupByLibrary { "updatingFolderSelection": MessageLookupByLibrary.simpleMessage( "Atnaujinamas aplankų pasirinkimas..."), "upgrade": MessageLookupByLibrary.simpleMessage("Keisti planą"), - "uploadIsIgnoredDueToIgnorereason": m105, + "uploadIsIgnoredDueToIgnorereason": m106, "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage("Įkeliami failai į albumą..."), - "uploadingMultipleMemories": m106, + "uploadingMultipleMemories": m107, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage("Išsaugomas prisiminimas..."), "upto50OffUntil4thDec": MessageLookupByLibrary.simpleMessage( @@ -1940,7 +1940,7 @@ class MessageLookup extends MessageLookupByLibrary { "useRecoveryKey": MessageLookupByLibrary.simpleMessage("Naudoti atkūrimo raktą"), "usedSpace": MessageLookupByLibrary.simpleMessage("Naudojama vieta"), - "validTill": m107, + "validTill": m108, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Patvirtinimas nepavyko. Bandykite dar kartą."), @@ -1949,7 +1949,7 @@ class MessageLookup extends MessageLookupByLibrary { "verify": MessageLookupByLibrary.simpleMessage("Patvirtinti"), "verifyEmail": MessageLookupByLibrary.simpleMessage("Patvirtinti el. paštą"), - "verifyEmailID": m108, + "verifyEmailID": m109, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("Patvirtinti"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("Patvirtinti slaptaraktį"), @@ -1988,7 +1988,7 @@ class MessageLookup extends MessageLookupByLibrary { "weDontSupportEditingPhotosAndAlbumsThatYouDont": MessageLookupByLibrary.simpleMessage( "Nepalaikome nuotraukų ir albumų redagavimo, kurių dar neturite."), - "weHaveSendEmailTo": m110, + "weHaveSendEmailTo": m112, "weakStrength": MessageLookupByLibrary.simpleMessage("Silpna"), "welcomeBack": MessageLookupByLibrary.simpleMessage("Sveiki sugrįžę!"), "whatsNew": MessageLookupByLibrary.simpleMessage("Kas naujo"), @@ -1996,7 +1996,7 @@ class MessageLookup extends MessageLookupByLibrary { "Patikimas kontaktas gali padėti atkurti jūsų duomenis."), "yearShort": MessageLookupByLibrary.simpleMessage("m."), "yearly": MessageLookupByLibrary.simpleMessage("Metinis"), - "yearsAgo": m111, + "yearsAgo": m113, "yes": MessageLookupByLibrary.simpleMessage("Taip"), "yesCancel": MessageLookupByLibrary.simpleMessage("Taip, atsisakyti"), "yesConvertToViewer": @@ -2008,7 +2008,7 @@ class MessageLookup extends MessageLookupByLibrary { "yesResetPerson": MessageLookupByLibrary.simpleMessage( "Taip, nustatyti asmenį iš naujo"), "you": MessageLookupByLibrary.simpleMessage("Jūs"), - "youAndThem": m112, + "youAndThem": m114, "youAreOnAFamilyPlan": MessageLookupByLibrary.simpleMessage("Esate šeimos plane!"), "youAreOnTheLatestVersion": @@ -2027,7 +2027,7 @@ class MessageLookup extends MessageLookupByLibrary { "Negalite bendrinti su savimi."), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage( "Neturite jokių archyvuotų elementų."), - "youHaveSuccessfullyFreedUp": m113, + "youHaveSuccessfullyFreedUp": m115, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage("Jūsų paskyra ištrinta"), "yourMap": MessageLookupByLibrary.simpleMessage("Jūsų žemėlapis"), diff --git a/mobile/lib/generated/intl/messages_nl.dart b/mobile/lib/generated/intl/messages_nl.dart index 80b904137c..c7488b3c7d 100644 --- a/mobile/lib/generated/intl/messages_nl.dart +++ b/mobile/lib/generated/intl/messages_nl.dart @@ -90,208 +90,208 @@ class MessageLookup extends MessageLookupByLibrary { static String m26(count, formattedSize) => "${count} bestanden, elk ${formattedSize}"; - static String m27(newEmail) => "E-mailadres gewijzigd naar ${newEmail}"; + static String m28(newEmail) => "E-mailadres gewijzigd naar ${newEmail}"; - static String m28(email) => "${email} heeft geen Ente account."; + static String m29(email) => "${email} heeft geen Ente account."; - static String m29(email) => + static String m30(email) => "${email} heeft geen Ente account.\n\nStuur ze een uitnodiging om foto\'s te delen."; - static String m30(name) => "${name} omarmen"; + static String m31(name) => "${name} omarmen"; - static String m31(text) => "Extra foto\'s gevonden voor ${text}"; + static String m32(text) => "Extra foto\'s gevonden voor ${text}"; - static String m32(name) => "Feestmaal met ${name}"; - - static String m33(count, formattedNumber) => - "${Intl.plural(count, one: '1 bestand', other: '${formattedNumber} bestanden')} in dit album zijn veilig geback-upt"; + static String m33(name) => "Feestmaal met ${name}"; static String m34(count, formattedNumber) => + "${Intl.plural(count, one: '1 bestand', other: '${formattedNumber} bestanden')} in dit album zijn veilig geback-upt"; + + static String m35(count, formattedNumber) => "${Intl.plural(count, one: '1 bestand', other: '${formattedNumber} bestanden')} in dit album is veilig geback-upt"; - static String m35(storageAmountInGB) => + static String m36(storageAmountInGB) => "${storageAmountInGB} GB telkens als iemand zich aanmeldt voor een betaald abonnement en je code toepast"; - static String m36(endDate) => "Gratis proefversie geldig tot ${endDate}"; + static String m37(endDate) => "Gratis proefversie geldig tot ${endDate}"; - static String m38(sizeInMBorGB) => "Maak ${sizeInMBorGB} vrij"; + static String m39(sizeInMBorGB) => "Maak ${sizeInMBorGB} vrij"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Verwerken van ${currentlyProcessing} / ${totalCount}"; - static String m41(name) => "Wandelen met ${name}"; + static String m42(name) => "Wandelen met ${name}"; - static String m42(count) => + static String m43(count) => "${Intl.plural(count, one: '${count} item', other: '${count} items')}"; - static String m43(name) => "Laatste keer met ${name}"; + static String m44(name) => "Laatste keer met ${name}"; - static String m44(email) => + static String m45(email) => "${email} heeft je uitgenodigd om een vertrouwd contact te zijn"; - static String m45(expiryTime) => "Link vervalt op ${expiryTime}"; + static String m46(expiryTime) => "Link vervalt op ${expiryTime}"; - static String m46(email) => "Link persoon aan ${email}"; + static String m47(email) => "Link persoon aan ${email}"; - static String m47(personName, email) => + static String m48(personName, email) => "Dit linkt ${personName} aan ${email}"; - static String m50(albumName) => "Succesvol verplaatst naar ${albumName}"; + static String m51(albumName) => "Succesvol verplaatst naar ${albumName}"; - static String m51(personName) => "Geen suggesties voor ${personName}"; + static String m52(personName) => "Geen suggesties voor ${personName}"; - static String m52(name) => "Niet ${name}?"; + static String m53(name) => "Niet ${name}?"; - static String m53(familyAdminEmail) => + static String m54(familyAdminEmail) => "Neem contact op met ${familyAdminEmail} om uw code te wijzigen."; - static String m54(name) => "Feest met ${name}"; + static String m55(name) => "Feest met ${name}"; - static String m55(passwordStrengthValue) => + static String m56(passwordStrengthValue) => "Wachtwoord sterkte: ${passwordStrengthValue}"; - static String m56(providerName) => + static String m57(providerName) => "Praat met ${providerName} klantenservice als u in rekening bent gebracht"; - static String m57(name, age) => "${name} is ${age}!"; + static String m58(name, age) => "${name} is ${age}!"; - static String m58(name, age) => "${name} wordt binnenkort ${age}"; + static String m59(name, age) => "${name} wordt binnenkort ${age}"; - static String m59(count) => + static String m60(count) => "${Intl.plural(count, zero: 'Geen foto\'s', one: '1 foto', other: '${count} foto\'s')}"; - static String m61(endDate) => + static String m62(endDate) => "Gratis proefperiode geldig tot ${endDate}.\nU kunt naderhand een betaald abonnement kiezen."; - static String m62(toEmail) => "Stuur ons een e-mail op ${toEmail}"; + static String m63(toEmail) => "Stuur ons een e-mail op ${toEmail}"; - static String m63(toEmail) => + static String m64(toEmail) => "Verstuur de logboeken alstublieft naar ${toEmail}"; - static String m64(name) => "Poseren met ${name}"; + static String m65(name) => "Poseren met ${name}"; - static String m65(folderName) => "Verwerken van ${folderName}..."; + static String m66(folderName) => "Verwerken van ${folderName}..."; - static String m66(storeName) => "Beoordeel ons op ${storeName}"; + static String m67(storeName) => "Beoordeel ons op ${storeName}"; - static String m67(name) => "Toegewezen aan ${name}"; + static String m68(name) => "Toegewezen aan ${name}"; - static String m68(days, email) => + static String m69(days, email) => "U krijgt toegang tot het account na ${days} dagen. Een melding zal worden verzonden naar ${email}."; - static String m69(email) => + static String m70(email) => "U kunt nu het account van ${email} herstellen door een nieuw wachtwoord in te stellen."; - static String m70(email) => "${email} probeert je account te herstellen."; + static String m71(email) => "${email} probeert je account te herstellen."; - static String m71(storageInGB) => + static String m72(storageInGB) => "Jullie krijgen allebei ${storageInGB} GB* gratis"; - static String m72(userEmail) => + static String m73(userEmail) => "${userEmail} zal worden verwijderd uit dit gedeelde album\n\nAlle door hen toegevoegde foto\'s worden ook uit het album verwijderd"; - static String m73(endDate) => "Wordt verlengd op ${endDate}"; + static String m74(endDate) => "Wordt verlengd op ${endDate}"; - static String m74(name) => "Roadtrip met ${name}"; + static String m75(name) => "Roadtrip met ${name}"; - static String m75(count) => + static String m76(count) => "${Intl.plural(count, one: '${count} resultaat gevonden', other: '${count} resultaten gevonden')}"; - static String m76(snapshotLength, searchLength) => + static String m77(snapshotLength, searchLength) => "Lengte van secties komt niet overeen: ${snapshotLength} != ${searchLength}"; - static String m77(count) => "${count} geselecteerd"; + static String m78(count) => "${count} geselecteerd"; - static String m78(count, yourCount) => + static String m79(count, yourCount) => "${count} geselecteerd (${yourCount} van jou)"; - static String m79(name) => "Selfies met ${name}"; - - static String m80(verificationID) => - "Hier is mijn verificatie-ID: ${verificationID} voor ente.io."; + static String m80(name) => "Selfies met ${name}"; static String m81(verificationID) => + "Hier is mijn verificatie-ID: ${verificationID} voor ente.io."; + + static String m82(verificationID) => "Hey, kunt u bevestigen dat dit uw ente.io verificatie-ID is: ${verificationID}"; - static String m82(referralCode, referralStorageInGB) => + static String m83(referralCode, referralStorageInGB) => "Ente verwijzingscode: ${referralCode} \n\nPas het toe bij Instellingen → Algemeen → Verwijzingen om ${referralStorageInGB} GB gratis te krijgen nadat je je hebt aangemeld voor een betaald abonnement\n\nhttps://ente.io"; - static String m83(numberOfPeople) => + static String m84(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Deel met specifieke mensen', one: 'Gedeeld met 1 persoon', other: 'Gedeeld met ${numberOfPeople} mensen')}"; - static String m84(emailIDs) => "Gedeeld met ${emailIDs}"; - - static String m85(fileType) => - "Deze ${fileType} zal worden verwijderd van jouw apparaat."; + static String m85(emailIDs) => "Gedeeld met ${emailIDs}"; static String m86(fileType) => - "Deze ${fileType} staat zowel in Ente als op jouw apparaat."; + "Deze ${fileType} zal worden verwijderd van jouw apparaat."; static String m87(fileType) => + "Deze ${fileType} staat zowel in Ente als op jouw apparaat."; + + static String m88(fileType) => "Deze ${fileType} zal worden verwijderd uit Ente."; - static String m88(name) => "Sporten met ${name}"; + static String m89(name) => "Sporten met ${name}"; - static String m89(name) => "Spotlicht op ${name}"; + static String m90(name) => "Spotlicht op ${name}"; - static String m90(storageAmountInGB) => "${storageAmountInGB} GB"; + static String m91(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m91( + static String m92( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} van ${totalAmount} ${totalStorageUnit} gebruikt"; - static String m92(id) => + static String m93(id) => "Jouw ${id} is al aan een ander Ente account gekoppeld.\nAls je jouw ${id} wilt gebruiken met dit account, neem dan contact op met onze klantenservice"; - static String m93(endDate) => "Uw abonnement loopt af op ${endDate}"; + static String m94(endDate) => "Uw abonnement loopt af op ${endDate}"; - static String m94(completed, total) => + static String m95(completed, total) => "${completed}/${total} herinneringen bewaard"; - static String m95(ignoreReason) => + static String m96(ignoreReason) => "Tik om te uploaden, upload wordt momenteel genegeerd vanwege ${ignoreReason}"; - static String m96(storageAmountInGB) => + static String m97(storageAmountInGB) => "Zij krijgen ook ${storageAmountInGB} GB"; - static String m97(email) => "Dit is de verificatie-ID van ${email}"; + static String m98(email) => "Dit is de verificatie-ID van ${email}"; - static String m98(count) => + static String m99(count) => "${Intl.plural(count, one: 'Deze week, ${count} jaar geleden', other: 'Deze week, ${count} jaren geleden')}"; - static String m99(dateFormat) => "${dateFormat} door de jaren"; + static String m100(dateFormat) => "${dateFormat} door de jaren"; - static String m100(count) => + static String m101(count) => "${Intl.plural(count, zero: 'Binnenkort', one: '1 dag', other: '${count} dagen')}"; - static String m101(year) => "Reis in ${year}"; + static String m102(year) => "Reis in ${year}"; - static String m102(location) => "Reis naar ${location}"; + static String m103(location) => "Reis naar ${location}"; - static String m103(email) => + static String m104(email) => "Je bent uitgenodigd om een legacy contact van ${email} te zijn."; - static String m104(galleryType) => + static String m105(galleryType) => "Galerijtype ${galleryType} wordt niet ondersteund voor hernoemen"; - static String m105(ignoreReason) => + static String m106(ignoreReason) => "Upload wordt genegeerd omdat ${ignoreReason}"; - static String m106(count) => "${count} herinneringen veiligstellen..."; + static String m107(count) => "${count} herinneringen veiligstellen..."; - static String m107(endDate) => "Geldig tot ${endDate}"; + static String m108(endDate) => "Geldig tot ${endDate}"; - static String m108(email) => "Verifieer ${email}"; + static String m109(email) => "Verifieer ${email}"; - static String m110(email) => + static String m112(email) => "We hebben een e-mail gestuurd naar ${email}"; - static String m111(count) => + static String m113(count) => "${Intl.plural(count, one: '${count} jaar geleden', other: '${count} jaar geleden')}"; - static String m112(name) => "Jij en ${name}"; + static String m114(name) => "Jij en ${name}"; - static String m113(storageSaved) => + static String m115(storageSaved) => "Je hebt ${storageSaved} succesvol vrijgemaakt!"; final messages = _notInlinedMessages(_notInlinedMessages); @@ -855,16 +855,16 @@ class MessageLookup extends MessageLookupByLibrary { "email": MessageLookupByLibrary.simpleMessage("E-mail"), "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage("E-mail is al geregistreerd."), - "emailChangedTo": m27, - "emailDoesNotHaveEnteAccount": m28, - "emailNoEnteAccount": m29, + "emailChangedTo": m28, + "emailDoesNotHaveEnteAccount": m29, + "emailNoEnteAccount": m30, "emailNotRegistered": MessageLookupByLibrary.simpleMessage("E-mail niet geregistreerd."), "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("E-mailverificatie"), "emailYourLogs": MessageLookupByLibrary.simpleMessage("E-mail uw logboeken"), - "embracingThem": m30, + "embracingThem": m31, "emergencyContacts": MessageLookupByLibrary.simpleMessage("Noodcontacten"), "empty": MessageLookupByLibrary.simpleMessage("Leeg"), @@ -945,7 +945,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Exporteer je gegevens"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage("Extra foto\'s gevonden"), - "extraPhotosFoundFor": m31, + "extraPhotosFoundFor": m32, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Gezicht nog niet geclusterd, kom later terug"), "faceRecognition": @@ -985,7 +985,7 @@ class MessageLookup extends MessageLookupByLibrary { "faqs": MessageLookupByLibrary.simpleMessage("Veelgestelde vragen"), "favorite": MessageLookupByLibrary.simpleMessage("Toevoegen aan favorieten"), - "feastingWithThem": m32, + "feastingWithThem": m33, "feedback": MessageLookupByLibrary.simpleMessage("Feedback"), "file": MessageLookupByLibrary.simpleMessage("Bestand"), "fileFailedToSaveToGallery": MessageLookupByLibrary.simpleMessage( @@ -999,8 +999,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Bestandstype"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Bestandstypen en namen"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m34, + "filesBackedUpInAlbum": m35, "filesDeleted": MessageLookupByLibrary.simpleMessage("Bestanden verwijderd"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage( @@ -1018,12 +1018,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Gezichten gevonden"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("Gratis opslag geclaimd"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m36, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("Gratis opslag bruikbaar"), "freeTrial": MessageLookupByLibrary.simpleMessage("Gratis proefversie"), - "freeTrialValidTill": m36, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage("Apparaatruimte vrijmaken"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( @@ -1035,7 +1035,7 @@ class MessageLookup extends MessageLookupByLibrary { "general": MessageLookupByLibrary.simpleMessage("Algemeen"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Encryptiesleutels genereren..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Ga naar instellingen"), "googlePlayId": MessageLookupByLibrary.simpleMessage("Google Play ID"), @@ -1064,7 +1064,7 @@ class MessageLookup extends MessageLookupByLibrary { "hideSharedItemsFromHomeGallery": MessageLookupByLibrary.simpleMessage( "Verberg gedeelde bestanden uit de galerij"), "hiding": MessageLookupByLibrary.simpleMessage("Verbergen..."), - "hikingWithThem": m41, + "hikingWithThem": m42, "hostedAtOsmFrance": MessageLookupByLibrary.simpleMessage("Gehost bij OSM France"), "howItWorks": MessageLookupByLibrary.simpleMessage("Hoe het werkt"), @@ -1121,7 +1121,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Het lijkt erop dat er iets fout is gegaan. Probeer het later opnieuw. Als de fout zich blijft voordoen, neem dan contact op met ons supportteam."), - "itemCount": m42, + "itemCount": m43, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Bestanden tonen het aantal resterende dagen voordat ze permanent worden verwijderd"), @@ -1142,7 +1142,7 @@ class MessageLookup extends MessageLookupByLibrary { "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage( "Help ons alsjeblieft met deze informatie"), "language": MessageLookupByLibrary.simpleMessage("Taal"), - "lastTimeWithThem": m43, + "lastTimeWithThem": m44, "lastUpdated": MessageLookupByLibrary.simpleMessage("Laatst gewijzigd"), "lastYearsTrip": MessageLookupByLibrary.simpleMessage("Reis van vorig jaar"), @@ -1156,7 +1156,7 @@ class MessageLookup extends MessageLookupByLibrary { "legacy": MessageLookupByLibrary.simpleMessage("Legacy"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Legacy accounts"), - "legacyInvite": m44, + "legacyInvite": m45, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "Legacy geeft vertrouwde contacten toegang tot je account bij afwezigheid."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( @@ -1173,7 +1173,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("voor sneller delen"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Ingeschakeld"), "linkExpired": MessageLookupByLibrary.simpleMessage("Verlopen"), - "linkExpiresOn": m45, + "linkExpiresOn": m46, "linkExpiry": MessageLookupByLibrary.simpleMessage("Vervaldatum"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("Link is vervallen"), @@ -1181,8 +1181,8 @@ class MessageLookup extends MessageLookupByLibrary { "linkPerson": MessageLookupByLibrary.simpleMessage("Link persoon"), "linkPersonCaption": MessageLookupByLibrary.simpleMessage( "voor een betere ervaring met delen"), - "linkPersonToEmail": m46, - "linkPersonToEmailConfirmation": m47, + "linkPersonToEmail": m47, + "linkPersonToEmailConfirmation": m48, "livePhotos": MessageLookupByLibrary.simpleMessage("Live foto"), "loadMessage1": MessageLookupByLibrary.simpleMessage( "U kunt uw abonnement met uw familie delen"), @@ -1307,7 +1307,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Verplaats naar album"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage( "Verplaatsen naar verborgen album"), - "movedSuccessfullyTo": m50, + "movedSuccessfullyTo": m51, "movedToTrash": MessageLookupByLibrary.simpleMessage("Naar prullenbak verplaatst"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1362,10 +1362,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Geen resultaten"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Geen resultaten gevonden"), - "noSuggestionsForPerson": m51, + "noSuggestionsForPerson": m52, "noSystemLockFound": MessageLookupByLibrary.simpleMessage( "Geen systeemvergrendeling gevonden"), - "notPersonLabel": m52, + "notPersonLabel": m53, "notThisPerson": MessageLookupByLibrary.simpleMessage("Niet dezelfde persoon?"), "nothingSharedWithYouYet": @@ -1379,7 +1379,7 @@ class MessageLookup extends MessageLookupByLibrary { "Op ente"), "onTheRoad": MessageLookupByLibrary.simpleMessage("Onderweg"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), - "onlyFamilyAdminCanChangeCode": m53, + "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Alleen hen"), "oops": MessageLookupByLibrary.simpleMessage("Oeps"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( @@ -1409,7 +1409,7 @@ class MessageLookup extends MessageLookupByLibrary { "pairingComplete": MessageLookupByLibrary.simpleMessage("Koppeling voltooid"), "panorama": MessageLookupByLibrary.simpleMessage("Panorama"), - "partyWithThem": m54, + "partyWithThem": m55, "passKeyPendingVerification": MessageLookupByLibrary.simpleMessage( "Verificatie is nog in behandeling"), "passkey": MessageLookupByLibrary.simpleMessage("Passkey"), @@ -1419,7 +1419,7 @@ class MessageLookup extends MessageLookupByLibrary { "passwordChangedSuccessfully": MessageLookupByLibrary.simpleMessage( "Wachtwoord succesvol aangepast"), "passwordLock": MessageLookupByLibrary.simpleMessage("Wachtwoord slot"), - "passwordStrength": m55, + "passwordStrength": m56, "passwordStrengthInfo": MessageLookupByLibrary.simpleMessage( "De wachtwoordsterkte wordt berekend aan de hand van de lengte van het wachtwoord, de gebruikte tekens en of het wachtwoord al dan niet in de top 10.000 van meest gebruikte wachtwoorden staat"), "passwordWarning": MessageLookupByLibrary.simpleMessage( @@ -1430,7 +1430,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Betaling mislukt"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Helaas is je betaling mislukt. Neem contact op met support zodat we je kunnen helpen!"), - "paymentFailedTalkToProvider": m56, + "paymentFailedTalkToProvider": m57, "pendingItems": MessageLookupByLibrary.simpleMessage("Bestanden in behandeling"), "pendingSync": MessageLookupByLibrary.simpleMessage( @@ -1444,16 +1444,16 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Permanent verwijderen"), "permanentlyDeleteFromDevice": MessageLookupByLibrary.simpleMessage( "Permanent verwijderen van apparaat?"), - "personIsAge": m57, + "personIsAge": m58, "personName": MessageLookupByLibrary.simpleMessage("Naam van persoon"), - "personTurningAge": m58, + "personTurningAge": m59, "pets": MessageLookupByLibrary.simpleMessage("Harige kameraden"), "photoDescriptions": MessageLookupByLibrary.simpleMessage("Foto beschrijvingen"), "photoGridSize": MessageLookupByLibrary.simpleMessage("Foto raster grootte"), "photoSmallCase": MessageLookupByLibrary.simpleMessage("foto"), - "photocountPhotos": m59, + "photocountPhotos": m60, "photos": MessageLookupByLibrary.simpleMessage("Foto\'s"), "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( @@ -1470,7 +1470,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Album afspelen op TV"), "playOriginal": MessageLookupByLibrary.simpleMessage("Origineel afspelen"), - "playStoreFreeTrialValidTill": m61, + "playStoreFreeTrialValidTill": m62, "playStream": MessageLookupByLibrary.simpleMessage("Stream afspelen"), "playstoreSubscription": MessageLookupByLibrary.simpleMessage("PlayStore abonnement"), @@ -1483,14 +1483,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Neem contact op met klantenservice als het probleem aanhoudt"), - "pleaseEmailUsAt": m62, + "pleaseEmailUsAt": m63, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage( "Geef alstublieft toestemming"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Log opnieuw in"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Selecteer snelle links om te verwijderen"), - "pleaseSendTheLogsTo": m63, + "pleaseSendTheLogsTo": m64, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Probeer het nog eens"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1505,7 +1505,7 @@ class MessageLookup extends MessageLookupByLibrary { "Gelieve even te wachten voordat u opnieuw probeert"), "pleaseWaitThisWillTakeAWhile": MessageLookupByLibrary.simpleMessage( "Een ogenblik geduld, dit zal even duren."), - "posingWithThem": m64, + "posingWithThem": m65, "preparingLogs": MessageLookupByLibrary.simpleMessage("Logboeken voorbereiden..."), "preserveMore": MessageLookupByLibrary.simpleMessage("Meer bewaren"), @@ -1523,7 +1523,7 @@ class MessageLookup extends MessageLookupByLibrary { "proceed": MessageLookupByLibrary.simpleMessage("Verder"), "processed": MessageLookupByLibrary.simpleMessage("Verwerkt"), "processing": MessageLookupByLibrary.simpleMessage("Verwerken"), - "processingImport": m65, + "processingImport": m66, "processingVideos": MessageLookupByLibrary.simpleMessage("Video\'s verwerken"), "publicLinkCreated": @@ -1536,10 +1536,10 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("Meld probleem"), "rateTheApp": MessageLookupByLibrary.simpleMessage("Beoordeel de app"), "rateUs": MessageLookupByLibrary.simpleMessage("Beoordeel ons"), - "rateUsOnStore": m66, + "rateUsOnStore": m67, "reassignMe": MessageLookupByLibrary.simpleMessage("\"Ik\" opnieuw toewijzen"), - "reassignedToName": m67, + "reassignedToName": m68, "reassigningLoading": MessageLookupByLibrary.simpleMessage("Opnieuw toewijzen..."), "recover": MessageLookupByLibrary.simpleMessage("Herstellen"), @@ -1550,7 +1550,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Account herstellen"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("Herstel gestart"), - "recoveryInitiatedDesc": m68, + "recoveryInitiatedDesc": m69, "recoveryKey": MessageLookupByLibrary.simpleMessage("Herstelsleutel"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Herstelsleutel gekopieerd naar klembord"), @@ -1564,12 +1564,12 @@ class MessageLookup extends MessageLookupByLibrary { "Herstel sleutel geverifieerd"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Je herstelsleutel is de enige manier om je foto\'s te herstellen als je je wachtwoord bent vergeten. Je vindt je herstelsleutel in Instellingen > Account.\n\nVoer hier je herstelsleutel in om te controleren of je hem correct hebt opgeslagen."), - "recoveryReady": m69, + "recoveryReady": m70, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("Herstel succesvol!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "Een vertrouwd contact probeert toegang te krijgen tot je account"), - "recoveryWarningBody": m70, + "recoveryWarningBody": m71, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "Het huidige apparaat is niet krachtig genoeg om je wachtwoord te verifiëren, dus moeten we de code een keer opnieuw genereren op een manier die met alle apparaten werkt.\n\nLog in met behulp van uw herstelcode en genereer opnieuw uw wachtwoord (je kunt dezelfde indien gewenst opnieuw gebruiken)."), "recreatePasswordTitle": MessageLookupByLibrary.simpleMessage( @@ -1585,7 +1585,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Geef deze code aan je vrienden"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Ze registreren voor een betaald plan"), - "referralStep3": m71, + "referralStep3": m72, "referrals": MessageLookupByLibrary.simpleMessage("Referenties"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Verwijzingen zijn momenteel gepauzeerd"), @@ -1617,7 +1617,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Verwijder link"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Deelnemer verwijderen"), - "removeParticipantBody": m72, + "removeParticipantBody": m73, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Verwijder persoonslabel"), "removePublicLink": @@ -1639,7 +1639,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Bestandsnaam wijzigen"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Abonnement verlengen"), - "renewsOn": m73, + "renewsOn": m74, "reportABug": MessageLookupByLibrary.simpleMessage("Een fout melden"), "reportBug": MessageLookupByLibrary.simpleMessage("Fout melden"), "resendEmail": @@ -1665,7 +1665,7 @@ class MessageLookup extends MessageLookupByLibrary { "reviewSuggestions": MessageLookupByLibrary.simpleMessage("Suggesties beoordelen"), "right": MessageLookupByLibrary.simpleMessage("Rechts"), - "roadtripWithThem": m74, + "roadtripWithThem": m75, "rotate": MessageLookupByLibrary.simpleMessage("Roteren"), "rotateLeft": MessageLookupByLibrary.simpleMessage("Roteer links"), "rotateRight": MessageLookupByLibrary.simpleMessage("Rechtsom draaien"), @@ -1721,8 +1721,8 @@ class MessageLookup extends MessageLookupByLibrary { "Nodig mensen uit, en je ziet alle foto\'s die door hen worden gedeeld hier"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "Personen worden hier getoond zodra verwerking en synchroniseren voltooid is"), - "searchResultCount": m75, - "searchSectionsLengthMismatch": m76, + "searchResultCount": m76, + "searchSectionsLengthMismatch": m77, "security": MessageLookupByLibrary.simpleMessage("Beveiliging"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Bekijk publieke album links in de app"), @@ -1771,9 +1771,9 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeRemovedFromThisPerson": MessageLookupByLibrary.simpleMessage( "Geselecteerde bestanden worden van deze persoon verwijderd, maar niet uit uw bibliotheek verwijderd."), - "selectedPhotos": m77, - "selectedPhotosWithYours": m78, - "selfiesWithThem": m79, + "selectedPhotos": m78, + "selectedPhotosWithYours": m79, + "selfiesWithThem": m80, "send": MessageLookupByLibrary.simpleMessage("Verzenden"), "sendEmail": MessageLookupByLibrary.simpleMessage("E-mail versturen"), "sendInvite": @@ -1805,16 +1805,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Deel nu een album"), "shareLink": MessageLookupByLibrary.simpleMessage("Link delen"), - "shareMyVerificationID": m80, + "shareMyVerificationID": m81, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Deel alleen met de mensen die u wilt"), - "shareTextConfirmOthersVerificationID": m81, + "shareTextConfirmOthersVerificationID": m82, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Download Ente zodat we gemakkelijk foto\'s en video\'s in originele kwaliteit kunnen delen\n\nhttps://ente.io"), - "shareTextReferralCode": m82, + "shareTextReferralCode": m83, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Delen met niet-Ente gebruikers"), - "shareWithPeopleSectionTitle": m83, + "shareWithPeopleSectionTitle": m84, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("Deel jouw eerste album"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1825,7 +1825,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Nieuwe gedeelde foto\'s"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Ontvang meldingen wanneer iemand een foto toevoegt aan een gedeeld album waar je deel van uitmaakt"), - "sharedWith": m84, + "sharedWith": m85, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Gedeeld met mij"), "sharedWithYou": MessageLookupByLibrary.simpleMessage("Gedeeld met jou"), @@ -1843,11 +1843,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Log uit op andere apparaten"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Ik ga akkoord met de gebruiksvoorwaarden en privacybeleid"), - "singleFileDeleteFromDevice": m85, + "singleFileDeleteFromDevice": m86, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Het wordt uit alle albums verwijderd."), - "singleFileInBothLocalAndRemote": m86, - "singleFileInRemoteOnly": m87, + "singleFileInBothLocalAndRemote": m87, + "singleFileInRemoteOnly": m88, "skip": MessageLookupByLibrary.simpleMessage("Overslaan"), "social": MessageLookupByLibrary.simpleMessage("Sociale media"), "someItemsAreInBothEnteAndYourDevice": MessageLookupByLibrary.simpleMessage( @@ -1881,8 +1881,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Nieuwste eerst"), "sortOldestFirst": MessageLookupByLibrary.simpleMessage("Oudste eerst"), "sparkleSuccess": MessageLookupByLibrary.simpleMessage("✨ Succes"), - "sportsWithThem": m88, - "spotlightOnThem": m89, + "sportsWithThem": m89, + "spotlightOnThem": m90, "spotlightOnYourself": MessageLookupByLibrary.simpleMessage("Spotlicht op jezelf"), "startAccountRecoveryTitle": @@ -1896,14 +1896,14 @@ class MessageLookup extends MessageLookupByLibrary { "storage": MessageLookupByLibrary.simpleMessage("Opslagruimte"), "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("Familie"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("Jij"), - "storageInGB": m90, + "storageInGB": m91, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Opslaglimiet overschreden"), - "storageUsageInfo": m91, + "storageUsageInfo": m92, "streamDetails": MessageLookupByLibrary.simpleMessage("Stream details"), "strongStrength": MessageLookupByLibrary.simpleMessage("Sterk"), - "subAlreadyLinkedErrMessage": m92, - "subWillBeCancelledOn": m93, + "subAlreadyLinkedErrMessage": m93, + "subWillBeCancelledOn": m94, "subscribe": MessageLookupByLibrary.simpleMessage("Abonneer"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Je hebt een actief betaald abonnement nodig om delen mogelijk te maken."), @@ -1921,7 +1921,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Features voorstellen"), "sunrise": MessageLookupByLibrary.simpleMessage("Aan de horizon"), "support": MessageLookupByLibrary.simpleMessage("Ondersteuning"), - "syncProgress": m94, + "syncProgress": m95, "syncStopped": MessageLookupByLibrary.simpleMessage("Synchronisatie gestopt"), "syncing": MessageLookupByLibrary.simpleMessage("Synchroniseren..."), @@ -1933,7 +1933,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Tik om te ontgrendelen"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Tik om te uploaden"), - "tapToUploadIsIgnoredDue": m95, + "tapToUploadIsIgnoredDue": m96, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Het lijkt erop dat er iets fout is gegaan. Probeer het later opnieuw. Als de fout zich blijft voordoen, neem dan contact op met ons supportteam."), "terminate": MessageLookupByLibrary.simpleMessage("Beëindigen"), @@ -1957,7 +1957,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Deze bestanden zullen worden verwijderd van uw apparaat."), - "theyAlsoGetXGb": m96, + "theyAlsoGetXGb": m97, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Ze zullen uit alle albums worden verwijderd."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( @@ -1975,12 +1975,12 @@ class MessageLookup extends MessageLookupByLibrary { "Deze foto heeft geen exif gegevens"), "thisIsMeExclamation": MessageLookupByLibrary.simpleMessage("Dit ben ik!"), - "thisIsPersonVerificationId": m97, + "thisIsPersonVerificationId": m98, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage("Dit is uw verificatie-ID"), "thisWeekThroughTheYears": MessageLookupByLibrary.simpleMessage("Deze week door de jaren"), - "thisWeekXYearsAgo": m98, + "thisWeekXYearsAgo": m99, "thisWillLogYouOutOfTheFollowingDevice": MessageLookupByLibrary.simpleMessage( "Dit zal je uitloggen van het volgende apparaat:"), @@ -1992,7 +1992,7 @@ class MessageLookup extends MessageLookupByLibrary { "thisWillRemovePublicLinksOfAllSelectedQuickLinks": MessageLookupByLibrary.simpleMessage( "Hiermee worden openbare links van alle geselecteerde snelle links verwijderd."), - "throughTheYears": m99, + "throughTheYears": m100, "toEnableAppLockPleaseSetupDevicePasscodeOrScreen": MessageLookupByLibrary.simpleMessage( "Om appvergrendeling in te schakelen, moet u een toegangscode of schermvergrendeling instellen in uw systeeminstellingen."), @@ -2007,13 +2007,13 @@ class MessageLookup extends MessageLookupByLibrary { "total": MessageLookupByLibrary.simpleMessage("totaal"), "totalSize": MessageLookupByLibrary.simpleMessage("Totale grootte"), "trash": MessageLookupByLibrary.simpleMessage("Prullenbak"), - "trashDaysLeft": m100, + "trashDaysLeft": m101, "trim": MessageLookupByLibrary.simpleMessage("Knippen"), - "tripInYear": m101, - "tripToLocation": m102, + "tripInYear": m102, + "tripToLocation": m103, "trustedContacts": MessageLookupByLibrary.simpleMessage("Vertrouwde contacten"), - "trustedInviteBody": m103, + "trustedInviteBody": m104, "tryAgain": MessageLookupByLibrary.simpleMessage("Probeer opnieuw"), "turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage( "Schakel back-up in om bestanden die toegevoegd zijn aan deze map op dit apparaat automatisch te uploaden."), @@ -2032,7 +2032,7 @@ class MessageLookup extends MessageLookupByLibrary { "Tweestapsverificatie succesvol gereset"), "twofactorSetup": MessageLookupByLibrary.simpleMessage("Tweestapsverificatie"), - "typeOfGallerGallerytypeIsNotSupportedForRename": m104, + "typeOfGallerGallerytypeIsNotSupportedForRename": m105, "unarchive": MessageLookupByLibrary.simpleMessage("Uit archief halen"), "unarchiveAlbum": MessageLookupByLibrary.simpleMessage("Album uit archief halen"), @@ -2058,10 +2058,10 @@ class MessageLookup extends MessageLookupByLibrary { "updatingFolderSelection": MessageLookupByLibrary.simpleMessage("Map selectie bijwerken..."), "upgrade": MessageLookupByLibrary.simpleMessage("Upgraden"), - "uploadIsIgnoredDueToIgnorereason": m105, + "uploadIsIgnoredDueToIgnorereason": m106, "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage( "Bestanden worden geüpload naar album..."), - "uploadingMultipleMemories": m106, + "uploadingMultipleMemories": m107, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage( "1 herinnering veiligstellen..."), "upto50OffUntil4thDec": MessageLookupByLibrary.simpleMessage( @@ -2079,7 +2079,7 @@ class MessageLookup extends MessageLookupByLibrary { "useSelectedPhoto": MessageLookupByLibrary.simpleMessage("Gebruik geselecteerde foto"), "usedSpace": MessageLookupByLibrary.simpleMessage("Gebruikte ruimte"), - "validTill": m107, + "validTill": m108, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Verificatie mislukt, probeer het opnieuw"), @@ -2087,7 +2087,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Verificatie ID"), "verify": MessageLookupByLibrary.simpleMessage("Verifiëren"), "verifyEmail": MessageLookupByLibrary.simpleMessage("Bevestig e-mail"), - "verifyEmailID": m108, + "verifyEmailID": m109, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("Verifiëren"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("Bevestig passkey"), @@ -2126,7 +2126,7 @@ class MessageLookup extends MessageLookupByLibrary { "weDontSupportEditingPhotosAndAlbumsThatYouDont": MessageLookupByLibrary.simpleMessage( "We ondersteunen het bewerken van foto\'s en albums waar je niet de eigenaar van bent nog niet"), - "weHaveSendEmailTo": m110, + "weHaveSendEmailTo": m112, "weakStrength": MessageLookupByLibrary.simpleMessage("Zwak"), "welcomeBack": MessageLookupByLibrary.simpleMessage("Welkom terug!"), "whatsNew": MessageLookupByLibrary.simpleMessage("Nieuw"), @@ -2134,7 +2134,7 @@ class MessageLookup extends MessageLookupByLibrary { "Vertrouwde contacten kunnen helpen bij het herstellen van je data."), "yearShort": MessageLookupByLibrary.simpleMessage("jr"), "yearly": MessageLookupByLibrary.simpleMessage("Jaarlijks"), - "yearsAgo": m111, + "yearsAgo": m113, "yes": MessageLookupByLibrary.simpleMessage("Ja"), "yesCancel": MessageLookupByLibrary.simpleMessage("Ja, opzeggen"), "yesConvertToViewer": @@ -2148,7 +2148,7 @@ class MessageLookup extends MessageLookupByLibrary { "yesResetPerson": MessageLookupByLibrary.simpleMessage("Ja, reset persoon"), "you": MessageLookupByLibrary.simpleMessage("Jij"), - "youAndThem": m112, + "youAndThem": m114, "youAreOnAFamilyPlan": MessageLookupByLibrary.simpleMessage( "U bent onderdeel van een familie abonnement!"), "youAreOnTheLatestVersion": @@ -2167,7 +2167,7 @@ class MessageLookup extends MessageLookupByLibrary { "Je kunt niet met jezelf delen"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage( "U heeft geen gearchiveerde bestanden."), - "youHaveSuccessfullyFreedUp": m113, + "youHaveSuccessfullyFreedUp": m115, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage("Je account is verwijderd"), "yourMap": MessageLookupByLibrary.simpleMessage("Jouw kaart"), diff --git a/mobile/lib/generated/intl/messages_no.dart b/mobile/lib/generated/intl/messages_no.dart index 1f0cc7a794..851d11ca4e 100644 --- a/mobile/lib/generated/intl/messages_no.dart +++ b/mobile/lib/generated/intl/messages_no.dart @@ -93,211 +93,211 @@ class MessageLookup extends MessageLookupByLibrary { static String m26(count, formattedSize) => "${count} filer, ${formattedSize} hver"; - static String m27(newEmail) => "E-postadressen er endret til ${newEmail}"; + static String m28(newEmail) => "E-postadressen er endret til ${newEmail}"; - static String m28(email) => "${email} har ikke en Ente-konto."; + static String m29(email) => "${email} har ikke en Ente-konto."; - static String m29(email) => + static String m30(email) => "${email} har ikke en Ente-konto.\n\nsender dem en invitasjon til å dele bilder."; - static String m30(name) => "Omfavner ${name}"; + static String m31(name) => "Omfavner ${name}"; - static String m31(text) => "Ekstra bilder funnet for ${text}"; + static String m32(text) => "Ekstra bilder funnet for ${text}"; - static String m32(name) => "Festing med ${name}"; - - static String m33(count, formattedNumber) => - "${Intl.plural(count, one: '1 fil', other: '${formattedNumber} filer')} på denne enheten har blitt sikkerhetskopiert"; + static String m33(name) => "Festing med ${name}"; static String m34(count, formattedNumber) => + "${Intl.plural(count, one: '1 fil', other: '${formattedNumber} filer')} på denne enheten har blitt sikkerhetskopiert"; + + static String m35(count, formattedNumber) => "${Intl.plural(count, one: '1 fil', other: '${formattedNumber} filer')} I dette albumet har blitt sikkerhetskopiert"; - static String m35(storageAmountInGB) => + static String m36(storageAmountInGB) => "${storageAmountInGB} GB hver gang noen melder seg på en betalt plan og bruker koden din"; - static String m36(endDate) => "Prøveperioden varer til ${endDate}"; + static String m37(endDate) => "Prøveperioden varer til ${endDate}"; - static String m38(sizeInMBorGB) => "Frigjør ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "Frigjør ${sizeInMBorGB}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Behandler ${currentlyProcessing} / ${totalCount}"; - static String m41(name) => "Tur med ${name}"; + static String m42(name) => "Tur med ${name}"; - static String m42(count) => + static String m43(count) => "${Intl.plural(count, one: '${count} element', other: '${count} elementer')}"; - static String m43(name) => "Siste gang med ${name}"; + static String m44(name) => "Siste gang med ${name}"; - static String m44(email) => + static String m45(email) => "${email} har invitert deg til å være en betrodd kontakt"; - static String m45(expiryTime) => "Lenken utløper på ${expiryTime}"; + static String m46(expiryTime) => "Lenken utløper på ${expiryTime}"; - static String m46(email) => "Knytt personen til ${email}"; + static String m47(email) => "Knytt personen til ${email}"; - static String m47(personName, email) => + static String m48(personName, email) => "Dette knytter ${personName} til ${email}"; - static String m48(count, formattedCount) => + static String m49(count, formattedCount) => "${Intl.plural(count, zero: 'ingen minner', one: '${formattedCount} minne', other: '${formattedCount} minner')}"; - static String m49(count) => + static String m50(count) => "${Intl.plural(count, one: 'Flytt elementet', other: 'Flytt elementene')}"; - static String m50(albumName) => "Flyttet til ${albumName}"; + static String m51(albumName) => "Flyttet til ${albumName}"; - static String m51(personName) => "Ingen forslag for ${personName}"; + static String m52(personName) => "Ingen forslag for ${personName}"; - static String m52(name) => "Ikke ${name}?"; + static String m53(name) => "Ikke ${name}?"; - static String m53(familyAdminEmail) => + static String m54(familyAdminEmail) => "Vennligst kontakt ${familyAdminEmail} for å endre koden din."; - static String m54(name) => "Fest med ${name}"; + static String m55(name) => "Fest med ${name}"; - static String m55(passwordStrengthValue) => + static String m56(passwordStrengthValue) => "Passordstyrke: ${passwordStrengthValue}"; - static String m56(providerName) => + static String m57(providerName) => "Snakk med ${providerName} kundestøtte hvis du ble belastet"; - static String m57(name, age) => "${name} er ${age}!"; + static String m58(name, age) => "${name} er ${age}!"; - static String m58(name, age) => "${name} fyller ${age} snart"; + static String m59(name, age) => "${name} fyller ${age} snart"; - static String m59(count) => + static String m60(count) => "${Intl.plural(count, zero: 'Ingen bilder', one: '1 bilde', other: '${count} bilder')}"; - static String m61(endDate) => + static String m62(endDate) => "Prøveperioden varer til ${endDate}.\nDu kan velge en betalt plan etterpå."; - static String m62(toEmail) => "Vennligst send oss en e-post på ${toEmail}"; + static String m63(toEmail) => "Vennligst send oss en e-post på ${toEmail}"; - static String m63(toEmail) => "Vennligst send loggene til \n${toEmail}"; + static String m64(toEmail) => "Vennligst send loggene til \n${toEmail}"; - static String m64(name) => "Poseringer med ${name}"; + static String m65(name) => "Poseringer med ${name}"; - static String m65(folderName) => "Behandler ${folderName}..."; + static String m66(folderName) => "Behandler ${folderName}..."; - static String m66(storeName) => "Vurder oss på ${storeName}"; + static String m67(storeName) => "Vurder oss på ${storeName}"; - static String m67(name) => + static String m68(name) => "Tildeler deg til ${name}${name}${name}${name}${name}"; - static String m68(days, email) => + static String m69(days, email) => "Du kan få tilgang til kontoen etter ${days} dager. En varsling vil bli sendt til ${email}."; - static String m69(email) => + static String m70(email) => "Du kan nå gjenopprette ${email} sin konto ved å sette et nytt passord."; - static String m70(email) => "${email} prøver å gjenopprette kontoen din."; + static String m71(email) => "${email} prøver å gjenopprette kontoen din."; - static String m71(storageInGB) => + static String m72(storageInGB) => "3. Begge dere får ${storageInGB} GB* gratis"; - static String m72(userEmail) => + static String m73(userEmail) => "${userEmail} vil bli fjernet fra dette delte albumet\n\nAlle bilder lagt til av dem vil også bli fjernet fra albumet"; - static String m73(endDate) => "Abonnement fornyes på ${endDate}"; + static String m74(endDate) => "Abonnement fornyes på ${endDate}"; - static String m74(name) => "Biltur med ${name}"; + static String m75(name) => "Biltur med ${name}"; - static String m75(count) => + static String m76(count) => "${Intl.plural(count, one: '${count} resultat funnet', other: '${count} resultater funnet')}"; - static String m76(snapshotLength, searchLength) => + static String m77(snapshotLength, searchLength) => "Uoverensstemmelse i seksjonslengde: ${snapshotLength} != ${searchLength}"; - static String m77(count) => "${count} valgt"; + static String m78(count) => "${count} valgt"; - static String m78(count, yourCount) => "${count} valgt (${yourCount} dine)"; + static String m79(count, yourCount) => "${count} valgt (${yourCount} dine)"; - static String m79(name) => "Selfier med ${name}"; - - static String m80(verificationID) => - "Her er min verifiserings-ID: ${verificationID} for ente.io."; + static String m80(name) => "Selfier med ${name}"; static String m81(verificationID) => + "Her er min verifiserings-ID: ${verificationID} for ente.io."; + + static String m82(verificationID) => "Hei, kan du bekrefte at dette er din ente.io verifiserings-ID: ${verificationID}"; - static String m82(referralCode, referralStorageInGB) => + static String m83(referralCode, referralStorageInGB) => "Gi vervekode: ${referralCode} \n\nBruk den i Innstillinger → General → Verving for å få ${referralStorageInGB} GB gratis etter at du har registrert deg for en betalt plan\n\nhttps://ente.io"; - static String m83(numberOfPeople) => + static String m84(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Del med bestemte personer', one: 'Delt med 1 person', other: 'Delt med ${numberOfPeople} personer')}"; - static String m84(emailIDs) => "Delt med ${emailIDs}"; - - static String m85(fileType) => - "Denne ${fileType} vil bli slettet fra enheten din."; + static String m85(emailIDs) => "Delt med ${emailIDs}"; static String m86(fileType) => + "Denne ${fileType} vil bli slettet fra enheten din."; + + static String m87(fileType) => "Denne ${fileType} er både i Ente og på enheten din."; - static String m87(fileType) => "Denne ${fileType} vil bli slettet fra Ente."; + static String m88(fileType) => "Denne ${fileType} vil bli slettet fra Ente."; - static String m88(name) => "Sport med ${name}"; + static String m89(name) => "Sport med ${name}"; - static String m89(name) => "Fremhev ${name}"; + static String m90(name) => "Fremhev ${name}"; - static String m90(storageAmountInGB) => "${storageAmountInGB} GB"; + static String m91(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m91( + static String m92( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} av ${totalAmount} ${totalStorageUnit} brukt"; - static String m92(id) => + static String m93(id) => "Din ${id} er allerede koblet til en annen Ente-konto.\nHvis du ønsker å bruke din ${id} med denne kontoen, vennligst kontakt vår brukerstøtte\'\'"; - static String m93(endDate) => + static String m94(endDate) => "Abonnementet ditt blir avsluttet den ${endDate}"; - static String m94(completed, total) => "${completed}/${total} minner bevart"; + static String m95(completed, total) => "${completed}/${total} minner bevart"; - static String m95(ignoreReason) => + static String m96(ignoreReason) => "Trykk for å laste opp, opplasting er ignorert nå på grunn av ${ignoreReason}"; - static String m96(storageAmountInGB) => "De får også ${storageAmountInGB} GB"; + static String m97(storageAmountInGB) => "De får også ${storageAmountInGB} GB"; - static String m97(email) => "Dette er ${email} sin verifiserings-ID"; + static String m98(email) => "Dette er ${email} sin verifiserings-ID"; - static String m98(count) => + static String m99(count) => "${Intl.plural(count, one: 'Denne uka, ${count} år siden', other: 'Denne uka, ${count} år siden')}"; - static String m99(dateFormat) => "${dateFormat} gjennom årene"; + static String m100(dateFormat) => "${dateFormat} gjennom årene"; - static String m100(count) => + static String m101(count) => "${Intl.plural(count, zero: 'Snart', one: '1 dag', other: '${count} dager')}"; - static String m101(year) => "Reise i ${year}"; + static String m102(year) => "Reise i ${year}"; - static String m102(location) => "Reise til ${location}"; + static String m103(location) => "Reise til ${location}"; - static String m103(email) => + static String m104(email) => "Du er invitert til å være en betrodd kontakt av ${email}."; - static String m104(galleryType) => + static String m105(galleryType) => "Galleritype ${galleryType} støttes ikke for nytt navn"; - static String m105(ignoreReason) => + static String m106(ignoreReason) => "Opplastingen ble ignorert på grunn av ${ignoreReason}"; - static String m106(count) => "Bevarer ${count} minner..."; + static String m107(count) => "Bevarer ${count} minner..."; - static String m107(endDate) => "Gyldig til ${endDate}"; + static String m108(endDate) => "Gyldig til ${endDate}"; - static String m108(email) => "Verifiser ${email}"; + static String m109(email) => "Verifiser ${email}"; - static String m110(email) => + static String m112(email) => "Vi har sendt en e-post til ${email}"; - static String m111(count) => + static String m113(count) => "${Intl.plural(count, one: '${count} år siden', other: '${count} år siden')}"; - static String m112(name) => "Du og ${name}"; + static String m114(name) => "Du og ${name}"; - static String m113(storageSaved) => "Du har frigjort ${storageSaved}!"; + static String m115(storageSaved) => "Du har frigjort ${storageSaved}!"; final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { @@ -853,16 +853,16 @@ class MessageLookup extends MessageLookupByLibrary { "email": MessageLookupByLibrary.simpleMessage("E-post"), "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage( "E-postadressen er allerede registrert."), - "emailChangedTo": m27, - "emailDoesNotHaveEnteAccount": m28, - "emailNoEnteAccount": m29, + "emailChangedTo": m28, + "emailDoesNotHaveEnteAccount": m29, + "emailNoEnteAccount": m30, "emailNotRegistered": MessageLookupByLibrary.simpleMessage( "E-postadressen er ikke registrert."), "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("E-postbekreftelse"), "emailYourLogs": MessageLookupByLibrary.simpleMessage("Send loggene dine på e-post"), - "embracingThem": m30, + "embracingThem": m31, "emergencyContacts": MessageLookupByLibrary.simpleMessage("Nødkontakter"), "empty": MessageLookupByLibrary.simpleMessage("Tom"), @@ -938,7 +938,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Eksporter dine data"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage("Ekstra bilder funnet"), - "extraPhotosFoundFor": m31, + "extraPhotosFoundFor": m32, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Ansikt ikke gruppert ennå, vennligst kom tilbake senere"), "faceRecognition": @@ -977,7 +977,7 @@ class MessageLookup extends MessageLookupByLibrary { "faq": MessageLookupByLibrary.simpleMessage("Ofte stilte spørsmål"), "faqs": MessageLookupByLibrary.simpleMessage("Ofte stilte spørsmål"), "favorite": MessageLookupByLibrary.simpleMessage("Favoritt"), - "feastingWithThem": m32, + "feastingWithThem": m33, "feedback": MessageLookupByLibrary.simpleMessage("Tilbakemelding"), "file": MessageLookupByLibrary.simpleMessage("Fil"), "fileFailedToSaveToGallery": MessageLookupByLibrary.simpleMessage( @@ -991,8 +991,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Filtyper"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Filtyper og navn"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m34, + "filesBackedUpInAlbum": m35, "filesDeleted": MessageLookupByLibrary.simpleMessage("Filene er slettet"), "filesSavedToGallery": @@ -1009,13 +1009,13 @@ class MessageLookup extends MessageLookupByLibrary { "foundFaces": MessageLookupByLibrary.simpleMessage("Fant ansikter"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage( "Gratis lagringplass aktivert"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m36, "freeStorageUsable": MessageLookupByLibrary.simpleMessage( "Gratis lagringsplass som kan brukes"), "freeTrial": MessageLookupByLibrary.simpleMessage("Gratis prøveversjon"), - "freeTrialValidTill": m36, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage("Frigjør plass på enheten"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( @@ -1028,7 +1028,7 @@ class MessageLookup extends MessageLookupByLibrary { "general": MessageLookupByLibrary.simpleMessage("Generelt"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Genererer krypteringsnøkler..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Gå til innstillinger"), "googlePlayId": MessageLookupByLibrary.simpleMessage("Google Play ID"), @@ -1057,7 +1057,7 @@ class MessageLookup extends MessageLookupByLibrary { "hideSharedItemsFromHomeGallery": MessageLookupByLibrary.simpleMessage( "Skjul delte elementer fra hjemgalleriet"), "hiding": MessageLookupByLibrary.simpleMessage("Skjuler..."), - "hikingWithThem": m41, + "hikingWithThem": m42, "hostedAtOsmFrance": MessageLookupByLibrary.simpleMessage("Hostet på OSM France"), "howItWorks": @@ -1114,7 +1114,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Det ser ut til at noe gikk galt. Prøv på nytt etter en stund. Hvis feilen vedvarer, kan du kontakte kundestøtte."), - "itemCount": m42, + "itemCount": m43, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Elementer viser gjenværende dager før de slettes for godt"), @@ -1135,7 +1135,7 @@ class MessageLookup extends MessageLookupByLibrary { "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage( "Vær vennlig og hjelp oss med denne informasjonen"), "language": MessageLookupByLibrary.simpleMessage("Språk"), - "lastTimeWithThem": m43, + "lastTimeWithThem": m44, "lastUpdated": MessageLookupByLibrary.simpleMessage("Sist oppdatert"), "lastYearsTrip": MessageLookupByLibrary.simpleMessage("Fjorårets tur"), "leave": MessageLookupByLibrary.simpleMessage("Forlat"), @@ -1146,7 +1146,7 @@ class MessageLookup extends MessageLookupByLibrary { "left": MessageLookupByLibrary.simpleMessage("Venstre"), "legacy": MessageLookupByLibrary.simpleMessage("Arv"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Eldre kontoer"), - "legacyInvite": m44, + "legacyInvite": m45, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "Arv-funksjonen lar betrodde kontakter få tilgang til kontoen din i ditt fravær."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( @@ -1162,7 +1162,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("for raskere deling"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Aktivert"), "linkExpired": MessageLookupByLibrary.simpleMessage("Utløpt"), - "linkExpiresOn": m45, + "linkExpiresOn": m46, "linkExpiry": MessageLookupByLibrary.simpleMessage("Lenkeutløp"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("Lenken har utløpt"), @@ -1170,8 +1170,8 @@ class MessageLookup extends MessageLookupByLibrary { "linkPerson": MessageLookupByLibrary.simpleMessage("Knytt til person"), "linkPersonCaption": MessageLookupByLibrary.simpleMessage("for bedre delingsopplevelse"), - "linkPersonToEmail": m46, - "linkPersonToEmailConfirmation": m47, + "linkPersonToEmail": m47, + "linkPersonToEmailConfirmation": m48, "livePhotos": MessageLookupByLibrary.simpleMessage("Live-bilder"), "loadMessage1": MessageLookupByLibrary.simpleMessage( "Du kan dele abonnementet med familien din"), @@ -1256,7 +1256,7 @@ class MessageLookup extends MessageLookupByLibrary { "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), "me": MessageLookupByLibrary.simpleMessage("Meg"), - "memoryCount": m48, + "memoryCount": m49, "merchandise": MessageLookupByLibrary.simpleMessage("Varer"), "mergeWithExisting": MessageLookupByLibrary.simpleMessage("Slå sammen med eksisterende"), @@ -1288,13 +1288,13 @@ class MessageLookup extends MessageLookupByLibrary { "mostRecent": MessageLookupByLibrary.simpleMessage("Nyeste"), "mostRelevant": MessageLookupByLibrary.simpleMessage("Mest relevant"), "mountains": MessageLookupByLibrary.simpleMessage("Over åsene"), - "moveItem": m49, + "moveItem": m50, "moveSelectedPhotosToOneDate": MessageLookupByLibrary.simpleMessage( "Flytt valgte bilder til en dato"), "moveToAlbum": MessageLookupByLibrary.simpleMessage("Flytt til album"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("Flytt til skjult album"), - "movedSuccessfullyTo": m50, + "movedSuccessfullyTo": m51, "movedToTrash": MessageLookupByLibrary.simpleMessage("Flyttet til papirkurven"), "movingFilesToAlbum": @@ -1348,10 +1348,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Ingen resultater"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Ingen resultater funnet"), - "noSuggestionsForPerson": m51, + "noSuggestionsForPerson": m52, "noSystemLockFound": MessageLookupByLibrary.simpleMessage("Ingen systemlås funnet"), - "notPersonLabel": m52, + "notPersonLabel": m53, "notThisPerson": MessageLookupByLibrary.simpleMessage("Ikke denne personen?"), "nothingSharedWithYouYet": @@ -1365,7 +1365,7 @@ class MessageLookup extends MessageLookupByLibrary { "På ente"), "onTheRoad": MessageLookupByLibrary.simpleMessage("På veien igjen"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), - "onlyFamilyAdminCanChangeCode": m53, + "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Bare de"), "oops": MessageLookupByLibrary.simpleMessage("Oisann"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( @@ -1396,7 +1396,7 @@ class MessageLookup extends MessageLookupByLibrary { "pairingComplete": MessageLookupByLibrary.simpleMessage("Sammenkobling fullført"), "panorama": MessageLookupByLibrary.simpleMessage("Panora"), - "partyWithThem": m54, + "partyWithThem": m55, "passKeyPendingVerification": MessageLookupByLibrary.simpleMessage("Bekreftelse venter fortsatt"), "passkey": MessageLookupByLibrary.simpleMessage("Tilgangsnøkkel"), @@ -1406,7 +1406,7 @@ class MessageLookup extends MessageLookupByLibrary { "passwordChangedSuccessfully": MessageLookupByLibrary.simpleMessage("Passordet ble endret"), "passwordLock": MessageLookupByLibrary.simpleMessage("Passordlås"), - "passwordStrength": m55, + "passwordStrength": m56, "passwordStrengthInfo": MessageLookupByLibrary.simpleMessage( "Passordstyrken beregnes basert på passordets lengde, brukte tegn, og om passordet finnes blant de 10 000 mest brukte passordene"), "passwordWarning": MessageLookupByLibrary.simpleMessage( @@ -1417,7 +1417,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Betaling feilet"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Betalingen din mislyktes. Kontakt kundestøtte og vi vil hjelpe deg!"), - "paymentFailedTalkToProvider": m56, + "paymentFailedTalkToProvider": m57, "pendingItems": MessageLookupByLibrary.simpleMessage("Ventende elementer"), "pendingSync": @@ -1431,16 +1431,16 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Slette for godt"), "permanentlyDeleteFromDevice": MessageLookupByLibrary.simpleMessage("Slett permanent fra enhet?"), - "personIsAge": m57, + "personIsAge": m58, "personName": MessageLookupByLibrary.simpleMessage("Personnavn"), - "personTurningAge": m58, + "personTurningAge": m59, "pets": MessageLookupByLibrary.simpleMessage("Pelsvenner"), "photoDescriptions": MessageLookupByLibrary.simpleMessage("Bildebeskrivelser"), "photoGridSize": MessageLookupByLibrary.simpleMessage("Bilderutenettstørrelse"), "photoSmallCase": MessageLookupByLibrary.simpleMessage("bilde"), - "photocountPhotos": m59, + "photocountPhotos": m60, "photos": MessageLookupByLibrary.simpleMessage("Bilder"), "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( @@ -1456,7 +1456,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Spill av album på TV"), "playOriginal": MessageLookupByLibrary.simpleMessage("Spill av original"), - "playStoreFreeTrialValidTill": m61, + "playStoreFreeTrialValidTill": m62, "playStream": MessageLookupByLibrary.simpleMessage("Spill av strøm"), "playstoreSubscription": MessageLookupByLibrary.simpleMessage("PlayStore abonnement"), @@ -1469,14 +1469,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Vennligst kontakt kundestøtte hvis problemet vedvarer"), - "pleaseEmailUsAt": m62, + "pleaseEmailUsAt": m63, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage("Vennligst gi tillatelser"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Vennligst logg inn igjen"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage("Velg hurtiglenker å fjerne"), - "pleaseSendTheLogsTo": m63, + "pleaseSendTheLogsTo": m64, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Vennligst prøv igjen"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1490,7 +1490,7 @@ class MessageLookup extends MessageLookupByLibrary { "Vennligst vent en stund før du prøver på nytt"), "pleaseWaitThisWillTakeAWhile": MessageLookupByLibrary.simpleMessage( "Vennligst vent, dette vil ta litt tid."), - "posingWithThem": m64, + "posingWithThem": m65, "preparingLogs": MessageLookupByLibrary.simpleMessage("Forbereder logger..."), "preserveMore": MessageLookupByLibrary.simpleMessage("Behold mer"), @@ -1508,7 +1508,7 @@ class MessageLookup extends MessageLookupByLibrary { "proceed": MessageLookupByLibrary.simpleMessage("Fortsett"), "processed": MessageLookupByLibrary.simpleMessage("Behandlet"), "processing": MessageLookupByLibrary.simpleMessage("Behandler"), - "processingImport": m65, + "processingImport": m66, "processingVideos": MessageLookupByLibrary.simpleMessage("Behandler videoer"), "publicLinkCreated": @@ -1521,9 +1521,9 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("Opprett sak"), "rateTheApp": MessageLookupByLibrary.simpleMessage("Vurder appen"), "rateUs": MessageLookupByLibrary.simpleMessage("Vurder oss"), - "rateUsOnStore": m66, + "rateUsOnStore": m67, "reassignMe": MessageLookupByLibrary.simpleMessage("Tildel \"Meg\""), - "reassignedToName": m67, + "reassignedToName": m68, "reassigningLoading": MessageLookupByLibrary.simpleMessage("Tildeler..."), "recover": MessageLookupByLibrary.simpleMessage("Gjenopprett"), @@ -1534,7 +1534,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Gjenopprett konto"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("Gjenoppretting startet"), - "recoveryInitiatedDesc": m68, + "recoveryInitiatedDesc": m69, "recoveryKey": MessageLookupByLibrary.simpleMessage("Gjenopprettingsnøkkel"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( @@ -1549,12 +1549,12 @@ class MessageLookup extends MessageLookupByLibrary { "Gjenopprettingsnøkkel bekreftet"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Gjenopprettingsnøkkelen er den eneste måten å gjenopprette bildene dine på hvis du glemmer passordet ditt. Du finner gjenopprettingsnøkkelen din i Innstillinger > Konto.\n\nVennligst skriv inn gjenopprettingsnøkkelen din her for å bekrefte at du har lagret den riktig."), - "recoveryReady": m69, + "recoveryReady": m70, "recoverySuccessful": MessageLookupByLibrary.simpleMessage( "Gjenopprettingen var vellykket!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "En betrodd kontakt prøver å få tilgang til kontoen din"), - "recoveryWarningBody": m70, + "recoveryWarningBody": m71, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "Den gjeldende enheten er ikke kraftig nok til å verifisere passordet ditt, men vi kan regenerere på en måte som fungerer på alle enheter.\n\nVennligst logg inn med gjenopprettingsnøkkelen og regenerer passordet (du kan bruke den samme igjen om du vil)."), "recreatePasswordTitle": @@ -1570,7 +1570,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Gi denne koden til vennene dine"), "referralStep2": MessageLookupByLibrary.simpleMessage( "De registrerer seg for en betalt plan"), - "referralStep3": m71, + "referralStep3": m72, "referrals": MessageLookupByLibrary.simpleMessage("Vervinger"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Vervinger er for øyeblikket satt på pause"), @@ -1601,7 +1601,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Fjern lenke"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Fjern deltaker"), - "removeParticipantBody": m72, + "removeParticipantBody": m73, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Fjern etikett for person"), "removePublicLink": @@ -1622,7 +1622,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("Gi nytt filnavn"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Forny abonnement"), - "renewsOn": m73, + "renewsOn": m74, "reportABug": MessageLookupByLibrary.simpleMessage("Rapporter en feil"), "reportBug": MessageLookupByLibrary.simpleMessage("Rapporter feil"), "resendEmail": @@ -1648,7 +1648,7 @@ class MessageLookup extends MessageLookupByLibrary { "reviewSuggestions": MessageLookupByLibrary.simpleMessage("Gjennomgå forslag"), "right": MessageLookupByLibrary.simpleMessage("Høyre"), - "roadtripWithThem": m74, + "roadtripWithThem": m75, "rotate": MessageLookupByLibrary.simpleMessage("Roter"), "rotateLeft": MessageLookupByLibrary.simpleMessage("Roter mot venstre"), "rotateRight": MessageLookupByLibrary.simpleMessage("Roter mot høyre"), @@ -1703,8 +1703,8 @@ class MessageLookup extends MessageLookupByLibrary { "Inviter folk, og du vil se alle bilder som deles av dem her"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "Folk vil vises her når behandling og synkronisering er fullført"), - "searchResultCount": m75, - "searchSectionsLengthMismatch": m76, + "searchResultCount": m76, + "searchSectionsLengthMismatch": m77, "security": MessageLookupByLibrary.simpleMessage("Sikkerhet"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Se offentlige albumlenker i appen"), @@ -1752,9 +1752,9 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeRemovedFromThisPerson": MessageLookupByLibrary.simpleMessage( "Valgte elementer fjernes fra denne personen, men blir ikke slettet fra biblioteket ditt."), - "selectedPhotos": m77, - "selectedPhotosWithYours": m78, - "selfiesWithThem": m79, + "selectedPhotos": m78, + "selectedPhotosWithYours": m79, + "selfiesWithThem": m80, "send": MessageLookupByLibrary.simpleMessage("Send"), "sendEmail": MessageLookupByLibrary.simpleMessage("Send e-post"), "sendInvite": MessageLookupByLibrary.simpleMessage("Send invitasjon"), @@ -1784,16 +1784,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Del et album nå"), "shareLink": MessageLookupByLibrary.simpleMessage("Del link"), - "shareMyVerificationID": m80, + "shareMyVerificationID": m81, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage("Del bare med de du vil"), - "shareTextConfirmOthersVerificationID": m81, + "shareTextConfirmOthersVerificationID": m82, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Last ned Ente slik at vi lett kan dele bilder og videoer av original kvalitet\n\nhttps://ente.io"), - "shareTextReferralCode": m82, + "shareTextReferralCode": m83, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Del med brukere som ikke har Ente"), - "shareWithPeopleSectionTitle": m83, + "shareWithPeopleSectionTitle": m84, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("Del ditt første album"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1804,7 +1804,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Nye delte bilder"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Motta varsler når noen legger til et bilde i et delt album som du er en del av"), - "sharedWith": m84, + "sharedWith": m85, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Delt med meg"), "sharedWithYou": MessageLookupByLibrary.simpleMessage("Delt med deg"), "sharing": MessageLookupByLibrary.simpleMessage("Deler..."), @@ -1820,11 +1820,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Logg ut andre enheter"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Jeg godtar bruksvilkårene og personvernreglene"), - "singleFileDeleteFromDevice": m85, + "singleFileDeleteFromDevice": m86, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Den vil bli slettet fra alle album."), - "singleFileInBothLocalAndRemote": m86, - "singleFileInRemoteOnly": m87, + "singleFileInBothLocalAndRemote": m87, + "singleFileInRemoteOnly": m88, "skip": MessageLookupByLibrary.simpleMessage("Hopp over"), "social": MessageLookupByLibrary.simpleMessage("Sosial"), "someItemsAreInBothEnteAndYourDevice": @@ -1858,8 +1858,8 @@ class MessageLookup extends MessageLookupByLibrary { "sortNewestFirst": MessageLookupByLibrary.simpleMessage("Nyeste først"), "sortOldestFirst": MessageLookupByLibrary.simpleMessage("Eldste først"), "sparkleSuccess": MessageLookupByLibrary.simpleMessage("✨ Suksess"), - "sportsWithThem": m88, - "spotlightOnThem": m89, + "sportsWithThem": m89, + "spotlightOnThem": m90, "spotlightOnYourself": MessageLookupByLibrary.simpleMessage("Fremhev deg selv"), "startAccountRecoveryTitle": @@ -1874,15 +1874,15 @@ class MessageLookup extends MessageLookupByLibrary { "storage": MessageLookupByLibrary.simpleMessage("Lagring"), "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("Familie"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("Deg"), - "storageInGB": m90, + "storageInGB": m91, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Lagringsplassen er full"), - "storageUsageInfo": m91, + "storageUsageInfo": m92, "streamDetails": MessageLookupByLibrary.simpleMessage("Strømmedetaljer"), "strongStrength": MessageLookupByLibrary.simpleMessage("Sterkt"), - "subAlreadyLinkedErrMessage": m92, - "subWillBeCancelledOn": m93, + "subAlreadyLinkedErrMessage": m93, + "subWillBeCancelledOn": m94, "subscribe": MessageLookupByLibrary.simpleMessage("Abonner"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Du trenger et aktivt betalt abonnement for å aktivere deling."), @@ -1900,7 +1900,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Foreslå funksjoner"), "sunrise": MessageLookupByLibrary.simpleMessage("På horisonten"), "support": MessageLookupByLibrary.simpleMessage("Brukerstøtte"), - "syncProgress": m94, + "syncProgress": m95, "syncStopped": MessageLookupByLibrary.simpleMessage("Synkronisering stoppet"), "syncing": MessageLookupByLibrary.simpleMessage("Synkroniserer..."), @@ -1913,7 +1913,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Trykk for å låse opp"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Trykk for å laste opp"), - "tapToUploadIsIgnoredDue": m95, + "tapToUploadIsIgnoredDue": m96, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Det ser ut som noe gikk galt. Prøv på nytt etter en stund. Hvis feilen vedvarer, kontakt kundestøtte."), "terminate": MessageLookupByLibrary.simpleMessage("Avslutte"), @@ -1936,7 +1936,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Disse elementene vil bli slettet fra enheten din."), - "theyAlsoGetXGb": m96, + "theyAlsoGetXGb": m97, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "De vil bli slettet fra alle album."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( @@ -1954,12 +1954,12 @@ class MessageLookup extends MessageLookupByLibrary { "Dette bildet har ingen exif-data"), "thisIsMeExclamation": MessageLookupByLibrary.simpleMessage("Dette er meg!"), - "thisIsPersonVerificationId": m97, + "thisIsPersonVerificationId": m98, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage( "Dette er din bekreftelses-ID"), "thisWeekThroughTheYears": MessageLookupByLibrary.simpleMessage("Denne uka gjennom årene"), - "thisWeekXYearsAgo": m98, + "thisWeekXYearsAgo": m99, "thisWillLogYouOutOfTheFollowingDevice": MessageLookupByLibrary.simpleMessage( "Dette vil logge deg ut av følgende enhet:"), @@ -1971,7 +1971,7 @@ class MessageLookup extends MessageLookupByLibrary { "thisWillRemovePublicLinksOfAllSelectedQuickLinks": MessageLookupByLibrary.simpleMessage( "Dette fjerner de offentlige lenkene av alle valgte hurtiglenker."), - "throughTheYears": m99, + "throughTheYears": m100, "toEnableAppLockPleaseSetupDevicePasscodeOrScreen": MessageLookupByLibrary.simpleMessage( "For å aktivere applås, vennligst angi passord eller skjermlås i systeminnstillingene."), @@ -1985,13 +1985,13 @@ class MessageLookup extends MessageLookupByLibrary { "total": MessageLookupByLibrary.simpleMessage("totalt"), "totalSize": MessageLookupByLibrary.simpleMessage("Total størrelse"), "trash": MessageLookupByLibrary.simpleMessage("Papirkurv"), - "trashDaysLeft": m100, + "trashDaysLeft": m101, "trim": MessageLookupByLibrary.simpleMessage("Beskjær"), - "tripInYear": m101, - "tripToLocation": m102, + "tripInYear": m102, + "tripToLocation": m103, "trustedContacts": MessageLookupByLibrary.simpleMessage("Betrodde kontakter"), - "trustedInviteBody": m103, + "trustedInviteBody": m104, "tryAgain": MessageLookupByLibrary.simpleMessage("Prøv igjen"), "turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage( "Slå på sikkerhetskopi for å automatisk laste opp filer lagt til denne enhetsmappen i Ente."), @@ -2009,7 +2009,7 @@ class MessageLookup extends MessageLookupByLibrary { "Tofaktorautentisering ble tilbakestilt"), "twofactorSetup": MessageLookupByLibrary.simpleMessage("Oppsett av to-faktor"), - "typeOfGallerGallerytypeIsNotSupportedForRename": m104, + "typeOfGallerGallerytypeIsNotSupportedForRename": m105, "unarchive": MessageLookupByLibrary.simpleMessage("Opphev arkivering"), "unarchiveAlbum": MessageLookupByLibrary.simpleMessage("Gjenopprett album"), @@ -2033,10 +2033,10 @@ class MessageLookup extends MessageLookupByLibrary { "updatingFolderSelection": MessageLookupByLibrary.simpleMessage("Oppdaterer mappevalg..."), "upgrade": MessageLookupByLibrary.simpleMessage("Oppgrader"), - "uploadIsIgnoredDueToIgnorereason": m105, + "uploadIsIgnoredDueToIgnorereason": m106, "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage( "Laster opp filer til albumet..."), - "uploadingMultipleMemories": m106, + "uploadingMultipleMemories": m107, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage("Bevarer 1 minne..."), "upto50OffUntil4thDec": MessageLookupByLibrary.simpleMessage( @@ -2056,7 +2056,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Bruk valgt bilde"), "usedSpace": MessageLookupByLibrary.simpleMessage("Benyttet lagringsplass"), - "validTill": m107, + "validTill": m108, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Bekreftelse mislyktes, vennligst prøv igjen"), @@ -2065,7 +2065,7 @@ class MessageLookup extends MessageLookupByLibrary { "verify": MessageLookupByLibrary.simpleMessage("Bekreft"), "verifyEmail": MessageLookupByLibrary.simpleMessage("Bekreft e-postadresse"), - "verifyEmailID": m108, + "verifyEmailID": m109, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("Bekreft"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("Bekreft tilgangsnøkkel"), @@ -2102,7 +2102,7 @@ class MessageLookup extends MessageLookupByLibrary { "weDontSupportEditingPhotosAndAlbumsThatYouDont": MessageLookupByLibrary.simpleMessage( "Vi støtter ikke redigering av bilder og album som du ikke eier ennå"), - "weHaveSendEmailTo": m110, + "weHaveSendEmailTo": m112, "weakStrength": MessageLookupByLibrary.simpleMessage("Svakt"), "welcomeBack": MessageLookupByLibrary.simpleMessage("Velkommen tilbake!"), @@ -2111,7 +2111,7 @@ class MessageLookup extends MessageLookupByLibrary { "Betrodd kontakt kan hjelpe til med å gjenopprette dine data."), "yearShort": MessageLookupByLibrary.simpleMessage("år"), "yearly": MessageLookupByLibrary.simpleMessage("Årlig"), - "yearsAgo": m111, + "yearsAgo": m113, "yes": MessageLookupByLibrary.simpleMessage("Ja"), "yesCancel": MessageLookupByLibrary.simpleMessage("Ja, avslutt"), "yesConvertToViewer": @@ -2125,7 +2125,7 @@ class MessageLookup extends MessageLookupByLibrary { "yesResetPerson": MessageLookupByLibrary.simpleMessage("Ja, tilbakestill person"), "you": MessageLookupByLibrary.simpleMessage("Deg"), - "youAndThem": m112, + "youAndThem": m114, "youAreOnAFamilyPlan": MessageLookupByLibrary.simpleMessage( "Du har et familieabonnement!"), "youAreOnTheLatestVersion": MessageLookupByLibrary.simpleMessage( @@ -2144,7 +2144,7 @@ class MessageLookup extends MessageLookupByLibrary { "Du kan ikke dele med deg selv"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage( "Du har ingen arkiverte elementer."), - "youHaveSuccessfullyFreedUp": m113, + "youHaveSuccessfullyFreedUp": m115, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage( "Brukeren din har blitt slettet"), "yourMap": MessageLookupByLibrary.simpleMessage("Ditt kart"), diff --git a/mobile/lib/generated/intl/messages_pl.dart b/mobile/lib/generated/intl/messages_pl.dart index b867e16f6c..5ed2068dcd 100644 --- a/mobile/lib/generated/intl/messages_pl.dart +++ b/mobile/lib/generated/intl/messages_pl.dart @@ -83,161 +83,161 @@ class MessageLookup extends MessageLookupByLibrary { static String m26(count, formattedSize) => "${count} plików, każdy po ${formattedSize}"; - static String m27(newEmail) => "Adres e-mail został zmieniony na ${newEmail}"; + static String m28(newEmail) => "Adres e-mail został zmieniony na ${newEmail}"; - static String m29(email) => + static String m30(email) => "${email} nie posiada konta Ente.\n\nWyślij im zaproszenie do udostępniania zdjęć."; - static String m31(text) => "Znaleziono dodatkowe zdjęcia dla ${text}"; - - static String m33(count, formattedNumber) => - "${Intl.plural(count, one: '1 plikowi', other: '${formattedNumber} plikom')} na tym urządzeniu została bezpiecznie utworzona kopia zapasowa"; + static String m32(text) => "Znaleziono dodatkowe zdjęcia dla ${text}"; static String m34(count, formattedNumber) => + "${Intl.plural(count, one: '1 plikowi', other: '${formattedNumber} plikom')} na tym urządzeniu została bezpiecznie utworzona kopia zapasowa"; + + static String m35(count, formattedNumber) => "${Intl.plural(count, one: '1 plikowi', other: '${formattedNumber} plikom')} w tym albumie została bezpiecznie utworzona kopia zapasowa"; - static String m35(storageAmountInGB) => + static String m36(storageAmountInGB) => "${storageAmountInGB} GB za każdym razem, gdy ktoś zarejestruje się w płatnym planie i użyje twojego kodu"; - static String m36(endDate) => "Okres próbny ważny do ${endDate}"; + static String m37(endDate) => "Okres próbny ważny do ${endDate}"; - static String m38(sizeInMBorGB) => "Zwolnij ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "Zwolnij ${sizeInMBorGB}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Przetwarzanie ${currentlyProcessing} / ${totalCount}"; - static String m42(count) => + static String m43(count) => "${Intl.plural(count, one: '${count} element', few: '${count} elementy', many: '${count} elementów', other: '${count} elementu')}"; - static String m44(email) => + static String m45(email) => "${email} zaprosił Cię do zostania zaufanym kontaktem"; - static String m45(expiryTime) => "Link wygaśnie ${expiryTime}"; + static String m46(expiryTime) => "Link wygaśnie ${expiryTime}"; - static String m50(albumName) => "Pomyślnie przeniesiono do ${albumName}"; + static String m51(albumName) => "Pomyślnie przeniesiono do ${albumName}"; - static String m51(personName) => "Brak sugestii dla ${personName}"; + static String m52(personName) => "Brak sugestii dla ${personName}"; - static String m52(name) => "Nie ${name}?"; + static String m53(name) => "Nie ${name}?"; - static String m53(familyAdminEmail) => + static String m54(familyAdminEmail) => "Skontaktuj się z ${familyAdminEmail}, aby zmienić swój kod."; - static String m55(passwordStrengthValue) => + static String m56(passwordStrengthValue) => "Siła hasła: ${passwordStrengthValue}"; - static String m56(providerName) => + static String m57(providerName) => "Porozmawiaj ze wsparciem ${providerName} jeśli zostałeś obciążony"; - static String m61(endDate) => + static String m62(endDate) => "Bezpłatny okres próbny ważny do ${endDate}.\nNastępnie możesz wybrać płatny plan."; - static String m62(toEmail) => + static String m63(toEmail) => "Prosimy o kontakt mailowy pod adresem ${toEmail}"; - static String m63(toEmail) => "Prosimy wysłać logi do ${toEmail}"; + static String m64(toEmail) => "Prosimy wysłać logi do ${toEmail}"; - static String m65(folderName) => "Przetwarzanie ${folderName}..."; + static String m66(folderName) => "Przetwarzanie ${folderName}..."; - static String m66(storeName) => "Oceń nas na ${storeName}"; + static String m67(storeName) => "Oceń nas na ${storeName}"; - static String m68(days, email) => + static String m69(days, email) => "Możesz uzyskać dostęp do konta po dniu ${days} dni. Powiadomienie zostanie wysłane na ${email}."; - static String m69(email) => + static String m70(email) => "Możesz teraz odzyskać konto ${email} poprzez ustawienie nowego hasła."; - static String m70(email) => "${email} próbuje odzyskać Twoje konto."; + static String m71(email) => "${email} próbuje odzyskać Twoje konto."; - static String m71(storageInGB) => + static String m72(storageInGB) => "3. Oboje otrzymujecie ${storageInGB} GB* za darmo"; - static String m72(userEmail) => + static String m73(userEmail) => "${userEmail} zostanie usunięty z tego udostępnionego albumu\n\nWszelkie dodane przez nich zdjęcia zostaną usunięte z albumu"; - static String m73(endDate) => "Subskrypcja odnowi się ${endDate}"; + static String m74(endDate) => "Subskrypcja odnowi się ${endDate}"; - static String m75(count) => + static String m76(count) => "${Intl.plural(count, one: 'Znaleziono ${count} wynik', few: 'Znaleziono ${count} wyniki', other: 'Znaleziono ${count} wyników')}"; - static String m76(snapshotLength, searchLength) => + static String m77(snapshotLength, searchLength) => "Niezgodność długości sekcji: ${snapshotLength} != ${searchLength}"; - static String m77(count) => "Wybrano ${count}"; + static String m78(count) => "Wybrano ${count}"; - static String m78(count, yourCount) => + static String m79(count, yourCount) => "Wybrano ${count} (twoich ${yourCount})"; - static String m80(verificationID) => + static String m81(verificationID) => "Oto mój identyfikator weryfikacyjny: ${verificationID} dla ente.io."; - static String m81(verificationID) => + static String m82(verificationID) => "Hej, czy możesz potwierdzić, że to jest Twój identyfikator weryfikacyjny ente.io: ${verificationID}"; - static String m82(referralCode, referralStorageInGB) => + static String m83(referralCode, referralStorageInGB) => "Kod polecający: ${referralCode} \n\nZastosuj go w: Ustawienia → Ogólne → Polecanie, aby otrzymać ${referralStorageInGB} GB za darmo po zarejestrowaniu się w płatnym planie\n\nhttps://ente.io"; - static String m83(numberOfPeople) => + static String m84(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Udostępnione określonym osobom', one: 'Udostępnione 1 osobie', other: 'Udostępnione ${numberOfPeople} osobom')}"; - static String m84(emailIDs) => "Udostępnione z ${emailIDs}"; - - static String m85(fileType) => - "Ten ${fileType} zostanie usunięty z Twojego urządzenia."; + static String m85(emailIDs) => "Udostępnione z ${emailIDs}"; static String m86(fileType) => + "Ten ${fileType} zostanie usunięty z Twojego urządzenia."; + + static String m87(fileType) => "Ten ${fileType} jest zarówno w Ente, jak i na twoim urządzeniu."; - static String m87(fileType) => "Ten ${fileType} zostanie usunięty z Ente."; + static String m88(fileType) => "Ten ${fileType} zostanie usunięty z Ente."; - static String m90(storageAmountInGB) => "${storageAmountInGB} GB"; + static String m91(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m91( + static String m92( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "Użyto ${usedAmount} ${usedStorageUnit} z ${totalAmount} ${totalStorageUnit}"; - static String m92(id) => + static String m93(id) => "Twoje ${id} jest już połączony z innym kontem Ente.\nJeśli chcesz użyć swojego ${id} za pomocą tego konta, skontaktuj się z naszym wsparciem technicznym"; - static String m93(endDate) => + static String m94(endDate) => "Twoja subskrypcja zostanie anulowana dnia ${endDate}"; - static String m94(completed, total) => + static String m95(completed, total) => "Zachowano ${completed}/${total} wspomnień"; - static String m95(ignoreReason) => + static String m96(ignoreReason) => "Naciśnij, aby przesłać, przesyłanie jest obecnie ignorowane z powodu ${ignoreReason}"; - static String m96(storageAmountInGB) => + static String m97(storageAmountInGB) => "Oni również otrzymują ${storageAmountInGB} GB"; - static String m97(email) => "To jest identyfikator weryfikacyjny ${email}"; + static String m98(email) => "To jest identyfikator weryfikacyjny ${email}"; - static String m100(count) => + static String m101(count) => "${Intl.plural(count, zero: 'Wkrótce', one: '1 dzień', few: '${count} dni', other: '${count} dni')}"; - static String m103(email) => + static String m104(email) => "Zostałeś zaproszony do bycia dziedzicznym kontaktem przez ${email}."; - static String m104(galleryType) => + static String m105(galleryType) => "Typ galerii ${galleryType} nie jest obsługiwany dla zmiany nazwy"; - static String m105(ignoreReason) => + static String m106(ignoreReason) => "Przesyłanie jest ignorowane z powodu ${ignoreReason}"; - static String m106(count) => "Zachowywanie ${count} wspomnień..."; + static String m107(count) => "Zachowywanie ${count} wspomnień..."; - static String m107(endDate) => "Ważne do ${endDate}"; + static String m108(endDate) => "Ważne do ${endDate}"; - static String m108(email) => "Zweryfikuj ${email}"; + static String m109(email) => "Zweryfikuj ${email}"; - static String m110(email) => + static String m112(email) => "Wysłaliśmy wiadomość na adres ${email}"; - static String m111(count) => + static String m113(count) => "${Intl.plural(count, one: '${count} rok temu', few: '${count} lata temu', many: '${count} lat temu', other: '${count} lata temu')}"; - static String m113(storageSaved) => "Pomyślnie zwolniłeś/aś ${storageSaved}!"; + static String m115(storageSaved) => "Pomyślnie zwolniłeś/aś ${storageSaved}!"; final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { @@ -770,8 +770,8 @@ class MessageLookup extends MessageLookupByLibrary { "email": MessageLookupByLibrary.simpleMessage("Adres e-mail"), "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage( "Adres e-mail jest już zarejestrowany."), - "emailChangedTo": m27, - "emailNoEnteAccount": m29, + "emailChangedTo": m28, + "emailNoEnteAccount": m30, "emailNotRegistered": MessageLookupByLibrary.simpleMessage( "Adres e-mail nie jest zarejestrowany."), "emailVerificationToggle": @@ -854,7 +854,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Eksportuj swoje dane"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage( "Znaleziono dodatkowe zdjęcia"), - "extraPhotosFoundFor": m31, + "extraPhotosFoundFor": m32, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Twarz jeszcze nie zgrupowana, prosimy wrócić później"), "faceRecognition": @@ -906,8 +906,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Rodzaje plików"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Typy plików i nazwy"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m34, + "filesBackedUpInAlbum": m35, "filesDeleted": MessageLookupByLibrary.simpleMessage("Pliki usunięto"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage("Pliki zapisane do galerii"), @@ -923,13 +923,13 @@ class MessageLookup extends MessageLookupByLibrary { "foundFaces": MessageLookupByLibrary.simpleMessage("Znaleziono twarze"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage( "Bezpłatna pamięć, którą odebrano"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m36, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("Darmowa pamięć użyteczna"), "freeTrial": MessageLookupByLibrary.simpleMessage("Darmowy okres próbny"), - "freeTrialValidTill": m36, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage( "Zwolnij miejsce na urządzeniu"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( @@ -941,7 +941,7 @@ class MessageLookup extends MessageLookupByLibrary { "general": MessageLookupByLibrary.simpleMessage("Ogólne"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Generowanie kluczy szyfrujących..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Przejdź do ustawień"), "googlePlayId": @@ -1024,7 +1024,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Wygląda na to, że coś poszło nie tak. Spróbuj ponownie po pewnym czasie. Jeśli błąd będzie się powtarzał, skontaktuj się z naszym zespołem pomocy technicznej."), - "itemCount": m42, + "itemCount": m43, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Elementy pokazują liczbę dni pozostałych przed trwałym usunięciem"), @@ -1054,7 +1054,7 @@ class MessageLookup extends MessageLookupByLibrary { "legacy": MessageLookupByLibrary.simpleMessage("Dziedzictwo"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Odziedziczone konta"), - "legacyInvite": m44, + "legacyInvite": m45, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "Dziedzictwo pozwala zaufanym kontaktom na dostęp do Twojego konta w razie Twojej nieobecności."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( @@ -1069,7 +1069,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Połącz adres e-mail"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Aktywny"), "linkExpired": MessageLookupByLibrary.simpleMessage("Wygasł"), - "linkExpiresOn": m45, + "linkExpiresOn": m46, "linkExpiry": MessageLookupByLibrary.simpleMessage("Wygaśnięcie linku"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("Link wygasł"), "linkNeverExpires": MessageLookupByLibrary.simpleMessage("Nigdy"), @@ -1196,7 +1196,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Przenieś do albumu"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("Przenieś do ukrytego albumu"), - "movedSuccessfullyTo": m50, + "movedSuccessfullyTo": m51, "movedToTrash": MessageLookupByLibrary.simpleMessage("Przeniesiono do kosza"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1249,10 +1249,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Brak wyników"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Nie znaleziono wyników"), - "noSuggestionsForPerson": m51, + "noSuggestionsForPerson": m52, "noSystemLockFound": MessageLookupByLibrary.simpleMessage( "Nie znaleziono blokady systemowej"), - "notPersonLabel": m52, + "notPersonLabel": m53, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( "Nic Ci jeszcze nie udostępniono"), "nothingToSeeHere": MessageLookupByLibrary.simpleMessage( @@ -1263,7 +1263,7 @@ class MessageLookup extends MessageLookupByLibrary { "onEnte": MessageLookupByLibrary.simpleMessage("W ente"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), - "onlyFamilyAdminCanChangeCode": m53, + "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Tylko te"), "oops": MessageLookupByLibrary.simpleMessage("Ups"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( @@ -1300,7 +1300,7 @@ class MessageLookup extends MessageLookupByLibrary { "passwordChangedSuccessfully": MessageLookupByLibrary.simpleMessage( "Hasło zostało pomyślnie zmienione"), "passwordLock": MessageLookupByLibrary.simpleMessage("Blokada hasłem"), - "passwordStrength": m55, + "passwordStrength": m56, "passwordStrengthInfo": MessageLookupByLibrary.simpleMessage( "Siła hasła jest obliczana, biorąc pod uwagę długość hasła, użyte znaki, i czy hasło pojawi się w 10 000 najczęściej używanych haseł"), "passwordWarning": MessageLookupByLibrary.simpleMessage( @@ -1311,7 +1311,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Płatność się nie powiodła"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Niestety Twoja płatność nie powiodła się. Skontaktuj się z pomocą techniczną, a my Ci pomożemy!"), - "paymentFailedTalkToProvider": m56, + "paymentFailedTalkToProvider": m57, "pendingItems": MessageLookupByLibrary.simpleMessage("Oczekujące elementy"), "pendingSync": @@ -1341,7 +1341,7 @@ class MessageLookup extends MessageLookupByLibrary { "pinLock": MessageLookupByLibrary.simpleMessage("Blokada PIN"), "playOnTv": MessageLookupByLibrary.simpleMessage( "Odtwórz album na telewizorze"), - "playStoreFreeTrialValidTill": m61, + "playStoreFreeTrialValidTill": m62, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("Subskrypcja PlayStore"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1353,14 +1353,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Skontaktuj się z pomocą techniczną, jeśli problem będzie się powtarzał"), - "pleaseEmailUsAt": m62, + "pleaseEmailUsAt": m63, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage( "Prosimy przyznać uprawnienia"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Zaloguj się ponownie"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Prosimy wybrać szybkie linki do usunięcia"), - "pleaseSendTheLogsTo": m63, + "pleaseSendTheLogsTo": m64, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Spróbuj ponownie"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1388,7 +1388,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Udostępnianie prywatne"), "proceed": MessageLookupByLibrary.simpleMessage("Kontynuuj"), "processed": MessageLookupByLibrary.simpleMessage("Przetworzone"), - "processingImport": m65, + "processingImport": m66, "publicLinkCreated": MessageLookupByLibrary.simpleMessage("Utworzono publiczny link"), "publicLinkEnabled": @@ -1398,7 +1398,7 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("Zgłoś"), "rateTheApp": MessageLookupByLibrary.simpleMessage("Oceń aplikację"), "rateUs": MessageLookupByLibrary.simpleMessage("Oceń nas"), - "rateUsOnStore": m66, + "rateUsOnStore": m67, "recover": MessageLookupByLibrary.simpleMessage("Odzyskaj"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Odzyskaj konto"), @@ -1407,7 +1407,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Odzyskaj konto"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("Odzyskiwanie rozpoczęte"), - "recoveryInitiatedDesc": m68, + "recoveryInitiatedDesc": m69, "recoveryKey": MessageLookupByLibrary.simpleMessage("Klucz odzyskiwania"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( @@ -1422,12 +1422,12 @@ class MessageLookup extends MessageLookupByLibrary { "Klucz odzyskiwania zweryfikowany"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Twój klucz odzyskiwania jest jedynym sposobem na odzyskanie zdjęć, jeśli zapomnisz hasła. Klucz odzyskiwania można znaleźć w Ustawieniach > Konto.\n\nWprowadź tutaj swój klucz odzyskiwania, aby sprawdzić, czy został zapisany poprawnie."), - "recoveryReady": m69, + "recoveryReady": m70, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("Odzyskano pomyślnie!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "Zaufany kontakt próbuje uzyskać dostęp do Twojego konta"), - "recoveryWarningBody": m70, + "recoveryWarningBody": m71, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "Obecne urządzenie nie jest wystarczająco wydajne, aby zweryfikować hasło, ale możemy je wygenerować w sposób działający na wszystkich urządzeniach.\n\nZaloguj się przy użyciu klucza odzyskiwania i wygeneruj nowe hasło (jeśli chcesz, możesz ponownie użyć tego samego)."), "recreatePasswordTitle": @@ -1443,7 +1443,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Przekaż ten kod swoim znajomym"), "referralStep2": MessageLookupByLibrary.simpleMessage("2. Wykupują płatny plan"), - "referralStep3": m71, + "referralStep3": m72, "referrals": MessageLookupByLibrary.simpleMessage("Polecenia"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Wysyłanie poleceń jest obecnie wstrzymane"), @@ -1473,7 +1473,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Usuń link"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Usuń użytkownika"), - "removeParticipantBody": m72, + "removeParticipantBody": m73, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Usuń etykietę osoby"), "removePublicLink": @@ -1494,7 +1494,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("Zmień nazwę pliku"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Odnów subskrypcję"), - "renewsOn": m73, + "renewsOn": m74, "reportABug": MessageLookupByLibrary.simpleMessage("Zgłoś błąd"), "reportBug": MessageLookupByLibrary.simpleMessage("Zgłoś błąd"), "resendEmail": @@ -1572,8 +1572,8 @@ class MessageLookup extends MessageLookupByLibrary { "Zaproś ludzi, a zobaczysz tutaj wszystkie udostępnione przez nich zdjęcia"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "Osoby będą wyświetlane tutaj po zakończeniu przetwarzania i synchronizacji"), - "searchResultCount": m75, - "searchSectionsLengthMismatch": m76, + "searchResultCount": m76, + "searchSectionsLengthMismatch": m77, "security": MessageLookupByLibrary.simpleMessage("Bezpieczeństwo"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Zobacz publiczne linki do albumów w aplikacji"), @@ -1606,8 +1606,8 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeDeletedFromAllAlbumsAndMoved": MessageLookupByLibrary.simpleMessage( "Wybrane elementy zostaną usunięte ze wszystkich albumów i przeniesione do kosza."), - "selectedPhotos": m77, - "selectedPhotosWithYours": m78, + "selectedPhotos": m78, + "selectedPhotosWithYours": m79, "send": MessageLookupByLibrary.simpleMessage("Wyślij"), "sendEmail": MessageLookupByLibrary.simpleMessage("Wyślij e-mail"), "sendInvite": @@ -1636,16 +1636,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Udostępnij teraz album"), "shareLink": MessageLookupByLibrary.simpleMessage("Udostępnij link"), - "shareMyVerificationID": m80, + "shareMyVerificationID": m81, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Udostępnij tylko ludziom, którym chcesz"), - "shareTextConfirmOthersVerificationID": m81, + "shareTextConfirmOthersVerificationID": m82, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Pobierz Ente, abyśmy mogli łatwo udostępniać zdjęcia i wideo w oryginalnej jakości\n\nhttps://ente.io"), - "shareTextReferralCode": m82, + "shareTextReferralCode": m83, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Udostępnij użytkownikom bez konta Ente"), - "shareWithPeopleSectionTitle": m83, + "shareWithPeopleSectionTitle": m84, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage( "Udostępnij swój pierwszy album"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1658,7 +1658,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Nowe udostępnione zdjęcia"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Otrzymuj powiadomienia, gdy ktoś doda zdjęcie do udostępnionego albumu, którego jesteś częścią"), - "sharedWith": m84, + "sharedWith": m85, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Udostępnione ze mną"), "sharedWithYou": @@ -1675,11 +1675,11 @@ class MessageLookup extends MessageLookupByLibrary { "Wyloguj z pozostałych urządzeń"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Akceptuję warunki korzystania z usługi i politykę prywatności"), - "singleFileDeleteFromDevice": m85, + "singleFileDeleteFromDevice": m86, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "To zostanie usunięte ze wszystkich albumów."), - "singleFileInBothLocalAndRemote": m86, - "singleFileInRemoteOnly": m87, + "singleFileInBothLocalAndRemote": m87, + "singleFileInRemoteOnly": m88, "skip": MessageLookupByLibrary.simpleMessage("Pomiń"), "social": MessageLookupByLibrary.simpleMessage("Społeczność"), "someItemsAreInBothEnteAndYourDevice": @@ -1727,13 +1727,13 @@ class MessageLookup extends MessageLookupByLibrary { "storage": MessageLookupByLibrary.simpleMessage("Pamięć"), "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("Rodzina"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("Ty"), - "storageInGB": m90, + "storageInGB": m91, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Przekroczono limit pamięci"), - "storageUsageInfo": m91, + "storageUsageInfo": m92, "strongStrength": MessageLookupByLibrary.simpleMessage("Silne"), - "subAlreadyLinkedErrMessage": m92, - "subWillBeCancelledOn": m93, + "subAlreadyLinkedErrMessage": m93, + "subWillBeCancelledOn": m94, "subscribe": MessageLookupByLibrary.simpleMessage("Subskrybuj"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Potrzebujesz aktywnej płatnej subskrypcji, aby włączyć udostępnianie."), @@ -1750,7 +1750,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("Zaproponuj funkcje"), "support": MessageLookupByLibrary.simpleMessage("Wsparcie techniczne"), - "syncProgress": m94, + "syncProgress": m95, "syncStopped": MessageLookupByLibrary.simpleMessage("Synchronizacja zatrzymana"), "syncing": MessageLookupByLibrary.simpleMessage("Synchronizowanie..."), @@ -1763,7 +1763,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Naciśnij, aby odblokować"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Naciśnij, aby przesłać"), - "tapToUploadIsIgnoredDue": m95, + "tapToUploadIsIgnoredDue": m96, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Wygląda na to, że coś poszło nie tak. Spróbuj ponownie po pewnym czasie. Jeśli błąd będzie się powtarzał, skontaktuj się z naszym zespołem pomocy technicznej."), "terminate": MessageLookupByLibrary.simpleMessage("Zakończ"), @@ -1787,7 +1787,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Te elementy zostaną usunięte z Twojego urządzenia."), - "theyAlsoGetXGb": m96, + "theyAlsoGetXGb": m97, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Zostaną one usunięte ze wszystkich albumów."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( @@ -1803,7 +1803,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Ten e-mail jest już używany"), "thisImageHasNoExifData": MessageLookupByLibrary.simpleMessage( "Ten obraz nie posiada danych exif"), - "thisIsPersonVerificationId": m97, + "thisIsPersonVerificationId": m98, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage( "To jest Twój Identyfikator Weryfikacji"), "thisWillLogYouOutOfTheFollowingDevice": @@ -1827,11 +1827,11 @@ class MessageLookup extends MessageLookupByLibrary { "total": MessageLookupByLibrary.simpleMessage("ogółem"), "totalSize": MessageLookupByLibrary.simpleMessage("Całkowity rozmiar"), "trash": MessageLookupByLibrary.simpleMessage("Kosz"), - "trashDaysLeft": m100, + "trashDaysLeft": m101, "trim": MessageLookupByLibrary.simpleMessage("Przytnij"), "trustedContacts": MessageLookupByLibrary.simpleMessage("Zaufane kontakty"), - "trustedInviteBody": m103, + "trustedInviteBody": m104, "tryAgain": MessageLookupByLibrary.simpleMessage("Spróbuj ponownie"), "turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage( "Włącz kopię zapasową, aby automatycznie przesyłać pliki dodane do folderu urządzenia do Ente."), @@ -1851,7 +1851,7 @@ class MessageLookup extends MessageLookupByLibrary { "Pomyślnie zresetowano uwierzytelnianie dwustopniowe"), "twofactorSetup": MessageLookupByLibrary.simpleMessage( "Uwierzytelnianie dwustopniowe"), - "typeOfGallerGallerytypeIsNotSupportedForRename": m104, + "typeOfGallerGallerytypeIsNotSupportedForRename": m105, "unarchive": MessageLookupByLibrary.simpleMessage("Przywróć z archiwum"), "unarchiveAlbum": @@ -1876,10 +1876,10 @@ class MessageLookup extends MessageLookupByLibrary { "updatingFolderSelection": MessageLookupByLibrary.simpleMessage( "Aktualizowanie wyboru folderu..."), "upgrade": MessageLookupByLibrary.simpleMessage("Ulepsz"), - "uploadIsIgnoredDueToIgnorereason": m105, + "uploadIsIgnoredDueToIgnorereason": m106, "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage( "Przesyłanie plików do albumu..."), - "uploadingMultipleMemories": m106, + "uploadingMultipleMemories": m107, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage( "Zachowywanie 1 wspomnienia..."), "upto50OffUntil4thDec": MessageLookupByLibrary.simpleMessage( @@ -1897,7 +1897,7 @@ class MessageLookup extends MessageLookupByLibrary { "useSelectedPhoto": MessageLookupByLibrary.simpleMessage("Użyj zaznaczone zdjęcie"), "usedSpace": MessageLookupByLibrary.simpleMessage("Zajęta przestrzeń"), - "validTill": m107, + "validTill": m108, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Weryfikacja nie powiodła się, spróbuj ponownie"), @@ -1906,7 +1906,7 @@ class MessageLookup extends MessageLookupByLibrary { "verify": MessageLookupByLibrary.simpleMessage("Zweryfikuj"), "verifyEmail": MessageLookupByLibrary.simpleMessage("Zweryfikuj adres e-mail"), - "verifyEmailID": m108, + "verifyEmailID": m109, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("Zweryfikuj"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("Zweryfikuj klucz dostępu"), @@ -1944,7 +1944,7 @@ class MessageLookup extends MessageLookupByLibrary { "weDontSupportEditingPhotosAndAlbumsThatYouDont": MessageLookupByLibrary.simpleMessage( "Nie wspieramy edycji zdjęć i albumów, których jeszcze nie posiadasz"), - "weHaveSendEmailTo": m110, + "weHaveSendEmailTo": m112, "weakStrength": MessageLookupByLibrary.simpleMessage("Słabe"), "welcomeBack": MessageLookupByLibrary.simpleMessage("Witaj ponownie!"), "whatsNew": MessageLookupByLibrary.simpleMessage("Co nowego"), @@ -1952,7 +1952,7 @@ class MessageLookup extends MessageLookupByLibrary { "Zaufany kontakt może pomóc w odzyskaniu Twoich danych."), "yearShort": MessageLookupByLibrary.simpleMessage("r"), "yearly": MessageLookupByLibrary.simpleMessage("Rocznie"), - "yearsAgo": m111, + "yearsAgo": m113, "yes": MessageLookupByLibrary.simpleMessage("Tak"), "yesCancel": MessageLookupByLibrary.simpleMessage("Tak, anuluj"), "yesConvertToViewer": @@ -1984,7 +1984,7 @@ class MessageLookup extends MessageLookupByLibrary { "Nie możesz udostępnić samemu sobie"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage( "Nie masz żadnych zarchiwizowanych elementów."), - "youHaveSuccessfullyFreedUp": m113, + "youHaveSuccessfullyFreedUp": m115, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage( "Twoje konto zostało usunięte"), "yourMap": MessageLookupByLibrary.simpleMessage("Twoja mapa"), diff --git a/mobile/lib/generated/intl/messages_pt.dart b/mobile/lib/generated/intl/messages_pt.dart index a4759cb05c..4e2af81ffd 100644 --- a/mobile/lib/generated/intl/messages_pt.dart +++ b/mobile/lib/generated/intl/messages_pt.dart @@ -88,208 +88,208 @@ class MessageLookup extends MessageLookupByLibrary { static String m26(count, formattedSize) => "${count} arquivos, ${formattedSize} cada"; - static String m27(newEmail) => "Email alterado para ${newEmail}"; + static String m28(newEmail) => "Email alterado para ${newEmail}"; - static String m28(email) => "${email} não possui uma conta Ente."; + static String m29(email) => "${email} não possui uma conta Ente."; - static String m29(email) => + static String m30(email) => "${email} não possui uma conta Ente.\n\nEnvie um convite para compartilhar fotos."; - static String m30(name) => "Abraçando ${name}"; + static String m31(name) => "Abraçando ${name}"; - static String m31(text) => "Fotos extras encontradas para ${text}"; + static String m32(text) => "Fotos extras encontradas para ${text}"; - static String m32(name) => "Tendo banquete com ${name}"; - - static String m33(count, formattedNumber) => - "${Intl.plural(count, one: '1 arquivo', other: '${formattedNumber} arquivos')} neste dispositivo teve um backup seguro"; + static String m33(name) => "Tendo banquete com ${name}"; static String m34(count, formattedNumber) => + "${Intl.plural(count, one: '1 arquivo', other: '${formattedNumber} arquivos')} neste dispositivo teve um backup seguro"; + + static String m35(count, formattedNumber) => "${Intl.plural(count, one: '1 arquivo', other: '${formattedNumber} arquivos')} neste álbum teve um backup seguro"; - static String m35(storageAmountInGB) => + static String m36(storageAmountInGB) => "${storageAmountInGB} GB sempre que alguém se inscreve num plano pago e aplica o seu código"; - static String m36(endDate) => "Teste gratuito válido até ${endDate}"; + static String m37(endDate) => "Teste gratuito válido até ${endDate}"; - static String m38(sizeInMBorGB) => "Libertar ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "Libertar ${sizeInMBorGB}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Processando ${currentlyProcessing} / ${totalCount}"; - static String m41(name) => "Caminhando com ${name}"; + static String m42(name) => "Caminhando com ${name}"; - static String m42(count) => + static String m43(count) => "${Intl.plural(count, one: '${count} item', other: '${count} itens')}"; - static String m43(name) => "Últimos momentos com ${name}"; + static String m44(name) => "Últimos momentos com ${name}"; - static String m44(email) => + static String m45(email) => "${email} convidou você para ser um contato confiável"; - static String m45(expiryTime) => "O link expirará em ${expiryTime}"; + static String m46(expiryTime) => "O link expirará em ${expiryTime}"; - static String m46(email) => "Vincular pessoa a ${email}"; + static String m47(email) => "Vincular pessoa a ${email}"; - static String m47(personName, email) => + static String m48(personName, email) => "Isso vinculará ${personName} a ${email}"; - static String m50(albumName) => "Movido com sucesso para ${albumName}"; + static String m51(albumName) => "Movido com sucesso para ${albumName}"; - static String m51(personName) => "Sem sugestões para ${personName}"; + static String m52(personName) => "Sem sugestões para ${personName}"; - static String m52(name) => "Não é ${name}?"; + static String m53(name) => "Não é ${name}?"; - static String m53(familyAdminEmail) => + static String m54(familyAdminEmail) => "Entre em contato com ${familyAdminEmail} para alterar o seu código."; - static String m54(name) => "Festejando com ${name}"; + static String m55(name) => "Festejando com ${name}"; - static String m55(passwordStrengthValue) => + static String m56(passwordStrengthValue) => "Força da palavra-passe: ${passwordStrengthValue}"; - static String m56(providerName) => + static String m57(providerName) => "Por favor, fale com o suporte ${providerName} se você foi cobrado"; - static String m57(name, age) => "${name} está com ${age}!"; + static String m58(name, age) => "${name} está com ${age}!"; - static String m58(name, age) => "${name} terá ${age} em breve"; - - static String m59(count) => - "${Intl.plural(count, zero: 'Sem fotos', one: '1 foto', other: '${count} fotos')}"; + static String m59(name, age) => "${name} terá ${age} em breve"; static String m60(count) => + "${Intl.plural(count, zero: 'Sem fotos', one: '1 foto', other: '${count} fotos')}"; + + static String m61(count) => "${Intl.plural(count, zero: '0 fotos', one: '1 foto', other: '${count} fotos')}"; - static String m61(endDate) => + static String m62(endDate) => "Teste gratuito válido até ${endDate}.\nVocê pode escolher um plano pago depois."; - static String m62(toEmail) => + static String m63(toEmail) => "Por favor, envie-nos um e-mail para ${toEmail}"; - static String m63(toEmail) => "Por favor, envie os logs para \n${toEmail}"; + static String m64(toEmail) => "Por favor, envie os logs para \n${toEmail}"; - static String m64(name) => "Fazendo pose com ${name}"; + static String m65(name) => "Fazendo pose com ${name}"; - static String m65(folderName) => "Processando ${folderName}..."; + static String m66(folderName) => "Processando ${folderName}..."; - static String m66(storeName) => "Avalie-nos em ${storeName}"; + static String m67(storeName) => "Avalie-nos em ${storeName}"; - static String m67(name) => "Atribuído a ${name}"; + static String m68(name) => "Atribuído a ${name}"; - static String m68(days, email) => + static String m69(days, email) => "Você poderá acessar a conta após ${days} dias. Uma notificação será enviada para ${email}."; - static String m69(email) => + static String m70(email) => "Você pode recuperar a conta com e-mail ${email} por definir uma nova senha."; - static String m70(email) => "${email} está tentando recuperar sua conta."; + static String m71(email) => "${email} está tentando recuperar sua conta."; - static String m71(storageInGB) => "3. Ambos ganham ${storageInGB} GB* grátis"; + static String m72(storageInGB) => "3. Ambos ganham ${storageInGB} GB* grátis"; - static String m72(userEmail) => + static String m73(userEmail) => "${userEmail} será removido deste álbum compartilhado\n\nQuaisquer fotos adicionadas por elas também serão removidas do álbum"; - static String m73(endDate) => "A subscrição é renovada em ${endDate}"; + static String m74(endDate) => "A subscrição é renovada em ${endDate}"; - static String m74(name) => "Viajando de carro com ${name}"; + static String m75(name) => "Viajando de carro com ${name}"; - static String m75(count) => + static String m76(count) => "${Intl.plural(count, one: '${count} ano atrás', other: '${count} anos atrás')}"; - static String m76(snapshotLength, searchLength) => + static String m77(snapshotLength, searchLength) => "Incompatibilidade de comprimento de seções: ${snapshotLength} != ${searchLength}"; - static String m77(count) => "${count} selecionado(s)"; + static String m78(count) => "${count} selecionado(s)"; - static String m78(count, yourCount) => + static String m79(count, yourCount) => "${count} selecionado(s) (${yourCount} seus)"; - static String m79(name) => "Tirando selfies com ${name}"; - - static String m80(verificationID) => - "Aqui está o meu ID de verificação: ${verificationID} para ente.io."; + static String m80(name) => "Tirando selfies com ${name}"; static String m81(verificationID) => + "Aqui está o meu ID de verificação: ${verificationID} para ente.io."; + + static String m82(verificationID) => "Ei, você pode confirmar que este é seu ID de verificação do ente.io: ${verificationID}"; - static String m82(referralCode, referralStorageInGB) => + static String m83(referralCode, referralStorageInGB) => "Insira o código de referência: ${referralCode} \n\nAplique-o em Configurações → Geral → Indicações para obter ${referralStorageInGB} GB gratuitamente após a sua inscrição para um plano pago\n\nhttps://ente.io"; - static String m83(numberOfPeople) => + static String m84(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Compartilhe com pessoas específicas', one: 'Compartilhado com 1 pessoa', other: 'Compartilhado com ${numberOfPeople} pessoas')}"; - static String m84(emailIDs) => "Partilhado com ${emailIDs}"; - - static String m85(fileType) => - "Este ${fileType} será eliminado do seu dispositivo."; + static String m85(emailIDs) => "Partilhado com ${emailIDs}"; static String m86(fileType) => + "Este ${fileType} será eliminado do seu dispositivo."; + + static String m87(fileType) => "Este ${fileType} encontra-se tanto no Ente como no seu dispositivo."; - static String m87(fileType) => "Este ${fileType} será eliminado do Ente."; + static String m88(fileType) => "Este ${fileType} será eliminado do Ente."; - static String m88(name) => "Jogando esportes com ${name}"; + static String m89(name) => "Jogando esportes com ${name}"; - static String m89(name) => "Destacar ${name}"; + static String m90(name) => "Destacar ${name}"; - static String m90(storageAmountInGB) => "${storageAmountInGB} GB"; + static String m91(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m91( + static String m92( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} de ${totalAmount} ${totalStorageUnit} usado"; - static String m92(id) => + static String m93(id) => "Seu ${id} já está vinculado a outra conta Ente.\nSe você gostaria de usar seu ${id} com esta conta, por favor contate nosso suporte\'\'"; - static String m93(endDate) => "A sua subscrição será cancelada em ${endDate}"; + static String m94(endDate) => "A sua subscrição será cancelada em ${endDate}"; - static String m94(completed, total) => + static String m95(completed, total) => "${completed}/${total} memórias preservadas"; - static String m95(ignoreReason) => + static String m96(ignoreReason) => "Toque para enviar, atualmente o envio é ignorado devido a ${ignoreReason}"; - static String m96(storageAmountInGB) => + static String m97(storageAmountInGB) => "Eles também recebem ${storageAmountInGB} GB"; - static String m97(email) => "Este é o ID de verificação de ${email}"; + static String m98(email) => "Este é o ID de verificação de ${email}"; - static String m98(count) => + static String m99(count) => "${Intl.plural(count, one: 'Esta semana, ${count} ano atrás', other: 'Esta semana, ${count} anos atrás')}"; - static String m99(dateFormat) => "${dateFormat} com o passar dos anos"; + static String m100(dateFormat) => "${dateFormat} com o passar dos anos"; - static String m100(count) => + static String m101(count) => "${Intl.plural(count, zero: 'Brevemente', one: '1 dia', other: '${count} dias')}"; - static String m101(year) => "Viajem em ${year}"; + static String m102(year) => "Viajem em ${year}"; - static String m102(location) => "Viajem à ${location}"; + static String m103(location) => "Viajem à ${location}"; - static String m103(email) => + static String m104(email) => "Você foi convidado para ser um contato legado por ${email}."; - static String m104(galleryType) => + static String m105(galleryType) => "Tipo de galeria ${galleryType} não é permitido para renomear"; - static String m105(ignoreReason) => "Envio ignorado devido à ${ignoreReason}"; + static String m106(ignoreReason) => "Envio ignorado devido à ${ignoreReason}"; - static String m106(count) => "Preservar ${count} memórias..."; + static String m107(count) => "Preservar ${count} memórias..."; - static String m107(endDate) => "Válido até ${endDate}"; + static String m108(endDate) => "Válido até ${endDate}"; - static String m108(email) => "Verificar e-mail"; + static String m109(email) => "Verificar e-mail"; - static String m110(email) => + static String m112(email) => "Enviamos um e-mail para ${email}"; - static String m111(count) => + static String m113(count) => "${Intl.plural(count, one: '${count} ano atrás', other: '${count} anos atrás')}"; - static String m112(name) => "Você e ${name}"; + static String m114(name) => "Você e ${name}"; - static String m113(storageSaved) => + static String m115(storageSaved) => "Você liberou ${storageSaved} com sucesso!"; final messages = _notInlinedMessages(_notInlinedMessages); @@ -842,14 +842,14 @@ class MessageLookup extends MessageLookupByLibrary { "Edições para localização só serão vistas dentro do Ente"), "eligible": MessageLookupByLibrary.simpleMessage("elegível"), "email": MessageLookupByLibrary.simpleMessage("Email"), - "emailChangedTo": m27, - "emailDoesNotHaveEnteAccount": m28, - "emailNoEnteAccount": m29, + "emailChangedTo": m28, + "emailDoesNotHaveEnteAccount": m29, + "emailNoEnteAccount": m30, "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("Verificação por e-mail"), "emailYourLogs": MessageLookupByLibrary.simpleMessage("Enviar logs por e-mail"), - "embracingThem": m30, + "embracingThem": m31, "emergencyContacts": MessageLookupByLibrary.simpleMessage("Contatos de emergência"), "empty": MessageLookupByLibrary.simpleMessage("Esvaziar"), @@ -926,7 +926,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Exportar os seus dados"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage( "Fotos adicionais encontradas"), - "extraPhotosFoundFor": m31, + "extraPhotosFoundFor": m32, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Rosto não agrupado ainda, volte aqui mais tarde"), "faceRecognition": @@ -965,7 +965,7 @@ class MessageLookup extends MessageLookupByLibrary { "faq": MessageLookupByLibrary.simpleMessage("Perguntas Frequentes"), "faqs": MessageLookupByLibrary.simpleMessage("Perguntas frequentes"), "favorite": MessageLookupByLibrary.simpleMessage("Favorito"), - "feastingWithThem": m32, + "feastingWithThem": m33, "feedback": MessageLookupByLibrary.simpleMessage("Opinião"), "file": MessageLookupByLibrary.simpleMessage("Arquivo"), "fileFailedToSaveToGallery": MessageLookupByLibrary.simpleMessage( @@ -979,8 +979,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Tipos de arquivo"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Tipos de arquivo e nomes"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m34, + "filesBackedUpInAlbum": m35, "filesDeleted": MessageLookupByLibrary.simpleMessage("Arquivos apagados"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage( @@ -999,12 +999,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Rostos encontrados"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage( "Armazenamento gratuito reclamado"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m36, "freeStorageUsable": MessageLookupByLibrary.simpleMessage( "Armazenamento livre utilizável"), "freeTrial": MessageLookupByLibrary.simpleMessage("Teste grátis"), - "freeTrialValidTill": m36, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage( "Libertar espaço no dispositivo"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( @@ -1016,7 +1016,7 @@ class MessageLookup extends MessageLookupByLibrary { "general": MessageLookupByLibrary.simpleMessage("Geral"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Gerando chaves de encriptação..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Ir para as definições"), "googlePlayId": @@ -1046,7 +1046,7 @@ class MessageLookup extends MessageLookupByLibrary { "hideSharedItemsFromHomeGallery": MessageLookupByLibrary.simpleMessage( "Ocultar itens compartilhados da galeria inicial"), "hiding": MessageLookupByLibrary.simpleMessage("Ocultando..."), - "hikingWithThem": m41, + "hikingWithThem": m42, "hostedAtOsmFrance": MessageLookupByLibrary.simpleMessage("Hospedado na OSM France"), "howItWorks": MessageLookupByLibrary.simpleMessage("Como funciona"), @@ -1103,7 +1103,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Parece que algo correu mal. Por favor, tente novamente após algum tempo. Se o erro persistir, contacte a nossa equipa de apoio."), - "itemCount": m42, + "itemCount": m43, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Os itens mostram o número de dias restantes antes da eliminação permanente"), @@ -1124,7 +1124,7 @@ class MessageLookup extends MessageLookupByLibrary { "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage( "Por favor, ajude-nos com esta informação"), "language": MessageLookupByLibrary.simpleMessage("Idioma"), - "lastTimeWithThem": m43, + "lastTimeWithThem": m44, "lastUpdated": MessageLookupByLibrary.simpleMessage("Última atualização"), "lastYearsTrip": @@ -1139,7 +1139,7 @@ class MessageLookup extends MessageLookupByLibrary { "legacy": MessageLookupByLibrary.simpleMessage("Legado"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Contas legadas"), - "legacyInvite": m44, + "legacyInvite": m45, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "O legado permite que contatos confiáveis acessem sua conta em sua ausência."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( @@ -1156,7 +1156,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("para compartilhar rápido"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Ativado"), "linkExpired": MessageLookupByLibrary.simpleMessage("Expirado"), - "linkExpiresOn": m45, + "linkExpiresOn": m46, "linkExpiry": MessageLookupByLibrary.simpleMessage("Link expirado"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("O link expirou"), @@ -1164,8 +1164,8 @@ class MessageLookup extends MessageLookupByLibrary { "linkPerson": MessageLookupByLibrary.simpleMessage("Vincular pessoa"), "linkPersonCaption": MessageLookupByLibrary.simpleMessage( "para melhor experiência de compartilhamento"), - "linkPersonToEmail": m46, - "linkPersonToEmailConfirmation": m47, + "linkPersonToEmail": m47, + "linkPersonToEmailConfirmation": m48, "livePhotos": MessageLookupByLibrary.simpleMessage("Fotos Em Tempo Real"), "loadMessage1": MessageLookupByLibrary.simpleMessage( @@ -1289,7 +1289,7 @@ class MessageLookup extends MessageLookupByLibrary { "moveToAlbum": MessageLookupByLibrary.simpleMessage("Mover para álbum"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("Mover para álbum oculto"), - "movedSuccessfullyTo": m50, + "movedSuccessfullyTo": m51, "movedToTrash": MessageLookupByLibrary.simpleMessage("Mover para o lixo"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1343,10 +1343,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Nenhum resultado"), "noResultsFound": MessageLookupByLibrary.simpleMessage( "Não foram encontrados resultados"), - "noSuggestionsForPerson": m51, + "noSuggestionsForPerson": m52, "noSystemLockFound": MessageLookupByLibrary.simpleMessage( "Nenhum bloqueio de sistema encontrado"), - "notPersonLabel": m52, + "notPersonLabel": m53, "notThisPerson": MessageLookupByLibrary.simpleMessage("Não é esta pessoa?"), "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( @@ -1360,7 +1360,7 @@ class MessageLookup extends MessageLookupByLibrary { "Em ente"), "onTheRoad": MessageLookupByLibrary.simpleMessage("Na estrada de novo"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), - "onlyFamilyAdminCanChangeCode": m53, + "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Apenas eles"), "oops": MessageLookupByLibrary.simpleMessage("Oops"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( @@ -1391,7 +1391,7 @@ class MessageLookup extends MessageLookupByLibrary { "pairingComplete": MessageLookupByLibrary.simpleMessage("Emparelhamento concluído"), "panorama": MessageLookupByLibrary.simpleMessage("Panorama"), - "partyWithThem": m54, + "partyWithThem": m55, "passKeyPendingVerification": MessageLookupByLibrary.simpleMessage( "A verificação ainda está pendente"), "passkey": MessageLookupByLibrary.simpleMessage("Chave de acesso"), @@ -1402,7 +1402,7 @@ class MessageLookup extends MessageLookupByLibrary { "Palavra-passe alterada com sucesso"), "passwordLock": MessageLookupByLibrary.simpleMessage("Bloqueio da palavra-passe"), - "passwordStrength": m55, + "passwordStrength": m56, "passwordStrengthInfo": MessageLookupByLibrary.simpleMessage( "A força da palavra-passe é calculada tendo em conta o comprimento da palavra-passe, os caracteres utilizados e se a palavra-passe aparece ou não nas 10.000 palavras-passe mais utilizadas"), "passwordWarning": MessageLookupByLibrary.simpleMessage( @@ -1413,7 +1413,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("O pagamento falhou"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Infelizmente o seu pagamento falhou. Entre em contato com o suporte e nós ajudaremos você!"), - "paymentFailedTalkToProvider": m56, + "paymentFailedTalkToProvider": m57, "pendingItems": MessageLookupByLibrary.simpleMessage("Itens pendentes"), "pendingSync": MessageLookupByLibrary.simpleMessage("Sincronização pendente"), @@ -1426,21 +1426,21 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Eliminar permanentemente"), "permanentlyDeleteFromDevice": MessageLookupByLibrary.simpleMessage( "Apagar permanentemente do dispositivo?"), - "personIsAge": m57, + "personIsAge": m58, "personName": MessageLookupByLibrary.simpleMessage("Nome da pessoa"), - "personTurningAge": m58, + "personTurningAge": m59, "pets": MessageLookupByLibrary.simpleMessage("Companhia de pelos"), "photoDescriptions": MessageLookupByLibrary.simpleMessage("Descrições das fotos"), "photoGridSize": MessageLookupByLibrary.simpleMessage("Tamanho da grelha de fotos"), "photoSmallCase": MessageLookupByLibrary.simpleMessage("foto"), - "photocountPhotos": m59, + "photocountPhotos": m60, "photos": MessageLookupByLibrary.simpleMessage("Fotos"), "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "As fotos adicionadas por si serão removidas do álbum"), - "photosCount": m60, + "photosCount": m61, "photosKeepRelativeTimeDifference": MessageLookupByLibrary.simpleMessage( "As fotos mantêm a diferença de tempo relativo"), @@ -1452,7 +1452,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Reproduzir álbum na TV"), "playOriginal": MessageLookupByLibrary.simpleMessage("Reproduzir original"), - "playStoreFreeTrialValidTill": m61, + "playStoreFreeTrialValidTill": m62, "playStream": MessageLookupByLibrary.simpleMessage("Reproduzir transmissão"), "playstoreSubscription": @@ -1466,14 +1466,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Por favor, contate o suporte se o problema persistir"), - "pleaseEmailUsAt": m62, + "pleaseEmailUsAt": m63, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage( "Por favor, conceda as permissões"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage( "Por favor, inicie sessão novamente"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Selecione links rápidos para remover"), - "pleaseSendTheLogsTo": m63, + "pleaseSendTheLogsTo": m64, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Por favor, tente novamente"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1488,7 +1488,7 @@ class MessageLookup extends MessageLookupByLibrary { "Por favor, aguarde algum tempo antes de tentar novamente"), "pleaseWaitThisWillTakeAWhile": MessageLookupByLibrary.simpleMessage( "Aguarde um pouco, isso talvez leve um tempo."), - "posingWithThem": m64, + "posingWithThem": m65, "preparingLogs": MessageLookupByLibrary.simpleMessage("Preparando logs..."), "preserveMore": MessageLookupByLibrary.simpleMessage("Preservar mais"), @@ -1506,7 +1506,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Partilha privada"), "proceed": MessageLookupByLibrary.simpleMessage("Continuar"), "processing": MessageLookupByLibrary.simpleMessage("Processando"), - "processingImport": m65, + "processingImport": m66, "processingVideos": MessageLookupByLibrary.simpleMessage("Processando vídeos"), "publicLinkCreated": @@ -1519,9 +1519,9 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("Abrir ticket"), "rateTheApp": MessageLookupByLibrary.simpleMessage("Avaliar aplicação"), "rateUs": MessageLookupByLibrary.simpleMessage("Avalie-nos"), - "rateUsOnStore": m66, + "rateUsOnStore": m67, "reassignMe": MessageLookupByLibrary.simpleMessage("Reatribuir \"Eu\""), - "reassignedToName": m67, + "reassignedToName": m68, "reassigningLoading": MessageLookupByLibrary.simpleMessage("Reatribuindo..."), "recover": MessageLookupByLibrary.simpleMessage("Recuperar"), @@ -1532,7 +1532,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Recuperar conta"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("A recuperação iniciou"), - "recoveryInitiatedDesc": m68, + "recoveryInitiatedDesc": m69, "recoveryKey": MessageLookupByLibrary.simpleMessage("Chave de recuperação"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( @@ -1547,12 +1547,12 @@ class MessageLookup extends MessageLookupByLibrary { "Chave de recuperação verificada"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "A sua chave de recuperação é a única forma de recuperar as suas fotografias se se esquecer da sua palavra-passe. Pode encontrar a sua chave de recuperação em Definições > Conta.\n\n\nIntroduza aqui a sua chave de recuperação para verificar se a guardou corretamente."), - "recoveryReady": m69, + "recoveryReady": m70, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("Recuperação bem sucedida!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "Um contato confiável está tentando acessar sua conta"), - "recoveryWarningBody": m70, + "recoveryWarningBody": m71, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "O dispositivo atual não é suficientemente poderoso para verificar a palavra-passe, mas podemos regenerar novamente de uma maneira que funcione no seu dispositivo.\n\nPor favor, iniciar sessão utilizando código de recuperação e gerar novamente a sua palavra-passe (pode utilizar a mesma se quiser)."), "recreatePasswordTitle": @@ -1568,7 +1568,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Envie este código aos seus amigos"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Eles se inscrevem em um plano pago"), - "referralStep3": m71, + "referralStep3": m72, "referrals": MessageLookupByLibrary.simpleMessage("Referências"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "As referências estão atualmente em pausa"), @@ -1597,7 +1597,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Remover link"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Remover participante"), - "removeParticipantBody": m72, + "removeParticipantBody": m73, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Remover etiqueta da pessoa"), "removePublicLink": @@ -1617,7 +1617,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("Renomear arquivo"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Renovar subscrição"), - "renewsOn": m73, + "renewsOn": m74, "reportABug": MessageLookupByLibrary.simpleMessage("Reporte um bug"), "reportBug": MessageLookupByLibrary.simpleMessage("Reportar bug"), "resendEmail": MessageLookupByLibrary.simpleMessage("Reenviar e-mail"), @@ -1642,7 +1642,7 @@ class MessageLookup extends MessageLookupByLibrary { "reviewSuggestions": MessageLookupByLibrary.simpleMessage("Revisar sugestões"), "right": MessageLookupByLibrary.simpleMessage("Direita"), - "roadtripWithThem": m74, + "roadtripWithThem": m75, "rotate": MessageLookupByLibrary.simpleMessage("Rodar"), "rotateLeft": MessageLookupByLibrary.simpleMessage("Rodar para a esquerda"), @@ -1696,8 +1696,8 @@ class MessageLookup extends MessageLookupByLibrary { "Fotos de grupo que estão sendo tiradas em algum raio da foto"), "searchPeopleEmptySection": MessageLookupByLibrary.simpleMessage( "Convide pessoas e verá todas as fotos partilhadas por elas aqui"), - "searchResultCount": m75, - "searchSectionsLengthMismatch": m76, + "searchResultCount": m76, + "searchSectionsLengthMismatch": m77, "security": MessageLookupByLibrary.simpleMessage("Segurança"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Ver links de álbum compartilhado no aplicativo"), @@ -1747,9 +1747,9 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeRemovedFromThisPerson": MessageLookupByLibrary.simpleMessage( "Os itens selecionados serão removidos desta pessoa, entretanto não serão excluídos da sua biblioteca."), - "selectedPhotos": m77, - "selectedPhotosWithYours": m78, - "selfiesWithThem": m79, + "selectedPhotos": m78, + "selectedPhotosWithYours": m79, + "selfiesWithThem": m80, "send": MessageLookupByLibrary.simpleMessage("Enviar"), "sendEmail": MessageLookupByLibrary.simpleMessage("Enviar email"), "sendInvite": MessageLookupByLibrary.simpleMessage("Enviar convite"), @@ -1780,16 +1780,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Partilhar um álbum"), "shareLink": MessageLookupByLibrary.simpleMessage("Partilhar link"), - "shareMyVerificationID": m80, + "shareMyVerificationID": m81, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Partilhar apenas com as pessoas que deseja"), - "shareTextConfirmOthersVerificationID": m81, + "shareTextConfirmOthersVerificationID": m82, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Descarregue o Ente para poder partilhar facilmente fotografias e vídeos de qualidade original\n\n\nhttps://ente.io"), - "shareTextReferralCode": m82, + "shareTextReferralCode": m83, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Compartilhar com usuários que não usam Ente"), - "shareWithPeopleSectionTitle": m83, + "shareWithPeopleSectionTitle": m84, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage( "Partilhe o seu primeiro álbum"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1802,7 +1802,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Novas fotos partilhadas"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Receber notificações quando alguém adiciona uma foto a um álbum partilhado do qual faz parte"), - "sharedWith": m84, + "sharedWith": m85, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Partilhado comigo"), "sharedWithYou": @@ -1821,11 +1821,11 @@ class MessageLookup extends MessageLookupByLibrary { "Terminar a sessão noutros dispositivos"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Eu concordo com os termos de serviço e política de privacidade"), - "singleFileDeleteFromDevice": m85, + "singleFileDeleteFromDevice": m86, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Será eliminado de todos os álbuns."), - "singleFileInBothLocalAndRemote": m86, - "singleFileInRemoteOnly": m87, + "singleFileInBothLocalAndRemote": m87, + "singleFileInRemoteOnly": m88, "skip": MessageLookupByLibrary.simpleMessage("Pular"), "social": MessageLookupByLibrary.simpleMessage("Social"), "someItemsAreInBothEnteAndYourDevice": @@ -1861,8 +1861,8 @@ class MessageLookup extends MessageLookupByLibrary { "sortOldestFirst": MessageLookupByLibrary.simpleMessage("Mais antigos primeiro"), "sparkleSuccess": MessageLookupByLibrary.simpleMessage("✨ Sucesso"), - "sportsWithThem": m88, - "spotlightOnThem": m89, + "sportsWithThem": m89, + "spotlightOnThem": m90, "spotlightOnYourself": MessageLookupByLibrary.simpleMessage("Destacar si mesmo"), "startAccountRecoveryTitle": @@ -1877,15 +1877,15 @@ class MessageLookup extends MessageLookupByLibrary { "storage": MessageLookupByLibrary.simpleMessage("Armazenamento"), "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("Família"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("Tu"), - "storageInGB": m90, + "storageInGB": m91, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage( "Limite de armazenamento excedido"), - "storageUsageInfo": m91, + "storageUsageInfo": m92, "streamDetails": MessageLookupByLibrary.simpleMessage("Detalhes da transmissão"), "strongStrength": MessageLookupByLibrary.simpleMessage("Forte"), - "subAlreadyLinkedErrMessage": m92, - "subWillBeCancelledOn": m93, + "subAlreadyLinkedErrMessage": m93, + "subWillBeCancelledOn": m94, "subscribe": MessageLookupByLibrary.simpleMessage("Subscrever"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Você precisa de uma assinatura paga ativa para ativar o compartilhamento."), @@ -1903,7 +1903,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Sugerir recursos"), "sunrise": MessageLookupByLibrary.simpleMessage("No horizonte"), "support": MessageLookupByLibrary.simpleMessage("Suporte"), - "syncProgress": m94, + "syncProgress": m95, "syncStopped": MessageLookupByLibrary.simpleMessage("Sincronização interrompida"), "syncing": MessageLookupByLibrary.simpleMessage("Sincronizando..."), @@ -1915,7 +1915,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Toque para desbloquear"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Toque para enviar"), - "tapToUploadIsIgnoredDue": m95, + "tapToUploadIsIgnoredDue": m96, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Parece que algo correu mal. Por favor, tente novamente mais tarde. Se o erro persistir, entre em contacto com a nossa equipa de suporte."), "terminate": MessageLookupByLibrary.simpleMessage("Terminar"), @@ -1938,7 +1938,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Estes itens serão eliminados do seu dispositivo."), - "theyAlsoGetXGb": m96, + "theyAlsoGetXGb": m97, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Serão eliminados de todos os álbuns."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( @@ -1956,12 +1956,12 @@ class MessageLookup extends MessageLookupByLibrary { "Esta imagem não tem dados exif"), "thisIsMeExclamation": MessageLookupByLibrary.simpleMessage("Este é você!"), - "thisIsPersonVerificationId": m97, + "thisIsPersonVerificationId": m98, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage( "Este é o seu ID de verificação"), "thisWeekThroughTheYears": MessageLookupByLibrary.simpleMessage( "Esta semana com o passar dos anos"), - "thisWeekXYearsAgo": m98, + "thisWeekXYearsAgo": m99, "thisWillLogYouOutOfTheFollowingDevice": MessageLookupByLibrary.simpleMessage( "Irá desconectar a sua conta do seguinte dispositivo:"), @@ -1973,7 +1973,7 @@ class MessageLookup extends MessageLookupByLibrary { "thisWillRemovePublicLinksOfAllSelectedQuickLinks": MessageLookupByLibrary.simpleMessage( "Isto removerá links públicos de todos os links rápidos selecionados."), - "throughTheYears": m99, + "throughTheYears": m100, "toEnableAppLockPleaseSetupDevicePasscodeOrScreen": MessageLookupByLibrary.simpleMessage( "Para ativar o bloqueio de aplicações, configure o código de acesso do dispositivo ou o bloqueio de ecrã nas definições do sistema."), @@ -1987,13 +1987,13 @@ class MessageLookup extends MessageLookupByLibrary { "total": MessageLookupByLibrary.simpleMessage("total"), "totalSize": MessageLookupByLibrary.simpleMessage("Tamanho total"), "trash": MessageLookupByLibrary.simpleMessage("Lixo"), - "trashDaysLeft": m100, + "trashDaysLeft": m101, "trim": MessageLookupByLibrary.simpleMessage("Cortar"), - "tripInYear": m101, - "tripToLocation": m102, + "tripInYear": m102, + "tripToLocation": m103, "trustedContacts": MessageLookupByLibrary.simpleMessage("Contatos confiáveis"), - "trustedInviteBody": m103, + "trustedInviteBody": m104, "tryAgain": MessageLookupByLibrary.simpleMessage("Tente novamente"), "turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage( "Ative o backup para enviar automaticamente arquivos adicionados a esta pasta do dispositivo para o Ente."), @@ -2012,7 +2012,7 @@ class MessageLookup extends MessageLookupByLibrary { "Autenticação de dois fatores redefinida com êxito"), "twofactorSetup": MessageLookupByLibrary.simpleMessage( "Configuração de dois fatores"), - "typeOfGallerGallerytypeIsNotSupportedForRename": m104, + "typeOfGallerGallerytypeIsNotSupportedForRename": m105, "unarchive": MessageLookupByLibrary.simpleMessage("Desarquivar"), "unarchiveAlbum": MessageLookupByLibrary.simpleMessage("Desarquivar álbum"), @@ -2035,10 +2035,10 @@ class MessageLookup extends MessageLookupByLibrary { "updatingFolderSelection": MessageLookupByLibrary.simpleMessage( "Atualizando seleção de pasta..."), "upgrade": MessageLookupByLibrary.simpleMessage("Atualizar"), - "uploadIsIgnoredDueToIgnorereason": m105, + "uploadIsIgnoredDueToIgnorereason": m106, "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage( "Enviar ficheiros para o álbum..."), - "uploadingMultipleMemories": m106, + "uploadingMultipleMemories": m107, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage("Preservar 1 memória..."), "upto50OffUntil4thDec": MessageLookupByLibrary.simpleMessage( @@ -2056,7 +2056,7 @@ class MessageLookup extends MessageLookupByLibrary { "useSelectedPhoto": MessageLookupByLibrary.simpleMessage("Utilizar foto selecionada"), "usedSpace": MessageLookupByLibrary.simpleMessage("Espaço utilizado"), - "validTill": m107, + "validTill": m108, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Falha na verificação, por favor tente novamente"), @@ -2064,7 +2064,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("ID de Verificação"), "verify": MessageLookupByLibrary.simpleMessage("Verificar"), "verifyEmail": MessageLookupByLibrary.simpleMessage("Verificar email"), - "verifyEmailID": m108, + "verifyEmailID": m109, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("Verificar"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("Verificar chave de acesso"), @@ -2105,7 +2105,7 @@ class MessageLookup extends MessageLookupByLibrary { "weDontSupportEditingPhotosAndAlbumsThatYouDont": MessageLookupByLibrary.simpleMessage( "Não suportamos a edição de fotos e álbuns que ainda não possui"), - "weHaveSendEmailTo": m110, + "weHaveSendEmailTo": m112, "weakStrength": MessageLookupByLibrary.simpleMessage("Fraca"), "welcomeBack": MessageLookupByLibrary.simpleMessage("Bem-vindo(a) de volta!"), @@ -2114,7 +2114,7 @@ class MessageLookup extends MessageLookupByLibrary { "Um contato confiável pode ajudá-lo em recuperar seus dados."), "yearShort": MessageLookupByLibrary.simpleMessage("ano"), "yearly": MessageLookupByLibrary.simpleMessage("Anual"), - "yearsAgo": m111, + "yearsAgo": m113, "yes": MessageLookupByLibrary.simpleMessage("Sim"), "yesCancel": MessageLookupByLibrary.simpleMessage("Sim, cancelar"), "yesConvertToViewer": MessageLookupByLibrary.simpleMessage( @@ -2129,7 +2129,7 @@ class MessageLookup extends MessageLookupByLibrary { "yesResetPerson": MessageLookupByLibrary.simpleMessage("Sim, repor pessoa"), "you": MessageLookupByLibrary.simpleMessage("Tu"), - "youAndThem": m112, + "youAndThem": m114, "youAreOnAFamilyPlan": MessageLookupByLibrary.simpleMessage( "Você está em um plano familiar!"), "youAreOnTheLatestVersion": MessageLookupByLibrary.simpleMessage( @@ -2148,7 +2148,7 @@ class MessageLookup extends MessageLookupByLibrary { "Não podes partilhar contigo mesmo"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage( "Não tem nenhum item arquivado."), - "youHaveSuccessfullyFreedUp": m113, + "youHaveSuccessfullyFreedUp": m115, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage("A sua conta foi eliminada"), "yourMap": MessageLookupByLibrary.simpleMessage("Seu mapa"), diff --git a/mobile/lib/generated/intl/messages_pt_BR.dart b/mobile/lib/generated/intl/messages_pt_BR.dart index 80b6567ab0..13249c501e 100644 --- a/mobile/lib/generated/intl/messages_pt_BR.dart +++ b/mobile/lib/generated/intl/messages_pt_BR.dart @@ -97,227 +97,227 @@ class MessageLookup extends MessageLookupByLibrary { static String m26(count, formattedSize) => "${count} arquivos, ${formattedSize} cada"; - static String m114(name) => "Este e-mail já está vinculado a ${name}."; + static String m27(name) => "Este e-mail já está vinculado a ${name}."; - static String m27(newEmail) => "E-mail alterado para ${newEmail}"; + static String m28(newEmail) => "E-mail alterado para ${newEmail}"; - static String m28(email) => "${email} não possui uma conta Ente."; + static String m29(email) => "${email} não possui uma conta Ente."; - static String m29(email) => + static String m30(email) => "${email} não tem uma conta Ente.\n\nEnvie-os um convite para compartilhar fotos."; - static String m30(name) => "Abraçando ${name}"; + static String m31(name) => "Abraçando ${name}"; - static String m31(text) => "Fotos adicionais encontradas para ${text}"; + static String m32(text) => "Fotos adicionais encontradas para ${text}"; - static String m32(name) => "Tendo banquete com ${name}"; - - static String m33(count, formattedNumber) => - "${Intl.plural(count, one: '1 arquivo', other: '${formattedNumber} arquivos')} deste dispositivo foi copiado com segurança"; + static String m33(name) => "Tendo banquete com ${name}"; static String m34(count, formattedNumber) => + "${Intl.plural(count, one: '1 arquivo', other: '${formattedNumber} arquivos')} deste dispositivo foi copiado com segurança"; + + static String m35(count, formattedNumber) => "${Intl.plural(count, one: '1 arquivo', other: '${formattedNumber} arquivos')} deste álbum foi copiado com segurança"; - static String m35(storageAmountInGB) => + static String m36(storageAmountInGB) => "${storageAmountInGB} GB cada vez que alguém se inscrever a um plano pago e aplicar seu código"; - static String m36(endDate) => "A avaliação grátis acaba em ${endDate}"; + static String m37(endDate) => "A avaliação grátis acaba em ${endDate}"; - static String m37(count) => + static String m38(count) => "Você ainda pode acessá${Intl.plural(count, one: '-lo', other: '-los')} no Ente se você tiver uma assinatura ativa"; - static String m38(sizeInMBorGB) => "Liberar ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "Liberar ${sizeInMBorGB}"; - static String m39(count, formattedSize) => + static String m40(count, formattedSize) => "${Intl.plural(count, one: 'Ele pode excluído para liberar ${formattedSize}', other: 'Eles podem ser excluídos do dispositivo para liberar ${formattedSize}')}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Processando ${currentlyProcessing} / ${totalCount}"; - static String m41(name) => "Caminhando com ${name}"; + static String m42(name) => "Caminhando com ${name}"; - static String m42(count) => + static String m43(count) => "${Intl.plural(count, one: '${count} item', other: '${count} itens')}"; - static String m43(name) => "Últimos momentos com ${name}"; + static String m44(name) => "Últimos momentos com ${name}"; - static String m44(email) => + static String m45(email) => "${email} convidou você para ser um contato confiável"; - static String m45(expiryTime) => "O link expirará em ${expiryTime}"; + static String m46(expiryTime) => "O link expirará em ${expiryTime}"; - static String m46(email) => "Vincular pessoa a ${email}"; + static String m47(email) => "Vincular pessoa a ${email}"; - static String m47(personName, email) => + static String m48(personName, email) => "Isso vinculará ${personName} a ${email}"; - static String m48(count, formattedCount) => + static String m49(count, formattedCount) => "${Intl.plural(count, zero: 'sem memórias', one: '${formattedCount} memória', other: '${formattedCount} memórias')}"; - static String m49(count) => + static String m50(count) => "${Intl.plural(count, one: 'Mover item', other: 'Mover itens')}"; - static String m50(albumName) => "Movido com sucesso para ${albumName}"; + static String m51(albumName) => "Movido com sucesso para ${albumName}"; - static String m51(personName) => "Sem sugestões para ${personName}"; + static String m52(personName) => "Sem sugestões para ${personName}"; - static String m52(name) => "Não é ${name}?"; + static String m53(name) => "Não é ${name}?"; - static String m53(familyAdminEmail) => + static String m54(familyAdminEmail) => "Entre em contato com ${familyAdminEmail} para alterar o seu código."; - static String m54(name) => "Festejando com ${name}"; + static String m55(name) => "Festejando com ${name}"; - static String m55(passwordStrengthValue) => + static String m56(passwordStrengthValue) => "Força da senha: ${passwordStrengthValue}"; - static String m56(providerName) => + static String m57(providerName) => "Fale com o suporte ${providerName} se você foi cobrado"; - static String m57(name, age) => "${name} tem ${age} anos!"; + static String m58(name, age) => "${name} tem ${age} anos!"; - static String m58(name, age) => "${name} terá ${age} em breve"; - - static String m59(count) => - "${Intl.plural(count, zero: 'Sem fotos', one: '1 foto', other: '${count} fotos')}"; + static String m59(name, age) => "${name} terá ${age} em breve"; static String m60(count) => + "${Intl.plural(count, zero: 'Sem fotos', one: '1 foto', other: '${count} fotos')}"; + + static String m61(count) => "${Intl.plural(count, zero: '0 fotos', one: '1 foto', other: '${count} fotos')}"; - static String m61(endDate) => + static String m62(endDate) => "Avaliação grátis válida até ${endDate}.\nVocê pode alterar para um plano pago depois."; - static String m62(toEmail) => "Envie-nos um e-mail para ${toEmail}"; + static String m63(toEmail) => "Envie-nos um e-mail para ${toEmail}"; - static String m63(toEmail) => "Envie os registros para \n${toEmail}"; + static String m64(toEmail) => "Envie os registros para \n${toEmail}"; - static String m64(name) => "Fazendo pose com ${name}"; + static String m65(name) => "Fazendo pose com ${name}"; - static String m65(folderName) => "Processando ${folderName}..."; + static String m66(folderName) => "Processando ${folderName}..."; - static String m66(storeName) => "Avalie-nos no ${storeName}"; + static String m67(storeName) => "Avalie-nos no ${storeName}"; - static String m67(name) => "Atribuído a ${name}"; + static String m68(name) => "Atribuído a ${name}"; - static String m68(days, email) => + static String m69(days, email) => "Você poderá acessar a conta após ${days} dias. Uma notificação será enviada para ${email}."; - static String m69(email) => + static String m70(email) => "Você pode recuperar a conta com e-mail ${email} por definir uma nova senha."; - static String m70(email) => "${email} está tentando recuperar sua conta."; + static String m71(email) => "${email} está tentando recuperar sua conta."; - static String m71(storageInGB) => + static String m72(storageInGB) => "3. Ambos os dois ganham ${storageInGB} GB* grátis"; - static String m72(userEmail) => + static String m73(userEmail) => "${userEmail} será removido do álbum compartilhado\n\nQualquer foto adicionada por ele será removida."; - static String m73(endDate) => "Renovação de assinatura em ${endDate}"; + static String m74(endDate) => "Renovação de assinatura em ${endDate}"; - static String m74(name) => "Viajando de carro com ${name}"; + static String m75(name) => "Viajando de carro com ${name}"; - static String m75(count) => + static String m76(count) => "${Intl.plural(count, one: '${count} resultado encontrado', other: '${count} resultados encontrados')}"; - static String m76(snapshotLength, searchLength) => + static String m77(snapshotLength, searchLength) => "Incompatibilidade de comprimento de seções: ${snapshotLength} != ${searchLength}"; - static String m77(count) => "${count} selecionado(s)"; + static String m78(count) => "${count} selecionado(s)"; - static String m78(count, yourCount) => + static String m79(count, yourCount) => "${count} selecionado(s) (${yourCount} seus)"; - static String m79(name) => "Tirando selfies com ${name}"; - - static String m80(verificationID) => - "Aqui está meu ID de verificação para o ente.io: ${verificationID}"; + static String m80(name) => "Tirando selfies com ${name}"; static String m81(verificationID) => + "Aqui está meu ID de verificação para o ente.io: ${verificationID}"; + + static String m82(verificationID) => "Ei, você pode confirmar se este ID de verificação do ente.io é seu?: ${verificationID}"; - static String m82(referralCode, referralStorageInGB) => + static String m83(referralCode, referralStorageInGB) => "Código de referência do Ente: ${referralCode} \n\nAplique-o em Configurações → Geral → Referências para obter ${referralStorageInGB} GB grátis após a sua inscrição num plano pago\n\nhttps://ente.io"; - static String m83(numberOfPeople) => + static String m84(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Compartilhe com pessoas específicas', one: 'Compartilhado com 1 pessoa', other: 'Compartilhado com ${numberOfPeople} pessoas')}"; - static String m84(emailIDs) => "Compartilhado com ${emailIDs}"; - - static String m85(fileType) => - "Este ${fileType} será excluído do dispositivo."; + static String m85(emailIDs) => "Compartilhado com ${emailIDs}"; static String m86(fileType) => + "Este ${fileType} será excluído do dispositivo."; + + static String m87(fileType) => "Este ${fileType} está no Ente e em seu dispositivo."; - static String m87(fileType) => "Este ${fileType} será excluído do Ente."; + static String m88(fileType) => "Este ${fileType} será excluído do Ente."; - static String m88(name) => "Jogando esportes com ${name}"; + static String m89(name) => "Jogando esportes com ${name}"; - static String m89(name) => "Destacar ${name}"; + static String m90(name) => "Destacar ${name}"; - static String m90(storageAmountInGB) => "${storageAmountInGB} GB"; + static String m91(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m91( + static String m92( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} de ${totalAmount} ${totalStorageUnit} usado"; - static String m92(id) => + static String m93(id) => "Seu ${id} já está vinculado a outra conta Ente. Se você gostaria de usar seu ${id} com esta conta, entre em contato conosco\""; - static String m93(endDate) => "Sua assinatura será cancelada em ${endDate}"; + static String m94(endDate) => "Sua assinatura será cancelada em ${endDate}"; - static String m94(completed, total) => + static String m95(completed, total) => "${completed}/${total} memórias preservadas"; - static String m95(ignoreReason) => + static String m96(ignoreReason) => "Toque para enviar, atualmente o envio é ignorado devido a ${ignoreReason}"; - static String m96(storageAmountInGB) => + static String m97(storageAmountInGB) => "Eles também recebem ${storageAmountInGB} GB"; - static String m97(email) => "Este é o ID de verificação de ${email}"; + static String m98(email) => "Este é o ID de verificação de ${email}"; - static String m98(count) => + static String m99(count) => "${Intl.plural(count, one: 'Esta semana, ${count} ano atrás', other: 'Esta semana, ${count} anos atrás')}"; - static String m99(dateFormat) => "${dateFormat} com o passar dos anos"; + static String m100(dateFormat) => "${dateFormat} com o passar dos anos"; - static String m100(count) => + static String m101(count) => "${Intl.plural(count, zero: 'Em breve', one: '1 dia', other: '${count} dias')}"; - static String m101(year) => "Viajem em ${year}"; + static String m102(year) => "Viajem em ${year}"; - static String m102(location) => "Viajem à ${location}"; + static String m103(location) => "Viajem à ${location}"; - static String m103(email) => + static String m104(email) => "Você foi convidado para ser um contato legado por ${email}."; - static String m104(galleryType) => + static String m105(galleryType) => "O tipo de galeria ${galleryType} não é suportado para renomear"; - static String m105(ignoreReason) => + static String m106(ignoreReason) => "O envio é ignorado devido a ${ignoreReason}"; - static String m106(count) => "Preservando ${count} memórias..."; + static String m107(count) => "Preservando ${count} memórias..."; - static String m107(endDate) => "Válido até ${endDate}"; + static String m108(endDate) => "Válido até ${endDate}"; - static String m108(email) => "Verificar ${email}"; + static String m109(email) => "Verificar ${email}"; - static String m115(name) => "Visualizar ${name} para desvincular"; - - static String m109(count) => - "${Intl.plural(count, zero: 'Adicionado 0 vizualizadores', one: 'Adicionado 1 visualizador', other: 'Adicionado ${count} visualizadores')}"; - - static String m110(email) => "Enviamos um e-mail à ${email}"; + static String m110(name) => "Visualizar ${name} para desvincular"; static String m111(count) => + "${Intl.plural(count, zero: 'Adicionado 0 vizualizadores', one: 'Adicionado 1 visualizador', other: 'Adicionado ${count} visualizadores')}"; + + static String m112(email) => "Enviamos um e-mail à ${email}"; + + static String m113(count) => "${Intl.plural(count, one: '${count} ano atrás', other: '${count} anos atrás')}"; - static String m112(name) => "Você e ${name}"; + static String m114(name) => "Você e ${name}"; - static String m113(storageSaved) => + static String m115(storageSaved) => "Você liberou ${storageSaved} com sucesso!"; final messages = _notInlinedMessages(_notInlinedMessages); @@ -869,7 +869,7 @@ class MessageLookup extends MessageLookupByLibrary { "duplicateFileCountWithStorageSaved": m25, "duplicateItemsGroup": m26, "edit": MessageLookupByLibrary.simpleMessage("Editar"), - "editEmailAlreadyLinked": m114, + "editEmailAlreadyLinked": m27, "editLocation": MessageLookupByLibrary.simpleMessage("Editar localização"), "editLocationTagTitle": @@ -884,16 +884,16 @@ class MessageLookup extends MessageLookupByLibrary { "email": MessageLookupByLibrary.simpleMessage("E-mail"), "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage("E-mail já registrado."), - "emailChangedTo": m27, - "emailDoesNotHaveEnteAccount": m28, - "emailNoEnteAccount": m29, + "emailChangedTo": m28, + "emailDoesNotHaveEnteAccount": m29, + "emailNoEnteAccount": m30, "emailNotRegistered": MessageLookupByLibrary.simpleMessage("E-mail não registrado."), "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("Verificação por e-mail"), "emailYourLogs": MessageLookupByLibrary.simpleMessage("Enviar registros por e-mail"), - "embracingThem": m30, + "embracingThem": m31, "emergencyContacts": MessageLookupByLibrary.simpleMessage("Contatos de emergência"), "empty": MessageLookupByLibrary.simpleMessage("Esvaziar"), @@ -972,7 +972,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Exportar dados"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage( "Fotos adicionais encontradas"), - "extraPhotosFoundFor": m31, + "extraPhotosFoundFor": m32, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Rosto não agrupado ainda, volte aqui mais tarde"), "faceRecognition": @@ -1011,7 +1011,7 @@ class MessageLookup extends MessageLookupByLibrary { "faq": MessageLookupByLibrary.simpleMessage("Perguntas frequentes"), "faqs": MessageLookupByLibrary.simpleMessage("Perguntas frequentes"), "favorite": MessageLookupByLibrary.simpleMessage("Favorito"), - "feastingWithThem": m32, + "feastingWithThem": m33, "feedback": MessageLookupByLibrary.simpleMessage("Feedback"), "file": MessageLookupByLibrary.simpleMessage("Arquivo"), "fileFailedToSaveToGallery": MessageLookupByLibrary.simpleMessage( @@ -1025,8 +1025,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Tipos de arquivo"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Tipos de arquivo e nomes"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m34, + "filesBackedUpInAlbum": m35, "filesDeleted": MessageLookupByLibrary.simpleMessage("Arquivos excluídos"), "filesSavedToGallery": @@ -1045,26 +1045,26 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Rostos encontrados"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("Armaz. grátis reivindicado"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m36, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("Armazenamento disponível"), "freeTrial": MessageLookupByLibrary.simpleMessage("Avaliação grátis"), - "freeTrialValidTill": m36, - "freeUpAccessPostDelete": m37, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAccessPostDelete": m38, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage( "Liberar espaço no dispositivo"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "Economize espaço em seu dispositivo por limpar arquivos já salvos com segurança."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Liberar espaço"), - "freeUpSpaceSaving": m39, + "freeUpSpaceSaving": m40, "gallery": MessageLookupByLibrary.simpleMessage("Galeria"), "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "Até 1.000 memórias exibidas na galeria"), "general": MessageLookupByLibrary.simpleMessage("Geral"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Gerando chaves de criptografia..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Ir às opções"), "googlePlayId": MessageLookupByLibrary.simpleMessage("ID do Google Play"), @@ -1093,7 +1093,7 @@ class MessageLookup extends MessageLookupByLibrary { "hideSharedItemsFromHomeGallery": MessageLookupByLibrary.simpleMessage( "Ocultar itens compartilhados da galeria inicial"), "hiding": MessageLookupByLibrary.simpleMessage("Ocultando..."), - "hikingWithThem": m41, + "hikingWithThem": m42, "hostedAtOsmFrance": MessageLookupByLibrary.simpleMessage("Hospedado em OSM France"), "howItWorks": MessageLookupByLibrary.simpleMessage("Como funciona"), @@ -1150,7 +1150,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Parece que algo deu errado. Tente novamente mais tarde. Caso o erro persistir, por favor, entre em contato com nossa equipe."), - "itemCount": m42, + "itemCount": m43, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Os itens exibem o número de dias restantes antes da exclusão permanente"), @@ -1171,7 +1171,7 @@ class MessageLookup extends MessageLookupByLibrary { "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage( "Ajude-nos com esta informação"), "language": MessageLookupByLibrary.simpleMessage("Idioma"), - "lastTimeWithThem": m43, + "lastTimeWithThem": m44, "lastUpdated": MessageLookupByLibrary.simpleMessage("Última atualização"), "lastYearsTrip": @@ -1186,7 +1186,7 @@ class MessageLookup extends MessageLookupByLibrary { "legacy": MessageLookupByLibrary.simpleMessage("Legado"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Contas legadas"), - "legacyInvite": m44, + "legacyInvite": m45, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "O legado permite que contatos confiáveis acessem sua conta em sua ausência."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( @@ -1203,7 +1203,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("para compartilhar rápido"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Ativado"), "linkExpired": MessageLookupByLibrary.simpleMessage("Expirado"), - "linkExpiresOn": m45, + "linkExpiresOn": m46, "linkExpiry": MessageLookupByLibrary.simpleMessage("Expiração do link"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("O link expirou"), @@ -1211,8 +1211,8 @@ class MessageLookup extends MessageLookupByLibrary { "linkPerson": MessageLookupByLibrary.simpleMessage("Vincular pessoa"), "linkPersonCaption": MessageLookupByLibrary.simpleMessage( "para melhorar o compartilhamento"), - "linkPersonToEmail": m46, - "linkPersonToEmailConfirmation": m47, + "linkPersonToEmail": m47, + "linkPersonToEmailConfirmation": m48, "livePhotos": MessageLookupByLibrary.simpleMessage("Fotos animadas"), "loadMessage1": MessageLookupByLibrary.simpleMessage( "Você pode compartilhar sua assinatura com seus familiares"), @@ -1303,7 +1303,7 @@ class MessageLookup extends MessageLookupByLibrary { "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), "me": MessageLookupByLibrary.simpleMessage("Eu"), - "memoryCount": m48, + "memoryCount": m49, "merchandise": MessageLookupByLibrary.simpleMessage("Produtos"), "mergeWithExisting": MessageLookupByLibrary.simpleMessage("Juntar com o existente"), @@ -1334,14 +1334,14 @@ class MessageLookup extends MessageLookupByLibrary { "mostRecent": MessageLookupByLibrary.simpleMessage("Mais recente"), "mostRelevant": MessageLookupByLibrary.simpleMessage("Mais relevante"), "mountains": MessageLookupByLibrary.simpleMessage("Sob as montanhas"), - "moveItem": m49, + "moveItem": m50, "moveSelectedPhotosToOneDate": MessageLookupByLibrary.simpleMessage( "Mover fotos selecionadas para uma data"), "moveToAlbum": MessageLookupByLibrary.simpleMessage("Mover para o álbum"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("Mover ao álbum oculto"), - "movedSuccessfullyTo": m50, + "movedSuccessfullyTo": m51, "movedToTrash": MessageLookupByLibrary.simpleMessage("Movido para a lixeira"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1395,10 +1395,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Nenhum resultado"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Nenhum resultado encontrado"), - "noSuggestionsForPerson": m51, + "noSuggestionsForPerson": m52, "noSystemLockFound": MessageLookupByLibrary.simpleMessage( "Nenhum bloqueio do sistema encontrado"), - "notPersonLabel": m52, + "notPersonLabel": m53, "notThisPerson": MessageLookupByLibrary.simpleMessage("Não é esta pessoa?"), "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( @@ -1413,7 +1413,7 @@ class MessageLookup extends MessageLookupByLibrary { "onTheRoad": MessageLookupByLibrary.simpleMessage("Na estrada novamente"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), - "onlyFamilyAdminCanChangeCode": m53, + "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Apenas eles"), "oops": MessageLookupByLibrary.simpleMessage("Ops"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( @@ -1443,7 +1443,7 @@ class MessageLookup extends MessageLookupByLibrary { "pairingComplete": MessageLookupByLibrary.simpleMessage("Pareamento concluído"), "panorama": MessageLookupByLibrary.simpleMessage("Panorama"), - "partyWithThem": m54, + "partyWithThem": m55, "passKeyPendingVerification": MessageLookupByLibrary.simpleMessage("Verificação pendente"), "passkey": MessageLookupByLibrary.simpleMessage("Chave de acesso"), @@ -1454,7 +1454,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Senha alterada com sucesso"), "passwordLock": MessageLookupByLibrary.simpleMessage("Bloqueio por senha"), - "passwordStrength": m55, + "passwordStrength": m56, "passwordStrengthInfo": MessageLookupByLibrary.simpleMessage( "A força da senha é calculada considerando o comprimento dos dígitos, carácteres usados, e se ou não a senha aparece nas 10.000 senhas usadas."), "passwordWarning": MessageLookupByLibrary.simpleMessage( @@ -1465,7 +1465,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("O pagamento falhou"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Infelizmente o pagamento falhou. Entre em contato com o suporte e nós ajudaremos você!"), - "paymentFailedTalkToProvider": m56, + "paymentFailedTalkToProvider": m57, "pendingItems": MessageLookupByLibrary.simpleMessage("Itens pendentes"), "pendingSync": MessageLookupByLibrary.simpleMessage("Sincronização pendente"), @@ -1478,21 +1478,21 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Excluir permanentemente"), "permanentlyDeleteFromDevice": MessageLookupByLibrary.simpleMessage( "Excluir permanentemente do dispositivo?"), - "personIsAge": m57, + "personIsAge": m58, "personName": MessageLookupByLibrary.simpleMessage("Nome da pessoa"), - "personTurningAge": m58, + "personTurningAge": m59, "pets": MessageLookupByLibrary.simpleMessage("Companhias peludas"), "photoDescriptions": MessageLookupByLibrary.simpleMessage("Descrições das fotos"), "photoGridSize": MessageLookupByLibrary.simpleMessage("Tamanho da grade de fotos"), "photoSmallCase": MessageLookupByLibrary.simpleMessage("foto"), - "photocountPhotos": m59, + "photocountPhotos": m60, "photos": MessageLookupByLibrary.simpleMessage("Fotos"), "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "Suas fotos adicionadas serão removidas do álbum"), - "photosCount": m60, + "photosCount": m61, "photosKeepRelativeTimeDifference": MessageLookupByLibrary.simpleMessage( "As fotos mantêm a diferença de tempo relativo"), @@ -1504,7 +1504,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Reproduzir álbum na TV"), "playOriginal": MessageLookupByLibrary.simpleMessage("Reproduzir original"), - "playStoreFreeTrialValidTill": m61, + "playStoreFreeTrialValidTill": m62, "playStream": MessageLookupByLibrary.simpleMessage("Reproduzir transmissão"), "playstoreSubscription": @@ -1518,14 +1518,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Por favor, contate o suporte se o problema persistir"), - "pleaseEmailUsAt": m62, + "pleaseEmailUsAt": m63, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage( "Por favor, conceda as permissões"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Registre-se novamente"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Selecione links rápidos para remover"), - "pleaseSendTheLogsTo": m63, + "pleaseSendTheLogsTo": m64, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Tente novamente"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1538,7 +1538,7 @@ class MessageLookup extends MessageLookupByLibrary { "Por favor, aguarde mais algum tempo antes de tentar novamente"), "pleaseWaitThisWillTakeAWhile": MessageLookupByLibrary.simpleMessage( "Aguarde um pouco, isso talvez leve um tempo."), - "posingWithThem": m64, + "posingWithThem": m65, "preparingLogs": MessageLookupByLibrary.simpleMessage("Preparando registros..."), "preserveMore": MessageLookupByLibrary.simpleMessage("Preservar mais"), @@ -1557,7 +1557,7 @@ class MessageLookup extends MessageLookupByLibrary { "proceed": MessageLookupByLibrary.simpleMessage("Continuar"), "processed": MessageLookupByLibrary.simpleMessage("Processado"), "processing": MessageLookupByLibrary.simpleMessage("Processando"), - "processingImport": m65, + "processingImport": m66, "processingVideos": MessageLookupByLibrary.simpleMessage("Processando vídeos"), "publicLinkCreated": @@ -1571,9 +1571,9 @@ class MessageLookup extends MessageLookupByLibrary { "rateTheApp": MessageLookupByLibrary.simpleMessage("Avalie o aplicativo"), "rateUs": MessageLookupByLibrary.simpleMessage("Avaliar"), - "rateUsOnStore": m66, + "rateUsOnStore": m67, "reassignMe": MessageLookupByLibrary.simpleMessage("Reatribuir \"Eu\""), - "reassignedToName": m67, + "reassignedToName": m68, "reassigningLoading": MessageLookupByLibrary.simpleMessage("Reatribuindo..."), "recover": MessageLookupByLibrary.simpleMessage("Recuperar"), @@ -1584,7 +1584,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Recuperar conta"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("A recuperação iniciou"), - "recoveryInitiatedDesc": m68, + "recoveryInitiatedDesc": m69, "recoveryKey": MessageLookupByLibrary.simpleMessage("Chave de recuperação"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( @@ -1599,12 +1599,12 @@ class MessageLookup extends MessageLookupByLibrary { "Chave de recuperação verificada"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Sua chave de recuperação é a única maneira de recuperar suas fotos se você esqueceu sua senha. Você pode encontrar sua chave de recuperação em Opções > Conta.\n\nInsira sua chave de recuperação aqui para verificar se você a salvou corretamente."), - "recoveryReady": m69, + "recoveryReady": m70, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("Recuperação com sucesso!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "Um contato confiável está tentando acessar sua conta"), - "recoveryWarningBody": m70, + "recoveryWarningBody": m71, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "O dispositivo atual não é poderoso o suficiente para verificar sua senha, no entanto, nós podemos regenerar numa maneira que funciona em todos os dispositivos.\n\nEntre usando a chave de recuperação e regenere sua senha (você pode usar a mesma novamente se desejar)."), "recreatePasswordTitle": @@ -1619,7 +1619,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Envie este código aos seus amigos"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Eles então se inscrevem num plano pago"), - "referralStep3": m71, + "referralStep3": m72, "referrals": MessageLookupByLibrary.simpleMessage("Referências"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "As referências estão atualmente pausadas"), @@ -1648,7 +1648,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Remover link"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Remover participante"), - "removeParticipantBody": m72, + "removeParticipantBody": m73, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Remover etiqueta da pessoa"), "removePublicLink": @@ -1668,7 +1668,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("Renomear arquivo"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Renovar assinatura"), - "renewsOn": m73, + "renewsOn": m74, "reportABug": MessageLookupByLibrary.simpleMessage("Informar um erro"), "reportBug": MessageLookupByLibrary.simpleMessage("Informar erro"), "resendEmail": MessageLookupByLibrary.simpleMessage("Reenviar e-mail"), @@ -1693,7 +1693,7 @@ class MessageLookup extends MessageLookupByLibrary { "reviewSuggestions": MessageLookupByLibrary.simpleMessage("Revisar sugestões"), "right": MessageLookupByLibrary.simpleMessage("Direita"), - "roadtripWithThem": m74, + "roadtripWithThem": m75, "rotate": MessageLookupByLibrary.simpleMessage("Girar"), "rotateLeft": MessageLookupByLibrary.simpleMessage("Girar para a esquerda"), @@ -1751,8 +1751,8 @@ class MessageLookup extends MessageLookupByLibrary { "Convide pessoas e você verá todas as fotos compartilhadas por elas aqui"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "As pessoas serão exibidas aqui quando o processamento e sincronização for concluído"), - "searchResultCount": m75, - "searchSectionsLengthMismatch": m76, + "searchResultCount": m76, + "searchSectionsLengthMismatch": m77, "security": MessageLookupByLibrary.simpleMessage("Segurança"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Ver links de álbum compartilhado no aplicativo"), @@ -1801,9 +1801,9 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeRemovedFromThisPerson": MessageLookupByLibrary.simpleMessage( "Os itens selecionados serão removidos desta pessoa, entretanto não serão excluídos da sua biblioteca."), - "selectedPhotos": m77, - "selectedPhotosWithYours": m78, - "selfiesWithThem": m79, + "selectedPhotos": m78, + "selectedPhotosWithYours": m79, + "selfiesWithThem": m80, "send": MessageLookupByLibrary.simpleMessage("Enviar"), "sendEmail": MessageLookupByLibrary.simpleMessage("Enviar e-mail"), "sendInvite": MessageLookupByLibrary.simpleMessage("Enviar convite"), @@ -1833,16 +1833,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Compartilhar um álbum agora"), "shareLink": MessageLookupByLibrary.simpleMessage("Compartilhar link"), - "shareMyVerificationID": m80, + "shareMyVerificationID": m81, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Compartilhar apenas com as pessoas que você quiser"), - "shareTextConfirmOthersVerificationID": m81, + "shareTextConfirmOthersVerificationID": m82, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Baixe o Ente para que nós possamos compartilhar com facilidade fotos e vídeos de qualidade original\n\nhttps://ente.io"), - "shareTextReferralCode": m82, + "shareTextReferralCode": m83, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Compartilhar com usuários não ente"), - "shareWithPeopleSectionTitle": m83, + "shareWithPeopleSectionTitle": m84, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage( "Compartilhar seu primeiro álbum"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1855,7 +1855,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Novas fotos compartilhadas"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Receber notificações quando alguém adicionar uma foto a um álbum compartilhado que você faz parte"), - "sharedWith": m84, + "sharedWith": m85, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Compartilhado comigo"), "sharedWithYou": @@ -1874,11 +1874,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Sair em outros dispositivos"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Eu concordo com os termos de serviço e a política de privacidade"), - "singleFileDeleteFromDevice": m85, + "singleFileDeleteFromDevice": m86, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Ele será excluído de todos os álbuns."), - "singleFileInBothLocalAndRemote": m86, - "singleFileInRemoteOnly": m87, + "singleFileInBothLocalAndRemote": m87, + "singleFileInRemoteOnly": m88, "skip": MessageLookupByLibrary.simpleMessage("Pular"), "social": MessageLookupByLibrary.simpleMessage("Redes sociais"), "someItemsAreInBothEnteAndYourDevice": @@ -1916,8 +1916,8 @@ class MessageLookup extends MessageLookupByLibrary { "sortOldestFirst": MessageLookupByLibrary.simpleMessage("Antigos primeiro"), "sparkleSuccess": MessageLookupByLibrary.simpleMessage("✨ Sucesso"), - "sportsWithThem": m88, - "spotlightOnThem": m89, + "sportsWithThem": m89, + "spotlightOnThem": m90, "spotlightOnYourself": MessageLookupByLibrary.simpleMessage("Destacar si mesmo"), "startAccountRecoveryTitle": @@ -1932,15 +1932,15 @@ class MessageLookup extends MessageLookupByLibrary { "storage": MessageLookupByLibrary.simpleMessage("Armazenamento"), "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("Família"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("Você"), - "storageInGB": m90, + "storageInGB": m91, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage( "Limite de armazenamento excedido"), - "storageUsageInfo": m91, + "storageUsageInfo": m92, "streamDetails": MessageLookupByLibrary.simpleMessage("Detalhes da transmissão"), "strongStrength": MessageLookupByLibrary.simpleMessage("Forte"), - "subAlreadyLinkedErrMessage": m92, - "subWillBeCancelledOn": m93, + "subAlreadyLinkedErrMessage": m93, + "subWillBeCancelledOn": m94, "subscribe": MessageLookupByLibrary.simpleMessage("Inscrever-se"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Você precisa de uma inscrição paga ativa para ativar o compartilhamento."), @@ -1958,7 +1958,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Sugerir recurso"), "sunrise": MessageLookupByLibrary.simpleMessage("No horizonte"), "support": MessageLookupByLibrary.simpleMessage("Suporte"), - "syncProgress": m94, + "syncProgress": m95, "syncStopped": MessageLookupByLibrary.simpleMessage("Sincronização interrompida"), "syncing": MessageLookupByLibrary.simpleMessage("Sincronizando..."), @@ -1970,7 +1970,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Toque para desbloquear"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Toque para enviar"), - "tapToUploadIsIgnoredDue": m95, + "tapToUploadIsIgnoredDue": m96, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Parece que algo deu errado. Tente novamente mais tarde. Caso o erro persistir, por favor, entre em contato com nossa equipe."), "terminate": MessageLookupByLibrary.simpleMessage("Encerrar"), @@ -1992,7 +1992,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Estes itens serão excluídos do seu dispositivo."), - "theyAlsoGetXGb": m96, + "theyAlsoGetXGb": m97, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Eles serão excluídos de todos os álbuns."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( @@ -2010,12 +2010,12 @@ class MessageLookup extends MessageLookupByLibrary { "Esta imagem não possui dados EXIF"), "thisIsMeExclamation": MessageLookupByLibrary.simpleMessage("Este é você!"), - "thisIsPersonVerificationId": m97, + "thisIsPersonVerificationId": m98, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage( "Este é o seu ID de verificação"), "thisWeekThroughTheYears": MessageLookupByLibrary.simpleMessage( "Esta semana com o passar dos anos"), - "thisWeekXYearsAgo": m98, + "thisWeekXYearsAgo": m99, "thisWillLogYouOutOfTheFollowingDevice": MessageLookupByLibrary.simpleMessage( "Isso fará você sair do dispositivo a seguir:"), @@ -2027,7 +2027,7 @@ class MessageLookup extends MessageLookupByLibrary { "thisWillRemovePublicLinksOfAllSelectedQuickLinks": MessageLookupByLibrary.simpleMessage( "Isto removerá links públicos de todos os links rápidos selecionados."), - "throughTheYears": m99, + "throughTheYears": m100, "toEnableAppLockPleaseSetupDevicePasscodeOrScreen": MessageLookupByLibrary.simpleMessage( "Para ativar o bloqueio do aplicativo, defina uma senha de acesso no dispositivo ou bloqueie sua tela nas opções do sistema."), @@ -2041,13 +2041,13 @@ class MessageLookup extends MessageLookupByLibrary { "total": MessageLookupByLibrary.simpleMessage("total"), "totalSize": MessageLookupByLibrary.simpleMessage("Tamanho total"), "trash": MessageLookupByLibrary.simpleMessage("Lixeira"), - "trashDaysLeft": m100, + "trashDaysLeft": m101, "trim": MessageLookupByLibrary.simpleMessage("Recortar"), - "tripInYear": m101, - "tripToLocation": m102, + "tripInYear": m102, + "tripToLocation": m103, "trustedContacts": MessageLookupByLibrary.simpleMessage("Contatos confiáveis"), - "trustedInviteBody": m103, + "trustedInviteBody": m104, "tryAgain": MessageLookupByLibrary.simpleMessage("Tente novamente"), "turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage( "Ative a cópia de segurança para automaticamente enviar arquivos adicionados à pasta do dispositivo para o Ente."), @@ -2066,7 +2066,7 @@ class MessageLookup extends MessageLookupByLibrary { "Autenticação de dois fatores redefinida com sucesso"), "twofactorSetup": MessageLookupByLibrary.simpleMessage( "Configuração de dois fatores"), - "typeOfGallerGallerytypeIsNotSupportedForRename": m104, + "typeOfGallerGallerytypeIsNotSupportedForRename": m105, "unarchive": MessageLookupByLibrary.simpleMessage("Desarquivar"), "unarchiveAlbum": MessageLookupByLibrary.simpleMessage("Desarquivar álbum"), @@ -2089,10 +2089,10 @@ class MessageLookup extends MessageLookupByLibrary { "updatingFolderSelection": MessageLookupByLibrary.simpleMessage( "Atualizando seleção de pasta..."), "upgrade": MessageLookupByLibrary.simpleMessage("Atualizar"), - "uploadIsIgnoredDueToIgnorereason": m105, + "uploadIsIgnoredDueToIgnorereason": m106, "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage( "Enviando arquivos para o álbum..."), - "uploadingMultipleMemories": m106, + "uploadingMultipleMemories": m107, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage("Preservando 1 memória..."), "upto50OffUntil4thDec": MessageLookupByLibrary.simpleMessage( @@ -2110,7 +2110,7 @@ class MessageLookup extends MessageLookupByLibrary { "useSelectedPhoto": MessageLookupByLibrary.simpleMessage("Usar foto selecionada"), "usedSpace": MessageLookupByLibrary.simpleMessage("Espaço usado"), - "validTill": m107, + "validTill": m108, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Falha na verificação. Tente novamente"), @@ -2118,7 +2118,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("ID de verificação"), "verify": MessageLookupByLibrary.simpleMessage("Verificar"), "verifyEmail": MessageLookupByLibrary.simpleMessage("Verificar e-mail"), - "verifyEmailID": m108, + "verifyEmailID": m109, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("Verificar"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("Verificar chave de acesso"), @@ -2130,6 +2130,8 @@ class MessageLookup extends MessageLookupByLibrary { "videoInfo": MessageLookupByLibrary.simpleMessage("Informações do vídeo"), "videoSmallCase": MessageLookupByLibrary.simpleMessage("vídeo"), + "videoStreaming": + MessageLookupByLibrary.simpleMessage("Vídeos transmissíveis"), "videos": MessageLookupByLibrary.simpleMessage("Vídeos"), "viewActiveSessions": MessageLookupByLibrary.simpleMessage("Ver sessões ativas"), @@ -2143,11 +2145,11 @@ class MessageLookup extends MessageLookupByLibrary { "viewLargeFilesDesc": MessageLookupByLibrary.simpleMessage( "Ver arquivos que consumem a maior parte do armazenamento."), "viewLogs": MessageLookupByLibrary.simpleMessage("Ver registros"), - "viewPersonToUnlink": m115, + "viewPersonToUnlink": m110, "viewRecoveryKey": MessageLookupByLibrary.simpleMessage("Ver chave de recuperação"), "viewer": MessageLookupByLibrary.simpleMessage("Visualizador"), - "viewersSuccessfullyAdded": m109, + "viewersSuccessfullyAdded": m111, "visitWebToManage": MessageLookupByLibrary.simpleMessage( "Visite o web.ente.io para gerenciar sua assinatura"), "waitingForVerification": @@ -2160,7 +2162,7 @@ class MessageLookup extends MessageLookupByLibrary { "weDontSupportEditingPhotosAndAlbumsThatYouDont": MessageLookupByLibrary.simpleMessage( "Não suportamos a edição de fotos e álbuns que você ainda não possui"), - "weHaveSendEmailTo": m110, + "weHaveSendEmailTo": m112, "weakStrength": MessageLookupByLibrary.simpleMessage("Fraca"), "welcomeBack": MessageLookupByLibrary.simpleMessage("Bem-vindo(a) de volta!"), @@ -2169,7 +2171,7 @@ class MessageLookup extends MessageLookupByLibrary { "Um contato confiável pode ajudá-lo em recuperar seus dados."), "yearShort": MessageLookupByLibrary.simpleMessage("ano"), "yearly": MessageLookupByLibrary.simpleMessage("Anual"), - "yearsAgo": m111, + "yearsAgo": m113, "yes": MessageLookupByLibrary.simpleMessage("Sim"), "yesCancel": MessageLookupByLibrary.simpleMessage("Sim"), "yesConvertToViewer": MessageLookupByLibrary.simpleMessage( @@ -2184,7 +2186,7 @@ class MessageLookup extends MessageLookupByLibrary { "yesResetPerson": MessageLookupByLibrary.simpleMessage("Sim, redefinir pessoa"), "you": MessageLookupByLibrary.simpleMessage("Você"), - "youAndThem": m112, + "youAndThem": m114, "youAreOnAFamilyPlan": MessageLookupByLibrary.simpleMessage( "Você está em um plano familiar!"), "youAreOnTheLatestVersion": MessageLookupByLibrary.simpleMessage( @@ -2203,7 +2205,7 @@ class MessageLookup extends MessageLookupByLibrary { "Não é possível compartilhar consigo mesmo"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage( "Você não tem nenhum item arquivado."), - "youHaveSuccessfullyFreedUp": m113, + "youHaveSuccessfullyFreedUp": m115, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage("Sua conta foi excluída"), "yourMap": MessageLookupByLibrary.simpleMessage("Seu mapa"), diff --git a/mobile/lib/generated/intl/messages_pt_PT.dart b/mobile/lib/generated/intl/messages_pt_PT.dart index 093de2da3e..b257e0f647 100644 --- a/mobile/lib/generated/intl/messages_pt_PT.dart +++ b/mobile/lib/generated/intl/messages_pt_PT.dart @@ -79,136 +79,136 @@ class MessageLookup extends MessageLookupByLibrary { static String m26(count, formattedSize) => "${count} arquivos, ${formattedSize} cada"; - static String m27(newEmail) => "Email alterado para ${newEmail}"; + static String m28(newEmail) => "Email alterado para ${newEmail}"; - static String m29(email) => + static String m30(email) => "${email} não possui uma conta Ente.\n\nEnvie um convite para compartilhar fotos."; - static String m31(text) => "Fotos extras encontradas para ${text}"; - - static String m33(count, formattedNumber) => - "${Intl.plural(count, one: '1 arquivo', other: '${formattedNumber} arquivos')} neste dispositivo teve um backup seguro"; + static String m32(text) => "Fotos extras encontradas para ${text}"; static String m34(count, formattedNumber) => + "${Intl.plural(count, one: '1 arquivo', other: '${formattedNumber} arquivos')} neste dispositivo teve um backup seguro"; + + static String m35(count, formattedNumber) => "${Intl.plural(count, one: '1 arquivo', other: '${formattedNumber} arquivos')} neste álbum teve um backup seguro"; - static String m35(storageAmountInGB) => + static String m36(storageAmountInGB) => "${storageAmountInGB} GB sempre que alguém se inscreve num plano pago e aplica o seu código"; - static String m36(endDate) => "Teste gratuito válido até ${endDate}"; + static String m37(endDate) => "Teste gratuito válido até ${endDate}"; - static String m38(sizeInMBorGB) => "Libertar ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "Libertar ${sizeInMBorGB}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Processando ${currentlyProcessing} / ${totalCount}"; - static String m42(count) => + static String m43(count) => "${Intl.plural(count, one: '${count} item', other: '${count} itens')}"; - static String m45(expiryTime) => "O link expirará em ${expiryTime}"; + static String m46(expiryTime) => "O link expirará em ${expiryTime}"; - static String m50(albumName) => "Movido com sucesso para ${albumName}"; + static String m51(albumName) => "Movido com sucesso para ${albumName}"; - static String m52(name) => "Não é ${name}?"; + static String m53(name) => "Não é ${name}?"; - static String m53(familyAdminEmail) => + static String m54(familyAdminEmail) => "Entre em contato com ${familyAdminEmail} para alterar o seu código."; - static String m55(passwordStrengthValue) => + static String m56(passwordStrengthValue) => "Força da palavra-passe: ${passwordStrengthValue}"; - static String m56(providerName) => + static String m57(providerName) => "Por favor, fale com o suporte ${providerName} se você foi cobrado"; - static String m61(endDate) => + static String m62(endDate) => "Teste gratuito válido até ${endDate}.\nVocê pode escolher um plano pago depois."; - static String m62(toEmail) => + static String m63(toEmail) => "Por favor, envie-nos um e-mail para ${toEmail}"; - static String m63(toEmail) => "Por favor, envie os logs para \n${toEmail}"; + static String m64(toEmail) => "Por favor, envie os logs para \n${toEmail}"; - static String m65(folderName) => "Processando ${folderName}..."; + static String m66(folderName) => "Processando ${folderName}..."; - static String m66(storeName) => "Avalie-nos em ${storeName}"; + static String m67(storeName) => "Avalie-nos em ${storeName}"; - static String m71(storageInGB) => "3. Ambos ganham ${storageInGB} GB* grátis"; + static String m72(storageInGB) => "3. Ambos ganham ${storageInGB} GB* grátis"; - static String m72(userEmail) => + static String m73(userEmail) => "${userEmail} será removido deste álbum compartilhado\n\nQuaisquer fotos adicionadas por elas também serão removidas do álbum"; - static String m73(endDate) => "A subscrição é renovada em ${endDate}"; + static String m74(endDate) => "A subscrição é renovada em ${endDate}"; - static String m75(count) => + static String m76(count) => "${Intl.plural(count, one: '${count} ano atrás', other: '${count} anos atrás')}"; - static String m77(count) => "${count} selecionado(s)"; + static String m78(count) => "${count} selecionado(s)"; - static String m78(count, yourCount) => + static String m79(count, yourCount) => "${count} selecionado(s) (${yourCount} seus)"; - static String m80(verificationID) => + static String m81(verificationID) => "Aqui está o meu ID de verificação: ${verificationID} para ente.io."; - static String m81(verificationID) => + static String m82(verificationID) => "Ei, você pode confirmar que este é seu ID de verificação do ente.io: ${verificationID}"; - static String m82(referralCode, referralStorageInGB) => + static String m83(referralCode, referralStorageInGB) => "Insira o código de referência: ${referralCode} \n\nAplique-o em Configurações → Geral → Indicações para obter ${referralStorageInGB} GB gratuitamente após a sua inscrição para um plano pago\n\nhttps://ente.io"; - static String m83(numberOfPeople) => + static String m84(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Compartilhe com pessoas específicas', one: 'Compartilhado com 1 pessoa', other: 'Compartilhado com ${numberOfPeople} pessoas')}"; - static String m84(emailIDs) => "Partilhado com ${emailIDs}"; - - static String m85(fileType) => - "Este ${fileType} será eliminado do seu dispositivo."; + static String m85(emailIDs) => "Partilhado com ${emailIDs}"; static String m86(fileType) => + "Este ${fileType} será eliminado do seu dispositivo."; + + static String m87(fileType) => "Este ${fileType} encontra-se tanto no Ente como no seu dispositivo."; - static String m87(fileType) => "Este ${fileType} será eliminado do Ente."; + static String m88(fileType) => "Este ${fileType} será eliminado do Ente."; - static String m90(storageAmountInGB) => "${storageAmountInGB} GB"; + static String m91(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m91( + static String m92( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} de ${totalAmount} ${totalStorageUnit} usado"; - static String m92(id) => + static String m93(id) => "Seu ${id} já está vinculado a outra conta Ente.\nSe você gostaria de usar seu ${id} com esta conta, por favor contate nosso suporte\'\'"; - static String m93(endDate) => "A sua subscrição será cancelada em ${endDate}"; + static String m94(endDate) => "A sua subscrição será cancelada em ${endDate}"; - static String m94(completed, total) => + static String m95(completed, total) => "${completed}/${total} memórias preservadas"; - static String m96(storageAmountInGB) => + static String m97(storageAmountInGB) => "Eles também recebem ${storageAmountInGB} GB"; - static String m97(email) => "Este é o ID de verificação de ${email}"; + static String m98(email) => "Este é o ID de verificação de ${email}"; - static String m100(count) => + static String m101(count) => "${Intl.plural(count, zero: 'Brevemente', one: '1 dia', other: '${count} dias')}"; - static String m104(galleryType) => + static String m105(galleryType) => "Tipo de galeria ${galleryType} não é permitido para renomear"; - static String m105(ignoreReason) => "Envio ignorado devido à ${ignoreReason}"; + static String m106(ignoreReason) => "Envio ignorado devido à ${ignoreReason}"; - static String m106(count) => "Preservar ${count} memórias..."; + static String m107(count) => "Preservar ${count} memórias..."; - static String m107(endDate) => "Válido até ${endDate}"; + static String m108(endDate) => "Válido até ${endDate}"; - static String m108(email) => "Verificar e-mail"; + static String m109(email) => "Verificar e-mail"; - static String m110(email) => + static String m112(email) => "Enviamos um e-mail para ${email}"; - static String m111(count) => + static String m113(count) => "${Intl.plural(count, one: '${count} ano atrás', other: '${count} anos atrás')}"; - static String m113(storageSaved) => + static String m115(storageSaved) => "Você liberou ${storageSaved} com sucesso!"; final messages = _notInlinedMessages(_notInlinedMessages); @@ -710,8 +710,8 @@ class MessageLookup extends MessageLookupByLibrary { "Edições para localização só serão vistas dentro do Ente"), "eligible": MessageLookupByLibrary.simpleMessage("elegível"), "email": MessageLookupByLibrary.simpleMessage("Email"), - "emailChangedTo": m27, - "emailNoEnteAccount": m29, + "emailChangedTo": m28, + "emailNoEnteAccount": m30, "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("Verificação por e-mail"), "emailYourLogs": @@ -790,7 +790,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Exportar os seus dados"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage( "Fotos adicionais encontradas"), - "extraPhotosFoundFor": m31, + "extraPhotosFoundFor": m32, "faceRecognition": MessageLookupByLibrary.simpleMessage("Reconhecimento facial"), "faces": MessageLookupByLibrary.simpleMessage("Rostos"), @@ -836,8 +836,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Tipos de arquivo"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Tipos de arquivo e nomes"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m34, + "filesBackedUpInAlbum": m35, "filesDeleted": MessageLookupByLibrary.simpleMessage("Arquivos apagados"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage( @@ -855,12 +855,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Rostos encontrados"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage( "Armazenamento gratuito reclamado"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m36, "freeStorageUsable": MessageLookupByLibrary.simpleMessage( "Armazenamento livre utilizável"), "freeTrial": MessageLookupByLibrary.simpleMessage("Teste grátis"), - "freeTrialValidTill": m36, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage( "Libertar espaço no dispositivo"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( @@ -871,7 +871,7 @@ class MessageLookup extends MessageLookupByLibrary { "general": MessageLookupByLibrary.simpleMessage("Geral"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Gerando chaves de encriptação..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Ir para as definições"), "googlePlayId": @@ -949,7 +949,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Parece que algo correu mal. Por favor, tente novamente após algum tempo. Se o erro persistir, contacte a nossa equipa de apoio."), - "itemCount": m42, + "itemCount": m43, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Os itens mostram o número de dias restantes antes da eliminação permanente"), @@ -979,7 +979,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Limite de dispositivo"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Ativado"), "linkExpired": MessageLookupByLibrary.simpleMessage("Expirado"), - "linkExpiresOn": m45, + "linkExpiresOn": m46, "linkExpiry": MessageLookupByLibrary.simpleMessage("Link expirado"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("O link expirou"), @@ -1101,7 +1101,7 @@ class MessageLookup extends MessageLookupByLibrary { "moveToAlbum": MessageLookupByLibrary.simpleMessage("Mover para álbum"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("Mover para álbum oculto"), - "movedSuccessfullyTo": m50, + "movedSuccessfullyTo": m51, "movedToTrash": MessageLookupByLibrary.simpleMessage("Mover para o lixo"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1151,7 +1151,7 @@ class MessageLookup extends MessageLookupByLibrary { "Não foram encontrados resultados"), "noSystemLockFound": MessageLookupByLibrary.simpleMessage( "Nenhum bloqueio de sistema encontrado"), - "notPersonLabel": m52, + "notPersonLabel": m53, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( "Ainda nada partilhado consigo"), "nothingToSeeHere": @@ -1162,7 +1162,7 @@ class MessageLookup extends MessageLookupByLibrary { "onEnte": MessageLookupByLibrary.simpleMessage( "Em ente"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), - "onlyFamilyAdminCanChangeCode": m53, + "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Apenas eles"), "oops": MessageLookupByLibrary.simpleMessage("Oops"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( @@ -1196,7 +1196,7 @@ class MessageLookup extends MessageLookupByLibrary { "Palavra-passe alterada com sucesso"), "passwordLock": MessageLookupByLibrary.simpleMessage("Bloqueio da palavra-passe"), - "passwordStrength": m55, + "passwordStrength": m56, "passwordStrengthInfo": MessageLookupByLibrary.simpleMessage( "A força da palavra-passe é calculada tendo em conta o comprimento da palavra-passe, os caracteres utilizados e se a palavra-passe aparece ou não nas 10.000 palavras-passe mais utilizadas"), "passwordWarning": MessageLookupByLibrary.simpleMessage( @@ -1207,7 +1207,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("O pagamento falhou"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Infelizmente o seu pagamento falhou. Entre em contato com o suporte e nós ajudaremos você!"), - "paymentFailedTalkToProvider": m56, + "paymentFailedTalkToProvider": m57, "pendingItems": MessageLookupByLibrary.simpleMessage("Itens pendentes"), "pendingSync": MessageLookupByLibrary.simpleMessage("Sincronização pendente"), @@ -1236,7 +1236,7 @@ class MessageLookup extends MessageLookupByLibrary { "pinLock": MessageLookupByLibrary.simpleMessage("Bloqueio por PIN"), "playOnTv": MessageLookupByLibrary.simpleMessage("Reproduzir álbum na TV"), - "playStoreFreeTrialValidTill": m61, + "playStoreFreeTrialValidTill": m62, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("Subscrição da PlayStore"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1248,14 +1248,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Por favor, contate o suporte se o problema persistir"), - "pleaseEmailUsAt": m62, + "pleaseEmailUsAt": m63, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage( "Por favor, conceda as permissões"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage( "Por favor, inicie sessão novamente"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Selecione links rápidos para remover"), - "pleaseSendTheLogsTo": m63, + "pleaseSendTheLogsTo": m64, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Por favor, tente novamente"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1282,7 +1282,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Backups privados"), "privateSharing": MessageLookupByLibrary.simpleMessage("Partilha privada"), - "processingImport": m65, + "processingImport": m66, "publicLinkCreated": MessageLookupByLibrary.simpleMessage("Link público criado"), "publicLinkEnabled": @@ -1292,7 +1292,7 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("Abrir ticket"), "rateTheApp": MessageLookupByLibrary.simpleMessage("Avaliar aplicação"), "rateUs": MessageLookupByLibrary.simpleMessage("Avalie-nos"), - "rateUsOnStore": m66, + "rateUsOnStore": m67, "recover": MessageLookupByLibrary.simpleMessage("Recuperar"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Recuperar conta"), @@ -1328,7 +1328,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Envie este código aos seus amigos"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Eles se inscrevem em um plano pago"), - "referralStep3": m71, + "referralStep3": m72, "referrals": MessageLookupByLibrary.simpleMessage("Referências"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "As referências estão atualmente em pausa"), @@ -1354,7 +1354,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Remover link"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Remover participante"), - "removeParticipantBody": m72, + "removeParticipantBody": m73, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Remover etiqueta da pessoa"), "removePublicLink": @@ -1372,7 +1372,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("Renomear arquivo"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Renovar subscrição"), - "renewsOn": m73, + "renewsOn": m74, "reportABug": MessageLookupByLibrary.simpleMessage("Reporte um bug"), "reportBug": MessageLookupByLibrary.simpleMessage("Reportar bug"), "resendEmail": MessageLookupByLibrary.simpleMessage("Reenviar e-mail"), @@ -1447,7 +1447,7 @@ class MessageLookup extends MessageLookupByLibrary { "Fotos de grupo que estão sendo tiradas em algum raio da foto"), "searchPeopleEmptySection": MessageLookupByLibrary.simpleMessage( "Convide pessoas e verá todas as fotos partilhadas por elas aqui"), - "searchResultCount": m75, + "searchResultCount": m76, "security": MessageLookupByLibrary.simpleMessage("Segurança"), "selectALocation": MessageLookupByLibrary.simpleMessage("Selecione uma localização"), @@ -1475,8 +1475,8 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeDeletedFromAllAlbumsAndMoved": MessageLookupByLibrary.simpleMessage( "Os itens selecionados serão eliminados de todos os álbuns e movidos para o lixo."), - "selectedPhotos": m77, - "selectedPhotosWithYours": m78, + "selectedPhotos": m78, + "selectedPhotosWithYours": m79, "send": MessageLookupByLibrary.simpleMessage("Enviar"), "sendEmail": MessageLookupByLibrary.simpleMessage("Enviar email"), "sendInvite": MessageLookupByLibrary.simpleMessage("Enviar convite"), @@ -1507,16 +1507,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Partilhar um álbum"), "shareLink": MessageLookupByLibrary.simpleMessage("Partilhar link"), - "shareMyVerificationID": m80, + "shareMyVerificationID": m81, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Partilhar apenas com as pessoas que deseja"), - "shareTextConfirmOthersVerificationID": m81, + "shareTextConfirmOthersVerificationID": m82, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Descarregue o Ente para poder partilhar facilmente fotografias e vídeos de qualidade original\n\n\nhttps://ente.io"), - "shareTextReferralCode": m82, + "shareTextReferralCode": m83, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Compartilhar com usuários que não usam Ente"), - "shareWithPeopleSectionTitle": m83, + "shareWithPeopleSectionTitle": m84, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage( "Partilhe o seu primeiro álbum"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1529,7 +1529,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Novas fotos partilhadas"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Receber notificações quando alguém adiciona uma foto a um álbum partilhado do qual faz parte"), - "sharedWith": m84, + "sharedWith": m85, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Partilhado comigo"), "sharedWithYou": @@ -1546,11 +1546,11 @@ class MessageLookup extends MessageLookupByLibrary { "Terminar a sessão noutros dispositivos"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Eu concordo com os termos de serviço e política de privacidade"), - "singleFileDeleteFromDevice": m85, + "singleFileDeleteFromDevice": m86, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Será eliminado de todos os álbuns."), - "singleFileInBothLocalAndRemote": m86, - "singleFileInRemoteOnly": m87, + "singleFileInBothLocalAndRemote": m87, + "singleFileInRemoteOnly": m88, "skip": MessageLookupByLibrary.simpleMessage("Pular"), "social": MessageLookupByLibrary.simpleMessage("Social"), "someItemsAreInBothEnteAndYourDevice": @@ -1596,13 +1596,13 @@ class MessageLookup extends MessageLookupByLibrary { "storage": MessageLookupByLibrary.simpleMessage("Armazenamento"), "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("Família"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("Tu"), - "storageInGB": m90, + "storageInGB": m91, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage( "Limite de armazenamento excedido"), - "storageUsageInfo": m91, + "storageUsageInfo": m92, "strongStrength": MessageLookupByLibrary.simpleMessage("Forte"), - "subAlreadyLinkedErrMessage": m92, - "subWillBeCancelledOn": m93, + "subAlreadyLinkedErrMessage": m93, + "subWillBeCancelledOn": m94, "subscribe": MessageLookupByLibrary.simpleMessage("Subscrever"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Você precisa de uma assinatura paga ativa para ativar o compartilhamento."), @@ -1619,7 +1619,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("Sugerir recursos"), "support": MessageLookupByLibrary.simpleMessage("Suporte"), - "syncProgress": m94, + "syncProgress": m95, "syncStopped": MessageLookupByLibrary.simpleMessage("Sincronização interrompida"), "syncing": MessageLookupByLibrary.simpleMessage("Sincronizando..."), @@ -1648,7 +1648,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Estes itens serão eliminados do seu dispositivo."), - "theyAlsoGetXGb": m96, + "theyAlsoGetXGb": m97, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Serão eliminados de todos os álbuns."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( @@ -1664,7 +1664,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Este email já está em uso"), "thisImageHasNoExifData": MessageLookupByLibrary.simpleMessage( "Esta imagem não tem dados exif"), - "thisIsPersonVerificationId": m97, + "thisIsPersonVerificationId": m98, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage( "Este é o seu ID de verificação"), "thisWillLogYouOutOfTheFollowingDevice": @@ -1688,7 +1688,7 @@ class MessageLookup extends MessageLookupByLibrary { "total": MessageLookupByLibrary.simpleMessage("total"), "totalSize": MessageLookupByLibrary.simpleMessage("Tamanho total"), "trash": MessageLookupByLibrary.simpleMessage("Lixo"), - "trashDaysLeft": m100, + "trashDaysLeft": m101, "trim": MessageLookupByLibrary.simpleMessage("Cortar"), "tryAgain": MessageLookupByLibrary.simpleMessage("Tente novamente"), "turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage( @@ -1708,7 +1708,7 @@ class MessageLookup extends MessageLookupByLibrary { "Autenticação de dois fatores redefinida com êxito"), "twofactorSetup": MessageLookupByLibrary.simpleMessage( "Configuração de dois fatores"), - "typeOfGallerGallerytypeIsNotSupportedForRename": m104, + "typeOfGallerGallerytypeIsNotSupportedForRename": m105, "unarchive": MessageLookupByLibrary.simpleMessage("Desarquivar"), "unarchiveAlbum": MessageLookupByLibrary.simpleMessage("Desarquivar álbum"), @@ -1731,10 +1731,10 @@ class MessageLookup extends MessageLookupByLibrary { "updatingFolderSelection": MessageLookupByLibrary.simpleMessage( "Atualizando seleção de pasta..."), "upgrade": MessageLookupByLibrary.simpleMessage("Atualizar"), - "uploadIsIgnoredDueToIgnorereason": m105, + "uploadIsIgnoredDueToIgnorereason": m106, "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage( "Enviar ficheiros para o álbum..."), - "uploadingMultipleMemories": m106, + "uploadingMultipleMemories": m107, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage("Preservar 1 memória..."), "upto50OffUntil4thDec": MessageLookupByLibrary.simpleMessage( @@ -1750,7 +1750,7 @@ class MessageLookup extends MessageLookupByLibrary { "useSelectedPhoto": MessageLookupByLibrary.simpleMessage("Utilizar foto selecionada"), "usedSpace": MessageLookupByLibrary.simpleMessage("Espaço utilizado"), - "validTill": m107, + "validTill": m108, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Falha na verificação, por favor tente novamente"), @@ -1758,7 +1758,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("ID de Verificação"), "verify": MessageLookupByLibrary.simpleMessage("Verificar"), "verifyEmail": MessageLookupByLibrary.simpleMessage("Verificar email"), - "verifyEmailID": m108, + "verifyEmailID": m109, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("Verificar"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("Verificar chave de acesso"), @@ -1796,13 +1796,13 @@ class MessageLookup extends MessageLookupByLibrary { "weDontSupportEditingPhotosAndAlbumsThatYouDont": MessageLookupByLibrary.simpleMessage( "Não suportamos a edição de fotos e álbuns que ainda não possui"), - "weHaveSendEmailTo": m110, + "weHaveSendEmailTo": m112, "weakStrength": MessageLookupByLibrary.simpleMessage("Fraca"), "welcomeBack": MessageLookupByLibrary.simpleMessage("Bem-vindo(a) de volta!"), "whatsNew": MessageLookupByLibrary.simpleMessage("O que há de novo"), "yearly": MessageLookupByLibrary.simpleMessage("Anual"), - "yearsAgo": m111, + "yearsAgo": m113, "yes": MessageLookupByLibrary.simpleMessage("Sim"), "yesCancel": MessageLookupByLibrary.simpleMessage("Sim, cancelar"), "yesConvertToViewer": MessageLookupByLibrary.simpleMessage( @@ -1835,7 +1835,7 @@ class MessageLookup extends MessageLookupByLibrary { "Não podes partilhar contigo mesmo"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage( "Não tem nenhum item arquivado."), - "youHaveSuccessfullyFreedUp": m113, + "youHaveSuccessfullyFreedUp": m115, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage("A sua conta foi eliminada"), "yourMap": MessageLookupByLibrary.simpleMessage("Seu mapa"), diff --git a/mobile/lib/generated/intl/messages_ro.dart b/mobile/lib/generated/intl/messages_ro.dart index 42f9eecfe1..c4e181748d 100644 --- a/mobile/lib/generated/intl/messages_ro.dart +++ b/mobile/lib/generated/intl/messages_ro.dart @@ -80,162 +80,162 @@ class MessageLookup extends MessageLookupByLibrary { static String m26(count, formattedSize) => "${count} fișiere, ${formattedSize} fiecare"; - static String m27(newEmail) => "E-mail modificat în ${newEmail}"; + static String m28(newEmail) => "E-mail modificat în ${newEmail}"; - static String m29(email) => + static String m30(email) => "${email} nu are un cont Ente.\n\nTrimiteți-le o invitație pentru a distribui fotografii."; - static String m31(text) => "S-au găsit fotografii extra pentru ${text}"; - - static String m33(count, formattedNumber) => - "${Intl.plural(count, one: 'Un fișier de pe acest dispozitiv a fost deja salvat în siguranță', few: '${formattedNumber} fișiere de pe acest dispozitiv au fost deja salvate în siguranță', other: '${formattedNumber} de fișiere de pe acest dispozitiv fost deja salvate în siguranță')}"; + static String m32(text) => "S-au găsit fotografii extra pentru ${text}"; static String m34(count, formattedNumber) => + "${Intl.plural(count, one: 'Un fișier de pe acest dispozitiv a fost deja salvat în siguranță', few: '${formattedNumber} fișiere de pe acest dispozitiv au fost deja salvate în siguranță', other: '${formattedNumber} de fișiere de pe acest dispozitiv fost deja salvate în siguranță')}"; + + static String m35(count, formattedNumber) => "${Intl.plural(count, one: 'Un fișier din acest album a fost deja salvat în siguranță', few: '${formattedNumber} fișiere din acest album au fost deja salvate în siguranță', other: '${formattedNumber} de fișiere din acest album au fost deja salvate în siguranță')}"; - static String m35(storageAmountInGB) => + static String m36(storageAmountInGB) => "${storageAmountInGB} GB de fiecare dată când cineva se înscrie pentru un plan plătit și aplică codul dvs."; - static String m36(endDate) => + static String m37(endDate) => "Perioadă de încercare valabilă până pe ${endDate}"; - static String m38(sizeInMBorGB) => "Eliberați ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "Eliberați ${sizeInMBorGB}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Se procesează ${currentlyProcessing} / ${totalCount}"; - static String m42(count) => + static String m43(count) => "${Intl.plural(count, one: '${count} articol', few: '${count} articole', other: '${count} de articole')}"; - static String m44(email) => + static String m45(email) => "${email} v-a invitat să fiți un contact de încredere"; - static String m45(expiryTime) => "Linkul va expira pe ${expiryTime}"; + static String m46(expiryTime) => "Linkul va expira pe ${expiryTime}"; - static String m50(albumName) => "S-au mutat cu succes în ${albumName}"; + static String m51(albumName) => "S-au mutat cu succes în ${albumName}"; - static String m51(personName) => "Nicio sugestie pentru ${personName}"; + static String m52(personName) => "Nicio sugestie pentru ${personName}"; - static String m52(name) => "Nu este ${name}?"; + static String m53(name) => "Nu este ${name}?"; - static String m53(familyAdminEmail) => + static String m54(familyAdminEmail) => "Vă rugăm să contactați ${familyAdminEmail} pentru a vă schimba codul."; - static String m55(passwordStrengthValue) => + static String m56(passwordStrengthValue) => "Complexitatea parolei: ${passwordStrengthValue}"; - static String m56(providerName) => + static String m57(providerName) => "Vă rugăm să vorbiți cu asistența ${providerName} dacă ați fost taxat"; - static String m61(endDate) => + static String m62(endDate) => "Perioada de încercare gratuită valabilă până pe ${endDate}.\nUlterior, puteți opta pentru un plan plătit."; - static String m62(toEmail) => + static String m63(toEmail) => "Vă rugăm să ne trimiteți un e-mail la ${toEmail}"; - static String m63(toEmail) => + static String m64(toEmail) => "Vă rugăm să trimiteți jurnalele la \n${toEmail}"; - static String m65(folderName) => "Se procesează ${folderName}..."; + static String m66(folderName) => "Se procesează ${folderName}..."; - static String m66(storeName) => "Evaluați-ne pe ${storeName}"; + static String m67(storeName) => "Evaluați-ne pe ${storeName}"; - static String m68(days, email) => + static String m69(days, email) => "Puteți accesa contul după ${days} zile. O notificare va fi trimisă la ${email}."; - static String m69(email) => + static String m70(email) => "Acum puteți recupera contul ${email} setând o nouă parolă."; - static String m70(email) => "${email} încearcă să vă recupereze contul."; + static String m71(email) => "${email} încearcă să vă recupereze contul."; - static String m71(storageInGB) => + static String m72(storageInGB) => "3. Amândoi primiți ${storageInGB} GB* gratuit"; - static String m72(userEmail) => + static String m73(userEmail) => "${userEmail} va fi eliminat din acest album distribuit\n\nOrice fotografii adăugate de acesta vor fi, de asemenea, eliminate din album"; - static String m73(endDate) => "Abonamentul se reînnoiește pe ${endDate}"; + static String m74(endDate) => "Abonamentul se reînnoiește pe ${endDate}"; - static String m75(count) => + static String m76(count) => "${Intl.plural(count, one: '${count} rezultat găsit', few: '${count} rezultate găsite', other: '${count} de rezultate găsite')}"; - static String m76(snapshotLength, searchLength) => + static String m77(snapshotLength, searchLength) => "Lungimea secțiunilor nu se potrivesc: ${snapshotLength} != ${searchLength}"; - static String m77(count) => "${count} selectate"; + static String m78(count) => "${count} selectate"; - static String m78(count, yourCount) => + static String m79(count, yourCount) => "${count} selectate (${yourCount} ale dvs.)"; - static String m80(verificationID) => + static String m81(verificationID) => "Acesta este ID-ul meu de verificare: ${verificationID} pentru ente.io."; - static String m81(verificationID) => + static String m82(verificationID) => "Poți confirma că acesta este ID-ul tău de verificare ente.io: ${verificationID}"; - static String m82(referralCode, referralStorageInGB) => + static String m83(referralCode, referralStorageInGB) => "Codul de recomandare Ente: ${referralCode}\n\nAplică-l în Setări → General → Recomandări pentru a obține ${referralStorageInGB} GB gratuit după ce te înscrii pentru un plan plătit\n\nhttps://ente.io"; - static String m83(numberOfPeople) => + static String m84(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Distribuiți cu anumite persoane', one: 'Distribuit cu o persoană', other: 'Distribuit cu ${numberOfPeople} de persoane')}"; - static String m84(emailIDs) => "Distribuit cu ${emailIDs}"; - - static String m85(fileType) => - "Fișierul de tip ${fileType} va fi șters din dispozitivul dvs."; + static String m85(emailIDs) => "Distribuit cu ${emailIDs}"; static String m86(fileType) => - "Fișierul de tip ${fileType} este atât în Ente, cât și în dispozitivul dvs."; + "Fișierul de tip ${fileType} va fi șters din dispozitivul dvs."; static String m87(fileType) => + "Fișierul de tip ${fileType} este atât în Ente, cât și în dispozitivul dvs."; + + static String m88(fileType) => "Fișierul de tip ${fileType} va fi șters din Ente."; - static String m90(storageAmountInGB) => "${storageAmountInGB} GB"; + static String m91(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m91( + static String m92( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} din ${totalAmount} ${totalStorageUnit} utilizat"; - static String m92(id) => + static String m93(id) => "${id} este deja legat la un alt cont Ente.\nDacă doriți să folosiți ${id} cu acest cont, vă rugăm să contactați asistența noastră"; - static String m93(endDate) => "Abonamentul dvs. va fi anulat pe ${endDate}"; + static String m94(endDate) => "Abonamentul dvs. va fi anulat pe ${endDate}"; - static String m94(completed, total) => + static String m95(completed, total) => "${completed}/${total} amintiri salvate"; - static String m95(ignoreReason) => + static String m96(ignoreReason) => "Atingeți pentru a încărca, încărcarea este ignorată în prezent datorită ${ignoreReason}"; - static String m96(storageAmountInGB) => + static String m97(storageAmountInGB) => "De asemenea, va primii ${storageAmountInGB} GB"; - static String m97(email) => "Acesta este ID-ul de verificare al ${email}"; + static String m98(email) => "Acesta este ID-ul de verificare al ${email}"; - static String m100(count) => + static String m101(count) => "${Intl.plural(count, zero: 'Curând', one: 'O zi', other: '${count} de zile')}"; - static String m103(email) => + static String m104(email) => "Ați fost învitat să fiți un contact de moștenire de către ${email}."; - static String m104(galleryType) => + static String m105(galleryType) => "Tipul de galerie ${galleryType} nu este acceptat pentru redenumire"; - static String m105(ignoreReason) => + static String m106(ignoreReason) => "Încărcare ignorată din motivul ${ignoreReason}"; - static String m106(count) => "Se salvează ${count} amintiri..."; + static String m107(count) => "Se salvează ${count} amintiri..."; - static String m107(endDate) => "Valabil până pe ${endDate}"; + static String m108(endDate) => "Valabil până pe ${endDate}"; - static String m108(email) => "Verificare ${email}"; + static String m109(email) => "Verificare ${email}"; - static String m110(email) => "Am trimis un e-mail la ${email}"; + static String m112(email) => "Am trimis un e-mail la ${email}"; - static String m111(count) => + static String m113(count) => "${Intl.plural(count, one: 'acum ${count} an', few: 'acum ${count} ani', other: 'acum ${count} de ani')}"; - static String m113(storageSaved) => "Ați eliberat cu succes ${storageSaved}!"; + static String m115(storageSaved) => "Ați eliberat cu succes ${storageSaved}!"; final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { @@ -771,8 +771,8 @@ class MessageLookup extends MessageLookupByLibrary { "email": MessageLookupByLibrary.simpleMessage("E-mail"), "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage("E-mail deja înregistrat."), - "emailChangedTo": m27, - "emailNoEnteAccount": m29, + "emailChangedTo": m28, + "emailNoEnteAccount": m30, "emailNotRegistered": MessageLookupByLibrary.simpleMessage( "E-mailul nu este înregistrat."), "emailVerificationToggle": MessageLookupByLibrary.simpleMessage( @@ -859,7 +859,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Export de date"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage("S-au găsit fotografii extra"), - "extraPhotosFoundFor": m31, + "extraPhotosFoundFor": m32, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Fața nu este încă grupată, vă rugăm să reveniți mai târziu"), "faceRecognition": @@ -910,8 +910,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Tipuri de fișiere"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage( "Tipuri de fișiere și denumiri"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m34, + "filesBackedUpInAlbum": m35, "filesDeleted": MessageLookupByLibrary.simpleMessage("Fișiere șterse"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage("Fișiere salvate în galerie"), @@ -926,13 +926,13 @@ class MessageLookup extends MessageLookupByLibrary { "foundFaces": MessageLookupByLibrary.simpleMessage("S-au găsit fețe"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("Spațiu gratuit revendicat"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m36, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("Spațiu gratuit utilizabil"), "freeTrial": MessageLookupByLibrary.simpleMessage( "Perioadă de încercare gratuită"), - "freeTrialValidTill": m36, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage( "Eliberați spațiu pe dispozitiv"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( @@ -944,7 +944,7 @@ class MessageLookup extends MessageLookupByLibrary { "general": MessageLookupByLibrary.simpleMessage("General"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Se generează cheile de criptare..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Mergeți la setări"), "googlePlayId": MessageLookupByLibrary.simpleMessage("ID Google Play"), @@ -1028,7 +1028,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Se pare că ceva nu a mers bine. Vă rugăm să încercați din nou după ceva timp. Dacă eroarea persistă, vă rugăm să contactați echipa noastră de asistență."), - "itemCount": m42, + "itemCount": m43, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Articolele afișează numărul de zile rămase până la ștergerea definitivă"), @@ -1060,7 +1060,7 @@ class MessageLookup extends MessageLookupByLibrary { "legacy": MessageLookupByLibrary.simpleMessage("Moștenire"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Conturi de moștenire"), - "legacyInvite": m44, + "legacyInvite": m45, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "Moștenirea permite contactelor de încredere să vă acceseze contul în absența dvs."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( @@ -1073,7 +1073,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Limită de dispozitive"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Activat"), "linkExpired": MessageLookupByLibrary.simpleMessage("Expirat"), - "linkExpiresOn": m45, + "linkExpiresOn": m46, "linkExpiry": MessageLookupByLibrary.simpleMessage("Expirarea linkului"), "linkHasExpired": @@ -1201,7 +1201,7 @@ class MessageLookup extends MessageLookupByLibrary { "moveToAlbum": MessageLookupByLibrary.simpleMessage("Mutare în album"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("Mutați în albumul ascuns"), - "movedSuccessfullyTo": m50, + "movedSuccessfullyTo": m51, "movedToTrash": MessageLookupByLibrary.simpleMessage("S-a mutat în coșul de gunoi"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1253,10 +1253,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Niciun rezultat"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Nu s-au găsit rezultate"), - "noSuggestionsForPerson": m51, + "noSuggestionsForPerson": m52, "noSystemLockFound": MessageLookupByLibrary.simpleMessage( "Nu s-a găsit nicio blocare de sistem"), - "notPersonLabel": m52, + "notPersonLabel": m53, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( "Nimic distribuit cu dvs. încă"), "nothingToSeeHere": @@ -1267,7 +1267,7 @@ class MessageLookup extends MessageLookupByLibrary { "onEnte": MessageLookupByLibrary.simpleMessage( "Pe ente"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), - "onlyFamilyAdminCanChangeCode": m53, + "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Numai el/ea"), "oops": MessageLookupByLibrary.simpleMessage("Ups"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( @@ -1306,7 +1306,7 @@ class MessageLookup extends MessageLookupByLibrary { "Parola a fost schimbată cu succes"), "passwordLock": MessageLookupByLibrary.simpleMessage("Blocare cu parolă"), - "passwordStrength": m55, + "passwordStrength": m56, "passwordStrengthInfo": MessageLookupByLibrary.simpleMessage( "Puterea parolei este calculată luând în considerare lungimea parolei, caracterele utilizate și dacă parola apare sau nu în top 10.000 cele mai utilizate parole"), "passwordWarning": MessageLookupByLibrary.simpleMessage( @@ -1317,7 +1317,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Plata nu a reușit"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Din păcate, plata dvs. nu a reușit. Vă rugăm să contactați asistență și vom fi bucuroși să vă ajutăm!"), - "paymentFailedTalkToProvider": m56, + "paymentFailedTalkToProvider": m57, "pendingItems": MessageLookupByLibrary.simpleMessage("Elemente în așteptare"), "pendingSync": @@ -1346,7 +1346,7 @@ class MessageLookup extends MessageLookupByLibrary { "pinAlbum": MessageLookupByLibrary.simpleMessage("Fixați albumul"), "pinLock": MessageLookupByLibrary.simpleMessage("Blocare PIN"), "playOnTv": MessageLookupByLibrary.simpleMessage("Redare album pe TV"), - "playStoreFreeTrialValidTill": m61, + "playStoreFreeTrialValidTill": m62, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("Abonament PlayStore"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1358,14 +1358,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Vă rugăm să contactați asistența dacă problema persistă"), - "pleaseEmailUsAt": m62, + "pleaseEmailUsAt": m63, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage( "Vă rugăm să acordați permisiuni"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage( "Vă rugăm, autentificați-vă din nou"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Vă rugăm să selectați linkurile rapide de eliminat"), - "pleaseSendTheLogsTo": m63, + "pleaseSendTheLogsTo": m64, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Vă rugăm să încercați din nou"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1395,7 +1395,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Distribuire privată"), "proceed": MessageLookupByLibrary.simpleMessage("Continuați"), "processed": MessageLookupByLibrary.simpleMessage("Procesate"), - "processingImport": m65, + "processingImport": m66, "publicLinkCreated": MessageLookupByLibrary.simpleMessage("Link public creat"), "publicLinkEnabled": @@ -1407,7 +1407,7 @@ class MessageLookup extends MessageLookupByLibrary { "rateTheApp": MessageLookupByLibrary.simpleMessage("Evaluați aplicația"), "rateUs": MessageLookupByLibrary.simpleMessage("Evaluați-ne"), - "rateUsOnStore": m66, + "rateUsOnStore": m67, "recover": MessageLookupByLibrary.simpleMessage("Recuperare"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Recuperare cont"), @@ -1416,7 +1416,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Recuperare cont"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("Recuperare inițiată"), - "recoveryInitiatedDesc": m68, + "recoveryInitiatedDesc": m69, "recoveryKey": MessageLookupByLibrary.simpleMessage("Cheie de recuperare"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( @@ -1431,12 +1431,12 @@ class MessageLookup extends MessageLookupByLibrary { "Cheie de recuperare verificată"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Cheia dvs. de recuperare este singura modalitate de a vă recupera fotografiile dacă uitați parola. Puteți găsi cheia dvs. de recuperare în Setări > Cont.\n\nVă rugăm să introduceți aici cheia de recuperare pentru a verifica dacă ați salvat-o corect."), - "recoveryReady": m69, + "recoveryReady": m70, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("Recuperare reușită!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "Un contact de încredere încearcă să vă acceseze contul"), - "recoveryWarningBody": m70, + "recoveryWarningBody": m71, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "Dispozitivul actual nu este suficient de puternic pentru a vă verifica parola, dar o putem regenera într-un mod care să funcționeze cu toate dispozitivele.\n\nVă rugăm să vă conectați utilizând cheia de recuperare și să vă regenerați parola (dacă doriți, o puteți utiliza din nou pe aceeași)."), "recreatePasswordTitle": @@ -1452,7 +1452,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Dați acest cod prietenilor"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Aceștia se înscriu la un plan cu plată"), - "referralStep3": m71, + "referralStep3": m72, "referrals": MessageLookupByLibrary.simpleMessage("Recomandări"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Recomandările sunt momentan întrerupte"), @@ -1484,7 +1484,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Eliminați linkul"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Eliminați participantul"), - "removeParticipantBody": m72, + "removeParticipantBody": m73, "removePersonLabel": MessageLookupByLibrary.simpleMessage( "Eliminați eticheta persoanei"), "removePublicLink": @@ -1505,7 +1505,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Redenumiți fișierul"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Reînnoire abonament"), - "renewsOn": m73, + "renewsOn": m74, "reportABug": MessageLookupByLibrary.simpleMessage("Raportați o eroare"), "reportBug": MessageLookupByLibrary.simpleMessage("Raportare eroare"), @@ -1586,8 +1586,8 @@ class MessageLookup extends MessageLookupByLibrary { "Invitați persoane și veți vedea aici toate fotografiile distribuite de acestea"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "Persoanele vor fi afișate aici odată ce procesarea și sincronizarea este completă"), - "searchResultCount": m75, - "searchSectionsLengthMismatch": m76, + "searchResultCount": m76, + "searchSectionsLengthMismatch": m77, "security": MessageLookupByLibrary.simpleMessage("Securitate"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Vedeți linkurile albumelor publice în aplicație"), @@ -1622,8 +1622,8 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeDeletedFromAllAlbumsAndMoved": MessageLookupByLibrary.simpleMessage( "Articolele selectate vor fi șterse din toate albumele și mutate în coșul de gunoi."), - "selectedPhotos": m77, - "selectedPhotosWithYours": m78, + "selectedPhotos": m78, + "selectedPhotosWithYours": m79, "send": MessageLookupByLibrary.simpleMessage("Trimitere"), "sendEmail": MessageLookupByLibrary.simpleMessage("Trimiteți e-mail"), "sendInvite": @@ -1656,16 +1656,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Distribuiți un album acum"), "shareLink": MessageLookupByLibrary.simpleMessage("Distribuiți linkul"), - "shareMyVerificationID": m80, + "shareMyVerificationID": m81, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Distribuiți numai cu persoanele pe care le doriți"), - "shareTextConfirmOthersVerificationID": m81, + "shareTextConfirmOthersVerificationID": m82, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Descarcă Ente pentru a putea distribui cu ușurință fotografii și videoclipuri în calitate originală\n\nhttps://ente.io"), - "shareTextReferralCode": m82, + "shareTextReferralCode": m83, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Distribuiți cu utilizatori din afara Ente"), - "shareWithPeopleSectionTitle": m83, + "shareWithPeopleSectionTitle": m84, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("Distribuiți primul album"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1678,7 +1678,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Fotografii partajate noi"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Primiți notificări atunci când cineva adaugă o fotografie la un album distribuit din care faceți parte"), - "sharedWith": m84, + "sharedWith": m85, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Distribuit mie"), "sharedWithYou": MessageLookupByLibrary.simpleMessage("Distribuite cu dvs."), @@ -1694,11 +1694,11 @@ class MessageLookup extends MessageLookupByLibrary { "Deconectați alte dispozitive"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Sunt de acord cu termenii de prestare ai serviciului și politica de confidențialitate"), - "singleFileDeleteFromDevice": m85, + "singleFileDeleteFromDevice": m86, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Acesta va fi șters din toate albumele."), - "singleFileInBothLocalAndRemote": m86, - "singleFileInRemoteOnly": m87, + "singleFileInBothLocalAndRemote": m87, + "singleFileInRemoteOnly": m88, "skip": MessageLookupByLibrary.simpleMessage("Omiteți"), "social": MessageLookupByLibrary.simpleMessage("Rețele socializare"), "someItemsAreInBothEnteAndYourDevice": @@ -1746,13 +1746,13 @@ class MessageLookup extends MessageLookupByLibrary { "storage": MessageLookupByLibrary.simpleMessage("Spațiu"), "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("Familie"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("Dvs."), - "storageInGB": m90, + "storageInGB": m91, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Limita de spațiu depășită"), - "storageUsageInfo": m91, + "storageUsageInfo": m92, "strongStrength": MessageLookupByLibrary.simpleMessage("Puternică"), - "subAlreadyLinkedErrMessage": m92, - "subWillBeCancelledOn": m93, + "subAlreadyLinkedErrMessage": m93, + "subWillBeCancelledOn": m94, "subscribe": MessageLookupByLibrary.simpleMessage("Abonare"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Aveți nevoie de un abonament plătit activ pentru a activa distribuirea."), @@ -1769,7 +1769,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("Sugerați funcționalități"), "support": MessageLookupByLibrary.simpleMessage("Asistență"), - "syncProgress": m94, + "syncProgress": m95, "syncStopped": MessageLookupByLibrary.simpleMessage("Sincronizare oprită"), "syncing": MessageLookupByLibrary.simpleMessage("Sincronizare..."), @@ -1782,7 +1782,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Atingeți pentru a debloca"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Atingeți pentru a încărca"), - "tapToUploadIsIgnoredDue": m95, + "tapToUploadIsIgnoredDue": m96, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Se pare că ceva nu a mers bine. Vă rugăm să încercați din nou după ceva timp. Dacă eroarea persistă, vă rugăm să contactați echipa noastră de asistență."), "terminate": MessageLookupByLibrary.simpleMessage("Terminare"), @@ -1805,7 +1805,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Aceste articole vor fi șterse din dispozitivul dvs."), - "theyAlsoGetXGb": m96, + "theyAlsoGetXGb": m97, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Acestea vor fi șterse din toate albumele."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( @@ -1821,7 +1821,7 @@ class MessageLookup extends MessageLookupByLibrary { "Această adresă de e-mail este deja folosită"), "thisImageHasNoExifData": MessageLookupByLibrary.simpleMessage( "Această imagine nu are date exif"), - "thisIsPersonVerificationId": m97, + "thisIsPersonVerificationId": m98, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage( "Acesta este ID-ul dvs. de verificare"), "thisWillLogYouOutOfTheFollowingDevice": @@ -1846,11 +1846,11 @@ class MessageLookup extends MessageLookupByLibrary { "total": MessageLookupByLibrary.simpleMessage("total"), "totalSize": MessageLookupByLibrary.simpleMessage("Dimensiune totală"), "trash": MessageLookupByLibrary.simpleMessage("Coș de gunoi"), - "trashDaysLeft": m100, + "trashDaysLeft": m101, "trim": MessageLookupByLibrary.simpleMessage("Decupare"), "trustedContacts": MessageLookupByLibrary.simpleMessage("Contacte de încredere"), - "trustedInviteBody": m103, + "trustedInviteBody": m104, "tryAgain": MessageLookupByLibrary.simpleMessage("Încercați din nou"), "turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage( "Activați copia de rezervă pentru a încărca automat fișierele adăugate la acest dosar de pe dispozitiv în Ente."), @@ -1869,7 +1869,7 @@ class MessageLookup extends MessageLookupByLibrary { "Autentificarea cu doi factori a fost resetată cu succes"), "twofactorSetup": MessageLookupByLibrary.simpleMessage("Configurare doi factori"), - "typeOfGallerGallerytypeIsNotSupportedForRename": m104, + "typeOfGallerGallerytypeIsNotSupportedForRename": m105, "unarchive": MessageLookupByLibrary.simpleMessage("Dezarhivare"), "unarchiveAlbum": MessageLookupByLibrary.simpleMessage("Dezarhivare album"), @@ -1895,10 +1895,10 @@ class MessageLookup extends MessageLookupByLibrary { "updatingFolderSelection": MessageLookupByLibrary.simpleMessage( "Se actualizează selecția dosarelor..."), "upgrade": MessageLookupByLibrary.simpleMessage("Îmbunătățire"), - "uploadIsIgnoredDueToIgnorereason": m105, + "uploadIsIgnoredDueToIgnorereason": m106, "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage( "Se încarcă fișiere în album..."), - "uploadingMultipleMemories": m106, + "uploadingMultipleMemories": m107, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage("Se salvează o amintire..."), "upto50OffUntil4thDec": MessageLookupByLibrary.simpleMessage( @@ -1916,7 +1916,7 @@ class MessageLookup extends MessageLookupByLibrary { "useSelectedPhoto": MessageLookupByLibrary.simpleMessage( "Folosiți fotografia selectată"), "usedSpace": MessageLookupByLibrary.simpleMessage("Spațiu utilizat"), - "validTill": m107, + "validTill": m108, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Verificare eșuată, încercați din nou"), @@ -1925,7 +1925,7 @@ class MessageLookup extends MessageLookupByLibrary { "verify": MessageLookupByLibrary.simpleMessage("Verificare"), "verifyEmail": MessageLookupByLibrary.simpleMessage("Verificare e-mail"), - "verifyEmailID": m108, + "verifyEmailID": m109, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("Verificare"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("Verificați cheia de acces"), @@ -1963,7 +1963,7 @@ class MessageLookup extends MessageLookupByLibrary { "weDontSupportEditingPhotosAndAlbumsThatYouDont": MessageLookupByLibrary.simpleMessage( "Nu se acceptă editarea fotografiilor sau albumelor pe care nu le dețineți încă"), - "weHaveSendEmailTo": m110, + "weHaveSendEmailTo": m112, "weakStrength": MessageLookupByLibrary.simpleMessage("Slabă"), "welcomeBack": MessageLookupByLibrary.simpleMessage("Bine ați revenit!"), @@ -1972,7 +1972,7 @@ class MessageLookup extends MessageLookupByLibrary { "Contactul de încredere vă poate ajuta la recuperarea datelor."), "yearShort": MessageLookupByLibrary.simpleMessage("an"), "yearly": MessageLookupByLibrary.simpleMessage("Anual"), - "yearsAgo": m111, + "yearsAgo": m113, "yes": MessageLookupByLibrary.simpleMessage("Da"), "yesCancel": MessageLookupByLibrary.simpleMessage("Da, anulează"), "yesConvertToViewer": @@ -2004,7 +2004,7 @@ class MessageLookup extends MessageLookupByLibrary { "Nu poți distribui cu tine însuți"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage("Nu aveți articole arhivate."), - "youHaveSuccessfullyFreedUp": m113, + "youHaveSuccessfullyFreedUp": m115, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage("Contul dvs. a fost șters"), "yourMap": MessageLookupByLibrary.simpleMessage("Harta dvs."), diff --git a/mobile/lib/generated/intl/messages_ru.dart b/mobile/lib/generated/intl/messages_ru.dart index 1add5befd0..ee22b7e30d 100644 --- a/mobile/lib/generated/intl/messages_ru.dart +++ b/mobile/lib/generated/intl/messages_ru.dart @@ -98,223 +98,223 @@ class MessageLookup extends MessageLookupByLibrary { static String m26(count, formattedSize) => "${count} файлов, по ${formattedSize} каждый"; - static String m27(newEmail) => "Электронная почта изменена на ${newEmail}"; + static String m28(newEmail) => "Электронная почта изменена на ${newEmail}"; - static String m28(email) => "${email} не имеет аккаунта Ente."; + static String m29(email) => "${email} не имеет аккаунта Ente."; - static String m29(email) => + static String m30(email) => "У ${email} нет аккаунта Ente.\n\nОтправьте ему приглашение для обмена фото."; - static String m30(name) => "Обнимая ${name}"; + static String m31(name) => "Обнимая ${name}"; - static String m31(text) => "Дополнительные фото найдены для ${text}"; + static String m32(text) => "Дополнительные фото найдены для ${text}"; - static String m32(name) => "Пир с ${name}"; - - static String m33(count, formattedNumber) => - "${Intl.plural(count, one: '${formattedNumber} файл на этом устройстве был успешно сохранён', other: '${formattedNumber} файлов на этом устройстве были успешно сохранены')}"; + static String m33(name) => "Пир с ${name}"; static String m34(count, formattedNumber) => + "${Intl.plural(count, one: '${formattedNumber} файл на этом устройстве был успешно сохранён', other: '${formattedNumber} файлов на этом устройстве были успешно сохранены')}"; + + static String m35(count, formattedNumber) => "${Intl.plural(count, one: '${formattedNumber} файл в этом альбоме был успешно сохранён', other: '${formattedNumber} файлов в этом альбоме были успешно сохранены')}"; - static String m35(storageAmountInGB) => + static String m36(storageAmountInGB) => "${storageAmountInGB} ГБ каждый раз, когда кто-то подписывается на платный тариф и применяет ваш код"; - static String m36(endDate) => + static String m37(endDate) => "Бесплатный пробный период действителен до ${endDate}"; - static String m37(count) => + static String m38(count) => "Вы всё ещё сможете получить доступ к ${Intl.plural(count, one: 'нему', other: 'ним')} в Ente, пока у вас активна подписка"; - static String m38(sizeInMBorGB) => "Освободить ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "Освободить ${sizeInMBorGB}"; - static String m39(count, formattedSize) => + static String m40(count, formattedSize) => "${Intl.plural(count, one: 'Его можно удалить с устройства, чтобы освободить ${formattedSize}', other: 'Их можно удалить с устройства, чтобы освободить ${formattedSize}')}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Обработка ${currentlyProcessing} / ${totalCount}"; - static String m41(name) => "Поход с ${name}"; + static String m42(name) => "Поход с ${name}"; - static String m42(count) => + static String m43(count) => "${Intl.plural(count, one: '${count} элемент', other: '${count} элементов')}"; - static String m43(name) => "В последний раз с ${name}"; + static String m44(name) => "В последний раз с ${name}"; - static String m44(email) => + static String m45(email) => "${email} пригласил вас стать доверенным контактом"; - static String m45(expiryTime) => "Ссылка истечёт ${expiryTime}"; + static String m46(expiryTime) => "Ссылка истечёт ${expiryTime}"; - static String m46(email) => "Связать человека с ${email}"; + static String m47(email) => "Связать человека с ${email}"; - static String m47(personName, email) => "Это свяжет ${personName} с ${email}"; + static String m48(personName, email) => "Это свяжет ${personName} с ${email}"; - static String m48(count, formattedCount) => + static String m49(count, formattedCount) => "${Intl.plural(count, zero: 'нет воспоминаний', one: '${formattedCount} воспоминание', other: '${formattedCount} воспоминаний')}"; - static String m49(count) => + static String m50(count) => "${Intl.plural(count, one: 'Переместить элемент', other: 'Переместить элементы')}"; - static String m50(albumName) => "Успешно перемещено в ${albumName}"; + static String m51(albumName) => "Успешно перемещено в ${albumName}"; - static String m51(personName) => "Нет предложений для ${personName}"; + static String m52(personName) => "Нет предложений для ${personName}"; - static String m52(name) => "Не ${name}?"; + static String m53(name) => "Не ${name}?"; - static String m53(familyAdminEmail) => + static String m54(familyAdminEmail) => "Пожалуйста, свяжитесь с ${familyAdminEmail} для изменения кода."; - static String m54(name) => "Вечеринка с ${name}"; + static String m55(name) => "Вечеринка с ${name}"; - static String m55(passwordStrengthValue) => + static String m56(passwordStrengthValue) => "Надёжность пароля: ${passwordStrengthValue}"; - static String m56(providerName) => + static String m57(providerName) => "Пожалуйста, обратитесь в поддержку ${providerName}, если с вас сняли деньги"; - static String m57(name, age) => "${name} исполнилось ${age}!"; + static String m58(name, age) => "${name} исполнилось ${age}!"; - static String m58(name, age) => "${name} скоро исполнится ${age}"; - - static String m59(count) => - "${Intl.plural(count, zero: 'Нет фото', one: '1 фото', other: '${count} фото')}"; + static String m59(name, age) => "${name} скоро исполнится ${age}"; static String m60(count) => + "${Intl.plural(count, zero: 'Нет фото', one: '1 фото', other: '${count} фото')}"; + + static String m61(count) => "${Intl.plural(count, zero: '0 фотографий', one: '1 фотография', other: '${count} фотографий')}"; - static String m61(endDate) => + static String m62(endDate) => "Бесплатный пробный период действителен до ${endDate}.\nПосле этого вы можете выбрать платный тариф."; - static String m62(toEmail) => "Пожалуйста, напишите нам на ${toEmail}"; + static String m63(toEmail) => "Пожалуйста, напишите нам на ${toEmail}"; - static String m63(toEmail) => "Пожалуйста, отправьте логи на \n${toEmail}"; + static String m64(toEmail) => "Пожалуйста, отправьте логи на \n${toEmail}"; - static String m64(name) => "Позируя с ${name}"; + static String m65(name) => "Позируя с ${name}"; - static String m65(folderName) => "Обработка ${folderName}..."; + static String m66(folderName) => "Обработка ${folderName}..."; - static String m66(storeName) => "Оцените нас в ${storeName}"; + static String m67(storeName) => "Оцените нас в ${storeName}"; - static String m67(name) => "Вы переназначены на ${name}"; + static String m68(name) => "Вы переназначены на ${name}"; - static String m68(days, email) => + static String m69(days, email) => "Вы сможете получить доступ к аккаунту через ${days} дней. Уведомление будет отправлено на ${email}."; - static String m69(email) => + static String m70(email) => "Теперь вы можете восстановить аккаунт ${email}, установив новый пароль."; - static String m70(email) => "${email} пытается восстановить ваш аккаунт."; + static String m71(email) => "${email} пытается восстановить ваш аккаунт."; - static String m71(storageInGB) => + static String m72(storageInGB) => "3. Вы оба получаете ${storageInGB} ГБ* бесплатно"; - static String m72(userEmail) => + static String m73(userEmail) => "${userEmail} будет удалён из этого общего альбома\n\nВсе фото, добавленные этим пользователем, также будут удалены из альбома"; - static String m73(endDate) => "Подписка будет продлена ${endDate}"; + static String m74(endDate) => "Подписка будет продлена ${endDate}"; - static String m74(name) => "Путешествие с ${name}"; + static String m75(name) => "Путешествие с ${name}"; - static String m75(count) => + static String m76(count) => "${Intl.plural(count, one: '${count} результат найден', other: '${count} результатов найдено')}"; - static String m76(snapshotLength, searchLength) => + static String m77(snapshotLength, searchLength) => "Несоответствие длины разделов: ${snapshotLength} != ${searchLength}"; - static String m77(count) => "${count} выбрано"; + static String m78(count) => "${count} выбрано"; - static String m78(count, yourCount) => + static String m79(count, yourCount) => "${count} выбрано (${yourCount} ваших)"; - static String m79(name) => "Селфи с ${name}"; - - static String m80(verificationID) => - "Вот мой идентификатор подтверждения: ${verificationID} для ente.io."; + static String m80(name) => "Селфи с ${name}"; static String m81(verificationID) => + "Вот мой идентификатор подтверждения: ${verificationID} для ente.io."; + + static String m82(verificationID) => "Привет, можешь подтвердить, что это твой идентификатор подтверждения ente.io: ${verificationID}"; - static String m82(referralCode, referralStorageInGB) => + static String m83(referralCode, referralStorageInGB) => "Реферальный код Ente: ${referralCode} \n\nПримените его в разделе «Настройки» → «Общие» → «Рефералы», чтобы получить ${referralStorageInGB} ГБ бесплатно после подписки на платный тариф\n\nhttps://ente.io"; - static String m83(numberOfPeople) => + static String m84(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Поделиться с конкретными людьми', one: 'Доступно 1 человеку', other: 'Доступно ${numberOfPeople} людям')}"; - static String m84(emailIDs) => "Доступен для ${emailIDs}"; - - static String m85(fileType) => - "Это ${fileType} будет удалено с вашего устройства."; + static String m85(emailIDs) => "Доступен для ${emailIDs}"; static String m86(fileType) => + "Это ${fileType} будет удалено с вашего устройства."; + + static String m87(fileType) => "Это ${fileType} есть и в Ente, и на вашем устройстве."; - static String m87(fileType) => "Это ${fileType} будет удалено из Ente."; + static String m88(fileType) => "Это ${fileType} будет удалено из Ente."; - static String m88(name) => "Спорт с ${name}"; + static String m89(name) => "Спорт с ${name}"; - static String m89(name) => "В центре внимания ${name}"; + static String m90(name) => "В центре внимания ${name}"; - static String m90(storageAmountInGB) => "${storageAmountInGB} ГБ"; + static String m91(storageAmountInGB) => "${storageAmountInGB} ГБ"; - static String m91( + static String m92( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "Использовано ${usedAmount} ${usedStorageUnit} из ${totalAmount} ${totalStorageUnit}"; - static String m92(id) => + static String m93(id) => "Ваш ${id} уже связан с другим аккаунтом Ente.\nЕсли вы хотите использовать ${id} с этим аккаунтом, пожалуйста, свяжитесь с нашей службой поддержки"; - static String m93(endDate) => "Ваша подписка будет отменена ${endDate}"; + static String m94(endDate) => "Ваша подписка будет отменена ${endDate}"; - static String m94(completed, total) => + static String m95(completed, total) => "${completed}/${total} воспоминаний сохранено"; - static String m95(ignoreReason) => + static String m96(ignoreReason) => "Нажмите для загрузки. Загрузка игнорируется из-за ${ignoreReason}"; - static String m96(storageAmountInGB) => + static String m97(storageAmountInGB) => "Они тоже получат ${storageAmountInGB} ГБ"; - static String m97(email) => "Это идентификатор подтверждения ${email}"; + static String m98(email) => "Это идентификатор подтверждения ${email}"; - static String m98(count) => + static String m99(count) => "${Intl.plural(count, one: 'Эта неделя, ${count} год назад', other: 'Эта неделя, ${count} лет назад')}"; - static String m99(dateFormat) => "${dateFormat} сквозь годы"; + static String m100(dateFormat) => "${dateFormat} сквозь годы"; - static String m100(count) => + static String m101(count) => "${Intl.plural(count, zero: 'Скоро', one: '1 день', other: '${count} дней')}"; - static String m101(year) => "Поездка в ${year}"; + static String m102(year) => "Поездка в ${year}"; - static String m102(location) => "Поездка в ${location}"; + static String m103(location) => "Поездка в ${location}"; - static String m103(email) => + static String m104(email) => "Вы приглашены стать доверенным контактом ${email}."; - static String m104(galleryType) => + static String m105(galleryType) => "Тип галереи ${galleryType} не поддерживает переименование"; - static String m105(ignoreReason) => + static String m106(ignoreReason) => "Загрузка игнорируется из-за ${ignoreReason}"; - static String m106(count) => "Сохранение ${count} воспоминаний..."; + static String m107(count) => "Сохранение ${count} воспоминаний..."; - static String m107(endDate) => "Действительно до ${endDate}"; + static String m108(endDate) => "Действительно до ${endDate}"; - static String m108(email) => "Подтвердить ${email}"; - - static String m109(count) => - "${Intl.plural(count, zero: 'Добавлено 0 зрителей', one: 'Добавлен 1 зритель', other: 'Добавлено ${count} зрителей')}"; - - static String m110(email) => "Мы отправили письмо на ${email}"; + static String m109(email) => "Подтвердить ${email}"; static String m111(count) => + "${Intl.plural(count, zero: 'Добавлено 0 зрителей', one: 'Добавлен 1 зритель', other: 'Добавлено ${count} зрителей')}"; + + static String m112(email) => "Мы отправили письмо на ${email}"; + + static String m113(count) => "${Intl.plural(count, one: '${count} год назад', few: '${count} года назад', other: '${count} лет назад')}"; - static String m112(name) => "Вы и ${name}"; + static String m114(name) => "Вы и ${name}"; - static String m113(storageSaved) => "Вы успешно освободили ${storageSaved}!"; + static String m115(storageSaved) => "Вы успешно освободили ${storageSaved}!"; final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { @@ -881,16 +881,16 @@ class MessageLookup extends MessageLookupByLibrary { "email": MessageLookupByLibrary.simpleMessage("Электронная почта"), "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage( "Электронная почта уже зарегистрирована."), - "emailChangedTo": m27, - "emailDoesNotHaveEnteAccount": m28, - "emailNoEnteAccount": m29, + "emailChangedTo": m28, + "emailDoesNotHaveEnteAccount": m29, + "emailNoEnteAccount": m30, "emailNotRegistered": MessageLookupByLibrary.simpleMessage( "Электронная почта не зарегистрирована."), "emailVerificationToggle": MessageLookupByLibrary.simpleMessage( "Подтверждение входа по почте"), "emailYourLogs": MessageLookupByLibrary.simpleMessage( "Отправить логи по электронной почте"), - "embracingThem": m30, + "embracingThem": m31, "emergencyContacts": MessageLookupByLibrary.simpleMessage("Экстренные контакты"), "empty": MessageLookupByLibrary.simpleMessage("Очистить"), @@ -968,7 +968,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Экспортировать ваши данные"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage("Найдены дополнительные фото"), - "extraPhotosFoundFor": m31, + "extraPhotosFoundFor": m32, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Лицо ещё не кластеризовано. Пожалуйста, попробуйте позже"), "faceRecognition": @@ -1006,7 +1006,7 @@ class MessageLookup extends MessageLookupByLibrary { "faqs": MessageLookupByLibrary.simpleMessage("Часто задаваемые вопросы"), "favorite": MessageLookupByLibrary.simpleMessage("В избранное"), - "feastingWithThem": m32, + "feastingWithThem": m33, "feedback": MessageLookupByLibrary.simpleMessage("Обратная связь"), "file": MessageLookupByLibrary.simpleMessage("Файл"), "fileFailedToSaveToGallery": MessageLookupByLibrary.simpleMessage( @@ -1020,8 +1020,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Типы файлов"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Типы и названия файлов"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m34, + "filesBackedUpInAlbum": m35, "filesDeleted": MessageLookupByLibrary.simpleMessage("Файлы удалены"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage("Файлы сохранены в галерею"), @@ -1037,27 +1037,27 @@ class MessageLookup extends MessageLookupByLibrary { "foundFaces": MessageLookupByLibrary.simpleMessage("Найденные лица"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage( "Полученное бесплатное хранилище"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m36, "freeStorageUsable": MessageLookupByLibrary.simpleMessage( "Доступное бесплатное хранилище"), "freeTrial": MessageLookupByLibrary.simpleMessage("Бесплатный пробный период"), - "freeTrialValidTill": m36, - "freeUpAccessPostDelete": m37, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAccessPostDelete": m38, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage( "Освободить место на устройстве"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "Освободите место на устройстве, удалив файлы, которые уже сохранены в резервной копии."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Освободить место"), - "freeUpSpaceSaving": m39, + "freeUpSpaceSaving": m40, "gallery": MessageLookupByLibrary.simpleMessage("Галерея"), "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "В галерее отображается до 1000 воспоминаний"), "general": MessageLookupByLibrary.simpleMessage("Общие"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Генерация ключей шифрования..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Перейти в настройки"), "googlePlayId": @@ -1088,7 +1088,7 @@ class MessageLookup extends MessageLookupByLibrary { "hideSharedItemsFromHomeGallery": MessageLookupByLibrary.simpleMessage( "Скрыть общие элементы из основной галереи"), "hiding": MessageLookupByLibrary.simpleMessage("Скрытие..."), - "hikingWithThem": m41, + "hikingWithThem": m42, "hostedAtOsmFrance": MessageLookupByLibrary.simpleMessage("Размещено на OSM France"), "howItWorks": MessageLookupByLibrary.simpleMessage("Как это работает"), @@ -1146,7 +1146,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Похоже, что-то пошло не так. Пожалуйста, повторите попытку через некоторое время. Если ошибка сохраняется, обратитесь в нашу службу поддержки."), - "itemCount": m42, + "itemCount": m43, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "На элементах отображается количество дней, оставшихся до их безвозвратного удаления"), @@ -1168,7 +1168,7 @@ class MessageLookup extends MessageLookupByLibrary { "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage( "Пожалуйста, помогите нам с этой информацией"), "language": MessageLookupByLibrary.simpleMessage("Язык"), - "lastTimeWithThem": m43, + "lastTimeWithThem": m44, "lastUpdated": MessageLookupByLibrary.simpleMessage("Последнее обновление"), "lastYearsTrip": @@ -1182,7 +1182,7 @@ class MessageLookup extends MessageLookupByLibrary { "legacy": MessageLookupByLibrary.simpleMessage("Наследие"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Наследуемые аккаунты"), - "legacyInvite": m44, + "legacyInvite": m45, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "Наследие позволяет доверенным контактам получить доступ к вашему аккаунту в ваше отсутствие."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( @@ -1200,7 +1200,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("чтобы быстрее делиться"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Включена"), "linkExpired": MessageLookupByLibrary.simpleMessage("Истекла"), - "linkExpiresOn": m45, + "linkExpiresOn": m46, "linkExpiry": MessageLookupByLibrary.simpleMessage("Срок действия ссылки"), "linkHasExpired": @@ -1209,8 +1209,8 @@ class MessageLookup extends MessageLookupByLibrary { "linkPerson": MessageLookupByLibrary.simpleMessage("Связать человека"), "linkPersonCaption": MessageLookupByLibrary.simpleMessage("чтобы было удобнее делиться"), - "linkPersonToEmail": m46, - "linkPersonToEmailConfirmation": m47, + "linkPersonToEmail": m47, + "linkPersonToEmailConfirmation": m48, "livePhotos": MessageLookupByLibrary.simpleMessage("Живые фото"), "loadMessage1": MessageLookupByLibrary.simpleMessage( "Вы можете поделиться подпиской с вашей семьёй"), @@ -1299,7 +1299,7 @@ class MessageLookup extends MessageLookupByLibrary { "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), "me": MessageLookupByLibrary.simpleMessage("Я"), - "memoryCount": m48, + "memoryCount": m49, "merchandise": MessageLookupByLibrary.simpleMessage("Мерч"), "mergeWithExisting": MessageLookupByLibrary.simpleMessage("Объединить с существующим"), @@ -1332,14 +1332,14 @@ class MessageLookup extends MessageLookupByLibrary { "mostRelevant": MessageLookupByLibrary.simpleMessage("Самые актуальные"), "mountains": MessageLookupByLibrary.simpleMessage("За холмами"), - "moveItem": m49, + "moveItem": m50, "moveSelectedPhotosToOneDate": MessageLookupByLibrary.simpleMessage( "Переместите выбранные фото на одну дату"), "moveToAlbum": MessageLookupByLibrary.simpleMessage("Переместить в альбом"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage( "Переместить в скрытый альбом"), - "movedSuccessfullyTo": m50, + "movedSuccessfullyTo": m51, "movedToTrash": MessageLookupByLibrary.simpleMessage("Перемещено в корзину"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1394,10 +1394,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Нет результатов"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Нет результатов"), - "noSuggestionsForPerson": m51, + "noSuggestionsForPerson": m52, "noSystemLockFound": MessageLookupByLibrary.simpleMessage( "Системная блокировка не найдена"), - "notPersonLabel": m52, + "notPersonLabel": m53, "notThisPerson": MessageLookupByLibrary.simpleMessage("Не этот человек?"), "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( @@ -1411,7 +1411,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("В ente"), "onTheRoad": MessageLookupByLibrary.simpleMessage("Снова в пути"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), - "onlyFamilyAdminCanChangeCode": m53, + "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Только он(а)"), "oops": MessageLookupByLibrary.simpleMessage("Ой"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( @@ -1442,7 +1442,7 @@ class MessageLookup extends MessageLookupByLibrary { "pairingComplete": MessageLookupByLibrary.simpleMessage("Подключение завершено"), "panorama": MessageLookupByLibrary.simpleMessage("Панорама"), - "partyWithThem": m54, + "partyWithThem": m55, "passKeyPendingVerification": MessageLookupByLibrary.simpleMessage("Проверка всё ещё ожидается"), "passkey": MessageLookupByLibrary.simpleMessage("Ключ доступа"), @@ -1452,7 +1452,7 @@ class MessageLookup extends MessageLookupByLibrary { "passwordChangedSuccessfully": MessageLookupByLibrary.simpleMessage("Пароль успешно изменён"), "passwordLock": MessageLookupByLibrary.simpleMessage("Защита паролем"), - "passwordStrength": m55, + "passwordStrength": m56, "passwordStrengthInfo": MessageLookupByLibrary.simpleMessage( "Надёжность пароля определяется его длиной, используемыми символами и присутствием среди 10000 самых популярных паролей"), "passwordWarning": MessageLookupByLibrary.simpleMessage( @@ -1463,7 +1463,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Платёж не удался"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "К сожалению, ваш платёж не удался. Пожалуйста, свяжитесь с поддержкой, и мы вам поможем!"), - "paymentFailedTalkToProvider": m56, + "paymentFailedTalkToProvider": m57, "pendingItems": MessageLookupByLibrary.simpleMessage("Элементы в очереди"), "pendingSync": @@ -1477,21 +1477,21 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Удалить безвозвратно"), "permanentlyDeleteFromDevice": MessageLookupByLibrary.simpleMessage( "Удалить с устройства безвозвратно?"), - "personIsAge": m57, + "personIsAge": m58, "personName": MessageLookupByLibrary.simpleMessage("Имя человека"), - "personTurningAge": m58, + "personTurningAge": m59, "pets": MessageLookupByLibrary.simpleMessage("Пушистые спутники"), "photoDescriptions": MessageLookupByLibrary.simpleMessage("Описания фото"), "photoGridSize": MessageLookupByLibrary.simpleMessage("Размер сетки фото"), "photoSmallCase": MessageLookupByLibrary.simpleMessage("фото"), - "photocountPhotos": m59, + "photocountPhotos": m60, "photos": MessageLookupByLibrary.simpleMessage("Фото"), "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "Добавленные вами фото будут удалены из альбома"), - "photosCount": m60, + "photosCount": m61, "photosKeepRelativeTimeDifference": MessageLookupByLibrary.simpleMessage( "Фото сохранят относительную разницу во времени"), @@ -1503,7 +1503,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Воспроизвести альбом на ТВ"), "playOriginal": MessageLookupByLibrary.simpleMessage("Воспроизвести оригинал"), - "playStoreFreeTrialValidTill": m61, + "playStoreFreeTrialValidTill": m62, "playStream": MessageLookupByLibrary.simpleMessage("Воспроизвести поток"), "playstoreSubscription": @@ -1517,14 +1517,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Пожалуйста, обратитесь в поддержку, если проблема сохраняется"), - "pleaseEmailUsAt": m62, + "pleaseEmailUsAt": m63, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage( "Пожалуйста, предоставьте разрешения"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Пожалуйста, войдите снова"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Пожалуйста, выберите быстрые ссылки для удаления"), - "pleaseSendTheLogsTo": m63, + "pleaseSendTheLogsTo": m64, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Пожалуйста, попробуйте снова"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1539,7 +1539,7 @@ class MessageLookup extends MessageLookupByLibrary { "Пожалуйста, подождите некоторое время перед повторной попыткой"), "pleaseWaitThisWillTakeAWhile": MessageLookupByLibrary.simpleMessage( "Пожалуйста, подождите, это займёт некоторое время."), - "posingWithThem": m64, + "posingWithThem": m65, "preparingLogs": MessageLookupByLibrary.simpleMessage("Подготовка логов..."), "preserveMore": @@ -1559,7 +1559,7 @@ class MessageLookup extends MessageLookupByLibrary { "proceed": MessageLookupByLibrary.simpleMessage("Продолжить"), "processed": MessageLookupByLibrary.simpleMessage("Обработано"), "processing": MessageLookupByLibrary.simpleMessage("Обработка"), - "processingImport": m65, + "processingImport": m66, "processingVideos": MessageLookupByLibrary.simpleMessage("Обработка видео"), "publicLinkCreated": @@ -1573,10 +1573,10 @@ class MessageLookup extends MessageLookupByLibrary { "rateTheApp": MessageLookupByLibrary.simpleMessage("Оценить приложение"), "rateUs": MessageLookupByLibrary.simpleMessage("Оцените нас"), - "rateUsOnStore": m66, + "rateUsOnStore": m67, "reassignMe": MessageLookupByLibrary.simpleMessage("Переназначить \"Меня\""), - "reassignedToName": m67, + "reassignedToName": m68, "reassigningLoading": MessageLookupByLibrary.simpleMessage("Переназначение..."), "recover": MessageLookupByLibrary.simpleMessage("Восстановить"), @@ -1587,7 +1587,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Восстановить аккаунт"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("Восстановление начато"), - "recoveryInitiatedDesc": m68, + "recoveryInitiatedDesc": m69, "recoveryKey": MessageLookupByLibrary.simpleMessage("Ключ восстановления"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( @@ -1602,12 +1602,12 @@ class MessageLookup extends MessageLookupByLibrary { "Ключ восстановления подтверждён"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Ваш ключ восстановления — единственный способ восстановить ваши фото, если вы забудете пароль. Вы можете найти ключ восстановления в разделе «Настройки» → «Аккаунт».\n\nПожалуйста, введите ваш ключ восстановления здесь, чтобы убедиться, что вы сохранили его правильно."), - "recoveryReady": m69, + "recoveryReady": m70, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("Успешное восстановление!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "Доверенный контакт пытается получить доступ к вашему аккаунту"), - "recoveryWarningBody": m70, + "recoveryWarningBody": m71, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "Текущее устройство недостаточно мощное для проверки вашего пароля, но мы можем сгенерировать его снова так, чтобы он работал на всех устройствах.\n\nПожалуйста, войдите, используя ваш ключ восстановления, и сгенерируйте пароль (при желании вы можете использовать тот же самый)."), "recreatePasswordTitle": @@ -1623,7 +1623,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Даёте этот код своим друзьям"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Они подписываются на платный тариф"), - "referralStep3": m71, + "referralStep3": m72, "referrals": MessageLookupByLibrary.simpleMessage("Рефералы"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Реферальная программа временно приостановлена"), @@ -1655,7 +1655,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Удалить ссылку"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Удалить участника"), - "removeParticipantBody": m72, + "removeParticipantBody": m73, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Удалить метку человека"), "removePublicLink": @@ -1677,7 +1677,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Переименовать файл"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Продлить подписку"), - "renewsOn": m73, + "renewsOn": m74, "reportABug": MessageLookupByLibrary.simpleMessage("Сообщить об ошибке"), "reportBug": MessageLookupByLibrary.simpleMessage("Сообщить об ошибке"), @@ -1704,7 +1704,7 @@ class MessageLookup extends MessageLookupByLibrary { "reviewSuggestions": MessageLookupByLibrary.simpleMessage("Посмотреть предложения"), "right": MessageLookupByLibrary.simpleMessage("Вправо"), - "roadtripWithThem": m74, + "roadtripWithThem": m75, "rotate": MessageLookupByLibrary.simpleMessage("Повернуть"), "rotateLeft": MessageLookupByLibrary.simpleMessage("Повернуть влево"), "rotateRight": MessageLookupByLibrary.simpleMessage("Повернуть вправо"), @@ -1761,8 +1761,8 @@ class MessageLookup extends MessageLookupByLibrary { "Приглашайте людей, и здесь появятся все фото, которыми они поделились"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "Люди появятся здесь после завершения обработки и синхронизации"), - "searchResultCount": m75, - "searchSectionsLengthMismatch": m76, + "searchResultCount": m76, + "searchSectionsLengthMismatch": m77, "security": MessageLookupByLibrary.simpleMessage("Безопасность"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Просматривать публичные ссылки на альбомы в приложении"), @@ -1811,9 +1811,9 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeRemovedFromThisPerson": MessageLookupByLibrary.simpleMessage( "Выбранные элементы будут отвязаны от этого человека, но не удалены из вашей библиотеки."), - "selectedPhotos": m77, - "selectedPhotosWithYours": m78, - "selfiesWithThem": m79, + "selectedPhotos": m78, + "selectedPhotosWithYours": m79, + "selfiesWithThem": m80, "send": MessageLookupByLibrary.simpleMessage("Отправить"), "sendEmail": MessageLookupByLibrary.simpleMessage( "Отправить электронное письмо"), @@ -1848,16 +1848,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Поделиться альбомом"), "shareLink": MessageLookupByLibrary.simpleMessage("Поделиться ссылкой"), - "shareMyVerificationID": m80, + "shareMyVerificationID": m81, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Делитесь только с теми, с кем хотите"), - "shareTextConfirmOthersVerificationID": m81, + "shareTextConfirmOthersVerificationID": m82, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Скачай Ente, чтобы мы могли легко делиться фото и видео в оригинальном качестве\n\nhttps://ente.io"), - "shareTextReferralCode": m82, + "shareTextReferralCode": m83, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Поделиться с пользователями, не использующими Ente"), - "shareWithPeopleSectionTitle": m83, + "shareWithPeopleSectionTitle": m84, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage( "Поделитесь своим первым альбомом"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1868,7 +1868,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Новые общие фото"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Получать уведомления, когда кто-то добавляет фото в общий альбом, в котором вы состоите"), - "sharedWith": m84, + "sharedWith": m85, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Со мной поделились"), "sharedWithYou": @@ -1887,11 +1887,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Выйти с других устройств"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Я согласен с условиями предоставления услуг и политикой конфиденциальности"), - "singleFileDeleteFromDevice": m85, + "singleFileDeleteFromDevice": m86, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Оно будет удалено из всех альбомов."), - "singleFileInBothLocalAndRemote": m86, - "singleFileInRemoteOnly": m87, + "singleFileInBothLocalAndRemote": m87, + "singleFileInRemoteOnly": m88, "skip": MessageLookupByLibrary.simpleMessage("Пропустить"), "social": MessageLookupByLibrary.simpleMessage("Социальные сети"), "someItemsAreInBothEnteAndYourDevice": MessageLookupByLibrary.simpleMessage( @@ -1926,8 +1926,8 @@ class MessageLookup extends MessageLookupByLibrary { "sortOldestFirst": MessageLookupByLibrary.simpleMessage("Сначала старые"), "sparkleSuccess": MessageLookupByLibrary.simpleMessage("✨ Успех"), - "sportsWithThem": m88, - "spotlightOnThem": m89, + "sportsWithThem": m89, + "spotlightOnThem": m90, "spotlightOnYourself": MessageLookupByLibrary.simpleMessage("Вы в центре внимания"), "startAccountRecoveryTitle": @@ -1942,15 +1942,15 @@ class MessageLookup extends MessageLookupByLibrary { "storage": MessageLookupByLibrary.simpleMessage("Хранилище"), "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("Семья"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("Вы"), - "storageInGB": m90, + "storageInGB": m91, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Превышен лимит хранилища"), - "storageUsageInfo": m91, + "storageUsageInfo": m92, "streamDetails": MessageLookupByLibrary.simpleMessage("Информация о потоке"), "strongStrength": MessageLookupByLibrary.simpleMessage("Высокая"), - "subAlreadyLinkedErrMessage": m92, - "subWillBeCancelledOn": m93, + "subAlreadyLinkedErrMessage": m93, + "subWillBeCancelledOn": m94, "subscribe": MessageLookupByLibrary.simpleMessage("Подписаться"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Вам нужна активная платная подписка, чтобы включить общий доступ."), @@ -1968,7 +1968,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Предложить идею"), "sunrise": MessageLookupByLibrary.simpleMessage("На горизонте"), "support": MessageLookupByLibrary.simpleMessage("Поддержка"), - "syncProgress": m94, + "syncProgress": m95, "syncStopped": MessageLookupByLibrary.simpleMessage("Синхронизация остановлена"), "syncing": MessageLookupByLibrary.simpleMessage("Синхронизация..."), @@ -1981,7 +1981,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Нажмите для разблокировки"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Нажмите для загрузки"), - "tapToUploadIsIgnoredDue": m95, + "tapToUploadIsIgnoredDue": m96, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Похоже, что-то пошло не так. Пожалуйста, повторите попытку через некоторое время. Если ошибка сохраняется, обратитесь в нашу службу поддержки."), "terminate": MessageLookupByLibrary.simpleMessage("Завершить"), @@ -2005,7 +2005,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Эти элементы будут удалены с вашего устройства."), - "theyAlsoGetXGb": m96, + "theyAlsoGetXGb": m97, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Они будут удалены из всех альбомов."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( @@ -2022,12 +2022,12 @@ class MessageLookup extends MessageLookupByLibrary { "thisImageHasNoExifData": MessageLookupByLibrary.simpleMessage( "Это фото не имеет данных EXIF"), "thisIsMeExclamation": MessageLookupByLibrary.simpleMessage("Это я!"), - "thisIsPersonVerificationId": m97, + "thisIsPersonVerificationId": m98, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage( "Это ваш идентификатор подтверждения"), "thisWeekThroughTheYears": MessageLookupByLibrary.simpleMessage("Эта неделя сквозь годы"), - "thisWeekXYearsAgo": m98, + "thisWeekXYearsAgo": m99, "thisWillLogYouOutOfTheFollowingDevice": MessageLookupByLibrary.simpleMessage( "Это завершит ваш сеанс на следующем устройстве:"), @@ -2039,7 +2039,7 @@ class MessageLookup extends MessageLookupByLibrary { "thisWillRemovePublicLinksOfAllSelectedQuickLinks": MessageLookupByLibrary.simpleMessage( "Это удалит публичные ссылки всех выбранных быстрых ссылок."), - "throughTheYears": m99, + "throughTheYears": m100, "toEnableAppLockPleaseSetupDevicePasscodeOrScreen": MessageLookupByLibrary.simpleMessage( "Для блокировки приложения, пожалуйста, настройте код или экран блокировки в настройках устройства."), @@ -2053,13 +2053,13 @@ class MessageLookup extends MessageLookupByLibrary { "total": MessageLookupByLibrary.simpleMessage("всего"), "totalSize": MessageLookupByLibrary.simpleMessage("Общий размер"), "trash": MessageLookupByLibrary.simpleMessage("Корзина"), - "trashDaysLeft": m100, + "trashDaysLeft": m101, "trim": MessageLookupByLibrary.simpleMessage("Сократить"), - "tripInYear": m101, - "tripToLocation": m102, + "tripInYear": m102, + "tripToLocation": m103, "trustedContacts": MessageLookupByLibrary.simpleMessage("Доверенные контакты"), - "trustedInviteBody": m103, + "trustedInviteBody": m104, "tryAgain": MessageLookupByLibrary.simpleMessage("Попробовать снова"), "turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage( "Включите резервное копирование, чтобы автоматически загружать файлы из этой папки на устройстве в Ente."), @@ -2079,7 +2079,7 @@ class MessageLookup extends MessageLookupByLibrary { "Двухфакторная аутентификация успешно сброшена"), "twofactorSetup": MessageLookupByLibrary.simpleMessage( "Настройка двухфакторной аутентификации"), - "typeOfGallerGallerytypeIsNotSupportedForRename": m104, + "typeOfGallerGallerytypeIsNotSupportedForRename": m105, "unarchive": MessageLookupByLibrary.simpleMessage("Извлечь из архива"), "unarchiveAlbum": MessageLookupByLibrary.simpleMessage("Извлечь альбом из архива"), @@ -2102,10 +2102,10 @@ class MessageLookup extends MessageLookupByLibrary { "updatingFolderSelection": MessageLookupByLibrary.simpleMessage("Обновление выбора папок..."), "upgrade": MessageLookupByLibrary.simpleMessage("Улучшить"), - "uploadIsIgnoredDueToIgnorereason": m105, + "uploadIsIgnoredDueToIgnorereason": m106, "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage("Загрузка файлов в альбом..."), - "uploadingMultipleMemories": m106, + "uploadingMultipleMemories": m107, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage( "Сохранение 1 воспоминания..."), "upto50OffUntil4thDec": @@ -2124,7 +2124,7 @@ class MessageLookup extends MessageLookupByLibrary { "useSelectedPhoto": MessageLookupByLibrary.simpleMessage("Использовать выбранное фото"), "usedSpace": MessageLookupByLibrary.simpleMessage("Использовано места"), - "validTill": m107, + "validTill": m108, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Проверка не удалась, пожалуйста, попробуйте снова"), @@ -2133,7 +2133,7 @@ class MessageLookup extends MessageLookupByLibrary { "verify": MessageLookupByLibrary.simpleMessage("Подтвердить"), "verifyEmail": MessageLookupByLibrary.simpleMessage( "Подтвердить электронную почту"), - "verifyEmailID": m108, + "verifyEmailID": m109, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("Подтвердить"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("Подтвердить ключ доступа"), @@ -2159,7 +2159,7 @@ class MessageLookup extends MessageLookupByLibrary { "viewRecoveryKey": MessageLookupByLibrary.simpleMessage("Увидеть ключ восстановления"), "viewer": MessageLookupByLibrary.simpleMessage("Зритель"), - "viewersSuccessfullyAdded": m109, + "viewersSuccessfullyAdded": m111, "visitWebToManage": MessageLookupByLibrary.simpleMessage( "Пожалуйста, посетите web.ente.io для управления вашей подпиской"), "waitingForVerification": @@ -2172,7 +2172,7 @@ class MessageLookup extends MessageLookupByLibrary { "weDontSupportEditingPhotosAndAlbumsThatYouDont": MessageLookupByLibrary.simpleMessage( "Мы не поддерживаем редактирование фото и альбомов, которые вам пока не принадлежат"), - "weHaveSendEmailTo": m110, + "weHaveSendEmailTo": m112, "weakStrength": MessageLookupByLibrary.simpleMessage("Низкая"), "welcomeBack": MessageLookupByLibrary.simpleMessage("С возвращением!"), "whatsNew": MessageLookupByLibrary.simpleMessage("Что нового"), @@ -2180,7 +2180,7 @@ class MessageLookup extends MessageLookupByLibrary { "Доверенный контакт может помочь в восстановлении ваших данных."), "yearShort": MessageLookupByLibrary.simpleMessage("год"), "yearly": MessageLookupByLibrary.simpleMessage("Ежегодно"), - "yearsAgo": m111, + "yearsAgo": m113, "yes": MessageLookupByLibrary.simpleMessage("Да"), "yesCancel": MessageLookupByLibrary.simpleMessage("Да, отменить"), "yesConvertToViewer": @@ -2194,7 +2194,7 @@ class MessageLookup extends MessageLookupByLibrary { "yesResetPerson": MessageLookupByLibrary.simpleMessage( "Да, сбросить данные человека"), "you": MessageLookupByLibrary.simpleMessage("Вы"), - "youAndThem": m112, + "youAndThem": m114, "youAreOnAFamilyPlan": MessageLookupByLibrary.simpleMessage("Вы на семейном тарифе!"), "youAreOnTheLatestVersion": MessageLookupByLibrary.simpleMessage( @@ -2213,7 +2213,7 @@ class MessageLookup extends MessageLookupByLibrary { "Вы не можете поделиться с самим собой"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage( "У вас нет архивных элементов."), - "youHaveSuccessfullyFreedUp": m113, + "youHaveSuccessfullyFreedUp": m115, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage("Ваш аккаунт был удалён"), "yourMap": MessageLookupByLibrary.simpleMessage("Ваша карта"), diff --git a/mobile/lib/generated/intl/messages_sv.dart b/mobile/lib/generated/intl/messages_sv.dart index f7eb67ce9e..94d0b211ed 100644 --- a/mobile/lib/generated/intl/messages_sv.dart +++ b/mobile/lib/generated/intl/messages_sv.dart @@ -47,62 +47,62 @@ class MessageLookup extends MessageLookupByLibrary { static String m26(count, formattedSize) => "${count} filer, ${formattedSize} vardera"; - static String m29(email) => + static String m30(email) => "${email} har inte ett Ente-konto.\n\nSkicka dem en inbjudan för att dela bilder."; - static String m35(storageAmountInGB) => + static String m36(storageAmountInGB) => "${storageAmountInGB} GB varje gång någon registrerar sig för en betalplan och tillämpar din kod"; - static String m42(count) => + static String m43(count) => "${Intl.plural(count, one: '${count} objekt', other: '${count} objekt')}"; - static String m45(expiryTime) => "Länken upphör att gälla ${expiryTime}"; + static String m46(expiryTime) => "Länken upphör att gälla ${expiryTime}"; - static String m52(name) => "Inte ${name}?"; + static String m53(name) => "Inte ${name}?"; - static String m53(familyAdminEmail) => + static String m54(familyAdminEmail) => "Kontakta ${familyAdminEmail} för att ändra din kod."; - static String m55(passwordStrengthValue) => + static String m56(passwordStrengthValue) => "Lösenordsstyrka: ${passwordStrengthValue}"; - static String m66(storeName) => "Betygsätt oss på ${storeName}"; + static String m67(storeName) => "Betygsätt oss på ${storeName}"; - static String m71(storageInGB) => "3. Ni får båda ${storageInGB} GB* gratis"; + static String m72(storageInGB) => "3. Ni får båda ${storageInGB} GB* gratis"; - static String m72(userEmail) => + static String m73(userEmail) => "${userEmail} kommer att tas bort från detta delade album\n\nAlla bilder som lagts till av dem kommer också att tas bort från albumet"; - static String m75(count) => + static String m76(count) => "${Intl.plural(count, one: '${count} resultat hittades', other: '${count} resultat hittades')}"; - static String m80(verificationID) => + static String m81(verificationID) => "Här är mitt verifierings-ID: ${verificationID} för ente.io."; - static String m81(verificationID) => + static String m82(verificationID) => "Hallå, kan du bekräfta att detta är ditt ente.io verifierings-ID: ${verificationID}"; - static String m82(referralCode, referralStorageInGB) => + static String m83(referralCode, referralStorageInGB) => "Ente värvningskod: ${referralCode} \n\nTillämpa den i Inställningar → Allmänt → Hänvisningar för att få ${referralStorageInGB} GB gratis när du registrerar dig för en betalplan\n\nhttps://ente.io"; - static String m83(numberOfPeople) => + static String m84(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Dela med specifika personer', one: 'Delad med en person', other: 'Delad med ${numberOfPeople} personer')}"; - static String m90(storageAmountInGB) => "${storageAmountInGB} GB"; + static String m91(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m96(storageAmountInGB) => + static String m97(storageAmountInGB) => "De får också ${storageAmountInGB} GB"; - static String m97(email) => "Detta är ${email}s verifierings-ID"; + static String m98(email) => "Detta är ${email}s verifierings-ID"; - static String m106(count) => "Bevarar ${count} minnen..."; + static String m107(count) => "Bevarar ${count} minnen..."; - static String m108(email) => "Bekräfta ${email}"; + static String m109(email) => "Bekräfta ${email}"; - static String m110(email) => + static String m112(email) => "Vi har skickat ett e-postmeddelande till ${email}"; - static String m111(count) => + static String m113(count) => "${Intl.plural(count, one: '${count} år sedan', other: '${count} år sedan')}"; final messages = _notInlinedMessages(_notInlinedMessages); @@ -292,7 +292,7 @@ class MessageLookup extends MessageLookupByLibrary { "email": MessageLookupByLibrary.simpleMessage("E-post"), "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage( "E-postadress redan registrerad."), - "emailNoEnteAccount": m29, + "emailNoEnteAccount": m30, "emailNotRegistered": MessageLookupByLibrary.simpleMessage( "E-postadressen är inte registrerad."), "encryption": MessageLookupByLibrary.simpleMessage("Kryptering"), @@ -342,7 +342,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Glömt lösenord"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("Gratis lagring begärd"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m36, "freeStorageUsable": MessageLookupByLibrary.simpleMessage( "Gratis lagringsutrymme som kan användas"), "freeTrial": MessageLookupByLibrary.simpleMessage("Gratis provperiod"), @@ -379,7 +379,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Bjud in dina vänner"), "inviteYourFriendsToEnte": MessageLookupByLibrary.simpleMessage( "Bjud in dina vänner till Ente"), - "itemCount": m42, + "itemCount": m43, "itemsWillBeRemovedFromAlbum": MessageLookupByLibrary.simpleMessage( "Valda objekt kommer att tas bort från detta album"), "keepPhotos": MessageLookupByLibrary.simpleMessage("Behåll foton"), @@ -392,7 +392,7 @@ class MessageLookup extends MessageLookupByLibrary { "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Enhetsgräns"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Aktiverat"), "linkExpired": MessageLookupByLibrary.simpleMessage("Upphört"), - "linkExpiresOn": m45, + "linkExpiresOn": m46, "linkExpiry": MessageLookupByLibrary.simpleMessage("Länken upphör"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("Länk har upphört att gälla"), @@ -440,10 +440,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Inga resultat"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Inga resultat hittades"), - "notPersonLabel": m52, + "notPersonLabel": m53, "ok": MessageLookupByLibrary.simpleMessage("OK"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), - "onlyFamilyAdminCanChangeCode": m53, + "onlyFamilyAdminCanChangeCode": m54, "oops": MessageLookupByLibrary.simpleMessage("Hoppsan"), "oopsSomethingWentWrong": MessageLookupByLibrary.simpleMessage("Oj, något gick fel"), @@ -454,7 +454,7 @@ class MessageLookup extends MessageLookupByLibrary { "passwordChangedSuccessfully": MessageLookupByLibrary.simpleMessage("Lösenordet har ändrats"), "passwordLock": MessageLookupByLibrary.simpleMessage("Lösenordskydd"), - "passwordStrength": m55, + "passwordStrength": m56, "passwordWarning": MessageLookupByLibrary.simpleMessage( "Vi lagrar inte detta lösenord, så om du glömmer bort det, kan vi inte dekryptera dina data"), "peopleUsingYourCode": MessageLookupByLibrary.simpleMessage( @@ -471,7 +471,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Integritetspolicy"), "publicLinkEnabled": MessageLookupByLibrary.simpleMessage("Offentlig länk aktiverad"), - "rateUsOnStore": m66, + "rateUsOnStore": m67, "recover": MessageLookupByLibrary.simpleMessage("Återställ"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Återställ konto"), @@ -501,7 +501,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Ge denna kod till dina vänner"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. De registrerar sig för en betalplan"), - "referralStep3": m71, + "referralStep3": m72, "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Hänvisningar är för närvarande pausade"), "remove": MessageLookupByLibrary.simpleMessage("Ta bort"), @@ -512,7 +512,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Radera länk"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Ta bort användaren"), - "removeParticipantBody": m72, + "removeParticipantBody": m73, "removeShareItemsWarning": MessageLookupByLibrary.simpleMessage( "Några av de objekt som du tar bort lades av andra personer, och du kommer att förlora tillgång till dem"), "removeWithQuestionMark": @@ -545,7 +545,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Albumnamn"), "searchFileTypesAndNamesEmptySection": MessageLookupByLibrary.simpleMessage("Filtyper och namn"), - "searchResultCount": m75, + "searchResultCount": m76, "selectAlbum": MessageLookupByLibrary.simpleMessage("Välj album"), "selectAll": MessageLookupByLibrary.simpleMessage("Markera allt"), "selectFoldersForBackup": MessageLookupByLibrary.simpleMessage( @@ -568,14 +568,14 @@ class MessageLookup extends MessageLookupByLibrary { "share": MessageLookupByLibrary.simpleMessage("Dela"), "shareALink": MessageLookupByLibrary.simpleMessage("Dela en länk"), "shareLink": MessageLookupByLibrary.simpleMessage("Dela länk"), - "shareMyVerificationID": m80, - "shareTextConfirmOthersVerificationID": m81, + "shareMyVerificationID": m81, + "shareTextConfirmOthersVerificationID": m82, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Ladda ner Ente så att vi enkelt kan dela bilder och videor med originell kvalitet\n\nhttps://ente.io"), - "shareTextReferralCode": m82, + "shareTextReferralCode": m83, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Dela med icke-Ente användare"), - "shareWithPeopleSectionTitle": m83, + "shareWithPeopleSectionTitle": m84, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("Dela ditt första album"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -606,7 +606,7 @@ class MessageLookup extends MessageLookupByLibrary { "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("Sortera efter"), "status": MessageLookupByLibrary.simpleMessage("Status"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("Du"), - "storageInGB": m90, + "storageInGB": m91, "strongStrength": MessageLookupByLibrary.simpleMessage("Starkt"), "subscribe": MessageLookupByLibrary.simpleMessage("Prenumerera"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( @@ -626,12 +626,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "Återställningsnyckeln du angav är felaktig"), "theme": MessageLookupByLibrary.simpleMessage("Tema"), - "theyAlsoGetXGb": m96, + "theyAlsoGetXGb": m97, "thisCanBeUsedToRecoverYourAccountIfYou": MessageLookupByLibrary.simpleMessage( "Detta kan användas för att återställa ditt konto om du förlorar din andra faktor"), "thisDevice": MessageLookupByLibrary.simpleMessage("Den här enheten"), - "thisIsPersonVerificationId": m97, + "thisIsPersonVerificationId": m98, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage( "Detta är ditt verifierings-ID"), "thisWillLogYouOutOfTheFollowingDevice": @@ -659,7 +659,7 @@ class MessageLookup extends MessageLookupByLibrary { "updatingFolderSelection": MessageLookupByLibrary.simpleMessage("Uppdaterar mappval..."), "upgrade": MessageLookupByLibrary.simpleMessage("Uppgradera"), - "uploadingMultipleMemories": m106, + "uploadingMultipleMemories": m107, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage("Bevarar 1 minne..."), "usableReferralStorageInfo": MessageLookupByLibrary.simpleMessage( @@ -672,7 +672,7 @@ class MessageLookup extends MessageLookupByLibrary { "verify": MessageLookupByLibrary.simpleMessage("Bekräfta"), "verifyEmail": MessageLookupByLibrary.simpleMessage("Bekräfta e-postadress"), - "verifyEmailID": m108, + "verifyEmailID": m109, "verifyPasskey": MessageLookupByLibrary.simpleMessage("Verifiera nyckel"), "verifyPassword": @@ -688,12 +688,12 @@ class MessageLookup extends MessageLookupByLibrary { "viewRecoveryKey": MessageLookupByLibrary.simpleMessage("Visa återställningsnyckel"), "viewer": MessageLookupByLibrary.simpleMessage("Bildvy"), - "weHaveSendEmailTo": m110, + "weHaveSendEmailTo": m112, "weakStrength": MessageLookupByLibrary.simpleMessage("Svagt"), "welcomeBack": MessageLookupByLibrary.simpleMessage("Välkommen tillbaka!"), "whatsNew": MessageLookupByLibrary.simpleMessage("Nyheter"), - "yearsAgo": m111, + "yearsAgo": m113, "yes": MessageLookupByLibrary.simpleMessage("Ja"), "yesCancel": MessageLookupByLibrary.simpleMessage("Ja, avbryt"), "yesConvertToViewer": diff --git a/mobile/lib/generated/intl/messages_ta.dart b/mobile/lib/generated/intl/messages_ta.dart index 8ff31ce6f3..a9727329a5 100644 --- a/mobile/lib/generated/intl/messages_ta.dart +++ b/mobile/lib/generated/intl/messages_ta.dart @@ -39,6 +39,10 @@ class MessageLookup extends MessageLookupByLibrary { "deleteReason1": MessageLookupByLibrary.simpleMessage( "எனக்கு தேவையான ஒரு முக்கிய அம்சம் இதில் இல்லை"), "email": MessageLookupByLibrary.simpleMessage("மின்னஞ்சல்"), + "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage( + "மின்னஞ்சல் முன்பே பதிவுசெய்யப்பட்டுள்ளது."), + "emailNotRegistered": MessageLookupByLibrary.simpleMessage( + "மின்னஞ்சல் பதிவு செய்யப்படவில்லை."), "enterValidEmail": MessageLookupByLibrary.simpleMessage( "சரியான மின்னஞ்சல் முகவரியை உள்ளிடவும்."), "enterYourEmailAddress": MessageLookupByLibrary.simpleMessage( @@ -49,6 +53,10 @@ class MessageLookup extends MessageLookupByLibrary { "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage( "இந்த தகவலுடன் தயவுசெய்து எங்களுக்கு உதவுங்கள்"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), - "verify": MessageLookupByLibrary.simpleMessage("சரிபார்க்கவும்") + "selectReason": MessageLookupByLibrary.simpleMessage( + "காரணத்தைத் தேர்ந்தெடுக்கவும்"), + "verify": MessageLookupByLibrary.simpleMessage("சரிபார்க்கவும்"), + "yourAccountHasBeenDeleted": + MessageLookupByLibrary.simpleMessage("உங்கள் கணக்கு நீக்கப்பட்டது") }; } diff --git a/mobile/lib/generated/intl/messages_th.dart b/mobile/lib/generated/intl/messages_th.dart index e602ffb48b..16b70f5a70 100644 --- a/mobile/lib/generated/intl/messages_th.dart +++ b/mobile/lib/generated/intl/messages_th.dart @@ -31,19 +31,19 @@ class MessageLookup extends MessageLookupByLibrary { static String m24(supportEmail) => "กรุณาส่งอีเมลไปที่ ${supportEmail} จากที่อยู่อีเมลที่คุณลงทะเบียนไว้"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "กำลังประมวลผล ${currentlyProcessing} / ${totalCount}"; - static String m42(count) => "${Intl.plural(count, other: '${count} รายการ')}"; + static String m43(count) => "${Intl.plural(count, other: '${count} รายการ')}"; - static String m55(passwordStrengthValue) => + static String m56(passwordStrengthValue) => "ความแข็งแรงของรหัสผ่าน: ${passwordStrengthValue}"; - static String m91( + static String m92( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "ใช้ไป ${usedAmount} ${usedStorageUnit} จาก ${totalAmount} ${totalStorageUnit}"; - static String m110(email) => "เราได้ส่งจดหมายไปยัง ${email}"; + static String m112(email) => "เราได้ส่งจดหมายไปยัง ${email}"; final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { @@ -167,7 +167,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("เพิ่มคำอธิบาย..."), "forgotPassword": MessageLookupByLibrary.simpleMessage("ลืมรหัสผ่าน"), "freeTrial": MessageLookupByLibrary.simpleMessage("ทดลองใช้ฟรี"), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("ไปที่การตั้งค่า"), "hide": MessageLookupByLibrary.simpleMessage("ซ่อน"), "hostedAtOsmFrance": @@ -190,7 +190,7 @@ class MessageLookup extends MessageLookupByLibrary { "invalidKey": MessageLookupByLibrary.simpleMessage("รหัสไม่ถูกต้อง"), "invalidRecoveryKey": MessageLookupByLibrary.simpleMessage( "คีย์การกู้คืนที่คุณป้อนไม่ถูกต้อง โปรดตรวจสอบให้แน่ใจว่ามี 24 คำ และตรวจสอบการสะกดของแต่ละคำ\n\nหากคุณป้อนรหัสกู้คืนที่เก่ากว่า ตรวจสอบให้แน่ใจว่ามีความยาว 64 ตัวอักษร และตรวจสอบแต่ละตัวอักษร"), - "itemCount": m42, + "itemCount": m43, "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage("กรุณาช่วยเราด้วยข้อมูลนี้"), "lastUpdated": MessageLookupByLibrary.simpleMessage("อัปเดตล่าสุด"), @@ -229,7 +229,7 @@ class MessageLookup extends MessageLookupByLibrary { "password": MessageLookupByLibrary.simpleMessage("รหัสผ่าน"), "passwordChangedSuccessfully": MessageLookupByLibrary.simpleMessage("เปลี่ยนรหัสผ่านสำเร็จ"), - "passwordStrength": m55, + "passwordStrength": m56, "passwordWarning": MessageLookupByLibrary.simpleMessage( "เราไม่จัดเก็บรหัสผ่านนี้ ดังนั้นหากคุณลืม เราจะไม่สามารถถอดรหัสข้อมูลของคุณ"), "peopleUsingYourCode": @@ -301,7 +301,7 @@ class MessageLookup extends MessageLookupByLibrary { "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("ครอบครัว"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("คุณ"), - "storageUsageInfo": m91, + "storageUsageInfo": m92, "strongStrength": MessageLookupByLibrary.simpleMessage("แข็งแรง"), "syncStopped": MessageLookupByLibrary.simpleMessage("หยุดการซิงค์แล้ว"), "syncing": MessageLookupByLibrary.simpleMessage("กำลังซิงค์..."), @@ -342,7 +342,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("ดูคีย์การกู้คืน"), "waitingForWifi": MessageLookupByLibrary.simpleMessage("กำลังรอ WiFi..."), - "weHaveSendEmailTo": m110, + "weHaveSendEmailTo": m112, "weakStrength": MessageLookupByLibrary.simpleMessage("อ่อน"), "welcomeBack": MessageLookupByLibrary.simpleMessage("ยินดีต้อนรับกลับมา!"), diff --git a/mobile/lib/generated/intl/messages_tr.dart b/mobile/lib/generated/intl/messages_tr.dart index ccf1de2bc6..7913327f4c 100644 --- a/mobile/lib/generated/intl/messages_tr.dart +++ b/mobile/lib/generated/intl/messages_tr.dart @@ -98,224 +98,229 @@ class MessageLookup extends MessageLookupByLibrary { static String m26(count, formattedSize) => "${count} dosyalar, ${formattedSize} her biri"; - static String m27(newEmail) => "E-posta ${newEmail} olarak değiştirildi"; + static String m27(name) => "Bu e-posta zaten ${name} kişisine bağlı."; - static String m28(email) => "${email} bir Ente hesabına sahip değil"; + static String m28(newEmail) => "E-posta ${newEmail} olarak değiştirildi"; - static String m29(email) => + static String m29(email) => "${email} bir Ente hesabına sahip değil"; + + static String m30(email) => "${email}, Ente hesabı bulunmamaktadır.\n\nOnlarla fotoğraf paylaşımı için bir davet gönder."; - static String m30(name) => "${name}\'e sarılmak"; + static String m31(name) => "${name}\'e sarılmak"; - static String m31(text) => "${text} için ekstra fotoğraflar bulundu"; + static String m32(text) => "${text} için ekstra fotoğraflar bulundu"; - static String m32(name) => "${name} ile ziyafet"; - - static String m33(count, formattedNumber) => - "Bu cihazdaki ${Intl.plural(count, one: '1 file', other: '${formattedNumber} dosya')} güvenli bir şekilde yedeklendi"; + static String m33(name) => "${name} ile ziyafet"; static String m34(count, formattedNumber) => + "Bu cihazdaki ${Intl.plural(count, one: '1 file', other: '${formattedNumber} dosya')} güvenli bir şekilde yedeklendi"; + + static String m35(count, formattedNumber) => "Bu albümdeki ${Intl.plural(count, one: '1 file', other: '${formattedNumber} dosya')} güvenli bir şekilde yedeklendi"; - static String m35(storageAmountInGB) => + static String m36(storageAmountInGB) => "Birisinin davet kodunuzu uygulayıp ücretli hesap açtığı her seferede ${storageAmountInGB} GB"; - static String m36(endDate) => "Ücretsiz deneme ${endDate} sona erir"; + static String m37(endDate) => "Ücretsiz deneme ${endDate} sona erir"; - static String m37(count) => + static String m38(count) => "Aktif bir aboneliğiniz olduğu sürece Ente üzerinden ${Intl.plural(count, one: 'ona', other: 'onlara')} hâlâ erişebilirsiniz"; - static String m38(sizeInMBorGB) => "${sizeInMBorGB} yer açın"; + static String m39(sizeInMBorGB) => "${sizeInMBorGB} yer açın"; - static String m39(count, formattedSize) => + static String m40(count, formattedSize) => "${Intl.plural(count, one: 'Cihazdan silinerek ${formattedSize} boşaltılabilir', other: 'Cihazdan silinerek ${formattedSize} boşaltılabilirler')}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Siliniyor ${currentlyProcessing} / ${totalCount}"; - static String m41(name) => "${name} ile doğa yürüyüşü"; + static String m42(name) => "${name} ile doğa yürüyüşü"; - static String m42(count) => + static String m43(count) => "${Intl.plural(count, one: '${count} öğe', other: '${count} öğeler')}"; - static String m43(name) => "${name} ile son an"; + static String m44(name) => "${name} ile son an"; - static String m44(email) => + static String m45(email) => "${email} sizi güvenilir bir kişi olmaya davet etti"; - static String m45(expiryTime) => - "Bu bağlantı ${expiryTime} dan sonra geçersiz olacaktır"; + static String m46(expiryTime) => + "Bu bağlantı ${expiryTime} tarihinden itibaren geçersiz olacaktır"; - static String m46(email) => "Kişiyi ${email} adresine bağlayın"; + static String m47(email) => "Kişiyi ${email} adresine bağlayın"; - static String m47(personName, email) => + static String m48(personName, email) => "Bu, ${personName} ile ${email} arasında bağlantı kuracaktır."; - static String m48(count, formattedCount) => + static String m49(count, formattedCount) => "${Intl.plural(count, zero: 'hiç anı yok', one: '${formattedCount} anı', other: '${formattedCount} anı')}"; - static String m49(count) => + static String m50(count) => "${Intl.plural(count, one: 'Öğeyi taşı', other: 'Öğeleri taşı')}"; - static String m50(albumName) => "${albumName} adlı albüme başarıyla taşındı"; + static String m51(albumName) => "${albumName} adlı albüme başarıyla taşındı"; - static String m51(personName) => "${personName} için öneri yok"; + static String m52(personName) => "${personName} için öneri yok"; - static String m52(name) => "${name} değil mi?"; + static String m53(name) => "${name} değil mi?"; - static String m53(familyAdminEmail) => + static String m54(familyAdminEmail) => "Kodunuzu değiştirmek için lütfen ${familyAdminEmail} ile iletişime geçin."; - static String m54(name) => "${name} ile parti"; + static String m55(name) => "${name} ile parti"; - static String m55(passwordStrengthValue) => + static String m56(passwordStrengthValue) => "Şifrenin güçlülük seviyesi: ${passwordStrengthValue}"; - static String m56(providerName) => + static String m57(providerName) => "Sizden ücret alındıysa lütfen ${providerName} destek ekibiyle görüşün"; - static String m57(name, age) => "${name} ${age} yaşında!"; + static String m58(name, age) => "${name} ${age} yaşında!"; - static String m58(name, age) => "${name} yakında ${age} yaşına giriyor"; - - static String m59(count) => - "${Intl.plural(count, zero: 'Fotoğraf yok', one: '1 fotoğraf', other: '${count} fotoğraf')}"; + static String m59(name, age) => "${name} yakında ${age} yaşına giriyor"; static String m60(count) => + "${Intl.plural(count, zero: 'Fotoğraf yok', one: '1 fotoğraf', other: '${count} fotoğraf')}"; + + static String m61(count) => "${Intl.plural(count, zero: '0 fotoğraf', one: '1 fotoğraf', other: '${count} fotoğraf')}"; - static String m61(endDate) => + static String m62(endDate) => "Ücretsiz deneme süresi ${endDate} tarihine kadar geçerlidir.\nDaha sonra ücretli bir plan seçebilirsiniz."; - static String m62(toEmail) => "Lütfen bize ${toEmail} adresinden ulaşın"; + static String m63(toEmail) => "Lütfen bize ${toEmail} adresinden ulaşın"; - static String m63(toEmail) => + static String m64(toEmail) => "Lütfen kayıtları şu adrese gönderin\n${toEmail}"; - static String m64(name) => "${name} ile poz verme"; + static String m65(name) => "${name} ile poz verme"; - static String m65(folderName) => "İşleniyor ${folderName}..."; + static String m66(folderName) => "İşleniyor ${folderName}..."; - static String m66(storeName) => "Bizi ${storeName} üzerinden değerlendirin"; + static String m67(storeName) => "Bizi ${storeName} üzerinden değerlendirin"; - static String m67(name) => "Sizi ${name}\'e yeniden atadı"; + static String m68(name) => "Sizi ${name}\'e yeniden atadı"; - static String m68(days, email) => + static String m69(days, email) => "Hesabınıza ${days} gün sonra erişebilirsiniz. ${email} adresine bir bildirim gönderilecektir."; - static String m69(email) => + static String m70(email) => "Artık yeni bir parola belirleyerek ${email} hesabını kurtarabilirsiniz."; - static String m70(email) => "${email} hesabınızı kurtarmaya çalışıyor."; + static String m71(email) => "${email} hesabınızı kurtarmaya çalışıyor."; - static String m71(storageInGB) => "3. İkinizde bedava ${storageInGB} GB alın"; + static String m72(storageInGB) => "3. İkinizde bedava ${storageInGB} GB alın"; - static String m72(userEmail) => + static String m73(userEmail) => "${userEmail} bu paylaşılan albümden kaldırılacaktır\n\nOnlar tarafından eklenen tüm fotoğraflar da albümden kaldırılacaktır"; - static String m73(endDate) => "Abonelik ${endDate} tarihinde yenilenir"; + static String m74(endDate) => "Abonelik ${endDate} tarihinde yenilenir"; - static String m74(name) => "${name} ile yolculuk"; + static String m75(name) => "${name} ile yolculuk"; - static String m75(count) => + static String m76(count) => "${Intl.plural(count, one: '${count} yıl önce', other: '${count} yıl önce')}"; - static String m76(snapshotLength, searchLength) => + static String m77(snapshotLength, searchLength) => "Bölüm uzunluğu uyuşmazlığı: ${snapshotLength} != ${searchLength}"; - static String m77(count) => "${count} seçildi"; + static String m78(count) => "${count} seçildi"; - static String m78(count, yourCount) => + static String m79(count, yourCount) => "Seçilenler: ${count} (${yourCount} sizin seçiminiz)"; - static String m79(name) => "${name} ile selfieler"; - - static String m80(verificationID) => - "İşte ente.io için doğrulama kimliğim: ${verificationID}."; + static String m80(name) => "${name} ile selfieler"; static String m81(verificationID) => + "İşte ente.io için doğrulama kimliğim: ${verificationID}."; + + static String m82(verificationID) => "Merhaba, bu ente.io doğrulama kimliğinizin doğruluğunu onaylayabilir misiniz: ${verificationID}"; - static String m82(referralCode, referralStorageInGB) => + static String m83(referralCode, referralStorageInGB) => "Ente davet kodu: ${referralCode} \n\nÜcretli hesaba başvurduktan sonra ${referralStorageInGB} GB bedava almak için \nAyarlar → Genel → Davetlerde bu kodu girin\n\nhttps://ente.io"; - static String m83(numberOfPeople) => + static String m84(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Belirli kişilerle paylaş', one: '1 kişiyle paylaşıldı', other: '${numberOfPeople} kişiyle paylaşıldı')}"; - static String m84(emailIDs) => "${emailIDs} ile paylaşıldı"; + static String m85(emailIDs) => "${emailIDs} ile paylaşıldı"; - static String m85(fileType) => "Bu ${fileType}, cihazınızdan silinecek."; + static String m86(fileType) => "Bu ${fileType}, cihazınızdan silinecek."; - static String m86(fileType) => + static String m87(fileType) => "${fileType} Ente ve cihazınızdan silinecektir."; - static String m87(fileType) => "${fileType} Ente\'den silinecektir."; + static String m88(fileType) => "${fileType} Ente\'den silinecektir."; - static String m88(name) => "${name} ile spor"; + static String m89(name) => "${name} ile spor"; - static String m89(name) => "Sahne ${name}\'in"; + static String m90(name) => "Sahne ${name}\'in"; - static String m90(storageAmountInGB) => "${storageAmountInGB} GB"; + static String m91(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m91( + static String m92( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} / ${totalAmount} ${totalStorageUnit} kullanıldı"; - static String m92(id) => + static String m93(id) => "${id}\'niz zaten başka bir ente hesabına bağlı.\n${id} numaranızı bu hesapla kullanmak istiyorsanız lütfen desteğimizle iletişime geçin\'\'"; - static String m93(endDate) => + static String m94(endDate) => "Aboneliğiniz ${endDate} tarihinde iptal edilecektir"; - static String m94(completed, total) => "${completed}/${total} anı korundu"; + static String m95(completed, total) => "${completed}/${total} anı korundu"; - static String m95(ignoreReason) => + static String m96(ignoreReason) => "Yüklemek için dokunun, yükleme şu anda ${ignoreReason} nedeniyle yok sayılıyor"; - static String m96(storageAmountInGB) => + static String m97(storageAmountInGB) => "Aynı zamanda ${storageAmountInGB} GB alıyorlar"; - static String m97(email) => "Bu, ${email}\'in Doğrulama Kimliği"; + static String m98(email) => "Bu, ${email}\'in Doğrulama Kimliği"; - static String m98(count) => + static String m99(count) => "${Intl.plural(count, one: 'Bu hafta, ${count} yıl önce', other: 'Bu hafta, ${count} yıl önce')}"; - static String m99(dateFormat) => "${dateFormat} yıllar boyunca"; + static String m100(dateFormat) => "${dateFormat} yıllar boyunca"; - static String m100(count) => + static String m101(count) => "${Intl.plural(count, zero: 'Yakında', one: '1 gün', other: '${count} gün')}"; - static String m101(year) => "${year} yılındaki gezi"; + static String m102(year) => "${year} yılındaki gezi"; - static String m102(location) => "${location}\'a gezi"; + static String m103(location) => "${location}\'a gezi"; - static String m103(email) => + static String m104(email) => "${email} ile eski bir irtibat kişisi olmaya davet edildiniz."; - static String m104(galleryType) => + static String m105(galleryType) => "Galeri türü ${galleryType} yeniden adlandırma için desteklenmiyor"; - static String m105(ignoreReason) => + static String m106(ignoreReason) => "Yükleme ${ignoreReason} nedeniyle yok sayıldı"; - static String m106(count) => "${count} anı korunuyor..."; + static String m107(count) => "${count} anı korunuyor..."; - static String m107(endDate) => "${endDate} tarihine kadar geçerli"; + static String m108(endDate) => "${endDate} tarihine kadar geçerli"; - static String m108(email) => "${email} doğrula"; + static String m109(email) => "${email} doğrula"; - static String m109(count) => - "${Intl.plural(count, zero: '0 izleyici eklendi', one: '1 izleyici eklendi', other: '${count} izleyici eklendi')}"; - - static String m110(email) => - "E-postayı ${email} adresine gönderdik"; + static String m110(name) => + "Bağlantıyı kaldırmak için ${name} kişisini görüntüle"; static String m111(count) => + "${Intl.plural(count, zero: '0 izleyici eklendi', one: '1 izleyici eklendi', other: '${count} izleyici eklendi')}"; + + static String m112(email) => + "E-postayı ${email} adresine gönderdik"; + + static String m113(count) => "${Intl.plural(count, one: '${count} yıl önce', other: '${count} yıl önce')}"; - static String m112(name) => "Sen ve ${name}"; + static String m114(name) => "Sen ve ${name}"; - static String m113(storageSaved) => + static String m115(storageSaved) => "Başarılı bir şekilde ${storageSaved} alanını boşalttınız!"; final messages = _notInlinedMessages(_notInlinedMessages); @@ -397,7 +402,7 @@ class MessageLookup extends MessageLookupByLibrary { "Bu, gruptaki ilk fotoğraftır. Seçilen diğer fotoğraflar otomatik olarak bu yeni tarihe göre kaydırılacaktır"), "allow": MessageLookupByLibrary.simpleMessage("İzin ver"), "allowAddPhotosDescription": MessageLookupByLibrary.simpleMessage( - "Bağlantıya sahip olan kişilere, paylaşılan albüme fotoğraf eklemelerine izin ver."), + "Bağlantıya sahip olan kişilerin paylaşılan albüme fotoğraf eklemelerine izin ver."), "allowAddingPhotos": MessageLookupByLibrary.simpleMessage("Fotoğraf eklemeye izin ver"), "allowAppToOpenSharedAlbumLinks": MessageLookupByLibrary.simpleMessage( @@ -648,7 +653,7 @@ class MessageLookup extends MessageLookupByLibrary { "collabLinkSectionDescription": MessageLookupByLibrary.simpleMessage( "Ente aplikasyonu veya hesabı olmadan insanların paylaşılan albümde fotoğraf ekleyip görüntülemelerine izin vermek için bir bağlantı oluşturun. Grup veya etkinlik fotoğraflarını toplamak için harika bir seçenek."), "collaborativeLink": - MessageLookupByLibrary.simpleMessage("Organizasyon bağlantısı"), + MessageLookupByLibrary.simpleMessage("Ortak bağlantı"), "collaborativeLinkCreatedFor": m15, "collaborator": MessageLookupByLibrary.simpleMessage("Düzenleyici"), "collaboratorsCanAddPhotosAndVideosToTheSharedAlbum": @@ -697,7 +702,7 @@ class MessageLookup extends MessageLookupByLibrary { "convertToAlbum": MessageLookupByLibrary.simpleMessage("Albüme taşı"), "copyEmailAddress": MessageLookupByLibrary.simpleMessage("E-posta adresini kopyala"), - "copyLink": MessageLookupByLibrary.simpleMessage("Linki kopyala"), + "copyLink": MessageLookupByLibrary.simpleMessage("Bağlantıyı kopyala"), "copypasteThisCodentoYourAuthenticatorApp": MessageLookupByLibrary.simpleMessage( "Bu kodu kopyalayın ve kimlik doğrulama uygulamanıza yapıştırın"), @@ -722,8 +727,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Yeni bir hesap oluşturun"), "createOrSelectAlbum": MessageLookupByLibrary.simpleMessage("Albüm oluştur veya seç"), - "createPublicLink": - MessageLookupByLibrary.simpleMessage("Herkese açık link oluştur"), + "createPublicLink": MessageLookupByLibrary.simpleMessage( + "Herkese açık bir bağlantı oluştur"), "creatingLink": MessageLookupByLibrary.simpleMessage("Bağlantı oluşturuluyor..."), "criticalUpdateAvailable": @@ -735,7 +740,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Güncel kullanımınız "), "currentlyRunning": MessageLookupByLibrary.simpleMessage("şu anda çalışıyor"), - "custom": MessageLookupByLibrary.simpleMessage("Kişisel"), + "custom": MessageLookupByLibrary.simpleMessage("Özel"), "customEndpoint": m20, "darkTheme": MessageLookupByLibrary.simpleMessage("Karanlık"), "dayToday": MessageLookupByLibrary.simpleMessage("Bugün"), @@ -863,6 +868,7 @@ class MessageLookup extends MessageLookupByLibrary { "duplicateFileCountWithStorageSaved": m25, "duplicateItemsGroup": m26, "edit": MessageLookupByLibrary.simpleMessage("Düzenle"), + "editEmailAlreadyLinked": m27, "editLocation": MessageLookupByLibrary.simpleMessage("Konumu düzenle"), "editLocationTagTitle": MessageLookupByLibrary.simpleMessage("Konumu düzenle"), @@ -877,16 +883,16 @@ class MessageLookup extends MessageLookupByLibrary { "email": MessageLookupByLibrary.simpleMessage("E-Posta"), "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage( "Bu e-posta adresi zaten kayıtlı."), - "emailChangedTo": m27, - "emailDoesNotHaveEnteAccount": m28, - "emailNoEnteAccount": m29, + "emailChangedTo": m28, + "emailDoesNotHaveEnteAccount": m29, + "emailNoEnteAccount": m30, "emailNotRegistered": MessageLookupByLibrary.simpleMessage( "Bu e-posta adresi sistemde kayıtlı değil."), "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("E-posta doğrulama"), "emailYourLogs": MessageLookupByLibrary.simpleMessage( "Kayıtlarınızı e-postayla gönderin"), - "embracingThem": m30, + "embracingThem": m31, "emergencyContacts": MessageLookupByLibrary.simpleMessage( "Acil Durum İletişim Bilgileri"), "empty": MessageLookupByLibrary.simpleMessage("Boşalt"), @@ -967,7 +973,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Veriyi dışarı aktar"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage("Ekstra fotoğraflar bulundu"), - "extraPhotosFoundFor": m31, + "extraPhotosFoundFor": m32, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Yüz henüz kümelenmedi, lütfen daha sonra tekrar gelin"), "faceRecognition": MessageLookupByLibrary.simpleMessage("Yüz Tanıma"), @@ -1002,7 +1008,7 @@ class MessageLookup extends MessageLookupByLibrary { "faq": MessageLookupByLibrary.simpleMessage("Sık sorulan sorular"), "faqs": MessageLookupByLibrary.simpleMessage("Sık Sorulan Sorular"), "favorite": MessageLookupByLibrary.simpleMessage("Favori"), - "feastingWithThem": m32, + "feastingWithThem": m33, "feedback": MessageLookupByLibrary.simpleMessage("Geri Bildirim"), "file": MessageLookupByLibrary.simpleMessage("Dosya"), "fileFailedToSaveToGallery": MessageLookupByLibrary.simpleMessage( @@ -1016,8 +1022,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Dosya türü"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Dosya türleri ve adları"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m34, + "filesBackedUpInAlbum": m35, "filesDeleted": MessageLookupByLibrary.simpleMessage("Dosyalar silinmiş"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage( @@ -1035,26 +1041,26 @@ class MessageLookup extends MessageLookupByLibrary { "foundFaces": MessageLookupByLibrary.simpleMessage("Yüzler bulundu"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("Alınan bedava alan"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m36, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("Kullanılabilir bedava alan"), "freeTrial": MessageLookupByLibrary.simpleMessage("Ücretsiz deneme"), - "freeTrialValidTill": m36, - "freeUpAccessPostDelete": m37, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAccessPostDelete": m38, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage("Cihaz alanını boşaltın"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "Zaten yedeklenmiş dosyaları temizleyerek cihazınızda yer kazanın."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Boş alan"), - "freeUpSpaceSaving": m39, + "freeUpSpaceSaving": m40, "gallery": MessageLookupByLibrary.simpleMessage("Galeri"), "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "Galeride 1000\'e kadar anı gösterilir"), "general": MessageLookupByLibrary.simpleMessage("Genel"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Şifreleme anahtarı oluşturuluyor..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Ayarlara git"), "googlePlayId": MessageLookupByLibrary.simpleMessage("Google Play ID"), "grantFullAccessPrompt": MessageLookupByLibrary.simpleMessage( @@ -1082,7 +1088,7 @@ class MessageLookup extends MessageLookupByLibrary { "hideSharedItemsFromHomeGallery": MessageLookupByLibrary.simpleMessage( "Paylaşılan öğeleri ana galeriden gizle"), "hiding": MessageLookupByLibrary.simpleMessage("Gizleniyor..."), - "hikingWithThem": m41, + "hikingWithThem": m42, "hostedAtOsmFrance": MessageLookupByLibrary.simpleMessage("OSM Fransa\'da ağırlandı"), "howItWorks": MessageLookupByLibrary.simpleMessage("Nasıl çalışır"), @@ -1140,7 +1146,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Bir şeyler ters gitmiş gibi görünüyor. Lütfen bir süre sonra tekrar deneyin. Hata devam ederse, lütfen destek ekibimizle iletişime geçin."), - "itemCount": m42, + "itemCount": m43, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Öğeler kalıcı olarak silinmeden önce kalan gün sayısını gösterir"), @@ -1161,7 +1167,7 @@ class MessageLookup extends MessageLookupByLibrary { "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage( "Lütfen bu bilgilerle bize yardımcı olun"), "language": MessageLookupByLibrary.simpleMessage("Dil"), - "lastTimeWithThem": m43, + "lastTimeWithThem": m44, "lastUpdated": MessageLookupByLibrary.simpleMessage("En son güncellenen"), "lastYearsTrip": @@ -1177,7 +1183,7 @@ class MessageLookup extends MessageLookupByLibrary { "legacy": MessageLookupByLibrary.simpleMessage("Geleneksel"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Geleneksel hesaplar"), - "legacyInvite": m44, + "legacyInvite": m45, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "Geleneksel yol, güvendiğiniz kişilerin yokluğunuzda hesabınıza erişmesine olanak tanır."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( @@ -1187,23 +1193,23 @@ class MessageLookup extends MessageLookupByLibrary { "link": MessageLookupByLibrary.simpleMessage("Bağlantı"), "linkCopiedToClipboard": MessageLookupByLibrary.simpleMessage("Link panoya kopyalandı"), - "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Cihaz limiti"), + "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Cihaz sınırı"), "linkEmail": MessageLookupByLibrary.simpleMessage("E-posta bağlantısı"), "linkEmailToContactBannerCaption": MessageLookupByLibrary.simpleMessage("daha hızlı paylaşım için"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Geçerli"), "linkExpired": MessageLookupByLibrary.simpleMessage("Süresi dolmuş"), - "linkExpiresOn": m45, + "linkExpiresOn": m46, "linkExpiry": - MessageLookupByLibrary.simpleMessage("Linkin geçerliliği"), + MessageLookupByLibrary.simpleMessage("Bağlantı geçerliliği"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("Bağlantının süresi dolmuş"), "linkNeverExpires": MessageLookupByLibrary.simpleMessage("Asla"), "linkPerson": MessageLookupByLibrary.simpleMessage("Kişiyi bağla"), "linkPersonCaption": MessageLookupByLibrary.simpleMessage( "daha iyi paylaşım deneyimi için"), - "linkPersonToEmail": m46, - "linkPersonToEmailConfirmation": m47, + "linkPersonToEmail": m47, + "linkPersonToEmailConfirmation": m48, "livePhotos": MessageLookupByLibrary.simpleMessage("Canlı Fotoğraf"), "loadMessage1": MessageLookupByLibrary.simpleMessage( "Aboneliğinizi ailenizle paylaşabilirsiniz"), @@ -1282,7 +1288,7 @@ class MessageLookup extends MessageLookupByLibrary { "manageDeviceStorageDesc": MessageLookupByLibrary.simpleMessage( "Yerel önbellek depolama alanını gözden geçirin ve temizleyin."), "manageFamily": MessageLookupByLibrary.simpleMessage("Aileyi yönet"), - "manageLink": MessageLookupByLibrary.simpleMessage("Linki yönet"), + "manageLink": MessageLookupByLibrary.simpleMessage("Bağlantıyı yönet"), "manageParticipants": MessageLookupByLibrary.simpleMessage("Yönet"), "manageSubscription": MessageLookupByLibrary.simpleMessage("Abonelikleri yönet"), @@ -1293,7 +1299,7 @@ class MessageLookup extends MessageLookupByLibrary { "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), "me": MessageLookupByLibrary.simpleMessage("Ben"), - "memoryCount": m48, + "memoryCount": m49, "merchandise": MessageLookupByLibrary.simpleMessage("Ürünler"), "mergeWithExisting": MessageLookupByLibrary.simpleMessage("Var olan ile birleştir."), @@ -1325,13 +1331,13 @@ class MessageLookup extends MessageLookupByLibrary { "mostRecent": MessageLookupByLibrary.simpleMessage("En son"), "mostRelevant": MessageLookupByLibrary.simpleMessage("En alakalı"), "mountains": MessageLookupByLibrary.simpleMessage("Tepelerin ötesinde"), - "moveItem": m49, + "moveItem": m50, "moveSelectedPhotosToOneDate": MessageLookupByLibrary.simpleMessage( "Seçilen fotoğrafları bir tarihe taşıma"), "moveToAlbum": MessageLookupByLibrary.simpleMessage("Albüme taşı"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("Gizli albüme ekle"), - "movedSuccessfullyTo": m50, + "movedSuccessfullyTo": m51, "movedToTrash": MessageLookupByLibrary.simpleMessage("Cöp kutusuna taşı"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1384,10 +1390,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Sonuç bulunamadı"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Hiçbir sonuç bulunamadı"), - "noSuggestionsForPerson": m51, + "noSuggestionsForPerson": m52, "noSystemLockFound": MessageLookupByLibrary.simpleMessage("Sistem kilidi bulunamadı"), - "notPersonLabel": m52, + "notPersonLabel": m53, "notThisPerson": MessageLookupByLibrary.simpleMessage("Bu kişi değil mi?"), "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( @@ -1396,12 +1402,12 @@ class MessageLookup extends MessageLookupByLibrary { "Burada görülecek bir şey yok! 👀"), "notifications": MessageLookupByLibrary.simpleMessage("Bildirimler"), "ok": MessageLookupByLibrary.simpleMessage("Tamam"), - "onDevice": MessageLookupByLibrary.simpleMessage("Bu cihaz"), + "onDevice": MessageLookupByLibrary.simpleMessage("Cihazda"), "onEnte": MessageLookupByLibrary.simpleMessage( "ente üzerinde"), "onTheRoad": MessageLookupByLibrary.simpleMessage("Yeniden yollarda"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), - "onlyFamilyAdminCanChangeCode": m53, + "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Sadece onlar"), "oops": MessageLookupByLibrary.simpleMessage("Hay aksi"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( @@ -1431,7 +1437,7 @@ class MessageLookup extends MessageLookupByLibrary { "pairingComplete": MessageLookupByLibrary.simpleMessage("Eşleştirme tamamlandı"), "panorama": MessageLookupByLibrary.simpleMessage("Panorama"), - "partyWithThem": m54, + "partyWithThem": m55, "passKeyPendingVerification": MessageLookupByLibrary.simpleMessage("Doğrulama hala bekliyor"), "passkey": MessageLookupByLibrary.simpleMessage("Geçiş anahtarı"), @@ -1441,7 +1447,7 @@ class MessageLookup extends MessageLookupByLibrary { "passwordChangedSuccessfully": MessageLookupByLibrary.simpleMessage( "Şifreniz başarılı bir şekilde değiştirildi"), "passwordLock": MessageLookupByLibrary.simpleMessage("Şifre kilidi"), - "passwordStrength": m55, + "passwordStrength": m56, "passwordStrengthInfo": MessageLookupByLibrary.simpleMessage( "Parola gücü, parolanın uzunluğu, kullanılan karakterler ve parolanın en çok kullanılan ilk 10.000 parola arasında yer alıp almadığı dikkate alınarak hesaplanır"), "passwordWarning": MessageLookupByLibrary.simpleMessage( @@ -1452,7 +1458,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Ödeme başarısız oldu"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Maalesef ödemeniz başarısız oldu. Lütfen destekle iletişime geçin, size yardımcı olacağız!"), - "paymentFailedTalkToProvider": m56, + "paymentFailedTalkToProvider": m57, "pendingItems": MessageLookupByLibrary.simpleMessage("Bekleyen Öğeler"), "pendingSync": MessageLookupByLibrary.simpleMessage("Bekleyen Senkronizasyonlar"), @@ -1465,20 +1471,20 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Kalıcı olarak sil"), "permanentlyDeleteFromDevice": MessageLookupByLibrary.simpleMessage( "Cihazdan kalıcı olarak silinsin mi?"), - "personIsAge": m57, + "personIsAge": m58, "personName": MessageLookupByLibrary.simpleMessage("Kişi Adı"), - "personTurningAge": m58, + "personTurningAge": m59, "pets": MessageLookupByLibrary.simpleMessage("Tüylü dostlar"), "photoDescriptions": MessageLookupByLibrary.simpleMessage("Fotoğraf Açıklaması"), "photoGridSize": MessageLookupByLibrary.simpleMessage("Izgara boyutu"), "photoSmallCase": MessageLookupByLibrary.simpleMessage("fotoğraf"), - "photocountPhotos": m59, + "photocountPhotos": m60, "photos": MessageLookupByLibrary.simpleMessage("Fotoğraflar"), "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "Eklediğiniz fotoğraflar albümden kaldırılacak"), - "photosCount": m60, + "photosCount": m61, "photosKeepRelativeTimeDifference": MessageLookupByLibrary.simpleMessage( "Fotoğraflar göreli zaman farkını korur"), @@ -1488,7 +1494,7 @@ class MessageLookup extends MessageLookupByLibrary { "pinLock": MessageLookupByLibrary.simpleMessage("Pin kilidi"), "playOnTv": MessageLookupByLibrary.simpleMessage("Albümü TV\'de oynat"), "playOriginal": MessageLookupByLibrary.simpleMessage("Orijinali oynat"), - "playStoreFreeTrialValidTill": m61, + "playStoreFreeTrialValidTill": m62, "playStream": MessageLookupByLibrary.simpleMessage("Akışı oynat"), "playstoreSubscription": MessageLookupByLibrary.simpleMessage("PlayStore aboneliği"), @@ -1501,14 +1507,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Bu hata devam ederse lütfen desteğe başvurun"), - "pleaseEmailUsAt": m62, + "pleaseEmailUsAt": m63, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage("Lütfen izin ver"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Lütfen tekrar giriş yapın"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Lütfen kaldırmak için hızlı bağlantıları seçin"), - "pleaseSendTheLogsTo": m63, + "pleaseSendTheLogsTo": m64, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Lütfen tekrar deneyiniz"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1523,7 +1529,7 @@ class MessageLookup extends MessageLookupByLibrary { "Tekrar denemeden önce lütfen bir süre bekleyin"), "pleaseWaitThisWillTakeAWhile": MessageLookupByLibrary.simpleMessage( "Lütfen bekleyin, bu biraz zaman alabilir."), - "posingWithThem": m64, + "posingWithThem": m65, "preparingLogs": MessageLookupByLibrary.simpleMessage("Kayıtlar hazırlanıyor..."), "preserveMore": @@ -1542,11 +1548,11 @@ class MessageLookup extends MessageLookupByLibrary { "proceed": MessageLookupByLibrary.simpleMessage("Devam edin"), "processed": MessageLookupByLibrary.simpleMessage("İşlenen"), "processing": MessageLookupByLibrary.simpleMessage("İşleniyor"), - "processingImport": m65, + "processingImport": m66, "processingVideos": MessageLookupByLibrary.simpleMessage("Videolar işleniyor"), "publicLinkCreated": MessageLookupByLibrary.simpleMessage( - "Herkese açık link oluşturuldu"), + "Herkese açık bağlantı oluşturuldu"), "publicLinkEnabled": MessageLookupByLibrary.simpleMessage( "Herkese açık bağlantı aktive edildi"), "queued": MessageLookupByLibrary.simpleMessage("Kuyrukta"), @@ -1556,10 +1562,10 @@ class MessageLookup extends MessageLookupByLibrary { "rateTheApp": MessageLookupByLibrary.simpleMessage("Uygulamayı puanlayın"), "rateUs": MessageLookupByLibrary.simpleMessage("Bizi değerlendirin"), - "rateUsOnStore": m66, + "rateUsOnStore": m67, "reassignMe": MessageLookupByLibrary.simpleMessage("\"Ben\"i yeniden atayın"), - "reassignedToName": m67, + "reassignedToName": m68, "reassigningLoading": MessageLookupByLibrary.simpleMessage("Yeniden atanıyor..."), "recover": MessageLookupByLibrary.simpleMessage("Kurtarma"), @@ -1569,7 +1575,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Hesabı kurtar"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("Kurtarma başlatıldı"), - "recoveryInitiatedDesc": m68, + "recoveryInitiatedDesc": m69, "recoveryKey": MessageLookupByLibrary.simpleMessage("Kurtarma anahtarı"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( @@ -1584,12 +1590,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Kurtarma kodu doğrulandı"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Kurtarma anahtarınız, şifrenizi unutmanız durumunda fotoğraflarınızı kurtarmanın tek yoludur. Kurtarma anahtarınızı Ayarlar > Hesap bölümünde bulabilirsiniz.\n\nDoğru kaydettiğinizi doğrulamak için lütfen kurtarma anahtarınızı buraya girin."), - "recoveryReady": m69, + "recoveryReady": m70, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("Kurtarma başarılı!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "Güvenilir bir kişi hesabınıza erişmeye çalışıyor"), - "recoveryWarningBody": m70, + "recoveryWarningBody": m71, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "Cihazınız, şifrenizi doğrulamak için yeterli güce sahip değil, ancak tüm cihazlarda çalışacak şekilde yeniden oluşturabiliriz.\n\nLütfen kurtarma anahtarınızı kullanarak giriş yapın ve şifrenizi yeniden oluşturun (istediğiniz takdirde aynı şifreyi tekrar kullanabilirsiniz)."), "recreatePasswordTitle": MessageLookupByLibrary.simpleMessage( @@ -1605,7 +1611,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Bu kodu arkadaşlarınıza verin"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Ücretli bir plan için kaydolsunlar"), - "referralStep3": m71, + "referralStep3": m72, "referrals": MessageLookupByLibrary.simpleMessage("Arkadaşını davet et"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( @@ -1633,16 +1639,16 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Favorilerden Kaldır"), "removeInvite": MessageLookupByLibrary.simpleMessage("Davetiyeyi kaldır"), - "removeLink": MessageLookupByLibrary.simpleMessage("Linki kaldır"), + "removeLink": MessageLookupByLibrary.simpleMessage("Bağlantıyı kaldır"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Katılımcıyı kaldır"), - "removeParticipantBody": m72, + "removeParticipantBody": m73, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Kişi etiketini kaldırın"), - "removePublicLink": - MessageLookupByLibrary.simpleMessage("Herkese açık link oluştur"), - "removePublicLinks": - MessageLookupByLibrary.simpleMessage("Herkese açık link oluştur"), + "removePublicLink": MessageLookupByLibrary.simpleMessage( + "Herkese açık bağlantıyı kaldır"), + "removePublicLinks": MessageLookupByLibrary.simpleMessage( + "Herkese açık bağlantıları kaldır"), "removeShareItemsWarning": MessageLookupByLibrary.simpleMessage( "Kaldırdığınız öğelerden bazıları başkaları tarafından eklenmiştir ve bunlara erişiminizi kaybedeceksiniz"), "removeWithQuestionMark": @@ -1658,7 +1664,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Dosyayı yeniden adlandır"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Abonelik yenileme"), - "renewsOn": m73, + "renewsOn": m74, "reportABug": MessageLookupByLibrary.simpleMessage("Hata bildir"), "reportBug": MessageLookupByLibrary.simpleMessage("Hata bildir"), "resendEmail": @@ -1670,7 +1676,7 @@ class MessageLookup extends MessageLookupByLibrary { "resetPerson": MessageLookupByLibrary.simpleMessage("Kaldır"), "resetToDefault": MessageLookupByLibrary.simpleMessage("Varsayılana sıfırla"), - "restore": MessageLookupByLibrary.simpleMessage("Yenile"), + "restore": MessageLookupByLibrary.simpleMessage("Geri yükle"), "restoreToAlbum": MessageLookupByLibrary.simpleMessage("Albümü yenile"), "restoringFiles": MessageLookupByLibrary.simpleMessage("Dosyalar geri yükleniyor..."), @@ -1683,7 +1689,7 @@ class MessageLookup extends MessageLookupByLibrary { "reviewSuggestions": MessageLookupByLibrary.simpleMessage("Önerileri inceleyin"), "right": MessageLookupByLibrary.simpleMessage("Sağ"), - "roadtripWithThem": m74, + "roadtripWithThem": m75, "rotate": MessageLookupByLibrary.simpleMessage("Döndür"), "rotateLeft": MessageLookupByLibrary.simpleMessage("Sola döndür"), "rotateRight": MessageLookupByLibrary.simpleMessage("Sağa döndür"), @@ -1739,8 +1745,8 @@ class MessageLookup extends MessageLookupByLibrary { "İnsanları davet ettiğinizde onların paylaştığı tüm fotoğrafları burada göreceksiniz"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "İşleme ve senkronizasyon tamamlandığında kişiler burada gösterilecektir"), - "searchResultCount": m75, - "searchSectionsLengthMismatch": m76, + "searchResultCount": m76, + "searchSectionsLengthMismatch": m77, "security": MessageLookupByLibrary.simpleMessage("Güvenlik"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Uygulamadaki herkese açık albüm bağlantılarını görün"), @@ -1789,13 +1795,13 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeRemovedFromThisPerson": MessageLookupByLibrary.simpleMessage( "Seçili öğeler bu kişiden silinir, ancak kitaplığınızdan silinmez."), - "selectedPhotos": m77, - "selectedPhotosWithYours": m78, - "selfiesWithThem": m79, + "selectedPhotos": m78, + "selectedPhotosWithYours": m79, + "selfiesWithThem": m80, "send": MessageLookupByLibrary.simpleMessage("Gönder"), "sendEmail": MessageLookupByLibrary.simpleMessage("E-posta gönder"), "sendInvite": MessageLookupByLibrary.simpleMessage("Davet kodu gönder"), - "sendLink": MessageLookupByLibrary.simpleMessage("Link gönder"), + "sendLink": MessageLookupByLibrary.simpleMessage("Bağlantıyı gönder"), "serverEndpoint": MessageLookupByLibrary.simpleMessage("Sunucu uç noktası"), "sessionExpired": @@ -1816,22 +1822,23 @@ class MessageLookup extends MessageLookupByLibrary { "setupComplete": MessageLookupByLibrary.simpleMessage("Ayarlama işlemi başarılı"), "share": MessageLookupByLibrary.simpleMessage("Paylaş"), - "shareALink": MessageLookupByLibrary.simpleMessage("Linki paylaş"), + "shareALink": + MessageLookupByLibrary.simpleMessage("Bir bağlantı paylaş"), "shareAlbumHint": MessageLookupByLibrary.simpleMessage( "Bir albüm açın ve paylaşmak için sağ üstteki paylaş düğmesine dokunun."), "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Şimdi bir albüm paylaşın"), - "shareLink": MessageLookupByLibrary.simpleMessage("Linki paylaş"), - "shareMyVerificationID": m80, + "shareLink": MessageLookupByLibrary.simpleMessage("Bağlantıyı paylaş"), + "shareMyVerificationID": m81, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Yalnızca istediğiniz kişilerle paylaşın"), - "shareTextConfirmOthersVerificationID": m81, + "shareTextConfirmOthersVerificationID": m82, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Orijinal kalitede fotoğraf ve videoları kolayca paylaşabilmemiz için Ente\'yi indirin\n\nhttps://ente.io"), - "shareTextReferralCode": m82, + "shareTextReferralCode": m83, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Ente kullanıcısı olmayanlar için paylaş"), - "shareWithPeopleSectionTitle": m83, + "shareWithPeopleSectionTitle": m84, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("İlk albümünüzü paylaşın"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1843,7 +1850,7 @@ class MessageLookup extends MessageLookupByLibrary { "Paylaşılan fotoğrafları ekle"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Birisi parçası olduğunuz paylaşılan bir albüme fotoğraf eklediğinde bildirim alın"), - "sharedWith": m84, + "sharedWith": m85, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Benimle paylaşılan"), "sharedWithYou": @@ -1861,11 +1868,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Diğer cihazlardan çıkış yap"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Hizmet Şartları\'nı ve Gizlilik Politikası\'nı kabul ediyorum"), - "singleFileDeleteFromDevice": m85, + "singleFileDeleteFromDevice": m86, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage("Tüm albümlerden silinecek."), - "singleFileInBothLocalAndRemote": m86, - "singleFileInRemoteOnly": m87, + "singleFileInBothLocalAndRemote": m87, + "singleFileInRemoteOnly": m88, "skip": MessageLookupByLibrary.simpleMessage("Geç"), "social": MessageLookupByLibrary.simpleMessage("Sosyal Medya"), "someItemsAreInBothEnteAndYourDevice": @@ -1902,8 +1909,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Yeniden eskiye"), "sortOldestFirst": MessageLookupByLibrary.simpleMessage("Önce en eski"), "sparkleSuccess": MessageLookupByLibrary.simpleMessage("✨ Başarılı"), - "sportsWithThem": m88, - "spotlightOnThem": m89, + "sportsWithThem": m89, + "spotlightOnThem": m90, "spotlightOnYourself": MessageLookupByLibrary.simpleMessage("Sahne senin"), "startAccountRecoveryTitle": @@ -1918,15 +1925,14 @@ class MessageLookup extends MessageLookupByLibrary { "storage": MessageLookupByLibrary.simpleMessage("Depolama"), "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("Aile"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("Sen"), - "storageInGB": m90, + "storageInGB": m91, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Depolama sınırı aşıldı"), - "storageUsageInfo": m91, - "streamDetails": - MessageLookupByLibrary.simpleMessage("Yayın detayları"), + "storageUsageInfo": m92, + "streamDetails": MessageLookupByLibrary.simpleMessage("Akış detayları"), "strongStrength": MessageLookupByLibrary.simpleMessage("Güçlü"), - "subAlreadyLinkedErrMessage": m92, - "subWillBeCancelledOn": m93, + "subAlreadyLinkedErrMessage": m93, + "subWillBeCancelledOn": m94, "subscribe": MessageLookupByLibrary.simpleMessage("Abone ol"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Paylaşımı etkinleştirmek için aktif bir ücretli aboneliğe ihtiyacınız var."), @@ -1944,7 +1950,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Özellik önerin"), "sunrise": MessageLookupByLibrary.simpleMessage("Ufukta"), "support": MessageLookupByLibrary.simpleMessage("Destek"), - "syncProgress": m94, + "syncProgress": m95, "syncStopped": MessageLookupByLibrary.simpleMessage("Senkronizasyon durduruldu"), "syncing": MessageLookupByLibrary.simpleMessage("Eşitleniyor..."), @@ -1956,7 +1962,7 @@ class MessageLookup extends MessageLookupByLibrary { "tapToUnlock": MessageLookupByLibrary.simpleMessage("Açmak için dokun"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Yüklemek için tıklayın"), - "tapToUploadIsIgnoredDue": m95, + "tapToUploadIsIgnoredDue": m96, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Bir şeyler ters gitmiş gibi görünüyor. Lütfen bir süre sonra tekrar deneyin. Hata devam ederse, lütfen destek ekibimizle iletişime geçin."), "terminate": MessageLookupByLibrary.simpleMessage("Sonlandır"), @@ -1979,7 +1985,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Bu öğeler cihazınızdan silinecektir."), - "theyAlsoGetXGb": m96, + "theyAlsoGetXGb": m97, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage("Tüm albümlerden silinecek."), "thisActionCannotBeUndone": @@ -1997,12 +2003,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Bu görselde exif verisi yok"), "thisIsMeExclamation": MessageLookupByLibrary.simpleMessage("Bu benim!"), - "thisIsPersonVerificationId": m97, + "thisIsPersonVerificationId": m98, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage("Doğrulama kimliğiniz"), "thisWeekThroughTheYears": MessageLookupByLibrary.simpleMessage("Yıllar boyunca bu hafta"), - "thisWeekXYearsAgo": m98, + "thisWeekXYearsAgo": m99, "thisWillLogYouOutOfTheFollowingDevice": MessageLookupByLibrary.simpleMessage( "Bu, sizi aşağıdaki cihazdan çıkış yapacak:"), @@ -2014,7 +2020,7 @@ class MessageLookup extends MessageLookupByLibrary { "thisWillRemovePublicLinksOfAllSelectedQuickLinks": MessageLookupByLibrary.simpleMessage( "Bu, seçilen tüm hızlı bağlantıların genel bağlantılarını kaldıracaktır."), - "throughTheYears": m99, + "throughTheYears": m100, "toEnableAppLockPleaseSetupDevicePasscodeOrScreen": MessageLookupByLibrary.simpleMessage( "Uygulama kilidini etkinleştirmek için lütfen sistem ayarlarınızda cihaz şifresi veya ekran kilidi ayarlayın."), @@ -2028,13 +2034,13 @@ class MessageLookup extends MessageLookupByLibrary { "total": MessageLookupByLibrary.simpleMessage("total"), "totalSize": MessageLookupByLibrary.simpleMessage("Toplam boyut"), "trash": MessageLookupByLibrary.simpleMessage("Cöp kutusu"), - "trashDaysLeft": m100, + "trashDaysLeft": m101, "trim": MessageLookupByLibrary.simpleMessage("Kes"), - "tripInYear": m101, - "tripToLocation": m102, + "tripInYear": m102, + "tripToLocation": m103, "trustedContacts": MessageLookupByLibrary.simpleMessage("Güvenilir kişiler"), - "trustedInviteBody": m103, + "trustedInviteBody": m104, "tryAgain": MessageLookupByLibrary.simpleMessage("Tekrar deneyiniz"), "turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage( "Bu cihaz klasörüne eklenen dosyaları otomatik olarak ente\'ye yüklemek için yedeklemeyi açın."), @@ -2053,7 +2059,7 @@ class MessageLookup extends MessageLookupByLibrary { "İki faktörlü kimlik doğrulama başarıyla sıfırlandı"), "twofactorSetup": MessageLookupByLibrary.simpleMessage("İki faktörlü kurulum"), - "typeOfGallerGallerytypeIsNotSupportedForRename": m104, + "typeOfGallerGallerytypeIsNotSupportedForRename": m105, "unarchive": MessageLookupByLibrary.simpleMessage("Arşivden cıkar"), "unarchiveAlbum": MessageLookupByLibrary.simpleMessage("Arşivden Çıkar"), @@ -2078,10 +2084,10 @@ class MessageLookup extends MessageLookupByLibrary { "updatingFolderSelection": MessageLookupByLibrary.simpleMessage( "Klasör seçimi güncelleniyor..."), "upgrade": MessageLookupByLibrary.simpleMessage("Yükselt"), - "uploadIsIgnoredDueToIgnorereason": m105, + "uploadIsIgnoredDueToIgnorereason": m106, "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage( "Dosyalar albüme taşınıyor..."), - "uploadingMultipleMemories": m106, + "uploadingMultipleMemories": m107, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage("1 anı korunuyor..."), "upto50OffUntil4thDec": MessageLookupByLibrary.simpleMessage( @@ -2100,7 +2106,7 @@ class MessageLookup extends MessageLookupByLibrary { "useSelectedPhoto": MessageLookupByLibrary.simpleMessage("Seçilen fotoğrafı kullan"), "usedSpace": MessageLookupByLibrary.simpleMessage("Kullanılan alan"), - "validTill": m107, + "validTill": m108, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Doğrulama başarısız oldu, lütfen tekrar deneyin"), @@ -2109,7 +2115,7 @@ class MessageLookup extends MessageLookupByLibrary { "verify": MessageLookupByLibrary.simpleMessage("Doğrula"), "verifyEmail": MessageLookupByLibrary.simpleMessage("E-posta adresini doğrulayın"), - "verifyEmailID": m108, + "verifyEmailID": m109, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("Doğrula"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("Şifrenizi doğrulayın"), @@ -2120,6 +2126,8 @@ class MessageLookup extends MessageLookupByLibrary { "Kurtarma kodu doğrulanıyor..."), "videoInfo": MessageLookupByLibrary.simpleMessage("Video Bilgileri"), "videoSmallCase": MessageLookupByLibrary.simpleMessage("video"), + "videoStreaming": + MessageLookupByLibrary.simpleMessage("Akışlandırılabilir videolar"), "videos": MessageLookupByLibrary.simpleMessage("Videolar"), "viewActiveSessions": MessageLookupByLibrary.simpleMessage("Aktif oturumları görüntüle"), @@ -2133,10 +2141,11 @@ class MessageLookup extends MessageLookupByLibrary { "viewLargeFilesDesc": MessageLookupByLibrary.simpleMessage( "En fazla depolama alanı kullanan dosyaları görüntüleyin."), "viewLogs": MessageLookupByLibrary.simpleMessage("Kayıtları görüntüle"), + "viewPersonToUnlink": m110, "viewRecoveryKey": MessageLookupByLibrary.simpleMessage( "Kurtarma anahtarını görüntüle"), "viewer": MessageLookupByLibrary.simpleMessage("Görüntüleyici"), - "viewersSuccessfullyAdded": m109, + "viewersSuccessfullyAdded": m111, "visitWebToManage": MessageLookupByLibrary.simpleMessage( "Aboneliğinizi yönetmek için lütfen web.ente.io adresini ziyaret edin"), "waitingForVerification": @@ -2149,7 +2158,7 @@ class MessageLookup extends MessageLookupByLibrary { "weDontSupportEditingPhotosAndAlbumsThatYouDont": MessageLookupByLibrary.simpleMessage( "Henüz sahibi olmadığınız fotoğraf ve albümlerin düzenlenmesini desteklemiyoruz"), - "weHaveSendEmailTo": m110, + "weHaveSendEmailTo": m112, "weakStrength": MessageLookupByLibrary.simpleMessage("Zayıf"), "welcomeBack": MessageLookupByLibrary.simpleMessage("Tekrardan hoşgeldin!"), @@ -2157,7 +2166,7 @@ class MessageLookup extends MessageLookupByLibrary { "whyAddTrustContact": MessageLookupByLibrary.simpleMessage("."), "yearShort": MessageLookupByLibrary.simpleMessage("yıl"), "yearly": MessageLookupByLibrary.simpleMessage("Yıllık"), - "yearsAgo": m111, + "yearsAgo": m113, "yes": MessageLookupByLibrary.simpleMessage("Evet"), "yesCancel": MessageLookupByLibrary.simpleMessage("Evet, iptal et"), "yesConvertToViewer": MessageLookupByLibrary.simpleMessage( @@ -2172,7 +2181,7 @@ class MessageLookup extends MessageLookupByLibrary { "yesResetPerson": MessageLookupByLibrary.simpleMessage("Evet, kişiyi sıfırla"), "you": MessageLookupByLibrary.simpleMessage("Sen"), - "youAndThem": m112, + "youAndThem": m114, "youAreOnAFamilyPlan": MessageLookupByLibrary.simpleMessage("Aile planı kullanıyorsunuz!"), "youAreOnTheLatestVersion": @@ -2191,7 +2200,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Kendinizle paylaşamazsınız"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage("Arşivlenmiş öğeniz yok."), - "youHaveSuccessfullyFreedUp": m113, + "youHaveSuccessfullyFreedUp": m115, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage("Hesabınız silindi"), "yourMap": MessageLookupByLibrary.simpleMessage("Haritalarınız"), diff --git a/mobile/lib/generated/intl/messages_uk.dart b/mobile/lib/generated/intl/messages_uk.dart index 98edaccebb..371be63fd0 100644 --- a/mobile/lib/generated/intl/messages_uk.dart +++ b/mobile/lib/generated/intl/messages_uk.dart @@ -80,156 +80,156 @@ class MessageLookup extends MessageLookupByLibrary { static String m26(count, formattedSize) => "${count} файлів, кожен по ${formattedSize}"; - static String m27(newEmail) => "Поштову адресу змінено на ${newEmail}"; + static String m28(newEmail) => "Поштову адресу змінено на ${newEmail}"; - static String m29(email) => + static String m30(email) => "У ${email} немає облікового запису Ente.\n\nНадішліть їм запрошення для обміну фотографіями."; - static String m31(text) => "Знайдено додаткові фотографії для ${text}"; - - static String m33(count, formattedNumber) => - "${Intl.plural(count, one: 'Для 1 файлу', other: 'Для ${formattedNumber} файлів')} на цьому пристрої було створено резервну копію"; + static String m32(text) => "Знайдено додаткові фотографії для ${text}"; static String m34(count, formattedNumber) => + "${Intl.plural(count, one: 'Для 1 файлу', other: 'Для ${formattedNumber} файлів')} на цьому пристрої було створено резервну копію"; + + static String m35(count, formattedNumber) => "${Intl.plural(count, one: 'Для 1 файлу', other: 'Для ${formattedNumber} файлів')} у цьому альбомі було створено резервну копію"; - static String m35(storageAmountInGB) => + static String m36(storageAmountInGB) => "${storageAmountInGB} ГБ щоразу, коли хтось оформлює передплату і застосовує ваш код"; - static String m36(endDate) => "Безплатна пробна версія діє до ${endDate}"; + static String m37(endDate) => "Безплатна пробна версія діє до ${endDate}"; - static String m38(sizeInMBorGB) => "Звільніть ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "Звільніть ${sizeInMBorGB}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Обробка ${currentlyProcessing} / ${totalCount}"; - static String m42(count) => + static String m43(count) => "${Intl.plural(count, one: '${count} елемент', few: '${count} елементи', many: '${count} елементів', other: '${count} елементів')}"; - static String m44(email) => "${email} запросив вас стати довіреною особою"; + static String m45(email) => "${email} запросив вас стати довіреною особою"; - static String m45(expiryTime) => "Посилання закінчується через ${expiryTime}"; + static String m46(expiryTime) => "Посилання закінчується через ${expiryTime}"; - static String m50(albumName) => "Успішно перенесено до «${albumName}»"; + static String m51(albumName) => "Успішно перенесено до «${albumName}»"; - static String m51(personName) => "Немає пропозицій для ${personName}"; + static String m52(personName) => "Немає пропозицій для ${personName}"; - static String m52(name) => "Не ${name}?"; + static String m53(name) => "Не ${name}?"; - static String m53(familyAdminEmail) => + static String m54(familyAdminEmail) => "Зв\'яжіться з ${familyAdminEmail}, щоб змінити код."; - static String m55(passwordStrengthValue) => + static String m56(passwordStrengthValue) => "Надійність пароля: ${passwordStrengthValue}"; - static String m56(providerName) => + static String m57(providerName) => "Зверніться до ${providerName}, якщо було знято платіж"; - static String m61(endDate) => + static String m62(endDate) => "Безплатна пробна версія діє до ${endDate}.\nПісля цього ви можете обрати платний план."; - static String m62(toEmail) => "Напишіть нам на ${toEmail}"; + static String m63(toEmail) => "Напишіть нам на ${toEmail}"; - static String m63(toEmail) => "Надішліть журнали на \n${toEmail}"; + static String m64(toEmail) => "Надішліть журнали на \n${toEmail}"; - static String m65(folderName) => "Оброблюємо «${folderName}»..."; + static String m66(folderName) => "Оброблюємо «${folderName}»..."; - static String m66(storeName) => "Оцініть нас в ${storeName}"; + static String m67(storeName) => "Оцініть нас в ${storeName}"; - static String m68(days, email) => + static String m69(days, email) => "Ви зможете отримати доступ до облікового запису через ${days} днів. Повідомлення буде надіслано на ${email}."; - static String m69(email) => + static String m70(email) => "Тепер ви можете відновити обліковий запис ${email}, встановивши новий пароль."; - static String m70(email) => + static String m71(email) => "${email} намагається відновити ваш обліковий запис."; - static String m71(storageInGB) => + static String m72(storageInGB) => "3. Ви обоє отримуєте ${storageInGB} ГБ* безплатно"; - static String m72(userEmail) => + static String m73(userEmail) => "${userEmail} буде видалено з цього спільного альбому\n\nБудь-які додані вами фото, будуть також видалені з альбому"; - static String m73(endDate) => "Передплата поновиться ${endDate}"; + static String m74(endDate) => "Передплата поновиться ${endDate}"; - static String m75(count) => + static String m76(count) => "${Intl.plural(count, one: 'Знайдено ${count} результат', few: 'Знайдено ${count} результати', many: 'Знайдено ${count} результатів', other: 'Знайдено ${count} результати')}"; - static String m76(snapshotLength, searchLength) => + static String m77(snapshotLength, searchLength) => "Невідповідність довжини розділів: ${snapshotLength} != ${searchLength}"; - static String m77(count) => "${count} вибрано"; + static String m78(count) => "${count} вибрано"; - static String m78(count, yourCount) => "${count} вибрано (${yourCount} ваші)"; - - static String m80(verificationID) => - "Ось мій ідентифікатор підтвердження: ${verificationID} для ente.io."; + static String m79(count, yourCount) => "${count} вибрано (${yourCount} ваші)"; static String m81(verificationID) => + "Ось мій ідентифікатор підтвердження: ${verificationID} для ente.io."; + + static String m82(verificationID) => "Гей, ви можете підтвердити, що це ваш ідентифікатор підтвердження: ${verificationID}"; - static String m82(referralCode, referralStorageInGB) => + static String m83(referralCode, referralStorageInGB) => "Реферальний код Ente: ${referralCode} \n\nЗастосуйте його в «Налаштування» → «Загальні» → «Реферали», щоб отримати ${referralStorageInGB} ГБ безплатно після переходу на платний тариф\n\nhttps://ente.io"; - static String m83(numberOfPeople) => + static String m84(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Поділитися з конкретними людьми', one: 'Поділитися з 1 особою', other: 'Поділитися з ${numberOfPeople} людьми')}"; - static String m84(emailIDs) => "Поділилися з ${emailIDs}"; + static String m85(emailIDs) => "Поділилися з ${emailIDs}"; - static String m85(fileType) => "Цей ${fileType} буде видалено з пристрою."; + static String m86(fileType) => "Цей ${fileType} буде видалено з пристрою."; - static String m86(fileType) => + static String m87(fileType) => "Цей ${fileType} знаходиться і в Ente, і на вашому пристрої."; - static String m87(fileType) => "Цей ${fileType} буде видалено з Ente."; + static String m88(fileType) => "Цей ${fileType} буде видалено з Ente."; - static String m90(storageAmountInGB) => "${storageAmountInGB} ГБ"; + static String m91(storageAmountInGB) => "${storageAmountInGB} ГБ"; - static String m91( + static String m92( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} з ${totalAmount} ${totalStorageUnit} використано"; - static String m92(id) => + static String m93(id) => "Ваш ${id} вже пов\'язаний з іншим обліковим записом Ente.\nЯкщо ви хочете використовувати свій ${id} з цим обліковим записом, зверніться до нашої служби підтримки"; - static String m93(endDate) => "Вашу передплату буде скасовано ${endDate}"; + static String m94(endDate) => "Вашу передплату буде скасовано ${endDate}"; - static String m94(completed, total) => + static String m95(completed, total) => "${completed} / ${total} спогадів збережено"; - static String m95(ignoreReason) => + static String m96(ignoreReason) => "Натисніть, щоб завантажити; завантаження наразі ігнорується через: ${ignoreReason}"; - static String m96(storageAmountInGB) => + static String m97(storageAmountInGB) => "Вони також отримують ${storageAmountInGB} ГБ"; - static String m97(email) => "Це ідентифікатор підтвердження пошти ${email}"; + static String m98(email) => "Це ідентифікатор підтвердження пошти ${email}"; - static String m100(count) => + static String m101(count) => "${Intl.plural(count, zero: 'Незабаром', one: '1 день', other: '${count} днів')}"; - static String m103(email) => + static String m104(email) => "Ви отримали запрошення стати спадковим контактом від ${email}."; - static String m104(galleryType) => + static String m105(galleryType) => "Тип галереї «${galleryType}» не підтримується для перейменування"; - static String m105(ignoreReason) => + static String m106(ignoreReason) => "Завантаження проігноровано через: ${ignoreReason}"; - static String m106(count) => "Збереження ${count} спогадів..."; + static String m107(count) => "Збереження ${count} спогадів..."; - static String m107(endDate) => "Діє до ${endDate}"; + static String m108(endDate) => "Діє до ${endDate}"; - static String m108(email) => "Підтвердити ${email}"; + static String m109(email) => "Підтвердити ${email}"; - static String m110(email) => "Ми надіслали листа на ${email}"; + static String m112(email) => "Ми надіслали листа на ${email}"; - static String m111(count) => + static String m113(count) => "${Intl.plural(count, one: '${count} рік тому', other: '${count} років тому')}"; - static String m113(storageSaved) => "Ви успішно звільнили ${storageSaved}!"; + static String m115(storageSaved) => "Ви успішно звільнили ${storageSaved}!"; final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { @@ -758,8 +758,8 @@ class MessageLookup extends MessageLookupByLibrary { "eligible": MessageLookupByLibrary.simpleMessage("придатний"), "email": MessageLookupByLibrary.simpleMessage("Адреса електронної пошти"), - "emailChangedTo": m27, - "emailNoEnteAccount": m29, + "emailChangedTo": m28, + "emailNoEnteAccount": m30, "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("Підтвердження через пошту"), "emailYourLogs": MessageLookupByLibrary.simpleMessage( @@ -841,7 +841,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Експортувати дані"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage( "Знайдено додаткові фотографії"), - "extraPhotosFoundFor": m31, + "extraPhotosFoundFor": m32, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Обличчя ще не згруповані, поверніться пізніше"), "faceRecognition": @@ -891,8 +891,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Типи файлів"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Типи та назви файлів"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m34, + "filesBackedUpInAlbum": m35, "filesDeleted": MessageLookupByLibrary.simpleMessage("Файли видалено"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage("Файли збережено до галереї"), @@ -908,13 +908,13 @@ class MessageLookup extends MessageLookupByLibrary { "foundFaces": MessageLookupByLibrary.simpleMessage("Знайдені обличчя"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("Безплатне сховище отримано"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m36, "freeStorageUsable": MessageLookupByLibrary.simpleMessage( "Безплатне сховище можна використовувати"), "freeTrial": MessageLookupByLibrary.simpleMessage("Безплатний пробний період"), - "freeTrialValidTill": m36, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage("Звільніть місце на пристрої"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( @@ -925,7 +925,7 @@ class MessageLookup extends MessageLookupByLibrary { "general": MessageLookupByLibrary.simpleMessage("Загальні"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Створення ключів шифрування..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Перейти до налаштувань"), "googlePlayId": MessageLookupByLibrary.simpleMessage("Google Play ID"), @@ -1006,7 +1006,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Схоже, що щось пішло не так. Спробуйте ще раз через деякий час. Якщо помилка не зникне, зв\'яжіться з нашою командою підтримки."), - "itemCount": m42, + "itemCount": m43, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Елементи показують кількість днів, що залишилися до остаточного видалення"), @@ -1030,7 +1030,7 @@ class MessageLookup extends MessageLookupByLibrary { "legacy": MessageLookupByLibrary.simpleMessage("Спадок"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Облікові записи «Спадку»"), - "legacyInvite": m44, + "legacyInvite": m45, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "«Спадок» дозволяє довіреним контактам отримати доступ до вашого облікового запису під час вашої відсутності."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( @@ -1043,7 +1043,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Досягнуто ліміту пристроїв"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Увімкнено"), "linkExpired": MessageLookupByLibrary.simpleMessage("Закінчився"), - "linkExpiresOn": m45, + "linkExpiresOn": m46, "linkExpiry": MessageLookupByLibrary.simpleMessage( "Термін дії посилання закінчився"), "linkHasExpired": @@ -1171,7 +1171,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Перемістити до альбому"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage( "Перемістити до прихованого альбому"), - "movedSuccessfullyTo": m50, + "movedSuccessfullyTo": m51, "movedToTrash": MessageLookupByLibrary.simpleMessage("Переміщено у смітник"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1223,10 +1223,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Немає результатів"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Нічого не знайдено"), - "noSuggestionsForPerson": m51, + "noSuggestionsForPerson": m52, "noSystemLockFound": MessageLookupByLibrary.simpleMessage( "Не знайдено системного блокування"), - "notPersonLabel": m52, + "notPersonLabel": m53, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( "Поки що з вами ніхто не поділився"), "nothingToSeeHere": MessageLookupByLibrary.simpleMessage( @@ -1237,7 +1237,7 @@ class MessageLookup extends MessageLookupByLibrary { "onEnte": MessageLookupByLibrary.simpleMessage("В Ente"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), - "onlyFamilyAdminCanChangeCode": m53, + "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Тільки вони"), "oops": MessageLookupByLibrary.simpleMessage("От халепа"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( @@ -1277,7 +1277,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Пароль успішно змінено"), "passwordLock": MessageLookupByLibrary.simpleMessage("Блокування паролем"), - "passwordStrength": m55, + "passwordStrength": m56, "passwordStrengthInfo": MessageLookupByLibrary.simpleMessage( "Надійність пароля розраховується з урахуванням довжини пароля, використаних символів, а також того, чи входить пароль у топ 10 000 найбільш використовуваних паролів"), "passwordWarning": MessageLookupByLibrary.simpleMessage( @@ -1288,7 +1288,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Не вдалося оплатити"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "На жаль, ваш платіж не вдався. Зв\'яжіться зі службою підтримки і ми вам допоможемо!"), - "paymentFailedTalkToProvider": m56, + "paymentFailedTalkToProvider": m57, "pendingItems": MessageLookupByLibrary.simpleMessage("Елементи на розгляді"), "pendingSync": @@ -1318,7 +1318,7 @@ class MessageLookup extends MessageLookupByLibrary { "pinLock": MessageLookupByLibrary.simpleMessage("Блокування PIN-кодом"), "playOnTv": MessageLookupByLibrary.simpleMessage("Відтворити альбом на ТБ"), - "playStoreFreeTrialValidTill": m61, + "playStoreFreeTrialValidTill": m62, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("Передплата Play Store"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1330,14 +1330,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Зверніться до служби підтримки, якщо проблема не зникне"), - "pleaseEmailUsAt": m62, + "pleaseEmailUsAt": m63, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage("Надайте дозволи"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Увійдіть знову"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Виберіть посилання для видалення"), - "pleaseSendTheLogsTo": m63, + "pleaseSendTheLogsTo": m64, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Спробуйте ще раз"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1364,7 +1364,7 @@ class MessageLookup extends MessageLookupByLibrary { "privateSharing": MessageLookupByLibrary.simpleMessage("Приватне поширення"), "proceed": MessageLookupByLibrary.simpleMessage("Продовжити"), - "processingImport": m65, + "processingImport": m66, "publicLinkCreated": MessageLookupByLibrary.simpleMessage("Публічне посилання створено"), "publicLinkEnabled": MessageLookupByLibrary.simpleMessage( @@ -1375,7 +1375,7 @@ class MessageLookup extends MessageLookupByLibrary { "rateTheApp": MessageLookupByLibrary.simpleMessage("Оцініть застосунок"), "rateUs": MessageLookupByLibrary.simpleMessage("Оцініть нас"), - "rateUsOnStore": m66, + "rateUsOnStore": m67, "recover": MessageLookupByLibrary.simpleMessage("Відновити"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Відновити обліковий запис"), @@ -1384,7 +1384,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Відновити обліковий запис"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("Почато відновлення"), - "recoveryInitiatedDesc": m68, + "recoveryInitiatedDesc": m69, "recoveryKey": MessageLookupByLibrary.simpleMessage("Ключ відновлення"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Ключ відновлення скопійовано в буфер обміну"), @@ -1398,12 +1398,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Ключ відновлення перевірено"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Ключ відновлення — це єдиний спосіб відновити фотографії, якщо ви забули пароль. Ви можете знайти свій ключ в розділі «Налаштування» > «Обліковий запис».\n\nВведіть ключ відновлення тут, щоб перевірити, чи правильно ви його зберегли."), - "recoveryReady": m69, + "recoveryReady": m70, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("Відновлення успішне!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "Довірений контакт намагається отримати доступ до вашого облікового запису"), - "recoveryWarningBody": m70, + "recoveryWarningBody": m71, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "Ваш пристрій недостатньо потужний для перевірки пароля, але ми можемо відновити його таким чином, щоб він працював на всіх пристроях.\n\nУвійдіть за допомогою ключа відновлення та відновіть свій пароль (за бажанням ви можете використати той самий ключ знову)."), "recreatePasswordTitle": @@ -1419,7 +1419,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("1. Дайте цей код друзям"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Вони оформлюють передплату"), - "referralStep3": m71, + "referralStep3": m72, "referrals": MessageLookupByLibrary.simpleMessage("Реферали"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage("Реферали зараз призупинені"), @@ -1451,7 +1451,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Вилучити посилання"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Видалити учасника"), - "removeParticipantBody": m72, + "removeParticipantBody": m73, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Видалити мітку особи"), "removePublicLink": @@ -1473,7 +1473,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Перейменувати файл"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Поновити передплату"), - "renewsOn": m73, + "renewsOn": m74, "reportABug": MessageLookupByLibrary.simpleMessage("Повідомити про помилку"), "reportBug": @@ -1553,8 +1553,8 @@ class MessageLookup extends MessageLookupByLibrary { "Запросіть людей, і ви побачите всі фотографії, якими вони поділилися, тут"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "Люди будуть показані тут після завершення оброблення та синхронізації"), - "searchResultCount": m75, - "searchSectionsLengthMismatch": m76, + "searchResultCount": m76, + "searchSectionsLengthMismatch": m77, "security": MessageLookupByLibrary.simpleMessage("Безпека"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Посилання на публічні альбоми в застосунку"), @@ -1586,8 +1586,8 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeDeletedFromAllAlbumsAndMoved": MessageLookupByLibrary.simpleMessage( "Вибрані елементи будуть видалені з усіх альбомів і переміщені в смітник."), - "selectedPhotos": m77, - "selectedPhotosWithYours": m78, + "selectedPhotos": m78, + "selectedPhotosWithYours": m79, "send": MessageLookupByLibrary.simpleMessage("Надіслати"), "sendEmail": MessageLookupByLibrary.simpleMessage( "Надіслати електронного листа"), @@ -1624,16 +1624,16 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Поділитися альбомом зараз"), "shareLink": MessageLookupByLibrary.simpleMessage("Поділитися посиланням"), - "shareMyVerificationID": m80, + "shareMyVerificationID": m81, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Поділіться тільки з тими людьми, якими ви хочете"), - "shareTextConfirmOthersVerificationID": m81, + "shareTextConfirmOthersVerificationID": m82, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Завантажте Ente для того, щоб легко поділитися фотографіями оригінальної якості та відео\n\nhttps://ente.io"), - "shareTextReferralCode": m82, + "shareTextReferralCode": m83, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Поділитися з користувачами без Ente"), - "shareWithPeopleSectionTitle": m83, + "shareWithPeopleSectionTitle": m84, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage( "Поділитися вашим першим альбомом"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1644,7 +1644,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Нові спільні фотографії"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Отримувати сповіщення, коли хтось додасть фото до спільного альбому, в якому ви перебуваєте"), - "sharedWith": m84, + "sharedWith": m85, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Поділитися зі мною"), "sharedWithYou": @@ -1661,11 +1661,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Вийти на інших пристроях"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Я приймаю умови використання і політику приватності"), - "singleFileDeleteFromDevice": m85, + "singleFileDeleteFromDevice": m86, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Воно буде видалено з усіх альбомів."), - "singleFileInBothLocalAndRemote": m86, - "singleFileInRemoteOnly": m87, + "singleFileInBothLocalAndRemote": m87, + "singleFileInRemoteOnly": m88, "skip": MessageLookupByLibrary.simpleMessage("Пропустити"), "social": MessageLookupByLibrary.simpleMessage("Соцмережі"), "someItemsAreInBothEnteAndYourDevice": @@ -1713,13 +1713,13 @@ class MessageLookup extends MessageLookupByLibrary { "storage": MessageLookupByLibrary.simpleMessage("Сховище"), "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("Сім\'я"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("Ви"), - "storageInGB": m90, + "storageInGB": m91, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Перевищено ліміт сховища"), - "storageUsageInfo": m91, + "storageUsageInfo": m92, "strongStrength": MessageLookupByLibrary.simpleMessage("Надійний"), - "subAlreadyLinkedErrMessage": m92, - "subWillBeCancelledOn": m93, + "subAlreadyLinkedErrMessage": m93, + "subWillBeCancelledOn": m94, "subscribe": MessageLookupByLibrary.simpleMessage("Передплачувати"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Вам потрібна активна передплата, щоб увімкнути спільне поширення."), @@ -1736,7 +1736,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("Запропонувати нові функції"), "support": MessageLookupByLibrary.simpleMessage("Підтримка"), - "syncProgress": m94, + "syncProgress": m95, "syncStopped": MessageLookupByLibrary.simpleMessage("Синхронізацію зупинено"), "syncing": MessageLookupByLibrary.simpleMessage("Синхронізуємо..."), @@ -1749,7 +1749,7 @@ class MessageLookup extends MessageLookupByLibrary { "Торкніться, щоби розблокувати"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Натисніть, щоб завантажити"), - "tapToUploadIsIgnoredDue": m95, + "tapToUploadIsIgnoredDue": m96, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Схоже, що щось пішло не так. Спробуйте ще раз через деякий час. Якщо помилка не зникне, зв\'яжіться з нашою командою підтримки."), "terminate": MessageLookupByLibrary.simpleMessage("Припинити"), @@ -1772,7 +1772,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Ці елементи будуть видалені з пристрою."), - "theyAlsoGetXGb": m96, + "theyAlsoGetXGb": m97, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Вони будуть видалені з усіх альбомів."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( @@ -1788,7 +1788,7 @@ class MessageLookup extends MessageLookupByLibrary { "Ця поштова адреса вже використовується"), "thisImageHasNoExifData": MessageLookupByLibrary.simpleMessage( "Це зображення не має даних exif"), - "thisIsPersonVerificationId": m97, + "thisIsPersonVerificationId": m98, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage( "Це ваш Ідентифікатор підтвердження"), "thisWillLogYouOutOfTheFollowingDevice": @@ -1813,11 +1813,11 @@ class MessageLookup extends MessageLookupByLibrary { "total": MessageLookupByLibrary.simpleMessage("всього"), "totalSize": MessageLookupByLibrary.simpleMessage("Загальний розмір"), "trash": MessageLookupByLibrary.simpleMessage("Смітник"), - "trashDaysLeft": m100, + "trashDaysLeft": m101, "trim": MessageLookupByLibrary.simpleMessage("Вирізати"), "trustedContacts": MessageLookupByLibrary.simpleMessage("Довірені контакти"), - "trustedInviteBody": m103, + "trustedInviteBody": m104, "tryAgain": MessageLookupByLibrary.simpleMessage("Спробувати знову"), "turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage( "Увімкніть резервну копію для автоматичного завантаження файлів, доданих до теки пристрою в Ente."), @@ -1835,7 +1835,7 @@ class MessageLookup extends MessageLookupByLibrary { "Двоетапну перевірку успішно скинуто"), "twofactorSetup": MessageLookupByLibrary.simpleMessage( "Налаштування двоетапної перевірки"), - "typeOfGallerGallerytypeIsNotSupportedForRename": m104, + "typeOfGallerGallerytypeIsNotSupportedForRename": m105, "unarchive": MessageLookupByLibrary.simpleMessage("Розархівувати"), "unarchiveAlbum": MessageLookupByLibrary.simpleMessage("Розархівувати альбом"), @@ -1858,10 +1858,10 @@ class MessageLookup extends MessageLookupByLibrary { "updatingFolderSelection": MessageLookupByLibrary.simpleMessage("Оновлення вибору теки..."), "upgrade": MessageLookupByLibrary.simpleMessage("Покращити"), - "uploadIsIgnoredDueToIgnorereason": m105, + "uploadIsIgnoredDueToIgnorereason": m106, "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage( "Завантажуємо файли до альбому..."), - "uploadingMultipleMemories": m106, + "uploadingMultipleMemories": m107, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage("Зберігаємо 1 спогад..."), "upto50OffUntil4thDec": @@ -1880,7 +1880,7 @@ class MessageLookup extends MessageLookupByLibrary { "useSelectedPhoto": MessageLookupByLibrary.simpleMessage("Використати вибране фото"), "usedSpace": MessageLookupByLibrary.simpleMessage("Використано місця"), - "validTill": m107, + "validTill": m108, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Перевірка не вдалася, спробуйте ще раз"), @@ -1889,7 +1889,7 @@ class MessageLookup extends MessageLookupByLibrary { "verify": MessageLookupByLibrary.simpleMessage("Підтвердити"), "verifyEmail": MessageLookupByLibrary.simpleMessage("Підтвердити пошту"), - "verifyEmailID": m108, + "verifyEmailID": m109, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("Підтвердження"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("Підтвердити ключ доступу"), @@ -1928,7 +1928,7 @@ class MessageLookup extends MessageLookupByLibrary { "weDontSupportEditingPhotosAndAlbumsThatYouDont": MessageLookupByLibrary.simpleMessage( "Ми не підтримуємо редагування фотографій та альбомів, якими ви ще не володієте"), - "weHaveSendEmailTo": m110, + "weHaveSendEmailTo": m112, "weakStrength": MessageLookupByLibrary.simpleMessage("Слабкий"), "welcomeBack": MessageLookupByLibrary.simpleMessage("З поверненням!"), "whatsNew": MessageLookupByLibrary.simpleMessage("Що нового"), @@ -1936,7 +1936,7 @@ class MessageLookup extends MessageLookupByLibrary { "Довірений контакт може допомогти у відновленні ваших даних."), "yearShort": MessageLookupByLibrary.simpleMessage("рік"), "yearly": MessageLookupByLibrary.simpleMessage("Щороку"), - "yearsAgo": m111, + "yearsAgo": m113, "yes": MessageLookupByLibrary.simpleMessage("Так"), "yesCancel": MessageLookupByLibrary.simpleMessage("Так, скасувати"), "yesConvertToViewer": @@ -1969,7 +1969,7 @@ class MessageLookup extends MessageLookupByLibrary { "Ви не можете поділитися із собою"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage( "У вас немає жодних архівних елементів."), - "youHaveSuccessfullyFreedUp": m113, + "youHaveSuccessfullyFreedUp": m115, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage( "Ваш обліковий запис видалено"), "yourMap": MessageLookupByLibrary.simpleMessage("Ваша мапа"), diff --git a/mobile/lib/generated/intl/messages_vi.dart b/mobile/lib/generated/intl/messages_vi.dart index e2202f46af..253573ad7a 100644 --- a/mobile/lib/generated/intl/messages_vi.dart +++ b/mobile/lib/generated/intl/messages_vi.dart @@ -84,160 +84,160 @@ class MessageLookup extends MessageLookupByLibrary { static String m26(count, formattedSize) => "${count} tệp, ${formattedSize} mỗi tệp"; - static String m27(newEmail) => "Email đã được thay đổi thành ${newEmail}"; + static String m28(newEmail) => "Email đã được thay đổi thành ${newEmail}"; - static String m29(email) => + static String m30(email) => "${email} không có tài khoản Ente.\n\nGửi cho họ một lời mời để chia sẻ ảnh."; - static String m31(text) => "Extra photos found for ${text}"; - - static String m33(count, formattedNumber) => - "${Intl.plural(count, one: '1 tệp', other: '${formattedNumber} tệp')} trên thiết bị này đã được sao lưu an toàn"; + static String m32(text) => "Extra photos found for ${text}"; static String m34(count, formattedNumber) => + "${Intl.plural(count, one: '1 tệp', other: '${formattedNumber} tệp')} trên thiết bị này đã được sao lưu an toàn"; + + static String m35(count, formattedNumber) => "${Intl.plural(count, one: '1 tệp', other: '${formattedNumber} tệp')} trong album này đã được sao lưu an toàn"; - static String m35(storageAmountInGB) => + static String m36(storageAmountInGB) => "${storageAmountInGB} GB mỗi khi ai đó đăng ký gói trả phí và áp dụng mã của bạn"; - static String m36(endDate) => "Dùng thử miễn phí có hiệu lực đến ${endDate}"; + static String m37(endDate) => "Dùng thử miễn phí có hiệu lực đến ${endDate}"; - static String m38(sizeInMBorGB) => "Giải phóng ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "Giải phóng ${sizeInMBorGB}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Đang xử lý ${currentlyProcessing} / ${totalCount}"; - static String m42(count) => + static String m43(count) => "${Intl.plural(count, one: '${count} mục', other: '${count} mục')}"; - static String m44(email) => + static String m45(email) => "${email} đã mời bạn trở thành một liên hệ tin cậy"; - static String m45(expiryTime) => "Liên kết sẽ hết hạn vào ${expiryTime}"; + static String m46(expiryTime) => "Liên kết sẽ hết hạn vào ${expiryTime}"; - static String m50(albumName) => "Đã di chuyển thành công đến ${albumName}"; + static String m51(albumName) => "Đã di chuyển thành công đến ${albumName}"; - static String m51(personName) => "Không có gợi ý cho ${personName}"; + static String m52(personName) => "Không có gợi ý cho ${personName}"; - static String m52(name) => "Không phải ${name}?"; + static String m53(name) => "Không phải ${name}?"; - static String m53(familyAdminEmail) => + static String m54(familyAdminEmail) => "Vui lòng liên hệ ${familyAdminEmail} để thay đổi mã của bạn."; - static String m55(passwordStrengthValue) => + static String m56(passwordStrengthValue) => "Độ mạnh mật khẩu: ${passwordStrengthValue}"; - static String m56(providerName) => + static String m57(providerName) => "Vui lòng nói chuyện với bộ phận hỗ trợ ${providerName} nếu bạn đã bị tính phí"; - static String m61(endDate) => + static String m62(endDate) => "Dùng thử miễn phí có hiệu lực đến ${endDate}.\nBạn có thể chọn gói trả phí sau đó."; - static String m62(toEmail) => + static String m63(toEmail) => "Vui lòng gửi email cho chúng tôi tại ${toEmail}"; - static String m63(toEmail) => "Vui lòng gửi nhật ký đến \n${toEmail}"; + static String m64(toEmail) => "Vui lòng gửi nhật ký đến \n${toEmail}"; - static String m65(folderName) => "Đang xử lý ${folderName}..."; + static String m66(folderName) => "Đang xử lý ${folderName}..."; - static String m66(storeName) => "Đánh giá chúng tôi trên ${storeName}"; + static String m67(storeName) => "Đánh giá chúng tôi trên ${storeName}"; - static String m68(days, email) => + static String m69(days, email) => "Bạn có thể truy cập tài khoản sau ${days} ngày. Một thông báo sẽ được gửi đến ${email}."; - static String m69(email) => + static String m70(email) => "Bạn có thể khôi phục tài khoản của ${email} bằng cách đặt lại mật khẩu mới."; - static String m70(email) => + static String m71(email) => "${email} đang cố gắng khôi phục tài khoản của bạn."; - static String m71(storageInGB) => + static String m72(storageInGB) => "3. Cả hai bạn đều nhận ${storageInGB} GB* miễn phí"; - static String m72(userEmail) => + static String m73(userEmail) => "${userEmail} sẽ bị xóa khỏi album chia sẻ này\n\nBất kỳ ảnh nào được thêm bởi họ cũng sẽ bị xóa khỏi album"; - static String m73(endDate) => "Đăng ký sẽ được gia hạn vào ${endDate}"; + static String m74(endDate) => "Đăng ký sẽ được gia hạn vào ${endDate}"; - static String m75(count) => + static String m76(count) => "${Intl.plural(count, one: '${count} kết quả được tìm thấy', other: '${count} kết quả được tìm thấy')}"; - static String m76(snapshotLength, searchLength) => + static String m77(snapshotLength, searchLength) => "Độ dài các phần không khớp: ${snapshotLength} != ${searchLength}"; - static String m77(count) => "${count} đã chọn"; + static String m78(count) => "${count} đã chọn"; - static String m78(count, yourCount) => + static String m79(count, yourCount) => "${count} đã chọn (${yourCount} của bạn)"; - static String m80(verificationID) => + static String m81(verificationID) => "Đây là ID xác minh của tôi: ${verificationID} cho ente.io."; - static String m81(verificationID) => + static String m82(verificationID) => "Chào, bạn có thể xác nhận rằng đây là ID xác minh ente.io của bạn: ${verificationID}"; - static String m82(referralCode, referralStorageInGB) => + static String m83(referralCode, referralStorageInGB) => "Mã giới thiệu Ente: ${referralCode} \n\nÁp dụng nó trong Cài đặt → Chung → Giới thiệu để nhận ${referralStorageInGB} GB miễn phí sau khi bạn đăng ký gói trả phí\n\nhttps://ente.io"; - static String m83(numberOfPeople) => + static String m84(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Chia sẻ với những người cụ thể', one: 'Chia sẻ với 1 người', other: 'Chia sẻ với ${numberOfPeople} người')}"; - static String m84(emailIDs) => "Chia sẻ với ${emailIDs}"; - - static String m85(fileType) => - "Tệp ${fileType} này sẽ bị xóa khỏi thiết bị của bạn."; + static String m85(emailIDs) => "Chia sẻ với ${emailIDs}"; static String m86(fileType) => + "Tệp ${fileType} này sẽ bị xóa khỏi thiết bị của bạn."; + + static String m87(fileType) => "Tệp ${fileType} này có trong cả Ente và thiết bị của bạn."; - static String m87(fileType) => "Tệp ${fileType} này sẽ bị xóa khỏi Ente."; + static String m88(fileType) => "Tệp ${fileType} này sẽ bị xóa khỏi Ente."; - static String m90(storageAmountInGB) => "${storageAmountInGB} GB"; + static String m91(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m91( + static String m92( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} trong tổng số ${totalAmount} ${totalStorageUnit} đã sử dụng"; - static String m92(id) => + static String m93(id) => "ID ${id} của bạn đã được liên kết với một tài khoản Ente khác.\nNếu bạn muốn sử dụng ID ${id} này với tài khoản này, vui lòng liên hệ với bộ phận hỗ trợ của chúng tôi."; - static String m93(endDate) => "Đăng ký của bạn sẽ bị hủy vào ${endDate}"; + static String m94(endDate) => "Đăng ký của bạn sẽ bị hủy vào ${endDate}"; - static String m94(completed, total) => + static String m95(completed, total) => "${completed}/${total} kỷ niệm đã được lưu giữ"; - static String m95(ignoreReason) => + static String m96(ignoreReason) => "Nhấn để tải lên, tải lên hiện tại bị bỏ qua do ${ignoreReason}"; - static String m96(storageAmountInGB) => + static String m97(storageAmountInGB) => "Họ cũng nhận được ${storageAmountInGB} GB"; - static String m97(email) => "Đây là ID xác minh của ${email}"; + static String m98(email) => "Đây là ID xác minh của ${email}"; - static String m100(count) => + static String m101(count) => "${Intl.plural(count, zero: 'Soon', one: '1 day', other: '${count} days')}"; - static String m103(email) => + static String m104(email) => "Bạn đã được mời làm người liên hệ thừa kế bởi ${email}."; - static String m104(galleryType) => + static String m105(galleryType) => "Loại thư viện ${galleryType} không được hỗ trợ để đổi tên"; - static String m105(ignoreReason) => "Tải lên bị bỏ qua do ${ignoreReason}"; + static String m106(ignoreReason) => "Tải lên bị bỏ qua do ${ignoreReason}"; - static String m106(count) => "Đang lưu giữ ${count} kỷ niệm..."; + static String m107(count) => "Đang lưu giữ ${count} kỷ niệm..."; - static String m107(endDate) => "Có hiệu lực đến ${endDate}"; + static String m108(endDate) => "Có hiệu lực đến ${endDate}"; - static String m108(email) => "Xác minh ${email}"; + static String m109(email) => "Xác minh ${email}"; - static String m110(email) => + static String m112(email) => "Chúng tôi đã gửi một email đến ${email}"; - static String m111(count) => + static String m113(count) => "${Intl.plural(count, one: '${count} năm trước', other: '${count} năm trước')}"; - static String m113(storageSaved) => + static String m115(storageSaved) => "Bạn đã giải phóng thành công ${storageSaved}!"; final messages = _notInlinedMessages(_notInlinedMessages); @@ -758,8 +758,8 @@ class MessageLookup extends MessageLookupByLibrary { "email": MessageLookupByLibrary.simpleMessage("Email"), "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage("Email đã được đăng kí."), - "emailChangedTo": m27, - "emailNoEnteAccount": m29, + "emailChangedTo": m28, + "emailNoEnteAccount": m30, "emailNotRegistered": MessageLookupByLibrary.simpleMessage("Email chưa được đăng kí."), "emailVerificationToggle": @@ -840,7 +840,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Xuất dữ liệu của bạn"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage("Tìm thấy ảnh bổ sung"), - "extraPhotosFoundFor": m31, + "extraPhotosFoundFor": m32, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Khuôn mặt chưa được phân cụm, vui lòng quay lại sau"), "faceRecognition": @@ -889,8 +889,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Loại tệp"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Loại tệp và tên"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m34, + "filesBackedUpInAlbum": m35, "filesDeleted": MessageLookupByLibrary.simpleMessage("Tệp đã bị xóa"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage( "Các tệp đã được lưu vào thư viện"), @@ -906,12 +906,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Đã tìm thấy khuôn mặt"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("Lưu trữ miễn phí đã yêu cầu"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m36, "freeStorageUsable": MessageLookupByLibrary.simpleMessage( "Lưu trữ miễn phí có thể sử dụng"), "freeTrial": MessageLookupByLibrary.simpleMessage("Dùng thử miễn phí"), - "freeTrialValidTill": m36, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage( "Giải phóng không gian thiết bị"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( @@ -924,7 +924,7 @@ class MessageLookup extends MessageLookupByLibrary { "general": MessageLookupByLibrary.simpleMessage("Chung"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage("Đang tạo khóa mã hóa..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Đi đến cài đặt"), "googlePlayId": MessageLookupByLibrary.simpleMessage("ID Google Play"), "grantFullAccessPrompt": MessageLookupByLibrary.simpleMessage( @@ -1005,7 +1005,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Có vẻ như đã xảy ra sự cố. Vui lòng thử lại sau một thời gian. Nếu lỗi vẫn tiếp diễn, vui lòng liên hệ với đội ngũ hỗ trợ của chúng tôi."), - "itemCount": m42, + "itemCount": m43, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Các mục cho biết số ngày còn lại trước khi xóa vĩnh viễn"), @@ -1035,7 +1035,7 @@ class MessageLookup extends MessageLookupByLibrary { "legacy": MessageLookupByLibrary.simpleMessage("Thừa kế"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Tài khoản thừa kế"), - "legacyInvite": m44, + "legacyInvite": m45, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "Thừa kế cho phép các liên hệ tin cậy truy cập tài khoản của bạn khi bạn không hoạt động."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( @@ -1048,7 +1048,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Giới hạn thiết bị"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Đã bật"), "linkExpired": MessageLookupByLibrary.simpleMessage("Hết hạn"), - "linkExpiresOn": m45, + "linkExpiresOn": m46, "linkExpiry": MessageLookupByLibrary.simpleMessage("Hết hạn liên kết"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("Liên kết đã hết hạn"), @@ -1168,7 +1168,7 @@ class MessageLookup extends MessageLookupByLibrary { "moveToAlbum": MessageLookupByLibrary.simpleMessage("Chuyển đến album"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("Di chuyển đến album ẩn"), - "movedSuccessfullyTo": m50, + "movedSuccessfullyTo": m51, "movedToTrash": MessageLookupByLibrary.simpleMessage("Đã chuyển vào thùng rác"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1221,10 +1221,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Không có kết quả"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Không tìm thấy kết quả"), - "noSuggestionsForPerson": m51, + "noSuggestionsForPerson": m52, "noSystemLockFound": MessageLookupByLibrary.simpleMessage( "Không tìm thấy khóa hệ thống"), - "notPersonLabel": m52, + "notPersonLabel": m53, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( "Chưa có gì được chia sẻ với bạn"), "nothingToSeeHere": MessageLookupByLibrary.simpleMessage( @@ -1235,7 +1235,7 @@ class MessageLookup extends MessageLookupByLibrary { "onEnte": MessageLookupByLibrary.simpleMessage( "Trên ente"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), - "onlyFamilyAdminCanChangeCode": m53, + "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Chỉ họ"), "oops": MessageLookupByLibrary.simpleMessage("Ôi"), "oopsCouldNotSaveEdits": @@ -1272,7 +1272,7 @@ class MessageLookup extends MessageLookupByLibrary { "Đã thay đổi mật khẩu thành công"), "passwordLock": MessageLookupByLibrary.simpleMessage("Khóa bằng mật khẩu"), - "passwordStrength": m55, + "passwordStrength": m56, "passwordStrengthInfo": MessageLookupByLibrary.simpleMessage( "Độ mạnh của mật khẩu được tính toán dựa trên độ dài của mật khẩu, các ký tự đã sử dụng và liệu mật khẩu có xuất hiện trong 10.000 mật khẩu được sử dụng nhiều nhất hay không"), "passwordWarning": MessageLookupByLibrary.simpleMessage( @@ -1283,7 +1283,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Thanh toán thất bại"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Rất tiếc, thanh toán của bạn đã thất bại. Vui lòng liên hệ với bộ phận hỗ trợ và chúng tôi sẽ giúp bạn!"), - "paymentFailedTalkToProvider": m56, + "paymentFailedTalkToProvider": m57, "pendingItems": MessageLookupByLibrary.simpleMessage("Các mục đang chờ"), "pendingSync": @@ -1311,7 +1311,7 @@ class MessageLookup extends MessageLookupByLibrary { "pinAlbum": MessageLookupByLibrary.simpleMessage("Ghim album"), "pinLock": MessageLookupByLibrary.simpleMessage("Khóa PIN"), "playOnTv": MessageLookupByLibrary.simpleMessage("Phát album trên TV"), - "playStoreFreeTrialValidTill": m61, + "playStoreFreeTrialValidTill": m62, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("Đăng ký PlayStore"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1323,14 +1323,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Vui lòng liên hệ với bộ phận hỗ trợ nếu vấn đề vẫn tiếp diễn"), - "pleaseEmailUsAt": m62, + "pleaseEmailUsAt": m63, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage("Vui lòng cấp quyền"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Vui lòng đăng nhập lại"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Vui lòng chọn liên kết nhanh để xóa"), - "pleaseSendTheLogsTo": m63, + "pleaseSendTheLogsTo": m64, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Vui lòng thử lại"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1359,7 +1359,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Chia sẻ riêng tư"), "proceed": MessageLookupByLibrary.simpleMessage("Tiếp tục"), "processed": MessageLookupByLibrary.simpleMessage("Đã xử lý"), - "processingImport": m65, + "processingImport": m66, "publicLinkCreated": MessageLookupByLibrary.simpleMessage( "Liên kết công khai đã được tạo"), "publicLinkEnabled": MessageLookupByLibrary.simpleMessage( @@ -1369,7 +1369,7 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("Tạo vé"), "rateTheApp": MessageLookupByLibrary.simpleMessage("Đánh giá ứng dụng"), "rateUs": MessageLookupByLibrary.simpleMessage("Đánh giá chúng tôi"), - "rateUsOnStore": m66, + "rateUsOnStore": m67, "recover": MessageLookupByLibrary.simpleMessage("Khôi phục"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Khôi phục tài khoản"), @@ -1378,7 +1378,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Khôi phục tài khoản"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage( "Quá trình khôi phục đã được khởi động"), - "recoveryInitiatedDesc": m68, + "recoveryInitiatedDesc": m69, "recoveryKey": MessageLookupByLibrary.simpleMessage("Khóa khôi phục"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Khóa khôi phục đã được sao chép vào clipboard"), @@ -1392,12 +1392,12 @@ class MessageLookup extends MessageLookupByLibrary { "Khóa khôi phục đã được xác minh"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Khóa khôi phục của bạn là cách duy nhất để khôi phục ảnh của bạn nếu bạn quên mật khẩu. Bạn có thể tìm thấy khóa khôi phục của mình trong Cài đặt > Tài khoản.\n\nVui lòng nhập khóa khôi phục của bạn ở đây để xác minh rằng bạn đã lưu nó đúng cách."), - "recoveryReady": m69, + "recoveryReady": m70, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("Khôi phục thành công!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "Một liên hệ tin cậy đang cố gắng truy cập tài khoản của bạn"), - "recoveryWarningBody": m70, + "recoveryWarningBody": m71, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "Thiết bị hiện tại không đủ mạnh để xác minh mật khẩu của bạn, nhưng chúng tôi có thể tạo lại theo cách hoạt động với tất cả các thiết bị.\n\nVui lòng đăng nhập bằng khóa khôi phục của bạn và tạo lại mật khẩu (bạn có thể sử dụng lại mật khẩu cũ nếu muốn)."), "recreatePasswordTitle": @@ -1412,7 +1412,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Đưa mã này cho bạn bè của bạn"), "referralStep2": MessageLookupByLibrary.simpleMessage("2. Họ đăng ký gói trả phí"), - "referralStep3": m71, + "referralStep3": m72, "referrals": MessageLookupByLibrary.simpleMessage("Giới thiệu"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Giới thiệu hiện đang tạm dừng"), @@ -1441,7 +1441,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Xóa liên kết"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Xóa người tham gia"), - "removeParticipantBody": m72, + "removeParticipantBody": m73, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Xóa nhãn người"), "removePublicLink": @@ -1460,7 +1460,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("Đổi tên tệp"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Gia hạn đăng ký"), - "renewsOn": m73, + "renewsOn": m74, "reportABug": MessageLookupByLibrary.simpleMessage("Báo cáo lỗi"), "reportBug": MessageLookupByLibrary.simpleMessage("Báo cáo lỗi"), "resendEmail": MessageLookupByLibrary.simpleMessage("Gửi lại email"), @@ -1536,8 +1536,8 @@ class MessageLookup extends MessageLookupByLibrary { "Mời mọi người, và bạn sẽ thấy tất cả ảnh được chia sẻ bởi họ ở đây"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "Người sẽ được hiển thị ở đây sau khi hoàn tất xử lý và đồng bộ"), - "searchResultCount": m75, - "searchSectionsLengthMismatch": m76, + "searchResultCount": m76, + "searchSectionsLengthMismatch": m77, "security": MessageLookupByLibrary.simpleMessage("Bảo mật"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Xem liên kết album công khai trong ứng dụng"), @@ -1570,8 +1570,8 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeDeletedFromAllAlbumsAndMoved": MessageLookupByLibrary.simpleMessage( "Các mục đã chọn sẽ bị xóa khỏi tất cả các album và chuyển vào thùng rác."), - "selectedPhotos": m77, - "selectedPhotosWithYours": m78, + "selectedPhotos": m78, + "selectedPhotosWithYours": m79, "send": MessageLookupByLibrary.simpleMessage("Gửi"), "sendEmail": MessageLookupByLibrary.simpleMessage("Gửi email"), "sendInvite": MessageLookupByLibrary.simpleMessage("Gửi lời mời"), @@ -1602,16 +1602,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage( "Chia sẻ một album ngay bây giờ"), "shareLink": MessageLookupByLibrary.simpleMessage("Chia sẻ liên kết"), - "shareMyVerificationID": m80, + "shareMyVerificationID": m81, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Chia sẻ chỉ với những người bạn muốn"), - "shareTextConfirmOthersVerificationID": m81, + "shareTextConfirmOthersVerificationID": m82, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Tải Ente để chúng ta có thể dễ dàng chia sẻ ảnh và video chất lượng gốc\n\nhttps://ente.io"), - "shareTextReferralCode": m82, + "shareTextReferralCode": m83, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Chia sẻ với người dùng không phải Ente"), - "shareWithPeopleSectionTitle": m83, + "shareWithPeopleSectionTitle": m84, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage( "Chia sẻ album đầu tiên của bạn"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1623,7 +1623,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Ảnh chia sẻ mới"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Nhận thông báo khi ai đó thêm ảnh vào album chia sẻ mà bạn tham gia"), - "sharedWith": m84, + "sharedWith": m85, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Chia sẻ với tôi"), "sharedWithYou": MessageLookupByLibrary.simpleMessage("Được chia sẻ với bạn"), @@ -1639,11 +1639,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Đăng xuất các thiết bị khác"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Tôi đồng ý với các điều khoản dịch vụchính sách bảo mật"), - "singleFileDeleteFromDevice": m85, + "singleFileDeleteFromDevice": m86, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Nó sẽ bị xóa khỏi tất cả các album."), - "singleFileInBothLocalAndRemote": m86, - "singleFileInRemoteOnly": m87, + "singleFileInBothLocalAndRemote": m87, + "singleFileInRemoteOnly": m88, "skip": MessageLookupByLibrary.simpleMessage("Bỏ qua"), "social": MessageLookupByLibrary.simpleMessage("Xã hội"), "someItemsAreInBothEnteAndYourDevice": @@ -1690,13 +1690,13 @@ class MessageLookup extends MessageLookupByLibrary { "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("Gia đình"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("Bạn"), - "storageInGB": m90, + "storageInGB": m91, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Vượt quá giới hạn lưu trữ"), - "storageUsageInfo": m91, + "storageUsageInfo": m92, "strongStrength": MessageLookupByLibrary.simpleMessage("Mạnh"), - "subAlreadyLinkedErrMessage": m92, - "subWillBeCancelledOn": m93, + "subAlreadyLinkedErrMessage": m93, + "subWillBeCancelledOn": m94, "subscribe": MessageLookupByLibrary.simpleMessage("Đăng ký"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Bạn cần một đăng ký trả phí hoạt động để kích hoạt chia sẻ."), @@ -1713,7 +1713,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("Gợi ý tính năng"), "support": MessageLookupByLibrary.simpleMessage("Hỗ trợ"), - "syncProgress": m94, + "syncProgress": m95, "syncStopped": MessageLookupByLibrary.simpleMessage("Đồng bộ hóa đã dừng"), "syncing": MessageLookupByLibrary.simpleMessage("Đang đồng bộ hóa..."), @@ -1723,7 +1723,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Chạm để nhập mã"), "tapToUnlock": MessageLookupByLibrary.simpleMessage("Nhấn để mở khóa"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Nhấn để tải lên"), - "tapToUploadIsIgnoredDue": m95, + "tapToUploadIsIgnoredDue": m96, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Có vẻ như đã xảy ra sự cố. Vui lòng thử lại sau một thời gian. Nếu lỗi vẫn tiếp diễn, vui lòng liên hệ với đội ngũ hỗ trợ."), "terminate": MessageLookupByLibrary.simpleMessage("Kết thúc"), @@ -1747,7 +1747,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Các mục này sẽ bị xóa khỏi thiết bị của bạn."), - "theyAlsoGetXGb": m96, + "theyAlsoGetXGb": m97, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Chúng sẽ bị xóa khỏi tất cả các album."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( @@ -1763,7 +1763,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Email này đã được sử dụng"), "thisImageHasNoExifData": MessageLookupByLibrary.simpleMessage( "Hình ảnh này không có dữ liệu exif"), - "thisIsPersonVerificationId": m97, + "thisIsPersonVerificationId": m98, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage("Đây là ID xác minh của bạn"), "thisWillLogYouOutOfTheFollowingDevice": @@ -1787,11 +1787,11 @@ class MessageLookup extends MessageLookupByLibrary { "total": MessageLookupByLibrary.simpleMessage("tổng"), "totalSize": MessageLookupByLibrary.simpleMessage("Tổng kích thước"), "trash": MessageLookupByLibrary.simpleMessage("Thùng rác"), - "trashDaysLeft": m100, + "trashDaysLeft": m101, "trim": MessageLookupByLibrary.simpleMessage("Cắt"), "trustedContacts": MessageLookupByLibrary.simpleMessage("Liên hệ tin cậy"), - "trustedInviteBody": m103, + "trustedInviteBody": m104, "tryAgain": MessageLookupByLibrary.simpleMessage("Thử lại"), "turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage( "Bật sao lưu để tự động tải lên các tệp được thêm vào thư mục thiết bị này lên Ente."), @@ -1810,7 +1810,7 @@ class MessageLookup extends MessageLookupByLibrary { "Xác thực hai yếu tố đã được đặt lại thành công"), "twofactorSetup": MessageLookupByLibrary.simpleMessage("Cài đặt hai yếu tố"), - "typeOfGallerGallerytypeIsNotSupportedForRename": m104, + "typeOfGallerGallerytypeIsNotSupportedForRename": m105, "unarchive": MessageLookupByLibrary.simpleMessage("Khôi phục"), "unarchiveAlbum": MessageLookupByLibrary.simpleMessage("Khôi phục album"), @@ -1834,10 +1834,10 @@ class MessageLookup extends MessageLookupByLibrary { "updatingFolderSelection": MessageLookupByLibrary.simpleMessage( "Đang cập nhật lựa chọn thư mục..."), "upgrade": MessageLookupByLibrary.simpleMessage("Nâng cấp"), - "uploadIsIgnoredDueToIgnorereason": m105, + "uploadIsIgnoredDueToIgnorereason": m106, "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage("Đang tải tệp lên album..."), - "uploadingMultipleMemories": m106, + "uploadingMultipleMemories": m107, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage("Đang lưu giữ 1 kỷ niệm..."), "upto50OffUntil4thDec": MessageLookupByLibrary.simpleMessage( @@ -1855,14 +1855,14 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Sử dụng ảnh đã chọn"), "usedSpace": MessageLookupByLibrary.simpleMessage("Không gian đã sử dụng"), - "validTill": m107, + "validTill": m108, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Xác minh không thành công, vui lòng thử lại"), "verificationId": MessageLookupByLibrary.simpleMessage("ID xác minh"), "verify": MessageLookupByLibrary.simpleMessage("Xác minh"), "verifyEmail": MessageLookupByLibrary.simpleMessage("Xác minh email"), - "verifyEmailID": m108, + "verifyEmailID": m109, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("Xác minh"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("Xác minh mã khóa"), @@ -1900,7 +1900,7 @@ class MessageLookup extends MessageLookupByLibrary { "weDontSupportEditingPhotosAndAlbumsThatYouDont": MessageLookupByLibrary.simpleMessage( "Chúng tôi không hỗ trợ chỉnh sửa ảnh và album mà bạn chưa sở hữu"), - "weHaveSendEmailTo": m110, + "weHaveSendEmailTo": m112, "weakStrength": MessageLookupByLibrary.simpleMessage("Yếu"), "welcomeBack": MessageLookupByLibrary.simpleMessage("Chào mừng trở lại!"), @@ -1909,7 +1909,7 @@ class MessageLookup extends MessageLookupByLibrary { "Liên hệ tin cậy có thể giúp khôi phục dữ liệu của bạn."), "yearShort": MessageLookupByLibrary.simpleMessage("năm"), "yearly": MessageLookupByLibrary.simpleMessage("Hàng năm"), - "yearsAgo": m111, + "yearsAgo": m113, "yes": MessageLookupByLibrary.simpleMessage("Có"), "yesCancel": MessageLookupByLibrary.simpleMessage("Có, hủy"), "yesConvertToViewer": @@ -1941,7 +1941,7 @@ class MessageLookup extends MessageLookupByLibrary { "Bạn không thể chia sẻ với chính mình"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage( "Bạn không có mục nào đã lưu trữ."), - "youHaveSuccessfullyFreedUp": m113, + "youHaveSuccessfullyFreedUp": m115, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage("Tài khoản của bạn đã bị xóa"), "yourMap": MessageLookupByLibrary.simpleMessage("Bản đồ của bạn"), diff --git a/mobile/lib/generated/intl/messages_zh.dart b/mobile/lib/generated/intl/messages_zh.dart index 1de10289fa..c4888e6518 100644 --- a/mobile/lib/generated/intl/messages_zh.dart +++ b/mobile/lib/generated/intl/messages_zh.dart @@ -93,203 +93,203 @@ class MessageLookup extends MessageLookupByLibrary { static String m26(count, formattedSize) => "${count} 个文件,每个文件 ${formattedSize}"; - static String m27(newEmail) => "电子邮件已更改为 ${newEmail}"; + static String m28(newEmail) => "电子邮件已更改为 ${newEmail}"; - static String m28(email) => "${email} 没有 Ente 账户。"; + static String m29(email) => "${email} 没有 Ente 账户。"; - static String m29(email) => "${email} 没有 Ente 帐户。\n\n向他们发出共享照片的邀请。"; + static String m30(email) => "${email} 没有 Ente 帐户。\n\n向他们发出共享照片的邀请。"; - static String m30(name) => "拥抱 ${name}"; + static String m31(name) => "拥抱 ${name}"; - static String m31(text) => "为 ${text} 找到额外照片"; + static String m32(text) => "为 ${text} 找到额外照片"; - static String m32(name) => "与 ${name} 的盛宴"; - - static String m33(count, formattedNumber) => - "此设备上的 ${Intl.plural(count, one: '1 个文件', other: '${formattedNumber} 个文件')} 已安全备份"; + static String m33(name) => "与 ${name} 的盛宴"; static String m34(count, formattedNumber) => + "此设备上的 ${Intl.plural(count, one: '1 个文件', other: '${formattedNumber} 个文件')} 已安全备份"; + + static String m35(count, formattedNumber) => "此相册中的 ${Intl.plural(count, one: '1 个文件', other: '${formattedNumber} 个文件')} 已安全备份"; - static String m35(storageAmountInGB) => + static String m36(storageAmountInGB) => "每当有人使用您的代码注册付费计划时您将获得${storageAmountInGB} GB"; - static String m36(endDate) => "免费试用有效期至 ${endDate}"; + static String m37(endDate) => "免费试用有效期至 ${endDate}"; - static String m37(count) => + static String m38(count) => "只要您拥有有效订阅,您仍然可以在 Ente 上访问 ${Intl.plural(count, one: '它', other: '它们')}"; - static String m38(sizeInMBorGB) => "释放 ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "释放 ${sizeInMBorGB}"; - static String m39(count, formattedSize) => + static String m40(count, formattedSize) => "${Intl.plural(count, one: '它可以从设备中删除以释放 ${formattedSize}', other: '它们可以从设备中删除以释放 ${formattedSize}')}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "正在处理 ${currentlyProcessing} / ${totalCount}"; - static String m41(name) => "与 ${name} 徒步"; + static String m42(name) => "与 ${name} 徒步"; - static String m42(count) => + static String m43(count) => "${Intl.plural(count, one: '${count} 个项目', other: '${count} 个项目')}"; - static String m43(name) => "最后一次与 ${name} 相聚"; + static String m44(name) => "最后一次与 ${name} 相聚"; - static String m44(email) => "${email} 已邀请您成为可信联系人"; + static String m45(email) => "${email} 已邀请您成为可信联系人"; - static String m45(expiryTime) => "链接将在 ${expiryTime} 过期"; + static String m46(expiryTime) => "链接将在 ${expiryTime} 过期"; - static String m46(email) => "将人员链接到 ${email}"; + static String m47(email) => "将人员链接到 ${email}"; - static String m47(personName, email) => "这将会将 ${personName} 链接到 ${email}"; + static String m48(personName, email) => "这将会将 ${personName} 链接到 ${email}"; - static String m48(count, formattedCount) => + static String m49(count, formattedCount) => "${Intl.plural(count, zero: '暂无回忆', other: '${formattedCount} 个回忆')}"; - static String m49(count) => + static String m50(count) => "${Intl.plural(count, one: '移动项目', other: '移动数个项目')}"; - static String m50(albumName) => "成功移动到 ${albumName}"; + static String m51(albumName) => "成功移动到 ${albumName}"; - static String m51(personName) => "没有针对 ${personName} 的建议"; + static String m52(personName) => "没有针对 ${personName} 的建议"; - static String m52(name) => "不是 ${name}?"; + static String m53(name) => "不是 ${name}?"; - static String m53(familyAdminEmail) => "请联系${familyAdminEmail} 以更改您的代码。"; + static String m54(familyAdminEmail) => "请联系${familyAdminEmail} 以更改您的代码。"; - static String m54(name) => "与 ${name} 开派对"; + static String m55(name) => "与 ${name} 开派对"; - static String m55(passwordStrengthValue) => "密码强度: ${passwordStrengthValue}"; + static String m56(passwordStrengthValue) => "密码强度: ${passwordStrengthValue}"; - static String m56(providerName) => "如果您被收取费用,请用英语与 ${providerName} 的客服聊天"; + static String m57(providerName) => "如果您被收取费用,请用英语与 ${providerName} 的客服聊天"; - static String m57(name, age) => "${name} ${age} 岁啦!"; + static String m58(name, age) => "${name} ${age} 岁啦!"; - static String m58(name, age) => "${name} 快满 ${age} 岁啦"; - - static String m59(count) => - "${Intl.plural(count, zero: '没有照片', one: '1 张照片', other: '${count} 张照片')}"; + static String m59(name, age) => "${name} 快满 ${age} 岁啦"; static String m60(count) => + "${Intl.plural(count, zero: '没有照片', one: '1 张照片', other: '${count} 张照片')}"; + + static String m61(count) => "${Intl.plural(count, zero: '0张照片', one: '1张照片', other: '${count} 张照片')}"; - static String m61(endDate) => "免费试用有效期至 ${endDate}。\n在此之后您可以选择付费计划。"; + static String m62(endDate) => "免费试用有效期至 ${endDate}。\n在此之后您可以选择付费计划。"; - static String m62(toEmail) => "请给我们发送电子邮件至 ${toEmail}"; + static String m63(toEmail) => "请给我们发送电子邮件至 ${toEmail}"; - static String m63(toEmail) => "请将日志发送至 \n${toEmail}"; + static String m64(toEmail) => "请将日志发送至 \n${toEmail}"; - static String m64(name) => "与 ${name} 的合影"; + static String m65(name) => "与 ${name} 的合影"; - static String m65(folderName) => "正在处理 ${folderName}..."; + static String m66(folderName) => "正在处理 ${folderName}..."; - static String m66(storeName) => "在 ${storeName} 上给我们评分"; + static String m67(storeName) => "在 ${storeName} 上给我们评分"; - static String m67(name) => "已将您重新分配给 ${name}"; + static String m68(name) => "已将您重新分配给 ${name}"; - static String m68(days, email) => "您可以在 ${days} 天后访问该账户。通知将发送至 ${email}。"; + static String m69(days, email) => "您可以在 ${days} 天后访问该账户。通知将发送至 ${email}。"; - static String m69(email) => "您现在可以通过设置新密码来恢复 ${email} 的账户。"; + static String m70(email) => "您现在可以通过设置新密码来恢复 ${email} 的账户。"; - static String m70(email) => "${email} 正在尝试恢复您的账户。"; + static String m71(email) => "${email} 正在尝试恢复您的账户。"; - static String m71(storageInGB) => "3. 你和朋友都将免费获得 ${storageInGB} GB*"; + static String m72(storageInGB) => "3. 你和朋友都将免费获得 ${storageInGB} GB*"; - static String m72(userEmail) => + static String m73(userEmail) => "${userEmail} 将从这个共享相册中删除\n\nTA们添加的任何照片也将从相册中删除"; - static String m73(endDate) => "在 ${endDate} 前续费"; + static String m74(endDate) => "在 ${endDate} 前续费"; - static String m74(name) => "与 ${name} 一起的自驾游"; + static String m75(name) => "与 ${name} 一起的自驾游"; - static String m75(count) => + static String m76(count) => "${Intl.plural(count, other: '已找到 ${count} 个结果')}"; - static String m76(snapshotLength, searchLength) => + static String m77(snapshotLength, searchLength) => "部分长度不匹配:${snapshotLength} != ${searchLength}"; - static String m77(count) => "已选择 ${count} 个"; + static String m78(count) => "已选择 ${count} 个"; - static String m78(count, yourCount) => "选择了 ${count} 个 (您的 ${yourCount} 个)"; + static String m79(count, yourCount) => "选择了 ${count} 个 (您的 ${yourCount} 个)"; - static String m79(name) => "与 ${name} 的自拍"; + static String m80(name) => "与 ${name} 的自拍"; - static String m80(verificationID) => "这是我的ente.io 的验证 ID: ${verificationID}。"; + static String m81(verificationID) => "这是我的ente.io 的验证 ID: ${verificationID}。"; - static String m81(verificationID) => + static String m82(verificationID) => "嘿,你能确认这是你的 ente.io 验证 ID吗:${verificationID}"; - static String m82(referralCode, referralStorageInGB) => + static String m83(referralCode, referralStorageInGB) => "Ente 推荐代码:${referralCode}\n\n在 \"设置\"→\"通用\"→\"推荐 \"中应用它,即可在注册付费计划后免费获得 ${referralStorageInGB} GB 存储空间\n\nhttps://ente.io"; - static String m83(numberOfPeople) => + static String m84(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: '与特定人员共享', one: '与 1 人共享', other: '与 ${numberOfPeople} 人共享')}"; - static String m84(emailIDs) => "与 ${emailIDs} 共享"; + static String m85(emailIDs) => "与 ${emailIDs} 共享"; - static String m85(fileType) => "此 ${fileType} 将从您的设备中删除。"; + static String m86(fileType) => "此 ${fileType} 将从您的设备中删除。"; - static String m86(fileType) => "${fileType} 已同时存在于 Ente 和您的设备中。"; + static String m87(fileType) => "${fileType} 已同时存在于 Ente 和您的设备中。"; - static String m87(fileType) => "${fileType} 将从 Ente 中删除。"; + static String m88(fileType) => "${fileType} 将从 Ente 中删除。"; - static String m88(name) => "与 ${name} 一起运动"; + static String m89(name) => "与 ${name} 一起运动"; - static String m89(name) => "聚光灯下的 ${name}"; + static String m90(name) => "聚光灯下的 ${name}"; - static String m90(storageAmountInGB) => "${storageAmountInGB} GB"; + static String m91(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m91( + static String m92( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "已使用 ${usedAmount} ${usedStorageUnit} / ${totalAmount} ${totalStorageUnit}"; - static String m92(id) => + static String m93(id) => "您的 ${id} 已链接到另一个 Ente 账户。\n如果您想在此账户中使用您的 ${id} ,请联系我们的支持人员"; - static String m93(endDate) => "您的订阅将于 ${endDate} 取消"; + static String m94(endDate) => "您的订阅将于 ${endDate} 取消"; - static String m94(completed, total) => "已保存的回忆 ${completed}/共 ${total}"; + static String m95(completed, total) => "已保存的回忆 ${completed}/共 ${total}"; - static String m95(ignoreReason) => "点按上传,由于${ignoreReason},目前上传已被忽略"; + static String m96(ignoreReason) => "点按上传,由于${ignoreReason},目前上传已被忽略"; - static String m96(storageAmountInGB) => "他们也会获得 ${storageAmountInGB} GB"; + static String m97(storageAmountInGB) => "他们也会获得 ${storageAmountInGB} GB"; - static String m97(email) => "这是 ${email} 的验证ID"; + static String m98(email) => "这是 ${email} 的验证ID"; - static String m98(count) => + static String m99(count) => "${Intl.plural(count, one: '${count} 年前的本周', other: '${count} 年前的本周')}"; - static String m99(dateFormat) => "${dateFormat} 年间"; + static String m100(dateFormat) => "${dateFormat} 年间"; - static String m100(count) => + static String m101(count) => "${Intl.plural(count, zero: '马上', one: '1 天', other: '${count} 天')}"; - static String m101(year) => "${year} 年的旅行"; + static String m102(year) => "${year} 年的旅行"; - static String m102(location) => "前往 ${location} 的旅行"; + static String m103(location) => "前往 ${location} 的旅行"; - static String m103(email) => "您已受邀通过 ${email} 成为遗产联系人。"; + static String m104(email) => "您已受邀通过 ${email} 成为遗产联系人。"; - static String m104(galleryType) => "相册类型 ${galleryType} 不支持重命名"; + static String m105(galleryType) => "相册类型 ${galleryType} 不支持重命名"; - static String m105(ignoreReason) => "由于 ${ignoreReason},上传被忽略"; + static String m106(ignoreReason) => "由于 ${ignoreReason},上传被忽略"; - static String m106(count) => "正在保存 ${count} 个回忆..."; + static String m107(count) => "正在保存 ${count} 个回忆..."; - static String m107(endDate) => "有效期至 ${endDate}"; + static String m108(endDate) => "有效期至 ${endDate}"; - static String m108(email) => "验证 ${email}"; - - static String m109(count) => - "${Intl.plural(count, zero: '已添加0个查看者', one: '已添加1个查看者', other: '已添加 ${count} 个查看者')}"; - - static String m110(email) => "我们已经发送邮件到 ${email}"; + static String m109(email) => "验证 ${email}"; static String m111(count) => + "${Intl.plural(count, zero: '已添加0个查看者', one: '已添加1个查看者', other: '已添加 ${count} 个查看者')}"; + + static String m112(email) => "我们已经发送邮件到 ${email}"; + + static String m113(count) => "${Intl.plural(count, one: '${count} 年前', other: '${count} 年前')}"; - static String m112(name) => "您和 ${name}"; + static String m114(name) => "您和 ${name}"; - static String m113(storageSaved) => "您已成功释放了 ${storageSaved}!"; + static String m115(storageSaved) => "您已成功释放了 ${storageSaved}!"; final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { @@ -739,15 +739,15 @@ class MessageLookup extends MessageLookupByLibrary { "email": MessageLookupByLibrary.simpleMessage("电子邮件地址"), "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage("此电子邮件地址已被注册。"), - "emailChangedTo": m27, - "emailDoesNotHaveEnteAccount": m28, - "emailNoEnteAccount": m29, + "emailChangedTo": m28, + "emailDoesNotHaveEnteAccount": m29, + "emailNoEnteAccount": m30, "emailNotRegistered": MessageLookupByLibrary.simpleMessage("此电子邮件地址未被注册。"), "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("电子邮件验证"), "emailYourLogs": MessageLookupByLibrary.simpleMessage("通过电子邮件发送您的日志"), - "embracingThem": m30, + "embracingThem": m31, "emergencyContacts": MessageLookupByLibrary.simpleMessage("紧急联系人"), "empty": MessageLookupByLibrary.simpleMessage("清空"), "emptyTrash": MessageLookupByLibrary.simpleMessage("要清空回收站吗?"), @@ -809,7 +809,7 @@ class MessageLookup extends MessageLookupByLibrary { "exportLogs": MessageLookupByLibrary.simpleMessage("导出日志"), "exportYourData": MessageLookupByLibrary.simpleMessage("导出您的数据"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage("发现额外照片"), - "extraPhotosFoundFor": m31, + "extraPhotosFoundFor": m32, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage("人脸尚未聚类,请稍后再来"), "faceRecognition": MessageLookupByLibrary.simpleMessage("人脸识别"), @@ -838,7 +838,7 @@ class MessageLookup extends MessageLookupByLibrary { "faq": MessageLookupByLibrary.simpleMessage("常见问题"), "faqs": MessageLookupByLibrary.simpleMessage("常见问题"), "favorite": MessageLookupByLibrary.simpleMessage("收藏"), - "feastingWithThem": m32, + "feastingWithThem": m33, "feedback": MessageLookupByLibrary.simpleMessage("反馈"), "file": MessageLookupByLibrary.simpleMessage("文件"), "fileFailedToSaveToGallery": @@ -848,8 +848,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileSavedToGallery": MessageLookupByLibrary.simpleMessage("文件已保存到相册"), "fileTypes": MessageLookupByLibrary.simpleMessage("文件类型"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("文件类型和名称"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m34, + "filesBackedUpInAlbum": m35, "filesDeleted": MessageLookupByLibrary.simpleMessage("文件已删除"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage("多个文件已保存到相册"), @@ -861,24 +861,24 @@ class MessageLookup extends MessageLookupByLibrary { "forgotPassword": MessageLookupByLibrary.simpleMessage("忘记密码"), "foundFaces": MessageLookupByLibrary.simpleMessage("已找到的人脸"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("已领取的免费存储"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m36, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("可用的免费存储"), "freeTrial": MessageLookupByLibrary.simpleMessage("免费试用"), - "freeTrialValidTill": m36, - "freeUpAccessPostDelete": m37, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAccessPostDelete": m38, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage("释放设备空间"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage("通过清除已备份的文件来节省设备空间。"), "freeUpSpace": MessageLookupByLibrary.simpleMessage("释放空间"), - "freeUpSpaceSaving": m39, + "freeUpSpaceSaving": m40, "gallery": MessageLookupByLibrary.simpleMessage("图库"), "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage("在图库中显示最多1000个回忆"), "general": MessageLookupByLibrary.simpleMessage("通用"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage("正在生成加密密钥..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("前往设置"), "googlePlayId": MessageLookupByLibrary.simpleMessage("Google Play ID"), "grantFullAccessPrompt": @@ -904,7 +904,7 @@ class MessageLookup extends MessageLookupByLibrary { "hideSharedItemsFromHomeGallery": MessageLookupByLibrary.simpleMessage("隐藏主页图库中的共享项目"), "hiding": MessageLookupByLibrary.simpleMessage("正在隐藏..."), - "hikingWithThem": m41, + "hikingWithThem": m42, "hostedAtOsmFrance": MessageLookupByLibrary.simpleMessage("法国 OSM 主办"), "howItWorks": MessageLookupByLibrary.simpleMessage("工作原理"), "howToViewShareeVerificationID": MessageLookupByLibrary.simpleMessage( @@ -952,7 +952,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "看起来出了点问题。 请稍后重试。 如果错误仍然存在,请联系我们的支持团队。"), - "itemCount": m42, + "itemCount": m43, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage("项目显示永久删除前剩余的天数"), "itemsWillBeRemovedFromAlbum": @@ -970,7 +970,7 @@ class MessageLookup extends MessageLookupByLibrary { "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage("请帮助我们了解这个信息"), "language": MessageLookupByLibrary.simpleMessage("语言"), - "lastTimeWithThem": m43, + "lastTimeWithThem": m44, "lastUpdated": MessageLookupByLibrary.simpleMessage("最后更新"), "lastYearsTrip": MessageLookupByLibrary.simpleMessage("去年的旅行"), "leave": MessageLookupByLibrary.simpleMessage("离开"), @@ -980,7 +980,7 @@ class MessageLookup extends MessageLookupByLibrary { "left": MessageLookupByLibrary.simpleMessage("向左"), "legacy": MessageLookupByLibrary.simpleMessage("遗产"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("遗产账户"), - "legacyInvite": m44, + "legacyInvite": m45, "legacyPageDesc": MessageLookupByLibrary.simpleMessage("遗产允许信任的联系人在您不在时访问您的账户。"), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( @@ -996,14 +996,14 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("来实现更快的共享"), "linkEnabled": MessageLookupByLibrary.simpleMessage("已启用"), "linkExpired": MessageLookupByLibrary.simpleMessage("已过期"), - "linkExpiresOn": m45, + "linkExpiresOn": m46, "linkExpiry": MessageLookupByLibrary.simpleMessage("链接过期"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("链接已过期"), "linkNeverExpires": MessageLookupByLibrary.simpleMessage("永不"), "linkPerson": MessageLookupByLibrary.simpleMessage("链接人员"), "linkPersonCaption": MessageLookupByLibrary.simpleMessage("来感受更好的共享体验"), - "linkPersonToEmail": m46, - "linkPersonToEmailConfirmation": m47, + "linkPersonToEmail": m47, + "linkPersonToEmailConfirmation": m48, "livePhotos": MessageLookupByLibrary.simpleMessage("实况照片"), "loadMessage1": MessageLookupByLibrary.simpleMessage("您可以与家庭分享您的订阅"), "loadMessage3": @@ -1074,7 +1074,7 @@ class MessageLookup extends MessageLookupByLibrary { "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), "me": MessageLookupByLibrary.simpleMessage("我"), - "memoryCount": m48, + "memoryCount": m49, "merchandise": MessageLookupByLibrary.simpleMessage("商品"), "mergeWithExisting": MessageLookupByLibrary.simpleMessage("与现有的合并"), "mergedPhotos": MessageLookupByLibrary.simpleMessage("已合并照片"), @@ -1101,12 +1101,12 @@ class MessageLookup extends MessageLookupByLibrary { "mostRecent": MessageLookupByLibrary.simpleMessage("最近"), "mostRelevant": MessageLookupByLibrary.simpleMessage("最相关"), "mountains": MessageLookupByLibrary.simpleMessage("翻过山丘"), - "moveItem": m49, + "moveItem": m50, "moveSelectedPhotosToOneDate": MessageLookupByLibrary.simpleMessage("将选定的照片调整到某一日期"), "moveToAlbum": MessageLookupByLibrary.simpleMessage("移动到相册"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("移至隐藏相册"), - "movedSuccessfullyTo": m50, + "movedSuccessfullyTo": m51, "movedToTrash": MessageLookupByLibrary.simpleMessage("已移至回收站"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage("正在将文件移动到相册..."), @@ -1150,9 +1150,9 @@ class MessageLookup extends MessageLookupByLibrary { "由于我们端到端加密协议的性质,如果没有您的密码或恢复密钥,您的数据将无法解密"), "noResults": MessageLookupByLibrary.simpleMessage("无结果"), "noResultsFound": MessageLookupByLibrary.simpleMessage("未找到任何结果"), - "noSuggestionsForPerson": m51, + "noSuggestionsForPerson": m52, "noSystemLockFound": MessageLookupByLibrary.simpleMessage("未找到系统锁"), - "notPersonLabel": m52, + "notPersonLabel": m53, "notThisPerson": MessageLookupByLibrary.simpleMessage("不是此人?"), "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage("尚未与您共享任何内容"), @@ -1164,7 +1164,7 @@ class MessageLookup extends MessageLookupByLibrary { "在 ente 上"), "onTheRoad": MessageLookupByLibrary.simpleMessage("再次踏上旅途"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), - "onlyFamilyAdminCanChangeCode": m53, + "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("仅限他们"), "oops": MessageLookupByLibrary.simpleMessage("哎呀"), "oopsCouldNotSaveEdits": @@ -1191,7 +1191,7 @@ class MessageLookup extends MessageLookupByLibrary { "pairWithPin": MessageLookupByLibrary.simpleMessage("用 PIN 配对"), "pairingComplete": MessageLookupByLibrary.simpleMessage("配对完成"), "panorama": MessageLookupByLibrary.simpleMessage("全景"), - "partyWithThem": m54, + "partyWithThem": m55, "passKeyPendingVerification": MessageLookupByLibrary.simpleMessage("仍需进行验证"), "passkey": MessageLookupByLibrary.simpleMessage("通行密钥"), @@ -1200,7 +1200,7 @@ class MessageLookup extends MessageLookupByLibrary { "passwordChangedSuccessfully": MessageLookupByLibrary.simpleMessage("密码修改成功"), "passwordLock": MessageLookupByLibrary.simpleMessage("密码锁"), - "passwordStrength": m55, + "passwordStrength": m56, "passwordStrengthInfo": MessageLookupByLibrary.simpleMessage( "密码强度的计算考虑了密码的长度、使用的字符以及密码是否出现在最常用的 10,000 个密码中"), "passwordWarning": MessageLookupByLibrary.simpleMessage( @@ -1209,7 +1209,7 @@ class MessageLookup extends MessageLookupByLibrary { "paymentFailed": MessageLookupByLibrary.simpleMessage("支付失败"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "不幸的是,您的付款失败。请联系支持人员,我们将为您提供帮助!"), - "paymentFailedTalkToProvider": m56, + "paymentFailedTalkToProvider": m57, "pendingItems": MessageLookupByLibrary.simpleMessage("待处理项目"), "pendingSync": MessageLookupByLibrary.simpleMessage("正在等待同步"), "people": MessageLookupByLibrary.simpleMessage("人物"), @@ -1219,18 +1219,18 @@ class MessageLookup extends MessageLookupByLibrary { "permanentlyDelete": MessageLookupByLibrary.simpleMessage("永久删除"), "permanentlyDeleteFromDevice": MessageLookupByLibrary.simpleMessage("要从设备中永久删除吗?"), - "personIsAge": m57, + "personIsAge": m58, "personName": MessageLookupByLibrary.simpleMessage("人物名称"), - "personTurningAge": m58, + "personTurningAge": m59, "pets": MessageLookupByLibrary.simpleMessage("毛茸茸的伙伴"), "photoDescriptions": MessageLookupByLibrary.simpleMessage("照片说明"), "photoGridSize": MessageLookupByLibrary.simpleMessage("照片网格大小"), "photoSmallCase": MessageLookupByLibrary.simpleMessage("照片"), - "photocountPhotos": m59, + "photocountPhotos": m60, "photos": MessageLookupByLibrary.simpleMessage("照片"), "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage("您添加的照片将从相册中移除"), - "photosCount": m60, + "photosCount": m61, "photosKeepRelativeTimeDifference": MessageLookupByLibrary.simpleMessage("照片保持相对时间差"), "pickCenterPoint": MessageLookupByLibrary.simpleMessage("选择中心点"), @@ -1238,7 +1238,7 @@ class MessageLookup extends MessageLookupByLibrary { "pinLock": MessageLookupByLibrary.simpleMessage("PIN 锁定"), "playOnTv": MessageLookupByLibrary.simpleMessage("在电视上播放相册"), "playOriginal": MessageLookupByLibrary.simpleMessage("播放原内容"), - "playStoreFreeTrialValidTill": m61, + "playStoreFreeTrialValidTill": m62, "playStream": MessageLookupByLibrary.simpleMessage("播放流"), "playstoreSubscription": MessageLookupByLibrary.simpleMessage("PlayStore 订阅"), @@ -1249,12 +1249,12 @@ class MessageLookup extends MessageLookupByLibrary { "请用英语联系 support@ente.io ,我们将乐意提供帮助!"), "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage("如果问题仍然存在,请联系支持"), - "pleaseEmailUsAt": m62, + "pleaseEmailUsAt": m63, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage("请授予权限"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("请重新登录"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage("请选择要删除的快速链接"), - "pleaseSendTheLogsTo": m63, + "pleaseSendTheLogsTo": m64, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("请重试"), "pleaseVerifyTheCodeYouHaveEntered": MessageLookupByLibrary.simpleMessage("请验证您输入的代码"), @@ -1265,7 +1265,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("请稍等片刻后再重试"), "pleaseWaitThisWillTakeAWhile": MessageLookupByLibrary.simpleMessage("请稍候,这将需要一段时间。"), - "posingWithThem": m64, + "posingWithThem": m65, "preparingLogs": MessageLookupByLibrary.simpleMessage("正在准备日志..."), "preserveMore": MessageLookupByLibrary.simpleMessage("保留更多"), "pressAndHoldToPlayVideo": @@ -1280,7 +1280,7 @@ class MessageLookup extends MessageLookupByLibrary { "proceed": MessageLookupByLibrary.simpleMessage("继续"), "processed": MessageLookupByLibrary.simpleMessage("已处理"), "processing": MessageLookupByLibrary.simpleMessage("正在处理"), - "processingImport": m65, + "processingImport": m66, "processingVideos": MessageLookupByLibrary.simpleMessage("正在处理视频"), "publicLinkCreated": MessageLookupByLibrary.simpleMessage("公共链接已创建"), "publicLinkEnabled": MessageLookupByLibrary.simpleMessage("公开链接已启用"), @@ -1290,16 +1290,16 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("提升工单"), "rateTheApp": MessageLookupByLibrary.simpleMessage("为此应用评分"), "rateUs": MessageLookupByLibrary.simpleMessage("给我们评分"), - "rateUsOnStore": m66, + "rateUsOnStore": m67, "reassignMe": MessageLookupByLibrary.simpleMessage("重新分配“我”"), - "reassignedToName": m67, + "reassignedToName": m68, "reassigningLoading": MessageLookupByLibrary.simpleMessage("正在重新分配..."), "recover": MessageLookupByLibrary.simpleMessage("恢复"), "recoverAccount": MessageLookupByLibrary.simpleMessage("恢复账户"), "recoverButton": MessageLookupByLibrary.simpleMessage("恢复"), "recoveryAccount": MessageLookupByLibrary.simpleMessage("恢复账户"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("已启动恢复"), - "recoveryInitiatedDesc": m68, + "recoveryInitiatedDesc": m69, "recoveryKey": MessageLookupByLibrary.simpleMessage("恢复密钥"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage("恢复密钥已复制到剪贴板"), @@ -1312,11 +1312,11 @@ class MessageLookup extends MessageLookupByLibrary { "recoveryKeyVerified": MessageLookupByLibrary.simpleMessage("恢复密钥已验证"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "如果您忘记了密码,恢复密钥是恢复照片的唯一方法。您可以在“设置”>“账户”中找到恢复密钥。\n\n请在此处输入恢复密钥,以验证您是否已正确保存。"), - "recoveryReady": m69, + "recoveryReady": m70, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("恢复成功!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage("一位可信联系人正在尝试访问您的账户"), - "recoveryWarningBody": m70, + "recoveryWarningBody": m71, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "当前设备的功能不足以验证您的密码,但我们可以以适用于所有设备的方式重新生成。\n\n请使用您的恢复密钥登录并重新生成您的密码(如果您希望,可以再次使用相同的密码)。"), "recreatePasswordTitle": MessageLookupByLibrary.simpleMessage("重新创建密码"), @@ -1327,7 +1327,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("把我们推荐给你的朋友然后获得延长一倍的订阅计划"), "referralStep1": MessageLookupByLibrary.simpleMessage("1. 将此代码提供给您的朋友"), "referralStep2": MessageLookupByLibrary.simpleMessage("2. 他们注册一个付费计划"), - "referralStep3": m71, + "referralStep3": m72, "referrals": MessageLookupByLibrary.simpleMessage("推荐"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage("推荐已暂停"), @@ -1350,7 +1350,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeInvite": MessageLookupByLibrary.simpleMessage("移除邀请"), "removeLink": MessageLookupByLibrary.simpleMessage("移除链接"), "removeParticipant": MessageLookupByLibrary.simpleMessage("移除参与者"), - "removeParticipantBody": m72, + "removeParticipantBody": m73, "removePersonLabel": MessageLookupByLibrary.simpleMessage("移除人物标签"), "removePublicLink": MessageLookupByLibrary.simpleMessage("删除公开链接"), "removePublicLinks": MessageLookupByLibrary.simpleMessage("删除公开链接"), @@ -1365,7 +1365,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameAlbum": MessageLookupByLibrary.simpleMessage("重命名相册"), "renameFile": MessageLookupByLibrary.simpleMessage("重命名文件"), "renewSubscription": MessageLookupByLibrary.simpleMessage("续费订阅"), - "renewsOn": m73, + "renewsOn": m74, "reportABug": MessageLookupByLibrary.simpleMessage("报告错误"), "reportBug": MessageLookupByLibrary.simpleMessage("报告错误"), "resendEmail": MessageLookupByLibrary.simpleMessage("重新发送电子邮件"), @@ -1383,7 +1383,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("请检查并删除您认为重复的项目。"), "reviewSuggestions": MessageLookupByLibrary.simpleMessage("查看建议"), "right": MessageLookupByLibrary.simpleMessage("向右"), - "roadtripWithThem": m74, + "roadtripWithThem": m75, "rotate": MessageLookupByLibrary.simpleMessage("旋转"), "rotateLeft": MessageLookupByLibrary.simpleMessage("向左旋转"), "rotateRight": MessageLookupByLibrary.simpleMessage("向右旋转"), @@ -1428,8 +1428,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("邀请他人,您将在此看到他们分享的所有照片"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage("处理和同步完成后,人物将显示在此处"), - "searchResultCount": m75, - "searchSectionsLengthMismatch": m76, + "searchResultCount": m76, + "searchSectionsLengthMismatch": m77, "security": MessageLookupByLibrary.simpleMessage("安全"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage("在应用程序中查看公开相册链接"), @@ -1465,9 +1465,9 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("所选项目将从所有相册中删除并移动到回收站。"), "selectedItemsWillBeRemovedFromThisPerson": MessageLookupByLibrary.simpleMessage("选定的项目将从此人身上移除,但不会从您的库中删除。"), - "selectedPhotos": m77, - "selectedPhotosWithYours": m78, - "selfiesWithThem": m79, + "selectedPhotos": m78, + "selectedPhotosWithYours": m79, + "selfiesWithThem": m80, "send": MessageLookupByLibrary.simpleMessage("发送"), "sendEmail": MessageLookupByLibrary.simpleMessage("发送电子邮件"), "sendInvite": MessageLookupByLibrary.simpleMessage("发送邀请"), @@ -1490,16 +1490,16 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("打开相册并点击右上角的分享按钮进行分享"), "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("立即分享相册"), "shareLink": MessageLookupByLibrary.simpleMessage("分享链接"), - "shareMyVerificationID": m80, + "shareMyVerificationID": m81, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage("仅与您想要的人分享"), - "shareTextConfirmOthersVerificationID": m81, + "shareTextConfirmOthersVerificationID": m82, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage("下载 Ente,让我们轻松共享高质量的原始照片和视频"), - "shareTextReferralCode": m82, + "shareTextReferralCode": m83, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage("与非 Ente 用户共享"), - "shareWithPeopleSectionTitle": m83, + "shareWithPeopleSectionTitle": m84, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("分享您的第一个相册"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1510,7 +1510,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("新共享的照片"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage("当有人将照片添加到您所属的共享相册时收到通知"), - "sharedWith": m84, + "sharedWith": m85, "sharedWithMe": MessageLookupByLibrary.simpleMessage("与我共享"), "sharedWithYou": MessageLookupByLibrary.simpleMessage("已与您共享"), "sharing": MessageLookupByLibrary.simpleMessage("正在分享..."), @@ -1524,11 +1524,11 @@ class MessageLookup extends MessageLookupByLibrary { "signOutOtherDevices": MessageLookupByLibrary.simpleMessage("登出其他设备"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "我同意 服务条款隐私政策"), - "singleFileDeleteFromDevice": m85, + "singleFileDeleteFromDevice": m86, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage("它将从所有相册中删除。"), - "singleFileInBothLocalAndRemote": m86, - "singleFileInRemoteOnly": m87, + "singleFileInBothLocalAndRemote": m87, + "singleFileInRemoteOnly": m88, "skip": MessageLookupByLibrary.simpleMessage("跳过"), "social": MessageLookupByLibrary.simpleMessage("社交"), "someItemsAreInBothEnteAndYourDevice": @@ -1555,8 +1555,8 @@ class MessageLookup extends MessageLookupByLibrary { "sortNewestFirst": MessageLookupByLibrary.simpleMessage("最新在前"), "sortOldestFirst": MessageLookupByLibrary.simpleMessage("最旧在前"), "sparkleSuccess": MessageLookupByLibrary.simpleMessage("✨ 成功"), - "sportsWithThem": m88, - "spotlightOnThem": m89, + "sportsWithThem": m89, + "spotlightOnThem": m90, "spotlightOnYourself": MessageLookupByLibrary.simpleMessage("聚光灯下的自己"), "startAccountRecoveryTitle": MessageLookupByLibrary.simpleMessage("开始恢复"), @@ -1567,13 +1567,13 @@ class MessageLookup extends MessageLookupByLibrary { "storage": MessageLookupByLibrary.simpleMessage("存储空间"), "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("家庭"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("您"), - "storageInGB": m90, + "storageInGB": m91, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("已超出存储限制"), - "storageUsageInfo": m91, + "storageUsageInfo": m92, "streamDetails": MessageLookupByLibrary.simpleMessage("流详情"), "strongStrength": MessageLookupByLibrary.simpleMessage("强"), - "subAlreadyLinkedErrMessage": m92, - "subWillBeCancelledOn": m93, + "subAlreadyLinkedErrMessage": m93, + "subWillBeCancelledOn": m94, "subscribe": MessageLookupByLibrary.simpleMessage("订阅"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage("您需要有效的付费订阅才能启用共享。"), @@ -1587,7 +1587,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("建议新功能"), "sunrise": MessageLookupByLibrary.simpleMessage("在地平线上"), "support": MessageLookupByLibrary.simpleMessage("支持"), - "syncProgress": m94, + "syncProgress": m95, "syncStopped": MessageLookupByLibrary.simpleMessage("同步已停止"), "syncing": MessageLookupByLibrary.simpleMessage("正在同步···"), "systemTheme": MessageLookupByLibrary.simpleMessage("适应系统"), @@ -1595,7 +1595,7 @@ class MessageLookup extends MessageLookupByLibrary { "tapToEnterCode": MessageLookupByLibrary.simpleMessage("点击以输入代码"), "tapToUnlock": MessageLookupByLibrary.simpleMessage("点击解锁"), "tapToUpload": MessageLookupByLibrary.simpleMessage("点按上传"), - "tapToUploadIsIgnoredDue": m95, + "tapToUploadIsIgnoredDue": m96, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "看起来出了点问题。 请稍后重试。 如果错误仍然存在,请联系我们的支持团队。"), @@ -1615,7 +1615,7 @@ class MessageLookup extends MessageLookupByLibrary { "theme": MessageLookupByLibrary.simpleMessage("主题"), "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage("这些项目将从您的设备中删除。"), - "theyAlsoGetXGb": m96, + "theyAlsoGetXGb": m97, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage("他们将从所有相册中删除。"), "thisActionCannotBeUndone": @@ -1630,11 +1630,11 @@ class MessageLookup extends MessageLookupByLibrary { "thisImageHasNoExifData": MessageLookupByLibrary.simpleMessage("此图像没有Exif 数据"), "thisIsMeExclamation": MessageLookupByLibrary.simpleMessage("这就是我!"), - "thisIsPersonVerificationId": m97, + "thisIsPersonVerificationId": m98, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage("这是您的验证 ID"), "thisWeekThroughTheYears": MessageLookupByLibrary.simpleMessage("历年本周"), - "thisWeekXYearsAgo": m98, + "thisWeekXYearsAgo": m99, "thisWillLogYouOutOfTheFollowingDevice": MessageLookupByLibrary.simpleMessage("这将使您在以下设备中退出登录:"), "thisWillLogYouOutOfThisDevice": @@ -1643,7 +1643,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("这将使所有选定的照片的日期和时间相同。"), "thisWillRemovePublicLinksOfAllSelectedQuickLinks": MessageLookupByLibrary.simpleMessage("这将删除所有选定的快速链接的公共链接。"), - "throughTheYears": m99, + "throughTheYears": m100, "toEnableAppLockPleaseSetupDevicePasscodeOrScreen": MessageLookupByLibrary.simpleMessage("要启用应用锁,请在系统设置中设置设备密码或屏幕锁。"), "toHideAPhotoOrVideo": MessageLookupByLibrary.simpleMessage("隐藏照片或视频"), @@ -1655,12 +1655,12 @@ class MessageLookup extends MessageLookupByLibrary { "total": MessageLookupByLibrary.simpleMessage("总计"), "totalSize": MessageLookupByLibrary.simpleMessage("总大小"), "trash": MessageLookupByLibrary.simpleMessage("回收站"), - "trashDaysLeft": m100, + "trashDaysLeft": m101, "trim": MessageLookupByLibrary.simpleMessage("修剪"), - "tripInYear": m101, - "tripToLocation": m102, + "tripInYear": m102, + "tripToLocation": m103, "trustedContacts": MessageLookupByLibrary.simpleMessage("可信联系人"), - "trustedInviteBody": m103, + "trustedInviteBody": m104, "tryAgain": MessageLookupByLibrary.simpleMessage("请再试一次"), "turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage( "打开备份可自动上传添加到此设备文件夹的文件至 Ente。"), @@ -1675,7 +1675,7 @@ class MessageLookup extends MessageLookupByLibrary { "twofactorAuthenticationSuccessfullyReset": MessageLookupByLibrary.simpleMessage("成功重置双重认证"), "twofactorSetup": MessageLookupByLibrary.simpleMessage("双重认证设置"), - "typeOfGallerGallerytypeIsNotSupportedForRename": m104, + "typeOfGallerGallerytypeIsNotSupportedForRename": m105, "unarchive": MessageLookupByLibrary.simpleMessage("取消存档"), "unarchiveAlbum": MessageLookupByLibrary.simpleMessage("取消存档相册"), "unarchiving": MessageLookupByLibrary.simpleMessage("正在取消存档..."), @@ -1695,10 +1695,10 @@ class MessageLookup extends MessageLookupByLibrary { "updatingFolderSelection": MessageLookupByLibrary.simpleMessage("正在更新文件夹选择..."), "upgrade": MessageLookupByLibrary.simpleMessage("升级"), - "uploadIsIgnoredDueToIgnorereason": m105, + "uploadIsIgnoredDueToIgnorereason": m106, "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage("正在将文件上传到相册..."), - "uploadingMultipleMemories": m106, + "uploadingMultipleMemories": m107, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage("正在保存 1 个回忆..."), "upto50OffUntil4thDec": @@ -1713,13 +1713,13 @@ class MessageLookup extends MessageLookupByLibrary { "useRecoveryKey": MessageLookupByLibrary.simpleMessage("使用恢复密钥"), "useSelectedPhoto": MessageLookupByLibrary.simpleMessage("使用所选照片"), "usedSpace": MessageLookupByLibrary.simpleMessage("已用空间"), - "validTill": m107, + "validTill": m108, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage("验证失败,请重试"), "verificationId": MessageLookupByLibrary.simpleMessage("验证 ID"), "verify": MessageLookupByLibrary.simpleMessage("验证"), "verifyEmail": MessageLookupByLibrary.simpleMessage("验证电子邮件"), - "verifyEmailID": m108, + "verifyEmailID": m109, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("验证"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("验证通行密钥"), "verifyPassword": MessageLookupByLibrary.simpleMessage("验证密码"), @@ -1739,7 +1739,7 @@ class MessageLookup extends MessageLookupByLibrary { "viewLogs": MessageLookupByLibrary.simpleMessage("查看日志"), "viewRecoveryKey": MessageLookupByLibrary.simpleMessage("查看恢复密钥"), "viewer": MessageLookupByLibrary.simpleMessage("查看者"), - "viewersSuccessfullyAdded": m109, + "viewersSuccessfullyAdded": m111, "visitWebToManage": MessageLookupByLibrary.simpleMessage("请访问 web.ente.io 来管理您的订阅"), "waitingForVerification": @@ -1749,7 +1749,7 @@ class MessageLookup extends MessageLookupByLibrary { "weAreOpenSource": MessageLookupByLibrary.simpleMessage("我们是开源的 !"), "weDontSupportEditingPhotosAndAlbumsThatYouDont": MessageLookupByLibrary.simpleMessage("我们不支持编辑您尚未拥有的照片和相册"), - "weHaveSendEmailTo": m110, + "weHaveSendEmailTo": m112, "weakStrength": MessageLookupByLibrary.simpleMessage("弱"), "welcomeBack": MessageLookupByLibrary.simpleMessage("欢迎回来!"), "whatsNew": MessageLookupByLibrary.simpleMessage("更新日志"), @@ -1757,7 +1757,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("可信联系人可以帮助恢复您的数据。"), "yearShort": MessageLookupByLibrary.simpleMessage("年"), "yearly": MessageLookupByLibrary.simpleMessage("每年"), - "yearsAgo": m111, + "yearsAgo": m113, "yes": MessageLookupByLibrary.simpleMessage("是"), "yesCancel": MessageLookupByLibrary.simpleMessage("是的,取消"), "yesConvertToViewer": MessageLookupByLibrary.simpleMessage("是的,转换为查看者"), @@ -1768,7 +1768,7 @@ class MessageLookup extends MessageLookupByLibrary { "yesRenew": MessageLookupByLibrary.simpleMessage("是的,续费"), "yesResetPerson": MessageLookupByLibrary.simpleMessage("是,重设人物"), "you": MessageLookupByLibrary.simpleMessage("您"), - "youAndThem": m112, + "youAndThem": m114, "youAreOnAFamilyPlan": MessageLookupByLibrary.simpleMessage("你在一个家庭计划中!"), "youAreOnTheLatestVersion": @@ -1785,7 +1785,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("莫开玩笑,您不能与自己分享"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage("您没有任何存档的项目。"), - "youHaveSuccessfullyFreedUp": m113, + "youHaveSuccessfullyFreedUp": m115, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage("您的账户已删除"), "yourMap": MessageLookupByLibrary.simpleMessage("您的地图"), From 04cd1d3bb3cf1d1003d75c86474bd7e815609463 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 21 May 2025 01:28:14 +0530 Subject: [PATCH 025/316] fix: update code to look clean --- mobile/analysis_options.yaml | 2 +- mobile/lib/main.dart | 2 +- .../services/album_home_widget_service.dart | 657 +++++++++--------- mobile/lib/services/home_widget_service.dart | 260 ++++--- .../services/memory_home_widget_service.dart | 401 ++++++----- .../services/people_home_widget_service.dart | 381 +++++----- .../debug/ml_debug_section_widget.dart | 6 +- .../ui/settings/gallery_settings_screen.dart | 2 +- .../widgets/albums_widget_settings.dart | 3 +- 9 files changed, 914 insertions(+), 800 deletions(-) diff --git a/mobile/analysis_options.yaml b/mobile/analysis_options.yaml index a5fe360712..2d1fb835f0 100644 --- a/mobile/analysis_options.yaml +++ b/mobile/analysis_options.yaml @@ -53,7 +53,7 @@ analyzer: sort_child_properties_last: warning sort_pub_dependencies: warning library_private_types_in_public_api: warning - constant_identifier_names: warning + constant_identifier_names: ignore prefer_const_constructors: warning prefer_const_declarations: warning prefer_const_constructors_in_immutables: warning diff --git a/mobile/lib/main.dart b/mobile/lib/main.dart index c4ae34fa28..77adc52662 100644 --- a/mobile/lib/main.dart +++ b/mobile/lib/main.dart @@ -254,7 +254,7 @@ Future _init(bool isBackground, {String via = ''}) async { await SyncService.instance.init(preferences); _logger.info("SyncService init done $tlog"); - await HomeWidgetService.instance.init(preferences); + HomeWidgetService.instance.init(preferences); if (!isBackground) { await _scheduleFGHomeWidgetSync(); diff --git a/mobile/lib/services/album_home_widget_service.dart b/mobile/lib/services/album_home_widget_service.dart index 0a52b6c912..e8d8a3e00d 100644 --- a/mobile/lib/services/album_home_widget_service.dart +++ b/mobile/lib/services/album_home_widget_service.dart @@ -1,74 +1,92 @@ -import "dart:convert"; +import 'dart:convert'; -import "package:crypto/crypto.dart"; -import "package:flutter/material.dart"; -import "package:fluttertoast/fluttertoast.dart"; -import "package:logging/logging.dart"; -import "package:photos/db/files_db.dart"; -import "package:photos/models/collection/collection.dart"; -import "package:photos/models/collection/collection_items.dart"; -import "package:photos/models/file/file.dart"; -import "package:photos/service_locator.dart"; -import "package:photos/services/collections_service.dart"; -import "package:photos/services/favorites_service.dart"; -import "package:photos/services/home_widget_service.dart"; -import "package:photos/services/sync/local_sync_service.dart"; -import "package:photos/ui/viewer/file/file_widget.dart"; -import "package:photos/ui/viewer/gallery/collection_page.dart"; -import "package:photos/utils/navigation_util.dart"; -import "package:shared_preferences/shared_preferences.dart"; -import "package:synchronized/synchronized.dart"; +import 'package:crypto/crypto.dart'; +import 'package:flutter/material.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import 'package:logging/logging.dart'; +import 'package:photos/db/files_db.dart'; +import 'package:photos/models/collection/collection.dart'; +import 'package:photos/models/collection/collection_items.dart'; +import 'package:photos/models/file/file.dart'; +import 'package:photos/service_locator.dart'; +import 'package:photos/services/collections_service.dart'; +import 'package:photos/services/favorites_service.dart'; +import 'package:photos/services/home_widget_service.dart'; +import 'package:photos/services/sync/local_sync_service.dart'; +import 'package:photos/ui/viewer/file/file_widget.dart'; +import 'package:photos/ui/viewer/gallery/collection_page.dart'; +import 'package:photos/utils/navigation_util.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:synchronized/synchronized.dart'; class AlbumHomeWidgetService { - final Logger _logger = Logger((AlbumHomeWidgetService).toString()); - - AlbumHomeWidgetService._privateConstructor(); - - static const _selectedAlbumsHWKey = "selectedAlbumsHW"; - static const _albumsLastHashKey = "albumsLastHash"; - static const _androidClass = "EnteAlbumsWidgetProvider"; - static const _iOSClass = "EnteAlbumWidget"; + // Constants + static const String SELECTED_ALBUMS_KEY = "selectedAlbumsHW"; + static const String ALBUMS_LAST_HASH_KEY = "albumsLastHash"; + static const String ANDROID_CLASS_NAME = "EnteAlbumsWidgetProvider"; + static const String IOS_CLASS_NAME = "EnteAlbumWidget"; + static const String ALBUMS_CHANGED_KEY = "albumsChanged.widget"; + static const String TOTAL_ALBUMS_KEY = "totalAlbums"; + static const int MAX_ALBUMS_LIMIT = 50; + // Singleton pattern static final AlbumHomeWidgetService instance = AlbumHomeWidgetService._privateConstructor(); + AlbumHomeWidgetService._privateConstructor(); + // Properties + final Logger _logger = Logger((AlbumHomeWidgetService).toString()); late final SharedPreferences _prefs; - final _albumsForceRefreshLock = Lock(); bool _hasSyncedAlbums = false; - static const albumsChangedKey = "albumsChanged.widget"; - static const totalAlbums = "totalAlbums"; - - init(SharedPreferences prefs) { + // Initialization + void init(SharedPreferences prefs) { _prefs = prefs; } - Future _forceAlbumsUpdate() async { - await _lockAndLoadAlbum(); - await updateAlbumsChanged(false); + // Public methods + Future initHomeWidget(bool? forceFetchNewAlbums) async { + if (await _hasAnyBlockers()) { + await clearWidget(); + return; + } + + await _albumsForceRefreshLock.synchronized(() async { + if (await _hasAnyBlockers()) { + return; + } + + final isWidgetEmpty = await _isWidgetEmpty(); + forceFetchNewAlbums ??= await _shouldForceFetchAlbums(isWidgetEmpty); + + _logger.warning( + "Initializing albums widget: forceFetch: $forceFetchNewAlbums, isEmpty: $isWidgetEmpty", + ); + + if (forceFetchNewAlbums!) { + await _forceAlbumsUpdate(); + } else if (!isWidgetEmpty) { + await _syncExistingAlbums(); + } + }); + } + + List? getSelectedAlbumIds() { + final selectedAlbums = _prefs.getStringList(SELECTED_ALBUMS_KEY); + return selectedAlbums?.map((id) => int.tryParse(id) ?? 0).toList(); + } + + Future setSelectedAlbums(List selectedAlbums) async { + await _prefs.setStringList(SELECTED_ALBUMS_KEY, selectedAlbums); } String? getAlbumsLastHash() { - final albumsLastHash = _prefs.getString(_albumsLastHashKey); - - return albumsLastHash; + return _prefs.getString(ALBUMS_LAST_HASH_KEY); } Future setAlbumsLastHash(String hash) async { - await _prefs.setString(_albumsLastHashKey, hash); - } - - List? getSelectedAlbums() { - final selectedAlbums = _prefs.getStringList(_selectedAlbumsHWKey); - - return selectedAlbums?.map((e) => int.tryParse(e) ?? 0).toList(); - } - - Future setSelectedAlbums( - List selectedAlbums, - ) async { - await _prefs.setStringList(_selectedAlbumsHWKey, selectedAlbums); + await _prefs.setString(ALBUMS_LAST_HASH_KEY, hash); } Future countHomeWidgets() async { @@ -77,334 +95,126 @@ class AlbumHomeWidgetService { final albumWidgets = installedWidgets .where( - (element) => - element.androidClassName == _androidClass || - element.iOSKind == _iOSClass, + (widget) => + widget.androidClassName == ANDROID_CLASS_NAME || + widget.iOSKind == IOS_CLASS_NAME, ) .toList(); return albumWidgets.length; } - Future _albumsSync() async { - final homeWidgetCount = await countHomeWidgets(); - if (homeWidgetCount == 0) { - _logger.warning("no home widget active"); - return; - } - - await _updateWidget(text: "refreshing from same set"); - } - - Future hasAnyBlockers() async { - final hasCompletedFirstImport = - LocalSyncService.instance.hasCompletedFirstImport(); - if (!hasCompletedFirstImport) { - _logger.warning("first import not completed"); - return true; - } - - final selectedAlbums = getSelectedAlbums(); - final albums = getAlbums(selectedAlbums ?? []); - - if ((selectedAlbums?.isNotEmpty ?? false) && albums.isEmpty) { - _logger.warning("selected albums not found"); - return true; - } - - return false; - } - - Future initAlbumsHW(bool? forceFetchNewAlbum) async { - final result = await hasAnyBlockers(); - if (result) { - await clearWidget(); - return; - } - - await _albumsForceRefreshLock.synchronized(() async { - final result = await hasAnyBlockers(); - if (result) { - return; - } - final isTotalEmpty = await _checkIfTotalEmpty(); - forceFetchNewAlbum ??= await getForceFetchCondition(isTotalEmpty); - - _logger.warning( - "init albums hw: forceFetch: $forceFetchNewAlbum, isTotalEmpty: $isTotalEmpty", - ); - - if (forceFetchNewAlbum!) { - await _forceAlbumsUpdate(); - } else if (!isTotalEmpty) { - await _albumsSync(); - } - }); - } - Future clearWidget() async { - final isTotalEmpty = await _checkIfTotalEmpty(); - if (isTotalEmpty) { - _logger.info(">>> Nothing to clear"); + if (await _isWidgetEmpty()) { + _logger.info("Widget already empty, nothing to clear"); return; } _logger.info("Clearing AlbumsHomeWidget"); - - await _setTotal(null); + await _setTotalAlbums(null); _hasSyncedAlbums = false; - - await _updateWidget(text: "AlbumsHomeWidget cleared & updated"); + await _refreshWidget(message: "AlbumsHomeWidget cleared & updated"); } Future updateAlbumsChanged(bool value) async { - _logger.info("Updating albums changed to $value"); - await _prefs.setBool(albumsChangedKey, value); - } - - Future _checkIfTotalEmpty() async { - final total = await _getTotal(); - return total == 0 || total == null; - } - - Future getForceFetchCondition(bool isTotalEmpty) async { - final albumsChanged = _prefs.getBool(albumsChangedKey); - if (albumsChanged == true) return true; - - final selectedAlbums = await getSelectedAlbumsIDs(); - if (selectedAlbums.isEmpty) { - _logger.warning("No selected albums"); - return false; - } - - final hash = getHash(selectedAlbums); - final lastHash = getAlbumsLastHash(); - - if (hash == lastHash) { - _logger.warning("No changes detected"); - return false; - } - - return true; + _logger.info("Updating albums changed flag to $value"); + await _prefs.setBool(ALBUMS_CHANGED_KEY, value); } Future checkPendingAlbumsSync({bool addDelay = true}) async { - if (addDelay) await Future.delayed(const Duration(seconds: 5), () {}); + if (addDelay) { + await Future.delayed(const Duration(seconds: 5)); + } - final isTotalEmpty = await _checkIfTotalEmpty(); - final forceFetchNewAlbum = await getForceFetchCondition(isTotalEmpty); + final isWidgetEmpty = await _isWidgetEmpty(); + final shouldForceFetch = await _shouldForceFetchAlbums(isWidgetEmpty); - if (_hasSyncedAlbums && !forceFetchNewAlbum) { - _logger.info(">>> Albums already synced"); + if (_hasSyncedAlbums && !shouldForceFetch) { + _logger.info("Albums already synced, no action needed"); return; } - await initAlbumsHW(forceFetchNewAlbum); - } - Future)>> _getAlbum() async { - final selectedAlbums = await getSelectedAlbumsIDs(); - - final albums = )>{}; - for (final selectedAlbum in selectedAlbums) { - final collection = - CollectionsService.instance.getCollectionByID(selectedAlbum); - if (collection != null) { - final files = - await FilesDB.instance.getAllFilesCollection(collection.id); - albums.addAll({ - collection.id: (collection.decryptedName ?? "Album", files), - }); - } - } - - if (albums.isEmpty) { - _logger.warning("No albums found"); - return {}; - } - - return albums; - } - - Future _updateWidget({String? text}) async { - await HomeWidgetService.instance.updateWidget( - androidClass: _androidClass, - iOSClass: _iOSClass, - ); - if (flagService.internalUser) { - await Fluttertoast.showToast( - msg: "[i][al] ${text ?? "AlbumsHomeWidget updated"}", - toastLength: Toast.LENGTH_SHORT, - gravity: ToastGravity.BOTTOM, - timeInSecForIosWeb: 1, - backgroundColor: Colors.black, - textColor: Colors.white, - fontSize: 16.0, - ); - } - _logger.info(">>> Home Widget updated, type: ${text ?? "normal"}"); - } - - String getHash(List selectedAlbums) { - final albums = {}; - String currentDates = ""; - for (final selectedAlbum in selectedAlbums) { - final collection = - CollectionsService.instance.getCollectionByID(selectedAlbum); - if (collection != null) { - albums.add(collection); - currentDates += "${collection.updationTime.toString()}_"; - } - } - - final hash = - md5.convert(utf8.encode(currentDates)).toString().substring(0, 10); - return hash; - } - - List getAlbums(List selectedAlbums) { - final albums = []; - for (final selectedAlbum in selectedAlbums) { - final collection = - CollectionsService.instance.getCollectionByID(selectedAlbum); - if (collection != null) { - albums.add(collection); - } - } - - return albums; - } - - Future> getSelectedAlbumsIDs() async { - final selectedAlbums = getSelectedAlbums(); - if (selectedAlbums == null || selectedAlbums.isEmpty) { - final favoriteId = - await FavoritesService.instance.getFavoriteCollectionID(); - if (favoriteId != null) { - return [favoriteId]; - } - } - return selectedAlbums ?? []; + await initHomeWidget(shouldForceFetch); } Future albumsChanged() async { final lastHash = getAlbumsLastHash(); + final selectedAlbumIds = await _getEffectiveSelectedAlbumIds(); + final currentHash = _calculateHash(selectedAlbumIds); - final selectedAlbums = await getSelectedAlbumsIDs(); - final hash = getHash(selectedAlbums); - - if (selectedAlbums.isEmpty || hash == lastHash) { - _logger.info(">>> No changes detected"); + if (selectedAlbumIds.isEmpty || currentHash == lastHash) { + _logger.info("No changes detected in albums"); return; } - _logger.info(">>> Album changed, updating widget"); + _logger.info("Albums changed, updating widget"); await updateAlbumsChanged(true); - await initAlbumsHW(true); + await initHomeWidget(true); } - Future _getTotal() async { - return HomeWidgetService.instance.getData(totalAlbums); - } + List getAlbumsByIds(List albumIds) { + final albums = []; - Future _setTotal(int? total) async => - await HomeWidgetService.instance.setData(totalAlbums, total); - - Future _lockAndLoadAlbum() async { - final files = await _getAlbum(); - - if (files.isEmpty) { - _logger.warning("No files found, clearing everything"); - await clearWidget(); - return; - } - - final total = await _getTotal(); - _logger.info(">>> Total albums before: $total"); - - int index = 0; - - for (final i in files.entries) { - for (final file in i.value.$2) { - final value = await HomeWidgetService.instance - .renderFile( - file, - "albums_widget_$index", - i.value.$1, - i.key.toString(), - ) - .catchError( - (e, sT) { - _logger.severe("Error rendering widget", e, sT); - return null; - }, - ); - - if (value != null) { - final result = await hasAnyBlockers(); - if (result) { - return; - } - if (index == 1) { - await _updateWidget( - text: "First albums fetched. updating widget", - ); - } - index++; - await _setTotal(index); - - if (index >= 50) { - _logger.warning(">>> Max albums limit reached"); - break; - } - } - } - - if (index >= 50) { - break; + for (final albumId in albumIds) { + final collection = CollectionsService.instance.getCollectionByID(albumId); + if (collection != null) { + albums.add(collection); } } - final selectedAlbums = await getSelectedAlbumsIDs(); + return albums; + } - final hash = getHash(selectedAlbums); - await setAlbumsLastHash(hash); + String _calculateHash(List albumIds) { + String updationTimestamps = ""; - if (index == 0) { - return; + for (final albumId in albumIds) { + final collection = CollectionsService.instance.getCollectionByID(albumId); + if (collection != null) { + updationTimestamps += "${collection.updationTime.toString()}_"; + } } - await _updateWidget( - text: ">>> Switching to next albums set, total: $index", - ); + final hash = md5 + .convert(utf8.encode(updationTimestamps)) + .toString() + .substring(0, 10); + return hash; } Future onLaunchFromWidget( - int generatedId, - int collectionID, + int fileId, + int collectionId, BuildContext context, ) async { _hasSyncedAlbums = true; - await _albumsSync(); + await _syncExistingAlbums(); - final c = CollectionsService.instance.getCollectionByID(collectionID); - if (c == null) { - _logger.warning("onLaunchFromWidget: collection is null"); + final collection = + CollectionsService.instance.getCollectionByID(collectionId); + if (collection == null) { + _logger.warning( + "Cannot launch widget: collection with ID $collectionId not found", + ); return; } - final thumbnail = await CollectionsService.instance.getCover(c); + // First navigate to the collection page + final thumbnail = await CollectionsService.instance.getCover(collection); await routeToPage( context, CollectionPage( - CollectionWithThumbnail(c, thumbnail), + CollectionWithThumbnail(collection, thumbnail), ), ); - final file = await FilesDB.instance.getFile(generatedId); + + // Then open the specific file + final file = await FilesDB.instance.getFile(fileId); if (file == null) { - _logger.warning("onLaunchFromWidget: file is null"); + _logger.warning("Cannot launch widget: file with ID $fileId not found"); return; } - // open generated id file preview + await routeToPage( context, FileWidget( @@ -413,4 +223,213 @@ class AlbumHomeWidgetService { ), ); } + + // Private methods + Future _hasAnyBlockers() async { + // Check if first import is completed + final hasCompletedFirstImport = + LocalSyncService.instance.hasCompletedFirstImport(); + if (!hasCompletedFirstImport) { + _logger.warning("First import not completed"); + return true; + } + + // Check if selected albums exist + final selectedAlbumIds = getSelectedAlbumIds(); + final albums = getAlbumsByIds(selectedAlbumIds ?? []); + + if ((selectedAlbumIds?.isNotEmpty ?? false) && albums.isEmpty) { + _logger.warning("Selected albums not found"); + return true; + } + + return false; + } + + Future _forceAlbumsUpdate() async { + await _loadAndRenderAlbums(); + await updateAlbumsChanged(false); + } + + Future _syncExistingAlbums() async { + final homeWidgetCount = await countHomeWidgets(); + if (homeWidgetCount == 0) { + _logger.warning("No active home widgets found"); + return; + } + + await _refreshWidget(message: "Refreshing from existing album set"); + } + + Future _isWidgetEmpty() async { + final totalAlbums = await _getTotalAlbums(); + return totalAlbums == 0 || totalAlbums == null; + } + + Future _shouldForceFetchAlbums(bool isWidgetEmpty) async { + // Check if albums changed flag is set + final albumsChanged = _prefs.getBool(ALBUMS_CHANGED_KEY); + if (albumsChanged == true) { + return true; + } + + // Check if we have any albums selected + final selectedAlbumIds = await _getEffectiveSelectedAlbumIds(); + if (selectedAlbumIds.isEmpty) { + _logger.warning("No albums selected"); + return false; + } + + // Check if hash has changed + final currentHash = _calculateHash(selectedAlbumIds); + final lastHash = getAlbumsLastHash(); + + if (currentHash == lastHash) { + _logger.warning("No changes detected in album content"); + return false; + } + + return true; + } + + Future> _getEffectiveSelectedAlbumIds() async { + final selectedAlbumIds = getSelectedAlbumIds(); + + // If no albums selected, use favorites as default + if (selectedAlbumIds == null || selectedAlbumIds.isEmpty) { + final favoriteId = + await FavoritesService.instance.getFavoriteCollectionID(); + if (favoriteId != null) { + return [favoriteId]; + } + } + + return selectedAlbumIds ?? []; + } + + Future _getTotalAlbums() async { + return HomeWidgetService.instance.getData(TOTAL_ALBUMS_KEY); + } + + Future _setTotalAlbums(int? total) async { + await HomeWidgetService.instance.setData(TOTAL_ALBUMS_KEY, total); + } + + Future _refreshWidget({String? message}) async { + await HomeWidgetService.instance.updateWidget( + androidClass: ANDROID_CLASS_NAME, + iOSClass: IOS_CLASS_NAME, + ); + + if (flagService.internalUser) { + await Fluttertoast.showToast( + msg: "[i][al] ${message ?? "AlbumsHomeWidget updated"}", + toastLength: Toast.LENGTH_SHORT, + gravity: ToastGravity.BOTTOM, + timeInSecForIosWeb: 1, + backgroundColor: Colors.black, + textColor: Colors.white, + fontSize: 16.0, + ); + } + + _logger.info("Home Widget updated: ${message ?? "standard update"}"); + } + + Future)>> _getAlbumsWithFiles() async { + final selectedAlbumIds = await _getEffectiveSelectedAlbumIds(); + final albumsWithFiles = )>{}; + + for (final albumId in selectedAlbumIds) { + final collection = CollectionsService.instance.getCollectionByID(albumId); + if (collection != null) { + final files = + await FilesDB.instance.getAllFilesCollection(collection.id); + albumsWithFiles[collection.id] = + (collection.decryptedName ?? "Album", files); + } + } + + if (albumsWithFiles.isEmpty) { + _logger.warning("No albums with files found"); + } + + return albumsWithFiles; + } + + Future _loadAndRenderAlbums() async { + final albumsWithFiles = await _getAlbumsWithFiles(); + + if (albumsWithFiles.isEmpty) { + _logger.warning("No files found for any albums, clearing widget"); + await clearWidget(); + return; + } + + final currentTotal = await _getTotalAlbums(); + _logger.info("Current total albums in widget: $currentTotal"); + + int renderedCount = 0; + + for (final entry in albumsWithFiles.entries) { + final albumId = entry.key; + final albumName = entry.value.$1; + final albumFiles = entry.value.$2; + + for (final file in albumFiles) { + final renderResult = await HomeWidgetService.instance + .renderFile( + file, + "albums_widget_$renderedCount", + albumName, + albumId.toString(), + ) + .catchError((e, stackTrace) { + _logger.severe("Error rendering widget", e, stackTrace); + return null; + }); + + if (renderResult != null) { + // Check for blockers again before continuing + if (await _hasAnyBlockers()) { + return; + } + + await _setTotalAlbums(renderedCount); + + // Show update toast after first item is rendered + if (renderedCount == 1) { + await _refreshWidget( + message: "First album fetched, updating widget", + ); + } + + renderedCount++; + + // Limit the number of albums to avoid performance issues + if (renderedCount >= MAX_ALBUMS_LIMIT) { + _logger.warning("Maximum albums limit ($MAX_ALBUMS_LIMIT) reached"); + break; + } + } + } + + if (renderedCount >= MAX_ALBUMS_LIMIT) { + break; + } + } + + // Update the hash to track changes + final selectedAlbumIds = await _getEffectiveSelectedAlbumIds(); + final hash = _calculateHash(selectedAlbumIds); + await setAlbumsLastHash(hash); + + if (renderedCount == 0) { + return; + } + + await _refreshWidget( + message: "Switched to next albums set, total: $renderedCount", + ); + } } diff --git a/mobile/lib/services/home_widget_service.dart b/mobile/lib/services/home_widget_service.dart index 58ea27de8c..fd37f12dc3 100644 --- a/mobile/lib/services/home_widget_service.dart +++ b/mobile/lib/services/home_widget_service.dart @@ -1,31 +1,52 @@ -import "dart:convert"; -import "dart:io"; +import 'dart:convert'; +import 'dart:io'; -import "package:flutter/material.dart"; +import 'package:flutter/material.dart'; import 'package:home_widget/home_widget.dart' as hw; -import "package:home_widget/home_widget.dart"; -import "package:logging/logging.dart"; -import "package:path_provider/path_provider.dart"; -import "package:path_provider_foundation/path_provider_foundation.dart"; -import "package:photos/core/constants.dart"; -import "package:photos/models/file/file.dart"; -import "package:photos/services/album_home_widget_service.dart"; -import "package:photos/services/memory_home_widget_service.dart"; -import "package:photos/services/people_home_widget_service.dart"; -import "package:photos/services/smart_memories_service.dart"; -import "package:photos/utils/thumbnail_util.dart"; -import "package:shared_preferences/shared_preferences.dart"; +import 'package:home_widget/home_widget.dart'; +import 'package:logging/logging.dart'; +import 'package:path_provider/path_provider.dart'; +import 'package:path_provider_foundation/path_provider_foundation.dart'; +import 'package:photos/core/constants.dart'; +import 'package:photos/models/file/file.dart'; +import 'package:photos/services/album_home_widget_service.dart'; +import 'package:photos/services/memory_home_widget_service.dart'; +import 'package:photos/services/people_home_widget_service.dart'; +import 'package:photos/services/smart_memories_service.dart'; +import 'package:photos/utils/thumbnail_util.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +/// Service to manage home screen widgets across the application +/// Handles widget initialization, updates, and interaction with platform-specific widget APIs class HomeWidgetService { - final Logger _logger = Logger((HomeWidgetService).toString()); + // Constants + static const double THUMBNAIL_SIZE = 512.0; + static const String WIDGET_DIRECTORY = 'home_widget'; - HomeWidgetService._privateConstructor(); + // URI schemes for different widget types + static const String MEMORY_WIDGET_SCHEME = 'memorywidget'; + static const String PEOPLE_WIDGET_SCHEME = 'peoplewidget'; + static const String ALBUM_WIDGET_SCHEME = 'albumwidget'; + + // Query parameter keys + static const String GENERATED_ID_PARAM = 'generatedId'; + static const String MAIN_KEY_PARAM = 'mainKey'; + + // Widget data keys + static const String DATA_SUFFIX = '_data'; static final HomeWidgetService instance = HomeWidgetService._privateConstructor(); + HomeWidgetService._privateConstructor(); - init(SharedPreferences prefs) { + final Logger _logger = Logger((HomeWidgetService).toString()); + + void init(SharedPreferences prefs) { setAppGroupID(iOSGroupIDMemory); + _initializeWidgetServices(prefs); + } + + void _initializeWidgetServices(SharedPreferences prefs) { MemoryHomeWidgetService.instance.init(prefs); PeopleHomeWidgetService.instance.init(prefs); AlbumHomeWidgetService.instance.init(prefs); @@ -36,9 +57,9 @@ class HomeWidgetService { } Future initHomeWidget() async { - await MemoryHomeWidgetService.instance.initMemoryHW(null); - await PeopleHomeWidgetService.instance.initPeopleHW(null); - await AlbumHomeWidgetService.instance.initAlbumsHW(null); + await MemoryHomeWidgetService.instance.initMemoryHomeWidget(null); + await PeopleHomeWidgetService.instance.initHomeWidget(null); + await AlbumHomeWidgetService.instance.initHomeWidget(null); } Future updateWidget({ @@ -62,20 +83,18 @@ class HomeWidgetService { } Future renderFile( - EnteFile randomFile, + EnteFile file, String key, String title, String? mainKey, ) async { - const size = 512.0; - - final result = await _captureFile(randomFile, key, title, mainKey); + final result = await _captureFile(file, key, title, mainKey); if (!result) { - _logger.warning("can't capture file ${randomFile.displayName}"); + _logger.warning("Failed to capture file ${file.displayName}"); return null; } - return const Size(size, size); + return const Size(THUMBNAIL_SIZE, THUMBNAIL_SIZE); } Future countHomeWidgets() async { @@ -87,109 +106,156 @@ class HomeWidgetService { } Future _captureFile( - EnteFile ogFile, + EnteFile file, String key, String title, String? mainKey, ) async { try { - final thumbnail = await getThumbnail(ogFile); - - late final String? directory; - - // coverage:ignore-start - if (Platform.isIOS) { - final PathProviderFoundation provider = PathProviderFoundation(); - directory = await provider.getContainerPath( - appGroupIdentifier: iOSGroupIDMemory, - ); - } else { - directory = (await getApplicationSupportDirectory()).path; + // Get thumbnail data + final thumbnail = await getThumbnail(file); + if (thumbnail == null) { + _logger.warning("Failed to get thumbnail for file ${file.displayName}"); + return false; } - final String path = '$directory/home_widget/$key.png'; - final File file = File(path); - if (!await file.exists()) { - await file.create(recursive: true); + // Get appropriate directory for widget assets + final String widgetDirectory = await _getWidgetStorageDirectory(); + + // Save thumbnail to file + final String thumbnailPath = + '$widgetDirectory/$WIDGET_DIRECTORY/$key.png'; + final File thumbnailFile = File(thumbnailPath); + + if (!await thumbnailFile.exists()) { + await thumbnailFile.create(recursive: true); } - await file.writeAsBytes(thumbnail!); - await setData(key, path); + await thumbnailFile.writeAsBytes(thumbnail); + await setData(key, thumbnailPath); + // Format date for display final subText = await SmartMemoriesService.getDateFormattedLocale( - creationTime: ogFile.creationTime!, + creationTime: file.creationTime!, ); - final data = { + // Create metadata + final Map metadata = { "title": title, "subText": subText, - "generatedId": ogFile.generatedID!, + "generatedId": file.generatedID!, if (mainKey != null) "mainKey": mainKey, }; - if (Platform.isIOS) { - await hw.HomeWidget.saveWidgetData>( - key + "_data", - data, - ); - } else { - await hw.HomeWidget.saveWidgetData( - key + "_data", - jsonEncode(data), - ); - } - } catch (_, __) { - _logger.severe("Failed to save the capture", _, __); + + // Save metadata in platform-specific format + await _saveWidgetMetadata(key, metadata); + + return true; + } catch (error, stackTrace) { + _logger.severe("Failed to save the thumbnail", error, stackTrace); return false; } - return true; + } + + Future _saveWidgetMetadata( + String key, + Map metadata, + ) async { + final String dataKey = key + DATA_SUFFIX; + + if (Platform.isIOS) { + // iOS can store the map directly + await hw.HomeWidget.saveWidgetData>( + dataKey, + metadata, + ); + } else { + // Android needs the data as a JSON string + await hw.HomeWidget.saveWidgetData( + dataKey, + jsonEncode(metadata), + ); + } + } + + Future _getWidgetStorageDirectory() async { + if (Platform.isIOS) { + final PathProviderFoundation provider = PathProviderFoundation(); + return (await provider.getContainerPath( + appGroupIdentifier: iOSGroupIDMemory, + ))!; + } else { + return (await getApplicationSupportDirectory()).path; + } } Future clearWidget(bool autoLogout) async { - if (autoLogout) setAppGroupID(iOSGroupIDMemory); - await MemoryHomeWidgetService.instance.clearWidget(); - await AlbumHomeWidgetService.instance.clearWidget(); - await PeopleHomeWidgetService.instance.clearWidget(); + if (autoLogout) { + setAppGroupID(iOSGroupIDMemory); + } + + await Future.wait([ + MemoryHomeWidgetService.instance.clearWidget(), + PeopleHomeWidgetService.instance.clearWidget(), + AlbumHomeWidgetService.instance.clearWidget(), + ]); } + /// Handle app launch from a widget Future onLaunchFromWidget(Uri? uri, BuildContext context) async { if (uri == null) { - _logger.warning("onLaunchFromWidget: uri is null"); + _logger.warning("Widget launch failed: URI is null"); return; } - final generatedId = int.tryParse(uri.queryParameters["generatedId"] ?? ""); - + final generatedId = + int.tryParse(uri.queryParameters[GENERATED_ID_PARAM] ?? ""); if (generatedId == null) { - _logger.warning("onLaunchFromWidget: generatedId is null"); + _logger.warning("Widget launch failed: Invalid or missing generated ID"); return; } - if (uri.scheme == "memorywidget") { - _logger.info("onLaunchFromWidget: redirecting to memory widget"); - await MemoryHomeWidgetService.instance.onLaunchFromWidget( - generatedId, - context, - ); - } else if (uri.scheme == "peoplewidget") { - _logger.info("onLaunchFromWidget: redirecting to people widget"); - await PeopleHomeWidgetService.instance.onLaunchFromWidget( - generatedId, - context, - ); - } else if (uri.scheme == "albumwidget") { - _logger.info("onLaunchFromWidget: redirecting to album widget"); - final collectionID = int.tryParse(uri.queryParameters["mainKey"] ?? ""); - if (collectionID == null) { - _logger.warning("onLaunchFromWidget: mainKey is null"); - return; - } - await AlbumHomeWidgetService.instance.onLaunchFromWidget( - generatedId, - collectionID, - context, - ); - } else { - _logger.warning("onLaunchFromWidget: unknown scheme"); + // Route to appropriate handler based on widget scheme + switch (uri.scheme) { + case MEMORY_WIDGET_SCHEME: + _logger.info("Launching app from memory widget"); + await MemoryHomeWidgetService.instance.onLaunchFromWidget( + generatedId, + context, + ); + break; + + case PEOPLE_WIDGET_SCHEME: + _logger.info("Launching app from people widget"); + await PeopleHomeWidgetService.instance.onLaunchFromWidget( + generatedId, + context, + ); + break; + + case ALBUM_WIDGET_SCHEME: + _logger.info("Launching app from album widget"); + final collectionId = + int.tryParse(uri.queryParameters[MAIN_KEY_PARAM] ?? ""); + if (collectionId == null) { + _logger.warning( + "Album widget launch failed: Invalid or missing collection ID", + ); + return; + } + + await AlbumHomeWidgetService.instance.onLaunchFromWidget( + generatedId, + collectionId, + context, + ); + break; + + default: + _logger.warning( + "Widget launch failed: Unknown widget scheme '${uri.scheme}'", + ); + break; } } } diff --git a/mobile/lib/services/memory_home_widget_service.dart b/mobile/lib/services/memory_home_widget_service.dart index 0976506f91..7c3fa5b7e3 100644 --- a/mobile/lib/services/memory_home_widget_service.dart +++ b/mobile/lib/services/memory_home_widget_service.dart @@ -1,70 +1,144 @@ -import "package:flutter/material.dart"; -import "package:fluttertoast/fluttertoast.dart"; -import "package:logging/logging.dart"; -import "package:photos/models/file/file.dart"; -import "package:photos/models/memories/smart_memory.dart"; -import "package:photos/service_locator.dart"; -import "package:photos/services/home_widget_service.dart"; -import "package:photos/services/sync/local_sync_service.dart"; -import "package:shared_preferences/shared_preferences.dart"; -import "package:synchronized/synchronized.dart"; +import 'package:flutter/material.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import 'package:logging/logging.dart'; +import 'package:photos/models/file/file.dart'; +import 'package:photos/models/memories/smart_memory.dart'; +import 'package:photos/service_locator.dart'; +import 'package:photos/services/home_widget_service.dart'; +import 'package:photos/services/sync/local_sync_service.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:synchronized/synchronized.dart'; class MemoryHomeWidgetService { - final Logger _logger = Logger((MemoryHomeWidgetService).toString()); - - MemoryHomeWidgetService._privateConstructor(); - - static const _selectedLastYearMemoriesKey = "selectedLastYearMemoriesHW"; - static const _selectedMLMemoriesKey = "selectedMLMemoriesHW"; - static const _selectedOnThisDayMemoriesKey = "selectedOnThisDayMemoriesHW"; - static const _androidClass = "EnteMemoryWidgetProvider"; - static const _iOSClass = "EnteMemoryWidget"; + // Constants + static const String SELECTED_LAST_YEAR_MEMORIES_KEY = + "selectedLastYearMemoriesHW"; + static const String SELECTED_ML_MEMORIES_KEY = "selectedMLMemoriesHW"; + static const String SELECTED_ON_THIS_DAY_MEMORIES_KEY = + "selectedOnThisDayMemoriesHW"; + static const String ANDROID_CLASS_NAME = "EnteMemoryWidgetProvider"; + static const String IOS_CLASS_NAME = "EnteMemoryWidget"; + static const String MEMORY_CHANGED_KEY = "memoryChanged.widget"; + static const String TOTAL_MEMORIES_KEY = "totalMemories"; + static const int MAX_MEMORIES_LIMIT = 50; + // Singleton pattern static final MemoryHomeWidgetService instance = MemoryHomeWidgetService._privateConstructor(); + MemoryHomeWidgetService._privateConstructor(); + // Properties + final Logger _logger = Logger((MemoryHomeWidgetService).toString()); late final SharedPreferences _prefs; - final _memoryForceRefreshLock = Lock(); bool _hasSyncedMemory = false; - static const memoryChangedKey = "memoryChanged.widget"; - static const totalMemories = "totalMemories"; - - init(SharedPreferences prefs) { + // Initialization + void init(SharedPreferences prefs) { _prefs = prefs; } - Future _forceMemoryUpdate() async { - await _lockAndLoadMemories(); - await updateMemoryChanged(false); - } - + // Preference getters and setters Future getSelectedLastYearMemories() async { - final selectedMemories = _prefs.getBool(_selectedLastYearMemoriesKey); - return selectedMemories; + return _prefs.getBool(SELECTED_LAST_YEAR_MEMORIES_KEY); } Future setSelectedLastYearMemories(bool selectedMemories) async { - await _prefs.setBool(_selectedLastYearMemoriesKey, selectedMemories); + await _prefs.setBool(SELECTED_LAST_YEAR_MEMORIES_KEY, selectedMemories); } Future getSelectedMLMemories() async { - final selectedMemories = _prefs.getBool(_selectedMLMemoriesKey); - return selectedMemories; + return _prefs.getBool(SELECTED_ML_MEMORIES_KEY); } Future setSelectedMLMemories(bool selectedMemories) async { - await _prefs.setBool(_selectedMLMemoriesKey, selectedMemories); + await _prefs.setBool(SELECTED_ML_MEMORIES_KEY, selectedMemories); } Future getSelectedOnThisDayMemories() async { - final selectedMemories = _prefs.getBool(_selectedOnThisDayMemoriesKey); - return selectedMemories; + return _prefs.getBool(SELECTED_ON_THIS_DAY_MEMORIES_KEY); } Future setSelectedOnThisDayMemories(bool selectedMemories) async { - await _prefs.setBool(_selectedOnThisDayMemoriesKey, selectedMemories); + await _prefs.setBool(SELECTED_ON_THIS_DAY_MEMORIES_KEY, selectedMemories); + } + + // Public methods + Future initMemoryHomeWidget(bool? forceFetchNewMemories) async { + if (await _hasAnyBlockers()) { + await clearWidget(); + return; + } + + await _memoryForceRefreshLock.synchronized(() async { + if (await _hasAnyBlockers()) { + return; + } + + final isWidgetEmpty = await _isWidgetEmpty(); + forceFetchNewMemories ??= await _shouldForceFetchMemories(isWidgetEmpty); + + _logger.warning( + "Initializing memory widget: forceFetch: $forceFetchNewMemories, isEmpty: $isWidgetEmpty", + ); + + if (forceFetchNewMemories!) { + await _forceMemoryUpdate(); + } else if (!isWidgetEmpty) { + await _syncExistingMemories(); + } + }); + } + + Future clearWidget() async { + final isWidgetEmpty = await _isWidgetEmpty(); + if (isWidgetEmpty) { + _logger.info("Widget already empty, nothing to clear"); + return; + } + + _logger.info("Clearing MemoryHomeWidget"); + await _setTotalMemories(null); + _hasSyncedMemory = false; + await _refreshWidget(message: "MemoryHomeWidget cleared & updated"); + } + + Future updateMemoryChanged(bool value) async { + _logger.info("Updating memory changed flag to $value"); + await _prefs.setBool(MEMORY_CHANGED_KEY, value); + } + + Future checkPendingMemorySync({bool addDelay = true}) async { + if (addDelay) { + await Future.delayed(const Duration(seconds: 5)); + } + + final isWidgetEmpty = await _isWidgetEmpty(); + final shouldForceFetch = await _shouldForceFetchMemories(isWidgetEmpty); + + if (_hasSyncedMemory && !shouldForceFetch) { + _logger.info("Memories already synced, no action needed"); + return; + } + + await initMemoryHomeWidget(shouldForceFetch); + } + + Future memoryChanged() async { + await updateMemoryChanged(true); + + final cachedMemories = await _getMemoriesForWidget(); + final currentTotal = cachedMemories.length; + final existingTotal = await _getTotalMemories() ?? 0; + + if (existingTotal == currentTotal && existingTotal == 0) { + await updateMemoryChanged(false); + _logger.info("Memories empty, no update needed"); + return; + } + + _logger.info("Memories changed, updating widget"); + await initMemoryHomeWidget(true); } Future countHomeWidgets() async { @@ -73,115 +147,75 @@ class MemoryHomeWidgetService { final memoryWidgets = installedWidgets .where( - (element) => - element.androidClassName == _androidClass || - element.iOSKind == _iOSClass, + (widget) => + widget.androidClassName == ANDROID_CLASS_NAME || + widget.iOSKind == IOS_CLASS_NAME, ) .toList(); return memoryWidgets.length; } - Future _memorySync() async { - final homeWidgetCount = await countHomeWidgets(); - if (homeWidgetCount == 0) { - _logger.warning("no home widget active"); - return; - } + Future onLaunchFromWidget(int generatedId, BuildContext context) async { + _hasSyncedMemory = true; + await _syncExistingMemories(); - await _updateWidget(text: "refreshing from same set"); + await memoriesCacheService.goToMemoryFromGeneratedFileID( + context, + generatedId, + ); } - Future hasAnyBlockers() async { + // Private methods + Future _hasAnyBlockers() async { + // Check if first import is completed final hasCompletedFirstImport = LocalSyncService.instance.hasCompletedFirstImport(); if (!hasCompletedFirstImport) { - _logger.warning("first import not completed"); + _logger.warning("First import not completed"); return true; } + // Check if memories are enabled final areMemoriesShown = memoriesCacheService.showAnyMemories; if (!areMemoriesShown) { - _logger.warning("memories not enabled"); + _logger.warning("Memories not enabled"); return true; } return false; } - Future initMemoryHW(bool? forceFetchNewMemories) async { - final result = await hasAnyBlockers(); - if (result) { - await clearWidget(); + Future _forceMemoryUpdate() async { + await _loadAndRenderMemories(); + await updateMemoryChanged(false); + } + + Future _syncExistingMemories() async { + final homeWidgetCount = await countHomeWidgets(); + if (homeWidgetCount == 0) { + _logger.warning("No active home widgets found"); return; } - await _memoryForceRefreshLock.synchronized(() async { - final result = await hasAnyBlockers(); - if (result) { - return; - } - final isTotalEmpty = await _checkIfTotalEmpty(); - forceFetchNewMemories ??= await getForceFetchCondition(isTotalEmpty); - - _logger.warning( - "init memory hw: forceFetch: $forceFetchNewMemories, isTotalEmpty: $isTotalEmpty", - ); - - if (forceFetchNewMemories!) { - await _forceMemoryUpdate(); - } else if (!isTotalEmpty) { - await _memorySync(); - } - }); + await _refreshWidget(message: "Refreshing from existing memory set"); } - Future clearWidget() async { - final isTotalEmpty = await _checkIfTotalEmpty(); - if (isTotalEmpty) { - _logger.info(">>> Nothing to clear"); - return; - } - - _logger.info("Clearing MemoryHomeWidget"); - - await _setTotal(null); - _hasSyncedMemory = false; - - await _updateWidget(text: "MemoryHomeWidget cleared & updated"); - } - - Future updateMemoryChanged(bool value) async { - _logger.info("Updating memory changed to $value"); - await _prefs.setBool(memoryChangedKey, value); - } - - Future _checkIfTotalEmpty() async { - final total = await _getTotal(); + Future _isWidgetEmpty() async { + final total = await _getTotalMemories(); return total == 0 || total == null; } - Future getForceFetchCondition(bool isTotalEmpty) async { - final memoryChanged = _prefs.getBool(memoryChangedKey) ?? true; - if (memoryChanged == true) return true; - - final cachedMemories = await _getMemoriesForWidget(); - - final forceFetchNewMemories = isTotalEmpty && cachedMemories.isNotEmpty; - return forceFetchNewMemories; - } - - Future checkPendingMemorySync({bool addDelay = true}) async { - if (addDelay) await Future.delayed(const Duration(seconds: 5), () {}); - - final isTotalEmpty = await _checkIfTotalEmpty(); - final forceFetchNewMemories = await getForceFetchCondition(isTotalEmpty); - - if (_hasSyncedMemory && !forceFetchNewMemories) { - _logger.info(">>> Memory already synced"); - return; + Future _shouldForceFetchMemories(bool isWidgetEmpty) async { + // Check if memory changed flag is set + final memoryChanged = _prefs.getBool(MEMORY_CHANGED_KEY) ?? true; + if (memoryChanged == true) { + return true; } - await MemoryHomeWidgetService.instance.initMemoryHW(null); + + // Check if we should force fetch new memories + final cachedMemories = await _getMemoriesForWidget(); + return isWidgetEmpty && cachedMemories.isNotEmpty; } Future> _getMemoriesForWidget() async { @@ -199,30 +233,38 @@ class MemoryHomeWidgetService { return memories; } - Future>> _getMemories() async { + Future>> _getMemoriesWithFiles() async { final memories = await _getMemoriesForWidget(); if (memories.isEmpty) { return {}; } - final files = Map.fromEntries( - memories.map((m) { - return MapEntry(m.title, m.memories.map((e) => e.file).toList()); - }), + return Map.fromEntries( + memories.map( + (memory) => + MapEntry(memory.title, memory.memories.map((m) => m.file).toList()), + ), ); - - return files; } - Future _updateWidget({String? text}) async { + Future _getTotalMemories() async { + return HomeWidgetService.instance.getData(TOTAL_MEMORIES_KEY); + } + + Future _setTotalMemories(int? total) async { + await HomeWidgetService.instance.setData(TOTAL_MEMORIES_KEY, total); + } + + Future _refreshWidget({String? message}) async { await HomeWidgetService.instance.updateWidget( - androidClass: _androidClass, - iOSClass: _iOSClass, + androidClass: ANDROID_CLASS_NAME, + iOSClass: IOS_CLASS_NAME, ); + if (flagService.internalUser) { await Fluttertoast.showToast( - msg: "[i] ${text ?? "MemoryHomeWidget updated"}", + msg: "[i][mem] ${message ?? "MemoryHomeWidget updated"}", toastLength: Toast.LENGTH_SHORT, gravity: ToastGravity.BOTTOM, timeInSecForIosWeb: 1, @@ -231,99 +273,74 @@ class MemoryHomeWidgetService { fontSize: 16.0, ); } - _logger.info(">>> Home Widget updated, type: ${text ?? "normal"}"); + + _logger.info("Home Widget updated: ${message ?? "standard update"}"); } - Future memoryChanged() async { - await updateMemoryChanged(true); - final cachedMemories = await _getMemoriesForWidget(); - final currentTotal = cachedMemories.length; + Future _loadAndRenderMemories() async { + final memoriesWithFiles = await _getMemoriesWithFiles(); - final int total = await _getTotal() ?? 0; - - if (total == currentTotal && total == 0) { - await updateMemoryChanged(false); - _logger.info(">>> Memories empty, doing nothing"); - return; - } - - _logger.info(">>> Memories changed, updating widget"); - await initMemoryHW(true); - } - - Future _getTotal() async { - return HomeWidgetService.instance.getData(totalMemories); - } - - Future _setTotal(int? total) async => - await HomeWidgetService.instance.setData(totalMemories, total); - - Future _lockAndLoadMemories() async { - final files = await _getMemories(); - - if (files.isEmpty) { - _logger.warning("No files found, clearing everything"); + if (memoriesWithFiles.isEmpty) { + _logger.warning("No memories found, clearing widget"); await clearWidget(); return; } - final total = await _getTotal(); - _logger.info(">>> Total memories before: $total"); + final currentTotal = await _getTotalMemories(); + _logger.info("Current total memories in widget: $currentTotal"); - int index = 0; + int renderedCount = 0; - for (final i in files.entries) { - for (final file in i.value) { - final value = await HomeWidgetService.instance - .renderFile(file, "memory_widget_$index", i.key, null) - .catchError( - (e, sT) { - _logger.severe("Error rendering widget", e, sT); - return null; - }, - ); + for (final entry in memoriesWithFiles.entries) { + final memoryTitle = entry.key; + final memoryFiles = entry.value; - if (value != null) { - final result = await hasAnyBlockers(); - if (result) { + for (final file in memoryFiles) { + final renderResult = await HomeWidgetService.instance + .renderFile(file, "memory_widget_$renderedCount", memoryTitle, null) + .catchError((e, stackTrace) { + _logger.severe("Error rendering widget", e, stackTrace); + return null; + }); + + if (renderResult != null) { + // Check for blockers again before continuing + if (await _hasAnyBlockers()) { return; } - if (index == 1) { - await _updateWidget( - text: "First memory fetched. updating widget", + + await _setTotalMemories(renderedCount); + + // Show update toast after first item is rendered + if (renderedCount == 1) { + await _refreshWidget( + message: "First memory fetched, updating widget", ); } - index++; - await _setTotal(index); - if (index >= 50) { - _logger.warning(">>> Max memory limit reached"); + renderedCount++; + + // Limit the number of memories to avoid performance issues + if (renderedCount >= MAX_MEMORIES_LIMIT) { + _logger.warning( + "Maximum memories limit ($MAX_MEMORIES_LIMIT) reached", + ); break; } } } - if (index >= 50) { + if (renderedCount >= MAX_MEMORIES_LIMIT) { break; } } - if (index == 0) { + if (renderedCount == 0) { return; } - await _updateWidget( - text: ">>> Switching to next memory set, total: $index", - ); - } - - Future onLaunchFromWidget(int generatedId, BuildContext context) async { - _hasSyncedMemory = true; - await _memorySync(); - - await memoriesCacheService.goToMemoryFromGeneratedFileID( - context, - generatedId, + await _refreshWidget( + message: "Switched to next memory set, total: $renderedCount", ); } } diff --git a/mobile/lib/services/people_home_widget_service.dart b/mobile/lib/services/people_home_widget_service.dart index c66ad3a52d..f606f35ed2 100644 --- a/mobile/lib/services/people_home_widget_service.dart +++ b/mobile/lib/services/people_home_widget_service.dart @@ -1,67 +1,63 @@ -import "package:flutter/material.dart"; -import "package:fluttertoast/fluttertoast.dart"; -import "package:logging/logging.dart"; -import "package:photos/db/files_db.dart"; -import "package:photos/models/file/file.dart"; -import "package:photos/service_locator.dart"; -import "package:photos/services/home_widget_service.dart"; -import "package:photos/services/machine_learning/face_ml/person/person_service.dart"; -import "package:photos/services/search_service.dart"; -import "package:photos/services/sync/local_sync_service.dart"; -import "package:photos/ui/viewer/file/file_widget.dart"; -import "package:photos/utils/navigation_util.dart"; -import "package:shared_preferences/shared_preferences.dart"; -import "package:synchronized/synchronized.dart"; +import 'package:flutter/material.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import 'package:logging/logging.dart'; +import 'package:photos/db/files_db.dart'; +import 'package:photos/models/file/file.dart'; +import 'package:photos/service_locator.dart'; +import 'package:photos/services/home_widget_service.dart'; +import 'package:photos/services/machine_learning/face_ml/person/person_service.dart'; +import 'package:photos/services/search_service.dart'; +import 'package:photos/services/sync/local_sync_service.dart'; +import 'package:photos/ui/viewer/file/file_widget.dart'; +import 'package:photos/utils/navigation_util.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:synchronized/synchronized.dart'; class PeopleHomeWidgetService { - final Logger _logger = Logger((PeopleHomeWidgetService).toString()); - - PeopleHomeWidgetService._privateConstructor(); - - static const _selectedPeopleHWKey = "selectedPeopleHW"; - static const _androidClass = "EntePeopleWidgetProvider"; - static const _iOSClass = "EntePeopleWidget"; + // Constants + static const String SELECTED_PEOPLE_KEY = "selectedPeopleHW"; + static const String ANDROID_CLASS_NAME = "EntePeopleWidgetProvider"; + static const String IOS_CLASS_NAME = "EntePeopleWidget"; + static const String PEOPLE_CHANGED_KEY = "peopleChanged.widget"; + static const String TOTAL_PEOPLE_KEY = "totalPeople"; + static const int MAX_PEOPLE_LIMIT = 50; + // Singleton pattern static final PeopleHomeWidgetService instance = PeopleHomeWidgetService._privateConstructor(); + PeopleHomeWidgetService._privateConstructor(); + // Properties + final Logger _logger = Logger((PeopleHomeWidgetService).toString()); late final SharedPreferences _prefs; - final _peopleForceRefreshLock = Lock(); bool _hasSyncedPeople = false; - static const peopleChangedKey = "peopleChanged.widget"; - static const totalPeople = "totalPeople"; - - init(SharedPreferences prefs) { + // Initialization + void init(SharedPreferences prefs) { _prefs = prefs; } - Future _forcePeopleUpdate() async { - await _lockAndLoadPeople(); - await updatePeopleChanged(false); - } - + // Public methods List? getSelectedPeople() { - final selectedAlbums = _prefs.getStringList(_selectedPeopleHWKey); - return selectedAlbums; + return _prefs.getStringList(SELECTED_PEOPLE_KEY); } - Future setSelectedPeople( - List selectedAlbums, - ) async { - final oldValue = getSelectedPeople(); - await _prefs.setStringList(_selectedPeopleHWKey, selectedAlbums); - if (oldValue != null) { - final set1 = oldValue.toSet(); - final set2 = selectedAlbums.toSet(); + Future setSelectedPeople(List selectedPeople) async { + final previousSelection = getSelectedPeople(); + await _prefs.setStringList(SELECTED_PEOPLE_KEY, selectedPeople); - if (set1.containsAll(set2) && set2.containsAll(set1)) { - _logger.info("People not changed, doing nothing"); + if (previousSelection != null) { + final oldSet = previousSelection.toSet(); + final newSet = selectedPeople.toSet(); + + if (oldSet.containsAll(newSet) && newSet.containsAll(oldSet)) { + _logger.info("People selection unchanged, no update needed"); return; } } - _logger.info("People changed, updating widget"); + + _logger.info("People selection changed, updating widget"); await updatePeopleChanged(true); } @@ -71,38 +67,115 @@ class PeopleHomeWidgetService { final peopleWidgets = installedWidgets .where( - (element) => - element.androidClassName == _androidClass || - element.iOSKind == _iOSClass, + (widget) => + widget.androidClassName == ANDROID_CLASS_NAME || + widget.iOSKind == IOS_CLASS_NAME, ) .toList(); return peopleWidgets.length; } - Future _peopleSync() async { - final homeWidgetCount = await countHomeWidgets(); - if (homeWidgetCount == 0) { - _logger.warning("no home widget active"); + Future initHomeWidget(bool? forceFetchNewPeople) async { + if (await _hasAnyBlockers()) { + await clearWidget(); return; } - await _updateWidget(text: "refreshing from same set"); + await _peopleForceRefreshLock.synchronized(() async { + if (await _hasAnyBlockers()) { + return; + } + + final isPeopleEmpty = await _isWidgetEmpty(); + forceFetchNewPeople ??= await _shouldForceFetchPeople(isPeopleEmpty); + + _logger.warning( + "Initializing people widget: forceFetch: $forceFetchNewPeople, isPeopleEmpty: $isPeopleEmpty", + ); + + if (forceFetchNewPeople!) { + await _forcePeopleUpdate(); + } else if (!isPeopleEmpty) { + await _syncExistingPeople(); + } + }); } - Future hasAnyBlockers() async { + Future clearWidget() async { + if (await _isWidgetEmpty()) { + _logger.info("Widget already empty, nothing to clear"); + return; + } + + _logger.info("Clearing PeopleHomeWidget"); + await _setTotalPeople(null); + _hasSyncedPeople = false; + await _refreshWidget(message: "PeopleHomeWidget cleared & updated"); + } + + Future updatePeopleChanged(bool value) async { + _logger.info("Updating people changed flag to $value"); + await _prefs.setBool(PEOPLE_CHANGED_KEY, value); + } + + Future checkPendingPeopleSync({bool addDelay = true}) async { + if (addDelay) { + await Future.delayed(const Duration(seconds: 5)); + } + + final isPeopleEmpty = await _isWidgetEmpty(); + final needsForceFetch = await _shouldForceFetchPeople(isPeopleEmpty); + + if (_hasSyncedPeople && !needsForceFetch) { + _logger.info("People already synced, no action needed"); + return; + } + + await HomeWidgetService.instance.initHomeWidget(); + } + + Future onLaunchFromWidget(int fileId, BuildContext context) async { + _hasSyncedPeople = true; + await _syncExistingPeople(); + + final file = await FilesDB.instance.getFile(fileId); + if (file == null) { + _logger.warning("Cannot launch widget: file with ID $fileId not found"); + return; + } + + await routeToPage( + context, + FileWidget( + file, + tagPrefix: "peoplewidget", + ), + ); + } + + // Private methods + Future _forcePeopleUpdate() async { + await _loadAndRenderPeople(); + await updatePeopleChanged(false); + } + + Future _hasAnyBlockers() async { + // Check if first import is completed final hasCompletedFirstImport = LocalSyncService.instance.hasCompletedFirstImport(); if (!hasCompletedFirstImport) { - _logger.warning("first import not completed"); + _logger.warning("First import not completed"); return true; } + // Check ML consent if (!flagService.hasGrantedMLConsent) { _logger.warning("ML consent not granted"); return true; } + // Check if selected people exist final peopleIds = getSelectedPeople(); try { for (final id in peopleIds ?? []) { @@ -113,113 +186,66 @@ class PeopleHomeWidgetService { } } } catch (e) { - _logger.warning("Error looking people:", e); + _logger.warning("Error looking up people: $e"); return true; } - // TODO: If peopleIds are null then check if SearchFilter contains atleast one + // TODO: If peopleIds are null then check if SearchFilter contains at least one return false; } - Future initPeopleHW(bool? forceFetchNewPeople) async { - final result = await hasAnyBlockers(); - if (result) { - await clearWidget(); + Future _syncExistingPeople() async { + final homeWidgetCount = await countHomeWidgets(); + if (homeWidgetCount == 0) { + _logger.warning("No active home widgets found"); return; } - await _peopleForceRefreshLock.synchronized(() async { - final result = await hasAnyBlockers(); - if (result) { - return; - } - final isTotalEmpty = await _checkIfTotalEmpty(); - forceFetchNewPeople ??= await getForceFetchCondition(isTotalEmpty); - - _logger.warning( - "init people hw: forceFetch: $forceFetchNewPeople, isTotalEmpty: $isTotalEmpty", - ); - - if (forceFetchNewPeople!) { - await _forcePeopleUpdate(); - } else if (!isTotalEmpty) { - await _peopleSync(); - } - }); + await _refreshWidget(message: "Refreshing from existing people set"); } - Future clearWidget() async { - final isTotalEmpty = await _checkIfTotalEmpty(); - if (isTotalEmpty) { - _logger.info(">>> Nothing to clear"); - return; - } - - _logger.info("Clearing PeopleHomeWidget"); - - await _setTotal(null); - _hasSyncedPeople = false; - - await _updateWidget(text: "PeopleHomeWidget cleared & updated"); + Future _isWidgetEmpty() async { + final totalPeople = await _getTotalPeople(); + return totalPeople == 0 || totalPeople == null; } - Future updatePeopleChanged(bool value) async { - _logger.info("Updating people changed to $value"); - await _prefs.setBool(peopleChangedKey, value); - } - - Future _checkIfTotalEmpty() async { - final total = await _getTotal(); - return total == 0 || total == null; - } - - Future getForceFetchCondition(bool isTotalEmpty) async { - final peopleChanged = _prefs.getBool(peopleChangedKey); + Future _shouldForceFetchPeople(bool isPeopleEmpty) async { + final peopleChanged = _prefs.getBool(PEOPLE_CHANGED_KEY); return peopleChanged ?? true; } - Future checkPendingPeopleSync({bool addDelay = true}) async { - if (addDelay) await Future.delayed(const Duration(seconds: 5), () {}); - - final isTotalEmpty = await _checkIfTotalEmpty(); - final forceFetchNewPeople = await getForceFetchCondition(isTotalEmpty); - - if (_hasSyncedPeople && !forceFetchNewPeople) { - _logger.info(">>> People already synced"); - return; - } - await HomeWidgetService.instance.initHomeWidget(); - } - Future)>> _getPeople() async { final peopleIds = getSelectedPeople(); - final Map)> files = {}; + final Map)> peopleFiles = {}; + for (final id in peopleIds ?? []) { final person = await PersonService.instance.getPerson(id); if (person == null) { _logger.warning("Person not found for id: $id"); continue; } + final clusterFiles = await SearchService.instance.getClusterFilesForPersonID(id); - files[id] = ( + peopleFiles[id] = ( person.data.name, clusterFiles.entries.expand((e) => e.value).toList() ); } - return files; + return peopleFiles; } - Future _updateWidget({String? text}) async { + Future _refreshWidget({String? message}) async { await HomeWidgetService.instance.updateWidget( - androidClass: _androidClass, - iOSClass: _iOSClass, + androidClass: ANDROID_CLASS_NAME, + iOSClass: IOS_CLASS_NAME, ); + if (flagService.internalUser) { await Fluttertoast.showToast( - msg: "[i][pe] ${text ?? "PeopleHomeWidget updated"}", + msg: "[i][ppl] ${message ?? "PeopleHomeWidget updated"}", toastLength: Toast.LENGTH_SHORT, gravity: ToastGravity.BOTTOM, timeInSecForIosWeb: 1, @@ -228,101 +254,86 @@ class PeopleHomeWidgetService { fontSize: 16.0, ); } - _logger.info(">>> Home Widget updated, type: ${text ?? "normal"}"); + + _logger.info("Home Widget updated: ${message ?? "standard update"}"); } - Future _getTotal() async { - return HomeWidgetService.instance.getData(totalPeople); + Future _getTotalPeople() async { + return HomeWidgetService.instance.getData(TOTAL_PEOPLE_KEY); } - Future _setTotal(int? total) async => - await HomeWidgetService.instance.setData(totalPeople, total); + Future _setTotalPeople(int? total) async { + await HomeWidgetService.instance.setData(TOTAL_PEOPLE_KEY, total); + } - Future _lockAndLoadPeople() async { - final files = await _getPeople(); + Future _loadAndRenderPeople() async { + final peopleWithFiles = await _getPeople(); - if (files.isEmpty) { - _logger.warning("No files found, clearing everything"); + if (peopleWithFiles.isEmpty) { + _logger.warning("No files found for any people, clearing widget"); await clearWidget(); return; } - final total = await _getTotal(); - _logger.info(">>> Total people before: $total"); + final currentTotal = await _getTotalPeople(); + _logger.info("Current total people in widget: $currentTotal"); - int index = 0; + int renderedCount = 0; - for (final i in files.entries) { - for (final file in i.value.$2) { - final value = await HomeWidgetService.instance + for (final entry in peopleWithFiles.entries) { + final personId = entry.key; + final personName = entry.value.$1; + final personFiles = entry.value.$2; + + for (final file in personFiles) { + final renderResult = await HomeWidgetService.instance .renderFile( file, - "people_widget_$index", - i.value.$1, - i.key, + "people_widget_$renderedCount", + personName, + personId, ) - .catchError( - (e, sT) { - _logger.severe("Error rendering widget", e, sT); - return null; - }, - ); + .catchError((e, stackTrace) { + _logger.severe("Error rendering widget", e, stackTrace); + return null; + }); - if (value != null) { - final result = await hasAnyBlockers(); - if (result) { + if (renderResult != null) { + // Check for blockers again before continuing + if (await _hasAnyBlockers()) { return; } - await _setTotal(index); - if (index == 1) { - await _updateWidget( - text: "First people fetched. updating widget", + + await _setTotalPeople(renderedCount); + + // Show update toast after first item is rendered + if (renderedCount == 1) { + await _refreshWidget( + message: "First person fetched, updating widget", ); } - index++; - if (index >= 50) { - _logger.warning(">>> Max people limit reached"); + renderedCount++; + + // Limit the number of people to avoid performance issues + if (renderedCount >= MAX_PEOPLE_LIMIT) { + _logger.warning("Maximum people limit ($MAX_PEOPLE_LIMIT) reached"); break; } } } - if (index >= 50) { + if (renderedCount >= MAX_PEOPLE_LIMIT) { break; } } - if (index == 0) { + if (renderedCount == 0) { return; } - await _updateWidget( - text: ">>> Switching to next people set, total: $index", - ); - } - - Future onLaunchFromWidget(int generatedId, BuildContext context) async { - _hasSyncedPeople = true; - await _peopleSync(); - - // routeToPage( - // context, - // SearchResultPage(searchResult), - // ); - - final file = await FilesDB.instance.getFile(generatedId); - if (file == null) { - _logger.warning("onLaunchFromWidget: file is null"); - return; - } - // open generated id file preview - await routeToPage( - context, - FileWidget( - file, - tagPrefix: "peoplewidget", - ), + await _refreshWidget( + message: "Switched to next people set, total: $renderedCount", ); } } diff --git a/mobile/lib/ui/settings/debug/ml_debug_section_widget.dart b/mobile/lib/ui/settings/debug/ml_debug_section_widget.dart index 1a78f7c851..4383153cc5 100644 --- a/mobile/lib/ui/settings/debug/ml_debug_section_widget.dart +++ b/mobile/lib/ui/settings/debug/ml_debug_section_widget.dart @@ -328,7 +328,7 @@ class _MLDebugSectionWidgetState extends State { trailingIcon: Icons.chevron_right_outlined, trailingIconIsMuted: true, onTap: () async => - await MemoryHomeWidgetService.instance.initMemoryHW(true), + await MemoryHomeWidgetService.instance.initMemoryHomeWidget(true), ), sectionOptionSpacing, MenuItemWidget( @@ -338,8 +338,8 @@ class _MLDebugSectionWidgetState extends State { pressedColor: getEnteColorScheme(context).fillFaint, trailingIcon: Icons.chevron_right_outlined, trailingIconIsMuted: true, - onTap: () async => - await MemoryHomeWidgetService.instance.initMemoryHW(false), + onTap: () async => await MemoryHomeWidgetService.instance + .initMemoryHomeWidget(false), ), sectionOptionSpacing, MenuItemWidget( diff --git a/mobile/lib/ui/settings/gallery_settings_screen.dart b/mobile/lib/ui/settings/gallery_settings_screen.dart index 3e4e86e1d0..2fc5864cc3 100644 --- a/mobile/lib/ui/settings/gallery_settings_screen.dart +++ b/mobile/lib/ui/settings/gallery_settings_screen.dart @@ -109,7 +109,7 @@ class _GallerySettingsScreenState extends State { ); unawaited( MemoryHomeWidgetService.instance - .initMemoryHW(true), + .initMemoryHomeWidget(true), ); setState(() {}); }, diff --git a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart index 121267207c..d8c680325f 100644 --- a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart @@ -47,7 +47,8 @@ class _AlbumsWidgetSettingsState extends State { } Future selectExisting() async { - final selectedAlbums = AlbumHomeWidgetService.instance.getSelectedAlbums(); + final selectedAlbums = + AlbumHomeWidgetService.instance.getSelectedAlbumIds(); final albums = {}; if (selectedAlbums != null) { From 619f6795e2c6497e6cda19265028d2adf060a0af Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 21 May 2025 01:44:12 +0530 Subject: [PATCH 026/316] fix: don't show un-named person --- .../ui/viewer/search/result/people_section_all_page.dart | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/mobile/lib/ui/viewer/search/result/people_section_all_page.dart b/mobile/lib/ui/viewer/search/result/people_section_all_page.dart index 8bd8198783..6e1a26aa66 100644 --- a/mobile/lib/ui/viewer/search/result/people_section_all_page.dart +++ b/mobile/lib/ui/viewer/search/result/people_section_all_page.dart @@ -5,6 +5,7 @@ import "package:flutter_animate/flutter_animate.dart"; import "package:photos/events/event.dart"; import "package:photos/generated/l10n.dart"; import "package:photos/models/search/generic_search_result.dart"; +import "package:photos/models/search/hierarchical/face_filter.dart"; import "package:photos/models/search/search_types.dart"; import "package:photos/models/selected_people.dart"; import "package:photos/theme/ente_theme.dart"; @@ -94,6 +95,14 @@ class _PeopleSectionAllWidgetState extends State { return Center(child: Text(S.of(context).noResultsFound + '.')); } else { final results = snapshot.data!; + if (widget.namedOnly) { + results.removeWhere( + (element) => + (element.hierarchicalSearchFilter as FaceFilter).personId == + null, + ); + } + final screenWidth = MediaQuery.of(context).size.width; final crossAxisCount = (screenWidth / 100).floor(); From 5d14ca8439239fd2f3630220579e60ffe0a446f7 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 21 May 2025 02:15:23 +0530 Subject: [PATCH 027/316] fix: handle PeopleChangedEvent, add better limit for files, better behavior on save --- mobile/lib/app.dart | 9 +++++ .../services/album_home_widget_service.dart | 9 +++-- .../services/memory_home_widget_service.dart | 9 +++-- .../services/people_home_widget_service.dart | 36 +++++++++++++++---- .../widgets/albums_widget_settings.dart | 3 +- .../widgets/memories_widget_settings.dart | 3 +- .../widgets/people_widget_settings.dart | 3 +- 7 files changed, 53 insertions(+), 19 deletions(-) diff --git a/mobile/lib/app.dart b/mobile/lib/app.dart index 3b8e3346d8..a01071654e 100644 --- a/mobile/lib/app.dart +++ b/mobile/lib/app.dart @@ -13,12 +13,14 @@ import 'package:media_extension/media_extension_action_types.dart'; import "package:photos/core/event_bus.dart"; import 'package:photos/ente_theme_data.dart'; import "package:photos/events/memories_changed_event.dart"; +import "package:photos/events/people_changed_event.dart"; import "package:photos/generated/l10n.dart"; import "package:photos/l10n/l10n.dart"; import "package:photos/service_locator.dart"; import 'package:photos/services/app_lifecycle_service.dart'; import "package:photos/services/home_widget_service.dart"; import "package:photos/services/memory_home_widget_service.dart"; +import "package:photos/services/people_home_widget_service.dart"; import 'package:photos/services/sync/sync_service.dart'; import 'package:photos/ui/tabs/home_widget.dart'; import "package:photos/ui/viewer/actions/file_viewer.dart"; @@ -51,6 +53,7 @@ class _EnteAppState extends State with WidgetsBindingObserver { final _logger = Logger("EnteAppState"); late Locale? locale; late StreamSubscription _memoriesChangedSubscription; + late StreamSubscription _peopleChangedSubscription; @override void initState() { @@ -69,6 +72,11 @@ class _EnteAppState extends State with WidgetsBindingObserver { await MemoryHomeWidgetService.instance.memoryChanged(); }, ); + _peopleChangedSubscription = Bus.instance.on().listen( + (event) async { + await PeopleHomeWidgetService.instance.peopleChanged(); + }, + ); } @override @@ -168,6 +176,7 @@ class _EnteAppState extends State with WidgetsBindingObserver { void dispose() { WidgetsBinding.instance.removeObserver(this); _memoriesChangedSubscription.cancel(); + _peopleChangedSubscription.cancel(); super.dispose(); } diff --git a/mobile/lib/services/album_home_widget_service.dart b/mobile/lib/services/album_home_widget_service.dart index e8d8a3e00d..4b76946926 100644 --- a/mobile/lib/services/album_home_widget_service.dart +++ b/mobile/lib/services/album_home_widget_service.dart @@ -371,6 +371,9 @@ class AlbumHomeWidgetService { int renderedCount = 0; + final bool isWidgetPresent = await countHomeWidgets() > 0; + final limit = isWidgetPresent ? MAX_ALBUMS_LIMIT : 5; + for (final entry in albumsWithFiles.entries) { final albumId = entry.key; final albumName = entry.value.$1; @@ -407,14 +410,14 @@ class AlbumHomeWidgetService { renderedCount++; // Limit the number of albums to avoid performance issues - if (renderedCount >= MAX_ALBUMS_LIMIT) { - _logger.warning("Maximum albums limit ($MAX_ALBUMS_LIMIT) reached"); + if (renderedCount >= limit) { + _logger.warning("Maximum albums limit ($limit) reached"); break; } } } - if (renderedCount >= MAX_ALBUMS_LIMIT) { + if (renderedCount >= limit) { break; } } diff --git a/mobile/lib/services/memory_home_widget_service.dart b/mobile/lib/services/memory_home_widget_service.dart index 7c3fa5b7e3..56dcb9ad45 100644 --- a/mobile/lib/services/memory_home_widget_service.dart +++ b/mobile/lib/services/memory_home_widget_service.dart @@ -291,6 +291,9 @@ class MemoryHomeWidgetService { int renderedCount = 0; + final bool isWidgetPresent = await countHomeWidgets() > 0; + final limit = isWidgetPresent ? MAX_MEMORIES_LIMIT : 5; + for (final entry in memoriesWithFiles.entries) { final memoryTitle = entry.key; final memoryFiles = entry.value; @@ -321,16 +324,16 @@ class MemoryHomeWidgetService { renderedCount++; // Limit the number of memories to avoid performance issues - if (renderedCount >= MAX_MEMORIES_LIMIT) { + if (renderedCount >= limit) { _logger.warning( - "Maximum memories limit ($MAX_MEMORIES_LIMIT) reached", + "Maximum memories limit ($limit) reached", ); break; } } } - if (renderedCount >= MAX_MEMORIES_LIMIT) { + if (renderedCount >= limit) { break; } } diff --git a/mobile/lib/services/people_home_widget_service.dart b/mobile/lib/services/people_home_widget_service.dart index f606f35ed2..3e7e5b73e4 100644 --- a/mobile/lib/services/people_home_widget_service.dart +++ b/mobile/lib/services/people_home_widget_service.dart @@ -135,6 +135,23 @@ class PeopleHomeWidgetService { await HomeWidgetService.instance.initHomeWidget(); } + Future peopleChanged() async { + await updatePeopleChanged(true); + + final cachedMemories = await _getPeople(); + final currentTotal = cachedMemories.length; + final existingTotal = await _getTotalPeople() ?? 0; + + if (existingTotal == currentTotal && existingTotal == 0) { + await updatePeopleChanged(false); + _logger.info("People empty, no update needed"); + return; + } + + _logger.info("People changed, updating widget"); + await initHomeWidget(true); + } + Future onLaunchFromWidget(int fileId, BuildContext context) async { _hasSyncedPeople = true; await _syncExistingPeople(); @@ -228,10 +245,12 @@ class PeopleHomeWidgetService { final clusterFiles = await SearchService.instance.getClusterFilesForPersonID(id); - peopleFiles[id] = ( - person.data.name, - clusterFiles.entries.expand((e) => e.value).toList() - ); + final files = clusterFiles.entries.expand((e) => e.value).toList(); + if (files.isEmpty) { + _logger.warning("No files found for person: ${person.data.name}"); + continue; + } + peopleFiles[id] = (person.data.name, files); } return peopleFiles; @@ -280,6 +299,9 @@ class PeopleHomeWidgetService { int renderedCount = 0; + final bool isWidgetPresent = await countHomeWidgets() > 0; + final limit = isWidgetPresent ? MAX_PEOPLE_LIMIT : 5; + for (final entry in peopleWithFiles.entries) { final personId = entry.key; final personName = entry.value.$1; @@ -316,14 +338,14 @@ class PeopleHomeWidgetService { renderedCount++; // Limit the number of people to avoid performance issues - if (renderedCount >= MAX_PEOPLE_LIMIT) { - _logger.warning("Maximum people limit ($MAX_PEOPLE_LIMIT) reached"); + if (renderedCount >= limit) { + _logger.warning("Maximum people limit ($limit) reached"); break; } } } - if (renderedCount >= MAX_PEOPLE_LIMIT) { + if (renderedCount >= limit) { break; } } diff --git a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart index d8c680325f..d9a3a83b34 100644 --- a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart @@ -106,8 +106,7 @@ class _AlbumsWidgetSettingsState extends State { await AlbumHomeWidgetService.instance .setSelectedAlbums(albums); Navigator.pop(context); - await AlbumHomeWidgetService.instance - .checkPendingAlbumsSync(); + await AlbumHomeWidgetService.instance.albumsChanged(); } : null, isDisabled: _albums.isEmpty, diff --git a/mobile/lib/ui/settings/widgets/memories_widget_settings.dart b/mobile/lib/ui/settings/widgets/memories_widget_settings.dart index 75ba7c587a..d4ca2d4d69 100644 --- a/mobile/lib/ui/settings/widgets/memories_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/memories_widget_settings.dart @@ -83,8 +83,7 @@ class _MemoriesWidgetSettingsState extends State { .setSelectedMLMemories(isSmartMemoriesEnabled!); await MemoryHomeWidgetService.instance .setSelectedOnThisDayMemories(isOnThisDayMemoriesEnabled!); - await MemoryHomeWidgetService.instance - .checkPendingMemorySync(addDelay: true); + await MemoryHomeWidgetService.instance.memoryChanged(); } @override diff --git a/mobile/lib/ui/settings/widgets/people_widget_settings.dart b/mobile/lib/ui/settings/widgets/people_widget_settings.dart index 3819a36aa0..09f376c4d6 100644 --- a/mobile/lib/ui/settings/widgets/people_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/people_widget_settings.dart @@ -80,9 +80,8 @@ class _PeopleWidgetSettingsState extends State { : () async { await PeopleHomeWidgetService.instance .setSelectedPeople(people.toList()); - await PeopleHomeWidgetService.instance - .checkPendingPeopleSync(addDelay: false); Navigator.pop(context); + await PeopleHomeWidgetService.instance.peopleChanged(); }, ), ) From d449bd0f9026ddff7749c79ee5e7521becd26e94 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 21 May 2025 02:16:48 +0530 Subject: [PATCH 028/316] chore: update version --- mobile/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index 0f39719831..0c74d44ee5 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -12,7 +12,7 @@ description: ente photos application # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 1.0.14+1045 +version: 1.0.16+1046 publish_to: none environment: From 7d5bed0493cd1f68fd968c1eecdb54772ae5769b Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 21 May 2025 02:20:43 +0530 Subject: [PATCH 029/316] fix: iOS build --- .../{AppIcon.appiconset => IconGreen.appiconset}/Contents.json | 0 .../{AppIcon.appiconset => IconGreen.appiconset}/Contents.json | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename mobile/ios/EnteAlbumWidget/Assets.xcassets/{AppIcon.appiconset => IconGreen.appiconset}/Contents.json (100%) rename mobile/ios/EntePeopleWidget/Assets.xcassets/{AppIcon.appiconset => IconGreen.appiconset}/Contents.json (100%) diff --git a/mobile/ios/EnteAlbumWidget/Assets.xcassets/AppIcon.appiconset/Contents.json b/mobile/ios/EnteAlbumWidget/Assets.xcassets/IconGreen.appiconset/Contents.json similarity index 100% rename from mobile/ios/EnteAlbumWidget/Assets.xcassets/AppIcon.appiconset/Contents.json rename to mobile/ios/EnteAlbumWidget/Assets.xcassets/IconGreen.appiconset/Contents.json diff --git a/mobile/ios/EntePeopleWidget/Assets.xcassets/AppIcon.appiconset/Contents.json b/mobile/ios/EntePeopleWidget/Assets.xcassets/IconGreen.appiconset/Contents.json similarity index 100% rename from mobile/ios/EntePeopleWidget/Assets.xcassets/AppIcon.appiconset/Contents.json rename to mobile/ios/EntePeopleWidget/Assets.xcassets/IconGreen.appiconset/Contents.json From a4ebf972e181c5fc98b651f1c8a314537386d749 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 21 May 2025 02:56:32 +0530 Subject: [PATCH 030/316] fix: count home widget for android --- .../lib/services/album_home_widget_service.dart | 16 ++++------------ mobile/lib/services/home_widget_service.dart | 16 ++++++++++++++-- .../lib/services/memory_home_widget_service.dart | 16 ++++------------ .../lib/services/people_home_widget_service.dart | 16 ++++------------ 4 files changed, 26 insertions(+), 38 deletions(-) diff --git a/mobile/lib/services/album_home_widget_service.dart b/mobile/lib/services/album_home_widget_service.dart index 4b76946926..951d018376 100644 --- a/mobile/lib/services/album_home_widget_service.dart +++ b/mobile/lib/services/album_home_widget_service.dart @@ -90,18 +90,10 @@ class AlbumHomeWidgetService { } Future countHomeWidgets() async { - final installedWidgets = - await HomeWidgetService.instance.getInstalledWidgets(); - - final albumWidgets = installedWidgets - .where( - (widget) => - widget.androidClassName == ANDROID_CLASS_NAME || - widget.iOSKind == IOS_CLASS_NAME, - ) - .toList(); - - return albumWidgets.length; + return await HomeWidgetService.instance.countHomeWidgets( + ANDROID_CLASS_NAME, + IOS_CLASS_NAME, + ); } Future clearWidget() async { diff --git a/mobile/lib/services/home_widget_service.dart b/mobile/lib/services/home_widget_service.dart index fd37f12dc3..cc3a7debf9 100644 --- a/mobile/lib/services/home_widget_service.dart +++ b/mobile/lib/services/home_widget_service.dart @@ -97,8 +97,20 @@ class HomeWidgetService { return const Size(THUMBNAIL_SIZE, THUMBNAIL_SIZE); } - Future countHomeWidgets() async { - return (await getInstalledWidgets()).length; + Future countHomeWidgets( + String androidClass, + String iOSClass, + ) async { + final installedWidgets = await getInstalledWidgets(); + final relevantWidgets = installedWidgets + .where( + (widget) => + widget.androidClassName == "io.ente.photos.$androidClass" || + widget.iOSKind == iOSClass, + ) + .toList(); + + return relevantWidgets.length; } Future> getInstalledWidgets() async { diff --git a/mobile/lib/services/memory_home_widget_service.dart b/mobile/lib/services/memory_home_widget_service.dart index 56dcb9ad45..8076f75cf7 100644 --- a/mobile/lib/services/memory_home_widget_service.dart +++ b/mobile/lib/services/memory_home_widget_service.dart @@ -142,18 +142,10 @@ class MemoryHomeWidgetService { } Future countHomeWidgets() async { - final installedWidgets = - await HomeWidgetService.instance.getInstalledWidgets(); - - final memoryWidgets = installedWidgets - .where( - (widget) => - widget.androidClassName == ANDROID_CLASS_NAME || - widget.iOSKind == IOS_CLASS_NAME, - ) - .toList(); - - return memoryWidgets.length; + return await HomeWidgetService.instance.countHomeWidgets( + ANDROID_CLASS_NAME, + IOS_CLASS_NAME, + ); } Future onLaunchFromWidget(int generatedId, BuildContext context) async { diff --git a/mobile/lib/services/people_home_widget_service.dart b/mobile/lib/services/people_home_widget_service.dart index 3e7e5b73e4..f20dc88237 100644 --- a/mobile/lib/services/people_home_widget_service.dart +++ b/mobile/lib/services/people_home_widget_service.dart @@ -62,18 +62,10 @@ class PeopleHomeWidgetService { } Future countHomeWidgets() async { - final installedWidgets = - await HomeWidgetService.instance.getInstalledWidgets(); - - final peopleWidgets = installedWidgets - .where( - (widget) => - widget.androidClassName == ANDROID_CLASS_NAME || - widget.iOSKind == IOS_CLASS_NAME, - ) - .toList(); - - return peopleWidgets.length; + return await HomeWidgetService.instance.countHomeWidgets( + ANDROID_CLASS_NAME, + IOS_CLASS_NAME, + ); } Future initHomeWidget(bool? forceFetchNewPeople) async { From a1e56a457f2480124327d4d00f80a54384172493 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 21 May 2025 03:04:21 +0530 Subject: [PATCH 031/316] fix: update people default illustration --- mobile/assets/2.0x/people-widget-static.png | Bin 21417 -> 34285 bytes mobile/assets/3.0x/people-widget-static.png | Bin 33082 -> 53089 bytes mobile/assets/people-widget-static.png | Bin 10020 -> 16089 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/mobile/assets/2.0x/people-widget-static.png b/mobile/assets/2.0x/people-widget-static.png index 6fbaf4b71ef6243b81a14f4df5941ba2334451f4..1e619b26e901ceb660d22467a8539a726f2aaa0a 100644 GIT binary patch literal 34285 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 literal 21417 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 diff --git a/mobile/assets/3.0x/people-widget-static.png b/mobile/assets/3.0x/people-widget-static.png index c27fc0f8abd3f1261f8b9f76ff9c5d0bf74936fd..aac3ee642cf2f61bdd2c559e667bca77562cfd12 100644 GIT binary patch literal 53089 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 LNkvXXu0mjfDQ0Jo literal 33082 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 diff --git a/mobile/assets/people-widget-static.png b/mobile/assets/people-widget-static.png index bfdadee7d86f15349601c2de07505a03eece5944..038f8eeb81497c7b1ddce7e7557bdf303626bd1b 100644 GIT binary patch literal 16089 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

      Iy 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 literal 10020 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 Stv`#}pukc}lGWly!T$sHWDtx1 From cde6ebfa3934241114e5fcd809104236a6f13957 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 21 May 2025 03:12:19 +0530 Subject: [PATCH 032/316] fix: pass and parse mainKey correctly --- .../ente/photos/EnteAlbumsWidgetProvider.kt | 10 ++++++++-- .../ente/photos/EntePeopleWidgetProvider.kt | 10 ++++++++-- .../ios/EnteAlbumWidget/EnteAlbumWidget.swift | 19 ++++++++++++------- .../EntePeopleWidget/EntePeopleWidget.swift | 19 ++++++++++++------- mobile/lib/services/home_widget_service.dart | 2 ++ .../services/people_home_widget_service.dart | 6 +++++- 6 files changed, 47 insertions(+), 19 deletions(-) diff --git a/mobile/android/app/src/main/kotlin/io/ente/photos/EnteAlbumsWidgetProvider.kt b/mobile/android/app/src/main/kotlin/io/ente/photos/EnteAlbumsWidgetProvider.kt index 5f0ae9456f..3982311593 100644 --- a/mobile/android/app/src/main/kotlin/io/ente/photos/EnteAlbumsWidgetProvider.kt +++ b/mobile/android/app/src/main/kotlin/io/ente/photos/EnteAlbumsWidgetProvider.kt @@ -19,7 +19,12 @@ import kotlinx.serialization.decodeFromString import kotlinx.serialization.json.Json @Serializable -data class AlbumsFileData(val title: String?, val subText: String?, val generatedId: Int?) +data class AlbumsFileData( + val title: String?, + val subText: String?, + val generatedId: Int?, + val mainKey: String? +) class EnteAlbumsWidgetProvider : HomeWidgetProvider() { override fun onUpdate( @@ -65,10 +70,11 @@ class EnteAlbumsWidgetProvider : HomeWidgetProvider() { val title = decoded?.title val subText = decoded?.subText val generatedId = decoded?.generatedId + val mainKey = decoded?.mainKey val deepLinkUri = Uri.parse( - "albumwidget://message?generatedId=${generatedId}&homeWidget" + "albumwidget://message?generatedId=${generatedId}&mainKey=${mainKey}&homeWidget" ) val pendingIntent = diff --git a/mobile/android/app/src/main/kotlin/io/ente/photos/EntePeopleWidgetProvider.kt b/mobile/android/app/src/main/kotlin/io/ente/photos/EntePeopleWidgetProvider.kt index 082810a654..e885d48370 100644 --- a/mobile/android/app/src/main/kotlin/io/ente/photos/EntePeopleWidgetProvider.kt +++ b/mobile/android/app/src/main/kotlin/io/ente/photos/EntePeopleWidgetProvider.kt @@ -19,7 +19,12 @@ import kotlinx.serialization.decodeFromString import kotlinx.serialization.json.Json @Serializable -data class PeopleFileData(val title: String?, val subText: String?, val generatedId: Int?) +data class PeopleFileData( + val title: String?, + val subText: String?, + val generatedId: Int?, + val mainKey: String? +) class EntePeopleWidgetProvider : HomeWidgetProvider() { override fun onUpdate( @@ -65,10 +70,11 @@ class EntePeopleWidgetProvider : HomeWidgetProvider() { val title = decoded?.title val subText = decoded?.subText val generatedId = decoded?.generatedId + val mainKey = decoded?.mainKey val deepLinkUri = Uri.parse( - "peoplewidget://message?generatedId=${generatedId}&homeWidget" + "peoplewidget://message?generatedId=${generatedId}&mainKey=${mainKey}&homeWidget" ) val pendingIntent = diff --git a/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift b/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift index bb5e3ac14d..efc1b600c4 100644 --- a/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift +++ b/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift @@ -19,14 +19,14 @@ struct Provider: TimelineProvider { func placeholder(in _: Context) -> FileEntry { FileEntry( date: Date(), index: nil, imageData: nil, title: "Title", subTitle: "Sub Title", - generatedId: nil) + generatedId: nil, mainKey: nil) } func getSnapshot(in _: Context, completion: @escaping (FileEntry) -> Void) { let entry = FileEntry( date: Date(), index: -2, imageData: nil, title: "Favorites", subTitle: "May 3, 2021", - generatedId: nil) + generatedId: nil, mainKey: nil) completion(entry) } @@ -56,15 +56,17 @@ struct Provider: TimelineProvider { let generatedId = dictionary?["generatedId"] as? Int let subTitle = dictionary?["subText"] as? String let title = dictionary?["title"] as? String + let mainKey = dictionary?["mainKey"] as? String let entry = FileEntry( date: entryDate, index: randomInt, imageData: imageData, title: title, - subTitle: subTitle, generatedId: generatedId) + subTitle: subTitle, generatedId: generatedId, mainKey: mainKey) entries.append(entry) } } else { let entry = FileEntry( - date: Date(), index: -1, imageData: nil, title: nil, subTitle: nil, generatedId: nil + date: Date(), index: -1, imageData: nil, title: nil, subTitle: nil, + generatedId: nil, mainKey: nil ) entries.append(entry) } @@ -85,6 +87,7 @@ struct FileEntry: TimelineEntry { let title: String? let subTitle: String? var generatedId: Int? + var mainKey: String? } struct EnteAlbumWidgetEntryView: View { @@ -207,7 +210,7 @@ struct EnteAlbumWidgetEntryView: View { .widgetURL( URL( string: - "albumwidget://message?generatedId=\(entry.generatedId != nil ? String(entry.generatedId!) : "nan")&homeWidget" + "albumwidget://message?generatedId=\(entry.generatedId != nil ? String(entry.generatedId!) : "nan")&mainKey=\(entry.mainKey != nil ? entry.mainKey! : "nan")&homeWidget" ) ) } @@ -238,9 +241,11 @@ struct EnteAlbumWidget: Widget { EnteAlbumWidget() } timeline: { FileEntry( - date: .now, index: -2, imageData: nil, title: nil, subTitle: nil, generatedId: nil) + date: .now, index: -2, imageData: nil, title: nil, subTitle: nil, generatedId: nil, + mainKey: nil) FileEntry( - date: .now, index: -2, imageData: nil, title: nil, subTitle: nil, generatedId: nil) + date: .now, index: -2, imageData: nil, title: nil, subTitle: nil, generatedId: nil, + mainKey: nil) } extension View { diff --git a/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift b/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift index 4f4b24e9f9..719b97be7c 100644 --- a/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift +++ b/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift @@ -19,14 +19,14 @@ struct Provider: TimelineProvider { func placeholder(in _: Context) -> FileEntry { FileEntry( date: Date(), index: nil, imageData: nil, title: "Title", subTitle: "Sub Title", - generatedId: nil) + generatedId: nil, mainKey: nil) } func getSnapshot(in _: Context, completion: @escaping (FileEntry) -> Void) { let entry = FileEntry( date: Date(), index: -2, imageData: nil, title: "Jane Fonda", subTitle: "Sep 23, 2021", - generatedId: nil) + generatedId: nil, mainKey: nil) completion(entry) } @@ -56,15 +56,17 @@ struct Provider: TimelineProvider { let generatedId = dictionary?["generatedId"] as? Int let subTitle = dictionary?["subText"] as? String let title = dictionary?["title"] as? String + let mainKey = dictionary?["mainKey"] as? String let entry = FileEntry( date: entryDate, index: randomInt, imageData: imageData, title: title, - subTitle: subTitle, generatedId: generatedId) + subTitle: subTitle, generatedId: generatedId, mainKey: mainKey) entries.append(entry) } } else { let entry = FileEntry( - date: Date(), index: -1, imageData: nil, title: nil, subTitle: nil, generatedId: nil + date: Date(), index: -1, imageData: nil, title: nil, subTitle: nil, + generatedId: nil, mainKey: nil ) entries.append(entry) } @@ -85,6 +87,7 @@ struct FileEntry: TimelineEntry { let title: String? let subTitle: String? var generatedId: Int? + var mainKey: String? } struct EntePeopleWidgetEntryView: View { @@ -207,7 +210,7 @@ struct EntePeopleWidgetEntryView: View { .widgetURL( URL( string: - "peoplewidget://message?generatedId=\(entry.generatedId != nil ? String(entry.generatedId!) : "nan")&homeWidget" + "peoplewidget://message?generatedId=\(entry.generatedId != nil ? String(entry.generatedId!) : "nan")&mainKey=\(entry.mainKey != nil ? entry.mainKey! : "nan")&homeWidget" ) ) } @@ -238,9 +241,11 @@ struct EntePeopleWidget: Widget { EntePeopleWidget() } timeline: { FileEntry( - date: .now, index: -2, imageData: nil, title: nil, subTitle: nil, generatedId: nil) + date: .now, index: -2, imageData: nil, title: nil, subTitle: nil, generatedId: nil, + mainKey: nil) FileEntry( - date: .now, index: -2, imageData: nil, title: nil, subTitle: nil, generatedId: nil) + date: .now, index: -2, imageData: nil, title: nil, subTitle: nil, generatedId: nil, + mainKey: nil) } extension View { diff --git a/mobile/lib/services/home_widget_service.dart b/mobile/lib/services/home_widget_service.dart index cc3a7debf9..439d94c9bd 100644 --- a/mobile/lib/services/home_widget_service.dart +++ b/mobile/lib/services/home_widget_service.dart @@ -239,8 +239,10 @@ class HomeWidgetService { case PEOPLE_WIDGET_SCHEME: _logger.info("Launching app from people widget"); + final personId = uri.queryParameters[MAIN_KEY_PARAM] ?? ""; await PeopleHomeWidgetService.instance.onLaunchFromWidget( generatedId, + personId, context, ); break; diff --git a/mobile/lib/services/people_home_widget_service.dart b/mobile/lib/services/people_home_widget_service.dart index f20dc88237..771963681a 100644 --- a/mobile/lib/services/people_home_widget_service.dart +++ b/mobile/lib/services/people_home_widget_service.dart @@ -144,7 +144,11 @@ class PeopleHomeWidgetService { await initHomeWidget(true); } - Future onLaunchFromWidget(int fileId, BuildContext context) async { + Future onLaunchFromWidget( + int fileId, + String personId, + BuildContext context, + ) async { _hasSyncedPeople = true; await _syncExistingPeople(); From ace375b7f618eeb3d947ed692a930786ae46d56b Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 21 May 2025 03:27:38 +0530 Subject: [PATCH 033/316] fix: get effective selected people code --- mobile/lib/models/search/search_types.dart | 10 ++--- .../services/people_home_widget_service.dart | 37 +++++++++++++++++-- .../result/people_section_all_page.dart | 37 ++++++++++++------- 3 files changed, 61 insertions(+), 23 deletions(-) diff --git a/mobile/lib/models/search/search_types.dart b/mobile/lib/models/search/search_types.dart index 2ee26067d2..3b82b87d20 100644 --- a/mobile/lib/models/search/search_types.dart +++ b/mobile/lib/models/search/search_types.dart @@ -227,21 +227,21 @@ extension SectionTypeExtensions on SectionType { } Future> getData( - BuildContext context, { + BuildContext? context, { int? limit, }) { switch (this) { case SectionType.face: return SearchService.instance.getAllFace(limit); case SectionType.magic: - return SearchService.instance.getMagicSectionResults(context); + return SearchService.instance.getMagicSectionResults(context!); case SectionType.moment: if (flagService.internalUser) { // TODO: lau: remove this whole smart memories and moment altogether - return SearchService.instance.smartMemories(context, limit); + return SearchService.instance.smartMemories(context!, limit); } - return SearchService.instance.getRandomMomentsSearchResults(context); + return SearchService.instance.getRandomMomentsSearchResults(context!); case SectionType.location: return SearchService.instance.getAllLocationTags(limit); @@ -254,7 +254,7 @@ extension SectionTypeExtensions on SectionType { case SectionType.fileTypesAndExtension: return SearchService.instance - .getAllFileTypesAndExtensionsResults(context, limit); + .getAllFileTypesAndExtensionsResults(context!, limit); } } diff --git a/mobile/lib/services/people_home_widget_service.dart b/mobile/lib/services/people_home_widget_service.dart index 771963681a..611a9c10e6 100644 --- a/mobile/lib/services/people_home_widget_service.dart +++ b/mobile/lib/services/people_home_widget_service.dart @@ -3,6 +3,9 @@ import 'package:fluttertoast/fluttertoast.dart'; import 'package:logging/logging.dart'; import 'package:photos/db/files_db.dart'; import 'package:photos/models/file/file.dart'; +import "package:photos/models/search/generic_search_result.dart"; +import "package:photos/models/search/hierarchical/face_filter.dart"; +import "package:photos/models/search/search_types.dart"; import 'package:photos/service_locator.dart'; import 'package:photos/services/home_widget_service.dart'; import 'package:photos/services/machine_learning/face_ml/person/person_service.dart'; @@ -189,9 +192,9 @@ class PeopleHomeWidgetService { } // Check if selected people exist - final peopleIds = getSelectedPeople(); + final peopleIds = await _getEffectiveSelectedPeopleIds(); try { - for (final id in peopleIds ?? []) { + for (final id in peopleIds) { final person = await PersonService.instance.getPerson(id); if (person == null) { _logger.warning("Person not found for id: $id"); @@ -228,11 +231,37 @@ class PeopleHomeWidgetService { return peopleChanged ?? true; } + Future> _getEffectiveSelectedPeopleIds() async { + var peopleIds = getSelectedPeople(); + + if (peopleIds == null || peopleIds.isEmpty) { + // Search Filter with face and pick top two faces + final searchFilter = await SectionType.face.getData(null).then( + (value) => List.from(value).where( + (element) => + (element.hierarchicalSearchFilter as FaceFilter).personId != + null, + ), + ); + + if (searchFilter.isNotEmpty) { + peopleIds = searchFilter + .take(2) + .map((e) => (e.hierarchicalSearchFilter as FaceFilter).personId!) + .toList(); + } else { + _logger.warning("No selected people found"); + } + } + + return peopleIds ?? []; + } + Future)>> _getPeople() async { - final peopleIds = getSelectedPeople(); + final peopleIds = await _getEffectiveSelectedPeopleIds(); final Map)> peopleFiles = {}; - for (final id in peopleIds ?? []) { + for (final id in peopleIds) { final person = await PersonService.instance.getPerson(id); if (person == null) { _logger.warning("Person not found for id: $id"); diff --git a/mobile/lib/ui/viewer/search/result/people_section_all_page.dart b/mobile/lib/ui/viewer/search/result/people_section_all_page.dart index 6e1a26aa66..a24e02d63b 100644 --- a/mobile/lib/ui/viewer/search/result/people_section_all_page.dart +++ b/mobile/lib/ui/viewer/search/result/people_section_all_page.dart @@ -50,24 +50,41 @@ class _PeopleSectionAllWidgetState extends State { @override void initState() { super.initState(); - sectionData = SectionType.face.getData(context).then( - (value) => List.from(value), - ); + sectionData = getResults(); final streamsToListenTo = SectionType.face.viewAllUpdateEvents(); for (Stream stream in streamsToListenTo) { streamSubscriptions.add( stream.listen((event) async { setState(() { - sectionData = SectionType.face.getData(context).then( - (value) => List.from(value), - ); + sectionData = getResults(); }); }), ); } } + Future> getResults() async { + final results = + List.from(await SectionType.face.getData(context)); + + if (widget.namedOnly) { + results.removeWhere( + (element) => + (element.hierarchicalSearchFilter as FaceFilter).personId == null, + ); + if (widget.selectedPeople?.personIds.isEmpty ?? false) { + widget.selectedPeople!.select( + results + .take(2) + .map((e) => (e.hierarchicalSearchFilter as FaceFilter).personId!) + .toSet(), + ); + } + } + return results; + } + @override void dispose() { for (var subscriptions in streamSubscriptions) { @@ -95,14 +112,6 @@ class _PeopleSectionAllWidgetState extends State { return Center(child: Text(S.of(context).noResultsFound + '.')); } else { final results = snapshot.data!; - if (widget.namedOnly) { - results.removeWhere( - (element) => - (element.hierarchicalSearchFilter as FaceFilter).personId == - null, - ); - } - final screenWidth = MediaQuery.of(context).size.width; final crossAxisCount = (screenWidth / 100).floor(); From 2f7bde36bd8909cd65be7bc5cd7f3dde712b8c4f Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 21 May 2025 03:27:49 +0530 Subject: [PATCH 034/316] chore: bump version to 1.0.17 --- mobile/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index 0c74d44ee5..1991f55ed4 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -12,7 +12,7 @@ description: ente photos application # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 1.0.16+1046 +version: 1.0.17+1047 publish_to: none environment: From 2a8e167e42725fb7c42557ea9ad0c8c5184f81d1 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 21 May 2025 03:51:20 +0530 Subject: [PATCH 035/316] fix: don't listen to collection route --- mobile/lib/services/album_home_widget_service.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mobile/lib/services/album_home_widget_service.dart b/mobile/lib/services/album_home_widget_service.dart index 951d018376..7a34cd1e4a 100644 --- a/mobile/lib/services/album_home_widget_service.dart +++ b/mobile/lib/services/album_home_widget_service.dart @@ -193,12 +193,12 @@ class AlbumHomeWidgetService { // First navigate to the collection page final thumbnail = await CollectionsService.instance.getCover(collection); - await routeToPage( + routeToPage( context, CollectionPage( CollectionWithThumbnail(collection, thumbnail), ), - ); + ).ignore(); // Then open the specific file final file = await FilesDB.instance.getFile(fileId); From 520e5d4ae7bd3f90bd42fbe6f25af86f4f0c1f2c Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 21 May 2025 04:01:37 +0530 Subject: [PATCH 036/316] fix: update routing --- mobile/lib/services/album_home_widget_service.dart | 12 ++++++++---- .../lib/services/people_home_widget_service.dart | 14 ++++++++------ 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/mobile/lib/services/album_home_widget_service.dart b/mobile/lib/services/album_home_widget_service.dart index 7a34cd1e4a..1fa5ff35ce 100644 --- a/mobile/lib/services/album_home_widget_service.dart +++ b/mobile/lib/services/album_home_widget_service.dart @@ -13,7 +13,7 @@ import 'package:photos/services/collections_service.dart'; import 'package:photos/services/favorites_service.dart'; import 'package:photos/services/home_widget_service.dart'; import 'package:photos/services/sync/local_sync_service.dart'; -import 'package:photos/ui/viewer/file/file_widget.dart'; +import "package:photos/ui/viewer/file/detail_page.dart"; import 'package:photos/ui/viewer/gallery/collection_page.dart'; import 'package:photos/utils/navigation_util.dart'; import 'package:shared_preferences/shared_preferences.dart'; @@ -209,10 +209,14 @@ class AlbumHomeWidgetService { await routeToPage( context, - FileWidget( - file, - tagPrefix: "albumwidget", + DetailPage( + DetailPageConfiguration( + List.unmodifiable([file]), + 0, + "albumwidget", + ), ), + forceCustomPageRoute: true, ); } diff --git a/mobile/lib/services/people_home_widget_service.dart b/mobile/lib/services/people_home_widget_service.dart index 611a9c10e6..a9363217eb 100644 --- a/mobile/lib/services/people_home_widget_service.dart +++ b/mobile/lib/services/people_home_widget_service.dart @@ -11,7 +11,7 @@ import 'package:photos/services/home_widget_service.dart'; import 'package:photos/services/machine_learning/face_ml/person/person_service.dart'; import 'package:photos/services/search_service.dart'; import 'package:photos/services/sync/local_sync_service.dart'; -import 'package:photos/ui/viewer/file/file_widget.dart'; +import "package:photos/ui/viewer/file/detail_page.dart"; import 'package:photos/utils/navigation_util.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:synchronized/synchronized.dart'; @@ -163,10 +163,14 @@ class PeopleHomeWidgetService { await routeToPage( context, - FileWidget( - file, - tagPrefix: "peoplewidget", + DetailPage( + DetailPageConfiguration( + List.unmodifiable([file]), + 0, + "peoplewidget", + ), ), + forceCustomPageRoute: true, ); } @@ -206,8 +210,6 @@ class PeopleHomeWidgetService { return true; } - // TODO: If peopleIds are null then check if SearchFilter contains at least one - return false; } From 8ce45a4fa888eee580577490596ed6d0038ffb18 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 21 May 2025 04:06:02 +0530 Subject: [PATCH 037/316] chore: bump version --- mobile/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index 1991f55ed4..f6b0c49446 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -12,7 +12,7 @@ description: ente photos application # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 1.0.17+1047 +version: 1.0.18+1048 publish_to: none environment: From 87195f3801aa5a8fd6dd4a9e2b91e4f92390cd7e Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 21 May 2025 04:15:57 +0530 Subject: [PATCH 038/316] chore: fix incorrect widget count --- mobile/lib/services/home_widget_service.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/lib/services/home_widget_service.dart b/mobile/lib/services/home_widget_service.dart index 439d94c9bd..29256d2d20 100644 --- a/mobile/lib/services/home_widget_service.dart +++ b/mobile/lib/services/home_widget_service.dart @@ -105,7 +105,7 @@ class HomeWidgetService { final relevantWidgets = installedWidgets .where( (widget) => - widget.androidClassName == "io.ente.photos.$androidClass" || + (widget.androidClassName?.contains(androidClass) ?? false) || widget.iOSKind == iOSClass, ) .toList(); From c996c794fdf6c2baaa4eb2b81695cdc210dc462f Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 21 May 2025 08:47:03 +0530 Subject: [PATCH 039/316] fix: launch people page before launching the file previewer --- .../services/people_home_widget_service.dart | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/mobile/lib/services/people_home_widget_service.dart b/mobile/lib/services/people_home_widget_service.dart index a9363217eb..6765f5c3b6 100644 --- a/mobile/lib/services/people_home_widget_service.dart +++ b/mobile/lib/services/people_home_widget_service.dart @@ -12,6 +12,7 @@ import 'package:photos/services/machine_learning/face_ml/person/person_service.d import 'package:photos/services/search_service.dart'; import 'package:photos/services/sync/local_sync_service.dart'; import "package:photos/ui/viewer/file/detail_page.dart"; +import "package:photos/ui/viewer/people/people_page.dart"; import 'package:photos/utils/navigation_util.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:synchronized/synchronized.dart'; @@ -161,6 +162,22 @@ class PeopleHomeWidgetService { return; } + final person = await PersonService.instance.getPerson(personId); + if (person == null) { + _logger + .warning("Cannot launch widget: person with ID $personId not found"); + return; + } + + routeToPage( + context, + PeoplePage( + person: person, + searchResult: null, + ), + forceCustomPageRoute: true, + ).ignore(); + await routeToPage( context, DetailPage( From aa6d6f4e7767fdd5af9cdb0bc8702d34f1740524 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Thu, 22 May 2025 15:04:50 +0530 Subject: [PATCH 040/316] Bump for internal release --- mobile/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index 8d963087f0..052cb639db 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -12,7 +12,7 @@ description: ente photos application # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 1.0.18+1048 +version: 1.0.19+1049 publish_to: none environment: From 4bbc0d1f4682ce1b7ebbef0c29a1f6f9d7bdf485 Mon Sep 17 00:00:00 2001 From: Aman Raj Singh Mourya Date: Thu, 22 May 2025 15:26:07 +0530 Subject: [PATCH 041/316] Implement addToMultipleCollections method for batch adding files to collections --- .../collection/collection_file_actions.dart | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) diff --git a/mobile/lib/ui/actions/collection/collection_file_actions.dart b/mobile/lib/ui/actions/collection/collection_file_actions.dart index cf28e6687c..08dce93630 100644 --- a/mobile/lib/ui/actions/collection/collection_file_actions.dart +++ b/mobile/lib/ui/actions/collection/collection_file_actions.dart @@ -84,6 +84,103 @@ extension CollectionFileActions on CollectionActions { } } + Future addToMultipleCollections( + BuildContext context, + List collections, + bool showProgressDialog, { + List? selectedFiles, + }) async { + final List errors = []; + final ProgressDialog? dialog = showProgressDialog + ? createProgressDialog( + context, + S.of(context).uploadingFilesToAlbum, + isDismissible: true, + ) + : null; + await dialog?.show(); + try { + for (final collection in collections) { + try { + final List files = []; + final List filesPendingUpload = []; + final int currentUserID = Configuration.instance.getUserID()!; + for (final file in selectedFiles!) { + EnteFile? currentFile; + if (file.uploadedFileID != null) { + currentFile = file.copyWith(); + } else if (file.generatedID != null) { + // when file is not uploaded, refresh the state from the db to + // ensure we have latest upload status for given file before + // queueing it up as pending upload + currentFile = await (FilesDB.instance.getFile(file.generatedID!)); + } else if (file.generatedID == null) { + logger.severe("generated id should not be null"); + } + if (currentFile == null) { + logger.severe("Failed to find fileBy genID"); + continue; + } + + if (currentFile.uploadedFileID == null) { + currentFile.collectionID = collection.id; + } else { + files.add(currentFile); + } + } + if (filesPendingUpload.isNotEmpty) { + // Newly created collection might not be cached + final Collection? c = + CollectionsService.instance.getCollectionByID(collection.id); + if (c != null && c.owner.id != currentUserID) { + final Collection uncat = await CollectionsService.instance + .getUncategorizedCollection(); + for (EnteFile unuploadedFile in filesPendingUpload) { + final uploadedFile = await FileUploader.instance.forceUpload( + unuploadedFile, + uncat.id, + ); + files.add(uploadedFile); + } + } else { + for (final file in filesPendingUpload) { + file.collectionID = collection.id; + } + // filesPendingUpload might be getting ignored during auto-upload + // because the user deleted these files from ente in the past. + await IgnoredFilesService.instance + .removeIgnoredMappings(filesPendingUpload); + await FilesDB.instance.insertMultiple(filesPendingUpload); + Bus.instance.fire( + CollectionUpdatedEvent( + collection.id, + filesPendingUpload, + "pendingFilesAdd", + ), + ); + } + } + if (files.isNotEmpty) { + await CollectionsService.instance + .addOrCopyToCollection(collection.id, files); + } + } catch (e, s) { + logger.severe("Failed to add to album", e, s); + errors.add(e); + } + } + + unawaited(RemoteSyncService.instance.sync(silently: true)); + await dialog?.hide(); + return true; + } catch (e, s) { + logger.severe("Failed to add to multiple collections", e, s); + await showGenericErrorDialog(context: context, error: errors.first); + await dialog?.hide(); + return false; + } + } + Future addToCollection( BuildContext context, int collectionID, From afcc7b1e46f6a4327b001b8000d9b1679b720445 Mon Sep 17 00:00:00 2001 From: Aman Raj Singh Mourya Date: Thu, 22 May 2025 15:26:49 +0530 Subject: [PATCH 042/316] Add selection functionality and action buttons to collection action sheet --- .../collections/collection_action_sheet.dart | 92 +++++++++++++++++-- 1 file changed, 86 insertions(+), 6 deletions(-) diff --git a/mobile/lib/ui/collections/collection_action_sheet.dart b/mobile/lib/ui/collections/collection_action_sheet.dart index 370982c8a6..854f72f50a 100644 --- a/mobile/lib/ui/collections/collection_action_sheet.dart +++ b/mobile/lib/ui/collections/collection_action_sheet.dart @@ -11,6 +11,8 @@ import 'package:photos/models/selected_files.dart'; import 'package:photos/services/collections_service.dart'; import 'package:photos/theme/colors.dart'; import 'package:photos/theme/ente_theme.dart'; +import "package:photos/ui/actions/collection/collection_file_actions.dart"; +import "package:photos/ui/actions/collection/collection_sharing_actions.dart"; import 'package:photos/ui/collections/album/vertical_list.dart'; import 'package:photos/ui/common/loading_widget.dart'; import 'package:photos/ui/components/bottom_of_title_bar_widget.dart'; @@ -18,6 +20,8 @@ import 'package:photos/ui/components/buttons/button_widget.dart'; import 'package:photos/ui/components/models/button_type.dart'; import "package:photos/ui/components/text_input_widget.dart"; import 'package:photos/ui/components/title_bar_title_widget.dart'; +import "package:photos/ui/notification/toast.dart"; +import "package:photos/utils/separators_util.dart"; import 'package:receive_sharing_intent/receive_sharing_intent.dart'; enum CollectionActionType { @@ -55,8 +59,10 @@ String _actionName( break; case CollectionActionType.collectPhotos: text = S.of(context).share; + break; case CollectionActionType.addToHiddenAlbum: text = S.of(context).addToHiddenAlbum; + break; case CollectionActionType.moveToHiddenCollection: text = S.of(context).moveToHiddenAlbum; break; @@ -113,8 +119,11 @@ class CollectionActionSheet extends StatefulWidget { class _CollectionActionSheetState extends State { late final bool _showOnlyHiddenCollections; + late final bool _enableSelection; static const int cancelButtonSize = 80; + static const int okButtonSize = 60; String _searchQuery = ""; + List _selectedCollections = []; @override void initState() { @@ -122,6 +131,9 @@ class _CollectionActionSheetState extends State { _showOnlyHiddenCollections = widget.actionType == CollectionActionType.moveToHiddenCollection || widget.actionType == CollectionActionType.addToHiddenAlbum; + _enableSelection = (widget.actionType == CollectionActionType.addFiles || + widget.actionType == CollectionActionType.addToHiddenAlbum) && + (widget.sharedFiles == null || widget.sharedFiles!.isEmpty); } @override @@ -131,9 +143,13 @@ class _CollectionActionSheetState extends State { : widget.selectedFiles?.files.length ?? 0; final bottomInset = MediaQuery.of(context).viewInsets.bottom; final isKeyboardUp = bottomInset > 100; + final double bottomPadding = max( + 0, + bottomInset - cancelButtonSize - (_enableSelection ? okButtonSize : 0), + ); return Padding( padding: EdgeInsets.only( - bottom: isKeyboardUp ? bottomInset - cancelButtonSize : 0, + bottom: isKeyboardUp ? bottomPadding : 0, ), child: Row( mainAxisAlignment: MainAxisAlignment.center, @@ -196,11 +212,10 @@ class _CollectionActionSheetState extends State { ), ), ), - child: ButtonWidget( - buttonType: ButtonType.secondary, - buttonAction: ButtonAction.cancel, - isInAlert: true, - labelText: S.of(context).cancel, + child: Column( + children: [ + ..._actionButtons(), + ], ), ), ), @@ -213,6 +228,61 @@ class _CollectionActionSheetState extends State { ); } + List _actionButtons() { + final List widgets = []; + if (_enableSelection) { + widgets.add( + AnimatedSwitcher( + duration: const Duration(milliseconds: 300), + switchInCurve: Curves.easeOutBack, + switchOutCurve: Curves.easeIn, + child: _selectedCollections.isNotEmpty + ? ButtonWidget( + key: const ValueKey('add_button'), + buttonType: ButtonType.primary, + isInAlert: true, + labelText: S.of(context).add, + shouldSurfaceExecutionStates: false, + onTap: () async { + final CollectionActions collectionActions = + CollectionActions(CollectionsService.instance); + final result = + await collectionActions.addToMultipleCollections( + context, + _selectedCollections, + true, + selectedFiles: widget.selectedFiles?.files.toList(), + ); + if (result) { + showShortToast( + context, + "Added successfully to " + + _selectedCollections.length.toString() + + " albums", + ); + widget.selectedFiles?.clearAll(); + } + }, + ) + : const SizedBox.shrink(), + ), + ); + } + widgets.add( + ButtonWidget( + buttonType: ButtonType.secondary, + buttonAction: ButtonAction.cancel, + isInAlert: true, + labelText: S.of(context).cancel, + ), + ); + final widgetsWithSpaceBetween = addSeparators( + widgets, + const SizedBox(height: 8), + ); + return widgetsWithSpaceBetween; + } + Flexible _getCollectionItems() { return Flexible( child: Padding( @@ -249,6 +319,10 @@ class _CollectionActionSheetState extends State { widget.sharedFiles, _searchQuery, shouldShowCreateAlbum, + enableSelection: _enableSelection, + onSelectionChanged: (c) { + _updateSelectedCollections(c); + }, ), ), ); @@ -261,6 +335,12 @@ class _CollectionActionSheetState extends State { ); } + void _updateSelectedCollections(List collections) { + setState(() { + _selectedCollections = collections; + }); + } + Future> _getCollections() async { if (_showOnlyHiddenCollections) { final hiddenCollections = CollectionsService.instance From c77b4f176c3ccb809c82ddedfb686d77174ba112 Mon Sep 17 00:00:00 2001 From: Aman Raj Singh Mourya Date: Thu, 22 May 2025 15:49:49 +0530 Subject: [PATCH 043/316] Refactor AlbumColumnItemWidget to improve selection handling and UI layout --- .../lib/ui/collections/album/column_item.dart | 136 +++++++++++------- 1 file changed, 81 insertions(+), 55 deletions(-) diff --git a/mobile/lib/ui/collections/album/column_item.dart b/mobile/lib/ui/collections/album/column_item.dart index a81d71273e..bf793d7214 100644 --- a/mobile/lib/ui/collections/album/column_item.dart +++ b/mobile/lib/ui/collections/album/column_item.dart @@ -6,16 +6,19 @@ import 'package:photos/models/collection/collection.dart'; import 'package:photos/models/file/file.dart'; import "package:photos/services/collections_service.dart"; import 'package:photos/theme/ente_theme.dart'; +import "package:photos/ui/components/buttons/icon_button_widget.dart"; import 'package:photos/ui/viewer/file/no_thumbnail_widget.dart'; import 'package:photos/ui/viewer/file/thumbnail_widget.dart'; ///https://www.figma.com/file/SYtMyLBs5SAOkTbfMMzhqt/ente-Visual-Design?node-id=7480%3A33462&t=H5AvR79OYDnB9ekw-4 class AlbumColumnItemWidget extends StatelessWidget { final Collection collection; + final List selectedCollections; const AlbumColumnItemWidget( this.collection, { super.key, + this.selectedCollections = const [], }); @override @@ -23,12 +26,25 @@ class AlbumColumnItemWidget extends StatelessWidget { final textTheme = getEnteTextTheme(context); final colorScheme = getEnteColorScheme(context); const sideOfThumbnail = 60.0; - return LayoutBuilder( - builder: (context, constraints) { - return Stack( - alignment: Alignment.center, - children: [ - Row( + final isSelected = selectedCollections.contains(collection); + return AnimatedContainer( + curve: Curves.easeOut, + duration: const Duration(milliseconds: 200), + decoration: BoxDecoration( + border: Border.all( + color: + isSelected ? colorScheme.strokeMuted : colorScheme.strokeFainter, + ), + borderRadius: const BorderRadius.all( + Radius.circular(4), + ), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Flexible( + flex: 6, + child: Row( children: [ ClipRRect( borderRadius: const BorderRadius.horizontal( @@ -57,62 +73,72 @@ class AlbumColumnItemWidget extends StatelessWidget { ), ), ), - Padding( - padding: const EdgeInsets.only(left: 12), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text(collection.displayName), - FutureBuilder( - future: CollectionsService.instance.getFileCount - (collection), - builder: (context, snapshot) { - if (snapshot.hasData) { - return Text( - S.of(context).memoryCount( - snapshot.data!, - NumberFormat().format(snapshot.data!), - ), - style: textTheme.small.copyWith( - color: colorScheme.textMuted, - ), - ); - } else { - if (snapshot.hasError) { - Logger("AlbumListItemWidget").severe( - "Failed to fetch file count of collection", - snapshot.error, + const SizedBox(width: 12), + Flexible( + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 4), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + collection.displayName, + overflow: TextOverflow.ellipsis, + ), + FutureBuilder( + future: CollectionsService.instance + .getFileCount(collection), + builder: (context, snapshot) { + if (snapshot.hasData) { + return Text( + S.of(context).memoryCount( + snapshot.data!, + NumberFormat().format(snapshot.data!), + ), + style: textTheme.small.copyWith( + color: colorScheme.textMuted, + ), + ); + } else { + if (snapshot.hasError) { + Logger("AlbumListItemWidget").severe( + "Failed to fetch file count of collection", + snapshot.error, + ); + } + return Text( + "", + style: textTheme.small.copyWith( + color: colorScheme.textMuted, + ), ); } - return Text( - "", - style: textTheme.small.copyWith( - color: colorScheme.textMuted, - ), - ); - } - }, - ), - ], + }, + ), + ], + ), ), ), ], ), - IgnorePointer( - child: Container( - decoration: BoxDecoration( - borderRadius: const BorderRadius.all(Radius.circular(4)), - border: Border.all( - color: colorScheme.strokeFainter, - ), - ), - height: sideOfThumbnail, - width: constraints.maxWidth, - ), + ), + Flexible( + flex: 1, + child: AnimatedSwitcher( + duration: const Duration(milliseconds: 200), + switchInCurve: Curves.easeOut, + switchOutCurve: Curves.easeIn, + child: isSelected + ? IconButtonWidget( + key: const ValueKey("selected"), + icon: Icons.check_circle_rounded, + iconButtonType: IconButtonType.secondary, + iconColor: colorScheme.blurStrokeBase, + ) + : null, ), - ], - ); - }, + ), + ], + ), ); } } From 822c33940e5a90e7a0e9eb6c13e0b34b10d7aab9 Mon Sep 17 00:00:00 2001 From: Aman Raj Singh Mourya Date: Thu, 22 May 2025 15:53:06 +0530 Subject: [PATCH 044/316] Skip single tap action when selection mode is enabled --- .../ui/collections/album/vertical_list.dart | 111 ++++++++++++------ 1 file changed, 76 insertions(+), 35 deletions(-) diff --git a/mobile/lib/ui/collections/album/vertical_list.dart b/mobile/lib/ui/collections/album/vertical_list.dart index 78bcdc8b2f..40fe5d177c 100644 --- a/mobile/lib/ui/collections/album/vertical_list.dart +++ b/mobile/lib/ui/collections/album/vertical_list.dart @@ -1,6 +1,7 @@ import "dart:async"; import 'package:flutter/material.dart'; +import "package:flutter/services.dart"; import 'package:logging/logging.dart'; import 'package:photos/core/configuration.dart'; import "package:photos/core/event_bus.dart"; @@ -25,63 +26,99 @@ import 'package:photos/utils/dialog_util.dart'; import 'package:photos/utils/navigation_util.dart'; import 'package:receive_sharing_intent/receive_sharing_intent.dart'; -class AlbumVerticalListWidget extends StatelessWidget { +class AlbumVerticalListWidget extends StatefulWidget { final List collections; final CollectionActionType actionType; final SelectedFiles? selectedFiles; final List? sharedFiles; final String searchQuery; final bool shouldShowCreateAlbum; + final bool enableSelection; + final Function(List)? onSelectionChanged; - AlbumVerticalListWidget( + const AlbumVerticalListWidget( this.collections, this.actionType, this.selectedFiles, this.sharedFiles, this.searchQuery, this.shouldShowCreateAlbum, { + this.enableSelection = false, + this.onSelectionChanged, super.key, }); + @override + State createState() => + _AlbumVerticalListWidgetState(); +} + +class _AlbumVerticalListWidgetState extends State { final _logger = Logger("CollectionsListWidgetState"); + final CollectionActions _collectionActions = CollectionActions(CollectionsService.instance); + List selectedCollections = []; @override Widget build(BuildContext context) { - final filesCount = sharedFiles != null - ? sharedFiles!.length - : selectedFiles?.files.length ?? 0; + final filesCount = widget.sharedFiles != null + ? widget.sharedFiles!.length + : widget.selectedFiles?.files.length ?? 0; - if (collections.isEmpty) { - if (shouldShowCreateAlbum) { + if (widget.collections.isEmpty) { + if (widget.shouldShowCreateAlbum) { return _getNewAlbumWidget(context, filesCount); } return const EmptyState(); } return ListView.separated( itemBuilder: (context, index) { - if (index == 0 && shouldShowCreateAlbum) { + if (index == 0 && widget.shouldShowCreateAlbum) { return _getNewAlbumWidget(context, filesCount); } - final item = collections[index - (shouldShowCreateAlbum ? 1 : 0)]; + final item = + widget.collections[index - (widget.shouldShowCreateAlbum ? 1 : 0)]; return GestureDetector( behavior: HitTestBehavior.opaque, - onTap: () => _albumListItemOnTap(context, item), + onTap: () => widget.enableSelection && selectedCollections.isNotEmpty + ? _toggleCollectionSelection(item) + : _albumListItemOnTap(context, item), + onLongPress: () { + widget.enableSelection && selectedCollections.isEmpty + ? _toggleCollectionSelection(item) + : null; + }, child: AlbumColumnItemWidget( item, + selectedCollections: selectedCollections, ), ); }, - separatorBuilder: (context, index) => const SizedBox( - height: 8, - ), - itemCount: collections.length + (shouldShowCreateAlbum ? 1 : 0), + separatorBuilder: (context, index) => const SizedBox(height: 8), + itemCount: + widget.collections.length + (widget.shouldShowCreateAlbum ? 1 : 0), shrinkWrap: true, physics: const BouncingScrollPhysics(), + padding: const EdgeInsets.only(bottom: 40), ); } + Future _toggleCollectionSelection( + Collection collection, + ) async { + if (selectedCollections.contains(collection)) { + selectedCollections.remove(collection); + } else { + selectedCollections.isEmpty ? await HapticFeedback.vibrate() : null; + selectedCollections.add(collection); + } + if (widget.onSelectionChanged != null) { + widget.onSelectionChanged!(selectedCollections); + } + setState(() {}); + } + GestureDetector _getNewAlbumWidget(BuildContext context, int filesCount) { return GestureDetector( onTap: () async { @@ -139,8 +176,8 @@ class AlbumVerticalListWidget extends StatelessWidget { bool hasVerifiedLock = false; late final Collection? collection; - if (actionType == CollectionActionType.moveToHiddenCollection || - actionType == CollectionActionType.addToHiddenAlbum) { + if (widget.actionType == CollectionActionType.moveToHiddenCollection || + widget.actionType == CollectionActionType.addToHiddenAlbum) { collection = await CollectionsService.instance.createHiddenAlbum(albumName); hasVerifiedLock = true; @@ -154,7 +191,7 @@ class AlbumVerticalListWidget extends StatelessWidget { collection, showProgressDialog: false, )) { - if (actionType == CollectionActionType.restoreFiles) { + if (widget.actionType == CollectionActionType.restoreFiles) { showShortToast( context, 'Restored files to album ' + albumName, @@ -199,19 +236,20 @@ class AlbumVerticalListWidget extends StatelessWidget { bool shouldNavigateToCollection = false; bool hasVerifiedLock = false; - if (actionType == CollectionActionType.addFiles) { + if (widget.actionType == CollectionActionType.addFiles) { toastMessage = S.of(context).addedSuccessfullyTo(item.displayName); shouldNavigateToCollection = true; - } else if (actionType == CollectionActionType.moveFiles || - actionType == CollectionActionType.restoreFiles || - actionType == CollectionActionType.unHide) { + } else if (widget.actionType == CollectionActionType.moveFiles || + widget.actionType == CollectionActionType.restoreFiles || + widget.actionType == CollectionActionType.unHide) { toastMessage = S.of(context).movedSuccessfullyTo(item.displayName); shouldNavigateToCollection = true; - } else if (actionType == CollectionActionType.moveToHiddenCollection) { + } else if (widget.actionType == + CollectionActionType.moveToHiddenCollection) { toastMessage = S.of(context).movedSuccessfullyTo(item.displayName); shouldNavigateToCollection = true; hasVerifiedLock = true; - } else if (actionType == CollectionActionType.addToHiddenAlbum) { + } else if (widget.actionType == CollectionActionType.addToHiddenAlbum) { toastMessage = S.of(context).addedSuccessfullyTo(item.displayName); shouldNavigateToCollection = true; hasVerifiedLock = true; @@ -226,7 +264,6 @@ class AlbumVerticalListWidget extends StatelessWidget { } if (shouldNavigateToCollection) { Navigator.pop(context); - await _navigateToCollection( context, item, @@ -241,7 +278,10 @@ class AlbumVerticalListWidget extends StatelessWidget { Collection collection, { bool showProgressDialog = true, }) async { - switch (actionType) { + if (widget.enableSelection) { + return false; + } + switch (widget.actionType) { case CollectionActionType.addFiles: return _addToCollection( context, @@ -379,11 +419,11 @@ class AlbumVerticalListWidget extends StatelessWidget { context, collectionID, showProgressDialog, - selectedFiles: selectedFiles?.files.toList(), - sharedFiles: sharedFiles, + selectedFiles: widget.selectedFiles?.files.toList(), + sharedFiles: widget.sharedFiles, ); if (result) { - selectedFiles?.clearAll(); + widget.selectedFiles?.clearAll(); } return result; } @@ -393,8 +433,8 @@ class AlbumVerticalListWidget extends StatelessWidget { int toCollectionID, ) async { late final String message; - if (actionType == CollectionActionType.moveFiles || - actionType == CollectionActionType.moveToHiddenCollection) { + if (widget.actionType == CollectionActionType.moveFiles || + widget.actionType == CollectionActionType.moveToHiddenCollection) { message = S.of(context).movingFilesToAlbum; } else { message = S.of(context).unhidingFilesToAlbum; @@ -403,15 +443,16 @@ class AlbumVerticalListWidget extends StatelessWidget { final dialog = createProgressDialog(context, message, isDismissible: true); await dialog.show(); try { - final int fromCollectionID = selectedFiles!.files.first.collectionID!; + final int fromCollectionID = + widget.selectedFiles!.files.first.collectionID!; await CollectionsService.instance.move( - selectedFiles!.files.toList(), + widget.selectedFiles!.files.toList(), toCollectionID: toCollectionID, fromCollectionID: fromCollectionID, ); await dialog.hide(); unawaited(RemoteSyncService.instance.sync(silently: true)); - selectedFiles?.clearAll(); + widget.selectedFiles?.clearAll(); return true; } on AssertionError catch (e) { @@ -439,9 +480,9 @@ class AlbumVerticalListWidget extends StatelessWidget { await dialog.show(); try { await CollectionsService.instance - .restore(toCollectionID, selectedFiles!.files.toList()); + .restore(toCollectionID, widget.selectedFiles!.files.toList()); unawaited(RemoteSyncService.instance.sync(silently: true)); - selectedFiles?.clearAll(); + widget.selectedFiles?.clearAll(); await dialog.hide(); return true; } on AssertionError catch (e) { From cbef1a9145af6df527b6f14a5a3ec9f4ad3c7c8f Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Thu, 22 May 2025 15:53:59 +0530 Subject: [PATCH 045/316] ios build changes --- mobile/ios/Podfile.lock | 118 ++++++++++---------- mobile/ios/Runner.xcodeproj/project.pbxproj | 55 +++++++-- 2 files changed, 105 insertions(+), 68 deletions(-) diff --git a/mobile/ios/Podfile.lock b/mobile/ios/Podfile.lock index d76dd0c63d..b893a58a69 100644 --- a/mobile/ios/Podfile.lock +++ b/mobile/ios/Podfile.lock @@ -75,6 +75,8 @@ PODS: - Flutter - flutter_sodium (0.0.1): - Flutter + - flutter_timezone (0.0.1): + - Flutter - fluttertoast (0.0.2): - Flutter - GoogleDataTransport (10.1.0): @@ -259,6 +261,7 @@ DEPENDENCIES: - flutter_native_splash (from `.symlinks/plugins/flutter_native_splash/ios`) - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`) - flutter_sodium (from `.symlinks/plugins/flutter_sodium/ios`) + - flutter_timezone (from `.symlinks/plugins/flutter_timezone/ios`) - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`) - home_widget (from `.symlinks/plugins/home_widget/ios`) - image_editor_common (from `.symlinks/plugins/image_editor_common/ios`) @@ -298,7 +301,7 @@ DEPENDENCIES: - wakelock_plus (from `.symlinks/plugins/wakelock_plus/ios`) SPEC REPOS: - https://github.com/ente-io/ffmpeg-kit-custom-repo-ios: + https://github.com/ente-io/ffmpeg-kit-custom-repo-ios.git: - ffmpeg_kit_custom trunk: - Firebase @@ -359,6 +362,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/flutter_secure_storage/ios" flutter_sodium: :path: ".symlinks/plugins/flutter_sodium/ios" + flutter_timezone: + :path: ".symlinks/plugins/flutter_timezone/ios" fluttertoast: :path: ".symlinks/plugins/fluttertoast/ios" home_widget: @@ -435,81 +440,82 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/wakelock_plus/ios" SPEC CHECKSUMS: - app_links: 76b66b60cc809390ca1ad69bfd66b998d2387ac7 - background_fetch: 94b36ee293e82972852dba8ede1fbcd3bd3d9d57 - battery_info: 83f3aae7be2fccefab1d2bf06b8aa96f11c8bcdd - connectivity_plus: cb623214f4e1f6ef8fe7403d580fdad517d2f7dd - cupertino_http: 94ac07f5ff090b8effa6c5e2c47871d48ab7c86c - dart_ui_isolate: 46f6714abe6891313267153ef6f9748d8ecfcab1 - device_info_plus: 335f3ce08d2e174b9fdc3db3db0f4e3b1f66bd89 + app_links: f3e17e4ee5e357b39d8b95290a9b2c299fca71c6 + background_fetch: 39f11371c0dce04b001c4bfd5e782bcccb0a85e2 + battery_info: b6c551049266af31556b93c9d9b9452cfec0219f + connectivity_plus: 2a701ffec2c0ae28a48cf7540e279787e77c447d + cupertino_http: 947a233f40cfea55167a49f2facc18434ea117ba + dart_ui_isolate: d5bcda83ca4b04f129d70eb90110b7a567aece14 + device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6 ffmpeg_kit_custom: 682b4f2f1ff1f8abae5a92f6c3540f2441d5be99 - ffmpeg_kit_flutter: 915b345acc97d4142e8a9a8549d177ff10f043f5 - file_saver: 6cdbcddd690cb02b0c1a0c225b37cd805c2bf8b6 + ffmpeg_kit_flutter: 9dce4803991478c78c6fb9f972703301101095fe + file_saver: 503e386464dbe118f630e17b4c2e1190fa0cf808 Firebase: d80354ed7f6df5f9aca55e9eb47cc4b634735eaf - firebase_core: 6cbed78b4f298ed103a9fd034e6dbc846320480f - firebase_messaging: 5e0adf2eb18b0ee59aa0c109314c091a0497ecac + firebase_core: 6e223dfa350b2edceb729cea505eaaef59330682 + firebase_messaging: 07fde77ae28c08616a1d4d870450efc2b38cf40d FirebaseCore: 99fe0c4b44a39f37d99e6404e02009d2db5d718d FirebaseCoreInternal: df24ce5af28864660ecbd13596fc8dd3a8c34629 FirebaseInstallations: 6c963bd2a86aca0481eef4f48f5a4df783ae5917 FirebaseMessaging: 487b634ccdf6f7b7ff180fdcb2a9935490f764e8 Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 - flutter_email_sender: aa1e9772696691d02cd91fea829856c11efb8e58 - flutter_image_compress_common: 1697a328fd72bfb335507c6bca1a65fa5ad87df1 - flutter_inappwebview_ios: b89ba3482b96fb25e00c967aae065701b66e9b99 - flutter_local_notifications: ad39620c743ea4c15127860f4b5641649a988100 - flutter_native_splash: 6cad9122ea0fad137d23137dd14b937f3e90b145 - flutter_secure_storage: 2c2ff13db9e0a5647389bff88b0ecac56e3f3418 - flutter_sodium: 7e4621538491834eba53bd524547854bcbbd6987 - fluttertoast: 2c67e14dce98bbdb200df9e1acf610d7a6264ea1 + flutter_email_sender: e03bdda7637bcd3539bfe718fddd980e9508efaa + flutter_image_compress_common: ec1d45c362c9d30a3f6a0426c297f47c52007e3e + flutter_inappwebview_ios: 6f63631e2c62a7c350263b13fa5427aedefe81d4 + flutter_local_notifications: 4cde75091f6327eb8517fa068a0a5950212d2086 + flutter_native_splash: f71420956eb811e6d310720fee915f1d42852e7a + flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be + flutter_sodium: a00383520fc689c688b66fd3092984174712493e + flutter_timezone: ac3da59ac941ff1c98a2e1f0293420e020120282 + fluttertoast: 21eecd6935e7064cc1fcb733a4c5a428f3f24f0f GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7 GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d - home_widget: f169fc41fd807b4d46ab6615dc44d62adbf9f64f - image_editor_common: 3de87e7c4804f4ae24c8f8a998362b98c105cac1 - in_app_purchase_storekit: d1a48cb0f8b29dbf5f85f782f5dd79b21b90a5e6 - integration_test: 4a889634ef21a45d28d50d622cf412dc6d9f586e - launcher_icon_switcher: 84c218d233505aa7d8655d8fa61a3ba802c022da + home_widget: 0434835a4c9a75704264feff6be17ea40e0f0d57 + image_editor_common: d6f6644ae4a6de80481e89fe6d0a8c49e30b4b43 + in_app_purchase_storekit: a1ce04056e23eecc666b086040239da7619cd783 + integration_test: 252f60fa39af5e17c3aa9899d35d908a0721b573 + launcher_icon_switcher: 8e0ad2131a20c51c1dd939896ee32e70cd845b37 libwebp: 02b23773aedb6ff1fd38cec7a77b81414c6842a8 - local_auth_darwin: 553ce4f9b16d3fdfeafce9cf042e7c9f77c1c391 - local_auth_ios: f7a1841beef3151d140a967c2e46f30637cdf451 + local_auth_darwin: 66e40372f1c29f383a314c738c7446e2f7fdadc3 + local_auth_ios: 5046a18c018dd973247a0564496c8898dbb5adf9 Mantle: c5aa8794a29a022dfbbfc9799af95f477a69b62d - maps_launcher: edf829809ba9e894d70e569bab11c16352dedb45 - media_extension: 671e2567880d96c95c65c9a82ccceed8f2e309fd - media_kit_libs_ios_video: 5a18affdb97d1f5d466dc79988b13eff6c5e2854 - media_kit_video: 1746e198cb697d1ffb734b1d05ec429d1fcd1474 - motion_sensors: 741e702c17467b9569a92165dda8d4d88c6167f1 - motionphoto: 23e2aeb5c6380112f69468d71f970fa7438e5ed1 - move_to_background: 7e3467dd2a1d1013e98c9c1cb93fd53cd7ef9d84 + maps_launcher: 2e5b6a2d664ec6c27f82ffa81b74228d770ab203 + media_extension: 6618f07abd762cdbfaadf1b0c56a287e820f0c84 + media_kit_libs_ios_video: a5fe24bc7875ccd6378a0978c13185e1344651c1 + media_kit_video: 5da63f157170e5bf303bf85453b7ef6971218a2e + motion_sensors: 03f55b7c637a7e365a0b5f9697a449f9059d5d91 + motionphoto: 8b65ce50c7d7ff3c767534fc3768b2eed9ac24e4 + move_to_background: cd3091014529ec7829e342ad2d75c0a11f4378a5 nanopb: fad817b59e0457d11a5dfbde799381cd727c1275 - native_video_player: e363dd14f6a498ad8a8f7e6486a0db046ad19f13 - objective_c: 89e720c30d716b036faf9c9684022048eee1eee2 - onnxruntime: f9b296392c96c42882be020a59dbeac6310d81b2 + native_video_player: 5d36066807b680e181473e6890dde643ac85380d + objective_c: 77e887b5ba1827970907e10e832eec1683f3431d + onnxruntime: e7c2ae44385191eaad5ae64c935a72debaddc997 onnxruntime-c: a909204639a1f035f575127ac406f781ac797c9c onnxruntime-objc: b6fab0f1787aa6f7190c2013f03037df4718bd8b - open_mail_app: 7314a609e88eed22d53671279e189af7a0ab0f11 + open_mail_app: 70273c53f768beefdafbe310c3d9086e4da3cb02 OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94 - package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499 - path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564 - permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d - photo_manager: d2fbcc0f2d82458700ee6256a15018210a81d413 - privacy_screen: 3159a541f5d3a31bea916cfd4e58f9dc722b3fd4 + package_info_plus: c0502532a26c7662a62a356cebe2692ec5fe4ec4 + path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 + permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2 + photo_manager: ff695c7a1dd5bc379974953a2b5c0a293f7c4c8a + privacy_screen: 1a131c052ceb3c3659934b003b0d397c2381a24e PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 - receive_sharing_intent: 222384f00ffe7e952bbfabaa9e3967cb87e5fe00 + receive_sharing_intent: 79c848f5b045674ad60b9fea3bafea59962ad2c1 SDWebImage: f84b0feeb08d2d11e6a9b843cb06d75ebf5b8868 SDWebImageWebPCoder: e38c0a70396191361d60c092933e22c20d5b1380 Sentry: da60d980b197a46db0b35ea12cb8f39af48d8854 - sentry_flutter: 942017adbe00f963061cb11ec260414a990b7a42 - share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a - shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7 - sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0 + sentry_flutter: 6a134f9d381e49f22ea25a67736cf0cf4d02ec9c + share_plus: 8b6f8b3447e494cca5317c8c3073de39b3600d1f + shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 + sqflite_darwin: 5a7236e3b501866c1c9befc6771dfd73ffb8702d sqlite3: fc1400008a9b3525f5914ed715a5d1af0b8f4983 - sqlite3_flutter_libs: 3c323550ef3b928bc0aa9513c841e45a7d242832 - system_info_plus: 555ce7047fbbf29154726db942ae785c29211740 - ua_client_hints: 92fe0d139619b73ec9fcb46cc7e079a26178f586 - url_launcher_ios: 694010445543906933d732453a59da0a173ae33d - video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b - video_thumbnail: 584ccfa55d8fd2f3d5507218b0a18d84c839c620 - volume_controller: 3657a1f65bedb98fa41ff7dc5793537919f31b12 - wakelock_plus: 04623e3f525556020ebd4034310f20fe7fda8b49 + sqlite3_flutter_libs: 069c435986dd4b63461aecd68f4b30be4a9e9daa + system_info_plus: 5393c8da281d899950d751713575fbf91c7709aa + ua_client_hints: aeabd123262c087f0ce151ef96fa3ab77bfc8b38 + url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe + video_player_avfoundation: 7c6c11d8470e1675df7397027218274b6d2360b3 + video_thumbnail: 94ba6705afbaa120b77287080424930f23ea0c40 + volume_controller: 2e3de73d6e7e81a0067310d17fb70f2f86d71ac7 + wakelock_plus: 373cfe59b235a6dd5837d0fb88791d2f13a90d56 PODFILE CHECKSUM: a8ef88ad74ba499756207e7592c6071a96756d18 diff --git a/mobile/ios/Runner.xcodeproj/project.pbxproj b/mobile/ios/Runner.xcodeproj/project.pbxproj index 8be865b8bf..f91b1762c6 100644 --- a/mobile/ios/Runner.xcodeproj/project.pbxproj +++ b/mobile/ios/Runner.xcodeproj/project.pbxproj @@ -25,7 +25,7 @@ CEE6BE702D7AE7FD00E4048B /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DACD83C2B755B0600BA9516 /* WidgetKit.framework */; }; CEE6BE712D7AE7FD00E4048B /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DACD83E2B755B0600BA9516 /* SwiftUI.framework */; }; CEE6BE7C2D7AE7FE00E4048B /* EnteMemoryWidgetExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = CEE6BE6F2D7AE7FD00E4048B /* EnteMemoryWidgetExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - DA6BE5E826B3BC8600656280 /* (null) in Resources */ = {isa = PBXBuildFile; }; + DA6BE5E826B3BC8600656280 /* BuildFile in Resources */ = {isa = PBXBuildFile; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -112,21 +112,21 @@ /* End PBXFileReference section */ /* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ - CEE166342DD5E7830012CF61 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + CEE166342DD5E7830012CF61 /* Exceptions for "EnteAlbumWidget" folder in "EnteAlbumWidgetExtension" target */ = { isa = PBXFileSystemSynchronizedBuildFileExceptionSet; membershipExceptions = ( Info.plist, ); target = CEE166222DD5E7820012CF61 /* EnteAlbumWidgetExtension */; }; - CEE1668C2DD5F6F30012CF61 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + CEE1668C2DD5F6F30012CF61 /* Exceptions for "EntePeopleWidget" folder in "EntePeopleWidgetExtension" target */ = { isa = PBXFileSystemSynchronizedBuildFileExceptionSet; membershipExceptions = ( Info.plist, ); target = CEE1667A2DD5F6F20012CF61 /* EntePeopleWidgetExtension */; }; - CEE6BE802D7AE7FE00E4048B /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + CEE6BE802D7AE7FE00E4048B /* Exceptions for "EnteMemoryWidget" folder in "EnteMemoryWidgetExtension" target */ = { isa = PBXFileSystemSynchronizedBuildFileExceptionSet; membershipExceptions = ( Info.plist, @@ -136,9 +136,42 @@ /* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ /* Begin PBXFileSystemSynchronizedRootGroup section */ - CEE166262DD5E7820012CF61 /* EnteAlbumWidget */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (CEE166342DD5E7830012CF61 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = EnteAlbumWidget; sourceTree = ""; }; - CEE1667E2DD5F6F20012CF61 /* EntePeopleWidget */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (CEE1668C2DD5F6F30012CF61 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = EntePeopleWidget; sourceTree = ""; }; - CEE6BE722D7AE7FD00E4048B /* EnteMemoryWidget */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (CEE6BE802D7AE7FE00E4048B /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = EnteMemoryWidget; sourceTree = ""; }; + CEE166262DD5E7820012CF61 /* EnteAlbumWidget */ = { + isa = PBXFileSystemSynchronizedRootGroup; + exceptions = ( + CEE166342DD5E7830012CF61 /* Exceptions for "EnteAlbumWidget" folder in "EnteAlbumWidgetExtension" target */, + ); + explicitFileTypes = { + }; + explicitFolders = ( + ); + path = EnteAlbumWidget; + sourceTree = ""; + }; + CEE1667E2DD5F6F20012CF61 /* EntePeopleWidget */ = { + isa = PBXFileSystemSynchronizedRootGroup; + exceptions = ( + CEE1668C2DD5F6F30012CF61 /* Exceptions for "EntePeopleWidget" folder in "EntePeopleWidgetExtension" target */, + ); + explicitFileTypes = { + }; + explicitFolders = ( + ); + path = EntePeopleWidget; + sourceTree = ""; + }; + CEE6BE722D7AE7FD00E4048B /* EnteMemoryWidget */ = { + isa = PBXFileSystemSynchronizedRootGroup; + exceptions = ( + CEE6BE802D7AE7FE00E4048B /* Exceptions for "EnteMemoryWidget" folder in "EnteMemoryWidgetExtension" target */, + ); + explicitFileTypes = { + }; + explicitFolders = ( + ); + path = EnteMemoryWidget; + sourceTree = ""; + }; /* End PBXFileSystemSynchronizedRootGroup section */ /* Begin PBXFrameworksBuildPhase section */ @@ -314,8 +347,6 @@ CEE166262DD5E7820012CF61 /* EnteAlbumWidget */, ); name = EnteAlbumWidgetExtension; - packageProductDependencies = ( - ); productName = EnteAlbumWidgetExtension; productReference = CEE166232DD5E7820012CF61 /* EnteAlbumWidgetExtension.appex */; productType = "com.apple.product-type.app-extension"; @@ -336,8 +367,6 @@ CEE1667E2DD5F6F20012CF61 /* EntePeopleWidget */, ); name = EntePeopleWidgetExtension; - packageProductDependencies = ( - ); productName = EntePeopleWidgetExtension; productReference = CEE1667B2DD5F6F20012CF61 /* EntePeopleWidgetExtension.appex */; productType = "com.apple.product-type.app-extension"; @@ -418,7 +447,7 @@ 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, - DA6BE5E826B3BC8600656280 /* (null) in Resources */, + DA6BE5E826B3BC8600656280 /* BuildFile in Resources */, 277218A0270F596900FFE3CC /* GoogleService-Info.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -512,6 +541,7 @@ "${BUILT_PRODUCTS_DIR}/flutter_native_splash/flutter_native_splash.framework", "${BUILT_PRODUCTS_DIR}/flutter_secure_storage/flutter_secure_storage.framework", "${BUILT_PRODUCTS_DIR}/flutter_sodium/flutter_sodium.framework", + "${BUILT_PRODUCTS_DIR}/flutter_timezone/flutter_timezone.framework", "${BUILT_PRODUCTS_DIR}/fluttertoast/fluttertoast.framework", "${BUILT_PRODUCTS_DIR}/home_widget/home_widget.framework", "${BUILT_PRODUCTS_DIR}/image_editor_common/image_editor_common.framework", @@ -606,6 +636,7 @@ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_native_splash.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_secure_storage.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_sodium.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_timezone.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/fluttertoast.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/home_widget.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/image_editor_common.framework", From 5a574c69d3a05970486062f83e65cecdc6cb683f Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Thu, 22 May 2025 16:48:01 +0530 Subject: [PATCH 046/316] log debug notification options --- mobile/lib/ui/settings/debug/ml_debug_section_widget.dart | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mobile/lib/ui/settings/debug/ml_debug_section_widget.dart b/mobile/lib/ui/settings/debug/ml_debug_section_widget.dart index c00f744736..c9cea0f76f 100644 --- a/mobile/lib/ui/settings/debug/ml_debug_section_widget.dart +++ b/mobile/lib/ui/settings/debug/ml_debug_section_widget.dart @@ -80,7 +80,8 @@ class _MLDebugSectionWidgetState extends State { final amount = await NotificationService.instance.pendingNotifications(); showShortToast(context, '$amount pending notifications'); - } catch (e) { + } catch (e, s) { + logger.severe('pendingNotifications failed ', e, s); await showGenericErrorDialog(context: context, error: e); } }, @@ -98,7 +99,8 @@ class _MLDebugSectionWidgetState extends State { await NotificationService.instance .clearAllScheduledNotifications(); showShortToast(context, 'Done'); - } catch (e) { + } catch (e, s) { + logger.severe('clearAllScheduledNotifications failed ', e, s); await showGenericErrorDialog(context: context, error: e); } }, From 06d260f40aecc9c0973f9e56fa611e5cc4f3d84a Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Thu, 22 May 2025 19:04:21 +0530 Subject: [PATCH 047/316] fix: only allow selection --- mobile/lib/ui/collections/flex_grid_view.dart | 6 ++++-- mobile/lib/ui/settings/widgets/albums_widget_settings.dart | 1 + mobile/lib/ui/viewer/search_tab/people_section.dart | 3 +-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/mobile/lib/ui/collections/flex_grid_view.dart b/mobile/lib/ui/collections/flex_grid_view.dart index 188a55ba54..120b514657 100644 --- a/mobile/lib/ui/collections/flex_grid_view.dart +++ b/mobile/lib/ui/collections/flex_grid_view.dart @@ -42,6 +42,7 @@ class CollectionsFlexiGridViewWidget extends StatefulWidget { final bool shouldShowCreateAlbum; final SelectedAlbums? selectedAlbums; final double scrollBottomSafeArea; + final bool onlyAllowSelection; const CollectionsFlexiGridViewWidget( this.collections, { @@ -54,6 +55,7 @@ class CollectionsFlexiGridViewWidget extends StatefulWidget { this.shouldShowCreateAlbum = false, this.selectedAlbums, this.scrollBottomSafeArea = 8, + this.onlyAllowSelection = false, }); @override @@ -153,13 +155,13 @@ class _CollectionsFlexiGridViewWidgetState tag: widget.tag, selectedAlbums: widget.selectedAlbums, onTapCallback: (c) { - isAnyAlbumSelected + isAnyAlbumSelected || widget.onlyAllowSelection ? _toggleAlbumSelection(c) : _navigateToCollectionPage(c); }, onLongPressCallback: widget.enableSelectionMode ? (c) { - isAnyAlbumSelected + isAnyAlbumSelected || widget.onlyAllowSelection ? _navigateToCollectionPage(c) : _toggleAlbumSelection(c); } diff --git a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart index d9a3a83b34..e0b3e86038 100644 --- a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart @@ -172,6 +172,7 @@ class _AlbumsWidgetSettingsState extends State { selectedAlbums: _selectedAlbums, shouldShowCreateAlbum: false, enableSelectionMode: true, + onlyAllowSelection: true, ); } else if (snapshot.hasError) { return SliverToBoxAdapter( diff --git a/mobile/lib/ui/viewer/search_tab/people_section.dart b/mobile/lib/ui/viewer/search_tab/people_section.dart index ad05f4e621..b90b5d1efa 100644 --- a/mobile/lib/ui/viewer/search_tab/people_section.dart +++ b/mobile/lib/ui/viewer/search_tab/people_section.dart @@ -223,7 +223,7 @@ class PersonSearchExample extends StatelessWidget { final bool isSelected = selectedPeople?.isPersonSelected(id) ?? false; return GestureDetector( - onTap: isSelected + onTap: selectedPeople != null ? toggleSelection : () { RecentSearches().add(searchResult.name()); @@ -236,7 +236,6 @@ class PersonSearchExample extends StatelessWidget { ); } }, - onLongPress: toggleSelection, child: Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.center, From b2855cfd7241f5c9688543bb826cafbedecc4245 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Thu, 22 May 2025 19:20:16 +0530 Subject: [PATCH 048/316] fix: rank selected first --- .../settings/widgets/albums_widget_settings.dart | 6 +++++- .../search/result/people_section_all_page.dart | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart index e0b3e86038..c95ac6b032 100644 --- a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart @@ -1,3 +1,4 @@ +import "package:collection/collection.dart"; import 'package:flutter/material.dart'; import "package:photos/generated/l10n.dart"; import "package:photos/models/collection/collection.dart"; @@ -165,8 +166,11 @@ class _AlbumsWidgetSettingsState extends State { CollectionsService.instance.getCollectionForOnEnteSection(), builder: (context, snapshot) { if (snapshot.hasData) { + final data = snapshot.data!.sorted( + (a, b) => _selectedAlbums.albums.contains(b) ? 1 : -1, + ); return CollectionsFlexiGridViewWidget( - snapshot.data!, + data, displayLimitCount: snapshot.data!.length, shrinkWrap: true, selectedAlbums: _selectedAlbums, diff --git a/mobile/lib/ui/viewer/search/result/people_section_all_page.dart b/mobile/lib/ui/viewer/search/result/people_section_all_page.dart index a24e02d63b..0522d6a2f1 100644 --- a/mobile/lib/ui/viewer/search/result/people_section_all_page.dart +++ b/mobile/lib/ui/viewer/search/result/people_section_all_page.dart @@ -1,5 +1,6 @@ import "dart:async"; +import "package:collection/collection.dart"; import 'package:flutter/material.dart'; import "package:flutter_animate/flutter_animate.dart"; import "package:photos/events/event.dart"; @@ -120,6 +121,18 @@ class _PeopleSectionAllWidgetState extends State { ((crossAxisCount - 1) * gridPadding))) / crossAxisCount; + List data = results; + + if (widget.namedOnly && widget.selectedPeople != null) { + data = data.sorted( + (a, b) => widget.selectedPeople!.isPersonSelected( + (b.hierarchicalSearchFilter as FaceFilter).personId!, + ) + ? 1 + : -1, + ); + } + return GridView.builder( padding: const EdgeInsets.fromLTRB( horizontalEdgePadding, @@ -138,7 +151,7 @@ class _PeopleSectionAllWidgetState extends State { itemCount: results.length, itemBuilder: (context, index) { return PersonSearchExample( - searchResult: results[index], + searchResult: data[index], size: itemSize, selectedPeople: widget.selectedPeople, ) From 1bda14fb6f41090f88d315f727438dcb9a619c14 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Thu, 22 May 2025 19:57:08 +0530 Subject: [PATCH 049/316] fix: redirect with correct context --- mobile/ios/Podfile.lock | 114 +++++++++--------- .../services/album_home_widget_service.dart | 6 +- .../services/people_home_widget_service.dart | 10 +- 3 files changed, 69 insertions(+), 61 deletions(-) diff --git a/mobile/ios/Podfile.lock b/mobile/ios/Podfile.lock index b893a58a69..4cf4aaf71d 100644 --- a/mobile/ios/Podfile.lock +++ b/mobile/ios/Podfile.lock @@ -301,7 +301,7 @@ DEPENDENCIES: - wakelock_plus (from `.symlinks/plugins/wakelock_plus/ios`) SPEC REPOS: - https://github.com/ente-io/ffmpeg-kit-custom-repo-ios.git: + https://github.com/ente-io/ffmpeg-kit-custom-repo-ios: - ffmpeg_kit_custom trunk: - Firebase @@ -440,82 +440,82 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/wakelock_plus/ios" SPEC CHECKSUMS: - app_links: f3e17e4ee5e357b39d8b95290a9b2c299fca71c6 - background_fetch: 39f11371c0dce04b001c4bfd5e782bcccb0a85e2 - battery_info: b6c551049266af31556b93c9d9b9452cfec0219f - connectivity_plus: 2a701ffec2c0ae28a48cf7540e279787e77c447d - cupertino_http: 947a233f40cfea55167a49f2facc18434ea117ba - dart_ui_isolate: d5bcda83ca4b04f129d70eb90110b7a567aece14 - device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6 + app_links: 76b66b60cc809390ca1ad69bfd66b998d2387ac7 + background_fetch: 94b36ee293e82972852dba8ede1fbcd3bd3d9d57 + battery_info: 83f3aae7be2fccefab1d2bf06b8aa96f11c8bcdd + connectivity_plus: cb623214f4e1f6ef8fe7403d580fdad517d2f7dd + cupertino_http: 94ac07f5ff090b8effa6c5e2c47871d48ab7c86c + dart_ui_isolate: 46f6714abe6891313267153ef6f9748d8ecfcab1 + device_info_plus: 335f3ce08d2e174b9fdc3db3db0f4e3b1f66bd89 ffmpeg_kit_custom: 682b4f2f1ff1f8abae5a92f6c3540f2441d5be99 - ffmpeg_kit_flutter: 9dce4803991478c78c6fb9f972703301101095fe - file_saver: 503e386464dbe118f630e17b4c2e1190fa0cf808 + ffmpeg_kit_flutter: 915b345acc97d4142e8a9a8549d177ff10f043f5 + file_saver: 6cdbcddd690cb02b0c1a0c225b37cd805c2bf8b6 Firebase: d80354ed7f6df5f9aca55e9eb47cc4b634735eaf - firebase_core: 6e223dfa350b2edceb729cea505eaaef59330682 - firebase_messaging: 07fde77ae28c08616a1d4d870450efc2b38cf40d + firebase_core: 6cbed78b4f298ed103a9fd034e6dbc846320480f + firebase_messaging: 5e0adf2eb18b0ee59aa0c109314c091a0497ecac FirebaseCore: 99fe0c4b44a39f37d99e6404e02009d2db5d718d FirebaseCoreInternal: df24ce5af28864660ecbd13596fc8dd3a8c34629 FirebaseInstallations: 6c963bd2a86aca0481eef4f48f5a4df783ae5917 FirebaseMessaging: 487b634ccdf6f7b7ff180fdcb2a9935490f764e8 Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 - flutter_email_sender: e03bdda7637bcd3539bfe718fddd980e9508efaa - flutter_image_compress_common: ec1d45c362c9d30a3f6a0426c297f47c52007e3e - flutter_inappwebview_ios: 6f63631e2c62a7c350263b13fa5427aedefe81d4 - flutter_local_notifications: 4cde75091f6327eb8517fa068a0a5950212d2086 - flutter_native_splash: f71420956eb811e6d310720fee915f1d42852e7a - flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be - flutter_sodium: a00383520fc689c688b66fd3092984174712493e - flutter_timezone: ac3da59ac941ff1c98a2e1f0293420e020120282 - fluttertoast: 21eecd6935e7064cc1fcb733a4c5a428f3f24f0f + flutter_email_sender: aa1e9772696691d02cd91fea829856c11efb8e58 + flutter_image_compress_common: 1697a328fd72bfb335507c6bca1a65fa5ad87df1 + flutter_inappwebview_ios: b89ba3482b96fb25e00c967aae065701b66e9b99 + flutter_local_notifications: ad39620c743ea4c15127860f4b5641649a988100 + flutter_native_splash: 6cad9122ea0fad137d23137dd14b937f3e90b145 + flutter_secure_storage: 2c2ff13db9e0a5647389bff88b0ecac56e3f3418 + flutter_sodium: 7e4621538491834eba53bd524547854bcbbd6987 + flutter_timezone: 7c838e17ffd4645d261e87037e5bebf6d38fe544 + fluttertoast: 2c67e14dce98bbdb200df9e1acf610d7a6264ea1 GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7 GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d - home_widget: 0434835a4c9a75704264feff6be17ea40e0f0d57 - image_editor_common: d6f6644ae4a6de80481e89fe6d0a8c49e30b4b43 - in_app_purchase_storekit: a1ce04056e23eecc666b086040239da7619cd783 - integration_test: 252f60fa39af5e17c3aa9899d35d908a0721b573 - launcher_icon_switcher: 8e0ad2131a20c51c1dd939896ee32e70cd845b37 + home_widget: f169fc41fd807b4d46ab6615dc44d62adbf9f64f + image_editor_common: 3de87e7c4804f4ae24c8f8a998362b98c105cac1 + in_app_purchase_storekit: d1a48cb0f8b29dbf5f85f782f5dd79b21b90a5e6 + integration_test: 4a889634ef21a45d28d50d622cf412dc6d9f586e + launcher_icon_switcher: 84c218d233505aa7d8655d8fa61a3ba802c022da libwebp: 02b23773aedb6ff1fd38cec7a77b81414c6842a8 - local_auth_darwin: 66e40372f1c29f383a314c738c7446e2f7fdadc3 - local_auth_ios: 5046a18c018dd973247a0564496c8898dbb5adf9 + local_auth_darwin: 553ce4f9b16d3fdfeafce9cf042e7c9f77c1c391 + local_auth_ios: f7a1841beef3151d140a967c2e46f30637cdf451 Mantle: c5aa8794a29a022dfbbfc9799af95f477a69b62d - maps_launcher: 2e5b6a2d664ec6c27f82ffa81b74228d770ab203 - media_extension: 6618f07abd762cdbfaadf1b0c56a287e820f0c84 - media_kit_libs_ios_video: a5fe24bc7875ccd6378a0978c13185e1344651c1 - media_kit_video: 5da63f157170e5bf303bf85453b7ef6971218a2e - motion_sensors: 03f55b7c637a7e365a0b5f9697a449f9059d5d91 - motionphoto: 8b65ce50c7d7ff3c767534fc3768b2eed9ac24e4 - move_to_background: cd3091014529ec7829e342ad2d75c0a11f4378a5 + maps_launcher: edf829809ba9e894d70e569bab11c16352dedb45 + media_extension: 671e2567880d96c95c65c9a82ccceed8f2e309fd + media_kit_libs_ios_video: 5a18affdb97d1f5d466dc79988b13eff6c5e2854 + media_kit_video: 1746e198cb697d1ffb734b1d05ec429d1fcd1474 + motion_sensors: 741e702c17467b9569a92165dda8d4d88c6167f1 + motionphoto: 23e2aeb5c6380112f69468d71f970fa7438e5ed1 + move_to_background: 7e3467dd2a1d1013e98c9c1cb93fd53cd7ef9d84 nanopb: fad817b59e0457d11a5dfbde799381cd727c1275 - native_video_player: 5d36066807b680e181473e6890dde643ac85380d - objective_c: 77e887b5ba1827970907e10e832eec1683f3431d - onnxruntime: e7c2ae44385191eaad5ae64c935a72debaddc997 + native_video_player: e363dd14f6a498ad8a8f7e6486a0db046ad19f13 + objective_c: 89e720c30d716b036faf9c9684022048eee1eee2 + onnxruntime: f9b296392c96c42882be020a59dbeac6310d81b2 onnxruntime-c: a909204639a1f035f575127ac406f781ac797c9c onnxruntime-objc: b6fab0f1787aa6f7190c2013f03037df4718bd8b - open_mail_app: 70273c53f768beefdafbe310c3d9086e4da3cb02 + open_mail_app: 7314a609e88eed22d53671279e189af7a0ab0f11 OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94 - package_info_plus: c0502532a26c7662a62a356cebe2692ec5fe4ec4 - path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 - permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2 - photo_manager: ff695c7a1dd5bc379974953a2b5c0a293f7c4c8a - privacy_screen: 1a131c052ceb3c3659934b003b0d397c2381a24e + package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499 + path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564 + permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d + photo_manager: d2fbcc0f2d82458700ee6256a15018210a81d413 + privacy_screen: 3159a541f5d3a31bea916cfd4e58f9dc722b3fd4 PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 - receive_sharing_intent: 79c848f5b045674ad60b9fea3bafea59962ad2c1 + receive_sharing_intent: 222384f00ffe7e952bbfabaa9e3967cb87e5fe00 SDWebImage: f84b0feeb08d2d11e6a9b843cb06d75ebf5b8868 SDWebImageWebPCoder: e38c0a70396191361d60c092933e22c20d5b1380 Sentry: da60d980b197a46db0b35ea12cb8f39af48d8854 - sentry_flutter: 6a134f9d381e49f22ea25a67736cf0cf4d02ec9c - share_plus: 8b6f8b3447e494cca5317c8c3073de39b3600d1f - shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 - sqflite_darwin: 5a7236e3b501866c1c9befc6771dfd73ffb8702d + sentry_flutter: 942017adbe00f963061cb11ec260414a990b7a42 + share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a + shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7 + sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0 sqlite3: fc1400008a9b3525f5914ed715a5d1af0b8f4983 - sqlite3_flutter_libs: 069c435986dd4b63461aecd68f4b30be4a9e9daa - system_info_plus: 5393c8da281d899950d751713575fbf91c7709aa - ua_client_hints: aeabd123262c087f0ce151ef96fa3ab77bfc8b38 - url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe - video_player_avfoundation: 7c6c11d8470e1675df7397027218274b6d2360b3 - video_thumbnail: 94ba6705afbaa120b77287080424930f23ea0c40 - volume_controller: 2e3de73d6e7e81a0067310d17fb70f2f86d71ac7 - wakelock_plus: 373cfe59b235a6dd5837d0fb88791d2f13a90d56 + sqlite3_flutter_libs: 3c323550ef3b928bc0aa9513c841e45a7d242832 + system_info_plus: 555ce7047fbbf29154726db942ae785c29211740 + ua_client_hints: 92fe0d139619b73ec9fcb46cc7e079a26178f586 + url_launcher_ios: 694010445543906933d732453a59da0a173ae33d + video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b + video_thumbnail: 584ccfa55d8fd2f3d5507218b0a18d84c839c620 + volume_controller: 3657a1f65bedb98fa41ff7dc5793537919f31b12 + wakelock_plus: 04623e3f525556020ebd4034310f20fe7fda8b49 PODFILE CHECKSUM: a8ef88ad74ba499756207e7592c6071a96756d18 diff --git a/mobile/lib/services/album_home_widget_service.dart b/mobile/lib/services/album_home_widget_service.dart index 1fa5ff35ce..5088d126af 100644 --- a/mobile/lib/services/album_home_widget_service.dart +++ b/mobile/lib/services/album_home_widget_service.dart @@ -199,6 +199,8 @@ class AlbumHomeWidgetService { CollectionWithThumbnail(collection, thumbnail), ), ).ignore(); + final getAllFilesCollection = + await FilesDB.instance.getAllFilesCollection(collection.id); // Then open the specific file final file = await FilesDB.instance.getFile(fileId); @@ -211,8 +213,8 @@ class AlbumHomeWidgetService { context, DetailPage( DetailPageConfiguration( - List.unmodifiable([file]), - 0, + getAllFilesCollection, + getAllFilesCollection.indexOf(file), "albumwidget", ), ), diff --git a/mobile/lib/services/people_home_widget_service.dart b/mobile/lib/services/people_home_widget_service.dart index 6765f5c3b6..e65c53304a 100644 --- a/mobile/lib/services/people_home_widget_service.dart +++ b/mobile/lib/services/people_home_widget_service.dart @@ -178,12 +178,18 @@ class PeopleHomeWidgetService { forceCustomPageRoute: true, ).ignore(); + final clusterFiles = + await SearchService.instance.getClusterFilesForPersonID( + personId, + ); + final files = clusterFiles.entries.expand((e) => e.value).toList(); + await routeToPage( context, DetailPage( DetailPageConfiguration( - List.unmodifiable([file]), - 0, + files, + files.indexOf(file), "peoplewidget", ), ), From c37a0339d285f13ea3bcf10697918a2494a8e11c Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Thu, 22 May 2025 20:18:41 +0530 Subject: [PATCH 050/316] fix: default state ui --- mobile/lib/ui/settings/widgets/albums_widget_settings.dart | 4 ++-- mobile/lib/ui/settings/widgets/memories_widget_settings.dart | 4 ++-- mobile/lib/ui/settings/widgets/people_widget_settings.dart | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart index c95ac6b032..7eeb380c36 100644 --- a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart @@ -150,10 +150,10 @@ class _AlbumsWidgetSettingsState extends State { "assets/albums-widget-static.png", height: 160, ), - const SizedBox(height: 16), + const SizedBox(height: 20), Text( "Add an album widget to your homescreen and come back here to customize", - style: textTheme.largeFaint, + style: textTheme.smallFaint, textAlign: TextAlign.center, ), ], diff --git a/mobile/lib/ui/settings/widgets/memories_widget_settings.dart b/mobile/lib/ui/settings/widgets/memories_widget_settings.dart index d4ca2d4d69..9bab0dbd15 100644 --- a/mobile/lib/ui/settings/widgets/memories_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/memories_widget_settings.dart @@ -128,10 +128,10 @@ class _MemoriesWidgetSettingsState extends State { "assets/memories-widget-static.png", height: 160, ), - const SizedBox(height: 16), + const SizedBox(height: 20), Text( "Add a memories widget to your homescreen and come back here to customize", - style: textTheme.largeFaint, + style: textTheme.smallFaint, textAlign: TextAlign.center, ), ], diff --git a/mobile/lib/ui/settings/widgets/people_widget_settings.dart b/mobile/lib/ui/settings/widgets/people_widget_settings.dart index 09f376c4d6..7323bee2c3 100644 --- a/mobile/lib/ui/settings/widgets/people_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/people_widget_settings.dart @@ -122,10 +122,10 @@ class _PeopleWidgetSettingsState extends State { "assets/people-widget-static.png", height: 160, ), - const SizedBox(height: 16), + const SizedBox(height: 20), Text( "Add a people widget to your homescreen and come back here to customize", - style: textTheme.largeFaint, + style: textTheme.smallFaint, textAlign: TextAlign.center, ), ], From ab1a8aa5920ad176594e383e7ec3a958646fda56 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Thu, 22 May 2025 20:21:48 +0530 Subject: [PATCH 051/316] fix: don't repeat --- .../kotlin/io/ente/photos/EnteAlbumsWidgetProvider.kt | 8 -------- .../kotlin/io/ente/photos/EnteMemoryWidgetProvider.kt | 8 -------- .../kotlin/io/ente/photos/EntePeopleWidgetProvider.kt | 8 -------- 3 files changed, 24 deletions(-) diff --git a/mobile/android/app/src/main/kotlin/io/ente/photos/EnteAlbumsWidgetProvider.kt b/mobile/android/app/src/main/kotlin/io/ente/photos/EnteAlbumsWidgetProvider.kt index 3982311593..147d5ddea6 100644 --- a/mobile/android/app/src/main/kotlin/io/ente/photos/EnteAlbumsWidgetProvider.kt +++ b/mobile/android/app/src/main/kotlin/io/ente/photos/EnteAlbumsWidgetProvider.kt @@ -97,10 +97,6 @@ class EnteAlbumsWidgetProvider : HomeWidgetProvider() { R.id.widget_img, View.VISIBLE ) - setViewVisibility( - R.id.widget_placeholder_container, - View.VISIBLE - ) setViewVisibility( R.id.widget_subtitle, View.VISIBLE @@ -154,10 +150,6 @@ class EnteAlbumsWidgetProvider : HomeWidgetProvider() { R.id.widget_img, View.GONE ) - setViewVisibility( - R.id.widget_placeholder_container, - View.GONE - ) setViewVisibility( R.id.widget_subtitle, View.GONE diff --git a/mobile/android/app/src/main/kotlin/io/ente/photos/EnteMemoryWidgetProvider.kt b/mobile/android/app/src/main/kotlin/io/ente/photos/EnteMemoryWidgetProvider.kt index 036fb4872a..8e9c0f9d4a 100644 --- a/mobile/android/app/src/main/kotlin/io/ente/photos/EnteMemoryWidgetProvider.kt +++ b/mobile/android/app/src/main/kotlin/io/ente/photos/EnteMemoryWidgetProvider.kt @@ -91,10 +91,6 @@ class EnteMemoryWidgetProvider : HomeWidgetProvider() { R.id.widget_img, View.VISIBLE ) - setViewVisibility( - R.id.widget_placeholder_container, - View.VISIBLE - ) setViewVisibility( R.id.widget_subtitle, View.VISIBLE @@ -148,10 +144,6 @@ class EnteMemoryWidgetProvider : HomeWidgetProvider() { R.id.widget_img, View.GONE ) - setViewVisibility( - R.id.widget_placeholder_container, - View.GONE - ) setViewVisibility( R.id.widget_subtitle, View.GONE diff --git a/mobile/android/app/src/main/kotlin/io/ente/photos/EntePeopleWidgetProvider.kt b/mobile/android/app/src/main/kotlin/io/ente/photos/EntePeopleWidgetProvider.kt index e885d48370..70f15a518c 100644 --- a/mobile/android/app/src/main/kotlin/io/ente/photos/EntePeopleWidgetProvider.kt +++ b/mobile/android/app/src/main/kotlin/io/ente/photos/EntePeopleWidgetProvider.kt @@ -97,10 +97,6 @@ class EntePeopleWidgetProvider : HomeWidgetProvider() { R.id.widget_img, View.VISIBLE ) - setViewVisibility( - R.id.widget_placeholder_container, - View.VISIBLE - ) setViewVisibility( R.id.widget_subtitle, View.VISIBLE @@ -154,10 +150,6 @@ class EntePeopleWidgetProvider : HomeWidgetProvider() { R.id.widget_img, View.GONE ) - setViewVisibility( - R.id.widget_placeholder_container, - View.GONE - ) setViewVisibility( R.id.widget_subtitle, View.GONE From 682e4a913f2643be9ea6c06dd44ec9f2b8cc590a Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Thu, 22 May 2025 20:52:13 +0530 Subject: [PATCH 052/316] fix: ui stuff --- mobile/lib/ui/settings/widgets/albums_widget_settings.dart | 2 +- mobile/lib/ui/settings/widgets/memories_widget_settings.dart | 2 +- mobile/lib/ui/settings/widgets/people_widget_settings.dart | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart index 7eeb380c36..cbf250986e 100644 --- a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart @@ -144,7 +144,7 @@ class _AlbumsWidgetSettingsState extends State { crossAxisAlignment: CrossAxisAlignment.center, children: [ SizedBox( - height: MediaQuery.sizeOf(context).height * 0.5 - 300, + height: MediaQuery.sizeOf(context).height * 0.5 - 200, ), Image.asset( "assets/albums-widget-static.png", diff --git a/mobile/lib/ui/settings/widgets/memories_widget_settings.dart b/mobile/lib/ui/settings/widgets/memories_widget_settings.dart index 9bab0dbd15..542e7b6ea5 100644 --- a/mobile/lib/ui/settings/widgets/memories_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/memories_widget_settings.dart @@ -122,7 +122,7 @@ class _MemoriesWidgetSettingsState extends State { crossAxisAlignment: CrossAxisAlignment.center, children: [ SizedBox( - height: MediaQuery.sizeOf(context).height * 0.5 - 300, + height: MediaQuery.sizeOf(context).height * 0.5 - 200, ), Image.asset( "assets/memories-widget-static.png", diff --git a/mobile/lib/ui/settings/widgets/people_widget_settings.dart b/mobile/lib/ui/settings/widgets/people_widget_settings.dart index 7323bee2c3..d420ebfba5 100644 --- a/mobile/lib/ui/settings/widgets/people_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/people_widget_settings.dart @@ -116,7 +116,7 @@ class _PeopleWidgetSettingsState extends State { crossAxisAlignment: CrossAxisAlignment.center, children: [ SizedBox( - height: MediaQuery.sizeOf(context).height * 0.5 - 300, + height: MediaQuery.sizeOf(context).height * 0.5 - 200, ), Image.asset( "assets/people-widget-static.png", From d528d97a0fc93d322da657f3ff13380c1a8de126 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Thu, 22 May 2025 21:00:48 +0530 Subject: [PATCH 053/316] fix: add got all widget logic --- .../services/album_home_widget_service.dart | 29 +++++++++++++++++-- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/mobile/lib/services/album_home_widget_service.dart b/mobile/lib/services/album_home_widget_service.dart index 5088d126af..98b5f65554 100644 --- a/mobile/lib/services/album_home_widget_service.dart +++ b/mobile/lib/services/album_home_widget_service.dart @@ -26,6 +26,7 @@ class AlbumHomeWidgetService { static const String ANDROID_CLASS_NAME = "EnteAlbumsWidgetProvider"; static const String IOS_CLASS_NAME = "EnteAlbumWidget"; static const String ALBUMS_CHANGED_KEY = "albumsChanged.widget"; + static const String GOT_ALL_KEY = "gotAllAlbums.widget"; static const String TOTAL_ALBUMS_KEY = "totalAlbums"; static const int MAX_ALBUMS_LIMIT = 50; @@ -54,6 +55,7 @@ class AlbumHomeWidgetService { await _albumsForceRefreshLock.synchronized(() async { if (await _hasAnyBlockers()) { + await clearWidget(); return; } @@ -104,15 +106,29 @@ class AlbumHomeWidgetService { _logger.info("Clearing AlbumsHomeWidget"); await _setTotalAlbums(null); + await updateGotAll(true); _hasSyncedAlbums = false; await _refreshWidget(message: "AlbumsHomeWidget cleared & updated"); } + bool getAlbumsChanged() { + return _prefs.getBool(ALBUMS_CHANGED_KEY) ?? false; + } + Future updateAlbumsChanged(bool value) async { _logger.info("Updating albums changed flag to $value"); await _prefs.setBool(ALBUMS_CHANGED_KEY, value); } + bool checkGotAll() { + return _prefs.getBool(GOT_ALL_KEY) ?? false; + } + + Future updateGotAll(bool value) async { + _logger.info("Updating got all albums flag to $value"); + await _prefs.setBool(GOT_ALL_KEY, value); + } + Future checkPendingAlbumsSync({bool addDelay = true}) async { if (addDelay) { await Future.delayed(const Duration(seconds: 5)); @@ -283,8 +299,11 @@ class AlbumHomeWidgetService { final lastHash = getAlbumsLastHash(); if (currentHash == lastHash) { - _logger.warning("No changes detected in album content"); - return false; + final didGotAllValues = checkGotAll(); + if (didGotAllValues) { + _logger.info("Albums already synced, no action needed"); + return false; + } } return true; @@ -372,6 +391,8 @@ class AlbumHomeWidgetService { final bool isWidgetPresent = await countHomeWidgets() > 0; final limit = isWidgetPresent ? MAX_ALBUMS_LIMIT : 5; + await updateGotAll(false); + for (final entry in albumsWithFiles.entries) { final albumId = entry.key; final albumName = entry.value.$1; @@ -393,13 +414,14 @@ class AlbumHomeWidgetService { if (renderResult != null) { // Check for blockers again before continuing if (await _hasAnyBlockers()) { + await clearWidget(); return; } await _setTotalAlbums(renderedCount); // Show update toast after first item is rendered - if (renderedCount == 1) { + if (renderedCount == 1 && albumFiles.length > 1) { await _refreshWidget( message: "First album fetched, updating widget", ); @@ -425,6 +447,7 @@ class AlbumHomeWidgetService { final hash = _calculateHash(selectedAlbumIds); await setAlbumsLastHash(hash); + await updateGotAll(isWidgetPresent); if (renderedCount == 0) { return; } From 7af59a1ecf0ff3274c1b7da5e5ba9e4c270907f3 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Thu, 22 May 2025 22:24:40 +0530 Subject: [PATCH 054/316] Schedule test notifications --- .../debug/ml_debug_section_widget.dart | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/mobile/lib/ui/settings/debug/ml_debug_section_widget.dart b/mobile/lib/ui/settings/debug/ml_debug_section_widget.dart index c9cea0f76f..e3ad74a585 100644 --- a/mobile/lib/ui/settings/debug/ml_debug_section_widget.dart +++ b/mobile/lib/ui/settings/debug/ml_debug_section_widget.dart @@ -106,6 +106,81 @@ class _MLDebugSectionWidgetState extends State { }, ), sectionOptionSpacing, + MenuItemWidget( + captionedTextWidget: const CaptionedTextWidget( + title: "Schedule notification 10 seconds", + ), + pressedColor: getEnteColorScheme(context).fillFaint, + trailingIcon: Icons.chevron_right_outlined, + trailingIconIsMuted: true, + onTap: () async { + try { + await NotificationService.instance.scheduleNotification( + "test", + "test", + id: 10, + dateTime: DateTime.now().add( + const Duration(seconds: 10), + ), + ); + showShortToast(context, 'done'); + } catch (e, s) { + logger.severe('schedule notification failed ', e, s); + await showGenericErrorDialog(context: context, error: e); + } + }, + ), + sectionOptionSpacing, + MenuItemWidget( + captionedTextWidget: const CaptionedTextWidget( + title: "Schedule notification 1 hour", + ), + pressedColor: getEnteColorScheme(context).fillFaint, + trailingIcon: Icons.chevron_right_outlined, + trailingIconIsMuted: true, + onTap: () async { + try { + await NotificationService.instance.scheduleNotification( + "test", + "test", + id: 11, + dateTime: DateTime.now().add( + const Duration(hours: 1), + ), + ); + showShortToast(context, 'done'); + } catch (e, s) { + logger.severe('schedule notification failed ', e, s); + await showGenericErrorDialog(context: context, error: e); + } + }, + ), + sectionOptionSpacing, + MenuItemWidget( + captionedTextWidget: const CaptionedTextWidget( + title: "Schedule notification 12 hours", + ), + pressedColor: getEnteColorScheme(context).fillFaint, + trailingIcon: Icons.chevron_right_outlined, + trailingIconIsMuted: true, + onTap: () async { + try { + await NotificationService.instance.scheduleNotification( + "test", + "test", + id: 12, + dateTime: DateTime.now().add( + const Duration(hours: 12), + ), + ); + showShortToast(context, 'done'); + } catch (e, s) { + logger.severe('schedule notification failed ', e, s); + await showGenericErrorDialog(context: context, error: e); + } + }, + ), + sectionOptionSpacing, MenuItemWidget( captionedTextWidget: FutureBuilder( future: getIndexStatus(), From 4510edf8bdfae0550c2998ecf5df60f3d2b5333c Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Thu, 22 May 2025 22:24:59 +0530 Subject: [PATCH 055/316] Update notification dependency --- mobile/lib/services/notification_service.dart | 2 -- mobile/pubspec.lock | 24 ++++++++++++------- mobile/pubspec.yaml | 4 ++-- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/mobile/lib/services/notification_service.dart b/mobile/lib/services/notification_service.dart index b56e9c5f50..af228efcb3 100644 --- a/mobile/lib/services/notification_service.dart +++ b/mobile/lib/services/notification_service.dart @@ -192,8 +192,6 @@ class NotificationService { message, scheduledDate, platformChannelSpecs, - uiLocalNotificationDateInterpretation: - UILocalNotificationDateInterpretation.wallClockTime, androidScheduleMode: AndroidScheduleMode.inexactAllowWhileIdle, payload: payload, ); diff --git a/mobile/pubspec.lock b/mobile/pubspec.lock index 14ad1f5347..80d1f2a107 100644 --- a/mobile/pubspec.lock +++ b/mobile/pubspec.lock @@ -925,26 +925,34 @@ packages: dependency: "direct main" description: name: flutter_local_notifications - sha256: "674173fd3c9eda9d4c8528da2ce0ea69f161577495a9cc835a2a4ecd7eadeb35" + sha256: b94a50aabbe56ef254f95f3be75640f99120429f0a153b2dc30143cffc9bfdf3 url: "https://pub.dev" source: hosted - version: "17.2.4" + version: "19.2.1" flutter_local_notifications_linux: dependency: transitive description: name: flutter_local_notifications_linux - sha256: c49bd06165cad9beeb79090b18cd1eb0296f4bf4b23b84426e37dd7c027fc3af + sha256: e3c277b2daab8e36ac5a6820536668d07e83851aeeb79c446e525a70710770a5 url: "https://pub.dev" source: hosted - version: "4.0.1" + version: "6.0.0" flutter_local_notifications_platform_interface: dependency: transitive description: name: flutter_local_notifications_platform_interface - sha256: "85f8d07fe708c1bdcf45037f2c0109753b26ae077e9d9e899d55971711a4ea66" + sha256: "2569b973fc9d1f63a37410a9f7c1c552081226c597190cb359ef5d5762d1631c" url: "https://pub.dev" source: hosted - version: "7.2.0" + version: "9.0.0" + flutter_local_notifications_windows: + dependency: transitive + description: + name: flutter_local_notifications_windows + sha256: f8fc0652a601f83419d623c85723a3e82ad81f92b33eaa9bcc21ea1b94773e6e + url: "https://pub.dev" + source: hosted + version: "1.0.0" flutter_localizations: dependency: "direct main" description: flutter @@ -2529,10 +2537,10 @@ packages: dependency: "direct main" description: name: timezone - sha256: "2236ec079a174ce07434e89fcd3fcda430025eb7692244139a9cf54fdcf1fc7d" + sha256: dd14a3b83cfd7cb19e7888f1cbc20f258b8d71b54c06f79ac585f14093a287d1 url: "https://pub.dev" source: hosted - version: "0.9.4" + version: "0.10.1" timing: dependency: transitive description: diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index 052cb639db..94ed27c2d4 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -86,7 +86,7 @@ dependencies: flutter_email_sender: ^7.0.0 flutter_image_compress: ^2.4.0 flutter_inappwebview: ^6.1.4 - flutter_local_notifications: ^17.2.2 + flutter_local_notifications: ^19.2.1 flutter_localizations: sdk: flutter flutter_map: ^6.2.0 @@ -190,7 +190,7 @@ dependencies: syncfusion_flutter_sliders: ^25.2.5 synchronized: ^3.3.0+3 system_info_plus: ^0.0.6 - timezone: ^0.9.4 + timezone: ^0.10.0 tuple: ^2.0.0 ua_client_hints: ^1.4.0 url_launcher: ^6.3.0 From deaa9a703dd92605cf7a1893db5e6cdd4d7c8886 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Thu, 22 May 2025 22:26:02 +0530 Subject: [PATCH 056/316] Bump for internal release --- mobile/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index 94ed27c2d4..bdb5fd4c17 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -12,7 +12,7 @@ description: ente photos application # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 1.0.19+1049 +version: 1.0.20+1050 publish_to: none environment: From 28822a8dc1fb21c5a8bbb5ab59c63899417074cd Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Thu, 22 May 2025 22:38:24 +0530 Subject: [PATCH 057/316] Swallow notification scheduling issues --- mobile/lib/services/notification_service.dart | 131 ++++++++++-------- 1 file changed, 72 insertions(+), 59 deletions(-) diff --git a/mobile/lib/services/notification_service.dart b/mobile/lib/services/notification_service.dart index af228efcb3..c989a35cfc 100644 --- a/mobile/lib/services/notification_service.dart +++ b/mobile/lib/services/notification_service.dart @@ -151,74 +151,87 @@ class NotificationService { String payload = "ente://home", required DateTime dateTime, }) async { - _logger.info( - "Scheduling notification with: $title, $message, $channelID, $channelName, $payload", - ); - await initTimezones(); - if (!hasGrantedPermissions()) { - _logger.warning("Notification permissions not granted"); - await requestPermissions(); + try { + _logger.info( + "Scheduling notification with: $title, $message, $channelID, $channelName, $payload", + ); + await initTimezones(); if (!hasGrantedPermissions()) { - _logger.severe("Failed to get notification permissions"); - return; + _logger.warning("Notification permissions not granted"); + await requestPermissions(); + if (!hasGrantedPermissions()) { + _logger.severe("Failed to get notification permissions"); + return; + } + } else { + _logger.info("Notification permissions already granted"); } - } else { - _logger.info("Notification permissions already granted"); + final androidSpecs = AndroidNotificationDetails( + channelID, + channelName, + channelDescription: 'ente alerts', + importance: Importance.max, + priority: Priority.high, + category: AndroidNotificationCategory.reminder, + showWhen: false, + ); + final iosSpecs = DarwinNotificationDetails(threadIdentifier: channelID); + final platformChannelSpecs = + NotificationDetails(android: androidSpecs, iOS: iosSpecs); + final scheduledDate = tz.TZDateTime.local( + dateTime.year, + dateTime.month, + dateTime.day, + dateTime.hour, + dateTime.minute, + dateTime.second, + ); + // final tz.TZDateTime scheduledDate = tz.TZDateTime.now(tz.local).add(delay); + await _notificationsPlugin.zonedSchedule( + id, + title, + message, + scheduledDate, + platformChannelSpecs, + androidScheduleMode: AndroidScheduleMode.inexactAllowWhileIdle, + payload: payload, + ); + _logger.info( + "Scheduled notification with: $title, $message, $channelID, $channelName, $payload", + ); + } catch (e, s) { + // For now we're swallowing any exceptions here because we don't want the memories logic to get disturbed + _logger.severe( + "Something went wrong while scheduling notification", + e, + s, + ); } - final androidSpecs = AndroidNotificationDetails( - channelID, - channelName, - channelDescription: 'ente alerts', - importance: Importance.max, - priority: Priority.high, - category: AndroidNotificationCategory.reminder, - showWhen: false, - ); - final iosSpecs = DarwinNotificationDetails(threadIdentifier: channelID); - final platformChannelSpecs = - NotificationDetails(android: androidSpecs, iOS: iosSpecs); - final scheduledDate = tz.TZDateTime.local( - dateTime.year, - dateTime.month, - dateTime.day, - dateTime.hour, - dateTime.minute, - dateTime.second, - ); - // final tz.TZDateTime scheduledDate = tz.TZDateTime.now(tz.local).add(delay); - await _notificationsPlugin.zonedSchedule( - id, - title, - message, - scheduledDate, - platformChannelSpecs, - androidScheduleMode: AndroidScheduleMode.inexactAllowWhileIdle, - payload: payload, - ); - _logger.info( - "Scheduled notification with: $title, $message, $channelID, $channelName, $payload", - ); } Future clearAllScheduledNotifications({ String? containingPayload, }) async { - _logger.info("Clearing all scheduled notifications"); - final pending = await _notificationsPlugin.pendingNotificationRequests(); - if (pending.isEmpty) { - _logger.info("No pending notifications to clear"); - return; - } - for (final request in pending) { - if (containingPayload != null && - !request.payload.toString().contains(containingPayload)) { - _logger.info( - "Skip clearing of notification with id: ${request.id} and payload: ${request.payload}", - ); - continue; + try { + _logger.info("Clearing all scheduled notifications"); + final pending = await _notificationsPlugin.pendingNotificationRequests(); + if (pending.isEmpty) { + _logger.info("No pending notifications to clear"); + return; } - _logger.info("Clearing notification with id: ${request.id}"); - await _notificationsPlugin.cancel(request.id); + for (final request in pending) { + if (containingPayload != null && + !request.payload.toString().contains(containingPayload)) { + _logger.info( + "Skip clearing of notification with id: ${request.id} and payload: ${request.payload}", + ); + continue; + } + _logger.info("Clearing notification with id: ${request.id}"); + await _notificationsPlugin.cancel(request.id); + } + } catch (e, s) { + _logger.severe("Something is wrong with scheduled notifications", e, s); } } From e998502b536c212aea6eade990fb9c9a7c95af67 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Thu, 22 May 2025 23:50:07 +0530 Subject: [PATCH 058/316] fix: add a status key to check if partial sync was did but a full is required now (like previously widget was not their so it was fine to sync only 5 images but now since widget is there a full sync is compulsory) --- .../services/album_home_widget_service.dart | 40 ++++++++++++------- mobile/lib/services/home_widget_service.dart | 7 ++++ .../services/memory_home_widget_service.dart | 34 ++++++++++++++-- .../services/people_home_widget_service.dart | 35 +++++++++++++++- 4 files changed, 98 insertions(+), 18 deletions(-) diff --git a/mobile/lib/services/album_home_widget_service.dart b/mobile/lib/services/album_home_widget_service.dart index 98b5f65554..7f440cb9f9 100644 --- a/mobile/lib/services/album_home_widget_service.dart +++ b/mobile/lib/services/album_home_widget_service.dart @@ -1,5 +1,6 @@ import 'dart:convert'; +import "package:collection/collection.dart"; import 'package:crypto/crypto.dart'; import 'package:flutter/material.dart'; import 'package:fluttertoast/fluttertoast.dart'; @@ -26,7 +27,7 @@ class AlbumHomeWidgetService { static const String ANDROID_CLASS_NAME = "EnteAlbumsWidgetProvider"; static const String IOS_CLASS_NAME = "EnteAlbumWidget"; static const String ALBUMS_CHANGED_KEY = "albumsChanged.widget"; - static const String GOT_ALL_KEY = "gotAllAlbums.widget"; + static const String ALBUMS_STATUS_KEY = "albumsStatusKey.widget"; static const String TOTAL_ALBUMS_KEY = "totalAlbums"; static const int MAX_ALBUMS_LIMIT = 50; @@ -106,7 +107,7 @@ class AlbumHomeWidgetService { _logger.info("Clearing AlbumsHomeWidget"); await _setTotalAlbums(null); - await updateGotAll(true); + await updateAlbumsStatus(WidgetStatus.syncedEmpty); _hasSyncedAlbums = false; await _refreshWidget(message: "AlbumsHomeWidget cleared & updated"); } @@ -120,13 +121,15 @@ class AlbumHomeWidgetService { await _prefs.setBool(ALBUMS_CHANGED_KEY, value); } - bool checkGotAll() { - return _prefs.getBool(GOT_ALL_KEY) ?? false; + WidgetStatus getAlbumsStatus() { + return WidgetStatus.values.firstWhereOrNull( + (v) => v.index == (_prefs.getInt(ALBUMS_STATUS_KEY) ?? 0), + ) ?? + WidgetStatus.notSynced; } - Future updateGotAll(bool value) async { - _logger.info("Updating got all albums flag to $value"); - await _prefs.setBool(GOT_ALL_KEY, value); + Future updateAlbumsStatus(WidgetStatus value) async { + await _prefs.setInt(ALBUMS_STATUS_KEY, value.index); } Future checkPendingAlbumsSync({bool addDelay = true}) async { @@ -299,10 +302,15 @@ class AlbumHomeWidgetService { final lastHash = getAlbumsLastHash(); if (currentHash == lastHash) { - final didGotAllValues = checkGotAll(); - if (didGotAllValues) { - _logger.info("Albums already synced, no action needed"); - return false; + final saveStatus = getAlbumsStatus(); + + switch (saveStatus) { + case WidgetStatus.syncedPartially: + return await countHomeWidgets() > 0; + case WidgetStatus.syncedEmpty: + case WidgetStatus.syncedAll: + return false; + default: } } @@ -391,7 +399,7 @@ class AlbumHomeWidgetService { final bool isWidgetPresent = await countHomeWidgets() > 0; final limit = isWidgetPresent ? MAX_ALBUMS_LIMIT : 5; - await updateGotAll(false); + await updateAlbumsStatus(WidgetStatus.notSynced); for (final entry in albumsWithFiles.entries) { final albumId = entry.key; @@ -421,10 +429,11 @@ class AlbumHomeWidgetService { await _setTotalAlbums(renderedCount); // Show update toast after first item is rendered - if (renderedCount == 1 && albumFiles.length > 1) { + if (renderedCount == 1) { await _refreshWidget( message: "First album fetched, updating widget", ); + await updateAlbumsStatus(WidgetStatus.syncedPartially); } renderedCount++; @@ -447,11 +456,14 @@ class AlbumHomeWidgetService { final hash = _calculateHash(selectedAlbumIds); await setAlbumsLastHash(hash); - await updateGotAll(isWidgetPresent); if (renderedCount == 0) { return; } + if (isWidgetPresent) { + await updateAlbumsStatus(WidgetStatus.syncedAll); + } + await _refreshWidget( message: "Switched to next albums set, total: $renderedCount", ); diff --git a/mobile/lib/services/home_widget_service.dart b/mobile/lib/services/home_widget_service.dart index 29256d2d20..aac3853aad 100644 --- a/mobile/lib/services/home_widget_service.dart +++ b/mobile/lib/services/home_widget_service.dart @@ -16,6 +16,13 @@ import 'package:photos/services/smart_memories_service.dart'; import 'package:photos/utils/thumbnail_util.dart'; import 'package:shared_preferences/shared_preferences.dart'; +enum WidgetStatus { + notSynced, + syncedPartially, + syncedEmpty, + syncedAll, +} + /// Service to manage home screen widgets across the application /// Handles widget initialization, updates, and interaction with platform-specific widget APIs class HomeWidgetService { diff --git a/mobile/lib/services/memory_home_widget_service.dart b/mobile/lib/services/memory_home_widget_service.dart index 8076f75cf7..14e6af4663 100644 --- a/mobile/lib/services/memory_home_widget_service.dart +++ b/mobile/lib/services/memory_home_widget_service.dart @@ -1,3 +1,4 @@ +import "package:collection/collection.dart"; import 'package:flutter/material.dart'; import 'package:fluttertoast/fluttertoast.dart'; import 'package:logging/logging.dart'; @@ -18,6 +19,7 @@ class MemoryHomeWidgetService { "selectedOnThisDayMemoriesHW"; static const String ANDROID_CLASS_NAME = "EnteMemoryWidgetProvider"; static const String IOS_CLASS_NAME = "EnteMemoryWidget"; + static const String MEMORY_STATUS_KEY = "memoryStatusKey.widget"; static const String MEMORY_CHANGED_KEY = "memoryChanged.widget"; static const String TOTAL_MEMORIES_KEY = "totalMemories"; static const int MAX_MEMORIES_LIMIT = 50; @@ -100,6 +102,7 @@ class MemoryHomeWidgetService { _logger.info("Clearing MemoryHomeWidget"); await _setTotalMemories(null); _hasSyncedMemory = false; + await updateMemoriesStatus(WidgetStatus.syncedEmpty); await _refreshWidget(message: "MemoryHomeWidget cleared & updated"); } @@ -108,6 +111,17 @@ class MemoryHomeWidgetService { await _prefs.setBool(MEMORY_CHANGED_KEY, value); } + WidgetStatus getMemoriesStatus() { + return WidgetStatus.values.firstWhereOrNull( + (v) => v.index == (_prefs.getInt(MEMORY_STATUS_KEY) ?? 0), + ) ?? + WidgetStatus.notSynced; + } + + Future updateMemoriesStatus(WidgetStatus value) async { + await _prefs.setInt(MEMORY_STATUS_KEY, value.index); + } + Future checkPendingMemorySync({bool addDelay = true}) async { if (addDelay) { await Future.delayed(const Duration(seconds: 5)); @@ -205,9 +219,16 @@ class MemoryHomeWidgetService { return true; } - // Check if we should force fetch new memories - final cachedMemories = await _getMemoriesForWidget(); - return isWidgetEmpty && cachedMemories.isNotEmpty; + final memoriesStatus = getMemoriesStatus(); + switch (memoriesStatus) { + case WidgetStatus.notSynced: + return true; + case WidgetStatus.syncedPartially: + return await countHomeWidgets() > 0; + case WidgetStatus.syncedEmpty: + case WidgetStatus.syncedAll: + return false; + } } Future> _getMemoriesForWidget() async { @@ -286,6 +307,8 @@ class MemoryHomeWidgetService { final bool isWidgetPresent = await countHomeWidgets() > 0; final limit = isWidgetPresent ? MAX_MEMORIES_LIMIT : 5; + await updateMemoriesStatus(WidgetStatus.notSynced); + for (final entry in memoriesWithFiles.entries) { final memoryTitle = entry.key; final memoryFiles = entry.value; @@ -311,6 +334,7 @@ class MemoryHomeWidgetService { await _refreshWidget( message: "First memory fetched, updating widget", ); + await updateMemoriesStatus(WidgetStatus.syncedPartially); } renderedCount++; @@ -334,6 +358,10 @@ class MemoryHomeWidgetService { return; } + if (isWidgetPresent) { + await updateMemoriesStatus(WidgetStatus.syncedAll); + } + await _refreshWidget( message: "Switched to next memory set, total: $renderedCount", ); diff --git a/mobile/lib/services/people_home_widget_service.dart b/mobile/lib/services/people_home_widget_service.dart index e65c53304a..5150ca0218 100644 --- a/mobile/lib/services/people_home_widget_service.dart +++ b/mobile/lib/services/people_home_widget_service.dart @@ -1,3 +1,4 @@ +import "package:collection/collection.dart"; import 'package:flutter/material.dart'; import 'package:fluttertoast/fluttertoast.dart'; import 'package:logging/logging.dart'; @@ -22,6 +23,7 @@ class PeopleHomeWidgetService { static const String SELECTED_PEOPLE_KEY = "selectedPeopleHW"; static const String ANDROID_CLASS_NAME = "EntePeopleWidgetProvider"; static const String IOS_CLASS_NAME = "EntePeopleWidget"; + static const String PEOPLE_STATUS_KEY = "peopleStatusKey.widget"; static const String PEOPLE_CHANGED_KEY = "peopleChanged.widget"; static const String TOTAL_PEOPLE_KEY = "totalPeople"; static const int MAX_PEOPLE_LIMIT = 50; @@ -107,9 +109,21 @@ class PeopleHomeWidgetService { _logger.info("Clearing PeopleHomeWidget"); await _setTotalPeople(null); _hasSyncedPeople = false; + await updatePeopleStatus(WidgetStatus.syncedEmpty); await _refreshWidget(message: "PeopleHomeWidget cleared & updated"); } + WidgetStatus getPeopleStatus() { + return WidgetStatus.values.firstWhereOrNull( + (v) => v.index == (_prefs.getInt(PEOPLE_STATUS_KEY) ?? 0), + ) ?? + WidgetStatus.notSynced; + } + + Future updatePeopleStatus(WidgetStatus value) async { + await _prefs.setInt(PEOPLE_STATUS_KEY, value.index); + } + Future updatePeopleChanged(bool value) async { _logger.info("Updating people changed flag to $value"); await _prefs.setBool(PEOPLE_CHANGED_KEY, value); @@ -253,7 +267,20 @@ class PeopleHomeWidgetService { Future _shouldForceFetchPeople(bool isPeopleEmpty) async { final peopleChanged = _prefs.getBool(PEOPLE_CHANGED_KEY); - return peopleChanged ?? true; + if (peopleChanged ?? true) { + return true; + } + + final peopleStatus = getPeopleStatus(); + switch (peopleStatus) { + case WidgetStatus.notSynced: + return true; + case WidgetStatus.syncedPartially: + return await countHomeWidgets() > 0; + case WidgetStatus.syncedEmpty: + case WidgetStatus.syncedAll: + return false; + } } Future> _getEffectiveSelectedPeopleIds() async { @@ -351,6 +378,7 @@ class PeopleHomeWidgetService { final bool isWidgetPresent = await countHomeWidgets() > 0; final limit = isWidgetPresent ? MAX_PEOPLE_LIMIT : 5; + await updatePeopleStatus(WidgetStatus.notSynced); for (final entry in peopleWithFiles.entries) { final personId = entry.key; @@ -383,6 +411,7 @@ class PeopleHomeWidgetService { await _refreshWidget( message: "First person fetched, updating widget", ); + await updatePeopleStatus(WidgetStatus.syncedPartially); } renderedCount++; @@ -404,6 +433,10 @@ class PeopleHomeWidgetService { return; } + if (isWidgetPresent) { + await updatePeopleStatus(WidgetStatus.syncedAll); + } + await _refreshWidget( message: "Switched to next people set, total: $renderedCount", ); From 634561347f34e8f1abebc7cee8c99c087f9f9001 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Thu, 22 May 2025 23:52:05 +0530 Subject: [PATCH 059/316] chore: bump version --- mobile/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index bdb5fd4c17..62cb617095 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -12,7 +12,7 @@ description: ente photos application # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 1.0.20+1050 +version: 1.0.21+1051 publish_to: none environment: From 63850df06ab0881f4d14f9c070582cbf6041a2eb Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Fri, 23 May 2025 10:33:58 +0530 Subject: [PATCH 060/316] Change copy and extract string --- mobile/lib/generated/intl/messages_ar.dart | 2 ++ mobile/lib/generated/intl/messages_be.dart | 2 ++ mobile/lib/generated/intl/messages_bg.dart | 2 ++ mobile/lib/generated/intl/messages_ca.dart | 2 ++ mobile/lib/generated/intl/messages_cs.dart | 2 ++ mobile/lib/generated/intl/messages_da.dart | 2 ++ mobile/lib/generated/intl/messages_de.dart | 2 ++ mobile/lib/generated/intl/messages_el.dart | 2 ++ mobile/lib/generated/intl/messages_en.dart | 2 ++ mobile/lib/generated/intl/messages_es.dart | 2 ++ mobile/lib/generated/intl/messages_et.dart | 2 ++ mobile/lib/generated/intl/messages_eu.dart | 2 ++ mobile/lib/generated/intl/messages_fa.dart | 2 ++ mobile/lib/generated/intl/messages_fr.dart | 2 ++ mobile/lib/generated/intl/messages_gu.dart | 2 ++ mobile/lib/generated/intl/messages_he.dart | 2 ++ mobile/lib/generated/intl/messages_hi.dart | 2 ++ mobile/lib/generated/intl/messages_hu.dart | 2 ++ mobile/lib/generated/intl/messages_id.dart | 2 ++ mobile/lib/generated/intl/messages_it.dart | 2 ++ mobile/lib/generated/intl/messages_ja.dart | 2 ++ mobile/lib/generated/intl/messages_km.dart | 2 ++ mobile/lib/generated/intl/messages_ko.dart | 2 ++ mobile/lib/generated/intl/messages_lt.dart | 2 ++ mobile/lib/generated/intl/messages_lv.dart | 2 ++ mobile/lib/generated/intl/messages_ml.dart | 2 ++ mobile/lib/generated/intl/messages_nl.dart | 2 ++ mobile/lib/generated/intl/messages_no.dart | 2 ++ mobile/lib/generated/intl/messages_or.dart | 2 ++ mobile/lib/generated/intl/messages_pl.dart | 2 ++ mobile/lib/generated/intl/messages_pt.dart | 2 ++ mobile/lib/generated/intl/messages_pt_BR.dart | 2 ++ mobile/lib/generated/intl/messages_pt_PT.dart | 2 ++ mobile/lib/generated/intl/messages_ro.dart | 2 ++ mobile/lib/generated/intl/messages_ru.dart | 2 ++ mobile/lib/generated/intl/messages_sl.dart | 2 ++ mobile/lib/generated/intl/messages_sv.dart | 2 ++ mobile/lib/generated/intl/messages_ta.dart | 2 ++ mobile/lib/generated/intl/messages_te.dart | 2 ++ mobile/lib/generated/intl/messages_th.dart | 2 ++ mobile/lib/generated/intl/messages_ti.dart | 2 ++ mobile/lib/generated/intl/messages_tr.dart | 2 ++ mobile/lib/generated/intl/messages_uk.dart | 2 ++ mobile/lib/generated/intl/messages_vi.dart | 2 ++ mobile/lib/generated/intl/messages_zh.dart | 2 ++ mobile/lib/generated/l10n.dart | 10 ++++++++++ mobile/lib/l10n/intl_ar.arb | 3 ++- mobile/lib/l10n/intl_be.arb | 3 ++- mobile/lib/l10n/intl_bg.arb | 3 ++- mobile/lib/l10n/intl_ca.arb | 3 ++- mobile/lib/l10n/intl_cs.arb | 3 ++- mobile/lib/l10n/intl_da.arb | 3 ++- mobile/lib/l10n/intl_de.arb | 3 ++- mobile/lib/l10n/intl_el.arb | 3 ++- mobile/lib/l10n/intl_en.arb | 5 +++-- mobile/lib/l10n/intl_es.arb | 3 ++- mobile/lib/l10n/intl_et.arb | 3 ++- mobile/lib/l10n/intl_eu.arb | 3 ++- mobile/lib/l10n/intl_fa.arb | 3 ++- mobile/lib/l10n/intl_fr.arb | 3 ++- mobile/lib/l10n/intl_gu.arb | 3 ++- mobile/lib/l10n/intl_he.arb | 3 ++- mobile/lib/l10n/intl_hi.arb | 3 ++- mobile/lib/l10n/intl_hu.arb | 3 ++- mobile/lib/l10n/intl_id.arb | 3 ++- mobile/lib/l10n/intl_it.arb | 3 ++- mobile/lib/l10n/intl_ja.arb | 3 ++- mobile/lib/l10n/intl_km.arb | 3 ++- mobile/lib/l10n/intl_ko.arb | 3 ++- mobile/lib/l10n/intl_lt.arb | 3 ++- mobile/lib/l10n/intl_lv.arb | 3 ++- mobile/lib/l10n/intl_ml.arb | 3 ++- mobile/lib/l10n/intl_nl.arb | 3 ++- mobile/lib/l10n/intl_no.arb | 3 ++- mobile/lib/l10n/intl_or.arb | 3 ++- mobile/lib/l10n/intl_pl.arb | 3 ++- mobile/lib/l10n/intl_pt.arb | 3 ++- mobile/lib/l10n/intl_pt_BR.arb | 3 ++- mobile/lib/l10n/intl_pt_PT.arb | 3 ++- mobile/lib/l10n/intl_ro.arb | 3 ++- mobile/lib/l10n/intl_ru.arb | 3 ++- mobile/lib/l10n/intl_sl.arb | 3 ++- mobile/lib/l10n/intl_sv.arb | 3 ++- mobile/lib/l10n/intl_ta.arb | 3 ++- mobile/lib/l10n/intl_te.arb | 3 ++- mobile/lib/l10n/intl_th.arb | 3 ++- mobile/lib/l10n/intl_ti.arb | 3 ++- mobile/lib/l10n/intl_tr.arb | 3 ++- mobile/lib/l10n/intl_uk.arb | 3 ++- mobile/lib/l10n/intl_vi.arb | 3 ++- mobile/lib/l10n/intl_zh.arb | 3 ++- mobile/lib/services/memories_cache_service.dart | 8 +++++--- 92 files changed, 196 insertions(+), 49 deletions(-) diff --git a/mobile/lib/generated/intl/messages_ar.dart b/mobile/lib/generated/intl/messages_ar.dart index ac91edd2db..c572642683 100644 --- a/mobile/lib/generated/intl/messages_ar.dart +++ b/mobile/lib/generated/intl/messages_ar.dart @@ -1246,6 +1246,8 @@ class MessageLookup extends MessageLookupByLibrary { "longpressOnAnItemToViewInFullscreen": MessageLookupByLibrary.simpleMessage( "اضغط مطولاً على عنصر لعرضه في وضع ملء الشاشة."), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "loopVideoOff": MessageLookupByLibrary.simpleMessage("إيقاف تكرار الفيديو"), "loopVideoOn": diff --git a/mobile/lib/generated/intl/messages_be.dart b/mobile/lib/generated/intl/messages_be.dart index 824414a962..4f5f0e0529 100644 --- a/mobile/lib/generated/intl/messages_be.dart +++ b/mobile/lib/generated/intl/messages_be.dart @@ -167,6 +167,8 @@ class MessageLookup extends MessageLookupByLibrary { "loginTerms": MessageLookupByLibrary.simpleMessage( "Націскаючы ўвайсці, я пагаджаюся з умовамі абслугоўвання і палітыкай прыватнасці"), "logout": MessageLookupByLibrary.simpleMessage("Выйсці"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "lostDevice": MessageLookupByLibrary.simpleMessage("Згубілі прыладу?"), "magicSearch": MessageLookupByLibrary.simpleMessage("Магічны пошук"), "manage": MessageLookupByLibrary.simpleMessage("Кіраванне"), diff --git a/mobile/lib/generated/intl/messages_bg.dart b/mobile/lib/generated/intl/messages_bg.dart index 404fa32ebe..c8bc981739 100644 --- a/mobile/lib/generated/intl/messages_bg.dart +++ b/mobile/lib/generated/intl/messages_bg.dart @@ -22,6 +22,8 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day") }; } diff --git a/mobile/lib/generated/intl/messages_ca.dart b/mobile/lib/generated/intl/messages_ca.dart index d78a4311e0..92c65f7c05 100644 --- a/mobile/lib/generated/intl/messages_ca.dart +++ b/mobile/lib/generated/intl/messages_ca.dart @@ -22,6 +22,8 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day") }; } diff --git a/mobile/lib/generated/intl/messages_cs.dart b/mobile/lib/generated/intl/messages_cs.dart index 5827864a84..33e6e4cfb3 100644 --- a/mobile/lib/generated/intl/messages_cs.dart +++ b/mobile/lib/generated/intl/messages_cs.dart @@ -308,6 +308,8 @@ class MessageLookup extends MessageLookupByLibrary { "loginWithTOTP": MessageLookupByLibrary.simpleMessage("Přihlášení pomocí TOTP"), "logout": MessageLookupByLibrary.simpleMessage("Odhlásit se"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "lostDevice": MessageLookupByLibrary.simpleMessage("Ztratili jste zařízení?"), "manage": MessageLookupByLibrary.simpleMessage("Spravovat"), diff --git a/mobile/lib/generated/intl/messages_da.dart b/mobile/lib/generated/intl/messages_da.dart index 7946b907ad..6001e9d0a3 100644 --- a/mobile/lib/generated/intl/messages_da.dart +++ b/mobile/lib/generated/intl/messages_da.dart @@ -268,6 +268,8 @@ class MessageLookup extends MessageLookupByLibrary { "longPressAnEmailToVerifyEndToEndEncryption": MessageLookupByLibrary.simpleMessage( "Langt tryk på en e-mail for at bekræfte slutningen af krypteringen."), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "lostDevice": MessageLookupByLibrary.simpleMessage("Har du mistet enhed?"), "machineLearning": MessageLookupByLibrary.simpleMessage("Maskinlæring"), diff --git a/mobile/lib/generated/intl/messages_de.dart b/mobile/lib/generated/intl/messages_de.dart index 4f738f11fc..74ee9a2299 100644 --- a/mobile/lib/generated/intl/messages_de.dart +++ b/mobile/lib/generated/intl/messages_de.dart @@ -1286,6 +1286,8 @@ class MessageLookup extends MessageLookupByLibrary { "Lange auf eine E-Mail drücken, um die Ende-zu-Ende-Verschlüsselung zu überprüfen."), "longpressOnAnItemToViewInFullscreen": MessageLookupByLibrary.simpleMessage( "Drücken Sie lange auf ein Element, um es im Vollbildmodus anzuzeigen"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "loopVideoOff": MessageLookupByLibrary.simpleMessage("Videoschleife aus"), "loopVideoOn": MessageLookupByLibrary.simpleMessage("Videoschleife an"), diff --git a/mobile/lib/generated/intl/messages_el.dart b/mobile/lib/generated/intl/messages_el.dart index ad6166ae1c..2c256d3499 100644 --- a/mobile/lib/generated/intl/messages_el.dart +++ b/mobile/lib/generated/intl/messages_el.dart @@ -24,6 +24,8 @@ class MessageLookup extends MessageLookupByLibrary { static Map _notInlinedMessages(_) => { "enterYourEmailAddress": MessageLookupByLibrary.simpleMessage( "Εισάγετε την διεύθυνση ηλ. ταχυδρομείου σας"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day") }; } diff --git a/mobile/lib/generated/intl/messages_en.dart b/mobile/lib/generated/intl/messages_en.dart index cba0a28b6b..5aecb13146 100644 --- a/mobile/lib/generated/intl/messages_en.dart +++ b/mobile/lib/generated/intl/messages_en.dart @@ -1254,6 +1254,8 @@ class MessageLookup extends MessageLookupByLibrary { "longpressOnAnItemToViewInFullscreen": MessageLookupByLibrary.simpleMessage( "Long-press on an item to view in full-screen"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "loopVideoOff": MessageLookupByLibrary.simpleMessage("Loop video off"), "loopVideoOn": MessageLookupByLibrary.simpleMessage("Loop video on"), "lostDevice": MessageLookupByLibrary.simpleMessage("Lost device?"), diff --git a/mobile/lib/generated/intl/messages_es.dart b/mobile/lib/generated/intl/messages_es.dart index f174fc1adb..c8ce636785 100644 --- a/mobile/lib/generated/intl/messages_es.dart +++ b/mobile/lib/generated/intl/messages_es.dart @@ -1285,6 +1285,8 @@ class MessageLookup extends MessageLookupByLibrary { "longpressOnAnItemToViewInFullscreen": MessageLookupByLibrary.simpleMessage( "Manten presionado un elemento para ver en pantalla completa"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "loopVideoOff": MessageLookupByLibrary.simpleMessage("Vídeo en bucle desactivado"), "loopVideoOn": diff --git a/mobile/lib/generated/intl/messages_et.dart b/mobile/lib/generated/intl/messages_et.dart index 44b8335c32..caf98b4809 100644 --- a/mobile/lib/generated/intl/messages_et.dart +++ b/mobile/lib/generated/intl/messages_et.dart @@ -149,6 +149,8 @@ class MessageLookup extends MessageLookupByLibrary { "lockButtonLabel": MessageLookupByLibrary.simpleMessage("Lukusta"), "logInLabel": MessageLookupByLibrary.simpleMessage("Logi sisse"), "logout": MessageLookupByLibrary.simpleMessage("Logi välja"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "manage": MessageLookupByLibrary.simpleMessage("Halda"), "manageLink": MessageLookupByLibrary.simpleMessage("Halda linki"), "manageParticipants": MessageLookupByLibrary.simpleMessage("Halda"), diff --git a/mobile/lib/generated/intl/messages_eu.dart b/mobile/lib/generated/intl/messages_eu.dart index 96984ea43c..f66d28b629 100644 --- a/mobile/lib/generated/intl/messages_eu.dart +++ b/mobile/lib/generated/intl/messages_eu.dart @@ -394,6 +394,8 @@ class MessageLookup extends MessageLookupByLibrary { "logInLabel": MessageLookupByLibrary.simpleMessage("Sartu"), "loginTerms": MessageLookupByLibrary.simpleMessage( "Sartzeko klikatuz, zerbitzu baldintzak eta pribatutasun politikak onartzen ditut"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "lostDevice": MessageLookupByLibrary.simpleMessage("Gailua galdu duzu?"), "machineLearning": diff --git a/mobile/lib/generated/intl/messages_fa.dart b/mobile/lib/generated/intl/messages_fa.dart index 255beb35a6..33bb8d15b1 100644 --- a/mobile/lib/generated/intl/messages_fa.dart +++ b/mobile/lib/generated/intl/messages_fa.dart @@ -247,6 +247,8 @@ class MessageLookup extends MessageLookupByLibrary { "loginTerms": MessageLookupByLibrary.simpleMessage( "با کلیک بر روی ورود به سیستم، من با شرایط خدمات و سیاست حفظ حریم خصوصی موافقم"), "logout": MessageLookupByLibrary.simpleMessage("خروج"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "manage": MessageLookupByLibrary.simpleMessage("مدیریت"), "manageFamily": MessageLookupByLibrary.simpleMessage("مدیریت خانواده"), "manageLink": MessageLookupByLibrary.simpleMessage("مدیریت پیوند"), diff --git a/mobile/lib/generated/intl/messages_fr.dart b/mobile/lib/generated/intl/messages_fr.dart index 944c18761f..915b0805d8 100644 --- a/mobile/lib/generated/intl/messages_fr.dart +++ b/mobile/lib/generated/intl/messages_fr.dart @@ -1272,6 +1272,8 @@ class MessageLookup extends MessageLookupByLibrary { "longpressOnAnItemToViewInFullscreen": MessageLookupByLibrary.simpleMessage( "Appuyez longuement sur un élément pour le voir en plein écran"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "loopVideoOff": MessageLookupByLibrary.simpleMessage("Vidéo en boucle désactivée"), "loopVideoOn": diff --git a/mobile/lib/generated/intl/messages_gu.dart b/mobile/lib/generated/intl/messages_gu.dart index a7295e84b0..33cbb26b8b 100644 --- a/mobile/lib/generated/intl/messages_gu.dart +++ b/mobile/lib/generated/intl/messages_gu.dart @@ -22,6 +22,8 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day") }; } diff --git a/mobile/lib/generated/intl/messages_he.dart b/mobile/lib/generated/intl/messages_he.dart index 9da980c999..116b0ce97f 100644 --- a/mobile/lib/generated/intl/messages_he.dart +++ b/mobile/lib/generated/intl/messages_he.dart @@ -545,6 +545,8 @@ class MessageLookup extends MessageLookupByLibrary { "longpressOnAnItemToViewInFullscreen": MessageLookupByLibrary.simpleMessage( "לחץ לחיצה ארוכה על פריט על מנת לראות אותו במסך מלא"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "lostDevice": MessageLookupByLibrary.simpleMessage("איבדת את המכשיר?"), "manage": MessageLookupByLibrary.simpleMessage("נהל"), "manageFamily": MessageLookupByLibrary.simpleMessage("נהל משפחה"), diff --git a/mobile/lib/generated/intl/messages_hi.dart b/mobile/lib/generated/intl/messages_hi.dart index 427fff4498..7aac940fce 100644 --- a/mobile/lib/generated/intl/messages_hi.dart +++ b/mobile/lib/generated/intl/messages_hi.dart @@ -75,6 +75,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("अमान्य ईमेल ऐड्रेस"), "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage( "कृपया हमें इस जानकारी के लिए सहायता करें"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "noRecoveryKey": MessageLookupByLibrary.simpleMessage("रिकवरी कुंजी नहीं है?"), "noRecoveryKeyNoDecryption": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_hu.dart b/mobile/lib/generated/intl/messages_hu.dart index b2642e6357..9584741ac3 100644 --- a/mobile/lib/generated/intl/messages_hu.dart +++ b/mobile/lib/generated/intl/messages_hu.dart @@ -38,6 +38,8 @@ class MessageLookup extends MessageLookupByLibrary { "feedback": MessageLookupByLibrary.simpleMessage("Visszajelzés"), "invalidEmailAddress": MessageLookupByLibrary.simpleMessage("Érvénytelen e-mail cím"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), "verify": MessageLookupByLibrary.simpleMessage("Hitelesítés") }; diff --git a/mobile/lib/generated/intl/messages_id.dart b/mobile/lib/generated/intl/messages_id.dart index dac91a45fc..4bfd68d8e9 100644 --- a/mobile/lib/generated/intl/messages_id.dart +++ b/mobile/lib/generated/intl/messages_id.dart @@ -844,6 +844,8 @@ class MessageLookup extends MessageLookupByLibrary { "longPressAnEmailToVerifyEndToEndEncryption": MessageLookupByLibrary.simpleMessage( "Tekan dan tahan email untuk membuktikan enkripsi ujung ke ujung."), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "lostDevice": MessageLookupByLibrary.simpleMessage("Perangkat hilang?"), "machineLearning": MessageLookupByLibrary.simpleMessage("Pemelajaran mesin"), diff --git a/mobile/lib/generated/intl/messages_it.dart b/mobile/lib/generated/intl/messages_it.dart index 383646c970..1a1e976ea2 100644 --- a/mobile/lib/generated/intl/messages_it.dart +++ b/mobile/lib/generated/intl/messages_it.dart @@ -1142,6 +1142,8 @@ class MessageLookup extends MessageLookupByLibrary { "longpressOnAnItemToViewInFullscreen": MessageLookupByLibrary.simpleMessage( "Premi a lungo su un elemento per visualizzarlo a schermo intero"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "loopVideoOff": MessageLookupByLibrary.simpleMessage("Loop video disattivo"), "loopVideoOn": diff --git a/mobile/lib/generated/intl/messages_ja.dart b/mobile/lib/generated/intl/messages_ja.dart index bb1ed7dd43..7718fe9c31 100644 --- a/mobile/lib/generated/intl/messages_ja.dart +++ b/mobile/lib/generated/intl/messages_ja.dart @@ -1075,6 +1075,8 @@ class MessageLookup extends MessageLookupByLibrary { "表示されているEメールアドレスを長押しして、暗号化を確認します。"), "longpressOnAnItemToViewInFullscreen": MessageLookupByLibrary.simpleMessage("アイテムを長押しして全画面表示する"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "loopVideoOff": MessageLookupByLibrary.simpleMessage("ビデオのループをオフ"), "loopVideoOn": MessageLookupByLibrary.simpleMessage("ビデオのループをオン"), "lostDevice": MessageLookupByLibrary.simpleMessage("デバイスを紛失しましたか?"), diff --git a/mobile/lib/generated/intl/messages_km.dart b/mobile/lib/generated/intl/messages_km.dart index f8372aed16..fe69baf9bd 100644 --- a/mobile/lib/generated/intl/messages_km.dart +++ b/mobile/lib/generated/intl/messages_km.dart @@ -22,6 +22,8 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day") }; } diff --git a/mobile/lib/generated/intl/messages_ko.dart b/mobile/lib/generated/intl/messages_ko.dart index 927b2b5f49..fa6c95baef 100644 --- a/mobile/lib/generated/intl/messages_ko.dart +++ b/mobile/lib/generated/intl/messages_ko.dart @@ -40,6 +40,8 @@ class MessageLookup extends MessageLookupByLibrary { "feedback": MessageLookupByLibrary.simpleMessage("피드백"), "invalidEmailAddress": MessageLookupByLibrary.simpleMessage("잘못된 이메일 주소"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), "verify": MessageLookupByLibrary.simpleMessage("인증"), "yourAccountHasBeenDeleted": diff --git a/mobile/lib/generated/intl/messages_lt.dart b/mobile/lib/generated/intl/messages_lt.dart index f407024543..810e4f43a5 100644 --- a/mobile/lib/generated/intl/messages_lt.dart +++ b/mobile/lib/generated/intl/messages_lt.dart @@ -1189,6 +1189,8 @@ class MessageLookup extends MessageLookupByLibrary { "longpressOnAnItemToViewInFullscreen": MessageLookupByLibrary.simpleMessage( "Ilgai paspauskite elementą, kad peržiūrėtumėte per visą ekraną"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "loopVideoOff": MessageLookupByLibrary.simpleMessage( "Išjungtas vaizdo įrašo ciklas"), "loopVideoOn": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_lv.dart b/mobile/lib/generated/intl/messages_lv.dart index 8d9c7abb54..cf99c3ce5f 100644 --- a/mobile/lib/generated/intl/messages_lv.dart +++ b/mobile/lib/generated/intl/messages_lv.dart @@ -22,6 +22,8 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day") }; } diff --git a/mobile/lib/generated/intl/messages_ml.dart b/mobile/lib/generated/intl/messages_ml.dart index 27a366ec81..0a2a42276e 100644 --- a/mobile/lib/generated/intl/messages_ml.dart +++ b/mobile/lib/generated/intl/messages_ml.dart @@ -79,6 +79,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("വിവരങ്ങൾ തന്നു സഹായിക്കുക"), "lightTheme": MessageLookupByLibrary.simpleMessage("തെളിഞ"), "linkExpired": MessageLookupByLibrary.simpleMessage("കാലഹരണപ്പെട്ടു"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "mastodon": MessageLookupByLibrary.simpleMessage("മാസ്റ്റഡോൺ"), "matrix": MessageLookupByLibrary.simpleMessage("മേട്രിക്സ്"), "moderateStrength": MessageLookupByLibrary.simpleMessage("ഇടത്തരം"), diff --git a/mobile/lib/generated/intl/messages_nl.dart b/mobile/lib/generated/intl/messages_nl.dart index c7488b3c7d..8a62fca2d9 100644 --- a/mobile/lib/generated/intl/messages_nl.dart +++ b/mobile/lib/generated/intl/messages_nl.dart @@ -1240,6 +1240,8 @@ class MessageLookup extends MessageLookupByLibrary { "Druk lang op een e-mail om de versleuteling te verifiëren."), "longpressOnAnItemToViewInFullscreen": MessageLookupByLibrary.simpleMessage( "Houd een bestand lang ingedrukt om te bekijken op volledig scherm"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "loopVideoOff": MessageLookupByLibrary.simpleMessage("Video in lus afspelen uit"), "loopVideoOn": diff --git a/mobile/lib/generated/intl/messages_no.dart b/mobile/lib/generated/intl/messages_no.dart index 851d11ca4e..3c1acdadc7 100644 --- a/mobile/lib/generated/intl/messages_no.dart +++ b/mobile/lib/generated/intl/messages_no.dart @@ -1230,6 +1230,8 @@ class MessageLookup extends MessageLookupByLibrary { "longpressOnAnItemToViewInFullscreen": MessageLookupByLibrary.simpleMessage( "Lang-trykk på en gjenstand for å vise i fullskjerm"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "loopVideoOff": MessageLookupByLibrary.simpleMessage("Gjenta video av"), "loopVideoOn": MessageLookupByLibrary.simpleMessage("Gjenta video på"), "lostDevice": MessageLookupByLibrary.simpleMessage("Mistet enhet?"), diff --git a/mobile/lib/generated/intl/messages_or.dart b/mobile/lib/generated/intl/messages_or.dart index b8bd472e15..ce8f65a068 100644 --- a/mobile/lib/generated/intl/messages_or.dart +++ b/mobile/lib/generated/intl/messages_or.dart @@ -22,6 +22,8 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day") }; } diff --git a/mobile/lib/generated/intl/messages_pl.dart b/mobile/lib/generated/intl/messages_pl.dart index 5ed2068dcd..bd4126665e 100644 --- a/mobile/lib/generated/intl/messages_pl.dart +++ b/mobile/lib/generated/intl/messages_pl.dart @@ -1133,6 +1133,8 @@ class MessageLookup extends MessageLookupByLibrary { "longpressOnAnItemToViewInFullscreen": MessageLookupByLibrary.simpleMessage( "Długo naciśnij element, aby wyświetlić go na pełnym ekranie"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "loopVideoOff": MessageLookupByLibrary.simpleMessage("Pętla wideo wyłączona"), "loopVideoOn": diff --git a/mobile/lib/generated/intl/messages_pt.dart b/mobile/lib/generated/intl/messages_pt.dart index 4e2af81ffd..d60824804e 100644 --- a/mobile/lib/generated/intl/messages_pt.dart +++ b/mobile/lib/generated/intl/messages_pt.dart @@ -1227,6 +1227,8 @@ class MessageLookup extends MessageLookupByLibrary { "longpressOnAnItemToViewInFullscreen": MessageLookupByLibrary.simpleMessage( "Pressione e segure em um item para ver em tela cheia"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "loopVideoOff": MessageLookupByLibrary.simpleMessage("Repetir vídeo desligado"), "loopVideoOn": diff --git a/mobile/lib/generated/intl/messages_pt_BR.dart b/mobile/lib/generated/intl/messages_pt_BR.dart index 13249c501e..9a6b66d080 100644 --- a/mobile/lib/generated/intl/messages_pt_BR.dart +++ b/mobile/lib/generated/intl/messages_pt_BR.dart @@ -1274,6 +1274,8 @@ class MessageLookup extends MessageLookupByLibrary { "longpressOnAnItemToViewInFullscreen": MessageLookupByLibrary.simpleMessage( "Mantenha pressionado em um item para visualizá-lo em tela cheia"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "loopVideoOff": MessageLookupByLibrary.simpleMessage("Repetir vídeo desativado"), "loopVideoOn": diff --git a/mobile/lib/generated/intl/messages_pt_PT.dart b/mobile/lib/generated/intl/messages_pt_PT.dart index b257e0f647..aa5d8d2668 100644 --- a/mobile/lib/generated/intl/messages_pt_PT.dart +++ b/mobile/lib/generated/intl/messages_pt_PT.dart @@ -1045,6 +1045,8 @@ class MessageLookup extends MessageLookupByLibrary { "longpressOnAnItemToViewInFullscreen": MessageLookupByLibrary.simpleMessage( "Pressione e segure em um item para ver em tela cheia"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "loopVideoOff": MessageLookupByLibrary.simpleMessage("Repetir vídeo desligado"), "loopVideoOn": diff --git a/mobile/lib/generated/intl/messages_ro.dart b/mobile/lib/generated/intl/messages_ro.dart index c4e181748d..b15238f094 100644 --- a/mobile/lib/generated/intl/messages_ro.dart +++ b/mobile/lib/generated/intl/messages_ro.dart @@ -1138,6 +1138,8 @@ class MessageLookup extends MessageLookupByLibrary { "longpressOnAnItemToViewInFullscreen": MessageLookupByLibrary.simpleMessage( "Apăsați lung pe un articol pentru a-l vizualiza pe tot ecranul"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "loopVideoOff": MessageLookupByLibrary.simpleMessage("Repetare video dezactivată"), "loopVideoOn": diff --git a/mobile/lib/generated/intl/messages_ru.dart b/mobile/lib/generated/intl/messages_ru.dart index ee22b7e30d..33d7098573 100644 --- a/mobile/lib/generated/intl/messages_ru.dart +++ b/mobile/lib/generated/intl/messages_ru.dart @@ -1271,6 +1271,8 @@ class MessageLookup extends MessageLookupByLibrary { "Нажмите с удержанием на электронную почту для подтверждения сквозного шифрования."), "longpressOnAnItemToViewInFullscreen": MessageLookupByLibrary.simpleMessage( "Нажмите с удержанием на элемент для просмотра в полноэкранном режиме"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "loopVideoOff": MessageLookupByLibrary.simpleMessage("Видео не зациклено"), "loopVideoOn": MessageLookupByLibrary.simpleMessage("Видео зациклено"), diff --git a/mobile/lib/generated/intl/messages_sl.dart b/mobile/lib/generated/intl/messages_sl.dart index 7f7e63b006..7936da08e4 100644 --- a/mobile/lib/generated/intl/messages_sl.dart +++ b/mobile/lib/generated/intl/messages_sl.dart @@ -22,6 +22,8 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day") }; } diff --git a/mobile/lib/generated/intl/messages_sv.dart b/mobile/lib/generated/intl/messages_sv.dart index 94d0b211ed..e48c61b308 100644 --- a/mobile/lib/generated/intl/messages_sv.dart +++ b/mobile/lib/generated/intl/messages_sv.dart @@ -404,6 +404,8 @@ class MessageLookup extends MessageLookupByLibrary { "loginTerms": MessageLookupByLibrary.simpleMessage( "Genom att klicka på logga in godkänner jag användarvillkoren och våran integritetspolicy"), "logout": MessageLookupByLibrary.simpleMessage("Logga ut"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "lostDevice": MessageLookupByLibrary.simpleMessage("Förlorad enhet?"), "machineLearning": MessageLookupByLibrary.simpleMessage("Maskininlärning"), diff --git a/mobile/lib/generated/intl/messages_ta.dart b/mobile/lib/generated/intl/messages_ta.dart index a9727329a5..30aeec45bd 100644 --- a/mobile/lib/generated/intl/messages_ta.dart +++ b/mobile/lib/generated/intl/messages_ta.dart @@ -52,6 +52,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("தவறான மின்னஞ்சல் முகவரி"), "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage( "இந்த தகவலுடன் தயவுசெய்து எங்களுக்கு உதவுங்கள்"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), "selectReason": MessageLookupByLibrary.simpleMessage( "காரணத்தைத் தேர்ந்தெடுக்கவும்"), diff --git a/mobile/lib/generated/intl/messages_te.dart b/mobile/lib/generated/intl/messages_te.dart index c288704e84..d7e29da554 100644 --- a/mobile/lib/generated/intl/messages_te.dart +++ b/mobile/lib/generated/intl/messages_te.dart @@ -22,6 +22,8 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day") }; } diff --git a/mobile/lib/generated/intl/messages_th.dart b/mobile/lib/generated/intl/messages_th.dart index 16b70f5a70..b809721f4b 100644 --- a/mobile/lib/generated/intl/messages_th.dart +++ b/mobile/lib/generated/intl/messages_th.dart @@ -204,6 +204,8 @@ class MessageLookup extends MessageLookupByLibrary { "logInLabel": MessageLookupByLibrary.simpleMessage("เข้าสู่ระบบ"), "loginTerms": MessageLookupByLibrary.simpleMessage( "โดยการคลิกเข้าสู่ระบบ ฉันยอมรับเงื่อนไขการให้บริการและนโยบายความเป็นส่วนตัว"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "manageParticipants": MessageLookupByLibrary.simpleMessage("จัดการ"), "map": MessageLookupByLibrary.simpleMessage("แผนที่"), "maps": MessageLookupByLibrary.simpleMessage("แผนที่"), diff --git a/mobile/lib/generated/intl/messages_ti.dart b/mobile/lib/generated/intl/messages_ti.dart index 9cf47372f5..abf7fc2cc0 100644 --- a/mobile/lib/generated/intl/messages_ti.dart +++ b/mobile/lib/generated/intl/messages_ti.dart @@ -22,6 +22,8 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day") }; } diff --git a/mobile/lib/generated/intl/messages_tr.dart b/mobile/lib/generated/intl/messages_tr.dart index 7913327f4c..3fa42e53a4 100644 --- a/mobile/lib/generated/intl/messages_tr.dart +++ b/mobile/lib/generated/intl/messages_tr.dart @@ -1271,6 +1271,8 @@ class MessageLookup extends MessageLookupByLibrary { "longpressOnAnItemToViewInFullscreen": MessageLookupByLibrary.simpleMessage( "Tam ekranda görüntülemek için bir öğeye uzun basın"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "loopVideoOff": MessageLookupByLibrary.simpleMessage("Video Döngüsü Kapalı"), "loopVideoOn": diff --git a/mobile/lib/generated/intl/messages_uk.dart b/mobile/lib/generated/intl/messages_uk.dart index 371be63fd0..867e3e4c74 100644 --- a/mobile/lib/generated/intl/messages_uk.dart +++ b/mobile/lib/generated/intl/messages_uk.dart @@ -1109,6 +1109,8 @@ class MessageLookup extends MessageLookupByLibrary { "Довго утримуйте поштову адресу, щоб перевірити наскрізне шифрування."), "longpressOnAnItemToViewInFullscreen": MessageLookupByLibrary.simpleMessage( "Натисніть і утримуйте елемент для перегляду в повноекранному режимі"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "loopVideoOff": MessageLookupByLibrary.simpleMessage("Вимкнено зациклювання відео"), "loopVideoOn": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_vi.dart b/mobile/lib/generated/intl/messages_vi.dart index 253573ad7a..d4f45cc020 100644 --- a/mobile/lib/generated/intl/messages_vi.dart +++ b/mobile/lib/generated/intl/messages_vi.dart @@ -1111,6 +1111,8 @@ class MessageLookup extends MessageLookupByLibrary { "longpressOnAnItemToViewInFullscreen": MessageLookupByLibrary.simpleMessage( "Nhấn và giữ vào một mục để xem toàn màn hình"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "loopVideoOff": MessageLookupByLibrary.simpleMessage("Dừng phát video lặp lại"), "loopVideoOn": diff --git a/mobile/lib/generated/intl/messages_zh.dart b/mobile/lib/generated/intl/messages_zh.dart index c4888e6518..c6c1b274fd 100644 --- a/mobile/lib/generated/intl/messages_zh.dart +++ b/mobile/lib/generated/intl/messages_zh.dart @@ -1052,6 +1052,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("长按电子邮件以验证端到端加密。"), "longpressOnAnItemToViewInFullscreen": MessageLookupByLibrary.simpleMessage("长按一个项目来全屏查看"), + "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( + "Look back on your memories 🌄"), "loopVideoOff": MessageLookupByLibrary.simpleMessage("循环播放视频关闭"), "loopVideoOn": MessageLookupByLibrary.simpleMessage("循环播放视频开启"), "lostDevice": MessageLookupByLibrary.simpleMessage("设备丢失?"), diff --git a/mobile/lib/generated/l10n.dart b/mobile/lib/generated/l10n.dart index 415217ba0f..b20a7f2b37 100644 --- a/mobile/lib/generated/l10n.dart +++ b/mobile/lib/generated/l10n.dart @@ -11945,6 +11945,16 @@ class S { args: [], ); } + + /// `Look back on your memories 🌄` + String get lookBackOnYourMemories { + return Intl.message( + 'Look back on your memories 🌄', + name: 'lookBackOnYourMemories', + desc: '', + args: [], + ); + } } class AppLocalizationDelegate extends LocalizationsDelegate { diff --git a/mobile/lib/l10n/intl_ar.arb b/mobile/lib/l10n/intl_ar.arb index c0fb9c8316..75f3531188 100644 --- a/mobile/lib/l10n/intl_ar.arb +++ b/mobile/lib/l10n/intl_ar.arb @@ -1740,5 +1740,6 @@ "cLBulkEdit": "تعديل التواريخ بشكل جماعي", "cLBulkEditDesc": "يمكنك الآن تحديد صور متعددة، وتعديل التاريخ/الوقت لجميعها بإجراء سريع واحد. تغيير التواريخ مدعوم أيضًا.", "curatedMemories": "ذكريات منسقة", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_be.arb b/mobile/lib/l10n/intl_be.arb index ff129adb26..32d41dd544 100644 --- a/mobile/lib/l10n/intl_be.arb +++ b/mobile/lib/l10n/intl_be.arb @@ -209,5 +209,6 @@ "systemTheme": "Сістэма", "freeTrial": "Бясплатная пробная версія", "faqs": "Частыя пытанні", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_bg.arb b/mobile/lib/l10n/intl_bg.arb index 6a3e4cf9d9..b1c006d371 100644 --- a/mobile/lib/l10n/intl_bg.arb +++ b/mobile/lib/l10n/intl_bg.arb @@ -1,4 +1,5 @@ { "@@locale ": "en", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ca.arb b/mobile/lib/l10n/intl_ca.arb index 6a3e4cf9d9..b1c006d371 100644 --- a/mobile/lib/l10n/intl_ca.arb +++ b/mobile/lib/l10n/intl_ca.arb @@ -1,4 +1,5 @@ { "@@locale ": "en", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_cs.arb b/mobile/lib/l10n/intl_cs.arb index 00fa87e73f..cc227f2a50 100644 --- a/mobile/lib/l10n/intl_cs.arb +++ b/mobile/lib/l10n/intl_cs.arb @@ -440,5 +440,6 @@ "cLIcon": "Nová ikona", "cLMemories": "Vzpomínky", "cLWidgets": "Widgety", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_da.arb b/mobile/lib/l10n/intl_da.arb index 965de3b3b2..8610e525b0 100644 --- a/mobile/lib/l10n/intl_da.arb +++ b/mobile/lib/l10n/intl_da.arb @@ -323,5 +323,6 @@ "developerSettingsWarning": "Er du sikker på, at du vil ændre udviklerindstillingerne?", "next": "Næste", "enterPin": "Indtast PIN", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_de.arb b/mobile/lib/l10n/intl_de.arb index 90acc7a56c..7ffa0dc96c 100644 --- a/mobile/lib/l10n/intl_de.arb +++ b/mobile/lib/l10n/intl_de.arb @@ -1739,5 +1739,6 @@ "cLBulkEdit": "Massenbearbeitung von Datumsangaben", "cLBulkEditDesc": "Du kannst jetzt mehrere Fotos auswählen, und das Datum/Uhrzeit für alle mit einer Aktion ändern. Das Verschieben von Daten wird auch unterstützt.", "curatedMemories": "Ausgewählte Erinnerungen", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_el.arb b/mobile/lib/l10n/intl_el.arb index c098bbb969..8f6c700add 100644 --- a/mobile/lib/l10n/intl_el.arb +++ b/mobile/lib/l10n/intl_el.arb @@ -1,5 +1,6 @@ { "@@locale ": "en", "enterYourEmailAddress": "Εισάγετε την διεύθυνση ηλ. ταχυδρομείου σας", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_en.arb b/mobile/lib/l10n/intl_en.arb index 59d76b4b02..f036caff08 100644 --- a/mobile/lib/l10n/intl_en.arb +++ b/mobile/lib/l10n/intl_en.arb @@ -1753,5 +1753,6 @@ "selectedAlbums": "{count} selected", "actionNotSupportedOnFavouritesAlbum": "Action not supported on Favourites album", "onThisDayMemories": "On this day memories", - "onThisDay": "On this day" -} + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" +} \ No newline at end of file diff --git a/mobile/lib/l10n/intl_es.arb b/mobile/lib/l10n/intl_es.arb index 26a5ba0eda..1111a33190 100644 --- a/mobile/lib/l10n/intl_es.arb +++ b/mobile/lib/l10n/intl_es.arb @@ -1735,5 +1735,6 @@ "cLBulkEdit": "Edición masiva de fechas", "cLBulkEditDesc": "Ahora puedes seleccionar múltiples fotos y editar la fecha/hora para todas ellas con una acción rápida. También es posible cambiar las fechas.", "curatedMemories": "Memorias revisadas", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_et.arb b/mobile/lib/l10n/intl_et.arb index 11cb1016de..6fd4a18a0d 100644 --- a/mobile/lib/l10n/intl_et.arb +++ b/mobile/lib/l10n/intl_et.arb @@ -219,5 +219,6 @@ "@storageBreakupYou": { "description": "Label to indicate how much storage you are using when you are part of a family plan" }, - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_eu.arb b/mobile/lib/l10n/intl_eu.arb index 2a451ca665..f8f470c7fc 100644 --- a/mobile/lib/l10n/intl_eu.arb +++ b/mobile/lib/l10n/intl_eu.arb @@ -459,5 +459,6 @@ "@iOSLockOut": { "description": "Message advising the user to re-enable biometrics on their device. It shows in a dialog on iOS side." }, - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_fa.arb b/mobile/lib/l10n/intl_fa.arb index 440bb28bc9..74c0b7f5bb 100644 --- a/mobile/lib/l10n/intl_fa.arb +++ b/mobile/lib/l10n/intl_fa.arb @@ -308,5 +308,6 @@ "search": "جستجو", "whatsNew": "تغییرات جدید", "reviewSuggestions": "مرور پیشنهادها", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_fr.arb b/mobile/lib/l10n/intl_fr.arb index b32e412ff3..6b6109e6b7 100644 --- a/mobile/lib/l10n/intl_fr.arb +++ b/mobile/lib/l10n/intl_fr.arb @@ -1694,5 +1694,6 @@ "cLBulkEdit": "Dates de modification multiples", "cLBulkEditDesc": "Vous pouvez maintenant sélectionner plusieurs photos et modifier la date/heure pour toutes celles-ci, en une seule action rapide. Les dates de décalage sont également prises en charge.", "curatedMemories": "Souvenirs conservés", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_gu.arb b/mobile/lib/l10n/intl_gu.arb index 6a3e4cf9d9..b1c006d371 100644 --- a/mobile/lib/l10n/intl_gu.arb +++ b/mobile/lib/l10n/intl_gu.arb @@ -1,4 +1,5 @@ { "@@locale ": "en", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_he.arb b/mobile/lib/l10n/intl_he.arb index 912c7dc03b..0697c89269 100644 --- a/mobile/lib/l10n/intl_he.arb +++ b/mobile/lib/l10n/intl_he.arb @@ -792,5 +792,6 @@ "create": "צור", "viewAll": "הצג הכל", "hiding": "מחביא...", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_hi.arb b/mobile/lib/l10n/intl_hi.arb index dbc3f2c554..12b7a391e9 100644 --- a/mobile/lib/l10n/intl_hi.arb +++ b/mobile/lib/l10n/intl_hi.arb @@ -49,5 +49,6 @@ "noRecoveryKeyNoDecryption": "हमारे एंड-टू-एंड एन्क्रिप्शन प्रोटोकॉल की प्रकृति के कारण, आपके डेटा को आपके पासवर्ड या रिकवरी कुंजी के बिना डिक्रिप्ट नहीं किया जा सकता है", "verifyEmail": "ईमेल सत्यापित करें", "toResetVerifyEmail": "अपना पासवर्ड रीसेट करने के लिए, कृपया पहले अपना ईमेल सत्यापित करें।", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_hu.arb b/mobile/lib/l10n/intl_hu.arb index 2331770d97..263f0280d2 100644 --- a/mobile/lib/l10n/intl_hu.arb +++ b/mobile/lib/l10n/intl_hu.arb @@ -11,5 +11,6 @@ "askDeleteReason": "Miért törli a fiókját?", "deleteAccountFeedbackPrompt": "Sajnáljuk, hogy távozik. Kérjük, ossza meg velünk visszajelzéseit, hogy segítsen nekünk a fejlődésben.", "feedback": "Visszajelzés", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_id.arb b/mobile/lib/l10n/intl_id.arb index 22c124593b..60e5c0f5c9 100644 --- a/mobile/lib/l10n/intl_id.arb +++ b/mobile/lib/l10n/intl_id.arb @@ -1097,5 +1097,6 @@ "left": "Kiri", "right": "Kanan", "whatsNew": "Hal yang baru", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_it.arb b/mobile/lib/l10n/intl_it.arb index 418a41d719..0d3d471ce7 100644 --- a/mobile/lib/l10n/intl_it.arb +++ b/mobile/lib/l10n/intl_it.arb @@ -1549,5 +1549,6 @@ }, "processingVideos": "Elaborando video", "onThisDay": "On this day", - "joinAlbumConfirmationDialogBody": "Unirsi a un album renderà visibile la tua email ai suoi partecipanti." + "joinAlbumConfirmationDialogBody": "Unirsi a un album renderà visibile la tua email ai suoi partecipanti.", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ja.arb b/mobile/lib/l10n/intl_ja.arb index 7ae2323ef3..8eb85f12c3 100644 --- a/mobile/lib/l10n/intl_ja.arb +++ b/mobile/lib/l10n/intl_ja.arb @@ -1677,5 +1677,6 @@ "cLFamilyPlanDesc": "ファミリーメンバーが使用できるストレージ容量の制限を設定できるようになりました。", "cLBulkEdit": "日付を一括編集", "cLBulkEditDesc": "複数の写真を、1回の操作で日付/時刻を編集することもできるようになりました。", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_km.arb b/mobile/lib/l10n/intl_km.arb index 6a3e4cf9d9..b1c006d371 100644 --- a/mobile/lib/l10n/intl_km.arb +++ b/mobile/lib/l10n/intl_km.arb @@ -1,4 +1,5 @@ { "@@locale ": "en", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ko.arb b/mobile/lib/l10n/intl_ko.arb index f7774a1331..f27452f006 100644 --- a/mobile/lib/l10n/intl_ko.arb +++ b/mobile/lib/l10n/intl_ko.arb @@ -13,5 +13,6 @@ "confirmAccountDeletion": "계정 삭제 확인", "deleteAccountPermanentlyButton": "계정을 영구적으로 삭제", "yourAccountHasBeenDeleted": "계정이 삭제되었습니다.", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_lt.arb b/mobile/lib/l10n/intl_lt.arb index 0e2c95f50a..89572e45eb 100644 --- a/mobile/lib/l10n/intl_lt.arb +++ b/mobile/lib/l10n/intl_lt.arb @@ -1594,5 +1594,6 @@ "cLBulkEdit": "Masiškai redaguokite datas", "cLBulkEditDesc": "Dabar galite pasirinkti kelias nuotraukas ir vienu sparčiu veiksmu redaguoti visų nuotraukų datą ir laiką. Taip pat palaikomas datų perkėlimas.", "curatedMemories": "Kuruoti prisiminimai", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_lv.arb b/mobile/lib/l10n/intl_lv.arb index 6a3e4cf9d9..b1c006d371 100644 --- a/mobile/lib/l10n/intl_lv.arb +++ b/mobile/lib/l10n/intl_lv.arb @@ -1,4 +1,5 @@ { "@@locale ": "en", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ml.arb b/mobile/lib/l10n/intl_ml.arb index ebdd6689a3..6da31f837a 100644 --- a/mobile/lib/l10n/intl_ml.arb +++ b/mobile/lib/l10n/intl_ml.arb @@ -100,5 +100,6 @@ "calculating": "കണക്കുകൂട്ടുന്നു...", "close": "അടക്കുക", "count": "എണ്ണം", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_nl.arb b/mobile/lib/l10n/intl_nl.arb index 53ae47d20f..ba3078cd07 100644 --- a/mobile/lib/l10n/intl_nl.arb +++ b/mobile/lib/l10n/intl_nl.arb @@ -1677,5 +1677,6 @@ "cLFamilyPlanDesc": "Je kunt nu limieten instellen voor hoeveel opslag je familieleden kunnen gebruiken.", "cLBulkEdit": "Bulk datums wijzigen", "cLBulkEditDesc": "Je kunt nu meerdere foto's selecteren en de datum/tijd van ze allemaal bewerken met één snelle actie. Verschuiven van datums wordt ook ondersteund.", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_no.arb b/mobile/lib/l10n/intl_no.arb index a9c88beb4d..f2125990c1 100644 --- a/mobile/lib/l10n/intl_no.arb +++ b/mobile/lib/l10n/intl_no.arb @@ -1700,5 +1700,6 @@ "cLFamilyPlanDesc": "Du kan nå sette grenser for hvor mye lagringsplass familiemedlemmer kan bruke.", "cLBulkEdit": "Masseendring av datoer", "cLBulkEditDesc": "Du kan nå velge flere bilder, og redigere dato/klokkeslett for alle med en rask handling. Forskyving av datoer støttes også.", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_or.arb b/mobile/lib/l10n/intl_or.arb index 6a3e4cf9d9..b1c006d371 100644 --- a/mobile/lib/l10n/intl_or.arb +++ b/mobile/lib/l10n/intl_or.arb @@ -1,4 +1,5 @@ { "@@locale ": "en", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_pl.arb b/mobile/lib/l10n/intl_pl.arb index 91100b36d9..0a9bffd5b7 100644 --- a/mobile/lib/l10n/intl_pl.arb +++ b/mobile/lib/l10n/intl_pl.arb @@ -1534,5 +1534,6 @@ "join": "Dołącz", "linkEmail": "Połącz adres e-mail", "noEnteAccountExclamation": "Brak konta Ente!", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_pt.arb b/mobile/lib/l10n/intl_pt.arb index 74c5123f4b..59f868a8fe 100644 --- a/mobile/lib/l10n/intl_pt.arb +++ b/mobile/lib/l10n/intl_pt.arb @@ -1676,5 +1676,6 @@ "cLBulkEdit": "Editar todas as datas", "cLBulkEditDesc": "Agora você pode selecionar várias fotos, editar data e hora de todos com um só clique. Alternar datas também são suportados.", "curatedMemories": "Curated memories", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_pt_BR.arb b/mobile/lib/l10n/intl_pt_BR.arb index 076f8c73fb..ac3132b6c4 100644 --- a/mobile/lib/l10n/intl_pt_BR.arb +++ b/mobile/lib/l10n/intl_pt_BR.arb @@ -1740,5 +1740,6 @@ "cLBulkEdit": "Editar todas as datas", "cLBulkEditDesc": "Agora você pode selecionar várias fotos, editar data e hora de todos com um só clique. Alternar datas também são suportados.", "curatedMemories": "Memórias restauradas", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_pt_PT.arb b/mobile/lib/l10n/intl_pt_PT.arb index e987f52005..f76539bebc 100644 --- a/mobile/lib/l10n/intl_pt_PT.arb +++ b/mobile/lib/l10n/intl_pt_PT.arb @@ -1388,5 +1388,6 @@ } } }, - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ro.arb b/mobile/lib/l10n/intl_ro.arb index da597b07a4..2dcc91af17 100644 --- a/mobile/lib/l10n/intl_ro.arb +++ b/mobile/lib/l10n/intl_ro.arb @@ -1523,5 +1523,6 @@ "joinAlbumSubtext": "pentru a vedea și a adăuga fotografii", "joinAlbumSubtextViewer": "pentru a adăuga la albumele distribuite", "join": "Alăturare", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ru.arb b/mobile/lib/l10n/intl_ru.arb index 23980d8460..8a3fc9bd30 100644 --- a/mobile/lib/l10n/intl_ru.arb +++ b/mobile/lib/l10n/intl_ru.arb @@ -1735,5 +1735,6 @@ "cLBulkEdit": "Массовое редактирование дат", "cLBulkEditDesc": "Теперь вы можете выбрать несколько фото и отредактировать дату/время быстро и сразу для всех. Также поддерживается смещение дат.", "curatedMemories": "Отобранные воспоминания", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_sl.arb b/mobile/lib/l10n/intl_sl.arb index 6a3e4cf9d9..b1c006d371 100644 --- a/mobile/lib/l10n/intl_sl.arb +++ b/mobile/lib/l10n/intl_sl.arb @@ -1,4 +1,5 @@ { "@@locale ": "en", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_sv.arb b/mobile/lib/l10n/intl_sv.arb index b9193de791..061eef430a 100644 --- a/mobile/lib/l10n/intl_sv.arb +++ b/mobile/lib/l10n/intl_sv.arb @@ -532,5 +532,6 @@ "newPerson": "Ny person", "addName": "Lägg till namn", "add": "Lägg till", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ta.arb b/mobile/lib/l10n/intl_ta.arb index ba17762372..db14bca98a 100644 --- a/mobile/lib/l10n/intl_ta.arb +++ b/mobile/lib/l10n/intl_ta.arb @@ -20,5 +20,6 @@ "yourAccountHasBeenDeleted": "உங்கள் கணக்கு நீக்கப்பட்டது", "selectReason": "காரணத்தைத் தேர்ந்தெடுக்கவும்", "deleteReason1": "எனக்கு தேவையான ஒரு முக்கிய அம்சம் இதில் இல்லை", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_te.arb b/mobile/lib/l10n/intl_te.arb index 6a3e4cf9d9..b1c006d371 100644 --- a/mobile/lib/l10n/intl_te.arb +++ b/mobile/lib/l10n/intl_te.arb @@ -1,4 +1,5 @@ { "@@locale ": "en", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_th.arb b/mobile/lib/l10n/intl_th.arb index 5bd20fea5c..f782aef0ef 100644 --- a/mobile/lib/l10n/intl_th.arb +++ b/mobile/lib/l10n/intl_th.arb @@ -288,5 +288,6 @@ }, "maps": "แผนที่", "enableMaps": "เปิดใช้งานแผนที่", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ti.arb b/mobile/lib/l10n/intl_ti.arb index 6a3e4cf9d9..b1c006d371 100644 --- a/mobile/lib/l10n/intl_ti.arb +++ b/mobile/lib/l10n/intl_ti.arb @@ -1,4 +1,5 @@ { "@@locale ": "en", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_tr.arb b/mobile/lib/l10n/intl_tr.arb index 2deab4360d..f6a3b99b12 100644 --- a/mobile/lib/l10n/intl_tr.arb +++ b/mobile/lib/l10n/intl_tr.arb @@ -1740,5 +1740,6 @@ "cLBulkEdit": "Tarihleri toplu düzenle", "cLBulkEditDesc": "Artık birden fazla fotoğraf seçebilir ve tek bir hızlı işlemle hepsi için tarih/saat düzenleyebilirsiniz. Tarih kaydırma da desteklenmektedir.", "curatedMemories": "Seçilmiş anılar", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_uk.arb b/mobile/lib/l10n/intl_uk.arb index 7766b5ca9c..101639c4ac 100644 --- a/mobile/lib/l10n/intl_uk.arb +++ b/mobile/lib/l10n/intl_uk.arb @@ -1511,5 +1511,6 @@ "legacyInvite": "{email} запросив вас стати довіреною особою", "authToManageLegacy": "Авторизуйтесь, щоби керувати довіреними контактами", "useDifferentPlayerInfo": "Виникли проблеми з відтворенням цього відео? Натисніть і утримуйте тут, щоб спробувати інший плеєр.", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_vi.arb b/mobile/lib/l10n/intl_vi.arb index 33920422d2..36849ec57c 100644 --- a/mobile/lib/l10n/intl_vi.arb +++ b/mobile/lib/l10n/intl_vi.arb @@ -1533,5 +1533,6 @@ "joinAlbumSubtext": "để xem và thêm ảnh của bạn", "joinAlbumSubtextViewer": "thêm vào album được chia sẻ", "join": "Tham gia", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_zh.arb b/mobile/lib/l10n/intl_zh.arb index 95668ef4a6..37265d5706 100644 --- a/mobile/lib/l10n/intl_zh.arb +++ b/mobile/lib/l10n/intl_zh.arb @@ -1734,5 +1734,6 @@ "cLFamilyPlanDesc": "你现在可以为家庭成员设置存储空间使用上限。", "cLBulkEdit": "批量编辑日期", "cLBulkEditDesc": "你现在可以选择多张照片,一键批量修改日期/时间,并支持日期顺移。", - "onThisDay": "On this day" + "onThisDay": "On this day", + "lookBackOnYourMemories": "Look back on your memories 🌄" } \ No newline at end of file diff --git a/mobile/lib/services/memories_cache_service.dart b/mobile/lib/services/memories_cache_service.dart index 21b9ab6f79..3baceb3415 100644 --- a/mobile/lib/services/memories_cache_service.dart +++ b/mobile/lib/services/memories_cache_service.dart @@ -18,6 +18,7 @@ import "package:photos/models/memories/memory.dart"; import "package:photos/models/memories/smart_memory.dart"; import "package:photos/models/memories/smart_memory_constants.dart"; import "package:photos/service_locator.dart"; +import "package:photos/services/language_service.dart"; import "package:photos/services/notification_service.dart"; import "package:photos/services/search_service.dart"; import "package:photos/ui/home/memories/full_screen_memory.dart"; @@ -269,12 +270,13 @@ class MemoriesCacheService { ); continue; } + final s = await LanguageService.s; await NotificationService.instance.scheduleNotification( - "On this day", - "Look back on $numberOfMemories memories 🌄", + s.onThisDay, + s.lookBackOnYourMemories, id: memory.id.hashCode, channelID: "onThisDay", - channelName: "On this day", + channelName: s.onThisDay, payload: memory.id, dateTime: scheduleTime, ); From 18e7bbd1edb0ea65af6a9d251ad6cc760b91b5c5 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Fri, 23 May 2025 10:41:27 +0530 Subject: [PATCH 061/316] Extract strings for i18n for existing notifications --- mobile/lib/generated/intl/messages_ar.dart | 5 ++++ mobile/lib/generated/intl/messages_be.dart | 5 ++++ mobile/lib/generated/intl/messages_bg.dart | 7 ++++- mobile/lib/generated/intl/messages_ca.dart | 7 ++++- mobile/lib/generated/intl/messages_cs.dart | 5 ++++ mobile/lib/generated/intl/messages_da.dart | 5 ++++ mobile/lib/generated/intl/messages_de.dart | 5 ++++ mobile/lib/generated/intl/messages_el.dart | 7 ++++- mobile/lib/generated/intl/messages_en.dart | 5 ++++ mobile/lib/generated/intl/messages_es.dart | 5 ++++ mobile/lib/generated/intl/messages_et.dart | 5 ++++ mobile/lib/generated/intl/messages_eu.dart | 5 ++++ mobile/lib/generated/intl/messages_fa.dart | 5 ++++ mobile/lib/generated/intl/messages_fr.dart | 5 ++++ mobile/lib/generated/intl/messages_gu.dart | 7 ++++- mobile/lib/generated/intl/messages_he.dart | 5 ++++ mobile/lib/generated/intl/messages_hi.dart | 5 ++++ mobile/lib/generated/intl/messages_hu.dart | 5 ++++ mobile/lib/generated/intl/messages_id.dart | 5 ++++ mobile/lib/generated/intl/messages_it.dart | 5 ++++ mobile/lib/generated/intl/messages_ja.dart | 5 ++++ mobile/lib/generated/intl/messages_km.dart | 7 ++++- mobile/lib/generated/intl/messages_ko.dart | 5 ++++ mobile/lib/generated/intl/messages_lt.dart | 5 ++++ mobile/lib/generated/intl/messages_lv.dart | 7 ++++- mobile/lib/generated/intl/messages_ml.dart | 5 ++++ mobile/lib/generated/intl/messages_nl.dart | 5 ++++ mobile/lib/generated/intl/messages_no.dart | 5 ++++ mobile/lib/generated/intl/messages_or.dart | 7 ++++- mobile/lib/generated/intl/messages_pl.dart | 5 ++++ mobile/lib/generated/intl/messages_pt.dart | 5 ++++ mobile/lib/generated/intl/messages_pt_BR.dart | 5 ++++ mobile/lib/generated/intl/messages_pt_PT.dart | 5 ++++ mobile/lib/generated/intl/messages_ro.dart | 5 ++++ mobile/lib/generated/intl/messages_ru.dart | 5 ++++ mobile/lib/generated/intl/messages_sl.dart | 7 ++++- mobile/lib/generated/intl/messages_sv.dart | 5 ++++ mobile/lib/generated/intl/messages_ta.dart | 5 ++++ mobile/lib/generated/intl/messages_te.dart | 7 ++++- mobile/lib/generated/intl/messages_th.dart | 5 ++++ mobile/lib/generated/intl/messages_ti.dart | 7 ++++- mobile/lib/generated/intl/messages_tr.dart | 5 ++++ mobile/lib/generated/intl/messages_uk.dart | 5 ++++ mobile/lib/generated/intl/messages_vi.dart | 5 ++++ mobile/lib/generated/intl/messages_zh.dart | 5 ++++ mobile/lib/generated/l10n.dart | 30 +++++++++++++++++++ mobile/lib/l10n/intl_ar.arb | 5 +++- mobile/lib/l10n/intl_be.arb | 5 +++- mobile/lib/l10n/intl_bg.arb | 5 +++- mobile/lib/l10n/intl_ca.arb | 5 +++- mobile/lib/l10n/intl_cs.arb | 5 +++- mobile/lib/l10n/intl_da.arb | 5 +++- mobile/lib/l10n/intl_de.arb | 5 +++- mobile/lib/l10n/intl_el.arb | 5 +++- mobile/lib/l10n/intl_en.arb | 5 +++- mobile/lib/l10n/intl_es.arb | 5 +++- mobile/lib/l10n/intl_et.arb | 5 +++- mobile/lib/l10n/intl_eu.arb | 5 +++- mobile/lib/l10n/intl_fa.arb | 5 +++- mobile/lib/l10n/intl_fr.arb | 5 +++- mobile/lib/l10n/intl_gu.arb | 5 +++- mobile/lib/l10n/intl_he.arb | 5 +++- mobile/lib/l10n/intl_hi.arb | 5 +++- mobile/lib/l10n/intl_hu.arb | 5 +++- mobile/lib/l10n/intl_id.arb | 5 +++- mobile/lib/l10n/intl_it.arb | 5 +++- mobile/lib/l10n/intl_ja.arb | 5 +++- mobile/lib/l10n/intl_km.arb | 5 +++- mobile/lib/l10n/intl_ko.arb | 5 +++- mobile/lib/l10n/intl_lt.arb | 5 +++- mobile/lib/l10n/intl_lv.arb | 5 +++- mobile/lib/l10n/intl_ml.arb | 5 +++- mobile/lib/l10n/intl_nl.arb | 5 +++- mobile/lib/l10n/intl_no.arb | 5 +++- mobile/lib/l10n/intl_or.arb | 5 +++- mobile/lib/l10n/intl_pl.arb | 5 +++- mobile/lib/l10n/intl_pt.arb | 5 +++- mobile/lib/l10n/intl_pt_BR.arb | 5 +++- mobile/lib/l10n/intl_pt_PT.arb | 5 +++- mobile/lib/l10n/intl_ro.arb | 5 +++- mobile/lib/l10n/intl_ru.arb | 5 +++- mobile/lib/l10n/intl_sl.arb | 5 +++- mobile/lib/l10n/intl_sv.arb | 5 +++- mobile/lib/l10n/intl_ta.arb | 5 +++- mobile/lib/l10n/intl_te.arb | 5 +++- mobile/lib/l10n/intl_th.arb | 5 +++- mobile/lib/l10n/intl_ti.arb | 5 +++- mobile/lib/l10n/intl_tr.arb | 5 +++- mobile/lib/l10n/intl_uk.arb | 5 +++- mobile/lib/l10n/intl_vi.arb | 5 +++- mobile/lib/l10n/intl_zh.arb | 5 +++- .../services/sync/remote_sync_service.dart | 4 ++- mobile/lib/services/sync/sync_service.dart | 6 ++-- mobile/lib/services/update_service.dart | 6 ++-- 94 files changed, 456 insertions(+), 60 deletions(-) diff --git a/mobile/lib/generated/intl/messages_ar.dart b/mobile/lib/generated/intl/messages_ar.dart index c572642683..959330a9d7 100644 --- a/mobile/lib/generated/intl/messages_ar.dart +++ b/mobile/lib/generated/intl/messages_ar.dart @@ -624,6 +624,8 @@ class MessageLookup extends MessageLookupByLibrary { "click": MessageLookupByLibrary.simpleMessage("• انقر على"), "clickOnTheOverflowMenu": MessageLookupByLibrary.simpleMessage( "• انقر على قائمة الخيارات الإضافية"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "close": MessageLookupByLibrary.simpleMessage("إغلاق"), "clubByCaptureTime": MessageLookupByLibrary.simpleMessage("التجميع حسب وقت الالتقاط"), @@ -1328,6 +1330,7 @@ class MessageLookup extends MessageLookupByLibrary { "newAlbum": MessageLookupByLibrary.simpleMessage("ألبوم جديد"), "newLocation": MessageLookupByLibrary.simpleMessage("موقع جديد"), "newPerson": MessageLookupByLibrary.simpleMessage("شخص جديد"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "newRange": MessageLookupByLibrary.simpleMessage("نطاق جديد"), "newToEnte": MessageLookupByLibrary.simpleMessage("جديد في Ente"), "newest": MessageLookupByLibrary.simpleMessage("الأحدث"), @@ -1867,6 +1870,8 @@ class MessageLookup extends MessageLookupByLibrary { "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "عذرًا، لم نتمكن من إنشاء مفاتيح آمنة على هذا الجهاز.\n\nيرجى التسجيل من جهاز مختلف."), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "sort": MessageLookupByLibrary.simpleMessage("فرز"), "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("فرز حسب"), "sortNewestFirst": MessageLookupByLibrary.simpleMessage("الأحدث أولاً"), diff --git a/mobile/lib/generated/intl/messages_be.dart b/mobile/lib/generated/intl/messages_be.dart index 4f5f0e0529..c14fea4819 100644 --- a/mobile/lib/generated/intl/messages_be.dart +++ b/mobile/lib/generated/intl/messages_be.dart @@ -57,6 +57,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Змяніць пароль"), "checkInboxAndSpamFolder": MessageLookupByLibrary.simpleMessage( "Праверце свае ўваходныя лісты (і спам) для завяршэння праверкі"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "codeAppliedPageTitle": MessageLookupByLibrary.simpleMessage("Код ужыты"), "confirm": MessageLookupByLibrary.simpleMessage("Пацвердзіць"), @@ -175,6 +177,7 @@ class MessageLookup extends MessageLookupByLibrary { "manageParticipants": MessageLookupByLibrary.simpleMessage("Кіраванне"), "moderateStrength": MessageLookupByLibrary.simpleMessage("Умераны"), "never": MessageLookupByLibrary.simpleMessage("Ніколі"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "noDuplicates": MessageLookupByLibrary.simpleMessage("✨ Няма дублікатаў"), "noRecoveryKey": @@ -251,6 +254,8 @@ class MessageLookup extends MessageLookupByLibrary { "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "Немагчыма згенерыраваць ключы бяспекі на гэтай прыладзе.\n\nЗарэгіструйцеся з іншай прылады."), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "status": MessageLookupByLibrary.simpleMessage("Стан"), "storageInGB": m91, "strongStrength": MessageLookupByLibrary.simpleMessage("Надзейны"), diff --git a/mobile/lib/generated/intl/messages_bg.dart b/mobile/lib/generated/intl/messages_bg.dart index c8bc981739..cd3e520576 100644 --- a/mobile/lib/generated/intl/messages_bg.dart +++ b/mobile/lib/generated/intl/messages_bg.dart @@ -22,8 +22,13 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( "Look back on your memories 🌄"), - "onThisDay": MessageLookupByLibrary.simpleMessage("On this day") + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), + "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups") }; } diff --git a/mobile/lib/generated/intl/messages_ca.dart b/mobile/lib/generated/intl/messages_ca.dart index 92c65f7c05..eddfee1fd1 100644 --- a/mobile/lib/generated/intl/messages_ca.dart +++ b/mobile/lib/generated/intl/messages_ca.dart @@ -22,8 +22,13 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( "Look back on your memories 🌄"), - "onThisDay": MessageLookupByLibrary.simpleMessage("On this day") + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), + "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups") }; } diff --git a/mobile/lib/generated/intl/messages_cs.dart b/mobile/lib/generated/intl/messages_cs.dart index 33e6e4cfb3..b92954fedc 100644 --- a/mobile/lib/generated/intl/messages_cs.dart +++ b/mobile/lib/generated/intl/messages_cs.dart @@ -115,6 +115,8 @@ class MessageLookup extends MessageLookupByLibrary { "clearCaches": MessageLookupByLibrary.simpleMessage("Vymazat mezipaměť"), "clearIndexes": MessageLookupByLibrary.simpleMessage("Smazat indexy"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "close": MessageLookupByLibrary.simpleMessage("Zavřít"), "codeAppliedPageTitle": MessageLookupByLibrary.simpleMessage("Kód byl použit"), @@ -335,6 +337,7 @@ class MessageLookup extends MessageLookupByLibrary { "never": MessageLookupByLibrary.simpleMessage("Nikdy"), "newAlbum": MessageLookupByLibrary.simpleMessage("Nové album"), "newPerson": MessageLookupByLibrary.simpleMessage("Nová osoba"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "newRange": MessageLookupByLibrary.simpleMessage("Nový rozsah"), "newest": MessageLookupByLibrary.simpleMessage("Nejnovější"), "next": MessageLookupByLibrary.simpleMessage("Další"), @@ -483,6 +486,8 @@ class MessageLookup extends MessageLookupByLibrary { "sharing": MessageLookupByLibrary.simpleMessage("Sdílení..."), "skip": MessageLookupByLibrary.simpleMessage("Přeskočit"), "sorry": MessageLookupByLibrary.simpleMessage("Omlouváme se"), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "sort": MessageLookupByLibrary.simpleMessage("Seřadit"), "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("Seřadit podle"), "sortNewestFirst": diff --git a/mobile/lib/generated/intl/messages_da.dart b/mobile/lib/generated/intl/messages_da.dart index 6001e9d0a3..e6b941a20e 100644 --- a/mobile/lib/generated/intl/messages_da.dart +++ b/mobile/lib/generated/intl/messages_da.dart @@ -107,6 +107,8 @@ class MessageLookup extends MessageLookupByLibrary { "checkInboxAndSpamFolder": MessageLookupByLibrary.simpleMessage( "Tjek venligst din indbakke (og spam) for at færdiggøre verificeringen"), "clearIndexes": MessageLookupByLibrary.simpleMessage("Ryd indekser"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "codeCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Kode kopieret til udklipsholder"), "collabLinkSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -291,6 +293,7 @@ class MessageLookup extends MessageLookupByLibrary { "moments": MessageLookupByLibrary.simpleMessage("Øjeblikke"), "never": MessageLookupByLibrary.simpleMessage("Aldrig"), "newAlbum": MessageLookupByLibrary.simpleMessage("Nyt album"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "next": MessageLookupByLibrary.simpleMessage("Næste"), "noDeviceLimit": MessageLookupByLibrary.simpleMessage("Ingen"), "noRecoveryKey": @@ -405,6 +408,8 @@ class MessageLookup extends MessageLookupByLibrary { "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "Beklager, vi kunne ikke generere sikre krypteringsnøgler på denne enhed.\n\nForsøg venligst at oprette en konto fra en anden enhed."), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "status": MessageLookupByLibrary.simpleMessage("Status"), "storageInGB": m91, "strongStrength": MessageLookupByLibrary.simpleMessage("Stærkt"), diff --git a/mobile/lib/generated/intl/messages_de.dart b/mobile/lib/generated/intl/messages_de.dart index 74ee9a2299..2c98ef7b2a 100644 --- a/mobile/lib/generated/intl/messages_de.dart +++ b/mobile/lib/generated/intl/messages_de.dart @@ -642,6 +642,8 @@ class MessageLookup extends MessageLookupByLibrary { "click": MessageLookupByLibrary.simpleMessage("• Klick"), "clickOnTheOverflowMenu": MessageLookupByLibrary.simpleMessage( "• Klicken Sie auf das Überlaufmenü"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "close": MessageLookupByLibrary.simpleMessage("Schließen"), "clubByCaptureTime": MessageLookupByLibrary.simpleMessage( "Nach Aufnahmezeit gruppieren"), @@ -1369,6 +1371,7 @@ class MessageLookup extends MessageLookupByLibrary { "newAlbum": MessageLookupByLibrary.simpleMessage("Neues Album"), "newLocation": MessageLookupByLibrary.simpleMessage("Neuer Ort"), "newPerson": MessageLookupByLibrary.simpleMessage("Neue Person"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "newRange": MessageLookupByLibrary.simpleMessage("Neue Auswahl"), "newToEnte": MessageLookupByLibrary.simpleMessage("Neu bei Ente"), "newest": MessageLookupByLibrary.simpleMessage("Zuletzt"), @@ -1925,6 +1928,8 @@ class MessageLookup extends MessageLookupByLibrary { "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "Es tut uns leid, wir konnten keine sicheren Schlüssel auf diesem Gerät generieren.\n\nBitte starte die Registrierung auf einem anderen Gerät."), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "sort": MessageLookupByLibrary.simpleMessage("Sortierung"), "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("Sortieren nach"), "sortNewestFirst": diff --git a/mobile/lib/generated/intl/messages_el.dart b/mobile/lib/generated/intl/messages_el.dart index 2c256d3499..0d7002efed 100644 --- a/mobile/lib/generated/intl/messages_el.dart +++ b/mobile/lib/generated/intl/messages_el.dart @@ -22,10 +22,15 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "enterYourEmailAddress": MessageLookupByLibrary.simpleMessage( "Εισάγετε την διεύθυνση ηλ. ταχυδρομείου σας"), "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( "Look back on your memories 🌄"), - "onThisDay": MessageLookupByLibrary.simpleMessage("On this day") + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), + "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups") }; } diff --git a/mobile/lib/generated/intl/messages_en.dart b/mobile/lib/generated/intl/messages_en.dart index 5aecb13146..eb00783fac 100644 --- a/mobile/lib/generated/intl/messages_en.dart +++ b/mobile/lib/generated/intl/messages_en.dart @@ -633,6 +633,8 @@ class MessageLookup extends MessageLookupByLibrary { "click": MessageLookupByLibrary.simpleMessage("• Click"), "clickOnTheOverflowMenu": MessageLookupByLibrary.simpleMessage( "• Click on the overflow menu"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "close": MessageLookupByLibrary.simpleMessage("Close"), "clubByCaptureTime": MessageLookupByLibrary.simpleMessage("Club by capture time"), @@ -1335,6 +1337,7 @@ class MessageLookup extends MessageLookupByLibrary { "newAlbum": MessageLookupByLibrary.simpleMessage("New album"), "newLocation": MessageLookupByLibrary.simpleMessage("New location"), "newPerson": MessageLookupByLibrary.simpleMessage("New person"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "newRange": MessageLookupByLibrary.simpleMessage("New range"), "newToEnte": MessageLookupByLibrary.simpleMessage("New to Ente"), "newest": MessageLookupByLibrary.simpleMessage("Newest"), @@ -1876,6 +1879,8 @@ class MessageLookup extends MessageLookupByLibrary { "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "Sorry, we could not generate secure keys on this device.\n\nplease sign up from a different device."), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "sort": MessageLookupByLibrary.simpleMessage("Sort"), "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("Sort by"), "sortNewestFirst": MessageLookupByLibrary.simpleMessage("Newest first"), diff --git a/mobile/lib/generated/intl/messages_es.dart b/mobile/lib/generated/intl/messages_es.dart index c8ce636785..dbe26ea86c 100644 --- a/mobile/lib/generated/intl/messages_es.dart +++ b/mobile/lib/generated/intl/messages_es.dart @@ -639,6 +639,8 @@ class MessageLookup extends MessageLookupByLibrary { "click": MessageLookupByLibrary.simpleMessage("• Clic"), "clickOnTheOverflowMenu": MessageLookupByLibrary.simpleMessage( "• Haga clic en el menú desbordante"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "close": MessageLookupByLibrary.simpleMessage("Cerrar"), "clubByCaptureTime": MessageLookupByLibrary.simpleMessage( "Agrupar por tiempo de captura"), @@ -1372,6 +1374,7 @@ class MessageLookup extends MessageLookupByLibrary { "newLocation": MessageLookupByLibrary.simpleMessage("Nueva localización"), "newPerson": MessageLookupByLibrary.simpleMessage("Nueva persona"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "newRange": MessageLookupByLibrary.simpleMessage("Nuevo rango"), "newToEnte": MessageLookupByLibrary.simpleMessage("Nuevo en Ente"), "newest": MessageLookupByLibrary.simpleMessage("Más reciente"), @@ -1934,6 +1937,8 @@ class MessageLookup extends MessageLookupByLibrary { "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "Lo sentimos, no hemos podido generar claves seguras en este dispositivo.\n\nPor favor, regístrate desde un dispositivo diferente."), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "sort": MessageLookupByLibrary.simpleMessage("Ordenar"), "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("Ordenar por"), "sortNewestFirst": diff --git a/mobile/lib/generated/intl/messages_et.dart b/mobile/lib/generated/intl/messages_et.dart index caf98b4809..9b29eeeb51 100644 --- a/mobile/lib/generated/intl/messages_et.dart +++ b/mobile/lib/generated/intl/messages_et.dart @@ -49,6 +49,8 @@ class MessageLookup extends MessageLookupByLibrary { "checkStatus": MessageLookupByLibrary.simpleMessage("Kontrolli staatust"), "checking": MessageLookupByLibrary.simpleMessage("Kontrollimine..."), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "collaborator": MessageLookupByLibrary.simpleMessage("Kaastööline"), "collectPhotos": MessageLookupByLibrary.simpleMessage("Kogu fotod"), "color": MessageLookupByLibrary.simpleMessage("Värv"), @@ -164,6 +166,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Liigutatud prügikasti"), "name": MessageLookupByLibrary.simpleMessage("Nimi"), "never": MessageLookupByLibrary.simpleMessage("Mitte kunagi"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "newest": MessageLookupByLibrary.simpleMessage("Uusimad"), "no": MessageLookupByLibrary.simpleMessage("Ei"), "noDeviceLimit": MessageLookupByLibrary.simpleMessage("Puudub"), @@ -224,6 +227,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "Midagi läks valesti, palun proovi uuesti"), "sorry": MessageLookupByLibrary.simpleMessage("Vabandust"), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("Sorteeri"), "sortNewestFirst": MessageLookupByLibrary.simpleMessage("Uuemad eespool"), diff --git a/mobile/lib/generated/intl/messages_eu.dart b/mobile/lib/generated/intl/messages_eu.dart index f66d28b629..2aa81c5360 100644 --- a/mobile/lib/generated/intl/messages_eu.dart +++ b/mobile/lib/generated/intl/messages_eu.dart @@ -184,6 +184,8 @@ class MessageLookup extends MessageLookupByLibrary { "claimMore": MessageLookupByLibrary.simpleMessage("Eskatu gehiago!"), "claimed": MessageLookupByLibrary.simpleMessage("Eskatuta"), "claimedStorageSoFar": m14, + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "codeAppliedPageTitle": MessageLookupByLibrary.simpleMessage("Kodea aplikatuta"), "codeChangeLimitReached": MessageLookupByLibrary.simpleMessage( @@ -423,6 +425,7 @@ class MessageLookup extends MessageLookupByLibrary { "movedToTrash": MessageLookupByLibrary.simpleMessage("Zarama mugituta"), "never": MessageLookupByLibrary.simpleMessage("Inoiz ez"), "newAlbum": MessageLookupByLibrary.simpleMessage("Album berria"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "noDeviceLimit": MessageLookupByLibrary.simpleMessage("Bat ere ez"), "noRecoveryKey": MessageLookupByLibrary.simpleMessage("Berreskuratze giltzarik ez?"), @@ -567,6 +570,8 @@ class MessageLookup extends MessageLookupByLibrary { "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "Tamalez, ezin dugu giltza segururik sortu gailu honetan. \n\nMesedez, eman izena beste gailu batetik."), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "storageInGB": m91, "strongStrength": MessageLookupByLibrary.simpleMessage("Gogorra"), "subscribe": MessageLookupByLibrary.simpleMessage("Harpidetu"), diff --git a/mobile/lib/generated/intl/messages_fa.dart b/mobile/lib/generated/intl/messages_fa.dart index 33bb8d15b1..f1daddcb4f 100644 --- a/mobile/lib/generated/intl/messages_fa.dart +++ b/mobile/lib/generated/intl/messages_fa.dart @@ -103,6 +103,8 @@ class MessageLookup extends MessageLookupByLibrary { "لطفا صندوق ورودی (و هرزنامه) خود را برای تایید کامل بررسی کنید"), "checkStatus": MessageLookupByLibrary.simpleMessage("بررسی وضعیت"), "checking": MessageLookupByLibrary.simpleMessage("در حال بررسی..."), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "collabLinkSectionDescription": MessageLookupByLibrary.simpleMessage( "پیوندی ایجاد کنید تا به افراد اجازه دهید بدون نیاز به برنامه یا حساب کاربری Ente عکس‌ها را در آلبوم اشتراک گذاشته شده شما اضافه و مشاهده کنند. برای جمع‌آوری عکس‌های رویداد عالی است."), "collaborator": MessageLookupByLibrary.simpleMessage("همکار"), @@ -260,6 +262,7 @@ class MessageLookup extends MessageLookupByLibrary { "merchandise": MessageLookupByLibrary.simpleMessage("کالا"), "moderateStrength": MessageLookupByLibrary.simpleMessage("متوسط"), "never": MessageLookupByLibrary.simpleMessage("هرگز"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "newToEnte": MessageLookupByLibrary.simpleMessage("کاربر جدید Ente"), "no": MessageLookupByLibrary.simpleMessage("خیر"), "noRecoveryKey": @@ -356,6 +359,8 @@ class MessageLookup extends MessageLookupByLibrary { "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "با عرض پوزش، ما نمی‌توانیم کلیدهای امن را در این دستگاه تولید کنیم.\n\nلطفا از دستگاه دیگری ثبت نام کنید."), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("مرتب‌سازی براساس"), "sortNewestFirst": diff --git a/mobile/lib/generated/intl/messages_fr.dart b/mobile/lib/generated/intl/messages_fr.dart index 915b0805d8..7b66a021fe 100644 --- a/mobile/lib/generated/intl/messages_fr.dart +++ b/mobile/lib/generated/intl/messages_fr.dart @@ -620,6 +620,8 @@ class MessageLookup extends MessageLookupByLibrary { "click": MessageLookupByLibrary.simpleMessage("• Cliquez sur"), "clickOnTheOverflowMenu": MessageLookupByLibrary.simpleMessage( "• Cliquez sur le menu de débordement"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "close": MessageLookupByLibrary.simpleMessage("Fermer"), "clubByCaptureTime": MessageLookupByLibrary.simpleMessage("Grouper par durée"), @@ -1358,6 +1360,7 @@ class MessageLookup extends MessageLookupByLibrary { "newAlbum": MessageLookupByLibrary.simpleMessage("Nouvel album"), "newLocation": MessageLookupByLibrary.simpleMessage("Nouveau lieu"), "newPerson": MessageLookupByLibrary.simpleMessage("Nouvelle personne"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "newRange": MessageLookupByLibrary.simpleMessage("Nouvelle plage"), "newToEnte": MessageLookupByLibrary.simpleMessage("Nouveau sur Ente"), "newest": MessageLookupByLibrary.simpleMessage("Le plus récent"), @@ -1933,6 +1936,8 @@ class MessageLookup extends MessageLookupByLibrary { "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "Désolé, nous n\'avons pas pu générer de clés sécurisées sur cet appareil.\n\nVeuillez vous inscrire depuis un autre appareil."), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "sort": MessageLookupByLibrary.simpleMessage("Trier"), "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("Trier par"), "sortNewestFirst": diff --git a/mobile/lib/generated/intl/messages_gu.dart b/mobile/lib/generated/intl/messages_gu.dart index 33cbb26b8b..fc848a58f2 100644 --- a/mobile/lib/generated/intl/messages_gu.dart +++ b/mobile/lib/generated/intl/messages_gu.dart @@ -22,8 +22,13 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( "Look back on your memories 🌄"), - "onThisDay": MessageLookupByLibrary.simpleMessage("On this day") + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), + "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups") }; } diff --git a/mobile/lib/generated/intl/messages_he.dart b/mobile/lib/generated/intl/messages_he.dart index 116b0ce97f..6d3bdd6a2f 100644 --- a/mobile/lib/generated/intl/messages_he.dart +++ b/mobile/lib/generated/intl/messages_he.dart @@ -254,6 +254,8 @@ class MessageLookup extends MessageLookupByLibrary { "claimed": MessageLookupByLibrary.simpleMessage("נתבע"), "claimedStorageSoFar": m14, "click": MessageLookupByLibrary.simpleMessage("• לחץ"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "close": MessageLookupByLibrary.simpleMessage("סגור"), "clubByCaptureTime": MessageLookupByLibrary.simpleMessage("קבץ לפי זמן הצילום"), @@ -569,6 +571,7 @@ class MessageLookup extends MessageLookupByLibrary { "name": MessageLookupByLibrary.simpleMessage("שם"), "never": MessageLookupByLibrary.simpleMessage("לעולם לא"), "newAlbum": MessageLookupByLibrary.simpleMessage("אלבום חדש"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "newest": MessageLookupByLibrary.simpleMessage("החדש ביותר"), "no": MessageLookupByLibrary.simpleMessage("לא"), "noDeviceLimit": MessageLookupByLibrary.simpleMessage("אין"), @@ -807,6 +810,8 @@ class MessageLookup extends MessageLookupByLibrary { "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "אנחנו מצטערים, לא הצלחנו ליצור מפתחות מאובטחים על מכשיר זה.\n\nאנא הירשם ממכשיר אחר."), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("מיין לפי"), "sortOldestFirst": MessageLookupByLibrary.simpleMessage("הישן ביותר קודם"), diff --git a/mobile/lib/generated/intl/messages_hi.dart b/mobile/lib/generated/intl/messages_hi.dart index 7aac940fce..5f54d4920e 100644 --- a/mobile/lib/generated/intl/messages_hi.dart +++ b/mobile/lib/generated/intl/messages_hi.dart @@ -28,6 +28,8 @@ class MessageLookup extends MessageLookupByLibrary { "askDeleteReason": MessageLookupByLibrary.simpleMessage( "आपका अकाउंट हटाने का मुख्य कारण क्या है?"), "cancel": MessageLookupByLibrary.simpleMessage("रद्द करें"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "confirmAccountDeletion": MessageLookupByLibrary.simpleMessage( "अकाउंट डिलीट करने की पुष्टि करें"), "confirmPassword": @@ -77,6 +79,7 @@ class MessageLookup extends MessageLookupByLibrary { "कृपया हमें इस जानकारी के लिए सहायता करें"), "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( "Look back on your memories 🌄"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "noRecoveryKey": MessageLookupByLibrary.simpleMessage("रिकवरी कुंजी नहीं है?"), "noRecoveryKeyNoDecryption": MessageLookupByLibrary.simpleMessage( @@ -94,6 +97,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "कुछ गड़बड़ हुई है। कृपया दोबारा प्रयास करें।"), "sorry": MessageLookupByLibrary.simpleMessage("क्षमा करें!"), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "terminate": MessageLookupByLibrary.simpleMessage("रद्द करें"), "terminateSession": MessageLookupByLibrary.simpleMessage("सेशन रद्द करें?"), diff --git a/mobile/lib/generated/intl/messages_hu.dart b/mobile/lib/generated/intl/messages_hu.dart index 9584741ac3..e9b7cca1f9 100644 --- a/mobile/lib/generated/intl/messages_hu.dart +++ b/mobile/lib/generated/intl/messages_hu.dart @@ -27,6 +27,8 @@ class MessageLookup extends MessageLookupByLibrary { "askDeleteReason": MessageLookupByLibrary.simpleMessage("Miért törli a fiókját?"), "cancel": MessageLookupByLibrary.simpleMessage("Mégse"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "deleteAccount": MessageLookupByLibrary.simpleMessage("Fiók törlése"), "deleteAccountFeedbackPrompt": MessageLookupByLibrary.simpleMessage( "Sajnáljuk, hogy távozik. Kérjük, ossza meg velünk visszajelzéseit, hogy segítsen nekünk a fejlődésben."), @@ -40,7 +42,10 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Érvénytelen e-mail cím"), "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( "Look back on your memories 🌄"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "verify": MessageLookupByLibrary.simpleMessage("Hitelesítés") }; } diff --git a/mobile/lib/generated/intl/messages_id.dart b/mobile/lib/generated/intl/messages_id.dart index 4bfd68d8e9..ba2168d13a 100644 --- a/mobile/lib/generated/intl/messages_id.dart +++ b/mobile/lib/generated/intl/messages_id.dart @@ -388,6 +388,8 @@ class MessageLookup extends MessageLookupByLibrary { "claimedStorageSoFar": m14, "clearIndexes": MessageLookupByLibrary.simpleMessage("Hapus indeks"), "click": MessageLookupByLibrary.simpleMessage("• Click"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "close": MessageLookupByLibrary.simpleMessage("Tutup"), "codeAppliedPageTitle": MessageLookupByLibrary.simpleMessage("Kode diterapkan"), @@ -897,6 +899,7 @@ class MessageLookup extends MessageLookupByLibrary { "Tidak dapat terhubung dengan Ente, harap periksa pengaturan jaringan kamu dan hubungi dukungan jika masalah berlanjut."), "never": MessageLookupByLibrary.simpleMessage("Tidak pernah"), "newAlbum": MessageLookupByLibrary.simpleMessage("Album baru"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "newToEnte": MessageLookupByLibrary.simpleMessage("Baru di Ente"), "newest": MessageLookupByLibrary.simpleMessage("Terbaru"), "no": MessageLookupByLibrary.simpleMessage("Tidak"), @@ -1278,6 +1281,8 @@ class MessageLookup extends MessageLookupByLibrary { "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "Maaf, kami tidak dapat menghasilkan kunci yang aman di perangkat ini.\n\nHarap mendaftar dengan perangkat lain."), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("Urut berdasarkan"), "sortNewestFirst": MessageLookupByLibrary.simpleMessage("Terbaru dulu"), diff --git a/mobile/lib/generated/intl/messages_it.dart b/mobile/lib/generated/intl/messages_it.dart index 1a1e976ea2..3becb7d579 100644 --- a/mobile/lib/generated/intl/messages_it.dart +++ b/mobile/lib/generated/intl/messages_it.dart @@ -528,6 +528,8 @@ class MessageLookup extends MessageLookupByLibrary { "click": MessageLookupByLibrary.simpleMessage("• Clic"), "clickOnTheOverflowMenu": MessageLookupByLibrary.simpleMessage("• Fai clic sul menu"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "close": MessageLookupByLibrary.simpleMessage("Chiudi"), "clubByCaptureTime": MessageLookupByLibrary.simpleMessage("Club per tempo di cattura"), @@ -1220,6 +1222,7 @@ class MessageLookup extends MessageLookupByLibrary { "newAlbum": MessageLookupByLibrary.simpleMessage("Nuovo album"), "newLocation": MessageLookupByLibrary.simpleMessage("Nuova posizione"), "newPerson": MessageLookupByLibrary.simpleMessage("Nuova persona"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "newToEnte": MessageLookupByLibrary.simpleMessage("Prima volta con Ente"), "newest": MessageLookupByLibrary.simpleMessage("Più recenti"), @@ -1718,6 +1721,8 @@ class MessageLookup extends MessageLookupByLibrary { "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "Siamo spiacenti, non possiamo generare le chiavi sicure su questo dispositivo.\n\nPer favore, accedi da un altro dispositivo."), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "sort": MessageLookupByLibrary.simpleMessage("Ordina"), "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("Ordina per"), "sortNewestFirst": diff --git a/mobile/lib/generated/intl/messages_ja.dart b/mobile/lib/generated/intl/messages_ja.dart index 7718fe9c31..6c5cd2b102 100644 --- a/mobile/lib/generated/intl/messages_ja.dart +++ b/mobile/lib/generated/intl/messages_ja.dart @@ -537,6 +537,8 @@ class MessageLookup extends MessageLookupByLibrary { "click": MessageLookupByLibrary.simpleMessage("• クリック"), "clickOnTheOverflowMenu": MessageLookupByLibrary.simpleMessage("• 三点ドットをクリックしてください"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "close": MessageLookupByLibrary.simpleMessage("閉じる"), "clubByCaptureTime": MessageLookupByLibrary.simpleMessage("時間ごとにまとめる"), "clubByFileName": MessageLookupByLibrary.simpleMessage("ファイル名ごとにまとめる"), @@ -1145,6 +1147,7 @@ class MessageLookup extends MessageLookupByLibrary { "newAlbum": MessageLookupByLibrary.simpleMessage("新しいアルバム"), "newLocation": MessageLookupByLibrary.simpleMessage("新しいロケーション"), "newPerson": MessageLookupByLibrary.simpleMessage("新しい人物"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "newRange": MessageLookupByLibrary.simpleMessage("範囲を追加"), "newToEnte": MessageLookupByLibrary.simpleMessage("Enteを初めて使用する"), "newest": MessageLookupByLibrary.simpleMessage("新しい順"), @@ -1609,6 +1612,8 @@ class MessageLookup extends MessageLookupByLibrary { "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "このデバイスでは安全な鍵を生成することができませんでした。\n\n他のデバイスからサインアップを試みてください。"), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "sort": MessageLookupByLibrary.simpleMessage("並び替え"), "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("並び替え"), "sortNewestFirst": MessageLookupByLibrary.simpleMessage("新しい順"), diff --git a/mobile/lib/generated/intl/messages_km.dart b/mobile/lib/generated/intl/messages_km.dart index fe69baf9bd..f3588f427d 100644 --- a/mobile/lib/generated/intl/messages_km.dart +++ b/mobile/lib/generated/intl/messages_km.dart @@ -22,8 +22,13 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( "Look back on your memories 🌄"), - "onThisDay": MessageLookupByLibrary.simpleMessage("On this day") + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), + "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups") }; } diff --git a/mobile/lib/generated/intl/messages_ko.dart b/mobile/lib/generated/intl/messages_ko.dart index fa6c95baef..aa3528b6f6 100644 --- a/mobile/lib/generated/intl/messages_ko.dart +++ b/mobile/lib/generated/intl/messages_ko.dart @@ -27,6 +27,8 @@ class MessageLookup extends MessageLookupByLibrary { "askDeleteReason": MessageLookupByLibrary.simpleMessage("계정을 삭제하는 가장 큰 이유가 무엇인가요?"), "cancel": MessageLookupByLibrary.simpleMessage("닫기"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "confirmAccountDeletion": MessageLookupByLibrary.simpleMessage("계정 삭제 확인"), "deleteAccount": MessageLookupByLibrary.simpleMessage("계정 삭제"), @@ -42,7 +44,10 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("잘못된 이메일 주소"), "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( "Look back on your memories 🌄"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "verify": MessageLookupByLibrary.simpleMessage("인증"), "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage("계정이 삭제되었습니다.") diff --git a/mobile/lib/generated/intl/messages_lt.dart b/mobile/lib/generated/intl/messages_lt.dart index 810e4f43a5..9704bf3ee1 100644 --- a/mobile/lib/generated/intl/messages_lt.dart +++ b/mobile/lib/generated/intl/messages_lt.dart @@ -575,6 +575,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Valyti indeksavimus"), "clickOnTheOverflowMenu": MessageLookupByLibrary.simpleMessage( "• Spustelėkite ant perpildymo meniu"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "close": MessageLookupByLibrary.simpleMessage("Uždaryti"), "clubByCaptureTime": MessageLookupByLibrary.simpleMessage( "Grupuoti pagal užfiksavimo laiką"), @@ -1270,6 +1272,7 @@ class MessageLookup extends MessageLookupByLibrary { "newAlbum": MessageLookupByLibrary.simpleMessage("Naujas albumas"), "newLocation": MessageLookupByLibrary.simpleMessage("Nauja vietovė"), "newPerson": MessageLookupByLibrary.simpleMessage("Naujas asmuo"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "newRange": MessageLookupByLibrary.simpleMessage("Naujas intervalas"), "newToEnte": MessageLookupByLibrary.simpleMessage("Naujas platformoje „Ente“"), @@ -1759,6 +1762,8 @@ class MessageLookup extends MessageLookupByLibrary { "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "Atsiprašome, šiame įrenginyje nepavyko sugeneruoti saugių raktų.\n\nRegistruokitės iš kito įrenginio."), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "sort": MessageLookupByLibrary.simpleMessage("Rikiuoti"), "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("Rikiuoti pagal"), "sortNewestFirst": diff --git a/mobile/lib/generated/intl/messages_lv.dart b/mobile/lib/generated/intl/messages_lv.dart index cf99c3ce5f..1eaf32e13d 100644 --- a/mobile/lib/generated/intl/messages_lv.dart +++ b/mobile/lib/generated/intl/messages_lv.dart @@ -22,8 +22,13 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( "Look back on your memories 🌄"), - "onThisDay": MessageLookupByLibrary.simpleMessage("On this day") + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), + "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups") }; } diff --git a/mobile/lib/generated/intl/messages_ml.dart b/mobile/lib/generated/intl/messages_ml.dart index 0a2a42276e..b4730db226 100644 --- a/mobile/lib/generated/intl/messages_ml.dart +++ b/mobile/lib/generated/intl/messages_ml.dart @@ -32,6 +32,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("കണക്കുകൂട്ടുന്നു..."), "cancel": MessageLookupByLibrary.simpleMessage("റദ്ദാക്കുക"), "changeEmail": MessageLookupByLibrary.simpleMessage("ഇമെയിൽ മാറ്റുക"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "close": MessageLookupByLibrary.simpleMessage("അടക്കുക"), "confirm": MessageLookupByLibrary.simpleMessage("നിജപ്പെടുത്തുക"), "confirmPassword": @@ -86,6 +88,7 @@ class MessageLookup extends MessageLookupByLibrary { "moderateStrength": MessageLookupByLibrary.simpleMessage("ഇടത്തരം"), "monthly": MessageLookupByLibrary.simpleMessage("പ്രതിമാസം"), "name": MessageLookupByLibrary.simpleMessage("പേര്"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "no": MessageLookupByLibrary.simpleMessage("വേണ്ട"), "noDeviceLimit": MessageLookupByLibrary.simpleMessage("ഒന്നുമില്ല"), "nothingToSeeHere": @@ -121,6 +124,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "എന്തോ കുഴപ്പം സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക"), "sorry": MessageLookupByLibrary.simpleMessage("ക്ഷമിക്കുക"), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("ഇപ്രകാരം അടുക്കുക"), "sparkleSuccess": MessageLookupByLibrary.simpleMessage("✨ സഫലം"), diff --git a/mobile/lib/generated/intl/messages_nl.dart b/mobile/lib/generated/intl/messages_nl.dart index 8a62fca2d9..03500fb29e 100644 --- a/mobile/lib/generated/intl/messages_nl.dart +++ b/mobile/lib/generated/intl/messages_nl.dart @@ -604,6 +604,8 @@ class MessageLookup extends MessageLookupByLibrary { "click": MessageLookupByLibrary.simpleMessage("• Click"), "clickOnTheOverflowMenu": MessageLookupByLibrary.simpleMessage("• Klik op het menu"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "close": MessageLookupByLibrary.simpleMessage("Sluiten"), "clubByCaptureTime": MessageLookupByLibrary.simpleMessage("Samenvoegen op tijd"), @@ -1324,6 +1326,7 @@ class MessageLookup extends MessageLookupByLibrary { "newAlbum": MessageLookupByLibrary.simpleMessage("Nieuw album"), "newLocation": MessageLookupByLibrary.simpleMessage("Nieuwe locatie"), "newPerson": MessageLookupByLibrary.simpleMessage("Nieuw persoon"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "newRange": MessageLookupByLibrary.simpleMessage("Nieuwe reeks"), "newToEnte": MessageLookupByLibrary.simpleMessage("Nieuw bij Ente"), "newest": MessageLookupByLibrary.simpleMessage("Nieuwste"), @@ -1877,6 +1880,8 @@ class MessageLookup extends MessageLookupByLibrary { "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "Sorry, we konden geen beveiligde sleutels genereren op dit apparaat.\n\nGelieve je aan te melden vanaf een ander apparaat."), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "sort": MessageLookupByLibrary.simpleMessage("Sorteren"), "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("Sorteren op"), "sortNewestFirst": diff --git a/mobile/lib/generated/intl/messages_no.dart b/mobile/lib/generated/intl/messages_no.dart index 3c1acdadc7..9b6965bc7b 100644 --- a/mobile/lib/generated/intl/messages_no.dart +++ b/mobile/lib/generated/intl/messages_no.dart @@ -607,6 +607,8 @@ class MessageLookup extends MessageLookupByLibrary { "click": MessageLookupByLibrary.simpleMessage("• Klikk"), "clickOnTheOverflowMenu": MessageLookupByLibrary.simpleMessage( "• Klikk på menyen med tre prikker"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "close": MessageLookupByLibrary.simpleMessage("Lukk"), "clubByCaptureTime": MessageLookupByLibrary.simpleMessage( "Grupper etter tidspunkt for opptak"), @@ -1311,6 +1313,7 @@ class MessageLookup extends MessageLookupByLibrary { "newAlbum": MessageLookupByLibrary.simpleMessage("Nytt album"), "newLocation": MessageLookupByLibrary.simpleMessage("Ny plassering"), "newPerson": MessageLookupByLibrary.simpleMessage("Ny person"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "newRange": MessageLookupByLibrary.simpleMessage("Ny rekkevidde"), "newToEnte": MessageLookupByLibrary.simpleMessage("Ny til Ente"), "newest": MessageLookupByLibrary.simpleMessage("Nyeste"), @@ -1855,6 +1858,8 @@ class MessageLookup extends MessageLookupByLibrary { "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "Beklager, vi kunne ikke generere sikre nøkler på denne enheten.\n\nvennligst registrer deg fra en annen enhet."), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "sort": MessageLookupByLibrary.simpleMessage("Sorter"), "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("Sorter etter"), "sortNewestFirst": MessageLookupByLibrary.simpleMessage("Nyeste først"), diff --git a/mobile/lib/generated/intl/messages_or.dart b/mobile/lib/generated/intl/messages_or.dart index ce8f65a068..888066c2c5 100644 --- a/mobile/lib/generated/intl/messages_or.dart +++ b/mobile/lib/generated/intl/messages_or.dart @@ -22,8 +22,13 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( "Look back on your memories 🌄"), - "onThisDay": MessageLookupByLibrary.simpleMessage("On this day") + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), + "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups") }; } diff --git a/mobile/lib/generated/intl/messages_pl.dart b/mobile/lib/generated/intl/messages_pl.dart index bd4126665e..a3fb7ff2f5 100644 --- a/mobile/lib/generated/intl/messages_pl.dart +++ b/mobile/lib/generated/intl/messages_pl.dart @@ -528,6 +528,8 @@ class MessageLookup extends MessageLookupByLibrary { "click": MessageLookupByLibrary.simpleMessage("• Kliknij"), "clickOnTheOverflowMenu": MessageLookupByLibrary.simpleMessage( "• Kliknij na menu przepełnienia"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "close": MessageLookupByLibrary.simpleMessage("Zamknij"), "clubByCaptureTime": MessageLookupByLibrary.simpleMessage( "Club według czasu przechwycenia"), @@ -1213,6 +1215,7 @@ class MessageLookup extends MessageLookupByLibrary { "newAlbum": MessageLookupByLibrary.simpleMessage("Nowy album"), "newLocation": MessageLookupByLibrary.simpleMessage("Nowa lokalizacja"), "newPerson": MessageLookupByLibrary.simpleMessage("Nowa osoba"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "newToEnte": MessageLookupByLibrary.simpleMessage("Nowy/a do Ente"), "newest": MessageLookupByLibrary.simpleMessage("Najnowsze"), "next": MessageLookupByLibrary.simpleMessage("Dalej"), @@ -1710,6 +1713,8 @@ class MessageLookup extends MessageLookupByLibrary { "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "Przepraszamy, nie mogliśmy wygenerować bezpiecznych kluczy na tym urządzeniu.\n\nZarejestruj się z innego urządzenia."), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "sort": MessageLookupByLibrary.simpleMessage("Sortuj"), "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("Sortuj według"), "sortNewestFirst": diff --git a/mobile/lib/generated/intl/messages_pt.dart b/mobile/lib/generated/intl/messages_pt.dart index d60824804e..cc787f58ce 100644 --- a/mobile/lib/generated/intl/messages_pt.dart +++ b/mobile/lib/generated/intl/messages_pt.dart @@ -596,6 +596,8 @@ class MessageLookup extends MessageLookupByLibrary { "click": MessageLookupByLibrary.simpleMessage("Clique"), "clickOnTheOverflowMenu": MessageLookupByLibrary.simpleMessage("• Clique no menu adicional"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "close": MessageLookupByLibrary.simpleMessage("Fechar"), "clubByCaptureTime": MessageLookupByLibrary.simpleMessage( "Agrupar por tempo de captura"), @@ -1306,6 +1308,7 @@ class MessageLookup extends MessageLookupByLibrary { "newAlbum": MessageLookupByLibrary.simpleMessage("Novo álbum"), "newLocation": MessageLookupByLibrary.simpleMessage("Nova localização"), "newPerson": MessageLookupByLibrary.simpleMessage("Nova pessoa"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "newRange": MessageLookupByLibrary.simpleMessage("Novo intervalo"), "newToEnte": MessageLookupByLibrary.simpleMessage("Novo no Ente"), "newest": MessageLookupByLibrary.simpleMessage("Recentes"), @@ -1856,6 +1859,8 @@ class MessageLookup extends MessageLookupByLibrary { "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "Desculpe, não foi possível gerar chaves seguras neste dispositivo.\n\npor favor iniciar sessão com um dispositivo diferente."), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "sort": MessageLookupByLibrary.simpleMessage("Ordenar"), "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("Ordenar por"), "sortNewestFirst": diff --git a/mobile/lib/generated/intl/messages_pt_BR.dart b/mobile/lib/generated/intl/messages_pt_BR.dart index 9a6b66d080..ed90eb900d 100644 --- a/mobile/lib/generated/intl/messages_pt_BR.dart +++ b/mobile/lib/generated/intl/messages_pt_BR.dart @@ -634,6 +634,8 @@ class MessageLookup extends MessageLookupByLibrary { "click": MessageLookupByLibrary.simpleMessage("• Clique"), "clickOnTheOverflowMenu": MessageLookupByLibrary.simpleMessage("• Clique no menu adicional"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "close": MessageLookupByLibrary.simpleMessage("Fechar"), "clubByCaptureTime": MessageLookupByLibrary.simpleMessage( "Agrupar por tempo de captura"), @@ -1358,6 +1360,7 @@ class MessageLookup extends MessageLookupByLibrary { "newAlbum": MessageLookupByLibrary.simpleMessage("Novo álbum"), "newLocation": MessageLookupByLibrary.simpleMessage("Nova localização"), "newPerson": MessageLookupByLibrary.simpleMessage("Nova pessoa"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "newRange": MessageLookupByLibrary.simpleMessage("Novo intervalo"), "newToEnte": MessageLookupByLibrary.simpleMessage("Novo no Ente"), "newest": MessageLookupByLibrary.simpleMessage("Mais recente"), @@ -1911,6 +1914,8 @@ class MessageLookup extends MessageLookupByLibrary { "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "Desculpe, não foi possível gerar chaves seguras neste dispositivo.\n\ninicie sessão com um dispositivo diferente."), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "sort": MessageLookupByLibrary.simpleMessage("Ordenar"), "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("Ordenar por"), "sortNewestFirst": diff --git a/mobile/lib/generated/intl/messages_pt_PT.dart b/mobile/lib/generated/intl/messages_pt_PT.dart index aa5d8d2668..756958eb4b 100644 --- a/mobile/lib/generated/intl/messages_pt_PT.dart +++ b/mobile/lib/generated/intl/messages_pt_PT.dart @@ -473,6 +473,8 @@ class MessageLookup extends MessageLookupByLibrary { "click": MessageLookupByLibrary.simpleMessage("Clique"), "clickOnTheOverflowMenu": MessageLookupByLibrary.simpleMessage("• Clique no menu adicional"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "close": MessageLookupByLibrary.simpleMessage("Fechar"), "clubByCaptureTime": MessageLookupByLibrary.simpleMessage( "Agrupar por tempo de captura"), @@ -1117,6 +1119,7 @@ class MessageLookup extends MessageLookupByLibrary { "never": MessageLookupByLibrary.simpleMessage("Nunca"), "newAlbum": MessageLookupByLibrary.simpleMessage("Novo álbum"), "newPerson": MessageLookupByLibrary.simpleMessage("Nova pessoa"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "newToEnte": MessageLookupByLibrary.simpleMessage("Novo no Ente"), "newest": MessageLookupByLibrary.simpleMessage("Recentes"), "next": MessageLookupByLibrary.simpleMessage("Seguinte"), @@ -1581,6 +1584,8 @@ class MessageLookup extends MessageLookupByLibrary { "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "Desculpe, não foi possível gerar chaves seguras neste dispositivo.\n\npor favor iniciar sessão com um dispositivo diferente."), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "sort": MessageLookupByLibrary.simpleMessage("Ordenar"), "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("Ordenar por"), "sortNewestFirst": diff --git a/mobile/lib/generated/intl/messages_ro.dart b/mobile/lib/generated/intl/messages_ro.dart index b15238f094..979c719086 100644 --- a/mobile/lib/generated/intl/messages_ro.dart +++ b/mobile/lib/generated/intl/messages_ro.dart @@ -528,6 +528,8 @@ class MessageLookup extends MessageLookupByLibrary { "click": MessageLookupByLibrary.simpleMessage("• Apăsați"), "clickOnTheOverflowMenu": MessageLookupByLibrary.simpleMessage( "• Apăsați pe meniul suplimentar"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "close": MessageLookupByLibrary.simpleMessage("Închidere"), "clubByCaptureTime": MessageLookupByLibrary.simpleMessage( "Grupare după timpul capturării"), @@ -1219,6 +1221,7 @@ class MessageLookup extends MessageLookupByLibrary { "newAlbum": MessageLookupByLibrary.simpleMessage("Album nou"), "newLocation": MessageLookupByLibrary.simpleMessage("Locație nouă"), "newPerson": MessageLookupByLibrary.simpleMessage("Persoană nouă"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "newToEnte": MessageLookupByLibrary.simpleMessage("Nou la Ente"), "newest": MessageLookupByLibrary.simpleMessage("Cele mai noi"), "next": MessageLookupByLibrary.simpleMessage("Înainte"), @@ -1729,6 +1732,8 @@ class MessageLookup extends MessageLookupByLibrary { "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "Ne pare rău, nu am putut genera chei securizate pe acest dispozitiv.\n\nvă rugăm să vă înregistrați de pe un alt dispozitiv."), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "sort": MessageLookupByLibrary.simpleMessage("Sortare"), "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("Sortare după"), "sortNewestFirst": diff --git a/mobile/lib/generated/intl/messages_ru.dart b/mobile/lib/generated/intl/messages_ru.dart index 33d7098573..a115d97128 100644 --- a/mobile/lib/generated/intl/messages_ru.dart +++ b/mobile/lib/generated/intl/messages_ru.dart @@ -632,6 +632,8 @@ class MessageLookup extends MessageLookupByLibrary { "click": MessageLookupByLibrary.simpleMessage("• Нажмите"), "clickOnTheOverflowMenu": MessageLookupByLibrary.simpleMessage( "• Нажмите на меню дополнительных действий"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "close": MessageLookupByLibrary.simpleMessage("Закрыть"), "clubByCaptureTime": MessageLookupByLibrary.simpleMessage( "Группировать по времени съёмки"), @@ -1358,6 +1360,7 @@ class MessageLookup extends MessageLookupByLibrary { "newLocation": MessageLookupByLibrary.simpleMessage("Новое местоположение"), "newPerson": MessageLookupByLibrary.simpleMessage("Новый человек"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "newRange": MessageLookupByLibrary.simpleMessage("Новый диапазон"), "newToEnte": MessageLookupByLibrary.simpleMessage("Впервые в Ente"), "newest": MessageLookupByLibrary.simpleMessage("Недавние"), @@ -1921,6 +1924,8 @@ class MessageLookup extends MessageLookupByLibrary { "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "К сожалению, мы не смогли сгенерировать безопасные ключи на этом устройстве.\n\nПожалуйста, зарегистрируйтесь с другого устройства."), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "sort": MessageLookupByLibrary.simpleMessage("Сортировать"), "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("Сортировать по"), "sortNewestFirst": diff --git a/mobile/lib/generated/intl/messages_sl.dart b/mobile/lib/generated/intl/messages_sl.dart index 7936da08e4..823727eb84 100644 --- a/mobile/lib/generated/intl/messages_sl.dart +++ b/mobile/lib/generated/intl/messages_sl.dart @@ -22,8 +22,13 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( "Look back on your memories 🌄"), - "onThisDay": MessageLookupByLibrary.simpleMessage("On this day") + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), + "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups") }; } diff --git a/mobile/lib/generated/intl/messages_sv.dart b/mobile/lib/generated/intl/messages_sv.dart index e48c61b308..7dc6359777 100644 --- a/mobile/lib/generated/intl/messages_sv.dart +++ b/mobile/lib/generated/intl/messages_sv.dart @@ -192,6 +192,8 @@ class MessageLookup extends MessageLookupByLibrary { "claimed": MessageLookupByLibrary.simpleMessage("Nyttjad"), "claimedStorageSoFar": m14, "clearIndexes": MessageLookupByLibrary.simpleMessage("Rensa index"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "close": MessageLookupByLibrary.simpleMessage("Stäng"), "codeAppliedPageTitle": MessageLookupByLibrary.simpleMessage("Kod tillämpad"), @@ -429,6 +431,7 @@ class MessageLookup extends MessageLookupByLibrary { "never": MessageLookupByLibrary.simpleMessage("Aldrig"), "newAlbum": MessageLookupByLibrary.simpleMessage("Nytt album"), "newPerson": MessageLookupByLibrary.simpleMessage("Ny person"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "next": MessageLookupByLibrary.simpleMessage("Nästa"), "no": MessageLookupByLibrary.simpleMessage("Nej"), "noDeviceLimit": MessageLookupByLibrary.simpleMessage("Ingen"), @@ -604,6 +607,8 @@ class MessageLookup extends MessageLookupByLibrary { "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "Tyvärr, vi kunde inte generera säkra nycklar på den här enheten.\n\nVänligen registrera dig från en annan enhet."), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "sort": MessageLookupByLibrary.simpleMessage("Sortera"), "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("Sortera efter"), "status": MessageLookupByLibrary.simpleMessage("Status"), diff --git a/mobile/lib/generated/intl/messages_ta.dart b/mobile/lib/generated/intl/messages_ta.dart index 30aeec45bd..424812eef3 100644 --- a/mobile/lib/generated/intl/messages_ta.dart +++ b/mobile/lib/generated/intl/messages_ta.dart @@ -27,6 +27,8 @@ class MessageLookup extends MessageLookupByLibrary { "askDeleteReason": MessageLookupByLibrary.simpleMessage( "உங்கள் கணக்கை நீக்குவதற்கான முக்கிய காரணம் என்ன?"), "cancel": MessageLookupByLibrary.simpleMessage("ரத்து செய்"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "confirmAccountDeletion": MessageLookupByLibrary.simpleMessage( "கணக்கு நீக்குதலை உறுதிப்படுத்தவும்"), "confirmDeletePrompt": MessageLookupByLibrary.simpleMessage( @@ -54,9 +56,12 @@ class MessageLookup extends MessageLookupByLibrary { "இந்த தகவலுடன் தயவுசெய்து எங்களுக்கு உதவுங்கள்"), "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( "Look back on your memories 🌄"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), "selectReason": MessageLookupByLibrary.simpleMessage( "காரணத்தைத் தேர்ந்தெடுக்கவும்"), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "verify": MessageLookupByLibrary.simpleMessage("சரிபார்க்கவும்"), "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage("உங்கள் கணக்கு நீக்கப்பட்டது") diff --git a/mobile/lib/generated/intl/messages_te.dart b/mobile/lib/generated/intl/messages_te.dart index d7e29da554..071ef18cb7 100644 --- a/mobile/lib/generated/intl/messages_te.dart +++ b/mobile/lib/generated/intl/messages_te.dart @@ -22,8 +22,13 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( "Look back on your memories 🌄"), - "onThisDay": MessageLookupByLibrary.simpleMessage("On this day") + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), + "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups") }; } diff --git a/mobile/lib/generated/intl/messages_th.dart b/mobile/lib/generated/intl/messages_th.dart index b809721f4b..d92ac3abd2 100644 --- a/mobile/lib/generated/intl/messages_th.dart +++ b/mobile/lib/generated/intl/messages_th.dart @@ -87,6 +87,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("เปลี่ยนรหัสผ่าน"), "checkInboxAndSpamFolder": MessageLookupByLibrary.simpleMessage( "โปรดตรวจสอบกล่องจดหมาย (และสแปม) ของคุณ เพื่อยืนยันให้เสร็จสิ้น"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "codeCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "คัดลอกรหัสไปยังคลิปบอร์ดแล้ว"), "collectPhotos": MessageLookupByLibrary.simpleMessage("รวบรวมรูปภาพ"), @@ -212,6 +214,7 @@ class MessageLookup extends MessageLookupByLibrary { "moderateStrength": MessageLookupByLibrary.simpleMessage("ปานกลาง"), "moveToAlbum": MessageLookupByLibrary.simpleMessage("ย้ายไปยังอัลบั้ม"), "name": MessageLookupByLibrary.simpleMessage("ชื่อ"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "newest": MessageLookupByLibrary.simpleMessage("ใหม่สุด"), "noRecoveryKey": MessageLookupByLibrary.simpleMessage("ไม่มีคีย์การกู้คืน?"), @@ -299,6 +302,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "มีบางอย่างผิดพลาด โปรดลองอีกครั้ง"), "sorry": MessageLookupByLibrary.simpleMessage("ขออภัย"), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "status": MessageLookupByLibrary.simpleMessage("สถานะ"), "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("ครอบครัว"), diff --git a/mobile/lib/generated/intl/messages_ti.dart b/mobile/lib/generated/intl/messages_ti.dart index abf7fc2cc0..915a9b6098 100644 --- a/mobile/lib/generated/intl/messages_ti.dart +++ b/mobile/lib/generated/intl/messages_ti.dart @@ -22,8 +22,13 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( "Look back on your memories 🌄"), - "onThisDay": MessageLookupByLibrary.simpleMessage("On this day") + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), + "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups") }; } diff --git a/mobile/lib/generated/intl/messages_tr.dart b/mobile/lib/generated/intl/messages_tr.dart index 3fa42e53a4..2b2a68cf86 100644 --- a/mobile/lib/generated/intl/messages_tr.dart +++ b/mobile/lib/generated/intl/messages_tr.dart @@ -635,6 +635,8 @@ class MessageLookup extends MessageLookupByLibrary { "click": MessageLookupByLibrary.simpleMessage("• Tıklamak"), "clickOnTheOverflowMenu": MessageLookupByLibrary.simpleMessage("• Taşma menüsüne tıklayın"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "close": MessageLookupByLibrary.simpleMessage("Kapat"), "clubByCaptureTime": MessageLookupByLibrary.simpleMessage( "Yakalama zamanına göre kulüp"), @@ -1354,6 +1356,7 @@ class MessageLookup extends MessageLookupByLibrary { "newAlbum": MessageLookupByLibrary.simpleMessage("Yeni albüm"), "newLocation": MessageLookupByLibrary.simpleMessage("Yeni konum"), "newPerson": MessageLookupByLibrary.simpleMessage("Yeni Kişi"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "newRange": MessageLookupByLibrary.simpleMessage("Yeni aralık"), "newToEnte": MessageLookupByLibrary.simpleMessage("Ente\'de yeniyim"), "newest": MessageLookupByLibrary.simpleMessage("En yeni"), @@ -1905,6 +1908,8 @@ class MessageLookup extends MessageLookupByLibrary { "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "Üzgünüm, bu cihazda güvenli anahtarlarını oluşturamadık.\n\nLütfen başka bir cihazdan giriş yapmayı deneyiniz."), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "sort": MessageLookupByLibrary.simpleMessage("Sırala"), "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("Sırala"), "sortNewestFirst": diff --git a/mobile/lib/generated/intl/messages_uk.dart b/mobile/lib/generated/intl/messages_uk.dart index 867e3e4c74..bf8bb191a4 100644 --- a/mobile/lib/generated/intl/messages_uk.dart +++ b/mobile/lib/generated/intl/messages_uk.dart @@ -514,6 +514,8 @@ class MessageLookup extends MessageLookupByLibrary { "click": MessageLookupByLibrary.simpleMessage("• Натисніть"), "clickOnTheOverflowMenu": MessageLookupByLibrary.simpleMessage( "• Натисніть на меню переповнення"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "close": MessageLookupByLibrary.simpleMessage("Закрити"), "clubByCaptureTime": MessageLookupByLibrary.simpleMessage("Клуб за часом захоплення"), @@ -1189,6 +1191,7 @@ class MessageLookup extends MessageLookupByLibrary { "newLocation": MessageLookupByLibrary.simpleMessage("Нове розташування"), "newPerson": MessageLookupByLibrary.simpleMessage("Нова особа"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "newToEnte": MessageLookupByLibrary.simpleMessage("Уперше на Ente"), "newest": MessageLookupByLibrary.simpleMessage("Найновіші"), "next": MessageLookupByLibrary.simpleMessage("Далі"), @@ -1696,6 +1699,8 @@ class MessageLookup extends MessageLookupByLibrary { "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "На жаль, на цьому пристрої не вдалося створити безпечні ключі.\n\nЗареєструйтесь з іншого пристрою."), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "sort": MessageLookupByLibrary.simpleMessage("Сортувати"), "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("Сортувати за"), "sortNewestFirst": diff --git a/mobile/lib/generated/intl/messages_vi.dart b/mobile/lib/generated/intl/messages_vi.dart index d4f45cc020..24e8ad221a 100644 --- a/mobile/lib/generated/intl/messages_vi.dart +++ b/mobile/lib/generated/intl/messages_vi.dart @@ -520,6 +520,8 @@ class MessageLookup extends MessageLookupByLibrary { "click": MessageLookupByLibrary.simpleMessage("• Nhấn"), "clickOnTheOverflowMenu": MessageLookupByLibrary.simpleMessage("• Nhấn vào menu thả xuống"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "close": MessageLookupByLibrary.simpleMessage("Đóng"), "clubByCaptureTime": MessageLookupByLibrary.simpleMessage("Nhóm theo thời gian chụp"), @@ -1186,6 +1188,7 @@ class MessageLookup extends MessageLookupByLibrary { "newAlbum": MessageLookupByLibrary.simpleMessage("Album mới"), "newLocation": MessageLookupByLibrary.simpleMessage("Vị trí mới"), "newPerson": MessageLookupByLibrary.simpleMessage("Người mới"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "newToEnte": MessageLookupByLibrary.simpleMessage("Mới đến Ente"), "newest": MessageLookupByLibrary.simpleMessage("Mới nhất"), "next": MessageLookupByLibrary.simpleMessage("Tiếp theo"), @@ -1674,6 +1677,8 @@ class MessageLookup extends MessageLookupByLibrary { "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "Xin lỗi, chúng tôi không thể tạo khóa an toàn trên thiết bị này.\n\nVui lòng đăng ký từ một thiết bị khác."), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "sort": MessageLookupByLibrary.simpleMessage("Sắp xếp"), "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("Sắp xếp theo"), "sortNewestFirst": diff --git a/mobile/lib/generated/intl/messages_zh.dart b/mobile/lib/generated/intl/messages_zh.dart index c6c1b274fd..8532d9ed64 100644 --- a/mobile/lib/generated/intl/messages_zh.dart +++ b/mobile/lib/generated/intl/messages_zh.dart @@ -549,6 +549,8 @@ class MessageLookup extends MessageLookupByLibrary { "click": MessageLookupByLibrary.simpleMessage("• 点击"), "clickOnTheOverflowMenu": MessageLookupByLibrary.simpleMessage("• 点击溢出菜单"), + "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( + "Click to install our best version yet"), "close": MessageLookupByLibrary.simpleMessage("关闭"), "clubByCaptureTime": MessageLookupByLibrary.simpleMessage("按拍摄时间分组"), "clubByFileName": MessageLookupByLibrary.simpleMessage("按文件名排序"), @@ -1122,6 +1124,7 @@ class MessageLookup extends MessageLookupByLibrary { "newAlbum": MessageLookupByLibrary.simpleMessage("新建相册"), "newLocation": MessageLookupByLibrary.simpleMessage("新位置"), "newPerson": MessageLookupByLibrary.simpleMessage("新人物"), + "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "newRange": MessageLookupByLibrary.simpleMessage("新起始图片"), "newToEnte": MessageLookupByLibrary.simpleMessage("初来 Ente"), "newest": MessageLookupByLibrary.simpleMessage("最新"), @@ -1552,6 +1555,8 @@ class MessageLookup extends MessageLookupByLibrary { "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "抱歉,我们无法在此设备上生成安全密钥。\n\n请使用其他设备注册。"), + "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( + "Sorry, we had to pause your backups"), "sort": MessageLookupByLibrary.simpleMessage("排序"), "sortAlbumsBy": MessageLookupByLibrary.simpleMessage("排序方式"), "sortNewestFirst": MessageLookupByLibrary.simpleMessage("最新在前"), diff --git a/mobile/lib/generated/l10n.dart b/mobile/lib/generated/l10n.dart index b20a7f2b37..ec86174e1c 100644 --- a/mobile/lib/generated/l10n.dart +++ b/mobile/lib/generated/l10n.dart @@ -11955,6 +11955,36 @@ class S { args: [], ); } + + /// ` new 📸` + String get newPhotosEmoji { + return Intl.message( + ' new 📸', + name: 'newPhotosEmoji', + desc: '', + args: [], + ); + } + + /// `Sorry, we had to pause your backups` + String get sorryWeHadToPauseYourBackups { + return Intl.message( + 'Sorry, we had to pause your backups', + name: 'sorryWeHadToPauseYourBackups', + desc: '', + args: [], + ); + } + + /// `Click to install our best version yet` + String get clickToInstallOurBestVersionYet { + return Intl.message( + 'Click to install our best version yet', + name: 'clickToInstallOurBestVersionYet', + desc: '', + args: [], + ); + } } class AppLocalizationDelegate extends LocalizationsDelegate { diff --git a/mobile/lib/l10n/intl_ar.arb b/mobile/lib/l10n/intl_ar.arb index 75f3531188..76648181ef 100644 --- a/mobile/lib/l10n/intl_ar.arb +++ b/mobile/lib/l10n/intl_ar.arb @@ -1741,5 +1741,8 @@ "cLBulkEditDesc": "يمكنك الآن تحديد صور متعددة، وتعديل التاريخ/الوقت لجميعها بإجراء سريع واحد. تغيير التواريخ مدعوم أيضًا.", "curatedMemories": "ذكريات منسقة", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_be.arb b/mobile/lib/l10n/intl_be.arb index 32d41dd544..0d14acd4f5 100644 --- a/mobile/lib/l10n/intl_be.arb +++ b/mobile/lib/l10n/intl_be.arb @@ -210,5 +210,8 @@ "freeTrial": "Бясплатная пробная версія", "faqs": "Частыя пытанні", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_bg.arb b/mobile/lib/l10n/intl_bg.arb index b1c006d371..864d2ad8e0 100644 --- a/mobile/lib/l10n/intl_bg.arb +++ b/mobile/lib/l10n/intl_bg.arb @@ -1,5 +1,8 @@ { "@@locale ": "en", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ca.arb b/mobile/lib/l10n/intl_ca.arb index b1c006d371..864d2ad8e0 100644 --- a/mobile/lib/l10n/intl_ca.arb +++ b/mobile/lib/l10n/intl_ca.arb @@ -1,5 +1,8 @@ { "@@locale ": "en", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_cs.arb b/mobile/lib/l10n/intl_cs.arb index cc227f2a50..f142c20a67 100644 --- a/mobile/lib/l10n/intl_cs.arb +++ b/mobile/lib/l10n/intl_cs.arb @@ -441,5 +441,8 @@ "cLMemories": "Vzpomínky", "cLWidgets": "Widgety", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_da.arb b/mobile/lib/l10n/intl_da.arb index 8610e525b0..4f4d5b0a34 100644 --- a/mobile/lib/l10n/intl_da.arb +++ b/mobile/lib/l10n/intl_da.arb @@ -324,5 +324,8 @@ "next": "Næste", "enterPin": "Indtast PIN", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_de.arb b/mobile/lib/l10n/intl_de.arb index 7ffa0dc96c..fbdd231a2e 100644 --- a/mobile/lib/l10n/intl_de.arb +++ b/mobile/lib/l10n/intl_de.arb @@ -1740,5 +1740,8 @@ "cLBulkEditDesc": "Du kannst jetzt mehrere Fotos auswählen, und das Datum/Uhrzeit für alle mit einer Aktion ändern. Das Verschieben von Daten wird auch unterstützt.", "curatedMemories": "Ausgewählte Erinnerungen", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_el.arb b/mobile/lib/l10n/intl_el.arb index 8f6c700add..bdb46a30c2 100644 --- a/mobile/lib/l10n/intl_el.arb +++ b/mobile/lib/l10n/intl_el.arb @@ -2,5 +2,8 @@ "@@locale ": "en", "enterYourEmailAddress": "Εισάγετε την διεύθυνση ηλ. ταχυδρομείου σας", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_en.arb b/mobile/lib/l10n/intl_en.arb index f036caff08..36d37711be 100644 --- a/mobile/lib/l10n/intl_en.arb +++ b/mobile/lib/l10n/intl_en.arb @@ -1754,5 +1754,8 @@ "actionNotSupportedOnFavouritesAlbum": "Action not supported on Favourites album", "onThisDayMemories": "On this day memories", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_es.arb b/mobile/lib/l10n/intl_es.arb index 1111a33190..c85dde7687 100644 --- a/mobile/lib/l10n/intl_es.arb +++ b/mobile/lib/l10n/intl_es.arb @@ -1736,5 +1736,8 @@ "cLBulkEditDesc": "Ahora puedes seleccionar múltiples fotos y editar la fecha/hora para todas ellas con una acción rápida. También es posible cambiar las fechas.", "curatedMemories": "Memorias revisadas", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_et.arb b/mobile/lib/l10n/intl_et.arb index 6fd4a18a0d..17b416ab78 100644 --- a/mobile/lib/l10n/intl_et.arb +++ b/mobile/lib/l10n/intl_et.arb @@ -220,5 +220,8 @@ "description": "Label to indicate how much storage you are using when you are part of a family plan" }, "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_eu.arb b/mobile/lib/l10n/intl_eu.arb index f8f470c7fc..406a2ccc0f 100644 --- a/mobile/lib/l10n/intl_eu.arb +++ b/mobile/lib/l10n/intl_eu.arb @@ -460,5 +460,8 @@ "description": "Message advising the user to re-enable biometrics on their device. It shows in a dialog on iOS side." }, "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_fa.arb b/mobile/lib/l10n/intl_fa.arb index 74c0b7f5bb..008cbbc607 100644 --- a/mobile/lib/l10n/intl_fa.arb +++ b/mobile/lib/l10n/intl_fa.arb @@ -309,5 +309,8 @@ "whatsNew": "تغییرات جدید", "reviewSuggestions": "مرور پیشنهادها", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_fr.arb b/mobile/lib/l10n/intl_fr.arb index 6b6109e6b7..970222b90b 100644 --- a/mobile/lib/l10n/intl_fr.arb +++ b/mobile/lib/l10n/intl_fr.arb @@ -1695,5 +1695,8 @@ "cLBulkEditDesc": "Vous pouvez maintenant sélectionner plusieurs photos et modifier la date/heure pour toutes celles-ci, en une seule action rapide. Les dates de décalage sont également prises en charge.", "curatedMemories": "Souvenirs conservés", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_gu.arb b/mobile/lib/l10n/intl_gu.arb index b1c006d371..864d2ad8e0 100644 --- a/mobile/lib/l10n/intl_gu.arb +++ b/mobile/lib/l10n/intl_gu.arb @@ -1,5 +1,8 @@ { "@@locale ": "en", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_he.arb b/mobile/lib/l10n/intl_he.arb index 0697c89269..c058dc621e 100644 --- a/mobile/lib/l10n/intl_he.arb +++ b/mobile/lib/l10n/intl_he.arb @@ -793,5 +793,8 @@ "viewAll": "הצג הכל", "hiding": "מחביא...", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_hi.arb b/mobile/lib/l10n/intl_hi.arb index 12b7a391e9..e647f40178 100644 --- a/mobile/lib/l10n/intl_hi.arb +++ b/mobile/lib/l10n/intl_hi.arb @@ -50,5 +50,8 @@ "verifyEmail": "ईमेल सत्यापित करें", "toResetVerifyEmail": "अपना पासवर्ड रीसेट करने के लिए, कृपया पहले अपना ईमेल सत्यापित करें।", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_hu.arb b/mobile/lib/l10n/intl_hu.arb index 263f0280d2..8f6d7cd25a 100644 --- a/mobile/lib/l10n/intl_hu.arb +++ b/mobile/lib/l10n/intl_hu.arb @@ -12,5 +12,8 @@ "deleteAccountFeedbackPrompt": "Sajnáljuk, hogy távozik. Kérjük, ossza meg velünk visszajelzéseit, hogy segítsen nekünk a fejlődésben.", "feedback": "Visszajelzés", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_id.arb b/mobile/lib/l10n/intl_id.arb index 60e5c0f5c9..31408aca99 100644 --- a/mobile/lib/l10n/intl_id.arb +++ b/mobile/lib/l10n/intl_id.arb @@ -1098,5 +1098,8 @@ "right": "Kanan", "whatsNew": "Hal yang baru", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_it.arb b/mobile/lib/l10n/intl_it.arb index 0d3d471ce7..eb04d6c6b8 100644 --- a/mobile/lib/l10n/intl_it.arb +++ b/mobile/lib/l10n/intl_it.arb @@ -1550,5 +1550,8 @@ "processingVideos": "Elaborando video", "onThisDay": "On this day", "joinAlbumConfirmationDialogBody": "Unirsi a un album renderà visibile la tua email ai suoi partecipanti.", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ja.arb b/mobile/lib/l10n/intl_ja.arb index 8eb85f12c3..461f0f7409 100644 --- a/mobile/lib/l10n/intl_ja.arb +++ b/mobile/lib/l10n/intl_ja.arb @@ -1678,5 +1678,8 @@ "cLBulkEdit": "日付を一括編集", "cLBulkEditDesc": "複数の写真を、1回の操作で日付/時刻を編集することもできるようになりました。", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_km.arb b/mobile/lib/l10n/intl_km.arb index b1c006d371..864d2ad8e0 100644 --- a/mobile/lib/l10n/intl_km.arb +++ b/mobile/lib/l10n/intl_km.arb @@ -1,5 +1,8 @@ { "@@locale ": "en", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ko.arb b/mobile/lib/l10n/intl_ko.arb index f27452f006..23f1092808 100644 --- a/mobile/lib/l10n/intl_ko.arb +++ b/mobile/lib/l10n/intl_ko.arb @@ -14,5 +14,8 @@ "deleteAccountPermanentlyButton": "계정을 영구적으로 삭제", "yourAccountHasBeenDeleted": "계정이 삭제되었습니다.", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_lt.arb b/mobile/lib/l10n/intl_lt.arb index 89572e45eb..038a0ec3e0 100644 --- a/mobile/lib/l10n/intl_lt.arb +++ b/mobile/lib/l10n/intl_lt.arb @@ -1595,5 +1595,8 @@ "cLBulkEditDesc": "Dabar galite pasirinkti kelias nuotraukas ir vienu sparčiu veiksmu redaguoti visų nuotraukų datą ir laiką. Taip pat palaikomas datų perkėlimas.", "curatedMemories": "Kuruoti prisiminimai", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_lv.arb b/mobile/lib/l10n/intl_lv.arb index b1c006d371..864d2ad8e0 100644 --- a/mobile/lib/l10n/intl_lv.arb +++ b/mobile/lib/l10n/intl_lv.arb @@ -1,5 +1,8 @@ { "@@locale ": "en", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ml.arb b/mobile/lib/l10n/intl_ml.arb index 6da31f837a..38c1e47864 100644 --- a/mobile/lib/l10n/intl_ml.arb +++ b/mobile/lib/l10n/intl_ml.arb @@ -101,5 +101,8 @@ "close": "അടക്കുക", "count": "എണ്ണം", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_nl.arb b/mobile/lib/l10n/intl_nl.arb index ba3078cd07..9e6d9f5bc7 100644 --- a/mobile/lib/l10n/intl_nl.arb +++ b/mobile/lib/l10n/intl_nl.arb @@ -1678,5 +1678,8 @@ "cLBulkEdit": "Bulk datums wijzigen", "cLBulkEditDesc": "Je kunt nu meerdere foto's selecteren en de datum/tijd van ze allemaal bewerken met één snelle actie. Verschuiven van datums wordt ook ondersteund.", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_no.arb b/mobile/lib/l10n/intl_no.arb index f2125990c1..db0fa2ae6a 100644 --- a/mobile/lib/l10n/intl_no.arb +++ b/mobile/lib/l10n/intl_no.arb @@ -1701,5 +1701,8 @@ "cLBulkEdit": "Masseendring av datoer", "cLBulkEditDesc": "Du kan nå velge flere bilder, og redigere dato/klokkeslett for alle med en rask handling. Forskyving av datoer støttes også.", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_or.arb b/mobile/lib/l10n/intl_or.arb index b1c006d371..864d2ad8e0 100644 --- a/mobile/lib/l10n/intl_or.arb +++ b/mobile/lib/l10n/intl_or.arb @@ -1,5 +1,8 @@ { "@@locale ": "en", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_pl.arb b/mobile/lib/l10n/intl_pl.arb index 0a9bffd5b7..f5c45437fa 100644 --- a/mobile/lib/l10n/intl_pl.arb +++ b/mobile/lib/l10n/intl_pl.arb @@ -1535,5 +1535,8 @@ "linkEmail": "Połącz adres e-mail", "noEnteAccountExclamation": "Brak konta Ente!", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_pt.arb b/mobile/lib/l10n/intl_pt.arb index 59f868a8fe..bf06faa96f 100644 --- a/mobile/lib/l10n/intl_pt.arb +++ b/mobile/lib/l10n/intl_pt.arb @@ -1677,5 +1677,8 @@ "cLBulkEditDesc": "Agora você pode selecionar várias fotos, editar data e hora de todos com um só clique. Alternar datas também são suportados.", "curatedMemories": "Curated memories", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_pt_BR.arb b/mobile/lib/l10n/intl_pt_BR.arb index ac3132b6c4..fdc2aff1f4 100644 --- a/mobile/lib/l10n/intl_pt_BR.arb +++ b/mobile/lib/l10n/intl_pt_BR.arb @@ -1741,5 +1741,8 @@ "cLBulkEditDesc": "Agora você pode selecionar várias fotos, editar data e hora de todos com um só clique. Alternar datas também são suportados.", "curatedMemories": "Memórias restauradas", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_pt_PT.arb b/mobile/lib/l10n/intl_pt_PT.arb index f76539bebc..0655737beb 100644 --- a/mobile/lib/l10n/intl_pt_PT.arb +++ b/mobile/lib/l10n/intl_pt_PT.arb @@ -1389,5 +1389,8 @@ } }, "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ro.arb b/mobile/lib/l10n/intl_ro.arb index 2dcc91af17..9c3a734c71 100644 --- a/mobile/lib/l10n/intl_ro.arb +++ b/mobile/lib/l10n/intl_ro.arb @@ -1524,5 +1524,8 @@ "joinAlbumSubtextViewer": "pentru a adăuga la albumele distribuite", "join": "Alăturare", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ru.arb b/mobile/lib/l10n/intl_ru.arb index 8a3fc9bd30..ff16130a9d 100644 --- a/mobile/lib/l10n/intl_ru.arb +++ b/mobile/lib/l10n/intl_ru.arb @@ -1736,5 +1736,8 @@ "cLBulkEditDesc": "Теперь вы можете выбрать несколько фото и отредактировать дату/время быстро и сразу для всех. Также поддерживается смещение дат.", "curatedMemories": "Отобранные воспоминания", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_sl.arb b/mobile/lib/l10n/intl_sl.arb index b1c006d371..864d2ad8e0 100644 --- a/mobile/lib/l10n/intl_sl.arb +++ b/mobile/lib/l10n/intl_sl.arb @@ -1,5 +1,8 @@ { "@@locale ": "en", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_sv.arb b/mobile/lib/l10n/intl_sv.arb index 061eef430a..034c3e4f7e 100644 --- a/mobile/lib/l10n/intl_sv.arb +++ b/mobile/lib/l10n/intl_sv.arb @@ -533,5 +533,8 @@ "addName": "Lägg till namn", "add": "Lägg till", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ta.arb b/mobile/lib/l10n/intl_ta.arb index db14bca98a..e6c3cf2013 100644 --- a/mobile/lib/l10n/intl_ta.arb +++ b/mobile/lib/l10n/intl_ta.arb @@ -21,5 +21,8 @@ "selectReason": "காரணத்தைத் தேர்ந்தெடுக்கவும்", "deleteReason1": "எனக்கு தேவையான ஒரு முக்கிய அம்சம் இதில் இல்லை", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_te.arb b/mobile/lib/l10n/intl_te.arb index b1c006d371..864d2ad8e0 100644 --- a/mobile/lib/l10n/intl_te.arb +++ b/mobile/lib/l10n/intl_te.arb @@ -1,5 +1,8 @@ { "@@locale ": "en", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_th.arb b/mobile/lib/l10n/intl_th.arb index f782aef0ef..0b398adf0c 100644 --- a/mobile/lib/l10n/intl_th.arb +++ b/mobile/lib/l10n/intl_th.arb @@ -289,5 +289,8 @@ "maps": "แผนที่", "enableMaps": "เปิดใช้งานแผนที่", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ti.arb b/mobile/lib/l10n/intl_ti.arb index b1c006d371..864d2ad8e0 100644 --- a/mobile/lib/l10n/intl_ti.arb +++ b/mobile/lib/l10n/intl_ti.arb @@ -1,5 +1,8 @@ { "@@locale ": "en", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_tr.arb b/mobile/lib/l10n/intl_tr.arb index f6a3b99b12..4b7c77d04e 100644 --- a/mobile/lib/l10n/intl_tr.arb +++ b/mobile/lib/l10n/intl_tr.arb @@ -1741,5 +1741,8 @@ "cLBulkEditDesc": "Artık birden fazla fotoğraf seçebilir ve tek bir hızlı işlemle hepsi için tarih/saat düzenleyebilirsiniz. Tarih kaydırma da desteklenmektedir.", "curatedMemories": "Seçilmiş anılar", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_uk.arb b/mobile/lib/l10n/intl_uk.arb index 101639c4ac..8fb9fd83a6 100644 --- a/mobile/lib/l10n/intl_uk.arb +++ b/mobile/lib/l10n/intl_uk.arb @@ -1512,5 +1512,8 @@ "authToManageLegacy": "Авторизуйтесь, щоби керувати довіреними контактами", "useDifferentPlayerInfo": "Виникли проблеми з відтворенням цього відео? Натисніть і утримуйте тут, щоб спробувати інший плеєр.", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_vi.arb b/mobile/lib/l10n/intl_vi.arb index 36849ec57c..31887f0b21 100644 --- a/mobile/lib/l10n/intl_vi.arb +++ b/mobile/lib/l10n/intl_vi.arb @@ -1534,5 +1534,8 @@ "joinAlbumSubtextViewer": "thêm vào album được chia sẻ", "join": "Tham gia", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_zh.arb b/mobile/lib/l10n/intl_zh.arb index 37265d5706..eb8e2a6fa4 100644 --- a/mobile/lib/l10n/intl_zh.arb +++ b/mobile/lib/l10n/intl_zh.arb @@ -1735,5 +1735,8 @@ "cLBulkEdit": "批量编辑日期", "cLBulkEditDesc": "你现在可以选择多张照片,一键批量修改日期/时间,并支持日期顺移。", "onThisDay": "On this day", - "lookBackOnYourMemories": "Look back on your memories 🌄" + "lookBackOnYourMemories": "Look back on your memories 🌄", + "newPhotosEmoji": " new 📸", + "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", + "clickToInstallOurBestVersionYet": "Click to install our best version yet" } \ No newline at end of file diff --git a/mobile/lib/services/sync/remote_sync_service.dart b/mobile/lib/services/sync/remote_sync_service.dart index bedbc773d4..1706e35bee 100644 --- a/mobile/lib/services/sync/remote_sync_service.dart +++ b/mobile/lib/services/sync/remote_sync_service.dart @@ -27,6 +27,7 @@ import 'package:photos/services/app_lifecycle_service.dart'; import 'package:photos/services/collections_service.dart'; import "package:photos/services/filedata/filedata_service.dart"; import 'package:photos/services/ignored_files_service.dart'; +import "package:photos/services/language_service.dart"; import 'package:photos/services/local_file_update_service.dart'; import "package:photos/services/notification_service.dart"; import "package:photos/services/preview_video_store.dart"; @@ -998,10 +999,11 @@ class RemoteSyncService { 'creating notification for ${collection?.displayName} ' 'shared: $sharedFilesIDs, collected: $collectedFilesIDs files', ); + final s = await LanguageService.s; // ignore: unawaited_futures NotificationService.instance.showNotification( collection!.displayName, - totalCount.toString() + " new 📸", + totalCount.toString() + s.newPhotosEmoji, channelID: "collection:" + collectionID.toString(), channelName: collection.displayName, payload: "ente://collection/?collectionID=" + collectionID.toString(), diff --git a/mobile/lib/services/sync/sync_service.dart b/mobile/lib/services/sync/sync_service.dart index 16bb94fa05..ac1ee5bb45 100644 --- a/mobile/lib/services/sync/sync_service.dart +++ b/mobile/lib/services/sync/sync_service.dart @@ -13,6 +13,7 @@ import 'package:photos/events/subscription_purchased_event.dart'; import 'package:photos/events/sync_status_update_event.dart'; import 'package:photos/events/trigger_logout_event.dart'; import 'package:photos/models/file/file_type.dart'; +import "package:photos/services/language_service.dart"; import 'package:photos/services/notification_service.dart'; import 'package:photos/services/sync/local_sync_service.dart'; import 'package:photos/services/sync/remote_sync_service.dart'; @@ -207,10 +208,11 @@ class SyncService { final now = DateTime.now().microsecondsSinceEpoch; if ((now - lastNotificationShownTime) > microSecondsInDay) { await _prefs.setInt(kLastStorageLimitExceededNotificationPushTime, now); + final s = await LanguageService.s; // ignore: unawaited_futures NotificationService.instance.showNotification( - "Storage limit exceeded", - "Sorry, we had to pause your backups", + s.storageLimitExceeded, + s.sorryWeHadToPauseYourBackups, ); } } diff --git a/mobile/lib/services/update_service.dart b/mobile/lib/services/update_service.dart index 4b73cbad6c..9095cd5bad 100644 --- a/mobile/lib/services/update_service.dart +++ b/mobile/lib/services/update_service.dart @@ -5,6 +5,7 @@ import 'package:logging/logging.dart'; import 'package:package_info_plus/package_info_plus.dart'; import 'package:photos/core/constants.dart'; import 'package:photos/core/network/network.dart'; +import "package:photos/services/language_service.dart"; import 'package:photos/services/notification_service.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:tuple/tuple.dart'; @@ -90,10 +91,11 @@ class UpdateService { Future showUpdateNotification() async { if (await shouldShowUpdateNotification()) { + final s = await LanguageService.s; // ignore: unawaited_futures NotificationService.instance.showNotification( - "Update available", - "Click to install our best version yet", + s.updateAvailable, + s.clickToInstallOurBestVersionYet, ); await resetUpdateAvailableShownTime(); } else { From dc9dc5d8f98837b48b1918bc9f63cadc5eea56ed Mon Sep 17 00:00:00 2001 From: Aman Raj Singh Mourya Date: Fri, 23 May 2025 12:28:24 +0530 Subject: [PATCH 062/316] Single tap selection to select albums --- mobile/lib/ui/collections/album/vertical_list.dart | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/mobile/lib/ui/collections/album/vertical_list.dart b/mobile/lib/ui/collections/album/vertical_list.dart index 40fe5d177c..6e0a36b873 100644 --- a/mobile/lib/ui/collections/album/vertical_list.dart +++ b/mobile/lib/ui/collections/album/vertical_list.dart @@ -81,14 +81,9 @@ class _AlbumVerticalListWidgetState extends State { widget.collections[index - (widget.shouldShowCreateAlbum ? 1 : 0)]; return GestureDetector( behavior: HitTestBehavior.opaque, - onTap: () => widget.enableSelection && selectedCollections.isNotEmpty + onTap: () => widget.enableSelection ? _toggleCollectionSelection(item) : _albumListItemOnTap(context, item), - onLongPress: () { - widget.enableSelection && selectedCollections.isEmpty - ? _toggleCollectionSelection(item) - : null; - }, child: AlbumColumnItemWidget( item, selectedCollections: selectedCollections, @@ -98,7 +93,7 @@ class _AlbumVerticalListWidgetState extends State { separatorBuilder: (context, index) => const SizedBox(height: 8), itemCount: widget.collections.length + (widget.shouldShowCreateAlbum ? 1 : 0), - shrinkWrap: true, + shrinkWrap: false, physics: const BouncingScrollPhysics(), padding: const EdgeInsets.only(bottom: 40), ); @@ -278,9 +273,6 @@ class _AlbumVerticalListWidgetState extends State { Collection collection, { bool showProgressDialog = true, }) async { - if (widget.enableSelection) { - return false; - } switch (widget.actionType) { case CollectionActionType.addFiles: return _addToCollection( From 256243e2735f79ff4d5b19dca595a2cb6cac2871 Mon Sep 17 00:00:00 2001 From: Aman Raj Singh Mourya Date: Fri, 23 May 2025 12:30:27 +0530 Subject: [PATCH 063/316] Enable drag functionality in collection action sheet --- mobile/lib/ui/collections/collection_action_sheet.dart | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mobile/lib/ui/collections/collection_action_sheet.dart b/mobile/lib/ui/collections/collection_action_sheet.dart index 854f72f50a..a8131d6e66 100644 --- a/mobile/lib/ui/collections/collection_action_sheet.dart +++ b/mobile/lib/ui/collections/collection_action_sheet.dart @@ -96,7 +96,7 @@ void showCollectionActionSheet( topControl: const SizedBox.shrink(), backgroundColor: getEnteColorScheme(context).backgroundElevated, barrierColor: backdropFaintDark, - enableDrag: false, + enableDrag: true, ); } @@ -141,7 +141,7 @@ class _CollectionActionSheetState extends State { final filesCount = widget.sharedFiles != null ? widget.sharedFiles!.length : widget.selectedFiles?.files.length ?? 0; - final bottomInset = MediaQuery.of(context).viewInsets.bottom; + final bottomInset = MediaQuery.viewInsetsOf(context).bottom; final isKeyboardUp = bottomInset > 100; final double bottomPadding = max( 0, @@ -309,6 +309,7 @@ class _CollectionActionSheetState extends State { : collections; return Scrollbar( thumbVisibility: true, + interactive: true, radius: const Radius.circular(2), child: Padding( padding: const EdgeInsets.only(right: 12), From 2903388c94c3725972f39c33d1082c72022d6bca Mon Sep 17 00:00:00 2001 From: Aman Raj Singh Mourya Date: Fri, 23 May 2025 14:48:36 +0530 Subject: [PATCH 064/316] Refactor CollectionActionSheet and improve UX --- .../ui/collections/album/vertical_list.dart | 1 - .../collections/collection_action_sheet.dart | 82 ++++++++----------- 2 files changed, 33 insertions(+), 50 deletions(-) diff --git a/mobile/lib/ui/collections/album/vertical_list.dart b/mobile/lib/ui/collections/album/vertical_list.dart index 6e0a36b873..3fd45fe526 100644 --- a/mobile/lib/ui/collections/album/vertical_list.dart +++ b/mobile/lib/ui/collections/album/vertical_list.dart @@ -95,7 +95,6 @@ class _AlbumVerticalListWidgetState extends State { widget.collections.length + (widget.shouldShowCreateAlbum ? 1 : 0), shrinkWrap: false, physics: const BouncingScrollPhysics(), - padding: const EdgeInsets.only(bottom: 40), ); } diff --git a/mobile/lib/ui/collections/collection_action_sheet.dart b/mobile/lib/ui/collections/collection_action_sheet.dart index a8131d6e66..6754a49c88 100644 --- a/mobile/lib/ui/collections/collection_action_sheet.dart +++ b/mobile/lib/ui/collections/collection_action_sheet.dart @@ -120,8 +120,7 @@ class CollectionActionSheet extends StatefulWidget { class _CollectionActionSheetState extends State { late final bool _showOnlyHiddenCollections; late final bool _enableSelection; - static const int cancelButtonSize = 80; - static const int okButtonSize = 60; + static const int okButtonSize = 80; String _searchQuery = ""; List _selectedCollections = []; @@ -143,10 +142,8 @@ class _CollectionActionSheetState extends State { : widget.selectedFiles?.files.length ?? 0; final bottomInset = MediaQuery.viewInsetsOf(context).bottom; final isKeyboardUp = bottomInset > 100; - final double bottomPadding = max( - 0, - bottomInset - cancelButtonSize - (_enableSelection ? okButtonSize : 0), - ); + final double bottomPadding = + max(0, bottomInset - (_enableSelection ? okButtonSize : 0)); return Padding( padding: EdgeInsets.only( bottom: isKeyboardUp ? bottomPadding : 0, @@ -177,6 +174,7 @@ class _CollectionActionSheetState extends State { caption: widget.showOptionToCreateNewAlbum ? S.of(context).createOrSelectAlbum : S.of(context).selectAlbum, + showCloseButton: true, ), Padding( padding: const EdgeInsets.only( @@ -194,7 +192,6 @@ class _CollectionActionSheetState extends State { }, isClearable: true, shouldUnfocusOnClearOrSubmit: true, - borderRadius: 2, ), ), _getCollectionItems(), @@ -208,7 +205,9 @@ class _CollectionActionSheetState extends State { decoration: BoxDecoration( border: Border( top: BorderSide( - color: getEnteColorScheme(context).strokeFaint, + color: _enableSelection + ? getEnteColorScheme(context).strokeFaint + : Colors.transparent, ), ), ), @@ -232,50 +231,35 @@ class _CollectionActionSheetState extends State { final List widgets = []; if (_enableSelection) { widgets.add( - AnimatedSwitcher( - duration: const Duration(milliseconds: 300), - switchInCurve: Curves.easeOutBack, - switchOutCurve: Curves.easeIn, - child: _selectedCollections.isNotEmpty - ? ButtonWidget( - key: const ValueKey('add_button'), - buttonType: ButtonType.primary, - isInAlert: true, - labelText: S.of(context).add, - shouldSurfaceExecutionStates: false, - onTap: () async { - final CollectionActions collectionActions = - CollectionActions(CollectionsService.instance); - final result = - await collectionActions.addToMultipleCollections( - context, - _selectedCollections, - true, - selectedFiles: widget.selectedFiles?.files.toList(), - ); - if (result) { - showShortToast( - context, - "Added successfully to " + - _selectedCollections.length.toString() + - " albums", - ); - widget.selectedFiles?.clearAll(); - } - }, - ) - : const SizedBox.shrink(), + ButtonWidget( + key: const ValueKey('add_button'), + buttonType: ButtonType.primary, + isInAlert: true, + labelText: S.of(context).add, + shouldSurfaceExecutionStates: false, + isDisabled: _selectedCollections.isEmpty, + onTap: () async { + final CollectionActions collectionActions = + CollectionActions(CollectionsService.instance); + final result = await collectionActions.addToMultipleCollections( + context, + _selectedCollections, + true, + selectedFiles: widget.selectedFiles?.files.toList(), + ); + if (result) { + showShortToast( + context, + "Added successfully to " + + _selectedCollections.length.toString() + + " albums", + ); + widget.selectedFiles?.clearAll(); + } + }, ), ); } - widgets.add( - ButtonWidget( - buttonType: ButtonType.secondary, - buttonAction: ButtonAction.cancel, - isInAlert: true, - labelText: S.of(context).cancel, - ), - ); final widgetsWithSpaceBetween = addSeparators( widgets, const SizedBox(height: 8), From f44c2d14c7437ab8c76d2aab2820e31099bf83da Mon Sep 17 00:00:00 2001 From: Aman Raj Singh Mourya Date: Fri, 23 May 2025 15:31:56 +0530 Subject: [PATCH 065/316] Enable drag functionality in pick cover photo, person avatar, and center point widget. --- .../gallery/hooks/pick_cover_photo.dart | 2 +- .../gallery/hooks/pick_person_avatar.dart | 83 +++++++------------ .../location/pick_center_point_widget.dart | 56 +++++-------- 3 files changed, 54 insertions(+), 87 deletions(-) diff --git a/mobile/lib/ui/viewer/gallery/hooks/pick_cover_photo.dart b/mobile/lib/ui/viewer/gallery/hooks/pick_cover_photo.dart index f6b8978306..4a0b116ff7 100644 --- a/mobile/lib/ui/viewer/gallery/hooks/pick_cover_photo.dart +++ b/mobile/lib/ui/viewer/gallery/hooks/pick_cover_photo.dart @@ -37,7 +37,7 @@ Future showPickCoverPhotoSheet( topControl: const SizedBox.shrink(), backgroundColor: getEnteColorScheme(context).backgroundElevated, barrierColor: backdropFaintDark, - enableDrag: false, + enableDrag: true, ); } diff --git a/mobile/lib/ui/viewer/gallery/hooks/pick_person_avatar.dart b/mobile/lib/ui/viewer/gallery/hooks/pick_person_avatar.dart index 9d7dabbda6..1adecdee72 100644 --- a/mobile/lib/ui/viewer/gallery/hooks/pick_person_avatar.dart +++ b/mobile/lib/ui/viewer/gallery/hooks/pick_person_avatar.dart @@ -38,7 +38,7 @@ Future showPersonAvatarPhotoSheet( topControl: const SizedBox.shrink(), backgroundColor: getEnteColorScheme(context).backgroundElevated, barrierColor: backdropFaintDark, - enableDrag: false, + enableDrag: true, ); } @@ -137,57 +137,36 @@ class PickPersonCoverPhotoWidget extends StatelessWidget { ), ), ), - child: Column( - children: [ - ValueListenableBuilder( - valueListenable: isFileSelected, - builder: (context, bool value, _) { - return AnimatedSwitcher( - duration: const Duration(milliseconds: 300), - switchInCurve: Curves.easeInOutExpo, - switchOutCurve: Curves.easeInOutExpo, - child: ButtonWidget( - key: ValueKey(value), - isDisabled: !value, - buttonType: ButtonType.neutral, - labelText: S.of(context).useSelectedPhoto, - onTap: () async { - final selectedFile = - selectedFiles.files.first; - final result = await PersonService.instance - .updateAvatar( - personEntity, - selectedFile, - ); - Bus.instance.fire( - PeopleChangedEvent( - type: PeopleEventType.saveOrEditPerson, - person: result, - ), - ); - Navigator.pop(context, result); - }, - ), - ); - }, - ), - const SizedBox(height: 8), - ButtonWidget( - buttonType: ButtonType.secondary, - buttonAction: ButtonAction.cancel, - labelText: S.of(context).cancel, - // labelText: collection.hasCover - // ? S.of(context).resetToDefault - // : S.of(context).cancel, - icon: null, - // icon: collection.hasCover - // ? Icons.restore_outlined - // : null, - onTap: () async { - Navigator.of(context).pop(); - }, - ), - ], + child: ValueListenableBuilder( + valueListenable: isFileSelected, + builder: (context, bool value, _) { + return AnimatedSwitcher( + duration: const Duration(milliseconds: 300), + switchInCurve: Curves.easeInOutExpo, + switchOutCurve: Curves.easeInOutExpo, + child: ButtonWidget( + key: ValueKey(value), + isDisabled: !value, + buttonType: ButtonType.neutral, + labelText: S.of(context).useSelectedPhoto, + onTap: () async { + final selectedFile = selectedFiles.files.first; + final result = + await PersonService.instance.updateAvatar( + personEntity, + selectedFile, + ); + Bus.instance.fire( + PeopleChangedEvent( + type: PeopleEventType.saveOrEditPerson, + person: result, + ), + ); + Navigator.pop(context, result); + }, + ), + ); + }, ), ), ), diff --git a/mobile/lib/ui/viewer/location/pick_center_point_widget.dart b/mobile/lib/ui/viewer/location/pick_center_point_widget.dart index 67234564f3..637476166a 100644 --- a/mobile/lib/ui/viewer/location/pick_center_point_widget.dart +++ b/mobile/lib/ui/viewer/location/pick_center_point_widget.dart @@ -40,7 +40,7 @@ Future showPickCenterPointSheet( topControl: const SizedBox.shrink(), backgroundColor: getEnteColorScheme(context).backgroundElevated, barrierColor: backdropFaintDark, - enableDrag: false, + enableDrag: true, ); } @@ -82,6 +82,7 @@ class PickCenterPointWidget extends StatelessWidget { title: S.of(context).pickCenterPoint, ), caption: locationTagName ?? S.of(context).newLocation, + showCloseButton: true, ), Expanded( child: GalleryFilesState( @@ -138,39 +139,26 @@ class PickCenterPointWidget extends StatelessWidget { ), ), ), - child: Column( - children: [ - ValueListenableBuilder( - valueListenable: isFileSelected, - builder: (context, bool value, _) { - return AnimatedSwitcher( - duration: const Duration(milliseconds: 300), - switchInCurve: Curves.easeInOutExpo, - switchOutCurve: Curves.easeInOutExpo, - child: ButtonWidget( - key: ValueKey(value), - isDisabled: !value, - buttonType: ButtonType.neutral, - labelText: S.of(context).useSelectedPhoto, - onTap: () async { - final selectedLocation = - selectedFiles.files.first.location; - Navigator.pop(context, selectedLocation); - }, - ), - ); - }, - ), - const SizedBox(height: 8), - ButtonWidget( - buttonType: ButtonType.secondary, - buttonAction: ButtonAction.cancel, - labelText: S.of(context).cancel, - onTap: () async { - Navigator.of(context).pop(); - }, - ), - ], + child: ValueListenableBuilder( + valueListenable: isFileSelected, + builder: (context, bool value, _) { + return AnimatedSwitcher( + duration: const Duration(milliseconds: 300), + switchInCurve: Curves.easeInOutExpo, + switchOutCurve: Curves.easeInOutExpo, + child: ButtonWidget( + key: ValueKey(value), + isDisabled: !value, + buttonType: ButtonType.neutral, + labelText: S.of(context).useSelectedPhoto, + onTap: () async { + final selectedLocation = + selectedFiles.files.first.location; + Navigator.pop(context, selectedLocation); + }, + ), + ); + }, ), ), ), From b79b7ff3ef471f5968fe32774537e5261edeaf4a Mon Sep 17 00:00:00 2001 From: Aman Raj Singh Mourya Date: Fri, 23 May 2025 19:40:49 +0530 Subject: [PATCH 066/316] Refactor addToMultipleCollections to improve error handling --- .../collection/collection_file_actions.dart | 150 +++++++++--------- 1 file changed, 74 insertions(+), 76 deletions(-) diff --git a/mobile/lib/ui/actions/collection/collection_file_actions.dart b/mobile/lib/ui/actions/collection/collection_file_actions.dart index 08dce93630..a86dfba78e 100644 --- a/mobile/lib/ui/actions/collection/collection_file_actions.dart +++ b/mobile/lib/ui/actions/collection/collection_file_actions.dart @@ -90,7 +90,6 @@ extension CollectionFileActions on CollectionActions { bool showProgressDialog, { List? selectedFiles, }) async { - final List errors = []; final ProgressDialog? dialog = showProgressDialog ? createProgressDialog( context, @@ -99,86 +98,85 @@ extension CollectionFileActions on CollectionActions { ) : null; await dialog?.show(); - try { - for (final collection in collections) { - try { - final List files = []; - final List filesPendingUpload = []; - final int currentUserID = Configuration.instance.getUserID()!; - for (final file in selectedFiles!) { - EnteFile? currentFile; - if (file.uploadedFileID != null) { - currentFile = file.copyWith(); - } else if (file.generatedID != null) { - // when file is not uploaded, refresh the state from the db to - // ensure we have latest upload status for given file before - // queueing it up as pending upload - currentFile = await (FilesDB.instance.getFile(file.generatedID!)); - } else if (file.generatedID == null) { - logger.severe("generated id should not be null"); - } - if (currentFile == null) { - logger.severe("Failed to find fileBy genID"); - continue; - } + final int currentUserID = Configuration.instance.getUserID()!; + for (final collection in collections) { + try { + final List files = []; + final List filesPendingUpload = []; + for (final file in selectedFiles!) { + EnteFile? currentFile; + if (file.uploadedFileID != null) { + currentFile = file.copyWith(); + } else if (file.generatedID != null) { + // when file is not uploaded, refresh the state from the db to + // ensure we have latest upload status for given file before + // queueing it up as pending upload + currentFile = await (FilesDB.instance.getFile(file.generatedID!)); + } else if (file.generatedID == null) { + logger.severe("generated id should not be null"); + } + if (currentFile == null) { + logger.severe("Failed to find fileBy genID"); + continue; + } - if (currentFile.uploadedFileID == null) { - currentFile.collectionID = collection.id; - } else { - files.add(currentFile); - } + if (currentFile.uploadedFileID == null) { + currentFile.collectionID = collection.id; + filesPendingUpload.add(currentFile); + } else { + files.add(currentFile); } - if (filesPendingUpload.isNotEmpty) { - // Newly created collection might not be cached - final Collection? c = - CollectionsService.instance.getCollectionByID(collection.id); - if (c != null && c.owner.id != currentUserID) { - final Collection uncat = await CollectionsService.instance - .getUncategorizedCollection(); - for (EnteFile unuploadedFile in filesPendingUpload) { - final uploadedFile = await FileUploader.instance.forceUpload( - unuploadedFile, - uncat.id, - ); - files.add(uploadedFile); - } - } else { - for (final file in filesPendingUpload) { - file.collectionID = collection.id; - } - // filesPendingUpload might be getting ignored during auto-upload - // because the user deleted these files from ente in the past. - await IgnoredFilesService.instance - .removeIgnoredMappings(filesPendingUpload); - await FilesDB.instance.insertMultiple(filesPendingUpload); - Bus.instance.fire( - CollectionUpdatedEvent( - collection.id, - filesPendingUpload, - "pendingFilesAdd", - ), - ); - } - } - if (files.isNotEmpty) { - await CollectionsService.instance - .addOrCopyToCollection(collection.id, files); - } - } catch (e, s) { - logger.severe("Failed to add to album", e, s); - errors.add(e); } + if (filesPendingUpload.isNotEmpty) { + // Newly created collection might not be cached + final Collection? c = + CollectionsService.instance.getCollectionByID(collection.id); + if (c != null && c.owner.id != currentUserID) { + final Collection uncat = + await CollectionsService.instance.getUncategorizedCollection(); + for (EnteFile unuploadedFile in filesPendingUpload) { + final uploadedFile = await FileUploader.instance.forceUpload( + unuploadedFile, + uncat.id, + ); + files.add(uploadedFile); + } + } else { + for (final file in filesPendingUpload) { + file.collectionID = collection.id; + } + // filesPendingUpload might be getting ignored during auto-upload + // because the user deleted these files from ente in the past. + await IgnoredFilesService.instance + .removeIgnoredMappings(filesPendingUpload); + await FilesDB.instance.insertMultiple(filesPendingUpload); + Bus.instance.fire( + CollectionUpdatedEvent( + collection.id, + filesPendingUpload, + "pendingFilesAdd", + ), + ); + } + } + if (files.isNotEmpty) { + await CollectionsService.instance + .addOrCopyToCollection(collection.id, files); + } + } catch (e, s) { + logger.severe("Failed to add to album", e, s); + await dialog?.hide(); + await showGenericErrorDialog( + context: context, + error: e, + ); + return false; } - - unawaited(RemoteSyncService.instance.sync(silently: true)); - await dialog?.hide(); - return true; - } catch (e, s) { - logger.severe("Failed to add to multiple collections", e, s); - await showGenericErrorDialog(context: context, error: errors.first); - await dialog?.hide(); - return false; } + + unawaited(RemoteSyncService.instance.sync(silently: true)); + await dialog?.hide(); + return true; } Future addToCollection( From e01826217d7ec12fcce8238ef1508cd17d22f1a0 Mon Sep 17 00:00:00 2001 From: ashilkn Date: Fri, 23 May 2025 20:11:44 +0530 Subject: [PATCH 067/316] Refactor --- .../ui/collections/album/vertical_list.dart | 19 +++++++++++-------- .../collections/collection_action_sheet.dart | 13 ++++--------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/mobile/lib/ui/collections/album/vertical_list.dart b/mobile/lib/ui/collections/album/vertical_list.dart index 3fd45fe526..321b62e9b9 100644 --- a/mobile/lib/ui/collections/album/vertical_list.dart +++ b/mobile/lib/ui/collections/album/vertical_list.dart @@ -34,7 +34,8 @@ class AlbumVerticalListWidget extends StatefulWidget { final String searchQuery; final bool shouldShowCreateAlbum; final bool enableSelection; - final Function(List)? onSelectionChanged; + final List selectedCollections; + final Function()? onSelectionChanged; const AlbumVerticalListWidget( this.collections, @@ -43,6 +44,7 @@ class AlbumVerticalListWidget extends StatefulWidget { this.sharedFiles, this.searchQuery, this.shouldShowCreateAlbum, { + required this.selectedCollections, this.enableSelection = false, this.onSelectionChanged, super.key, @@ -58,7 +60,6 @@ class _AlbumVerticalListWidgetState extends State { final CollectionActions _collectionActions = CollectionActions(CollectionsService.instance); - List selectedCollections = []; @override Widget build(BuildContext context) { @@ -86,7 +87,7 @@ class _AlbumVerticalListWidgetState extends State { : _albumListItemOnTap(context, item), child: AlbumColumnItemWidget( item, - selectedCollections: selectedCollections, + selectedCollections: widget.selectedCollections, ), ); }, @@ -101,14 +102,16 @@ class _AlbumVerticalListWidgetState extends State { Future _toggleCollectionSelection( Collection collection, ) async { - if (selectedCollections.contains(collection)) { - selectedCollections.remove(collection); + if (widget.selectedCollections.contains(collection)) { + widget.selectedCollections.remove(collection); } else { - selectedCollections.isEmpty ? await HapticFeedback.vibrate() : null; - selectedCollections.add(collection); + widget.selectedCollections.isEmpty + ? await HapticFeedback.vibrate() + : null; + widget.selectedCollections.add(collection); } if (widget.onSelectionChanged != null) { - widget.onSelectionChanged!(selectedCollections); + widget.onSelectionChanged!(); } setState(() {}); } diff --git a/mobile/lib/ui/collections/collection_action_sheet.dart b/mobile/lib/ui/collections/collection_action_sheet.dart index 6754a49c88..f056dc9732 100644 --- a/mobile/lib/ui/collections/collection_action_sheet.dart +++ b/mobile/lib/ui/collections/collection_action_sheet.dart @@ -122,7 +122,7 @@ class _CollectionActionSheetState extends State { late final bool _enableSelection; static const int okButtonSize = 80; String _searchQuery = ""; - List _selectedCollections = []; + final _selectedCollections = []; @override void initState() { @@ -305,8 +305,9 @@ class _CollectionActionSheetState extends State { _searchQuery, shouldShowCreateAlbum, enableSelection: _enableSelection, - onSelectionChanged: (c) { - _updateSelectedCollections(c); + selectedCollections: _selectedCollections, + onSelectionChanged: () { + setState(() {}); }, ), ), @@ -320,12 +321,6 @@ class _CollectionActionSheetState extends State { ); } - void _updateSelectedCollections(List collections) { - setState(() { - _selectedCollections = collections; - }); - } - Future> _getCollections() async { if (_showOnlyHiddenCollections) { final hiddenCollections = CollectionsService.instance From 93c85a57e4c80fb8d17529bf5a5612b72082466a Mon Sep 17 00:00:00 2001 From: ashilkn Date: Fri, 23 May 2025 20:21:35 +0530 Subject: [PATCH 068/316] Do remote sync irrespective of error when adding files to multiple collections --- .../lib/ui/actions/collection/collection_file_actions.dart | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mobile/lib/ui/actions/collection/collection_file_actions.dart b/mobile/lib/ui/actions/collection/collection_file_actions.dart index a86dfba78e..2deb10cf2a 100644 --- a/mobile/lib/ui/actions/collection/collection_file_actions.dart +++ b/mobile/lib/ui/actions/collection/collection_file_actions.dart @@ -171,10 +171,13 @@ extension CollectionFileActions on CollectionActions { error: e, ); return false; + } finally { + // Syncing since successful addition to collection could have + // happened before a failure + unawaited(RemoteSyncService.instance.sync(silently: true)); } } - unawaited(RemoteSyncService.instance.sync(silently: true)); await dialog?.hide(); return true; } From b52ee5bbfbe6ba628e188079ad0e3404b9f65ad6 Mon Sep 17 00:00:00 2001 From: ashilkn Date: Fri, 23 May 2025 20:33:11 +0530 Subject: [PATCH 069/316] bump up build number to 1052 --- mobile/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index 03b9ca62cb..99d27e838f 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -12,7 +12,7 @@ description: ente photos application # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 1.0.10+1040 +version: 1.0.21+1052 publish_to: none environment: From 407ad415200b84c96f22cb4774a3a08499b7d097 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Mon, 26 May 2025 10:09:52 +0530 Subject: [PATCH 070/316] Test clearing with payload --- mobile/lib/ui/settings/debug/ml_debug_section_widget.dart | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mobile/lib/ui/settings/debug/ml_debug_section_widget.dart b/mobile/lib/ui/settings/debug/ml_debug_section_widget.dart index e3ad74a585..b63944fa72 100644 --- a/mobile/lib/ui/settings/debug/ml_debug_section_widget.dart +++ b/mobile/lib/ui/settings/debug/ml_debug_section_widget.dart @@ -96,8 +96,9 @@ class _MLDebugSectionWidgetState extends State { trailingIconIsMuted: true, onTap: () async { try { - await NotificationService.instance - .clearAllScheduledNotifications(); + await NotificationService.instance.clearAllScheduledNotifications( + containingPayload: "onThisDay", + ); showShortToast(context, 'Done'); } catch (e, s) { logger.severe('clearAllScheduledNotifications failed ', e, s); From bdd09e12d8cf3f930f349973646496aa2e19412c Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Mon, 26 May 2025 10:27:46 +0530 Subject: [PATCH 071/316] More logs --- mobile/lib/services/memories_cache_service.dart | 3 +++ mobile/lib/services/notification_service.dart | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/mobile/lib/services/memories_cache_service.dart b/mobile/lib/services/memories_cache_service.dart index 3baceb3415..a32e7ed8c0 100644 --- a/mobile/lib/services/memories_cache_service.dart +++ b/mobile/lib/services/memories_cache_service.dart @@ -281,6 +281,9 @@ class MemoriesCacheService { dateTime: scheduleTime, ); scheduledDates.add(scheduleTime); + _logger.info( + "Scheduled notification for memory ${memory.id} on $scheduleTime", + ); } } diff --git a/mobile/lib/services/notification_service.dart b/mobile/lib/services/notification_service.dart index c989a35cfc..94259efa33 100644 --- a/mobile/lib/services/notification_service.dart +++ b/mobile/lib/services/notification_service.dart @@ -227,8 +227,13 @@ class NotificationService { ); continue; } - _logger.info("Clearing notification with id: ${request.id}"); + _logger.info( + "Clearing notification with id: ${request.id} and payload: ${request.payload}", + ); await _notificationsPlugin.cancel(request.id); + _logger.info( + "Cleared notification with id: ${request.id} and payload: ${request.payload}", + ); } } catch (e, s) { _logger.severe("Something is wrong with scheduled notifications", e, s); From dcb73abdec0f2e51b0af6282ce46c898c7322194 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Mon, 26 May 2025 14:33:39 +0530 Subject: [PATCH 072/316] Log time of scheduled notificaiton --- mobile/lib/services/notification_service.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/lib/services/notification_service.dart b/mobile/lib/services/notification_service.dart index 94259efa33..8d9fe3e3f7 100644 --- a/mobile/lib/services/notification_service.dart +++ b/mobile/lib/services/notification_service.dart @@ -197,7 +197,7 @@ class NotificationService { payload: payload, ); _logger.info( - "Scheduled notification with: $title, $message, $channelID, $channelName, $payload", + "Scheduled notification with: $title, $message, $channelID, $channelName, $payload for $dateTime", ); } catch (e, s) { // For now we're swallowing any exceptions here because we don't want the memories logic to get disturbed From f9b3f6e9eb2b8da4a9f70287c315afbe4f933bbb Mon Sep 17 00:00:00 2001 From: ashilkn Date: Mon, 26 May 2025 14:39:16 +0530 Subject: [PATCH 073/316] Avoid reordering selected faces --- .../search/result/people_section_all_page.dart | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/mobile/lib/ui/viewer/search/result/people_section_all_page.dart b/mobile/lib/ui/viewer/search/result/people_section_all_page.dart index 0522d6a2f1..a24e02d63b 100644 --- a/mobile/lib/ui/viewer/search/result/people_section_all_page.dart +++ b/mobile/lib/ui/viewer/search/result/people_section_all_page.dart @@ -1,6 +1,5 @@ import "dart:async"; -import "package:collection/collection.dart"; import 'package:flutter/material.dart'; import "package:flutter_animate/flutter_animate.dart"; import "package:photos/events/event.dart"; @@ -121,18 +120,6 @@ class _PeopleSectionAllWidgetState extends State { ((crossAxisCount - 1) * gridPadding))) / crossAxisCount; - List data = results; - - if (widget.namedOnly && widget.selectedPeople != null) { - data = data.sorted( - (a, b) => widget.selectedPeople!.isPersonSelected( - (b.hierarchicalSearchFilter as FaceFilter).personId!, - ) - ? 1 - : -1, - ); - } - return GridView.builder( padding: const EdgeInsets.fromLTRB( horizontalEdgePadding, @@ -151,7 +138,7 @@ class _PeopleSectionAllWidgetState extends State { itemCount: results.length, itemBuilder: (context, index) { return PersonSearchExample( - searchResult: data[index], + searchResult: results[index], size: itemSize, selectedPeople: widget.selectedPeople, ) From ff9494d43828ae80929583ef1fc67959382aeb10 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Mon, 26 May 2025 15:51:59 +0530 Subject: [PATCH 074/316] Setting to disable memories notifications --- .../lib/services/memories_cache_service.dart | 24 +++++++++++++-- .../notification_settings_screen.dart | 29 +++++++++++++++++++ mobile/lib/utils/local_settings.dart | 10 +++++++ 3 files changed, 61 insertions(+), 2 deletions(-) diff --git a/mobile/lib/services/memories_cache_service.dart b/mobile/lib/services/memories_cache_service.dart index a32e7ed8c0..4277144713 100644 --- a/mobile/lib/services/memories_cache_service.dart +++ b/mobile/lib/services/memories_cache_service.dart @@ -92,6 +92,17 @@ class MemoriesCacheService { Bus.instance.fire(MemoriesSettingChanged()); } + Future toggleOnThisDayNotifications() async { + final oldValue = localSettings.isOnThisDayNotificationsEnabled; + await localSettings.setOnThisDayNotificationsEnabled(!oldValue); + _logger.info("Turning onThisDayNotifications ${oldValue ? "off" : "on"}"); + if (oldValue) { + await _clearAllScheduledOnThisDayNotifications(); + } else { + queueUpdateCache(); + } + } + bool get enableSmartMemories => flagService.hasGrantedMLConsent && localSettings.isMLLocalIndexingEnabled && @@ -238,11 +249,20 @@ class MemoriesCacheService { return newCache; } + Future _clearAllScheduledOnThisDayNotifications() async { + await NotificationService.instance + .clearAllScheduledNotifications(containingPayload: "onThisDay"); + } + Future _scheduleOnThisDayNotifications( List allMemories, ) async { - await NotificationService.instance - .clearAllScheduledNotifications(containingPayload: "onThisDay"); + if (!localSettings.isOnThisDayNotificationsEnabled) { + _logger + .info("On this day notifications are disabled, skipping scheduling"); + return; + } + await _clearAllScheduledOnThisDayNotifications(); final scheduledDates = {}; for (final memory in allMemories) { if (memory.type != MemoryType.onThisDay) { diff --git a/mobile/lib/ui/settings/notification_settings_screen.dart b/mobile/lib/ui/settings/notification_settings_screen.dart index f6dfc3eabc..e0bfbd12bd 100644 --- a/mobile/lib/ui/settings/notification_settings_screen.dart +++ b/mobile/lib/ui/settings/notification_settings_screen.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import "package:photos/generated/l10n.dart"; +import "package:photos/service_locator.dart"; import "package:photos/services/notification_service.dart"; import 'package:photos/theme/ente_theme.dart'; import 'package:photos/ui/components/buttons/icon_button_widget.dart'; @@ -9,6 +10,7 @@ import 'package:photos/ui/components/menu_section_description_widget.dart'; import 'package:photos/ui/components/title_bar_title_widget.dart'; import 'package:photos/ui/components/title_bar_widget.dart'; import 'package:photos/ui/components/toggle_switch_widget.dart'; +import "package:photos/ui/settings/common_settings.dart"; class NotificationSettingsScreen extends StatelessWidget { const NotificationSettingsScreen({super.key}); @@ -77,6 +79,33 @@ class NotificationSettingsScreen extends StatelessWidget { .of(context) .sharedPhotoNotificationsExplanation, ), + sectionOptionSpacing, + MenuItemWidget( + captionedTextWidget: CaptionedTextWidget( + title: S.of(context).onThisDayMemories, + ), + menuItemColor: colorScheme.fillFaint, + trailingWidget: ToggleSwitchWidget( + value: () => + NotificationService.instance + .hasGrantedPermissions() && + localSettings + .isOnThisDayNotificationsEnabled, + onChanged: () async { + await NotificationService.instance + .requestPermissions(); + await memoriesCacheService + .toggleOnThisDayNotifications(); + }, + ), + singleBorderRadius: 8, + alignCaptionedTextToLeft: true, + isGestureDetectorDisabled: true, + ), + const MenuSectionDescriptionWidget( + content: + "Receive reminders about memories from this day in previous years.", + ), ], ), ], diff --git a/mobile/lib/utils/local_settings.dart b/mobile/lib/utils/local_settings.dart index 71e5c0fe64..da7fabb312 100644 --- a/mobile/lib/utils/local_settings.dart +++ b/mobile/lib/utils/local_settings.dart @@ -26,6 +26,8 @@ class LocalSettings { static const kRateUsShownCount = "rate_us_shown_count"; static const kEnableMultiplePart = "ls.enable_multiple_part"; static const kCuratedMemoriesEnabled = "ls.curated_memories_enabled"; + static const kOnThisDayNotificationsEnabled = + "ls.on_this_day_notifications_enabled"; static const kRateUsPromptThreshold = 2; static const shouldLoopVideoKey = "video.should_loop"; static const onGuestViewKey = "on_guest_view"; @@ -119,6 +121,14 @@ class LocalSettings { return value; } + bool get isOnThisDayNotificationsEnabled => + _prefs.getBool(kOnThisDayNotificationsEnabled) ?? true; + + Future setOnThisDayNotificationsEnabled(bool value) async { + await _prefs.setBool(kOnThisDayNotificationsEnabled, value); + return value; + } + bool get userEnabledMultiplePart => _prefs.getBool(kEnableMultiplePart) ?? false; From b00c406b0983473d9fc91115da12593cf382df01 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Mon, 26 May 2025 15:52:45 +0530 Subject: [PATCH 075/316] Extract string --- mobile/lib/generated/intl/messages_ar.dart | 2 ++ mobile/lib/generated/intl/messages_be.dart | 2 ++ mobile/lib/generated/intl/messages_bg.dart | 2 ++ mobile/lib/generated/intl/messages_ca.dart | 2 ++ mobile/lib/generated/intl/messages_cs.dart | 2 ++ mobile/lib/generated/intl/messages_da.dart | 2 ++ mobile/lib/generated/intl/messages_de.dart | 2 ++ mobile/lib/generated/intl/messages_el.dart | 2 ++ mobile/lib/generated/intl/messages_en.dart | 2 ++ mobile/lib/generated/intl/messages_es.dart | 2 ++ mobile/lib/generated/intl/messages_et.dart | 2 ++ mobile/lib/generated/intl/messages_eu.dart | 2 ++ mobile/lib/generated/intl/messages_fa.dart | 2 ++ mobile/lib/generated/intl/messages_fr.dart | 2 ++ mobile/lib/generated/intl/messages_gu.dart | 2 ++ mobile/lib/generated/intl/messages_he.dart | 2 ++ mobile/lib/generated/intl/messages_hi.dart | 2 ++ mobile/lib/generated/intl/messages_hu.dart | 2 ++ mobile/lib/generated/intl/messages_id.dart | 2 ++ mobile/lib/generated/intl/messages_it.dart | 2 ++ mobile/lib/generated/intl/messages_ja.dart | 2 ++ mobile/lib/generated/intl/messages_km.dart | 2 ++ mobile/lib/generated/intl/messages_ko.dart | 2 ++ mobile/lib/generated/intl/messages_lt.dart | 2 ++ mobile/lib/generated/intl/messages_lv.dart | 2 ++ mobile/lib/generated/intl/messages_ml.dart | 2 ++ mobile/lib/generated/intl/messages_nl.dart | 2 ++ mobile/lib/generated/intl/messages_no.dart | 2 ++ mobile/lib/generated/intl/messages_or.dart | 2 ++ mobile/lib/generated/intl/messages_pl.dart | 2 ++ mobile/lib/generated/intl/messages_pt.dart | 2 ++ mobile/lib/generated/intl/messages_pt_BR.dart | 2 ++ mobile/lib/generated/intl/messages_pt_PT.dart | 2 ++ mobile/lib/generated/intl/messages_ro.dart | 2 ++ mobile/lib/generated/intl/messages_ru.dart | 2 ++ mobile/lib/generated/intl/messages_sl.dart | 2 ++ mobile/lib/generated/intl/messages_sv.dart | 2 ++ mobile/lib/generated/intl/messages_ta.dart | 2 ++ mobile/lib/generated/intl/messages_te.dart | 2 ++ mobile/lib/generated/intl/messages_th.dart | 2 ++ mobile/lib/generated/intl/messages_ti.dart | 2 ++ mobile/lib/generated/intl/messages_tr.dart | 2 ++ mobile/lib/generated/intl/messages_uk.dart | 2 ++ mobile/lib/generated/intl/messages_vi.dart | 2 ++ mobile/lib/generated/intl/messages_zh.dart | 2 ++ mobile/lib/generated/l10n.dart | 10 ++++++++++ mobile/lib/l10n/intl_ar.arb | 3 ++- mobile/lib/l10n/intl_be.arb | 3 ++- mobile/lib/l10n/intl_bg.arb | 3 ++- mobile/lib/l10n/intl_ca.arb | 3 ++- mobile/lib/l10n/intl_cs.arb | 3 ++- mobile/lib/l10n/intl_da.arb | 3 ++- mobile/lib/l10n/intl_de.arb | 3 ++- mobile/lib/l10n/intl_el.arb | 3 ++- mobile/lib/l10n/intl_en.arb | 3 ++- mobile/lib/l10n/intl_es.arb | 3 ++- mobile/lib/l10n/intl_et.arb | 3 ++- mobile/lib/l10n/intl_eu.arb | 3 ++- mobile/lib/l10n/intl_fa.arb | 3 ++- mobile/lib/l10n/intl_fr.arb | 3 ++- mobile/lib/l10n/intl_gu.arb | 3 ++- mobile/lib/l10n/intl_he.arb | 3 ++- mobile/lib/l10n/intl_hi.arb | 3 ++- mobile/lib/l10n/intl_hu.arb | 3 ++- mobile/lib/l10n/intl_id.arb | 3 ++- mobile/lib/l10n/intl_it.arb | 3 ++- mobile/lib/l10n/intl_ja.arb | 3 ++- mobile/lib/l10n/intl_km.arb | 3 ++- mobile/lib/l10n/intl_ko.arb | 3 ++- mobile/lib/l10n/intl_lt.arb | 3 ++- mobile/lib/l10n/intl_lv.arb | 3 ++- mobile/lib/l10n/intl_ml.arb | 3 ++- mobile/lib/l10n/intl_nl.arb | 3 ++- mobile/lib/l10n/intl_no.arb | 3 ++- mobile/lib/l10n/intl_or.arb | 3 ++- mobile/lib/l10n/intl_pl.arb | 3 ++- mobile/lib/l10n/intl_pt.arb | 3 ++- mobile/lib/l10n/intl_pt_BR.arb | 3 ++- mobile/lib/l10n/intl_pt_PT.arb | 3 ++- mobile/lib/l10n/intl_ro.arb | 3 ++- mobile/lib/l10n/intl_ru.arb | 3 ++- mobile/lib/l10n/intl_sl.arb | 3 ++- mobile/lib/l10n/intl_sv.arb | 3 ++- mobile/lib/l10n/intl_ta.arb | 3 ++- mobile/lib/l10n/intl_te.arb | 3 ++- mobile/lib/l10n/intl_th.arb | 3 ++- mobile/lib/l10n/intl_ti.arb | 3 ++- mobile/lib/l10n/intl_tr.arb | 3 ++- mobile/lib/l10n/intl_uk.arb | 3 ++- mobile/lib/l10n/intl_vi.arb | 3 ++- mobile/lib/l10n/intl_zh.arb | 3 ++- .../lib/ui/settings/notification_settings_screen.dart | 4 ++-- 92 files changed, 192 insertions(+), 47 deletions(-) diff --git a/mobile/lib/generated/intl/messages_ar.dart b/mobile/lib/generated/intl/messages_ar.dart index 959330a9d7..e26d6a4d24 100644 --- a/mobile/lib/generated/intl/messages_ar.dart +++ b/mobile/lib/generated/intl/messages_ar.dart @@ -1388,6 +1388,8 @@ class MessageLookup extends MessageLookupByLibrary { "onTheRoad": MessageLookupByLibrary.simpleMessage("على الطريق مرة أخرى"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("هم فقط"), "oops": MessageLookupByLibrary.simpleMessage("عفوًا"), diff --git a/mobile/lib/generated/intl/messages_be.dart b/mobile/lib/generated/intl/messages_be.dart index c14fea4819..92cc493598 100644 --- a/mobile/lib/generated/intl/messages_be.dart +++ b/mobile/lib/generated/intl/messages_be.dart @@ -187,6 +187,8 @@ class MessageLookup extends MessageLookupByLibrary { "notifications": MessageLookupByLibrary.simpleMessage("Апавяшчэнні"), "ok": MessageLookupByLibrary.simpleMessage("Добра"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "oops": MessageLookupByLibrary.simpleMessage("Вой"), "oopsSomethingWentWrong": MessageLookupByLibrary.simpleMessage("Штосьці пайшло не так"), diff --git a/mobile/lib/generated/intl/messages_bg.dart b/mobile/lib/generated/intl/messages_bg.dart index cd3e520576..38b09f89ec 100644 --- a/mobile/lib/generated/intl/messages_bg.dart +++ b/mobile/lib/generated/intl/messages_bg.dart @@ -28,6 +28,8 @@ class MessageLookup extends MessageLookupByLibrary { "Look back on your memories 🌄"), "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( "Sorry, we had to pause your backups") }; diff --git a/mobile/lib/generated/intl/messages_ca.dart b/mobile/lib/generated/intl/messages_ca.dart index eddfee1fd1..13a0bb611c 100644 --- a/mobile/lib/generated/intl/messages_ca.dart +++ b/mobile/lib/generated/intl/messages_ca.dart @@ -28,6 +28,8 @@ class MessageLookup extends MessageLookupByLibrary { "Look back on your memories 🌄"), "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( "Sorry, we had to pause your backups") }; diff --git a/mobile/lib/generated/intl/messages_cs.dart b/mobile/lib/generated/intl/messages_cs.dart index b92954fedc..c542ba1511 100644 --- a/mobile/lib/generated/intl/messages_cs.dart +++ b/mobile/lib/generated/intl/messages_cs.dart @@ -360,6 +360,8 @@ class MessageLookup extends MessageLookupByLibrary { "onEnte": MessageLookupByLibrary.simpleMessage( "Na ente"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "oops": MessageLookupByLibrary.simpleMessage("Jejda"), "oopsSomethingWentWrong": MessageLookupByLibrary.simpleMessage("Jejda, něco se pokazilo"), diff --git a/mobile/lib/generated/intl/messages_da.dart b/mobile/lib/generated/intl/messages_da.dart index e6b941a20e..7c27a0f1d5 100644 --- a/mobile/lib/generated/intl/messages_da.dart +++ b/mobile/lib/generated/intl/messages_da.dart @@ -300,6 +300,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Ingen gendannelsesnøgle?"), "ok": MessageLookupByLibrary.simpleMessage("Ok"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "oops": MessageLookupByLibrary.simpleMessage("Ups"), "oopsSomethingWentWrong": MessageLookupByLibrary.simpleMessage("Ups, noget gik galt"), diff --git a/mobile/lib/generated/intl/messages_de.dart b/mobile/lib/generated/intl/messages_de.dart index 2c98ef7b2a..5553dc6849 100644 --- a/mobile/lib/generated/intl/messages_de.dart +++ b/mobile/lib/generated/intl/messages_de.dart @@ -1429,6 +1429,8 @@ class MessageLookup extends MessageLookupByLibrary { "Auf ente"), "onTheRoad": MessageLookupByLibrary.simpleMessage("Wieder unterwegs"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Nur diese"), "oops": MessageLookupByLibrary.simpleMessage("Hoppla"), diff --git a/mobile/lib/generated/intl/messages_el.dart b/mobile/lib/generated/intl/messages_el.dart index 0d7002efed..198bc2affb 100644 --- a/mobile/lib/generated/intl/messages_el.dart +++ b/mobile/lib/generated/intl/messages_el.dart @@ -30,6 +30,8 @@ class MessageLookup extends MessageLookupByLibrary { "Look back on your memories 🌄"), "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( "Sorry, we had to pause your backups") }; diff --git a/mobile/lib/generated/intl/messages_en.dart b/mobile/lib/generated/intl/messages_en.dart index eb00783fac..aabe629c0d 100644 --- a/mobile/lib/generated/intl/messages_en.dart +++ b/mobile/lib/generated/intl/messages_en.dart @@ -1394,6 +1394,8 @@ class MessageLookup extends MessageLookupByLibrary { "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), "onThisDayMemories": MessageLookupByLibrary.simpleMessage("On this day memories"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Only them"), "oops": MessageLookupByLibrary.simpleMessage("Oops"), diff --git a/mobile/lib/generated/intl/messages_es.dart b/mobile/lib/generated/intl/messages_es.dart index dbe26ea86c..36070951ab 100644 --- a/mobile/lib/generated/intl/messages_es.dart +++ b/mobile/lib/generated/intl/messages_es.dart @@ -1431,6 +1431,8 @@ class MessageLookup extends MessageLookupByLibrary { "onTheRoad": MessageLookupByLibrary.simpleMessage("De nuevo en la carretera"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Solo ellos"), "oops": MessageLookupByLibrary.simpleMessage("Ups"), diff --git a/mobile/lib/generated/intl/messages_et.dart b/mobile/lib/generated/intl/messages_et.dart index 9b29eeeb51..c583ea0bb2 100644 --- a/mobile/lib/generated/intl/messages_et.dart +++ b/mobile/lib/generated/intl/messages_et.dart @@ -172,6 +172,8 @@ class MessageLookup extends MessageLookupByLibrary { "noDeviceLimit": MessageLookupByLibrary.simpleMessage("Puudub"), "ok": MessageLookupByLibrary.simpleMessage("OK"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "oops": MessageLookupByLibrary.simpleMessage("Oih"), "oopsSomethingWentWrong": MessageLookupByLibrary.simpleMessage("Oih, midagi läks valesti"), diff --git a/mobile/lib/generated/intl/messages_eu.dart b/mobile/lib/generated/intl/messages_eu.dart index 2aa81c5360..7327bbec18 100644 --- a/mobile/lib/generated/intl/messages_eu.dart +++ b/mobile/lib/generated/intl/messages_eu.dart @@ -433,6 +433,8 @@ class MessageLookup extends MessageLookupByLibrary { "Gure puntutik-puntura zifratze protokoloa dela eta, zure data ezin da deszifratu zure pasahitza edo berreskuratze giltzarik gabe"), "ok": MessageLookupByLibrary.simpleMessage("Ondo"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "onlyFamilyAdminCanChangeCode": m54, "oops": MessageLookupByLibrary.simpleMessage("Ai!"), "oopsSomethingWentWrong": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_fa.dart b/mobile/lib/generated/intl/messages_fa.dart index f1daddcb4f..585296885c 100644 --- a/mobile/lib/generated/intl/messages_fa.dart +++ b/mobile/lib/generated/intl/messages_fa.dart @@ -272,6 +272,8 @@ class MessageLookup extends MessageLookupByLibrary { "notifications": MessageLookupByLibrary.simpleMessage("آگاه‌سازی‌ها"), "ok": MessageLookupByLibrary.simpleMessage("تایید"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "oops": MessageLookupByLibrary.simpleMessage("اوه"), "password": MessageLookupByLibrary.simpleMessage("رمز عبور"), "passwordChangedSuccessfully": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_fr.dart b/mobile/lib/generated/intl/messages_fr.dart index 7b66a021fe..2674adc36d 100644 --- a/mobile/lib/generated/intl/messages_fr.dart +++ b/mobile/lib/generated/intl/messages_fr.dart @@ -1418,6 +1418,8 @@ class MessageLookup extends MessageLookupByLibrary { "onTheRoad": MessageLookupByLibrary.simpleMessage("De nouveau sur la route"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Seulement eux"), "oops": MessageLookupByLibrary.simpleMessage("Oups"), diff --git a/mobile/lib/generated/intl/messages_gu.dart b/mobile/lib/generated/intl/messages_gu.dart index fc848a58f2..9defce9a5d 100644 --- a/mobile/lib/generated/intl/messages_gu.dart +++ b/mobile/lib/generated/intl/messages_gu.dart @@ -28,6 +28,8 @@ class MessageLookup extends MessageLookupByLibrary { "Look back on your memories 🌄"), "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( "Sorry, we had to pause your backups") }; diff --git a/mobile/lib/generated/intl/messages_he.dart b/mobile/lib/generated/intl/messages_he.dart index 6d3bdd6a2f..1dc7ace827 100644 --- a/mobile/lib/generated/intl/messages_he.dart +++ b/mobile/lib/generated/intl/messages_he.dart @@ -592,6 +592,8 @@ class MessageLookup extends MessageLookupByLibrary { "onEnte": MessageLookupByLibrary.simpleMessage("באנטע"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "oops": MessageLookupByLibrary.simpleMessage("אופס"), "oopsSomethingWentWrong": MessageLookupByLibrary.simpleMessage("אופס, משהו השתבש"), diff --git a/mobile/lib/generated/intl/messages_hi.dart b/mobile/lib/generated/intl/messages_hi.dart index 5f54d4920e..59162b906f 100644 --- a/mobile/lib/generated/intl/messages_hi.dart +++ b/mobile/lib/generated/intl/messages_hi.dart @@ -86,6 +86,8 @@ class MessageLookup extends MessageLookupByLibrary { "हमारे एंड-टू-एंड एन्क्रिप्शन प्रोटोकॉल की प्रकृति के कारण, आपके डेटा को आपके पासवर्ड या रिकवरी कुंजी के बिना डिक्रिप्ट नहीं किया जा सकता है"), "ok": MessageLookupByLibrary.simpleMessage("ठीक है"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "oops": MessageLookupByLibrary.simpleMessage("ओह!"), "password": MessageLookupByLibrary.simpleMessage("पासवर्ड"), "recoverButton": MessageLookupByLibrary.simpleMessage("पुनः प्राप्त"), diff --git a/mobile/lib/generated/intl/messages_hu.dart b/mobile/lib/generated/intl/messages_hu.dart index e9b7cca1f9..90bbe64bf5 100644 --- a/mobile/lib/generated/intl/messages_hu.dart +++ b/mobile/lib/generated/intl/messages_hu.dart @@ -44,6 +44,8 @@ class MessageLookup extends MessageLookupByLibrary { "Look back on your memories 🌄"), "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( "Sorry, we had to pause your backups"), "verify": MessageLookupByLibrary.simpleMessage("Hitelesítés") diff --git a/mobile/lib/generated/intl/messages_id.dart b/mobile/lib/generated/intl/messages_id.dart index ba2168d13a..131cd0fdab 100644 --- a/mobile/lib/generated/intl/messages_id.dart +++ b/mobile/lib/generated/intl/messages_id.dart @@ -940,6 +940,8 @@ class MessageLookup extends MessageLookupByLibrary { "onEnte": MessageLookupByLibrary.simpleMessage( "Di ente"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "onlyFamilyAdminCanChangeCode": m54, "oops": MessageLookupByLibrary.simpleMessage("Aduh"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_it.dart b/mobile/lib/generated/intl/messages_it.dart index 3becb7d579..b08b489223 100644 --- a/mobile/lib/generated/intl/messages_it.dart +++ b/mobile/lib/generated/intl/messages_it.dart @@ -1274,6 +1274,8 @@ class MessageLookup extends MessageLookupByLibrary { "onEnte": MessageLookupByLibrary.simpleMessage( "Su ente"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Solo loro"), "oops": MessageLookupByLibrary.simpleMessage("Oops"), diff --git a/mobile/lib/generated/intl/messages_ja.dart b/mobile/lib/generated/intl/messages_ja.dart index 6c5cd2b102..225ffeccb2 100644 --- a/mobile/lib/generated/intl/messages_ja.dart +++ b/mobile/lib/generated/intl/messages_ja.dart @@ -1197,6 +1197,8 @@ class MessageLookup extends MessageLookupByLibrary { "Enteが保管"), "onTheRoad": MessageLookupByLibrary.simpleMessage("再び道で"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("この人のみ"), "oops": MessageLookupByLibrary.simpleMessage("Oops"), diff --git a/mobile/lib/generated/intl/messages_km.dart b/mobile/lib/generated/intl/messages_km.dart index f3588f427d..7def70d59c 100644 --- a/mobile/lib/generated/intl/messages_km.dart +++ b/mobile/lib/generated/intl/messages_km.dart @@ -28,6 +28,8 @@ class MessageLookup extends MessageLookupByLibrary { "Look back on your memories 🌄"), "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( "Sorry, we had to pause your backups") }; diff --git a/mobile/lib/generated/intl/messages_ko.dart b/mobile/lib/generated/intl/messages_ko.dart index aa3528b6f6..9e92894916 100644 --- a/mobile/lib/generated/intl/messages_ko.dart +++ b/mobile/lib/generated/intl/messages_ko.dart @@ -46,6 +46,8 @@ class MessageLookup extends MessageLookupByLibrary { "Look back on your memories 🌄"), "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( "Sorry, we had to pause your backups"), "verify": MessageLookupByLibrary.simpleMessage("인증"), diff --git a/mobile/lib/generated/intl/messages_lt.dart b/mobile/lib/generated/intl/messages_lt.dart index 9704bf3ee1..d792d691ba 100644 --- a/mobile/lib/generated/intl/messages_lt.dart +++ b/mobile/lib/generated/intl/messages_lt.dart @@ -1324,6 +1324,8 @@ class MessageLookup extends MessageLookupByLibrary { "Saugykloje ente"), "onTheRoad": MessageLookupByLibrary.simpleMessage("Vėl kelyje"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Tik jiems"), "oops": MessageLookupByLibrary.simpleMessage("Ups"), diff --git a/mobile/lib/generated/intl/messages_lv.dart b/mobile/lib/generated/intl/messages_lv.dart index 1eaf32e13d..01cf6553da 100644 --- a/mobile/lib/generated/intl/messages_lv.dart +++ b/mobile/lib/generated/intl/messages_lv.dart @@ -28,6 +28,8 @@ class MessageLookup extends MessageLookupByLibrary { "Look back on your memories 🌄"), "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( "Sorry, we had to pause your backups") }; diff --git a/mobile/lib/generated/intl/messages_ml.dart b/mobile/lib/generated/intl/messages_ml.dart index b4730db226..bf62178aab 100644 --- a/mobile/lib/generated/intl/messages_ml.dart +++ b/mobile/lib/generated/intl/messages_ml.dart @@ -95,6 +95,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("ഇവിടൊന്നും കാണ്മാനില്ല! 👀"), "ok": MessageLookupByLibrary.simpleMessage("ശരി"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "oops": MessageLookupByLibrary.simpleMessage("അയ്യോ"), "password": MessageLookupByLibrary.simpleMessage("സങ്കേതക്കുറി"), "pleaseTryAgain": diff --git a/mobile/lib/generated/intl/messages_nl.dart b/mobile/lib/generated/intl/messages_nl.dart index 03500fb29e..06d6c27f5f 100644 --- a/mobile/lib/generated/intl/messages_nl.dart +++ b/mobile/lib/generated/intl/messages_nl.dart @@ -1384,6 +1384,8 @@ class MessageLookup extends MessageLookupByLibrary { "Op ente"), "onTheRoad": MessageLookupByLibrary.simpleMessage("Onderweg"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Alleen hen"), "oops": MessageLookupByLibrary.simpleMessage("Oeps"), diff --git a/mobile/lib/generated/intl/messages_no.dart b/mobile/lib/generated/intl/messages_no.dart index 9b6965bc7b..0c400e8d60 100644 --- a/mobile/lib/generated/intl/messages_no.dart +++ b/mobile/lib/generated/intl/messages_no.dart @@ -1370,6 +1370,8 @@ class MessageLookup extends MessageLookupByLibrary { "På ente"), "onTheRoad": MessageLookupByLibrary.simpleMessage("På veien igjen"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Bare de"), "oops": MessageLookupByLibrary.simpleMessage("Oisann"), diff --git a/mobile/lib/generated/intl/messages_or.dart b/mobile/lib/generated/intl/messages_or.dart index 888066c2c5..67eb8daaa6 100644 --- a/mobile/lib/generated/intl/messages_or.dart +++ b/mobile/lib/generated/intl/messages_or.dart @@ -28,6 +28,8 @@ class MessageLookup extends MessageLookupByLibrary { "Look back on your memories 🌄"), "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( "Sorry, we had to pause your backups") }; diff --git a/mobile/lib/generated/intl/messages_pl.dart b/mobile/lib/generated/intl/messages_pl.dart index a3fb7ff2f5..2a82cbb320 100644 --- a/mobile/lib/generated/intl/messages_pl.dart +++ b/mobile/lib/generated/intl/messages_pl.dart @@ -1268,6 +1268,8 @@ class MessageLookup extends MessageLookupByLibrary { "onEnte": MessageLookupByLibrary.simpleMessage("W ente"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Tylko te"), "oops": MessageLookupByLibrary.simpleMessage("Ups"), diff --git a/mobile/lib/generated/intl/messages_pt.dart b/mobile/lib/generated/intl/messages_pt.dart index cc787f58ce..89a54e3de1 100644 --- a/mobile/lib/generated/intl/messages_pt.dart +++ b/mobile/lib/generated/intl/messages_pt.dart @@ -1365,6 +1365,8 @@ class MessageLookup extends MessageLookupByLibrary { "Em ente"), "onTheRoad": MessageLookupByLibrary.simpleMessage("Na estrada de novo"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Apenas eles"), "oops": MessageLookupByLibrary.simpleMessage("Oops"), diff --git a/mobile/lib/generated/intl/messages_pt_BR.dart b/mobile/lib/generated/intl/messages_pt_BR.dart index ed90eb900d..43027ed944 100644 --- a/mobile/lib/generated/intl/messages_pt_BR.dart +++ b/mobile/lib/generated/intl/messages_pt_BR.dart @@ -1418,6 +1418,8 @@ class MessageLookup extends MessageLookupByLibrary { "onTheRoad": MessageLookupByLibrary.simpleMessage("Na estrada novamente"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Apenas eles"), "oops": MessageLookupByLibrary.simpleMessage("Ops"), diff --git a/mobile/lib/generated/intl/messages_pt_PT.dart b/mobile/lib/generated/intl/messages_pt_PT.dart index 756958eb4b..5903aee8d9 100644 --- a/mobile/lib/generated/intl/messages_pt_PT.dart +++ b/mobile/lib/generated/intl/messages_pt_PT.dart @@ -1167,6 +1167,8 @@ class MessageLookup extends MessageLookupByLibrary { "onEnte": MessageLookupByLibrary.simpleMessage( "Em ente"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Apenas eles"), "oops": MessageLookupByLibrary.simpleMessage("Oops"), diff --git a/mobile/lib/generated/intl/messages_ro.dart b/mobile/lib/generated/intl/messages_ro.dart index 979c719086..85afbe510e 100644 --- a/mobile/lib/generated/intl/messages_ro.dart +++ b/mobile/lib/generated/intl/messages_ro.dart @@ -1272,6 +1272,8 @@ class MessageLookup extends MessageLookupByLibrary { "onEnte": MessageLookupByLibrary.simpleMessage( "Pe ente"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Numai el/ea"), "oops": MessageLookupByLibrary.simpleMessage("Ups"), diff --git a/mobile/lib/generated/intl/messages_ru.dart b/mobile/lib/generated/intl/messages_ru.dart index a115d97128..e3f79bc7dc 100644 --- a/mobile/lib/generated/intl/messages_ru.dart +++ b/mobile/lib/generated/intl/messages_ru.dart @@ -1416,6 +1416,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("В ente"), "onTheRoad": MessageLookupByLibrary.simpleMessage("Снова в пути"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Только он(а)"), "oops": MessageLookupByLibrary.simpleMessage("Ой"), diff --git a/mobile/lib/generated/intl/messages_sl.dart b/mobile/lib/generated/intl/messages_sl.dart index 823727eb84..7234775c48 100644 --- a/mobile/lib/generated/intl/messages_sl.dart +++ b/mobile/lib/generated/intl/messages_sl.dart @@ -28,6 +28,8 @@ class MessageLookup extends MessageLookupByLibrary { "Look back on your memories 🌄"), "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( "Sorry, we had to pause your backups") }; diff --git a/mobile/lib/generated/intl/messages_sv.dart b/mobile/lib/generated/intl/messages_sv.dart index 7dc6359777..0aaac88fcb 100644 --- a/mobile/lib/generated/intl/messages_sv.dart +++ b/mobile/lib/generated/intl/messages_sv.dart @@ -448,6 +448,8 @@ class MessageLookup extends MessageLookupByLibrary { "notPersonLabel": m53, "ok": MessageLookupByLibrary.simpleMessage("OK"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "onlyFamilyAdminCanChangeCode": m54, "oops": MessageLookupByLibrary.simpleMessage("Hoppsan"), "oopsSomethingWentWrong": diff --git a/mobile/lib/generated/intl/messages_ta.dart b/mobile/lib/generated/intl/messages_ta.dart index 424812eef3..cb54ab10f2 100644 --- a/mobile/lib/generated/intl/messages_ta.dart +++ b/mobile/lib/generated/intl/messages_ta.dart @@ -58,6 +58,8 @@ class MessageLookup extends MessageLookupByLibrary { "Look back on your memories 🌄"), "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "selectReason": MessageLookupByLibrary.simpleMessage( "காரணத்தைத் தேர்ந்தெடுக்கவும்"), "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_te.dart b/mobile/lib/generated/intl/messages_te.dart index 071ef18cb7..c9b95640ab 100644 --- a/mobile/lib/generated/intl/messages_te.dart +++ b/mobile/lib/generated/intl/messages_te.dart @@ -28,6 +28,8 @@ class MessageLookup extends MessageLookupByLibrary { "Look back on your memories 🌄"), "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( "Sorry, we had to pause your backups") }; diff --git a/mobile/lib/generated/intl/messages_th.dart b/mobile/lib/generated/intl/messages_th.dart index d92ac3abd2..544abcd1e5 100644 --- a/mobile/lib/generated/intl/messages_th.dart +++ b/mobile/lib/generated/intl/messages_th.dart @@ -224,6 +224,8 @@ class MessageLookup extends MessageLookupByLibrary { "onEnte": MessageLookupByLibrary.simpleMessage( "บน ente"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "oops": MessageLookupByLibrary.simpleMessage("อ๊ะ"), "oopsSomethingWentWrong": MessageLookupByLibrary.simpleMessage("อ๊ะ มีบางอย่างผิดพลาด"), diff --git a/mobile/lib/generated/intl/messages_ti.dart b/mobile/lib/generated/intl/messages_ti.dart index 915a9b6098..149fc223fd 100644 --- a/mobile/lib/generated/intl/messages_ti.dart +++ b/mobile/lib/generated/intl/messages_ti.dart @@ -28,6 +28,8 @@ class MessageLookup extends MessageLookupByLibrary { "Look back on your memories 🌄"), "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( "Sorry, we had to pause your backups") }; diff --git a/mobile/lib/generated/intl/messages_tr.dart b/mobile/lib/generated/intl/messages_tr.dart index 2b2a68cf86..155c1c1ca1 100644 --- a/mobile/lib/generated/intl/messages_tr.dart +++ b/mobile/lib/generated/intl/messages_tr.dart @@ -1412,6 +1412,8 @@ class MessageLookup extends MessageLookupByLibrary { "ente üzerinde"), "onTheRoad": MessageLookupByLibrary.simpleMessage("Yeniden yollarda"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Sadece onlar"), "oops": MessageLookupByLibrary.simpleMessage("Hay aksi"), diff --git a/mobile/lib/generated/intl/messages_uk.dart b/mobile/lib/generated/intl/messages_uk.dart index bf8bb191a4..7309bf269b 100644 --- a/mobile/lib/generated/intl/messages_uk.dart +++ b/mobile/lib/generated/intl/messages_uk.dart @@ -1242,6 +1242,8 @@ class MessageLookup extends MessageLookupByLibrary { "onEnte": MessageLookupByLibrary.simpleMessage("В Ente"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Тільки вони"), "oops": MessageLookupByLibrary.simpleMessage("От халепа"), diff --git a/mobile/lib/generated/intl/messages_vi.dart b/mobile/lib/generated/intl/messages_vi.dart index 24e8ad221a..cc6f338e38 100644 --- a/mobile/lib/generated/intl/messages_vi.dart +++ b/mobile/lib/generated/intl/messages_vi.dart @@ -1240,6 +1240,8 @@ class MessageLookup extends MessageLookupByLibrary { "onEnte": MessageLookupByLibrary.simpleMessage( "Trên ente"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Chỉ họ"), "oops": MessageLookupByLibrary.simpleMessage("Ôi"), diff --git a/mobile/lib/generated/intl/messages_zh.dart b/mobile/lib/generated/intl/messages_zh.dart index 8532d9ed64..d52a93af67 100644 --- a/mobile/lib/generated/intl/messages_zh.dart +++ b/mobile/lib/generated/intl/messages_zh.dart @@ -1169,6 +1169,8 @@ class MessageLookup extends MessageLookupByLibrary { "在 ente 上"), "onTheRoad": MessageLookupByLibrary.simpleMessage("再次踏上旅途"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), + "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( + "Receive reminders about memories from this day in previous years."), "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("仅限他们"), "oops": MessageLookupByLibrary.simpleMessage("哎呀"), diff --git a/mobile/lib/generated/l10n.dart b/mobile/lib/generated/l10n.dart index ec86174e1c..7b3e405bf5 100644 --- a/mobile/lib/generated/l10n.dart +++ b/mobile/lib/generated/l10n.dart @@ -11985,6 +11985,16 @@ class S { args: [], ); } + + /// `Receive reminders about memories from this day in previous years.` + String get onThisDayNotificationExplanation { + return Intl.message( + 'Receive reminders about memories from this day in previous years.', + name: 'onThisDayNotificationExplanation', + desc: '', + args: [], + ); + } } class AppLocalizationDelegate extends LocalizationsDelegate { diff --git a/mobile/lib/l10n/intl_ar.arb b/mobile/lib/l10n/intl_ar.arb index 76648181ef..4e3cb12286 100644 --- a/mobile/lib/l10n/intl_ar.arb +++ b/mobile/lib/l10n/intl_ar.arb @@ -1744,5 +1744,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_be.arb b/mobile/lib/l10n/intl_be.arb index 0d14acd4f5..7b254e8083 100644 --- a/mobile/lib/l10n/intl_be.arb +++ b/mobile/lib/l10n/intl_be.arb @@ -213,5 +213,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_bg.arb b/mobile/lib/l10n/intl_bg.arb index 864d2ad8e0..00a3e71e90 100644 --- a/mobile/lib/l10n/intl_bg.arb +++ b/mobile/lib/l10n/intl_bg.arb @@ -4,5 +4,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ca.arb b/mobile/lib/l10n/intl_ca.arb index 864d2ad8e0..00a3e71e90 100644 --- a/mobile/lib/l10n/intl_ca.arb +++ b/mobile/lib/l10n/intl_ca.arb @@ -4,5 +4,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_cs.arb b/mobile/lib/l10n/intl_cs.arb index f142c20a67..762941ec54 100644 --- a/mobile/lib/l10n/intl_cs.arb +++ b/mobile/lib/l10n/intl_cs.arb @@ -444,5 +444,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_da.arb b/mobile/lib/l10n/intl_da.arb index 4f4d5b0a34..a6b4f4872d 100644 --- a/mobile/lib/l10n/intl_da.arb +++ b/mobile/lib/l10n/intl_da.arb @@ -327,5 +327,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_de.arb b/mobile/lib/l10n/intl_de.arb index fbdd231a2e..cf0761aba6 100644 --- a/mobile/lib/l10n/intl_de.arb +++ b/mobile/lib/l10n/intl_de.arb @@ -1743,5 +1743,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_el.arb b/mobile/lib/l10n/intl_el.arb index bdb46a30c2..c1d4422188 100644 --- a/mobile/lib/l10n/intl_el.arb +++ b/mobile/lib/l10n/intl_el.arb @@ -5,5 +5,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_en.arb b/mobile/lib/l10n/intl_en.arb index 36d37711be..3313658da3 100644 --- a/mobile/lib/l10n/intl_en.arb +++ b/mobile/lib/l10n/intl_en.arb @@ -1757,5 +1757,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_es.arb b/mobile/lib/l10n/intl_es.arb index c85dde7687..dedaff19bb 100644 --- a/mobile/lib/l10n/intl_es.arb +++ b/mobile/lib/l10n/intl_es.arb @@ -1739,5 +1739,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_et.arb b/mobile/lib/l10n/intl_et.arb index 17b416ab78..1fd198de38 100644 --- a/mobile/lib/l10n/intl_et.arb +++ b/mobile/lib/l10n/intl_et.arb @@ -223,5 +223,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_eu.arb b/mobile/lib/l10n/intl_eu.arb index 406a2ccc0f..d7e4e63e2b 100644 --- a/mobile/lib/l10n/intl_eu.arb +++ b/mobile/lib/l10n/intl_eu.arb @@ -463,5 +463,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_fa.arb b/mobile/lib/l10n/intl_fa.arb index 008cbbc607..67313ebc71 100644 --- a/mobile/lib/l10n/intl_fa.arb +++ b/mobile/lib/l10n/intl_fa.arb @@ -312,5 +312,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_fr.arb b/mobile/lib/l10n/intl_fr.arb index 970222b90b..37728a70f6 100644 --- a/mobile/lib/l10n/intl_fr.arb +++ b/mobile/lib/l10n/intl_fr.arb @@ -1698,5 +1698,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_gu.arb b/mobile/lib/l10n/intl_gu.arb index 864d2ad8e0..00a3e71e90 100644 --- a/mobile/lib/l10n/intl_gu.arb +++ b/mobile/lib/l10n/intl_gu.arb @@ -4,5 +4,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_he.arb b/mobile/lib/l10n/intl_he.arb index c058dc621e..46631e6473 100644 --- a/mobile/lib/l10n/intl_he.arb +++ b/mobile/lib/l10n/intl_he.arb @@ -796,5 +796,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_hi.arb b/mobile/lib/l10n/intl_hi.arb index e647f40178..cb3d6271b1 100644 --- a/mobile/lib/l10n/intl_hi.arb +++ b/mobile/lib/l10n/intl_hi.arb @@ -53,5 +53,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_hu.arb b/mobile/lib/l10n/intl_hu.arb index 8f6d7cd25a..b3fe594370 100644 --- a/mobile/lib/l10n/intl_hu.arb +++ b/mobile/lib/l10n/intl_hu.arb @@ -15,5 +15,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_id.arb b/mobile/lib/l10n/intl_id.arb index 31408aca99..1b0c31e36e 100644 --- a/mobile/lib/l10n/intl_id.arb +++ b/mobile/lib/l10n/intl_id.arb @@ -1101,5 +1101,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_it.arb b/mobile/lib/l10n/intl_it.arb index eb04d6c6b8..15f3e6aae5 100644 --- a/mobile/lib/l10n/intl_it.arb +++ b/mobile/lib/l10n/intl_it.arb @@ -1553,5 +1553,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ja.arb b/mobile/lib/l10n/intl_ja.arb index 461f0f7409..b31a3b22ae 100644 --- a/mobile/lib/l10n/intl_ja.arb +++ b/mobile/lib/l10n/intl_ja.arb @@ -1681,5 +1681,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_km.arb b/mobile/lib/l10n/intl_km.arb index 864d2ad8e0..00a3e71e90 100644 --- a/mobile/lib/l10n/intl_km.arb +++ b/mobile/lib/l10n/intl_km.arb @@ -4,5 +4,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ko.arb b/mobile/lib/l10n/intl_ko.arb index 23f1092808..d2b77112d0 100644 --- a/mobile/lib/l10n/intl_ko.arb +++ b/mobile/lib/l10n/intl_ko.arb @@ -17,5 +17,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_lt.arb b/mobile/lib/l10n/intl_lt.arb index 038a0ec3e0..9025d45938 100644 --- a/mobile/lib/l10n/intl_lt.arb +++ b/mobile/lib/l10n/intl_lt.arb @@ -1598,5 +1598,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_lv.arb b/mobile/lib/l10n/intl_lv.arb index 864d2ad8e0..00a3e71e90 100644 --- a/mobile/lib/l10n/intl_lv.arb +++ b/mobile/lib/l10n/intl_lv.arb @@ -4,5 +4,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ml.arb b/mobile/lib/l10n/intl_ml.arb index 38c1e47864..b9d7f7fc6b 100644 --- a/mobile/lib/l10n/intl_ml.arb +++ b/mobile/lib/l10n/intl_ml.arb @@ -104,5 +104,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_nl.arb b/mobile/lib/l10n/intl_nl.arb index 9e6d9f5bc7..e3efde988e 100644 --- a/mobile/lib/l10n/intl_nl.arb +++ b/mobile/lib/l10n/intl_nl.arb @@ -1681,5 +1681,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_no.arb b/mobile/lib/l10n/intl_no.arb index db0fa2ae6a..0ca7508080 100644 --- a/mobile/lib/l10n/intl_no.arb +++ b/mobile/lib/l10n/intl_no.arb @@ -1704,5 +1704,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_or.arb b/mobile/lib/l10n/intl_or.arb index 864d2ad8e0..00a3e71e90 100644 --- a/mobile/lib/l10n/intl_or.arb +++ b/mobile/lib/l10n/intl_or.arb @@ -4,5 +4,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_pl.arb b/mobile/lib/l10n/intl_pl.arb index f5c45437fa..97c4cad584 100644 --- a/mobile/lib/l10n/intl_pl.arb +++ b/mobile/lib/l10n/intl_pl.arb @@ -1538,5 +1538,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_pt.arb b/mobile/lib/l10n/intl_pt.arb index bf06faa96f..e88e9351f7 100644 --- a/mobile/lib/l10n/intl_pt.arb +++ b/mobile/lib/l10n/intl_pt.arb @@ -1680,5 +1680,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_pt_BR.arb b/mobile/lib/l10n/intl_pt_BR.arb index fdc2aff1f4..53874b4faf 100644 --- a/mobile/lib/l10n/intl_pt_BR.arb +++ b/mobile/lib/l10n/intl_pt_BR.arb @@ -1744,5 +1744,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_pt_PT.arb b/mobile/lib/l10n/intl_pt_PT.arb index 0655737beb..1a2549bd3f 100644 --- a/mobile/lib/l10n/intl_pt_PT.arb +++ b/mobile/lib/l10n/intl_pt_PT.arb @@ -1392,5 +1392,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ro.arb b/mobile/lib/l10n/intl_ro.arb index 9c3a734c71..685c7bbf87 100644 --- a/mobile/lib/l10n/intl_ro.arb +++ b/mobile/lib/l10n/intl_ro.arb @@ -1527,5 +1527,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ru.arb b/mobile/lib/l10n/intl_ru.arb index ff16130a9d..fbc457de43 100644 --- a/mobile/lib/l10n/intl_ru.arb +++ b/mobile/lib/l10n/intl_ru.arb @@ -1739,5 +1739,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_sl.arb b/mobile/lib/l10n/intl_sl.arb index 864d2ad8e0..00a3e71e90 100644 --- a/mobile/lib/l10n/intl_sl.arb +++ b/mobile/lib/l10n/intl_sl.arb @@ -4,5 +4,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_sv.arb b/mobile/lib/l10n/intl_sv.arb index 034c3e4f7e..e208dc1ed5 100644 --- a/mobile/lib/l10n/intl_sv.arb +++ b/mobile/lib/l10n/intl_sv.arb @@ -536,5 +536,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ta.arb b/mobile/lib/l10n/intl_ta.arb index e6c3cf2013..cbe223602b 100644 --- a/mobile/lib/l10n/intl_ta.arb +++ b/mobile/lib/l10n/intl_ta.arb @@ -24,5 +24,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_te.arb b/mobile/lib/l10n/intl_te.arb index 864d2ad8e0..00a3e71e90 100644 --- a/mobile/lib/l10n/intl_te.arb +++ b/mobile/lib/l10n/intl_te.arb @@ -4,5 +4,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_th.arb b/mobile/lib/l10n/intl_th.arb index 0b398adf0c..a81dd7d64b 100644 --- a/mobile/lib/l10n/intl_th.arb +++ b/mobile/lib/l10n/intl_th.arb @@ -292,5 +292,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ti.arb b/mobile/lib/l10n/intl_ti.arb index 864d2ad8e0..00a3e71e90 100644 --- a/mobile/lib/l10n/intl_ti.arb +++ b/mobile/lib/l10n/intl_ti.arb @@ -4,5 +4,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_tr.arb b/mobile/lib/l10n/intl_tr.arb index 4b7c77d04e..f41b273729 100644 --- a/mobile/lib/l10n/intl_tr.arb +++ b/mobile/lib/l10n/intl_tr.arb @@ -1744,5 +1744,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_uk.arb b/mobile/lib/l10n/intl_uk.arb index 8fb9fd83a6..e4829020f1 100644 --- a/mobile/lib/l10n/intl_uk.arb +++ b/mobile/lib/l10n/intl_uk.arb @@ -1515,5 +1515,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_vi.arb b/mobile/lib/l10n/intl_vi.arb index 31887f0b21..3513147fac 100644 --- a/mobile/lib/l10n/intl_vi.arb +++ b/mobile/lib/l10n/intl_vi.arb @@ -1537,5 +1537,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_zh.arb b/mobile/lib/l10n/intl_zh.arb index eb8e2a6fa4..9a26183f57 100644 --- a/mobile/lib/l10n/intl_zh.arb +++ b/mobile/lib/l10n/intl_zh.arb @@ -1738,5 +1738,6 @@ "lookBackOnYourMemories": "Look back on your memories 🌄", "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", - "clickToInstallOurBestVersionYet": "Click to install our best version yet" + "clickToInstallOurBestVersionYet": "Click to install our best version yet", + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." } \ No newline at end of file diff --git a/mobile/lib/ui/settings/notification_settings_screen.dart b/mobile/lib/ui/settings/notification_settings_screen.dart index e0bfbd12bd..de4df89574 100644 --- a/mobile/lib/ui/settings/notification_settings_screen.dart +++ b/mobile/lib/ui/settings/notification_settings_screen.dart @@ -102,9 +102,9 @@ class NotificationSettingsScreen extends StatelessWidget { alignCaptionedTextToLeft: true, isGestureDetectorDisabled: true, ), - const MenuSectionDescriptionWidget( + MenuSectionDescriptionWidget( content: - "Receive reminders about memories from this day in previous years.", + S.of(context).onThisDayNotificationExplanation, ), ], ), From a958380a1df3082c85e342e90991805162fa6edf Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Mon, 26 May 2025 15:56:23 +0530 Subject: [PATCH 076/316] More logging --- mobile/lib/services/memories_cache_service.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/mobile/lib/services/memories_cache_service.dart b/mobile/lib/services/memories_cache_service.dart index 4277144713..5803b02394 100644 --- a/mobile/lib/services/memories_cache_service.dart +++ b/mobile/lib/services/memories_cache_service.dart @@ -250,6 +250,7 @@ class MemoriesCacheService { } Future _clearAllScheduledOnThisDayNotifications() async { + _logger.info('Clearing all scheduled On This Day notifications'); await NotificationService.instance .clearAllScheduledNotifications(containingPayload: "onThisDay"); } From 424949173045d47794d198ac62e6394cee76a21a Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Mon, 26 May 2025 16:16:53 +0530 Subject: [PATCH 077/316] More logging --- mobile/lib/services/memories_cache_service.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mobile/lib/services/memories_cache_service.dart b/mobile/lib/services/memories_cache_service.dart index 5803b02394..2ef1cfc6ba 100644 --- a/mobile/lib/services/memories_cache_service.dart +++ b/mobile/lib/services/memories_cache_service.dart @@ -281,13 +281,13 @@ class MemoriesCacheService { ); if (scheduleTime.isBefore(DateTime.now())) { _logger.info( - "Skipping scheduling notification for memory ${memory.id} because the date is in the past", + "Skipping scheduling notification for memory ${memory.id} because the date is in the past (date: $scheduleTime)", ); continue; } if (scheduledDates.contains(scheduleTime)) { _logger.info( - "Skipping scheduling notification for memory ${memory.id} because the date is already scheduled", + "Skipping scheduling notification for memory ${memory.id} because the date is already scheduled (date: $scheduleTime)", ); continue; } From ca8f310868466464dd18202df363e32e5ff8e32f Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Mon, 26 May 2025 16:43:15 +0530 Subject: [PATCH 078/316] Fix duplicate notification issue --- .../lib/models/memories/memories_cache.dart | 2 +- .../lib/services/memories_cache_service.dart | 30 +++++++++++++++++++ .../lib/services/smart_memories_service.dart | 2 +- mobile/lib/ui/tabs/home_widget.dart | 5 +--- 4 files changed, 33 insertions(+), 6 deletions(-) diff --git a/mobile/lib/models/memories/memories_cache.dart b/mobile/lib/models/memories/memories_cache.dart index baaca92d3f..8257224fe7 100644 --- a/mobile/lib/models/memories/memories_cache.dart +++ b/mobile/lib/models/memories/memories_cache.dart @@ -101,7 +101,7 @@ class ToShowMemory { final relevantForNow = now >= firstTimeToShow && now < lastTimeToShow; final calculatedForNow = (now >= calculationTime) && (now < calculationTime + kMemoriesUpdateFrequency.inMicroseconds); - return relevantForNow && calculatedForNow; + return relevantForNow && (calculatedForNow || type == MemoryType.onThisDay); } ToShowMemory( diff --git a/mobile/lib/services/memories_cache_service.dart b/mobile/lib/services/memories_cache_service.dart index 2ef1cfc6ba..07327d5cbf 100644 --- a/mobile/lib/services/memories_cache_service.dart +++ b/mobile/lib/services/memories_cache_service.dart @@ -560,6 +560,36 @@ class MemoriesCacheService { ); } + Future goToOnThisDayMemory(BuildContext context) async { + final allMemories = await getMemories(); + if (allMemories.isEmpty) return; + int memoryIdx = 0; + bool found = false; + memoryLoop: + for (final memory in allMemories) { + if (memory.type == MemoryType.onThisDay) { + found = true; + break memoryLoop; + } + memoryIdx++; + } + if (!found) { + _logger.warning( + "Could not find onThisDay memory", + ); + return; + } + await routeToPage( + context, + FullScreenMemoryDataUpdater( + initialIndex: 0, + memories: allMemories[memoryIdx].memories, + child: FullScreenMemory(allMemories[memoryIdx].title, 0), + ), + forceCustomPageRoute: true, + ); + } + Future _readCacheFromDisk() async { _logger.info("Reading memories cache result from disk"); final file = File(await _getCachePath()); diff --git a/mobile/lib/services/smart_memories_service.dart b/mobile/lib/services/smart_memories_service.dart index 4593a0c63c..fecdebeae0 100644 --- a/mobile/lib/services/smart_memories_service.dart +++ b/mobile/lib/services/smart_memories_service.dart @@ -1630,7 +1630,7 @@ class SmartMemoriesService { final List memoryResults = []; if (allFiles.isEmpty) return []; - final daysToCompute = kMemoriesUpdateFrequency.inDays + 1; + final daysToCompute = kMemoriesUpdateFrequency.inDays; final currentYear = currentTime.year; final currentMonth = currentTime.month; final currentDay = currentTime.day; diff --git a/mobile/lib/ui/tabs/home_widget.dart b/mobile/lib/ui/tabs/home_widget.dart index 9cc84fea1f..7414637e70 100644 --- a/mobile/lib/ui/tabs/home_widget.dart +++ b/mobile/lib/ui/tabs/home_widget.dart @@ -863,10 +863,7 @@ class _HomeWidgetState extends State { debugPrint('notification payload: $payload'); if (payload.toLowerCase().contains("onthisday")) { // ignore: unawaited_futures - memoriesCacheService.goToMemoryFromMemoryID( - context, - payload, - ); + memoriesCacheService.goToOnThisDayMemory(context); } else { final collectionID = Uri.parse(payload).queryParameters["collectionID"]; if (collectionID != null) { From eb783f0fffa2a060187bd7a757c7139bcc8bbffe Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Mon, 26 May 2025 16:44:06 +0530 Subject: [PATCH 079/316] Remove redundant method --- .../lib/services/memories_cache_service.dart | 33 ------------------- 1 file changed, 33 deletions(-) diff --git a/mobile/lib/services/memories_cache_service.dart b/mobile/lib/services/memories_cache_service.dart index 07327d5cbf..d4b7360489 100644 --- a/mobile/lib/services/memories_cache_service.dart +++ b/mobile/lib/services/memories_cache_service.dart @@ -527,39 +527,6 @@ class MemoriesCacheService { ); } - Future goToMemoryFromMemoryID( - BuildContext context, - String memoryID, - ) async { - final allMemories = await getMemories(); - if (allMemories.isEmpty) return; - int memoryIdx = 0; - bool found = false; - memoryLoop: - for (final memory in _cachedMemories!) { - if (memory.id == memoryID) { - found = true; - break memoryLoop; - } - memoryIdx++; - } - if (!found) { - _logger.warning( - "Could not find memory with memoryID: $memoryID", - ); - return; - } - await routeToPage( - context, - FullScreenMemoryDataUpdater( - initialIndex: 0, - memories: allMemories[memoryIdx].memories, - child: FullScreenMemory(allMemories[memoryIdx].title, 0), - ), - forceCustomPageRoute: true, - ); - } - Future goToOnThisDayMemory(BuildContext context) async { final allMemories = await getMemories(); if (allMemories.isEmpty) return; From 0e2a0388fffa1640f92d1741ff039e183e71e956 Mon Sep 17 00:00:00 2001 From: ashilkn Date: Mon, 26 May 2025 17:56:09 +0530 Subject: [PATCH 080/316] Randomize people and thier files shown in people widget --- .../services/people_home_widget_service.dart | 80 +++++++++---------- 1 file changed, 39 insertions(+), 41 deletions(-) diff --git a/mobile/lib/services/people_home_widget_service.dart b/mobile/lib/services/people_home_widget_service.dart index 5150ca0218..02d7afd414 100644 --- a/mobile/lib/services/people_home_widget_service.dart +++ b/mobile/lib/services/people_home_widget_service.dart @@ -1,3 +1,5 @@ +import "dart:math"; + import "package:collection/collection.dart"; import 'package:flutter/material.dart'; import 'package:fluttertoast/fluttertoast.dart'; @@ -380,52 +382,48 @@ class PeopleHomeWidgetService { final limit = isWidgetPresent ? MAX_PEOPLE_LIMIT : 5; await updatePeopleStatus(WidgetStatus.notSynced); - for (final entry in peopleWithFiles.entries) { - final personId = entry.key; - final personName = entry.value.$1; - final personFiles = entry.value.$2; + final peopleWithFilesLength = peopleWithFiles.length; + final peopleWithFilesEntries = peopleWithFiles.entries.toList(); + final random = Random(); - for (final file in personFiles) { - final renderResult = await HomeWidgetService.instance - .renderFile( - file, - "people_widget_$renderedCount", - personName, - personId, - ) - .catchError((e, stackTrace) { - _logger.severe("Error rendering widget", e, stackTrace); - return null; - }); + while (renderedCount < limit) { + final randomEntry = + peopleWithFilesEntries[random.nextInt(peopleWithFilesLength)]; + final randomPersonFile = randomEntry.value.$2.elementAt( + random.nextInt(randomEntry.value.$2.length), + ); + final personId = randomEntry.key; + final personName = randomEntry.value.$1; - if (renderResult != null) { - // Check for blockers again before continuing - if (await _hasAnyBlockers()) { - return; - } + final renderResult = await HomeWidgetService.instance + .renderFile( + randomPersonFile, + "people_widget_$renderedCount", + personName, + personId, + ) + .catchError((e, stackTrace) { + _logger.severe("Error rendering widget", e, stackTrace); + return null; + }); - await _setTotalPeople(renderedCount); - - // Show update toast after first item is rendered - if (renderedCount == 1) { - await _refreshWidget( - message: "First person fetched, updating widget", - ); - await updatePeopleStatus(WidgetStatus.syncedPartially); - } - - renderedCount++; - - // Limit the number of people to avoid performance issues - if (renderedCount >= limit) { - _logger.warning("Maximum people limit ($limit) reached"); - break; - } + if (renderResult != null) { + // Check for blockers again before continuing + if (await _hasAnyBlockers()) { + return; } - } - if (renderedCount >= limit) { - break; + await _setTotalPeople(renderedCount); + + // Show update toast after first item is rendered + if (renderedCount == 1) { + await _refreshWidget( + message: "First person fetched, updating widget", + ); + await updatePeopleStatus(WidgetStatus.syncedPartially); + } + + renderedCount++; } } From 9069975bf0dc4f8c0ce71e6ef9941c2cfd3137b9 Mon Sep 17 00:00:00 2001 From: ashilkn Date: Mon, 26 May 2025 19:22:51 +0530 Subject: [PATCH 081/316] Avoid confusion on empty widget settings pages --- .../ui/settings/widgets/albums_widget_settings.dart | 12 +++--------- .../settings/widgets/memories_widget_settings.dart | 11 +++-------- .../ui/settings/widgets/people_widget_settings.dart | 10 +++------- 3 files changed, 9 insertions(+), 24 deletions(-) diff --git a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart index cbf250986e..76aafb7c7c 100644 --- a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart @@ -6,7 +6,6 @@ import "package:photos/models/selected_albums.dart"; import "package:photos/services/album_home_widget_service.dart"; import "package:photos/services/collections_service.dart"; import "package:photos/services/favorites_service.dart"; -import 'package:photos/theme/ente_theme.dart'; import "package:photos/ui/collections/flex_grid_view.dart"; import "package:photos/ui/common/loading_widget.dart"; import "package:photos/ui/components/buttons/button_widget.dart"; @@ -85,7 +84,6 @@ class _AlbumsWidgetSettingsState extends State { @override Widget build(BuildContext context) { - final textTheme = getEnteTextTheme(context); return Scaffold( bottomNavigationBar: hasInstalledAny ? Padding( @@ -122,7 +120,9 @@ class _AlbumsWidgetSettingsState extends State { title: S.of(context).albums, ), expandedHeight: 120, - flexibleSpaceCaption: S.of(context).albumsWidgetDesc, + flexibleSpaceCaption: hasInstalledAny + ? S.of(context).albumsWidgetDesc + : "Add an album widget to your homescreen and come back here to customize", actionIcons: [ IconButtonWidget( icon: Icons.close_outlined, @@ -150,12 +150,6 @@ class _AlbumsWidgetSettingsState extends State { "assets/albums-widget-static.png", height: 160, ), - const SizedBox(height: 20), - Text( - "Add an album widget to your homescreen and come back here to customize", - style: textTheme.smallFaint, - textAlign: TextAlign.center, - ), ], ), ), diff --git a/mobile/lib/ui/settings/widgets/memories_widget_settings.dart b/mobile/lib/ui/settings/widgets/memories_widget_settings.dart index 542e7b6ea5..8306a47c62 100644 --- a/mobile/lib/ui/settings/widgets/memories_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/memories_widget_settings.dart @@ -88,7 +88,6 @@ class _MemoriesWidgetSettingsState extends State { @override Widget build(BuildContext context) { - final textTheme = getEnteTextTheme(context); final colorScheme = getEnteColorScheme(context); return Scaffold( @@ -100,7 +99,9 @@ class _MemoriesWidgetSettingsState extends State { title: S.of(context).memories, ), expandedHeight: 120, - flexibleSpaceCaption: S.of(context).memoriesWidgetDesc, + flexibleSpaceCaption: hasInstalledAny + ? S.of(context).memoriesWidgetDesc + : "Add a memories widget to your homescreen and come back here to customize", actionIcons: [ IconButtonWidget( icon: Icons.close_outlined, @@ -128,12 +129,6 @@ class _MemoriesWidgetSettingsState extends State { "assets/memories-widget-static.png", height: 160, ), - const SizedBox(height: 20), - Text( - "Add a memories widget to your homescreen and come back here to customize", - style: textTheme.smallFaint, - textAlign: TextAlign.center, - ), ], ), ), diff --git a/mobile/lib/ui/settings/widgets/people_widget_settings.dart b/mobile/lib/ui/settings/widgets/people_widget_settings.dart index d420ebfba5..c77b1ed2e9 100644 --- a/mobile/lib/ui/settings/widgets/people_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/people_widget_settings.dart @@ -94,7 +94,9 @@ class _PeopleWidgetSettingsState extends State { title: S.of(context).people, ), expandedHeight: 120, - flexibleSpaceCaption: S.of(context).peopleWidgetDesc, + flexibleSpaceCaption: hasInstalledAny + ? S.of(context).peopleWidgetDesc + : "Add a people widget to your homescreen and come back here to customize.", actionIcons: [ IconButtonWidget( icon: Icons.close_outlined, @@ -122,12 +124,6 @@ class _PeopleWidgetSettingsState extends State { "assets/people-widget-static.png", height: 160, ), - const SizedBox(height: 20), - Text( - "Add a people widget to your homescreen and come back here to customize", - style: textTheme.smallFaint, - textAlign: TextAlign.center, - ), ], ), ), From a5b178d283f1bde241e8428ab87c9c14ca610b2a Mon Sep 17 00:00:00 2001 From: ashilkn Date: Mon, 26 May 2025 19:30:54 +0530 Subject: [PATCH 082/316] Extract strings --- mobile/lib/generated/intl/messages_en.dart | 6 ++++ mobile/lib/generated/l10n.dart | 30 +++++++++++++++++++ mobile/lib/l10n/intl_en.arb | 5 +++- .../widgets/albums_widget_settings.dart | 3 +- .../widgets/memories_widget_settings.dart | 3 +- .../widgets/people_widget_settings.dart | 3 +- 6 files changed, 46 insertions(+), 4 deletions(-) diff --git a/mobile/lib/generated/intl/messages_en.dart b/mobile/lib/generated/intl/messages_en.dart index aabe629c0d..abdf9bbf9d 100644 --- a/mobile/lib/generated/intl/messages_en.dart +++ b/mobile/lib/generated/intl/messages_en.dart @@ -349,6 +349,8 @@ class MessageLookup extends MessageLookupByLibrary { "add": MessageLookupByLibrary.simpleMessage("Add"), "addAName": MessageLookupByLibrary.simpleMessage("Add a name"), "addANewEmail": MessageLookupByLibrary.simpleMessage("Add a new email"), + "addAlbumWidgetPrompt": MessageLookupByLibrary.simpleMessage( + "Add an album widget to your homescreen and come back here to customize."), "addCollaborator": MessageLookupByLibrary.simpleMessage("Add collaborator"), "addCollaborators": m1, @@ -358,6 +360,8 @@ class MessageLookup extends MessageLookupByLibrary { "addItem": m2, "addLocation": MessageLookupByLibrary.simpleMessage("Add location"), "addLocationButton": MessageLookupByLibrary.simpleMessage("Add"), + "addMemoriesWidgetPrompt": MessageLookupByLibrary.simpleMessage( + "Add a memories widget to your homescreen and come back here to customize."), "addMore": MessageLookupByLibrary.simpleMessage("Add more"), "addName": MessageLookupByLibrary.simpleMessage("Add name"), "addNameOrMerge": @@ -370,6 +374,8 @@ class MessageLookup extends MessageLookupByLibrary { "addOns": MessageLookupByLibrary.simpleMessage("Add-ons"), "addParticipants": MessageLookupByLibrary.simpleMessage("Add participants"), + "addPeopleWidgetPrompt": MessageLookupByLibrary.simpleMessage( + "Add a people widget to your homescreen and come back here to customize."), "addPhotos": MessageLookupByLibrary.simpleMessage("Add photos"), "addSelected": MessageLookupByLibrary.simpleMessage("Add selected"), "addToAlbum": MessageLookupByLibrary.simpleMessage("Add to album"), diff --git a/mobile/lib/generated/l10n.dart b/mobile/lib/generated/l10n.dart index 7b3e405bf5..ae4f04fc68 100644 --- a/mobile/lib/generated/l10n.dart +++ b/mobile/lib/generated/l10n.dart @@ -11995,6 +11995,36 @@ class S { args: [], ); } + + /// `Add a memories widget to your homescreen and come back here to customize.` + String get addMemoriesWidgetPrompt { + return Intl.message( + 'Add a memories widget to your homescreen and come back here to customize.', + name: 'addMemoriesWidgetPrompt', + desc: '', + args: [], + ); + } + + /// `Add an album widget to your homescreen and come back here to customize.` + String get addAlbumWidgetPrompt { + return Intl.message( + 'Add an album widget to your homescreen and come back here to customize.', + name: 'addAlbumWidgetPrompt', + desc: '', + args: [], + ); + } + + /// `Add a people widget to your homescreen and come back here to customize.` + String get addPeopleWidgetPrompt { + return Intl.message( + 'Add a people widget to your homescreen and come back here to customize.', + name: 'addPeopleWidgetPrompt', + desc: '', + args: [], + ); + } } class AppLocalizationDelegate extends LocalizationsDelegate { diff --git a/mobile/lib/l10n/intl_en.arb b/mobile/lib/l10n/intl_en.arb index 3313658da3..c37630a468 100644 --- a/mobile/lib/l10n/intl_en.arb +++ b/mobile/lib/l10n/intl_en.arb @@ -1758,5 +1758,8 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "addMemoriesWidgetPrompt": "Add a memories widget to your homescreen and come back here to customize.", + "addAlbumWidgetPrompt": "Add an album widget to your homescreen and come back here to customize.", + "addPeopleWidgetPrompt": "Add a people widget to your homescreen and come back here to customize." } \ No newline at end of file diff --git a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart index 76aafb7c7c..0ed9b4a967 100644 --- a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart @@ -1,6 +1,7 @@ import "package:collection/collection.dart"; import 'package:flutter/material.dart'; import "package:photos/generated/l10n.dart"; +import "package:photos/l10n/l10n.dart"; import "package:photos/models/collection/collection.dart"; import "package:photos/models/selected_albums.dart"; import "package:photos/services/album_home_widget_service.dart"; @@ -122,7 +123,7 @@ class _AlbumsWidgetSettingsState extends State { expandedHeight: 120, flexibleSpaceCaption: hasInstalledAny ? S.of(context).albumsWidgetDesc - : "Add an album widget to your homescreen and come back here to customize", + : context.l10n.addAlbumWidgetPrompt, actionIcons: [ IconButtonWidget( icon: Icons.close_outlined, diff --git a/mobile/lib/ui/settings/widgets/memories_widget_settings.dart b/mobile/lib/ui/settings/widgets/memories_widget_settings.dart index 8306a47c62..51a0d6310c 100644 --- a/mobile/lib/ui/settings/widgets/memories_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/memories_widget_settings.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import "package:flutter_svg/flutter_svg.dart"; import "package:photos/generated/l10n.dart"; +import "package:photos/l10n/l10n.dart"; import "package:photos/service_locator.dart"; import "package:photos/services/memory_home_widget_service.dart"; import 'package:photos/theme/ente_theme.dart'; @@ -101,7 +102,7 @@ class _MemoriesWidgetSettingsState extends State { expandedHeight: 120, flexibleSpaceCaption: hasInstalledAny ? S.of(context).memoriesWidgetDesc - : "Add a memories widget to your homescreen and come back here to customize", + : context.l10n.addMemoriesWidgetPrompt, actionIcons: [ IconButtonWidget( icon: Icons.close_outlined, diff --git a/mobile/lib/ui/settings/widgets/people_widget_settings.dart b/mobile/lib/ui/settings/widgets/people_widget_settings.dart index c77b1ed2e9..2cf8762f59 100644 --- a/mobile/lib/ui/settings/widgets/people_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/people_widget_settings.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import "package:photos/generated/l10n.dart"; +import "package:photos/l10n/l10n.dart"; import "package:photos/models/selected_people.dart"; import "package:photos/services/people_home_widget_service.dart"; import 'package:photos/theme/ente_theme.dart'; @@ -96,7 +97,7 @@ class _PeopleWidgetSettingsState extends State { expandedHeight: 120, flexibleSpaceCaption: hasInstalledAny ? S.of(context).peopleWidgetDesc - : "Add a people widget to your homescreen and come back here to customize.", + : context.l10n.addPeopleWidgetPrompt, actionIcons: [ IconButtonWidget( icon: Icons.close_outlined, From 53a22a8d589e9a35a48060bfe53c5288eb439721 Mon Sep 17 00:00:00 2001 From: ashilkn Date: Mon, 26 May 2025 19:32:21 +0530 Subject: [PATCH 083/316] chore --- mobile/lib/ui/settings/widgets/people_widget_settings.dart | 2 -- 1 file changed, 2 deletions(-) diff --git a/mobile/lib/ui/settings/widgets/people_widget_settings.dart b/mobile/lib/ui/settings/widgets/people_widget_settings.dart index 2cf8762f59..062797c3ea 100644 --- a/mobile/lib/ui/settings/widgets/people_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/people_widget_settings.dart @@ -3,7 +3,6 @@ import "package:photos/generated/l10n.dart"; import "package:photos/l10n/l10n.dart"; import "package:photos/models/selected_people.dart"; import "package:photos/services/people_home_widget_service.dart"; -import 'package:photos/theme/ente_theme.dart'; import "package:photos/ui/components/buttons/button_widget.dart"; import 'package:photos/ui/components/buttons/icon_button_widget.dart'; import "package:photos/ui/components/models/button_type.dart"; @@ -60,7 +59,6 @@ class _PeopleWidgetSettingsState extends State { @override Widget build(BuildContext context) { - final textTheme = getEnteTextTheme(context); return Scaffold( bottomNavigationBar: hasInstalledAny ? Padding( From 8b1a659d688cfbbbd60712e7e356564e3ee5f7ec Mon Sep 17 00:00:00 2001 From: ashilkn Date: Tue, 27 May 2025 11:47:39 +0530 Subject: [PATCH 084/316] Avoid sorting on selecting albums in album widget settings --- mobile/lib/ui/settings/widgets/albums_widget_settings.dart | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart index 0ed9b4a967..7f6897d0c2 100644 --- a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart @@ -1,4 +1,3 @@ -import "package:collection/collection.dart"; import 'package:flutter/material.dart'; import "package:photos/generated/l10n.dart"; import "package:photos/l10n/l10n.dart"; @@ -161,11 +160,8 @@ class _AlbumsWidgetSettingsState extends State { CollectionsService.instance.getCollectionForOnEnteSection(), builder: (context, snapshot) { if (snapshot.hasData) { - final data = snapshot.data!.sorted( - (a, b) => _selectedAlbums.albums.contains(b) ? 1 : -1, - ); return CollectionsFlexiGridViewWidget( - data, + snapshot.data, displayLimitCount: snapshot.data!.length, shrinkWrap: true, selectedAlbums: _selectedAlbums, From c8efc1a5907a5347909b72f7762d033fdd994e0d Mon Sep 17 00:00:00 2001 From: ashilkn Date: Tue, 27 May 2025 12:02:07 +0530 Subject: [PATCH 085/316] Randomize albums and files shown in album widget --- .../services/album_home_widget_service.dart | 82 +++++++++---------- 1 file changed, 39 insertions(+), 43 deletions(-) diff --git a/mobile/lib/services/album_home_widget_service.dart b/mobile/lib/services/album_home_widget_service.dart index 7f440cb9f9..2f23ff1d52 100644 --- a/mobile/lib/services/album_home_widget_service.dart +++ b/mobile/lib/services/album_home_widget_service.dart @@ -1,4 +1,5 @@ import 'dart:convert'; +import "dart:math"; import "package:collection/collection.dart"; import 'package:crypto/crypto.dart'; @@ -398,56 +399,51 @@ class AlbumHomeWidgetService { final bool isWidgetPresent = await countHomeWidgets() > 0; final limit = isWidgetPresent ? MAX_ALBUMS_LIMIT : 5; - await updateAlbumsStatus(WidgetStatus.notSynced); - for (final entry in albumsWithFiles.entries) { - final albumId = entry.key; - final albumName = entry.value.$1; - final albumFiles = entry.value.$2; + final albumsWithFilesLength = albumsWithFiles.length; + final albumsWithFilesEntries = albumsWithFiles.entries.toList(); + final random = Random(); - for (final file in albumFiles) { - final renderResult = await HomeWidgetService.instance - .renderFile( - file, - "albums_widget_$renderedCount", - albumName, - albumId.toString(), - ) - .catchError((e, stackTrace) { - _logger.severe("Error rendering widget", e, stackTrace); - return null; - }); + while (renderedCount < limit) { + final randomEntry = + albumsWithFilesEntries[random.nextInt(albumsWithFilesLength)]; + final randomAlbumFile = randomEntry.value.$2.elementAt( + random.nextInt(randomEntry.value.$2.length), + ); + final albumId = randomEntry.key; + final albumName = randomEntry.value.$1; - if (renderResult != null) { - // Check for blockers again before continuing - if (await _hasAnyBlockers()) { - await clearWidget(); - return; - } + final renderResult = await HomeWidgetService.instance + .renderFile( + randomAlbumFile, + "albums_widget_$renderedCount", + albumName, + albumId.toString(), + ) + .catchError((e, stackTrace) { + _logger.severe("Error rendering widget", e, stackTrace); + return null; + }); - await _setTotalAlbums(renderedCount); - - // Show update toast after first item is rendered - if (renderedCount == 1) { - await _refreshWidget( - message: "First album fetched, updating widget", - ); - await updateAlbumsStatus(WidgetStatus.syncedPartially); - } - - renderedCount++; - - // Limit the number of albums to avoid performance issues - if (renderedCount >= limit) { - _logger.warning("Maximum albums limit ($limit) reached"); - break; - } + if (renderResult != null) { + // Check for blockers again before continuing + if (await _hasAnyBlockers()) { + await clearWidget(); + return; } - } - if (renderedCount >= limit) { - break; + await _setTotalAlbums(renderedCount); + + // Show update toast after first item is rendered + if (renderedCount == 1) { + await _refreshWidget( + message: "First album fetched, updating widget", + ); + await updateAlbumsStatus(WidgetStatus.syncedPartially); + } + + renderedCount++; } } From 6f02df19c64569fe316436fc60bb87fd01a16b88 Mon Sep 17 00:00:00 2001 From: ashilkn Date: Tue, 27 May 2025 12:31:59 +0530 Subject: [PATCH 086/316] Improve UI of widget's empty state --- .../android/app/src/main/res/layout/albums_widget_layout.xml | 4 ++-- .../android/app/src/main/res/layout/memory_widget_layout.xml | 4 ++-- .../android/app/src/main/res/layout/people_widget_layout.xml | 4 ++-- mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift | 5 +++-- mobile/ios/EnteMemoryWidget/EnteMemoryWidget.swift | 5 +++-- mobile/ios/EntePeopleWidget/EntePeopleWidget.swift | 5 +++-- 6 files changed, 15 insertions(+), 12 deletions(-) diff --git a/mobile/android/app/src/main/res/layout/albums_widget_layout.xml b/mobile/android/app/src/main/res/layout/albums_widget_layout.xml index a24d08014d..aa63ca753f 100644 --- a/mobile/android/app/src/main/res/layout/albums_widget_layout.xml +++ b/mobile/android/app/src/main/res/layout/albums_widget_layout.xml @@ -72,8 +72,8 @@ android:id="@+id/widget_placeholder_text" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="Go to Settings->General to customise the widget" - android:textSize="14sp" + android:text="Go to Settings -> General to customise the widget" + android:textSize="12sp" android:gravity="center_horizontal" android:textColor="@color/widget_text_color" android:paddingStart="8dp" diff --git a/mobile/android/app/src/main/res/layout/memory_widget_layout.xml b/mobile/android/app/src/main/res/layout/memory_widget_layout.xml index 7f831b1f94..71a7b44089 100644 --- a/mobile/android/app/src/main/res/layout/memory_widget_layout.xml +++ b/mobile/android/app/src/main/res/layout/memory_widget_layout.xml @@ -72,8 +72,8 @@ android:id="@+id/widget_placeholder_text" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="Go to Settings->General to customise the widget" - android:textSize="14sp" + android:text="Go to Settings -> General to customise the widget" + android:textSize="12sp" android:gravity="center_horizontal" android:textColor="@color/widget_text_color" android:paddingStart="8dp" diff --git a/mobile/android/app/src/main/res/layout/people_widget_layout.xml b/mobile/android/app/src/main/res/layout/people_widget_layout.xml index 1f5e1f17be..92256bddb7 100644 --- a/mobile/android/app/src/main/res/layout/people_widget_layout.xml +++ b/mobile/android/app/src/main/res/layout/people_widget_layout.xml @@ -72,8 +72,8 @@ android:id="@+id/widget_placeholder_text" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="Go to Settings->General to customise the widget" - android:textSize="14sp" + android:text="Go to Settings -> General to customise the widget" + android:textSize="12sp" android:gravity="center_horizontal" android:textColor="@color/widget_text_color" android:paddingStart="8dp" diff --git a/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift b/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift index efc1b600c4..0a4f9d6e76 100644 --- a/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift +++ b/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift @@ -192,11 +192,12 @@ struct EnteAlbumWidgetEntryView: View { .aspectRatio(contentMode: .fit) .padding(8) - Text("Go to Settings->General to customise the widget") - .font(.custom("Inter", size: 14, relativeTo: .caption)) + Text("Go to Settings -> General to customise the widget") + .font(.custom("Inter", size: 12, relativeTo: .caption)) .foregroundStyle(.white) // Tint-aware color .multilineTextAlignment(.center) .padding(.bottom, 12) + .padding(.horizontal, 8) .backwardWidgetAccentable(true) Spacer() } diff --git a/mobile/ios/EnteMemoryWidget/EnteMemoryWidget.swift b/mobile/ios/EnteMemoryWidget/EnteMemoryWidget.swift index 6888e53da7..4382deab9b 100644 --- a/mobile/ios/EnteMemoryWidget/EnteMemoryWidget.swift +++ b/mobile/ios/EnteMemoryWidget/EnteMemoryWidget.swift @@ -190,11 +190,12 @@ struct EnteMemoryWidgetEntryView: View { .aspectRatio(contentMode: .fit) .padding(8) - Text("Go to Settings->General to customise the widget") - .font(.custom("Inter", size: 14, relativeTo: .caption)) + Text("Go to Settings -> General to customise the widget") + .font(.custom("Inter", size: 12, relativeTo: .caption)) .foregroundStyle(.white) // Tint-aware color .multilineTextAlignment(.center) .padding(.bottom, 12) + .padding(.horizontal, 8) .backwardWidgetAccentable(true) Spacer() } diff --git a/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift b/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift index 719b97be7c..951c75767f 100644 --- a/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift +++ b/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift @@ -192,11 +192,12 @@ struct EntePeopleWidgetEntryView: View { .aspectRatio(contentMode: .fit) .padding(8) - Text("Go to Settings->General to customise the widget") - .font(.custom("Inter", size: 14, relativeTo: .caption)) + Text("Go to Settings -> General to customise the widget") + .font(.custom("Inter", size: 12, relativeTo: .caption)) .foregroundStyle(.white) // Tint-aware color .multilineTextAlignment(.center) .padding(.bottom, 12) + .padding(.horizontal, 8) .backwardWidgetAccentable(true) Spacer() } From 129e9f8f49f9fd7e36d55becc1e4aa320a895189 Mon Sep 17 00:00:00 2001 From: ashilkn Date: Tue, 27 May 2025 12:32:39 +0530 Subject: [PATCH 087/316] Avoid adding empty albums in _getAlbumsWithFiles() --- mobile/lib/services/album_home_widget_service.dart | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mobile/lib/services/album_home_widget_service.dart b/mobile/lib/services/album_home_widget_service.dart index 2f23ff1d52..056b6f19b1 100644 --- a/mobile/lib/services/album_home_widget_service.dart +++ b/mobile/lib/services/album_home_widget_service.dart @@ -371,8 +371,10 @@ class AlbumHomeWidgetService { if (collection != null) { final files = await FilesDB.instance.getAllFilesCollection(collection.id); - albumsWithFiles[collection.id] = - (collection.decryptedName ?? "Album", files); + if (files.isNotEmpty) { + albumsWithFiles[collection.id] = + (collection.decryptedName ?? "Album", files); + } } } From 9dcd9d63b2031ea37fd26cf78eb7a5dc9813580e Mon Sep 17 00:00:00 2001 From: ashilkn Date: Tue, 27 May 2025 13:43:49 +0530 Subject: [PATCH 088/316] Avoid using shrinkWrap --- mobile/lib/ui/settings/widgets/albums_widget_settings.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart index 7f6897d0c2..51645c9a83 100644 --- a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart @@ -163,7 +163,7 @@ class _AlbumsWidgetSettingsState extends State { return CollectionsFlexiGridViewWidget( snapshot.data, displayLimitCount: snapshot.data!.length, - shrinkWrap: true, + shrinkWrap: false, selectedAlbums: _selectedAlbums, shouldShowCreateAlbum: false, enableSelectionMode: true, From e9ceb705f6fc14ff88c4aa143e92f08348bd2745 Mon Sep 17 00:00:00 2001 From: ashilkn Date: Tue, 27 May 2025 14:38:08 +0530 Subject: [PATCH 089/316] Sort album widget settings screen's albums, showing selected ones on top. Note that sorting doesn't happen when selection is modified on the screen and only once when it's built --- .../widgets/albums_widget_settings.dart | 62 ++++++++++--------- 1 file changed, 32 insertions(+), 30 deletions(-) diff --git a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart index 51645c9a83..dbf3d90754 100644 --- a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart @@ -24,21 +24,14 @@ class AlbumsWidgetSettings extends StatefulWidget { class _AlbumsWidgetSettingsState extends State { final _selectedAlbums = SelectedAlbums(); bool hasInstalledAny = false; - Set _albums = {}; @override void initState() { super.initState(); - _selectedAlbums.addListener(_selectedAlbumsListener); checkIfAnyWidgetInstalled(); selectExisting(); } - void _selectedAlbumsListener() { - _albums = _selectedAlbums.albums; - setState(() {}); - } - Future checkIfAnyWidgetInstalled() async { final count = await AlbumHomeWidgetService.instance.countHomeWidgets(); setState(() { @@ -76,12 +69,6 @@ class _AlbumsWidgetSettingsState extends State { _selectedAlbums.select(albums); } - @override - void dispose() { - _selectedAlbums.removeListener(_selectedAlbumsListener); - super.dispose(); - } - @override Widget build(BuildContext context) { return Scaffold( @@ -93,22 +80,29 @@ class _AlbumsWidgetSettingsState extends State { 16, 8 + MediaQuery.viewPaddingOf(context).bottom, ), - child: ButtonWidget( - buttonType: ButtonType.primary, - buttonSize: ButtonSize.large, - labelText: S.of(context).save, - shouldSurfaceExecutionStates: false, - onTap: _albums.isNotEmpty - ? () async { - final albums = - _albums.map((e) => e.id.toString()).toList(); - await AlbumHomeWidgetService.instance - .setSelectedAlbums(albums); - Navigator.pop(context); - await AlbumHomeWidgetService.instance.albumsChanged(); - } - : null, - isDisabled: _albums.isEmpty, + child: ListenableBuilder( + listenable: _selectedAlbums, + builder: (context, _) { + return ButtonWidget( + buttonType: ButtonType.primary, + buttonSize: ButtonSize.large, + labelText: S.of(context).save, + shouldSurfaceExecutionStates: false, + onTap: _selectedAlbums.albums.isNotEmpty + ? () async { + final albums = _selectedAlbums.albums + .map((e) => e.id.toString()) + .toList(); + await AlbumHomeWidgetService.instance + .setSelectedAlbums(albums); + Navigator.pop(context); + await AlbumHomeWidgetService.instance + .albumsChanged(); + } + : null, + isDisabled: _selectedAlbums.albums.isEmpty, + ); + }, ), ) : null, @@ -160,8 +154,16 @@ class _AlbumsWidgetSettingsState extends State { CollectionsService.instance.getCollectionForOnEnteSection(), builder: (context, snapshot) { if (snapshot.hasData) { + final data = snapshot.data!; + for (final collection in snapshot.data!) { + if (_selectedAlbums.albums.contains(collection)) { + data.remove(collection); + data.insert(0, collection); + } + } + return CollectionsFlexiGridViewWidget( - snapshot.data, + data, displayLimitCount: snapshot.data!.length, shrinkWrap: false, selectedAlbums: _selectedAlbums, From 5fa951ad4bc56fbff61112735457416b2df08b0b Mon Sep 17 00:00:00 2001 From: ashilkn Date: Tue, 27 May 2025 14:51:02 +0530 Subject: [PATCH 090/316] Refactor people widget settings screen --- .../widgets/people_widget_settings.dart | 50 ++++++++----------- 1 file changed, 22 insertions(+), 28 deletions(-) diff --git a/mobile/lib/ui/settings/widgets/people_widget_settings.dart b/mobile/lib/ui/settings/widgets/people_widget_settings.dart index 062797c3ea..760d7df100 100644 --- a/mobile/lib/ui/settings/widgets/people_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/people_widget_settings.dart @@ -21,12 +21,9 @@ class _PeopleWidgetSettingsState extends State { bool hasInstalledAny = false; final _selectedPeople = SelectedPeople(); - Set people = {}; - @override void initState() { super.initState(); - _selectedPeople.addListener(_selectedPeopleListener); getSelections(); checkIfAnyWidgetInstalled(); } @@ -46,17 +43,6 @@ class _PeopleWidgetSettingsState extends State { }); } - void _selectedPeopleListener() { - people = _selectedPeople.personIds; - setState(() {}); - } - - @override - void dispose() { - _selectedPeople.removeListener(_selectedPeopleListener); - super.dispose(); - } - @override Widget build(BuildContext context) { return Scaffold( @@ -68,20 +54,28 @@ class _PeopleWidgetSettingsState extends State { 16, 8 + MediaQuery.viewPaddingOf(context).bottom, ), - child: ButtonWidget( - buttonType: ButtonType.primary, - buttonSize: ButtonSize.large, - labelText: S.of(context).save, - shouldSurfaceExecutionStates: false, - isDisabled: people.isEmpty, - onTap: people.isEmpty - ? null - : () async { - await PeopleHomeWidgetService.instance - .setSelectedPeople(people.toList()); - Navigator.pop(context); - await PeopleHomeWidgetService.instance.peopleChanged(); - }, + child: ListenableBuilder( + listenable: _selectedPeople, + builder: (context, _) { + return ButtonWidget( + buttonType: ButtonType.primary, + buttonSize: ButtonSize.large, + labelText: S.of(context).save, + shouldSurfaceExecutionStates: false, + isDisabled: _selectedPeople.personIds.isEmpty, + onTap: _selectedPeople.personIds.isEmpty + ? null + : () async { + await PeopleHomeWidgetService.instance + .setSelectedPeople( + _selectedPeople.personIds.toList(), + ); + Navigator.pop(context); + await PeopleHomeWidgetService.instance + .peopleChanged(); + }, + ); + }, ), ) : null, From 6c3b2ee25e4fca41495002c45305c58fc70b4a53 Mon Sep 17 00:00:00 2001 From: ashilkn Date: Tue, 27 May 2025 15:58:04 +0530 Subject: [PATCH 091/316] Randomize memories and files shown in memories widget --- .../services/memory_home_widget_service.dart | 75 +++++++++---------- 1 file changed, 37 insertions(+), 38 deletions(-) diff --git a/mobile/lib/services/memory_home_widget_service.dart b/mobile/lib/services/memory_home_widget_service.dart index 14e6af4663..5a0e96732d 100644 --- a/mobile/lib/services/memory_home_widget_service.dart +++ b/mobile/lib/services/memory_home_widget_service.dart @@ -1,3 +1,4 @@ +import 'dart:math'; import "package:collection/collection.dart"; import 'package:flutter/material.dart'; import 'package:fluttertoast/fluttertoast.dart'; @@ -306,51 +307,49 @@ class MemoryHomeWidgetService { final bool isWidgetPresent = await countHomeWidgets() > 0; final limit = isWidgetPresent ? MAX_MEMORIES_LIMIT : 5; - await updateMemoriesStatus(WidgetStatus.notSynced); - for (final entry in memoriesWithFiles.entries) { - final memoryTitle = entry.key; - final memoryFiles = entry.value; + final memoriesWithFilesLength = memoriesWithFiles.length; + final memoriesWithFilesEntries = memoriesWithFiles.entries.toList(); + final random = Random(); - for (final file in memoryFiles) { - final renderResult = await HomeWidgetService.instance - .renderFile(file, "memory_widget_$renderedCount", memoryTitle, null) - .catchError((e, stackTrace) { - _logger.severe("Error rendering widget", e, stackTrace); - return null; - }); + while (renderedCount < limit) { + final randomEntry = + memoriesWithFilesEntries[random.nextInt(memoriesWithFilesLength)]; + final randomMemoryFile = randomEntry.value.elementAt( + random.nextInt(randomEntry.value.length), + ); + final memoryTitle = randomEntry.key; - if (renderResult != null) { - // Check for blockers again before continuing - if (await _hasAnyBlockers()) { - return; - } + final renderResult = await HomeWidgetService.instance + .renderFile( + randomMemoryFile, + "memory_widget_$renderedCount", + memoryTitle, + null, + ) + .catchError((e, stackTrace) { + _logger.severe("Error rendering widget", e, stackTrace); + return null; + }); - await _setTotalMemories(renderedCount); - - // Show update toast after first item is rendered - if (renderedCount == 1) { - await _refreshWidget( - message: "First memory fetched, updating widget", - ); - await updateMemoriesStatus(WidgetStatus.syncedPartially); - } - - renderedCount++; - - // Limit the number of memories to avoid performance issues - if (renderedCount >= limit) { - _logger.warning( - "Maximum memories limit ($limit) reached", - ); - break; - } + if (renderResult != null) { + // Check for blockers again before continuing + if (await _hasAnyBlockers()) { + return; } - } - if (renderedCount >= limit) { - break; + await _setTotalMemories(renderedCount); + + // Show update toast after first item is rendered + if (renderedCount == 1) { + await _refreshWidget( + message: "First memory fetched, updating widget", + ); + await updateMemoriesStatus(WidgetStatus.syncedPartially); + } + + renderedCount++; } } From b44ef9f68adc902c5f261dd3664ebe8e3eb35d9b Mon Sep 17 00:00:00 2001 From: ashilkn Date: Tue, 27 May 2025 16:45:37 +0530 Subject: [PATCH 092/316] Prevent infinite loops --- .../services/album_home_widget_service.dart | 18 +++++++++++++++--- .../services/memory_home_widget_service.dart | 18 +++++++++++++++--- .../services/people_home_widget_service.dart | 18 +++++++++++++++--- 3 files changed, 45 insertions(+), 9 deletions(-) diff --git a/mobile/lib/services/album_home_widget_service.dart b/mobile/lib/services/album_home_widget_service.dart index 056b6f19b1..652f99de27 100644 --- a/mobile/lib/services/album_home_widget_service.dart +++ b/mobile/lib/services/album_home_widget_service.dart @@ -397,17 +397,21 @@ class AlbumHomeWidgetService { final currentTotal = await _getTotalAlbums(); _logger.info("Current total albums in widget: $currentTotal"); - int renderedCount = 0; - final bool isWidgetPresent = await countHomeWidgets() > 0; + final limit = isWidgetPresent ? MAX_ALBUMS_LIMIT : 5; + final maxAttempts = limit * 10; + + int renderedCount = 0; + int attemptsCount = 0; + await updateAlbumsStatus(WidgetStatus.notSynced); final albumsWithFilesLength = albumsWithFiles.length; final albumsWithFilesEntries = albumsWithFiles.entries.toList(); final random = Random(); - while (renderedCount < limit) { + while (renderedCount < limit && attemptsCount < maxAttempts) { final randomEntry = albumsWithFilesEntries[random.nextInt(albumsWithFilesLength)]; final randomAlbumFile = randomEntry.value.$2.elementAt( @@ -447,6 +451,14 @@ class AlbumHomeWidgetService { renderedCount++; } + + attemptsCount++; + } + + if (attemptsCount >= maxAttempts) { + _logger.warning( + "Hit max attempts $maxAttempts. Only rendered $renderedCount of limit $limit.", + ); } // Update the hash to track changes diff --git a/mobile/lib/services/memory_home_widget_service.dart b/mobile/lib/services/memory_home_widget_service.dart index 5a0e96732d..4e6e2ab9b3 100644 --- a/mobile/lib/services/memory_home_widget_service.dart +++ b/mobile/lib/services/memory_home_widget_service.dart @@ -303,17 +303,21 @@ class MemoryHomeWidgetService { final currentTotal = await _getTotalMemories(); _logger.info("Current total memories in widget: $currentTotal"); - int renderedCount = 0; - final bool isWidgetPresent = await countHomeWidgets() > 0; + final limit = isWidgetPresent ? MAX_MEMORIES_LIMIT : 5; + final maxAttempts = limit * 10; + + int renderedCount = 0; + int attemptsCount = 0; + await updateMemoriesStatus(WidgetStatus.notSynced); final memoriesWithFilesLength = memoriesWithFiles.length; final memoriesWithFilesEntries = memoriesWithFiles.entries.toList(); final random = Random(); - while (renderedCount < limit) { + while (renderedCount < limit && attemptsCount < maxAttempts) { final randomEntry = memoriesWithFilesEntries[random.nextInt(memoriesWithFilesLength)]; final randomMemoryFile = randomEntry.value.elementAt( @@ -351,6 +355,14 @@ class MemoryHomeWidgetService { renderedCount++; } + + attemptsCount++; + } + + if (attemptsCount >= maxAttempts) { + _logger.warning( + "Hit max attempts $maxAttempts. Only rendered $renderedCount of limit $limit.", + ); } if (renderedCount == 0) { diff --git a/mobile/lib/services/people_home_widget_service.dart b/mobile/lib/services/people_home_widget_service.dart index 02d7afd414..6b13ce0df6 100644 --- a/mobile/lib/services/people_home_widget_service.dart +++ b/mobile/lib/services/people_home_widget_service.dart @@ -376,17 +376,21 @@ class PeopleHomeWidgetService { final currentTotal = await _getTotalPeople(); _logger.info("Current total people in widget: $currentTotal"); - int renderedCount = 0; - final bool isWidgetPresent = await countHomeWidgets() > 0; + final limit = isWidgetPresent ? MAX_PEOPLE_LIMIT : 5; + final maxAttempts = limit * 10; + + int renderedCount = 0; + int attemptsCount = 0; + await updatePeopleStatus(WidgetStatus.notSynced); final peopleWithFilesLength = peopleWithFiles.length; final peopleWithFilesEntries = peopleWithFiles.entries.toList(); final random = Random(); - while (renderedCount < limit) { + while (renderedCount < limit && attemptsCount < maxAttempts) { final randomEntry = peopleWithFilesEntries[random.nextInt(peopleWithFilesLength)]; final randomPersonFile = randomEntry.value.$2.elementAt( @@ -425,6 +429,14 @@ class PeopleHomeWidgetService { renderedCount++; } + + attemptsCount++; + } + + if (attemptsCount >= maxAttempts) { + _logger.warning( + "Hit max attempts $maxAttempts. Only rendered $renderedCount of limit $limit.", + ); } if (renderedCount == 0) { From 4d26de8ffd31a16abf3854be4d64da1bf939fded Mon Sep 17 00:00:00 2001 From: ashilkn Date: Tue, 27 May 2025 17:05:46 +0530 Subject: [PATCH 093/316] Add safety check --- mobile/lib/services/album_home_widget_service.dart | 3 +++ mobile/lib/services/memory_home_widget_service.dart | 3 +++ mobile/lib/services/people_home_widget_service.dart | 3 +++ 3 files changed, 9 insertions(+) diff --git a/mobile/lib/services/album_home_widget_service.dart b/mobile/lib/services/album_home_widget_service.dart index 652f99de27..4bf8864940 100644 --- a/mobile/lib/services/album_home_widget_service.dart +++ b/mobile/lib/services/album_home_widget_service.dart @@ -414,6 +414,9 @@ class AlbumHomeWidgetService { while (renderedCount < limit && attemptsCount < maxAttempts) { final randomEntry = albumsWithFilesEntries[random.nextInt(albumsWithFilesLength)]; + + if (randomEntry.value.$2.isEmpty) continue; + final randomAlbumFile = randomEntry.value.$2.elementAt( random.nextInt(randomEntry.value.$2.length), ); diff --git a/mobile/lib/services/memory_home_widget_service.dart b/mobile/lib/services/memory_home_widget_service.dart index 4e6e2ab9b3..c015dd0a69 100644 --- a/mobile/lib/services/memory_home_widget_service.dart +++ b/mobile/lib/services/memory_home_widget_service.dart @@ -320,6 +320,9 @@ class MemoryHomeWidgetService { while (renderedCount < limit && attemptsCount < maxAttempts) { final randomEntry = memoriesWithFilesEntries[random.nextInt(memoriesWithFilesLength)]; + + if (randomEntry.value.isEmpty) continue; + final randomMemoryFile = randomEntry.value.elementAt( random.nextInt(randomEntry.value.length), ); diff --git a/mobile/lib/services/people_home_widget_service.dart b/mobile/lib/services/people_home_widget_service.dart index 6b13ce0df6..ee758caac0 100644 --- a/mobile/lib/services/people_home_widget_service.dart +++ b/mobile/lib/services/people_home_widget_service.dart @@ -393,6 +393,9 @@ class PeopleHomeWidgetService { while (renderedCount < limit && attemptsCount < maxAttempts) { final randomEntry = peopleWithFilesEntries[random.nextInt(peopleWithFilesLength)]; + + if (randomEntry.value.$2.isEmpty) continue; + final randomPersonFile = randomEntry.value.$2.elementAt( random.nextInt(randomEntry.value.$2.length), ); From b54fe2052005789a9f3155a45016e9506efa5744 Mon Sep 17 00:00:00 2001 From: ashilkn Date: Tue, 27 May 2025 18:46:18 +0530 Subject: [PATCH 094/316] chore --- mobile/lib/ui/notification/update/change_log_page.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/mobile/lib/ui/notification/update/change_log_page.dart b/mobile/lib/ui/notification/update/change_log_page.dart index 99e535721c..8624815dd9 100644 --- a/mobile/lib/ui/notification/update/change_log_page.dart +++ b/mobile/lib/ui/notification/update/change_log_page.dart @@ -1,6 +1,5 @@ import 'package:flutter/material.dart'; import "package:photos/generated/l10n.dart"; -import "package:photos/l10n/l10n.dart"; import "package:photos/service_locator.dart"; import 'package:photos/theme/ente_theme.dart'; import 'package:photos/ui/components/buttons/button_widget.dart'; From 0a5005d064d4fbc836b593e3bce6b95b52eca910 Mon Sep 17 00:00:00 2001 From: ashilkn Date: Tue, 27 May 2025 19:06:16 +0530 Subject: [PATCH 095/316] Add scrollbar for album widget settings screen --- .../widgets/albums_widget_settings.dart | 156 ++++++++++-------- 1 file changed, 84 insertions(+), 72 deletions(-) diff --git a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart index dbf3d90754..03ec9e9b42 100644 --- a/mobile/lib/ui/settings/widgets/albums_widget_settings.dart +++ b/mobile/lib/ui/settings/widgets/albums_widget_settings.dart @@ -24,6 +24,7 @@ class AlbumsWidgetSettings extends StatefulWidget { class _AlbumsWidgetSettingsState extends State { final _selectedAlbums = SelectedAlbums(); bool hasInstalledAny = false; + final _scrollController = ScrollController(); @override void initState() { @@ -69,6 +70,12 @@ class _AlbumsWidgetSettingsState extends State { _selectedAlbums.select(albums); } + @override + void dispose() { + _scrollController.dispose(); + super.dispose(); + } + @override Widget build(BuildContext context) { return Scaffold( @@ -106,81 +113,86 @@ class _AlbumsWidgetSettingsState extends State { ), ) : null, - body: CustomScrollView( - primary: false, - slivers: [ - TitleBarWidget( - flexibleSpaceTitle: TitleBarTitleWidget( - title: S.of(context).albums, + body: Scrollbar( + interactive: true, + controller: _scrollController, + child: CustomScrollView( + controller: _scrollController, + primary: false, + slivers: [ + TitleBarWidget( + flexibleSpaceTitle: TitleBarTitleWidget( + title: S.of(context).albums, + ), + expandedHeight: 120, + flexibleSpaceCaption: hasInstalledAny + ? S.of(context).albumsWidgetDesc + : context.l10n.addAlbumWidgetPrompt, + actionIcons: [ + IconButtonWidget( + icon: Icons.close_outlined, + iconButtonType: IconButtonType.secondary, + onTap: () { + Navigator.pop(context); + Navigator.pop(context); + Navigator.pop(context); + }, + ), + ], ), - expandedHeight: 120, - flexibleSpaceCaption: hasInstalledAny - ? S.of(context).albumsWidgetDesc - : context.l10n.addAlbumWidgetPrompt, - actionIcons: [ - IconButtonWidget( - icon: Icons.close_outlined, - iconButtonType: IconButtonType.secondary, - onTap: () { - Navigator.pop(context); - Navigator.pop(context); - Navigator.pop(context); + if (!hasInstalledAny) + SliverToBoxAdapter( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 32.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox( + height: MediaQuery.sizeOf(context).height * 0.5 - 200, + ), + Image.asset( + "assets/albums-widget-static.png", + height: 160, + ), + ], + ), + ), + ) + else + FutureBuilder>( + future: + CollectionsService.instance.getCollectionForOnEnteSection(), + builder: (context, snapshot) { + if (snapshot.hasData) { + final data = snapshot.data!; + for (final collection in snapshot.data!) { + if (_selectedAlbums.albums.contains(collection)) { + data.remove(collection); + data.insert(0, collection); + } + } + + return CollectionsFlexiGridViewWidget( + data, + displayLimitCount: snapshot.data!.length, + shrinkWrap: false, + selectedAlbums: _selectedAlbums, + shouldShowCreateAlbum: false, + enableSelectionMode: true, + onlyAllowSelection: true, + ); + } else if (snapshot.hasError) { + return SliverToBoxAdapter( + child: Text(snapshot.error.toString()), + ); + } else { + return const SliverToBoxAdapter(child: EnteLoadingWidget()); + } }, ), - ], - ), - if (!hasInstalledAny) - SliverToBoxAdapter( - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 32.0), - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - SizedBox( - height: MediaQuery.sizeOf(context).height * 0.5 - 200, - ), - Image.asset( - "assets/albums-widget-static.png", - height: 160, - ), - ], - ), - ), - ) - else - FutureBuilder>( - future: - CollectionsService.instance.getCollectionForOnEnteSection(), - builder: (context, snapshot) { - if (snapshot.hasData) { - final data = snapshot.data!; - for (final collection in snapshot.data!) { - if (_selectedAlbums.albums.contains(collection)) { - data.remove(collection); - data.insert(0, collection); - } - } - - return CollectionsFlexiGridViewWidget( - data, - displayLimitCount: snapshot.data!.length, - shrinkWrap: false, - selectedAlbums: _selectedAlbums, - shouldShowCreateAlbum: false, - enableSelectionMode: true, - onlyAllowSelection: true, - ); - } else if (snapshot.hasError) { - return SliverToBoxAdapter( - child: Text(snapshot.error.toString()), - ); - } else { - return const SliverToBoxAdapter(child: EnteLoadingWidget()); - } - }, - ), - ], + ], + ), ), ); } From 765b0982edb95f1abfa082d30e2cadf3c6dad9ac Mon Sep 17 00:00:00 2001 From: Crowdin Bot Date: Mon, 2 Jun 2025 01:05:16 +0000 Subject: [PATCH 096/316] New Crowdin translations by GitHub Action --- .../metadata/android/sr/full_description.txt | 36 ++++ .../metadata/android/sr/short_description.txt | 1 + mobile/fastlane/metadata/android/sr/title.txt | 1 + .../fastlane/metadata/ios/sr/description.txt | 33 ++++ mobile/fastlane/metadata/ios/sr/keywords.txt | 1 + mobile/fastlane/metadata/ios/sr/name.txt | 1 + mobile/fastlane/metadata/ios/sr/subtitle.txt | 1 + .../playstore/sr/full_description.txt | 30 +++ .../playstore/sr/short_description.txt | 1 + .../fastlane/metadata/playstore/sr/title.txt | 1 + mobile/lib/l10n/intl_ar.arb | 86 +++++---- mobile/lib/l10n/intl_cs.arb | 5 +- mobile/lib/l10n/intl_de.arb | 10 - mobile/lib/l10n/intl_es.arb | 10 - mobile/lib/l10n/intl_fr.arb | 18 +- mobile/lib/l10n/intl_id.arb | 2 + mobile/lib/l10n/intl_ja.arb | 12 +- mobile/lib/l10n/intl_lt.arb | 172 ++++++++++++++++-- mobile/lib/l10n/intl_nl.arb | 10 - mobile/lib/l10n/intl_no.arb | 12 +- mobile/lib/l10n/intl_pt_BR.arb | 10 - mobile/lib/l10n/intl_ru.arb | 10 - mobile/lib/l10n/intl_sr.arb | 3 + mobile/lib/l10n/intl_tr.arb | 24 +-- mobile/lib/l10n/intl_zh.arb | 12 +- 25 files changed, 330 insertions(+), 172 deletions(-) create mode 100644 mobile/fastlane/metadata/android/sr/full_description.txt create mode 100644 mobile/fastlane/metadata/android/sr/short_description.txt create mode 100644 mobile/fastlane/metadata/android/sr/title.txt create mode 100644 mobile/fastlane/metadata/ios/sr/description.txt create mode 100644 mobile/fastlane/metadata/ios/sr/keywords.txt create mode 100644 mobile/fastlane/metadata/ios/sr/name.txt create mode 100644 mobile/fastlane/metadata/ios/sr/subtitle.txt create mode 100644 mobile/fastlane/metadata/playstore/sr/full_description.txt create mode 100644 mobile/fastlane/metadata/playstore/sr/short_description.txt create mode 100644 mobile/fastlane/metadata/playstore/sr/title.txt create mode 100644 mobile/lib/l10n/intl_sr.arb diff --git a/mobile/fastlane/metadata/android/sr/full_description.txt b/mobile/fastlane/metadata/android/sr/full_description.txt new file mode 100644 index 0000000000..9ba4fe3143 --- /dev/null +++ b/mobile/fastlane/metadata/android/sr/full_description.txt @@ -0,0 +1,36 @@ +ente is a simple app to backup and share your photos and videos. + +If you've been looking for a privacy-friendly alternative to Google Photos, you've come to the right place. With ente, they are stored end-to-end encrypted (e2ee). This means that only you can view them. + +We have open-source apps across Android, iOS, web and desktop, and your photos will seamlessly sync between all of them in an end-to-end encrypted (e2ee) manner. + +ente also makes it simple to share your albums with your loved ones, even if they aren't on ente. You can share publicly viewable links, where they can view your album and collaborate by adding photos to it, even without an account or app. + +Your encrypted data is replicated to 3 different locations, including a fall-out shelter in Paris. We take posterity seriously and make it easy to ensure that your memories outlive you. + +We are here to make the safest photos app ever, come join our journey! + +FEATURES +- Original quality backups, because every pixel is important +- Family plans, so you can share storage with your family +- Collaborative albums, so you can pool together photos after a trip +- Shared folders, in case you want your partner to enjoy your "Camera" clicks +- Album links, that can be protected with a password +- Ability to free up space, by removing files that have been safely backed up +- Human support, because you're worth it +- Descriptions, so you can caption your memories and find them easily +- Image editor, to add finishing touches +- Favorite, hide and relive your memories, for they are precious +- One-click import from Google, Apple, your hard drive and more +- Dark theme, because your photos look good in it +- 2FA, 3FA, biometric auth +- and a LOT more! + +PERMISSIONS +ente requests for certain permissions to serve the purpose of a photo storage provider, which can be reviewed here: https://github.com/ente-io/ente/blob/f-droid/mobile/android/permissions.md + +PRICING +We don't offer forever free plans, because it is important to us that we remain sustainable and withstand the test of time. Instead we offer affordable plans that you can freely share with your family. You can find more information at ente.io. + +SUPPORT +We take pride in offering human support. If you are our paid customer, you can reach out to team@ente.io and expect a response from our team within 24 hours. diff --git a/mobile/fastlane/metadata/android/sr/short_description.txt b/mobile/fastlane/metadata/android/sr/short_description.txt new file mode 100644 index 0000000000..7a5fe973db --- /dev/null +++ b/mobile/fastlane/metadata/android/sr/short_description.txt @@ -0,0 +1 @@ +ente is an end-to-end encrypted photo storage app \ No newline at end of file diff --git a/mobile/fastlane/metadata/android/sr/title.txt b/mobile/fastlane/metadata/android/sr/title.txt new file mode 100644 index 0000000000..3a4fed48fe --- /dev/null +++ b/mobile/fastlane/metadata/android/sr/title.txt @@ -0,0 +1 @@ +ente - encrypted photo storage \ No newline at end of file diff --git a/mobile/fastlane/metadata/ios/sr/description.txt b/mobile/fastlane/metadata/ios/sr/description.txt new file mode 100644 index 0000000000..a98a74300a --- /dev/null +++ b/mobile/fastlane/metadata/ios/sr/description.txt @@ -0,0 +1,33 @@ +Ente is a simple app to automatically backup and organize your photos and videos. + +If you've been looking for a privacy-friendly alternative to preserve your memories, you've come to the right place. With Ente, they are stored end-to-end encrypted (e2ee). This means that only you can view them. + +We have apps across all platforms, and your photos will seamlessly sync between all your devices in an end-to-end encrypted (e2ee) manner. + +Ente also makes it simple to share your albums with your loved ones. You can either share them directly with other Ente users, end-to-end encrypted; or with publicly viewable links. + +Your encrypted data is stored across multiple locations, including a fall-out shelter in Paris. We take posterity seriously and make it easy to ensure that your memories outlive you. + +We are here to make the safest photos app ever, come join our journey! + +FEATURES +- Original quality backups, because every pixel is important +- Family plans, so you can share storage with your family +- Shared folders, in case you want your partner to enjoy your "Camera" clicks +- Album links, that can be protected with a password and set to expire +- Ability to free up space, by removing files that have been safely backed up +- Image editor, to add finishing touches +- Favorite, hide and relive your memories, for they are precious +- One-click import from all major storage providers +- Dark theme, because your photos look good in it +- 2FA, 3FA, biometric auth +- and a LOT more! + +PRICING +We don't offer forever free plans, because it is important to us that we remain sustainable and withstand the test of time. Instead we offer affordable plans that you can freely share with your family. You can find more information at ente.io. + +SUPPORT +We take pride in offering human support. If you are our paid customer, you can reach out to team@ente.io and expect a response from our team within 24 hours. + +TERMS +https://ente.io/terms diff --git a/mobile/fastlane/metadata/ios/sr/keywords.txt b/mobile/fastlane/metadata/ios/sr/keywords.txt new file mode 100644 index 0000000000..e1462baf51 --- /dev/null +++ b/mobile/fastlane/metadata/ios/sr/keywords.txt @@ -0,0 +1 @@ +photos,photography,family,privacy,cloud,backup,videos,photo,encryption,storage,album,alternative diff --git a/mobile/fastlane/metadata/ios/sr/name.txt b/mobile/fastlane/metadata/ios/sr/name.txt new file mode 100644 index 0000000000..3a991c4abc --- /dev/null +++ b/mobile/fastlane/metadata/ios/sr/name.txt @@ -0,0 +1 @@ +Ente Photos diff --git a/mobile/fastlane/metadata/ios/sr/subtitle.txt b/mobile/fastlane/metadata/ios/sr/subtitle.txt new file mode 100644 index 0000000000..958a35f1c9 --- /dev/null +++ b/mobile/fastlane/metadata/ios/sr/subtitle.txt @@ -0,0 +1 @@ +Encrypted photo storage diff --git a/mobile/fastlane/metadata/playstore/sr/full_description.txt b/mobile/fastlane/metadata/playstore/sr/full_description.txt new file mode 100644 index 0000000000..ec999a783c --- /dev/null +++ b/mobile/fastlane/metadata/playstore/sr/full_description.txt @@ -0,0 +1,30 @@ +Ente is a simple app to automatically backup and organize your photos and videos. + +If you've been looking for a privacy-friendly alternative to preserve your memories, you've come to the right place. With Ente, they are stored end-to-end encrypted (e2ee). This means that only you can view them. + +We have apps across Android, iOS, web and Desktop, and your photos will seamlessly sync between all your devices in an end-to-end encrypted (e2ee) manner. + +Ente also makes it simple to share your albums with your loved ones. You can either share them directly with other Ente users, end-to-end encrypted; or with publicly viewable links. + +Your encrypted data is stored across multiple locations, including a fall-out shelter in Paris. We take posterity seriously and make it easy to ensure that your memories outlive you. + +We are here to make the safest photos app ever, come join our journey! + +✨ FEATURES +- Original quality backups, because every pixel is important +- Family plans, so you can share storage with your family +- Shared folders, in case you want your partner to enjoy your "Camera" clicks +- Album links, that can be protected with a password and set to expire +- Ability to free up space, by removing files that have been safely backed up +- Image editor, to add finishing touches +- Favorite, hide and relive your memories, for they are precious +- One-click import from Google, Apple, your hard drive and more +- Dark theme, because your photos look good in it +- 2FA, 3FA, biometric auth +- and a LOT more! + +💲 PRICING +We don't offer forever free plans, because it is important to us that we remain sustainable and withstand the test of time. Instead we offer affordable plans that you can freely share with your family. You can find more information at ente.io. + +🙋 SUPPORT +We take pride in offering human support. If you are our paid customer, you can reach out to team@ente.io and expect a response from our team within 24 hours. \ No newline at end of file diff --git a/mobile/fastlane/metadata/playstore/sr/short_description.txt b/mobile/fastlane/metadata/playstore/sr/short_description.txt new file mode 100644 index 0000000000..6c00229894 --- /dev/null +++ b/mobile/fastlane/metadata/playstore/sr/short_description.txt @@ -0,0 +1 @@ +Encrypted photo storage - backup, organize and share your photos and videos \ No newline at end of file diff --git a/mobile/fastlane/metadata/playstore/sr/title.txt b/mobile/fastlane/metadata/playstore/sr/title.txt new file mode 100644 index 0000000000..97fdef3be7 --- /dev/null +++ b/mobile/fastlane/metadata/playstore/sr/title.txt @@ -0,0 +1 @@ +Ente Photos \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ar.arb b/mobile/lib/l10n/intl_ar.arb index 2ab97549b1..bc05cd3609 100644 --- a/mobile/lib/l10n/intl_ar.arb +++ b/mobile/lib/l10n/intl_ar.arb @@ -1,6 +1,7 @@ { "@@locale ": "en", "enterYourEmailAddress": "أدخل عنوان بريدك الإلكتروني", + "enterYourNewEmailAddress": "أدخل عنوان بريدك الإلكتروني الجديد", "accountWelcomeBack": "أهلاً بعودتك!", "emailAlreadyRegistered": "البريد الإلكتروني مُسجل من قبل.", "emailNotRegistered": "البريد الإلكتروني غير مسجل.", @@ -35,7 +36,7 @@ "activeSessions": "الجلسات النشطة", "oops": "عفوًا", "somethingWentWrongPleaseTryAgain": "حدث خطأ ما، يرجى المحاولة مرة أخرى", - "thisWillLogYouOutOfThisDevice": "سيؤدي هذا إلى تسجيل خروجك من هذا الجهاز.", + "thisWillLogYouOutOfThisDevice": "سيؤدي هذا إلى تسجيل خروجك من هذا الجهاز!", "thisWillLogYouOutOfTheFollowingDevice": "سيؤدي هذا إلى تسجيل خروجك من الجهاز التالي:", "terminateSession": "إنهاء الجَلسةِ؟", "terminate": "إنهاء", @@ -45,7 +46,7 @@ "decrypting": "جارٍ فك التشفير...", "incorrectRecoveryKeyTitle": "مفتاح الاسترداد غير صحيح", "incorrectRecoveryKeyBody": "مفتاح الاسترداد الذي أدخلته غير صحيح", - "forgotPassword": "نسيت كلمة المرور؟", + "forgotPassword": "نسيت كلمة المرور", "enterYourRecoveryKey": "أدخل مفتاح الاسترداد", "noRecoveryKey": "لا تملك مفتاح استرداد؟", "sorry": "عفوًا", @@ -120,7 +121,7 @@ "recoveryKeyCopiedToClipboard": "تم نسخ مفتاح الاسترداد إلى الحافظة", "recoverAccount": "استعادة الحساب", "recover": "استعادة", - "dropSupportEmail": "يرجى إرسال بريد إلكتروني إلى {supportEmail} من عنوان بريدك الإلكتروني المسجل.", + "dropSupportEmail": "يرجى إرسال بريد إلكتروني إلى {supportEmail} من عنوان بريدك الإلكتروني المسجل", "@dropSupportEmail": { "placeholders": { "supportEmail": { @@ -140,12 +141,12 @@ "enterThe6digitCodeFromnyourAuthenticatorApp": "أدخل الرمز المكون من 6 أرقام من\n تطبيق المصادقة الخاص بك", "confirm": "تأكيد", "setupComplete": "اكتمل الإعداد", - "saveYourRecoveryKeyIfYouHaventAlready": "احفظ مفتاح الاسترداد إذا لم تكن قد فعلت ذلك بالفعل.", - "thisCanBeUsedToRecoverYourAccountIfYou": "يمكن استخدام هذا المفتاح لاستعادة حسابك إذا فقدت جهاز المصادقة الثنائية.", + "saveYourRecoveryKeyIfYouHaventAlready": "احفظ مفتاح الاسترداد إذا لم تكن قد فعلت ذلك", + "thisCanBeUsedToRecoverYourAccountIfYou": "يمكن استخدام هذا المفتاح لاستعادة حسابك إذا فقدت العامل الثاني للمصادقة", "twofactorAuthenticationPageTitle": "المصادقة الثنائية", "lostDevice": "جهاز مفقود؟", "verifyingRecoveryKey": "جارٍ التحقق من مفتاح الاسترداد...", - "recoveryKeyVerified": "تم التحقق من مفتاح الاسترداد.", + "recoveryKeyVerified": "تم التحقق من مفتاح الاسترداد", "recoveryKeySuccessBody": "مفتاح الاسترداد الخاص بك صالح. شكرًا على التحقق.\n\nيرجى تذكر الاحتفاظ بنسخة احتياطية آمنة من مفتاح الاسترداد.", "invalidRecoveryKey": "مفتاح الاسترداد الذي أدخلته غير صالح. يرجى التأكد من أنه يحتوي على 24 كلمة، والتحقق من كتابة كل كلمة بشكل صحيح.\n\nإذا كنت تستخدم مفتاح استرداد قديمًا، تأكد من أنه مكون من 64 حرفًا، وتحقق من صحة كل حرف.", "invalidKey": "المفتاح غير صالح", @@ -190,7 +191,7 @@ "canNotOpenTitle": "لا يمكن فتح هذا الألبوم", "canNotOpenBody": "عذرًا، لا يمكن فتح هذا الألبوم في التطبيق.", "disableDownloadWarningTitle": "يرجى الملاحظة", - "disableDownloadWarningBody": "لا يزال بإمكان المشاهدين التقاط لقطات شاشة أو حفظ نسخة من صورك باستخدام أدوات خارجية.", + "disableDownloadWarningBody": "لا يزال بإمكان المشاهدين التقاط لقطات شاشة أو حفظ نسخة من صورك باستخدام أدوات خارجية", "allowDownloads": "السماح بالتنزيلات", "linkDeviceLimit": "حد الأجهزة", "noDeviceLimit": "لا شيء", @@ -220,7 +221,7 @@ "after1Month": "بعد شهر", "after1Year": "بعد سنة", "manageParticipants": "إدارة المشاركين", - "albumParticipantsCount": "{count, plural, =0 {لا يوجد مشاركون} =1 {مشارك واحد} two {مشاركان} few {{count} مشاركين} many {{count} مشاركًا} other {{count} مشارك}}", + "albumParticipantsCount": "{count, plural, =0 {لا يوجد مُشاركون}=1 {مُشارك واحد} other {{count} مُشاركين}}", "@albumParticipantsCount": { "placeholders": { "count": { @@ -230,7 +231,7 @@ }, "description": "Number of participants in an album, including the album owner." }, - "collabLinkSectionDescription": "أنشئ رابطًا يسمح للأشخاص بإضافة الصور ومشاهدتها في ألبومك المشترك دون الحاجة إلى تطبيق Ente أو حساب. خيار مثالي لجمع صور الفعاليات بسهولة.", + "collabLinkSectionDescription": "أنشئ رابطًا يسمح للأشخاص بإضافة الصور ومشاهدتها في ألبومك المشترك دون الحاجة إلى تطبيق أو حساب Ente. خيار مثالي لجمع صور الفعاليات بسهولة.", "collectPhotos": "جمع الصور", "collaborativeLink": "رابط تعاوني", "shareWithNonenteUsers": "المشاركة مع غير مستخدمي Ente", @@ -241,7 +242,7 @@ "publicLinkEnabled": "تمكين الرابط العام", "shareALink": "مشاركة رابط", "sharedAlbumSectionDescription": "أنشئ ألبومات مشتركة وتعاونية مع مستخدمي Ente الآخرين، بما في ذلك المستخدمين ذوي الاشتراكات المجانية.", - "shareWithPeopleSectionTitle": "{numberOfPeople, plural, =0 {مشاركة مع أشخاص محددين} =1 {تمت المشاركة مع شخص واحد} two {تمت المشاركة مع شخصين} few {تمت المشاركة مع {numberOfPeople} أشخاص} many {تمت المشاركة مع {numberOfPeople} شخصًا} other {تمت المشاركة مع {numberOfPeople} شخصًا}}", + "shareWithPeopleSectionTitle": "{numberOfPeople, plural, =0 {مشاركة مع أشخاص مُحددين}=1 {مُشارَك مع شخص واحد} other {مُشارَك مع {numberOfPeople} أشخاص}}", "@shareWithPeopleSectionTitle": { "placeholders": { "numberOfPeople": { @@ -266,13 +267,13 @@ "verifyEmailID": "التحقق من {email}", "emailNoEnteAccount": "{email} لا يملك حسابًا على Ente.\n\nأرسل له دعوة لمشاركة الصور.", "shareMyVerificationID": "إليك معرّف التحقق الخاص بي لـ ente.io: {verificationID}", - "shareTextConfirmOthersVerificationID": "مرحبًا، هل يمكنك تأكيد أن هذا هو معرّف التحقق الخاص بك على ente.io: {verificationID}؟", + "shareTextConfirmOthersVerificationID": "مرحبًا، هل يمكنك تأكيد أن هذا هو معرّف التحقق الخاص بك على ente.io: {verificationID}", "somethingWentWrong": "حدث خطأ ما", "sendInvite": "إرسال دعوة", "shareTextRecommendUsingEnte": "قم بتنزيل تطبيق Ente حتى نتمكن من مشاركة الصور ومقاطع الفيديو بالجودة الأصلية بسهولة.\n\nhttps://ente.io", "done": "تم", "applyCodeTitle": "تطبيق الرمز", - "enterCodeDescription": "أدخل الرمز المقدم من صديقك للمطالبة بمساحة تخزين مجانية لكما.", + "enterCodeDescription": "أدخل الرمز المقدم من صديقك للمطالبة بمساحة تخزين مجانية لكما", "apply": "تطبيق", "failedToApplyCode": "فشل تطبيق الرمز", "enterReferralCode": "أدخل رمز الإحالة", @@ -354,8 +355,8 @@ "importing": "جارٍ الاستيراد...", "failedToLoadAlbums": "فشل تحميل الألبومات", "hidden": "المخفية", - "authToViewYourHiddenFiles": "يرجى المصادقة للوصول إلى ملفاتك المخفية.", - "authToViewTrashedFiles": "يرجى المصادقة لعرض ملفاتك المحذوفة.", + "authToViewYourHiddenFiles": "يرجى المصادقة للوصول إلى ملفاتك المخفية", + "authToViewTrashedFiles": "يرجى المصادقة لعرض ملفاتك المحذوفة", "trash": "سلة المهملات", "uncategorized": "غير مصنف", "videoSmallCase": "فيديو", @@ -364,7 +365,7 @@ "singleFileInBothLocalAndRemote": "{fileType} موجود في Ente وعلى جهازك.", "singleFileInRemoteOnly": "سيتم حذف {fileType} من Ente.", "singleFileDeleteFromDevice": "سيتم حذف {fileType} من جهازك.", - "deleteFromEnte": "الحذف من Ente", + "deleteFromEnte": "حذف من Ente", "yesDelete": "نعم، حذف", "movedToTrash": "تم النقل إلى سلة المهملات", "deleteFromDevice": "الحذف من الجهاز", @@ -494,14 +495,14 @@ "youAreOnTheLatestVersion": "أنت تستخدم أحدث إصدار.", "account": "الحساب", "manageSubscription": "إدارة الاشتراك", - "authToChangeYourEmail": "يرجى المصادقة لتغيير بريدك الإلكتروني.", + "authToChangeYourEmail": "يرجى المصادقة لتغيير بريدك الإلكتروني", "changePassword": "تغيير كلمة المرور", - "authToChangeYourPassword": "يرجى المصادقة لتغيير كلمة المرور الخاصة بك.", + "authToChangeYourPassword": "يرجى المصادقة لتغيير كلمة المرور الخاصة بك", "emailVerificationToggle": "تأكيد عنوان البريد الإلكتروني", - "authToChangeEmailVerificationSetting": "يرجى المصادقة لتغيير إعداد التحقق من البريد الإلكتروني.", + "authToChangeEmailVerificationSetting": "يرجى المصادقة لتغيير إعداد التحقق من البريد الإلكتروني", "exportYourData": "تصدير بياناتك", "logout": "تسجيل الخروج", - "authToInitiateAccountDeletion": "يرجى المصادقة لبدء عملية حذف الحساب.", + "authToInitiateAccountDeletion": "يرجى المصادقة لبدء عملية حذف الحساب", "areYouSureYouWantToLogout": "هل أنت متأكد من رغبتك في تسجيل الخروج؟", "yesLogout": "نعم، تسجيل الخروج", "aNewVersionOfEnteIsAvailable": "يتوفر إصدار جديد من Ente.", @@ -511,24 +512,24 @@ "updateAvailable": "يتوفر تحديث", "ignoreUpdate": "تجاهل", "downloading": "جارٍ التنزيل...", - "cannotDeleteSharedFiles": "لا يمكن حذف الملفات المشتركة.", - "theDownloadCouldNotBeCompleted": "تعذر إكمال التنزيل.", + "cannotDeleteSharedFiles": "لا يمكن حذف الملفات المشتركة", + "theDownloadCouldNotBeCompleted": "تعذر إكمال التنزيل", "retry": "إعادة المحاولة", "backedUpFolders": "المجلدات المنسوخة احتياطيًا", "backup": "النسخ الاحتياطي", "freeUpDeviceSpace": "تحرير مساحة على الجهاز", "freeUpDeviceSpaceDesc": "وفر مساحة على جهازك عن طريق مسح الملفات التي تم نسخها احتياطيًا.", "allClear": "✨ كل شيء واضح", - "noDeviceThatCanBeDeleted": "لا توجد ملفات على هذا الجهاز يمكن حذفها.", + "noDeviceThatCanBeDeleted": "لا توجد ملفات على هذا الجهاز يمكن حذفها", "removeDuplicates": "إزالة النسخ المكررة", "removeDuplicatesDesc": "مراجعة وإزالة الملفات المتطابقة تمامًا.", "viewLargeFiles": "الملفات الكبيرة", "viewLargeFilesDesc": "عرض الملفات التي تستهلك أكبر قدر من مساحة التخزين.", "noDuplicates": "✨ لا توجد ملفات مكررة", - "youveNoDuplicateFilesThatCanBeCleared": "لا توجد لديك أي ملفات مكررة يمكن مسحها.", + "youveNoDuplicateFilesThatCanBeCleared": "لا توجد لديك أي ملفات مكررة يمكن مسحها", "success": "تم بنجاح", "rateUs": "تقييم التطبيق", - "remindToEmptyDeviceTrash": "تذكر أيضًا إفراغ \"المحذوفة مؤخرًا\" من \"الإعدادات\" -> \"التخزين\" لاستعادة المساحة المحررة.", + "remindToEmptyDeviceTrash": "تذكر أيضًا إفراغ \"المحذوفة مؤخرًا\" من \"الإعدادات\" -> \"التخزين\" لاستعادة المساحة المحررة", "youHaveSuccessfullyFreedUp": "لقد حررت {storageSaved} بنجاح!", "@youHaveSuccessfullyFreedUp": { "description": "The text to display when the user has successfully freed up storage", @@ -598,7 +599,7 @@ "selectYourPlan": "اختر خطتك", "enteSubscriptionPitch": "يحفظ Ente ذكرياتك، بحيث تظل دائمًا متاحة لك حتى لو فقدت جهازك.", "enteSubscriptionShareWithFamily": "يمكنك أيضًا إضافة أفراد عائلتك إلى خطتك.", - "currentUsageIs": "استخدامك الحالي هو", + "currentUsageIs": "استخدامك الحالي هو ", "@currentUsageIs": { "description": "This text is followed by storage usage", "examples": { @@ -682,7 +683,7 @@ "areYouSureYouWantToExit": "هل أنت متأكد من رغبتك في الخروج؟", "thankYou": "شكرًا لك", "failedToVerifyPaymentStatus": "فشل التحقق من حالة الدفع.", - "pleaseWaitForSometimeBeforeRetrying": "يرجى الانتظار لبعض الوقت قبل إعادة المحاولة.", + "pleaseWaitForSometimeBeforeRetrying": "يرجى الانتظار لبعض الوقت قبل إعادة المحاولة", "paymentFailedMessage": "للأسف، فشلت عملية الدفع الخاصة بك. يرجى الاتصال بالدعم وسوف نساعدك!", "youAreOnAFamilyPlan": "أنت مشترك في خطة عائلية!", "contactFamilyAdmin": "يرجى الاتصال بـ {familyAdminEmail} لإدارة اشتراكك.", @@ -691,9 +692,9 @@ "leave": "مغادرة", "rateTheApp": "تقييم التطبيق", "startBackup": "بدء النسخ الاحتياطي", - "noPhotosAreBeingBackedUpRightNow": "لا يتم نسخ أي صور احتياطيًا في الوقت الحالي.", + "noPhotosAreBeingBackedUpRightNow": "لا يتم نسخ أي صور احتياطيًا في الوقت الحالي", "preserveMore": "حفظ المزيد", - "grantFullAccessPrompt": "يرجى السماح بالوصول إلى جميع الصور في تطبيق الإعدادات.", + "grantFullAccessPrompt": "الرجاء السماح بالوصول إلى جميع الصور في تطبيق الإعدادات", "allowPermTitle": "السماح بالوصول إلى الصور", "allowPermBody": "يرجى السماح بالوصول إلى صورك من الإعدادات حتى يتمكن Ente من عرض نسختك الاحتياطية ومكتبتك.", "openSettings": "فتح الإعدادات", @@ -710,10 +711,10 @@ "androidIosWebDesktop": "أندرويد، iOS، الويب، سطح المكتب", "mobileWebDesktop": "الهاتف المحمول، الويب، سطح المكتب", "newToEnte": "جديد في Ente", - "pleaseLoginAgain": "يرجى تسجيل الدخول مرة أخرى.", + "pleaseLoginAgain": "يرجى تسجيل الدخول مرة أخرى", "autoLogoutMessage": "بسبب خلل تقني، تم تسجيل خروجك. نعتذر عن الإزعاج.", - "yourSubscriptionHasExpired": "انتهت صلاحية اشتراكك.", - "storageLimitExceeded": "تم تجاوز حد التخزين.", + "yourSubscriptionHasExpired": "انتهت صلاحية اشتراكك", + "storageLimitExceeded": "تم تجاوز حد التخزين", "upgrade": "ترقية", "raiseTicket": "فتح تذكرة دعم", "@raiseTicket": { @@ -723,8 +724,8 @@ "backupFailed": "فشل النسخ الاحتياطي", "sorryBackupFailedDesc": "عذرًا، لم نتمكن من عمل نسخة احتياطية لهذا الملف الآن، سنعيد المحاولة لاحقًا.", "couldNotBackUpTryLater": "لم نتمكن من نسخ بياناتك احتياطيًا.\nسنحاول مرة أخرى لاحقًا.", - "enteCanEncryptAndPreserveFilesOnlyIfYouGrant": "يمكن لـ Ente تشفير وحفظ الملفات فقط إذا منحت الإذن بالوصول إليها.", - "pleaseGrantPermissions": "يرجى منح الأذونات.", + "enteCanEncryptAndPreserveFilesOnlyIfYouGrant": "يمكن لـ Ente تشفير وحفظ الملفات فقط إذا منحت الإذن بالوصول إليها", + "pleaseGrantPermissions": "يرجى منح الأذونات", "grantPermission": "منح الإذن", "privateSharing": "مشاركة خاصة", "shareOnlyWithThePeopleYouWant": "شارك فقط مع الأشخاص الذين تريدهم.", @@ -1030,7 +1031,7 @@ "didYouKnow": "هل تعلم؟", "loadingMessage": "جارٍ تحميل صورك...", "loadMessage1": "يمكنك مشاركة اشتراكك مع عائلتك.", - "loadMessage2": "لقد حفظنا أكثر من 200 مليون ذكرى حتى الآن.", + "loadMessage2": "لقد حفظنا أكثر من 200 مليون ذكرى حتى الآن", "loadMessage3": "نحتفظ بـ 3 نسخ من بياناتك، إحداها في ملجأ للطوارئ تحت الأرض.", "loadMessage4": "جميع تطبيقاتنا مفتوحة المصدر.", "loadMessage5": "تم تدقيق شفرتنا المصدرية والتشفير الخاص بنا خارجيًا.", @@ -1729,15 +1730,10 @@ "onTheRoad": "على الطريق مرة أخرى", "food": "متعة الطهي", "pets": "رفاق فروي", - "cLIcon": "أيقونة جديدة", - "cLIconDesc": "أخيرًا، أيقونة تطبيق جديدة، نعتقد أنها تمثل عملنا على أفضل وجه. أضفنا أيضًا مبدل أيقونات حتى تتمكن من الاستمرار في استخدام الأيقونة القديمة.", - "cLMemories": "الذكريات", - "cLMemoriesDesc": "أعد اكتشاف لحظاتك الخاصة - تسليط الضوء على الأشخاص المفضلين لديك، رحلاتك وعطلاتك، أفضل لقطاتك، وأكثر من ذلك بكثير. قم بتشغيل تعلم الآلة، ضع علامة على نفسك وقم بتسمية أصدقائك للحصول على أفضل تجربة.", - "cLWidgets": "الأدوات المصغرة (Widgets)", - "cLWidgetsDesc": "الأدوات المصغرة للشاشة الرئيسية المدمجة مع الذكريات متاحة الآن. ستعرض لحظاتك الخاصة دون فتح التطبيق.", - "cLFamilyPlan": "حدود الخطة العائلية", - "cLFamilyPlanDesc": "يمكنك الآن تعيين حدود لمقدار التخزين الذي يمكن لأفراد عائلتك استخدامه.", - "cLBulkEdit": "تعديل التواريخ بشكل جماعي", - "cLBulkEditDesc": "يمكنك الآن تحديد صور متعددة، وتعديل التاريخ/الوقت لجميعها بإجراء سريع واحد. تغيير التواريخ مدعوم أيضًا.", - "curatedMemories": "ذكريات منسقة" + "curatedMemories": "ذكريات منسقة", + "onThisDay": "في هذا اليوم", + "deleteMultipleAlbumDialog": "هل تريد أيضًا حذف الصور (والمقاطع) الموجودة في هذه الألبومات {count} من كافة الألبومات الأخرى التي تشترك فيها؟", + "addParticipants": "إضافة مشاركين", + "selectedAlbums": "{count} تم تحديد", + "actionNotSupportedOnFavouritesAlbum": "الإجراء غير مدعوم في ألبوم المفضلة" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_cs.arb b/mobile/lib/l10n/intl_cs.arb index cfe52cf83c..fa046acab2 100644 --- a/mobile/lib/l10n/intl_cs.arb +++ b/mobile/lib/l10n/intl_cs.arb @@ -436,8 +436,5 @@ "previous": "Předchozí", "newRange": "Nový rozsah", "youAndThem": "Vy a {name}", - "selfiesWithThem": "Selfie s {name}", - "cLIcon": "Nová ikona", - "cLMemories": "Vzpomínky", - "cLWidgets": "Widgety" + "selfiesWithThem": "Selfie s {name}" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_de.arb b/mobile/lib/l10n/intl_de.arb index 205cbc65ec..d8099fcb2f 100644 --- a/mobile/lib/l10n/intl_de.arb +++ b/mobile/lib/l10n/intl_de.arb @@ -1730,16 +1730,6 @@ "onTheRoad": "Wieder unterwegs", "food": "Kulinarische Genüsse", "pets": "Pelzige Begleiter", - "cLIcon": "Neues Icon", - "cLIconDesc": "Endlich ein neues App-Icon, das unserer Meinung nach unser Werk am besten repräsentiert. Zudem ist es möglich, weiterhin das alte App-Icon zu verwenden.", - "cLMemories": "Erinnerungen", - "cLMemoriesDesc": "Entdecke Deine besonderen Momente neu – Spot auf Deine liebsten Personen, Deine Reisen und Urlaube, Deine besten Schnappschüsse und vieles mehr. Aktiviere das maschinelle Lernen, tagge Dich selbst und benenne Deine Freunde für die besten Ergebnisse.", - "cLWidgets": "Widgets", - "cLWidgetsDesc": "Homescreen-Widgets mit integrierten Erinnerungen sind nun verfügbar. Sie zeigen dir deine besonderen Momente an, ohne die App zu öffnen.", - "cLFamilyPlan": "Obergrenzen für den Familientarif", - "cLFamilyPlanDesc": "Du kannst jetzt festlegen, wie viel Speicherplatz deine Familienmitglieder nutzen können.", - "cLBulkEdit": "Massenbearbeitung von Datumsangaben", - "cLBulkEditDesc": "Du kannst jetzt mehrere Fotos auswählen, und das Datum/Uhrzeit für alle mit einer Aktion ändern. Das Verschieben von Daten wird auch unterstützt.", "curatedMemories": "Ausgewählte Erinnerungen", "onThisDay": "An diesem Tag", "deleteMultipleAlbumDialog": "Sollen die Fotos (und Videos) aus diesen {count} Alben auch aus allen anderen Alben gelöscht werden, in denen sie enthalten sind?", diff --git a/mobile/lib/l10n/intl_es.arb b/mobile/lib/l10n/intl_es.arb index f5348065ba..665724372d 100644 --- a/mobile/lib/l10n/intl_es.arb +++ b/mobile/lib/l10n/intl_es.arb @@ -1724,15 +1724,5 @@ "onTheRoad": "De nuevo en la carretera", "food": "Delicia culinaria", "pets": "Compañeros peludos", - "cLIcon": "Nuevo ícono", - "cLIconDesc": "Por fin, un nuevo icono de la aplicación, que creemos que representa mejor nuestro trabajo. También hemos añadido una opción para que puedas seguir utilizando el icono anterior.", - "cLMemories": "Recuerdos", - "cLMemoriesDesc": "Redescubre tus momentos especiales: enfócate en tu gente favorita, tus viajes y vacaciones, tus mejores clics, y mucho más. Activa el aprendizaje de automático, etiquétate a ti mismo y etiqueta a tus amigos para la mejor experiencia.", - "cLWidgets": "Widgets", - "cLWidgetsDesc": "Ya están disponibles los widgets de pantalla de inicio con tus recuerdos. Podrás ver tus momentos especiales sin abrir la aplicación.", - "cLFamilyPlan": "Límites de plan familiar", - "cLFamilyPlanDesc": "Ahora puede establecer límites en cuanto al almacenamiento que los miembros de tu familia pueden utilizar.", - "cLBulkEdit": "Edición masiva de fechas", - "cLBulkEditDesc": "Ahora puedes seleccionar múltiples fotos y editar la fecha/hora para todas ellas con una acción rápida. También es posible cambiar las fechas.", "curatedMemories": "Memorias revisadas" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_fr.arb b/mobile/lib/l10n/intl_fr.arb index 3f4dc5004c..e3983fcbb4 100644 --- a/mobile/lib/l10n/intl_fr.arb +++ b/mobile/lib/l10n/intl_fr.arb @@ -794,6 +794,14 @@ "share": "Partager", "unhideToAlbum": "Afficher dans l'album", "restoreToAlbum": "Restaurer vers l'album", + "moveItem": "{count, plural,=1 {Déplacer un élément} other {Déplacer des éléments}}", + "@moveItem": { + "description": "Page title while moving one or more items to an album" + }, + "addItem": "{count, plural, =1 {Ajouter un élément} other {Ajouter des éléments}}", + "@addItem": { + "description": "Page title while adding one or more items to album" + }, "createOrSelectAlbum": "Créez ou sélectionnez un album", "selectAlbum": "Sélectionner album", "searchByAlbumNameHint": "Nom de l'album", @@ -1722,16 +1730,6 @@ "onTheRoad": "De nouveau sur la route", "food": "Plaisir culinaire", "pets": "Compagnons à quatre pattes", - "cLIcon": "Nouvel icône", - "cLIconDesc": "Finalement, création d'un nouvel icône d'application qui, selon nous, représente au mieux notre travail. Nous avons également ajouté un changeur d'icône pour que vous puissiez continuer à utiliser l'ancien.", - "cLMemories": "Souvenirs", - "cLMemoriesDesc": "Redécouvrez vos précieux souvenirs - focus sur vos connaissances préférées, vos voyages et vos vacances, vos meilleurs clics et bien plus encore. Activez l'apprentissage automatique, taguez-vous et nommez vos amis pour une meilleure expérience.", - "cLWidgets": "Widgets", - "cLWidgetsDesc": "Les widgets (ou gadgets) de l'écran d'accueil, qui sont intégrés à des souvenirs, sont maintenant disponibles. Ils montreront vos moments spéciaux sans nécessité d'ouvrir l'application.", - "cLFamilyPlan": "Limites pour le forfait Famille", - "cLFamilyPlanDesc": "Vous pouvez maintenant fixer des limites sur la quantité de stockage que les membres de votre famille peuvent utiliser.", - "cLBulkEdit": "Dates de modification multiples", - "cLBulkEditDesc": "Vous pouvez maintenant sélectionner plusieurs photos et modifier la date/heure pour toutes celles-ci, en une seule action rapide. Les dates de décalage sont également prises en charge.", "curatedMemories": "Souvenirs conservés", "onThisDay": "Ce jour-ci", "deleteMultipleAlbumDialog": "Supprimer également les photos (et les vidéos) présentes dans ces {count} albums de tous les autres albums dont ils font partie ?", diff --git a/mobile/lib/l10n/intl_id.arb b/mobile/lib/l10n/intl_id.arb index 4515504579..9beff51a08 100644 --- a/mobile/lib/l10n/intl_id.arb +++ b/mobile/lib/l10n/intl_id.arb @@ -1,7 +1,9 @@ { "@@locale ": "en", "enterYourEmailAddress": "Masukkan alamat email kamu", + "enterYourNewEmailAddress": "Masukkan alamat email baru anda", "accountWelcomeBack": "Selamat datang kembali!", + "emailAlreadyRegistered": "Email sudah terdaftar.", "email": "Email", "cancel": "Batal", "verify": "Verifikasi", diff --git a/mobile/lib/l10n/intl_ja.arb b/mobile/lib/l10n/intl_ja.arb index e4082bd51b..63a175ed0f 100644 --- a/mobile/lib/l10n/intl_ja.arb +++ b/mobile/lib/l10n/intl_ja.arb @@ -1666,15 +1666,5 @@ "moon": "月明かりの中", "onTheRoad": "再び道で", "food": "料理を楽しむ", - "pets": "毛むくじゃらな仲間たち", - "cLIcon": "新しいアイコン", - "cLIconDesc": "新しいアプリのアイコンが登場です!ちなみに、古いアイコンが好きだった人のためにアイコンの切り替え機能も用意がございます。", - "cLMemories": "思い出", - "cLMemoriesDesc": "あなたにとって特別な瞬間を再発見しましょう。 - あなたの好きな人々、あなたの旅行や休日。 機械学習をオンにすると、自分自身にタグを付けたり、友達の顔に名前をつけたりすることができます。", - "cLWidgets": "ウィジェット", - "cLWidgetsDesc": "Enteの「思い出」機能と統合されたホーム画面ウィジェットが利用可能になりました!", - "cLFamilyPlan": "ファミリープランの制限", - "cLFamilyPlanDesc": "ファミリーメンバーが使用できるストレージ容量の制限を設定できるようになりました。", - "cLBulkEdit": "日付を一括編集", - "cLBulkEditDesc": "複数の写真を、1回の操作で日付/時刻を編集することもできるようになりました。" + "pets": "毛むくじゃらな仲間たち" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_lt.arb b/mobile/lib/l10n/intl_lt.arb index 5b71c6fba1..3996e8b997 100644 --- a/mobile/lib/l10n/intl_lt.arb +++ b/mobile/lib/l10n/intl_lt.arb @@ -1,6 +1,7 @@ { "@@locale ": "en", "enterYourEmailAddress": "Įveskite savo el. pašto adresą", + "enterYourNewEmailAddress": "Įveskite savo naują el. pašto adresą", "accountWelcomeBack": "Sveiki sugrįžę!", "emailAlreadyRegistered": "El. paštas jau užregistruotas.", "emailNotRegistered": "El. paštas neregistruotas.", @@ -156,7 +157,7 @@ "confirmYourRecoveryKey": "Patvirtinkite savo atkūrimo raktą", "addViewer": "Pridėti žiūrėtoją", "addCollaborator": "Pridėti bendradarbį", - "addANewEmail": "Pridėti naują el. paštą", + "addANewEmail": "Įtraukite naują el. paštą", "orPickAnExistingOne": "Arba pasirinkite esamą", "collaboratorsCanAddPhotosAndVideosToTheSharedAlbum": "Bendradarbiai gali pridėti nuotraukų ir vaizdo įrašų į bendrintą albumą.", "enterEmail": "Įveskite el. paštą", @@ -561,7 +562,7 @@ "referrals": "Rekomendacijos", "notifications": "Pranešimai", "sharedPhotoNotifications": "Naujos bendrintos nuotraukos", - "sharedPhotoNotificationsExplanation": "Gaukite pranešimus, kai kas nors prideda nuotrauką į bendrinamą albumą, kuriame dalyvaujate.", + "sharedPhotoNotificationsExplanation": "Gaukite pranešimus, kai kas nors įtraukia nuotrauką į bendrinamą albumą, kuriame dalyvaujate.", "advanced": "Išplėstiniai", "general": "Bendrieji", "security": "Saugumas", @@ -859,6 +860,7 @@ "toHideAPhotoOrVideo": "Kad paslėptumėte nuotrauką ar vaizdo įrašą", "openTheItem": "• Atverkite elementą.", "clickOnTheOverflowMenu": "• Spustelėkite ant perpildymo meniu", + "click": "• Spauskite", "nothingToSeeHere": "Čia nėra nieko, ką pamatyti. 👀", "unarchiveAlbum": "Išarchyvuoti albumą", "archiveAlbum": "Archyvuoti albumą", @@ -913,6 +915,21 @@ } } }, + "filesBackedUpFromDevice": "{count, plural, one {{formattedNumber} failas šiame įrenginyje saugiai sukurta atsarginė kopija} few {{formattedNumber} failai šiame įrenginyje saugiai sukurtos atsarginės kopijos} many {{formattedNumber} failo šiame įrenginyje saugiai sukurtos atsargines kopijos} other {{formattedNumber} failų šiame įrenginyje saugiai sukurta atsarginių kopijų}}.", + "@filesBackedUpFromDevice": { + "description": "Text to tell user how many files have been backed up from this device", + "placeholders": { + "count": { + "example": "1", + "type": "int" + }, + "formattedNumber": { + "content": "{formattedNumber}", + "example": "1,000", + "type": "String" + } + } + }, "@freeUpSpaceSaving": { "description": "Text to tell user how much space they can free up by deleting items from the device" }, @@ -936,6 +953,9 @@ "theRecoveryKeyYouEnteredIsIncorrect": "Įvestas atkūrimo raktas yra neteisingas.", "twofactorAuthenticationSuccessfullyReset": "Dvigubas tapatybės nustatymas sėkmingai iš naujo nustatytas.", "pleaseVerifyTheCodeYouHaveEntered": "Patvirtinkite įvestą kodą.", + "pleaseContactSupportIfTheProblemPersists": "Jei problema išlieka, susisiekite su pagalbos komanda.", + "twofactorAuthenticationHasBeenDisabled": "Dvigubas tapatybės nustatymas išjungtas.", + "sorryTheCodeYouveEnteredIsIncorrect": "Atsiprašome, įvestas kodas yra neteisingas.", "yourVerificationCodeHasExpired": "Jūsų patvirtinimo kodas nebegaliojantis.", "emailChangedTo": "El. paštas pakeistas į {newEmail}", "verifying": "Patvirtinama...", @@ -972,12 +992,20 @@ "successfullyArchived": "Sėkmingai suarchyvuota", "successfullyUnarchived": "Sėkmingai išarchyvuota", "renameFile": "Pervadinti failą", + "enterFileName": "Įveskite failo pavadinimą", + "filesDeleted": "Failai ištrinti", "selectedFilesAreNotOnEnte": "Pasirinkti failai nėra platformoje „Ente“", + "thisActionCannotBeUndone": "Šio veiksmo negalima anuliuoti.", "emptyTrash": "Ištuštinti šiukšlinę?", + "permDeleteWarning": "Visi elementai šiukšlinėje bus negrįžtamai ištrinti.\n\nŠio veiksmo negalima anuliuoti.", "empty": "Ištuštinti", "couldNotFreeUpSpace": "Nepavyko atlaisvinti vietos.", "permanentlyDeleteFromDevice": "Ištrinti negrįžtamai iš įrenginio?", "someOfTheFilesYouAreTryingToDeleteAre": "Kai kurie failai, kuriuos bandote ištrinti, yra pasiekiami tik jūsų įrenginyje ir jų negalima atkurti, jei jie buvo ištrinti.", + "theyWillBeDeletedFromAllAlbums": "Jie bus ištrinti iš visų albumų.", + "someItemsAreInBothEnteAndYourDevice": "Kai kurie elementai yra ir platformoje „Ente“ bei jūsų įrenginyje.", + "selectedItemsWillBeDeletedFromAllAlbumsAndMoved": "Pasirinkti elementai bus ištrinti iš visų albumų ir perkelti į šiukšlinę.", + "theseItemsWillBeDeletedFromYourDevice": "Šie elementai bus ištrinti iš jūsų įrenginio.", "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": "Atrodo, kad kažkas nutiko ne taip. Bandykite pakartotinai po kurio laiko. Jei klaida tęsiasi, susisiekite su mūsų palaikymo komanda.", "error": "Klaida", "tempErrorContactSupportIfPersists": "Atrodo, kad kažkas nutiko ne taip. Bandykite dar kartą po kurio laiko. Jei klaida tęsiasi, susisiekite su mūsų palaikymo komanda.", @@ -998,7 +1026,10 @@ "pleaseSendTheLogsTo": "Siųskite žurnalus adresu\n{toEmail}", "copyEmailAddress": "Kopijuoti el. pašto adresą", "exportLogs": "Eksportuoti žurnalus", + "pleaseEmailUsAt": "Siųskite el. laišką mums adresu {toEmail}.", + "dismiss": "Atmesti", "didYouKnow": "Ar žinojote?", + "loadingMessage": "Įkeliamos jūsų nuotraukos...", "loadMessage1": "Galite bendrinti savo prenumeratą su šeima.", "loadMessage2": "Iki šiol išsaugojome daugiau nei 200 milijonų prisiminimų.", "loadMessage3": "Laikome 3 jūsų duomenų kopijas, vieną iš jų – požeminėje priešgaisrinėje slėptuvėje.", @@ -1008,28 +1039,48 @@ "loadMessage7": "Mūsų mobiliosios programos veikia fone, kad užšifruotų ir sukurtų atsarginę kopiją visų naujų nuotraukų, kurias spustelėjate.", "loadMessage8": "web.ente.io turi sklandų įkėlėją", "loadMessage9": "Naudojame „Xchacha20Poly1305“, kad saugiai užšifruotume jūsų duomenis.", + "photoDescriptions": "Nuotraukų aprašai", + "fileTypesAndNames": "Failų tipai ir pavadinimai", "location": "Vietovė", "moments": "Akimirkos", + "searchFaceEmptySection": "Asmenys bus rodomi čia, kai bus užbaigtas indeksavimas.", + "searchDatesEmptySection": "Ieškokite pagal datą, mėnesį arba metus", "searchLocationEmptySection": "Grupės nuotraukos, kurios padarytos tam tikru spinduliu nuo nuotraukos", "searchPeopleEmptySection": "Pakvieskite asmenis ir čia matysite visas jų bendrinamas nuotraukas.", + "searchAlbumsEmptySection": "Albumai", + "searchFileTypesAndNamesEmptySection": "Failų tipai ir pavadinimai", "searchCaptionEmptySection": "Pridėkite aprašymus, pavyzdžiui, „#kelionė“, į nuotraukos informaciją, kad greičiau jas čia rastumėte.", "language": "Kalba", "selectLanguage": "Pasirinkite kalbą", "locationName": "Vietovės pavadinimas", "addLocation": "Pridėti vietovę", + "groupNearbyPhotos": "Grupuoti netoliese nuotraukas", "kiloMeterUnit": "km", "addLocationButton": "Pridėti", + "radius": "Spindulys", "locationTagFeatureDescription": "Vietos žymė grupuoja visas nuotraukas, kurios buvo padarytos tam tikru spinduliu nuo nuotraukos", "galleryMemoryLimitInfo": "Galerijoje rodoma iki 1000 prisiminimų", - "centerPoint": "Vidurio taškas", + "save": "Išsaugoti", + "centerPoint": "Centro taškas", + "pickCenterPoint": "Pasirinkite centro tašką", + "useSelectedPhoto": "Naudoti pasirinktą nuotrauką", "resetToDefault": "Atkurti numatytąsias reikšmes", "@resetToDefault": { "description": "Button text to reset cover photo to default" }, "edit": "Redaguoti", "deleteLocation": "Ištrinti vietovę", + "rotateLeft": "Sukti į kairę", + "flip": "Apversti", + "rotateRight": "Sukti į dešinę", + "saveCopy": "Išsaugoti kopiją", "light": "Šviesi", "color": "Spalva", + "yesDiscardChanges": "Taip, atmesti pakeitimus", + "doYouWantToDiscardTheEditsYouHaveMade": "Ar norite atmesti atliktus pakeitimus?", + "saving": "Išsaugoma...", + "editsSaved": "Redagavimai išsaugoti", + "oopsCouldNotSaveEdits": "Ups, nepavyko išsaugoti redagavimų.", "distanceInKMUnit": "km", "@distanceInKMUnit": { "description": "Unit for distance in km" @@ -1038,10 +1089,16 @@ "dayYesterday": "Vakar", "storage": "Saugykla", "usedSpace": "Naudojama vieta", + "storageBreakupFamily": "Šeima", "storageBreakupYou": "Jūs", "@storageBreakupYou": { "description": "Label to indicate how much storage you are using when you are part of a family plan" }, + "storageUsageInfo": "{usedAmount} {usedStorageUnit} iš {totalAmount} {totalStorageUnit} naudojama", + "@storageUsageInfo": { + "description": "Example: 1.2 GB of 2 GB used or 100 GB or 2TB used" + }, + "availableStorageSpace": "{freeAmount} {storageUnit} laisva", "appVersion": "Versija: {versionValue}", "verifyIDLabel": "Patvirtinti", "fileInfoAddDescHint": "Pridėti aprašymą...", @@ -1050,12 +1107,21 @@ "@setLabel": { "description": "Label of confirm button to add a new custom radius to the radius selector of a location tag" }, + "setRadius": "Nustatyti spindulį", "familyPlanPortalTitle": "Šeima", "familyPlanOverview": "Įtraukite 5 šeimos narius į jūsų esamą planą nemokėdami papildomai.\n\nKiekvienas narys gauna savo asmeninę vietą ir negali matyti vienas kito failų, nebent jie bendrinami.\n\nŠeimos planai pasiekiami klientams, kurie turi mokamą „Ente“ prenumeratą.\n\nPrenumeruokite dabar, kad pradėtumėte!", "androidBiometricHint": "Patvirtinkite tapatybę", "@androidBiometricHint": { "description": "Hint message advising the user how to authenticate with biometrics. It is used on Android side. Maximum 60 characters." }, + "androidBiometricNotRecognized": "Neatpažinta. Bandykite dar kartą.", + "@androidBiometricNotRecognized": { + "description": "Message to let the user know that authentication was failed. It is used on Android side. Maximum 60 characters." + }, + "androidBiometricSuccess": "Sėkmė", + "@androidBiometricSuccess": { + "description": "Message to let the user know that authentication was successful. It is used on Android side. Maximum 60 characters." + }, "androidCancelButton": "Atšaukti", "@androidCancelButton": { "description": "Message showed on a button that the user can click to leave the current dialog. It is used on Android side. Maximum 30 characters." @@ -1096,6 +1162,8 @@ "@iOSOkButton": { "description": "Message showed on a button that the user can click to leave the current dialog. It is used on iOS side. Maximum 30 characters." }, + "openstreetmapContributors": "„OpenStreetMap“ bendradarbiai", + "hostedAtOsmFrance": "Talpinama OSM Prancūzijoje", "map": "Žemėlapis", "@map": { "description": "Label for the map view" @@ -1103,15 +1171,32 @@ "maps": "Žemėlapiai", "enableMaps": "Įjungti žemėlapius", "enableMapsDesc": "Tai parodys jūsų nuotraukas pasaulio žemėlapyje.\n\nŠį žemėlapį talpina „OpenStreetMap“, o tiksliomis nuotraukų vietovėmis niekada nebendrinama.\n\nŠią funkciją bet kada galite išjungti iš nustatymų.", + "quickLinks": "Sparčios nuorodos", + "selectItemsToAdd": "Pasirinkite elementus įtraukti", + "addSelected": "Pridėti pasirinktus", + "addFromDevice": "Pridėti iš įrenginio", + "addPhotos": "Įtraukti nuotraukų", + "noPhotosFoundHere": "Nuotraukų čia nerasta", + "zoomOutToSeePhotos": "Padidinkite mastelį, kad matytumėte nuotraukas", "noImagesWithLocation": "Nėra vaizdų su vietove", "unpinAlbum": "Atsegti albumą", "pinAlbum": "Prisegti albumą", "create": "Kurti", "viewAll": "Peržiūrėti viską", "nothingSharedWithYouYet": "Kol kas su jumis niekuo nesibendrinama.", + "noAlbumsSharedByYouYet": "Dar nėra albumų, kuriais bendrinotės.", "sharedWithYou": "Bendrinta su jumis", "sharedByYou": "Bendrinta iš jūsų", + "inviteYourFriendsToEnte": "Pakvieskite savo draugus į „Ente“", + "failedToDownloadVideo": "Nepavyko atsisiųsti vaizdo įrašo.", "hiding": "Slepiama...", + "unhiding": "Rodoma...", + "successfullyHid": "Sėkmingai paslėptas", + "successfullyUnhid": "Sėkmingai atslėptas", + "crashReporting": "Pranešti apie strigčius", + "resumableUploads": "Tęstiniai įkėlimai", + "addToHiddenAlbum": "Įtraukti į paslėptą albumą", + "moveToHiddenAlbum": "Perkelti į paslėptą albumą", "fileTypes": "Failų tipai", "deleteConfirmDialogBody": "Ši paskyra susieta su kitomis „Ente“ programomis, jei jas naudojate. Jūsų įkelti duomenys per visas „Ente“ programas bus planuojama ištrinti, o jūsų paskyra bus ištrinta negrįžtamai.", "hearUsWhereTitle": "Kaip išgirdote apie „Ente“? (nebūtina)", @@ -1120,14 +1205,18 @@ "addOns": "Priedai", "addOnPageSubtitle": "Išsami informacija apie priedus", "yourMap": "Jūsų žemėlapis", + "modifyYourQueryOrTrySearchingFor": "Modifikuokite užklausą arba bandykite ieškoti", "blackFridaySale": "Juodojo penktadienio išpardavimas", "upto50OffUntil4thDec": "Iki 50% nuolaida, gruodžio 4 d.", "photos": "Nuotraukos", "videos": "Vaizdo įrašai", "livePhotos": "Gyvos nuotraukos", + "searchHint1": "Sparti paieška įrenginyje", + "searchHint2": "Nuotraukų datos ir aprašai", "searchHint3": "Albumai, failų pavadinimai ir tipai", "searchHint4": "Vietovė", "searchHint5": "Jau netrukus: veidų ir magiškos paieškos ✨", + "addYourPhotosNow": "Įtraukite savo nuotraukas dabar", "searchResultCount": "{count, plural, one{Rastas {count} rezultatas} other{Rasta {count} rezultatų}}", "@searchResultCount": { "description": "Text to tell user how many results were found for their search query", @@ -1140,6 +1229,7 @@ }, "faces": "Veidai", "people": "Asmenys", + "contents": "Turinys", "addNew": "Pridėti naują", "@addNew": { "description": "Text to add a new item (location tag, album, caption etc)" @@ -1147,7 +1237,9 @@ "contacts": "Kontaktai", "noInternetConnection": "Nėra interneto ryšio", "pleaseCheckYourInternetConnectionAndTryAgain": "Patikrinkite savo interneto ryšį ir bandykite dar kartą.", + "signOutFromOtherDevices": "Atsijungti iš kitų įrenginių", "signOutOtherBody": "Jei manote, kad kas nors gali žinoti jūsų slaptažodį, galite priverstinai atsijungti iš visų kitų įrenginių, naudojančių jūsų paskyrą.", + "signOutOtherDevices": "Atsijungti kitus įrenginius", "doNotSignOut": "Neatsijungti", "editLocation": "Redaguoti vietovę", "selectALocation": "Pasirinkite vietovę", @@ -1190,6 +1282,8 @@ "createCollaborativeLink": "Kurti bendradarbiavimo nuorodą", "search": "Ieškokite", "enterPersonName": "Įveskite asmens vardą", + "editEmailAlreadyLinked": "Šis el. paštas jau susietas su {name}.", + "viewPersonToUnlink": "Peržiūrėkite {name}, kad atsietumėte", "enterName": "Įveskite vardą", "savePerson": "Išsaugoti asmenį", "editPerson": "Redaguoti asmenį", @@ -1202,6 +1296,7 @@ "manualPairDesc": "Susieti su PIN kodu veikia bet kuriame ekrane, kuriame norite peržiūrėti albumą.", "connectToDevice": "Prijungti prie įrenginio", "autoCastDialogBody": "Čia matysite pasiekiamus perdavimo įrenginius.", + "autoCastiOSPermission": "Įsitikinkite, kad programai „Ente“ nuotraukos yra įjungti vietinio tinklo leidimai, nustatymuose.", "noDeviceFound": "Įrenginys nerastas", "stopCastingTitle": "Stabdyti perdavimą", "stopCastingBody": "Ar norite sustabdyti perdavimą?", @@ -1222,6 +1317,7 @@ "right": "Dešinė", "whatsNew": "Kas naujo", "reviewSuggestions": "Peržiūrėti pasiūlymus", + "review": "Peržiūrėti", "useAsCover": "Naudoti kaip viršelį", "notPersonLabel": "Ne {name}?", "@notPersonLabel": { @@ -1299,6 +1395,7 @@ "configuration": "Konfiguracija", "localIndexing": "Vietinis indeksavimas", "processed": "Apdorota", + "resetPerson": "Šalinti", "areYouSureYouWantToResetThisPerson": "Ar tikrai norite iš naujo nustatyti šį asmenį?", "allPersonGroupingWillReset": "Visi šio asmens grupavimai bus iš naujo nustatyti, o jūs neteksite visų šiam asmeniui pateiktų pasiūlymų", "yesResetPerson": "Taip, nustatyti asmenį iš naujo", @@ -1307,6 +1404,16 @@ "enableMachineLearningBanner": "Įjunkite mašininį mokymąsi magiškai paieškai ir veidų atpažinimui", "searchDiscoverEmptySection": "Vaizdai bus rodomi čia, kai bus užbaigtas apdorojimas ir sinchronizavimas.", "searchPersonsEmptySection": "Asmenys bus rodomi čia, kai bus užbaigtas apdorojimas ir sinchronizavimas.", + "viewersSuccessfullyAdded": "{count, plural, one {Įtrauktas {count} žiūrėtojas} few {Įtraukti {count} žiūrėtojai} many {Įtraukta {count} žiūrėtojo} =0 {Įtraukta 0 žiūrėtojų} =1 {Įtrauktas 1 žiūrėtojas} other {Įtraukta {count} žiūrėtojų}}", + "@viewersSuccessfullyAdded": { + "placeholders": { + "count": { + "type": "int", + "example": "2" + } + }, + "description": "Number of viewers that were successfully added to an album." + }, "collaboratorsSuccessfullyAdded": "{count, plural, =0 {Pridėta 0 bendradarbių} =1 {Pridėtas 1 bendradarbis} other {Pridėta {count} bendradarbių}}", "@collaboratorsSuccessfullyAdded": { "placeholders": { @@ -1382,6 +1489,15 @@ }, "currentlyRunning": "šiuo metu vykdoma", "ignored": "ignoruota", + "photosCount": "{count, plural, one {{count} nuotrauka} few {{count} nuotraukos} many {{count} nuotraukos} =0 {0 nuotraukų} =1 {1 nuotrauka} other {{count} nuotraukų}}", + "@photosCount": { + "placeholders": { + "count": { + "type": "int", + "example": "2" + } + } + }, "file": "Failas", "searchSectionsLengthMismatch": "Sekcijų ilgio neatitikimas: {snapshotLength} != {searchLength}", "@searchSectionsLengthMismatch": { @@ -1458,7 +1574,7 @@ "trustedInviteBody": "Buvote pakviesti tapti {email} palikimo kontaktu.", "warning": "Įspėjimas", "proceed": "Tęsti", - "confirmAddingTrustedContact": "Ketinate pridėti {email} kaip patikimą kontaktą. Jie galės atkurti jūsų paskyrą, jei jūsų nebus {numOfDays} dienų.", + "confirmAddingTrustedContact": "Ketinate įtraukti {email} kaip patikimą kontaktą. Jie galės atkurti jūsų paskyrą, jei jūsų nebus {numOfDays} dienų.", "@confirmAddingTrustedContact": { "placeholders": { "email": { @@ -1502,7 +1618,21 @@ } } }, + "reassignMe": "Perskirstyti „Aš“", "me": "Aš", + "linkEmailToContactBannerCaption": "spartesniam bendrinimui", + "@linkEmailToContactBannerCaption": { + "description": "Caption for the 'Link email' title. It should be a continuation of the 'Link email' title. Just like how 'Link email' + 'for faster sharing' forms a proper sentence in English, the combination of these two strings should also be a proper sentence in other languages." + }, + "selectPersonToLink": "Pasirinkite asmenį, kurį susieti.", + "linkPersonToEmail": "Susieti asmenį su {email}", + "@linkPersonToEmail": { + "placeholders": { + "email": { + "type": "String" + } + } + }, "linkPersonToEmailConfirmation": "Tai susies {personName} su {email}.", "@linkPersonToEmailConfirmation": { "description": "Confirmation message when linking a person to an email", @@ -1515,6 +1645,8 @@ } } }, + "selectYourFace": "Pasirinkite savo veidą", + "reassigningLoading": "Perskirstoma...", "reassignedToName": "Perskirstė jus į {name}", "@reassignedToName": { "placeholders": { @@ -1527,7 +1659,7 @@ "dontSave": "Neišsaugoti", "thisIsMeExclamation": "Tai aš!", "linkPerson": "Susiekite asmenį,", - "linkPersonCaption": "kad geriau bendrintumėte patirtį", + "linkPersonCaption": "geresniam bendrinimo patirčiai", "@linkPersonCaption": { "description": "Caption for the 'Link person' title. It should be a continuation of the 'Link person' title. Just like how 'Link person' + 'for better sharing experience' forms a proper sentence in English, the combination of these two strings should also be a proper sentence in other languages." }, @@ -1572,7 +1704,20 @@ "thisWeekXYearsAgo": "{count, plural, =1 {Šią savaitę, prieš {count} metus} other {Šią savaitę, prieš {count} metų}}", "youAndThem": "Jūs ir {name}", "admiringThem": "Žavisi {name}", + "embracingThem": "Apkabinat {name}", + "partyWithThem": "Vakarėlis su {name}", + "hikingWithThem": "Žygiavimas su {name}", + "feastingWithThem": "Vaišiavimas su {name}", + "selfiesWithThem": "Asmenukės su {name}", + "posingWithThem": "Pozavimas su {name}", "backgroundWithThem": "Gražūs vaizdai su {name}", + "sportsWithThem": "Sportai su {name}", + "roadtripWithThem": "Kelionė su {name}", + "spotlightOnYourself": "Dėmesys į save", + "spotlightOnThem": "Dėmesys {name}", + "personIsAge": "{name} yra {age} m.!", + "personTurningAge": "{name} netrukus sulauks {age} m.", + "lastTimeWithThem": "Paskutinį kartą su {name}", "tripToLocation": "Kelionė į {location}", "tripInYear": "Kelionė per {year}", "lastYearsTrip": "Pastarųjų metų kelionė", @@ -1584,16 +1729,11 @@ "moon": "Mėnulio šviesoje", "onTheRoad": "Vėl kelyje", "food": "Kulinarinis malonumas", - "cLIcon": "Nauja piktograma", - "cLIconDesc": "Pagaliau – nauja programos piktograma, kuri, mūsų manymu, geriausiai atspindi mūsų kūrybą. Taip pat pridėjome piktogramos perjungiklį, tad galite ir toliau naudoti senąją piktogramą.", - "cLMemories": "Prisiminimai", - "cLMemoriesDesc": "Iš naujo atraskite ypatingas akimirkas – atkreipkite dėmesį į mėgstamus asmenis, keliones ir atostogas, geriausias nuotraukas bei daug daugiau. Įjunkite mašininį mokymąsi, pažymėkite save ir įvardykite draugus dėl geriausios patirties.", - "cLWidgets": "Valdikliai", - "cLWidgetsDesc": "Dabar galima naudoti su prisiminimais integruotus pagrindinio ekrano valdiklius. Jie parodys jūsų ypatingas akimirkas neatvėrus programos.", - "cLFamilyPlan": "Šeimos plano ribos", - "cLFamilyPlanDesc": "Dabar galite nustatyti ribas, kiek saugyklos gali naudoti jūsų šeimos nariai.", - "cLBulkEdit": "Masiškai redaguokite datas", - "cLBulkEditDesc": "Dabar galite pasirinkti kelias nuotraukas ir vienu sparčiu veiksmu redaguoti visų nuotraukų datą ir laiką. Taip pat palaikomas datų perkėlimas.", + "pets": "Furio draugai", "curatedMemories": "Kuruoti prisiminimai", - "onThisDay": "Šią dieną" + "onThisDay": "Šią dieną", + "deleteMultipleAlbumDialog": "Taip pat ištrinti nuotraukas (ir vaizdo įrašus), esančias šiuose {count} albumuose, iš visų kitų albumų, kuriuose jos yra dalis?", + "addParticipants": "Įtraukti dalyvių", + "selectedAlbums": "{count} pasirinkta", + "actionNotSupportedOnFavouritesAlbum": "Veiksmas nepalaikomas Mėgstamų albume." } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_nl.arb b/mobile/lib/l10n/intl_nl.arb index 2afe314f56..8e313bfcb3 100644 --- a/mobile/lib/l10n/intl_nl.arb +++ b/mobile/lib/l10n/intl_nl.arb @@ -1730,16 +1730,6 @@ "onTheRoad": "Onderweg", "food": "Culinaire vreugde", "pets": "Harige kameraden", - "cLIcon": "Nieuw icoon", - "cLIconDesc": "Tot slot, een nieuwe app icoon waarvan we denken dat het ons werk het beste weergeeft. We hebben ook een icon-switcher toegevoegd zodat je het oude icoon kunt blijven gebruiken.", - "cLMemories": "Herinneringen", - "cLMemoriesDesc": "Ontdek nog eens je speciale momenten - spotlicht op je favoriete mensen, op je reizen en vakanties, op de beste plaatjes, en nog veel meer. Zet Machine Learning aan, tag jezelf en benoem je vrienden voor de beste ervaring.", - "cLWidgets": "Widgets", - "cLWidgetsDesc": "Widgets die zijn geïntegreerd met herinneringen zijn nu beschikbaar. Ze tonen je speciale momenten zonder de app te openen.", - "cLFamilyPlan": "Familieplan limieten", - "cLFamilyPlanDesc": "Je kunt nu limieten instellen voor hoeveel opslag je familieleden kunnen gebruiken.", - "cLBulkEdit": "Bulk datums wijzigen", - "cLBulkEditDesc": "Je kunt nu meerdere foto's selecteren en de datum/tijd van ze allemaal bewerken met één snelle actie. Verschuiven van datums wordt ook ondersteund.", "curatedMemories": "Samengestelde herinneringen", "onThisDay": "Op deze dag", "deleteMultipleAlbumDialog": "Verwijder de foto's (en video's) van deze {count} albums ook uit alle andere albums waar deze deel van uitmaken?", diff --git a/mobile/lib/l10n/intl_no.arb b/mobile/lib/l10n/intl_no.arb index f6d8a704c3..b5c93dab92 100644 --- a/mobile/lib/l10n/intl_no.arb +++ b/mobile/lib/l10n/intl_no.arb @@ -1689,15 +1689,5 @@ "moon": "I månelyset", "onTheRoad": "På veien igjen", "food": "Kulinær glede", - "pets": "Pelsvenner", - "cLIcon": "Nytt ikon", - "cLIconDesc": "Endelig er et nytt appikon, som vi tror best representerer arbeidet vårt. Vi har også lagt til en icon-switcher slik at du kan fortsette å bruke det gamle ikonet.", - "cLMemories": "Minner", - "cLMemoriesDesc": "Gjenoppdag dine spesielle øyeblikk - fremhev dine favorittpersoner, dine turer og ferier, de beste bildene dine, og mye mer. Skru på maskinlæring, merk deg selv og navngi vennene dine for best mulig opplevelse.", - "cLWidgets": "Widgeter", - "cLWidgetsDesc": "Hjemmeskjermwidgeter som er integrert med minner er nå tilgjengelige. De vil vise dine spesielle øyeblikk uten å åpne appen.", - "cLFamilyPlan": "Begrensninger for familieabonnement", - "cLFamilyPlanDesc": "Du kan nå sette grenser for hvor mye lagringsplass familiemedlemmer kan bruke.", - "cLBulkEdit": "Masseendring av datoer", - "cLBulkEditDesc": "Du kan nå velge flere bilder, og redigere dato/klokkeslett for alle med en rask handling. Forskyving av datoer støttes også." + "pets": "Pelsvenner" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_pt_BR.arb b/mobile/lib/l10n/intl_pt_BR.arb index a8754df05f..3de37e2ca5 100644 --- a/mobile/lib/l10n/intl_pt_BR.arb +++ b/mobile/lib/l10n/intl_pt_BR.arb @@ -1730,16 +1730,6 @@ "onTheRoad": "Na estrada novamente", "food": "Amor por culinária", "pets": "Companhias peludas", - "cLIcon": "Novo Ícone", - "cLIconDesc": "Finalmente, um novo ícone para o ente que acreditamos que represente melhor nosso trabalho. Também, adicionamos um alterador de ícone para que você ainda consiga utilizar o ícone antigo.", - "cLMemories": "Memórias", - "cLMemoriesDesc": "Relembre momentos especiais - destaque pessoas favoritas, suas viagens e feriados, melhores fotos, e muito mais. Ative o aprendizado automático, marque-se e nomeie seus amigos para melhorar a experiência.", - "cLWidgets": "Widgets", - "cLWidgetsDesc": "Widgets integrados com memórias já estão disponíveis. Eles apareceram com seus melhores momentos sem precisar abrir o ente.", - "cLFamilyPlan": "Limites de planos familiares", - "cLFamilyPlanDesc": "Agora você pode definir um limite de quanto armazenamento os seus entes queridos podem usar.", - "cLBulkEdit": "Editar todas as datas", - "cLBulkEditDesc": "Agora você pode selecionar várias fotos, editar data e hora de todos com um só clique. Alternar datas também são suportados.", "curatedMemories": "Memórias restauradas", "onThisDay": "Neste dia", "deleteMultipleAlbumDialog": "E também excluir todas as fotos (e vídeos) presente dentro desses {count} álbuns e de todos os álbuns que eles fazem parte?", diff --git a/mobile/lib/l10n/intl_ru.arb b/mobile/lib/l10n/intl_ru.arb index b58ff60291..98bcdac583 100644 --- a/mobile/lib/l10n/intl_ru.arb +++ b/mobile/lib/l10n/intl_ru.arb @@ -1724,15 +1724,5 @@ "onTheRoad": "Снова в пути", "food": "Кулинарное наслаждение", "pets": "Пушистые спутники", - "cLIcon": "Новая иконка", - "cLIconDesc": "Наконец-то новая иконка приложения, которая, как мы считаем, лучше всего отражает нашу работу. Мы также добавили переключатель иконок, чтобы вы могли продолжать использовать старую иконку.", - "cLMemories": "Воспоминания", - "cLMemoriesDesc": "Откройте заново свои особенные моменты — в центре внимания ваши любимые люди, поездки и праздники, лучшие снимки и многое другое. Для наилучших впечатлений включите машинное обучение и отметьте себя и своих друзей.", - "cLWidgets": "Виджеты", - "cLWidgetsDesc": "Теперь доступны виджеты домашнего экрана, интегрированные с воспоминаниями. Они покажут ваши особенные моменты, не открывая приложения.", - "cLFamilyPlan": "Ограничения семейного тарифа", - "cLFamilyPlanDesc": "Теперь вы можете установить ограничения на объём хранилища, которое могут использовать члены вашей семьи.", - "cLBulkEdit": "Массовое редактирование дат", - "cLBulkEditDesc": "Теперь вы можете выбрать несколько фото и отредактировать дату/время быстро и сразу для всех. Также поддерживается смещение дат.", "curatedMemories": "Отобранные воспоминания" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_sr.arb b/mobile/lib/l10n/intl_sr.arb new file mode 100644 index 0000000000..c8494661c6 --- /dev/null +++ b/mobile/lib/l10n/intl_sr.arb @@ -0,0 +1,3 @@ +{ + "@@locale ": "en" +} \ No newline at end of file diff --git a/mobile/lib/l10n/intl_tr.arb b/mobile/lib/l10n/intl_tr.arb index c3ae396543..6aa4d6a317 100644 --- a/mobile/lib/l10n/intl_tr.arb +++ b/mobile/lib/l10n/intl_tr.arb @@ -1,6 +1,7 @@ { "@@locale ": "en", "enterYourEmailAddress": "E-posta adresinizi girin", + "enterYourNewEmailAddress": "Yeni e-posta adresinizi girin", "accountWelcomeBack": "Tekrar hoş geldiniz!", "emailAlreadyRegistered": "Bu e-posta adresi zaten kayıtlı.", "emailNotRegistered": "Bu e-posta adresi sistemde kayıtlı değil.", @@ -340,7 +341,7 @@ "deleteSharedAlbumDialogBody": "Albüm herkes için silinecek\n\nBu albümdeki başkalarına ait paylaşılan fotoğraflara erişiminizi kaybedeceksiniz", "yesRemove": "Evet, sil", "creatingLink": "Bağlantı oluşturuluyor...", - "removeWithQuestionMark": "Kaldır?", + "removeWithQuestionMark": "Kaldırılsın mı?", "removeParticipantBody": "{userEmail} bu paylaşılan albümden kaldırılacaktır\n\nOnlar tarafından eklenen tüm fotoğraflar da albümden kaldırılacaktır", "keepPhotos": "Fotoğrafları sakla", "deletePhotos": "Fotoğrafları sil", @@ -655,7 +656,7 @@ "askCancelReason": "Aboneliğiniz iptal edilmiştir. Bunun sebebini paylaşmak ister misiniz?", "thankYouForSubscribing": "Abone olduğunuz için teşekkürler!", "yourPurchaseWasSuccessful": "Satın alım başarılı", - "yourPlanWasSuccessfullyUpgraded": "Planınız başarılı şekilde yükseltildi", + "yourPlanWasSuccessfullyUpgraded": "Planınız başarıyla yükseltildi", "yourPlanWasSuccessfullyDowngraded": "Planınız başarıyla düşürüldü", "yourSubscriptionWasUpdatedSuccessfully": "Aboneliğiniz başarıyla güncellendi", "googlePlayId": "Google Play ID", @@ -700,7 +701,7 @@ "selectMorePhotos": "Daha Fazla Fotoğraf Seç", "existingUser": "Mevcut kullanıcı", "privateBackups": "Özel yedeklemeler", - "forYourMemories": "anıların için", + "forYourMemories": "anılarınız için", "endtoendEncryptedByDefault": "Varsayılan olarak uçtan uca şifrelenmiş", "safelyStored": "Güvenle saklanır", "atAFalloutShelter": "serpinti sığınağında", @@ -1729,15 +1730,10 @@ "onTheRoad": "Yeniden yollarda", "food": "Yemek keyfi", "pets": "Tüylü dostlar", - "cLIcon": "Yeni Simge", - "cLIconDesc": "Son olarak, çalışmalarımızı en iyi şekilde temsil ettiğini düşündüğümüz yeni bir uygulama simgesi. Eski simgeyi kullanmaya devam edebilmeniz için bir simge değiştirici de ekledik.", - "cLMemories": "Anılar", - "cLMemoriesDesc": "Özel anlarınızı yeniden keşfedin - en sevdiğiniz kişilere, seyahatlerinize ve tatillerinize, en iyi tıklamalarınıza ve çok daha fazlasına odaklanın. En iyi deneyim için makine öğrenimini açın, kendinizi etiketleyin ve arkadaşlarınızı adlandırın.", - "cLWidgets": "Widget'lar", - "cLWidgetsDesc": "Anılarla entegre edilmiş ana ekran widget'ları artık kullanılabilir. Uygulamayı açmadan özel anlarınızı gösterir.", - "cLFamilyPlan": "Aile Planı Sınırları", - "cLFamilyPlanDesc": "Artık aile üyelerinizin ne kadar depolama alanı kullanabileceğine dair sınırlar belirleyebilirsiniz.", - "cLBulkEdit": "Tarihleri toplu düzenle", - "cLBulkEditDesc": "Artık birden fazla fotoğraf seçebilir ve tek bir hızlı işlemle hepsi için tarih/saat düzenleyebilirsiniz. Tarih kaydırma da desteklenmektedir.", - "curatedMemories": "Seçilmiş anılar" + "curatedMemories": "Seçilmiş anılar", + "onThisDay": "Bu günde", + "deleteMultipleAlbumDialog": "Ayrıca bu {count} albümde bulunan fotoğrafları (ve videoları) parçası oldukları tüm diğer albümlerden silmek istiyor musunuz?", + "addParticipants": "Katılımcı ekle", + "selectedAlbums": "{count} seçildi", + "actionNotSupportedOnFavouritesAlbum": "Favoriler albümünde eylem desteklenmiyor" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_zh.arb b/mobile/lib/l10n/intl_zh.arb index b2b4649b1e..650f26d333 100644 --- a/mobile/lib/l10n/intl_zh.arb +++ b/mobile/lib/l10n/intl_zh.arb @@ -1723,15 +1723,5 @@ "moon": "月光之下", "onTheRoad": "再次踏上旅途", "food": "美食盛宴", - "pets": "毛茸茸的伙伴", - "cLIcon": "新图标", - "cLIconDesc": "终于迎来了一个全新的应用图标,我们认为它最能代表我们的作品。同时,我们还添加了图标切换功能,所以您可以继续使用旧图标。", - "cLMemories": "回忆", - "cLMemoriesDesc": "重新发现你的珍贵时刻——聚焦你最爱的亲友、旅行与假期、美妙瞬间等精彩回忆。启用机器学习,标记自己并为朋友命名,享受最佳体验。", - "cLWidgets": "小组件", - "cLWidgetsDesc": "全新首页小组件,与回忆深度集成。无需打开应用,即可在主屏幕上查看你的特别时刻。", - "cLFamilyPlan": "家庭计划存储限制", - "cLFamilyPlanDesc": "你现在可以为家庭成员设置存储空间使用上限。", - "cLBulkEdit": "批量编辑日期", - "cLBulkEditDesc": "你现在可以选择多张照片,一键批量修改日期/时间,并支持日期顺移。" + "pets": "毛茸茸的伙伴" } \ No newline at end of file From 9d87b8f3038d6bc03714341139e9bb97312d8328 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Mon, 2 Jun 2025 11:43:21 +0530 Subject: [PATCH 097/316] Rename to clarify Android --- .../machine_learning/machine_learning_controller.dart | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mobile/lib/services/machine_learning/machine_learning_controller.dart b/mobile/lib/services/machine_learning/machine_learning_controller.dart index 43b24dc9a5..6db75a232d 100644 --- a/mobile/lib/services/machine_learning/machine_learning_controller.dart +++ b/mobile/lib/services/machine_learning/machine_learning_controller.dart @@ -12,7 +12,7 @@ import "package:photos/events/machine_learning_control_event.dart"; class MachineLearningController { final _logger = Logger("MachineLearningController"); - static const kMaximumTemperature = 42; // 42 degree celsius + static const kMaximumTemperatureAndroid = 42; // 42 degree celsius static const kMinimumBatteryLevel = 20; // 20% final kDefaultInteractionTimeout = Duration(seconds: Platform.isIOS ? 5 : 15); static const kUnhealthyStates = ["over_heat", "over_voltage", "dead"]; @@ -109,7 +109,9 @@ class MachineLearningController { bool _computeIsAndroidDeviceHealthy(AndroidBatteryInfo info) { return _hasSufficientBattery(info.batteryLevel ?? kMinimumBatteryLevel) && - _isAcceptableTemperature(info.temperature ?? kMaximumTemperature) && + _isAcceptableTemperatureAndroid( + info.temperature ?? kMaximumTemperatureAndroid, + ) && _isBatteryHealthy(info.health ?? ""); } @@ -121,8 +123,8 @@ class MachineLearningController { return batteryLevel >= kMinimumBatteryLevel; } - bool _isAcceptableTemperature(int temperature) { - return temperature <= kMaximumTemperature; + bool _isAcceptableTemperatureAndroid(int temperature) { + return temperature <= kMaximumTemperatureAndroid; } bool _isBatteryHealthy(String health) { From 1d7baf9dd6e6c67ef70fcff9fe44591b684acd7d Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 3 Jun 2025 09:38:38 +0530 Subject: [PATCH 098/316] chore: remove unwanted author copyright --- mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift | 4 ---- mobile/ios/EnteMemoryWidget/EnteMemoryWidget.swift | 4 ---- mobile/ios/EntePeopleWidget/EntePeopleWidget.swift | 4 ---- 3 files changed, 12 deletions(-) diff --git a/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift b/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift index 0a4f9d6e76..76fde7c103 100644 --- a/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift +++ b/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift @@ -1,10 +1,6 @@ // // EnteAlbumWidget.swift // EnteAlbumWidget -// -// Created by Prateek Sunal on 5/15/25. -// Copyright © 2025 The Chromium Authors. All rights reserved. -// import SwiftUI import UIKit diff --git a/mobile/ios/EnteMemoryWidget/EnteMemoryWidget.swift b/mobile/ios/EnteMemoryWidget/EnteMemoryWidget.swift index 4382deab9b..354383b3b5 100644 --- a/mobile/ios/EnteMemoryWidget/EnteMemoryWidget.swift +++ b/mobile/ios/EnteMemoryWidget/EnteMemoryWidget.swift @@ -1,10 +1,6 @@ // // EnteMemoryWidget.swift // EnteMemoryWidget -// -// Created by Prateek Sunal on 3/7/25. -// Copyright © 2025 The Chromium Authors. All rights reserved. -// import SwiftUI import UIKit diff --git a/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift b/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift index 951c75767f..231356181b 100644 --- a/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift +++ b/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift @@ -1,10 +1,6 @@ // // EntePeopleWidget.swift // EntePeopleWidget -// -// Created by Prateek Sunal on 5/15/25. -// Copyright © 2025 The Chromium Authors. All rights reserved. -// import SwiftUI import UIKit From 9ee52b5deea6129ea274a5f8c65cd1b780056fee Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 3 Jun 2025 09:43:06 +0530 Subject: [PATCH 099/316] fix: don't depend on FaceFilter for fetching personId --- mobile/lib/services/people_home_widget_service.dart | 8 +++----- .../ui/viewer/search/result/people_section_all_page.dart | 7 +++---- mobile/lib/ui/viewer/search_tab/people_section.dart | 5 ++--- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/mobile/lib/services/people_home_widget_service.dart b/mobile/lib/services/people_home_widget_service.dart index ee758caac0..39eddd0694 100644 --- a/mobile/lib/services/people_home_widget_service.dart +++ b/mobile/lib/services/people_home_widget_service.dart @@ -7,7 +7,7 @@ import 'package:logging/logging.dart'; import 'package:photos/db/files_db.dart'; import 'package:photos/models/file/file.dart'; import "package:photos/models/search/generic_search_result.dart"; -import "package:photos/models/search/hierarchical/face_filter.dart"; +import "package:photos/models/search/search_constants.dart"; import "package:photos/models/search/search_types.dart"; import 'package:photos/service_locator.dart'; import 'package:photos/services/home_widget_service.dart'; @@ -292,16 +292,14 @@ class PeopleHomeWidgetService { // Search Filter with face and pick top two faces final searchFilter = await SectionType.face.getData(null).then( (value) => List.from(value).where( - (element) => - (element.hierarchicalSearchFilter as FaceFilter).personId != - null, + (element) => (element.params[kPersonParamID] as String?) != null, ), ); if (searchFilter.isNotEmpty) { peopleIds = searchFilter .take(2) - .map((e) => (e.hierarchicalSearchFilter as FaceFilter).personId!) + .map((e) => e.params[kPersonParamID] as String) .toList(); } else { _logger.warning("No selected people found"); diff --git a/mobile/lib/ui/viewer/search/result/people_section_all_page.dart b/mobile/lib/ui/viewer/search/result/people_section_all_page.dart index a24e02d63b..5237a62890 100644 --- a/mobile/lib/ui/viewer/search/result/people_section_all_page.dart +++ b/mobile/lib/ui/viewer/search/result/people_section_all_page.dart @@ -5,7 +5,7 @@ import "package:flutter_animate/flutter_animate.dart"; import "package:photos/events/event.dart"; import "package:photos/generated/l10n.dart"; import "package:photos/models/search/generic_search_result.dart"; -import "package:photos/models/search/hierarchical/face_filter.dart"; +import "package:photos/models/search/search_constants.dart"; import "package:photos/models/search/search_types.dart"; import "package:photos/models/selected_people.dart"; import "package:photos/theme/ente_theme.dart"; @@ -70,14 +70,13 @@ class _PeopleSectionAllWidgetState extends State { if (widget.namedOnly) { results.removeWhere( - (element) => - (element.hierarchicalSearchFilter as FaceFilter).personId == null, + (element) => element.params[kPersonParamID] == null, ); if (widget.selectedPeople?.personIds.isEmpty ?? false) { widget.selectedPeople!.select( results .take(2) - .map((e) => (e.hierarchicalSearchFilter as FaceFilter).personId!) + .map((e) => e.params[kPersonParamID] as String) .toSet(), ); } diff --git a/mobile/lib/ui/viewer/search_tab/people_section.dart b/mobile/lib/ui/viewer/search_tab/people_section.dart index b90b5d1efa..4bd45e2889 100644 --- a/mobile/lib/ui/viewer/search_tab/people_section.dart +++ b/mobile/lib/ui/viewer/search_tab/people_section.dart @@ -203,9 +203,8 @@ class PersonSearchExample extends StatelessWidget { }); void toggleSelection() { - selectedPeople?.toggleSelection( - (searchResult.hierarchicalSearchFilter as FaceFilter).personId!, - ); + selectedPeople + ?.toggleSelection(searchResult.params[kPersonParamID]! as String); } @override From 265bad28b08084be592abeba503fc4dab2d1dcfe Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 3 Jun 2025 09:45:02 +0530 Subject: [PATCH 100/316] fix: people selection logic as well --- mobile/lib/ui/viewer/search_tab/people_section.dart | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/mobile/lib/ui/viewer/search_tab/people_section.dart b/mobile/lib/ui/viewer/search_tab/people_section.dart index 4bd45e2889..993c31a99a 100644 --- a/mobile/lib/ui/viewer/search_tab/people_section.dart +++ b/mobile/lib/ui/viewer/search_tab/people_section.dart @@ -6,7 +6,6 @@ import "package:photos/events/event.dart"; import "package:photos/models/file/file.dart"; import "package:photos/models/ml/face/person.dart"; import "package:photos/models/search/generic_search_result.dart"; -import "package:photos/models/search/hierarchical/face_filter.dart"; import "package:photos/models/search/recent_searches.dart"; import "package:photos/models/search/search_constants.dart"; import "package:photos/models/search/search_result.dart"; @@ -217,9 +216,9 @@ class PersonSearchExample extends StatelessWidget { return ListenableBuilder( listenable: selectedPeople ?? ValueNotifier(false), builder: (context, _) { - final filter = (searchResult.hierarchicalSearchFilter as FaceFilter); - final id = filter.personId ?? filter.clusterId ?? ""; - final bool isSelected = selectedPeople?.isPersonSelected(id) ?? false; + final id = searchResult.params[kPersonParamID] as String?; + final bool isSelected = + id != null ? selectedPeople?.isPersonSelected(id) ?? false : false; return GestureDetector( onTap: selectedPeople != null From 55fd87face871a3ca6791b6b96db6aa393056027 Mon Sep 17 00:00:00 2001 From: vishnukvmd Date: Tue, 3 Jun 2025 12:42:25 +0530 Subject: [PATCH 101/316] [server] Fix migration index --- .../{99_add_upgraded_at.down.sql => 100_add_upgraded_at.down.sql} | 0 .../{99_add_upgraded_at.up.sql => 100_add_upgraded_at.up.sql} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename server/migrations/{99_add_upgraded_at.down.sql => 100_add_upgraded_at.down.sql} (100%) rename server/migrations/{99_add_upgraded_at.up.sql => 100_add_upgraded_at.up.sql} (100%) diff --git a/server/migrations/99_add_upgraded_at.down.sql b/server/migrations/100_add_upgraded_at.down.sql similarity index 100% rename from server/migrations/99_add_upgraded_at.down.sql rename to server/migrations/100_add_upgraded_at.down.sql diff --git a/server/migrations/99_add_upgraded_at.up.sql b/server/migrations/100_add_upgraded_at.up.sql similarity index 100% rename from server/migrations/99_add_upgraded_at.up.sql rename to server/migrations/100_add_upgraded_at.up.sql From d6060e119458dde1d0c1e269080b0a1f84ba081a Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Tue, 3 Jun 2025 12:50:39 +0530 Subject: [PATCH 102/316] Extract --- web/packages/accounts/utils/recovery-key.ts | 49 +++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 web/packages/accounts/utils/recovery-key.ts diff --git a/web/packages/accounts/utils/recovery-key.ts b/web/packages/accounts/utils/recovery-key.ts new file mode 100644 index 0000000000..15bcd13e90 --- /dev/null +++ b/web/packages/accounts/utils/recovery-key.ts @@ -0,0 +1,49 @@ +import { sharedCryptoWorker } from "ente-base/crypto"; + +// eslint-disable-next-line @typescript-eslint/no-require-imports +const bip39 = require("bip39"); +// mobile client library only supports english. +bip39.setDefaultWordlist("english"); + +/** + * Decrypt the provided data that was encrypted with the user's recovery key + * using the recovery key derived from the provided mnemonic string. + * + * @param recoveryKey The BIP-39 mnemonic (24 word) string representing the + * recovery key. For legacy compatibility, the function also works if provided + * the hex representation of the recovery key. + * + * @param encryptedData The data to decrypt. The data should've been encrypted + * using the same recovery key otherwise the decryption would fail. + * + * @param decryptionNonce The nonce that was using encryption. + * + * @returns A base64 string representing the decrypted data. + */ +export const decryptUsingRecoveryKeyMnemonic = async ( + recoveryKey: string, + encryptedData: any, + decryptionNonce: any, +) => { + recoveryKey = recoveryKey + .trim() + .split(" ") + .map((part) => part.trim()) + .filter((part) => !!part) + .join(" "); + + // Check if user is entering mnemonic recovery key. + if (recoveryKey.indexOf(" ") > 0) { + if (recoveryKey.split(" ").length != 24) { + throw new Error("recovery code should have 24 words"); + } + recoveryKey = bip39.mnemonicToEntropy(recoveryKey); + } + + const cryptoWorker = await sharedCryptoWorker(); + return cryptoWorker.decryptB64( + encryptedData, + decryptionNonce, + await cryptoWorker.fromHex(recoveryKey), + ); +}; From 54b5100e89d66762b95d5efeb1bae35894b29215 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Tue, 3 Jun 2025 12:55:36 +0530 Subject: [PATCH 103/316] Use --- web/packages/accounts/pages/recover.tsx | 25 +++------------------ web/packages/accounts/utils/recovery-key.ts | 10 ++++----- 2 files changed, 8 insertions(+), 27 deletions(-) diff --git a/web/packages/accounts/pages/recover.tsx b/web/packages/accounts/pages/recover.tsx index 179edbc155..3b3410d3b7 100644 --- a/web/packages/accounts/pages/recover.tsx +++ b/web/packages/accounts/pages/recover.tsx @@ -7,7 +7,6 @@ import { appHomeRoute, stashRedirect } from "ente-accounts/services/redirect"; import { sendOTT } from "ente-accounts/services/user"; import { LinkButton } from "ente-base/components/LinkButton"; import { useBaseContext } from "ente-base/context"; -import { sharedCryptoWorker } from "ente-base/crypto"; import log from "ente-base/log"; import SingleInputForm, { type SingleInputFormProps, @@ -22,11 +21,7 @@ import type { KeyAttributes, User } from "ente-shared/user/types"; import { t } from "i18next"; import { useRouter } from "next/router"; import { useEffect, useState } from "react"; - -// eslint-disable-next-line @typescript-eslint/no-require-imports -const bip39 = require("bip39"); -// mobile client library only supports english. -bip39.setDefaultWordlist("english"); +import { decryptUsingRecoveryKeyMnemonic } from "../utils/recovery-key"; const Page: React.FC = () => { const { showMiniDialog } = useBaseContext(); @@ -65,25 +60,11 @@ const Page: React.FC = () => { setFieldError, ) => { try { - recoveryKey = recoveryKey - .trim() - .split(" ") - .map((part) => part.trim()) - .filter((part) => !!part) - .join(" "); - // check if user is entering mnemonic recovery key - if (recoveryKey.indexOf(" ") > 0) { - if (recoveryKey.split(" ").length !== 24) { - throw new Error("recovery code should have 24 words"); - } - recoveryKey = bip39.mnemonicToEntropy(recoveryKey); - } - const cryptoWorker = await sharedCryptoWorker(); const keyAttr = keyAttributes!; - const masterKey = await cryptoWorker.decryptB64( + const masterKey = await decryptUsingRecoveryKeyMnemonic( keyAttr.masterKeyEncryptedWithRecoveryKey!, keyAttr.masterKeyDecryptionNonce!, - await cryptoWorker.fromHex(recoveryKey), + recoveryKey, ); await saveKeyInSessionStore("encryptionKey", masterKey); await decryptAndStoreToken(keyAttr, masterKey); diff --git a/web/packages/accounts/utils/recovery-key.ts b/web/packages/accounts/utils/recovery-key.ts index 15bcd13e90..bff8084035 100644 --- a/web/packages/accounts/utils/recovery-key.ts +++ b/web/packages/accounts/utils/recovery-key.ts @@ -9,21 +9,21 @@ bip39.setDefaultWordlist("english"); * Decrypt the provided data that was encrypted with the user's recovery key * using the recovery key derived from the provided mnemonic string. * - * @param recoveryKey The BIP-39 mnemonic (24 word) string representing the - * recovery key. For legacy compatibility, the function also works if provided - * the hex representation of the recovery key. - * * @param encryptedData The data to decrypt. The data should've been encrypted * using the same recovery key otherwise the decryption would fail. * * @param decryptionNonce The nonce that was using encryption. * + * @param recoveryKey The BIP-39 mnemonic (24 word) string representing the + * recovery key. For legacy compatibility, the function also works if provided + * the hex representation of the recovery key. + * * @returns A base64 string representing the decrypted data. */ export const decryptUsingRecoveryKeyMnemonic = async ( - recoveryKey: string, encryptedData: any, decryptionNonce: any, + recoveryKey: string, ) => { recoveryKey = recoveryKey .trim() From c92141b9dc45b692d1bf65f934e082c813d0f09f Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Tue, 3 Jun 2025 12:59:01 +0530 Subject: [PATCH 104/316] Use --- web/packages/accounts/pages/recover.tsx | 2 +- .../accounts/pages/two-factor/recover.tsx | 26 +++---------------- 2 files changed, 5 insertions(+), 23 deletions(-) diff --git a/web/packages/accounts/pages/recover.tsx b/web/packages/accounts/pages/recover.tsx index 3b3410d3b7..24ac4c328a 100644 --- a/web/packages/accounts/pages/recover.tsx +++ b/web/packages/accounts/pages/recover.tsx @@ -5,6 +5,7 @@ import { } from "ente-accounts/components/layouts/centered-paper"; import { appHomeRoute, stashRedirect } from "ente-accounts/services/redirect"; import { sendOTT } from "ente-accounts/services/user"; +import { decryptUsingRecoveryKeyMnemonic } from "ente-accounts/utils/recovery-key"; import { LinkButton } from "ente-base/components/LinkButton"; import { useBaseContext } from "ente-base/context"; import log from "ente-base/log"; @@ -21,7 +22,6 @@ import type { KeyAttributes, User } from "ente-shared/user/types"; import { t } from "i18next"; import { useRouter } from "next/router"; import { useEffect, useState } from "react"; -import { decryptUsingRecoveryKeyMnemonic } from "../utils/recovery-key"; const Page: React.FC = () => { const { showMiniDialog } = useBaseContext(); diff --git a/web/packages/accounts/pages/two-factor/recover.tsx b/web/packages/accounts/pages/two-factor/recover.tsx index f0aba30440..f24f2f64b2 100644 --- a/web/packages/accounts/pages/two-factor/recover.tsx +++ b/web/packages/accounts/pages/two-factor/recover.tsx @@ -10,10 +10,10 @@ import { removeTwoFactor, type TwoFactorType, } from "ente-accounts/services/user"; +import { decryptUsingRecoveryKeyMnemonic } from "ente-accounts/utils/recovery-key"; import { LinkButton } from "ente-base/components/LinkButton"; import type { MiniDialogAttributes } from "ente-base/components/MiniDialog"; import { useBaseContext } from "ente-base/context"; -import { sharedCryptoWorker } from "ente-base/crypto"; import type { B64EncryptionResult } from "ente-base/crypto/libsodium"; import log from "ente-base/log"; import SingleInputForm, { @@ -26,11 +26,6 @@ import { useRouter } from "next/router"; import { useEffect, useState } from "react"; import { Trans } from "react-i18next"; -// eslint-disable-next-line @typescript-eslint/no-require-imports -const bip39 = require("bip39"); -// mobile client library only supports english. -bip39.setDefaultWordlist("english"); - export interface RecoverPageProps { twoFactorType: TwoFactorType; } @@ -95,26 +90,13 @@ const Page: React.FC = ({ twoFactorType }) => { setFieldError, ) => { try { - recoveryKey = recoveryKey - .trim() - .split(" ") - .map((part) => part.trim()) - .filter((part) => !!part) - .join(" "); - // check if user is entering mnemonic recovery key - if (recoveryKey.indexOf(" ") > 0) { - if (recoveryKey.split(" ").length !== 24) { - throw new Error("recovery code should have 24 words"); - } - recoveryKey = bip39.mnemonicToEntropy(recoveryKey); - } - const cryptoWorker = await sharedCryptoWorker(); const { encryptedData, nonce } = encryptedTwoFactorSecret!; - const twoFactorSecret = await cryptoWorker.decryptB64( + const twoFactorSecret = await decryptUsingRecoveryKeyMnemonic( encryptedData, nonce, - await cryptoWorker.fromHex(recoveryKey), + recoveryKey, ); + const resp = await removeTwoFactor( sessionID!, twoFactorSecret, From 8c99a3e5af2d7e9e5591404d5a5a4bd76e3d8c10 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Tue, 3 Jun 2025 13:11:54 +0530 Subject: [PATCH 105/316] Other way --- web/packages/accounts/components/RecoveryKey.tsx | 7 ++----- web/packages/accounts/utils/recovery-key.ts | 14 +++++++++++--- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/web/packages/accounts/components/RecoveryKey.tsx b/web/packages/accounts/components/RecoveryKey.tsx index 45722ac170..329ee0c9e2 100644 --- a/web/packages/accounts/components/RecoveryKey.tsx +++ b/web/packages/accounts/components/RecoveryKey.tsx @@ -6,7 +6,6 @@ import { Stack, Typography, } from "@mui/material"; -import * as bip39 from "bip39"; import { type MiniDialogAttributes } from "ente-base/components/MiniDialog"; import { SpacedRow } from "ente-base/components/containers"; import { DialogCloseIconButton } from "ente-base/components/mui/DialogCloseIconButton"; @@ -19,11 +18,9 @@ import { downloadString } from "ente-base/utils/web"; import { getRecoveryKey } from "ente-shared/crypto/helpers"; import { t } from "i18next"; import { useCallback, useEffect, useState } from "react"; +import { convertRecoveryKeyToMnemonic } from "../utils/recovery-key"; import { CodeBlock } from "./CodeBlock"; -// mobile client library only supports english. -bip39.setDefaultWordlist("english"); - type RecoveryKeyProps = ModalVisibilityProps & { showMiniDialog: (attributes: MiniDialogAttributes) => void; }; @@ -116,7 +113,7 @@ export const RecoveryKey: React.FC = ({ }; const getRecoveryKeyMnemonic = async () => - bip39.entropyToMnemonic(await getRecoveryKey()); + convertRecoveryKeyToMnemonic(await getRecoveryKey()); const downloadRecoveryKeyMnemonic = (key: string) => downloadString(key, "ente-recovery-key.txt"); diff --git a/web/packages/accounts/utils/recovery-key.ts b/web/packages/accounts/utils/recovery-key.ts index bff8084035..1951bd0d87 100644 --- a/web/packages/accounts/utils/recovery-key.ts +++ b/web/packages/accounts/utils/recovery-key.ts @@ -1,8 +1,7 @@ +import * as bip39 from "bip39"; import { sharedCryptoWorker } from "ente-base/crypto"; -// eslint-disable-next-line @typescript-eslint/no-require-imports -const bip39 = require("bip39"); -// mobile client library only supports english. +// Mobile client library only supports English. bip39.setDefaultWordlist("english"); /** @@ -47,3 +46,12 @@ export const decryptUsingRecoveryKeyMnemonic = async ( await cryptoWorker.fromHex(recoveryKey), ); }; + +/** + * Convert the provided recovery key into its BIP-39 mnemonic (24-word) string. + * + * @returns A string containing 24-words that serves as the user visible + * recovery key. + */ +export const convertRecoveryKeyToMnemonic = (recoveryKeyHex: string) => + bip39.entropyToMnemonic(recoveryKeyHex); From 241577739a7ea3f76c944b58745b199c757a06e3 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Tue, 3 Jun 2025 13:21:18 +0530 Subject: [PATCH 106/316] doc --- web/docs/dependencies.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/web/docs/dependencies.md b/web/docs/dependencies.md index 92cf8acd2d..14d59c5bfc 100644 --- a/web/docs/dependencies.md +++ b/web/docs/dependencies.md @@ -205,6 +205,9 @@ via [@fontsource-variable/inter](https://fontsource.org/fonts/inter/install). [pDebounce](https://github.com/sindresorhus/p-debounce) are used for debouncing operations (See also: `[Note: Throttle and debounce]`). +- [bip39](https://github.com/bitcoinjs/bip39) is used for generating the 24-word + recovery key mnemonic. + - [zxcvbn](https://github.com/dropbox/zxcvbn) is used for password strength estimation. From 32bffcb80b20912f1f8309583cbd1a14d575b014 Mon Sep 17 00:00:00 2001 From: Vishnu Mohandas Date: Tue, 3 Jun 2025 13:50:40 +0530 Subject: [PATCH 107/316] [docs] Update deduplicate.md --- docs/docs/photos/features/deduplicate.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/docs/photos/features/deduplicate.md b/docs/docs/photos/features/deduplicate.md index c1b55e4cc7..ea931d174d 100644 --- a/docs/docs/photos/features/deduplicate.md +++ b/docs/docs/photos/features/deduplicate.md @@ -52,6 +52,11 @@ Ente also provides a tool for manual de-duplication in _Settings → Backup → Remove duplicates_. This is useful if you have an existing library with duplicates across different albums, but wish to keep only one copy. +During this operation, Ente will discard duplicates across all albums, retain a +single copy, and add symlinks to this copy within all existing albums. So your +existing album structure remains unchanged, while the space consumed by the +duplicate data is freed up. + ## Adding to Ente album creates symlinks Note that once a file is in Ente, adding it to another Ente album will create a From 0e0044693c63d96e320777f36ad5f8212e819e9c Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Tue, 3 Jun 2025 13:51:14 +0530 Subject: [PATCH 108/316] Remove unnecessary roundtrip --- web/packages/accounts/components/RecoveryKey.tsx | 4 ++-- web/packages/accounts/services/passkey.ts | 9 ++------- web/packages/accounts/utils/recovery-key.ts | 14 +++++++++----- web/packages/shared/crypto/helpers.ts | 7 +++---- 4 files changed, 16 insertions(+), 18 deletions(-) diff --git a/web/packages/accounts/components/RecoveryKey.tsx b/web/packages/accounts/components/RecoveryKey.tsx index 329ee0c9e2..5d9f25c7b6 100644 --- a/web/packages/accounts/components/RecoveryKey.tsx +++ b/web/packages/accounts/components/RecoveryKey.tsx @@ -18,7 +18,7 @@ import { downloadString } from "ente-base/utils/web"; import { getRecoveryKey } from "ente-shared/crypto/helpers"; import { t } from "i18next"; import { useCallback, useEffect, useState } from "react"; -import { convertRecoveryKeyToMnemonic } from "../utils/recovery-key"; +import { recoveryKeyB64ToMnemonic } from "../utils/recovery-key"; import { CodeBlock } from "./CodeBlock"; type RecoveryKeyProps = ModalVisibilityProps & { @@ -113,7 +113,7 @@ export const RecoveryKey: React.FC = ({ }; const getRecoveryKeyMnemonic = async () => - convertRecoveryKeyToMnemonic(await getRecoveryKey()); + recoveryKeyB64ToMnemonic(await getRecoveryKey()); const downloadRecoveryKeyMnemonic = (key: string) => downloadString(key, "ente-recovery-key.txt"); diff --git a/web/packages/accounts/services/passkey.ts b/web/packages/accounts/services/passkey.ts index 3e7cd99683..e7175c316a 100644 --- a/web/packages/accounts/services/passkey.ts +++ b/web/packages/accounts/services/passkey.ts @@ -1,6 +1,5 @@ import { TwoFactorAuthorizationResponse } from "ente-accounts/services/user"; import { clientPackageName, isDesktop } from "ente-base/app"; -import { sharedCryptoWorker } from "ente-base/crypto"; import { encryptToB64, generateEncryptionKey, @@ -111,16 +110,12 @@ export const openAccountsManagePasskeysPage = async () => { if (!recoveryEnabled) { // If not, enable it for them by creating the necessary recovery // information to prevent them from getting locked out. - const recoveryKey = await getRecoveryKey(); - + const recoveryKeyB64 = await getRecoveryKey(); const resetSecret = await generateEncryptionKey(); - - const cryptoWorker = await sharedCryptoWorker(); const encryptionResult = await encryptToB64( resetSecret, - await cryptoWorker.fromHex(recoveryKey), + recoveryKeyB64, ); - await configurePasskeyRecovery( resetSecret, encryptionResult.encryptedData, diff --git a/web/packages/accounts/utils/recovery-key.ts b/web/packages/accounts/utils/recovery-key.ts index 1951bd0d87..36eab04786 100644 --- a/web/packages/accounts/utils/recovery-key.ts +++ b/web/packages/accounts/utils/recovery-key.ts @@ -48,10 +48,14 @@ export const decryptUsingRecoveryKeyMnemonic = async ( }; /** - * Convert the provided recovery key into its BIP-39 mnemonic (24-word) string. + * Convert the provided base64 encoded recovery key into its BIP-39 mnemonic. * - * @returns A string containing 24-words that serves as the user visible - * recovery key. + * @param recoveryKeyB64 The base64 encoded recovery key to mnemonize. + * + * @returns A 24-word mnemonic that serves as the user visible recovery key. */ -export const convertRecoveryKeyToMnemonic = (recoveryKeyHex: string) => - bip39.entropyToMnemonic(recoveryKeyHex); +export const recoveryKeyB64ToMnemonic = async (recoveryKeyB64: string) => { + const cryptoWorker = await sharedCryptoWorker(); + const recoveryKeyHex = await cryptoWorker.toHex(recoveryKeyB64); + return bip39.entropyToMnemonic(recoveryKeyHex); +}; diff --git a/web/packages/shared/crypto/helpers.ts b/web/packages/shared/crypto/helpers.ts index af5fd71d29..7d9cdd66b3 100644 --- a/web/packages/shared/crypto/helpers.ts +++ b/web/packages/shared/crypto/helpers.ts @@ -110,9 +110,8 @@ export const saveKeyInSessionStore = async ( export const encryptWithRecoveryKey = async (data: string) => { const cryptoWorker = await sharedCryptoWorker(); - const hexRecoveryKey = await getRecoveryKey(); - const recoveryKey = await cryptoWorker.fromHex(hexRecoveryKey); - return cryptoWorker.encryptBoxB64(data, recoveryKey); + const recoveryKeyB64 = await getRecoveryKey(); + return cryptoWorker.encryptBoxB64(data, recoveryKeyB64); }; export const getRecoveryKey = async () => { @@ -135,7 +134,6 @@ export const getRecoveryKey = async () => { } else { recoveryKey = await createNewRecoveryKey(); } - recoveryKey = await cryptoWorker.toHex(recoveryKey); return recoveryKey; } catch (e) { log.error("getRecoveryKey failed", e); @@ -145,6 +143,7 @@ export const getRecoveryKey = async () => { // Used only for legacy users for whom we did not generate recovery keys during // sign up +// @returns a new base64 encoded recovery key. async function createNewRecoveryKey() { const masterKey = await getActualKey(); const existingAttributes = getData("keyAttributes"); From 25cadce651779af44ee2324bb8aaca7f3510feea Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Tue, 3 Jun 2025 13:56:05 +0530 Subject: [PATCH 109/316] Vars --- web/packages/accounts/utils/recovery-key.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/web/packages/accounts/utils/recovery-key.ts b/web/packages/accounts/utils/recovery-key.ts index 36eab04786..9ce52da233 100644 --- a/web/packages/accounts/utils/recovery-key.ts +++ b/web/packages/accounts/utils/recovery-key.ts @@ -22,28 +22,31 @@ bip39.setDefaultWordlist("english"); export const decryptUsingRecoveryKeyMnemonic = async ( encryptedData: any, decryptionNonce: any, - recoveryKey: string, + recoveryKeyMnemonicOrHex: string, ) => { - recoveryKey = recoveryKey + const trimmedInput = recoveryKeyMnemonicOrHex .trim() .split(" ") .map((part) => part.trim()) .filter((part) => !!part) .join(" "); + let recoveryKeyHex: string; // Check if user is entering mnemonic recovery key. - if (recoveryKey.indexOf(" ") > 0) { - if (recoveryKey.split(" ").length != 24) { + if (trimmedInput.indexOf(" ") > 0) { + if (trimmedInput.split(" ").length != 24) { throw new Error("recovery code should have 24 words"); } - recoveryKey = bip39.mnemonicToEntropy(recoveryKey); + recoveryKeyHex = bip39.mnemonicToEntropy(trimmedInput); + } else { + recoveryKeyHex = trimmedInput; } const cryptoWorker = await sharedCryptoWorker(); return cryptoWorker.decryptB64( encryptedData, decryptionNonce, - await cryptoWorker.fromHex(recoveryKey), + await cryptoWorker.fromHex(recoveryKeyHex), ); }; From 5df1b12ef5819568e088a9389c1983a37c640a3c Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Tue, 3 Jun 2025 14:02:14 +0530 Subject: [PATCH 110/316] use new api --- web/packages/accounts/utils/recovery-key.ts | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/web/packages/accounts/utils/recovery-key.ts b/web/packages/accounts/utils/recovery-key.ts index 9ce52da233..5d008ee0a3 100644 --- a/web/packages/accounts/utils/recovery-key.ts +++ b/web/packages/accounts/utils/recovery-key.ts @@ -1,5 +1,5 @@ import * as bip39 from "bip39"; -import { sharedCryptoWorker } from "ente-base/crypto"; +import { fromHex, sharedCryptoWorker, toHex } from "ente-base/crypto"; // Mobile client library only supports English. bip39.setDefaultWordlist("english"); @@ -46,7 +46,7 @@ export const decryptUsingRecoveryKeyMnemonic = async ( return cryptoWorker.decryptB64( encryptedData, decryptionNonce, - await cryptoWorker.fromHex(recoveryKeyHex), + await fromHex(recoveryKeyHex), ); }; @@ -57,8 +57,5 @@ export const decryptUsingRecoveryKeyMnemonic = async ( * * @returns A 24-word mnemonic that serves as the user visible recovery key. */ -export const recoveryKeyB64ToMnemonic = async (recoveryKeyB64: string) => { - const cryptoWorker = await sharedCryptoWorker(); - const recoveryKeyHex = await cryptoWorker.toHex(recoveryKeyB64); - return bip39.entropyToMnemonic(recoveryKeyHex); -}; +export const recoveryKeyB64ToMnemonic = async (recoveryKeyB64: string) => + bip39.entropyToMnemonic(await toHex(recoveryKeyB64)); From 9d9ed0f01f78b8334f4fb076a35fd2eb4f877f9e Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Tue, 3 Jun 2025 14:09:08 +0530 Subject: [PATCH 111/316] Refactor API --- web/packages/accounts/pages/recover.tsx | 8 +++-- .../accounts/pages/two-factor/recover.tsx | 9 +++--- web/packages/accounts/utils/recovery-key.ts | 29 +++++-------------- 3 files changed, 18 insertions(+), 28 deletions(-) diff --git a/web/packages/accounts/pages/recover.tsx b/web/packages/accounts/pages/recover.tsx index 24ac4c328a..356cf8deb3 100644 --- a/web/packages/accounts/pages/recover.tsx +++ b/web/packages/accounts/pages/recover.tsx @@ -5,9 +5,10 @@ import { } from "ente-accounts/components/layouts/centered-paper"; import { appHomeRoute, stashRedirect } from "ente-accounts/services/redirect"; import { sendOTT } from "ente-accounts/services/user"; -import { decryptUsingRecoveryKeyMnemonic } from "ente-accounts/utils/recovery-key"; +import { recoveryKeyB64FromMnemonic } from "ente-accounts/utils/recovery-key"; import { LinkButton } from "ente-base/components/LinkButton"; import { useBaseContext } from "ente-base/context"; +import { sharedCryptoWorker } from "ente-base/crypto"; import log from "ente-base/log"; import SingleInputForm, { type SingleInputFormProps, @@ -61,10 +62,11 @@ const Page: React.FC = () => { ) => { try { const keyAttr = keyAttributes!; - const masterKey = await decryptUsingRecoveryKeyMnemonic( + const cryptoWorker = await sharedCryptoWorker(); + const masterKey = await cryptoWorker.decryptB64( keyAttr.masterKeyEncryptedWithRecoveryKey!, keyAttr.masterKeyDecryptionNonce!, - recoveryKey, + await recoveryKeyB64FromMnemonic(recoveryKey), ); await saveKeyInSessionStore("encryptionKey", masterKey); await decryptAndStoreToken(keyAttr, masterKey); diff --git a/web/packages/accounts/pages/two-factor/recover.tsx b/web/packages/accounts/pages/two-factor/recover.tsx index f24f2f64b2..1d207b2990 100644 --- a/web/packages/accounts/pages/two-factor/recover.tsx +++ b/web/packages/accounts/pages/two-factor/recover.tsx @@ -10,10 +10,11 @@ import { removeTwoFactor, type TwoFactorType, } from "ente-accounts/services/user"; -import { decryptUsingRecoveryKeyMnemonic } from "ente-accounts/utils/recovery-key"; +import { recoveryKeyB64FromMnemonic } from "ente-accounts/utils/recovery-key"; import { LinkButton } from "ente-base/components/LinkButton"; import type { MiniDialogAttributes } from "ente-base/components/MiniDialog"; import { useBaseContext } from "ente-base/context"; +import { sharedCryptoWorker } from "ente-base/crypto"; import type { B64EncryptionResult } from "ente-base/crypto/libsodium"; import log from "ente-base/log"; import SingleInputForm, { @@ -91,12 +92,12 @@ const Page: React.FC = ({ twoFactorType }) => { ) => { try { const { encryptedData, nonce } = encryptedTwoFactorSecret!; - const twoFactorSecret = await decryptUsingRecoveryKeyMnemonic( + const cryptoWorker = await sharedCryptoWorker(); + const twoFactorSecret = await cryptoWorker.decryptB64( encryptedData, nonce, - recoveryKey, + await recoveryKeyB64FromMnemonic(recoveryKey), ); - const resp = await removeTwoFactor( sessionID!, twoFactorSecret, diff --git a/web/packages/accounts/utils/recovery-key.ts b/web/packages/accounts/utils/recovery-key.ts index 5d008ee0a3..59738da782 100644 --- a/web/packages/accounts/utils/recovery-key.ts +++ b/web/packages/accounts/utils/recovery-key.ts @@ -1,27 +1,19 @@ import * as bip39 from "bip39"; -import { fromHex, sharedCryptoWorker, toHex } from "ente-base/crypto"; +import { fromHex, toHex } from "ente-base/crypto"; // Mobile client library only supports English. bip39.setDefaultWordlist("english"); /** - * Decrypt the provided data that was encrypted with the user's recovery key - * using the recovery key derived from the provided mnemonic string. + * Convert the provided BIP-39 mnemonic string into its base64 representation. * - * @param encryptedData The data to decrypt. The data should've been encrypted - * using the same recovery key otherwise the decryption would fail. + * @param recoveryKeyMnemonicOrHex The BIP-39 mnemonic (24 word) string + * representing the recovery key. For legacy compatibility, the function also + * works if provided the hex representation of the recovery key. * - * @param decryptionNonce The nonce that was using encryption. - * - * @param recoveryKey The BIP-39 mnemonic (24 word) string representing the - * recovery key. For legacy compatibility, the function also works if provided - * the hex representation of the recovery key. - * - * @returns A base64 string representing the decrypted data. + * @returns A base64 string representing the underlying bytes of the recovery key. */ -export const decryptUsingRecoveryKeyMnemonic = async ( - encryptedData: any, - decryptionNonce: any, +export const recoveryKeyB64FromMnemonic = ( recoveryKeyMnemonicOrHex: string, ) => { const trimmedInput = recoveryKeyMnemonicOrHex @@ -42,12 +34,7 @@ export const decryptUsingRecoveryKeyMnemonic = async ( recoveryKeyHex = trimmedInput; } - const cryptoWorker = await sharedCryptoWorker(); - return cryptoWorker.decryptB64( - encryptedData, - decryptionNonce, - await fromHex(recoveryKeyHex), - ); + return fromHex(recoveryKeyHex); }; /** From 97314b7dc1b644d87ae1b3a2efca2fbe39e3ce1f Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Tue, 3 Jun 2025 14:13:48 +0530 Subject: [PATCH 112/316] conv --- web/packages/accounts/pages/recover.tsx | 11 ++++++----- web/packages/accounts/pages/two-factor/recover.tsx | 8 +++----- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/web/packages/accounts/pages/recover.tsx b/web/packages/accounts/pages/recover.tsx index 356cf8deb3..e0ed5eced5 100644 --- a/web/packages/accounts/pages/recover.tsx +++ b/web/packages/accounts/pages/recover.tsx @@ -8,7 +8,7 @@ import { sendOTT } from "ente-accounts/services/user"; import { recoveryKeyB64FromMnemonic } from "ente-accounts/utils/recovery-key"; import { LinkButton } from "ente-base/components/LinkButton"; import { useBaseContext } from "ente-base/context"; -import { sharedCryptoWorker } from "ente-base/crypto"; +import { decryptBoxB64 } from "ente-base/crypto"; import log from "ente-base/log"; import SingleInputForm, { type SingleInputFormProps, @@ -62,10 +62,11 @@ const Page: React.FC = () => { ) => { try { const keyAttr = keyAttributes!; - const cryptoWorker = await sharedCryptoWorker(); - const masterKey = await cryptoWorker.decryptB64( - keyAttr.masterKeyEncryptedWithRecoveryKey!, - keyAttr.masterKeyDecryptionNonce!, + const masterKey = await decryptBoxB64( + { + encryptedData: keyAttr.masterKeyEncryptedWithRecoveryKey!, + nonce: keyAttr.masterKeyDecryptionNonce!, + }, await recoveryKeyB64FromMnemonic(recoveryKey), ); await saveKeyInSessionStore("encryptionKey", masterKey); diff --git a/web/packages/accounts/pages/two-factor/recover.tsx b/web/packages/accounts/pages/two-factor/recover.tsx index 1d207b2990..90d93ab23c 100644 --- a/web/packages/accounts/pages/two-factor/recover.tsx +++ b/web/packages/accounts/pages/two-factor/recover.tsx @@ -14,7 +14,7 @@ import { recoveryKeyB64FromMnemonic } from "ente-accounts/utils/recovery-key"; import { LinkButton } from "ente-base/components/LinkButton"; import type { MiniDialogAttributes } from "ente-base/components/MiniDialog"; import { useBaseContext } from "ente-base/context"; -import { sharedCryptoWorker } from "ente-base/crypto"; +import { decryptBoxB64 } from "ente-base/crypto"; import type { B64EncryptionResult } from "ente-base/crypto/libsodium"; import log from "ente-base/log"; import SingleInputForm, { @@ -92,10 +92,8 @@ const Page: React.FC = ({ twoFactorType }) => { ) => { try { const { encryptedData, nonce } = encryptedTwoFactorSecret!; - const cryptoWorker = await sharedCryptoWorker(); - const twoFactorSecret = await cryptoWorker.decryptB64( - encryptedData, - nonce, + const twoFactorSecret = await decryptBoxB64( + { encryptedData, nonce }, await recoveryKeyB64FromMnemonic(recoveryKey), ); const resp = await removeTwoFactor( From 7cdef46385a017fc3c948b72f07dc9eaceff4a8f Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Tue, 3 Jun 2025 14:42:33 +0530 Subject: [PATCH 113/316] Update --- web/packages/accounts/services/user.ts | 37 +++++++++++++++++--------- web/packages/shared/crypto/helpers.ts | 32 +++++++++++++--------- 2 files changed, 43 insertions(+), 26 deletions(-) diff --git a/web/packages/accounts/services/user.ts b/web/packages/accounts/services/user.ts index 6f5d55f85e..f02eabf71c 100644 --- a/web/packages/accounts/services/user.ts +++ b/web/packages/accounts/services/user.ts @@ -61,13 +61,6 @@ export interface UpdatedKey { opsLimit: number; } -export interface RecoveryKey { - masterKeyEncryptedWithRecoveryKey: string; - masterKeyDecryptionNonce: string; - recoveryKeyEncryptedWithMasterKey: string; - recoveryKeyDecryptionNonce: string; -} - /** * Ask remote to send a OTP / OTT to the given email to verify that the user has * access to it. Subsequent the app will pass this OTT back via the @@ -311,10 +304,28 @@ export const enableTwoFactor = async (req: EnableTwoFactorRequest) => }), ); -export const setRecoveryKey = async (token: string, recoveryKey: RecoveryKey) => - HTTPService.put( - await apiURL("/users/recovery-key"), - recoveryKey, - undefined, - { "X-Auth-Token": token }, +export interface RecoveryKeyAttributes { + masterKeyEncryptedWithRecoveryKey: string; + masterKeyDecryptionNonce: string; + recoveryKeyEncryptedWithMasterKey: string; + recoveryKeyDecryptionNonce: string; +} + +/** + * Update the encrypted recovery key attributes for the logged in user. + * + * In practice, this is not expected to be called and is meant as a rare + * fallback for very old accounts created prior to recovery key related + * attributes being assigned on account setup. Even for these, it'll be called + * only once. + */ +export const putUserRecoveryKeyAttributes = async ( + recoveryKeyAttributes: RecoveryKeyAttributes, +) => + ensureOk( + await fetch(await apiURL("/users/recovery-key"), { + method: "PUT", + headers: await authenticatedRequestHeaders(), + body: JSON.stringify(recoveryKeyAttributes), + }), ); diff --git a/web/packages/shared/crypto/helpers.ts b/web/packages/shared/crypto/helpers.ts index 7d9cdd66b3..e57ae944d7 100644 --- a/web/packages/shared/crypto/helpers.ts +++ b/web/packages/shared/crypto/helpers.ts @@ -1,9 +1,8 @@ -import { setRecoveryKey } from "ente-accounts/services/user"; +import { putUserRecoveryKeyAttributes } from "ente-accounts/services/user"; import { sharedCryptoWorker } from "ente-base/crypto"; import log from "ente-base/log"; import { masterKeyFromSession } from "ente-base/session"; import { getData, setData, setLSUser } from "ente-shared/storage/localStorage"; -import { getToken } from "ente-shared/storage/localStorage/helpers"; import { type SessionKey, setKey } from "ente-shared/storage/sessionStorage"; import { getActualKey } from "ente-shared/user"; import type { KeyAttributes } from "ente-shared/user/types"; @@ -141,10 +140,16 @@ export const getRecoveryKey = async () => { } }; -// Used only for legacy users for whom we did not generate recovery keys during -// sign up -// @returns a new base64 encoded recovery key. -async function createNewRecoveryKey() { +/** + * Generate a new recovery key, tell remote about it, update our local state, + * and then return it. + * + * This function will be used only for legacy users for whom we did not generate + * recovery keys during sign up. + * + * @returns a new base64 encoded recovery key. + */ +const createNewRecoveryKey = async () => { const masterKey = await getActualKey(); const existingAttributes = getData("keyAttributes"); @@ -159,22 +164,23 @@ async function createNewRecoveryKey() { recoveryKey, masterKey, ); + const recoveryKeyAttributes = { masterKeyEncryptedWithRecoveryKey: encryptedMasterKey.encryptedData, masterKeyDecryptionNonce: encryptedMasterKey.nonce, recoveryKeyEncryptedWithMasterKey: encryptedRecoveryKey.encryptedData, recoveryKeyDecryptionNonce: encryptedRecoveryKey.nonce, }; - await setRecoveryKey(getToken(), recoveryKeyAttributes); - const updatedKeyAttributes = Object.assign( - existingAttributes, - recoveryKeyAttributes, - ); - setData("keyAttributes", updatedKeyAttributes); + await putUserRecoveryKeyAttributes(recoveryKeyAttributes); + + setData("keyAttributes", { + ...existingAttributes, + ...recoveryKeyAttributes, + }); return recoveryKey; -} +}; /** * Decrypt the {@link encryptedChallenge} sent by remote during the delete From e493702c6450ddaea5ca9e9c135008aaa2e20147 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Tue, 3 Jun 2025 14:59:23 +0530 Subject: [PATCH 114/316] Integrate thermal state in check --- .../machine_learning_controller.dart | 65 +++++++++++++++---- mobile/pubspec.lock | 8 +++ mobile/pubspec.yaml | 1 + 3 files changed, 63 insertions(+), 11 deletions(-) diff --git a/mobile/lib/services/machine_learning/machine_learning_controller.dart b/mobile/lib/services/machine_learning/machine_learning_controller.dart index 6db75a232d..c1c61d804f 100644 --- a/mobile/lib/services/machine_learning/machine_learning_controller.dart +++ b/mobile/lib/services/machine_learning/machine_learning_controller.dart @@ -8,6 +8,7 @@ import "package:flutter/foundation.dart"; import "package:logging/logging.dart"; import "package:photos/core/event_bus.dart"; import "package:photos/events/machine_learning_control_event.dart"; +import "package:thermal/thermal.dart"; class MachineLearningController { final _logger = Logger("MachineLearningController"); @@ -17,6 +18,11 @@ class MachineLearningController { final kDefaultInteractionTimeout = Duration(seconds: Platform.isIOS ? 5 : 15); static const kUnhealthyStates = ["over_heat", "over_voltage", "dead"]; + static final _thermal = Thermal(); + IosBatteryInfo? _iosLastBatteryInfo; + AndroidBatteryInfo? _androidLastBatteryInfo; + ThermalStatus? _lastThermalStatus; + bool _isDeviceHealthy = true; bool _isUserInteracting = true; bool _canRunML = false; @@ -49,6 +55,9 @@ class MachineLearningController { _onAndroidBatteryStateUpdate(batteryInfo); }); } + _thermal.onThermalStatusChanged.listen((ThermalStatus thermalState) { + _onThermalStateUpdate(thermalState); + }); _logger.info('init done '); } @@ -96,27 +105,61 @@ class MachineLearningController { } void _onAndroidBatteryStateUpdate(AndroidBatteryInfo? batteryInfo) { + _androidLastBatteryInfo = batteryInfo; _logger.info("Battery info: ${batteryInfo!.toJson()}"); - _isDeviceHealthy = _computeIsAndroidDeviceHealthy(batteryInfo); + _isDeviceHealthy = _computeIsAndroidDeviceHealthy(); _fireControlEvent(); } void _oniOSBatteryStateUpdate(IosBatteryInfo? batteryInfo) { + _iosLastBatteryInfo = batteryInfo; _logger.info("Battery info: ${batteryInfo!.toJson()}"); - _isDeviceHealthy = _computeIsiOSDeviceHealthy(batteryInfo); + _isDeviceHealthy = _computeIsiOSDeviceHealthy(); _fireControlEvent(); } - bool _computeIsAndroidDeviceHealthy(AndroidBatteryInfo info) { - return _hasSufficientBattery(info.batteryLevel ?? kMinimumBatteryLevel) && - _isAcceptableTemperatureAndroid( - info.temperature ?? kMaximumTemperatureAndroid, - ) && - _isBatteryHealthy(info.health ?? ""); + void _onThermalStateUpdate(ThermalStatus? thermalStatus) { + _lastThermalStatus = thermalStatus; + _logger.info("Thermal status: $thermalStatus"); + _isDeviceHealthy = _computeIsAndroidDeviceHealthy(); + _fireControlEvent(); } - bool _computeIsiOSDeviceHealthy(IosBatteryInfo info) { - return _hasSufficientBattery(info.batteryLevel ?? kMinimumBatteryLevel); + bool _computeIsAndroidDeviceHealthy() { + return _hasSufficientBattery( + _androidLastBatteryInfo?.batteryLevel ?? kMinimumBatteryLevel, + ) && + _isAcceptableTemperatureAndroid( + _androidLastBatteryInfo?.temperature ?? kMaximumTemperatureAndroid, + ) && + _isBatteryHealthyAndroid(_androidLastBatteryInfo?.health ?? "") && + _isAcceptableThermalState(); + } + + bool _computeIsiOSDeviceHealthy() { + return _hasSufficientBattery( + _iosLastBatteryInfo?.batteryLevel ?? kMinimumBatteryLevel, + ) && + _isAcceptableThermalState(); + } + + bool _isAcceptableThermalState() { + switch (_lastThermalStatus) { + case null: + _logger.info("Thermal status is null, assuming acceptable temperature"); + return true; + case ThermalStatus.none: + case ThermalStatus.light: + case ThermalStatus.moderate: + _logger.info("Thermal status is acceptable: $_lastThermalStatus"); + return true; + case ThermalStatus.severe: + case ThermalStatus.critical: + case ThermalStatus.emergency: + case ThermalStatus.shutdown: + _logger.warning("Thermal status is unacceptable: $_lastThermalStatus"); + return false; + } } bool _hasSufficientBattery(int batteryLevel) { @@ -127,7 +170,7 @@ class MachineLearningController { return temperature <= kMaximumTemperatureAndroid; } - bool _isBatteryHealthy(String health) { + bool _isBatteryHealthyAndroid(String health) { return !kUnhealthyStates.contains(health); } } diff --git a/mobile/pubspec.lock b/mobile/pubspec.lock index 14ad1f5347..3e8a1e8b31 100644 --- a/mobile/pubspec.lock +++ b/mobile/pubspec.lock @@ -2525,6 +2525,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.6.4" + thermal: + dependency: "direct main" + description: + name: thermal + sha256: c6275ebc609e75f1bbbfc354d56d6c559a0c6045a06a8e8c3939c03306a07e18 + url: "https://pub.dev" + source: hosted + version: "1.1.11" timezone: dependency: "direct main" description: diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index 25701c6c44..aecaee0afe 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -190,6 +190,7 @@ dependencies: syncfusion_flutter_sliders: ^25.2.5 synchronized: ^3.3.0+3 system_info_plus: ^0.0.6 + thermal: ^1.1.11 timezone: ^0.9.4 tuple: ^2.0.0 ua_client_hints: ^1.4.0 From 3d5c53b041630e6401bd4bb0cfc1f48982cf4fca Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Tue, 3 Jun 2025 15:04:56 +0530 Subject: [PATCH 115/316] Simplify --- .../machine_learning_controller.dart | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/mobile/lib/services/machine_learning/machine_learning_controller.dart b/mobile/lib/services/machine_learning/machine_learning_controller.dart index c1c61d804f..7850c02e1c 100644 --- a/mobile/lib/services/machine_learning/machine_learning_controller.dart +++ b/mobile/lib/services/machine_learning/machine_learning_controller.dart @@ -129,10 +129,8 @@ class MachineLearningController { return _hasSufficientBattery( _androidLastBatteryInfo?.batteryLevel ?? kMinimumBatteryLevel, ) && - _isAcceptableTemperatureAndroid( - _androidLastBatteryInfo?.temperature ?? kMaximumTemperatureAndroid, - ) && - _isBatteryHealthyAndroid(_androidLastBatteryInfo?.health ?? "") && + _isAcceptableTemperatureAndroid() && + _isBatteryHealthyAndroid() && _isAcceptableThermalState(); } @@ -166,11 +164,13 @@ class MachineLearningController { return batteryLevel >= kMinimumBatteryLevel; } - bool _isAcceptableTemperatureAndroid(int temperature) { - return temperature <= kMaximumTemperatureAndroid; + bool _isAcceptableTemperatureAndroid() { + return (_androidLastBatteryInfo?.temperature ?? + kMaximumTemperatureAndroid) <= + kMaximumTemperatureAndroid; } - bool _isBatteryHealthyAndroid(String health) { - return !kUnhealthyStates.contains(health); + bool _isBatteryHealthyAndroid() { + return !kUnhealthyStates.contains(_androidLastBatteryInfo?.health ?? ""); } } From 78669a855039297dde1218fd174b0b020cffc982 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Tue, 3 Jun 2025 15:18:15 +0530 Subject: [PATCH 116/316] Match mobile and architecture docs From libsodium source crypto_secretbox_keygen(unsigned char k[crypto_secretbox_KEYBYTES]) { randombytes_buf(k, crypto_secretbox_KEYBYTES); } crypto_kdf_keygen(unsigned char k[crypto_kdf_KEYBYTES]) { randombytes_buf(k, crypto_kdf_KEYBYTES); } --- web/packages/base/crypto/libsodium.ts | 34 ++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index 62d8fe1860..89801a6f90 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -130,12 +130,34 @@ const bytes = async (bob: BytesOrB64) => typeof bob == "string" ? fromB64(bob) : bob; /** - * Generate a new key for use with the *Box encryption functions, and return its - * base64 string representation. + * Generate a new randomly generated 256-bit key for use as a general encryption + * key and return its base64 string representation. * - * This returns a new randomly generated 256-bit key suitable for being used - * with libsodium's secretbox APIs. + * From the architecture docs: + * + * > [`crypto_secretbox_keygen`](https://libsodium.gitbook.io/doc/public-key_cryptography/sealed_boxes) + * > is used to generate all random keys within the application. Your + * > `masterKey`, `recoveryKey`, `collectionKey`, `fileKey` are all 256-bit keys + * > generated using this API. + * + * {@link generateKey} can be contrasted with {@link generateBlobOrStreamKey} + * and can be thought of as a hypothetical "generateBoxKey". That is, the key + * returned by this function is suitable for being used with the *Box encryption + * functions (which eventually delegate to the libsodium's secretbox APIs). + * + * While this is a reasonable semantic distinction, in terms of implementation + * there is no difference: currently both {@link generateKey} (or the + * hypothetical "generateBoxKey") and {@link generateBlobOrStreamKey} produce + * 256-bits of entropy that does not have any ties to a particular algorithm. + * + * @returns A new randomly generated 256-bit key. */ +export const generateKey = async () => { + await sodium.ready; + return toB64(sodium.crypto_secretbox_keygen()); +}; + +/** Deprecated, use generateKey */ export const generateBoxKey = async () => { await sodium.ready; return toB64(sodium.crypto_secretbox_keygen()); @@ -863,9 +885,9 @@ export const deriveInteractiveKey = async ( return { key, opsLimit, memLimit }; }; +/** Deprecated, use generateKey */ export async function generateEncryptionKey() { - await sodium.ready; - return await toB64(sodium.crypto_kdf_keygen()); + return generateKey(); } export async function generateSaltToDeriveKey() { From f749e1ee226286c0fb9085c6658e21c6fde80330 Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Tue, 3 Jun 2025 11:59:02 +0200 Subject: [PATCH 117/316] trim search query --- mobile/lib/ui/viewer/search/search_widget.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/lib/ui/viewer/search/search_widget.dart b/mobile/lib/ui/viewer/search/search_widget.dart index 1461d37f99..ec297ce0a7 100644 --- a/mobile/lib/ui/viewer/search/search_widget.dart +++ b/mobile/lib/ui/viewer/search/search_widget.dart @@ -114,7 +114,7 @@ class SearchWidgetState extends State { isLoading.value = true; _debouncer.run(() async { if (mounted) { - query = textController.text; + query = textController.text.trim(); IndexOfStackNotifier().isSearchQueryEmpty = query.isEmpty; searchResultsStreamNotifier.value = _getSearchResultsStream(context, query); From d9a4ffd8f7527650c990b38579639db62efa736a Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Tue, 3 Jun 2025 15:32:47 +0530 Subject: [PATCH 118/316] rename to ComputeController --- mobile/lib/app.dart | 4 ++-- mobile/lib/service_locator.dart | 10 +++++----- ...earning_controller.dart => compute_controller.dart} | 4 ++-- .../ui/settings/ml/machine_learning_settings_page.dart | 8 ++++---- 4 files changed, 13 insertions(+), 13 deletions(-) rename mobile/lib/services/machine_learning/{machine_learning_controller.dart => compute_controller.dart} (98%) diff --git a/mobile/lib/app.dart b/mobile/lib/app.dart index 3b8e3346d8..19fe79fef7 100644 --- a/mobile/lib/app.dart +++ b/mobile/lib/app.dart @@ -107,7 +107,7 @@ class _EnteAppState extends State with WidgetsBindingObserver { if (Platform.isAndroid || kDebugMode) { return Listener( onPointerDown: (event) { - machineLearningController.onUserInteraction(); + computeController.onUserInteraction(); }, child: AdaptiveTheme( light: lightThemeData, @@ -142,7 +142,7 @@ class _EnteAppState extends State with WidgetsBindingObserver { } else { return Listener( onPointerDown: (event) { - machineLearningController.onUserInteraction(); + computeController.onUserInteraction(); }, child: MaterialApp( title: "ente", diff --git a/mobile/lib/service_locator.dart b/mobile/lib/service_locator.dart index 84e5eb6a18..bc96877eb2 100644 --- a/mobile/lib/service_locator.dart +++ b/mobile/lib/service_locator.dart @@ -9,8 +9,8 @@ import "package:photos/services/account/billing_service.dart"; import "package:photos/services/entity_service.dart"; import "package:photos/services/filedata/filedata_service.dart"; import "package:photos/services/location_service.dart"; +import "package:photos/services/machine_learning/compute_controller.dart"; import "package:photos/services/machine_learning/face_ml/face_recognition_service.dart"; -import "package:photos/services/machine_learning/machine_learning_controller.dart"; import "package:photos/services/magic_cache_service.dart"; import "package:photos/services/memories_cache_service.dart"; import "package:photos/services/permission/service.dart"; @@ -142,10 +142,10 @@ BillingService get billingService { return _billingService!; } -MachineLearningController? _machineLearningController; -MachineLearningController get machineLearningController { - _machineLearningController ??= MachineLearningController(); - return _machineLearningController!; +ComputeController? _computeController; +ComputeController get computeController { + _computeController ??= ComputeController(); + return _computeController!; } FaceRecognitionService? _faceRecognitionService; diff --git a/mobile/lib/services/machine_learning/machine_learning_controller.dart b/mobile/lib/services/machine_learning/compute_controller.dart similarity index 98% rename from mobile/lib/services/machine_learning/machine_learning_controller.dart rename to mobile/lib/services/machine_learning/compute_controller.dart index 7850c02e1c..2368f11579 100644 --- a/mobile/lib/services/machine_learning/machine_learning_controller.dart +++ b/mobile/lib/services/machine_learning/compute_controller.dart @@ -10,7 +10,7 @@ import "package:photos/core/event_bus.dart"; import "package:photos/events/machine_learning_control_event.dart"; import "package:thermal/thermal.dart"; -class MachineLearningController { +class ComputeController { final _logger = Logger("MachineLearningController"); static const kMaximumTemperatureAndroid = 42; // 42 degree celsius @@ -31,7 +31,7 @@ class MachineLearningController { bool get isDeviceHealthy => _isDeviceHealthy; - MachineLearningController() { + ComputeController() { _logger.info('MachineLearningController constructor'); _startInteractionTimer(kDefaultInteractionTimeout); if (Platform.isIOS) { diff --git a/mobile/lib/ui/settings/ml/machine_learning_settings_page.dart b/mobile/lib/ui/settings/ml/machine_learning_settings_page.dart index 5db7a028ac..82c81e3967 100644 --- a/mobile/lib/ui/settings/ml/machine_learning_settings_page.dart +++ b/mobile/lib/ui/settings/ml/machine_learning_settings_page.dart @@ -54,7 +54,7 @@ class _MachineLearningSettingsPageState enable: true, wakeLockFor: WakeLockFor.machineLearningSettingsScreen, ); - machineLearningController.forceOverrideML(turnOn: true); + computeController.forceOverrideML(turnOn: true); if (!MLIndexingIsolate.instance.areModelsDownloaded) { _timer = Timer.periodic(const Duration(seconds: 10), (timer) { if (mounted) { @@ -74,7 +74,7 @@ class _MachineLearningSettingsPageState enable: false, wakeLockFor: WakeLockFor.machineLearningSettingsScreen, ); - machineLearningController.forceOverrideML(turnOn: false); + computeController.forceOverrideML(turnOn: false); _timer?.cancel(); _advancedOptionsTimer?.cancel(); } @@ -429,13 +429,13 @@ class MLStatusWidget extends StatefulWidget { class MLStatusWidgetState extends State { Timer? _timer; - bool _isDeviceHealthy = machineLearningController.isDeviceHealthy; + bool _isDeviceHealthy = computeController.isDeviceHealthy; @override void initState() { super.initState(); _timer = Timer.periodic(const Duration(seconds: 10), (timer) { MLService.instance.triggerML(); - _isDeviceHealthy = machineLearningController.isDeviceHealthy; + _isDeviceHealthy = computeController.isDeviceHealthy; setState(() {}); }); } From 1b62dbbb78831436e1996228c8a04a5ebf39b878 Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Tue, 3 Jun 2025 12:08:00 +0200 Subject: [PATCH 119/316] also trim in album search --- mobile/lib/ui/collections/collection_action_sheet.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/lib/ui/collections/collection_action_sheet.dart b/mobile/lib/ui/collections/collection_action_sheet.dart index a827e166bb..9033d16635 100644 --- a/mobile/lib/ui/collections/collection_action_sheet.dart +++ b/mobile/lib/ui/collections/collection_action_sheet.dart @@ -170,7 +170,7 @@ class _CollectionActionSheetState extends State { prefixIcon: Icons.search_rounded, onChange: (value) { setState(() { - _searchQuery = value; + _searchQuery = value.trim(); }); }, isClearable: true, From 48dc3a6b6914ff8737ebca439bcfc3f04353e474 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Tue, 3 Jun 2025 15:38:23 +0530 Subject: [PATCH 120/316] Redirect --- web/packages/base/crypto/ente-impl.ts | 2 +- web/packages/base/crypto/index.ts | 12 +++++++----- web/packages/base/crypto/libsodium.ts | 6 ------ web/packages/base/crypto/worker.ts | 2 +- 4 files changed, 9 insertions(+), 13 deletions(-) diff --git a/web/packages/base/crypto/ente-impl.ts b/web/packages/base/crypto/ente-impl.ts index e719a57d32..39bc8eac9a 100644 --- a/web/packages/base/crypto/ente-impl.ts +++ b/web/packages/base/crypto/ente-impl.ts @@ -12,7 +12,7 @@ export const _toHex = libsodium.toHex; export const _fromHex = libsodium.fromHex; -export const _generateBoxKey = libsodium.generateBoxKey; +export const _generateKey = libsodium.generateKey; export const _generateBlobOrStreamKey = libsodium.generateBlobOrStreamKey; diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index 214f4d119e..d7abbb7a13 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -137,13 +137,15 @@ export const fromHex = (hexString: string) => : sharedWorker().then((w) => w.fromHex(hexString)); /** - * Return a new randomly generated 256-bit key (as a base64 string) suitable for - * use with the *Box encryption functions. + * Return a new randomly generated 256-bit key (as a base64 string). + * + * The returned key is suitable for use with the *Box encryption functions, and + * as a general encryption key (e.g. as the user's master key or recovery key). */ -export const generateBoxKey = () => +export const generateKey = () => inWorker() - ? ei._generateBoxKey() - : sharedWorker().then((w) => w.generateBoxKey()); + ? ei._generateKey() + : sharedWorker().then((w) => w.generateKey()); /** * Return a new randomly generated 256-bit key (as a base64 string) suitable for diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index 89801a6f90..0c3d3b9779 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -157,12 +157,6 @@ export const generateKey = async () => { return toB64(sodium.crypto_secretbox_keygen()); }; -/** Deprecated, use generateKey */ -export const generateBoxKey = async () => { - await sodium.ready; - return toB64(sodium.crypto_secretbox_keygen()); -}; - /** * Generate a new key for use with the *Blob or *Stream encryption functions, * and return its base64 string representation. diff --git a/web/packages/base/crypto/worker.ts b/web/packages/base/crypto/worker.ts index 8e6db10341..95924655c2 100644 --- a/web/packages/base/crypto/worker.ts +++ b/web/packages/base/crypto/worker.ts @@ -18,7 +18,7 @@ export class CryptoWorker { fromB64 = ei._fromB64; toHex = ei._toHex; fromHex = ei._fromHex; - generateBoxKey = ei._generateBoxKey; + generateKey = ei._generateKey; generateBlobOrStreamKey = ei._generateBlobOrStreamKey; encryptBoxB64 = ei._encryptBoxB64; encryptThumbnail = ei._encryptThumbnail; From f4ff63ec0a31095d18fee1e2bcf59b3af87d5cae Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Tue, 3 Jun 2025 15:41:47 +0530 Subject: [PATCH 121/316] Swap --- web/apps/photos/src/services/collectionService.ts | 2 +- web/packages/accounts/services/passkey.ts | 8 +++----- web/packages/accounts/services/srp.ts | 4 ++-- web/packages/base/crypto/libsodium.ts | 5 ----- web/packages/base/crypto/worker.ts | 4 ---- web/packages/shared/crypto/helpers.ts | 2 +- 6 files changed, 7 insertions(+), 18 deletions(-) diff --git a/web/apps/photos/src/services/collectionService.ts b/web/apps/photos/src/services/collectionService.ts index b002c42b0e..94e60e4613 100644 --- a/web/apps/photos/src/services/collectionService.ts +++ b/web/apps/photos/src/services/collectionService.ts @@ -70,7 +70,7 @@ const createCollection = async ( const cryptoWorker = await sharedCryptoWorker(); const encryptionKey = await getActualKey(); const token = getToken(); - const collectionKey = await cryptoWorker.generateEncryptionKey(); + const collectionKey = await cryptoWorker.generateKey(); const { encryptedData: encryptedKey, nonce: keyDecryptionNonce } = await cryptoWorker.encryptToB64(collectionKey, encryptionKey); const { encryptedData: encryptedName, nonce: nameDecryptionNonce } = diff --git a/web/packages/accounts/services/passkey.ts b/web/packages/accounts/services/passkey.ts index e7175c316a..6223ea7497 100644 --- a/web/packages/accounts/services/passkey.ts +++ b/web/packages/accounts/services/passkey.ts @@ -1,9 +1,7 @@ import { TwoFactorAuthorizationResponse } from "ente-accounts/services/user"; import { clientPackageName, isDesktop } from "ente-base/app"; -import { - encryptToB64, - generateEncryptionKey, -} from "ente-base/crypto/libsodium"; +import { generateKey } from "ente-base/crypto"; +import { encryptToB64 } from "ente-base/crypto/libsodium"; import { authenticatedRequestHeaders, ensureOk, @@ -111,7 +109,7 @@ export const openAccountsManagePasskeysPage = async () => { // If not, enable it for them by creating the necessary recovery // information to prevent them from getting locked out. const recoveryKeyB64 = await getRecoveryKey(); - const resetSecret = await generateEncryptionKey(); + const resetSecret = await generateKey(); const encryptionResult = await encryptToB64( resetSecret, recoveryKeyB64, diff --git a/web/packages/accounts/services/srp.ts b/web/packages/accounts/services/srp.ts index fad07bb1a4..30face4208 100644 --- a/web/packages/accounts/services/srp.ts +++ b/web/packages/accounts/services/srp.ts @@ -171,8 +171,8 @@ export async function generateKeyAndSRPAttributes( srpSetupAttributes: SRPSetupAttributes; }> { const cryptoWorker = await sharedCryptoWorker(); - const masterKey = await cryptoWorker.generateEncryptionKey(); - const recoveryKey = await cryptoWorker.generateEncryptionKey(); + const masterKey = await cryptoWorker.generateKey(); + const recoveryKey = await cryptoWorker.generateKey(); const kekSalt = await cryptoWorker.generateSaltToDeriveKey(); const kek = await cryptoWorker.deriveSensitiveKey(passphrase, kekSalt); diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index 0c3d3b9779..1f58fccbab 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -879,11 +879,6 @@ export const deriveInteractiveKey = async ( return { key, opsLimit, memLimit }; }; -/** Deprecated, use generateKey */ -export async function generateEncryptionKey() { - return generateKey(); -} - export async function generateSaltToDeriveKey() { await sodium.ready; return await toB64(sodium.randombytes_buf(sodium.crypto_pwhash_SALTBYTES)); diff --git a/web/packages/base/crypto/worker.ts b/web/packages/base/crypto/worker.ts index 95924655c2..720b993d1d 100644 --- a/web/packages/base/crypto/worker.ts +++ b/web/packages/base/crypto/worker.ts @@ -70,10 +70,6 @@ export class CryptoWorker { return libsodium.encryptUTF8(data, key); } - async generateEncryptionKey() { - return libsodium.generateEncryptionKey(); - } - async generateSaltToDeriveKey() { return libsodium.generateSaltToDeriveKey(); } diff --git a/web/packages/shared/crypto/helpers.ts b/web/packages/shared/crypto/helpers.ts index e57ae944d7..21ab4357d2 100644 --- a/web/packages/shared/crypto/helpers.ts +++ b/web/packages/shared/crypto/helpers.ts @@ -155,7 +155,7 @@ const createNewRecoveryKey = async () => { const cryptoWorker = await sharedCryptoWorker(); - const recoveryKey = await cryptoWorker.generateEncryptionKey(); + const recoveryKey = await cryptoWorker.generateKey(); const encryptedMasterKey = await cryptoWorker.encryptToB64( masterKey, recoveryKey, From 7112e96c75b9816cf7b3796db59381ba1b529bfe Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Tue, 3 Jun 2025 15:46:15 +0530 Subject: [PATCH 122/316] Swap --- web/packages/shared/crypto/helpers.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/web/packages/shared/crypto/helpers.ts b/web/packages/shared/crypto/helpers.ts index 21ab4357d2..db434c0920 100644 --- a/web/packages/shared/crypto/helpers.ts +++ b/web/packages/shared/crypto/helpers.ts @@ -150,17 +150,16 @@ export const getRecoveryKey = async () => { * @returns a new base64 encoded recovery key. */ const createNewRecoveryKey = async () => { - const masterKey = await getActualKey(); + const masterKey = await masterKeyFromSession(); const existingAttributes = getData("keyAttributes"); const cryptoWorker = await sharedCryptoWorker(); - const recoveryKey = await cryptoWorker.generateKey(); - const encryptedMasterKey = await cryptoWorker.encryptToB64( + const encryptedMasterKey = await cryptoWorker.encryptBoxB64( masterKey, recoveryKey, ); - const encryptedRecoveryKey = await cryptoWorker.encryptToB64( + const encryptedRecoveryKey = await cryptoWorker.encryptBoxB64( recoveryKey, masterKey, ); From f0aac696caa8849a120ce7ebfff3a97425ecb41a Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Tue, 3 Jun 2025 15:50:43 +0530 Subject: [PATCH 123/316] Conv --- web/packages/shared/crypto/helpers.ts | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/web/packages/shared/crypto/helpers.ts b/web/packages/shared/crypto/helpers.ts index db434c0920..646f9dff6b 100644 --- a/web/packages/shared/crypto/helpers.ts +++ b/web/packages/shared/crypto/helpers.ts @@ -4,7 +4,6 @@ import log from "ente-base/log"; import { masterKeyFromSession } from "ente-base/session"; import { getData, setData, setLSUser } from "ente-shared/storage/localStorage"; import { type SessionKey, setKey } from "ente-shared/storage/sessionStorage"; -import { getActualKey } from "ente-shared/user"; import type { KeyAttributes } from "ente-shared/user/types"; const LOGIN_SUB_KEY_LENGTH = 32; @@ -122,16 +121,19 @@ export const getRecoveryKey = async () => { recoveryKeyEncryptedWithMasterKey, recoveryKeyDecryptionNonce, } = keyAttributes; - const masterKey = await getActualKey(); + const masterKey = await masterKeyFromSession(); + let recoveryKey: string; if (recoveryKeyEncryptedWithMasterKey) { - recoveryKey = await cryptoWorker.decryptB64( - recoveryKeyEncryptedWithMasterKey!, - recoveryKeyDecryptionNonce!, + recoveryKey = await cryptoWorker.decryptBoxB64( + { + encryptedData: recoveryKeyEncryptedWithMasterKey!, + nonce: recoveryKeyDecryptionNonce!, + }, masterKey, ); } else { - recoveryKey = await createNewRecoveryKey(); + recoveryKey = await createNewRecoveryKey(masterKey); } return recoveryKey; } catch (e) { @@ -149,8 +151,7 @@ export const getRecoveryKey = async () => { * * @returns a new base64 encoded recovery key. */ -const createNewRecoveryKey = async () => { - const masterKey = await masterKeyFromSession(); +const createNewRecoveryKey = async (masterKey: Uint8Array) => { const existingAttributes = getData("keyAttributes"); const cryptoWorker = await sharedCryptoWorker(); From 2d7689a6dabad5e02624955631ce697b39b720d6 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Tue, 3 Jun 2025 15:56:27 +0530 Subject: [PATCH 124/316] Consolidate and move --- .../accounts/components/RecoveryKey.tsx | 8 +- web/packages/accounts/services/passkey.ts | 10 +- .../accounts/services/recovery-key.ts | 122 ++++++++++++++++++ web/packages/accounts/utils/recovery-key.ts | 48 ------- .../new/photos/components/gallery/helpers.ts | 4 +- web/packages/shared/crypto/helpers.ts | 75 +---------- 6 files changed, 135 insertions(+), 132 deletions(-) create mode 100644 web/packages/accounts/services/recovery-key.ts delete mode 100644 web/packages/accounts/utils/recovery-key.ts diff --git a/web/packages/accounts/components/RecoveryKey.tsx b/web/packages/accounts/components/RecoveryKey.tsx index 5d9f25c7b6..9e1b5da3a0 100644 --- a/web/packages/accounts/components/RecoveryKey.tsx +++ b/web/packages/accounts/components/RecoveryKey.tsx @@ -15,10 +15,12 @@ import { useIsSmallWidth } from "ente-base/components/utils/hooks"; import type { ModalVisibilityProps } from "ente-base/components/utils/modal"; import log from "ente-base/log"; import { downloadString } from "ente-base/utils/web"; -import { getRecoveryKey } from "ente-shared/crypto/helpers"; import { t } from "i18next"; import { useCallback, useEffect, useState } from "react"; -import { recoveryKeyB64ToMnemonic } from "../utils/recovery-key"; +import { + getUserRecoveryKeyB64, + recoveryKeyB64ToMnemonic, +} from "../services/recovery-key"; import { CodeBlock } from "./CodeBlock"; type RecoveryKeyProps = ModalVisibilityProps & { @@ -113,7 +115,7 @@ export const RecoveryKey: React.FC = ({ }; const getRecoveryKeyMnemonic = async () => - recoveryKeyB64ToMnemonic(await getRecoveryKey()); + recoveryKeyB64ToMnemonic(await getUserRecoveryKeyB64()); const downloadRecoveryKeyMnemonic = (key: string) => downloadString(key, "ente-recovery-key.txt"); diff --git a/web/packages/accounts/services/passkey.ts b/web/packages/accounts/services/passkey.ts index 6223ea7497..34f3ef769c 100644 --- a/web/packages/accounts/services/passkey.ts +++ b/web/packages/accounts/services/passkey.ts @@ -1,7 +1,6 @@ import { TwoFactorAuthorizationResponse } from "ente-accounts/services/user"; import { clientPackageName, isDesktop } from "ente-base/app"; -import { generateKey } from "ente-base/crypto"; -import { encryptToB64 } from "ente-base/crypto/libsodium"; +import { encryptBoxB64, generateKey } from "ente-base/crypto"; import { authenticatedRequestHeaders, ensureOk, @@ -10,11 +9,11 @@ import { } from "ente-base/http"; import log from "ente-base/log"; import { apiURL } from "ente-base/origins"; -import { getRecoveryKey } from "ente-shared/crypto/helpers"; import HTTPService from "ente-shared/network/HTTPService"; import { getData, setData, setLSUser } from "ente-shared/storage/localStorage"; import { getToken } from "ente-shared/storage/localStorage/helpers"; import { z } from "zod"; +import { getUserRecoveryKeyB64 } from "./recovery-key"; import { unstashRedirect } from "./redirect"; /** @@ -108,11 +107,10 @@ export const openAccountsManagePasskeysPage = async () => { if (!recoveryEnabled) { // If not, enable it for them by creating the necessary recovery // information to prevent them from getting locked out. - const recoveryKeyB64 = await getRecoveryKey(); const resetSecret = await generateKey(); - const encryptionResult = await encryptToB64( + const encryptionResult = await encryptBoxB64( resetSecret, - recoveryKeyB64, + await getUserRecoveryKeyB64(), ); await configurePasskeyRecovery( resetSecret, diff --git a/web/packages/accounts/services/recovery-key.ts b/web/packages/accounts/services/recovery-key.ts new file mode 100644 index 0000000000..dcb1011337 --- /dev/null +++ b/web/packages/accounts/services/recovery-key.ts @@ -0,0 +1,122 @@ +import * as bip39 from "bip39"; +import { + decryptBoxB64, + fromHex, + sharedCryptoWorker, + toHex, +} from "ente-base/crypto"; +import { masterKeyFromSession } from "ente-base/session"; +import { getData, setData } from "ente-shared/storage/localStorage"; +import type { KeyAttributes } from "ente-shared/user/types"; +import { putUserRecoveryKeyAttributes } from "./user"; + +// Mobile client library only supports English. +bip39.setDefaultWordlist("english"); + +/** + * Convert the provided BIP-39 mnemonic string into its base64 representation. + * + * @param recoveryKeyMnemonicOrHex The BIP-39 mnemonic (24 word) string + * representing the recovery key. For legacy compatibility, the function also + * works if provided the hex representation of the recovery key. + * + * @returns A base64 string representing the underlying bytes of the recovery key. + */ +export const recoveryKeyB64FromMnemonic = ( + recoveryKeyMnemonicOrHex: string, +) => { + const trimmedInput = recoveryKeyMnemonicOrHex + .trim() + .split(" ") + .map((part) => part.trim()) + .filter((part) => !!part) + .join(" "); + + let recoveryKeyHex: string; + // Check if user is entering mnemonic recovery key. + if (trimmedInput.indexOf(" ") > 0) { + if (trimmedInput.split(" ").length != 24) { + throw new Error("recovery code should have 24 words"); + } + recoveryKeyHex = bip39.mnemonicToEntropy(trimmedInput); + } else { + recoveryKeyHex = trimmedInput; + } + + return fromHex(recoveryKeyHex); +}; + +/** + * Convert the provided base64 encoded recovery key into its BIP-39 mnemonic. + * + * @param recoveryKeyB64 The base64 encoded recovery key to mnemonize. + * + * @returns A 24-word mnemonic that serves as the user visible recovery key. + */ +export const recoveryKeyB64ToMnemonic = async (recoveryKeyB64: string) => + bip39.entropyToMnemonic(await toHex(recoveryKeyB64)); + +/** + * Return the (decrypted) recovery key of the logged in user. + * + * @returns The user's base64 encoded recovery key. + */ +export const getUserRecoveryKeyB64 = async () => { + const masterKey = await masterKeyFromSession(); + + const keyAttributes: KeyAttributes = getData("keyAttributes"); + const { recoveryKeyEncryptedWithMasterKey, recoveryKeyDecryptionNonce } = + keyAttributes; + + if (recoveryKeyEncryptedWithMasterKey && recoveryKeyDecryptionNonce) { + return decryptBoxB64( + { + encryptedData: recoveryKeyEncryptedWithMasterKey, + nonce: recoveryKeyDecryptionNonce, + }, + masterKey, + ); + } else { + return createNewRecoveryKey(masterKey); + } +}; + +/** + * Generate a new recovery key, tell remote about it, update our local state, + * and then return it. + * + * This function will be used only for legacy users for whom we did not generate + * recovery keys during sign up. + * + * @returns a new base64 encoded recovery key. + */ +const createNewRecoveryKey = async (masterKey: Uint8Array) => { + const existingAttributes = getData("keyAttributes"); + + const cryptoWorker = await sharedCryptoWorker(); + const recoveryKey = await cryptoWorker.generateKey(); + const encryptedMasterKey = await cryptoWorker.encryptBoxB64( + masterKey, + recoveryKey, + ); + const encryptedRecoveryKey = await cryptoWorker.encryptBoxB64( + recoveryKey, + masterKey, + ); + + const recoveryKeyAttributes = { + masterKeyEncryptedWithRecoveryKey: encryptedMasterKey.encryptedData, + masterKeyDecryptionNonce: encryptedMasterKey.nonce, + recoveryKeyEncryptedWithMasterKey: encryptedRecoveryKey.encryptedData, + recoveryKeyDecryptionNonce: encryptedRecoveryKey.nonce, + }; + + await putUserRecoveryKeyAttributes(recoveryKeyAttributes); + + setData("keyAttributes", { + ...existingAttributes, + ...recoveryKeyAttributes, + }); + + return recoveryKey; +}; diff --git a/web/packages/accounts/utils/recovery-key.ts b/web/packages/accounts/utils/recovery-key.ts deleted file mode 100644 index 59738da782..0000000000 --- a/web/packages/accounts/utils/recovery-key.ts +++ /dev/null @@ -1,48 +0,0 @@ -import * as bip39 from "bip39"; -import { fromHex, toHex } from "ente-base/crypto"; - -// Mobile client library only supports English. -bip39.setDefaultWordlist("english"); - -/** - * Convert the provided BIP-39 mnemonic string into its base64 representation. - * - * @param recoveryKeyMnemonicOrHex The BIP-39 mnemonic (24 word) string - * representing the recovery key. For legacy compatibility, the function also - * works if provided the hex representation of the recovery key. - * - * @returns A base64 string representing the underlying bytes of the recovery key. - */ -export const recoveryKeyB64FromMnemonic = ( - recoveryKeyMnemonicOrHex: string, -) => { - const trimmedInput = recoveryKeyMnemonicOrHex - .trim() - .split(" ") - .map((part) => part.trim()) - .filter((part) => !!part) - .join(" "); - - let recoveryKeyHex: string; - // Check if user is entering mnemonic recovery key. - if (trimmedInput.indexOf(" ") > 0) { - if (trimmedInput.split(" ").length != 24) { - throw new Error("recovery code should have 24 words"); - } - recoveryKeyHex = bip39.mnemonicToEntropy(trimmedInput); - } else { - recoveryKeyHex = trimmedInput; - } - - return fromHex(recoveryKeyHex); -}; - -/** - * Convert the provided base64 encoded recovery key into its BIP-39 mnemonic. - * - * @param recoveryKeyB64 The base64 encoded recovery key to mnemonize. - * - * @returns A 24-word mnemonic that serves as the user visible recovery key. - */ -export const recoveryKeyB64ToMnemonic = async (recoveryKeyB64: string) => - bip39.entropyToMnemonic(await toHex(recoveryKeyB64)); diff --git a/web/packages/new/photos/components/gallery/helpers.ts b/web/packages/new/photos/components/gallery/helpers.ts index afce9688d9..81596bf6ef 100644 --- a/web/packages/new/photos/components/gallery/helpers.ts +++ b/web/packages/new/photos/components/gallery/helpers.ts @@ -10,10 +10,10 @@ * is a needed for fast refresh to work. */ +import { getUserRecoveryKeyB64 } from "ente-accounts/services/recovery-key"; import log from "ente-base/log"; import type { Collection } from "ente-media/collection"; import type { FamilyData } from "ente-new/photos/services/user-details"; -import { getRecoveryKey } from "ente-shared/crypto/helpers"; import type { User } from "ente-shared/user/types"; /** @@ -28,7 +28,7 @@ import type { User } from "ente-shared/user/types"; */ export const validateKey = async () => { try { - await getRecoveryKey(); + await getUserRecoveryKeyB64(); return true; } catch (e) { log.warn("Failed to validate key" /*, caller will logout */, e); diff --git a/web/packages/shared/crypto/helpers.ts b/web/packages/shared/crypto/helpers.ts index 646f9dff6b..0235f739e0 100644 --- a/web/packages/shared/crypto/helpers.ts +++ b/web/packages/shared/crypto/helpers.ts @@ -1,6 +1,5 @@ -import { putUserRecoveryKeyAttributes } from "ente-accounts/services/user"; +import { getUserRecoveryKeyB64 } from "ente-accounts/services/recovery-key"; import { sharedCryptoWorker } from "ente-base/crypto"; -import log from "ente-base/log"; import { masterKeyFromSession } from "ente-base/session"; import { getData, setData, setLSUser } from "ente-shared/storage/localStorage"; import { type SessionKey, setKey } from "ente-shared/storage/sessionStorage"; @@ -108,80 +107,10 @@ export const saveKeyInSessionStore = async ( export const encryptWithRecoveryKey = async (data: string) => { const cryptoWorker = await sharedCryptoWorker(); - const recoveryKeyB64 = await getRecoveryKey(); + const recoveryKeyB64 = await getUserRecoveryKeyB64(); return cryptoWorker.encryptBoxB64(data, recoveryKeyB64); }; -export const getRecoveryKey = async () => { - try { - const cryptoWorker = await sharedCryptoWorker(); - - const keyAttributes: KeyAttributes = getData("keyAttributes"); - const { - recoveryKeyEncryptedWithMasterKey, - recoveryKeyDecryptionNonce, - } = keyAttributes; - const masterKey = await masterKeyFromSession(); - - let recoveryKey: string; - if (recoveryKeyEncryptedWithMasterKey) { - recoveryKey = await cryptoWorker.decryptBoxB64( - { - encryptedData: recoveryKeyEncryptedWithMasterKey!, - nonce: recoveryKeyDecryptionNonce!, - }, - masterKey, - ); - } else { - recoveryKey = await createNewRecoveryKey(masterKey); - } - return recoveryKey; - } catch (e) { - log.error("getRecoveryKey failed", e); - throw e; - } -}; - -/** - * Generate a new recovery key, tell remote about it, update our local state, - * and then return it. - * - * This function will be used only for legacy users for whom we did not generate - * recovery keys during sign up. - * - * @returns a new base64 encoded recovery key. - */ -const createNewRecoveryKey = async (masterKey: Uint8Array) => { - const existingAttributes = getData("keyAttributes"); - - const cryptoWorker = await sharedCryptoWorker(); - const recoveryKey = await cryptoWorker.generateKey(); - const encryptedMasterKey = await cryptoWorker.encryptBoxB64( - masterKey, - recoveryKey, - ); - const encryptedRecoveryKey = await cryptoWorker.encryptBoxB64( - recoveryKey, - masterKey, - ); - - const recoveryKeyAttributes = { - masterKeyEncryptedWithRecoveryKey: encryptedMasterKey.encryptedData, - masterKeyDecryptionNonce: encryptedMasterKey.nonce, - recoveryKeyEncryptedWithMasterKey: encryptedRecoveryKey.encryptedData, - recoveryKeyDecryptionNonce: encryptedRecoveryKey.nonce, - }; - - await putUserRecoveryKeyAttributes(recoveryKeyAttributes); - - setData("keyAttributes", { - ...existingAttributes, - ...recoveryKeyAttributes, - }); - - return recoveryKey; -}; - /** * Decrypt the {@link encryptedChallenge} sent by remote during the delete * account flow ({@link getAccountDeleteChallenge}), returning a value that can From 6ce7921a16a3f641cbc53329172ff75a648a768d Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Tue, 3 Jun 2025 16:08:42 +0530 Subject: [PATCH 125/316] Inline --- web/packages/accounts/pages/recover.tsx | 2 +- .../accounts/pages/two-factor/recover.tsx | 2 +- web/packages/accounts/pages/two-factor/setup.tsx | 15 ++++++++------- web/packages/shared/crypto/helpers.ts | 7 ------- 4 files changed, 10 insertions(+), 16 deletions(-) diff --git a/web/packages/accounts/pages/recover.tsx b/web/packages/accounts/pages/recover.tsx index e0ed5eced5..7d4569795d 100644 --- a/web/packages/accounts/pages/recover.tsx +++ b/web/packages/accounts/pages/recover.tsx @@ -3,9 +3,9 @@ import { AccountsPageFooter, AccountsPageTitle, } from "ente-accounts/components/layouts/centered-paper"; +import { recoveryKeyB64FromMnemonic } from "ente-accounts/services/recovery-key"; import { appHomeRoute, stashRedirect } from "ente-accounts/services/redirect"; import { sendOTT } from "ente-accounts/services/user"; -import { recoveryKeyB64FromMnemonic } from "ente-accounts/utils/recovery-key"; import { LinkButton } from "ente-base/components/LinkButton"; import { useBaseContext } from "ente-base/context"; import { decryptBoxB64 } from "ente-base/crypto"; diff --git a/web/packages/accounts/pages/two-factor/recover.tsx b/web/packages/accounts/pages/two-factor/recover.tsx index 90d93ab23c..df55ea2682 100644 --- a/web/packages/accounts/pages/two-factor/recover.tsx +++ b/web/packages/accounts/pages/two-factor/recover.tsx @@ -5,12 +5,12 @@ import { AccountsPageFooter, AccountsPageTitle, } from "ente-accounts/components/layouts/centered-paper"; +import { recoveryKeyB64FromMnemonic } from "ente-accounts/services/recovery-key"; import { recoverTwoFactor, removeTwoFactor, type TwoFactorType, } from "ente-accounts/services/user"; -import { recoveryKeyB64FromMnemonic } from "ente-accounts/utils/recovery-key"; import { LinkButton } from "ente-base/components/LinkButton"; import type { MiniDialogAttributes } from "ente-base/components/MiniDialog"; import { useBaseContext } from "ente-base/context"; diff --git a/web/packages/accounts/pages/two-factor/setup.tsx b/web/packages/accounts/pages/two-factor/setup.tsx index ec61ccacfe..d97f48bf31 100644 --- a/web/packages/accounts/pages/two-factor/setup.tsx +++ b/web/packages/accounts/pages/two-factor/setup.tsx @@ -8,11 +8,12 @@ import { CenteredFill } from "ente-base/components/containers"; import { LinkButton } from "ente-base/components/LinkButton"; import { ActivityIndicator } from "ente-base/components/mui/ActivityIndicator"; import { FocusVisibleButton } from "ente-base/components/mui/FocusVisibleButton"; -import { encryptWithRecoveryKey } from "ente-shared/crypto/helpers"; +import { encryptBoxB64 } from "ente-base/crypto"; import { getData, setLSUser } from "ente-shared/storage/localStorage"; import { t } from "i18next"; import { useRouter } from "next/router"; import React, { useEffect, useState } from "react"; +import { getUserRecoveryKeyB64 } from "../../services/recovery-key"; const Page: React.FC = () => { const [twoFactorSecret, setTwoFactorSecret] = useState< @@ -26,14 +27,14 @@ const Page: React.FC = () => { }, []); const handleSubmit = async (otp: string) => { - const { - encryptedData: encryptedTwoFactorSecret, - nonce: twoFactorSecretDecryptionNonce, - } = await encryptWithRecoveryKey(twoFactorSecret!.secretCode); + const encryptedBox = await encryptBoxB64( + twoFactorSecret!.secretCode, + await getUserRecoveryKeyB64(), + ); await enableTwoFactor({ code: otp, - encryptedTwoFactorSecret, - twoFactorSecretDecryptionNonce, + encryptedTwoFactorSecret: encryptedBox.encryptedData, + twoFactorSecretDecryptionNonce: encryptedBox.nonce, }); await setLSUser({ ...getData("user"), isTwoFactorEnabled: true }); await router.push(appHomeRoute); diff --git a/web/packages/shared/crypto/helpers.ts b/web/packages/shared/crypto/helpers.ts index 0235f739e0..7cb9a5a1c8 100644 --- a/web/packages/shared/crypto/helpers.ts +++ b/web/packages/shared/crypto/helpers.ts @@ -1,4 +1,3 @@ -import { getUserRecoveryKeyB64 } from "ente-accounts/services/recovery-key"; import { sharedCryptoWorker } from "ente-base/crypto"; import { masterKeyFromSession } from "ente-base/session"; import { getData, setData, setLSUser } from "ente-shared/storage/localStorage"; @@ -105,12 +104,6 @@ export const saveKeyInSessionStore = async ( } }; -export const encryptWithRecoveryKey = async (data: string) => { - const cryptoWorker = await sharedCryptoWorker(); - const recoveryKeyB64 = await getUserRecoveryKeyB64(); - return cryptoWorker.encryptBoxB64(data, recoveryKeyB64); -}; - /** * Decrypt the {@link encryptedChallenge} sent by remote during the delete * account flow ({@link getAccountDeleteChallenge}), returning a value that can From 0202cd144796869fb634e65d69235119c317c562 Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Tue, 3 Jun 2025 16:23:08 +0530 Subject: [PATCH 126/316] Switch to exif_reader --- .../ui/viewer/file/file_details_widget.dart | 2 +- .../file_details/exif_item_widgets.dart | 2 +- mobile/lib/utils/exif_util.dart | 2 +- mobile/lib/utils/file_uploader_util.dart | 2 +- mobile/pubspec.lock | 37 ++++++++++++++++--- mobile/pubspec.yaml | 5 ++- 6 files changed, 39 insertions(+), 11 deletions(-) diff --git a/mobile/lib/ui/viewer/file/file_details_widget.dart b/mobile/lib/ui/viewer/file/file_details_widget.dart index 58528159ae..1fa5a5ba70 100644 --- a/mobile/lib/ui/viewer/file/file_details_widget.dart +++ b/mobile/lib/ui/viewer/file/file_details_widget.dart @@ -2,7 +2,7 @@ import "dart:async"; import "dart:developer"; import "dart:io"; -import "package:exif/exif.dart"; +import "package:exif_reader/exif_reader.dart"; import "package:flutter/foundation.dart"; import "package:flutter/material.dart"; import "package:logging/logging.dart"; diff --git a/mobile/lib/ui/viewer/file_details/exif_item_widgets.dart b/mobile/lib/ui/viewer/file_details/exif_item_widgets.dart index dead77781b..d77a44988e 100644 --- a/mobile/lib/ui/viewer/file_details/exif_item_widgets.dart +++ b/mobile/lib/ui/viewer/file_details/exif_item_widgets.dart @@ -1,4 +1,4 @@ -import "package:exif/exif.dart"; +import "package:exif_reader/exif_reader.dart"; import "package:flutter/material.dart"; import "package:photos/generated/l10n.dart"; import 'package:photos/models/file/file.dart'; diff --git a/mobile/lib/utils/exif_util.dart b/mobile/lib/utils/exif_util.dart index 086a11e28b..f6d3363614 100644 --- a/mobile/lib/utils/exif_util.dart +++ b/mobile/lib/utils/exif_util.dart @@ -3,7 +3,7 @@ import "dart:developer"; import "dart:io"; import "package:computer/computer.dart"; -import 'package:exif/exif.dart'; +import 'package:exif_reader/exif_reader.dart'; import "package:ffmpeg_kit_flutter/ffprobe_kit.dart"; import "package:ffmpeg_kit_flutter/media_information.dart"; import "package:ffmpeg_kit_flutter/media_information_session.dart"; diff --git a/mobile/lib/utils/file_uploader_util.dart b/mobile/lib/utils/file_uploader_util.dart index 5ca93defe0..b49120ce7b 100644 --- a/mobile/lib/utils/file_uploader_util.dart +++ b/mobile/lib/utils/file_uploader_util.dart @@ -7,7 +7,7 @@ import 'dart:ui' as ui; import "package:archive/archive_io.dart"; import "package:computer/computer.dart"; import 'package:ente_crypto/ente_crypto.dart'; -import "package:exif/exif.dart"; +import "package:exif_reader/exif_reader.dart"; import 'package:logging/logging.dart'; import "package:motion_photos/motion_photos.dart"; import 'package:motionphoto/motionphoto.dart'; diff --git a/mobile/pubspec.lock b/mobile/pubspec.lock index 14ad1f5347..7109e08165 100644 --- a/mobile/pubspec.lock +++ b/mobile/pubspec.lock @@ -167,6 +167,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.1" + brotli: + dependency: transitive + description: + name: brotli + sha256: "7f891558ed779aab2bed874f0a36b8123f9ff3f19cf6efbee89e18ed294945ae" + url: "https://pub.dev" + source: hosted + version: "0.6.0" build: dependency: transitive description: @@ -566,14 +574,15 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.1" - exif: + exif_reader: dependency: "direct main" description: - name: exif - sha256: a7980fdb3b7ffcd0b035e5b8a5e1eef7cadfe90ea6a4e85ebb62f87b96c7a172 - url: "https://pub.dev" - source: hosted - version: "3.3.0" + path: "." + ref: "476f701c084861a8e9de5f4f4e5e067fc85fda96" + resolved-ref: "476f701c084861a8e9de5f4f4e5e067fc85fda96" + url: "https://github.com/mgenware/exif_reader.git" + source: git + version: "3.16.1" expandable: dependency: "direct main" description: @@ -1347,6 +1356,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.5" + iso_base_media: + dependency: transitive + description: + name: iso_base_media + sha256: "0f5594feef1fba98179a2df95d1afbdda952de0c7a2e35e6815093f7c00aaf06" + url: "https://pub.dev" + source: hosted + version: "4.5.2" jni: dependency: transitive description: @@ -2103,6 +2120,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.2.2" + random_access_source: + dependency: transitive + description: + name: random_access_source + sha256: dc86934da2cc4777334f43916234410f232032738c519c0c3452147c5d4fec89 + url: "https://pub.dev" + source: hosted + version: "2.1.0" receive_sharing_intent: dependency: "direct main" description: diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index 25701c6c44..2bc68c240e 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -61,7 +61,10 @@ dependencies: path: plugins/ente_feature_flag equatable: ^2.0.5 event_bus: ^2.0.0 - exif: ^3.0.0 + exif_reader: + git: + url: https://github.com/mgenware/exif_reader.git + ref: 476f701c084861a8e9de5f4f4e5e067fc85fda96 expandable: ^5.0.1 expansion_tile_card: ^3.0.0 extended_image: ^8.1.1 From c17a8d4c382a42d796be8ff197101fcda17cd26b Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Tue, 3 Jun 2025 16:23:16 +0530 Subject: [PATCH 127/316] Fix fr arb --- mobile/lib/l10n/intl_fr.arb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mobile/lib/l10n/intl_fr.arb b/mobile/lib/l10n/intl_fr.arb index 3f4dc5004c..811d3f1f28 100644 --- a/mobile/lib/l10n/intl_fr.arb +++ b/mobile/lib/l10n/intl_fr.arb @@ -891,7 +891,7 @@ "authToViewYourMemories": "Authentifiez-vous pour voir vos souvenirs", "unlock": "Déverrouiller", "freeUpSpace": "Libérer de l'espace", - "freeUpSpaceSaving": "{count, plural, one {}=1 {Il peut être supprimé de l'appareil pour libérer {formattedSize}} other {Ils peuvent être supprimés de l'appareil pour libérer {formattedSize}}}", + "freeUpSpaceSaving": "{count, plural, =1 {Il peut être supprimé de l'appareil pour libérer {formattedSize}} other {Ils peuvent être supprimés de l'appareil pour libérer {formattedSize}}}", "filesBackedUpInAlbum": "{count, plural, one {1 fichier dans cet album a été sauvegardé en toute sécurité} other {{formattedNumber} fichiers dans cet album ont été sauvegardés en toute sécurité}}", "@filesBackedUpInAlbum": { "description": "Text to tell user how many files have been backed up in the album", @@ -925,7 +925,7 @@ "@freeUpSpaceSaving": { "description": "Text to tell user how much space they can free up by deleting items from the device" }, - "freeUpAccessPostDelete": "Vous pouvez toujours {count, plural, one {}=1 {l'} other {les}} accéder sur Ente tant que vous avez un abonnement actif", + "freeUpAccessPostDelete": "Vous pouvez toujours {count, plural, =1 {l'} other {les}} accéder sur Ente tant que vous avez un abonnement actif", "@freeUpAccessPostDelete": { "placeholders": { "count": { @@ -1261,8 +1261,8 @@ "description": "Subtitle to indicate that the user can find people quickly by name" }, "findPeopleByName": "Trouver des personnes rapidement par leur nom", - "addViewers": "{count, plural, one {}=0 {Ajouter un spectateur} =1 {Ajouter une spectateur} other {Ajouter des spectateurs}}", - "addCollaborators": "{count, plural, one {}=0 {Ajouter un collaborateur} =1 {Ajouter un collaborateur} other {Ajouter des collaborateurs}}", + "addViewers": "{count, plural, =0 {Ajouter un spectateur} =1 {Ajouter une spectateur} other {Ajouter des spectateurs}}", + "addCollaborators": "{count, plural, =0 {Ajouter un collaborateur} =1 {Ajouter un collaborateur} other {Ajouter des collaborateurs}}", "longPressAnEmailToVerifyEndToEndEncryption": "Appuyez longuement sur un email pour vérifier le chiffrement de bout en bout.", "developerSettingsWarning": "Êtes-vous sûr de vouloir modifier les paramètres du développeur ?", "developerSettings": "Paramètres du développeur", @@ -1396,7 +1396,7 @@ "enableMachineLearningBanner": "Activer l'apprentissage automatique pour la reconnaissance des visages et la recherche magique", "searchDiscoverEmptySection": "Les images seront affichées ici une fois le traitement terminé", "searchPersonsEmptySection": "Les personnes seront affichées ici une fois le traitement terminé", - "viewersSuccessfullyAdded": "{count, plural, one {}=0 {0 spectateur ajouté} =1 {Un spectateur ajouté} other {{count} spectateurs ajoutés}}", + "viewersSuccessfullyAdded": "{count, plural, =0 {0 spectateur ajouté} =1 {Un spectateur ajouté} other {{count} spectateurs ajoutés}}", "@viewersSuccessfullyAdded": { "placeholders": { "count": { From 113b82045186e7ca3d063b8786f7e1211b766517 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Tue, 3 Jun 2025 16:54:17 +0530 Subject: [PATCH 128/316] Same name --- web/packages/accounts/pages/two-factor/setup.tsx | 6 +++--- web/packages/accounts/services/passkey.ts | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/web/packages/accounts/pages/two-factor/setup.tsx b/web/packages/accounts/pages/two-factor/setup.tsx index d97f48bf31..2f128d35da 100644 --- a/web/packages/accounts/pages/two-factor/setup.tsx +++ b/web/packages/accounts/pages/two-factor/setup.tsx @@ -27,14 +27,14 @@ const Page: React.FC = () => { }, []); const handleSubmit = async (otp: string) => { - const encryptedBox = await encryptBoxB64( + const box = await encryptBoxB64( twoFactorSecret!.secretCode, await getUserRecoveryKeyB64(), ); await enableTwoFactor({ code: otp, - encryptedTwoFactorSecret: encryptedBox.encryptedData, - twoFactorSecretDecryptionNonce: encryptedBox.nonce, + encryptedTwoFactorSecret: box.encryptedData, + twoFactorSecretDecryptionNonce: box.nonce, }); await setLSUser({ ...getData("user"), isTwoFactorEnabled: true }); await router.push(appHomeRoute); diff --git a/web/packages/accounts/services/passkey.ts b/web/packages/accounts/services/passkey.ts index 34f3ef769c..e2a749a93e 100644 --- a/web/packages/accounts/services/passkey.ts +++ b/web/packages/accounts/services/passkey.ts @@ -108,14 +108,14 @@ export const openAccountsManagePasskeysPage = async () => { // If not, enable it for them by creating the necessary recovery // information to prevent them from getting locked out. const resetSecret = await generateKey(); - const encryptionResult = await encryptBoxB64( + const box = await encryptBoxB64( resetSecret, await getUserRecoveryKeyB64(), ); await configurePasskeyRecovery( resetSecret, - encryptionResult.encryptedData, - encryptionResult.nonce, + box.encryptedData, + box.nonce, ); } From c0d57c72bfa6c73ce4b1bc3a3be9c4a6d2198884 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Tue, 3 Jun 2025 19:33:03 +0530 Subject: [PATCH 129/316] LP tweaks --- .../gallery/components/viewer/photoswipe.ts | 104 +++++++++++++++++- 1 file changed, 98 insertions(+), 6 deletions(-) diff --git a/web/packages/gallery/components/viewer/photoswipe.ts b/web/packages/gallery/components/viewer/photoswipe.ts index f26d566f29..7cd0da86b8 100644 --- a/web/packages/gallery/components/viewer/photoswipe.ts +++ b/web/packages/gallery/components/viewer/photoswipe.ts @@ -353,6 +353,24 @@ export class FileViewerPhotoSwipe { return asItemData(content.data).isContentZoomable ?? isZoomable; }); + /** + * Last state of the live photo playback on initial display. + */ + let livePhotoPlayInitial = true; + + /** + * Set to the event listener that will be called at the end of the + * initial playback of the initial playback of a live photo on the + * currently displayed slide. + * + * This will be present only during the initial playback (it will be + * cleared when initial playback completes), and can also thus be used + * as a pseudo `isPlayingLivePhotoInitial`. + */ + let livePhotoPlayInitialEndedEvent: + | { listener: () => void; video: HTMLVideoElement } + | undefined; + /** * Last state of the live photo playback toggle. */ @@ -375,17 +393,91 @@ export class FileViewerPhotoSwipe { /** * Update the state of the given {@link videoElement} and the - * {@link livePhotoPlayButtonElement} to reflect {@link livePhotoPlay}. + * {@link livePhotoPlayButtonElement} to reflect + * {@link livePhotoPlayInitial}. + * + * [Note: Live photo playback] + * + * 1. When opening a live photo, play it once unless + * {@link livePhotoPlayInitial} is disabled. This is the behaviour + * controlled by the {@link livePhotoUpdatePlayInitial} function. + * + * 2. If the user toggles playback of during the initial video playback, + * then remember their choice for the current session in the using + * the {@link livePhotoPlayInitial} variable. + * + * 3. The user can play the video again in a loop by activating the + * {@link livePhotoPlayButtonElement}, which triggers the + * {@link livePhotoUpdatePlayToggle} function. This playback state is + * maintained in the {@link livePhotoPlay} variable. */ - const livePhotoUpdatePlay = (video: HTMLVideoElement) => { + const livePhotoUpdatePlayInitial = (video: HTMLVideoElement) => { + const button = livePhotoPlayButtonElement; + if (button) showIf(button, true); + + // Remove any loop attributes we might've inherited from a + // previously displayed live photos elements on the current slide. + video.removeAttribute("loop"); + + // And same for the transient playback state. + if (livePhotoPlayInitialEndedEvent) { + const { video, listener } = livePhotoPlayInitialEndedEvent; + video.removeEventListener("ended", listener); + livePhotoPlayInitialEndedEvent = undefined; + } + + if (livePhotoPlayInitial) { + // Play it once + button?.classList.remove("pswp-ente-off"); + void abortablePlayVideo(video); + video.style.display = "initial"; + const listener = () => { + button?.classList.add("pswp-ente-off"); + video.style.display = "none"; + livePhotoPlayInitialEndedEvent = undefined; + }; + livePhotoPlayInitialEndedEvent = { video, listener }; + video.addEventListener("ended", listener, { once: true }); + } else { + button?.classList.add("pswp-ente-off"); + video.pause(); + video.style.display = "none"; + } + }; + + /** + * See: [Note: Live photo playback] + * + * This function handles the playback toggled via an explicit user + * action (button activation or keyboard shortcut). + */ + const livePhotoUpdatePlayToggle = (video: HTMLVideoElement) => { const button = livePhotoPlayButtonElement; if (button) showIf(button, true); if (livePhotoPlay) { + // Add the loop attribute. + video.setAttribute("loop", ""); + button?.classList.remove("pswp-ente-off"); void abortablePlayVideo(video); video.style.display = "initial"; } else { + // Remove the loop attributes to clean up after ourselves (not + // necessarily needed because we remove it on slide change too). + video.removeAttribute("loop"); + + // If we're in the middle of the initial playback, remember the + // user's choice to disable autoplay. + if (livePhotoPlayInitialEndedEvent) { + livePhotoPlayInitial = false; + + // And reset the event handler. + const { video, listener } = livePhotoPlayInitialEndedEvent; + video.removeEventListener("ended", listener); + livePhotoPlayInitialEndedEvent = undefined; + } + button?.classList.add("pswp-ente-off"); video.pause(); video.style.display = "none"; @@ -444,7 +536,7 @@ export class FileViewerPhotoSwipe { if (!buttonElement || !video) return; livePhotoPlay = !livePhotoPlay; - livePhotoUpdatePlay(video); + livePhotoUpdatePlayToggle(video); }; /** @@ -634,7 +726,7 @@ export class FileViewerPhotoSwipe { // already been called, but now "contentAppend" is happening. if (currSlideData().fileID == fileID) { - livePhotoUpdatePlay(video); + livePhotoUpdatePlayInitial(video); livePhotoUpdateMute(video); } }); @@ -909,7 +1001,7 @@ export class FileViewerPhotoSwipe { pswp.on("change", () => { const video = livePhotoVideoOnSlide(pswp.currSlide); if (video) { - livePhotoUpdatePlay(video); + livePhotoUpdatePlayInitial(video); } else { // Not a live photo, or its video hasn't loaded yet. showIf(buttonElement, false); @@ -1529,7 +1621,7 @@ const hlsVideoControlsHTML = () => ` // playsinline will play the video inline on mobile browsers (where the default // is to open a full screen player). const livePhotoVideoHTML = (videoURL: string) => ` -

      = ({ {t("uploader_name_hint")} - +
      + + + + {t("add_photos_count", { count: uploadFileCount })} + + + {t("cancel")} + + +
      ); From d6ea8d4ec3057e0da04f8b8308fc871539953c9b Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Wed, 4 Jun 2025 10:30:22 +0530 Subject: [PATCH 147/316] less loging --- .../lib/services/machine_learning/compute_controller.dart | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/mobile/lib/services/machine_learning/compute_controller.dart b/mobile/lib/services/machine_learning/compute_controller.dart index ce66300582..2c9cb4b779 100644 --- a/mobile/lib/services/machine_learning/compute_controller.dart +++ b/mobile/lib/services/machine_learning/compute_controller.dart @@ -17,7 +17,7 @@ enum _ComputeRunState { } class ComputeController { - final _logger = Logger("MachineLearningController"); + final _logger = Logger("ComputeController"); static const kMaximumTemperatureAndroid = 42; // 42 degree celsius static const kMinimumBatteryLevel = 20; // 20% @@ -160,7 +160,6 @@ class ComputeController { void _startInteractionTimer(Duration timeout) { _userInteractionTimer = Timer(timeout, () { - _logger.info("User is not interacting with the app"); _isUserInteracting = false; _fireControlEvent(); }); @@ -211,12 +210,10 @@ class ComputeController { bool _isAcceptableThermalState() { switch (_lastThermalStatus) { case null: - _logger.info("Thermal status is null, assuming acceptable temperature"); return true; case ThermalStatus.none: case ThermalStatus.light: case ThermalStatus.moderate: - _logger.info("Thermal status is acceptable: $_lastThermalStatus"); return true; case ThermalStatus.severe: case ThermalStatus.critical: @@ -241,5 +238,3 @@ class ComputeController { return !kUnhealthyStates.contains(_androidLastBatteryInfo?.health ?? ""); } } - -// keyword: unicorn From 5d3acca7ed796bbf7b4184fb7aa1f8b7eb3ddc16 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Wed, 4 Jun 2025 10:27:47 +0530 Subject: [PATCH 148/316] Conv --- .../accounts/components/LoginContents.tsx | 78 +++++++++++++------ .../albums/components/UploaderNameInput.tsx | 1 + 2 files changed, 55 insertions(+), 24 deletions(-) diff --git a/web/packages/accounts/components/LoginContents.tsx b/web/packages/accounts/components/LoginContents.tsx index ce8c7a41f0..4d4ded331f 100644 --- a/web/packages/accounts/components/LoginContents.tsx +++ b/web/packages/accounts/components/LoginContents.tsx @@ -1,4 +1,4 @@ -import { Input, Stack, Typography } from "@mui/material"; +import { Input, Stack, TextField, Typography } from "@mui/material"; import { AccountsPageFooter, AccountsPageTitle, @@ -6,14 +6,14 @@ import { import { getSRPAttributes } from "ente-accounts/services/srp-remote"; import { sendOTT } from "ente-accounts/services/user"; import { LinkButton } from "ente-base/components/LinkButton"; +import { LoadingButton } from "ente-base/components/mui/LoadingButton"; import { isMuseumHTTPError } from "ente-base/http"; import log from "ente-base/log"; -import SingleInputForm, { - type SingleInputFormProps, -} from "ente-shared/components/SingleInputForm"; import { setData, setLSUser } from "ente-shared/storage/localStorage"; +import { useFormik } from "formik"; import { t } from "i18next"; import { useRouter } from "next/router"; +import React, { useCallback } from "react"; interface LoginContentsProps { /** Called when the user clicks the signup option instead. */ @@ -33,11 +33,8 @@ export const LoginContents: React.FC = ({ }) => { const router = useRouter(); - const loginUser: SingleInputFormProps["callback"] = async ( - email, - setFieldError, - ) => { - try { + const loginUser = useCallback( + async (email: string, setFieldError: (message: string) => void) => { const srpAttributes = await getSRPAttributes(email); log.debug(() => ["srpAttributes", JSON.stringify(srpAttributes)]); if (!srpAttributes || srpAttributes.isEmailMFAEnabled) { @@ -59,25 +56,58 @@ export const LoginContents: React.FC = ({ setData("srpAttributes", srpAttributes); void router.push("/credentials"); } - } catch (e) { - log.error("Login failed", e); - setFieldError(t("generic_error")); - } - }; + }, + [router], + ); + + const formik = useFormik({ + initialValues: { value: "" }, + onSubmit: async (values, { setFieldError }) => { + const value = values.value; + const setValueFieldError = (message: string) => + setFieldError("value", message); + + if (!value) { + setValueFieldError(t("required")); + return; + } + try { + await loginUser(value, setValueFieldError); + } catch (e) { + log.error("Failed to login", e); + setValueFieldError(t("generic_error")); + } + }, + }); return ( <> {t("login")} - - } - /> +
      + + + + {t("login")} + + diff --git a/web/packages/new/albums/components/UploaderNameInput.tsx b/web/packages/new/albums/components/UploaderNameInput.tsx index 97c8dac07a..913546e696 100644 --- a/web/packages/new/albums/components/UploaderNameInput.tsx +++ b/web/packages/new/albums/components/UploaderNameInput.tsx @@ -53,6 +53,7 @@ export const UploaderNameInput: React.FC = ({ const setValueFieldError = (message: string) => setFieldError("value", message); + // TODO(RE): Reintroduce email validation after zod migration if (!value) { setValueFieldError(t("required")); return; From b494dc8cad55d3b7974ddfa3e80d1f5ba6406b86 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Wed, 4 Jun 2025 10:44:19 +0530 Subject: [PATCH 149/316] Allow multiple request calls --- mobile/lib/services/machine_learning/compute_controller.dart | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mobile/lib/services/machine_learning/compute_controller.dart b/mobile/lib/services/machine_learning/compute_controller.dart index 2c9cb4b779..72f9dab1fd 100644 --- a/mobile/lib/services/machine_learning/compute_controller.dart +++ b/mobile/lib/services/machine_learning/compute_controller.dart @@ -91,6 +91,8 @@ class ComputeController { _waitingToRunML = false; _logger.info("ML request granted"); return true; + } else if (_currentRunState == _ComputeRunState.runningML) { + return true; } _logger.info( "ML request denied, current state: $_currentRunState, wants to run ML: $_waitingToRunML", @@ -104,6 +106,8 @@ class ComputeController { _logger.info("Stream request granted"); _currentRunState = _ComputeRunState.generatingStream; return true; + } else if (_currentRunState == _ComputeRunState.generatingStream && !_waitingToRunML) { + return true; } _logger.info( "Stream request denied, current state: $_currentRunState, wants to run ML: $_waitingToRunML", From c8d53faa5de11398f1c3548e154a4c35b9f15a73 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Wed, 4 Jun 2025 10:44:44 +0530 Subject: [PATCH 150/316] Don't queue streaming if controller doesn't allow --- mobile/lib/services/preview_video_store.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 37417edd32..4fb9cbde34 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -823,7 +823,7 @@ class PreviewVideoStore { void queueFiles() { Future.delayed(const Duration(seconds: 5), () { - if (!_hasQueuedFile) { + if (!_hasQueuedFile && computeController.requestCompute(stream: true)) { _putFilesForPreviewCreation(true).catchError((_) { _hasQueuedFile = false; }); From e0ae9eb9117b361566bde222b65adf3105143867 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Wed, 4 Jun 2025 10:48:12 +0530 Subject: [PATCH 151/316] vis --- web/packages/accounts/components/LoginContents.tsx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/web/packages/accounts/components/LoginContents.tsx b/web/packages/accounts/components/LoginContents.tsx index 4d4ded331f..39f09e16b9 100644 --- a/web/packages/accounts/components/LoginContents.tsx +++ b/web/packages/accounts/components/LoginContents.tsx @@ -1,8 +1,5 @@ import { Input, Stack, TextField, Typography } from "@mui/material"; -import { - AccountsPageFooter, - AccountsPageTitle, -} from "ente-accounts/components/layouts/centered-paper"; +import { AccountsPageFooter } from "ente-accounts/components/layouts/centered-paper"; import { getSRPAttributes } from "ente-accounts/services/srp-remote"; import { sendOTT } from "ente-accounts/services/user"; import { LinkButton } from "ente-base/components/LinkButton"; @@ -82,7 +79,10 @@ export const LoginContents: React.FC = ({ return ( <> - {t("login")} + {/* AccountsPageTitle, inlined to tweak mb */} + + {t("login")} +
      Date: Wed, 4 Jun 2025 10:49:41 +0530 Subject: [PATCH 152/316] Update asset_picker pkg --- mobile/pubspec.lock | 16 ++++++++++++---- mobile/pubspec.yaml | 4 ++-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/mobile/pubspec.lock b/mobile/pubspec.lock index 7109e08165..9b919c4333 100644 --- a/mobile/pubspec.lock +++ b/mobile/pubspec.lock @@ -2797,10 +2797,10 @@ packages: dependency: "direct main" description: name: visibility_detector - sha256: "15c54a459ec2c17b4705450483f3d5a2858e733aee893dcee9d75fd04814940d" + sha256: dd5cc11e13494f432d15939c3aa8ae76844c42b723398643ce9addb88a5ed420 url: "https://pub.dev" source: hosted - version: "0.3.3" + version: "0.4.0+2" vm_service: dependency: transitive description: @@ -2885,10 +2885,18 @@ packages: dependency: "direct main" description: name: wechat_assets_picker - sha256: "9934724a45fdb2b12e332d8190c58713e6675c37c630d53608e0f50167215c9f" + sha256: cafe3d32564ed3cacf9822f251941f7b44fe9885c17c8de4fca7e939a459e1ef url: "https://pub.dev" source: hosted - version: "8.9.0-dev.1" + version: "9.5.1" + wechat_picker_library: + dependency: transitive + description: + name: wechat_picker_library + sha256: a42e09cb85b15fc9410f6a69671371cc60aa99c4a1f7967f6593a7f665f6f47a + url: "https://pub.dev" + source: hosted + version: "1.0.5" widgets_to_image: dependency: "direct main" description: diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index 2bc68c240e..7b557b3c2a 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -207,9 +207,9 @@ dependencies: ref: android_video_roation_fix path: packages/video_player/video_player/ video_thumbnail: - visibility_detector: ^0.3.3 + visibility_detector: ^0.4.0+2 wakelock_plus: ^1.1.1 - wechat_assets_picker: ^8.6.3 + wechat_assets_picker: ^9.5.1 widgets_to_image: ^0.0.2 xml: ^6.3.0 From b24b0d340b935dadb5c87da1f54a0b2001297152 Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Wed, 4 Jun 2025 10:50:06 +0530 Subject: [PATCH 153/316] Remember last scrollOffset while picking asset from device --- mobile/lib/ui/viewer/gallery/hooks/add_photos_sheet.dart | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mobile/lib/ui/viewer/gallery/hooks/add_photos_sheet.dart b/mobile/lib/ui/viewer/gallery/hooks/add_photos_sheet.dart index f8f28adfd9..865c16378a 100644 --- a/mobile/lib/ui/viewer/gallery/hooks/add_photos_sheet.dart +++ b/mobile/lib/ui/viewer/gallery/hooks/add_photos_sheet.dart @@ -173,8 +173,11 @@ class AddPhotosPhotoWidget extends StatelessWidget { final List? result = await AssetPicker.pickAssets( context, pickerConfig: AssetPickerConfig( + keepScrollOffset: true, maxAssets: maxPickAssetLimit, textDelegate: assetPickerTextDelegate, + gridCount: 6, + pageSize: 120, ), ); if (result != null && result.isNotEmpty) { From 68844eb7901601653e3ffe756f018d29689469b0 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Wed, 4 Jun 2025 10:52:18 +0530 Subject: [PATCH 154/316] Try to retain similar DOM structure as before --- .../accounts/components/LoginContents.tsx | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/web/packages/accounts/components/LoginContents.tsx b/web/packages/accounts/components/LoginContents.tsx index 39f09e16b9..8773d307f5 100644 --- a/web/packages/accounts/components/LoginContents.tsx +++ b/web/packages/accounts/components/LoginContents.tsx @@ -58,21 +58,21 @@ export const LoginContents: React.FC = ({ ); const formik = useFormik({ - initialValues: { value: "" }, + initialValues: { email: "" }, onSubmit: async (values, { setFieldError }) => { - const value = values.value; - const setValueFieldError = (message: string) => + const value = values.email; + const setEmailFieldError = (message: string) => setFieldError("value", message); if (!value) { - setValueFieldError(t("required")); + setEmailFieldError(t("required")); return; } try { - await loginUser(value, setValueFieldError); + await loginUser(value, setEmailFieldError); } catch (e) { log.error("Failed to login", e); - setValueFieldError(t("generic_error")); + setEmailFieldError(t("generic_error")); } }, }); @@ -85,8 +85,9 @@ export const LoginContents: React.FC = ({ = ({ fullWidth margin="normal" disabled={formik.isSubmitting} - error={!!formik.errors.value} + error={!!formik.errors.email} // See: Note: [Use space as default TextField helperText] - helperText={formik.errors.value ?? " "} + helperText={formik.errors.email ?? " "} /> Date: Wed, 4 Jun 2025 11:01:41 +0530 Subject: [PATCH 155/316] Up --- desktop/package.json | 2 +- desktop/yarn.lock | 8 ++++---- web/packages/base/package.json | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/desktop/package.json b/desktop/package.json index 936b42bf5e..8929ba86e1 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -39,7 +39,7 @@ "next-electron-server": "^1.0.0", "node-stream-zip": "^1.15.0", "onnxruntime-node": "^1.20.1", - "zod": "^3.25.48" + "zod": "^3.25.50" }, "devDependencies": { "@eslint/js": "^9.28.0", diff --git a/desktop/yarn.lock b/desktop/yarn.lock index d6987ec772..5fa9476d3a 100644 --- a/desktop/yarn.lock +++ b/desktop/yarn.lock @@ -3421,7 +3421,7 @@ yocto-queue@^0.1.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== -zod@^3.25.48: - version "3.25.48" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.25.48.tgz#6c2b536fbb519905e8f4a4ac58743de4d5331bb2" - integrity sha512-0X1mz8FtgEIvaxGjdIImYpZEaZMrund9pGXm3M6vM7Reba0e2eI71KPjSCGXBfwKDPwPoywf6waUKc3/tFvX2Q== +zod@^3.25.50: + version "3.25.50" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.25.50.tgz#9de9ca02ae702fd37ed87b28f8f17099f2402aa9" + integrity sha512-VstOnRxf4tlSq0raIwbn0n+LA34SxVoZ8r3pkwSUM0jqNiA/HCMQEVjTuS5FZmHsge+9MDGTiAuHyml5T0um6A== diff --git a/web/packages/base/package.json b/web/packages/base/package.json index a159981787..f59010d68c 100644 --- a/web/packages/base/package.json +++ b/web/packages/base/package.json @@ -22,7 +22,7 @@ "react-dom": "^19.1.0", "react-i18next": "^15.5.2", "yup": "^1.6.1", - "zod": "^3.25.48" + "zod": "^3.25.50" }, "devDependencies": { "@types/libsodium-wrappers-sumo": "^0.7.8", From a4f49b8e8421d0e903e37be8a903358072f1e667 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Wed, 4 Jun 2025 11:11:21 +0530 Subject: [PATCH 156/316] Try trigger streaming when ML is done --- mobile/lib/services/machine_learning/ml_service.dart | 4 +++- mobile/lib/services/sync/remote_sync_service.dart | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/mobile/lib/services/machine_learning/ml_service.dart b/mobile/lib/services/machine_learning/ml_service.dart index d35d929bb4..e5fb92a3b3 100644 --- a/mobile/lib/services/machine_learning/ml_service.dart +++ b/mobile/lib/services/machine_learning/ml_service.dart @@ -20,6 +20,7 @@ import "package:photos/services/machine_learning/face_ml/person/person_service.d import "package:photos/services/machine_learning/ml_indexing_isolate.dart"; import 'package:photos/services/machine_learning/ml_result.dart'; import "package:photos/services/machine_learning/semantic_search/semantic_search_service.dart"; +import "package:photos/services/preview_video_store.dart"; import "package:photos/utils/ml_util.dart"; import "package:photos/utils/network_util.dart"; import "package:photos/utils/ram_check_util.dart"; @@ -162,8 +163,9 @@ class MLService { _logger.severe("runAllML failed", e, s); rethrow; } finally { - computeController.releaseCompute(ml: true); _isRunningML = false; + computeController.releaseCompute(ml: true); + PreviewVideoStore.instance.queueFiles(); } } diff --git a/mobile/lib/services/sync/remote_sync_service.dart b/mobile/lib/services/sync/remote_sync_service.dart index 8f09a01144..d7b6a4b9aa 100644 --- a/mobile/lib/services/sync/remote_sync_service.dart +++ b/mobile/lib/services/sync/remote_sync_service.dart @@ -127,7 +127,10 @@ class RemoteSyncService { } fileDataService.syncFDStatus().then((_) { - PreviewVideoStore.instance.queueFiles(); + if (!flagService.hasGrantedMLConsent) { + PreviewVideoStore.instance + .queueFiles(); // if ML is enabled the MLService will queue when ML is done + } }).ignore(); final filesToBeUploaded = await _getFilesToBeUploaded(); final hasUploadedFiles = await _uploadFiles(filesToBeUploaded); From 4b4d9d0fd871a1b6714e2220e943fbf67d87d969 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Wed, 4 Jun 2025 11:07:06 +0530 Subject: [PATCH 157/316] Migrate https://zod.dev/v4/changelog --- desktop/src/main/services/ffmpeg-worker.ts | 2 +- desktop/src/main/services/ml-worker.ts | 2 +- web/apps/accounts/src/services/passkey.ts | 2 +- web/apps/auth/src/services/code.ts | 2 +- web/apps/auth/src/services/remote.ts | 2 +- web/apps/cast/src/services/pair.ts | 2 +- web/packages/accounts/services/passkey.ts | 2 +- web/packages/accounts/services/session.ts | 2 +- web/packages/accounts/services/user.ts | 2 +- web/packages/base/http.ts | 2 +- web/packages/base/local-user.ts | 2 +- web/packages/base/session.ts | 2 +- web/packages/gallery/services/ffmpeg/web.ts | 2 +- web/packages/gallery/services/file-data.ts | 2 +- web/packages/gallery/services/upload/index.ts | 2 +- web/packages/gallery/services/upload/remote.ts | 2 +- web/packages/gallery/services/video.ts | 2 +- web/packages/gallery/utils/native-stream.ts | 2 +- web/packages/media/file-metadata.ts | 2 +- web/packages/new/albums/services/publicCollection.ts | 2 +- web/packages/new/photos/components/DevSettings.tsx | 2 +- web/packages/new/photos/services/cast.ts | 2 +- web/packages/new/photos/services/ml/kvdb.ts | 2 +- web/packages/new/photos/services/ml/ml-data.ts | 2 +- web/packages/new/photos/services/remote-store.ts | 2 +- web/packages/new/photos/services/search/worker.ts | 2 +- web/packages/new/photos/services/settings.ts | 2 +- web/packages/new/photos/services/user-details.ts | 2 +- web/packages/new/photos/services/user-entity/db.ts | 2 +- web/packages/new/photos/services/user-entity/index.ts | 2 +- web/packages/new/photos/services/user-entity/remote.ts | 2 +- web/packages/new/photos/services/user.ts | 2 +- 32 files changed, 32 insertions(+), 32 deletions(-) diff --git a/desktop/src/main/services/ffmpeg-worker.ts b/desktop/src/main/services/ffmpeg-worker.ts index a2a9ca1ab4..b63abcf023 100644 --- a/desktop/src/main/services/ffmpeg-worker.ts +++ b/desktop/src/main/services/ffmpeg-worker.ts @@ -12,7 +12,7 @@ import fs_ from "node:fs"; import fs from "node:fs/promises"; import path from "node:path"; import { Readable } from "node:stream"; -import { z } from "zod"; +import { z } from "zod/v4"; import type { FFmpegCommand } from "../../types/ipc"; import log from "../log-worker"; import { messagePortMainEndpoint } from "../utils/comlink"; diff --git a/desktop/src/main/services/ml-worker.ts b/desktop/src/main/services/ml-worker.ts index 234c3abb23..35e342b029 100644 --- a/desktop/src/main/services/ml-worker.ts +++ b/desktop/src/main/services/ml-worker.ts @@ -15,7 +15,7 @@ import { existsSync } from "fs"; import fs from "node:fs/promises"; import path from "node:path"; import * as ort from "onnxruntime-node"; -import { z } from "zod"; +import { z } from "zod/v4"; import log from "../log-worker"; import { messagePortMainEndpoint } from "../utils/comlink"; import { wait } from "../utils/common"; diff --git a/web/apps/accounts/src/services/passkey.ts b/web/apps/accounts/src/services/passkey.ts index 7e7f10f39b..4662e0b874 100644 --- a/web/apps/accounts/src/services/passkey.ts +++ b/web/apps/accounts/src/services/passkey.ts @@ -9,7 +9,7 @@ import { isDevBuild } from "ente-base/env"; import { ensureOk, HTTPError, publicRequestHeaders } from "ente-base/http"; import { apiURL } from "ente-base/origins"; import { nullToUndefined } from "ente-utils/transform"; -import { z } from "zod"; +import { z } from "zod/v4"; /** Return true if the user's browser supports WebAuthn (Passkeys). */ export const isWebAuthnSupported = () => !!navigator.credentials; diff --git a/web/apps/auth/src/services/code.ts b/web/apps/auth/src/services/code.ts index 2d557dc549..0c9a7bbf71 100644 --- a/web/apps/auth/src/services/code.ts +++ b/web/apps/auth/src/services/code.ts @@ -1,7 +1,7 @@ import log from "ente-base/log"; import { nullToUndefined } from "ente-utils/transform"; import { HOTP, TOTP } from "otpauth"; -import { z } from "zod"; +import { z } from "zod/v4"; import { Steam } from "./steam"; /** * A parsed representation of an *OTP code URI. diff --git a/web/apps/auth/src/services/remote.ts b/web/apps/auth/src/services/remote.ts index 35ed191b8c..21c756ea23 100644 --- a/web/apps/auth/src/services/remote.ts +++ b/web/apps/auth/src/services/remote.ts @@ -9,7 +9,7 @@ import { apiURL } from "ente-base/origins"; import { ensureString } from "ente-utils/ensure"; import { nullToUndefined } from "ente-utils/transform"; import { codeFromURIString, type Code } from "services/code"; -import { z } from "zod"; +import { z } from "zod/v4"; export interface AuthCodesAndTimeOffset { codes: Code[]; diff --git a/web/apps/cast/src/services/pair.ts b/web/apps/cast/src/services/pair.ts index a8776000af..d724777341 100644 --- a/web/apps/cast/src/services/pair.ts +++ b/web/apps/cast/src/services/pair.ts @@ -4,7 +4,7 @@ import log from "ente-base/log"; import { apiURL } from "ente-base/origins"; import { wait } from "ente-utils/promise"; import { nullToUndefined } from "ente-utils/transform"; -import { z } from "zod"; +import { z } from "zod/v4"; export interface Registration { /** A pairing code shown on the screen. A client can use this to connect. */ diff --git a/web/packages/accounts/services/passkey.ts b/web/packages/accounts/services/passkey.ts index e2a749a93e..d67505aca7 100644 --- a/web/packages/accounts/services/passkey.ts +++ b/web/packages/accounts/services/passkey.ts @@ -12,7 +12,7 @@ import { apiURL } from "ente-base/origins"; import HTTPService from "ente-shared/network/HTTPService"; import { getData, setData, setLSUser } from "ente-shared/storage/localStorage"; import { getToken } from "ente-shared/storage/localStorage/helpers"; -import { z } from "zod"; +import { z } from "zod/v4"; import { getUserRecoveryKeyB64 } from "./recovery-key"; import { unstashRedirect } from "./redirect"; diff --git a/web/packages/accounts/services/session.ts b/web/packages/accounts/services/session.ts index b2a4fcae69..65a8a7e44d 100644 --- a/web/packages/accounts/services/session.ts +++ b/web/packages/accounts/services/session.ts @@ -5,7 +5,7 @@ import { apiURL } from "ente-base/origins"; import { getData } from "ente-shared/storage/localStorage"; import type { KeyAttributes } from "ente-shared/user/types"; import { nullToUndefined } from "ente-utils/transform"; -import { z } from "zod"; +import { z } from "zod/v4"; import type { SRPAttributes } from "./srp-remote"; import { getSRPAttributes } from "./srp-remote"; import { putUserKeyAttributes, RemoteKeyAttributes } from "./user"; diff --git a/web/packages/accounts/services/user.ts b/web/packages/accounts/services/user.ts index f02eabf71c..0577996a81 100644 --- a/web/packages/accounts/services/user.ts +++ b/web/packages/accounts/services/user.ts @@ -8,7 +8,7 @@ import HTTPService from "ente-shared/network/HTTPService"; import { getToken } from "ente-shared/storage/localStorage/helpers"; import type { KeyAttributes } from "ente-shared/user/types"; import { nullToUndefined } from "ente-utils/transform"; -import { z } from "zod"; +import { z } from "zod/v4"; export interface UserVerificationResponse { id: number; diff --git a/web/packages/base/http.ts b/web/packages/base/http.ts index 6ce7fb6e1f..9c073df3e0 100644 --- a/web/packages/base/http.ts +++ b/web/packages/base/http.ts @@ -1,6 +1,6 @@ import { desktopAppVersion, isDesktop } from "ente-base/app"; import { wait } from "ente-utils/promise"; -import { z } from "zod"; +import { z } from "zod/v4"; import { clientPackageName } from "./app"; import { ensureAuthToken } from "./local-user"; import log from "./log"; diff --git a/web/packages/base/local-user.ts b/web/packages/base/local-user.ts index 4552b07959..33dbcab27e 100644 --- a/web/packages/base/local-user.ts +++ b/web/packages/base/local-user.ts @@ -1,6 +1,6 @@ // TODO: This file belongs to the accounts package -import { z } from "zod"; +import { z } from "zod/v4"; import { getKVS } from "./kv"; // TODO: During login the only field present is email. Which makes this diff --git a/web/packages/base/session.ts b/web/packages/base/session.ts index 5b523b64a3..b4bbb93ba4 100644 --- a/web/packages/base/session.ts +++ b/web/packages/base/session.ts @@ -1,4 +1,4 @@ -import { z } from "zod"; +import { z } from "zod/v4"; import { decryptBox } from "./crypto"; import { toB64 } from "./crypto/libsodium"; diff --git a/web/packages/gallery/services/ffmpeg/web.ts b/web/packages/gallery/services/ffmpeg/web.ts index 0074cc70ea..4fb07b33f3 100644 --- a/web/packages/gallery/services/ffmpeg/web.ts +++ b/web/packages/gallery/services/ffmpeg/web.ts @@ -4,7 +4,7 @@ import { newID } from "ente-base/id"; import log from "ente-base/log"; import type { FFmpegCommand } from "ente-base/types/ipc"; import { PromiseQueue } from "ente-utils/promise"; -import z from "zod"; +import { z } from "zod/v4"; import { ffmpegPathPlaceholder, inputPathPlaceholder, diff --git a/web/packages/gallery/services/file-data.ts b/web/packages/gallery/services/file-data.ts index d2f0de2150..e460c32f97 100644 --- a/web/packages/gallery/services/file-data.ts +++ b/web/packages/gallery/services/file-data.ts @@ -10,7 +10,7 @@ import { import { apiURL } from "ente-base/origins"; import type { EnteFile } from "ente-media/file"; import { nullToUndefined } from "ente-utils/transform"; -import { z } from "zod"; +import { z } from "zod/v4"; /** * [Note: File data APIs] diff --git a/web/packages/gallery/services/upload/index.ts b/web/packages/gallery/services/upload/index.ts index df1e6c6fe7..7af420aff0 100644 --- a/web/packages/gallery/services/upload/index.ts +++ b/web/packages/gallery/services/upload/index.ts @@ -5,7 +5,7 @@ import type { ZipItem } from "ente-base/types/ipc"; import { exportMetadataDirectoryName } from "ente-gallery/export-dirs"; import type { Collection } from "ente-media/collection"; import { nullToUndefined } from "ente-utils/transform"; -import { z } from "zod"; +import { z } from "zod/v4"; /** * Internal in-memory state shared by the functions in this module. diff --git a/web/packages/gallery/services/upload/remote.ts b/web/packages/gallery/services/upload/remote.ts index abe934ad2d..d093dbcbc8 100644 --- a/web/packages/gallery/services/upload/remote.ts +++ b/web/packages/gallery/services/upload/remote.ts @@ -16,7 +16,7 @@ import { type EnteFile } from "ente-media/file"; import { handleUploadError } from "ente-shared/error"; import HTTPService from "ente-shared/network/HTTPService"; import { nullToUndefined } from "ente-utils/transform"; -import { z } from "zod"; +import { z } from "zod/v4"; import type { UploadFile } from "./upload-service"; /** diff --git a/web/packages/gallery/services/video.ts b/web/packages/gallery/services/video.ts index 726664735e..6a33969f10 100644 --- a/web/packages/gallery/services/video.ts +++ b/web/packages/gallery/services/video.ts @@ -23,7 +23,7 @@ import { gunzip, gzip } from "ente-new/photos/utils/gzip"; import { randomSample } from "ente-utils/array"; import { ensurePrecondition } from "ente-utils/ensure"; import { wait } from "ente-utils/promise"; -import { z } from "zod"; +import { z } from "zod/v4"; import { initiateGenerateHLS, readVideoStream, diff --git a/web/packages/gallery/utils/native-stream.ts b/web/packages/gallery/utils/native-stream.ts index 7863f0d33c..e5a7160595 100644 --- a/web/packages/gallery/utils/native-stream.ts +++ b/web/packages/gallery/utils/native-stream.ts @@ -7,7 +7,7 @@ */ import type { Electron, ElectronMLWorker, ZipItem } from "ente-base/types/ipc"; -import { z } from "zod"; +import { z } from "zod/v4"; import type { FileSystemUploadItem } from "../services/upload"; /** diff --git a/web/packages/media/file-metadata.ts b/web/packages/media/file-metadata.ts index 0056e4928f..bfea23fb17 100644 --- a/web/packages/media/file-metadata.ts +++ b/web/packages/media/file-metadata.ts @@ -10,7 +10,7 @@ import { type FilePublicMagicMetadata, } from "ente-media/file"; import { nullToUndefined } from "ente-utils/transform"; -import { z } from "zod"; +import { z } from "zod/v4"; import { mergeMetadata1 } from "./file"; import { FileType } from "./file-type"; diff --git a/web/packages/new/albums/services/publicCollection.ts b/web/packages/new/albums/services/publicCollection.ts index 684632d455..e8f808ada7 100644 --- a/web/packages/new/albums/services/publicCollection.ts +++ b/web/packages/new/albums/services/publicCollection.ts @@ -5,7 +5,7 @@ import { } from "ente-base/http"; import { apiURL } from "ente-base/origins"; import type { PublicURL } from "ente-media/collection"; -import { z } from "zod"; +import { z } from "zod/v4"; /** * Verify with remote that the password entered by the user is the same as the diff --git a/web/packages/new/photos/components/DevSettings.tsx b/web/packages/new/photos/components/DevSettings.tsx index 26d5a3486b..cd39d90160 100644 --- a/web/packages/new/photos/components/DevSettings.tsx +++ b/web/packages/new/photos/components/DevSettings.tsx @@ -18,7 +18,7 @@ import log from "ente-base/log"; import { useFormik } from "formik"; import { t } from "i18next"; import React, { useEffect, useState } from "react"; -import { z } from "zod"; +import { z } from "zod/v4"; import { SlideUpTransition } from "./mui/SlideUpTransition"; interface DevSettingsProps { diff --git a/web/packages/new/photos/services/cast.ts b/web/packages/new/photos/services/cast.ts index 6647dc9342..7bd9ad2db6 100644 --- a/web/packages/new/photos/services/cast.ts +++ b/web/packages/new/photos/services/cast.ts @@ -3,7 +3,7 @@ import { authenticatedRequestHeaders, ensureOk } from "ente-base/http"; import { newID } from "ente-base/id"; import { apiURL } from "ente-base/origins"; import type { Collection } from "ente-media/collection"; -import { z } from "zod"; +import { z } from "zod/v4"; /** * Revoke all existing outstanding cast tokens for the current user on remote. diff --git a/web/packages/new/photos/services/ml/kvdb.ts b/web/packages/new/photos/services/ml/kvdb.ts index 9792514d7f..415d54f260 100644 --- a/web/packages/new/photos/services/ml/kvdb.ts +++ b/web/packages/new/photos/services/ml/kvdb.ts @@ -1,5 +1,5 @@ import { getKV, setKV } from "ente-base/kv"; -import { z } from "zod"; +import { z } from "zod/v4"; /** * Zod schema for {@link ClusterIDsByCGroupID}. diff --git a/web/packages/new/photos/services/ml/ml-data.ts b/web/packages/new/photos/services/ml/ml-data.ts index 228c915a88..21098294e1 100644 --- a/web/packages/new/photos/services/ml/ml-data.ts +++ b/web/packages/new/photos/services/ml/ml-data.ts @@ -3,7 +3,7 @@ import log from "ente-base/log"; import { fetchFilesData, putFileData } from "ente-gallery/services/file-data"; import type { EnteFile } from "ente-media/file"; import { nullToUndefined } from "ente-utils/transform"; -import { z } from "zod"; +import { z } from "zod/v4"; import { gunzip, gzip } from "../../utils/gzip"; import { type RemoteCLIPIndex } from "./clip"; import { type RemoteFaceIndex } from "./face"; diff --git a/web/packages/new/photos/services/remote-store.ts b/web/packages/new/photos/services/remote-store.ts index 8b963da91b..f6d4e8ecdc 100644 --- a/web/packages/new/photos/services/remote-store.ts +++ b/web/packages/new/photos/services/remote-store.ts @@ -1,6 +1,6 @@ import { authenticatedRequestHeaders, ensureOk } from "ente-base/http"; import { apiURL } from "ente-base/origins"; -import { z } from "zod"; +import { z } from "zod/v4"; /** * [Note: Remote store] diff --git a/web/packages/new/photos/services/search/worker.ts b/web/packages/new/photos/services/search/worker.ts index d6be385a00..02a206faf2 100644 --- a/web/packages/new/photos/services/search/worker.ts +++ b/web/packages/new/photos/services/search/worker.ts @@ -12,7 +12,7 @@ import { filePublicMagicMetadata, } from "ente-media/file-metadata"; import { nullToUndefined } from "ente-utils/transform"; -import { z } from "zod"; +import { z } from "zod/v4"; import type { NamedPerson } from "../ml/people"; import { pullUserEntities, diff --git a/web/packages/new/photos/services/settings.ts b/web/packages/new/photos/services/settings.ts index 17f4ef00d4..add0b72dd5 100644 --- a/web/packages/new/photos/services/settings.ts +++ b/web/packages/new/photos/services/settings.ts @@ -7,7 +7,7 @@ import { localUser } from "ente-base/local-user"; import log from "ente-base/log"; import { updateShouldDisableCFUploadProxy } from "ente-gallery/services/upload"; import { nullToUndefined } from "ente-utils/transform"; -import { z } from "zod"; +import { z } from "zod/v4"; import { fetchFeatureFlags, updateRemoteFlag } from "./remote-store"; /** diff --git a/web/packages/new/photos/services/user-details.ts b/web/packages/new/photos/services/user-details.ts index 119c9e98cf..b888a9fa57 100644 --- a/web/packages/new/photos/services/user-details.ts +++ b/web/packages/new/photos/services/user-details.ts @@ -8,7 +8,7 @@ import { nullishToZero, nullToUndefined, } from "ente-utils/transform"; -import { z } from "zod"; +import { z } from "zod/v4"; /** * Validity of the plan. diff --git a/web/packages/new/photos/services/user-entity/db.ts b/web/packages/new/photos/services/user-entity/db.ts index 59c10d7955..c7c0b3d7aa 100644 --- a/web/packages/new/photos/services/user-entity/db.ts +++ b/web/packages/new/photos/services/user-entity/db.ts @@ -1,5 +1,5 @@ import { getKV, getKVN, setKV } from "ente-base/kv"; -import { z } from "zod"; +import { z } from "zod/v4"; import { type EntityType } from "."; import { RemoteUserEntityKey } from "./remote"; diff --git a/web/packages/new/photos/services/user-entity/index.ts b/web/packages/new/photos/services/user-entity/index.ts index 45331e966a..37909422dd 100644 --- a/web/packages/new/photos/services/user-entity/index.ts +++ b/web/packages/new/photos/services/user-entity/index.ts @@ -5,7 +5,7 @@ import { generateBlobOrStreamKey, } from "ente-base/crypto"; import { nullishToEmpty, nullToUndefined } from "ente-utils/transform"; -import { z } from "zod"; +import { z } from "zod/v4"; import { gunzip, gzip } from "../../utils/gzip"; import type { CGroupUserEntityData } from "../ml/people"; import { diff --git a/web/packages/new/photos/services/user-entity/remote.ts b/web/packages/new/photos/services/user-entity/remote.ts index d7e64b9837..54b5048cc6 100644 --- a/web/packages/new/photos/services/user-entity/remote.ts +++ b/web/packages/new/photos/services/user-entity/remote.ts @@ -6,7 +6,7 @@ import { HTTPError, } from "ente-base/http"; import { apiURL } from "ente-base/origins"; -import { z } from "zod"; +import { z } from "zod/v4"; import type { EntityType } from "."; /** diff --git a/web/packages/new/photos/services/user.ts b/web/packages/new/photos/services/user.ts index 070548f652..d84bc2ae38 100644 --- a/web/packages/new/photos/services/user.ts +++ b/web/packages/new/photos/services/user.ts @@ -1,7 +1,7 @@ import { authenticatedRequestHeaders, ensureOk } from "ente-base/http"; import { apiURL } from "ente-base/origins"; import { nullToUndefined } from "ente-utils/transform"; -import { z } from "zod"; +import { z } from "zod/v4"; /** * Fetch the public key from remote for the user (if any) who has registered From 5e26a895d31af073f49a18c39d4fd7b690dac0cf Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Wed, 4 Jun 2025 11:37:10 +0530 Subject: [PATCH 158/316] passthrough => looseObject https://zod.dev/v4/changelog?id=deprecates-strict-and-passthrough --- web/packages/media/file-metadata.ts | 28 ++++++------- .../new/photos/services/ml/ml-data.ts | 2 +- .../new/photos/services/user-entity/db.ts | 2 +- .../new/photos/services/user-entity/index.ts | 41 ++++++++----------- 4 files changed, 31 insertions(+), 42 deletions(-) diff --git a/web/packages/media/file-metadata.ts b/web/packages/media/file-metadata.ts index bfea23fb17..dfd18ba5c7 100644 --- a/web/packages/media/file-metadata.ts +++ b/web/packages/media/file-metadata.ts @@ -326,21 +326,19 @@ export interface PublicMagicMetadata { * might be other, newer, clients out there adding fields that the current * client might not we aware of, and we don't want to overwrite them. */ -const PublicMagicMetadata = z - .object({ - // [Note: Zod doesn't work with `exactOptionalPropertyTypes` yet] - // - // Using `optional` is not accurate here. The key is optional, but the - // value itself is not optional. - // - // Zod doesn't work with `exactOptionalPropertyTypes` yet, but it seems - // to be on the roadmap so we suppress these mismatches. - // - // See: - // https://github.com/colinhacks/zod/issues/635#issuecomment-2196579063 - editedTime: z.number().optional(), - }) - .passthrough(); +const PublicMagicMetadata = z.looseObject({ + // [Note: Zod doesn't work with `exactOptionalPropertyTypes` yet] + // + // Using `optional` is not accurate here. The key is optional, but the + // value itself is not optional. + // + // Zod doesn't work with `exactOptionalPropertyTypes` yet, but it seems + // to be on the roadmap so we suppress these mismatches. + // + // See: + // https://github.com/colinhacks/zod/issues/635#issuecomment-2196579063 + editedTime: z.number().optional(), +}); /** * Return the private magic metadata for an {@link EnteFile}. diff --git a/web/packages/new/photos/services/ml/ml-data.ts b/web/packages/new/photos/services/ml/ml-data.ts index 21098294e1..5f035d9cc0 100644 --- a/web/packages/new/photos/services/ml/ml-data.ts +++ b/web/packages/new/photos/services/ml/ml-data.ts @@ -129,7 +129,7 @@ const RemoteCLIPIndex = z.object({ /** * Zod schema for the {@link RawRemoteMLData} type. */ -const RawRemoteMLData = z.object({}).passthrough(); +const RawRemoteMLData = z.looseObject({}); /** * Zod schema for the {@link ParsedRemoteMLData} type. diff --git a/web/packages/new/photos/services/user-entity/db.ts b/web/packages/new/photos/services/user-entity/db.ts index c7c0b3d7aa..bc3e870c04 100644 --- a/web/packages/new/photos/services/user-entity/db.ts +++ b/web/packages/new/photos/services/user-entity/db.ts @@ -37,7 +37,7 @@ export interface LocalUserEntity { const LocalUserEntity = z.object({ id: z.string(), // Retain the data verbatim. - data: z.object({}).passthrough(), + data: z.looseObject({}), updatedAt: z.number(), }); diff --git a/web/packages/new/photos/services/user-entity/index.ts b/web/packages/new/photos/services/user-entity/index.ts index 37909422dd..16d3a904e6 100644 --- a/web/packages/new/photos/services/user-entity/index.ts +++ b/web/packages/new/photos/services/user-entity/index.ts @@ -50,13 +50,11 @@ export type EntityType = * Zod schema for the fields of interest in the location tag that we get from * remote. */ -const RemoteLocationTagData = z - .object({ - name: z.string(), - radius: z.number(), - centerPoint: z.object({ latitude: z.number(), longitude: z.number() }), - }) - .passthrough(); +const RemoteLocationTagData = z.looseObject({ + name: z.string(), + radius: z.number(), + centerPoint: z.object({ latitude: z.number(), longitude: z.number() }), +}); /** * A view of the location tag data suitable for use by the rest of the app. @@ -71,9 +69,10 @@ export const savedLocationTags = (): Promise => es.map((e) => RemoteLocationTagData.parse(e.data)), ); -const RemoteFaceCluster = z - .object({ id: z.string(), faces: z.string().array() }) - .passthrough(); +const RemoteFaceCluster = z.looseObject({ + id: z.string(), + faces: z.string().array(), +}); /** * Zod schema for the fields of interest in the cgroup that we get from remote. @@ -82,21 +81,13 @@ const RemoteFaceCluster = z * * See: [Note: Use passthrough for metadata Zod schemas]. */ -const RemoteCGroupData = z - .object({ - name: z.string().nullish().transform(nullToUndefined), - assigned: z - .array(RemoteFaceCluster) - .nullish() - .transform(nullishToEmpty), - rejectedFaceIDs: z - .array(z.string()) - .nullish() - .transform(nullishToEmpty), - isHidden: z.boolean(), - avatarFaceID: z.string().nullish().transform(nullToUndefined), - }) - .passthrough(); +const RemoteCGroupData = z.looseObject({ + name: z.string().nullish().transform(nullToUndefined), + assigned: z.array(RemoteFaceCluster).nullish().transform(nullishToEmpty), + rejectedFaceIDs: z.array(z.string()).nullish().transform(nullishToEmpty), + isHidden: z.boolean(), + avatarFaceID: z.string().nullish().transform(nullToUndefined), +}); /** * A "cgroup" user entity. From 31b26a1b2690f070c657b9fb3faea4b3afc58ca4 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Wed, 4 Jun 2025 11:52:33 +0530 Subject: [PATCH 159/316] Reduce logs --- mobile/lib/services/machine_learning/ml_indexing_isolate.dart | 2 +- mobile/lib/services/machine_learning/ml_service.dart | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/mobile/lib/services/machine_learning/ml_indexing_isolate.dart b/mobile/lib/services/machine_learning/ml_indexing_isolate.dart index a9553b3fa7..635f6120b1 100644 --- a/mobile/lib/services/machine_learning/ml_indexing_isolate.dart +++ b/mobile/lib/services/machine_learning/ml_indexing_isolate.dart @@ -111,7 +111,6 @@ class MLIndexingIsolate extends SuperIsolate { } return _downloadModelLock.synchronized(() async { if (areModelsDownloaded) { - _logger.finest("Models already downloaded"); return; } final goodInternet = await canUseHighBandwidth(); @@ -128,6 +127,7 @@ class MLIndexingIsolate extends SuperIsolate { ClipImageEncoder.instance.downloadModel(forceRefresh), ]); areModelsDownloaded = true; + _logger.info('Downloaded models'); }); } diff --git a/mobile/lib/services/machine_learning/ml_service.dart b/mobile/lib/services/machine_learning/ml_service.dart index e5fb92a3b3..9d9217f916 100644 --- a/mobile/lib/services/machine_learning/ml_service.dart +++ b/mobile/lib/services/machine_learning/ml_service.dart @@ -504,7 +504,6 @@ class MLService { instruction.file, dataEntity, ); - _logger.info("ML results for fileID ${result.fileId} stored on remote"); // Storing results locally if (result.facesRan) await mlDataDB.bulkInsertFaces(faces); if (result.clipRan) { @@ -512,7 +511,7 @@ class MLService { result.clip!, ); } - _logger.info("ML results for fileID ${result.fileId} stored locally"); + _logger.info("ML result for fileID ${result.fileId} stored remote+local"); return actuallyRanML; } catch (e, s) { final String errorString = e.toString(); From 3c514476c2e9ebebc05c174e9a4b0482ab7a7a07 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Wed, 4 Jun 2025 11:52:34 +0530 Subject: [PATCH 160/316] Reintroduce with new zod --- .../accounts/components/LoginContents.tsx | 16 +++++++++++----- .../new/albums/components/UploaderNameInput.tsx | 1 - 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/web/packages/accounts/components/LoginContents.tsx b/web/packages/accounts/components/LoginContents.tsx index 8773d307f5..3b03b898a9 100644 --- a/web/packages/accounts/components/LoginContents.tsx +++ b/web/packages/accounts/components/LoginContents.tsx @@ -11,6 +11,7 @@ import { useFormik } from "formik"; import { t } from "i18next"; import { useRouter } from "next/router"; import React, { useCallback } from "react"; +import { z } from "zod/v4"; interface LoginContentsProps { /** Called when the user clicks the signup option instead. */ @@ -59,17 +60,22 @@ export const LoginContents: React.FC = ({ const formik = useFormik({ initialValues: { email: "" }, - onSubmit: async (values, { setFieldError }) => { - const value = values.email; + onSubmit: async ({ email }, { setFieldError }) => { const setEmailFieldError = (message: string) => - setFieldError("value", message); + setFieldError("email", message); - if (!value) { + if (!email) { setEmailFieldError(t("required")); return; } + + if (!z.email().safeParse(email).success) { + setEmailFieldError(t("invalid_email_error")); + return; + } + try { - await loginUser(value, setEmailFieldError); + await loginUser(email, setEmailFieldError); } catch (e) { log.error("Failed to login", e); setEmailFieldError(t("generic_error")); diff --git a/web/packages/new/albums/components/UploaderNameInput.tsx b/web/packages/new/albums/components/UploaderNameInput.tsx index 913546e696..97c8dac07a 100644 --- a/web/packages/new/albums/components/UploaderNameInput.tsx +++ b/web/packages/new/albums/components/UploaderNameInput.tsx @@ -53,7 +53,6 @@ export const UploaderNameInput: React.FC = ({ const setValueFieldError = (message: string) => setFieldError("value", message); - // TODO(RE): Reintroduce email validation after zod migration if (!value) { setValueFieldError(t("required")); return; From 54d2040f2b7543bd7491af69d7a894fb3ca4188a Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 4 Jun 2025 12:43:35 +0530 Subject: [PATCH 161/316] fix: remove .fvm --- mobile/.fvm/flutter_sdk | 1 - mobile/.fvm/fvm_config.json | 3 --- mobile/.fvm/release | 1 - mobile/.fvm/version | 1 - mobile/.fvm/versions/3.27.4 | 1 - 5 files changed, 7 deletions(-) delete mode 120000 mobile/.fvm/flutter_sdk delete mode 100644 mobile/.fvm/fvm_config.json delete mode 100644 mobile/.fvm/release delete mode 100644 mobile/.fvm/version delete mode 120000 mobile/.fvm/versions/3.27.4 diff --git a/mobile/.fvm/flutter_sdk b/mobile/.fvm/flutter_sdk deleted file mode 120000 index 87f422a1ad..0000000000 --- a/mobile/.fvm/flutter_sdk +++ /dev/null @@ -1 +0,0 @@ -/Users/prateeksunal/fvm/versions/3.27.4 \ No newline at end of file diff --git a/mobile/.fvm/fvm_config.json b/mobile/.fvm/fvm_config.json deleted file mode 100644 index 046557157e..0000000000 --- a/mobile/.fvm/fvm_config.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "flutterSdkVersion": "3.27.4" -} \ No newline at end of file diff --git a/mobile/.fvm/release b/mobile/.fvm/release deleted file mode 100644 index 7587f94927..0000000000 --- a/mobile/.fvm/release +++ /dev/null @@ -1 +0,0 @@ -3.27.4 \ No newline at end of file diff --git a/mobile/.fvm/version b/mobile/.fvm/version deleted file mode 100644 index 7587f94927..0000000000 --- a/mobile/.fvm/version +++ /dev/null @@ -1 +0,0 @@ -3.27.4 \ No newline at end of file diff --git a/mobile/.fvm/versions/3.27.4 b/mobile/.fvm/versions/3.27.4 deleted file mode 120000 index 87f422a1ad..0000000000 --- a/mobile/.fvm/versions/3.27.4 +++ /dev/null @@ -1 +0,0 @@ -/Users/prateeksunal/fvm/versions/3.27.4 \ No newline at end of file From 6f3ee24ac11a0eac0a21f84b9b99281b5c865ca3 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 4 Jun 2025 12:46:27 +0530 Subject: [PATCH 162/316] chore: update lock files --- mobile/pubspec.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/pubspec.lock b/mobile/pubspec.lock index 6835fe550e..8db2bae6ef 100644 --- a/mobile/pubspec.lock +++ b/mobile/pubspec.lock @@ -2557,7 +2557,7 @@ packages: sha256: "12391302411737c176b0b5d6491f466b0dd56d4763e347b6714efbaa74d7953d" url: "https://pub.dev" source: hosted - version: "0.6.4" + version: "0.6.5" thermal: dependency: "direct main" description: From 884b3716bad915eeb439500be42363d5742100ca Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 4 Jun 2025 12:52:48 +0530 Subject: [PATCH 163/316] fix: add debouncer --- mobile/lib/app.dart | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/mobile/lib/app.dart b/mobile/lib/app.dart index f3687e1d0a..786107b047 100644 --- a/mobile/lib/app.dart +++ b/mobile/lib/app.dart @@ -25,6 +25,7 @@ import 'package:photos/services/sync/sync_service.dart'; import 'package:photos/ui/tabs/home_widget.dart'; import "package:photos/ui/viewer/actions/file_viewer.dart"; import "package:photos/utils/intent_util.dart"; +import "package:photos/utils/standalone/debouncer.dart"; class EnteApp extends StatefulWidget { final Future Function(String) runBackgroundTask; @@ -54,6 +55,7 @@ class _EnteAppState extends State with WidgetsBindingObserver { late Locale? locale; late StreamSubscription _memoriesChangedSubscription; late StreamSubscription _peopleChangedSubscription; + late Debouncer _changeCallbackDebouncer; @override void initState() { @@ -72,9 +74,13 @@ class _EnteAppState extends State with WidgetsBindingObserver { await MemoryHomeWidgetService.instance.memoryChanged(); }, ); + _changeCallbackDebouncer = Debouncer(const Duration(milliseconds: 500)); _peopleChangedSubscription = Bus.instance.on().listen( (event) async { - await PeopleHomeWidgetService.instance.peopleChanged(); + _changeCallbackDebouncer.run( + () async => + unawaited(PeopleHomeWidgetService.instance.peopleChanged()), + ); }, ); } From fa37b11c7f83377c8ffc1cc31df191405391f8e5 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Wed, 4 Jun 2025 13:20:59 +0530 Subject: [PATCH 164/316] Specify birthdays clearer --- mobile/lib/services/smart_memories_service.dart | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/mobile/lib/services/smart_memories_service.dart b/mobile/lib/services/smart_memories_service.dart index 4593a0c63c..6e505cd91b 100644 --- a/mobile/lib/services/smart_memories_service.dart +++ b/mobile/lib/services/smart_memories_service.dart @@ -686,9 +686,19 @@ class SmartMemoriesService { if (youAndThemMem != null) { memoryResults.add( youAndThemMem.copyWith( + isBirthday: false, + newAge: newAge, firstDateToShow: thisBirthday .subtract(const Duration(days: 5)) .microsecondsSinceEpoch, + lastDateToShow: thisBirthday.microsecondsSinceEpoch, + ), + ); + memoryResults.add( + youAndThemMem.copyWith( + isBirthday: true, + newAge: newAge, + firstDateToShow: thisBirthday.microsecondsSinceEpoch, lastDateToShow: thisBirthday.add(kDayItself).microsecondsSinceEpoch, ), From 49dcb55de730be93acdc72d0115fbada2e00943b Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Wed, 4 Jun 2025 13:22:47 +0530 Subject: [PATCH 165/316] schedule birthdays notifications --- .../lib/services/memories_cache_service.dart | 77 ++++++++++++++++++- 1 file changed, 76 insertions(+), 1 deletion(-) diff --git a/mobile/lib/services/memories_cache_service.dart b/mobile/lib/services/memories_cache_service.dart index 005146f8c7..7e5401d03f 100644 --- a/mobile/lib/services/memories_cache_service.dart +++ b/mobile/lib/services/memories_cache_service.dart @@ -15,6 +15,7 @@ import "package:photos/extensions/stop_watch.dart"; import "package:photos/models/file/file.dart"; import "package:photos/models/memories/memories_cache.dart"; import "package:photos/models/memories/memory.dart"; +import "package:photos/models/memories/people_memory.dart"; import "package:photos/models/memories/smart_memory.dart"; import "package:photos/models/memories/smart_memory_constants.dart"; import "package:photos/service_locator.dart"; @@ -218,7 +219,7 @@ class MemoriesCacheService { _cachedMemories = nowResult.memories .where((memory) => memory.shouldShowNow()) .toList(); - await _scheduleOnThisDayNotifications( + await _scheduleMemoryNotifications( [...nowResult.memories, ...nextResult.memories], ); locationService.baseLocations = nowResult.baseLocations; @@ -243,6 +244,13 @@ class MemoriesCacheService { return newCache; } + Future _scheduleMemoryNotifications( + List allMemories, + ) async { + await _scheduleOnThisDayNotifications(allMemories); + await _scheduleBirthdayNotifications(allMemories); + } + Future _scheduleOnThisDayNotifications( List allMemories, ) async { @@ -289,6 +297,73 @@ class MemoriesCacheService { } } + Future _scheduleBirthdayNotifications( + List allMemories, + ) async { + await NotificationService.instance + .clearAllScheduledNotifications(containingPayload: "birthday"); + final scheduledPersons = {}; + final toSchedule = []; + final peopleToBirthdayMemories = >{}; + for (final memory in allMemories) { + if (memory is PeopleMemory && (memory.isBirthday ?? false)) { + peopleToBirthdayMemories + .putIfAbsent(memory.personID, () => []) + .add(memory); + } + } + personLoop: + for (final personID in peopleToBirthdayMemories.keys) { + final birthdayMemories = peopleToBirthdayMemories[personID]!; + for (final memory in birthdayMemories) { + if (memory.peopleMemoryType == PeopleMemoryType.youAndThem) { + toSchedule.add(memory); + continue personLoop; + } + } + for (final memory in birthdayMemories) { + if (memory.peopleMemoryType == PeopleMemoryType.spotlight) { + toSchedule.add(memory); + continue personLoop; + } + } + } + for (final memory in toSchedule) { + final firstDateToShow = + DateTime.fromMicrosecondsSinceEpoch(memory.firstDateToShow); + final scheduleTime = DateTime( + firstDateToShow.year, + firstDateToShow.month, + firstDateToShow.day, + 7, + ); + if (scheduleTime.isBefore(DateTime.now())) { + _logger.info( + "Skipping scheduling notification for memory ${memory.id} because the date is in the past", + ); + continue; + } + if (scheduledPersons.contains(memory.personID)) { + _logger.severe( + "Skipping scheduling notification for memory ${memory.id} because the person's birthday is already scheduled", + ); + continue; + } + await NotificationService.instance.scheduleNotification( + memory.personName != null + ? "Happy birthday to ${memory.personName}! 🎉" + : "Happy birthday! 🥳", + id: memory.id.hashCode, + channelID: "birthday", + channelName: "Birthdays", + payload: "birthday_${memory.personID}", + dateTime: scheduleTime, + timeoutDurationAndroid: const Duration(hours: 17), + ); + scheduledPersons.add(memory.personID); + } + } + MemoriesCache _processOldCache(MemoriesCache? oldCache) { final List peopleShownLogs = []; final List clipShownLogs = []; From 9a0722ffccf1633810e170b0fb5ea83e8f864f63 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Wed, 4 Jun 2025 13:25:32 +0530 Subject: [PATCH 166/316] todos for after merge --- mobile/lib/services/memories_cache_service.dart | 2 ++ mobile/lib/ui/tabs/home_widget.dart | 1 + 2 files changed, 3 insertions(+) diff --git a/mobile/lib/services/memories_cache_service.dart b/mobile/lib/services/memories_cache_service.dart index 7e5401d03f..82c828696d 100644 --- a/mobile/lib/services/memories_cache_service.dart +++ b/mobile/lib/services/memories_cache_service.dart @@ -353,6 +353,8 @@ class MemoriesCacheService { memory.personName != null ? "Happy birthday to ${memory.personName}! 🎉" : "Happy birthday! 🥳", + // TODO:lau (after mergin main): change `scheduleNotification` api to make message optional + // TODO:lau (after mergin main): extract strings id: memory.id.hashCode, channelID: "birthday", channelName: "Birthdays", diff --git a/mobile/lib/ui/tabs/home_widget.dart b/mobile/lib/ui/tabs/home_widget.dart index 5601ee433f..46c6c0d6b0 100644 --- a/mobile/lib/ui/tabs/home_widget.dart +++ b/mobile/lib/ui/tabs/home_widget.dart @@ -862,6 +862,7 @@ class _HomeWidgetState extends State { payload, ); } else { + // TODO:lau (after mergin main): add another case here for birthday notifications final collectionID = Uri.parse(payload).queryParameters["collectionID"]; if (collectionID != null) { final collection = CollectionsService.instance From 85c14b884b3dd550f4245d90a881a96b756fb8fb Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Wed, 4 Jun 2025 13:41:19 +0530 Subject: [PATCH 167/316] [mob] Use file stream to improve hashing speed --- .../plugins/ente_crypto/lib/src/crypto.dart | 20 ++++--------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/mobile/plugins/ente_crypto/lib/src/crypto.dart b/mobile/plugins/ente_crypto/lib/src/crypto.dart index 7a3ec6c3c5..9f7a10f8c2 100644 --- a/mobile/plugins/ente_crypto/lib/src/crypto.dart +++ b/mobile/plugins/ente_crypto/lib/src/crypto.dart @@ -51,26 +51,14 @@ Uint8List cryptoKdfDeriveFromKey( ); } -// Returns the hash for a given file, chunking it in batches of hashChunkSize +// Returns the hash for a given file Future cryptoGenericHash(Map args) async { - final sourceFile = File(args["sourceFilePath"]); - final sourceFileLength = await sourceFile.length(); - final inputFile = sourceFile.openSync(mode: FileMode.read); + final file = File(args["sourceFilePath"]); final state = Sodium.cryptoGenerichashInit(null, Sodium.cryptoGenerichashBytesMax); - var bytesRead = 0; - bool isDone = false; - while (!isDone) { - var chunkSize = hashChunkSize; - if (bytesRead + chunkSize >= sourceFileLength) { - chunkSize = sourceFileLength - bytesRead; - isDone = true; - } - final buffer = await inputFile.read(chunkSize); - bytesRead += chunkSize; - Sodium.cryptoGenerichashUpdate(state, buffer); + await for (final chunk in file.openRead()) { + Sodium.cryptoGenerichashUpdate(state, Uint8List.fromList(chunk)); } - await inputFile.close(); return Sodium.cryptoGenerichashFinal(state, Sodium.cryptoGenerichashBytesMax); } From eea70db1fdcde046dd7178881e31e027c2fb37e6 Mon Sep 17 00:00:00 2001 From: Neeraj Date: Wed, 4 Jun 2025 14:31:51 +0530 Subject: [PATCH 168/316] Avoid redundant copy Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- mobile/plugins/ente_crypto/lib/src/crypto.dart | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mobile/plugins/ente_crypto/lib/src/crypto.dart b/mobile/plugins/ente_crypto/lib/src/crypto.dart index 9f7a10f8c2..52202c5ac9 100644 --- a/mobile/plugins/ente_crypto/lib/src/crypto.dart +++ b/mobile/plugins/ente_crypto/lib/src/crypto.dart @@ -57,7 +57,11 @@ Future cryptoGenericHash(Map args) async { final state = Sodium.cryptoGenerichashInit(null, Sodium.cryptoGenerichashBytesMax); await for (final chunk in file.openRead()) { - Sodium.cryptoGenerichashUpdate(state, Uint8List.fromList(chunk)); + if (chunk is Uint8List) { + Sodium.cryptoGenerichashUpdate(state, chunk); + } else { + Sodium.cryptoGenerichashUpdate(state, Uint8List.fromList(chunk)); + } } return Sodium.cryptoGenerichashFinal(state, Sodium.cryptoGenerichashBytesMax); } From 223ed36d618c05f0e7114d66d6c56a327b95b324 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Wed, 4 Jun 2025 12:58:54 +0530 Subject: [PATCH 169/316] Conv --- .../components/VerifyMasterPasswordForm.tsx | 99 ++++++++++++++----- 1 file changed, 74 insertions(+), 25 deletions(-) diff --git a/web/packages/shared/components/VerifyMasterPasswordForm.tsx b/web/packages/shared/components/VerifyMasterPasswordForm.tsx index 5ade7afd46..c738abd9c6 100644 --- a/web/packages/shared/components/VerifyMasterPasswordForm.tsx +++ b/web/packages/shared/components/VerifyMasterPasswordForm.tsx @@ -1,11 +1,12 @@ -import { Input, type ButtonProps } from "@mui/material"; +import { Input, TextField, type ButtonProps } from "@mui/material"; import type { SRPAttributes } from "ente-accounts/services/srp-remote"; +import { LoadingButton } from "ente-base/components/mui/LoadingButton"; +import { ShowHidePasswordInputAdornment } from "ente-base/components/mui/PasswordInputAdornment"; import { sharedCryptoWorker } from "ente-base/crypto"; import log from "ente-base/log"; +import { useFormik } from "formik"; import { t } from "i18next"; -import SingleInputForm, { - type SingleInputFormProps, -} from "../components/SingleInputForm"; +import { useCallback, useState } from "react"; import { CustomError } from "../error"; import type { KeyAttributes, User } from "../user/types"; @@ -49,9 +50,31 @@ export default function VerifyMasterPasswordForm({ submitButtonProps, getKeyAttributes, }: VerifyMasterPasswordFormProps) { - const verifyPassphrase: SingleInputFormProps["callback"] = async ( - passphrase, - setFieldError, + const [showPassword, setShowPassword] = useState(false); + + const handleToggleShowHidePassword = useCallback( + () => setShowPassword((show) => !show), + [], + ); + + const formik = useFormik({ + initialValues: { password: "" }, + onSubmit: async ({ password }, { setFieldError }) => { + const setPasswordFieldError = (message: string) => + setFieldError("password", message); + + if (!password) { + setPasswordFieldError(t("required")); + return; + } + + await verifyPassphrase(password, setPasswordFieldError); + }, + }); + + const verifyPassphrase = async ( + passphrase: string, + setFieldError: (message: string) => void, ) => { try { const cryptoWorker = await sharedCryptoWorker(); @@ -114,28 +137,54 @@ export default function VerifyMasterPasswordForm({ default: setFieldError(t("generic_error")); } + } else { + log.error("failed to verify passphrase", e); } } }; return ( - - } - autoComplete={"current-password"} - fieldType="password" - /> + + + + ), + }, + }} + /> + + {buttonText} + + ); } From a07d39512befed2e30a344337853c06f2da4dc04 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Wed, 4 Jun 2025 13:02:25 +0530 Subject: [PATCH 170/316] Prune ids --- web/packages/accounts/components/LoginContents.tsx | 1 - web/packages/shared/components/VerifyMasterPasswordForm.tsx | 1 - 2 files changed, 2 deletions(-) diff --git a/web/packages/accounts/components/LoginContents.tsx b/web/packages/accounts/components/LoginContents.tsx index 3b03b898a9..6ce6cbabc6 100644 --- a/web/packages/accounts/components/LoginContents.tsx +++ b/web/packages/accounts/components/LoginContents.tsx @@ -91,7 +91,6 @@ export const LoginContents: React.FC = ({
      Date: Wed, 4 Jun 2025 13:19:05 +0530 Subject: [PATCH 171/316] Document and move --- .../src/components/AuthenticateUser.tsx | 18 ++---- .../components/VerifyMasterPasswordForm.tsx | 58 ++++++++++++------- web/packages/accounts/pages/credentials.tsx | 15 +++-- 3 files changed, 51 insertions(+), 40 deletions(-) rename web/packages/{shared => accounts}/components/VerifyMasterPasswordForm.tsx (86%) diff --git a/web/apps/photos/src/components/AuthenticateUser.tsx b/web/apps/photos/src/components/AuthenticateUser.tsx index 2c02479bef..2425422d22 100644 --- a/web/apps/photos/src/components/AuthenticateUser.tsx +++ b/web/apps/photos/src/components/AuthenticateUser.tsx @@ -1,3 +1,4 @@ +import { VerifyMasterPasswordForm } from "ente-accounts/components/VerifyMasterPasswordForm"; import { checkSessionValidity } from "ente-accounts/services/session"; import { TitledMiniDialog, @@ -6,9 +7,6 @@ import { import type { ModalVisibilityProps } from "ente-base/components/utils/modal"; import { useBaseContext } from "ente-base/context"; import log from "ente-base/log"; -import VerifyMasterPasswordForm, { - type VerifyMasterPasswordFormProps, -} from "ente-shared/components/VerifyMasterPasswordForm"; import { getData } from "ente-shared/storage/localStorage"; import type { KeyAttributes, User } from "ente-shared/user/types"; import { t } from "i18next"; @@ -90,12 +88,6 @@ export const AuthenticateUser: React.FC = ({ if (open) void validateSession(); }, [open]); - const useMasterPassword: VerifyMasterPasswordFormProps["callback"] = - async () => { - onClose(); - onAuthenticate(); - }; - return ( = ({ title={t("password")} > { + onClose(); + onAuthenticate(); + }} /> ); diff --git a/web/packages/shared/components/VerifyMasterPasswordForm.tsx b/web/packages/accounts/components/VerifyMasterPasswordForm.tsx similarity index 86% rename from web/packages/shared/components/VerifyMasterPasswordForm.tsx rename to web/packages/accounts/components/VerifyMasterPasswordForm.tsx index 619c668912..19fd416470 100644 --- a/web/packages/shared/components/VerifyMasterPasswordForm.tsx +++ b/web/packages/accounts/components/VerifyMasterPasswordForm.tsx @@ -1,4 +1,4 @@ -import { Input, TextField, type ButtonProps } from "@mui/material"; +import { Input, TextField } from "@mui/material"; import type { SRPAttributes } from "ente-accounts/services/srp-remote"; import { LoadingButton } from "ente-base/components/mui/LoadingButton"; import { ShowHidePasswordInputAdornment } from "ente-base/components/mui/PasswordInputAdornment"; @@ -7,18 +7,14 @@ import log from "ente-base/log"; import { useFormik } from "formik"; import { t } from "i18next"; import { useCallback, useState } from "react"; -import { CustomError } from "../error"; -import type { KeyAttributes, User } from "../user/types"; +import { CustomError } from "ente-shared/error" +import type { KeyAttributes, User } from "ente-shared/user/types"; export interface VerifyMasterPasswordFormProps { + /** + * The user whose password we're trying to verify. + */ user: User | undefined; - callback: ( - key: string, - kek: string, - keyAttributes: KeyAttributes, - passphrase?: string, - ) => void; - buttonText: string; keyAttributes: KeyAttributes | undefined; /** * A callback invoked when the form wants to get {@link KeyAttributes}. @@ -38,18 +34,41 @@ export interface VerifyMasterPasswordFormProps { */ getKeyAttributes?: (kek: string) => Promise; srpAttributes?: SRPAttributes; - submitButtonProps?: ButtonProps; + /** + * The title of the submit button no the form. + */ + submitButtonTitle: string; + /** + * The callback invoked with the verified password, and all the other + * auxillary information that was ascertained when verifying it. + * + * @param key The user's master key + * @param kek + * @param keyAttributes + * @param passphrase The plaintext password + */ + onSubmit: ( + key: string, + kek: string, + keyAttributes: KeyAttributes, + passphrase?: string, + ) => void; } -export default function VerifyMasterPasswordForm({ +/** + * A form with a text field that can be used to ask the user to verify their + * password. + */ +export const VerifyMasterPasswordForm: React.FC< + VerifyMasterPasswordFormProps +> = ({ user, keyAttributes, srpAttributes, - callback, - buttonText, - submitButtonProps, getKeyAttributes, -}: VerifyMasterPasswordFormProps) { + onSubmit, + submitButtonTitle, +}) => { const [showPassword, setShowPassword] = useState(false); const handleToggleShowHidePassword = useCallback( @@ -112,7 +131,7 @@ export default function VerifyMasterPasswordForm({ keyAttributes.keyDecryptionNonce, kek, ); - callback(key, kek, keyAttributes, passphrase); + onSubmit(key, kek, keyAttributes, passphrase); } catch (e) { log.error("user entered a wrong password", e); throw Error(CustomError.INCORRECT_PASSWORD); @@ -180,10 +199,9 @@ export default function VerifyMasterPasswordForm({ type="submit" loading={formik.isSubmitting} color={"accent"} - {...submitButtonProps} > - {buttonText} + {submitButtonTitle} ); -} +}; diff --git a/web/packages/accounts/pages/credentials.tsx b/web/packages/accounts/pages/credentials.tsx index c0f9013394..90a741418e 100644 --- a/web/packages/accounts/pages/credentials.tsx +++ b/web/packages/accounts/pages/credentials.tsx @@ -7,6 +7,10 @@ import { import { SecondFactorChoice } from "ente-accounts/components/SecondFactorChoice"; import { sessionExpiredDialogAttributes } from "ente-accounts/components/utils/dialog"; import { useSecondFactorChoiceIfNeeded } from "ente-accounts/components/utils/second-factor-choice"; +import { + VerifyMasterPasswordForm, + type VerifyMasterPasswordFormProps, +} from "ente-accounts/components/VerifyMasterPasswordForm"; import { openPasskeyVerificationURL, passkeyVerificationRedirectURL, @@ -31,9 +35,6 @@ import { sharedCryptoWorker } from "ente-base/crypto"; import type { B64EncryptionResult } from "ente-base/crypto/libsodium"; import { clearLocalStorage } from "ente-base/local-storage"; import log from "ente-base/log"; -import VerifyMasterPasswordForm, { - type VerifyMasterPasswordFormProps, -} from "ente-shared/components/VerifyMasterPasswordForm"; import { decryptAndStoreToken, generateAndSaveIntermediateKeyAttributes, @@ -258,7 +259,7 @@ const Page: React.FC = () => { }; // eslint-disable-next-line @typescript-eslint/no-misused-promises - const useMasterPassword: VerifyMasterPasswordFormProps["callback"] = async ( + const useMasterPassword: VerifyMasterPasswordFormProps["onSubmit"] = async ( key, kek, keyAttributes, @@ -334,16 +335,14 @@ const Page: React.FC = () => { return ( {user?.email ?? ""} - - router.push("/recover")}> {t("forgot_password")} From 2715bd81b0fb5f319fc643fe35e08dd4942bb8bf Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Wed, 4 Jun 2025 13:31:49 +0530 Subject: [PATCH 172/316] vis --- .../accounts/components/LoginComponents.tsx | 46 +++++++++++++------ .../accounts/components/LoginContents.tsx | 6 +-- web/packages/accounts/pages/credentials.tsx | 2 +- 3 files changed, 36 insertions(+), 18 deletions(-) diff --git a/web/packages/accounts/components/LoginComponents.tsx b/web/packages/accounts/components/LoginComponents.tsx index 9433914f49..fb70567e16 100644 --- a/web/packages/accounts/components/LoginComponents.tsx +++ b/web/packages/accounts/components/LoginComponents.tsx @@ -19,22 +19,40 @@ import { AccountsPageFooter, } from "./layouts/centered-paper"; -export const PasswordHeader: React.FC = ({ - children, -}) => { - return ( - - {t("password")} - {children} - - ); -}; +interface HeaderCaptionProps { + /** + * If specified, then a caption to display below the title (which is + * expected to be passed as the `children`). + * + * The components which use the {@link HeaderCaptionProps} that they'll have + * the same height irrespective of whether or not the caption is provided. + * This allows us to use this component to get a similar look across various + * pages in the login flow (some of which have a caption, some which not). + */ + caption?: string; +} -const PasskeyHeader: React.FC = ({ children }) => { +export const PasswordHeader: React.FC = (props) => ( + + {t("password")} + +); + +const PasskeyHeader: React.FC = (props) => ( + + {t("passkey")} + +); + +export const AccountsPageTitleWithCaption: React.FC< + React.PropsWithChildren +> = ({ caption, children }) => { return ( - {t("passkey")} - {children} + {children} + + {caption ?? ""} + ); }; @@ -123,7 +141,7 @@ export const VerifyingPasskey: React.FC = ({ return ( - {email ?? ""} + diff --git a/web/packages/accounts/components/LoginContents.tsx b/web/packages/accounts/components/LoginContents.tsx index 6ce6cbabc6..cc020fb263 100644 --- a/web/packages/accounts/components/LoginContents.tsx +++ b/web/packages/accounts/components/LoginContents.tsx @@ -12,6 +12,7 @@ import { t } from "i18next"; import { useRouter } from "next/router"; import React, { useCallback } from "react"; import { z } from "zod/v4"; +import { AccountsPageTitleWithCaption } from "./LoginComponents"; interface LoginContentsProps { /** Called when the user clicks the signup option instead. */ @@ -85,10 +86,9 @@ export const LoginContents: React.FC = ({ return ( <> - {/* AccountsPageTitle, inlined to tweak mb */} - + {t("login")} - +
      { // possibility using types. return ( - {user?.email ?? ""} + Date: Wed, 4 Jun 2025 13:45:32 +0530 Subject: [PATCH 173/316] tweak --- .../src/components/AuthenticateUser.tsx | 2 +- .../components/VerifyMasterPasswordForm.tsx | 22 ++++-- web/packages/accounts/pages/credentials.tsx | 73 +++++++++---------- 3 files changed, 51 insertions(+), 46 deletions(-) diff --git a/web/apps/photos/src/components/AuthenticateUser.tsx b/web/apps/photos/src/components/AuthenticateUser.tsx index 2425422d22..6ecc64af71 100644 --- a/web/apps/photos/src/components/AuthenticateUser.tsx +++ b/web/apps/photos/src/components/AuthenticateUser.tsx @@ -99,7 +99,7 @@ export const AuthenticateUser: React.FC = ({ user={user} keyAttributes={keyAttributes} submitButtonTitle={t("authenticate")} - onSubmit={() => { + onVerify={() => { onClose(); onAuthenticate(); }} diff --git a/web/packages/accounts/components/VerifyMasterPasswordForm.tsx b/web/packages/accounts/components/VerifyMasterPasswordForm.tsx index 19fd416470..62b4c7c9aa 100644 --- a/web/packages/accounts/components/VerifyMasterPasswordForm.tsx +++ b/web/packages/accounts/components/VerifyMasterPasswordForm.tsx @@ -4,11 +4,11 @@ import { LoadingButton } from "ente-base/components/mui/LoadingButton"; import { ShowHidePasswordInputAdornment } from "ente-base/components/mui/PasswordInputAdornment"; import { sharedCryptoWorker } from "ente-base/crypto"; import log from "ente-base/log"; +import { CustomError } from "ente-shared/error"; +import type { KeyAttributes, User } from "ente-shared/user/types"; import { useFormik } from "formik"; import { t } from "i18next"; import { useCallback, useState } from "react"; -import { CustomError } from "ente-shared/error" -import type { KeyAttributes, User } from "ente-shared/user/types"; export interface VerifyMasterPasswordFormProps { /** @@ -42,16 +42,22 @@ export interface VerifyMasterPasswordFormProps { * The callback invoked with the verified password, and all the other * auxillary information that was ascertained when verifying it. * - * @param key The user's master key + * @param key The user's master key obtained after decrypting it from their + * passphrase. + * * @param kek + * * @param keyAttributes - * @param passphrase The plaintext password + * + * @param passphrase The plaintext passphrase. This can be used during login + * to derive another encrypted key using interactive mem/ops limits for + * faster reauthentication after the initial login. */ - onSubmit: ( + onVerify: ( key: string, kek: string, keyAttributes: KeyAttributes, - passphrase?: string, + passphrase: string, ) => void; } @@ -66,7 +72,7 @@ export const VerifyMasterPasswordForm: React.FC< keyAttributes, srpAttributes, getKeyAttributes, - onSubmit, + onVerify, submitButtonTitle, }) => { const [showPassword, setShowPassword] = useState(false); @@ -131,7 +137,7 @@ export const VerifyMasterPasswordForm: React.FC< keyAttributes.keyDecryptionNonce, kek, ); - onSubmit(key, kek, keyAttributes, passphrase); + onVerify(key, kek, keyAttributes, passphrase); } catch (e) { log.error("user entered a wrong password", e); throw Error(CustomError.INCORRECT_PASSWORD); diff --git a/web/packages/accounts/pages/credentials.tsx b/web/packages/accounts/pages/credentials.tsx index ccd36cbdd5..77f4c1feec 100644 --- a/web/packages/accounts/pages/credentials.tsx +++ b/web/packages/accounts/pages/credentials.tsx @@ -150,8 +150,7 @@ const Page: React.FC = () => { keyAttributes.keyDecryptionNonce, kek, ); - // eslint-disable-next-line react-hooks/rules-of-hooks - useMasterPassword(key, kek, keyAttributes); + void postVerification(key, kek, keyAttributes); return; } if (keyAttributes) { @@ -258,46 +257,46 @@ const Page: React.FC = () => { } }; - // eslint-disable-next-line @typescript-eslint/no-misused-promises - const useMasterPassword: VerifyMasterPasswordFormProps["onSubmit"] = async ( - key, - kek, - keyAttributes, - passphrase, + const handleVerifyMasterPassword: VerifyMasterPasswordFormProps["onVerify"] = + (key, kek, keyAttributes, passphrase) => { + void (async () => { + if (isFirstLogin()) { + await generateAndSaveIntermediateKeyAttributes( + passphrase, + keyAttributes, + key, + ); + } + await postVerification(key, kek, keyAttributes); + })(); + }; + + const postVerification = async ( + key: string, + kek: string, + keyAttributes: KeyAttributes, ) => { + await saveKeyInSessionStore("encryptionKey", key); + await decryptAndStoreToken(keyAttributes, key); try { - if (isFirstLogin() && passphrase) { - await generateAndSaveIntermediateKeyAttributes( - passphrase, - keyAttributes, - key, - ); - } - await saveKeyInSessionStore("encryptionKey", key); - await decryptAndStoreToken(keyAttributes, key); - try { - let srpAttributes: SRPAttributes | null = - getData("srpAttributes"); - if (!srpAttributes && user) { - srpAttributes = await getSRPAttributes(user.email); - if (srpAttributes) { - setData("srpAttributes", srpAttributes); - } + let srpAttributes: SRPAttributes | null = getData("srpAttributes"); + if (!srpAttributes && user) { + srpAttributes = await getSRPAttributes(user.email); + if (srpAttributes) { + setData("srpAttributes", srpAttributes); } - log.debug(() => `userSRPSetupPending ${!srpAttributes}`); - if (!srpAttributes) { - const loginSubKey = await generateLoginSubKey(kek); - const srpSetupAttributes = - await generateSRPSetupAttributes(loginSubKey); - await configureSRP(srpSetupAttributes); - } - } catch (e) { - log.error("migrate to srp failed", e); } - void router.push(unstashRedirect() ?? appHomeRoute); + log.debug(() => `userSRPSetupPending ${!srpAttributes}`); + if (!srpAttributes) { + const loginSubKey = await generateLoginSubKey(kek); + const srpSetupAttributes = + await generateSRPSetupAttributes(loginSubKey); + await configureSRP(srpSetupAttributes); + } } catch (e) { - log.error("useMasterPassword failed", e); + log.error("migrate to srp failed", e); } + void router.push(unstashRedirect() ?? appHomeRoute); }; if (!keyAttributes && !srpAttributes) { @@ -341,7 +340,7 @@ const Page: React.FC = () => { getKeyAttributes={getKeyAttributes} srpAttributes={srpAttributes} submitButtonTitle={t("sign_in")} - onSubmit={useMasterPassword} + onVerify={handleVerifyMasterPassword} /> router.push("/recover")}> From 12d84d0dbe4ba3de99ce93445f75cb81d2c468bc Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Wed, 4 Jun 2025 13:55:50 +0530 Subject: [PATCH 174/316] Avoid exceptions for flow control --- .../components/VerifyMasterPasswordForm.tsx | 45 ++++++++++++------- web/packages/shared/error/index.ts | 1 - 2 files changed, 29 insertions(+), 17 deletions(-) diff --git a/web/packages/accounts/components/VerifyMasterPasswordForm.tsx b/web/packages/accounts/components/VerifyMasterPasswordForm.tsx index 62b4c7c9aa..b6a812754f 100644 --- a/web/packages/accounts/components/VerifyMasterPasswordForm.tsx +++ b/web/packages/accounts/components/VerifyMasterPasswordForm.tsx @@ -15,6 +15,9 @@ export interface VerifyMasterPasswordFormProps { * The user whose password we're trying to verify. */ user: User | undefined; + /** + * The user's key attributes. + */ keyAttributes: KeyAttributes | undefined; /** * A callback invoked when the form wants to get {@link KeyAttributes}. @@ -33,6 +36,9 @@ export interface VerifyMasterPasswordFormProps { * the provided email exists. */ getKeyAttributes?: (kek: string) => Promise; + /** + * The user's SRP attributes. + */ srpAttributes?: SRPAttributes; /** * The title of the submit button no the form. @@ -42,12 +48,14 @@ export interface VerifyMasterPasswordFormProps { * The callback invoked with the verified password, and all the other * auxillary information that was ascertained when verifying it. * - * @param key The user's master key obtained after decrypting it from their - * passphrase. + * @param key The user's master key obtained after decrypting it by using + * the kek derived from their passphrase. * - * @param kek + * @param kek The key used for encrypting the user's master key. * - * @param keyAttributes + * @param keyAttributes The user's key attributes (either those that we + * started with, or those that we fetched on the way using + * {@link getKeyAttributes}). * * @param passphrase The plaintext passphrase. This can be used during login * to derive another encrypted key using interactive mem/ops limits for @@ -104,33 +112,41 @@ export const VerifyMasterPasswordForm: React.FC< try { const cryptoWorker = await sharedCryptoWorker(); let kek: string; - try { - if (srpAttributes) { + if (srpAttributes) { + try { kek = await cryptoWorker.deriveKey( passphrase, srpAttributes.kekSalt, srpAttributes.opsLimit, srpAttributes.memLimit, ); - } else if (keyAttributes) { + } catch (e) { + log.error("Failed to derive kek", e); + setFieldError(t("weak_device_hint")); + return; + } + } else if (keyAttributes) { + try { kek = await cryptoWorker.deriveKey( passphrase, keyAttributes.kekSalt, keyAttributes.opsLimit, keyAttributes.memLimit, ); - } else - throw new Error("Both SRP and key attributes are missing"); - } catch (e) { - log.error("failed to derive key", e); - throw Error(CustomError.WEAK_DEVICE); - } + } catch (e) { + log.error("Failed to derive kek", e); + setFieldError(t("weak_device_hint")); + return; + } + } else throw new Error("Both SRP and key attributes are missing"); + if (!keyAttributes && typeof getKeyAttributes == "function") { keyAttributes = await getKeyAttributes(kek); } if (!keyAttributes) { throw Error("couldn't get key attributes"); } + try { const key = await cryptoWorker.decryptB64( keyAttributes.encryptedKey, @@ -150,9 +166,6 @@ export const VerifyMasterPasswordForm: React.FC< } log.error("failed to verify passphrase", e); switch (e.message) { - case CustomError.WEAK_DEVICE: - setFieldError(t("weak_device_hint")); - break; case CustomError.INCORRECT_PASSWORD: setFieldError(t("incorrect_password")); break; diff --git a/web/packages/shared/error/index.ts b/web/packages/shared/error/index.ts index 348cc94676..3aa47fa01c 100644 --- a/web/packages/shared/error/index.ts +++ b/web/packages/shared/error/index.ts @@ -40,7 +40,6 @@ export const CustomError = { BAD_REQUEST: "bad request", SUBSCRIPTION_NEEDED: "subscription not present", NOT_FOUND: "not found ", - WEAK_DEVICE: "password decryption failed on the device", INCORRECT_PASSWORD: "incorrect password", INCORRECT_PASSWORD_OR_NO_ACCOUNT: "incorrect password or no such account", UPLOAD_CANCELLED: "upload cancelled", From 6091a0d446642c4a3f4b517f2e29d946753519ba Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Wed, 4 Jun 2025 16:28:07 +0530 Subject: [PATCH 175/316] Lockfile updates --- web/packages/base/package.json | 2 +- web/yarn.lock | 162 ++++++++++++++------------------- 2 files changed, 71 insertions(+), 93 deletions(-) diff --git a/web/packages/base/package.json b/web/packages/base/package.json index f59010d68c..0416d1cd65 100644 --- a/web/packages/base/package.json +++ b/web/packages/base/package.json @@ -22,7 +22,7 @@ "react-dom": "^19.1.0", "react-i18next": "^15.5.2", "yup": "^1.6.1", - "zod": "^3.25.50" + "zod": "^3.25.51" }, "devDependencies": { "@types/libsodium-wrappers-sumo": "^0.7.8", diff --git a/web/yarn.lock b/web/yarn.lock index 6d0e5457a3..583d5973cb 100644 --- a/web/yarn.lock +++ b/web/yarn.lock @@ -151,7 +151,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.25.9" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.23.2", "@babel/runtime@^7.25.0", "@babel/runtime@^7.25.7", "@babel/runtime@^7.26.0", "@babel/runtime@^7.27.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.23.2", "@babel/runtime@^7.25.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7": version "7.27.0" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.27.0.tgz#fbee7cf97c709518ecc1f590984481d5460d4762" integrity sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw== @@ -750,127 +750,110 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" -"@mui/core-downloads-tracker@^6.4.11": - version "6.4.11" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-6.4.11.tgz#0752eea024d8ff0f120b0f26aee4342c79112847" - integrity sha512-CzAQs9CTzlwbsF9ZYB4o4lLwBv1/qNE264NjuYao+ctAXsmlPtYa8RtER4UsUXSMxNN9Qi+aQdYcKl2sUpnmAw== +"@mui/core-downloads-tracker@^7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-7.1.1.tgz#43532ccf57be19055eb20e7802508520293cf286" + integrity sha512-yBckQs4aQ8mqukLnPC6ivIRv6guhaXi8snVl00VtyojBbm+l6VbVhyTSZ68Abcx7Ah8B+GZhrB7BOli+e+9LkQ== -"@mui/icons-material@^6.4.11": - version "6.4.11" - resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-6.4.11.tgz#add406d3d1c82e7aaf49002a8d456fa992e7f3db" - integrity sha512-+jjJGIrB1awNbMv4ZVPPdN/p7O1UKFZ+xqRvNIQ8B1KnlID5hPMPBLM6UUbRF4bu3UDCbu79rn9Nye5LGNzmeA== +"@mui/icons-material@^7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-7.1.1.tgz#0e0e9640579da5e4096f0449438337c448bc5a5c" + integrity sha512-X37+Yc8QpEnl0sYmz+WcLFy2dWgNRzbswDzLPXG7QU1XDVlP5TPp1HXjdmCupOWLL/I9m1fyhcyZl8/HPpp/Cg== dependencies: - "@babel/runtime" "^7.26.0" + "@babel/runtime" "^7.27.1" -"@mui/material@^6.4.11": - version "6.4.11" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-6.4.11.tgz#ac5c42c25fc807545eef4de0e88a47b52de8ed75" - integrity sha512-k2D3FLJS+/qD0qnd6ZlAjGFvaaxe1Dl10NyvpeDzIebMuYdn8VqYe6XBgGueEAtnzSJM4V03VD9kb5Fi24dnTA== +"@mui/material@^7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@mui/material/-/material-7.1.1.tgz#5f75b25936925be14cb34abe0489cda82a6f8413" + integrity sha512-mTpdmdZCaHCGOH3SrYM41+XKvNL0iQfM9KlYgpSjgadXx/fEKhhvOktxm8++Xw6FFeOHoOiV+lzOI8X1rsv71A== dependencies: - "@babel/runtime" "^7.26.0" - "@mui/core-downloads-tracker" "^6.4.11" - "@mui/system" "^6.4.11" - "@mui/types" "~7.2.24" - "@mui/utils" "^6.4.9" + "@babel/runtime" "^7.27.1" + "@mui/core-downloads-tracker" "^7.1.1" + "@mui/system" "^7.1.1" + "@mui/types" "^7.4.3" + "@mui/utils" "^7.1.1" "@popperjs/core" "^2.11.8" "@types/react-transition-group" "^4.4.12" clsx "^2.1.1" csstype "^3.1.3" prop-types "^15.8.1" - react-is "^19.0.0" + react-is "^19.1.0" react-transition-group "^4.4.5" -"@mui/private-theming@^6.4.9": - version "6.4.9" - resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-6.4.9.tgz#0c1d65a638a1740aad0eb715d79e76471abe8175" - integrity sha512-LktcVmI5X17/Q5SkwjCcdOLBzt1hXuc14jYa7NPShog0GBDCDvKtcnP0V7a2s6EiVRlv7BzbWEJzH6+l/zaCxw== +"@mui/private-theming@^7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-7.1.1.tgz#c2ecc57a9b97fbfdd850430de500c42a0f2571fe" + integrity sha512-M8NbLUx+armk2ZuaxBkkMk11ultnWmrPlN0Xe3jUEaBChg/mcxa5HWIWS1EE4DF36WRACaAHVAvyekWlDQf0PQ== dependencies: - "@babel/runtime" "^7.26.0" - "@mui/utils" "^6.4.9" + "@babel/runtime" "^7.27.1" + "@mui/utils" "^7.1.1" prop-types "^15.8.1" -"@mui/styled-engine@^6.4.11": - version "6.4.11" - resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-6.4.11.tgz#a48f48165382943018f70519de1d31e036abb054" - integrity sha512-74AUmlHXaGNbyUqdK/+NwDJOZqgRQw6BcNvhoWYLq3LGbLTkE+khaJ7soz6cIabE4CPYqO2/QAIU1Z/HEjjpcw== +"@mui/styled-engine@^7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-7.1.1.tgz#2524e0f4e22782b42ea4c32f36f9e19a50ccf55a" + integrity sha512-R2wpzmSN127j26HrCPYVQ53vvMcT5DaKLoWkrfwUYq3cYytL6TQrCH8JBH3z79B6g4nMZZVoaXrxO757AlShaw== dependencies: - "@babel/runtime" "^7.26.0" + "@babel/runtime" "^7.27.1" "@emotion/cache" "^11.13.5" "@emotion/serialize" "^1.3.3" "@emotion/sheet" "^1.4.0" csstype "^3.1.3" prop-types "^15.8.1" -"@mui/system@^6.4.11": - version "6.4.11" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-6.4.11.tgz#f209e0792d008be2f75af41fada2ee9e06adeef2" - integrity sha512-gibtsrZEwnDaT5+I/KloOj/yHluX5G8heknuxBpQOdEQ3Gc0avjSImn5hSeKp8D4thiwZiApuggIjZw1dQguUA== +"@mui/system@^7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@mui/system/-/system-7.1.1.tgz#eff52e597b0bfed8ecf2e973f4575ef737430727" + integrity sha512-Kj1uhiqnj4Zo7PDjAOghtXJtNABunWvhcRU0O7RQJ7WOxeynoH6wXPcilphV8QTFtkKaip8EiNJRiCD+B3eROA== dependencies: - "@babel/runtime" "^7.26.0" - "@mui/private-theming" "^6.4.9" - "@mui/styled-engine" "^6.4.11" - "@mui/types" "~7.2.24" - "@mui/utils" "^6.4.9" + "@babel/runtime" "^7.27.1" + "@mui/private-theming" "^7.1.1" + "@mui/styled-engine" "^7.1.1" + "@mui/types" "^7.4.3" + "@mui/utils" "^7.1.1" clsx "^2.1.1" csstype "^3.1.3" prop-types "^15.8.1" -"@mui/types@^7.4.1": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.4.1.tgz#5611268faa0b46ab0c622c02b54f3f30f9809c2d" - integrity sha512-gUL8IIAI52CRXP/MixT1tJKt3SI6tVv4U/9soFsTtAsHzaJQptZ42ffdHZV3niX1ei0aUgMvOxBBN0KYqdG39g== +"@mui/types@^7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.4.3.tgz#b205ee3404db0478cd93227fc21967e2cb8630fe" + integrity sha512-2UCEiK29vtiZTeLdS2d4GndBKacVyxGvReznGXGr+CzW/YhjIX+OHUdCIczZjzcRAgKBGmE9zCIgoV9FleuyRQ== dependencies: - "@babel/runtime" "^7.27.0" + "@babel/runtime" "^7.27.1" -"@mui/types@~7.2.24": - version "7.2.24" - resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.24.tgz#5eff63129d9c29d80bbf2d2e561bd0690314dec2" - integrity sha512-3c8tRt/CbWZ+pEg7QpSwbdxOk36EfmhbKf6AGZsD1EcLDLTSZoxxJ86FVtcjxvjuhdyBiWKSTGZFaXCnidO2kw== - -"@mui/utils@^5.16.6 || ^6.0.0 || ^7.0.0": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-7.0.2.tgz#b6842a9f979a619b65011a84a1964b85b205a9a4" - integrity sha512-72gcuQjPzhj/MLmPHLCgZjy2VjOH4KniR/4qRtXTTXIEwbkgcN+Y5W/rC90rWtMmZbjt9svZev/z+QHUI4j74w== +"@mui/utils@^7.0.2", "@mui/utils@^7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-7.1.1.tgz#de315ec45ac9e16c637dcc2b32cd7912edb4e234" + integrity sha512-BkOt2q7MBYl7pweY2JWwfrlahhp+uGLR8S+EhiyRaofeRYUWL2YKbSGQvN4hgSN1i8poN0PaUiii1kEMrchvzg== dependencies: - "@babel/runtime" "^7.27.0" - "@mui/types" "^7.4.1" + "@babel/runtime" "^7.27.1" + "@mui/types" "^7.4.3" "@types/prop-types" "^15.7.14" clsx "^2.1.1" prop-types "^15.8.1" react-is "^19.1.0" -"@mui/utils@^6.4.9": - version "6.4.9" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-6.4.9.tgz#b0df01daa254c7c32a1a30b30a5179e19ef071a7" - integrity sha512-Y12Q9hbK9g+ZY0T3Rxrx9m2m10gaphDuUMgWxyV5kNJevVxXYCLclYUCC9vXaIk1/NdNDTcW2Yfr2OGvNFNmHg== +"@mui/x-date-pickers@^8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@mui/x-date-pickers/-/x-date-pickers-8.5.0.tgz#5a79e7e6c4d10b394a4005cb1eb29c8819961f9a" + integrity sha512-pnivJhAopuu6C4uWbEEg7b8kDdPc7Ad0ANrlDzx4qZGUj9vFcc6n+hT7/kOFnn9uceszQmb07e3Ud+g/d8Z4vg== dependencies: - "@babel/runtime" "^7.26.0" - "@mui/types" "~7.2.24" - "@types/prop-types" "^15.7.14" - clsx "^2.1.1" - prop-types "^15.8.1" - react-is "^19.0.0" - -"@mui/x-date-pickers@^7.29.3": - version "7.29.3" - resolved "https://registry.yarnpkg.com/@mui/x-date-pickers/-/x-date-pickers-7.29.3.tgz#7e8939d5fbc1626c5d6fd02d0b8107ad010d0c3a" - integrity sha512-/A0/8fpLnEFeJKr5YQsI8jqlWPJlOtgfCGcqXHVDOLxgV3lW49+Kh5TZAc1yi6HKT3AG6k4DkNwTuu/RjJeMFA== - dependencies: - "@babel/runtime" "^7.25.7" - "@mui/utils" "^5.16.6 || ^6.0.0 || ^7.0.0" - "@mui/x-internals" "7.29.0" - "@types/react-transition-group" "^4.4.11" + "@babel/runtime" "^7.27.1" + "@mui/utils" "^7.0.2" + "@mui/x-internals" "8.5.0" + "@types/react-transition-group" "^4.4.12" clsx "^2.1.1" prop-types "^15.8.1" react-transition-group "^4.4.5" -"@mui/x-internals@7.29.0": - version "7.29.0" - resolved "https://registry.yarnpkg.com/@mui/x-internals/-/x-internals-7.29.0.tgz#1f353b697ed1bf5594ac549556ade2e6841f4bf5" - integrity sha512-+Gk6VTZIFD70XreWvdXBwKd8GZ2FlSCuecQFzm6znwqXg1ZsndavrhG9tkxpxo2fM1Zf7Tk8+HcOO0hCbhTQFA== +"@mui/x-internals@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@mui/x-internals/-/x-internals-8.5.0.tgz#f1fbeb02804459ebc46d57b61a89adbb99d9d105" + integrity sha512-Ef4KJij1pBGk6/xILyVZHf76tcuRpJIX30k4Ghklsd5QJujZ9ENCGAjvd7aWRAFAs5p3ffn0H8UDESoIcroj1Q== dependencies: - "@babel/runtime" "^7.25.7" - "@mui/utils" "^5.16.6 || ^6.0.0 || ^7.0.0" + "@babel/runtime" "^7.27.1" + "@mui/utils" "^7.0.2" "@next/env@15.3.3": version "15.3.3" @@ -1192,7 +1175,7 @@ resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-19.1.1.tgz#a8d097b28247d1129cf56e74d1622c98978c04ed" integrity sha512-jFf/woGTVTjUJsl2O7hcopJ1r0upqoq/vIOoCj0yLh3RIXxWcljlpuZ+vEBRXsymD1jhfeJrlyTy/S1UW+4y1w== -"@types/react-transition-group@^4.4.0", "@types/react-transition-group@^4.4.11", "@types/react-transition-group@^4.4.12": +"@types/react-transition-group@^4.4.0", "@types/react-transition-group@^4.4.12": version "4.4.12" resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.12.tgz#b5d76568485b02a307238270bfe96cb51ee2a044" integrity sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w== @@ -3416,11 +3399,6 @@ react-is@^16.13.1, react-is@^16.7.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -react-is@^19.0.0: - version "19.0.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-19.0.0.tgz#d6669fd389ff022a9684f708cf6fa4962d1fea7a" - integrity sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g== - react-is@^19.1.0: version "19.1.0" resolved "https://registry.yarnpkg.com/react-is/-/react-is-19.1.0.tgz#805bce321546b7e14c084989c77022351bbdd11b" @@ -4314,10 +4292,10 @@ yup@^1.6.1: toposort "^2.0.2" type-fest "^2.19.0" -zod@^3.25.48: - version "3.25.48" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.25.48.tgz#6c2b536fbb519905e8f4a4ac58743de4d5331bb2" - integrity sha512-0X1mz8FtgEIvaxGjdIImYpZEaZMrund9pGXm3M6vM7Reba0e2eI71KPjSCGXBfwKDPwPoywf6waUKc3/tFvX2Q== +zod@^3.25.51: + version "3.25.51" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.25.51.tgz#aa2cf648e54f6f060f139cf77b694819f63c9f3a" + integrity sha512-TQSnBldh+XSGL+opiSIq0575wvDPqu09AqWe1F7JhUMKY+M91/aGlK4MhpVNO7MgYfHcVCB1ffwAUTJzllKJqg== zxcvbn@^4.4.2: version "4.4.2" From 523d1961b74ac45397405475908d70c3e72339ab Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Wed, 4 Jun 2025 16:30:42 +0530 Subject: [PATCH 176/316] other dep --- desktop/package.json | 6 +- desktop/yarn.lock | 154 +++++++++++------------ web/apps/payments/package.json | 2 +- web/packages/build-config/package.json | 2 +- web/packages/gallery/package.json | 2 +- web/yarn.lock | 164 ++++++++++++------------- 6 files changed, 165 insertions(+), 165 deletions(-) diff --git a/desktop/package.json b/desktop/package.json index 8929ba86e1..0dcd32c5a3 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -39,7 +39,7 @@ "next-electron-server": "^1.0.0", "node-stream-zip": "^1.15.0", "onnxruntime-node": "^1.20.1", - "zod": "^3.25.50" + "zod": "^3.25.51" }, "devDependencies": { "@eslint/js": "^9.28.0", @@ -49,7 +49,7 @@ "ajv": "^8.17.1", "concurrently": "^9.1.2", "cross-env": "^7.0.3", - "electron": "^36.3.2", + "electron": "^36.4.0", "electron-builder": "^26.0.14", "eslint": "^9", "prettier": "3.5.3", @@ -57,7 +57,7 @@ "prettier-plugin-packagejson": "^2.5.15", "shx": "^0.4.0", "typescript": "^5.8.3", - "typescript-eslint": "^8.33.0" + "typescript-eslint": "^8.33.1" }, "packageManager": "yarn@1.22.22", "productName": "ente" diff --git a/desktop/yarn.lock b/desktop/yarn.lock index 5fa9476d3a..0a95216ad1 100644 --- a/desktop/yarn.lock +++ b/desktop/yarn.lock @@ -392,78 +392,78 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@8.33.0": - version "8.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.33.0.tgz#51ed03649575ba51bcee7efdbfd85283249b5447" - integrity sha512-CACyQuqSHt7ma3Ns601xykeBK/rDeZa3w6IS6UtMQbixO5DWy+8TilKkviGDH6jtWCo8FGRKEK5cLLkPvEammQ== +"@typescript-eslint/eslint-plugin@8.33.1": + version "8.33.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.33.1.tgz#532641b416ed2afd5be893cddb2a58e9cd1f7a3e" + integrity sha512-TDCXj+YxLgtvxvFlAvpoRv9MAncDLBV2oT9Bd7YBGC/b/sEURoOYuIwLI99rjWOfY3QtDzO+mk0n4AmdFExW8A== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "8.33.0" - "@typescript-eslint/type-utils" "8.33.0" - "@typescript-eslint/utils" "8.33.0" - "@typescript-eslint/visitor-keys" "8.33.0" + "@typescript-eslint/scope-manager" "8.33.1" + "@typescript-eslint/type-utils" "8.33.1" + "@typescript-eslint/utils" "8.33.1" + "@typescript-eslint/visitor-keys" "8.33.1" graphemer "^1.4.0" ignore "^7.0.0" natural-compare "^1.4.0" ts-api-utils "^2.1.0" -"@typescript-eslint/parser@8.33.0": - version "8.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.33.0.tgz#8e523c2b447ad7cd6ac91b719d8b37449481784d" - integrity sha512-JaehZvf6m0yqYp34+RVnihBAChkqeH+tqqhS0GuX1qgPpwLvmTPheKEs6OeCK6hVJgXZHJ2vbjnC9j119auStQ== +"@typescript-eslint/parser@8.33.1": + version "8.33.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.33.1.tgz#ef9a5ee6aa37a6b4f46cc36d08a14f828238afe2" + integrity sha512-qwxv6dq682yVvgKKp2qWwLgRbscDAYktPptK4JPojCwwi3R9cwrvIxS4lvBpzmcqzR4bdn54Z0IG1uHFskW4dA== dependencies: - "@typescript-eslint/scope-manager" "8.33.0" - "@typescript-eslint/types" "8.33.0" - "@typescript-eslint/typescript-estree" "8.33.0" - "@typescript-eslint/visitor-keys" "8.33.0" + "@typescript-eslint/scope-manager" "8.33.1" + "@typescript-eslint/types" "8.33.1" + "@typescript-eslint/typescript-estree" "8.33.1" + "@typescript-eslint/visitor-keys" "8.33.1" debug "^4.3.4" -"@typescript-eslint/project-service@8.33.0": - version "8.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.33.0.tgz#71f37ef9010de47bf20963914743c5cbef851e08" - integrity sha512-d1hz0u9l6N+u/gcrk6s6gYdl7/+pp8yHheRTqP6X5hVDKALEaTn8WfGiit7G511yueBEL3OpOEpD+3/MBdoN+A== +"@typescript-eslint/project-service@8.33.1": + version "8.33.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.33.1.tgz#c85e7d9a44d6a11fe64e73ac1ed47de55dc2bf9f" + integrity sha512-DZR0efeNklDIHHGRpMpR5gJITQpu6tLr9lDJnKdONTC7vvzOlLAG/wcfxcdxEWrbiZApcoBCzXqU/Z458Za5Iw== dependencies: - "@typescript-eslint/tsconfig-utils" "^8.33.0" - "@typescript-eslint/types" "^8.33.0" + "@typescript-eslint/tsconfig-utils" "^8.33.1" + "@typescript-eslint/types" "^8.33.1" debug "^4.3.4" -"@typescript-eslint/scope-manager@8.33.0": - version "8.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.33.0.tgz#459cf0c49d410800b1a023b973c62d699b09bf4c" - integrity sha512-LMi/oqrzpqxyO72ltP+dBSP6V0xiUb4saY7WLtxSfiNEBI8m321LLVFU9/QDJxjDQG9/tjSqKz/E3380TEqSTw== +"@typescript-eslint/scope-manager@8.33.1": + version "8.33.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.33.1.tgz#d1e0efb296da5097d054bc9972e69878a2afea73" + integrity sha512-dM4UBtgmzHR9bS0Rv09JST0RcHYearoEoo3pG5B6GoTR9XcyeqX87FEhPo+5kTvVfKCvfHaHrcgeJQc6mrDKrA== dependencies: - "@typescript-eslint/types" "8.33.0" - "@typescript-eslint/visitor-keys" "8.33.0" + "@typescript-eslint/types" "8.33.1" + "@typescript-eslint/visitor-keys" "8.33.1" -"@typescript-eslint/tsconfig-utils@8.33.0", "@typescript-eslint/tsconfig-utils@^8.33.0": - version "8.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.33.0.tgz#316adab038bbdc43e448781d5a816c2973eab73e" - integrity sha512-sTkETlbqhEoiFmGr1gsdq5HyVbSOF0145SYDJ/EQmXHtKViCaGvnyLqWFFHtEXoS0J1yU8Wyou2UGmgW88fEug== +"@typescript-eslint/tsconfig-utils@8.33.1", "@typescript-eslint/tsconfig-utils@^8.33.1": + version "8.33.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.33.1.tgz#7836afcc097a4657a5ed56670851a450d8b70ab8" + integrity sha512-STAQsGYbHCF0/e+ShUQ4EatXQ7ceh3fBCXkNU7/MZVKulrlq1usH7t2FhxvCpuCi5O5oi1vmVaAjrGeL71OK1g== -"@typescript-eslint/type-utils@8.33.0": - version "8.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.33.0.tgz#f06124b2d6db8a51b24990cb123c9543af93fef5" - integrity sha512-lScnHNCBqL1QayuSrWeqAL5GmqNdVUQAAMTaCwdYEdWfIrSrOGzyLGRCHXcCixa5NK6i5l0AfSO2oBSjCjf4XQ== +"@typescript-eslint/type-utils@8.33.1": + version "8.33.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.33.1.tgz#d73ee1a29d8a0abe60d4abbff4f1d040f0de15fa" + integrity sha512-1cG37d9xOkhlykom55WVwG2QRNC7YXlxMaMzqw2uPeJixBFfKWZgaP/hjAObqMN/u3fr5BrTwTnc31/L9jQ2ww== dependencies: - "@typescript-eslint/typescript-estree" "8.33.0" - "@typescript-eslint/utils" "8.33.0" + "@typescript-eslint/typescript-estree" "8.33.1" + "@typescript-eslint/utils" "8.33.1" debug "^4.3.4" ts-api-utils "^2.1.0" -"@typescript-eslint/types@8.33.0", "@typescript-eslint/types@^8.33.0": - version "8.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.33.0.tgz#02a7dbba611a8abf1ad2a9e00f72f7b94b5ab0ee" - integrity sha512-DKuXOKpM5IDT1FA2g9x9x1Ug81YuKrzf4mYX8FAVSNu5Wo/LELHWQyM1pQaDkI42bX15PWl0vNPt1uGiIFUOpg== +"@typescript-eslint/types@8.33.1", "@typescript-eslint/types@^8.33.1": + version "8.33.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.33.1.tgz#b693111bc2180f8098b68e9958cf63761657a55f" + integrity sha512-xid1WfizGhy/TKMTwhtVOgalHwPtV8T32MS9MaH50Cwvz6x6YqRIPdD2WvW0XaqOzTV9p5xdLY0h/ZusU5Lokg== -"@typescript-eslint/typescript-estree@8.33.0": - version "8.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.33.0.tgz#abcc1d3db75a8e9fd2e274ee8c4099fa2399abfd" - integrity sha512-vegY4FQoB6jL97Tu/lWRsAiUUp8qJTqzAmENH2k59SJhw0Th1oszb9Idq/FyyONLuNqT1OADJPXfyUNOR8SzAQ== +"@typescript-eslint/typescript-estree@8.33.1": + version "8.33.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.33.1.tgz#d271beed470bc915b8764e22365d4925c2ea265d" + integrity sha512-+s9LYcT8LWjdYWu7IWs7FvUxpQ/DGkdjZeE/GGulHvv8rvYwQvVaUZ6DE+j5x/prADUgSbbCWZ2nPI3usuVeOA== dependencies: - "@typescript-eslint/project-service" "8.33.0" - "@typescript-eslint/tsconfig-utils" "8.33.0" - "@typescript-eslint/types" "8.33.0" - "@typescript-eslint/visitor-keys" "8.33.0" + "@typescript-eslint/project-service" "8.33.1" + "@typescript-eslint/tsconfig-utils" "8.33.1" + "@typescript-eslint/types" "8.33.1" + "@typescript-eslint/visitor-keys" "8.33.1" debug "^4.3.4" fast-glob "^3.3.2" is-glob "^4.0.3" @@ -471,22 +471,22 @@ semver "^7.6.0" ts-api-utils "^2.1.0" -"@typescript-eslint/utils@8.33.0": - version "8.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.33.0.tgz#574ad5edee371077b9e28ca6fb804f2440f447c1" - integrity sha512-lPFuQaLA9aSNa7D5u2EpRiqdAUhzShwGg/nhpBlc4GR6kcTABttCuyjFs8BcEZ8VWrjCBof/bePhP3Q3fS+Yrw== +"@typescript-eslint/utils@8.33.1": + version "8.33.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.33.1.tgz#ea22f40d3553da090f928cf17907e963643d4b96" + integrity sha512-52HaBiEQUaRYqAXpfzWSR2U3gxk92Kw006+xZpElaPMg3C4PgM+A5LqwoQI1f9E5aZ/qlxAZxzm42WX+vn92SQ== dependencies: "@eslint-community/eslint-utils" "^4.7.0" - "@typescript-eslint/scope-manager" "8.33.0" - "@typescript-eslint/types" "8.33.0" - "@typescript-eslint/typescript-estree" "8.33.0" + "@typescript-eslint/scope-manager" "8.33.1" + "@typescript-eslint/types" "8.33.1" + "@typescript-eslint/typescript-estree" "8.33.1" -"@typescript-eslint/visitor-keys@8.33.0": - version "8.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.33.0.tgz#fbae16fd3594531f8cad95d421125d634e9974fe" - integrity sha512-7RW7CMYoskiz5OOGAWjJFxgb7c5UNjTG292gYhWeOAcFmYCtVCSqjqSBj5zMhxbXo2JOW95YYrUWJfU0zrpaGQ== +"@typescript-eslint/visitor-keys@8.33.1": + version "8.33.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.33.1.tgz#6c6e002c24d13211df3df851767f24dfdb4f42bc" + integrity sha512-3i8NrFcZeeDHJ+7ZUuDkGT+UHq+XoFGsymNK2jZCOHcfEzRQ0BdpRtdpSx/Iyf3MHLWIcLS0COuOPibKQboIiQ== dependencies: - "@typescript-eslint/types" "8.33.0" + "@typescript-eslint/types" "8.33.1" eslint-visitor-keys "^4.2.0" "@xmldom/xmldom@^0.8.8": @@ -1250,10 +1250,10 @@ electron-updater@^6.6.3: semver "^7.6.3" tiny-typed-emitter "^2.1.0" -electron@^36.3.2: - version "36.3.2" - resolved "https://registry.yarnpkg.com/electron/-/electron-36.3.2.tgz#4a60f95e8d3858d01570c03b58dc2fb2f17ee8b6" - integrity sha512-v0/j7n22CL3OYv9BIhq6JJz2+e1HmY9H4bjTk8/WzVT9JwVX/T/21YNdR7xuQ6XDSEo9gP5JnqmjOamE+CUY8Q== +electron@^36.4.0: + version "36.4.0" + resolved "https://registry.yarnpkg.com/electron/-/electron-36.4.0.tgz#9463bf5fa7565ae7be3a274f7f6a46359bcfe74d" + integrity sha512-LLOOZEuW5oqvnjC7HBQhIqjIIJAZCIFjQxltQGLfEC7XFsBoZgQ3u3iFj+Kzw68Xj97u1n57Jdt7P98qLvUibQ== dependencies: "@electron/get" "^2.0.0" "@types/node" "^22.7.7" @@ -3251,14 +3251,14 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typescript-eslint@^8.33.0: - version "8.33.0" - resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.33.0.tgz#89f733a90edc6abe0994b6130b964e781a1ba82f" - integrity sha512-5YmNhF24ylCsvdNW2oJwMzTbaeO4bg90KeGtMjUw0AGtHksgEPLRTUil+coHwCfiu4QjVJFnjp94DmU6zV7DhQ== +typescript-eslint@^8.33.1: + version "8.33.1" + resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.33.1.tgz#d2d59c9b24afe1f903a855b02145802e4ae930ff" + integrity sha512-AgRnV4sKkWOiZ0Kjbnf5ytTJXMUZQ0qhSVdQtDNYLPLnjsATEYhaO94GlRQwi4t4gO8FfjM6NnikHeKjUm8D7A== dependencies: - "@typescript-eslint/eslint-plugin" "8.33.0" - "@typescript-eslint/parser" "8.33.0" - "@typescript-eslint/utils" "8.33.0" + "@typescript-eslint/eslint-plugin" "8.33.1" + "@typescript-eslint/parser" "8.33.1" + "@typescript-eslint/utils" "8.33.1" typescript@^5.4.3, typescript@^5.8.3: version "5.8.3" @@ -3421,7 +3421,7 @@ yocto-queue@^0.1.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== -zod@^3.25.50: - version "3.25.50" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.25.50.tgz#9de9ca02ae702fd37ed87b28f8f17099f2402aa9" - integrity sha512-VstOnRxf4tlSq0raIwbn0n+LA34SxVoZ8r3pkwSUM0jqNiA/HCMQEVjTuS5FZmHsge+9MDGTiAuHyml5T0um6A== +zod@^3.25.51: + version "3.25.51" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.25.51.tgz#aa2cf648e54f6f060f139cf77b694819f63c9f3a" + integrity sha512-TQSnBldh+XSGL+opiSIq0575wvDPqu09AqWe1F7JhUMKY+M91/aGlK4MhpVNO7MgYfHcVCB1ffwAUTJzllKJqg== diff --git a/web/apps/payments/package.json b/web/apps/payments/package.json index afa3830aa7..abe8248039 100644 --- a/web/apps/payments/package.json +++ b/web/apps/payments/package.json @@ -16,7 +16,7 @@ "devDependencies": { "@types/react": "^19.1.6", "@types/react-dom": "^19.1.5", - "@vitejs/plugin-react": "^4.5.0", + "@vitejs/plugin-react": "^4.5.1", "ente-build-config": "*", "vite": "^6.3.5" } diff --git a/web/packages/build-config/package.json b/web/packages/build-config/package.json index 122e14c855..ede90bc9c8 100644 --- a/web/packages/build-config/package.json +++ b/web/packages/build-config/package.json @@ -13,6 +13,6 @@ "prettier-plugin-organize-imports": "^4.1.0", "prettier-plugin-packagejson": "^2.5.15", "typescript": "^5.8.3", - "typescript-eslint": "^8.33.0" + "typescript-eslint": "^8.33.1" } } diff --git a/web/packages/gallery/package.json b/web/packages/gallery/package.json index 52f88ee70c..428126f292 100644 --- a/web/packages/gallery/package.json +++ b/web/packages/gallery/package.json @@ -11,7 +11,7 @@ "hls-video-element": "^1.5.2", "leaflet": "^1.9.4", "leaflet-defaulticon-compatibility": "^0.1.2", - "media-chrome": "^4.10.0", + "media-chrome": "^4.11.0", "photoswipe": "^5.4.4", "react": "^19.1.0", "react-dom": "^19.1.0", diff --git a/web/yarn.lock b/web/yarn.lock index 583d5973cb..a5a7fac5aa 100644 --- a/web/yarn.lock +++ b/web/yarn.lock @@ -1199,78 +1199,78 @@ resolved "https://registry.yarnpkg.com/@types/zxcvbn/-/zxcvbn-4.4.5.tgz#8ce8623ed7a36e3a76d1c0b539708dfb2e859bc0" integrity sha512-FZJgC5Bxuqg7Rhsm/bx6gAruHHhDQ55r+s0JhDh8CQ16fD7NsJJ+p8YMMQDhSQoIrSmjpqqYWA96oQVMNkjRyA== -"@typescript-eslint/eslint-plugin@8.33.0": - version "8.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.33.0.tgz#51ed03649575ba51bcee7efdbfd85283249b5447" - integrity sha512-CACyQuqSHt7ma3Ns601xykeBK/rDeZa3w6IS6UtMQbixO5DWy+8TilKkviGDH6jtWCo8FGRKEK5cLLkPvEammQ== +"@typescript-eslint/eslint-plugin@8.33.1": + version "8.33.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.33.1.tgz#532641b416ed2afd5be893cddb2a58e9cd1f7a3e" + integrity sha512-TDCXj+YxLgtvxvFlAvpoRv9MAncDLBV2oT9Bd7YBGC/b/sEURoOYuIwLI99rjWOfY3QtDzO+mk0n4AmdFExW8A== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "8.33.0" - "@typescript-eslint/type-utils" "8.33.0" - "@typescript-eslint/utils" "8.33.0" - "@typescript-eslint/visitor-keys" "8.33.0" + "@typescript-eslint/scope-manager" "8.33.1" + "@typescript-eslint/type-utils" "8.33.1" + "@typescript-eslint/utils" "8.33.1" + "@typescript-eslint/visitor-keys" "8.33.1" graphemer "^1.4.0" ignore "^7.0.0" natural-compare "^1.4.0" ts-api-utils "^2.1.0" -"@typescript-eslint/parser@8.33.0": - version "8.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.33.0.tgz#8e523c2b447ad7cd6ac91b719d8b37449481784d" - integrity sha512-JaehZvf6m0yqYp34+RVnihBAChkqeH+tqqhS0GuX1qgPpwLvmTPheKEs6OeCK6hVJgXZHJ2vbjnC9j119auStQ== +"@typescript-eslint/parser@8.33.1": + version "8.33.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.33.1.tgz#ef9a5ee6aa37a6b4f46cc36d08a14f828238afe2" + integrity sha512-qwxv6dq682yVvgKKp2qWwLgRbscDAYktPptK4JPojCwwi3R9cwrvIxS4lvBpzmcqzR4bdn54Z0IG1uHFskW4dA== dependencies: - "@typescript-eslint/scope-manager" "8.33.0" - "@typescript-eslint/types" "8.33.0" - "@typescript-eslint/typescript-estree" "8.33.0" - "@typescript-eslint/visitor-keys" "8.33.0" + "@typescript-eslint/scope-manager" "8.33.1" + "@typescript-eslint/types" "8.33.1" + "@typescript-eslint/typescript-estree" "8.33.1" + "@typescript-eslint/visitor-keys" "8.33.1" debug "^4.3.4" -"@typescript-eslint/project-service@8.33.0": - version "8.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.33.0.tgz#71f37ef9010de47bf20963914743c5cbef851e08" - integrity sha512-d1hz0u9l6N+u/gcrk6s6gYdl7/+pp8yHheRTqP6X5hVDKALEaTn8WfGiit7G511yueBEL3OpOEpD+3/MBdoN+A== +"@typescript-eslint/project-service@8.33.1": + version "8.33.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.33.1.tgz#c85e7d9a44d6a11fe64e73ac1ed47de55dc2bf9f" + integrity sha512-DZR0efeNklDIHHGRpMpR5gJITQpu6tLr9lDJnKdONTC7vvzOlLAG/wcfxcdxEWrbiZApcoBCzXqU/Z458Za5Iw== dependencies: - "@typescript-eslint/tsconfig-utils" "^8.33.0" - "@typescript-eslint/types" "^8.33.0" + "@typescript-eslint/tsconfig-utils" "^8.33.1" + "@typescript-eslint/types" "^8.33.1" debug "^4.3.4" -"@typescript-eslint/scope-manager@8.33.0": - version "8.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.33.0.tgz#459cf0c49d410800b1a023b973c62d699b09bf4c" - integrity sha512-LMi/oqrzpqxyO72ltP+dBSP6V0xiUb4saY7WLtxSfiNEBI8m321LLVFU9/QDJxjDQG9/tjSqKz/E3380TEqSTw== +"@typescript-eslint/scope-manager@8.33.1": + version "8.33.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.33.1.tgz#d1e0efb296da5097d054bc9972e69878a2afea73" + integrity sha512-dM4UBtgmzHR9bS0Rv09JST0RcHYearoEoo3pG5B6GoTR9XcyeqX87FEhPo+5kTvVfKCvfHaHrcgeJQc6mrDKrA== dependencies: - "@typescript-eslint/types" "8.33.0" - "@typescript-eslint/visitor-keys" "8.33.0" + "@typescript-eslint/types" "8.33.1" + "@typescript-eslint/visitor-keys" "8.33.1" -"@typescript-eslint/tsconfig-utils@8.33.0", "@typescript-eslint/tsconfig-utils@^8.33.0": - version "8.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.33.0.tgz#316adab038bbdc43e448781d5a816c2973eab73e" - integrity sha512-sTkETlbqhEoiFmGr1gsdq5HyVbSOF0145SYDJ/EQmXHtKViCaGvnyLqWFFHtEXoS0J1yU8Wyou2UGmgW88fEug== +"@typescript-eslint/tsconfig-utils@8.33.1", "@typescript-eslint/tsconfig-utils@^8.33.1": + version "8.33.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.33.1.tgz#7836afcc097a4657a5ed56670851a450d8b70ab8" + integrity sha512-STAQsGYbHCF0/e+ShUQ4EatXQ7ceh3fBCXkNU7/MZVKulrlq1usH7t2FhxvCpuCi5O5oi1vmVaAjrGeL71OK1g== -"@typescript-eslint/type-utils@8.33.0": - version "8.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.33.0.tgz#f06124b2d6db8a51b24990cb123c9543af93fef5" - integrity sha512-lScnHNCBqL1QayuSrWeqAL5GmqNdVUQAAMTaCwdYEdWfIrSrOGzyLGRCHXcCixa5NK6i5l0AfSO2oBSjCjf4XQ== +"@typescript-eslint/type-utils@8.33.1": + version "8.33.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.33.1.tgz#d73ee1a29d8a0abe60d4abbff4f1d040f0de15fa" + integrity sha512-1cG37d9xOkhlykom55WVwG2QRNC7YXlxMaMzqw2uPeJixBFfKWZgaP/hjAObqMN/u3fr5BrTwTnc31/L9jQ2ww== dependencies: - "@typescript-eslint/typescript-estree" "8.33.0" - "@typescript-eslint/utils" "8.33.0" + "@typescript-eslint/typescript-estree" "8.33.1" + "@typescript-eslint/utils" "8.33.1" debug "^4.3.4" ts-api-utils "^2.1.0" -"@typescript-eslint/types@8.33.0", "@typescript-eslint/types@^8.33.0": - version "8.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.33.0.tgz#02a7dbba611a8abf1ad2a9e00f72f7b94b5ab0ee" - integrity sha512-DKuXOKpM5IDT1FA2g9x9x1Ug81YuKrzf4mYX8FAVSNu5Wo/LELHWQyM1pQaDkI42bX15PWl0vNPt1uGiIFUOpg== +"@typescript-eslint/types@8.33.1", "@typescript-eslint/types@^8.33.1": + version "8.33.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.33.1.tgz#b693111bc2180f8098b68e9958cf63761657a55f" + integrity sha512-xid1WfizGhy/TKMTwhtVOgalHwPtV8T32MS9MaH50Cwvz6x6YqRIPdD2WvW0XaqOzTV9p5xdLY0h/ZusU5Lokg== -"@typescript-eslint/typescript-estree@8.33.0": - version "8.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.33.0.tgz#abcc1d3db75a8e9fd2e274ee8c4099fa2399abfd" - integrity sha512-vegY4FQoB6jL97Tu/lWRsAiUUp8qJTqzAmENH2k59SJhw0Th1oszb9Idq/FyyONLuNqT1OADJPXfyUNOR8SzAQ== +"@typescript-eslint/typescript-estree@8.33.1": + version "8.33.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.33.1.tgz#d271beed470bc915b8764e22365d4925c2ea265d" + integrity sha512-+s9LYcT8LWjdYWu7IWs7FvUxpQ/DGkdjZeE/GGulHvv8rvYwQvVaUZ6DE+j5x/prADUgSbbCWZ2nPI3usuVeOA== dependencies: - "@typescript-eslint/project-service" "8.33.0" - "@typescript-eslint/tsconfig-utils" "8.33.0" - "@typescript-eslint/types" "8.33.0" - "@typescript-eslint/visitor-keys" "8.33.0" + "@typescript-eslint/project-service" "8.33.1" + "@typescript-eslint/tsconfig-utils" "8.33.1" + "@typescript-eslint/types" "8.33.1" + "@typescript-eslint/visitor-keys" "8.33.1" debug "^4.3.4" fast-glob "^3.3.2" is-glob "^4.0.3" @@ -1278,22 +1278,22 @@ semver "^7.6.0" ts-api-utils "^2.1.0" -"@typescript-eslint/utils@8.33.0": - version "8.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.33.0.tgz#574ad5edee371077b9e28ca6fb804f2440f447c1" - integrity sha512-lPFuQaLA9aSNa7D5u2EpRiqdAUhzShwGg/nhpBlc4GR6kcTABttCuyjFs8BcEZ8VWrjCBof/bePhP3Q3fS+Yrw== +"@typescript-eslint/utils@8.33.1": + version "8.33.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.33.1.tgz#ea22f40d3553da090f928cf17907e963643d4b96" + integrity sha512-52HaBiEQUaRYqAXpfzWSR2U3gxk92Kw006+xZpElaPMg3C4PgM+A5LqwoQI1f9E5aZ/qlxAZxzm42WX+vn92SQ== dependencies: "@eslint-community/eslint-utils" "^4.7.0" - "@typescript-eslint/scope-manager" "8.33.0" - "@typescript-eslint/types" "8.33.0" - "@typescript-eslint/typescript-estree" "8.33.0" + "@typescript-eslint/scope-manager" "8.33.1" + "@typescript-eslint/types" "8.33.1" + "@typescript-eslint/typescript-estree" "8.33.1" -"@typescript-eslint/visitor-keys@8.33.0": - version "8.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.33.0.tgz#fbae16fd3594531f8cad95d421125d634e9974fe" - integrity sha512-7RW7CMYoskiz5OOGAWjJFxgb7c5UNjTG292gYhWeOAcFmYCtVCSqjqSBj5zMhxbXo2JOW95YYrUWJfU0zrpaGQ== +"@typescript-eslint/visitor-keys@8.33.1": + version "8.33.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.33.1.tgz#6c6e002c24d13211df3df851767f24dfdb4f42bc" + integrity sha512-3i8NrFcZeeDHJ+7ZUuDkGT+UHq+XoFGsymNK2jZCOHcfEzRQ0BdpRtdpSx/Iyf3MHLWIcLS0COuOPibKQboIiQ== dependencies: - "@typescript-eslint/types" "8.33.0" + "@typescript-eslint/types" "8.33.1" eslint-visitor-keys "^4.2.0" "@vercel/edge@^1.2.1": @@ -1301,10 +1301,10 @@ resolved "https://registry.yarnpkg.com/@vercel/edge/-/edge-1.2.1.tgz#d74298f01912ea2940546f4b7639dc8619f4c89e" integrity sha512-1++yncEyIAi68D3UEOlytYb1IUcIulMWdoSzX2h9LuSeeyR7JtaIgR8DcTQ6+DmYOQn+5MCh6LY+UmK6QBByNA== -"@vitejs/plugin-react@^4.5.0": - version "4.5.0" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.5.0.tgz#ef2bad6be3031af2b2105b7ab2754f710e890a32" - integrity sha512-JuLWaEqypaJmOJPLWwO335Ig6jSgC1FTONCWAxnqcQthLTK/Yc9aH6hr9z/87xciejbQcnP3GnA1FWUSWeXaeg== +"@vitejs/plugin-react@^4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.5.1.tgz#19432712467ad3b81f24c85d695a6febf8d4cc11" + integrity sha512-uPZBqSI0YD4lpkIru6M35sIfylLGTyhGHvDZbNLuMA73lMlwJKz5xweH7FajfcCAc2HnINciejA9qTz0dr0M7A== dependencies: "@babel/core" "^7.26.10" "@babel/plugin-transform-react-jsx-self" "^7.25.9" @@ -1565,10 +1565,10 @@ caniuse-lite@^1.0.30001579, caniuse-lite@^1.0.30001688: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz#f2d15e3aaf8e18f76b2b8c1481abde063b8104c8" integrity sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w== -ce-la-react@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/ce-la-react/-/ce-la-react-0.1.3.tgz#ccb34ec24091bd8be3da40ddcedb4a99ae1db72f" - integrity sha512-zZwEEJv9XukeEGbswQXObaDJjYAufOIilSnDg4BWCpKNEYN84H9fpaB+wl+rYKWOIH4wBBPbLnOxKvDIwsL/JQ== +ce-la-react@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/ce-la-react/-/ce-la-react-0.3.0.tgz#8935d42dfd44963fd3c107c267c93aab3330891a" + integrity sha512-84SEDLNHaAjykzlkqgKRq95hA3qnxrsTrwh4hTgBq6tfpINqajxz4bkz9q4orhUfpqDPQRgdCzYTF3bHcvTIlQ== chalk@^4.0.0, chalk@^4.1.2: version "4.1.2" @@ -2956,13 +2956,13 @@ math-intrinsics@^1.1.0: resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== -media-chrome@^4.10.0: - version "4.10.0" - resolved "https://registry.yarnpkg.com/media-chrome/-/media-chrome-4.10.0.tgz#9d79222e40ab09db1b013d13889de0150ad22d4b" - integrity sha512-XA37xpQaI3IqTpBj8C46RD3DHkEl/KMKrIfNZYQBSm7JTRfsRQKluDGD8nCQ5ZkZdovmI4zSkY9mSjVEN9qsJw== +media-chrome@^4.11.0: + version "4.11.0" + resolved "https://registry.yarnpkg.com/media-chrome/-/media-chrome-4.11.0.tgz#3ccce6d5104b55215d121c93ad4a6197d88d52f3" + integrity sha512-DfV64DbQTZRkTkbwwXARLy6NX/Xp9fM3iS3dnuWIcmWiIzkTiw/Q6UMMuAXCrN3if6Cb+wLz9vKq23OGwS7MEA== dependencies: "@vercel/edge" "^1.2.1" - ce-la-react "^0.1.3" + ce-la-react "^0.3.0" media-tracks@^0.3.3: version "0.3.3" @@ -4088,14 +4088,14 @@ typed-array-length@^1.0.7: possible-typed-array-names "^1.0.0" reflect.getprototypeof "^1.0.6" -typescript-eslint@^8.33.0: - version "8.33.0" - resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.33.0.tgz#89f733a90edc6abe0994b6130b964e781a1ba82f" - integrity sha512-5YmNhF24ylCsvdNW2oJwMzTbaeO4bg90KeGtMjUw0AGtHksgEPLRTUil+coHwCfiu4QjVJFnjp94DmU6zV7DhQ== +typescript-eslint@^8.33.1: + version "8.33.1" + resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.33.1.tgz#d2d59c9b24afe1f903a855b02145802e4ae930ff" + integrity sha512-AgRnV4sKkWOiZ0Kjbnf5ytTJXMUZQ0qhSVdQtDNYLPLnjsATEYhaO94GlRQwi4t4gO8FfjM6NnikHeKjUm8D7A== dependencies: - "@typescript-eslint/eslint-plugin" "8.33.0" - "@typescript-eslint/parser" "8.33.0" - "@typescript-eslint/utils" "8.33.0" + "@typescript-eslint/eslint-plugin" "8.33.1" + "@typescript-eslint/parser" "8.33.1" + "@typescript-eslint/utils" "8.33.1" typescript@^5.8.3: version "5.8.3" From 7d4ea8092a3eeeaa3158cfeac1dbbf8836cdad47 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 4 Jun 2025 16:49:46 +0530 Subject: [PATCH 177/316] chore: readd thermal --- mobile/ios/Podfile.lock | 6 ++++++ mobile/ios/Runner.xcodeproj/project.pbxproj | 2 ++ mobile/pubspec.yaml | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/mobile/ios/Podfile.lock b/mobile/ios/Podfile.lock index 9f5677d40d..18ded968c0 100644 --- a/mobile/ios/Podfile.lock +++ b/mobile/ios/Podfile.lock @@ -223,6 +223,8 @@ PODS: - sqlite3/rtree - system_info_plus (0.0.1): - Flutter + - thermal (0.0.1): + - Flutter - ua_client_hints (1.4.1): - Flutter - url_launcher_ios (0.0.1): @@ -289,6 +291,7 @@ DEPENDENCIES: - sqflite_darwin (from `.symlinks/plugins/sqflite_darwin/darwin`) - sqlite3_flutter_libs (from `.symlinks/plugins/sqlite3_flutter_libs/darwin`) - system_info_plus (from `.symlinks/plugins/system_info_plus/ios`) + - thermal (from `.symlinks/plugins/thermal/ios`) - ua_client_hints (from `.symlinks/plugins/ua_client_hints/ios`) - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) - video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/darwin`) @@ -420,6 +423,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/sqlite3_flutter_libs/darwin" system_info_plus: :path: ".symlinks/plugins/system_info_plus/ios" + thermal: + :path: ".symlinks/plugins/thermal/ios" ua_client_hints: :path: ".symlinks/plugins/ua_client_hints/ios" url_launcher_ios: @@ -503,6 +508,7 @@ SPEC CHECKSUMS: sqlite3: fc1400008a9b3525f5914ed715a5d1af0b8f4983 sqlite3_flutter_libs: 3c323550ef3b928bc0aa9513c841e45a7d242832 system_info_plus: 555ce7047fbbf29154726db942ae785c29211740 + thermal: d4c48be750d1ddbab36b0e2dcb2471531bc8df41 ua_client_hints: 92fe0d139619b73ec9fcb46cc7e079a26178f586 url_launcher_ios: 694010445543906933d732453a59da0a173ae33d video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b diff --git a/mobile/ios/Runner.xcodeproj/project.pbxproj b/mobile/ios/Runner.xcodeproj/project.pbxproj index a59e35b637..caaa39afbc 100644 --- a/mobile/ios/Runner.xcodeproj/project.pbxproj +++ b/mobile/ios/Runner.xcodeproj/project.pbxproj @@ -573,6 +573,7 @@ "${BUILT_PRODUCTS_DIR}/sqlite3/sqlite3.framework", "${BUILT_PRODUCTS_DIR}/sqlite3_flutter_libs/sqlite3_flutter_libs.framework", "${BUILT_PRODUCTS_DIR}/system_info_plus/system_info_plus.framework", + "${BUILT_PRODUCTS_DIR}/thermal/thermal.framework", "${BUILT_PRODUCTS_DIR}/ua_client_hints/ua_client_hints.framework", "${BUILT_PRODUCTS_DIR}/url_launcher_ios/url_launcher_ios.framework", "${BUILT_PRODUCTS_DIR}/video_player_avfoundation/video_player_avfoundation.framework", @@ -667,6 +668,7 @@ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/sqlite3.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/sqlite3_flutter_libs.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/system_info_plus.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/thermal.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ua_client_hints.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/url_launcher_ios.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/video_player_avfoundation.framework", diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index fc38b6a5a6..7cc26ae418 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -193,8 +193,8 @@ dependencies: syncfusion_flutter_sliders: ^25.2.5 synchronized: ^3.3.0+3 system_info_plus: ^0.0.6 - timezone: ^0.10.0 thermal: ^1.1.11 + timezone: ^0.10.0 tuple: ^2.0.0 ua_client_hints: ^1.4.0 url_launcher: ^6.3.0 From 31232390e8b2e4fe106d9f20a1c94a002e625f06 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Wed, 4 Jun 2025 17:07:03 +0530 Subject: [PATCH 178/316] [meta] Issue template --- .github/ISSUE_TEMPLATE/bug_report.yml | 34 +++++++++++---------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 64df70fb68..e8fc6cbafc 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,24 +1,21 @@ name: Report a bug -description: Let us know if something's not working the way you expected. +description: For regressions only (things that were working earlier) labels: [] body: - type: markdown attributes: value: | - Before opening a new bug report, please ensure - 1. you are on the latest version (it might've already been fixed), - 2. you've searched for existing issues (please add your observations as a comment there instead of creating a duplicate). - - If you are self hosting, please create a community [Q&A](https://github.com/ente-io/ente/discussions/categories/q-a) instead. + Before opening a new issue, **please** ensure + 1. You are on the latest version, + 2. You've searched for existing issues, + 3. It was working earlier (otherwise use [this](https://github.com/ente-io/ente/discussions/categories/enhancements)) + 4. It is not about self hosting (otherwise use [this](https://github.com/ente-io/ente/discussions/categories/q-a)) - type: textarea attributes: label: Description description: > - Please describe the bug. If possible, also include the steps to - reproduce the behaviour, and the expected behaviour (sometimes - bugs are just expectation mismatches, in which case this would be - a good fit for - [enhancements](https://github.com/ente-io/ente/discussions/categories/enhancements)). + Describe the bug and steps to reproduce the behaviour, and how it + differs from the previously working behaviour. validations: required: true - type: input @@ -30,15 +27,12 @@ body: attributes: label: Last working version description: > - The version where the feature was last known to be working. It is - fine if you don't remember the exact version (mention roughly - then), but if there just isn't a last known working version, then - it is likely that what is being reported is not an issue - (regression) but an enhancement. The difference between the two - categories is not just semantic - **enhancements use GitHub - discussions and so can be [upvoted by the - community](https://github.com/ente-io/ente/discussions/categories/enhancements)** - (while issues cannot be). + The version where things were last known to be working. It is fine + if you don't remember the exact version (mention roughly then), + but **if there just isn't a last working version, then please file + it as an + [enhancement](https://github.com/ente-io/ente/discussions/categories/enhancements))** + (where the community upvotes can be used to help prioritize). placeholder: e.g. v1.2.3 - type: dropdown attributes: From 9a5bac774ecb8c9ecafa822b68e436f7ad8bccff Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Wed, 4 Jun 2025 17:24:08 +0530 Subject: [PATCH 179/316] Unused --- web/packages/shared/components/Container.tsx | 7 - .../shared/components/SingleInputForm.tsx | 203 ------------------ 2 files changed, 210 deletions(-) delete mode 100644 web/packages/shared/components/Container.tsx delete mode 100644 web/packages/shared/components/SingleInputForm.tsx diff --git a/web/packages/shared/components/Container.tsx b/web/packages/shared/components/Container.tsx deleted file mode 100644 index 6d6f935d7e..0000000000 --- a/web/packages/shared/components/Container.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import { Box, styled } from "@mui/material"; - -export const FlexWrapper = styled(Box)` - display: flex; - width: 100%; - align-items: center; -`; diff --git a/web/packages/shared/components/SingleInputForm.tsx b/web/packages/shared/components/SingleInputForm.tsx deleted file mode 100644 index e05627e40d..0000000000 --- a/web/packages/shared/components/SingleInputForm.tsx +++ /dev/null @@ -1,203 +0,0 @@ -import { FormHelperText } from "@mui/material"; -import TextField from "@mui/material/TextField"; -import { FocusVisibleButton } from "ente-base/components/mui/FocusVisibleButton"; -import { LoadingButton } from "ente-base/components/mui/LoadingButton"; -import { ShowHidePasswordInputAdornment } from "ente-base/components/mui/PasswordInputAdornment"; -import { FlexWrapper } from "ente-shared/components/Container"; -import { Formik, type FormikHelpers, type FormikState } from "formik"; -import { t } from "i18next"; -import { useCallback, useMemo, useState } from "react"; -import * as Yup from "yup"; - -interface formValues { - inputValue: string; -} -export interface SingleInputFormProps { - callback: ( - inputValue: string, - setFieldError: (errorMessage: string) => void, - resetForm: (nextState?: Partial>) => void, - ) => Promise; - fieldType: "text" | "email" | "password"; - /** deprecated: Use realPlaceholder */ - placeholder?: string; - /** - * Placeholder - * - * The existing `placeholder` property uses the placeholder as a label (i.e. - * it doesn't appear as the placeholder within the text input area but - * rather as the label on top of it). This happens conditionally, so it is - * not a matter of simple rename. - * - * Gradually migrate the existing UI to use this property when we really - * want a placeholder, and then create a separate label property for places - * that actually want to set the label. - */ - realPlaceholder?: string; - /** - * Label to show on top of the text input area. - * - * Sibling of {@link realPlaceholder}. - */ - realLabel?: string; - buttonText: string; - submitButtonProps?: any; - initialValue?: string; - secondaryButtonAction?: () => void; - disableAutoFocus?: boolean; - hiddenPreInput?: any; - caption?: any; - hiddenPostInput?: any; - autoComplete?: string; - blockButton?: boolean; - hiddenLabel?: boolean; - disableAutoComplete?: boolean; -} - -/** - * Deprecated version, gradually migrate to use the one from ente-base. - */ -export default function SingleInputForm(props: SingleInputFormProps) { - const { submitButtonProps } = props; - const { sx: buttonSx, ...restSubmitButtonProps } = submitButtonProps ?? {}; - - const [loading, SetLoading] = useState(false); - const [showPassword, setShowPassword] = useState(false); - - const handleToggleShowHidePassword = useCallback( - () => setShowPassword((show) => !show), - [], - ); - - const submitForm = async ( - values: formValues, - { setFieldError, resetForm }: FormikHelpers, - ) => { - SetLoading(true); - await props.callback( - values.inputValue, - (message) => setFieldError("inputValue", message), - resetForm, - ); - SetLoading(false); - }; - - const validationSchema = useMemo(() => { - switch (props.fieldType) { - case "text": - return Yup.object().shape({ - inputValue: Yup.string().required(t("required")), - }); - case "password": - return Yup.object().shape({ - inputValue: Yup.string().required(t("required")), - }); - case "email": - return Yup.object().shape({ - inputValue: Yup.string() - .email(t("invalid_email_error")) - .required(t("required")), - }); - } - }, [props.fieldType]); - - return ( - - initialValues={{ inputValue: props.initialValue ?? "" }} - onSubmit={submitForm} - validationSchema={validationSchema} - validateOnChange={false} - validateOnBlur={false} - > - {({ values, errors, handleChange, handleSubmit }) => ( - - {props.hiddenPreInput} - - ), - }, - }} - /> - - {props.caption} - - {props.hiddenPostInput} - - {props.secondaryButtonAction && ( - - {t("cancel")} - - )} - - {props.buttonText} - - - - )} - - ); -} From 334a996357b7e977d7c09319453f3bc1867937ca Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Wed, 4 Jun 2025 17:27:46 +0530 Subject: [PATCH 180/316] Scope --- .../components/VerifyMasterPasswordForm.tsx | 14 +++++++------- web/packages/shared/error/index.ts | 1 - 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/web/packages/accounts/components/VerifyMasterPasswordForm.tsx b/web/packages/accounts/components/VerifyMasterPasswordForm.tsx index b6a812754f..2a7e576616 100644 --- a/web/packages/accounts/components/VerifyMasterPasswordForm.tsx +++ b/web/packages/accounts/components/VerifyMasterPasswordForm.tsx @@ -147,17 +147,20 @@ export const VerifyMasterPasswordForm: React.FC< throw Error("couldn't get key attributes"); } + let key: string; try { - const key = await cryptoWorker.decryptB64( + key = await cryptoWorker.decryptB64( keyAttributes.encryptedKey, keyAttributes.keyDecryptionNonce, kek, ); - onVerify(key, kek, keyAttributes, passphrase); } catch (e) { - log.error("user entered a wrong password", e); - throw Error(CustomError.INCORRECT_PASSWORD); + log.warn("Incorrect password", e); + setFieldError(t("incorrect_password")); + return; } + + onVerify(key, kek, keyAttributes, passphrase); } catch (e) { if (e instanceof Error) { if (e.message === CustomError.TWO_FACTOR_ENABLED) { @@ -166,9 +169,6 @@ export const VerifyMasterPasswordForm: React.FC< } log.error("failed to verify passphrase", e); switch (e.message) { - case CustomError.INCORRECT_PASSWORD: - setFieldError(t("incorrect_password")); - break; case CustomError.INCORRECT_PASSWORD_OR_NO_ACCOUNT: setFieldError(t("incorrect_password_or_no_account")); break; diff --git a/web/packages/shared/error/index.ts b/web/packages/shared/error/index.ts index 3aa47fa01c..dd6d7d961c 100644 --- a/web/packages/shared/error/index.ts +++ b/web/packages/shared/error/index.ts @@ -40,7 +40,6 @@ export const CustomError = { BAD_REQUEST: "bad request", SUBSCRIPTION_NEEDED: "subscription not present", NOT_FOUND: "not found ", - INCORRECT_PASSWORD: "incorrect password", INCORRECT_PASSWORD_OR_NO_ACCOUNT: "incorrect password or no such account", UPLOAD_CANCELLED: "upload cancelled", UPDATE_EXPORTED_RECORD_FAILED: "update file exported record failed", From 86f282bb06190ac465ae58e87ecf01a4a23f966c Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Wed, 4 Jun 2025 17:36:50 +0530 Subject: [PATCH 181/316] Scope --- .../components/VerifyMasterPasswordForm.tsx | 128 +++++++++--------- 1 file changed, 66 insertions(+), 62 deletions(-) diff --git a/web/packages/accounts/components/VerifyMasterPasswordForm.tsx b/web/packages/accounts/components/VerifyMasterPasswordForm.tsx index 2a7e576616..19f290ede1 100644 --- a/web/packages/accounts/components/VerifyMasterPasswordForm.tsx +++ b/web/packages/accounts/components/VerifyMasterPasswordForm.tsx @@ -101,7 +101,12 @@ export const VerifyMasterPasswordForm: React.FC< return; } - await verifyPassphrase(password, setPasswordFieldError); + try { + await verifyPassphrase(password, setPasswordFieldError); + } catch (e) { + log.error("Failed to to verify passphrase", e); + setPasswordFieldError(t("generic_error")); + } }, }); @@ -109,76 +114,75 @@ export const VerifyMasterPasswordForm: React.FC< passphrase: string, setFieldError: (message: string) => void, ) => { - try { - const cryptoWorker = await sharedCryptoWorker(); - let kek: string; - if (srpAttributes) { - try { - kek = await cryptoWorker.deriveKey( - passphrase, - srpAttributes.kekSalt, - srpAttributes.opsLimit, - srpAttributes.memLimit, - ); - } catch (e) { - log.error("Failed to derive kek", e); - setFieldError(t("weak_device_hint")); - return; - } - } else if (keyAttributes) { - try { - kek = await cryptoWorker.deriveKey( - passphrase, - keyAttributes.kekSalt, - keyAttributes.opsLimit, - keyAttributes.memLimit, - ); - } catch (e) { - log.error("Failed to derive kek", e); - setFieldError(t("weak_device_hint")); - return; - } - } else throw new Error("Both SRP and key attributes are missing"); - - if (!keyAttributes && typeof getKeyAttributes == "function") { - keyAttributes = await getKeyAttributes(kek); - } - if (!keyAttributes) { - throw Error("couldn't get key attributes"); - } - - let key: string; + const cryptoWorker = await sharedCryptoWorker(); + let kek: string; + if (srpAttributes) { try { - key = await cryptoWorker.decryptB64( - keyAttributes.encryptedKey, - keyAttributes.keyDecryptionNonce, - kek, + kek = await cryptoWorker.deriveKey( + passphrase, + srpAttributes.kekSalt, + srpAttributes.opsLimit, + srpAttributes.memLimit, ); } catch (e) { - log.warn("Incorrect password", e); - setFieldError(t("incorrect_password")); + log.error("Failed to derive kek", e); + setFieldError(t("weak_device_hint")); return; } + } else if (keyAttributes) { + try { + kek = await cryptoWorker.deriveKey( + passphrase, + keyAttributes.kekSalt, + keyAttributes.opsLimit, + keyAttributes.memLimit, + ); + } catch (e) { + log.error("Failed to derive kek", e); + setFieldError(t("weak_device_hint")); + return; + } + } else throw new Error("Both SRP and key attributes are missing"); - onVerify(key, kek, keyAttributes, passphrase); - } catch (e) { - if (e instanceof Error) { - if (e.message === CustomError.TWO_FACTOR_ENABLED) { - // two factor enabled, user has been redirected to two factor page - return; + if (!keyAttributes && typeof getKeyAttributes == "function") { + try { + keyAttributes = await getKeyAttributes(kek); + } catch (e) { + if (e instanceof Error) { + switch (e.message) { + case CustomError.TWO_FACTOR_ENABLED: + // Two factor enabled, user has been redirected to + // the two-factor verification page. + return; + + case CustomError.INCORRECT_PASSWORD_OR_NO_ACCOUNT: + log.error("Incorrect password or no account", e); + setFieldError( + t("incorrect_password_or_no_account"), + ); + return; + } } - log.error("failed to verify passphrase", e); - switch (e.message) { - case CustomError.INCORRECT_PASSWORD_OR_NO_ACCOUNT: - setFieldError(t("incorrect_password_or_no_account")); - break; - default: - setFieldError(t("generic_error")); - } - } else { - log.error("failed to verify passphrase", e); + throw e; } } + + if (!keyAttributes) throw Error("Couldn't get key attributes"); + + let key: string; + try { + key = await cryptoWorker.decryptB64( + keyAttributes.encryptedKey, + keyAttributes.keyDecryptionNonce, + kek, + ); + } catch (e) { + log.warn("Incorrect password", e); + setFieldError(t("incorrect_password")); + return; + } + + onVerify(key, kek, keyAttributes, passphrase); }; return ( From 4e17a861dcdb26bbe63a44c9f5e29e41cb05a7f7 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 4 Jun 2025 17:41:22 +0530 Subject: [PATCH 182/316] fix: separate asset resources --- .../AlbumsWidgetDefault.png | Bin 0 -> 20601 bytes .../Contents.json | 21 ++++++++ .../AlbumsWidgetPreview.png | Bin 0 -> 190001 bytes .../Contents.json | 21 ++++++++ .../WidgetBackground.colorset/Contents.json | 13 ++--- .../ios/EnteAlbumWidget/EnteAlbumWidget.swift | 16 +----- .../Contents.json | 21 ++++++++ .../MemoriesWidgetDefault.png | Bin 0 -> 19971 bytes .../Contents.json | 21 ++++++++ .../MemoriesWidgetPreview.png | Bin 0 -> 134800 bytes .../EnteMemoryWidget/EnteMemoryWidget.swift | 17 +----- .../Contents.json | 21 ++++++++ .../PeopleWidgetDefault.png | Bin 0 -> 28075 bytes .../Contents.json | 21 ++++++++ .../PeopleWidgetPreview.png | Bin 0 -> 161061 bytes .../EntePeopleWidget/EntePeopleWidget.swift | 16 +----- mobile/ios/Runner.xcodeproj/project.pbxproj | 49 +++--------------- 17 files changed, 144 insertions(+), 93 deletions(-) create mode 100644 mobile/ios/EnteAlbumWidget/Assets.xcassets/AlbumsWidgetDefault.imageset/AlbumsWidgetDefault.png create mode 100644 mobile/ios/EnteAlbumWidget/Assets.xcassets/AlbumsWidgetDefault.imageset/Contents.json create mode 100644 mobile/ios/EnteAlbumWidget/Assets.xcassets/AlbumsWidgetPreview.imageset/AlbumsWidgetPreview.png create mode 100644 mobile/ios/EnteAlbumWidget/Assets.xcassets/AlbumsWidgetPreview.imageset/Contents.json create mode 100644 mobile/ios/EnteMemoryWidget/Assets.xcassets/MemoriesWidgetDefault.imageset/Contents.json create mode 100644 mobile/ios/EnteMemoryWidget/Assets.xcassets/MemoriesWidgetDefault.imageset/MemoriesWidgetDefault.png create mode 100644 mobile/ios/EnteMemoryWidget/Assets.xcassets/MemoriesWidgetPreview.imageset/Contents.json create mode 100644 mobile/ios/EnteMemoryWidget/Assets.xcassets/MemoriesWidgetPreview.imageset/MemoriesWidgetPreview.png create mode 100644 mobile/ios/EntePeopleWidget/Assets.xcassets/PeopleWidgetDefault.imageset/Contents.json create mode 100644 mobile/ios/EntePeopleWidget/Assets.xcassets/PeopleWidgetDefault.imageset/PeopleWidgetDefault.png create mode 100644 mobile/ios/EntePeopleWidget/Assets.xcassets/PeopleWidgetPreview.imageset/Contents.json create mode 100644 mobile/ios/EntePeopleWidget/Assets.xcassets/PeopleWidgetPreview.imageset/PeopleWidgetPreview.png diff --git a/mobile/ios/EnteAlbumWidget/Assets.xcassets/AlbumsWidgetDefault.imageset/AlbumsWidgetDefault.png b/mobile/ios/EnteAlbumWidget/Assets.xcassets/AlbumsWidgetDefault.imageset/AlbumsWidgetDefault.png new file mode 100644 index 0000000000000000000000000000000000000000..7ffe666ae957022d0dec7f90acc121e69109ac3a GIT binary patch literal 20601 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�(OZ_m0PI}g(#r` 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
      %PGN3zV-`1m|%Bpd=pVg!VV;) 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�zAy(2;c zs5=D}C@wo}bzaS0gRUxv6#)>sA)5F+QJ|qs5XjSw0~{^a`XVkLl4nK;^+MN1WiY5< zrw`2(V1I#_HlsFdk7#|IH}&=t?G(r!?gzC-YmmGPP-t_*EwGL?XsroRMZkVS;-&G;RdTMSOuEjg-g_;8F4< zP@-nU^>X0n-V++6Y-0>17ui3C)YZ0Oip>#RhH29>7^{tP5ZfzPch@|NPd~T$p$5#| zTWHkco?T!AGH^>MP=(}&5ku2zL%j@|lQlXm;`oXSf>hRc(1a*PdV*!}&Z($CFWO4z zj#%vF)2D}z9qI3z96dEUIWjmnI5Kf-^414e7z}L6tLdSgahX~jv}ThdLpEC$27;86 zA^^Ie(%JFx@pL+!kTt@w4wuMl^5yd8rw?ZTCkin2!qn8l`4iVRrmmehaq{)oUqAW! z>nG?EpXX1$^UJ?~^WArs3e6^QO-)H^Qd0tiURIhK%F|GcCT`$XQ?zzUmoKZ5g1aTD z$a_VAtrnF=ErVJ*nZIXCg>2WTEX+SZNgR;Hn1A7IMJ=*q zk9Hw>Km#9t!p^0_MInGbj{{6JKS;5L{sO&$SnRczUp{^O=#l}*ESY#eaLGYQ}pkhcYb;9m;e1+ zKUk7AE;lxtO?(ye8&sv{vP3hHXc8wWYpNnOxpdnk@i)bYSFYpmb5SNIP(kDeM9Bvz z68hd$#Bc$@2r_m>LU5+F3GL_-&8!GpmWPdgIqHqa$p%uY7;S+CB4&>|vOO^cg0UdZ zJzV`Cz)2ELgJ$7nvbg*x5WMX7;Vq#=sZsPO5yRo#mC~wM%^w}DYLakOy zh=Q=7{V!Vqtb__S)1J?icJMX-Wi~pYg&a3aruzapZatVStNPZ)tFx5=d zMDHT^=)on()YHIS&P`%+X&k)SX&~C~`r$#coapY=l(x_q8gEcl3)l}s)NR9Lf+a^y zamE%JqjOt^V>(i^Wp*dlb}z`&Q4uixOVcLU;gr)w_iWO-v1;; zgA*rCoczwKZ^Fa@E#dQJInfjj30f&Pn{rKVHWLY`D7`b%3szXFQ8cMmi(WPg88r7M zH6@N8iq^a=m;z6IvH<^{nTO?(Cc4fTj^NAUWl?NO$xz>@&}bo6O9b2{g2W5G z;XFoUT7DQ>4qC?@!_jFQjj^`oS=0&&=~uV|&@(LoGsI{aJu`^KUViztfBn~&j~+jL z{5YUMf8XTDt@|W+tegfBgJ$dr=w_nHQVPF6L z-(y^lgat`M*a?l?KgnFv5={;T;+?TysL3_lFH>J*LQ>_(haj71a`eDc;4T!EDnHEV zstT3B;OQIfHWeVaiyK2I4Qb1As6ZRF@N(OqNo`#S?+(s4=JO4t^Cm4Mq~`rrD-37> zSB0+#%g~$`f<(g{+y}@%2GqZA!L@rG1!%V`Er$kx(B$ifp~<6h>~&bQ2=s*VDr<&? zmI3NMsBnl7^FnYnVvjPmIQrT3N2!eDviwy0-J_wxMxOU>i z`Sa&r-sul^F)6`mxfeFh$ z(Zu}}3{ag?609yH>!y~_BD_GR4;6{p8WM$s9F4+K8A)oixq{nnyA8)}qlv|3^1e;g z+Wq=05;&t$fgC&&zBL;E104%aX02lQwCM|r8!9G)Hmo{>U%)6IzF=yHJTo1O= z0&EuT00?LqVTA*M*P_uu+V<7*U2gxR&|yR~WMZVOLa@_{W)Zz8NnjWl#A1Iu{qpgb zMI1PObhy87aIkN3;MBm#NEBRX!*d&~dwV{d%od5Iq5%mT?*Ma0Zz{ zO4rASaHLArQmO>50P%u+!GQ=cyRorw{*{yGUwLKY;tSUn7B=3vxN-i(i5I?c>g~7R zK1mk>K7an&8!x>2=2DZ~xhlzQ;Wb%SlvPyfdU-hd^TohH(q)BKRSG*|Jb>Kfq_XRgrg&qgFU^y z&vi}SxGEw6$ARnDBS4s_6{tBVQ9u@eCKQvzUrOoYsi9PAC{Nag@rdRUi|)*GCWLy zoIaU()Rqc@0`jZD7eFmEg8mRDbdwqt-~^<|QwZlT#7@$d)Fu=_U`TRl31Yw1Mngjh z$EEEIrsaqNtQc?d43PH>(R?5{e@*Nr_B}ZJfLHzdzRTkqJjPL33&;^vXkjCs%5y&C zA8Z|?BSAFn#2-hEtRSz9nD0Ul&;IQh5b_C?6vbh zer03h+KJ!3{mQF<+y3*PfxMf|X029xv~ZqMz*l~J{`|?ePkiH>kZS@806a**515j& zK}9A7fC~UNjhA_oN1;aZj0yz-StW3wvEP6K04VTtWWEEkzs?#!x`Qqg_zU!uN_900 z`p@Q?J@qFcx;oTeNyB-jpltoX^vE4!9T-S_$lk-ghX7xE#0#$ym@-unM2ONVR zx_Y`^u41=;fc^eKsN1%Qt(XDD8jFb>!?Y?$8SytT7V7(;69QTc$g_fmVcEJ4--6*_ zuj05)CZmVgSiDvdo2h{TM*8~t`zA(?o<1$$;LE3vA3y%Hm(HC#)lEn5;K*Fp+~geM z!L1utmsSZ62&_%HA=(P5Y?w~zHiW&hatBu)xdR1Ap_M(EDxpP^Q){+0zwe#oS z{_W3y{^ReS|M72s{)5JsfBy2%e0=%kpa0y>H=CD#@cp0v_P4K}eEXem{ViHj69rAK z!J-Q+G9KBM6%FDiqpl?q#9B#mZ{fb_JVt1J4WHXx*`CV!WN-Yf`)*jFMdy4S zm@qVLw0F6oPrZKecsZK~jt;{r9&}ym8>5LWod#}f=9=*LDX}-PPR1vu&*za*nhvJ@ z5!8ckd4}oO4sw@(HVNQqgi&I#$+_nzMkf14M*5B%Jt|b-Utc?Z{P@w~;g?RG8tCmF z7#Qg8J~c2fFflPVIXL;;^IbQVu10CW>hx_~lY-AR5J5bhO_i!CiUFx46roxzrIPpV z-Ak3K_b@0Ttwz0|CtpAD`s=TspF02gi8roYoB8sYqoVO2RU=xzX=B;dYd>kKSyc|E9P8Vt#w^^8efbKuU0X?fF(&e;{$vxy+ zCiQ=<1!lmrWSo0?f=8k~q^9RlZwT!ZqY4#vNzj66!>~9Dn4B0H>FXPr?CT#K>_2|I z;{{G1J$iKbrI%hB?d|Oz?HvFln3$WGn3(IDn47rq+|{M`Ne8A^r*E$o5C&?~#1$6` za-PJWOqK54tCm)_S5~T}d!_2Vd(~=brMgnGmB;~HJAdukiSyT{X3w8IasJakbY%aB zXBFVjfBy2#Z+!pz-@gLsP`+PagDuE~nv~9#pi$N8r zW}&8Kv)Ka4zfhPiC`uxsH5v{fLO~rSM2$l#;?Y{IDKo7Awn)k)62vIxF`14!n3mf@ zmPpK;Yue7osNxwg^@`zIra@b?eLu8$WezqqT81CGwi(iRKaXJ9Iu}vX1>{KMLqoVZ zEpsYu<8eJi7gjPW7Yf;Q+I4sXr%Rn(24BYlYDUfeL^|=MOaf1I0Z>~A4UJj6rwG%@ zriFZgvVakoc7NZ<#AN@mx@5?$bKbv02ah++Yq#+k8XW@aX@r|y;RrGN>xSD*?M7^>BK_sj}nGiWWg`7fyMjB9?Ov3{t$OF_0$y9PCnaYl(6Z~8i zYuz-;RpfX*4cW_uczi6L&B_v{m=Nk~f)P?=MUheD%mW1=B8aq*JO&bpge>Qav_iR9 zL?3b+-8rVKqhq<iNwP~a0v8=T@y+Z#$t1QN6wA*^o$NnP7aQY^dB2OP8#qUrG!Tj2hN>4N0DH3 zwEMZPLx%=>d*gfe&*+(CMyHZdffGqKfAnqV ziw#**HAI?1jkp3%7NL0ni!yTxO<)J6l_eS{(!`DcSyM2=-flP5}XZ|Gud5{r4qhlcR}uGebQXV0EJJO0+$x86#RrFF`vNcbso1}SWN(lbe&Ho}V5 zVwXDz9rXBcFwoO`__^Nh-kzQ=P=tMxx2|4ghG=nViFJTr6CCr{ z*mOD_pP9)gXV7AvgbJ+O!5}gMLhZ#Dr(T?0SlAGizp1IIg^Pc9MgzWxG=LnzmtX$j z(~B2hxSB{aLKg~v24+gu6jh!sh(n%6v`;7+{5Iur6uFVs6>K|0@l#J`^g;ptf$|rL z?7vo|uFayXZE56SYMn}Bf+rt3TM{&sA`%ikrVzf+G{I77g(8j7xEaTFXr%#0E6}^| z((+};)ot{B+X(A+O1JBEC_qBKe*OCOvjnH6&w^1&rO0%k2Pr+1Ns=4T=~j{!|I&&D zqTKKmSc3MElAr-TK^+COUKjoXo+||Q3u3o+Rqc<57ZsIJ{ zX^qF@<#-l@1v5V_!2^^^sp_3O6a`Av@u}H`7iVX|@hmJXEKE&pEKDst_~MKF7x{et zi-QMLfVJS$ix=Ox3c`^PSs^i&&W@!;Bp{$KlF@`bJxyXN$W0`5GIEE4M2qdyx}D6x zHQO0I0~$MekxZ=yB&hSfJ9Bo5d>j^u~QLG0AOAwTq0=+MN$$x8>=TV zxSyGUQ^^+_dEK_ssGY`B)KqWlsifXW=_xy?kH_&Tpa9d;_);ho#-_(+#*)cY%1*(2 zFch4MhArV&Ge`r_2aJJo+-W0QpuU38HErDt1P|$9#N0(2F)l%Z>&DpWv9S!j1+{`=HIgeD^VLlHQhO_fsV_!x=-L)D$3p>cr2Qt4iG zdwLdwfl~_`(J?heO(2K~8ygFc79KqKl;;Ga^#OnQ;^M_OZY*ZTvohBg$KvVuTW^gO zrpLz8@pxJ;)Zp?HvNl$T2!6SS=5!^eNl4%FjYcLz_9w|&LeT*6CApZ-ixi-lDCE)G z0){~bsA(!PQ{4&9aVel^hzoK;6Ir92BQ-&!DQL7?Q7&}aY4c**5?WQvWU$JiSS+Se zDciCYxt7ltv-PxYnNB)B7LSijPfx#f_Uzf|>9Mit>(kTIWAU;0P#D_rI07hZKnkSF z3@ZS}MD!$F1QrPqYhZ5Sib;4Mb=3&CCgs}2Vje35kOhXk+FV69FG1a(dJ4Gy0^di*p9fzzi?A3b{P$g!WDJ9loNr+aj?r>D24yXO#`!Dx3^ z_vB#L+>NX7151lbi&vJGRu@+{Hxmgomg5qs@v$T*!PIzsXeT*Ts;;C;E8A~9K-1sU z!Un{?aqZgF>;e^i2o-EBuy!mgEIfEX%Y#S_E?&I&jVr04p*Vi)P1=jrNVmhGp>f##Oo}$a!>eX81P4;& z5O`Y3c0)T1tu0*5LQ7mvXUmSygUK$mE}0a~``Bn%&~iD+rPgpe7MlS0A3WSUJTQ7{ zaAcxuZep@)0%-8qFtdX%gA+J5{IlWVQv;);qob#K4h?ko9O~)m>FMn{)ZNp4sAqES z@Qpd>z*XRZtDBpfONm-KeRegmIu;)rOX6LR$H#Y)@#M;#JJs!#od@XmCad3Afc!Vk zzd|j5NDQxSM6O|BYJvAh2?aQDximCBG&UBG58*182rT16WAS))Jgq1RB_Zc>ik9VJ zMGXW%O{U&KS)rchd>%Wule)IQ;X;xMd6+b&SZaltl#?d~0Hl-vW?TeY zje*W27J;NvI<-qnTRF+5CHwFIeRG3@lZQrMIy`rzZ(?rlxvr7^!O2Oik3MqrIEVpY zLKFzlFLG*Np!-nIKzC11&!OJ#?w-TXBN}vfAL^RxI()e6>ibtezxw{-;^NZMl`D&a zEW)`e6w+fuLt|s9mF?|P_0C(fQ&a?+n%da7cyVDC1zR#QU=B*|22d?-FtDh&+{q4TJ$<(e2hm51!{GI%0Xh6=I__BjK`4+TKU zKf!xlNrttilqWlFHzZjq=JQGx08nYq6m7)X8F;a5Itl~)KNY_UHE_|KU(^bPOfs1+ zq~D4cl6nzM(U}bXTrpoP=AnDCB9mW`XuN6$K_Qt?|C`9VM!(JfU= zLqiZfb=~X8o&X&~o353EfkB-CAPp2D3kZF4OEt6C3x(^~YZ}N!8YQIJpj0xGNn#fa znl&Bn5=2=OgCUa>6BFINz5Pe}=H}++o_~IB4$Z;+gCm1ShL0XSj${yDj~zSG*LUvR zxzXN%?n47Thq}5Bbq{pC@O;gN22Q7jNqzm#EB?O6fyG z*>W;j8j7dEqi9Xe`_pye08kzVUZ=BX=`_hWL-HcqCx}<8X~iPqbg`IE$UkZ4i|Mii zLCwq*O_*3FoyIRuP~Ms7kPij=M3i`fJ17(q#bjx_THP+CN~ugCA?tca0ce#OvID#s zHJ>j!*vL}kv1?knP(j~*Kt zeE#{7zW&KUniS|i(l^*YeEj(E@KMqMbPb+6cM5@^mqNgyLx+01dk!By^u4Z$iOI>4 zBXhTIT>Zv3-n_E3y0o~sxw*7-^+$`Fi&|m2HeE~9rl&y;#N)|(D`(GNi=;m_`{LBb z!a^i)M1=)XfCbWm1^hHSHFXgaW!GjOU}7~zOrss9;)zT$pBaj$(_`tZ)~t#1ERRLx zZbH_IWKQ@$nbKjkl;Sh0t0e#e^Z9%uUj)%#EN0S_<>mAFq-`fNHWVP87AUYVU63OV zvR0^F=Qbi_lX51RSy`#B+$&a-$#g=_=*fJ8Wt_)QeS(0Yq{u*o`I#9pbDige!QuLj zjs89}FkRooJWyB-)vd(L%ukbasR-zWZo8F0XQA_ExR44zv@8_TF4vv9irAIV6bD(K z8=AC73JHX3>zO3wKw|z7nZGtk@B)z#DU-1CQe;2FBQC%YzYy#N0D?_YiY>iajY zUPTKqb&{+S8#^68I~I@cY@RbT4)9UTJ0J zUNx0WkByDR6WO7+#^0jUIZfQ2Cd)%{CWYjDv6w8alu9K%Wmi)vSY$zDcC~_>$mbhw zCX+8h0f4Par3|k`$Yk6k5q&8;lfYISAo@fiF_s=nrjqfoLL!}>`Ds3%D9GtCVBJh| zCO$NjG41l$7G+a_y?8fON1Qh=G6V#DQiEZ8R^HL$#?P0N98 zO)gxYz8)Vh>y8_)&;@^SX<@nu6xs=BlUL}6dWfP!Hd_WG9lG}Txb2#B0ZKF$V0t&S z^$Z~ha6@9W*Tt1-pa3Ji-M!!I>Yw<|^M@w~d%6ck&z%|^8SEP*R;aJ9f0$js@X_Jn zqdy~FaP-vZz-V{Rq3-Uk?q2wU?w-RvhYuk;>^eMmcw!QGkQCs3K!K$tG!%l7Eli({ z$H&IrTBUd|fF3k}q`mL=MT#hH&a$2?T>Q=t%B6cSe^AP$d!FCgUmw3v*#_H3kqeSH(X!=s0vpP-iTi9?6F2YNsY4~|Ss zO!V~+_KozD7Z@HMK6d2j>7Tvy(kXO{jGh}fbcozQFY^{wZ=cNKteX?2wqfLw2(R)~)kUZ9YF?bFiQt{g#~`Xh6oSz*u{6l zmFhh-8lc-?rF!q)%AI@3h+}quI_;A;uu7RGeuCBv}x(`3s)irnc`S;(ydi8xemacA|-CSH; zU0tQt!Z)bVk0$@7cvsl$i?a(;2d6`)7A{_V} zqT6AZnaLMXkr^AKpow~{t!Ii235hru7#;94na@;9h^sd3?Zc+VWO8R{dTeY=D-_b% zxE;8$y2}flQz$6w@Muec%O#j|~qGqeOh}+$fyD=s%Xsb@v>e?7D%m0zv~Ur3}er zCN-n)fu5hylPOx10(Q^QGth&fv|1h;OHjpD4|Uqs;n*`tXh=5B3NS_-CM&>LF@sn}>65*CM<*zANpG~Mt_ObM(}A1M~SxVYTAPrab7XdvQF5`Ql= z{4ms$dYBs5P_ECG>*evGdO2NI%e2@hqXPp>O!Q3*oa-H#80qhyckV7mNV9cO z|AeB7LauttQkBWJ9k#1z>XwwMX3A5ou5rXsC%UReA5_Dgt&7a{2MrWH%m_+ptlcP> zGkEk#B8T7$9fL30R^Zar=bJCXi1;vJpkX3yFwv&r>I^5~LpDReAz`Lrb9q+T>E4Ii zlXlXHlj-)m-u15atmk>wZh39F#c8J8TF&9*TRW{CY73XwwzjrD`TUdn>+8EH1j@UJ z00e;`$ee&lfr$4*k|e1t@M4kUy4`N0!TpCu2b_- z3r$&QsZ5W1-gYA1y0|F#Q*(9a%x@fp-dA5+ITa$UUmDJW1fj4&RB)F}{? z$kh#3SMPpzYc=cB&Ntt;neXck-aBV$sk@Wk+{ae}02=Ndf( zDN=ZX9~S?Rg8o0e{6Gbd_V)(YLh-#1sbGJPo{IFH80_x;9j<+RJyry=jBJ3j4X4v2 zo+h9mS|NFqS{5orE1pk7`mq(qmQ$)%B1ct&SvUolR5zw54>~%&(%N8TEt4Fnu5g@I`>MYPX2CnlG@(bHP*@2t6rxq&g3@q@iy^04ENO#W6f=dGmUKZ z*2f=xRvMySq1w&}sc3|g2>2u)eFRe>f)mq~u(l5hRr}dNb!jP|-zo3{k8fs8k_2Ap z?sU2GZdp-8QIJpwWR`RJdt%XmNX4@ zfgsD8Nu|K)wOHJb}wOUV=Cb=XjXIcs!pzP8Oj)jOn&dlSMKe$KiY&(-0~IgrK`a6z-%{ z2ysZL9B7;ZWEC%Z7#fb{h9Q2+{q;vU_l3LA5dga3b|@9pUkzPM7E@3@wDhX3BeyeL zZkySt4GhcnZQar9EA=diClCO`dZn7(z{`IV0N2M~sn<(}Q?GZBaBji^BP{%K>eaY{ zrR}d?eftq&;N#(N+tBsY$QLqglzHD~vspTS1GYeSKE|(>QlU1$fIB6}us!BSxB4~% zT=@FnU}-7e$}6Iv+!r*n*w6%llN(%D00XEXh?=;Z%k1Pct=4rRuzq`M4TZqg`h9$d zEU;TZE64*E;sjAtc#e|_iXdp3%<&>8i$Dt>etnLv5c&V~baGA_us>WE0KH!hhnV_S z_V)f~-w>pR!NL3Y?+;!h1OOBLEV35yd=A?2{OW2Bgft%gI-Z7c@*o+{lhCqC+ZdsS z$PCC5=ogYWOebn#JgP9ipCt1sn97E(*Y%F&It~g*z~u-410OLm#%+i565Vu4`Y8Dv zr@m4L-5ppVUWR(7;}{;$D7#XrFptsH-q39ub?1;e$aZ?%1SfRxeTM?zrtE`%A00g` zo9jQoi1jo8(jZtthw$pvkj%kWUX@BEn2^@%D|c5h6|UDes+-pvn{T3L_!&7nQV%fN zc3j`bTHnZK)$Fsk8-F}lTFT|20~U9AMc_29D+@e8er2~TD1y+aNqiY>L9~Ur<>k!U z*4oxOih;GYt#bMP?(*8&Zn>PxxA+tsq!&Qrc6nZtIDxW)Sk@YnBy*ZMxxBnQ!>s6q zOjAF?0rxLHaKT=GaE|@q`~AJw--8gac>4Al6KWH=2v|@OCv$oR7W47rgd!lGFT#bv zm`V*m5+;j97}8^*hn5~L7NHuc#>iFCI0ivzsm{>pIAE(T7WxQzBo19CT;R3G^v+!@ z7O_Ej`MPW#3ial4eRlV+b81pjX z8yvuq703TAE;3CC>x9?=576nK4Pc5lK7I8Y>vpV7S=k0=kfMp#MdPqu8NR}#ag`9L z%B$^4# zHi|{O1n0-6#dPwI0C@ca4e06K{!RVA|3e1&{@uIxV1~VWySI1L8~pA9cU48^j~C%| zv6#mT>^z8*c>3QTgh?_^VztdISY7JYVi7OW7D2aED-M$+u+-55T@4sh0Uy~`V(E?* zC&}YEYDRRI5H^gcZ#3%8VzF2_xSK~vpo?{WDJ$HD};qmN?xGeX8}I4*Bg>y=7G z0Fj3P@V~oz!zoBxLI9XxDjm=t42mJnkPe&-R~%#}IhkDct}&jyy}frIm|uT=|292&Ab%f9fVUI?*AZ~k``tf2 zw9y8F%bHK8)2ZbeI&eeVr&=(! zbe#WuOhcvwnIv2!^XW7MH~>8Z5_;w4rN#%sln?<{r{jR}7REaM4Sd#q+Uaam5db#1 zBG|SMjeII!scvii(!t`8xM%g@w;M0<8(zJtysA_-tJRk)+0I9weMB+jqyS**99^$x zF%Hh{Ea&sBt|0NPoy<2pDtT?UaKFs+oG8kgtVvvVC)e8PHX1vvTqebZwzh7sufbAc z4XcOq#1!B~RR5^^I6*TxI(R|kIZke%B$OnrW^$S~nG~;4zP-Kux5W1uzN){!P61#G zl8f+l0(krV_wU~S_5G{={%`;G{_XF6SN!@oP%#gVt=O^%3(!e?x-hJCP7qoZ9f+-- z64CWV5-%`A1TO_7_0S6S5>p-K`(ZL4C(dG;jK^^j&QURjm{%KNGD^lV-h6jtIdwzV zI|L$CuHii@=XBT5JLvPR5bpqEUe&I)JE-;Qxap-xW#Py&RNvo3?`2o3Sv#BhsMz1$ zs@AQF??*T>{Mjpah%Vp&Tyh=E0bR$o9o;FdRyXN}uUtO`?#&8^4{*_|`bVGDSJDY1 za(^{tzX0a=s9xE)`)#)JYKYmyNA(VI6zLPU>yEJsqsX<)4oo3PbqsO=g}~YxdV+PpgfN-Q6@UsTipT*5kU2q;`7(ZpbLS*P!>-ie zG`?##G%cO|5)42A00|f(;2q4w_Am+>?A-u@6aepsuU`H2-~QSe{A2MK$0@X9>1wE} z)*^{@Jx&q;b0H9-nD9W$08Y4AERryp&f{c($XJAnkf3BeNn*=lYJ7DyPZo>uJf_V_ zXd1)Em>tDa*DWpdQE9O-AZ&6{6!8YHp${}aKyBF35g?tm&C+2p5;y3(rBT3GXt~kI zhc4b@S$YM)_F!y#yD}WPzVB1@2cpQ(xW?$g_ecl9Hu^|sqn)kX6d))S+|;(aQc0~F z>y^~YeTdM+&!tde9qeag`}f28Fq^GcwznyU(mH{7sxba{S3wEO;6R?>&WFWy_XF3eN7p_np1n$h65IAY&%;ShM{rQ8R16oiy*g$Hw7A7F96$1}1EAwn z4>o9q+@Ts|F~SL_)d0XkBmf#L4l6W)9^N2H6tpfN3q%Xbgq4*PZ%XsVuzsiHPzK0k z@|iA|FN+diM&quTf+QCBOjqMXW%rZyjNBE4azW|J1PQ`SFq6In%gbxancXtPW0((M zGLVvmP!Dnf285g>aUxeUfeisORwUW{^oK#v5ia<kxFd;#QqD+P=f^g>`Hh^GKTH8hdS z?x6bs03ZNKL_t*JI5dC<0!f%ZPEh%wcnqhprH50%NO%rnqmptlbxJP=^^A_A<7=!} z^t1_dba&W6PhYjO4teWtRyQa?xbX-N$ejmniS>Qf1_DgHb)V@m&0~zs&FpYkA;{4S@5f z8{9AJ@BjMjhX6?1fxW$_@84Cv;$FUc_~`v#-yiG^{_&Tq%<}@T?LA|v${3sByh1OC zm}R+f7z6gxnTk3wT_?IzCmj2*@Vc2(ko3Tp0PM@}6 zTl12x6E$>``adWH=p)9KR(kT0jmdeny5TV&oad+40f59)u@Enn%Fsy(f_hq~qC9ar z9U`1m=;udw(!!N0i|bkUu!A%JafzgE%w1FfLL`#s#gE*AiEi2{S``>)NUM{b%7kC6iK@`9a5jc#5IN8)>iIZfF z6M3nj2(npA6TlzR0C@LqL(?|CmVf!x`@bHfNWlJJ(A!H>z|p(+l}CU7zn>xrAOMbj z_YfIW^{#o-0b{Hk#G&djHL;*gPC^T4kQKx3e34A&3%myleWB}f5+?#hO7K>Ipt?Zj zPg2oR5?d)^nEW=0$4Lkd0pKA^cU%kj5c&bvAoxwEuOER!2!RcH-yO#x)hdWTx^X9t zt&d0UgORKIk!LfTI0eK<(HHd!HeY6|*?Oh!8mIx*15ug|pB#{%PT6+G){WJr7|M2|u<;lZt_vQP}TdMx{j|RPT&B)&CckjO9 zeFKgO_c zjxPT(4m+J6Bq>%50Xy{t@pL>LkH^zl{5TFDPp9MQ)QYExrB{f38tR5&siEttH2eij z*8=pj7(E@JqG_rJR!rST=0uI$MLGSV#W%m~HnX z!&OzwK(@dm;5BvDY_}PM0H&i`ohoiO);p!*wo1ogUZgvQucKIWDisGIGIBb$)4_0y z3Rfeg8eHSnI;4dL1t&{C~5 z<6H3*Z-N@c(x~ z{Xyx$n=iuB1J@|wOWiRrH%1buwyziTP`M7?s^hHw`R+42iU^wu0y=+>c}^*`qdT3p7wNj=M^T3cQPJT497@=tv;-yYSpoWcUZ5a zvD+boh&+g)%VkdHmOmGy_1#^up-HBsG&q4%b`@}iFxM5tMp4UmyWJgA-syJH6z0Gg zY2}wQnfv$Y?iYAP!E~TpE)aoS;w2zUz!D@5->jC*NHh=c8{46lhCE7U9KVB`G14@!4vC8M*Ap1f2df)FT4AIAUL)w@9ZR`1@8 zB41Ti7ND>JiJG<5E9~vD83LfH>y!sbWP!gOU4LM;8S8Wq001heKp@VdozAz@b&zR) zh$!e>Z=XcDpt~4ZE|!)6<6vPxPT`fEo#pk<@9*xKgQ8d{i;@D_uxaw$oo=nBaiT1@ zy4@Wyx5IViZnxXYcT-ScIg^36RDoB@1%)r8c~q2?8bH)xiGygs)MUBQkZUG}!N2?2 zr@tts0r36PRQmD$-MjDiFN^o?-TT>10NlITD*pZV-*434eSfrf`F}S~AVhz9aPX|% z-l(?icDw!TfXx_VP5R<_o<~QENQmPpSOM`oNq1N-7RmT=NSJ`G$8i`~y8clThx0_8 zjzKa&YH)NtKyMLG-x#(<9YkQLL4e~SE)~RBuItc(4mWMK(oLB|r!oW@kId_oJ|2DX zW<+GeJMNv&z}+-H`nW@#0Jf`QYEa46H#atX*QmDp-;$C_rNY)zEgBhMZI4c+U^T1b zJN$RiHCH`dwJaTtwK@z&{F{(`~#9A=i`gOK(+&hMY*Q>Lj*0!W~7E4Q8 zYiQ*2nO1&z4MQDXQEEp;lT!*jugF^AJ}xfDb5y=5Tdlk)DbNo=LPV@l%!rn^ww3`2 zQWJolpnyR!DnVJ6cv0Xa4#Of*(?qFQgb&=OzxcF4-&w)`^Db9d-r-r)CTO| ztP*_pJwEB(``3GWmpk2ygUYoZDE1pcM|bdy1$JaZT|#C-=P zU^<@8r^yuQAgu*4P+H8#0EK>gm6FbNJ@A8RI315;fA)s@3di@O6x&r@m*^hp>MZvG zqM=m6ARn=ySL!RM&xgahd&iC6q}CoJ%p6&+`|(J>ekpXvxgnWXQ<@Moj-IEg7!|Qu z5<*A8!qDn~`;4IQ7=+d!FOJ$!$GwU1%y}&E{l0C5F>6;lxEY5>TUe1-*6pV=x1WJJy@fJu>5_6npa+)B? z63273-+lV&r$?j?B&hfLh`)ckxBrU zte1vFyULnARsWXC3}4096?jp673*OV&mV^%k1Qy$E@IsZ&-ScZ|Wl$MaAVfC_C=XklpRK0r5*w0mb*u^vFF4>=}0zX;ef zN}W0)Mz=~d?6+;EcZel~Ho&F;@NAE%6ai4rbaa(@Ri>(?ibpI}R;{w2qsJ;9c}5c1 z&|>tL>iNcY3Bw3a*TGD!+O}J#_A~{nnXWTnmX%j{c}gV*4y0io^59gmNC`xN5 zkHk+8xGX9l28aR&31~q8>B}?=Ttn0Zp2LVolHe2pX&LfIuC>!bKbgtp6r~KONxndw zabDp#QB)L(lT8^>AW3GiRx9rB6U}e$`wtQD_GoXvRwFd{hyvjH6}Wx|-hbc2@AzLP z7vx(F6Owl73zpqzr=?)qYcqCm&}K6TydXt7XdX7%;_7O#n9k;p$3zOU$g5x)##S<) zhJU&m&#$ijG{5>&G9!&aurSm(WHu%RV$O}8&E_q86 zG`NN`AhVXqV(3wWE7`DcAER$AAA8g25sce|sN* z0E`3P-h==GVE^I63v%>3LlsCu0|-6Z&z`lLO?a%Z>cO+B5A7BlYY+gQN=kw_fmM}` z*^y->$@uZ($5->|{A!+nT7XaDORL$e@6Bec+9qK_8`A+av>j_4 zvNRX;k?{@7MNQCdd&mi1741$KGrS5`K((Su1%t{|*D5)VW4F`jfjoGlx@o5=z;!*3 zeSDYs^-6u@q`e1fLIWLx>r)qy$>o-nRzcu%J3IWYBB25VDTEUgffG!wENK`H2%J`s zY7I@`2Q`T!Hn_%h2_1%rUqRG1yKasPzIpXfS$Zo>_G=W ze-Q`xZAuSDK-~KQ2}-w%?O%V=_iuYp3>F`q;QV1!3tJtW|Hh_I0f02{%xgb;R<+yh zgALEmwhsUksMFX=66yiQp{0hgrN;BeICGqSLj1z3WIq4xRlGnTB!RUERA2{-givDy zfHh8H!}sIlx8pF3jiC{!Gm8abz|_Ds!cZp^&rM3(UrbBeE=*J7`2$Q4z|f;-!_hmA zQMI!$Rb`MBR_dkBL6!7}UMHUGEMjfu^8PdR@K1^9HmhQPWZ4Fz_MSevhdQ0L3sFBNN2vX)f2ey%?dIuZG_kgfqB?5R# zRf7n)air@yJs)02H{4Q1F99b?ok!GYV}msAkfzlu6$hiNN~IG9%yR(+BLME-FBHm3 zSrJ9_CjG(nr`w0Dui<>1u>4X_1kO z^EWDwW`TY*lck{%vxwc395zzYIat#m4mVX+{v^v)ZV z>AJ&$h-Gb6jUM2S4ZdCVqsU`Xq|&h2*E_mR!x4bJZsofDW46CA3_F{Re2--DtC$$; zZ|*$3`)x%>v$3>93!`#Ww2Mk%H`mR9!^M|TyVbaIfmGndMx!h5{Ow;~aGb`~l>ZAO z9+QJhjDiVa9&WO&9LHf&yuJ>SKqgmK#C#@C*Pkzl5}3nyH6%qewc-&p;d?)l1*Z|P zw_mLN5CGQ$!5jJT(Ey6^qod1{laq_d@$uQk0p$QPDMT<3DwuxU*jTNSna>7FfvT;l zK}Z0K)zL$p0Vay)G01|8lr{X@xs}kFCLwbD6)=Lu>?*eA@gj7S@j`DVAqoa7M8N#% zPji|nVNT%IFB$3XzJ zJ=iL3RM~i{>YXq)sMbRhtInKG9n+4e|0W9FB(7!6et&DzXOVALiF(%mv-{N929n^H zkor*oqU`jT>n;qhnzem@!;e;1Hi;?{Ta{OLs~wPMmzMBy!w#aA$$x-hf;_tp#bsn9JqX*Wfpv&WMH7 zX-*MEQ6>TShm-%&5BB$dvG+p&?58OpwG7(Z8<2U>(d8v%$Csz4r!US=Zyakc4i27O zT;Te{xZ$9B?fgrIvhB8SGnFdrfVDlW!M+H`s^>*M zioUzHhiu?gJDrUzVa(U)kLz?sBipyDRhVLB?OFfZm5q%RN3UB>rTXoyIM!{#0RZJ8 z2GGry!R%8c9`3-L#wliD*EHc4+tpe~-x^F(e)sWFSPBOKf9S)`MPPu}lFuLK0h0gq?xj%B(e>fqL;y+v3V_MvVsd`@ z`r_pL1?kM%kerfl{n0zkikQZs0Xju%uIvt1PcQ_xQeO zFJkibfE%0@PE-4A$Jw5TNy0iLG7VG05ip>>@9AU!M8!K{SeBmZ30JfA&1g2W{h9BF zR`noT(j#X39#gATukSP3-Q^Irl(N;Fl(npfV3%Z9X;__&Y*?Y)GBDt-RKHtQL&INM zy1kWKM%e~#AH<>L5H2W!#P4#NB-SK;cU=**qG`(9t|E%EC=@tZFpC=LKm=3fx>|Q< zr`2tx3r1il0K({UE0=4vcwR(fsbDs!q~FVC@7@mq@bAxme_#IDO#tlwCFbNh>Et5aV{&$Kc5naP8>Rw2rTu_W`J0c7!Kp>9oG-C-U( zR4tZ{`K&OoeU%*^28SxB#JX>XqsQX}m;EY1PPN8?3YID6$rvmpIj487*>yX0b-1H9M>qhaL%n*;V8CBx?a(NI{1-I&Z?N#TQPJesMC$e zW~-~!KYv$WS&f3g@2_r_;9^y;9N0nMS5@1`_4lL5_D61rNU0BvlpsL;hwd?!y6a{) zS8u@~Wfk%lz))4!sUQH>GRWDt*YX4ii=4uXvaox9myov|#C$z~1VbE@0oE)EAoLw;1B-#a;H*I9A z%_e>X*oABun@x01_G~;=H|%BvRXi5-fIqQN2%0+m0JWu4DA0%~! zZW<1&EHbP(ofugz@Ie+4J>77OTM?^f@hsYb$Lz?p@C2-{QzN*Qp=m%~;eZ694{Qj$ zSXSineGvX7MKXD*xc*75TP$h~j^}XqHB5OWK@vDq>!vAyzU6kP8(dZj_si*EsJvUi z?JuJl5Jed-p%ei7KR*3bB0PXZ_$C9~`_VgaQ#D*pCX>r^(2LJsT(2@pKf~kA|Ty z#*cMe^mLS;Vz-W4LYkleFvwX_ua|TuiXuqdqts`pjs+P*qoc-FDqS;NSM@hT%V1uA zMJG)INyLB|(XOu5JKKhDw^0vNt5KwSw(S}gaDdxenXTK)*cXV}t(*?^1xY3+$l`!k zG_7#|eu3NpMXjr8#lZk{Z&}ksLDN9<;dqI|ptuV}m}EpdIRCW*xT58B*#P+na5NYA zQW)SgkN)r>08&?wG~>e?e)j0m z*~Q6Oli8c(MFLZz>}mw_eJTrq93E7gO^n=v$X|^-cGq8hGn>X8n7*h?4T7LKYqo=# z%G_|F&;A800fK|$Byp2u8mOu_!s9+3TO>FjMp;O@q*)Tg^Taa1PM^jO^P`S#sX=Hl zBBaAXAXFFgnAD_LqJjfPDWa?3=U})Dl{snv@&wjXYtiA*qN!fw```>y0DupkeYqJ< zW5Sr-6lu0M4m!GJv&evMjhrMc!-@h}=S2Rt>${T2a;nUc%20j$};}il!jTWq}hVPT1Muh+asm zXV*Tzh6OV@1yWI%i}4bM1BirAuRH&=#rsjQhtocy03dD1jZo}IaL`escT|Mbcyie| zJ)hv-zxd0^Me00)GN64%9`+aXD4aZ5g}c`Q62M0FS#@KB(a<=G2)B9DoW8j;3)(?I z!?<7;%x2B!vj@NT-%J-k3CBQ#Lr>SIQ!7lyaXdRzRSX$PYzE!{0C^RvvtWL8h2jx4 zg+U;W*D->$?QpO{kFZ2E9QJXih<(>V_5c)nGFl1#hD43@PrwyY)YA zp?74cc+vpaT3^l+y|0x4ErjQJNs|haBGy0)5jagK)-gRaq_4|(FKCvm-AYBqomXRj~L&Yq+JaB)EnG-O$P{QT^q-3D4n>mb@#8bgFk z+m2Y%4``!Z5FO5Dvzh7zee}?F5U|-en*B>Kn!TCM=P2#}D=Cn{3(|G{%{*jQ7*A2+ zF|wtwRQjr_dK`nG4#G~zf}o>gVn@MXGc`cR2dWBjl^J6(WJ{gRcACEXz=k0o$Kaqaa|YGV=gF|uS) zshpBco2#7qtach;p1KaO2wzPD6eR=DXW%K}$h-AvphC&il;5E7Y&AK3#6|r1a zB(Ql*xx6bVpO=+_EPweW_sM;;VM=1LsK~O`Xqa#W!Tu5OOET0CtgYqp8CZ%HU?zdB z1CpW$0{@?i`#0WS|L*dq7{I>^fb{3nCxXJDSFCZU{?1NcOvr);YpmcDb+=s(Niq@-~7XG%8`N zLKR|F97~U)mvy~Va!Pk@Y=FT%c628;bhqOe^=ir0?duhJpqxYF>qq^MOJo(U8!w%t zWWWTEoX)HVuI1=;n?+!wV2pk1RzC<-I|x)Sn6hjZxDa&9BLu+bRIV*A- ztWKT>hF=zC18&@CHh4Nd=6FDSrB<@pgZBzn$A?zLl=e(CS@ZDlP#r~w*v|p;9-F~A0}aFB;hQ&a zemx6jSAUv^mj31qoCFp`Djd@|h}0uMl)Mlypn8Z&Aq?VFhP>W^O#rsmsI2Y9SD~i@ zgVNFVSy#ydR1QpX1DIV0s_pmhMp4x7Qv;wo7I?@O&|J&X!*OgmF}ePLdis%*9<-5W z2;fW3F!FtCgrE7C0-$bKFpwYCeOrY&<~H^bMF;@hjlf=cGuu$f#@%C4pxRY^X=!b1 zYi)fEeP9OC?@Xqp2sl|8r5g`g7*B*AN#aE?IXKy@X%GMkf^5p7*5i2azNJQk=6nqq zD)Q?}pasX_7WvGJJa!Kil>0CvQh1^KtNp!eF?ibJ?d|>l2f&Z(gZ+VoVT2~PPA^|y zHX2`Rlh+q#my^>*vGI$>U~)b=J->MS`s+uJ9-f^YpIn?gd47D{OamZ_HfgyWL{~WH zAnIc|OK^DT+o_P79>&AN=-a#fU^bf}@w*TH>lEOi1u^M#{21*OIz|{@vv^7lB=b3A zEC|&36h0BjVh%TJ1c0Z`uR?;LRb7uQgZLdYkV?{qV-~@z<`y(ye%b+oQG!f>NT9CK zGD4yt;)w6i%?BCLNeQVimF)Yz?otYX8}@KG1QBUF4qrwymApb6&=q{&vPuzCLp`2l zv65(`dVqf!3V?Nh0Bf0CDiQ^rD@ui3MHE_jg_pHmascEsQ{uEnLsU2rgBpS$6-WR8 zUjgubIk~8alGKpl5`;=%ho%Fq%-Z_a`qma61*nZdA^{KpmB5b+fO|)^A7y;-!1k^K z;KxY7Uawa(1%WH};5Bl3YI5A=<=}EMd2x=m;PvZ^%ZrPP*RL-xCzF$7DhkuBR?nY5 z&t|d80;|mt3n&30*@a6)U~jB4hGk7?1TbL5-_vOr9?oX-$McjysInjl!{G3cF?QH& z9v(KEUO2{_SPg;jVMLU$HVgG+3hzP$i4`V#r{j5X41-z6X@hH+GC5d3P=nB8eb&E4 z^Bm>}7G%Pfs)sfu31G})2*$!VrUTw~(q%Ko(++u2mJFwKhpK*<+LT=Pj=li<&?q5h zEPFE>xionM-_YNtickf&nW;8FFIDxc)upAiwXOB#wcG1kR0uBTTgyn*in1f;(fEr3 zhQyLo8w`$mHAwuqGRJ9RLFSdRB189~$(qdbgCZy6T`*0K=7XRbrYb_}2Xo{mg+T+3 zpBIE*q|hFD0UkjLfOFr!w?~qY*KeSUAcruhwOW9Iko;N+3Pq9Cv-0Jd&_{t1cvw?OgE zb#vqbT3+6P=AY;JZxm8>n8h9^a4>?wTaVo#yd>3%4O!zfv(}J%M>UNjR0tH2{7#G5 z#%nurK9^ftZnZFR-X&lVTv3t#6$pURr}C$@VsEg2^fR3I+qBTXx1R>U{{Fol|4;M@ zz22bqi%-A&4U~n&Vvj2bwOT{#HX6U&dGX@K>G@=Wn?9Lb76-2{2_=|3I-R^eIXyW& zee~p~rze}6Pk#E-udb>L3s zHbh_0i*XXM{3QZ?xiYV5CNB!2!htOKpG}!BNYD#unpvwA1)&C82;fGLe{|)1hDJlM z79zd?azcjK!zd6k!qMLTK$Io!Q*?ZT0bF6w0^r>DVF!e6u*h*5+{QFhGi#hylSNVH z%pzCNM7dTpyQao*JNXRk$JC2d20yRq6HY|vO!)6dQqr*eYj)UNEI@VeLi!b^N z`8)(QWKL!k)7Xk*Pxaj2$7=YPf`CK@RYscNe}xL-JW zsti#h;)(M8z6)Ew=(9+_^O+mRIC{SiVqqPA@}-YThX2`T*fU~;4_s#yKQKD__`wh~ z)NNWXYPok->XmG|%#RjaF&{IffMN5Js@mD5rO(&bKUrVf%B(GuA>=ajAI@8}fq5wcmcvKc7v!OL$H_6F0Q(OwXYou&967jG|_L7BmAq0Q7i9{fJ0;tYg84CJEKU zFaZKLoqE>qV=n|eJV);s>*1oKtMNQ$%=bLthaTz)-k;w8EtBzA>Emi!Th_h+`@h4RF7W(WnFw zdbV1nO*Rw&e!%PvJFstkI}2EKX=(kNb+UXSW7s@+okR_2wYst-i<|%xPzBPSg51!G zMOhGP=I(uo`w|>)O*7H^efgzX9MmM<)MQS=BO!CGZrTly@DN0?_1ow%)|O#23LY~5 zhok+0V9GKDzyKnVqtqYv=pJQ&y?gruN!ElK4V_ZI8i5luPHHr294DK_p4rODX5;Jb zi^=6BCW0rElgY`$N0W=m-ojo-r()!i$_ns`r{v8{BebfKtKBE0Rch2 z@3Xt<;$Ey}?R0cTj;_Ai2fvH81{JuvnDj6&1Mr+T%zOZ$$~&2$O$1u(>ra? z=sbmMxSqrv9lw+$Ry@6$`%rw$V#~wb4^jg72CJeS#91@OblRy$$Ye_PBP9YDUlC~z zKr4Yj$#q84ag3^PyA(wcUVwT%F^n(1cwjijXt5X}06O*h%i#k<$5yOtHA^ckQ3FRl z)xWpwkMGV@h9_YC^Pkf?06KZ(=QTowTLtp`;uKy(-BlDM$?Vk{MOol_4M8?FQxYXj zxL+1D8EkQ_*nn-g*nrP48bgc(Fkwu`%vh=UFBEt%ehLbieJNa{p*4C%sn;{jo>0EO4ym9fD7#!ulQfg(3!KKo z2tbleS<;{Znf%1k!!eq+Mlt$|Lhrj-uwL~ z{YC6urb1dumh@priXQ6S)x}j{>46taJ#`wudPLXtFd0K?j`|<-18}u48Ni^xRzu4} zX$k6>YSF|QyJMS(iP>xvMA=(WV1-k|HPk+}F23DYSwA&~21cM0PPlCtAOG5gAI_UM zmIM74bnHg;<;I4;x@oxXW_FWgEO0Nxe}A-Txv+`b+FJkQKVmf)c15m((@Rk94#oim zk=x~g@nSX%TBj@sa4Xy))qr+;rQWf91V99u4vTyr-F!rL?{xZYzuB&O?dB{X{~=Uwsz+d; z=Xo&|`d-u0Jv|tsK=kZD^;9F3^H_^euUL8q1m1RFGq8ZzAxd*7S}{UE!f6JWIzo%2 zvdw?KYdcn`*GZuqG2iw_0kcL{DV3<|>EEtfaYBO}a`pPK4o&dOp=%6ZW^eU3Hyw9- zGmEVy_;05R5Jf?Fr+%0C0BH*N`8vJMYq{>ua=x2y@c{aT!g@igfz~I8ys)ciyrA$s zvkb+c07tN14?Uo%6*aRVmjxL#q6Q~|PQb}stqZy+Q3X?jsb$(e&}uE`3caJFBeTG9 zP=nSA;%_vpk3s|tdLO30Jx-K_hW4dtnl(<+%vw^}%*X`7&?^6+-_YYc88mD$%&rYyr( zBM^su+Xl*HjKUGR3~z*i5&0Ioq295^v1Ndi?mQiCyT&kE!AcsVKHQ8Vr&`~vZr<^; zEQ(0J;5rxwV+9=lWE)JQ-0n`k#T66`dw5Ev>9I(dHh{H%F#F*!Luxj26QoaZUm|t$7ulAOx=hA zh84sQ9+3W>F)9I41_;K9utA53C2Z%6%5VrbgW<|%G_#EQYPK3gtF)UM#@7a>fm^qi zZ*SfH9BTkD#!ctKJ3B-SRTLgVKfWx81ySTAu2|!0(059;f}-q}MeR3VnxXxGa7>IXyo;K0bTiJUc!? z0Gv!tXfSwjc6|2wrWp(Jf+>AP?nb9>-yb4KRM1;S8uhE0k9AZvWh-Bv=g;fxl@pEGGw&xU}@m=O6{Hll}8@CbPA5 zI|H|f9Ix;)UxuuQFJnchSXQJW2;p1}^C4V6&NOR1&Xh4D;H3gDOQtDuy&{@JL6T)t zG&POmY4r>?(9pzrnSvmf$rO)zN3u{9Fc_8vu?%EruVEhDtNrQ*5Zv$KPcbZR$lhflT$IWK@J7<>~3k!O6+-W;W|rs~aaT|BwIn&$l*K?xN~fRdQl-{O^9vR0A|HwIBIv zU<4s()_vE2?U(P_QGa&b4+8QhV}|A|3|Xgnc*s0=1XDiuwEmt?bWAMURW?Wm?TBwm9xa6!}r$VpMQ zHyScUfWW~V&IB~v&F6Q}5A2WzVVOh&<{yejzfwd2^8i6Cf3pkLchM~F4~icGU?B1! zr~Rkjm^G<^KoB5ZH95i5B-t!Bc(NWdO}WmM1pVLH*~z0vFY@^p zk4{g{pFDpK7SZvOi?fTQiZ#!ZC)3{TZR z1c2}Bx*J7m$H2lMQlV0qro)0xy|THv30sTDZ(e3M`%&a?zKs0H0s|$nfCH>AZ!NEF zEw6q4`POnK-@>=$R;vtJfXLNEo-Z~eYQqbXCc#OP=QLg^78?Ui(6q)t6y%21Gkcn3 zikw!g6?sw9YDJ=mXs8o34r_^EDzwwu=>il)0LX*lQBBm){T&r{c|k$}V4B7Kn?-?` z|H#PsUw+BSnpT6)5DdrQU8@Lq2O7{UOJcRWM#!8I1bwizz5bsc=mt^8 zf;*#t&1PYOeZIP7G5aIGO?SQx(vMC4ZC0PLLoZB{RWNaY^ug3NNthL4gM~GXQ-qQ7 zJZ^Ed%~(PPR^cr0XzI{xANCy!JXIK>dO;XEqi_^j@%F1>>K|pNMiTHQfu|(%?8tGP zpzrA}3~4MH2lnj<=f7QYI>YM9|F{dLc->viZbXsKR{!}fQAFYe3?goCt$%WR>-O66 z*6pp^x0lz}F}_<{Z?(i77(Ma@MZ}O-;{;KLV1$zjWkuvnnQPSKMz1KFy#}WcXH1p~ zq9}tVDrvQ%iAIgnx?&epu@**z02|3#I@ijt3BN1$Y65TW@9+0eY6^J&YjSO`xc8w3 z*rR@vKm}Qk-EY#%QaLBP?G0I zLxq0k#oik)F+aiDIWu;iG)ikk)5EczOis^Eo_zJ> zl)1d?$5&tEe-QJkS^&Er7bOC82t0kw{mM+>$lg) z_YX5cfVexY0xz1-bczK*BHw3`;}k{GBuzGt2E0<rd ztuGW5t~e;l8a9(im{w_kqC{Tq^#;A-pa{tj5d$UaC?MA_d4&jS(g zw4--AR*cG_-v`9=h3diXm9Z%xUx5EJHJByiF{63kVY7XBc*v~z)t|27MTq>*g6SK> z^E!)UMm}*?a<$Oo#8cI$9ax+%TvVH=A)pmh`%zzQyMad)h_~Sf|8<^Nv0QI(BW4-RRQNC;##D_4T#S*FU+vb{m@`Q$KK6faW=& zh4&T|K7sa$nYi6zLD*G<8c-U+EK2M5wSg&1gI=S-K{C`M%?OXJ5vD}5T&^n<7@WUh z3@_6js&cLPsjNw;0mWTK;>(S_z5SYUodHt5=w1=7QWD4U1rd}pP8LNDo>h=9a~j8S zyrhA*lCqL(17Hz@y<(%gqcw_`MMwz$Kc?RAwT*1g7xka8sG^YSM=X_bR2CzJp|(^l zpF2^c8cnB}I=38^sE5dx*)^2tdQgLCai+lPVGE&PB-CbK&_<$hz!J#hDuzw${dAp& zZL9;r5QwY>(;hZlXAT3t#BI`eKjpk!K1=So$Gy`@+}ZAQYSmib_4&DbeLaDP5Hisz zH4iO5POd**Tw^UH|M*WQza9|7;czAP;K3UBljU$FOo`b=Lge}Dt;6$Al~iu^DWV%s z{mf}5o&kXXlXv_PQko(604DI~ivPDc5t%2#DrfdFnI zR1i=u*Xuk_8vzM{0z}}^E{D7~*;WOhL3XpLGkjB(9lfan8e}*^_Y6VMbwrH=4<>S* z5JI~Lsq%zMkdpzY`QNzz_7C8HQ9#ObSO8t2xd;SU*h9c7&_-&9rD21J8wBty>p+GT zkK#c1EeX0UGe93aMi5w{!l}Z`_Q}bKqs!{a$!PRuJn4<5!y!(C87;UU;eVsEXLZN9 z9#1B>x3|4FSSO&(put|wtyEwkLbXgdSA;`2{A!-s0acXW&ZjbBC3fo9YVj{0t!HTd z3v!)s$csBE|6gcugPVyz3TMKdPo4R{y}PokA|xfnj_dyL!xj#OOt{l=!>{kQtgxFw z{SDH|w!-i)Vgy8n!Pdejyy!TBrXU>d%)fgjhCxhWBcX!tR3;VP`C=|EU{#l5PUJ3BLQsyprAk` zUGDzF|0Mti)L|dxBw=^=ce`x!-Yo=Rn5A}PUc>c+=cz7HRY5eVj;ia9qpQ52+p4O{ zvZL!lLuLgB&E~4?vE8QXs3cjg*M<6QJUYHUfpv5=VR9pR001BWNklw4H66xcD?h~`6sqi0)|OZH2BYvo_X|PzoW@1wVr%&r)rC1M~U(yDQ5|bUMY$yYqPB@bC~mq;Podc8Z6W zTfTL9mxy0p)@oblmx)X`Tsb`4y4(t1C2EO9kUf30xe9P+_tSsh3R_q^ZpRIWA7haJDy?oQ%h_+nW!`P^5f9kAm28?5CghRvtXfRd!;r*zxf(-IQyhwI1$R zI~kh1gC2*JxSYz=YDnSB$2S(kfGCPZIwbBO)!u*i^!Zm|QC$7BV~K9(@a{b9!ZVz~ zNzg&Sb;kNMhtSZUzrIWy{_q0~Czr)=Wd{S_RnbC##o<-rDo(Yk;Y#i?LJj7xix?$# z!dL)eitYe(G^8j)s`Bp7UnJ-bP^&=?|A+N|{mxohK{tVKoyX&kmzN(T=mN+sEfosU zLN*<(MuRAW+k9J1qZKR!r+2xWtTX6};8@;Pu>}*`aWq2^SV5LNNg%4-+{LqZbmBB^ z!V=Z_cDKtDSy1h!&PhZEQe+GAB1Ax@cLK=5fCoiX9nA0VcBKG9#_BxmzcL^mB!S>C zApoNZt_ZNI@r)|)9Q-HEu8x2j^iUAJ+wC@0Np%Q?3T4829t`Xdj}Tp!^`@hrTwjl` zPsT|v5c)hBkH$cTa8sNP2EAFY_w4Hrn;&jUb!RpJgRmT1{^_T|-rgPv<4WcD_&B$y zddsIE3t1pPB1Md7cRV^{*Yaz%gM-?lLyESMr^HO{U}L@Z2pwjx{wo%Mb@%>CzJPRrQo@@BC6tUTDgmg$k9G!0jG*#Fg-y&67!2mN4RZj?5l7|KuHI}yGb-ra z?rzs1ggC6H$+)`lvcR#dLzNvgU$_pSn|Akj3F%;9-eg(9Kru)vrcnXXJhP#Iq3@$b-ORx^mLN*aWTL}0ik(VJuB$y|?1 zkr#o$?8#u#`|xZ6(b#bC^^@b#lZQ`wPoDf%uGeRSz3IjAa(->Fy!_MNV1;UkUDvJ9 zq+nPqFtA}9r_Vh@y#zVBHu7tD|7pW~oZ36E0I(+F^u|cn%+}@B;kni6xaaR*|M0_> zH7^$D=dbU6zyMh3WQy3nMXE2qLQGBg_1)ptB~pwK0}#h;f%*#ayc$ElS zom?lJS`)(=1mKCdFsAY`gqPPIt*3Tku?LkzVo_xKIOZd;Xf3w9^77?Q<%_SDma17L zoy``a*=!+8B>|x_k5sD4%@yzHosgI$@$&j_(OS#}Jv+ms!d zsJx_@yxdfI!O?XYZXQDFQkirejDv6yV!tNT9lFa&R6ky3y4~Gxb)p(D4(YX z<5h?c2rqCv%gPc_;Y*QavdA5^RoqL7iex)p7Brr>ZPjsDN#Y%w$a+^`<@z@#D6Ad7 z0W&xnk4A&R=;C5Dnhu{$K3;b}o{UC=$v3y<@o+d842IjsYujtfg9owY7@j{82vezC zESHMmZCg|o#0{10JKw zk|1b?tUBF);8lrJb@a#!I24HN>~>|@QB}3uwCOY`L*41vDrg-+CaSDDI*Nh5bp#m+ zL-l%D?{>fKvMPfG&}68Yh#-RkJH0@7bP*$X7W|OT%Z@DYj!IE#-3DVI%L0AwG6xB% zE_n=by1c>S*q~cJl?+c##zU|KZ$^Wme{phga^3Bo9FLGKG8&(Z&YocuJl)=2j!hvK zuB;A^PhDy$S#fSpyn{!)759+cpF(2}rqhltsb-k<0v@C+cG_veCw4YkW(-Uxlip}F_|vnCixI*{mt&RH z)k#=(Z!+ zcq?~h*>)iE?>e&DL`kHo>pH~Wy5p#h4c)LT6RP!>1wkeZ;)Mv(x{6cJq4;6H@?x@=jMLlC9e+4ggLNWL>p|dY#pA z7nzJtX1BA4z0q(m)*WFya$VdEE7Q>c*dXx3KRp|a1}m|_AQr3SrqdiqB-eE*Ft9S5 z`mxoO6s3TvW*8<9EP!0)eolBqeLIT~=TBQu|J7(%05BnlPBXcLJKV9Xj{E78*tv>_ zJEAxjt@FdUNb~HG0x5>W#q)D$0A62;;raPI5zqKy0_-3x$KlND_jieKPApztCW@Dr zHKg7h9wvOZvz)X1OlO*M#rXPiKA)ir06z3(nun09KnLnRItVUCxO?Z;CYpb1-WSEcdK44lIp2ais(*<=ZhUdL8- z9g)7fI`1(Q#sx{+#3iw*>W*%!*sxh5lG8EI8b}g z{!z#Qu#>PrmK+K&U_C%GD#&(ox9KrUO{-(3IouOF{Jj)&vklipw@7Q=;ba5flXNE{6ID!Cmnsjlm$ zMAyXtKx0;*_dr-MMT{-F1jMzKzpRR>1$ID_IN$~qQ>gz*RVs952Zl5KMD^tWf-DOE zhUZ}m0|s>>Sx7S3x;zxE`MDMDoch1I2{K|hvvqluu*8go>Kn0`h|`o3s7}J+oys%N3mzjAnU{24Xm*=w6MMf5me2+!k15en1y9zSO+kf{ z)UoM>P$mc>j3ny@`nj~j)6;ZuPB2pb4w z!aNq9Y736TGeiY(E!%|Sh%FI^GXzGHcOB>m3Bzh8Ul*Kl@}}48jgCi?+3fFRIs5b5 zuYcS-#z^?rivg~M51;jh4_0HN!P#JN_Hu7D8jnZA0mgyK&caNTOXVsHZ&xKnJ3i<{ z@M{=PZu!Aq-sKSD`k3Ce7f@o3CW2==75ezG3NjSLfdp8bFD#>TF)aF21%Sonb~=wz zrgscfRmVifg1H?xzEoEu4Cp`lqD1;6MJV`PYtz55{4Nt-Vz;Xs*IbJ{m z6j5zi)@6F-hhaxx7zXNm($&9}(K4qtyUo8BbnNy-ZmJLwJ2K;RZLABO&X0I=W%~4m zI*#}{-2v)6qwY5UNv2SsO*86viDNO_EnajS6EaJYC!#J60ol=2+Dr$C2zLXRS+S~A zo|g=UlX#{8v9ij0k|gkaJrtPDl7I8!&3N`?R-R2Jv)Qco^2gsl8y!#ghJ)4BvnM?) zkJ!p^FxVSTkB^5hZ*RVSc{ZdL^PL@<=R)v7P1DUW5$pNBIfpD%lYN? z_4P2k5f4_^VmRd1V(fLTrrQ8|KLg$R-+$Qmy@Fp6j#!Bvo<(Pgs0 zNI;_jDKVrj>vc5b$xf&~z9qM}$>Hei>}+o`c|*!4r@jvZIcUS#bXu7XPEUt};m6-y zj{`R!e*Q2StW2kSPh-ogD=}otQ0qpxlJkA)^t7xTy`qa^4qfpGp_j@juRHv+I-6Y%rKjUdZ+F7{mbBp}mI-(g^XBLkxzq+lMzF9*$Oa1}|T( zuDm=O4RSdQ)EKHD6{Iu3VhFI1zY<$p21yTq-l|k~ti=Mr%;<~1K62l8UCUZLWA~ob zvF7KA13EGyuhjM3#q$qSz<;aw-GBLFYwM00POr8ux8he@8(W991iXeB@%7!I`1tXo zuU;Vm{Z-6Ab=^EFb7;%5n8}2?454|9w$P>@Tk(HifE!J;UU&yz1C` z({|{u(+My{Jb4|T)@>cEj*Y{?)*VOI5f6wF0GoqttAsjD9UI35L5YnlGw89U)Bpxb zRfTDk@HQ3~tRol^zz?#v!)QdXZGmm>+7h_qBq^0crIM;flI6*aoQ%i2UHcePK~gHs zCbQeg$!vT)8o&5vG92y=28b3IpG+o`;ln@Oe0Uj~4u^x4eDCJwY-KPQ4q_P}H-F@f zSv2kkLn1uAu~h8n3*a2CSvT(33W`IsEm+M&fNfRAw!3-1=S8)`PFBX6s zwmOviTWmK8lu{Hg=k9uu?l`rr!>g;St1T)Wi(g$OzzHIW^6DzScDlWtU-=^QD`G8X z{KLci_S)(4+UZa4p6)=@kcvIXrQi*WrlAU!7)dja0yH()&^U%+IF7-5UXF$sPV;yo z%M6Er4;6Y}-oa4LvBGW__XC@7g40CZr>=jy+f^N1X6)VW;`rz2Yp&ZmsAF6O=_x>Q zg05|2RK)cVtEAcNQX$CyzU$~1AQ$j~TBjNSIK%{o$WR4g4X_?B%djV+>KJ|$R-m_2 z$`=ud-VtQA(T10pXBm%|coy6tX?A(8TdwOTlhR~7!5mO7-#qD!F%XPzaUm^D#=QxR zp*PvV+uOnP_T|chmCF4{Z_PWM3boy(=+s~Nmv^~TWd}h7 z)b!KAaex6593J(VS1O&w2h|1uV48n=6u-K9RQm%ikz3);>-XoyyRA%o>-D+lyB(`& z&F6>budm{B$Vb1UVKoP*v`4-2xI%HGc_Oh@5#w=`rubKfFrm0^X8rM_TIMS5o^GG| z%gf98T&m)R6I*}S*jP`9OH08r2}J_*5b#P=wk2_rVH%QVglH>V86q6q`enx81x`^s zQ^FrM!^<*DQ~}5UD_{@TWk=?Dxyx&EQ`Xext}ejD?dT4Y25sGuyI28^?br@Za)fm`eQ*SyPkMe3H z(&=iq3n)rrd5<_il$*Pbt_r(Nr(Tz5lhVn_WOjRddmFf&^d_^L$z(FQo!uq_H{;2Z z*?2tY4PYz#_;GwIl_sOJ!SHM_IvLM!KN#$ty?eU4a2a;oPK7>GdPAVa-<4Iw5acRP zpY-sext$6OSt;N!oyDGkRRBh4vHxQoeL^%`jV^%1VFC)m#QVEqO$>Le*ROFq>~s?A zkK!52@~!!&1k%RiR5?m74v9F$54Uph^;+D`Wc;nWLm1F9iOa)B@w>ar)!264Uw+`P z<^0U{)(_{8&>E9jT1vwh8u5+_ro@1)PlhDJG*JR7u`u}8>kK0ijdPkZ0|ZEdL5miQ z(?VF-1{u=b?W$A<3JlhkWQW(CMgxjbhiIBW`TAy4mO;`BR4L%tjv%OxAOkC+y8t~C zn%!NTAvoxvA}ZB!NsxJga2zMYCP-*k1$ZAB)DVGh1r3)f9Ahd4m?V>BJ&#B%t_>YHgSWT0lhJH8xt&cWBg}xf4Bm$LZwAA`^murE{bn-J zofAY24SK!7Xz&1Y;Df!D6)b?Yl^D$%z_X=xVg!$5sFg64tE{dd-ZPeR;WMl(HUtY1 zR2^&n$?9}I%|FdM{$dEU9)nKWK$A!D3bDoE;^pO5t(NiU=jVyA^=jU+ta)ZW$Dv>q zYqTshbKf(Vfn;PJ4sSuxOcwyH5X@xaSC@BJ`K_(X$A8#BPQdb7C6_t?$y8fkFJ_jO z0+Fo5XeRQz4CTl)Bu-^$xdZw=B%alv{*VcAWSairINjZ*3bSq#h7jVQPOACsZrARD zmzAAeI^i{WrqyoNplzgj5*-Z7P05a4f;1!qQf1AXK;*Qlya>RHMp3DZ|nalz=lZB3WI34s}%qHWnhhST$)06s}zkVEzhsUEgQZ+goRw~2k6xyM^ zN^W@}G#!3D8;@etOrCOcDc^;sh^CEDzAz69DvASX5G9f*J2V%dW6i^Go_0Drl}=~< z;GR#c)u8%-UV!ofDVi8zeK((<&*zWe&TiT^ z5fD0SgA>HNO$1#P@K)CmGFmFt7sx+y>FRZy0z#d>x+t%sXE{x+<56Wo0bxMYyr81o z6vi>^NEEZ8Dt3mWN!1M7Zg2t-B#Fl`BM6+Xw@p<((l~*XiBMN}ksvdk+}_enU|g#H zIO}0N*c(h?C>zXzyrV9#pC1A$B!q^9uBep(UJgEBr(P;#TPkO<@DmQ{&&1eN7v!XVca(YHJ= zP<@#swS~61-x8X(DsUl)6ZF4V^*6uiA#H9}n$3pCw`aXKR6cr4#TM?_-ak5}*`zl( z8=QPRnT&xCot$95yPn)WJUbi0Z1C4N4+lHBoGa#B5rFR^b`Dq!QdyT{%kjrwu2Y&Y zbw4@8mv>Kd zDI^YwqJQer@=$v6`?Nwfb9#!e`S|&E{BkS4{&?$rtLFQu;^ASU_QU(j;zoRF$uqNs zBPDAdndVV88;Pca$nskBhtgbMgGRjaES!G=2Y^iiK8*L02!P%2Jgxyv+qPMb z5MAYvEG5Z!=jAS|wA(GP2r`xS2`p0=2+LB*csU8zKnXbl)I?761u{|gXByWN9-Y+iEyEv*0ieAvXsjd9k|Vk+fVd=_#|aG{QdWs;as76K7kH`PZ^&$$ z1kw_mWxG1pbvVW_nWkQv4Tn@CIJmuqh3vQk6CsG>i{bEiT)G_(U^sW(&fu6v4otuy zp8a@pdvh}w!D;}x`7s=6u87!)PU`r$GEHUNjF`&THfoRl_N!EG=P#8EVt;TQuqdCD zS*XfiB@(%{JoF=RdJ51qO3a6r)kz#CI^tEwx-2f{MeA{;d4{Ax{3Ea|9sViE(j=6J!}%<f%#>3&s5UFzuZ~4W=2ygrGXn69mJ|0aMx3<9UDXCu;$zUQDAt7r~)1tuVG;0 zd0oY|GgK~>U`H&K;7NmNFi1m%0>R{>g$92G0>JhVZR^!_Zh7O}gK2WBXzIzw8Sf8z>W9ZQ8BAXG@B}8wQKy$*zt7`reb< z*=#ZxOy>it9-mG}!{KB+_R8bI*|amAy2IZOpe}_0c{VzE<2WzQ9zHu842P57{`T2# zkWDOR^0DRN&4+5WdM46f-dYX%yi}@^!JLp;U~#dPnW&ejpi)qC7&01fr2N?EnjvlcXFfmo&*> z)dr_YjA^p0h8GzGD>S}NAv@x9hTXMsL<2-} zaIbK{1IhJ3Ac&zL1T`v^qz0%}Ary?z*s7q!N}5TF3?%v&W3gQoFLmg$C)ZIJuPbLqa z^bkr+W2;BU6zO%3PfF=(wOYL$(u7(+zi{-4G=BoJq30XV|KmTt{6p1peZf8C}@7%Kn8KA?!hrt>F=X>>Ui|kSt#TOml?{x4LGPFYTw6pHJ ziNoAVSbTkV2Pg97VLVq1i|+gP`1v9&Jc|IiKt{im7>L3n3w2;Ln+}B#5|EBWBIQuI z4vMXf&~HvMpv+_76$2i_Dxi!Fs5T`@5CkgzVKm@{jfO3>j#{d2%cerI! z9OGef(O7s#NTb2>L_+@&i+DMnXp$*Op4n)$TMbTVaqV^kUX*s9;aSgQh$NGG$+;#o zSjr}}iefk%k9)mY?{-F=#gob4>}+&#@$%(Q-;@HS>+bak?z8d5$z*ScjKa~yM|_~W z@YMH@uXlBUHLKAl$J4#Dn4hPb5ZJ~LG#_8zfN1;qm(Lek;)4uz^gOE7)_+|CHNTQ8 zp3f`yd_g$e5j*owi?lkcvj{83wJ#BdvJ6sV3(b|-HCz#2h8_Z^AN|bX`@48f^b?1d z@893ig2N0J%KN+bcbAt-OF<>8M5CLV@CXKIXmB)(hycXKMzWD8!rsb+Ar1VI5u)-2 zLwHtZSlq^WJO=|-QC8v^LbyiT&HyWkkWPpMS9RE~3f^g!Gix2ok6Ng;zd~EW%G#xOj)+%e$qeX!dOZ z#&9K?%~lIzgnY7(S{;GuFLUDynjfUA^~5(`_d1hF_vYe88~Ae_X?s2n!1 zG}xwUXg15*2o{H0OXWQSZZVsaWc}M+!g7)z(`un)88!hVQY6bV2`0+{s8b^MB^E*2 zVgploAQbW>t{h5AlIJnJStz`HTP?hOYhd^HfK>6agH{TZ+|WitL29?<2HTPZVsMNm zG}!*pzR>R*1|zVoexF7jqxaC^9fnhF_)W%>5~Gz*uI2IdI2jrbrcH z7+s8eC*|3s?3^5rhU3}G!H}xQzzq#(F!{x3GF~(re+0AHwWZ$<*8EdyBf-0ju7XVE zt9U%Ww)`d9pKAH#wS(HhX(olDi38Y=YBlOM#zkJ7=XNrS%V;MPUT_CkNN(|UC){zx zVlf<^FXsO+B8bkP+#9R;fSw_rJKlSj@QJUnb(=^Td`VCV(ed^R2tBtGKm= z1+ZC-Mv)H?Nh@#P{`^)^3PCi919`V8J{K2!_~%ATTPh=$(akI2b`# zEfxSif@v7aK~W_`nxU0TWxV%`ta=oZndrIXHK`AL7cV)wX<2F`k$FLAEcgQz)zw5` z`wh~T3Gw=kMw@G~s!biOyviFKr#2ZWP(~F>J(Min-rkf;&YL%HW|PTnc{VHGJ{k9V zNSk{y8_#+tld~bF{IkJmxU%vf_8>Oh>kZDRsGLp>qvO#vT>#zYH-qJ6JbY9Y(MOr_ zb6>=3`TW`+4zL5{m;D2r0lCL?>!%X{JpwYR3@-gCEC9%ce)WLhEOCp)`M+A7PjeX0 zq5O6`pSGw5t=Q=#tc)MOx;jUlMSMMn1!En)zq_izWn{Tw*wief*B%zF@X}KC=bwMB zD$#;cC~RgG^XSM_kntahAT9(gGAMlrB!yBrDYG7NbjFmB5P(e=$gD;)gir~~argOw zjRt6Z$@5HxD=fGpN%Lf#$W0j@Uln8>q@Z^}$zTvo)E=h+uhI-f)9B4W+VA(71zrSyfQB>!G+MRP22GEUj5Z61$`&}m z;iX2q)i;kcnUQS{*+-IB@C4S;3HWL$IY~xlBQy1bV#Yquu~<<0~uE(X$`VW@m$GWv4QrTf#LS|L*R$e?6x50$c`h@Aut|izlAX z`x}2)6af0C2M4~Ndz`@RPbUKEGfd?~^qFKts7Gi-eTSyhBRv2h((A3eqEFN9bMHR6 zt{A6rHQ|m}wBTD$yng@w?tQ#?cX&A8scj|J6AA0^@^0?ZN(3=ee1CUdoEMjts+*ge zZ#R#s)y>T;oB>f~vw-dZ=t4rtU?`Xl1tU<4m+FF=)L2z!KoW6`MhNdQ0;d5m6gbUb zRE=fZI$(L8lLe>S6ddq6EYs8-PGcF4XZZ#=1C=2%tR}1kPZ;hR!APgbKF6C3r&TqB_4 zF@hv$E7^2(JRaZPKsk7}H@>*OoeiJvRCZQYh9|SxaCH3<%@rR%{`G>U6>a+zBwh_? zTxj)b+xfg$$>%ebyuWsUkJ@@FmCv90J{k}6>jyQO8jhO)9($&S3xN-ji0EfJolNTK z+!Z?zefpgR1T^n-&}7tcfdRUSyZ7%eUlnVK%c5mfeD~Bs6!q5C`DL+#z+2yX4N9T7 zw6s|*M5BeHqs>CL8byOtHkwut8adi z1S6ksK1U*iY`D3@r$R49mNjynNbOC<9M7ea{0X_^)M>=MIEyo2~c zbQOBwHaWsJ1coquwxwyF!59X^wfhY)oQx*Oj0XM?!@%xt(-}`DC$m{O7zotKjIM?{ z2`EaWK7Ik6FzqKC^@fx3>|`_>Pi~*Rc!B;ZC`XSkK7K?B)%eMiA=MRKpxpZ6f-V3N zv0}a}ih0Zhsck=(%j9E^DF*y}Ex$|`fWMZ{uh&jvFJm-M1~a~&`rCE?6l(ynV|dCt z|NiHW4}Dpfx&-O*V9mu$rsH{XQ#jjtUyrlZaB6OXYH@1T$(0PdgC0 ziQIhtoQ^1gDAlT<(d53?C=#gC(;%6|s}Ga<0_!&nk6Cn+0w^MmEine+G^m?p00aU> z3D|xc)mII!g&o47!h(jKJwm<_!!tbT>O3nqn_co0r|-g0j<~t?T+YW{Ky9jF z$WLBb3!u=Yj-bvWUO0stL9yssq80X!KmBldnMj4L`T6Vb-ybHdMD6bNU3?)w04F`q zoG&fC-Aos%N*0#^C7rESHlg1iJIPSR9# zI`BLP{QzTd#%8NQ2uIpzl{JhmZTdm!1k511?C7OBO61$5(NHyBkt@M?1&?7E&(utBQBm7&^*PQn49#o+ zG&WoNtYk2TMCnOZ;-C{#1y#mpG>|`G+Op_p zQuj(vT;KrLg;U{FW@jaq6H^D6`SU6NbQ>13gWB_yPnBkkS&T-l7$?%!wxa*-&qgOV7?XgRoM@Dc<6g$Btj2SA8tSptBT(@d$s zsYK%1E!CDu0|L+8rrvD|kns?MH0uFKhXk86)CL2n28~3aBq^0jjH4Q00ZM@&!sU@J zkG`p>63Ip*=`65H6j4S3)Ju%{lmUkgC{I&7umrq@Y`aE_XFOA4`u)DfORavZeI!X9 z!vGzUIGGc=Hc@rKFj&HBvaaKjfGolmX|)BF0^X`18HyPS!W`WexWJV=u3v;I_-%Fb?c2?0 z_3hiu&0sK1F`-B#5-k*977x*&=VUS&$!0?!Z5a;jF#;#cjI480_wF^non8fA&Azb6@*_F3EZ*I1flkDd5=HA(!rHo|UuM1tE5ae*TXUQQzyS(xtJQ+J ziNC*1N0iO9vYE|hmF(MUFr);_p&&>*oB?HIh6KO|^D3%?35&CnV-eKk8D7AM;CYx@ zNlON`kYO@JwHb+U{kF=g2$9zHdPLbY1V?HU{9`amPScSE#B-Db0VAjcky95+r$5tf zkS)q+}|lrx_jxM1Yetqi;y81nvo{ zK*^9Kwk;WLNdT5@W;Kapyd%%hyauc)LZfl?%P*UftQ~2LAaQbo4GDIeCd+zu*2=SU2X!z_l=#+v^t^h07Nlj&IZwj>v^Bv?Q0(h}Zx zMNy8j)uZZLy!u%s5=|GXZxtj46$+7bq+TioL*)npWJ}4i!AmB~GqM({mm?71;3SY( zO^}no3QbmaO7�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

      DW^tSQVue9qT|Vo`C4u)3`* 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 literal 0 HcmV?d00001 diff --git a/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift b/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift index 231356181b..35537c5c1a 100644 --- a/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift +++ b/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift @@ -88,11 +88,6 @@ struct FileEntry: TimelineEntry { struct EntePeopleWidgetEntryView: View { var entry: Provider.Entry - let defaultBase64Image = - "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" - let defaultBase64Preview = - "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" - let data = UserDefaults.init(suiteName: widgetGroupId) var body: some View { @@ -135,11 +130,7 @@ struct EntePeopleWidgetEntryView: View { alignment: .bottomLeading ) } else if entry.index == -2 { - if let data = Data( - base64Encoded: defaultBase64Preview - ), - let uiImage = UIImage(data: data) - { + if let uiImage = UIImage(named: "PeopleWidgetPreview") { Image(uiImage: uiImage) .resizable() .backwardWidgetFullColorRenderingMode() @@ -176,10 +167,7 @@ struct EntePeopleWidgetEntryView: View { alignment: .bottomLeading ) } - } else if let data = Data( - base64Encoded: defaultBase64Image), - let uiImage = UIImage(data: data) - { + } else if let uiImage = UIImage(named: "PeopleWidgetDefault") { VStack(spacing: 8) { Spacer() Image(uiImage: uiImage) diff --git a/mobile/ios/Runner.xcodeproj/project.pbxproj b/mobile/ios/Runner.xcodeproj/project.pbxproj index caaa39afbc..39f506f7a4 100644 --- a/mobile/ios/Runner.xcodeproj/project.pbxproj +++ b/mobile/ios/Runner.xcodeproj/project.pbxproj @@ -25,7 +25,7 @@ CEE6BE702D7AE7FD00E4048B /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DACD83C2B755B0600BA9516 /* WidgetKit.framework */; }; CEE6BE712D7AE7FD00E4048B /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DACD83E2B755B0600BA9516 /* SwiftUI.framework */; }; CEE6BE7C2D7AE7FE00E4048B /* EnteMemoryWidgetExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = CEE6BE6F2D7AE7FD00E4048B /* EnteMemoryWidgetExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - DA6BE5E826B3BC8600656280 /* BuildFile in Resources */ = {isa = PBXBuildFile; }; + DA6BE5E826B3BC8600656280 /* (null) in Resources */ = {isa = PBXBuildFile; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -112,21 +112,21 @@ /* End PBXFileReference section */ /* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ - CEE166342DD5E7830012CF61 /* Exceptions for "EnteAlbumWidget" folder in "EnteAlbumWidgetExtension" target */ = { + CEE166342DD5E7830012CF61 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { isa = PBXFileSystemSynchronizedBuildFileExceptionSet; membershipExceptions = ( Info.plist, ); target = CEE166222DD5E7820012CF61 /* EnteAlbumWidgetExtension */; }; - CEE1668C2DD5F6F30012CF61 /* Exceptions for "EntePeopleWidget" folder in "EntePeopleWidgetExtension" target */ = { + CEE1668C2DD5F6F30012CF61 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { isa = PBXFileSystemSynchronizedBuildFileExceptionSet; membershipExceptions = ( Info.plist, ); target = CEE1667A2DD5F6F20012CF61 /* EntePeopleWidgetExtension */; }; - CEE6BE802D7AE7FE00E4048B /* Exceptions for "EnteMemoryWidget" folder in "EnteMemoryWidgetExtension" target */ = { + CEE6BE802D7AE7FE00E4048B /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { isa = PBXFileSystemSynchronizedBuildFileExceptionSet; membershipExceptions = ( Info.plist, @@ -136,42 +136,9 @@ /* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ /* Begin PBXFileSystemSynchronizedRootGroup section */ - CEE166262DD5E7820012CF61 /* EnteAlbumWidget */ = { - isa = PBXFileSystemSynchronizedRootGroup; - exceptions = ( - CEE166342DD5E7830012CF61 /* Exceptions for "EnteAlbumWidget" folder in "EnteAlbumWidgetExtension" target */, - ); - explicitFileTypes = { - }; - explicitFolders = ( - ); - path = EnteAlbumWidget; - sourceTree = ""; - }; - CEE1667E2DD5F6F20012CF61 /* EntePeopleWidget */ = { - isa = PBXFileSystemSynchronizedRootGroup; - exceptions = ( - CEE1668C2DD5F6F30012CF61 /* Exceptions for "EntePeopleWidget" folder in "EntePeopleWidgetExtension" target */, - ); - explicitFileTypes = { - }; - explicitFolders = ( - ); - path = EntePeopleWidget; - sourceTree = ""; - }; - CEE6BE722D7AE7FD00E4048B /* EnteMemoryWidget */ = { - isa = PBXFileSystemSynchronizedRootGroup; - exceptions = ( - CEE6BE802D7AE7FE00E4048B /* Exceptions for "EnteMemoryWidget" folder in "EnteMemoryWidgetExtension" target */, - ); - explicitFileTypes = { - }; - explicitFolders = ( - ); - path = EnteMemoryWidget; - sourceTree = ""; - }; + CEE166262DD5E7820012CF61 /* EnteAlbumWidget */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (CEE166342DD5E7830012CF61 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = EnteAlbumWidget; sourceTree = ""; }; + CEE1667E2DD5F6F20012CF61 /* EntePeopleWidget */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (CEE1668C2DD5F6F30012CF61 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = EntePeopleWidget; sourceTree = ""; }; + CEE6BE722D7AE7FD00E4048B /* EnteMemoryWidget */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (CEE6BE802D7AE7FE00E4048B /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = EnteMemoryWidget; sourceTree = ""; }; /* End PBXFileSystemSynchronizedRootGroup section */ /* Begin PBXFrameworksBuildPhase section */ @@ -447,7 +414,7 @@ 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, - DA6BE5E826B3BC8600656280 /* BuildFile in Resources */, + DA6BE5E826B3BC8600656280 /* (null) in Resources */, 277218A0270F596900FFE3CC /* GoogleService-Info.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; From f4167be4b4d234cde0ca1d2f4eff7b12d0cd73c6 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 4 Jun 2025 17:42:46 +0530 Subject: [PATCH 183/316] fix: update people changed debouncer to 1500 --- mobile/lib/app.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/lib/app.dart b/mobile/lib/app.dart index 786107b047..798f5e4ba9 100644 --- a/mobile/lib/app.dart +++ b/mobile/lib/app.dart @@ -74,7 +74,7 @@ class _EnteAppState extends State with WidgetsBindingObserver { await MemoryHomeWidgetService.instance.memoryChanged(); }, ); - _changeCallbackDebouncer = Debouncer(const Duration(milliseconds: 500)); + _changeCallbackDebouncer = Debouncer(const Duration(milliseconds: 1500)); _peopleChangedSubscription = Bus.instance.on().listen( (event) async { _changeCallbackDebouncer.run( From 132a7862fe22edb7085ccc651316c3772cdef681 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 4 Jun 2025 17:50:21 +0530 Subject: [PATCH 184/316] fix: clear directory on log out --- mobile/lib/services/home_widget_service.dart | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/mobile/lib/services/home_widget_service.dart b/mobile/lib/services/home_widget_service.dart index aac3853aad..ce23850e36 100644 --- a/mobile/lib/services/home_widget_service.dart +++ b/mobile/lib/services/home_widget_service.dart @@ -218,6 +218,17 @@ class HomeWidgetService { PeopleHomeWidgetService.instance.clearWidget(), AlbumHomeWidgetService.instance.clearWidget(), ]); + + try { + final String widgetParent = await _getWidgetStorageDirectory(); + final String widgetPath = '$widgetParent/$WIDGET_DIRECTORY'; + final dir = Directory(widgetPath); + + await dir.delete(recursive: true); + _logger.info("Widget directory cleared successfully"); + } catch (e) { + _logger.severe("Failed to clear widget directory", e); + } } /// Handle app launch from a widget From ce591e62679a120880478e9eff1f6276013edec9 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Wed, 4 Jun 2025 18:11:28 +0530 Subject: [PATCH 185/316] Conv --- .../accounts/components/VerifyMasterPasswordForm.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/web/packages/accounts/components/VerifyMasterPasswordForm.tsx b/web/packages/accounts/components/VerifyMasterPasswordForm.tsx index 19f290ede1..cbd474aa01 100644 --- a/web/packages/accounts/components/VerifyMasterPasswordForm.tsx +++ b/web/packages/accounts/components/VerifyMasterPasswordForm.tsx @@ -171,9 +171,11 @@ export const VerifyMasterPasswordForm: React.FC< let key: string; try { - key = await cryptoWorker.decryptB64( - keyAttributes.encryptedKey, - keyAttributes.keyDecryptionNonce, + key = await cryptoWorker.decryptBoxB64( + { + encryptedData: keyAttributes.encryptedKey, + nonce: keyAttributes.keyDecryptionNonce, + }, kek, ); } catch (e) { From 5d3f431ee0a329ef57520d4e3b5c4ee37e17353a Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Wed, 4 Jun 2025 18:20:51 +0530 Subject: [PATCH 186/316] Doc --- web/packages/shared/user/types.ts | 69 +++++++++++++++++++++++++++++-- 1 file changed, 66 insertions(+), 3 deletions(-) diff --git a/web/packages/shared/user/types.ts b/web/packages/shared/user/types.ts index 86b1c1c261..cf0d124665 100644 --- a/web/packages/shared/user/types.ts +++ b/web/packages/shared/user/types.ts @@ -2,19 +2,82 @@ * A structure containing the key related attributes for a user. */ export interface KeyAttributes { - kekSalt: string; + /** + * The user's master key encrypted with the key encryption key. + * + * [Note: Key encryption key] + * + * The user's master key is encrypted with a "key encryption key" (lovingly + * called a "kek" sometimes). + * + * The kek itself is derived from the user's passphrase. + * + * 1. User enters passphrase on new device. + * + * 2. Client derives kek from this passphrase (using the {@link kekSalt}, + * {@link opsLimit} and {@link memLimit} as parameters for the + * derivation). + * + * 3. Client use kek to decrypt the master key from {@link encryptedKey} and + * {@link keyDecryptionNonce}. + */ encryptedKey: string; + /** + * The nonce used during the encryption of the master key. + * + * @see {@link encryptedKey}. + */ keyDecryptionNonce: string; + /** + * The salt used during the derivation of the kek. + * + * See: [Note: Key encryption key]. + */ + kekSalt: string; + /** + * The operation limit used during the derivation of the kek. + * + * The {@link opsLimit} and {@link memLimit} are complementary parameters + * that define the amount of work done by the key derivation function. See + * the {@link deriveKey}, {@link deriveSensitiveKey} and + * {@link deriveInteractiveKey} functions for more detail about them. + * + * See: [Note: Key encryption key]. + */ opsLimit: number; + /** + * The memory limit used during the derivation of the kek. + * + * See {@link opsLimit} for more details. + */ memLimit: number; publicKey: string; encryptedSecretKey: string; secretKeyDecryptionNonce: string; - /** Doesn't change after being initially created. */ + /** + * The user's master key after being encrypted with their recovery key. + * + * This allows the user to recover their master key if they forget their + * passphrase but still have their recovery key. + * + * Note: This value doesn't change after being initially created. + */ masterKeyEncryptedWithRecoveryKey?: string; + /** + * The nonce used during the encryption of + * {@link masterKeyEncryptedWithRecoveryKey}. + */ masterKeyDecryptionNonce?: string; - /** Doesn't change after being initially created. */ + /** + * The user's recovery key after being encrypted with their master key. + * + * Note: This value doesn't change after being initially created. + */ recoveryKeyEncryptedWithMasterKey?: string; + /** + * The nonce used during the encryption of + * {@link recoveryKeyEncryptedWithMasterKey}. + */ recoveryKeyDecryptionNonce?: string; } From 8441aafe819db98da60667af95c17b3ab7b78dfb Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Wed, 4 Jun 2025 18:26:53 +0530 Subject: [PATCH 187/316] Inline --- web/packages/accounts/pages/change-password.tsx | 4 ++-- web/packages/shared/user/types.ts | 5 ----- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/web/packages/accounts/pages/change-password.tsx b/web/packages/accounts/pages/change-password.tsx index c39c0daa2f..4be2e58531 100644 --- a/web/packages/accounts/pages/change-password.tsx +++ b/web/packages/accounts/pages/change-password.tsx @@ -28,7 +28,7 @@ import { } from "ente-shared/crypto/helpers"; import { getData, setData } from "ente-shared/storage/localStorage"; import { getActualKey } from "ente-shared/user"; -import type { KEK, KeyAttributes, User } from "ente-shared/user/types"; +import type { KeyAttributes, User } from "ente-shared/user/types"; import { t } from "i18next"; import { useRouter } from "next/router"; import { useEffect, useState } from "react"; @@ -58,7 +58,7 @@ const Page: React.FC = () => { const key = await getActualKey(); const keyAttributes: KeyAttributes = getData("keyAttributes"); const kekSalt = await cryptoWorker.generateSaltToDeriveKey(); - let kek: KEK; + let kek: { key: string; opsLimit: number; memLimit: number }; try { kek = await cryptoWorker.deriveSensitiveKey(passphrase, kekSalt); } catch { diff --git a/web/packages/shared/user/types.ts b/web/packages/shared/user/types.ts index cf0d124665..ff684f00ec 100644 --- a/web/packages/shared/user/types.ts +++ b/web/packages/shared/user/types.ts @@ -90,8 +90,3 @@ export interface User { twoFactorSessionID: string; } -export interface KEK { - key: string; - opsLimit: number; - memLimit: number; -} From 3dbc336687825080bad67d5e497904bbd5171745 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Wed, 4 Jun 2025 18:36:49 +0530 Subject: [PATCH 188/316] Doc --- web/packages/shared/user/types.ts | 41 +++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/web/packages/shared/user/types.ts b/web/packages/shared/user/types.ts index ff684f00ec..c0b665a935 100644 --- a/web/packages/shared/user/types.ts +++ b/web/packages/shared/user/types.ts @@ -1,10 +1,21 @@ /** - * A structure containing the key related attributes for a user. + * The user's various encrypted keys and their related attributes. + * + * - Attributes to derive the KEK, the (master) key encryption key. + * - Encrypted master key (with KEK) + * - Encrypted master key (with recovery key) + * - Encrypted recovery key (with master key). + * - Public key and encrypted private key (with master key). + * + * The various "key" attributes are base64 encoded representations of the + * underlying binary data. */ export interface KeyAttributes { /** * The user's master key encrypted with the key encryption key. * + * Base 64 encoded. + * * [Note: Key encryption key] * * The user's master key is encrypted with a "key encryption key" (lovingly @@ -25,12 +36,16 @@ export interface KeyAttributes { /** * The nonce used during the encryption of the master key. * + * Base 64 encoded. + * * @see {@link encryptedKey}. */ keyDecryptionNonce: string; /** * The salt used during the derivation of the kek. * + * Base 64 encoded. + * * See: [Note: Key encryption key]. */ kekSalt: string; @@ -51,12 +66,29 @@ export interface KeyAttributes { * See {@link opsLimit} for more details. */ memLimit: number; + /** + * The user's public key (part of their public-key keypair, the other half + * being the {@link encryptedSecretKey}). + * + * Base 64 encoded. + */ publicKey: string; + /** + * The user's private key (part of their public-key keypair, the other half + * being the {@link publicKey}) encrypted with their master key. + * + * Base 64 encoded. + */ encryptedSecretKey: string; + /** + * The nonce used during the encryption of {@link encryptedSecretKey}. + */ secretKeyDecryptionNonce: string; /** * The user's master key after being encrypted with their recovery key. * + * Base 64 encoded. + * * This allows the user to recover their master key if they forget their * passphrase but still have their recovery key. * @@ -66,17 +98,23 @@ export interface KeyAttributes { /** * The nonce used during the encryption of * {@link masterKeyEncryptedWithRecoveryKey}. + * + * Base 64 encoded. */ masterKeyDecryptionNonce?: string; /** * The user's recovery key after being encrypted with their master key. * + * Base 64 encoded. + * * Note: This value doesn't change after being initially created. */ recoveryKeyEncryptedWithMasterKey?: string; /** * The nonce used during the encryption of * {@link recoveryKeyEncryptedWithMasterKey}. + * + * Base 64 encoded. */ recoveryKeyDecryptionNonce?: string; } @@ -89,4 +127,3 @@ export interface User { isTwoFactorEnabled: boolean; twoFactorSessionID: string; } - From e6707d9fcbdb5d925319f733b263724286006022 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Wed, 4 Jun 2025 18:40:25 +0530 Subject: [PATCH 189/316] Move --- web/apps/auth/src/pages/_app.tsx | 2 +- .../src/components/AuthenticateUser.tsx | 2 +- web/apps/photos/src/pages/_app.tsx | 2 +- .../photos/src/services/collectionService.ts | 2 +- web/apps/photos/src/types/gallery/index.ts | 2 +- web/apps/photos/src/utils/collection.ts | 2 +- web/apps/photos/src/utils/file/index.ts | 2 +- .../components/VerifyMasterPasswordForm.tsx | 2 +- .../accounts/pages/change-password.tsx | 7 +- web/packages/accounts/pages/credentials.tsx | 2 +- web/packages/accounts/pages/generate.tsx | 2 +- web/packages/accounts/pages/recover.tsx | 2 +- .../accounts/pages/two-factor/verify.tsx | 2 +- web/packages/accounts/pages/verify.tsx | 2 +- .../accounts/services/recovery-key.ts | 2 +- web/packages/accounts/services/session.ts | 2 +- web/packages/accounts/services/srp.ts | 2 +- web/packages/accounts/services/user.ts | 179 +++++++++++++++--- .../new/photos/components/gallery/helpers.ts | 2 +- .../new/photos/components/gallery/reducer.ts | 2 +- .../new/photos/services/collection.ts | 2 +- .../new/photos/services/export-migration.ts | 2 +- web/packages/shared/crypto/helpers.ts | 2 +- web/packages/shared/user/types.ts | 129 ------------- 24 files changed, 180 insertions(+), 177 deletions(-) delete mode 100644 web/packages/shared/user/types.ts diff --git a/web/apps/auth/src/pages/_app.tsx b/web/apps/auth/src/pages/_app.tsx index c65139559e..9aada5ae8a 100644 --- a/web/apps/auth/src/pages/_app.tsx +++ b/web/apps/auth/src/pages/_app.tsx @@ -2,6 +2,7 @@ import "@fontsource-variable/inter"; import { CssBaseline } from "@mui/material"; import { ThemeProvider } from "@mui/material/styles"; import { accountLogout } from "ente-accounts/services/logout"; +import type { User } from "ente-accounts/services/user"; import { clientPackageName, staticAppTitle } from "ente-base/app"; import { CustomHead } from "ente-base/components/Head"; import { @@ -20,7 +21,6 @@ import { BaseContext, deriveBaseContext } from "ente-base/context"; import { logStartupBanner } from "ente-base/log-web"; import HTTPService from "ente-shared/network/HTTPService"; import { getData } from "ente-shared/storage/localStorage"; -import type { User } from "ente-shared/user/types"; import { t } from "i18next"; import type { AppProps } from "next/app"; import React, { useCallback, useEffect, useMemo } from "react"; diff --git a/web/apps/photos/src/components/AuthenticateUser.tsx b/web/apps/photos/src/components/AuthenticateUser.tsx index 6ecc64af71..83f45f42b7 100644 --- a/web/apps/photos/src/components/AuthenticateUser.tsx +++ b/web/apps/photos/src/components/AuthenticateUser.tsx @@ -1,5 +1,6 @@ import { VerifyMasterPasswordForm } from "ente-accounts/components/VerifyMasterPasswordForm"; import { checkSessionValidity } from "ente-accounts/services/session"; +import type { KeyAttributes, User } from "ente-accounts/services/user"; import { TitledMiniDialog, type MiniDialogAttributes, @@ -8,7 +9,6 @@ import type { ModalVisibilityProps } from "ente-base/components/utils/modal"; import { useBaseContext } from "ente-base/context"; import log from "ente-base/log"; import { getData } from "ente-shared/storage/localStorage"; -import type { KeyAttributes, User } from "ente-shared/user/types"; import { t } from "i18next"; import { useCallback, useEffect, useState } from "react"; diff --git a/web/apps/photos/src/pages/_app.tsx b/web/apps/photos/src/pages/_app.tsx index cdd5849886..5824cb1890 100644 --- a/web/apps/photos/src/pages/_app.tsx +++ b/web/apps/photos/src/pages/_app.tsx @@ -3,6 +3,7 @@ import ArrowForwardIcon from "@mui/icons-material/ArrowForward"; import { CssBaseline, Typography } from "@mui/material"; import { styled, ThemeProvider } from "@mui/material/styles"; import { useNotification } from "components/utils/hooks-app"; +import type { User } from "ente-accounts/services/user"; import { clientPackageName, isDesktop, staticAppTitle } from "ente-base/app"; import { CenteredRow } from "ente-base/components/containers"; import { CustomHead } from "ente-base/components/Head"; @@ -43,7 +44,6 @@ import { getData, isLocalStorageAndIndexedDBMismatch, } from "ente-shared/storage/localStorage"; -import type { User } from "ente-shared/user/types"; import { t } from "i18next"; import type { AppProps } from "next/app"; import { useRouter } from "next/router"; diff --git a/web/apps/photos/src/services/collectionService.ts b/web/apps/photos/src/services/collectionService.ts index 94e60e4613..4633340226 100644 --- a/web/apps/photos/src/services/collectionService.ts +++ b/web/apps/photos/src/services/collectionService.ts @@ -1,3 +1,4 @@ +import type { User } from "ente-accounts/services/user"; import { encryptMetadataJSON, sharedCryptoWorker } from "ente-base/crypto"; import { ensureLocalUser } from "ente-base/local-user"; import log from "ente-base/log"; @@ -43,7 +44,6 @@ import HTTPService from "ente-shared/network/HTTPService"; import { getData } from "ente-shared/storage/localStorage"; import { getToken } from "ente-shared/storage/localStorage/helpers"; import { getActualKey } from "ente-shared/user"; -import type { User } from "ente-shared/user/types"; import { batch } from "ente-utils/array"; import { changeCollectionSubType, diff --git a/web/apps/photos/src/types/gallery/index.ts b/web/apps/photos/src/types/gallery/index.ts index 67371e047d..bb23e2f2d3 100644 --- a/web/apps/photos/src/types/gallery/index.ts +++ b/web/apps/photos/src/types/gallery/index.ts @@ -1,7 +1,7 @@ import { TimeStampListItem } from "components/FileList"; import { FilesDownloadProgressAttributes } from "components/FilesDownloadProgress"; +import type { User } from "ente-accounts/services/user"; import { type SelectionContext } from "ente-new/photos/components/gallery"; -import type { User } from "ente-shared/user/types"; export interface SelectedState { [k: number]: boolean; diff --git a/web/apps/photos/src/utils/collection.ts b/web/apps/photos/src/utils/collection.ts index 7ce407387d..dbacc979e2 100644 --- a/web/apps/photos/src/utils/collection.ts +++ b/web/apps/photos/src/utils/collection.ts @@ -1,3 +1,4 @@ +import type { User } from "ente-accounts/services/user"; import { ensureElectron } from "ente-base/electron"; import { joinPath } from "ente-base/file-name"; import log from "ente-base/log"; @@ -30,7 +31,6 @@ import { } from "ente-new/photos/services/files"; import { safeDirectoryName } from "ente-new/photos/utils/native-fs"; import { getData } from "ente-shared/storage/localStorage"; -import type { User } from "ente-shared/user/types"; import { createAlbum, removeFromCollection, diff --git a/web/apps/photos/src/utils/file/index.ts b/web/apps/photos/src/utils/file/index.ts index 9b5d90257f..a3afa279a3 100644 --- a/web/apps/photos/src/utils/file/index.ts +++ b/web/apps/photos/src/utils/file/index.ts @@ -1,3 +1,4 @@ +import type { User } from "ente-accounts/services/user"; import { joinPath } from "ente-base/file-name"; import log from "ente-base/log"; import { type Electron } from "ente-base/types/ipc"; @@ -21,7 +22,6 @@ import { } from "ente-new/photos/services/collection"; import { safeFileName } from "ente-new/photos/utils/native-fs"; import { getData } from "ente-shared/storage/localStorage"; -import type { User } from "ente-shared/user/types"; import { wait } from "ente-utils/promise"; import { t } from "i18next"; import { diff --git a/web/packages/accounts/components/VerifyMasterPasswordForm.tsx b/web/packages/accounts/components/VerifyMasterPasswordForm.tsx index cbd474aa01..095034e3b5 100644 --- a/web/packages/accounts/components/VerifyMasterPasswordForm.tsx +++ b/web/packages/accounts/components/VerifyMasterPasswordForm.tsx @@ -1,11 +1,11 @@ import { Input, TextField } from "@mui/material"; import type { SRPAttributes } from "ente-accounts/services/srp-remote"; +import type { KeyAttributes, User } from "ente-accounts/services/user"; import { LoadingButton } from "ente-base/components/mui/LoadingButton"; import { ShowHidePasswordInputAdornment } from "ente-base/components/mui/PasswordInputAdornment"; import { sharedCryptoWorker } from "ente-base/crypto"; import log from "ente-base/log"; import { CustomError } from "ente-shared/error"; -import type { KeyAttributes, User } from "ente-shared/user/types"; import { useFormik } from "formik"; import { t } from "i18next"; import { useCallback, useState } from "react"; diff --git a/web/packages/accounts/pages/change-password.tsx b/web/packages/accounts/pages/change-password.tsx index 4be2e58531..f977ba8bdc 100644 --- a/web/packages/accounts/pages/change-password.tsx +++ b/web/packages/accounts/pages/change-password.tsx @@ -18,7 +18,11 @@ import { startSRPSetup, updateSRPAndKeys, } from "ente-accounts/services/srp-remote"; -import type { UpdatedKey } from "ente-accounts/services/user"; +import type { + KeyAttributes, + UpdatedKey, + User, +} from "ente-accounts/services/user"; import { LinkButton } from "ente-base/components/LinkButton"; import { sharedCryptoWorker } from "ente-base/crypto"; import { @@ -28,7 +32,6 @@ import { } from "ente-shared/crypto/helpers"; import { getData, setData } from "ente-shared/storage/localStorage"; import { getActualKey } from "ente-shared/user"; -import type { KeyAttributes, User } from "ente-shared/user/types"; import { t } from "i18next"; import { useRouter } from "next/router"; import { useEffect, useState } from "react"; diff --git a/web/packages/accounts/pages/credentials.tsx b/web/packages/accounts/pages/credentials.tsx index 77f4c1feec..8f95ff9559 100644 --- a/web/packages/accounts/pages/credentials.tsx +++ b/web/packages/accounts/pages/credentials.tsx @@ -28,6 +28,7 @@ import { } from "ente-accounts/services/srp"; import type { SRPAttributes } from "ente-accounts/services/srp-remote"; import { getSRPAttributes } from "ente-accounts/services/srp-remote"; +import type { KeyAttributes, User } from "ente-accounts/services/user"; import { LinkButton } from "ente-base/components/LinkButton"; import { LoadingIndicator } from "ente-base/components/loaders"; import { useBaseContext } from "ente-base/context"; @@ -49,7 +50,6 @@ import { setIsFirstLogin, } from "ente-shared/storage/localStorage/helpers"; import { getKey, removeKey, setKey } from "ente-shared/storage/sessionStorage"; -import type { KeyAttributes, User } from "ente-shared/user/types"; import { t } from "i18next"; import { useRouter } from "next/router"; import { useCallback, useEffect, useState } from "react"; diff --git a/web/packages/accounts/pages/generate.tsx b/web/packages/accounts/pages/generate.tsx index 0f72c562c0..ff3411b449 100644 --- a/web/packages/accounts/pages/generate.tsx +++ b/web/packages/accounts/pages/generate.tsx @@ -12,6 +12,7 @@ import { configureSRP, generateKeyAndSRPAttributes, } from "ente-accounts/services/srp"; +import type { KeyAttributes, User } from "ente-accounts/services/user"; import { putUserKeyAttributes } from "ente-accounts/services/user"; import { LinkButton } from "ente-base/components/LinkButton"; import { LoadingIndicator } from "ente-base/components/loaders"; @@ -27,7 +28,6 @@ import { setJustSignedUp, } from "ente-shared/storage/localStorage/helpers"; import { getKey } from "ente-shared/storage/sessionStorage"; -import type { KeyAttributes, User } from "ente-shared/user/types"; import { t } from "i18next"; import { useRouter } from "next/router"; import { useEffect, useState } from "react"; diff --git a/web/packages/accounts/pages/recover.tsx b/web/packages/accounts/pages/recover.tsx index d5f0f55577..76db2cfcf5 100644 --- a/web/packages/accounts/pages/recover.tsx +++ b/web/packages/accounts/pages/recover.tsx @@ -5,6 +5,7 @@ import { } from "ente-accounts/components/layouts/centered-paper"; import { recoveryKeyB64FromMnemonic } from "ente-accounts/services/recovery-key"; import { appHomeRoute, stashRedirect } from "ente-accounts/services/redirect"; +import type { KeyAttributes, User } from "ente-accounts/services/user"; import { sendOTT } from "ente-accounts/services/user"; import { LinkButton } from "ente-base/components/LinkButton"; import { @@ -20,7 +21,6 @@ import { } from "ente-shared/crypto/helpers"; import { getData, setData } from "ente-shared/storage/localStorage"; import { getKey } from "ente-shared/storage/sessionStorage"; -import type { KeyAttributes, User } from "ente-shared/user/types"; import { t } from "i18next"; import { useRouter } from "next/router"; import { useEffect, useState } from "react"; diff --git a/web/packages/accounts/pages/two-factor/verify.tsx b/web/packages/accounts/pages/two-factor/verify.tsx index 287f987c57..dd3a0ab90b 100644 --- a/web/packages/accounts/pages/two-factor/verify.tsx +++ b/web/packages/accounts/pages/two-factor/verify.tsx @@ -1,10 +1,10 @@ import { Verify2FACodeForm } from "ente-accounts/components/Verify2FACodeForm"; +import type { User } from "ente-accounts/services/user"; import { verifyTwoFactor } from "ente-accounts/services/user"; import { LinkButton } from "ente-base/components/LinkButton"; import { useBaseContext } from "ente-base/context"; import { HTTPError } from "ente-base/http"; import { getData, setData, setLSUser } from "ente-shared/storage/localStorage"; -import type { User } from "ente-shared/user/types"; import { t } from "i18next"; import { useRouter } from "next/router"; import { useEffect, useState } from "react"; diff --git a/web/packages/accounts/pages/verify.tsx b/web/packages/accounts/pages/verify.tsx index 82e7db2f6e..521ddbd95f 100644 --- a/web/packages/accounts/pages/verify.tsx +++ b/web/packages/accounts/pages/verify.tsx @@ -22,6 +22,7 @@ import type { SRPSetupAttributes, } from "ente-accounts/services/srp-remote"; import { getSRPAttributes } from "ente-accounts/services/srp-remote"; +import type { KeyAttributes, User } from "ente-accounts/services/user"; import { putUserKeyAttributes, sendOTT, @@ -44,7 +45,6 @@ import { getLocalReferralSource, setIsFirstLogin, } from "ente-shared/storage/localStorage/helpers"; -import type { KeyAttributes, User } from "ente-shared/user/types"; import { t } from "i18next"; import { useRouter } from "next/router"; import { useEffect, useState } from "react"; diff --git a/web/packages/accounts/services/recovery-key.ts b/web/packages/accounts/services/recovery-key.ts index dcb1011337..8db572d782 100644 --- a/web/packages/accounts/services/recovery-key.ts +++ b/web/packages/accounts/services/recovery-key.ts @@ -1,4 +1,5 @@ import * as bip39 from "bip39"; +import type { KeyAttributes } from "ente-accounts/services/user"; import { decryptBoxB64, fromHex, @@ -7,7 +8,6 @@ import { } from "ente-base/crypto"; import { masterKeyFromSession } from "ente-base/session"; import { getData, setData } from "ente-shared/storage/localStorage"; -import type { KeyAttributes } from "ente-shared/user/types"; import { putUserRecoveryKeyAttributes } from "./user"; // Mobile client library only supports English. diff --git a/web/packages/accounts/services/session.ts b/web/packages/accounts/services/session.ts index 65a8a7e44d..ac6263395d 100644 --- a/web/packages/accounts/services/session.ts +++ b/web/packages/accounts/services/session.ts @@ -1,9 +1,9 @@ +import type { KeyAttributes } from "ente-accounts/services/user"; import { authenticatedRequestHeaders, HTTPError } from "ente-base/http"; import { ensureLocalUser, getAuthToken } from "ente-base/local-user"; import log from "ente-base/log"; import { apiURL } from "ente-base/origins"; import { getData } from "ente-shared/storage/localStorage"; -import type { KeyAttributes } from "ente-shared/user/types"; import { nullToUndefined } from "ente-utils/transform"; import { z } from "zod/v4"; import type { SRPAttributes } from "./srp-remote"; diff --git a/web/packages/accounts/services/srp.ts b/web/packages/accounts/services/srp.ts index 30face4208..1fe485a96a 100644 --- a/web/packages/accounts/services/srp.ts +++ b/web/packages/accounts/services/srp.ts @@ -1,8 +1,8 @@ +import type { KeyAttributes } from "ente-accounts/services/user"; import { sharedCryptoWorker } from "ente-base/crypto"; import log from "ente-base/log"; import { generateLoginSubKey } from "ente-shared/crypto/helpers"; import { getToken } from "ente-shared/storage/localStorage/helpers"; -import type { KeyAttributes } from "ente-shared/user/types"; import { SRP, SrpClient } from "fast-srp-hap"; import { v4 as uuidv4 } from "uuid"; import { diff --git a/web/packages/accounts/services/user.ts b/web/packages/accounts/services/user.ts index 0577996a81..3495979bbc 100644 --- a/web/packages/accounts/services/user.ts +++ b/web/packages/accounts/services/user.ts @@ -6,10 +6,163 @@ import { import { apiURL } from "ente-base/origins"; import HTTPService from "ente-shared/network/HTTPService"; import { getToken } from "ente-shared/storage/localStorage/helpers"; -import type { KeyAttributes } from "ente-shared/user/types"; import { nullToUndefined } from "ente-utils/transform"; import { z } from "zod/v4"; +export interface User { + id: number; + email: string; + token: string; + encryptedToken: string; + isTwoFactorEnabled: boolean; + twoFactorSessionID: string; +} + +/** + * The user's various encrypted keys and their related attributes. + * + * - Attributes to derive the KEK, the (master) key encryption key. + * - Encrypted master key (with KEK) + * - Encrypted master key (with recovery key) + * - Encrypted recovery key (with master key). + * - Public key and encrypted private key (with master key). + * + * The various "key" attributes are base64 encoded representations of the + * underlying binary data. + */ +export interface KeyAttributes { + /** + * The user's master key encrypted with the key encryption key. + * + * Base 64 encoded. + * + * [Note: Key encryption key] + * + * The user's master key is encrypted with a "key encryption key" (lovingly + * called a "kek" sometimes). + * + * The kek itself is derived from the user's passphrase. + * + * 1. User enters passphrase on new device. + * + * 2. Client derives kek from this passphrase (using the {@link kekSalt}, + * {@link opsLimit} and {@link memLimit} as parameters for the + * derivation). + * + * 3. Client use kek to decrypt the master key from {@link encryptedKey} and + * {@link keyDecryptionNonce}. + */ + encryptedKey: string; + /** + * The nonce used during the encryption of the master key. + * + * Base 64 encoded. + * + * @see {@link encryptedKey}. + */ + keyDecryptionNonce: string; + /** + * The salt used during the derivation of the kek. + * + * Base 64 encoded. + * + * See: [Note: Key encryption key]. + */ + kekSalt: string; + /** + * The operation limit used during the derivation of the kek. + * + * The {@link opsLimit} and {@link memLimit} are complementary parameters + * that define the amount of work done by the key derivation function. See + * the {@link deriveKey}, {@link deriveSensitiveKey} and + * {@link deriveInteractiveKey} functions for more detail about them. + * + * See: [Note: Key encryption key]. + */ + opsLimit: number; + /** + * The memory limit used during the derivation of the kek. + * + * See {@link opsLimit} for more details. + */ + memLimit: number; + /** + * The user's public key (part of their public-key keypair, the other half + * being the {@link encryptedSecretKey}). + * + * Base 64 encoded. + */ + publicKey: string; + /** + * The user's private key (part of their public-key keypair, the other half + * being the {@link publicKey}) encrypted with their master key. + * + * Base 64 encoded. + */ + encryptedSecretKey: string; + /** + * The nonce used during the encryption of {@link encryptedSecretKey}. + */ + secretKeyDecryptionNonce: string; + /** + * The user's master key after being encrypted with their recovery key. + * + * Base 64 encoded. + * + * This allows the user to recover their master key if they forget their + * passphrase but still have their recovery key. + * + * Note: This value doesn't change after being initially created. + */ + masterKeyEncryptedWithRecoveryKey?: string; + /** + * The nonce used during the encryption of + * {@link masterKeyEncryptedWithRecoveryKey}. + * + * Base 64 encoded. + */ + masterKeyDecryptionNonce?: string; + /** + * The user's recovery key after being encrypted with their master key. + * + * Base 64 encoded. + * + * Note: This value doesn't change after being initially created. + */ + recoveryKeyEncryptedWithMasterKey?: string; + /** + * The nonce used during the encryption of + * {@link recoveryKeyEncryptedWithMasterKey}. + * + * Base 64 encoded. + */ + recoveryKeyDecryptionNonce?: string; +} + +/** + * Zod schema for {@link KeyAttributes}. + */ +export const RemoteKeyAttributes = z.object({ + kekSalt: z.string(), + encryptedKey: z.string(), + keyDecryptionNonce: z.string(), + publicKey: z.string(), + encryptedSecretKey: z.string(), + secretKeyDecryptionNonce: z.string(), + memLimit: z.number(), + opsLimit: z.number(), + masterKeyEncryptedWithRecoveryKey: z + .string() + .nullish() + .transform(nullToUndefined), + masterKeyDecryptionNonce: z.string().nullish().transform(nullToUndefined), + recoveryKeyEncryptedWithMasterKey: z + .string() + .nullish() + .transform(nullToUndefined), + recoveryKeyDecryptionNonce: z.string().nullish().transform(nullToUndefined), +}); + export interface UserVerificationResponse { id: number; keyAttributes?: KeyAttributes | undefined; @@ -117,30 +270,6 @@ export const verifyEmail = async ( return EmailOrSRPAuthorizationResponse.parse(await res.json()); }; -/** - * Zod schema for {@link KeyAttributes}. - */ -export const RemoteKeyAttributes = z.object({ - kekSalt: z.string(), - encryptedKey: z.string(), - keyDecryptionNonce: z.string(), - publicKey: z.string(), - encryptedSecretKey: z.string(), - secretKeyDecryptionNonce: z.string(), - memLimit: z.number(), - opsLimit: z.number(), - masterKeyEncryptedWithRecoveryKey: z - .string() - .nullish() - .transform(nullToUndefined), - masterKeyDecryptionNonce: z.string().nullish().transform(nullToUndefined), - recoveryKeyEncryptedWithMasterKey: z - .string() - .nullish() - .transform(nullToUndefined), - recoveryKeyDecryptionNonce: z.string().nullish().transform(nullToUndefined), -}); - /** * Zod schema for response from remote on a successful user verification, either * via {@link verifyEmail} or {@link verifySRPSession}. diff --git a/web/packages/new/photos/components/gallery/helpers.ts b/web/packages/new/photos/components/gallery/helpers.ts index 81596bf6ef..226badae81 100644 --- a/web/packages/new/photos/components/gallery/helpers.ts +++ b/web/packages/new/photos/components/gallery/helpers.ts @@ -11,10 +11,10 @@ */ import { getUserRecoveryKeyB64 } from "ente-accounts/services/recovery-key"; +import type { User } from "ente-accounts/services/user"; import log from "ente-base/log"; import type { Collection } from "ente-media/collection"; import type { FamilyData } from "ente-new/photos/services/user-details"; -import type { User } from "ente-shared/user/types"; /** * Ensure that the keys in local storage are not malformed by verifying that the diff --git a/web/packages/new/photos/components/gallery/reducer.ts b/web/packages/new/photos/components/gallery/reducer.ts index c3464c7bf7..80a12f7482 100644 --- a/web/packages/new/photos/components/gallery/reducer.ts +++ b/web/packages/new/photos/components/gallery/reducer.ts @@ -1,3 +1,4 @@ +import type { User } from "ente-accounts/services/user"; import { isArchivedCollection, isPinnedCollection, @@ -10,7 +11,6 @@ import { createCollectionNameByID, isHiddenCollection, } from "ente-new/photos/services/collection"; -import type { User } from "ente-shared/user/types"; import { splitByPredicate } from "ente-utils/array"; import { t } from "i18next"; import React, { useReducer } from "react"; diff --git a/web/packages/new/photos/services/collection.ts b/web/packages/new/photos/services/collection.ts index 25aca079b0..b4d4fbeb1f 100644 --- a/web/packages/new/photos/services/collection.ts +++ b/web/packages/new/photos/services/collection.ts @@ -1,10 +1,10 @@ +import type { User } from "ente-accounts/services/user"; import { encryptBoxB64 } from "ente-base/crypto"; import { authenticatedRequestHeaders, ensureOk } from "ente-base/http"; import { apiURL } from "ente-base/origins"; import { CollectionSubType, type Collection } from "ente-media/collection"; import { type EnteFile } from "ente-media/file"; import { ItemVisibility } from "ente-media/file-metadata"; -import type { User } from "ente-shared/user/types"; import { batch } from "ente-utils/array"; /** diff --git a/web/packages/new/photos/services/export-migration.ts b/web/packages/new/photos/services/export-migration.ts index 2dc6823a64..99fb6630c0 100644 --- a/web/packages/new/photos/services/export-migration.ts +++ b/web/packages/new/photos/services/export-migration.ts @@ -3,6 +3,7 @@ /* eslint-disable @typescript-eslint/ban-ts-comment */ /* eslint-disable @typescript-eslint/no-unsafe-assignment */ /* eslint-disable @typescript-eslint/no-unnecessary-condition */ +import type { User } from "ente-accounts/services/user"; import { ensureElectron } from "ente-base/electron"; import { joinPath, nameAndExtension } from "ente-base/file-name"; import log from "ente-base/log"; @@ -20,7 +21,6 @@ import { sanitizeFilename, } from "ente-new/photos/utils/native-fs"; import { getData } from "ente-shared/storage/localStorage"; -import type { User } from "ente-shared/user/types"; import { wait } from "ente-utils/promise"; import exportService, { getCollectionIDFromFileUID, diff --git a/web/packages/shared/crypto/helpers.ts b/web/packages/shared/crypto/helpers.ts index 7cb9a5a1c8..15b4a631bd 100644 --- a/web/packages/shared/crypto/helpers.ts +++ b/web/packages/shared/crypto/helpers.ts @@ -1,8 +1,8 @@ +import type { KeyAttributes } from "ente-accounts/services/user"; import { sharedCryptoWorker } from "ente-base/crypto"; import { masterKeyFromSession } from "ente-base/session"; import { getData, setData, setLSUser } from "ente-shared/storage/localStorage"; import { type SessionKey, setKey } from "ente-shared/storage/sessionStorage"; -import type { KeyAttributes } from "ente-shared/user/types"; const LOGIN_SUB_KEY_LENGTH = 32; const LOGIN_SUB_KEY_ID = 1; diff --git a/web/packages/shared/user/types.ts b/web/packages/shared/user/types.ts deleted file mode 100644 index c0b665a935..0000000000 --- a/web/packages/shared/user/types.ts +++ /dev/null @@ -1,129 +0,0 @@ -/** - * The user's various encrypted keys and their related attributes. - * - * - Attributes to derive the KEK, the (master) key encryption key. - * - Encrypted master key (with KEK) - * - Encrypted master key (with recovery key) - * - Encrypted recovery key (with master key). - * - Public key and encrypted private key (with master key). - * - * The various "key" attributes are base64 encoded representations of the - * underlying binary data. - */ -export interface KeyAttributes { - /** - * The user's master key encrypted with the key encryption key. - * - * Base 64 encoded. - * - * [Note: Key encryption key] - * - * The user's master key is encrypted with a "key encryption key" (lovingly - * called a "kek" sometimes). - * - * The kek itself is derived from the user's passphrase. - * - * 1. User enters passphrase on new device. - * - * 2. Client derives kek from this passphrase (using the {@link kekSalt}, - * {@link opsLimit} and {@link memLimit} as parameters for the - * derivation). - * - * 3. Client use kek to decrypt the master key from {@link encryptedKey} and - * {@link keyDecryptionNonce}. - */ - encryptedKey: string; - /** - * The nonce used during the encryption of the master key. - * - * Base 64 encoded. - * - * @see {@link encryptedKey}. - */ - keyDecryptionNonce: string; - /** - * The salt used during the derivation of the kek. - * - * Base 64 encoded. - * - * See: [Note: Key encryption key]. - */ - kekSalt: string; - /** - * The operation limit used during the derivation of the kek. - * - * The {@link opsLimit} and {@link memLimit} are complementary parameters - * that define the amount of work done by the key derivation function. See - * the {@link deriveKey}, {@link deriveSensitiveKey} and - * {@link deriveInteractiveKey} functions for more detail about them. - * - * See: [Note: Key encryption key]. - */ - opsLimit: number; - /** - * The memory limit used during the derivation of the kek. - * - * See {@link opsLimit} for more details. - */ - memLimit: number; - /** - * The user's public key (part of their public-key keypair, the other half - * being the {@link encryptedSecretKey}). - * - * Base 64 encoded. - */ - publicKey: string; - /** - * The user's private key (part of their public-key keypair, the other half - * being the {@link publicKey}) encrypted with their master key. - * - * Base 64 encoded. - */ - encryptedSecretKey: string; - /** - * The nonce used during the encryption of {@link encryptedSecretKey}. - */ - secretKeyDecryptionNonce: string; - /** - * The user's master key after being encrypted with their recovery key. - * - * Base 64 encoded. - * - * This allows the user to recover their master key if they forget their - * passphrase but still have their recovery key. - * - * Note: This value doesn't change after being initially created. - */ - masterKeyEncryptedWithRecoveryKey?: string; - /** - * The nonce used during the encryption of - * {@link masterKeyEncryptedWithRecoveryKey}. - * - * Base 64 encoded. - */ - masterKeyDecryptionNonce?: string; - /** - * The user's recovery key after being encrypted with their master key. - * - * Base 64 encoded. - * - * Note: This value doesn't change after being initially created. - */ - recoveryKeyEncryptedWithMasterKey?: string; - /** - * The nonce used during the encryption of - * {@link recoveryKeyEncryptedWithMasterKey}. - * - * Base 64 encoded. - */ - recoveryKeyDecryptionNonce?: string; -} - -export interface User { - id: number; - email: string; - token: string; - encryptedToken: string; - isTwoFactorEnabled: boolean; - twoFactorSessionID: string; -} From 65a892379901acdc73b52a07532e6e41fba62fb6 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Wed, 4 Jun 2025 18:48:12 +0530 Subject: [PATCH 190/316] Conv --- web/apps/cast/src/services/render.ts | 14 ++++++-------- web/packages/media/file.ts | 15 +++++++-------- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/web/apps/cast/src/services/render.ts b/web/apps/cast/src/services/render.ts index 60fc7d5ea2..a99dfaa74d 100644 --- a/web/apps/cast/src/services/render.ts +++ b/web/apps/cast/src/services/render.ts @@ -195,16 +195,14 @@ const decryptEnteFile = async ( pubMagicMetadata, ...restFileProps } = encryptedFile; - const fileKey = await worker.decryptB64( - encryptedKey, - keyDecryptionNonce, + const fileKey = await worker.decryptBoxB64( + { encryptedData: encryptedKey, nonce: keyDecryptionNonce }, collectionKey, ); - const fileMetadata = await worker.decryptMetadataJSON({ - encryptedDataB64: metadata.encryptedData, - decryptionHeaderB64: metadata.decryptionHeader, - keyB64: fileKey, - }); + const fileMetadata = await worker.decryptMetadataJSON_New( + metadata, + fileKey, + ); let fileMagicMetadata: FileMagicMetadata | undefined; let filePubMagicMetadata: FilePublicMagicMetadata | undefined; if (magicMetadata?.data) { diff --git a/web/packages/media/file.ts b/web/packages/media/file.ts index b42f48a6b4..bc6c3bc483 100644 --- a/web/packages/media/file.ts +++ b/web/packages/media/file.ts @@ -321,16 +321,15 @@ export async function decryptFile( pubMagicMetadata, ...restFileProps } = file; - const fileKey = await worker.decryptB64( - encryptedKey, - keyDecryptionNonce, + const fileKey = await worker.decryptBoxB64( + { encryptedData: encryptedKey, nonce: keyDecryptionNonce }, collectionKey, ); - const fileMetadata = await worker.decryptMetadataJSON({ - encryptedDataB64: metadata.encryptedData, - decryptionHeaderB64: metadata.decryptionHeader, - keyB64: fileKey, - }); + const fileMetadata = await worker.decryptMetadataJSON_New( + metadata, + fileKey, + ); + let fileMagicMetadata: FileMagicMetadata; let filePubMagicMetadata: FilePublicMagicMetadata; /* eslint-disable @typescript-eslint/no-unnecessary-condition */ From 506b915f650766cc7bb92ceee29f3cc8b369194f Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Wed, 4 Jun 2025 18:59:08 +0530 Subject: [PATCH 191/316] conv --- web/packages/accounts/pages/credentials.tsx | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/web/packages/accounts/pages/credentials.tsx b/web/packages/accounts/pages/credentials.tsx index 8f95ff9559..6ea11ba5c8 100644 --- a/web/packages/accounts/pages/credentials.tsx +++ b/web/packages/accounts/pages/credentials.tsx @@ -140,14 +140,18 @@ const Page: React.FC = () => { if (kekEncryptedAttributes && keyAttributes) { removeKey("keyEncryptionKey"); const cryptoWorker = await sharedCryptoWorker(); - const kek = await cryptoWorker.decryptB64( - kekEncryptedAttributes.encryptedData, - kekEncryptedAttributes.nonce, + const kek = await cryptoWorker.decryptBoxB64( + { + encryptedData: kekEncryptedAttributes.encryptedData, + nonce: kekEncryptedAttributes.nonce, + }, kekEncryptedAttributes.key, ); - const key = await cryptoWorker.decryptB64( - keyAttributes.encryptedKey, - keyAttributes.keyDecryptionNonce, + const key = await cryptoWorker.decryptBoxB64( + { + encryptedData: keyAttributes.encryptedKey, + nonce: keyAttributes.keyDecryptionNonce, + }, kek, ); void postVerification(key, kek, keyAttributes); From 439dfcab583447376cf7e4434442f9443a948608 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Wed, 4 Jun 2025 19:36:17 +0530 Subject: [PATCH 192/316] One less nit --- web/packages/accounts/services/user.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/web/packages/accounts/services/user.ts b/web/packages/accounts/services/user.ts index 3495979bbc..edf61e1d45 100644 --- a/web/packages/accounts/services/user.ts +++ b/web/packages/accounts/services/user.ts @@ -98,6 +98,13 @@ export interface KeyAttributes { * being the {@link publicKey}) encrypted with their master key. * * Base 64 encoded. + * + * [Note: Public and secret key nomenclature] + * + * The nomenclature for the key pair follows libsodium's conventions + * (https://doc.libsodium.org/public-key_cryptography/authenticated_encryption#key-pair-generation), + * who possibly chose public + secret instead of public + private to avoid + * confusion with shorthand notation (pk). */ encryptedSecretKey: string; /** From e28ee8ca6674c0d388bea509c69d2e7995f01957 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Wed, 4 Jun 2025 20:15:19 +0530 Subject: [PATCH 193/316] [desktop] macOS folder watch EMFILE workaround --- desktop/src/main/services/watch.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/desktop/src/main/services/watch.ts b/desktop/src/main/services/watch.ts index 6f198c513b..4066a91c89 100644 --- a/desktop/src/main/services/watch.ts +++ b/desktop/src/main/services/watch.ts @@ -28,6 +28,13 @@ export const createWatcher = (mainWindow: BrowserWindow) => { // Ask the watcher to wait for a the file size to stabilize before // telling us about a new file. By default, it waits for 2 seconds. awaitWriteFinish: true, + // On macOS we start getting "EMFILE: too many open files" when watching + // large folders. This is a known regression in Chokidar v4: + // https://github.com/paulmillr/chokidar/issues/1385 + // + // The recommended workaround for now is to enable usePolling. Since it + // comes at a performance cost, we only do it where needed (macOS). + ...(process.platform == "darwin" ? { usePolling: true } : {}), }); watcher From aab1450c3f63306804269d9b62aab9f872a6fe81 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Thu, 5 Jun 2025 08:38:59 +0530 Subject: [PATCH 194/316] remove old parameter comment --- mobile/lib/services/notification_service.dart | 3 --- 1 file changed, 3 deletions(-) diff --git a/mobile/lib/services/notification_service.dart b/mobile/lib/services/notification_service.dart index 69802058d2..74efedd00d 100644 --- a/mobile/lib/services/notification_service.dart +++ b/mobile/lib/services/notification_service.dart @@ -236,9 +236,6 @@ class NotificationService { message, scheduledDate, platformChannelSpecs, - // TODO(prateek): check if this is needed, app won't compile with this - // uiLocalNotificationDateInterpretation: - // UILocalNotificationDateInterpretation.wallClockTime, androidScheduleMode: AndroidScheduleMode.inexactAllowWhileIdle, payload: payload, ); From 229d4381818f7e1693ed40b356a0f7b7f70392e6 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Thu, 5 Jun 2025 08:39:17 +0530 Subject: [PATCH 195/316] Remove --- mobile/lib/services/notification_service.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/mobile/lib/services/notification_service.dart b/mobile/lib/services/notification_service.dart index 74efedd00d..23ec9eb12d 100644 --- a/mobile/lib/services/notification_service.dart +++ b/mobile/lib/services/notification_service.dart @@ -229,7 +229,6 @@ class NotificationService { dateTime.minute, dateTime.second, ); - // final tz.TZDateTime scheduledDate = tz.TZDateTime.now(tz.local).add(delay); await _notificationsPlugin.zonedSchedule( id, title, From 544078a40cda24eefbc7793fe1cc36c1fa5dce26 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Thu, 5 Jun 2025 08:45:36 +0530 Subject: [PATCH 196/316] Optional notification message --- mobile/lib/services/memories_cache_service.dart | 3 +-- mobile/lib/services/notification_service.dart | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/mobile/lib/services/memories_cache_service.dart b/mobile/lib/services/memories_cache_service.dart index 839a53cead..6f3534ec4f 100644 --- a/mobile/lib/services/memories_cache_service.dart +++ b/mobile/lib/services/memories_cache_service.dart @@ -308,7 +308,7 @@ class MemoriesCacheService { final s = await LanguageService.s; await NotificationService.instance.scheduleNotification( s.onThisDay, - s.lookBackOnYourMemories, + message: s.lookBackOnYourMemories, id: memory.id.hashCode, channelID: "onThisDay", channelName: s.onThisDay, @@ -376,7 +376,6 @@ class MemoriesCacheService { memory.personName != null ? "Happy birthday to ${memory.personName}! 🎉" : "Happy birthday! 🥳", - // TODO:lau (after mergin main): change `scheduleNotification` api to make message optional // TODO:lau (after mergin main): extract strings id: memory.id.hashCode, channelID: "birthday", diff --git a/mobile/lib/services/notification_service.dart b/mobile/lib/services/notification_service.dart index 23ec9eb12d..c315d3e410 100644 --- a/mobile/lib/services/notification_service.dart +++ b/mobile/lib/services/notification_service.dart @@ -143,8 +143,8 @@ class NotificationService { } Future scheduleNotification( - String title, - String message, { + String title, { + String? message, required int id, String channelID = "io.ente.photos", String channelName = "ente", From cc98ca70d592e5d7e40dcdd47836362390495b0b Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Thu, 5 Jun 2025 08:50:37 +0530 Subject: [PATCH 197/316] Log scheduling --- mobile/lib/services/memories_cache_service.dart | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mobile/lib/services/memories_cache_service.dart b/mobile/lib/services/memories_cache_service.dart index 6f3534ec4f..0492001a76 100644 --- a/mobile/lib/services/memories_cache_service.dart +++ b/mobile/lib/services/memories_cache_service.dart @@ -317,6 +317,9 @@ class MemoriesCacheService { timeoutDurationAndroid: const Duration(hours: 16), ); scheduledDates.add(scheduleTime); + _logger.info( + "Scheduled notification for memory ${memory.id} on date: $scheduleTime", + ); } } @@ -385,6 +388,9 @@ class MemoriesCacheService { timeoutDurationAndroid: const Duration(hours: 17), ); scheduledPersons.add(memory.personID); + _logger.info( + "Scheduled birthday notification for person ${memory.personName} on date: $scheduleTime", + ); } } From 92b3da11987379c047fe29183540bdec3cb8ede4 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 08:30:34 +0530 Subject: [PATCH 198/316] return type consistency 1 --- web/apps/auth/src/services/remote.ts | 4 +- web/apps/cast/src/services/render.ts | 2 +- .../components/VerifyMasterPasswordForm.tsx | 2 +- web/packages/accounts/pages/credentials.tsx | 4 +- web/packages/accounts/pages/recover.tsx | 4 +- .../accounts/pages/two-factor/recover.tsx | 4 +- .../accounts/services/recovery-key.ts | 4 +- web/packages/base/crypto/ente-impl.ts | 13 +++--- web/packages/base/crypto/index.ts | 41 ++++++++++--------- web/packages/base/crypto/libsodium.ts | 39 ++++++++++-------- web/packages/base/crypto/worker.ts | 4 +- web/packages/base/session.ts | 6 +-- web/packages/gallery/services/file-data.ts | 4 +- web/packages/gallery/services/video.ts | 4 +- web/packages/media/file.ts | 2 +- .../new/photos/services/user-entity/index.ts | 8 ++-- web/packages/shared/crypto/helpers.ts | 2 +- 17 files changed, 79 insertions(+), 68 deletions(-) diff --git a/web/apps/auth/src/services/remote.ts b/web/apps/auth/src/services/remote.ts index 21c756ea23..1af10ddb0e 100644 --- a/web/apps/auth/src/services/remote.ts +++ b/web/apps/auth/src/services/remote.ts @@ -1,4 +1,4 @@ -import { decryptBoxB64, decryptMetadataJSON_New } from "ente-base/crypto"; +import { decryptBox, decryptMetadataJSON_New } from "ente-base/crypto"; import { authenticatedRequestHeaders, ensureOk, @@ -265,7 +265,7 @@ const decryptAuthenticatorKey = async ( remote: AuthenticatorEntityKey, masterKey: Uint8Array, ) => - decryptBoxB64( + decryptBox( { encryptedData: remote.encryptedKey, // Remote calls it the header, but it really is the nonce. diff --git a/web/apps/cast/src/services/render.ts b/web/apps/cast/src/services/render.ts index a99dfaa74d..35f5388e8a 100644 --- a/web/apps/cast/src/services/render.ts +++ b/web/apps/cast/src/services/render.ts @@ -195,7 +195,7 @@ const decryptEnteFile = async ( pubMagicMetadata, ...restFileProps } = encryptedFile; - const fileKey = await worker.decryptBoxB64( + const fileKey = await worker.decryptBox( { encryptedData: encryptedKey, nonce: keyDecryptionNonce }, collectionKey, ); diff --git a/web/packages/accounts/components/VerifyMasterPasswordForm.tsx b/web/packages/accounts/components/VerifyMasterPasswordForm.tsx index 095034e3b5..ddbfe612f3 100644 --- a/web/packages/accounts/components/VerifyMasterPasswordForm.tsx +++ b/web/packages/accounts/components/VerifyMasterPasswordForm.tsx @@ -171,7 +171,7 @@ export const VerifyMasterPasswordForm: React.FC< let key: string; try { - key = await cryptoWorker.decryptBoxB64( + key = await cryptoWorker.decryptBox( { encryptedData: keyAttributes.encryptedKey, nonce: keyAttributes.keyDecryptionNonce, diff --git a/web/packages/accounts/pages/credentials.tsx b/web/packages/accounts/pages/credentials.tsx index 6ea11ba5c8..0e8820512f 100644 --- a/web/packages/accounts/pages/credentials.tsx +++ b/web/packages/accounts/pages/credentials.tsx @@ -140,14 +140,14 @@ const Page: React.FC = () => { if (kekEncryptedAttributes && keyAttributes) { removeKey("keyEncryptionKey"); const cryptoWorker = await sharedCryptoWorker(); - const kek = await cryptoWorker.decryptBoxB64( + const kek = await cryptoWorker.decryptBox( { encryptedData: kekEncryptedAttributes.encryptedData, nonce: kekEncryptedAttributes.nonce, }, kekEncryptedAttributes.key, ); - const key = await cryptoWorker.decryptBoxB64( + const key = await cryptoWorker.decryptBox( { encryptedData: keyAttributes.encryptedKey, nonce: keyAttributes.keyDecryptionNonce, diff --git a/web/packages/accounts/pages/recover.tsx b/web/packages/accounts/pages/recover.tsx index 76db2cfcf5..af2ea04bc5 100644 --- a/web/packages/accounts/pages/recover.tsx +++ b/web/packages/accounts/pages/recover.tsx @@ -13,7 +13,7 @@ import { type SingleInputFormProps, } from "ente-base/components/SingleInputForm"; import { useBaseContext } from "ente-base/context"; -import { decryptBoxB64 } from "ente-base/crypto"; +import { decryptBox } from "ente-base/crypto"; import log from "ente-base/log"; import { decryptAndStoreToken, @@ -63,7 +63,7 @@ const Page: React.FC = () => { ) => { try { const keyAttr = keyAttributes!; - const masterKey = await decryptBoxB64( + const masterKey = await decryptBox( { encryptedData: keyAttr.masterKeyEncryptedWithRecoveryKey!, nonce: keyAttr.masterKeyDecryptionNonce!, diff --git a/web/packages/accounts/pages/two-factor/recover.tsx b/web/packages/accounts/pages/two-factor/recover.tsx index 8a6d2fe3a7..5c4af55b8a 100644 --- a/web/packages/accounts/pages/two-factor/recover.tsx +++ b/web/packages/accounts/pages/two-factor/recover.tsx @@ -18,7 +18,7 @@ import { type SingleInputFormProps, } from "ente-base/components/SingleInputForm"; import { useBaseContext } from "ente-base/context"; -import { decryptBoxB64 } from "ente-base/crypto"; +import { decryptBox } from "ente-base/crypto"; import type { B64EncryptionResult } from "ente-base/crypto/libsodium"; import log from "ente-base/log"; import { ApiError } from "ente-shared/error"; @@ -93,7 +93,7 @@ const Page: React.FC = ({ twoFactorType }) => { ) => { try { const { encryptedData, nonce } = encryptedTwoFactorSecret!; - const twoFactorSecret = await decryptBoxB64( + const twoFactorSecret = await decryptBox( { encryptedData, nonce }, await recoveryKeyB64FromMnemonic(recoveryKey), ); diff --git a/web/packages/accounts/services/recovery-key.ts b/web/packages/accounts/services/recovery-key.ts index 8db572d782..cd70de86cc 100644 --- a/web/packages/accounts/services/recovery-key.ts +++ b/web/packages/accounts/services/recovery-key.ts @@ -1,7 +1,7 @@ import * as bip39 from "bip39"; import type { KeyAttributes } from "ente-accounts/services/user"; import { - decryptBoxB64, + decryptBox, fromHex, sharedCryptoWorker, toHex, @@ -69,7 +69,7 @@ export const getUserRecoveryKeyB64 = async () => { keyAttributes; if (recoveryKeyEncryptedWithMasterKey && recoveryKeyDecryptionNonce) { - return decryptBoxB64( + return decryptBox( { encryptedData: recoveryKeyEncryptedWithMasterKey, nonce: recoveryKeyDecryptionNonce, diff --git a/web/packages/base/crypto/ente-impl.ts b/web/packages/base/crypto/ente-impl.ts index 39bc8eac9a..e6123ae1c5 100644 --- a/web/packages/base/crypto/ente-impl.ts +++ b/web/packages/base/crypto/ente-impl.ts @@ -20,13 +20,16 @@ export const _encryptBoxB64 = libsodium.encryptBoxB64; export const _encryptBlob = libsodium.encryptBlob; -export const _encryptBlobB64 = libsodium.encryptBlobB64; +export const _encryptBlobBytes = libsodium.encryptBlobBytes; export const _encryptThumbnail = async ( data: BytesOrB64, key: BytesOrB64, ): Promise => { - const { encryptedData, decryptionHeader } = await _encryptBlob(data, key); + const { encryptedData, decryptionHeader } = await _encryptBlobBytes( + data, + key, + ); return { encryptedData, decryptionHeader: await libsodium.toB64(decryptionHeader), @@ -40,7 +43,7 @@ export const _initChunkEncryption = libsodium.initChunkEncryption; export const _encryptStreamChunk = libsodium.encryptStreamChunk; export const _encryptMetadataJSON_New = (jsonValue: unknown, key: BytesOrB64) => - _encryptBlobB64(new TextEncoder().encode(JSON.stringify(jsonValue)), key); + _encryptBlob(new TextEncoder().encode(JSON.stringify(jsonValue)), key); // Deprecated, translates to the old API for now. export const _encryptMetadataJSON = async (r: { @@ -57,9 +60,9 @@ export const _encryptMetadataJSON = async (r: { }; }; -export const _decryptBox = libsodium.decryptBox; +export const _decryptBoxBytes = libsodium.decryptBoxBytes; -export const _decryptBoxB64 = libsodium.decryptBoxB64; +export const _decryptBox = libsodium.decryptBox; export const _decryptBlob = libsodium.decryptBlob; diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index d7abbb7a13..9c1fbb3198 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -162,7 +162,7 @@ export const generateBlobOrStreamKey = () => * * Both the encrypted data and the nonce are returned as base64 strings. * - * Use {@link decryptBoxB64} to decrypt the result. + * Use {@link decryptBox} to decrypt the result. * * > The suffix "Box" comes from the fact that it uses the so called secretbox * > APIs provided by libsodium under the hood. @@ -176,7 +176,7 @@ export const encryptBoxB64 = (data: BytesOrB64, key: BytesOrB64) => /** * Encrypt the given data, returning a blob containing the encrypted data and a - * decryption header. + * decryption header as base64 strings. * * This function is usually used to encrypt data associated with an Ente object * (file, collection, entity) using the object's key. @@ -189,22 +189,24 @@ export const encryptBoxB64 = (data: BytesOrB64, key: BytesOrB64) => * > See: [Note: 3 forms of encryption (Box | Blob | Stream)] */ export const encryptBlob = (data: BytesOrB64, key: BytesOrB64) => - assertInWorker(ei._encryptBlob(data, key)); + inWorker() + ? ei._encryptBlob(data, key) + : sharedWorker().then((w) => w.encryptBlob(data, key)); /** - * A variant of {@link encryptBlob} that returns the result components as base64 - * strings. + * A variant of {@link encryptBlob} that returns the result components as bytes + * instead of as base64 strings. + * + * Use {@link decryptBlob} to decrypt the result. */ -export const encryptBlobB64 = (data: BytesOrB64, key: BytesOrB64) => - inWorker() - ? ei._encryptBlobB64(data, key) - : sharedWorker().then((w) => w.encryptBlobB64(data, key)); +export const encryptBlobBytes = (data: BytesOrB64, key: BytesOrB64) => + assertInWorker(ei._encryptBlobBytes(data, key)); /** * Encrypt the thumbnail for a file. * - * This is midway variant of {@link encryptBlob} and {@link encryptBlobB64} that - * returns the decryption header as a base64 string, but leaves the data + * This is midway variant of {@link encryptBlobBytes} and {@link encryptBlob} + * that returns the decryption header as a base64 string, but leaves the data * unchanged. * * Use {@link decryptThumbnail} to decrypt the result. @@ -249,7 +251,7 @@ export const encryptStreamChunk = async ( * Encrypt the JSON metadata associated with an Ente object (file, collection or * entity) using the object's key. * - * This is a variant of {@link encryptBlobB64} tailored for encrypting any + * This is a variant of {@link encryptBlob} tailored for encrypting any * arbitrary metadata associated with an Ente object. For example, it is used * for encrypting the various metadata fields associated with a file, using that * file's key. @@ -283,7 +285,7 @@ export const encryptMetadataJSON = async (r: { /** * Decrypt a box encrypted using {@link encryptBoxB64} and returns the decrypted - * bytes. + * bytes as a base64 string. */ export const decryptBox = (box: EncryptedBox, key: BytesOrB64) => inWorker() @@ -291,16 +293,17 @@ export const decryptBox = (box: EncryptedBox, key: BytesOrB64) => : sharedWorker().then((w) => w.decryptBox(box, key)); /** - * Variant of {@link decryptBox} that returns the result as a base64 string. + * Variant of {@link decryptBox} that returns the decrypted bytes as it is + * (without encoding them to base64). */ -export const decryptBoxB64 = (box: EncryptedBox, key: BytesOrB64) => +export const decryptBoxBytes = (box: EncryptedBox, key: BytesOrB64) => inWorker() - ? ei._decryptBoxB64(box, key) - : sharedWorker().then((w) => w.decryptBoxB64(box, key)); + ? ei._decryptBoxBytes(box, key) + : sharedWorker().then((w) => w.decryptBoxBytes(box, key)); /** - * Decrypt a blob encrypted using either {@link encryptBlob} or - * {@link encryptBlobB64}. + * Decrypt a blob encrypted using either {@link encryptBlobBytes} or + * {@link encryptBlob}. */ export const decryptBlob = (blob: EncryptedBlob, key: BytesOrB64) => inWorker() diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index 1f58fccbab..efa31aeaf6 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -150,7 +150,7 @@ const bytes = async (bob: BytesOrB64) => * hypothetical "generateBoxKey") and {@link generateBlobOrStreamKey} produce * 256-bits of entropy that does not have any ties to a particular algorithm. * - * @returns A new randomly generated 256-bit key. + * @returns A new randomly generated 256-bit key (as a base64 string). */ export const generateKey = async () => { await sodium.ready; @@ -161,8 +161,8 @@ export const generateKey = async () => { * Generate a new key for use with the *Blob or *Stream encryption functions, * and return its base64 string representation. * - * This returns a new randomly generated 256-bit key suitable for being used - * with libsodium's secretstream APIs. + * This returns a new randomly generated 256-bit key (as a base64 string) + * suitable for being used with libsodium's secretstream APIs. */ export const generateBlobOrStreamKey = async () => { await sodium.ready; @@ -173,7 +173,7 @@ export const generateBlobOrStreamKey = async () => { * Encrypt the given data using libsodium's secretbox APIs, using a randomly * generated nonce. * - * Use {@link decryptBox} to decrypt the result. + * Use {@link decryptBoxBytes} to decrypt the result. * * @param data The data to encrypt. * @@ -298,7 +298,7 @@ export const encryptBoxB64 = async ( * * - See: https://doc.libsodium.org/secret-key_cryptography/secretstream */ -export const encryptBlob = async ( +export const encryptBlobBytes = async ( data: BytesOrB64, key: BytesOrB64, ): Promise => { @@ -319,14 +319,19 @@ export const encryptBlob = async ( }; /** - * A variant of {@link encryptBlob} that returns the both the encrypted data and - * decryption header as base64 strings. + * A higher level variant of {@link encryptBlobBytes} that returns the both the + * encrypted data and decryption header as base64 strings. + * + * This is the variant expected to serve majority of the public API use cases. */ -export const encryptBlobB64 = async ( +export const encryptBlob = async ( data: BytesOrB64, key: BytesOrB64, ): Promise => { - const { encryptedData, decryptionHeader } = await encryptBlob(data, key); + const { encryptedData, decryptionHeader } = await encryptBlobBytes( + data, + key, + ); return { encryptedData: await toB64(encryptedData), decryptionHeader: await toB64(decryptionHeader), @@ -466,7 +471,7 @@ export const encryptStreamChunk = async ( /** * Decrypt the result of {@link encryptBoxB64} and return the decrypted bytes. */ -export const decryptBox = async ( +export const decryptBoxBytes = async ( { encryptedData, nonce }: EncryptedBox, key: BytesOrB64, ): Promise => { @@ -479,15 +484,15 @@ export const decryptBox = async ( }; /** - * Variant of {@link decryptBox} that returns the data as a base64 string. + * Variant of {@link decryptBoxBytes} that returns the data as a base64 string. */ -export const decryptBoxB64 = ( +export const decryptBox = ( box: EncryptedBox, key: BytesOrB64, -): Promise => decryptBox(box, key).then(toB64); +): Promise => decryptBoxBytes(box, key).then(toB64); /** - * Decrypt the result of {@link encryptBlob} or {@link encryptBlobB64}. + * Decrypt the result of {@link encryptBlobBytes} or {@link encryptBlob}. */ export const decryptBlob = async ( { encryptedData, decryptionHeader }: EncryptedBlob, @@ -628,13 +633,13 @@ export async function encryptUTF8(data: string, key: string) { return await encryptToB64(b64Data, key); } -/** Deprecated, use {@link decryptBoxB64} instead. */ +/** Deprecated, use {@link decryptBox} instead. */ export async function decryptB64( encryptedData: string, nonce: string, keyB64: string, ) { - return decryptBoxB64({ encryptedData, nonce }, keyB64); + return decryptBox({ encryptedData, nonce }, keyB64); } /** Deprecated */ @@ -644,7 +649,7 @@ export async function decryptToUTF8( keyB64: string, ) { await sodium.ready; - const decrypted = await decryptBox({ encryptedData, nonce }, keyB64); + const decrypted = await decryptBoxBytes({ encryptedData, nonce }, keyB64); return sodium.to_string(decrypted); } diff --git a/web/packages/base/crypto/worker.ts b/web/packages/base/crypto/worker.ts index 720b993d1d..64737f61fe 100644 --- a/web/packages/base/crypto/worker.ts +++ b/web/packages/base/crypto/worker.ts @@ -22,14 +22,14 @@ export class CryptoWorker { generateBlobOrStreamKey = ei._generateBlobOrStreamKey; encryptBoxB64 = ei._encryptBoxB64; encryptThumbnail = ei._encryptThumbnail; - encryptBlobB64 = ei._encryptBlobB64; + encryptBlob = ei._encryptBlob; encryptStreamBytes = ei._encryptStreamBytes; initChunkEncryption = ei._initChunkEncryption; encryptStreamChunk = ei._encryptStreamChunk; encryptMetadataJSON_New = ei._encryptMetadataJSON_New; encryptMetadataJSON = ei._encryptMetadataJSON; + decryptBoxBytes = ei._decryptBoxBytes; decryptBox = ei._decryptBox; - decryptBoxB64 = ei._decryptBoxB64; decryptBlob = ei._decryptBlob; decryptBlobB64 = ei._decryptBlobB64; decryptThumbnail = ei._decryptThumbnail; diff --git a/web/packages/base/session.ts b/web/packages/base/session.ts index b4bbb93ba4..d895068d52 100644 --- a/web/packages/base/session.ts +++ b/web/packages/base/session.ts @@ -1,5 +1,5 @@ import { z } from "zod/v4"; -import { decryptBox } from "./crypto"; +import { decryptBoxBytes } from "./crypto"; import { toB64 } from "./crypto/libsodium"; /** @@ -81,7 +81,7 @@ export const masterKeyFromSessionIfLoggedIn = async () => { const { encryptedData, key, nonce } = SessionKeyData.parse( JSON.parse(value), ); - return decryptBox({ encryptedData, nonce }, key); + return decryptBoxBytes({ encryptedData, nonce }, key); }; /** @@ -116,5 +116,5 @@ export const unstashKeyEncryptionKeyFromSession = async () => { const { encryptedData, key, nonce } = SessionKeyData.parse( JSON.parse(value), ); - return decryptBox({ encryptedData, nonce }, key); + return decryptBoxBytes({ encryptedData, nonce }, key); }; diff --git a/web/packages/gallery/services/file-data.ts b/web/packages/gallery/services/file-data.ts index e460c32f97..6e456fa122 100644 --- a/web/packages/gallery/services/file-data.ts +++ b/web/packages/gallery/services/file-data.ts @@ -1,4 +1,4 @@ -import { encryptBlobB64 } from "ente-base/crypto"; +import { encryptBlob } from "ente-base/crypto"; import type { EncryptedBlobB64 } from "ente-base/crypto/types"; import { authenticatedPublicAlbumsRequestHeaders, @@ -293,7 +293,7 @@ export const putFileData = async ( data: Uint8Array, lastUpdatedAt: number, ) => { - const { encryptedData, decryptionHeader } = await encryptBlobB64( + const { encryptedData, decryptionHeader } = await encryptBlob( data, file.key, ); diff --git a/web/packages/gallery/services/video.ts b/web/packages/gallery/services/video.ts index 6a33969f10..b3f4ebb775 100644 --- a/web/packages/gallery/services/video.ts +++ b/web/packages/gallery/services/video.ts @@ -1,6 +1,6 @@ import { isDesktop } from "ente-base/app"; import { assertionFailed } from "ente-base/assert"; -import { decryptBlob, encryptBlobB64 } from "ente-base/crypto"; +import { decryptBlob, encryptBlob } from "ente-base/crypto"; import type { EncryptedBlob } from "ente-base/crypto/types"; import { ensureElectron } from "ente-base/electron"; import { isHTTP4xxError, type PublicAlbumsCredentials } from "ente-base/http"; @@ -1056,7 +1056,7 @@ const processQueueItem = async ({ size: videoSize, }); - const encryptedPlaylist = await encryptBlobB64(playlistData, file.key); + const encryptedPlaylist = await encryptBlob(playlistData, file.key); try { await putVideoData( diff --git a/web/packages/media/file.ts b/web/packages/media/file.ts index bc6c3bc483..dda205381d 100644 --- a/web/packages/media/file.ts +++ b/web/packages/media/file.ts @@ -321,7 +321,7 @@ export async function decryptFile( pubMagicMetadata, ...restFileProps } = file; - const fileKey = await worker.decryptBoxB64( + const fileKey = await worker.decryptBox( { encryptedData: encryptedKey, nonce: keyDecryptionNonce }, collectionKey, ); diff --git a/web/packages/new/photos/services/user-entity/index.ts b/web/packages/new/photos/services/user-entity/index.ts index 16d3a904e6..f90a95c122 100644 --- a/web/packages/new/photos/services/user-entity/index.ts +++ b/web/packages/new/photos/services/user-entity/index.ts @@ -1,6 +1,6 @@ import { - decryptBoxB64, - encryptBlobB64, + decryptBox, + encryptBlob, encryptBoxB64, generateBlobOrStreamKey, } from "ente-base/crypto"; @@ -194,7 +194,7 @@ export const encryptedUserEntityData = async ( const bytes = isGzipped(type) ? await gzip(json) : new TextEncoder().encode(json); - return encryptBlobB64(bytes, entityKeyB64); + return encryptBlob(bytes, entityKeyB64); }; /** @@ -280,7 +280,7 @@ const decryptEntityKey = async ( remote: RemoteUserEntityKey, masterKey: Uint8Array, ) => - decryptBoxB64( + decryptBox( { encryptedData: remote.encryptedKey, // Remote calls it the header, but it really is the nonce. diff --git a/web/packages/shared/crypto/helpers.ts b/web/packages/shared/crypto/helpers.ts index 15b4a631bd..f63eb67f3c 100644 --- a/web/packages/shared/crypto/helpers.ts +++ b/web/packages/shared/crypto/helpers.ts @@ -116,7 +116,7 @@ export const decryptDeleteAccountChallenge = async ( const cryptoWorker = await sharedCryptoWorker(); const masterKey = await masterKeyFromSession(); const keyAttributes = getData("keyAttributes"); - const secretKey = await cryptoWorker.decryptBoxB64( + const secretKey = await cryptoWorker.decryptBox( { encryptedData: keyAttributes.encryptedSecretKey, nonce: keyAttributes.secretKeyDecryptionNonce, From 81bfc83e9d195a25cf902386faf60774c23c7371 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Thu, 5 Jun 2025 09:12:51 +0530 Subject: [PATCH 199/316] birthday notifications setting --- .../lib/services/memories_cache_service.dart | 24 +++++++++++++-- .../notification_settings_screen.dart | 30 +++++++++++++++++-- mobile/lib/utils/local_settings.dart | 10 +++++++ 3 files changed, 60 insertions(+), 4 deletions(-) diff --git a/mobile/lib/services/memories_cache_service.dart b/mobile/lib/services/memories_cache_service.dart index 0492001a76..a4b3a3eb15 100644 --- a/mobile/lib/services/memories_cache_service.dart +++ b/mobile/lib/services/memories_cache_service.dart @@ -107,6 +107,17 @@ class MemoriesCacheService { } } + Future toggleBirthdayNotifications() async { + final oldValue = localSettings.birthdayNotificationsEnabled; + await localSettings.setBirthdayNotificationsEnabled(!oldValue); + _logger.info("Turning birhtdayNotifications ${oldValue ? "off" : "on"}"); + if (oldValue) { + await _clearAllScheduledBirthdayNotifications(); + } else { + queueUpdateCache(); + } + } + bool get enableSmartMemories => flagService.hasGrantedMLConsent && localSettings.isMLLocalIndexingEnabled && @@ -262,6 +273,12 @@ class MemoriesCacheService { .clearAllScheduledNotifications(containingPayload: "onThisDay"); } + Future _clearAllScheduledBirthdayNotifications() async { + _logger.info('Clearing all scheduled birthday notifications'); + await NotificationService.instance + .clearAllScheduledNotifications(containingPayload: "birthday"); + } + Future _scheduleMemoryNotifications( List allMemories, ) async { @@ -326,8 +343,11 @@ class MemoriesCacheService { Future _scheduleBirthdayNotifications( List allMemories, ) async { - await NotificationService.instance - .clearAllScheduledNotifications(containingPayload: "birthday"); + if (!localSettings.birthdayNotificationsEnabled) { + _logger.info("birthday notifications are disabled, skipping scheduling"); + return; + } + await _clearAllScheduledBirthdayNotifications(); final scheduledPersons = {}; final toSchedule = []; final peopleToBirthdayMemories = >{}; diff --git a/mobile/lib/ui/settings/notification_settings_screen.dart b/mobile/lib/ui/settings/notification_settings_screen.dart index de4df89574..6c12c94c8f 100644 --- a/mobile/lib/ui/settings/notification_settings_screen.dart +++ b/mobile/lib/ui/settings/notification_settings_screen.dart @@ -103,9 +103,35 @@ class NotificationSettingsScreen extends StatelessWidget { isGestureDetectorDisabled: true, ), MenuSectionDescriptionWidget( - content: - S.of(context).onThisDayNotificationExplanation, + content: S + .of(context) + .onThisDayNotificationExplanation, ), + sectionOptionSpacing, + MenuItemWidget( + captionedTextWidget: CaptionedTextWidget( + title: "Birhtday notifications", + ), + menuItemColor: colorScheme.fillFaint, + trailingWidget: ToggleSwitchWidget( + value: () => + NotificationService.instance + .hasGrantedPermissions() && + localSettings.birthdayNotificationsEnabled, + onChanged: () async { + await NotificationService.instance + .requestPermissions(); + await memoriesCacheService + .toggleBirthdayNotifications(); + }, + ), + singleBorderRadius: 8, + alignCaptionedTextToLeft: true, + isGestureDetectorDisabled: true, + ), + MenuSectionDescriptionWidget( + content: + "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person."), ], ), ], diff --git a/mobile/lib/utils/local_settings.dart b/mobile/lib/utils/local_settings.dart index ab63e2ab81..4133bf0087 100644 --- a/mobile/lib/utils/local_settings.dart +++ b/mobile/lib/utils/local_settings.dart @@ -28,6 +28,8 @@ class LocalSettings { static const kCuratedMemoriesEnabled = "ls.curated_memories_enabled"; static const kOnThisDayNotificationsEnabled = "ls.on_this_day_notifications_enabled"; + static const kBirthdayNotificationsEnabled = + "ls.birthday_notifications_enabled"; static const kRateUsPromptThreshold = 2; static const shouldLoopVideoKey = "video.should_loop"; static const onGuestViewKey = "on_guest_view"; @@ -129,6 +131,14 @@ class LocalSettings { return value; } + bool get birthdayNotificationsEnabled => + _prefs.getBool(kBirthdayNotificationsEnabled) ?? true; + + Future setBirthdayNotificationsEnabled(bool value) async { + await _prefs.setBool(kBirthdayNotificationsEnabled, value); + return value; + } + bool get userEnabledMultiplePart => _prefs.getBool(kEnableMultiplePart) ?? true; From 413f5479ef3410863c43b74512faccb9f1bf94f8 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 08:54:51 +0530 Subject: [PATCH 200/316] ret 2 --- web/packages/base/crypto/ente-impl.ts | 8 ++++---- web/packages/base/crypto/index.ts | 15 ++++++++------- web/packages/base/crypto/libsodium.ts | 13 +++++++------ web/packages/base/crypto/worker.ts | 2 +- web/packages/gallery/services/video.ts | 4 ++-- web/packages/new/photos/services/ml/ml-data.ts | 15 +++++++++------ .../new/photos/services/user-entity/remote.ts | 4 ++-- 7 files changed, 33 insertions(+), 28 deletions(-) diff --git a/web/packages/base/crypto/ente-impl.ts b/web/packages/base/crypto/ente-impl.ts index e6123ae1c5..7c9feeb148 100644 --- a/web/packages/base/crypto/ente-impl.ts +++ b/web/packages/base/crypto/ente-impl.ts @@ -64,11 +64,11 @@ export const _decryptBoxBytes = libsodium.decryptBoxBytes; export const _decryptBox = libsodium.decryptBox; +export const _decryptBlobBytes = libsodium.decryptBlobBytes; + export const _decryptBlob = libsodium.decryptBlob; -export const _decryptBlobB64 = libsodium.decryptBlobB64; - -export const _decryptThumbnail = _decryptBlob; +export const _decryptThumbnail = _decryptBlobBytes; export const _decryptStreamBytes = libsodium.decryptStreamBytes; @@ -81,7 +81,7 @@ export const _decryptMetadataJSON_New = async ( key: BytesOrB64, ) => JSON.parse( - new TextDecoder().decode(await _decryptBlob(blob, key)), + new TextDecoder().decode(await _decryptBlobBytes(blob, key)), ) as unknown; export const _decryptMetadataJSON = async (r: { diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index 9c1fbb3198..1d3a5123be 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -181,7 +181,7 @@ export const encryptBoxB64 = (data: BytesOrB64, key: BytesOrB64) => * This function is usually used to encrypt data associated with an Ente object * (file, collection, entity) using the object's key. * - * Use {@link decryptBlob} to decrypt the result. + * Use {@link decryptBlob} or {@link decryptBlobBytes} to decrypt the result. * * > The suffix "Blob" comes from our convention of naming functions that use * > the secretstream APIs without breaking the data into chunks. @@ -197,7 +197,7 @@ export const encryptBlob = (data: BytesOrB64, key: BytesOrB64) => * A variant of {@link encryptBlob} that returns the result components as bytes * instead of as base64 strings. * - * Use {@link decryptBlob} to decrypt the result. + * Use {@link decryptBlob} or {@link decryptBlobBytes} to decrypt the result. */ export const encryptBlobBytes = (data: BytesOrB64, key: BytesOrB64) => assertInWorker(ei._encryptBlobBytes(data, key)); @@ -303,7 +303,7 @@ export const decryptBoxBytes = (box: EncryptedBox, key: BytesOrB64) => /** * Decrypt a blob encrypted using either {@link encryptBlobBytes} or - * {@link encryptBlob}. + * {@link encryptBlob} and return it as a base64 encoded string. */ export const decryptBlob = (blob: EncryptedBlob, key: BytesOrB64) => inWorker() @@ -311,12 +311,13 @@ export const decryptBlob = (blob: EncryptedBlob, key: BytesOrB64) => : sharedWorker().then((w) => w.decryptBlob(blob, key)); /** - * A variant of {@link decryptBlob} that returns the result as a base64 string. + * A variant of {@link decryptBlobBytes} that returns the result bytes directly + * (instead of encoding them as a base64 string). */ -export const decryptBlobB64 = (blob: EncryptedBlob, key: BytesOrB64) => +export const decryptBlobBytes = (blob: EncryptedBlob, key: BytesOrB64) => inWorker() - ? ei._decryptBlobB64(blob, key) - : sharedWorker().then((w) => w.decryptBlobB64(blob, key)); + ? ei._decryptBlobBytes(blob, key) + : sharedWorker().then((w) => w.decryptBlobBytes(blob, key)); /** * Decrypt the thumbnail encrypted using {@link encryptThumbnail}. diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index efa31aeaf6..af1cc49acd 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -173,7 +173,7 @@ export const generateBlobOrStreamKey = async () => { * Encrypt the given data using libsodium's secretbox APIs, using a randomly * generated nonce. * - * Use {@link decryptBoxBytes} to decrypt the result. + * Use {@link decryptBox} or {@link decryptBoxBytes} to decrypt the result. * * @param data The data to encrypt. * @@ -286,7 +286,7 @@ export const encryptBoxB64 = async ( /** * Encrypt the given data using libsodium's secretstream APIs without chunking. * - * Use {@link decryptBlob} to decrypt the result. + * Use {@link decryptBlobBytes} to decrypt the result. * * @param data The data to encrypt. * @@ -494,7 +494,7 @@ export const decryptBox = ( /** * Decrypt the result of {@link encryptBlobBytes} or {@link encryptBlob}. */ -export const decryptBlob = async ( +export const decryptBlobBytes = async ( { encryptedData, decryptionHeader }: EncryptedBlob, key: BytesOrB64, ): Promise => { @@ -512,12 +512,13 @@ export const decryptBlob = async ( }; /** - * A variant of {@link decryptBlob} that returns the result as a base64 string. + * A variant of {@link decryptBlobBytes} that returns the result as a base64 + * string. */ -export const decryptBlobB64 = ( +export const decryptBlob = ( blob: EncryptedBlob, key: BytesOrB64, -): Promise => decryptBlob(blob, key).then(toB64); +): Promise => decryptBlobBytes(blob, key).then(toB64); /** * Decrypt the result of {@link encryptStreamBytes}. diff --git a/web/packages/base/crypto/worker.ts b/web/packages/base/crypto/worker.ts index 64737f61fe..9a43b6bd79 100644 --- a/web/packages/base/crypto/worker.ts +++ b/web/packages/base/crypto/worker.ts @@ -30,8 +30,8 @@ export class CryptoWorker { encryptMetadataJSON = ei._encryptMetadataJSON; decryptBoxBytes = ei._decryptBoxBytes; decryptBox = ei._decryptBox; + decryptBlobBytes = ei._decryptBlobBytes; decryptBlob = ei._decryptBlob; - decryptBlobB64 = ei._decryptBlobB64; decryptThumbnail = ei._decryptThumbnail; decryptStreamBytes = ei._decryptStreamBytes; initChunkDecryption = ei._initChunkDecryption; diff --git a/web/packages/gallery/services/video.ts b/web/packages/gallery/services/video.ts index b3f4ebb775..0587ebc3af 100644 --- a/web/packages/gallery/services/video.ts +++ b/web/packages/gallery/services/video.ts @@ -1,6 +1,6 @@ import { isDesktop } from "ente-base/app"; import { assertionFailed } from "ente-base/assert"; -import { decryptBlob, encryptBlob } from "ente-base/crypto"; +import { decryptBlobBytes, encryptBlob } from "ente-base/crypto"; import type { EncryptedBlob } from "ente-base/crypto/types"; import { ensureElectron } from "ente-base/electron"; import { isHTTP4xxError, type PublicAlbumsCredentials } from "ente-base/http"; @@ -484,7 +484,7 @@ const decryptPlaylistJSON = async ( encryptedPlaylist: EncryptedBlob, file: EnteFile, ) => { - const decryptedBytes = await decryptBlob(encryptedPlaylist, file.key); + const decryptedBytes = await decryptBlobBytes(encryptedPlaylist, file.key); const jsonString = await gunzip(decryptedBytes); return PlaylistJSON.parse(JSON.parse(jsonString)); }; diff --git a/web/packages/new/photos/services/ml/ml-data.ts b/web/packages/new/photos/services/ml/ml-data.ts index 5f035d9cc0..28271ec65e 100644 --- a/web/packages/new/photos/services/ml/ml-data.ts +++ b/web/packages/new/photos/services/ml/ml-data.ts @@ -1,4 +1,4 @@ -import { decryptBlob } from "ente-base/crypto"; +import { decryptBlobBytes } from "ente-base/crypto"; import log from "ente-base/log"; import { fetchFilesData, putFileData } from "ente-gallery/services/file-data"; import type { EnteFile } from "ente-media/file"; @@ -169,11 +169,14 @@ export const fetchMLData = async ( } try { - // See: [Note: strict mode migration] - // - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - const decryptedBytes = await decryptBlob(remoteFileData, file.key); + const decryptedBytes = await decryptBlobBytes( + remoteFileData, + // See: [Note: strict mode migration] + // + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + file.key, + ); const jsonString = await gunzip(decryptedBytes); result.set( fileID, diff --git a/web/packages/new/photos/services/user-entity/remote.ts b/web/packages/new/photos/services/user-entity/remote.ts index 54b5048cc6..beb8448cea 100644 --- a/web/packages/new/photos/services/user-entity/remote.ts +++ b/web/packages/new/photos/services/user-entity/remote.ts @@ -1,4 +1,4 @@ -import { decryptBlob } from "ente-base/crypto"; +import { decryptBlobBytes } from "ente-base/crypto"; import type { EncryptedBlobB64 } from "ente-base/crypto/types"; import { authenticatedRequestHeaders, @@ -132,7 +132,7 @@ export const userEntityDiff = async ( entityKeyB64: string, ): Promise => { const decrypt = (encryptedData: string, decryptionHeader: string) => - decryptBlob({ encryptedData, decryptionHeader }, entityKeyB64); + decryptBlobBytes({ encryptedData, decryptionHeader }, entityKeyB64); const params = new URLSearchParams({ type, From ea4d6c5cf11bed6abe937d42400a7eed3197d6c3 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 09:15:30 +0530 Subject: [PATCH 201/316] consistent --- web/apps/auth/src/services/remote.ts | 2 +- web/packages/accounts/services/user.ts | 18 +++++++++--------- web/packages/base/crypto/libsodium.ts | 2 +- web/packages/gallery/services/share.ts | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/web/apps/auth/src/services/remote.ts b/web/apps/auth/src/services/remote.ts index 1af10ddb0e..bfbefb75ef 100644 --- a/web/apps/auth/src/services/remote.ts +++ b/web/apps/auth/src/services/remote.ts @@ -222,7 +222,7 @@ export const authenticatorEntityDiff = async ( export const AuthenticatorEntityKey = z.object({ /** - * The authenticator entity key (base 64 string), encrypted with the user's + * The authenticator entity key (base64 string), encrypted with the user's * master key. */ encryptedKey: z.string(), diff --git a/web/packages/accounts/services/user.ts b/web/packages/accounts/services/user.ts index edf61e1d45..f47d8fe19e 100644 --- a/web/packages/accounts/services/user.ts +++ b/web/packages/accounts/services/user.ts @@ -34,7 +34,7 @@ export interface KeyAttributes { /** * The user's master key encrypted with the key encryption key. * - * Base 64 encoded. + * Base64 encoded. * * [Note: Key encryption key] * @@ -56,7 +56,7 @@ export interface KeyAttributes { /** * The nonce used during the encryption of the master key. * - * Base 64 encoded. + * Base64 encoded. * * @see {@link encryptedKey}. */ @@ -64,7 +64,7 @@ export interface KeyAttributes { /** * The salt used during the derivation of the kek. * - * Base 64 encoded. + * Base64 encoded. * * See: [Note: Key encryption key]. */ @@ -90,14 +90,14 @@ export interface KeyAttributes { * The user's public key (part of their public-key keypair, the other half * being the {@link encryptedSecretKey}). * - * Base 64 encoded. + * Base64 encoded. */ publicKey: string; /** * The user's private key (part of their public-key keypair, the other half * being the {@link publicKey}) encrypted with their master key. * - * Base 64 encoded. + * Base64 encoded. * * [Note: Public and secret key nomenclature] * @@ -114,7 +114,7 @@ export interface KeyAttributes { /** * The user's master key after being encrypted with their recovery key. * - * Base 64 encoded. + * Base64 encoded. * * This allows the user to recover their master key if they forget their * passphrase but still have their recovery key. @@ -126,13 +126,13 @@ export interface KeyAttributes { * The nonce used during the encryption of * {@link masterKeyEncryptedWithRecoveryKey}. * - * Base 64 encoded. + * Base64 encoded. */ masterKeyDecryptionNonce?: string; /** * The user's recovery key after being encrypted with their master key. * - * Base 64 encoded. + * Base64 encoded. * * Note: This value doesn't change after being initially created. */ @@ -141,7 +141,7 @@ export interface KeyAttributes { * The nonce used during the encryption of * {@link recoveryKeyEncryptedWithMasterKey}. * - * Base 64 encoded. + * Base64 encoded. */ recoveryKeyDecryptionNonce?: string; } diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index af1cc49acd..a2743ca88b 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -111,7 +111,7 @@ export const toHex = async (input: string) => { }; /** - * Convert a hex string to the base 64 representation of the bytes that the hex + * Convert a hex string to the base64 representation of the bytes that the hex * string encodes. * * This is the inverse of {@link toHex}. diff --git a/web/packages/gallery/services/share.ts b/web/packages/gallery/services/share.ts index ad702808b5..3f37ff4bbd 100644 --- a/web/packages/gallery/services/share.ts +++ b/web/packages/gallery/services/share.ts @@ -33,7 +33,7 @@ export const appendCollectionKeyToShareURL = async ( * Extract the collection key from a public URL. * * This is the inverse of {@link appendCollectionKeyToShareURL}, returning the - * base 64 string representation of the collection key. + * base64 string representation of the collection key. * * collection key (bytes) * => appendCollectionKeytoShareURL (base 64 => base 58) From 2e98d8b6529f7bb7f212ac8d8751ef446f072c10 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 09:17:22 +0530 Subject: [PATCH 202/316] Ret 3 --- web/packages/accounts/pages/two-factor/setup.tsx | 4 ++-- web/packages/accounts/services/passkey.ts | 4 ++-- web/packages/accounts/services/recovery-key.ts | 4 ++-- web/packages/base/crypto/ente-impl.ts | 2 +- web/packages/base/crypto/index.ts | 8 ++++---- web/packages/base/crypto/libsodium.ts | 8 ++++---- web/packages/base/crypto/worker.ts | 2 +- web/packages/new/photos/services/collection.ts | 4 ++-- web/packages/new/photos/services/user-entity/index.ts | 4 ++-- 9 files changed, 20 insertions(+), 20 deletions(-) diff --git a/web/packages/accounts/pages/two-factor/setup.tsx b/web/packages/accounts/pages/two-factor/setup.tsx index 2f128d35da..3b5b01a7b5 100644 --- a/web/packages/accounts/pages/two-factor/setup.tsx +++ b/web/packages/accounts/pages/two-factor/setup.tsx @@ -8,7 +8,7 @@ import { CenteredFill } from "ente-base/components/containers"; import { LinkButton } from "ente-base/components/LinkButton"; import { ActivityIndicator } from "ente-base/components/mui/ActivityIndicator"; import { FocusVisibleButton } from "ente-base/components/mui/FocusVisibleButton"; -import { encryptBoxB64 } from "ente-base/crypto"; +import { encryptBox } from "ente-base/crypto"; import { getData, setLSUser } from "ente-shared/storage/localStorage"; import { t } from "i18next"; import { useRouter } from "next/router"; @@ -27,7 +27,7 @@ const Page: React.FC = () => { }, []); const handleSubmit = async (otp: string) => { - const box = await encryptBoxB64( + const box = await encryptBox( twoFactorSecret!.secretCode, await getUserRecoveryKeyB64(), ); diff --git a/web/packages/accounts/services/passkey.ts b/web/packages/accounts/services/passkey.ts index d67505aca7..6f18ed216e 100644 --- a/web/packages/accounts/services/passkey.ts +++ b/web/packages/accounts/services/passkey.ts @@ -1,6 +1,6 @@ import { TwoFactorAuthorizationResponse } from "ente-accounts/services/user"; import { clientPackageName, isDesktop } from "ente-base/app"; -import { encryptBoxB64, generateKey } from "ente-base/crypto"; +import { encryptBox, generateKey } from "ente-base/crypto"; import { authenticatedRequestHeaders, ensureOk, @@ -108,7 +108,7 @@ export const openAccountsManagePasskeysPage = async () => { // If not, enable it for them by creating the necessary recovery // information to prevent them from getting locked out. const resetSecret = await generateKey(); - const box = await encryptBoxB64( + const box = await encryptBox( resetSecret, await getUserRecoveryKeyB64(), ); diff --git a/web/packages/accounts/services/recovery-key.ts b/web/packages/accounts/services/recovery-key.ts index cd70de86cc..0900d48638 100644 --- a/web/packages/accounts/services/recovery-key.ts +++ b/web/packages/accounts/services/recovery-key.ts @@ -95,11 +95,11 @@ const createNewRecoveryKey = async (masterKey: Uint8Array) => { const cryptoWorker = await sharedCryptoWorker(); const recoveryKey = await cryptoWorker.generateKey(); - const encryptedMasterKey = await cryptoWorker.encryptBoxB64( + const encryptedMasterKey = await cryptoWorker.encryptBox( masterKey, recoveryKey, ); - const encryptedRecoveryKey = await cryptoWorker.encryptBoxB64( + const encryptedRecoveryKey = await cryptoWorker.encryptBox( recoveryKey, masterKey, ); diff --git a/web/packages/base/crypto/ente-impl.ts b/web/packages/base/crypto/ente-impl.ts index 7c9feeb148..1969cdd9c3 100644 --- a/web/packages/base/crypto/ente-impl.ts +++ b/web/packages/base/crypto/ente-impl.ts @@ -16,7 +16,7 @@ export const _generateKey = libsodium.generateKey; export const _generateBlobOrStreamKey = libsodium.generateBlobOrStreamKey; -export const _encryptBoxB64 = libsodium.encryptBoxB64; +export const _encryptBox = libsodium.encryptBox; export const _encryptBlob = libsodium.encryptBlob; diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index 1d3a5123be..73ced28f53 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -169,10 +169,10 @@ export const generateBlobOrStreamKey = () => * > * > See: [Note: 3 forms of encryption (Box | Blob | Stream)] */ -export const encryptBoxB64 = (data: BytesOrB64, key: BytesOrB64) => +export const encryptBox = (data: BytesOrB64, key: BytesOrB64) => inWorker() - ? ei._encryptBoxB64(data, key) - : sharedWorker().then((w) => w.encryptBoxB64(data, key)); + ? ei._encryptBox(data, key) + : sharedWorker().then((w) => w.encryptBox(data, key)); /** * Encrypt the given data, returning a blob containing the encrypted data and a @@ -284,7 +284,7 @@ export const encryptMetadataJSON = async (r: { : sharedWorker().then((w) => w.encryptMetadataJSON(r)); /** - * Decrypt a box encrypted using {@link encryptBoxB64} and returns the decrypted + * Decrypt a box encrypted using {@link encryptBox} and returns the decrypted * bytes as a base64 string. */ export const decryptBox = (box: EncryptedBox, key: BytesOrB64) => diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index a2743ca88b..e9a7a1d874 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -266,7 +266,7 @@ export const generateBlobOrStreamKey = async () => { * without chunking, whilst the *Stream routines first break it into * {@link streamEncryptionChunkSize} chunks. */ -export const encryptBoxB64 = async ( +export const encryptBox = async ( data: BytesOrB64, key: BytesOrB64, ): Promise => { @@ -469,7 +469,7 @@ export const encryptStreamChunk = async ( }; /** - * Decrypt the result of {@link encryptBoxB64} and return the decrypted bytes. + * Decrypt the result of {@link encryptBox} and return the decrypted bytes. */ export const decryptBoxBytes = async ( { encryptedData, nonce }: EncryptedBox, @@ -611,10 +611,10 @@ export interface B64EncryptionResult { nonce: string; } -/** Deprecated, use {@link encryptBoxB64} instead */ +/** Deprecated, use {@link encryptBox} instead */ export async function encryptToB64(data: string, keyB64: string) { await sodium.ready; - const encrypted = await encryptBoxB64(data, keyB64); + const encrypted = await encryptBox(data, keyB64); return { encryptedData: encrypted.encryptedData, key: keyB64, diff --git a/web/packages/base/crypto/worker.ts b/web/packages/base/crypto/worker.ts index 9a43b6bd79..81b7571be6 100644 --- a/web/packages/base/crypto/worker.ts +++ b/web/packages/base/crypto/worker.ts @@ -20,7 +20,7 @@ export class CryptoWorker { fromHex = ei._fromHex; generateKey = ei._generateKey; generateBlobOrStreamKey = ei._generateBlobOrStreamKey; - encryptBoxB64 = ei._encryptBoxB64; + encryptBox = ei._encryptBox; encryptThumbnail = ei._encryptThumbnail; encryptBlob = ei._encryptBlob; encryptStreamBytes = ei._encryptStreamBytes; diff --git a/web/packages/new/photos/services/collection.ts b/web/packages/new/photos/services/collection.ts index b4d4fbeb1f..de486224ce 100644 --- a/web/packages/new/photos/services/collection.ts +++ b/web/packages/new/photos/services/collection.ts @@ -1,5 +1,5 @@ import type { User } from "ente-accounts/services/user"; -import { encryptBoxB64 } from "ente-base/crypto"; +import { encryptBox } from "ente-base/crypto"; import { authenticatedRequestHeaders, ensureOk } from "ente-base/http"; import { apiURL } from "ente-base/origins"; import { CollectionSubType, type Collection } from "ente-media/collection"; @@ -212,7 +212,7 @@ const encryptWithCollectionKey = async ( ): Promise => Promise.all( files.map(async (file) => { - const box = await encryptBoxB64(file.key, collection.key); + const box = await encryptBox(file.key, collection.key); return { id: file.id, encryptedKey: box.encryptedData, diff --git a/web/packages/new/photos/services/user-entity/index.ts b/web/packages/new/photos/services/user-entity/index.ts index f90a95c122..9f5ae9a41b 100644 --- a/web/packages/new/photos/services/user-entity/index.ts +++ b/web/packages/new/photos/services/user-entity/index.ts @@ -1,7 +1,7 @@ import { decryptBox, encryptBlob, - encryptBoxB64, + encryptBox, generateBlobOrStreamKey, } from "ente-base/crypto"; import { nullishToEmpty, nullToUndefined } from "ente-utils/transform"; @@ -265,7 +265,7 @@ const getOrCreateEntityKeyB64 = async ( }; const generateEncryptedEntityKey = async (masterKey: Uint8Array) => { - const { encryptedData, nonce } = await encryptBoxB64( + const { encryptedData, nonce } = await encryptBox( await generateBlobOrStreamKey(), masterKey, ); From 37b52b5cb550deaf6198c66def5d626617b458b1 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 09:27:01 +0530 Subject: [PATCH 203/316] Reduce API surface --- web/packages/base/crypto/ente-impl.ts | 18 +-------------- web/packages/base/crypto/index.ts | 22 ------------------- web/packages/base/crypto/worker.ts | 3 +-- web/packages/gallery/services/download.ts | 4 ++-- .../gallery/services/upload/upload-service.ts | 13 +++++++---- 5 files changed, 13 insertions(+), 47 deletions(-) diff --git a/web/packages/base/crypto/ente-impl.ts b/web/packages/base/crypto/ente-impl.ts index 1969cdd9c3..97cb19537d 100644 --- a/web/packages/base/crypto/ente-impl.ts +++ b/web/packages/base/crypto/ente-impl.ts @@ -1,6 +1,6 @@ /** Careful when adding add other imports! */ import * as libsodium from "./libsodium"; -import type { BytesOrB64, EncryptedBlob, EncryptedFile } from "./types"; +import type { BytesOrB64, EncryptedBlob } from "./types"; export const _toB64 = libsodium.toB64; @@ -22,20 +22,6 @@ export const _encryptBlob = libsodium.encryptBlob; export const _encryptBlobBytes = libsodium.encryptBlobBytes; -export const _encryptThumbnail = async ( - data: BytesOrB64, - key: BytesOrB64, -): Promise => { - const { encryptedData, decryptionHeader } = await _encryptBlobBytes( - data, - key, - ); - return { - encryptedData, - decryptionHeader: await libsodium.toB64(decryptionHeader), - }; -}; - export const _encryptStreamBytes = libsodium.encryptStreamBytes; export const _initChunkEncryption = libsodium.initChunkEncryption; @@ -68,8 +54,6 @@ export const _decryptBlobBytes = libsodium.decryptBlobBytes; export const _decryptBlob = libsodium.decryptBlob; -export const _decryptThumbnail = _decryptBlobBytes; - export const _decryptStreamBytes = libsodium.decryptStreamBytes; export const _initChunkDecryption = libsodium.initChunkDecryption; diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index 73ced28f53..d8b6665e77 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -202,20 +202,6 @@ export const encryptBlob = (data: BytesOrB64, key: BytesOrB64) => export const encryptBlobBytes = (data: BytesOrB64, key: BytesOrB64) => assertInWorker(ei._encryptBlobBytes(data, key)); -/** - * Encrypt the thumbnail for a file. - * - * This is midway variant of {@link encryptBlobBytes} and {@link encryptBlob} - * that returns the decryption header as a base64 string, but leaves the data - * unchanged. - * - * Use {@link decryptThumbnail} to decrypt the result. - */ -export const encryptThumbnail = (data: BytesOrB64, key: BytesOrB64) => - inWorker() - ? ei._encryptThumbnail(data, key) - : sharedWorker().then((w) => w.encryptThumbnail(data, key)); - /** * Encrypt the given data using chunked streaming encryption, but process all * the chunks in one go. @@ -319,14 +305,6 @@ export const decryptBlobBytes = (blob: EncryptedBlob, key: BytesOrB64) => ? ei._decryptBlobBytes(blob, key) : sharedWorker().then((w) => w.decryptBlobBytes(blob, key)); -/** - * Decrypt the thumbnail encrypted using {@link encryptThumbnail}. - */ -export const decryptThumbnail = (blob: EncryptedBlob, key: BytesOrB64) => - inWorker() - ? ei._decryptThumbnail(blob, key) - : sharedWorker().then((w) => w.decryptThumbnail(blob, key)); - /** * Decrypt the result of {@link encryptStreamBytes}. */ diff --git a/web/packages/base/crypto/worker.ts b/web/packages/base/crypto/worker.ts index 81b7571be6..a0373edcbc 100644 --- a/web/packages/base/crypto/worker.ts +++ b/web/packages/base/crypto/worker.ts @@ -21,7 +21,7 @@ export class CryptoWorker { generateKey = ei._generateKey; generateBlobOrStreamKey = ei._generateBlobOrStreamKey; encryptBox = ei._encryptBox; - encryptThumbnail = ei._encryptThumbnail; + encryptBlobBytes = ei._encryptBlobBytes; encryptBlob = ei._encryptBlob; encryptStreamBytes = ei._encryptStreamBytes; initChunkEncryption = ei._initChunkEncryption; @@ -32,7 +32,6 @@ export class CryptoWorker { decryptBox = ei._decryptBox; decryptBlobBytes = ei._decryptBlobBytes; decryptBlob = ei._decryptBlob; - decryptThumbnail = ei._decryptThumbnail; decryptStreamBytes = ei._decryptStreamBytes; initChunkDecryption = ei._initChunkDecryption; decryptStreamChunk = ei._decryptStreamChunk; diff --git a/web/packages/gallery/services/download.ts b/web/packages/gallery/services/download.ts index 82f3dc1686..3da489fd90 100644 --- a/web/packages/gallery/services/download.ts +++ b/web/packages/gallery/services/download.ts @@ -1,8 +1,8 @@ import { blobCache, type BlobCache } from "ente-base/blob-cache"; import { + decryptBlobBytes, decryptStreamBytes, decryptStreamChunk, - decryptThumbnail, initChunkDecryption, } from "ente-base/crypto"; import { @@ -295,7 +295,7 @@ class DownloadManager { this._downloadThumbnail(file), ); const decryptionHeader = file.thumbnail.decryptionHeader; - return decryptThumbnail({ encryptedData, decryptionHeader }, file.key); + return decryptBlobBytes({ encryptedData, decryptionHeader }, file.key); }; private async _downloadThumbnail(file: EnteFile) { diff --git a/web/packages/gallery/services/upload/upload-service.ts b/web/packages/gallery/services/upload/upload-service.ts index 9377266374..3582450db8 100644 --- a/web/packages/gallery/services/upload/upload-service.ts +++ b/web/packages/gallery/services/upload/upload-service.ts @@ -1426,10 +1426,15 @@ const encryptFile = async ( ? await worker.encryptStreamBytes(fileStreamOrData, fileKey) : await encryptFileStream(fileStreamOrData, fileKey, worker); - const encryptedThumbnail = await worker.encryptThumbnail( - thumbnail, - fileKey, - ); + const { + encryptedData: encryptedThumbnailData, + decryptionHeader: thumbnailDecryptionHeaderBytes, + } = await worker.encryptBlobBytes(thumbnail, fileKey); + + const encryptedThumbnail = { + encryptedData: encryptedThumbnailData, + decryptionHeader: await worker.toB64(thumbnailDecryptionHeaderBytes), + }; const encryptedMetadata = await worker.encryptMetadataJSON({ jsonValue: metadata, From 6ba7841632b36127a09804a0810db0e697a57482 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 09:39:57 +0530 Subject: [PATCH 204/316] Conv --- .../gallery/services/upload/upload-service.ts | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/web/packages/gallery/services/upload/upload-service.ts b/web/packages/gallery/services/upload/upload-service.ts index 3582450db8..acbaec4666 100644 --- a/web/packages/gallery/services/upload/upload-service.ts +++ b/web/packages/gallery/services/upload/upload-service.ts @@ -326,12 +326,24 @@ interface EncryptedFileStream { } interface EncryptedFilePieces { + /** + * The encrypted contents of the file (as bytes or a stream of bytes), and + * the decryption header that was used during encryption (base64 string). + */ file: { encryptedData: Uint8Array | EncryptedFileStream; decryptionHeader: string; }; + /** + * The encrypted contents of the file's thumbnail (as bytes), and the + * decryption header that was used during encryption (base64 string). + */ thumbnail: { encryptedData: Uint8Array; decryptionHeader: string }; - metadata: { encryptedDataB64: string; decryptionHeaderB64: string }; + /** + * The encrypted contents of the file's metadata (as a base64 string), and + * the decryption header that was used during encryption (base64 string). + */ + metadata: { encryptedData: string; decryptionHeader: string }; pubMagicMetadata: EncryptedMagicMetadata; localID: number; } @@ -1436,10 +1448,10 @@ const encryptFile = async ( decryptionHeader: await worker.toB64(thumbnailDecryptionHeaderBytes), }; - const encryptedMetadata = await worker.encryptMetadataJSON({ - jsonValue: metadata, - keyB64: fileKey, - }); + const encryptedMetadata = await worker.encryptMetadataJSON_New( + metadata, + fileKey, + ); let encryptedPubMagicMetadata: EncryptedMagicMetadata; // Keep defensive check until the underlying type is audited. @@ -1587,11 +1599,8 @@ const uploadToBucket = async ( objectKey: thumbnailUploadURL.objectKey, size: thumbnail.encryptedData.length, }, - metadata: { - encryptedData: metadata.encryptedDataB64, - decryptionHeader: metadata.decryptionHeaderB64, - }, - pubMagicMetadata: pubMagicMetadata, + metadata, + pubMagicMetadata, }; }; From e2fbb26dce03de0664e1920aa7f037ba692aa250 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Thu, 5 Jun 2025 09:41:58 +0530 Subject: [PATCH 205/316] Reorganize --- .../lib/services/memories_cache_service.dart | 656 +++++++++--------- 1 file changed, 324 insertions(+), 332 deletions(-) diff --git a/mobile/lib/services/memories_cache_service.dart b/mobile/lib/services/memories_cache_service.dart index a4b3a3eb15..bfb8d21374 100644 --- a/mobile/lib/services/memories_cache_service.dart +++ b/mobile/lib/services/memories_cache_service.dart @@ -76,13 +76,6 @@ class MemoriesCacheService { }); } - Future _resetLastMemoriesCacheUpdateTime() async { - await _prefs.setInt( - _lastMemoriesCacheUpdateTimeKey, - DateTime.now().microsecondsSinceEpoch, - ); - } - int get lastMemoriesCacheUpdateTime { return _prefs.getInt(_lastMemoriesCacheUpdateTimeKey) ?? 0; } @@ -96,28 +89,6 @@ class MemoriesCacheService { Bus.instance.fire(MemoriesSettingChanged()); } - Future toggleOnThisDayNotifications() async { - final oldValue = localSettings.isOnThisDayNotificationsEnabled; - await localSettings.setOnThisDayNotificationsEnabled(!oldValue); - _logger.info("Turning onThisDayNotifications ${oldValue ? "off" : "on"}"); - if (oldValue) { - await _clearAllScheduledOnThisDayNotifications(); - } else { - queueUpdateCache(); - } - } - - Future toggleBirthdayNotifications() async { - final oldValue = localSettings.birthdayNotificationsEnabled; - await localSettings.setBirthdayNotificationsEnabled(!oldValue); - _logger.info("Turning birhtdayNotifications ${oldValue ? "off" : "on"}"); - if (oldValue) { - await _clearAllScheduledBirthdayNotifications(); - } else { - queueUpdateCache(); - } - } - bool get enableSmartMemories => flagService.hasGrantedMLConsent && localSettings.isMLLocalIndexingEnabled && @@ -145,11 +116,6 @@ class MemoriesCacheService { .microsecondsSinceEpoch; } - Future _getCachePath() async { - return (await getApplicationSupportDirectory()).path + - "/cache/memories_cache"; - } - Future markMemoryAsSeen(Memory memory, bool lastInList) async { memory.markSeen(); await _memoriesDB.markMemoryAsSeen( @@ -174,11 +140,130 @@ class MemoriesCacheService { unawaited(_prefs.setBool(_shouldUpdateCacheKey, true)); } - Future _cacheUpdated() async { - _shouldUpdate = false; - unawaited(_prefs.setBool(_shouldUpdateCacheKey, false)); - await _resetLastMemoriesCacheUpdateTime(); - Bus.instance.fire(MemoriesChangedEvent()); + Future> getMemories() async { + if (!showAnyMemories) { + _logger.info('Showing memories is disabled in settings, showing none'); + return []; + } + if (_cachedMemories != null && _cachedMemories!.isNotEmpty) { + return _cachedMemories!; + } + try { + if (!enableSmartMemories) { + await _calculateRegularFillers(); + return _cachedMemories!; + } + _cachedMemories = await _getMemoriesFromCache(); + if (_cachedMemories == null || _cachedMemories!.isEmpty) { + _logger.warning( + "No memories found in cache, force updating cache. Possible severe caching issue", + ); + await updateCache(forced: true); + } else { + _logger.info("Found memories in cache"); + } + if (_cachedMemories == null || _cachedMemories!.isEmpty) { + _logger + .severe("No memories found in (computed) cache, getting fillers"); + await _calculateRegularFillers(); + } + return _cachedMemories!; + } catch (e, s) { + _logger.severe("Error in getMemories", e, s); + return []; + } + } + + Future _calculateRegularFillers() async { + if (_cachedMemories == null) { + _cachedMemories = await smartMemoriesService.calcSimpleMemories(); + Bus.instance.fire(MemoriesChangedEvent()); + } + return; + } + + Future?> _getMemoriesFromCache() async { + final cache = await _readCacheFromDisk(); + if (cache == null) { + return null; + } + final result = await _fromCacheToMemories(cache); + return result; + } + + Future _readCacheFromDisk() async { + _logger.info("Reading memories cache result from disk"); + final file = File(await _getCachePath()); + if (!file.existsSync()) { + _logger.info("No memories cache found"); + return null; + } + final allFiles = Set.from( + await SearchService.instance.getAllFilesForSearch(), + ); + final allFileIdsToFile = {}; + for (final file in allFiles) { + if (file.uploadedFileID != null) { + allFileIdsToFile[file.uploadedFileID!] = file; + } + } + try { + final bytes = await file.readAsBytes(); + final jsonString = String.fromCharCodes(bytes); + final cache = + MemoriesCache.decodeFromJsonString(jsonString, allFileIdsToFile); + _logger.info("Reading memories cache result from disk done"); + return cache; + } catch (e, s) { + _logger.severe("Error reading or decoding cache file", e, s); + await file.delete(); + return null; + } + } + + Future> _fromCacheToMemories(MemoriesCache cache) async { + try { + _logger.info('Processing disk cache memories to smart memories'); + final List memories = []; + final allFiles = Set.from( + await SearchService.instance.getAllFilesForSearch(), + ); + final allFileIdsToFile = {}; + for (final file in allFiles) { + if (file.uploadedFileID != null) { + allFileIdsToFile[file.uploadedFileID!] = file; + } + } + final seenTimes = await _memoriesDB.getSeenTimes(); + + for (final ToShowMemory memory in cache.toShowMemories) { + if (memory.shouldShowNow()) { + final smartMemory = SmartMemory( + memory.fileUploadedIDs + .where((fileID) => allFileIdsToFile.containsKey(fileID)) + .map( + (fileID) => + Memory.fromFile(allFileIdsToFile[fileID]!, seenTimes), + ) + .toList(), + memory.type, + memory.title, + memory.firstTimeToShow, + memory.lastTimeToShow, + id: memory.id, + ); + if (smartMemory.memories.isNotEmpty) { + memories.add(smartMemory); + } + } + } + locationService.baseLocations = cache.baseLocations; + _logger.info('Processing of disk cache memories done'); + return memories; + } catch (e, s) { + _logger.severe("Error converting cache to memories", e, s); + return []; + } } Future updateCache({bool forced = false}) async { @@ -260,6 +345,21 @@ class MemoriesCacheService { }); } + Future _getCachePath() async { + return (await getApplicationSupportDirectory()).path + + "/cache/memories_cache"; + } + + Future _cacheUpdated() async { + _shouldUpdate = false; + unawaited(_prefs.setBool(_shouldUpdateCacheKey, false)); + await _prefs.setInt( + _lastMemoriesCacheUpdateTimeKey, + DateTime.now().microsecondsSinceEpoch, + ); + Bus.instance.fire(MemoriesChangedEvent()); + } + /// WARNING: Use for testing only, TODO: lau: remove later Future debugCacheForTesting() async { final oldCache = await _readCacheFromDisk(); @@ -267,16 +367,185 @@ class MemoriesCacheService { return newCache; } - Future _clearAllScheduledOnThisDayNotifications() async { - _logger.info('Clearing all scheduled On This Day notifications'); - await NotificationService.instance - .clearAllScheduledNotifications(containingPayload: "onThisDay"); + MemoriesCache _processOldCache(MemoriesCache? oldCache) { + final List peopleShownLogs = []; + final List clipShownLogs = []; + final List tripsShownLogs = []; + if (oldCache != null) { + final now = DateTime.now(); + for (final peopleLog in oldCache.peopleShownLogs) { + if (now.difference( + DateTime.fromMicrosecondsSinceEpoch(peopleLog.lastTimeShown), + ) < + maxShowTimeout) { + peopleShownLogs.add(peopleLog); + } + } + for (final tripsLog in oldCache.tripsShownLogs) { + if (now.difference( + DateTime.fromMicrosecondsSinceEpoch(tripsLog.lastTimeShown), + ) < + maxShowTimeout) { + tripsShownLogs.add(tripsLog); + } + } + for (final clipLog in oldCache.clipShownLogs) { + if (now.difference( + DateTime.fromMicrosecondsSinceEpoch(clipLog.lastTimeShown), + ) < + maxShowTimeout) { + clipShownLogs.add(clipLog); + } + } + for (final oldMemory in oldCache.toShowMemories) { + if (oldMemory.isOld) { + if (oldMemory.type == MemoryType.people) { + peopleShownLogs.add(PeopleShownLog.fromOldCacheMemory(oldMemory)); + } else if (oldMemory.type == MemoryType.clip) { + clipShownLogs.add(ClipShownLog.fromOldCacheMemory(oldMemory)); + } else if (oldMemory.type == MemoryType.trips) { + tripsShownLogs.add(TripsShownLog.fromOldCacheMemory(oldMemory)); + } + } + } + } + return MemoriesCache( + toShowMemories: [], + peopleShownLogs: peopleShownLogs, + clipShownLogs: clipShownLogs, + tripsShownLogs: tripsShownLogs, + baseLocations: [], + ); } - Future _clearAllScheduledBirthdayNotifications() async { - _logger.info('Clearing all scheduled birthday notifications'); - await NotificationService.instance - .clearAllScheduledNotifications(containingPayload: "birthday"); + Future clearMemoriesCache({bool fromDisk = true}) async { + if (fromDisk) { + final file = File(await _getCachePath()); + if (file.existsSync()) { + await file.delete(); + } + } + _cachedMemories = null; + } + + Future> getMemoriesForWidget({ + required bool onThisDay, + required bool pastYears, + required bool smart, + }) async { + if (!onThisDay && !pastYears && !smart) { + _logger.info( + 'No memories requested, returning empty list', + ); + return []; + } + final allMemories = await getMemories(); + if (onThisDay && pastYears && smart) { + return allMemories; + } + final filteredMemories = []; + for (final memory in allMemories) { + if (!memory.shouldShowNow()) continue; + if (memory.type == MemoryType.onThisDay) { + if (!onThisDay) continue; + } else if (memory.type == MemoryType.filler) { + if (!pastYears) continue; + } else { + if (!smart) continue; + } + filteredMemories.add(memory); + } + return filteredMemories; + } + + Future goToMemoryFromGeneratedFileID( + BuildContext context, + int generatedFileID, + ) async { + final allMemories = await getMemories(); + if (allMemories.isEmpty) return; + int memoryIdx = 0; + int fileIdx = 0; + bool found = false; + memoryLoop: + for (final memory in _cachedMemories!) { + for (final mem in memory.memories) { + if (mem.file.generatedID == generatedFileID) { + found = true; + break memoryLoop; + } + fileIdx++; + } + memoryIdx++; + fileIdx = 0; + } + if (!found) { + _logger.warning( + "Could not find memory with generatedFileID: $generatedFileID", + ); + return; + } + await routeToPage( + context, + FullScreenMemoryDataUpdater( + initialIndex: fileIdx, + memories: allMemories[memoryIdx].memories, + child: FullScreenMemory(allMemories[memoryIdx].title, fileIdx), + ), + forceCustomPageRoute: true, + ); + } + + Future goToOnThisDayMemory(BuildContext context) async { + final allMemories = await getMemories(); + if (allMemories.isEmpty) return; + int memoryIdx = 0; + bool found = false; + memoryLoop: + for (final memory in allMemories) { + if (memory.type == MemoryType.onThisDay) { + found = true; + break memoryLoop; + } + memoryIdx++; + } + if (!found) { + _logger.warning( + "Could not find onThisDay memory", + ); + return; + } + await routeToPage( + context, + FullScreenMemoryDataUpdater( + initialIndex: 0, + memories: allMemories[memoryIdx].memories, + child: FullScreenMemory(allMemories[memoryIdx].title, 0), + ), + forceCustomPageRoute: true, + ); + } + + Future toggleOnThisDayNotifications() async { + final oldValue = localSettings.isOnThisDayNotificationsEnabled; + await localSettings.setOnThisDayNotificationsEnabled(!oldValue); + _logger.info("Turning onThisDayNotifications ${oldValue ? "off" : "on"}"); + if (oldValue) { + await _clearAllScheduledOnThisDayNotifications(); + } else { + queueUpdateCache(); + } + } + + Future toggleBirthdayNotifications() async { + final oldValue = localSettings.birthdayNotificationsEnabled; + await localSettings.setBirthdayNotificationsEnabled(!oldValue); + _logger.info("Turning birhtdayNotifications ${oldValue ? "off" : "on"}"); + if (oldValue) { + await _clearAllScheduledBirthdayNotifications(); + } else { + queueUpdateCache(); + } } Future _scheduleMemoryNotifications( @@ -414,292 +683,15 @@ class MemoriesCacheService { } } - MemoriesCache _processOldCache(MemoriesCache? oldCache) { - final List peopleShownLogs = []; - final List clipShownLogs = []; - final List tripsShownLogs = []; - if (oldCache != null) { - final now = DateTime.now(); - for (final peopleLog in oldCache.peopleShownLogs) { - if (now.difference( - DateTime.fromMicrosecondsSinceEpoch(peopleLog.lastTimeShown), - ) < - maxShowTimeout) { - peopleShownLogs.add(peopleLog); - } - } - for (final tripsLog in oldCache.tripsShownLogs) { - if (now.difference( - DateTime.fromMicrosecondsSinceEpoch(tripsLog.lastTimeShown), - ) < - maxShowTimeout) { - tripsShownLogs.add(tripsLog); - } - } - for (final clipLog in oldCache.clipShownLogs) { - if (now.difference( - DateTime.fromMicrosecondsSinceEpoch(clipLog.lastTimeShown), - ) < - maxShowTimeout) { - clipShownLogs.add(clipLog); - } - } - for (final oldMemory in oldCache.toShowMemories) { - if (oldMemory.isOld) { - if (oldMemory.type == MemoryType.people) { - peopleShownLogs.add(PeopleShownLog.fromOldCacheMemory(oldMemory)); - } else if (oldMemory.type == MemoryType.clip) { - clipShownLogs.add(ClipShownLog.fromOldCacheMemory(oldMemory)); - } else if (oldMemory.type == MemoryType.trips) { - tripsShownLogs.add(TripsShownLog.fromOldCacheMemory(oldMemory)); - } - } - } - } - return MemoriesCache( - toShowMemories: [], - peopleShownLogs: peopleShownLogs, - clipShownLogs: clipShownLogs, - tripsShownLogs: tripsShownLogs, - baseLocations: [], - ); + Future _clearAllScheduledOnThisDayNotifications() async { + _logger.info('Clearing all scheduled On This Day notifications'); + await NotificationService.instance + .clearAllScheduledNotifications(containingPayload: "onThisDay"); } - Future> _fromCacheToMemories(MemoriesCache cache) async { - try { - _logger.info('Processing disk cache memories to smart memories'); - final List memories = []; - final allFiles = Set.from( - await SearchService.instance.getAllFilesForSearch(), - ); - final allFileIdsToFile = {}; - for (final file in allFiles) { - if (file.uploadedFileID != null) { - allFileIdsToFile[file.uploadedFileID!] = file; - } - } - final seenTimes = await _memoriesDB.getSeenTimes(); - - for (final ToShowMemory memory in cache.toShowMemories) { - if (memory.shouldShowNow()) { - final smartMemory = SmartMemory( - memory.fileUploadedIDs - .where((fileID) => allFileIdsToFile.containsKey(fileID)) - .map( - (fileID) => - Memory.fromFile(allFileIdsToFile[fileID]!, seenTimes), - ) - .toList(), - memory.type, - memory.title, - memory.firstTimeToShow, - memory.lastTimeToShow, - id: memory.id, - ); - if (smartMemory.memories.isNotEmpty) { - memories.add(smartMemory); - } - } - } - locationService.baseLocations = cache.baseLocations; - _logger.info('Processing of disk cache memories done'); - return memories; - } catch (e, s) { - _logger.severe("Error converting cache to memories", e, s); - return []; - } - } - - Future?> _getMemoriesFromCache() async { - final cache = await _readCacheFromDisk(); - if (cache == null) { - return null; - } - final result = await _fromCacheToMemories(cache); - return result; - } - - Future _calculateRegularFillers() async { - if (_cachedMemories == null) { - _cachedMemories = await smartMemoriesService.calcSimpleMemories(); - Bus.instance.fire(MemoriesChangedEvent()); - } - return; - } - - Future> getMemoriesForWidget({ - required bool onThisDay, - required bool pastYears, - required bool smart, - }) async { - if (!onThisDay && !pastYears && !smart) { - _logger.info( - 'No memories requested, returning empty list', - ); - return []; - } - final allMemories = await getMemories(); - if (onThisDay && pastYears && smart) { - return allMemories; - } - final filteredMemories = []; - for (final memory in allMemories) { - if (!memory.shouldShowNow()) continue; - if (memory.type == MemoryType.onThisDay) { - if (!onThisDay) continue; - } else if (memory.type == MemoryType.filler) { - if (!pastYears) continue; - } else { - if (!smart) continue; - } - filteredMemories.add(memory); - } - return filteredMemories; - } - - Future> getMemories() async { - if (!showAnyMemories) { - _logger.info('Showing memories is disabled in settings, showing none'); - return []; - } - if (_cachedMemories != null && _cachedMemories!.isNotEmpty) { - return _cachedMemories!; - } - try { - if (!enableSmartMemories) { - await _calculateRegularFillers(); - return _cachedMemories!; - } - _cachedMemories = await _getMemoriesFromCache(); - if (_cachedMemories == null || _cachedMemories!.isEmpty) { - _logger.warning( - "No memories found in cache, force updating cache. Possible severe caching issue", - ); - await updateCache(forced: true); - } else { - _logger.info("Found memories in cache"); - } - if (_cachedMemories == null || _cachedMemories!.isEmpty) { - _logger - .severe("No memories found in (computed) cache, getting fillers"); - await _calculateRegularFillers(); - } - return _cachedMemories!; - } catch (e, s) { - _logger.severe("Error in getMemories", e, s); - return []; - } - } - - Future?> getCachedMemories() async { - return _cachedMemories; - } - - Future goToMemoryFromGeneratedFileID( - BuildContext context, - int generatedFileID, - ) async { - final allMemories = await getMemories(); - if (allMemories.isEmpty) return; - int memoryIdx = 0; - int fileIdx = 0; - bool found = false; - memoryLoop: - for (final memory in _cachedMemories!) { - for (final mem in memory.memories) { - if (mem.file.generatedID == generatedFileID) { - found = true; - break memoryLoop; - } - fileIdx++; - } - memoryIdx++; - fileIdx = 0; - } - if (!found) { - _logger.warning( - "Could not find memory with generatedFileID: $generatedFileID", - ); - return; - } - await routeToPage( - context, - FullScreenMemoryDataUpdater( - initialIndex: fileIdx, - memories: allMemories[memoryIdx].memories, - child: FullScreenMemory(allMemories[memoryIdx].title, fileIdx), - ), - forceCustomPageRoute: true, - ); - } - - Future goToOnThisDayMemory(BuildContext context) async { - final allMemories = await getMemories(); - if (allMemories.isEmpty) return; - int memoryIdx = 0; - bool found = false; - memoryLoop: - for (final memory in allMemories) { - if (memory.type == MemoryType.onThisDay) { - found = true; - break memoryLoop; - } - memoryIdx++; - } - if (!found) { - _logger.warning( - "Could not find onThisDay memory", - ); - return; - } - await routeToPage( - context, - FullScreenMemoryDataUpdater( - initialIndex: 0, - memories: allMemories[memoryIdx].memories, - child: FullScreenMemory(allMemories[memoryIdx].title, 0), - ), - forceCustomPageRoute: true, - ); - } - - Future _readCacheFromDisk() async { - _logger.info("Reading memories cache result from disk"); - final file = File(await _getCachePath()); - if (!file.existsSync()) { - _logger.info("No memories cache found"); - return null; - } - final allFiles = Set.from( - await SearchService.instance.getAllFilesForSearch(), - ); - final allFileIdsToFile = {}; - for (final file in allFiles) { - if (file.uploadedFileID != null) { - allFileIdsToFile[file.uploadedFileID!] = file; - } - } - try { - final bytes = await file.readAsBytes(); - final jsonString = String.fromCharCodes(bytes); - final cache = - MemoriesCache.decodeFromJsonString(jsonString, allFileIdsToFile); - _logger.info("Reading memories cache result from disk done"); - return cache; - } catch (e, s) { - _logger.severe("Error reading or decoding cache file", e, s); - await file.delete(); - return null; - } - } - - Future clearMemoriesCache({bool fromDisk = true}) async { - if (fromDisk) { - final file = File(await _getCachePath()); - if (file.existsSync()) { - await file.delete(); - } - } - _cachedMemories = null; + Future _clearAllScheduledBirthdayNotifications() async { + _logger.info('Clearing all scheduled birthday notifications'); + await NotificationService.instance + .clearAllScheduledNotifications(containingPayload: "birthday"); } } From fa1719e3ca7eab653d84a8bb0733c2ab79b29e4e Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 09:43:10 +0530 Subject: [PATCH 206/316] Conv --- .../gallery/services/upload/upload-service.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/web/packages/gallery/services/upload/upload-service.ts b/web/packages/gallery/services/upload/upload-service.ts index acbaec4666..990689f733 100644 --- a/web/packages/gallery/services/upload/upload-service.ts +++ b/web/packages/gallery/services/upload/upload-service.ts @@ -1457,15 +1457,16 @@ const encryptFile = async ( // Keep defensive check until the underlying type is audited. // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition if (pubMagicMetadata) { - const encryptedPubMagicMetadataData = await worker.encryptMetadataJSON({ - jsonValue: pubMagicMetadata.data, - keyB64: fileKey, - }); + const { encryptedData, decryptionHeader } = + await worker.encryptMetadataJSON_New( + pubMagicMetadata.data, + fileKey, + ); encryptedPubMagicMetadata = { version: pubMagicMetadata.version, count: pubMagicMetadata.count, - data: encryptedPubMagicMetadataData.encryptedDataB64, - header: encryptedPubMagicMetadataData.decryptionHeaderB64, + data: encryptedData, + header: decryptionHeader, }; } From 594671d96ce0d58e616d5b21fba95bca2e81e957 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 09:44:22 +0530 Subject: [PATCH 207/316] Conv --- web/packages/media/file-metadata.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/web/packages/media/file-metadata.ts b/web/packages/media/file-metadata.ts index dfd18ba5c7..95ec666dc5 100644 --- a/web/packages/media/file-metadata.ts +++ b/web/packages/media/file-metadata.ts @@ -1,4 +1,4 @@ -import { decryptMetadataJSON, encryptMetadataJSON } from "ente-base/crypto"; +import { decryptMetadataJSON, encryptMetadataJSON_New } from "ente-base/crypto"; import { authenticatedRequestHeaders, ensureOk } from "ente-base/http"; import { apiURL } from "ente-base/origins"; import { type Location } from "ente-base/types"; @@ -677,8 +677,9 @@ const updateMagicMetadataRequest = async ( ([, v]) => v !== null && v !== undefined, ); - const { encryptedDataB64, decryptionHeaderB64 } = await encryptMetadataJSON( - { jsonValue: Object.fromEntries(validEntries), keyB64: file.key }, + const { encryptedData, decryptionHeader } = await encryptMetadataJSON_New( + Object.fromEntries(validEntries), + file.key, ); return { @@ -688,8 +689,8 @@ const updateMagicMetadataRequest = async ( magicMetadata: { version: metadataVersion, count: validEntries.length, - data: encryptedDataB64, - header: decryptionHeaderB64, + data: encryptedData, + header: decryptionHeader, }, }, ], From b17ba26268007e7526671bd3620b1600b57e0898 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Thu, 5 Jun 2025 09:52:40 +0530 Subject: [PATCH 208/316] Extract strings --- mobile/lib/generated/intl/messages_all.dart | 4 + mobile/lib/generated/intl/messages_ar.dart | 77 +++--- mobile/lib/generated/intl/messages_be.dart | 7 + mobile/lib/generated/intl/messages_bg.dart | 7 + mobile/lib/generated/intl/messages_ca.dart | 7 + mobile/lib/generated/intl/messages_cs.dart | 7 + mobile/lib/generated/intl/messages_da.dart | 7 + mobile/lib/generated/intl/messages_de.dart | 19 +- mobile/lib/generated/intl/messages_el.dart | 7 + mobile/lib/generated/intl/messages_en.dart | 14 +- mobile/lib/generated/intl/messages_es.dart | 7 + mobile/lib/generated/intl/messages_et.dart | 7 + mobile/lib/generated/intl/messages_eu.dart | 7 + mobile/lib/generated/intl/messages_fa.dart | 7 + mobile/lib/generated/intl/messages_fr.dart | 27 ++- mobile/lib/generated/intl/messages_gu.dart | 7 + mobile/lib/generated/intl/messages_he.dart | 7 + mobile/lib/generated/intl/messages_hi.dart | 7 + mobile/lib/generated/intl/messages_hu.dart | 7 + mobile/lib/generated/intl/messages_id.dart | 11 + mobile/lib/generated/intl/messages_it.dart | 7 + mobile/lib/generated/intl/messages_ja.dart | 7 + mobile/lib/generated/intl/messages_km.dart | 7 + mobile/lib/generated/intl/messages_ko.dart | 7 + mobile/lib/generated/intl/messages_lt.dart | 225 +++++++++++++++++- mobile/lib/generated/intl/messages_lv.dart | 7 + mobile/lib/generated/intl/messages_ml.dart | 7 + mobile/lib/generated/intl/messages_nl.dart | 21 +- mobile/lib/generated/intl/messages_no.dart | 7 + mobile/lib/generated/intl/messages_or.dart | 7 + mobile/lib/generated/intl/messages_pl.dart | 7 + mobile/lib/generated/intl/messages_pt.dart | 7 + mobile/lib/generated/intl/messages_pt_BR.dart | 19 +- mobile/lib/generated/intl/messages_pt_PT.dart | 7 + mobile/lib/generated/intl/messages_ro.dart | 7 + mobile/lib/generated/intl/messages_ru.dart | 7 + mobile/lib/generated/intl/messages_sl.dart | 7 + mobile/lib/generated/intl/messages_sr.dart | 33 +++ mobile/lib/generated/intl/messages_sv.dart | 7 + mobile/lib/generated/intl/messages_ta.dart | 7 + mobile/lib/generated/intl/messages_te.dart | 7 + mobile/lib/generated/intl/messages_th.dart | 7 + mobile/lib/generated/intl/messages_ti.dart | 7 + mobile/lib/generated/intl/messages_tr.dart | 15 +- mobile/lib/generated/intl/messages_uk.dart | 7 + mobile/lib/generated/intl/messages_vi.dart | 7 + mobile/lib/generated/intl/messages_zh.dart | 7 + mobile/lib/generated/l10n.dart | 51 ++++ mobile/lib/l10n/intl_ar.arb | 6 +- mobile/lib/l10n/intl_be.arb | 6 +- mobile/lib/l10n/intl_bg.arb | 6 +- mobile/lib/l10n/intl_ca.arb | 6 +- mobile/lib/l10n/intl_cs.arb | 6 +- mobile/lib/l10n/intl_da.arb | 6 +- mobile/lib/l10n/intl_de.arb | 6 +- mobile/lib/l10n/intl_el.arb | 6 +- mobile/lib/l10n/intl_en.arb | 9 +- mobile/lib/l10n/intl_es.arb | 6 +- mobile/lib/l10n/intl_et.arb | 6 +- mobile/lib/l10n/intl_eu.arb | 6 +- mobile/lib/l10n/intl_fa.arb | 6 +- mobile/lib/l10n/intl_fr.arb | 6 +- mobile/lib/l10n/intl_gu.arb | 6 +- mobile/lib/l10n/intl_he.arb | 6 +- mobile/lib/l10n/intl_hi.arb | 6 +- mobile/lib/l10n/intl_hu.arb | 6 +- mobile/lib/l10n/intl_id.arb | 6 +- mobile/lib/l10n/intl_it.arb | 6 +- mobile/lib/l10n/intl_ja.arb | 6 +- mobile/lib/l10n/intl_km.arb | 6 +- mobile/lib/l10n/intl_ko.arb | 6 +- mobile/lib/l10n/intl_lt.arb | 6 +- mobile/lib/l10n/intl_lv.arb | 6 +- mobile/lib/l10n/intl_ml.arb | 6 +- mobile/lib/l10n/intl_nl.arb | 6 +- mobile/lib/l10n/intl_no.arb | 6 +- mobile/lib/l10n/intl_or.arb | 6 +- mobile/lib/l10n/intl_pl.arb | 6 +- mobile/lib/l10n/intl_pt.arb | 6 +- mobile/lib/l10n/intl_pt_BR.arb | 6 +- mobile/lib/l10n/intl_pt_PT.arb | 6 +- mobile/lib/l10n/intl_ro.arb | 6 +- mobile/lib/l10n/intl_ru.arb | 6 +- mobile/lib/l10n/intl_sl.arb | 6 +- mobile/lib/l10n/intl_sr.arb | 6 +- mobile/lib/l10n/intl_sv.arb | 6 +- mobile/lib/l10n/intl_ta.arb | 6 +- mobile/lib/l10n/intl_te.arb | 6 +- mobile/lib/l10n/intl_th.arb | 6 +- mobile/lib/l10n/intl_ti.arb | 6 +- mobile/lib/l10n/intl_tr.arb | 6 +- mobile/lib/l10n/intl_uk.arb | 6 +- mobile/lib/l10n/intl_vi.arb | 6 +- mobile/lib/l10n/intl_zh.arb | 6 +- .../lib/services/memories_cache_service.dart | 8 +- .../notification_settings_screen.dart | 7 +- mobile/pubspec.lock | 56 ++--- 97 files changed, 941 insertions(+), 177 deletions(-) create mode 100644 mobile/lib/generated/intl/messages_sr.dart diff --git a/mobile/lib/generated/intl/messages_all.dart b/mobile/lib/generated/intl/messages_all.dart index 5d4e637e74..075ef6fbf8 100644 --- a/mobile/lib/generated/intl/messages_all.dart +++ b/mobile/lib/generated/intl/messages_all.dart @@ -52,6 +52,7 @@ import 'messages_pt_PT.dart' as messages_pt_pt; import 'messages_ro.dart' as messages_ro; import 'messages_ru.dart' as messages_ru; import 'messages_sl.dart' as messages_sl; +import 'messages_sr.dart' as messages_sr; import 'messages_sv.dart' as messages_sv; import 'messages_ta.dart' as messages_ta; import 'messages_te.dart' as messages_te; @@ -100,6 +101,7 @@ Map _deferredLibraries = { 'ro': () => new SynchronousFuture(null), 'ru': () => new SynchronousFuture(null), 'sl': () => new SynchronousFuture(null), + 'sr': () => new SynchronousFuture(null), 'sv': () => new SynchronousFuture(null), 'ta': () => new SynchronousFuture(null), 'te': () => new SynchronousFuture(null), @@ -185,6 +187,8 @@ MessageLookupByLibrary? _findExact(String localeName) { return messages_ru.messages; case 'sl': return messages_sl.messages; + case 'sr': + return messages_sr.messages; case 'sv': return messages_sv.messages; case 'ta': diff --git a/mobile/lib/generated/intl/messages_ar.dart b/mobile/lib/generated/intl/messages_ar.dart index df9e5f3e96..608111df14 100644 --- a/mobile/lib/generated/intl/messages_ar.dart +++ b/mobile/lib/generated/intl/messages_ar.dart @@ -41,7 +41,7 @@ class MessageLookup extends MessageLookupByLibrary { static String m7(name) => "الإعجاب بـ ${name}"; static String m8(count) => - "${Intl.plural(count, zero: 'لا يوجد مشاركون', one: 'مشارك واحد', two: 'مشاركان', few: '${count} مشاركين', many: '${count} مشاركًا', other: '${count} مشارك')}"; + "${Intl.plural(count, zero: 'لا يوجد مُشاركون', one: 'مُشارك واحد', other: '${count} مُشاركين')}"; static String m9(versionValue) => "الإصدار: ${versionValue}"; @@ -89,7 +89,7 @@ class MessageLookup extends MessageLookupByLibrary { "سيؤدي هذا إلى إزالة الرابط العام للوصول إلى \"${albumName}\"."; static String m24(supportEmail) => - "يرجى إرسال بريد إلكتروني إلى ${supportEmail} من عنوان بريدك الإلكتروني المسجل."; + "يرجى إرسال بريد إلكتروني إلى ${supportEmail} من عنوان بريدك الإلكتروني المسجل"; static String m25(count, storageSaved) => "لقد قمت بتنظيف ${Intl.plural(count, one: 'ملف مكرر واحد', two: 'ملفين مكررين', few: '${count} ملفات مكررة', many: '${count} ملفًا مكررًا', other: '${count} ملفًا مكررًا')}، مما وفر ${storageSaved}!"; @@ -234,13 +234,13 @@ class MessageLookup extends MessageLookupByLibrary { "إليك معرّف التحقق الخاص بي لـ ente.io: ${verificationID}"; static String m82(verificationID) => - "مرحبًا، هل يمكنك تأكيد أن هذا هو معرّف التحقق الخاص بك على ente.io: ${verificationID}؟"; + "مرحبًا، هل يمكنك تأكيد أن هذا هو معرّف التحقق الخاص بك على ente.io: ${verificationID}"; static String m83(referralCode, referralStorageInGB) => "رمز إحالة Ente الخاص بي: ${referralCode}\n\nطبقه في الإعدادات ← عام ← الإحالات للحصول على ${referralStorageInGB} جيجابايت مجانًا بعد الاشتراك في خطة مدفوعة.\n\nhttps://ente.io"; static String m84(numberOfPeople) => - "${Intl.plural(numberOfPeople, zero: 'مشاركة مع أشخاص محددين', one: 'تمت المشاركة مع شخص واحد', two: 'تمت المشاركة مع شخصين', few: 'تمت المشاركة مع ${numberOfPeople} أشخاص', many: 'تمت المشاركة مع ${numberOfPeople} شخصًا', other: 'تمت المشاركة مع ${numberOfPeople} شخصًا')}"; + "${Intl.plural(numberOfPeople, zero: 'مشاركة مع أشخاص مُحددين', one: 'مُشارَك مع شخص واحد', other: 'مُشارَك مع ${numberOfPeople} أشخاص')}"; static String m85(emailIDs) => "تمت المشاركة مع ${emailIDs}"; @@ -467,28 +467,28 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("في ملجأ للطوارئ"), "authToChangeEmailVerificationSetting": MessageLookupByLibrary.simpleMessage( - "يرجى المصادقة لتغيير إعداد التحقق من البريد الإلكتروني."), + "يرجى المصادقة لتغيير إعداد التحقق من البريد الإلكتروني"), "authToChangeLockscreenSetting": MessageLookupByLibrary.simpleMessage( "يرجى المصادقة لتغيير إعدادات شاشة القفل."), "authToChangeYourEmail": MessageLookupByLibrary.simpleMessage( - "يرجى المصادقة لتغيير بريدك الإلكتروني."), + "يرجى المصادقة لتغيير بريدك الإلكتروني"), "authToChangeYourPassword": MessageLookupByLibrary.simpleMessage( - "يرجى المصادقة لتغيير كلمة المرور الخاصة بك."), + "يرجى المصادقة لتغيير كلمة المرور الخاصة بك"), "authToConfigureTwofactorAuthentication": MessageLookupByLibrary.simpleMessage( "يرجى المصادقة لإعداد المصادقة الثنائية."), "authToInitiateAccountDeletion": MessageLookupByLibrary.simpleMessage( - "يرجى المصادقة لبدء عملية حذف الحساب."), + "يرجى المصادقة لبدء عملية حذف الحساب"), "authToManageLegacy": MessageLookupByLibrary.simpleMessage( "يرجى المصادقة لإدارة جهات الاتصال الموثوقة الخاصة بك."), "authToViewPasskey": MessageLookupByLibrary.simpleMessage( "يرجى المصادقة لعرض مفتاح المرور الخاص بك."), "authToViewTrashedFiles": MessageLookupByLibrary.simpleMessage( - "يرجى المصادقة لعرض ملفاتك المحذوفة."), + "يرجى المصادقة لعرض ملفاتك المحذوفة"), "authToViewYourActiveSessions": MessageLookupByLibrary.simpleMessage( "يرجى المصادقة لعرض جلساتك النشطة."), "authToViewYourHiddenFiles": MessageLookupByLibrary.simpleMessage( - "يرجى المصادقة للوصول إلى ملفاتك المخفية."), + "يرجى المصادقة للوصول إلى ملفاتك المخفية"), "authToViewYourMemories": MessageLookupByLibrary.simpleMessage("يرجى المصادقة لعرض ذكرياتك."), "authToViewYourRecoveryKey": MessageLookupByLibrary.simpleMessage( @@ -532,7 +532,10 @@ class MessageLookup extends MessageLookupByLibrary { "backupVideos": MessageLookupByLibrary.simpleMessage( "النسخ الاحتياطي لمقاطع الفيديو"), "beach": MessageLookupByLibrary.simpleMessage("رمال وبحر"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("تاريخ الميلاد"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage("تخفيضات الجمعة السوداء"), "blog": MessageLookupByLibrary.simpleMessage("المدونة"), @@ -560,7 +563,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("إلغاء الاشتراك"), "cannotAddMorePhotosAfterBecomingViewer": m13, "cannotDeleteSharedFiles": MessageLookupByLibrary.simpleMessage( - "لا يمكن حذف الملفات المشتركة."), + "لا يمكن حذف الملفات المشتركة"), "castAlbum": MessageLookupByLibrary.simpleMessage("بث الألبوم"), "castIPMismatchBody": MessageLookupByLibrary.simpleMessage( "يرجى التأكد من أنك متصل بنفس الشبكة المتصل بها التلفزيون."), @@ -624,7 +627,7 @@ class MessageLookup extends MessageLookupByLibrary { "codeUsedByYou": MessageLookupByLibrary.simpleMessage("الرمز المستخدم من قبلك"), "collabLinkSectionDescription": MessageLookupByLibrary.simpleMessage( - "أنشئ رابطًا يسمح للأشخاص بإضافة الصور ومشاهدتها في ألبومك المشترك دون الحاجة إلى تطبيق Ente أو حساب. خيار مثالي لجمع صور الفعاليات بسهولة."), + "أنشئ رابطًا يسمح للأشخاص بإضافة الصور ومشاهدتها في ألبومك المشترك دون الحاجة إلى تطبيق أو حساب Ente. خيار مثالي لجمع صور الفعاليات بسهولة."), "collaborativeLink": MessageLookupByLibrary.simpleMessage("رابط تعاوني"), "collaborativeLinkCreatedFor": m15, @@ -708,7 +711,7 @@ class MessageLookup extends MessageLookupByLibrary { "crop": MessageLookupByLibrary.simpleMessage("اقتصاص"), "curatedMemories": MessageLookupByLibrary.simpleMessage("ذكريات منسقة"), "currentUsageIs": - MessageLookupByLibrary.simpleMessage("استخدامك الحالي هو"), + MessageLookupByLibrary.simpleMessage("استخدامك الحالي هو "), "currentlyRunning": MessageLookupByLibrary.simpleMessage("قيد التشغيل حاليًا"), "custom": MessageLookupByLibrary.simpleMessage("مخصص"), @@ -748,7 +751,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("الحذف من كليهما"), "deleteFromDevice": MessageLookupByLibrary.simpleMessage("الحذف من الجهاز"), - "deleteFromEnte": MessageLookupByLibrary.simpleMessage("الحذف من Ente"), + "deleteFromEnte": MessageLookupByLibrary.simpleMessage("حذف من Ente"), "deleteItemCount": m21, "deleteLocation": MessageLookupByLibrary.simpleMessage("حذف الموقع"), "deletePhotos": MessageLookupByLibrary.simpleMessage("حذف الصور"), @@ -786,7 +789,7 @@ class MessageLookup extends MessageLookupByLibrary { "disableAutoLock": MessageLookupByLibrary.simpleMessage("تعطيل القفل التلقائي"), "disableDownloadWarningBody": MessageLookupByLibrary.simpleMessage( - "لا يزال بإمكان المشاهدين التقاط لقطات شاشة أو حفظ نسخة من صورك باستخدام أدوات خارجية."), + "لا يزال بإمكان المشاهدين التقاط لقطات شاشة أو حفظ نسخة من صورك باستخدام أدوات خارجية"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("يرجى الملاحظة"), "disableLinkMessage": m23, @@ -885,7 +888,7 @@ class MessageLookup extends MessageLookupByLibrary { "تشفير من طرف إلى طرف بشكل افتراضي"), "enteCanEncryptAndPreserveFilesOnlyIfYouGrant": MessageLookupByLibrary.simpleMessage( - "يمكن لـ Ente تشفير وحفظ الملفات فقط إذا منحت الإذن بالوصول إليها."), + "يمكن لـ Ente تشفير وحفظ الملفات فقط إذا منحت الإذن بالوصول إليها"), "entePhotosPerm": MessageLookupByLibrary.simpleMessage( "Ente بحاجة إلى إذن لحفظ صورك"), "enteSubscriptionPitch": MessageLookupByLibrary.simpleMessage( @@ -896,7 +899,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("أدخل اسم الألبوم"), "enterCode": MessageLookupByLibrary.simpleMessage("أدخل الرمز"), "enterCodeDescription": MessageLookupByLibrary.simpleMessage( - "أدخل الرمز المقدم من صديقك للمطالبة بمساحة تخزين مجانية لكما."), + "أدخل الرمز المقدم من صديقك للمطالبة بمساحة تخزين مجانية لكما"), "enterDateOfBirth": MessageLookupByLibrary.simpleMessage("تاريخ الميلاد (اختياري)"), "enterEmail": @@ -921,6 +924,8 @@ class MessageLookup extends MessageLookupByLibrary { "يرجى إدخال عنوان بريد إلكتروني صالح."), "enterYourEmailAddress": MessageLookupByLibrary.simpleMessage("أدخل عنوان بريدك الإلكتروني"), + "enterYourNewEmailAddress": MessageLookupByLibrary.simpleMessage( + "أدخل عنوان بريدك الإلكتروني الجديد"), "enterYourPassword": MessageLookupByLibrary.simpleMessage("أدخل كلمة المرور"), "enterYourRecoveryKey": @@ -997,7 +1002,7 @@ class MessageLookup extends MessageLookupByLibrary { "food": MessageLookupByLibrary.simpleMessage("متعة الطهي"), "forYourMemories": MessageLookupByLibrary.simpleMessage("لذكرياتك"), "forgotPassword": - MessageLookupByLibrary.simpleMessage("نسيت كلمة المرور؟"), + MessageLookupByLibrary.simpleMessage("نسيت كلمة المرور"), "foundFaces": MessageLookupByLibrary.simpleMessage("الوجوه التي تم العثور عليها"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage( @@ -1027,7 +1032,7 @@ class MessageLookup extends MessageLookupByLibrary { "googlePlayId": MessageLookupByLibrary.simpleMessage("معرّف Google Play"), "grantFullAccessPrompt": MessageLookupByLibrary.simpleMessage( - "يرجى السماح بالوصول إلى جميع الصور في تطبيق الإعدادات."), + "الرجاء السماح بالوصول إلى جميع الصور في تطبيق الإعدادات"), "grantPermission": MessageLookupByLibrary.simpleMessage("منح الإذن"), "greenery": MessageLookupByLibrary.simpleMessage("الحياة الخضراء"), "groupNearbyPhotos": @@ -1035,6 +1040,8 @@ class MessageLookup extends MessageLookupByLibrary { "guestView": MessageLookupByLibrary.simpleMessage("عرض الضيف"), "guestViewEnablePreSteps": MessageLookupByLibrary.simpleMessage( "لتمكين عرض الضيف، يرجى إعداد رمز مرور الجهاز أو قفل الشاشة في إعدادات النظام."), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "hearUsExplanation": MessageLookupByLibrary.simpleMessage( "نحن لا نتتبع عمليات تثبيت التطبيق. سيساعدنا إذا أخبرتنا أين وجدتنا!"), "hearUsWhereTitle": @@ -1173,7 +1180,7 @@ class MessageLookup extends MessageLookupByLibrary { "loadMessage1": MessageLookupByLibrary.simpleMessage( "يمكنك مشاركة اشتراكك مع عائلتك."), "loadMessage2": MessageLookupByLibrary.simpleMessage( - "لقد حفظنا أكثر من 200 مليون ذكرى حتى الآن."), + "لقد حفظنا أكثر من 200 مليون ذكرى حتى الآن"), "loadMessage3": MessageLookupByLibrary.simpleMessage( "نحتفظ بـ 3 نسخ من بياناتك، إحداها في ملجأ للطوارئ تحت الأرض."), "loadMessage4": MessageLookupByLibrary.simpleMessage( @@ -1324,7 +1331,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("لم يتم العثور على جهاز."), "noDeviceLimit": MessageLookupByLibrary.simpleMessage("لا شيء"), "noDeviceThatCanBeDeleted": MessageLookupByLibrary.simpleMessage( - "لا توجد ملفات على هذا الجهاز يمكن حذفها."), + "لا توجد ملفات على هذا الجهاز يمكن حذفها"), "noDuplicates": MessageLookupByLibrary.simpleMessage("✨ لا توجد ملفات مكررة"), "noEnteAccountExclamation": @@ -1341,7 +1348,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("لا يوجد اتصال بالإنترنت"), "noPhotosAreBeingBackedUpRightNow": MessageLookupByLibrary.simpleMessage( - "لا يتم نسخ أي صور احتياطيًا في الوقت الحالي."), + "لا يتم نسخ أي صور احتياطيًا في الوقت الحالي"), "noPhotosFoundHere": MessageLookupByLibrary.simpleMessage("لم يتم العثور على صور هنا"), "noQuickLinksSelected": @@ -1472,9 +1479,9 @@ class MessageLookup extends MessageLookupByLibrary { "يرجى الاتصال بالدعم إذا استمرت المشكلة."), "pleaseEmailUsAt": m63, "pleaseGrantPermissions": - MessageLookupByLibrary.simpleMessage("يرجى منح الأذونات."), + MessageLookupByLibrary.simpleMessage("يرجى منح الأذونات"), "pleaseLoginAgain": - MessageLookupByLibrary.simpleMessage("يرجى تسجيل الدخول مرة أخرى."), + MessageLookupByLibrary.simpleMessage("يرجى تسجيل الدخول مرة أخرى"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "يرجى تحديد الروابط السريعة للإزالة."), "pleaseSendTheLogsTo": m64, @@ -1488,7 +1495,7 @@ class MessageLookup extends MessageLookupByLibrary { "يرجى الانتظار، جارٍ حذف الألبوم"), "pleaseWaitForSometimeBeforeRetrying": MessageLookupByLibrary.simpleMessage( - "يرجى الانتظار لبعض الوقت قبل إعادة المحاولة."), + "يرجى الانتظار لبعض الوقت قبل إعادة المحاولة"), "pleaseWaitThisWillTakeAWhile": MessageLookupByLibrary.simpleMessage( "يرجى الانتظار، قد يستغرق هذا بعض الوقت."), "posingWithThem": m65, @@ -1528,6 +1535,8 @@ class MessageLookup extends MessageLookupByLibrary { "reassignedToName": m68, "reassigningLoading": MessageLookupByLibrary.simpleMessage("جارٍ إعادة التعيين..."), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recover": MessageLookupByLibrary.simpleMessage("استعادة"), "recoverAccount": MessageLookupByLibrary.simpleMessage("استعادة الحساب"), @@ -1547,7 +1556,7 @@ class MessageLookup extends MessageLookupByLibrary { "recoveryKeySuccessBody": MessageLookupByLibrary.simpleMessage( "مفتاح الاسترداد الخاص بك صالح. شكرًا على التحقق.\n\nيرجى تذكر الاحتفاظ بنسخة احتياطية آمنة من مفتاح الاسترداد."), "recoveryKeyVerified": MessageLookupByLibrary.simpleMessage( - "تم التحقق من مفتاح الاسترداد."), + "تم التحقق من مفتاح الاسترداد"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "مفتاح الاسترداد هو الطريقة الوحيدة لاستعادة صورك إذا نسيت كلمة المرور. يمكنك العثور عليه في الإعدادات > الحساب.\n\nالرجاء إدخال مفتاح الاسترداد هنا للتحقق من أنك حفظته بشكل صحيح."), "recoveryReady": m70, @@ -1577,7 +1586,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("الإحالات متوقفة مؤقتًا"), "rejectRecovery": MessageLookupByLibrary.simpleMessage("رفض الاسترداد"), "remindToEmptyDeviceTrash": MessageLookupByLibrary.simpleMessage( - "تذكر أيضًا إفراغ \"المحذوفة مؤخرًا\" من \"الإعدادات\" -> \"التخزين\" لاستعادة المساحة المحررة."), + "تذكر أيضًا إفراغ \"المحذوفة مؤخرًا\" من \"الإعدادات\" -> \"التخزين\" لاستعادة المساحة المحررة"), "remindToEmptyEnteTrash": MessageLookupByLibrary.simpleMessage( "تذكر أيضًا إفراغ \"سلة المهملات\" لاستعادة المساحة المحررة."), "remoteImages": MessageLookupByLibrary.simpleMessage("الصور عن بعد"), @@ -1661,7 +1670,7 @@ class MessageLookup extends MessageLookupByLibrary { "savePerson": MessageLookupByLibrary.simpleMessage("حفظ الشخص"), "saveYourRecoveryKeyIfYouHaventAlready": MessageLookupByLibrary.simpleMessage( - "احفظ مفتاح الاسترداد إذا لم تكن قد فعلت ذلك بالفعل."), + "احفظ مفتاح الاسترداد إذا لم تكن قد فعلت ذلك"), "saving": MessageLookupByLibrary.simpleMessage("جارٍ الحفظ..."), "savingEdits": MessageLookupByLibrary.simpleMessage("جارٍ حفظ التعديلات..."), @@ -1878,7 +1887,7 @@ class MessageLookup extends MessageLookupByLibrary { "storageBreakupYou": MessageLookupByLibrary.simpleMessage("أنت"), "storageInGB": m91, "storageLimitExceeded": - MessageLookupByLibrary.simpleMessage("تم تجاوز حد التخزين."), + MessageLookupByLibrary.simpleMessage("تم تجاوز حد التخزين"), "storageUsageInfo": m92, "streamDetails": MessageLookupByLibrary.simpleMessage("تفاصيل البث"), "strongStrength": MessageLookupByLibrary.simpleMessage("قوية"), @@ -1922,7 +1931,7 @@ class MessageLookup extends MessageLookupByLibrary { "thankYouForSubscribing": MessageLookupByLibrary.simpleMessage("شكرًا لاشتراكك!"), "theDownloadCouldNotBeCompleted": - MessageLookupByLibrary.simpleMessage("تعذر إكمال التنزيل."), + MessageLookupByLibrary.simpleMessage("تعذر إكمال التنزيل"), "theLinkYouAreTryingToAccessHasExpired": MessageLookupByLibrary.simpleMessage( "انتهت صلاحية الرابط الذي تحاول الوصول إليه."), @@ -1943,7 +1952,7 @@ class MessageLookup extends MessageLookupByLibrary { "هذا الألبوم لديه رابط تعاوني بالفعل."), "thisCanBeUsedToRecoverYourAccountIfYou": MessageLookupByLibrary.simpleMessage( - "يمكن استخدام هذا المفتاح لاستعادة حسابك إذا فقدت جهاز المصادقة الثنائية."), + "يمكن استخدام هذا المفتاح لاستعادة حسابك إذا فقدت العامل الثاني للمصادقة"), "thisDevice": MessageLookupByLibrary.simpleMessage("هذا الجهاز"), "thisEmailIsAlreadyInUse": MessageLookupByLibrary.simpleMessage( "هذا البريد الإلكتروني مستخدم بالفعل."), @@ -1960,7 +1969,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "سيؤدي هذا إلى تسجيل خروجك من الجهاز التالي:"), "thisWillLogYouOutOfThisDevice": MessageLookupByLibrary.simpleMessage( - "سيؤدي هذا إلى تسجيل خروجك من هذا الجهاز."), + "سيؤدي هذا إلى تسجيل خروجك من هذا الجهاز!"), "thisWillMakeTheDateAndTimeOfAllSelected": MessageLookupByLibrary.simpleMessage( "سيجعل هذا تاريخ ووقت جميع الصور المحددة متماثلاً."), @@ -2154,14 +2163,14 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "تعذر جلب تفاصيل التخزين الخاصة بك."), "yourSubscriptionHasExpired": - MessageLookupByLibrary.simpleMessage("انتهت صلاحية اشتراكك."), + MessageLookupByLibrary.simpleMessage("انتهت صلاحية اشتراكك"), "yourSubscriptionWasUpdatedSuccessfully": MessageLookupByLibrary.simpleMessage("تم تحديث اشتراكك بنجاح."), "yourVerificationCodeHasExpired": MessageLookupByLibrary.simpleMessage( "انتهت صلاحية رمز التحقق الخاص بك."), "youveNoDuplicateFilesThatCanBeCleared": MessageLookupByLibrary.simpleMessage( - "لا توجد لديك أي ملفات مكررة يمكن مسحها."), + "لا توجد لديك أي ملفات مكررة يمكن مسحها"), "youveNoFilesInThisAlbumThatCanBeDeleted": MessageLookupByLibrary.simpleMessage( "لا توجد لديك ملفات في هذا الألبوم يمكن حذفها."), diff --git a/mobile/lib/generated/intl/messages_be.dart b/mobile/lib/generated/intl/messages_be.dart index 92cc493598..cea7af47d7 100644 --- a/mobile/lib/generated/intl/messages_be.dart +++ b/mobile/lib/generated/intl/messages_be.dart @@ -49,6 +49,9 @@ class MessageLookup extends MessageLookupByLibrary { "askDeleteReason": MessageLookupByLibrary.simpleMessage( "Якая асноўная прычына выдалення вашага ўліковага запісу?"), "backup": MessageLookupByLibrary.simpleMessage("Рэзервовая копія"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "cancel": MessageLookupByLibrary.simpleMessage("Скасаваць"), "change": MessageLookupByLibrary.simpleMessage("Змяніць"), "changeEmail": MessageLookupByLibrary.simpleMessage( @@ -143,6 +146,8 @@ class MessageLookup extends MessageLookupByLibrary { "general": MessageLookupByLibrary.simpleMessage("Асноўныя"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Генерацыя ключоў шыфравання..."), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "howItWorks": MessageLookupByLibrary.simpleMessage("Як гэта працуе"), "ignoreUpdate": MessageLookupByLibrary.simpleMessage("Iгнараваць"), "incorrectPasswordTitle": @@ -205,6 +210,8 @@ class MessageLookup extends MessageLookupByLibrary { "privacyPolicyTitle": MessageLookupByLibrary.simpleMessage("Палітыка прыватнасці"), "rateUs": MessageLookupByLibrary.simpleMessage("Ацаніце нас"), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recover": MessageLookupByLibrary.simpleMessage("Аднавіць"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Аднавіць уліковы запіс"), diff --git a/mobile/lib/generated/intl/messages_bg.dart b/mobile/lib/generated/intl/messages_bg.dart index 38b09f89ec..91fb0f9681 100644 --- a/mobile/lib/generated/intl/messages_bg.dart +++ b/mobile/lib/generated/intl/messages_bg.dart @@ -22,14 +22,21 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( "Click to install our best version yet"), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( "Look back on your memories 🌄"), "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( "Receive reminders about memories from this day in previous years."), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( "Sorry, we had to pause your backups") }; diff --git a/mobile/lib/generated/intl/messages_ca.dart b/mobile/lib/generated/intl/messages_ca.dart index 13a0bb611c..211abc4bcd 100644 --- a/mobile/lib/generated/intl/messages_ca.dart +++ b/mobile/lib/generated/intl/messages_ca.dart @@ -22,14 +22,21 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( "Click to install our best version yet"), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( "Look back on your memories 🌄"), "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( "Receive reminders about memories from this day in previous years."), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( "Sorry, we had to pause your backups") }; diff --git a/mobile/lib/generated/intl/messages_cs.dart b/mobile/lib/generated/intl/messages_cs.dart index a92944c0fb..03cbe0c4f5 100644 --- a/mobile/lib/generated/intl/messages_cs.dart +++ b/mobile/lib/generated/intl/messages_cs.dart @@ -89,7 +89,10 @@ class MessageLookup extends MessageLookupByLibrary { "backup": MessageLookupByLibrary.simpleMessage("Zálohovat"), "backupFile": MessageLookupByLibrary.simpleMessage("Zálohovat soubor"), "backupStatus": MessageLookupByLibrary.simpleMessage("Stav zálohování"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Narozeniny"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blog": MessageLookupByLibrary.simpleMessage("Blog"), "cachedData": MessageLookupByLibrary.simpleMessage("Data uložená v mezipaměti"), @@ -261,6 +264,8 @@ class MessageLookup extends MessageLookupByLibrary { "Generování šifrovacích klíčů..."), "goToSettings": MessageLookupByLibrary.simpleMessage("Jít do nastavení"), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "hidden": MessageLookupByLibrary.simpleMessage("Skryté"), "hide": MessageLookupByLibrary.simpleMessage("Skrýt"), "howItWorks": MessageLookupByLibrary.simpleMessage("Jak to funguje"), @@ -394,6 +399,8 @@ class MessageLookup extends MessageLookupByLibrary { "radius": MessageLookupByLibrary.simpleMessage("Rádius"), "rateUs": MessageLookupByLibrary.simpleMessage("Ohodnoť nás"), "rateUsOnStore": m67, + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recoverButton": MessageLookupByLibrary.simpleMessage("Obnovit"), "recoveryKeyVerified": MessageLookupByLibrary.simpleMessage("Obnovovací klíč byl ověřen"), diff --git a/mobile/lib/generated/intl/messages_da.dart b/mobile/lib/generated/intl/messages_da.dart index 7c27a0f1d5..32b5d4a2ab 100644 --- a/mobile/lib/generated/intl/messages_da.dart +++ b/mobile/lib/generated/intl/messages_da.dart @@ -90,6 +90,9 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Sikkerhedskopierede mapper"), "backupStatusDescription": MessageLookupByLibrary.simpleMessage( "Elementer, der er blevet sikkerhedskopieret, vil blive vist her"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "canNotOpenBody": MessageLookupByLibrary.simpleMessage( "Beklager, dette album kan ikke åbnes i appen."), "canOnlyRemoveFilesOwnedByYou": MessageLookupByLibrary.simpleMessage( @@ -228,6 +231,8 @@ class MessageLookup extends MessageLookupByLibrary { "Spar plads på din enhed ved at rydde filer, der allerede er sikkerhedskopieret."), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Genererer krypteringsnøgler..."), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "help": MessageLookupByLibrary.simpleMessage("Hjælp"), "howItWorks": MessageLookupByLibrary.simpleMessage("Sådan fungerer det"), @@ -328,6 +333,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Privatlivspolitik"), "publicLinkEnabled": MessageLookupByLibrary.simpleMessage("Offentligt link aktiveret"), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recover": MessageLookupByLibrary.simpleMessage("Gendan"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Gendan konto"), "recoverButton": MessageLookupByLibrary.simpleMessage("Gendan"), diff --git a/mobile/lib/generated/intl/messages_de.dart b/mobile/lib/generated/intl/messages_de.dart index e6a1045de3..a1fa1b85fe 100644 --- a/mobile/lib/generated/intl/messages_de.dart +++ b/mobile/lib/generated/intl/messages_de.dart @@ -84,9 +84,6 @@ class MessageLookup extends MessageLookupByLibrary { static String m21(count) => "${Intl.plural(count, one: 'Lösche ${count} Element', other: 'Lösche ${count} Elemente')}"; - static String m116(count) => - "Sollen die Fotos (und Videos) aus diesen ${count} Alben auch aus allen anderen Alben gelöscht werden, in denen sie enthalten sind?"; - static String m22(currentlyDeleting, totalCount) => "Lösche ${currentlyDeleting} / ${totalCount}"; @@ -229,8 +226,6 @@ class MessageLookup extends MessageLookupByLibrary { static String m77(snapshotLength, searchLength) => "Abschnittslänge stimmt nicht überein: ${snapshotLength} != ${searchLength}"; - static String m117(count) => "${count} ausgewählt"; - static String m78(count) => "${count} ausgewählt"; static String m79(count, yourCount) => @@ -345,9 +340,6 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Willkommen zurück!"), "ackPasswordLostWarning": MessageLookupByLibrary.simpleMessage( "Ich verstehe, dass ich meine Daten verlieren kann, wenn ich mein Passwort vergesse, da meine Daten Ende-zu-Ende-verschlüsselt sind."), - "actionNotSupportedOnFavouritesAlbum": - MessageLookupByLibrary.simpleMessage( - "Aktion für das Favoritenalbum nicht unterstützt"), "activeSessions": MessageLookupByLibrary.simpleMessage("Aktive Sitzungen"), "add": MessageLookupByLibrary.simpleMessage("Hinzufügen"), @@ -375,8 +367,6 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Details der Add-ons"), "addOnValidTill": m3, "addOns": MessageLookupByLibrary.simpleMessage("Add-ons"), - "addParticipants": - MessageLookupByLibrary.simpleMessage("Teilnehmer hinzufügen"), "addPhotos": MessageLookupByLibrary.simpleMessage("Fotos hinzufügen"), "addSelected": MessageLookupByLibrary.simpleMessage("Auswahl hinzufügen"), @@ -560,7 +550,10 @@ class MessageLookup extends MessageLookupByLibrary { "Gesicherte Elemente werden hier angezeigt"), "backupVideos": MessageLookupByLibrary.simpleMessage("Videos sichern"), "beach": MessageLookupByLibrary.simpleMessage("Am Strand"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Geburtstag"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage("Black-Friday-Aktion"), "blog": MessageLookupByLibrary.simpleMessage("Blog"), @@ -785,7 +778,6 @@ class MessageLookup extends MessageLookupByLibrary { "deleteItemCount": m21, "deleteLocation": MessageLookupByLibrary.simpleMessage("Standort löschen"), - "deleteMultipleAlbumDialog": m116, "deletePhotos": MessageLookupByLibrary.simpleMessage("Fotos löschen"), "deleteProgress": m22, "deleteReason1": MessageLookupByLibrary.simpleMessage( @@ -1086,6 +1078,8 @@ class MessageLookup extends MessageLookupByLibrary { "guestView": MessageLookupByLibrary.simpleMessage("Gastansicht"), "guestViewEnablePreSteps": MessageLookupByLibrary.simpleMessage( "Bitte richte einen Gerätepasscode oder eine Bildschirmsperre ein, um die Gastansicht zu nutzen."), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "hearUsExplanation": MessageLookupByLibrary.simpleMessage( "Wir tracken keine App-Installationen. Es würde uns jedoch helfen, wenn du uns mitteilst, wie du von uns erfahren hast!"), "hearUsWhereTitle": MessageLookupByLibrary.simpleMessage( @@ -1591,6 +1585,8 @@ class MessageLookup extends MessageLookupByLibrary { "reassignedToName": m68, "reassigningLoading": MessageLookupByLibrary.simpleMessage("Ordne neu zu..."), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recover": MessageLookupByLibrary.simpleMessage("Wiederherstellen"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Konto wiederherstellen"), @@ -1810,7 +1806,6 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Wähle dein Gesicht"), "selectYourPlan": MessageLookupByLibrary.simpleMessage("Wähle dein Abo aus"), - "selectedAlbums": m117, "selectedFilesAreNotOnEnte": MessageLookupByLibrary.simpleMessage( "Ausgewählte Dateien sind nicht auf Ente"), "selectedFoldersWillBeEncryptedAndBackedUp": diff --git a/mobile/lib/generated/intl/messages_el.dart b/mobile/lib/generated/intl/messages_el.dart index 198bc2affb..ffa4284036 100644 --- a/mobile/lib/generated/intl/messages_el.dart +++ b/mobile/lib/generated/intl/messages_el.dart @@ -22,16 +22,23 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( "Click to install our best version yet"), "enterYourEmailAddress": MessageLookupByLibrary.simpleMessage( "Εισάγετε την διεύθυνση ηλ. ταχυδρομείου σας"), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( "Look back on your memories 🌄"), "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( "Receive reminders about memories from this day in previous years."), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( "Sorry, we had to pause your backups") }; diff --git a/mobile/lib/generated/intl/messages_en.dart b/mobile/lib/generated/intl/messages_en.dart index 64c7bf315d..42eb0ef288 100644 --- a/mobile/lib/generated/intl/messages_en.dart +++ b/mobile/lib/generated/intl/messages_en.dart @@ -137,6 +137,8 @@ class MessageLookup extends MessageLookupByLibrary { static String m41(currentlyProcessing, totalCount) => "Processing ${currentlyProcessing} / ${totalCount}"; + static String m117(name) => "Happy birthday to ${name}! 🎉"; + static String m42(name) => "Hiking with ${name}"; static String m43(count) => @@ -226,7 +228,7 @@ class MessageLookup extends MessageLookupByLibrary { static String m77(snapshotLength, searchLength) => "Sections length mismatch: ${snapshotLength} != ${searchLength}"; - static String m117(count) => "${count} selected"; + static String m118(count) => "${count} selected"; static String m78(count) => "${count} selected"; @@ -551,7 +553,10 @@ class MessageLookup extends MessageLookupByLibrary { "Items that have been backed up will show up here"), "backupVideos": MessageLookupByLibrary.simpleMessage("Backup videos"), "beach": MessageLookupByLibrary.simpleMessage("Sand and sea"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Birthday"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage("Black Friday Sale"), "blog": MessageLookupByLibrary.simpleMessage("Blog"), @@ -1058,6 +1063,9 @@ class MessageLookup extends MessageLookupByLibrary { "guestView": MessageLookupByLibrary.simpleMessage("Guest view"), "guestViewEnablePreSteps": MessageLookupByLibrary.simpleMessage( "To enable guest view, please setup device passcode or screen lock in your system settings."), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), + "happyBirthdayToPerson": m117, "hearUsExplanation": MessageLookupByLibrary.simpleMessage( "We don\'t track app installs. It\'d help if you told us where you found us!"), "hearUsWhereTitle": MessageLookupByLibrary.simpleMessage( @@ -1546,6 +1554,8 @@ class MessageLookup extends MessageLookupByLibrary { "reassignedToName": m68, "reassigningLoading": MessageLookupByLibrary.simpleMessage("Reassigning..."), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recover": MessageLookupByLibrary.simpleMessage("Recover"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Recover account"), @@ -1755,7 +1765,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Select your face"), "selectYourPlan": MessageLookupByLibrary.simpleMessage("Select your plan"), - "selectedAlbums": m117, + "selectedAlbums": m118, "selectedFilesAreNotOnEnte": MessageLookupByLibrary.simpleMessage( "Selected files are not on Ente"), "selectedFoldersWillBeEncryptedAndBackedUp": diff --git a/mobile/lib/generated/intl/messages_es.dart b/mobile/lib/generated/intl/messages_es.dart index d86efb0d78..46cb3ac5fc 100644 --- a/mobile/lib/generated/intl/messages_es.dart +++ b/mobile/lib/generated/intl/messages_es.dart @@ -548,7 +548,10 @@ class MessageLookup extends MessageLookupByLibrary { "backupVideos": MessageLookupByLibrary.simpleMessage( "Copia de seguridad de vídeos"), "beach": MessageLookupByLibrary.simpleMessage("Arena y mar "), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Cumpleaños"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage("Oferta del Black Friday"), "blog": MessageLookupByLibrary.simpleMessage("Blog"), @@ -1073,6 +1076,8 @@ class MessageLookup extends MessageLookupByLibrary { "guestView": MessageLookupByLibrary.simpleMessage("Vista de invitado"), "guestViewEnablePreSteps": MessageLookupByLibrary.simpleMessage( "Para habilitar la vista de invitados, por favor configure el código de acceso del dispositivo o el bloqueo de pantalla en los ajustes de su sistema."), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "hearUsExplanation": MessageLookupByLibrary.simpleMessage( "No rastreamos las aplicaciones instaladas. ¡Nos ayudarías si nos dijeras dónde nos encontraste!"), "hearUsWhereTitle": MessageLookupByLibrary.simpleMessage( @@ -1583,6 +1588,8 @@ class MessageLookup extends MessageLookupByLibrary { "reassignedToName": m68, "reassigningLoading": MessageLookupByLibrary.simpleMessage("Reasignando..."), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recover": MessageLookupByLibrary.simpleMessage("Recuperar"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Recuperar cuenta"), diff --git a/mobile/lib/generated/intl/messages_et.dart b/mobile/lib/generated/intl/messages_et.dart index c583ea0bb2..49cc03869c 100644 --- a/mobile/lib/generated/intl/messages_et.dart +++ b/mobile/lib/generated/intl/messages_et.dart @@ -39,6 +39,9 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Luba allalaadimised"), "appleId": MessageLookupByLibrary.simpleMessage("Apple ID"), "apply": MessageLookupByLibrary.simpleMessage("Rakenda"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blog": MessageLookupByLibrary.simpleMessage("Blogi"), "cancel": MessageLookupByLibrary.simpleMessage("Loobu"), "changeEmail": MessageLookupByLibrary.simpleMessage("Muuda e-posti"), @@ -121,6 +124,8 @@ class MessageLookup extends MessageLookupByLibrary { "googlePlayId": MessageLookupByLibrary.simpleMessage("Google Play ID"), "groupNearbyPhotos": MessageLookupByLibrary.simpleMessage( "Grupeeri lähedal olevad fotod"), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "help": MessageLookupByLibrary.simpleMessage("Abiinfo"), "hidden": MessageLookupByLibrary.simpleMessage("Peidetud"), "hide": MessageLookupByLibrary.simpleMessage("Peida"), @@ -186,6 +191,8 @@ class MessageLookup extends MessageLookupByLibrary { "privacyPolicyTitle": MessageLookupByLibrary.simpleMessage("Privaatsus"), "radius": MessageLookupByLibrary.simpleMessage("Raadius"), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recoverButton": MessageLookupByLibrary.simpleMessage("Taasta"), "reddit": MessageLookupByLibrary.simpleMessage("Reddit"), "remove": MessageLookupByLibrary.simpleMessage("Eemalda"), diff --git a/mobile/lib/generated/intl/messages_eu.dart b/mobile/lib/generated/intl/messages_eu.dart index 7327bbec18..d68b76c270 100644 --- a/mobile/lib/generated/intl/messages_eu.dart +++ b/mobile/lib/generated/intl/messages_eu.dart @@ -161,6 +161,9 @@ class MessageLookup extends MessageLookupByLibrary { "Mesedez, autentifikatu zure ezkutatutako fitxategiak ikusteko"), "authToViewYourRecoveryKey": MessageLookupByLibrary.simpleMessage( "Mesedez, autentifikatu zure berreskuratze giltza ikusteko"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "canNotOpenBody": MessageLookupByLibrary.simpleMessage( "Sentitzen dugu, album hau ezin da aplikazioan ireki."), "canNotOpenTitle": @@ -353,6 +356,8 @@ class MessageLookup extends MessageLookupByLibrary { "Debaldeko biltegiratzea erabilgarri"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage("Zifratze giltzak sortzen..."), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "help": MessageLookupByLibrary.simpleMessage("Laguntza"), "hidden": MessageLookupByLibrary.simpleMessage("Ezkutatuta"), "howItWorks": @@ -462,6 +467,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Pribatutasun Politikak"), "publicLinkEnabled": MessageLookupByLibrary.simpleMessage("Esteka publikoa indarrean"), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recover": MessageLookupByLibrary.simpleMessage("Berreskuratu"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Berreskuratu kontua"), diff --git a/mobile/lib/generated/intl/messages_fa.dart b/mobile/lib/generated/intl/messages_fa.dart index 585296885c..734517eaca 100644 --- a/mobile/lib/generated/intl/messages_fa.dart +++ b/mobile/lib/generated/intl/messages_fa.dart @@ -90,6 +90,9 @@ class MessageLookup extends MessageLookupByLibrary { "backedUpFolders": MessageLookupByLibrary.simpleMessage("پوشه‌های پشتیبان گیری شده"), "backup": MessageLookupByLibrary.simpleMessage("پشتیبان گیری"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blog": MessageLookupByLibrary.simpleMessage("وبلاگ"), "cancel": MessageLookupByLibrary.simpleMessage("لغو"), "cannotDeleteSharedFiles": MessageLookupByLibrary.simpleMessage( @@ -220,6 +223,8 @@ class MessageLookup extends MessageLookupByLibrary { "grantFullAccessPrompt": MessageLookupByLibrary.simpleMessage( "لطفا اجازه دسترسی به تمام عکس‌ها را در تنظیمات برنامه بدهید"), "grantPermission": MessageLookupByLibrary.simpleMessage("دسترسی دادن"), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "hearUsExplanation": MessageLookupByLibrary.simpleMessage( "ما نصب برنامه را ردیابی نمی‌کنیم. اگر بگویید کجا ما را پیدا کردید، به ما کمک می‌کند!"), "hearUsWhereTitle": MessageLookupByLibrary.simpleMessage( @@ -299,6 +304,8 @@ class MessageLookup extends MessageLookupByLibrary { "privateSharing": MessageLookupByLibrary.simpleMessage("اشتراک گذاری خصوصی"), "rateUsOnStore": m67, + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recover": MessageLookupByLibrary.simpleMessage("بازیابی"), "recoverAccount": MessageLookupByLibrary.simpleMessage("بازیابی حساب کاربری"), diff --git a/mobile/lib/generated/intl/messages_fr.dart b/mobile/lib/generated/intl/messages_fr.dart index ea745cc3ab..dd31abd97b 100644 --- a/mobile/lib/generated/intl/messages_fr.dart +++ b/mobile/lib/generated/intl/messages_fr.dart @@ -25,6 +25,9 @@ class MessageLookup extends MessageLookupByLibrary { static String m1(count) => "${Intl.plural(count, zero: 'Ajouter un collaborateur', one: 'Ajouter un collaborateur', other: 'Ajouter des collaborateurs')}"; + static String m2(count) => + "${Intl.plural(count, one: 'Ajouter un élément', other: 'Ajouter des éléments')}"; + static String m3(storageAmount, endDate) => "Votre extension de ${storageAmount} est valable jusqu\'au ${endDate}"; @@ -82,9 +85,6 @@ class MessageLookup extends MessageLookupByLibrary { static String m21(count) => "${Intl.plural(count, one: 'Supprimer le fichier', other: 'Supprimer ${count} fichiers')}"; - static String m116(count) => - "Supprimer également les photos (et les vidéos) présentes dans ces ${count} albums de tous les autres albums dont ils font partie ?"; - static String m22(currentlyDeleting, totalCount) => "Suppression de ${currentlyDeleting} / ${totalCount}"; @@ -157,6 +157,9 @@ class MessageLookup extends MessageLookupByLibrary { static String m49(count, formattedCount) => "${Intl.plural(count, zero: 'aucun souvenir', one: '${formattedCount} souvenir', other: '${formattedCount} souvenirs')}"; + static String m50(count) => + "${Intl.plural(count, one: 'Déplacer un élément', other: 'Déplacer des éléments')}"; + static String m51(albumName) => "Déplacé avec succès vers ${albumName}"; static String m52(personName) => "Aucune suggestion pour ${personName}"; @@ -223,8 +226,6 @@ class MessageLookup extends MessageLookupByLibrary { static String m77(snapshotLength, searchLength) => "Incompatibilité de longueur des sections : ${snapshotLength} != ${searchLength}"; - static String m117(count) => "${count} sélectionné(s)"; - static String m78(count) => "${count} sélectionné(s)"; static String m79(count, yourCount) => @@ -338,9 +339,6 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Bon retour parmi nous !"), "ackPasswordLostWarning": MessageLookupByLibrary.simpleMessage( "Je comprends que si je perds mon mot de passe, je perdrai mes données puisque mes données sont chiffrées de bout en bout."), - "actionNotSupportedOnFavouritesAlbum": - MessageLookupByLibrary.simpleMessage( - "Action non prise en charge sur l\'album des Favoris"), "activeSessions": MessageLookupByLibrary.simpleMessage("Sessions actives"), "add": MessageLookupByLibrary.simpleMessage("Ajouter"), @@ -354,6 +352,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Ajouter des fichiers"), "addFromDevice": MessageLookupByLibrary.simpleMessage("Ajouter depuis l\'appareil"), + "addItem": m2, "addLocation": MessageLookupByLibrary.simpleMessage("Ajouter la localisation"), "addLocationButton": MessageLookupByLibrary.simpleMessage("Ajouter"), @@ -369,8 +368,6 @@ class MessageLookup extends MessageLookupByLibrary { "addOnValidTill": m3, "addOns": MessageLookupByLibrary.simpleMessage("Modules complémentaires"), - "addParticipants": - MessageLookupByLibrary.simpleMessage("Ajouter des participants"), "addPhotos": MessageLookupByLibrary.simpleMessage("Ajouter des photos"), "addSelected": MessageLookupByLibrary.simpleMessage("Ajouter la sélection"), @@ -558,7 +555,10 @@ class MessageLookup extends MessageLookupByLibrary { "backupVideos": MessageLookupByLibrary.simpleMessage("Sauvegarde des vidéos"), "beach": MessageLookupByLibrary.simpleMessage("Sable et mer"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Anniversaire"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage("Offre Black Friday"), "blog": MessageLookupByLibrary.simpleMessage("Blog"), @@ -789,7 +789,6 @@ class MessageLookup extends MessageLookupByLibrary { "deleteItemCount": m21, "deleteLocation": MessageLookupByLibrary.simpleMessage("Supprimer la localisation"), - "deleteMultipleAlbumDialog": m116, "deletePhotos": MessageLookupByLibrary.simpleMessage("Supprimer des photos"), "deleteProgress": m22, @@ -1095,6 +1094,8 @@ class MessageLookup extends MessageLookupByLibrary { "guestView": MessageLookupByLibrary.simpleMessage("Vue invité"), "guestViewEnablePreSteps": MessageLookupByLibrary.simpleMessage( "Pour activer la vue invité, veuillez configurer le code d\'accès de l\'appareil ou le verrouillage de l\'écran dans les paramètres de votre système."), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "hearUsExplanation": MessageLookupByLibrary.simpleMessage( "Nous ne suivons pas les installations d\'applications. Il serait utile que vous nous disiez comment vous nous avez trouvés !"), "hearUsWhereTitle": MessageLookupByLibrary.simpleMessage( @@ -1362,6 +1363,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Les plus pertinents"), "mountains": MessageLookupByLibrary.simpleMessage("Au-dessus des collines"), + "moveItem": m50, "moveSelectedPhotosToOneDate": MessageLookupByLibrary.simpleMessage( "Déplacer les photos sélectionnées vers une date"), "moveToAlbum": @@ -1616,6 +1618,8 @@ class MessageLookup extends MessageLookupByLibrary { "reassignedToName": m68, "reassigningLoading": MessageLookupByLibrary.simpleMessage("Réassignation..."), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recover": MessageLookupByLibrary.simpleMessage("Récupérer"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Récupérer un compte"), @@ -1842,7 +1846,6 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Sélectionnez votre visage"), "selectYourPlan": MessageLookupByLibrary.simpleMessage("Sélectionner votre offre"), - "selectedAlbums": m117, "selectedFilesAreNotOnEnte": MessageLookupByLibrary.simpleMessage( "Les fichiers sélectionnés ne sont pas sur Ente"), "selectedFoldersWillBeEncryptedAndBackedUp": diff --git a/mobile/lib/generated/intl/messages_gu.dart b/mobile/lib/generated/intl/messages_gu.dart index 9defce9a5d..b33133b55f 100644 --- a/mobile/lib/generated/intl/messages_gu.dart +++ b/mobile/lib/generated/intl/messages_gu.dart @@ -22,14 +22,21 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( "Click to install our best version yet"), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( "Look back on your memories 🌄"), "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( "Receive reminders about memories from this day in previous years."), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( "Sorry, we had to pause your backups") }; diff --git a/mobile/lib/generated/intl/messages_he.dart b/mobile/lib/generated/intl/messages_he.dart index 1dc7ace827..3a16f3233f 100644 --- a/mobile/lib/generated/intl/messages_he.dart +++ b/mobile/lib/generated/intl/messages_he.dart @@ -223,6 +223,9 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("גבה על רשת סלולרית"), "backupSettings": MessageLookupByLibrary.simpleMessage("הגדרות גיבוי"), "backupVideos": MessageLookupByLibrary.simpleMessage("גבה סרטונים"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blog": MessageLookupByLibrary.simpleMessage("בלוג"), "cachedData": MessageLookupByLibrary.simpleMessage("נתונים מוטמנים"), "canNotUploadToAlbumsOwnedByOthers": @@ -482,6 +485,8 @@ class MessageLookup extends MessageLookupByLibrary { "grantFullAccessPrompt": MessageLookupByLibrary.simpleMessage( "נא לתת גישה לכל התמונות בתוך ההגדרות של הטלפון"), "grantPermission": MessageLookupByLibrary.simpleMessage("הענק הרשאה"), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "hidden": MessageLookupByLibrary.simpleMessage("מוסתר"), "hide": MessageLookupByLibrary.simpleMessage("הסתר"), "hiding": MessageLookupByLibrary.simpleMessage("מחביא..."), @@ -654,6 +659,8 @@ class MessageLookup extends MessageLookupByLibrary { "rateTheApp": MessageLookupByLibrary.simpleMessage("דרג את האפליקציה"), "rateUs": MessageLookupByLibrary.simpleMessage("דרג אותנו"), "rateUsOnStore": m67, + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recover": MessageLookupByLibrary.simpleMessage("שחזר"), "recoverAccount": MessageLookupByLibrary.simpleMessage("שחזר חשבון"), "recoverButton": MessageLookupByLibrary.simpleMessage("שחזר"), diff --git a/mobile/lib/generated/intl/messages_hi.dart b/mobile/lib/generated/intl/messages_hi.dart index 59162b906f..038a53f87d 100644 --- a/mobile/lib/generated/intl/messages_hi.dart +++ b/mobile/lib/generated/intl/messages_hi.dart @@ -27,6 +27,9 @@ class MessageLookup extends MessageLookupByLibrary { "activeSessions": MessageLookupByLibrary.simpleMessage("एक्टिव सेशन"), "askDeleteReason": MessageLookupByLibrary.simpleMessage( "आपका अकाउंट हटाने का मुख्य कारण क्या है?"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "cancel": MessageLookupByLibrary.simpleMessage("रद्द करें"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( "Click to install our best version yet"), @@ -69,6 +72,8 @@ class MessageLookup extends MessageLookupByLibrary { "feedback": MessageLookupByLibrary.simpleMessage("प्रतिपुष्टि"), "forgotPassword": MessageLookupByLibrary.simpleMessage("पासवर्ड भूल गए"), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "incorrectRecoveryKeyBody": MessageLookupByLibrary.simpleMessage( "आपके द्वारा दर्ज रिकवरी कुंजी ग़लत है"), "incorrectRecoveryKeyTitle": @@ -90,6 +95,8 @@ class MessageLookup extends MessageLookupByLibrary { "Receive reminders about memories from this day in previous years."), "oops": MessageLookupByLibrary.simpleMessage("ओह!"), "password": MessageLookupByLibrary.simpleMessage("पासवर्ड"), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recoverButton": MessageLookupByLibrary.simpleMessage("पुनः प्राप्त"), "recoverySuccessful": MessageLookupByLibrary.simpleMessage("रिकवरी सफल हुई!"), diff --git a/mobile/lib/generated/intl/messages_hu.dart b/mobile/lib/generated/intl/messages_hu.dart index 90bbe64bf5..accc2cd93e 100644 --- a/mobile/lib/generated/intl/messages_hu.dart +++ b/mobile/lib/generated/intl/messages_hu.dart @@ -26,6 +26,9 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Köszöntjük ismét!"), "askDeleteReason": MessageLookupByLibrary.simpleMessage("Miért törli a fiókját?"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "cancel": MessageLookupByLibrary.simpleMessage("Mégse"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( "Click to install our best version yet"), @@ -38,6 +41,8 @@ class MessageLookup extends MessageLookupByLibrary { "enterYourEmailAddress": MessageLookupByLibrary.simpleMessage("Adja meg az e-mail címét"), "feedback": MessageLookupByLibrary.simpleMessage("Visszajelzés"), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "invalidEmailAddress": MessageLookupByLibrary.simpleMessage("Érvénytelen e-mail cím"), "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( @@ -46,6 +51,8 @@ class MessageLookup extends MessageLookupByLibrary { "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( "Receive reminders about memories from this day in previous years."), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( "Sorry, we had to pause your backups"), "verify": MessageLookupByLibrary.simpleMessage("Hitelesítés") diff --git a/mobile/lib/generated/intl/messages_id.dart b/mobile/lib/generated/intl/messages_id.dart index 131cd0fdab..2ba0310ea6 100644 --- a/mobile/lib/generated/intl/messages_id.dart +++ b/mobile/lib/generated/intl/messages_id.dart @@ -342,6 +342,9 @@ class MessageLookup extends MessageLookupByLibrary { "backupStatusDescription": MessageLookupByLibrary.simpleMessage( "Item yang sudah dicadangkan akan terlihat di sini"), "backupVideos": MessageLookupByLibrary.simpleMessage("Cadangkan video"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage("Penawaran Black Friday"), "blog": MessageLookupByLibrary.simpleMessage("Blog"), @@ -589,6 +592,8 @@ class MessageLookup extends MessageLookupByLibrary { "Perubahan lokasi hanya akan terlihat di Ente"), "eligible": MessageLookupByLibrary.simpleMessage("memenuhi syarat"), "email": MessageLookupByLibrary.simpleMessage("Email"), + "emailAlreadyRegistered": + MessageLookupByLibrary.simpleMessage("Email sudah terdaftar."), "emailChangedTo": m28, "emailNoEnteAccount": m30, "emailVerificationToggle": @@ -638,6 +643,8 @@ class MessageLookup extends MessageLookupByLibrary { "Harap masukkan alamat email yang sah."), "enterYourEmailAddress": MessageLookupByLibrary.simpleMessage("Masukkan alamat email kamu"), + "enterYourNewEmailAddress": MessageLookupByLibrary.simpleMessage( + "Masukkan alamat email baru anda"), "enterYourPassword": MessageLookupByLibrary.simpleMessage("Masukkan sandi kamu"), "enterYourRecoveryKey": MessageLookupByLibrary.simpleMessage( @@ -725,6 +732,8 @@ class MessageLookup extends MessageLookupByLibrary { "grantPermission": MessageLookupByLibrary.simpleMessage("Berikan izin"), "groupNearbyPhotos": MessageLookupByLibrary.simpleMessage( "Kelompokkan foto yang berdekatan"), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "hearUsWhereTitle": MessageLookupByLibrary.simpleMessage( "Dari mana Anda menemukan Ente? (opsional)"), "help": MessageLookupByLibrary.simpleMessage("Bantuan"), @@ -1053,6 +1062,8 @@ class MessageLookup extends MessageLookupByLibrary { "rateTheApp": MessageLookupByLibrary.simpleMessage("Nilai app ini"), "rateUs": MessageLookupByLibrary.simpleMessage("Beri kami nilai"), "rateUsOnStore": m67, + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recover": MessageLookupByLibrary.simpleMessage("Pulihkan"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Pulihkan akun"), "recoverButton": MessageLookupByLibrary.simpleMessage("Pulihkan"), diff --git a/mobile/lib/generated/intl/messages_it.dart b/mobile/lib/generated/intl/messages_it.dart index b08b489223..e1c38a4ba2 100644 --- a/mobile/lib/generated/intl/messages_it.dart +++ b/mobile/lib/generated/intl/messages_it.dart @@ -456,7 +456,10 @@ class MessageLookup extends MessageLookupByLibrary { "Gli elementi che sono stati sottoposti a backup verranno mostrati qui"), "backupVideos": MessageLookupByLibrary.simpleMessage("Backup dei video"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Compleanno"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage("Offerta del Black Friday"), "blog": MessageLookupByLibrary.simpleMessage("Blog"), @@ -959,6 +962,8 @@ class MessageLookup extends MessageLookupByLibrary { "guestView": MessageLookupByLibrary.simpleMessage("Vista ospite"), "guestViewEnablePreSteps": MessageLookupByLibrary.simpleMessage( "Per abilitare la vista ospite, configura il codice di accesso del dispositivo o il blocco schermo nelle impostazioni di sistema."), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "hearUsExplanation": MessageLookupByLibrary.simpleMessage( "Non teniamo traccia del numero di installazioni dell\'app. Sarebbe utile se ci dicesse dove ci ha trovato!"), "hearUsWhereTitle": MessageLookupByLibrary.simpleMessage( @@ -1419,6 +1424,8 @@ class MessageLookup extends MessageLookupByLibrary { "reassignedToName": m68, "reassigningLoading": MessageLookupByLibrary.simpleMessage("Riassegnando..."), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recover": MessageLookupByLibrary.simpleMessage("Recupera"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Recupera account"), diff --git a/mobile/lib/generated/intl/messages_ja.dart b/mobile/lib/generated/intl/messages_ja.dart index 89896ac4f1..0ad4ce9300 100644 --- a/mobile/lib/generated/intl/messages_ja.dart +++ b/mobile/lib/generated/intl/messages_ja.dart @@ -458,7 +458,10 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("バックアップされたアイテムがここに表示されます"), "backupVideos": MessageLookupByLibrary.simpleMessage("動画をバックアップ"), "beach": MessageLookupByLibrary.simpleMessage("砂浜と海"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("誕生日"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage("ブラックフライデーセール"), "blog": MessageLookupByLibrary.simpleMessage("ブログ"), "cachedData": MessageLookupByLibrary.simpleMessage("キャッシュデータ"), @@ -888,6 +891,8 @@ class MessageLookup extends MessageLookupByLibrary { "guestView": MessageLookupByLibrary.simpleMessage("ゲストビュー"), "guestViewEnablePreSteps": MessageLookupByLibrary.simpleMessage( "アプリのロックを有効にするには、システム設定でデバイスのパスコードまたは画面ロックを設定してください。"), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "hearUsExplanation": MessageLookupByLibrary.simpleMessage( "私たちはアプリのインストールを追跡していませんが、もしよければ、Enteをお知りになった場所を教えてください!"), "hearUsWhereTitle": MessageLookupByLibrary.simpleMessage( @@ -1319,6 +1324,8 @@ class MessageLookup extends MessageLookupByLibrary { "reassignMe": MessageLookupByLibrary.simpleMessage("\"自分\" を再割り当て"), "reassignedToName": m68, "reassigningLoading": MessageLookupByLibrary.simpleMessage("再割り当て中..."), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recover": MessageLookupByLibrary.simpleMessage("復元"), "recoverAccount": MessageLookupByLibrary.simpleMessage("アカウントを復元"), "recoverButton": MessageLookupByLibrary.simpleMessage("復元"), diff --git a/mobile/lib/generated/intl/messages_km.dart b/mobile/lib/generated/intl/messages_km.dart index 7def70d59c..d8bf3b8557 100644 --- a/mobile/lib/generated/intl/messages_km.dart +++ b/mobile/lib/generated/intl/messages_km.dart @@ -22,14 +22,21 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( "Click to install our best version yet"), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( "Look back on your memories 🌄"), "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( "Receive reminders about memories from this day in previous years."), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( "Sorry, we had to pause your backups") }; diff --git a/mobile/lib/generated/intl/messages_ko.dart b/mobile/lib/generated/intl/messages_ko.dart index 9e92894916..7598713d99 100644 --- a/mobile/lib/generated/intl/messages_ko.dart +++ b/mobile/lib/generated/intl/messages_ko.dart @@ -26,6 +26,9 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("다시 오신 것을 환영합니다!"), "askDeleteReason": MessageLookupByLibrary.simpleMessage("계정을 삭제하는 가장 큰 이유가 무엇인가요?"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "cancel": MessageLookupByLibrary.simpleMessage("닫기"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( "Click to install our best version yet"), @@ -40,6 +43,8 @@ class MessageLookup extends MessageLookupByLibrary { "enterYourEmailAddress": MessageLookupByLibrary.simpleMessage("이메일을 입력하세요"), "feedback": MessageLookupByLibrary.simpleMessage("피드백"), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "invalidEmailAddress": MessageLookupByLibrary.simpleMessage("잘못된 이메일 주소"), "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( @@ -48,6 +53,8 @@ class MessageLookup extends MessageLookupByLibrary { "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( "Receive reminders about memories from this day in previous years."), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( "Sorry, we had to pause your backups"), "verify": MessageLookupByLibrary.simpleMessage("인증"), diff --git a/mobile/lib/generated/intl/messages_lt.dart b/mobile/lib/generated/intl/messages_lt.dart index f929fc432f..e4604d257c 100644 --- a/mobile/lib/generated/intl/messages_lt.dart +++ b/mobile/lib/generated/intl/messages_lt.dart @@ -45,6 +45,9 @@ class MessageLookup extends MessageLookupByLibrary { static String m9(versionValue) => "Versija: ${versionValue}"; + static String m10(freeAmount, storageUnit) => + "${freeAmount} ${storageUnit} laisva"; + static String m11(name) => "Gražūs vaizdai su ${name}"; static String m12(paymentProvider) => @@ -67,7 +70,7 @@ class MessageLookup extends MessageLookupByLibrary { "${Intl.plural(count, zero: 'Pridėta 0 bendradarbių', one: 'Pridėtas 1 bendradarbis', other: 'Pridėta ${count} bendradarbių')}"; static String m17(email, numOfDays) => - "Ketinate pridėti ${email} kaip patikimą kontaktą. Jie galės atkurti jūsų paskyrą, jei jūsų nebus ${numOfDays} dienų."; + "Ketinate įtraukti ${email} kaip patikimą kontaktą. Jie galės atkurti jūsų paskyrą, jei jūsų nebus ${numOfDays} dienų."; static String m18(familyAdminEmail) => "Susisiekite su ${familyAdminEmail}, kad sutvarkytumėte savo prenumeratą."; @@ -95,6 +98,8 @@ class MessageLookup extends MessageLookupByLibrary { static String m26(count, formattedSize) => "${count} failai (-ų), kiekvienas ${formattedSize}"; + static String m27(name) => "Šis el. paštas jau susietas su ${name}."; + static String m28(newEmail) => "El. paštas pakeistas į ${newEmail}"; static String m29(email) => "${email} neturi „Ente“ paskyros."; @@ -102,8 +107,15 @@ class MessageLookup extends MessageLookupByLibrary { static String m30(email) => "${email} neturi „Ente“ paskyros.\n\nSiųskite jiems kvietimą bendrinti nuotraukas."; + static String m31(name) => "Apkabinat ${name}"; + static String m32(text) => "Rastos papildomos nuotraukos, skirtos ${text}"; + static String m33(name) => "Vaišiavimas su ${name}"; + + static String m34(count, formattedNumber) => + "${Intl.plural(count, one: '${formattedNumber} failas šiame įrenginyje saugiai sukurta atsarginė kopija', few: '${formattedNumber} failai šiame įrenginyje saugiai sukurtos atsarginės kopijos', many: '${formattedNumber} failo šiame įrenginyje saugiai sukurtos atsargines kopijos', other: '${formattedNumber} failų šiame įrenginyje saugiai sukurta atsarginių kopijų')}."; + static String m35(count, formattedNumber) => "${Intl.plural(count, one: '${formattedNumber} failas šiame albume saugiai sukurta atsarginė kopija', few: '${formattedNumber} failai šiame albume saugiai sukurtos atsarginės kopijos', many: '${formattedNumber} failo šiame albume saugiai sukurtos atsargines kopijos', other: '${formattedNumber} failų šiame albume saugiai sukurta atsarginė kopija')}."; @@ -124,13 +136,19 @@ class MessageLookup extends MessageLookupByLibrary { static String m41(currentlyProcessing, totalCount) => "Apdorojama ${currentlyProcessing} / ${totalCount}"; + static String m42(name) => "Žygiavimas su ${name}"; + static String m43(count) => "${Intl.plural(count, one: '${count} elementas', other: '${count} elementų')}"; + static String m44(name) => "Paskutinį kartą su ${name}"; + static String m45(email) => "${email} pakvietė jus būti patikimu kontaktu"; static String m46(expiryTime) => "Nuoroda nebegalios ${expiryTime}"; + static String m47(email) => "Susieti asmenį su ${email}"; + static String m48(personName, email) => "Tai susies ${personName} su ${email}."; @@ -149,20 +167,33 @@ class MessageLookup extends MessageLookupByLibrary { static String m54(familyAdminEmail) => "Susisiekite su ${familyAdminEmail}, kad pakeistumėte savo kodą."; + static String m55(name) => "Vakarėlis su ${name}"; + static String m56(passwordStrengthValue) => "Slaptažodžio stiprumas: ${passwordStrengthValue}"; static String m57(providerName) => "Kreipkitės į ${providerName} palaikymo komandą, jei jums buvo nuskaičiuota."; + static String m58(name, age) => "${name} yra ${age} m.!"; + + static String m59(name, age) => "${name} netrukus sulauks ${age} m."; + static String m60(count) => "${Intl.plural(count, zero: 'Nėra nuotraukų', one: '1 nuotrauka', other: '${count} nuotraukų')}"; + static String m61(count) => + "${Intl.plural(count, zero: '0 nuotraukų', one: '1 nuotrauka', few: '${count} nuotraukos', many: '${count} nuotraukos', other: '${count} nuotraukų')}"; + static String m62(endDate) => "Nemokama bandomoji versija galioja iki ${endDate}.\nVėliau galėsite pasirinkti mokamą planą."; + static String m63(toEmail) => "Siųskite el. laišką mums adresu ${toEmail}."; + static String m64(toEmail) => "Siųskite žurnalus adresu\n${toEmail}"; + static String m65(name) => "Pozavimas su ${name}"; + static String m66(folderName) => "Apdorojama ${folderName}..."; static String m67(storeName) => "Vertinti mus parduotuvėje „${storeName}“"; @@ -185,6 +216,8 @@ class MessageLookup extends MessageLookupByLibrary { static String m74(endDate) => "Prenumerata pratęsiama ${endDate}"; + static String m75(name) => "Kelionė su ${name}"; + static String m76(count) => "${Intl.plural(count, one: 'Rastas ${count} rezultatas', other: 'Rasta ${count} rezultatų')}"; @@ -196,6 +229,8 @@ class MessageLookup extends MessageLookupByLibrary { static String m79(count, yourCount) => "${count} pasirinkta (${yourCount} jūsų)"; + static String m80(name) => "Asmenukės su ${name}"; + static String m81(verificationID) => "Štai mano patvirtinimo ID: ${verificationID}, skirta ente.io."; @@ -218,8 +253,16 @@ class MessageLookup extends MessageLookupByLibrary { static String m88(fileType) => "Šis ${fileType} bus ištrintas iš „Ente“."; + static String m89(name) => "Sportai su ${name}"; + + static String m90(name) => "Dėmesys ${name}"; + static String m91(storageAmountInGB) => "${storageAmountInGB} GB"; + static String m92( + usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => + "${usedAmount} ${usedStorageUnit} iš ${totalAmount} ${totalStorageUnit} naudojama"; + static String m93(id) => "Jūsų ${id} jau susietas su kita „Ente“ paskyra.\nJei norite naudoti savo ${id} su šia paskyra, susisiekite su mūsų palaikymo komanda."; @@ -263,6 +306,11 @@ class MessageLookup extends MessageLookupByLibrary { static String m109(email) => "Patvirtinti ${email}"; + static String m110(name) => "Peržiūrėkite ${name}, kad atsietumėte"; + + static String m111(count) => + "${Intl.plural(count, zero: 'Įtraukta 0 žiūrėtojų', one: 'Įtrauktas 1 žiūrėtojas', few: 'Įtraukti ${count} žiūrėtojai', many: 'Įtraukta ${count} žiūrėtojo', other: 'Įtraukta ${count} žiūrėtojų')}"; + static String m112(email) => "Išsiuntėme laišką adresu ${email}"; @@ -293,11 +341,13 @@ class MessageLookup extends MessageLookupByLibrary { "add": MessageLookupByLibrary.simpleMessage("Pridėti"), "addAName": MessageLookupByLibrary.simpleMessage("Pridėti vardą"), "addANewEmail": - MessageLookupByLibrary.simpleMessage("Pridėti naują el. paštą"), + MessageLookupByLibrary.simpleMessage("Įtraukite naują el. paštą"), "addCollaborator": MessageLookupByLibrary.simpleMessage("Pridėti bendradarbį"), "addCollaborators": m1, "addFiles": MessageLookupByLibrary.simpleMessage("Pridėti failus"), + "addFromDevice": + MessageLookupByLibrary.simpleMessage("Pridėti iš įrenginio"), "addItem": m2, "addLocation": MessageLookupByLibrary.simpleMessage("Pridėti vietovę"), "addLocationButton": MessageLookupByLibrary.simpleMessage("Pridėti"), @@ -312,12 +362,19 @@ class MessageLookup extends MessageLookupByLibrary { "Išsami informacija apie priedus"), "addOnValidTill": m3, "addOns": MessageLookupByLibrary.simpleMessage("Priedai"), + "addPhotos": MessageLookupByLibrary.simpleMessage("Įtraukti nuotraukų"), + "addSelected": + MessageLookupByLibrary.simpleMessage("Pridėti pasirinktus"), "addToAlbum": MessageLookupByLibrary.simpleMessage("Pridėti į albumą"), "addToEnte": MessageLookupByLibrary.simpleMessage("Pridėti į „Ente“"), + "addToHiddenAlbum": + MessageLookupByLibrary.simpleMessage("Įtraukti į paslėptą albumą"), "addTrustedContact": MessageLookupByLibrary.simpleMessage("Pridėti patikimą kontaktą"), "addViewer": MessageLookupByLibrary.simpleMessage("Pridėti žiūrėtoją"), "addViewers": m4, + "addYourPhotosNow": MessageLookupByLibrary.simpleMessage( + "Įtraukite savo nuotraukas dabar"), "addedAs": MessageLookupByLibrary.simpleMessage("Pridėta kaip"), "addedBy": m5, "addedSuccessfullyTo": m6, @@ -363,8 +420,12 @@ class MessageLookup extends MessageLookupByLibrary { "Leisti prieigą prie nuotraukų"), "androidBiometricHint": MessageLookupByLibrary.simpleMessage("Patvirtinkite tapatybę"), + "androidBiometricNotRecognized": MessageLookupByLibrary.simpleMessage( + "Neatpažinta. Bandykite dar kartą."), "androidBiometricRequiredTitle": MessageLookupByLibrary.simpleMessage("Privaloma biometrija"), + "androidBiometricSuccess": + MessageLookupByLibrary.simpleMessage("Sėkmė"), "androidCancelButton": MessageLookupByLibrary.simpleMessage("Atšaukti"), "androidDeviceCredentialsRequiredTitle": MessageLookupByLibrary.simpleMessage( @@ -454,6 +515,8 @@ class MessageLookup extends MessageLookupByLibrary { "Tapatybės nustatymas sėkmingas."), "autoCastDialogBody": MessageLookupByLibrary.simpleMessage( "Čia matysite pasiekiamus perdavimo įrenginius."), + "autoCastiOSPermission": MessageLookupByLibrary.simpleMessage( + "Įsitikinkite, kad programai „Ente“ nuotraukos yra įjungti vietinio tinklo leidimai, nustatymuose."), "autoLock": MessageLookupByLibrary.simpleMessage("Automatinis užraktas"), "autoLockFeatureDescription": MessageLookupByLibrary.simpleMessage( @@ -465,6 +528,7 @@ class MessageLookup extends MessageLookupByLibrary { "autoPairDesc": MessageLookupByLibrary.simpleMessage( "Automatinis susiejimas veikia tik su įrenginiais, kurie palaiko „Chromecast“."), "available": MessageLookupByLibrary.simpleMessage("Prieinama"), + "availableStorageSpace": m10, "backedUpFolders": MessageLookupByLibrary.simpleMessage( "Sukurtos atsarginės aplankų kopijos"), "backgroundWithThem": m11, @@ -485,7 +549,10 @@ class MessageLookup extends MessageLookupByLibrary { "backupVideos": MessageLookupByLibrary.simpleMessage( "Kurti atsargines vaizdo įrašų kopijas"), "beach": MessageLookupByLibrary.simpleMessage("Smėlis ir jūra"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Gimtadienis"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage( "Juodojo penktadienio išpardavimas"), "blog": MessageLookupByLibrary.simpleMessage("Tinklaraštis"), @@ -522,7 +589,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Nepavyko perduoti albumo"), "castInstruction": MessageLookupByLibrary.simpleMessage( "Aplankykite cast.ente.io įrenginyje, kurį norite susieti.\n\nĮveskite toliau esantį kodą, kad paleistumėte albumą televizoriuje."), - "centerPoint": MessageLookupByLibrary.simpleMessage("Vidurio taškas"), + "centerPoint": MessageLookupByLibrary.simpleMessage("Centro taškas"), "change": MessageLookupByLibrary.simpleMessage("Keisti"), "changeEmail": MessageLookupByLibrary.simpleMessage("Keisti el. paštą"), "changeLocationOfSelectedItems": MessageLookupByLibrary.simpleMessage( @@ -556,6 +623,7 @@ class MessageLookup extends MessageLookupByLibrary { "clearCaches": MessageLookupByLibrary.simpleMessage("Valyti podėlius"), "clearIndexes": MessageLookupByLibrary.simpleMessage("Valyti indeksavimus"), + "click": MessageLookupByLibrary.simpleMessage("• Spauskite"), "clickOnTheOverflowMenu": MessageLookupByLibrary.simpleMessage( "• Spustelėkite ant perpildymo meniu"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( @@ -620,6 +688,7 @@ class MessageLookup extends MessageLookupByLibrary { "Susisiekti su palaikymo komanda"), "contactToManageSubscription": m19, "contacts": MessageLookupByLibrary.simpleMessage("Kontaktai"), + "contents": MessageLookupByLibrary.simpleMessage("Turinys"), "continueLabel": MessageLookupByLibrary.simpleMessage("Tęsti"), "continueOnFreeTrial": MessageLookupByLibrary.simpleMessage( "Tęsti nemokame bandomajame laikotarpyje"), @@ -638,6 +707,8 @@ class MessageLookup extends MessageLookupByLibrary { "couldNotUpdateSubscription": MessageLookupByLibrary.simpleMessage( "Nepavyko atnaujinti prenumeratos"), "count": MessageLookupByLibrary.simpleMessage("Skaičių"), + "crashReporting": + MessageLookupByLibrary.simpleMessage("Pranešti apie strigčius"), "create": MessageLookupByLibrary.simpleMessage("Kurti"), "createAccount": MessageLookupByLibrary.simpleMessage("Kurti paskyrą"), "createAlbumActionHint": MessageLookupByLibrary.simpleMessage( @@ -773,10 +844,14 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Lankymo kortelės"), "discover_wallpapers": MessageLookupByLibrary.simpleMessage("Ekrano fonai"), + "dismiss": MessageLookupByLibrary.simpleMessage("Atmesti"), "distanceInKMUnit": MessageLookupByLibrary.simpleMessage("km"), "doNotSignOut": MessageLookupByLibrary.simpleMessage("Neatsijungti"), "doThisLater": MessageLookupByLibrary.simpleMessage("Daryti tai vėliau"), + "doYouWantToDiscardTheEditsYouHaveMade": + MessageLookupByLibrary.simpleMessage( + "Ar norite atmesti atliktus pakeitimus?"), "done": MessageLookupByLibrary.simpleMessage("Atlikta"), "dontSave": MessageLookupByLibrary.simpleMessage("Neišsaugoti"), "doubleYourStorage": @@ -789,12 +864,15 @@ class MessageLookup extends MessageLookupByLibrary { "duplicateFileCountWithStorageSaved": m25, "duplicateItemsGroup": m26, "edit": MessageLookupByLibrary.simpleMessage("Redaguoti"), + "editEmailAlreadyLinked": m27, "editLocation": MessageLookupByLibrary.simpleMessage("Redaguoti vietovę"), "editLocationTagTitle": MessageLookupByLibrary.simpleMessage("Redaguoti vietovę"), "editPerson": MessageLookupByLibrary.simpleMessage("Redaguoti asmenį"), "editTime": MessageLookupByLibrary.simpleMessage("Redaguoti laiką"), + "editsSaved": + MessageLookupByLibrary.simpleMessage("Redagavimai išsaugoti"), "editsToLocationWillOnlyBeSeenWithinEnte": MessageLookupByLibrary.simpleMessage( "Vietovės pakeitimai bus matomi tik per „Ente“"), @@ -811,6 +889,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("El. pašto patvirtinimas"), "emailYourLogs": MessageLookupByLibrary.simpleMessage( "Atsiųskite žurnalus el. laišku"), + "embracingThem": m31, "emergencyContacts": MessageLookupByLibrary.simpleMessage("Skubios pagalbos kontaktai"), "empty": MessageLookupByLibrary.simpleMessage("Ištuštinti"), @@ -853,6 +932,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Gimtadienis (neprivaloma)"), "enterEmail": MessageLookupByLibrary.simpleMessage("Įveskite el. paštą"), + "enterFileName": + MessageLookupByLibrary.simpleMessage("Įveskite failo pavadinimą"), "enterName": MessageLookupByLibrary.simpleMessage("Įveskite vardą"), "enterNewPasswordToEncrypt": MessageLookupByLibrary.simpleMessage( "Įveskite naują slaptažodį, kurį galime naudoti jūsų duomenims šifruoti"), @@ -872,6 +953,8 @@ class MessageLookup extends MessageLookupByLibrary { "Įveskite tinkamą el. pašto adresą."), "enterYourEmailAddress": MessageLookupByLibrary.simpleMessage( "Įveskite savo el. pašto adresą"), + "enterYourNewEmailAddress": MessageLookupByLibrary.simpleMessage( + "Įveskite savo naują el. pašto adresą"), "enterYourPassword": MessageLookupByLibrary.simpleMessage("Įveskite savo slaptažodį"), "enterYourRecoveryKey": @@ -900,6 +983,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Nepavyko pritaikyti kodo."), "failedToCancel": MessageLookupByLibrary.simpleMessage("Nepavyko atsisakyti"), + "failedToDownloadVideo": MessageLookupByLibrary.simpleMessage( + "Nepavyko atsisiųsti vaizdo įrašo."), "failedToFetchActiveSessions": MessageLookupByLibrary.simpleMessage( "Nepavyko gauti aktyvių seansų."), "failedToFetchOriginalForEdit": MessageLookupByLibrary.simpleMessage( @@ -924,6 +1009,7 @@ class MessageLookup extends MessageLookupByLibrary { "faq": MessageLookupByLibrary.simpleMessage("DUK"), "faqs": MessageLookupByLibrary.simpleMessage("DUK"), "favorite": MessageLookupByLibrary.simpleMessage("Pamėgti"), + "feastingWithThem": m33, "feedback": MessageLookupByLibrary.simpleMessage("Atsiliepimai"), "file": MessageLookupByLibrary.simpleMessage("Failas"), "fileFailedToSaveToGallery": MessageLookupByLibrary.simpleMessage( @@ -935,13 +1021,18 @@ class MessageLookup extends MessageLookupByLibrary { "fileSavedToGallery": MessageLookupByLibrary.simpleMessage( "Failas išsaugotas į galeriją"), "fileTypes": MessageLookupByLibrary.simpleMessage("Failų tipai"), + "fileTypesAndNames": + MessageLookupByLibrary.simpleMessage("Failų tipai ir pavadinimai"), + "filesBackedUpFromDevice": m34, "filesBackedUpInAlbum": m35, + "filesDeleted": MessageLookupByLibrary.simpleMessage("Failai ištrinti"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage("Failai išsaugoti į galeriją"), "findPeopleByName": MessageLookupByLibrary.simpleMessage( "Greitai suraskite žmones pagal vardą"), "findThemQuickly": MessageLookupByLibrary.simpleMessage("Raskite juos greitai"), + "flip": MessageLookupByLibrary.simpleMessage("Apversti"), "food": MessageLookupByLibrary.simpleMessage("Kulinarinis malonumas"), "forYourMemories": MessageLookupByLibrary.simpleMessage("jūsų prisiminimams"), @@ -981,9 +1072,13 @@ class MessageLookup extends MessageLookupByLibrary { "grantPermission": MessageLookupByLibrary.simpleMessage("Suteikti leidimą"), "greenery": MessageLookupByLibrary.simpleMessage("Žaliasis gyvenimas"), + "groupNearbyPhotos": MessageLookupByLibrary.simpleMessage( + "Grupuoti netoliese nuotraukas"), "guestView": MessageLookupByLibrary.simpleMessage("Svečio peržiūra"), "guestViewEnablePreSteps": MessageLookupByLibrary.simpleMessage( "Kad įjungtumėte svečio peržiūrą, sistemos nustatymuose nustatykite įrenginio prieigos kodą arba ekrano užraktą."), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "hearUsExplanation": MessageLookupByLibrary.simpleMessage( "Mes nesekame programų diegimų. Mums padėtų, jei pasakytumėte, kur mus radote."), "hearUsWhereTitle": MessageLookupByLibrary.simpleMessage( @@ -999,6 +1094,9 @@ class MessageLookup extends MessageLookupByLibrary { "hideSharedItemsFromHomeGallery": MessageLookupByLibrary.simpleMessage( "Slėpti bendrinamus elementus iš pagrindinės galerijos"), "hiding": MessageLookupByLibrary.simpleMessage("Slepiama..."), + "hikingWithThem": m42, + "hostedAtOsmFrance": + MessageLookupByLibrary.simpleMessage("Talpinama OSM Prancūzijoje"), "howItWorks": MessageLookupByLibrary.simpleMessage("Kaip tai veikia"), "howToViewShareeVerificationID": MessageLookupByLibrary.simpleMessage( "Paprašykite jų ilgai paspausti savo el. pašto adresą nustatymų ekrane ir patvirtinti, kad abiejų įrenginių ID sutampa."), @@ -1050,6 +1148,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Kviesti į „Ente“"), "inviteYourFriends": MessageLookupByLibrary.simpleMessage("Kviesti savo draugus"), + "inviteYourFriendsToEnte": MessageLookupByLibrary.simpleMessage( + "Pakvieskite savo draugus į „Ente“"), "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Atrodo, kad kažkas nutiko ne taip. Bandykite pakartotinai po kurio laiko. Jei klaida tęsiasi, susisiekite su mūsų palaikymo komanda."), @@ -1076,6 +1176,7 @@ class MessageLookup extends MessageLookupByLibrary { "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage( "Maloniai padėkite mums su šia informacija."), "language": MessageLookupByLibrary.simpleMessage("Kalba"), + "lastTimeWithThem": m44, "lastUpdated": MessageLookupByLibrary.simpleMessage("Paskutinį kartą atnaujintą"), "lastYearsTrip": @@ -1102,6 +1203,8 @@ class MessageLookup extends MessageLookupByLibrary { "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Įrenginių riba"), "linkEmail": MessageLookupByLibrary.simpleMessage("Susieti el. paštą"), + "linkEmailToContactBannerCaption": + MessageLookupByLibrary.simpleMessage("spartesniam bendrinimui"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Įjungta"), "linkExpired": MessageLookupByLibrary.simpleMessage("Nebegalioja"), "linkExpiresOn": m46, @@ -1112,7 +1215,8 @@ class MessageLookup extends MessageLookupByLibrary { "linkNeverExpires": MessageLookupByLibrary.simpleMessage("Niekada"), "linkPerson": MessageLookupByLibrary.simpleMessage("Susiekite asmenį,"), "linkPersonCaption": MessageLookupByLibrary.simpleMessage( - "kad geriau bendrintumėte patirtį"), + "geresniam bendrinimo patirčiai"), + "linkPersonToEmail": m47, "linkPersonToEmailConfirmation": m48, "livePhotos": MessageLookupByLibrary.simpleMessage("Gyvos nuotraukos"), "loadMessage1": MessageLookupByLibrary.simpleMessage( @@ -1137,6 +1241,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Įkeliami EXIF duomenys..."), "loadingGallery": MessageLookupByLibrary.simpleMessage("Įkeliama galerija..."), + "loadingMessage": MessageLookupByLibrary.simpleMessage( + "Įkeliamos jūsų nuotraukos..."), "loadingModel": MessageLookupByLibrary.simpleMessage("Atsisiunčiami modeliai..."), "loadingYourPhotos": @@ -1225,6 +1331,9 @@ class MessageLookup extends MessageLookupByLibrary { "mobileWebDesktop": MessageLookupByLibrary.simpleMessage( "Mobiliuosiuose, internete ir darbalaukyje"), "moderateStrength": MessageLookupByLibrary.simpleMessage("Vidutinė"), + "modifyYourQueryOrTrySearchingFor": + MessageLookupByLibrary.simpleMessage( + "Modifikuokite užklausą arba bandykite ieškoti"), "moments": MessageLookupByLibrary.simpleMessage("Akimirkos"), "month": MessageLookupByLibrary.simpleMessage("mėnesis"), "monthly": MessageLookupByLibrary.simpleMessage("Mėnesinis"), @@ -1239,6 +1348,8 @@ class MessageLookup extends MessageLookupByLibrary { "Perkelti pasirinktas nuotraukas į vieną datą"), "moveToAlbum": MessageLookupByLibrary.simpleMessage("Perkelti į albumą"), + "moveToHiddenAlbum": + MessageLookupByLibrary.simpleMessage("Perkelti į paslėptą albumą"), "movedSuccessfullyTo": m51, "movedToTrash": MessageLookupByLibrary.simpleMessage("Perkelta į šiukšlinę"), @@ -1262,6 +1373,8 @@ class MessageLookup extends MessageLookupByLibrary { "newest": MessageLookupByLibrary.simpleMessage("Naujausią"), "next": MessageLookupByLibrary.simpleMessage("Toliau"), "no": MessageLookupByLibrary.simpleMessage("Ne"), + "noAlbumsSharedByYouYet": MessageLookupByLibrary.simpleMessage( + "Dar nėra albumų, kuriais bendrinotės."), "noDeviceFound": MessageLookupByLibrary.simpleMessage("Įrenginys nerastas"), "noDeviceLimit": MessageLookupByLibrary.simpleMessage("Jokio"), @@ -1282,6 +1395,8 @@ class MessageLookup extends MessageLookupByLibrary { "noPhotosAreBeingBackedUpRightNow": MessageLookupByLibrary.simpleMessage( "Šiuo metu nekuriamos atsarginės nuotraukų kopijos"), + "noPhotosFoundHere": + MessageLookupByLibrary.simpleMessage("Nuotraukų čia nerasta"), "noQuickLinksSelected": MessageLookupByLibrary.simpleMessage( "Nėra pasirinktų sparčiųjų nuorodų"), "noRecoveryKey": @@ -1312,6 +1427,8 @@ class MessageLookup extends MessageLookupByLibrary { "onlyFamilyAdminCanChangeCode": m54, "onlyThem": MessageLookupByLibrary.simpleMessage("Tik jiems"), "oops": MessageLookupByLibrary.simpleMessage("Ups"), + "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( + "Ups, nepavyko išsaugoti redagavimų."), "oopsSomethingWentWrong": MessageLookupByLibrary.simpleMessage("Ups, kažkas nutiko ne taip"), "openAlbumInBrowser": @@ -1323,6 +1440,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Atverti nustatymus"), "openTheItem": MessageLookupByLibrary.simpleMessage("• Atverkite elementą."), + "openstreetmapContributors": MessageLookupByLibrary.simpleMessage( + "„OpenStreetMap“ bendradarbiai"), "optionalAsShortAsYouLike": MessageLookupByLibrary.simpleMessage( "Nebūtina, trumpai, kaip jums patinka..."), "orMergeWithExistingPerson": @@ -1336,6 +1455,7 @@ class MessageLookup extends MessageLookupByLibrary { "pairingComplete": MessageLookupByLibrary.simpleMessage("Susiejimas baigtas"), "panorama": MessageLookupByLibrary.simpleMessage("Panorama"), + "partyWithThem": m55, "passKeyPendingVerification": MessageLookupByLibrary.simpleMessage( "Vis dar laukiama patvirtinimo"), "passkey": MessageLookupByLibrary.simpleMessage("Slaptaraktis"), @@ -1365,11 +1485,18 @@ class MessageLookup extends MessageLookupByLibrary { "people": MessageLookupByLibrary.simpleMessage("Asmenys"), "peopleUsingYourCode": MessageLookupByLibrary.simpleMessage( "Asmenys, naudojantys jūsų kodą"), + "permDeleteWarning": MessageLookupByLibrary.simpleMessage( + "Visi elementai šiukšlinėje bus negrįžtamai ištrinti.\n\nŠio veiksmo negalima anuliuoti."), "permanentlyDelete": MessageLookupByLibrary.simpleMessage("Ištrinti negrįžtamai"), "permanentlyDeleteFromDevice": MessageLookupByLibrary.simpleMessage( "Ištrinti negrįžtamai iš įrenginio?"), + "personIsAge": m58, "personName": MessageLookupByLibrary.simpleMessage("Asmens vardas"), + "personTurningAge": m59, + "pets": MessageLookupByLibrary.simpleMessage("Furio draugai"), + "photoDescriptions": + MessageLookupByLibrary.simpleMessage("Nuotraukų aprašai"), "photoGridSize": MessageLookupByLibrary.simpleMessage("Nuotraukų tinklelio dydis"), "photoSmallCase": MessageLookupByLibrary.simpleMessage("nuotrauka"), @@ -1378,9 +1505,12 @@ class MessageLookup extends MessageLookupByLibrary { "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "Jūsų pridėtos nuotraukos bus pašalintos iš albumo"), + "photosCount": m61, "photosKeepRelativeTimeDifference": MessageLookupByLibrary.simpleMessage( "Nuotraukos išlaiko santykinį laiko skirtumą"), + "pickCenterPoint": + MessageLookupByLibrary.simpleMessage("Pasirinkite centro tašką"), "pinAlbum": MessageLookupByLibrary.simpleMessage("Prisegti albumą"), "pinLock": MessageLookupByLibrary.simpleMessage("PIN užrakinimas"), "playOnTv": MessageLookupByLibrary.simpleMessage( @@ -1398,6 +1528,10 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportAndWeWillBeHappyToHelp": MessageLookupByLibrary.simpleMessage( "Susisiekite adresu support@ente.io ir mes mielai padėsime!"), + "pleaseContactSupportIfTheProblemPersists": + MessageLookupByLibrary.simpleMessage( + "Jei problema išlieka, susisiekite su pagalbos komanda."), + "pleaseEmailUsAt": m63, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage("Suteikite leidimus."), "pleaseLoginAgain": @@ -1417,6 +1551,7 @@ class MessageLookup extends MessageLookupByLibrary { "Palaukite kurį laiką prieš bandydami pakartotinai"), "pleaseWaitThisWillTakeAWhile": MessageLookupByLibrary.simpleMessage( "Palaukite, tai šiek tiek užtruks."), + "posingWithThem": m65, "preparingLogs": MessageLookupByLibrary.simpleMessage("Ruošiami žurnalai..."), "preserveMore": @@ -1444,11 +1579,18 @@ class MessageLookup extends MessageLookupByLibrary { "publicLinkEnabled": MessageLookupByLibrary.simpleMessage("Įjungta viešoji nuoroda"), "queued": MessageLookupByLibrary.simpleMessage("Įtraukta eilėje"), + "quickLinks": MessageLookupByLibrary.simpleMessage("Sparčios nuorodos"), + "radius": MessageLookupByLibrary.simpleMessage("Spindulys"), "raiseTicket": MessageLookupByLibrary.simpleMessage("Sukurti paraišką"), "rateTheApp": MessageLookupByLibrary.simpleMessage("Vertinti programą"), "rateUs": MessageLookupByLibrary.simpleMessage("Vertinti mus"), "rateUsOnStore": m67, + "reassignMe": MessageLookupByLibrary.simpleMessage("Perskirstyti „Aš“"), "reassignedToName": m68, + "reassigningLoading": + MessageLookupByLibrary.simpleMessage("Perskirstoma..."), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recover": MessageLookupByLibrary.simpleMessage("Atkurti"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Atkurti paskyrą"), @@ -1556,6 +1698,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Atkurti ignoruojamus failus"), "resetPasswordTitle": MessageLookupByLibrary.simpleMessage( "Nustatyti slaptažodį iš naujo"), + "resetPerson": MessageLookupByLibrary.simpleMessage("Šalinti"), "resetToDefault": MessageLookupByLibrary.simpleMessage( "Atkurti numatytąsias reikšmes"), "restore": MessageLookupByLibrary.simpleMessage("Atkurti"), @@ -1563,24 +1706,33 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Atkurti į albumą"), "restoringFiles": MessageLookupByLibrary.simpleMessage("Atkuriami failai..."), + "resumableUploads": + MessageLookupByLibrary.simpleMessage("Tęstiniai įkėlimai"), "retry": MessageLookupByLibrary.simpleMessage("Kartoti"), + "review": MessageLookupByLibrary.simpleMessage("Peržiūrėti"), "reviewDeduplicateItems": MessageLookupByLibrary.simpleMessage( "Peržiūrėkite ir ištrinkite elementus, kurie, jūsų manymu, yra dublikatai."), "reviewSuggestions": MessageLookupByLibrary.simpleMessage("Peržiūrėti pasiūlymus"), "right": MessageLookupByLibrary.simpleMessage("Dešinė"), + "roadtripWithThem": m75, "rotate": MessageLookupByLibrary.simpleMessage("Sukti"), + "rotateLeft": MessageLookupByLibrary.simpleMessage("Sukti į kairę"), + "rotateRight": MessageLookupByLibrary.simpleMessage("Sukti į dešinę"), "safelyStored": MessageLookupByLibrary.simpleMessage("Saugiai saugoma"), + "save": MessageLookupByLibrary.simpleMessage("Išsaugoti"), "saveChangesBeforeLeavingQuestion": MessageLookupByLibrary.simpleMessage( "Išsaugoti pakeitimus prieš išeinant?"), "saveCollage": MessageLookupByLibrary.simpleMessage("Išsaugoti koliažą"), + "saveCopy": MessageLookupByLibrary.simpleMessage("Išsaugoti kopiją"), "saveKey": MessageLookupByLibrary.simpleMessage("Išsaugoti raktą"), "savePerson": MessageLookupByLibrary.simpleMessage("Išsaugoti asmenį"), "saveYourRecoveryKeyIfYouHaventAlready": MessageLookupByLibrary.simpleMessage( "Išsaugokite atkūrimo raktą, jei dar to nepadarėte"), + "saving": MessageLookupByLibrary.simpleMessage("Išsaugoma..."), "savingEdits": MessageLookupByLibrary.simpleMessage("Išsaugomi redagavimai..."), "scanCode": MessageLookupByLibrary.simpleMessage("Skenuoti kodą"), @@ -1588,14 +1740,26 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "Skenuokite šį QR kodą\nsu autentifikatoriaus programa"), "search": MessageLookupByLibrary.simpleMessage("Ieškokite"), + "searchAlbumsEmptySection": + MessageLookupByLibrary.simpleMessage("Albumai"), "searchByAlbumNameHint": MessageLookupByLibrary.simpleMessage("Albumo pavadinimas"), "searchByExamples": MessageLookupByLibrary.simpleMessage( "• Albumų pavadinimai (pvz., „Fotoaparatas“)\n• Failų tipai (pvz., „Vaizdo įrašai“, „.gif“)\n• Metai ir mėnesiai (pvz., „2022“, „sausis“)\n• Šventės (pvz., „Kalėdos“)\n• Nuotraukų aprašymai (pvz., „#džiaugsmas“)"), "searchCaptionEmptySection": MessageLookupByLibrary.simpleMessage( "Pridėkite aprašymus, pavyzdžiui, „#kelionė“, į nuotraukos informaciją, kad greičiau jas čia rastumėte."), + "searchDatesEmptySection": MessageLookupByLibrary.simpleMessage( + "Ieškokite pagal datą, mėnesį arba metus"), "searchDiscoverEmptySection": MessageLookupByLibrary.simpleMessage( "Vaizdai bus rodomi čia, kai bus užbaigtas apdorojimas ir sinchronizavimas."), + "searchFaceEmptySection": MessageLookupByLibrary.simpleMessage( + "Asmenys bus rodomi čia, kai bus užbaigtas indeksavimas."), + "searchFileTypesAndNamesEmptySection": + MessageLookupByLibrary.simpleMessage("Failų tipai ir pavadinimai"), + "searchHint1": + MessageLookupByLibrary.simpleMessage("Sparti paieška įrenginyje"), + "searchHint2": + MessageLookupByLibrary.simpleMessage("Nuotraukų datos ir aprašai"), "searchHint3": MessageLookupByLibrary.simpleMessage( "Albumai, failų pavadinimai ir tipai"), "searchHint4": MessageLookupByLibrary.simpleMessage("Vietovė"), @@ -1625,6 +1789,8 @@ class MessageLookup extends MessageLookupByLibrary { "selectDate": MessageLookupByLibrary.simpleMessage("Pasirinkti datą"), "selectFoldersForBackup": MessageLookupByLibrary.simpleMessage( "Pasirinkite aplankus atsarginėms kopijoms kurti"), + "selectItemsToAdd": MessageLookupByLibrary.simpleMessage( + "Pasirinkite elementus įtraukti"), "selectLanguage": MessageLookupByLibrary.simpleMessage("Pasirinkite kalbą"), "selectMailApp": @@ -1635,11 +1801,15 @@ class MessageLookup extends MessageLookupByLibrary { "Pasirinkti vieną datą ir laiką"), "selectOneDateAndTimeForAll": MessageLookupByLibrary.simpleMessage( "Pasirinkti vieną datą ir laiką viskam"), + "selectPersonToLink": MessageLookupByLibrary.simpleMessage( + "Pasirinkite asmenį, kurį susieti."), "selectReason": MessageLookupByLibrary.simpleMessage("Pasirinkite priežastį"), "selectStartOfRange": MessageLookupByLibrary.simpleMessage( "Pasirinkti intervalo pradžią"), "selectTime": MessageLookupByLibrary.simpleMessage("Pasirinkti laiką"), + "selectYourFace": + MessageLookupByLibrary.simpleMessage("Pasirinkite savo veidą"), "selectYourPlan": MessageLookupByLibrary.simpleMessage("Pasirinkite planą"), "selectedFilesAreNotOnEnte": MessageLookupByLibrary.simpleMessage( @@ -1647,11 +1817,15 @@ class MessageLookup extends MessageLookupByLibrary { "selectedFoldersWillBeEncryptedAndBackedUp": MessageLookupByLibrary.simpleMessage( "Pasirinkti aplankai bus užšifruoti ir sukurtos atsarginės kopijos."), + "selectedItemsWillBeDeletedFromAllAlbumsAndMoved": + MessageLookupByLibrary.simpleMessage( + "Pasirinkti elementai bus ištrinti iš visų albumų ir perkelti į šiukšlinę."), "selectedItemsWillBeRemovedFromThisPerson": MessageLookupByLibrary.simpleMessage( "Pasirinkti elementai bus pašalinti iš šio asmens, bet nebus ištrinti iš jūsų bibliotekos."), "selectedPhotos": m78, "selectedPhotosWithYours": m79, + "selfiesWithThem": m80, "send": MessageLookupByLibrary.simpleMessage("Siųsti"), "sendEmail": MessageLookupByLibrary.simpleMessage("Siųsti el. laišką"), "sendInvite": MessageLookupByLibrary.simpleMessage("Siųsti kvietimą"), @@ -1673,6 +1847,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Nustatykite naują PIN"), "setPasswordTitle": MessageLookupByLibrary.simpleMessage("Nustatyti slaptažodį"), + "setRadius": MessageLookupByLibrary.simpleMessage("Nustatyti spindulį"), "setupComplete": MessageLookupByLibrary.simpleMessage("Sąranka baigta"), "share": MessageLookupByLibrary.simpleMessage("Bendrinti"), "shareALink": @@ -1702,7 +1877,7 @@ class MessageLookup extends MessageLookupByLibrary { "sharedPhotoNotifications": MessageLookupByLibrary.simpleMessage( "Naujos bendrintos nuotraukos"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( - "Gaukite pranešimus, kai kas nors prideda nuotrauką į bendrinamą albumą, kuriame dalyvaujate."), + "Gaukite pranešimus, kai kas nors įtraukia nuotrauką į bendrinamą albumą, kuriame dalyvaujate."), "sharedWith": m85, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Bendrinta su manimi"), @@ -1714,8 +1889,12 @@ class MessageLookup extends MessageLookupByLibrary { "showMemories": MessageLookupByLibrary.simpleMessage("Rodyti prisiminimus"), "showPerson": MessageLookupByLibrary.simpleMessage("Rodyti asmenį"), + "signOutFromOtherDevices": MessageLookupByLibrary.simpleMessage( + "Atsijungti iš kitų įrenginių"), "signOutOtherBody": MessageLookupByLibrary.simpleMessage( "Jei manote, kad kas nors gali žinoti jūsų slaptažodį, galite priverstinai atsijungti iš visų kitų įrenginių, naudojančių jūsų paskyrą."), + "signOutOtherDevices": + MessageLookupByLibrary.simpleMessage("Atsijungti kitus įrenginius"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Sutinku su paslaugų sąlygomis ir privatumo politika"), "singleFileDeleteFromDevice": m86, @@ -1725,6 +1904,8 @@ class MessageLookup extends MessageLookupByLibrary { "singleFileInRemoteOnly": m88, "skip": MessageLookupByLibrary.simpleMessage("Praleisti"), "social": MessageLookupByLibrary.simpleMessage("Socialinės"), + "someItemsAreInBothEnteAndYourDevice": MessageLookupByLibrary.simpleMessage( + "Kai kurie elementai yra ir platformoje „Ente“ bei jūsų įrenginyje."), "someOfTheFilesYouAreTryingToDeleteAre": MessageLookupByLibrary.simpleMessage( "Kai kurie failai, kuriuos bandote ištrinti, yra pasiekiami tik jūsų įrenginyje ir jų negalima atkurti, jei jie buvo ištrinti."), @@ -1744,6 +1925,9 @@ class MessageLookup extends MessageLookupByLibrary { "sorryCouldNotRemoveFromFavorites": MessageLookupByLibrary.simpleMessage( "Atsiprašome, nepavyko pašalinti iš mėgstamų."), + "sorryTheCodeYouveEnteredIsIncorrect": + MessageLookupByLibrary.simpleMessage( + "Atsiprašome, įvestas kodas yra neteisingas."), "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": MessageLookupByLibrary.simpleMessage( "Atsiprašome, šiame įrenginyje nepavyko sugeneruoti saugių raktų.\n\nRegistruokitės iš kito įrenginio."), @@ -1756,6 +1940,10 @@ class MessageLookup extends MessageLookupByLibrary { "sortOldestFirst": MessageLookupByLibrary.simpleMessage("Seniausią pirmiausiai"), "sparkleSuccess": MessageLookupByLibrary.simpleMessage("✨ Sėkmė"), + "sportsWithThem": m89, + "spotlightOnThem": m90, + "spotlightOnYourself": + MessageLookupByLibrary.simpleMessage("Dėmesys į save"), "startAccountRecoveryTitle": MessageLookupByLibrary.simpleMessage("Pradėti atkūrimą"), "startBackup": MessageLookupByLibrary.simpleMessage( @@ -1766,10 +1954,12 @@ class MessageLookup extends MessageLookupByLibrary { "stopCastingTitle": MessageLookupByLibrary.simpleMessage("Stabdyti perdavimą"), "storage": MessageLookupByLibrary.simpleMessage("Saugykla"), + "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("Šeima"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("Jūs"), "storageInGB": m91, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Viršyta saugyklos riba."), + "storageUsageInfo": m92, "streamDetails": MessageLookupByLibrary.simpleMessage( "Srautinio perdavimo išsami informacija"), "strongStrength": MessageLookupByLibrary.simpleMessage("Stipri"), @@ -1782,8 +1972,12 @@ class MessageLookup extends MessageLookupByLibrary { "success": MessageLookupByLibrary.simpleMessage("Sėkmė"), "successfullyArchived": MessageLookupByLibrary.simpleMessage("Sėkmingai suarchyvuota"), + "successfullyHid": + MessageLookupByLibrary.simpleMessage("Sėkmingai paslėptas"), "successfullyUnarchived": MessageLookupByLibrary.simpleMessage("Sėkmingai išarchyvuota"), + "successfullyUnhid": + MessageLookupByLibrary.simpleMessage("Sėkmingai atslėptas"), "suggestFeatures": MessageLookupByLibrary.simpleMessage("Siūlyti funkcijas"), "sunrise": MessageLookupByLibrary.simpleMessage("Akiratyje"), @@ -1821,7 +2015,14 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "Įvestas atkūrimo raktas yra neteisingas."), "theme": MessageLookupByLibrary.simpleMessage("Tema"), + "theseItemsWillBeDeletedFromYourDevice": + MessageLookupByLibrary.simpleMessage( + "Šie elementai bus ištrinti iš jūsų įrenginio."), "theyAlsoGetXGb": m97, + "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( + "Jie bus ištrinti iš visų albumų."), + "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( + "Šio veiksmo negalima anuliuoti."), "thisAlbumAlreadyHDACollaborativeLink": MessageLookupByLibrary.simpleMessage( "Šis albumas jau turi bendradarbiavimo nuorodą."), @@ -1881,6 +2082,9 @@ class MessageLookup extends MessageLookupByLibrary { "2 mėnesiai nemokamai metiniuose planuose"), "twofactor": MessageLookupByLibrary.simpleMessage( "Dvigubas tapatybės nustatymas"), + "twofactorAuthenticationHasBeenDisabled": + MessageLookupByLibrary.simpleMessage( + "Dvigubas tapatybės nustatymas išjungtas."), "twofactorAuthenticationPageTitle": MessageLookupByLibrary.simpleMessage( "Dvigubas tapatybės nustatymas"), @@ -1902,6 +2106,7 @@ class MessageLookup extends MessageLookupByLibrary { "unhide": MessageLookupByLibrary.simpleMessage("Rodyti"), "unhideToAlbum": MessageLookupByLibrary.simpleMessage("Rodyti į albumą"), + "unhiding": MessageLookupByLibrary.simpleMessage("Rodoma..."), "unhidingFilesToAlbum": MessageLookupByLibrary.simpleMessage("Rodomi failai į albumą"), "unlock": MessageLookupByLibrary.simpleMessage("Atrakinti"), @@ -1931,6 +2136,8 @@ class MessageLookup extends MessageLookupByLibrary { "Naudokite viešas nuorodas asmenimis, kurie nėra sistemoje „Ente“"), "useRecoveryKey": MessageLookupByLibrary.simpleMessage("Naudoti atkūrimo raktą"), + "useSelectedPhoto": MessageLookupByLibrary.simpleMessage( + "Naudoti pasirinktą nuotrauką"), "usedSpace": MessageLookupByLibrary.simpleMessage("Naudojama vieta"), "validTill": m108, "verificationFailedPleaseTryAgain": @@ -1967,9 +2174,11 @@ class MessageLookup extends MessageLookupByLibrary { "viewLargeFilesDesc": MessageLookupByLibrary.simpleMessage( "Peržiūrėkite failus, kurie užima daugiausiai saugyklos vietos."), "viewLogs": MessageLookupByLibrary.simpleMessage("Peržiūrėti žurnalus"), + "viewPersonToUnlink": m110, "viewRecoveryKey": MessageLookupByLibrary.simpleMessage("Peržiūrėti atkūrimo raktą"), "viewer": MessageLookupByLibrary.simpleMessage("Žiūrėtojas"), + "viewersSuccessfullyAdded": m111, "visitWebToManage": MessageLookupByLibrary.simpleMessage( "Aplankykite web.ente.io, kad tvarkytumėte savo prenumeratą"), "waitingForVerification": @@ -1996,6 +2205,8 @@ class MessageLookup extends MessageLookupByLibrary { "yesConvertToViewer": MessageLookupByLibrary.simpleMessage("Taip, keisti į žiūrėtoją"), "yesDelete": MessageLookupByLibrary.simpleMessage("Taip, ištrinti"), + "yesDiscardChanges": + MessageLookupByLibrary.simpleMessage("Taip, atmesti pakeitimus"), "yesLogout": MessageLookupByLibrary.simpleMessage("Taip, atsijungti"), "yesRemove": MessageLookupByLibrary.simpleMessage("Taip, šalinti"), "yesRenew": MessageLookupByLibrary.simpleMessage("Taip, pratęsti"), @@ -2047,6 +2258,8 @@ class MessageLookup extends MessageLookupByLibrary { "Neturite dubliuotų failų, kuriuos būtų galima išvalyti."), "youveNoFilesInThisAlbumThatCanBeDeleted": MessageLookupByLibrary.simpleMessage( - "Neturite šiame albume failų, kuriuos būtų galima ištrinti.") + "Neturite šiame albume failų, kuriuos būtų galima ištrinti."), + "zoomOutToSeePhotos": MessageLookupByLibrary.simpleMessage( + "Padidinkite mastelį, kad matytumėte nuotraukas") }; } diff --git a/mobile/lib/generated/intl/messages_lv.dart b/mobile/lib/generated/intl/messages_lv.dart index 01cf6553da..0fade235a9 100644 --- a/mobile/lib/generated/intl/messages_lv.dart +++ b/mobile/lib/generated/intl/messages_lv.dart @@ -22,14 +22,21 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( "Click to install our best version yet"), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( "Look back on your memories 🌄"), "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( "Receive reminders about memories from this day in previous years."), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( "Sorry, we had to pause your backups") }; diff --git a/mobile/lib/generated/intl/messages_ml.dart b/mobile/lib/generated/intl/messages_ml.dart index bf62178aab..63291f56cf 100644 --- a/mobile/lib/generated/intl/messages_ml.dart +++ b/mobile/lib/generated/intl/messages_ml.dart @@ -28,6 +28,9 @@ class MessageLookup extends MessageLookupByLibrary { "askDeleteReason": MessageLookupByLibrary.simpleMessage( "അക്കൗണ്ട് ഉപേക്ഷിക്കുവാൻ പ്രധാന കാരണമെന്താണ്?"), "available": MessageLookupByLibrary.simpleMessage("ലഭ്യമാണ്"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "calculating": MessageLookupByLibrary.simpleMessage("കണക്കുകൂട്ടുന്നു..."), "cancel": MessageLookupByLibrary.simpleMessage("റദ്ദാക്കുക"), @@ -70,6 +73,8 @@ class MessageLookup extends MessageLookupByLibrary { "forgotPassword": MessageLookupByLibrary.simpleMessage("സങ്കേതക്കുറി മറന്നുപോയി"), "general": MessageLookupByLibrary.simpleMessage("പൊതുവായവ"), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "hide": MessageLookupByLibrary.simpleMessage("മറയ്ക്കുക"), "howItWorks": MessageLookupByLibrary.simpleMessage("പ്രവർത്തന രീതി"), "ignoreUpdate": MessageLookupByLibrary.simpleMessage("അവഗണിക്കുക"), @@ -104,6 +109,8 @@ class MessageLookup extends MessageLookupByLibrary { "privacy": MessageLookupByLibrary.simpleMessage("സ്വകാര്യത"), "privacyPolicyTitle": MessageLookupByLibrary.simpleMessage("സ്വകാര്യതാനയം"), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recoverButton": MessageLookupByLibrary.simpleMessage("വീണ്ടെടുക്കുക"), "recoverySuccessful": MessageLookupByLibrary.simpleMessage("വീണ്ടെടുക്കൽ വിജയകരം!"), diff --git a/mobile/lib/generated/intl/messages_nl.dart b/mobile/lib/generated/intl/messages_nl.dart index 672d322f9b..d0697cf2b2 100644 --- a/mobile/lib/generated/intl/messages_nl.dart +++ b/mobile/lib/generated/intl/messages_nl.dart @@ -84,9 +84,6 @@ class MessageLookup extends MessageLookupByLibrary { static String m21(count) => "${Intl.plural(count, one: 'Verwijder ${count} bestand', other: 'Verwijder ${count} bestanden')}"; - static String m116(count) => - "Verwijder de foto\'s (en video\'s) van deze ${count} albums ook uit alle andere albums waar deze deel van uitmaken?"; - static String m22(currentlyDeleting, totalCount) => "Verwijderen van ${currentlyDeleting} / ${totalCount}"; @@ -229,8 +226,6 @@ class MessageLookup extends MessageLookupByLibrary { static String m77(snapshotLength, searchLength) => "Lengte van secties komt niet overeen: ${snapshotLength} != ${searchLength}"; - static String m117(count) => "${count} geselecteerd"; - static String m78(count) => "${count} geselecteerd"; static String m79(count, yourCount) => @@ -345,9 +340,6 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Welkom terug!"), "ackPasswordLostWarning": MessageLookupByLibrary.simpleMessage( "Ik begrijp dat als ik mijn wachtwoord verlies, ik mijn gegevens kan verliezen omdat mijn gegevens end-to-end versleuteld zijn."), - "actionNotSupportedOnFavouritesAlbum": - MessageLookupByLibrary.simpleMessage( - "Actie niet ondersteund op Favorieten album"), "activeSessions": MessageLookupByLibrary.simpleMessage("Actieve sessies"), "add": MessageLookupByLibrary.simpleMessage("Toevoegen"), @@ -375,8 +367,6 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Details van add-ons"), "addOnValidTill": m3, "addOns": MessageLookupByLibrary.simpleMessage("Add-ons"), - "addParticipants": - MessageLookupByLibrary.simpleMessage("Voeg deelnemers toe"), "addPhotos": MessageLookupByLibrary.simpleMessage("Foto\'s toevoegen"), "addSelected": MessageLookupByLibrary.simpleMessage("Voeg geselecteerde toe"), @@ -558,7 +548,10 @@ class MessageLookup extends MessageLookupByLibrary { "backupVideos": MessageLookupByLibrary.simpleMessage("Back-up video\'s"), "beach": MessageLookupByLibrary.simpleMessage("Zand en zee"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Verjaardag"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage("Black Friday-aanbieding"), "blog": MessageLookupByLibrary.simpleMessage("Blog"), @@ -733,8 +726,6 @@ class MessageLookup extends MessageLookupByLibrary { "criticalUpdateAvailable": MessageLookupByLibrary.simpleMessage( "Belangrijke update beschikbaar"), "crop": MessageLookupByLibrary.simpleMessage("Bijsnijden"), - "curatedMemories": - MessageLookupByLibrary.simpleMessage("Samengestelde herinneringen"), "currentUsageIs": MessageLookupByLibrary.simpleMessage("Huidig gebruik is "), "currentlyRunning": @@ -781,7 +772,6 @@ class MessageLookup extends MessageLookupByLibrary { "deleteItemCount": m21, "deleteLocation": MessageLookupByLibrary.simpleMessage("Verwijder locatie"), - "deleteMultipleAlbumDialog": m116, "deletePhotos": MessageLookupByLibrary.simpleMessage("Foto\'s verwijderen"), "deleteProgress": m22, @@ -1086,6 +1076,8 @@ class MessageLookup extends MessageLookupByLibrary { "guestView": MessageLookupByLibrary.simpleMessage("Gasten weergave"), "guestViewEnablePreSteps": MessageLookupByLibrary.simpleMessage( "Om gasten weergave in te schakelen, moet u een toegangscode of schermvergrendeling instellen in uw systeeminstellingen."), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "hearUsExplanation": MessageLookupByLibrary.simpleMessage( "Wij gebruiken geen tracking. Het zou helpen als je ons vertelt waar je ons gevonden hebt!"), "hearUsWhereTitle": MessageLookupByLibrary.simpleMessage( @@ -1589,6 +1581,8 @@ class MessageLookup extends MessageLookupByLibrary { "reassignedToName": m68, "reassigningLoading": MessageLookupByLibrary.simpleMessage("Opnieuw toewijzen..."), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recover": MessageLookupByLibrary.simpleMessage("Herstellen"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Account herstellen"), @@ -1807,7 +1801,6 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Selecteer je gezicht"), "selectYourPlan": MessageLookupByLibrary.simpleMessage("Kies uw abonnement"), - "selectedAlbums": m117, "selectedFilesAreNotOnEnte": MessageLookupByLibrary.simpleMessage( "Geselecteerde bestanden staan niet op Ente"), "selectedFoldersWillBeEncryptedAndBackedUp": diff --git a/mobile/lib/generated/intl/messages_no.dart b/mobile/lib/generated/intl/messages_no.dart index c112a86ef0..005f400e93 100644 --- a/mobile/lib/generated/intl/messages_no.dart +++ b/mobile/lib/generated/intl/messages_no.dart @@ -517,7 +517,10 @@ class MessageLookup extends MessageLookupByLibrary { "backupVideos": MessageLookupByLibrary.simpleMessage("Sikkerhetskopier videoer"), "beach": MessageLookupByLibrary.simpleMessage("Sand og sjø"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Bursdag"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage("Black Friday salg"), "blog": MessageLookupByLibrary.simpleMessage("Blogg"), @@ -1027,6 +1030,8 @@ class MessageLookup extends MessageLookupByLibrary { "guestView": MessageLookupByLibrary.simpleMessage("Gjestevisning"), "guestViewEnablePreSteps": MessageLookupByLibrary.simpleMessage( "For å aktivere gjestevisning, vennligst konfigurer enhetens passord eller skjermlås i systeminnstillingene."), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "hearUsExplanation": MessageLookupByLibrary.simpleMessage( "Vi sporer ikke app-installasjoner. Det hadde vært til hjelp om du fortalte oss hvor du fant oss!"), "hearUsWhereTitle": MessageLookupByLibrary.simpleMessage( @@ -1516,6 +1521,8 @@ class MessageLookup extends MessageLookupByLibrary { "reassignedToName": m68, "reassigningLoading": MessageLookupByLibrary.simpleMessage("Tildeler..."), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recover": MessageLookupByLibrary.simpleMessage("Gjenopprett"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Gjenopprett konto"), diff --git a/mobile/lib/generated/intl/messages_or.dart b/mobile/lib/generated/intl/messages_or.dart index 67eb8daaa6..7856058046 100644 --- a/mobile/lib/generated/intl/messages_or.dart +++ b/mobile/lib/generated/intl/messages_or.dart @@ -22,14 +22,21 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( "Click to install our best version yet"), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( "Look back on your memories 🌄"), "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( "Receive reminders about memories from this day in previous years."), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( "Sorry, we had to pause your backups") }; diff --git a/mobile/lib/generated/intl/messages_pl.dart b/mobile/lib/generated/intl/messages_pl.dart index 2a82cbb320..053a9e6ceb 100644 --- a/mobile/lib/generated/intl/messages_pl.dart +++ b/mobile/lib/generated/intl/messages_pl.dart @@ -455,7 +455,10 @@ class MessageLookup extends MessageLookupByLibrary { "Elementy, których kopia zapasowa została utworzona, zostaną wyświetlone w tym miejscu"), "backupVideos": MessageLookupByLibrary.simpleMessage("Utwórz kopię zapasową wideo"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Urodziny"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage( "Wyprzedaż z okazji Czarnego Piątku"), "blog": MessageLookupByLibrary.simpleMessage("Blog"), @@ -957,6 +960,8 @@ class MessageLookup extends MessageLookupByLibrary { "guestView": MessageLookupByLibrary.simpleMessage("Widok gościa"), "guestViewEnablePreSteps": MessageLookupByLibrary.simpleMessage( "Aby włączyć widok gościa, należy skonfigurować hasło urządzenia lub blokadę ekranu w ustawieniach Twojego systemu."), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "hearUsExplanation": MessageLookupByLibrary.simpleMessage( "Nie śledzimy instalacji aplikacji. Pomogłyby nam, gdybyś powiedział/a nam, gdzie nas znalazłeś/aś!"), "hearUsWhereTitle": MessageLookupByLibrary.simpleMessage( @@ -1406,6 +1411,8 @@ class MessageLookup extends MessageLookupByLibrary { "rateTheApp": MessageLookupByLibrary.simpleMessage("Oceń aplikację"), "rateUs": MessageLookupByLibrary.simpleMessage("Oceń nas"), "rateUsOnStore": m67, + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recover": MessageLookupByLibrary.simpleMessage("Odzyskaj"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Odzyskaj konto"), diff --git a/mobile/lib/generated/intl/messages_pt.dart b/mobile/lib/generated/intl/messages_pt.dart index 8583931540..7787c811fa 100644 --- a/mobile/lib/generated/intl/messages_pt.dart +++ b/mobile/lib/generated/intl/messages_pt.dart @@ -511,7 +511,10 @@ class MessageLookup extends MessageLookupByLibrary { "backupVideos": MessageLookupByLibrary.simpleMessage( "Cópia de segurança de vídeos"), "beach": MessageLookupByLibrary.simpleMessage("Areia e o mar"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Aniversário"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage("Promoção Black Friday"), "blog": MessageLookupByLibrary.simpleMessage("Blog"), @@ -1016,6 +1019,8 @@ class MessageLookup extends MessageLookupByLibrary { "guestView": MessageLookupByLibrary.simpleMessage("Visão de convidado"), "guestViewEnablePreSteps": MessageLookupByLibrary.simpleMessage( "Para ativar a vista de convidado, configure o código de acesso do dispositivo ou o bloqueio do ecrã nas definições do sistema."), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "hearUsExplanation": MessageLookupByLibrary.simpleMessage( "Não monitorizamos as instalações de aplicações. Ajudaria se nos dissesse onde nos encontrou!"), "hearUsWhereTitle": MessageLookupByLibrary.simpleMessage( @@ -1514,6 +1519,8 @@ class MessageLookup extends MessageLookupByLibrary { "reassignedToName": m68, "reassigningLoading": MessageLookupByLibrary.simpleMessage("Reatribuindo..."), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recover": MessageLookupByLibrary.simpleMessage("Recuperar"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Recuperar conta"), diff --git a/mobile/lib/generated/intl/messages_pt_BR.dart b/mobile/lib/generated/intl/messages_pt_BR.dart index 2fea884dd7..c98ede7197 100644 --- a/mobile/lib/generated/intl/messages_pt_BR.dart +++ b/mobile/lib/generated/intl/messages_pt_BR.dart @@ -82,9 +82,6 @@ class MessageLookup extends MessageLookupByLibrary { static String m21(count) => "${Intl.plural(count, one: 'Excluir ${count} item', other: 'Excluir ${count} itens')}"; - static String m116(count) => - "E também excluir todas as fotos (e vídeos) presente dentro desses ${count} álbuns e de todos os álbuns que eles fazem parte?"; - static String m22(currentlyDeleting, totalCount) => "Excluindo ${currentlyDeleting} / ${totalCount}"; @@ -226,8 +223,6 @@ class MessageLookup extends MessageLookupByLibrary { static String m77(snapshotLength, searchLength) => "Incompatibilidade de comprimento de seções: ${snapshotLength} != ${searchLength}"; - static String m117(count) => "${count} selecionado(s)"; - static String m78(count) => "${count} selecionado(s)"; static String m79(count, yourCount) => @@ -340,9 +335,6 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Bem-vindo(a) de volta!"), "ackPasswordLostWarning": MessageLookupByLibrary.simpleMessage( "Eu entendo que se eu perder minha senha, posso perder meus dados, já que meus dados são criptografados de ponta a ponta."), - "actionNotSupportedOnFavouritesAlbum": - MessageLookupByLibrary.simpleMessage( - "Ação não suportada em álbum favorito"), "activeSessions": MessageLookupByLibrary.simpleMessage("Sessões ativas"), "add": MessageLookupByLibrary.simpleMessage("Adicionar"), @@ -370,8 +362,6 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Detalhes dos complementos"), "addOnValidTill": m3, "addOns": MessageLookupByLibrary.simpleMessage("Complementos"), - "addParticipants": - MessageLookupByLibrary.simpleMessage("Adicionar participante"), "addPhotos": MessageLookupByLibrary.simpleMessage("Adicionar fotos"), "addSelected": MessageLookupByLibrary.simpleMessage("Adicionar selecionado"), @@ -555,7 +545,10 @@ class MessageLookup extends MessageLookupByLibrary { "backupVideos": MessageLookupByLibrary.simpleMessage( "Cópia de segurança de vídeos"), "beach": MessageLookupByLibrary.simpleMessage("Areia e o mar"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Aniversário"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage("Promoção Black Friday"), "blog": MessageLookupByLibrary.simpleMessage("Blog"), @@ -774,7 +767,6 @@ class MessageLookup extends MessageLookupByLibrary { "deleteItemCount": m21, "deleteLocation": MessageLookupByLibrary.simpleMessage("Excluir localização"), - "deleteMultipleAlbumDialog": m116, "deletePhotos": MessageLookupByLibrary.simpleMessage("Excluir fotos"), "deleteProgress": m22, "deleteReason1": MessageLookupByLibrary.simpleMessage( @@ -1076,6 +1068,8 @@ class MessageLookup extends MessageLookupByLibrary { "guestView": MessageLookupByLibrary.simpleMessage("Vista do convidado"), "guestViewEnablePreSteps": MessageLookupByLibrary.simpleMessage( "Para ativar a vista do convidado, defina uma senha de acesso no dispositivo ou bloqueie sua tela nas opções do sistema."), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "hearUsExplanation": MessageLookupByLibrary.simpleMessage( "Não rastreamos instalações de aplicativo. Seria útil se você contasse onde nos encontrou!"), "hearUsWhereTitle": MessageLookupByLibrary.simpleMessage( @@ -1579,6 +1573,8 @@ class MessageLookup extends MessageLookupByLibrary { "reassignedToName": m68, "reassigningLoading": MessageLookupByLibrary.simpleMessage("Reatribuindo..."), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recover": MessageLookupByLibrary.simpleMessage("Recuperar"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Recuperar conta"), @@ -1793,7 +1789,6 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Selecione seu rosto"), "selectYourPlan": MessageLookupByLibrary.simpleMessage("Selecione seu plano"), - "selectedAlbums": m117, "selectedFilesAreNotOnEnte": MessageLookupByLibrary.simpleMessage( "Os arquivos selecionados não estão no Ente"), "selectedFoldersWillBeEncryptedAndBackedUp": diff --git a/mobile/lib/generated/intl/messages_pt_PT.dart b/mobile/lib/generated/intl/messages_pt_PT.dart index 5903aee8d9..412eec75f7 100644 --- a/mobile/lib/generated/intl/messages_pt_PT.dart +++ b/mobile/lib/generated/intl/messages_pt_PT.dart @@ -411,7 +411,10 @@ class MessageLookup extends MessageLookupByLibrary { "Os itens que foram salvos com segurança aparecerão aqui"), "backupVideos": MessageLookupByLibrary.simpleMessage( "Cópia de segurança de vídeos"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Aniversário"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage("Promoção Black Friday"), "blog": MessageLookupByLibrary.simpleMessage("Blog"), @@ -887,6 +890,8 @@ class MessageLookup extends MessageLookupByLibrary { "guestView": MessageLookupByLibrary.simpleMessage("Visão de convidado"), "guestViewEnablePreSteps": MessageLookupByLibrary.simpleMessage( "Para ativar a vista de convidado, configure o código de acesso do dispositivo ou o bloqueio do ecrã nas definições do sistema."), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "hearUsExplanation": MessageLookupByLibrary.simpleMessage( "Não monitorizamos as instalações de aplicações. Ajudaria se nos dissesse onde nos encontrou!"), "hearUsWhereTitle": MessageLookupByLibrary.simpleMessage( @@ -1300,6 +1305,8 @@ class MessageLookup extends MessageLookupByLibrary { "rateTheApp": MessageLookupByLibrary.simpleMessage("Avaliar aplicação"), "rateUs": MessageLookupByLibrary.simpleMessage("Avalie-nos"), "rateUsOnStore": m67, + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recover": MessageLookupByLibrary.simpleMessage("Recuperar"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Recuperar conta"), diff --git a/mobile/lib/generated/intl/messages_ro.dart b/mobile/lib/generated/intl/messages_ro.dart index 85afbe510e..78d9a2a29a 100644 --- a/mobile/lib/generated/intl/messages_ro.dart +++ b/mobile/lib/generated/intl/messages_ro.dart @@ -451,7 +451,10 @@ class MessageLookup extends MessageLookupByLibrary { "Articolele care au fost salvate vor apărea aici"), "backupVideos": MessageLookupByLibrary.simpleMessage( "Copie de rezervă videoclipuri"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Ziua de naștere"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage("Ofertă Black Friday"), "blog": MessageLookupByLibrary.simpleMessage("Blog"), @@ -959,6 +962,8 @@ class MessageLookup extends MessageLookupByLibrary { "guestView": MessageLookupByLibrary.simpleMessage("Mod oaspete"), "guestViewEnablePreSteps": MessageLookupByLibrary.simpleMessage( "Pentru a activa modul oaspete, vă rugăm să configurați codul de acces al dispozitivului sau blocarea ecranului în setările sistemului."), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "hearUsExplanation": MessageLookupByLibrary.simpleMessage( "Nu urmărim instalările aplicației. Ne-ar ajuta dacă ne-ați spune unde ne-ați găsit!"), "hearUsWhereTitle": MessageLookupByLibrary.simpleMessage( @@ -1415,6 +1420,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Evaluați aplicația"), "rateUs": MessageLookupByLibrary.simpleMessage("Evaluați-ne"), "rateUsOnStore": m67, + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recover": MessageLookupByLibrary.simpleMessage("Recuperare"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Recuperare cont"), diff --git a/mobile/lib/generated/intl/messages_ru.dart b/mobile/lib/generated/intl/messages_ru.dart index 22e07baaf7..0f0b6b61fb 100644 --- a/mobile/lib/generated/intl/messages_ru.dart +++ b/mobile/lib/generated/intl/messages_ru.dart @@ -539,7 +539,10 @@ class MessageLookup extends MessageLookupByLibrary { "backupVideos": MessageLookupByLibrary.simpleMessage("Резервное копирование видео"), "beach": MessageLookupByLibrary.simpleMessage("Песок и море"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("День рождения"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage( "Распродажа в \"Черную пятницу\""), "blog": MessageLookupByLibrary.simpleMessage("Блог"), @@ -1057,6 +1060,8 @@ class MessageLookup extends MessageLookupByLibrary { "guestView": MessageLookupByLibrary.simpleMessage("Гостевой просмотр"), "guestViewEnablePreSteps": MessageLookupByLibrary.simpleMessage( "Для включения гостевого просмотра, пожалуйста, настройте код или блокировку экрана в настройках устройства."), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "hearUsExplanation": MessageLookupByLibrary.simpleMessage( "Мы не отслеживаем установки приложений. Нам поможет, если скажете, как вы нас нашли!"), "hearUsWhereTitle": MessageLookupByLibrary.simpleMessage( @@ -1569,6 +1574,8 @@ class MessageLookup extends MessageLookupByLibrary { "reassignedToName": m68, "reassigningLoading": MessageLookupByLibrary.simpleMessage("Переназначение..."), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recover": MessageLookupByLibrary.simpleMessage("Восстановить"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Восстановить аккаунт"), diff --git a/mobile/lib/generated/intl/messages_sl.dart b/mobile/lib/generated/intl/messages_sl.dart index 7234775c48..2d46c81578 100644 --- a/mobile/lib/generated/intl/messages_sl.dart +++ b/mobile/lib/generated/intl/messages_sl.dart @@ -22,14 +22,21 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( "Click to install our best version yet"), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( "Look back on your memories 🌄"), "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( "Receive reminders about memories from this day in previous years."), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( "Sorry, we had to pause your backups") }; diff --git a/mobile/lib/generated/intl/messages_sr.dart b/mobile/lib/generated/intl/messages_sr.dart new file mode 100644 index 0000000000..86dd20850c --- /dev/null +++ b/mobile/lib/generated/intl/messages_sr.dart @@ -0,0 +1,33 @@ +// DO NOT EDIT. This is code generated via package:intl/generate_localized.dart +// This is a library that provides messages for a sr locale. All the +// messages from the main program should be duplicated here with the same +// function name. + +// Ignore issues from commonly used lints in this file. +// ignore_for_file:unnecessary_brace_in_string_interps, unnecessary_new +// ignore_for_file:prefer_single_quotes,comment_references, directives_ordering +// ignore_for_file:annotate_overrides,prefer_generic_function_type_aliases +// ignore_for_file:unused_import, file_names, avoid_escaping_inner_quotes +// ignore_for_file:unnecessary_string_interpolations, unnecessary_string_escapes + +import 'package:intl/intl.dart'; +import 'package:intl/message_lookup_by_library.dart'; + +final messages = new MessageLookup(); + +typedef String MessageIfAbsent(String messageStr, List args); + +class MessageLookup extends MessageLookupByLibrary { + String get localeName => 'sr'; + + final messages = _notInlinedMessages(_notInlinedMessages); + static Map _notInlinedMessages(_) => { + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person.") + }; +} diff --git a/mobile/lib/generated/intl/messages_sv.dart b/mobile/lib/generated/intl/messages_sv.dart index 0aaac88fcb..735766adef 100644 --- a/mobile/lib/generated/intl/messages_sv.dart +++ b/mobile/lib/generated/intl/messages_sv.dart @@ -164,6 +164,9 @@ class MessageLookup extends MessageLookupByLibrary { "Säkerhetskopieringsinställningar"), "backupStatus": MessageLookupByLibrary.simpleMessage("Säkerhetskopieringsstatus"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blog": MessageLookupByLibrary.simpleMessage("Blogg"), "canNotOpenBody": MessageLookupByLibrary.simpleMessage( "Tyvärr kan detta album inte öppnas i appen."), @@ -353,6 +356,8 @@ class MessageLookup extends MessageLookupByLibrary { "goToSettings": MessageLookupByLibrary.simpleMessage("Gå till inställningar"), "guestView": MessageLookupByLibrary.simpleMessage("Gästvy"), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "help": MessageLookupByLibrary.simpleMessage("Hjälp"), "howItWorks": MessageLookupByLibrary.simpleMessage("Så här fungerar det"), @@ -479,6 +484,8 @@ class MessageLookup extends MessageLookupByLibrary { "publicLinkEnabled": MessageLookupByLibrary.simpleMessage("Offentlig länk aktiverad"), "rateUsOnStore": m67, + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recover": MessageLookupByLibrary.simpleMessage("Återställ"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Återställ konto"), diff --git a/mobile/lib/generated/intl/messages_ta.dart b/mobile/lib/generated/intl/messages_ta.dart index cb54ab10f2..96ed363822 100644 --- a/mobile/lib/generated/intl/messages_ta.dart +++ b/mobile/lib/generated/intl/messages_ta.dart @@ -26,6 +26,9 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("மீண்டும் வருக!"), "askDeleteReason": MessageLookupByLibrary.simpleMessage( "உங்கள் கணக்கை நீக்குவதற்கான முக்கிய காரணம் என்ன?"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "cancel": MessageLookupByLibrary.simpleMessage("ரத்து செய்"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( "Click to install our best version yet"), @@ -50,6 +53,8 @@ class MessageLookup extends MessageLookupByLibrary { "enterYourEmailAddress": MessageLookupByLibrary.simpleMessage( "உங்கள் மின்னஞ்சல் முகவரியை உள்ளிடவும்"), "feedback": MessageLookupByLibrary.simpleMessage("பின்னூட்டம்"), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "invalidEmailAddress": MessageLookupByLibrary.simpleMessage("தவறான மின்னஞ்சல் முகவரி"), "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage( @@ -60,6 +65,8 @@ class MessageLookup extends MessageLookupByLibrary { "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( "Receive reminders about memories from this day in previous years."), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "selectReason": MessageLookupByLibrary.simpleMessage( "காரணத்தைத் தேர்ந்தெடுக்கவும்"), "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_te.dart b/mobile/lib/generated/intl/messages_te.dart index c9b95640ab..9f1b2bd22d 100644 --- a/mobile/lib/generated/intl/messages_te.dart +++ b/mobile/lib/generated/intl/messages_te.dart @@ -22,14 +22,21 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( "Click to install our best version yet"), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( "Look back on your memories 🌄"), "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( "Receive reminders about memories from this day in previous years."), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( "Sorry, we had to pause your backups") }; diff --git a/mobile/lib/generated/intl/messages_th.dart b/mobile/lib/generated/intl/messages_th.dart index 544abcd1e5..445aa6f545 100644 --- a/mobile/lib/generated/intl/messages_th.dart +++ b/mobile/lib/generated/intl/messages_th.dart @@ -78,6 +78,9 @@ class MessageLookup extends MessageLookupByLibrary { "เหตุผลหลักที่คุณลบบัญชีคืออะไร?"), "authToViewYourRecoveryKey": MessageLookupByLibrary.simpleMessage( "โปรดตรวจสอบสิทธิ์เพื่อดูคีย์การกู้คืนของคุณ"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "canOnlyCreateLinkForFilesOwnedByYou": MessageLookupByLibrary.simpleMessage( "สามารถสร้างลิงก์ได้เฉพาะไฟล์ที่คุณเป็นเจ้าของ"), @@ -171,6 +174,8 @@ class MessageLookup extends MessageLookupByLibrary { "freeTrial": MessageLookupByLibrary.simpleMessage("ทดลองใช้ฟรี"), "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("ไปที่การตั้งค่า"), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "hide": MessageLookupByLibrary.simpleMessage("ซ่อน"), "hostedAtOsmFrance": MessageLookupByLibrary.simpleMessage("โฮสต์ที่ OSM ฝรั่งเศส"), @@ -253,6 +258,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("สร้างลิงก์สาธารณะแล้ว"), "publicLinkEnabled": MessageLookupByLibrary.simpleMessage("เปิดใช้ลิงก์สาธารณะแล้ว"), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recover": MessageLookupByLibrary.simpleMessage("กู้คืน"), "recoverAccount": MessageLookupByLibrary.simpleMessage("กู้คืนบัญชี"), "recoverButton": MessageLookupByLibrary.simpleMessage("กู้คืน"), diff --git a/mobile/lib/generated/intl/messages_ti.dart b/mobile/lib/generated/intl/messages_ti.dart index 149fc223fd..1a1a80f3e4 100644 --- a/mobile/lib/generated/intl/messages_ti.dart +++ b/mobile/lib/generated/intl/messages_ti.dart @@ -22,14 +22,21 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( "Click to install our best version yet"), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "lookBackOnYourMemories": MessageLookupByLibrary.simpleMessage( "Look back on your memories 🌄"), "newPhotosEmoji": MessageLookupByLibrary.simpleMessage(" new 📸"), "onThisDay": MessageLookupByLibrary.simpleMessage("On this day"), "onThisDayNotificationExplanation": MessageLookupByLibrary.simpleMessage( "Receive reminders about memories from this day in previous years."), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "sorryWeHadToPauseYourBackups": MessageLookupByLibrary.simpleMessage( "Sorry, we had to pause your backups") }; diff --git a/mobile/lib/generated/intl/messages_tr.dart b/mobile/lib/generated/intl/messages_tr.dart index 8d2895c065..bbacf4b649 100644 --- a/mobile/lib/generated/intl/messages_tr.dart +++ b/mobile/lib/generated/intl/messages_tr.dart @@ -541,7 +541,10 @@ class MessageLookup extends MessageLookupByLibrary { "backupVideos": MessageLookupByLibrary.simpleMessage("Videoları yedekle"), "beach": MessageLookupByLibrary.simpleMessage("Kum ve deniz"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Doğum Günü"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage("Muhteşem Cuma kampanyası"), "blog": MessageLookupByLibrary.simpleMessage("Blog"), @@ -941,6 +944,8 @@ class MessageLookup extends MessageLookupByLibrary { "Lütfen geçerli bir E-posta adresi girin."), "enterYourEmailAddress": MessageLookupByLibrary.simpleMessage("E-posta adresinizi girin"), + "enterYourNewEmailAddress": MessageLookupByLibrary.simpleMessage( + "Yeni e-posta adresinizi girin"), "enterYourPassword": MessageLookupByLibrary.simpleMessage("Lütfen şifrenizi giriniz"), "enterYourRecoveryKey": @@ -1020,7 +1025,7 @@ class MessageLookup extends MessageLookupByLibrary { "flip": MessageLookupByLibrary.simpleMessage("Çevir"), "food": MessageLookupByLibrary.simpleMessage("Yemek keyfi"), "forYourMemories": - MessageLookupByLibrary.simpleMessage("anıların için"), + MessageLookupByLibrary.simpleMessage("anılarınız için"), "forgotPassword": MessageLookupByLibrary.simpleMessage("Şifremi unuttum"), "foundFaces": MessageLookupByLibrary.simpleMessage("Yüzler bulundu"), @@ -1058,6 +1063,8 @@ class MessageLookup extends MessageLookupByLibrary { "guestView": MessageLookupByLibrary.simpleMessage("Misafir Görünümü"), "guestViewEnablePreSteps": MessageLookupByLibrary.simpleMessage( "Misafir görünümünü etkinleştirmek için lütfen sistem ayarlarınızda cihaz şifresi veya ekran kilidi ayarlayın."), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "hearUsExplanation": MessageLookupByLibrary.simpleMessage( "Biz uygulama kurulumlarını takip etmiyoruz. Bizi nereden duyduğunuzdan bahsetmeniz bize çok yardımcı olacak!"), "hearUsWhereTitle": MessageLookupByLibrary.simpleMessage( @@ -1558,6 +1565,8 @@ class MessageLookup extends MessageLookupByLibrary { "reassignedToName": m68, "reassigningLoading": MessageLookupByLibrary.simpleMessage("Yeniden atanıyor..."), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recover": MessageLookupByLibrary.simpleMessage("Kurtarma"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Hesabı kurtar"), "recoverButton": MessageLookupByLibrary.simpleMessage("Kurtar"), @@ -1642,7 +1651,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeShareItemsWarning": MessageLookupByLibrary.simpleMessage( "Kaldırdığınız öğelerden bazıları başkaları tarafından eklenmiştir ve bunlara erişiminizi kaybedeceksiniz"), "removeWithQuestionMark": - MessageLookupByLibrary.simpleMessage("Kaldır?"), + MessageLookupByLibrary.simpleMessage("Kaldırılsın mı?"), "removeYourselfAsTrustedContact": MessageLookupByLibrary.simpleMessage( "Kendinizi güvenilir kişi olarak kaldırın"), "removingFromFavorites": @@ -2200,7 +2209,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "Planınız başarıyla düşürüldü"), "yourPlanWasSuccessfullyUpgraded": MessageLookupByLibrary.simpleMessage( - "Planınız başarılı şekilde yükseltildi"), + "Planınız başarıyla yükseltildi"), "yourPurchaseWasSuccessful": MessageLookupByLibrary.simpleMessage("Satın alım başarılı"), "yourStorageDetailsCouldNotBeFetched": diff --git a/mobile/lib/generated/intl/messages_uk.dart b/mobile/lib/generated/intl/messages_uk.dart index 7309bf269b..b939274212 100644 --- a/mobile/lib/generated/intl/messages_uk.dart +++ b/mobile/lib/generated/intl/messages_uk.dart @@ -445,7 +445,10 @@ class MessageLookup extends MessageLookupByLibrary { "Елементи, для яких було створено резервну копію, показуватимуться тут"), "backupVideos": MessageLookupByLibrary.simpleMessage("Резервне копіювання відео"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("День народження"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage( "Розпродаж у «Чорну п\'ятницю»"), "blog": MessageLookupByLibrary.simpleMessage("Блог"), @@ -940,6 +943,8 @@ class MessageLookup extends MessageLookupByLibrary { "guestView": MessageLookupByLibrary.simpleMessage("Гостьовий перегляд"), "guestViewEnablePreSteps": MessageLookupByLibrary.simpleMessage( "Щоб увімкнути гостьовий перегляд, встановіть пароль або блокування екрана в налаштуваннях системи."), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "hearUsExplanation": MessageLookupByLibrary.simpleMessage( "Ми не відстежуємо встановлення застосунку. Але, якщо ви скажете нам, де ви нас знайшли, це допоможе!"), "hearUsWhereTitle": MessageLookupByLibrary.simpleMessage( @@ -1383,6 +1388,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Оцініть застосунок"), "rateUs": MessageLookupByLibrary.simpleMessage("Оцініть нас"), "rateUsOnStore": m67, + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recover": MessageLookupByLibrary.simpleMessage("Відновити"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Відновити обліковий запис"), diff --git a/mobile/lib/generated/intl/messages_vi.dart b/mobile/lib/generated/intl/messages_vi.dart index cc6f338e38..5c83908120 100644 --- a/mobile/lib/generated/intl/messages_vi.dart +++ b/mobile/lib/generated/intl/messages_vi.dart @@ -448,7 +448,10 @@ class MessageLookup extends MessageLookupByLibrary { "backupStatusDescription": MessageLookupByLibrary.simpleMessage( "Các mục đã được sao lưu sẽ hiển thị ở đây"), "backupVideos": MessageLookupByLibrary.simpleMessage("Sao lưu video"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Sinh nhật"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage("Giảm giá Black Friday"), "blog": MessageLookupByLibrary.simpleMessage("Blog"), @@ -937,6 +940,8 @@ class MessageLookup extends MessageLookupByLibrary { "guestView": MessageLookupByLibrary.simpleMessage("Chế độ khách"), "guestViewEnablePreSteps": MessageLookupByLibrary.simpleMessage( "Để bật chế độ khách, vui lòng thiết lập mã khóa thiết bị hoặc khóa màn hình trong cài đặt hệ thống của bạn."), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "hearUsExplanation": MessageLookupByLibrary.simpleMessage( "Chúng tôi không theo dõi cài đặt ứng dụng. Sẽ rất hữu ích nếu bạn cho chúng tôi biết bạn đã tìm thấy chúng ở đâu!"), "hearUsWhereTitle": MessageLookupByLibrary.simpleMessage( @@ -1377,6 +1382,8 @@ class MessageLookup extends MessageLookupByLibrary { "rateTheApp": MessageLookupByLibrary.simpleMessage("Đánh giá ứng dụng"), "rateUs": MessageLookupByLibrary.simpleMessage("Đánh giá chúng tôi"), "rateUsOnStore": m67, + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recover": MessageLookupByLibrary.simpleMessage("Khôi phục"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Khôi phục tài khoản"), diff --git a/mobile/lib/generated/intl/messages_zh.dart b/mobile/lib/generated/intl/messages_zh.dart index 1fd2fff6a4..50dd5037d7 100644 --- a/mobile/lib/generated/intl/messages_zh.dart +++ b/mobile/lib/generated/intl/messages_zh.dart @@ -476,7 +476,10 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("已备份的项目将显示在此处"), "backupVideos": MessageLookupByLibrary.simpleMessage("备份视频"), "beach": MessageLookupByLibrary.simpleMessage("沙滩与大海"), + "birhtdayNotifications": + MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("生日"), + "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage("黑色星期五特惠"), "blog": MessageLookupByLibrary.simpleMessage("博客"), "cachedData": MessageLookupByLibrary.simpleMessage("缓存数据"), @@ -876,6 +879,8 @@ class MessageLookup extends MessageLookupByLibrary { "guestView": MessageLookupByLibrary.simpleMessage("访客视图"), "guestViewEnablePreSteps": MessageLookupByLibrary.simpleMessage("要启用访客视图,请在系统设置中设置设备密码或屏幕锁。"), + "happyBirthday": + MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), "hearUsExplanation": MessageLookupByLibrary.simpleMessage( "我们不跟踪应用程序安装情况。如果您告诉我们您是在哪里找到我们的,将会有所帮助!"), "hearUsWhereTitle": @@ -1286,6 +1291,8 @@ class MessageLookup extends MessageLookupByLibrary { "reassignMe": MessageLookupByLibrary.simpleMessage("重新分配“我”"), "reassignedToName": m68, "reassigningLoading": MessageLookupByLibrary.simpleMessage("正在重新分配..."), + "receiveRemindersOnBirthdays": MessageLookupByLibrary.simpleMessage( + "Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person."), "recover": MessageLookupByLibrary.simpleMessage("恢复"), "recoverAccount": MessageLookupByLibrary.simpleMessage("恢复账户"), "recoverButton": MessageLookupByLibrary.simpleMessage("恢复"), diff --git a/mobile/lib/generated/l10n.dart b/mobile/lib/generated/l10n.dart index b580aada38..d6d998b4ac 100644 --- a/mobile/lib/generated/l10n.dart +++ b/mobile/lib/generated/l10n.dart @@ -11925,6 +11925,56 @@ class S { args: [], ); } + + /// `Birhtday notifications` + String get birhtdayNotifications { + return Intl.message( + 'Birhtday notifications', + name: 'birhtdayNotifications', + desc: '', + args: [], + ); + } + + /// `Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.` + String get receiveRemindersOnBirthdays { + return Intl.message( + 'Receive reminders when it\'s someone\'s birthday. Tapping on the notification will take you to photos of the birthday person.', + name: 'receiveRemindersOnBirthdays', + desc: '', + args: [], + ); + } + + /// `Happy birthday! 🥳` + String get happyBirthday { + return Intl.message( + 'Happy birthday! 🥳', + name: 'happyBirthday', + desc: '', + args: [], + ); + } + + /// `Happy birthday to {name}! 🎉` + String happyBirthdayToPerson(Object name) { + return Intl.message( + 'Happy birthday to $name! 🎉', + name: 'happyBirthdayToPerson', + desc: '', + args: [name], + ); + } + + /// `Birthdays` + String get birthdays { + return Intl.message( + 'Birthdays', + name: 'birthdays', + desc: '', + args: [], + ); + } } class AppLocalizationDelegate extends LocalizationsDelegate { @@ -11968,6 +12018,7 @@ class AppLocalizationDelegate extends LocalizationsDelegate { Locale.fromSubtags(languageCode: 'ro'), Locale.fromSubtags(languageCode: 'ru'), Locale.fromSubtags(languageCode: 'sl'), + Locale.fromSubtags(languageCode: 'sr'), Locale.fromSubtags(languageCode: 'sv'), Locale.fromSubtags(languageCode: 'ta'), Locale.fromSubtags(languageCode: 'te'), diff --git a/mobile/lib/l10n/intl_ar.arb b/mobile/lib/l10n/intl_ar.arb index 9cf830fe63..7a1238ffda 100644 --- a/mobile/lib/l10n/intl_ar.arb +++ b/mobile/lib/l10n/intl_ar.arb @@ -1746,5 +1746,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_be.arb b/mobile/lib/l10n/intl_be.arb index 7b254e8083..570e7f9e71 100644 --- a/mobile/lib/l10n/intl_be.arb +++ b/mobile/lib/l10n/intl_be.arb @@ -214,5 +214,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_bg.arb b/mobile/lib/l10n/intl_bg.arb index 00a3e71e90..abc21027fd 100644 --- a/mobile/lib/l10n/intl_bg.arb +++ b/mobile/lib/l10n/intl_bg.arb @@ -5,5 +5,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ca.arb b/mobile/lib/l10n/intl_ca.arb index 00a3e71e90..abc21027fd 100644 --- a/mobile/lib/l10n/intl_ca.arb +++ b/mobile/lib/l10n/intl_ca.arb @@ -5,5 +5,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_cs.arb b/mobile/lib/l10n/intl_cs.arb index 762941ec54..ef9c1d94e6 100644 --- a/mobile/lib/l10n/intl_cs.arb +++ b/mobile/lib/l10n/intl_cs.arb @@ -445,5 +445,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_da.arb b/mobile/lib/l10n/intl_da.arb index a6b4f4872d..c3d869d43b 100644 --- a/mobile/lib/l10n/intl_da.arb +++ b/mobile/lib/l10n/intl_da.arb @@ -328,5 +328,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_de.arb b/mobile/lib/l10n/intl_de.arb index 260c33315e..38f0408969 100644 --- a/mobile/lib/l10n/intl_de.arb +++ b/mobile/lib/l10n/intl_de.arb @@ -1736,5 +1736,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_el.arb b/mobile/lib/l10n/intl_el.arb index c1d4422188..a0578b6ccd 100644 --- a/mobile/lib/l10n/intl_el.arb +++ b/mobile/lib/l10n/intl_el.arb @@ -6,5 +6,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_en.arb b/mobile/lib/l10n/intl_en.arb index c6711a6996..8a48dc4ae2 100644 --- a/mobile/lib/l10n/intl_en.arb +++ b/mobile/lib/l10n/intl_en.arb @@ -1751,5 +1751,10 @@ "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", "addMemoriesWidgetPrompt": "Add a memories widget to your homescreen and come back here to customize.", "addAlbumWidgetPrompt": "Add an album widget to your homescreen and come back here to customize.", - "addPeopleWidgetPrompt": "Add a people widget to your homescreen and come back here to customize." -} \ No newline at end of file + "addPeopleWidgetPrompt": "Add a people widget to your homescreen and come back here to customize.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "happyBirthdayToPerson": "Happy birthday to {name}! 🎉", + "birthdays": "Birthdays" +} diff --git a/mobile/lib/l10n/intl_es.arb b/mobile/lib/l10n/intl_es.arb index dedaff19bb..d8c567f6f5 100644 --- a/mobile/lib/l10n/intl_es.arb +++ b/mobile/lib/l10n/intl_es.arb @@ -1740,5 +1740,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_et.arb b/mobile/lib/l10n/intl_et.arb index 1fd198de38..a263b070b3 100644 --- a/mobile/lib/l10n/intl_et.arb +++ b/mobile/lib/l10n/intl_et.arb @@ -224,5 +224,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_eu.arb b/mobile/lib/l10n/intl_eu.arb index d7e4e63e2b..cdddc4a675 100644 --- a/mobile/lib/l10n/intl_eu.arb +++ b/mobile/lib/l10n/intl_eu.arb @@ -464,5 +464,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_fa.arb b/mobile/lib/l10n/intl_fa.arb index 67313ebc71..53738d922f 100644 --- a/mobile/lib/l10n/intl_fa.arb +++ b/mobile/lib/l10n/intl_fa.arb @@ -313,5 +313,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_fr.arb b/mobile/lib/l10n/intl_fr.arb index 2f932737e6..08ca5989ff 100644 --- a/mobile/lib/l10n/intl_fr.arb +++ b/mobile/lib/l10n/intl_fr.arb @@ -1736,5 +1736,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_gu.arb b/mobile/lib/l10n/intl_gu.arb index 00a3e71e90..abc21027fd 100644 --- a/mobile/lib/l10n/intl_gu.arb +++ b/mobile/lib/l10n/intl_gu.arb @@ -5,5 +5,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_he.arb b/mobile/lib/l10n/intl_he.arb index 46631e6473..bbff73ef16 100644 --- a/mobile/lib/l10n/intl_he.arb +++ b/mobile/lib/l10n/intl_he.arb @@ -797,5 +797,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_hi.arb b/mobile/lib/l10n/intl_hi.arb index cb3d6271b1..c40173480b 100644 --- a/mobile/lib/l10n/intl_hi.arb +++ b/mobile/lib/l10n/intl_hi.arb @@ -54,5 +54,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_hu.arb b/mobile/lib/l10n/intl_hu.arb index b3fe594370..e560efa38d 100644 --- a/mobile/lib/l10n/intl_hu.arb +++ b/mobile/lib/l10n/intl_hu.arb @@ -16,5 +16,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_id.arb b/mobile/lib/l10n/intl_id.arb index 8d8f9dd496..fc51c89709 100644 --- a/mobile/lib/l10n/intl_id.arb +++ b/mobile/lib/l10n/intl_id.arb @@ -1104,5 +1104,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_it.arb b/mobile/lib/l10n/intl_it.arb index 15f3e6aae5..eba50f8f04 100644 --- a/mobile/lib/l10n/intl_it.arb +++ b/mobile/lib/l10n/intl_it.arb @@ -1554,5 +1554,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ja.arb b/mobile/lib/l10n/intl_ja.arb index b31a3b22ae..c82cba8ec8 100644 --- a/mobile/lib/l10n/intl_ja.arb +++ b/mobile/lib/l10n/intl_ja.arb @@ -1682,5 +1682,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_km.arb b/mobile/lib/l10n/intl_km.arb index 00a3e71e90..abc21027fd 100644 --- a/mobile/lib/l10n/intl_km.arb +++ b/mobile/lib/l10n/intl_km.arb @@ -5,5 +5,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ko.arb b/mobile/lib/l10n/intl_ko.arb index d2b77112d0..34883210eb 100644 --- a/mobile/lib/l10n/intl_ko.arb +++ b/mobile/lib/l10n/intl_ko.arb @@ -18,5 +18,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_lt.arb b/mobile/lib/l10n/intl_lt.arb index 2b1be4cdba..ff887415b4 100644 --- a/mobile/lib/l10n/intl_lt.arb +++ b/mobile/lib/l10n/intl_lt.arb @@ -1736,5 +1736,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_lv.arb b/mobile/lib/l10n/intl_lv.arb index 00a3e71e90..abc21027fd 100644 --- a/mobile/lib/l10n/intl_lv.arb +++ b/mobile/lib/l10n/intl_lv.arb @@ -5,5 +5,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ml.arb b/mobile/lib/l10n/intl_ml.arb index b9d7f7fc6b..7ca8666be6 100644 --- a/mobile/lib/l10n/intl_ml.arb +++ b/mobile/lib/l10n/intl_ml.arb @@ -105,5 +105,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_nl.arb b/mobile/lib/l10n/intl_nl.arb index 120d47b62b..3e804f487d 100644 --- a/mobile/lib/l10n/intl_nl.arb +++ b/mobile/lib/l10n/intl_nl.arb @@ -1745,5 +1745,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_no.arb b/mobile/lib/l10n/intl_no.arb index 0ca7508080..be3c47794b 100644 --- a/mobile/lib/l10n/intl_no.arb +++ b/mobile/lib/l10n/intl_no.arb @@ -1705,5 +1705,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_or.arb b/mobile/lib/l10n/intl_or.arb index 00a3e71e90..abc21027fd 100644 --- a/mobile/lib/l10n/intl_or.arb +++ b/mobile/lib/l10n/intl_or.arb @@ -5,5 +5,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_pl.arb b/mobile/lib/l10n/intl_pl.arb index 97c4cad584..03dba7b1c6 100644 --- a/mobile/lib/l10n/intl_pl.arb +++ b/mobile/lib/l10n/intl_pl.arb @@ -1539,5 +1539,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_pt.arb b/mobile/lib/l10n/intl_pt.arb index e88e9351f7..a85b5b1cd2 100644 --- a/mobile/lib/l10n/intl_pt.arb +++ b/mobile/lib/l10n/intl_pt.arb @@ -1681,5 +1681,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_pt_BR.arb b/mobile/lib/l10n/intl_pt_BR.arb index 09bbbae4f7..5b04c3a1c0 100644 --- a/mobile/lib/l10n/intl_pt_BR.arb +++ b/mobile/lib/l10n/intl_pt_BR.arb @@ -1736,5 +1736,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_pt_PT.arb b/mobile/lib/l10n/intl_pt_PT.arb index 1a2549bd3f..54140bbc89 100644 --- a/mobile/lib/l10n/intl_pt_PT.arb +++ b/mobile/lib/l10n/intl_pt_PT.arb @@ -1393,5 +1393,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ro.arb b/mobile/lib/l10n/intl_ro.arb index 685c7bbf87..f1524ba7b8 100644 --- a/mobile/lib/l10n/intl_ro.arb +++ b/mobile/lib/l10n/intl_ro.arb @@ -1528,5 +1528,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ru.arb b/mobile/lib/l10n/intl_ru.arb index fbc457de43..ee596e6815 100644 --- a/mobile/lib/l10n/intl_ru.arb +++ b/mobile/lib/l10n/intl_ru.arb @@ -1740,5 +1740,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_sl.arb b/mobile/lib/l10n/intl_sl.arb index 00a3e71e90..abc21027fd 100644 --- a/mobile/lib/l10n/intl_sl.arb +++ b/mobile/lib/l10n/intl_sl.arb @@ -5,5 +5,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_sr.arb b/mobile/lib/l10n/intl_sr.arb index c8494661c6..769371850f 100644 --- a/mobile/lib/l10n/intl_sr.arb +++ b/mobile/lib/l10n/intl_sr.arb @@ -1,3 +1,7 @@ { - "@@locale ": "en" + "@@locale ": "en", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_sv.arb b/mobile/lib/l10n/intl_sv.arb index e208dc1ed5..edd5f3a326 100644 --- a/mobile/lib/l10n/intl_sv.arb +++ b/mobile/lib/l10n/intl_sv.arb @@ -537,5 +537,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ta.arb b/mobile/lib/l10n/intl_ta.arb index cbe223602b..d999bafbeb 100644 --- a/mobile/lib/l10n/intl_ta.arb +++ b/mobile/lib/l10n/intl_ta.arb @@ -25,5 +25,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_te.arb b/mobile/lib/l10n/intl_te.arb index 00a3e71e90..abc21027fd 100644 --- a/mobile/lib/l10n/intl_te.arb +++ b/mobile/lib/l10n/intl_te.arb @@ -5,5 +5,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_th.arb b/mobile/lib/l10n/intl_th.arb index a81dd7d64b..49942f031c 100644 --- a/mobile/lib/l10n/intl_th.arb +++ b/mobile/lib/l10n/intl_th.arb @@ -293,5 +293,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_ti.arb b/mobile/lib/l10n/intl_ti.arb index 00a3e71e90..abc21027fd 100644 --- a/mobile/lib/l10n/intl_ti.arb +++ b/mobile/lib/l10n/intl_ti.arb @@ -5,5 +5,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_tr.arb b/mobile/lib/l10n/intl_tr.arb index d9813a1e00..b31fb70fba 100644 --- a/mobile/lib/l10n/intl_tr.arb +++ b/mobile/lib/l10n/intl_tr.arb @@ -1746,5 +1746,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_uk.arb b/mobile/lib/l10n/intl_uk.arb index e4829020f1..a7b2c55f93 100644 --- a/mobile/lib/l10n/intl_uk.arb +++ b/mobile/lib/l10n/intl_uk.arb @@ -1516,5 +1516,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_vi.arb b/mobile/lib/l10n/intl_vi.arb index 3513147fac..6d88de6b46 100644 --- a/mobile/lib/l10n/intl_vi.arb +++ b/mobile/lib/l10n/intl_vi.arb @@ -1538,5 +1538,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_zh.arb b/mobile/lib/l10n/intl_zh.arb index 9a26183f57..7a1961bfb2 100644 --- a/mobile/lib/l10n/intl_zh.arb +++ b/mobile/lib/l10n/intl_zh.arb @@ -1739,5 +1739,9 @@ "newPhotosEmoji": " new 📸", "sorryWeHadToPauseYourBackups": "Sorry, we had to pause your backups", "clickToInstallOurBestVersionYet": "Click to install our best version yet", - "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years." + "onThisDayNotificationExplanation": "Receive reminders about memories from this day in previous years.", + "birhtdayNotifications": "Birhtday notifications", + "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", + "happyBirthday": "Happy birthday! 🥳", + "birthdays": "Birthdays" } \ No newline at end of file diff --git a/mobile/lib/services/memories_cache_service.dart b/mobile/lib/services/memories_cache_service.dart index bfb8d21374..b74a8591a6 100644 --- a/mobile/lib/services/memories_cache_service.dart +++ b/mobile/lib/services/memories_cache_service.dart @@ -664,14 +664,14 @@ class MemoriesCacheService { ); continue; } + final s = await LanguageService.s; await NotificationService.instance.scheduleNotification( memory.personName != null - ? "Happy birthday to ${memory.personName}! 🎉" - : "Happy birthday! 🥳", - // TODO:lau (after mergin main): extract strings + ? s.happyBirthdayToPerson(memory.personName!) + : s.happyBirthday, id: memory.id.hashCode, channelID: "birthday", - channelName: "Birthdays", + channelName: s.birthdays, payload: "birthday_${memory.personID}", dateTime: scheduleTime, timeoutDurationAndroid: const Duration(hours: 17), diff --git a/mobile/lib/ui/settings/notification_settings_screen.dart b/mobile/lib/ui/settings/notification_settings_screen.dart index 6c12c94c8f..0281092e18 100644 --- a/mobile/lib/ui/settings/notification_settings_screen.dart +++ b/mobile/lib/ui/settings/notification_settings_screen.dart @@ -110,7 +110,7 @@ class NotificationSettingsScreen extends StatelessWidget { sectionOptionSpacing, MenuItemWidget( captionedTextWidget: CaptionedTextWidget( - title: "Birhtday notifications", + title: S.of(context).birhtdayNotifications, ), menuItemColor: colorScheme.fillFaint, trailingWidget: ToggleSwitchWidget( @@ -130,8 +130,9 @@ class NotificationSettingsScreen extends StatelessWidget { isGestureDetectorDisabled: true, ), MenuSectionDescriptionWidget( - content: - "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person."), + content: + S.of(context).receiveRemindersOnBirthdays, + ), ], ), ], diff --git a/mobile/pubspec.lock b/mobile/pubspec.lock index 8db2bae6ef..ff0c782525 100644 --- a/mobile/pubspec.lock +++ b/mobile/pubspec.lock @@ -5,10 +5,10 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: "16e298750b6d0af7ce8a3ba7c18c69c3785d11b15ec83f6dcd0ad2a0009b3cab" + sha256: f256b0c0ba6c7577c15e2e4e114755640a875e885099367bf6e012b19314c834 url: "https://pub.dev" source: hosted - version: "76.0.0" + version: "72.0.0" _flutterfire_internals: dependency: transitive description: @@ -21,7 +21,7 @@ packages: dependency: transitive description: dart source: sdk - version: "0.3.3" + version: "0.3.2" adaptive_theme: dependency: "direct main" description: @@ -34,10 +34,10 @@ packages: dependency: transitive description: name: analyzer - sha256: "1f14db053a8c23e260789e9b0980fa27f2680dd640932cae5e1137cce0e46e1e" + sha256: b652861553cd3990d8ed361f7979dc6d7053a9ac8843fa73820ab68ce5410139 url: "https://pub.dev" source: hosted - version: "6.11.0" + version: "6.7.0" android_intent_plus: dependency: "direct main" description: @@ -325,10 +325,10 @@ packages: dependency: "direct main" description: name: collection - sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a url: "https://pub.dev" source: hosted - version: "1.19.0" + version: "1.18.0" computer: dependency: "direct main" description: @@ -1424,18 +1424,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" + sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" url: "https://pub.dev" source: hosted - version: "10.0.7" + version: "10.0.5" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" + sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" url: "https://pub.dev" source: hosted - version: "3.0.8" + version: "3.0.5" leak_tracker_testing: dependency: transitive description: @@ -1544,10 +1544,10 @@ packages: dependency: transitive description: name: macros - sha256: "1d9e801cd66f7ea3663c45fc708450db1fa57f988142c64289142c9b7ee80656" + sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536" url: "https://pub.dev" source: hosted - version: "0.1.3-main.0" + version: "0.1.2-main.4" maps_launcher: dependency: "direct main" description: @@ -2317,7 +2317,7 @@ packages: dependency: transitive description: flutter source: sdk - version: "0.0.0" + version: "0.0.99" source_gen: dependency: transitive description: @@ -2442,10 +2442,10 @@ packages: dependency: transitive description: name: stack_trace - sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" url: "https://pub.dev" source: hosted - version: "1.12.0" + version: "1.11.1" step_progress_indicator: dependency: "direct main" description: @@ -2474,10 +2474,10 @@ packages: dependency: transitive description: name: string_scanner - sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.2.0" styled_text: dependency: "direct main" description: @@ -2538,26 +2538,26 @@ packages: dependency: "direct dev" description: name: test - sha256: "713a8789d62f3233c46b4a90b174737b2c04cb6ae4500f2aa8b1be8f03f5e67f" + sha256: "7ee44229615f8f642b68120165ae4c2a75fe77ae2065b1e55ae4711f6cf0899e" url: "https://pub.dev" source: hosted - version: "1.25.8" + version: "1.25.7" test_api: dependency: transitive description: name: test_api - sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" + sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" url: "https://pub.dev" source: hosted - version: "0.7.3" + version: "0.7.2" test_core: dependency: transitive description: name: test_core - sha256: "12391302411737c176b0b5d6491f466b0dd56d4763e347b6714efbaa74d7953d" + sha256: "55ea5a652e38a1dfb32943a7973f3681a60f872f8c3a05a14664ad54ef9c6696" url: "https://pub.dev" source: hosted - version: "0.6.5" + version: "0.6.4" thermal: dependency: "direct main" description: @@ -2821,10 +2821,10 @@ packages: dependency: transitive description: name: vm_service - sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b + sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" url: "https://pub.dev" source: hosted - version: "14.3.0" + version: "14.2.5" volume_controller: dependency: transitive description: @@ -2885,10 +2885,10 @@ packages: dependency: transitive description: name: webdriver - sha256: "3d773670966f02a646319410766d3b5e1037efb7f07cc68f844d5e06cd4d61c8" + sha256: "003d7da9519e1e5f329422b36c4dcdf18d7d2978d1ba099ea4e45ba490ed845e" url: "https://pub.dev" source: hosted - version: "3.0.4" + version: "3.0.3" webkit_inspection_protocol: dependency: transitive description: From 69756d5733fef5abc4742d84f5dbf987744d0689 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 09:54:19 +0530 Subject: [PATCH 209/316] Conv --- .../photos/src/services/collectionService.ts | 43 ++++++++++--------- web/packages/gallery/services/file.ts | 27 ++++++------ 2 files changed, 35 insertions(+), 35 deletions(-) diff --git a/web/apps/photos/src/services/collectionService.ts b/web/apps/photos/src/services/collectionService.ts index 4633340226..98a95d441e 100644 --- a/web/apps/photos/src/services/collectionService.ts +++ b/web/apps/photos/src/services/collectionService.ts @@ -1,5 +1,5 @@ import type { User } from "ente-accounts/services/user"; -import { encryptMetadataJSON, sharedCryptoWorker } from "ente-base/crypto"; +import { encryptMetadataJSON_New, sharedCryptoWorker } from "ente-base/crypto"; import { ensureLocalUser } from "ente-base/local-user"; import log from "ente-base/log"; import { apiURL } from "ente-base/origins"; @@ -78,16 +78,15 @@ const createCollection = async ( let encryptedMagicMetadata: EncryptedMagicMetadata; if (magicMetadataProps) { const magicMetadata = await updateMagicMetadata(magicMetadataProps); - const encryptedMagicMetadataProps = - await cryptoWorker.encryptMetadataJSON({ - jsonValue: magicMetadataProps, - keyB64: collectionKey, - }); - + const { encryptedData, decryptionHeader } = + await cryptoWorker.encryptMetadataJSON_New( + magicMetadataProps, + collectionKey, + ); encryptedMagicMetadata = { ...magicMetadata, - data: encryptedMagicMetadataProps.encryptedDataB64, - header: encryptedMagicMetadataProps.decryptionHeaderB64, + data: encryptedData, + header: decryptionHeader, }; } const newCollection: EncryptedCollection = { @@ -357,8 +356,9 @@ export const updateCollectionMagicMetadata = async ( return; } - const { encryptedDataB64, decryptionHeaderB64 } = await encryptMetadataJSON( - { jsonValue: updatedMagicMetadata.data, keyB64: collection.key }, + const { encryptedData, decryptionHeader } = await encryptMetadataJSON_New( + updatedMagicMetadata.data, + collection.key, ); const reqBody: UpdateMagicMetadataRequest = { @@ -366,8 +366,8 @@ export const updateCollectionMagicMetadata = async ( magicMetadata: { version: updatedMagicMetadata.version, count: updatedMagicMetadata.count, - data: encryptedDataB64, - header: decryptionHeaderB64, + data: encryptedData, + header: decryptionHeader, }, }; @@ -396,16 +396,17 @@ export const updateSharedCollectionMagicMetadata = async ( return; } - const { encryptedDataB64, decryptionHeaderB64 } = await encryptMetadataJSON( - { jsonValue: updatedMagicMetadata.data, keyB64: collection.key }, + const { encryptedData, decryptionHeader } = await encryptMetadataJSON_New( + updatedMagicMetadata.data, + collection.key, ); const reqBody: UpdateMagicMetadataRequest = { id: collection.id, magicMetadata: { version: updatedMagicMetadata.version, count: updatedMagicMetadata.count, - data: encryptedDataB64, - header: decryptionHeaderB64, + data: encryptedData, + header: decryptionHeader, }, }; @@ -434,9 +435,11 @@ export const updatePublicCollectionMagicMetadata = async ( return; } - const { encryptedDataB64, decryptionHeaderB64 } = await encryptMetadataJSON( - { jsonValue: updatedPublicMagicMetadata.data, keyB64: collection.key }, - ); + const { encryptedDataB64, decryptionHeaderB64 } = + await encryptMetadataJSON_New({ + jsonValue: updatedPublicMagicMetadata.data, + keyB64: collection.key, + }); const reqBody: UpdateMagicMetadataRequest = { id: collection.id, magicMetadata: { diff --git a/web/packages/gallery/services/file.ts b/web/packages/gallery/services/file.ts index 4c37cb5158..e31508896f 100644 --- a/web/packages/gallery/services/file.ts +++ b/web/packages/gallery/services/file.ts @@ -1,7 +1,7 @@ /* TODO: Audit this file */ /* eslint-disable @typescript-eslint/ban-ts-comment */ -import { encryptMetadataJSON } from "ente-base/crypto"; +import { encryptMetadataJSON_New } from "ente-base/crypto"; import { apiURL } from "ente-base/origins"; import { updateMagicMetadata } from "ente-gallery/services/magic-metadata"; import type { @@ -37,18 +37,15 @@ export const updateFileMagicMetadata = async ( file, updatedMagicMetadata, } of fileWithUpdatedMagicMetadataList) { - const { encryptedDataB64, decryptionHeaderB64 } = - await encryptMetadataJSON({ - jsonValue: updatedMagicMetadata.data, - keyB64: file.key, - }); + const { encryptedData, decryptionHeader } = + await encryptMetadataJSON_New(updatedMagicMetadata.data, file.key); reqBody.metadataList.push({ id: file.id, magicMetadata: { version: updatedMagicMetadata.version, count: updatedMagicMetadata.count, - data: encryptedDataB64, - header: decryptionHeaderB64, + data: encryptedData, + header: decryptionHeader, }, }); } @@ -83,18 +80,18 @@ export const updateFilePublicMagicMetadata = async ( file, updatedPublicMagicMetadata, } of fileWithUpdatedPublicMagicMetadataList) { - const { encryptedDataB64, decryptionHeaderB64 } = - await encryptMetadataJSON({ - jsonValue: updatedPublicMagicMetadata.data, - keyB64: file.key, - }); + const { encryptedData, decryptionHeader } = + await encryptMetadataJSON_New( + updatedPublicMagicMetadata.data, + file.key, + ); reqBody.metadataList.push({ id: file.id, magicMetadata: { version: updatedPublicMagicMetadata.version, count: updatedPublicMagicMetadata.count, - data: encryptedDataB64, - header: decryptionHeaderB64, + data: encryptedData, + header: decryptionHeader, }, }); } From 65982b6f82e6fe144b32a407feecabca3735ba54 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 09:57:46 +0530 Subject: [PATCH 210/316] Del --- web/apps/photos/src/services/collectionService.ts | 13 ++++++------- web/packages/base/crypto/ente-impl.ts | 15 --------------- web/packages/base/crypto/index.ts | 11 ----------- web/packages/base/crypto/worker.ts | 1 - 4 files changed, 6 insertions(+), 34 deletions(-) diff --git a/web/apps/photos/src/services/collectionService.ts b/web/apps/photos/src/services/collectionService.ts index 98a95d441e..07ef9759f6 100644 --- a/web/apps/photos/src/services/collectionService.ts +++ b/web/apps/photos/src/services/collectionService.ts @@ -435,18 +435,17 @@ export const updatePublicCollectionMagicMetadata = async ( return; } - const { encryptedDataB64, decryptionHeaderB64 } = - await encryptMetadataJSON_New({ - jsonValue: updatedPublicMagicMetadata.data, - keyB64: collection.key, - }); + const { encryptedData, decryptionHeader } = await encryptMetadataJSON_New( + updatedPublicMagicMetadata.data, + collection.key, + ); const reqBody: UpdateMagicMetadataRequest = { id: collection.id, magicMetadata: { version: updatedPublicMagicMetadata.version, count: updatedPublicMagicMetadata.count, - data: encryptedDataB64, - header: decryptionHeaderB64, + data: encryptedData, + header: decryptionHeader, }, }; diff --git a/web/packages/base/crypto/ente-impl.ts b/web/packages/base/crypto/ente-impl.ts index 97cb19537d..cce1766390 100644 --- a/web/packages/base/crypto/ente-impl.ts +++ b/web/packages/base/crypto/ente-impl.ts @@ -31,21 +31,6 @@ export const _encryptStreamChunk = libsodium.encryptStreamChunk; export const _encryptMetadataJSON_New = (jsonValue: unknown, key: BytesOrB64) => _encryptBlob(new TextEncoder().encode(JSON.stringify(jsonValue)), key); -// Deprecated, translates to the old API for now. -export const _encryptMetadataJSON = async (r: { - jsonValue: unknown; - keyB64: string; -}) => { - const { encryptedData, decryptionHeader } = await _encryptMetadataJSON_New( - r.jsonValue, - r.keyB64, - ); - return { - encryptedDataB64: encryptedData, - decryptionHeaderB64: decryptionHeader, - }; -}; - export const _decryptBoxBytes = libsodium.decryptBoxBytes; export const _decryptBox = libsodium.decryptBox; diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index d8b6665e77..28edaf0932 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -258,17 +258,6 @@ export const encryptMetadataJSON_New = (jsonValue: unknown, key: BytesOrB64) => ? ei._encryptMetadataJSON_New(jsonValue, key) : sharedWorker().then((w) => w.encryptMetadataJSON_New(jsonValue, key)); -/** - * Deprecated, use {@link encryptMetadataJSON_New} instead. - */ -export const encryptMetadataJSON = async (r: { - jsonValue: unknown; - keyB64: string; -}) => - inWorker() - ? ei._encryptMetadataJSON(r) - : sharedWorker().then((w) => w.encryptMetadataJSON(r)); - /** * Decrypt a box encrypted using {@link encryptBox} and returns the decrypted * bytes as a base64 string. diff --git a/web/packages/base/crypto/worker.ts b/web/packages/base/crypto/worker.ts index a0373edcbc..9c425c2137 100644 --- a/web/packages/base/crypto/worker.ts +++ b/web/packages/base/crypto/worker.ts @@ -27,7 +27,6 @@ export class CryptoWorker { initChunkEncryption = ei._initChunkEncryption; encryptStreamChunk = ei._encryptStreamChunk; encryptMetadataJSON_New = ei._encryptMetadataJSON_New; - encryptMetadataJSON = ei._encryptMetadataJSON; decryptBoxBytes = ei._decryptBoxBytes; decryptBox = ei._decryptBox; decryptBlobBytes = ei._decryptBlobBytes; From 0241e41f0dbeb596ad885ca4630b1374900c3147 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 10:13:44 +0530 Subject: [PATCH 211/316] Tweak --- web/packages/base/crypto/libsodium.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index e9a7a1d874..996c3d6c67 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -867,7 +867,7 @@ export const deriveSensitiveKey = async (passphrase: string, salt: string) => { memLimit /= 2; } } - throw new Error("Failed to derive key: Memory limit exceeded"); + throw new Error("Failed to derive key: memory limit exceeded"); }; /** From 917ce21b35044821163f5bcb45d03fcc45c22f7f Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Thu, 5 Jun 2025 10:19:07 +0530 Subject: [PATCH 212/316] Fix: Handle already linked email err --- mobile/lib/generated/intl/messages_sr.dart | 25 +++++++++++++++++++ .../ui/viewer/people/link_email_screen.dart | 3 ++- .../person_selection_action_widgets.dart | 3 ++- 3 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 mobile/lib/generated/intl/messages_sr.dart diff --git a/mobile/lib/generated/intl/messages_sr.dart b/mobile/lib/generated/intl/messages_sr.dart new file mode 100644 index 0000000000..baacea2a95 --- /dev/null +++ b/mobile/lib/generated/intl/messages_sr.dart @@ -0,0 +1,25 @@ +// DO NOT EDIT. This is code generated via package:intl/generate_localized.dart +// This is a library that provides messages for a sr locale. All the +// messages from the main program should be duplicated here with the same +// function name. + +// Ignore issues from commonly used lints in this file. +// ignore_for_file:unnecessary_brace_in_string_interps, unnecessary_new +// ignore_for_file:prefer_single_quotes,comment_references, directives_ordering +// ignore_for_file:annotate_overrides,prefer_generic_function_type_aliases +// ignore_for_file:unused_import, file_names, avoid_escaping_inner_quotes +// ignore_for_file:unnecessary_string_interpolations, unnecessary_string_escapes + +import 'package:intl/intl.dart'; +import 'package:intl/message_lookup_by_library.dart'; + +final messages = new MessageLookup(); + +typedef String MessageIfAbsent(String messageStr, List args); + +class MessageLookup extends MessageLookupByLibrary { + String get localeName => 'sr'; + + final messages = _notInlinedMessages(_notInlinedMessages); + static Map _notInlinedMessages(_) => {}; +} diff --git a/mobile/lib/ui/viewer/people/link_email_screen.dart b/mobile/lib/ui/viewer/people/link_email_screen.dart index 37aa85882a..f4effaa7e6 100644 --- a/mobile/lib/ui/viewer/people/link_email_screen.dart +++ b/mobile/lib/ui/viewer/people/link_email_screen.dart @@ -318,7 +318,8 @@ class _LinkEmailScreen extends State { BuildContext context, ) async { if (await checkIfEmailAlreadyAssignedToAPerson(email)) { - throw Exception("Email already linked to a person"); + await showAlreadyLinkedEmailDialog(context, email); + return false; } String? publicKey; diff --git a/mobile/lib/ui/viewer/people/person_selection_action_widgets.dart b/mobile/lib/ui/viewer/people/person_selection_action_widgets.dart index 26899e037b..e22a7696cb 100644 --- a/mobile/lib/ui/viewer/people/person_selection_action_widgets.dart +++ b/mobile/lib/ui/viewer/people/person_selection_action_widgets.dart @@ -143,7 +143,8 @@ class _LinkContactToPersonSelectionPageState required PersonEntity personEntity, }) async { if (await checkIfEmailAlreadyAssignedToAPerson(emailToLink)) { - throw Exception("Email already linked to a person"); + await showAlreadyLinkedEmailDialog(context, emailToLink); + return null; } final personName = personEntity.data.name; From f5aefb445d28b90d51b886c207ca9786b5333c0e Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 10:19:38 +0530 Subject: [PATCH 213/316] Conv --- web/apps/cast/src/services/render.ts | 24 +++++++------ .../src/services/publicCollectionService.ts | 14 ++++---- .../gallery/services/magic-metadata.ts | 12 ++++--- web/packages/media/file-metadata.ts | 17 +++++---- web/packages/media/file.ts | 24 +++++++------ .../new/photos/services/collections.ts | 36 +++++++++++-------- 6 files changed, 75 insertions(+), 52 deletions(-) diff --git a/web/apps/cast/src/services/render.ts b/web/apps/cast/src/services/render.ts index 35f5388e8a..fcca1750c7 100644 --- a/web/apps/cast/src/services/render.ts +++ b/web/apps/cast/src/services/render.ts @@ -209,22 +209,26 @@ const decryptEnteFile = async ( fileMagicMetadata = { ...encryptedFile.magicMetadata, // @ts-expect-error TODO: Need to use zod here. - data: await worker.decryptMetadataJSON({ - encryptedDataB64: magicMetadata.data, - decryptionHeaderB64: magicMetadata.header, - keyB64: fileKey, - }), + data: await worker.decryptMetadataJSON_New( + { + encryptedData: magicMetadata.data, + decryptionHeader: magicMetadata.header, + }, + fileKey, + ), }; } if (pubMagicMetadata?.data) { filePubMagicMetadata = { ...pubMagicMetadata, // @ts-expect-error TODO: Need to use zod here. - data: await worker.decryptMetadataJSON({ - encryptedDataB64: pubMagicMetadata.data, - decryptionHeaderB64: pubMagicMetadata.header, - keyB64: fileKey, - }), + data: await worker.decryptMetadataJSON_New( + { + encryptedData: pubMagicMetadata.data, + decryptionHeader: pubMagicMetadata.header, + }, + fileKey, + ), }; } return mergeMetadata1({ diff --git a/web/apps/photos/src/services/publicCollectionService.ts b/web/apps/photos/src/services/publicCollectionService.ts index 73c6a1ce31..90796fc52f 100644 --- a/web/apps/photos/src/services/publicCollectionService.ts +++ b/web/apps/photos/src/services/publicCollectionService.ts @@ -335,12 +335,14 @@ export const getPublicCollection = async ( if (fetchedCollection.pubMagicMetadata?.data) { collectionPublicMagicMetadata = { ...fetchedCollection.pubMagicMetadata, - data: await cryptoWorker.decryptMetadataJSON({ - encryptedDataB64: fetchedCollection.pubMagicMetadata.data, - decryptionHeaderB64: - fetchedCollection.pubMagicMetadata.header, - keyB64: collectionKey, - }), + data: await cryptoWorker.decryptMetadataJSON_New( + { + encryptedData: fetchedCollection.pubMagicMetadata.data, + decryptionHeader: + fetchedCollection.pubMagicMetadata.header, + }, + collectionKey, + ), }; } diff --git a/web/packages/gallery/services/magic-metadata.ts b/web/packages/gallery/services/magic-metadata.ts index 02b8451358..ccb21f340c 100644 --- a/web/packages/gallery/services/magic-metadata.ts +++ b/web/packages/gallery/services/magic-metadata.ts @@ -53,15 +53,17 @@ export async function updateMagicMetadata( // // See: [Note: Use passthrough for metadata Zod schemas] // @ts-expect-error TODO: Need to use zod here. - originalMagicMetadata.data = await cryptoWorker.decryptMetadataJSON({ - encryptedDataB64: originalMagicMetadata.data, - decryptionHeaderB64: originalMagicMetadata.header, + originalMagicMetadata.data = await cryptoWorker.decryptMetadataJSON_New( + { + encryptedData: originalMagicMetadata.data, + decryptionHeader: originalMagicMetadata.header, + }, // See: [Note: strict mode migration] // // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - keyB64: decryptionKey, - }); + decryptionKey, + ); } // copies the existing magic metadata properties of the files and updates the visibility value // The expected behavior while updating magic metadata is to let the existing property as it is and update/add the property you want diff --git a/web/packages/media/file-metadata.ts b/web/packages/media/file-metadata.ts index 95ec666dc5..c0656b5338 100644 --- a/web/packages/media/file-metadata.ts +++ b/web/packages/media/file-metadata.ts @@ -1,4 +1,7 @@ -import { decryptMetadataJSON, encryptMetadataJSON_New } from "ente-base/crypto"; +import { + decryptMetadataJSON_New, + encryptMetadataJSON_New, +} from "ente-base/crypto"; import { authenticatedRequestHeaders, ensureOk } from "ente-base/http"; import { apiURL } from "ente-base/origins"; import { type Location } from "ente-base/types"; @@ -434,11 +437,13 @@ export const decryptPublicMagicMetadata = async ( const jsonValue = typeof envelope.data == "string" - ? await decryptMetadataJSON({ - encryptedDataB64: envelope.data, - decryptionHeaderB64: envelope.header, - keyB64: file.key, - }) + ? await decryptMetadataJSON_New( + { + encryptedData: envelope.data, + decryptionHeader: envelope.header, + }, + file.key, + ) : envelope.data; const result = PublicMagicMetadata.parse( // TODO: Can we avoid this cast? diff --git a/web/packages/media/file.ts b/web/packages/media/file.ts index dda205381d..24dcf16242 100644 --- a/web/packages/media/file.ts +++ b/web/packages/media/file.ts @@ -338,11 +338,13 @@ export async function decryptFile( ...file.magicMetadata, // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - data: await worker.decryptMetadataJSON({ - encryptedDataB64: magicMetadata.data, - decryptionHeaderB64: magicMetadata.header, - keyB64: fileKey, - }), + data: await worker.decryptMetadataJSON_New( + { + encryptedData: magicMetadata.data, + decryptionHeader: magicMetadata.header, + }, + fileKey, + ), }; } /* eslint-disable @typescript-eslint/no-unnecessary-condition */ @@ -351,11 +353,13 @@ export async function decryptFile( ...pubMagicMetadata, // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - data: await worker.decryptMetadataJSON({ - encryptedDataB64: pubMagicMetadata.data, - decryptionHeaderB64: pubMagicMetadata.header, - keyB64: fileKey, - }), + data: await worker.decryptMetadataJSON_New( + { + encryptedData: pubMagicMetadata.data, + decryptionHeader: pubMagicMetadata.header, + }, + fileKey, + ), }; } return { diff --git a/web/packages/new/photos/services/collections.ts b/web/packages/new/photos/services/collections.ts index 2ee70780a0..e3423161af 100644 --- a/web/packages/new/photos/services/collections.ts +++ b/web/packages/new/photos/services/collections.ts @@ -234,11 +234,13 @@ export const getCollectionWithSecrets = async ( ...collection.magicMetadata, // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - data: await cryptoWorker.decryptMetadataJSON({ - encryptedDataB64: collection.magicMetadata.data, - decryptionHeaderB64: collection.magicMetadata.header, - keyB64: collectionKey, - }), + data: await cryptoWorker.decryptMetadataJSON_New( + { + encryptedData: collection.magicMetadata.data, + decryptionHeader: collection.magicMetadata.header, + }, + collectionKey, + ), }; } let collectionPublicMagicMetadata: CollectionPublicMagicMetadata; @@ -247,11 +249,13 @@ export const getCollectionWithSecrets = async ( ...collection.pubMagicMetadata, // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - data: await cryptoWorker.decryptMetadataJSON({ - encryptedDataB64: collection.pubMagicMetadata.data, - decryptionHeaderB64: collection.pubMagicMetadata.header, - keyB64: collectionKey, - }), + data: await cryptoWorker.decryptMetadataJSON_New( + { + encryptedData: collection.pubMagicMetadata.data, + decryptionHeader: collection.pubMagicMetadata.header, + }, + collectionKey, + ), }; } @@ -261,11 +265,13 @@ export const getCollectionWithSecrets = async ( ...collection.sharedMagicMetadata, // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - data: await cryptoWorker.decryptMetadataJSON({ - encryptedDataB64: collection.sharedMagicMetadata.data, - decryptionHeaderB64: collection.sharedMagicMetadata.header, - keyB64: collectionKey, - }), + data: await cryptoWorker.decryptMetadataJSON_New( + { + encryptedData: collection.sharedMagicMetadata.data, + decryptionHeader: collection.sharedMagicMetadata.header, + }, + collectionKey, + ), }; } From e6fd962c759b4c237560f5c20b715988c158a46d Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 10:23:02 +0530 Subject: [PATCH 214/316] Del --- web/packages/base/crypto/ente-impl.ts | 13 ------------- web/packages/base/crypto/index.ts | 12 ------------ web/packages/base/crypto/worker.ts | 1 - 3 files changed, 26 deletions(-) diff --git a/web/packages/base/crypto/ente-impl.ts b/web/packages/base/crypto/ente-impl.ts index cce1766390..df2e78bc8a 100644 --- a/web/packages/base/crypto/ente-impl.ts +++ b/web/packages/base/crypto/ente-impl.ts @@ -53,19 +53,6 @@ export const _decryptMetadataJSON_New = async ( new TextDecoder().decode(await _decryptBlobBytes(blob, key)), ) as unknown; -export const _decryptMetadataJSON = async (r: { - encryptedDataB64: string; - decryptionHeaderB64: string; - keyB64: string; -}) => - _decryptMetadataJSON_New( - { - encryptedData: r.encryptedDataB64, - decryptionHeader: r.decryptionHeaderB64, - }, - r.keyB64, - ); - export const _chunkHashInit = libsodium.chunkHashInit; export const _chunkHashUpdate = libsodium.chunkHashUpdate; diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index 28edaf0932..e7f5db026a 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -341,18 +341,6 @@ export const decryptMetadataJSON_New = ( ? ei._decryptMetadataJSON_New(blob, key) : sharedWorker().then((w) => w.decryptMetadataJSON_New(blob, key)); -/** - * Deprecated, retains the old API. - */ -export const decryptMetadataJSON = (r: { - encryptedDataB64: string; - decryptionHeaderB64: string; - keyB64: string; -}) => - inWorker() - ? ei._decryptMetadataJSON(r) - : sharedWorker().then((w) => w.decryptMetadataJSON(r)); - /** * Generate a new public/private keypair. */ diff --git a/web/packages/base/crypto/worker.ts b/web/packages/base/crypto/worker.ts index 9c425c2137..2881992fb8 100644 --- a/web/packages/base/crypto/worker.ts +++ b/web/packages/base/crypto/worker.ts @@ -35,7 +35,6 @@ export class CryptoWorker { initChunkDecryption = ei._initChunkDecryption; decryptStreamChunk = ei._decryptStreamChunk; decryptMetadataJSON_New = ei._decryptMetadataJSON_New; - decryptMetadataJSON = ei._decryptMetadataJSON; chunkHashInit = ei._chunkHashInit; chunkHashUpdate = ei._chunkHashUpdate; chunkHashFinal = ei._chunkHashFinal; From 45cf13037543232936f2ffdde186f1acf395ff8d Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Thu, 5 Jun 2025 10:24:23 +0530 Subject: [PATCH 215/316] Perf: remove redundant async --- mobile/lib/module/upload/service/multipart.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/lib/module/upload/service/multipart.dart b/mobile/lib/module/upload/service/multipart.dart index f4ecf3b3c4..d547a45938 100644 --- a/mobile/lib/module/upload/service/multipart.dart +++ b/mobile/lib/module/upload/service/multipart.dart @@ -54,7 +54,7 @@ class MultiPartUploader { return multipartPartSize; } - Future calculatePartCount(int fileSize) async { + int calculatePartCount(int fileSize) { // If the feature flag is disabled, return 1 if (!_featureFlagService.enableMobMultiPart) return 1; if (!localSettings.userEnabledMultiplePart) return 1; From e864ea367a3f7853d2995f8ff13325c13c19df9e Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 10:28:18 +0530 Subject: [PATCH 216/316] Rename --- web/apps/auth/src/pages/share.tsx | 14 +++++++------- web/apps/auth/src/services/remote.ts | 4 ++-- web/apps/cast/src/services/render.ts | 9 +++------ .../photos/src/services/collectionService.ts | 10 +++++----- .../src/services/publicCollectionService.ts | 2 +- web/packages/base/crypto/ente-impl.ts | 4 ++-- web/packages/base/crypto/index.ts | 15 ++++++--------- web/packages/base/crypto/worker.ts | 4 ++-- web/packages/gallery/services/file.ts | 17 +++++++++-------- web/packages/gallery/services/magic-metadata.ts | 2 +- .../gallery/services/upload/upload-service.ts | 7 ++----- web/packages/media/file-metadata.ts | 9 +++------ web/packages/media/file.ts | 6 +++--- web/packages/new/photos/services/collections.ts | 6 +++--- 14 files changed, 49 insertions(+), 60 deletions(-) diff --git a/web/apps/auth/src/pages/share.tsx b/web/apps/auth/src/pages/share.tsx index 40145531e5..0aea9977d9 100644 --- a/web/apps/auth/src/pages/share.tsx +++ b/web/apps/auth/src/pages/share.tsx @@ -1,6 +1,6 @@ import { Box, Button, Stack, Typography, useTheme } from "@mui/material"; import { EnteLogo } from "ente-base/components/EnteLogo"; -import { decryptMetadataJSON_New } from "ente-base/crypto"; +import { decryptMetadataJSON } from "ente-base/crypto"; import React, { useEffect, useMemo, useState } from "react"; import { prettyFormatCode } from "utils/format"; @@ -47,12 +47,12 @@ const Page: React.FC = () => { } try { - const decryptedCode = (await decryptMetadataJSON_New( + const decryptedCode = (await decryptMetadataJSON( { - encryptedData: base64UrlToBytes(data), - decryptionHeader: base64UrlToBytes(header), + encryptedData: base64URLToBytes(data), + decryptionHeader: base64URLToBytes(header), }, - base64UrlToBytes(key), + base64URLToBytes(key), )) as SharedCode; setSharedCode(decryptedCode); } catch (error) { @@ -228,8 +228,8 @@ const Page: React.FC = () => { export default Page; -const base64UrlToBytes = (base64Url: string): Uint8Array => { - const base64 = base64Url.replace(/-/g, "+").replace(/_/g, "/"); +const base64URLToBytes = (base64URL: string): Uint8Array => { + const base64 = base64URL.replace(/-/g, "+").replace(/_/g, "/"); return Uint8Array.from(atob(base64), (c) => c.charCodeAt(0)); }; diff --git a/web/apps/auth/src/services/remote.ts b/web/apps/auth/src/services/remote.ts index bfbefb75ef..13e192b96a 100644 --- a/web/apps/auth/src/services/remote.ts +++ b/web/apps/auth/src/services/remote.ts @@ -1,4 +1,4 @@ -import { decryptBox, decryptMetadataJSON_New } from "ente-base/crypto"; +import { decryptBox, decryptMetadataJSON } from "ente-base/crypto"; import { authenticatedRequestHeaders, ensureOk, @@ -156,7 +156,7 @@ export const authenticatorEntityDiff = async ( authenticatorKey: string, ): Promise => { const decrypt = (encryptedData: string, decryptionHeader: string) => - decryptMetadataJSON_New( + decryptMetadataJSON( { encryptedData, decryptionHeader }, authenticatorKey, ); diff --git a/web/apps/cast/src/services/render.ts b/web/apps/cast/src/services/render.ts index fcca1750c7..65463014b4 100644 --- a/web/apps/cast/src/services/render.ts +++ b/web/apps/cast/src/services/render.ts @@ -199,17 +199,14 @@ const decryptEnteFile = async ( { encryptedData: encryptedKey, nonce: keyDecryptionNonce }, collectionKey, ); - const fileMetadata = await worker.decryptMetadataJSON_New( - metadata, - fileKey, - ); + const fileMetadata = await worker.decryptMetadataJSON(metadata, fileKey); let fileMagicMetadata: FileMagicMetadata | undefined; let filePubMagicMetadata: FilePublicMagicMetadata | undefined; if (magicMetadata?.data) { fileMagicMetadata = { ...encryptedFile.magicMetadata, // @ts-expect-error TODO: Need to use zod here. - data: await worker.decryptMetadataJSON_New( + data: await worker.decryptMetadataJSON( { encryptedData: magicMetadata.data, decryptionHeader: magicMetadata.header, @@ -222,7 +219,7 @@ const decryptEnteFile = async ( filePubMagicMetadata = { ...pubMagicMetadata, // @ts-expect-error TODO: Need to use zod here. - data: await worker.decryptMetadataJSON_New( + data: await worker.decryptMetadataJSON( { encryptedData: pubMagicMetadata.data, decryptionHeader: pubMagicMetadata.header, diff --git a/web/apps/photos/src/services/collectionService.ts b/web/apps/photos/src/services/collectionService.ts index 07ef9759f6..cce59083de 100644 --- a/web/apps/photos/src/services/collectionService.ts +++ b/web/apps/photos/src/services/collectionService.ts @@ -1,5 +1,5 @@ import type { User } from "ente-accounts/services/user"; -import { encryptMetadataJSON_New, sharedCryptoWorker } from "ente-base/crypto"; +import { encryptMetadataJSON, sharedCryptoWorker } from "ente-base/crypto"; import { ensureLocalUser } from "ente-base/local-user"; import log from "ente-base/log"; import { apiURL } from "ente-base/origins"; @@ -79,7 +79,7 @@ const createCollection = async ( if (magicMetadataProps) { const magicMetadata = await updateMagicMetadata(magicMetadataProps); const { encryptedData, decryptionHeader } = - await cryptoWorker.encryptMetadataJSON_New( + await cryptoWorker.encryptMetadataJSON( magicMetadataProps, collectionKey, ); @@ -356,7 +356,7 @@ export const updateCollectionMagicMetadata = async ( return; } - const { encryptedData, decryptionHeader } = await encryptMetadataJSON_New( + const { encryptedData, decryptionHeader } = await encryptMetadataJSON( updatedMagicMetadata.data, collection.key, ); @@ -396,7 +396,7 @@ export const updateSharedCollectionMagicMetadata = async ( return; } - const { encryptedData, decryptionHeader } = await encryptMetadataJSON_New( + const { encryptedData, decryptionHeader } = await encryptMetadataJSON( updatedMagicMetadata.data, collection.key, ); @@ -435,7 +435,7 @@ export const updatePublicCollectionMagicMetadata = async ( return; } - const { encryptedData, decryptionHeader } = await encryptMetadataJSON_New( + const { encryptedData, decryptionHeader } = await encryptMetadataJSON( updatedPublicMagicMetadata.data, collection.key, ); diff --git a/web/apps/photos/src/services/publicCollectionService.ts b/web/apps/photos/src/services/publicCollectionService.ts index 90796fc52f..59f904b5bd 100644 --- a/web/apps/photos/src/services/publicCollectionService.ts +++ b/web/apps/photos/src/services/publicCollectionService.ts @@ -335,7 +335,7 @@ export const getPublicCollection = async ( if (fetchedCollection.pubMagicMetadata?.data) { collectionPublicMagicMetadata = { ...fetchedCollection.pubMagicMetadata, - data: await cryptoWorker.decryptMetadataJSON_New( + data: await cryptoWorker.decryptMetadataJSON( { encryptedData: fetchedCollection.pubMagicMetadata.data, decryptionHeader: diff --git a/web/packages/base/crypto/ente-impl.ts b/web/packages/base/crypto/ente-impl.ts index df2e78bc8a..c538d05987 100644 --- a/web/packages/base/crypto/ente-impl.ts +++ b/web/packages/base/crypto/ente-impl.ts @@ -28,7 +28,7 @@ export const _initChunkEncryption = libsodium.initChunkEncryption; export const _encryptStreamChunk = libsodium.encryptStreamChunk; -export const _encryptMetadataJSON_New = (jsonValue: unknown, key: BytesOrB64) => +export const _encryptMetadataJSON = (jsonValue: unknown, key: BytesOrB64) => _encryptBlob(new TextEncoder().encode(JSON.stringify(jsonValue)), key); export const _decryptBoxBytes = libsodium.decryptBoxBytes; @@ -45,7 +45,7 @@ export const _initChunkDecryption = libsodium.initChunkDecryption; export const _decryptStreamChunk = libsodium.decryptStreamChunk; -export const _decryptMetadataJSON_New = async ( +export const _decryptMetadataJSON = async ( blob: EncryptedBlob, key: BytesOrB64, ) => diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index e7f5db026a..e91b7166fe 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -253,10 +253,10 @@ export const encryptStreamChunk = async ( * * @param key The encryption key. */ -export const encryptMetadataJSON_New = (jsonValue: unknown, key: BytesOrB64) => +export const encryptMetadataJSON = (jsonValue: unknown, key: BytesOrB64) => inWorker() - ? ei._encryptMetadataJSON_New(jsonValue, key) - : sharedWorker().then((w) => w.encryptMetadataJSON_New(jsonValue, key)); + ? ei._encryptMetadataJSON(jsonValue, key) + : sharedWorker().then((w) => w.encryptMetadataJSON(jsonValue, key)); /** * Decrypt a box encrypted using {@link encryptBox} and returns the decrypted @@ -333,13 +333,10 @@ export const decryptStreamChunk = async ( * @returns The decrypted JSON value. Since TypeScript does not have a native * JSON type, we need to return it as an `unknown`. */ -export const decryptMetadataJSON_New = ( - blob: EncryptedBlob, - key: BytesOrB64, -) => +export const decryptMetadataJSON = (blob: EncryptedBlob, key: BytesOrB64) => inWorker() - ? ei._decryptMetadataJSON_New(blob, key) - : sharedWorker().then((w) => w.decryptMetadataJSON_New(blob, key)); + ? ei._decryptMetadataJSON(blob, key) + : sharedWorker().then((w) => w.decryptMetadataJSON(blob, key)); /** * Generate a new public/private keypair. diff --git a/web/packages/base/crypto/worker.ts b/web/packages/base/crypto/worker.ts index 2881992fb8..cd5a465b9c 100644 --- a/web/packages/base/crypto/worker.ts +++ b/web/packages/base/crypto/worker.ts @@ -26,7 +26,7 @@ export class CryptoWorker { encryptStreamBytes = ei._encryptStreamBytes; initChunkEncryption = ei._initChunkEncryption; encryptStreamChunk = ei._encryptStreamChunk; - encryptMetadataJSON_New = ei._encryptMetadataJSON_New; + encryptMetadataJSON = ei._encryptMetadataJSON; decryptBoxBytes = ei._decryptBoxBytes; decryptBox = ei._decryptBox; decryptBlobBytes = ei._decryptBlobBytes; @@ -34,7 +34,7 @@ export class CryptoWorker { decryptStreamBytes = ei._decryptStreamBytes; initChunkDecryption = ei._initChunkDecryption; decryptStreamChunk = ei._decryptStreamChunk; - decryptMetadataJSON_New = ei._decryptMetadataJSON_New; + decryptMetadataJSON = ei._decryptMetadataJSON; chunkHashInit = ei._chunkHashInit; chunkHashUpdate = ei._chunkHashUpdate; chunkHashFinal = ei._chunkHashFinal; diff --git a/web/packages/gallery/services/file.ts b/web/packages/gallery/services/file.ts index e31508896f..39dd207d01 100644 --- a/web/packages/gallery/services/file.ts +++ b/web/packages/gallery/services/file.ts @@ -1,7 +1,7 @@ /* TODO: Audit this file */ /* eslint-disable @typescript-eslint/ban-ts-comment */ -import { encryptMetadataJSON_New } from "ente-base/crypto"; +import { encryptMetadataJSON } from "ente-base/crypto"; import { apiURL } from "ente-base/origins"; import { updateMagicMetadata } from "ente-gallery/services/magic-metadata"; import type { @@ -37,8 +37,10 @@ export const updateFileMagicMetadata = async ( file, updatedMagicMetadata, } of fileWithUpdatedMagicMetadataList) { - const { encryptedData, decryptionHeader } = - await encryptMetadataJSON_New(updatedMagicMetadata.data, file.key); + const { encryptedData, decryptionHeader } = await encryptMetadataJSON( + updatedMagicMetadata.data, + file.key, + ); reqBody.metadataList.push({ id: file.id, magicMetadata: { @@ -80,11 +82,10 @@ export const updateFilePublicMagicMetadata = async ( file, updatedPublicMagicMetadata, } of fileWithUpdatedPublicMagicMetadataList) { - const { encryptedData, decryptionHeader } = - await encryptMetadataJSON_New( - updatedPublicMagicMetadata.data, - file.key, - ); + const { encryptedData, decryptionHeader } = await encryptMetadataJSON( + updatedPublicMagicMetadata.data, + file.key, + ); reqBody.metadataList.push({ id: file.id, magicMetadata: { diff --git a/web/packages/gallery/services/magic-metadata.ts b/web/packages/gallery/services/magic-metadata.ts index ccb21f340c..3eec2604ea 100644 --- a/web/packages/gallery/services/magic-metadata.ts +++ b/web/packages/gallery/services/magic-metadata.ts @@ -53,7 +53,7 @@ export async function updateMagicMetadata( // // See: [Note: Use passthrough for metadata Zod schemas] // @ts-expect-error TODO: Need to use zod here. - originalMagicMetadata.data = await cryptoWorker.decryptMetadataJSON_New( + originalMagicMetadata.data = await cryptoWorker.decryptMetadataJSON( { encryptedData: originalMagicMetadata.data, decryptionHeader: originalMagicMetadata.header, diff --git a/web/packages/gallery/services/upload/upload-service.ts b/web/packages/gallery/services/upload/upload-service.ts index 990689f733..b31d981821 100644 --- a/web/packages/gallery/services/upload/upload-service.ts +++ b/web/packages/gallery/services/upload/upload-service.ts @@ -1448,7 +1448,7 @@ const encryptFile = async ( decryptionHeader: await worker.toB64(thumbnailDecryptionHeaderBytes), }; - const encryptedMetadata = await worker.encryptMetadataJSON_New( + const encryptedMetadata = await worker.encryptMetadataJSON( metadata, fileKey, ); @@ -1458,10 +1458,7 @@ const encryptFile = async ( // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition if (pubMagicMetadata) { const { encryptedData, decryptionHeader } = - await worker.encryptMetadataJSON_New( - pubMagicMetadata.data, - fileKey, - ); + await worker.encryptMetadataJSON(pubMagicMetadata.data, fileKey); encryptedPubMagicMetadata = { version: pubMagicMetadata.version, count: pubMagicMetadata.count, diff --git a/web/packages/media/file-metadata.ts b/web/packages/media/file-metadata.ts index c0656b5338..c8d5b7ed9b 100644 --- a/web/packages/media/file-metadata.ts +++ b/web/packages/media/file-metadata.ts @@ -1,7 +1,4 @@ -import { - decryptMetadataJSON_New, - encryptMetadataJSON_New, -} from "ente-base/crypto"; +import { decryptMetadataJSON, encryptMetadataJSON } from "ente-base/crypto"; import { authenticatedRequestHeaders, ensureOk } from "ente-base/http"; import { apiURL } from "ente-base/origins"; import { type Location } from "ente-base/types"; @@ -437,7 +434,7 @@ export const decryptPublicMagicMetadata = async ( const jsonValue = typeof envelope.data == "string" - ? await decryptMetadataJSON_New( + ? await decryptMetadataJSON( { encryptedData: envelope.data, decryptionHeader: envelope.header, @@ -682,7 +679,7 @@ const updateMagicMetadataRequest = async ( ([, v]) => v !== null && v !== undefined, ); - const { encryptedData, decryptionHeader } = await encryptMetadataJSON_New( + const { encryptedData, decryptionHeader } = await encryptMetadataJSON( Object.fromEntries(validEntries), file.key, ); diff --git a/web/packages/media/file.ts b/web/packages/media/file.ts index 24dcf16242..c5d8937e58 100644 --- a/web/packages/media/file.ts +++ b/web/packages/media/file.ts @@ -325,7 +325,7 @@ export async function decryptFile( { encryptedData: encryptedKey, nonce: keyDecryptionNonce }, collectionKey, ); - const fileMetadata = await worker.decryptMetadataJSON_New( + const fileMetadata = await worker.decryptMetadataJSON( metadata, fileKey, ); @@ -338,7 +338,7 @@ export async function decryptFile( ...file.magicMetadata, // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - data: await worker.decryptMetadataJSON_New( + data: await worker.decryptMetadataJSON( { encryptedData: magicMetadata.data, decryptionHeader: magicMetadata.header, @@ -353,7 +353,7 @@ export async function decryptFile( ...pubMagicMetadata, // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - data: await worker.decryptMetadataJSON_New( + data: await worker.decryptMetadataJSON( { encryptedData: pubMagicMetadata.data, decryptionHeader: pubMagicMetadata.header, diff --git a/web/packages/new/photos/services/collections.ts b/web/packages/new/photos/services/collections.ts index e3423161af..213d32b7a7 100644 --- a/web/packages/new/photos/services/collections.ts +++ b/web/packages/new/photos/services/collections.ts @@ -234,7 +234,7 @@ export const getCollectionWithSecrets = async ( ...collection.magicMetadata, // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - data: await cryptoWorker.decryptMetadataJSON_New( + data: await cryptoWorker.decryptMetadataJSON( { encryptedData: collection.magicMetadata.data, decryptionHeader: collection.magicMetadata.header, @@ -249,7 +249,7 @@ export const getCollectionWithSecrets = async ( ...collection.pubMagicMetadata, // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - data: await cryptoWorker.decryptMetadataJSON_New( + data: await cryptoWorker.decryptMetadataJSON( { encryptedData: collection.pubMagicMetadata.data, decryptionHeader: collection.pubMagicMetadata.header, @@ -265,7 +265,7 @@ export const getCollectionWithSecrets = async ( ...collection.sharedMagicMetadata, // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - data: await cryptoWorker.decryptMetadataJSON_New( + data: await cryptoWorker.decryptMetadataJSON( { encryptedData: collection.sharedMagicMetadata.data, decryptionHeader: collection.sharedMagicMetadata.header, From 22e32baf34dcbc9f37736f3c44edbae1f85965b4 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Thu, 5 Jun 2025 10:36:47 +0530 Subject: [PATCH 217/316] route to person memory --- .../lib/services/memories_cache_service.dart | 53 +++++++++++++++++++ mobile/lib/ui/tabs/home_widget.dart | 5 +- 2 files changed, 57 insertions(+), 1 deletion(-) diff --git a/mobile/lib/services/memories_cache_service.dart b/mobile/lib/services/memories_cache_service.dart index b74a8591a6..74ddf1654e 100644 --- a/mobile/lib/services/memories_cache_service.dart +++ b/mobile/lib/services/memories_cache_service.dart @@ -20,9 +20,11 @@ import "package:photos/models/memories/smart_memory.dart"; import "package:photos/models/memories/smart_memory_constants.dart"; import "package:photos/service_locator.dart"; import "package:photos/services/language_service.dart"; +import "package:photos/services/machine_learning/face_ml/person/person_service.dart"; import "package:photos/services/notification_service.dart"; import "package:photos/services/search_service.dart"; import "package:photos/ui/home/memories/full_screen_memory.dart"; +import "package:photos/ui/viewer/people/people_page.dart"; import "package:photos/utils/navigation_util.dart"; import "package:shared_preferences/shared_preferences.dart"; import "package:synchronized/synchronized.dart"; @@ -526,6 +528,57 @@ class MemoriesCacheService { ); } + Future goToPersonMemory(BuildContext context, String personID) async { + final allMemories = await getMemories(); + if (allMemories.isEmpty) return; + final personMemories = []; + for (final memory in allMemories) { + if (memory is PeopleMemory && + (memory.isBirthday ?? false) && + memory.personID == personID) { + personMemories.add(memory); + } + } + PeopleMemory? personMemory; + for (final memory in personMemories) { + if (memory.peopleMemoryType == PeopleMemoryType.youAndThem) { + personMemory = memory; + break; // breaking to prefer youAndThem over spotlight + } + if (memory.peopleMemoryType == PeopleMemoryType.spotlight) { + personMemory = memory; + } + } + + if (personMemory == null) { + _logger.severe( + "Could not find person memory, routing to person page instead", + ); + final person = await PersonService.instance.getPerson(personID); + if (person == null) { + _logger.severe("Person with ID $personID not found"); + return; + } + await routeToPage( + context, + PeoplePage( + person: person, + searchResult: null, + ), + forceCustomPageRoute: true, + ); + } + await routeToPage( + context, + FullScreenMemoryDataUpdater( + initialIndex: 0, + memories: personMemory!.memories, + child: FullScreenMemory(personMemory.title, 0), + ), + forceCustomPageRoute: true, + ); + } + Future toggleOnThisDayNotifications() async { final oldValue = localSettings.isOnThisDayNotificationsEnabled; await localSettings.setOnThisDayNotificationsEnabled(!oldValue); diff --git a/mobile/lib/ui/tabs/home_widget.dart b/mobile/lib/ui/tabs/home_widget.dart index 0b2ffa26ab..5e197c9253 100644 --- a/mobile/lib/ui/tabs/home_widget.dart +++ b/mobile/lib/ui/tabs/home_widget.dart @@ -864,8 +864,11 @@ class _HomeWidgetState extends State { if (payload.toLowerCase().contains("onthisday")) { // ignore: unawaited_futures memoriesCacheService.goToOnThisDayMemory(context); + } else if (payload.toLowerCase().contains("birthday")) { + final personID = payload.substring("birthday_".length); + // ignore: unawaited_futures + memoriesCacheService.goToPersonMemory(context, personID); } else { - // TODO:lau (after mergin main): add another case here for birthday notifications final collectionID = Uri.parse(payload).queryParameters["collectionID"]; if (collectionID != null) { final collection = CollectionsService.instance From f1a6af048d614647fd014a920b9bcb6dc9b668a5 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Thu, 5 Jun 2025 10:38:44 +0530 Subject: [PATCH 218/316] Cleanup --- mobile/lib/ui/settings/debug/ml_debug_section_widget.dart | 3 --- 1 file changed, 3 deletions(-) diff --git a/mobile/lib/ui/settings/debug/ml_debug_section_widget.dart b/mobile/lib/ui/settings/debug/ml_debug_section_widget.dart index b63944fa72..913c248fe5 100644 --- a/mobile/lib/ui/settings/debug/ml_debug_section_widget.dart +++ b/mobile/lib/ui/settings/debug/ml_debug_section_widget.dart @@ -117,7 +117,6 @@ class _MLDebugSectionWidgetState extends State { onTap: () async { try { await NotificationService.instance.scheduleNotification( - "test", "test", id: 10, dateTime: DateTime.now().add( @@ -142,7 +141,6 @@ class _MLDebugSectionWidgetState extends State { onTap: () async { try { await NotificationService.instance.scheduleNotification( - "test", "test", id: 11, dateTime: DateTime.now().add( @@ -167,7 +165,6 @@ class _MLDebugSectionWidgetState extends State { onTap: () async { try { await NotificationService.instance.scheduleNotification( - "test", "test", id: 12, dateTime: DateTime.now().add( From 496691d2365761ff2f732ffa5c25aa730db26f69 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Thu, 5 Jun 2025 10:41:26 +0530 Subject: [PATCH 219/316] Schedule at midnight --- mobile/lib/services/memories_cache_service.dart | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mobile/lib/services/memories_cache_service.dart b/mobile/lib/services/memories_cache_service.dart index 74ddf1654e..f46583c464 100644 --- a/mobile/lib/services/memories_cache_service.dart +++ b/mobile/lib/services/memories_cache_service.dart @@ -703,7 +703,6 @@ class MemoriesCacheService { firstDateToShow.year, firstDateToShow.month, firstDateToShow.day, - 7, ); if (scheduleTime.isBefore(DateTime.now())) { _logger.info( @@ -727,7 +726,7 @@ class MemoriesCacheService { channelName: s.birthdays, payload: "birthday_${memory.personID}", dateTime: scheduleTime, - timeoutDurationAndroid: const Duration(hours: 17), + timeoutDurationAndroid: const Duration(hours: 24), ); scheduledPersons.add(memory.personID); _logger.info( From 462aae8f3432387bdf4259e8bf171b03f85a750a Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 11:01:40 +0530 Subject: [PATCH 220/316] Fwd --- web/packages/base/crypto/ente-impl.ts | 16 ++++------------ web/packages/base/crypto/libsodium.ts | 26 ++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/web/packages/base/crypto/ente-impl.ts b/web/packages/base/crypto/ente-impl.ts index c538d05987..3ec10d2e12 100644 --- a/web/packages/base/crypto/ente-impl.ts +++ b/web/packages/base/crypto/ente-impl.ts @@ -1,6 +1,5 @@ /** Careful when adding add other imports! */ import * as libsodium from "./libsodium"; -import type { BytesOrB64, EncryptedBlob } from "./types"; export const _toB64 = libsodium.toB64; @@ -22,15 +21,14 @@ export const _encryptBlob = libsodium.encryptBlob; export const _encryptBlobBytes = libsodium.encryptBlobBytes; +export const _encryptMetadataJSON = libsodium.encryptMetadataJSON; + export const _encryptStreamBytes = libsodium.encryptStreamBytes; export const _initChunkEncryption = libsodium.initChunkEncryption; export const _encryptStreamChunk = libsodium.encryptStreamChunk; -export const _encryptMetadataJSON = (jsonValue: unknown, key: BytesOrB64) => - _encryptBlob(new TextEncoder().encode(JSON.stringify(jsonValue)), key); - export const _decryptBoxBytes = libsodium.decryptBoxBytes; export const _decryptBox = libsodium.decryptBox; @@ -39,20 +37,14 @@ export const _decryptBlobBytes = libsodium.decryptBlobBytes; export const _decryptBlob = libsodium.decryptBlob; +export const _decryptMetadataJSON = libsodium.decryptMetadataJSON; + export const _decryptStreamBytes = libsodium.decryptStreamBytes; export const _initChunkDecryption = libsodium.initChunkDecryption; export const _decryptStreamChunk = libsodium.decryptStreamChunk; -export const _decryptMetadataJSON = async ( - blob: EncryptedBlob, - key: BytesOrB64, -) => - JSON.parse( - new TextDecoder().decode(await _decryptBlobBytes(blob, key)), - ) as unknown; - export const _chunkHashInit = libsodium.chunkHashInit; export const _chunkHashUpdate = libsodium.chunkHashUpdate; diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index 996c3d6c67..aacb263a8c 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -338,6 +338,16 @@ export const encryptBlob = async ( }; }; +/** + * Encrypt the provided JSON value (using {@link encryptBlob}) after converting + * it to a JSON string (and utf-8 encoding it to obtain bytes). + * + * Use {@link decryptMetadataJSON} to decrypt the result and convert it back to + * a JSON value. + */ +export const encryptMetadataJSON = (jsonValue: unknown, key: BytesOrB64) => + encryptBlob(new TextEncoder().encode(JSON.stringify(jsonValue)), key); + /** * The various *Stream encryption functions break up the input into chunks of * {@link streamEncryptionChunkSize} bytes during encryption (except the last @@ -520,6 +530,22 @@ export const decryptBlob = ( key: BytesOrB64, ): Promise => decryptBlobBytes(blob, key).then(toB64); +/** + * Decrypt the result of {@link encryptMetadataJSON} and return the JSON value + * obtained by parsing the decrypted JSON string (which is obtained by utf-8 + * decoding the decrypted bytes). + * + * Since TypeScript doesn't currently have a native JSON type, the returned + * value is casted as an `unknown`. + */ +export const decryptMetadataJSON = async ( + blob: EncryptedBlob, + key: BytesOrB64, +) => + JSON.parse( + new TextDecoder().decode(await decryptBlobBytes(blob, key)), + ) as unknown; + /** * Decrypt the result of {@link encryptStreamBytes}. */ From 52ee86af185ebacf71989e07b895ebe35fa22479 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 11:06:52 +0530 Subject: [PATCH 221/316] Proxy --- web/packages/base/crypto/ente-impl.ts | 30 --------------------------- web/packages/base/crypto/index.ts | 15 ++++++++++---- 2 files changed, 11 insertions(+), 34 deletions(-) diff --git a/web/packages/base/crypto/ente-impl.ts b/web/packages/base/crypto/ente-impl.ts index 3ec10d2e12..2606b33976 100644 --- a/web/packages/base/crypto/ente-impl.ts +++ b/web/packages/base/crypto/ente-impl.ts @@ -2,63 +2,33 @@ import * as libsodium from "./libsodium"; export const _toB64 = libsodium.toB64; - export const _toB64URLSafe = libsodium.toB64URLSafe; - export const _fromB64 = libsodium.fromB64; - export const _toHex = libsodium.toHex; - export const _fromHex = libsodium.fromHex; - export const _generateKey = libsodium.generateKey; - export const _generateBlobOrStreamKey = libsodium.generateBlobOrStreamKey; - export const _encryptBox = libsodium.encryptBox; - export const _encryptBlob = libsodium.encryptBlob; - export const _encryptBlobBytes = libsodium.encryptBlobBytes; - export const _encryptMetadataJSON = libsodium.encryptMetadataJSON; - export const _encryptStreamBytes = libsodium.encryptStreamBytes; - export const _initChunkEncryption = libsodium.initChunkEncryption; - export const _encryptStreamChunk = libsodium.encryptStreamChunk; - export const _decryptBoxBytes = libsodium.decryptBoxBytes; - export const _decryptBox = libsodium.decryptBox; - export const _decryptBlobBytes = libsodium.decryptBlobBytes; - export const _decryptBlob = libsodium.decryptBlob; - export const _decryptMetadataJSON = libsodium.decryptMetadataJSON; - export const _decryptStreamBytes = libsodium.decryptStreamBytes; - export const _initChunkDecryption = libsodium.initChunkDecryption; - export const _decryptStreamChunk = libsodium.decryptStreamChunk; - export const _chunkHashInit = libsodium.chunkHashInit; - export const _chunkHashUpdate = libsodium.chunkHashUpdate; - export const _chunkHashFinal = libsodium.chunkHashFinal; - export const _generateKeyPair = libsodium.generateKeyPair; - export const _boxSeal = libsodium.boxSeal; - export const _boxSealOpen = libsodium.boxSealOpen; - export const _deriveKey = libsodium.deriveKey; - export const _deriveSensitiveKey = libsodium.deriveSensitiveKey; - export const _deriveInteractiveKey = libsodium.deriveInteractiveKey; diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index e91b7166fe..49b2842a92 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -9,7 +9,7 @@ * [Note: Crypto code hierarchy] * * 1. ente-base/crypto (Crypto API for our code) - * 2. ente-base/crypto/libsodium (Lower level wrappers over libsodium) + * 2. ente-base/crypto/libsodium (The actual implementation) * 3. libsodium-wrappers (JavaScript bindings to libsodium) * * Our cryptography primitives are provided by libsodium, specifically, its @@ -23,9 +23,16 @@ * ensure that sodium.ready has been called before accessing libsodium's APIs, * thus all the functions it exposes are async. * - * The highest layer is this file, `crypto/index.ts`. These are usually direct - * proxies (or simple compositions) of functionality exposed by - * `crypto/libsodium.ts`, but they automatically defer to a worker thread. + * The highest layer is this file, `crypto/index.ts`. These are direct proxies + * to functions exposed by `crypto/libsodium.ts`, but they automatically defer + * to a worker thread if we're not already running on one. + * + * [Note: Using libsodium in worker thread] + * + * `crypto/ente-impl.ts` and `crypto/worker.ts` are logic-less internal files + * meant to allow us to seamlessly use the the same API both from the main + * thread or from a web worker whilst ensuring that the implementation never + * runs on the main thread. * * Cryptographic operations like encryption are CPU intensive and would cause * the UI to stutter if used directly on the main thread. To keep the UI smooth, From 75b3d2354fd10af6afd457ceee7a8439e7424af9 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 11:12:26 +0530 Subject: [PATCH 222/316] Simplify --- web/packages/base/crypto/ente-impl.ts | 6 +++++- web/packages/base/crypto/index.ts | 19 +++---------------- web/packages/base/crypto/worker.ts | 4 ++-- 3 files changed, 10 insertions(+), 19 deletions(-) diff --git a/web/packages/base/crypto/ente-impl.ts b/web/packages/base/crypto/ente-impl.ts index 2606b33976..2b007391c7 100644 --- a/web/packages/base/crypto/ente-impl.ts +++ b/web/packages/base/crypto/ente-impl.ts @@ -1,6 +1,10 @@ /** Careful when adding add other imports! */ import * as libsodium from "./libsodium"; +// Trivial proxies to the actual implementation. +// +// See: [Note: Using libsodium in worker thread] + export const _toB64 = libsodium.toB64; export const _toB64URLSafe = libsodium.toB64URLSafe; export const _fromB64 = libsodium.fromB64; @@ -9,8 +13,8 @@ export const _fromHex = libsodium.fromHex; export const _generateKey = libsodium.generateKey; export const _generateBlobOrStreamKey = libsodium.generateBlobOrStreamKey; export const _encryptBox = libsodium.encryptBox; -export const _encryptBlob = libsodium.encryptBlob; export const _encryptBlobBytes = libsodium.encryptBlobBytes; +export const _encryptBlob = libsodium.encryptBlob; export const _encryptMetadataJSON = libsodium.encryptMetadataJSON; export const _encryptStreamBytes = libsodium.encryptStreamBytes; export const _initChunkEncryption = libsodium.initChunkEncryption; diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index 49b2842a92..5368a270c3 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -56,7 +56,6 @@ */ import { ComlinkWorker } from "ente-base/worker/comlink-worker"; import { type StateAddress } from "libsodium-wrappers-sumo"; -import { assertionFailed } from "../assert"; import { inWorker } from "../env"; import * as ei from "./ente-impl"; import type { @@ -91,20 +90,6 @@ export const createComlinkCryptoWorker = () => new Worker(new URL("worker.ts", import.meta.url)), ); -/** - * Some of the potentially CPU intensive functions below have not yet been - * needed on the main thread, and for these we don't have a corresponding - * sharedCryptoWorker method. - * - * This assertion will let us know when we need to implement them. This will - * gracefully degrade in production: the functionality will work, just that the - * crypto operations will happen on the main thread itself. - */ -const assertInWorker = (x: T): T => { - if (!inWorker()) assertionFailed("Currently only usable in a web worker"); - return x; -}; - /** * Convert bytes ({@link Uint8Array}) to a base64 string. */ @@ -207,7 +192,9 @@ export const encryptBlob = (data: BytesOrB64, key: BytesOrB64) => * Use {@link decryptBlob} or {@link decryptBlobBytes} to decrypt the result. */ export const encryptBlobBytes = (data: BytesOrB64, key: BytesOrB64) => - assertInWorker(ei._encryptBlobBytes(data, key)); + inWorker() + ? ei._encryptBlobBytes(data, key) + : sharedWorker().then((w) => w.encryptBlobBytes(data, key)); /** * Encrypt the given data using chunked streaming encryption, but process all diff --git a/web/packages/base/crypto/worker.ts b/web/packages/base/crypto/worker.ts index cd5a465b9c..5f5002cdbd 100644 --- a/web/packages/base/crypto/worker.ts +++ b/web/packages/base/crypto/worker.ts @@ -23,18 +23,18 @@ export class CryptoWorker { encryptBox = ei._encryptBox; encryptBlobBytes = ei._encryptBlobBytes; encryptBlob = ei._encryptBlob; + encryptMetadataJSON = ei._encryptMetadataJSON; encryptStreamBytes = ei._encryptStreamBytes; initChunkEncryption = ei._initChunkEncryption; encryptStreamChunk = ei._encryptStreamChunk; - encryptMetadataJSON = ei._encryptMetadataJSON; decryptBoxBytes = ei._decryptBoxBytes; decryptBox = ei._decryptBox; decryptBlobBytes = ei._decryptBlobBytes; decryptBlob = ei._decryptBlob; + decryptMetadataJSON = ei._decryptMetadataJSON; decryptStreamBytes = ei._decryptStreamBytes; initChunkDecryption = ei._initChunkDecryption; decryptStreamChunk = ei._decryptStreamChunk; - decryptMetadataJSON = ei._decryptMetadataJSON; chunkHashInit = ei._chunkHashInit; chunkHashUpdate = ei._chunkHashUpdate; chunkHashFinal = ei._chunkHashFinal; From 7bce2e358b7d90d0649b15ee75cb8d9326661efa Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 11:18:05 +0530 Subject: [PATCH 223/316] Conv --- web/packages/base/crypto/libsodium.ts | 9 --------- web/packages/base/crypto/worker.ts | 4 ---- web/packages/new/photos/services/collections.ts | 16 ++++++++++------ web/packages/shared/crypto/helpers.ts | 8 +++++--- web/packages/shared/user/index.ts | 8 +++++--- 5 files changed, 20 insertions(+), 25 deletions(-) diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index aacb263a8c..dd8e0d69d9 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -660,15 +660,6 @@ export async function encryptUTF8(data: string, key: string) { return await encryptToB64(b64Data, key); } -/** Deprecated, use {@link decryptBox} instead. */ -export async function decryptB64( - encryptedData: string, - nonce: string, - keyB64: string, -) { - return decryptBox({ encryptedData, nonce }, keyB64); -} - /** Deprecated */ export async function decryptToUTF8( encryptedData: string, diff --git a/web/packages/base/crypto/worker.ts b/web/packages/base/crypto/worker.ts index 5f5002cdbd..2874c8cb6a 100644 --- a/web/packages/base/crypto/worker.ts +++ b/web/packages/base/crypto/worker.ts @@ -47,10 +47,6 @@ export class CryptoWorker { // TODO: -- AUDIT BELOW -- - async decryptB64(data: string, nonce: string, key: string) { - return libsodium.decryptB64(data, nonce, key); - } - async decryptToUTF8(data: string, nonce: string, key: string) { return libsodium.decryptToUTF8(data, nonce, key); } diff --git a/web/packages/new/photos/services/collections.ts b/web/packages/new/photos/services/collections.ts index 213d32b7a7..fa67c710d9 100644 --- a/web/packages/new/photos/services/collections.ts +++ b/web/packages/new/photos/services/collections.ts @@ -202,16 +202,20 @@ export const getCollectionWithSecrets = async ( const userID = getData("user").id; let collectionKey: string; if (collection.owner.id === userID) { - collectionKey = await cryptoWorker.decryptB64( - collection.encryptedKey, - collection.keyDecryptionNonce, + collectionKey = await cryptoWorker.decryptBox( + { + encryptedData: collection.encryptedKey, + nonce: collection.keyDecryptionNonce, + }, masterKey, ); } else { const keyAttributes = getData("keyAttributes"); - const secretKey = await cryptoWorker.decryptB64( - keyAttributes.encryptedSecretKey, - keyAttributes.secretKeyDecryptionNonce, + const secretKey = await cryptoWorker.decryptBox( + { + encryptedData: keyAttributes.encryptedSecretKey, + nonce: keyAttributes.secretKeyDecryptionNonce, + }, masterKey, ); collectionKey = await cryptoWorker.boxSealOpen( diff --git a/web/packages/shared/crypto/helpers.ts b/web/packages/shared/crypto/helpers.ts index f63eb67f3c..d1d53f304c 100644 --- a/web/packages/shared/crypto/helpers.ts +++ b/web/packages/shared/crypto/helpers.ts @@ -18,9 +18,11 @@ export async function decryptAndStoreToken( let decryptedToken = null; const { encryptedToken } = user; if (encryptedToken && encryptedToken.length > 0) { - const secretKey = await cryptoWorker.decryptB64( - keyAttributes.encryptedSecretKey, - keyAttributes.secretKeyDecryptionNonce, + const secretKey = await cryptoWorker.decryptBox( + { + encryptedData: keyAttributes.encryptedSecretKey, + nonce: keyAttributes.secretKeyDecryptionNonce, + }, masterKey, ); const urlUnsafeB64DecryptedToken = await cryptoWorker.boxSealOpen( diff --git a/web/packages/shared/user/index.ts b/web/packages/shared/user/index.ts index c20377a3dd..430d491f46 100644 --- a/web/packages/shared/user/index.ts +++ b/web/packages/shared/user/index.ts @@ -10,9 +10,11 @@ export const getActualKey = async () => { getKey("encryptionKey"); const cryptoWorker = await sharedCryptoWorker(); - const key = await cryptoWorker.decryptB64( - encryptionKeyAttributes.encryptedData, - encryptionKeyAttributes.nonce, + const key = await cryptoWorker.decryptBox( + { + encryptedData: encryptionKeyAttributes.encryptedData, + nonce: encryptionKeyAttributes.nonce, + }, encryptionKeyAttributes.key, ); return key; From f5ca4a9d15ab17472bdd77a602b3081bcf696fa6 Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Thu, 5 Jun 2025 14:19:58 +0530 Subject: [PATCH 224/316] Logs for resumable download failure --- mobile/lib/module/download/manager.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mobile/lib/module/download/manager.dart b/mobile/lib/module/download/manager.dart index 614ab23214..8b2c6b7d23 100644 --- a/mobile/lib/module/download/manager.dart +++ b/mobile/lib/module/download/manager.dart @@ -187,6 +187,7 @@ class DownloadManager { } } catch (e) { if (e is DioException && e.type == DioExceptionType.cancel) { + _logger.info('Download cancelled for ${task.filename}'); // Complete future with current task state (paused or cancelled) final currentTask = _tasks[task.id]; if (currentTask != null && !completer.isCompleted) { @@ -194,7 +195,7 @@ class DownloadManager { } return; } - + _logger.warning('Error downloading ${task.filename}', e); task = task.copyWith(status: DownloadStatus.error, error: e.toString()); _updateTask(task); if (!completer.isCompleted) { From a543b8c0f6ec5e2ddb135c1d429fdba593e2e421 Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Thu, 5 Jun 2025 14:21:38 +0530 Subject: [PATCH 225/316] Pass token in query param for direct download --- mobile/lib/module/download/manager.dart | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mobile/lib/module/download/manager.dart b/mobile/lib/module/download/manager.dart index 8b2c6b7d23..e9a5513725 100644 --- a/mobile/lib/module/download/manager.dart +++ b/mobile/lib/module/download/manager.dart @@ -274,9 +274,11 @@ class DownloadManager { await _dio.download( FileUrl.getUrl(task.id, FileUrlType.directDownload), chunkPath, + queryParameters: { + "token": Configuration.instance.getToken(), + }, options: Options( headers: { - "X-Auth-Token": Configuration.instance.getToken(), "Range": "bytes=$startByte-$endByte", }, ), From a99cdbedc499ba45bfd8bd9a7e49077247a85f3c Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Thu, 5 Jun 2025 14:35:03 +0530 Subject: [PATCH 226/316] Fix out of range issue --- mobile/lib/services/smart_memories_service.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/lib/services/smart_memories_service.dart b/mobile/lib/services/smart_memories_service.dart index fd2874c77d..b17fbbe4a4 100644 --- a/mobile/lib/services/smart_memories_service.dart +++ b/mobile/lib/services/smart_memories_service.dart @@ -738,7 +738,7 @@ class SmartMemoriesService { 'Something is going wrong, ${potentialMemory.peopleMemoryType} has multiple memories for same person', ); } else { - final randIdx = Random().nextInt(potentialMemory.memories.length); + final randIdx = Random().nextInt(memoriesForCategory.length); potentialMemory = memoriesForCategory[randIdx]; } } From 4fb2be51e033bc6e8a2ceb60ccd1ef5069d74984 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Thu, 5 Jun 2025 14:51:47 +0530 Subject: [PATCH 227/316] Logging --- mobile/lib/services/memories_cache_service.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mobile/lib/services/memories_cache_service.dart b/mobile/lib/services/memories_cache_service.dart index f46583c464..7d6db009ca 100644 --- a/mobile/lib/services/memories_cache_service.dart +++ b/mobile/lib/services/memories_cache_service.dart @@ -529,6 +529,7 @@ class MemoriesCacheService { } Future goToPersonMemory(BuildContext context, String personID) async { + _logger.info("Going to person memory for personID: $personID"); final allMemories = await getMemories(); if (allMemories.isEmpty) return; final personMemories = []; @@ -730,7 +731,7 @@ class MemoriesCacheService { ); scheduledPersons.add(memory.personID); _logger.info( - "Scheduled birthday notification for person ${memory.personName} on date: $scheduleTime", + "Scheduled birthday notification for person ${memory.personID} on date: $scheduleTime", ); } } From d9040047ec3630dbd1ffe98ee0f9f393cdf09350 Mon Sep 17 00:00:00 2001 From: vishnukvmd Date: Thu, 5 Jun 2025 15:09:26 +0530 Subject: [PATCH 228/316] Add a line to avoid starting articles with line-breaks that precede an H2 --- docs/docs/overview/community.md | 10 ++++++---- docs/docs/overview/contribute.md | 8 +++++++- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/docs/docs/overview/community.md b/docs/docs/overview/community.md index aecc9a0df5..0f2d34add2 100644 --- a/docs/docs/overview/community.md +++ b/docs/docs/overview/community.md @@ -6,15 +6,17 @@ description: > # Community +We are building Ente in the open with our community on +[GitHub](https://github.com/ente-io/ente) and +[Discord](https://ente.io/discord) + ## Blog To stay up to date with new product launches, and behind the scenes details of how we're building Ente, you can read our [blog](https://ente.io/blog) (or subscribe to it via [RSS](https://ente.io/blog/rss.xml)) -## Community +## Socials -Or if you'd just like to hang out, join our -[Discord](https://discord.gg/z2YVKkycX3), follow us on -[Twitter](https://twitter.com/enteio) or give us a shout out on +You can also follow us on [Twitter](https://twitter.com/enteio) or toot to us on [Mastodon](https://mstdn.social/@ente) diff --git a/docs/docs/overview/contribute.md b/docs/docs/overview/contribute.md index 406de6c480..a5a793c1f6 100644 --- a/docs/docs/overview/contribute.md +++ b/docs/docs/overview/contribute.md @@ -5,7 +5,13 @@ description: Details about how to contribute to Ente # Contributing -## Suggest a feature +There are many ways to contribute to Ente. By spreading the word, engaging with +our community, helping us with translations or documentation. + +You can find our contribution guidelines +[here](https://github.com/ente-io/ente/blob/main/CONTRIBUTING.md). + +## Suggesting features To suggest new features and/or offer your perspective on how we should design (planned and upcoming features), use our From 107e8e665ab5782bf0449d449b4e5d13584206ff Mon Sep 17 00:00:00 2001 From: vishnukvmd Date: Thu, 5 Jun 2025 15:09:33 +0530 Subject: [PATCH 229/316] Minor --- docs/docs/overview/help.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/docs/overview/help.md b/docs/docs/overview/help.md index 43aeded5af..f8ae1876b8 100644 --- a/docs/docs/overview/help.md +++ b/docs/docs/overview/help.md @@ -6,8 +6,8 @@ description: Get help from Ente via customer support and community # Help If you encounter any issues with any of the products that's not answered by our -[documentation](/), please reach out to our Customer Support by sending an email -to [support@ente.io](mailto:support@ente.io) +[docs](/), please reach out to our team by sending an email to +[support@ente.io](mailto:support@ente.io) For community support, please post your queries on [Discord](https://discord.gg/z2YVKkycX3) From 0717d12d650b31cdddfdb5a65f19bc544f49cb3f Mon Sep 17 00:00:00 2001 From: Vishnu Mohandas Date: Thu, 5 Jun 2025 15:30:39 +0530 Subject: [PATCH 230/316] [docs] Update general.md --- docs/docs/photos/faq/general.md | 56 +++++++++++++++++---------------- 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/docs/docs/photos/faq/general.md b/docs/docs/photos/faq/general.md index 4204d6ccf8..040a7e1bfa 100644 --- a/docs/docs/photos/faq/general.md +++ b/docs/docs/photos/faq/general.md @@ -103,43 +103,19 @@ clicking on "Your map" under "Locations" on the search screen. On the login page, enter your email and click on Forgot Password. Then, enter your recovery key and create a new password. -# iOS Album Backup and Organization in Ente - -### How does Ente handle photos that are part of multiple iOS albums? - -When you select multiple albums for backup, Ente prioritizes uploading each -photo to the album with the fewest photos. This means a photo will only be -uploaded once, even if it exists in multiple albums on your device. If you -create new albums on your device after the initial backup, those photos may not -appear in the corresponding Ente album if they were already uploaded to a -different album. - -### Why don’t all photos from a new iOS album appear in the corresponding Ente album? - -If you create a new album on your device after the initial backup, the photos in -that album may have already been uploaded to another album in Ente. To fix this, -go to the "On Device" album in Ente, select all photos, and manually add them to -the corresponding album in Ente. - -### What happens if I reorganize my photos in the iOS Photos app after backing up? - -Reorganizing photos in the iOS Photos app (e.g., moving photos to new albums) -won’t automatically reflect in Ente. You’ll need to manually add those photos to -the corresponding albums in Ente to maintain consistency. - -### Can I search for photos using the descriptions I’ve added? +## Can I search for photos using the descriptions I’ve added? Yes, descriptions are searchable, making it easier to find specific photos later. To do this, open the photo, tap the (i) button, and enter your description. -### How does the deduplication feature work on the desktop app? +## How does the deduplication feature work on the desktop app? If the app finds exact duplicates, it will show them in the deduplication. When you delete a duplicate, the app keeps one copy and creates a symlink for the other duplicate. This helps save storage space. -### What happens if I lose access to my email address? Can I use my recovery key to bypass email verification? +## What happens if I lose access to my email address? Can I use my recovery key to bypass email verification? No, the recovery key does not bypass email verification. For security reasons, we do not disable or bypass email verification unless the account owner reaches @@ -148,3 +124,29 @@ their account. If you lose access to your email, please contact our support team at support@ente.io + +--- + +# iOS Album Backup and Organization in Ente + +## How does Ente handle photos that are part of multiple iOS albums? + +When you select multiple albums for backup, Ente prioritizes uploading each +photo to the album with the fewest photos. This means a photo will only be +uploaded once, even if it exists in multiple albums on your device. If you +create new albums on your device after the initial backup, those photos may not +appear in the corresponding Ente album if they were already uploaded to a +different album. + +## Why don’t all photos from a new iOS album appear in the corresponding Ente album? + +If you create a new album on your device after the initial backup, the photos in +that album may have already been uploaded to another album in Ente. To fix this, +go to the "On Device" album in Ente, select all photos, and manually add them to +the corresponding album in Ente. + +## What happens if I reorganize my photos in the iOS Photos app after backing up? + +Reorganizing photos in the iOS Photos app (e.g., moving photos to new albums) +won’t automatically reflect in Ente. You’ll need to manually add those photos to +the corresponding albums in Ente to maintain consistency. From 9245af50804b1fd17d5716c48629892b01a96841 Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Thu, 5 Jun 2025 16:30:51 +0530 Subject: [PATCH 231/316] Fix oom during chunk combination --- mobile/lib/module/download/manager.dart | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mobile/lib/module/download/manager.dart b/mobile/lib/module/download/manager.dart index e9a5513725..c93dfde066 100644 --- a/mobile/lib/module/download/manager.dart +++ b/mobile/lib/module/download/manager.dart @@ -304,8 +304,7 @@ class DownloadManager { try { for (int i = 1; i <= totalChunks; i++) { final chunkFile = File(_getChunkPath(basePath, i)); - final bytes = await chunkFile.readAsBytes(); - sink.add(bytes); + await sink.addStream(chunkFile.openRead()); await chunkFile.delete(); } } finally { From 3f6a706e9a188494beaea87b1cfabf1f7b823120 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 11:43:45 +0530 Subject: [PATCH 232/316] Conv --- web/apps/photos/src/services/collectionService.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/apps/photos/src/services/collectionService.ts b/web/apps/photos/src/services/collectionService.ts index cce59083de..77473d5924 100644 --- a/web/apps/photos/src/services/collectionService.ts +++ b/web/apps/photos/src/services/collectionService.ts @@ -72,7 +72,7 @@ const createCollection = async ( const token = getToken(); const collectionKey = await cryptoWorker.generateKey(); const { encryptedData: encryptedKey, nonce: keyDecryptionNonce } = - await cryptoWorker.encryptToB64(collectionKey, encryptionKey); + await cryptoWorker.encryptBox(collectionKey, encryptionKey); const { encryptedData: encryptedName, nonce: nameDecryptionNonce } = await cryptoWorker.encryptUTF8(collectionName, collectionKey); let encryptedMagicMetadata: EncryptedMagicMetadata; From 76cca72bec8b0d6371094388ad186d7a906da54e Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 11:52:28 +0530 Subject: [PATCH 233/316] Conv --- .../accounts/pages/change-password.tsx | 10 ++-- web/packages/accounts/services/srp.ts | 48 +++++++++---------- 2 files changed, 26 insertions(+), 32 deletions(-) diff --git a/web/packages/accounts/pages/change-password.tsx b/web/packages/accounts/pages/change-password.tsx index f977ba8bdc..3b64fcad20 100644 --- a/web/packages/accounts/pages/change-password.tsx +++ b/web/packages/accounts/pages/change-password.tsx @@ -68,14 +68,12 @@ const Page: React.FC = () => { setFieldError("confirm", t("password_generation_failed")); return; } - const encryptedKeyAttributes = await cryptoWorker.encryptToB64( - key, - kek.key, - ); + const { encryptedData: encryptedKey, nonce: keyDecryptionNonce } = + await cryptoWorker.encryptBox(key, kek.key); const updatedKey: UpdatedKey = { kekSalt, - encryptedKey: encryptedKeyAttributes.encryptedData, - keyDecryptionNonce: encryptedKeyAttributes.nonce, + encryptedKey, + keyDecryptionNonce, opsLimit: kek.opsLimit, memLimit: kek.memLimit, }; diff --git a/web/packages/accounts/services/srp.ts b/web/packages/accounts/services/srp.ts index 1fe485a96a..dc67e316d8 100644 --- a/web/packages/accounts/services/srp.ts +++ b/web/packages/accounts/services/srp.ts @@ -176,24 +176,22 @@ export async function generateKeyAndSRPAttributes( const kekSalt = await cryptoWorker.generateSaltToDeriveKey(); const kek = await cryptoWorker.deriveSensitiveKey(passphrase, kekSalt); - const masterKeyEncryptedWithKek = await cryptoWorker.encryptToB64( - masterKey, - kek.key, - ); - const masterKeyEncryptedWithRecoveryKey = await cryptoWorker.encryptToB64( - masterKey, - recoveryKey, - ); - const recoveryKeyEncryptedWithMasterKey = await cryptoWorker.encryptToB64( - recoveryKey, - masterKey, - ); + const { encryptedData: encryptedKey, nonce: keyDecryptionNonce } = + await cryptoWorker.encryptBox(masterKey, kek.key); + const { + encryptedData: masterKeyEncryptedWithRecoveryKey, + nonce: masterKeyDecryptionNonce, + } = await cryptoWorker.encryptBox(masterKey, recoveryKey); + const { + encryptedData: recoveryKeyEncryptedWithMasterKey, + nonce: recoveryKeyDecryptionNonce, + } = await cryptoWorker.encryptBox(recoveryKey, masterKey); const keyPair = await cryptoWorker.generateKeyPair(); - const encryptedKeyPairAttributes = await cryptoWorker.encryptToB64( - keyPair.privateKey, - masterKey, - ); + const { + encryptedData: encryptedSecretKey, + nonce: secretKeyDecryptionNonce, + } = await cryptoWorker.encryptBox(keyPair.privateKey, masterKey); const loginSubKey = await generateLoginSubKey(kek.key); @@ -201,19 +199,17 @@ export async function generateKeyAndSRPAttributes( const keyAttributes: KeyAttributes = { kekSalt, - encryptedKey: masterKeyEncryptedWithKek.encryptedData, - keyDecryptionNonce: masterKeyEncryptedWithKek.nonce, + encryptedKey, + keyDecryptionNonce, publicKey: keyPair.publicKey, - encryptedSecretKey: encryptedKeyPairAttributes.encryptedData, - secretKeyDecryptionNonce: encryptedKeyPairAttributes.nonce, + encryptedSecretKey, + secretKeyDecryptionNonce, opsLimit: kek.opsLimit, memLimit: kek.memLimit, - masterKeyEncryptedWithRecoveryKey: - masterKeyEncryptedWithRecoveryKey.encryptedData, - masterKeyDecryptionNonce: masterKeyEncryptedWithRecoveryKey.nonce, - recoveryKeyEncryptedWithMasterKey: - recoveryKeyEncryptedWithMasterKey.encryptedData, - recoveryKeyDecryptionNonce: recoveryKeyEncryptedWithMasterKey.nonce, + masterKeyEncryptedWithRecoveryKey, + masterKeyDecryptionNonce, + recoveryKeyEncryptedWithMasterKey, + recoveryKeyDecryptionNonce, }; return { keyAttributes, masterKey, srpSetupAttributes }; From b656d4fe1f777904345d7c8d6cd4707e88584e49 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 13:06:44 +0530 Subject: [PATCH 234/316] Addendum https://github.com/jedisct1/libsodium.js/issues/112#issuecomment-337389964 --- web/packages/accounts/services/user.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/web/packages/accounts/services/user.ts b/web/packages/accounts/services/user.ts index f47d8fe19e..effb1e8f0a 100644 --- a/web/packages/accounts/services/user.ts +++ b/web/packages/accounts/services/user.ts @@ -105,6 +105,14 @@ export interface KeyAttributes { * (https://doc.libsodium.org/public-key_cryptography/authenticated_encryption#key-pair-generation), * who possibly chose public + secret instead of public + private to avoid * confusion with shorthand notation (pk). + * + * However, the library author later changed their mind on this, so while + * libsodium itself (the C library) and the documentation uses "secretKey", + * the JavaScript implementation (libsodium.js) uses "privateKey". + * + * This structure uses the term "secretKey" since that is what the remote + * protocol already was based on. Within the web app codebase, we use + * "privateKey" since that is what the underlying libsodium.js uses. */ encryptedSecretKey: string; /** From 9e1b1b08504566868f663dae6b6a1ea67a4c40ed Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 13:11:54 +0530 Subject: [PATCH 235/316] Convert --- web/packages/gallery/services/upload/upload-service.ts | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/web/packages/gallery/services/upload/upload-service.ts b/web/packages/gallery/services/upload/upload-service.ts index b31d981821..dd00f3cca7 100644 --- a/web/packages/gallery/services/upload/upload-service.ts +++ b/web/packages/gallery/services/upload/upload-service.ts @@ -1425,7 +1425,7 @@ const constructPublicMagicMetadata = async ( const encryptFile = async ( file: FileWithMetadata, - encryptionKey: string, + collectionKey: string, worker: CryptoWorker, ) => { const fileKey = await worker.generateBlobOrStreamKey(); @@ -1467,7 +1467,7 @@ const encryptFile = async ( }; } - const encryptedKey = await worker.encryptToB64(fileKey, encryptionKey); + const encryptedFileKey = await worker.encryptBox(fileKey, collectionKey); return { encryptedFilePieces: { @@ -1478,10 +1478,7 @@ const encryptFile = async ( pubMagicMetadata: encryptedPubMagicMetadata, localID: localID, }, - encryptedFileKey: { - encryptedData: encryptedKey.encryptedData, - nonce: encryptedKey.nonce, - }, + encryptedFileKey, }; }; From 938732094802a19c53f779a1a01ca67040e01d3c Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 13:18:19 +0530 Subject: [PATCH 236/316] Conv --- web/packages/shared/crypto/helpers.ts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/web/packages/shared/crypto/helpers.ts b/web/packages/shared/crypto/helpers.ts index d1d53f304c..a33e36ef6c 100644 --- a/web/packages/shared/crypto/helpers.ts +++ b/web/packages/shared/crypto/helpers.ts @@ -57,15 +57,13 @@ export async function generateAndSaveIntermediateKeyAttributes( passphrase, intermediateKekSalt, ); - const encryptedKeyAttributes = await cryptoWorker.encryptToB64( - key, - intermediateKek.key, - ); + const { encryptedData: encryptedKey, nonce: keyDecryptionNonce } = + await cryptoWorker.encryptBox(key, intermediateKek.key); const intermediateKeyAttributes = Object.assign(existingKeyAttributes, { kekSalt: intermediateKekSalt, - encryptedKey: encryptedKeyAttributes.encryptedData, - keyDecryptionNonce: encryptedKeyAttributes.nonce, + encryptedKey, + keyDecryptionNonce, opsLimit: intermediateKek.opsLimit, memLimit: intermediateKek.memLimit, }); From c85aac613e374269c855c640b177f1c178a90d45 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 13:19:30 +0530 Subject: [PATCH 237/316] Prune --- web/packages/base/crypto/libsodium.ts | 2 +- web/packages/base/crypto/worker.ts | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index dd8e0d69d9..8db4d29864 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -638,7 +638,7 @@ export interface B64EncryptionResult { } /** Deprecated, use {@link encryptBox} instead */ -export async function encryptToB64(data: string, keyB64: string) { +async function encryptToB64(data: string, keyB64: string) { await sodium.ready; const encrypted = await encryptBox(data, keyB64); return { diff --git a/web/packages/base/crypto/worker.ts b/web/packages/base/crypto/worker.ts index 2874c8cb6a..7595ce46a5 100644 --- a/web/packages/base/crypto/worker.ts +++ b/web/packages/base/crypto/worker.ts @@ -51,10 +51,6 @@ export class CryptoWorker { return libsodium.decryptToUTF8(data, nonce, key); } - async encryptToB64(data: string, key: string) { - return libsodium.encryptToB64(data, key); - } - async generateKeyAndEncryptToB64(data: string) { return libsodium.generateKeyAndEncryptToB64(data); } From 40e7d58c0b4ecd584c00621c264350babebd2c90 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 13:34:05 +0530 Subject: [PATCH 238/316] utf-8 --- web/packages/base/crypto/ente-impl.ts | 1 + web/packages/base/crypto/index.ts | 40 +++++++++++++++++++++++++++ web/packages/base/crypto/libsodium.ts | 12 ++++++++ web/packages/base/crypto/worker.ts | 1 + 4 files changed, 54 insertions(+) diff --git a/web/packages/base/crypto/ente-impl.ts b/web/packages/base/crypto/ente-impl.ts index 2b007391c7..e990c86d93 100644 --- a/web/packages/base/crypto/ente-impl.ts +++ b/web/packages/base/crypto/ente-impl.ts @@ -20,6 +20,7 @@ export const _encryptStreamBytes = libsodium.encryptStreamBytes; export const _initChunkEncryption = libsodium.initChunkEncryption; export const _encryptStreamChunk = libsodium.encryptStreamChunk; export const _decryptBoxBytes = libsodium.decryptBoxBytes; +export const _decryptBoxUTF8 = libsodium.decryptBoxUTF8; export const _decryptBox = libsodium.decryptBox; export const _decryptBlobBytes = libsodium.decryptBlobBytes; export const _decryptBlob = libsodium.decryptBlob; diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index 5368a270c3..e9c24cce94 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -27,6 +27,8 @@ * to functions exposed by `crypto/libsodium.ts`, but they automatically defer * to a worker thread if we're not already running on one. * + * --- + * * [Note: Using libsodium in worker thread] * * `crypto/ente-impl.ts` and `crypto/worker.ts` are logic-less internal files @@ -53,6 +55,34 @@ * Also, some code (e.g. the uploader) creates it own crypto worker instances, * and thus directly calls the functions in the web worker that it created * instead of going through this file. + * + * --- + * + * [Note: Crypto layer API data types] + * + * There are two primary types used when exchanging data with these functions: + * + * 1. Base64 strings. Unqualified strings are taken as base64 encoded + * representations of the underlying data. + * + * 2. Raw bytes. Uint8Arrays are byte arrays. + * + * Where possible and useful, functions also accept a union of these two - a + * {@link BytesOrB64} where the implementation will automatically convert + * to/from base64 to bytes if needed, thus saving on unnecessary conversions at + * the caller side. + * + * Apart from these two, there are other secondary and one off types. + * + * 1. "Regular" JavaScript strings. These are indicated by the *UTF8 suffix on + * the function that deals with them. These strings will be obtained by utf-8 + * encoding (or decoding) the underlying bytes. + * + * 2. Hex representations of the bytes. These are indicated by the *Hex suffix + * on the functions dealing with them. + * + * 2. JSON values. These are indicated by the *JSON suffix on the functions + * dealing with them. */ import { ComlinkWorker } from "ente-base/worker/comlink-worker"; import { type StateAddress } from "libsodium-wrappers-sumo"; @@ -270,6 +300,16 @@ export const decryptBoxBytes = (box: EncryptedBox, key: BytesOrB64) => ? ei._decryptBoxBytes(box, key) : sharedWorker().then((w) => w.decryptBoxBytes(box, key)); +/** + * Variant of {@link decryptBoxBytes} that returns the decrypted bytes as a + * "JavaScript string", specifically a UTF-8 string. That is, after decryption + * we obtain raw bytes, which we interpret as a UTF-8 string. + */ +export const decryptBoxUTF8 = (box: EncryptedBox, key: BytesOrB64) => + inWorker() + ? ei._decryptBoxUTF8(box, key) + : sharedWorker().then((w) => w.decryptBoxUTF8(box, key)); + /** * Decrypt a blob encrypted using either {@link encryptBlobBytes} or * {@link encryptBlob} and return it as a base64 encoded string. diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index 8db4d29864..116ce65ca2 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -501,6 +501,18 @@ export const decryptBox = ( key: BytesOrB64, ): Promise => decryptBoxBytes(box, key).then(toB64); +/** + * Variant of {@link decryptBoxBytes} that returns the data after decoding the + * decrypted bytes as a utf-8 string. + */ +export const decryptBoxUTF8 = async ( + box: EncryptedBox, + key: BytesOrB64, +): Promise => { + await sodium.ready; + return sodium.to_string(await decryptBoxBytes(box, key)); +}; + /** * Decrypt the result of {@link encryptBlobBytes} or {@link encryptBlob}. */ diff --git a/web/packages/base/crypto/worker.ts b/web/packages/base/crypto/worker.ts index 7595ce46a5..74a0da24cd 100644 --- a/web/packages/base/crypto/worker.ts +++ b/web/packages/base/crypto/worker.ts @@ -28,6 +28,7 @@ export class CryptoWorker { initChunkEncryption = ei._initChunkEncryption; encryptStreamChunk = ei._encryptStreamChunk; decryptBoxBytes = ei._decryptBoxBytes; + decryptBoxUTF8 = ei._decryptBoxUTF8; decryptBox = ei._decryptBox; decryptBlobBytes = ei._decryptBlobBytes; decryptBlob = ei._decryptBlob; From 6eab85b7e105a170d704ad8ca3c94cbc8a4d5976 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 13:59:15 +0530 Subject: [PATCH 239/316] enc --- web/packages/base/crypto/ente-impl.ts | 7 ++++--- web/packages/base/crypto/index.ts | 16 ++++++++++++++-- web/packages/base/crypto/libsodium.ts | 12 ++++++++++++ web/packages/base/crypto/worker.ts | 7 ++++--- 4 files changed, 34 insertions(+), 8 deletions(-) diff --git a/web/packages/base/crypto/ente-impl.ts b/web/packages/base/crypto/ente-impl.ts index e990c86d93..dca6ac112b 100644 --- a/web/packages/base/crypto/ente-impl.ts +++ b/web/packages/base/crypto/ente-impl.ts @@ -13,17 +13,18 @@ export const _fromHex = libsodium.fromHex; export const _generateKey = libsodium.generateKey; export const _generateBlobOrStreamKey = libsodium.generateBlobOrStreamKey; export const _encryptBox = libsodium.encryptBox; -export const _encryptBlobBytes = libsodium.encryptBlobBytes; +export const _encryptBoxUTF8 = libsodium.encryptBoxUTF8; export const _encryptBlob = libsodium.encryptBlob; +export const _encryptBlobBytes = libsodium.encryptBlobBytes; export const _encryptMetadataJSON = libsodium.encryptMetadataJSON; export const _encryptStreamBytes = libsodium.encryptStreamBytes; export const _initChunkEncryption = libsodium.initChunkEncryption; export const _encryptStreamChunk = libsodium.encryptStreamChunk; +export const _decryptBox = libsodium.decryptBox; export const _decryptBoxBytes = libsodium.decryptBoxBytes; export const _decryptBoxUTF8 = libsodium.decryptBoxUTF8; -export const _decryptBox = libsodium.decryptBox; -export const _decryptBlobBytes = libsodium.decryptBlobBytes; export const _decryptBlob = libsodium.decryptBlob; +export const _decryptBlobBytes = libsodium.decryptBlobBytes; export const _decryptMetadataJSON = libsodium.decryptMetadataJSON; export const _decryptStreamBytes = libsodium.decryptStreamBytes; export const _initChunkDecryption = libsodium.initChunkDecryption; diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index e9c24cce94..606dd1d4cb 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -63,9 +63,12 @@ * There are two primary types used when exchanging data with these functions: * * 1. Base64 strings. Unqualified strings are taken as base64 encoded - * representations of the underlying data. + * representations of the underlying data. Usually, the unqualified "base" + * function deals with Base64 strings, since they also are the data type in + * which we usually send the encryted data etc to remote. * - * 2. Raw bytes. Uint8Arrays are byte arrays. + * 2. Raw bytes. Uint8Arrays are byte arrays. The functions that deal with bytes + * are indicated by a *Bytes suffix in their name. * * Where possible and useful, functions also accept a union of these two - a * {@link BytesOrB64} where the implementation will automatically convert @@ -196,6 +199,15 @@ export const encryptBox = (data: BytesOrB64, key: BytesOrB64) => ? ei._encryptBox(data, key) : sharedWorker().then((w) => w.encryptBox(data, key)); +/** + * A variant of {@link encryptBox} that first UTF-8 encodes the input string to + * obtain bytes, which it then encrypts. + */ +export const encryptBoxUTF8 = (data: string, key: BytesOrB64) => + inWorker() + ? ei._encryptBoxUTF8(data, key) + : sharedWorker().then((w) => w.encryptBoxUTF8(data, key)); + /** * Encrypt the given data, returning a blob containing the encrypted data and a * decryption header as base64 strings. diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index 116ce65ca2..ab83b1e10d 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -283,6 +283,18 @@ export const encryptBox = async ( }; }; +/** + * A variant of {@link encryptBox} that first converts the input string into + * bytes using a UTF-8 encoding, and then encrypts those bytes. + */ +export const encryptBoxUTF8 = async ( + data: string, + key: BytesOrB64, +): Promise => { + await sodium.ready; + return encryptBox(sodium.from_string(data), key); +}; + /** * Encrypt the given data using libsodium's secretstream APIs without chunking. * diff --git a/web/packages/base/crypto/worker.ts b/web/packages/base/crypto/worker.ts index 74a0da24cd..b0bf092b40 100644 --- a/web/packages/base/crypto/worker.ts +++ b/web/packages/base/crypto/worker.ts @@ -21,17 +21,18 @@ export class CryptoWorker { generateKey = ei._generateKey; generateBlobOrStreamKey = ei._generateBlobOrStreamKey; encryptBox = ei._encryptBox; - encryptBlobBytes = ei._encryptBlobBytes; + encryptBoxUTF8 = ei._encryptBoxUTF8; encryptBlob = ei._encryptBlob; + encryptBlobBytes = ei._encryptBlobBytes; encryptMetadataJSON = ei._encryptMetadataJSON; encryptStreamBytes = ei._encryptStreamBytes; initChunkEncryption = ei._initChunkEncryption; encryptStreamChunk = ei._encryptStreamChunk; + decryptBox = ei._decryptBox; decryptBoxBytes = ei._decryptBoxBytes; decryptBoxUTF8 = ei._decryptBoxUTF8; - decryptBox = ei._decryptBox; - decryptBlobBytes = ei._decryptBlobBytes; decryptBlob = ei._decryptBlob; + decryptBlobBytes = ei._decryptBlobBytes; decryptMetadataJSON = ei._decryptMetadataJSON; decryptStreamBytes = ei._decryptStreamBytes; initChunkDecryption = ei._initChunkDecryption; From 5de4b3c1b05302c3b03f67c4729fa45d68cb8b01 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 14:04:59 +0530 Subject: [PATCH 240/316] Swap --- web/apps/photos/src/services/collectionService.ts | 5 +++-- web/packages/base/crypto/libsodium.ts | 6 ------ web/packages/base/crypto/worker.ts | 4 ---- 3 files changed, 3 insertions(+), 12 deletions(-) diff --git a/web/apps/photos/src/services/collectionService.ts b/web/apps/photos/src/services/collectionService.ts index 77473d5924..43646c8b45 100644 --- a/web/apps/photos/src/services/collectionService.ts +++ b/web/apps/photos/src/services/collectionService.ts @@ -74,7 +74,8 @@ const createCollection = async ( const { encryptedData: encryptedKey, nonce: keyDecryptionNonce } = await cryptoWorker.encryptBox(collectionKey, encryptionKey); const { encryptedData: encryptedName, nonce: nameDecryptionNonce } = - await cryptoWorker.encryptUTF8(collectionName, collectionKey); + await cryptoWorker.encryptBoxUTF8(collectionName, collectionKey); + let encryptedMagicMetadata: EncryptedMagicMetadata; if (magicMetadataProps) { const magicMetadata = await updateMagicMetadata(magicMetadataProps); @@ -476,7 +477,7 @@ export const renameCollection = async ( const token = getToken(); const cryptoWorker = await sharedCryptoWorker(); const { encryptedData: encryptedName, nonce: nameDecryptionNonce } = - await cryptoWorker.encryptUTF8(newCollectionName, collection.key); + await cryptoWorker.encryptBoxUTF8(newCollectionName, collection.key); const collectionRenameRequest = { collectionID: collection.id, encryptedName, diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index ab83b1e10d..7107a9a98c 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -678,12 +678,6 @@ export async function generateKeyAndEncryptToB64(data: string) { return await encryptToB64(data, await toB64(key)); } -export async function encryptUTF8(data: string, key: string) { - await sodium.ready; - const b64Data = await toB64(sodium.from_string(data)); - return await encryptToB64(b64Data, key); -} - /** Deprecated */ export async function decryptToUTF8( encryptedData: string, diff --git a/web/packages/base/crypto/worker.ts b/web/packages/base/crypto/worker.ts index b0bf092b40..39a12d19be 100644 --- a/web/packages/base/crypto/worker.ts +++ b/web/packages/base/crypto/worker.ts @@ -57,10 +57,6 @@ export class CryptoWorker { return libsodium.generateKeyAndEncryptToB64(data); } - async encryptUTF8(data: string, key: string) { - return libsodium.encryptUTF8(data, key); - } - async generateSaltToDeriveKey() { return libsodium.generateSaltToDeriveKey(); } From 94c5cf316b78c7b647ded32e9d29c1967732974d Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 14:07:29 +0530 Subject: [PATCH 241/316] Swap --- .../photos/src/services/publicCollectionService.ts | 8 +++++--- web/packages/base/crypto/libsodium.ts | 11 ----------- web/packages/base/crypto/worker.ts | 4 ---- web/packages/new/photos/services/collections.ts | 8 +++++--- 4 files changed, 10 insertions(+), 21 deletions(-) diff --git a/web/apps/photos/src/services/publicCollectionService.ts b/web/apps/photos/src/services/publicCollectionService.ts index 59f904b5bd..09966f3d0d 100644 --- a/web/apps/photos/src/services/publicCollectionService.ts +++ b/web/apps/photos/src/services/publicCollectionService.ts @@ -325,9 +325,11 @@ export const getPublicCollection = async ( const collectionName = (fetchedCollection.name = fetchedCollection.name || - (await cryptoWorker.decryptToUTF8( - fetchedCollection.encryptedName, - fetchedCollection.nameDecryptionNonce, + (await cryptoWorker.decryptBoxUTF8( + { + encryptedData: fetchedCollection.encryptedName, + nonce: fetchedCollection.nameDecryptionNonce, + }, collectionKey, ))); diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index 7107a9a98c..b2c273bb77 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -678,17 +678,6 @@ export async function generateKeyAndEncryptToB64(data: string) { return await encryptToB64(data, await toB64(key)); } -/** Deprecated */ -export async function decryptToUTF8( - encryptedData: string, - nonce: string, - keyB64: string, -) { - await sodium.ready; - const decrypted = await decryptBoxBytes({ encryptedData, nonce }, keyB64); - return sodium.to_string(decrypted); -} - /** * An opaque object meant to be threaded through {@link chunkHashInit}, * {@link chunkHashUpdate} and {@link chunkHashFinal}. diff --git a/web/packages/base/crypto/worker.ts b/web/packages/base/crypto/worker.ts index 39a12d19be..555becb4e4 100644 --- a/web/packages/base/crypto/worker.ts +++ b/web/packages/base/crypto/worker.ts @@ -49,10 +49,6 @@ export class CryptoWorker { // TODO: -- AUDIT BELOW -- - async decryptToUTF8(data: string, nonce: string, key: string) { - return libsodium.decryptToUTF8(data, nonce, key); - } - async generateKeyAndEncryptToB64(data: string) { return libsodium.generateKeyAndEncryptToB64(data); } diff --git a/web/packages/new/photos/services/collections.ts b/web/packages/new/photos/services/collections.ts index fa67c710d9..ed58b32544 100644 --- a/web/packages/new/photos/services/collections.ts +++ b/web/packages/new/photos/services/collections.ts @@ -226,9 +226,11 @@ export const getCollectionWithSecrets = async ( } const collectionName = collection.name || - (await cryptoWorker.decryptToUTF8( - collection.encryptedName, - collection.nameDecryptionNonce, + (await cryptoWorker.decryptBoxUTF8( + { + encryptedData: collection.encryptedName, + nonce: collection.nameDecryptionNonce, + }, collectionKey, )); From 723362fc335d4aab62280770d707095c82506789 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 14:32:40 +0530 Subject: [PATCH 242/316] Rename --- .../components/Collections/CollectionShare.tsx | 2 +- web/packages/accounts/pages/change-password.tsx | 2 +- web/packages/accounts/services/srp.ts | 4 ++-- web/packages/base/crypto/ente-impl.ts | 1 + web/packages/base/crypto/index.ts | 11 +++++++++++ web/packages/base/crypto/libsodium.ts | 16 +++++++++++----- web/packages/base/crypto/worker.ts | 5 +---- web/packages/shared/crypto/helpers.ts | 2 +- 8 files changed, 29 insertions(+), 14 deletions(-) diff --git a/web/apps/photos/src/components/Collections/CollectionShare.tsx b/web/apps/photos/src/components/Collections/CollectionShare.tsx index f374766780..a477226cf9 100644 --- a/web/apps/photos/src/components/Collections/CollectionShare.tsx +++ b/web/apps/photos/src/components/Collections/CollectionShare.tsx @@ -1660,7 +1660,7 @@ const SetPublicLinkPassword: React.FC = ({ const enablePublicUrlPassword = async (password: string) => { const cryptoWorker = await sharedCryptoWorker(); - const kekSalt = await cryptoWorker.generateSaltToDeriveKey(); + const kekSalt = await cryptoWorker.generateDeriveKeySalt(); const kek = await cryptoWorker.deriveInteractiveKey(password, kekSalt); return updatePublicShareURLHelper({ diff --git a/web/packages/accounts/pages/change-password.tsx b/web/packages/accounts/pages/change-password.tsx index 3b64fcad20..e89a99782c 100644 --- a/web/packages/accounts/pages/change-password.tsx +++ b/web/packages/accounts/pages/change-password.tsx @@ -60,7 +60,7 @@ const Page: React.FC = () => { const cryptoWorker = await sharedCryptoWorker(); const key = await getActualKey(); const keyAttributes: KeyAttributes = getData("keyAttributes"); - const kekSalt = await cryptoWorker.generateSaltToDeriveKey(); + const kekSalt = await cryptoWorker.generateDeriveKeySalt(); let kek: { key: string; opsLimit: number; memLimit: number }; try { kek = await cryptoWorker.deriveSensitiveKey(passphrase, kekSalt); diff --git a/web/packages/accounts/services/srp.ts b/web/packages/accounts/services/srp.ts index dc67e316d8..5d1e8c4a30 100644 --- a/web/packages/accounts/services/srp.ts +++ b/web/packages/accounts/services/srp.ts @@ -59,7 +59,7 @@ export const generateSRPSetupAttributes = async ( ): Promise => { const cryptoWorker = await sharedCryptoWorker(); - const srpSalt = await cryptoWorker.generateSaltToDeriveKey(); + const srpSalt = await cryptoWorker.generateDeriveKeySalt(); // Museum schema requires this to be a UUID. const srpUserID = uuidv4(); @@ -173,7 +173,7 @@ export async function generateKeyAndSRPAttributes( const cryptoWorker = await sharedCryptoWorker(); const masterKey = await cryptoWorker.generateKey(); const recoveryKey = await cryptoWorker.generateKey(); - const kekSalt = await cryptoWorker.generateSaltToDeriveKey(); + const kekSalt = await cryptoWorker.generateDeriveKeySalt(); const kek = await cryptoWorker.deriveSensitiveKey(passphrase, kekSalt); const { encryptedData: encryptedKey, nonce: keyDecryptionNonce } = diff --git a/web/packages/base/crypto/ente-impl.ts b/web/packages/base/crypto/ente-impl.ts index dca6ac112b..0a909254b1 100644 --- a/web/packages/base/crypto/ente-impl.ts +++ b/web/packages/base/crypto/ente-impl.ts @@ -35,6 +35,7 @@ export const _chunkHashFinal = libsodium.chunkHashFinal; export const _generateKeyPair = libsodium.generateKeyPair; export const _boxSeal = libsodium.boxSeal; export const _boxSealOpen = libsodium.boxSealOpen; +export const _generateDeriveKeySalt = libsodium.generateDeriveKeySalt; export const _deriveKey = libsodium.deriveKey; export const _deriveSensitiveKey = libsodium.deriveSensitiveKey; export const _deriveInteractiveKey = libsodium.deriveInteractiveKey; diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index 606dd1d4cb..785071fcdb 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -414,6 +414,17 @@ export const boxSealOpen = async ( w.boxSealOpen(encryptedData, publicKey, secretKey), ); +/** + * Return a new randomly generated 128-bit salt (as a base64 string). + * + * The returned salt is suitable for use with {@link deriveKey}, and also as a + * general 128-bit salt. + */ +export const generateDeriveKeySalt = async () => + inWorker() + ? ei._generateDeriveKeySalt() + : sharedWorker().then((w) => w.generateDeriveKeySalt()); + /** * Derive a key by hashing the given {@link passphrase} using Argon 2id. */ diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index b2c273bb77..a9b4f2d829 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -802,6 +802,17 @@ export const boxSealOpen = async ( ); }; +/** + * Generate a new randomly generated 128-bit salt suitable for use with the key + * derivation functions ({@link deriveKey} and its variants). + * + * @returns The base64 representation of a randomly generated 128-bit salt. + */ +export const generateDeriveKeySalt = async () => { + await sodium.ready; + return await toB64(sodium.randombytes_buf(sodium.crypto_pwhash_SALTBYTES)); +}; + /** * Derive a key by hashing the given {@link passphrase} using Argon 2id. * @@ -909,11 +920,6 @@ export const deriveInteractiveKey = async ( return { key, opsLimit, memLimit }; }; -export async function generateSaltToDeriveKey() { - await sodium.ready; - return await toB64(sodium.randombytes_buf(sodium.crypto_pwhash_SALTBYTES)); -} - export async function generateSubKey( key: string, subKeyLength: number, diff --git a/web/packages/base/crypto/worker.ts b/web/packages/base/crypto/worker.ts index 555becb4e4..f1c46f7571 100644 --- a/web/packages/base/crypto/worker.ts +++ b/web/packages/base/crypto/worker.ts @@ -43,6 +43,7 @@ export class CryptoWorker { generateKeyPair = ei._generateKeyPair; boxSeal = ei._boxSeal; boxSealOpen = ei._boxSealOpen; + generateDeriveKeySalt = ei._generateDeriveKeySalt; deriveKey = ei._deriveKey; deriveSensitiveKey = ei._deriveSensitiveKey; deriveInteractiveKey = ei._deriveInteractiveKey; @@ -53,10 +54,6 @@ export class CryptoWorker { return libsodium.generateKeyAndEncryptToB64(data); } - async generateSaltToDeriveKey() { - return libsodium.generateSaltToDeriveKey(); - } - async generateSubKey( key: string, subKeyLength: number, diff --git a/web/packages/shared/crypto/helpers.ts b/web/packages/shared/crypto/helpers.ts index a33e36ef6c..cc3e3f5947 100644 --- a/web/packages/shared/crypto/helpers.ts +++ b/web/packages/shared/crypto/helpers.ts @@ -52,7 +52,7 @@ export async function generateAndSaveIntermediateKeyAttributes( key: string, ): Promise { const cryptoWorker = await sharedCryptoWorker(); - const intermediateKekSalt = await cryptoWorker.generateSaltToDeriveKey(); + const intermediateKekSalt = await cryptoWorker.generateDeriveKeySalt(); const intermediateKek = await cryptoWorker.deriveInteractiveKey( passphrase, intermediateKekSalt, From 40f3ad592fb7101708932eeb1150fff58d7efa56 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 14:38:38 +0530 Subject: [PATCH 243/316] type --- web/packages/base/crypto/libsodium.ts | 12 ++++++++---- web/packages/base/crypto/types.ts | 23 +++++++++++++++++++++++ 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index a9b4f2d829..3a1714b35a 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -12,6 +12,7 @@ import { mergeUint8Arrays } from "ente-utils/array"; import sodium, { type StateAddress } from "libsodium-wrappers-sumo"; import type { BytesOrB64, + DerivedKey, EncryptedBlob, EncryptedBlobB64, EncryptedBlobBytes, @@ -865,7 +866,10 @@ export const deriveKey = async ( * during the derivation (this information will be needed the user's other * clients to derive the same result). */ -export const deriveSensitiveKey = async (passphrase: string, salt: string) => { +export const deriveSensitiveKey = async ( + passphrase: string, + salt: string, +): Promise => { await sodium.ready; const desiredStrength = @@ -896,7 +900,7 @@ export const deriveSensitiveKey = async (passphrase: string, salt: string) => { while (memLimit > minMemLimit) { try { const key = await deriveKey(passphrase, salt, opsLimit, memLimit); - return { key, opsLimit, memLimit }; + return { key, salt, opsLimit, memLimit }; } catch { opsLimit *= 2; memLimit /= 2; @@ -912,12 +916,12 @@ export const deriveSensitiveKey = async (passphrase: string, salt: string) => { export const deriveInteractiveKey = async ( passphrase: string, salt: string, -) => { +): Promise => { const opsLimit = sodium.crypto_pwhash_OPSLIMIT_INTERACTIVE; const memLimit = sodium.crypto_pwhash_MEMLIMIT_INTERACTIVE; const key = await deriveKey(passphrase, salt, opsLimit, memLimit); - return { key, opsLimit, memLimit }; + return { key, salt, opsLimit, memLimit }; }; export async function generateSubKey( diff --git a/web/packages/base/crypto/types.ts b/web/packages/base/crypto/types.ts index d79a32f85e..64b29248b5 100644 --- a/web/packages/base/crypto/types.ts +++ b/web/packages/base/crypto/types.ts @@ -129,3 +129,26 @@ export interface EncryptedFile { */ decryptionHeader: string; } + +/** + * A key derived from a user provided passphrase, and the various attributes + * that were used during the key derivation. + */ +export interface DerivedKey { + /** + * The newly derived key itself, as a base64 encoded string. + */ + key: string; + /** + * The randomly generated salt (as a base64 string) that was used when deriving the key. + */ + salt: string; + /** + * opsLimit used during key derivation. + */ + opsLimit: number; + /** + * memLimit used during key derivation. + * */ + memLimit: number; +} From 931dafd2643e37ce5e7a8b75810180636a906057 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 14:40:08 +0530 Subject: [PATCH 244/316] Reroute --- .../Collections/CollectionShare.tsx | 9 +++------ .../accounts/pages/change-password.tsx | 8 ++++---- web/packages/accounts/services/srp.ts | 9 ++++----- web/packages/base/crypto/index.ts | 19 ++++++++++++------- web/packages/base/crypto/libsodium.ts | 5 +++-- web/packages/shared/crypto/helpers.ts | 8 ++------ 6 files changed, 28 insertions(+), 30 deletions(-) diff --git a/web/apps/photos/src/components/Collections/CollectionShare.tsx b/web/apps/photos/src/components/Collections/CollectionShare.tsx index a477226cf9..14a965a1f9 100644 --- a/web/apps/photos/src/components/Collections/CollectionShare.tsx +++ b/web/apps/photos/src/components/Collections/CollectionShare.tsx @@ -41,7 +41,7 @@ import { type ModalVisibilityProps, } from "ente-base/components/utils/modal"; import { useBaseContext } from "ente-base/context"; -import { sharedCryptoWorker } from "ente-base/crypto"; +import { deriveInteractiveKey } from "ente-base/crypto"; import { isHTTP4xxError } from "ente-base/http"; import { formattedDateTime } from "ente-base/i18n-date"; import log from "ente-base/log"; @@ -1659,14 +1659,11 @@ const SetPublicLinkPassword: React.FC = ({ }; const enablePublicUrlPassword = async (password: string) => { - const cryptoWorker = await sharedCryptoWorker(); - const kekSalt = await cryptoWorker.generateDeriveKeySalt(); - const kek = await cryptoWorker.deriveInteractiveKey(password, kekSalt); - + const kek = await deriveInteractiveKey(password); return updatePublicShareURLHelper({ collectionID: collection.id, passHash: kek.key, - nonce: kekSalt, + nonce: kek.salt, opsLimit: kek.opsLimit, memLimit: kek.memLimit, }); diff --git a/web/packages/accounts/pages/change-password.tsx b/web/packages/accounts/pages/change-password.tsx index e89a99782c..a74aa31422 100644 --- a/web/packages/accounts/pages/change-password.tsx +++ b/web/packages/accounts/pages/change-password.tsx @@ -25,6 +25,7 @@ import type { } from "ente-accounts/services/user"; import { LinkButton } from "ente-base/components/LinkButton"; import { sharedCryptoWorker } from "ente-base/crypto"; +import type { DerivedKey } from "ente-base/crypto/types"; import { generateAndSaveIntermediateKeyAttributes, generateLoginSubKey, @@ -60,10 +61,9 @@ const Page: React.FC = () => { const cryptoWorker = await sharedCryptoWorker(); const key = await getActualKey(); const keyAttributes: KeyAttributes = getData("keyAttributes"); - const kekSalt = await cryptoWorker.generateDeriveKeySalt(); - let kek: { key: string; opsLimit: number; memLimit: number }; + let kek: DerivedKey; try { - kek = await cryptoWorker.deriveSensitiveKey(passphrase, kekSalt); + kek = await cryptoWorker.deriveSensitiveKey(passphrase); } catch { setFieldError("confirm", t("password_generation_failed")); return; @@ -71,9 +71,9 @@ const Page: React.FC = () => { const { encryptedData: encryptedKey, nonce: keyDecryptionNonce } = await cryptoWorker.encryptBox(key, kek.key); const updatedKey: UpdatedKey = { - kekSalt, encryptedKey, keyDecryptionNonce, + kekSalt: kek.salt, opsLimit: kek.opsLimit, memLimit: kek.memLimit, }; diff --git a/web/packages/accounts/services/srp.ts b/web/packages/accounts/services/srp.ts index 5d1e8c4a30..a41035fc0c 100644 --- a/web/packages/accounts/services/srp.ts +++ b/web/packages/accounts/services/srp.ts @@ -173,8 +173,7 @@ export async function generateKeyAndSRPAttributes( const cryptoWorker = await sharedCryptoWorker(); const masterKey = await cryptoWorker.generateKey(); const recoveryKey = await cryptoWorker.generateKey(); - const kekSalt = await cryptoWorker.generateDeriveKeySalt(); - const kek = await cryptoWorker.deriveSensitiveKey(passphrase, kekSalt); + const kek = await cryptoWorker.deriveSensitiveKey(passphrase); const { encryptedData: encryptedKey, nonce: keyDecryptionNonce } = await cryptoWorker.encryptBox(masterKey, kek.key); @@ -198,14 +197,14 @@ export async function generateKeyAndSRPAttributes( const srpSetupAttributes = await generateSRPSetupAttributes(loginSubKey); const keyAttributes: KeyAttributes = { - kekSalt, encryptedKey, keyDecryptionNonce, + kekSalt: kek.salt, + opsLimit: kek.opsLimit, + memLimit: kek.memLimit, publicKey: keyPair.publicKey, encryptedSecretKey, secretKeyDecryptionNonce, - opsLimit: kek.opsLimit, - memLimit: kek.memLimit, masterKeyEncryptedWithRecoveryKey, masterKeyDecryptionNonce, recoveryKeyEncryptedWithMasterKey, diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index 785071fcdb..6f30dfd33b 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -93,6 +93,7 @@ import { inWorker } from "../env"; import * as ei from "./ente-impl"; import type { BytesOrB64, + DerivedKey, EncryptedBlob, EncryptedBox, EncryptedFile, @@ -443,15 +444,19 @@ export const deriveKey = async ( /** * Derive a sensitive key from the given {@link passphrase}. */ -export const deriveSensitiveKey = async (passphrase: string, salt: string) => +export const deriveSensitiveKey = async ( + passphrase: string, +): Promise => inWorker() - ? ei._deriveSensitiveKey(passphrase, salt) - : sharedWorker().then((w) => w.deriveSensitiveKey(passphrase, salt)); + ? ei._deriveSensitiveKey(passphrase) + : sharedWorker().then((w) => w.deriveSensitiveKey(passphrase)); /** - * Derive an interactive key from the given {@link passphrase}. + * Derive an key suitable for interactive use from the given {@link passphrase}. */ -export const deriveInteractiveKey = async (passphrase: string, salt: string) => +export const deriveInteractiveKey = async ( + passphrase: string, +): Promise => inWorker() - ? ei._deriveInteractiveKey(passphrase, salt) - : sharedWorker().then((w) => w.deriveInteractiveKey(passphrase, salt)); + ? ei._deriveInteractiveKey(passphrase) + : sharedWorker().then((w) => w.deriveInteractiveKey(passphrase)); diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index 3a1714b35a..601bbeebd7 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -868,10 +868,11 @@ export const deriveKey = async ( */ export const deriveSensitiveKey = async ( passphrase: string, - salt: string, ): Promise => { await sodium.ready; + const salt = await generateDeriveKeySalt(); + const desiredStrength = sodium.crypto_pwhash_MEMLIMIT_SENSITIVE * sodium.crypto_pwhash_OPSLIMIT_SENSITIVE; @@ -915,8 +916,8 @@ export const deriveSensitiveKey = async ( */ export const deriveInteractiveKey = async ( passphrase: string, - salt: string, ): Promise => { + const salt = await generateDeriveKeySalt(); const opsLimit = sodium.crypto_pwhash_OPSLIMIT_INTERACTIVE; const memLimit = sodium.crypto_pwhash_MEMLIMIT_INTERACTIVE; diff --git a/web/packages/shared/crypto/helpers.ts b/web/packages/shared/crypto/helpers.ts index cc3e3f5947..02f4a66317 100644 --- a/web/packages/shared/crypto/helpers.ts +++ b/web/packages/shared/crypto/helpers.ts @@ -52,18 +52,14 @@ export async function generateAndSaveIntermediateKeyAttributes( key: string, ): Promise { const cryptoWorker = await sharedCryptoWorker(); - const intermediateKekSalt = await cryptoWorker.generateDeriveKeySalt(); - const intermediateKek = await cryptoWorker.deriveInteractiveKey( - passphrase, - intermediateKekSalt, - ); + const intermediateKek = await cryptoWorker.deriveInteractiveKey(passphrase); const { encryptedData: encryptedKey, nonce: keyDecryptionNonce } = await cryptoWorker.encryptBox(key, intermediateKek.key); const intermediateKeyAttributes = Object.assign(existingKeyAttributes, { - kekSalt: intermediateKekSalt, encryptedKey, keyDecryptionNonce, + kekSalt: intermediateKek.salt, opsLimit: intermediateKek.opsLimit, memLimit: intermediateKek.memLimit, }); From f1d9fc61c57c98e55409e232cdc18e31f55fc4e4 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 14:52:30 +0530 Subject: [PATCH 245/316] Annotate --- web/packages/base/crypto/index.ts | 134 +++++++++++++++++++----------- 1 file changed, 84 insertions(+), 50 deletions(-) diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index 6f30dfd33b..98f577eaa7 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -95,7 +95,10 @@ import type { BytesOrB64, DerivedKey, EncryptedBlob, + EncryptedBlobB64, + EncryptedBlobBytes, EncryptedBox, + EncryptedBoxB64, EncryptedFile, } from "./types"; import type { CryptoWorker } from "./worker"; @@ -127,13 +130,13 @@ export const createComlinkCryptoWorker = () => /** * Convert bytes ({@link Uint8Array}) to a base64 string. */ -export const toB64 = (bytes: Uint8Array) => +export const toB64 = (bytes: Uint8Array): Promise => inWorker() ? ei._toB64(bytes) : sharedWorker().then((w) => w.toB64(bytes)); /** * URL safe variant of {@link toB64}. */ -export const toB64URLSafe = (bytes: Uint8Array) => +export const toB64URLSafe = (bytes: Uint8Array): Promise => inWorker() ? ei._toB64URLSafe(bytes) : sharedWorker().then((w) => w.toB64URLSafe(bytes)); @@ -149,7 +152,7 @@ export const fromB64 = (b64String: string) => /** * Convert a base64 string to the hex representation of the underlying bytes. */ -export const toHex = (b64String: string) => +export const toHex = (b64String: string): Promise => inWorker() ? ei._toHex(b64String) : sharedWorker().then((w) => w.toHex(b64String)); @@ -168,7 +171,7 @@ export const fromHex = (hexString: string) => * The returned key is suitable for use with the *Box encryption functions, and * as a general encryption key (e.g. as the user's master key or recovery key). */ -export const generateKey = () => +export const generateKey = (): Promise => inWorker() ? ei._generateKey() : sharedWorker().then((w) => w.generateKey()); @@ -177,7 +180,7 @@ export const generateKey = () => * Return a new randomly generated 256-bit key (as a base64 string) suitable for * use with the *Blob or *Stream encryption functions. */ -export const generateBlobOrStreamKey = () => +export const generateBlobOrStreamKey = (): Promise => inWorker() ? ei._generateBlobOrStreamKey() : sharedWorker().then((w) => w.generateBlobOrStreamKey()); @@ -195,7 +198,10 @@ export const generateBlobOrStreamKey = () => * > * > See: [Note: 3 forms of encryption (Box | Blob | Stream)] */ -export const encryptBox = (data: BytesOrB64, key: BytesOrB64) => +export const encryptBox = ( + data: BytesOrB64, + key: BytesOrB64, +): Promise => inWorker() ? ei._encryptBox(data, key) : sharedWorker().then((w) => w.encryptBox(data, key)); @@ -204,7 +210,10 @@ export const encryptBox = (data: BytesOrB64, key: BytesOrB64) => * A variant of {@link encryptBox} that first UTF-8 encodes the input string to * obtain bytes, which it then encrypts. */ -export const encryptBoxUTF8 = (data: string, key: BytesOrB64) => +export const encryptBoxUTF8 = ( + data: string, + key: BytesOrB64, +): Promise => inWorker() ? ei._encryptBoxUTF8(data, key) : sharedWorker().then((w) => w.encryptBoxUTF8(data, key)); @@ -223,7 +232,10 @@ export const encryptBoxUTF8 = (data: string, key: BytesOrB64) => * > * > See: [Note: 3 forms of encryption (Box | Blob | Stream)] */ -export const encryptBlob = (data: BytesOrB64, key: BytesOrB64) => +export const encryptBlob = ( + data: BytesOrB64, + key: BytesOrB64, +): Promise => inWorker() ? ei._encryptBlob(data, key) : sharedWorker().then((w) => w.encryptBlob(data, key)); @@ -234,16 +246,50 @@ export const encryptBlob = (data: BytesOrB64, key: BytesOrB64) => * * Use {@link decryptBlob} or {@link decryptBlobBytes} to decrypt the result. */ -export const encryptBlobBytes = (data: BytesOrB64, key: BytesOrB64) => +export const encryptBlobBytes = ( + data: BytesOrB64, + key: BytesOrB64, +): Promise => inWorker() ? ei._encryptBlobBytes(data, key) : sharedWorker().then((w) => w.encryptBlobBytes(data, key)); +/** + * Encrypt the JSON metadata associated with an Ente object (file, collection or + * entity) using the object's key. + * + * This is a variant of {@link encryptBlob} tailored for encrypting any + * arbitrary metadata associated with an Ente object. For example, it is used + * for encrypting the various metadata fields associated with a file, using that + * file's key. + * + * Instead of raw bytes, it takes as input an arbitrary JSON object which it + * encodes into a string, and encrypts that. + * + * Use {@link decryptMetadataJSON} to decrypt the result. + * + * @param jsonValue The JSON value to encrypt. This can be an arbitrary JSON + * value, but since TypeScript currently doesn't have a native JSON type, it is + * typed as {@link unknown}. + * + * @param key The encryption key. + */ +export const encryptMetadataJSON = ( + jsonValue: unknown, + key: BytesOrB64, +): Promise => + inWorker() + ? ei._encryptMetadataJSON(jsonValue, key) + : sharedWorker().then((w) => w.encryptMetadataJSON(jsonValue, key)); + /** * Encrypt the given data using chunked streaming encryption, but process all * the chunks in one go. */ -export const encryptStreamBytes = async (data: Uint8Array, key: BytesOrB64) => +export const encryptStreamBytes = async ( + data: Uint8Array, + key: BytesOrB64, +): Promise => inWorker() ? ei._encryptStreamBytes(data, key) : sharedWorker().then((w) => w.encryptStreamBytes(data, key)); @@ -270,36 +316,14 @@ export const encryptStreamChunk = async ( w.encryptStreamChunk(data, state, isFinalChunk), ); -/** - * Encrypt the JSON metadata associated with an Ente object (file, collection or - * entity) using the object's key. - * - * This is a variant of {@link encryptBlob} tailored for encrypting any - * arbitrary metadata associated with an Ente object. For example, it is used - * for encrypting the various metadata fields associated with a file, using that - * file's key. - * - * Instead of raw bytes, it takes as input an arbitrary JSON object which it - * encodes into a string, and encrypts that. - * - * Use {@link decryptMetadataJSON} to decrypt the result. - * - * @param jsonValue The JSON value to encrypt. This can be an arbitrary JSON - * value, but since TypeScript currently doesn't have a native JSON type, it is - * typed as {@link unknown}. - * - * @param key The encryption key. - */ -export const encryptMetadataJSON = (jsonValue: unknown, key: BytesOrB64) => - inWorker() - ? ei._encryptMetadataJSON(jsonValue, key) - : sharedWorker().then((w) => w.encryptMetadataJSON(jsonValue, key)); - /** * Decrypt a box encrypted using {@link encryptBox} and returns the decrypted * bytes as a base64 string. */ -export const decryptBox = (box: EncryptedBox, key: BytesOrB64) => +export const decryptBox = ( + box: EncryptedBox, + key: BytesOrB64, +): Promise => inWorker() ? ei._decryptBox(box, key) : sharedWorker().then((w) => w.decryptBox(box, key)); @@ -318,7 +342,10 @@ export const decryptBoxBytes = (box: EncryptedBox, key: BytesOrB64) => * "JavaScript string", specifically a UTF-8 string. That is, after decryption * we obtain raw bytes, which we interpret as a UTF-8 string. */ -export const decryptBoxUTF8 = (box: EncryptedBox, key: BytesOrB64) => +export const decryptBoxUTF8 = ( + box: EncryptedBox, + key: BytesOrB64, +): Promise => inWorker() ? ei._decryptBoxUTF8(box, key) : sharedWorker().then((w) => w.decryptBoxUTF8(box, key)); @@ -327,7 +354,10 @@ export const decryptBoxUTF8 = (box: EncryptedBox, key: BytesOrB64) => * Decrypt a blob encrypted using either {@link encryptBlobBytes} or * {@link encryptBlob} and return it as a base64 encoded string. */ -export const decryptBlob = (blob: EncryptedBlob, key: BytesOrB64) => +export const decryptBlob = ( + blob: EncryptedBlob, + key: BytesOrB64, +): Promise => inWorker() ? ei._decryptBlob(blob, key) : sharedWorker().then((w) => w.decryptBlob(blob, key)); @@ -380,7 +410,10 @@ export const decryptStreamChunk = async ( * @returns The decrypted JSON value. Since TypeScript does not have a native * JSON type, we need to return it as an `unknown`. */ -export const decryptMetadataJSON = (blob: EncryptedBlob, key: BytesOrB64) => +export const decryptMetadataJSON = ( + blob: EncryptedBlob, + key: BytesOrB64, +): Promise => inWorker() ? ei._decryptMetadataJSON(blob, key) : sharedWorker().then((w) => w.decryptMetadataJSON(blob, key)); @@ -388,7 +421,10 @@ export const decryptMetadataJSON = (blob: EncryptedBlob, key: BytesOrB64) => /** * Generate a new public/private keypair. */ -export const generateKeyPair = async () => +export const generateKeyPair = (): Promise<{ + publicKey: string; + privateKey: string; +}> => inWorker() ? ei._generateKeyPair() : sharedWorker().then((w) => w.generateKeyPair()); @@ -396,7 +432,7 @@ export const generateKeyPair = async () => /** * Public key encryption. */ -export const boxSeal = async (data: string, publicKey: string) => +export const boxSeal = (data: string, publicKey: string): Promise => inWorker() ? ei._boxSeal(data, publicKey) : sharedWorker().then((w) => w.boxSeal(data, publicKey)); @@ -404,11 +440,11 @@ export const boxSeal = async (data: string, publicKey: string) => /** * Decrypt the result of {@link boxSeal}. */ -export const boxSealOpen = async ( +export const boxSealOpen = ( encryptedData: string, publicKey: string, secretKey: string, -) => +): Promise => inWorker() ? ei._boxSealOpen(encryptedData, publicKey, secretKey) : sharedWorker().then((w) => @@ -421,7 +457,7 @@ export const boxSealOpen = async ( * The returned salt is suitable for use with {@link deriveKey}, and also as a * general 128-bit salt. */ -export const generateDeriveKeySalt = async () => +export const generateDeriveKeySalt = (): Promise => inWorker() ? ei._generateDeriveKeySalt() : sharedWorker().then((w) => w.generateDeriveKeySalt()); @@ -429,12 +465,12 @@ export const generateDeriveKeySalt = async () => /** * Derive a key by hashing the given {@link passphrase} using Argon 2id. */ -export const deriveKey = async ( +export const deriveKey = ( passphrase: string, salt: string, opsLimit: number, memLimit: number, -) => +): Promise => inWorker() ? ei._deriveKey(passphrase, salt, opsLimit, memLimit) : sharedWorker().then((w) => @@ -444,9 +480,7 @@ export const deriveKey = async ( /** * Derive a sensitive key from the given {@link passphrase}. */ -export const deriveSensitiveKey = async ( - passphrase: string, -): Promise => +export const deriveSensitiveKey = (passphrase: string): Promise => inWorker() ? ei._deriveSensitiveKey(passphrase) : sharedWorker().then((w) => w.deriveSensitiveKey(passphrase)); @@ -454,7 +488,7 @@ export const deriveSensitiveKey = async ( /** * Derive an key suitable for interactive use from the given {@link passphrase}. */ -export const deriveInteractiveKey = async ( +export const deriveInteractiveKey = ( passphrase: string, ): Promise => inWorker() From d858fdef751e42183444cd616082e60e24939adf Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 15:24:48 +0530 Subject: [PATCH 246/316] More annotation --- web/packages/base/crypto/index.ts | 30 ++++++++++++++++----------- web/packages/base/crypto/libsodium.ts | 10 ++++----- 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index 98f577eaa7..a43c7673d7 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -111,7 +111,7 @@ let _comlinkWorker: ComlinkWorker | undefined; /** * Lazily created, cached, instance of a CryptoWorker web worker. */ -export const sharedCryptoWorker = async () => +export const sharedCryptoWorker = () => (_comlinkWorker ??= createComlinkCryptoWorker()).remote; /** A shorter alias of {@link sharedCryptoWorker} for use within this file. */ @@ -144,7 +144,7 @@ export const toB64URLSafe = (bytes: Uint8Array): Promise => /** * Convert a base64 string to bytes ({@link Uint8Array}). */ -export const fromB64 = (b64String: string) => +export const fromB64 = (b64String: string): Promise => inWorker() ? ei._fromB64(b64String) : sharedWorker().then((w) => w.fromB64(b64String)); @@ -160,7 +160,7 @@ export const toHex = (b64String: string): Promise => /** * Convert a hex string to the base64 representation of the underlying bytes. */ -export const fromHex = (hexString: string) => +export const fromHex = (hexString: string): Promise => inWorker() ? ei._fromHex(hexString) : sharedWorker().then((w) => w.fromHex(hexString)); @@ -286,7 +286,7 @@ export const encryptMetadataJSON = ( * Encrypt the given data using chunked streaming encryption, but process all * the chunks in one go. */ -export const encryptStreamBytes = async ( +export const encryptStreamBytes = ( data: Uint8Array, key: BytesOrB64, ): Promise => @@ -305,11 +305,11 @@ export const initChunkEncryption = async (key: BytesOrB64) => /** * Encrypt a chunk as part of a chunked streaming encryption. */ -export const encryptStreamChunk = async ( +export const encryptStreamChunk = ( data: Uint8Array, state: StateAddress, isFinalChunk: boolean, -) => +): Promise => inWorker() ? ei._encryptStreamChunk(data, state, isFinalChunk) : sharedWorker().then((w) => @@ -332,7 +332,10 @@ export const decryptBox = ( * Variant of {@link decryptBox} that returns the decrypted bytes as it is * (without encoding them to base64). */ -export const decryptBoxBytes = (box: EncryptedBox, key: BytesOrB64) => +export const decryptBoxBytes = ( + box: EncryptedBox, + key: BytesOrB64, +): Promise => inWorker() ? ei._decryptBoxBytes(box, key) : sharedWorker().then((w) => w.decryptBoxBytes(box, key)); @@ -366,7 +369,10 @@ export const decryptBlob = ( * A variant of {@link decryptBlobBytes} that returns the result bytes directly * (instead of encoding them as a base64 string). */ -export const decryptBlobBytes = (blob: EncryptedBlob, key: BytesOrB64) => +export const decryptBlobBytes = ( + blob: EncryptedBlob, + key: BytesOrB64, +): Promise => inWorker() ? ei._decryptBlobBytes(blob, key) : sharedWorker().then((w) => w.decryptBlobBytes(blob, key)); @@ -374,10 +380,10 @@ export const decryptBlobBytes = (blob: EncryptedBlob, key: BytesOrB64) => /** * Decrypt the result of {@link encryptStreamBytes}. */ -export const decryptStreamBytes = async ( +export const decryptStreamBytes = ( file: EncryptedFile, key: BytesOrB64, -) => +): Promise => inWorker() ? ei._decryptStreamBytes(file, key) : sharedWorker().then((w) => w.decryptStreamBytes(file, key)); @@ -396,10 +402,10 @@ export const initChunkDecryption = async (header: string, key: BytesOrB64) => * * This function is used in tandem with {@link initChunkDecryption}. */ -export const decryptStreamChunk = async ( +export const decryptStreamChunk = ( data: Uint8Array, state: StateAddress, -) => +): Promise => inWorker() ? ei._decryptStreamChunk(data, state) : sharedWorker().then((w) => w.decryptStreamChunk(data, state)); diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index 601bbeebd7..f2305398f3 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -36,7 +36,7 @@ export const toB64 = async (input: Uint8Array) => { * * This is the converse of {@link toBase64}. */ -export const fromB64 = async (input: string) => { +export const fromB64 = async (input: string): Promise => { await sodium.ready; return sodium.from_base64(input, sodium.base64_variants.ORIGINAL); }; @@ -117,7 +117,7 @@ export const toHex = async (input: string) => { * * This is the inverse of {@link toHex}. */ -export const fromHex = async (input: string) => { +export const fromHex = async (input: string): Promise => { await sodium.ready; return await toB64(sodium.from_hex(input)); }; @@ -478,7 +478,7 @@ export const encryptStreamChunk = async ( data: Uint8Array, pushState: sodium.StateAddress, isFinalChunk: boolean, -) => { +): Promise => { await sodium.ready; const tag = isFinalChunk ? sodium.crypto_secretstream_xchacha20poly1305_TAG_FINAL @@ -577,7 +577,7 @@ export const decryptMetadataJSON = async ( export const decryptStreamBytes = async ( { encryptedData, decryptionHeader }: EncryptedFile, key: BytesOrB64, -) => { +): Promise => { await sodium.ready; const pullState = sodium.crypto_secretstream_xchacha20poly1305_init_pull( await fromB64(decryptionHeader), @@ -647,7 +647,7 @@ export const initChunkDecryption = async ( export const decryptStreamChunk = async ( data: Uint8Array, pullState: StateAddress, -) => { +): Promise => { await sodium.ready; const pullResult = sodium.crypto_secretstream_xchacha20poly1305_pull( pullState, From 4be5ac878078213b106c7c7d3a711c70352baeee Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 15:49:37 +0530 Subject: [PATCH 247/316] types --- web/packages/base/crypto/index.ts | 17 +++++++---- web/packages/base/crypto/libsodium.ts | 27 +++++++++-------- web/packages/base/crypto/types.ts | 42 +++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 19 deletions(-) diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index a43c7673d7..0862454d19 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -88,7 +88,6 @@ * dealing with them. */ import { ComlinkWorker } from "ente-base/worker/comlink-worker"; -import { type StateAddress } from "libsodium-wrappers-sumo"; import { inWorker } from "../env"; import * as ei from "./ente-impl"; import type { @@ -100,6 +99,9 @@ import type { EncryptedBox, EncryptedBoxB64, EncryptedFile, + InitChunkDecryptionResult, + InitChunkEncryptionResult, + SodiumStateAddress, } from "./types"; import type { CryptoWorker } from "./worker"; @@ -297,7 +299,9 @@ export const encryptStreamBytes = ( /** * Prepare for chunked streaming encryption using {@link encryptStreamChunk}. */ -export const initChunkEncryption = async (key: BytesOrB64) => +export const initChunkEncryption = ( + key: BytesOrB64, +): Promise => inWorker() ? ei._initChunkEncryption(key) : sharedWorker().then((w) => w.initChunkEncryption(key)); @@ -307,7 +311,7 @@ export const initChunkEncryption = async (key: BytesOrB64) => */ export const encryptStreamChunk = ( data: Uint8Array, - state: StateAddress, + state: SodiumStateAddress, isFinalChunk: boolean, ): Promise => inWorker() @@ -392,7 +396,10 @@ export const decryptStreamBytes = ( * Prepare to decrypt the encrypted result produced using {@link initChunkEncryption} and * {@link encryptStreamChunk}. */ -export const initChunkDecryption = async (header: string, key: BytesOrB64) => +export const initChunkDecryption = ( + header: string, + key: BytesOrB64, +): Promise => inWorker() ? ei._initChunkDecryption(header, key) : sharedWorker().then((w) => w.initChunkDecryption(header, key)); @@ -404,7 +411,7 @@ export const initChunkDecryption = async (header: string, key: BytesOrB64) => */ export const decryptStreamChunk = ( data: Uint8Array, - state: StateAddress, + state: SodiumStateAddress, ): Promise => inWorker() ? ei._decryptStreamChunk(data, state) diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index f2305398f3..77b1e517c2 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -9,7 +9,7 @@ * To see where this code fits, see [Note: Crypto code hierarchy]. */ import { mergeUint8Arrays } from "ente-utils/array"; -import sodium, { type StateAddress } from "libsodium-wrappers-sumo"; +import sodium from "libsodium-wrappers-sumo"; import type { BytesOrB64, DerivedKey, @@ -19,6 +19,9 @@ import type { EncryptedBox, EncryptedBoxB64, EncryptedFile, + InitChunkDecryptionResult, + InitChunkEncryptionResult, + SodiumStateAddress, } from "./types"; /** @@ -448,7 +451,9 @@ export const encryptStreamBytes = async ( * to subsequent calls to {@link encryptStreamChunk} along with the chunks's * contents. */ -export const initChunkEncryption = async (key: BytesOrB64) => { +export const initChunkEncryption = async ( + key: BytesOrB64, +): Promise => { await sodium.ready; const keyBytes = await bytes(key); const { state, header } = @@ -476,7 +481,7 @@ export const initChunkEncryption = async (key: BytesOrB64) => { */ export const encryptStreamChunk = async ( data: Uint8Array, - pushState: sodium.StateAddress, + pushState: SodiumStateAddress, isFinalChunk: boolean, ): Promise => { await sodium.ready; @@ -623,7 +628,7 @@ export const decryptStreamBytes = async ( export const initChunkDecryption = async ( decryptionHeader: string, key: BytesOrB64, -) => { +): Promise => { await sodium.ready; const pullState = sodium.crypto_secretstream_xchacha20poly1305_init_pull( await fromB64(decryptionHeader), @@ -646,7 +651,7 @@ export const initChunkDecryption = async ( */ export const decryptStreamChunk = async ( data: Uint8Array, - pullState: StateAddress, + pullState: SodiumStateAddress, ): Promise => { await sodium.ready; const pullResult = sodium.crypto_secretstream_xchacha20poly1305_pull( @@ -679,12 +684,6 @@ export async function generateKeyAndEncryptToB64(data: string) { return await encryptToB64(data, await toB64(key)); } -/** - * An opaque object meant to be threaded through {@link chunkHashInit}, - * {@link chunkHashUpdate} and {@link chunkHashFinal}. - */ -export type ChunkHashState = sodium.StateAddress; - /** * Initialize and return new state that can be used to hash the chunks of data * in a streaming manner. @@ -701,7 +700,7 @@ export type ChunkHashState = sodium.StateAddress; * (along with the data to hash) to {@link chunkHashUpdate}, and the final hash * obtained using {@link chunkHashFinal}. */ -export const chunkHashInit = async (): Promise => { +export const chunkHashInit = async (): Promise => { await sodium.ready; return sodium.crypto_generichash_init( null, @@ -719,7 +718,7 @@ export const chunkHashInit = async (): Promise => { * @param chunk The data (bytes) to hash. */ export const chunkHashUpdate = async ( - hashState: ChunkHashState, + hashState: SodiumStateAddress, chunk: Uint8Array, ) => { await sodium.ready; @@ -736,7 +735,7 @@ export const chunkHashUpdate = async ( * * @returns The hash of all the chunks (as a base64 string). */ -export const chunkHashFinal = async (hashState: ChunkHashState) => { +export const chunkHashFinal = async (hashState: SodiumStateAddress) => { await sodium.ready; const hash = sodium.crypto_generichash_final( hashState, diff --git a/web/packages/base/crypto/types.ts b/web/packages/base/crypto/types.ts index 64b29248b5..f884c1fc71 100644 --- a/web/packages/base/crypto/types.ts +++ b/web/packages/base/crypto/types.ts @@ -1,3 +1,11 @@ +import { type StateAddress } from "libsodium-wrappers-sumo"; + +/** + * An opaque object meant to be threaded through various functions that deal + * with resumable chunk based processing. + */ +export type SodiumStateAddress = StateAddress; + /** * Data provided either as bytes ({@link Uint8Array}) or their base64 string * representation. @@ -130,6 +138,40 @@ export interface EncryptedFile { decryptionHeader: string; } +/** + * An object returned by the init function of chunked encryption routines. + */ +export interface InitChunkEncryptionResult { + /** + * A base64 string containing the decryption header. + * + * While the exact contents of the header are libsodium's internal details, + * it effectively contains a random nonce generated by libsodium. It does + * not need to be secret, but it is required to decrypt the data. + */ + decryptionHeader: string; + /** + * An opaque value that refers to the internal state used by the resumable + * calls in the encryption sequence. + */ + pushState: SodiumStateAddress; +} + +/** + * An object returned by the init function of chunked decryption routines. + */ +export interface InitChunkDecryptionResult { + /** + * An opaque value that refers to the internal state used by the resumable + * calls in the decryption sequence. + */ + pullState: SodiumStateAddress; + /** + * The expected size of each chunk. + */ + decryptionChunkSize: number; +} + /** * A key derived from a user provided passphrase, and the various attributes * that were used during the key derivation. From 3dffebf7333334971f4672afa3937c4e7ff7265a Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 15:55:31 +0530 Subject: [PATCH 248/316] Same place both --- web/packages/base/session.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/web/packages/base/session.ts b/web/packages/base/session.ts index d895068d52..9b2cc1e3c5 100644 --- a/web/packages/base/session.ts +++ b/web/packages/base/session.ts @@ -1,6 +1,5 @@ import { z } from "zod/v4"; -import { decryptBoxBytes } from "./crypto"; -import { toB64 } from "./crypto/libsodium"; +import { decryptBoxBytes, toB64 } from "./crypto"; /** * Remove all data stored in session storage (data tied to the browser tab). From a5fe20b0e988b9eedb40dc543e6f65f36fd32d90 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 16:11:50 +0530 Subject: [PATCH 249/316] Rename --- web/packages/base/crypto/ente-impl.ts | 1 + web/packages/base/crypto/index.ts | 15 +++++++++++++++ web/packages/base/crypto/libsodium.ts | 27 ++++++++++++++++++++++++--- web/packages/base/crypto/worker.ts | 10 +--------- 4 files changed, 41 insertions(+), 12 deletions(-) diff --git a/web/packages/base/crypto/ente-impl.ts b/web/packages/base/crypto/ente-impl.ts index 0a909254b1..4498208df8 100644 --- a/web/packages/base/crypto/ente-impl.ts +++ b/web/packages/base/crypto/ente-impl.ts @@ -39,3 +39,4 @@ export const _generateDeriveKeySalt = libsodium.generateDeriveKeySalt; export const _deriveKey = libsodium.deriveKey; export const _deriveSensitiveKey = libsodium.deriveSensitiveKey; export const _deriveInteractiveKey = libsodium.deriveInteractiveKey; +export const _deriveSubKey = libsodium.deriveSubKey; diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index 0862454d19..2fb20e5a01 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -507,3 +507,18 @@ export const deriveInteractiveKey = ( inWorker() ? ei._deriveInteractiveKey(passphrase) : sharedWorker().then((w) => w.deriveInteractiveKey(passphrase)); + +/** + * Derive a subkey of the given {@link key} using the specified parameters. + */ +export const deriveSubKey = async ( + key: string, + subKeyLength: number, + subKeyID: number, + context: string, +) => + inWorker() + ? ei._deriveSubKey(key, subKeyLength, subKeyID, context) + : sharedWorker().then((w) => + w.deriveSubKey(key, subKeyLength, subKeyID, context), + ); diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index 77b1e517c2..45f511c9f8 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -924,12 +924,33 @@ export const deriveInteractiveKey = async ( return { key, salt, opsLimit, memLimit }; }; -export async function generateSubKey( +/** + * Derive a {@link subKeyID}-th subkey of length {@link subKeyLength} bytes + * using the given {@link key} and the {@link context}. + * + * Multiple secret subkeys can be (deterministically) derived from a single + * high-entropy key. Knowledge of the derived key does not impact the security + * of the key from which it was derived, or of its potential sibling subkeys. + * + * See: https://doc.libsodium.org/key_derivation + * + * @param key The key whose subkey we are deriving. In the context of key + * derivation, this is usually referred to as the "master key", but we try to + * deemphasize that nomenclature to avoid confusion with the user's master key. + * + * @param subKeyLength The length of the required subkey. + * + * @param subKeyID An identifier of the subkey. + * + * @param context A short but otherwise arbitrary string (non-secret) used to + * separate domains in which the subkeys are going to be used. + */ +export const deriveSubKey = async ( key: string, subKeyLength: number, subKeyID: number, context: string, -) { +) => { await sodium.ready; return await toB64( sodium.crypto_kdf_derive_from_key( @@ -939,4 +960,4 @@ export async function generateSubKey( await fromB64(key), ), ); -} +}; diff --git a/web/packages/base/crypto/worker.ts b/web/packages/base/crypto/worker.ts index f1c46f7571..99b890539d 100644 --- a/web/packages/base/crypto/worker.ts +++ b/web/packages/base/crypto/worker.ts @@ -47,21 +47,13 @@ export class CryptoWorker { deriveKey = ei._deriveKey; deriveSensitiveKey = ei._deriveSensitiveKey; deriveInteractiveKey = ei._deriveInteractiveKey; + deriveSubKey = ei._deriveSubKey; // TODO: -- AUDIT BELOW -- async generateKeyAndEncryptToB64(data: string) { return libsodium.generateKeyAndEncryptToB64(data); } - - async generateSubKey( - key: string, - subKeyLength: number, - subKeyID: number, - context: string, - ) { - return libsodium.generateSubKey(key, subKeyLength, subKeyID, context); - } } expose(CryptoWorker); From c88a43d2dcffd77668862ca29d10159ab295fdef Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 16:17:42 +0530 Subject: [PATCH 250/316] Use --- web/packages/base/crypto/libsodium.ts | 13 ++++++++----- web/packages/shared/crypto/helpers.ts | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index 45f511c9f8..d3a6b8df2e 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -925,8 +925,9 @@ export const deriveInteractiveKey = async ( }; /** - * Derive a {@link subKeyID}-th subkey of length {@link subKeyLength} bytes - * using the given {@link key} and the {@link context}. + * Derive a {@link subKeyID}-th subkey of length {@link subKeyLength} bytes by + * applying a KDF (Key Derivation Function) for the given {@link key} and the + * {@link context}. * * Multiple secret subkeys can be (deterministically) derived from a single * high-entropy key. Knowledge of the derived key does not impact the security @@ -934,8 +935,8 @@ export const deriveInteractiveKey = async ( * * See: https://doc.libsodium.org/key_derivation * - * @param key The key whose subkey we are deriving. In the context of key - * derivation, this is usually referred to as the "master key", but we try to + * @param key The key (base64) whose subkey we are deriving. In the context of + * key derivation, this is usually referred to as the "master key", but we * deemphasize that nomenclature to avoid confusion with the user's master key. * * @param subKeyLength The length of the required subkey. @@ -944,6 +945,8 @@ export const deriveInteractiveKey = async ( * * @param context A short but otherwise arbitrary string (non-secret) used to * separate domains in which the subkeys are going to be used. + * + * @returns The subkey as a base64 string. */ export const deriveSubKey = async ( key: string, @@ -952,7 +955,7 @@ export const deriveSubKey = async ( context: string, ) => { await sodium.ready; - return await toB64( + return toB64( sodium.crypto_kdf_derive_from_key( subKeyLength, subKeyID, diff --git a/web/packages/shared/crypto/helpers.ts b/web/packages/shared/crypto/helpers.ts index 02f4a66317..a3d4f2d045 100644 --- a/web/packages/shared/crypto/helpers.ts +++ b/web/packages/shared/crypto/helpers.ts @@ -69,7 +69,7 @@ export async function generateAndSaveIntermediateKeyAttributes( export const generateLoginSubKey = async (kek: string) => { const cryptoWorker = await sharedCryptoWorker(); - const kekSubKeyString = await cryptoWorker.generateSubKey( + const kekSubKeyString = await cryptoWorker.deriveSubKey( kek, LOGIN_SUB_KEY_LENGTH, LOGIN_SUB_KEY_ID, From f7dcaffc32d184e23c8e1341e1a81658e7e5914b Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 16:26:40 +0530 Subject: [PATCH 251/316] Move --- .../accounts/pages/change-password.tsx | 2 +- web/packages/accounts/pages/credentials.tsx | 2 +- web/packages/accounts/services/srp.ts | 24 ++++++++++++++++++- web/packages/shared/crypto/helpers.ts | 21 ---------------- 4 files changed, 25 insertions(+), 24 deletions(-) diff --git a/web/packages/accounts/pages/change-password.tsx b/web/packages/accounts/pages/change-password.tsx index a74aa31422..871b800fc6 100644 --- a/web/packages/accounts/pages/change-password.tsx +++ b/web/packages/accounts/pages/change-password.tsx @@ -10,6 +10,7 @@ import { appHomeRoute, stashRedirect } from "ente-accounts/services/redirect"; import { convertBase64ToBuffer, convertBufferToBase64, + generateLoginSubKey, generateSRPClient, generateSRPSetupAttributes, } from "ente-accounts/services/srp"; @@ -28,7 +29,6 @@ import { sharedCryptoWorker } from "ente-base/crypto"; import type { DerivedKey } from "ente-base/crypto/types"; import { generateAndSaveIntermediateKeyAttributes, - generateLoginSubKey, saveKeyInSessionStore, } from "ente-shared/crypto/helpers"; import { getData, setData } from "ente-shared/storage/localStorage"; diff --git a/web/packages/accounts/pages/credentials.tsx b/web/packages/accounts/pages/credentials.tsx index 0e8820512f..e281293f4f 100644 --- a/web/packages/accounts/pages/credentials.tsx +++ b/web/packages/accounts/pages/credentials.tsx @@ -23,6 +23,7 @@ import { import { checkSessionValidity } from "ente-accounts/services/session"; import { configureSRP, + generateLoginSubKey, generateSRPSetupAttributes, loginViaSRP, } from "ente-accounts/services/srp"; @@ -39,7 +40,6 @@ import log from "ente-base/log"; import { decryptAndStoreToken, generateAndSaveIntermediateKeyAttributes, - generateLoginSubKey, saveKeyInSessionStore, } from "ente-shared/crypto/helpers"; import { CustomError } from "ente-shared/error"; diff --git a/web/packages/accounts/services/srp.ts b/web/packages/accounts/services/srp.ts index a41035fc0c..db6ab78477 100644 --- a/web/packages/accounts/services/srp.ts +++ b/web/packages/accounts/services/srp.ts @@ -1,7 +1,6 @@ import type { KeyAttributes } from "ente-accounts/services/user"; import { sharedCryptoWorker } from "ente-base/crypto"; import log from "ente-base/log"; -import { generateLoginSubKey } from "ente-shared/crypto/helpers"; import { getToken } from "ente-shared/storage/localStorage/helpers"; import { SRP, SrpClient } from "fast-srp-hap"; import { v4 as uuidv4 } from "uuid"; @@ -17,6 +16,29 @@ import type { UserVerificationResponse } from "./user"; const SRP_PARAMS = SRP.params["4096"]; +const LOGIN_SUB_KEY_LENGTH = 32; +const LOGIN_SUB_KEY_ID = 1; +const LOGIN_SUB_KEY_CONTEXT = "loginctx"; +const LOGIN_SUB_KEY_BYTE_LENGTH = 16; + +export const generateLoginSubKey = async (kek: string) => { + const cryptoWorker = await sharedCryptoWorker(); + const kekSubKeyString = await cryptoWorker.deriveSubKey( + kek, + LOGIN_SUB_KEY_LENGTH, + LOGIN_SUB_KEY_ID, + LOGIN_SUB_KEY_CONTEXT, + ); + const kekSubKey = await cryptoWorker.fromB64(kekSubKeyString); + + // use first 16 bytes of generated kekSubKey as loginSubKey + const loginSubKey = await cryptoWorker.toB64( + kekSubKey.slice(0, LOGIN_SUB_KEY_BYTE_LENGTH), + ); + + return loginSubKey; +}; + export const configureSRP = async ({ srpSalt, srpUserID, diff --git a/web/packages/shared/crypto/helpers.ts b/web/packages/shared/crypto/helpers.ts index a3d4f2d045..5136903e04 100644 --- a/web/packages/shared/crypto/helpers.ts +++ b/web/packages/shared/crypto/helpers.ts @@ -4,10 +4,6 @@ import { masterKeyFromSession } from "ente-base/session"; import { getData, setData, setLSUser } from "ente-shared/storage/localStorage"; import { type SessionKey, setKey } from "ente-shared/storage/sessionStorage"; -const LOGIN_SUB_KEY_LENGTH = 32; -const LOGIN_SUB_KEY_ID = 1; -const LOGIN_SUB_KEY_CONTEXT = "loginctx"; -const LOGIN_SUB_KEY_BYTE_LENGTH = 16; export async function decryptAndStoreToken( keyAttributes: KeyAttributes, @@ -67,23 +63,6 @@ export async function generateAndSaveIntermediateKeyAttributes( return intermediateKeyAttributes; } -export const generateLoginSubKey = async (kek: string) => { - const cryptoWorker = await sharedCryptoWorker(); - const kekSubKeyString = await cryptoWorker.deriveSubKey( - kek, - LOGIN_SUB_KEY_LENGTH, - LOGIN_SUB_KEY_ID, - LOGIN_SUB_KEY_CONTEXT, - ); - const kekSubKey = await cryptoWorker.fromB64(kekSubKeyString); - - // use first 16 bytes of generated kekSubKey as loginSubKey - const loginSubKey = await cryptoWorker.toB64( - kekSubKey.slice(0, LOGIN_SUB_KEY_BYTE_LENGTH), - ); - - return loginSubKey; -}; export const saveKeyInSessionStore = async ( keyType: SessionKey, From d62865f9e56397d4fe67c1fdfb7d7ac9d8e3f035 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 16:33:04 +0530 Subject: [PATCH 252/316] Inline --- .../accounts/pages/change-password.tsx | 4 +-- web/packages/accounts/pages/credentials.tsx | 4 +-- web/packages/accounts/services/srp.ts | 35 ++++++++++--------- web/packages/shared/crypto/helpers.ts | 2 -- 4 files changed, 22 insertions(+), 23 deletions(-) diff --git a/web/packages/accounts/pages/change-password.tsx b/web/packages/accounts/pages/change-password.tsx index 871b800fc6..d05da4a044 100644 --- a/web/packages/accounts/pages/change-password.tsx +++ b/web/packages/accounts/pages/change-password.tsx @@ -10,7 +10,7 @@ import { appHomeRoute, stashRedirect } from "ente-accounts/services/redirect"; import { convertBase64ToBuffer, convertBufferToBase64, - generateLoginSubKey, + deriveSRPPassword, generateSRPClient, generateSRPSetupAttributes, } from "ente-accounts/services/srp"; @@ -78,7 +78,7 @@ const Page: React.FC = () => { memLimit: kek.memLimit, }; - const loginSubKey = await generateLoginSubKey(kek.key); + const loginSubKey = await deriveSRPPassword(kek.key); const { srpUserID, srpSalt, srpVerifier } = await generateSRPSetupAttributes(loginSubKey); diff --git a/web/packages/accounts/pages/credentials.tsx b/web/packages/accounts/pages/credentials.tsx index e281293f4f..2dc62a5b37 100644 --- a/web/packages/accounts/pages/credentials.tsx +++ b/web/packages/accounts/pages/credentials.tsx @@ -23,7 +23,7 @@ import { import { checkSessionValidity } from "ente-accounts/services/session"; import { configureSRP, - generateLoginSubKey, + deriveSRPPassword, generateSRPSetupAttributes, loginViaSRP, } from "ente-accounts/services/srp"; @@ -292,7 +292,7 @@ const Page: React.FC = () => { } log.debug(() => `userSRPSetupPending ${!srpAttributes}`); if (!srpAttributes) { - const loginSubKey = await generateLoginSubKey(kek); + const loginSubKey = await deriveSRPPassword(kek); const srpSetupAttributes = await generateSRPSetupAttributes(loginSubKey); await configureSRP(srpSetupAttributes); diff --git a/web/packages/accounts/services/srp.ts b/web/packages/accounts/services/srp.ts index db6ab78477..32f2ad2d71 100644 --- a/web/packages/accounts/services/srp.ts +++ b/web/packages/accounts/services/srp.ts @@ -16,27 +16,28 @@ import type { UserVerificationResponse } from "./user"; const SRP_PARAMS = SRP.params["4096"]; -const LOGIN_SUB_KEY_LENGTH = 32; -const LOGIN_SUB_KEY_ID = 1; -const LOGIN_SUB_KEY_CONTEXT = "loginctx"; -const LOGIN_SUB_KEY_BYTE_LENGTH = 16; - -export const generateLoginSubKey = async (kek: string) => { +/** + * Derive a "password" (which is really an arbitrary binary value, not human + * generated) for use as the SRP user password by applying a deterministic KDF + * (Key Derivation Function) to the provided {@link kek}. + * + * @param kek The user's kek (key encryption key) as a base64 string. + * + * @returns A string that can be used as the SRP user password. + */ +export const deriveSRPPassword = async (kek: string) => { const cryptoWorker = await sharedCryptoWorker(); const kekSubKeyString = await cryptoWorker.deriveSubKey( kek, - LOGIN_SUB_KEY_LENGTH, - LOGIN_SUB_KEY_ID, - LOGIN_SUB_KEY_CONTEXT, + 32, + 1, + "loginctx", ); const kekSubKey = await cryptoWorker.fromB64(kekSubKeyString); - // use first 16 bytes of generated kekSubKey as loginSubKey - const loginSubKey = await cryptoWorker.toB64( - kekSubKey.slice(0, LOGIN_SUB_KEY_BYTE_LENGTH), - ); - - return loginSubKey; + // Use the first 16 bytes (128 bits) of the KEK's KDF subkey as the SRP + // password (instead of entire 32 bytes). + return await cryptoWorker.toB64(kekSubKey.slice(0, 16)); }; export const configureSRP = async ({ @@ -109,7 +110,7 @@ export const loginViaSRP = async ( kek: string, ): Promise => { try { - const loginSubKey = await generateLoginSubKey(kek); + const loginSubKey = await deriveSRPPassword(kek); const srpClient = await generateSRPClient( srpAttributes.srpSalt, srpAttributes.srpUserID, @@ -214,7 +215,7 @@ export async function generateKeyAndSRPAttributes( nonce: secretKeyDecryptionNonce, } = await cryptoWorker.encryptBox(keyPair.privateKey, masterKey); - const loginSubKey = await generateLoginSubKey(kek.key); + const loginSubKey = await deriveSRPPassword(kek.key); const srpSetupAttributes = await generateSRPSetupAttributes(loginSubKey); diff --git a/web/packages/shared/crypto/helpers.ts b/web/packages/shared/crypto/helpers.ts index 5136903e04..a39596309a 100644 --- a/web/packages/shared/crypto/helpers.ts +++ b/web/packages/shared/crypto/helpers.ts @@ -4,7 +4,6 @@ import { masterKeyFromSession } from "ente-base/session"; import { getData, setData, setLSUser } from "ente-shared/storage/localStorage"; import { type SessionKey, setKey } from "ente-shared/storage/sessionStorage"; - export async function decryptAndStoreToken( keyAttributes: KeyAttributes, masterKey: string, @@ -63,7 +62,6 @@ export async function generateAndSaveIntermediateKeyAttributes( return intermediateKeyAttributes; } - export const saveKeyInSessionStore = async ( keyType: SessionKey, key: string, From bfe738c846299347dee3e8b3174ce99115378bab Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Thu, 5 Jun 2025 17:17:25 +0530 Subject: [PATCH 253/316] Fix duplicate memories decoding --- .../lib/services/memories_cache_service.dart | 53 ++++++++++--------- 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/mobile/lib/services/memories_cache_service.dart b/mobile/lib/services/memories_cache_service.dart index 7d6db009ca..f3d6eb9b59 100644 --- a/mobile/lib/services/memories_cache_service.dart +++ b/mobile/lib/services/memories_cache_service.dart @@ -50,6 +50,7 @@ class MemoriesCacheService { bool get isUpdatingMemories => _isUpdatingMemories; final _memoriesUpdateLock = Lock(); + final _memoriesGetLock = Lock(); MemoriesCacheService(this._prefs) { _logger.fine("MemoriesCacheService constructor"); @@ -143,37 +144,41 @@ class MemoriesCacheService { } Future> getMemories() async { + _logger.info("getMemories called"); if (!showAnyMemories) { _logger.info('Showing memories is disabled in settings, showing none'); return []; } - if (_cachedMemories != null && _cachedMemories!.isNotEmpty) { - return _cachedMemories!; - } - try { - if (!enableSmartMemories) { - await _calculateRegularFillers(); + return _memoriesGetLock.synchronized(() async { + if (_cachedMemories != null && _cachedMemories!.isNotEmpty) { + _logger.info("Found memories in memory cache"); return _cachedMemories!; } - _cachedMemories = await _getMemoriesFromCache(); - if (_cachedMemories == null || _cachedMemories!.isEmpty) { - _logger.warning( - "No memories found in cache, force updating cache. Possible severe caching issue", - ); - await updateCache(forced: true); - } else { - _logger.info("Found memories in cache"); + try { + if (!enableSmartMemories) { + await _calculateRegularFillers(); + return _cachedMemories!; + } + _cachedMemories = await _getMemoriesFromCache(); + if (_cachedMemories == null || _cachedMemories!.isEmpty) { + _logger.warning( + "No memories found in cache, force updating cache. Possible severe caching issue", + ); + await updateCache(forced: true); + } else { + _logger.info("Found memories in cache"); + } + if (_cachedMemories == null || _cachedMemories!.isEmpty) { + _logger + .severe("No memories found in (computed) cache, getting fillers"); + await _calculateRegularFillers(); + } + return _cachedMemories!; + } catch (e, s) { + _logger.severe("Error in getMemories", e, s); + return []; } - if (_cachedMemories == null || _cachedMemories!.isEmpty) { - _logger - .severe("No memories found in (computed) cache, getting fillers"); - await _calculateRegularFillers(); - } - return _cachedMemories!; - } catch (e, s) { - _logger.severe("Error in getMemories", e, s); - return []; - } + }); } Future _calculateRegularFillers() async { From 36928e4f3954665775867a6d2d505324fc4cc8d0 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Thu, 5 Jun 2025 17:24:33 +0530 Subject: [PATCH 254/316] memories decoding optimization --- mobile/lib/models/base_location.dart | 42 ++++--------------- .../lib/models/memories/memories_cache.dart | 10 +---- .../lib/services/memories_cache_service.dart | 40 +++++++++--------- .../lib/services/smart_memories_service.dart | 17 ++++++-- 4 files changed, 42 insertions(+), 67 deletions(-) diff --git a/mobile/lib/models/base_location.dart b/mobile/lib/models/base_location.dart index 7bdbb7eaec..d98152dad3 100644 --- a/mobile/lib/models/base_location.dart +++ b/mobile/lib/models/base_location.dart @@ -1,19 +1,18 @@ import "dart:convert"; -import "package:photos/models/file/file.dart"; import "package:photos/models/location/location.dart"; const baseRadius = 0.6; class BaseLocation { - final List files; + final List fileIDs; int? firstCreationTime; int? lastCreationTime; final Location location; final bool isCurrentBase; BaseLocation( - this.files, + this.fileIDs, this.location, this.isCurrentBase, { this.firstCreationTime, @@ -22,12 +21,9 @@ class BaseLocation { static List decodeJsonToList( String jsonString, - Map filesMap, ) { final jsonList = jsonDecode(jsonString) as List; - return jsonList - .map((json) => BaseLocation.fromJson(json, filesMap)) - .toList(); + return jsonList.map((json) => BaseLocation.fromJson(json)).toList(); } static String encodeListToJson(List baseLocations) { @@ -38,13 +34,9 @@ class BaseLocation { static BaseLocation fromJson( Map json, - Map filesMap, ) { return BaseLocation( - (json['fileIDs'] as List) - .where((uploadID) => filesMap[uploadID] != null) - .map((uploadID) => filesMap[uploadID]!) - .toList(), + (json['fileIDs'] as List).cast(), Location( latitude: json['location']['latitude'], longitude: json['location']['longitude'], @@ -57,10 +49,7 @@ class BaseLocation { Map toJson() { return { - 'fileIDs': files - .where((file) => file.uploadedFileID != null) - .map((file) => file.uploadedFileID!) - .toList(), + 'fileIDs': fileIDs, 'location': { 'latitude': location.latitude!, 'longitude': location.longitude!, @@ -71,32 +60,15 @@ class BaseLocation { }; } - int averageCreationTime() { - if (firstCreationTime != null && lastCreationTime != null) { - return (firstCreationTime! + lastCreationTime!) ~/ 2; - } - final List creationTimes = files - .where((file) => file.creationTime != null) - .map((file) => file.creationTime!) - .toList(); - if (creationTimes.length < 2) { - return creationTimes.isEmpty ? 0 : creationTimes.first; - } - creationTimes.sort(); - firstCreationTime ??= creationTimes.first; - lastCreationTime ??= creationTimes.last; - return (firstCreationTime! + lastCreationTime!) ~/ 2; - } - BaseLocation copyWith({ - List? files, + List? files, int? firstCreationTime, int? lastCreationTime, Location? location, bool? isCurrentBase, }) { return BaseLocation( - files ?? this.files, + files ?? fileIDs, location ?? this.location, isCurrentBase ?? this.isCurrentBase, firstCreationTime: firstCreationTime ?? this.firstCreationTime, diff --git a/mobile/lib/models/memories/memories_cache.dart b/mobile/lib/models/memories/memories_cache.dart index 8257224fe7..949107901d 100644 --- a/mobile/lib/models/memories/memories_cache.dart +++ b/mobile/lib/models/memories/memories_cache.dart @@ -2,7 +2,6 @@ import "dart:convert"; import "package:photos/models/base/id.dart"; import "package:photos/models/base_location.dart"; -import "package:photos/models/file/file.dart"; import "package:photos/models/location/location.dart"; import "package:photos/models/memories/clip_memory.dart"; import "package:photos/models/memories/people_memory.dart"; @@ -39,7 +38,6 @@ class MemoriesCache { factory MemoriesCache.fromJson( Map json, - Map filesMap, ) { return MemoriesCache( toShowMemories: ToShowMemory.decodeJsonToList(json['toShowMemories']), @@ -47,10 +45,7 @@ class MemoriesCache { clipShownLogs: ClipShownLog.decodeJsonToList(json['clipShownLogs']), tripsShownLogs: TripsShownLog.decodeJsonToList(json['tripsShownLogs']), baseLocations: json['baseLocations'] != null - ? BaseLocation.decodeJsonToList( - json['baseLocations'], - filesMap, - ) + ? BaseLocation.decodeJsonToList(json['baseLocations']) : [], ); } @@ -71,9 +66,8 @@ class MemoriesCache { static MemoriesCache decodeFromJsonString( String jsonString, - Map filesMap, ) { - return MemoriesCache.fromJson(jsonDecode(jsonString), filesMap); + return MemoriesCache.fromJson(jsonDecode(jsonString)); } } diff --git a/mobile/lib/services/memories_cache_service.dart b/mobile/lib/services/memories_cache_service.dart index f3d6eb9b59..4eed3fbba6 100644 --- a/mobile/lib/services/memories_cache_service.dart +++ b/mobile/lib/services/memories_cache_service.dart @@ -6,6 +6,7 @@ import "package:flutter/material.dart" show BuildContext; import "package:logging/logging.dart"; import "package:path_provider/path_provider.dart"; import "package:photos/core/event_bus.dart"; +import "package:photos/db/files_db.dart"; import "package:photos/db/memories_db.dart"; import "package:photos/events/files_updated_event.dart"; import "package:photos/events/memories_changed_event.dart"; @@ -205,20 +206,10 @@ class MemoriesCacheService { _logger.info("No memories cache found"); return null; } - final allFiles = Set.from( - await SearchService.instance.getAllFilesForSearch(), - ); - final allFileIdsToFile = {}; - for (final file in allFiles) { - if (file.uploadedFileID != null) { - allFileIdsToFile[file.uploadedFileID!] = file; - } - } try { final bytes = await file.readAsBytes(); final jsonString = String.fromCharCodes(bytes); - final cache = - MemoriesCache.decodeFromJsonString(jsonString, allFileIdsToFile); + final cache = MemoriesCache.decodeFromJsonString(jsonString); _logger.info("Reading memories cache result from disk done"); return cache; } catch (e, s) { @@ -232,25 +223,32 @@ class MemoriesCacheService { try { _logger.info('Processing disk cache memories to smart memories'); final List memories = []; - final allFiles = Set.from( - await SearchService.instance.getAllFilesForSearch(), - ); - final allFileIdsToFile = {}; - for (final file in allFiles) { - if (file.uploadedFileID != null) { - allFileIdsToFile[file.uploadedFileID!] = file; + final seenTimes = await _memoriesDB.getSeenTimes(); + final minimalFileIDs = {}; + for (final ToShowMemory memory in cache.toShowMemories) { + if (memory.shouldShowNow()) { + minimalFileIDs.addAll(memory.fileUploadedIDs); + } + } + final minimalFiles = await FilesDB.instance.getFilesFromIDs( + minimalFileIDs.toList(), + collectionsToIgnore: SearchService.instance.ignoreCollections(), + ); + final minimalFileIdsToFile = {}; + for (final file in minimalFiles) { + if (file.uploadedFileID != null) { + minimalFileIdsToFile[file.uploadedFileID!] = file; } } - final seenTimes = await _memoriesDB.getSeenTimes(); for (final ToShowMemory memory in cache.toShowMemories) { if (memory.shouldShowNow()) { final smartMemory = SmartMemory( memory.fileUploadedIDs - .where((fileID) => allFileIdsToFile.containsKey(fileID)) + .where((fileID) => minimalFileIdsToFile.containsKey(fileID)) .map( (fileID) => - Memory.fromFile(allFileIdsToFile[fileID]!, seenTimes), + Memory.fromFile(minimalFileIdsToFile[fileID]!, seenTimes), ) .toList(), memory.type, diff --git a/mobile/lib/services/smart_memories_service.dart b/mobile/lib/services/smart_memories_service.dart index b17fbbe4a4..7e5f94ba23 100644 --- a/mobile/lib/services/smart_memories_service.dart +++ b/mobile/lib/services/smart_memories_service.dart @@ -272,6 +272,7 @@ class SmartMemoriesService { // Trip memories final (tripMemories, bases) = await _getTripsResults( allFiles, + allFileIdsToFile, now, oldCache.tripsShownLogs, surfaceAll: debugSurfaceAll, @@ -851,6 +852,7 @@ class SmartMemoriesService { static Future<(List, List)> _getTripsResults( Iterable allFiles, + Map allFileIdsToFile, DateTime currentTime, List shownTrips, { bool surfaceAll = false, @@ -956,7 +958,13 @@ class SmartMemoriesService { const Duration(days: 90), ), ); - baseLocations.add(BaseLocation(files, location, isCurrent)); + baseLocations.add( + BaseLocation( + files.map((file) => file.uploadedFileID!).toList(), + location, + isCurrent, + ), + ); } // Identify trip locations @@ -1108,8 +1116,11 @@ class SmartMemoriesService { for (final baseLocation in baseLocations) { String name = "Base (${baseLocation.isCurrentBase ? 'current' : 'old'})"; + final files = baseLocation.fileIDs + .map((fileID) => allFileIdsToFile[fileID]!) + .toList(); final String? locationName = _tryFindLocationName( - Memory.fromFiles(baseLocation.files, seenTimes), + Memory.fromFiles(files, seenTimes), cities, base: true, ); @@ -1119,7 +1130,7 @@ class SmartMemoriesService { } memoryResults.add( TripMemory( - Memory.fromFiles(baseLocation.files, seenTimes), + Memory.fromFiles(files, seenTimes), nowInMicroseconds, windowEnd, baseLocation.location, From 51a736dbce92ffa90c31d2eb2676beb58bc48073 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 17:25:38 +0530 Subject: [PATCH 255/316] Adapt --- web/packages/accounts/services/srp.ts | 14 +++----------- web/packages/base/crypto/ente-impl.ts | 2 +- web/packages/base/crypto/index.ts | 10 ++++++---- web/packages/base/crypto/libsodium.ts | 26 ++++++++++++++------------ web/packages/base/crypto/worker.ts | 2 +- 5 files changed, 25 insertions(+), 29 deletions(-) diff --git a/web/packages/accounts/services/srp.ts b/web/packages/accounts/services/srp.ts index 32f2ad2d71..82867ba439 100644 --- a/web/packages/accounts/services/srp.ts +++ b/web/packages/accounts/services/srp.ts @@ -1,5 +1,5 @@ import type { KeyAttributes } from "ente-accounts/services/user"; -import { sharedCryptoWorker } from "ente-base/crypto"; +import { deriveSubKeyBytes, sharedCryptoWorker, toB64 } from "ente-base/crypto"; import log from "ente-base/log"; import { getToken } from "ente-shared/storage/localStorage/helpers"; import { SRP, SrpClient } from "fast-srp-hap"; @@ -26,18 +26,10 @@ const SRP_PARAMS = SRP.params["4096"]; * @returns A string that can be used as the SRP user password. */ export const deriveSRPPassword = async (kek: string) => { - const cryptoWorker = await sharedCryptoWorker(); - const kekSubKeyString = await cryptoWorker.deriveSubKey( - kek, - 32, - 1, - "loginctx", - ); - const kekSubKey = await cryptoWorker.fromB64(kekSubKeyString); - + const kekSubKeyBytes = await deriveSubKeyBytes(kek, 32, 1, "loginctx"); // Use the first 16 bytes (128 bits) of the KEK's KDF subkey as the SRP // password (instead of entire 32 bytes). - return await cryptoWorker.toB64(kekSubKey.slice(0, 16)); + return toB64(kekSubKeyBytes.slice(0, 16)); }; export const configureSRP = async ({ diff --git a/web/packages/base/crypto/ente-impl.ts b/web/packages/base/crypto/ente-impl.ts index 4498208df8..b5f428d701 100644 --- a/web/packages/base/crypto/ente-impl.ts +++ b/web/packages/base/crypto/ente-impl.ts @@ -39,4 +39,4 @@ export const _generateDeriveKeySalt = libsodium.generateDeriveKeySalt; export const _deriveKey = libsodium.deriveKey; export const _deriveSensitiveKey = libsodium.deriveSensitiveKey; export const _deriveInteractiveKey = libsodium.deriveInteractiveKey; -export const _deriveSubKey = libsodium.deriveSubKey; +export const _deriveSubKeyBytes = libsodium.deriveSubKeyBytes; diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index 2fb20e5a01..4ddada04c2 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -510,15 +510,17 @@ export const deriveInteractiveKey = ( /** * Derive a subkey of the given {@link key} using the specified parameters. + * + * @returns the bytes of the derived subkey. */ -export const deriveSubKey = async ( +export const deriveSubKeyBytes = async ( key: string, subKeyLength: number, subKeyID: number, context: string, -) => +): Promise => inWorker() - ? ei._deriveSubKey(key, subKeyLength, subKeyID, context) + ? ei._deriveSubKeyBytes(key, subKeyLength, subKeyID, context) : sharedWorker().then((w) => - w.deriveSubKey(key, subKeyLength, subKeyID, context), + w.deriveSubKeyBytes(key, subKeyLength, subKeyID, context), ); diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index d3a6b8df2e..9bf37dd390 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -935,7 +935,7 @@ export const deriveInteractiveKey = async ( * * See: https://doc.libsodium.org/key_derivation * - * @param key The key (base64) whose subkey we are deriving. In the context of + * @param key The key whose subkey we are deriving. In the context of * key derivation, this is usually referred to as the "master key", but we * deemphasize that nomenclature to avoid confusion with the user's master key. * @@ -946,21 +946,23 @@ export const deriveInteractiveKey = async ( * @param context A short but otherwise arbitrary string (non-secret) used to * separate domains in which the subkeys are going to be used. * - * @returns The subkey as a base64 string. + * @returns The bytes of the subkey. + * + * Note that returning bytes is a bit unusual, usually we'd return the base64 + * string from functions. However, this particular function is used in only one + * place in our code, and so we adapt the interface for its convenience. */ -export const deriveSubKey = async ( - key: string, +export const deriveSubKeyBytes = async ( + key: BytesOrB64, subKeyLength: number, subKeyID: number, context: string, -) => { +): Promise => { await sodium.ready; - return toB64( - sodium.crypto_kdf_derive_from_key( - subKeyLength, - subKeyID, - context, - await fromB64(key), - ), + return sodium.crypto_kdf_derive_from_key( + subKeyLength, + subKeyID, + context, + await bytes(key), ); }; diff --git a/web/packages/base/crypto/worker.ts b/web/packages/base/crypto/worker.ts index 99b890539d..22fa693d79 100644 --- a/web/packages/base/crypto/worker.ts +++ b/web/packages/base/crypto/worker.ts @@ -47,7 +47,7 @@ export class CryptoWorker { deriveKey = ei._deriveKey; deriveSensitiveKey = ei._deriveSensitiveKey; deriveInteractiveKey = ei._deriveInteractiveKey; - deriveSubKey = ei._deriveSubKey; + deriveSubKeyBytes = ei._deriveSubKeyBytes; // TODO: -- AUDIT BELOW -- From b359d97b9506cc9668081e5afd76676390cfe5e6 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Thu, 5 Jun 2025 17:32:58 +0530 Subject: [PATCH 256/316] Fix typo --- mobile/lib/generated/intl/messages_ar.dart | 2 -- mobile/lib/generated/intl/messages_be.dart | 2 -- mobile/lib/generated/intl/messages_bg.dart | 2 -- mobile/lib/generated/intl/messages_ca.dart | 2 -- mobile/lib/generated/intl/messages_cs.dart | 2 -- mobile/lib/generated/intl/messages_da.dart | 2 -- mobile/lib/generated/intl/messages_de.dart | 2 -- mobile/lib/generated/intl/messages_el.dart | 2 -- mobile/lib/generated/intl/messages_en.dart | 4 ++-- mobile/lib/generated/intl/messages_es.dart | 2 -- mobile/lib/generated/intl/messages_et.dart | 2 -- mobile/lib/generated/intl/messages_eu.dart | 2 -- mobile/lib/generated/intl/messages_fa.dart | 2 -- mobile/lib/generated/intl/messages_fr.dart | 2 -- mobile/lib/generated/intl/messages_gu.dart | 2 -- mobile/lib/generated/intl/messages_he.dart | 2 -- mobile/lib/generated/intl/messages_hi.dart | 2 -- mobile/lib/generated/intl/messages_hu.dart | 2 -- mobile/lib/generated/intl/messages_id.dart | 2 -- mobile/lib/generated/intl/messages_it.dart | 2 -- mobile/lib/generated/intl/messages_ja.dart | 2 -- mobile/lib/generated/intl/messages_km.dart | 2 -- mobile/lib/generated/intl/messages_ko.dart | 2 -- mobile/lib/generated/intl/messages_lt.dart | 2 -- mobile/lib/generated/intl/messages_lv.dart | 2 -- mobile/lib/generated/intl/messages_ml.dart | 2 -- mobile/lib/generated/intl/messages_nl.dart | 2 -- mobile/lib/generated/intl/messages_no.dart | 2 -- mobile/lib/generated/intl/messages_or.dart | 2 -- mobile/lib/generated/intl/messages_pl.dart | 2 -- mobile/lib/generated/intl/messages_pt.dart | 2 -- mobile/lib/generated/intl/messages_pt_BR.dart | 2 -- mobile/lib/generated/intl/messages_pt_PT.dart | 2 -- mobile/lib/generated/intl/messages_ro.dart | 2 -- mobile/lib/generated/intl/messages_ru.dart | 2 -- mobile/lib/generated/intl/messages_sl.dart | 2 -- mobile/lib/generated/intl/messages_sr.dart | 2 -- mobile/lib/generated/intl/messages_sv.dart | 2 -- mobile/lib/generated/intl/messages_ta.dart | 2 -- mobile/lib/generated/intl/messages_te.dart | 2 -- mobile/lib/generated/intl/messages_th.dart | 2 -- mobile/lib/generated/intl/messages_ti.dart | 2 -- mobile/lib/generated/intl/messages_tr.dart | 2 -- mobile/lib/generated/intl/messages_uk.dart | 2 -- mobile/lib/generated/intl/messages_vi.dart | 2 -- mobile/lib/generated/intl/messages_zh.dart | 2 -- mobile/lib/generated/l10n.dart | 8 ++++---- mobile/lib/l10n/intl_en.arb | 2 +- mobile/lib/ui/settings/notification_settings_screen.dart | 2 +- 49 files changed, 8 insertions(+), 98 deletions(-) diff --git a/mobile/lib/generated/intl/messages_ar.dart b/mobile/lib/generated/intl/messages_ar.dart index 608111df14..fa1bd688e2 100644 --- a/mobile/lib/generated/intl/messages_ar.dart +++ b/mobile/lib/generated/intl/messages_ar.dart @@ -532,8 +532,6 @@ class MessageLookup extends MessageLookupByLibrary { "backupVideos": MessageLookupByLibrary.simpleMessage( "النسخ الاحتياطي لمقاطع الفيديو"), "beach": MessageLookupByLibrary.simpleMessage("رمال وبحر"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("تاريخ الميلاد"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": diff --git a/mobile/lib/generated/intl/messages_be.dart b/mobile/lib/generated/intl/messages_be.dart index cea7af47d7..68aa60a736 100644 --- a/mobile/lib/generated/intl/messages_be.dart +++ b/mobile/lib/generated/intl/messages_be.dart @@ -49,8 +49,6 @@ class MessageLookup extends MessageLookupByLibrary { "askDeleteReason": MessageLookupByLibrary.simpleMessage( "Якая асноўная прычына выдалення вашага ўліковага запісу?"), "backup": MessageLookupByLibrary.simpleMessage("Рэзервовая копія"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "cancel": MessageLookupByLibrary.simpleMessage("Скасаваць"), "change": MessageLookupByLibrary.simpleMessage("Змяніць"), diff --git a/mobile/lib/generated/intl/messages_bg.dart b/mobile/lib/generated/intl/messages_bg.dart index 91fb0f9681..636f6859e6 100644 --- a/mobile/lib/generated/intl/messages_bg.dart +++ b/mobile/lib/generated/intl/messages_bg.dart @@ -22,8 +22,6 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( "Click to install our best version yet"), diff --git a/mobile/lib/generated/intl/messages_ca.dart b/mobile/lib/generated/intl/messages_ca.dart index 211abc4bcd..6dabe20ccc 100644 --- a/mobile/lib/generated/intl/messages_ca.dart +++ b/mobile/lib/generated/intl/messages_ca.dart @@ -22,8 +22,6 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( "Click to install our best version yet"), diff --git a/mobile/lib/generated/intl/messages_cs.dart b/mobile/lib/generated/intl/messages_cs.dart index 03cbe0c4f5..3fe9fedc3b 100644 --- a/mobile/lib/generated/intl/messages_cs.dart +++ b/mobile/lib/generated/intl/messages_cs.dart @@ -89,8 +89,6 @@ class MessageLookup extends MessageLookupByLibrary { "backup": MessageLookupByLibrary.simpleMessage("Zálohovat"), "backupFile": MessageLookupByLibrary.simpleMessage("Zálohovat soubor"), "backupStatus": MessageLookupByLibrary.simpleMessage("Stav zálohování"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Narozeniny"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blog": MessageLookupByLibrary.simpleMessage("Blog"), diff --git a/mobile/lib/generated/intl/messages_da.dart b/mobile/lib/generated/intl/messages_da.dart index 32b5d4a2ab..00e5077a8c 100644 --- a/mobile/lib/generated/intl/messages_da.dart +++ b/mobile/lib/generated/intl/messages_da.dart @@ -90,8 +90,6 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Sikkerhedskopierede mapper"), "backupStatusDescription": MessageLookupByLibrary.simpleMessage( "Elementer, der er blevet sikkerhedskopieret, vil blive vist her"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "canNotOpenBody": MessageLookupByLibrary.simpleMessage( "Beklager, dette album kan ikke åbnes i appen."), diff --git a/mobile/lib/generated/intl/messages_de.dart b/mobile/lib/generated/intl/messages_de.dart index a1fa1b85fe..ec195a96a2 100644 --- a/mobile/lib/generated/intl/messages_de.dart +++ b/mobile/lib/generated/intl/messages_de.dart @@ -550,8 +550,6 @@ class MessageLookup extends MessageLookupByLibrary { "Gesicherte Elemente werden hier angezeigt"), "backupVideos": MessageLookupByLibrary.simpleMessage("Videos sichern"), "beach": MessageLookupByLibrary.simpleMessage("Am Strand"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Geburtstag"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": diff --git a/mobile/lib/generated/intl/messages_el.dart b/mobile/lib/generated/intl/messages_el.dart index ffa4284036..679fa2404f 100644 --- a/mobile/lib/generated/intl/messages_el.dart +++ b/mobile/lib/generated/intl/messages_el.dart @@ -22,8 +22,6 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( "Click to install our best version yet"), diff --git a/mobile/lib/generated/intl/messages_en.dart b/mobile/lib/generated/intl/messages_en.dart index 42eb0ef288..3a0c25cb23 100644 --- a/mobile/lib/generated/intl/messages_en.dart +++ b/mobile/lib/generated/intl/messages_en.dart @@ -553,9 +553,9 @@ class MessageLookup extends MessageLookupByLibrary { "Items that have been backed up will show up here"), "backupVideos": MessageLookupByLibrary.simpleMessage("Backup videos"), "beach": MessageLookupByLibrary.simpleMessage("Sand and sea"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Birthday"), + "birthdayNotifications": + MessageLookupByLibrary.simpleMessage("Birthday notifications"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage("Black Friday Sale"), diff --git a/mobile/lib/generated/intl/messages_es.dart b/mobile/lib/generated/intl/messages_es.dart index 46cb3ac5fc..510d4f58b8 100644 --- a/mobile/lib/generated/intl/messages_es.dart +++ b/mobile/lib/generated/intl/messages_es.dart @@ -548,8 +548,6 @@ class MessageLookup extends MessageLookupByLibrary { "backupVideos": MessageLookupByLibrary.simpleMessage( "Copia de seguridad de vídeos"), "beach": MessageLookupByLibrary.simpleMessage("Arena y mar "), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Cumpleaños"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": diff --git a/mobile/lib/generated/intl/messages_et.dart b/mobile/lib/generated/intl/messages_et.dart index 49cc03869c..80bf2d4cf3 100644 --- a/mobile/lib/generated/intl/messages_et.dart +++ b/mobile/lib/generated/intl/messages_et.dart @@ -39,8 +39,6 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Luba allalaadimised"), "appleId": MessageLookupByLibrary.simpleMessage("Apple ID"), "apply": MessageLookupByLibrary.simpleMessage("Rakenda"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blog": MessageLookupByLibrary.simpleMessage("Blogi"), "cancel": MessageLookupByLibrary.simpleMessage("Loobu"), diff --git a/mobile/lib/generated/intl/messages_eu.dart b/mobile/lib/generated/intl/messages_eu.dart index d68b76c270..2382f63f5e 100644 --- a/mobile/lib/generated/intl/messages_eu.dart +++ b/mobile/lib/generated/intl/messages_eu.dart @@ -161,8 +161,6 @@ class MessageLookup extends MessageLookupByLibrary { "Mesedez, autentifikatu zure ezkutatutako fitxategiak ikusteko"), "authToViewYourRecoveryKey": MessageLookupByLibrary.simpleMessage( "Mesedez, autentifikatu zure berreskuratze giltza ikusteko"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "canNotOpenBody": MessageLookupByLibrary.simpleMessage( "Sentitzen dugu, album hau ezin da aplikazioan ireki."), diff --git a/mobile/lib/generated/intl/messages_fa.dart b/mobile/lib/generated/intl/messages_fa.dart index 734517eaca..1bde0e71f2 100644 --- a/mobile/lib/generated/intl/messages_fa.dart +++ b/mobile/lib/generated/intl/messages_fa.dart @@ -90,8 +90,6 @@ class MessageLookup extends MessageLookupByLibrary { "backedUpFolders": MessageLookupByLibrary.simpleMessage("پوشه‌های پشتیبان گیری شده"), "backup": MessageLookupByLibrary.simpleMessage("پشتیبان گیری"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blog": MessageLookupByLibrary.simpleMessage("وبلاگ"), "cancel": MessageLookupByLibrary.simpleMessage("لغو"), diff --git a/mobile/lib/generated/intl/messages_fr.dart b/mobile/lib/generated/intl/messages_fr.dart index dd31abd97b..08b4acd2d5 100644 --- a/mobile/lib/generated/intl/messages_fr.dart +++ b/mobile/lib/generated/intl/messages_fr.dart @@ -555,8 +555,6 @@ class MessageLookup extends MessageLookupByLibrary { "backupVideos": MessageLookupByLibrary.simpleMessage("Sauvegarde des vidéos"), "beach": MessageLookupByLibrary.simpleMessage("Sable et mer"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Anniversaire"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": diff --git a/mobile/lib/generated/intl/messages_gu.dart b/mobile/lib/generated/intl/messages_gu.dart index b33133b55f..6d7c763bdf 100644 --- a/mobile/lib/generated/intl/messages_gu.dart +++ b/mobile/lib/generated/intl/messages_gu.dart @@ -22,8 +22,6 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( "Click to install our best version yet"), diff --git a/mobile/lib/generated/intl/messages_he.dart b/mobile/lib/generated/intl/messages_he.dart index 3a16f3233f..c254498ecb 100644 --- a/mobile/lib/generated/intl/messages_he.dart +++ b/mobile/lib/generated/intl/messages_he.dart @@ -223,8 +223,6 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("גבה על רשת סלולרית"), "backupSettings": MessageLookupByLibrary.simpleMessage("הגדרות גיבוי"), "backupVideos": MessageLookupByLibrary.simpleMessage("גבה סרטונים"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blog": MessageLookupByLibrary.simpleMessage("בלוג"), "cachedData": MessageLookupByLibrary.simpleMessage("נתונים מוטמנים"), diff --git a/mobile/lib/generated/intl/messages_hi.dart b/mobile/lib/generated/intl/messages_hi.dart index 038a53f87d..202db74c87 100644 --- a/mobile/lib/generated/intl/messages_hi.dart +++ b/mobile/lib/generated/intl/messages_hi.dart @@ -27,8 +27,6 @@ class MessageLookup extends MessageLookupByLibrary { "activeSessions": MessageLookupByLibrary.simpleMessage("एक्टिव सेशन"), "askDeleteReason": MessageLookupByLibrary.simpleMessage( "आपका अकाउंट हटाने का मुख्य कारण क्या है?"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "cancel": MessageLookupByLibrary.simpleMessage("रद्द करें"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_hu.dart b/mobile/lib/generated/intl/messages_hu.dart index accc2cd93e..9af5b27648 100644 --- a/mobile/lib/generated/intl/messages_hu.dart +++ b/mobile/lib/generated/intl/messages_hu.dart @@ -26,8 +26,6 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Köszöntjük ismét!"), "askDeleteReason": MessageLookupByLibrary.simpleMessage("Miért törli a fiókját?"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "cancel": MessageLookupByLibrary.simpleMessage("Mégse"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_id.dart b/mobile/lib/generated/intl/messages_id.dart index 2ba0310ea6..9b635958f0 100644 --- a/mobile/lib/generated/intl/messages_id.dart +++ b/mobile/lib/generated/intl/messages_id.dart @@ -342,8 +342,6 @@ class MessageLookup extends MessageLookupByLibrary { "backupStatusDescription": MessageLookupByLibrary.simpleMessage( "Item yang sudah dicadangkan akan terlihat di sini"), "backupVideos": MessageLookupByLibrary.simpleMessage("Cadangkan video"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage("Penawaran Black Friday"), diff --git a/mobile/lib/generated/intl/messages_it.dart b/mobile/lib/generated/intl/messages_it.dart index e1c38a4ba2..7a5f154462 100644 --- a/mobile/lib/generated/intl/messages_it.dart +++ b/mobile/lib/generated/intl/messages_it.dart @@ -456,8 +456,6 @@ class MessageLookup extends MessageLookupByLibrary { "Gli elementi che sono stati sottoposti a backup verranno mostrati qui"), "backupVideos": MessageLookupByLibrary.simpleMessage("Backup dei video"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Compleanno"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": diff --git a/mobile/lib/generated/intl/messages_ja.dart b/mobile/lib/generated/intl/messages_ja.dart index 0ad4ce9300..3aca3277ca 100644 --- a/mobile/lib/generated/intl/messages_ja.dart +++ b/mobile/lib/generated/intl/messages_ja.dart @@ -458,8 +458,6 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("バックアップされたアイテムがここに表示されます"), "backupVideos": MessageLookupByLibrary.simpleMessage("動画をバックアップ"), "beach": MessageLookupByLibrary.simpleMessage("砂浜と海"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("誕生日"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage("ブラックフライデーセール"), diff --git a/mobile/lib/generated/intl/messages_km.dart b/mobile/lib/generated/intl/messages_km.dart index d8bf3b8557..0b7524e0cd 100644 --- a/mobile/lib/generated/intl/messages_km.dart +++ b/mobile/lib/generated/intl/messages_km.dart @@ -22,8 +22,6 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( "Click to install our best version yet"), diff --git a/mobile/lib/generated/intl/messages_ko.dart b/mobile/lib/generated/intl/messages_ko.dart index 7598713d99..84823c7050 100644 --- a/mobile/lib/generated/intl/messages_ko.dart +++ b/mobile/lib/generated/intl/messages_ko.dart @@ -26,8 +26,6 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("다시 오신 것을 환영합니다!"), "askDeleteReason": MessageLookupByLibrary.simpleMessage("계정을 삭제하는 가장 큰 이유가 무엇인가요?"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "cancel": MessageLookupByLibrary.simpleMessage("닫기"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_lt.dart b/mobile/lib/generated/intl/messages_lt.dart index e4604d257c..86e493031c 100644 --- a/mobile/lib/generated/intl/messages_lt.dart +++ b/mobile/lib/generated/intl/messages_lt.dart @@ -549,8 +549,6 @@ class MessageLookup extends MessageLookupByLibrary { "backupVideos": MessageLookupByLibrary.simpleMessage( "Kurti atsargines vaizdo įrašų kopijas"), "beach": MessageLookupByLibrary.simpleMessage("Smėlis ir jūra"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Gimtadienis"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_lv.dart b/mobile/lib/generated/intl/messages_lv.dart index 0fade235a9..6bd80f8044 100644 --- a/mobile/lib/generated/intl/messages_lv.dart +++ b/mobile/lib/generated/intl/messages_lv.dart @@ -22,8 +22,6 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( "Click to install our best version yet"), diff --git a/mobile/lib/generated/intl/messages_ml.dart b/mobile/lib/generated/intl/messages_ml.dart index 63291f56cf..2843561229 100644 --- a/mobile/lib/generated/intl/messages_ml.dart +++ b/mobile/lib/generated/intl/messages_ml.dart @@ -28,8 +28,6 @@ class MessageLookup extends MessageLookupByLibrary { "askDeleteReason": MessageLookupByLibrary.simpleMessage( "അക്കൗണ്ട് ഉപേക്ഷിക്കുവാൻ പ്രധാന കാരണമെന്താണ്?"), "available": MessageLookupByLibrary.simpleMessage("ലഭ്യമാണ്"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "calculating": MessageLookupByLibrary.simpleMessage("കണക്കുകൂട്ടുന്നു..."), diff --git a/mobile/lib/generated/intl/messages_nl.dart b/mobile/lib/generated/intl/messages_nl.dart index d0697cf2b2..66b7b60f19 100644 --- a/mobile/lib/generated/intl/messages_nl.dart +++ b/mobile/lib/generated/intl/messages_nl.dart @@ -548,8 +548,6 @@ class MessageLookup extends MessageLookupByLibrary { "backupVideos": MessageLookupByLibrary.simpleMessage("Back-up video\'s"), "beach": MessageLookupByLibrary.simpleMessage("Zand en zee"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Verjaardag"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": diff --git a/mobile/lib/generated/intl/messages_no.dart b/mobile/lib/generated/intl/messages_no.dart index 005f400e93..4f57a9d1a5 100644 --- a/mobile/lib/generated/intl/messages_no.dart +++ b/mobile/lib/generated/intl/messages_no.dart @@ -517,8 +517,6 @@ class MessageLookup extends MessageLookupByLibrary { "backupVideos": MessageLookupByLibrary.simpleMessage("Sikkerhetskopier videoer"), "beach": MessageLookupByLibrary.simpleMessage("Sand og sjø"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Bursdag"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": diff --git a/mobile/lib/generated/intl/messages_or.dart b/mobile/lib/generated/intl/messages_or.dart index 7856058046..5d2261d16d 100644 --- a/mobile/lib/generated/intl/messages_or.dart +++ b/mobile/lib/generated/intl/messages_or.dart @@ -22,8 +22,6 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( "Click to install our best version yet"), diff --git a/mobile/lib/generated/intl/messages_pl.dart b/mobile/lib/generated/intl/messages_pl.dart index 053a9e6ceb..d0e37e0449 100644 --- a/mobile/lib/generated/intl/messages_pl.dart +++ b/mobile/lib/generated/intl/messages_pl.dart @@ -455,8 +455,6 @@ class MessageLookup extends MessageLookupByLibrary { "Elementy, których kopia zapasowa została utworzona, zostaną wyświetlone w tym miejscu"), "backupVideos": MessageLookupByLibrary.simpleMessage("Utwórz kopię zapasową wideo"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Urodziny"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_pt.dart b/mobile/lib/generated/intl/messages_pt.dart index 7787c811fa..b2675dfd15 100644 --- a/mobile/lib/generated/intl/messages_pt.dart +++ b/mobile/lib/generated/intl/messages_pt.dart @@ -511,8 +511,6 @@ class MessageLookup extends MessageLookupByLibrary { "backupVideos": MessageLookupByLibrary.simpleMessage( "Cópia de segurança de vídeos"), "beach": MessageLookupByLibrary.simpleMessage("Areia e o mar"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Aniversário"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": diff --git a/mobile/lib/generated/intl/messages_pt_BR.dart b/mobile/lib/generated/intl/messages_pt_BR.dart index c98ede7197..fff8e542c0 100644 --- a/mobile/lib/generated/intl/messages_pt_BR.dart +++ b/mobile/lib/generated/intl/messages_pt_BR.dart @@ -545,8 +545,6 @@ class MessageLookup extends MessageLookupByLibrary { "backupVideos": MessageLookupByLibrary.simpleMessage( "Cópia de segurança de vídeos"), "beach": MessageLookupByLibrary.simpleMessage("Areia e o mar"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Aniversário"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": diff --git a/mobile/lib/generated/intl/messages_pt_PT.dart b/mobile/lib/generated/intl/messages_pt_PT.dart index 412eec75f7..3c17d44eb8 100644 --- a/mobile/lib/generated/intl/messages_pt_PT.dart +++ b/mobile/lib/generated/intl/messages_pt_PT.dart @@ -411,8 +411,6 @@ class MessageLookup extends MessageLookupByLibrary { "Os itens que foram salvos com segurança aparecerão aqui"), "backupVideos": MessageLookupByLibrary.simpleMessage( "Cópia de segurança de vídeos"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Aniversário"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": diff --git a/mobile/lib/generated/intl/messages_ro.dart b/mobile/lib/generated/intl/messages_ro.dart index 78d9a2a29a..6a0cb32a45 100644 --- a/mobile/lib/generated/intl/messages_ro.dart +++ b/mobile/lib/generated/intl/messages_ro.dart @@ -451,8 +451,6 @@ class MessageLookup extends MessageLookupByLibrary { "Articolele care au fost salvate vor apărea aici"), "backupVideos": MessageLookupByLibrary.simpleMessage( "Copie de rezervă videoclipuri"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Ziua de naștere"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": diff --git a/mobile/lib/generated/intl/messages_ru.dart b/mobile/lib/generated/intl/messages_ru.dart index 0f0b6b61fb..054dafa206 100644 --- a/mobile/lib/generated/intl/messages_ru.dart +++ b/mobile/lib/generated/intl/messages_ru.dart @@ -539,8 +539,6 @@ class MessageLookup extends MessageLookupByLibrary { "backupVideos": MessageLookupByLibrary.simpleMessage("Резервное копирование видео"), "beach": MessageLookupByLibrary.simpleMessage("Песок и море"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("День рождения"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_sl.dart b/mobile/lib/generated/intl/messages_sl.dart index 2d46c81578..a0e7022e1c 100644 --- a/mobile/lib/generated/intl/messages_sl.dart +++ b/mobile/lib/generated/intl/messages_sl.dart @@ -22,8 +22,6 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( "Click to install our best version yet"), diff --git a/mobile/lib/generated/intl/messages_sr.dart b/mobile/lib/generated/intl/messages_sr.dart index 86dd20850c..3ec37429d1 100644 --- a/mobile/lib/generated/intl/messages_sr.dart +++ b/mobile/lib/generated/intl/messages_sr.dart @@ -22,8 +22,6 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "happyBirthday": MessageLookupByLibrary.simpleMessage("Happy birthday! 🥳"), diff --git a/mobile/lib/generated/intl/messages_sv.dart b/mobile/lib/generated/intl/messages_sv.dart index 735766adef..0f01aeda2f 100644 --- a/mobile/lib/generated/intl/messages_sv.dart +++ b/mobile/lib/generated/intl/messages_sv.dart @@ -164,8 +164,6 @@ class MessageLookup extends MessageLookupByLibrary { "Säkerhetskopieringsinställningar"), "backupStatus": MessageLookupByLibrary.simpleMessage("Säkerhetskopieringsstatus"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blog": MessageLookupByLibrary.simpleMessage("Blogg"), "canNotOpenBody": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_ta.dart b/mobile/lib/generated/intl/messages_ta.dart index 96ed363822..0c2011501d 100644 --- a/mobile/lib/generated/intl/messages_ta.dart +++ b/mobile/lib/generated/intl/messages_ta.dart @@ -26,8 +26,6 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("மீண்டும் வருக!"), "askDeleteReason": MessageLookupByLibrary.simpleMessage( "உங்கள் கணக்கை நீக்குவதற்கான முக்கிய காரணம் என்ன?"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "cancel": MessageLookupByLibrary.simpleMessage("ரத்து செய்"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_te.dart b/mobile/lib/generated/intl/messages_te.dart index 9f1b2bd22d..e2878dee28 100644 --- a/mobile/lib/generated/intl/messages_te.dart +++ b/mobile/lib/generated/intl/messages_te.dart @@ -22,8 +22,6 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( "Click to install our best version yet"), diff --git a/mobile/lib/generated/intl/messages_th.dart b/mobile/lib/generated/intl/messages_th.dart index 445aa6f545..14b80844d9 100644 --- a/mobile/lib/generated/intl/messages_th.dart +++ b/mobile/lib/generated/intl/messages_th.dart @@ -78,8 +78,6 @@ class MessageLookup extends MessageLookupByLibrary { "เหตุผลหลักที่คุณลบบัญชีคืออะไร?"), "authToViewYourRecoveryKey": MessageLookupByLibrary.simpleMessage( "โปรดตรวจสอบสิทธิ์เพื่อดูคีย์การกู้คืนของคุณ"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "canOnlyCreateLinkForFilesOwnedByYou": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_ti.dart b/mobile/lib/generated/intl/messages_ti.dart index 1a1a80f3e4..4968a570e4 100644 --- a/mobile/lib/generated/intl/messages_ti.dart +++ b/mobile/lib/generated/intl/messages_ti.dart @@ -22,8 +22,6 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "clickToInstallOurBestVersionYet": MessageLookupByLibrary.simpleMessage( "Click to install our best version yet"), diff --git a/mobile/lib/generated/intl/messages_tr.dart b/mobile/lib/generated/intl/messages_tr.dart index bbacf4b649..3d3b2a8d09 100644 --- a/mobile/lib/generated/intl/messages_tr.dart +++ b/mobile/lib/generated/intl/messages_tr.dart @@ -541,8 +541,6 @@ class MessageLookup extends MessageLookupByLibrary { "backupVideos": MessageLookupByLibrary.simpleMessage("Videoları yedekle"), "beach": MessageLookupByLibrary.simpleMessage("Kum ve deniz"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Doğum Günü"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": diff --git a/mobile/lib/generated/intl/messages_uk.dart b/mobile/lib/generated/intl/messages_uk.dart index b939274212..aa14a02cd3 100644 --- a/mobile/lib/generated/intl/messages_uk.dart +++ b/mobile/lib/generated/intl/messages_uk.dart @@ -445,8 +445,6 @@ class MessageLookup extends MessageLookupByLibrary { "Елементи, для яких було створено резервну копію, показуватимуться тут"), "backupVideos": MessageLookupByLibrary.simpleMessage("Резервне копіювання відео"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("День народження"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_vi.dart b/mobile/lib/generated/intl/messages_vi.dart index 5c83908120..0c4f4001c9 100644 --- a/mobile/lib/generated/intl/messages_vi.dart +++ b/mobile/lib/generated/intl/messages_vi.dart @@ -448,8 +448,6 @@ class MessageLookup extends MessageLookupByLibrary { "backupStatusDescription": MessageLookupByLibrary.simpleMessage( "Các mục đã được sao lưu sẽ hiển thị ở đây"), "backupVideos": MessageLookupByLibrary.simpleMessage("Sao lưu video"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("Sinh nhật"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": diff --git a/mobile/lib/generated/intl/messages_zh.dart b/mobile/lib/generated/intl/messages_zh.dart index 50dd5037d7..d41df771af 100644 --- a/mobile/lib/generated/intl/messages_zh.dart +++ b/mobile/lib/generated/intl/messages_zh.dart @@ -476,8 +476,6 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("已备份的项目将显示在此处"), "backupVideos": MessageLookupByLibrary.simpleMessage("备份视频"), "beach": MessageLookupByLibrary.simpleMessage("沙滩与大海"), - "birhtdayNotifications": - MessageLookupByLibrary.simpleMessage("Birhtday notifications"), "birthday": MessageLookupByLibrary.simpleMessage("生日"), "birthdays": MessageLookupByLibrary.simpleMessage("Birthdays"), "blackFridaySale": MessageLookupByLibrary.simpleMessage("黑色星期五特惠"), diff --git a/mobile/lib/generated/l10n.dart b/mobile/lib/generated/l10n.dart index d6d998b4ac..e7b9494cd1 100644 --- a/mobile/lib/generated/l10n.dart +++ b/mobile/lib/generated/l10n.dart @@ -11926,11 +11926,11 @@ class S { ); } - /// `Birhtday notifications` - String get birhtdayNotifications { + /// `Birthday notifications` + String get birthdayNotifications { return Intl.message( - 'Birhtday notifications', - name: 'birhtdayNotifications', + 'Birthday notifications', + name: 'birthdayNotifications', desc: '', args: [], ); diff --git a/mobile/lib/l10n/intl_en.arb b/mobile/lib/l10n/intl_en.arb index 8a48dc4ae2..57d3db6577 100644 --- a/mobile/lib/l10n/intl_en.arb +++ b/mobile/lib/l10n/intl_en.arb @@ -1752,7 +1752,7 @@ "addMemoriesWidgetPrompt": "Add a memories widget to your homescreen and come back here to customize.", "addAlbumWidgetPrompt": "Add an album widget to your homescreen and come back here to customize.", "addPeopleWidgetPrompt": "Add a people widget to your homescreen and come back here to customize.", - "birhtdayNotifications": "Birhtday notifications", + "birthdayNotifications": "Birthday notifications", "receiveRemindersOnBirthdays": "Receive reminders when it's someone's birthday. Tapping on the notification will take you to photos of the birthday person.", "happyBirthday": "Happy birthday! 🥳", "happyBirthdayToPerson": "Happy birthday to {name}! 🎉", diff --git a/mobile/lib/ui/settings/notification_settings_screen.dart b/mobile/lib/ui/settings/notification_settings_screen.dart index 0281092e18..9d0761b883 100644 --- a/mobile/lib/ui/settings/notification_settings_screen.dart +++ b/mobile/lib/ui/settings/notification_settings_screen.dart @@ -110,7 +110,7 @@ class NotificationSettingsScreen extends StatelessWidget { sectionOptionSpacing, MenuItemWidget( captionedTextWidget: CaptionedTextWidget( - title: S.of(context).birhtdayNotifications, + title: S.of(context).birthdayNotifications, ), menuItemColor: colorScheme.fillFaint, trailingWidget: ToggleSwitchWidget( From 4a3d5039920d8257e0a2084b995f16ef98d0d8a8 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 17:52:57 +0530 Subject: [PATCH 257/316] Dup --- web/apps/auth/src/pages/auth.tsx | 4 +-- web/apps/photos/src/pages/gallery.tsx | 4 +-- web/packages/base/session.ts | 51 +++++++++++++++++++++------ 3 files changed, 44 insertions(+), 15 deletions(-) diff --git a/web/apps/auth/src/pages/auth.tsx b/web/apps/auth/src/pages/auth.tsx index 9c954ab564..a187d5f568 100644 --- a/web/apps/auth/src/pages/auth.tsx +++ b/web/apps/auth/src/pages/auth.tsx @@ -22,7 +22,7 @@ import { import { useBaseContext } from "ente-base/context"; import { isHTTP401Error } from "ente-base/http"; import log from "ente-base/log"; -import { masterKeyFromSessionIfLoggedIn } from "ente-base/session"; +import { masterKeyBytesFromSessionIfLoggedIn } from "ente-base/session"; import { t } from "i18next"; import { useRouter } from "next/router"; import React, { useCallback, useEffect, useState } from "react"; @@ -41,7 +41,7 @@ const Page: React.FC = () => { useEffect(() => { const fetchCodes = async () => { - const masterKey = await masterKeyFromSessionIfLoggedIn(); + const masterKey = await masterKeyBytesFromSessionIfLoggedIn(); if (!masterKey) { stashRedirect("/auth"); void router.push("/"); diff --git a/web/apps/photos/src/pages/gallery.tsx b/web/apps/photos/src/pages/gallery.tsx index c1b1f83343..05fcf39bd3 100644 --- a/web/apps/photos/src/pages/gallery.tsx +++ b/web/apps/photos/src/pages/gallery.tsx @@ -32,7 +32,7 @@ import log from "ente-base/log"; import { clearSessionStorage, haveCredentialsInSession, - masterKeyFromSessionIfLoggedIn, + masterKeyBytesFromSessionIfLoggedIn, } from "ente-base/session"; import { FullScreenDropZone } from "ente-gallery/components/FullScreenDropZone"; import { type UploadTypeSelectorIntent } from "ente-gallery/components/Upload"; @@ -561,7 +561,7 @@ const Page: React.FC = () => { showSessionExpiredDialog(); return; } - if (!(await masterKeyFromSessionIfLoggedIn())) { + if (!(await masterKeyBytesFromSessionIfLoggedIn())) { clearSessionStorage(); router.push("/credentials"); return; diff --git a/web/packages/base/session.ts b/web/packages/base/session.ts index 9b2cc1e3c5..edb6c78137 100644 --- a/web/packages/base/session.ts +++ b/web/packages/base/session.ts @@ -1,5 +1,5 @@ import { z } from "zod/v4"; -import { decryptBoxBytes, toB64 } from "./crypto"; +import { decryptBox, decryptBoxBytes } from "./crypto"; /** * Remove all data stored in session storage (data tied to the browser tab). @@ -43,12 +43,29 @@ const SessionKeyData = z.object({ // }; /** - * Return the user's decrypted master key from session storage. + * Return the user's decrypted master key bytes from session storage. * * Precondition: The user should be logged in. */ export const masterKeyFromSession = async () => { - const key = await masterKeyFromSessionIfLoggedIn(); + const key = await masterKeyBytesFromSessionIfLoggedIn(); + if (key) { + return key; + } else { + throw new Error( + "The user's master key was not found in session storage. Likely they are not logged in.", + ); + } +}; + +/** + * Variant of {@link masterKeyFromSession} that returns the master key as a + * base64 string. + * + * TODO(RE): Undup + */ +export const masterKeyB64FromSession = async () => { + const key = await masterKeyB64FromSessionIfLoggedIn(); if (key) { return key; } else { @@ -62,17 +79,18 @@ export const masterKeyFromSession = async () => { * Return `true` if the user's encrypted master key is present in the session. * * Use {@link masterKeyFromSessionIfLoggedIn} to get the actual master key after - * decrypting it. This function is instead useful as a quick check to verify if - * we have credentials at hand or not. + * decrypting it. This function is a similar and quicker check to verify if we + * have credentials at hand or not, but it doesn't attempt to verify that the + * key present in the session can actually be decrypted. */ export const haveCredentialsInSession = () => !!sessionStorage.getItem("encryptionKey"); /** - * Return the decrypted user's master key from session storage if they are - * logged in, otherwise return `undefined`. + * Return the decrypted user's master key (as bytes) from session storage if + * they are logged in, otherwise return `undefined`. */ -export const masterKeyFromSessionIfLoggedIn = async () => { +export const masterKeyBytesFromSessionIfLoggedIn = async () => { // TODO: Same value as the deprecated getKey("encryptionKey") const value = sessionStorage.getItem("encryptionKey"); if (!value) return undefined; @@ -84,10 +102,21 @@ export const masterKeyFromSessionIfLoggedIn = async () => { }; /** - * Variant of {@link masterKeyFromSession} that returns the master key as a - * base64 string. + * Return the decrypted user's master key (as a base64 string) from session + * storage if they are logged in, otherwise return `undefined`. + * + * TODO(RE): Undup. */ -export const masterKeyB64FromSession = () => masterKeyFromSession().then(toB64); +export const masterKeyB64FromSessionIfLoggedIn = async () => { + // TODO: Same value as the deprecated getKey("encryptionKey") + const value = sessionStorage.getItem("encryptionKey"); + if (!value) return undefined; + + const { encryptedData, key, nonce } = SessionKeyData.parse( + JSON.parse(value), + ); + return decryptBox({ encryptedData, nonce }, key); +}; /** * Return the decrypted user's key encryption key ("kek") from session storage From ac9cee8fa390c07477ef7fe9edb6688f6246aaaf Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 17:58:42 +0530 Subject: [PATCH 258/316] Specialize --- web/apps/auth/src/pages/auth.tsx | 6 +++--- web/apps/auth/src/services/remote.ts | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/web/apps/auth/src/pages/auth.tsx b/web/apps/auth/src/pages/auth.tsx index a187d5f568..7984cf946a 100644 --- a/web/apps/auth/src/pages/auth.tsx +++ b/web/apps/auth/src/pages/auth.tsx @@ -41,8 +41,8 @@ const Page: React.FC = () => { useEffect(() => { const fetchCodes = async () => { - const masterKey = await masterKeyBytesFromSessionIfLoggedIn(); - if (!masterKey) { + const masterKeyBytes = await masterKeyBytesFromSessionIfLoggedIn(); + if (!masterKeyBytes) { stashRedirect("/auth"); void router.push("/"); return; @@ -50,7 +50,7 @@ const Page: React.FC = () => { try { const { codes, timeOffset } = - await getAuthCodesAndTimeOffset(masterKey); + await getAuthCodesAndTimeOffset(masterKeyBytes); setCodes(codes); setTimeOffset(timeOffset ?? 0); } catch (e) { diff --git a/web/apps/auth/src/services/remote.ts b/web/apps/auth/src/services/remote.ts index 13e192b96a..a29632cd26 100644 --- a/web/apps/auth/src/services/remote.ts +++ b/web/apps/auth/src/services/remote.ts @@ -21,7 +21,7 @@ export interface AuthCodesAndTimeOffset { } export const getAuthCodesAndTimeOffset = async ( - masterKey: Uint8Array, + masterKeyBytes: Uint8Array, ): Promise => { const authenticatorEntityKey = await getAuthenticatorEntityKey(); if (!authenticatorEntityKey) { @@ -31,7 +31,7 @@ export const getAuthCodesAndTimeOffset = async ( const authenticatorKey = await decryptAuthenticatorKey( authenticatorEntityKey, - masterKey, + masterKeyBytes, ); const { entities, timeOffset } = @@ -263,7 +263,7 @@ export const getAuthenticatorEntityKey = async (): Promise< */ const decryptAuthenticatorKey = async ( remote: AuthenticatorEntityKey, - masterKey: Uint8Array, + masterKeyBytes: Uint8Array, ) => decryptBox( { @@ -271,5 +271,5 @@ const decryptAuthenticatorKey = async ( // Remote calls it the header, but it really is the nonce. nonce: remote.header, }, - masterKey, + masterKeyBytes, ); From 7b3ea329631b625a8316e693ce0d661a2a96d5ce Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 18:03:35 +0530 Subject: [PATCH 259/316] Go the other way for better future composability --- web/apps/auth/src/pages/auth.tsx | 8 ++++---- web/apps/auth/src/services/remote.ts | 14 ++++++++++---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/web/apps/auth/src/pages/auth.tsx b/web/apps/auth/src/pages/auth.tsx index 7984cf946a..7e53837490 100644 --- a/web/apps/auth/src/pages/auth.tsx +++ b/web/apps/auth/src/pages/auth.tsx @@ -22,7 +22,7 @@ import { import { useBaseContext } from "ente-base/context"; import { isHTTP401Error } from "ente-base/http"; import log from "ente-base/log"; -import { masterKeyBytesFromSessionIfLoggedIn } from "ente-base/session"; +import { masterKeyB64FromSessionIfLoggedIn } from "ente-base/session"; import { t } from "i18next"; import { useRouter } from "next/router"; import React, { useCallback, useEffect, useState } from "react"; @@ -41,8 +41,8 @@ const Page: React.FC = () => { useEffect(() => { const fetchCodes = async () => { - const masterKeyBytes = await masterKeyBytesFromSessionIfLoggedIn(); - if (!masterKeyBytes) { + const masterKey = await masterKeyB64FromSessionIfLoggedIn(); + if (!masterKey) { stashRedirect("/auth"); void router.push("/"); return; @@ -50,7 +50,7 @@ const Page: React.FC = () => { try { const { codes, timeOffset } = - await getAuthCodesAndTimeOffset(masterKeyBytes); + await getAuthCodesAndTimeOffset(masterKey); setCodes(codes); setTimeOffset(timeOffset ?? 0); } catch (e) { diff --git a/web/apps/auth/src/services/remote.ts b/web/apps/auth/src/services/remote.ts index a29632cd26..cdb73f62df 100644 --- a/web/apps/auth/src/services/remote.ts +++ b/web/apps/auth/src/services/remote.ts @@ -20,8 +20,14 @@ export interface AuthCodesAndTimeOffset { timeOffset?: number; } +/** + * Fetch the user's auth codes from remote and decrypt them using the user's + * master key. + * + * @param masterKey The user's base64 encoded master key. + */ export const getAuthCodesAndTimeOffset = async ( - masterKeyBytes: Uint8Array, + masterKey: string, ): Promise => { const authenticatorEntityKey = await getAuthenticatorEntityKey(); if (!authenticatorEntityKey) { @@ -31,7 +37,7 @@ export const getAuthCodesAndTimeOffset = async ( const authenticatorKey = await decryptAuthenticatorKey( authenticatorEntityKey, - masterKeyBytes, + masterKey, ); const { entities, timeOffset } = @@ -263,7 +269,7 @@ export const getAuthenticatorEntityKey = async (): Promise< */ const decryptAuthenticatorKey = async ( remote: AuthenticatorEntityKey, - masterKeyBytes: Uint8Array, + masterKey: string, ) => decryptBox( { @@ -271,5 +277,5 @@ const decryptAuthenticatorKey = async ( // Remote calls it the header, but it really is the nonce. nonce: remote.header, }, - masterKeyBytes, + masterKey, ); From 5e9e8bd76b0d5b248dffa96f11f5d914580647a8 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 18:30:37 +0530 Subject: [PATCH 260/316] Switch --- .../new/photos/services/ml/cluster.ts | 6 ++-- web/packages/new/photos/services/ml/index.ts | 23 +++++++------- web/packages/new/photos/services/ml/people.ts | 6 ++-- web/packages/new/photos/services/ml/worker.ts | 6 ++-- .../new/photos/services/search/index.ts | 4 +-- .../new/photos/services/search/worker.ts | 7 +++-- .../new/photos/services/user-entity/index.ts | 30 ++++++++----------- 7 files changed, 38 insertions(+), 44 deletions(-) diff --git a/web/packages/new/photos/services/ml/cluster.ts b/web/packages/new/photos/services/ml/cluster.ts index 7189c2642e..e4cf11c0e5 100644 --- a/web/packages/new/photos/services/ml/cluster.ts +++ b/web/packages/new/photos/services/ml/cluster.ts @@ -360,13 +360,13 @@ const clusterBatchLinear = async ( * Use the output of the clustering phase to (a) update any remote cgroups that * have changed, and (b) update our locally persisted clusters. * - * @param masterKey The user's master key, required for updating the cgroups on - * remote if needed. + * @param masterKey The user's master key (as a base64 string), required for + * updating the cgroups on remote if needed. */ export const reconcileClusters = async ( clusters: FaceCluster[], modifiedClusterIDs: Set, - masterKey: Uint8Array, + masterKey: string, ) => { // Index clusters by their ID for fast lookup. const clusterByID = new Map(clusters.map((c) => [c.id, c])); diff --git a/web/packages/new/photos/services/ml/index.ts b/web/packages/new/photos/services/ml/index.ts index f02078a99b..2469d01b55 100644 --- a/web/packages/new/photos/services/ml/index.ts +++ b/web/packages/new/photos/services/ml/index.ts @@ -7,7 +7,7 @@ import { isDesktop } from "ente-base/app"; import { blobCache } from "ente-base/blob-cache"; import { ensureElectron } from "ente-base/electron"; import log from "ente-base/log"; -import { masterKeyFromSession } from "ente-base/session"; +import { masterKeyB64FromSession } from "ente-base/session"; import { ComlinkWorker } from "ente-base/worker/comlink-worker"; import { type ProcessableUploadItem } from "ente-gallery/services/upload"; import { createUtilityProcess } from "ente-gallery/utils/native-worker"; @@ -360,7 +360,7 @@ export const mlSync = async () => { }; const updateClustersAndPeople = async () => { - const masterKey = await masterKeyFromSession(); + const masterKey = await masterKeyB64FromSession(); // Fetch existing cgroups from remote. await pullUserEntities("cgroup", masterKey); @@ -748,11 +748,10 @@ const regenerateFaceCropsIfNeeded = async (file: EnteFile) => { * @returns The entity ID of the newly created cgroup. */ export const addCGroup = async (name: string, cluster: FaceCluster) => { - const masterKey = await masterKeyFromSession(); const id = await addUserEntity( "cgroup", { name, assigned: [cluster], isHidden: false }, - masterKey, + await masterKeyB64FromSession(), ); await mlSync(); return id; @@ -780,11 +779,10 @@ export const addClusterToCGroup = async ( (id) => !clusterFaceIDs.has(id), ); - const masterKey = await masterKeyFromSession(); await updateOrCreateUserEntities( "cgroup", [{ ...cgroup, data: { ...cgroup.data, assigned, rejectedFaceIDs } }], - masterKey, + await masterKeyB64FromSession(), ); return mlSync(); }; @@ -798,11 +796,10 @@ export const addClusterToCGroup = async ( * user entity that will get updated. */ export const renameCGroup = async (cgroup: CGroup, name: string) => { - const masterKey = await masterKeyFromSession(); await updateOrCreateUserEntities( "cgroup", [{ ...cgroup, data: { ...cgroup.data, name } }], - masterKey, + await masterKeyB64FromSession(), ); return mlSync(); }; @@ -834,8 +831,11 @@ export const applyPersonSuggestionUpdates = async ( cgroup: CGroup, updates: PersonSuggestionUpdates, ) => { - const masterKey = await masterKeyFromSession(); - await _applyPersonSuggestionUpdates(cgroup, updates, masterKey); + await _applyPersonSuggestionUpdates( + cgroup, + updates, + await masterKeyB64FromSession(), + ); return mlSync(); }; @@ -848,11 +848,10 @@ export const applyPersonSuggestionUpdates = async ( * @param cluster The {@link FaceCluster} to hide. */ export const ignoreCluster = async (cluster: FaceCluster) => { - const masterKey = await masterKeyFromSession(); await addUserEntity( "cgroup", { name: "", assigned: [cluster], isHidden: true }, - masterKey, + await masterKeyB64FromSession(), ); return mlSync(); }; diff --git a/web/packages/new/photos/services/ml/people.ts b/web/packages/new/photos/services/ml/people.ts index b37994bc6a..6e5cba343b 100644 --- a/web/packages/new/photos/services/ml/people.ts +++ b/web/packages/new/photos/services/ml/people.ts @@ -615,13 +615,13 @@ export type PersonSuggestionUpdates = Map< * * @param updates The changes to make. See {@link PersonSuggestionUpdates}. * - * @param masterKey The user's masterKey, which is is used to encrypt and - * decrypt the entity key associated with cgroups. + * @param masterKey The user's masterKey (as a base64 string), which is is used + * to encrypt and decrypt the entity key associated with cgroups. */ export const _applyPersonSuggestionUpdates = async ( cgroup: CGroup, updates: PersonSuggestionUpdates, - masterKey: Uint8Array, + masterKey: string, ) => { const localClusters = await savedFaceClusters(); diff --git a/web/packages/new/photos/services/ml/worker.ts b/web/packages/new/photos/services/ml/worker.ts index 28ecbd09a8..c3fb908879 100644 --- a/web/packages/new/photos/services/ml/worker.ts +++ b/web/packages/new/photos/services/ml/worker.ts @@ -317,10 +317,10 @@ export class MLWorker { * after we have fetched the latest cgroups from remote (so that we do no * overwrite any remote updates). * - * @param masterKey The user's master key, required for updating remote - * cgroups if needed. + * @param masterKey The user's master key (as a base64 string), required for + * updating remote cgroups if needed. */ - async clusterFaces(masterKey: Uint8Array) { + async clusterFaces(masterKey: string) { const { clusters, modifiedClusterIDs } = await _clusterFaces( await savedFaceIndexes(), await getAllLocalFiles(), diff --git a/web/packages/new/photos/services/search/index.ts b/web/packages/new/photos/services/search/index.ts index ff09d6b64d..3d9f0d5854 100644 --- a/web/packages/new/photos/services/search/index.ts +++ b/web/packages/new/photos/services/search/index.ts @@ -1,5 +1,5 @@ import log from "ente-base/log"; -import { masterKeyFromSession } from "ente-base/session"; +import { masterKeyB64FromSession } from "ente-base/session"; import { ComlinkWorker } from "ente-base/worker/comlink-worker"; import { FileType } from "ente-media/file-type"; import i18n, { t } from "i18next"; @@ -50,7 +50,7 @@ export const logoutSearch = () => { * Fetch any data that would be needed if the user were to search. */ export const searchDataSync = () => - worker().then((w) => masterKeyFromSession().then((k) => w.sync(k))); + worker().then((w) => masterKeyB64FromSession().then((k) => w.sync(k))); /** * Set the collections and files over which we should search. diff --git a/web/packages/new/photos/services/search/worker.ts b/web/packages/new/photos/services/search/worker.ts index 02a206faf2..e12aa4bb80 100644 --- a/web/packages/new/photos/services/search/worker.ts +++ b/web/packages/new/photos/services/search/worker.ts @@ -46,10 +46,11 @@ export class SearchWorker { /** * Fetch any state we might need when the actual search happens. * - * @param masterKey The user's master key. Web workers do not have access to - * session storage so this key needs to be passed to us explicitly. + * @param masterKey The user's master key (as a base64 string). Web workers + * do not have access to session storage so this key needs to be passed to + * us explicitly. */ - async sync(masterKey: Uint8Array) { + async sync(masterKey: string) { // Let the cities fetch complete async. And do it only once per app // startup (this list is static and doesn't change). if (this.cities.length == 0) { diff --git a/web/packages/new/photos/services/user-entity/index.ts b/web/packages/new/photos/services/user-entity/index.ts index 9f5ae9a41b..3d0ecf813c 100644 --- a/web/packages/new/photos/services/user-entity/index.ts +++ b/web/packages/new/photos/services/user-entity/index.ts @@ -123,13 +123,10 @@ export const savedCGroups = (): Promise => * It uses local state to remember the latest entry the last time it did a pull, * so each subsequent pull is a lightweight diff. * - * @param masterKey The user's masterKey, which is is used to encrypt and - * decrypt the entity key. + * @param masterKey The user's masterKey (as a base64 string), which is is used + * to encrypt and decrypt the entity key. */ -export const pullUserEntities = async ( - type: EntityType, - masterKey: Uint8Array, -) => { +export const pullUserEntities = async (type: EntityType, masterKey: string) => { const entityKeyB64 = await getOrCreateEntityKeyB64(type, masterKey); let sinceTime = (await savedLatestUpdatedAt(type)) ?? 0; @@ -176,17 +173,17 @@ const isGzipped = (type: EntityType) => type == "cgroup"; export const addUserEntity = async ( type: EntityType, data: unknown, - masterKey: Uint8Array, + masterKey: string, ) => await postUserEntity( type, await encryptedUserEntityData(type, data, masterKey), ); -export const encryptedUserEntityData = async ( +const encryptedUserEntityData = async ( type: EntityType, data: unknown, - masterKey: Uint8Array, + masterKey: string, ) => { const entityKeyB64 = await getOrCreateEntityKeyB64(type, masterKey); @@ -201,13 +198,13 @@ export const encryptedUserEntityData = async ( * Update the given user entities (both on remote and locally), creating them if * they don't exist. * - * @param masterKey The user's masterKey, which is is used to encrypt and - * decrypt the entity key. + * @param masterKey The user's masterKey (as a base64 string), which is is used + * to encrypt and decrypt the entity key. */ export const updateOrCreateUserEntities = async ( type: EntityType, entities: LocalUserEntity[], - masterKey: Uint8Array, + masterKey: string, ) => await Promise.all( entities.map(({ id, data }) => @@ -234,10 +231,7 @@ export const updateOrCreateUserEntities = async ( * * See also, [Note: User entity keys]. */ -const getOrCreateEntityKeyB64 = async ( - type: EntityType, - masterKey: Uint8Array, -) => { +const getOrCreateEntityKeyB64 = async (type: EntityType, masterKey: string) => { // See if we already have it locally. const saved = await savedRemoteUserEntityKey(type); if (saved) return decryptEntityKey(saved, masterKey); @@ -264,7 +258,7 @@ const getOrCreateEntityKeyB64 = async ( return result; }; -const generateEncryptedEntityKey = async (masterKey: Uint8Array) => { +const generateEncryptedEntityKey = async (masterKey: string) => { const { encryptedData, nonce } = await encryptBox( await generateBlobOrStreamKey(), masterKey, @@ -278,7 +272,7 @@ const generateEncryptedEntityKey = async (masterKey: Uint8Array) => { */ const decryptEntityKey = async ( remote: RemoteUserEntityKey, - masterKey: Uint8Array, + masterKey: string, ) => decryptBox( { From 250aad43bc5a9647a8aecf868d71c1193c709f28 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 18:32:42 +0530 Subject: [PATCH 261/316] Switch --- web/packages/accounts/services/recovery-key.ts | 16 ++++++++++------ web/packages/shared/crypto/helpers.ts | 4 ++-- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/web/packages/accounts/services/recovery-key.ts b/web/packages/accounts/services/recovery-key.ts index 0900d48638..67616a9c41 100644 --- a/web/packages/accounts/services/recovery-key.ts +++ b/web/packages/accounts/services/recovery-key.ts @@ -6,7 +6,7 @@ import { sharedCryptoWorker, toHex, } from "ente-base/crypto"; -import { masterKeyFromSession } from "ente-base/session"; +import { masterKeyB64FromSession } from "ente-base/session"; import { getData, setData } from "ente-shared/storage/localStorage"; import { putUserRecoveryKeyAttributes } from "./user"; @@ -57,12 +57,16 @@ export const recoveryKeyB64ToMnemonic = async (recoveryKeyB64: string) => bip39.entropyToMnemonic(await toHex(recoveryKeyB64)); /** - * Return the (decrypted) recovery key of the logged in user. + * Return the (decrypted) recovery key of the logged in user, reading it from + * local storage. + * + * As a fallback for pre-recovery-key accounts, this function will also generate + * a new recovery key if needed. * * @returns The user's base64 encoded recovery key. */ export const getUserRecoveryKeyB64 = async () => { - const masterKey = await masterKeyFromSession(); + const masterKey = await masterKeyB64FromSession(); const keyAttributes: KeyAttributes = getData("keyAttributes"); const { recoveryKeyEncryptedWithMasterKey, recoveryKeyDecryptionNonce } = @@ -85,12 +89,12 @@ export const getUserRecoveryKeyB64 = async () => { * Generate a new recovery key, tell remote about it, update our local state, * and then return it. * - * This function will be used only for legacy users for whom we did not generate - * recovery keys during sign up. + * This function will be used only for (_very_) old accounts for whom we did not + * generate recovery keys during sign up. * * @returns a new base64 encoded recovery key. */ -const createNewRecoveryKey = async (masterKey: Uint8Array) => { +const createNewRecoveryKey = async (masterKey: string) => { const existingAttributes = getData("keyAttributes"); const cryptoWorker = await sharedCryptoWorker(); diff --git a/web/packages/shared/crypto/helpers.ts b/web/packages/shared/crypto/helpers.ts index a39596309a..0d91ea4740 100644 --- a/web/packages/shared/crypto/helpers.ts +++ b/web/packages/shared/crypto/helpers.ts @@ -1,6 +1,6 @@ import type { KeyAttributes } from "ente-accounts/services/user"; import { sharedCryptoWorker } from "ente-base/crypto"; -import { masterKeyFromSession } from "ente-base/session"; +import { masterKeyB64FromSession } from "ente-base/session"; import { getData, setData, setLSUser } from "ente-shared/storage/localStorage"; import { type SessionKey, setKey } from "ente-shared/storage/sessionStorage"; @@ -87,7 +87,7 @@ export const decryptDeleteAccountChallenge = async ( encryptedChallenge: string, ) => { const cryptoWorker = await sharedCryptoWorker(); - const masterKey = await masterKeyFromSession(); + const masterKey = await masterKeyB64FromSession(); const keyAttributes = getData("keyAttributes"); const secretKey = await cryptoWorker.decryptBox( { From 21febab897a60c9c79470da204aa11452451d3b6 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 18:39:30 +0530 Subject: [PATCH 262/316] Del --- web/apps/photos/src/pages/gallery.tsx | 4 +-- web/packages/base/session.ts | 37 ++------------------------- 2 files changed, 4 insertions(+), 37 deletions(-) diff --git a/web/apps/photos/src/pages/gallery.tsx b/web/apps/photos/src/pages/gallery.tsx index 05fcf39bd3..f5f5811ceb 100644 --- a/web/apps/photos/src/pages/gallery.tsx +++ b/web/apps/photos/src/pages/gallery.tsx @@ -32,7 +32,7 @@ import log from "ente-base/log"; import { clearSessionStorage, haveCredentialsInSession, - masterKeyBytesFromSessionIfLoggedIn, + masterKeyB64FromSessionIfLoggedIn, } from "ente-base/session"; import { FullScreenDropZone } from "ente-gallery/components/FullScreenDropZone"; import { type UploadTypeSelectorIntent } from "ente-gallery/components/Upload"; @@ -561,7 +561,7 @@ const Page: React.FC = () => { showSessionExpiredDialog(); return; } - if (!(await masterKeyBytesFromSessionIfLoggedIn())) { + if (!(await masterKeyB64FromSessionIfLoggedIn())) { clearSessionStorage(); router.push("/credentials"); return; diff --git a/web/packages/base/session.ts b/web/packages/base/session.ts index edb6c78137..6b6892f066 100644 --- a/web/packages/base/session.ts +++ b/web/packages/base/session.ts @@ -43,27 +43,11 @@ const SessionKeyData = z.object({ // }; /** - * Return the user's decrypted master key bytes from session storage. + * Return the user's decrypted master key (as a base64 string) from session + * storage. * * Precondition: The user should be logged in. */ -export const masterKeyFromSession = async () => { - const key = await masterKeyBytesFromSessionIfLoggedIn(); - if (key) { - return key; - } else { - throw new Error( - "The user's master key was not found in session storage. Likely they are not logged in.", - ); - } -}; - -/** - * Variant of {@link masterKeyFromSession} that returns the master key as a - * base64 string. - * - * TODO(RE): Undup - */ export const masterKeyB64FromSession = async () => { const key = await masterKeyB64FromSessionIfLoggedIn(); if (key) { @@ -86,26 +70,9 @@ export const masterKeyB64FromSession = async () => { export const haveCredentialsInSession = () => !!sessionStorage.getItem("encryptionKey"); -/** - * Return the decrypted user's master key (as bytes) from session storage if - * they are logged in, otherwise return `undefined`. - */ -export const masterKeyBytesFromSessionIfLoggedIn = async () => { - // TODO: Same value as the deprecated getKey("encryptionKey") - const value = sessionStorage.getItem("encryptionKey"); - if (!value) return undefined; - - const { encryptedData, key, nonce } = SessionKeyData.parse( - JSON.parse(value), - ); - return decryptBoxBytes({ encryptedData, nonce }, key); -}; - /** * Return the decrypted user's master key (as a base64 string) from session * storage if they are logged in, otherwise return `undefined`. - * - * TODO(RE): Undup. */ export const masterKeyB64FromSessionIfLoggedIn = async () => { // TODO: Same value as the deprecated getKey("encryptionKey") From e8187356af4dd43624fb5f30fdad855d0396c138 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 18:44:32 +0530 Subject: [PATCH 263/316] Rename --- web/apps/auth/src/pages/auth.tsx | 4 +-- web/apps/photos/src/pages/gallery.tsx | 4 +-- .../accounts/components/RecoveryKey.tsx | 10 +++---- .../accounts/pages/two-factor/setup.tsx | 4 +-- web/packages/accounts/services/passkey.ts | 7 ++--- .../accounts/services/recovery-key.ts | 12 ++++---- web/packages/base/session.ts | 30 ++++++++----------- .../new/photos/components/gallery/helpers.ts | 4 +-- web/packages/new/photos/services/ml/index.ts | 14 ++++----- .../new/photos/services/search/index.ts | 4 +-- web/packages/shared/crypto/helpers.ts | 4 +-- web/packages/shared/user/index.ts | 2 +- 12 files changed, 46 insertions(+), 53 deletions(-) diff --git a/web/apps/auth/src/pages/auth.tsx b/web/apps/auth/src/pages/auth.tsx index 7e53837490..8f9e18733b 100644 --- a/web/apps/auth/src/pages/auth.tsx +++ b/web/apps/auth/src/pages/auth.tsx @@ -22,7 +22,7 @@ import { import { useBaseContext } from "ente-base/context"; import { isHTTP401Error } from "ente-base/http"; import log from "ente-base/log"; -import { masterKeyB64FromSessionIfLoggedIn } from "ente-base/session"; +import { masterKeyFromSession } from "ente-base/session"; import { t } from "i18next"; import { useRouter } from "next/router"; import React, { useCallback, useEffect, useState } from "react"; @@ -41,7 +41,7 @@ const Page: React.FC = () => { useEffect(() => { const fetchCodes = async () => { - const masterKey = await masterKeyB64FromSessionIfLoggedIn(); + const masterKey = await masterKeyFromSession(); if (!masterKey) { stashRedirect("/auth"); void router.push("/"); diff --git a/web/apps/photos/src/pages/gallery.tsx b/web/apps/photos/src/pages/gallery.tsx index f5f5811ceb..95bcf3adee 100644 --- a/web/apps/photos/src/pages/gallery.tsx +++ b/web/apps/photos/src/pages/gallery.tsx @@ -32,7 +32,7 @@ import log from "ente-base/log"; import { clearSessionStorage, haveCredentialsInSession, - masterKeyB64FromSessionIfLoggedIn, + masterKeyFromSession, } from "ente-base/session"; import { FullScreenDropZone } from "ente-gallery/components/FullScreenDropZone"; import { type UploadTypeSelectorIntent } from "ente-gallery/components/Upload"; @@ -561,7 +561,7 @@ const Page: React.FC = () => { showSessionExpiredDialog(); return; } - if (!(await masterKeyB64FromSessionIfLoggedIn())) { + if (!(await masterKeyFromSession())) { clearSessionStorage(); router.push("/credentials"); return; diff --git a/web/packages/accounts/components/RecoveryKey.tsx b/web/packages/accounts/components/RecoveryKey.tsx index 9e1b5da3a0..525e1bc53c 100644 --- a/web/packages/accounts/components/RecoveryKey.tsx +++ b/web/packages/accounts/components/RecoveryKey.tsx @@ -18,8 +18,8 @@ import { downloadString } from "ente-base/utils/web"; import { t } from "i18next"; import { useCallback, useEffect, useState } from "react"; import { - getUserRecoveryKeyB64, - recoveryKeyB64ToMnemonic, + getUserRecoveryKey, + recoveryKeyToMnemonic, } from "../services/recovery-key"; import { CodeBlock } from "./CodeBlock"; @@ -49,7 +49,7 @@ export const RecoveryKey: React.FC = ({ useEffect(() => { if (!open) return; - void getRecoveryKeyMnemonic() + void getUserRecoveryKeyMnemonic() .then((key) => setRecoveryKey(key)) .catch(handleLoadError); }, [open, handleLoadError]); @@ -114,8 +114,8 @@ export const RecoveryKey: React.FC = ({ ); }; -const getRecoveryKeyMnemonic = async () => - recoveryKeyB64ToMnemonic(await getUserRecoveryKeyB64()); +const getUserRecoveryKeyMnemonic = async () => + recoveryKeyToMnemonic(await getUserRecoveryKey()); const downloadRecoveryKeyMnemonic = (key: string) => downloadString(key, "ente-recovery-key.txt"); diff --git a/web/packages/accounts/pages/two-factor/setup.tsx b/web/packages/accounts/pages/two-factor/setup.tsx index 3b5b01a7b5..8029b46fb7 100644 --- a/web/packages/accounts/pages/two-factor/setup.tsx +++ b/web/packages/accounts/pages/two-factor/setup.tsx @@ -1,6 +1,7 @@ import { Paper, Stack, styled, Typography } from "@mui/material"; import { CodeBlock } from "ente-accounts/components/CodeBlock"; import { Verify2FACodeForm } from "ente-accounts/components/Verify2FACodeForm"; +import { getUserRecoveryKey } from "ente-accounts/services/recovery-key"; import { appHomeRoute } from "ente-accounts/services/redirect"; import type { TwoFactorSecret } from "ente-accounts/services/user"; import { enableTwoFactor, setupTwoFactor } from "ente-accounts/services/user"; @@ -13,7 +14,6 @@ import { getData, setLSUser } from "ente-shared/storage/localStorage"; import { t } from "i18next"; import { useRouter } from "next/router"; import React, { useEffect, useState } from "react"; -import { getUserRecoveryKeyB64 } from "../../services/recovery-key"; const Page: React.FC = () => { const [twoFactorSecret, setTwoFactorSecret] = useState< @@ -29,7 +29,7 @@ const Page: React.FC = () => { const handleSubmit = async (otp: string) => { const box = await encryptBox( twoFactorSecret!.secretCode, - await getUserRecoveryKeyB64(), + await getUserRecoveryKey(), ); await enableTwoFactor({ code: otp, diff --git a/web/packages/accounts/services/passkey.ts b/web/packages/accounts/services/passkey.ts index 6f18ed216e..782ac710d1 100644 --- a/web/packages/accounts/services/passkey.ts +++ b/web/packages/accounts/services/passkey.ts @@ -13,7 +13,7 @@ import HTTPService from "ente-shared/network/HTTPService"; import { getData, setData, setLSUser } from "ente-shared/storage/localStorage"; import { getToken } from "ente-shared/storage/localStorage/helpers"; import { z } from "zod/v4"; -import { getUserRecoveryKeyB64 } from "./recovery-key"; +import { getUserRecoveryKey } from "./recovery-key"; import { unstashRedirect } from "./redirect"; /** @@ -108,10 +108,7 @@ export const openAccountsManagePasskeysPage = async () => { // If not, enable it for them by creating the necessary recovery // information to prevent them from getting locked out. const resetSecret = await generateKey(); - const box = await encryptBox( - resetSecret, - await getUserRecoveryKeyB64(), - ); + const box = await encryptBox(resetSecret, await getUserRecoveryKey()); await configurePasskeyRecovery( resetSecret, box.encryptedData, diff --git a/web/packages/accounts/services/recovery-key.ts b/web/packages/accounts/services/recovery-key.ts index 67616a9c41..530b2320d8 100644 --- a/web/packages/accounts/services/recovery-key.ts +++ b/web/packages/accounts/services/recovery-key.ts @@ -6,7 +6,7 @@ import { sharedCryptoWorker, toHex, } from "ente-base/crypto"; -import { masterKeyB64FromSession } from "ente-base/session"; +import { ensureMasterKeyFromSession } from "ente-base/session"; import { getData, setData } from "ente-shared/storage/localStorage"; import { putUserRecoveryKeyAttributes } from "./user"; @@ -49,12 +49,12 @@ export const recoveryKeyB64FromMnemonic = ( /** * Convert the provided base64 encoded recovery key into its BIP-39 mnemonic. * - * @param recoveryKeyB64 The base64 encoded recovery key to mnemonize. + * @param recoveryKey The base64 encoded recovery key to mnemonize. * * @returns A 24-word mnemonic that serves as the user visible recovery key. */ -export const recoveryKeyB64ToMnemonic = async (recoveryKeyB64: string) => - bip39.entropyToMnemonic(await toHex(recoveryKeyB64)); +export const recoveryKeyToMnemonic = async (recoveryKey: string) => + bip39.entropyToMnemonic(await toHex(recoveryKey)); /** * Return the (decrypted) recovery key of the logged in user, reading it from @@ -65,8 +65,8 @@ export const recoveryKeyB64ToMnemonic = async (recoveryKeyB64: string) => * * @returns The user's base64 encoded recovery key. */ -export const getUserRecoveryKeyB64 = async () => { - const masterKey = await masterKeyB64FromSession(); +export const getUserRecoveryKey = async () => { + const masterKey = await ensureMasterKeyFromSession(); const keyAttributes: KeyAttributes = getData("keyAttributes"); const { recoveryKeyEncryptedWithMasterKey, recoveryKeyDecryptionNonce } = diff --git a/web/packages/base/session.ts b/web/packages/base/session.ts index 6b6892f066..dbc0209666 100644 --- a/web/packages/base/session.ts +++ b/web/packages/base/session.ts @@ -44,28 +44,22 @@ const SessionKeyData = z.object({ /** * Return the user's decrypted master key (as a base64 string) from session - * storage. - * - * Precondition: The user should be logged in. + * storage, or throw if the session storage does not have the master key (which + * likely indicates that the user is not logged in). */ -export const masterKeyB64FromSession = async () => { - const key = await masterKeyB64FromSessionIfLoggedIn(); - if (key) { - return key; - } else { - throw new Error( - "The user's master key was not found in session storage. Likely they are not logged in.", - ); - } +export const ensureMasterKeyFromSession = async () => { + const key = await masterKeyFromSession(); + if (!key) throw new Error("Master key not found in session"); + return key; }; /** * Return `true` if the user's encrypted master key is present in the session. * - * Use {@link masterKeyFromSessionIfLoggedIn} to get the actual master key after - * decrypting it. This function is a similar and quicker check to verify if we - * have credentials at hand or not, but it doesn't attempt to verify that the - * key present in the session can actually be decrypted. + * Use {@link masterKeyFromSession} to get the actual master key after + * decrypting it. This function is a similar but quicker check to verify if we + * have credentials at hand or not, however it doesn't attempt to verify that + * the key present in the session can actually be decrypted. */ export const haveCredentialsInSession = () => !!sessionStorage.getItem("encryptionKey"); @@ -73,8 +67,10 @@ export const haveCredentialsInSession = () => /** * Return the decrypted user's master key (as a base64 string) from session * storage if they are logged in, otherwise return `undefined`. + * + * See also {@link ensureMasterKeyFromSession}, which is usually what we need. */ -export const masterKeyB64FromSessionIfLoggedIn = async () => { +export const masterKeyFromSession = async () => { // TODO: Same value as the deprecated getKey("encryptionKey") const value = sessionStorage.getItem("encryptionKey"); if (!value) return undefined; diff --git a/web/packages/new/photos/components/gallery/helpers.ts b/web/packages/new/photos/components/gallery/helpers.ts index 226badae81..e76aaa5056 100644 --- a/web/packages/new/photos/components/gallery/helpers.ts +++ b/web/packages/new/photos/components/gallery/helpers.ts @@ -10,7 +10,7 @@ * is a needed for fast refresh to work. */ -import { getUserRecoveryKeyB64 } from "ente-accounts/services/recovery-key"; +import { getUserRecoveryKey } from "ente-accounts/services/recovery-key"; import type { User } from "ente-accounts/services/user"; import log from "ente-base/log"; import type { Collection } from "ente-media/collection"; @@ -28,7 +28,7 @@ import type { FamilyData } from "ente-new/photos/services/user-details"; */ export const validateKey = async () => { try { - await getUserRecoveryKeyB64(); + await getUserRecoveryKey(); return true; } catch (e) { log.warn("Failed to validate key" /*, caller will logout */, e); diff --git a/web/packages/new/photos/services/ml/index.ts b/web/packages/new/photos/services/ml/index.ts index 2469d01b55..ecfc21fe99 100644 --- a/web/packages/new/photos/services/ml/index.ts +++ b/web/packages/new/photos/services/ml/index.ts @@ -7,7 +7,7 @@ import { isDesktop } from "ente-base/app"; import { blobCache } from "ente-base/blob-cache"; import { ensureElectron } from "ente-base/electron"; import log from "ente-base/log"; -import { masterKeyB64FromSession } from "ente-base/session"; +import { ensureMasterKeyFromSession } from "ente-base/session"; import { ComlinkWorker } from "ente-base/worker/comlink-worker"; import { type ProcessableUploadItem } from "ente-gallery/services/upload"; import { createUtilityProcess } from "ente-gallery/utils/native-worker"; @@ -360,7 +360,7 @@ export const mlSync = async () => { }; const updateClustersAndPeople = async () => { - const masterKey = await masterKeyB64FromSession(); + const masterKey = await ensureMasterKeyFromSession(); // Fetch existing cgroups from remote. await pullUserEntities("cgroup", masterKey); @@ -751,7 +751,7 @@ export const addCGroup = async (name: string, cluster: FaceCluster) => { const id = await addUserEntity( "cgroup", { name, assigned: [cluster], isHidden: false }, - await masterKeyB64FromSession(), + await ensureMasterKeyFromSession(), ); await mlSync(); return id; @@ -782,7 +782,7 @@ export const addClusterToCGroup = async ( await updateOrCreateUserEntities( "cgroup", [{ ...cgroup, data: { ...cgroup.data, assigned, rejectedFaceIDs } }], - await masterKeyB64FromSession(), + await ensureMasterKeyFromSession(), ); return mlSync(); }; @@ -799,7 +799,7 @@ export const renameCGroup = async (cgroup: CGroup, name: string) => { await updateOrCreateUserEntities( "cgroup", [{ ...cgroup, data: { ...cgroup.data, name } }], - await masterKeyB64FromSession(), + await ensureMasterKeyFromSession(), ); return mlSync(); }; @@ -834,7 +834,7 @@ export const applyPersonSuggestionUpdates = async ( await _applyPersonSuggestionUpdates( cgroup, updates, - await masterKeyB64FromSession(), + await ensureMasterKeyFromSession(), ); return mlSync(); }; @@ -851,7 +851,7 @@ export const ignoreCluster = async (cluster: FaceCluster) => { await addUserEntity( "cgroup", { name: "", assigned: [cluster], isHidden: true }, - await masterKeyB64FromSession(), + await ensureMasterKeyFromSession(), ); return mlSync(); }; diff --git a/web/packages/new/photos/services/search/index.ts b/web/packages/new/photos/services/search/index.ts index 3d9f0d5854..4e30266995 100644 --- a/web/packages/new/photos/services/search/index.ts +++ b/web/packages/new/photos/services/search/index.ts @@ -1,5 +1,5 @@ import log from "ente-base/log"; -import { masterKeyB64FromSession } from "ente-base/session"; +import { ensureMasterKeyFromSession } from "ente-base/session"; import { ComlinkWorker } from "ente-base/worker/comlink-worker"; import { FileType } from "ente-media/file-type"; import i18n, { t } from "i18next"; @@ -50,7 +50,7 @@ export const logoutSearch = () => { * Fetch any data that would be needed if the user were to search. */ export const searchDataSync = () => - worker().then((w) => masterKeyB64FromSession().then((k) => w.sync(k))); + worker().then((w) => ensureMasterKeyFromSession().then((k) => w.sync(k))); /** * Set the collections and files over which we should search. diff --git a/web/packages/shared/crypto/helpers.ts b/web/packages/shared/crypto/helpers.ts index 0d91ea4740..dd20cb9cb4 100644 --- a/web/packages/shared/crypto/helpers.ts +++ b/web/packages/shared/crypto/helpers.ts @@ -1,6 +1,6 @@ import type { KeyAttributes } from "ente-accounts/services/user"; import { sharedCryptoWorker } from "ente-base/crypto"; -import { masterKeyB64FromSession } from "ente-base/session"; +import { ensureMasterKeyFromSession } from "ente-base/session"; import { getData, setData, setLSUser } from "ente-shared/storage/localStorage"; import { type SessionKey, setKey } from "ente-shared/storage/sessionStorage"; @@ -87,7 +87,7 @@ export const decryptDeleteAccountChallenge = async ( encryptedChallenge: string, ) => { const cryptoWorker = await sharedCryptoWorker(); - const masterKey = await masterKeyB64FromSession(); + const masterKey = await ensureMasterKeyFromSession(); const keyAttributes = getData("keyAttributes"); const secretKey = await cryptoWorker.decryptBox( { diff --git a/web/packages/shared/user/index.ts b/web/packages/shared/user/index.ts index 430d491f46..cb164dc884 100644 --- a/web/packages/shared/user/index.ts +++ b/web/packages/shared/user/index.ts @@ -3,7 +3,7 @@ import type { B64EncryptionResult } from "ente-base/crypto/libsodium"; import { getKey } from "ente-shared/storage/sessionStorage"; /** - * Deprecated, use {@link masterKeyFromSessionIfLoggedIn} instead. + * Deprecated, use {@link ensureMasterKeyFromSession} instead. */ export const getActualKey = async () => { const encryptionKeyAttributes: B64EncryptionResult = From ed2a98b3414bd1255dfb521860bbfe347c6db326 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 18:53:02 +0530 Subject: [PATCH 264/316] Rename --- web/packages/accounts/pages/recover.tsx | 10 +++++----- .../accounts/pages/two-factor/recover.tsx | 10 +++++----- web/packages/accounts/services/recovery-key.ts | 4 +--- .../new/photos/services/user-entity/index.ts | 17 +++++++++-------- .../new/photos/services/user-entity/remote.ts | 8 ++++---- 5 files changed, 24 insertions(+), 25 deletions(-) diff --git a/web/packages/accounts/pages/recover.tsx b/web/packages/accounts/pages/recover.tsx index af2ea04bc5..22a69510cd 100644 --- a/web/packages/accounts/pages/recover.tsx +++ b/web/packages/accounts/pages/recover.tsx @@ -3,7 +3,7 @@ import { AccountsPageFooter, AccountsPageTitle, } from "ente-accounts/components/layouts/centered-paper"; -import { recoveryKeyB64FromMnemonic } from "ente-accounts/services/recovery-key"; +import { recoveryKeyFromMnemonic } from "ente-accounts/services/recovery-key"; import { appHomeRoute, stashRedirect } from "ente-accounts/services/redirect"; import type { KeyAttributes, User } from "ente-accounts/services/user"; import { sendOTT } from "ente-accounts/services/user"; @@ -57,8 +57,8 @@ const Page: React.FC = () => { } }, [router]); - const recover: SingleInputFormProps["onSubmit"] = async ( - recoveryKey: string, + const handleSubmit: SingleInputFormProps["onSubmit"] = async ( + recoveryKeyMnemonic: string, setFieldError, ) => { try { @@ -68,7 +68,7 @@ const Page: React.FC = () => { encryptedData: keyAttr.masterKeyEncryptedWithRecoveryKey!, nonce: keyAttr.masterKeyDecryptionNonce!, }, - await recoveryKeyB64FromMnemonic(recoveryKey), + await recoveryKeyFromMnemonic(recoveryKeyMnemonic), ); await saveKeyInSessionStore("encryptionKey", masterKey); await decryptAndStoreToken(keyAttr, masterKey); @@ -96,7 +96,7 @@ const Page: React.FC = () => { autoComplete="off" label={t("recovery_key")} submitButtonTitle={t("recover")} - onSubmit={recover} + onSubmit={handleSubmit} /> diff --git a/web/packages/accounts/pages/two-factor/recover.tsx b/web/packages/accounts/pages/two-factor/recover.tsx index 5c4af55b8a..21593f30e7 100644 --- a/web/packages/accounts/pages/two-factor/recover.tsx +++ b/web/packages/accounts/pages/two-factor/recover.tsx @@ -5,7 +5,7 @@ import { AccountsPageFooter, AccountsPageTitle, } from "ente-accounts/components/layouts/centered-paper"; -import { recoveryKeyB64FromMnemonic } from "ente-accounts/services/recovery-key"; +import { recoveryKeyFromMnemonic } from "ente-accounts/services/recovery-key"; import { recoverTwoFactor, removeTwoFactor, @@ -87,15 +87,15 @@ const Page: React.FC = ({ twoFactorType }) => { // eslint-disable-next-line react-hooks/exhaustive-deps }, []); - const recover: SingleInputFormProps["onSubmit"] = async ( - recoveryKey: string, + const handleSubmit: SingleInputFormProps["onSubmit"] = async ( + recoveryKeyMnemonic: string, setFieldError, ) => { try { const { encryptedData, nonce } = encryptedTwoFactorSecret!; const twoFactorSecret = await decryptBox( { encryptedData, nonce }, - await recoveryKeyB64FromMnemonic(recoveryKey), + await recoveryKeyFromMnemonic(recoveryKeyMnemonic), ); const resp = await removeTwoFactor( sessionID!, @@ -146,7 +146,7 @@ const Page: React.FC = ({ twoFactorType }) => { autoComplete="off" label={t("recovery_key")} submitButtonTitle={t("recover")} - onSubmit={recover} + onSubmit={handleSubmit} /> showContactSupportDialog()}> diff --git a/web/packages/accounts/services/recovery-key.ts b/web/packages/accounts/services/recovery-key.ts index 530b2320d8..bf85d3b47c 100644 --- a/web/packages/accounts/services/recovery-key.ts +++ b/web/packages/accounts/services/recovery-key.ts @@ -22,9 +22,7 @@ bip39.setDefaultWordlist("english"); * * @returns A base64 string representing the underlying bytes of the recovery key. */ -export const recoveryKeyB64FromMnemonic = ( - recoveryKeyMnemonicOrHex: string, -) => { +export const recoveryKeyFromMnemonic = (recoveryKeyMnemonicOrHex: string) => { const trimmedInput = recoveryKeyMnemonicOrHex .trim() .split(" ") diff --git a/web/packages/new/photos/services/user-entity/index.ts b/web/packages/new/photos/services/user-entity/index.ts index 3d0ecf813c..0fa2118ec5 100644 --- a/web/packages/new/photos/services/user-entity/index.ts +++ b/web/packages/new/photos/services/user-entity/index.ts @@ -127,11 +127,11 @@ export const savedCGroups = (): Promise => * to encrypt and decrypt the entity key. */ export const pullUserEntities = async (type: EntityType, masterKey: string) => { - const entityKeyB64 = await getOrCreateEntityKeyB64(type, masterKey); + const entityKey = await getOrCreateEntityKey(type, masterKey); let sinceTime = (await savedLatestUpdatedAt(type)) ?? 0; while (true) { - const diff = await userEntityDiff(type, sinceTime, entityKeyB64); + const diff = await userEntityDiff(type, sinceTime, entityKey); if (diff.length == 0) break; const entityByID = new Map( @@ -185,13 +185,13 @@ const encryptedUserEntityData = async ( data: unknown, masterKey: string, ) => { - const entityKeyB64 = await getOrCreateEntityKeyB64(type, masterKey); + const entityKey = await getOrCreateEntityKey(type, masterKey); const json = JSON.stringify(data); const bytes = isGzipped(type) ? await gzip(json) : new TextEncoder().encode(json); - return encryptBlob(bytes, entityKeyB64); + return encryptBlob(bytes, entityKey); }; /** @@ -215,8 +215,8 @@ export const updateOrCreateUserEntities = async ( ); /** - * Return the entity key that can be used to decrypt the encrypted contents of - * user entities of the given {@link type}. + * Return the entity key (base64 string) that can be used to decrypt the + * encrypted contents of user entities of the given {@link type}. * * 1. See if we have the encrypted entity key present locally. If so, return the * entity key by decrypting it using with the user's master key. @@ -231,7 +231,7 @@ export const updateOrCreateUserEntities = async ( * * See also, [Note: User entity keys]. */ -const getOrCreateEntityKeyB64 = async (type: EntityType, masterKey: string) => { +const getOrCreateEntityKey = async (type: EntityType, masterKey: string) => { // See if we already have it locally. const saved = await savedRemoteUserEntityKey(type); if (saved) return decryptEntityKey(saved, masterKey); @@ -268,7 +268,8 @@ const generateEncryptedEntityKey = async (masterKey: string) => { }; /** - * Decrypt an encrypted entity key using the user's master key. + * Decrypt an encrypted entity key (as a base64 string) using the provided + * user's {@link masterKey}. */ const decryptEntityKey = async ( remote: RemoteUserEntityKey, diff --git a/web/packages/new/photos/services/user-entity/remote.ts b/web/packages/new/photos/services/user-entity/remote.ts index beb8448cea..6b4192e4ff 100644 --- a/web/packages/new/photos/services/user-entity/remote.ts +++ b/web/packages/new/photos/services/user-entity/remote.ts @@ -105,8 +105,8 @@ const RemoteUserEntityChange = z.object({ * only entities whose {@link updatedAt} is more than the given value. Set this * to zero to start from the beginning. * - * @param entityKeyB64 The base64 encoded key to use for decrypting the - * encrypted contents of the user entity. + * @param entityKey The base64 encoded key to use for decrypting the encrypted + * contents of the user entity. * * [Note: Diff response will have at most one entry for an id] * @@ -129,10 +129,10 @@ const RemoteUserEntityChange = z.object({ export const userEntityDiff = async ( type: EntityType, sinceTime: number, - entityKeyB64: string, + entityKey: string, ): Promise => { const decrypt = (encryptedData: string, decryptionHeader: string) => - decryptBlobBytes({ encryptedData, decryptionHeader }, entityKeyB64); + decryptBlobBytes({ encryptedData, decryptionHeader }, entityKey); const params = new URLSearchParams({ type, From 60a2febe466e1de2cfe72ccba5e1afa5514648d1 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 19:40:47 +0530 Subject: [PATCH 265/316] Move --- .../photos/src/services/collectionService.ts | 2 +- web/packages/accounts/services/session.ts | 8 ++- web/packages/accounts/services/user.ts | 43 +++++++++++ web/packages/base/http.ts | 2 +- web/packages/base/local-user.ts | 71 ------------------- web/packages/base/token.ts | 25 +++++++ .../gallery/components/viewer/FileViewer.tsx | 2 +- web/packages/gallery/services/download.ts | 2 +- web/packages/gallery/services/video.ts | 3 +- web/packages/new/photos/services/dedup.ts | 2 +- web/packages/new/photos/services/settings.ts | 2 +- 11 files changed, 82 insertions(+), 80 deletions(-) delete mode 100644 web/packages/base/local-user.ts create mode 100644 web/packages/base/token.ts diff --git a/web/apps/photos/src/services/collectionService.ts b/web/apps/photos/src/services/collectionService.ts index 43646c8b45..8877158f3f 100644 --- a/web/apps/photos/src/services/collectionService.ts +++ b/web/apps/photos/src/services/collectionService.ts @@ -1,6 +1,6 @@ import type { User } from "ente-accounts/services/user"; import { encryptMetadataJSON, sharedCryptoWorker } from "ente-base/crypto"; -import { ensureLocalUser } from "ente-base/local-user"; +import { ensureLocalUser } from "ente-accounts/services/user"; import log from "ente-base/log"; import { apiURL } from "ente-base/origins"; import { UpdateMagicMetadataRequest } from "ente-gallery/services/file"; diff --git a/web/packages/accounts/services/session.ts b/web/packages/accounts/services/session.ts index ac6263395d..53abbdc4f7 100644 --- a/web/packages/accounts/services/session.ts +++ b/web/packages/accounts/services/session.ts @@ -1,14 +1,18 @@ import type { KeyAttributes } from "ente-accounts/services/user"; import { authenticatedRequestHeaders, HTTPError } from "ente-base/http"; -import { ensureLocalUser, getAuthToken } from "ente-base/local-user"; import log from "ente-base/log"; import { apiURL } from "ente-base/origins"; +import { getAuthToken } from "ente-base/token"; import { getData } from "ente-shared/storage/localStorage"; import { nullToUndefined } from "ente-utils/transform"; import { z } from "zod/v4"; import type { SRPAttributes } from "./srp-remote"; import { getSRPAttributes } from "./srp-remote"; -import { putUserKeyAttributes, RemoteKeyAttributes } from "./user"; +import { + ensureLocalUser, + putUserKeyAttributes, + RemoteKeyAttributes, +} from "./user"; type SessionValidity = | { status: "invalid" } diff --git a/web/packages/accounts/services/user.ts b/web/packages/accounts/services/user.ts index effb1e8f0a..440fc01045 100644 --- a/web/packages/accounts/services/user.ts +++ b/web/packages/accounts/services/user.ts @@ -18,6 +18,49 @@ export interface User { twoFactorSessionID: string; } +// TODO: During login the only field present is email. Which makes this +// optionality indicated by these types incorrect. +const LocalUser = z.object({ + /** The user's ID. */ + id: z.number(), + /** The user's email. */ + email: z.string(), + /** + * The user's (plaintext) auth token. + * + * It is used for making API calls on their behalf, by passing this token as + * the value of the X-Auth-Token header in the HTTP request. + */ + token: z.string(), +}); + +/** Locally available data for the logged in user */ +export type LocalUser = z.infer; + +/** + * Return the logged-in user, if someone is indeed logged in. Otherwise return + * `undefined`. + * + * The user's data is stored in the browser's localStorage. Thus, this function + * only works from the main thread, not from web workers (local storage is not + * accessible to web workers). + */ +export const localUser = (): LocalUser | undefined => { + // TODO: duplicate of getData("user") + const s = localStorage.getItem("user"); + if (!s) return undefined; + return LocalUser.parse(JSON.parse(s)); +}; + +/** + * A wrapper over {@link localUser} with that throws if no one is logged in. + */ +export const ensureLocalUser = (): LocalUser => { + const user = localUser(); + if (!user) throw new Error("Not logged in"); + return user; +}; + /** * The user's various encrypted keys and their related attributes. * diff --git a/web/packages/base/http.ts b/web/packages/base/http.ts index 9c073df3e0..2b8e189b74 100644 --- a/web/packages/base/http.ts +++ b/web/packages/base/http.ts @@ -2,8 +2,8 @@ import { desktopAppVersion, isDesktop } from "ente-base/app"; import { wait } from "ente-utils/promise"; import { z } from "zod/v4"; import { clientPackageName } from "./app"; -import { ensureAuthToken } from "./local-user"; import log from "./log"; +import { ensureAuthToken } from "./token"; /** * Return headers that should be passed alongwith (almost) all authenticated diff --git a/web/packages/base/local-user.ts b/web/packages/base/local-user.ts deleted file mode 100644 index 33dbcab27e..0000000000 --- a/web/packages/base/local-user.ts +++ /dev/null @@ -1,71 +0,0 @@ -// TODO: This file belongs to the accounts package - -import { z } from "zod/v4"; -import { getKVS } from "./kv"; - -// TODO: During login the only field present is email. Which makes this -// optionality indicated by these types incorrect. -const LocalUser = z.object({ - /** The user's ID. */ - id: z.number(), - /** The user's email. */ - email: z.string(), - /** - * The user's (plaintext) auth token. - * - * It is used for making API calls on their behalf, by passing this token as - * the value of the X-Auth-Token header in the HTTP request. - */ - token: z.string(), -}); - -/** Locally available data for the logged in user */ -export type LocalUser = z.infer; - -/** - * Return the logged-in user, if someone is indeed logged in. Otherwise return - * `undefined`. - * - * The user's data is stored in the browser's localStorage. Thus, this function - * only works from the main thread, not from web workers (local storage is not - * accessible to web workers). - */ -export const localUser = (): LocalUser | undefined => { - // TODO: duplicate of getData("user") - const s = localStorage.getItem("user"); - if (!s) return undefined; - return LocalUser.parse(JSON.parse(s)); -}; - -/** - * A wrapper over {@link localUser} with that throws if no one is logged in. - */ -export const ensureLocalUser = (): LocalUser => { - const user = localUser(); - if (!user) throw new Error("Not logged in"); - return user; -}; - -/** - * Return the user's auth token, if present. - * - * The user's auth token is stored in KV DB after they have successfully logged - * in. This function returns that saved auth token. - * - * The underlying data is stored in IndexedDB, and can be accessed from web - * workers. - */ -export const getAuthToken = () => getKVS("token"); - -/** - * Return the user's auth token, or throw an error. - * - * The user's auth token can be retrieved using {@link getAuthToken}. This - * function is a wrapper which throws an error if the token is not found (which - * should only happen if the user is not logged in). - */ -export const ensureAuthToken = async () => { - const token = await getAuthToken(); - if (!token) throw new Error("Not logged in"); - return token; -}; diff --git a/web/packages/base/token.ts b/web/packages/base/token.ts new file mode 100644 index 0000000000..f23d7866c7 --- /dev/null +++ b/web/packages/base/token.ts @@ -0,0 +1,25 @@ +import { getKVS } from "./kv"; + +/** + * Return the user's auth token, if present. + * + * The user's auth token is stored in KV DB after they have successfully logged + * in. This function returns that saved auth token. + * + * The underlying data is stored in IndexedDB, and can be accessed from web + * workers. + */ +export const getAuthToken = () => getKVS("token"); + +/** + * Return the user's auth token, or throw an error. + * + * The user's auth token can be retrieved using {@link getAuthToken}. This + * function is a wrapper which throws an error if the token is not found (which + * should only happen if the user is not logged in). + */ +export const ensureAuthToken = async () => { + const token = await getAuthToken(); + if (!token) throw new Error("Not logged in"); + return token; +}; diff --git a/web/packages/gallery/components/viewer/FileViewer.tsx b/web/packages/gallery/components/viewer/FileViewer.tsx index 2bae740a44..076cee8b6c 100644 --- a/web/packages/gallery/components/viewer/FileViewer.tsx +++ b/web/packages/gallery/components/viewer/FileViewer.tsx @@ -17,6 +17,7 @@ import { Typography, type ModalProps, } from "@mui/material"; +import type { LocalUser } from "ente-accounts/services/user"; import { isDesktop } from "ente-base/app"; import { SpacedRow } from "ente-base/components/containers"; import { InlineErrorIndicator } from "ente-base/components/ErrorIndicator"; @@ -29,7 +30,6 @@ import { type ModalVisibilityProps } from "ente-base/components/utils/modal"; import { useBaseContext } from "ente-base/context"; import { lowercaseExtension } from "ente-base/file-name"; import { formattedListJoin, ut } from "ente-base/i18n"; -import type { LocalUser } from "ente-base/local-user"; import log from "ente-base/log"; import { FileInfo, diff --git a/web/packages/gallery/services/download.ts b/web/packages/gallery/services/download.ts index 3da489fd90..b847b26326 100644 --- a/web/packages/gallery/services/download.ts +++ b/web/packages/gallery/services/download.ts @@ -12,9 +12,9 @@ import { retryEnsuringHTTPOk, type PublicAlbumsCredentials, } from "ente-base/http"; -import { ensureAuthToken } from "ente-base/local-user"; import log from "ente-base/log"; import { apiURL, customAPIOrigin } from "ente-base/origins"; +import { ensureAuthToken } from "ente-base/token"; import type { EnteFile } from "ente-media/file"; import { FileType } from "ente-media/file-type"; import { decodeLivePhoto } from "ente-media/live-photo"; diff --git a/web/packages/gallery/services/video.ts b/web/packages/gallery/services/video.ts index 0587ebc3af..7348ad028d 100644 --- a/web/packages/gallery/services/video.ts +++ b/web/packages/gallery/services/video.ts @@ -1,3 +1,4 @@ +import { ensureLocalUser } from "ente-accounts/services/user"; import { isDesktop } from "ente-base/app"; import { assertionFailed } from "ente-base/assert"; import { decryptBlobBytes, encryptBlob } from "ente-base/crypto"; @@ -5,9 +6,9 @@ import type { EncryptedBlob } from "ente-base/crypto/types"; import { ensureElectron } from "ente-base/electron"; import { isHTTP4xxError, type PublicAlbumsCredentials } from "ente-base/http"; import { getKV, getKVB, getKVN, setKV } from "ente-base/kv"; -import { ensureAuthToken, ensureLocalUser } from "ente-base/local-user"; import log from "ente-base/log"; import { apiURL } from "ente-base/origins"; +import { ensureAuthToken } from "ente-base/token"; import { fileLogID, type EnteFile } from "ente-media/file"; import { filePublicMagicMetadata, diff --git a/web/packages/new/photos/services/dedup.ts b/web/packages/new/photos/services/dedup.ts index 52ab0eb592..ba6538cbe7 100644 --- a/web/packages/new/photos/services/dedup.ts +++ b/web/packages/new/photos/services/dedup.ts @@ -1,6 +1,6 @@ import { assertionFailed } from "ente-base/assert"; import { newID } from "ente-base/id"; -import { ensureLocalUser } from "ente-base/local-user"; +import { ensureLocalUser } from "ente-accounts/services/user"; import type { EnteFile } from "ente-media/file"; import { filePublicMagicMetadata, diff --git a/web/packages/new/photos/services/settings.ts b/web/packages/new/photos/services/settings.ts index add0b72dd5..3d3649d211 100644 --- a/web/packages/new/photos/services/settings.ts +++ b/web/packages/new/photos/services/settings.ts @@ -2,8 +2,8 @@ * @file Storage (in-memory, local, remote) and update of various settings. */ +import { localUser } from "ente-accounts/services/user"; import { isDevBuild } from "ente-base/env"; -import { localUser } from "ente-base/local-user"; import log from "ente-base/log"; import { updateShouldDisableCFUploadProxy } from "ente-gallery/services/upload"; import { nullToUndefined } from "ente-utils/transform"; From 560533b2d43428d508cc2cfa3a8394b0b1a5e40f Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 19:49:58 +0530 Subject: [PATCH 266/316] accessor --- web/packages/accounts/services/user.ts | 13 +++++++++++++ web/packages/shared/storage/localStorage/index.ts | 1 + 2 files changed, 14 insertions(+) diff --git a/web/packages/accounts/services/user.ts b/web/packages/accounts/services/user.ts index 440fc01045..f75c72679f 100644 --- a/web/packages/accounts/services/user.ts +++ b/web/packages/accounts/services/user.ts @@ -221,6 +221,19 @@ export const RemoteKeyAttributes = z.object({ recoveryKeyDecryptionNonce: z.string().nullish().transform(nullToUndefined), }); +/** + * Return {@link KeyAttributes} if they are present in local storage. + * + * The key attributes are stored in the browser's localStorage. Thus, this + * function only works from the main thread, not from web workers (local storage + * is not accessible to web workers). + */ +export const savedKeyAttributes = (): KeyAttributes | undefined => { + const jsonString = localStorage.getItem("keyAttributes"); + if (!jsonString) return undefined; + return RemoteKeyAttributes.parse(JSON.parse(jsonString)); +}; + export interface UserVerificationResponse { id: number; keyAttributes?: KeyAttributes | undefined; diff --git a/web/packages/shared/storage/localStorage/index.ts b/web/packages/shared/storage/localStorage/index.ts index ec8491e04d..f5878c3c0c 100644 --- a/web/packages/shared/storage/localStorage/index.ts +++ b/web/packages/shared/storage/localStorage/index.ts @@ -3,6 +3,7 @@ import log from "ente-base/log"; export type LocalStorageKey = | "user" + // See also savedKeyAttributes. | "keyAttributes" | "originalKeyAttributes" | "isFirstLogin" From 2df06ccf618e888f0d9815ee30d35d62a65d83e1 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 20:00:42 +0530 Subject: [PATCH 267/316] Use --- web/packages/accounts/services/user.ts | 21 +++++++++++++++++---- web/packages/shared/crypto/helpers.ts | 9 ++++++--- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/web/packages/accounts/services/user.ts b/web/packages/accounts/services/user.ts index f75c72679f..130c4020b1 100644 --- a/web/packages/accounts/services/user.ts +++ b/web/packages/accounts/services/user.ts @@ -55,10 +55,16 @@ export const localUser = (): LocalUser | undefined => { /** * A wrapper over {@link localUser} with that throws if no one is logged in. */ -export const ensureLocalUser = (): LocalUser => { - const user = localUser(); - if (!user) throw new Error("Not logged in"); - return user; +export const ensureLocalUser = (): LocalUser => + ensureExpectedLoggedInValue(localUser()); + +/** + * A helper function that throws an error if a value that is expected to be + * truthy when the user is logged in is instead falsey. + */ +const ensureExpectedLoggedInValue = (t: T | undefined): T => { + if (!t) throw new Error("Not logged in"); + return t; }; /** @@ -234,6 +240,13 @@ export const savedKeyAttributes = (): KeyAttributes | undefined => { return RemoteKeyAttributes.parse(JSON.parse(jsonString)); }; +/** + * A variant of {@link savedKeyAttributes} that throws if keyAttributes are not + * present in local storage. + */ +export const ensureSavedKeyAttributes = (): KeyAttributes => + ensureExpectedLoggedInValue(savedKeyAttributes()); + export interface UserVerificationResponse { id: number; keyAttributes?: KeyAttributes | undefined; diff --git a/web/packages/shared/crypto/helpers.ts b/web/packages/shared/crypto/helpers.ts index dd20cb9cb4..330cb91bf5 100644 --- a/web/packages/shared/crypto/helpers.ts +++ b/web/packages/shared/crypto/helpers.ts @@ -1,8 +1,11 @@ -import type { KeyAttributes } from "ente-accounts/services/user"; +import { + ensureSavedKeyAttributes, + type KeyAttributes, +} from "ente-accounts/services/user"; import { sharedCryptoWorker } from "ente-base/crypto"; import { ensureMasterKeyFromSession } from "ente-base/session"; import { getData, setData, setLSUser } from "ente-shared/storage/localStorage"; -import { type SessionKey, setKey } from "ente-shared/storage/sessionStorage"; +import { setKey, type SessionKey } from "ente-shared/storage/sessionStorage"; export async function decryptAndStoreToken( keyAttributes: KeyAttributes, @@ -88,7 +91,7 @@ export const decryptDeleteAccountChallenge = async ( ) => { const cryptoWorker = await sharedCryptoWorker(); const masterKey = await ensureMasterKeyFromSession(); - const keyAttributes = getData("keyAttributes"); + const keyAttributes = ensureSavedKeyAttributes(); const secretKey = await cryptoWorker.decryptBox( { encryptedData: keyAttributes.encryptedSecretKey, From 1a15bcb7e04b9f190b8c2d5242738e86534691d3 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 5 Jun 2025 20:17:33 +0530 Subject: [PATCH 268/316] lint fix --- web/apps/photos/src/services/collectionService.ts | 2 +- web/packages/accounts/services/recovery-key.ts | 8 ++++---- web/packages/new/photos/services/dedup.ts | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/web/apps/photos/src/services/collectionService.ts b/web/apps/photos/src/services/collectionService.ts index 8877158f3f..3a046ab4cb 100644 --- a/web/apps/photos/src/services/collectionService.ts +++ b/web/apps/photos/src/services/collectionService.ts @@ -1,6 +1,6 @@ import type { User } from "ente-accounts/services/user"; -import { encryptMetadataJSON, sharedCryptoWorker } from "ente-base/crypto"; import { ensureLocalUser } from "ente-accounts/services/user"; +import { encryptMetadataJSON, sharedCryptoWorker } from "ente-base/crypto"; import log from "ente-base/log"; import { apiURL } from "ente-base/origins"; import { UpdateMagicMetadataRequest } from "ente-gallery/services/file"; diff --git a/web/packages/accounts/services/recovery-key.ts b/web/packages/accounts/services/recovery-key.ts index bf85d3b47c..0f0eb5da97 100644 --- a/web/packages/accounts/services/recovery-key.ts +++ b/web/packages/accounts/services/recovery-key.ts @@ -58,8 +58,8 @@ export const recoveryKeyToMnemonic = async (recoveryKey: string) => * Return the (decrypted) recovery key of the logged in user, reading it from * local storage. * - * As a fallback for pre-recovery-key accounts, this function will also generate - * a new recovery key if needed. + * As a fallback for old accounts that generated recovery keys on first view, + * this function will also generate a new recovery key if needed. * * @returns The user's base64 encoded recovery key. */ @@ -87,8 +87,8 @@ export const getUserRecoveryKey = async () => { * Generate a new recovery key, tell remote about it, update our local state, * and then return it. * - * This function will be used only for (_very_) old accounts for whom we did not - * generate recovery keys during sign up. + * This function is meant only for (very!) old accounts for whom the app did not + * generate recovery keys on sign up but instead generated them on first view. * * @returns a new base64 encoded recovery key. */ diff --git a/web/packages/new/photos/services/dedup.ts b/web/packages/new/photos/services/dedup.ts index ba6538cbe7..d86c9abaf7 100644 --- a/web/packages/new/photos/services/dedup.ts +++ b/web/packages/new/photos/services/dedup.ts @@ -1,6 +1,6 @@ +import { ensureLocalUser } from "ente-accounts/services/user"; import { assertionFailed } from "ente-base/assert"; import { newID } from "ente-base/id"; -import { ensureLocalUser } from "ente-accounts/services/user"; import type { EnteFile } from "ente-media/file"; import { filePublicMagicMetadata, From 7bdcbcca02813d4b900ca0e0ac512ed1e87e42bd Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Thu, 5 Jun 2025 18:03:36 +0200 Subject: [PATCH 269/316] trim new album name --- mobile/lib/ui/collections/album/new_row_item.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mobile/lib/ui/collections/album/new_row_item.dart b/mobile/lib/ui/collections/album/new_row_item.dart index 0415f37dcf..82f39b95c5 100644 --- a/mobile/lib/ui/collections/album/new_row_item.dart +++ b/mobile/lib/ui/collections/album/new_row_item.dart @@ -35,7 +35,8 @@ class NewAlbumRowItemWidget extends StatelessWidget { textCapitalization: TextCapitalization.words, popnavAfterSubmission: true, onSubmit: (String text) async { - if (text.trim() == "") { + text = text.trim(); + if (text == "") { return; } From e06ccc35a0e65e85de737f330b9929f4cb420057 Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Thu, 5 Jun 2025 18:16:38 +0200 Subject: [PATCH 270/316] deselect albums on pop --- mobile/lib/ui/tabs/home_widget.dart | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mobile/lib/ui/tabs/home_widget.dart b/mobile/lib/ui/tabs/home_widget.dart index 7414637e70..ed83d7e1f3 100644 --- a/mobile/lib/ui/tabs/home_widget.dart +++ b/mobile/lib/ui/tabs/home_widget.dart @@ -611,6 +611,11 @@ class _HomeWidgetState extends State { } else { Navigator.pop(context); } + } else if (_selectedTabIndex == 1) { + if (_selectedAlbums.albums.isNotEmpty) { + _selectedAlbums.clearAll(); + return; + } } else { Bus.instance .fire(TabChangedEvent(0, TabChangedEventSource.backButton)); From a86e9b8f57cc9de3c15c1661fbdd9f327a1717a1 Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Thu, 5 Jun 2025 18:20:53 +0200 Subject: [PATCH 271/316] still support returning to home --- mobile/lib/ui/tabs/home_widget.dart | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mobile/lib/ui/tabs/home_widget.dart b/mobile/lib/ui/tabs/home_widget.dart index ed83d7e1f3..5f5e44e158 100644 --- a/mobile/lib/ui/tabs/home_widget.dart +++ b/mobile/lib/ui/tabs/home_widget.dart @@ -611,15 +611,16 @@ class _HomeWidgetState extends State { } else { Navigator.pop(context); } - } else if (_selectedTabIndex == 1) { + return; + } + if (_selectedTabIndex == 1) { if (_selectedAlbums.albums.isNotEmpty) { _selectedAlbums.clearAll(); return; } - } else { - Bus.instance - .fire(TabChangedEvent(0, TabChangedEventSource.backButton)); } + Bus.instance + .fire(TabChangedEvent(0, TabChangedEventSource.backButton)); }, child: Scaffold( drawerScrimColor: getEnteColorScheme(context).strokeFainter, From 385f35b6e55846cf4ceb71b7c946ca1dc76505b0 Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Thu, 5 Jun 2025 19:41:48 +0200 Subject: [PATCH 272/316] pop album selection --- mobile/lib/ui/collections/flex_grid_view.dart | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/mobile/lib/ui/collections/flex_grid_view.dart b/mobile/lib/ui/collections/flex_grid_view.dart index 5080167937..34e2402dfc 100644 --- a/mobile/lib/ui/collections/flex_grid_view.dart +++ b/mobile/lib/ui/collections/flex_grid_view.dart @@ -109,9 +109,23 @@ class _CollectionsFlexiGridViewWidgetState @override Widget build(BuildContext context) { - return widget.albumViewType == AlbumViewType.grid - ? _buildGridView(context, const ValueKey("grid_view")) - : _buildListView(context, const ValueKey("list_view")); + return PopScope( + canPop: !isAnyAlbumSelected, + onPopInvokedWithResult: (didPop, _) { + if (didPop) { + return; + } + if (isAnyAlbumSelected) { + widget.selectedAlbums!.clearAll(); + setState(() { + isAnyAlbumSelected = false; + }); + } + }, + child: widget.albumViewType == AlbumViewType.grid + ? _buildGridView(context, const ValueKey("grid_view")) + : _buildListView(context, const ValueKey("list_view")), + ); } Widget _buildGridView(BuildContext context, Key key) { From 4b49bab0bde15ebef662bde475125dabf6900163 Mon Sep 17 00:00:00 2001 From: vishnukvmd Date: Thu, 5 Jun 2025 23:57:51 +0530 Subject: [PATCH 273/316] Prettify --- docs/docs/overview/community.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/docs/overview/community.md b/docs/docs/overview/community.md index 0f2d34add2..bec3e8ea50 100644 --- a/docs/docs/overview/community.md +++ b/docs/docs/overview/community.md @@ -7,8 +7,7 @@ description: > # Community We are building Ente in the open with our community on -[GitHub](https://github.com/ente-io/ente) and -[Discord](https://ente.io/discord) +[GitHub](https://github.com/ente-io/ente) and [Discord](https://ente.io/discord) ## Blog From c98726e4d0725e21769248e4e4dfde1a1757f29a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yusuf=20Dan=C4=B1=C5=9F?= Date: Thu, 5 Jun 2025 23:03:27 +0300 Subject: [PATCH 274/316] [auth] Add R10.net icon support --- .../custom-icons/_data/custom-icons.json | 8 ++ auth/assets/custom-icons/icons/r10.svg | 96 +++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 auth/assets/custom-icons/icons/r10.svg diff --git a/auth/assets/custom-icons/_data/custom-icons.json b/auth/assets/custom-icons/_data/custom-icons.json index dab6cd6adb..498d28ec81 100644 --- a/auth/assets/custom-icons/_data/custom-icons.json +++ b/auth/assets/custom-icons/_data/custom-icons.json @@ -1020,6 +1020,14 @@ "qiniu" ] }, + { + "title": "R10.net", + "slug": "r10", + "altNames": [ + "R10", + "r10.net" + ] + }, { "title": "Raindrop.io", "slug": "raindrop_io", diff --git a/auth/assets/custom-icons/icons/r10.svg b/auth/assets/custom-icons/icons/r10.svg new file mode 100644 index 0000000000..5be8bf4800 --- /dev/null +++ b/auth/assets/custom-icons/icons/r10.svg @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 146db578b610dedfb19126741178a3d74c827703 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 07:29:21 +0530 Subject: [PATCH 275/316] Move --- .../new/photos/components/DeleteAccount.tsx | 2 +- web/packages/new/photos/services/user.ts | 45 +++++++++++++++++++ web/packages/shared/crypto/helpers.ts | 34 +------------- 3 files changed, 47 insertions(+), 34 deletions(-) diff --git a/web/packages/new/photos/components/DeleteAccount.tsx b/web/packages/new/photos/components/DeleteAccount.tsx index 9812f63c18..958685312a 100644 --- a/web/packages/new/photos/components/DeleteAccount.tsx +++ b/web/packages/new/photos/components/DeleteAccount.tsx @@ -17,11 +17,11 @@ import { type DropdownOption, } from "ente-new/photos/components/DropdownInput"; import { + decryptDeleteAccountChallenge, deleteAccount, getAccountDeleteChallenge, } from "ente-new/photos/services/user"; import { initiateEmail } from "ente-new/photos/utils/web"; -import { decryptDeleteAccountChallenge } from "ente-shared/crypto/helpers"; import { useFormik } from "formik"; import { t } from "i18next"; import React, { useState } from "react"; diff --git a/web/packages/new/photos/services/user.ts b/web/packages/new/photos/services/user.ts index d84bc2ae38..2f63f0ea53 100644 --- a/web/packages/new/photos/services/user.ts +++ b/web/packages/new/photos/services/user.ts @@ -1,5 +1,8 @@ +import { ensureSavedKeyAttributes } from "ente-accounts/services/user"; +import { sharedCryptoWorker } from "ente-base/crypto"; import { authenticatedRequestHeaders, ensureOk } from "ente-base/http"; import { apiURL } from "ente-base/origins"; +import { ensureMasterKeyFromSession } from "ente-base/session"; import { nullToUndefined } from "ente-utils/transform"; import { z } from "zod/v4"; @@ -51,6 +54,20 @@ const DeleteChallengeResponse = z.object({ encryptedChallenge: z.string().nullish().transform(nullToUndefined), }); +/** + * Initiate an account deletion by obtaining a delete challenge from remote. + * + * Account deletion is a three step process: + * + * 1. Client obtains a encrypted challenge from remote by using + * {@link getAccountDeleteChallenge}. + * + * 2. Client asks the user to reverify their password to solve the challenge and + * obtain the decrypted challenge ({@link decryptDeleteAccountChallenge}). + * + * 3. Client performs the account deletion using the solved challenge + * ({@link deleteAccount}). + */ export const getAccountDeleteChallenge = async () => { const res = await fetch(await apiURL("/users/delete-challenge"), { headers: await authenticatedRequestHeaders(), @@ -59,6 +76,34 @@ export const getAccountDeleteChallenge = async () => { return DeleteChallengeResponse.parse(await res.json()); }; +/** + * Decrypt the {@link encryptedChallenge} sent by remote during the delete + * account flow ({@link getAccountDeleteChallenge}), returning a value that can + * then directly be passed to the actual delete account request + * ({@link deleteAccount}). + */ +export const decryptDeleteAccountChallenge = async ( + encryptedChallenge: string, +) => { + const cryptoWorker = await sharedCryptoWorker(); + const masterKey = await ensureMasterKeyFromSession(); + const keyAttributes = ensureSavedKeyAttributes(); + const secretKey = await cryptoWorker.decryptBox( + { + encryptedData: keyAttributes.encryptedSecretKey, + nonce: keyAttributes.secretKeyDecryptionNonce, + }, + masterKey, + ); + const b64DecryptedChallenge = await cryptoWorker.boxSealOpen( + encryptedChallenge, + keyAttributes.publicKey, + secretKey, + ); + const utf8DecryptedChallenge = atob(b64DecryptedChallenge); + return utf8DecryptedChallenge; +}; + /** * Delete the logged in user's account on remote. * diff --git a/web/packages/shared/crypto/helpers.ts b/web/packages/shared/crypto/helpers.ts index 330cb91bf5..18685c0845 100644 --- a/web/packages/shared/crypto/helpers.ts +++ b/web/packages/shared/crypto/helpers.ts @@ -1,9 +1,5 @@ -import { - ensureSavedKeyAttributes, - type KeyAttributes, -} from "ente-accounts/services/user"; +import { type KeyAttributes } from "ente-accounts/services/user"; import { sharedCryptoWorker } from "ente-base/crypto"; -import { ensureMasterKeyFromSession } from "ente-base/session"; import { getData, setData, setLSUser } from "ente-shared/storage/localStorage"; import { setKey, type SessionKey } from "ente-shared/storage/sessionStorage"; @@ -79,31 +75,3 @@ export const saveKeyInSessionStore = async ( electron.saveMasterKeyB64(key); } }; - -/** - * Decrypt the {@link encryptedChallenge} sent by remote during the delete - * account flow ({@link getAccountDeleteChallenge}), returning a value that can - * then directly be passed to the actual delete account request - * ({@link deleteAccount}). - */ -export const decryptDeleteAccountChallenge = async ( - encryptedChallenge: string, -) => { - const cryptoWorker = await sharedCryptoWorker(); - const masterKey = await ensureMasterKeyFromSession(); - const keyAttributes = ensureSavedKeyAttributes(); - const secretKey = await cryptoWorker.decryptBox( - { - encryptedData: keyAttributes.encryptedSecretKey, - nonce: keyAttributes.secretKeyDecryptionNonce, - }, - masterKey, - ); - const b64DecryptedChallenge = await cryptoWorker.boxSealOpen( - encryptedChallenge, - keyAttributes.publicKey, - secretKey, - ); - const utf8DecryptedChallenge = atob(b64DecryptedChallenge); - return utf8DecryptedChallenge; -}; From c8481fdb3e3b79faafbbfc6480ec3538536b94bc Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 08:10:52 +0530 Subject: [PATCH 276/316] Variant --- web/packages/base/crypto/index.ts | 2 +- web/packages/base/crypto/libsodium.ts | 25 +++++++++++++++++++++---- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index 4ddada04c2..4e45558314 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -78,7 +78,7 @@ * Apart from these two, there are other secondary and one off types. * * 1. "Regular" JavaScript strings. These are indicated by the *UTF8 suffix on - * the function that deals with them. These strings will be obtained by utf-8 + * the function that deals with them. These strings will be obtained by UTF-8 * encoding (or decoding) the underlying bytes. * * 2. Hex representations of the bytes. These are indicated by the *Hex suffix diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index 9bf37dd390..094a165400 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -356,7 +356,7 @@ export const encryptBlob = async ( /** * Encrypt the provided JSON value (using {@link encryptBlob}) after converting - * it to a JSON string (and utf-8 encoding it to obtain bytes). + * it to a JSON string (and UTF-8 encoding it to obtain bytes). * * Use {@link decryptMetadataJSON} to decrypt the result and convert it back to * a JSON value. @@ -521,7 +521,7 @@ export const decryptBox = ( /** * Variant of {@link decryptBoxBytes} that returns the data after decoding the - * decrypted bytes as a utf-8 string. + * decrypted bytes as a UTF-8 string. */ export const decryptBoxUTF8 = async ( box: EncryptedBox, @@ -784,8 +784,25 @@ export const boxSeal = async (data: string, publicKey: string) => { /** * Decrypt the result of {@link boxSeal}. * - * All parameters, and the result, are base64 string representations of the - * underlying data. + * All parameters are base64 string representations of the underlying data. The + * result is the bytes obtained by decryption. + */ +export const boxSealOpenBytes = async ( + encryptedData: string, + publicKey: string, + secretKey: string, +) => { + await sodium.ready; + return sodium.crypto_box_seal_open( + await fromB64(encryptedData), + await fromB64(publicKey), + await fromB64(secretKey), + ); +}; + +/** + * A variant of {@link boxSealOpenBytes} that returns the result as a base64 + * string. */ export const boxSealOpen = async ( encryptedData: string, From 3671080cfcf482ed89aaf63d82bf08ed8ede036b Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 08:35:53 +0530 Subject: [PATCH 277/316] Conv --- .../src/services/publicCollectionService.ts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/web/apps/photos/src/services/publicCollectionService.ts b/web/apps/photos/src/services/publicCollectionService.ts index 09966f3d0d..b263bab226 100644 --- a/web/apps/photos/src/services/publicCollectionService.ts +++ b/web/apps/photos/src/services/publicCollectionService.ts @@ -325,13 +325,15 @@ export const getPublicCollection = async ( const collectionName = (fetchedCollection.name = fetchedCollection.name || - (await cryptoWorker.decryptBoxUTF8( - { - encryptedData: fetchedCollection.encryptedName, - nonce: fetchedCollection.nameDecryptionNonce, - }, - collectionKey, - ))); + new TextDecoder().decode( + await cryptoWorker.decryptBoxBytes( + { + encryptedData: fetchedCollection.encryptedName, + nonce: fetchedCollection.nameDecryptionNonce, + }, + collectionKey, + ), + )); let collectionPublicMagicMetadata: CollectionPublicMagicMetadata; if (fetchedCollection.pubMagicMetadata?.data) { From eed1341003bb64dc1c00b16f855b29b3238e6d7d Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 09:35:49 +0530 Subject: [PATCH 278/316] Conv --- web/packages/base/crypto/ente-impl.ts | 1 - web/packages/base/crypto/index.ts | 13 ------------- web/packages/base/crypto/libsodium.ts | 12 ------------ web/packages/base/crypto/worker.ts | 1 - web/packages/new/photos/services/collections.ts | 16 +++++++++------- 5 files changed, 9 insertions(+), 34 deletions(-) diff --git a/web/packages/base/crypto/ente-impl.ts b/web/packages/base/crypto/ente-impl.ts index b5f428d701..b391ef5d9e 100644 --- a/web/packages/base/crypto/ente-impl.ts +++ b/web/packages/base/crypto/ente-impl.ts @@ -22,7 +22,6 @@ export const _initChunkEncryption = libsodium.initChunkEncryption; export const _encryptStreamChunk = libsodium.encryptStreamChunk; export const _decryptBox = libsodium.decryptBox; export const _decryptBoxBytes = libsodium.decryptBoxBytes; -export const _decryptBoxUTF8 = libsodium.decryptBoxUTF8; export const _decryptBlob = libsodium.decryptBlob; export const _decryptBlobBytes = libsodium.decryptBlobBytes; export const _decryptMetadataJSON = libsodium.decryptMetadataJSON; diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index 4e45558314..ed644d1fd5 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -344,19 +344,6 @@ export const decryptBoxBytes = ( ? ei._decryptBoxBytes(box, key) : sharedWorker().then((w) => w.decryptBoxBytes(box, key)); -/** - * Variant of {@link decryptBoxBytes} that returns the decrypted bytes as a - * "JavaScript string", specifically a UTF-8 string. That is, after decryption - * we obtain raw bytes, which we interpret as a UTF-8 string. - */ -export const decryptBoxUTF8 = ( - box: EncryptedBox, - key: BytesOrB64, -): Promise => - inWorker() - ? ei._decryptBoxUTF8(box, key) - : sharedWorker().then((w) => w.decryptBoxUTF8(box, key)); - /** * Decrypt a blob encrypted using either {@link encryptBlobBytes} or * {@link encryptBlob} and return it as a base64 encoded string. diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index 094a165400..3871fdd169 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -519,18 +519,6 @@ export const decryptBox = ( key: BytesOrB64, ): Promise => decryptBoxBytes(box, key).then(toB64); -/** - * Variant of {@link decryptBoxBytes} that returns the data after decoding the - * decrypted bytes as a UTF-8 string. - */ -export const decryptBoxUTF8 = async ( - box: EncryptedBox, - key: BytesOrB64, -): Promise => { - await sodium.ready; - return sodium.to_string(await decryptBoxBytes(box, key)); -}; - /** * Decrypt the result of {@link encryptBlobBytes} or {@link encryptBlob}. */ diff --git a/web/packages/base/crypto/worker.ts b/web/packages/base/crypto/worker.ts index 22fa693d79..330a9b09e3 100644 --- a/web/packages/base/crypto/worker.ts +++ b/web/packages/base/crypto/worker.ts @@ -30,7 +30,6 @@ export class CryptoWorker { encryptStreamChunk = ei._encryptStreamChunk; decryptBox = ei._decryptBox; decryptBoxBytes = ei._decryptBoxBytes; - decryptBoxUTF8 = ei._decryptBoxUTF8; decryptBlob = ei._decryptBlob; decryptBlobBytes = ei._decryptBlobBytes; decryptMetadataJSON = ei._decryptMetadataJSON; diff --git a/web/packages/new/photos/services/collections.ts b/web/packages/new/photos/services/collections.ts index ed58b32544..3613615220 100644 --- a/web/packages/new/photos/services/collections.ts +++ b/web/packages/new/photos/services/collections.ts @@ -226,13 +226,15 @@ export const getCollectionWithSecrets = async ( } const collectionName = collection.name || - (await cryptoWorker.decryptBoxUTF8( - { - encryptedData: collection.encryptedName, - nonce: collection.nameDecryptionNonce, - }, - collectionKey, - )); + new TextDecoder().decode( + await cryptoWorker.decryptBoxBytes( + { + encryptedData: collection.encryptedName, + nonce: collection.nameDecryptionNonce, + }, + collectionKey, + ), + ); let collectionMagicMetadata: CollectionMagicMetadata; if (collection.magicMetadata?.data) { From 7c0450c364081f980b002bbbb625f0f6697996da Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 09:40:35 +0530 Subject: [PATCH 279/316] Conv and simplify --- .../photos/src/services/collectionService.ts | 10 ++++-- web/packages/base/crypto/ente-impl.ts | 1 - web/packages/base/crypto/index.ts | 34 ++++++------------- web/packages/base/crypto/libsodium.ts | 14 +------- web/packages/base/crypto/worker.ts | 1 - 5 files changed, 19 insertions(+), 41 deletions(-) diff --git a/web/apps/photos/src/services/collectionService.ts b/web/apps/photos/src/services/collectionService.ts index 3a046ab4cb..f25ab63afa 100644 --- a/web/apps/photos/src/services/collectionService.ts +++ b/web/apps/photos/src/services/collectionService.ts @@ -74,7 +74,10 @@ const createCollection = async ( const { encryptedData: encryptedKey, nonce: keyDecryptionNonce } = await cryptoWorker.encryptBox(collectionKey, encryptionKey); const { encryptedData: encryptedName, nonce: nameDecryptionNonce } = - await cryptoWorker.encryptBoxUTF8(collectionName, collectionKey); + await cryptoWorker.encryptBox( + new TextEncoder().encode(collectionName), + collectionKey, + ); let encryptedMagicMetadata: EncryptedMagicMetadata; if (magicMetadataProps) { @@ -477,7 +480,10 @@ export const renameCollection = async ( const token = getToken(); const cryptoWorker = await sharedCryptoWorker(); const { encryptedData: encryptedName, nonce: nameDecryptionNonce } = - await cryptoWorker.encryptBoxUTF8(newCollectionName, collection.key); + await cryptoWorker.encryptBox( + new TextEncoder().encode(newCollectionName), + collection.key, + ); const collectionRenameRequest = { collectionID: collection.id, encryptedName, diff --git a/web/packages/base/crypto/ente-impl.ts b/web/packages/base/crypto/ente-impl.ts index b391ef5d9e..a1e07bccfc 100644 --- a/web/packages/base/crypto/ente-impl.ts +++ b/web/packages/base/crypto/ente-impl.ts @@ -13,7 +13,6 @@ export const _fromHex = libsodium.fromHex; export const _generateKey = libsodium.generateKey; export const _generateBlobOrStreamKey = libsodium.generateBlobOrStreamKey; export const _encryptBox = libsodium.encryptBox; -export const _encryptBoxUTF8 = libsodium.encryptBoxUTF8; export const _encryptBlob = libsodium.encryptBlob; export const _encryptBlobBytes = libsodium.encryptBlobBytes; export const _encryptMetadataJSON = libsodium.encryptMetadataJSON; diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index ed644d1fd5..cfb2717521 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -62,26 +62,24 @@ * * There are two primary types used when exchanging data with these functions: * - * 1. Base64 strings. Unqualified strings are taken as base64 encoded - * representations of the underlying data. Usually, the unqualified "base" - * function deals with Base64 strings, since they also are the data type in - * which we usually send the encryted data etc to remote. + * 1. Base64 strings. Unless stated otherwise, all strings are taken as base64 + * encoded representations of the underlying data. Usually, the unqualified + * function deals with base64 strings, since they also are the data type in + * which we usually store and send the data. * * 2. Raw bytes. Uint8Arrays are byte arrays. The functions that deal with bytes - * are indicated by a *Bytes suffix in their name. + * are usually indicated by a *Bytes suffix in their name, but not always + * since it might also be the natural choice for functions that deal with + * larger amounts of data. * - * Where possible and useful, functions also accept a union of these two - a + * Where relevant and useful, functions also accept a union of these two - a * {@link BytesOrB64} where the implementation will automatically convert * to/from base64 to bytes if needed, thus saving on unnecessary conversions at * the caller side. * - * Apart from these two, there are other secondary and one off types. + * Apart from these two, there are other secondary, one off types. * - * 1. "Regular" JavaScript strings. These are indicated by the *UTF8 suffix on - * the function that deals with them. These strings will be obtained by UTF-8 - * encoding (or decoding) the underlying bytes. - * - * 2. Hex representations of the bytes. These are indicated by the *Hex suffix + * 1. Hex representations of the bytes. These are indicated by the *Hex suffix * on the functions dealing with them. * * 2. JSON values. These are indicated by the *JSON suffix on the functions @@ -208,18 +206,6 @@ export const encryptBox = ( ? ei._encryptBox(data, key) : sharedWorker().then((w) => w.encryptBox(data, key)); -/** - * A variant of {@link encryptBox} that first UTF-8 encodes the input string to - * obtain bytes, which it then encrypts. - */ -export const encryptBoxUTF8 = ( - data: string, - key: BytesOrB64, -): Promise => - inWorker() - ? ei._encryptBoxUTF8(data, key) - : sharedWorker().then((w) => w.encryptBoxUTF8(data, key)); - /** * Encrypt the given data, returning a blob containing the encrypted data and a * decryption header as base64 strings. diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index 3871fdd169..c627db171e 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -287,18 +287,6 @@ export const encryptBox = async ( }; }; -/** - * A variant of {@link encryptBox} that first converts the input string into - * bytes using a UTF-8 encoding, and then encrypts those bytes. - */ -export const encryptBoxUTF8 = async ( - data: string, - key: BytesOrB64, -): Promise => { - await sodium.ready; - return encryptBox(sodium.from_string(data), key); -}; - /** * Encrypt the given data using libsodium's secretstream APIs without chunking. * @@ -550,7 +538,7 @@ export const decryptBlob = ( /** * Decrypt the result of {@link encryptMetadataJSON} and return the JSON value - * obtained by parsing the decrypted JSON string (which is obtained by utf-8 + * obtained by parsing the decrypted JSON string (which is obtained by UTF-8 * decoding the decrypted bytes). * * Since TypeScript doesn't currently have a native JSON type, the returned diff --git a/web/packages/base/crypto/worker.ts b/web/packages/base/crypto/worker.ts index 330a9b09e3..82f4400bf8 100644 --- a/web/packages/base/crypto/worker.ts +++ b/web/packages/base/crypto/worker.ts @@ -21,7 +21,6 @@ export class CryptoWorker { generateKey = ei._generateKey; generateBlobOrStreamKey = ei._generateBlobOrStreamKey; encryptBox = ei._encryptBox; - encryptBoxUTF8 = ei._encryptBoxUTF8; encryptBlob = ei._encryptBlob; encryptBlobBytes = ei._encryptBlobBytes; encryptMetadataJSON = ei._encryptMetadataJSON; From 8519183013db443cc5e0def53debe18711719308 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 09:54:39 +0530 Subject: [PATCH 280/316] kp --- web/packages/accounts/services/user.ts | 2 +- web/packages/base/crypto/ente-impl.ts | 1 + web/packages/base/crypto/index.ts | 19 +++++++++++++++---- web/packages/base/crypto/libsodium.ts | 6 +++--- web/packages/base/crypto/types.ts | 18 ++++++++++++++++++ web/packages/base/crypto/worker.ts | 1 + 6 files changed, 39 insertions(+), 8 deletions(-) diff --git a/web/packages/accounts/services/user.ts b/web/packages/accounts/services/user.ts index 130c4020b1..1cd6e67766 100644 --- a/web/packages/accounts/services/user.ts +++ b/web/packages/accounts/services/user.ts @@ -148,7 +148,7 @@ export interface KeyAttributes { * * Base64 encoded. * - * [Note: Public and secret key nomenclature] + * [Note: privateKey and secretKey] * * The nomenclature for the key pair follows libsodium's conventions * (https://doc.libsodium.org/public-key_cryptography/authenticated_encryption#key-pair-generation), diff --git a/web/packages/base/crypto/ente-impl.ts b/web/packages/base/crypto/ente-impl.ts index a1e07bccfc..ad56a0c599 100644 --- a/web/packages/base/crypto/ente-impl.ts +++ b/web/packages/base/crypto/ente-impl.ts @@ -33,6 +33,7 @@ export const _chunkHashFinal = libsodium.chunkHashFinal; export const _generateKeyPair = libsodium.generateKeyPair; export const _boxSeal = libsodium.boxSeal; export const _boxSealOpen = libsodium.boxSealOpen; +export const _boxSealOpenBytes = libsodium.boxSealOpenBytes; export const _generateDeriveKeySalt = libsodium.generateDeriveKeySalt; export const _deriveKey = libsodium.deriveKey; export const _deriveSensitiveKey = libsodium.deriveSensitiveKey; diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index cfb2717521..9de7798a0f 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -99,6 +99,7 @@ import type { EncryptedFile, InitChunkDecryptionResult, InitChunkEncryptionResult, + KeyPair, SodiumStateAddress, } from "./types"; import type { CryptoWorker } from "./worker"; @@ -407,10 +408,7 @@ export const decryptMetadataJSON = ( /** * Generate a new public/private keypair. */ -export const generateKeyPair = (): Promise<{ - publicKey: string; - privateKey: string; -}> => +export const generateKeyPair = (): Promise => inWorker() ? ei._generateKeyPair() : sharedWorker().then((w) => w.generateKeyPair()); @@ -436,6 +434,19 @@ export const boxSealOpen = ( : sharedWorker().then((w) => w.boxSealOpen(encryptedData, publicKey, secretKey), ); +/** + * Variant of {@link boxSealOpen} that returns the decrypted bytes as it is + * (without encoding them to base64). + */ +export const boxSealOpenBytes = ( + encryptedData: string, + keyPair: KeyPair, +): Promise => + inWorker() + ? ei._boxSealOpenBytes(encryptedData, keyPair) + : sharedWorker().then((w) => + w._boxSealOpenBytes(encryptedData, keyPair), + ); /** * Return a new randomly generated 128-bit salt (as a base64 string). diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index c627db171e..f629106607 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -21,6 +21,7 @@ import type { EncryptedFile, InitChunkDecryptionResult, InitChunkEncryptionResult, + KeyPair, SodiumStateAddress, } from "./types"; @@ -765,14 +766,13 @@ export const boxSeal = async (data: string, publicKey: string) => { */ export const boxSealOpenBytes = async ( encryptedData: string, - publicKey: string, - secretKey: string, + { publicKey, privateKey }: KeyPair, ) => { await sodium.ready; return sodium.crypto_box_seal_open( await fromB64(encryptedData), await fromB64(publicKey), - await fromB64(secretKey), + await fromB64(privateKey), ); }; diff --git a/web/packages/base/crypto/types.ts b/web/packages/base/crypto/types.ts index f884c1fc71..0ceb9be1a2 100644 --- a/web/packages/base/crypto/types.ts +++ b/web/packages/base/crypto/types.ts @@ -172,6 +172,24 @@ export interface InitChunkDecryptionResult { decryptionChunkSize: number; } +/** + * A pair of public and private keys. + */ +export interface KeyPair { + /** + * The public key of the keypair, as a base64 encoded string. + */ + publicKey: string; + /** + * The private key of the keypair, as a base64 encoded string. + * + * Some places also refer to it as the "secret key". + * + * See: [Note: privateKey and secretKey]. + */ + privateKey: string; +} + /** * A key derived from a user provided passphrase, and the various attributes * that were used during the key derivation. diff --git a/web/packages/base/crypto/worker.ts b/web/packages/base/crypto/worker.ts index 82f4400bf8..4214855b3c 100644 --- a/web/packages/base/crypto/worker.ts +++ b/web/packages/base/crypto/worker.ts @@ -41,6 +41,7 @@ export class CryptoWorker { generateKeyPair = ei._generateKeyPair; boxSeal = ei._boxSeal; boxSealOpen = ei._boxSealOpen; + boxSealOpenBytes = ei._boxSealOpenBytes; generateDeriveKeySalt = ei._generateDeriveKeySalt; deriveKey = ei._deriveKey; deriveSensitiveKey = ei._deriveSensitiveKey; From abdc3bbca189861d717c4617a697044f60899cb6 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 09:56:54 +0530 Subject: [PATCH 281/316] Alt --- web/packages/accounts/services/user.ts | 9 ++++-- web/packages/base/crypto/index.ts | 2 +- web/packages/base/crypto/libsodium.ts | 2 +- web/packages/new/photos/services/user.ts | 37 ++++++++++++------------ 4 files changed, 26 insertions(+), 24 deletions(-) diff --git a/web/packages/accounts/services/user.ts b/web/packages/accounts/services/user.ts index 1cd6e67766..602b67e979 100644 --- a/web/packages/accounts/services/user.ts +++ b/web/packages/accounts/services/user.ts @@ -59,10 +59,13 @@ export const ensureLocalUser = (): LocalUser => ensureExpectedLoggedInValue(localUser()); /** - * A helper function that throws an error if a value that is expected to be - * truthy when the user is logged in is instead falsey. + * A function throws an error if a value that is expected to be truthy when the + * user is logged in is instead falsey. + * + * This is meant as a convenience wrapper to assert that a value we expect when + * the user is logged in is indeed there. */ -const ensureExpectedLoggedInValue = (t: T | undefined): T => { +export const ensureExpectedLoggedInValue = (t: T | undefined): T => { if (!t) throw new Error("Not logged in"); return t; }; diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index 9de7798a0f..b09d12fca5 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -441,7 +441,7 @@ export const boxSealOpen = ( export const boxSealOpenBytes = ( encryptedData: string, keyPair: KeyPair, -): Promise => +): Promise => inWorker() ? ei._boxSealOpenBytes(encryptedData, keyPair) : sharedWorker().then((w) => diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index f629106607..906e8246b7 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -767,7 +767,7 @@ export const boxSeal = async (data: string, publicKey: string) => { export const boxSealOpenBytes = async ( encryptedData: string, { publicKey, privateKey }: KeyPair, -) => { +): Promise => { await sodium.ready; return sodium.crypto_box_seal_open( await fromB64(encryptedData), diff --git a/web/packages/new/photos/services/user.ts b/web/packages/new/photos/services/user.ts index 2f63f0ea53..bd8634dce7 100644 --- a/web/packages/new/photos/services/user.ts +++ b/web/packages/new/photos/services/user.ts @@ -1,11 +1,25 @@ import { ensureSavedKeyAttributes } from "ente-accounts/services/user"; -import { sharedCryptoWorker } from "ente-base/crypto"; +import { boxSealOpenBytes, decryptBox } from "ente-base/crypto"; +import type { KeyPair } from "ente-base/crypto/types"; import { authenticatedRequestHeaders, ensureOk } from "ente-base/http"; import { apiURL } from "ente-base/origins"; import { ensureMasterKeyFromSession } from "ente-base/session"; import { nullToUndefined } from "ente-utils/transform"; import { z } from "zod/v4"; +/** + * Return the public/private keypair of the currently logged in user. + */ +export const ensureUserKeyPair = async (): Promise => { + const { encryptedSecretKey, secretKeyDecryptionNonce, publicKey } = + ensureSavedKeyAttributes(); + const privateKey = await decryptBox( + { encryptedData: encryptedSecretKey, nonce: secretKeyDecryptionNonce }, + await ensureMasterKeyFromSession(), + ); + return { publicKey, privateKey }; +}; + /** * Fetch the public key from remote for the user (if any) who has registered * with remote with the given {@link email}. @@ -84,25 +98,10 @@ export const getAccountDeleteChallenge = async () => { */ export const decryptDeleteAccountChallenge = async ( encryptedChallenge: string, -) => { - const cryptoWorker = await sharedCryptoWorker(); - const masterKey = await ensureMasterKeyFromSession(); - const keyAttributes = ensureSavedKeyAttributes(); - const secretKey = await cryptoWorker.decryptBox( - { - encryptedData: keyAttributes.encryptedSecretKey, - nonce: keyAttributes.secretKeyDecryptionNonce, - }, - masterKey, +) => + new TextDecoder().decode( + await boxSealOpenBytes(encryptedChallenge, await ensureUserKeyPair()), ); - const b64DecryptedChallenge = await cryptoWorker.boxSealOpen( - encryptedChallenge, - keyAttributes.publicKey, - secretKey, - ); - const utf8DecryptedChallenge = atob(b64DecryptedChallenge); - return utf8DecryptedChallenge; -}; /** * Delete the logged in user's account on remote. From 4152751d5297fb76ef87324c80f0b8439a920ff1 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 10:38:19 +0530 Subject: [PATCH 282/316] Fix --- web/packages/base/crypto/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index b09d12fca5..b9949fc030 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -445,7 +445,7 @@ export const boxSealOpenBytes = ( inWorker() ? ei._boxSealOpenBytes(encryptedData, keyPair) : sharedWorker().then((w) => - w._boxSealOpenBytes(encryptedData, keyPair), + w.boxSealOpenBytes(encryptedData, keyPair), ); /** From 14da86097303eed6d288ffe5bf23355eef3a1b22 Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Fri, 6 Jun 2025 11:37:07 +0530 Subject: [PATCH 283/316] Handle incorrect pause --- mobile/lib/module/download/manager.dart | 49 +++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 4 deletions(-) diff --git a/mobile/lib/module/download/manager.dart b/mobile/lib/module/download/manager.dart index c93dfde066..47cacc7d69 100644 --- a/mobile/lib/module/download/manager.dart +++ b/mobile/lib/module/download/manager.dart @@ -22,6 +22,7 @@ class DownloadManager { final Map> _completers = {}; final Map> _streams = {}; final Map _cancelTokens = {}; + final Map _downloadStartTimes = {}; DownloadManager(this._dio); @@ -44,6 +45,7 @@ class DownloadManager { String filename, int totalBytes, ) async { + _downloadStartTimes[fileId] = DateTime.now().microsecondsSinceEpoch; // If already downloading, return existing future if (_completers.containsKey(fileId)) { return _completers[fileId]!.future; @@ -97,6 +99,15 @@ class DownloadManager { /// Pause download Future pause(int fileId) async { + // ignore cancel if download started less than 1 second ago, + // this is to avoid cancellination due to different type of video players, where dispose is called + // little later after other video player operations + final startTime = _downloadStartTimes[fileId]; + if (startTime == null || + DateTime.now().microsecondsSinceEpoch - startTime < 1e6) { + _logger.info('Download paused too soon, ignoring pause request'); + return; + } final token = _cancelTokens[fileId]; if (token != null && !token.isCancelled) { token.cancel('paused'); @@ -151,6 +162,31 @@ class DownloadManager { final directory = Configuration.instance.getTempDirectory(); final basePath = '$directory${task.id}.encrypted'; + // check if base file already exists and is of correct size + final baseFile = File(basePath); + if (await baseFile.exists()) { + final existingSize = await baseFile.length(); + if (existingSize == task.totalBytes) { + _logger.info( + 'Download already exists for ${task.filename} (${existingSize}/${task.totalBytes} bytes)', + ); + task = task.copyWith( + status: DownloadStatus.completed, + filePath: basePath, + bytesDownloaded: existingSize, + ); + _updateTask(task); + completer.complete(DownloadResult(task, true)); + return; + } else { + _logger.warning( + 'Existing file size mismatch for ${task.filename}: ' + 'expected ${task.totalBytes}, but got $existingSize', + ); + await baseFile.delete(); // Remove corrupted file + } + } + // Check existing chunks and calculate progress final totalChunks = (task.totalBytes / downloadChunkSize).ceil(); final existingChunks = @@ -169,8 +205,13 @@ class DownloadManager { 'Resuming download for ${task.filename} (${task.bytesDownloaded}/${task.totalBytes} bytes)', ); for (int i = 0; i < totalChunks; i++) { - if (existingChunks[i] || cancelToken.isCancelled) continue; - _logger.info('Downloading chunk ${i + 1} of $totalChunks'); + if (existingChunks[i]) { + continue; + } + if (cancelToken.isCancelled) { + _logger.info('Download cancelled for ${task.filename}'); + break; + } await _downloadChunk(task, basePath, i, totalChunks, cancelToken); existingChunks[i] = true; } @@ -235,7 +276,7 @@ class DownloadManager { 'but got $actualSize bytes', ); existingChunks[i] = false; - await chunkFile.delete(); // Remove corrupted chunk + // await chunkFile.delete(); // Remove corrupted chunk } } @@ -270,7 +311,7 @@ class DownloadManager { final endByte = chunkIndex == totalChunks - 1 ? task.totalBytes - 1 : (startByte + downloadChunkSize) - 1; - + _logger.info('Downloading chunk ${chunkIndex + 1}/$totalChunks'); await _dio.download( FileUrl.getUrl(task.id, FileUrlType.directDownload), chunkPath, From b5ad82f5ba445e10a619c96aea6492426d717362 Mon Sep 17 00:00:00 2001 From: alewi7 Date: Fri, 6 Jun 2025 01:10:47 -0500 Subject: [PATCH 284/316] Add 5 new icons and rename existing icon (#6104) ## Description Added 5 new custom SVG icons: - **cronometer.svg** - **xai.svg** - **toshl_finance.svg** - **aternos.svg** - **atomic_mail.svg** Also renamed an existing icon **'mercado_livre.svg'** to **'mercado_libre.svg'** to match the brand's official name. ## Tests No formal tests added. Verified manually that all SVGs open correctly in the browser and display as expected. --- .../custom-icons/_data/custom-icons.json | 23 +++- auth/assets/custom-icons/icons/aternos.svg | 13 +++ auth/assets/custom-icons/icons/cronometer.svg | 25 +++++ .../{mercado_livre.svg => mercado_libre.svg} | 0 .../custom-icons/icons/toshl_finance.svg | 103 ++++++++++++++++++ auth/assets/custom-icons/icons/xai.svg | 35 ++++++ 6 files changed, 197 insertions(+), 2 deletions(-) create mode 100644 auth/assets/custom-icons/icons/aternos.svg create mode 100644 auth/assets/custom-icons/icons/cronometer.svg rename auth/assets/custom-icons/icons/{mercado_livre.svg => mercado_libre.svg} (100%) create mode 100644 auth/assets/custom-icons/icons/toshl_finance.svg create mode 100644 auth/assets/custom-icons/icons/xai.svg diff --git a/auth/assets/custom-icons/_data/custom-icons.json b/auth/assets/custom-icons/_data/custom-icons.json index dab6cd6adb..6f6cc41289 100644 --- a/auth/assets/custom-icons/_data/custom-icons.json +++ b/auth/assets/custom-icons/_data/custom-icons.json @@ -739,8 +739,8 @@ ] }, { - "title": "Mercado Livre", - "slug": "mercado_livre", + "title": "Mercado Libre", + "slug": "mercado_libre", "altNames": [ "Mercado Libre", "MercadoLibre", @@ -1399,6 +1399,25 @@ }, { "title": "CoinSpot" + }, + { + "title": "Aternos", + "slug": "aternos" + }, + { + "title": "Toshl Finance", + "slug": "toshl_finance", + "altNames": [ + "Toshl" + ] + }, + { + "title": "xAI", + "slug": "xai" + }, + { + "title": "Cronometer", + "slug": "cronometer" } ] } \ No newline at end of file diff --git a/auth/assets/custom-icons/icons/aternos.svg b/auth/assets/custom-icons/icons/aternos.svg new file mode 100644 index 0000000000..8f5c5ddbc0 --- /dev/null +++ b/auth/assets/custom-icons/icons/aternos.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + diff --git a/auth/assets/custom-icons/icons/cronometer.svg b/auth/assets/custom-icons/icons/cronometer.svg new file mode 100644 index 0000000000..9037cc8e50 --- /dev/null +++ b/auth/assets/custom-icons/icons/cronometer.svg @@ -0,0 +1,25 @@ + + + + + + + + diff --git a/auth/assets/custom-icons/icons/mercado_livre.svg b/auth/assets/custom-icons/icons/mercado_libre.svg similarity index 100% rename from auth/assets/custom-icons/icons/mercado_livre.svg rename to auth/assets/custom-icons/icons/mercado_libre.svg diff --git a/auth/assets/custom-icons/icons/toshl_finance.svg b/auth/assets/custom-icons/icons/toshl_finance.svg new file mode 100644 index 0000000000..64e90dc34c --- /dev/null +++ b/auth/assets/custom-icons/icons/toshl_finance.svg @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/auth/assets/custom-icons/icons/xai.svg b/auth/assets/custom-icons/icons/xai.svg new file mode 100644 index 0000000000..59246d5b24 --- /dev/null +++ b/auth/assets/custom-icons/icons/xai.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + From 7dee2c1526ce6ca91bbbcb971996c7fe94120563 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 13:30:54 +0530 Subject: [PATCH 285/316] Fix dialog state not getting reset on reopening ...without going back from accounts page. --- .../new/photos/components/DeleteAccount.tsx | 117 +++++++++--------- 1 file changed, 59 insertions(+), 58 deletions(-) diff --git a/web/packages/new/photos/components/DeleteAccount.tsx b/web/packages/new/photos/components/DeleteAccount.tsx index 958685312a..dcd25f4c88 100644 --- a/web/packages/new/photos/components/DeleteAccount.tsx +++ b/web/packages/new/photos/components/DeleteAccount.tsx @@ -40,8 +40,17 @@ type DeleteAccountProps = ModalVisibilityProps & { export const DeleteAccount: React.FC = ({ open, onClose, - onAuthenticateUser, -}) => { + ...rest +}) => ( + + + +); + +// See: [Note: MUI dialog state reset] +const DeleteAccountDialogContents: React.FC< + Omit +> = ({ onClose, onAuthenticateUser }) => { const { logout, showMiniDialog, onGenericError } = useBaseContext(); const [acceptDataDeletion, setAcceptDataDeletion] = useState(false); @@ -132,64 +141,56 @@ export const DeleteAccount: React.FC = ({ }; return ( - -

      - - - - {t("delete_account_reason_label")} + + + + {t("delete_account_reason_label")} + + {touched.reason && errors.reason && ( + + {errors.reason} - - {touched.reason && errors.reason && ( - - {errors.reason} - - )} - - - - - - {t("delete_account_confirm")} - - - {t("cancel")} - - + )} - - + + + + + {t("delete_account_confirm")} + + + {t("cancel")} + + + + ); }; From 0165f07bb97a11eacc9d3a9e85ef0bac920b9062 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 13:35:59 +0530 Subject: [PATCH 286/316] Handle cancel on the delete prompt --- web/packages/new/photos/components/DeleteAccount.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/web/packages/new/photos/components/DeleteAccount.tsx b/web/packages/new/photos/components/DeleteAccount.tsx index dcd25f4c88..cbbdc7a3a5 100644 --- a/web/packages/new/photos/components/DeleteAccount.tsx +++ b/web/packages/new/photos/components/DeleteAccount.tsx @@ -106,6 +106,7 @@ const DeleteAccountDialogContents: React.FC< color: "critical", action: resolve, }, + cancel: { text: t("cancel"), action: () => setLoading(false) }, }), ); From 5b1b52e529be3870e04dfe176d379cd8a80eb02b Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 13:40:42 +0530 Subject: [PATCH 287/316] Don't keep the spinners spinning (this handles other types of cancel too) --- web/packages/new/photos/components/DeleteAccount.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/web/packages/new/photos/components/DeleteAccount.tsx b/web/packages/new/photos/components/DeleteAccount.tsx index cbbdc7a3a5..f5f5df71b5 100644 --- a/web/packages/new/photos/components/DeleteAccount.tsx +++ b/web/packages/new/photos/components/DeleteAccount.tsx @@ -72,10 +72,12 @@ const DeleteAccountDialogContents: React.FC< }, onSubmit: async ({ reason, feedback }) => { feedback = feedback.trim(); - setLoading(true); try { + setLoading(true); const { allowDelete, encryptedChallenge } = await getAccountDeleteChallenge(); + setLoading(false); + if (allowDelete && encryptedChallenge) { await onAuthenticateUser() .then(confirmAccountDeletion) @@ -91,8 +93,8 @@ const DeleteAccountDialogContents: React.FC< } } catch (e) { onGenericError(e); + setLoading(false); } - setLoading(false); }, }); @@ -106,7 +108,6 @@ const DeleteAccountDialogContents: React.FC< color: "critical", action: resolve, }, - cancel: { text: t("cancel"), action: () => setLoading(false) }, }), ); @@ -135,6 +136,7 @@ const DeleteAccountDialogContents: React.FC< reason: string, feedback: string, ) => { + setLoading(true); const decryptedChallenge = await decryptDeleteAccountChallenge(encryptedChallenge); await deleteAccount(decryptedChallenge, reason, feedback); From e3329a8d735b9ada8ca8bb6d8b620314224582da Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 14:04:03 +0530 Subject: [PATCH 288/316] Conv --- web/apps/cast/src/services/pair.ts | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/web/apps/cast/src/services/pair.ts b/web/apps/cast/src/services/pair.ts index d724777341..56452e2191 100644 --- a/web/apps/cast/src/services/pair.ts +++ b/web/apps/cast/src/services/pair.ts @@ -1,4 +1,4 @@ -import { boxSealOpen, generateKeyPair } from "ente-base/crypto"; +import { boxSealOpenBytes, generateKeyPair } from "ente-base/crypto"; import { ensureOk, publicRequestHeaders } from "ente-base/http"; import log from "ente-base/log"; import { apiURL } from "ente-base/origins"; @@ -151,13 +151,10 @@ export const getCastPayload = async ( // Decrypt it using the private key of the pair and return the plaintext // payload, which'll be a JSON object containing the data we need to start a // slideshow for some collection. - const decryptedCastData = await boxSealOpen( - encryptedCastData, - publicKey, - privateKey, + const jsonString = new TextDecoder().decode( + await boxSealOpenBytes(encryptedCastData, { publicKey, privateKey }), ); - - return CastPayload.parse(JSON.parse(atob(decryptedCastData))); + return CastPayload.parse(JSON.parse(jsonString)); }; /** From e96774e325cff4d0e16c46b4f227faf7d9900e56 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 14:15:56 +0530 Subject: [PATCH 289/316] Conv --- web/packages/shared/crypto/helpers.ts | 30 ++++++++++++++------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/web/packages/shared/crypto/helpers.ts b/web/packages/shared/crypto/helpers.ts index 18685c0845..235cc319ba 100644 --- a/web/packages/shared/crypto/helpers.ts +++ b/web/packages/shared/crypto/helpers.ts @@ -1,5 +1,10 @@ import { type KeyAttributes } from "ente-accounts/services/user"; -import { sharedCryptoWorker } from "ente-base/crypto"; +import { + boxSealOpenBytes, + decryptBox, + sharedCryptoWorker, + toB64URLSafe, +} from "ente-base/crypto"; import { getData, setData, setLSUser } from "ente-shared/storage/localStorage"; import { setKey, type SessionKey } from "ente-shared/storage/sessionStorage"; @@ -7,27 +12,24 @@ export async function decryptAndStoreToken( keyAttributes: KeyAttributes, masterKey: string, ) { - const cryptoWorker = await sharedCryptoWorker(); const user = getData("user"); - let decryptedToken = null; const { encryptedToken } = user; + if (encryptedToken && encryptedToken.length > 0) { - const secretKey = await cryptoWorker.decryptBox( + const { encryptedSecretKey, secretKeyDecryptionNonce, publicKey } = + keyAttributes; + const privateKey = await decryptBox( { - encryptedData: keyAttributes.encryptedSecretKey, - nonce: keyAttributes.secretKeyDecryptionNonce, + encryptedData: encryptedSecretKey, + nonce: secretKeyDecryptionNonce, }, masterKey, ); - const urlUnsafeB64DecryptedToken = await cryptoWorker.boxSealOpen( - encryptedToken, - keyAttributes.publicKey, - secretKey, + + const decryptedToken = await toB64URLSafe( + await boxSealOpenBytes(encryptedToken, { publicKey, privateKey }), ); - const decryptedTokenBytes = await cryptoWorker.fromB64( - urlUnsafeB64DecryptedToken, - ); - decryptedToken = await cryptoWorker.toB64URLSafe(decryptedTokenBytes); + await setLSUser({ ...user, token: decryptedToken, From af391346d1dc81c773818931836a66998fccbf7e Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 14:23:39 +0530 Subject: [PATCH 290/316] Move --- .../accounts/components/SignUpContents.tsx | 6 +- .../accounts/pages/change-password.tsx | 6 +- web/packages/accounts/pages/credentials.tsx | 10 +-- web/packages/accounts/pages/generate.tsx | 6 +- web/packages/accounts/pages/recover.tsx | 6 +- web/packages/accounts/utils/helpers.ts | 65 +++++++++++++++++++ web/packages/shared/crypto/helpers.ts | 64 +----------------- 7 files changed, 79 insertions(+), 84 deletions(-) create mode 100644 web/packages/accounts/utils/helpers.ts diff --git a/web/packages/accounts/components/SignUpContents.tsx b/web/packages/accounts/components/SignUpContents.tsx index c9611ee3d4..3607765f4b 100644 --- a/web/packages/accounts/components/SignUpContents.tsx +++ b/web/packages/accounts/components/SignUpContents.tsx @@ -15,6 +15,7 @@ import { } from "@mui/material"; import { generateKeyAndSRPAttributes } from "ente-accounts/services/srp"; import { sendOTT } from "ente-accounts/services/user"; +import { generateAndSaveIntermediateKeyAttributes } from "ente-accounts/utils/helpers"; import { isWeakPassword } from "ente-accounts/utils/password"; import { LinkButton } from "ente-base/components/LinkButton"; import { LoadingButton } from "ente-base/components/mui/LoadingButton"; @@ -22,10 +23,7 @@ import { ShowHidePasswordInputAdornment } from "ente-base/components/mui/Passwor import { isMuseumHTTPError } from "ente-base/http"; import log from "ente-base/log"; import { setLSUser } from "ente-shared//storage/localStorage"; -import { - generateAndSaveIntermediateKeyAttributes, - saveKeyInSessionStore, -} from "ente-shared/crypto/helpers"; +import { saveKeyInSessionStore } from "ente-shared/crypto/helpers"; import { setData } from "ente-shared/storage/localStorage"; import { setJustSignedUp, diff --git a/web/packages/accounts/pages/change-password.tsx b/web/packages/accounts/pages/change-password.tsx index d05da4a044..8f4c7e0999 100644 --- a/web/packages/accounts/pages/change-password.tsx +++ b/web/packages/accounts/pages/change-password.tsx @@ -24,13 +24,11 @@ import type { UpdatedKey, User, } from "ente-accounts/services/user"; +import { generateAndSaveIntermediateKeyAttributes } from "ente-accounts/utils/helpers"; import { LinkButton } from "ente-base/components/LinkButton"; import { sharedCryptoWorker } from "ente-base/crypto"; import type { DerivedKey } from "ente-base/crypto/types"; -import { - generateAndSaveIntermediateKeyAttributes, - saveKeyInSessionStore, -} from "ente-shared/crypto/helpers"; +import { saveKeyInSessionStore } from "ente-shared/crypto/helpers"; import { getData, setData } from "ente-shared/storage/localStorage"; import { getActualKey } from "ente-shared/user"; import { t } from "i18next"; diff --git a/web/packages/accounts/pages/credentials.tsx b/web/packages/accounts/pages/credentials.tsx index 2dc62a5b37..e58e5047ea 100644 --- a/web/packages/accounts/pages/credentials.tsx +++ b/web/packages/accounts/pages/credentials.tsx @@ -30,6 +30,10 @@ import { import type { SRPAttributes } from "ente-accounts/services/srp-remote"; import { getSRPAttributes } from "ente-accounts/services/srp-remote"; import type { KeyAttributes, User } from "ente-accounts/services/user"; +import { + decryptAndStoreToken, + generateAndSaveIntermediateKeyAttributes, +} from "ente-accounts/utils/helpers"; import { LinkButton } from "ente-base/components/LinkButton"; import { LoadingIndicator } from "ente-base/components/loaders"; import { useBaseContext } from "ente-base/context"; @@ -37,11 +41,7 @@ import { sharedCryptoWorker } from "ente-base/crypto"; import type { B64EncryptionResult } from "ente-base/crypto/libsodium"; import { clearLocalStorage } from "ente-base/local-storage"; import log from "ente-base/log"; -import { - decryptAndStoreToken, - generateAndSaveIntermediateKeyAttributes, - saveKeyInSessionStore, -} from "ente-shared/crypto/helpers"; +import { saveKeyInSessionStore } from "ente-shared/crypto/helpers"; import { CustomError } from "ente-shared/error"; import { getData, setData, setLSUser } from "ente-shared/storage/localStorage"; import { diff --git a/web/packages/accounts/pages/generate.tsx b/web/packages/accounts/pages/generate.tsx index ff3411b449..76a3ece06d 100644 --- a/web/packages/accounts/pages/generate.tsx +++ b/web/packages/accounts/pages/generate.tsx @@ -14,14 +14,12 @@ import { } from "ente-accounts/services/srp"; import type { KeyAttributes, User } from "ente-accounts/services/user"; import { putUserKeyAttributes } from "ente-accounts/services/user"; +import { generateAndSaveIntermediateKeyAttributes } from "ente-accounts/utils/helpers"; import { LinkButton } from "ente-base/components/LinkButton"; import { LoadingIndicator } from "ente-base/components/loaders"; import { useBaseContext } from "ente-base/context"; import log from "ente-base/log"; -import { - generateAndSaveIntermediateKeyAttributes, - saveKeyInSessionStore, -} from "ente-shared/crypto/helpers"; +import { saveKeyInSessionStore } from "ente-shared/crypto/helpers"; import { getData } from "ente-shared/storage/localStorage"; import { justSignedUp, diff --git a/web/packages/accounts/pages/recover.tsx b/web/packages/accounts/pages/recover.tsx index 22a69510cd..08b0a22945 100644 --- a/web/packages/accounts/pages/recover.tsx +++ b/web/packages/accounts/pages/recover.tsx @@ -7,6 +7,7 @@ import { recoveryKeyFromMnemonic } from "ente-accounts/services/recovery-key"; import { appHomeRoute, stashRedirect } from "ente-accounts/services/redirect"; import type { KeyAttributes, User } from "ente-accounts/services/user"; import { sendOTT } from "ente-accounts/services/user"; +import { decryptAndStoreToken } from "ente-accounts/utils/helpers"; import { LinkButton } from "ente-base/components/LinkButton"; import { SingleInputForm, @@ -15,10 +16,7 @@ import { import { useBaseContext } from "ente-base/context"; import { decryptBox } from "ente-base/crypto"; import log from "ente-base/log"; -import { - decryptAndStoreToken, - saveKeyInSessionStore, -} from "ente-shared/crypto/helpers"; +import { saveKeyInSessionStore } from "ente-shared/crypto/helpers"; import { getData, setData } from "ente-shared/storage/localStorage"; import { getKey } from "ente-shared/storage/sessionStorage"; import { t } from "i18next"; diff --git a/web/packages/accounts/utils/helpers.ts b/web/packages/accounts/utils/helpers.ts new file mode 100644 index 0000000000..b2b9ae45af --- /dev/null +++ b/web/packages/accounts/utils/helpers.ts @@ -0,0 +1,65 @@ +// TODO: Audit this file, this can be better. e.g. do we need the Object.assign? + +import { type KeyAttributes } from "ente-accounts/services/user"; +import { + boxSealOpenBytes, + decryptBox, + sharedCryptoWorker, + toB64URLSafe, +} from "ente-base/crypto"; +import { getData, setData, setLSUser } from "ente-shared/storage/localStorage"; + +export async function decryptAndStoreToken( + keyAttributes: KeyAttributes, + masterKey: string, +) { + const user = getData("user"); + const { encryptedToken } = user; + + if (encryptedToken && encryptedToken.length > 0) { + const { encryptedSecretKey, secretKeyDecryptionNonce, publicKey } = + keyAttributes; + const privateKey = await decryptBox( + { + encryptedData: encryptedSecretKey, + nonce: secretKeyDecryptionNonce, + }, + masterKey, + ); + + const decryptedToken = await toB64URLSafe( + await boxSealOpenBytes(encryptedToken, { publicKey, privateKey }), + ); + + await setLSUser({ + ...user, + token: decryptedToken, + encryptedToken: null, + }); + } +} + +// We encrypt the masterKey, with an intermediate key derived from the +// passphrase (with Interactive mem and ops limits) to avoid saving it to local +// storage in plain text. This means that on the web user will always have to +// enter their passphrase to access their masterKey. +export async function generateAndSaveIntermediateKeyAttributes( + passphrase: string, + existingKeyAttributes: KeyAttributes, + key: string, +): Promise { + const cryptoWorker = await sharedCryptoWorker(); + const intermediateKek = await cryptoWorker.deriveInteractiveKey(passphrase); + const { encryptedData: encryptedKey, nonce: keyDecryptionNonce } = + await cryptoWorker.encryptBox(key, intermediateKek.key); + + const intermediateKeyAttributes = Object.assign(existingKeyAttributes, { + encryptedKey, + keyDecryptionNonce, + kekSalt: intermediateKek.salt, + opsLimit: intermediateKek.opsLimit, + memLimit: intermediateKek.memLimit, + }); + setData("keyAttributes", intermediateKeyAttributes); + return intermediateKeyAttributes; +} diff --git a/web/packages/shared/crypto/helpers.ts b/web/packages/shared/crypto/helpers.ts index 235cc319ba..315fa3b36d 100644 --- a/web/packages/shared/crypto/helpers.ts +++ b/web/packages/shared/crypto/helpers.ts @@ -1,68 +1,6 @@ -import { type KeyAttributes } from "ente-accounts/services/user"; -import { - boxSealOpenBytes, - decryptBox, - sharedCryptoWorker, - toB64URLSafe, -} from "ente-base/crypto"; -import { getData, setData, setLSUser } from "ente-shared/storage/localStorage"; +import { sharedCryptoWorker } from "ente-base/crypto"; import { setKey, type SessionKey } from "ente-shared/storage/sessionStorage"; -export async function decryptAndStoreToken( - keyAttributes: KeyAttributes, - masterKey: string, -) { - const user = getData("user"); - const { encryptedToken } = user; - - if (encryptedToken && encryptedToken.length > 0) { - const { encryptedSecretKey, secretKeyDecryptionNonce, publicKey } = - keyAttributes; - const privateKey = await decryptBox( - { - encryptedData: encryptedSecretKey, - nonce: secretKeyDecryptionNonce, - }, - masterKey, - ); - - const decryptedToken = await toB64URLSafe( - await boxSealOpenBytes(encryptedToken, { publicKey, privateKey }), - ); - - await setLSUser({ - ...user, - token: decryptedToken, - encryptedToken: null, - }); - } -} - -// We encrypt the masterKey, with an intermediate key derived from the -// passphrase (with Interactive mem and ops limits) to avoid saving it to local -// storage in plain text. This means that on the web user will always have to -// enter their passphrase to access their masterKey. -export async function generateAndSaveIntermediateKeyAttributes( - passphrase: string, - existingKeyAttributes: KeyAttributes, - key: string, -): Promise { - const cryptoWorker = await sharedCryptoWorker(); - const intermediateKek = await cryptoWorker.deriveInteractiveKey(passphrase); - const { encryptedData: encryptedKey, nonce: keyDecryptionNonce } = - await cryptoWorker.encryptBox(key, intermediateKek.key); - - const intermediateKeyAttributes = Object.assign(existingKeyAttributes, { - encryptedKey, - keyDecryptionNonce, - kekSalt: intermediateKek.salt, - opsLimit: intermediateKek.opsLimit, - memLimit: intermediateKek.memLimit, - }); - setData("keyAttributes", intermediateKeyAttributes); - return intermediateKeyAttributes; -} - export const saveKeyInSessionStore = async ( keyType: SessionKey, key: string, From b707b3e3dcf2c38f95a47c7083c7da1e9a37b41f Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 14:30:18 +0530 Subject: [PATCH 291/316] Conv --- web/packages/base/crypto/index.ts | 10 ++++------ web/packages/base/crypto/libsodium.ts | 16 ++-------------- web/packages/new/photos/services/collections.ts | 12 ++---------- 3 files changed, 8 insertions(+), 30 deletions(-) diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index b9949fc030..1e623deba1 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -426,14 +426,12 @@ export const boxSeal = (data: string, publicKey: string): Promise => */ export const boxSealOpen = ( encryptedData: string, - publicKey: string, - secretKey: string, + keyPair: KeyPair, ): Promise => inWorker() - ? ei._boxSealOpen(encryptedData, publicKey, secretKey) - : sharedWorker().then((w) => - w.boxSealOpen(encryptedData, publicKey, secretKey), - ); + ? ei._boxSealOpen(encryptedData, keyPair) + : sharedWorker().then((w) => w.boxSealOpen(encryptedData, keyPair)); + /** * Variant of {@link boxSealOpen} that returns the decrypted bytes as it is * (without encoding them to base64). diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index 906e8246b7..9f4d52e71d 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -780,20 +780,8 @@ export const boxSealOpenBytes = async ( * A variant of {@link boxSealOpenBytes} that returns the result as a base64 * string. */ -export const boxSealOpen = async ( - encryptedData: string, - publicKey: string, - secretKey: string, -) => { - await sodium.ready; - return toB64( - sodium.crypto_box_seal_open( - await fromB64(encryptedData), - await fromB64(publicKey), - await fromB64(secretKey), - ), - ); -}; +export const boxSealOpen = async (encryptedData: string, keyPair: KeyPair) => + toB64(await boxSealOpenBytes(encryptedData, keyPair)); /** * Generate a new randomly generated 128-bit salt suitable for use with the key diff --git a/web/packages/new/photos/services/collections.ts b/web/packages/new/photos/services/collections.ts index 3613615220..198903c0b8 100644 --- a/web/packages/new/photos/services/collections.ts +++ b/web/packages/new/photos/services/collections.ts @@ -32,6 +32,7 @@ import { getData } from "ente-shared/storage/localStorage"; import { getToken } from "ente-shared/storage/localStorage/helpers"; import { getActualKey } from "ente-shared/user"; import { isHiddenCollection } from "./collection"; +import { ensureUserKeyPair } from "./user"; const COLLECTION_TABLE = "collections"; const HIDDEN_COLLECTION_IDS = "hidden-collection-ids"; @@ -210,18 +211,9 @@ export const getCollectionWithSecrets = async ( masterKey, ); } else { - const keyAttributes = getData("keyAttributes"); - const secretKey = await cryptoWorker.decryptBox( - { - encryptedData: keyAttributes.encryptedSecretKey, - nonce: keyAttributes.secretKeyDecryptionNonce, - }, - masterKey, - ); collectionKey = await cryptoWorker.boxSealOpen( collection.encryptedKey, - keyAttributes.publicKey, - secretKey, + await ensureUserKeyPair(), ); } const collectionName = From 63830b798b0f88b860952617a0925ead4edb80d6 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 14:43:01 +0530 Subject: [PATCH 292/316] Save 1 --- web/packages/base/session.ts | 59 ++++++++++++++++++++++++------------ 1 file changed, 39 insertions(+), 20 deletions(-) diff --git a/web/packages/base/session.ts b/web/packages/base/session.ts index dbc0209666..256781de46 100644 --- a/web/packages/base/session.ts +++ b/web/packages/base/session.ts @@ -1,5 +1,5 @@ import { z } from "zod/v4"; -import { decryptBox, decryptBoxBytes } from "./crypto"; +import { decryptBox, decryptBoxBytes, encryptBox, generateKey } from "./crypto"; /** * Remove all data stored in session storage (data tied to the browser tab). @@ -22,25 +22,13 @@ const SessionKeyData = z.object({ nonce: z.string(), }); -/** - * Save the user's encrypted master key in the session storage. - * - * @param keyB64 The user's master key as a base64 encoded string. - */ -// TODO(RE): -// export const saveMasterKeyInSessionStore = async ( -// keyB64: string, -// fromDesktop?: boolean, -// ) => { -// const cryptoWorker = await sharedCryptoWorker(); -// const sessionKeyAttributes = -// await cryptoWorker.generateKeyAndEncryptToB64(key); -// setKey(keyType, sessionKeyAttributes); -// const electron = globalThis.electron; -// if (electron && !fromDesktop) { -// electron.saveMasterKeyB64(key); -// } -// }; +type SessionKeyData = z.infer; + +const sessionKeyData = async (keyData: string): Promise => { + const key = await generateKey(); + const box = await encryptBox(keyData, key); + return { key, ...box }; +}; /** * Return the user's decrypted master key (as a base64 string) from session @@ -81,6 +69,37 @@ export const masterKeyFromSession = async () => { return decryptBox({ encryptedData, nonce }, key); }; +/** + * Save the user's encrypted master key in the session storage. + * + * @param masterKey The user's master key (as a base64 encoded string). + */ +export const saveMasterKeyInSessionStore = async ( + masterKey: string, + // TODO: ? + fromDesktop?: boolean, +) => { + await saveKeyInSessionStore("encryptionKey", masterKey); + const electron = globalThis.electron; + if (electron && !fromDesktop) { + await electron.saveMasterKeyB64(masterKey); + } +}; + +/** + * Save the provided key in session storage. + * + * @param keyName The name of the key use for the session storage entry. + * + * @param keyData The base64 encoded bytes of the key. + */ +const saveKeyInSessionStore = async (keyName: string, keyData: string) => { + sessionStorage.setItem( + keyName, + JSON.stringify(await sessionKeyData(keyData)), + ); +}; + /** * Return the decrypted user's key encryption key ("kek") from session storage * if present, otherwise return `undefined`. From 37c0fa1cd6ac42dc7fe11da5f8164e6f5282c031 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 15:37:33 +0530 Subject: [PATCH 293/316] Scaffold more infra --- web/packages/accounts/utils/helpers.ts | 13 +++-- web/packages/base/session.ts | 67 ++++++++++++++++++++++++++ 2 files changed, 76 insertions(+), 4 deletions(-) diff --git a/web/packages/accounts/utils/helpers.ts b/web/packages/accounts/utils/helpers.ts index b2b9ae45af..3220cb0698 100644 --- a/web/packages/accounts/utils/helpers.ts +++ b/web/packages/accounts/utils/helpers.ts @@ -39,10 +39,15 @@ export async function decryptAndStoreToken( } } -// We encrypt the masterKey, with an intermediate key derived from the -// passphrase (with Interactive mem and ops limits) to avoid saving it to local -// storage in plain text. This means that on the web user will always have to -// enter their passphrase to access their masterKey. +/** + * Encrypt the user's masterKey with an intermediate kek (key encryption key) + * derived from the passphrase (with interactive mem and ops limits) to avoid + * saving it to local storage in plain text. + * + * This means that on the web user will always have to enter their passphrase to + * access their masterKey when repopening the app in a new tab (on desktop we + * can use OS storage, see [Note: Safe storage and interactive KEK attributes]). + */ export async function generateAndSaveIntermediateKeyAttributes( passphrase: string, existingKeyAttributes: KeyAttributes, diff --git a/web/packages/base/session.ts b/web/packages/base/session.ts index 256781de46..13539e49fd 100644 --- a/web/packages/base/session.ts +++ b/web/packages/base/session.ts @@ -1,5 +1,9 @@ +import { getToken } from "ente-shared/storage/localStorage/helpers"; import { z } from "zod/v4"; import { decryptBox, decryptBoxBytes, encryptBox, generateKey } from "./crypto"; +import { isDevBuild } from "./env"; +import log from "./log"; +import { getAuthToken } from "./token"; /** * Remove all data stored in session storage (data tied to the browser tab). @@ -100,6 +104,69 @@ const saveKeyInSessionStore = async (keyName: string, keyData: string) => { ); }; +/** + * If we're running in the context of the desktop app, then read the master key + * from the OS safe storage and put it into the session storage (if it is not + * already present there). + * + * [Note: Safe storage and interactive KEK attributes] + * + * In the electron app we have the option of using the OS's safe storage (if + * available) to store the master key so that the user does not have to reenter + * their password each time they open the app. + * + * Such an ability is not present on browsers currently, so we need to ask the + * user for their password to derive the KEK for decrypting their master key + * each time they open the app in a new time (See: [Note: Key encryption key]). + * + * However, the default KEK parameters are not suitable for such frequent + * interactive usage. So for the user's convenience, we also derive an new (so + * called "intermediate") KEK using parameters suitable for interactive usage. + * This KEK is not saved to remote, it is only maintained locally. + * + * In either case, eventually we want the encrypted key to be available in the + * session for decrypting the user's files etc. In the web case, the page where + * the user reenters their password will put it there, while on desktop + * (assuming the key has already been saved to the OS safe storage), this + * {@link updateSessionFromElectronSafeStorageIfNeeded} function will do it. + */ +export const updateSessionFromElectronSafeStorageIfNeeded = async () => { + const electron = globalThis.electron; + if (!electron) return; + + if (haveCredentialsInSession()) return; + + let masterKey: string | undefined; + try { + masterKey = await electron.masterKeyB64(); + } catch (e) { + log.error("Failed to read master key from safe storage", e); + } + if (masterKey) { + // Do not use `saveMasterKeyInSessionStore`, that will (unnecessarily) + // overwrite the OS safe storage again. + await saveKeyInSessionStore("encryptionKey", masterKey); + } +}; + +/** + * Return true if we both have the user's master key in session storage, and + * their auth token in KV DB. + */ +export const haveAuthenticatedSession = async () => { + if (!(await masterKeyFromSession())) return false; + const lsToken = getToken(); + const kvToken = await getAuthToken(); + // TODO: To avoid changing old behaviour, this currently relies on the token + // from local storage. Both should be the same though, so it throws an error + // on dev build (tag: Migration). + if (isDevBuild) { + if (lsToken != kvToken) + throw new Error("Local storage and indexed DB mismatch"); + } + return !!lsToken; +}; + /** * Return the decrypted user's key encryption key ("kek") from session storage * if present, otherwise return `undefined`. From 76cff8d38681ae0eed34ca27adf752552d08105c Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 15:47:19 +0530 Subject: [PATCH 294/316] Swap --- web/apps/photos/src/pages/index.tsx | 23 ++++++--------------- web/packages/accounts/pages/credentials.tsx | 22 +++++++------------- 2 files changed, 13 insertions(+), 32 deletions(-) diff --git a/web/apps/photos/src/pages/index.tsx b/web/apps/photos/src/pages/index.tsx index 1679e6bdd6..507a9aaba8 100644 --- a/web/apps/photos/src/pages/index.tsx +++ b/web/apps/photos/src/pages/index.tsx @@ -8,12 +8,13 @@ import { FocusVisibleButton } from "ente-base/components/mui/FocusVisibleButton" import { useBaseContext } from "ente-base/context"; import log from "ente-base/log"; import { albumsAppOrigin, customAPIHost } from "ente-base/origins"; +import { + haveAuthenticatedSession, + updateSessionFromElectronSafeStorageIfNeeded, +} from "ente-base/session"; import { DevSettings } from "ente-new/photos/components/DevSettings"; -import { saveKeyInSessionStore } from "ente-shared/crypto/helpers"; import localForage from "ente-shared/storage/localForage"; import { getData } from "ente-shared/storage/localStorage"; -import { getToken } from "ente-shared/storage/localStorage/helpers"; -import { getKey } from "ente-shared/storage/sessionStorage"; import { t } from "i18next"; import { useRouter } from "next/router"; import React, { useCallback, useEffect, useRef, useState } from "react"; @@ -61,20 +62,8 @@ const Page: React.FC = () => { const handleNormalRedirect = async () => { const user = getData("user"); - let key = getKey("encryptionKey"); - const electron = globalThis.electron; - if (!key && electron) { - try { - key = await electron.masterKeyB64(); - } catch (e) { - log.error("Failed to read master key from safe storage", e); - } - if (key) { - await saveKeyInSessionStore("encryptionKey", key, true); - } - } - const token = getToken(); - if (key && token) { + await updateSessionFromElectronSafeStorageIfNeeded(); + if (await haveAuthenticatedSession()) { await router.push("/gallery"); } else if (user?.email) { await router.push("/verify"); diff --git a/web/packages/accounts/pages/credentials.tsx b/web/packages/accounts/pages/credentials.tsx index e58e5047ea..6df56e3d2e 100644 --- a/web/packages/accounts/pages/credentials.tsx +++ b/web/packages/accounts/pages/credentials.tsx @@ -41,6 +41,10 @@ import { sharedCryptoWorker } from "ente-base/crypto"; import type { B64EncryptionResult } from "ente-base/crypto/libsodium"; import { clearLocalStorage } from "ente-base/local-storage"; import log from "ente-base/log"; +import { + haveAuthenticatedSession, + updateSessionFromElectronSafeStorageIfNeeded, +} from "ente-base/session"; import { saveKeyInSessionStore } from "ente-shared/crypto/helpers"; import { CustomError } from "ente-shared/error"; import { getData, setData, setLSUser } from "ente-shared/storage/localStorage"; @@ -111,20 +115,8 @@ const Page: React.FC = () => { return; } setUser(user); - let key = getKey("encryptionKey"); - const electron = globalThis.electron; - if (!key && electron) { - try { - key = await electron.masterKeyB64(); - } catch (e) { - log.error("Failed to read master key from safe storage", e); - } - if (key) { - await saveKeyInSessionStore("encryptionKey", key, true); - } - } - const token = getToken(); - if (key && token) { + await updateSessionFromElectronSafeStorageIfNeeded(); + if (await haveAuthenticatedSession()) { void router.push(appHomeRoute); return; } @@ -133,7 +125,7 @@ const Page: React.FC = () => { const keyAttributes: KeyAttributes = getData("keyAttributes"); const srpAttributes: SRPAttributes = getData("srpAttributes"); - if (token) { + if (getToken()) { setSessionValidityCheck(validateSession()); } From 0381cf66dcc495e8c49500e3c85a7a3d27b01f54 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 16:07:00 +0530 Subject: [PATCH 295/316] Rename --- desktop/src/main/ipc.ts | 12 +++++++----- desktop/src/main/services/store.ts | 18 +++++++++--------- desktop/src/preload.ts | 11 ++++++----- web/packages/base/session.ts | 4 ++-- web/packages/base/types/ipc.ts | 8 ++++---- web/packages/shared/crypto/helpers.ts | 2 +- 6 files changed, 29 insertions(+), 26 deletions(-) diff --git a/desktop/src/main/ipc.ts b/desktop/src/main/ipc.ts index b4e7eff0ca..ce977a5088 100644 --- a/desktop/src/main/ipc.ts +++ b/desktop/src/main/ipc.ts @@ -50,8 +50,8 @@ import { convertToJPEG, generateImageThumbnail } from "./services/image"; import { logout } from "./services/logout"; import { lastShownChangelogVersion, - masterKeyB64, - saveMasterKeyB64, + masterKeyFromSafeStorage, + saveMasterKeyInSafeStorage, setLastShownChangelogVersion, } from "./services/store"; import { @@ -108,10 +108,12 @@ export const attachIPCHandlers = () => { ipcMain.handle("selectDirectory", () => selectDirectory()); - ipcMain.handle("masterKeyB64", () => masterKeyB64()); + ipcMain.handle("masterKeyFromSafeStorage", () => + masterKeyFromSafeStorage(), + ); - ipcMain.handle("saveMasterKeyB64", (_, masterKeyB64: string) => - saveMasterKeyB64(masterKeyB64), + ipcMain.handle("saveMasterKeyInSafeStorage", (_, masterKey: string) => + saveMasterKeyInSafeStorage(masterKey), ); ipcMain.handle("lastShownChangelogVersion", () => diff --git a/desktop/src/main/services/store.ts b/desktop/src/main/services/store.ts index f4f5a9369a..227fe691c6 100644 --- a/desktop/src/main/services/store.ts +++ b/desktop/src/main/services/store.ts @@ -24,17 +24,17 @@ export const clearStores = () => { * On macOS, `safeStorage` stores our data under a Keychain entry named * " Safe Storage". In our case, "ente Safe Storage". */ -export const saveMasterKeyB64 = (masterKeyB64: string) => { - const encryptedKey = safeStorage.encryptString(masterKeyB64); - const b64EncryptedKey = Buffer.from(encryptedKey).toString("base64"); - safeStorageStore.set("encryptionKey", b64EncryptedKey); +export const saveMasterKeyInSafeStorage = (masterKey: string) => { + const encryptedKeyBuffer = safeStorage.encryptString(masterKey); + const encryptedKey = Buffer.from(encryptedKeyBuffer).toString("base64"); + safeStorageStore.set("encryptionKey", encryptedKey); }; -export const masterKeyB64 = (): string | undefined => { - const b64EncryptedKey = safeStorageStore.get("encryptionKey"); - if (!b64EncryptedKey) return undefined; - const keyBuffer = Buffer.from(b64EncryptedKey, "base64"); - return safeStorage.decryptString(keyBuffer); +export const masterKeyFromSafeStorage = (): string | undefined => { + const encryptedKey = safeStorageStore.get("encryptionKey"); + if (!encryptedKey) return undefined; + const encryptedKeyBuffer = Buffer.from(encryptedKey, "base64"); + return safeStorage.decryptString(encryptedKeyBuffer); }; export const lastShownChangelogVersion = (): number | undefined => diff --git a/desktop/src/preload.ts b/desktop/src/preload.ts index e983855d5f..ea6a7af7b2 100644 --- a/desktop/src/preload.ts +++ b/desktop/src/preload.ts @@ -113,10 +113,11 @@ const logout = () => { return ipcRenderer.invoke("logout"); }; -const masterKeyB64 = () => ipcRenderer.invoke("masterKeyB64"); +const masterKeyFromSafeStorage = () => + ipcRenderer.invoke("masterKeyFromSafeStorage"); -const saveMasterKeyB64 = (masterKeyB64: string) => - ipcRenderer.invoke("saveMasterKeyB64", masterKeyB64); +const saveMasterKeyInSafeStorage = (masterKey: string) => + ipcRenderer.invoke("saveMasterKeyInSafeStorage", masterKey); const lastShownChangelogVersion = () => ipcRenderer.invoke("lastShownChangelogVersion"); @@ -358,8 +359,8 @@ contextBridge.exposeInMainWorld("electron", { selectDirectory, pathForFile, logout, - masterKeyB64, - saveMasterKeyB64, + masterKeyFromSafeStorage, + saveMasterKeyInSafeStorage, lastShownChangelogVersion, setLastShownChangelogVersion, isAutoLaunchEnabled, diff --git a/web/packages/base/session.ts b/web/packages/base/session.ts index 13539e49fd..d1b41a4630 100644 --- a/web/packages/base/session.ts +++ b/web/packages/base/session.ts @@ -86,7 +86,7 @@ export const saveMasterKeyInSessionStore = async ( await saveKeyInSessionStore("encryptionKey", masterKey); const electron = globalThis.electron; if (electron && !fromDesktop) { - await electron.saveMasterKeyB64(masterKey); + await electron.saveMasterKeyInSafeStorage(masterKey); } }; @@ -138,7 +138,7 @@ export const updateSessionFromElectronSafeStorageIfNeeded = async () => { let masterKey: string | undefined; try { - masterKey = await electron.masterKeyB64(); + masterKey = await electron.masterKeyFromSafeStorage(); } catch (e) { log.error("Failed to read master key from safe storage", e); } diff --git a/web/packages/base/types/ipc.ts b/web/packages/base/types/ipc.ts index d44a92e980..ed41ac0453 100644 --- a/web/packages/base/types/ipc.ts +++ b/web/packages/base/types/ipc.ts @@ -90,15 +90,15 @@ export interface Electron { * * If the key is not found, return `undefined`. * - * See also: {@link saveMasterKeyB64}. + * See also: {@link saveMasterKeyInSafeStorage}. */ - masterKeyB64: () => Promise; + masterKeyFromSafeStorage: () => Promise; /** - * Save the given {@link masterKeyB64} (encoded as a base64 string) to the + * Save the given {@link masterKey} (encoded as a base64 string) to the * persistent safe storage accessible to the desktop app. */ - saveMasterKeyB64: (masterKeyB64: string) => Promise; + saveMasterKeyInSafeStorage: (masterKey: string) => Promise; /** * Set or clear the callback {@link cb} to invoke whenever the app comes diff --git a/web/packages/shared/crypto/helpers.ts b/web/packages/shared/crypto/helpers.ts index 315fa3b36d..56ba94cee4 100644 --- a/web/packages/shared/crypto/helpers.ts +++ b/web/packages/shared/crypto/helpers.ts @@ -12,6 +12,6 @@ export const saveKeyInSessionStore = async ( setKey(keyType, sessionKeyAttributes); const electron = globalThis.electron; if (electron && !fromDesktop && keyType == "encryptionKey") { - electron.saveMasterKeyB64(key); + electron.saveMasterKeyInSafeStorage(key); } }; From 709eb66614161aab5edf9053d1bded0187c8733a Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 16:17:10 +0530 Subject: [PATCH 296/316] Swap --- .../accounts/components/SignUpContents.tsx | 4 ++-- web/packages/accounts/pages/change-password.tsx | 4 ++-- web/packages/accounts/pages/credentials.tsx | 8 ++++---- web/packages/accounts/pages/generate.tsx | 4 ++-- web/packages/accounts/pages/recover.tsx | 4 ++-- web/packages/base/session.ts | 7 +++++-- web/packages/shared/crypto/helpers.ts | 17 ----------------- 7 files changed, 17 insertions(+), 31 deletions(-) delete mode 100644 web/packages/shared/crypto/helpers.ts diff --git a/web/packages/accounts/components/SignUpContents.tsx b/web/packages/accounts/components/SignUpContents.tsx index 3607765f4b..605ca29a28 100644 --- a/web/packages/accounts/components/SignUpContents.tsx +++ b/web/packages/accounts/components/SignUpContents.tsx @@ -22,8 +22,8 @@ import { LoadingButton } from "ente-base/components/mui/LoadingButton"; import { ShowHidePasswordInputAdornment } from "ente-base/components/mui/PasswordInputAdornment"; import { isMuseumHTTPError } from "ente-base/http"; import log from "ente-base/log"; +import { saveMasterKeyInSessionAndSafeStore } from "ente-base/session"; import { setLSUser } from "ente-shared//storage/localStorage"; -import { saveKeyInSessionStore } from "ente-shared/crypto/helpers"; import { setData } from "ente-shared/storage/localStorage"; import { setJustSignedUp, @@ -107,7 +107,7 @@ export const SignUpContents: React.FC = ({ masterKey, ); - await saveKeyInSessionStore("encryptionKey", masterKey); + await saveMasterKeyInSessionAndSafeStore(masterKey); setJustSignedUp(true); void router.push("/verify"); } catch (e) { diff --git a/web/packages/accounts/pages/change-password.tsx b/web/packages/accounts/pages/change-password.tsx index 8f4c7e0999..602ab54b97 100644 --- a/web/packages/accounts/pages/change-password.tsx +++ b/web/packages/accounts/pages/change-password.tsx @@ -28,7 +28,7 @@ import { generateAndSaveIntermediateKeyAttributes } from "ente-accounts/utils/he import { LinkButton } from "ente-base/components/LinkButton"; import { sharedCryptoWorker } from "ente-base/crypto"; import type { DerivedKey } from "ente-base/crypto/types"; -import { saveKeyInSessionStore } from "ente-shared/crypto/helpers"; +import { saveMasterKeyInSessionAndSafeStore } from "ente-base/session"; import { getData, setData } from "ente-shared/storage/localStorage"; import { getActualKey } from "ente-shared/user"; import { t } from "i18next"; @@ -121,7 +121,7 @@ const Page: React.FC = () => { key, ); - await saveKeyInSessionStore("encryptionKey", key); + await saveMasterKeyInSessionAndSafeStore(key); redirectToAppHome(); }; diff --git a/web/packages/accounts/pages/credentials.tsx b/web/packages/accounts/pages/credentials.tsx index 6df56e3d2e..14c9eaec3b 100644 --- a/web/packages/accounts/pages/credentials.tsx +++ b/web/packages/accounts/pages/credentials.tsx @@ -43,9 +43,9 @@ import { clearLocalStorage } from "ente-base/local-storage"; import log from "ente-base/log"; import { haveAuthenticatedSession, + saveMasterKeyInSessionAndSafeStore, updateSessionFromElectronSafeStorageIfNeeded, } from "ente-base/session"; -import { saveKeyInSessionStore } from "ente-shared/crypto/helpers"; import { CustomError } from "ente-shared/error"; import { getData, setData, setLSUser } from "ente-shared/storage/localStorage"; import { @@ -268,12 +268,12 @@ const Page: React.FC = () => { }; const postVerification = async ( - key: string, + masterKey: string, kek: string, keyAttributes: KeyAttributes, ) => { - await saveKeyInSessionStore("encryptionKey", key); - await decryptAndStoreToken(keyAttributes, key); + await saveMasterKeyInSessionAndSafeStore(masterKey); + await decryptAndStoreToken(keyAttributes, masterKey); try { let srpAttributes: SRPAttributes | null = getData("srpAttributes"); if (!srpAttributes && user) { diff --git a/web/packages/accounts/pages/generate.tsx b/web/packages/accounts/pages/generate.tsx index 76a3ece06d..dfcf3c1006 100644 --- a/web/packages/accounts/pages/generate.tsx +++ b/web/packages/accounts/pages/generate.tsx @@ -19,7 +19,7 @@ import { LinkButton } from "ente-base/components/LinkButton"; import { LoadingIndicator } from "ente-base/components/loaders"; import { useBaseContext } from "ente-base/context"; import log from "ente-base/log"; -import { saveKeyInSessionStore } from "ente-shared/crypto/helpers"; +import { saveMasterKeyInSessionAndSafeStore } from "ente-base/session"; import { getData } from "ente-shared/storage/localStorage"; import { justSignedUp, @@ -75,7 +75,7 @@ const Page: React.FC = () => { keyAttributes, masterKey, ); - await saveKeyInSessionStore("encryptionKey", masterKey); + await saveMasterKeyInSessionAndSafeStore(masterKey); setJustSignedUp(true); setOpenRecoveryKey(true); } catch (e) { diff --git a/web/packages/accounts/pages/recover.tsx b/web/packages/accounts/pages/recover.tsx index 08b0a22945..6ffb1b2fa1 100644 --- a/web/packages/accounts/pages/recover.tsx +++ b/web/packages/accounts/pages/recover.tsx @@ -16,7 +16,7 @@ import { import { useBaseContext } from "ente-base/context"; import { decryptBox } from "ente-base/crypto"; import log from "ente-base/log"; -import { saveKeyInSessionStore } from "ente-shared/crypto/helpers"; +import { saveMasterKeyInSessionAndSafeStore } from "ente-base/session"; import { getData, setData } from "ente-shared/storage/localStorage"; import { getKey } from "ente-shared/storage/sessionStorage"; import { t } from "i18next"; @@ -68,7 +68,7 @@ const Page: React.FC = () => { }, await recoveryKeyFromMnemonic(recoveryKeyMnemonic), ); - await saveKeyInSessionStore("encryptionKey", masterKey); + await saveMasterKeyInSessionAndSafeStore(masterKey); await decryptAndStoreToken(keyAttr, masterKey); setData("showBackButton", { value: false }); diff --git a/web/packages/base/session.ts b/web/packages/base/session.ts index d1b41a4630..ac36dba640 100644 --- a/web/packages/base/session.ts +++ b/web/packages/base/session.ts @@ -74,11 +74,14 @@ export const masterKeyFromSession = async () => { }; /** - * Save the user's encrypted master key in the session storage. + * Save the user's encrypted master key in the session storage. If we're running + * in the context of our desktop app, also save it in the OS safe storage. + * + * See: [Note: Safe storage and interactive KEK attributes] * * @param masterKey The user's master key (as a base64 encoded string). */ -export const saveMasterKeyInSessionStore = async ( +export const saveMasterKeyInSessionAndSafeStore = async ( masterKey: string, // TODO: ? fromDesktop?: boolean, diff --git a/web/packages/shared/crypto/helpers.ts b/web/packages/shared/crypto/helpers.ts deleted file mode 100644 index 56ba94cee4..0000000000 --- a/web/packages/shared/crypto/helpers.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { sharedCryptoWorker } from "ente-base/crypto"; -import { setKey, type SessionKey } from "ente-shared/storage/sessionStorage"; - -export const saveKeyInSessionStore = async ( - keyType: SessionKey, - key: string, - fromDesktop?: boolean, -) => { - const cryptoWorker = await sharedCryptoWorker(); - const sessionKeyAttributes = - await cryptoWorker.generateKeyAndEncryptToB64(key); - setKey(keyType, sessionKeyAttributes); - const electron = globalThis.electron; - if (electron && !fromDesktop && keyType == "encryptionKey") { - electron.saveMasterKeyInSafeStorage(key); - } -}; From df0b8cc44e29fa1f1ce9d358008a99f5d3c8ce9a Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 16:27:06 +0530 Subject: [PATCH 297/316] Direct --- web/packages/base/session.ts | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/web/packages/base/session.ts b/web/packages/base/session.ts index ac36dba640..42f679623e 100644 --- a/web/packages/base/session.ts +++ b/web/packages/base/session.ts @@ -81,16 +81,9 @@ export const masterKeyFromSession = async () => { * * @param masterKey The user's master key (as a base64 encoded string). */ -export const saveMasterKeyInSessionAndSafeStore = async ( - masterKey: string, - // TODO: ? - fromDesktop?: boolean, -) => { +export const saveMasterKeyInSessionAndSafeStore = async (masterKey: string) => { await saveKeyInSessionStore("encryptionKey", masterKey); - const electron = globalThis.electron; - if (electron && !fromDesktop) { - await electron.saveMasterKeyInSafeStorage(masterKey); - } + await globalThis.electron?.saveMasterKeyInSafeStorage(masterKey); }; /** From a3b4a0b80c355f84157c41590a32337013ad9c4c Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 16:35:46 +0530 Subject: [PATCH 298/316] Swap --- web/apps/photos/src/pages/gallery.tsx | 3 +-- web/packages/accounts/pages/generate.tsx | 9 +++++---- web/packages/accounts/pages/recover.tsx | 9 +++++---- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/web/apps/photos/src/pages/gallery.tsx b/web/apps/photos/src/pages/gallery.tsx index 95bcf3adee..c77158232a 100644 --- a/web/apps/photos/src/pages/gallery.tsx +++ b/web/apps/photos/src/pages/gallery.tsx @@ -107,7 +107,6 @@ import { setIsFirstLogin, setJustSignedUp, } from "ente-shared/storage/localStorage/helpers"; -import { getKey } from "ente-shared/storage/sessionStorage"; import { t } from "i18next"; import { useRouter, type NextRouter } from "next/router"; import { createContext, useCallback, useEffect, useRef, useState } from "react"; @@ -389,7 +388,7 @@ const Page: React.FC = () => { }, [activeCollectionID, router.isReady]); useEffect(() => { - if (router.isReady && getKey("encryptionKey")) { + if (router.isReady && haveCredentialsInSession()) { handleSubscriptionCompletionRedirectIfNeeded( showMiniDialog, showLoadingBar, diff --git a/web/packages/accounts/pages/generate.tsx b/web/packages/accounts/pages/generate.tsx index dfcf3c1006..41010d6bab 100644 --- a/web/packages/accounts/pages/generate.tsx +++ b/web/packages/accounts/pages/generate.tsx @@ -19,13 +19,15 @@ import { LinkButton } from "ente-base/components/LinkButton"; import { LoadingIndicator } from "ente-base/components/loaders"; import { useBaseContext } from "ente-base/context"; import log from "ente-base/log"; -import { saveMasterKeyInSessionAndSafeStore } from "ente-base/session"; +import { + haveCredentialsInSession, + saveMasterKeyInSessionAndSafeStore, +} from "ente-base/session"; import { getData } from "ente-shared/storage/localStorage"; import { justSignedUp, setJustSignedUp, } from "ente-shared/storage/localStorage/helpers"; -import { getKey } from "ente-shared/storage/sessionStorage"; import { t } from "i18next"; import { useRouter } from "next/router"; import { useEffect, useState } from "react"; @@ -40,13 +42,12 @@ const Page: React.FC = () => { const router = useRouter(); useEffect(() => { - const key: string = getKey("encryptionKey"); const keyAttributes: KeyAttributes = getData("originalKeyAttributes"); const user: User = getData("user"); setUser(user); if (!user?.token) { void router.push("/"); - } else if (key) { + } else if (haveCredentialsInSession()) { if (justSignedUp()) { setOpenRecoveryKey(true); setLoading(false); diff --git a/web/packages/accounts/pages/recover.tsx b/web/packages/accounts/pages/recover.tsx index 6ffb1b2fa1..2d36583b7f 100644 --- a/web/packages/accounts/pages/recover.tsx +++ b/web/packages/accounts/pages/recover.tsx @@ -16,9 +16,11 @@ import { import { useBaseContext } from "ente-base/context"; import { decryptBox } from "ente-base/crypto"; import log from "ente-base/log"; -import { saveMasterKeyInSessionAndSafeStore } from "ente-base/session"; +import { + haveCredentialsInSession, + saveMasterKeyInSessionAndSafeStore, +} from "ente-base/session"; import { getData, setData } from "ente-shared/storage/localStorage"; -import { getKey } from "ente-shared/storage/sessionStorage"; import { t } from "i18next"; import { useRouter } from "next/router"; import { useEffect, useState } from "react"; @@ -35,7 +37,6 @@ const Page: React.FC = () => { useEffect(() => { const user: User = getData("user"); const keyAttributes: KeyAttributes = getData("keyAttributes"); - const key = getKey("encryptionKey"); if (!user?.email) { void router.push("/"); return; @@ -48,7 +49,7 @@ const Page: React.FC = () => { } if (!keyAttributes) { void router.push("/generate"); - } else if (key) { + } else if (haveCredentialsInSession()) { void router.push(appHomeRoute); } else { setKeyAttributes(keyAttributes); From b82427a6cf834ae62912d5bf23029fd3d0d18113 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 16:37:53 +0530 Subject: [PATCH 299/316] Swap --- .../photos/src/services/collectionService.ts | 8 +++---- .../accounts/pages/change-password.tsx | 14 +++++++------ .../new/photos/services/collections.ts | 10 ++++----- web/packages/shared/user/index.ts | 21 ------------------- 4 files changed, 17 insertions(+), 36 deletions(-) delete mode 100644 web/packages/shared/user/index.ts diff --git a/web/apps/photos/src/services/collectionService.ts b/web/apps/photos/src/services/collectionService.ts index f25ab63afa..5394dd1678 100644 --- a/web/apps/photos/src/services/collectionService.ts +++ b/web/apps/photos/src/services/collectionService.ts @@ -3,6 +3,7 @@ import { ensureLocalUser } from "ente-accounts/services/user"; import { encryptMetadataJSON, sharedCryptoWorker } from "ente-base/crypto"; import log from "ente-base/log"; import { apiURL } from "ente-base/origins"; +import { ensureMasterKeyFromSession } from "ente-base/session"; import { UpdateMagicMetadataRequest } from "ente-gallery/services/file"; import { updateMagicMetadata } from "ente-gallery/services/magic-metadata"; import { @@ -43,7 +44,6 @@ import { getPublicKey } from "ente-new/photos/services/user"; import HTTPService from "ente-shared/network/HTTPService"; import { getData } from "ente-shared/storage/localStorage"; import { getToken } from "ente-shared/storage/localStorage/helpers"; -import { getActualKey } from "ente-shared/user"; import { batch } from "ente-utils/array"; import { changeCollectionSubType, @@ -68,11 +68,11 @@ const createCollection = async ( ): Promise => { try { const cryptoWorker = await sharedCryptoWorker(); - const encryptionKey = await getActualKey(); + const masterKey = await ensureMasterKeyFromSession(); const token = getToken(); const collectionKey = await cryptoWorker.generateKey(); const { encryptedData: encryptedKey, nonce: keyDecryptionNonce } = - await cryptoWorker.encryptBox(collectionKey, encryptionKey); + await cryptoWorker.encryptBox(collectionKey, masterKey); const { encryptedData: encryptedName, nonce: nameDecryptionNonce } = await cryptoWorker.encryptBox( new TextEncoder().encode(collectionName), @@ -112,7 +112,7 @@ const createCollection = async ( const createdCollection = await postCollection(newCollection, token); const decryptedCreatedCollection = await getCollectionWithSecrets( createdCollection, - encryptionKey, + masterKey, ); return decryptedCreatedCollection; } catch (e) { diff --git a/web/packages/accounts/pages/change-password.tsx b/web/packages/accounts/pages/change-password.tsx index 602ab54b97..31b87169ab 100644 --- a/web/packages/accounts/pages/change-password.tsx +++ b/web/packages/accounts/pages/change-password.tsx @@ -28,9 +28,11 @@ import { generateAndSaveIntermediateKeyAttributes } from "ente-accounts/utils/he import { LinkButton } from "ente-base/components/LinkButton"; import { sharedCryptoWorker } from "ente-base/crypto"; import type { DerivedKey } from "ente-base/crypto/types"; -import { saveMasterKeyInSessionAndSafeStore } from "ente-base/session"; +import { + ensureMasterKeyFromSession, + saveMasterKeyInSessionAndSafeStore, +} from "ente-base/session"; import { getData, setData } from "ente-shared/storage/localStorage"; -import { getActualKey } from "ente-shared/user"; import { t } from "i18next"; import { useRouter } from "next/router"; import { useEffect, useState } from "react"; @@ -57,7 +59,7 @@ const Page: React.FC = () => { setFieldError, ) => { const cryptoWorker = await sharedCryptoWorker(); - const key = await getActualKey(); + const masterKey = await ensureMasterKeyFromSession(); const keyAttributes: KeyAttributes = getData("keyAttributes"); let kek: DerivedKey; try { @@ -67,7 +69,7 @@ const Page: React.FC = () => { return; } const { encryptedData: encryptedKey, nonce: keyDecryptionNonce } = - await cryptoWorker.encryptBox(key, kek.key); + await cryptoWorker.encryptBox(masterKey, kek.key); const updatedKey: UpdatedKey = { encryptedKey, keyDecryptionNonce, @@ -118,10 +120,10 @@ const Page: React.FC = () => { await generateAndSaveIntermediateKeyAttributes( passphrase, updatedKeyAttributes, - key, + masterKey, ); - await saveMasterKeyInSessionAndSafeStore(key); + await saveMasterKeyInSessionAndSafeStore(masterKey); redirectToAppHome(); }; diff --git a/web/packages/new/photos/services/collections.ts b/web/packages/new/photos/services/collections.ts index 198903c0b8..af64a598ac 100644 --- a/web/packages/new/photos/services/collections.ts +++ b/web/packages/new/photos/services/collections.ts @@ -8,6 +8,7 @@ import { sharedCryptoWorker } from "ente-base/crypto"; import log from "ente-base/log"; import { apiURL } from "ente-base/origins"; +import { ensureMasterKeyFromSession } from "ente-base/session"; import { type Collection, type CollectionMagicMetadata, @@ -30,7 +31,6 @@ import HTTPService from "ente-shared/network/HTTPService"; import localForage from "ente-shared/storage/localForage"; import { getData } from "ente-shared/storage/localStorage"; import { getToken } from "ente-shared/storage/localStorage/helpers"; -import { getActualKey } from "ente-shared/user"; import { isHiddenCollection } from "./collection"; import { ensureUserKeyPair } from "./user"; @@ -89,9 +89,10 @@ export const syncCollections = async () => { let lastCollectionUpdationTime = await getCollectionUpdationTime(); const hiddenCollectionIDs = await getHiddenCollectionIDs(); const token = getToken(); - const key = await getActualKey(); + const masterKey = await ensureMasterKeyFromSession(); const updatedCollections = - (await getCollections(token, lastCollectionUpdationTime, key)) ?? []; + (await getCollections(token, lastCollectionUpdationTime, masterKey)) ?? + []; if (updatedCollections.length === 0) { return localCollections; } @@ -308,10 +309,9 @@ export const getCollection = async ( null, { "X-Auth-Token": token }, ); - const key = await getActualKey(); const collectionWithSecrets = await getCollectionWithSecrets( resp.data?.collection, - key, + await ensureMasterKeyFromSession(), ); return collectionWithSecrets; } catch (e) { diff --git a/web/packages/shared/user/index.ts b/web/packages/shared/user/index.ts deleted file mode 100644 index cb164dc884..0000000000 --- a/web/packages/shared/user/index.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { sharedCryptoWorker } from "ente-base/crypto"; -import type { B64EncryptionResult } from "ente-base/crypto/libsodium"; -import { getKey } from "ente-shared/storage/sessionStorage"; - -/** - * Deprecated, use {@link ensureMasterKeyFromSession} instead. - */ -export const getActualKey = async () => { - const encryptionKeyAttributes: B64EncryptionResult = - getKey("encryptionKey"); - - const cryptoWorker = await sharedCryptoWorker(); - const key = await cryptoWorker.decryptBox( - { - encryptedData: encryptionKeyAttributes.encryptedData, - nonce: encryptionKeyAttributes.nonce, - }, - encryptionKeyAttributes.key, - ); - return key; -}; From a1e506eb85df51374ed6dce655055bfb0cc06ffc Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 16:52:20 +0530 Subject: [PATCH 300/316] Impl --- web/packages/base/session.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/web/packages/base/session.ts b/web/packages/base/session.ts index 42f679623e..e0ebf7ad03 100644 --- a/web/packages/base/session.ts +++ b/web/packages/base/session.ts @@ -163,11 +163,22 @@ export const haveAuthenticatedSession = async () => { return !!lsToken; }; +/** + * Save the user's encypted key encryption key ("key") in session store + * temporarily, until we get back here after completing the second factor. + * + * See: [Note: Stashing KEK in session store] + * + * @param kek The user's key encryption key (as a base64 string). + */ +export const stashKeyEncryptionKeyInSessionStore = (kek: string) => + saveKeyInSessionStore("keyEncryptionKey", kek); + /** * Return the decrypted user's key encryption key ("kek") from session storage * if present, otherwise return `undefined`. * - * [Note: Stashing kek in session store] + * [Note: Stashing KEK in session store] * * During login, if the user has set a second factor (passkey or TOTP), then we * need to redirect them to the accounts app or TOTP page to verify the second From 3a127bcd8b52bbe9372ff554f5a9202f47487259 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 16:58:30 +0530 Subject: [PATCH 301/316] New --- web/packages/accounts/pages/credentials.tsx | 34 ++++++------------- web/packages/base/session.ts | 16 ++++----- .../shared/storage/sessionStorage/index.ts | 11 ------ 3 files changed, 18 insertions(+), 43 deletions(-) delete mode 100644 web/packages/shared/storage/sessionStorage/index.ts diff --git a/web/packages/accounts/pages/credentials.tsx b/web/packages/accounts/pages/credentials.tsx index 14c9eaec3b..1198a37d65 100644 --- a/web/packages/accounts/pages/credentials.tsx +++ b/web/packages/accounts/pages/credentials.tsx @@ -37,13 +37,14 @@ import { import { LinkButton } from "ente-base/components/LinkButton"; import { LoadingIndicator } from "ente-base/components/loaders"; import { useBaseContext } from "ente-base/context"; -import { sharedCryptoWorker } from "ente-base/crypto"; -import type { B64EncryptionResult } from "ente-base/crypto/libsodium"; +import { decryptBox } from "ente-base/crypto"; import { clearLocalStorage } from "ente-base/local-storage"; import log from "ente-base/log"; import { haveAuthenticatedSession, saveMasterKeyInSessionAndSafeStore, + stashKeyEncryptionKeyInSessionStore, + unstashKeyEncryptionKeyFromSession, updateSessionFromElectronSafeStorageIfNeeded, } from "ente-base/session"; import { CustomError } from "ente-shared/error"; @@ -53,7 +54,6 @@ import { isFirstLogin, setIsFirstLogin, } from "ente-shared/storage/localStorage/helpers"; -import { getKey, removeKey, setKey } from "ente-shared/storage/sessionStorage"; import { t } from "i18next"; import { useRouter } from "next/router"; import { useCallback, useEffect, useState } from "react"; @@ -120,8 +120,7 @@ const Page: React.FC = () => { void router.push(appHomeRoute); return; } - const kekEncryptedAttributes: B64EncryptionResult = - getKey("keyEncryptionKey"); + const kek = await unstashKeyEncryptionKeyFromSession(); const keyAttributes: KeyAttributes = getData("keyAttributes"); const srpAttributes: SRPAttributes = getData("srpAttributes"); @@ -129,26 +128,18 @@ const Page: React.FC = () => { setSessionValidityCheck(validateSession()); } - if (kekEncryptedAttributes && keyAttributes) { - removeKey("keyEncryptionKey"); - const cryptoWorker = await sharedCryptoWorker(); - const kek = await cryptoWorker.decryptBox( - { - encryptedData: kekEncryptedAttributes.encryptedData, - nonce: kekEncryptedAttributes.nonce, - }, - kekEncryptedAttributes.key, - ); - const key = await cryptoWorker.decryptBox( + if (kek && keyAttributes) { + const masterKey = await decryptBox( { encryptedData: keyAttributes.encryptedKey, nonce: keyAttributes.keyDecryptionNonce, }, kek, ); - void postVerification(key, kek, keyAttributes); + void postVerification(masterKey, kek, keyAttributes); return; } + if (keyAttributes) { if ( (!user?.token && !user?.encryptedToken) || @@ -184,7 +175,6 @@ const Page: React.FC = () => { // before we let the user in. if (sessionValidityCheck) await sessionValidityCheck; - const cryptoWorker = await sharedCryptoWorker(); const { keyAttributes, encryptedToken, @@ -200,9 +190,7 @@ const Page: React.FC = () => { setIsFirstLogin(true); if (passkeySessionID) { - const sessionKeyAttributes = - await cryptoWorker.generateKeyAndEncryptToB64(kek); - setKey("keyEncryptionKey", sessionKeyAttributes); + await stashKeyEncryptionKeyInSessionStore(kek); const user = getData("user"); await setLSUser({ ...user, @@ -219,9 +207,7 @@ const Page: React.FC = () => { openPasskeyVerificationURL({ passkeySessionID, url }); throw Error(CustomError.TWO_FACTOR_ENABLED); } else if (twoFactorSessionID) { - const sessionKeyAttributes = - await cryptoWorker.generateKeyAndEncryptToB64(kek); - setKey("keyEncryptionKey", sessionKeyAttributes); + await stashKeyEncryptionKeyInSessionStore(kek); const user = getData("user"); await setLSUser({ ...user, diff --git a/web/packages/base/session.ts b/web/packages/base/session.ts index e0ebf7ad03..9cfecd1e20 100644 --- a/web/packages/base/session.ts +++ b/web/packages/base/session.ts @@ -1,6 +1,6 @@ import { getToken } from "ente-shared/storage/localStorage/helpers"; import { z } from "zod/v4"; -import { decryptBox, decryptBoxBytes, encryptBox, generateKey } from "./crypto"; +import { decryptBox, encryptBox, generateKey } from "./crypto"; import { isDevBuild } from "./env"; import log from "./log"; import { getAuthToken } from "./token"; @@ -63,7 +63,6 @@ export const haveCredentialsInSession = () => * See also {@link ensureMasterKeyFromSession}, which is usually what we need. */ export const masterKeyFromSession = async () => { - // TODO: Same value as the deprecated getKey("encryptionKey") const value = sessionStorage.getItem("encryptionKey"); if (!value) return undefined; @@ -139,8 +138,6 @@ export const updateSessionFromElectronSafeStorageIfNeeded = async () => { log.error("Failed to read master key from safe storage", e); } if (masterKey) { - // Do not use `saveMasterKeyInSessionStore`, that will (unnecessarily) - // overwrite the OS safe storage again. await saveKeyInSessionStore("encryptionKey", masterKey); } }; @@ -178,6 +175,10 @@ export const stashKeyEncryptionKeyInSessionStore = (kek: string) => * Return the decrypted user's key encryption key ("kek") from session storage * if present, otherwise return `undefined`. * + * The key (if it was present) is also removed from session storage. + * + * @returns the previously stashed key (if any) as a base64 string. + * * [Note: Stashing KEK in session store] * * During login, if the user has set a second factor (passkey or TOTP), then we @@ -187,11 +188,10 @@ export const stashKeyEncryptionKeyInSessionStore = (kek: string) => * second factor redirect can happen to a separate accounts app altogether. * * So instead, we stash the encrypted kek in session store (using - * {@link stashKeyEncryptionKeyInSessionStore}), and after redirect, retrieve - * it (after clearing it) using {@link unstashKeyEncryptionKeyFromSession}. + * {@link stashKeyEncryptionKeyInSessionStore}), and after redirect, retrieve it + * (after clearing it) using {@link unstashKeyEncryptionKeyFromSession}. */ export const unstashKeyEncryptionKeyFromSession = async () => { - // TODO: Same value as the deprecated getKey("keyEncryptionKey") const value = sessionStorage.getItem("keyEncryptionKey"); if (!value) return undefined; @@ -200,5 +200,5 @@ export const unstashKeyEncryptionKeyFromSession = async () => { const { encryptedData, key, nonce } = SessionKeyData.parse( JSON.parse(value), ); - return decryptBoxBytes({ encryptedData, nonce }, key); + return decryptBox({ encryptedData, nonce }, key); }; diff --git a/web/packages/shared/storage/sessionStorage/index.ts b/web/packages/shared/storage/sessionStorage/index.ts deleted file mode 100644 index bc340bbbe6..0000000000 --- a/web/packages/shared/storage/sessionStorage/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -export type SessionKey = "encryptionKey" | "keyEncryptionKey"; - -export const setKey = (key: SessionKey, value: object) => - sessionStorage.setItem(key, JSON.stringify(value)); - -export const getKey = (key: SessionKey) => { - const value = sessionStorage.getItem(key); - return value && JSON.parse(value); -}; - -export const removeKey = (key: SessionKey) => sessionStorage.removeItem(key); From 4d985abd07b2e029012962252d8c31f203b14417 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 17:06:54 +0530 Subject: [PATCH 302/316] Trim --- .../accounts/pages/two-factor/recover.tsx | 7 +++--- web/packages/base/crypto/libsodium.ts | 23 ------------------- web/packages/base/crypto/worker.ts | 7 ------ 3 files changed, 4 insertions(+), 33 deletions(-) diff --git a/web/packages/accounts/pages/two-factor/recover.tsx b/web/packages/accounts/pages/two-factor/recover.tsx index 21593f30e7..54f6e6a079 100644 --- a/web/packages/accounts/pages/two-factor/recover.tsx +++ b/web/packages/accounts/pages/two-factor/recover.tsx @@ -19,7 +19,6 @@ import { } from "ente-base/components/SingleInputForm"; import { useBaseContext } from "ente-base/context"; import { decryptBox } from "ente-base/crypto"; -import type { B64EncryptionResult } from "ente-base/crypto/libsodium"; import log from "ente-base/log"; import { ApiError } from "ente-shared/error"; import { getData, setData, setLSUser } from "ente-shared/storage/localStorage"; @@ -35,8 +34,10 @@ export interface RecoverPageProps { const Page: React.FC = ({ twoFactorType }) => { const { logout, showMiniDialog } = useBaseContext(); - const [encryptedTwoFactorSecret, setEncryptedTwoFactorSecret] = - useState | null>(null); + const [encryptedTwoFactorSecret, setEncryptedTwoFactorSecret] = useState<{ + encryptedData: string; + nonce: string; + } | null>(null); const [sessionID, setSessionID] = useState(null); const [doesHaveEncryptedRecoveryKey, setDoesHaveEncryptedRecoveryKey] = useState(false); diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index 9f4d52e71d..2e125ba093 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -638,29 +638,6 @@ export const decryptStreamChunk = async ( return pullResult.message; }; -export interface B64EncryptionResult { - encryptedData: string; - key: string; - nonce: string; -} - -/** Deprecated, use {@link encryptBox} instead */ -async function encryptToB64(data: string, keyB64: string) { - await sodium.ready; - const encrypted = await encryptBox(data, keyB64); - return { - encryptedData: encrypted.encryptedData, - key: keyB64, - nonce: encrypted.nonce, - } as B64EncryptionResult; -} - -export async function generateKeyAndEncryptToB64(data: string) { - await sodium.ready; - const key = sodium.crypto_secretbox_keygen(); - return await encryptToB64(data, await toB64(key)); -} - /** * Initialize and return new state that can be used to hash the chunks of data * in a streaming manner. diff --git a/web/packages/base/crypto/worker.ts b/web/packages/base/crypto/worker.ts index 4214855b3c..982b66b1ee 100644 --- a/web/packages/base/crypto/worker.ts +++ b/web/packages/base/crypto/worker.ts @@ -1,7 +1,6 @@ import { expose } from "comlink"; import { logUnhandledErrorsAndRejectionsInWorker } from "ente-base/log-web"; import * as ei from "./ente-impl"; -import * as libsodium from "./libsodium"; /** * A web worker that exposes some of the functions defined in either the Ente @@ -47,12 +46,6 @@ export class CryptoWorker { deriveSensitiveKey = ei._deriveSensitiveKey; deriveInteractiveKey = ei._deriveInteractiveKey; deriveSubKeyBytes = ei._deriveSubKeyBytes; - - // TODO: -- AUDIT BELOW -- - - async generateKeyAndEncryptToB64(data: string) { - return libsodium.generateKeyAndEncryptToB64(data); - } } expose(CryptoWorker); From d409935cebf16b9521b5fef101ab9b77c2f5db44 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 17:10:52 +0530 Subject: [PATCH 303/316] Tweak --- web/packages/base/crypto/libsodium.ts | 47 ++++++++----------- web/packages/base/crypto/types.ts | 13 +++++ .../gallery/services/upload/upload-service.ts | 2 +- 3 files changed, 33 insertions(+), 29 deletions(-) diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index 2e125ba093..e81514d2f5 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -10,19 +10,20 @@ */ import { mergeUint8Arrays } from "ente-utils/array"; import sodium from "libsodium-wrappers-sumo"; -import type { - BytesOrB64, - DerivedKey, - EncryptedBlob, - EncryptedBlobB64, - EncryptedBlobBytes, - EncryptedBox, - EncryptedBoxB64, - EncryptedFile, - InitChunkDecryptionResult, - InitChunkEncryptionResult, - KeyPair, - SodiumStateAddress, +import { + streamEncryptionChunkSize, + type BytesOrB64, + type DerivedKey, + type EncryptedBlob, + type EncryptedBlobB64, + type EncryptedBlobBytes, + type EncryptedBox, + type EncryptedBoxB64, + type EncryptedFile, + type InitChunkDecryptionResult, + type InitChunkEncryptionResult, + type KeyPair, + type SodiumStateAddress, } from "./types"; /** @@ -350,22 +351,12 @@ export const encryptBlob = async ( * Use {@link decryptMetadataJSON} to decrypt the result and convert it back to * a JSON value. */ -export const encryptMetadataJSON = (jsonValue: unknown, key: BytesOrB64) => +export const encryptMetadataJSON = ( + jsonValue: unknown, + key: BytesOrB64, +): Promise => encryptBlob(new TextEncoder().encode(JSON.stringify(jsonValue)), key); -/** - * The various *Stream encryption functions break up the input into chunks of - * {@link streamEncryptionChunkSize} bytes during encryption (except the last - * chunk which can be smaller since a file would rarely align exactly to a - * {@link streamEncryptionChunkSize} multiple). - * - * The various *Stream decryption functions also assume that each potential - * chunk is {@link streamEncryptionChunkSize} long. - * - * This value of this constant is 4 MB (and is unlikely to change). - */ -export const streamEncryptionChunkSize = 4 * 1024 * 1024; - /** * Encrypt the given data using libsodium's secretstream APIs after breaking it * into {@link streamEncryptionChunkSize} chunks. @@ -548,7 +539,7 @@ export const decryptBlob = ( export const decryptMetadataJSON = async ( blob: EncryptedBlob, key: BytesOrB64, -) => +): Promise => JSON.parse( new TextDecoder().decode(await decryptBlobBytes(blob, key)), ) as unknown; diff --git a/web/packages/base/crypto/types.ts b/web/packages/base/crypto/types.ts index 0ceb9be1a2..2e20f5978b 100644 --- a/web/packages/base/crypto/types.ts +++ b/web/packages/base/crypto/types.ts @@ -6,6 +6,19 @@ import { type StateAddress } from "libsodium-wrappers-sumo"; */ export type SodiumStateAddress = StateAddress; +/** + * The various *Stream encryption functions break up the input into chunks of + * {@link streamEncryptionChunkSize} bytes during encryption (except the last + * chunk which can be smaller since a file would rarely align exactly to a + * {@link streamEncryptionChunkSize} multiple). + * + * The various *Stream decryption functions also assume that each potential + * chunk is {@link streamEncryptionChunkSize} long. + * + * This value of this constant is 4 MB (and is unlikely to change). + */ +export const streamEncryptionChunkSize = 4 * 1024 * 1024; + /** * Data provided either as bytes ({@link Uint8Array}) or their base64 string * representation. diff --git a/web/packages/gallery/services/upload/upload-service.ts b/web/packages/gallery/services/upload/upload-service.ts index dd00f3cca7..1e71f1bf1a 100644 --- a/web/packages/gallery/services/upload/upload-service.ts +++ b/web/packages/gallery/services/upload/upload-service.ts @@ -1,8 +1,8 @@ // TODO: Audit this file /* eslint-disable @typescript-eslint/ban-ts-comment */ -import { streamEncryptionChunkSize } from "ente-base/crypto/libsodium"; import type { BytesOrB64 } from "ente-base/crypto/types"; +import { streamEncryptionChunkSize } from "ente-base/crypto/types"; import { type CryptoWorker } from "ente-base/crypto/worker"; import { ensureElectron } from "ente-base/electron"; import { basename, nameAndExtension } from "ente-base/file-name"; From 8b4e66e37c97619c83a60360c74d6f4288351745 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 17:17:02 +0530 Subject: [PATCH 304/316] Reorder --- web/packages/base/crypto/index.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index 1e623deba1..e035ac1e52 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -134,14 +134,6 @@ export const createComlinkCryptoWorker = () => export const toB64 = (bytes: Uint8Array): Promise => inWorker() ? ei._toB64(bytes) : sharedWorker().then((w) => w.toB64(bytes)); -/** - * URL safe variant of {@link toB64}. - */ -export const toB64URLSafe = (bytes: Uint8Array): Promise => - inWorker() - ? ei._toB64URLSafe(bytes) - : sharedWorker().then((w) => w.toB64URLSafe(bytes)); - /** * Convert a base64 string to bytes ({@link Uint8Array}). */ @@ -150,6 +142,14 @@ export const fromB64 = (b64String: string): Promise => ? ei._fromB64(b64String) : sharedWorker().then((w) => w.fromB64(b64String)); +/** + * URL safe variant of {@link toB64}. + */ +export const toB64URLSafe = (bytes: Uint8Array): Promise => + inWorker() + ? ei._toB64URLSafe(bytes) + : sharedWorker().then((w) => w.toB64URLSafe(bytes)); + /** * Convert a base64 string to the hex representation of the underlying bytes. */ From 0fdb27ccd71fa06496a35c841c71754f6b15140d Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 17:22:20 +0530 Subject: [PATCH 305/316] Swap --- web/apps/accounts/src/services/passkey.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/web/apps/accounts/src/services/passkey.ts b/web/apps/accounts/src/services/passkey.ts index 4662e0b874..26b4802a00 100644 --- a/web/apps/accounts/src/services/passkey.ts +++ b/web/apps/accounts/src/services/passkey.ts @@ -3,7 +3,6 @@ import { clientPackageName } from "ente-base/app"; import { fromB64URLSafeNoPadding, toB64URLSafeNoPadding, - toB64URLSafeNoPaddingString, } from "ente-base/crypto/libsodium"; import { isDevBuild } from "ente-base/env"; import { ensureOk, HTTPError, publicRequestHeaders } from "ente-base/http"; @@ -619,8 +618,10 @@ export const passkeyAuthenticationSuccessRedirectURL = async ( passkeySessionID: string, twoFactorAuthorizationResponse: TwoFactorAuthorizationResponse, ) => { - const encodedResponse = await toB64URLSafeNoPaddingString( - JSON.stringify(twoFactorAuthorizationResponse), + const encodedResponse = await toB64URLSafeNoPadding( + new TextEncoder().encode( + JSON.stringify(twoFactorAuthorizationResponse), + ), ); redirectURL.searchParams.set("passkeySessionID", passkeySessionID); redirectURL.searchParams.set("response", encodedResponse); From 81eca40f134642e2d464d1baec303019be9dd85d Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 17:24:33 +0530 Subject: [PATCH 306/316] Via --- web/apps/accounts/src/services/passkey.ts | 5 +---- web/packages/base/crypto/ente-impl.ts | 4 +++- web/packages/base/crypto/index.ts | 19 +++++++++++++++++++ web/packages/base/crypto/worker.ts | 4 +++- 4 files changed, 26 insertions(+), 6 deletions(-) diff --git a/web/apps/accounts/src/services/passkey.ts b/web/apps/accounts/src/services/passkey.ts index 26b4802a00..203ed45ee6 100644 --- a/web/apps/accounts/src/services/passkey.ts +++ b/web/apps/accounts/src/services/passkey.ts @@ -1,9 +1,6 @@ import { TwoFactorAuthorizationResponse } from "ente-accounts/services/user"; import { clientPackageName } from "ente-base/app"; -import { - fromB64URLSafeNoPadding, - toB64URLSafeNoPadding, -} from "ente-base/crypto/libsodium"; +import { toB64URLSafeNoPadding, fromB64URLSafeNoPadding } from "ente-base/crypto"; import { isDevBuild } from "ente-base/env"; import { ensureOk, HTTPError, publicRequestHeaders } from "ente-base/http"; import { apiURL } from "ente-base/origins"; diff --git a/web/packages/base/crypto/ente-impl.ts b/web/packages/base/crypto/ente-impl.ts index ad56a0c599..708ddf344b 100644 --- a/web/packages/base/crypto/ente-impl.ts +++ b/web/packages/base/crypto/ente-impl.ts @@ -6,8 +6,10 @@ import * as libsodium from "./libsodium"; // See: [Note: Using libsodium in worker thread] export const _toB64 = libsodium.toB64; -export const _toB64URLSafe = libsodium.toB64URLSafe; export const _fromB64 = libsodium.fromB64; +export const _toB64URLSafe = libsodium.toB64URLSafe; +export const _toB64URLSafeNoPadding = libsodium.toB64URLSafeNoPadding; +export const _fromB64URLSafeNoPadding = libsodium.fromB64URLSafeNoPadding; export const _toHex = libsodium.toHex; export const _fromHex = libsodium.fromHex; export const _generateKey = libsodium.generateKey; diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index e035ac1e52..4eb8b4ec82 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -150,6 +150,25 @@ export const toB64URLSafe = (bytes: Uint8Array): Promise => ? ei._toB64URLSafe(bytes) : sharedWorker().then((w) => w.toB64URLSafe(bytes)); +/** + * URL safe variant of {@link toB64} that does not add any padding ("=" + * characters). + */ +export const toB64URLSafeNoPadding = (bytes: Uint8Array): Promise => + inWorker() + ? ei._toB64URLSafeNoPadding(bytes) + : sharedWorker().then((w) => w.toB64URLSafeNoPadding(bytes)); + +/** + * URL safe unpadded variant of {@link fromB64}. + */ +export const fromB64URLSafeNoPadding = ( + b64String: string, +): Promise => + inWorker() + ? ei._fromB64URLSafeNoPadding(b64String) + : sharedWorker().then((w) => w.fromB64URLSafeNoPadding(b64String)); + /** * Convert a base64 string to the hex representation of the underlying bytes. */ diff --git a/web/packages/base/crypto/worker.ts b/web/packages/base/crypto/worker.ts index 982b66b1ee..dcd6dd88d4 100644 --- a/web/packages/base/crypto/worker.ts +++ b/web/packages/base/crypto/worker.ts @@ -13,8 +13,10 @@ import * as ei from "./ente-impl"; */ export class CryptoWorker { toB64 = ei._toB64; - toB64URLSafe = ei._toB64URLSafe; fromB64 = ei._fromB64; + toB64URLSafe = ei._toB64URLSafe; + toB64URLSafeNoPadding = ei._toB64URLSafeNoPadding; + fromB64URLSafeNoPadding = ei._fromB64URLSafeNoPadding; toHex = ei._toHex; fromHex = ei._fromHex; generateKey = ei._generateKey; From 930070ad143bc2f39100d44378422acb5ca0f455 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 17:36:52 +0530 Subject: [PATCH 307/316] Swap --- web/packages/accounts/pages/passkeys/finish.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/packages/accounts/pages/passkeys/finish.tsx b/web/packages/accounts/pages/passkeys/finish.tsx index 44e4825f2b..447b4be15d 100644 --- a/web/packages/accounts/pages/passkeys/finish.tsx +++ b/web/packages/accounts/pages/passkeys/finish.tsx @@ -1,6 +1,6 @@ import { unstashRedirect } from "ente-accounts/services/redirect"; import { LoadingIndicator } from "ente-base/components/loaders"; -import { fromB64URLSafeNoPaddingString } from "ente-base/crypto/libsodium"; +import { fromB64URLSafeNoPadding } from "ente-base/crypto"; import log from "ente-base/log"; import { getData, setData, setLSUser } from "ente-shared/storage/localStorage"; import { nullToUndefined } from "ente-utils/transform"; @@ -72,7 +72,7 @@ const saveCredentialsAndNavigateTo = async ( // Decode response string (inverse of the steps we perform in // `passkeyAuthenticationSuccessRedirectURL`). const decodedResponse = JSON.parse( - await fromB64URLSafeNoPaddingString(response), + new TextDecoder().decode(await fromB64URLSafeNoPadding(response)), ); // Only one of `encryptedToken` or `token` will be present depending on the From 9cacbb4f349bcd4b624bf528e401bd68aaabecba Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 17:50:26 +0530 Subject: [PATCH 308/316] Restore older behaviour accidentally left off in 9a5bac774ecb8c9ecafa822b68e436f7ad8bccff --- web/apps/accounts/src/pages/passkeys/index.tsx | 1 - .../photos/src/components/Collections/CollectionHeader.tsx | 1 - web/apps/photos/src/components/Upload.tsx | 1 - web/apps/photos/src/pages/gallery.tsx | 1 - web/packages/accounts/components/LoginContents.tsx | 1 + .../accounts/components/VerifyMasterPasswordForm.tsx | 1 + web/packages/base/components/SingleInputForm.tsx | 5 +++++ web/packages/gallery/components/FileInfo.tsx | 1 - web/packages/new/albums/components/UploaderNameInput.tsx | 1 + web/packages/new/photos/components/gallery/PeopleHeader.tsx | 2 -- 10 files changed, 8 insertions(+), 7 deletions(-) diff --git a/web/apps/accounts/src/pages/passkeys/index.tsx b/web/apps/accounts/src/pages/passkeys/index.tsx index 5aab316ffa..3a13bceb9a 100644 --- a/web/apps/accounts/src/pages/passkeys/index.tsx +++ b/web/apps/accounts/src/pages/passkeys/index.tsx @@ -374,7 +374,6 @@ const ManagePasskeyDrawer: React.FC = ({ title={t("rename_passkey")} label={t("name")} placeholder={t("enter_passkey_name")} - autoFocus initialValue={passkey.friendlyName} submitButtonTitle={t("rename")} onSubmit={handleRenamePasskeySubmit} diff --git a/web/apps/photos/src/components/Collections/CollectionHeader.tsx b/web/apps/photos/src/components/Collections/CollectionHeader.tsx index 4e8031e23b..11062597ee 100644 --- a/web/apps/photos/src/components/Collections/CollectionHeader.tsx +++ b/web/apps/photos/src/components/Collections/CollectionHeader.tsx @@ -520,7 +520,6 @@ const CollectionOptions: React.FC = ({ {...albumNameInputVisibilityProps} title={t("rename_album")} label={t("album_name")} - autoFocus initialValue={activeCollection?.name} submitButtonColor="primary" submitButtonTitle={t("rename")} diff --git a/web/apps/photos/src/components/Upload.tsx b/web/apps/photos/src/components/Upload.tsx index 25ef5cfe81..0d87895552 100644 --- a/web/apps/photos/src/components/Upload.tsx +++ b/web/apps/photos/src/components/Upload.tsx @@ -852,7 +852,6 @@ export const Upload: React.FC = ({ {...newAlbumNameInputVisibilityProps} title={t("new_album")} label={t("album_name")} - autoFocus initialValue={prefilledNewAlbumName} submitButtonTitle={t("create")} onSubmit={uploadToSingleNewCollection} diff --git a/web/apps/photos/src/pages/gallery.tsx b/web/apps/photos/src/pages/gallery.tsx index c77158232a..46b151ef22 100644 --- a/web/apps/photos/src/pages/gallery.tsx +++ b/web/apps/photos/src/pages/gallery.tsx @@ -1143,7 +1143,6 @@ const Page: React.FC = () => { {...albumNameInputVisibilityProps} title={t("new_album")} label={t("album_name")} - autoFocus submitButtonTitle={t("create")} onSubmit={handleAlbumNameSubmit} /> diff --git a/web/packages/accounts/components/LoginContents.tsx b/web/packages/accounts/components/LoginContents.tsx index cc020fb263..8cfd131d47 100644 --- a/web/packages/accounts/components/LoginContents.tsx +++ b/web/packages/accounts/components/LoginContents.tsx @@ -98,6 +98,7 @@ export const LoginContents: React.FC = ({ autoComplete="username" label={t("enter_email")} fullWidth + autoFocus margin="normal" disabled={formik.isSubmitting} error={!!formik.errors.email} diff --git a/web/packages/accounts/components/VerifyMasterPasswordForm.tsx b/web/packages/accounts/components/VerifyMasterPasswordForm.tsx index ddbfe612f3..274f5b420e 100644 --- a/web/packages/accounts/components/VerifyMasterPasswordForm.tsx +++ b/web/packages/accounts/components/VerifyMasterPasswordForm.tsx @@ -204,6 +204,7 @@ export const VerifyMasterPasswordForm: React.FC< autoComplete="current-password" label={t("password")} fullWidth + autoFocus margin="normal" disabled={formik.isSubmitting} error={!!formik.errors.password} diff --git a/web/packages/base/components/SingleInputForm.tsx b/web/packages/base/components/SingleInputForm.tsx index c003d843e8..5229adc2fd 100644 --- a/web/packages/base/components/SingleInputForm.tsx +++ b/web/packages/base/components/SingleInputForm.tsx @@ -91,10 +91,14 @@ export type SingleInputFormProps = Pick< * Submission is handled as an async function, during which the input is * disabled and a loading indicator is shown. Errors during submission are shown * as the helper text associated with the text field. + * + * The input field in the form takes autoFocus automatically on mount. Turn off + * the {@link autoFocus} to disable this behaviour if needed. */ export const SingleInputForm: React.FC = ({ inputType, initialValue, + autoFocus, submitButtonTitle, submitButtonColor, onCancel, @@ -153,6 +157,7 @@ export const SingleInputForm: React.FC = ({ onChange={formik.handleChange} type={showPassword ? "text" : (inputType ?? "text")} fullWidth + autoFocus={autoFocus ?? true} margin="normal" disabled={formik.isSubmitting} error={!!formik.errors.value} diff --git a/web/packages/gallery/components/FileInfo.tsx b/web/packages/gallery/components/FileInfo.tsx index 658175da5c..b6f1cc54f6 100644 --- a/web/packages/gallery/components/FileInfo.tsx +++ b/web/packages/gallery/components/FileInfo.tsx @@ -842,7 +842,6 @@ const RenameFileDialog: React.FC = ({ = ({ onChange={formik.handleChange} type={"text"} fullWidth + autoFocus margin="normal" hiddenLabel aria-label={t("name")} diff --git a/web/packages/new/photos/components/gallery/PeopleHeader.tsx b/web/packages/new/photos/components/gallery/PeopleHeader.tsx index b4a9a0cc18..f730d9bd19 100644 --- a/web/packages/new/photos/components/gallery/PeopleHeader.tsx +++ b/web/packages/new/photos/components/gallery/PeopleHeader.tsx @@ -166,7 +166,6 @@ const CGroupPersonHeader: React.FC = ({ person }) => { label={t("name")} placeholder={t("enter_name")} autoComplete="name" - autoFocus initialValue={name} submitButtonColor="primary" submitButtonTitle={t("rename")} @@ -373,7 +372,6 @@ const AddPersonDialog: React.FC = ({ label={t("add_name")} placeholder={t("enter_name")} autoComplete="name" - autoFocus submitButtonColor="primary" submitButtonTitle={t("add")} onSubmit={handleAddPersonWithName} From 38a4d960357dedde96a7618a09716249990fa639 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 18:06:10 +0530 Subject: [PATCH 309/316] Unused --- web/packages/base/crypto/libsodium.ts | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/web/packages/base/crypto/libsodium.ts b/web/packages/base/crypto/libsodium.ts index e81514d2f5..26f561f34e 100644 --- a/web/packages/base/crypto/libsodium.ts +++ b/web/packages/base/crypto/libsodium.ts @@ -87,24 +87,6 @@ export const fromB64URLSafeNoPadding = async (input: string) => { return sodium.from_base64(input, sodium.base64_variants.URLSAFE_NO_PADDING); }; -/** - * Variant of {@link toB64URLSafeNoPadding} that works with {@link string} - * inputs. See also its sibling method {@link fromB64URLSafeNoPaddingString}. - */ -export const toB64URLSafeNoPaddingString = async (input: string) => { - await sodium.ready; - return toB64URLSafeNoPadding(sodium.from_string(input)); -}; - -/** - * Variant of {@link fromB64URLSafeNoPadding} that works with {@link strings}. See also - * its sibling method {@link toB64URLSafeNoPaddingString}. - */ -export const fromB64URLSafeNoPaddingString = async (input: string) => { - await sodium.ready; - return sodium.to_string(await fromB64URLSafeNoPadding(input)); -}; - /** * Convert a base64 string to the hex representation of the bytes that the base * 64 string encodes. From f8fa731a3231631dbad512c62a52a7e9c68a1bcf Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Fri, 6 Jun 2025 18:14:21 +0530 Subject: [PATCH 310/316] Simplify --- web/apps/accounts/src/services/passkey.ts | 5 +- web/packages/base/crypto/ente-impl.ts | 43 -------- web/packages/base/crypto/index.ts | 117 +++++++++++----------- web/packages/base/crypto/worker.ts | 78 +++++++-------- 4 files changed, 101 insertions(+), 142 deletions(-) delete mode 100644 web/packages/base/crypto/ente-impl.ts diff --git a/web/apps/accounts/src/services/passkey.ts b/web/apps/accounts/src/services/passkey.ts index 203ed45ee6..84e9751453 100644 --- a/web/apps/accounts/src/services/passkey.ts +++ b/web/apps/accounts/src/services/passkey.ts @@ -1,6 +1,9 @@ import { TwoFactorAuthorizationResponse } from "ente-accounts/services/user"; import { clientPackageName } from "ente-base/app"; -import { toB64URLSafeNoPadding, fromB64URLSafeNoPadding } from "ente-base/crypto"; +import { + fromB64URLSafeNoPadding, + toB64URLSafeNoPadding, +} from "ente-base/crypto"; import { isDevBuild } from "ente-base/env"; import { ensureOk, HTTPError, publicRequestHeaders } from "ente-base/http"; import { apiURL } from "ente-base/origins"; diff --git a/web/packages/base/crypto/ente-impl.ts b/web/packages/base/crypto/ente-impl.ts deleted file mode 100644 index 708ddf344b..0000000000 --- a/web/packages/base/crypto/ente-impl.ts +++ /dev/null @@ -1,43 +0,0 @@ -/** Careful when adding add other imports! */ -import * as libsodium from "./libsodium"; - -// Trivial proxies to the actual implementation. -// -// See: [Note: Using libsodium in worker thread] - -export const _toB64 = libsodium.toB64; -export const _fromB64 = libsodium.fromB64; -export const _toB64URLSafe = libsodium.toB64URLSafe; -export const _toB64URLSafeNoPadding = libsodium.toB64URLSafeNoPadding; -export const _fromB64URLSafeNoPadding = libsodium.fromB64URLSafeNoPadding; -export const _toHex = libsodium.toHex; -export const _fromHex = libsodium.fromHex; -export const _generateKey = libsodium.generateKey; -export const _generateBlobOrStreamKey = libsodium.generateBlobOrStreamKey; -export const _encryptBox = libsodium.encryptBox; -export const _encryptBlob = libsodium.encryptBlob; -export const _encryptBlobBytes = libsodium.encryptBlobBytes; -export const _encryptMetadataJSON = libsodium.encryptMetadataJSON; -export const _encryptStreamBytes = libsodium.encryptStreamBytes; -export const _initChunkEncryption = libsodium.initChunkEncryption; -export const _encryptStreamChunk = libsodium.encryptStreamChunk; -export const _decryptBox = libsodium.decryptBox; -export const _decryptBoxBytes = libsodium.decryptBoxBytes; -export const _decryptBlob = libsodium.decryptBlob; -export const _decryptBlobBytes = libsodium.decryptBlobBytes; -export const _decryptMetadataJSON = libsodium.decryptMetadataJSON; -export const _decryptStreamBytes = libsodium.decryptStreamBytes; -export const _initChunkDecryption = libsodium.initChunkDecryption; -export const _decryptStreamChunk = libsodium.decryptStreamChunk; -export const _chunkHashInit = libsodium.chunkHashInit; -export const _chunkHashUpdate = libsodium.chunkHashUpdate; -export const _chunkHashFinal = libsodium.chunkHashFinal; -export const _generateKeyPair = libsodium.generateKeyPair; -export const _boxSeal = libsodium.boxSeal; -export const _boxSealOpen = libsodium.boxSealOpen; -export const _boxSealOpenBytes = libsodium.boxSealOpenBytes; -export const _generateDeriveKeySalt = libsodium.generateDeriveKeySalt; -export const _deriveKey = libsodium.deriveKey; -export const _deriveSensitiveKey = libsodium.deriveSensitiveKey; -export const _deriveInteractiveKey = libsodium.deriveInteractiveKey; -export const _deriveSubKeyBytes = libsodium.deriveSubKeyBytes; diff --git a/web/packages/base/crypto/index.ts b/web/packages/base/crypto/index.ts index 4eb8b4ec82..8ffa6dfbb5 100644 --- a/web/packages/base/crypto/index.ts +++ b/web/packages/base/crypto/index.ts @@ -13,48 +13,47 @@ * 3. libsodium-wrappers (JavaScript bindings to libsodium) * * Our cryptography primitives are provided by libsodium, specifically, its - * JavaScript bindings ("libsodium-wrappers"). This is the lowest layer. Note - * that we use the sumo variant, "libsodium-wrappers-sumo", since the standard - * variant does not provide the `crypto_pwhash_*` functions. + * JavaScript bindings ("libsodium-wrappers"). That is the lowest layer. + * + * > Note that we use the sumo variant, "libsodium-wrappers-sumo", since the + * standard variant does not provide the `crypto_pwhash_*` functions. * * Direct usage of "libsodium-wrappers" is restricted to `crypto/libsodium.ts`. - * This is the next higher layer. Usually the functions in this file are thin + * That is the next higher layer. Usually the functions in this file are thin * wrappers over the raw libsodium APIs, with a bit of massaging. They also * ensure that sodium.ready has been called before accessing libsodium's APIs, * thus all the functions it exposes are async. * - * The highest layer is this file, `crypto/index.ts`. These are direct proxies - * to functions exposed by `crypto/libsodium.ts`, but they automatically defer - * to a worker thread if we're not already running on one. + * Direct usage of "libsodium-wrappers" is restricted to this file, + * `crypto/index.ts`. This is the highest layer. These are direct proxies to + * functions exposed by `crypto/libsodium.ts`, but they automatically defer to a + * worker thread if we're not already running on one. More on this below. * * --- * * [Note: Using libsodium in worker thread] * - * `crypto/ente-impl.ts` and `crypto/worker.ts` are logic-less internal files - * meant to allow us to seamlessly use the the same API both from the main - * thread or from a web worker whilst ensuring that the implementation never - * runs on the main thread. + * This file, `crypto/index.ts`, and `crypto/worker.ts` are mostly logic-less + * trampolines meant to allow us to seamlessly use the the same API both from + * the main thread or from a web worker whilst ensuring that the implementation + * never runs on the main thread. * * Cryptographic operations like encryption are CPU intensive and would cause * the UI to stutter if used directly on the main thread. To keep the UI smooth, * we instead want to run them in a web worker. However, sometimes we already * _are_ running in a web worker, and delegating to another worker is wasteful. * - * To handle both these scenario, the implementation of the functions in this - * file are split into the external API, and the underlying implementation - * (denoted by an "_" prefix). To avoid a circular dependency during webpack - * imports, we need to keep the implementation functions in a separate file - * (`ente-impl.ts`). + * The external API functions provided by this file check to see if we're + * already in a web worker, and if so directly invoke the implementation. + * Otherwise the call the sibling function in a shared "crypto" web worker + * (which then invokes the implementation function, but this time in the context + * of a web worker). * - * The external API functions check to see if we're already in a web worker, and - * if so directly invoke the implementation. Otherwise the call the sibling - * function in a shared "crypto" web worker (which then invokes the - * implementation function, but this time in the context of a web worker). - * - * Also, some code (e.g. the uploader) creates it own crypto worker instances, - * and thus directly calls the functions in the web worker that it created - * instead of going through this file. + * As a consumer, it is safe to just call functions in this file, and they'll + * just do the right thing based on the context. However, it is also fine to + * explicitly get an handle to a crypto web worker and use that. e.g., the + * uploader creates it own crypto worker instances and directly calls the + * functions in the workers that it created instead of going through this file. * * --- * @@ -87,7 +86,7 @@ */ import { ComlinkWorker } from "ente-base/worker/comlink-worker"; import { inWorker } from "../env"; -import * as ei from "./ente-impl"; +import * as libsodium from "./libsodium"; import type { BytesOrB64, DerivedKey, @@ -132,14 +131,16 @@ export const createComlinkCryptoWorker = () => * Convert bytes ({@link Uint8Array}) to a base64 string. */ export const toB64 = (bytes: Uint8Array): Promise => - inWorker() ? ei._toB64(bytes) : sharedWorker().then((w) => w.toB64(bytes)); + inWorker() + ? libsodium.toB64(bytes) + : sharedWorker().then((w) => w.toB64(bytes)); /** * Convert a base64 string to bytes ({@link Uint8Array}). */ export const fromB64 = (b64String: string): Promise => inWorker() - ? ei._fromB64(b64String) + ? libsodium.fromB64(b64String) : sharedWorker().then((w) => w.fromB64(b64String)); /** @@ -147,7 +148,7 @@ export const fromB64 = (b64String: string): Promise => */ export const toB64URLSafe = (bytes: Uint8Array): Promise => inWorker() - ? ei._toB64URLSafe(bytes) + ? libsodium.toB64URLSafe(bytes) : sharedWorker().then((w) => w.toB64URLSafe(bytes)); /** @@ -156,7 +157,7 @@ export const toB64URLSafe = (bytes: Uint8Array): Promise => */ export const toB64URLSafeNoPadding = (bytes: Uint8Array): Promise => inWorker() - ? ei._toB64URLSafeNoPadding(bytes) + ? libsodium.toB64URLSafeNoPadding(bytes) : sharedWorker().then((w) => w.toB64URLSafeNoPadding(bytes)); /** @@ -166,7 +167,7 @@ export const fromB64URLSafeNoPadding = ( b64String: string, ): Promise => inWorker() - ? ei._fromB64URLSafeNoPadding(b64String) + ? libsodium.fromB64URLSafeNoPadding(b64String) : sharedWorker().then((w) => w.fromB64URLSafeNoPadding(b64String)); /** @@ -174,7 +175,7 @@ export const fromB64URLSafeNoPadding = ( */ export const toHex = (b64String: string): Promise => inWorker() - ? ei._toHex(b64String) + ? libsodium.toHex(b64String) : sharedWorker().then((w) => w.toHex(b64String)); /** @@ -182,7 +183,7 @@ export const toHex = (b64String: string): Promise => */ export const fromHex = (hexString: string): Promise => inWorker() - ? ei._fromHex(hexString) + ? libsodium.fromHex(hexString) : sharedWorker().then((w) => w.fromHex(hexString)); /** @@ -193,7 +194,7 @@ export const fromHex = (hexString: string): Promise => */ export const generateKey = (): Promise => inWorker() - ? ei._generateKey() + ? libsodium.generateKey() : sharedWorker().then((w) => w.generateKey()); /** @@ -202,7 +203,7 @@ export const generateKey = (): Promise => */ export const generateBlobOrStreamKey = (): Promise => inWorker() - ? ei._generateBlobOrStreamKey() + ? libsodium.generateBlobOrStreamKey() : sharedWorker().then((w) => w.generateBlobOrStreamKey()); /** @@ -223,7 +224,7 @@ export const encryptBox = ( key: BytesOrB64, ): Promise => inWorker() - ? ei._encryptBox(data, key) + ? libsodium.encryptBox(data, key) : sharedWorker().then((w) => w.encryptBox(data, key)); /** @@ -245,7 +246,7 @@ export const encryptBlob = ( key: BytesOrB64, ): Promise => inWorker() - ? ei._encryptBlob(data, key) + ? libsodium.encryptBlob(data, key) : sharedWorker().then((w) => w.encryptBlob(data, key)); /** @@ -259,7 +260,7 @@ export const encryptBlobBytes = ( key: BytesOrB64, ): Promise => inWorker() - ? ei._encryptBlobBytes(data, key) + ? libsodium.encryptBlobBytes(data, key) : sharedWorker().then((w) => w.encryptBlobBytes(data, key)); /** @@ -287,7 +288,7 @@ export const encryptMetadataJSON = ( key: BytesOrB64, ): Promise => inWorker() - ? ei._encryptMetadataJSON(jsonValue, key) + ? libsodium.encryptMetadataJSON(jsonValue, key) : sharedWorker().then((w) => w.encryptMetadataJSON(jsonValue, key)); /** @@ -299,7 +300,7 @@ export const encryptStreamBytes = ( key: BytesOrB64, ): Promise => inWorker() - ? ei._encryptStreamBytes(data, key) + ? libsodium.encryptStreamBytes(data, key) : sharedWorker().then((w) => w.encryptStreamBytes(data, key)); /** @@ -309,7 +310,7 @@ export const initChunkEncryption = ( key: BytesOrB64, ): Promise => inWorker() - ? ei._initChunkEncryption(key) + ? libsodium.initChunkEncryption(key) : sharedWorker().then((w) => w.initChunkEncryption(key)); /** @@ -321,7 +322,7 @@ export const encryptStreamChunk = ( isFinalChunk: boolean, ): Promise => inWorker() - ? ei._encryptStreamChunk(data, state, isFinalChunk) + ? libsodium.encryptStreamChunk(data, state, isFinalChunk) : sharedWorker().then((w) => w.encryptStreamChunk(data, state, isFinalChunk), ); @@ -335,7 +336,7 @@ export const decryptBox = ( key: BytesOrB64, ): Promise => inWorker() - ? ei._decryptBox(box, key) + ? libsodium.decryptBox(box, key) : sharedWorker().then((w) => w.decryptBox(box, key)); /** @@ -347,7 +348,7 @@ export const decryptBoxBytes = ( key: BytesOrB64, ): Promise => inWorker() - ? ei._decryptBoxBytes(box, key) + ? libsodium.decryptBoxBytes(box, key) : sharedWorker().then((w) => w.decryptBoxBytes(box, key)); /** @@ -359,7 +360,7 @@ export const decryptBlob = ( key: BytesOrB64, ): Promise => inWorker() - ? ei._decryptBlob(blob, key) + ? libsodium.decryptBlob(blob, key) : sharedWorker().then((w) => w.decryptBlob(blob, key)); /** @@ -371,7 +372,7 @@ export const decryptBlobBytes = ( key: BytesOrB64, ): Promise => inWorker() - ? ei._decryptBlobBytes(blob, key) + ? libsodium.decryptBlobBytes(blob, key) : sharedWorker().then((w) => w.decryptBlobBytes(blob, key)); /** @@ -382,7 +383,7 @@ export const decryptStreamBytes = ( key: BytesOrB64, ): Promise => inWorker() - ? ei._decryptStreamBytes(file, key) + ? libsodium.decryptStreamBytes(file, key) : sharedWorker().then((w) => w.decryptStreamBytes(file, key)); /** @@ -394,7 +395,7 @@ export const initChunkDecryption = ( key: BytesOrB64, ): Promise => inWorker() - ? ei._initChunkDecryption(header, key) + ? libsodium.initChunkDecryption(header, key) : sharedWorker().then((w) => w.initChunkDecryption(header, key)); /** @@ -407,7 +408,7 @@ export const decryptStreamChunk = ( state: SodiumStateAddress, ): Promise => inWorker() - ? ei._decryptStreamChunk(data, state) + ? libsodium.decryptStreamChunk(data, state) : sharedWorker().then((w) => w.decryptStreamChunk(data, state)); /** @@ -421,7 +422,7 @@ export const decryptMetadataJSON = ( key: BytesOrB64, ): Promise => inWorker() - ? ei._decryptMetadataJSON(blob, key) + ? libsodium.decryptMetadataJSON(blob, key) : sharedWorker().then((w) => w.decryptMetadataJSON(blob, key)); /** @@ -429,7 +430,7 @@ export const decryptMetadataJSON = ( */ export const generateKeyPair = (): Promise => inWorker() - ? ei._generateKeyPair() + ? libsodium.generateKeyPair() : sharedWorker().then((w) => w.generateKeyPair()); /** @@ -437,7 +438,7 @@ export const generateKeyPair = (): Promise => */ export const boxSeal = (data: string, publicKey: string): Promise => inWorker() - ? ei._boxSeal(data, publicKey) + ? libsodium.boxSeal(data, publicKey) : sharedWorker().then((w) => w.boxSeal(data, publicKey)); /** @@ -448,7 +449,7 @@ export const boxSealOpen = ( keyPair: KeyPair, ): Promise => inWorker() - ? ei._boxSealOpen(encryptedData, keyPair) + ? libsodium.boxSealOpen(encryptedData, keyPair) : sharedWorker().then((w) => w.boxSealOpen(encryptedData, keyPair)); /** @@ -460,7 +461,7 @@ export const boxSealOpenBytes = ( keyPair: KeyPair, ): Promise => inWorker() - ? ei._boxSealOpenBytes(encryptedData, keyPair) + ? libsodium.boxSealOpenBytes(encryptedData, keyPair) : sharedWorker().then((w) => w.boxSealOpenBytes(encryptedData, keyPair), ); @@ -473,7 +474,7 @@ export const boxSealOpenBytes = ( */ export const generateDeriveKeySalt = (): Promise => inWorker() - ? ei._generateDeriveKeySalt() + ? libsodium.generateDeriveKeySalt() : sharedWorker().then((w) => w.generateDeriveKeySalt()); /** @@ -486,7 +487,7 @@ export const deriveKey = ( memLimit: number, ): Promise => inWorker() - ? ei._deriveKey(passphrase, salt, opsLimit, memLimit) + ? libsodium.deriveKey(passphrase, salt, opsLimit, memLimit) : sharedWorker().then((w) => w.deriveKey(passphrase, salt, opsLimit, memLimit), ); @@ -496,7 +497,7 @@ export const deriveKey = ( */ export const deriveSensitiveKey = (passphrase: string): Promise => inWorker() - ? ei._deriveSensitiveKey(passphrase) + ? libsodium.deriveSensitiveKey(passphrase) : sharedWorker().then((w) => w.deriveSensitiveKey(passphrase)); /** @@ -506,7 +507,7 @@ export const deriveInteractiveKey = ( passphrase: string, ): Promise => inWorker() - ? ei._deriveInteractiveKey(passphrase) + ? libsodium.deriveInteractiveKey(passphrase) : sharedWorker().then((w) => w.deriveInteractiveKey(passphrase)); /** @@ -521,7 +522,7 @@ export const deriveSubKeyBytes = async ( context: string, ): Promise => inWorker() - ? ei._deriveSubKeyBytes(key, subKeyLength, subKeyID, context) + ? libsodium.deriveSubKeyBytes(key, subKeyLength, subKeyID, context) : sharedWorker().then((w) => w.deriveSubKeyBytes(key, subKeyLength, subKeyID, context), ); diff --git a/web/packages/base/crypto/worker.ts b/web/packages/base/crypto/worker.ts index dcd6dd88d4..bc25a7c0ad 100644 --- a/web/packages/base/crypto/worker.ts +++ b/web/packages/base/crypto/worker.ts @@ -1,53 +1,51 @@ import { expose } from "comlink"; import { logUnhandledErrorsAndRejectionsInWorker } from "ente-base/log-web"; -import * as ei from "./ente-impl"; +import * as libsodium from "./libsodium"; /** - * A web worker that exposes some of the functions defined in either the Ente - * specific layer (ente-base/crypto) or the libsodium layer - * (ente-base/crypto/libsodium.ts). + * A web worker that exposes the functions defined by libsodium.ts. * * See: [Note: Crypto code hierarchy]. * * Note: Keep these methods logic free. They are meant to be trivial proxies. */ export class CryptoWorker { - toB64 = ei._toB64; - fromB64 = ei._fromB64; - toB64URLSafe = ei._toB64URLSafe; - toB64URLSafeNoPadding = ei._toB64URLSafeNoPadding; - fromB64URLSafeNoPadding = ei._fromB64URLSafeNoPadding; - toHex = ei._toHex; - fromHex = ei._fromHex; - generateKey = ei._generateKey; - generateBlobOrStreamKey = ei._generateBlobOrStreamKey; - encryptBox = ei._encryptBox; - encryptBlob = ei._encryptBlob; - encryptBlobBytes = ei._encryptBlobBytes; - encryptMetadataJSON = ei._encryptMetadataJSON; - encryptStreamBytes = ei._encryptStreamBytes; - initChunkEncryption = ei._initChunkEncryption; - encryptStreamChunk = ei._encryptStreamChunk; - decryptBox = ei._decryptBox; - decryptBoxBytes = ei._decryptBoxBytes; - decryptBlob = ei._decryptBlob; - decryptBlobBytes = ei._decryptBlobBytes; - decryptMetadataJSON = ei._decryptMetadataJSON; - decryptStreamBytes = ei._decryptStreamBytes; - initChunkDecryption = ei._initChunkDecryption; - decryptStreamChunk = ei._decryptStreamChunk; - chunkHashInit = ei._chunkHashInit; - chunkHashUpdate = ei._chunkHashUpdate; - chunkHashFinal = ei._chunkHashFinal; - generateKeyPair = ei._generateKeyPair; - boxSeal = ei._boxSeal; - boxSealOpen = ei._boxSealOpen; - boxSealOpenBytes = ei._boxSealOpenBytes; - generateDeriveKeySalt = ei._generateDeriveKeySalt; - deriveKey = ei._deriveKey; - deriveSensitiveKey = ei._deriveSensitiveKey; - deriveInteractiveKey = ei._deriveInteractiveKey; - deriveSubKeyBytes = ei._deriveSubKeyBytes; + toB64 = libsodium.toB64; + fromB64 = libsodium.fromB64; + toB64URLSafe = libsodium.toB64URLSafe; + toB64URLSafeNoPadding = libsodium.toB64URLSafeNoPadding; + fromB64URLSafeNoPadding = libsodium.fromB64URLSafeNoPadding; + toHex = libsodium.toHex; + fromHex = libsodium.fromHex; + generateKey = libsodium.generateKey; + generateBlobOrStreamKey = libsodium.generateBlobOrStreamKey; + encryptBox = libsodium.encryptBox; + encryptBlob = libsodium.encryptBlob; + encryptBlobBytes = libsodium.encryptBlobBytes; + encryptMetadataJSON = libsodium.encryptMetadataJSON; + encryptStreamBytes = libsodium.encryptStreamBytes; + initChunkEncryption = libsodium.initChunkEncryption; + encryptStreamChunk = libsodium.encryptStreamChunk; + decryptBox = libsodium.decryptBox; + decryptBoxBytes = libsodium.decryptBoxBytes; + decryptBlob = libsodium.decryptBlob; + decryptBlobBytes = libsodium.decryptBlobBytes; + decryptMetadataJSON = libsodium.decryptMetadataJSON; + decryptStreamBytes = libsodium.decryptStreamBytes; + initChunkDecryption = libsodium.initChunkDecryption; + decryptStreamChunk = libsodium.decryptStreamChunk; + chunkHashInit = libsodium.chunkHashInit; + chunkHashUpdate = libsodium.chunkHashUpdate; + chunkHashFinal = libsodium.chunkHashFinal; + generateKeyPair = libsodium.generateKeyPair; + boxSeal = libsodium.boxSeal; + boxSealOpen = libsodium.boxSealOpen; + boxSealOpenBytes = libsodium.boxSealOpenBytes; + generateDeriveKeySalt = libsodium.generateDeriveKeySalt; + deriveKey = libsodium.deriveKey; + deriveSensitiveKey = libsodium.deriveSensitiveKey; + deriveInteractiveKey = libsodium.deriveInteractiveKey; + deriveSubKeyBytes = libsodium.deriveSubKeyBytes; } expose(CryptoWorker); From f9d428e2c1645df05ce06ac9a285c8d9cb6fcd6a Mon Sep 17 00:00:00 2001 From: Sam Maloney <56830868+sam-maloney@users.noreply.github.com> Date: Fri, 6 Jun 2025 17:23:23 +0200 Subject: [PATCH 311/316] add fzj.svg icon --- auth/assets/custom-icons/icons/fzj.svg | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 auth/assets/custom-icons/icons/fzj.svg diff --git a/auth/assets/custom-icons/icons/fzj.svg b/auth/assets/custom-icons/icons/fzj.svg new file mode 100644 index 0000000000..c2fb55c7c7 --- /dev/null +++ b/auth/assets/custom-icons/icons/fzj.svg @@ -0,0 +1,7 @@ + + + + + + + From d0d35937e87c7ac1c613edbf060331fe3cc8e8bf Mon Sep 17 00:00:00 2001 From: Sam Maloney <56830868+sam-maloney@users.noreply.github.com> Date: Fri, 6 Jun 2025 17:29:13 +0200 Subject: [PATCH 312/316] add FZJ metadata to custom-icons.json --- auth/assets/custom-icons/_data/custom-icons.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/auth/assets/custom-icons/_data/custom-icons.json b/auth/assets/custom-icons/_data/custom-icons.json index f3dac13c45..e61f302c33 100644 --- a/auth/assets/custom-icons/_data/custom-icons.json +++ b/auth/assets/custom-icons/_data/custom-icons.json @@ -475,6 +475,16 @@ "title": "FreeTaxUSA", "slug": "freetaxusa" }, + { + "title": "FZJ", + "slug": "fzj", + "hex": "023d6b", + "altNames": [ + "Forschungszentrum Jülich", + "FZJ IdP", + "iffLogin" + ] + }, { "title": "G2A" }, @@ -1428,4 +1438,4 @@ "slug": "cronometer" } ] -} \ No newline at end of file +} From d2ee45653c9909be872ac9c59bf0465190a66f79 Mon Sep 17 00:00:00 2001 From: Denys Vitali Date: Sat, 7 Jun 2025 15:27:14 +0200 Subject: [PATCH 313/316] fix(android): allow cleartext traffic for domains other ente Fixes #6186 --- mobile/android/app/src/main/res/xml/network_security_config.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/android/app/src/main/res/xml/network_security_config.xml b/mobile/android/app/src/main/res/xml/network_security_config.xml index 5d942a942e..a7a11ec732 100644 --- a/mobile/android/app/src/main/res/xml/network_security_config.xml +++ b/mobile/android/app/src/main/res/xml/network_security_config.xml @@ -1,5 +1,5 @@ - + From 87c1877736587dedb4cce86d9ea409c3e6c3381d Mon Sep 17 00:00:00 2001 From: vishnukvmd Date: Sun, 8 Jun 2025 23:33:30 +0530 Subject: [PATCH 314/316] Fix expiry time for free users --- server/migrations/101_fix_free_storage_expiry.down.sql | 1 + server/migrations/101_fix_free_storage_expiry.up.sql | 1 + 2 files changed, 2 insertions(+) create mode 100644 server/migrations/101_fix_free_storage_expiry.down.sql create mode 100644 server/migrations/101_fix_free_storage_expiry.up.sql diff --git a/server/migrations/101_fix_free_storage_expiry.down.sql b/server/migrations/101_fix_free_storage_expiry.down.sql new file mode 100644 index 0000000000..1be29a9820 --- /dev/null +++ b/server/migrations/101_fix_free_storage_expiry.down.sql @@ -0,0 +1 @@ +UPDATE subscriptions SET expiry_time = 1749355117000000 where storage = 10737418240 and product_id = 'free'; diff --git a/server/migrations/101_fix_free_storage_expiry.up.sql b/server/migrations/101_fix_free_storage_expiry.up.sql new file mode 100644 index 0000000000..878f6c5945 --- /dev/null +++ b/server/migrations/101_fix_free_storage_expiry.up.sql @@ -0,0 +1 @@ +UPDATE subscriptions SET expiry_time = 4749355117000000 where storage = 10737418240 and product_id = 'free'; From e5d5ea9d3ee555169ad23e87171a62972f9c5454 Mon Sep 17 00:00:00 2001 From: Crowdin Bot Date: Mon, 9 Jun 2025 00:42:03 +0000 Subject: [PATCH 315/316] New Crowdin translations by GitHub Action --- .../base/locales/ar-SA/translation.json | 2 +- .../base/locales/fr-FR/translation.json | 4 +-- .../base/locales/lt-LT/translation.json | 16 ++++----- .../base/locales/nl-NL/translation.json | 12 +++---- .../base/locales/pt-BR/translation.json | 2 +- .../base/locales/zh-HK/translation.json | 34 +++++++++---------- 6 files changed, 35 insertions(+), 35 deletions(-) diff --git a/web/packages/base/locales/ar-SA/translation.json b/web/packages/base/locales/ar-SA/translation.json index b0ddd40cf1..4a1124bdf4 100644 --- a/web/packages/base/locales/ar-SA/translation.json +++ b/web/packages/base/locales/ar-SA/translation.json @@ -626,7 +626,7 @@ "faster_upload_description": "توجيه التحميلات عبر خوادم قريبة", "open_ente_on_startup": "فتح Ente عند بدء التشغيل", "cast_album_to_tv": "تشغيل الألبوم على التلفزيون", - "cast_to_tv": "", + "cast_to_tv": "تشغيل على التلفاز", "enter_cast_pin_code": "أدخل الرمز الذي تراه على التلفزيون أدناه لإقران هذا الجهاز.", "code": "الرمز", "pair_device_to_tv": "إقران الأجهزة", diff --git a/web/packages/base/locales/fr-FR/translation.json b/web/packages/base/locales/fr-FR/translation.json index 51c69fa55c..dd4572465b 100644 --- a/web/packages/base/locales/fr-FR/translation.json +++ b/web/packages/base/locales/fr-FR/translation.json @@ -626,7 +626,7 @@ "faster_upload_description": "Router les chargements vers les serveurs à proximité", "open_ente_on_startup": "Ouvrir Ente au démarrage", "cast_album_to_tv": "Jouer l'album sur la TV", - "cast_to_tv": "", + "cast_to_tv": "Afficher sur la TV", "enter_cast_pin_code": "Entrez le code que vous voyez sur la TV ci-dessous pour appairer cet appareil.", "code": "Code", "pair_device_to_tv": "Associer les appareils", @@ -683,5 +683,5 @@ "share_favorites": "Partager les favoris", "person_favorites": "Favoris de {{name}}", "shared_favorites": "Favoris partagés", - "added_by_name": "" + "added_by_name": "Ajouté par {{name}}" } diff --git a/web/packages/base/locales/lt-LT/translation.json b/web/packages/base/locales/lt-LT/translation.json index 212ccb36e4..5749cd5fde 100644 --- a/web/packages/base/locales/lt-LT/translation.json +++ b/web/packages/base/locales/lt-LT/translation.json @@ -40,7 +40,7 @@ "referral_source_hint": "Kaip išgirdote apie „Ente“? (nebūtina)", "referral_source_info": "Mes nesekame programų diegimų. Mums padėtų, jei pasakytumėte, kur mus radote.", "password_mismatch_error": "Slaptažodžiai nesutampa.", - "show_or_hide_password": "", + "show_or_hide_password": "Rodyti arba slėpti slaptažodį", "welcome_to_ente_title": "Sveiki atvykę į „
      “", "welcome_to_ente_subtitle": "Visapusiškai užšifruota nuotraukų saugykla ir bendrinimas", "new_album": "Naujas albumas", @@ -626,7 +626,7 @@ "faster_upload_description": "Nukreipkite įkėlimus per netoliese esančius serverius.", "open_ente_on_startup": "Atverti „Ente“ paleidimo metu", "cast_album_to_tv": "Paleisti albumą televizoriuje", - "cast_to_tv": "", + "cast_to_tv": "Paleisti televizoriuje", "enter_cast_pin_code": "Įveskite žemiau esančiame televizoriuje matomą kodą, kad susietumėte šį įrenginį.", "code": "Kodas", "pair_device_to_tv": "Susieti įrenginius", @@ -678,10 +678,10 @@ "system": "Sistemos", "light": "Šviesi", "dark": "Tamsi", - "streamable_videos": "", - "processing_videos_status": "", - "share_favorites": "", - "person_favorites": "", - "shared_favorites": "", - "added_by_name": "" + "streamable_videos": "Srautiniai vaizdo įrašai", + "processing_videos_status": "Apdorojami vaizdo įrašai...", + "share_favorites": "Bendrinti mėgstamus", + "person_favorites": "{{name}} mėgstami", + "shared_favorites": "Bendrinami mėgstami", + "added_by_name": "Įtraukė {{name}}" } diff --git a/web/packages/base/locales/nl-NL/translation.json b/web/packages/base/locales/nl-NL/translation.json index 17356a9c97..1fdd7e2227 100644 --- a/web/packages/base/locales/nl-NL/translation.json +++ b/web/packages/base/locales/nl-NL/translation.json @@ -40,7 +40,7 @@ "referral_source_hint": "Hoe hoorde je over Ente? (optioneel)", "referral_source_info": "Wij gebruiken geen tracking. Het zou helpen als je ons vertelt waar je ons gevonden hebt!", "password_mismatch_error": "Wachtwoorden komen niet overeen", - "show_or_hide_password": "", + "show_or_hide_password": "Toon of verberg wachtwoord", "welcome_to_ente_title": "Welkom bij ", "welcome_to_ente_subtitle": "End-to-end versleutelde foto-opslag en uitwisseling", "new_album": "Nieuw album", @@ -626,7 +626,7 @@ "faster_upload_description": "Uploaden door nabije servers", "open_ente_on_startup": "Open Ente tijdens opstarten", "cast_album_to_tv": "Album afspelen op TV", - "cast_to_tv": "", + "cast_to_tv": "Afspelen op TV", "enter_cast_pin_code": "Voer de code in die u op de TV ziet om dit apparaat te koppelen.", "code": "Code", "pair_device_to_tv": "Koppel apparaten", @@ -680,8 +680,8 @@ "dark": "Donker", "streamable_videos": "Video's met stream", "processing_videos_status": "Video's verwerken...", - "share_favorites": "", - "person_favorites": "", - "shared_favorites": "", - "added_by_name": "" + "share_favorites": "Favorieten delen", + "person_favorites": "Favorieten van {{name}}", + "shared_favorites": "Gedeelde favorieten", + "added_by_name": "Toegevoegd door {{name}}" } diff --git a/web/packages/base/locales/pt-BR/translation.json b/web/packages/base/locales/pt-BR/translation.json index 1ef0830b71..dd3fcd5e8a 100644 --- a/web/packages/base/locales/pt-BR/translation.json +++ b/web/packages/base/locales/pt-BR/translation.json @@ -626,7 +626,7 @@ "faster_upload_description": "Rotas enviam em servidores próximos", "open_ente_on_startup": "Abrir Ente no Início", "cast_album_to_tv": "Reproduzir álbum na TV", - "cast_to_tv": "", + "cast_to_tv": "Reproduzir na TV", "enter_cast_pin_code": "Digite o código que você vê na TV abaixo para parear este dispositivo.", "code": "Código", "pair_device_to_tv": "Parear dispositivos", diff --git a/web/packages/base/locales/zh-HK/translation.json b/web/packages/base/locales/zh-HK/translation.json index 25d9800737..80cf6dcc47 100644 --- a/web/packages/base/locales/zh-HK/translation.json +++ b/web/packages/base/locales/zh-HK/translation.json @@ -10,7 +10,7 @@ "new_to_ente": "", "existing_user": "現有用戶", "enter_email": "輸入電郵地址", - "invalid_email_error": "輸入正確的電郵地址", + "invalid_email_error": "輸入有效的電郵地址", "required": "必填", "email_not_registered": "電郵未註冊", "email_already_registered": "電郵已被註冊", @@ -40,7 +40,7 @@ "referral_source_hint": "", "referral_source_info": "", "password_mismatch_error": "", - "show_or_hide_password": "", + "show_or_hide_password": "顯示或隱藏密碼", "welcome_to_ente_title": "歡迎來到 ", "welcome_to_ente_subtitle": "", "new_album": "新相簿", @@ -58,12 +58,12 @@ "add_photos_count": "新增 {count, number} 個項目", "select_photos": "選擇照片", "file_upload": "上傳檔案", - "preparing": "", - "processed_counts": "", + "preparing": "準備中", + "processed_counts": "{{count, number}}/{{total, number}}", "upload_reading_metadata_files": "", "upload_cancelling": "取消剩餘上傳項目", - "upload_done": "", - "upload_skipped": "", + "upload_done": "{{count, number}} 個已上載", + "upload_skipped": "{{count, number}} 個已略過", "initial_load_delay_warning": "首次載入需時", "no_account": "未有帳戶", "existing_account": "已有帳戶", @@ -96,15 +96,15 @@ "exit_fullscreen": "退出全螢幕", "go_fullscreen": "進入全螢幕", "zoom": "縮放", - "play": "", - "pause": "", + "play": "播放", + "pause": "暫停", "previous": "", "next": "", "video_seek": "", - "quality": "", - "auto": "", - "original": "", - "speed": "", + "quality": "品質", + "auto": "自動", + "original": "原始", + "speed": "速度", "title_photos": "", "title_auth": "", "title_accounts": "", @@ -120,7 +120,7 @@ "selected_and_yours_count": "", "delete": "刪除", "favorite": "保存至最愛", - "convert": "", + "convert": "轉換", "multi_folder_upload": "", "upload_to_choice": "", "upload_to_single_album": "", @@ -170,8 +170,8 @@ "subscription": "訂閱", "manage_payment_method": "", "manage_family": "", - "family_plan": "", - "leave_family_plan": "", + "family_plan": "家庭計劃", + "leave_family_plan": "離開家庭計劃", "leave": "離開", "leave_family_plan_confirm": "", "choose_plan": "", @@ -237,8 +237,8 @@ "album": "相簿", "date": "日期", "description": "", - "file_type": "", - "magic": "", + "file_type": "檔案類型", + "magic": "魔術", "photos_count_zero": "", "photos_count_one": "", "photos_count": "", From 95271a45b6f9c29123eba05566c7e70afd9856fa Mon Sep 17 00:00:00 2001 From: Crowdin Bot Date: Mon, 9 Jun 2025 01:18:02 +0000 Subject: [PATCH 316/316] New Crowdin translations by GitHub Action --- auth/lib/l10n/arb/app_be.arb | 131 ++++++++++++++++++++++++++++++-- auth/lib/l10n/arb/app_sv.arb | 18 +++++ auth/lib/l10n/arb/app_zh_TW.arb | 1 + 3 files changed, 142 insertions(+), 8 deletions(-) diff --git a/auth/lib/l10n/arb/app_be.arb b/auth/lib/l10n/arb/app_be.arb index 1f0cf8b089..97b864e5f1 100644 --- a/auth/lib/l10n/arb/app_be.arb +++ b/auth/lib/l10n/arb/app_be.arb @@ -8,7 +8,7 @@ }, "onBoardingBody": "Бяспечна зрабіць рэзервовую копію кодаў 2ФА", "onBoardingGetStarted": "Пачаць", - "setupFirstAccount": "Наладзіць ваш першы ўліковы запіс", + "setupFirstAccount": "Наладзіць свой першы ўліковы запіс", "importScanQrCode": "Сканіраваць код QR-код", "qrCode": "QR-код", "importEnterSetupKey": "Увесці ключ наладжвання", @@ -45,19 +45,38 @@ "timeBasedKeyType": "Заснаваныя на часе (TOTP)", "counterBasedKeyType": "Заснаваныя на лічыльніку (HOTP)", "saveAction": "Захаваць", - "nextTotpTitle": "наступны", + "nextTotpTitle": "далей", "deleteCodeTitle": "Выдаліць код?", "deleteCodeMessage": "Вы сапраўды хочаце выдаліць гэты код? Гэта дзеянне з'яўляецца незваротным.", "trashCode": "Выдаліць код?", "trashCodeMessage": "Вы сапраўды хочаце выдаліць код для {account}?", "trash": "Сметніца", - "viewLogsAction": "Паглядзець журнал", - "preparingLogsTitle": "Падрыхтоўка журнала...", + "viewLogsAction": "Паглядзець журналы", + "preparingLogsTitle": "Падрыхтоўка журналаў...", "emailLogsTitle": "Адправіць журнал па электроннай пошце", - "exportLogsAction": "Экспартаваць журнал", - "reportABug": "Паведаміць пра памылку", - "reportBug": "Паведаміць пра памылку", + "emailLogsMessage": "Адпраўце журналы на {email}", + "@emailLogsMessage": { + "placeholders": { + "email": { + "type": "String" + } + } + }, + "copyEmailAction": "Скапіяваць электронную пошту", + "exportLogsAction": "Экспартаваць журналы", + "reportABug": "Паведаміць аб памылцы", + "crashAndErrorReporting": "Справаздачы аб збоях і памылках", + "reportBug": "Паведаміць аб памылцы", + "emailUsMessage": "Адпраўце нам ліст на {email}", + "@emailUsMessage": { + "placeholders": { + "email": { + "type": "String" + } + } + }, "contactSupport": "Звярнуцца ў службу падтрымкі", + "rateUsOnStore": "Ацаніць нас у {storeName}", "blog": "Блог", "verifyPassword": "Праверыць пароль", "pleaseWait": "Пачакайце...", @@ -66,32 +85,128 @@ "useRecoveryKey": "Выкарыстоўваць ключ аднаўлення", "incorrectPasswordTitle": "Няправільны пароль", "welcomeBack": "З вяртаннем!", + "changeEmail": "Змяніць адрас электроннай пошты", "changePassword": "Змяніць пароль", "data": "Даныя", "importCodes": "Імпартаваць коды", + "importTypePlainText": "Звычайны тэкст", + "importTypeEnteEncrypted": "Шыфраванне экспартавання з Ente", + "passwordForDecryptingExport": "Пароль для дэшыфроўкі экспартавання", "passwordEmptyError": "Пароль не можа быць пустым", "importFromApp": "Імпартаваць коды з {appName}", "exportCodes": "Экспартаваць коды", "importLabel": "Імпарт", "selectFile": "Выбраць файл", + "ok": "OK", + "cancel": "Скасаваць", "yes": "Так", "no": "Не", "email": "Электронная пошта", "support": "Падтрымка", + "general": "Агульныя", "settings": "Налады", + "copied": "Скапіявана", "pleaseTryAgain": "Калі ласка, паспрабуйце яшчэ раз", "delete": "Выдаліць", "enterYourPasswordHint": "Увядзіце ваш пароль", + "forgotPassword": "Забылі пароль", + "oops": "Вой", "faq": "Частыя пытанні", + "scan": "Сканіраваць", + "verify": "Праверыць", + "verifyPasskey": "Праверыць ключ доступу", + "loginWithTOTP": "Увайсці з TOTP", + "recoverAccount": "Аднавіць уліковы запіс", + "recover": "Аднавіць", + "invalidQRCode": "Памылковы QR-код", "deleteAccount": "Выдаліць уліковы запіс", "noDeleteAccountAction": "Не, выдаліць уліковы запіс", "sendEmail": "Адправіць ліст", "createNewAccount": "Стварыць новы ўліковы запіс", + "weakStrength": "Ненадзейны", + "strongStrength": "Надзейны", + "moderateStrength": "Умераная", "confirmPassword": "Пацвердзіць пароль", "close": "Закрыць", "oopsSomethingWentWrong": "Штосьці пайшло не так.", + "selectLanguage": "Выберыце мову", "language": "Мова", + "social": "Сацыяльныя сеткі", "security": "Бяспека", "searchHint": "Пошук...", - "search": "Пошук" + "search": "Пошук", + "addCode": "Дадаць код", + "scanAQrCode": "Сканіраваць QR-код", + "edit": "Рэдагаваць", + "share": "Абагуліць", + "restore": "Аднавіць", + "error": "Памылка", + "saveKey": "Захаваць ключ", + "save": "Захаваць", + "send": "Адправіць", + "back": "Назад", + "createAccount": "Стварыць уліковы запіс", + "password": "Пароль", + "privacyPolicyTitle": "Палітыка прыватнасці", + "termsOfServicesTitle": "Умовы", + "changePasswordTitle": "Змяніць пароль", + "resetPasswordTitle": "Скінуць пароль", + "encryptionKeys": "Ключы шыфравання", + "continueLabel": "Працягнуць", + "insecureDevice": "Небяспечная прылада", + "logInLabel": "Увайсці", + "logout": "Выйсці", + "exit": "Выхад", + "theme": "Тема", + "lightTheme": "Светлая", + "darkTheme": "Цёмная", + "systemTheme": "Сістэманая", + "confirm": "Пацвердзіць", + "emailYourLogs": "Адправіць журналы", + "about": "Аб праграме", + "privacy": "Прыватнасць", + "terms": "Умовы", + "downloadUpdate": "Спампаваць", + "update": "Абнавіць", + "warning": "Папярэджанне", + "importSuccessTitle": "Ура!", + "sorry": "Прабачце", + "pendingSyncs": "Папярэджанне", + "manualSort": "Карыстальніцкая", + "incorrectCode": "Няправільны код", + "enterPassword": "Увядзіце пароль", + "export": "Экспартаваць", + "singIn": "Увайсці", + "androidBiometricSuccess": "Паспяхова", + "@androidBiometricSuccess": { + "description": "Message to let the user know that authentication was successful. It is used on Android side. Maximum 60 characters." + }, + "androidCancelButton": "Скасаваць", + "@androidCancelButton": { + "description": "Message showed on a button that the user can click to leave the current dialog. It is used on Android side. Maximum 30 characters." + }, + "goToSettings": "Перайсці ў налады", + "@goToSettings": { + "description": "Message showed on a button that the user can click to go to settings pages from the current dialog. It is used on both Android and iOS side. Maximum 30 characters." + }, + "iOSOkButton": "OK", + "@iOSOkButton": { + "description": "Message showed on a button that the user can click to leave the current dialog. It is used on iOS side. Maximum 30 characters." + }, + "passkey": "Ключ доступу", + "pinText": "Замацаваць", + "unpinText": "Адмацаваць", + "pinned": "Замацавана", + "tags": "Тэгі", + "createNewTag": "Стварыць новы тэг", + "tag": "Тэг", + "create": "Стварыць", + "viewRawCodes": "Паглядзець неапрацаваныя коды", + "rawCodeData": "Неапрацаваныя даныя кода", + "appLock": "Блакіроўка праграмы", + "next": "Далей", + "tapToUnlock": "Націсніце для разблакіроўкі", + "type": "Тып", + "period": "Перыяд", + "digits": "Лічбы" } \ No newline at end of file diff --git a/auth/lib/l10n/arb/app_sv.arb b/auth/lib/l10n/arb/app_sv.arb index 58e6032e5c..4092736661 100644 --- a/auth/lib/l10n/arb/app_sv.arb +++ b/auth/lib/l10n/arb/app_sv.arb @@ -173,6 +173,7 @@ "invalidQRCode": "Ogiltig QR-kod", "noRecoveryKeyTitle": "Ingen återställningsnyckel?", "enterEmailHint": "Ange din e-postadress", + "enterNewEmailHint": "Ange din nya e-postadress", "invalidEmailTitle": "Ogiltig e-postadress", "invalidEmailMessage": "Ange en giltig e-postadress.", "deleteAccount": "Radera konto", @@ -368,16 +369,19 @@ "signInToBackup": "Logga in för att säkerhetskopiera dina koder", "singIn": "Logga in", "sigInBackupReminder": "Vänligen exportera dina koder för att säkerställa att du har en säkerhetskopia som du kan återställa från.", + "offlineModeWarning": "Du har valt att fortsätta utan säkerhetskopior. Vänligen ta manuella säkerhetskopior för att se till att dina koder är säkra.", "showLargeIcons": "Visa stora ikoner", "compactMode": "Kompakt läge", "shouldHideCode": "Dölj koder", "doubleTapToViewHiddenCode": "Du kan dubbeltrycka på en post för att visa koden", "focusOnSearchBar": "Fokusera på sök vid appstart", + "confirmUpdatingkey": "Är du säker på att du vill uppdatera den hemliga nyckeln?", "minimizeAppOnCopy": "Minimera appen vid kopiering", "editCodeAuthMessage": "Autentisera för att redigera kod", "deleteCodeAuthMessage": "Autentisera för att radera kod", "showQRAuthMessage": "Autentisera för att visa QR-kod", "confirmAccountDeleteTitle": "Bekräfta radering av kontot", + "confirmAccountDeleteMessage": "Detta konto är kopplat till andra Ente apps, om du använder någon.\n\nDina uppladdade data, över alla Ente appar, kommer att schemaläggas för radering och ditt konto kommer att raderas permanent.", "androidBiometricHint": "Verifiera identitet", "@androidBiometricHint": { "description": "Hint message advising the user how to authenticate with biometrics. It is used on Android side. Maximum 60 characters." @@ -414,6 +418,18 @@ "@goToSettings": { "description": "Message showed on a button that the user can click to go to settings pages from the current dialog. It is used on both Android and iOS side. Maximum 30 characters." }, + "androidGoToSettingsDescription": "Biometrisk autentisering är inte konfigurerad på din enhet. Gå till \"Inställningar > Säkerhet\" för att lägga till biometrisk autentisering.", + "@androidGoToSettingsDescription": { + "description": "Message advising the user to go to the settings and configure biometric on their device. It shows in a dialog on Android side." + }, + "iOSLockOut": "Biometrisk autentisering är inaktiverat. Lås och lås upp din skärm för att aktivera den.", + "@iOSLockOut": { + "description": "Message advising the user to re-enable biometrics on their device. It shows in a dialog on iOS side." + }, + "iOSGoToSettingsDescription": "Biometrisk autentisering är inte konfigurerad på din enhet. Aktivera antingen Touch ID eller Face ID på din telefon.", + "@iOSGoToSettingsDescription": { + "description": "Message advising the user to go to the settings and configure Biometrics for their device. It shows in a dialog on iOS side." + }, "iOSOkButton": "OK", "@iOSOkButton": { "description": "Message showed on a button that the user can click to leave the current dialog. It is used on iOS side. Maximum 30 characters." @@ -421,6 +437,7 @@ "noInternetConnection": "Ingen internetanslutning", "pleaseCheckYourInternetConnectionAndTryAgain": "Kontrollera din internetanslutning och försök igen.", "signOutFromOtherDevices": "Logga ut från andra enheter", + "signOutOtherBody": "Om du tror att någon kanske känner till ditt lösenord kan du tvinga alla andra enheter med ditt konto att logga ut.", "signOutOtherDevices": "Logga ut andra enheter", "doNotSignOut": "Logga inte ut", "hearUsWhereTitle": "Hur hörde du talas om Ente? (valfritt)", @@ -450,6 +467,7 @@ "create": "Skapa", "editTag": "Redigera tagg", "deleteTagTitle": "Radera tagg?", + "deleteTagMessage": "Vill du ta bort den här koden? Det går inte att ångra den här åtgärden.", "somethingWentWrongParsingCode": "Vi kunde inte tolka {x} koder.", "updateNotAvailable": "Uppdateringen är inte tillgänglig", "viewRawCodes": "Visa råa koder", diff --git a/auth/lib/l10n/arb/app_zh_TW.arb b/auth/lib/l10n/arb/app_zh_TW.arb index 57734db276..230c4d2d1f 100644 --- a/auth/lib/l10n/arb/app_zh_TW.arb +++ b/auth/lib/l10n/arb/app_zh_TW.arb @@ -173,6 +173,7 @@ "invalidQRCode": "QR 碼無效", "noRecoveryKeyTitle": "沒有復原密鑰嗎?", "enterEmailHint": "請輸入您的電子郵件地址", + "enterNewEmailHint": "輸入你的新電子郵件地址", "invalidEmailTitle": "無效的電子郵件地址", "invalidEmailMessage": "請輸入一個有效的電子郵件地址。", "deleteAccount": "刪除帳戶",

      &rcXXMXv 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%0DG2h;QdzwAO!&849j(yEJ36NTsx7{QWF#c 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 mVv;-)|G5{)9*lar2mc@HWA&GQBJuA40000c3J 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 P00000NkvXXu0mjfOJ{=_ literal 0 HcmV?d00001 diff --git a/mobile/android/app/src/main/res/drawable-xxhdpi/ic_home_widget_default.png b/mobile/android/app/src/main/res/drawable-xxhdpi/ic_home_widget_default.png deleted file mode 100644 index 224d849f3b9f75f610946ebc2d63a3ed33e57630..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 168217 zcmb?@^IK)@8*iQ_yC&OBwlQh4?WrbCc1^Z9*)}Inwr$(SuH9Mh`CjKgI6riSYqwi# zJ@<3pA3cRDDM%qB;3GglKp@LVOQ=9VK>7n80`PFaPpFZRV}Vbfe@SaQK|nws|Mvme zIK1A%%WB`QEsu)wIiwHJM(5MzratJ|tMW8E`%7{A zY37~K5${p5w7?;2tjD-1@m<=`|GzImp}GnRG4BFAJj=e|15HCuA>{x2M?h}1eW9q| zA*9nYGN>LN9=;lajtgR!hX6p%>_)<)Y^1f0y>2 zSgGIcnlLyhDI+Qh=_NO5=)7w&mF?njF<+*-Qm5Num(brYF_Ok=T6q7rx>|wH>==y> zHvIY7ozBO;#-OwCs{5nMY&3}uqgC(g%gqppen5Yza)Dkz@c-`ooW#=5`v#W3>+N=I z99>gQt#+uzZlj*xqPNa;h|=rvJbqqnNm?OCh)KW2F6(|UnqU^V880GU$NmZv@!+Rc zr=t$H%k>j|6_wq)4Yw_itF7*>_KuEq>*ZSGS%2tHves5sg}BTHNnO{yi02l*?+;7o zZi0-hMYJ)owq( zpK5AJ_x<6RvkrTMG6;x>oiRlGhfdeqqFcagn%ccz>QQ}ioO0dqy1=j2IYj)fjcc{W zfo`Ir{?7ej=(A2olQO{7DKfyxI6F5sHaDkqy6z1|XRG`F-$(K8R@Kp=mk=LM=CK=2 zv%Du72-nJU_z9J`_GruJN&oO|Dw9|IOPgBBoD8?^s)V)>ug?{*G%uH%O=~SoM_nFw zhmV@odLFN<3)WLhi;G>JCE&>nV7=|v%iA9gAI_ExyB!ZkBTE#rJZHl%<8e~4K$4P@ zvO`f{_OS8sM*}A6e~cA=PyPDiURhs1E0p;5zY3`P7&q{FPzQM!7#LL4WK5XL=;);H z&q$Fp2}`L>1ta287D&aK$Bw+%tu}@$^GIw_Qc}9Z!hZ6YSz0FopUjnz*xT5g8`o*= zGU1FNMGo9j4LJ-D4qfb3t}AL(JP;2#Xb{-o#O(28Of3F$SpN~T*Q{H$xF9bt5B+qp z_JsFdDU(S3BA3B6QKDL+U{KTfn7$N8CSK@vwV76ob&Pj*$Uom@K92pZCz~!Q6Ot=z3*l-a*|5>p5LAvK7?3MkIGa)&3BgG)avoJf$ zCjO?+pjmBGGh^8S4F%QV%$J4x4)O)RSm2cE=;&xg|E8t*-xgHI=M`~G85kINJW65G zrRH@$jvG76Oy+bp(9)7FCvto>$ngWWJ~i8}dHc5BM%o+L88DQ5+)W7!s~Q@9oOXIW zaWFA4-SIGJnl!A~E!#AkxAz^nTYTkluE&9bh@3EQSheAbF@bObGYTz7V|HzlXGTJr zncCW3Fx-QrVu|IyA=($r96uZhf2>&FNJSP&7#|!SvU!GysHOa``pTm+bAY=XYO-Eh z&4~>UH=bhBX_RiWoFN|x`ixnqW-~D{@vvI|Bk~ET`i_W*hz>s2^JVHPr=!QL)XU9I z0xPbJ5@6}DV)h;}T`0^SC#iXCOx)5Ma4m^5REzCDs6nUy4%<}F3>gTk#A-<^swyfH zXSz=+YPwFR8!Qxaj*l&`wzrL#3ub8bJKXD%C@X-nCjzz8$faFRfmnQDAE%OzS8ba8 zR<9n@hQN7}lbLqSKmlT4_fB4IbRLNfplwjh@=YEuRHW`#wQMFt5%Fv2=<8po>*}8Q zygfT?nGVG?W$?S%={BN_@T_fg`*p_-nEWwg)n((2S+i|e@!jQ_JU{;nD?22npfkKo zR3rxux+~EZoj*BxlI|k5^{N`?Ps}d8e_r#JfTAqcv^Sbhbh{B zj*N`##Kgq(X|~_GYmTQeUzt1-7pij0&uD+bIkSyn}ghL8X1_HOVN z0o7A;aP_u;|Ks-36dkCNVPaJ$EJ2{H^QBzaFW35K3eD~2@VUsg0asfC>>qb^b@dlB zGqc(Nx*sFEQ;w6j1o-#{);2a#Tp1HiJTc!f>b)xnuqn(hq9W>6Y;a`X25fTNCX-H_ zwvQ2`K)8fm*Mx%22uF-~@C*?A7k#ZgtAkFDBBYF;35%dLl)Hdlq4wI2fq~(BcbH-S z3O-==yE)nF?w$h1Lq}=P`RD<|e3E$$y1QNOM;56FZgKn;>1$+^>pYpsJB!VrAuW^m@&2?0%H(q?C&CuZ%F@x(%X}*Oo|;`< zQ{&fJR75pv!^Pa9Q?VG812HK^YwHK3 zfA&F^pnq?m{v|~v<2VGZp7TAin|1vf|NMub99Ngk=o%wvfK^^TE5Ust-S ztE;X10zwpp59&wZWlNaZJX)yEN!~H1ZB<+s?!FL3q zfkXBTZPGjl@@mTGBVu*w^BWWe-RG#Z*d@H=0B=R&Jct zr>JAz3RHva^)Ji{uM7r%!1!RUJ$dKsM{eirH@-H-%W&S2yI*S>Q*-h-43Sif)$j+# zuQ|zJqsfrf)zz+h1LQAk`*jvMKF#7l(^{31lze>!fxMXY{>Ev@tE5|VxLxYiL_{Fe zyxbjm$pg^D`f&WuEHI;G!MCa1O79ZsadH2kzWNmJT98djIX2JEs(@Ob@#%#Ukx~yC z{=@wsZZ0cnM+2xttoTVMCns$P>4mq$WF!>xL(jS^k90op^MhJ z7WBNgWGLzO95{XCwp)L`14_P~o16QoWyK~3XeXUq85duvIxk~1u21H@2P}!&RYFT% zF8=UcO}?n|_cLz33roEuPhD#}q_R1Tjxt3R|72_VCmRewW4%wjeOr~|aQ~*9bip)q z-gJk?%Z(s7`1mhFwJmSR3w+%Ck3>)?so?2I7N%xKJlQ0OO&(P{0^!ySd!Np#RE0yy zyQ-g|fY0>twe>B>sG0S*6F5U_n_U&{uiq8e$|~k^v1-i}cs!SQgoNutjEv)&MJi2^ z5fQiAbtbTMq250)(dY`P<P=Z3aHg}{nUm2QMS@QlxSux;Q8~jk?*F=NxAF%>|i=ri9bKvsT zT`W_j8Hpy~KIaBC{+yFer#qP~LL9rrMu2sgHsH43yqA@cx!LUUX?IgmNw_bg$+7x& zmXw+*?0L1>xoO_Oo4xn<$tJT3@86$h9!H1D0Fkq>jb?J;ufEZm2iJuHIU@}P6nH%1 z)4MGRR;wqJ#nU?@q)%!eIHz?-Z$gE(YXbGp5DD`#F}m zdd9!s2#5lftkIJS#s7H{L18pqE2{M{E2DJx8$DN{O60geLcO7ND8Ti}LT}=MsbyX5 zwu!n{Mk`_nF;o|$B|kQci;Gtkh2QU)F~Wl)`nr+f;oS>?$3|pgV!|gODXBtwJY8eh z?Mk0q?z2>_&+mM(`hYGh+`aYu@-lOyT%__+I%DbmAMTG8_;|Y`GH~Asegxjnx&3mZ zy(Mw%;37)Wv>jkPFJJZB<}Dsh7rFqp^8n2L8-q6IGF%s0%qEGP5{-%`zh((g_z}DL zxTOn`vUtvab->#Ndjsju;CjoNyw1(@XH)y>nB1vi%r zXN&#T*DPRw+;={07OXrA(I{ryNNIz`Es1InalZ=K+OdW@5ONP$HQ{JiE%tF(^{lie z+%;)2X5LxCa;r%FIx{h>UiPLcw|^%6M_8OYyJINB356(aK7}Q8p9cHcfK0-QC_i<5 z0*M{JmHO>|n|u^SZF}x*iuHaE9o|bAqvvk_nC+d(IsFm8&3m56M`I*cdQtRGejvRz z>bC?OQEPR0oeGIx`S|`w^e{AKq~F!Z-8+$b!r5Gr^l*_r>;tyDxga37U_@FaAwOXK z@m?12)|&*jKbW`-!YQ$`wOQA!njG)#g}sk|B}tH z2*Cgxemx#z?q070=uWH3E+M9R=X-W>@m^X} zb5$TDBvd$aLF&Cxgr~?5kef@IlaP?`xaAA71p)8#QmNe#@+e`{lbt@_KT_OC{ydih zHtP<_^ovm&P3jmIP)h*%Icoj;r^g0@+Ppk}SV;Uz*ZpC1jY4E3B(rjK1egYksgz6s zkAw^Fhg0hsSzzIqh}g`+G=cruIXgSsp_s|D^WBQ*iC|65(#r2;_CR>6+ij~RFV8q? z!Ac*}C}+aFeaMoCW>a5oCzzUc=B9<$Anzd!mU`CsOM7W|35_-k+1D&OYl#Px8QzIn zN2Xe>4C7{wK>J7R64vX*>DjQHYJ-21s$TI;f+Qs7%%acZwD))mpE{{QefD-Np3F!R zIaL1euR18|^(f_Xf&p{t@N)5aZso$BMbACLRA{1QY%oQ`Xi1b(N(oRsBeKIP$#FDe zdD2PZ@sxpV$|whXy!&TnaaD=p%|dwf5B~5vn7?cLm7KqTsAKen=wToYNF>l0_kTLR0 zwW$Xn>j=xuK5N!rzI>Sydf88m{R<0swNRniGBq}4-Qut(nPcDeG8k#rIae&7DD*I| zI$M(Cn~q($;d0?zcy!{4MMvp5X;SCz9RRFwxACqx0m_lAL z;F-d97K&wPYbQQ`J}Y-5ldiDd{hf51NQil6e}UJV6b%|m_;0iZOcLE)V@x25W7FBh zQr+FTL81LbU#Lfp@iMMy?jKW$qj>xLyXTf^YXz3ZoKVpQ0j%<5Pue9*v<}IbTo*@} z5?b`6auK6+LeZbVHzR0q#4sOGq%g&w$Y`11>l=-RRk7oWXqT1$6bJFCe-(jriAa!Q zLsiFs#o?WoaXiN0Jm#&zUDT*HH;#gZ6s79NpLxcISNzP$O_VB4+3odmkecJW6O8No zv7e|21{b9oy!NqA3EYkE#R`Kh3=OwFp5L$hKGt(S-i}gfA;!}=$F9y-8omT7CoqT@slO7--Xgtdi|&$OQD;mnah9&7*=? zq1%zMvAdNP`<$n2L9Y(q*AtqA_qO9l#T=oDuGm5Ew{~t}0497e5VZgb&kyd&bWZDK z3AvfD1{w-M9v`2f7@`E>w;j~;%srms5t{XGzpXO>)(HXV)k;%IX*yz&jDX!dYHA=7 zHwTbkknDfjz0|h0wl3Rnku*6p^H2V1gP>oG*u(BeN6hbYlX-sW(0KNBD2{O&yz0U* z^6+h#{yPw>SDf2tnZ-5FhxIeP3b_2mAM@uMVN+~EL%C0(P+|Q+Lij}4;{^?kKIUSaH|jK@nZ(i3XcHx^|WgmEBH9uFeL;U1-@GRJNB<1;cwuT-qR#jQ zySTGsd0jZx<9ut4&zaP7(fICg!gQl~H@ihGvnV4F|FU$*%Imjqa&lH>f&p;pr>m*?^!5&V^7_SP7cgP|eUImoW5|I+aBfyI zMDZMvAbFhd)6h!L!tdN^=ihFR3JF9znW%8PQ(j@7p*>JB)@^ z$waHcQy!F=NtmDD&1JuN?y}o2^`IPb$bnv_jnb}-{gq-$LL)M2dE4oXIag=|+niOC@5gpe-~u4zWV!G3!fpUIK#m(Kf}+sNU&R(X`xnNSXVV;j zk>yZG#kgNBclC{#v9;>8P)J7AZegA+)uaxavAL3j9d?ui0b`Kam?KhReaICMFV1PX zu6PJGAnsjew_2>1Vt7F_1yY!?%o~3l3b<|Ux&R>k2<+`U2e-!{Kwxib2NZO}ai&A9 ziiOwDLkCdG8?#}cPJ$V!+}Cp^4fd08pRCc!U!8j^-uMtkloUv({;J@GzG z_%hG%F##n}Z=U85*&glmq)=eyM9P*Miy6MN%nn-ltmu4TaEXX@>35p6&_^NP$~tB{Ghv!b~;qK8s~f&zU8d*bm3{9 z%#v7EwLhOes(J`YIZ_n_J%V-G+>)7f-pJzTBfeuN_*D&-eM|HNDpK9RX+rE+8`xg9 z1Nf1oo;0dJq3>||8fd-j$?&iLP$L_JP5ioBTVV-dA!D}wL}`fPGz`3M_dr|W^Unh? zo)|C%?1jM3dxHGV$J1vgB{?Wb(vODbqPU-(pHwdvq_IHzt7%v1l3kA8hS zqWAVxnAI85vQaJ{gR{KDN`4Of<~bs}6bG`fs?)mEW=v6?ke|o^jFRp*prwlgk~o-K zv`RuPfn9$8p(h`8^wq#)w9%T%jb znk$8^A@P0g@d5x<*V$r~^}#(L&fmnAQ{^<>97MLPAuWjhL`lBUi1WhTF>Hl`}J~rkO6?$D~5RKw*OYX2Y^XD3-C~Vy}kK> z3*Z%RD08hpnBT9a_4%*aE8zrFy~=j8iY}W?V>Fb%j7_jf2fP0M+e>?`uN|gRmIhMq zIyLCiRRl3}(KjmfTkAWUz;>U!YRmSxQjBS<(H4b}wdqwnB(~ov)gUbGu_O;omlvP7< z(2BX4*FypC0ob6J_hu7#&&|RS1Hg391Q@^W3?KKIozU8KuKzq=fu*Ta z#X=k4uPpF#i>*A>x?Hz>ZSx-LJlPIk!>`&-^I(qA`GpK;aya$R7nc`jNb84N`{FZV zGvQW1GF1gDjSDfHFBg*koSM6bJFfGeSpqN#ZQiTcrvq6EtP1fwZ4%gnR~DF>If`GM z2$10jFc`5@2rbq0M8)$ms$$vI0p#KXrG)AsaOHBGYJccm)hy!gG{rND{A1#(n)=cT zELirB(GyB6Vm9MS#HG84^N@6c{y4h^W!#7T@<)${^^`a|ao@K_OD-`F8&;>FmkJ*y zgzc^W0YCCt5+2r{5ZQSQnsqx-Yu)nisHD2mPDTkI`w+TZZ#Au`sMxczwyv{U zC~w6GF9fM73KsomPBvn}bb&70lNlkjs&GId+>g8UN?LB!6O9J>pFxyby86OZ5}Mw( zTaTe<-pafZkc_lpE`?kM4B%?d$btF`piHb!Pfw`(Z-Ll_`rAYeU39=QM9Pimv&d;Ae ze-$-)4%?Y`VVIa4Esj+8yzQ5t~D9J=3Ap{cT_$Li!snMx@A%Qe_4R~_NXQF1-?lX!~KYhl`d)c)(VeIHa>p^ ztL8LgyTHXfe;c(9LAN_X*=F3m_a;Qv<9Be_3n~8X3WBq5J0jnNH>Mw`5Y@9vSuFbt zinb>nR6^r%gF$#M7DYfp)U{!as8N1`8#o-Hcm!1;kCasWmn=(wY9Lys?4%*wj}WL) zB&w+`_8~3!O~5i+pBXWJBvRU0bj6?!}vyoLo9b8Eb4%!G<&3XYuIomgsO zV_2)83=Vka`D>{}oE>T+a(NwzgS!}Edc|N%u`UGVRv6fPr-QKZ6f#DsklJ%2i68W6 z$)ys<-q?@XnrEYxnPL-g#~nMGhRQi0N{4dQDMkTU->@q7f6uLIA3iF z7U$*d;QQpDov*<0K)Lh{szu(VYN1uz{+rAa-fg!>-96s6T zCE-8dLY)Y*>QTOSTcOE|W}4U2KnAb_Igjo;{E}wFf|Z~>K%zLfxoaw`s)&5=k7q6c zkG$ZJ+mIVS{8iUGOtQSP^1g_5AK=~v4%8SD6)t_5lHX0Ei8ER|4X_s;Ozgph;bab;Ak*;HdEeUNvnDj_YLZa;aDLqQl}I z|CYP$&*uv#*Z!P6oj8}y)&blE3bL+rhe9Bi|dW>EG>gN9MkUXpl!GL zV_qgS!NcbQ&?ld1TL;v8?bA;$R_m;1!nsG0XdJ()AoC(uew`LqSpw$SsMb z6pR0=M;OJzPAapKgrtLE>SBwI>7Wm#bCOO@EDKmHlO7X?^@%|U(c?t&pocRh_Oqib z$u5y}{~8-65KR;h3&Sa%Boj#Mcp0oCf&CLrz0f?2Zt{|K*#Hs&S*XEmTUSmi!4#sasvoEElu_i z$-aJ7-~(*36QIkGQwcV%*cAVa+5GnH+a`lX_4U`UbaqXMI6IRU{LJYS=2;6?Me@oT zfIlq{paP$;pxBMG0Grq?!T}+kA%j-TJ`n=m4RJQ^Y$#U;{A#PLMd2#g2_Cm2MlO=I zsH9Wp@$b4pf1f@TEUmG12;?KS$z25hrlP0SI3WW`e$q}r@gK2*DK1A#$`@lHQpHw? z*7Ba=qSX)IMxsizzz9{;6G}8Or_GyG673UljzL(JgB?2@8Ht=eDm5NnxJD7yL^jP1 zk?KOo`>zDjWcmt3eqBQ4Bf7X=qv(&JY3AeRirf6zjCp1g#LzR65G#Xxmvwf%XIdoB zlMdub#Bg|F>pvJlOJ$a_v12i5_z^ayW@PEhv){1UyA+&L$M;=TmEwXzggNFYpV76$P{%~K z!u0xs%_#=c{AtAz#O4`t;kAOY^-D-|kIX0~{KEdsVcbldswCmq4TV!^8r#`9)&28D zwO)71i`Ogqcc~fgg<;YyP2?BZAeT%fVoR4mD_XBp3N0fWmvEf zaMwwlEbFt6z&r8nRtQL9JdGsMbXI9p;6_V2Y_-1*sS2}kX1h;$o@*MZDdF=umwq=_ zGBli;H1xXQOx2ID?D8}>FIHoG^nF~hXoSsw0<0Kq%tc_b=v)L)!60n4wY71}WXlK$ z4LJ}@nBVb64$L0+?%d6zM1OC-ayVNIqFNWv*HP_o3i9AZU0GUmz`UhLFNQK!gEVZU z(#~VICEbiiwK1R9CHVC=>VS1Y+uv?&L1E%cIe*s(pGh-hJ=dN$cVB&6M~PS7uT(l0 z1+TCul3gkKkB_&&(X348@GVe<173E9EKM|eTa79})kCmLKt9e|g-p}3Kf!`FSDGe5 z3grj&50IlJ{2zfvZ5RYN1j!q;`&Rm6r<2k~3vh@4tk`X`Yf!oxJOx(i`AQeX-VwUK zgc5r{j`ex22%6?7MVH(e91+H7U50T{||Fnk*iS?hY{>8;`>uo;JEp}VI3l&Sh05+G&>ooYE*u0h}9*TyJ&ZRiF^O1U@l`;zZ0`N=^8Cau%6>-7a?Wpp=y5u&O9=-a|T9F2xH z$EhUV^YQ$o9f*@WaxQQJq~P*la(FmbF!RrBm_ftOxneFKNqPC`AS*O8;59!gKE=LA zewmm zXv(V-6`upBhBf4nLn^Jc!=zbL-QAL(-#y_=zonH}1t(njeNiFy-q}fAD%zDRtSdNxZB8hkN z$hdaI{_zW#F=1lS5ZL(T1#2IctjMPky#7=QSa{N3$)(xQl$Rs&QeT8wHM<(+{gD9e}xG>FGb zA?N}}bU4ZVJVQ&md`_ycg;a8`LOh2Mlm0I!9aweF97$x7h9P+3th?f})7%{}@A(nv zB-xSh8=iPrhN36kc%#2xl;9?VbigPfC~xp%Ld;?lA>ur~`vO*et#D3}x@(={d6qw^0u0c=8G2{*Fc4Y^LamC6Rfq^ z(%_e6-T7>_I$0Pdj?5dszdm$@hle)~&?TBj!dh6(7cRM8uCFM3VKV4QL$;*k_kLzM zyFv%y3q1PGR~vL%xh>y|&am?Ft!9%=i!eHZftZQ`kVe~#j*i}R77Yps_EgraX`lNz zNHsLDva#Xd;N+aB*J2!jXkN2v23_iP%muH=R#E6xcFegQ>IM(e^B}7@*_dAnh|Wb{ zqC+F?*^_)dinlRn1UpbUITLMcCdG14$5tr*w(rsW8P-+WWhQ z;2y6-G_(gBh6zs7lBHBHkPHegwT!h?Ef|tY7Kv8F#3&vL8u0+nM#V&_8Y8fN0WSqR zf>oRKn&g8IK+yg;PMD`>_B*Rh6@T4t1bp9aC}RkD&DPr8T5N}6Y^CMoC}Xjl4n~tr z8Ql@}dv;w!y(l=EuED={ykwN_U*N^_zt0F)V%>zW^%IPtSul!r{Qet<(O-8oif+#+ zRau8uCy8ki9UR6vJ=3p&@Lqs0&CEtnmq!}@j*L3`?F7^-g6 z38reDr#A0sr0dRd-k7D0rO!rqIKl(_FT#f?CDAmfpl@0W5e&K@*ehyP*Vdd&ZY+$S zlyFO%--K>3CJAgaFO&dWbqLJ3qxHYO6o=P4efpN?%^CP3B~r1MU5zz&fb-zvda?R# z&bbpK5u=Fm*8QX?l@dsynN>pgpkk*0EOLcAo8PTk{zKf$$^D$f?5gvLcWNEX^8KZW6e+yth=MvP~|%s=(Nau-nD|8bpl- zdG^z!I0D=H$B5Oi3jDp+L`W6g@JPu|twlvC1c(R@?3$^PYTXh$U3nByXxnPIHUXx4 z55D6+aE6g_ga&!0{(5C(fWKb<68pEFgSRBFo&)OkV7H{$2@cHv27Q*Ov z(Dn1bIn%*H?>@VrBw3+r7K?h9!F?{$N!d|#-HIi8z!RZ$GBRpK2^?)g+J6g8L0rxq zm`27AA^U-k#H7kE8c0@Tg+!-pY8j6&j-ZZbrDAI74=3)#ftOxAG#tfZdE_i*?t*}y zepPUZQw3G6!~_8-vOVB;VWXq!i{`8Dt$@bH#>4{2==7P{+1~YvQt0iemkEbqyA7+s zI7mZsu@(gAf`}RJN;Dtw@6+6kST}0Rm!`U^D^(P^@F*2Ut?Pq@T9SW`#{gSs8r~^mKJJ z#6Uws^Ic}H+jI!!)qNr<3ummrf{xxZMB}L#_fI4D*7g40 z0h(#EXe>H5T-2)3KWVXGbP5JB7OOyXim_-sZF963&nVgjV~H{x3R!17gVLdEF`|$^ zjg0U}W6H*sZ8&{%4`GJ*QNh-Sxm|VH3ou_l9APb{vIgq*q-vi+H{pN@`A%9uU-u1IO_!N#fP#VG=jbBG-(1~ z;x*qoOgbygWV^))y+*sr+Nb+Rj<8N^6Sdt3|H z46cTL@0=H#hYLV@=>*Util_#tF2gDB6eZ}CCwA8CyMOEf&xqOP`n>&mi&eRvu4{!O z#-F2iUQ`-XwFw09JddZznDLDk7HzWHGF+xMyWI>o*4O3qTdaY&^Uo%oj7)6y$?r-u z4^TN5k>E|+&!@A$sGQes8EKBdD+lK@hW)^=+n_jdAh? zMs-nMd_DB$m^F{a0RKg^gYO;r*#{$N8yjKR5*jPrCnsN&1=~iZsgL8?5r%3MEp0!o zMx37b3#S2kviQ6LpUb++pdzd;I8!7E<>qNsjw+)-Tu-oOafWA}&!a;pRGA-%{unWd z1*;TKx(72s@zo2v_ikjT0!=h#t5C!}4+{O8ti+$BFnYCmB;mF=gqDCkTrxgi$JZjb z;`urTH!d`1q<2_83z1-ycZNn+Bn+s3ak7qJI9EcAAN{qm6d~-#tobUT=;x(FrLxeH z?W8aTKxLW-&cGIoA>-+n4;^C=N#dM+k;FP-X%vax@vuUgQZaQ8!4TJAVD+{WUiVZA z1rEP#?;d=AzPbNGDC7}F_YP45urKYLLZP?*{Q;Y_4?n2=}HQj3^C}Qxa0ppqz z82@G45|`wzq8I-r72&AsuqIH%6>)7LHzq zr#7MjLCm|87mL=gHO@i_MhOctBE6O$zMaz_deHf!6_+Cpbga2kE9sS>LN+~~wmZ%|*cX;vj168yD`tbK>zVlsVj@HYbrGt3%*g=n=L6z&_Nn>w zmI5c5TpCOs>HN%LAPOhUMXyaq>oQ--^BsZ6BZ6=gE4{4XH=FvPBzYo^VSIG}qd4>z z8O}23R8G?yD00;8-kKYQ>^Ov8_N3(!p@z^i4?O3{7|jWqq~uMEo(O(x7I zP|dC!<;a&euwuyyIKcp$$@4;iLcAOcfVzOv+|zW~wZ$skH1BzN!MbZW;aQDb`5=qpsR^5uz z?PH8E51Enh??cD94Oo~%KG8L)8MP)rjh@PV)I!Ee5ud#37X<0= zt7hPxG6p26_-BpSn^Qh#p1TO_Jn^diccLglgyH~*XHB&N$FZo{*%KosFX-@i=74bW zhrq+r~NwTIv{C}sy#%c0gLL1*-w%#w@5{`2GvXvF`!$$`Un|Qm8 zo0^&)hZ?!*J9_}Zxk2+|Y;0@|P_(KNfh5VFLpZ=XP|vkrZ-DhwD0Derm0fc6EV*)^ zJLKawZ5`dwQ{#golE?^6<3(hEYioI!TMTV#sovcV7N_0N4VbzU?t7jZ5_xDQ6r_0+ zyZYmQTqhD@5Se@pl0`mvRl;K<&y!^*XZZ%(O^Kg8KDGE+_Op2s$_!6EmahOCLHs!B z5kbu?;a(hP(ne$fPN{oF5mpi(fkM>+e;MA_LTeMO6IP-?Ow#QT0MMr9JI7RErf5Cg?ZCEK4oZHm47eLjqN;nt{L z&hb9qGxX@zqfKi6-XlHqm}vC=6S{?ASs&WyGlTQ^3~JSU?He>1^a}@vp|B+n%UKw| zhs4w2_fIC}*;orzZ*_#vS@`wdVA9n2efXZQG(m6KZ`f2+miJC(@n6W2me6iH>TkBX z;6m@>?PU}XMLVXWnNUg~$D|?WmcL*euEq_+9i0Af%kEWEi z=1uEaf$z>Z?APVEgh|IcH{hU=;gh&9}_>X1d4ng zdn6yvijN&1p=Q~_A8!rs$N+~=0#51#a24fF>UqI*0eHd*85y~NCx&5%r`o`If3iZ( zf7U_y?C%_3RnwD#K%rAlIkHEwsgsk{fxT{}6Nx;J`w7ggTZ)OtiL9J9KXM*o!L*AQ zYKOonwsXz~K|K|{Wy(pO{*Rzr0ztJAGNqzmmT+^UayZBldKhX3^tf^n2&dQm^JJw$ z`aD_89)2$uxSGzA0&4M|W5PPf$P(xIX~bz(6vF|Ld1P^7Y&(wu6xEBcS1%}RtH^nH z26AvVWjdg7=SxQqo6xUX!7>Te48@X#8kUPzZXaXHavpzA2dN;xCjZQ2^WZz3ZV?Oh z#rC}45)tTvgl5RB?fES_K7!fQXKGo5E?yC~NhW3YFU*RV;xi{)6uH_NYk4uJ zX92vRr2V|HTr|p_RTN&!OxO*lq+BVhQLm&R^&)_7bV5Hb=nyCCMAgh2=>_BOjV<75 zR`))$aSkSzvJ@+YE59H_jjEftry!ZmHihLJ#ZD#S?rOXfW%9VdNyQQk0Y^)JZ}7Wq zgP1auwY7m0hYEl75__>v6NdG8+=$Y*NAPfR`ZOT0V4e%g(dN6r`HVw>2>V8+`$0fg%FdN+!4B*iG`b#$w>7 z>DPRhGov`4fPa?_Xw#x-g$`#oFS{yOhjs&bB$IoWS&Kv$QPS9yvmN9k%83o! zO?9jUjRQ0?RWD3J9-{I>XRd8eWp_vOz{!qVKuZ_y@O(J^ z_g~B@o7ei#^pZp6>2kwIDhh8$S5NOeF*EbL!KeqyKAl~Xzh3ZeoLz2N4ElbR?dZMN z5Bu=wXefrm&I5=M%mR6x695rh!2TCuuLg4VD^^Y5{glpzuM%!LLo({yo{6m!;|{Ga z%gXb|{H4S?*|*5-wq|s-JCI9J?J02Q-R@Y{V=AnVdn53E%#foV#>YYw@P1jZaNy?L zPp^!LqS=+f0{Wjmu#n#{)RE@hv84&}raRt{u+N&2bBBN^B9$sxD)VxL(roEIQhIh7 z24R=%uh*DjhQ(jW1z3ZOVOcE#H2_H6e2L`qrV`i68;!Xp4@e-(*BU_6E)>K1c^5v! zJVV-+M$&?24L}2((5cIjo1xUQc%@?Vn4F~zYb`F|*LSbO2fs+GDHO#RE5ZJFfJ6H6 zO_w5sEp&<>yt9AJfGiMd_~YL&J%yy&7uNFC-!luIA*?`^R=n!<^dhn^&`0D*S-#o?>cn+=Dks{3{jS`W1T=$sL^#nB~jBw>1awo4nE~_!oY-At#Fk z6IRx@xINq)Cj=`|9bbannbyFTC#IhQBkm2IV_N2hy;QQKsR&B z!8E66br!(9OU%yR6k=y@cn7eK50E_@ZVo7lb_E`Rtzyupdy?tm8Z5+F+Znl!dg|1% zmCRqO<~M~r^{f9c3jiElFZrB#Z(a-W3-Ax602`Qb^?99ck7mfe?#z}@pV!?xFQj5>|LSa%t5HGCa>7e%Qp62XSkS-d*Rq+xE0pNh zJ-SD|>6u1nI)-OHudm=4eWiz^E8&qC~*bCgbz>6_z#ADJUh8l*ymA6Z%knl3tr zNR?7w%>Fe6-CW5EU(yA8$&>|%bwFqHhM&`P03iBPf4z`}&HbSuVIfj3?u;UcAfsl{ zllc`$4<@e>C_-#mOtgYGQ7j%NOJyngj%5o(wi*YYtpusnK9_9RH?cdTHQg|52fj#jaco;u= zJOlu9{TElA6Ub@!gqhiTyVu!_b}*kVZ!sUd9ghYH@lp$K*@JXo-p zoX>>paO%61!sFNT6(iONx_d%|J0Bj~4C=#?VC=(7eSjb5_c$U?F;V3wogmziB zlg{UIwu@J5xdP;@QGavSqn=_K8kB=Yu`tc z8GIyxE(#<`siGsI5-_k8_D-^*yF$H-j_+l@(OoLg#;k!;+3?37fpcLi{GQ>${J*v# zA~OLIzXp)${|^8~LAt(u&Y!Cbx9^yf=KSWn?0f4X({z5!wWf92DpTFTJ?uQa7nz%K zvDEY>rmUHUu=nEd#;87ceROwpo8^a~&s0#ZF+#r109ld&ic|yZtfk$s0+ZwjAf*l| zc9N7#mmi!;-L_hWpma5YX|_(L0`g2bWSPMXbgp6(Giih}6>^E!cZ^LI=i`%VCxkXX zVNmnP)gUy_fv|in!V7eEkS1T8xx*T=ig>ywf;DFGV3|JC#$D27CuoKWZl=ODo!2Sw8A zpirnSm@qKBkbzbN!DLEgjKICd45eO>}n z-e&CCbrQ9|+;4R+)7wdN^ja+Z7!EUMWh(-4d^%%*gnbxV)d5>4m=4B)UpMfJ3hXUmvMhtxVWYC-EVRE_Vz zqhpa_}iM01RL>1}nh$z;vE?h!niI!#gEYoKS9eOM{{89}MrT1>0bV0wiX zQ_D4Yr%a8hr7BD*Qeskp5)<=O7?-QS*z`b5PSzr7Qg5W>t-((}pU3V!KVaLo9r*6M z@7OAUW(PUcYdrPH_5l@SjO2+L?g3%isTh{99wXxmFgzv?!(;L>JjV1;42>of2*JXH zp;1L`Vh9BcJAGv05m}5uv|0!+Vlq@J?2-zpwfaa@CKdgsV1?(fLSe>{32{O&pp^kn z8}T#}$yWJ7G&Qj0Ato#j(P8 zNGct#;~PdrX4;8L;+z`W?8Eb%gef;I7RzC?*$G zckbNwC8Z_pzyJPw+H2hV^y$-fc|5Txef#!(=wwyV=zQYDi4v2^B>ATrZ5v1SXvaq- zQtP;C?%&`h!OFv;>SBt>syH{`Ta}RLt z+IjqN?f^`C%CI2yBgD+@i|(U)qu0AZ=)FLJ9`l0{uviV%iZJMsBB9F+V|&;JrpV!! z9L%;oqy{YF?B%H%)^*D={bUuN^$VMx(;m1a-=y8K6l~58--)YAQ$x%4yH!Dzt$-$% z=IY3y&Xz-)Bj@MpFi9qRoWA zmf}OHL9GCNsTqx-011YC2G+zzPChgj(G2+xgcYzL5EDu$K`g<@uPPG43Naw62>m1T z5o=6GxaJ$^WM4ohTLPVY5##~W5oVl$cP4+0rhfs!uDRs$;t74>#et>Lx&EPwr}5_1%#xeB)ih`$tRz* z2Z3+C`Nlr-;_0WKX7tiO&8V}E+O4artEo65`RV*mzp+}ayM;HAX?dN5`}XR;JHO9% zT@pGG+p>GMJJ@}G2U0et;v>@%3|~1Ks`rd|ZEQFEbxarZnimAwCmJZ1>7byI$;mWO zEfnh15Jv9=C2J6vq7=p@%Mq9^Lr^A-Os2Uy#M!GHppgq~Y_bMQnyZs3Y-*lOd)hic zJ79^~yq?A-=hLWUaXvn&b%cT~)7?9UsPV(oge;#%Cl@&~{pex?LrjSgv81;r-F=w> z@#RK4`j$D+Pne<8-wjNaQ?6$iyn&oMIe9A9hO~)cRiPMB87eel37}$bwE?55NUdYU zXhKa0#%>J37$=O|9p8$&R=#)w(f1OsMO>oK!Rj~SH) z%-EpCyJZ?oD^+27u^LkgRhX2gz=Z4|jL!(f#6%?q%=gFS`Tenb|90%$vj^X8*@{iy zeuoVemAHD1?H|JzGQ}Vu(92ZdB+E(v775`?FuGqBTM3MeEx^c_e2k1Kz=&9ai5>ap z3owcWh5RoHut(mE*cLJ=k?6%4hKA2?-n=>D!o>@+q@<)j zx(9_9UUi*^0s2i?10_6Mx!3G zva;B@$z+m7Mn+1vY}vx<05r!(c&~&OdZAp;qANvPF>>-tW_QI7j5eG{)Q?1A1ZsgssAL(%aWezF4oi9!5sS8OIe&B#|E zkj=}dte(1VX`fpS6l|v}4c~ZW@4)4`dzHxDXOnZ+K}W;WSck3F1;#uAPwmh-KTM5w zy;3_#u0Cgj-7$hDiWfg@OEkzK-s#kRo|+JmvwZpKo(Nnm8>5}OfAyG>Yf%!nn&Ozd-Eml1`XMijOi zvA9i#g{>MaYF1-GqZ;{jLCCA|M{borX6^~V%uQOv%<#i8XER=X{WZ8x9EZ)}fb+N; zKVCRL_$46f(U*m3+^Xe!5w2T<8A%po#x@`;#smF4Ew%xfF$2DjuE(?(%OH3%P`)4< z6=x&TqZ^SP)vQn&H6Sh0Do)R5ukw)>3RRMjs!H-yHn%W^W)~WGzd`gJBoY;hqj-{? zh7E>FN$eHDPOdy63vH>#z`c>Euh5KWv!cJiCZqY3H2ryMXs1N9A}+*&;DDX*8@&>f zo-cwSunh5$>oGlJEmoE8Lvtgkk$%MGE1tOHl^ps>jYON{NT$kz|G<(%pR}@7(P$pf zXONSE;j-?}eeytww;Z@-PT+ij2d`1t%zSw@lu z+mSJ%}jt}Hk(--CQBZ2X;A(-a%rGnXU?4Yf1d<|-k+T( zPo5+xC^LBb?6c2q>FeuzT^i~3{5QtNyM%8(chzK5xZ>B3SAW5oFF%I$Y&Yf~SOIfM z9G;&w3D3HgcBA`BKhTnb-Cb1zbe@r~+55GgS+m`$4 zQ2ECHuqfwH^Oo(q74`}&(9^0z8pKkwfh*})g9t%5vrg79Ek2WJN)pXxJz|>lh;62(Em!N%u$5$@ zHqbyVnFV|L*?=_3G|dY=rgj)Gt(}wEVMJyphXwc{$fjm3P1trxL0`|9$#nLlzVU|D z?pdHWAx&X|s_CxLw zKVP6|OQ7#{G>X8;fiX_jO8g51E zl=?yN*@b~vkwU*0WZotB$B?EcyvtZPXwJ)+jMh z(C5u(j{=F#7Q`6a5MydXTyPr_LfVlO-j3vmR>YWV5vtt_y?-T)L0e!5+yu4X3TXTn zU{-b|_Uv-v_?y+Y*Uo72Q;DO z>2Y~9qF>%V=$WLJ%SiN+xY*a%_jzAmADQOmojZ3f;EmVcczkQ+)Pr0Z0@U7W#H|b@}eww~zG#e*5jWVD?{J zZ?9yeCEfy37UljQSB0YD%OAhOzOF-9QS#PNiHTc+ z>+;#eEm7F!R}=$y;u*5Nsv81r;mvFg-pi^-#d4g(wu@xnm~z48~TY5qb+ZJ-o^f+gF8n>j+*CMH1hm;O#*pgc&Ib<4TGCC;W z3)($ob`UzobY`o-A!~)9n8|MXgaI?V^#Uz&x^>9y(IKx#@5O8u@C7ylX500cW7i|! zZt!9*oi;t@Q{cB#&^KU#O^*dO9b=(gFSFP&0P$U+-NRD59z_m4mOAt(R#4*5V;RFB zPJvB9j}9e0IxOqfVOf_R#T{A{w`;JpIRJ%C0a)A+gavhhm{%Q$IV2O^<%ir#e?;Xz ziQPxmr!xyrLDytE+Q^yt^ufBhFS5;h_=YB#bI8<81jMOK^@ z*#b{Os7H2;0#6G5=2;sgkB1%5)lf#l7&aIDo;66 z^O;@`B37j zJfqOhc6YP?UyI<)`wPM&X$W27U`3MBW}Ew7@MTrKY;OrKg?l3s(YKc_U2P4%irLcgo&P6^ zVEOXptSq!};X+@3e}6U++}GDvA^s2V9WeUKXa4&6vx`3O>e`EdxoSK)a}=Im@*)B& z^~^SzR6729)tJ095R-NWB9OLW?GHlW0W|{mkwS+Wwkibf4?w_y0A|5JiGc7Y?|jnf zSCdqeCj*jhs;VggsCWXX34*p(#n9ITLSG#S18d?^BH+zjcH0-2>bcjBxt=_AR0y#K zvC>XxgNj)!Fq;MDu|s}3Jm`lj2eOD(J)+4&r%eR^c0J-dj7aF<&021+Ac8-`h{QIM zWs*db5`d2T=m;{%JyVo&rqM0GUC`lyymWZr*CC5Iro;4Obn21a?IBB?Y!Hj+Heyx} z{j9^R9xZZhTIAWJQ;*qp1M(=~+YFd1Vb^1>L&uos&||(A21bFM0>2&$1_gVaOrg^t zv&1npMTFgerF6?@fnFy9z7EUmoaGJ!mOBM@J(kmVc0E?ubXZ~2VtKa~%e!<~)~Q8F zhZ;rA0a)4?fWn3#EUXJeK}{g?t5lf1HvqX66Op`d6c(3G$B9?musM6s-qnduK4Y6C z*$vUVc+k(bc+sy{Up|X)LkVW3)*>sxitL02%!nVFnQ!oEFldnC3(ZjNdiv^iDar)1s>U|SNVt(NeXD7O;RHb<%yIS){MlkR)&-i zIBg1~??|RfiGvadO+VKnHna{gGzrb@F-Wl_4YF~=yr|%MM49UmMbcF2L5LDne0USH z-!=s9g#U}{FmZGVOsdt03EP0ov~m&xBYkk`(k1&Zzx-11?|=V0 z-tBfjEWDAtEce}R_jR9s`socHfBZ4~p6s=U@aZzX z4{Q?_sdGq~(_v&&xCDJp>o75ePHL9{sX~&O!CW*=nA*k3?Bsar_$0~Xa!ijTlTNZ# zFe2M#z>FRpX0ia!nbpImZkbAlK~@U}xx_P@fFm*A z`7ufYK`3qw!qTQdmIM}25~vPD{-FTO-tC8+@(Gx}d>o?FgK+#6JDe^XdU|a5hiD3W zp7c^f(W4A%sIkN7zYudW8s*#ntazfHF(b~38L<-em=S9cSO-IYKBfWL(GAFovLY+0 z5n0iV>~%0SP2zPhFahw_!O(chNFEiE6{+E#mjM5cexKy1(kp?^Mx;urB&8CGn$4s_ zVu4>d%*Oi&te4<5#5UCMS|bu<8WbfZlBaT|lB8IYCYz~`K#74~1JTlyvx&phNFmKg zoYKN}JH(ieB3QKz+Q}QC^88LZoBROJ`vChprfP1cgBnvG#@amqN3ua z{{H^IiTakp;EhYONWaT&NAJFjvC}6&Q(;2j9vvp`3c#e@{+P69GA8YtjLBrOwx1G! z9|8~hBZv~g!64?hL-3$aleaqPj_8F)J~eW+VhBsmg1mu2wS2MUypDoA)$yr;Ye1;g zfDqb-MVfpT)b(DzIs-RhMGAQ1mZ00c4$*YG7v4I|4_}Er=lVxGe&2mbj^6ADPR!!RoF1bY_n zZJfn+BNjV2g>lsTOh9N0(8c{NUWsZU9v4U>+b^}Ts29!D_j9#pC5C)Xl^$hm8 zM~kv9HCA+}u)Ix;;+7yRwFY5vZ6Fp@1t9-`AM$oi!mRRfm{B$n!SQ3z)zbjC+kq1& zPT`a8YY!pXScchYR{2(+lVFvZ71tnW^hyrOSAqOGV9B5nGh!M= zGH60Jy#iu~ei;zcq8o+!$eU}=DA0?5UJy;li1PFn_^g5`8?hM%4oe8~3&Ha`@RF%2 zUk754jSsU?gPE(4lu}fFOZhD zQ)ml&olv@4#K816ieK+{2 zASVD%Qt;g9Jr>+vc$w)98d6g#lH_GP%1P$||N7s^N%i8zixn3xTuA)*itQ3CK6&YHq6pII-E*A6#T zV+tOcyrqCob$pAS1$quw>#*rsp~nwpYYz>KDNUrwCy6Endjqpq@J!em5Y@(4AV#+t zIqeE9J~?L6ViW-dd-Beq$yz$Ot%7I5Ryx`536C9#ROYW^5RRG#Ozq@eI~nAh$y_rH z$W)wUmCPV#%q}BlN>EK-ceX1$U$;eQ+b3t{!F`p`1wN z{}6ir!+7!H&zPOP22*3UA~(f~nF&qENoYcDVuObSq6xVPjb7j9P_l?`l$j-xz|6Qt z%#3T|#5QAQYzt<@d6OO6%*#Xc8W3foYmqsK7EF(BVW)Rlsd4D?ks={*nd)Hgqg0w> z2yY&QQnKptLGmscCDBb?kfMN@=1rlSynv>lL;kZTl8o2pHU+`0Y%vd8@jc^2qW}OP z07*naR4IsNo83sML`!+v5Nm3LIp6>SMsL8R(WTG@l_4T@B{GuNVacK$IC{j6_ulHqm2{5(ImdNPn)kxAzmW*1mZ0 zV#J3ZeR!)B!~gcTzg_q8%P&*x_IdyP_y5ll0Igk1OG~3g?>qc2Lqu!6a?K7HFSqn&{wHpq+9<{^4U={1y3*q|5`eES%=g*1mA&6PMW0H z5gPpl9Si(y5Q`E3ZNh5QGMIyAvzFN=^D>Ts5!cQap~Q5Mw~k(J;8O69@6aQGfENr(};zjoeh4yzS5GsMi+@Wlpi6L~$->=snPF-eHiTTRjDMC8c%)R#L#X=~>`sLEUD=8oOZ- zYaK?$I)@SK?VNRX1J*kXSZCK^y-kO8JsPa-48rP;AgpXtp{!YjW!69}sqw>tBa@JS zU;^@Xj>F8&V=;5h1jNl8gJo-Sar}fGZ=Zd~YpUI=9xVQ@fAjS}5vt0;oQx{uBv|Cz ze{TFx)FU_EBB0L=0xNRk8j%~<#K?(jL{4l2X2lRqjG3`bn4ut>UJB8?Y?K|%KW9Z< zgJ^0tOEj<&QdU$GvP3C~tB)FF^^xb~pS=g#8fAF7NR*AP>51g=M)H)8ctY^J7|16{ z@=9t(N*GTFNvxkhw{{6(hao->^hBa2v%IZM@e1&Uc0ALcp=8h^tCXTmjfgQdBicyc zwIJTyilix|MruZUm<8ebgD?heg?930X#LhBXkrQUsuIkcz8xFax1hcKEqr$FYkc?J z;4%_hKguSZdu4%vQhFrsJsGg6O}cb=`V4Zy@LWwq2}vy2l763(#NT^+d*}b~!w(~* zWN`WNWx1E|fAlLkIhh&`G#uuu*XxI6Wo6NLwD0@xzdw?afbu^K7e;QiF?E+qy zJ_h>jCiv|kU!DL2?hk}&e-Kpr1ED?;!~(wNU=Xwv@X1gANDvHFDi~#RH8sqvj;}=s zvs@sLe1cmp@Y0Tf@3|!>P2r`ZEb;I~=d=KYYWL)#Nhhgx$T?F%J8$A9bWpJ8Fq;Kd z($OQ4HE#7tW}C2dY_U0!)=9qj6SmRlq113_%dbz>F_DY2M<6B?j|nBba*IqP=MzY+6^eQ8Q4j(%pw`8 z*K^eluhVn9lsO7Y?S#&YGKXGZVCO3P(5$u*6zug_cMT}mOKh|Y9C~bYXtBZ0S>L0^ z+Ri|%?g+rjwm_7%1Y()hA4PS3SaftU<{zAhxx2<;R{2=ute=R)yiu4rZwgMlV#8N| z{hPuY$ZPaeRtCN1`~YVEIVi}iM{c53zU9xBv0jtB1c?UZ#W%|2#x*b~5#+>DLTE&8 zEWH#wP*RvF%0@F{8W`CzqMsn+{j)Tmz!C`ib4?;CaA=6lgHR(yil%e4)Ohxkl_)82 z+Y9f3HV!W@DgBXBWhEe3EEoCzq`9L|OQDpK@}@E`AW4;=fu$o^kSfBk_#f;K z4oDbZ0ayTl?RdF#>C$kD>;LuF)vH&T#E6XIKKke*^2;6;A0JOI0b0gzOMibqTehvR zbM<-&{P62}Jd^$mOgjuv@1np@H~s(?^yM2r`RgAFVhO--ln7!sesb2N1}+Qw7On8s zA=gY&%_DZCd71@5X%C)Q3QA$yVZN(o39AA`HHNQ>Birs zXV8s5MFf4i=~LjRKrb&uImVZwWOf@F}1 z+l|~$qbm~#&G+?Du zkJUqBz-osMYaBYPwrjD@p~HHoH|ywh>9K)u>aoeGliBFdV1q-0jg$y_R9M>;phyA% zED01_{IR5FG8P=3i2OYhkXtbZx$DOvW!}?B$@W8YdoBL`!w>Q#sJGc6SB}uHeOsx1 zU50tnteBnL$VstcZnBcbA(@kC#hk=?aW-H!D;o`!9GZA?Nbryo--KCl&6vSTM^*v# z73vj8-!)-|0$yt3C8zAzMj6i_n^i6~F^da%sI6X1KXbfQNkjJ@l>SIcC6Y&)O36Vo z(-Zv$R$7wOM~z5ien>+>r6pR3!}lxmvJv0CkQmk?tCEIBB!bWu#D=vXmQ+VH+(uC2 zIhbfbEF}Xr&%pZ%tP#zuwi^&(vLK4AG(xRNiE2bbcn!?z?eKqbCB{9s7;3-e2sf`o zTJlRMT(AQN_IBd6S3kusKMz{3EdP?#NNoRtvm1R^oLY19#O+^SjBGthH82N1R=Oq&2Ik8Yll2`$ZDZc zk4RR|(IcwKh^Qum#~Ys(nhUs(j!BetXs@ji@tr2bcM6H760zr&1$$?`8F&)+jmO=ot?*|!0$0lV+~uj1cj73bknCG&!MF#%s=1G8@YTb3is8S-D5^x z5BchZC-mKa6P7S| zX-8tI(}*IM5lda(-!ruiDR-E9M~@<>4#gDsodyQUGnFMCC1p+u_IeiVS1DNSGGMjK zh&4_F);f&}^a^w`>s#tih{+g*s=8gcbmcPpdrc0O zQUYMQ4$nVWSdhCO*$EYxpI*lT{+uMD4s()f1s3t0l6rQ|POQi51PSW^s9aPp%18}^ z$ceKeM|v&9N&N&1X2cP-m=RYelt|QQZn!4=l|TuAR7g}h^1KYZOGq@tX2GGsb(cgR(f0zX@B-lRuNGc7dd zlFZl^BVTIH;ET-@+D%N7$%DQLiJien>Iz0OsdI#RT1uxGDP5%4;U;Q)DT;{)d)j`* z4Ai)njtBag2YlLiMWq@#B?C2flNbIuvuq)lWe>(IyNSbsypmuqi-kFMvRI%~cN25h2v#~xEYPoZ8`-&b5GJg5nXo~L+b|fH0h9OgU1{*q6Sl_P3x)wE7Sp%`6HUK46{#blq z67qMBL+<9Wn6c`4%vtp!%!!X;@8JsecbN?jd4_=agn(p#cm+s~Sb*G=U6_|vi@C}5 z{N|rR2|-D{0?!L!aB@(-4C+~u$V;#&UIq#jy#{J9lj?}w{^Knkyj}xJJTC`UN}^;C zCzX%r6(G$jcwPq6qwA3wZDCdy(#euRw4E(B%p#!qga(iLh%7B6V?Fl0XCV*Y(8fzko}|%; zc(x&q{ybmp8D+8{!nhB?>T+oPR%7Dmg&6Vj=-qGe+hBVn zUioLQgiGk_`<2n(e@XZuiHo?D3>3jxN(2DD=oNw1j%qzrNLI z=EEwOt5gW7R>54YLP)I|VRagW)u}P1UX5_8v>H*zr*NBeh$cv?Nwy2L5JgxnaE~3a z+qRVtV3FN|G>DbbK^puJMp{=0(mO+t)@hcvVUc2o4Pr@}{9}@rjzQjn#WBgSfZt>0 zODZSW|j+ti3j-q!V0GurHo(}@FmKeJkZm*N}= zrwQvBM)rB5D;S$x!Px8!#wMo;n_b31Py*QO)S=uZg1&++ZX+rMTM4HDl}*=b^I zu^CX_rN!n>6*ji1u%TIlHT6L#s|i5K5kD;6Hwp80j6?2AFJQ*1=P-B8co<_J#DSWv z?C&xuJa`fi9+Zk#z$fp0g_J2p$WK4WlEAz)D`S4D1@lts8TqO8n44-rzC?-@`6&%U z!jr?mL}9_4L?xa?k(*GDy!d+L#8X3>sP~elGAKzEhPgs#~@}I*c5Xd zO*1zr%0%4uf=&+q%n|`h2-kuqgQ-$NVEqLSlb*^FRMB9L^voNBAD8$Ol^WqdU3+(3*$yATZO5VhV(T;{T zu0WyzHzWNy`uC(V7WEovTia3SCT_#{XG)oBxvCgH(dMAh1 z?G0XR7ElT2B`1}1bY8H)@1j$SiXo_U>#)tG!&VnRw>t$c1GYO2*k(7NvPXw4U22qf zsIa+JjZIA|tg8>i%4&ZsJM4$Ty%SNe?M38m8jYDNMsE1zDLT~s}uNqnG< zB&$?T8i-<}n^&W{SynDl!&z!PlNu?`+=j%k4kSmkvlmK){s;{I+oAKTgwB5xbO9@& z4J<@T;##a*Wx=tIck%JZU*fy(zV}KAd~GLB22uk-vi1~}8);jEQR)v+G8pn#O-&7J z4EOf-`c_s}4i5|rye=pxh>a}&^2;xa2POf9K@$7l;CQneFHV03(MKo=OoZvMAHt5P z5Oz2SQ>s*msMR8(R)a{38c`Jdtr|o(s1ehsMohDgZ^mLP5cNoGrIm-=Ux$=BRL^G` zd@*>H&h+>?q;*l_R*Q^ddQ9skk9=B`qC0hwJoWHPG-3j7=j^s~Ap zbePqxMeZ>ja+s|GKiS}w(pRU4ymX9g&+S|?Ok-QF44BuWzcvbQ9p@Ha3UQWG z(06K4?$XFqFtn(2X;A4N%r>`HW`|3GQ_tA$&|_PV7F&){5>TU@C4nHG1djS)*}=&u z+%paZl`mlS#?i=GH3~CJo<{yMBR=`!ZQiJp%0c4qI8DO*dWjEoR;)dMRP#C%PHR9x zS{(|~ELcFK)?h)3MW!HCNj(Zut?Zniat&A#Xh1$C0!BUZS#Lq~8j`8>REK%=?~`st zL577fFU^9vDLhF~xhOBbK{S;IKn-VBRuah~UK(l>$$+Mu<2{3K-pytY(v-6_B`td; z4RA}9puU19IVk*)hBC`jnCK~|pgrD57NmvO57@}2w7h7R@wVOOLvHf0+Z1Vr!O9ZB zK!#lBDNjOkSUE{KzaULLdwrJtka!u1OIaIasK>zEROuu$J(947wIe>f1BsFChz)B( znBg!&b-SVQ+kh9JTa0nf&qZAHdX$wmq2A)g-~Pr|pt8TWLd?J$$DUnylGP6YcYl9B zD+dkv8Yn3#VcTp-8MJooS}Fw%3knLlE;l##ck~Co`R1D_5%?tsQK1s`B!Q1Udlx~o zUPQz}Jq(8@!E|IY!j1%D%HcqSSE~?Nr(s0ZYZ23+MYL6e*hUTFo3w~))*`k=i})5T z65F&$B3J^@BB?{m)H<}!mV$q3C)eX=b%kJ7S0r*fqA{Z>9MddjcII_NA*X8!GCK^& z?9?%`y9x5rAs-#`(4mt8J8ADpeWSzd9zx5p8@wTFg&yInV<&YE8K;qLg3#TQe~zTV z9}>L`SuJ>Z>)4eZJ9_T15|YY@O;18rDMUKqs1DxhOySA!8#W|*SoaXFa#9zH@h`5o9GmQy~54e;?iP^ zQ{d8Ii(BnQgjSZ>$`30JOvcjPI8U^=ymIM~2)nXw#>lq6a@Ze8L;M&X=uL3&fCQ}Kh7IPAhVqRJe z=A~C*Uiv}Ih~0{W;59J&ErxN@JcI=;M2x-|)1u0emvR8}SfiR=3{+BT!knZ=ekL|! zP9pu>z+f^~N(zc0wpob{n3>p!oCFE)31~(lO+GhZ<`Di!*>N7lkr%81EhPnoAJPCT zj7&BG?fH3{g2A>JjmU^-Mn+_l!VW`x7txB0h!&*FmfPL~Zt^0YaOHv?Z>YyG&`z5p z^&c7rCjn{7*=yf3cT?qMCEhQfW^`Pr1+hd}En-4wNsmQrXlq2InfoC{1UE7wSvjc% zu^}Bu2vD2(SQ0pQ?%V{$D}XhkB_D1n34HV2UlCUnhTuwn zgjV^(Ts0X}jszjRN`=T84WjEbh_2Njx?Y3WCJo{m)ktX4AgM)%#8wLa8W#9d+O*!-i{xWkcC(+>5saLUDaa)IWE(YL!!h+x7(x~V;)Rf>@bLJ1ao-Df;{GvrVp8mr z$f^v+oUU-p=+39Md;Gg5= zrPJfV>wD&`sly_N-rHNpsl#HYmYsClmu~z;4pQYvH-7#z;pL=BiNL94EGJm7*P)bd z_bx4?%;{mJ%b>`guy^adpzn4bH+r$lEuqIQ7iXtki*4O%RCWfTqBRIFHLI}65`?u! z{84sb5{h<>!@?~uVD5%dn7ei~rY(8|duvEm-7lAd_)CDxu&)YRl&`=1C-PD^AV2XS z3NxCph=P1-9Tuk6VNseAdL7hZL251g{RNaLQY}Nk69Ap_(&~^;J%-de%uT7q;;ecU zW>+CAY6F5^NW{Y#WD+yh*Ib2au;k$V8 zVp^s=e8h+m*C!<<(IN!j)2B~A2H+fNT3Ip>i9o3ky4v>(W|wCnsBA2vk7^KlWHQ35 zf)G)yMpTUku@)_2>NJS8YLL*Z6A3_zlr}w5+q6h)=bC)xrpfg9G>~P+^iDHowFe`& zBNz*MVlksC0@?**abLh4xZ}}V@$jP$V&sGO;^F&7;QssW!~KuljS-`Mhlr9%DC~^K z>|+Mx*tE#8QF+J6)H-qr;hf36bqtu}Fk&u2dVIz0pAx_VhoY3D@Y5O6 zH(z+{u)r@lZPE>&Zu{h_>C|EA07#bUu~6plx;@?Um0mh}lv2iOGTblV@A?QR`* zQP3a2uH$-{-N*IV<1%88TaVpt9b=D6kKJ}1c64j7ty7K4Ruw9m)YxoMVcijbtUNFg z#XHAgVZ~_VQxaG+8o9;KqP1s(xJi){E+qlcWa}pz0N$K?GfEg)_}$7 z^(^2oO0UD>bc+|13>M1N56OZwD+M=>{r-~4lvx4?f)3~u?|!|?U_ z9bMZn%-07#!+hZDdp&%8Z@{o&!{9s2hu-z@@wtH|hX-yShgee)=1;4^?BpuUNv;v_ zk`nJX@I=580wsdvM&u1urED+lzs(1GyQkw8D_)61-;>hI}auN)khR zB`Ga1rp54$ZQL)3>@S)bo<%&g#dd{)@U{clp{K9IexmpFDz^j zO&WIO=|Cz8u?8`zgszzc-hcmn-z7_y_}13e4vUSAy)HaFoO%K`l$V!}xO(-f+iR(e zVud6PJJ7GShf6Vj;nPT{H6iSRHH_8ts1fQYQ$L7h;Ps$sacOiMG{DB(;~fH zhjg-D=+rTNK26|ewufRyTL^MngE6-=97&rrcvk-q?izVJ9v*o&o_ypsJTvn5FstuD zdel?UPP`9KK6X1Ec>GS>H|iElTW`jqV^PRCrep4zWV1k9u=v_T#U?D~k!R-gEaYco9CsSg-)r2Bg!{UlNTh-^yu>?6h>-n64$^anZ-`-na_g0(Bcy;*bA$L zQZ{jGWa=Eke$vk_J@(r5*xjwgj!rGMx2v(WS&f%0fml~H8LReB!m^#?u;``dQLz3w z%w6>Y<}IIqGap#F|BL7c2(L(%1TKpt&{}^2iN+F?cu3w$k<< zUSlr-8eo&m@q`t|kja9Q1Dj?RI~YVGnX8YivI0p~Cy7}FzNw8C^>AAZN=(|xE6~;c z8o!VWA%kacrkn&`9`YqXtIHe?htDUUd_qHGzUAfR!%9j@hKGlT4<9vZ)QzdBsW;Id zJb&SQrP!T72H74v4El$sm*<6+lMOHwPe%Mf1EQ*e5Oq|AXnF!O_)I|0_|}~TCKzV&)3AUyNSejwM(u_KR#f!r9IuxeYinCsZzY>UgETlxhsK>%-Rutz|!yJ%- zo36VJ!+d;k<8{M9Hu4nwNBsE)1Wz1+)pH)lk(JM*t70NrH%-KvSq~y)!kxI~dSCXh z`@;=4;X0q+VVKX&n4(&Mg_$H-tzij)WUJIfrUvvpS&~Yx0sbOjuL9Ob5R=Ub^_Y`j zm7#$)KFlWhAt^nQgdbA8$M(VtRwD8Ytj&zIVpfcmogQ0lVQ&#V1j=$z%uvH^e800i z+{PNrH2vI&sS)In#QO%!)n>eg!tXCcCM6hS|J_+W0~q z?*_9l$P*=_1ak{VQXvIPsw9r5!Q6;=BDe|h!DPE}0O&v$zYP8_ti($jEj$Tax$2oL z7J?p;5#G9HW0(@a7hingbNKLKpG})K4GRnm98Nufr=EK1hO)Avn^tVl z;!2)rU3^H3ApJfKTg~l^KxCOe?tlJ&@ZkM-;_3TtMPB?9c&9lX_#g-PFcMckP~+Ek zCZqRk0D3>1g{4`eF!G^4 zt>3{*J`Aa;>(F9>U5kYdEf$Gaz`&P4k==x1A=gyGq?!zJ)0CVuNxErdcFEi}SudA) z$YOzR`P?1Th&2v!$~0lEBN%J#Cakp^`N`y&dih-EG+;eV**dsH(*sxTFo~waB&3>p z`7C!329!G_1&>~+cqHYHmi>N(-M~sbTd9=e(qg-d$~1cHK4HY(6J{JZ5r%^&B5>$L z3=W@+#gUV-{5%nlqsIquA`VAS#Im#cWE_s3j7Rm$38;A`3DqZ)QF9^%H7AldC*x4_ zas+B$C8nU}l~B~a8j6}%LQwOH8C55OapbrORmX#I#9_kW9s>>>(_&wT7JFOO*lAUv zqS_xD4@|{&)mzb^jtGiwUZOWBL!>D4Hj zR*j;mbtsx@5lElwP$Uw=5*dpOC56Q-G4SL-iJ&087E5MUBi1w@zh^andI9j@f5-2A zFgNKbyxI_pUq8x4|HtXT`!T@#VZa9=z(_kW0>!74D%U||G9A_ z(j!-5PRc=63d(153>M5!rX(QED$oo=Jv%8G%n^`EDL>J}T-IzB6VEaYL&9w@8U{d? z+I+x`kS3pV$uv*4-KOL)G}#JheJ3Aovnu8o6tY#Xsb}twB=-!M{}BzSaXW2RLSo5* ze@Dq6BdQ)5QFX|OsuhE5q)@6wYGfT!BkPgMEHKD1wS_^RM*|n{44zX^_8B~edfY-= zI-41ZAyOHM?^uvZN(7&DCK{1Ia|e_#f?JRl-UZdTGOS%y%gaH+X;f|u@KtH_-CNh3 z6(H}R%aZYCn_q+my*Eb$&;@eHEPuLvuDp{FM)5r`8KM*um6&$HT8-0GP0)y zt^&W{A|eX)h$>ej@u(g#wJOBcX%T0k1fW4uqZTR6TBNsXkkO*X)K)d7wds)AZsJ?B zIwfmmvTM*G*B*wn9aC`63%BFJM{mWG_uq)}0yQqZJr(_Lhv4dIJ$g?C;mT=$Ts}P+ zm);r=yl=*vH3q!!#2<0z!?!`7H5N-dqOg#yKct`^!fyWsG=ya{W0B3wCT6eQ04fE!w0uhzSt~H>1rxJj;Fif;n@_=>cH`1#uGle%picu= zWNdcaG~=6L;%zJ+`YRaSTe!$6?i$NhqzDjAdH_P*SNv@fIzLD|9F#wrEgP8Gxd#6HvTuJW94t z#PXdJQMP9iRv!q!+QTZWKcc~gY8^J!=&`9vhmD7{SifI|wR=@qvojE-Tm4Y9X(AS` z9fvt9UO-miC`?^A3W>STV8?+%0KcM7T$aRJK&UIY=;7PH{{xBU`6$h?pm^F*6lYeW zII|ALbc3H(&p&5cP&ADaK+O;dfBwxS@V9tCV>p%MA14W7Za6s}65CNlL6=%ql(LPAO! z-otI47X(N27+Cp;dJK(T@X`?(?pYQ7NW6sPDJ3-yu-oRJnF5JPSS49%y+A2d6+g57 zf|NA4I*DEnR6gRRA}S5F$j+$rd1@4uimXTqtwQpY{YZ`6g|w(0NR8Nw6e4mb62o^R zK5QQnLJzaSwT$RCq(!!{`GZteUZRA+J&>eV1Fh#I$Vkt-yd?S$a>Agq8Og#v+gpvq zOG*S+A&IGHN*3leB$(Tg7TFB{v5T;A{ZUa4qL+ZI9#!-N`riVs{O5tO3+FG;GMQl` zM~-AKfqU+`=lYP4kl#~ZpvTtpRBvxDIn*)hQhrksF4;6tbA|u!$yu3!sI_XORT&Xq zt43U%4vF$8KVKM0DFO1Zj zi6fAiJOWuMcOxVDUPQ+{0A0w#@Hah#$)<-eDfl5w41Nd`f*;0s(<2zCdlWBfAIFQj zr|_cwX}oA0g>k{7@nZ03j5R%n=d@4Zi3yM6@fV)J&x>@Dj4;f! zDexC()(a>hSlL-LjS@nwNC@>jQB1X0F4I2)?@ht~ zzLE<6r>_%bq+$5eA09$dSP|wXAI97yX?RTLyP4Dyz2g6ymR_ny!FPnIO+I1S}mVo^Qs;!m}Ny~d=-+y z4zkxmMzolQmKx3jEwvSjB*su`q(LPlZn^C}pCG20MX89r4nkUy7}A1iF^!n~LO!-{ zsgeiCJf%#w>W1BL`ulNOl!Lq_qQC$B?|p8)^;VyoZ@$?lA|k@~;K75w(b3Vvrc9Y~ zJ(Yu=efHTKbvoV6h|Viw$^4$i3PhHukaaW^DRpYZ*J+VluS1$u zgQ*P~Ol{I2vrUibt$Jj&>5<*RnbAp8yCmh*U`9_M=G#M&y3T;R9={EbJ#-gRBJRZx zXS0CQI`o|iME~g^22KY6r~H9af#^G>M*rym{B$N3(V>sw?)yhzwE965H%AEFy$(xk z8Z5D?vDl`FdPQElDsnSmoBR0W7B0aq6(fsb>?o zbgp$7m~w|2xNP#)C3))T8Pv4h=;9|cQd3OfQZ1iu{cP&i$s4v6ZgGkd&lWeKlOZ`K zY4W$agRs>dh^@y1m=tpx)$|=9IPyvgD(ekM%6<$QwGYBH!!avnBq|p^j)u(>@mh5_ zK07uQ|2&z8pH9uk&u13k*LMnV<->)z@?jyaepH0skBe~S<0ZKImnG=^Y$>jMR*b9X zR-pIuQuKaahW;;B17B}I|F=7VAFQ~1(T0EhXvf#zyYR)oj^i)?JdTgPc?}xVe|E}54mvcD&$ro^a{3Yxke1@*KKStZ>_tEnDd$7KI7Inu@p~n6O z4t1Qwc54sHtJ|>tU?WO*9L4gjhfuh#0$+Xmcit3cYf`;;$TA%qfX1qB%!(^TX-+kY zr&gmRvzFcdOQu^qWYN!cC}D|#exJ%lH7H^)hB}l?twTvh4NB5$P?Syyq8>}L4r0}Z;BR;jo0v|-+@~I&7o>8IqtQvi1H4K&r&eHcm=%tf=4#cHXfxus4 zacET_`}eu=`Wx75z<*3M=BFQEa|Z>fb%U6nR>x)x@>4x{k_8`RlbA@ zQloZa{faKwJI>*ouljK5XW+Msz^^}pxqtqA@d|$V3Apkr(EA(kuWx{t9e>B>Ro$4L zv=>QJ_8~2zM(kdoVKvDi)f4!yrAqQ_X}gx)MZ-19N0L_(HHBM{5p97XU@@AkHt`a; z!Ye@Bb(9Q#q$J=HNq~IeJiqR|^G>!*=B~T$@|iVjmTy;A7i$j3#Ka6AJ9aEtN8FH- zlEV4|SFT*CQoIDblYmeN9e<}Aq4NWfR}+o2IyI6kYNT1!nAV`e^hOn?H)%1gRga8T zJu=%2$ZprOrY*BY?lEC*w*k3bDipMZV{*(>xck9dG5YbF@JekM@Lml1UKhdtEq+qa z=dS_!%x_6Qoryzy#8WH@j8ff?;-&}`*$gN;rbo#!JxY6wD7A-Rxg!G0Y*ARz9fy_e z@mPE$3^U3Dky<(tv5UsSl>HR68Bar%^aLhFK7_!ykqFLw8sW2_LrmcqWUTkc{QV&) zZH>cvM-tXKVzAB?j@1q$N^L5X*;H8Rpov=p8@^&Xd$(4gW4HYE6yT*&j+-ztHn}A) z9fBLEy>#5bki2xLtV87-C9K5b6pdP@ulFDgT5VIDTTf`Q?SvZJPWofV34iQ#Xt2i> zilZmuF>~S5cyY8Z@)I9`ZHpfN>d*mi#Q>+GfLFtSlfl5tp}=e5xauYh(qt2@$Bq-Gah}XlhAuQ1-)m|(EIi@^uCjczIU_H|6VSxe6SdoKHr3& z{`VmM_O%6{{IwbHf7yw%pLgTbXLh{)mlHVg@#}DXd4vxI~4i20=i#?7vv8(5GZ0mR#CmnTTr%j zH-7k;25qEGd7epOUPaOG9tGub?EKUJtTYlD7|%vV7#76ukYB zW)n$dfl-HCnrcqG7TyWLTc+wMBh4a@q=b6ROt6Y+XbU^DVr!8VSBuQ}YNSRSK*{_z zyng&E{B*t-y;u8i{>Pv2;}1XK{CVO6&i{BGKQb=j!i8UP;ruT+fBqsaU+Tw&AAq-B z{{{zloNWshMm+8trZlC$qdpFI7^i*C1QNe_%lQi0m)C`VO?o ztr=;NRfsY##~ZJ{%V!08MG}w=B;;~X4Zw}$ypljqPY+u`X1CkfGoh@k%qKQBcGz>z zJx4=h*FE{i{iNW%wWIQqcAw2xx zotPT+FfP6s2b>B(|C<5mKOM-E06mN8sVtR--Zr5BtswmRZW6*xBXQ@ww_~*CVJvNq zLFtK5ta~L2t8I}eX^29>o)}DB9g5(Ylkq~xNQ|6tCmtSq2S&bd2S$#%0}niTEADyZ z7Ti7ZR^0v2t+?xf+c4t6+i}k$x8uGi?!*Jnj=%%Y--QQ9-;GDc-HQofPa@VPaCnwP|d;X`P^g2qte;L{C4PuulF`lV>f(H8K*)h zbfj{Q3{&Y)DTiwKnnCO!y9KufJKg;AP8zUs8aZwib~-2HkV}odZD#0Ius>Hanp@3NwB>k-UfyAAuSZTRgfS@U|Pf~A3b zd0)mAAS-4*inDg0Z01p{%&tReRt-wCs}+!)}}cvczB>Nfr&71Z`|^FOmi z^XD&!;D7!CE?hW|pMIj?e-Y=;pBMaq^XLDKAAa~3emwtg{QB!}_~l|BzW(AO4(vRM zIavph8nqhbg1!|gVT9*9N-&9`dyo)W zif{kUx19CT^n=aGNHZ4cjuJ07|VcRzSP?tbWA-1YGP;GU;`2mgo%kyJ?;ZDHjF=%vzm$w79=dPPZx8n>c(E0u6)`c@!GG6%AQ zre}HyKl4hE)*JWl>%>!-&j<$wEAMiUAr~V1OwkV)egRAYM zai!&1^mV*|{_Ypi-#s4anTUS-B=kA_aMcxnzT-i-LW$sn7JVlT=zTdDeXoR||20Yk zQ_%l9C4mU^zZs4Gw_?$MHi5$uLMr;-nT6g@mgCa@?!XWKsK%FnYruzpZO7R!Yv7(DN7Lb{~u@X0Tt!heet43jnTy38(=T7H$@)Gx(eFg9dnes?|ZI|FD;?*HCdYp-W!7_vwL zXFq43bM|3*a6HR`1Q|rJe0&6}ri8I_(k_;b|COZ^cd&A17?b^frgn7$s(n>c3fQK- z>+!ec6*f)EPLP+t_6A``e0h__i6dCowu3Wm+Q zGv4z@rupt;re7$t{Uew&I+EG`k<1w#%^d$I=J-cTlh1Sf6f*v0*iD*ruH=#QC9kA^ z^+xiIWx9ami}X*3ugm)wl-im@>=z-|7ygOLEvvG_s=WGBt|bV2i&!T5#t`JSn_a); z@aiej&HmZ5XS{s*f)XkCzoz8X-;}(1BN2nR^-J%S2vU%VLH^uxUcP$5^B0eJ{`@h2 zzkbKZ_weTf70Jp%md_W~)tedR7%Gu~u(FT}(1HxK2yjZSm{)MDm|u{g>sYERB_(Lh z^K^(~v_rhq@#Jj%GeLf^5s?5ty?GN1gf`h-@Zn#UcE$dxYpvui<@gSnpdCfy{xn_S<<8U$olBzxUDrN zB+it;_`!t44`D)rDU%Z{n2EjjNKf+YR-#QK<5UqB$>uz8Q#{zsLl%vXJVWDP`xa;kqlAldb66trpGO zG@*}47mS^I(s6KW8XMN9Nt=eWXw#53h7D=kp&_k0)~9)wx)=^`0DFmk;SBi9bbex)fR7n))|egOU5zo)&4K25qdrg_Jvv~1gi zHf@{Hs$Bzmn76`d=J%{lc4S+&gB0vHh~S?gFGSg#ZdV@Yx1`&a%Q?EPonO*rh(fLC z))A;I@9fC5{UUZrQ?%CX&a(Lgd$O&+09*Fv3}a`;aALCE@pfv&64!4iJ8nT~Tn|+7 zJs`C|9Ow-PdZ9Vg8xHq{w0>}`KWae)=|d`!fEDT-Tgr0mP@l3#b4Cz=6XZF;IcE^r zz&TgA;06~xKq3MkCs_! z5F~JwRbd5|TcNzC6F z!`!XmOj@~t+$-1QKOFT(X_1VsD@d|M5w$enkn%X=-4?TYQUt5VMN1^GYFsp{#z)FT z5E8`?A==C!L?M$vPy)+>l&qK##r)u{j2OJ0?=JuVAOJ~3K~&_&_pOa+-?As2TKA$) z7h}4%A4E01Z>dpTO#AAwe&ztUH3rpL5zx)}SST(&rvD^?!pfPzXC#nk426OCn0A)y z40<&%Y~G9U9_yLvyNl_5dzd{Yj5+?{%pSd;x&Bei8xt+VU-6I0=g)`T{(buSQ?I0d z`Xf~)1szf7vWE)DyBK1>ASqR{+V=i3BqGonvp+MJU#<(Wo?<(3=MMjW7fTO%mA;3v) zSCvr75<=^G9_tMPEXC$DV6~OF^h2c@7 zM(G6x2I~3w`3Whg%GRx0#nSnzS**rcJ*qEiFB% zZ9`J4RI+HQ8&THH3#6Ql!)j(XCM1{>5I>NRL}Mn!4`ot}Dbth9nUy$du@+Mod) z+cdzkPkrWx^d-p6fW95;(B7ai`t9^FG%%!7D?PH6Zg9hgvh!we!4l1RE7bW`l%5xz z5kecahHI|8%lG2969KH8(3kG|_2}Hm0K*O~Xx64NP1*{Zi6%7a+>o|Lt>|Feh9MKX zwqO5sb+YjnBkLXi(is0qf>0~PqD!- z!4B_eJ6v{~V*k?+29EDW2b(su?A?lHoto34V`G|ju1CkAO$bV2CEE1Dd36Xi~bPN$n0P-OwEDf#yhW zG->@%9UX}3xH0OJLs6%jqe-`h3>!4rwrHf9!EiJJr$ts^kLrvgsyr9e=iO0X@IZ6H z8}fb86a=9vn#=p&e&*$$kv#Y_m8%bqaq(_8=Wd_o%7hXSsru({^q= zkar4~i9Z4*@>s#zsZmn!Up+2{)#IZi5?B=y#maHf{4h?TMT~p~ zD_A)xlCjQnX4J|{Bcp}aop&+z_j<#_`=J@lLRWP;}gruptvH=~m8G!Z_L0>*~gdk@LA~Ps?{fy@?p7Pso4|wvp zg!gaY`C}C~t~_Panj-}J?#IP$H$L{!jCD`MU+imeh-HF993hTz1PWViVUSn8zEfV| zscU8ZeArFe$R>u~Tou?`tV9`=t9287kJu+8uc|B;Y9x^cG!6cBP9Q8SOqj&!O_?%9 zub`knFDWUhilwDxwTTlaRx>j*t1gH@Uthnro}S*<&!0VCtt|wr%F3jXCtON_DhuPAmYh60DX~xj+8*(DtjTePed0jM*Ooca| z!DnoV2e3(1KVTTs}@~b zen+=<`sf?Bq<)*))azOceVbaY`G^u#|obOXD5cWyE7@5=y`=tIjCL7_9GytdgL3qbm zGbY9fr=P6o6V!#qgTA9lmxi?H(2@r2YBD0ED;tts*?MXuo3e$(V<+kN+fSOaJzZEP z2uVl0XZvYEH`9jgnYL`t641J63J)D&oTdx*5^UI$RRJ-5TN(SZtqJ`M`?Ag1mt{&! zrZdLI4M~JsCNBW~m8;JU- z5t?H|;g~s^6BdwZg(lM)O_mH%D^O+IP?kHKkD_>-=Zq@P6-}N8ob!VG092P}^8VI3 zUj81={XbHkM&V(txzc6joE@u1hWtNbHMu#zXOn4;{h+%$! zvK;dQ1R>}UTMprqRAH1C_eIR{i><(@co~w6q$LF1{)NvVG67jK60NEg?Wz@<+P;t# zXj@VxRF;sm@5#e!$v0?h-Xh<^Sa~>Z{NP-{ad(n;W@jvW-&b^249EW zjB$!)qH`RRoZ=Yo98Zwgx!@}155$>3K)H)*#SUjN;8woFS(1#z=cBMTp2zJQvJ0+S zEhgXP#r4`bF5NuWUC|ZvpDQL8E?lU0;lc$ye}8|y4jnpF>C~xH)qsG2YQ1~+7OkQ+ zM~)mR6^9=@c;Kzom&%tKOZutwha>+X{r2z|NOxZ|f$sYf+V^E$h*?V_RCaZ%*Tm4KN(qn!)4x;=IkAQ3-a0 zoOB^5+lkTHc6eo3;+$cMPwsHMj@dH$_%KGDu)^!O8KaMk#Q&fJzRAOJQ(8*yr_Ks9 z9F!)wBo4+UxgQS6y|GX3kA1QcBa`|wJiZSO;{Eu(I3@LC)Ikeec9_z~w*yVPG@x~N z0~#4Lps#f+*2Ouq?~EJU(`_UlogL|xvc*D%9osX9u`P2Lzlxx*#f}UcN#@y^Wyj7e z8+K_Sq?~? zCe{FzvJINJHfZA8LV^LBgm!2W+e2~(G$|cXr*uYjpc|@#Jy9L*gXTzoG)IgeZ3rAS zL33g#nsighFhi4JjwVws9t$G)m}AGs+~KH%Ty)wA&bY!kKU5bd^X|qfUfd7k{_n|L zy?>Pa-*U;jlgH`X=gGQxo|D%va;T_~)S@dS7F|PGc!S9Nn}nac$-Xn!*^_gHU745I zE=V9Pj~`RBS)oj0ad-;z_r^1OXABe9Y$N=Dye#j7T4<=HmAfe<4%mhNgluG4 z$S!`IqG0_5C2J=rSTiApH4~y(Jziu5F{~Ufh(Kfnky7z^NpKjw^ev=7T)nE8;MJpZ z+u8*C^kjGu60C}@DGyET48u65$w8$O{-J5Q~ZqoJ$S^!$4`0w>ZMEsLdvO3 z0wSna#wVFTMMj{5?)A%;FM0a(DUTjL;?bi=((`9epGnUJ*?cH{N9j8ad71ZEH9LVR zp3zKpQ!>F-!8mE^IT3%ic>KlOfmatb`F1h%gjvyc>mmwX-QU0jx}aRtO+yXO<0=hgy|T4n(No6 zd+X|Cgn98c-;KAYOesBO!@E<~e7NMu!?Uie3an4W;*PvK??vf(JGkk{hawLOj*e#a z0wV_Zt%X7B8W^@|K$}(#Xkl2Nwnok9>eCkcU(E4M7>R$HJwcgH_@5kx&j~9$)6Mb7 zG{Zg142O)NxMW%2on?!!C{!QyX3M$dWc+@Z;=iwQ@BJmm}b#<2LUX`EY#&FYfK-{{ND=a_<-y?&NUxRvx*x&XIXjw1?(% zxTuhnt5=D?avg<`g7R+>o_CYIr*E)3yNF#Gm-zK$KAVr6Wqooc%aw;&6qd}qz46T2 z5zXZFJ2;SiP9_1>M^uOf^P)>gw%`?((o#m7UBG0Iu_>3+X5-Df8=NAF>dUnp}035*G6!I(%E`bS9+Q_Ph7B7g4CSf}88W15w{G34iNbJ`CQWKuTU$#V zLdsZWyN{(GFYAg8S|ZS;9+Z~J9xR)bt8iG}m08JlOi>s!Q)$ffcq5jlx?<$omL@Ig zVb-G#7nRPu&v)YeDN|IZ%u(f9@&3$E-dr%H?6NDGD?X?%kD~PQM6x1BGC#Nok+BKoRK?53esZW;?`WQ{?!RRPwCYRqTg749Y!tuerXb$z2GlR4NXpRj;b9@k-7=$L>7>yu; zEDO}4fShfOCfiP~8=P`QeIba_>&tm5NZ^5v1af5(xGma4&vWcXK8LPdBDttYO9Hnf z5(vvHX74GP1a@X#X4}bpem-)BwaFPQR~%+hXcBYx#4&x_er9jl%h_vpr2ns_YSA8A zDt>ddt)dz}Xi4C3>nFspZbA%e$46_WAvq%uWUy|k z0`tBOTG!7iG^nG8a@$b2>&C~6@{}(kuos%cRV%n+fm$c`!7M+S1m=wvI}svS=pV_V zF@gZ(Dd@!kib|&ru@aU@S%JtFbf$T6Uxb*1Uf{3PLOhR`Fn_d`Afy_@m!Ol9+1lDxH#RmF zZK7ZI>eWj~Lbcz&f3MWaK++=P$|Uen>nIwZ5sBY=6Q;*oGgT=v0VAfy4`OAiH+^hc z(x~Zoc$zok&OsO6oU`ZMsiBme8iMMyDQ|O!^7mN_N-sN6a^8pBh!IToFrY_=+B9ia zmyVqbXldA(X1yBF-~W5;*P1gX$pxQW2OKj+;J3l+ggHJZhv1uOj7O#=Zke_cJTmR@ z%p8tah8^D7<^&ubf#T*)p7T(;5sJQWv9t4|S}p95WQaf^Bm#*MR1`eVASl8SXQeU2 zQ~P6=Y>Zv93B!_%8Ie4Qk;#1}*e4BSMDk!pBpKnBV2sZ$8#-FGrbYXv=(lT(r9(UR z9`TjhGy&w+KjobfQy<5gHQK880&wZAUv$a<)w8laA8geImj z8bwnOP&SjY19g0BnFvxkqDkq5I<*TN_#RSwqB+nL^`Ty<5BEl$)(5rJR@xuUiGiro z2cya`k>nvwmIaz@QAD=rF8_9n^LKJMed`R_xAMrid7iZE z7dco|NMg|yVy|2$y6`5E5((U7&*>ZN$}Zy9j6yb_IM0S7r&*Jd!7}Ax7KA1;XOEI; zTf$hlC5+pTUP?*wM`@FoED4EhK+Fq>P9gD#*p|Rl_Z4iJnZU+L3Vxa#!-h#pe$-<9 zLcf*SrqD! zSYb%sNuT0VL%j;fCVFua{@a3EHrbQ*HAt4*Vq=>QItfXBK6_MrIdoEz)T$~>@x+XR ze>~ItBZ%LBj*IzMxmb|Lox9igwP7V^; z!1L$NrEEjI_qwEnN6-G?<;y3Om8kgb-0v(8T*ET&<;-q{@uWHq*()6&fjhHrVnpinm#lgX$+K?ebz8X1lq^JvgJ!Q(2x`HfT zym+xt>mn*h;FC;11WfVl((McQEwW@%geg-JjF=KXnAwTetV#4|piOIe`gOub9E%IE_#s_=}xd?YkC=eg+c4Ov~1Ii7M)tsc2HCLj_!o_ z?%@QdxiT)t75~iPxSlY_EyEJ83~Rj7t?*7a$1B4^dhV4j-m}I#!v^mRJA5;3@kuiy z^x8&BdCLd&2TD~R5f*uJt1CPyeL{)ql{|8%hW8&;yi=7?N*U*$ZNjx8feTtBb2I8Jzf=}phI#_q4m0>ds+SkTwa(BYA{MeOY zqYeIcgl5^vGEbH@p;nplVpH8sXb+h9Z)BC1<^rtK$eK4dcmQd5*cXH`l3G857qHOQd_C!q%lY}152rZ zOtu56b0NIBwvLB)Be;3*00nnXkas7W+?!{}x_OQh#rYh*R!B08QH8}s z3}Q>bJC*o- z6|^qq1WHkBGXe2J1lLbkJMN-RH3RI+hW3>!o?poK0Y5HitPQ70G|!}_T) zbZFXLDhLY_7}V}t{w|onhYMzW%r`=H(HNER{1Fn4G&RKg|#X#CuAuSCWj1OhG{QPZC(*AET9$ zbkIplvE`UosT1j+&~+xs(osbx(x(uFAd1Y>CHw3smd;RcDx;X3oLmYD^SE`Zi2wcX z0goR)mE<6K7)&=LCbxQ41bFdv9sWBL5CLDvKO*=GJbn6{*RS75180w(3i;_ds*+N! zXWeG`n6)hSSkCN`OPD!q857Ls6EJutK_>Hk`IbJW`(~&FbK2QkSBX;gseL=Uwg)-k-PQ!_@%t5}a5(p(EY& ztJA94w-~f+7n_+|RQETR=kKuRKbv~#*@LpX;ndT!Oc+2fKH;KHomz787vL<~2ahD@_$X|Rw z#e0pKzg2R;P!?^+DY_5NsYX(u7lGeFAZd^c>A4K2MDbpKypk<&-e67Ro^|E*QjVaq*9aU&8)M0f{hku7AqCV`ek7j=Z*xwLMWFyqk zjnOEZqmFBdI=&^U_%^8G4Nxa^K$F-RlDncw{T}r}Q7h=7Z7J=AMw=C=jt@kAT*yR& z(VQ?rlWrlAz{m3wd4Bz8?*FEw=>B0Y+)d~7?Od{NiY(v)M~e$MbnUWS54d`jn9J9Q zEGQ=YVljL3irIDgI@@!u@Jo6DKOQ~Dssp(!Pdv`T$Ykd3Q!saT1T!~oBl6G*DXA+} z%k7}j?O!`Jtjhu({qcnHUUT?q)_yilist9ZN`9K6VB_RyHcX0^&L1a6v0*}tgdfL8 zu|6b{jZ^p2zDbwzOu)yqKJPAuP%3%-7)u4*vWtT$%O8wNoEL@eubqIG2tY_b+Mu7W zgZx^whDw=$$Q(olaA^qd&kTg?qe$9lPVKMs(5ohv(A1z~tA0%K{efvdKQhyMGjn`@ zWr5#L7LDG`;?a9q5)jIwfG`%1jbKS&BufH?Cz37;kRfIr#5A-FrS^UCnNL3_yQs<# z#(6R!=$^}17*H8smX+p9T}bl69{JQ|1u`lKBJK&B`KQ(|cLK>IA>;pD4iXZO$O2xxd?CwCC2x57 zqJ&4H5dGvC>XP>q9J#_W|Ftaf{DHalE0}J(lt~r~2p%$vF$1UI+iM&iJ;pP3$RcJs z{K7o1FlKp2Gtnc85Vt5o++!pXnCK(yB(^Xya2?Mdzm`d$(!7@T&`LoXh1M?O-#dd` zU0sC)q*uRweZAGIS64ZF_;8g$g9cTxx3{lqZf^cnwvd+J$8-%79#5LaaR>o`>LbbR})R>HxO0_P55_OA`pZiGJ}SwqZ^@#71B_1R6-t# zZH+ost|@5ZJD^VNggT`nGY~Zc4);Wp)*JQFz7jOYM9p9@suSj@vz>UKKZ8fbJGgZ( znM?OhkoQ|AxwlVC1>xhx1*F}OTSF7C6cKy*8qt?-u>aysLN64v`)n~gPG4hN_7yg# zUu0d{S(YbfvN-lA^CFU%xhIA>yTX~VVJlgM*X8U^G&e}yK=N~u!EDK?EDdhqG~FI9uoJr(@GDRMV>} z**18X)Z=YI2&H1m{o-KMS`rXsAQ3{omIS1E0Nu@B7x;B#P>BRY@%W+@>H@iqRAdHk zF8E__)J7f$`=8e!sG0^iG!e?`CPhUY3jvm254R z2FWC_G$=-zewLw~fUX4D8bhJ|x_BKcVOb>z328}X2vfZvo#W~kP)SN!Fg8}U)R4|t z=8u)zRp*yODG|j#<)he7p3fhnWQJcj3nxc%Ffo^7$4+u0J)JXW&rno!l{7NhC0P#4@Ja zE|W+g$ap3J1E%2LcLIJrLU8Ngk9((J{QAyjqRo#I8O-nqV~S@K6Fd}59u<$1)iPEr z+4)I5pgaeVA3_EaU;aU79QU6#(!xXN`0?XrVm`k=<5C?Mmo<#Q>|uDH zw8lMqD4w~dc;}eooo#`4wxtX$5qOE3fXE88@DaEFbQ^p`hH%^xuXGD0Wq9*M^+3{t z->b#VUc>2oX-tT9VAL^NMy3vAgrX;oG5r~Ra2Vqgd`Y{0Q2KnS<_)D~uTk@ch)dgW zQkr0&GVmWHAhH383{v__okUJa18_|0k8^5&Ml0>;$ms^q%1&-xEyO@b1g~EcEDxW z*Cfqp2%)w4xLc31eE{Y_8NXFg@2!Gn?^kH{)`WfEpa~NsAu@w{G9g6OLlfN)wNyZE z45E`r*&38>(J1v%$F)P9*b$Pn^98A0(H!WC=5Tj3M|z?;+Dn=^)*Ksz>ZB=Uxo*5J zT*UuwMNxDwjSKfPIej;q?AvEJdGmr~6>;Qx5vf3~c@Va0AT_lMWxlFbgXWFe z;%M!|Sf{B>@>tB=(Lb?l+#VJM>|nv@?JN%1!;*k~EDZ=}>Dc`&3yfrWU<^M5$%Ag? z2>KMurHmkkWkIrEk`Chi<$>C-kJUlRG9fW(GmMI&bBs1S(48VH4OVG+kpF++W zK9!Rc@|sVn3+dC2r1}10ukv<6x22JJ;xq>j9pJ=?lVoS-Qdn?_TgAov@BRZG{`nWr zpFS%u=6*^D;<-*P68M}1J}n4WCIm?y5?(|vUrU}uFP^{R)w7qBy?RIJnn-53E@FY} zVrGt5$~2oLOf;QK(4gsz={pI(p5qzSJs6*^fw&lq#!=rNr*>m;=@LSK$$X|cZ)TR) zUgibF;$*gvJ=Q$@tcJJD)mzbESCw2|{`1n+v zF=IwGH#awFR=~i(;A?kxcS#a@^X83GM*@{>gydnHkMbYVxx!3*mkecYj1BXY#w?8; z%Iee+cr5Nq>yAxn*Rno~rr8tVXnR zQlfq?%?OF+z;|Wu2+jDJ2~iGsDTXmhY0vVLlL;@}#D%w6JmoLm@eY;x186>=kqY2t zWIZ{GN1`<&L>(aIKS&_CKTgSl2>Rog&>Qa*dCIs+pQbc3Y{5YD)`T8*MR9tV)ZG)4 zWkXE17CEAzYmG9?Mhg4_@mbcyXIm2|Y5Z354L?WR@U5j={+AG^4gTfGwIV6Y9{Ztn zIJu-H?E9M1-Fkf7tA~2G9-2K>(Cn!WdupKBTLVJBma+p)cpZrR7EM%L32H$IF^wUn zIT}SvP>QUeEt)t(NNk5j%oZezPNI%*pc9&df(*JzS%KzQe^lv1`IzfL$>lZNy`4hg z{dCUW&nD+?F6p=OI98lbTJa?gUMnKy$_)}O6{9S;N#w;_gkQMD-n^UaICX<<*+u-4 zahZ+B^I3KH6w4CQSrmPQIiU&6*d5LEZTncZGlEAY@5)I)9&wSoz@%(I+f1=`$tD(u z{K%#m5&S$QlAlGupQhlasWJRCO~KZ=iEN&uWW~fCjB}ocZGUHaw(d*4D)p(Z_Z8Ku z$Tb10@9R=_ZHi8Gsw$3$Mvg4+`Ds^KmPYSPai$j+DE*U zP8|`*=NCvoH#_iIf%sEGkfkJnmoEh&l<=nHZ|>i?!`hiYG0Sxc^IeuObNCV_TP$S! zkU0bnn1+9!N%-{`hi|uFJUa*BVmJm@!vI|L{c&#NheI1*oH~ug&uAV~oi^b=d=VK( zD(@ApAOYDlPI^4nXf(b5)j00o9=mt%u3|LENH04pyNaKmpU4D+eMAid0|VXAShYuw z9!cvaKl75)mLs&qwYSf3pD~2_(IZ$KZ_3I93sxnMVA`)EXw|+c9olrHRfC4;H>pEw zgSymiR|`Xzb_B(_v+$}fL1!)SIME;9bQAnCgr0AUPllZ&1Nmjx;D2&BqtnG}OFVPU z@XQh8;(yBupX8+g|C%919dVW+<}FP-dGElVe6qmYGZzxiaKTz?!6VdxrP>j&rN^VP6f( z_UNJ7qlZS2!0sxrry80)UsXD*OP|w(eGL({(L~fny}ypsO(bL@Q8-4?0=1$g>R9ct zS)w7D#CDL>ULpk1TFSxBs1JWHbq$rBFz3yw(LBAng&TK|ap6G@ryiUl^X?f=+&)j* z%>oV;U**8{8zf!1N!+E|#1!5k^5R{>FWg~o-fecAD*h)4BxbNUMvy=vGxsQ&vSkmO zV^ertS}J!_Xbt0Ze?0Q^uy#3;-%Ng-zLU)}!ue%dG@GVIv1OKmpJzl$b%Gf_t1<22 zK!+B+_(re(C)2=^Ec2D@3DmR2cl<5P@d_(QKwThb0AkAb|4IUq9Hg5TE)cSk5fqPN zoM-p)eFQbC>e11l7Imu24x&4|R)+{ESsfC~s*qTj2!uaUNHjl4r+6()^JJ2!fI>QT*+aR*Y9;w- zX*uFp8XPZSNl@GuA(Mo*?og>K>C??^aV!dmXGuUjbG*aYxhjRc>^u@;6G%=@<>0}C z96ffF+?*UPT`b^M@l77wyT>Du4LpA?1^s^`0i7JA3-FaYg}#&p=%gfJOD!O>fsb!X z$vbhH*`pUR*J}lHU6wM{dI1xM&Lwcr494`I!RS6y@a;JspYG%E=sXS=gFxI20&#B} zfJf`GxV0XGb8A2B4Ms7t!)ScX#_{C-)AFLQ&b~+c(5;jd{?gU|vmT&(Jbn7Kyl@Z{ z6jY^d-MZrKDx*e?s%mFv_f^-fU8TCfz<~qB&{&Ovf&x3W)@o61531NQCRy-mL^sVl z#x3`Q7 zpBO9^eLYW_;&akM3gU8yj|l44j5=w@sB~LN2J*}{!zM zvZHVrQ^^&oUr$|UOZHVZrC;L5V;5L? z@H9)~(^(jOm|1%hn7&uZgr9d1pLk@uPnj`#5nE=5vTe$K zcFu}p=lodKPua{UTYow<>P+1lawm>J^(r;cZ)u3p03%kfUd6U88_R=mhX!@{D>oRf z+DbuQp7_$6)1yrT8r80BTTzp5zNtt1cKz^in!%Fb?W`ZSpC5x`SQEIPHNg?A4T)e) za3pKRd%+4;g~(W`^+*!u%8)N0NI(#P@*h%?E;Cpz6`Xa5Er(Q3_(F%0$Pje%3Y8)D zIWO|Bz+$nj%}*@uiD1VM@f?Xi%z>ms#K$E|L~!KL5i(AubLPw$E?>UPty{NvaQ}fk z)vG0d3L&JyM*B0F$5QbU|ib<;@)N~9&G|~Z#5RzR-sv;GHg7JuUE*x`5)~qdBEJ-|~z$@AV#m_Dl48G-q)(B5t zHu!=^Tzq+!8C5NzM-9_{9mNWsk+Sb3^X@(gk)^L$h5b0oAUWXm;0t-Ct=5;45t= zAkJ!Xy+C9Hp*7Kj*MQfsM7w38~DYik9qB#B6xI*!+ectbP^9Z?_bhx)iJ zAM+;g=gm+q-#fwC`=`mecbXG|0Pf^*=vF?-H?EL);~KHoZV+?%CXt1=2`{+Az6*ER zbM6j1&fH{cP7#|kudwlC0qc&QXGLl*i{nl(FY*vG_QWwOG@gk+?IP#eE%|p-Zf^Tz z#-&s{b(wWEm$^a9*gShTd*(;8cIvPA3=gDTlXldQ+&Sf7+PGmO+&w+myLT^t{&^D+ z{w;s-;`f8JZKNmJMi|!nhT_8kaAjn<5nTD?Z~1dwQTV^I0QtFCpZf8t6_4_Lu{UX2 z{LD*X`h%7hIdn^SlWh-($@W8)xBO&4W3*MEy;Zn|J=8Rd& zLjUzlcUr;{?=|G?Im?<+KN2)(96sL%Fser|emy7P**OH)c7g;#aA_NeYumB7wGo*> zfJ6e$`hJ)Zbj4fML( zzl2QP?O#Ag1eH$dd#xCCY#0l&C-A%K4)1s^`EQH=dZijQC7SpAO$k??=Mi>h6HC%3 z5p=*6hnS&Q?(dEL{{HN^wwygTHnK2lJZ^C&(v+}7074F`Oaf9CAVbOobR>}64=2$! z8aD)=q~Vy(?oX4>^=Z)NYl7ztBsI^I{h5P_&K*MRDJv3Ak0AN9BgvzL1C5(wV%iQ1tBzO? zYsW}uL&i?-%ktHB7`Jc4-F>E%?rwEgftLwON?+9n^pCRYB z)116}mZP`NbLiFuQi}^nyndC~>o)b%gGXb;zTPC3G7%Dq&3dNp8ZLq9Z98jEe8Vn(uN(jfX7ekD1L>i)g-n|H;{Y78qT{>u8v;j9`L&dOjB z*b`V4oTMdz=t?9YX9kte)gdtwBw`3rN;1;t_#q^gAhaujoYeqve3Ph_OzaN_WB65^6cNlfKn%0Z4CIYLH8MmZ4_7Z-Ey z-aQ^Zd?>YfmS+Q6J->nkgtdg2FcyA7pLY{|+A*ZdDqcN%#hb_P*!IINX8SB-j{7R6 z+b?Cti1}=p^egim<`QHSK|yGFD%Xhf?X z-!g3JKxSu;X2JC!#-168$8mF94w>V2#1fBVwzwa+!Q+HA9w)5uIAMY3NehV#L?G9l zQm`-21a!e(5P^;u4pzRy&U7EG}hDJ?mQom6R8Z@d+)28)l*`f(8nl+|* z^9D3)QJ)RXv(E|BhB|8q%dp3%VQDVal)u6#mqnvamX^OB97gO`w`g0zwv& zGJ$GxCLqZ}l_1{RTLaBLQ8=yz;dRhN$YeldJ&0<6CPvf>TA_+Hq%6K8rAfUhJLbW& zyj9%1nMD5GOmcoZ%gNs^aO_S#M{X8yptz8v>sN`pRz%FTVxq6!A^g%ELNDHBPyTQ0 zI{zCx&faC)satH$zQ#}Kmsx-8A}bH)u{b%0dCKF=3O~S%UGYrZvY$24sXTlmYC5{j zVOslWdGL|a_i|Bq&9e3QI{MSCU2m%EeWMMwRk5?QAtq`+uS$dtD+uEvZ|`m9<&~-Y zUFgZ1^VWPgX9h)fWP}Z+?YDXi(67rMnSuoDWD=03fh%kvbeTZ;K-j-P{ysqzR+OG| z!FQ;E7cPuX{+itw5{KffMHYFI3t`5(}ZLbE$vBIAtWHlEH8#t!aPr#0jw@ZG;2c? ztPK`*1VI1_R!Jlxq@oxtM5Yk?MaUA;KT%O=7Lbe2qAO{sXlo6Ol%;@c>)K{ftX{UpzXD!_{D1B@zh4U8)KA`q`JVsfdi`#9z6JK zH#av?7pV5&=HA=8%s(;}m#`stg!jjFPhY(DnlmYG z3=vnh^O!%R;WEjbPp#ph`hU_6f?*=K9~fLt0y-JUAz6??-%13~S6detAjwF>;s@Xz zHIgol9cXCKj9x}`uo{LP^=PC2HLVTm)1++!>KioV+qQN2 zx^*q;cKwzXgPYLK&VcT2UFhxGg?^*EF>v(v68ideqpx3Qx_Y&zqjNht3^zc3a7!9@ zs!OwW^=aRs37uQj!nKzkMVnes7FvfgQ5)E;%LJ-x<)8`@Q17Z*4$bbWT8XGS8YwII zT88K%lE~m&sjXBUEe6aC`Iy*=4~K^EDtA8jisCtc=M1OroF?n;S&rX5Pui_Q4isM^ z`T7;&uU#YN>J1``Zn6LBUBWN@#@>Q^?7n!Po#*ed{p@dSJ$0K++1J^aafNlqFS6oL z9t)Fmn4>(#jIdOu?@l1(=TNq%q)Yd9;SyS5ccSeM(q39#J%7b8s}bnweI-dHQlRZN zfY?aUiYGqv6yE3Z_nnQrDwx3A0(U-2efvgGH~xfT!79u zL6vWc`n)l!a|2Lc=m&*E;D!@#iUNq+Vv2`NvvPUq+p2XL(B7OW9xGWpO;}|sB&+Nd z6aF9a&N{5hv}^n7boxv=V|S0Ejs+^63Mkzm-Kk&~irtPec7S3aV4~7eDh&#Dcg-_t z!tXn->)snww~!zJ03ZNKL_t(=;;Hxj{`j76dz{C;_ja?{c;Gs(b*{C}wUgOu5)crR z(gDIpNx9DVPhg(Eu-#S{m3OHKVi&OzB4gO~rw|08$Vjgv#%E`v8iQEiqs%gh^_??( z#NOv^O!eHzbdQb1`fg#Y)j~o{XED)s5ffc!v1d&Zd1(bC?M)&nDTxCI_H*QLD#wnc zk)54QVWC0<)ir0ibm?ngT4&>k00^q z(L-5i7H*;s?>?fs_yV(n7c$;HmZ^?Q7(Z$b<4mR!rXRs{>j^CJp2JN0X?P6s#I3&< z&V78b>Ewk?M_;Tv_|#_tcI`Z|Y3qhfTW2iW+F{UHpXa|kdrbyX77DBN82Nm@$N>JK zbLj7HPo6w!a^=dECO`f3Qxg{#m!@%XaZQH}8`kulciwqJPfza+v2VCbmoD!Z7#PS7 zp|Y|vEulvV6S?~R-0BTY@|aai?aOEQc)9cTr%f5|H-NCC&V-lS;8SFbYnCBaDf)~` z(#7hqKDNj8usdpi{ZV}!1dbcXEWj>Z_g^G|M)&KVH^wo;6vs>x6)70tl&yr_ zoH+eZC|WOh`RciDvQ$#uM_d(O++=RAA$l;8M~ zb>+($wNneT6yX!3o)u7tV6>VHk_Sj47`<-*mWczg+czACBt7hs^sr6T$7PEp{cQWt zx?3l@f8B+i16$Cd)7yO1su_Q4_ckrMHsi}~Z}MgL59q4-B}1LRMmJdhwJj1d9w{@7XgX zRMoJ(@;qCrF0tjzRW?;zV?)_>zAw4Pn$uTU)rbTZW>zrwcnLEO6*4I)hj9r<3E#S( zunqh0U9y4Q*@|61k?|5)kv`Q(!?STKJ+5ANMowAa7q^7Gj_ zJS}zRg-UJ_d#!8B#cm6w(?_g?tS!^wr3l_VxAAR5;g#Ktzc%5w*^e8pN%Wwoc$owQTw zYVzC8OuubR@m$Z`pm;e9=Vvg5Fq7#-TPOwCX+E<#zAv4OqnYd#-9kwz96WfK)Fa0v z5oBg&kzbHcX<0F6&z|Mnxf(f8CTayDGf+E&N<6sFqx+9|@<;^!hGMb^{12Zz;Qqt= zk^t`Ce#qtOYs{Urka3Qp2C$eY^H?H`r!m%a3SkBzY@f1}CnwL6G(QgaZ@qEs<%?4< zf9$&WV%ynQb_ZFv_r#{XhwKotZRde)dsjxZv>?(xoL8bPRJ9MgUXFilu{=u~yFvWR zx679=Hz_MCYjWnynI>DeZEe!x%ND{*NGzUzqj~e@Z+-jix9@0bYRUyOJ9g~o^77@& zs`_~W)oy#a*0@#_EEJ}iI41&4kFS}MA53JiJ3&QuSRc{CYX5Mo59nciP!G#PI#{P_ zW1FgjeX1@FNA$5jswZV4``?j(8h@GzsEHs`eP8VtBnHUD)le3SopTIuK4i?SjB(t2 zc|p2Jz7k8v<%v)PglDQ&(4SSQ|1+M|{>01LXR?z>OcxxymVnhxT}C8oV6uNO#`^~{ zV*em%7&mIK7NhrQVzzexBlh*hJh?x%`!#S)F~Bv>9Lr@!=tK?VYr8JA8T=)!yS1WC zn^uZk)8j+hXf~&lc?*VwevQ#QZS1#N5R&FfRK6EcxnqdRc4b_yD-rq51m@b|onwW2 zwmHtCTPnjq7Sdlsx;}21M!4k|;da6l-xJn&XIc}I?t$|(TUvK)N8h%eGuiBI{=Tg% zFIT+ODl7mGM}v7DrHXW3g*Lqc^8+s|BJbJayQ2?98CgAEne z*-(0&HAUB0b?P#!3NN!V?*dD*&$2M1oH<8}n0_FiNr_pE+i{feEr$qOmq^5S+sQkl zIEN}tZAvGbdc;!5n&P&3$95U~4D^gBE0*(+@S=nlSC;X#+>>WTMsoclrE1G(Jzj|= z@50kxE`kvdrf}lat;H*G@|LD?L#ZonAc4Ann*_A$TS?_od65;I)}dAe_)^80RC*7I ziDK0(fmk>rY^IedWc5l`Wi6{xgHT*e>xzf*;*^+PHik1!+&|&M49~8#_)yjE+T=q9 z^&ZZwfE6qV6l*r)m>;m6MS*cF_D^83|1K5<>|%k$Zq;>XBin7^wi@4PDUY(CN61HW zWZ+ja1f|1BB^mtz$_h`B1<0#k9Mk>dm@Y|R3$cD%m>;;6FpJrEX-5%eGL^^?Q;8lu zgYk~jm>MvXLkUO8O3mRw(m_&^_H*EXs1F?G=rK_&P9rxjhtsD|QeIxl*|SxgKd&N# z>({t-^Cow0-r?@8yWG8Vm;3kb@!~ zOk|?dOrl4}5IJ%x;YJe)Gl<4-cmPYhXH&W(m-s31cn=Q4uDd_BT?4S|;*U)yAFMm5 zNx)Nf2-%6+Ku0$;Khb9WoDB_GfRr;ETJ%)`OxzsRMd5#o1b+PS$9m?tc=4j}5Nfu3 z`SNCB=df@T6&*r-`}TdmTeof>e)7pDAN}&nFNvxT^Fql0>g1e&LITQvtZfHZ<2c`h z$O3n~^DMDFq>ojK4mJn$usJA5KpUIGI@lgjV0T0p`&5w?=wf$VA%NeLz@HPq?}E&U#Du5( z#C;B3+QpcJQCRF9%82BF7^n2dIHeyWQohAZ=>2<#V!3w+4*RqilWd07_xc#c4rf^S zAbOZ~;?rL5^H%#NywSc1pM3K^U5#5az_~L<&n<*TEr87kjZMA*1oXkzu2&LW-`Uqe{4}X6a*}Wz3iyTgL2l zq>ot-I(F$u*Oni#Wy&BP?i@tz#!r-PAwdK(m@C-;>&1z`2}mMn)<6jBno_q`=`5=I zUcB}L*!Ui7`jFcAw)~tlfV)RWbM5pDs?YA_R82nF7YjLdAzu=}feWWexll&Z#WU`$?JD<<$-KwYm}|3G6A^|N%`M1BX%~SVIivjLl1cV zB!#Dy5xh8U&I=Jx%QckXT5JSDnh`<2RFB#c1c~$Aok(CDM^=@82 zYtX%APsX}TXW`f_EDYJk;=t`J3E08nzyuZr?qcC<5ZQs)!4S_pi5-owQ-PF|cGV+R zWCK!a64%$W0wpt0c04QBcw&6xnCTbCOy4am4BE~#mlZe;3dBciEWvu?2{)P~Pu)>g z(;4S5m8pKQq$Z?sGP8*N`wp@%NytO{*nc3IBdLcte*7pInQ7$a=5XqCq09^_E6b^_ zIm7w$=eTs?0+%jckdo1rt5>*k?TWl!zIugAS1wb1_8iwQ-r~&3bF7;AJrmuh674*h zu~t)vFrPx`hzSH5L=mVHiMM7Tp$4H$FdI*Zb_A|{0&(mfjBV!tY&r=k$Q!E;URZZf zNI(>Zt=o*js|vHZ?OdYqoOb z$~RnHU8R{^j~+eV_4M?Vj-rnqJ({KJQxy^awV`G8vhIS4G+gJI<9);m^L;}Zl{6fi z6m6{c>tKCAS0RBzI@pQ2z+q7w*2VUyjwAsk6Zm&Y;7_C>`PzoB6>!Zlk$yrWb_^mo z#ff8=_wfv2G5ia!_*FKHit9^$;Uz!woF6H?lTK`QG?ww&jNUaIn3e*l)*$cWQtp+ zkcjLVz1D>8qdL>RXIomd`jSz0`qY%J<3^efj}r#+G_EZ#H-Ey5jUVwsxQlLhm)Z?) zQ!DEO%^GC}N=K0(3_%>V>)++srq6h~trb7Ucjd`JeXeEsbEb4H`DYGETj;DyMI1YS zlGO93Ie4y^WKjgZc$U2v&atcJB0J7rWP8;GHdiVHu)gXh-&fq=`|_KtF22r+lUF5{ z=3it{&ROPVR51HkF*6PpFlk>lQ9F-I0tnuagx{)o=4?ykS9$nXhH9j7oZKLw%nZmX z+Rs0clAOrX-$bkDU4FZ@kzb2!d0B2qZKYWJK9t(hVXDAw*oXv_Z zX2aD(HiTMtlUvY4c=+t2&v7^NV`1b*76xx)VbC_kSv7bUi-HqWQ0@zBjRisREC`Ng zfpA?7N@xV-@%*4&%n#ZvA-A>#?PP9{xF#rj8br1bpoXdrA$KdlJX)-DvK#UQ%2?4N-C-I_o0I;sveD(6sn zJ6~5<*IKnx_+Re~YJ78aa+KF2M~*a^J9lo=@#Dw8;pF7>rr0#rrcIl7oSdAbeZ>9y z_dQkSMfL5e;=kD|Q4dgko}ZrG!+EATqqb>dmZ*Vw;!v!Tbg)X%#!3=_LISpjbtOb5 zVD}G5;2#!-|B472L41vH9~A^JI!T<^hckM|aBSlZn3NXC?#mlUf0#na4_TD_J)5KV z_OiKhIiV@8I3*fmo*;e(0Zr^ubQ!%{6PuKwxCjYrhYr?@bkOnXPaBOEeBAjxKI-&7 zpZ0A|D}yi4nm7=zBnzU8T$x_&$NbxoOuynsc$GaKr$^wJt5+ZJ1suf`wD_#qLdFt? zc?J^ps(Fb&MdL0h)z54%_A6wLz(dGJ`$uCoLzng%E%>U#r*!Mu1=}&MBo}9qdnKQu zGl^U(UB=Z+Pi`d-<#BvRp2dC1)2+?uB&HkDa_Sck?TvNrK>a)b35jaQO z*~>}>Pw?ayc8 zo@}Dxj}x)!06`lP@%?Ta>r##>d2;PbYDMFMs;i=5XbkS&xyq6KTYz&ssf^)ii6gJd z45=#@JAH>yCyK1n!da8rat-RrM3B{|R!T66G^AWrfmaTKse^2zQ}};C0-S&# zdiDD?E_d%g}3=#o07{6f=s*GSVXAtc;m9?>(NZp%GPFgO>&tbgPbjF%bBf@x!91084j>b&c_LkCjZ|rLqmL!Mj229Lhd*QTX4If*NN6 z=g*&S>g($(7^Law(W9Fh8yh$4)2Gjy!-freYrud3@0gmJN=MPs(o(JG&!69yL{M8> z`>IZK-3wb@(Q^5U7cZ3F>wpEW7_1n;=wxlo_G)68sEt*UHdZO3E})I|p@wY0_J558 zUJv~0tU#Qig_VTeVQnlEhhm+m#puMLnC%l6CB_rY$#NP-gV znOPXXf~(<7xHE>JYgYK5v&7}3p%U;jba50CPlf?5;`3!2se->T&Z5IfkU)+?1ofz| zeKbr+tEC_1u>sCGMmS{Y;g)Smz!3-RR+`Y)sS{sxdzZGIKBiTNj~S$`K}K~Y$F5%_ z6bS_qYPsN2~GR|dj+`4*-V|$}{d2Jp~PufC>NqtaP z0;E{yIGoxFO`JTEff*Au$@mSe%5*~97FT$xU8{&sV`M@O(CVi${qEEF0qu{cy1>+O*D z7lrJQHr$H+_Re}N3`&r4k%HazSfC<;*QFx`3K=Mv7ZA^UK?FYAnCr8RMLzKaXivqV zx1Y3L@aP|e*T7)B2Z!P}G?HMwXu?b;N+O81oKBSORH9v`F~MgB>lbe2;O?X3W}M_i zdOk-Frg3mF&3Wzp?LHS#I3hKu08y4>E@4fH$R-Z z`r**YM;3vt+Ih&1ATr)Xi5 zqKi$UF19=M(VsVf?vCwfHRLni>(G>s1~g-ENDpk*8RC1)jwu&|h`Afc^jq#szU)9~ zg$0g<`q<{_VSmCvPDDFo3Wrlu#-y9#k#546Ok>=#jHE}BQ?{6LHfS)(6Fy1V>LEGx ze1sqbeW~{=!*Qy~>U4cv(@gQrvBF`e5d%HD(xLAsv~BYq9ooIcaKkTg4I55hlYyjN zxx}ujDv~eMaQOULQfsO>e4&g(m&!SE?iAV885C9Qq3YBs&KJz(a{f#eW^lP6hD!zW zs6Mrd((+vt)})hhp^(Gpi#TwuShjl}s4nNg*>Y0OR>&kM zvZeAen*;$=i2|_D|8MYpr)6^zX$(STd2COc&y0ZPiYk*97DzLs$wE1=-_nL8nP11 z_^oUtwIwD{Y(kxoe2NX_<}ZZ=w0KpnbO5P?e{Gq5Jqd`b4F1ygStZS=vH*1kQ1^eE z1pZyf+JS12O%PeJ0ky>jyecu|mH7Eeba+vy#gAD=>|bI)k1v`l-BWLWhM&neRz$?H zD0nMNLbtIvWIKyP;#d;AlO-X73{(gakHvO2MKY?FkAilyC}@v_Bmz-Ocuh7^NMWw3 zt{^*-0(P*#Kc0mFJ6RdBmzj2}WKq?=t2a(PeR2KT53g@S@ERC~&){%L1VMUHgd2-3 zUXzKmoWfY^DU7q9N~Gf?Ci%={_3RDoTCH<(O_?gSM9MB+Or z67PPYjOiVSOAmisy87eN#Sdo{9E49$I}fbejgbT(>H(4j+InEy#skMro(%a|iw%o6 zD*X!2o=dew9J}kyoEwbe-2Nr!(7(Dpe*CzJudlDXiZ)Rp2U%NNHxp)ZV$<00VZ+~U z*S_6*j*gD9F7WfuKkrd3o_|$aS6innmJuK9CAHGs4)*57p*w8|)(J+KCWykR7FLN` zSSAm{>VOv32Zv*GNDJFT+SsM)Vs}g_4BHZgE%8jS zLMymGoi$q0rsLF-bLLB-T{0x4N9Y zHB}_aj-Rvasjg;s^*MG|pC{q$1$LgfNc@>gY&~<8&6U^LRC$Z_mA6<|ahtUjwPtRd!DCDRX=GI3u%(L1vkyY(m`8-J@DBmqE5v*$Ad|0}1_K zDbm)T@EcwKG(i8=X%2Jmi1sw>I{V<*)fa~@UO4se#=UQVlwG_Bg~`qvU(E;twWA3& zoJjbHNko`WCemCf+K#iE!dUw$jCY;MRIgZKLl(1i(i+yz+RVB+3f9lw!m6q3SQxpK z83D7IIA#h_P7|5rFr8_3vzcre!$h;0L>W&b%6K|qx|0dkoC#ht$!Yh4%svhv~6@}F|)fY=lm@uK~^5x5ghfvdL)26*)WMuTFj*iaT z8X6k!+1uO8d4aok?~Yg31;osNqPdF7K*QqW8$Vn{GpIj~JI%4!JshjOT2h9wN)mEV zV-nDkBw+s<2^cma0cB~-?~A-@9sFM+fYjlPOc|s&e~REQvVkN~uomkfg||62fSHuA)1+2f|zwJgo)=p z2(7fm`?MJ@xrR7o>tmavk8QS|Qq+Bo#8g9V*{}Z$E{!t*8T3^UGLeJ{PMH=sXPHU) z$Sq43w+uaev&{+3a>QwqF$Pin=%V`>Uv>PD)?a-@|8M?=w^wg=?r|h7*O_AlBU!Nd zTY4LHC*|A~wv?Y|XXSNvR$U>X>H@pZoMT^2HOc2|D*Wp`Lwa+`&xuCw6eHRcsuWlr8@W@Vly=2(?N0!jHq zCu9=2^(dhmQt(@~gZYW6{QO*zO4W4$K?Ldn8zmF?g-wg~cwAzsw0MeX+aeJJ)jNKL z^rI!aa+K~IQ3zJLbks#wb;0!yXdI*)U;pYg|0x0d)%X7wQC}!-Tx_oYxx~Lj1N=<@ z03ZNKL_t)65x*Q5&WrtaWGos*&(GdfJd{3aL6pmM)`rEiJY)k)LpHNAco)k;cd#@p zUP9gv-YKDE1q$SI;(qAP`mJrRNk`&wkjNMsOGpU{35X#zmkl`f@W;NhkCarLyZGST z-3OOmK8)!bh}VEnya$EjD=;Ji|6$_@(v2d_Z~~DgQy6PDm9Z96h_;^21iKg}*v(|T z?R26YrW5Trjqy%1nCLu{NsbC8JH;^3ej3p>lZm#P!uZisi5fYTai)`rG@L}J-grWE z#OZ$`0Yjtl861iCfN;FN4aNQIAV~l&-2-sy=8t1n1rA+&vG3@EU3+hAg;AWk9aLo% zVbgYuoERSQg&kIX9Jo<^LpjjAl-seDgN*XKtg=9)>R)ya{YN+T8>FP92vTUebLURs zDEfx8ld~8cd%Ju0?(gdA>IyTtw=Z72I8wD&pnhaoX~R=0*Ru2C<&RiRG{<(sNUZkh zD{|0YEo}A;$L2pGf!70lV-KOmZldZg8ujZ00SH}xWYPdeCJn?aN%Zv(!d$L_9FE04 zO)U2fz&3dhPRZIhY|%q&TpzlOXi4+lZ_`faGYrNL#%GT$ldJrRy&uMeTb@K*b0qYl zExr|Ij5%$B%L(!Q^yGxH(+L9{b3|LFE)JQxe=29m;QqUg9_7TZkc9g0<(IG zTHugjj%%hVe%Yf5&2q+Ziv@$c`q6oCOWL-3pH8jcrEAA`7-iFywVOwhebSYzQ?{g@ zFy{E_5iHy?nBIoHNUpiY#)=DUt+>ke@~dpC5E6}|)$clcp4~MU6;xkfcg>$;SM_;` zgzEF`s5#G$YEk4p$M)(AY(IOEZD%jBrRoY>s;;u7>KdCXud+!Lek-rDuHpu3gzjH? zn^l$f_^$juE6VP$qUqW>^{rN?y;og4hv4-WZuc^%q_UVoV=^d%DBMHqg6~l zRKmo>JfaiQ3Ez5z(2Xg0E!o7b!b&Os$kt_5+k)C6P@O&h@~DQSb$a|9Cz zS47}fpZ*(Z`l3%?MF@=xwEqp6Kttz|3hIucGCgYZ^!Ry?Hm{C2aCDv-ZQoa>synvm z$xN@6EDsZ#*tV!LfOwV(8*XXEy_02PCxax09V`*qLFf+oSUwjjh#+2(kW{jfC@_m` zU`fa>7KiMX5|XSZh>Rj+H!A{n6RI1-sCI5Rbn(NfvoFq_y>ag5jdKqloO}7<-X{>x zejzdt`wWc0cSt0@nvwVqA4jn6c)|=O5@tA&2$RV~iJF1MG@>k~$@zi_mNS`PJ&Or8 zvn9q`&ysroM9Ub)kDkfc5tE59nJ9bzLk-3gtQ$>$b`<`@$KtOUB?-WDU>Kg?hT_&I zKz<(Q?*5Vh6cX^0uH#laQTI|1fO6bc z^@b`_kRaOjMcjVlKPG|3HGxHo7Bv;7a&Nu$R#SU>`=E#U&vTwLH+~j|vBR)VGGJ8VaI6xCOJAPGBp``E%nBUUm4jnK z7IH{aCWpmUbo8j(AYTiZjom}lM9?TpaLzQu{+GZKuBY1LU7J8 z#yi&vuY*?DuN=t$*S@qK)Rs@%d_v3C&FR&rIhM9t!I~H%&qnF_~>^*ahbrqM`SbmdDW!KqQewob`m)KG%3bmKnDo*SwY(I0A zxIe`e;;O{oUt!zXD{MP+g)L_;%SqqORoB>9b&U;`LhrvNPyJH!FTcUsikqw{zr(8X zd#tEsS2$Ya3?-jk;+XRzvDQkqYWUaHE3o|Eo~X5h!yHdT`2+=b3u^l%&s#I&kzGHeeE zJ-1*defK@F>*$4JM{k@vddmW;V>eMB5JcdMOK(3Z!+7)!#d|;m-h(6X)rgR_g1})> z1Z$5cRCgi~`csH7m`sGxWX2j#Wvt0GB1eejFVp2U!gQ*{IPsk6G}(R{rZ<5QooGUI zqU3w|4jHSQ{s)HR**_GIe!;l)3BsjU08Tx8aqOl9enDCeoqe$v#b7ZD&{i$~C>enC z3TmTt1=+M#W(D+Hm@~zDnj!@~dm%d;)V^0L(+Kr?j9Jtv_R;@&8t^+ZaCCHRDs~TV z*swuZO21)aWAkRGPMzNQ;DZm|YxYL7_dogDCx3hP?Ab{b38=?0<=C*QU@SlQ?yLkf z#`VSV;0VkThstc=&q+Z0k0fxsfdoV#l&+$`KT$W%1R9^J#q${kSRYnoAd}<)m?sUu zD)C!v_722mj|R3$S~w+}V*Z^rgCctH?yx3&tlboyiTw#kab#+BAk#z-|1A%qZn_b4 z(H75&kvN^y!!Ao(?lE@HG{ZI19H*?2IOZ5*FN?UMr(f?6yAG7u1(5+Ls3(GYxkr(R z6f$TaGlxvkLaK-733I%YtQa*6txI+-tkFChMYLzU`lDn)_!CTq)YvZm}7tAxx`ev9wQZtz{{4OW)jl&5}i(qCHk zfTd**B}C9)uEMgihb%66z{1n_m{)k4If4N4ZW5Dojp=FUnR2*-Ne507wL6=L_+tcZ zK1jg&eT1)$r}Tzm`yf1`@wh0x)1YQ`|?SXCVbrFO{|C7usCuR zb3<3LIAW_R3s5qGsj2{Kq7qRtM~nS&x5iB+DW?Nr=f9=eNV z0Xv8^nZu~|?lOqlckseN!W)N9UO0-{KzAP*c%6Ir;@ZO>*WQ6LAiMVu#%n+rzJnw1 z8#0yvjVOYKO(0Zz5@9+M3DZ^(sxy%gT{R|21nW#BNMZs3TG99qjly4ZEdHYNXK*B5 z1H^`~5XSTkmRX4F*J4wcAOJrcyZcBIPzQfOT;j7^i{h`!F50GzG8iTaptZ;XJh5); zfn^6bbXu9PYt0@-3VI>@%Vc|-^f0S;^H-MSS^V41q5teAio?#%&P^9BTGVXDj2Um( z+uOg{yLa!mKmYvm_xktmFX{sCKY8+Gm5K!9x=Hm2vrNF%Lt|AZ85G-2wA>>sPvWY;uh!Sa;`!rxSnSutG+7~m5lP=-oj3@W-FkTK z9L0!5!|3GRijQ^P;|uM-VK{Xt0U7p8z3s!qd+tPDw2oaKkj#=%EZjDn9{PRRS$T`^WUOA24xGF za#c2ise*r_soTcA`+wTQ|NkoL2~PQ0MN#}^*)VF$^{Fiw$@B7E#uhUMN z&wc*(hm3QLW@YpimWFL*Mc59Oiy$AdgXNL&EQ^d|MZ|VihHvLPi8xjYL?~n+h(QvC zkdML=SRR(ZQnA-LT#=7N&0u-xZsvP##<5Qb=E791qf$tf8@M`nVc*eH5`jY(Z=AaM z;@n-xFn&1q@W;8A@b34=tzISy!*}3V{0B!7s4<=p%?X4I9Z%5EXaY5(BtiITL`i*L zK@@&NqwpOXg^%Vq<E*AS{<|x1=;kB!f4h#t6wX5i ze+k(Ns;&Vj1fakJ>((Avwspt6lOq}}bvSog?5(Jy_T_UW_zU|WG3_opMPs=aU3!ah*T)A@%>)94qY}dgeX&9sSX<)r?sA^U~3mf(1@DW`cQuVMuq9gr- z{*nZQETjtf^+8o?=BiV4w&=Dok%LmB4~e4h5X|-t!D7!K9FnzgN-)G`r5-&TTJpC+ zZ_#e#msqbbVe)BzW?b}V%2iLsUA8Ccsyz`GZ15-=flIzIc0$+B)~lC$9CHkC5#K9Q zboh+GDccms91|Q>Ltc#~9$}j2ChV*;g`25p{S@+!xUY|kYy~yI@r1Y`dQ*pJVIPl1vOC?hogCVWE7jTc#9U@b^8%taa(ratSG(B%F?`7nyYI4ABQmh)yaba%ToX z+YaNqIR&>B+gY4^oS#(fpvtuHi$7$jKR-Fkkxh2o&o_Z`VYa50f<)j~ym=JM2lcdV zLna`CV?(XrbyE0m$^>4OX!EK}Q@W)}|Di%to~Ih}>pmmuj@WW`yCZ#Cy(8-becE`PL_EtQcd{}vj_(8_8Y7$yABE*JNe+$#aEJnQ+GdkB6sTPhjULQ zGjRVV7*8P+^$*AQ+erKejKgo>SbPVKmE<7XItNAIGf15D6?hL4178X}z71zg{|Mas zh2h>e1h>AyxPB9ibFTm#yZhtN)lU|!>mdrj?YyP@BPAep22daT$4H1QKoUSJcez`5 zWM^xJcGl*%pM`aeN@`bvzj}*|EDcb{ssG3{?w{SJO`9f3VB^M(O=DwYo9XK6ipk-( zTeWKSu8xk5Ac3YO#U&cAJBq3lA@N7$%ktB+p9xs$iNT72*rw=860j5#yD7sIGdbxY zBqoOSa7fjcB;fFmNI*i7R>bg^bCxd7a+RbqWh;uOb{Pg(9M;4nxgX~H2H>Xy#uV$E2%nL|t=Y{52QCtF7@XHpM;P0M{JjKNP0L z>0LdbC9)9ZG;b{BAcX`Pcl9VIe;3ipnXMzQ>Nx;G2+pE&C`T8k6Z%r_3C?oGBf*{# zbM@%$)SZ?CzNBU6R(#d^E84VeOUL$I=+(0Wa~HXhb2^Y?xg*KSHzPgAfb?7gGV%<` z$TcKA&yX~Md_9gAXmhMki=%luk_47))}n__KjKR7vaIYbOG|IDO!VWI-DP>{U6z;K zV_C&LmRCMtdF4ZvSKen?#T|K)|5KFR`%8$xzf=@=%kHzdT*0D>`z)w-XKPhK;BhmoVd)?tP4y$T1E7M62>JJ5SEZZ z;I_l~Y)r;=$rg5;P@F?w$npBuNuah?=@>d+xu3MnBY0LZnwP?jQ&kI42mgA5Hg&7$ zYwI2xNZ`LM6KHHlp}3|WiNr}GYO{>_?Vuh%CmQlR&4cZewfR70FJY%;$-1!{ zSrxp6)nVKCE_@p+MX(>clkXzqC00emvr1ee z@Lenqh{J7QIA(2~6#{7IhLz~8m$HiDwyDkv>a&B+Uf6f@sXvuF2{P#6Cxf+X&j8$e z1>(^s1g~$x@#-6nM?W#t6(+A^`Uf*cTvc$B!CryO*C9Cf4#uf>FpeVd_w|rG!UVf41I$u~Dm8%QK{zMrVZTzF-qx-8uxB%RTX(@}ojKzw zJ(zIEgV1ZXjJxi@gzIjER@>oSVutexJ?zr8aLiPkM}OafTHn>vXsJ#8bZ?GwU(xhc zSwW5-PB~h*oY28p1bp$Fkb5$WanBlwSB^P;8KZI7X3VgtzH~5ZN$YN((x&AnbZz}P z{n~$lwbnO`9Nd*&?Y^RG`_C{iZo}TgE*viyMd}G%8T8Xd@K+H)h9HDoK?3?5FVNw5 zfkFaVMQRf0&$iP0EG`o=%w3k0-C>E8WA3x0^Z`rC1s<|gpyB~bD+CcJSSnBSYTQ@7 z_H`^Pe^iepD!E5Od_QseuXx15ibst|K)KE!b#SM-26r|vMT;3hNjt}*k( z6=vjIVoJt&CLXPnnSdaH&>d+6Y(0d}`hEDW+QEr)*BXk#^387+P%6_?x7C)Sd_ zNdwMV^P)(cb{m$#3p6Hyzsdv}W)d=b{0wsfxH3V5ij%R&j zA~S53F-nyMSpAL!)B{%a!C!RSi03+v!LG9>_FcTBETbj@M^Q8A?u$!zKU{nI zw_ZU~#}|G+0xn+%;?gHbp6~@+G1#_^H?|#ouK)~q29fFzyH=-Z@q79Wc=CF zr%zK=GLVpj6dq7H+^P3qZan-wx>E<^lxTuwq9#^}!>~#bw$j>)ncM+gY!B(lY{2%g zVk_-f?yJ(t$oP@1MeV333#Kt(Ng0eWZ+a4Q+)xp6y?AO6zlK}($y7RHd8??6g z5U(BP#8d?`{hA-)*PQUZG>V{W_5@#Y#H(~PF1bdkmQE$JXy`;zboxKcBs5xa`TOFo zxQf9qSMgY8FMel^8p+XogGRw$L3*BmKI!=i2^^~@ z0d0Ed4q{9BV-}POIpzV2gbY)rl3@hO9yQz-`h58xA@ux3l0+W;2_8!*HIX}5J$47HBjXi}jc0X4JgdXw zoj3M9J?Z{#AM#UA*3Sp1e}`4sfXoC`zuOxBk#p!j zyNUe*(b3W3Zqp${hBVXH*MGyt+D2>|lj|l!LPF%^@Q*+KxLEb!M9YOL8BqSHGl3H| zIhfBdz$Q)~>%GIV7OkRc64$e96Ek=Q9sPX%T9yyBiI0<0-^ z*#_9<=wN$H8|P#LoHrYw72Si6w43m`>3fV`uEW$aKVt3#F!q`QVb|=5xZz016+6aM zm|>r%kDahx5P@G3iczCLudJ(7pq@i$DEKy(h+c=GY7$tnau)vnF6k!tX4(*V)CI>) zqZt-8kdCHb@pi=uhyt0fGdI9y7P-F>_8mBKG7xV)Ab@BkvZ|bFMNq>oOCLpCjsEIb)Mg6Pl1s zz}6%9Z%)Q%%?_q+PvVD0t0dL!boCpMc*WCS?{jdQ2iJ3Sp~8?_v5xUCgZdvkg8u&@ z0g)Z4>LkU=ZiKp1noux|-;NCBX|e&o?H$R>gJW17rlmNJzSEotn^0Da{f-qOYgrw( znY9sdtPz1eB97IO0`aUFyF-B>hw!-is~`m_8HLBODkP5eVY`@Xw-TH7?pU>P#j35F zgk{@CB+yQ{ZhF*1n6F8+SF!>nJMhF#NJX-E?1e*TpVwgD#Rog_d>3CFy82?@%^Q1h z?c%4PtB*YO3&_CVsUh$;CIHdasT6-zrf^dG7hOM|Qty{U(59gy$WGJ<+6ofzP?3NS zR&718=$&$gyq5sQ``=XM0Z+WTIznl z2mP90JarIJxz5bG>qq!iI~n{VZ@3b2-VyJTQ8?!rVwa_bLyqY5QBLR%qBEz_dPQ+_H(*+ z`HGGmK4LJDR5$xqBF`GGm* zKQOmkkip-XQ}&qIC69?Mc|vUI6J{4F!Flo7CoHJA%be2dEGWIfqS9L|tx`_$vBi&> zE8jzW{SWf%=9c})-0~mm-}BG$=y!O`oYF_k5$|{UF|nr~5p(Ju)AMgJJ@+P4bFMHY z>k{LSRx|cMDPf6)1jMJ~zxfdUo09Nd6~~H$Y5XcTiK#SH)lOk4r>g$nJiJ%Kj-`e? zKVzoy=vN1GB@3v}1RA$W{sjsAcgsQIXH=1ZIvXe&0;h)ZOR5IH?APOIqA4#Et+}$> zl_5PplSH7|c>v4CEn{i$cdQE8#M+xaeH+iN6Hp9zSoBnv?X@vIJuhBF5M0NslzF>^% zsz^36fOqu7y3-g*5@L|crn9G%cN!obd&=j<-wVCpUg-Yfeq$04?VrL9T9Sa54CtZ& z{2B?!OrY^qkbq}B30SuCLcgUoc0=8{ckR9^t5xjK>uUlHOJoi-niT%uYY$adnU^eC z(o|1Ruc=r-zjDROW;Ql9Z)j_4zbza^RqH0-E-Wk*#o;@uY(V%}yp|38_VTIxr0y|J zSgaGa5!w<~$y$xF0Uc}(iflk1Td`l@h%Sytb#XkdFXbRHG$u^fY%}#_(bqQJn9*r^ z*yI@EmS;v_wgcwNv}rx!Z@kyP34J{}5^~gmSyuv?bjh6wS6!HR)0L7iAPPPsX*}~gj-JPUtFq4I1Q42U>h)cGS z@;P%&@Hy##_W^4>)>)z-Je;luo%yQo=X~1!W4>tl3EkR$f%(@h8ur^U001BWNklx6%Cnh9{5s!`6A@Nucl?6h zo!Zd5^Si8AX-Zy^3rBOb$jUP$D_@VSf}v#Q>ylBROIo2e$MbbLQDni2&3X(OZN|pp zADL6~cV?IWKy1YmW|u!PtdCZFH=PWC}hyUgs^a^t0bHhITt=Cud zv^U3l?FQ!MTwrPCFH9-COH8p6#OIbhAhz`H#FqX{Z0V20mOUZ1>=ChL513Ob@KAZ3 zAPW^@1(}pSW>(2#W)(kTcF`kZiXJfIOd)>dkgT3 zOT&NDVS?5t5wKzldrp-je&b%$DmD=!`qwr(m`LZ)3+coy90(Uj^QvfA{nD1dEcE_K zCh%wYZ_5OfpG!-&$qFK8*p~KSy+B{1%;kN{Hp6+)getdu4Z_N5Z}0f_tCr5(kF@B|jSt;MB>AJ*;Mv2Noo zgS>THcP!hv|BeJ2G64yd|Bk(Y%nH1fQ@Su|>o`Vw_S=ZBQw8q&;N9rHlyyWaYDe*$ z($=ZGM*TV^*vo(~bpQIUAEgUO27l4>uabh)GXP39;E7#p5%@i@YweChYlR3zmSES> zpFtlRG0ks|JjAFD+4XZSDk(@Ac7ZwnBh$ElbQ3#=qobq6PJyOkzd)~Ey_$9J-d&o> z_3G8@?LmVEz5nsYAAjKFejOWz#5z`1a!6{!RFD zDm~AD{XMiRdx+K3eSF3N0Hi!xqg~gHT|o$pAf}c zw{&A%MAnh5gJX`!9JCb&PnA2VAQAf$y0UH5C)*0&qjorMwZJq+mwt{t`Qn>T`La_h z+O=&(m(SlrtL+E)X|`jPlO`oI?fGq`H?QVfL97Y2vkiDY$A}kmOsSn?O5H3I>S9c( zn`ugIj0rDi8}n?Y89&YUVxy}mgIaz{P@Q~QD`@{+o zD0xV1iFlnLfFGD!@CWb{lpelboc?l-eo-vinU;gEm z&)<>4@A2QzBHBP?>e&eK@1sBt(uqYmMPi7|kQb>sJl$i!%S20_CXVKDl07E9m26;G zFAe7S&u6j!3YLYfXJy2;*IGkmXONJF8c9V`5)xz~GKYwG)`i6rp*w|9t(_$a2m%lV zRO_~5en$d|*Nz&tY6zXZoq*^b^2Mf|SmN%X6qY3v5|F`NwwtP@9D#=W>gUDx6PC}) zRSi$9+Nw|ds$T#4qOSsV22g)rJ{G}W5P`U=Y67B2EZ(D&KVQG6B`vSzZ>-7#ODVOg z?W5~EgFOGQkbseq(QEytPEJn3KBAeSq2U{Y2M>O$Lx&FU^y<}1n90eyz_Vx1jx-{H z`b8mm<~istS>XL?_3cj+=}*HA_$4P&%y6a8xv5Cq_KOdp41hS;T>Vw+}!!!bSl zaz@~D*n*+szoyl|k7?EaBSz2CW$bBJCf)KR?6M=+v?mJ-%vzVVAFnH6KKFmlf?l{GwDaqwx80m^+&k5cH%^# zJ(;PrYqn0Iudy(M;3u+pB5+i zADCV8cV?A{!2XC?B@ZNG>j~fyb4s2_2qKU~(TD^j5fnXO>ZyB7%D=_L6W5q1vVgR6 zM5k5~nNmW?o&tQgrs2Ex03oXriCVLROTYXoH$*>eY!jhgFE8bwpE(jA$i-u$c~xO7 zi^0Dqf&afVfreU$G9|6F&c3$UOqlGIn(*rXu=gI&QC(T~w?r^GCuO0WKpBu!rBKQ_ z=Y#-}vlCzgLK4BoV6Xv`3>b&$#wH^~&QS>g2FLDpJG66dgF;p5_h0wEDoJ2>Pk%Gr zJ+sy~<#pG4DwRqy_1@Wc@3YT2XT!PwRwyld;%Rv^k(Q$c>?==_meB#-doVA19&4tq zW%Z0rtef+S;{1_dAY`G}r1o!22nzr(N53JiLq*zJhTWK}P`y z@%u$}??lqtegB36FhjsM0>A_3k`)-*L$osk0RT#FBgu9=K^6&A?LBU&a92z~odCd? z4-ivk#{Nr^!twF(@+jUsARxfR+uK_Vnd$Pha*3Qkmhk_djAZh$bn>>QW1nV^iHixYMP@v9E}!zxrtHrW$*uj(*hJCUt9L)w1W^2X_e;3{;4Cdxj>3sj(1axci(N`v-FN;K5 z9!X0@49&}8&{f3IRuNBIg$VfZ?W?U^tT@`r4XmId0qwFxbQS5mS6M`crx`A0197nK z#_DGxxLTXR`O7L!pAY8TrEtz)3FG{g5YAo-<8oaR8+S+In~}%{8KA$H!M0M^F|U2W zi?@Gd;lWclj*sM#0yEs#dEv3!mm!;7u-xK}-7}-;n=_F3eHnxth$QBCI`Idyv0pHT zp=smDUB89Z*FUH1%4aOT_NkO~#QT@kekG6PwO>(Dr+`6a{kJloAb_BvUXg-i@UQ)j zWwqZ@R`U%{U;m1Qm;b`T3x8(8nGacT>OCH-zRjEi^-TZ$WhU)9LFv}ROn&hVR{Z`5 zpEtM2@<~xBrr4@G@>9yC`3=oeC7sSYNj|@^9$*3n01!VX zfxuE&L`w_|LP$_0L|JAL;gZVxw~gZ@we8A^K@&2vfcJoY|MYx-G58zTi!Z)t`rdo* znL0W;c2TKRQVw!(aCl_&=+Qk4MPuFHfB*f|PTA`Ana4(}sCfL;@&n0>HDv9KAaie+ z!UPV4ka|FXfJP3W7s=tAqY>mBi;%SfxhFMp=bv*ToZ>SHjDItYkjDb)<=clo0ewkb z8%5bWQ+Vv7OlE(Y#G{|2GyDBirZy(ZAf6>Ukjmg6qiFq7@9*sV=_ChrvU?hnzuD)b zlwLrh9rf85$p|K%&tUeYBF67dC8bisxCx^e;@z8}t^=@j8G)na0KCk5lk024$^>7| z&ClSQ=cm!Mwt&`WGHIzyL06VYTUi2a%M#EDiKjdc-Lho#%aTC`d=cyg7$neEo{gR zv&Yg+44~=RmnSDI=K1McSu=GjFU;D>#yPLBVfHKXxN+`onKa%!?^QO5gz>yr**I@E zFFm@O)sr@o?^#NsRW|8j$8IeOszksP!PF3t4NO4P45Zo?l4@5>vV(BeOd`c@3h8#! zNU)he*obTbhNUv9e;jtE;du5>AkMl_GKMs<|GOPt7QRJNV zb3-sU?)D#M0KWo-_M_o@vOYlhT_V98JS>sS;3667<;+H5Yi^e_4Hh@$aq_?2IrMKm zM4f;U1d@}JO)D!aO<#E71;GZo`uqEL4G0M6?&jv!!{6UubQJCR$}6upwzakW_;6e4 z&c_y-Sg>O*G0z2(wkK2>J};Pn1c5NJ4u_F_SVLY_1UXgVVe;{G64nM_ zn>d25j@@ubvSrqx0xCY9%;SGbXWpMudF;JEe)bT)$QbD|BjsO*hq{JA71p2=j&i9!-KN8mSS6fVKGSlbW9 zX5@eTy#K_lu7(Uwu+dNw$k0cOqJdS{4DFhyiXWZdP)Q93oJYGP` zz6rR^4aO=ffvi^#P+9X4Wmo?~*>wQ|KT%%ujbs890t6bqmP^P*WewjctNt67)_u#8 z+HY7~^R)zlg$59K@{9rk^N!wR#(`QU|Ly`4UO7(5w!;)Zx07RcK9qMyi!qUAOa=>+ zkO2hVt~cx;&?#3S<+DanNT)%6CKBC#4Z1fYXnivr z{h=8C^!q$i&O;>|hz?BRxhWf2UAmFyXKrJ|?3dXf2GGnFfUt{~=Deb;xe5qun7fND zkG;x*lyc&2vq-YeCrvbr6A50+N#t0Rk}aJ!Vpm>7rqK26i%E4VCfYuq5bGS&7CETR z@)$cL3$LMR*bRtcSZ@_(1EcVAnnH-rlZ055l5AC~1Y^l46jq_QjFf>c3K$qbz#umn z1OEd|K>j^SaPPb%F#IicU?>!mueCH-M#b+OS&G^$ktd9uL$%H5g%PO3=G<8hT4{*W z|9lY8>-Fs*AZ8AW_7USt#+%NcKfg;*P>`q<=x$+Q(Zkx>x~FI)=j7}(xVgFcreV@p z$MDMsXgF*+_7Z^$yvf=dNy5HBk`Jm#J`_y);ZU*;hmw6bl$^uiW|ZQcPux1Fno(U<~uxa+C2uFat}<>dlR%Hfw1H01XaZldL)M6 zqw%PY#-TbAOURJ~G>4K%IZ;BuhGe=VITQNid@3*BW$~p?dFslSlwbdWvYPK%DrBPC zuUJz5HBaC8hNo_P!{P=30AI7z003ewy7~oAUi?G>fzu!I`0=~UK3K=pH!oBA##sph zMOzLsY5l9*_*m&2+G^+zWVq}Mx~ftseE4^j+&vf$ccN$!!_^xNm9hWF1paQaxFcVn z{98#7xDf)EH8dYl(XuZX{afL*>?utq32JQZ5jk4$gnChFpCnyQuKbQ`CCsQO}U!&MP zrR_6RK3{qviP@L(C_Rut>V|Ma7x>|x=E~5~W>~n`;$UZkhuH``2lgb@!<;9>NAVve zQGC93CihlPK)*5v%F@s;PNZ$A*!9PvT^>cNT#@LON6Y8*mBQ(xX#K5~ku+C^(^RS9 z-m+lsEmQGJg^Hh-2l4Yt6~C+s=H4@E?ypwU^jt7a&xxa&=GAKMuL$5?r5`_41aNO% zE?Wyi@iZUGNb^DD=Q(rnVjkx&N6G~8g)1s9UWufpCWB|z1mKeu&nxeLMdai2G4X!{ z^T%y*+u@1j4hPJ3IAHOz8^c~6h3z(9++Q4nX>1St*F_RpT}a^JWP+>W(HxE@v?>O5 zRh;}<995#*>ET$CPGuAOMh0e+eX%cyXJPe4o~iwsr_X=Q(^tM@@wIPRdhJ`DuKR|C zH@;@kjjwpR{%aQ3D(h*%0qALmrJbCWVJbvh8JTia&v(eY>r0t~G z0Rlo2s?pF?9Z1sw6}r6|w0k1a9nR(Q`ecUn>`D)lzT`y~v3mORteNs6&rjdPx*3~! zVdhpg%-+t1S=-q-YdbH^e3_SK>|)2<|DY`S8KoA$O4I`=QcsF~A*uGoB#kU0+By&Q z@JxIMr!Zu}5B4CaugGTkDzhifz=Z@p)OT{etLjh0x zIg=S5CNrfmk%^ZQ$U7~13~9)hMO{$_5Kw?X1pdqm8Zs`56-wsC5VFn(lYKTs+B?Ue zi(|sM1WM1QGV^#2X&W_+o#laBvIBPGM9b!3*xC%k&TJU2=EE6hIfSVycXk$sbK}Vr zTGkZ9nnH9>C7@lBLTgzDZA;UkEJeyVy2?0OmPc}bMJV@HskygGMf37tS}HYYD`nyXKzBG6eN~KHx+Br(jzpn78bkA; zNSY34XxbM=%dU9-vb}^7l@)fDeXwydVe_sSuGJ@T{>oU+Um3%NE1}d}PiO6VHTKay zcowAdh;JXPmyX6|w;#i{+c9L9JHvOmVZOteVK2KedRGX8iiR?3fj8;LCJ=fkgP@~H zs6}Dk;aEZh2po--j38J5z|nX@s^W<_oJe?83NgnE@pvK_^Q=gUw!F@>wO{hog}<=i z!WWcX`+=pk-^<|tRKr)22`sMrmZt>>)PBvPn$95b5sw~!k9kLKGX1S9OnU7M6Lz0u z!pqgsFJn3S0U%|HEts;zl^c`*TQiJ|IYhN@ph68f)z zz~6EV{qM;w{5rwg@%3-ZJ{{ltZ4gl0RHB+#ygriq$5q@rAlQJ0*8QvTBc&wz znM*bh;y#WQlUMQFZ$w$9qc<|(_F6SzRi zFG8!2GS4E+JOh<^GGon?@EM-K=;2AY3`xOma0ZSR#dtbS!^d?7UQSbSvnl&r$-s%L(yWNwD*LR3oxT8Yx;gmvkhXWwQ9UKtOrj zZ!-bKy_9J={=WbM3KPgMFb%a`96x;VlVQ6r06z5NfYy^1@4DbRBL&|A@hOzof!(yDye6dtm;`Xa>LH#ju^D zvE1s8;|^a2OdO6`fhCCtv(X$#CiqAaK~)J-0t%4~Km`7{4mKd4kCAx;&7nj>MQ^0j z)A3mwOaClaVwOBb*`;@Qyyg=YUjB-TYu~f1=37Mqs#DfeHD9st`j;%Y`UMLvea4d) zKjrZ=e`H?uUFIBaWU3JacAa3twkitN?%~z*H>6Oi)rusVR^lX0exu{)|F#6LahC9})&mLPzx`guVlq)l zEUSs@BG8@JaQ|Qst$Q`J?u(HHWZLR{HqH&9yNL;oLo8TO@D!`3y}&c2Ygs$>MP8h~ zkr$_LV&jaL*feu98)t4~+uYZv%w12SV=-ZtSp-_7<2@o7=OGC=3{Sy+L?$E6@^Q8* z#nWjX-mZ`1?lc!ShnYCrPQqqH9=5{^@N}L-h<_zvV^*T_twim&9F=bc0p3dq@+~9K zw+xl{DkA(U2zHo+#v+#_>ta%@#>+nbav5p>1OPk;0!C+#AusUvK)~|vgMcw{EOQS+ zezGbe);x=%*eUJR?aH)9v5YK0OcRigSBwDgPwO1|@Z-xbzchL8z4uJM`|dlFY15{O zf%7I}=5R?#NtfK5T)_sq+t}FjjEIO3OrZOjGiOG%wYB}l5b%`=^a>t4APFshZ3)3; z?&R(ZBXPe!@dw9BYv`nXnZzv(V|dU|Oh=mHmE+3XL&cQ6KZW`4XE60nBE@wvvgNXH z@f4korTCQ4`J<#1lz&i-A1#{Yvjs16HV#43}&4xV#=W$igzWExKhoSNiK}k z3}dK!Z$>x`z|v+2j@E<`DJY;+Eqf+k3lN}d|8|X zfu`~Zepwbmb7d&4D??~qAByhfD0HvKp?fV7_Qk`=6gVFXS7V_r0UF|=J{s!7235S;N_%5L!3|5Ciz?0rl`;?ab_DlsY54Z-JhBoku(TYAi^~AEZi=C{ zMp#BexpYNCeN7f?HwH35-G?#jLU7nQ8rzpgW4ql0Yas#c9L>;|y>QqOfW;zvx@Yw! z;`KBl4yB+v6eG2NDfv{z%iX`&`5S|O$1w&?3FwZJ001BWNklP2L46Yzfyv~$OT;bjK?p0Dw)8e zr#@s(^<8EjxxwVOE>rT_DJJYZ&iKuTnE1j0PQLxIqM>SAY16mL-M{!xFoR}8!D9XS zO`P5A5AUXUg5 zo+*8vXD6>=-Sih(KkY?cnEnDU&Uld*XNo>UTUkAQ8%aJ>aq1t9UH=#yh9)t3WC5cb z$K&oa84sr!xI50l&0YllIk-E{#npZmj@Hw#9Wfr)ky8owUy9nV9JTKX)IQJ1rSe_b z4g>-Og8Y`C@>x!(?fs1Gxy0ovO|Of_0V|D{a8`1tnQZ%r00T4eIZ8*hjTV#x+V zLqlapQ9nOF;SlOQbLPxpt*x!XvZQnrl@MSUh%AzIVuuFoJh}zV5>E>DYDn7aOX?vN z`Fr9RTRMv2qlVDip+A1peR;HIGLODj$gDdlOu81W^!5>c|I-?Z&V4#a)r zP~5Hh5#T(KN#QQMSfJwU>}0-KUIJ?-p<9+mYk3OymTCB{<2 zSaro=q#3#C4%A$k&V|cyT)Y%P?X@(X+2~K7*j~84q{d>qJGR?Kte(oqM$8_LwTj0{GQ+pD?r#V?A6s?#E79CZc(g$cBAVR zWt7tt+#QtVW6qtSLBJm0)K+9v7SGjP+PZu-`I*eai`v0I-5!5&V6h zMdiCnf`SnQRK80kLkRF$iP~p5<3z6>%RG{-3rVpok}jZh%OaU4ka+;ZG3}w8K>KXN^$6t5fs2L>jbRW{N5y+*CJ^{9DH8iz4?844itaT&p-dX)&K%6;!jqz*av3|oV-y*+%grJ zZ-kP&H-d}}8rpy*62<1Zvqay5-fm$NB8m`1_2MA8^Tg>t@#w`r@#N({vFOsrEIj`S zkDvXNN6&uDoRc3g{pj0FIdqefJ=dA=%2`TZKF;LLdzrRo3*WRT+YOywNI^QZVgn+s zJ9+2mX}1&pn}{;Xn?$x3g%w8IM*3#6}@48D$maGnWCg{(lJ*Fa~d_bmu8KXAmD86$kU~Z zDIdR_=SrVv-Hi1-KVuCWr?2D1S({ire>d6D&*JGk7gxurxHwM3)p|Ku9s~ojYr33)Aw^%FXQpw{AR6Z4`e3qg1S%%6- zfWUHs{3-|;{V3x`Z@H=tyllWy-HqFZuXsL|mm+~8Nc3mUZBqS3w)0f(aD zL_AzDNIJDbj}JrN7>vHrc=LBGsSAsnMoeRpa!(%Zay&sR{;ToEF>y9Yc%Mu zN5T8qyuNZQt~LX(u`*-EEI%3>v$=L9ipJVZ)^72mUraB&w}xQ5eKf;&IbycU9@}j$ zxWDXA_l#b6Eb=1dbOvFEqh#<_9gUG7AcB9`;dnxihy<`9@OR1ww97-)aRgV#Ne~FG zj#ofH0K(B&!VgE2dNiBJO<4@h2_R^}lay88;i(gU;IVV>vf$DOEWGp~Ph9vD^Ur?7 z{4*aj`}iN3cH}*#9C(}Y|53xFS57eF<+lhbo=DuJBFT~Oi{LMk!Xg=LxaM@meAL(P z@E_~KX}Os|Yoi)%qu3RPfdGKoQ1o@d@NNd5UCv=ai4(&fF%fr{3}9l3^KORo;k`_F zqQH`GFXy1Ukwi;<7_GHJDhft#l#2d0fPj&y7`vd#zen9JBhtPM453{P3;oBLfY{(% z4X3#}gqD5b=--NkH)GN6iGr#m&aI7SKvxrbbnDLS!dX;KT*<1E=U6j+9cyN;;rYpH zd2Z@UESmB%A^uBnv73jh!)#ogX5;2G6E_J0({Z(*qDVrH6R{bQgPr9B#*SJ@h;IeK zK9#5h0C-oT@?MV0YXvH=m4@RA)N-wq-&1>65aLxKUmN6GNub{{LVOny=r9@eh-@hf zC0XPvvXEc{24*1SAtiAvat0lVWTPucwyiLydi3bge!hD3YSYg?`^-e-1mff4yG)%rwX3(c zcXzc~-6J(MRn8o~bLUQ|Ua$W~((<-8(KV=J5}Ih}B@1@+|&8euEi0vM**~ zeVMc`odtI%QgkVSwBuoR7DY~V3|pGYI;jRfMJQ4=&{G#+UV zI0cWy+Et8T9D${|84i|axLc3F+jvlST4`c;oI^ocs`frl}WTb6UWcx zYVJQ9f__Uh+E-#}-j_hj@mSiq%JHFiuowQ(u=#LtQFs zxBAg9vKOA4R9J6yXT(k?thTx^dg~YlPP3x_^btfJO+j;5)B!}Is*Xf;G^(8igdRyG zROtQf!QTJ`;%JbGLXL{ve*(b<79frS3L&Bf-evZgyUafMKC_Pfkr{_SWb#{gneawE6W=&b$@bTAN{OVO%K$dMxq&8H zxTkAD_=2Q2NSVXk4gz0(e3m_H#=_kcTI<#F^APSJ@fpd$eLI#v9Ze(Fr=Jq^O}o(b z5mQV}mB25$WA-#L;gPN;bbq9qe6B!c&R6GiX|7M8wMJn9Mi6+=DfB-i4Yh-S*o=rg zhoSF}yeaw>{e^6Zo~te&-&XN6;E&Z}gEFT>q#25t`XadVi5yTe>X|96~; zyTc4z9VTIKor9fK7A|%ZrK}U`|14^sRjB0-zrqmYm4N>s6X*;A%L(xk$4Z$O2=b{Q z*l#IeqaP)}BA*EJJmM_#NwO*+*`k0H%R*V0me!suHs%V9An+SZ!216S6A*2tCy{Aa z%D4ehJYKj|s{Vq#ifdP?em7LUx6xuq4?O=bD-wJ7v1iX7lZuK8F>Bc5sy6+JM3veio%V$+Yo zw!QF9b!1jm0W+>-lW{nNlqxkD$HFN%nZU&3=@jozrSOduGSXa~j&tg~7F0gDWRW>h&T~s~3q^L6;j1T@=NQa6=?=je|EjB?1jQ zuJ-=(^5#>X7rtr%7($2E)dWFfGT&V-US1fe9F=Ux~j>$qncl!qL`8z_I800|exGweqzQ1k}}u1RYbBU*=CM=nGwb-f%&7i=*+)KP+VAU`v;R7Un|3fz<3}Hj8SaxtapC=ww9z7)6$HeR~iW zG=%9H!w7a6K<}=m3Mh2zB99YdtZ8Z}Kvx%yUa)}&W)M6yli=SJ{5zP)!z>__*6S*? z^&vFZ1krRg0R7Eyxyg}CsFQ=Jy;sl!vlM>Auy8}PkBCHfCW8C>!)O(9&|A^8y%kC8 z?;~kGUdrrvZ~1RE&Lx1A)1IZgXay@KJ;SP*YgjRT6HBJ-M(y(?PBznVbu=V>1qjIF zEIb@%;$Sr%d&?p`U1kwHW*KUKA^TJiA`-sdj1UhT} z4^$C%YAdaPz$DVGO38GbjA!p4o?pDNJ%=ik6v1jGASgadoncEYJBPNlwRQW~B7ljB z$&48@OfoVuOj1)*O}1>=VzOz|CNXx>boA)aa?;qCF=J#iIV&rxo*Ip2fXExPwzi%& zf`AdejG1oZh_vbxM;UD12X&zr^N*A;@kA=QZ$&WmU=|bhrjxlnhS-(CggiP1&m0#l z)WaF*Hh>Y1!?77DcKX9`wdjwRRSy!}1~YY>HI*?QyfGn!+GW{%ysnV%*Co)hA%@ls zk?3~BpnoG4?ORc_or;G`2?m!=l;H+Zp%)_t>qTN#EaR+M<8DV`0PR7&?$-my6{`HO z%~07{iJxngGLFG@^0tQ0E@m<@aRhee-Ep!XfVXoO#wVMz`mr$_*__3(ZJ8Y1lFaYd zMf1!&e=^2(VclFanrL+=<%T%Yj4akdL@e|f9@8j}p5eU^;z@@uB* zm8pDkJPB@u(^e-E?=ff_B54uBQa&hR2t71J)JBHKn@%t)^9%i)*1levF) zJYUzA^4jW9Yz8Yp(7k&Px|*1Vm{_ZP5-jscHZLH>yr2UFgiK^@kcHaiAOjPSttI|G z2y|{B*BJ!T9VQVtB9a5I9+KB`v$j=An@V0)-=>q7w!D~sYNIXK$OKIO9gogMVMn_U5lozArcxDU0x*f zTBS@Qw0c2>MSpY=pane^V4%#Ll^4CB$@Ll~0cP0MD^yz9flI5VcrO7SwZZ6W)M(`r z=i)i>Js}5)!lV#6%JAN;7%JvjV`JV8N1Oh{hYaH2))4-BD<3{8fje1nGfm#0ypsa& z=kVpZV7|Q^O6#piL!dD*f%c*#Wge_ZJj>){t=R33Cp*Rl2WxYDT?TNXI)fWG(pj~^ zQ!)Xsjlq%$*zNYF*ObAGm~2Pf(QHDhlL@LyCHQD2!BwfKsuNI23Fp5H0&#MQ^RO!M zd=jBm!a0;m@WB*fs|yIQ!rKhP0%V+xY*BeFfemwW<{Ag(mq)BWDKFVWfxt9$7J-hdiz>yJT!*}&LG~EuR z`KADTV?QFzuXfP?QtRjgtfQ0bsWucEW8rQlpI=R8|2j8bUgXHGr<^&tX$;@j<5D*NsHVpmMXqt|M(zGuO?Ou@^h@g2-IQk>$)IJ}9 zbuSYJ_a4T)^!ZedU%|5C3M!_oX3^xWM2veHd&?QPInKvb$UlxV8Ra|;C)@Fiv>1<* z%~Vu=Wzzbo@?D0?Zy9R83hC?#7A_!R1@(SL<^hy|ZvcYMY`{ke`ho$dy~`CKXwM&1 z66Cd%FyF-lI!-6RB9Ca>T;hde$fAP{h#WzRrBX*AJC=%~GP(OVFoFl9p^nCK4>*Yo zJ%%2TgRD!5wag>gJHI_C+@cftEv0#!B5?{FkXQNpZ7}%Xk`MST5GXD#Hr=#olW9~` zlxaXfKv$JY)y>t_Rn8ai^74`$ML+o9gG{~1Xteja=#Ybq$9t{!NhwJsrZf(x7#A!8 ztT6YoW{~3u2G|T_ka<6b4(^4kRe#iOgGu)v#FAJW_RS0B(#k|`ZAjp&J()CBXVH2( zk=8TO=*~u>KOX^?qoF1SY9gUV*&%D|gV5InfEbNe7l^iAMRSANaI=bwS_B4VScVMr zhTyKaB*GPW$l&~uw!#}ha7O^iSX!@-k-K~O+FPP0O$^+PgS$!ab|TzLkT;-sZ|%hZ zxRFZzoAJ0=o8WB!2ur58@#%#EcrOQCT`H~D5@@|1O>3Oki$^8gKL2eHh?TA(kt`0YN+9@XA|a9u zD6XQQ!_kBbR;Fy1}(|BM9A%ad0=9HFHNx0O-}Tt2~y( zSaQFy1Z_jKymmwqRmlMfX)uIeYH~^Q8!ii>26yeoFcT9RtI}!yAd>sH!)UpsFh654 z+Jl2<{!TI0f13%2qrv+5cAT^sOB?c?biTS!z>^bQu^HZt{yk0TZE8XvQxk^tF~MqB zZ;F#_xxOcxw!3+7GYV}@pxoHVAm0hde#HdD_r*PPHHzk{5SsRfq1zXUeqRKwLK4~+ z!~Lp4Mq3K0&6M%s<0+p|$>M@CDyFPwO4jp?a-6DIKkXjJ-C-W1oTuP4vIxuJnRqx& zC)j@(L0-xd(vQlg+~D$AE?GdZuz(8f|KY%I$N@aCd;}O&b^-zAwL#v3QB)A>^)&vL zg=nm^iM7rl(IT&%4Ww8UkZhGtidBJ}ahxJMk^VLlkbQ=vt<-o_)&q^@j7QsvL<~A30Q@INlE|_LzWtpa@r*|1Uc5GK0 z8=FUl3>nhH#l=N-6kWG&ot;*zm8R|X0W+OIK&j+xWBim!^fMd6aC=LJS`22;kVmjG zdxWtbJxSLLW^RrnTNed!a#I|C+@D9wiDEcg3>Wj^avEHULw6~h*6YEv)T!mpUMqaw zV)r8Cow~7d9%@@%kd$}yA}H1epsf$2wLwjbe67%g#l>v&NGm%ac`oD@xx|ee3Bva; zm)J$B(bkQnRTK~1Nrd;u^V#`quD>45i7gsVZi(c~mIyBIh~di4I6gjJ1hMwtl8$qfb?E?ZVSR~=NN3}Ib$)+miUvI zN*R5iMtDNDDuWK zITYvgXnIH4;Wj@2+Xb!+m}idp!cmw+_GiK7G9}-nZ$jVJBHD#2t)pclIYoZ_`0jCP zcBr5xind#EinP}_hPIml+^dOaa*C3;6hX?(tUG@`kqfs{B>)?pGRCBTix{;2ZXvrC z`Y>1wPciLIKNAzGw};UzSVN<*{)!w>N51G+J7{C>s8jOxpC<pGhN^Gsr_a!D|NK(e`zhVn_a%Ig3DE5%A`>@cc0gA`^U6UU;!to_)z#^9lX zGrI`{4~b`f?n32S*0#zP()zYmg#$<>NSZ~(rskQpf2S1ma7WSazyDs^M8)|NPdw2@ z44(J!@aXRB>@4OB^b(EaY^-et=(IZHxJhH5i;ld2pc4t)r4A4F=1 z6|*yK*;(ev&Alo7(ojnC%|hDl6pK}<&;S4+07*naRM2!Sik4b2q{HaA5W9S3DMQaY zw107)V#Y2Aq|0a%%yXTwebfuXy+HV|D9UxqE;HWpv$HP!F$E%YDDnsl-n^RR-3K_ z(snzUx;JC7?$eFlCZ-H9F=6`>7xeF@(o`ENnWnx``0#}l*a*&@b2xvy80$B8_y6F~ z8{_*5$x(k>BRiztYe*$>^dLjRyDMG0J)+27oh+|nJ<{EjuBJ+^V_K3mO*bZ>trZMb z^FU&`^Twkc1caw4#dmXa*IN{N;Q5JNof>!P6|7_#88H z*D}^)I-?z@;XZOIqaEhpVm%ex;rVztDgY4VyI5fW0t7sThA#rS!Uj4(Km>I~?^gnT zClD}7Kt76v)Cda3B(cH>6icZ%h6qOB^(13Qj+X^wappP1TjY^so=dWjY%G5R1Uk8c zIx~UPhnRp;ZTw)3fH0c`B_&-wJv{{o^su$H?PYFmE?P+R{pFWmUN?9KaOZ!r+d!9B1X*o9Hn15kUIksE2v<_Zn(oh?HDZa&(^NLe=^f2XJ( zZV*gBJg3wY7;o;**29OHKf4mCFr$Cl3q(fT^Y=P#KH7WF~@rPDD38XViMSe@X1kp`jgT=TC^n* zL-@qbNsE?NL8+xBxrH~kPvXNP8n`X0xW(rw{+)v0b`+nSNW;%gVFAPX^yJ2#Lb#bK z^Ee6^ca~bjQQ1ti-Y!Aq*q^>8CJZz&VaF0zcrT5Xx-eSn0?`S%sa_=w21;?CvDL)G zOrUeiiU)Q5j=n~nokpGNP<|6I#AhEy%Z+gOa1xuJ@Rv#M?mfE5gtrL%alS*@w>p9g zI}&(dksE6N0TL9tbTOfOS49#lo8ks{C!oD9EX@Xq>4Cq`m>3pJRe(Swx|1R&5G?Bj zv_cLNYi}6Z!>Q~qPm}*v&LbR{p7SINCT}1md_XNo=Kc#4#}1|q*y6HkSbbCSQnCPEx3A7iMJ=Ax|I2=d(Y_e@3 zq1JIUoK_4DdVQ;GAKfN;v5EbEd!c}!x;X#Ko5uaE$J(`Pio zw6~*ZdpnO04`;GxMKCL;xicwYFa^;Acr0%uYi4_JX;&1#G~}bZov27VLjM&WeuIZv z-n^pCg8&2JzPXjb=hr4uHrowf=N>p%4aLdY2G^lONO!g7sSpQV$nfE{DG}^0jo{^y z2-aneqM=vUiZ;0e?giJ1q zo9tmNwzGSqvkYKdN@vVanWW}c94EI#A zaDLQ{s1vCK9f~ICXonP}Hn@63#jv_c0D)319C{?qP$$sQHo{md@GuA%ZKB5Y!1t;; zq@dt~afI$oBzR9efp11L?#*yQc4^RTjzIla?(lw$FeWHibGjt%cw=Cc%?LB2^ zj859SWevzr*OJH$R>mQw1@?z`XUd{G zrNUML0^~+OFhbF~Lr93h5?qVJhB3s%1Zxu$4n04Xws(_gl^YUa;Z;dFMzS(vO^3Wb z70>Kc?b~(*b;cb__qA4dAD;{#Vpk`e31ate005mR+G$MTyP6`F&u}5ie<%*-{jnO>7ptK?us0vTNV6f> z4DE-HQ+J-8?##QVQ)syngT78AkOdHQ+=!ydm;Iu&(QLc1iS`2C}0PavgoSO9@w z1D%V-49AB+;O{M^!dR&n2&{@E=x`Ll`{E@C1nr4o?4EFfc54XQ7Dm7p4c^ZLVP0T~ z$tV*nGM!oQA1jp3p*m&9WULX;inh^)&Y>T^bBP066KHBkGZgt5G1dJ^}M7=>eYp1zM5D=^GcX9B3tg;yqEKC{_lsN@T zZa~TH80YjVpIe6yU->%4Qb0fyhfP#QWs0vyjwi}GgYnUm(YNS9vH+1C zR+xZcPO4&cXybSP^3I|E$V2=Auf6t~=~GWV)uptwv}e04H_@6H79!`VQ7IH%?Z!3Hh`@Yl;h z+`AM)^W|__u4*Jj)m|5jK-k}uoxez8>1zb#&*7t!#T3Na;9$`Ud+UKX+YZFvWgsCQ z{m_gWM5yO5LVV0|vFXmRK_(=G_2;{58HVJr!Rb>ML7Qm7P!kO|Cvfbgcp}FR#@=!O z?pDKya~#V0)Ny>Uq=44d#k8(WrKM6#0gFUm7Dd~#Xtc{BX)TYUwLBJWc_!M``TV>t zhi}&wQoksT6-hpLIS*&7XIC2cr@*ZYC8yCCjMgAWJ>dO*xC>+_Nx_&$ki}@70*1CW zh~_)fnU?E@*|44jkF{oesRx5I`s21W0JE(wIPV(EkQF28n)e9y^IVDBnMM5RLc-2u zDU3jjj}+@@6hYN71PZ1g=LWO=9U4#g69B#OX8QK1!d{lMzeFBJpph!>eA*45w zOrK0mB?+XE&_$&qg6N7$6Hvekgx>7*-aANdq1$$`A|M^or=0)ie!uU{yo7*d-PPaz zpL_RBGBZhLnD;&3d+)jDG>&e9dFvJkLx{pCje~q(=idWx;=m&8`al7Ek;8cMQj0`J zqog6gvnjwo^I3zQZ6c^IB+h@(?qA3rL}1`qLJEG_-5Jvcxna)p-Y7lQ1=h1h!JLLu zhFPzQ^>svmrm0*WZ1*fskJ*`+XVjl^Y(O|QlN!u4XvjYc!jx}anSev)TFrW8_%Z`4 zrzEq*ylEr8sE->I58IgnSdS#JET#ImjM1U#cUB)Wq3U!W49xUptfyv;>Z4IT7aUnj z#0Pp^at>5`}_~o-A6vnsYlfxM! zk=*em1bgu;fFi`FAN<_%q3k%E3Bf6&-+&_Ojr$}Z#O5!r|4(8~Vb&Oy0E3hX&^s(p)tCxVxTYqazSrM75ge;Ji0^Uo{todd}N4aAprz3BupVPz~RcHy&Pw!){rn< z#@In*CHWM(xO2eB4}J>rwkEtgYC3NL*f`6L=E6i@7M>QcoXMn6 zN!mfKBS(&O89jP5QAO(&6%{pzh=_P3GBUDZ$BrG@C?J0#N} z1Ra}Ky@BO#$K#jXo$&J}8Ln)T;rdQFuJ4xP<{kxZG7wPW?tT@@_N!5GK!Yl34j-n_ zqMGsW<**)AqUx{)IFp0#clJb%ra8Rao`jEQOGJmbV)Wo}Y@VHglBHd7aZ_KMThkK< zm-ayMXax$=oUUwYJ3VR-|d4l zQ=fw(%m)D;F4(!q3|uH;4N1QHt62uB(M%LHiS7phzMzQZAbK4ZnqT;$C*B(sg%JP8 z5$w|f89D9Irl2K4<|Lu*+z@yzh=BK;F!)UiNAss!R*%mml6S8T&sX<0(Rh>4Ws)YJef_wzA)ffm! z)kQ^tIWg+;E8ue|RElJoAPe485Ls(=8pB9-=QNvw3u*Xptc)$X4P5HMtGNpfeyU^r zG0PF^R|rG`Hd8`P>}23{7QWrw3GLfF!ZHGiDI>gLzmUdz8bpOY&e>^Bf&yjZI<{G| z?$V=twVDl#Rj)9@y4(ocG6I7Xl&&hk5R(^NTpA)({{kZX1|T9}Fv9(KCJ^HNEP}j> zpp1V3s`zoj^zR!rkcedCVlpqe*#m zJd`0r5#Opaj9y)l%77prS;QFfDCA;uk|wd}LqOSqLuW`hb5Ia60hSH)X0r!ff_fpM zSpv2#<)39LYYIyI4mu56Ho5wO{J*LkTKfnL40Q4K_I61~NN_oK?wrf!&6`~c3k&O! z+ZbsGk<%FY3z*GjHZ*qg=FRC2MNyF^D(up##pdv#&+y?CHNM}RhD)23xV%k?Yr7P< zwp)&C1OmHdxV=xofS`2066FWgs63=W)nP5Fj%ZL#wSQ{D9aWQOnr9lYh1yTA~oI}mNQ*pJ*MLm@l>uNCK*i<6F8C-`N?D^X82;yaNa0( zalx}0k21|Fmf^50S>a^P38f$g0!O)wdc|654%Y;Ms%7McmxoC`qR^&Q5cHZ6O#V5H zWFdS9Fc1j#d z=mC{`9?ahPNcSi}hFbwL-3wVJ;G7!}n#6)L85<^(W&%ujPGAo)$!YQu=!s6gg@|vh z#Ft0Da%^ZEAi$PPhoj6D*x~<|fE>Lk+FYhNQg=3p3tC*CWlWM*%WTosYG4|pb_|!YE+yt;_S9e$itc;(4#F>fvvIh zX(R4V>5Yn4(_tNF045k=pJ0albux!fVPPAa4$HVqSSMt{J~0z`GYgp71-B+=rL(Omq&aF#>dTkn1t5aDhSEfL* z+z9y+BV?Z%k?@fYag+tjR3YYlB_bv#A!@P$QDYStwqOKF#_@%peX6J=MDiS4nRyF9hlC0~2AV81jL;@Rz;N_?Nf$zJbnslqAY%<5+N^>ZbX=LE|nr>*<%!QSOx@()jdZssQB?L}_ z`lujfUK0e2uu6Gz>etP+Yu_oa0L4gMSFiTh!H`cKm6T_kQDX2 zV=jOXfJy50LO5mu9+(OI#)y`(gPijP3kp*46(HTc zE6W5ZGFe7I!3}9xh*QNPFt9A42lGxQLwhO*QBNS%GY5G|-EjF|R~(rDZvoiEMN>49 z*$v?F|LUZ0?ISNQ&&AWz( z`Sa&fY&IL&zKUojGM!ix&r-pGVA`avIJP7iSGH^L?FJbxZB4)x2M8qL<{q96+}=9aeLy=phxVh%S0q&7$&<4wZ*a`L z*j_gRs?SaxhKlsdm6vI_Y97Y?t)bVjhK)VgRIcjh-ldWZjZYl zGRPIfx_RT&(k`ef=?cp!q2Wk1W1@CC7WrBYz=wi>mJjhaVVK}pyY_}i;Z5FnN`}}YO&FP5X$#Hlzy$OO}jYR5} zLN-k--(rS(lL=a89>eDVq)p#n0|Ay%+y?^Ynjr9j4sr7|h$&Ve=6yM$-*V z+mjv-)z=vlh!$#rT}HcovH(47WMz`djmaomrp1kgDqNkV!1ZD^Zn981;#RQ&H;ZMs zH760b7bl`@xeOJXm9Xs50EY~0w{2$|1;GsGzD$7kGpvWH2V%sYkBsnW>H_bkE?7S& z5%@Y&kc_T1r@+92E2>&b%(#A}Gm29AY(bZ#Ca|7<8nzN6W6p8VBqdv|69g!eIckJ$ zPckaj)6_8a1h|HfZJ7~OOZC8}Oe}p#g``jwk~$89pWhG!1(IUuK&~F@I~e|M-Qn-i z6WRn$_Y}2&YGeXJd5D3*p8x_1u`yhmA;f+!^$Es86Z0|>{Ch&~)fqbX97Y*UV<6BK z=^h*m7zi-=X{o-D00KgvAlth;I(v8H#_}G$QRx2+G%ZYcvFIPLmNIQP4g#VCKQE#a zEtHNK|25^%-y$Dz@#00-6)RS_W@cvAd*Ou_>SbnTHi(LhB1O?hb8~a4FVJ}Y{P{js ztMzL!8xXD1xQLJ))=Iux`(*Ab*ga2y%iFa0VY3{Uwk6`qE*XA#AP8tsaZrV-LrPR1 zQowRpiRz;=R2`Kw9zTg=*}qAL?Wi7B(uqGsQ?^_df-M3>@jGeYL4!lWXg^6VP?}4R zp-JM3v;ENB-q?Ce-!4p7ML_#hP{i7%p-t+%6=*tI7Q7! znpY5}mRb2gdp{?<1_+31k2O^*xpBJ0JC-JB_3Plp3p9l@H)zYzptixr4{FA33aCm~`=5+X(?V9nR-U_%w-REtWBbiLT^P7t_o z>=Ue?BLglNxx!}+5O}x-Pn{s(u=bRwbkYw_r>uu%p9U41RVZ7gz@5dk zu*+~~whH%VCgX0g4)v zP_|S9%LWs$hYXBps$4HP)``t$`ZuP{jzDuhszv3oY#jQ`h~4v5C_9mhYW6yml758v z8R0yCTFfixeL0tbg|G8|LcjDTu$(MHHPg_dYe)y%u@qsR#R&rTqbAt*>QG7gL8K;1 zveE(wkO>nureW9QEM%%WBQAOn{QZX_Fo_X(wo&QmE3Chd{AC~@9B;oSTL|omOgd4jOSzqARUODdWSFk8Os6zQc70(2Y zP!I@kUN&8Mtp2h|OTfjDWxp z;vk@c{Zs+oAEQSg(`I@Sjbx1xTbu;9Il*uv5LiSJ0?!2<;5DB>ARL|xBH*?l1nvvk zqy0zmXx6tiVqZ=|`u0NRHOyuPHVW=x8|wxEzTnptyd1d7h`wG+xjA19&-zf6X{U*!I~dTv(sMHv&g# z5bzIxz=^su0T{fVnE(JF07*naR0q3=m@>yH$ni}m*X+~d&e9~@SP+j}vt_t9Q;qW3 zdQ{9Xplq5RWz&o(pJ5O}F9`!Gih1z+bf_rSp>&28w`QnuZ-EMx%aUQ;VgL@Bfs-^; zNaaf{(~RO98DjBJ?Vdj4BpTOQ@KiRi`2kT~lzqm8U>PHmLm{aW4bu*~cQ^yvXGY&i7(Ma%r3UaqB7(DWj>P`TV&txPzk=m%(B=)2xad(NxoYZiJN z0FrQpfk5IzL7;+x0QCiEf|%%dN+tu%M&_AMFPVjKs-9C8SG>4uU(kFanAKcMNLY+6 z@ErWGHXj-B&EVbK1wk!c5aZq$@$QWg)v^I%ThvE%3s;0TcY%LX7x+Bpg3xv@FeSD? z?<{YO9uS6)-%#TClFleQ`Ydp&D{wNM3EMFTup`bCoS*6966k`$sD6zyg|rbYnG+BJ zPTc*AA%4w)Kn?rZT&$kg8G-H%(aN(mnkXJa!W<=A@ZALfa9bSAvH`F8VeniK%I@=6 z)E;dY1|sOwShVWxhNKY+WNs^hY#q@;sSHHD0iFpsrh)4K0qLYM3ke7)Bp{$%W`goF zBjg_&khoZnxY=3;0&(vqAYy79LdHj-^UMNVtKcUs zQ8nF&%IQW_OfxV*C@GiIf*DIE62SV zz|l;mHDx7Qv6#)W&joFAbUZ^LgG)0_;Gyw#}*@4TNVT!g>{6|w;_3-|_r z+h5ubkRDd6m6e3<-Mh#Bp!eQ;uU=MGR{iYk>;}HRz72hRd>W}#s%A7>cInckJ`Q@Q zkO@$_!zD&J2vpzs32#0ZjW0K6;=8RfT-lL?t2+`|bND)ygB&2Bd;ka#ONf{lLJ&7z zl#vj=cIS3lssOu#ukD(cj5?I5mI!>Oi%|Lxf<9A8(2=)ih-(z6AcD4QaFrks_3 z2n5_0(K%Si1j67spBluWa9`Mg^$0>fNkEI9ZIL)42^rf9kVqOsY?v%Xkcj?u5O8Dx z4+DYa90U{}8<4b!KtO}IX>!E9orvhSk`VGr6h^N32TDQhCaRxupFQJy- z{uZB2O-99uJWjV2OCTa}p7=L10SR-+VXQ)v-g|VoyF`UMGm}wSY(n)+J*sEuP(6dr zMpVrZ7Wo;J6-YAxAp{T*gFQw72N5(VN{e;4J4=g-j|{MH%><57tzYXbX|e`2&vYMhzsqB_O$ya%ABqs>Al46|!Q>&_172;qBQfe#Bt?y5KtS=QW&$zy zX9H4tsgrF)8bf2CjeiyKetn>H%R#DF7o>UQIYGelw}Ak+p6r9pzRyD2E(iJY-l)25 z5ePH9FCbYmMG)9U!(qe<`pZi}lm%2&RJc@DRx%(Ur?CM82GpZ@fu22kQZ~Rcfxy5( zrYO2$!-g=s-CimB3ka`FnC#>oaBKAqd^+2irFFlB{BAJ?C`{koY#8!Fc4iplu`ixKmosV$!Y8P zOjKRyiYo`R@x$IuxVS3=KkUoG<^9>Xbto6*$GUQb&!A zz&0mehU$|XoCh%avu-YIXdJl^-1^j|l!hYI}ANLiai?KDDwrhr_ z9Un)>*-E(2A&O`y+?d&X5Ih%z2$?`Qyyi#1bABXz=SLxUb`0wGd=&DxuXcWFqVjXE=eacqc96)_S@udXn8=5P>j?}|<|H$Z0(K~kay zQ%L9!Fo8K5DC@xu>V5k{-YN}GXAa_}APcF6ii5$9u_{r3^WDEiDTofMg=Ya2Cr_Sa zlf%)`(e(xo9$c?$*RE`Gn1G;t`}U0+Hf;Equdi=&i^cMd#AHSo7~_+}#PKG>kDco# zW94+}2WWA5b0V&7m*JNk^4|>t)ko9Jth!ObZ?H-bwm@*fNWz5n;zyMKnkG(Lx_3<4+Q}}Xy#xCtsxLd;~=oo z1mzL~6d&s$|3Hs~IcmhuP$BMJ8RDiSB4R=kqW>Yowl8)#(r0$1*m>S;m88_$SH6QU zSJO<0QP>qbGl1Wp3Doi4OF`fi_ZGgrsv~}xk%X!lMp<@(*PI_eHUhE$9_9ji{W- z&tfpJ5Q0E}9!FUPKhyV3tfW*uU2mqv;Rmb!Ab498wZCa=?oB|w7K{*2fB?p1!R1OmQ0?SkJ{j$Com}@{nR9Cjp zwW+p!bp#dWt<)IJ?l9LD?0AG)M1pD@Zg6tn@cuN3)KOF>O>Shi(dIK!RLmT@V zWP!b*cF#tdXD%|_^U%qyD>B^(2>1|Lr&>%QK0(YgfgGAH_UeT!-#(DLrD56_+R)JF zmN{eB$OPa#3dH$qMwrpoa8eH zw4>s3)Jd?P6u&Qbn8I_@`3J-w1p&c$p0hy6F^z)&EmEX%IeA0`nzd_!$AX)o!<1-v z5<7^>K8rdCJpq~^rp9n6ycdKaV0I)TXCA^%hl`G-0rE=)%3EG1&7Df~_n1Az{sMG3(j2; zn!-#j!f7Z^T3Z$im4hr;Id>3#+-hbH4rw>GdWkZ(RHvlXVF9UxFMYG(pYui1B2N7K#1Q!<}d8oHXo58 z{UMKgO(+NbS?r(*4-BVTsmK~4O(FXEuR$F-3^LCGnBBV|-7OE9ZutxVnB25`&6xoL z0q!+GEFlt{>&^zpI{Eg3(lZSQH=W?0W#*6V%mgHr6H0B{|84pKbbNd9TbCby_|e7J z*Vkb(^Wldd)*Ccv5K|N-yUDg~+cpjl4`+&^*REZAk-tcmy9oslbh$O5EJ7!kv8t0&3jbPavQcK!BvB6|6Z-i@kL5XALV! zI0k(lcJZ@}KqA<7TwL5ajnpB`Ciuv*#;eE_ajV@&6i~_7|F6aG0D=3= zOTTw-5J3ydpwGx#AP1Hi}V#|#vTVg=zw&&1Y z7l{DhM939nBHtgO0mIS3|0RU_{{x``&m%N&s89}~X7ONz1`I)n-?Q*;SBS)z;gCg* z{;z<5QbHYdXbQ!SgFJQ&)Uo3sC%NlZIgBBc?v{^?c3qJ{vjakDh+N3BJi4XV08<89sctI5WUJ28Ik7 zLOMb;G}h3=!=tfIr=#Yu>xBy!%%ZGxjZDDd{|el={yi4GlZ_M0lJN6Z1@8&$;s79m z!0ml%+!3;Y@`D;w98ya_Kv@F>cnOFz9mH@jZ)$Psogpl`g4&~Fh^UsHdyU6SewLGZ zCzX1ZvU;2XVA7xc(5OQ$`2Gc}ZeclI0+WJ(68I(q>t^ZT=ld8M`80s{KraM+7{<#% zEE8xCw-3VLz9}OI1%7IwJ`; zXR2^#wiab`jHsApMma6&)2UZrW@R4Q>5IF6&M4A5gL(o&RLs(&VwR2tWdk>hHMsk+ z2KHSfMZsmTxon72v*=;3gTI#F8S50AN#3mFFjDi3w?=!Q-n-O-7GK@XN0kOx7Q zR}pf2dNPV>QF32ctNCY^%bxH}v9L^v{eb1v6c!r8E`O^-M5bZGhPh^BWVpJyxz#fm z4E5dJ-5()EQIp9;<)8*@)~t!BuCBf;FkcyakJWBPrVzVu?O3&V5H=S_;_5CPE^j4v zkQ~>jB(y_;o4ZuFy_aVKA_!FeMiAh1xZ0UOT??yp!Mm|SAr%LgWg{-EIhwbrkCwS@5%^I8(+=_^hR}y0X!~I} z+!jT{dwvxBKMsTYWFI_|*AS@-GmyEe3v_EUpke;NqExhC5JQW)i})AH;;orwY3HaSnOoZ&HDkz zKVOWUbBw^bJYEK4gH941{68fVs0jj2S#SDXdfYG{6ZoXUew3_Gg#k#Gt={iW_NQb54vMJ8nF$G|W%b))9ACwu?%tGiwW!?g(jrd|qA@s7=c(Q3dw9vFe_+l+n5%pLc!lE5z28$x$ zH#Z95AH|~SQ_axfA7SXcp#Y{;Sx8=!&g><{Y=DgDmCP%cX8{k+1X3l9VIkI~LP^S@ ztMpK;FhIUk581~$BrVnSS zU-vo=FH!;*a$!44^8pgExZkkA|CYE<;Z>RyFkv=1Y)6!^lNjJJ(f}d}2`#EWSD&Eu};*qUNUKS6EZEK4*^4u>%Cs9{>VIR4hwI z)z1DHmd$M@wee{f)@>qW5&aS5*B@a)8~|7rKqaAoA(9w`_I^(x*smAl(Xag%%Rv*I za?`9FGyzGmG_ydD83#?oaKyV6Kd0qUF)bMvH|ua| zYZ9((Q{w724g}YCs00vD)&TC9LJ8Q_x!{Brmi z6sG&Yy-icp3u=U*aWU{;9D{Zrw1>yy4)9zY0`G+#5V9Z^9xwah(e97IxH1EVwHeT^ zO@)@MAU9+}!*=~-JDJHrK*$2bzCg`PfUAy*S%4!15Rk3XL9s#)`DeToBwMIM0?h}! zuR`owYD7;~A#8L4Qr=9%ch&!5)M6&N%OqCBOn{ddt1Wl2`Qt&jNR86dX~M9e)TjAB z0|H{O20c-WDM-G78qx#?#}u%Ue*a0L9?O_~Ga~>T(R0s=!>Pcbbl^Zb@Oc`rI~Dfr zW>^U*wisaDY;uHclL_|CCSaQx*kc9`7+^o31`g8CqbYR3V$_idNCoqpljiqjr~e5M zVC5hqDwb#{((8p@75OaL$x;Xy+X z=-rEffHHPWE!l`kb%4OX4+aV;LrBO5*yJ*sV4es$iOa>jhQy$!5Z|^F%%m>bt}9a) z~n_?;G27sWyR5|pwl!Ly# z_$}E?x=x!m&9$hgh)P0_goK1N3=R%%)W3g!CLeL*#*G&Qdr8(8V7&kl1Z-8TJaqH& zNi3YC!}+xu{Jc$$E8A4Kx=k*C02$0sUqJN-K|nI-^8W=0h%yqq$H5dYN#Km60ls(+ zLkol9?(sMtb#Drfu3l)rC=P8u2!i|K5cn((LBRYDh@KsfCZ;FQ@hvS3TQVWvXkct0 zGJ?@;ppp&^yCJ~4Co~D;x#eVyVX-<)W&Sh}n7}dsd8_~i zj3vaUh>0?)h#rP`uRLhm<|3tCSERdcN`u#qv??A5Ta!MK|!9+!sWD>V3Nn*vw2sBv|Nic>{*C~$kX5_k8haBm-h zfW|=+by7st4*`MNAL9RI5Rf+Q#2PrwCXnv}>BaZMd&5H!=+zkQ{Jhw_K-lyccrFNn z*TQhLT@;3hg-K}DwkZ(1x>0kl?F%zKq045i~bc6WWdAn97Aoc-B zZbAq~3ndU(X@q>a9luyg?Y+`FT8FGzNnT#-NjC1fqibA;@PSA_9gWnpi^qeGwYm2d!IV zBRu#yW;i1!t4JpA@Fr9Y2x##qNs00QflOe6BNN~t;LHk`16k}iBn1yaV(VP!+vOw0 zy#Q&R`9c&hH!=c)OmZUg=#DP_eV}ZSf)V+nP<@wKiPiAH5Y9X`0A~Je<^vvfOrAX1 z^~D!oq*(!1tyWv_rI%i6ker-M<)BC9ayd1J8_$|G%deuMf(?xkRg}MIKHfvLs7ebj z34QQ>f9zZ&!w=il_<0j$0!k+c(5%2dB?p21T9hBq)B*v`uYiEGCjY++1dfZIEi!!O zfKellE0`xUPUm9hY!#wIn!zW)AC22QidMO;5i_6shNIxVs3Y9RhM;+;CtzCM8R~Tz zf@zEiDkdAvvj8glI0wX>GXlI}oc2Hv5CK3T0Dyv=#8w(0Tc$(OC&@@yq(#ShLO?>P=xy5Z2sha)QF zX@vUrMnq6w1p0Ji64T1Kv5-ZNl?-uBhAL(XR59FvOyu_e8JU2xR!_ir=1d_D3=>&@ zKpyc56n;-b*`^DO?wyh1m5WpY0S_)RM_BgRtn36(>mn8*uaU0;pq~z%Rf9{-NG*Y2yOFXM+*9(1hUkm2mCS z2uafnP;Dzf;+9M#Z=yZ`naA*X0Ck-pKx(2X3@FqzKfo*|xr5k4L0}aJfuyC$Ncc#D z_ysD&%u+IHXygj?|6)Jk*=W_D|r1f zsRs#wNS((XlnK;{3rUM24BRiN~9wWBYj_ zCP1QQymp){)QhP}DF;sF;qBpZ2=I9X{^34o=KdrDf}pf|BJ2u z^}ZaDQ<7LF5I#N$S;a;8sr)M6Juyp3K3L-b1O@_S_;hv-emR^Y7{behS&2FrF*WG7 z((JGf0I2IZb(Kx-`yCH&xQYN!gK{jE@I)XG>-my-6;UeO;ae=BFFPmW@BjNBMiu>Y zK*0P!5U5@~7?Hyp!^yH_3@m&W1*SZBxAbP;dxE|n&r$b7#CI&FLg zstq|vT%QWr`V>cLN4YT_$_?rK_NG)JQlQ*qc7%#GkW-*qPtp?PJCMS@)~rp1dQB&& zR(FDWRVFm6IzhD}1M(#)Ncz--1d@)Pt3&LJWW>CyLDUo_VkT)3I!cCNt48CFy+W8c z7mei|KCJAfwc;{9cqb8ePNp(u4xj!O3Wu+mQxO$GKy}}o z02#|vY<>m zV{3u{F@?rL5ik%P+vP*!od=UgXQX;`VL)K^pv<5vQvHgM=w?DjVgX98^Ab1{L1ebV zPNjX}GkxH1qa6CMqqw-(Wyz8yTw40>J=amAMlpk#Zr!@oClH`aATlzNIgM@HurbnR zvsKz`1O!6)i(a+O!sR2F?n^1=yq$|9s|@&Qn;buHP~zt;8eHC?#P!`u+}bVYAh3@> zfHDCJ&2It$aiaHszb7DNtvGAP+&`Ik>nd0eYk-S+D4q}rAGi7l4)j5X_M!0e3qW(P zmT1zUIRbkJLor>3j1`&4S>F{o8;X#R*E{;uR>v zM>E40l5$W*zb-^gB~UK?FcB(Ifs|zp)LfiT{ICV8vj75ob!2zX60(55UODtZ zN4NL~%Uj~5MAV87{q$pHpt1KOaPfQu^@AGW(a6SV9QPQSCOv`Xs#a*BZjDyzHfUvT zhZdUFXqo1Q*7@FOUEq$^d2P@prxn`dv_|XBtmhg7X+m5QHhOFHjS{Kl!i$-n}r|+ zQ}KJ`TxS62d4d2PGiw(N+nMJ9`!|$o`#XIvct{rQ8V+XI-$WyBuj&rlmL8~FnZ`;+mZdsWFVmuWSu*S^ zj7*B!vOF2p%k{9V%tq<@r||u%q1aJ83{!^;LwECY(8Z2KV#r8nBga4=^E#3vCqNzf z2G0s&Uxzws5_I8j!VoqI+DHO|@qbb#Ae!88;8918MN-fZ#I?1VhXXo0A&J7 zrSj3hz`(`<0Rbc?*R-^>^fO^zfRFjGG@h~m)-dKnV~3Vt=BQv?*`>pe>*ctznfC>5 z>{2=uMQK*x?tVG$9h9N$fP&2n)C2+U^u+vM1u;2sUf}-H(EnP9uZ^=r_yTi()6ho# z%O|pMc3l@FM>RySUuy&g1|c}8J;L3d#G;{H@zac9I5MIW=4M1=WV{c0hxs7OuLaEh zO<)Xe3{%(>(1tXFI`nbK!&@Rc-VMRAUht0cf_FzBJQ>;qZ6h9qdsGv+MKwXYs77#$ zst>m)7q~^cz&)xSJi_atZ3h>$32}jYm@7P^8lqkJBWNC6ACLLgNBy=gaF2Gw@h?s| za1hA21Mp@m*FTM@N|*mHz33+LIBLaY{+ zV`KItTWWbXZTAVLf4D zWt-8CmX6RK=`wU#U2C#%MGx6s>h|zijWrV zh1M=EI6AjCus$Dl>K81fMV^G_45$)Hy>gb8kMvX$EZ%>4`OhshdG(@;}LZo*d!h8x4=9>q94}xT7H_|*#pIW@czw7EqX*0I@_;0~&^HM~ddSc#Hy*G2qc`r{5PTV>o4i{Zu;ar*dIG z-2*t?7xpvH!hUuDaBiRwgMssdfpbIZ4!ZCBAQpBypBn@_dtN`_%u}$R>Ir*EH`q(M z!hWg?Y$X}6krQ2s0k)E4LBF5mpeeKCSqvX0BYh%1P{y(ZQQDgRjcbE|lpb5V{B+;K z{>L%_95FMG;Rk_0^(Q)D-w5oHbE& z9>;6=aT6emmDcqoo&mLJq4$A74Yx5~f+CPnMZO7Dnx!5(X?q(m&J<~yH1=q(Y3I! zkWocxXe=@^vQbu67G(nUzWVB`ES?5gxbeKu7%% z>&txHywD9d&-K8~v)yt1bT?c%S%@Ex<>C87UGUA`E;zR}2Pf8M;lQ$V?EN$qJ3mOp zs#!Xe?0*YDC9Gr}DNG297Y>t;0C4%Ad$DCsChi_hXC^NqXI=zCky1&@n$A)X0RTmEJI*GWKNh2EJ7d}ajpK8Hc3X!yIh;Ks(0 zz^ZK62n6UcA_z!=E&MBt+_0Vnm6r6dEK6o3A{#TZH^Z_d3uP;N;^yiB_+iCxteQ9! zul5;?Y;Aw2qDMd(H3o{vG0?_NKyvH^Xqn^#na7KEm6AcT8gl>=AdqGPqSru-m<2dN zKuw?!{TiZzhrrLHC;Yv8Ai%o^+WQtE$R`VGc~_K|TOHbIqP)I9braKqjnXR1|EXj4 z?AflKo}Tsk_wQfN-`~H1ySqENj5W&7&!5x*r1W^2g-V&kl6tezHyPu_~e*@JHrcZ{dc4ptD~G?An<9mn^7fKAimfpgigkxYh! zvBP@-qW=T2rIJ}#NSdL<#L6@0q33p&h>}=`~bFVw-W%IrNw(F?6i=x zg}rtRen2=M!=F#Vvjp~Y&(oQ}VHi8pV|ez^AGpvLINuYtGhJall?_Wt8mdp4U@f7) zpZ61ZhQPA~Zt^17KMJ2AC;0!$=HXXC;6XDJA_y2@-J?U0^*RHaq{vs`(~bb3CxU!>AS|#uJlpCpbkKNS#pKKe z$)Ffl*%!(}V?^ob|5G6F(n~M7zVXHzu2ZH=aqZi;uj{yR7q(a;SMC^%>)0l8Uul;B&R=ksd%X?Dr$-fq*0v5Sc=M zeI`(|WWy+o(va}Hr3?`%Q-ts0IP=B95OFX?xM_+b96LgRnIfF2=3RPPh6}BVyhCT*U52oc@jSVH~~8r#$of^IINiwgH^>^T>6R+)({g&q#5%~6qONqKVa{M zH}Uzx7~qR6rkKh-oVAYknb-L#14@SFgaMWkGpwgGU_T=){O5&*pDq3a0Tu&g)s?}D&mlRIBgXqdU7u;Gq8207q%!IzKEWnuw5D1uHTV`fqU0yRR%gv}-VMOIhBPv!JQM%fQ z^0j)Dt61jLDf+cp^2mg zofdX!IYyGf?LOk(U6h2tI-q{Zj zL4YeE(mGfzfPm?5sT}%i$LZ6jU3>KC;dq}12z^^e5H#x^8bX|-BS z^8yX--n~0lxR|RY%6aT8v9@Y7Qas1z%jaxhF8+?bk&;6se1XKY}1Tz}YHd@J472_6u1C zI+}<=kQmuXJ*rA{sHO$vgaP&vGb}V&e6A~wuFion$`ye=Z4mC!8gmM@u)o^_<>S&} z8D|2<>tLH;MDj#`R+cTsy4A^&`o+epH96 zN3^(dSc}UCwfOOK4Zhv0!oPN@@bz{DzSyL|skL$(UYdYCAID?sq8MzP7melb$6)pB zOjO-2kpy!H@7k?J- zE%XDWpOHX?LQksQeb zK!7dgD@?fei4NAyMOgPrd&D$x!B-!4gLN5s5L4NRg8&DN`!fOF7vLcU1j}-hquf-r z!hp(^22`vvpmLRtsg_nQ*P~)p7VfPs!nIZXaQ?%W@!_i@F{slJnB!i6DtZj!BVUF* zZZuOT)x=QmfP;WavhdR!fRst(xGfH$IbtGHI8_pukm6{>iwJZtLXc-ygaziJUF!rK z7nDP3!|Po8tddfY{WbvqzpZj;U5A*mT)1$7nad<4CArFEvU=n#5D*a1pk2Fm4FduK z8ujVZr@5dg`n)hD#|(zW@qa;Ah`kLzeRm8Cr=;QBIwgMG7SE)muWeT{NonRXwpS&9 zfT9i%ps8UEst+q+`CEa2n1M(X9cv5>(e8~K&vPRjX&HyUmkcW{VziSzu7l;c9@Qrd zs6Jst^@&tiPNu_pG848_onSeg1mUcGpeT)z%s@F`#2qJlT5ffR*lN(g;?B6ijP!z$c7rpNW8$+&hzi(igtaP_bTmk(<2Bb9{qsBm$o3jf-w!j~JB zIJG(nhnB=+&quM?B7ne>_oA`!)4l+%!cHYbVUkAp#5np$w{QJ`RdWk*?`Rr8pmxMr z8z&H~KCVM0v3pKtu|_y9^Z_nB3(x{D?$FuJUM$HxS8EX$A17I`#fC5~Y)A7SXC5G$T;Nr(QsQgq3%Tn?pt{VhI0AOGu1c87UQjlQT zzzWHECH+2{Ge}1HDm5xsC8Km@7hGP}4<{Ck!u(ezp}_PUvQtU=;YG+IUxgx$D5Y;e z9>e{F8T%(@ER@j{<0P6z0uYEpXwqRc0)gl^ppKaUZQN)?20nxKo`r~NUx-XSCWh-b-+be`ZQC~2Zr!@oqild=rQ_n_8ujkoo7qi% z^UXKe7K^1!xPZC&yt6LG2Y>9h@&34M99}NNk2@0Z)0QMADShKU5a5|W`QHKrY7G>L zO}QG@m1472w7TTGbt{F?xD**Ie8`J9{`9pD))EtJr&3`*oeBHdEZEL?~RXoX%N@04FbKr5f#!1J65FQ`sqwuIjF#m zBWm0@ro}JEw77aig=ZS}acPoyug@No$1UqA8qg3ZW_d^C^5ZMFo7(1=hnlF4J71gzc0X)>B4U zOR``)T?m|g3U=B_vzHE~j~-5#kAPciaQSJ)`IUx!>>e%sdl9m+rp%{$Bc@eee6sOa_{SnR~wH+eGUmapT7I8a8a0SRC#Z8yh=ZrBdAzP>+jYk^+fRSP}Teo?yiPV2V3& zCb)ai2#=yoP<@G;$x)kVL$VPXQ;g7@V!)UHpB^?tM>x-1atia@A@P*+j}brJk^VyM`2{!mxU1#Sf6=H*4OGX68(d-G2i z_4+F~FwY7tyXQi_VG|tjpf0e2qF@pfg-%cw&t*U- zl~`CJWsgOjp0fc>7mp4T5HJ^S_R*QGqw*C7eDclupA9*2h>2x>@_$vmz*BAfzdr!O{ zVT^`yPdv=BKwY*OnljDMm}QRoEKAg8S)ex40yP<1{loNH%34KuqA;1!I(+ zHbCytiAXy%76}JOBlg=dIQ``?{J75$P1Sk4kR~tzJ}FG^9dXd61IZ`Xpz!2msEh2N z&a#6l%MprvCn!nkDwzvqnLm_e3!o|sW5E->*rg){0nP+8MceT)-%Rkf`H zU@f0IAkaC%3-_M}3@5a&(FFlw2J}32581H-atBFLkv3>LX@RB~53F_{gg#_gH`)-Z zW-h|AsbN^=5`mSoKgQD8pJ9&e4ose~0p>%(VL4vJ3N#bPV!NpT6f~JU zlBA{xSWVo3*ZydYgWnz%rryPM0h+ELQbfcdF(=VE^tl3o;^Jbx($Z4K22?7QenLWm z-rTu!yLotcu;TFG!GnAK;~)R%Gkf-Irgb$oHh%qt93<8S6oL;-Wg5QTIT1H5O~Ks@ zhMWnAAi$Ww(?Gxi@=S~W4hTs1)JpwlblNnj7)ga(q43KVg-{p^A0VhG=R%E?1WCqpJX0?ep;uvLJ6Br@ca}{$zN3#0#(@psLK}s ztTotn~q8E{vCtgc^z-O z(G#mfhM+#*2Xz_7sL3)#U6vJ^GHlS8X@v#?1pa}KS$%l{t-BRXe!#<7-{5wK|(t*AFLF7SI~+RpShtr z#RVO#@aqU=t{ap^bD=KvXTKLkSum7kAyAeR5b)l8cG?#^b#yv*7Ci?bpxb4{T1=XfoMKXp!X`(D><}+fnF(fZ4AE0aFG7>I@q;G2C|6q*F~mkZ^=V z-FDIz?I#={J3d92BM@aEK^BsP1_*uy2=EX*nsp5|2Ibch~_}qX<}y*#M)FB=Kw& z_7~8KOAZE{4N%QsBdZ~pjpWYk(!*Pv5U|)Ht@r+aJ{BfDBn;j zlq`?xJ#RO$F0gawPW|YpXuavvr|U0Xyttd8p<$09Lx%Kv=bd-@7#JAP&{)qKH*R>- zf-&I-m-q;YD>i}l_J`QHbTn>6&%m7vMtB@;f*Jt?n0-VNbqP^TzzD6WKOzX0fbnrD)YZg43l2q z>V+_<6_16tg#-ZDePWDc98`_NA6TI!*A4BNlc36Xfx2Wql%)Ysl`ep?bRm=_3k4=1 zf`BLsiQ0cx9XtP*LEtIhvp9c1fIzhk)^19yU^Y}Vbe2o=1p)&V8WA`UNIaIFkT<&k z0iC%PGa$>HFSt*ggtngv1k9cQ0rAAo6Esc!(vX-nOa9V%05N_o6VL?^4k-M;!$F`u z(hlt>Y|(Jm5qUpM#o#~m!JEDQj0Kau5I!RaYn%hI!8sV4T|%+Rbtxj;!Vxh$0vo;d zV2#&DnD4j~Q%yF*hISke+rSFHrnK8YBMH&483zH*2B+S(SO zJydki)XoP8Qc$Yc71Z9=uJ>F50PPvLckdpn4eZ^!m-Y*EcXM;=Hfq$Uo`!~oea4L& zNAm)`qobq8DFwrq&P+hOuTa$Dt8G(}b$BxFMw#GIlrgGfOi&YNjJkO85E4PaSO)}X zrvL+iEDNYIE%;Rg0nMq@<+3SLm8)EA|8)Zo!c+Jn;70z3}d!ei%5YKZXx@8GF|oqqf)|wb>j1s1DGW zWroH~Gc>TP1p|TlP9X453Iefas620iqLaqRI%0@~A12`Zx8rc(oAEfXYYfUVKLOZI zVLo0jN`}m4M9vxGz3VB6{?-;UHt0p(JagEvm#Q=v%2EN$N~qm)A=G6OjbE7N)h7GS zT|dv-`SZUSU33{q>jV<1h)p(=^i@V|&>!m3xlrUgL&m&{_tQprMbE^6bq46Gr-#vh9)cClL0IABk2O;RvC%mMTc$6>HkU=%>b3-1Jyu|& z$11F!y8#hiyRgCYBP?>+0}snBuo}G<6Nj#aA)Wdq6U1!zY~&6YkJ`z?eC#fa=ogAP zGdBtaVUfX#o5WZO6hYvCP!H(d($J#!T-`>G9<4WWMbU{E2 z9Uq}iiT$Yn(AhrNtZNXEUWKBYBF_wRw))Qs^886q6xl;nG9BtN4}c1<74xC4@PV2Y zaz!bJg8)nT>@+VVZ86#FBy#Oz>1kdH5bSGGxkvNop9BH++H$)33*S>PKne4TKjhZ} zQCGeWb6iH?%{Tsvw_bl0zO(wHrgR}1a!L0$LIVLnwh2rA4VlCQ%$XEK(MXa|CpqXr zvIXuYnB!)Q87j{iqbSkglqLy_wMWsZ%8#d2ds!L?LspRGChcfkZCAOHpeRzUh>bX+v&wh@t*nq)8S z-l5Q(-o;5_A!+|RAn+s;(1J?G30rg=cZA}YJrpNscEAkn@jh7QI))nX;WW|);Uoh& z1z_#85Nw^%uyxi7Y?-?b8-4a7c*Y*gob*2I zjdw8%3ZoGlVLWOFOh)g9@u=M}9JLchqjoU1Fm}j7Y*_o1aJVJw6NNA+rU3!9&>kNo zfWY%HAJF-B?b^^(;?4Gu^w!L3}{q;Wj-SmkK zyrfhp&k5+Kfki6%Dby;yUjRU9_7Ut~Hw=#x9Z+@N7}e1xtW~rw-W2soyhEs&wTbeT zlkMqzw}33e0*Xv?O{jEyghY*ASnAy+5Om$`qiaOQS%6Zo9hPUCq9fZ7@?2xc3d|ud zv|+_vRp~6Cd>%_uxXO#K>I#3MdnXvG3aOOCHGFoJoczUvu3-X|x=cWm>^00llI))r z8h{Z08^i?sIU^ttApN}D5ArfE;MPi{o?DE;Z@-AQ`~D3UWB!DK^Rv;MOOg)L~;O zQridK4I~-765B2RFDCo{1R&Ub4gx5nE~h0x*<#^J41p$(=RjHD1VtVJfkeLSeA@pd zA1f&cWYa!@Nx)@0$fGS72((99FgH-~bS|<0EeL2C!GFXAo(c+LtLPLcj@dzR+zK71 zC*jIZ9r;##l?~*a(aq?2RKoCUGV} zt903WSTpb_xGAd@YPEW_00PfnJwPf6eg669dN05HvL4w-*xK6ahlYlB8#!uZ&*8&| z_Zl^7RG$F@1~5m_hWduh!Vk}=kk|pzp_W4?SOMI;mVz(08sc`$BvhR@!Q&`eK5xv} z0IvxcqAA%>00C3Ba6;CU}r& zj5~40xDjK5tLIHna>@WXN5>=m`_V}JdK99+7>$!34#K4$eIaYQ$r>gUY6X;ZdSV|Q zGT%}`MGjnO!^wY!;X#r=tD~rk1DU;osx(jo0^FdD+B-Q2X#4Je!@)pc5lj9I0N8aY z)MZOJE1=p_*<3zY$o3*gHlAr%Z)X7L%9dJO#AD4tAj1yIOVlQ6ind5I$XF{VPxM+Q zpmhh;%0;44TxSrl`Hw(AEEdybvFwN~)X{D@v)vB8XtUXC?;+H|2W##9v4%jvnS;P) z2?%T>Nyu#pwsx*GCG4qK8VQA`sAf?rt)fOalU6e)*-| z!Gj0&$BY@HH-7wh<|s7c6^FZ*mzCQKYt#fsQ7ZGP&;dE*e0UBu z4@>dGhf`5}l9tPu;bD{s9>y5sajYTg5{%H0WQe9DL$suDOKCPQkS+|2Wtu@j9YO*K zkeM6{a*ZV0;HNSHUE0f+luIXgC5t?AETG7-ge=zv%0dUIif2Go>H&3yC&1b_{k4Tx zI$>)DxP;_OAI2^;{3qp~{~id4vJ)>bi$En5pXq*SFjPegfLoi8c`+Ol$Gna=UjGA3 z$G(89pPkWI;Dm+@BQ$3b8!*+dfaXj~G-X(#A;SuFm(B4o*%O>o~oHj<=Npr}LTk#c>kyd<&OH&ijNeLwZ|VS+fqIg!qI}DwV2M7@QEc1&VH>d3MohUIM@)9&tO%aV7 zxzQ4LWv(5wX;7EV1S-9SQAy9t=Qx$!fvsnG!z@g>e%&DF|pS8vcI*0)iaGgOa|$ z4$3(*V2pr#lk(?6l}*m8Bx_RQr$Y}NcIdvac}+Cpds?>;t1DQssbN*J723|2Kz5P} z!+a==4{AvZ!%`+d17kGM#jPO7Rg~FF{|8Kf`xVjE8Xd<>*>IZj*i>Bq(F;Rg)x%$U zy?{C9Q?Yc457tca#Tt7*tal1T#Iz7>ny~o{A~EK!E<{&6~SXf!M&npeM;ehK7bz z6Xhh^1*@vI{+2n17pzX73 zu%ur}ayjm#F2$q?eVJE~ z(dZXZaM1-#IS#15Y>N6!0s%9$T((5hWorQh%ozwgN-{=Of)VatGQ#a>V_d&rgt9Xe zk#~F?GJhC_lz)y!?B`Su7>m=Nnxjf^4yF1K0|EXKVv>+tm@3cBIERZr`9ghdgJ7dT ziH#CJ`TuhlP`1G3nLwcP^9!GU5GWTxAe0AtOaMU4iBCn-?@OKU1r_t2((YLh3&z}p zPn>&sdR>4SA7)!Zon`~sd9g5T0TqEjbeI4Qs6|>panu}$ znv0#Dqu5?!1OnS#mSCF;2Z5b#OR>{^ z1$Mcv#BR6c3~=^6OnAjj2ZfC*RIw3`s=UtgM)*+&6qKx`?P7(dYYP=_8vBD*b763 z3?VkqyS=^rpzzBP+C_Qu2X_<|eBu+oL*!m-T)$|GI~NUcKgJMMu?Bd2$pE$ShNw#v z*g%?r#z%;QfQhhpo-dzQWSc?piy+Xs3xW^BFlwA<3{|cPlsVJ^L~e~vK#>R3rCv~% z(8RlrZ zY=wr)HmJYMrJx#-3B(&pK)?_sr^X}u$Y`W~KLYVzjl_k0BXNAsNSxX440&CSc7RY| z0o*D=3j(Q$k%&9t3*6lVWiizRXbPB;KUqQxR?wYl0$N8;p++DD21)mjPAATD4FVEI zAeDwRg=6|NflwFDfhx~lSgC0Zb&d^?O;;|5>g*$sN<@-rc(%ed(+09=bLQkJKThUw zq7=5u zW3>bXHcCKXtIHw=0GtgF6Ig;>9?P)HZ5d|(j0tcyAU=NIV+G!K4`;H`j`>?KW1>5< zlXG;}Nis&Ok~)XB0~qjJIfwqzjed~a++01{E%4~kBYhhi8~wn*z-}W)j_f&f=+K_z zBjn}f#T-Ses;a_;1v7G?P%iv}$WfG2{)g8yaQOY{C^~I}+fjzN7j1-xBnMqGWb*>G z2?nSam_ReD4e)_6O8nCJ*B~IR14s(NY=5gU6gd+iqpqOBsX)m*sHwl7wRLK>ere|p zX98V-KxaVE)CanVr+|Po=|3Uw2y+Eup&9=ocvlh)iUqM50jdMgRZbv4SK+>_%pWoW zyz9$wJ#iI`2EBj*Z~g&R<6cJI**R#*osN2T^0z`mnl&0yEm4=oSwMA)IjRzjaX-!g zcVmrkE6Na8&l#XNavU;$8i~Y%!x8=EaQytqVEnXuC@%cq52&m7{s43W0cb%WC*vGq zkN5(&IS43=7C==Tq?Ln8I>|xO7Ezs+N~w{X^ttDh5p)KDatSLa*FNU55T7TYoe8Sq zSy0gQdhTStWsM5Hn!!h5FicYq&;GV{6T#N#h_r?51dpdP0Rn-^ zza9jh@D$S45~$GJbi@pbOFr1;X~1d$!~gys)=Uq^a_e~rxAkHGu*Sg;>l_2H!8r(< zoP)7RkcHUH!1RUK;S$Pb2eylBfWW|QsZR3efUp#MDBPA|*R18(GIu2coqTZX3N<(Y zDzeHK4;uk^n>cg~?*-HshQrnha|Hnwv(Jw2Vd;C=GRC;Cg5F6~Bpht18+ z*^-$lQ>KuIkpAskw_Q{!RfkY5SF!(N>_`a`h*TXNfVvs~+&&v=M`*&-1h-?1aWB@8 zNkX)9xGvs+7l>2DnE_MgAH;VKn>;%RXh!C>!(@EltTFSWrv)C0!l_V~&f|%{OmO7X z0Dx465!yXFCtV#YhhSac=qjY`pk0P86X36vX!*k6*)N4Sqo63GN#Q^!%eBd0Rvsus z0OaMqkd^sDR=NO+vMq=RF~J+Jy@)|?zl;x7j)SsfE~=9)P@igr`V;~I3)H5Xp*qbJ z)hT9p5O0jTmkb$@Uq5GniZc^YaBM6t9~y!9Z-?UI{$V)t$sh&-8PVIA9R$4xX!8)S z3DBX5w}(=(m~MBjXCmf@P_&nMgNxxLEVA>$ z@=0D;W#_{Iz{wx$oC2`kDF_>GF=M)q9Xqy{fq_9EM@L7JgL=Bq^(g1Xn1qcA(kM_b4pfUmp zKL%m^s6XS4zr6}Kn?K`j!VENAwncr41sYSWQI~3gniLKIkCRRDAl?XfV-0cZ;zV3I zJ07Kxvg{vjTw>1T;Z4 z0rHeuC|pAYa9F~8qIf3}0b~GF1s+fm8_4b4DI{qB!v1EB6r_=a2n5WaPPInIX*1^9 zsRII$w*R9w0bN@P(QbnK6tT8c0)h)3c;9ynV*%sd7>I@TbFj!^E><|q$0~bYtaJ3o z+Nl97Hb_8Viw+2cb_oJcGJ$2-O)S7|DfW7;g15zVe6{COVNzJwAE2oSvxlOST)4mj zo=@k{&NpTvr&h7+B%4WkRS&E5moHo1&D_kq8##)O9zDAEz<~o_u(h=%HqcY*D9UTY z!t!OdM4Z$9*yCT|^j9XRh@~YYhPWMPh^lxawtT)m&KOOJhD-`-PU&jZq?ry7JP864 zcTc+JkwF$M@TRX@K$+tNWj<}8@)ZWF_%yGII%vqmO(+O+n}=sJYEyS1$1rxGv5(-d z5oZWUq7g&qHIk6NMnxz5E`p5Ix(az|P?yopB9LE8=<1KQ(f~B(FMz!ALxj2w$D4is zfcM_$f#Y8|qBY-xO>);IS)wk*3^l2yc$`8-VRPJ%Gs5jy1KhYc5fx{~q3HM+Wc@G# zDgPXb*e?bk`l~_sdEX%XuyY(5tGLmYS|Pj-m?Xrn1PU}Kpit2PL5YV~^KoRaFDj#! zKvA(4xU~ZEieSjfLZB!Qg}i(b6y-~xtXKwB`7(CuMd@;=ODOmN6_Z1lyC^M{Sps#* zQhs0fn&#`8)Aav?__a*nX+2B$y` z2yC4mj4jhR2yCCe5ZkARVaJR`*y*xF6H+!nvCDla-gjM!_g$7^@4VIUGM|Ct-yh*! zZgQT>1Sv?U2k<#5Ks{Ap0>2FqShj2#lY>6_7n9#F-|NebkTwIu=Xj5a;x57pN`kYH_rKym@f$~aD9KP5z9Ji9} zaVN$EcP<&CDvqQeQ#8gINkG6r=n&G~H!L!Ou0cR*1uYbV^UZ`#i78MQ%;78jD(M8= z$&X)S!Q9E-p^MNpY}1u%_(`2k^rD4?UiW1#z<_7@Rw&UanZW!JFHN5rrKO#KD2oKZU*%Wtu zq8aLwO;N)Dz!VSSjBz{K05_s0;@X9YC^FiJLTD)mYXdGiez*vE>jqVR$*+AG%s54Hg})<9Xg z6ta>9%s@`fPP*i@xr|3C1)YSccRo}jk!bqsCBZEi{vXD#VFBXxiJ;f;L@(AyG}F|? z48@(sWxi|!owC3VihS-eN|W*b3ItSn8zW@Tn0MtjP07r>MSVMls0Zm7(p*-)7VC#RNhn^lx-yMX-_VcmWZVr~)yJ5u? zPpq)>M)(vT1^^@lMNE}~K#&#$7!YVdV8@Kb90)qq26nkGV<7N>>oV;0Sc)LKxyVRj zXIv=dVo_Ll7qjHgI^J#ps`mgoIIEujqA=ZFdg&#-zy9^F?Eb`w6WO)uL6zQ;B};nv z`1tf7Yv}<42J~@rbEC=OZg=nA4H4H$YNzLf%~9-Q541Mi!JgG)aP`tu+&njd)dU_g zImi?Z3oAZqh`(U89ow^LSQ(u6ng-rxQVi_w2TWeiC|W~fax zLQRq(ss$P7cJxGCKR+IoKaWHC+3_eiF&gPVjY7hKk+}HzP@Mj7FwTBB3P-k%N7~V4 zP{|*$fB6n!iHyhqcv)Br0(6*CDZ~bg4isgbLG|gTw7*Ct;)3$T1EwT+%A~_fdEND){w_g zO~3+*ESte zg-!KNVg#%}EP_C`008>W^?X2Ax6`Lj>s`NoU7tFI$XS%^Bc@H8*2Biersr#~z1GLx z-k#$fX)kMgfa@`ih6vuV=8h_IpEd>1Kf+Ah=(*MK=u*wBnKIxImsB! z$tFTwz(iswXQq*bcuhd-Aj>qGj!#WJw@MJnI9B zdtned3h5e%HX&LI0?=CEkLH3vG!=xPu`mP;h5o3`_d#u*59$lUvC7XF17G_ihW!0S zM1E?F$0@dW9B+)r2@~-skvf8ma3{t9*UnAA)w71Eh%`p-p>aq*I1VY_O+fTFqjB!b zQ8@n57X_{E6q8dR5a~-X&uE6!mIHbpZ zixXe2!e?Ir!s@4Oy2_P0Rqd9ponaEdT&pyXnt2*wIF| zyy;Np*g=(JqnQ`bX`ql4hG|y;2LT(X;;kV+Z3X#B8wLUzb2m*J=f4xWuB0M^Aeo7* zqT5bRMk{MWoq~!3t{C%=m(WvB57Wj^z!EE0EVr74)ssE3&UP-=*v&_{oex$|@y7Y6xcn(-vaK^o7_tBNRKPhhgV*K^k&>GTxuL0?Vg( zW99rsS{5K4{`nv*&BxLM%5~ogQc(Bb3<&h-(L-~8#flaBLBT9U$J}z4UBcS zFt_O0w{KrElOqs#F*G#vHJMCS{R9X|okh`(b4S+U{FfvxnBiX3cm@KG<9UZrLy|F? zl1KwcW6xr#xqm>Qrc35JrAR!K1AC7tA*V(lrvy@(=! zCHsz|V6+zoqn#2zdmMzeLT#|bpYM;h`~WoP`=hDA4~+%>s4w(q08m%pi`slYROfl4 zp?E3I?DxjdH-3kKufL2{^WQ*C`W)PkBBQ?vcoa7dcVj2uX0!pWMH%4AMN^cXu|nY~ z2VDMX3XbkIz^7}6V$-5`u_)Kv@YAF)NrJ2fz)%024M>-92ofvxU#mKx zP_&|hIW&qldcGAZMFVb@rz17`0Dk&%1rC4WkF#I+;KEn)aPb>A%kKxW3LF7{*VDpfgCnd>OGN!Rrjl3v+9V^&0_-2!%y z{cH)D1O)yaD+sMDq`NCXmr>BxuqkMboPy>^N7SF14}a6YvtqExdqc5ck{iOTJh0qm z4%XNb2zX)*0{~yFnc~j?U=srZEeLFufWWqC90)iFEX0m!Vc0Q!5q5~uQ0H)8h9y(x zCQSz4$jXAMmu>;K74gk(k;JoZME|;GdKDEMUT*3zU?ipk!9>hO4jzCqsIqqHns}PLL&={30NrONeE|sA*XenZdjioyl1~vo z{kP@&GX_A(pAvs#p)VQ=y;;;3_@XY~54E|zXe?fgl9**MANhN{`?nY1G~s33ycB@y z1V_}xo8xi38Scbc;!2Daa?hF~_WKDqw08t{EPof9myE#fb@upZ+dO>!K`6f4zZD55 zkE5xoMrfx~u@4Rd0^v}=W`_k(;EaIYAM`0x^Tm7$4jOHWHpo?SbST?-?Eq9nCK@in zg9?xDUqfDc45H2)z|Ti_;@CHf@!f|m`01m`NIO0YH`9XAP`Uz&t81aITm!IJ2~;d& zzC0=>BMDo)m{qk9E((l}S+~K?y)2We)!h5a?`6%_N}^ zUN~m0wKQ!V3>5i8mFEg2b;vPm2?7BVN!w^ACO|+y5>eJ4NI}MGIBqZ25Xp;D| zp8O?CX|yp((osY*5bX}INAocUD5Cwb%X=JK9r@17eGzQxjuqB(5jtrWmXQ=h05Ewz z1A(=6zF0TKSCjlVItF2rQ}7cYz?pyu0-@L`WdbvnFfgFWVt!qOZ5~SzU^5e!j`6gn zQVPv3x*)(>9{?Ds)dT|1sdMPlZmq4YdXFDJ)~l$f&+G{;u zfBp5|BSwtqJ!Z@p<|tZMSNDXYsMt;=)(a|%6Y$~E!KjL}!0o8fsEQrWriLHK88G{Z zx+Eh31WcHZ5J^HJ2vA)>7X-|qCPpB(ypat=Hl1>&KwU(B|3Oe+;Svz<1`_o9X9ykr zUJ{D(K-P<|U_JTL&KzkhU?D5v313X=PZV*B1$n24f=>7WXfF;xn-G-LTS?Agl8(P7 z+6n{EUKoH5A?QBIKP`m;Xl48Pg(!Fsn zYY7(28;Upkz5wG9f5VB7opJr5BXSOzBJpc89NlApFE&iXN9!zb-~%t5KfD!*=f6UF z{8414oI*}!G_o=ikd$}{S?TF$Z)?{$%JRL!B=<1QhYgKUO4m#bu(t@GBIfHSDc8%O zRJ5amo)g#tfrd<_M2Av=4uu?Y)>)+G3&b>=8}Fj(K_zZoNke+{0sQd!a_rkQ6NmTC zLEHf^l$;I3!;~;I=7d36z5=+t4!E%rxI%^HMNkw6Ls3GL-&AbnpumHGVhIBP&J-x= z)4m3hUnuEP&4B}eim^`a^Fs@8G_ulvoe4;Sz9*q=mKBYQLZB{~3uV3?Uq(X?y6nW? z#hie+bC?cQ*_KdTvOsI385E}{K}nOsQq#C!#RRywkW3Qvn1F!K6-+|gaeK5~^v1>Q z4tS%N9$wY&fjI_tY#?m81%q#y#yOHIn=8yYKX~va;CndD}_0-RI4n*WJp>s^^Fi zBl_6b*f2-YqN1Xygq8}0LZP!{h5;rAfk*c%abTMb%1%wd-I#HB5IYVJFHOXwO9rS; zFhnhNr6hAkz|G`L(0bVf?E(lWvN;eiIfxaAIS6nEL<(ylpXva9LJdIZc28(4pW(+91f;H5hU_*-K9QJVG=;&{5oV!M0tDq5!l}6jE~cM{A)!T7+n(CiXX3{QU zU)1LWqA5QV^@YpOP_Y#|SJ^Y|^^Y(0K!~R?PJQix1G}an^2-Ity!a`quctuSbO%k3 zZsOsc8@PY-7Os|;BQG}tsVVV@y%dd$Q5TVwlfzOoxrB;^VD`_?s=+irLJ|?vh}hQ& zAjC0zQ96QL0kuNdKOnFPK6OlgCjkPzRt}}A9SUU|B zyEQoUp*K$M_r`?--Z=m5Ok|$)#hv73P+Zvt+}#1(T+Kj%pQcGhqC_foBQ4>bNyHR1 z8_xKB)}K#_pD_V}8L)1qCqaPEIB07WS{n@MeuOR({u7ToO-1WSL-c(Me4uAlW_4Yi;y3bGCTCC6b%TaVv*kZv`O*0h%|UZDD**0AF0MCcEmRR%koz zf%DsK@y_q`m{qjx$gx;7$puR--LS%HCRSO`!YZ5DSVJISHxKJ3dtv?L`79zF{IJo{ z9}y0|*zDlXK!B3}7AJn?K%fNy4J#lZV4KJmVxwCy*1Lyb{p^KU;o%Q&J2xm=6&euW zwP0Qk5bn@d$W(|8iT!5k0iAF310FtnSntxMOL}A`w{qpmZgb|$VUxpS#*FFhR7c}-7e;T@na}0{wdn)aqQDMNIEzgRdJ@c7c&+QE=^#v5CZ|m1dKIIfFz-o zbW^mE9K>b?2ncA)m{=4R-9fFO$|gS`N1$XjQ0m7Ewt|kY0fJ7`x4)F^yAJB$;hj2) zr?zK?NFqog=kP?|R^+cM@6i21{+zaxCxD&o#c0m=Ln|fz+(5Ks`?F}x3P5XiAiK6? z1)x6L4|UnTENU{mQJv|Hnj9Zg=lSAsp)Vd&5jZmdb!j1Zm==b-Gd?(fzy;s#vBh^E z&BRylFUGD-8*upW5#;7(p|+033QqQ1w)BYSZ6+m$%F z&l^8{Fb#=6&Bm?dg^-u7g{o{FP`&}Ux`B5mRjdI@S3p&~7^HtOq1|npVGZtG<$5KmI4gxl_bwFUf-FyiM_#(oQM^_-Q&ABrOEX2-f3$c58D0WRJ zHn0$z-9ixI8jOfp3$bwOTx<#suf6sf6^5x@ zRDbpA)%u@)`YA1#>F((0*ki_w8LT*LVPV1Kp#A&zzpGR#3&>VlrBbo|0$Sf~H53Xy zFL3ch1Wtc429FbLaQ_0a0a`sd5szqajE0oh%1Ki+rSfRGY=$;kJfC5~ZKc_EF^b)gGT>dAC_O4>@+wkhua6)hIDefiS|k{Q?Q#$P9uwDFjJZ;n>BT!!oSI)z@%oPhSR z*7`x%I;NQ+Al;uYiQyZ{tk86P5?ao=q4FmW*beS16oTJDi0yQQm`%eXD_1PD_CUD6 z0#;9&gVn4v$WsFV8|=JU;@|A(&#zrE0p}p>U=hq>r*jB)Ifr1kaNS9T6ge_viG1o)%3;IohfOw-HE+r*Jzow=}-{0TA+lUb( zx(^;axCc!R_v_d1#dqF$ha{mFTU%RyV$-22m7IV0crk^ooK*1NSyJqN9Qn`y4`L?a z!G#ITQS^SS0Ul9-IDzH{L=Z5SfB;`R$+nGUnnTG#STd7MYauNm%cEMr9H`5Dp{xjG z-Z`Y-t7wE?n)rpDdzJ3-l!+(CdV6%**+{9GUxNinvc3nZ`5W`%tv*m7ix0+QCAp-`r_5N zpB;|e^L~gr=!VFB({T7BR~-4o3y1dwBI?K%lw_SnQ_U52!dJ6aOlc1eAX6$KlgS~M z$)S+RAydd8leMF@xd{#Rb*QVU#^Z+%aqH$yl$VtvKQ{-L(^8O_7>}r^3y6=8LtR}R z|NDeaAd+r)4S*6h@3U5_oA4NSaH#4irYCt~;0Xh~du$v=9=Ae3=1QEdjzSCC(5~o! zOr-`n6Vefag9_NfA|=yi#Y36MIwkWdtiGV?6nyn50hC;+gq-cc=qw?zBMa1O8Ct4u zpy2W;9Q$THzIoplM?djG>_H#IedCJDKe^*xY8d2KB7g^5ftzcfzCshtVXRG+%`H#@ zmP{;j5YUx=RAoG*r~N0Hfb=SWi6#gD=kUEcK zAaM}W0?4p}JjM#`k<`D>3%FXdH;L0HyKk-YHO&rUNe55|SyD$@v1mDAjphsUkou(? zjNg3~-SzY^{;hWrY%v*O=2Nl6(j7~!J+M+>0ILWD2mmBZV8di@L`?C~N&a1fKp=KZ z4Z_Z;LHz0*j9t#b*gchB#n>@@0d~(@3b%1K$c#EU@xi*czb)lLa(W-t6R^IlY;vK;1eljlI)Q*C2%FUUs)0WMM(g=%E@a-h<`PG%aXq!<1qbRN4oJ7 zPV#iBr=hH17R~gS3c3sc{4~)-2|w2#^*IzisLvr8$D2iM_B_;O&Ou#r1$nrx&ZV+m+Lr|5u5D&5!<90?EGR}MA#MjRFYP&rS?46C1-z`V<$@h^M`#ma4 zQ_$APY@KvZ`Rp{!Y^k`Q@nKgk;|3n=un}#r5*K+4XCbtj0cY%;Kt2s zC@m{SZf-VG(~^;p7>B5+^GHceflNk4U0Na|0D+j8=_A7)C~ylm5MH?fea{cUiwOhp z%H@%GIdueHN*IXWU+jn1PmjX-8}H*59-sjVT*qT1wG`mO;}pc!rQa^44l~UguXA5pX4g2m0}G-0hNMeBwd84uep!%qEsYC z9YW0U-8l9|D1Q88E`IpP5sAm=pgbuEbtNkyyRsTe8fLq)7Pz_wxUz!#`xJ+=4R31Z zg(M_(1^}T@b*>EvCw>tqL=Yg~Bxx`?N&^C&9aIHI!59Ypcd28@ld%CdO|K&dNqvN< zMN|NREGwwuZ6G^oEev#Z-YO<6fH`Rgf|83P#m_PYq4Gy{vRW?+f=G%UAv#Y!7@Eeo*Gg239z^E51gKwzW2FE%;& z2_O(40f9grCP2ww3j!h7JyjbbBiQU33}0&(+$!fqVR5QmTqw*c1pM?+45<75CY(c` z1q2o^TC9KQ&>_8z8#n5^y1I7Xuwerk%JrHsVM6aYbLPBEueo*WmWN8EqQbCtUO+gN zv4o&hK-vBP-|Tcl!H=|M%#76r9z;`d*btB7j8PqLg4#q=G%yh08?IU}69`zKE!~1G zp=X=M7zmg^nPrBK94p8Qra@Ke%LcJXx{(nW(CMC5D+&WzqQ?$T?9vI`z^Auo76)^A zhol>p@cq$JAWiy#XfE&-LLABpLQ{Sa>&|J;qtm`WOZ-i_bh7tFW40gavwT_9W&5Bm z*9XLN0;vRK-bu}xy)R4^|Bvx7T* z4^UwL{U7nl@xgd0X%Jqx+#kJDCOj1jGz@?Fc?ecN+>Z5i?_)x=J%+|u zWAH@_434qF*h^Ef;pRSE!6U{Hm{*DLKhctc2kkQE`;0}|h<&}&b|}{M!OtriN}+i@ zH9IItP7>;Xl3Ppj13b7_jN4b!k(+c3XAkYdXIp*o^^V!N@U1Tj&xPVfd?;!%7ePg> zsWiKAcMWheoG}KH3F*+Gst}6GVmFe|nZ$ek7eJ*cLW|~kizOj~Kv>sIfL#T)P_h6h zqPYQAsPe3#$}?y7D&p!@Zogsyge$ixN9&0P>~<%(6-9#}PLCRW?d!fM+&SZg~6>nG2}hAE!dXg8n5rYZBW*`C;d z54JdnS6^&(^utz1e{6N)vE7NY0Wk;&SP&bS8id_Wf!I4^0hZf%U}L}%wA3^SpA9jO ziSIRT8m9)nd+ygsKFdw|L(Z8qhxQ8S+uPfB|NQgMyPKMt(r$s?uCA`EE)W+NH&QN_ z-x7Xttc)TKjnOYpF6WM-`?h-F@&P+k#Z1Dj^9FbjZSZsuNFxxiU_l_zp2;nyNe%+F zjM6l5jxAIrv!E>Z=iNID1bF9;f(>VJFwm8Do^H7y7H+AS%k35@(Nog*W68cL-v`YF zep<~w-v^C(6y9jcqhwE~{Qxv&2cjW65cN3$Xw33OLzWNfDKdRgm+p;*OnU5#+VuIT z$@F2SZq3E3a3^Ika?W@o=8y+Y?svn9{a!fwxgWm!GzihB_uxwLIkYxi)fR3gQU-JG zRLR*^HwuzLL^j5H^*iYw(tW8canfnYZ8Z7-03ZNKL_t(pq2>V4-j24mHZ(Rhp{}7G zkE$Qx?!7y>a;*}D#f8Yq%tA^E$w5>Th(T$2nMMkdf`I0<4F#@s+`^=&+2|2HkR|>; z$^FnL`91VW?vFm~@c_J>Iv6iqdJlh$>yO{ZzK7ly-$KvWckx2}0Q62CfS!r{@#oW{ z;GeMy*Hu-JvHF0-s7|xPjEPVj__SnR>H;aD`P%xG_?-0hyqGQ27Zi#vL4noK4qHSbWY%Qefm<1Ha zt1>G-NK+2TUPLH-RF9b`D!YnePmgc|lp~uRYZh5C{cc8pM)Irf;82_PWtl z=qH4>Sj!8x8~}K5EuXGDNY9^-raW&n=lP&H*B=d80cgkyMqO4g>gj$?AR6<7(VQ2G zhMZ8;Wrm_Qa|x<579;<}TwM6v8Q(-$;k(^4aq8eo#GU&Tmy?g;T4fem8z1UQIwW+c zWlYXtl8#aa6?NZGH;vFOBfe$Dwr26)LAwW9x+_&U>5%oaLXD1gIa*p;(A?aNhK2^z z*3{zR!z$dqeFIl2%TZXEkIc+WBqb#wK0cm-!1bE~eHKsLLh@x2i;`MC+i||>65c&- zh&~BJ(3=u}azFG=>4!dy4bbBOcrke(UX1UDmk9(e4aD!_>G1%(nlKE%Pa2Hhr47WN z;zr`{heu)C^^ehnHqG)H?awJG6lfB;@Ux4*1F?uKN=lm6Z|(0#{OfdoUwrn37?!Y5 zNm85^&OVY`b3-*MN^%evbp&UReu$Ibt;LZ~yz$d6CnS91ikq>4Xvtd!WyKn(E5f;a zbafd}NnJ+4P?ZF-Jqujc5sJ$~-GJ8^ME6udLejK`YHJMqF_(l;I2YOF%#j z?PHRJEP-?zD1J7DjO`ni`2I7$e=FeUDahVufg!KxA#*>=F_p*Y&w=%x?-iZI}4Ekh}Si?S`gSE zf`9-3;*~K05d;_$5J1353j#Zw1U4YD0HiWkuqfZR2r0$`1FUjTsZ5b(5S87@;P?6m>~vXh=5WwShD$5}Ttr%@nQa zCc+Sz5!%y?Aj_NtRiOt|CB7`#laG$<311zpo-b}JnM_p!#+6isRzE?>4I-Q@J&uvUWaotCRSdETMpcx@6eU z75C?7Jvgj`hFE|W1lZR^sY58BYI36FtScrqrmNE$2)PRF?J@=cO-)UxudhdSbv3H0 zs&MnxO;l7=prD`t85tQG5QvJ3!h@8O~>%J<0J86k`@Fs zOdy$W|)u{aEx#9Dv>l16b|g)%Zd9ePVySko+EAP9BU`Vg_MMv^B1_bH`F` zG8WJ9+H<{5VNbV*xr-;Ce$z530s<|wlDyTqw8o0hT!!m>Yj3T_qkEOORhfl?l#{q{ zbPqn>HV0qqazpg@fyh4_iW`?gQJcL4^73%t)_Ufqib|Sv4r6r%m9TD;%RRzOgJ!r* zm{A}}NmE=Vd5Jc(g#ZQfpw4%II^Rl2_5u?i`9}!;Jk%-Ywu##1S^DE zPs1Wh0)QDwD8ak6**G`&^^|o`cftY~ZJVZ?P#Ky@S2&8O4 z0|pL0*yiAiZ4Q1s9Q_#}Q0#CDU`cm>?2V0$>>3sp#;*JJ?bBbdU_o~W2ZtWRh7IdQ_7M&a4lmQDv8JXb zTCSk+jgXqi(LfK~tE;Hvg zQ`-)yk=KO(uie`#>ih%(!a{eEyh=~I+RU$cPI{6hCZLcj83?qtwxXqlGl80#8V&+C zZ=$TM4Eg!_xP19ClY-*ns4yJGWFv7ZN=#$mdrneP6*-#>nTyj(7E@OeH@-p_q65O*et z5_hrOm*e1j#m^%qJ#K}S!0iL%Tw=+Og+_J(``R^u3vh1|wvhj(hQ4^Q)JvGEkVX(q zBW=ao$Wu4AYj_3N<~W?Mw;ibT+vm?(5G*ahrx)>Z;{~-ANn6&uY^#3lSh8n++ZLFi zO|>!nY$4d@Nf{Tg8<}zXCE;nnSjQMe&geyM7PoCv0ZzNZlq2({`&g*w{>-Ol>bdog#4fG*3#0_9L~QO7-V8D3w$$SE4W9TMh+PYTO#0FXdOU8 zEN9%3{3diFPr^k_&ENZx#&QVh5MOmF;in_LehFzI%LI<9Ej}!VAGgMK7dq+km2DoM zB4r~w7^W1q@8t3{xsN(nSa7ZU;4ME0s0k{nah=}OkzKyO2DZNO%KJlpKi^tBj z@ZWg4fHqVD`6KEBJcf+_j5x7`ZyvDRNk9GYqPaI2LfE%j=h+dvQaT7HN`BZH{OJkf zxfk0ny$Lt9lej9Fr|%3;$A8>R4fVhC>jyn?I03v&7=6`5LmOItq_1nupLg$^SA}0s zczfA|QBit4k6%9ZIR#>iH%@|V><}=5WBD6r3)C2Ncjum3Nsp)s8`!WF&l4jgZiP4~ z*COchkv5iVZrbir$;OHZ3pgZlJm^MizlRB-N`RLW!G`@lqDQYN|mNa!jC#5u1W6rI2 z{$*QFznw4q=(7i5dp8mehSh)@u_Xi^h5Q%8)%t@WZui{1Kogj^t>Kl^#ydtdfUa!A^*1I21L>8Bt?LRvAJhwOigmE;Soo7-b$F1w%?|{;C zN8d}FgF|hmOqGnn4sj@+ifZ@Vi{k-cEy1{4yU61>s9U?@yng zx_hi!?cVEAW~q9tuc_}K@4*&}3}WW)t6Y#AUvG6Do;bG-nr+bcsZLkavtKS*{a!!P z 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