SEBWIN-902: Implemented fix for GHSA-9cr5-q96r-887f and refactored various integrity aspects.

This commit is contained in:
Damian Büchel 2024-07-24 20:31:08 +02:00
parent b48ef21708
commit 1f50ab74c9
43 changed files with 1678 additions and 668 deletions

View file

@ -36,7 +36,6 @@ using SafeExamBrowser.Settings;
using SafeExamBrowser.Settings.Monitoring;
using SafeExamBrowser.Settings.UserInterface;
using SafeExamBrowser.SystemComponents.Contracts.Network;
using SafeExamBrowser.SystemComponents.Contracts.Registry;
using SafeExamBrowser.UserInterface.Contracts;
using SafeExamBrowser.UserInterface.Contracts.FileSystemDialog;
using SafeExamBrowser.UserInterface.Contracts.MessageBox;
@ -67,8 +66,8 @@ namespace SafeExamBrowser.Client.UnitTests
private Mock<IMessageBox> messageBox;
private Mock<INetworkAdapter> networkAdapter;
private Mock<IOperationSequence> operationSequence;
private Mock<IRegistry> registry;
private Mock<IRuntimeProxy> runtimeProxy;
private Mock<ISystemSentinel> sentinel;
private Mock<IServerProxy> server;
private Guid sessionId;
private AppSettings settings;
@ -102,8 +101,8 @@ namespace SafeExamBrowser.Client.UnitTests
messageBox = new Mock<IMessageBox>();
networkAdapter = new Mock<INetworkAdapter>();
operationSequence = new Mock<IOperationSequence>();
registry = new Mock<IRegistry>();
runtimeProxy = new Mock<IRuntimeProxy>();
sentinel = new Mock<ISystemSentinel>();
server = new Mock<IServerProxy>();
sessionId = Guid.NewGuid();
settings = new AppSettings();
@ -132,11 +131,11 @@ namespace SafeExamBrowser.Client.UnitTests
messageBox.Object,
networkAdapter.Object,
operationSequence.Object,
registry.Object,
runtimeProxy.Object,
shutdown.Object,
splashScreen.Object,
systemMonitor.Object,
sentinel.Object,
taskbar.Object,
text.Object,
uiFactory.Object);

View file

@ -31,6 +31,7 @@ using SafeExamBrowser.Logging.Contracts;
using SafeExamBrowser.Monitoring.Contracts.Applications;
using SafeExamBrowser.Monitoring.Contracts.Display;
using SafeExamBrowser.Monitoring.Contracts.System;
using SafeExamBrowser.Monitoring.Contracts.System.Events;
using SafeExamBrowser.Proctoring.Contracts;
using SafeExamBrowser.Proctoring.Contracts.Events;
using SafeExamBrowser.Server.Contracts;
@ -38,7 +39,6 @@ using SafeExamBrowser.Server.Contracts.Data;
using SafeExamBrowser.Settings;
using SafeExamBrowser.SystemComponents.Contracts.Network;
using SafeExamBrowser.SystemComponents.Contracts.Network.Events;
using SafeExamBrowser.SystemComponents.Contracts.Registry;
using SafeExamBrowser.UserInterface.Contracts;
using SafeExamBrowser.UserInterface.Contracts.FileSystemDialog;
using SafeExamBrowser.UserInterface.Contracts.MessageBox;
@ -63,11 +63,11 @@ namespace SafeExamBrowser.Client
private readonly IMessageBox messageBox;
private readonly INetworkAdapter networkAdapter;
private readonly IOperationSequence operations;
private readonly IRegistry registry;
private readonly IRuntimeProxy runtime;
private readonly Action shutdown;
private readonly ISplashScreen splashScreen;
private readonly ISystemMonitor systemMonitor;
private readonly ISystemSentinel sentinel;
private readonly ITaskbar taskbar;
private readonly IText text;
private readonly IUserInterfaceFactory uiFactory;
@ -94,11 +94,11 @@ namespace SafeExamBrowser.Client
IMessageBox messageBox,
INetworkAdapter networkAdapter,
IOperationSequence operations,
IRegistry registry,
IRuntimeProxy runtime,
Action shutdown,
ISplashScreen splashScreen,
ISystemMonitor systemMonitor,
ISystemSentinel sentinel,
ITaskbar taskbar,
IText text,
IUserInterfaceFactory uiFactory)
@ -115,11 +115,11 @@ namespace SafeExamBrowser.Client
this.messageBox = messageBox;
this.networkAdapter = networkAdapter;
this.operations = operations;
this.registry = registry;
this.runtime = runtime;
this.shutdown = shutdown;
this.splashScreen = splashScreen;
this.systemMonitor = systemMonitor;
this.sentinel = sentinel;
this.taskbar = taskbar;
this.text = text;
this.uiFactory = uiFactory;
@ -223,8 +223,10 @@ namespace SafeExamBrowser.Client
ClientHost.Shutdown += ClientHost_Shutdown;
displayMonitor.DisplayChanged += DisplayMonitor_DisplaySettingsChanged;
networkAdapter.CredentialsRequired += NetworkAdapter_CredentialsRequired;
registry.ValueChanged += Registry_ValueChanged;
runtime.ConnectionLost += Runtime_ConnectionLost;
sentinel.CursorChanged += Sentinel_CursorChanged;
sentinel.EaseOfAccessChanged += Sentinel_EaseOfAccessChanged;
sentinel.StickyKeysChanged += Sentinel_StickyKeysChanged;
systemMonitor.SessionChanged += SystemMonitor_SessionChanged;
taskbar.LoseFocusRequested += Taskbar_LoseFocusRequested;
taskbar.QuitButtonClicked += Shell_QuitButtonClicked;
@ -248,8 +250,10 @@ namespace SafeExamBrowser.Client
applicationMonitor.ExplorerStarted -= ApplicationMonitor_ExplorerStarted;
applicationMonitor.TerminationFailed -= ApplicationMonitor_TerminationFailed;
displayMonitor.DisplayChanged -= DisplayMonitor_DisplaySettingsChanged;
registry.ValueChanged -= Registry_ValueChanged;
runtime.ConnectionLost -= Runtime_ConnectionLost;
sentinel.CursorChanged -= Sentinel_CursorChanged;
sentinel.EaseOfAccessChanged -= Sentinel_EaseOfAccessChanged;
sentinel.StickyKeysChanged -= Sentinel_StickyKeysChanged;
systemMonitor.SessionChanged -= SystemMonitor_SessionChanged;
taskbar.LoseFocusRequested -= Taskbar_LoseFocusRequested;
taskbar.QuitButtonClicked -= Shell_QuitButtonClicked;
@ -365,24 +369,19 @@ namespace SafeExamBrowser.Client
timer.Interval = TEN_MINUTES + (new Random().NextDouble() * FIVE_MINUTES);
timer.Start();
if (!Settings.Security.AllowStickyKeys)
{
sentinel.StartMonitoringStickyKeys();
}
if (Settings.Security.VerifyCursorConfiguration)
{
if (registry.TryGetNames(RegistryValue.UserHive.Cursors_Key, out var names))
{
foreach (var name in names)
{
registry.StartMonitoring(RegistryValue.UserHive.Cursors_Key, name);
}
}
else
{
logger.Warn("Failed to start monitoring cursor registry values!");
}
sentinel.StartMonitoringCursors();
}
if (Settings.Service.IgnoreService)
{
registry.StartMonitoring(RegistryValue.MachineHive.EaseOfAccess_Key, RegistryValue.MachineHive.EaseOfAccess_Name);
sentinel.StartMonitoringEaseOfAccess();
}
}
@ -451,7 +450,7 @@ namespace SafeExamBrowser.Client
private void TerminateIntegrityVerification()
{
registry.StopMonitoring();
sentinel.StopMonitoring();
}
private void ApplicationMonitor_ExplorerStarted()
@ -782,22 +781,16 @@ namespace SafeExamBrowser.Client
splashScreen.UpdateStatus(status, true);
}
private void Registry_ValueChanged(string key, string name, object oldValue, object newValue)
private void Runtime_ConnectionLost()
{
if (key == RegistryValue.UserHive.Cursors_Key)
{
HandleCursorRegistryChange(key, name, oldValue, newValue);
}
else if (key == RegistryValue.MachineHive.EaseOfAccess_Key)
{
HandleEaseOfAccessRegistryChange(key, name, oldValue, newValue);
}
logger.Error("Lost connection to the runtime!");
messageBox.Show(TextKey.MessageBox_ApplicationError, TextKey.MessageBox_ApplicationErrorTitle, icon: MessageBoxIcon.Error);
shutdown.Invoke();
}
private void HandleCursorRegistryChange(string key, string name, object oldValue, object newValue)
private void Sentinel_CursorChanged(SentinelEventArgs args)
{
logger.Warn($@"The cursor registry value '{key}\{name}' has changed from '{oldValue}' to '{newValue}'! Attempting to show lock screen...");
if (coordinator.RequestSessionLock())
{
var message = text.Get(TextKey.LockScreen_CursorMessage);
@ -805,7 +798,8 @@ namespace SafeExamBrowser.Client
var continueOption = new LockScreenOption { Text = text.Get(TextKey.LockScreen_CursorContinueOption) };
var terminateOption = new LockScreenOption { Text = text.Get(TextKey.LockScreen_CursorTerminateOption) };
registry.StopMonitoring(key, name);
args.Allow = true;
logger.Info("Cursor changed! Attempting to show lock screen...");
var result = ShowLockScreen(message, title, new[] { continueOption, terminateOption });
@ -823,14 +817,12 @@ namespace SafeExamBrowser.Client
}
else
{
logger.Info("Lock screen is already active.");
logger.Info("Cursor changed but lock screen is already active.");
}
}
private void HandleEaseOfAccessRegistryChange(string key, string name, object oldValue, object newValue)
private void Sentinel_EaseOfAccessChanged(SentinelEventArgs args)
{
logger.Warn($@"The ease of access registry value '{key}\{name}' has changed from '{oldValue}' to '{newValue}'! Attempting to show lock screen...");
if (coordinator.RequestSessionLock())
{
var message = text.Get(TextKey.LockScreen_EaseOfAccessMessage);
@ -838,7 +830,8 @@ namespace SafeExamBrowser.Client
var continueOption = new LockScreenOption { Text = text.Get(TextKey.LockScreen_EaseOfAccessContinueOption) };
var terminateOption = new LockScreenOption { Text = text.Get(TextKey.LockScreen_EaseOfAccessTerminateOption) };
registry.StopMonitoring(key, name);
args.Allow = true;
logger.Info("Ease of access changed! Attempting to show lock screen...");
var result = ShowLockScreen(message, title, new[] { continueOption, terminateOption });
@ -856,16 +849,40 @@ namespace SafeExamBrowser.Client
}
else
{
logger.Info("Lock screen is already active.");
logger.Info("Ease of access changed but lock screen is already active.");
}
}
private void Runtime_ConnectionLost()
private void Sentinel_StickyKeysChanged(SentinelEventArgs args)
{
logger.Error("Lost connection to the runtime!");
if (coordinator.RequestSessionLock())
{
var message = text.Get(TextKey.LockScreen_StickyKeysMessage);
var title = text.Get(TextKey.LockScreen_Title);
var continueOption = new LockScreenOption { Text = text.Get(TextKey.LockScreen_StickyKeysContinueOption) };
var terminateOption = new LockScreenOption { Text = text.Get(TextKey.LockScreen_StickyKeysTerminateOption) };
messageBox.Show(TextKey.MessageBox_ApplicationError, TextKey.MessageBox_ApplicationErrorTitle, icon: MessageBoxIcon.Error);
shutdown.Invoke();
args.Allow = true;
logger.Info("Sticky keys changed! Attempting to show lock screen...");
var result = ShowLockScreen(message, title, new[] { continueOption, terminateOption });
if (result.OptionId == continueOption.Id)
{
logger.Info("The session will be allowed to resume as requested by the user...");
}
else if (result.OptionId == terminateOption.Id)
{
logger.Info("Attempting to shutdown as requested by the user...");
TryRequestShutdown();
}
coordinator.ReleaseSessionLock();
}
else
{
logger.Info("Sticky keys changed but lock screen is already active.");
}
}
private void Server_LockScreenConfirmed()

View file

@ -119,6 +119,7 @@ namespace SafeExamBrowser.Client
var explorerShell = new ExplorerShell(ModuleLogger(nameof(ExplorerShell)), nativeMethods);
var fileSystemDialog = BuildFileSystemDialog();
var hashAlgorithm = new HashAlgorithm();
var sentinel = new SystemSentinel(ModuleLogger(nameof(SystemSentinel)), nativeMethods, registry);
var splashScreen = uiFactory.CreateSplashScreen();
var systemMonitor = new SystemMonitor(ModuleLogger(nameof(SystemMonitor)));
@ -158,11 +159,11 @@ namespace SafeExamBrowser.Client
messageBox,
networkAdapter,
sequence,
registry,
runtimeProxy,
shutdown,
splashScreen,
systemMonitor,
sentinel,
taskbar,
text,
uiFactory);

View file

@ -26,6 +26,9 @@ namespace SafeExamBrowser.Configuration.ConfigurationData.DataMapping
case Keys.Security.AllowReconfiguration:
MapAllowReconfiguration(settings, value);
break;
case Keys.Security.AllowStickyKeys:
MapAllowStickyKeys(settings, value);
break;
case Keys.Security.AllowTermination:
MapAllowTermination(settings, value);
break;
@ -78,6 +81,14 @@ namespace SafeExamBrowser.Configuration.ConfigurationData.DataMapping
}
}
private void MapAllowStickyKeys(AppSettings settings, object value)
{
if (value is bool allow)
{
settings.Security.AllowStickyKeys = allow;
}
}
private void MapAllowTermination(AppSettings settings, object value)
{
if (value is bool allow)

View file

@ -132,6 +132,7 @@ namespace SafeExamBrowser.Configuration.ConfigurationData
settings.Applications.Blacklist.Add(new BlacklistApplication { ExecutableName = "remoting_host.exe", OriginalName = "remoting_host.exe" });
settings.Applications.Blacklist.Add(new BlacklistApplication { ExecutableName = "RPCService.exe", OriginalName = "RPCService.exe" });
settings.Applications.Blacklist.Add(new BlacklistApplication { ExecutableName = "RPCSuite.exe", OriginalName = "RPCSuite.exe" });
settings.Applications.Blacklist.Add(new BlacklistApplication { ExecutableName = "sethc.exe", OriginalName = "sethc.exe" });
settings.Applications.Blacklist.Add(new BlacklistApplication { ExecutableName = "Skype.exe", OriginalName = "Skype.exe" });
settings.Applications.Blacklist.Add(new BlacklistApplication { ExecutableName = "SkypeApp.exe", OriginalName = "SkypeApp.exe" });
settings.Applications.Blacklist.Add(new BlacklistApplication { ExecutableName = "SkypeHost.exe", OriginalName = "SkypeHost.exe" });
@ -250,6 +251,7 @@ namespace SafeExamBrowser.Configuration.ConfigurationData
settings.Security.AllowApplicationLogAccess = false;
settings.Security.AllowTermination = true;
settings.Security.AllowReconfiguration = false;
settings.Security.AllowStickyKeys = false;
settings.Security.ClipboardPolicy = ClipboardPolicy.Isolated;
settings.Security.DisableSessionChangeLockScreen = false;
settings.Security.KioskMode = KioskMode.CreateNewDesktop;

View file

@ -262,6 +262,7 @@ namespace SafeExamBrowser.Configuration.ConfigurationData
internal const string AdminPasswordHash = "hashedAdminPassword";
internal const string AllowApplicationLog = "allowApplicationLog";
internal const string AllowReconfiguration = "examSessionReconfigureAllow";
internal const string AllowStickyKeys = "allowStickyKeys";
internal const string AllowTermination = "allowQuit";
internal const string AllowVirtualMachine = "allowVirtualMachine";
internal const string ClipboardPolicy = "clipboardPolicy";

View file

@ -83,6 +83,9 @@ namespace SafeExamBrowser.I18n.Contracts
LockScreen_EaseOfAccessMessage,
LockScreen_EaseOfAccessTerminateOption,
LockScreen_SessionIntegrityMessage,
LockScreen_StickyKeysMessage,
LockScreen_StickyKeysContinueOption,
LockScreen_StickyKeysTerminateOption,
LockScreen_Title,
LockScreen_UnlockButton,
LockScreen_UserSessionContinueOption,

View file

@ -207,6 +207,15 @@
<Entry key="LockScreen_SessionIntegrityMessage">
Die letzte Sitzung mit der momentan aktiven Konfiguration oder Start-URL wurde nicht ordnungsgemäss beendet! Geben Sie bitte das korrekte Passwort ein, um SEB zu entsperren.
</Entry>
<Entry key="LockScreen_StickyKeysContinueOption">
Zustand der Sticky-Keys temporär erlauben. Dies gilt nur für die momentan laufende Sitzung!
</Entry>
<Entry key="LockScreen_StickyKeysMessage">
Ein verbotener Zustand der Sticky-Keys wurde detektiert. Bitte wählen Sie eine der verfügbaren Optionen aus und geben Sie das korrekte Passwort ein, um SEB zu entsperren.
</Entry>
<Entry key="LockScreen_StickyKeysTerminateOption">
Safe Exam Browser beenden. WARNUNG: Sie werden keine Möglichkeit haben, Daten zu speichern oder weitere Aktionen auszuführen, SEB wird sofort beendet!
</Entry>
<Entry key="LockScreen_Title">
SEB GESPERRT
</Entry>

View file

@ -207,6 +207,15 @@
<Entry key="LockScreen_SessionIntegrityMessage">
The last session with the currently active configuration or start URL was not terminated properly! Please enter the correct password to unlock SEB.
</Entry>
<Entry key="LockScreen_StickyKeysContinueOption">
Temporarily allow the state of the sticky keys. This applies only to the currently running session!
</Entry>
<Entry key="LockScreen_StickyKeysMessage">
A prohibited state of the sticky keys has been detected. In order to unlock SEB, please select one of the available options and enter the correct unlock password.
</Entry>
<Entry key="LockScreen_StickyKeysTerminateOption">
Terminate Safe Exam Browser. WARNING: There will be no possibility to save data or perform any further actions, the shutdown will be initiated immediately!
</Entry>
<Entry key="LockScreen_Title">
SEB LOCKED
</Entry>

View file

@ -207,6 +207,15 @@
<Entry key="LockScreen_SessionIntegrityMessage">
La última sesión con la configuración activa o la URL de inicio no se ha cerrado correctamente. Por favor, introduzca la contraseña correcta para desbloquear SEB.
</Entry>
<Entry key="LockScreen_StickyKeysContinueOption">
Permitir temporalmente el estado de las teclas adhesivas. Esto sólo se aplica a la sesión que se está ejecutando en ese momento.
</Entry>
<Entry key="LockScreen_StickyKeysMessage">
Se ha detectado un estado prohibido de las teclas adhesivas. Para desbloquear SEB, seleccione una de las opciones disponibles e introduzca la contraseña de desbloqueo correcta.
</Entry>
<Entry key="LockScreen_StickyKeysTerminateOption">
Finalizar Safe Exam Browser. ADVERTENCIA: No habrá posibilidad de guardar datos o realizar ninguna otra acción, ¡el cierre se iniciará inmediatamente!
</Entry>
<Entry key="LockScreen_Title">
SEB BLOQUEADO
</Entry>

View file

@ -207,6 +207,15 @@
<Entry key="LockScreen_SessionIntegrityMessage">
Viimast seanssi hetkel aktiivse seadistuse või algus-URL-iga ei suletud korrektselt! Palun sisestage SEB'i avamiseks õige parool.
</Entry>
<Entry key="LockScreen_StickyKeysContinueOption">
Lubab ajutiselt kleepuvate võtmete oleku. See kehtib ainult hetkel käimasoleva seansi kohta!
</Entry>
<Entry key="LockScreen_StickyKeysMessage">
Avastati kleepuvate võtmete keelatud olek. SEB avamiseks valige üks olemasolevatest võimalustest ja sisestage õige avamisparool.
</Entry>
<Entry key="LockScreen_StickyKeysTerminateOption">
Sulge Safe Exam Browser. HOIATUS: andmete salvestamise ega edasiste toimingute tegemise võimalust ei ole, sulgemine käivitatakse kohe!
</Entry>
<Entry key="LockScreen_Title">
SEB ON LUKUSTATUD
</Entry>

View file

@ -207,6 +207,15 @@
<Entry key="LockScreen_SessionIntegrityMessage">
La dernière session avec la configuration ou l'URL de démarrage actuellement active n'a pas été terminée correctement! Afin de déverrouiller SEB, veuillez entrer le mot de passe de déverrouillage correct.
</Entry>
<Entry key="LockScreen_StickyKeysContinueOption">
Autoriser temporairement l'état des clés autocollantes. Cela ne s'applique qu'à la session en cours!
</Entry>
<Entry key="LockScreen_StickyKeysMessage">
Un état d'interdiction des clés autocollantes a été détecté. Pour déverrouiller SEB, veuillez sélectionner l'une des options disponibles et saisir le mot de passe de déverrouillage correct.
</Entry>
<Entry key="LockScreen_StickyKeysTerminateOption">
Terminate Safe Exam Browser. WARNING: There will be no possibility to save data or perform any further actions, the shutdown will be initiated immediately!
</Entry>
<Entry key="LockScreen_Title">
SEB VEROUILLE
</Entry>

View file

@ -207,6 +207,15 @@
<Entry key="LockScreen_SessionIntegrityMessage">
Sesi terakhir dengan konfigurasi yang sedang aktif atau URL awal tidak diakhiri dengan benar! Silakan masukkan kata sandi yang benar untuk membuka kunci SEB.
</Entry>
<Entry key="LockScreen_StickyKeysContinueOption">
Mengizinkan status tombol tempel untuk sementara waktu. Ini hanya berlaku untuk sesi yang sedang berjalan!
</Entry>
<Entry key="LockScreen_StickyKeysMessage">
Kondisi kunci tempel yang dilarang telah terdeteksi. Untuk membuka kunci SEB, pilih salah satu opsi yang tersedia dan masukkan kata sandi buka kunci yang benar.
</Entry>
<Entry key="LockScreen_StickyKeysTerminateOption">
Menghentikan Safe Exam Browser. PERINGATAN: Tidak akan ada kemungkinan untuk menyimpan data atau melakukan tindakan lebih lanjut, penghentian akan segera dilakukan!
</Entry>
<Entry key="LockScreen_Title">
SEB TERKUNCI
</Entry>

View file

@ -207,6 +207,15 @@
<Entry key="LockScreen_SessionIntegrityMessage">
L'ultima sessione con la configurazione o l'URL di avvio attualmente attiva non è stata terminata correttamente! Per sbloccare SEB, inserisci la password di sblocco corretta.
</Entry>
<Entry key="LockScreen_StickyKeysContinueOption">
Consente temporaneamente lo stato dei tasti adesivi. Questo vale solo per la sessione in corso!
</Entry>
<Entry key="LockScreen_StickyKeysMessage">
È stato rilevato uno stato non consentito dei tasti adesivi. Per sbloccare SEB, selezionare una delle opzioni disponibili e inserire la password di sblocco corretta.
</Entry>
<Entry key="LockScreen_StickyKeysTerminateOption">
Terminare Safe Exam Browser. ATTENZIONE: Non sarà possibile salvare i dati o eseguire ulteriori azioni, la chiusura verrà avviata immediatamente!
</Entry>
<Entry key="LockScreen_Title">
SEB BLOCCATO
</Entry>

View file

@ -207,6 +207,15 @@
<Entry key="LockScreen_SessionIntegrityMessage">
De laatste sessie met de huidige actieve configuratie of start URL is niet goed afgesloten! Voer het juiste wachtwoord in om SEB te ontgrendelen.
</Entry>
<Entry key="LockScreen_StickyKeysContinueOption">
Tijdelijk de toestand van de sticky keys toestaan. Dit geldt alleen voor de huidige sessie!
</Entry>
<Entry key="LockScreen_StickyKeysMessage">
Er is een verboden toestand van de sticky keys gedetecteerd. Om SEB te ontgrendelen, selecteert u een van de beschikbare opties en voert u het juiste ontgrendelwachtwoord in.
</Entry>
<Entry key="LockScreen_StickyKeysTerminateOption">
Beëindig de Safe Exam Browser. WAARSCHUWING: er is geen mogelijkheid om gegevens op te slaan of verdere acties uit te voeren, de browser wordt onmiddellijk afgesloten!
</Entry>
<Entry key="LockScreen_Title">
SEB VERGRENDELD
</Entry>

View file

@ -206,6 +206,15 @@
<Entry key="LockScreen_SessionIntegrityMessage">
Последний сеанс с текущей активной конфигурацией или URL-адресом запуска не был завершен должным образом! Пожалуйста, введите правильный пароль, чтобы разблокировать SEB.
</Entry>
<Entry key="LockScreen_StickyKeysContinueOption">
Временно разрешить состояние липких ключей. Это относится только к текущему сеансу!
</Entry>
<Entry key="LockScreen_StickyKeysMessage">
Обнаружено запрещенное состояние липких клавиш. Чтобы разблокировать SEB, пожалуйста, выберите один из доступных вариантов и введите правильный пароль разблокировки.
</Entry>
<Entry key="LockScreen_StickyKeysTerminateOption">
Завершить работу Safe Exam Browser. ВНИМАНИЕ: Сохранить данные или выполнить какие-либо дальнейшие действия будет невозможно, завершение работы будет инициировано немедленно!
</Entry>
<Entry key="LockScreen_Title">
SEB ЗАБЛОКИРОВАН
</Entry>

View file

@ -193,7 +193,7 @@
检测到禁止的显示配置。 要解锁 SEB请选择可用选项之一并输入正确的解锁密码。
</Entry>
<Entry key="LockScreen_DisplayConfigurationTerminateOption">
终止安全考试浏览器。 警告:将无法保存数据或执行任何进一步操作,将立即启动关机!
终止安全考试浏览器。警告:将无法保存数据或执行任何进一步操作,将立即启动关机!
</Entry>
<Entry key="LockScreen_EaseOfAccessContinueOption">
暂时允许轻松访问的配置。这只适用于当前运行的会话!
@ -207,6 +207,15 @@
<Entry key="LockScreen_SessionIntegrityMessage">
当前激活的配置或启动URL的最后一个会话没有被正确终止! 请输入正确的密码以解锁SEB。
</Entry>
<Entry key="LockScreen_StickyKeysContinueOption">
暂时允许粘性按键的状态。这仅适用于当前运行的会话!
</Entry>
<Entry key="LockScreen_StickyKeysMessage">
已检测到粘滞键处于禁用状态。要解锁 SEB请选择一个可用选项并输入正确的解锁密码。
</Entry>
<Entry key="LockScreen_StickyKeysTerminateOption">
终止安全考试浏览器。警告:将没有可能保存数据或执行任何进一步的行动,关闭将立即启动!
</Entry>
<Entry key="LockScreen_Title">
防作弊考试专用浏览器已锁定
</Entry>

View file

@ -70,8 +70,11 @@
<Compile Include="Applications\InitializationResult.cs" />
<Compile Include="Applications\IApplicationMonitor.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="System\Events\SentinelEventArgs.cs" />
<Compile Include="System\Events\SentinelEventHandler.cs" />
<Compile Include="System\Events\SessionChangedEventHandler.cs" />
<Compile Include="System\ISystemMonitor.cs" />
<Compile Include="System\ISystemSentinel.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\SafeExamBrowser.Settings\SafeExamBrowser.Settings.csproj">

View file

@ -0,0 +1,21 @@
/*
* Copyright (c) 2024 ETH Zürich, IT Services
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
namespace SafeExamBrowser.Monitoring.Contracts.System.Events
{
/// <summary>
/// The event arguments used for the <see cref="SentinelEventHandler"/> fired by the <see cref="ISystemSentinel"/>.
/// </summary>
public class SentinelEventArgs
{
/// <summary>
/// Indicates whether a configuration or state change shall be allowed.
/// </summary>
public bool Allow { get; set; }
}
}

View file

@ -0,0 +1,15 @@
/*
* Copyright (c) 2024 ETH Zürich, IT Services
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
namespace SafeExamBrowser.Monitoring.Contracts.System.Events
{
/// <summary>
/// The default handler for events of the <see cref="ISystemSentinel"/>. Normally indicates that a configuration or state has changed.
/// </summary>
public delegate void SentinelEventHandler(SentinelEventArgs args);
}

View file

@ -0,0 +1,78 @@
/*
* Copyright (c) 2024 ETH Zürich, IT Services
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
using SafeExamBrowser.Monitoring.Contracts.System.Events;
namespace SafeExamBrowser.Monitoring.Contracts.System
{
/// <summary>
/// Provides the possibility to suppress and surveil various system components and functionalities.
/// </summary>
public interface ISystemSentinel
{
/// <summary>
/// Event fired when the cursor configuration has changed.
/// </summary>
event SentinelEventHandler CursorChanged;
/// <summary>
/// Event fired when the ease of access configuration has changed.
/// </summary>
event SentinelEventHandler EaseOfAccessChanged;
/// <summary>
/// Event fired when the sticky keys state has changed.
/// </summary>
event SentinelEventHandler StickyKeysChanged;
/// <summary>
/// Attempts to disable the sticky keys. Returns <c>true</c> if successful, otherwise <c>false</c>.
/// </summary>
bool DisableStickyKeys();
/// <summary>
/// Attempts to enable the sticky keys. Returns <c>true</c> if successful, otherwise <c>false</c>.
/// </summary>
bool EnableStickyKeys();
/// <summary>
/// Attempts to revert the sticky keys to their initial state. Returns <c>true</c> if successful, otherwise <c>false</c>.
/// </summary>
bool RevertStickyKeys();
/// <summary>
/// Starts monitoring the cursor configuration.
/// </summary>
void StartMonitoringCursors();
/// <summary>
/// Starts monitoring the ease of access configuration.
/// </summary>
void StartMonitoringEaseOfAccess();
/// <summary>
/// Starts monitoring the sticky keys state.
/// </summary>
void StartMonitoringStickyKeys();
/// <summary>
/// Stops all monitoring operations.
/// </summary>
void StopMonitoring();
/// <summary>
/// Verifies the cursor configuration. Returns <c>true</c> if permitted, otherwise <c>false</c>.
/// </summary>
bool VerifyCursors();
/// <summary>
/// Verifies the ease of access configuration. Returns <c>true</c> if permitted, otherwise <c>false</c>.
/// </summary>
bool VerifyEaseOfAccess();
}
}

View file

@ -67,7 +67,11 @@
<Compile Include="Mouse\MouseInterceptor.cs" />
<Compile Include="Applications\ApplicationMonitor.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="System\Components\Cursors.cs" />
<Compile Include="System\Components\EaseOfAccess.cs" />
<Compile Include="System\Components\StickyKeys.cs" />
<Compile Include="System\SystemMonitor.cs" />
<Compile Include="System\SystemSentinel.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\SafeExamBrowser.Logging.Contracts\SafeExamBrowser.Logging.Contracts.csproj">

View file

@ -0,0 +1,152 @@
/*
* Copyright (c) 2024 ETH Zürich, IT Services
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
using System;
using System.Linq;
using System.Threading.Tasks;
using SafeExamBrowser.Logging.Contracts;
using SafeExamBrowser.Monitoring.Contracts.System.Events;
using SafeExamBrowser.SystemComponents.Contracts.Registry;
namespace SafeExamBrowser.Monitoring.System.Components
{
internal class Cursors
{
private static readonly string SYSTEM_PATH = $@"{Environment.ExpandEnvironmentVariables("%SystemRoot%")}\Cursors\";
private static readonly string USER_PATH = $@"{Environment.ExpandEnvironmentVariables("%LocalAppData%")}\Microsoft\Windows\Cursors\";
private readonly ILogger logger;
private readonly IRegistry registry;
internal event SentinelEventHandler CursorChanged;
internal Cursors(ILogger logger, IRegistry registry)
{
this.logger = logger;
this.registry = registry;
}
internal void StartMonitoring()
{
registry.ValueChanged += Registry_ValueChanged;
if (registry.TryGetNames(RegistryValue.UserHive.Cursors_Key, out var names))
{
foreach (var name in names)
{
registry.StartMonitoring(RegistryValue.UserHive.Cursors_Key, name);
}
logger.Info("Started monitoring cursors.");
}
else
{
logger.Warn("Failed to start monitoring cursor registry values!");
}
}
internal void StopMonitoring()
{
registry.ValueChanged -= Registry_ValueChanged;
if (registry.TryGetNames(RegistryValue.UserHive.Cursors_Key, out var names))
{
foreach (var name in names)
{
registry.StopMonitoring(RegistryValue.UserHive.Cursors_Key, name);
}
logger.Info("Stopped monitoring cursors.");
}
else
{
logger.Warn("Failed to stop monitoring cursor registry values!");
}
}
internal bool Verify()
{
logger.Info($"Starting cursor verification...");
var success = registry.TryGetNames(RegistryValue.UserHive.Cursors_Key, out var cursors);
if (success)
{
foreach (var cursor in cursors.Where(c => !string.IsNullOrWhiteSpace(c)))
{
success &= VerifyCursor(cursor);
}
if (success)
{
logger.Info("Cursor configuration successfully verified.");
}
else
{
logger.Warn("Cursor configuration is compromised!");
}
}
else
{
logger.Error("Failed to verify cursor configuration!");
}
return success;
}
private void Registry_ValueChanged(string key, string name, object oldValue, object newValue)
{
if (key == RegistryValue.UserHive.Cursors_Key)
{
HandleCursorChange(key, name, oldValue, newValue);
}
}
private void HandleCursorChange(string key, string name, object oldValue, object newValue)
{
var args = new SentinelEventArgs();
logger.Warn($@"The cursor registry value '{key}\{name}' has changed from '{oldValue}' to '{newValue}'!");
Task.Run(() => CursorChanged?.Invoke(args)).ContinueWith((_) =>
{
if (args.Allow)
{
registry.StopMonitoring(key, name);
}
});
}
private bool VerifyCursor(string cursor)
{
var success = true;
success &= registry.TryRead(RegistryValue.UserHive.Cursors_Key, cursor, out var value);
success &= !(value is string) || (value is string path && (string.IsNullOrWhiteSpace(path) || IsValidCursorPath(path)));
if (!success)
{
if (value != default)
{
logger.Warn($"Configuration of cursor '{cursor}' is compromised: '{value}'!");
}
else
{
logger.Warn($"Failed to verify configuration of cursor '{cursor}'!");
}
}
return success;
}
private bool IsValidCursorPath(string path)
{
return path.StartsWith(USER_PATH, StringComparison.OrdinalIgnoreCase) || path.StartsWith(SYSTEM_PATH, StringComparison.OrdinalIgnoreCase);
}
}
}

View file

@ -0,0 +1,95 @@
/*
* Copyright (c) 2024 ETH Zürich, IT Services
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
using System.Threading.Tasks;
using SafeExamBrowser.Logging.Contracts;
using SafeExamBrowser.Monitoring.Contracts.System.Events;
using SafeExamBrowser.SystemComponents.Contracts.Registry;
namespace SafeExamBrowser.Monitoring.System.Components
{
internal class EaseOfAccess
{
private readonly ILogger logger;
private readonly IRegistry registry;
internal event SentinelEventHandler EaseOfAccessChanged;
internal EaseOfAccess(ILogger logger, IRegistry registry)
{
this.logger = logger;
this.registry = registry;
}
internal void StartMonitoring()
{
registry.ValueChanged += Registry_ValueChanged;
registry.StartMonitoring(RegistryValue.MachineHive.EaseOfAccess_Key, RegistryValue.MachineHive.EaseOfAccess_Name);
logger.Info("Started monitoring ease of access.");
}
internal void StopMonitoring()
{
registry.ValueChanged -= Registry_ValueChanged;
registry.StopMonitoring(RegistryValue.MachineHive.EaseOfAccess_Key, RegistryValue.MachineHive.EaseOfAccess_Name);
logger.Info("Stopped monitoring ease of access.");
}
internal bool Verify()
{
logger.Info($"Starting ease of access verification...");
var success = registry.TryRead(RegistryValue.MachineHive.EaseOfAccess_Key, RegistryValue.MachineHive.EaseOfAccess_Name, out var value);
if (success)
{
if (value is string s && string.IsNullOrWhiteSpace(s))
{
logger.Info("Ease of access configuration successfully verified.");
}
else
{
logger.Warn($"Ease of access configuration is compromised: '{value}'!");
success = false;
}
}
else
{
success = true;
logger.Info("Ease of access configuration successfully verified (value does not exist).");
}
return success;
}
private void Registry_ValueChanged(string key, string name, object oldValue, object newValue)
{
if (key == RegistryValue.MachineHive.EaseOfAccess_Key)
{
HandleEaseOfAccessChange(key, name, oldValue, newValue);
}
}
private void HandleEaseOfAccessChange(string key, string name, object oldValue, object newValue)
{
var args = new SentinelEventArgs();
logger.Warn($@"The ease of access registry value '{key}\{name}' has changed from '{oldValue}' to '{newValue}'!");
Task.Run(() => EaseOfAccessChanged?.Invoke(args)).ContinueWith((_) =>
{
if (args.Allow)
{
registry.StopMonitoring(key, name);
}
});
}
}
}

View file

@ -0,0 +1,175 @@
/*
* Copyright (c) 2024 ETH Zürich, IT Services
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
using System.Threading.Tasks;
using System.Timers;
using SafeExamBrowser.Logging.Contracts;
using SafeExamBrowser.Monitoring.Contracts.System.Events;
using SafeExamBrowser.WindowsApi.Contracts;
namespace SafeExamBrowser.Monitoring.System.Components
{
internal class StickyKeys
{
private readonly ILogger logger;
private readonly INativeMethods nativeMethods;
private readonly Timer timer;
private IStickyKeysState original;
internal event SentinelEventHandler Changed;
internal StickyKeys(ILogger logger, INativeMethods nativeMethods)
{
this.logger = logger;
this.nativeMethods = nativeMethods;
this.timer = new Timer();
}
internal bool Disable()
{
var success = nativeMethods.TryGetStickyKeys(out var state);
if (success)
{
success = nativeMethods.DisableStickyKeys();
if (success)
{
original = state;
logger.Info($"Disabled sticky keys (original state: {ToString(state)}).");
}
else
{
logger.Error($"Failed to disable sticky keys (original state: {ToString(state)})!");
}
}
else
{
logger.Error("Failed to retrieve sticky keys state!");
}
return success;
}
internal bool Enable()
{
var success = nativeMethods.TryGetStickyKeys(out var state);
if (success)
{
success = nativeMethods.EnableStickyKeys();
if (success)
{
original = state;
logger.Info($"Enabled sticky keys (original state: {ToString(state)}).");
}
else
{
logger.Error($"Failed to enable sticky keys (original state: {ToString(state)})!");
}
}
else
{
logger.Error("Failed to retrieve sticky keys state!");
}
return success;
}
internal bool Revert()
{
var success = true;
if (original != default)
{
success = nativeMethods.TrySetStickyKeys(original);
if (success)
{
logger.Info($"Successfully reverted sticky keys (original state: {ToString(original)}).");
}
else
{
logger.Error($"Failed to revert sticky keys (original state: {ToString(original)})!");
}
}
original = default;
return success;
}
internal void StartMonitoring()
{
timer.AutoReset = true;
timer.Elapsed += Timer_Elapsed;
timer.Interval = 1000;
timer.Start();
logger.Info("Started monitoring sticky keys.");
}
internal void StopMonitoring()
{
timer.Elapsed -= Timer_Elapsed;
timer.Stop();
logger.Info("Stopped monitoring sticky keys.");
}
private void Timer_Elapsed(object sender, ElapsedEventArgs e)
{
if (nativeMethods.TryGetStickyKeys(out var state))
{
if (state.IsEnabled || state.IsHotkeyActive)
{
HandleStickyKeysChange(state);
}
}
else
{
logger.Error("Failed to monitor sticky keys state!");
}
}
private void HandleStickyKeysChange(IStickyKeysState state)
{
var args = new SentinelEventArgs();
logger.Warn($"The sticky keys state has changed: {ToString(state)}.");
Task.Run(() => Changed?.Invoke(args)).ContinueWith((_) =>
{
if (args.Allow)
{
StopMonitoring();
}
});
if (nativeMethods.DisableStickyKeys())
{
logger.Info($"Disabled sticky keys.");
}
else
{
logger.Error($"Failed to disable sticky keys!");
}
}
private string ToString(IStickyKeysState state)
{
var availability = state.IsAvailable ? "available" : "unavailable";
var status = state.IsEnabled ? "enabled" : "disabled";
var hotkey = state.IsHotkeyActive ? "active" : "inactive";
return $"functionality {availability} and {status}, hotkey {hotkey}";
}
}
}

View file

@ -0,0 +1,85 @@
/*
* Copyright (c) 2024 ETH Zürich, IT Services
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
using SafeExamBrowser.Logging.Contracts;
using SafeExamBrowser.Monitoring.Contracts.System;
using SafeExamBrowser.Monitoring.Contracts.System.Events;
using SafeExamBrowser.Monitoring.System.Components;
using SafeExamBrowser.SystemComponents.Contracts.Registry;
using SafeExamBrowser.WindowsApi.Contracts;
namespace SafeExamBrowser.Monitoring.System
{
public class SystemSentinel : ISystemSentinel
{
private readonly Cursors cursors;
private readonly EaseOfAccess easeOfAccess;
private readonly StickyKeys stickyKeys;
public event SentinelEventHandler CursorChanged;
public event SentinelEventHandler EaseOfAccessChanged;
public event SentinelEventHandler StickyKeysChanged;
public SystemSentinel(ILogger logger, INativeMethods nativeMethods, IRegistry registry)
{
this.cursors = new Cursors(logger, registry);
this.easeOfAccess = new EaseOfAccess(logger, registry);
this.stickyKeys = new StickyKeys(logger, nativeMethods);
}
public bool DisableStickyKeys()
{
return stickyKeys.Disable();
}
public bool EnableStickyKeys()
{
return stickyKeys.Enable();
}
public bool RevertStickyKeys()
{
return stickyKeys.Revert();
}
public void StartMonitoringCursors()
{
cursors.CursorChanged += (args) => CursorChanged?.Invoke(args);
cursors.StartMonitoring();
}
public void StartMonitoringEaseOfAccess()
{
easeOfAccess.EaseOfAccessChanged += (args) => EaseOfAccessChanged?.Invoke(args);
easeOfAccess.StartMonitoring();
}
public void StartMonitoringStickyKeys()
{
stickyKeys.Changed += (args) => StickyKeysChanged?.Invoke(args);
stickyKeys.StartMonitoring();
}
public void StopMonitoring()
{
cursors.StopMonitoring();
easeOfAccess.StopMonitoring();
stickyKeys.StopMonitoring();
}
public bool VerifyCursors()
{
return cursors.Verify();
}
public bool VerifyEaseOfAccess()
{
return easeOfAccess.Verify();
}
}
}

View file

@ -26,6 +26,7 @@ using SafeExamBrowser.I18n.Contracts;
using SafeExamBrowser.Logging;
using SafeExamBrowser.Logging.Contracts;
using SafeExamBrowser.Monitoring.Display;
using SafeExamBrowser.Monitoring.System;
using SafeExamBrowser.Runtime.Communication;
using SafeExamBrowser.Runtime.Operations;
using SafeExamBrowser.Server;
@ -82,6 +83,7 @@ namespace SafeExamBrowser.Runtime
var remoteSessionDetector = new RemoteSessionDetector(ModuleLogger(nameof(RemoteSessionDetector)));
var runtimeHost = new RuntimeHost(appConfig.RuntimeAddress, new HostObjectFactory(), ModuleLogger(nameof(RuntimeHost)), FIVE_SECONDS);
var runtimeWindow = uiFactory.CreateRuntimeWindow(appConfig);
var sentinel = new SystemSentinel(ModuleLogger(nameof(SystemSentinel)), nativeMethods, registry);
var server = new ServerProxy(appConfig, keyGenerator, ModuleLogger(nameof(ServerProxy)), systemInfo, userInfo);
var serviceProxy = new ServiceProxy(appConfig.ServiceAddress, new ProxyObjectFactory(), ModuleLogger(nameof(ServiceProxy)), Interlocutor.Runtime);
var sessionContext = new SessionContext();
@ -101,7 +103,7 @@ namespace SafeExamBrowser.Runtime
sessionOperations.Enqueue(new VersionRestrictionOperation(logger, sessionContext, text));
sessionOperations.Enqueue(new DisclaimerOperation(logger, sessionContext));
sessionOperations.Enqueue(new RemoteSessionOperation(remoteSessionDetector, logger, sessionContext));
sessionOperations.Enqueue(new SessionIntegrityOperation(logger, registry, sessionContext));
sessionOperations.Enqueue(new SessionIntegrityOperation(logger, sentinel, sessionContext));
sessionOperations.Enqueue(new VirtualMachineOperation(vmDetector, logger, sessionContext));
sessionOperations.Enqueue(new DisplayMonitorOperation(displayMonitor, logger, sessionContext, text));
sessionOperations.Enqueue(new ServiceOperation(logger, runtimeHost, serviceProxy, sessionContext, THIRTY_SECONDS, userInfo));

View file

@ -6,31 +6,26 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
using System;
using System.Linq;
using SafeExamBrowser.Core.Contracts.OperationModel;
using SafeExamBrowser.Core.Contracts.OperationModel.Events;
using SafeExamBrowser.I18n.Contracts;
using SafeExamBrowser.Logging.Contracts;
using SafeExamBrowser.SystemComponents.Contracts.Registry;
using SafeExamBrowser.Monitoring.Contracts.System;
namespace SafeExamBrowser.Runtime.Operations
{
internal class SessionIntegrityOperation : SessionOperation
{
private static readonly string USER_PATH = $@"{Environment.ExpandEnvironmentVariables("%LocalAppData%")}\Microsoft\Windows\Cursors\";
private static readonly string SYSTEM_PATH = $@"{Environment.ExpandEnvironmentVariables("%SystemRoot%")}\Cursors\";
private readonly ILogger logger;
private readonly IRegistry registry;
private readonly ISystemSentinel sentinel;
public override event ActionRequiredEventHandler ActionRequired { add { } remove { } }
public override event StatusChangedEventHandler StatusChanged;
public SessionIntegrityOperation(ILogger logger, IRegistry registry, SessionContext context) : base(context)
public SessionIntegrityOperation(ILogger logger, ISystemSentinel sentinel, SessionContext context) : base(context)
{
this.logger = logger;
this.registry = registry;
this.sentinel = sentinel;
}
public override OperationResult Perform()
@ -39,8 +34,11 @@ namespace SafeExamBrowser.Runtime.Operations
StatusChanged?.Invoke(TextKey.OperationStatus_VerifySessionIntegrity);
success &= VerifyCursorConfiguration();
success &= VerifyEaseOfAccessConfiguration();
success &= InitializeStickyKeys();
success &= VerifyCursors();
success &= VerifyEaseOfAccess();
LogResult(success);
return success ? OperationResult.Success : OperationResult.Failed;
}
@ -51,43 +49,60 @@ namespace SafeExamBrowser.Runtime.Operations
StatusChanged?.Invoke(TextKey.OperationStatus_VerifySessionIntegrity);
success &= VerifyCursorConfiguration();
success &= VerifyEaseOfAccessConfiguration();
success &= InitializeStickyKeys();
success &= VerifyCursors();
success &= VerifyEaseOfAccess();
LogResult(success);
return success ? OperationResult.Success : OperationResult.Failed;
}
public override OperationResult Revert()
{
FinalizeStickyKeys();
return OperationResult.Success;
}
private bool VerifyCursorConfiguration()
private void FinalizeStickyKeys()
{
sentinel.RevertStickyKeys();
}
private bool InitializeStickyKeys()
{
var success = true;
sentinel.RevertStickyKeys();
if (!Context.Next.Settings.Security.AllowStickyKeys)
{
success = sentinel.DisableStickyKeys();
}
return success;
}
private void LogResult(bool success)
{
if (success)
{
logger.Info("Successfully ensured session integrity.");
}
else
{
logger.Error("Failed to ensure session integrity! Aborting session initialization...");
}
}
private bool VerifyCursors()
{
var success = true;
if (Context.Next.Settings.Security.VerifyCursorConfiguration)
{
logger.Info($"Attempting to verify cursor configuration...");
success = registry.TryGetNames(RegistryValue.UserHive.Cursors_Key, out var cursors);
if (success)
{
foreach (var cursor in cursors.Where(c => !string.IsNullOrWhiteSpace(c)))
{
success &= VerifyCursor(cursor);
}
}
if (success)
{
logger.Info("Cursor configuration successfully verified.");
}
else
{
logger.Warn("Failed to verify cursor configuration or configuration is compromised! Aborting session initialization...");
}
success = sentinel.VerifyCursors();
}
else
{
@ -97,65 +112,22 @@ namespace SafeExamBrowser.Runtime.Operations
return success;
}
private bool VerifyCursor(string cursor)
private bool VerifyEaseOfAccess()
{
var success = true;
success &= registry.TryRead(RegistryValue.UserHive.Cursors_Key, cursor, out var value);
success &= !(value is string) || (value is string path && (string.IsNullOrWhiteSpace(path) || IsValidCursorPath(path)));
var success = sentinel.VerifyEaseOfAccess();
if (!success)
{
if (value != default)
{
logger.Warn($"Configuration of cursor '{cursor}' is compromised: '{value}'!");
}
else
{
logger.Warn($"Failed to verify configuration of cursor '{cursor}'!");
}
}
return success;
}
private bool IsValidCursorPath(string path)
{
return path.StartsWith(USER_PATH, StringComparison.OrdinalIgnoreCase) || path.StartsWith(SYSTEM_PATH, StringComparison.OrdinalIgnoreCase);
}
private bool VerifyEaseOfAccessConfiguration()
{
var success = false;
logger.Info($"Attempting to verify ease of access configuration...");
if (registry.TryRead(RegistryValue.MachineHive.EaseOfAccess_Key, RegistryValue.MachineHive.EaseOfAccess_Name, out var value))
{
if (value is string s && string.IsNullOrWhiteSpace(s))
if (Context.Current?.Settings.Service.IgnoreService == false)
{
logger.Info($"Ease of access configuration is compromised but service was active in the current session.");
success = true;
logger.Info("Ease of access configuration successfully verified.");
}
else if (!Context.Next.Settings.Service.IgnoreService)
{
logger.Info($"Ease of access configuration is compromised but service will be active in the next session.");
success = true;
logger.Info($"Ease of access configuration is compromised ('{value}'), but service will be active in the next session.");
}
else if (Context.Current?.Settings.Service.IgnoreService == false)
{
success = true;
logger.Info($"Ease of access configuration is set ('{value}'), but service was active in the current session.");
}
else
{
logger.Warn($"Ease of access configuration is compromised: '{value}'! Aborting session initialization...");
}
}
else
{
success = true;
logger.Info("Ease of access configuration successfully verified (value does not exist).");
}
return success;

View file

@ -37,6 +37,11 @@ namespace SafeExamBrowser.Settings.Security
/// </summary>
public bool AllowReconfiguration { get; set; }
/// <summary>
/// Determines whether the user may use the sticky keys feature of the operating system.
/// </summary>
public bool AllowStickyKeys { get; set; }
/// <summary>
/// Determines whether the user is allowed to use the system clipboard, a custom clipboard or no clipboard at all.
/// </summary>

View file

@ -46,6 +46,11 @@ namespace SafeExamBrowser.WindowsApi.Contracts
/// </exception>
void DeregisterSystemEventHook(Guid hookId);
/// <summary>
/// Attempts to disable the sticky keys feature of the operating system. Returns <c>true</c> if successful, otherwise <c>false</c>.
/// </summary>
bool DisableStickyKeys();
/// <summary>
/// Empties the clipboard.
/// </summary>
@ -54,6 +59,11 @@ namespace SafeExamBrowser.WindowsApi.Contracts
/// </exception>
void EmptyClipboard();
/// <summary>
/// Attempts to enable the sticky keys feature of the operating system. Returns <c>true</c> if successful, otherwise <c>false</c>.
/// </summary>
bool EnableStickyKeys();
/// <summary>
/// Retrieves the current position of the mouse cursor.
/// </summary>
@ -204,5 +214,15 @@ namespace SafeExamBrowser.WindowsApi.Contracts
/// otherwise <c>false</c>.
/// </summary>
bool SuspendThread(int threadId);
/// <summary>
/// Attempts to retrieve the state of the sticky keys feature of the operating system. Returns <c>true</c> if successful, otherwise <c>false</c>.
/// </summary>
bool TryGetStickyKeys(out IStickyKeysState state);
/// <summary>
/// Attempts to set the state of the sticky keys feature of the operating system. Returns <c>true</c> if successful, otherwise <c>false</c>.
/// </summary>
bool TrySetStickyKeys(IStickyKeysState state);
}
}

View file

@ -0,0 +1,31 @@
/*
* Copyright (c) 2024 ETH Zürich, IT Services
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
namespace SafeExamBrowser.WindowsApi.Contracts
{
/// <summary>
/// Represents a state of the sticky keys feature of the operating system.
/// </summary>
public interface IStickyKeysState
{
/// <summary>
/// Indicates whether the feature is available.
/// </summary>
bool IsAvailable { get; }
/// <summary>
/// Indicates whether the feature is enabled.
/// </summary>
bool IsEnabled { get; }
/// <summary>
/// Indicates whether the hotkey for the feature is active.
/// </summary>
bool IsHotkeyActive { get; }
}
}

View file

@ -73,6 +73,7 @@
<Compile Include="INativeMethods.cs" />
<Compile Include="IProcess.cs" />
<Compile Include="IProcessFactory.cs" />
<Compile Include="IStickyKeysState.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

View file

@ -9,6 +9,7 @@
namespace SafeExamBrowser.WindowsApi.Constants
{
/// <remarks>
/// See https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-systemparametersinfow.
/// See http://www.pinvoke.net/default.aspx/Enums/SPI.html?diff=y.
/// </remarks>
internal enum SPI : uint
@ -20,6 +21,12 @@ namespace SafeExamBrowser.WindowsApi.Constants
/// </summary>
GETDESKWALLPAPER = 0x73,
/// <summary>
/// Retrieves information about the StickyKeys accessibility feature. The pvParam parameter must point to a STICKYKEYS structure
/// that receives the information. Set the cbSize member of this structure and the uiParam parameter to sizeof(STICKYKEYS).
/// </summary>
GETSTICKYKEYS = 0x3A,
/// <summary>
/// Retrieves the size of the work area on the primary display monitor. The work area is the portion of the screen
/// not obscured by the system taskbar or by application desktop toolbars. The pvParam parameter must point to a
@ -35,6 +42,12 @@ namespace SafeExamBrowser.WindowsApi.Constants
/// </summary>
SETDESKWALLPAPER = 0x14,
/// <summary>
/// Sets the parameters of the StickyKeys accessibility feature. The pvParam parameter must point to a STICKYKEYS structure
/// that contains the new parameters. Set the cbSize member of this structure and the uiParam parameter to sizeof(STICKYKEYS).
/// </summary>
SETSTICKYKEYS = 0x3B,
/// <summary>
/// Sets the size of the work area. The work area is the portion of the screen not obscured by the system taskbar
/// or by application desktop toolbars. The pvParam parameter is a pointer to a RECT structure that specifies the

View file

@ -0,0 +1,64 @@
/*
* Copyright (c) 2024 ETH Zürich, IT Services
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
using System;
namespace SafeExamBrowser.WindowsApi.Constants
{
/// <remarks>
/// See https://learn.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-stickykeys#members
/// </remarks>
[Flags]
internal enum StickyKeysFlags : int
{
/// <summary>
/// If this flag is set, the StickyKeys feature is on.
/// </summary>
ON = 0x1,
/// <summary>
/// If this flag is set, the StickyKeys feature is available.
/// </summary>
AVAILABLE = 0x2,
/// <summary>
/// If this flag is set, the user can turn the StickyKeys feature on and off by pressing the SHIFT key five times.
/// </summary>
HOTKEYACTIVE = 0x4,
/// <summary>
/// A confirmation dialog appears when the StickyKeys feature is activated by using the hot key.
/// </summary>
CONFIRMHOTKEY = 0x8,
/// <summary>
/// If this flag is set, the system plays a siren sound when the user turns the StickyKeys feature on or off by using the hot key.
/// </summary>
HOTKEYSOUND = 0x10,
/// <summary>
/// A visual indicator should be displayed when the StickyKeys feature is on.
/// </summary>
INDICATOR = 0x20,
/// <summary>
/// If this flag is set, the system plays a sound when the user latches, locks, or releases modifier keys using the StickyKeys feature.
/// </summary>
AUDIBLEFEEDBACK = 0x40,
/// <summary>
/// If this flag is set, pressing a modifier key twice in a row locks down the key until the user presses it a third time.
/// </summary>
TRISTATE = 0x80,
/// <summary>
/// If this flag is set, releasing a modifier key that has been pressed in combination with any other key turns off the StickyKeys feature.
/// </summary>
TWOKEYSOFF = 0x100,
}
}

View file

@ -69,7 +69,7 @@ namespace SafeExamBrowser.WindowsApi
{
var hook = KeyboardHooks.Values.FirstOrDefault(h => h.Id == hookId);
if (hook != null)
if (hook != default)
{
var success = hook.Detach();
@ -86,7 +86,7 @@ namespace SafeExamBrowser.WindowsApi
{
var hook = MouseHooks.Values.FirstOrDefault(h => h.Id == hookId);
if (hook != null)
if (hook != default)
{
var success = hook.Detach();
@ -103,7 +103,7 @@ namespace SafeExamBrowser.WindowsApi
{
var hook = SystemHooks.Values.FirstOrDefault(h => h.Id == hookId);
if (hook != null)
if (hook != default)
{
var success = hook.Detach();
@ -116,6 +116,22 @@ namespace SafeExamBrowser.WindowsApi
}
}
public bool DisableStickyKeys()
{
var success = TryGetStickyKeys(out var state);
if (success)
{
(state as StickyKeysState).Flags &= ~StickyKeysFlags.AVAILABLE;
(state as StickyKeysState).Flags &= ~StickyKeysFlags.HOTKEYACTIVE;
(state as StickyKeysState).Flags &= ~StickyKeysFlags.ON;
success = TrySetStickyKeys(state);
}
return success;
}
public void EmptyClipboard()
{
var success = true;
@ -130,6 +146,22 @@ namespace SafeExamBrowser.WindowsApi
}
}
public bool EnableStickyKeys()
{
var success = TryGetStickyKeys(out var state);
if (success)
{
(state as StickyKeysState).Flags |= StickyKeysFlags.AVAILABLE;
(state as StickyKeysState).Flags |= StickyKeysFlags.HOTKEYACTIVE;
(state as StickyKeysState).Flags |= StickyKeysFlags.ON;
success = TrySetStickyKeys(state);
}
return success;
}
public (int x, int y) GetCursorPosition()
{
var position = new POINT();
@ -172,7 +204,7 @@ namespace SafeExamBrowser.WindowsApi
public IntPtr GetShellWindowHandle()
{
return User32.FindWindow("Shell_TrayWnd", null);
return User32.FindWindow("Shell_TrayWnd", default);
}
public uint GetShellProcessId()
@ -187,7 +219,7 @@ namespace SafeExamBrowser.WindowsApi
{
const int MAX_PATH = 260;
var buffer = new String('\0', MAX_PATH);
var success = User32.SystemParametersInfo(SPI.GETDESKWALLPAPER, buffer.Length, buffer, 0);
var success = User32.SystemParametersInfo(SPI.GETDESKWALLPAPER, buffer.Length, buffer, SPIF.NONE);
if (!success)
{
@ -462,5 +494,48 @@ namespace SafeExamBrowser.WindowsApi
Kernel32.CloseHandle(handle);
}
}
public bool TryGetStickyKeys(out IStickyKeysState state)
{
var stickyKeys = new STICKYKEYS();
state = default;
stickyKeys.cbSize = Marshal.SizeOf(typeof(STICKYKEYS));
var success = User32.SystemParametersInfo(SPI.GETSTICKYKEYS, stickyKeys.cbSize, ref stickyKeys, SPIF.NONE);
if (success)
{
state = new StickyKeysState
{
Flags = stickyKeys.dwFlags,
IsAvailable = stickyKeys.dwFlags.HasFlag(StickyKeysFlags.AVAILABLE),
IsEnabled = stickyKeys.dwFlags.HasFlag(StickyKeysFlags.ON),
IsHotkeyActive = stickyKeys.dwFlags.HasFlag(StickyKeysFlags.HOTKEYACTIVE)
};
}
return success;
}
public bool TrySetStickyKeys(IStickyKeysState state)
{
var success = false;
var stickyKeys = new STICKYKEYS();
if (state is StickyKeysState stateWithFlags)
{
stickyKeys.cbSize = Marshal.SizeOf(typeof(STICKYKEYS));
stickyKeys.dwFlags = stateWithFlags.Flags;
success = User32.SystemParametersInfo(SPI.SETSTICKYKEYS, stickyKeys.cbSize, ref stickyKeys, SPIF.NONE);
}
else
{
success = state.IsEnabled ? EnableStickyKeys() : DisableStickyKeys();
}
return success;
}
}
}

View file

@ -57,6 +57,7 @@
<ItemGroup>
<Compile Include="Constants\Constant.cs" />
<Compile Include="Constants\HookType.cs" />
<Compile Include="Constants\StickyKeysFlags.cs" />
<Compile Include="Constants\ThreadAccess.cs" />
<Compile Include="Constants\VirtualKeyCode.cs" />
<Compile Include="Delegates\EnumDesktopDelegate.cs" />
@ -90,6 +91,8 @@
<Compile Include="Types\PROCESS_INFORMATION.cs" />
<Compile Include="Types\RECT.cs" />
<Compile Include="Types\STARTUPINFO.cs" />
<Compile Include="Types\STICKYKEYS.cs" />
<Compile Include="Types\StickyKeysState.cs" />
<Compile Include="Types\Window.cs" />
<Compile Include="Types\WINDOWPLACEMENT.cs" />
<Compile Include="User32.cs" />

View file

@ -0,0 +1,23 @@
/*
* Copyright (c) 2024 ETH Zürich, IT Services
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
using System.Runtime.InteropServices;
using SafeExamBrowser.WindowsApi.Constants;
namespace SafeExamBrowser.WindowsApi.Types
{
/// <remarks>
/// See https://learn.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-stickykeys.
/// </remarks>
[StructLayout(LayoutKind.Sequential)]
internal struct STICKYKEYS
{
internal int cbSize;
internal StickyKeysFlags dwFlags;
}
}

View file

@ -0,0 +1,22 @@
/*
* Copyright (c) 2024 ETH Zürich, IT Services
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
using SafeExamBrowser.WindowsApi.Constants;
using SafeExamBrowser.WindowsApi.Contracts;
namespace SafeExamBrowser.WindowsApi.Types
{
public class StickyKeysState : IStickyKeysState
{
internal StickyKeysFlags Flags { get; set; }
public bool IsAvailable { get; internal set; }
public bool IsEnabled { get; internal set; }
public bool IsHotkeyActive { get; internal set; }
}
}

View file

@ -107,6 +107,9 @@ namespace SafeExamBrowser.WindowsApi
[DllImport("user32.dll", SetLastError = true)]
internal static extern bool SystemParametersInfo(SPI uiAction, uint uiParam, ref RECT pvParam, SPIF fWinIni);
[DllImport("user32.dll", SetLastError = true)]
internal static extern bool SystemParametersInfo(SPI uiAction, int uiParam, ref STICKYKEYS pvParam, SPIF fWinIni);
[DllImport("user32.dll", SetLastError = true)]
internal static extern bool SystemParametersInfo(SPI uiAction, int uiParam, string pvParam, SPIF fWinIni);

View file

@ -385,6 +385,7 @@ namespace SebWindowsConfig
public const String KeyEnableCursorVerification = "enableCursorVerification";
public const String KeyEnableSessionVerification = "enableSessionVerification";
public const String KeyLockScreenBackgroundColor = "lockScreenBackgroundColor";
public const String KeyAllowStickyKeys = "allowStickyKeys";
// Group "macOS specific settings"
public const String KeyMinMacOSVersion = "minMacOSVersion";
@ -877,7 +878,8 @@ namespace SebWindowsConfig
"obs32.exe",
"spotify.exe",
"Microsoft.Media.Player.exe",
"vlc.exe"
"vlc.exe",
"sethc.exe"
};
// Default settings for group "Network - Filter"
@ -1027,6 +1029,7 @@ namespace SebWindowsConfig
SEBSettings.settingsDefault.Add(SEBSettings.KeyEnableCursorVerification, true);
SEBSettings.settingsDefault.Add(SEBSettings.KeyEnableSessionVerification, true);
SEBSettings.settingsDefault.Add(SEBSettings.KeyLockScreenBackgroundColor, "#ff0000");
SEBSettings.settingsDefault.Add(SEBSettings.KeyAllowStickyKeys, false);
// Default selected index and string in combo box for minMacOSVersion
SEBSettings.intArrayDefault[SEBSettings.ValMinMacOSVersion] = 4;

View file

@ -30,8 +30,8 @@ namespace SebWindowsConfig
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SebWindowsConfigForm));
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
this.openFileDialogSebConfigFile = new System.Windows.Forms.OpenFileDialog();
this.saveFileDialogSebConfigFile = new System.Windows.Forms.SaveFileDialog();
this.imageListTabIcons = new System.Windows.Forms.ImageList(this.components);
@ -360,6 +360,10 @@ namespace SebWindowsConfig
this.labelNewWindowPosition = new System.Windows.Forms.Label();
this.listBoxNewBrowserWindowPositioning = new System.Windows.Forms.ListBox();
this.tabPageAppearance = new System.Windows.Forms.TabPage();
this.groupBox22 = new System.Windows.Forms.GroupBox();
this.lockscreenColorButton = new System.Windows.Forms.Button();
this.lockscreenColorTextbox = new System.Windows.Forms.TextBox();
this.label34 = new System.Windows.Forms.Label();
this.spellCheckerGroupBox = new System.Windows.Forms.GroupBox();
this.dictionariesDescriptionLabel = new System.Windows.Forms.Label();
this.spellCheckerDescriptionLabel = new System.Windows.Forms.Label();
@ -481,10 +485,7 @@ namespace SebWindowsConfig
this.editDuplicateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.configureClientToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.applyAndStartSEBToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.groupBox22 = new System.Windows.Forms.GroupBox();
this.lockscreenColorButton = new System.Windows.Forms.Button();
this.lockscreenColorTextbox = new System.Windows.Forms.TextBox();
this.label34 = new System.Windows.Forms.Label();
this.checkBoxAllowStickyKeys = new System.Windows.Forms.CheckBox();
this.tabPageHookedKeys.SuspendLayout();
this.groupBoxFunctionKeys.SuspendLayout();
this.groupBoxSpecialKeys.SuspendLayout();
@ -530,6 +531,7 @@ namespace SebWindowsConfig
this.groupBox11.SuspendLayout();
this.groupBoxNewBrowserWindow.SuspendLayout();
this.tabPageAppearance.SuspendLayout();
this.groupBox22.SuspendLayout();
this.spellCheckerGroupBox.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.spellCheckerDataGridView)).BeginInit();
this.groupBox16.SuspendLayout();
@ -545,7 +547,6 @@ namespace SebWindowsConfig
this.groupBoxExitSequence.SuspendLayout();
this.tabControlSebWindowsConfig.SuspendLayout();
this.menuStrip1.SuspendLayout();
this.groupBox22.SuspendLayout();
this.SuspendLayout();
//
// openFileDialogSebConfigFile
@ -1138,6 +1139,7 @@ namespace SebWindowsConfig
//
// tabPageSecurity
//
this.tabPageSecurity.Controls.Add(this.checkBoxAllowStickyKeys);
this.tabPageSecurity.Controls.Add(this.checkBoxEnableSessionVerification);
this.tabPageSecurity.Controls.Add(this.checkBoxEnableCursorVerification);
this.tabPageSecurity.Controls.Add(this.groupBox21);
@ -1167,7 +1169,7 @@ namespace SebWindowsConfig
// checkBoxEnableSessionVerification
//
this.checkBoxEnableSessionVerification.AutoSize = true;
this.checkBoxEnableSessionVerification.Location = new System.Drawing.Point(230, 336);
this.checkBoxEnableSessionVerification.Location = new System.Drawing.Point(919, 278);
this.checkBoxEnableSessionVerification.Name = "checkBoxEnableSessionVerification";
this.checkBoxEnableSessionVerification.Size = new System.Drawing.Size(179, 17);
this.checkBoxEnableSessionVerification.TabIndex = 112;
@ -1178,7 +1180,7 @@ namespace SebWindowsConfig
// checkBoxEnableCursorVerification
//
this.checkBoxEnableCursorVerification.AutoSize = true;
this.checkBoxEnableCursorVerification.Location = new System.Drawing.Point(230, 317);
this.checkBoxEnableCursorVerification.Location = new System.Drawing.Point(919, 259);
this.checkBoxEnableCursorVerification.Name = "checkBoxEnableCursorVerification";
this.checkBoxEnableCursorVerification.Size = new System.Drawing.Size(173, 17);
this.checkBoxEnableCursorVerification.TabIndex = 111;
@ -2069,8 +2071,8 @@ namespace SebWindowsConfig
//
// Type
//
dataGridViewCellStyle11.BackColor = System.Drawing.Color.Silver;
this.Type.DefaultCellStyle = dataGridViewCellStyle11;
dataGridViewCellStyle3.BackColor = System.Drawing.Color.Silver;
this.Type.DefaultCellStyle = dataGridViewCellStyle3;
this.Type.HeaderText = "Type";
this.Type.Name = "Type";
this.Type.ReadOnly = true;
@ -4735,6 +4737,49 @@ namespace SebWindowsConfig
this.tabPageAppearance.Text = "User Interface";
this.tabPageAppearance.UseVisualStyleBackColor = true;
//
// groupBox22
//
this.groupBox22.Controls.Add(this.lockscreenColorButton);
this.groupBox22.Controls.Add(this.lockscreenColorTextbox);
this.groupBox22.Controls.Add(this.label34);
this.groupBox22.Location = new System.Drawing.Point(529, 176);
this.groupBox22.Name = "groupBox22";
this.groupBox22.Size = new System.Drawing.Size(689, 59);
this.groupBox22.TabIndex = 88;
this.groupBox22.TabStop = false;
this.groupBox22.Text = "Lock Screen";
//
// lockscreenColorButton
//
this.lockscreenColorButton.Location = new System.Drawing.Point(226, 22);
this.lockscreenColorButton.Name = "lockscreenColorButton";
this.lockscreenColorButton.Size = new System.Drawing.Size(75, 23);
this.lockscreenColorButton.TabIndex = 118;
this.lockscreenColorButton.Text = "Choose";
this.lockscreenColorButton.UseVisualStyleBackColor = true;
this.lockscreenColorButton.Click += new System.EventHandler(this.lockscreenColorButton_Click);
//
// lockscreenColorTextbox
//
this.lockscreenColorTextbox.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lockscreenColorTextbox.ForeColor = System.Drawing.Color.White;
this.lockscreenColorTextbox.Location = new System.Drawing.Point(102, 23);
this.lockscreenColorTextbox.MaxLength = 7;
this.lockscreenColorTextbox.Name = "lockscreenColorTextbox";
this.lockscreenColorTextbox.Size = new System.Drawing.Size(111, 20);
this.lockscreenColorTextbox.TabIndex = 117;
this.lockscreenColorTextbox.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
this.lockscreenColorTextbox.TextChanged += new System.EventHandler(this.lockscreenColorTextbox_TextChanged);
//
// label34
//
this.label34.AutoSize = true;
this.label34.Location = new System.Drawing.Point(6, 26);
this.label34.Name = "label34";
this.label34.Size = new System.Drawing.Size(92, 13);
this.label34.TabIndex = 116;
this.label34.Text = "Background Color";
//
// spellCheckerGroupBox
//
this.spellCheckerGroupBox.Controls.Add(this.dictionariesDescriptionLabel);
@ -4854,8 +4899,8 @@ namespace SebWindowsConfig
// spellCheckerDictionaryFilesColumn
//
this.spellCheckerDictionaryFilesColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
dataGridViewCellStyle12.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.spellCheckerDictionaryFilesColumn.DefaultCellStyle = dataGridViewCellStyle12;
dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.spellCheckerDictionaryFilesColumn.DefaultCellStyle = dataGridViewCellStyle4;
this.spellCheckerDictionaryFilesColumn.HeaderText = "Files";
this.spellCheckerDictionaryFilesColumn.Name = "spellCheckerDictionaryFilesColumn";
this.spellCheckerDictionaryFilesColumn.ReadOnly = true;
@ -6253,48 +6298,18 @@ namespace SebWindowsConfig
this.applyAndStartSEBToolStripMenuItem.Visible = false;
this.applyAndStartSEBToolStripMenuItem.Click += new System.EventHandler(this.applyAndStartSEBToolStripMenuItem_Click);
//
// groupBox22
// checkBoxAllowStickyKeys
//
this.groupBox22.Controls.Add(this.lockscreenColorButton);
this.groupBox22.Controls.Add(this.lockscreenColorTextbox);
this.groupBox22.Controls.Add(this.label34);
this.groupBox22.Location = new System.Drawing.Point(529, 176);
this.groupBox22.Name = "groupBox22";
this.groupBox22.Size = new System.Drawing.Size(689, 59);
this.groupBox22.TabIndex = 88;
this.groupBox22.TabStop = false;
this.groupBox22.Text = "Lock Screen";
//
// lockscreenColorButton
//
this.lockscreenColorButton.Location = new System.Drawing.Point(226, 22);
this.lockscreenColorButton.Name = "lockscreenColorButton";
this.lockscreenColorButton.Size = new System.Drawing.Size(75, 23);
this.lockscreenColorButton.TabIndex = 118;
this.lockscreenColorButton.Text = "Choose";
this.lockscreenColorButton.UseVisualStyleBackColor = true;
this.lockscreenColorButton.Click += new System.EventHandler(this.lockscreenColorButton_Click);
//
// lockscreenColorTextbox
//
this.lockscreenColorTextbox.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lockscreenColorTextbox.ForeColor = System.Drawing.Color.White;
this.lockscreenColorTextbox.Location = new System.Drawing.Point(102, 23);
this.lockscreenColorTextbox.MaxLength = 7;
this.lockscreenColorTextbox.Name = "lockscreenColorTextbox";
this.lockscreenColorTextbox.Size = new System.Drawing.Size(111, 20);
this.lockscreenColorTextbox.TabIndex = 117;
this.lockscreenColorTextbox.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
this.lockscreenColorTextbox.TextChanged += new System.EventHandler(this.lockscreenColorTextbox_TextChanged);
//
// label34
//
this.label34.AutoSize = true;
this.label34.Location = new System.Drawing.Point(6, 26);
this.label34.Name = "label34";
this.label34.Size = new System.Drawing.Size(92, 13);
this.label34.TabIndex = 116;
this.label34.Text = "Background Color";
this.checkBoxAllowStickyKeys.AutoSize = true;
this.checkBoxAllowStickyKeys.Location = new System.Drawing.Point(230, 321);
this.checkBoxAllowStickyKeys.Name = "checkBoxAllowStickyKeys";
this.checkBoxAllowStickyKeys.Size = new System.Drawing.Size(166, 17);
this.checkBoxAllowStickyKeys.TabIndex = 113;
this.checkBoxAllowStickyKeys.Text = "Allow to use sticky keys (Win)";
this.toolTip1.SetToolTip(this.checkBoxAllowStickyKeys, "Indicates whether the sticky keys accessibility feature of the operating system m" +
"ay be used while SEB is running.");
this.checkBoxAllowStickyKeys.UseVisualStyleBackColor = true;
this.checkBoxAllowStickyKeys.CheckedChanged += new System.EventHandler(this.checkBoxAllowStickyKeys_CheckedChanged);
//
// SebWindowsConfigForm
//
@ -6398,6 +6413,8 @@ namespace SebWindowsConfig
this.groupBoxNewBrowserWindow.ResumeLayout(false);
this.groupBoxNewBrowserWindow.PerformLayout();
this.tabPageAppearance.ResumeLayout(false);
this.groupBox22.ResumeLayout(false);
this.groupBox22.PerformLayout();
this.spellCheckerGroupBox.ResumeLayout(false);
this.spellCheckerGroupBox.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.spellCheckerDataGridView)).EndInit();
@ -6425,8 +6442,6 @@ namespace SebWindowsConfig
this.tabControlSebWindowsConfig.ResumeLayout(false);
this.menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout();
this.groupBox22.ResumeLayout(false);
this.groupBox22.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
@ -6888,6 +6903,7 @@ namespace SebWindowsConfig
private System.Windows.Forms.Button lockscreenColorButton;
private System.Windows.Forms.TextBox lockscreenColorTextbox;
private System.Windows.Forms.Label label34;
private System.Windows.Forms.CheckBox checkBoxAllowStickyKeys;
}
}

View file

@ -818,6 +818,7 @@ namespace SebWindowsConfig
checkBoxEnableCursorVerification.Checked = (Boolean) SEBSettings.settingsCurrent[SEBSettings.KeyEnableCursorVerification];
checkBoxEnableSessionVerification.Checked = (Boolean) SEBSettings.settingsCurrent[SEBSettings.KeyEnableSessionVerification];
lockscreenColorTextbox.Text = (String) SEBSettings.settingsCurrent[SEBSettings.KeyLockScreenBackgroundColor];
checkBoxAllowStickyKeys.Checked = (Boolean) SEBSettings.settingsCurrent[SEBSettings.KeyAllowStickyKeys];
if (String.IsNullOrEmpty(textBoxLogDirectoryWin.Text))
{
@ -4835,5 +4836,10 @@ namespace SebWindowsConfig
SEBSettings.settingsCurrent[SEBSettings.KeyLockScreenBackgroundColor] = raw;
}
}
private void checkBoxAllowStickyKeys_CheckedChanged(object sender, EventArgs e)
{
SEBSettings.settingsCurrent[SEBSettings.KeyAllowStickyKeys] = checkBoxAllowStickyKeys.Checked;
}
}
}

View file

@ -130,8 +130,8 @@
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC+
1QAAAk1TRnQBSQFMAgEBDAEAAYABDAGAAQwBIAEAASABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAGA
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC6
1QAAAk1TRnQBSQFMAgEBDAEAAYgBDAGIAQwBIAEAASABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAGA
AwABgAMAAQEBAAEgBwABAf8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A0QABjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGO
@ -566,484 +566,483 @@
AbIBqAH/AcsBugGxAf8B0QHCAboB/wHoAeEB3QH/BAAB+QH3AfYB/wHcAdEBywH/AdYByQHBAf8B3QHS
AcwB/wHXAcoBwwH/AdIBxAG9Af8B0AHCAbsB/wHeAdUB0QH/A/4B/wHlAd4B2wH/AbcBpAGfAf8BmAGD
AQAB/wMzAVEIAANQAZ0BAAG9AQAB/wEAAcEBAAH/AQABuQEAAf8BAAG3AQAB/wEAAbEBAAH/AQABqwEA
Af8BAAGmAQAB/wEAAaABAAH/AQABmgEAAf8BAAGUAQAB/wEAAY4BAAH/AQABiAEAAf8BAAGCAQAB/wFk
AWUBZAHxAwYBBwMMAQ8DSgGJA0QBeQNEAXkDRAF4A10B0QEAAb4BAAH/AQABtgEAAf8BAAGxAQAB/wEA
Aa4BAAH/AQABqgEAAf8DWAG3A0QBeANEAXkDRAF5A0MBdhAAAyUBNgPqAf8EAAPhAf8D4AH/A+cB/wPi
Af8D5AH/A+YB/wPgAf8D5gH/A+EB/wPfAf8B4QHgAeEB/wPjAf8D4AH/A94B/wPlAf8D4AH/A9wB/wPd
Af8D5gH/BAADPgFrGAADKQE+A2oB+QPgAf8D9wH/AfQB9QH0Af8D9AH/AfMC9AH/AfMC9AH/AfMC9AH/
AvMB9AH/AfUB9AHyAf8B9wH1AfIB/wLzAfIB/wPuAf8B6AHqAesB/wHoAukB/wHcAtgB/wHtAt4B/wHi
Ac0BygH/AwAB/wMAAf8CAAGdAf8CAAGcAf8BuAG5AcsB/wNqAfkDIgExGAADRQF8AZICAAH/AaIBjAGH
Af8BpgGQAYsB/wGqAZQBjQH/AckBuQGzAf8BuQGjAZkB/wHBAa4BpQH/AdcBywHEAf8BzAG7AbMB/wHR
AcMBuwH/AdIBxAG8Af8BzAG9AbQB/wHUAccBwAH/AfMB8AHuAf8B5gHeAdoB/wG9AagBngH/AcABrQGj
Af8ByQG5AbAB/wG4AaEBlgH/AbgBoQGXAf8BtwGiAZcB/wG+AawBpAH/AeMB2wHZAf8BxgG4AbQB/wG/
Aa4BqQH/AaEBjgGKAf8DRgF+CAADQQFyA0IBdQNCAXQDQgF0A1MBqgEAAbUBAAH/AQABsAEAAf8BAAGp
AQAB/wEAAaQBAAH/AQABogEAAf8DYAHbA0IBdANCAXQDQgF0A0kBhQMLAQ4DBgEHA14B8AEAAcsBgwH/
AQABxQEAAf8BAAHEAQAB/wEAAcIBAAH/AQABuwEAAf8BAAG4AQAB/wEAAbQBAAH/AQABrwEAAf8BAAGr
AQAB/wEAAagBAAH/AQABoQEAAf8BAAGdAQAB/wEAAZIBAAH/AU8BUAFPAZsQAAMlATYD6QH/BAAD9gH/
A/YB/wP1Af8D9QH/A/UB/wP0Af8D9AH/A/MB/wPzAf8D8wH/A/IB/wPyAf8B8gHxAfIB/wPxAf8D8QH/
AoYB9gH/AgAB9gH/AesB6gHrAf8B7QHsAe0B/wP+Af8DPgFrFAADBQEGA1gBvAPqAf8D4wH/A/cB/wHz
AvQB/wLzAfQB/wLzAfQB/wPzAf8B8gLzAf8B8gLzAf8D8gH/AfAC8QH/Ae4C7wH/AesB7AHtAf8B6QHq
AesB/wHnAukB/wHlAugB/wHfAeAB2gH/AcIBuwHgAf8CAAHEAf8CAAGdAf8CAAGTAf8CAAGnAf8B4gHl
AeIB/wNfAc4DBQEGGAADTgGYAYwCAAH/AZoBhAEAAf8BoAGJAYQB/wGkAYwBhQH/AcoBuwG1Af8ByAG3
AbAB/wHuAekB5wH/AeUB3QHZAf8BwwGwAacB/wG6AaQBmwH/AbYBnwGUAf8BtQGeAZMB/wG2AZ8BlQH/
Ab0BqAGfAf8BzQG9AbYB/wGzAZsBkQH/AcYBtAGsAf8BuQGjAZoB/wG0AZ0BkwH/AbQBnQGTAf8BuQGj
AZgB/wGvAZgBjgH/Ab4BrQGoAf8BoAGKAYQB/wGhAYoBhAH/AZQBgAEAAf8DTwGZGAADLgFHAQABtAEA
Af8BAAG0AQAB/wEAAawBAAH/AQABpwEAAf8BAAGnAQAB/wFVAVcBVQGxGAADGQEiAQABugEAAf8BAAHM
AYMB/wEAAcIBAAH/AQABvwEAAf8BAAG8AQAB/wEAAboBAAH/AQABtgEAAf8BAAGyAQAB/wEAAa0BAAH/
AQABqQEAAf8BAAGkAQAB/wEAAaQBAAH/AV4BYQFeAeIUAAMlATYD6AH/BAAD1QH/A9AB/wPiAf8D7QH/
A/EB/wPvAf8D7gH/A+8B/wPsAf8D7gH/A+8B/wPvAf8D7QH/A+4B/wLNAe4B/wIAAfoB/wIAAf0B/wLG
AfIB/wHsAe0B7AH/AfsC+gH/Az4BaxQAAzgBWwQAA9UB/wPtAf8D9QH/A/MB/wHyAvMB/wHyAfMB8gH/
A/IB/wHxAvIB/wHxAvIB/wHwAvEB/wHvAvAB/wHuAu8B/wHsAe0B7gH/AeoB6wHsAf8B5wHpAeoB/wHl
AucB/wHlAegB5gH/Ac4B0AHdAf8BjwGMAeYB/wGMAYsBwgH/AgABlwH/AYABAAG4Af8B+AH7AfQB/wNK
AYscAANSAaABgwIAAf8BkQIAAf8BlgIAAf8BqAGRAYsB/wHpAeIB4AH/AeEB2AHVAf8B0wHFAb8B/wG5
AaMBmgH/AbEBmAGOAf8BsAGWAY0B/wGxAZgBjgH/AbEBmAGOAf8BsQGYAY8B/wGuAZQBigH/AcEBrQGl
Af8B1AHHAcIB/wHGAbQBrQH/Aa4BlAGLAf8BsQGXAY4B/wGyAZgBjgH/AbsBogGWAf8BrwGXAY0B/wG8
AasBpgH/AZoBhAEAAf8BmgGDAQAB/wGGAgAB/wNSAaAYAAM7AWMBAAG2AQAB/wEAAbYBAAH/AQABrgEA
Af8BAAGqAQAB/wEAAakBAAH/AVgBWgFYAb0cAAFOAk8BlwEAAcgBgQH/AQABwwEAAf8BAAG/AQAB/wEA
Ab4BAAH/AQABuwEAAf8BAAG4AQAB/wEAAbQBAAH/AQABsAEAAf8BAAGqAQAB/wEAAaoBAAH/AQABnAEA
Af8DKwFCFAADJQE2A+YB/wQAA8sB/wO+Af8DzwH/A9oB/wPZAf8D2QH/A90B/wPYAf8DzAH/A9wB/wPc
Af8D1AH/A9MB/wPcAf8CvgHYAf8C4QHkAf8CvQH2Af8CAAH9Af8CugHxAf8B9gH3AfYB/wM+AWsQAAMM
ARADXwHYA+4B/wPWAf8D8gH/AfIC8wH/A/IB/wHxAvIB/wHxAvIB/wHwAvEB/wLwAfEB/wHvAvAB/wHu
Au8B/wHtAe4B7wH/Ae0C7gH/AewB7QHuAf8B6gLsAf8B5wHpAeoB/wHlAecB6AH/AeMB5QHmAf8B4wHm
AeUB/wHrAe8B4AH/AZoBmwG3Af8CAAGfAf8BuAG7AcwB/wH5AfsB+AH/Ay0BRRwAA04BlQMAAf8BhgIA
Af8BoQGNAYgB/wGzAaEBmwH/AboBpwGhAf8BzAG8AbcB/wG+AakBogH/AaoBjgGFAf8BrwGVAYsB/wGs
AZEBiAH/AawBkgGJAf8BrAGSAYkB/wGtAZIBiQH/AaoBjgGFAf8BxwG1AbAB/wQAAeIB2QHWAf8BrAGR
AYkB/wGsAZEBiQH/Aa0BkwGKAf8BtAGaAZAB/wGpAY8BhwH/AbgBpQGhAf8BkQIAAf8BjgIAAf8DAAH/
A04BlhgAAzsBYwEAAbgBAAH/AQABuQEAAf8BAAGxAQAB/wEAAa0BAAH/AQABrQEAAf8BWAFaAVgBvRwA
AwYBBwFBAmoB+QEAAcwBgwH/AQABwAEAAf8BAAG/AQAB/wEAAb0BAAH/AQABugEAAf8BAAG2AQAB/wEA
AbIBAAH/AQABrwEAAf8BAAGvAQAB/wNZAb4YAAMlATYD5AH/BAADygH/A64B/wO1Af8DxwH/A74B/wO1
Af8DvwH/A7cB/wOsAf8DvAH/A7gB/wOxAf8DtAH/A7kB/wO0Af8DvAH/A80B/wIAAdIB/wIAAfQB/wPy
Af8DPgFrEAADRgF+BAAD3AH/A9wB/wP1Af8C8QHyAf8B8AHxAfIB/wHwAvEB/wHvAvAB/wHuAe8B8AH/
Ae4C7wH/Ae0B7gHvAf8B7AHtAe4B/wHsAu0B/wHrAewB7QH/AeoC7AH/AekC6wH/AegC6gH/AeYB5wHo
Af8B4wHlAeYB/wHhAeMB5AH/AecB6gHkAf8BjAGLAbwB/wIAAbUB/wHhAeQB4QH/A2IB4QMMARAcAAND
AXYDAAH/AYsCAAH/AZgBgwEAAf8BjQIAAf8BqwGUAY4B/wHzAfAB7wH/AdUByAHEAf8BrQGSAYoB/wGw
AZQBjQH/AawBjwGIAf8BqQGMAYUB/wGnAYkBgQH/AacBiQGBAf8BpgGIAYAB/wG6AaMBnQH/AfEB7QHs
Af8B3gHTAc8B/wGoAYoBgwH/AagBigGDAf8BqgGOAYYB/wGrAZABhgH/AaYBjAGFAf8BrwGdAZgB/wGF
AgAB/wGHAgAB/wMAAf8DRAF5GAADOwFjAQABugEAAf8BAAG6AQAB/wEAAbQBAAH/AQABrwEAAf8BAAGw
AQAB/wFYAVoBWAG9IAADPQFoAQABwwEAAf8BAAHGAQAB/wEAAb8BAAH/AQABvgEAAf8BAAG7AQAB/wEA
AbgBAAH/AQABtAEAAf8BAAG2AQAB/wEAAaMBAAH/AxYBHhgAAyUBNgPjAf8EAAPXAf8D0gH/A90B/wPb
Af8D3AH/A9wB/wPXAf8D3QH/A9gB/wPWAf8D1wH/A9oB/wPXAf8D1AH/A9sB/wPUAf8DzwH/A88B/wPZ
Af8D6QH/Az4BaxAAAy4BSANdAcwD+wH/A+YB/wHzAvQB/wHvAvAB/wHvAvAB/wHvAvAB/wHuAu8B/wHu
Au8B/wHtAu4B/wHsAe0B7gH/AesC7QH/AesC7AH/AeoB6wHsAf8B6AHqAesB/wHoAekB6gH/AecB6QHq
Af8B5gLoAf8B5AHmAecB/wHiAeQB5QH/AeAC4wH/AdEB0wHbAf8BzwHRAdgB/wHvAvEB/wNSAaQgAAMt
AUUDAAH/AwAB/wMAAf8BjwIAAf8B0QHFAcMB/wQAAfMC7wH/AcABqwGlAf8BvQGnAaEB/wG+AakBogH/
AcABqwGlAf8BvQGnAaEB/wG1AZwBlQH/AaoBjQGGAf8BqAGLAYMB/wG4AaEBmwH/AbcBnwGYAf8BtwGf
AZkB/wGhAYIBAAH/AaYBiQGAAf8BoAGDAQAB/wGmAY4BiAH/AaABjAGIAf8DAAH/AYECAAH/AwAB/wMv
AUkYAAM7AWMBAAG7AQAB/wEAAb0BAAH/AQABtgEAAf8BAAGyAQAB/wEAAbIBAAH/AVgBWgFYAb0kAAFb
AmEB3gEAAcwBgwH/AQABwAEAAf8BAAG/AQAB/wEAAb0BAAH/AQABugEAAf8BAAG5AQAB/wEAAbYBAAH/
A00BkhwAAyUBNgPhAf8EAAPtAf8D7QH/A+wB/wPsAf8D7AH/A+sB/wPrAf8D6wH/AesC6gH/A+sB/wPq
Af8D6AH/AuUB5gH/A+MB/wHhAeIB4QH/A98B/wPdAf8D2wH/A9gB/wPaAf8DPgFrFAADBgEHA0ABcQNa
AfUC8wH0Af8B7gHvAfAB/wHuAu8B/wHtAu8B/wHsAu4B/wHsAu0B/wHrAewB7QH/AeoB6wHsAf8B6QLr
Af8B6AHqAesB/wHoAekB6gH/AecB6AHpAf8B5gLoAf8B5QLnAf8B5AHmAecB/wHjAuYB/wHiAeQB5QH/
Ad8B4gHjAf8B3wLiAf8B3ALfAf8B9wL5Af8DOAFcIAADDAEQA1sB5AMAAf8BgwIAAf8BlgGBAQAB/wGq
AZgBlAH/AfQB8gHxAf8B2QHNAcoB/wGcAgAB/wGgAYEBAAH/AaEBgwEAAf8BpgGIAYEB/wGsAZEBigH/
AbYBnQGXAf8BvQGoAaIB/wHSAcMBvwH/AcgBtgGyAf8BnQIAAf8BuQGjAZwB/wGyAZkBkgH/AZkCAAH/
AZQCAAH/AacBkwGNAf8BjwIAAf8DAAH/AwAB/wNcAecDDgESGAADOwFjAQABvAEAAf8BAAG+AQAB/wEA
AbgBAAH/AQABtAEAAf8BAAG1AQAB/wFYAVoBWAG9JAADKAE8AQABvQEAAf8BAAHIAYEB/wEAAb8BAAH/
AQABvgEAAf8BAAG7AQAB/wEAAcEBAAH/AUgCYgH2AwQBBRwAAyUBNgLeAd8B/wL+Af0B/wH0AfMB6gH/
AuwB6wH/AuoB6wH/AecB5gHrAf8C9QHoAf8C9wHnAf8C5QHqAf8D6gH/A+oB/wPpAf8D5wH/AeQC5QH/
A98B/wPUAf8DywH/A8oB/wPMAf8DxwH/A7sB/wPQAf8DOgFiGAADDwETA14B7QHxAfIB8wH/Ae0C7gH/
AewB7QHuAf8B6wHsAe0B/wHqAuwB/wHqAesB7AH/AekC6wH/AegB6QHrAf8B5wLpAf8B5gLoAf8B5QHn
AegB/wHkAeYB5wH/AeMC5gH/AeMB5QHmAf8B4gHkAeUB/wHhAuQB/wHgAeIB4wH/Ad8C4gH/AdwB3wHg
Af8B3QHgAeEB/wNeAfADFgEeJAADTAGRAwAB/wMAAf8DAAH/AwAB/wGvAZ0BmAH/AbwBqQGlAf8BnQIA
Af8BnwGBAQAB/wGjAYUBAAH/AaYBiAGCAf8BpwGJAYMB/wGnAYkBgwH/AaYBiQGCAf8BygG6AbYB/wHY
AcwByQH/AboBowGeAf8BpAGHAYAB/wG4AaIBnAH/AaUBjQGHAf8BjgIAAf8BpwGTAY4B/wMAAf8DAAH/
AwAB/wNOAZUcAAM7AWMBAAG+AQAB/wEAAcABAAH/AQABuQEAAf8BAAG2AQAB/wEAAbgBAAH/AVgBWgFY
Ab0oAAFXAlkBuQEAAcsBgwH/AQABwgEAAf8BAAG/AQAB/wEAAcEBAAH/AQABuwEAAf8DOwFjIAADJQE2
At8B3gH/AvYB/AH/AuIB6QH/AvEB6AH/AuYB6QP/AecB/wK5Ae0B/wKdAfAD/wHnAf8B6AHpAegB/wPn
Af8B5QLmAf8D5AH/AeIC4QH/A9UB/wG4AbkBuAH/A5wB/wOUAf8DlQH/A4oB/wOpAf8DYgHvAxUBHRgA
Ay0BRQP9Af8B7ALtAf8B6wHsAe0B/wHqAesB7AH/AekC6wH/AegB6QHrAf8B5wHpAeoB/wHnAegB6QH/
AeYC6AH/AeUC5wH/AeQB5gHnAf8B4wHlAeYB/wHiAeQB5QH/AeEC5AH/AeAB4wHkAf8B3wHiAeMB/wHe
AeEB4gH/Ad0B4AHhAf8B3QHgAeEB/wHbAd4B3wH/AekC7AH/A1kBuygAAxsBJQJNAT4B+gMAAf8DAAH/
AwAB/wGZAYUBgAH/AZoBhAEAAf8BtQGgAZsB/wGcAgAB/wGlAYkBhAH/AakBjQGHAf8BqQGOAYgB/wGp
AY4BiAH/AagBjAGGAf8BswGbAZYB/wGyAZoBlAH/AbUBnQGYAf8BxgGzAa4B/wGkAYoBhAH/AakBlAGP
Af8B4AHYAdYB/wG4AawBqgH/AwAB/wMAAf8BTQI+AfoDHQEoHAADOwFjAQABvwEAAf8BAAHBAQAB/wEA
AbsBAAH/AQABuQEAAf8BAAG6AQAB/wFYAloBvSgAAxMBGgEAAbUBAAH/AQABygGCAf8BAAG/AQAB/wEA
AccBAAH/AV8CYQHaJAADJQE2At8B3AP/AfoB/wIAAfQB/wLVAegD/wHkA/8B4QH/AgAB9AH/AoMB8gP/
AeQB/wLrAeYB/wHmAeUB5AH/AuIB4wH/A+EB/wPfAf8DzwH/A6EB/wMAAf8DAAH/AwAB/wOZAf8DvAH/
Ay8BSRwAA0IBdAH+A/8B6QHqAesB/wHpAeoB6wH/AegC6gH/AecC6QH/AeYB6AHpAf8B5QLnAf8B5AHm
AecB/wHjAuYB/wHjAuUB/wHiAeQB5QH/AeEB4wHkAf8B4AHiAeMB/wHfAeEB4gH/Ad4B4QHiAf8B3QHg
AeEB/wHcAd8B4AH/AdsB3gHfAf8B2gHdAd4B/wHYAdsB3AH/AfUB9wH4Af8DQgF1LAADTAGQAwAB/wMA
Af8DAAH/AZMBgQEAAf8BgwIAAf8BuQGqAacB/wGpAZIBjgH/AZ8BhgGCAf8BpAGKAYYB/wGmAYsBhwH/
AacBjAGHAf8BpwGLAYcB/wGzAZsBlgH/AbYBoAGbAf8BrAGQAYsB/wGxAZkBlAH/AbwBrQGpAf8BkgIA
Af8B1QHNAcwB/wGzAagBpgH/AwAB/wMAAf8DTQGTIAADOwFjAQABvwEAAf8BAAHCAQAB/wEAAb0BAAH/
AQABugEAAf8BAAG9AQAB/wFYAloBvSwAA0sBjAEAAccBgAH/AQABywGDAf8BAAG7AQAB/wMmATgkAAMl
ATYD2wP/AfUB/wKGAfEB/wIAAfgB/wK/AesB/wKOAe8B/wIAAfYB/wLjAeYB/wLhAeYB/wLYAeUB/wLf
AeIB/wLiAeAB/wPfAf8D3AH/A8IB/wOaAf8DzAH/A90B/wPyAf8D5wH/AzABSiAAA1IBpAH3AvkB/wHm
AegB6QH/AeYB6AHpAf8B5gHnAegB/wHlAecB6AH/AeQB5gHnAf8B4wHlAeYB/wHiAeUB5gH/AeIB5AHl
Af8B4QHjAeQB/wHgAeIB4wH/Ad8C4gH/Ad4B4QHiAf8B3QHgAeEB/wHcAd8B4AH/AdsB3gHfAf8B2gHd
Ad4B/wHZAd0B3gH/AdgB2wHcAf8B2AHcAd0B/wNfAfsDIgExLAADCgENA10B1AMAAf8DAAH/AYkCAAH/
AZcBhQGBAf8BpgGTAZAB/wHLAbwBuQH/AaIBjQGJAf8BowGMAYgB/wGlAY0BiQH/AaUBjQGJAf8BpAGM
AYgB/wGoAZMBjwH/AbUBogGfAf8BogGMAYkB/wGeAYoBhgH/AaIBkQGOAf8B0wHKAckB/wGgAZEBjwH/
AwAB/wMAAf8DXAHWAwsBDiAAAzsBYwEAAcABAAH/AQABwwEAAf8BAAG+AQAB/wEAAbwBAAH/AQABwAEA
Af8BWAJaAb0sAAQCA2IB7gEAAdIBiAH/A1YBsygAAyUBNgPZA/8B9QH/AssB6AH/AgAB9wH/ApcB7QH/
AgAB/AH/Aq4B6wH/AtgB5gH/AgAB8wH/AgAB8AH/AsMB4wH/Au4B2wH/A9sB/wPZAf8DuwH/A5gB/wPy
Af8EAAP1Af8DMAFKIAADBgEHA2EB2gHwAvIB/wHlAucB/wHjAuYB/wHjAeUB5gH/AeMB5QHmAf8B4gLl
Af8B4gHkAeUB/wHhAeMB5AH/AeAB4gHjAf8B3wLiAf8B3gHhAeIB/wHdAeAB4QH/AdwB3wHgAf8B2wHe
Ad8B/wHaAd0B3gH/AdkB3AHdAf8B2AHcAd0B/wHXAdsB3AH/AdYB2QHaAf8B4AHjAeQB/wNeAdIDBQEG
MAADHQEpA2AB6AMAAf8DAAH/AakBnQGbAf8BngGNAYsB/wG4AaoBpwH/Ab4BsgGwAf8BnAGKAYcB/wGd
AYoBhwH/AZ0BigGHAf8BnAGJAYYB/wGiAY8BiwH/AbcBpwGlAf8BoAGPAY0B/wGiAZIBjwH/AZ8BkAGN
Af8B5gLhAf8BnAGQAY4B/wMAAf8DXQHqAx4BKyQAAz4BawEAAcYBgAH/AQABzAGDAf8BAAHGAQAB/wEA
AcUBAAH/AQAByAEAAf8DXQHMMAABQQJCAXMBAAGoAQAB/wMSARgoAAMlATYD2AH/AvUB9gH/AvkB4gH/
AgAB8AH/AqUB6gH/AgAB8AH/AucB4wH/A+IB/wLUAeIB/wLTAeAB/wLZAdwB/wLbAdoB/wPZAf8D1gH/
A7EB/wOYAf8EAAPwAf8DMAFLJAADDAEPA1gBvANeAe0C/QH+Af8B+wH8Af0B/wH0AfUB9gH/AeoB7AHt
Af8B4wHlAeYB/wHfAuIB/wHdAuAB/wHcAd8B4AH/AdwB3wHgAf8B2wHeAd8B/wHbAd4B3wH/AdoB3QHe
Af8B2QHcAd0B/wHYAdsB3AH/AdcB2gHbAf8B1gHZAdsB/wHVAdkB2gH/AdIB1gHXAf8B7gHwAfEB/wNM
AY44AAMiATEDWwHeAwAB/wGhAZUBkwH/AasBnwGdAf8BpAGWAZQB/wG9AbEBrwH/Ab4BswGxAf8BoAGR
AY4B/wGhAZEBjgH/AaYBlQGSAf8BpAGTAZAB/wGyAaUBowH/Aa4BoQGfAf8BpQGXAZQB/wG9AbIBsAH/
AaEBlgGTAf8DAAH/A2AB4AMkATQoAAM5AV4BWgJnAfIBWgJnAfIBWgJnAfIBWgJnAfIBWgJnAfIDVgGz
MAADDAEPAzQBVCwAAyUBNgPXAf8C9AH1A/8B3wH/AroB6AH/AgAC/wKWAewD/wHcAf8D3wH/AuIB3QH/
AuAB2wH/AtoB2QH/AtYB1wH/A9cB/wPQAf8DoAH/A7sB/wPvAf8DMAFKLAAEAQMTARoDKQQ+AWsDUQGc
A10ByQNlAewB+gL7Af8B9wL5Af8B7wHxAfIB/wHkAecB6AH/AdwB3wHgAf8B2AHbAdwB/wHVAdkB2gH/
AdQB2AHZAf8B1AHYAdoB/wHUAdgB2QH/AdMB1wHZAf8B0wHWAdgB/wHRAdUB1gH/AfcC+AH/Ay4BRzwA
AxUBHQNWAbIDAAH/AZQBiAGGAf8BuAGtAasB/wGxAaUBowH/AcEBtwG1Af8BxgG9AbsB/wGwAaIBoAH/
AagBmgGYAf8BqAGcAZoB/wGuAaIBoAH/AcIBuAG2Af8BwQG3AbUB/wGqAaABngH/AwAB/wNVAbQDFgEe
rAADJQE3A9cB/wP0Af8C6AHiAf8C7AHiAf8CAAH2Af8CugHlAf8C8QHdAf8D3QH/A9oB/wPYAf8D1wH/
A9UB/wPSAf8DwAH/A7UB/wPIAf8DMAFLSAADEgEYAygBPAM+AWoDUAGbA1oBxwNdAeoB+AL5Af8B9AL2
Af8B6gHtAe4B/wHeAeIB4wH/AdUB2QHbAf8B0QHVAdYB/wHNAdIB0wH/AdQB2QHaAf8DZQHlAwwBEEQA
AzYBWANdAckDAAH/AaMBmAGWAf8BvQGzAbEB/wHTAcoByAH/Ad4B1gHVAf8B0wHKAckB/wHLAcEBwAH/
AcIBtwG2Af8BtwGuAa0B/wGiApoB/wNbAcoDNwFatAADIAEtA6gB/QwAAv4C/xAAA/0B/wP7Af8D9gH/
AekC6gH/A98B/wPFAf8DMAFMYAADEQEWAycBOgM9AWgDTwGZA1sBxQNjAekB9gH3AfgB/wHvAfIB8wH/
AfUB9wH4Af8DVgGrTAAEAgMqAT8DSQGHA1gBvQNdAdwDYQHrA2EB6wNhAdwDWQG+A0kBiAMqAUAEArgA
AwsBDgNIAYMDTgGUA0oBigNKAYoDSgGKA0oBigNKAYoDSgGKA0oBigNKAYoDSgGKA0oBigNMAZADTAGP
AyABLXgAAw8BFAMmATgDPAFmA1EBnAMuAUj/ADEACAFYAAgBGAAEAQMDAQQDAwEEAwMBBAMDAQQDAwEE
Af8BAAGmAQAB/wEAAaABAAH/AQABmgEAAf8BAAGUAQAB/wEAAY4BAAH/AQABiAEAAf8BAAGCAQAB/wNl
AfEDBgEHAwwBDwNKAYkDRAF5A0QBeQNEAXgDXQHRAQABvgEAAf8BAAG2AQAB/wEAAbEBAAH/AQABrgEA
Af8BAAGqAQAB/wNYAbcDRAF4A0QBeQNEAXkDQwF2EAADJQE2A+oB/wQAA+EB/wPgAf8D5wH/A+IB/wPk
Af8D5gH/A+AB/wPmAf8D4QH/A98B/wHhAeAB4QH/A+MB/wPgAf8D3gH/A+UB/wPgAf8D3AH/A90B/wPm
Af8EAAM+AWsYAAMpAT4DagH5A+AB/wP3Af8B9AH1AfQB/wP0Af8B8wL0Af8B8wL0Af8B8wL0Af8C8wH0
Af8B9QH0AfIB/wH3AfUB8gH/AvMB8gH/A+4B/wHoAeoB6wH/AegC6QH/AdwC2AH/Ae0C3gH/AeIBzQHK
Af8DAAH/AwAB/wIAAZ0B/wIAAZwB/wG4AbkBywH/A2oB+QMiATEYAANFAXwBkgIAAf8BogGMAYcB/wGm
AZABiwH/AaoBlAGNAf8ByQG5AbMB/wG5AaMBmQH/AcEBrgGlAf8B1wHLAcQB/wHMAbsBswH/AdEBwwG7
Af8B0gHEAbwB/wHMAb0BtAH/AdQBxwHAAf8B8wHwAe4B/wHmAd4B2gH/Ab0BqAGeAf8BwAGtAaMB/wHJ
AbkBsAH/AbgBoQGWAf8BuAGhAZcB/wG3AaIBlwH/Ab4BrAGkAf8B4wHbAdkB/wHGAbgBtAH/Ab8BrgGp
Af8BoQGOAYoB/wNGAX4IAANBAXIDQgF1A0IBdANCAXQDUwGqAQABtQEAAf8BAAGwAQAB/wEAAakBAAH/
AQABpAEAAf8BAAGiAQAB/wNgAdsDQgF0A0IBdANCAXQDSQGFAwsBDgMGAQcDXgHwAQABywGDAf8BAAHF
AQAB/wEAAcQBAAH/AQABwgEAAf8BAAG7AQAB/wEAAbgBAAH/AQABtAEAAf8BAAGvAQAB/wEAAasBAAH/
AQABqAEAAf8BAAGhAQAB/wEAAZ0BAAH/AQABkgEAAf8BTwFQAU8BmxAAAyUBNgPpAf8EAAP2Af8D9gH/
A/UB/wP1Af8D9QH/A/QB/wP0Af8D8wH/A/MB/wPzAf8D8gH/A/IB/wHyAfEB8gH/A/EB/wPxAf8ChgH2
Af8CAAH2Af8B6wHqAesB/wHtAewB7QH/A/4B/wM+AWsUAAMFAQYDWAG8A+oB/wPjAf8D9wH/AfMC9AH/
AvMB9AH/AvMB9AH/A/MB/wHyAvMB/wHyAvMB/wPyAf8B8ALxAf8B7gLvAf8B6wHsAe0B/wHpAeoB6wH/
AecC6QH/AeUC6AH/Ad8B4AHaAf8BwgG7AeAB/wIAAcQB/wIAAZ0B/wIAAZMB/wIAAacB/wHiAeUB4gH/
A18BzgMFAQYYAANOAZgBjAIAAf8BmgGEAQAB/wGgAYkBhAH/AaQBjAGFAf8BygG7AbUB/wHIAbcBsAH/
Ae4B6QHnAf8B5QHdAdkB/wHDAbABpwH/AboBpAGbAf8BtgGfAZQB/wG1AZ4BkwH/AbYBnwGVAf8BvQGo
AZ8B/wHNAb0BtgH/AbMBmwGRAf8BxgG0AawB/wG5AaMBmgH/AbQBnQGTAf8BtAGdAZMB/wG5AaMBmAH/
Aa8BmAGOAf8BvgGtAagB/wGgAYoBhAH/AaEBigGEAf8BlAGAAQAB/wNPAZkYAAMuAUcBAAG0AQAB/wEA
AbQBAAH/AQABrAEAAf8BAAGnAQAB/wEAAacBAAH/AVUBVwFVAbEYAAMZASIBAAG6AQAB/wEAAcwBgwH/
AQABwgEAAf8BAAG/AQAB/wEAAbwBAAH/AQABugEAAf8BAAG2AQAB/wEAAbIBAAH/AQABrQEAAf8BAAGp
AQAB/wEAAaQBAAH/AQABpAEAAf8BXgFhAV4B4hQAAyUBNgPoAf8EAAPVAf8D0AH/A+IB/wPtAf8D8QH/
A+8B/wPuAf8D7wH/A+wB/wPuAf8D7wH/A+8B/wPtAf8D7gH/As0B7gH/AgAB+gH/AgAB/QH/AsYB8gH/
AewB7QHsAf8B+wL6Af8DPgFrFAADOAFbBAAD1QH/A+0B/wP1Af8D8wH/AfIC8wH/AfIB8wHyAf8D8gH/
AfEC8gH/AfEC8gH/AfAC8QH/Ae8C8AH/Ae4C7wH/AewB7QHuAf8B6gHrAewB/wHnAekB6gH/AeUC5wH/
AeUB6AHmAf8BzgHQAd0B/wGPAYwB5gH/AYwBiwHCAf8CAAGXAf8BgAEAAbgB/wH4AfsB9AH/A0oBixwA
A1IBoAGDAgAB/wGRAgAB/wGWAgAB/wGoAZEBiwH/AekB4gHgAf8B4QHYAdUB/wHTAcUBvwH/AbkBowGa
Af8BsQGYAY4B/wGwAZYBjQH/AbEBmAGOAf8BsQGYAY4B/wGxAZgBjwH/Aa4BlAGKAf8BwQGtAaUB/wHU
AccBwgH/AcYBtAGtAf8BrgGUAYsB/wGxAZcBjgH/AbIBmAGOAf8BuwGiAZYB/wGvAZcBjQH/AbwBqwGm
Af8BmgGEAQAB/wGaAYMBAAH/AYYCAAH/A1IBoBgAAzsBYwEAAbYBAAH/AQABtgEAAf8BAAGuAQAB/wEA
AaoBAAH/AQABqQEAAf8BWAFaAVgBvRwAAU4CTwGXAQAByAGBAf8BAAHDAQAB/wEAAb8BAAH/AQABvgEA
Af8BAAG7AQAB/wEAAbgBAAH/AQABtAEAAf8BAAGwAQAB/wEAAaoBAAH/AQABqgEAAf8BAAGcAQAB/wMr
AUIUAAMlATYD5gH/BAADywH/A74B/wPPAf8D2gH/A9kB/wPZAf8D3QH/A9gB/wPMAf8D3AH/A9wB/wPU
Af8D0wH/A9wB/wK+AdgB/wLhAeQB/wK9AfYB/wIAAf0B/wK6AfEB/wH2AfcB9gH/Az4BaxAAAwwBEANf
AdgD7gH/A9YB/wPyAf8B8gLzAf8D8gH/AfEC8gH/AfEC8gH/AfAC8QH/AvAB8QH/Ae8C8AH/Ae4C7wH/
Ae0B7gHvAf8B7QLuAf8B7AHtAe4B/wHqAuwB/wHnAekB6gH/AeUB5wHoAf8B4wHlAeYB/wHjAeYB5QH/
AesB7wHgAf8BmgGbAbcB/wIAAZ8B/wG4AbsBzAH/AfkB+wH4Af8DLQFFHAADTgGVAwAB/wGGAgAB/wGh
AY0BiAH/AbMBoQGbAf8BugGnAaEB/wHMAbwBtwH/Ab4BqQGiAf8BqgGOAYUB/wGvAZUBiwH/AawBkQGI
Af8BrAGSAYkB/wGsAZIBiQH/Aa0BkgGJAf8BqgGOAYUB/wHHAbUBsAH/BAAB4gHZAdYB/wGsAZEBiQH/
AawBkQGJAf8BrQGTAYoB/wG0AZoBkAH/AakBjwGHAf8BuAGlAaEB/wGRAgAB/wGOAgAB/wMAAf8DTgGW
GAADOwFjAQABuAEAAf8BAAG5AQAB/wEAAbEBAAH/AQABrQEAAf8BAAGtAQAB/wFYAVoBWAG9HAADBgEH
AUECagH5AQABzAGDAf8BAAHAAQAB/wEAAb8BAAH/AQABvQEAAf8BAAG6AQAB/wEAAbYBAAH/AQABsgEA
Af8BAAGvAQAB/wEAAa8BAAH/A1kBvhgAAyUBNgPkAf8EAAPKAf8DrgH/A7UB/wPHAf8DvgH/A7UB/wO/
Af8DtwH/A6wB/wO8Af8DuAH/A7EB/wO0Af8DuQH/A7QB/wO8Af8DzQH/AgAB0gH/AgAB9AH/A/IB/wM+
AWsQAANGAX4EAAPcAf8D3AH/A/UB/wLxAfIB/wHwAfEB8gH/AfAC8QH/Ae8C8AH/Ae4B7wHwAf8B7gLv
Af8B7QHuAe8B/wHsAe0B7gH/AewC7QH/AesB7AHtAf8B6gLsAf8B6QLrAf8B6ALqAf8B5gHnAegB/wHj
AeUB5gH/AeEB4wHkAf8B5wHqAeQB/wGMAYsBvAH/AgABtQH/AeEB5AHhAf8DYgHhAwwBEBwAA0MBdgMA
Af8BiwIAAf8BmAGDAQAB/wGNAgAB/wGrAZQBjgH/AfMB8AHvAf8B1QHIAcQB/wGtAZIBigH/AbABlAGN
Af8BrAGPAYgB/wGpAYwBhQH/AacBiQGBAf8BpwGJAYEB/wGmAYgBgAH/AboBowGdAf8B8QHtAewB/wHe
AdMBzwH/AagBigGDAf8BqAGKAYMB/wGqAY4BhgH/AasBkAGGAf8BpgGMAYUB/wGvAZ0BmAH/AYUCAAH/
AYcCAAH/AwAB/wNEAXkYAAM7AWMBAAG6AQAB/wEAAboBAAH/AQABtAEAAf8BAAGvAQAB/wEAAbABAAH/
AVgBWgFYAb0gAAM9AWgBAAHDAQAB/wEAAcYBAAH/AQABvwEAAf8BAAG+AQAB/wEAAbsBAAH/AQABuAEA
Af8BAAG0AQAB/wEAAbYBAAH/AQABowEAAf8DFgEeGAADJQE2A+MB/wQAA9cB/wPSAf8D3QH/A9sB/wPc
Af8D3AH/A9cB/wPdAf8D2AH/A9YB/wPXAf8D2gH/A9cB/wPUAf8D2wH/A9QB/wPPAf8DzwH/A9kB/wPp
Af8DPgFrEAADLgFIA10BzAP7Af8D5gH/AfMC9AH/Ae8C8AH/Ae8C8AH/Ae8C8AH/Ae4C7wH/Ae4C7wH/
Ae0C7gH/AewB7QHuAf8B6wLtAf8B6wLsAf8B6gHrAewB/wHoAeoB6wH/AegB6QHqAf8B5wHpAeoB/wHm
AugB/wHkAeYB5wH/AeIB5AHlAf8B4ALjAf8B0QHTAdsB/wHPAdEB2AH/Ae8C8QH/A1IBpCAAAy0BRQMA
Af8DAAH/AwAB/wGPAgAB/wHRAcUBwwH/BAAB8wLvAf8BwAGrAaUB/wG9AacBoQH/Ab4BqQGiAf8BwAGr
AaUB/wG9AacBoQH/AbUBnAGVAf8BqgGNAYYB/wGoAYsBgwH/AbgBoQGbAf8BtwGfAZgB/wG3AZ8BmQH/
AaEBggEAAf8BpgGJAYAB/wGgAYMBAAH/AaYBjgGIAf8BoAGMAYgB/wMAAf8BgQIAAf8DAAH/Ay8BSRgA
AzsBYwEAAbsBAAH/AQABvQEAAf8BAAG2AQAB/wEAAbIBAAH/AQABsgEAAf8BWAFaAVgBvSQAAVsCYQHe
AQABzAGDAf8BAAHAAQAB/wEAAb8BAAH/AQABvQEAAf8BAAG6AQAB/wEAAbkBAAH/AQABtgEAAf8DTQGS
HAADJQE2A+EB/wQAA+0B/wPtAf8D7AH/A+wB/wPsAf8D6wH/A+sB/wPrAf8B6wLqAf8D6wH/A+oB/wPo
Af8C5QHmAf8D4wH/AeEB4gHhAf8D3wH/A90B/wPbAf8D2AH/A9oB/wM+AWsUAAMGAQcDQAFxA1oB9QLz
AfQB/wHuAe8B8AH/Ae4C7wH/Ae0C7wH/AewC7gH/AewC7QH/AesB7AHtAf8B6gHrAewB/wHpAusB/wHo
AeoB6wH/AegB6QHqAf8B5wHoAekB/wHmAugB/wHlAucB/wHkAeYB5wH/AeMC5gH/AeIB5AHlAf8B3wHi
AeMB/wHfAuIB/wHcAt8B/wH3AvkB/wM4AVwgAAMMARADWwHkAwAB/wGDAgAB/wGWAYEBAAH/AaoBmAGU
Af8B9AHyAfEB/wHZAc0BygH/AZwCAAH/AaABgQEAAf8BoQGDAQAB/wGmAYgBgQH/AawBkQGKAf8BtgGd
AZcB/wG9AagBogH/AdIBwwG/Af8ByAG2AbIB/wGdAgAB/wG5AaMBnAH/AbIBmQGSAf8BmQIAAf8BlAIA
Af8BpwGTAY0B/wGPAgAB/wMAAf8DAAH/A1wB5wMOARIYAAM7AWMBAAG8AQAB/wEAAb4BAAH/AQABuAEA
Af8BAAG0AQAB/wEAAbUBAAH/AVgBWgFYAb0kAAMoATwBAAG9AQAB/wEAAcgBgQH/AQABvwEAAf8BAAG+
AQAB/wEAAbsBAAH/AQABwQEAAf8BSAJiAfYDBAEFHAADJQE2At4B3wH/Av4B/QH/AfQB8wHqAf8C7AHr
Af8C6gHrAf8B5wHmAesB/wL1AegB/wL3AecB/wLlAeoB/wPqAf8D6gH/A+kB/wPnAf8B5ALlAf8D3wH/
A9QB/wPLAf8DygH/A8wB/wPHAf8DuwH/A9AB/wM6AWIYAAMPARMDXgHtAfEB8gHzAf8B7QLuAf8B7AHt
Ae4B/wHrAewB7QH/AeoC7AH/AeoB6wHsAf8B6QLrAf8B6AHpAesB/wHnAukB/wHmAugB/wHlAecB6AH/
AeQB5gHnAf8B4wLmAf8B4wHlAeYB/wHiAeQB5QH/AeEC5AH/AeAB4gHjAf8B3wLiAf8B3AHfAeAB/wHd
AeAB4QH/A14B8AMWAR4kAANMAZEDAAH/AwAB/wMAAf8DAAH/Aa8BnQGYAf8BvAGpAaUB/wGdAgAB/wGf
AYEBAAH/AaMBhQEAAf8BpgGIAYIB/wGnAYkBgwH/AacBiQGDAf8BpgGJAYIB/wHKAboBtgH/AdgBzAHJ
Af8BugGjAZ4B/wGkAYcBgAH/AbgBogGcAf8BpQGNAYcB/wGOAgAB/wGnAZMBjgH/AwAB/wMAAf8DAAH/
A04BlRwAAzsBYwEAAb4BAAH/AQABwAEAAf8BAAG5AQAB/wEAAbYBAAH/AQABuAEAAf8BWAFaAVgBvSgA
AVcCWQG5AQABywGDAf8BAAHCAQAB/wEAAb8BAAH/AQABwQEAAf8BAAG7AQAB/wM7AWMgAAMlATYC3wHe
Af8C9gH8Af8C4gHpAf8C8QHoAf8C5gHpA/8B5wH/ArkB7QH/Ap0B8AP/AecB/wHoAekB6AH/A+cB/wHl
AuYB/wPkAf8B4gLhAf8D1QH/AbgBuQG4Af8DnAH/A5QB/wOVAf8DigH/A6kB/wNiAe8DFQEdGAADLQFF
A/0B/wHsAu0B/wHrAewB7QH/AeoB6wHsAf8B6QLrAf8B6AHpAesB/wHnAekB6gH/AecB6AHpAf8B5gLo
Af8B5QLnAf8B5AHmAecB/wHjAeUB5gH/AeIB5AHlAf8B4QLkAf8B4AHjAeQB/wHfAeIB4wH/Ad4B4QHi
Af8B3QHgAeEB/wHdAeAB4QH/AdsB3gHfAf8B6QLsAf8DWQG7KAADGwElAk0BQAH6AwAB/wMAAf8DAAH/
AZkBhQGAAf8BmgGEAQAB/wG1AaABmwH/AZwCAAH/AaUBiQGEAf8BqQGNAYcB/wGpAY4BiAH/AakBjgGI
Af8BqAGMAYYB/wGzAZsBlgH/AbIBmgGUAf8BtQGdAZgB/wHGAbMBrgH/AaQBigGEAf8BqQGUAY8B/wHg
AdgB1gH/AbgBrAGqAf8DAAH/AwAB/wFNAkAB+gMdASgcAAM7AWMBAAG/AQAB/wEAAcEBAAH/AQABuwEA
Af8BAAG5AQAB/wEAAboBAAH/AVgCWgG9KAADEwEaAQABtQEAAf8BAAHKAYIB/wEAAb8BAAH/AQABxwEA
Af8BXwJhAdokAAMlATYC3wHcA/8B+gH/AgAB9AH/AtUB6AP/AeQD/wHhAf8CAAH0Af8CgwHyA/8B5AH/
AusB5gH/AeYB5QHkAf8C4gHjAf8D4QH/A98B/wPPAf8DoQH/AwAB/wMAAf8DAAH/A5kB/wO8Af8DLwFJ
HAADQgF0Af4D/wHpAeoB6wH/AekB6gHrAf8B6ALqAf8B5wLpAf8B5gHoAekB/wHlAucB/wHkAeYB5wH/
AeMC5gH/AeMC5QH/AeIB5AHlAf8B4QHjAeQB/wHgAeIB4wH/Ad8B4QHiAf8B3gHhAeIB/wHdAeAB4QH/
AdwB3wHgAf8B2wHeAd8B/wHaAd0B3gH/AdgB2wHcAf8B9QH3AfgB/wNCAXUsAANMAZADAAH/AwAB/wMA
Af8BkwGBAQAB/wGDAgAB/wG5AaoBpwH/AakBkgGOAf8BnwGGAYIB/wGkAYoBhgH/AaYBiwGHAf8BpwGM
AYcB/wGnAYsBhwH/AbMBmwGWAf8BtgGgAZsB/wGsAZABiwH/AbEBmQGUAf8BvAGtAakB/wGSAgAB/wHV
Ac0BzAH/AbMBqAGmAf8DAAH/AwAB/wNNAZMgAAM7AWMBAAG/AQAB/wEAAcIBAAH/AQABvQEAAf8BAAG6
AQAB/wEAAb0BAAH/AVgCWgG9LAADSwGMAQABxwGAAf8BAAHLAYMB/wEAAbsBAAH/AyYBOCQAAyUBNgPb
A/8B9QH/AoYB8QH/AgAB+AH/Ar8B6wH/Ao4B7wH/AgAB9gH/AuMB5gH/AuEB5gH/AtgB5QH/At8B4gH/
AuIB4AH/A98B/wPcAf8DwgH/A5oB/wPMAf8D3QH/A/IB/wPnAf8DMAFKIAADUgGkAfcC+QH/AeYB6AHp
Af8B5gHoAekB/wHmAecB6AH/AeUB5wHoAf8B5AHmAecB/wHjAeUB5gH/AeIB5QHmAf8B4gHkAeUB/wHh
AeMB5AH/AeAB4gHjAf8B3wLiAf8B3gHhAeIB/wHdAeAB4QH/AdwB3wHgAf8B2wHeAd8B/wHaAd0B3gH/
AdkB3QHeAf8B2AHbAdwB/wHYAdwB3QH/A18B+wMiATEsAAMKAQ0DXQHUAwAB/wMAAf8BiQIAAf8BlwGF
AYEB/wGmAZMBkAH/AcsBvAG5Af8BogGNAYkB/wGjAYwBiAH/AaUBjQGJAf8BpQGNAYkB/wGkAYwBiAH/
AagBkwGPAf8BtQGiAZ8B/wGiAYwBiQH/AZ4BigGGAf8BogGRAY4B/wHTAcoByQH/AaABkQGPAf8DAAH/
AwAB/wNcAdYDCwEOIAADOwFjAQABwAEAAf8BAAHDAQAB/wEAAb4BAAH/AQABvAEAAf8BAAHAAQAB/wFY
AloBvSwABAIDYgHuAQAB0gGIAf8DVgGzKAADJQE2A9kD/wH1Af8CywHoAf8CAAH3Af8ClwHtAf8CAAH8
Af8CrgHrAf8C2AHmAf8CAAHzAf8CAAHwAf8CwwHjAf8C7gHbAf8D2wH/A9kB/wO7Af8DmAH/A/IB/wQA
A/UB/wMwAUogAAMGAQcDYQHaAfAC8gH/AeUC5wH/AeMC5gH/AeMB5QHmAf8B4wHlAeYB/wHiAuUB/wHi
AeQB5QH/AeEB4wHkAf8B4AHiAeMB/wHfAuIB/wHeAeEB4gH/Ad0B4AHhAf8B3AHfAeAB/wHbAd4B3wH/
AdoB3QHeAf8B2QHcAd0B/wHYAdwB3QH/AdcB2wHcAf8B1gHZAdoB/wHgAeMB5AH/A14B0gMFAQYwAAMd
ASkDYAHoAwAB/wMAAf8BqQGdAZsB/wGeAY0BiwH/AbgBqgGnAf8BvgGyAbAB/wGcAYoBhwH/AZ0BigGH
Af8BnQGKAYcB/wGcAYkBhgH/AaIBjwGLAf8BtwGnAaUB/wGgAY8BjQH/AaIBkgGPAf8BnwGQAY0B/wHm
AuEB/wGcAZABjgH/AwAB/wNdAeoDHgErJAADPgFrAQABxgGAAf8BAAHMAYMB/wEAAcYBAAH/AQABxQEA
Af8BAAHIAQAB/wNdAcwwAAFBAkIBcwEAAagBAAH/AxIBGCgAAyUBNgPYAf8C9QH2Af8C+QHiAf8CAAHw
Af8CpQHqAf8CAAHwAf8C5wHjAf8D4gH/AtQB4gH/AtMB4AH/AtkB3AH/AtsB2gH/A9kB/wPWAf8DsQH/
A5gB/wQAA/AB/wMwAUskAAMMAQ8DWAG8A14B7QL9Af4B/wH7AfwB/QH/AfQB9QH2Af8B6gHsAe0B/wHj
AeUB5gH/Ad8C4gH/Ad0C4AH/AdwB3wHgAf8B3AHfAeAB/wHbAd4B3wH/AdsB3gHfAf8B2gHdAd4B/wHZ
AdwB3QH/AdgB2wHcAf8B1wHaAdsB/wHWAdkB2wH/AdUB2QHaAf8B0gHWAdcB/wHuAfAB8QH/A0wBjjgA
AyIBMQNbAd4DAAH/AaEBlQGTAf8BqwGfAZ0B/wGkAZYBlAH/Ab0BsQGvAf8BvgGzAbEB/wGgAZEBjgH/
AaEBkQGOAf8BpgGVAZIB/wGkAZMBkAH/AbIBpQGjAf8BrgGhAZ8B/wGlAZcBlAH/Ab0BsgGwAf8BoQGW
AZMB/wMAAf8DYAHgAyQBNCgAAzkBXgFaAmcB8gFaAmcB8gFaAmcB8gFaAmcB8gFaAmcB8gNWAbMwAAMM
AQ8DNAFULAADJQE2A9cB/wL0AfUD/wHfAf8CugHoAf8CAAL/ApYB7AP/AdwB/wPfAf8C4gHdAf8C4AHb
Af8C2gHZAf8C1gHXAf8D1wH/A9AB/wOgAf8DuwH/A+8B/wMwAUosAAQBAxMBGgMpBD4BawNRAZwDXQHJ
A2UB7AH6AvsB/wH3AvkB/wHvAfEB8gH/AeQB5wHoAf8B3AHfAeAB/wHYAdsB3AH/AdUB2QHaAf8B1AHY
AdkB/wHUAdgB2gH/AdQB2AHZAf8B0wHXAdkB/wHTAdYB2AH/AdEB1QHWAf8B9wL4Af8DLgFHPAADFQEd
A1YBsgMAAf8BlAGIAYYB/wG4Aa0BqwH/AbEBpQGjAf8BwQG3AbUB/wHGAb0BuwH/AbABogGgAf8BqAGa
AZgB/wGoAZwBmgH/Aa4BogGgAf8BwgG4AbYB/wHBAbcBtQH/AaoBoAGeAf8DAAH/A1UBtAMWAR6sAAMl
ATcD1wH/A/QB/wLoAeIB/wLsAeIB/wIAAfYB/wK6AeUB/wLxAd0B/wPdAf8D2gH/A9gB/wPXAf8D1QH/
A9IB/wPAAf8DtQH/A8gB/wMwAUtIAAMSARgDKAE8Az4BagNQAZsDWgHHA10B6gH4AvkB/wH0AvYB/wHq
Ae0B7gH/Ad4B4gHjAf8B1QHZAdsB/wHRAdUB1gH/Ac0B0gHTAf8B1AHZAdoB/wNlAeUDDAEQRAADNgFY
A10ByQMAAf8BowGYAZYB/wG9AbMBsQH/AdMBygHIAf8B3gHWAdUB/wHTAcoByQH/AcsBwQHAAf8BwgG3
AbYB/wG3Aa4BrQH/AaICmgH/A1sBygM3AVq0AAMgAS0DqAH9DAAC/gL/EAAD/QH/A/sB/wP2Af8B6QLq
Af8D3wH/A8UB/wMwAUxgAAMRARYDJwE6Az0BaANPAZkDWwHFA2MB6QH2AfcB+AH/Ae8B8gHzAf8B9QH3
AfgB/wNWAatMAAQCAyoBPwNJAYcDWAG9A10B3ANhAesDYQHrA2EB3ANZAb4DSQGIAyoBQAQCuAADCwEO
A0gBgwNOAZQDSgGKA0oBigNKAYoDSgGKA0oBigNKAYoDSgGKA0oBigNKAYoDSgGKA0wBkANMAY8DIAEt
eAADDwEUAyYBOAM8AWYDUQGcAy4BSP8AMQAIAVgACAEYAAQBAwMBBAMDAQQDAwEEAwMBBAMDAQQDAwEE
AwMBBAMDAQQDAwEEAwMBBAMDAQQDAwEEAwMBBAMDAQQDAwEEAwMBBAMDAQQDAwEEAwMBBAMDAQQDAwEE
AwMBBAMDAQQDAwEEAwMBBAQBNAADEwEaAzgBXANQAZsDWgHHA10B3wNhAesDYQHrA10B3wNaAccDUQGc
AzgBXAMTARooAAMDAQQDJAE0AzMBUQMzAVADMwFQAzMBUAMzAVADMwFQAzMBUAMzAVADMwFQAzMBUAMz
AwMBBAMDAQQDAwEEBAE0AAMTARoDOAFcA1ABmwNaAccDXQHfA2EB6wNhAesDXQHfA1oBxwNRAZwDOAFc
AxMBGigAAwMBBAMkATQDMwFRAzMBUAMzAVADMwFQAzMBUAMzAVADMwFQAzMBUAMzAVADMwFQAzMBUAMz
AVADMwFQAzMBUAMzAVADMwFQAzMBUAMzAVADMwFQAzMBUAMzAVADMwFQAzMBUAMzAVADMwFQAzMBUAMz
AVADMwFQAzMBUQMkATUDAwEEEAADDgESAyoBPwMoATsDJwE6AycBOgMnAToDJwE6AycBOgMnAToDMwFR
A08BlwNcAcgDZQHlA14B8ANlAewDXwHVA1UBrAM+AWsDJwE6AycBOgMnAToDKAE7AyoBPwMPARMEARAA
BAEDDwEUAyEBMAMnAToDJwE6AycBOgMnAToDJwE6AycBOgMnAToDJwE6AycBOgMnAToDJwE6AycBOgMn
AToDJwE6AycBOgMnAToDJwE6AycBOgMnAToDJwE6AycBOgMnAToDJwE6AycBOgMhATADDwEUBAEkAAMh
AS8DUQGcA14B7QHiAa8BAAH/AdUBnAEAAf8ByQGKAQAB/wHAAgAB/wG7AgAB/wG6AgAB/wG+AgAB/wHG
AYcBAAH/AdMBmQEAAf8B4QGuAQAB/wNeAe0DUAGdAyEBLyAAAwYBBwNdAc8DkAH/A5IB/wOSAf8DkgH/
A5IB/wORAf8DkQH/A5EB/wORAf8DkQH/A5EB/wORAf8DkQH/A5EB/wORAf8DkQH/A5EB/wORAf8DkQH/
A5EB/wORAf8DkQH/A5EB/wGRApIB/wOSAf8DkgH/A5IB/wOPAf8DXQHPAwYBCBAAAzQBUwQAA/gB/wP2
Af8D9gH/A/YB/wP2Af8D9QH/A+YB/wPAAf8DlwH/A4kB/wMAAf8DAAH/AwAB/wMAAf8DjQH/A64B/wPe
Af8D8AH/A/YB/wP3Af8EAAM4AVsUAAMUARsDUQGkA1oB8gMAAf8DfQH+A30B/gN9Af4DfQH+A30B/gN8
Af4DdgH+A2IB/gNPAf4DgAH+A4AB/gOAAf4DgAH+A4AB/gOAAf4DgAH+A4AB/gOAAf4DgAH+A4AB/gOA
Af4DgAH+AwAB/wNnAfIDUQGkAxQBGxwAAwoBDQNLAYwCbQFsAfcB3AGmAQAB/wHFAYYBAAH/AbwCAAH/
AbwCAAH/AbkCAAH/AbUCAAH/AawCAAH/AagCAAH/AagCAAH/AacCAAH/AagCAAH/Aa0CAAH/Ab0CAAH/
AdgBoAEAAf8CbQFsAfcDSwGMAwoBDRgAAwYBBwOdAf8B7wLwAf8D6wH/Ae8B8AHxAf8B7wLxAf8D6wH/
AVADMwFRAyQBNQMDAQQQAAMOARIDKgE/AygBOwMnAToDJwE6AycBOgMnAToDJwE6AycBOgMzAVEDTwGX
A1wByANlAeUDXgHwA2UB7ANfAdUDVQGsAz4BawMnAToDJwE6AycBOgMoATsDKgE/Aw8BEwQBEAAEAQMP
ARQDIQEwAycBOgMnAToDJwE6AycBOgMnAToDJwE6AycBOgMnAToDJwE6AycBOgMnAToDJwE6AycBOgMn
AToDJwE6AycBOgMnAToDJwE6AycBOgMnAToDJwE6AycBOgMnAToDJwE6AyEBMAMPARQEASQAAyEBLwNR
AZwDXgHtAeIBrwEAAf8B1QGcAQAB/wHJAYoBAAH/AcACAAH/AbsCAAH/AboCAAH/Ab4CAAH/AcYBhwEA
Af8B0wGZAQAB/wHhAa4BAAH/A14B7QNQAZ0DIQEvIAADBgEHA10BzwOQAf8DkgH/A5IB/wOSAf8DkgH/
A5EB/wORAf8DkQH/A5EB/wORAf8DkQH/A5EB/wORAf8DkQH/A5EB/wORAf8DkQH/A5EB/wORAf8DkQH/
A5EB/wORAf8DkQH/AZECkgH/A5IB/wOSAf8DkgH/A48B/wNdAc8DBgEIEAADNAFTBAAD+AH/A/YB/wP2
Af8D9gH/A/YB/wP1Af8D5gH/A8AB/wOXAf8DiQH/AwAB/wMAAf8DAAH/AwAB/wONAf8DrgH/A94B/wPw
Af8D9gH/A/cB/wQAAzgBWxQAAxQBGwNRAaQDWgHyAwAB/wN+Af4DfgH+A34B/gN+Af4DfgH+A30B/gN3
Af4DYwH+A1AB/gOAAf4DgAH+A4AB/gOAAf4DgAH+A4AB/gOAAf4DgAH+A4AB/gOAAf4DgAH+A4AB/gOA
Af4DAAH/A2cB8gNRAaQDFAEbHAADCgENA0sBjAJtAWwB9wHcAaYBAAH/AcUBhgEAAf8BvAIAAf8BvAIA
Af8BuQIAAf8BtQIAAf8BrAIAAf8BqAIAAf8BqAIAAf8BpwIAAf8BqAIAAf8BrQIAAf8BvQIAAf8B2AGg
AQAB/wJtAWwB9wNLAYwDCgENGAADBgEHA50B/wHvAvAB/wPrAf8B7wHwAfEB/wHvAvEB/wPrAf8D6gH/
A+oB/wPqAf8D6gH/A+oB/wPqAf8D6gH/A+oB/wPqAf8D6gH/A+oB/wPqAf8D6gH/A+oB/wPqAf8D6gH/
A+oB/wPqAf8D6gH/AuoB6wH/Au8B8AH/A/EB/wLrAe0B/wPwAf8DnQH/AwYBCBAAAzMBUhQAA/gB/wPX
Af8DpwH/AwAB/wORAf8DuQH/A64B/wOYAf8DAAH/AwAB/wMAAf8DAAH/A4AB/wPAAf8D8QH/CAADNwFa
EAADBQEGA1ABmgMAAf8BvAG9AbwB/wHHAsgB/wPCAf8DwgH/A8IB/wPCAf8DwgH/A8IB/wO3Af8DnAH/
AwAB/wP7Af8LAAH/A8oB/wQAA/UB/wMAAf8DygH/AwAB/wPnAf8DAAH/A5QB/wMAAf8DpQH/A5QB/wNQ
AZoDBQEGFAADHgErA1wBzQHjAbABAAH/AcoBiwEAAf8BuQIAAf8BvQIAAf8BoQGHAQAB/wEAAY4BwwH/
AQABiwG1Af8BhwGFAQAB/wGtAgAB/wG3AgAB/wGrAgAB/wGrAgAB/wGrAgAB/wGqAgAB/wGoAgAB/wGp
AgAB/wG9AgAB/wHgAa0BAAH/A1wBzQMeASsUAAMGAQcDogH/A+0B/wLpAeoB/wHNAcwBygH/AdIBzwHO
Af8B6wHsAe0B/wPnAf8D5QH/A+QB/wPkAf8D5AH/A+QB/wPkAf8D5AH/A+UB/wPmAf8D5gH/A+UB/wPl
Af8D5QH/A+UB/wPkAf8D5AH/A+UB/wLqAesB/wHUAdIB0QH/Ac0BywHJAf8D6wH/A+4B/wOiAf8DBgEI
EAADMwFSEAAD+QH/A88B/wOeAf8DgQH/A5MB/wPIAf8DwAH/A70B/wPDAf8DsAH/A4kB/wMAAf8DAAH/
AwAB/wMAAf8DtAH/A/AB/wQAAzcBWhAAAwwBEANIAfYDAAH/Ab0CvgH/AcIBwwHCAf8DvgH/A74B/wO+
Af8DvgH/A74B/wO+Af8DtAH/A5cB/wMAAf8D9AH/A/4B/wcAAf8DiQH/BAADvAH/AwAB/wPnAf8DAAH/
AwAB/wMAAf8B+gH7AfoB/wO7Af8DAAH/A4QB/wNiAfYDDAEQEAADJQE3A2UB5wHdAacBAAH/AcIBgAEA
Af8BvAIAAf8BwQIAAf8BqgGKAQAB/wEAAZAB8wH/AQABhgH9Af8BAAGEAfsB/wEAAYMB/QH/AQABhgHr
Af8BAAGHAZoB/wG2AgAB/wGxAgAB/wGqAgAB/wGrAgAB/wGrAgAB/wGrAgAB/wGnAgAB/wGuAgAB/wHV
AZwBAAH/A2UB5wMlATcQAAMGAQcDoAH/A/AB/wHTAdAB0QH/AaYBoQGbAf8DAAH/AcUBwgG/Af8C7QHv
Af8D5QH/A+UB/wPlAf8D5QH/A+UB/wPlAf8D5QH/A+UB/wPmAf8D4wH/A+AB/wPhAf8D5AH/A+YB/wPl
Af8D5QH/A+oB/wHVAtQB/wGcAZYBkQH/AYICAAH/AbcBsgGvAf8B8wL0Af8DoQH/AwYBCBAAAzMBUhAA
A9UB/wOmAf8DlQH/A5EB/wOdAf8DygH/A78B/wO5Af8DsgH/A7gB/wPAAf8DsgH/A4oB/wMAAf8DAAH/
AwAB/wO8Af8D9gH/AzcBWhAAAw4BEgMAAf8DAAH/Ab0CvAH/AcQBxQHEAf8DwQH/A8EB/wPBAf8BxAHC
Ab4B/wHEAcIBvgH/A78B/wO2Af8DmgH/AwAB/wP0Af8D/AH/BAAD0wH/AwAB/wMAAf8DAAH/A7AB/yAA
A64B/wMOARIMAAMdASkDYAHoAdsBpAEAAf8BwwGBAQAB/wHAAgAB/wG/AgAB/wHIAgAB/wEAAZMBpwH/
AQABiwL/AQABiAHxAf8BAAGFAfEB/wEAAYMB8QH/AgAB8wH/AgAB/gH/AQABiAHGAf8BnwIAAf8BtgIA
Af8BtAIAAf8BqwIAAf8BqwIAAf8BqwIAAf8BqQIAAf8BqQIAAf8B0AGVAQAB/wNgAegDHQEpDAADBgEH
A6EB/wPwAf8CxgHHAf8C6AHpAf8BvwG8AboB/wGzAbABrQH/Ae4C8AH/A+YB/wPmAf8D5gH/A+YB/wPm
Af8D5gH/A+cB/wPmAf8D3wH/A9UB/wPOAf8D0gH/A9wB/wPlAf8D5gH/A+YB/wLrAewB/wLIAccB/wHm
AucB/wG+AroB/wGmAaIBnwH/AvQB9QH/A6IB/wMGAQgQAAMzAVIMAAPoAf8DuAH/A54B/wOfAf8DnQH/
A6sB/wPHAf8DxwH/A7sB/wO3Af8DswH/A7IB/wO+Af8DuQH/AwAB/wMAAf8DAAH/AwAB/wPUAf8DNwFa
EAADDgESAUcBIgE1Af4DAAH/Ab8CwQH/AcgCyQH/A8QB/wHKAcgBxAH/AdQB0gHDAf8BwQHCAcoB/wHB
AcIBygH/AdQB0gHDAf8BvgG8AbcB/wKbAZwB/wMAAf8D9AH/A/wB/wH6AvkB/wQAAvoB+wH/As8BzgH/
A/EB/wQAA/oB/wP5Af8D+gH/AfsC+gH/AfYB+QH3Af8B9gH5AfcB/wL7AfwB/wQAA4AB/gMOARIIAAMJ
AQwDXwHQAd4BqQEAAf8BxQGFAQAB/wHEAYMBAAH/AcMBgQEAAf8BwAIAAf8ByAIAAf8BAAGTAa0B/wEA
AY0B/AH/AQABigHyAf8BAAGHAfEB/wEAAYQB8QH/AQABgQHwAf8CAAHwAf8CAAH4Af8BAAGDAfYB/wEA
AYcBywH/AYYBgwGAAf8BsgIAAf8BrQIAAf8BqwIAAf8BqwIAAf8BqgIAAf8BqQIAAf8B1QGcAQAB/wNf
AdADCQEMCAADBgEHA6EB/wPvAf8D3wH/A7UB/wG7AboBuQH/A+AB/wPqAf8D5wH/A+cB/wPnAf8D5wH/
A+cB/wPoAf8D7gH/A+cB/wPTAf8DvQH/A7EB/wPAAf8D1QH/A+MB/wPoAf8D5wH/A+kB/wPiAf8DxQH/
Ab4CvQH/AdcC2AH/A/EB/wOhAf8DBgEIEAADMwFSCAAD/QH/A8sB/wOrAf8DqAH/A6oB/wOPAf8DAAH/
AwAB/wOCAf8DzAH/A7kB/wO0Af8DswH/A7UB/wO2Af8DAAH/AwAB/wMAAf8DAAH/A6EB/wNPAZkQAAMO
ARIBRgEhATUB/gMAAf8BwwLEAf8BywLNAf8CzQHIAf8CzgHJAf8BAAGBAeIB/wIAAfcB/wIAAfcB/wEA
AYIB4AH/AcMBwgG9Af8BpAGjAZ8B/wMAAf8C9QH0Af8B/AH7AfwB/wHsAfUB9wH/AeoB9wH6Af8B7QH6
Av8B9gP/AfwC/gH/A/kB/wP5Af8D+QH/AfcB+QH3Af8B7wH4AfAB/wHrAfsB8wH/AesB+wHzAf8B7wH5
AfMB/wQAA4AB/gMOARIIAANLAY0B5QGzAQAB/wHLAY0BAAH/AccBhwEAAf8BxgGFAQAB/wHDAYIBAAH/
AcECAAH/AckCAAH/AQABlQGtAf8BAAGOAfwB/wEAAYsB8gH/AQABiAHxAf8BAAGFAfEB/wEAAYIB8QH/
AgAB8AH/AgAB8AH/AgAB8QH/AgAB+AH/AQABgAL/AQABigHJAf8BrwIAAf8BrAIAAf8BqwIAAf8BqwIA
Af8BqQIAAf8BrgIAAf8B4AGsAQAB/wNLAY0IAAMGAQcDoQH/A+0B/wPrAf8D6QH/AekC6gH/A+sB/wPn
Af8D5wH/A+cB/wPnAf8D5wH/A+cB/wPrAf8D1gH/A8cB/wOrAf8BkQGSAZEB/wObAf8DtQH/A9IB/wPj
Af8D5wH/A+cB/wPnAf8D6gH/A+kB/wPpAf8D7QH/A+0B/wOhAf8DBgEIEAADMwFSCAAD7gH/A8AB/wOs
Af8DrAH/A7kB/wMAAf8DAAH/AwAB/wMAAf8DyAH/A70B/wO2Af8DswH/A8QB/wOgAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wNgAdsDIQEvDAADDgESAUQBIAEzAf4DAAH/A8UB/wHPAdEBzwH/Ad0B2QHJAf8CAAHQ
Af8CAAH8Af8BqwG7Af4B/wGtAbsB/gH/AgAB/AH/AgABxgH/AbEBrwGfAf8DgQH/AfYB9AH1Af8B7wH2
AfkB/wHhAfAB9wH/AeoB+QL/AewB+AL/AeEB8AH3Af8B6gHwAfUB/wH6AvkB/wH6AfkB+gH/AfoC+QH/
AeoB9QHuAf8B5AH3AesB/wHtAf8B9AH/Ae0B/wH0Af8B5QH4AesB/wHyAf0B+AH/A4AB/gMOARIEAAMf
ASwCagFoAfkB1QGcAQAB/wHJAYsBAAH/AckBigEAAf8BxgGGAQAB/wHFAYMBAAH/AcIBgAEAAf8BygIA
Af8BAAGWAagB/wEAAZAB/QH/AQABjQHyAf8BAAGKAfIB/wEAAYYB8QH/AQABhAHxAf8BAAGAAfAB/wIA
AfAB/wIAAfAB/wIAAfAB/wIAAfAB/wEAAYIC/wGXAgAB/wGwAgAB/wGrAgAB/wGrAgAB/wGrAgAB/wGn
AgAB/wG9AgAB/wJqAWgB+QMfASwEAAMGAQcDowH/A+8B/wPoAf8D6QH/A+kB/wPoAf8D6AH/A+kB/wPp
Af8D6QH/A+kB/wPqAf8D7wH/AZUBlgGVAf8BjgGPAY4B/wGUAZYBlQH/AwAB/wOIAf8DsAH/A9IB/wPn
Af8D6gH/A+kB/wPpAf8D6AH/A+kB/wPpAf8D6AH/A+4B/wOjAf8DBgEIEAADMwFSCAAD4QH/A7gB/wOs
Af8DrgH/A7IB/wORAf8DAAH/AwAB/wMAAf8DxgH/A8QB/wPFAf8DuwH/A6AB/wOSAf8DsgH/A5UB/wMA
Af8DAAH/AwAB/wMrAfwDQQFyDAADDgESAUEBHgExAf4DAAH/A8gB/wLZAdQB/wHJAcgBxwH/AgABvQH/
AgAB7wH/AgAB9QH/AgAB9QH/AgAB7wH/AgABswH/AaABnwGcAf8BhwGGAYUB/wLyAfQB/wHmAe4B8gH/
Ad4B6wHyAf8B5wH1AfsB/wHkAfMB+QH/Ad4B6wHyAf8B5AHuAfIB/wH5AfcB+QH/A/wB/wH8Af4B/AH/
AeYB9gHuAf8B4QH0AekB/wHmAfoB7QH/AeoB/AHwAf8B4AH1AegB/wHsAfsB8QH/A4AB/gMOARIEAANR
AZ4B4gGvAQAB/wHNAZABAAH/AcwBjgEAAf8BygGLAQAB/wHHAYgBAAH/AcUBhQEAAf8BwwGBAQAB/wHL
AgAB/wGEAZYBngH/AQABkgH+Af8BAAGOAfIB/wEAAYsB8gH/AQABiAHxAf8BAAGFAfEB/wEAAYIB8QH/
AgAB8AH/AgAB8AH/AgAB8AH/AgAB8AH/AQABggH7Af8BlQIAAf8BsAIAAf8BqwIAAf8BqwIAAf8BqwIA
Af8BqwIAAf8BqAIAAf8B2AGgAQAB/wNRAZ8EAAMGAQcDpAH/A/AB/wPqAf8D6gH/A+oB/wPqAf8D6gH/
A+oB/wPqAf8D6gH/A+oB/wPqAf8D9QH/AcsBygHLAf8DzwH/A9oB/wOuAf8DAAH/A64B/wPXAf8D6QH/
A+sB/wPqAf8D6gH/A+oB/wPqAf8D6gH/A+oB/wPwAf8DpAH/AwYBCBAAAzMBUgQAA/4B/wPXAf8DzwH/
A8EB/wOtAf8DqAH/A7sB/wMAAf8DAAH/AwAB/wPUAf8DuwH/A5kB/wMAAf8DAAH/A7wB/wPAAf8DvAH/
AwAB/wMAAf8DAAH/A64B/wNPAZcMAAMOARIBPQEdAS0B/gMAAf8BywLNAf8C2wHXAf8BzwHOAckB/wIA
AY4B/wIAAcsB/wIAAekB/wIAAekB/wIAAcoB/wIAAYUB/wKmAaEB/wGJAYgBhwH/AvIB9AH/AeUB7AHw
Af8B4AHtAfEB/wHhAfAB9QH/AeIB8gH5Af8B5wH1AfoB/wHnAe8B8QH/AfwB+wH8Af8EAAPsAf8BzQHY
AdEB/wHhAfMB6AH/AesB/QHyAf8B6gH7AfAB/wHpAfwB8QH/AewB9wHwAf8DgAH+Aw4EEgEYA14B8AHY
AaABAAH/Ac0BkQEAAf8BzQGQAQAB/wHLAY0BAAH/AckBigEAAf8BxgGGAQAB/wHEAYMBAAH/AcwBgwEA
Af8BAAGZAbgB/wEAAZIB/AH/AQABjwHyAf8BAAGMAfIB/wEAAYoB8gH/AQABhgHxAf8BAAGEAfEB/wEA
AYEB8AH/AgAB8AH/AgAB8AH/AgAB8QH/AQABhAH1Af8BoAIAAf8BrgIAAf8BqwIAAf8BqwIAAf8BqwIA
Af8BqwIAAf8BqAIAAf8BvQIAAf8DXgHwAxIBGAMGAQcDpAH/A/AB/wPqAf8D6gH/A+oB/wPqAf8D6gH/
A+oB/wPqAf8D6gH/A+oB/wP1Af8DsgH/A74B/wgAA7sB/wMAAf8DuAH/A90B/wPrAf8D6gH/A+oB/wPq
Af8D6gH/A+oB/wPqAf8D6gH/A/AB/wOkAf8DBgEIEAADMwFSBAAD/QH/A+EB/wPyAf8D8gH/A9IB/wOs
Af8DsgH/A7wB/wMAAf8DAAH/A8AB/wMAAf8DgwH/A5kB/wOjAf8DvQH/A7MB/wO7Af8DhgH/AwAB/wMA
Af8DqAH/A1EBogwAAw4BEgE7ARwBLAH+AwAB/wHOAs8B/wPXAf8B7QHqAd4B/wMAAf8CAAHDAf8CAAH8
Af8CAAH8Af8CAAHEAf8DAAH/Ab4BvAGxAf8DhgH/A/UB/wHwAfQB9QH/AesB+AH8Af8DAAH/AeAB7QHy
Af8B2wHmAesB/wMAAf8D5QH/A5kB/wMAAf8DAAH/AdEB4QHYAf8BvQHLAcIB/wMAAf8B5gH2AesB/wMA
Af8DgAH+Aw4BEgM4AVwB5gG1AQAB/wHTAZkBAAH/Ac8BlAEAAf8BzgGSAQAB/wHMAY4BAAH/AcoBiwEA
Af8BxwGIAQAB/wHGAYMBAAH/AccBigEAAf8BAAGbAdwB/wEAAZMB+AH/AQABkQHzAf8BAAGOAfIB/wEA
AYsB8gH/AQABiAHxAf8BAAGFAfEB/wEAAYIB8AH/AgAB8AH/AgAB8AH/AgAB/gH/AQABiAHFAf8BuAIA
Af8BswIAAf8BrQIAAf8BqwIAAf8BqwIAAf8BqwIAAf8BqgIAAf8BrQIAAf8B4QGuAQAB/wM4AVwDBgEH
A6QB/wPxAf8D6wH/A+sB/wPrAf8D6wH/A+sB/wPrAf8D6wH/A+sB/wPrAf8D/AH/A5gB/wOjAf8IAAOp
Af8DAAH/A8cB/wPkAf8D7QH/A+sB/wPrAf8D6wH/A+sB/wPrAf8D6wH/A+sB/wPxAf8DpAH/AwYBCBAA
AzMBUgQAA/wB/wPVAf8DrgH/AwAB/wMAAf8DswH/A7oB/wPpAf8DAAH/AwAB/wMAAf8DkwH/A7AB/wPD
Af8DugH/A7EB/wOzAf8DugH/A4YB/wMAAf8DAAH/A64B/wNQAZoMAAMOARIBOgEfASwB/gMAAf8B0ALR
Af8D2gH/AtsB2QH/AdwB2gHQAf8CAAGPAf8CAAGjAf8CAAGjAf8CAAGQAf8BzwHNAcQB/wKvAa0B/wOH
Af8D9QH/Av4B/AH/AfoB/gL/AwAB/wHrAfEB9gH/AwAB/wMAAf8D0QH/AwAB/wOUAf8BvAK9Af8B9gH+
AfkB/wEAAYIBgAH/AwAB/wGKAY4BiwH/AwAB/wOAAf4DDgESA1ABnQHhAa4BAAH/AdIBmAEAAf8B0QGW
AQAB/wHOAZMBAAH/Ac0BkAEAAf8BywGNAQAB/wHIAYkBAAH/AcoBhAEAAf8BtgGTAQAB/wEAAZsB9QH/
AQABlQH1Af8BAAGSAfMB/wEAAY8B8gH/AQABjAHyAf8BAAGJAfEB/wEAAYYB8gH/AQABggH2Af8BAAGA
AfsB/wEAAYAB/gH/AQABiAHSAf8BsgIAAf8BpQIAAf8BhQGCAQAB/wGoAgAB/wGvAgAB/wGrAgAB/wGr
AgAB/wGrAgAB/wGoAgAB/wHSAZkBAAH/A1ABnQMGAQcDpQH/A/IB/wPsAf8D7AH/A+wB/wPsAf8D7AH/
A+wB/wPsAf8D7AH/A+wB/wP9Af8DoAH/A5gB/wP8Af8D/gH/A5oB/wMAAf8D1gH/A+oB/wPtAf8D7AH/
A+wB/wPsAf8D7AH/A+wB/wPsAf8D7AH/A/IB/wOlAf8DBgEIEAADMwFSA7gB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/A4gB/wPqAf8DtAH/AwAB/wMAAf8DAAH/AwAB/wPTAf8DwwH/A7oB/wO7Af8DuQH/A7wB/wOA
Af8DAAH/AwAB/wOAAf4DRAF4DAADDgESATwBIQEuAf4DAAH/A9YB/wHaAtsB/wPVAf8B3wHdAdoB/wHq
AecB2wH/AcUBwwHBAf8BxQHEAcEB/wHoAecB2wH/AdMB0AHOAf8CqQGrAf8DhwH/A/YB/wsAAf8DAAH/
AwAB/wMAAf8DywH/AwAB/wGXApYB/wMAAf8BzQLLAf8DAAH/AbYBtwG2Af8DAAH/A6YB/wOAAf4DDgES
A10ByQHjAasBAAH/AdsBmgEAAf8B2AGWAQAB/wHPAZQBAAH/Ac4BkQEAAf8BzAGOAQAB/wHJAYsBAAH/
AdABhwEAAf8BkQGbAZgB/wEAAZoB/gH/AQABlwH0Af8BAAGTAfMB/wEAAZEB8wH/AQABjQHyAf8BAAGK
AfoB/wEAAYsB+AH/AQABjAHbAf8BAAGKAawB/wGQAYMBAAH/AbwCAAH/AZkCAAH/AQABhQH0Af8CAAL/
AQABiQHgAf8BqwIAAf8BrQIAAf8BqwIAAf8BqwIAAf8BpwIAAf8BxgGHAQAB/wNdAckDBgEHA6YB/wPz
Af8D7QH/A+0B/wPtAf8D7QH/A+0B/wPtAf8D7QH/A+0B/wPtAf8EAAOiAf8DlQH/A/kB/wP7Af8DlgH/
AwAB/wPjAf8D7gH/A+4B/wPtAf8D7QH/A+0B/wPtAf8D7QH/A+0B/wPtAf8D8wH/A6YB/wMGAQgQAAMz
AVIDAAH/AwAB/wOXAf8DsQH/A/AB/wODAf8DAAH/A4AB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A6EB/wO+
Af8DuQH/A6oB/wO0Af8DmgH/AwAB/wMAAf8DAAH/A2AB4AMlATcMAAMOARIBPAEjAS4B/gMAAf8BwQG8
Ab4B/wHsAfMB8AH/A9wB/wHaAtwB/wPcAf8B4QHiAeAB/wHhAeIB4AH/AtsB3AH/A9AB/wGuAq8B/wOL
Af8D9wH/CwAB/wMAAf8D9wH/AwAB/wPWAf8DyAH/AwAB/wOPAf8D8gH/A4AB/wcAAf8D6gH/A4AB/gMO
ARIDYAHgAZoBtQGwAf8BgQGwAcEB/wG0AacBhQH/AdcBlwEAAf8BzgGSAQAB/wHNAZABAAH/AcoBjAEA
Af8B0QGNAQAB/wEAAaEByAH/AQABmwH8Af8BAAGYAfQB/wEAAZUB8wH/AQABkQH0Af8BAAGQAf0B/wEA
AZMByQH/AaMBiAEAAf8BvQIAAf8BwQIAAf8BuQIAAf8BrAIAAf8BAAGGAesB/wIAAfYB/wIAAfAB/wIA
Av8BAAGEAZAB/wG1AgAB/wGrAgAB/wGrAgAB/wGoAgAB/wG+AgAB/wNgAeADBgEHA6YB/wP0Af8D7gH/
A+4B/wPuAf8D7gH/A+4B/wPuAf8D7gH/A+4B/wPuAf8EAAOkAf8DAAH/A9gB/wPYAf8DAAH/AwAB/wPv
Af8D8QH/A+4B/wPuAf8D7gH/A+4B/wPuAf8D7gH/A+4B/wPuAf8D9AH/A6YB/wMGAQgQAAMzAVIDlQH/
AwAB/wPzAf8D8QH/A/YB/wOzAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wOcAf8DmAH/
AwAB/wMAAf8DAAH/AwAB/wMAAf8DnAH/A1EBohAAAw4BEgE5ASQBLAH+AwAB/wMAAf8ByQHCAcUB/wHk
AuUB/wHhAeAB4QH/AeEB4AHhAf8B4QHgAeEB/wHhAeAB4QH/AeEC4AH/AdUC1AH/AbQCswH/AYsBjQGL
Af8D9gH/CwAB/wOdAf8HAAH/A8sB/yAAA4AB/gMOARIDZQHsAQABtwHZAf8BAAG0Av8BAAGzAv8BqwGo
AY8B/wHdAZMBAAH/Ac4BkAEAAf8BzAGNAQAB/wHNAZEBAAH/AQABogHZAf8BAAGcAfoB/wEAAZkB9AH/
AQABlgH0Af8BAAGUAfoB/wEAAZYBrQH/AcQCAAH/AcACAAH/AawBgAEAAf8BqgIAAf8BxAIAAf8BAAGH
AZkB/wIAAf4B/wIAAfAB/wIAAfAB/wIAAfsB/wEAAYUBpgH/AbYCAAH/AasCAAH/AasCAAH/AagCAAH/
AboCAAH/A2UB7AMGAQcDpgH/A/QB/wPvAf8D7wH/A+4B/wPuAf8D7gH/A+4B/wPuAf8D7gH/A+4B/wQA
A6UB/wMAAf8DxQH/A8UB/wMAAf8DhgH/A/cB/wPyAf8D7gH/A+4B/wPuAf8D7gH/A+4B/wPuAf8D7gH/
A+4B/wP0Af8DpgH/AwYBCBAAAzMBUgPbAf8DAAH/A+EB/wPsAf8D3AH/A9wB/wMAAf8DAAH/AwAB/wOY
Af8DnQH/AwAB/wOOAf8DuQH/A8gB/wOzAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wPOAf8DOAFdEAADDgES
ATIBIQEmAf4DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8B5gHj
AeUB/wHyAfAB8QH/Ae0C7AH/AusB6gH/AfYB9AH1Af8B8AHtAe8B/wHqAegB6gH/AewB6wHsAf8B7QHr
AewB/wHsAeoB6wH/AewB6gHrAf8B6wHqAesB/wHsAeoB7AH/AewB6gHrAf8B7QHsAe0B/wH1AfQB9QH/
A4AB/gMOARIDZQHsAQABuAHVAf8BAAG1Av8BAAGyAfwB/wEAAbEB8gH/AaEBqQGaAf8B1AGWAQAB/wHP
AYwBAAH/AckBlQEAAf8BAAGjAeQB/wEAAZ0B+QH/AQABmwH0Af8BAAGYAfwB/wEAAZoBwwH/AdEBgAEA
Af8BwAIAAf8BwgIAAf8BpgGEAQAB/wEAAZIB1wH/AacBigEAAf8BAAGFAdQB/wIAAfUB/wIAAfAB/wIA
AfAB/wIAAfsB/wEAAYUBpgH/AbYCAAH/AasCAAH/AasCAAH/AagCAAH/AboCAAH/A2UB7AMGAQcDqgH/
A/kB/wP0Af8D8gH/A/IB/wPxAf8D8AH/A/AB/wPvAf8D7wH/A+8B/wQAA6EB/wOiAf8IAAOhAf8DkQH/
A/4B/wPxAf8D7wH/A+8B/wPvAf8D7wH/A+8B/wPvAf8D7wH/A+8B/wP1Af8DpwH/AwYBCBAAAzMBUgcA
Af8DmAH/A/IB/wPZAf8EAAOQAf8DAAH/A9YB/wPpAf8D4AH/A90B/wPXAf8D0QH/A84B/wOdAf8DAAH/
A4AB/wMAAf8DAAH/A7MB/wP0Af8DNwFaEAADDgESASsBHgEiAf4DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8B5wHlAeYB/wPxAf8B7AHnAeoB/wHwAesB7QH/Ae0B6gHs
Af8B7AHnAeoB/wHwAesB7QH/Ae0B6gHsAf8B7AHqAesB/wHsAeoB6wH/AewB6gHsAf8B7QHrAewB/wHt
AesB7QH/Ae8B6wHtAf8B8AHtAe8B/wH3AfUB9wH/A4AB/gMOARIDYAHgAYQBuAHMAf8BAAG2Av8BAAGz
AfkB/wEAAbAB+wH/AQABsAL/AYwBqgGxAf8B2QGUAQAB/wHUAZQBAAH/AQABpQHfAf8BAAGeAfoB/wEA
AZwB9AH/AQABmQH5Af8BAAGZAdoB/wGkAZEBAAH/AbABiQEAAf8BpQGJAQAB/wG4AYcBAAH/AQABjwHF
Af8BAAGHAfsB/wEAAYEB8QH/AgAB8AH/AgAB8AH/AgAB8AH/AgAB+wH/AQABhAGkAf8BtgIAAf8BqwIA
Af8BqwIAAf8BqAIAAf8BvgIAAf8DYAHgAwYBBwOqAf8D+QH/A/QB/wP0Af8D9AH/A/QB/wP0Af8D8wH/
A/MB/wPzAf8D8gH/BAADogH/AaoCqQH/CAADqQH/A50B/wQAA/EB/wPwAf8D8AH/A/AB/wPwAf8D8AH/
A/AB/wPwAf8D8AH/A/YB/wOoAf8DBgEIEAADMwFSBAADiAH/AwAB/wPwAf8D6QH/A6oB/wMAAf8DAAH/
A64B/wPjAf8DygH/A8sB/wPOAf8DyAH/A50B/wOBAf8DhgH/AwAB/wMAAf8DqwH/A+cB/wQAAzcBWhAA
Aw4BEgEgARgBGwH+AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
AusB8AH/AvYB/gH/Au8B9AH/AfAB7wH0Af8B8AHuAfUB/wHwAe4B9QH/AfAB8QH1Af8B8AHxAfUB/wHw
AfEB9QH/AvEB9QH/AfEB8AH3Af8B8QHyAfcB/wLyAfYB/wLyAfkB/wH0AfIB+gH/AfsB+gL/A4AB/gMO
ARIDXQHJAZcBuQG4Af8BAAG4Av8BAAG1AfkB/wEAAbIB+QH/AQABrwH5Af8BAAGtAf4B/wEAAaoBwwH/
AZ0BpAGYAf8BAAGkAe4B/wEAAaAB9wH/AQABnQH1Af8BAAGaAfMB/wEAAZcB+AH/AQABlgH6Af8BAAGV
AfQB/wEAAZIB+QH/AQABkAHxAf8BAAGJAfEB/wEAAYUB8wH/AQABgwHxAf8BAAGAAfAB/wIAAfAB/wIA
AfAB/wIAAf0B/wEAAYQBlQH/AbUCAAH/AasCAAH/AasCAAH/AacCAAH/AcYBhwEAAf8DXQHJAwYBBwOr
Af8D+gH/A/QB/wP0Af8D9AH/A/QB/wP0Af8D9AH/A/QB/wP0Af8D9AH/BAADpgH/AwAB/wPEAf8DxAH/
AwAB/wOkAf8EAAPxAf8D8QH/A/EB/wPwAf8D8AH/A/AB/wPwAf8D8AH/A/AB/wP1Af8DpwH/AwYBCBAA
AzMBUgQAA8gB/wMAAf8DhwH/AwAB/wMAAf8DAAH/AwAB/wPLAf8D2wH/A88B/wPEAf8DrAH/A5oB/wOL
Af8DhwH/AwAB/wOAAf8DtwH/A+cB/wPxAf8EAAM3AVoQAAMOARIBHQEXARkB/gMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wHgAtwB/wHsAeoB6wH/AeYB4wHmAf8B5gHj
AeYB/wHmAeMB5gH/AeYB4wHmAf8B5gHjAeYB/wHmAeMB5gH/AeYB4wHmAf8B5wHjAeYB/wHnAuYB/wHn
AeUB5gH/AecB5QHmAf8B5wHlAeYB/wHoAeYB6AH/AfEC7QH/A4AB/gMOARIDUAGdAbUBugGZAf8BAAG5
Av8BAAG2AfkB/wEAAbMB+QH/AQABsAH4Af8BAAGuAfgB/wEAAasB/gH/AQABqQL/AQABpAH3Af8BAAGi
AfUB/wEAAZ8B9QH/AQABnAH0Af8BAAGZAfQB/wEAAZYB9AH/AQABkgH0Af8BAAGQAfMB/wEAAYwB+gH/
AQABjAH5Af8BAAGHAfAB/wEAAYMB9gH/AQABgQH7Af8CAAH5Af8CAAH4Af8BAAGDAf4B/wGXAgAB/wGw
AgAB/wGrAgAB/wGrAgAB/wGoAgAB/wHSAZkBAAH/A1ABnQMGAQcDqwH/A/sB/wP1Af8D9QH/A/UB/wP1
Af8D9QH/A/UB/wP1Af8D9QH/A/UB/wQAA74B/wMAAf8DAAH/AwAB/wMAAf8DvgH/BAAD9gH/A/UB/wP1
Af8D9AH/A/QB/wPzAf8D8wH/A/MB/wPyAf8D+AH/A6oB/wMGAQgQAAMzAVIEAAPuAf8DAAH/AwAB/wMA
Af8DqAH/A9kB/wPwAf8D2QH/A88B/wPTAf8D0AH/A6AB/wOSAf8DlQH/A5gB/wOsAf8D1AH/A+gB/wPt
Af8D7gH/BAADNwFaEAADDgESAYABcQFzAf4B0QG5AbwB/wHKAbMBtgH/AckBsgG1Af8ByQGyAbUB/wHJ
AbIBtQH/AckBsgG1Af8ByQGyAbUB/wHJAbIBtQH/AckBsgG1Af8ByQGyAbUB/wHJAbQBuwH/AcYCrAH/
AcwCAAH/AcoCAAH/AcoCAAH/AcoCAAH/AcoCAAH/AcoCAAH/AcoCAAH/AcoCAAH/AcoCAAH/AcoCAAH/
AcoCAAH/AckCAAH/AckCAAH/AckCAAH/AcoCAAH/AdICAAH/AYABNQETAf4DDgESAzgBXAHXAbkBAAH/
AQABugH2Af8BAAG3AfwB/wEAAbUB+QH/AQABsgH5Af8BAAGvAfgB/wEAAawB+AH/AQABqQH3Af8BAAGm
AfYB/wEAAaMB9gH/AQABoAH1Af8BAAGdAfUB/wEAAZoB9AH/AQABmAH0Af8BAAGUAfMB/wEAAZIB/QH/
AQABkwHUAf8BnQGUAQAB/wEAAY8B7AH/AQABiwHaAf8BAAGKAacB/wEAAYgBvwH/AQABhwHRAf8BAAGH
AZsB/wGzAgAB/wGrAgAB/wGrAgAB/wGqAgAB/wGtAgAB/wHhAa4BAAH/AzgBXAMGAQcDrAH/A/wB/wP2
Af8D9gH/A/YB/wP2Af8D9gH/A/YB/wP2Af8D9gH/A/YB/wP4Af8D+wH/A/MB/wHxAvMB/wHxAvMB/wPz
Af8D+wH/A/gB/wP2Af8D9gH/A/YB/wP2Af8D9gH/A/YB/wP2Af8D9gH/A/cB/wP8Af8DrAH/AwYBCBAA
AzMBUgQAA+0B/wPTAf8DygH/A+sB/wPrAf8D6wH/A+sB/wPkAf8D2gH/A9UB/wPOAf8DwgH/A8IB/wPL
Af8D2gH/A+IB/wPjAf8D4wH/A+MB/wPjAf8D/gH/AzgBWxAAAw4BEgGAAWsBbQH+AcYBqgGsAf8BvwGj
AaUB/wG+AaIBpAH/Ab4BogGkAf8BvgGiAaQB/wG+AaIBpAH/Ab4BogGkAf8BvgGiAaQB/wG+AaIBpAH/
Ab4BogGjAf8BvgGjAagB/wG+AaIBoQH/AdACAAH/AdACAAH/AdACAAH/AdACAAH/AdACAAH/AdACAAH/
AdACAAH/AdACAAH/AdACAAH/AdACAAH/AdACAAH/AdACAAH/AdACAAH/AdACAAH/AdECAAH/AdgCAAH/
AYABNgETAf4DDgQSARgDXgHwAYQBugHNAf8BAAG5Av8BAAG2AfkB/wEAAbMB+QH/AQABsAH4Af8BAAGu
AfgB/wEAAaoB9wH/AQABqAH3Af8BAAGkAfYB/wEAAaIB9gH/AQABngH1Af8BAAGcAfQB/wEAAZkB9AH/
AQABlgH8Af8BAAGYAbUB/wHDAYIBAAH/AcUCAAH/AaQBiwEAAf8BtQIAAf8BvwIAAf8BvAIAAf8BuQIA
Af8BtgIAAf8BqwIAAf8BqwIAAf8BqwIAAf8BqAIAAf8BvQIAAf8DXgHwAxIBGAMGAQcDqwH/A/wB/wP3
Af8D9wH/A/cB/wP3Af8D9wH/A/cB/wP3Af8D9wH/A/cB/wP3Af8D+gH/A/0B/wP+Af8D/gH/A/0B/wP6
Af8D9wH/A/cB/wP3Af8D9wH/A/cB/wP3Af8D9wH/A/cB/wP3Af8D9wH/A/wB/wOrAf8DBgEIEAADMwFS
BAAD7AH/A+oB/wPqAf8D6gH/A+oB/wPqAf8D6gH/A+oB/wPmAf8D4AH/A9oB/wPaAf8D3QH/A98B/wPb
Af8DzwH/A8cB/wPFAf8DxwH/A8IB/wPXAf8DNQFVEAADDgESAYABaQFsAf4BxQGnAaoB/wG+AaABpAH/
Ab0BnwGjAf8BvQGfAaMB/wG9AZ8BowH/Ab0BnwGjAf8BvQGfAaMB/wG9AZ8BowH/Ab0BnwGjAf8BvQGf
AaEB/wG9AaABpwH/Ab0BngGgAf8B0gIAAf8B0gIAAf8B0QIAAf8B0wIAAf8B0gIAAf8B0gIAAf8B0QIA
Af8B0wIAAf8B0QIAAf8B0wIAAf8B0QIAAf8BzwIAAf8B1QIAAf8B1gIAAf8B0wIAAf8B2wIAAf8BgAE6
ARQB/gMOARIEAANRAZ8BwQG6AYwB/wEAAboB/gH/AQABtwH6Af8BAAG0AfkB/wEAAbIB+AH/AQABrwH4
Af8BAAGsAfgB/wEAAakB9wH/AQABpgH2Af8BAAGjAfYB/wEAAaAB9QH/AQABnQH1Af8BAAGaAfsB/wEA
AZwBywH/AdIBhAEAAf8BygIAAf8BvQGBAQAB/wGaAY4BAAH/AbcCAAH/AbQCAAH/AbICAAH/AbACAAH/
Aa0CAAH/AawCAAH/AasCAAH/AasCAAH/AagCAAH/AdgBoAEAAf8DUQGfBAADBgEHA6wB/wP8Af8D+QH/
CAAD+QH/A/gB/wP4Af8D+AH/A/gB/wP4Af8D+AH/A/gB/wP4Af8D+AH/A/gB/wP4Af8D+AH/A/gB/wP4
Af8D+AH/A/gB/wP4Af8D+AH/A/kB/wL+Av8EAAH5AvsB/wP8Af8DrAH/AwYBCBAAAzMBUgQAA+oB/wPo
Af8D6AH/A+gB/wPoAf8D6AH/A+gB/wPoAf8D6AH/A+gB/wPoAf8D6AH/A+kB/wPiAf8DzAH/A6MB/wOL
Af8DhwH/AwAB/wOMAf8DYgHvAwkBCxAAAw4BEgGAAWwBbgH+AcYBqwGtAf8BvwGkAaYB/wG+AaMBpQH/
Ab4BowGlAf8BvgGjAaUB/wG+AaMBpQH/Ab4BowGlAf8BvgGjAaUB/wG+AaMBpQH/Ab4BowGlAf8BvgGk
AakB/wG/AqMB/wHYAgAB/wHZAgAB/wHXAgAB/wH5AeMBygH/AeIBkAEAAf8B1gIAAf8B2wIAAf8B+gHo
AdQB/wHbAgAB/wH2Ad4BwwH/Ad0CAAH/AekBrAEAAf8B9wHZAbgB/wHxAcIBjAH/AeABggEAAf8B4QIA
Af8BgAE+ARQB/gMOARIEAAMfASwCagFoAfkBgwG6Ac8B/wEAAbkC/wEAAbYB+QH/AQABswH5Af8BAAGw
AfgB/wEAAa0B+AH/AQABqgH3Af8BAAGoAfcB/wEAAaQB9gH/AQABoQH1Af8BAAGeAfUB/wEAAZsB+gH/
AQABnAHMAf8BmAGUAYUB/wGPAZQBjQH/AQABlQHPAf8BAAGQAv8BkgGNAQAB/wG9AgAB/wGzAgAB/wGx
AgAB/wGvAgAB/wGtAgAB/wGrAgAB/wGnAgAB/wG9AgAB/wJqAWgB+QMfASwEAAMGAQcDrgH/A/wB/wQA
AeIB3wHeAf8B5AHiAeAB/wQAA/oB/wP5Af8D+QH/A/kB/wP5Af8D+QH/A/kB/wP5Af8D+QH/A/kB/wP5
Af8D+QH/A/kB/wP5Af8D+QH/A/kB/wP5Af8D+gH/BAAB5AHjAeEB/wHgAd4B2wH/BAAD/AH/A64B/wMG
AQgQAAMzAVIEAAPoAf8D5gH/A+YB/wPmAf8D5gH/A+YB/wPmAf8D5gH/A+YB/wPmAf8D5gH/A+YB/wPn
Af8D3gH/A78B/wMAAf8DAAH/AwAB/wOQAf8DogH/AyEBMBQAAw4BEgGAAW8BcQH+AcoBrgGwAf8BwwGn
AakB/wHCAaYBqAH/AcIBpgGoAf8BwgGmAagB/wHCAaYBqAH/AcIBpgGoAf8BwgGmAagB/wHCAaYBqAH/
AcIBpgGoAf8BwgGnAa0B/wHDAaUBpgH/Ad4CAAH/AeACAAH/Ad0CAAH/Af4B8gHmAf8B6wGdAQAB/wHe
AgAB/wHiAgAB/wH+AfsB9gH/AeACAAH/AfsB7AHaAf8B6AGSAQAD/wH+Af8B7AGsAQAB/wHnAZcBAAH/
AeQCAAH/AegCAAH/AYABQgEUAf4DDgESCAADSwGNAdUBuQEAAf8BAAG5AfIB/wEAAbcB/QH/AQABtAH5
Af8BAAGxAfgB/wEAAa4B+AH/AQABrAH3Af8BAAGpAfcB/wEAAaYB9gH/AQABowH2Af8BAAGgAfUB/wEA
AZ0B9AH/AQABmgH4Af8BAAGYAv8BAAGVAf4B/wEAAZAC/wEAAZMB/AH/AaYBiQEAAf8BuwIAAf8BtAIA
Af8BsgIAAf8BsAIAAf8BrgIAAf8BqgIAAf8BrgIAAf8B4AGsAQAB/wNLAY0IAAMGAQcDrwH/A/wB/wHf
Ad4B3QH/AasBpQGgAf8DAAH/AdMBzwHNAf8EAAP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/
A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8EAAHoAecB6AH/AbsBtQGxAf8DAAH/AcMBvQG7
Af8D/AH/A68B/wMGAQgQAAMzAVIEAAPnAf8D5QH/A+UB/wPlAf8D5QH/A+UB/wPlAf8D5QH/A+UB/wPl
Af8D5QH/A+YB/wPmAf8D1wH/A7YB/wPmAf8D7QH/BAAD7AH/AyUBNxgAAw4BEgGAAXQBdgH+Ac8BtAG2
Af8ByAGtAa8B/wHGAawBrgH/AcYBrAGuAf8BxgGsAa4B/wHGAawBrgH/AcYBrAGuAf8BxgGsAa4B/wHG
AawBrgH/AcYBrAGuAf8BxQGtAbIB/wHGAasBrAH/AegCAAH/AegCAAH/AecCAAH/AfsB6gHVAf8B+gHh
AcEB/wH1AcEBhAH/AekCAAH/Af4B/wH+Af8B6AIAAf8B+gHqAdIB/wHtAZEBAAH/AfwB9AHqAf8B8gGx
AQAB/wQAAe4BlgEAAf8B8AIAAf8BgAFGARYB/gMOARIIAAMJAQwCXwFbAdABugG5AZMB/wEAAbgB/QH/
AQABtgH8Af8BAAGzAfkB/wEAAbAB+AH/AQABrQH4Af8BAAGqAfcB/wEAAacB9wH/AQABpAH7Af8BAAGh
AfYB/wEAAZ4B9QH/AQABmwH0Af8BAAGYAfQB/wEAAZQB/AH/AQABmAHkAf8BngGRAQAB/wHAAgAB/wG3
AgAB/wG1AgAB/wGzAgAB/wGxAgAB/wGuAgAB/wGrAgAB/wHVAZwBAAH/A18B0AMJAQwIAAMGAQcDsAH/
A/wB/wPJAf8B1QHUAdUB/wGyAbEBrgH/AbkBtgGzAf8EAAP7Af8D+wH/A/sB/wP7Af8D+wH/A/sB/wP7
Af8D+wH/A/sB/wP7Af8D+wH/A/sB/wP7Af8D+wH/A/sB/wP7Af8EAAPZAf8BzAHNAcwB/wHJAccBxQH/
AbUBsgGuAf8D/AH/A7AB/wMGAQgQAAMzAVIEAAPmAf8D5AH/A+QB/wPkAf8D5AH/A+QB/wPkAf8D5AH/
A+QB/wPkAf8D5AH/A+UB/wPjAf8D0wH/A7IB/wP5Af8EAAPpAf8DKAE7HAADDgESAYABegF8Af4B1AG7
Ab0B/wHMAbQBtgH/AcsBswG1Af8BywGzAbUB/wHLAbMBtQH/AcsBswG1Af8BywGzAbUB/wHLAbMBtQH/
AcsBswG1Af8BywGzAbUB/wHKAbQBuwH/AcsCswH/AfACAAH/AfECAAH/Ae4CAAH/Af4B8gHmAf8B8gGa
AQAB/wHtAgAB/wHuAgAB/wH6AccBiwH/AfACAAH/AfwB7wHeAf8B8QGMAQAB/wHyAZkBAAH/AfkB0AGe
Af8B9wG9AQAB/wHxAgAB/wH4AYMBAAH/AYABSwEWAf4DDgESDAADHQEpA2AB6AGwAbkBnwH/AQABtwH9
Af8BAAG0Af0B/wEAAbEB+AH/AQABrgH4Af8BAAGrAf0B/wEAAawBxQH/AQABqQG9Af8BAAGjAfoB/wEA
AaAC/wEAAZ4C/wEAAZwC/wEAAZ0B2wH/AboBjQEAAf8BxgIAAf8BugIAAf8BuAIAAf8BtgIAAf8BtAIA
Af8BsQIAAf8BrgIAAf8B0QGXAQAB/wNgAegDHQEpDAADBgEHA7EB/wP9Af8D9QH/Ac8B0QHQAf8C1AHV
Af8D9QH/BAAD/AH/A/wB/wP8Af8D/AH/A/wB/wP8Af8D/AH/A/wB/wP8Af8D/AH/A/wB/wP8Af8D/AH/
A/wB/wP8Af8D/AH/BAAD+AH/AcMCxAH/AtIB0QH/A/EB/wP9Af8DsQH/AwYBCBAAAzMBUgP9Af8D5AH/
A+IB/wPiAf8D4gH/A+IB/wPiAf8D4gH/A+IB/wPiAf8D4gH/A+IB/wPjAf8D4QH/A84B/wOyAf8EAAPk
Af8DKAE8IAADDAEQAYYCAAH/AdkBwgHDAf8B0AG6AbwB/wHQAbkBuwH/AdABuQG7Af8B0AG5AbsB/wHQ
AbkBuwH/AdABuQG7Af8B0AG5AbsB/wHQAbkBuwH/AdABuQG7Af8BzwG6AcAB/wHQAbkBuAH/AfYBggEA
Af8B9wGBAQAB/wH2AgAB/wH8AeABvQH/AfwB4AG+Af8B/AHXAasB/wH3AZsBAAH/AfoByAGNAf8B9wGC
AQAB/wH+AfUB7gH/AfgBnAEAAf8B9gIAAf8B9gIAAf8B9gIAAf8B9wGBAQAC/wGKAQAB/wGpAgAB/wMM
ARAQAAMlATcCZQFcAecBuQG4AZMB/wEAAbYB8gH/AQABsgL/AQABrwH5Af8BAAGtAfoB/wEAAaoB7QH/
AZYBrAGpAf8BpAGqAZgB/wGbAaEBlQH/AZABnAGaAf8BoQGYAYIB/wHDAYoBAAH/AcQCAAH/Ab0CAAH/
AbwCAAH/AbkCAAH/AbcCAAH/AbICAAH/AbUCAAH/AdcBnwEAAf8DZQHnAyUBNxAAAwQBBQOuAf8D+AH/
A+oB/wPqAf8C6gHrAf8C7wHwAf8D8QH/AusB7QH/A/AB/wOdAf8DBgEIEAADMwFSFAAD+AH/A9cB/wOn
Af8DAAH/A5EB/wO5Af8DrgH/A5gB/wMAAf8DAAH/AwAB/wMAAf8DgAH/A8AB/wPxAf8IAAM3AVoQAAMF
AQYDUAGaAwAB/wG8Ab0BvAH/AccCyAH/A8IB/wPCAf8DwgH/A8IB/wPCAf8DwgH/A7cB/wOcAf8DAAH/
A/sB/wsAAf8DygH/BAAD9QH/AwAB/wPKAf8DAAH/A+cB/wMAAf8DlAH/AwAB/wOlAf8DlAH/A1ABmgMF
AQYUAAMeASsDXAHNAeMBsAEAAf8BygGLAQAB/wG5AgAB/wG9AgAB/wGhAYcBAAH/AQABjgHDAf8BAAGL
AbUB/wGHAYUBAAH/Aa0CAAH/AbcCAAH/AasCAAH/AasCAAH/AasCAAH/AaoCAAH/AagCAAH/AakCAAH/
Ab0CAAH/AeABrQEAAf8DXAHNAx4BKxQAAwYBBwOiAf8D7QH/AukB6gH/Ac0BzAHKAf8B0gHPAc4B/wHr
AewB7QH/A+cB/wPlAf8D5AH/A+QB/wPkAf8D5AH/A+QB/wPkAf8D5QH/A+YB/wPmAf8D5QH/A+UB/wPl
Af8D5QH/A+QB/wPkAf8D5QH/AuoB6wH/AdQB0gHRAf8BzQHLAckB/wPrAf8D7gH/A6IB/wMGAQgQAAMz
AVIQAAP5Af8DzwH/A54B/wOBAf8DkwH/A8gB/wPAAf8DvQH/A8MB/wOwAf8DiQH/AwAB/wMAAf8DAAH/
AwAB/wO0Af8D8AH/BAADNwFaEAADDAEQA0gB9gMAAf8BvQK+Af8BwgHDAcIB/wO+Af8DvgH/A74B/wO+
Af8DvgH/A74B/wO0Af8DlwH/AwAB/wP0Af8D/gH/BwAB/wOJAf8EAAO8Af8DAAH/A+cB/wMAAf8DAAH/
AwAB/wH6AfsB+gH/A7sB/wMAAf8DhAH/A2IB9gMMARAQAAMlATcDZQHnAd0BpwEAAf8BwgGAAQAB/wG8
AgAB/wHBAgAB/wGqAYoBAAH/AQABkAHzAf8BAAGGAf0B/wEAAYQB+wH/AQABgwH9Af8BAAGGAesB/wEA
AYcBmgH/AbYCAAH/AbECAAH/AaoCAAH/AasCAAH/AasCAAH/AasCAAH/AacCAAH/Aa4CAAH/AdUBnAEA
Af8DZQHnAyUBNxAAAwYBBwOgAf8D8AH/AdMB0AHRAf8BpgGhAZsB/wMAAf8BxQHCAb8B/wLtAe8B/wPl
Af8D5QH/A+UB/wPlAf8D5QH/A+UB/wPlAf8D5QH/A+YB/wPjAf8D4AH/A+EB/wPkAf8D5gH/A+UB/wPl
Af8D6gH/AdUC1AH/AZwBlgGRAf8BggIAAf8BtwGyAa8B/wHzAvQB/wOhAf8DBgEIEAADMwFSEAAD1QH/
A6YB/wOVAf8DkQH/A50B/wPKAf8DvwH/A7kB/wOyAf8DuAH/A8AB/wOyAf8DigH/AwAB/wMAAf8DAAH/
A7wB/wP2Af8DNwFaEAADDgESAwAB/wMAAf8BvQK8Af8BxAHFAcQB/wPBAf8DwQH/A8EB/wHEAcIBvgH/
AcQBwgG+Af8DvwH/A7YB/wOaAf8DAAH/A/QB/wP8Af8EAAPTAf8DAAH/AwAB/wMAAf8DsAH/IAADrgH/
Aw4BEgwAAx0BKQNgAegB2wGkAQAB/wHDAYEBAAH/AcACAAH/Ab8CAAH/AcgCAAH/AQABkwGnAf8BAAGL
Av8BAAGIAfEB/wEAAYUB8QH/AQABgwHxAf8CAAHzAf8CAAH+Af8BAAGIAcYB/wGfAgAB/wG2AgAB/wG0
AgAB/wGrAgAB/wGrAgAB/wGrAgAB/wGpAgAB/wGpAgAB/wHQAZUBAAH/A2AB6AMdASkMAAMGAQcDoQH/
A/AB/wLGAccB/wLoAekB/wG/AbwBugH/AbMBsAGtAf8B7gLwAf8D5gH/A+YB/wPmAf8D5gH/A+YB/wPm
Af8D5wH/A+YB/wPfAf8D1QH/A84B/wPSAf8D3AH/A+UB/wPmAf8D5gH/AusB7AH/AsgBxwH/AeYC5wH/
Ab4CugH/AaYBogGfAf8C9AH1Af8DogH/AwYBCBAAAzMBUgwAA+gB/wO4Af8DngH/A58B/wOdAf8DqwH/
A8cB/wPHAf8DuwH/A7cB/wOzAf8DsgH/A74B/wO5Af8DAAH/AwAB/wMAAf8DAAH/A9QB/wM3AVoQAAMO
ARIBSAEjATYB/gMAAf8BvwLBAf8ByALJAf8DxAH/AcoByAHEAf8B1AHSAcMB/wHBAcIBygH/AcEBwgHK
Af8B1AHSAcMB/wG+AbwBtwH/ApsBnAH/AwAB/wP0Af8D/AH/AfoC+QH/BAAC+gH7Af8CzwHOAf8D8QH/
BAAD+gH/A/kB/wP6Af8B+wL6Af8B9gH5AfcB/wH2AfkB9wH/AvsB/AH/BAADgAH+Aw4BEggAAwkBDANf
AdAB3gGpAQAB/wHFAYUBAAH/AcQBgwEAAf8BwwGBAQAB/wHAAgAB/wHIAgAB/wEAAZMBrQH/AQABjQH8
Af8BAAGKAfIB/wEAAYcB8QH/AQABhAHxAf8BAAGBAfAB/wIAAfAB/wIAAfgB/wEAAYMB9gH/AQABhwHL
Af8BhgGDAYAB/wGyAgAB/wGtAgAB/wGrAgAB/wGrAgAB/wGqAgAB/wGpAgAB/wHVAZwBAAH/A18B0AMJ
AQwIAAMGAQcDoQH/A+8B/wPfAf8DtQH/AbsBugG5Af8D4AH/A+oB/wPnAf8D5wH/A+cB/wPnAf8D5wH/
A+gB/wPuAf8D5wH/A9MB/wO9Af8DsQH/A8AB/wPVAf8D4wH/A+gB/wPnAf8D6QH/A+IB/wPFAf8BvgK9
Af8B1wLYAf8D8QH/A6EB/wMGAQgQAAMzAVIIAAP9Af8DywH/A6sB/wOoAf8DqgH/A48B/wMAAf8DAAH/
A4IB/wPMAf8DuQH/A7QB/wOzAf8DtQH/A7YB/wMAAf8DAAH/AwAB/wMAAf8DoQH/A08BmRAAAw4BEgFH
ASIBNgH+AwAB/wHDAsQB/wHLAs0B/wLNAcgB/wLOAckB/wEAAYEB4gH/AgAB9wH/AgAB9wH/AQABggHg
Af8BwwHCAb0B/wGkAaMBnwH/AwAB/wL1AfQB/wH8AfsB/AH/AewB9QH3Af8B6gH3AfoB/wHtAfoC/wH2
A/8B/AL+Af8D+QH/A/kB/wP5Af8B9wH5AfcB/wHvAfgB8AH/AesB+wHzAf8B6wH7AfMB/wHvAfkB8wH/
BAADgAH+Aw4BEggAA0sBjQHlAbMBAAH/AcsBjQEAAf8BxwGHAQAB/wHGAYUBAAH/AcMBggEAAf8BwQIA
Af8ByQIAAf8BAAGVAa0B/wEAAY4B/AH/AQABiwHyAf8BAAGIAfEB/wEAAYUB8QH/AQABggHxAf8CAAHw
Af8CAAHwAf8CAAHxAf8CAAH4Af8BAAGAAv8BAAGKAckB/wGvAgAB/wGsAgAB/wGrAgAB/wGrAgAB/wGp
AgAB/wGuAgAB/wHgAawBAAH/A0sBjQgAAwYBBwOhAf8D7QH/A+sB/wPpAf8B6QLqAf8D6wH/A+cB/wPn
Af8D5wH/A+cB/wPnAf8D5wH/A+sB/wPWAf8DxwH/A6sB/wGRAZIBkQH/A5sB/wO1Af8D0gH/A+MB/wPn
Af8D5wH/A+cB/wPqAf8D6QH/A+kB/wPtAf8D7QH/A6EB/wMGAQgQAAMzAVIIAAPuAf8DwAH/A6wB/wOs
Af8DuQH/AwAB/wMAAf8DAAH/AwAB/wPIAf8DvQH/A7YB/wOzAf8DxAH/A6AB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/A2AB2wMhAS8MAAMOARIBRQEhATQB/gMAAf8DxQH/Ac8B0QHPAf8B3QHZAckB/wIAAdAB/wIA
AfwB/wGrAbsB/gH/Aa0BuwH+Af8CAAH8Af8CAAHGAf8BsQGvAZ8B/wOBAf8B9gH0AfUB/wHvAfYB+QH/
AeEB8AH3Af8B6gH5Av8B7AH4Av8B4QHwAfcB/wHqAfAB9QH/AfoC+QH/AfoB+QH6Af8B+gL5Af8B6gH1
Ae4B/wHkAfcB6wH/Ae0B/wH0Af8B7QH/AfQB/wHlAfgB6wH/AfIB/QH4Af8DgAH+Aw4BEgQAAx8BLAJq
AWgB+QHVAZwBAAH/AckBiwEAAf8ByQGKAQAB/wHGAYYBAAH/AcUBgwEAAf8BwgGAAQAB/wHKAgAB/wEA
AZYBqAH/AQABkAH9Af8BAAGNAfIB/wEAAYoB8gH/AQABhgHxAf8BAAGEAfEB/wEAAYAB8AH/AgAB8AH/
AgAB8AH/AgAB8AH/AgAB8AH/AQABggL/AZcCAAH/AbACAAH/AasCAAH/AasCAAH/AasCAAH/AacCAAH/
Ab0CAAH/AmoBaAH5Ax8BLAQAAwYBBwOjAf8D7wH/A+gB/wPpAf8D6QH/A+gB/wPoAf8D6QH/A+kB/wPp
Af8D6QH/A+oB/wPvAf8BlQGWAZUB/wGOAY8BjgH/AZQBlgGVAf8DAAH/A4gB/wOwAf8D0gH/A+cB/wPq
Af8D6QH/A+kB/wPoAf8D6QH/A+kB/wPoAf8D7gH/A6MB/wMGAQgQAAMzAVIIAAPhAf8DuAH/A6wB/wOu
Af8DsgH/A5EB/wMAAf8DAAH/AwAB/wPGAf8DxAH/A8UB/wO7Af8DoAH/A5IB/wOyAf8DlQH/AwAB/wMA
Af8DAAH/AysB/ANBAXIMAAMOARIBQgEfATIB/gMAAf8DyAH/AtkB1AH/AckByAHHAf8CAAG9Af8CAAHv
Af8CAAH1Af8CAAH1Af8CAAHvAf8CAAGzAf8BoAGfAZwB/wGHAYYBhQH/AvIB9AH/AeYB7gHyAf8B3gHr
AfIB/wHnAfUB+wH/AeQB8wH5Af8B3gHrAfIB/wHkAe4B8gH/AfkB9wH5Af8D/AH/AfwB/gH8Af8B5gH2
Ae4B/wHhAfQB6QH/AeYB+gHtAf8B6gH8AfAB/wHgAfUB6AH/AewB+wHxAf8DgAH+Aw4BEgQAA1EBngHi
Aa8BAAH/Ac0BkAEAAf8BzAGOAQAB/wHKAYsBAAH/AccBiAEAAf8BxQGFAQAB/wHDAYEBAAH/AcsCAAH/
AYQBlgGeAf8BAAGSAf4B/wEAAY4B8gH/AQABiwHyAf8BAAGIAfEB/wEAAYUB8QH/AQABggHxAf8CAAHw
Af8CAAHwAf8CAAHwAf8CAAHwAf8BAAGCAfsB/wGVAgAB/wGwAgAB/wGrAgAB/wGrAgAB/wGrAgAB/wGr
AgAB/wGoAgAB/wHYAaABAAH/A1EBnwQAAwYBBwOkAf8D8AH/A+oB/wPqAf8D6gH/A+oB/wPqAf8D6gH/
A+oB/wPqAf8D6gH/A+oB/wP1Af8BywHKAcsB/wPPAf8D2gH/A64B/wMAAf8DrgH/A9cB/wPpAf8D6wH/
A+oB/wPqAf8D6gH/A+oB/wPqAf8D6gH/A/AB/wOkAf8DBgEIEAADMwFSBAAD/gH/A9cB/wPPAf8DwQH/
A60B/wOoAf8DuwH/AwAB/wMAAf8DAAH/A9QB/wO7Af8DmQH/AwAB/wMAAf8DvAH/A8AB/wO8Af8DAAH/
AwAB/wMAAf8DrgH/A08BlwwAAw4BEgE+AR4BLgH+AwAB/wHLAs0B/wLbAdcB/wHPAc4ByQH/AgABjgH/
AgABywH/AgAB6QH/AgAB6QH/AgABygH/AgABhQH/AqYBoQH/AYkBiAGHAf8C8gH0Af8B5QHsAfAB/wHg
Ae0B8QH/AeEB8AH1Af8B4gHyAfkB/wHnAfUB+gH/AecB7wHxAf8B/AH7AfwB/wQAA+wB/wHNAdgB0QH/
AeEB8wHoAf8B6wH9AfIB/wHqAfsB8AH/AekB/AHxAf8B7AH3AfAB/wOAAf4DDgQSARgDXgHwAdgBoAEA
Af8BzQGRAQAB/wHNAZABAAH/AcsBjQEAAf8ByQGKAQAB/wHGAYYBAAH/AcQBgwEAAf8BzAGDAQAB/wEA
AZkBuAH/AQABkgH8Af8BAAGPAfIB/wEAAYwB8gH/AQABigHyAf8BAAGGAfEB/wEAAYQB8QH/AQABgQHw
Af8CAAHwAf8CAAHwAf8CAAHxAf8BAAGEAfUB/wGgAgAB/wGuAgAB/wGrAgAB/wGrAgAB/wGrAgAB/wGr
AgAB/wGoAgAB/wG9AgAB/wNeAfADEgEYAwYBBwOkAf8D8AH/A+oB/wPqAf8D6gH/A+oB/wPqAf8D6gH/
A+oB/wPqAf8D6gH/A/UB/wOyAf8DvgH/CAADuwH/AwAB/wO4Af8D3QH/A+sB/wPqAf8D6gH/A+oB/wPq
Af8D6gH/A+oB/wPqAf8D8AH/A6QB/wMGAQgQAAMzAVIEAAP9Af8D4QH/A/IB/wPyAf8D0gH/A6wB/wOy
Af8DvAH/AwAB/wMAAf8DwAH/AwAB/wODAf8DmQH/A6MB/wO9Af8DswH/A7sB/wOGAf8DAAH/AwAB/wOo
Af8DUQGiDAADDgESATwBHQEtAf4DAAH/Ac4CzwH/A9cB/wHtAeoB3gH/AwAB/wIAAcMB/wIAAfwB/wIA
AfwB/wIAAcQB/wMAAf8BvgG8AbEB/wOGAf8D9QH/AfAB9AH1Af8B6wH4AfwB/wMAAf8B4AHtAfIB/wHb
AeYB6wH/AwAB/wPlAf8DmQH/AwAB/wMAAf8B0QHhAdgB/wG9AcsBwgH/AwAB/wHmAfYB6wH/AwAB/wOA
Af4DDgESAzgBXAHmAbUBAAH/AdMBmQEAAf8BzwGUAQAB/wHOAZIBAAH/AcwBjgEAAf8BygGLAQAB/wHH
AYgBAAH/AcYBgwEAAf8BxwGKAQAB/wEAAZsB3AH/AQABkwH4Af8BAAGRAfMB/wEAAY4B8gH/AQABiwHy
Af8BAAGIAfEB/wEAAYUB8QH/AQABggHwAf8CAAHwAf8CAAHwAf8CAAH+Af8BAAGIAcUB/wG4AgAB/wGz
AgAB/wGtAgAB/wGrAgAB/wGrAgAB/wGrAgAB/wGqAgAB/wGtAgAB/wHhAa4BAAH/AzgBXAMGAQcDpAH/
A/EB/wPrAf8D6wH/A+sB/wPrAf8D6wH/A+sB/wPrAf8D6wH/A+sB/wP8Af8DmAH/A6MB/wgAA6kB/wMA
Af8DxwH/A+QB/wPtAf8D6wH/A+sB/wPrAf8D6wH/A+sB/wPrAf8D6wH/A/EB/wOkAf8DBgEIEAADMwFS
BAAD/AH/A9UB/wOuAf8DAAH/AwAB/wOzAf8DugH/A+kB/wMAAf8DAAH/AwAB/wOTAf8DsAH/A8MB/wO6
Af8DsQH/A7MB/wO6Af8DhgH/AwAB/wMAAf8DrgH/A1ABmgwAAw4BEgE7ASABLQH+AwAB/wHQAtEB/wPa
Af8C2wHZAf8B3AHaAdAB/wIAAY8B/wIAAaMB/wIAAaMB/wIAAZAB/wHPAc0BxAH/Aq8BrQH/A4cB/wP1
Af8C/gH8Af8B+gH+Av8DAAH/AesB8QH2Af8DAAH/AwAB/wPRAf8DAAH/A5QB/wG8Ar0B/wH2Af4B+QH/
AQABggGAAf8DAAH/AYoBjgGLAf8DAAH/A4AB/gMOARIDUAGdAeEBrgEAAf8B0gGYAQAB/wHRAZYBAAH/
Ac4BkwEAAf8BzQGQAQAB/wHLAY0BAAH/AcgBiQEAAf8BygGEAQAB/wG2AZMBAAH/AQABmwH1Af8BAAGV
AfUB/wEAAZIB8wH/AQABjwHyAf8BAAGMAfIB/wEAAYkB8QH/AQABhgHyAf8BAAGCAfYB/wEAAYAB+wH/
AQABgAH+Af8BAAGIAdIB/wGyAgAB/wGlAgAB/wGFAYIBAAH/AagCAAH/Aa8CAAH/AasCAAH/AasCAAH/
AasCAAH/AagCAAH/AdIBmQEAAf8DUAGdAwYBBwOlAf8D8gH/A+wB/wPsAf8D7AH/A+wB/wPsAf8D7AH/
A+wB/wPsAf8D7AH/A/0B/wOgAf8DmAH/A/wB/wP+Af8DmgH/AwAB/wPWAf8D6gH/A+0B/wPsAf8D7AH/
A+wB/wPsAf8D7AH/A+wB/wPsAf8D8gH/A6UB/wMGAQgQAAMzAVIDuAH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8DiAH/A+oB/wO0Af8DAAH/AwAB/wMAAf8DAAH/A9MB/wPDAf8DugH/A7sB/wO5Af8DvAH/A4AB/wMA
Af8DAAH/A4AB/gNEAXgMAAMOARIBPQEiAS8B/gMAAf8D1gH/AdoC2wH/A9UB/wHfAd0B2gH/AeoB5wHb
Af8BxQHDAcEB/wHFAcQBwQH/AegB5wHbAf8B0wHQAc4B/wKpAasB/wOHAf8D9gH/CwAB/wMAAf8DAAH/
AwAB/wPLAf8DAAH/AZcClgH/AwAB/wHNAssB/wMAAf8BtgG3AbYB/wMAAf8DpgH/A4AB/gMOARIDXQHJ
AeMBqwEAAf8B2wGaAQAB/wHYAZYBAAH/Ac8BlAEAAf8BzgGRAQAB/wHMAY4BAAH/AckBiwEAAf8B0AGH
AQAB/wGRAZsBmAH/AQABmgH+Af8BAAGXAfQB/wEAAZMB8wH/AQABkQHzAf8BAAGNAfIB/wEAAYoB+gH/
AQABiwH4Af8BAAGMAdsB/wEAAYoBrAH/AZABgwEAAf8BvAIAAf8BmQIAAf8BAAGFAfQB/wIAAv8BAAGJ
AeAB/wGrAgAB/wGtAgAB/wGrAgAB/wGrAgAB/wGnAgAB/wHGAYcBAAH/A10ByQMGAQcDpgH/A/MB/wPt
Af8D7QH/A+0B/wPtAf8D7QH/A+0B/wPtAf8D7QH/A+0B/wQAA6IB/wOVAf8D+QH/A/sB/wOWAf8DAAH/
A+MB/wPuAf8D7gH/A+0B/wPtAf8D7QH/A+0B/wPtAf8D7QH/A+0B/wPzAf8DpgH/AwYBCBAAAzMBUgMA
Af8DAAH/A5cB/wOxAf8D8AH/A4MB/wMAAf8DgAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DoQH/A74B/wO5
Af8DqgH/A7QB/wOaAf8DAAH/AwAB/wMAAf8DYAHgAyUBNwwAAw4BEgE9ASQBLwH+AwAB/wHBAbwBvgH/
AewB8wHwAf8D3AH/AdoC3AH/A9wB/wHhAeIB4AH/AeEB4gHgAf8C2wHcAf8D0AH/Aa4CrwH/A4sB/wP3
Af8LAAH/AwAB/wP3Af8DAAH/A9YB/wPIAf8DAAH/A48B/wPyAf8DgAH/BwAB/wPqAf8DgAH+Aw4BEgNg
AeABmgG1AbAB/wGBAbABwQH/AbQBpwGFAf8B1wGXAQAB/wHOAZIBAAH/Ac0BkAEAAf8BygGMAQAB/wHR
AY0BAAH/AQABoQHIAf8BAAGbAfwB/wEAAZgB9AH/AQABlQHzAf8BAAGRAfQB/wEAAZAB/QH/AQABkwHJ
Af8BowGIAQAB/wG9AgAB/wHBAgAB/wG5AgAB/wGsAgAB/wEAAYYB6wH/AgAB9gH/AgAB8AH/AgAC/wEA
AYQBkAH/AbUCAAH/AasCAAH/AasCAAH/AagCAAH/Ab4CAAH/A2AB4AMGAQcDpgH/A/QB/wPuAf8D7gH/
A+4B/wPuAf8D7gH/A+4B/wPuAf8D7gH/A+4B/wQAA6QB/wMAAf8D2AH/A9gB/wMAAf8DAAH/A+8B/wPx
Af8D7gH/A+4B/wPuAf8D7gH/A+4B/wPuAf8D7gH/A+4B/wP0Af8DpgH/AwYBCBAAAzMBUgOVAf8DAAH/
A/MB/wPxAf8D9gH/A7MB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A5wB/wOYAf8DAAH/
AwAB/wMAAf8DAAH/AwAB/wOcAf8DUQGiEAADDgESAToBJQEtAf4DAAH/AwAB/wHJAcIBxQH/AeQC5QH/
AeEB4AHhAf8B4QHgAeEB/wHhAeAB4QH/AeEB4AHhAf8B4QLgAf8B1QLUAf8BtAKzAf8BiwGNAYsB/wP2
Af8LAAH/A50B/wcAAf8DywH/IAADgAH+Aw4BEgNlAewBAAG3AdkB/wEAAbQC/wEAAbMC/wGrAagBjwH/
Ad0BkwEAAf8BzgGQAQAB/wHMAY0BAAH/Ac0BkQEAAf8BAAGiAdkB/wEAAZwB+gH/AQABmQH0Af8BAAGW
AfQB/wEAAZQB+gH/AQABlgGtAf8BxAIAAf8BwAIAAf8BrAGAAQAB/wGqAgAB/wHEAgAB/wEAAYcBmQH/
AgAB/gH/AgAB8AH/AgAB8AH/AgAB+wH/AQABhQGmAf8BtgIAAf8BqwIAAf8BqwIAAf8BqAIAAf8BugIA
Af8DZQHsAwYBBwOmAf8D9AH/A+8B/wPvAf8D7gH/A+4B/wPuAf8D7gH/A+4B/wPuAf8D7gH/BAADpQH/
AwAB/wPFAf8DxQH/AwAB/wOGAf8D9wH/A/IB/wPuAf8D7gH/A+4B/wPuAf8D7gH/A+4B/wPuAf8D7gH/
A/QB/wOmAf8DBgEIEAADMwFSA9sB/wMAAf8D4QH/A+wB/wPcAf8D3AH/AwAB/wMAAf8DAAH/A5gB/wOd
Af8DAAH/A44B/wO5Af8DyAH/A7MB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A84B/wM4AV0QAAMOARIBMwEi
AScB/gMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wHmAeMB5QH/
AfIB8AHxAf8B7QLsAf8C6wHqAf8B9gH0AfUB/wHwAe0B7wH/AeoB6AHqAf8B7AHrAewB/wHtAesB7AH/
AewB6gHrAf8B7AHqAesB/wHrAeoB6wH/AewB6gHsAf8B7AHqAesB/wHtAewB7QH/AfUB9AH1Af8DgAH+
Aw4BEgNlAewBAAG4AdUB/wEAAbUC/wEAAbIB/AH/AQABsQHyAf8BoQGpAZoB/wHUAZYBAAH/Ac8BjAEA
Af8ByQGVAQAB/wEAAaMB5AH/AQABnQH5Af8BAAGbAfQB/wEAAZgB/AH/AQABmgHDAf8B0QGAAQAB/wHA
AgAB/wHCAgAB/wGmAYQBAAH/AQABkgHXAf8BpwGKAQAB/wEAAYUB1AH/AgAB9QH/AgAB8AH/AgAB8AH/
AgAB+wH/AQABhQGmAf8BtgIAAf8BqwIAAf8BqwIAAf8BqAIAAf8BugIAAf8DZQHsAwYBBwOqAf8D+QH/
A/QB/wPyAf8D8gH/A/EB/wPwAf8D8AH/A+8B/wPvAf8D7wH/BAADoQH/A6IB/wgAA6EB/wORAf8D/gH/
A/EB/wPvAf8D7wH/A+8B/wPvAf8D7wH/A+8B/wPvAf8D7wH/A/UB/wOnAf8DBgEIEAADMwFSBwAB/wOY
Af8D8gH/A9kB/wQAA5AB/wMAAf8D1gH/A+kB/wPgAf8D3QH/A9cB/wPRAf8DzgH/A50B/wMAAf8DgAH/
AwAB/wMAAf8DswH/A/QB/wM3AVoQAAMOARIBLAEfASMB/gMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wHnAeUB5gH/A/EB/wHsAecB6gH/AfAB6wHtAf8B7QHqAewB/wHs
AecB6gH/AfAB6wHtAf8B7QHqAewB/wHsAeoB6wH/AewB6gHrAf8B7AHqAewB/wHtAesB7AH/Ae0B6wHt
Af8B7wHrAe0B/wHwAe0B7wH/AfcB9QH3Af8DgAH+Aw4BEgNgAeABhAG4AcwB/wEAAbYC/wEAAbMB+QH/
AQABsAH7Af8BAAGwAv8BjAGqAbEB/wHZAZQBAAH/AdQBlAEAAf8BAAGlAd8B/wEAAZ4B+gH/AQABnAH0
Af8BAAGZAfkB/wEAAZkB2gH/AaQBkQEAAf8BsAGJAQAB/wGlAYkBAAH/AbgBhwEAAf8BAAGPAcUB/wEA
AYcB+wH/AQABgQHxAf8CAAHwAf8CAAHwAf8CAAHwAf8CAAH7Af8BAAGEAaQB/wG2AgAB/wGrAgAB/wGr
AgAB/wGoAgAB/wG+AgAB/wNgAeADBgEHA6oB/wP5Af8D9AH/A/QB/wP0Af8D9AH/A/QB/wPzAf8D8wH/
A/MB/wPyAf8EAAOiAf8BqgKpAf8IAAOpAf8DnQH/BAAD8QH/A/AB/wPwAf8D8AH/A/AB/wPwAf8D8AH/
A/AB/wPwAf8D9gH/A6gB/wMGAQgQAAMzAVIEAAOIAf8DAAH/A/AB/wPpAf8DqgH/AwAB/wMAAf8DrgH/
A+MB/wPKAf8DywH/A84B/wPIAf8DnQH/A4EB/wOGAf8DAAH/AwAB/wOrAf8D5wH/BAADNwFaEAADDgES
ASEBGQEcAf4DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8C6wHw
Af8C9gH+Af8C7wH0Af8B8AHvAfQB/wHwAe4B9QH/AfAB7gH1Af8B8AHxAfUB/wHwAfEB9QH/AfAB8QH1
Af8C8QH1Af8B8QHwAfcB/wHxAfIB9wH/AvIB9gH/AvIB+QH/AfQB8gH6Af8B+wH6Av8DgAH+Aw4BEgNd
AckBlwG5AbgB/wEAAbgC/wEAAbUB+QH/AQABsgH5Af8BAAGvAfkB/wEAAa0B/gH/AQABqgHDAf8BnQGk
AZgB/wEAAaQB7gH/AQABoAH3Af8BAAGdAfUB/wEAAZoB8wH/AQABlwH4Af8BAAGWAfoB/wEAAZUB9AH/
AQABkgH5Af8BAAGQAfEB/wEAAYkB8QH/AQABhQHzAf8BAAGDAfEB/wEAAYAB8AH/AgAB8AH/AgAB8AH/
AgAB/QH/AQABhAGVAf8BtQIAAf8BqwIAAf8BqwIAAf8BpwIAAf8BxgGHAQAB/wNdAckDBgEHA6sB/wP6
Af8D9AH/A/QB/wP0Af8D9AH/A/QB/wP0Af8D9AH/A/QB/wP0Af8EAAOmAf8DAAH/A8QB/wPEAf8DAAH/
A6QB/wQAA/EB/wPxAf8D8QH/A/AB/wPwAf8D8AH/A/AB/wPwAf8D8AH/A/UB/wOnAf8DBgEIEAADMwFS
BAADyAH/AwAB/wOHAf8DAAH/AwAB/wMAAf8DAAH/A8sB/wPbAf8DzwH/A8QB/wOsAf8DmgH/A4sB/wOH
Af8DAAH/A4AB/wO3Af8D5wH/A/EB/wQAAzcBWhAAAw4BEgEeARgBGgH+AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AeAC3AH/AewB6gHrAf8B5gHjAeYB/wHmAeMB5gH/
AeYB4wHmAf8B5gHjAeYB/wHmAeMB5gH/AeYB4wHmAf8B5gHjAeYB/wHnAeMB5gH/AecC5gH/AecB5QHm
Af8B5wHlAeYB/wHnAeUB5gH/AegB5gHoAf8B8QLtAf8DgAH+Aw4BEgNQAZ0BtQG6AZkB/wEAAbkC/wEA
AbYB+QH/AQABswH5Af8BAAGwAfgB/wEAAa4B+AH/AQABqwH+Af8BAAGpAv8BAAGkAfcB/wEAAaIB9QH/
AQABnwH1Af8BAAGcAfQB/wEAAZkB9AH/AQABlgH0Af8BAAGSAfQB/wEAAZAB8wH/AQABjAH6Af8BAAGM
AfkB/wEAAYcB8AH/AQABgwH2Af8BAAGBAfsB/wIAAfkB/wIAAfgB/wEAAYMB/gH/AZcCAAH/AbACAAH/
AasCAAH/AasCAAH/AagCAAH/AdIBmQEAAf8DUAGdAwYBBwOrAf8D+wH/A/UB/wP1Af8D9QH/A/UB/wP1
Af8D9QH/A/UB/wP1Af8D9QH/BAADvgH/AwAB/wMAAf8DAAH/AwAB/wO+Af8EAAP2Af8D9QH/A/UB/wP0
Af8D9AH/A/MB/wPzAf8D8wH/A/IB/wP4Af8DqgH/AwYBCBAAAzMBUgQAA+4B/wMAAf8DAAH/AwAB/wOo
Af8D2QH/A/AB/wPZAf8DzwH/A9MB/wPQAf8DoAH/A5IB/wOVAf8DmAH/A6wB/wPUAf8D6AH/A+0B/wPu
Af8EAAM3AVoQAAMOARIBgAFyAXQB/gHRAbkBvAH/AcoBswG2Af8ByQGyAbUB/wHJAbIBtQH/AckBsgG1
Af8ByQGyAbUB/wHJAbIBtQH/AckBsgG1Af8ByQGyAbUB/wHJAbIBtQH/AckBtAG7Af8BxgKsAf8BzAIA
Af8BygIAAf8BygIAAf8BygIAAf8BygIAAf8BygIAAf8BygIAAf8BygIAAf8BygIAAf8BygIAAf8BygIA
Af8ByQIAAf8ByQIAAf8ByQIAAf8BygIAAf8B0gIAAf8BgAE2ARQB/gMOARIDOAFcAdcBuQEAAf8BAAG6
AfYB/wEAAbcB/AH/AQABtQH5Af8BAAGyAfkB/wEAAa8B+AH/AQABrAH4Af8BAAGpAfcB/wEAAaYB9gH/
AQABowH2Af8BAAGgAfUB/wEAAZ0B9QH/AQABmgH0Af8BAAGYAfQB/wEAAZQB8wH/AQABkgH9Af8BAAGT
AdQB/wGdAZQBAAH/AQABjwHsAf8BAAGLAdoB/wEAAYoBpwH/AQABiAG/Af8BAAGHAdEB/wEAAYcBmwH/
AbMCAAH/AasCAAH/AasCAAH/AaoCAAH/Aa0CAAH/AeEBrgEAAf8DOAFcAwYBBwOsAf8D/AH/A/YB/wP2
Af8D9gH/A/YB/wP2Af8D9gH/A/YB/wP2Af8D9gH/A/gB/wP7Af8D8wH/AfEC8wH/AfEC8wH/A/MB/wP7
Af8D+AH/A/YB/wP2Af8D9gH/A/YB/wP2Af8D9gH/A/YB/wP2Af8D9wH/A/wB/wOsAf8DBgEIEAADMwFS
BAAD7QH/A9MB/wPKAf8D6wH/A+sB/wPrAf8D6wH/A+QB/wPaAf8D1QH/A84B/wPCAf8DwgH/A8sB/wPa
Af8D4gH/A+MB/wPjAf8D4wH/A+MB/wP+Af8DOAFbEAADDgESAYABbAFuAf4BxgGqAawB/wG/AaMBpQH/
Ab4BogGkAf8BvgGiAaQB/wG+AaIBpAH/Ab4BogGkAf8BvgGiAaQB/wG+AaIBpAH/Ab4BogGkAf8BvgGi
AaMB/wG+AaMBqAH/Ab4BogGhAf8B0AIAAf8B0AIAAf8B0AIAAf8B0AIAAf8B0AIAAf8B0AIAAf8B0AIA
Af8B0AIAAf8B0AIAAf8B0AIAAf8B0AIAAf8B0AIAAf8B0AIAAf8B0AIAAf8B0QIAAf8B2AIAAf8BgAE3
ARQB/gMOBBIBGANeAfABhAG6Ac0B/wEAAbkC/wEAAbYB+QH/AQABswH5Af8BAAGwAfgB/wEAAa4B+AH/
AQABqgH3Af8BAAGoAfcB/wEAAaQB9gH/AQABogH2Af8BAAGeAfUB/wEAAZwB9AH/AQABmQH0Af8BAAGW
AfwB/wEAAZgBtQH/AcMBggEAAf8BxQIAAf8BpAGLAQAB/wG1AgAB/wG/AgAB/wG8AgAB/wG5AgAB/wG2
AgAB/wGrAgAB/wGrAgAB/wGrAgAB/wGoAgAB/wG9AgAB/wNeAfADEgEYAwYBBwOrAf8D/AH/A/cB/wP3
Af8D9wH/A/cB/wP3Af8D9wH/A/cB/wP3Af8D9wH/A/cB/wP6Af8D/QH/A/4B/wP+Af8D/QH/A/oB/wP3
Af8D9wH/A/cB/wP3Af8D9wH/A/cB/wP3Af8D9wH/A/cB/wP3Af8D/AH/A6sB/wMGAQgQAAMzAVIEAAPs
Af8D6gH/A+oB/wPqAf8D6gH/A+oB/wPqAf8D6gH/A+YB/wPgAf8D2gH/A9oB/wPdAf8D3wH/A9sB/wPP
Af8DxwH/A8UB/wPHAf8DwgH/A9cB/wM1AVUQAAMOARIBgAFqAW0B/gHFAacBqgH/Ab4BoAGkAf8BvQGf
AaMB/wG9AZ8BowH/Ab0BnwGjAf8BvQGfAaMB/wG9AZ8BowH/Ab0BnwGjAf8BvQGfAaMB/wG9AZ8BoQH/
Ab0BoAGnAf8BvQGeAaAB/wHSAgAB/wHSAgAB/wHRAgAB/wHTAgAB/wHSAgAB/wHSAgAB/wHRAgAB/wHT
AgAB/wHRAgAB/wHTAgAB/wHRAgAB/wHPAgAB/wHVAgAB/wHWAgAB/wHTAgAB/wHbAgAB/wGAATsBFQH+
Aw4BEgQAA1EBnwHBAboBjAH/AQABugH+Af8BAAG3AfoB/wEAAbQB+QH/AQABsgH4Af8BAAGvAfgB/wEA
AawB+AH/AQABqQH3Af8BAAGmAfYB/wEAAaMB9gH/AQABoAH1Af8BAAGdAfUB/wEAAZoB+wH/AQABnAHL
Af8B0gGEAQAB/wHKAgAB/wG9AYEBAAH/AZoBjgEAAf8BtwIAAf8BtAIAAf8BsgIAAf8BsAIAAf8BrQIA
Af8BrAIAAf8BqwIAAf8BqwIAAf8BqAIAAf8B2AGgAQAB/wNRAZ8EAAMGAQcDrAH/A/wB/wP5Af8IAAP5
Af8D+AH/A/gB/wP4Af8D+AH/A/gB/wP4Af8D+AH/A/gB/wP4Af8D+AH/A/gB/wP4Af8D+AH/A/gB/wP4
Af8D+AH/A/gB/wP4Af8D+QH/Av4C/wQAAfkC+wH/A/wB/wOsAf8DBgEIEAADMwFSBAAD6gH/A+gB/wPo
Af8D6AH/A+gB/wPoAf8D6AH/A+gB/wPoAf8D6AH/A+gB/wPoAf8D6QH/A+IB/wPMAf8DowH/A4sB/wOH
Af8DAAH/A4wB/wNiAe8DCQELEAADDgESAYABbQFvAf4BxgGrAa0B/wG/AaQBpgH/Ab4BowGlAf8BvgGj
AaUB/wG+AaMBpQH/Ab4BowGlAf8BvgGjAaUB/wG+AaMBpQH/Ab4BowGlAf8BvgGjAaUB/wG+AaQBqQH/
Ab8CowH/AdgCAAH/AdkCAAH/AdcCAAH/AfkB4wHKAf8B4gGQAQAB/wHWAgAB/wHbAgAB/wH6AegB1AH/
AdsCAAH/AfYB3gHDAf8B3QIAAf8B6QGsAQAB/wH3AdkBuAH/AfEBwgGMAf8B4AGCAQAB/wHhAgAB/wGA
AT8BFQH+Aw4BEgQAAx8BLAJqAWgB+QGDAboBzwH/AQABuQL/AQABtgH5Af8BAAGzAfkB/wEAAbAB+AH/
AQABrQH4Af8BAAGqAfcB/wEAAagB9wH/AQABpAH2Af8BAAGhAfUB/wEAAZ4B9QH/AQABmwH6Af8BAAGc
AcwB/wGYAZQBhQH/AY8BlAGNAf8BAAGVAc8B/wEAAZAC/wGSAY0BAAH/Ab0CAAH/AbMCAAH/AbECAAH/
Aa8CAAH/Aa0CAAH/AasCAAH/AacCAAH/Ab0CAAH/AmoBaAH5Ax8BLAQAAwYBBwOuAf8D/AH/BAAB4gHf
Ad4B/wHkAeIB4AH/BAAD+gH/A/kB/wP5Af8D+QH/A/kB/wP5Af8D+QH/A/kB/wP5Af8D+QH/A/kB/wP5
Af8D+QH/A/kB/wP5Af8D+QH/A/kB/wP6Af8EAAHkAeMB4QH/AeAB3gHbAf8EAAP8Af8DrgH/AwYBCBAA
AzMBUgQAA+gB/wPmAf8D5gH/A+YB/wPmAf8D5gH/A+YB/wPmAf8D5gH/A+YB/wPmAf8D5gH/A+cB/wPe
Af8DvwH/AwAB/wMAAf8DAAH/A5AB/wOiAf8DIQEwFAADDgESAYABcAFyAf4BygGuAbAB/wHDAacBqQH/
AcIBpgGoAf8BwgGmAagB/wHCAaYBqAH/AcIBpgGoAf8BwgGmAagB/wHCAaYBqAH/AcIBpgGoAf8BwgGm
AagB/wHCAacBrQH/AcMBpQGmAf8B3gIAAf8B4AIAAf8B3QIAAf8B/gHyAeYB/wHrAZ0BAAH/Ad4CAAH/
AeICAAH/Af4B+wH2Af8B4AIAAf8B+wHsAdoB/wHoAZIBAAP/Af4B/wHsAawBAAH/AecBlwEAAf8B5AIA
Af8B6AIAAf8BgAFDARUB/gMOARIIAANLAY0B1QG5AQAB/wEAAbkB8gH/AQABtwH9Af8BAAG0AfkB/wEA
AbEB+AH/AQABrgH4Af8BAAGsAfcB/wEAAakB9wH/AQABpgH2Af8BAAGjAfYB/wEAAaAB9QH/AQABnQH0
Af8BAAGaAfgB/wEAAZgC/wEAAZUB/gH/AQABkAL/AQABkwH8Af8BpgGJAQAB/wG7AgAB/wG0AgAB/wGy
AgAB/wGwAgAB/wGuAgAB/wGqAgAB/wGuAgAB/wHgAawBAAH/A0sBjQgAAwYBBwOvAf8D/AH/Ad8B3gHd
Af8BqwGlAaAB/wMAAf8B0wHPAc0B/wQAA/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/
A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wQAAegB5wHoAf8BuwG1AbEB/wMAAf8BwwG9AbsB/wP8
Af8DrwH/AwYBCBAAAzMBUgQAA+cB/wPlAf8D5QH/A+UB/wPlAf8D5QH/A+UB/wPlAf8D5QH/A+UB/wPl
Af8D5gH/A+YB/wPXAf8DtgH/A+YB/wPtAf8EAAPsAf8DJQE3GAADDgESAYABdQF3Af4BzwG0AbYB/wHI
Aa0BrwH/AcYBrAGuAf8BxgGsAa4B/wHGAawBrgH/AcYBrAGuAf8BxgGsAa4B/wHGAawBrgH/AcYBrAGu
Af8BxgGsAa4B/wHFAa0BsgH/AcYBqwGsAf8B6AIAAf8B6AIAAf8B5wIAAf8B+wHqAdUB/wH6AeEBwQH/
AfUBwQGEAf8B6QIAAf8B/gH/Af4B/wHoAgAB/wH6AeoB0gH/Ae0BkQEAAf8B/AH0AeoB/wHyAbEBAAH/
BAAB7gGWAQAB/wHwAgAB/wGAAUcBFwH+Aw4BEggAAwkBDAJfAVsB0AG6AbkBkwH/AQABuAH9Af8BAAG2
AfwB/wEAAbMB+QH/AQABsAH4Af8BAAGtAfgB/wEAAaoB9wH/AQABpwH3Af8BAAGkAfsB/wEAAaEB9gH/
AQABngH1Af8BAAGbAfQB/wEAAZgB9AH/AQABlAH8Af8BAAGYAeQB/wGeAZEBAAH/AcACAAH/AbcCAAH/
AbUCAAH/AbMCAAH/AbECAAH/Aa4CAAH/AasCAAH/AdUBnAEAAf8DXwHQAwkBDAgAAwYBBwOwAf8D/AH/
A8kB/wHVAdQB1QH/AbIBsQGuAf8BuQG2AbMB/wQAA/sB/wP7Af8D+wH/A/sB/wP7Af8D+wH/A/sB/wP7
Af8D+wH/A/sB/wP7Af8D+wH/A/sB/wP7Af8D+wH/A/sB/wQAA9kB/wHMAc0BzAH/AckBxwHFAf8BtQGy
Aa4B/wP8Af8DsAH/AwYBCBAAAzMBUgQAA+YB/wPkAf8D5AH/A+QB/wPkAf8D5AH/A+QB/wPkAf8D5AH/
A+QB/wPkAf8D5QH/A+MB/wPTAf8DsgH/A/kB/wQAA+kB/wMoATscAAMOARIBgAF7AX0B/gHUAbsBvQH/
AcwBtAG2Af8BywGzAbUB/wHLAbMBtQH/AcsBswG1Af8BywGzAbUB/wHLAbMBtQH/AcsBswG1Af8BywGz
AbUB/wHLAbMBtQH/AcoBtAG7Af8BywKzAf8B8AIAAf8B8QIAAf8B7gIAAf8B/gHyAeYB/wHyAZoBAAH/
Ae0CAAH/Ae4CAAH/AfoBxwGLAf8B8AIAAf8B/AHvAd4B/wHxAYwBAAH/AfIBmQEAAf8B+QHQAZ4B/wH3
Ab0BAAH/AfECAAH/AfgBgwEAAf8BgAFMARcB/gMOARIMAAMdASkDYAHoAbABuQGfAf8BAAG3Af0B/wEA
AbQB/QH/AQABsQH4Af8BAAGuAfgB/wEAAasB/QH/AQABrAHFAf8BAAGpAb0B/wEAAaMB+gH/AQABoAL/
AQABngL/AQABnAL/AQABnQHbAf8BugGNAQAB/wHGAgAB/wG6AgAB/wG4AgAB/wG2AgAB/wG0AgAB/wGx
AgAB/wGuAgAB/wHRAZcBAAH/A2AB6AMdASkMAAMGAQcDsQH/A/0B/wP1Af8BzwHRAdAB/wLUAdUB/wP1
Af8EAAP8Af8D/AH/A/wB/wP8Af8D/AH/A/wB/wP8Af8D/AH/A/wB/wP8Af8D/AH/A/wB/wP8Af8D/AH/
A/wB/wP8Af8EAAP4Af8BwwLEAf8C0gHRAf8D8QH/A/0B/wOxAf8DBgEIEAADMwFSA/0B/wPkAf8D4gH/
A+IB/wPiAf8D4gH/A+IB/wPiAf8D4gH/A+IB/wPiAf8D4gH/A+MB/wPhAf8DzgH/A7IB/wQAA+QB/wMo
ATwgAAMMARABhgIAAf8B2QHCAcMB/wHQAboBvAH/AdABuQG7Af8B0AG5AbsB/wHQAbkBuwH/AdABuQG7
Af8B0AG5AbsB/wHQAbkBuwH/AdABuQG7Af8B0AG5AbsB/wHPAboBwAH/AdABuQG4Af8B9gGCAQAB/wH3
AYEBAAH/AfYCAAH/AfwB4AG9Af8B/AHgAb4B/wH8AdcBqwH/AfcBmwEAAf8B+gHIAY0B/wH3AYIBAAH/
Af4B9QHuAf8B+AGcAQAB/wH2AgAB/wH2AgAB/wH2AgAB/wH3AYEBAAL/AYoBAAH/AakCAAH/AwwBEBAA
AyUBNwJlAVwB5wG5AbgBkwH/AQABtgHyAf8BAAGyAv8BAAGvAfkB/wEAAa0B+gH/AQABqgHtAf8BlgGs
AakB/wGkAaoBmAH/AZsBoQGVAf8BkAGcAZoB/wGhAZgBggH/AcMBigEAAf8BxAIAAf8BvQIAAf8BvAIA
Af8BuQIAAf8BtwIAAf8BsgIAAf8BtQIAAf8B1wGfAQAB/wNlAecDJQE3EAADBAEFA64B/wP4Af8D/AH/
A/wB/wP8Af8D/AH/A/wB/wP8Af8D/AH/A/wB/wP8Af8D/AH/A/wB/wP8Af8D/AH/A/wB/wP8Af8D/AH/
A/wB/wP8Af8D/AH/A/wB/wP8Af8D/AH/A/wB/wP8Af8D/AH/A/wB/wP8Af8D+AH/A64B/wMFAQYQAAMz
AVID+wH/A+MB/wPhAf8D4QH/A+EB/wPhAf8D4QH/A+EB/wPhAf8D4QH/A+EB/wPhAf8D3wH/A9sB/wO8
Af8DzQH/A+oB/wMoATskAAMFAQYDWgH1AeIBzQHPAf8B2QHBAcMB/wHSAbwBvgH/AdIBvAG+Af8B0gG8
Ab4B/wHSAbwBvgH/AdIBvAG+Af8B0gG8Ab4B/wHSAbwBvgH/AdIBvAG+Af8B0QG+AcQB/wHUAbwBuwH/
AfwBgwEAAv8BggEAAf8B/AGCAQAB/wH8AYEBAAH/Af0BhgEAAf8B/QGKAQAB/wH8AYQBAAH/Af0BlQEA
Af8B/AGCAQAB/wH9AZkBAAH/Af0BiQEAAf8B/AGCAQAB/wH8AYMBAAH/AfwBgwEAAv8BiQEAAv8BkwEA
Af8BWgJWAfUDBQEGFAADHgErAlwBWwHNAdUBuAEAAf8BAAG1Ac0B/wEAAbEB/gH/AQABrgL/AQABqwH7
Af8BAAGoAf4B/wEAAacB7wH/AZoBogGXAf8B1QGKAQAB/wHMAYIBAAH/AcUBgAEAAf8BwQIAAf8BvwIA
Af8BvAIAAf8BuAIAAf8BtgIAAf8BxQGEAQAB/wHiAa4BAAH/A1wBzQMeASsYAANaAcIDwwH/A8IB/wPC
A/wB/wP8Af8D/AH/A/wB/wP8Af8D/AH/A/wB/wP8Af8D/AH/A/wB/wP4Af8DrgH/AwUBBhAAAzMBUgP7
Af8D4wH/A+EB/wPhAf8D4QH/A+EB/wPhAf8D4QH/A+EB/wPhAf8D4QH/A+EB/wPfAf8D2wH/A7wB/wPN
Af8D6gH/AygBOyQAAwUBBgNaAfUB4gHNAc8B/wHZAcEBwwH/AdIBvAG+Af8B0gG8Ab4B/wHSAbwBvgH/
AdIBvAG+Af8B0gG8Ab4B/wHSAbwBvgH/AdIBvAG+Af8B0gG8Ab4B/wHRAb4BxAH/AdQBvAG7Af8B/AGD
AQAC/wGCAQAB/wH8AYIBAAH/AfwBgQEAAf8B/QGGAQAB/wH9AYoBAAH/AfwBhAEAAf8B/QGVAQAB/wH8
AYIBAAH/Af0BmQEAAf8B/QGJAQAB/wH8AYIBAAH/AfwBgwEAAf8B/AGDAQAC/wGJAQAC/wGTAQAB/wFa
AlcB9QMFAQYUAAMeASsCXAFbAc0B1QG4AQAB/wEAAbUBzQH/AQABsQH+Af8BAAGuAv8BAAGrAfsB/wEA
AagB/gH/AQABpwHvAf8BmgGiAZcB/wHVAYoBAAH/AcwBggEAAf8BxQGAAQAB/wHBAgAB/wG/AgAB/wG8
AgAB/wG4AgAB/wG2AgAB/wHFAYQBAAH/AeIBrgEAAf8DXAHNAx4BKxgAA1oBwgPDAf8DwgH/A8IB/wPC
Af8DwgH/A8IB/wPCAf8DwgH/A8IB/wPCAf8DwgH/A8IB/wPCAf8DwgH/A8IB/wPCAf8DwgH/A8IB/wPC
Af8DwgH/A8IB/wPCAf8DwgH/A8IB/wPCAf8DwgH/A8IB/wPCAf8DwwH/A1sBxBQAAzMBUgP6Af8D4gH/
A+AB/wPgAf8D4AH/A+AB/wPgAf8D4AH/A+AB/wPgAf8D4AH/A+AB/wPbAf8DzwH/A8wB/wPMAf8DKAE7
LAADSAGDAbQCoQH/Ae8B3gHfAf8B7AHaAd0B/wHsAdoB3AH/AewB2gHcAf8B7AHaAdwB/wHsAdoB3AH/
AewB2gHcAf8B7AHaAdwB/wHsAdoB3AH/AesB3QHiAf8B6wHZAdcC/wGgAQAC/wGdAQAC/wGfAQAC/wGd
AQAC/wGdAQAC/wGdAQAC/wGdAQAC/wGaAQAC/wGeAQAC/wGZAQAC/wGdAQAC/wGeAQAC/wGfAQAC/wGg
AQAC/wGjAQAB/wHRAgAB/wFIAkcBgxwAAwoBDQNLAYwCbQFRAfcBvwG3AYwB/wEAAbIBzAH/AQABrQHz
Af8BAAGpAv8BAAGlAv8BAAGnAfYB/wHDAZIBAAH/AcYBggEAAf8BwgGAAQAB/wG/AgAB/wG+AgAB/wG/
AgAB/wHJAYoBAAH/AdwBpQEAAf8CbQFsAfcDSwGMAwoBDagAAzQBUzgAA8gB/wMnATo0AANHAYIDXgHt
AZQBhQGGAf8DgAH+A4AB/gOAAf4DgAH+A4AB/gOAAf4DgAH+A4AB/gOAAf4BgAFZARsB/gGAAVYBGQH+
AYABWAEaAf4BgAFYARoB/gGAAVgBGgH+AYABWAEaAf4BgAFYARoB/gGAAVgBGgH+AYABWAEaAf4BgAFY
ARoB/gGAAVgBGgH+AYABWAEaAf4BgAFYARsB/gGwAgAB/wNeAe0DRwGCKAADIQEvA1ABnQNeAe0B1gG4
AQAB/wGvAbQBmAH/AY0BsAG3Af8BsgGrAYoB/wHUAZgBAAH/Ac8BkgEAAf8B0AGUAQAB/wHTAZkBAAH/
AdoBowEAAf8B5AGxAQAB/wNeAe0DUAGdAyEBL7AAAxsBJQNNAZMDSAGEA0gBgwNIAYMDSAGDA0gBgwNI
AYMDSAGDA0gBgwNIAYMDSAGDA0gBgwNJAYgDRwGBAxgBINgAAxMBGgM4AVwDUQGcA1oBxwNdAd8DYQHr
A2EB6wNdAd8DWgHHA1EBnAM4AVwDFAEbKAABQgFNAT4HAAE+AwABKAMAAYADAAGAAwABAQEAAQEGAAEI
FgAD//8A/wADAAT/BAABgAIAAQEF/wH4AQcB/wgAAfACAAEPAf8B4AEAAf8IAAHwAgABDwH/AYABAAE/
CAAB8AIAAQ8B/gIAAR8BHAHnBgAB8AIAAQ8B/AIAAQ8BHAHnBgAB8AIAAQ8B/AIAAQcBHAHnBgAB8AIA
AQ8B+AIAAQMIAAHwAgABDwHwAgABAwEcAeADAAEBAeABAAHwAgABDwHwAgABAQEcAeADAAEGATABAAHw
AgABDwHgAgABAQEcAeMBwAIAAQwBGAEAAfACAAEPAeADAAEcAeMBwAIAAggBAAHwAgABDwHgBAABAwHA
AgABEAEIAQAB8AIAAQ8BwAMAARwBAAEBAwABCAEAAfACAAEPAcADAAEcAQABAwGAAgABGAEAAfACAAEP
AcADAAEcAXgBAwHAAgABMAEAAfACAAEPAcADAAEcAXgB4QGAAgABYAEAAfACAAEPAcAEAAF4AeACAAEB
AYABAAHwAgABDwYAAeACAAEBAYABAAHwAgABDwkAAQcBwAEAAfACAAEPCQABDwHgAQAB8AIAAQ8DAAEB
AwABgAEAAR8B8AEAAfACAAEPAwABAQIAAQEBwAEAAR8B+AEAAfACAAEPAwABAQIAAQMBwAEAAT8B+AEA
AfACAAEPAYgCAAEDAgABYQGABAAB8AIAAR8BgAIAAQcCAAHwAgABPwH4AQAB8AIAAT8BgAIAAQ8CAAFw
BQAB8AIAAX8BwAIAAR8CAAEgBQAB8AIAAf8BwAIAAT8IAAHwAQABAQH/AcMBwAEAAf8IAAHwAQABAwL/
AfgBAwH/CAAB8AEAAQcF/wQAAYACAAEBAfABAAEPCv8BxwH/AccB/wHAAQMF/wHwAgABDwH/AcEB/wHD
Af4CAAF/BP8B8gIAAS8B/AEQAf8BwwHwAgABDwH+AX8B+AEPAfMB/wH8Ae8B/AEAATsBwwHgAgABBwH8
AX8B+AEPAfICAAFvAf0BAAEHAccBwAIAAQMB/AE/AfgBDwHyAgABbwH8AwABwAIAAQMB+AE/AfgBDwHy
AgABLwH4AwABwAIAAQMB+AEfAfgBDwHyAgABLwH4AwABwAIAAQMB8AEfAfgBDwHyAgABLwH4AwAB4AEB
AQABBwHgAQ8B+AEPAfICAAEvAfgDAAHwAgABDwHgAQ8B+AEPAfICAAEvAfIDAAHwAgABDwHAAQcB+AEP
AfICAAEvAfACAAEHAeACAAEHAcABAwH4AQ8B8gIAAS8B8AIAAQcB4AIAAQcBgAEDAfgBDwHyAgABLwHg
AgABBwHAAgABAwGAAQEB+AEPAfICAAEvAeACAAEPAcABAAGAAQMEAAHyAgABLwHAAgABDwHAAgABAwQA
AfICAAEPAYACAAEPAcACAAEDAfABHwGAAQEB8gIAAQ8BoAIAAR8BwAIAAQMB8AEfAcABAQHyAgABDwMA
AR8BwAEAASABAwHwAR8BwAEDAfICAAEPAUACAAEfAcACAAEDAfABHwHgAQMB8gIAAQ8DAAE/AcABgAEA
AQMB8AEfAfABBwHyAgABDwGAAgABPwHAAgABAwHwAR8B8AEHAfACAAEPAcACAAE/AeACAAEHAfABHwH4
AQ8B8AIAAQ8BwAIAAX8B4AIAAQcB8AEfAfgBHwHwAgABHwHAAgABfwHwAgABDwHwAR8B/AEfAfACAAE/
AcACAAF/AfACAAEPAfABHwH8AT8B8AEAAQIBfwGAAgABfwH4AgABHwHwAR8B/gE/AfABAAEEAf8BgAIA
Af8B/AIAAT8B8AEfAf4BfwHwAQABAQH/AcACAAH/Af4CAAF/BP8B8AEAAQMC/wIAAv8BgAEBBf8B8wG8
AQcC/wH4AQEC/wHAAQMF/wHwAQABDwP/AcEJ/wHnAv8B5wHgAgABBwH/AcABAwH/BAAB8AIAAQcBgAIA
AQEB/wIAAf8EAAH0AgABLwGAAgABAQH8AgABPwQAAfcBwAEAAW8BAAEBAZABAAH4AgABHwQAAfcBgAEA
AS8CAAGQAQAB8AIAAQ8EAAH3AYABAAEPAgABgwH8AeACAAEHBAAB9wIAAQ8CAAFEAQQBwAIAAQMEAAH2
AgABDwMAAQQBwAIAAQMEAAH2AgABBwQAAYACAAEBBAAB9gIAAQcEAAGAAgABAQQAAfQCAAEHAgABAgYA
AQEBgAEAAfQCAAEHCQABAQGAAQAB9AIAAQcMAAHwAgABBwEAAQEBgAYAAQgCAAHwAgABBwEAAQEBgAEQ
BQABCAIAAfACAAEPAQABAQGTAfwFAAEIAgAB8AIAAQ8JAAEJAYABAAH0ASABAAEPCQABCQGQAQAB9AIA
AS8JAAEIARABAAH0AgABLwkAAQgBEAEAAfQCAAEvDAAB9AIAAQ8MAAH0AgABDwQAAYACAAEBAQwCAAEQ
AfQCAAEPBAABgAIAAQEBEgIAAUgB9AIAAR8EAAHAAgABAwEBAgABgAH0AQABAQE/AwABEAHAAgABAwEB
AgABgAH0AQABAgF/BAAB4AIAAQcBAQIAAYAB8AEAAQQB/wQAAfACAAEPBAAB8AEAAQEB/wQAAfgCAAEf
AYACAAEBAfABAAEDAf8BgAIAAQEB/AIAAT8E/wH3Af8B5wH/AcACAAEDAf8CAAX/AfABAAEPBv8BwAED
Af8L
Af8DwgH/A8IB/wPCAf8DwgH/A8IB/wPCAf8DwgH/A8IB/wPDAf8DWwHEFAADMwFSA/oB/wPiAf8D4AH/
A+AB/wPgAf8D4AH/A+AB/wPgAf8D4AH/A+AB/wPgAf8D4AH/A9sB/wPPAf8DzAH/A8wB/wMoATssAANI
AYMBtAKhAf8B7wHeAd8B/wHsAdoB3QH/AewB2gHcAf8B7AHaAdwB/wHsAdoB3AH/AewB2gHcAf8B7AHa
AdwB/wHsAdoB3AH/AewB2gHcAf8B6wHdAeIB/wHrAdkB1wL/AaABAAL/AZ0BAAL/AZ8BAAL/AZ0BAAL/
AZ0BAAL/AZ0BAAL/AZ0BAAL/AZoBAAL/AZ4BAAL/AZkBAAL/AZ0BAAL/AZ4BAAL/AZ8BAAL/AaABAAL/
AaMBAAH/AdECAAH/AUgCRwGDHAADCgENA0sBjAJtAVEB9wG/AbcBjAH/AQABsgHMAf8BAAGtAfMB/wEA
AakC/wEAAaUC/wEAAacB9gH/AcMBkgEAAf8BxgGCAQAB/wHCAYABAAH/Ab8CAAH/Ab4CAAH/Ab8CAAH/
AckBigEAAf8B3AGlAQAB/wJtAWwB9wNLAYwDCgENqAADNAFTOAADyAH/AycBOjQAA0cBggNeAe0BlAGF
AYYB/wOAAf4DgAH+A4AB/gOAAf4DgAH+A4AB/gOAAf4DgAH+A4AB/gGAAVoBHAH+AYABVwEaAf4BgAFZ
ARsB/gGAAVkBGwH+AYABWQEbAf4BgAFZARsB/gGAAVkBGwH+AYABWQEbAf4BgAFZARsB/gGAAVkBGwH+
AYABWQEbAf4BgAFZARsB/gGAAVkBHAH+AbACAAH/A14B7QNHAYIoAAMhAS8DUAGdA14B7QHWAbgBAAH/
Aa8BtAGYAf8BjQGwAbcB/wGyAasBigH/AdQBmAEAAf8BzwGSAQAB/wHQAZQBAAH/AdMBmQEAAf8B2gGj
AQAB/wHkAbEBAAH/A14B7QNQAZ0DIQEvsAADGwElA00BkwNIAYQDSAGDA0gBgwNIAYMDSAGDA0gBgwNI
AYMDSAGDA0gBgwNIAYMDSAGDA0kBiANHAYEDGAEg2AADEwEaAzgBXANRAZwDWgHHA10B3wNhAesDYQHr
A10B3wNaAccDUQGcAzgBXAMUARsoAAFCAU0BPgcAAT4DAAEoAwABgAMAAYADAAEBAQABAQYAAQgWAAP/
/wD/AAMABP8EAAGAAgABAQX/AfgBBwH/CAAB8AIAAQ8B/wHgAQAB/wgAAfACAAEPAf8BgAEAAT8IAAHw
AgABDwH+AgABHwEcAecGAAHwAgABDwH8AgABDwEcAecGAAHwAgABDwH8AgABBwEcAecGAAHwAgABDwH4
AgABAwgAAfACAAEPAfACAAEDARwB4AMAAQEB4AEAAfACAAEPAfACAAEBARwB4AMAAQYBMAEAAfACAAEP
AeACAAEBARwB4wHAAgABDAEYAQAB8AIAAQ8B4AMAARwB4wHAAgACCAEAAfACAAEPAeAEAAEDAcACAAEQ
AQgBAAHwAgABDwHAAwABHAEAAQEDAAEIAQAB8AIAAQ8BwAMAARwBAAEDAYACAAEYAQAB8AIAAQ8BwAMA
ARwBeAEDAcACAAEwAQAB8AIAAQ8BwAMAARwBeAHhAYACAAFgAQAB8AIAAQ8BwAQAAXgB4AIAAQEBgAEA
AfACAAEPBgAB4AIAAQEBgAEAAfACAAEPCQABBwHAAQAB8AIAAQ8JAAEPAeABAAHwAgABDwMAAQEDAAGA
AQABHwHwAQAB8AIAAQ8DAAEBAgABAQHAAQABHwH4AQAB8AIAAQ8DAAEBAgABAwHAAQABPwH4AQAB8AIA
AQ8BiAIAAQMCAAFhAYAEAAHwAgABHwGAAgABBwIAAfACAAE/AfgBAAHwAgABPwGAAgABDwIAAXAFAAHw
AgABfwHAAgABHwIAASAFAAHwAgAB/wHAAgABPwgAAfABAAEBAf8BwwHAAQAB/wgAAfABAAEDAv8B+AED
Af8IAAHwAQABBwX/BAABgAIAAQEB8AEAAQ8K/wHHAf8BxwH/AcABAwX/AfACAAEPAf8BwQH/AcMB/gIA
AX8E/wHyAgABLwH8ARAB/wHDAfACAAEPAf4BfwH4AQ8B8wH/AfwB7wH8AQABOwHDAeACAAEHAfwBfwH4
AQ8B8gIAAW8B/QEAAQcBxwHAAgABAwH8AT8B+AEPAfICAAFvAfwDAAHAAgABAwH4AT8B+AEPAfICAAEv
AfgDAAHAAgABAwH4AR8B+AEPAfICAAEvAfgDAAHAAgABAwHwAR8B+AEPAfICAAEvAfgDAAHgAQEBAAEH
AeABDwH4AQ8B8gIAAS8B+AMAAfACAAEPAeABDwH4AQ8B8gIAAS8B8gMAAfACAAEPAcABBwH4AQ8B8gIA
AS8B8AIAAQcB4AIAAQcBwAEDAfgBDwHyAgABLwHwAgABBwHgAgABBwGAAQMB+AEPAfICAAEvAeACAAEH
AcACAAEDAYABAQH4AQ8B8gIAAS8B4AIAAQ8BwAEAAYABAwQAAfICAAEvAcACAAEPAcACAAEDBAAB8gIA
AQ8BgAIAAQ8BwAIAAQMB8AEfAYABAQHyAgABDwGgAgABHwHAAgABAwHwAR8BwAEBAfICAAEPAwABHwHA
AQABIAEDAfABHwHAAQMB8gIAAQ8BQAIAAR8BwAIAAQMB8AEfAeABAwHyAgABDwMAAT8BwAGAAQABAwHw
AR8B8AEHAfICAAEPAYACAAE/AcACAAEDAfABHwHwAQcB8AIAAQ8BwAIAAT8B4AIAAQcB8AEfAfgBDwHw
AgABDwHAAgABfwHgAgABBwHwAR8B+AEfAfACAAEfAcACAAF/AfACAAEPAfABHwH8AR8B8AIAAT8BwAIA
AX8B8AIAAQ8B8AEfAfwBPwHwAQABAgF/AYACAAF/AfgCAAEfAfABHwH+AT8B8AEAAQQB/wGAAgAB/wH8
AgABPwHwAR8B/gF/AfABAAEBAf8BwAIAAf8B/gIAAX8E/wHwAQABAwL/AgAC/wGAAQEF/wHzAbwBBwL/
AfgBAQL/AcABAwX/AfABAAEPA/8BwQn/AecC/wHnAeACAAEHAf8BwAEDAf8EAAHwAgABBwGAAgABAQH/
AgAB/wQAAfQCAAEvAYACAAEBAfwCAAE/BAAB9wHAAQABbwEAAQEBkAEAAfgCAAEfBAAB9wGAAQABLwIA
AZABAAHwAgABDwQAAfcBgAEAAQ8CAAGDAfwB4AIAAQcEAAH3AgABDwIAAUQBBAHAAgABAwQAAfYCAAEP
AwABBAHAAgABAwQAAfYCAAEHBAABgAIAAQEEAAH2AgABBwQAAYACAAEBBAAB9AIAAQcCAAECBgABAQGA
AQAB9AIAAQcJAAEBAYABAAH0AgABBwwAAfACAAEHAQABAQGABgABCAIAAfACAAEHAQABAQGAARAFAAEI
AgAB8AIAAQ8BAAEBAZMB/AUAAQgCAAHwAgABDwkAAQkBgAEAAfQBIAEAAQ8JAAEJAZABAAH0AgABLwkA
AQgBEAEAAfQCAAEvCQABCAEQAQAB9AIAAS8MAAH0AgABDwwAAfQCAAEPBAABgAIAAQEBDAIAARAB9AIA
AQ8EAAGAAgABAQESAgABSAH0AgABHwQAAcACAAEDAQECAAGAAfQBAAEBAT8DAAEQAcACAAEDAQECAAGA
AfQBAAECAX8EAAHgAgABBwEBAgABgAHwAQABBAH/BAAB8AIAAQ8EAAHwAQABAQH/BAAB+AIAAR8BgAIA
AQEB8AEAAQMB/wGAAgABAQH8AgABPwT/AfcB/wHnAf8BwAIAAQMB/wIABf8B8AEAAQ8G/wHAAQMB/ws=
</value>
</data>
<metadata name="folderBrowserDialogDownloadDirectoryWin.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">