From 15d81cf8a739a5db5d75a11191c1e0d4e8f78ff2 Mon Sep 17 00:00:00 2001 From: 1011025m <37438176+1011025m@users.noreply.github.com> Date: Tue, 9 May 2023 21:01:47 +0800 Subject: [PATCH 01/19] Add Hyperion mockup bootstrapper style --- Bloxstrap/Bloxstrap.csproj | 2 ++ Bloxstrap/Enums/BootstrapperStyle.cs | 3 ++- Bloxstrap/Extensions/BootstrapperStyleEx.cs | 1 + Bloxstrap/ViewModels/AppearanceViewModel.cs | 3 ++- 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Bloxstrap/Bloxstrap.csproj b/Bloxstrap/Bloxstrap.csproj index 05de60f8..16faf366 100644 --- a/Bloxstrap/Bloxstrap.csproj +++ b/Bloxstrap/Bloxstrap.csproj @@ -14,6 +14,8 @@ + + diff --git a/Bloxstrap/Enums/BootstrapperStyle.cs b/Bloxstrap/Enums/BootstrapperStyle.cs index 69aa77a8..733b5704 100644 --- a/Bloxstrap/Enums/BootstrapperStyle.cs +++ b/Bloxstrap/Enums/BootstrapperStyle.cs @@ -6,6 +6,7 @@ public enum BootstrapperStyle LegacyDialog2009, LegacyDialog2011, ProgressDialog, - FluentDialog + FluentDialog, + HyperionDialog } } diff --git a/Bloxstrap/Extensions/BootstrapperStyleEx.cs b/Bloxstrap/Extensions/BootstrapperStyleEx.cs index 0a6ef0bc..4191ea1d 100644 --- a/Bloxstrap/Extensions/BootstrapperStyleEx.cs +++ b/Bloxstrap/Extensions/BootstrapperStyleEx.cs @@ -14,6 +14,7 @@ public static IBootstrapperDialog GetNew(this BootstrapperStyle bootstrapperStyl BootstrapperStyle.LegacyDialog2011 => new LegacyDialog2011(), BootstrapperStyle.ProgressDialog => new ProgressDialog(), BootstrapperStyle.FluentDialog => new FluentDialog(), + BootstrapperStyle.HyperionDialog => new HyperionDialog(), _ => new FluentDialog() }; } diff --git a/Bloxstrap/ViewModels/AppearanceViewModel.cs b/Bloxstrap/ViewModels/AppearanceViewModel.cs index d0d21854..b6efcbdf 100644 --- a/Bloxstrap/ViewModels/AppearanceViewModel.cs +++ b/Bloxstrap/ViewModels/AppearanceViewModel.cs @@ -29,7 +29,7 @@ public class AppearanceViewModel : INotifyPropertyChanged private void PreviewBootstrapper() { IBootstrapperDialog dialog = App.Settings.Prop.BootstrapperStyle.GetNew(); - dialog.Message = "Style preview - Click Cancel to close"; + dialog.Message = (App.Settings.Prop.BootstrapperStyle == BootstrapperStyle.HyperionDialog) ? "Style preview - Click the X button on top right to close" : "Style preview - Click Cancel to close"; dialog.CancelEnabled = true; dialog.ShowBootstrapper(); } @@ -71,6 +71,7 @@ public string Theme public IReadOnlyDictionary Dialogs { get; set; } = new Dictionary() { { "Fluent", BootstrapperStyle.FluentDialog }, + { "Hyperion", BootstrapperStyle.HyperionDialog }, { "Progress (~2014)", BootstrapperStyle.ProgressDialog }, { "Legacy (2011 - 2014)", BootstrapperStyle.LegacyDialog2011 }, { "Legacy (2009 - 2011)", BootstrapperStyle.LegacyDialog2009 }, From 48ebf758a071e1d244ce3109b62b7b401f8dab33 Mon Sep 17 00:00:00 2001 From: 1011025m <37438176+1011025m@users.noreply.github.com> Date: Tue, 9 May 2023 21:09:34 +0800 Subject: [PATCH 02/19] Add view model and assets for "Hyperion" mockup bootstrapper --- Bloxstrap/Dialogs/HyperionDialog.xaml | 36 +++++++ Bloxstrap/Dialogs/HyperionDialog.xaml.cs | 100 ++++++++++++++++++ Bloxstrap/Resources/CancelButtonSmall.png | Bin 0 -> 2663 bytes Bloxstrap/Resources/WordmarkRoblox.png | Bin 0 -> 6104 bytes .../ViewModels/HyperionDialogViewModel.cs | 45 ++++++++ 5 files changed, 181 insertions(+) create mode 100644 Bloxstrap/Dialogs/HyperionDialog.xaml create mode 100644 Bloxstrap/Dialogs/HyperionDialog.xaml.cs create mode 100644 Bloxstrap/Resources/CancelButtonSmall.png create mode 100644 Bloxstrap/Resources/WordmarkRoblox.png create mode 100644 Bloxstrap/ViewModels/HyperionDialogViewModel.cs diff --git a/Bloxstrap/Dialogs/HyperionDialog.xaml b/Bloxstrap/Dialogs/HyperionDialog.xaml new file mode 100644 index 00000000..bc271a43 --- /dev/null +++ b/Bloxstrap/Dialogs/HyperionDialog.xaml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Bloxstrap/Dialogs/HyperionDialog.xaml.cs b/Bloxstrap/Dialogs/HyperionDialog.xaml.cs new file mode 100644 index 00000000..a8514fcd --- /dev/null +++ b/Bloxstrap/Dialogs/HyperionDialog.xaml.cs @@ -0,0 +1,100 @@ +using System; +using System.Windows; +using System.Windows.Forms; + +using Bloxstrap.Enums; +using Bloxstrap.Extensions; +using Bloxstrap.ViewModels; + +namespace Bloxstrap.Dialogs +{ + /// + /// Interaction logic for HyperionDialog.xaml + /// + public partial class HyperionDialog : IBootstrapperDialog + { + private readonly HyperionDialogViewModel _viewModel; + + public Bootstrapper? Bootstrapper { get; set; } + + #region UI Elements + public string Message + { + get => _viewModel.Message; + set + { + _viewModel.Message = value; + _viewModel.OnPropertyChanged(nameof(_viewModel.Message)); + } + } + + public ProgressBarStyle ProgressStyle + { + get => _viewModel.ProgressIndeterminate ? ProgressBarStyle.Marquee : ProgressBarStyle.Continuous; + set + { + _viewModel.ProgressIndeterminate = (value == ProgressBarStyle.Marquee); + _viewModel.OnPropertyChanged(nameof(_viewModel.ProgressIndeterminate)); + } + } + + public int ProgressValue + { + get => _viewModel.ProgressValue; + set + { + _viewModel.ProgressValue = value; + _viewModel.OnPropertyChanged(nameof(_viewModel.ProgressValue)); + } + } + + public bool CancelEnabled + { + get => _viewModel.CancelButtonVisibility == Visibility.Visible; + set + { + _viewModel.CancelButtonVisibility = (value ? Visibility.Visible : Visibility.Collapsed); + _viewModel.OnPropertyChanged(nameof(_viewModel.CancelButtonVisibility)); + } + } + #endregion + + public HyperionDialog() + { + _viewModel = new HyperionDialogViewModel(this); + DataContext = _viewModel; + InitializeComponent(); + } + + #region IBootstrapperDialog Methods + // Referencing FluentDialog + public void ShowBootstrapper() => this.ShowDialog(); + + public void CloseBootstrapper() => Dispatcher.BeginInvoke(this.Close); + + public void ShowSuccess(string message) + { + App.ShowMessageBox(message, MessageBoxImage.Information); + App.Terminate(); + } + + public void ShowError(string message) + { + App.ShowMessageBox($"An error occurred while starting Roblox\n\nDetails: {message}", MessageBoxImage.Error); + App.Terminate(Bootstrapper.ERROR_INSTALL_FAILURE); + } + + public void PromptShutdown() + { + MessageBoxResult result = App.ShowMessageBox( + "Roblox is currently running, but needs to close. Would you like close Roblox now?", + MessageBoxImage.Information, + MessageBoxButton.OKCancel + ); + + if (result != MessageBoxResult.OK) + Environment.Exit(Bootstrapper.ERROR_INSTALL_USEREXIT); + } + #endregion + } +} diff --git a/Bloxstrap/Resources/CancelButtonSmall.png b/Bloxstrap/Resources/CancelButtonSmall.png new file mode 100644 index 0000000000000000000000000000000000000000..77e6a393d41fade2c9e02a5c48e80139c5f1cc62 GIT binary patch literal 2663 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 PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + private readonly IBootstrapperDialog _dialog; + + public ICommand CancelInstallCommand => new RelayCommand(CancelInstall); + + public string Title => App.Settings.Prop.BootstrapperTitle; + public string Message { get; set; } = "Please wait..."; + public bool ProgressIndeterminate { get; set; } = true; + public int ProgressValue { get; set; } = 0; + + public Visibility CancelButtonVisibility { get; set; } = Visibility.Collapsed; + + public string Version => $"Bloxstrap v{App.Version}"; + + public HyperionDialogViewModel(IBootstrapperDialog dialog) + { + _dialog = dialog; + } + + private void CancelInstall() + { + _dialog.Bootstrapper?.CancelInstall(); + _dialog.CloseBootstrapper(); + } + } +} From 703181b3360a9bf7408cd3207be86dd6fb0939d8 Mon Sep 17 00:00:00 2001 From: 1011025m <37438176+1011025m@users.noreply.github.com> Date: Tue, 9 May 2023 21:46:15 +0800 Subject: [PATCH 03/19] Fix styling --- Bloxstrap/Dialogs/HyperionDialog.xaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Bloxstrap/Dialogs/HyperionDialog.xaml b/Bloxstrap/Dialogs/HyperionDialog.xaml index bc271a43..41b86c1d 100644 --- a/Bloxstrap/Dialogs/HyperionDialog.xaml +++ b/Bloxstrap/Dialogs/HyperionDialog.xaml @@ -20,7 +20,7 @@ - + @@ -28,8 +28,8 @@ - - + + From 26a7dfe5af81026ed274ec6d7558dfef26345ba4 Mon Sep 17 00:00:00 2001 From: pizzaboxer Date: Wed, 10 May 2023 13:41:36 +0100 Subject: [PATCH 04/19] Make Hyperion dialog inherit from Fluent dialog --- Bloxstrap/ViewModels/FluentDialogViewModel.cs | 10 ++--- .../ViewModels/HyperionDialogViewModel.cs | 37 ++----------------- 2 files changed, 6 insertions(+), 41 deletions(-) diff --git a/Bloxstrap/ViewModels/FluentDialogViewModel.cs b/Bloxstrap/ViewModels/FluentDialogViewModel.cs index fc81ba17..881c4d4b 100644 --- a/Bloxstrap/ViewModels/FluentDialogViewModel.cs +++ b/Bloxstrap/ViewModels/FluentDialogViewModel.cs @@ -1,15 +1,11 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using System.ComponentModel; using System.Windows; using System.Windows.Input; using System.Windows.Media; + using CommunityToolkit.Mvvm.Input; + using Bloxstrap.Dialogs; -using Bloxstrap.Enums; using Bloxstrap.Extensions; namespace Bloxstrap.ViewModels diff --git a/Bloxstrap/ViewModels/HyperionDialogViewModel.cs b/Bloxstrap/ViewModels/HyperionDialogViewModel.cs index 6a5c452c..c8415f22 100644 --- a/Bloxstrap/ViewModels/HyperionDialogViewModel.cs +++ b/Bloxstrap/ViewModels/HyperionDialogViewModel.cs @@ -1,45 +1,14 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows; -using System.Windows.Input; -using System.Windows.Media; -using CommunityToolkit.Mvvm.Input; +using System.ComponentModel; using Bloxstrap.Dialogs; -using Bloxstrap.Enums; -using Bloxstrap.Extensions; namespace Bloxstrap.ViewModels { - public class HyperionDialogViewModel : INotifyPropertyChanged + public class HyperionDialogViewModel : FluentDialogViewModel, INotifyPropertyChanged { - public event PropertyChangedEventHandler? PropertyChanged; - public void OnPropertyChanged(string propertyName) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - private readonly IBootstrapperDialog _dialog; - - public ICommand CancelInstallCommand => new RelayCommand(CancelInstall); - - public string Title => App.Settings.Prop.BootstrapperTitle; - public string Message { get; set; } = "Please wait..."; - public bool ProgressIndeterminate { get; set; } = true; - public int ProgressValue { get; set; } = 0; - - public Visibility CancelButtonVisibility { get; set; } = Visibility.Collapsed; - public string Version => $"Bloxstrap v{App.Version}"; - public HyperionDialogViewModel(IBootstrapperDialog dialog) - { - _dialog = dialog; - } - - private void CancelInstall() + public HyperionDialogViewModel(IBootstrapperDialog dialog) : base(dialog) { - _dialog.Bootstrapper?.CancelInstall(); - _dialog.CloseBootstrapper(); } } } From 3f6154cf84b2bdd8970a111cbbe2208a7813ac62 Mon Sep 17 00:00:00 2001 From: pizzaboxer Date: Wed, 10 May 2023 13:44:09 +0100 Subject: [PATCH 05/19] Change ordering in Appearance menu --- Bloxstrap/ViewModels/AppearanceViewModel.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Bloxstrap/ViewModels/AppearanceViewModel.cs b/Bloxstrap/ViewModels/AppearanceViewModel.cs index b6efcbdf..7e0a4699 100644 --- a/Bloxstrap/ViewModels/AppearanceViewModel.cs +++ b/Bloxstrap/ViewModels/AppearanceViewModel.cs @@ -71,11 +71,11 @@ public string Theme public IReadOnlyDictionary Dialogs { get; set; } = new Dictionary() { { "Fluent", BootstrapperStyle.FluentDialog }, - { "Hyperion", BootstrapperStyle.HyperionDialog }, { "Progress (~2014)", BootstrapperStyle.ProgressDialog }, { "Legacy (2011 - 2014)", BootstrapperStyle.LegacyDialog2011 }, { "Legacy (2009 - 2011)", BootstrapperStyle.LegacyDialog2009 }, { "Vista (2009 - 2011)", BootstrapperStyle.VistaDialog }, + { "Hyperion (2022 - Fake)", BootstrapperStyle.HyperionDialog }, }; public string Dialog From 6de96bbf609ede3e40923711ee92cf4eb0c32745 Mon Sep 17 00:00:00 2001 From: 1011025m <37438176+1011025m@users.noreply.github.com> Date: Thu, 11 May 2023 00:56:13 +0800 Subject: [PATCH 06/19] Embedding SVG data into dialog and make it theme-aware --- Bloxstrap/Bloxstrap.csproj | 2 -- Bloxstrap/Dialogs/HyperionDialog.xaml | 34 +++++++++++------- Bloxstrap/Dialogs/HyperionDialog.xaml.cs | 11 ++++++ Bloxstrap/Resources/CancelButtonSmall.png | Bin 2663 -> 0 bytes Bloxstrap/Resources/WordmarkRoblox.png | Bin 6104 -> 0 bytes .../ViewModels/HyperionDialogViewModel.cs | 9 ++++- 6 files changed, 40 insertions(+), 16 deletions(-) delete mode 100644 Bloxstrap/Resources/CancelButtonSmall.png delete mode 100644 Bloxstrap/Resources/WordmarkRoblox.png diff --git a/Bloxstrap/Bloxstrap.csproj b/Bloxstrap/Bloxstrap.csproj index 16faf366..05de60f8 100644 --- a/Bloxstrap/Bloxstrap.csproj +++ b/Bloxstrap/Bloxstrap.csproj @@ -14,8 +14,6 @@ - - diff --git a/Bloxstrap/Dialogs/HyperionDialog.xaml b/Bloxstrap/Dialogs/HyperionDialog.xaml index 41b86c1d..f0677e10 100644 --- a/Bloxstrap/Dialogs/HyperionDialog.xaml +++ b/Bloxstrap/Dialogs/HyperionDialog.xaml @@ -12,25 +12,33 @@ WindowStartupLocation="CenterScreen" AllowsTransparency="True" Background="Transparent"> - - - - - - - + + + + + + + + + + + + - - + + + \ No newline at end of file diff --git a/Bloxstrap/Dialogs/HyperionDialog.xaml.cs b/Bloxstrap/Dialogs/HyperionDialog.xaml.cs index a8514fcd..feee3528 100644 --- a/Bloxstrap/Dialogs/HyperionDialog.xaml.cs +++ b/Bloxstrap/Dialogs/HyperionDialog.xaml.cs @@ -1,6 +1,7 @@ using System; using System.Windows; using System.Windows.Forms; +using System.Windows.Media; using Bloxstrap.Enums; using Bloxstrap.Extensions; @@ -62,7 +63,17 @@ public bool CancelEnabled public HyperionDialog() { _viewModel = new HyperionDialogViewModel(this); + if (App.Settings.Prop.Theme.GetFinal() == Theme.Light) + { + // Matching the roblox website light theme as close as possible. + _viewModel.DialogBorder = new Thickness(1); + _viewModel.Background = new SolidColorBrush(Color.FromRgb(242, 244, 245)); + _viewModel.Foreground = new SolidColorBrush(Color.FromRgb(57, 59, 61)); + _viewModel.IconColor = new SolidColorBrush(Color.FromRgb(57, 59, 61)); + _viewModel.ProgressBarBackground = new SolidColorBrush(Color.FromRgb(189, 190, 190)); + } DataContext = _viewModel; + InitializeComponent(); } diff --git a/Bloxstrap/Resources/CancelButtonSmall.png b/Bloxstrap/Resources/CancelButtonSmall.png deleted file mode 100644 index 77e6a393d41fade2c9e02a5c48e80139c5f1cc62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2663 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 $"Bloxstrap v{App.Version}"; - + // Using dark theme for default values. + public Thickness DialogBorder { get; set; } = new Thickness(0); + public Brush Background { get; set; } = Brushes.Black; + public Brush Foreground { get; set; } = new SolidColorBrush(Color.FromRgb(216, 216, 216)); + public Brush IconColor { get; set; } = new SolidColorBrush(Color.FromRgb(255, 255, 255)); + public Brush ProgressBarBackground { get; set; } = new SolidColorBrush(Color.FromRgb(86, 86, 86)); public HyperionDialogViewModel(IBootstrapperDialog dialog) : base(dialog) { } From 85c83af15e4a5685242a89ef45879f0cf3a2aed0 Mon Sep 17 00:00:00 2001 From: 1011025m <37438176+1011025m@users.noreply.github.com> Date: Thu, 11 May 2023 01:15:07 +0800 Subject: [PATCH 07/19] Fix padding on close button xd --- Bloxstrap/Dialogs/HyperionDialog.xaml | 28 +++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/Bloxstrap/Dialogs/HyperionDialog.xaml b/Bloxstrap/Dialogs/HyperionDialog.xaml index f0677e10..75b19ced 100644 --- a/Bloxstrap/Dialogs/HyperionDialog.xaml +++ b/Bloxstrap/Dialogs/HyperionDialog.xaml @@ -15,7 +15,7 @@ - - + @@ -35,7 +35,7 @@ - + diff --git a/Bloxstrap/ViewModels/ByfronDialogViewModel.cs b/Bloxstrap/ViewModels/ByfronDialogViewModel.cs index 20b8e46c..d1743d5f 100644 --- a/Bloxstrap/ViewModels/ByfronDialogViewModel.cs +++ b/Bloxstrap/ViewModels/ByfronDialogViewModel.cs @@ -8,10 +8,11 @@ namespace Bloxstrap.ViewModels public class ByfronDialogViewModel : FluentDialogViewModel, INotifyPropertyChanged { public string Version => $"Bloxstrap v{App.Version}"; + // Using dark theme for default values. public Thickness DialogBorder { get; set; } = new Thickness(0); public Brush Background { get; set; } = Brushes.Black; - public Brush Foreground { get; set; } = new SolidColorBrush(Color.FromRgb(216, 216, 216)); + public Brush Foreground { get; set; } = new SolidColorBrush(Color.FromRgb(235, 235, 235)); public Brush IconColor { get; set; } = new SolidColorBrush(Color.FromRgb(255, 255, 255)); public Brush ProgressBarBackground { get; set; } = new SolidColorBrush(Color.FromRgb(86, 86, 86)); public ByfronDialogViewModel(IBootstrapperDialog dialog) : base(dialog) From 066fda920e20f5364f800b31fa0d339bb8cf6323 Mon Sep 17 00:00:00 2001 From: 1011025m <37438176+1011025m@users.noreply.github.com> Date: Sat, 13 May 2023 10:29:21 +0800 Subject: [PATCH 11/19] More corrections to mimic the dialog --- Bloxstrap/Fonts/Rubik-VariableFont_wght.ttf | Bin 0 -> 193736 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Bloxstrap/Fonts/Rubik-VariableFont_wght.ttf diff --git a/Bloxstrap/Fonts/Rubik-VariableFont_wght.ttf b/Bloxstrap/Fonts/Rubik-VariableFont_wght.ttf new file mode 100644 index 0000000000000000000000000000000000000000..547f06974a0a11afca9e5c305544e406a1609d72 GIT binary patch literal 193736 zcmce91$W=ZMu^!?uN_s#s~-Z^vU&YUxH=A1KgcL^ng*y1853F#@RX+O<5 z(Vq~d5h1eJ^np3K7gwZgA+#Nt9&Ag`%}?6XXY0>|SOg+ZXvUDl!C?VO3kb0rMTjaa zCpRSg*@7Vp31J0zp&&OeG4Fxjo_N3;0l!l?wXpWXL+_(9`aWR);;O=l%eV9$Mu_W+ zc>m>6Jb(36`OC;J$MaETg_9@ZZi)PPxEqyK&L}l0nifQ;Lp>qq>dTP-$Dm&>5t0sk zcIS;RDIDkE-7OpWcOrk!@kmfP%jW~04cKdZRo(Q1$KO;V>P3jjw#u5~!h=mqLkKZW zAw+S$s&M*58KWFO&_guUg;gc-7SnH|EdaAmC)P}^+fwaulaP?Bgg7KjtSy;1UbzVL z(@f-7t*6=rYvhXo5~|e_3)~62P3997nMD*FGH^1U3nj1AD$)4m+QbeIc}SN${B7|q zN{lv=jl%2dRi?x)-z9cF?k|e;x@x09WeOIq%*N(M_zei-Ui#&P%{TWmF z{p5kKqX;36^_4W35XI~;A%9jYi}D~t>j?xQkC29UD0+*^5bh$# zQ6+kiDscZ1cTgkK;I5M1l`{?A<4>RE`N#nAPREdN8pF%hx%Y{>CV^;1>fr30>{O7f zX&oT8k!&rE&=9hYKW9d~E;NDIibet@wgjV=co8Pxk7#*aVI?&JRhGn+1dpfGQ&T`<+!!%J29p|6 zMG8qZ=|}2tuO#K9m?Ys|hw2d6X`Z}C0} z0cJJuWx%e4lpkx@OPV`Afa#rN*hHz6@887o|RM!)_8GPAOC1`ZmWmp^3au;C*|jUH1_ zSX4Z&q-^|z%Bt#`iPLAyoIO`0H-RK@#CbD#AebU1V;k9Ku#2s1CsD9{>^M>>v0!W2 zm+UL{HT#Br%hs{=>^t@&`P%RzZoJ$f!NoF(E7J zd0l|XL%@`%05f!j5_JX(DSYLVQ3oOSCk9WI!c#}#sZ59~5Esi%6ksCcj^U*u7^6ce zO18z-9-acH09=De1g=q}FRqE0IFw|N(YTJqkfNBFRk+rWg}6S0uBYT>@+z*c!Bg@E z`3l!>$S=5VBERFhgPg+kGzJ1C7s)ML?_j|YDQDCaOpsD@3QVXq#ek#sv^%cu)DPDH z8i;E+1wOPV?TKp)?S*S^+6UJp3fyQv+7H(OG!xexnuF^gT88TcT7hd7t;Tf{or&ul zIv>}kC@`ms>0(@8qA%h43I*o$4f-aoOX&x=E~CqET|rmk`YHVs*U#u9Tw7=hVQewO zyKD{mUxxlag`N_eCmDvunTU1%De@9oO0JU@s-(kd3H^XxqW7@COkwqG5&KzYEVGl1 zmAx!`SN4hQYuV4T?XrWiX4zGFyu4igoqUUYkNmj&lEPI{qL`$3PO(Yxr{aj>tm1~E zMX69)DpQpMl}{;ORxVW@QJzyNRF*1Nm9HvNHCgqg>YVD9s@=%g$j)ep(d$MZ8GT{& zz0p>qJx0fkE*af5mKj?Zk1~GN_(!#wI$fQs9;2S1{z<)EeZXXhNuf!V$*(3CO}$J* zOnaG5Fr8}JX!^YATc*oR*P3oHQ<_nU|wPV zuKB0t-iIz6&_!D z9Q8E!O!j=@ly$r#-Ity84dwUFQ3lZ@XWXU%p?VU%B6B{^tJK{!9H&1VjYP z3Rn~99=Is*SWs|KP0+VNw}JzM8-l+MZVgEbc_n0L$o`O1p#h=Mp~;~GLWhPf3tbcX zW9YWf{h_DAdWI#1WrvLjD-Ej+n;F&^_H0;lxMO%scuIIh_`Bhsgx`&bis&7Y5s@3Q zI?^bzPh`KyyvXMx--`S_N);6ol@L`HRTDKWYH8H5s0%%N^-S(Lt>>zq$D>`NbE0QN zuaCYE;~P^RGb!fhSo2u>Soc`J*t*yqaYk`Paqq{q_LB9A?X@!AB7SuI>iBED!+THY zy}Wm8pTIsbedhJ~t)$u3Z$jUUzPWwh>$|G&w|#%$0oCnYW=Eu}E!?Ua=%$5Sq)dZvy{{UG&nT4LJFwC~flrkkZZ zrT0nipZ;3B@OKb+y25t7j>qcLMu#?5|x`c3KgTYroGvHf4}e`J7WK<Zm(`TDC~Ha9yICu<)?|H`^=sCSto>QXv(9JT$aV-*+a6+vZrT1ll@lqs_Y-L|HwX(eIq9zCoAWvob5UH2PO=hJ@CDOmk0R_3KM`ra`i-4G_F6$+!7qh<3Ktb#Es8Jts_1%gQt`XRD~b;m-x}vXu5#Sl<1UxD zmSmT_RC1uyskEVVed&=hSy@rpD`gwYE{^vfKXUx4@z=^{Oz1UX%7k|(Y@cvqg0@0k zVPD}<(X(P`#Zwh;ReW2qz2ZcrS*3erRORr>!pic>NtH7y8!F$g{J3&W<@(BvmD?(J zSKg>Hud=V|RuxkP9~(q?93Dmi5#4h zrGdsmphI%K0Rjg^0wcuLC>iBHmah7Tbmc#!D;`Vd+L2hku5{>gLJeG(di;r5adFi| z@}Y2jbzF5#6?wk2wy>DYuPiSsBy*unSCZ+%wN|)R3fI!=DOI(kU?Og0MD5htYBHpb z#|NT(N*s7?a9jxCR}10F>!!p^xbha@It;%$;wmFn5L;{n*b-NTkfwxC1C0~y#B*@S zS$0D9Jba`~EmK2ady&nA@54fw2R%#o(s$@oT15L(M()D@1mPtQ+LYLbT%Uw~#%{2i zj0-I?=&aANmxW${CXN)I(+G9@kZ!=rnwUbAV`Kv~BSuz17iQ!`XiPF_Y8#*t^ZP2i zL2=jDKs|^lQ!ph{L7O#ZYG%SrnHe)@6BvXS(7|h9DBqN}(l**oJE)c`s*Euild~dL zjHe7Gn4_ckJ8Jz~7^T|#Xa(MbK1k=h&hEKW@@B(2{bbF&9_K} zm`PSkHHov8rvyEgqI=s5f;@bjFw%>S5Js|CN>9WC@rI*-hn!wU zuk*U(^rAj?NFUp!kNrsx(hKyG9v?<+i8<7j{p;v# zWZi$ngJEW^5;Vqdd0z_Z786QV2_>5en99LD$Dp^(_2WBE!VV)xNGkwb1ihyKszxc9 zr_ZMw>jLl7D|0)b%yGO;kdITDfKqIsp>uk9i4=<5Uc|+x9!M8-WZd~YG*AhJlvTng zM0Q0RF184wvxiNu9@@g+eJU&riLiro`Vf)~{XG#Q?e9JwmKL3lfl?Vm#?c_?AclT0 zpcL+@nyRsKi9Q$ zBKkC_mR-Fs6l1P(cKSq;0n0%W@aXE}VZY+-CHgGFeXgOW{($--jD;e}y$!rI8AJxr zaD+f=1zsSu&40PNq6HF30(BKVFG24MNfC9U&IoS$zR>lFc+Wx)>ik&Pvvgj<6^d;i zD70}h~%S=1k{&?=lS3kl1J%8>@ONkhQpiy55?XdrjH!NQ%E}A zN<&@wD4_=o3l-oqgCGy2!|K|TcBkId9dHgjZ>6!+l6IpiXwwc*|5HdZjU>a-=22+# zOpM_Il*M~hMLp4GgJ?923Va0lavby+@U}yJ@D(s6B%n`*OP=G$pIX5O!4IMyD9;-{ zlyrw5O+&$LMDGY5>;W5EDKL(Q=Z2F~tfmdbjWhz25_n#>6TEJu^ZQs(5dv!MVC;}% zCYGR7BVap5pzyJAixfLx=LV563UxVRRdYaTPfD|aZLpN|q;}{dZtvrx;YsE5J&`=QxQge zXb?)}Ji{5@gqUF51i

LPmi*B@@m^yOACw7VGyI^m%V;fwuPt{#l@=h`7>tlmqTU z9Z|0wynPV3sW~`pAj;uo+M!f6B%?U=fd(UO2z7R8dBT3R-~d_sj_ zQ=L>hxo*nTY236rXC5j98on4QJR|@E@rsCm8^_TWS%4$%a@Abie?+?}G3!DwdgjtX zI*+~#iP(ij!_4{{J1&#UjAW)VYniVsN){t`mV3(M~e2RRje7Ss;e69Qk z`LFVw@+0z-@=NkZ3O9wf;zz|#ieDAKDK0DSc3aTx-EMa@wi;&*Xx8{>LN#%k6wO4< z49#54Gn(f$pK3nSe6IOg^POgcyS=-Id$4<+`xp=Aq4couu=cR?aQ5it5#W*GQQ%SH zy}gyS2DSEVjc@JKn%J7sIskebAsX2_H~*$ntIJ*J@)JM*yp;Bl(4sY4Eu4wp0@h82Diol`-Ily)-;Yi z-2n=?JI^m2_23yA9^+2?y>_McZ7oK6J9M)41R?Q1UfOBfLPFXeikX@>5pue}7(eZM zdiLpF%_p0GgTKx*hFFZ^O*l7rG_A+SK+{s+g-odhP5dsViNmhXH ztZbv~SJ`G*XV1#6%WlfdtA(qcxWdqnq)}IY!nJkOF z&E8;du|aGGXf*@Jv=!DWPt30X$jGtaQCzmnfOIefyn7^gZ7G?AJ)mjWnVZ8(*)Ued zK4fFr8LVcU6TJ$J_(Sp$`51Eex8!?hC!F8xAcx2iaG4Vr0hhsF?vqy1hDBf;YhWep zeU`)qvW4sg_B4B$HL}^Pna!bUR?9wMqu5+_1vc<^SuBfVXW6H07RzNYd`S$!6cKth83g&>qI%Y?hLH$ zXTeV!!B?LJXMG0yQ!jykzA5n0wcwmzfO9Uvw#06MV;&&8*z05;xk0XAm+Crc$Bva2 ztKC9yohGa=Ph-V<0qf4our<7bb?`;3^{-(qejOwJeXK)oVI6xHE8hoL+unw>upBG( zGOTPXv8JxTiuNhw;!m)Ke*^jAE3D3+LsI%0yM3QwCHoR<^>^R`KVVeG!}idJY{c6A zGuDS+zz2WDI=KZa+BU3=zmctwm$pL|+Kct&5A4M4!TNX*YxG}a1UU{F<`{OgPeQ^t zEohme$tkR!7qKQ?z;47{@b+6+9j{``<_=cjo7nrijZLVBWG42UXMu}iEy7wh4-(%w z$e)X_+U_R>@qvYer21$rM9yjY#aLpy3X%xGy4q^nIr8BSs@y7 zTP&p5UNjPNSv+JoH^`o$(7MbZ@mOH}v4?!>OkE&DcccE0#)BY%2h$K5feoH8Z0ulD zhnCUtv>aPE6X_(ZQ&V7{nMP;O1=zHCnl7Zz&}ZrM*t%JSEgNjt&{{f~zC|m*MPH(? z(k1jY`T~8CzD{S->2yAQjwaBzX(FsVN!Zp&rteZKS_uuHn%dGDnnK^Bsq}rChTWNT z`XSArA7LwL8LUCeX(nAsv*^b(n|^{VrBCTVx(b_0pV7fImwrz3=ofS~&8KVV5W1EQ zrC-uv^egQ1d`(BtZ|F$+EgePI(b0509YepPW9j#_fc}8B>POg`Hqc`F6E?c4!25s3 z&d^3$N`IjP=n8Bn{X~DITj@5so$jQ6(miw^-4E^kFg;3-(G&C}ZKkJTwK~uBd3uFj zrPt|AdYe9^Ei9R(kg22vJHijJpZkc+#!^0!O=6X-n$@r>*2LzsJXpULvz2TKTgu*{ zo9Je`h5kl=r#t8$bQf%42k0Ssg#Ja3(=+rOy+|+9YxD-aMIX>dbT|0VIx>(wOC0}A zki9_^JYbt_4110wJ~1rEvsKtI)!hdI{x=~G`Q9K&e+xe%{YPSlFb4c+4C9hD?g%EN z6_&78?IXliKMbR zlrsZ?zf+I9VHiz9*^|N$lE;Dwq#dFW?mYe#8TPNkT;eT*HKS`_g`^vsPQ3mWl8HYv z432>RMUYJ*0X$$-4o3c%Cx#T#lldU6+(T(M z+#e7}Sv48NvUNe*(HWQ0pod|r{$B;zM?vt5=YBP zyuc@>V_bs=VC(#`z|1i32jST=;A=4FWg9RThms!bAfD+$DdIeQOl*bu$LBepGyKly z5a%y^9z>u_1X(Pe@$ozhIBX|lWNQ(AMn0ZD1#ubf-w+qsHz;o(;(VS}k_3cE@B_{- zj0AqL8F^mD^F}g)twH(o0Ow--^Sb8~PuU+5t_zTd=;)FTngtmwm z@R=p@B!NzjpTtiEUdh|x1(Ni)Hqh}Di9Uf&yerUwXM8RTb21w3&<$hf!@mVNJ&kdh zfVMWAU)L~ZFt%78o=E|R8wT;f!hrJ|QaT^U35fGCin&a05i@3mvBASi%tJm_EYKFi z$sid;a6w+=r^j%A1;GXRFQU8$NaOX1{2*MMqnMMJf0#d%wIZ(yH1vjs(Tx1xVa?%n zdt!_#C0wl}{Ay4p$N3xr$BmcC@D2|g7XWj(!fi2?Ev$Um+BLS0g~CLeO5peK2h#@d!OIKJ(Z_ zlEVWu_Dpg>dxOQ{R3r}(WQY({Bn|D6#>+t4_Tqt;MV}#|JYem}7D6E6aVRSmL3)=S zCmvKw+<9O{c%KJ*j5i*>BK@V1_Sk(M_z(j96#Qd6ENstXJmU-;+BXEd9vT);!dM#k z?*-z9`4JD;pA7?E!$<)_h7|Y2y)QxnLOwzSLJXY%4dgb?TIP`MbRg_I{fRwI72=+- z+}P2f#G7Ulmw%g&e6CGmH;5IxNvvd9q&vHedj@gE7_*Y)6IWS((p~0`a{nLK3rQIR zl@RnMsx&9XE4~e=Tiv-+E(xEXW(+98^-9*3iCy6+X zJc9m&_S--rp;5aaIFsJmn?$WmL>u==+BWtdI+Ay(L87!yI_NRjyTEUNN@Hb;#bh$ zek53yL}GbhlQ6btLXY_i;}vs?zK-$r8^--;(pO%NxuL;$NFwQ&lY!vdA*kPvJp+E6 zLWau}7*8)_9C04aLx1AM=>_i&0{_coZX}sSp`Cgm?v6G+1siZP=7a$r6xnIk9AA;PXSl6WUSV8|eQYkRke`oO2{f?na_8FT>DVi3q;1O}vS4 z5}^no1tD32Kg6Af`BLC{c;1Z&JboJi&mcGaJv?uaHozdx^Ik*fhma(ta|;7QSvMt^ z=NTu3CzWlOCX_*^1BXi_jYdo1eca!XLM?3hfr!sSn1=xSD~(0|Qmt0%lVINV90TsO ze?p&rg2T=fL9X91&VPe_U^SINH!Ozc`XW_8!}WoVtc7J(NmUs4mxO&wUs8g-B@^hX z+o>tp!Sy}pz5Y1$X(8B<1EBBNkU(lncEV2m2P~B>WEZqSXpSU^>x7VSTp;PVLSyVk zyF-h`iCC(k?i6-*>Ipn|Q!nVeWn>@r1$@X$*fHRGd<0rJl0;Eo=$Zbofd@eMZ-q`7 zM1#SnLWC2iF=Rgt$G9I)4noi5nrTn8UM$9a3>CCh%!+t&1s3NYDBmmSL(XG%@m-Px zSQRQ^#Z9D1(3q=WtxJYJo`#bjgmCRK6?6JBv`2n8aw0Uy4A@a7<0#@JXpjTY@BPUm z=#g3AYXhJ|4g{A!MC#}u=xNi)6hV{BqxmEYI^2z9*)ocbGM`n@PWG3{+Qt|;UBXh`FSOTtNg~=E7W>~^2uu8N+&#fZQ;OOH} zXu8m)$uQ{owWJ<)oq5oiCCwU^gAve_XFy+`1#8eKaur)bCv2Y*GsC);LrN&H58))vKUUuZBMT1vKfk(4xPB2K^1R=XKDWzk}BN12pCh(3XFOmi!BJ zV^L?_3axb;^w#arTz5iu{S(^jZfMJU1%3GdH0DFlnU6qg{tJ5ZaY1uFCFss)pgo@x z^yiDvpf3wL^fhSFH=sw~f+l^3-lg~GeQ3N7q4Typ@x;ZG&T2gAgu|20GkC(j<;{Fx z=kjHK%%26YKo-P;SqRRfgt2fI!6I1{>j`Ucj9?$@#o}3SoL1?}5?CUvYS8joDnC2H zPe#DzH$brYWwRXE+Xk`0u%zX|A~*!Lz+r4S8^K1x-Zq+zfjzH)6$mIi(EMQN;-uE;tll+9tB3K!oha~$WxeJTKOWZyPJK!s@R4!q!vDaatd=oax zx7j%it>Z8C%UhXJ5cFvX)rE66XeM+bSZ5 zJ<HHh^Ep&e9>ZAZxwFK!H_V=({Zh`gf8(1>e z!7BGDY;Hdj1yRFN=Lt*W)36&pN1lcKs|l90i?AX7%6@>>FdtS=72Cjm!ZGfR>=&|t z+rh|dY%?*3-S8$(plDztbcdC43GAh>!1h-N8(<=AhVQT~un@iptKb`KE3AoI$#>YJ z*ao{9x1sG64u$VxyV)ML_dlJ4fc^9|I|FO!Id-01fJN>StZ`RhHND2Ji>H&=ZFYy< zW%t;9_JBQPk6^hy28m%YWbDIOum2*)C422D*1}p@8*5i47S)zaEm0*_6&BalRI3te z%4(`hDpZN7g~e0qN=%ZA%WI3LRFzhiOjjq5tEnq2E-tCAQ>GLbA~$ZeHHCG`RG|!I zs*tEo)n`+sN~NZXrJAI7mZq9gU5+#P;p%jKc6mloVXa9h@oE-S2^QdLN0(H`FP&><2&;x%Y}kj`2>>}>q7h-7&s@K9EZ?tcjaxl5IzBe)I$sJ8OHxh|>zwjfol~S%nIesiDZ<#8B94t|Vl~q`t1+IY9~;xe zu`#3bp>l>eHf9R1sb}iDMOHetRDm$IT)0*WjT#viD&51Rd$@Fu5bvSVJyyz>)>BN6 zmGZ?#O8Is7DCs>Zf2gip>AkRMDZemiR<}FILJIE8&|cwM(M(UZVJ3l&&2T z6OHpRMGDL7if33zF+OD~N{VNQEt@3OkR;WRB-M~Cm7FZKc(O!EijjDbW$BqeIFcDd8C@;Tb966Di>rDd82V!%J7bRDYy|Poxe{ zT|OPGqhD8#gm08oew0*SlvGcYt~?!nQhiYp{yio9drJADB{*8DCsx-V5+1QqzF4W= zM5#RzrS}rW_o8$&JTb|5ihhJku`VNAsv$|LAxWwsS;90~!ZcZGp%kgc6sg7(3DXp* zoD`{?6bZu=shm_Pf2x!}Rmz_#JPo8IE*mMvCnLSi(O=7)gM|5fzmp&;wYaOXLiI#rBSp+A&Jx6i63GQk2xLQK`br z0AAt@iAojd1T4`jah52t{gE!wDRLUX5}i`NM2VaS=@MOHKLHl|D@x=@fF=6G{zJP< zbct&OU;%&Jg?>VQiT+e6pESdwz{zHo)Yb&ol`0{z^IP3C4jI*rhq!}?sf5EaW8G72>aF`*9r6^KxW5aD(3h*SrUigk!FUWbs6*CFH+>ky)19YRK-4j$tx zPdBi1~o#y@umV5VtlemDN2^&rb3YtAiN(MBaDmi&=_Gn;4X}N+=X#~yU_o* z3*#Giq2F;A`WttlpK%xZFC3rR2`gi$#4kdV#Ca5&B$X$w&B!N}7cG?+EtMB7l@~3J zhfryaj*{kkl(eEnC8e5AEUbmRTT)slbcuxk)(V}?yTITvZ!N>e9JZfWQd?d#j;nc4 zCB_Bw?{@H2lFO5mgNq9%mxzQV3Ii4d>+ZsY13?lTood>NSY4@^0a|sX#wC;MAm-PV zj1zk=tfxG6N^OnU6-iQ4CrKrVO&A`UC`^g)P*KPLEY^rV7v2k(#HY}tC=)?|F0QF6 zDxP6!5bs1kN|H#Tk|chRB=G^MpQ6Nm3XKwx!Cj~XcWJ&SN%LHic%r0!j*=vwC~19& zN|N}Kv_3>7i|<89vRy=Iw6P$Ib7YMLah%75CXNVA5|o{Y(B$C4$~q}c97jl#U=g2) z&_rWF6)<>Pq#(t7HI&48@?4TA|+xNE}|>6N_bMT6CY2(NrMxU2c+f& z^IruS8x|flHatAkmGg_xq{t^ebesWZ`J}gSvJRU-+={Mf5p3l|(IJ@8LkT|#p8>lq zcEn(xUPpe$$tVrZ3B3YK=tuZk%aqx|hW9kAVh8XAxRuOF<}UM-g~?)NiL!pOS7aOI zMsiEJBTg6k%7@68;I!&G`CWONLas1X*y3w&FGZlDR8g(?NU=)smEx-6p3+{~P1!>k zqKsBfRjyJVQl3;^P~K2JP=%|iR8v%QR0~v#RZCP$Rm)YYRo|+9GBP)cHL5gPYjn=& zn$bO@cH;rYxyB=ncN*_EKBo3p=c!*;zo%ZQ-m5;UKCQm2zO8OCVJ2#m{w9M>Mwm32 z{A9A#CMQhYO|wmhn2s?mHLW&%&vd2f7pCh>Tg_xlz7UNs- z7IS8vVLsn{k@>6Ux6B_|P>W=X4=g^lq?Rd`nU;B$qb$c+R$A6s&bFLydDzO)s@7_z zRio9jRxexqZf$ApWSwF?#=6wH+Ip(>TCy>0iA-70)H{)62nyB&7>?2g%;x4Uki zY5%hQF^BFBc@Co;N*!t();nx;*yb3Huf~%cUvk{!By$>tZ^dhzmO3qWTJ7|W(*~z4 zPJcKZaCUa~aQ1i3abDoO*m;TbQs?E)7hLRI++4g}f?T3p#<-NaRJ%-dIqo{Zb)%co zEz_;h?Gv{(ZfD)DbTjQ{+byo!q;4N|yWKsd`+)Ab-A8u+N@Jzzt4Y`7Xr9%)qS>z5 zqdBZO=`M3uyIZ+Cx({_PaR0`AgZmv1FOPhWS3G|8xZxS)u1XU-CZZN&jUCq1u5`$vzCem;7Cv^K^lW?;-~F-v2X#jK9G7tH9|C5BfIuy_{f_V3ja1VOT;z!i0pnggFVD5_TpWNVHGvo%meh$t3%v z>ZCPE$C7=M$0vW1+?*1WGCSqtlor_h3R737UQfN3+Lk6uQ>R&_Ii___^GORzi%N@6 zOHS*bHYjaa+Ss(xw5qhawApEk(w3yXo3=7-ExtM5l(sYNK-!6PlXOjbR{H$(<>@Cf zj59nkMrSO}cs1kgj1MzD$yk%IF5{<+Eg3sA_GkQ+aXLfWFScJsznp$U`i<^4uHU?V z@AUhn-?jcB{fqm*(f`4KVFShus2#8&(=5|BGdXi;W<_RG<};ZeWPX>qC-ZieO;(?* z%B&69s_e+@QQ5`W6S9|NZ^}NEPc@Y^>ebh_R!`mW-V?cH!99$Nn;Q-`ERd?~HvkR$HJf zFfFhy2q}mv=v9zdkY12gkXukyu%O_%f|m+b7Hls#RY(hM3IhvM3(E=@6|ODZTX?3( zyvVbtS5ZmPGexV5eknR$^sv~qIH9%a<-*ym;aFZF`Pn;8^e*I0F1WwhS5sU$2~ZbkFwRZ_G?V;=9-Zc!4aD?T;ko z4Gjv)XvdwqO^UmBIuLDADAk{RrdBr4h=>Gjag$KK3gy?chseIb05<6Y-|Pb4?gDS^ z0^iWXucG_}(qvLIcI3#BUiU5?KXzkgvJTV#OcYRnrPMT(TQ-q;}vop@nY+W)JN&D72y^={0Xo(q4@q? z+h!5cx2MV1N!lvy1np#_`r_g;xZ>hO>;rwNdJMv6>*6z|0-r0@@-F)Vr?1xu`$224 zqtqm)I3<+XgcWY=ewr>t$b7v&ehJ*&fwlSHa0dY>epX3Y}k;3 zJt*!$KUK(^jOB{YK09gYX00}EkVQn)*Bkcdb(AjlXCWwXIC1<4-0>6MeG4YRO_?#R zwzhU`U*81ss?zbos#UAbIVNI1=~boEISx1>y`BteXuz)@wY4>w$R0Fbz2DMCjP2VW zG+0fXI5FAb>Q6uY-$vUWEzjjh2j#Mi>g?XURM%T}NZn0wvi;4=z_V(~YUz+&c_~ye8 zKU((Dhac|aa6Rd(>szI^qqUtXWQ|hWs;a_q-fByLwYcD4xqPJJ5GWun~^~=E1dXn4F zU?x}W-o1PO0snxIkPwV5Ucap4@%me}3Vr>?$QIy#U_V|mY=`}zK-+cSc*Iz#oGmLd$wr9_t0|x^FLqkI)%>Gl$7$aL?z`+A}NyKa{+Q>rJ z1H*@ph8sRS5u3cvsvd)kbr2b#>xF+g=MBg9CA@72w{?M={|kJk%X9NC@VYMWDLwog z=yVv}4{Rwa$opT=>!_o5T*O@>3|; z)z_)z%xSnYtuDUd*%M~Zo;7pU*I%yw?906h-%%;pb6+X=<&Fh`>b+ln`DIvWAY5oz zbv5{G?QndR+|ZzU)Qag$)JBb_O2zG?M-Rgt*!9f|(nOPgLsaT4X%bmV%|}Mb7xit5#os{q_3qDk^H= zDk{EP4=_c1!t>OV478YxuLcO&*|^Kvpe!~)U;O-YU0c=hkr5Q=3l|t)Y|~r6-W1SkUB(6x91VKG%Ym z4fIE4^0qeFh0A=zKVGxQ&)b2OVZT~-f$w#J@deIf`8~S8JG#Jk^>76!O(4&jPc1Df zD)N7H`p|E1J9Z9%!1Wa8S%QBG(6cz;u}tvKBi`j{Jt=N5>*!FsXzp(QedABt_UMRe zGF5AO_J!*eCu1EQhP+#=$Dsf?81-=0UOIOC_{kHg(*&I zTHrdg)27XW8x=wF8X8QE>^vcQ!1;7boh;258m&&zP7?eS?Nll?^u7C!%^DS6H*8(4 z9v%-&^u3wFd4$LS&_cjz$@NNs>0nRYu=qpoyc^7&X@8TqA!$#3}Z19A3ffdxLvp9S0-Xx)Dp;T2t_? zA@_^PVn~CARNX~B5mw>|C`HZkYIgYCAXW#ylmuhMz!`0O6+<_6AlAPGb+{6g4FA#hKsW;^2cW)<< zAL;G85_iG`Oz3z-6{;qx5@S+JWuqon9TzN{G-K9RUwyT1{m7AH;YN%Rb628g))1IFEVu0aW$-K1fPN<$X|xPeU=-A%-=Nm^p{_+xbD1{sT3;>%y+u3zKs z+4{zhtb$-(T{$G$_s(aZzYHLNw;xWin2icuG zX;+ahtRDi~7h+H2tCP}(Mx{(a+gm%d|5nLs5Oh9K15*76v0O{St2$dS6Zl!`#)NZ7 zPGMnTPKa|VtN`4<#m@sOo%g--&O0ZZ6UdwOBuh7pjax1q-SN|pKmG`P*a#Y?^4Q0X zjg3;jj7F&jyzosFBNS+47bw&aX!p-Ga4A7p+05HoAp!Z=DIZ*h>4H~NQc@Cbv>(cW zxE9o-mY`j~ZP{|*ehtU-?iz{YlOfgDy!$f&6_)?$L&=g!+o+t-lKmSY#z(F zRw4Lh_^@DLLlZgQ*f|7M;t+InXkc1K8~)um2t`*%<%FD}VLq}5c2~btJYUM{O zZlrb!LeP;tPA^-w?5u~NM?q^9CzjFaLuZ@!GsdkfGV|y?>x!&s^ zG;pof$l?EjZ2L~KJ@5-dPt?adDHeOPUEcyPqXkUFQFU466kRww13wVJ{mbadrTA&E zg=D@L#`wfhxsxhO;VLJ2J=nZ?^S$n#u5jJDZ}=8-<@fuRNhxH$Ux6r@(UTyg)- z!$$KvC$|5(bNBXbMnpENh0J9q9s)@_0e&CQ>DjO=>K#9rtsC7b9a&MaVQjEF?0w2)B{J#~$Lhc}Yd8Fc-{yhQFBwViV4Oj<90p6Z+L#f(F5bJIKu*x>_nH*i4#JGpl3c|l z6!nfx>%TjH0n5py%Sn)KU>COO|KR?;mj2nG(X{R{$_dNwynGV%EHRBgwHnk z*YQ2U`|$4x{#~+EzJJ@#zs4sEKZWuQ`M5rTGzvC-{E`N1puDy2+{Y?J@84-M)^_lp z62Sv}IAdazpsk`tCK46gHe#~tPuLS6#GJ%$-Y0_#y@oaY9g`kkezATFety2DX5u6r zo2lm#H6(bITycO=p;LG@&+}?j=oHEhJg#qC?xIbc?gF3f02NcqCy)omqTV-c8mWbNE0ZT+t76`qIfj}ZrXnm7jSJ>4=+r2>YD8^#-LMDm zc7fgX@I2mQ_phD5aN)wuwr$(Ck?>*3;MC7R@~wA2e-VEba8ssT&s1s)OFPT!`@qR}o2GGauM^|hUQ4nDLG%^G1SE3}{#L%fZ;z<0X9m%G5*^soYSHR_?&fcj3# zje`Zx_2GpRA`OpGoi@I1Le;c+=g&P(@ucd4@sKmBCQY3-%T#EACsS@}>E&m2^ThEJ zSMPzqMn}Vj`0|&%Cpw$LR%iRvGzbLYN9u1LK+ir-5Yt4sH98rY z%5I-I4KeDBW%AIWLz8^Hz2H2Y&E$>F&AU!M-sOT(f4&J-6g3Ty)g= zMY6gSVPog+HH<&K5lUm%*xlUK#Z=LL@ARn~WX6nKr&gl4uzKObg%^VC?vS58)l_!QO1^x^I8@anfX- zrDA9dI;%m|(Wd2`iZy!PJaO>&F>VMwdg!wkUU*?6d8qA;{i!@ZA8teR@`T`MI^S^3 zxu@@KvG=d*;WfZ3+{?$?$1gNA*w4$|&d$!mDd=JwgACp5Pw%cc~==MR*GLwhe3tyn$S6@(&R;SzIK+!w(xalvGWfS}}5PP7eO;L~!HASJzISTw6UfF2Lx3 z@%PB}{dWh91G3Vvb&UbS&7xdCmd(rLQh@y4ZLNvA(ayF<+ZhOwM~@#rf9d-5JNPe* z4!EXZ{5rW?4<9&BPiIGKYiEaUG5+ed+xJOnX|nN!duqq~Kfd+WTR+}+Gf{JGP2Y1q>^pE=VO4jz>l;LCZGm#2rDm5O+JYUI1Yly=KChAYw?*bod?B-#bO z`d{EPU7lNZfq&@&KhneRp%onc?Uhim?_D}^_T0I%r*2vMB#q&!Q*lv}U}br$`>b?t zvKw~e@4gp!Vez2&UMVRl!T#Ppe8bqs`$?^Wy&!&oz*J#u)x-Jnu^a7;J#=mJx0W%3 zIn}&V9&S+ot(~}RZhiaKwQJWX)P%M+LJ@V&88I9p#C))9(a#4|3Iisz9{8?L#MGA{ z8z+$Y4Gl(e#dFU+_ri;nmYpeH~6=#%|ts?&iH)myqGo&3iY`9o{SKdrp};W5 ~Rl&Bf`Ai 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 F{a;$^yfXj* literal 0 HcmV?d00001 From 7e82dc4436df49d2a07e477763916635d7349ce9 Mon Sep 17 00:00:00 2001 From: 1011025m <37438176+1011025m@users.noreply.github.com> Date: Sat, 13 May 2023 10:31:05 +0800 Subject: [PATCH 12/19] Didn't pass the -a flag in git... --- Bloxstrap/App.xaml | 2 ++ Bloxstrap/Bloxstrap.csproj | 1 + Bloxstrap/Dialogs/ByfronDialog.xaml | 8 ++++++-- Bloxstrap/ViewModels/ByfronDialogViewModel.cs | 2 +- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Bloxstrap/App.xaml b/Bloxstrap/App.xaml index 8f4642f9..3ac28c3b 100644 --- a/Bloxstrap/App.xaml +++ b/Bloxstrap/App.xaml @@ -11,6 +11,8 @@ + + pack://application:,,,/Fonts/#Rubik Light diff --git a/Bloxstrap/Bloxstrap.csproj b/Bloxstrap/Bloxstrap.csproj index 05de60f8..60a5348f 100644 --- a/Bloxstrap/Bloxstrap.csproj +++ b/Bloxstrap/Bloxstrap.csproj @@ -14,6 +14,7 @@ + diff --git a/Bloxstrap/Dialogs/ByfronDialog.xaml b/Bloxstrap/Dialogs/ByfronDialog.xaml index be0b9870..30dd0abb 100644 --- a/Bloxstrap/Dialogs/ByfronDialog.xaml +++ b/Bloxstrap/Dialogs/ByfronDialog.xaml @@ -23,7 +23,7 @@ - + @@ -35,7 +35,11 @@ - + + + + + diff --git a/Bloxstrap/ViewModels/ByfronDialogViewModel.cs b/Bloxstrap/ViewModels/ByfronDialogViewModel.cs index d1743d5f..76090468 100644 --- a/Bloxstrap/ViewModels/ByfronDialogViewModel.cs +++ b/Bloxstrap/ViewModels/ByfronDialogViewModel.cs @@ -12,7 +12,7 @@ public class ByfronDialogViewModel : FluentDialogViewModel, INotifyPropertyChang // Using dark theme for default values. public Thickness DialogBorder { get; set; } = new Thickness(0); public Brush Background { get; set; } = Brushes.Black; - public Brush Foreground { get; set; } = new SolidColorBrush(Color.FromRgb(235, 235, 235)); + public Brush Foreground { get; set; } = new SolidColorBrush(Color.FromRgb(239, 239, 239)); public Brush IconColor { get; set; } = new SolidColorBrush(Color.FromRgb(255, 255, 255)); public Brush ProgressBarBackground { get; set; } = new SolidColorBrush(Color.FromRgb(86, 86, 86)); public ByfronDialogViewModel(IBootstrapperDialog dialog) : base(dialog) From 74d15c9bf38f58fc6e32cb34def670f3475aab29 Mon Sep 17 00:00:00 2001 From: 1011025m <37438176+1011025m@users.noreply.github.com> Date: Sat, 13 May 2023 11:57:16 +0800 Subject: [PATCH 13/19] Add Byfron logo --- Bloxstrap/Bloxstrap.csproj | 4 +++- Bloxstrap/Bootstrapper.cs | 2 ++ Bloxstrap/Dialogs/BootstrapperDialogForm.cs | 3 +++ Bloxstrap/Dialogs/ByfronDialog.xaml | 3 ++- Bloxstrap/Dialogs/ByfronDialog.xaml.cs | 13 ++++++++++++- Bloxstrap/Dialogs/FluentDialog.xaml.cs | 3 +++ Bloxstrap/Dialogs/IBootstrapperDialog.cs | 1 + Bloxstrap/Properties/Resources.Designer.cs | 2 +- Bloxstrap/Resources/ByfronLogo.png | Bin 0 -> 15113 bytes Bloxstrap/Resources/ByfronLogoDark.png | Bin 0 -> 19543 bytes Bloxstrap/ViewModels/AppearanceViewModel.cs | 2 ++ Bloxstrap/ViewModels/ByfronDialogViewModel.cs | 10 +++++++++- 12 files changed, 38 insertions(+), 5 deletions(-) create mode 100644 Bloxstrap/Resources/ByfronLogo.png create mode 100644 Bloxstrap/Resources/ByfronLogoDark.png diff --git a/Bloxstrap/Bloxstrap.csproj b/Bloxstrap/Bloxstrap.csproj index 60a5348f..84c8b59f 100644 --- a/Bloxstrap/Bloxstrap.csproj +++ b/Bloxstrap/Bloxstrap.csproj @@ -14,7 +14,9 @@ - + + + diff --git a/Bloxstrap/Bootstrapper.cs b/Bloxstrap/Bootstrapper.cs index 5b915ebe..5d57f8c6 100644 --- a/Bloxstrap/Bootstrapper.cs +++ b/Bloxstrap/Bootstrapper.cs @@ -709,6 +709,8 @@ private async Task InstallLatestVersion() { Dialog.CancelEnabled = true; Dialog.ProgressStyle = ProgressBarStyle.Continuous; + // Byfron dialog specific + Dialog.VersionVisibility = false; } // compute total bytes to download diff --git a/Bloxstrap/Dialogs/BootstrapperDialogForm.cs b/Bloxstrap/Dialogs/BootstrapperDialogForm.cs index 64e5c5f3..3bff2447 100644 --- a/Bloxstrap/Dialogs/BootstrapperDialogForm.cs +++ b/Bloxstrap/Dialogs/BootstrapperDialogForm.cs @@ -63,6 +63,9 @@ public bool CancelEnabled _cancelEnabled = value; } } + + // Byfron specific - not required here, bypassing + public bool VersionVisibility { get; set; } #endregion public void ScaleWindow() diff --git a/Bloxstrap/Dialogs/ByfronDialog.xaml b/Bloxstrap/Dialogs/ByfronDialog.xaml index 30dd0abb..6bbaa090 100644 --- a/Bloxstrap/Dialogs/ByfronDialog.xaml +++ b/Bloxstrap/Dialogs/ByfronDialog.xaml @@ -15,6 +15,7 @@ + - + diff --git a/Bloxstrap/Dialogs/ByfronDialog.xaml.cs b/Bloxstrap/Dialogs/ByfronDialog.xaml.cs index 92b01d61..6ac5cce9 100644 --- a/Bloxstrap/Dialogs/ByfronDialog.xaml.cs +++ b/Bloxstrap/Dialogs/ByfronDialog.xaml.cs @@ -2,7 +2,7 @@ using System.Windows; using System.Windows.Forms; using System.Windows.Media; - +using System.Windows.Media.Imaging; using Bloxstrap.Enums; using Bloxstrap.Extensions; using Bloxstrap.ViewModels; @@ -58,6 +58,16 @@ public bool CancelEnabled _viewModel.OnPropertyChanged(nameof(_viewModel.CancelButtonVisibility)); } } + + public bool VersionVisibility + { + get => _viewModel.VersionNumberVisibility == Visibility.Collapsed; + set + { + _viewModel.VersionNumberVisibility = (value ? Visibility.Visible : Visibility.Collapsed); + _viewModel.OnPropertyChanged(nameof(_viewModel.VersionNumberVisibility)); + } + } #endregion public ByfronDialog() @@ -75,6 +85,7 @@ public ByfronDialog() _viewModel.Foreground = new SolidColorBrush(Color.FromRgb(57, 59, 61)); _viewModel.IconColor = new SolidColorBrush(Color.FromRgb(57, 59, 61)); _viewModel.ProgressBarBackground = new SolidColorBrush(Color.FromRgb(189, 190, 190)); + _viewModel.ByfronLogo = new BitmapImage(new Uri("pack://application:,,,/Bloxstrap;component/Resources/ByfronLogoDark.png")); } InitializeComponent(); diff --git a/Bloxstrap/Dialogs/FluentDialog.xaml.cs b/Bloxstrap/Dialogs/FluentDialog.xaml.cs index ff65b081..dd88b7cc 100644 --- a/Bloxstrap/Dialogs/FluentDialog.xaml.cs +++ b/Bloxstrap/Dialogs/FluentDialog.xaml.cs @@ -63,6 +63,9 @@ public bool CancelEnabled _viewModel.OnPropertyChanged(nameof(_viewModel.CancelButtonVisibility)); } } + + // Byfron specific - not required here, bypassing + public bool VersionVisibility { get; set; } #endregion public FluentDialog() diff --git a/Bloxstrap/Dialogs/IBootstrapperDialog.cs b/Bloxstrap/Dialogs/IBootstrapperDialog.cs index e66b6875..53b816b2 100644 --- a/Bloxstrap/Dialogs/IBootstrapperDialog.cs +++ b/Bloxstrap/Dialogs/IBootstrapperDialog.cs @@ -10,6 +10,7 @@ public interface IBootstrapperDialog ProgressBarStyle ProgressStyle { get; set; } int ProgressValue { get; set; } bool CancelEnabled { get; set; } + bool VersionVisibility { get; set; } void ShowBootstrapper(); void CloseBootstrapper(); diff --git a/Bloxstrap/Properties/Resources.Designer.cs b/Bloxstrap/Properties/Resources.Designer.cs index 202cd2e8..2e365792 100644 --- a/Bloxstrap/Properties/Resources.Designer.cs +++ b/Bloxstrap/Properties/Resources.Designer.cs @@ -59,7 +59,7 @@ internal Resources() { resourceCulture = value; } } - + ///

/// Looks up a localized resource of type System.Drawing.Bitmap. /// diff --git a/Bloxstrap/Resources/ByfronLogo.png b/Bloxstrap/Resources/ByfronLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..5e0c9e8721212f48d6e15c9a0d4971fd098d83a5 GIT binary patch literal 15113 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

3oAyk-M;{J@OknAR^zdstw?QJSZ_42o1ODEKc{ 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�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 E0ZAhxj{pDw literal 0 HcmV?d00001 diff --git a/Bloxstrap/ViewModels/AppearanceViewModel.cs b/Bloxstrap/ViewModels/AppearanceViewModel.cs index ba85815f..228385c5 100644 --- a/Bloxstrap/ViewModels/AppearanceViewModel.cs +++ b/Bloxstrap/ViewModels/AppearanceViewModel.cs @@ -36,6 +36,8 @@ private void PreviewBootstrapper() dialog.Message = "Style preview - Click Cancel to close"; dialog.CancelEnabled = true; + // Byfron dialog specific + dialog.VersionVisibility = false; dialog.ShowBootstrapper(); } diff --git a/Bloxstrap/ViewModels/ByfronDialogViewModel.cs b/Bloxstrap/ViewModels/ByfronDialogViewModel.cs index 76090468..4b5405c1 100644 --- a/Bloxstrap/ViewModels/ByfronDialogViewModel.cs +++ b/Bloxstrap/ViewModels/ByfronDialogViewModel.cs @@ -1,7 +1,10 @@ -using System.ComponentModel; +using System; +using System.ComponentModel; using System.Windows; using System.Windows.Media; +using System.Windows.Media.Imaging; using Bloxstrap.Dialogs; +using Bloxstrap.Extensions; namespace Bloxstrap.ViewModels { @@ -15,6 +18,11 @@ public class ByfronDialogViewModel : FluentDialogViewModel, INotifyPropertyChang public Brush Foreground { get; set; } = new SolidColorBrush(Color.FromRgb(239, 239, 239)); public Brush IconColor { get; set; } = new SolidColorBrush(Color.FromRgb(255, 255, 255)); public Brush ProgressBarBackground { get; set; } = new SolidColorBrush(Color.FromRgb(86, 86, 86)); + public ImageSource ByfronLogo { get; set; } = new BitmapImage(new Uri("pack://application:,,,/Bloxstrap;component/Resources/ByfronLogo.png")); + + // When cancel button is visible, version number is hidden. + public Visibility VersionNumberVisibility { get; set; } = Visibility.Collapsed; + public ByfronDialogViewModel(IBootstrapperDialog dialog) : base(dialog) { } From 2a24a0526fe470d719dbc9b1303dffbf46eb1059 Mon Sep 17 00:00:00 2001 From: 1011025m <37438176+1011025m@users.noreply.github.com> Date: Sat, 13 May 2023 12:05:20 +0800 Subject: [PATCH 14/19] Fix padding and visibility --- Bloxstrap/Dialogs/ByfronDialog.xaml | 2 +- Bloxstrap/Dialogs/ByfronDialog.xaml.cs | 2 +- Bloxstrap/ViewModels/ByfronDialogViewModel.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Bloxstrap/Dialogs/ByfronDialog.xaml b/Bloxstrap/Dialogs/ByfronDialog.xaml index 6bbaa090..1e779edf 100644 --- a/Bloxstrap/Dialogs/ByfronDialog.xaml +++ b/Bloxstrap/Dialogs/ByfronDialog.xaml @@ -23,7 +23,7 @@ - + diff --git a/Bloxstrap/Dialogs/ByfronDialog.xaml.cs b/Bloxstrap/Dialogs/ByfronDialog.xaml.cs index 6ac5cce9..411930c2 100644 --- a/Bloxstrap/Dialogs/ByfronDialog.xaml.cs +++ b/Bloxstrap/Dialogs/ByfronDialog.xaml.cs @@ -61,7 +61,7 @@ public bool CancelEnabled public bool VersionVisibility { - get => _viewModel.VersionNumberVisibility == Visibility.Collapsed; + get => _viewModel.VersionNumberVisibility == Visibility.Visible; set { _viewModel.VersionNumberVisibility = (value ? Visibility.Visible : Visibility.Collapsed); diff --git a/Bloxstrap/ViewModels/ByfronDialogViewModel.cs b/Bloxstrap/ViewModels/ByfronDialogViewModel.cs index 4b5405c1..bbaefdbf 100644 --- a/Bloxstrap/ViewModels/ByfronDialogViewModel.cs +++ b/Bloxstrap/ViewModels/ByfronDialogViewModel.cs @@ -21,7 +21,7 @@ public class ByfronDialogViewModel : FluentDialogViewModel, INotifyPropertyChang public ImageSource ByfronLogo { get; set; } = new BitmapImage(new Uri("pack://application:,,,/Bloxstrap;component/Resources/ByfronLogo.png")); // When cancel button is visible, version number is hidden. - public Visibility VersionNumberVisibility { get; set; } = Visibility.Collapsed; + public Visibility VersionNumberVisibility { get; set; } = Visibility.Visible; public ByfronDialogViewModel(IBootstrapperDialog dialog) : base(dialog) { From 58932f4b340a81f4b12a9fcb9349e217add307da Mon Sep 17 00:00:00 2001 From: 1011025m <37438176+1011025m@users.noreply.github.com> Date: Sat, 13 May 2023 12:13:15 +0800 Subject: [PATCH 15/19] =?UTF-8?q?i=20forgor=20=F0=9F=92=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bloxstrap/Bootstrapper.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Bloxstrap/Bootstrapper.cs b/Bloxstrap/Bootstrapper.cs index 5d57f8c6..44d4e0d5 100644 --- a/Bloxstrap/Bootstrapper.cs +++ b/Bloxstrap/Bootstrapper.cs @@ -793,7 +793,11 @@ private async Task InstallLatestVersion() } if (Dialog is not null) + { Dialog.CancelEnabled = false; + // Byfron dialog specific + Dialog.VersionVisibility = true; + } App.State.Prop.VersionGuid = _latestVersionGuid; From 969dbbbf922e7bb2b86c6553b663e23410a5622c Mon Sep 17 00:00:00 2001 From: 1011025m <37438176+1011025m@users.noreply.github.com> Date: Sat, 13 May 2023 20:43:13 +0800 Subject: [PATCH 16/19] Regression, it didn't have to be over engineered --- Bloxstrap/Bootstrapper.cs | 6 ------ Bloxstrap/Dialogs/BootstrapperDialogForm.cs | 3 --- Bloxstrap/Dialogs/ByfronDialog.xaml.cs | 10 +--------- Bloxstrap/Dialogs/FluentDialog.xaml.cs | 3 --- Bloxstrap/Dialogs/IBootstrapperDialog.cs | 1 - Bloxstrap/ViewModels/AppearanceViewModel.cs | 2 -- 6 files changed, 1 insertion(+), 24 deletions(-) diff --git a/Bloxstrap/Bootstrapper.cs b/Bloxstrap/Bootstrapper.cs index 44d4e0d5..5b915ebe 100644 --- a/Bloxstrap/Bootstrapper.cs +++ b/Bloxstrap/Bootstrapper.cs @@ -709,8 +709,6 @@ private async Task InstallLatestVersion() { Dialog.CancelEnabled = true; Dialog.ProgressStyle = ProgressBarStyle.Continuous; - // Byfron dialog specific - Dialog.VersionVisibility = false; } // compute total bytes to download @@ -793,11 +791,7 @@ private async Task InstallLatestVersion() } if (Dialog is not null) - { Dialog.CancelEnabled = false; - // Byfron dialog specific - Dialog.VersionVisibility = true; - } App.State.Prop.VersionGuid = _latestVersionGuid; diff --git a/Bloxstrap/Dialogs/BootstrapperDialogForm.cs b/Bloxstrap/Dialogs/BootstrapperDialogForm.cs index 3bff2447..64e5c5f3 100644 --- a/Bloxstrap/Dialogs/BootstrapperDialogForm.cs +++ b/Bloxstrap/Dialogs/BootstrapperDialogForm.cs @@ -63,9 +63,6 @@ public bool CancelEnabled _cancelEnabled = value; } } - - // Byfron specific - not required here, bypassing - public bool VersionVisibility { get; set; } #endregion public void ScaleWindow() diff --git a/Bloxstrap/Dialogs/ByfronDialog.xaml.cs b/Bloxstrap/Dialogs/ByfronDialog.xaml.cs index 411930c2..3a0a1f78 100644 --- a/Bloxstrap/Dialogs/ByfronDialog.xaml.cs +++ b/Bloxstrap/Dialogs/ByfronDialog.xaml.cs @@ -55,16 +55,8 @@ public bool CancelEnabled set { _viewModel.CancelButtonVisibility = (value ? Visibility.Visible : Visibility.Collapsed); + _viewModel.VersionNumberVisibility = (value ? Visibility.Collapsed : Visibility.Visible); _viewModel.OnPropertyChanged(nameof(_viewModel.CancelButtonVisibility)); - } - } - - public bool VersionVisibility - { - get => _viewModel.VersionNumberVisibility == Visibility.Visible; - set - { - _viewModel.VersionNumberVisibility = (value ? Visibility.Visible : Visibility.Collapsed); _viewModel.OnPropertyChanged(nameof(_viewModel.VersionNumberVisibility)); } } diff --git a/Bloxstrap/Dialogs/FluentDialog.xaml.cs b/Bloxstrap/Dialogs/FluentDialog.xaml.cs index dd88b7cc..ff65b081 100644 --- a/Bloxstrap/Dialogs/FluentDialog.xaml.cs +++ b/Bloxstrap/Dialogs/FluentDialog.xaml.cs @@ -63,9 +63,6 @@ public bool CancelEnabled _viewModel.OnPropertyChanged(nameof(_viewModel.CancelButtonVisibility)); } } - - // Byfron specific - not required here, bypassing - public bool VersionVisibility { get; set; } #endregion public FluentDialog() diff --git a/Bloxstrap/Dialogs/IBootstrapperDialog.cs b/Bloxstrap/Dialogs/IBootstrapperDialog.cs index 53b816b2..e66b6875 100644 --- a/Bloxstrap/Dialogs/IBootstrapperDialog.cs +++ b/Bloxstrap/Dialogs/IBootstrapperDialog.cs @@ -10,7 +10,6 @@ public interface IBootstrapperDialog ProgressBarStyle ProgressStyle { get; set; } int ProgressValue { get; set; } bool CancelEnabled { get; set; } - bool VersionVisibility { get; set; } void ShowBootstrapper(); void CloseBootstrapper(); diff --git a/Bloxstrap/ViewModels/AppearanceViewModel.cs b/Bloxstrap/ViewModels/AppearanceViewModel.cs index 228385c5..ba85815f 100644 --- a/Bloxstrap/ViewModels/AppearanceViewModel.cs +++ b/Bloxstrap/ViewModels/AppearanceViewModel.cs @@ -36,8 +36,6 @@ private void PreviewBootstrapper() dialog.Message = "Style preview - Click Cancel to close"; dialog.CancelEnabled = true; - // Byfron dialog specific - dialog.VersionVisibility = false; dialog.ShowBootstrapper(); } From 9da925cd5489e0ed25ad3a17a991492af0e83b97 Mon Sep 17 00:00:00 2001 From: pizzaboxer Date: Sat, 13 May 2023 14:23:32 +0100 Subject: [PATCH 17/19] Add fake Byfron logo Also undo some changes for version number and stuff, I'll do that later in a sec --- Bloxstrap/App.xaml | 2 +- Bloxstrap/Bloxstrap.csproj | 6 ++-- Bloxstrap/Dialogs/ByfronDialog.xaml | 27 +++++++----------- Bloxstrap/Dialogs/ByfronDialog.xaml.cs | 5 ++-- .../ByfronDialog/ByfronLogoDark.jpg | Bin 0 -> 6262 bytes .../ByfronDialog/ByfronLogoLight.jpg | Bin 0 -> 5718 bytes Bloxstrap/Resources/ByfronLogo.png | Bin 15113 -> 0 bytes Bloxstrap/Resources/ByfronLogoDark.png | Bin 19543 -> 0 bytes .../Fonts/Rubik-VariableFont_wght.ttf | Bin Bloxstrap/ViewModels/ByfronDialogViewModel.cs | 7 ++--- 10 files changed, 19 insertions(+), 28 deletions(-) create mode 100644 Bloxstrap/Resources/BootstrapperStyles/ByfronDialog/ByfronLogoDark.jpg create mode 100644 Bloxstrap/Resources/BootstrapperStyles/ByfronDialog/ByfronLogoLight.jpg delete mode 100644 Bloxstrap/Resources/ByfronLogo.png delete mode 100644 Bloxstrap/Resources/ByfronLogoDark.png rename Bloxstrap/{ => Resources}/Fonts/Rubik-VariableFont_wght.ttf (100%) diff --git a/Bloxstrap/App.xaml b/Bloxstrap/App.xaml index 3ac28c3b..c46ad487 100644 --- a/Bloxstrap/App.xaml +++ b/Bloxstrap/App.xaml @@ -12,7 +12,7 @@ - pack://application:,,,/Fonts/#Rubik Light + pack://application:,,,/Resources/Fonts/#Rubik Light diff --git a/Bloxstrap/Bloxstrap.csproj b/Bloxstrap/Bloxstrap.csproj index 84c8b59f..544d5cb1 100644 --- a/Bloxstrap/Bloxstrap.csproj +++ b/Bloxstrap/Bloxstrap.csproj @@ -14,9 +14,9 @@ - - - + + + diff --git a/Bloxstrap/Dialogs/ByfronDialog.xaml b/Bloxstrap/Dialogs/ByfronDialog.xaml index 1e779edf..2747e058 100644 --- a/Bloxstrap/Dialogs/ByfronDialog.xaml +++ b/Bloxstrap/Dialogs/ByfronDialog.xaml @@ -12,21 +12,17 @@ WindowStartupLocation="CenterScreen" AllowsTransparency="True" Background="Transparent"> - - - - - - - - - + + + + + @@ -44,6 +40,5 @@ - diff --git a/Bloxstrap/Dialogs/ByfronDialog.xaml.cs b/Bloxstrap/Dialogs/ByfronDialog.xaml.cs index 3a0a1f78..f9aa6710 100644 --- a/Bloxstrap/Dialogs/ByfronDialog.xaml.cs +++ b/Bloxstrap/Dialogs/ByfronDialog.xaml.cs @@ -3,6 +3,7 @@ using System.Windows.Forms; using System.Windows.Media; using System.Windows.Media.Imaging; + using Bloxstrap.Enums; using Bloxstrap.Extensions; using Bloxstrap.ViewModels; @@ -55,9 +56,7 @@ public bool CancelEnabled set { _viewModel.CancelButtonVisibility = (value ? Visibility.Visible : Visibility.Collapsed); - _viewModel.VersionNumberVisibility = (value ? Visibility.Collapsed : Visibility.Visible); _viewModel.OnPropertyChanged(nameof(_viewModel.CancelButtonVisibility)); - _viewModel.OnPropertyChanged(nameof(_viewModel.VersionNumberVisibility)); } } #endregion @@ -77,7 +76,7 @@ public ByfronDialog() _viewModel.Foreground = new SolidColorBrush(Color.FromRgb(57, 59, 61)); _viewModel.IconColor = new SolidColorBrush(Color.FromRgb(57, 59, 61)); _viewModel.ProgressBarBackground = new SolidColorBrush(Color.FromRgb(189, 190, 190)); - _viewModel.ByfronLogo = new BitmapImage(new Uri("pack://application:,,,/Bloxstrap;component/Resources/ByfronLogoDark.png")); + _viewModel.ByfronLogoLocation = new BitmapImage(new Uri("pack://application:,,,/Resources/BootstrapperStyles/ByfronDialog/ByfronLogoLight.jpg")); } InitializeComponent(); diff --git a/Bloxstrap/Resources/BootstrapperStyles/ByfronDialog/ByfronLogoDark.jpg b/Bloxstrap/Resources/BootstrapperStyles/ByfronDialog/ByfronLogoDark.jpg new file mode 100644 index 0000000000000000000000000000000000000000..770e46b1c313f8d70de539f03b731302f6ce7588 GIT binary patch literal 6262 zcmbVQdpwi>+rL@PG-n}}Qz@qsA+pLBNm40t+}EMRLQ1TfjpP(1DoSNJr4nn7#j@|r z94a~H7&|ysl1(*tHrsRS_q?9p>-D^zKc46L>~&rHZ1?AL-`D%T-g{ryJ<*7W2`C

*E;i3^{*QMpj*8gQk|z<}Jos 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

3oAyk-M;{J@OknAR^zdstw?QJSZ_42o1ODEKc{ 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�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 E0ZAhxj{pDw diff --git a/Bloxstrap/Fonts/Rubik-VariableFont_wght.ttf b/Bloxstrap/Resources/Fonts/Rubik-VariableFont_wght.ttf similarity index 100% rename from Bloxstrap/Fonts/Rubik-VariableFont_wght.ttf rename to Bloxstrap/Resources/Fonts/Rubik-VariableFont_wght.ttf diff --git a/Bloxstrap/ViewModels/ByfronDialogViewModel.cs b/Bloxstrap/ViewModels/ByfronDialogViewModel.cs index bbaefdbf..30cae23a 100644 --- a/Bloxstrap/ViewModels/ByfronDialogViewModel.cs +++ b/Bloxstrap/ViewModels/ByfronDialogViewModel.cs @@ -3,8 +3,8 @@ using System.Windows; using System.Windows.Media; using System.Windows.Media.Imaging; + using Bloxstrap.Dialogs; -using Bloxstrap.Extensions; namespace Bloxstrap.ViewModels { @@ -13,15 +13,12 @@ public class ByfronDialogViewModel : FluentDialogViewModel, INotifyPropertyChang public string Version => $"Bloxstrap v{App.Version}"; // Using dark theme for default values. + public ImageSource ByfronLogoLocation { get; set; } = new BitmapImage(new Uri("pack://application:,,,/Resources/BootstrapperStyles/ByfronDialog/ByfronLogoDark.jpg")); public Thickness DialogBorder { get; set; } = new Thickness(0); public Brush Background { get; set; } = Brushes.Black; public Brush Foreground { get; set; } = new SolidColorBrush(Color.FromRgb(239, 239, 239)); public Brush IconColor { get; set; } = new SolidColorBrush(Color.FromRgb(255, 255, 255)); public Brush ProgressBarBackground { get; set; } = new SolidColorBrush(Color.FromRgb(86, 86, 86)); - public ImageSource ByfronLogo { get; set; } = new BitmapImage(new Uri("pack://application:,,,/Bloxstrap;component/Resources/ByfronLogo.png")); - - // When cancel button is visible, version number is hidden. - public Visibility VersionNumberVisibility { get; set; } = Visibility.Visible; public ByfronDialogViewModel(IBootstrapperDialog dialog) : base(dialog) { From 1f91c309ca94828998bb692beb5b909e825932d2 Mon Sep 17 00:00:00 2001 From: pizzaboxer Date: Sun, 14 May 2023 01:39:28 +0100 Subject: [PATCH 18/19] Add client version number Finalizing the fake Byfron style --- Bloxstrap/Bootstrapper.cs | 9 +++++--- Bloxstrap/Dialogs/ByfronDialog.xaml | 7 +++--- Bloxstrap/Dialogs/ByfronDialog.xaml.cs | 3 +++ Bloxstrap/ViewModels/ByfronDialogViewModel.cs | 23 +++++++++++++++++-- 4 files changed, 34 insertions(+), 8 deletions(-) diff --git a/Bloxstrap/Bootstrapper.cs b/Bloxstrap/Bootstrapper.cs index 5b915ebe..8df2c368 100644 --- a/Bloxstrap/Bootstrapper.cs +++ b/Bloxstrap/Bootstrapper.cs @@ -17,7 +17,6 @@ using Bloxstrap.Integrations; using Bloxstrap.Models; using Bloxstrap.Tools; -using System.Globalization; namespace Bloxstrap { @@ -111,6 +110,10 @@ private void SetStatus(string message) { App.Logger.WriteLine($"[Bootstrapper::SetStatus] {message}"); + // yea idk + if (App.Settings.Prop.BootstrapperStyle == BootstrapperStyle.ByfronDialog) + message = message.Replace("...", ""); + if (Dialog is not null) Dialog.Message = message; } @@ -790,11 +793,11 @@ private async Task InstallLatestVersion() } } + App.State.Prop.VersionGuid = _latestVersionGuid; + if (Dialog is not null) Dialog.CancelEnabled = false; - App.State.Prop.VersionGuid = _latestVersionGuid; - _isInstalling = false; } diff --git a/Bloxstrap/Dialogs/ByfronDialog.xaml b/Bloxstrap/Dialogs/ByfronDialog.xaml index 2747e058..d2cda202 100644 --- a/Bloxstrap/Dialogs/ByfronDialog.xaml +++ b/Bloxstrap/Dialogs/ByfronDialog.xaml @@ -15,24 +15,25 @@ - + - + - + diff --git a/Bloxstrap/Dialogs/ByfronDialog.xaml.cs b/Bloxstrap/Dialogs/ByfronDialog.xaml.cs index f9aa6710..a689121e 100644 --- a/Bloxstrap/Dialogs/ByfronDialog.xaml.cs +++ b/Bloxstrap/Dialogs/ByfronDialog.xaml.cs @@ -57,6 +57,9 @@ public bool CancelEnabled { _viewModel.CancelButtonVisibility = (value ? Visibility.Visible : Visibility.Collapsed); _viewModel.OnPropertyChanged(nameof(_viewModel.CancelButtonVisibility)); + + _viewModel.OnPropertyChanged(nameof(_viewModel.VersionTextVisibility)); + _viewModel.OnPropertyChanged(nameof(_viewModel.VersionText)); } } #endregion diff --git a/Bloxstrap/ViewModels/ByfronDialogViewModel.cs b/Bloxstrap/ViewModels/ByfronDialogViewModel.cs index 30cae23a..6178606a 100644 --- a/Bloxstrap/ViewModels/ByfronDialogViewModel.cs +++ b/Bloxstrap/ViewModels/ByfronDialogViewModel.cs @@ -1,5 +1,7 @@ using System; using System.ComponentModel; +using System.Diagnostics; +using System.IO; using System.Windows; using System.Windows.Media; using System.Windows.Media.Imaging; @@ -10,8 +12,6 @@ namespace Bloxstrap.ViewModels { public class ByfronDialogViewModel : FluentDialogViewModel, INotifyPropertyChanged { - public string Version => $"Bloxstrap v{App.Version}"; - // Using dark theme for default values. public ImageSource ByfronLogoLocation { get; set; } = new BitmapImage(new Uri("pack://application:,,,/Resources/BootstrapperStyles/ByfronDialog/ByfronLogoDark.jpg")); public Thickness DialogBorder { get; set; } = new Thickness(0); @@ -20,6 +20,25 @@ public class ByfronDialogViewModel : FluentDialogViewModel, INotifyPropertyChang public Brush IconColor { get; set; } = new SolidColorBrush(Color.FromRgb(255, 255, 255)); public Brush ProgressBarBackground { get; set; } = new SolidColorBrush(Color.FromRgb(86, 86, 86)); + public Visibility VersionTextVisibility => CancelButtonVisibility == Visibility.Collapsed ? Visibility.Visible : Visibility.Collapsed; + public string VersionText + { + get + { + string playerLocation = Path.Combine(Directories.Versions, App.State.Prop.VersionGuid, "RobloxPlayerBeta.exe"); + + if (!File.Exists(playerLocation)) + return ""; + + FileVersionInfo versionInfo = FileVersionInfo.GetVersionInfo(playerLocation); + + if (versionInfo.ProductVersion is null) + return ""; + + return versionInfo.ProductVersion.Replace(", ", "."); + } + } + public ByfronDialogViewModel(IBootstrapperDialog dialog) : base(dialog) { } From a50a032e84fb8f692f9685dde15b9e6516a8ffc0 Mon Sep 17 00:00:00 2001 From: pizzaboxer Date: Sun, 14 May 2023 01:51:28 +0100 Subject: [PATCH 19/19] credits :D --- Bloxstrap/Views/Pages/AboutPage.xaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Bloxstrap/Views/Pages/AboutPage.xaml b/Bloxstrap/Views/Pages/AboutPage.xaml index a455e90e..9c984ebc 100644 --- a/Bloxstrap/Views/Pages/AboutPage.xaml +++ b/Bloxstrap/Views/Pages/AboutPage.xaml @@ -70,7 +70,7 @@ 1011025m - + sitiom