From cdd1a533e1e2b89cc8c228aef433ed81359890c0 Mon Sep 17 00:00:00 2001 From: Dani John Date: Mon, 7 Sep 2020 00:05:20 +0530 Subject: [PATCH] v1.0.5.0 src : duplicate layout, scaler and bufixes. - Wallpaper scalers added for libmpv, wmf and gif wallpapers. - Fixed a bug where if https is not specified, addwallpaper url loader fails. - Resolved: https://github.com/rocksdanister/lively/issues/126 - Wallpaper install restricted to one. Resolved: https://github.com/rocksdanister/lively/issues/124 - Resolved: https://github.com/rocksdanister/lively/issues/123 - Duplicate screen layout implemented. Resolved: https://github.com/rocksdanister/lively/issues/120 - Added Dutch language. --- README.md | 4 +- .../livelysettings/SettingsPage.xaml | 38 +- .../livelysettings/SettingsPage.xaml.cs | 7 +- src/livelywpf/libMPVPlayer/App.xaml.cs | 9 + src/livelywpf/libMPVPlayer/MainWindow.xaml.cs | 32 +- src/livelywpf/livelywpf/App.xaml.cs | 30 +- .../Core/InputForwarding/RawInputDX.xaml.cs | 21 +- src/livelywpf/livelywpf/Core/SetupDesktop.cs | 270 +++---- .../livelywpf/Core/Wallpapers/GIFPlayerUWP.cs | 6 +- .../Core/Wallpapers/VideoPlayerMPV.cs | 4 +- .../Core/Wallpapers/VideoPlayerMPVExt.cs | 5 +- .../Core/Wallpapers/VideoPlayerWPF.cs | 4 +- .../livelywpf/Core/Wallpapers/WebProcess.cs | 1 + src/livelywpf/livelywpf/Docs/license.rtf | 102 +-- src/livelywpf/livelywpf/Enums.cs | 11 + .../livelywpf/Helpers/ScreenHelper.cs | 2 - .../livelywpf/Model/SettingsModel.cs | 2 + .../Properties/Resources.Designer.cs | 54 ++ .../livelywpf/Properties/Resources.ar.resx | 18 + .../livelywpf/Properties/Resources.de.resx | 18 + .../livelywpf/Properties/Resources.es.resx | 18 + .../livelywpf/Properties/Resources.fil.resx | 18 + .../livelywpf/Properties/Resources.fr.resx | 18 + .../livelywpf/Properties/Resources.hu.resx | 18 + .../livelywpf/Properties/Resources.it.resx | 18 + .../livelywpf/Properties/Resources.ko.resx | 18 + .../livelywpf/Properties/Resources.ms.resx | 134 ++-- .../livelywpf/Properties/Resources.nl-NL.resx | 675 ++++++++++++++++++ .../livelywpf/Properties/Resources.pl.resx | 28 +- .../livelywpf/Properties/Resources.pt-BR.resx | 20 +- .../livelywpf/Properties/Resources.pt.resx | 18 + .../livelywpf/Properties/Resources.resx | 18 + .../livelywpf/Properties/Resources.ru.resx | 18 + .../livelywpf/Properties/Resources.sv.resx | 18 + .../livelywpf/Properties/Resources.uk.resx | 18 + .../Properties/Resources.zh-Hant.resx | 18 + .../livelywpf/Properties/Resources.zh.resx | 275 +++---- .../ViewModel/LibraryPreviewViewModel.cs | 4 + .../livelywpf/ViewModel/LibraryViewModel.cs | 75 +- .../ViewModel/ScreenLayoutViewModel.cs | 9 +- .../livelywpf/ViewModel/SettingsViewModel.cs | 63 +- .../Views/Main/AddWallpaperView.xaml.cs | 15 +- .../livelywpf/Views/Main/SettingsView.xaml.cs | 6 + .../Views/Screen/ScreenLayoutView.xaml | 6 +- .../WallpaperViews/GIFViewUWP.xaml.cs | 26 +- .../WallpaperViews/MPVElement.xaml.cs | 21 +- .../WallpaperViews/MediaElementWPF.xaml.cs | 4 +- src/livelywpf/livelywpf/livelywpf.csproj | 2 +- 48 files changed, 1723 insertions(+), 494 deletions(-) create mode 100644 src/livelywpf/livelywpf/Properties/Resources.nl-NL.resx diff --git a/README.md b/README.md index 1fafec34..43922834 100644 --- a/README.md +++ b/README.md @@ -88,10 +88,10 @@ Help translate lively to other languages: - @@ -118,6 +117,15 @@ + + + + + + + + + @@ -137,20 +145,6 @@ - - - CEF - MS Edge - - - - - - - - - - 144p @@ -165,6 +159,20 @@ + + + + CEF + MS Edge + + + + + + + + + diff --git a/src/livelywpf/UserControls/livelysettings/SettingsPage.xaml.cs b/src/livelywpf/UserControls/livelysettings/SettingsPage.xaml.cs index befb9b29..1efea504 100644 --- a/src/livelywpf/UserControls/livelysettings/SettingsPage.xaml.cs +++ b/src/livelywpf/UserControls/livelysettings/SettingsPage.xaml.cs @@ -67,8 +67,13 @@ public class LocalizeText public string TextDisplayPauseRuleAll { get; set; } public string TextPauseAlgorithmForeground { get; set; } public string TextPauseAlgorithmAll { get; set; } - //wallpaper + public string TitleWallpaperFit { get; set; } + public string TipWallpaperFit { get; set; } + public string TextWallpaperFitFill { get; set; } + public string TextWallpaperFitNone { get; set; } + public string TextWallpaperFitUniform { get; set; } + public string TextWallpaperFitUniformFill { get; set; } public string TitleInteraction { get; set; } public string TitleWallpaperInput { get; set; } public string TitleMouseOnDesktop { get; set; } diff --git a/src/livelywpf/libMPVPlayer/App.xaml.cs b/src/livelywpf/libMPVPlayer/App.xaml.cs index 21d45fdc..9571d243 100644 --- a/src/livelywpf/libMPVPlayer/App.xaml.cs +++ b/src/livelywpf/libMPVPlayer/App.xaml.cs @@ -15,11 +15,20 @@ public partial class App : Application { private void Application_Startup(object sender, StartupEventArgs e) { + this.SessionEnding += App_SessionEnding; var wnd = new MainWindow(e.Args); //SetupUnhandledExceptionLogging(); wnd.Show(); } + private void App_SessionEnding(object sender, SessionEndingCancelEventArgs e) + { + if (e.ReasonSessionEnding == ReasonSessionEnding.Shutdown || e.ReasonSessionEnding == ReasonSessionEnding.Logoff) + { + e.Cancel = true; + } + } + private void SetupUnhandledExceptionLogging() { AppDomain.CurrentDomain.UnhandledException += (s, e) => diff --git a/src/livelywpf/libMPVPlayer/MainWindow.xaml.cs b/src/livelywpf/libMPVPlayer/MainWindow.xaml.cs index c59eea34..f7864e68 100644 --- a/src/livelywpf/libMPVPlayer/MainWindow.xaml.cs +++ b/src/livelywpf/libMPVPlayer/MainWindow.xaml.cs @@ -3,6 +3,7 @@ using System.Runtime.InteropServices; using System.Threading.Tasks; using System.Windows; +using System.Windows.Controls; //using System.Windows.Forms; using System.Windows.Interop; using CommandLine; @@ -39,6 +40,12 @@ class Options Default = 0, HelpText = "ytdl stream quality.")] public int StreamQuality { get; set; } + + [Option("stretch", + Required = false, + Default = 0, + HelpText = "Video Scaling algorithm.")] + public int StretchMode { get; set; } } private void RunOptions(Options opts) @@ -54,12 +61,8 @@ private void RunOptions(Options opts) //flags ref: https://mpv.io/manual/master/ //use gpu decoding if preferable. player.API.SetPropertyString("hwdec", "auto"); - player.API.SetPropertyString("keepaspect", "yes"); //Enable Windows screensaver. player.API.SetPropertyString("stop-screensaver", "no"); - //trying new stuff - //player.API.SetPropertyString("ontop", "yes"); - //player.API.SetPropertyString("fullscreen", "yes"); //ytdl. player.EnableYouTubeDl(); YouTubeDlVideoQuality quality = YouTubeDlVideoQuality.Highest; @@ -69,6 +72,27 @@ private void RunOptions(Options opts) } catch { } player.YouTubeDlVideoQuality = quality; + //video scaling. + System.Windows.Media.Stretch stretch = (System.Windows.Media.Stretch)opts.StretchMode; + switch (stretch) + { + //I think these are the mpv equivalent scaler settings. + case System.Windows.Media.Stretch.None: + player.API.SetPropertyString("video-unscaled", "yes"); + break; + case System.Windows.Media.Stretch.Fill: + player.API.SetPropertyString("keepaspect", "no"); + break; + case System.Windows.Media.Stretch.Uniform: + player.API.SetPropertyString("keepaspect", "yes"); + break; + case System.Windows.Media.Stretch.UniformToFill: + player.API.SetPropertyString("panscan", "1.0"); + break; + default: + player.API.SetPropertyString("keepaspect", "no"); + break; + } //stream/file. player.Load(opts.FilePath); player.Resume(); diff --git a/src/livelywpf/livelywpf/App.xaml.cs b/src/livelywpf/livelywpf/App.xaml.cs index e558a916..82394443 100644 --- a/src/livelywpf/livelywpf/App.xaml.cs +++ b/src/livelywpf/livelywpf/App.xaml.cs @@ -48,16 +48,25 @@ protected override void OnStartup(StartupEventArgs e) Program.WallpaperDir = Program.SettingsVM.Settings.WallpaperDir; try { - Directory.CreateDirectory(Path.Combine(Program.WallpaperDir, "wallpapers")); - Directory.CreateDirectory(Path.Combine(Program.WallpaperDir, "SaveData", "wptmp")); - Directory.CreateDirectory(Path.Combine(Program.WallpaperDir, "SaveData", "wpdata")); + CreateWallpaperDir(); } catch (Exception ex) { - Logger.Error("Wallpaper Directory creation fail:" + ex.ToString()); - MessageBox.Show(ex.Message, "Error: Failed to create wallpaper folder", MessageBoxButton.OK, MessageBoxImage.Error); - Program.ExitApplication(); + Logger.Error("Wallpaper Directory creation fail, falling back to default directory:" + ex.ToString()); + Program.SettingsVM.Settings.WallpaperDir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Lively Wallpaper", "Library"); + Program.SettingsVM.UpdateConfigFile(); + try + { + CreateWallpaperDir(); + } + catch(Exception ie) + { + Logger.Error("Wallpaper Directory creation failed, Exiting:" + ie.ToString()); + MessageBox.Show(ie.Message, "Error: Failed to create wallpaper folder", MessageBoxButton.OK, MessageBoxImage.Error); + Program.ExitApplication(); + } } + //previous installed appversion is different from current instance. if (!Program.SettingsVM.Settings.AppVersion.Equals(Assembly.GetExecutingAssembly().GetName().Version.ToString(), StringComparison.OrdinalIgnoreCase) || Program.SettingsVM.Settings.IsFirstRun) @@ -98,7 +107,7 @@ protected override void OnStartup(StartupEventArgs e) } /// - /// Extract default wallpapers. + /// Extract default wallpapers and incremental if any. /// private int ExtractWallpaperBundle() { @@ -132,6 +141,13 @@ private int ExtractWallpaperBundle() return maxExtracted; } + private void CreateWallpaperDir() + { + Directory.CreateDirectory(Path.Combine(Program.WallpaperDir, "wallpapers")); + Directory.CreateDirectory(Path.Combine(Program.WallpaperDir, "SaveData", "wptmp")); + Directory.CreateDirectory(Path.Combine(Program.WallpaperDir, "SaveData", "wpdata")); + } + private void SetupUnhandledExceptionLogging() { AppDomain.CurrentDomain.UnhandledException += (s, e) => diff --git a/src/livelywpf/livelywpf/Core/InputForwarding/RawInputDX.xaml.cs b/src/livelywpf/livelywpf/Core/InputForwarding/RawInputDX.xaml.cs index 0683574c..7db1852b 100644 --- a/src/livelywpf/livelywpf/Core/InputForwarding/RawInputDX.xaml.cs +++ b/src/livelywpf/livelywpf/Core/InputForwarding/RawInputDX.xaml.cs @@ -180,20 +180,21 @@ private static void ForwardMessage(int x, int y, int msg, IntPtr wParam) SetupDesktop.Wallpapers.ForEach(x => { if (x.GetWallpaperType() == WallpaperType.web || - x.GetWallpaperType() == WallpaperType.webaudio || - x.GetWallpaperType() == WallpaperType.app || - x.GetWallpaperType() == WallpaperType.url || - x.GetWallpaperType() == WallpaperType.bizhawk || - x.GetWallpaperType() == WallpaperType.unity || - x.GetWallpaperType() == WallpaperType.godot) + x.GetWallpaperType() == WallpaperType.webaudio || + x.GetWallpaperType() == WallpaperType.app || + x.GetWallpaperType() == WallpaperType.url || + x.GetWallpaperType() == WallpaperType.bizhawk || + x.GetWallpaperType() == WallpaperType.unity || + x.GetWallpaperType() == WallpaperType.godot) { - if (ScreenHelper.ScreenCompare(display, x.GetScreen(), DisplayIdentificationMode.screenLayout)) + if (ScreenHelper.ScreenCompare(display, x.GetScreen(), DisplayIdentificationMode.screenLayout) || + Program.SettingsVM.Settings.WallpaperArrangement == WallpaperArrangement.span) { //The low-order word specifies the x-coordinate of the cursor, the high-order word specifies the y-coordinate of the cursor. //ref: https://docs.microsoft.com/en-us/windows/win32/inputdev/wm-mousemove - UInt32 lParam = (uint)mouse.Y; + uint lParam = Convert.ToUInt32(mouse.Y); lParam <<= 16; - lParam |= (uint)mouse.X; + lParam |= Convert.ToUInt32(mouse.X); NativeMethods.PostMessageW(x.GetHWND(), msg, wParam, (IntPtr)lParam); } } @@ -201,7 +202,7 @@ private static void ForwardMessage(int x, int y, int msg, IntPtr wParam) } catch (Exception e) { - Logger.Error(e.ToString()); + Logger.Error("Input Forwarding Error:" + e.Message); } } diff --git a/src/livelywpf/livelywpf/Core/SetupDesktop.cs b/src/livelywpf/livelywpf/Core/SetupDesktop.cs index e440b387..393916c9 100644 --- a/src/livelywpf/livelywpf/Core/SetupDesktop.cs +++ b/src/livelywpf/livelywpf/Core/SetupDesktop.cs @@ -5,11 +5,13 @@ using System.Collections.Generic; using System.Diagnostics; using System.IO; +using System.Linq; using System.Threading; using System.Threading.Tasks; using System.Windows; using System.Windows.Interop; using System.Windows.Threading; +using Windows.ApplicationModel.Wallet.System; namespace livelywpf { @@ -141,7 +143,8 @@ public static void SetWallpaper(LibraryModel wp, LivelyScreen targetDisplay) if(Program.SettingsVM.Settings.VideoPlayer == LivelyMediaPlayer.libmpv) { wp.ItemStartup = true; - var item = new VideoPlayerMPV(wp.FilePath, wp, targetDisplay); + var item = new VideoPlayerMPV(wp.FilePath, wp, + targetDisplay, Program.SettingsVM.Settings.WallpaperScaling); item.WindowInitialized += SetupDesktop_WallpaperInitialized; wallpapersPending.Add(item); item.Show(); @@ -149,7 +152,8 @@ public static void SetWallpaper(LibraryModel wp, LivelyScreen targetDisplay) else if(Program.SettingsVM.Settings.VideoPlayer == LivelyMediaPlayer.libmpvExt) { wp.ItemStartup = true; - var item = new VideoPlayerMPVExt(wp.FilePath, wp, targetDisplay); + var item = new VideoPlayerMPVExt(wp.FilePath, wp, targetDisplay, + Program.SettingsVM.Settings.WallpaperScaling); item.WindowInitialized += SetupDesktop_WallpaperInitialized; wallpapersPending.Add(item); item.Show(); @@ -172,7 +176,8 @@ public static void SetWallpaper(LibraryModel wp, LivelyScreen targetDisplay) } else if(Program.SettingsVM.Settings.VideoPlayer == LivelyMediaPlayer.wmf) { - var item = new VideoPlayerWPF(wp.FilePath, wp, targetDisplay); + var item = new VideoPlayerWPF(wp.FilePath, wp, + targetDisplay, Program.SettingsVM.Settings.WallpaperScaling); item.WindowInitialized += SetupDesktop_WallpaperInitialized; wallpapersPending.Add(item); item.Show(); @@ -183,7 +188,8 @@ public static void SetWallpaper(LibraryModel wp, LivelyScreen targetDisplay) if(Program.SettingsVM.Settings.StreamVideoPlayer == LivelyMediaPlayer.libmpvExt) { wp.ItemStartup = true; - var item = new VideoPlayerMPVExt(wp.FilePath, wp, targetDisplay, Program.SettingsVM.Settings.StreamQuality); + var item = new VideoPlayerMPVExt(wp.FilePath, wp, targetDisplay, + Program.SettingsVM.Settings.WallpaperScaling, Program.SettingsVM.Settings.StreamQuality); item.WindowInitialized += SetupDesktop_WallpaperInitialized; wallpapersPending.Add(item); item.Show(); @@ -199,18 +205,18 @@ public static void SetWallpaper(LibraryModel wp, LivelyScreen targetDisplay) } else if(wp.LivelyInfo.Type == WallpaperType.gif) { - var item = new GIFPlayerUWP(wp.FilePath, wp, targetDisplay); + var item = new GIFPlayerUWP(wp.FilePath, wp, + targetDisplay, Program.SettingsVM.Settings.WallpaperScaling); item.WindowInitialized += SetupDesktop_WallpaperInitialized; wallpapersPending.Add(item); item.Show(); } } - static SemaphoreSlim semaphoreSlim = new SemaphoreSlim(1, 1); - + static readonly SemaphoreSlim semaphoreSlimWallpaperInitLock = new SemaphoreSlim(1, 1); private static async void SetupDesktop_WallpaperInitialized(object sender, WindowInitializedArgs e) { - await semaphoreSlim.WaitAsync(); + await semaphoreSlimWallpaperInitLock.WaitAsync(); try { var wallpaper = (IWallpaper)sender; @@ -248,8 +254,7 @@ private static async void SetupDesktop_WallpaperInitialized(object sender, Windo } await ShowPreviewDialogSTAThread(wallpaper); - if (!File.Exists( - Path.Combine(wallpaper.GetWallpaperData().LivelyInfoFolderPath, "LivelyInfo.json"))) + if (!File.Exists(Path.Combine(wallpaper.GetWallpaperData().LivelyInfoFolderPath, "LivelyInfo.json"))) { //user cancelled/fail! wallpaper.Close(); @@ -270,21 +275,29 @@ private static async void SetupDesktop_WallpaperInitialized(object sender, Windo return; //exit } - switch (Program.SettingsVM.Settings.WallpaperArrangement) + if(!ScreenHelper.IsMultiScreen()) { - case WallpaperArrangement.per: - CloseWallpaper(wallpaper.GetScreen(), false); - //CloseaWallpaperAfterDelay(wallpaper.GetScreen(), 500); - SetWallpaperPerScreen(wallpaper.GetHWND(), wallpaper.GetScreen()); - break; - case WallpaperArrangement.span: - CloseAllWallpapers(false); - SetWallpaperSpanScreen(wallpaper.GetHWND()); - break; - case WallpaperArrangement.duplicate: - CloseAllWallpapers(false); - SetWallpaperDuplicateScreen(wallpaper.GetHWND()); - break; + CloseAllWallpapers(false); + SetWallpaperPerScreen(wallpaper.GetHWND(), wallpaper.GetScreen()); + } + else + { + switch (Program.SettingsVM.Settings.WallpaperArrangement) + { + case WallpaperArrangement.per: + CloseWallpaper(wallpaper.GetScreen(), false); + //CloseaWallpaperAfterDelay(wallpaper.GetScreen(), 500); + SetWallpaperPerScreen(wallpaper.GetHWND(), wallpaper.GetScreen()); + break; + case WallpaperArrangement.span: + CloseAllWallpapers(false); + SetWallpaperSpanScreen(wallpaper.GetHWND()); + break; + case WallpaperArrangement.duplicate: + CloseWallpaper(wallpaper.GetScreen(), false); + await SetWallpaperDuplicateScreen(wallpaper); + break; + } } Wallpapers.Add(wallpaper); WallpaperChanged?.Invoke(null, null); @@ -299,10 +312,88 @@ private static async void SetupDesktop_WallpaperInitialized(object sender, Windo } finally { - semaphoreSlim.Release(); + semaphoreSlimWallpaperInitLock.Release(); + } + } + + #region wallpaper add + + /// + /// Calculates the position of window w.r.t parent workerw handle & sets it as child window to it. + /// + /// window handle of process to add as wallpaper + /// displaystring of display to sent wp to. + private static void SetWallpaperPerScreen(IntPtr handle, LivelyScreen targetDisplay) + { + NativeMethods.RECT prct = new NativeMethods.RECT(); + NativeMethods.POINT topLeft; + //StaticPinvoke.POINT bottomRight; + Logger.Info("Setting wallpaper -> " + targetDisplay.DeviceName + " " + targetDisplay.Bounds); + + if (!NativeMethods.SetWindowPos(handle, 1, targetDisplay.Bounds.X, targetDisplay.Bounds.Y, (targetDisplay.Bounds.Width), (targetDisplay.Bounds.Height), 0 | 0x0010)) + { + NLogger.LogWin32Error("setwindowpos(2) fail AddWallpaper(),"); + } + + //ScreentoClient is no longer used, this supports windows mirrored mode also, calculate new relative position of window w.r.t parent. + NativeMethods.MapWindowPoints(handle, workerw, ref prct, 2); + + SetParentWorkerW(handle); + //Position the wp window relative to the new parent window(workerw). + if (!NativeMethods.SetWindowPos(handle, 1, prct.Left, prct.Top, (targetDisplay.Bounds.Width), (targetDisplay.Bounds.Height), 0 | 0x0010)) + { + NLogger.LogWin32Error("setwindowpos(3) fail addwallpaper(),"); + } + SetFocus(true); + RefreshDesktop(); + + //logging. + NativeMethods.GetWindowRect(handle, out prct); + Logger.Info("Relative Coordinates of WP -> " + prct.Left + " " + prct.Right + " " + targetDisplay.Bounds.Width + " " + targetDisplay.Bounds.Height); + topLeft.X = prct.Left; + topLeft.Y = prct.Top; + NativeMethods.ScreenToClient(workerw, ref topLeft); + Logger.Info("Coordinate wrt to screen ->" + topLeft.X + " " + topLeft.Y + " " + targetDisplay.Bounds.Width + " " + targetDisplay.Bounds.Height); + } + + /// + /// Spans wp across all screens. + /// + private static void SetWallpaperSpanScreen(IntPtr handle) + { + NativeMethods.RECT prct = new NativeMethods.RECT(); + //get spawned workerw rectangle data. + NativeMethods.GetWindowRect(workerw, out prct); + SetParentWorkerW(handle); + + //fill wp into the whole workerw area. + if (!NativeMethods.SetWindowPos(handle, 1, 0, 0, prct.Right - prct.Left, prct.Bottom - prct.Top, 0 | 0x0010)) + { + NLogger.LogWin32Error("setwindowpos fail SpanWallpaper(),"); } + SetFocus(true); + RefreshDesktop(); } + private static async Task SetWallpaperDuplicateScreen(IWallpaper wallpaper) + { + SetWallpaperPerScreen(wallpaper.GetHWND(), wallpaper.GetScreen()); + + var remainingScreens = ScreenHelper.GetScreen(); + var currDuplicates = Wallpapers.FindAll(x => x.GetWallpaperData() == wallpaper.GetWallpaperData()); + remainingScreens.RemoveAll(x => ScreenHelper.ScreenCompare(wallpaper.GetScreen(), x, DisplayIdentificationMode.screenLayout) || + currDuplicates.FindIndex(y => ScreenHelper.ScreenCompare(y.GetScreen(), x, DisplayIdentificationMode.screenLayout)) != -1); + if (remainingScreens.Count != 0) + { + await System.Windows.Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new ThreadStart(delegate + { + SetWallpaper(wallpaper.GetWallpaperData(), remainingScreens[0]); + })); + } + } + + #endregion //wallpaper add + static readonly object _layoutWriteLock = new object(); private static void SetupDesktop_WallpaperChanged(object sender, EventArgs e) { @@ -311,6 +402,26 @@ private static void SetupDesktop_WallpaperChanged(object sender, EventArgs e) SaveWallpaperLayout(); } } + private static void SaveWallpaperLayout() + { + List layout = new List(); + foreach (var item in Wallpapers) + { + layout.Add(new WallpaperLayoutModel( + item.GetScreen(), + item.GetWallpaperData().LivelyInfoFolderPath)); + + if(Program.SettingsVM.Settings.WallpaperArrangement == WallpaperArrangement.duplicate || + Program.SettingsVM.Settings.WallpaperArrangement == WallpaperArrangement.span ) + { + break; + } + } + + WallpaperLayoutJSON.SaveWallpaperLayout( + layout, + Path.Combine(Program.AppDataDir, "WallpaperLayout.json")); + } private static void SystemEvents_DisplaySettingsChanged(object sender, EventArgs e) { @@ -426,34 +537,6 @@ private static void UpdateWallpaperRect() RefreshDesktop(); } - private static void SaveWallpaperLayout() - { - List layout = new List(); - foreach (var item in Wallpapers) - { - layout.Add(new WallpaperLayoutModel( - item.GetScreen(), - item.GetWallpaperData().LivelyInfoFolderPath)); - } - - WallpaperLayoutJSON.SaveWallpaperLayout( - layout, - Path.Combine(Program.AppDataDir, "WallpaperLayout.json")); - } - - public static void ShutDown() - { - SystemEvents.DisplaySettingsChanged -= SystemEvents_DisplaySettingsChanged; - if (_isInitialized) - { - WallpaperChanged -= SetupDesktop_WallpaperChanged; - processMonitor.Stop(); - //CloseAllWallpapersWithoutEvent(); - TerminateAllWallpapers(false); - RefreshDesktop(); - } - } - private static Process livelySubProcess; private static void StartLivelySubProcess() { @@ -491,75 +574,20 @@ private static void SendMsgLivelySubProcess(string text) catch { } } } - - #endregion //core - - #region wallpaper add - - /// - /// Calculates the position of window w.r.t parent workerw handle & sets it as child window to it. - /// - /// window handle of process to add as wallpaper - /// displaystring of display to sent wp to. - private static void SetWallpaperPerScreen(IntPtr handle, LivelyScreen targetDisplay) - { - - NativeMethods.RECT prct = new NativeMethods.RECT(); - NativeMethods.POINT topLeft; - //StaticPinvoke.POINT bottomRight; - Logger.Info("Setting wallpaper -> " + targetDisplay.DeviceName + " " + targetDisplay.Bounds); - - if (!NativeMethods.SetWindowPos(handle, 1, targetDisplay.Bounds.X, targetDisplay.Bounds.Y, (targetDisplay.Bounds.Width), (targetDisplay.Bounds.Height), 0 | 0x0010)) - { - NLogger.LogWin32Error("setwindowpos(2) fail AddWallpaper(),"); - } - - //ScreentoClient is no longer used, this supports windows mirrored mode also, calculate new relative position of window w.r.t parent. - NativeMethods.MapWindowPoints(handle, workerw, ref prct, 2); - - SetParentWorkerW(handle); - //Position the wp window relative to the new parent window(workerw). - if (!NativeMethods.SetWindowPos(handle, 1, prct.Left, prct.Top, (targetDisplay.Bounds.Width), (targetDisplay.Bounds.Height), 0 | 0x0010)) - { - NLogger.LogWin32Error("setwindowpos(3) fail addwallpaper(),"); - } - SetFocus(true); - RefreshDesktop(); - - //logging. - NativeMethods.GetWindowRect(handle, out prct); - Logger.Info("Relative Coordinates of WP -> " + prct.Left + " " + prct.Right + " " + targetDisplay.Bounds.Width + " " + targetDisplay.Bounds.Height); - topLeft.X = prct.Left; - topLeft.Y = prct.Top; - NativeMethods.ScreenToClient(workerw, ref topLeft); - Logger.Info("Coordinate wrt to screen ->" + topLeft.X + " " + topLeft.Y + " " + targetDisplay.Bounds.Width + " " + targetDisplay.Bounds.Height); - } - - /// - /// Spans wp across all screens. - /// - private static void SetWallpaperSpanScreen(IntPtr handle) + public static void ShutDown() { - NativeMethods.RECT prct = new NativeMethods.RECT(); - //get spawned workerw rectangle data. - NativeMethods.GetWindowRect(workerw, out prct); - SetParentWorkerW(handle); - - //fill wp into the whole workerw area. - if (!NativeMethods.SetWindowPos(handle, 1, 0, 0, prct.Right - prct.Left, prct.Bottom - prct.Top, 0 | 0x0010)) + SystemEvents.DisplaySettingsChanged -= SystemEvents_DisplaySettingsChanged; + if (_isInitialized) { - NLogger.LogWin32Error("setwindowpos fail SpanWallpaper(),"); + WallpaperChanged -= SetupDesktop_WallpaperChanged; + processMonitor.Stop(); + //CloseAllWallpapersWithoutEvent(); + TerminateAllWallpapers(false); + RefreshDesktop(); } - SetFocus(true); - RefreshDesktop(); - } - - private static void SetWallpaperDuplicateScreen(IntPtr handle) - { - throw new NotImplementedException(); } - #endregion //wallpaper add + #endregion //core #region threads @@ -762,14 +790,6 @@ private static void SetFocus(bool focusLively = true) { App.AppWindow.Activate(); } - /* - IntPtr livelyWindow = new WindowInteropHelper(System.Windows.Application.Current.MainWindow).Handle; - if (!livelyWindow.Equals(IntPtr.Zero) && NativeMethods.IsWindowVisible(livelyWindow) && focusLively) //todo:- not working for cefsharp wp launch, why? - { - NativeMethods.SetForegroundWindow(livelyWindow); - NativeMethods.SetFocus(livelyWindow); - } - */ })); } diff --git a/src/livelywpf/livelywpf/Core/Wallpapers/GIFPlayerUWP.cs b/src/livelywpf/livelywpf/Core/Wallpapers/GIFPlayerUWP.cs index 79cde7a7..ba167bc3 100644 --- a/src/livelywpf/livelywpf/Core/Wallpapers/GIFPlayerUWP.cs +++ b/src/livelywpf/livelywpf/Core/Wallpapers/GIFPlayerUWP.cs @@ -8,9 +8,9 @@ namespace livelywpf.Core { public class GIFPlayerUWP : IWallpaper { - public GIFPlayerUWP(string filePath, LibraryModel model, LivelyScreen display) + public GIFPlayerUWP(string filePath, LibraryModel model, LivelyScreen display, WallpaperScaler scaler = WallpaperScaler.fill) { - Player = new GIFViewUWP(filePath); + Player = new GIFViewUWP(filePath, scaler); this.Model = model; this.Display = display; } @@ -112,7 +112,7 @@ public void Terminate() public void Resume() { - throw new NotImplementedException(); + //throw new NotImplementedException(); } public void SetVolume(int volume) diff --git a/src/livelywpf/livelywpf/Core/Wallpapers/VideoPlayerMPV.cs b/src/livelywpf/livelywpf/Core/Wallpapers/VideoPlayerMPV.cs index 89f52920..5074566d 100644 --- a/src/livelywpf/livelywpf/Core/Wallpapers/VideoPlayerMPV.cs +++ b/src/livelywpf/livelywpf/Core/Wallpapers/VideoPlayerMPV.cs @@ -11,9 +11,9 @@ namespace livelywpf.Core /// public class VideoPlayerMPV : IWallpaper { - public VideoPlayerMPV(string filePath, LibraryModel model, LivelyScreen display) + public VideoPlayerMPV(string filePath, LibraryModel model, LivelyScreen display, WallpaperScaler scaler = WallpaperScaler.fill) { - Player = new MPVElement(filePath); + Player = new MPVElement(filePath, scaler); this.Model = model; this.Display = display; } diff --git a/src/livelywpf/livelywpf/Core/Wallpapers/VideoPlayerMPVExt.cs b/src/livelywpf/livelywpf/Core/Wallpapers/VideoPlayerMPVExt.cs index a6c25e67..d58d020d 100644 --- a/src/livelywpf/livelywpf/Core/Wallpapers/VideoPlayerMPVExt.cs +++ b/src/livelywpf/livelywpf/Core/Wallpapers/VideoPlayerMPVExt.cs @@ -11,12 +11,11 @@ namespace livelywpf.Core public class VideoPlayerMPVExt : IWallpaper { public VideoPlayerMPVExt(string path, LibraryModel model, LivelyScreen display, - StreamQualitySuggestion streamQuality = StreamQualitySuggestion.Highest) + WallpaperScaler scaler = WallpaperScaler.fill, StreamQualitySuggestion streamQuality = StreamQualitySuggestion.Highest) { ProcessStartInfo start = new ProcessStartInfo { - //Arguments = "\"" + path + "\"", - Arguments = "--path " + "\"" + path + "\"" + " --stream " + (int)streamQuality, + Arguments = "--path " + "\"" + path + "\"" + " --stream " + (int)streamQuality + " --stretch " + (int)scaler, FileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "plugins", "libMPVPlayer", "libMPVPlayer.exe"), RedirectStandardInput = true, RedirectStandardOutput = true, diff --git a/src/livelywpf/livelywpf/Core/Wallpapers/VideoPlayerWPF.cs b/src/livelywpf/livelywpf/Core/Wallpapers/VideoPlayerWPF.cs index a042273d..75fb95d2 100644 --- a/src/livelywpf/livelywpf/Core/Wallpapers/VideoPlayerWPF.cs +++ b/src/livelywpf/livelywpf/Core/Wallpapers/VideoPlayerWPF.cs @@ -11,9 +11,9 @@ namespace livelywpf.Core /// public class VideoPlayerWPF : IWallpaper { - public VideoPlayerWPF(string filePath, LibraryModel model, LivelyScreen display) + public VideoPlayerWPF(string filePath, LibraryModel model, LivelyScreen display, WallpaperScaler scaler = WallpaperScaler.fill) { - Player = new MediaElementWPF(filePath); + Player = new MediaElementWPF(filePath, scaler); this.Model = model; this.Display = display; } diff --git a/src/livelywpf/livelywpf/Core/Wallpapers/WebProcess.cs b/src/livelywpf/livelywpf/Core/Wallpapers/WebProcess.cs index cd8a31c8..8f51ad13 100644 --- a/src/livelywpf/livelywpf/Core/Wallpapers/WebProcess.cs +++ b/src/livelywpf/livelywpf/Core/Wallpapers/WebProcess.cs @@ -7,6 +7,7 @@ namespace livelywpf.Core { public class WebProcess : IWallpaper { + //todo: Check this library out https://github.com/Tyrrrz/CliWrap public WebProcess(string path, LibraryModel model, LivelyScreen display) { LivelyPropertyCopy = null; diff --git a/src/livelywpf/livelywpf/Docs/license.rtf b/src/livelywpf/livelywpf/Docs/license.rtf index 919ecb7c..604a5833 100644 --- a/src/livelywpf/livelywpf/Docs/license.rtf +++ b/src/livelywpf/livelywpf/Docs/license.rtf @@ -71,9 +71,9 @@ No Spacing;}{\*\cs24 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \sbasedon10 \spriori \rsid6243171\rsid6695955\rsid6704124\rsid7042697\rsid7212464\rsid7362808\rsid7433477\rsid7481440\rsid7750787\rsid7814905\rsid8149878\rsid8532619\rsid8612330\rsid8616423\rsid8718502\rsid8745047\rsid8804037\rsid8876939\rsid8931313\rsid9845156\rsid9919483 \rsid9977545\rsid9990090\rsid9991455\rsid10168555\rsid10175951\rsid10370081\rsid10569259\rsid10761062\rsid10833687\rsid10951986\rsid10956787\rsid11363778\rsid11671717\rsid12338710\rsid12474677\rsid12482967\rsid12806171\rsid13119445\rsid13135701 \rsid13373303\rsid13381601\rsid13579817\rsid13643783\rsid13662555\rsid13788930\rsid13963034\rsid14048677\rsid14057040\rsid14226533\rsid14367033\rsid14370252\rsid14494510\rsid14685526\rsid14701935\rsid14877467\rsid14903299\rsid15098231\rsid15273691 -\rsid15363914\rsid15401395\rsid15477676\rsid15488107\rsid15739539\rsid15756206\rsid15932669\rsid15934410\rsid16070726\rsid16189706\rsid16328086\rsid16349761\rsid16391475\rsid16543391}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1 -\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author Dani John}{\operator Dani John}{\creatim\yr2019\mo9\dy7\hr22\min27}{\revtim\yr2020\mo8\dy29\hr8\min10}{\version118}{\edmins205}{\nofpages36}{\nofwords15444}{\nofchars88034} -{\nofcharsws103272}{\vern57433}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect +\rsid15363914\rsid15401395\rsid15477676\rsid15487171\rsid15488107\rsid15739539\rsid15756206\rsid15932669\rsid15934410\rsid16070726\rsid16189706\rsid16328086\rsid16349761\rsid16391475\rsid16543391}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0 +\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author Dani John}{\operator Dani John}{\creatim\yr2019\mo9\dy7\hr22\min27}{\revtim\yr2020\mo9\dy6\hr22\min25}{\version119}{\edmins207}{\nofpages36}{\nofwords15446} +{\nofchars88048}{\nofcharsws103288}{\vern57433}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect \widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen \expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1440\dgvorigin1440\dghshow1\dgvshow1 \jexpand\viewkind1\viewscale140\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct @@ -111,7 +111,7 @@ Godot, Bizhawk, Shadertoy.com or any }{\rtlch\fcs1 \ab\ai\af1\afs20 \ltrch\fcs0 \par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\chshdng0\chcfpat0\chcbpat8\insrsid4414334\charrsid11671717 Interity (Italian) \par Jaehyung Lee (Korean) - }{\field\flddirty{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\chshdng0\chcfpat0\chcbpat8\insrsid4414334\charrsid11671717 HYPERLINK "http://www.kolanp.com" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\chshdng0\chcfpat0\chcbpat8\insrsid4414334\charrsid11671717 {\*\datafield -00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b4600000068007400740070003a002f002f007700770077002e006b006f006c0061006e0070002e0063006f006d002f000000795881f43b1d7f48af2c825dc485276300000000a5ab0003ff83000000000000}} +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b4600000068007400740070003a002f002f007700770077002e006b006f006c0061006e0070002e0063006f006d002f000000795881f43b1d7f48af2c825dc485276300000000a5ab0003ff83000000000000ff}} }{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\f1\fs20\ul\cf2\chshdng0\chcfpat0\chcbpat8\insrsid4414334\charrsid11671717 http://www.kolanp.com}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs25\f1\fs20\insrsid4414334\charrsid11671717 \par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs27\f1\fs20\lang1040\langfe1033\langnp1040\insrsid4414334\charrsid11671717 Jo\'e3o Branco (Portuguese) @@ -125,7 +125,8 @@ Godot, Bizhawk, Shadertoy.com or any }{\rtlch\fcs1 \ab\ai\af1\afs20 \ltrch\fcs0 \par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf20\chshdng0\chcfpat0\chcbpat8\insrsid4414334\charrsid11671717 SserVeG \par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid4414334\charrsid11671717 Tugdual Meeus (French)}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid4414334 \par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid329413 ANotThrowawayKonto (Malay) -\par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid4595797 Lulucmy}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid4595797\charrsid11671717 +\par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid4595797 Lulucmy +\par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid15487171 Frank Z (Dutch)}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid15487171\charrsid11671717 \par }\pard\plain \ltrpar\ql \li0\ri0\widctlpar\brdrb\brdrs\brdrw10\brsp20 \tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8616423 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\chshdng0\chcfpat0\chcbpat8\insrsid8616423\charrsid13662555 @@ -134,8 +135,8 @@ Godot, Bizhawk, Shadertoy.com or any }{\rtlch\fcs1 \ab\ai\af1\afs20 \ltrch\fcs0 \par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf1\insrsid12482967 Icons by icons8:}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf1\insrsid9977545\charrsid3219979 }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid9977545\charrsid3219979 HYPERLINK "https://icons8.com/" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid9977545\charrsid3219979 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b40000000680074007400700073003a002f002f00690063006f006e00730038002e0063006f006d002f000000795881f43b1d7f48af2c825dc485276300000000a5ab0003000000b0770045730000ff500000f3000000 -00000000ff0000000000000000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\f1\fs20\ul\cf2\insrsid9977545\charrsid3219979 https://icons8.com/}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 -\f1\fs20\insrsid9977545\charrsid3219979 +00000000ff000000000000000000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\f1\fs20\ul\cf2\insrsid9977545\charrsid3219979 https://icons8.com/}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 +\ltrch\fcs0 \f1\fs20\insrsid9977545\charrsid3219979 \par }\pard \ltrpar\ql \li0\ri0\widctlpar\brdrb\brdrs\brdrw10\brsp20 \tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12806171 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\ul\insrsid9977545\charrsid3219979 @@ -147,8 +148,8 @@ Godot, Bizhawk, Shadertoy.com or any }{\rtlch\fcs1 \ab\ai\af1\afs20 \ltrch\fcs0 \f1\fs20\cf1\insrsid12482967\charrsid12482967 ayne }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf1\insrsid1862052 B}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf1\insrsid12482967\charrsid12482967 anner}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf1\insrsid12482967 : }{\field{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\ul\insrsid12482967 HYPERLINK "https://waynebanner.artstation.com/" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\ul\insrsid12482967 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b60000000680074007400700073003a002f002f007700610079006e006500620061006e006e00650072002e00610072007400730074006100740069006f006e002e0063006f006d002f000000795881f43b1d7f48af2c -825dc485276300000000a5ab00030000000100000001}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\f1\fs20\ul\cf2\insrsid12482967\charrsid12482967 https://waynebanner.artstation.com/}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj { -\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\ul\insrsid12482967 +825dc485276300000000a5ab0003000000010000000100}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\f1\fs20\ul\cf2\insrsid12482967\charrsid12482967 https://waynebanner.artstation.com/}}}\sectd \ltrsect +\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\ul\insrsid12482967 \par }\pard \ltrpar\ql \li0\ri0\widctlpar\brdrb\brdrs\brdrw10\brsp20 \tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12482967 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\ul\insrsid12482967\charrsid3219979 @@ -157,12 +158,12 @@ Godot, Bizhawk, Shadertoy.com or any }{\rtlch\fcs1 \ab\ai\af1\afs20 \ltrch\fcs0 \par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\ul\insrsid10370081\charrsid3219979 CefSharp}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid10370081\charrsid3219979 : }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid10370081\charrsid3219979 HYPERLINK "https://github.com/cefsharp/CefSharp" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid14494510\charrsid3219979 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b62000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f00630065006600730068006100720070002f00430065006600530068006100720070000000795881f43b1d7f48 -af2c825dc485276300000000a5ab0003000000fe000100000000770000000000000000000000000000000073005c12ff800000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\f1\fs20\ul\cf2\insrsid10370081\charrsid3219979 https://github.com/cefsharp/CefSharp}}} +af2c825dc485276300000000a5ab0003000000fe000100000000770000000000000000000000000000000073005c12ff80000000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\f1\fs20\ul\cf2\insrsid10370081\charrsid3219979 https://github.com/cefsharp/CefSharp}}} \sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid10370081\charrsid3219979 \par License: }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid15098231\charrsid3219979 HYPERLINK "https://github.com/cefsharp/CefSharp/blob/master/LICENSE" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid10370081\charrsid3219979 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b8a000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f00630065006600730068006100720070002f00430065006600530068006100720070002f0062006c006f006200 -2f006d00610073007400650072002f004c004900430045004e00530045000000795881f43b1d7f48af2c825dc485276300000000a5ab000300360000686e0000000000009700000000e4550000000000000000000000006100640000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 +2f006d00610073007400650072002f004c004900430045004e00530045000000795881f43b1d7f48af2c825dc485276300000000a5ab000300360000686e0000000000009700000000e455000000000000000000000000610064000000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\f1\fs20\ul\cf2\insrsid15098231\charrsid3219979 https://github.com/cefsharp/CefSharp/blob/master/LICENSE}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid15098231\charrsid3219979 \par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf1\insrsid15098231\charrsid3219979 @@ -201,12 +202,12 @@ af2c825dc485276300000000a5ab0003000000fe0001000000007700000000000000000000000000 \af1\afs20 \ltrch\fcs0 \f1\fs20\ul\insrsid14370252\charrsid14370252 RawInput.Sharp}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid14370252\charrsid14370252 : }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid14370252\charrsid14370252 HYPERLINK "https://github.com/mfakane/rawinput-sharp" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid16543391\charrsid14370252 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6c000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f006d00660061006b0061006e0065002f0072006100770069006e007000750074002d0073006800610072007000 -0000795881f43b1d7f48af2c825dc485276300000000a5ab000300590000000000200000ff00}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid14370252\charrsid14370252 \hich\af1\dbch\af31501\loch\f1 +0000795881f43b1d7f48af2c825dc485276300000000a5ab000300590000000000200000ff0000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid14370252\charrsid14370252 \hich\af1\dbch\af31501\loch\f1 https://github.com/mfakane/rawinput-sharp}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid14370252\charrsid14370252 \par License: }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid14370252\charrsid14370252 HYPERLINK "https://github.com/mfakane/rawinput-sharp/blob/master/LICENSE.txt" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid16543391\charrsid14370252 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b9c000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f006d00660061006b0061006e0065002f0072006100770069006e007000750074002d0073006800610072007000 -2f0062006c006f0062002f006d00610073007400650072002f004c004900430045004e00530045002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab0003000000000000004100000000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 +2f0062006c006f0062002f006d00610073007400650072002f004c004900430045004e00530045002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab000300000000000000410000000000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid14370252\charrsid14370252 \hich\af1\dbch\af31501\loch\f1 https://github.com/mfakane/rawinput-sharp/blob/master/LICENSE.txt}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj { \rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid14370252\charrsid14370252 \par }\pard\plain \ltrpar\s19\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14370252 @@ -237,13 +238,13 @@ https://github.com/mfakane/rawinput-sharp}}}\sectd \ltrsect\linex0\endnhere\sect \af1\afs20 \ltrch\fcs0 \f1\fs20\ul\insrsid14057040\charrsid3219979 Newtonsoft.Json}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid14057040\charrsid3219979 : }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid14057040\charrsid3219979 HYPERLINK "https://github.com/JamesNK/Newtonsoft.Json" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid16349761\charrsid3219979 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6e000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f004a0061006d00650073004e004b002f004e006500770074006f006e0073006f00660074002e004a0073006f00 -6e000000795881f43b1d7f48af2c825dc485276300000000a5ab00030007000000000000ff000000000002000000000000ff000000000100000000bcff}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\f1\fs20\ul\cf2\insrsid14057040\charrsid3219979 +6e000000795881f43b1d7f48af2c825dc485276300000000a5ab00030007000000000000ff000000000002000000000000ff000000000100000000bcff00}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\f1\fs20\ul\cf2\insrsid14057040\charrsid3219979 https://github.com/JamesNK/Newtonsoft.Json}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid14057040\charrsid3219979 \par }\pard \ltrpar\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9845156 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid14057040\charrsid3219979 License: }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid14057040\charrsid3219979 HYPERLINK "https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid16349761\charrsid3219979 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b9c000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f004a0061006d00650073004e004b002f004e006500770074006f006e0073006f00660074002e004a0073006f00 -6e002f0062006c006f0062002f006d00610073007400650072002f004c004900430045004e00530045002e006d0064000000795881f43b1d7f48af2c825dc485276300000000a5ab000300030000000000000200000000000000000000000000000000001c00000000fc00}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 +6e002f0062006c006f0062002f006d00610073007400650072002f004c004900430045004e00530045002e006d0064000000795881f43b1d7f48af2c825dc485276300000000a5ab000300030000000000000200000000000000000000000000000000001c00000000fc0000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\f1\fs20\ul\cf2\insrsid14057040\charrsid3219979 https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid14057040\charrsid3219979 \par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid9845156\charrsid3219979 @@ -274,13 +275,13 @@ https://github.com/JamesNK/Newtonsoft.Json}}}\sectd \ltrsect\linex0\endnhere\sec \af1\afs20 \ltrch\fcs0 \f1\fs20\ul\insrsid13579817\charrsid13579817 Youtube-dl}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid13579817\charrsid13579817 : }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid13579817\charrsid13579817 HYPERLINK "https://github.com/ytdl-org/youtube-dl" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid329413\charrsid13579817 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b66000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f007900740064006c002d006f00720067002f0079006f00750074007500620065002d0064006c000000795881f4 -3b1d7f48af2c825dc485276300000000a5ab000300}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid13579817\charrsid13579817 \hich\af1\dbch\af31501\loch\f1 https://github.com/ytdl-org/youtube-dl}}} +3b1d7f48af2c825dc485276300000000a5ab00030000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid13579817\charrsid13579817 \hich\af1\dbch\af31501\loch\f1 https://github.com/ytdl-org/youtube-dl}}} \sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid13579817\charrsid13579817 \par License: }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid13579817\charrsid13579817 HYPERLINK "https://github.com/ytdl-org/youtube-dl/blob/master/LICENSE" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid329413\charrsid13579817 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b8e000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f007900740064006c002d006f00720067002f0079006f00750074007500620065002d0064006c002f0062006c00 -6f0062002f006d00610073007400650072002f004c004900430045004e00530045000000795881f43b1d7f48af2c825dc485276300000000a5ab000300}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid13579817\charrsid13579817 -\hich\af1\dbch\af31501\loch\f1 https://github.com/ytdl-org/youtube-dl/blob/master/LICE\hich\af1\dbch\af31501\loch\f1 NSE}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 +6f0062002f006d00610073007400650072002f004c004900430045004e00530045000000795881f43b1d7f48af2c825dc485276300000000a5ab00030000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid13579817\charrsid13579817 +\hich\af1\dbch\af31501\loch\f1 https://github.com/ytdl-org/youtube-dl/blob/master/LIC\hich\af1\dbch\af31501\loch\f1 ENSE}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid13579817\charrsid13579817 \par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf1\insrsid13579817\charrsid13579817 This is free and unencumbered software released into the public domain. \par @@ -311,12 +312,12 @@ https://github.com/JamesNK/Newtonsoft.Json}}}\sectd \ltrsect\linex0\endnhere\sec \af1\afs20 \ltrch\fcs0 \f1\fs20\ul\insrsid16391475\charrsid16391475 libmpv}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid16391475\charrsid16391475 : }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid16391475\charrsid16391475 HYPERLINK "https://github.com/mpv-player/mpv/tree/master/libmpv" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid13579817\charrsid16391475 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b82000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f006d00700076002d0070006c0061007900650072002f006d00700076002f0074007200650065002f006d006100 -73007400650072002f006c00690062006d00700076000000795881f43b1d7f48af2c825dc485276300000000a5ab00030000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid16391475\charrsid16391475 +73007400650072002f006c00690062006d00700076000000795881f43b1d7f48af2c825dc485276300000000a5ab0003000000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid16391475\charrsid16391475 \hich\af1\dbch\af31501\loch\f1 https://github.com/mpv-player/mpv/tree/master/libmpv}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid16391475\charrsid16391475 \par License: }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid16391475\charrsid16391475 HYPERLINK "https://github.com/mpv-player/mpv/blob/master/Copyright" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid13579817\charrsid16391475 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b88000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f006d00700076002d0070006c0061007900650072002f006d00700076002f0062006c006f0062002f006d006100 -73007400650072002f0043006f0070007900720069006700680074000000795881f43b1d7f48af2c825dc485276300000000a5ab00030000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid16391475\charrsid16391475 +73007400650072002f0043006f0070007900720069006700680074000000795881f43b1d7f48af2c825dc485276300000000a5ab0003000000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid16391475\charrsid16391475 \hich\af1\dbch\af31501\loch\f1 https://github.com/mpv-player/mpv/blob/master/Copyright}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid16391475\charrsid16391475 \par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf1\insrsid16391475\charrsid16391475 GNU GENERAL PUBLIC LICENSE \par Version 2, June 1991 @@ -663,12 +664,12 @@ https://github.com/JamesNK/Newtonsoft.Json}}}\sectd \ltrsect\linex0\endnhere\sec \af1\afs20 \ltrch\fcs0 \f1\fs20\ul\insrsid16391475\charrsid8149878 Mpv.net}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid16391475\charrsid8149878 : }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid16391475\charrsid8149878 HYPERLINK "https://github.com/stax76/mpv.net" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid16391475\charrsid8149878 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b5c000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f007300740061007800370036002f006d00700076002e006e00650074000000795881f43b1d7f48af2c825dc485 -276300000000a5ab0003ff00000000000000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid16391475\charrsid8149878 \hich\af1\dbch\af31501\loch\f1 https://github.com/stax76/mpv.net}}}\sectd \ltrsect +276300000000a5ab0003ff0000000000000000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid16391475\charrsid8149878 \hich\af1\dbch\af31501\loch\f1 https://github.com/stax76/mpv.net}}}\sectd \ltrsect \linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid16391475\charrsid8149878 \par License: }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid16391475\charrsid8149878 HYPERLINK "https://github.com/stax76/mpv.net/blob/master/LICENSE.txt" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid16391475\charrsid8149878 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b8c000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f007300740061007800370036002f006d00700076002e006e00650074002f0062006c006f0062002f006d006100 -73007400650072002f004c004900430045004e00530045002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab00032000000000000000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 +73007400650072002f004c004900430045004e00530045002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab0003200000000000000000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid16391475\charrsid8149878 \hich\af1\dbch\af31501\loch\f1 https://github.com/stax76/mpv.net/blob/master/LICENSE.txt}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid16391475\charrsid8149878 \par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf1\insrsid16391475\charrsid8149878 MIT License\line @@ -700,14 +701,14 @@ https://github.com/JamesNK/Newtonsoft.Json}}}\sectd \ltrsect\linex0\endnhere\sec \af1\afs20 \ltrch\fcs0 \f1\fs20\ul\insrsid4416096 C}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\ul\insrsid10956787\charrsid4416096 ommandline}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid10956787\charrsid4416096 : }{\field\fldedit{\*\fldinst { \rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid10956787\charrsid4416096 HYPERLINK "https://github.com/commandlineparser/commandline" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid14370252\charrsid4416096 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b7a000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f0063006f006d006d0061006e0064006c0069006e0065007000610072007300650072002f0063006f006d006d00 -61006e0064006c0069006e0065000000795881f43b1d7f48af2c825dc485276300000000a5ab000300000000006500000000006e00}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid10956787\charrsid4416096 -\hich\af1\dbch\af31501\loch\f1 https://github.com/commandlin\hich\af1\dbch\af31501\loch\f1 eparser/commandline}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 +61006e0064006c0069006e0065000000795881f43b1d7f48af2c825dc485276300000000a5ab000300000000006500000000006e0069}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid10956787\charrsid4416096 +\hich\af1\dbch\af31501\loch\f1 https://gi\hich\af1\dbch\af31501\loch\f1 thub.com/commandlineparser/commandline}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid10956787\charrsid4416096 \par }\pard \ltrpar\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2182642 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid10956787\charrsid4416096 License: }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid10956787\charrsid4416096 HYPERLINK "https://github.com/commandlineparser/commandline/blob/master/License.md" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid14370252\charrsid4416096 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90ba8000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f0063006f006d006d0061006e0064006c0069006e0065007000610072007300650072002f0063006f006d006d00 -61006e0064006c0069006e0065002f0062006c006f0062002f006d00610073007400650072002f004c006900630065006e00730065002e006d0064000000795881f43b1d7f48af2c825dc485276300000000a5ab000300000000006e00000000006800}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 +61006e0064006c0069006e0065002f0062006c006f0062002f006d00610073007400650072002f004c006900630065006e00730065002e006d0064000000795881f43b1d7f48af2c825dc485276300000000a5ab000300000000006e0000000000680000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid10956787\charrsid4416096 \hich\af1\dbch\af31501\loch\f1 https://github.com/commandlineparser/commandline/blob/master/License.md}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid10956787\charrsid4416096 \par }\pard \ltrpar\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid10956787 {\rtlch\fcs1 @@ -741,12 +742,12 @@ https://github.com/JamesNK/Newtonsoft.Json}}}\sectd \ltrsect\linex0\endnhere\sec \af1\afs20 \ltrch\fcs0 \f1\fs20\ul\insrsid8931313\charrsid3219979 NLog}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8931313\charrsid3219979 : }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8931313\charrsid3219979 HYPERLINK "https://github.com/NLog/NLog" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid14367033\charrsid3219979 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b52000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f004e004c006f0067002f004e004c006f0067000000795881f43b1d7f48af2c825dc485276300000000a5ab0003 -80f07600001f0000006900000000000011000000fa00000000000000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\f1\fs20\ul\cf2\insrsid8931313\charrsid3219979 https://github.com/NLog/NLog}}}\sectd \ltrsect +80f07600001f0000006900000000000011000000fa0000000000000000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\f1\fs20\ul\cf2\insrsid8931313\charrsid3219979 https://github.com/NLog/NLog}}}\sectd \ltrsect \linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8931313\charrsid3219979 \par License: }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8931313\charrsid3219979 HYPERLINK "https://github.com/NLog/NLog/blob/dev/LICENSE.txt" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid14367033\charrsid3219979 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b7c000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f004e004c006f0067002f004e004c006f0067002f0062006c006f0062002f006400650076002f004c0049004300 -45004e00530045002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab000300000000000000001cff000000000012000000000c0000007400001c}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\f1\fs20\ul\cf2\insrsid8931313\charrsid3219979 +45004e00530045002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab000300000000000000001cff000000000012000000000c0000007400001c00}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\f1\fs20\ul\cf2\insrsid8931313\charrsid3219979 https://github.com/NLog/NLog/blob/dev/LICENSE.txt}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8931313\charrsid3219979 \par }\pard\plain \ltrpar\s19\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8931313 \rtlch\fcs1 \af2\afs20\alang1025 \ltrch\fcs0 \f2\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af1 \ltrch\fcs0 \f1\cf1\insrsid8931313\charrsid3219979 @@ -786,12 +787,12 @@ https://github.com/NLog/NLog/blob/dev/LICENSE.txt}}}\sectd \ltrsect\linex0\endnh \af1\afs20 \ltrch\fcs0 \f1\fs20\ul\insrsid8532619\charrsid3219979 Magick.NET}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8532619\charrsid3219979 : }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8532619\charrsid3219979 HYPERLINK "https://github.com/dlemstra/Magick.NET" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid10951986\charrsid3219979 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b66000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f0064006c0065006d0073007400720061002f004d0061006700690063006b002e004e00450054000000795881f4 -3b1d7f48af2c825dc485276300000000a5ab000300000000000000ff00000000ff000098006800}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid8532619\charrsid3219979 \hich\af1\dbch\af31501\loch\f1 +3b1d7f48af2c825dc485276300000000a5ab000300000000000000ff00000000ff00009800680000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid8532619\charrsid3219979 \hich\af1\dbch\af31501\loch\f1 https://github.com/dlemstra/Magick.NET}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8532619\charrsid3219979 \par License: }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8532619\charrsid3219979 HYPERLINK "https://github.com/dlemstra/Magick.NET/blob/master/License.txt" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid10951986\charrsid3219979 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b96000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f0064006c0065006d0073007400720061002f004d0061006700690063006b002e004e00450054002f0062006c00 -6f0062002f006d00610073007400650072002f004c006900630065006e00730065002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab000300000000000000002a00003700000066000000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 +6f0062002f006d00610073007400650072002f004c006900630065006e00730065002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab000300000000000000002a0000370000006600000000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid8532619\charrsid3219979 \hich\af1\dbch\af31501\loch\f1 https://github.com/dlemstra/Magick.NET/blob/master/License.txt}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj { \rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8532619\charrsid3219979 \par }\pard\plain \ltrpar\s19\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8532619 \rtlch\fcs1 @@ -1004,12 +1005,12 @@ https://github.com/dlemstra/Magick.NET}}}\sectd \ltrsect\linex0\endnhere\sectlin \af1\afs20 \ltrch\fcs0 \f1\fs20\ul\insrsid3219979\charrsid1129000 Inno Setup}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3219979\charrsid1129000 : }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3219979\charrsid1129000 HYPERLINK "http://www.jrsoftware.org/" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\lang1040\langfe1033\langnp1040\insrsid1129000\charrsid3219979 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b4e00000068007400740070003a002f002f007700770077002e006a00720073006f006600740077006100720065002e006f00720067002f000000795881f43b1d7f48af2c825dc485276300000000a5ab000300000000 -00690000fa00000000680000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid3219979\charrsid1129000 \hich\af1\dbch\af31501\loch\f1 http://www.jrsoftware.org/}}}\sectd \ltrsect +00690000fa0000000068000000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid3219979\charrsid1129000 \hich\af1\dbch\af31501\loch\f1 http://www.jrsoftware.org/}}}\sectd \ltrsect \linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3219979\charrsid1129000 \par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3219979\charrsid3219979 License: }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3219979\charrsid3219979 HYPERLINK "http://www.jrsoftware.org/files/is/license.txt" }{ \rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid1129000\charrsid3219979 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b7600000068007400740070003a002f002f007700770077002e006a00720073006f006600740077006100720065002e006f00720067002f00660069006c00650073002f00690073002f006c006900630065006e007300 -65002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab0003000000060100003afa00000000003400}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid3219979\charrsid3219979 +65002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab0003000000060100003afa0000000000340000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid3219979\charrsid3219979 \hich\af1\dbch\af31501\loch\f1 http://www.jrsoftware.org/files/is/license.txt}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3219979\charrsid3219979 \par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf1\insrsid3219979\charrsid3219979 Except where otherwise noted, all of the documentation and software included in the Inno Setup \par package is copyrighted by Jordan Russell. @@ -1045,12 +1046,12 @@ https://github.com/dlemstra/Magick.NET}}}\sectd \ltrsect\linex0\endnhere\sectlin \af1\afs20 \ltrch\fcs0 \f1\fs20\ul\insrsid10175951\charrsid10175951 ModernWpf}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid10175951\charrsid10175951 : }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid10175951\charrsid10175951 HYPERLINK "https://github.com/Kinnara/ModernWpf" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8718502\charrsid10175951 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b62000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f004b0069006e006e006100720061002f004d006f006400650072006e005700700066000000795881f43b1d7f48 -af2c825dc485276300000000a5ab00031800000000000000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid10175951\charrsid10175951 \hich\af1\dbch\af31501\loch\f1 https://github.com/Kinnara/ModernWpf}}} +af2c825dc485276300000000a5ab0003180000000000000000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid10175951\charrsid10175951 \hich\af1\dbch\af31501\loch\f1 https://github.com/Kinnara/ModernWpf}}} \sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid10175951\charrsid10175951 \par License: }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid10175951\charrsid10175951 HYPERLINK "https://github.com/Kinnara/ModernWpf/blob/master/LICENSE" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8718502\charrsid10175951 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b8a000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f004b0069006e006e006100720061002f004d006f006400650072006e005700700066002f0062006c006f006200 -2f006d00610073007400650072002f004c004900430045004e00530045000000795881f43b1d7f48af2c825dc485276300000000a5ab000300000000005c0000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 +2f006d00610073007400650072002f004c004900430045004e00530045000000795881f43b1d7f48af2c825dc485276300000000a5ab000300000000005c000000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid10175951\charrsid10175951 \hich\af1\dbch\af31501\loch\f1 https://github.com/Kinnara/ModernWpf/blob/master/LICENSE}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid10175951\charrsid10175951 \par }\pard\plain \ltrpar\s19\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid10175951 @@ -1081,12 +1082,12 @@ af2c825dc485276300000000a5ab00031800000000000000}}}{\fldrslt {\rtlch\fcs1 \af1\a \af1\afs20 \ltrch\fcs0 \f1\fs20\ul\insrsid5068027 Octokit.net}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid5068027\charrsid5068027 : }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid5068027\charrsid5068027 HYPERLINK "https://github.com/octokit/octokit.net" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8718502\charrsid5068027 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b66000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f006f00630074006f006b00690074002f006f00630074006f006b00690074002e006e00650074000000795881f4 -3b1d7f48af2c825dc485276300000000a5ab00030000780000200000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid5068027\charrsid5068027 \hich\af1\dbch\af31501\loch\f1 https://github.com/octokit/octokit.net} -}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid5068027\charrsid5068027 +3b1d7f48af2c825dc485276300000000a5ab0003000078000020000000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid5068027\charrsid5068027 \hich\af1\dbch\af31501\loch\f1 +https://github.com/octokit/octokit.net}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid5068027\charrsid5068027 \par License: }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid5068027\charrsid5068027 HYPERLINK "https://github.com/octokit/octokit.net/blob/main/LICENSE.txt" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8718502\charrsid5068027 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b92000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f006f00630074006f006b00690074002f006f00630074006f006b00690074002e006e00650074002f0062006c00 -6f0062002f006d00610069006e002f004c004900430045004e00530045002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab000300000000003800fe}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 +6f0062002f006d00610069006e002f004c004900430045004e00530045002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab000300000000003800fe00}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid5068027\charrsid5068027 \hich\af1\dbch\af31501\loch\f1 https://github.com/octokit/octokit.net/blob/mai\hich\af1\dbch\af31501\loch\f1 n/LICENSE.txt}}}\sectd \ltrsect \linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid5068027\charrsid5068027 \par }\pard\plain \ltrpar\s19\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid5068027 \rtlch\fcs1 @@ -1116,12 +1117,12 @@ af2c825dc485276300000000a5ab00031800000000000000}}}{\fldrslt {\rtlch\fcs1 \af1\a \af1\afs20 \ltrch\fcs0 \f1\fs20\ul\insrsid4332568\charrsid4332568 SharpZipLib}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid4332568\charrsid4332568 : }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid4332568\charrsid4332568 HYPERLINK "https://github.com/icsharpcode/SharpZipLib" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8718502\charrsid4332568 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6e000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f00690063007300680061007200700063006f00640065002f00530068006100720070005a00690070004c006900 -62000000795881f43b1d7f48af2c825dc485276300000000a5ab000300f2290000580000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid4332568\charrsid4332568 \hich\af1\dbch\af31501\loch\f1 +62000000795881f43b1d7f48af2c825dc485276300000000a5ab000300f229000058000000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid4332568\charrsid4332568 \hich\af1\dbch\af31501\loch\f1 https://github.com/icsharpcode/SharpZipLib}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid4332568\charrsid4332568 \par License: }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid4332568\charrsid4332568 HYPERLINK "https://github.com/icsharpcode/SharpZipLib/blob/master/LICENSE.txt" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8718502\charrsid4332568 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b9e000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f00690063007300680061007200700063006f00640065002f00530068006100720070005a00690070004c006900 -62002f0062006c006f0062002f006d00610073007400650072002f004c004900430045004e00530045002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab00034500000000750000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 +62002f0062006c006f0062002f006d00610073007400650072002f004c004900430045004e00530045002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab0003450000000075000000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid4332568\charrsid4332568 \hich\af1\dbch\af31501\loch\f1 https://github.com/icsharpcode/SharpZipLib/blob/master/LICENSE.txt}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj { \rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid4332568\charrsid4332568 \par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf1\insrsid4332568\charrsid4332568 MIT License}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf1\insrsid4332568\charrsid8149878 \line @@ -1147,12 +1148,12 @@ https://github.com/icsharpcode/SharpZipLib}}}\sectd \ltrsect\linex0\endnhere\sec \af1\afs20 \ltrch\fcs0 \f1\fs20\ul\insrsid14048677\charrsid5068027 libvlcsharp}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid14048677\charrsid5068027 : }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid14048677\charrsid5068027 HYPERLINK "https://github.com/videolan/libvlcsharp" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8718502\charrsid5068027 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b68000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f0076006900640065006f006c0061006e002f006c006900620076006c0063007300680061007200700000007958 -81f43b1d7f48af2c825dc485276300000000a5ab00030000006800440000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid14048677\charrsid5068027 \hich\af1\dbch\af31501\loch\f1 +81f43b1d7f48af2c825dc485276300000000a5ab0003000000680044000000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid14048677\charrsid5068027 \hich\af1\dbch\af31501\loch\f1 https://github.com/videolan/libvlcsharp}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid14048677\charrsid5068027 \par License: }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid14048677\charrsid5068027 HYPERLINK "https://github.com/videolan/libvlcsharp/blob/3.x/LICENSE" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8718502\charrsid5068027 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b8a000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f0076006900640065006f006c0061006e002f006c006900620076006c006300730068006100720070002f006200 -6c006f0062002f0033002e0078002f004c004900430045004e00530045000000795881f43b1d7f48af2c825dc485276300000000a5ab000300000008005a0200}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 +6c006f0062002f0033002e0078002f004c004900430045004e00530045000000795881f43b1d7f48af2c825dc485276300000000a5ab000300000008005a020000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid14048677\charrsid5068027 \hich\af1\dbch\af31501\loch\f1 https://github.com/videolan/libvlcsharp/blob/3.x/LICENSE}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid14048677\charrsid5068027 \par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf1\insrsid14048677\charrsid5068027 GNU LESSER GENERAL PUBLIC LICENSE @@ -1666,18 +1667,18 @@ https://github.com/videolan/libvlcsharp}}}\sectd \ltrsect\linex0\endnhere\sectli \par }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid1596782\charrsid1596782 HYPERLINK "https://github.com/videolan/vlc/tree/master/lib" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8718502\charrsid1596782 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b78000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f0076006900640065006f006c0061006e002f0076006c0063002f0074007200650065002f006d00610073007400 -650072002f006c00690062000000795881f43b1d7f48af2c825dc485276300000000a5ab00030000000000ce0000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid1596782\charrsid1596782 \hich\af1\dbch\af31501\loch\f1 +650072002f006c00690062000000795881f43b1d7f48af2c825dc485276300000000a5ab00030000000000ce00000c}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid1596782\charrsid1596782 \hich\af1\dbch\af31501\loch\f1 https://github.com/videolan/vlc/tree/master/lib}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid1596782\charrsid1596782 \par }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid1596782\charrsid1596782 HYPERLINK "https://code.videolan.org/videolan/libvlc-nuget" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8718502\charrsid1596782 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b78000000680074007400700073003a002f002f0063006f00640065002e0076006900640065006f006c0061006e002e006f00720067002f0076006900640065006f006c0061006e002f006c006900620076006c006300 -2d006e0075006700650074000000795881f43b1d7f48af2c825dc485276300000000a5ab0003d200000000ce0046}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid1596782\charrsid1596782 \hich\af1\dbch\af31501\loch\f1 +2d006e0075006700650074000000795881f43b1d7f48af2c825dc485276300000000a5ab0003d200000000ce004600}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid1596782\charrsid1596782 \hich\af1\dbch\af31501\loch\f1 https://code.videolan.org/videolan/libvlc-nuget}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid1596782\charrsid1596782 \par License: }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid1596782 \par }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid1596782\charrsid1596782 HYPERLINK "https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8718502\charrsid1596782 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b88000000680074007400700073003a002f002f007700770077002e0067006e0075002e006f00720067002f006c006900630065006e007300650073002f006f006c0064002d006c006900630065006e00730065007300 -2f006c00670070006c002d0032002e0031002e00680074006d006c000000795881f43b1d7f48af2c825dc485276300000000a5ab000300000000007800a2}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid1596782\charrsid1596782 +2f006c00670070006c002d0032002e0031002e00680074006d006c000000795881f43b1d7f48af2c825dc485276300000000a5ab000300000000007800a200}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\fs20\ul\cf2\loch\af1\hich\af1\dbch\af31501\insrsid1596782\charrsid1596782 \hich\af1\dbch\af31501\loch\f1 https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid1596782\charrsid1596782 \par GNU LESSER GENERAL PUBLIC LICENSE \par Version 2.1, February 1999 @@ -2191,12 +2192,13 @@ https://code.videolan.org/videolan/libvlc-nuget}}}\sectd \ltrsect\linex0\endnher \af1\afs20 \ltrch\fcs0 \f1\fs20\ul\insrsid5471568 \par MaterialSkin: }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid5471568 HYPERLINK "https://github.com/IgnaceMaes/MaterialSkin" }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid5471568 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6e000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f00490067006e006100630065004d006100650073002f004d006100740065007200690061006c0053006b006900 -6e000000795881f43b1d7f48af2c825dc485276300000000a5ab0003ff98140000450000000000000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs18\ul\cf2\dbch\af31501\insrsid5471568 \hich\af31506\dbch\af31501\loch\f31506 https://github.com/IgnaceMaes/MaterialSkin}}} +6e000000795881f43b1d7f48af2c825dc485276300000000a5ab0003ff9814000045000000000000000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs18\ul\cf2\dbch\af31501\insrsid5471568 \hich\af31506\dbch\af31501\loch\f31506 https://github.com/IgnaceMaes/MaterialSkin}}} \sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid5471568 \par License: }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid5471568 HYPERLINK "https://github.com/IgnaceMaes/MaterialSkin/blob/master/LICENSE" }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid5471568 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b96000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f00490067006e006100630065004d006100650073002f004d006100740065007200690061006c0053006b006900 -6e002f0062006c006f0062002f006d00610073007400650072002f004c004900430045004e00530045000000795881f43b1d7f48af2c825dc485276300000000a5ab0003ff0000000000000000ff00000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs18\ul\cf2\dbch\af31501\insrsid5471568 -\hich\af31506\dbch\af31501\loch\f31506 https://github.com/IgnaceMaes/MaterialSkin/blob/master/LICENSE}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid5471568 +6e002f0062006c006f0062002f006d00610073007400650072002f004c004900430045004e00530045000000795881f43b1d7f48af2c825dc485276300000000a5ab0003ff0000000000000000ff0000000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs18\ul\cf2\dbch\af31501\insrsid5471568 +\hich\af31506\dbch\af31501\loch\f31506 https://github.com/IgnaceMaes/MaterialSkin/blob/m\hich\af31506\dbch\af31501\loch\f31506 aster/LICENSE}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af0 \ltrch\fcs0 +\insrsid5471568 \par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\ul\insrsid5471568\charrsid8804037 \par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf1\insrsid5471568\charrsid8876939 Copyright (c) 2014 Ignace Maes \par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\ul\insrsid5471568\charrsid8804037 @@ -2226,12 +2228,12 @@ https://code.videolan.org/videolan/libvlc-nuget}}}\sectd \ltrsect\linex0\endnher \par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\ul\insrsid5471568\charrsid3219979 Html5-boilerplate}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid5471568\charrsid3219979 : }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid5471568\charrsid3219979 HYPERLINK "https://github.com/h5bp/html5-boilerplate" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\lang1040\langfe1033\langnp1040\insrsid5471568\charrsid3219979 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6c000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f0068003500620070002f00680074006d006c0035002d0062006f0069006c006500720070006c00610074006500 -0000795881f43b1d7f48af2c825dc485276300000000a5ab0003000000003c72ff0000000000ff0000000500000000000000000000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\f1\fs20\ul\cf2\insrsid5471568\charrsid3219979 https://github.com/h5bp/html5-boilerplate}}} +0000795881f43b1d7f48af2c825dc485276300000000a5ab0003000000003c72ff0000000000ff000000050000000000000000000081}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\f1\fs20\ul\cf2\insrsid5471568\charrsid3219979 https://github.com/h5bp/html5-boilerplate}}} \sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid5471568\charrsid3219979 \par License: }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid5471568\charrsid3219979 HYPERLINK "https://github.com/h5bp/html5-boilerplate/blob/master/LICENSE.txt" }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid5471568\charrsid3219979 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b9c000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f0068003500620070002f00680074006d006c0035002d0062006f0069006c006500720070006c00610074006500 -2f0062006c006f0062002f006d00610073007400650072002f004c004900430045004e00530045002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab00034f0000000000ff0000000000ffff0000000000000000ff69002400}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 +2f0062006c006f0062002f006d00610073007400650072002f004c004900430045004e00530045002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab00034f0000000000ff0000000000ffff0000000000000000ff6900240000}}}{\fldrslt {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \cs18\f1\fs20\ul\cf2\insrsid5471568\charrsid3219979 https://github.com/h5bp/html5-boilerplate/blob/master/LICENSE.txt}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid5471568\charrsid3219979 \par @@ -2399,8 +2401,8 @@ fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000d058 -25c2ad7dd601feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000509e +f4886e84d601feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file diff --git a/src/livelywpf/livelywpf/Enums.cs b/src/livelywpf/livelywpf/Enums.cs index 7f5f4357..fd89c540 100644 --- a/src/livelywpf/livelywpf/Enums.cs +++ b/src/livelywpf/livelywpf/Enums.cs @@ -134,4 +134,15 @@ public enum LivelyMediaPlayer libmpvExt } + /// + /// Same as: https://docs.microsoft.com/en-us/dotnet/api/system.windows.media.stretch?view=netcore-3.1 + /// + public enum WallpaperScaler + { + none, + fill, + uniform, + uniformFill + } + } diff --git a/src/livelywpf/livelywpf/Helpers/ScreenHelper.cs b/src/livelywpf/livelywpf/Helpers/ScreenHelper.cs index fa85e0f5..ce8c1698 100644 --- a/src/livelywpf/livelywpf/Helpers/ScreenHelper.cs +++ b/src/livelywpf/livelywpf/Helpers/ScreenHelper.cs @@ -12,8 +12,6 @@ namespace livelywpf { public static class ScreenHelper { - private static readonly NLog.Logger Logger = NLog.LogManager.GetCurrentClassLogger(); - public static bool IsMultiScreen() { return Screen.AllScreens.Count() > 1; diff --git a/src/livelywpf/livelywpf/Model/SettingsModel.cs b/src/livelywpf/livelywpf/Model/SettingsModel.cs index ffb03086..a6cd2cac 100644 --- a/src/livelywpf/livelywpf/Model/SettingsModel.cs +++ b/src/livelywpf/livelywpf/Model/SettingsModel.cs @@ -80,6 +80,7 @@ public class SettingsModel : ObservableObject /// 0 - 100 sound level, affects every wallpaper type. /// public int AudioVolumeGlobal { get; set; } + public WallpaperScaler WallpaperScaling { get; set; } //private /* //todo need to rewrite audio manager from scratch. @@ -148,6 +149,7 @@ public SettingsModel() AutoDetectOnlineStreams = true; WallpaperBundleVersion = -1; AudioVolumeGlobal = 50; + WallpaperScaling = WallpaperScaler.fill; } } } diff --git a/src/livelywpf/livelywpf/Properties/Resources.Designer.cs b/src/livelywpf/livelywpf/Properties/Resources.Designer.cs index 13236fdd..6710e15c 100644 --- a/src/livelywpf/livelywpf/Properties/Resources.Designer.cs +++ b/src/livelywpf/livelywpf/Properties/Resources.Designer.cs @@ -857,6 +857,42 @@ public static string TextVideo { } } + /// + /// Looks up a localized string similar to Fill. + /// + public static string TextWallpaperFitFill { + get { + return ResourceManager.GetString("TextWallpaperFitFill", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to None. + /// + public static string TextWallpaperFitNone { + get { + return ResourceManager.GetString("TextWallpaperFitNone", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Uniform. + /// + public static string TextWallpaperFitUniform { + get { + return ResourceManager.GetString("TextWallpaperFitUniform", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Uniform Fill. + /// + public static string TextWallpaperFitUniformToFill { + get { + return ResourceManager.GetString("TextWallpaperFitUniformToFill", resourceCulture); + } + } + /// /// Looks up a localized string similar to Duplicate same wallpaper. /// @@ -1121,6 +1157,15 @@ public static string TipWallpaperDir { } } + /// + /// Looks up a localized string similar to Wallpaper scaling algorithm.. + /// + public static string TipWallpaperFit { + get { + return ResourceManager.GetString("TipWallpaperFit", resourceCulture); + } + } + /// /// Looks up a localized string similar to Select ways to interact with wallpaper.. /// @@ -1572,6 +1617,15 @@ public static string TitleWallpaperDirMoveExisting { } } + /// + /// Looks up a localized string similar to Choose a fit. + /// + public static string TitleWallpaperFit { + get { + return ResourceManager.GetString("TitleWallpaperFit", resourceCulture); + } + } + /// /// Looks up a localized string similar to Wallpaper Input. /// diff --git a/src/livelywpf/livelywpf/Properties/Resources.ar.resx b/src/livelywpf/livelywpf/Properties/Resources.ar.resx index aea8b878..e24edde6 100644 --- a/src/livelywpf/livelywpf/Properties/Resources.ar.resx +++ b/src/livelywpf/livelywpf/Properties/Resources.ar.resx @@ -662,4 +662,22 @@ Edge is the built in webview of windows 10. Are you sure you want to delete this wallpaper from the Library? + + Fill + + + None + + + Uniform + + + Uniform Fill + + + Wallpaper scaling algorithm. + + + Choose a fit + \ No newline at end of file diff --git a/src/livelywpf/livelywpf/Properties/Resources.de.resx b/src/livelywpf/livelywpf/Properties/Resources.de.resx index 408752a3..9fb7cacd 100644 --- a/src/livelywpf/livelywpf/Properties/Resources.de.resx +++ b/src/livelywpf/livelywpf/Properties/Resources.de.resx @@ -663,5 +663,23 @@ https://github.com/rocksdanister/lively/wiki Master Volume + + + Fill + + + None + + + Uniform + + + Uniform Fill + + + Wallpaper scaling algorithm. + + + Choose a fit \ No newline at end of file diff --git a/src/livelywpf/livelywpf/Properties/Resources.es.resx b/src/livelywpf/livelywpf/Properties/Resources.es.resx index 5098bf46..b859589f 100644 --- a/src/livelywpf/livelywpf/Properties/Resources.es.resx +++ b/src/livelywpf/livelywpf/Properties/Resources.es.resx @@ -664,4 +664,22 @@ https://github.com/rocksdanister/lively/wiki Master Volume + + Fill + + + None + + + Uniform + + + Uniform Fill + + + Wallpaper scaling algorithm. + + + Choose a fit + \ No newline at end of file diff --git a/src/livelywpf/livelywpf/Properties/Resources.fil.resx b/src/livelywpf/livelywpf/Properties/Resources.fil.resx index 92cd690b..da1181bd 100644 --- a/src/livelywpf/livelywpf/Properties/Resources.fil.resx +++ b/src/livelywpf/livelywpf/Properties/Resources.fil.resx @@ -662,4 +662,22 @@ https://github.com/rocksdanister/lively/wiki Master Volume + + Fill + + + None + + + Uniform + + + Uniform Fill + + + Wallpaper scaling algorithm. + + + Choose a fit + \ No newline at end of file diff --git a/src/livelywpf/livelywpf/Properties/Resources.fr.resx b/src/livelywpf/livelywpf/Properties/Resources.fr.resx index b1ec7a71..ade08e18 100644 --- a/src/livelywpf/livelywpf/Properties/Resources.fr.resx +++ b/src/livelywpf/livelywpf/Properties/Resources.fr.resx @@ -667,4 +667,22 @@ https://github.com/rocksdanister/lively/wiki Master Volume + + Fill + + + None + + + Uniform + + + Uniform Fill + + + Wallpaper scaling algorithm. + + + Choose a fit + diff --git a/src/livelywpf/livelywpf/Properties/Resources.hu.resx b/src/livelywpf/livelywpf/Properties/Resources.hu.resx index 5ca4d924..d6767af7 100644 --- a/src/livelywpf/livelywpf/Properties/Resources.hu.resx +++ b/src/livelywpf/livelywpf/Properties/Resources.hu.resx @@ -665,4 +665,22 @@ https://github.com/rocksdanister/lively/wiki Master Volume + + Fill + + + None + + + Uniform + + + Uniform Fill + + + Wallpaper scaling algorithm. + + + Choose a fit + \ No newline at end of file diff --git a/src/livelywpf/livelywpf/Properties/Resources.it.resx b/src/livelywpf/livelywpf/Properties/Resources.it.resx index fc02a0f8..99c65515 100644 --- a/src/livelywpf/livelywpf/Properties/Resources.it.resx +++ b/src/livelywpf/livelywpf/Properties/Resources.it.resx @@ -667,4 +667,22 @@ https://github.com/rocksdanister/lively/wiki Master Volume + + Fill + + + None + + + Uniform + + + Uniform Fill + + + Wallpaper scaling algorithm. + + + Choose a fit + \ No newline at end of file diff --git a/src/livelywpf/livelywpf/Properties/Resources.ko.resx b/src/livelywpf/livelywpf/Properties/Resources.ko.resx index a48c4ab4..e5794126 100644 --- a/src/livelywpf/livelywpf/Properties/Resources.ko.resx +++ b/src/livelywpf/livelywpf/Properties/Resources.ko.resx @@ -666,4 +666,22 @@ Edge는 Windows 10의 내장 웹뷰입니다. Master Volume + + Fill + + + None + + + Uniform + + + Uniform Fill + + + Wallpaper scaling algorithm. + + + Choose a fit + \ No newline at end of file diff --git a/src/livelywpf/livelywpf/Properties/Resources.ms.resx b/src/livelywpf/livelywpf/Properties/Resources.ms.resx index aa19b17f..2a1833e1 100644 --- a/src/livelywpf/livelywpf/Properties/Resources.ms.resx +++ b/src/livelywpf/livelywpf/Properties/Resources.ms.resx @@ -117,7 +117,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Pilih fail atau tentukan laman sesawang URL untuk dijadikan wallpaper. + Pilih fail atau tentukan laman sesawang URL sebagai wallpaper. Tingkah laku main semula wallpaper berdasarkan aplikasi yang sedang berjalan. @@ -126,10 +126,10 @@ Adakah anda pasti anda mahu batalkan? - Adakah anda pasti anda mahu memadamkan wallpaper secara tetap daripada simpanan ? + Adakah anda pasti anda mahu memadamkan wallpaper secara tetap daripada simpanan? - Seret dan lepaskan ke dalam pustaka. + Seret dan lepaskan fail ke dalam pustaka. Anda sedang membuka sebuah aplikasi sebagai wallpaper. @@ -137,13 +137,13 @@ Aplikasi sebegini mungkin mempunyai virus yang mampu merosakkan sistem anda. Hanya teruskan jika aplikasi ini berasal daripada sumber yang dipercayai. - Lively diminimumkan ke dulang sistem, klik kanan ikon Lively untuk teruskan. + Lively diminimumkan ke dalam dulang sistem. Klik kanan ikon Lively untuk teruskan. - Sila mulakan semula Lively untuk mengemaskini konfigurasi. + Mulakan semula Lively untuk mengemaskini konfigurasi. - Tekan untuk mula merakam. + Tekan untuk mulakan rakaman. Mengembalikan wallpaper terdahulu, sila tunggu... @@ -155,7 +155,7 @@ Hanya teruskan jika aplikasi ini berasal daripada sumber yang dipercayai.Perisian versi terbaharu sedia untuk dimuat turun! - Masukkan pautan laman sesawang untuk dimuatkan, pautan shader shadertoy.com disokong. + Masukkan pautan laman sesawang untuk dimuatkan. Pautan shader shadertoy.com disokong. Wizard ini akan membantu anda mengesetkan Lively. @@ -165,11 +165,11 @@ Hanya teruskan jika aplikasi ini berasal daripada sumber yang dipercayai. - Fail wallpaper rosak, muat turun wallpaper semula. + Fail wallpaper rosak, muat turun semula wallpaper. Ralat dikesan semasa proses sedang berjalan. -Untuk memahami ralat ini secara lebih baik dan menyelesaikan isu, kongsikan fail log dengan pengarang. +Untuk memahami ralat ini secara lebih baik dan menyelesaikan isu, kongsikan fail log dengan pengarang. Panduan kongsi: https://github.com/rocksdanister/lively/wiki @@ -179,9 +179,9 @@ Nyahaktifkan mod Kontras Tinggi dan cuba semula. Gagal memainkan media. -Sila ubah pemain video di konfigurasi Lively. +Sila ubah pemain video di seting Lively. -Untuk memahami ralat ini secara lebih baik dan menyelesaikan isu, kongsikan fail log dengan pengarang. +Untuk memahami ralat ini secara lebih baik dan selesaikan isu, kongsikan fail log dengan pengarang. Panduan kongsi: https://github.com/rocksdanister/lively/wiki @@ -189,7 +189,7 @@ https://github.com/rocksdanister/lively/wiki Fail bukan fail wallpaper Lively. - Lively tidak ditamatkan secara teratur, memulakan aplikasi dalam modus selamat. Adakah anda mahu mengembalikan wallpaper yang sebelumnya? + Lively tidak ditamatkan secara teratur, memulakan aplikasi dalam mod selamat. Adakah anda mahu mengembalikan wallpaper yang sebelumnya? Panduan bagi memulakan Lively secara teratur: @@ -200,9 +200,9 @@ https://github.com/rocksdanister/lively/wiki 5. Dibawah tab Performance pilih Settings 6. Aktifkan "Animate controls and elements inside Windows" dan klik Apply. -Jika Windows 7 setkan - "Adjust for best appearance" dan klik Apply. -Jika masih tidak berkesan, mulakan semulat Lively/Windows. -(Tidak berfungsi untuk sebilangan binaan Windows 10 Insider) +Bagi Windows 7 setkan - "Adjust for best appearance" dan klik Apply. +Jika masih tidak berkesan, mulakan semula Lively/Windows. +(Tidak berfungsi untuk sebahagian binaan Windows 10 Insider) Tambah @@ -274,13 +274,13 @@ Jika masih tidak berkesan, mulakan semulat Lively/Windows. Pasang - Papan kekunci + Papan Kekunci Maklumat - Lanjutan Wallpaper + Klik Untuk Lebih Pilihan Wallpaper Tetikus @@ -313,7 +313,7 @@ Jika masih tidak berkesan, mulakan semulat Lively/Windows. Proses Latar Depan - Jeda Wallpaper + Henti Seketika Wallpaper Tamat @@ -322,7 +322,7 @@ Jika masih tidak berkesan, mulakan semulat Lively/Windows. Tiada - Jeda + Henti Seketika Buang @@ -361,7 +361,7 @@ Jika masih tidak berkesan, mulakan semulat Lively/Windows. Besar - Normal + Biasa Kecil @@ -373,7 +373,7 @@ Jika masih tidak berkesan, mulakan semulat Lively/Windows. Lite - Normal + Biasa Kemaskini terkini sedia ada! @@ -421,13 +421,13 @@ Jika masih tidak berkesan, mulakan semulat Lively/Windows. Pemain Video - Setkan semua jenis fail yang disokong sebagai wallpaper. + Setkan fail (semua jenis yang disokong) sebagai wallpaper. - Setkan laman web dipunyai URL yang dimasukkan sebagai wallpaper. + Setkan halaman web (berdasarkan URL) sebagai wallpaper. - Setkan tindakan jika sebarang aplikasi di dalam fokus. + Setkan tindakan jika apa-apa aplikasi berada di dalam fokus. Setkan tindakan jika permainan/aplikasi berskrin penuh sedang berjalan. @@ -436,71 +436,71 @@ Jika masih tidak berkesan, mulakan semulat Lively/Windows. Setkan peraturan bagi main semula wallpaper berdasarkan aplikasi yang sedang berjalan - Lively menurut seting bagi tema sistem, untuk mengubah penampilan pergi ke + Lively menurut seting bagi tema sistem. Untuk mengubah penampilan pergi ke - (Sistem berkuasa bateri sahaja) Ubah main semula jika kuasa AC terputus. + (Sistem berkuasa bateri sahaja) Ubah main semula jika kuasa AC terputus. - Masukkan port untuk nyahpepijat wallpaper laman web, browser mesti dimulakan semula untuk menguatkuasakan seting baharu. + Masukkan port untuk nyahpepijat wallpaper laman web. Pelayar web mesti dimulakan semula untuk menguatkuasakan seting baharu. Jika bersedia layari http://localhost:portnumber untuk mengakses konsol developer. - Per: Jeda wallpaper hanya untuk skrin di mana aplikasi berada di dalam fokus/skrin penuh. -Semua: Jeda wallpaper untuk semua skrin jika apa-apa aplikasi berada di dalam fokus/skrin penuh. + Per: Henti seketika wallpaper hanya bagi skrin jika apa-apa aplikasi berada di dalam fokus/skrin penuh. +Semua: Henti seketika wallpaper bagi semua skrin jika apa-apa aplikasi berada di dalam fokus/skrin penuh. - Darjah penglihatan ikon dulang sistem, Lively akan berjalan dengan ikon tersembunyi. + Visibiliti ikon dulang sistem. Jika dinyahaktifkan, Lively akan berjalan dengan ikon tersembunyi. - Lively akan dimulakan semula untuk menggunakan bahasa terbaharu. + Lively akan dimulakan semula bagi menggunakan bahasa terbaharu. Habiskan setup untuk teruskan. - Latar depan: Ringkas dan ringan, hanya memeriksa satu proses di latar depan bagi menentukan tingkah laku main semula wallpaper. -Semua Proses: Lebih berat, mengimbas semua proses bagi menentukan tingkah laku main semula wallpaper. + Latar depan: Ringkas dan ringan, hanya memeriksa satu proses di latar depan untuk menentukan tingkah laku main semula wallpaper. +Semua Proses: Lebih berat, mengimbas semua proses untuk menentukan tingkah laku main semula wallpaper. - Jika link strim video yang disokong telah dikesan, gunakan pemain video, sebaliknya muatkan laman web, + Jika link strim video yang disokong terjumpa,gunakan pemain video (sebaliknya muatkan laman web). Setkan kualiti video bagi strim atas talian. - Saiz jubin wallpaper di dalam pustaka, + Saiz jubin wallpaper di dalam pustaka. - Bagi sistem berspesifikasi rendah, aktifkan mod Lite. + Aktifkan mod Lite jika sistem anda berspesifikasi rendah. Pilih pemain semula bagi wallpaper bersifat video. - Laluan digunakan untuk menyimpan fail wallpaper. + Direktori yang digunakan untuk menyimpan fail wallpaper. - Pilih cara berinteraksi dengan wallpaper. + Pilih kaedah interaksi dengan wallpaper. Bagaiman wallpaper disetkan bagi peranti paparan yang terhubung, - Jeda main semula wallpaper jika Desktop tidak dalam fokus. + Henti seketika main semula wallpaper jika desktop tidak berada di dalam fokus. - Simpan fail sementara di dalam storan (sebaliknya memori), seting akan diubah balik jika browser dimulakan semula. + Simpan fail sementara di dalam storan (sebaliknya memori). Seting akan diubah balik jika pelayar web dimulakan semula. CEF (Chromium Embedded Framework) ialah enjin Chromium bersifat ringan. Edge ialah Webview sedia ada bagi Windows 10. - Lively mesti berjalan di latar belakang untuk memainkan semula wallpaper + Lively mesti berjalan di latar belakang untuk memainkan semula wallpaper. - Tentang + Tentang Lively Tambah Wallpaper @@ -527,10 +527,10 @@ Edge ialah Webview sedia ada bagi Windows 10. Main audio atas skrin - Semasa berjalan atas kuasa bateri + Jika Berfungsi Dengan Kuasa Bateri - Cari video, gif, laman web atau fail untuk dijadikan wallpaper + Cari video, gif, laman web atau fail untuk dijadikan wallpaper. Port Nyahpepijat @@ -539,10 +539,10 @@ Edge ialah Webview sedia ada bagi Windows 10. Komuniti - Sahkan Padaman + Sahkan Pemadaman - Peraturan Jeda Paparan + Protokol Henti Seketika Wallpaper Dokumentasi @@ -551,10 +551,10 @@ Edge ialah Webview sedia ada bagi Windows 10. Masukkan laman sesawang - Umum + Am - Bantu + Bantuan Ikon Dulang Sistem @@ -572,13 +572,13 @@ Edge ialah Webview sedia ada bagi Windows 10. Setup Lively - Lain-lain + Pelbagai Senyap - Algoritma Jeda + Algoritma Henti Seketika Prestasi @@ -635,13 +635,13 @@ Edge ialah Webview sedia ada bagi Windows 10. Kaedah Penyusunan - Pemainan Semula Wallpaper + Main Semula Wallpaper Amaran - Pelayar web + Pelayar Web Cache simpanan @@ -655,13 +655,31 @@ Edge ialah Webview sedia ada bagi Windows 10. Mula dengan Windows - - Are you sure you want to delete this wallpaper from the Library? + + Adakah anda mahu memadamkan wallpaper ini daripada pustaka? + + + Darjah kekuatan bunyi bagi semua wallpaper. + + + Kekuataan Bunyi (Utama) + + + Fill + + + None + + + Uniform + + + Uniform Fill - - Volume level of all wallpapers. + + Wallpaper scaling algorithm. - - Master Volume + + Choose a fit diff --git a/src/livelywpf/livelywpf/Properties/Resources.nl-NL.resx b/src/livelywpf/livelywpf/Properties/Resources.nl-NL.resx new file mode 100644 index 00000000..52be74f5 --- /dev/null +++ b/src/livelywpf/livelywpf/Properties/Resources.nl-NL.resx @@ -0,0 +1,675 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Selecteer een bestand of website-url om als achtergrond in te stellen. + + + Afspeelgedrag van de achtergrond op basis van actieve programma's. + + + Weet u het zeker dat u wilt annuleren? + + + Deze achtergrond wordt definitief verwijderd, weet u het zeker? + + + Deze achtergrond wordt uit de Bibliotheek verwijderd, weet u het zeker? + + + U kunt de bestanden eenvoudig naar de Bibliotheek slepen. + + + U opent een extern programma als achtergrond. Kwaadaardige applicaties kunnen malware en virussen hosten, dit kan schade toebrengen aan uw systeem. Ga alleen verder als het programma vanuit een betrouwbare bron is verkregen. + + + Lively wordt geminimaliseerd naar de systeembalk, om verder te gaan klikt u met de rechtermuisknop op Lively. + + + Herstart Lively om de nieuwe instellingen toe te passen. + + + Druk om te beginnen met opnemen. + + + Momenteel bezig met het herstellen van de vorige achtergrond(en), een ogenblik geduld alstublieft... + + + Kies scherm. + + + Een nieuwe versie is beschikbaar! + + + Voer een link in om te laden, shadertoy.com shader links worden ondersteund. + + + De wizard helpt u bij het instellen van Lively. + + + Update mislukt; probeer het installatieprogramma te downloaden op: https://github.com/rocksdanister/lively/releases + + + Het achtergrondbestand is beschadigd, probeer het opnieuw te downloaden. + + + Oeps... er lijkt iets mis te gaan :( +Om de foutmelding beter te begrijpen en te corrigeren, raden we aan om het logboekbestand te delen met de ontwikkelaar. Instructie voor het delen van logboekbestanden zijn hier te vinden: https://github.com/rocksdanister/lively/wiki + + + Lively werkt niet goed met Windows High Contrast modus inschakeld! Schakel High Contrast modus uit en probeer het opnieuw. + + + Afspelen van media is mislukt :( +Probeer de videospeler te veranderen in Lively instellingen. +Om de foutmelding beter te begrijpen en te corrigeren, raden we aan om het logboekbestand te delen met de ontwikkelaar. Instructie voor het delen van logboekbestanden zijn hier te vinden: https://github.com/rocksdanister/lively/wiki + + + Geen Lively achtergrondbestand. + + + Lively is verkeerd afgesloten, programma start in veilig modus. +Wilt u de vorige achtergrond(en) herstellen? + + + Er zullen enkele instellingen toegepast moeten worden om Lively te starten: +1. Open 'Deze Computer'. +2. Klik met rechtermuisknop in een leeg gebied. +3. Selecteer 'Eigenschappen'. +4. Selecteer 'Geavanceerde Systeeminstellingen'. +5. Selecteer op tabblad 'Prestatie' de instellingen. +6. Schakel 'Animeer besturingselementen in vensters' in en pas toe. + +Voor Windows 7 selecteer 'Pas aan voor het beste uiterlijk' en pas toe. +Als dat niet werkt herstart Lively en Windows. (Werkt niet met sommige insider Windows 10 builds) - + + + Toevoegen + + + Applicatie + + + Attributie + + + Auteur + + + Terug + + + Bladeren + + + Afsluiten + + + Achtergronden Sluiten + + + Voltooid! + + + Omzetten naar Video + + + Bewerken + + + Achtergronden Bewerken + + + Achtergronden Verwijderen + + + Alle Schermen + + + Per Scherm + + + Download + + + Foutmelding + + + Afsluiten + + + Exporteer Lively .zip + + + Geanimeerde GIF +Geanimeerde GIF + + + Doorgaan + + + Help Lively vertalen. + + + Installeer + + + Toetsenbord + + + Informatie + + + Meer Achtergronden + + + Muis + + + Muisinteractie zodra toepassing focus heeft + + + Volgende + + + Nee + + + UIT + + + AAN + + + Online + + + Open Lively + + + Alle Processen + + + Voorgrond Processen + + + Pauzeer Wallpapers + + + Beëindig + + + Niets + + + Pauzeer + + + Verwijder + + + Regel + + + Scherm + + + Zoek + + + Als achtergrond instellen + + + Open bestandslocatie + + + Bron + + + Start + + + Stop + + + Ondersteuning + + + Tags + + + Groot + + + Normaal + + + Klein + + + Headless + + + Lite + + + Normaal + + + Update beschikbaar! + + + Controleer voor updates + + + Het controleren voor updates is mislukt + + + Controleren voor updates + + + Software is up-to-date! + + + Video + + + Kopieer dezelfde achtergrond + + + Alleen geselecteerde scherm + + + Over alle schermen verdelen + + + Type + + + Website + + + Webstream + + + Welkom + + + Ja + + + Video Speler + + + Stel alle ondersteunde bestandstypen in als achtergrond. + + + Stel de webpagina van de URL die u hebt ingevoerd in als achtergrond. + + + Stel in wat u wilt doen wanneer een applicatie in focus is. + + + Stel in wat u wilt doen wanneer games/toepassingen op het volledig scherm worden uitgevoerd. + + + Stel verschillende achtergrond afspeelmogelijkheden in gebaseerd op actieve toepassingen. + + + Lively past zich aan op het systeem thema om het uiterlijk te wijzigen. + + + Volume van alle achtergronden. + + + (Alleen voor systeem op accu) Wijzig de weergave zodra de voeding is losgekoppeld. + + + Voer een poort in voor het debuggen van webpagina achtergronden, de veranderingen vinden laats nadat de browser opnieuw gestart is. Bezoek http://localhost:poortnummer om de ontwikkelaarsconsole te openen. + + + Per: Achtergrond alleen pauzeren op het scherm waar de toepassing de focus heeft/volledig scherm weergeeft. Alle: Achtergrond pauzeren op alle schermen waar de toepassing de focus heeft/volledig scherm weergeeft. + + + Systeembalk iconen, Lively blijft draaien met het icoon verborgen. + + + Lively zal herstart moeten worden om de nieuwe taal instellingen toe te passen. + + + Voltooi de installatie om verder te gaan. + + + Voorgrond: Lightweight, controleert alleen het proces dat zich op de voorgrond bevindt om afspeelmogelijkheden te bepalen. +Alle processen: Heavier, Scant alle processen om afspeelmogelijkheden te bepalen. + + + Als er een ondersteunde videostream link gebruikt wordt, gebruik de videospeler in plaats van de webpagina te laden. + + + Selecteer de gewenste videokwaliteit voor online streams. + + + Grootte van de achtergrond tegels in de Bibliotheek. + + + Voor low-end computersystemen selecteer Lite modus. + + + Selecteer de gewenste speler voor video achtergronden. + + + Het pad dat wordt gebruikt voor achtergrondbestanden. + + + Selecteer manieren van interactie voor de achtergrond. + + + Hoe de achtergrond wordt toegepast op de aangesloten schermen. + + + Pauzeer het afspelen van de achtergrond zodra het bureaublad geen focus heeft. + + + Tijdelijke bestanden opslaan op schijf in plaats van geheugen, instellingen worden hersteld zodra de browser opnieuw gestart wordt. + + + + CEF(Chromium Embedded Framework) is een lichtgewicht Chromium programma. Edge is de ingebouwde webweergave voor Windows 10. + + Voor achtergrond afspeelmogelijkheden moet Lively in de achtergond blijven draaien. + + + Over + + + Achtergrond Toevoegen + + + Toepassingen Gefocust + + + Toepassingen op volledig scherm + + + Lively Achtergronden + + + Toepassingsregels + + + Thema + + + Audio + + + Master Volume + + + Speel audio af op scherm + + + Op batterijvoeding + + + Blader naar video, gif, webpagina... bestand om als achtergrond in te stellen + + + Debugging Poort + + + Community + + + Bevestig verwijdering + + + Geef pauzeregels weer + + + Documentatie + + + URL toevoegen + + + Algemeen + + + Hulp + + + Systeemvak icoon + + + Interactie + + + Taal + + + Bibliotheek + + + Lively Installatie + + + Diversen + + + Onderdrukken + + + Algoritme onderbreken + + + Prestatie + + + Afspeellijst + + + Ogenblik geduld aub + + + Schalen/Aanpassen + + + Controlepaneel + + + Selecteer Bestand + + + Eigenschappen + + + Stream + + + Detecteer Streams + + + Video kwaliteit + + + Tegelgrootte + + + Gebruikersomgeving + + + Video + + + Achtergrond + + + Achtergrond folder + + + Verplaats bestaande achtergronden naar een nieuwe folder + + + Achtergrond invoer + + + Plaatsingsmethode + + + Achtergrond afspeelmogelijkheden + + + Waarschuwing + + + Web Browser + + + Schijfcache + + + Programma + + + Laad webpagina + + + Met Windows opstarten + + + Fill + + + None + + + Uniform + + + Uniform Fill + + + Wallpaper scaling algorithm. + + + Choose a fit + + diff --git a/src/livelywpf/livelywpf/Properties/Resources.pl.resx b/src/livelywpf/livelywpf/Properties/Resources.pl.resx index 296e4a13..f9a466be 100644 --- a/src/livelywpf/livelywpf/Properties/Resources.pl.resx +++ b/src/livelywpf/livelywpf/Properties/Resources.pl.resx @@ -1,4 +1,4 @@ - + + -