SEBWIN-491: Implemented basic display configuration monitoring.

This commit is contained in:
Damian Büchel 2021-05-30 20:04:44 +02:00
parent b456f0821f
commit d3bfe958aa
28 changed files with 708 additions and 154 deletions

View file

@ -514,6 +514,21 @@ namespace SafeExamBrowser.Client
actionCenter.InitializeBounds(); actionCenter.InitializeBounds();
taskbar.InitializeBounds(); taskbar.InitializeBounds();
logger.Info("Desktop successfully restored."); logger.Info("Desktop successfully restored.");
if (!displayMonitor.IsAllowedConfiguration(Settings.Display))
{
var continueOption = new LockScreenOption { Text = text.Get(TextKey.LockScreen_DisplayConfigurationContinueOption) };
var terminateOption = new LockScreenOption { Text = text.Get(TextKey.LockScreen_DisplayConfigurationTerminateOption) };
var message = text.Get(TextKey.LockScreen_DisplayConfigurationMessage);
var title = text.Get(TextKey.LockScreen_Title);
var result = ShowLockScreen(message, title, new[] { continueOption, terminateOption });
if (result.OptionId == terminateOption.Id)
{
logger.Info("Attempting to shutdown as requested by the user...");
TryRequestShutdown();
}
}
} }
private void Operations_ActionRequired(ActionRequiredEventArgs args) private void Operations_ActionRequired(ActionRequiredEventArgs args)

View file

@ -20,6 +20,7 @@ namespace SafeExamBrowser.Configuration.ConfigurationData
new AudioDataMapper(), new AudioDataMapper(),
new BrowserDataMapper(), new BrowserDataMapper(),
new ConfigurationFileDataMapper(), new ConfigurationFileDataMapper(),
new DisplayDataMapper(),
new GeneralDataMapper(), new GeneralDataMapper(),
new InputDataMapper(), new InputDataMapper(),
new ProctoringDataMapper(), new ProctoringDataMapper(),

View file

@ -0,0 +1,55 @@
/*
* Copyright (c) 2021 ETH Zürich, Educational Development and Technology (LET)
*
* 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.Settings;
namespace SafeExamBrowser.Configuration.ConfigurationData.DataMapping
{
internal class DisplayDataMapper : BaseDataMapper
{
internal override void Map(string key, object value, AppSettings settings)
{
switch (key)
{
case Keys.Display.AllowedDisplays:
MapAllowedDisplays(settings, value);
break;
case Keys.Display.IgnoreError:
MapIgnoreError(settings, value);
break;
case Keys.Display.InternalDisplayOnly:
MapInternalDisplayOnly(settings, value);
break;
}
}
private void MapAllowedDisplays(AppSettings settings, object value)
{
if (value is int count)
{
settings.Display.AllowedDisplays = count;
}
}
private void MapIgnoreError(AppSettings settings, object value)
{
if (value is bool ignore)
{
settings.Display.IgnoreError = ignore;
}
}
private void MapInternalDisplayOnly(AppSettings settings, object value)
{
if (value is bool internalOnly)
{
settings.Display.InternalDisplayOnly = internalOnly;
}
}
}
}

View file

@ -150,6 +150,10 @@ namespace SafeExamBrowser.Configuration.ConfigurationData
settings.ConfigurationMode = ConfigurationMode.Exam; settings.ConfigurationMode = ConfigurationMode.Exam;
settings.Display.AllowedDisplays = 1;
settings.Display.IgnoreError = false;
settings.Display.InternalDisplayOnly = false;
settings.Keyboard.AllowAltEsc = false; settings.Keyboard.AllowAltEsc = false;
settings.Keyboard.AllowAltF4 = false; settings.Keyboard.AllowAltF4 = false;
settings.Keyboard.AllowAltTab = true; settings.Keyboard.AllowAltTab = true;

View file

@ -170,6 +170,13 @@ namespace SafeExamBrowser.Configuration.ConfigurationData
internal const string SessionMode = "sebMode"; internal const string SessionMode = "sebMode";
} }
internal static class Display
{
internal const string AllowedDisplays = "allowedDisplaysMaxNumber";
internal const string IgnoreError = "allowedDisplaysIgnoreFailure";
internal const string InternalDisplayOnly = "allowedDisplayBuiltinEnforce";
}
internal static class General internal static class General
{ {
internal const string LogLevel = "logLevel"; internal const string LogLevel = "logLevel";

View file

@ -60,6 +60,7 @@
<Compile Include="ConfigurationData\DataMapping\AudioDataMapper.cs" /> <Compile Include="ConfigurationData\DataMapping\AudioDataMapper.cs" />
<Compile Include="ConfigurationData\DataMapping\BrowserDataMapper.cs" /> <Compile Include="ConfigurationData\DataMapping\BrowserDataMapper.cs" />
<Compile Include="ConfigurationData\DataMapping\ConfigurationFileDataMapper.cs" /> <Compile Include="ConfigurationData\DataMapping\ConfigurationFileDataMapper.cs" />
<Compile Include="ConfigurationData\DataMapping\DisplayDataMapper.cs" />
<Compile Include="ConfigurationData\DataMapping\GeneralDataMapper.cs" /> <Compile Include="ConfigurationData\DataMapping\GeneralDataMapper.cs" />
<Compile Include="ConfigurationData\DataMapping\BaseDataMapper.cs" /> <Compile Include="ConfigurationData\DataMapping\BaseDataMapper.cs" />
<Compile Include="ConfigurationData\DataMapping\InputDataMapper.cs" /> <Compile Include="ConfigurationData\DataMapping\InputDataMapper.cs" />

View file

@ -52,6 +52,9 @@ namespace SafeExamBrowser.I18n.Contracts
LockScreen_ApplicationsAllowOption, LockScreen_ApplicationsAllowOption,
LockScreen_ApplicationsMessage, LockScreen_ApplicationsMessage,
LockScreen_ApplicationsTerminateOption, LockScreen_ApplicationsTerminateOption,
LockScreen_DisplayConfigurationContinueOption,
LockScreen_DisplayConfigurationTerminateOption,
LockScreen_DisplayConfigurationMessage,
LockScreen_UserSessionContinueOption, LockScreen_UserSessionContinueOption,
LockScreen_UserSessionMessage, LockScreen_UserSessionMessage,
LockScreen_UserSessionTerminateOption, LockScreen_UserSessionTerminateOption,
@ -95,6 +98,8 @@ namespace SafeExamBrowser.I18n.Contracts
MessageBox_InvalidUnlockPassword, MessageBox_InvalidUnlockPassword,
MessageBox_InvalidUnlockPasswordTitle, MessageBox_InvalidUnlockPasswordTitle,
MessageBox_NoButton, MessageBox_NoButton,
MessageBox_DisplayConfigurationError,
MessageBox_DisplayConfigurationErrorTitle,
MessageBox_NotSupportedConfigurationResource, MessageBox_NotSupportedConfigurationResource,
MessageBox_NotSupportedConfigurationResourceTitle, MessageBox_NotSupportedConfigurationResourceTitle,
MessageBox_OkButton, MessageBox_OkButton,
@ -163,6 +168,7 @@ namespace SafeExamBrowser.I18n.Contracts
OperationStatus_TerminateBrowser, OperationStatus_TerminateBrowser,
OperationStatus_TerminateProctoring, OperationStatus_TerminateProctoring,
OperationStatus_TerminateShell, OperationStatus_TerminateShell,
OperationStatus_ValidateDisplayConfiguration,
OperationStatus_ValidateRemoteSessionPolicy, OperationStatus_ValidateRemoteSessionPolicy,
OperationStatus_ValidateVirtualMachinePolicy, OperationStatus_ValidateVirtualMachinePolicy,
OperationStatus_WaitDisclaimerConfirmation, OperationStatus_WaitDisclaimerConfirmation,

View file

@ -114,6 +114,15 @@
<Entry key="LockScreen_ApplicationsTerminateOption"> <Entry key="LockScreen_ApplicationsTerminateOption">
Safe Exam Browser beenden. WARNUNG: Sie werden keine Möglichkeit haben, Daten zu speichern oder weitere Aktionen auszuführen, SEB wird sofort beendet! 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>
<Entry key="LockScreen_DisplayConfigurationContinueOption">
Bildschirm-Konfiguration temporär erlauben. Dies gilt nur für die momentan laufende Sitzung!
</Entry>
<Entry key="LockScreen_DisplayConfigurationTerminateOption">
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_DisplayConfigurationMessage">
Eine verbotene Bildschirm-Konfiguration 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_Title"> <Entry key="LockScreen_Title">
SEB GESPERRT SEB GESPERRT
</Entry> </Entry>
@ -210,6 +219,12 @@
<Entry key="MessageBox_ConfigurationDownloadErrorTitle"> <Entry key="MessageBox_ConfigurationDownloadErrorTitle">
Fehler beim Herunterladen Fehler beim Herunterladen
</Entry> </Entry>
<Entry key="MessageBox_DisplayConfigurationError">
Die aktive Bildschirm-Konfiguration ist nicht erlaubt! Bitte konsultieren Sie das Applikations-Protokoll für mehr Informationen. SEB wird sich nun beenden...
</Entry>
<Entry key="MessageBox_DisplayConfigurationErrorTitle">
Verbotene Bildschirm-Konfiguration
</Entry>
<Entry key="MessageBox_InvalidConfigurationData"> <Entry key="MessageBox_InvalidConfigurationData">
Die Konfigurations-Ressource "%%URI%%" enthält ungültige Daten! Die Konfigurations-Ressource "%%URI%%" enthält ungültige Daten!
</Entry> </Entry>
@ -447,6 +462,9 @@
<Entry key="OperationStatus_TerminateShell"> <Entry key="OperationStatus_TerminateShell">
Beende Benutzeroberfläche Beende Benutzeroberfläche
</Entry> </Entry>
<Entry key="OperationStatus_ValidateDisplayConfiguration">
Validiere Richtlinie für Bildschirm-Konfiguration
</Entry>
<Entry key="OperationStatus_ValidateRemoteSessionPolicy"> <Entry key="OperationStatus_ValidateRemoteSessionPolicy">
Validiere Richtlinie für Remote-Sitzungen Validiere Richtlinie für Remote-Sitzungen
</Entry> </Entry>

View file

@ -114,6 +114,15 @@
<Entry key="LockScreen_ApplicationsTerminateOption"> <Entry key="LockScreen_ApplicationsTerminateOption">
Terminate Safe Exam Browser. WARNING: There will be no possibility to save data or perform any further actions, the shutdown will be initiated immediately! 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>
<Entry key="LockScreen_DisplayConfigurationContinueOption">
Temporarily allow the display configuration. This applies only to the currently running session!
</Entry>
<Entry key="LockScreen_DisplayConfigurationTerminateOption">
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_DisplayConfigurationMessage">
A prohibited display configuration 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_Title"> <Entry key="LockScreen_Title">
SEB LOCKED SEB LOCKED
</Entry> </Entry>
@ -210,6 +219,12 @@
<Entry key="MessageBox_ConfigurationDownloadErrorTitle"> <Entry key="MessageBox_ConfigurationDownloadErrorTitle">
Download Error Download Error
</Entry> </Entry>
<Entry key="MessageBox_DisplayConfigurationError">
The active display configuration is not permitted. Please consult the log files for more information. SEB will now shut down...
</Entry>
<Entry key="MessageBox_DisplayConfigurationErrorTitle">
Prohibited Display Configuration
</Entry>
<Entry key="MessageBox_InvalidConfigurationData"> <Entry key="MessageBox_InvalidConfigurationData">
The configuration resource "%%URI%%" contains invalid data! The configuration resource "%%URI%%" contains invalid data!
</Entry> </Entry>
@ -447,6 +462,9 @@
<Entry key="OperationStatus_TerminateShell"> <Entry key="OperationStatus_TerminateShell">
Terminating user interface Terminating user interface
</Entry> </Entry>
<Entry key="OperationStatus_ValidateDisplayConfiguration">
Validating display configuration policy
</Entry>
<Entry key="OperationStatus_ValidateRemoteSessionPolicy"> <Entry key="OperationStatus_ValidateRemoteSessionPolicy">
Validating remote session policy Validating remote session policy
</Entry> </Entry>

View file

@ -58,7 +58,7 @@
Annuler Annuler
</Entry> </Entry>
<Entry key="ExamSelectionDialog_Message"> <Entry key="ExamSelectionDialog_Message">
Veuillez sélectionner l'un des examens disponibles sur le serveur SEB : Veuillez sélectionner l'un des examens disponibles sur le serveur SEB:
</Entry> </Entry>
<Entry key="ExamSelectionDialog_Select"> <Entry key="ExamSelectionDialog_Select">
Selection Selection
@ -70,10 +70,10 @@
Annuler Annuler
</Entry> </Entry>
<Entry key="FileSystemDialog_LoadError"> <Entry key="FileSystemDialog_LoadError">
Echec du chargement des données ! Echec du chargement des données!
</Entry> </Entry>
<Entry key="FileSystemDialog_Loading"> <Entry key="FileSystemDialog_Loading">
Chargement Chargement...
</Entry> </Entry>
<Entry key="FileSystemDialog_OpenFileMessage"> <Entry key="FileSystemDialog_OpenFileMessage">
Veuillez sélectionner un fichier à ouvrir. Veuillez sélectionner un fichier à ouvrir.
@ -82,13 +82,13 @@
Veuillez sélectionner un dossier. Veuillez sélectionner un dossier.
</Entry> </Entry>
<Entry key="FileSystemDialog_OverwriteWarning"> <Entry key="FileSystemDialog_OverwriteWarning">
Le fichier sélectionné existe déjà ! Voulez-vous vraiment le remplacer ? Le fichier sélectionné existe déjà ! Voulez-vous vraiment le remplacer?
</Entry> </Entry>
<Entry key="FileSystemDialog_OverwriteWarningTitle"> <Entry key="FileSystemDialog_OverwriteWarningTitle">
Remplacer ? Remplacer?
</Entry> </Entry>
<Entry key="FileSystemDialog_SaveAs"> <Entry key="FileSystemDialog_SaveAs">
Enregistrer sous : Enregistrer sous:
</Entry> </Entry>
<Entry key="FileSystemDialog_SaveFileMessage"> <Entry key="FileSystemDialog_SaveFileMessage">
Veuillez sélectionner un emplacement pour enregistrer le fichier. Veuillez sélectionner un emplacement pour enregistrer le fichier.
@ -103,16 +103,25 @@
Accès au système de fichiers Accès au système de fichiers
</Entry> </Entry>
<Entry key="FolderDialog_ApplicationLocation"> <Entry key="FolderDialog_ApplicationLocation">
L'application "%%NAME%%" n'a pas pu être trouvée sur le système ! Veuillez localiser le dossier contenant l'exécutable principal "%%EXECUTABLE%%". L'application "%%NAME%%" n'a pas pu être trouvée sur le système! Veuillez localiser le dossier contenant l'exécutable principal "%%EXECUTABLE%%".
</Entry> </Entry>
<Entry key="LockScreen_ApplicationsAllowOption"> <Entry key="LockScreen_ApplicationsAllowOption">
Autoriser temporairement les applications figurant sur la liste noire. Cela ne s'applique qu'aux instances et à la session en cours ! Autoriser temporairement les applications figurant sur la liste noire. Cela ne s'applique qu'aux instances et à la session en cours!
</Entry> </Entry>
<Entry key="LockScreen_ApplicationsMessage"> <Entry key="LockScreen_ApplicationsMessage">
Les applications sur liste noire énumérées ci-dessous ont été lancées et nont pas pu être automatiquement supprimées ! Afin de débloquer SEB, veuillez sélectionner l'une des options disponibles et entrer le mot de passe de déblocage. Les applications sur liste noire énumérées ci-dessous ont été lancées et nont pas pu être automatiquement supprimées! Afin de débloquer SEB, veuillez sélectionner l'une des options disponibles et entrer le mot de passe de déblocage.
</Entry> </Entry>
<Entry key="LockScreen_ApplicationsTerminateOption"> <Entry key="LockScreen_ApplicationsTerminateOption">
Terminer Safe Exam Browser. AVERTISSEMENT : Il n'y aura pas de possibilité de sauvegarder les données ou d'effectuer d'autres actions, l'arrêt sera déclenché immédiatement ! Terminer Safe Exam Browser. AVERTISSEMENT: Il n'y aura pas de possibilité de sauvegarder les données ou d'effectuer d'autres actions, l'arrêt sera déclenché immédiatement!
</Entry>
<Entry key="LockScreen_DisplayConfigurationContinueOption">
Autoriser temporairement la configuration de l'affichage. Ceci s'applique uniquement à la session en cours!
</Entry>
<Entry key="LockScreen_DisplayConfigurationTerminateOption">
Terminez le navigateur Safe Exam. AVERTISSEMENT: Il n'y aura aucune possibilité de sauvegarder des données ou d'effectuer d'autres actions, l'arrêt sera déclenché immédiatement!
</Entry>
<Entry key="LockScreen_DisplayConfigurationMessage">
Une configuration d'affichage interdite a été détectée. Pour déverrouiller SEB, veuillez sélectionner l'une des options disponibles et saisir le mot de passe de déverrouillage correct.
</Entry> </Entry>
<Entry key="LockScreen_Title"> <Entry key="LockScreen_Title">
SEB VEROUILLE SEB VEROUILLE
@ -124,10 +133,10 @@
Dévérouiller Safe Exam Browser. Dévérouiller Safe Exam Browser.
</Entry> </Entry>
<Entry key="LockScreen_UserSessionMessage"> <Entry key="LockScreen_UserSessionMessage">
L'utilisateur actif a changé ou l'ordinateur a été verrouillé ! Afin de déverrouiller SEB, veuillez sélectionner une des options disponibles et entrer le mot de passe de déverrouillage. L'utilisateur actif a changé ou l'ordinateur a été verrouillé! Afin de déverrouiller SEB, veuillez sélectionner une des options disponibles et entrer le mot de passe de déverrouillage.
</Entry> </Entry>
<Entry key="LockScreen_UserSessionTerminateOption"> <Entry key="LockScreen_UserSessionTerminateOption">
Terminer Safe Exam Browser. AVERTISSEMENT : Il n'y aura pas de possibilité de sauvegarder les données ou d'effectuer d'autres actions, l'arrêt sera déclenché immédiatement ! Terminer Safe Exam Browser. AVERTISSEMENT: Il n'y aura pas de possibilité de sauvegarder les données ou d'effectuer d'autres actions, l'arrêt sera déclenché immédiatement!
</Entry> </Entry>
<Entry key="LogWindow_AlwaysOnTop"> <Entry key="LogWindow_AlwaysOnTop">
Toujours au premier plan Toujours au premier plan
@ -139,40 +148,40 @@
Journal de lapplication Journal de lapplication
</Entry> </Entry>
<Entry key="MessageBox_ApplicationAutoTerminationQuestion"> <Entry key="MessageBox_ApplicationAutoTerminationQuestion">
Les applications énumérées ci-dessous doivent être terminées avant qu'une nouvelle session puisse être lancée. Souhaitez-vous les clôturer automatiquement maintenant ? Les applications énumérées ci-dessous doivent être terminées avant qu'une nouvelle session puisse être lancée. Souhaitez-vous les clôturer automatiquement maintenant?
</Entry> </Entry>
<Entry key="MessageBox_ApplicationAutoTerminationQuestionTitle"> <Entry key="MessageBox_ApplicationAutoTerminationQuestionTitle">
Applications en cours d'exécution détectées Applications en cours d'exécution détectées
</Entry> </Entry>
<Entry key="MessageBox_ApplicationAutoTerminationDataLossWarning"> <Entry key="MessageBox_ApplicationAutoTerminationDataLossWarning">
AVERTISSEMENT : les données des applications non sauvegardées peuvent être perdues ! AVERTISSEMENT : les données des applications non sauvegardées peuvent être perdues!
</Entry> </Entry>
<Entry key="MessageBox_ApplicationError"> <Entry key="MessageBox_ApplicationError">
Une erreur irrémédiable s'est produite ! Veuillez consulter les fichiers journaux pour plus d'informations. SEB va maintenant fermer... Une erreur irrémédiable s'est produite! Veuillez consulter les fichiers journaux pour plus d'informations. SEB va maintenant fermer...
</Entry> </Entry>
<Entry key="MessageBox_ApplicationErrorTitle"> <Entry key="MessageBox_ApplicationErrorTitle">
Erreur de lapplication Erreur de lapplication
</Entry> </Entry>
<Entry key="MessageBox_ApplicationInitializationFailure"> <Entry key="MessageBox_ApplicationInitializationFailure">
L'application %%NAME%% n'a pas pu être initialisée et ne sera donc pas disponible pour la nouvelle session ! Veuillez consulter les fichiers journaux pour plus d'informations. L'application %%NAME%% n'a pas pu être initialisée et ne sera donc pas disponible pour la nouvelle session! Veuillez consulter les fichiers journaux pour plus d'informations.
</Entry> </Entry>
<Entry key="MessageBox_ApplicationInitializationFailureTitle"> <Entry key="MessageBox_ApplicationInitializationFailureTitle">
Échec de l'initialisation de lapplication Échec de l'initialisation de lapplication
</Entry> </Entry>
<Entry key="MessageBox_ApplicationNotFound"> <Entry key="MessageBox_ApplicationNotFound">
Lapplication %%NAME%% n'a pas pu être trouvée sur le système et ne sera donc pas disponible pour la nouvelle session ! Veuillez consulter les fichiers journaux pour plus d'informations. Lapplication %%NAME%% n'a pas pu être trouvée sur le système et ne sera donc pas disponible pour la nouvelle session! Veuillez consulter les fichiers journaux pour plus d'informations.
</Entry> </Entry>
<Entry key="MessageBox_ApplicationNotFoundTitle"> <Entry key="MessageBox_ApplicationNotFoundTitle">
Application non-trouvée Application non-trouvée
</Entry> </Entry>
<Entry key="MessageBox_ApplicationTerminationFailure"> <Entry key="MessageBox_ApplicationTerminationFailure">
Les applications énumérées ci-dessous n'ont pas pu être terminées ! Veuillez les terminer manuellement et réessayer... Les applications énumérées ci-dessous n'ont pas pu être terminées! Veuillez les terminer manuellement et réessayer...
</Entry> </Entry>
<Entry key="MessageBox_ApplicationTerminationFailureTitle"> <Entry key="MessageBox_ApplicationTerminationFailureTitle">
Échec de la clôture automatique Échec de la clôture automatique
</Entry> </Entry>
<Entry key="MessageBox_BrowserHomeQuestion"> <Entry key="MessageBox_BrowserHomeQuestion">
Etes-vous sûr ? (Cette fonction ne vous déconnecte pas si vous êtes connecté sur un site web) Etes-vous sûr? (Cette fonction ne vous déconnecte pas si vous êtes connecté sur un site web)
</Entry> </Entry>
<Entry key="MessageBox_BrowserHomeQuestionTitle"> <Entry key="MessageBox_BrowserHomeQuestionTitle">
Retour au début Retour au début
@ -184,7 +193,7 @@
Page bloquée Page bloquée
</Entry> </Entry>
<Entry key="MessageBox_BrowserQuitUrlConfirmation"> <Entry key="MessageBox_BrowserQuitUrlConfirmation">
L'application du navigateur a détecté une URL de fin ! Vous souhaitez mettre fin à SEB maintenant ? L'application du navigateur a détecté une URL de fin! Vous souhaitez mettre fin à SEB maintenant?
</Entry> </Entry>
<Entry key="MessageBox_BrowserQuitUrlConfirmationTitle"> <Entry key="MessageBox_BrowserQuitUrlConfirmationTitle">
URL de fin détectée URL de fin détectée
@ -193,13 +202,13 @@
Annuler Annuler
</Entry> </Entry>
<Entry key="MessageBox_ClientConfigurationError"> <Entry key="MessageBox_ClientConfigurationError">
La configuration du client local a échoué ! Veuillez consulter les fichiers journaux pour plus d'informations. SEB va maintenant se fermer.... La configuration du client local a échoué! Veuillez consulter les fichiers journaux pour plus d'informations. SEB va maintenant se fermer....
</Entry> </Entry>
<Entry key="MessageBox_ClientConfigurationErrorTitle"> <Entry key="MessageBox_ClientConfigurationErrorTitle">
Erreur de configuration Erreur de configuration
</Entry> </Entry>
<Entry key="MessageBox_ClientConfigurationQuestion"> <Entry key="MessageBox_ClientConfigurationQuestion">
La configuration du client a été enregistrée et sera utilisée lors du prochain démarrage de SEB. Vous voulez quitter maintenant ? La configuration du client a été enregistrée et sera utilisée lors du prochain démarrage de SEB. Vous voulez quitter maintenant?
</Entry> </Entry>
<Entry key="MessageBox_ClientConfigurationQuestionTitle"> <Entry key="MessageBox_ClientConfigurationQuestionTitle">
Configuration réussie Configuration réussie
@ -210,8 +219,14 @@
<Entry key="MessageBox_ConfigurationDownloadErrorTitle"> <Entry key="MessageBox_ConfigurationDownloadErrorTitle">
Erreur de téléchargement Erreur de téléchargement
</Entry> </Entry>
<Entry key="MessageBox_DisplayConfigurationError">
La configuration d'affichage active n'est pas autorisée. Veuillez consulter les fichiers journaux pour plus d'informations. SEB va maintenant s'arrêter...
</Entry>
<Entry key="MessageBox_DisplayConfigurationErrorTitle">
Configuration d'affichage interdite
</Entry>
<Entry key="MessageBox_InvalidConfigurationData"> <Entry key="MessageBox_InvalidConfigurationData">
La ressource de configuration "%%URI%%" contient des données non valides ! La ressource de configuration "%%URI%%" contient des données non valides!
</Entry> </Entry>
<Entry key="MessageBox_InvalidConfigurationDataTitle"> <Entry key="MessageBox_InvalidConfigurationDataTitle">
Erreur de configuration Erreur de configuration
@ -244,7 +259,7 @@
Non Non
</Entry> </Entry>
<Entry key="MessageBox_NotSupportedConfigurationResource"> <Entry key="MessageBox_NotSupportedConfigurationResource">
La ressource de configuration "%%URI%%" n'est pas supportée ! La ressource de configuration "%%URI%%" n'est pas supportée!
</Entry> </Entry>
<Entry key="MessageBox_NotSupportedConfigurationResourceTitle"> <Entry key="MessageBox_NotSupportedConfigurationResourceTitle">
Erreur de configuration Erreur de configuration
@ -259,13 +274,13 @@
Session avec surveillance à distance Session avec surveillance à distance
</Entry> </Entry>
<Entry key="MessageBox_Quit"> <Entry key="MessageBox_Quit">
Voulez-vous quitter SEB ? Voulez-vous quitter SEB?
</Entry> </Entry>
<Entry key="MessageBox_QuitTitle"> <Entry key="MessageBox_QuitTitle">
Quitter ? Quitter ?
</Entry> </Entry>
<Entry key="MessageBox_QuitError"> <Entry key="MessageBox_QuitError">
Le client n'a pas réussi à communiquer la demande d'arrêt au serveur d'exécution ! Le client n'a pas réussi à communiquer la demande d'arrêt au serveur d'exécution!
</Entry> </Entry>
<Entry key="MessageBox_QuitErrorTitle"> <Entry key="MessageBox_QuitErrorTitle">
Erreur de sortie Erreur de sortie
@ -277,13 +292,13 @@
Reconfiguration refusée Reconfiguration refusée
</Entry> </Entry>
<Entry key="MessageBox_ReconfigurationError"> <Entry key="MessageBox_ReconfigurationError">
Le client n'a pas réussi à communiquer la demande de reconfiguration au serveur ! Le client n'a pas réussi à communiquer la demande de reconfiguration au serveur!
</Entry> </Entry>
<Entry key="MessageBox_ReconfigurationErrorTitle"> <Entry key="MessageBox_ReconfigurationErrorTitle">
Erreur de reconfiguration Erreur de reconfiguration
</Entry> </Entry>
<Entry key="MessageBox_ReloadConfirmation"> <Entry key="MessageBox_ReloadConfirmation">
Souhaitez-vous recharger la page actuelle ? Souhaitez-vous recharger la page actuelle?
</Entry> </Entry>
<Entry key="MessageBox_ReloadConfirmationTitle"> <Entry key="MessageBox_ReloadConfirmationTitle">
Recharger ? Recharger ?
@ -295,7 +310,7 @@
Session distante détectée Session distante détectée
</Entry> </Entry>
<Entry key="MessageBox_ServiceUnavailableError"> <Entry key="MessageBox_ServiceUnavailableError">
Le service SEB n'a pas été initialisé ! Le service SEB va maintenant se terminer puisque le service obligatoire. Le service SEB n'a pas été initialisé! Le service SEB va maintenant se terminer puisque le service obligatoire.
</Entry> </Entry>
<Entry key="MessageBox_ServiceUnavailableErrorTitle"> <Entry key="MessageBox_ServiceUnavailableErrorTitle">
Service indisponible Service indisponible
@ -307,25 +322,25 @@
Service indisponible Service indisponible
</Entry> </Entry>
<Entry key="MessageBox_SessionStartError"> <Entry key="MessageBox_SessionStartError">
Le SEB n'a pas réussi à démarrer une nouvelle session ! Veuillez consulter les fichiers journaux pour plus d'informations. Le SEB n'a pas réussi à démarrer une nouvelle session! Veuillez consulter les fichiers journaux pour plus d'informations.
</Entry> </Entry>
<Entry key="MessageBox_SessionStartErrorTitle"> <Entry key="MessageBox_SessionStartErrorTitle">
Erreur de démarrage de session Erreur de démarrage de session
</Entry> </Entry>
<Entry key="MessageBox_ShutdownError"> <Entry key="MessageBox_ShutdownError">
Une erreur inattendue s'est produite lors de la procédure d'arrêt ! Veuillez consulter les fichiers journaux pour plus d'informations. Une erreur inattendue s'est produite lors de la procédure d'arrêt! Veuillez consulter les fichiers journaux pour plus d'informations.
</Entry> </Entry>
<Entry key="MessageBox_ShutdownErrorTitle"> <Entry key="MessageBox_ShutdownErrorTitle">
Erreur de fermeture Erreur de fermeture
</Entry> </Entry>
<Entry key="MessageBox_StartupError"> <Entry key="MessageBox_StartupError">
Une erreur inattendue s'est produite lors de la procédure de démarrage ! Veuillez consulter les fichiers journaux pour plus d'informations. Une erreur inattendue s'est produite lors de la procédure de démarrage! Veuillez consulter les fichiers journaux pour plus d'informations.
</Entry> </Entry>
<Entry key="MessageBox_StartupErrorTitle"> <Entry key="MessageBox_StartupErrorTitle">
Erreur de démarrage Erreur de démarrage
</Entry> </Entry>
<Entry key="MessageBox_UnexpectedConfigurationError"> <Entry key="MessageBox_UnexpectedConfigurationError">
Une erreur inattendue s'est produite en essayant de charger la ressource de configuration "%%URI%%" ! Veuillez consulter les fichiers journaux pour plus d'informations. Une erreur inattendue s'est produite en essayant de charger la ressource de configuration "%%URI%%"! Veuillez consulter les fichiers journaux pour plus d'informations.
</Entry> </Entry>
<Entry key="MessageBox_UnexpectedConfigurationErrorTitle"> <Entry key="MessageBox_UnexpectedConfigurationErrorTitle">
Erreur de configuration Erreur de configuration
@ -447,6 +462,9 @@
<Entry key="OperationStatus_TerminateShell"> <Entry key="OperationStatus_TerminateShell">
Arrêt de linterface utilisateur Arrêt de linterface utilisateur
</Entry> </Entry>
<Entry key="OperationStatus_ValidateDisplayConfiguration">
Validation de la politique de configuration d'affichage
</Entry>
<Entry key="OperationStatus_ValidateRemoteSessionPolicy"> <Entry key="OperationStatus_ValidateRemoteSessionPolicy">
Validation de la directive sur la session à distance Validation de la directive sur la session à distance
</Entry> </Entry>
@ -466,7 +484,7 @@
Attente de la déconnexion du runtime Attente de la déconnexion du runtime
</Entry> </Entry>
<Entry key="PasswordDialog_BrowserHomePasswordRequired"> <Entry key="PasswordDialog_BrowserHomePasswordRequired">
Saisissez le mot de passe pour quitter/redémarrer : (Cette fonction ne vous déconnecte pas si vous êtes connecté sur un site web) Saisissez le mot de passe pour quitter/redémarrer: (Cette fonction ne vous déconnecte pas si vous êtes connecté sur un site web)
</Entry> </Entry>
<Entry key="PasswordDialog_BrowserHomePasswordRequiredTitle"> <Entry key="PasswordDialog_BrowserHomePasswordRequiredTitle">
Retour au début Retour au début
@ -478,7 +496,7 @@
Confirmer Confirmer
</Entry> </Entry>
<Entry key="PasswordDialog_LocalAdminPasswordRequired"> <Entry key="PasswordDialog_LocalAdminPasswordRequired">
Veuillez saisir le mot de passe de l'administrateur pour la configuration du client local : Veuillez saisir le mot de passe de l'administrateur pour la configuration du client local:
</Entry> </Entry>
<Entry key="PasswordDialog_LocalAdminPasswordRequiredTitle"> <Entry key="PasswordDialog_LocalAdminPasswordRequiredTitle">
Mot de passe administrateur requis Mot de passe administrateur requis
@ -490,7 +508,7 @@
Mot de passe des paramètres requis Mot de passe des paramètres requis
</Entry> </Entry>
<Entry key="PasswordDialog_QuitPasswordRequired"> <Entry key="PasswordDialog_QuitPasswordRequired">
Veuillez saisir le mot de passe pour quitter SEB : Veuillez saisir le mot de passe pour quitter SEB:
</Entry> </Entry>
<Entry key="PasswordDialog_QuitPasswordRequiredTitle"> <Entry key="PasswordDialog_QuitPasswordRequiredTitle">
Mot de passe de sortie requis Mot de passe de sortie requis
@ -544,7 +562,7 @@
Entièrement chargé (%%CHARGE%%%) Entièrement chargé (%%CHARGE%%%)
</Entry> </Entry>
<Entry key="SystemControl_BatteryChargeCriticalWarning"> <Entry key="SystemControl_BatteryChargeCriticalWarning">
La charge de la batterie est dangereusement faible. Veuillez brancher votre ordinateur à une source d'alimentation électrique ! La charge de la batterie est dangereusement faible. Veuillez brancher votre ordinateur à une source d'alimentation électrique!
</Entry> </Entry>
<Entry key="SystemControl_BatteryChargeLowInfo"> <Entry key="SystemControl_BatteryChargeLowInfo">
La charge de la batterie devient faible. Pensez à brancher votre ordinateur sur une alimentation électrique... La charge de la batterie devient faible. Pensez à brancher votre ordinateur sur une alimentation électrique...

View file

@ -114,6 +114,15 @@
<Entry key="LockScreen_ApplicationsTerminateOption"> <Entry key="LockScreen_ApplicationsTerminateOption">
Chiudi Safe Exam Browser. ATTENZIONE: non ci sarà la possibilità di salvare dati o eseguire ulteriori azioni, lo spegnimento verrà avviato immediatamente! Chiudi Safe Exam Browser. ATTENZIONE: non ci sarà la possibilità di salvare dati o eseguire ulteriori azioni, lo spegnimento verrà avviato immediatamente!
</Entry> </Entry>
<Entry key="LockScreen_DisplayConfigurationContinueOption">
Consenti temporaneamente la configurazione del display. Questo vale solo per la sessione attualmente in esecuzione!
</Entry>
<Entry key="LockScreen_DisplayConfigurationTerminateOption">
Termina Browser esame sicuro. ATTENZIONE: non sarà possibile salvare i dati o eseguire ulteriori azioni, lo spegnimento verrà avviato immediatamente!
</Entry>
<Entry key="LockScreen_DisplayConfigurationMessage">
È stata rilevata una configurazione di visualizzazione vietata. Per sbloccare SEB, seleziona una delle opzioni disponibili e inserisci la password di sblocco corretta.
</Entry>
<Entry key="LockScreen_Title"> <Entry key="LockScreen_Title">
SEB BLOCCATO SEB BLOCCATO
</Entry> </Entry>
@ -210,6 +219,12 @@
<Entry key="MessageBox_ConfigurationDownloadErrorTitle"> <Entry key="MessageBox_ConfigurationDownloadErrorTitle">
Errore di download Errore di download
</Entry> </Entry>
<Entry key="MessageBox_DisplayConfigurationError">
La configurazione del display attiva non è consentita. Si prega di consultare i file di registro per ulteriori informazioni. SEB ora si spegnerà...
</Entry>
<Entry key="MessageBox_DisplayConfigurationErrorTitle">
Configurazione del display vietata
</Entry>
<Entry key="MessageBox_InvalidConfigurationData"> <Entry key="MessageBox_InvalidConfigurationData">
La risorsa di configurazione "%%URI%%" contiene dati non validi! La risorsa di configurazione "%%URI%%" contiene dati non validi!
</Entry> </Entry>
@ -447,6 +462,9 @@
<Entry key="OperationStatus_TerminateShell"> <Entry key="OperationStatus_TerminateShell">
Chiusura dell'interfaccia utente Chiusura dell'interfaccia utente
</Entry> </Entry>
<Entry key="OperationStatus_ValidateDisplayConfiguration">
Convalida dei criteri di configurazione del display
</Entry>
<Entry key="OperationStatus_ValidateRemoteSessionPolicy"> <Entry key="OperationStatus_ValidateRemoteSessionPolicy">
Convalida dei criteri della sessione remota Convalida dei criteri della sessione remota
</Entry> </Entry>

View file

@ -99,6 +99,15 @@
<Entry key="LockScreen_TerminateOption"> <Entry key="LockScreen_TerminateOption">
强制关闭防作弊考试专用浏览器。警告:将无法保存数据或执行任何进一步的操作,关闭操作将立即启动。 强制关闭防作弊考试专用浏览器。警告:将无法保存数据或执行任何进一步的操作,关闭操作将立即启动。
</Entry> </Entry>
<Entry key="LockScreen_DisplayConfigurationContinueOption">
暂时允许显示配置。 这仅适用于当前正在运行的会话!
</Entry>
<Entry key="LockScreen_DisplayConfigurationTerminateOption">
终止安全考试浏览器。 警告:将无法保存数据或执行任何进一步操作,将立即启动关机!
</Entry>
<Entry key="LockScreen_DisplayConfigurationMessage">
检测到禁止的显示配置。 要解锁 SEB请选择可用选项之一并输入正确的解锁密码。
</Entry>
<Entry key="LockScreen_Title"> <Entry key="LockScreen_Title">
防作弊考试专用浏览器已锁定 防作弊考试专用浏览器已锁定
</Entry> </Entry>
@ -180,6 +189,12 @@
<Entry key="MessageBox_ConfigurationDownloadErrorTitle"> <Entry key="MessageBox_ConfigurationDownloadErrorTitle">
下载错误 下载错误
</Entry> </Entry>
<Entry key="MessageBox_DisplayConfigurationError">
不允许使用活动的显示配置。 请查阅日志文件以获取更多信息。 SEB现在将关闭...
</Entry>
<Entry key="MessageBox_DisplayConfigurationErrorTitle">
禁止的显示配置
</Entry>
<Entry key="MessageBox_InvalidConfigurationData"> <Entry key="MessageBox_InvalidConfigurationData">
配置"%%URI%%" 中包含无效数据。 配置"%%URI%%" 中包含无效数据。
</Entry> </Entry>
@ -399,6 +414,9 @@
<Entry key="OperationStatus_TerminateShell"> <Entry key="OperationStatus_TerminateShell">
终止用户界面 终止用户界面
</Entry> </Entry>
<Entry key="OperationStatus_ValidateDisplayConfiguration">
验证显示配置策略
</Entry>
<Entry key="OperationStatus_ValidateRemoteSessionPolicy"> <Entry key="OperationStatus_ValidateRemoteSessionPolicy">
验证远程会话策略 验证远程会话策略
</Entry> </Entry>

View file

@ -7,11 +7,12 @@
*/ */
using SafeExamBrowser.Monitoring.Contracts.Display.Events; using SafeExamBrowser.Monitoring.Contracts.Display.Events;
using SafeExamBrowser.Settings.Monitoring;
namespace SafeExamBrowser.Monitoring.Contracts.Display namespace SafeExamBrowser.Monitoring.Contracts.Display
{ {
/// <summary> /// <summary>
/// Monitors the displays of the computer for (setup) changes and provides access to display-related functionality. /// Monitors the displays of the computer for changes and provides access to display-related functionality.
/// </summary> /// </summary>
public interface IDisplayMonitor public interface IDisplayMonitor
{ {
@ -25,6 +26,11 @@ namespace SafeExamBrowser.Monitoring.Contracts.Display
/// </summary> /// </summary>
void InitializePrimaryDisplay(int taskbarHeight); void InitializePrimaryDisplay(int taskbarHeight);
/// <summary>
/// Indicates whether the currently active display configuration is allowed according to the given settings.
/// </summary>
bool IsAllowedConfiguration(DisplaySettings settings);
/// <summary> /// <summary>
/// Prevents the computer from entering sleep mode and turning its display(s) off. /// Prevents the computer from entering sleep mode and turning its display(s) off.
/// </summary> /// </summary>

View file

@ -0,0 +1,18 @@
/*
* Copyright (c) 2021 ETH Zürich, Educational Development and Technology (LET)
*
* 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.Display
{
internal class Display
{
public string Identifier { get; set; }
public bool IsActive { get; set; }
public bool IsInternal { get; set; }
public VideoOutputTechnology Technology { get; set; }
}
}

View file

@ -7,12 +7,16 @@
*/ */
using System; using System;
using System.Collections.Generic;
using System.Linq;
using System.Management;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
using Microsoft.Win32; using Microsoft.Win32;
using SafeExamBrowser.Logging.Contracts; using SafeExamBrowser.Logging.Contracts;
using SafeExamBrowser.Monitoring.Contracts.Display; using SafeExamBrowser.Monitoring.Contracts.Display;
using SafeExamBrowser.Monitoring.Contracts.Display.Events; using SafeExamBrowser.Monitoring.Contracts.Display.Events;
using SafeExamBrowser.Settings.Monitoring;
using SafeExamBrowser.SystemComponents.Contracts; using SafeExamBrowser.SystemComponents.Contracts;
using SafeExamBrowser.WindowsApi.Contracts; using SafeExamBrowser.WindowsApi.Contracts;
using OperatingSystem = SafeExamBrowser.SystemComponents.Contracts.OperatingSystem; using OperatingSystem = SafeExamBrowser.SystemComponents.Contracts.OperatingSystem;
@ -42,6 +46,41 @@ namespace SafeExamBrowser.Monitoring.Display
InitializeWallpaper(); InitializeWallpaper();
} }
public bool IsAllowedConfiguration(DisplaySettings settings)
{
var allowed = false;
if (TryLoadDisplays(out var displays))
{
var active = displays.Where(d => d.IsActive);
var count = active.Count();
allowed = count <= settings.AllowedDisplays;
if (allowed)
{
logger.Info($"Detected {count} active displays, {settings.AllowedDisplays} are allowed.");
}
else
{
logger.Warn($"Detected {count} active displays but only {settings.AllowedDisplays} are allowed!");
}
if (settings.InternalDisplayOnly && active.Any(d => !d.IsInternal))
{
allowed = false;
logger.Warn("Detected external display but only internal displays are allowed!");
}
}
else
{
allowed = settings.IgnoreError;
logger.Info("Ignoring display setup validation error and allowing active setup.");
}
return allowed;
}
public void PreventSleepMode() public void PreventSleepMode()
{ {
nativeMethods.PreventSleepMode(); nativeMethods.PreventSleepMode();
@ -101,7 +140,7 @@ namespace SafeExamBrowser.Monitoring.Display
{ {
var path = nativeMethods.GetWallpaperPath(); var path = nativeMethods.GetWallpaperPath();
if (!String.IsNullOrEmpty(path)) if (!string.IsNullOrEmpty(path))
{ {
wallpaper = path; wallpaper = path;
logger.Info($"Saved wallpaper image: {wallpaper}."); logger.Info($"Saved wallpaper image: {wallpaper}.");
@ -112,6 +151,70 @@ namespace SafeExamBrowser.Monitoring.Display
} }
} }
private bool TryLoadDisplays(out IList<Display> displays)
{
var success = true;
displays = new List<Display>();
try
{
using (var searcher = new ManagementObjectSearcher(@"Root\WMI", "SELECT * FROM WmiMonitorBasicDisplayParams"))
using (var results = searcher.Get())
{
var displayParameters = results.Cast<ManagementObject>();
foreach (var display in displayParameters)
{
displays.Add(new Display
{
Identifier = Convert.ToString(display["InstanceName"]),
IsActive = Convert.ToBoolean(display["Active"])
});
}
}
using (var searcher = new ManagementObjectSearcher(@"Root\WMI", "SELECT * FROM WmiMonitorConnectionParams"))
using (var results = searcher.Get())
{
var connectionParameters = results.Cast<ManagementObject>();
foreach (var connection in connectionParameters)
{
var identifier = Convert.ToString(connection["InstanceName"]);
var isActive = Convert.ToBoolean(connection["Active"]);
var technologyValue = Convert.ToInt64(connection["VideoOutputTechnology"]);
var technology = (VideoOutputTechnology) technologyValue;
var display = displays.FirstOrDefault(d => d.Identifier?.Equals(identifier, StringComparison.OrdinalIgnoreCase) == true);
if (!Enum.IsDefined(typeof(VideoOutputTechnology), technology))
{
logger.Warn($"Detected undefined video output technology '{technologyValue}' for display '{identifier}'!");
}
if (display != default(Display))
{
display.IsActive &= isActive;
display.IsInternal = technology == VideoOutputTechnology.Internal;
display.Technology = technology;
}
}
}
}
catch (Exception e)
{
success = false;
logger.Error("Failed to query displays!", e);
}
foreach (var display in displays)
{
logger.Info($"Detected {(display.IsActive ? "active" : "inactive")}, {(display.IsInternal ? "internal" : "external")} display '{display.Identifier}' connected via '{display.Technology}'.");
}
return success;
}
private void ResetWorkingArea() private void ResetWorkingArea()
{ {
var identifier = GetIdentifierForPrimaryDisplay(); var identifier = GetIdentifierForPrimaryDisplay();
@ -138,9 +241,11 @@ namespace SafeExamBrowser.Monitoring.Display
private string GetIdentifierForPrimaryDisplay() private string GetIdentifierForPrimaryDisplay()
{ {
var display = Screen.PrimaryScreen.DeviceName?.Replace(@"\\.\", string.Empty); var name = Screen.PrimaryScreen.DeviceName?.Replace(@"\\.\", string.Empty);
var resolution = $"{Screen.PrimaryScreen.Bounds.Width}x{Screen.PrimaryScreen.Bounds.Height}";
var identifier = $"{name} ({resolution})";
return $"{display} ({Screen.PrimaryScreen.Bounds.Width}x{Screen.PrimaryScreen.Bounds.Height})"; return identifier;
} }
private void LogWorkingArea(string message, IBounds area) private void LogWorkingArea(string message, IBounds area)

View file

@ -0,0 +1,40 @@
/*
* Copyright (c) 2021 ETH Zürich, Educational Development and Technology (LET)
*
* 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.Display
{
/// <remarks>
/// See https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/d3dkmdt/ne-d3dkmdt-_d3dkmdt_video_output_technology
/// </remarks>
internal enum VideoOutputTechnology : long
{
Uninitialized = -2,
Other = -1,
HD15 = 0,
SVideo = 1,
CompositeVideo = 2,
ComponentVideo = 3,
DVI = 4,
HDMI = 5,
LVDS = 6,
DJPN = 8,
SDI = 9,
DisplayPortExternal = 10,
DisplayPortEmbedded = 11,
UDIExternal = 12,
UDIEmbedded = 13,
SDTVDongle = 14,
MiraCast = 15,
Internal = 0x80000000,
SVideo4Pin = SVideo,
SVideo7Pin = SVideo,
RF = ComponentVideo,
RCA3Component = ComponentVideo,
BNC = ComponentVideo
}
}

View file

@ -51,6 +51,7 @@
<ItemGroup> <ItemGroup>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Drawing" /> <Reference Include="System.Drawing" />
<Reference Include="System.Management" />
<Reference Include="System.Windows.Forms" /> <Reference Include="System.Windows.Forms" />
<Reference Include="Microsoft.CSharp" /> <Reference Include="Microsoft.CSharp" />
<Reference Include="WindowsBase" /> <Reference Include="WindowsBase" />
@ -58,7 +59,9 @@
<ItemGroup> <ItemGroup>
<Compile Include="Applications\Window.cs" /> <Compile Include="Applications\Window.cs" />
<Compile Include="Display\Bounds.cs" /> <Compile Include="Display\Bounds.cs" />
<Compile Include="Display\Display.cs" />
<Compile Include="Display\DisplayMonitor.cs" /> <Compile Include="Display\DisplayMonitor.cs" />
<Compile Include="Display\VideoOutputTechnology.cs" />
<Compile Include="Keyboard\KeyboardInterceptor.cs" /> <Compile Include="Keyboard\KeyboardInterceptor.cs" />
<Compile Include="Mouse\MouseInterceptor.cs" /> <Compile Include="Mouse\MouseInterceptor.cs" />
<Compile Include="Applications\ApplicationMonitor.cs" /> <Compile Include="Applications\ApplicationMonitor.cs" />

View file

@ -24,6 +24,7 @@ using SafeExamBrowser.I18n;
using SafeExamBrowser.I18n.Contracts; using SafeExamBrowser.I18n.Contracts;
using SafeExamBrowser.Logging; using SafeExamBrowser.Logging;
using SafeExamBrowser.Logging.Contracts; using SafeExamBrowser.Logging.Contracts;
using SafeExamBrowser.Monitoring.Display;
using SafeExamBrowser.Runtime.Communication; using SafeExamBrowser.Runtime.Communication;
using SafeExamBrowser.Runtime.Operations; using SafeExamBrowser.Runtime.Operations;
using SafeExamBrowser.Server; using SafeExamBrowser.Server;
@ -63,6 +64,7 @@ namespace SafeExamBrowser.Runtime
var uiFactory = new UserInterfaceFactory(text); var uiFactory = new UserInterfaceFactory(text);
var desktopFactory = new DesktopFactory(ModuleLogger(nameof(DesktopFactory))); var desktopFactory = new DesktopFactory(ModuleLogger(nameof(DesktopFactory)));
var desktopMonitor = new DesktopMonitor(ModuleLogger(nameof(DesktopMonitor))); var desktopMonitor = new DesktopMonitor(ModuleLogger(nameof(DesktopMonitor)));
var displayMonitor = new DisplayMonitor(ModuleLogger(nameof(DisplayMonitor)), nativeMethods, systemInfo);
var explorerShell = new ExplorerShell(ModuleLogger(nameof(ExplorerShell)), nativeMethods); var explorerShell = new ExplorerShell(ModuleLogger(nameof(ExplorerShell)), nativeMethods);
var fileSystem = new FileSystem(); var fileSystem = new FileSystem();
var processFactory = new ProcessFactory(ModuleLogger(nameof(ProcessFactory))); var processFactory = new ProcessFactory(ModuleLogger(nameof(ProcessFactory)));
@ -89,6 +91,7 @@ namespace SafeExamBrowser.Runtime
sessionOperations.Enqueue(new ServerOperation(args, configuration, fileSystem, logger, sessionContext, server)); sessionOperations.Enqueue(new ServerOperation(args, configuration, fileSystem, logger, sessionContext, server));
sessionOperations.Enqueue(new RemoteSessionOperation(remoteSessionDetector, logger, sessionContext)); sessionOperations.Enqueue(new RemoteSessionOperation(remoteSessionDetector, logger, sessionContext));
sessionOperations.Enqueue(new VirtualMachineOperation(vmDetector, logger, sessionContext)); sessionOperations.Enqueue(new VirtualMachineOperation(vmDetector, logger, sessionContext));
sessionOperations.Enqueue(new DisplayMonitorOperation(displayMonitor, logger, sessionContext));
sessionOperations.Enqueue(new ServiceOperation(logger, runtimeHost, serviceProxy, sessionContext, THIRTY_SECONDS, userInfo)); sessionOperations.Enqueue(new ServiceOperation(logger, runtimeHost, serviceProxy, sessionContext, THIRTY_SECONDS, userInfo));
sessionOperations.Enqueue(new ClientTerminationOperation(logger, processFactory, proxyFactory, runtimeHost, sessionContext, THIRTY_SECONDS)); sessionOperations.Enqueue(new ClientTerminationOperation(logger, processFactory, proxyFactory, runtimeHost, sessionContext, THIRTY_SECONDS));
sessionOperations.Enqueue(new ProctoringWorkaroundOperation(logger, sessionContext)); sessionOperations.Enqueue(new ProctoringWorkaroundOperation(logger, sessionContext));

View file

@ -0,0 +1,76 @@
/*
* Copyright (c) 2021 ETH Zürich, Educational Development and Technology (LET)
*
* 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.Core.Contracts.OperationModel;
using SafeExamBrowser.Core.Contracts.OperationModel.Events;
using SafeExamBrowser.I18n.Contracts;
using SafeExamBrowser.Logging.Contracts;
using SafeExamBrowser.Monitoring.Contracts.Display;
using SafeExamBrowser.Runtime.Operations.Events;
using SafeExamBrowser.UserInterface.Contracts.MessageBox;
namespace SafeExamBrowser.Runtime.Operations
{
internal class DisplayMonitorOperation : SessionOperation
{
private readonly IDisplayMonitor displayMonitor;
private readonly ILogger logger;
public override event ActionRequiredEventHandler ActionRequired;
public override event StatusChangedEventHandler StatusChanged;
public DisplayMonitorOperation(IDisplayMonitor displayMonitor, ILogger logger, SessionContext context) : base(context)
{
this.displayMonitor = displayMonitor;
this.logger = logger;
}
public override OperationResult Perform()
{
return CheckDisplayConfiguration();
}
public override OperationResult Repeat()
{
return CheckDisplayConfiguration();
}
public override OperationResult Revert()
{
return OperationResult.Success;
}
private OperationResult CheckDisplayConfiguration()
{
var args = new MessageEventArgs
{
Action = MessageBoxAction.Ok,
Icon = MessageBoxIcon.Error,
Message = TextKey.MessageBox_DisplayConfigurationError,
Title = TextKey.MessageBox_DisplayConfigurationErrorTitle
};
var result = OperationResult.Aborted;
logger.Info("Validating display configuration...");
StatusChanged?.Invoke(TextKey.OperationStatus_ValidateDisplayConfiguration);
if (displayMonitor.IsAllowedConfiguration(Context.Next.Settings.Display))
{
logger.Info("Display configuration is allowed.");
result = OperationResult.Success;
}
else
{
logger.Error("Display configuration is not allowed!");
ActionRequired?.Invoke(args);
}
return result;
}
}
}

View file

@ -95,6 +95,7 @@
<Compile Include="Operations\ConfigurationBaseOperation.cs" /> <Compile Include="Operations\ConfigurationBaseOperation.cs" />
<Compile Include="Operations\ConfigurationOperation.cs" /> <Compile Include="Operations\ConfigurationOperation.cs" />
<Compile Include="Operations\DisclaimerOperation.cs" /> <Compile Include="Operations\DisclaimerOperation.cs" />
<Compile Include="Operations\DisplayMonitorOperation.cs" />
<Compile Include="Operations\Events\ClientConfigurationErrorMessageArgs.cs" /> <Compile Include="Operations\Events\ClientConfigurationErrorMessageArgs.cs" />
<Compile Include="Operations\Events\ConfigurationCompletedEventArgs.cs" /> <Compile Include="Operations\Events\ConfigurationCompletedEventArgs.cs" />
<Compile Include="Operations\Events\ExamSelectionEventArgs.cs" /> <Compile Include="Operations\Events\ExamSelectionEventArgs.cs" />
@ -188,6 +189,14 @@
<Project>{e107026c-2011-4552-a7d8-3a0d37881df6}</Project> <Project>{e107026c-2011-4552-a7d8-3a0d37881df6}</Project>
<Name>SafeExamBrowser.Logging</Name> <Name>SafeExamBrowser.Logging</Name>
</ProjectReference> </ProjectReference>
<ProjectReference Include="..\SafeExamBrowser.Monitoring.Contracts\SafeExamBrowser.Monitoring.Contracts.csproj">
<Project>{6d563a30-366d-4c35-815b-2c9e6872278b}</Project>
<Name>SafeExamBrowser.Monitoring.Contracts</Name>
</ProjectReference>
<ProjectReference Include="..\SafeExamBrowser.Monitoring\SafeExamBrowser.Monitoring.csproj">
<Project>{ef563531-4eb5-44b9-a5ec-d6d6f204469b}</Project>
<Name>SafeExamBrowser.Monitoring</Name>
</ProjectReference>
<ProjectReference Include="..\SafeExamBrowser.Server.Contracts\SafeExamBrowser.Server.Contracts.csproj"> <ProjectReference Include="..\SafeExamBrowser.Server.Contracts\SafeExamBrowser.Server.Contracts.csproj">
<Project>{db701e6f-bddc-4cec-b662-335a9dc11809}</Project> <Project>{db701e6f-bddc-4cec-b662-335a9dc11809}</Project>
<Name>SafeExamBrowser.Server.Contracts</Name> <Name>SafeExamBrowser.Server.Contracts</Name>

View file

@ -51,6 +51,11 @@ namespace SafeExamBrowser.Settings
/// </summary> /// </summary>
public ConfigurationMode ConfigurationMode { get; set; } public ConfigurationMode ConfigurationMode { get; set; }
/// <summary>
/// All display-related settings.
/// </summary>
public DisplaySettings Display { get; set; }
/// <summary> /// <summary>
/// All keyboard-related settings. /// All keyboard-related settings.
/// </summary> /// </summary>
@ -107,6 +112,7 @@ namespace SafeExamBrowser.Settings
Applications = new ApplicationSettings(); Applications = new ApplicationSettings();
Audio = new AudioSettings(); Audio = new AudioSettings();
Browser = new BrowserSettings(); Browser = new BrowserSettings();
Display = new DisplaySettings();
Keyboard = new KeyboardSettings(); Keyboard = new KeyboardSettings();
Mouse = new MouseSettings(); Mouse = new MouseSettings();
Proctoring = new ProctoringSettings(); Proctoring = new ProctoringSettings();

View file

@ -0,0 +1,34 @@
/*
* Copyright (c) 2021 ETH Zürich, Educational Development and Technology (LET)
*
* 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.Settings.Monitoring
{
/// <summary>
/// Defines all settings related to the display configuration monitoring.
/// </summary>
[Serializable]
public class DisplaySettings
{
/// <summary>
/// Defines the number of allowed displays.
/// </summary>
public int AllowedDisplays { get; set; }
/// <summary>
/// Determines whether any display configuration may be allowed when the configuration can't be verified due to an error.
/// </summary>
public bool IgnoreError { get; set; }
/// <summary>
/// Determines whether only an internal display may be used.
/// </summary>
public bool InternalDisplayOnly { get; set; }
}
}

View file

@ -71,6 +71,7 @@
<Compile Include="Browser\Proxy\ProxyProtocol.cs" /> <Compile Include="Browser\Proxy\ProxyProtocol.cs" />
<Compile Include="Browser\Proxy\ProxyConfiguration.cs" /> <Compile Include="Browser\Proxy\ProxyConfiguration.cs" />
<Compile Include="ConfigurationMode.cs" /> <Compile Include="ConfigurationMode.cs" />
<Compile Include="Monitoring\DisplaySettings.cs" />
<Compile Include="Proctoring\JitsiMeetSettings.cs" /> <Compile Include="Proctoring\JitsiMeetSettings.cs" />
<Compile Include="Proctoring\ProctoringSettings.cs" /> <Compile Include="Proctoring\ProctoringSettings.cs" />
<Compile Include="Proctoring\WindowVisibility.cs" /> <Compile Include="Proctoring\WindowVisibility.cs" />

View file

@ -55,7 +55,7 @@ namespace SafeExamBrowser.SystemComponents
try try
{ {
using (var searcher = new ManagementObjectSearcher("Select * from Win32_ComputerSystem")) using (var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_ComputerSystem"))
using (var results = searcher.Get()) using (var results = searcher.Get())
using (var system = results.Cast<ManagementObject>().First()) using (var system = results.Cast<ManagementObject>().First())
{ {

View file

@ -381,7 +381,7 @@ namespace SebWindowsConfig
public const String KeyAllowDisplayMirroring = "allowDisplayMirroring"; public const String KeyAllowDisplayMirroring = "allowDisplayMirroring";
public const String KeyAllowedDisplaysMaxNumber = "allowedDisplaysMaxNumber"; public const String KeyAllowedDisplaysMaxNumber = "allowedDisplaysMaxNumber";
public const String KeyAllowedDisplayBuiltin = "allowedDisplayBuiltin"; public const String KeyAllowedDisplayBuiltin = "allowedDisplayBuiltin";
public const String KeyAllowedDisplayBuiltinEnforce = "allowedDisplayBuiltinEnforce";
// Group "Registry" // Group "Registry"
@ -974,6 +974,7 @@ namespace SebWindowsConfig
SEBSettings.settingsDefault.Add(SEBSettings.KeyAllowDisplayMirroring, false); SEBSettings.settingsDefault.Add(SEBSettings.KeyAllowDisplayMirroring, false);
SEBSettings.settingsDefault.Add(SEBSettings.KeyAllowedDisplaysMaxNumber, 1); SEBSettings.settingsDefault.Add(SEBSettings.KeyAllowedDisplaysMaxNumber, 1);
SEBSettings.settingsDefault.Add(SEBSettings.KeyAllowedDisplayBuiltin, true); SEBSettings.settingsDefault.Add(SEBSettings.KeyAllowedDisplayBuiltin, true);
SEBSettings.settingsDefault.Add(SEBSettings.KeyAllowedDisplayBuiltinEnforce, false);
SEBSettings.settingsDefault.Add(SEBSettings.KeyAllowChromeNotifications, false); SEBSettings.settingsDefault.Add(SEBSettings.KeyAllowChromeNotifications, false);
SEBSettings.settingsDefault.Add(SEBSettings.KeyAllowWindowsUpdate, false); SEBSettings.settingsDefault.Add(SEBSettings.KeyAllowWindowsUpdate, false);

View file

@ -30,8 +30,8 @@ namespace SebWindowsConfig
{ {
this.components = new System.ComponentModel.Container(); this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SebWindowsConfigForm)); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SebWindowsConfigForm));
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
this.openFileDialogSebConfigFile = new System.Windows.Forms.OpenFileDialog(); this.openFileDialogSebConfigFile = new System.Windows.Forms.OpenFileDialog();
this.saveFileDialogSebConfigFile = new System.Windows.Forms.SaveFileDialog(); this.saveFileDialogSebConfigFile = new System.Windows.Forms.SaveFileDialog();
this.imageListTabIcons = new System.Windows.Forms.ImageList(this.components); this.imageListTabIcons = new System.Windows.Forms.ImageList(this.components);
@ -83,13 +83,13 @@ namespace SebWindowsConfig
this.labelSebServicePolicy = new System.Windows.Forms.Label(); this.labelSebServicePolicy = new System.Windows.Forms.Label();
this.checkBoxAllowScreenSharing = new System.Windows.Forms.CheckBox(); this.checkBoxAllowScreenSharing = new System.Windows.Forms.CheckBox();
this.checkBoxShowLogButton = new System.Windows.Forms.CheckBox(); this.checkBoxShowLogButton = new System.Windows.Forms.CheckBox();
this.comboBoxAllowedDisplaysMaxNumber = new System.Windows.Forms.ComboBox();
this.checkBoxAllowLogAccess = new System.Windows.Forms.CheckBox(); this.checkBoxAllowLogAccess = new System.Windows.Forms.CheckBox();
this.label13 = new System.Windows.Forms.Label();
this.checkBoxEnablePrivateClipboard = new System.Windows.Forms.CheckBox(); this.checkBoxEnablePrivateClipboard = new System.Windows.Forms.CheckBox();
this.groupBox1 = new System.Windows.Forms.GroupBox(); this.groupBox1 = new System.Windows.Forms.GroupBox();
this.label14 = new System.Windows.Forms.Label(); this.label14 = new System.Windows.Forms.Label();
this.comboBoxMinMacOSVersion = new System.Windows.Forms.ComboBox(); this.comboBoxMinMacOSVersion = new System.Windows.Forms.ComboBox();
this.comboBoxAllowedDisplaysMaxNumber = new System.Windows.Forms.ComboBox();
this.label13 = new System.Windows.Forms.Label();
this.checkBoxAllowedDisplayBuiltin = new System.Windows.Forms.CheckBox(); this.checkBoxAllowedDisplayBuiltin = new System.Windows.Forms.CheckBox();
this.checkBoxAllowDisplayMirroring = new System.Windows.Forms.CheckBox(); this.checkBoxAllowDisplayMirroring = new System.Windows.Forms.CheckBox();
this.checkBoxDetectStoppedProcess = new System.Windows.Forms.CheckBox(); this.checkBoxDetectStoppedProcess = new System.Windows.Forms.CheckBox();
@ -456,6 +456,7 @@ namespace SebWindowsConfig
this.editDuplicateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.editDuplicateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.configureClientToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.configureClientToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.applyAndStartSEBToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.applyAndStartSEBToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.checkBoxEnforceBuiltinDisplay = new System.Windows.Forms.CheckBox();
this.tabPageHookedKeys.SuspendLayout(); this.tabPageHookedKeys.SuspendLayout();
this.groupBoxFunctionKeys.SuspendLayout(); this.groupBoxFunctionKeys.SuspendLayout();
this.groupBoxSpecialKeys.SuspendLayout(); this.groupBoxSpecialKeys.SuspendLayout();
@ -1080,9 +1081,12 @@ namespace SebWindowsConfig
// //
// tabPageSecurity // tabPageSecurity
// //
this.tabPageSecurity.Controls.Add(this.checkBoxEnforceBuiltinDisplay);
this.tabPageSecurity.Controls.Add(this.groupBoxSebService); this.tabPageSecurity.Controls.Add(this.groupBoxSebService);
this.tabPageSecurity.Controls.Add(this.checkBoxShowLogButton); this.tabPageSecurity.Controls.Add(this.checkBoxShowLogButton);
this.tabPageSecurity.Controls.Add(this.comboBoxAllowedDisplaysMaxNumber);
this.tabPageSecurity.Controls.Add(this.checkBoxAllowLogAccess); this.tabPageSecurity.Controls.Add(this.checkBoxAllowLogAccess);
this.tabPageSecurity.Controls.Add(this.label13);
this.tabPageSecurity.Controls.Add(this.checkBoxEnablePrivateClipboard); this.tabPageSecurity.Controls.Add(this.checkBoxEnablePrivateClipboard);
this.tabPageSecurity.Controls.Add(this.groupBox1); this.tabPageSecurity.Controls.Add(this.groupBox1);
this.tabPageSecurity.Controls.Add(this.groupBox10); this.tabPageSecurity.Controls.Add(this.groupBox10);
@ -1196,7 +1200,7 @@ namespace SebWindowsConfig
// checkBoxShowLogButton // checkBoxShowLogButton
// //
this.checkBoxShowLogButton.AutoSize = true; this.checkBoxShowLogButton.AutoSize = true;
this.checkBoxShowLogButton.Location = new System.Drawing.Point(358, 337); this.checkBoxShowLogButton.Location = new System.Drawing.Point(617, 323);
this.checkBoxShowLogButton.Margin = new System.Windows.Forms.Padding(2); this.checkBoxShowLogButton.Margin = new System.Windows.Forms.Padding(2);
this.checkBoxShowLogButton.Name = "checkBoxShowLogButton"; this.checkBoxShowLogButton.Name = "checkBoxShowLogButton";
this.checkBoxShowLogButton.Size = new System.Drawing.Size(180, 17); this.checkBoxShowLogButton.Size = new System.Drawing.Size(180, 17);
@ -1205,10 +1209,24 @@ namespace SebWindowsConfig
this.checkBoxShowLogButton.UseVisualStyleBackColor = true; this.checkBoxShowLogButton.UseVisualStyleBackColor = true;
this.checkBoxShowLogButton.CheckedChanged += new System.EventHandler(this.checkBoxShowLogButton_CheckedChanged); this.checkBoxShowLogButton.CheckedChanged += new System.EventHandler(this.checkBoxShowLogButton_CheckedChanged);
// //
// comboBoxAllowedDisplaysMaxNumber
//
this.comboBoxAllowedDisplaysMaxNumber.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.comboBoxAllowedDisplaysMaxNumber.FormattingEnabled = true;
this.comboBoxAllowedDisplaysMaxNumber.Location = new System.Drawing.Point(833, 267);
this.comboBoxAllowedDisplaysMaxNumber.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
this.comboBoxAllowedDisplaysMaxNumber.Name = "comboBoxAllowedDisplaysMaxNumber";
this.comboBoxAllowedDisplaysMaxNumber.Size = new System.Drawing.Size(57, 21);
this.comboBoxAllowedDisplaysMaxNumber.TabIndex = 100;
this.toolTip1.SetToolTip(this.comboBoxAllowedDisplaysMaxNumber, "If more displays are connected, these are blanked with an orange full screen wind" +
"ow");
this.comboBoxAllowedDisplaysMaxNumber.SelectedIndexChanged += new System.EventHandler(this.comboBoxAllowedDisplaysMaxNumber_SelectedIndexChanged);
this.comboBoxAllowedDisplaysMaxNumber.TextChanged += new System.EventHandler(this.comboBoxAllowedDisplaysMaxNumber_TextChanged);
//
// checkBoxAllowLogAccess // checkBoxAllowLogAccess
// //
this.checkBoxAllowLogAccess.AutoSize = true; this.checkBoxAllowLogAccess.AutoSize = true;
this.checkBoxAllowLogAccess.Location = new System.Drawing.Point(328, 317); this.checkBoxAllowLogAccess.Location = new System.Drawing.Point(598, 304);
this.checkBoxAllowLogAccess.Margin = new System.Windows.Forms.Padding(2); this.checkBoxAllowLogAccess.Margin = new System.Windows.Forms.Padding(2);
this.checkBoxAllowLogAccess.Name = "checkBoxAllowLogAccess"; this.checkBoxAllowLogAccess.Name = "checkBoxAllowLogAccess";
this.checkBoxAllowLogAccess.Size = new System.Drawing.Size(199, 17); this.checkBoxAllowLogAccess.Size = new System.Drawing.Size(199, 17);
@ -1217,11 +1235,24 @@ namespace SebWindowsConfig
this.checkBoxAllowLogAccess.UseVisualStyleBackColor = true; this.checkBoxAllowLogAccess.UseVisualStyleBackColor = true;
this.checkBoxAllowLogAccess.CheckedChanged += new System.EventHandler(this.checkBoxAllowLogAccess_CheckedChanged); this.checkBoxAllowLogAccess.CheckedChanged += new System.EventHandler(this.checkBoxAllowLogAccess_CheckedChanged);
// //
// label13
//
this.label13.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.label13.AutoSize = true;
this.label13.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label13.Location = new System.Drawing.Point(595, 270);
this.label13.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label13.Name = "label13";
this.label13.Size = new System.Drawing.Size(234, 13);
this.label13.TabIndex = 101;
this.label13.Text = "Maximum allowed number of connected displays";
this.label13.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// checkBoxEnablePrivateClipboard // checkBoxEnablePrivateClipboard
// //
this.checkBoxEnablePrivateClipboard.AutoSize = true; this.checkBoxEnablePrivateClipboard.AutoSize = true;
this.checkBoxEnablePrivateClipboard.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.checkBoxEnablePrivateClipboard.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.checkBoxEnablePrivateClipboard.Location = new System.Drawing.Point(328, 278); this.checkBoxEnablePrivateClipboard.Location = new System.Drawing.Point(328, 297);
this.checkBoxEnablePrivateClipboard.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1); this.checkBoxEnablePrivateClipboard.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
this.checkBoxEnablePrivateClipboard.Name = "checkBoxEnablePrivateClipboard"; this.checkBoxEnablePrivateClipboard.Name = "checkBoxEnablePrivateClipboard";
this.checkBoxEnablePrivateClipboard.Size = new System.Drawing.Size(156, 17); this.checkBoxEnablePrivateClipboard.Size = new System.Drawing.Size(156, 17);
@ -1236,8 +1267,6 @@ namespace SebWindowsConfig
// //
this.groupBox1.Controls.Add(this.label14); this.groupBox1.Controls.Add(this.label14);
this.groupBox1.Controls.Add(this.comboBoxMinMacOSVersion); this.groupBox1.Controls.Add(this.comboBoxMinMacOSVersion);
this.groupBox1.Controls.Add(this.comboBoxAllowedDisplaysMaxNumber);
this.groupBox1.Controls.Add(this.label13);
this.groupBox1.Controls.Add(this.checkBoxAllowedDisplayBuiltin); this.groupBox1.Controls.Add(this.checkBoxAllowedDisplayBuiltin);
this.groupBox1.Controls.Add(this.checkBoxAllowDisplayMirroring); this.groupBox1.Controls.Add(this.checkBoxAllowDisplayMirroring);
this.groupBox1.Controls.Add(this.checkBoxDetectStoppedProcess); this.groupBox1.Controls.Add(this.checkBoxDetectStoppedProcess);
@ -1280,39 +1309,12 @@ namespace SebWindowsConfig
this.comboBoxMinMacOSVersion.SelectedIndexChanged += new System.EventHandler(this.comboBoxMinMacOSVersion_SelectedIndexChanged); this.comboBoxMinMacOSVersion.SelectedIndexChanged += new System.EventHandler(this.comboBoxMinMacOSVersion_SelectedIndexChanged);
this.comboBoxMinMacOSVersion.TextChanged += new System.EventHandler(this.comboBoxMinMacOSVersion_TextChanged); this.comboBoxMinMacOSVersion.TextChanged += new System.EventHandler(this.comboBoxMinMacOSVersion_TextChanged);
// //
// comboBoxAllowedDisplaysMaxNumber
//
this.comboBoxAllowedDisplaysMaxNumber.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.comboBoxAllowedDisplaysMaxNumber.FormattingEnabled = true;
this.comboBoxAllowedDisplaysMaxNumber.Location = new System.Drawing.Point(527, 159);
this.comboBoxAllowedDisplaysMaxNumber.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
this.comboBoxAllowedDisplaysMaxNumber.Name = "comboBoxAllowedDisplaysMaxNumber";
this.comboBoxAllowedDisplaysMaxNumber.Size = new System.Drawing.Size(93, 21);
this.comboBoxAllowedDisplaysMaxNumber.TabIndex = 100;
this.toolTip1.SetToolTip(this.comboBoxAllowedDisplaysMaxNumber, "If more displays are connected, these are blanked with an orange full screen wind" +
"ow");
this.comboBoxAllowedDisplaysMaxNumber.SelectedIndexChanged += new System.EventHandler(this.comboBoxAllowedDisplaysMaxNumber_SelectedIndexChanged);
this.comboBoxAllowedDisplaysMaxNumber.TextChanged += new System.EventHandler(this.comboBoxAllowedDisplaysMaxNumber_TextChanged);
//
// label13
//
this.label13.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.label13.AutoSize = true;
this.label13.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label13.Location = new System.Drawing.Point(289, 162);
this.label13.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label13.Name = "label13";
this.label13.Size = new System.Drawing.Size(234, 13);
this.label13.TabIndex = 101;
this.label13.Text = "Maximum allowed number of connected displays";
this.label13.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// checkBoxAllowedDisplayBuiltin // checkBoxAllowedDisplayBuiltin
// //
this.checkBoxAllowedDisplayBuiltin.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.checkBoxAllowedDisplayBuiltin.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.checkBoxAllowedDisplayBuiltin.AutoSize = true; this.checkBoxAllowedDisplayBuiltin.AutoSize = true;
this.checkBoxAllowedDisplayBuiltin.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.checkBoxAllowedDisplayBuiltin.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.checkBoxAllowedDisplayBuiltin.Location = new System.Drawing.Point(514, 184); this.checkBoxAllowedDisplayBuiltin.Location = new System.Drawing.Point(15, 181);
this.checkBoxAllowedDisplayBuiltin.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1); this.checkBoxAllowedDisplayBuiltin.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
this.checkBoxAllowedDisplayBuiltin.Name = "checkBoxAllowedDisplayBuiltin"; this.checkBoxAllowedDisplayBuiltin.Name = "checkBoxAllowedDisplayBuiltin";
this.checkBoxAllowedDisplayBuiltin.Size = new System.Drawing.Size(113, 17); this.checkBoxAllowedDisplayBuiltin.Size = new System.Drawing.Size(113, 17);
@ -1327,7 +1329,7 @@ namespace SebWindowsConfig
// //
this.checkBoxAllowDisplayMirroring.AutoSize = true; this.checkBoxAllowDisplayMirroring.AutoSize = true;
this.checkBoxAllowDisplayMirroring.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.checkBoxAllowDisplayMirroring.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.checkBoxAllowDisplayMirroring.Location = new System.Drawing.Point(15, 140); this.checkBoxAllowDisplayMirroring.Location = new System.Drawing.Point(15, 143);
this.checkBoxAllowDisplayMirroring.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1); this.checkBoxAllowDisplayMirroring.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
this.checkBoxAllowDisplayMirroring.Name = "checkBoxAllowDisplayMirroring"; this.checkBoxAllowDisplayMirroring.Name = "checkBoxAllowDisplayMirroring";
this.checkBoxAllowDisplayMirroring.Size = new System.Drawing.Size(263, 17); this.checkBoxAllowDisplayMirroring.Size = new System.Drawing.Size(263, 17);
@ -1342,7 +1344,7 @@ namespace SebWindowsConfig
// //
this.checkBoxDetectStoppedProcess.AutoSize = true; this.checkBoxDetectStoppedProcess.AutoSize = true;
this.checkBoxDetectStoppedProcess.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.checkBoxDetectStoppedProcess.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.checkBoxDetectStoppedProcess.Location = new System.Drawing.Point(15, 121); this.checkBoxDetectStoppedProcess.Location = new System.Drawing.Point(15, 124);
this.checkBoxDetectStoppedProcess.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1); this.checkBoxDetectStoppedProcess.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
this.checkBoxDetectStoppedProcess.Name = "checkBoxDetectStoppedProcess"; this.checkBoxDetectStoppedProcess.Name = "checkBoxDetectStoppedProcess";
this.checkBoxDetectStoppedProcess.Size = new System.Drawing.Size(214, 17); this.checkBoxDetectStoppedProcess.Size = new System.Drawing.Size(214, 17);
@ -1357,7 +1359,7 @@ namespace SebWindowsConfig
// //
this.checkBoxAllowDictation.AutoSize = true; this.checkBoxAllowDictation.AutoSize = true;
this.checkBoxAllowDictation.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.checkBoxAllowDictation.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.checkBoxAllowDictation.Location = new System.Drawing.Point(15, 102); this.checkBoxAllowDictation.Location = new System.Drawing.Point(15, 105);
this.checkBoxAllowDictation.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1); this.checkBoxAllowDictation.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
this.checkBoxAllowDictation.Name = "checkBoxAllowDictation"; this.checkBoxAllowDictation.Name = "checkBoxAllowDictation";
this.checkBoxAllowDictation.Size = new System.Drawing.Size(126, 17); this.checkBoxAllowDictation.Size = new System.Drawing.Size(126, 17);
@ -1373,7 +1375,7 @@ namespace SebWindowsConfig
this.checkBoxAllowUserAppFolderInstall.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.checkBoxAllowUserAppFolderInstall.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.checkBoxAllowUserAppFolderInstall.AutoSize = true; this.checkBoxAllowUserAppFolderInstall.AutoSize = true;
this.checkBoxAllowUserAppFolderInstall.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.checkBoxAllowUserAppFolderInstall.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.checkBoxAllowUserAppFolderInstall.Location = new System.Drawing.Point(421, 64); this.checkBoxAllowUserAppFolderInstall.Location = new System.Drawing.Point(15, 162);
this.checkBoxAllowUserAppFolderInstall.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1); this.checkBoxAllowUserAppFolderInstall.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
this.checkBoxAllowUserAppFolderInstall.Name = "checkBoxAllowUserAppFolderInstall"; this.checkBoxAllowUserAppFolderInstall.Name = "checkBoxAllowUserAppFolderInstall";
this.checkBoxAllowUserAppFolderInstall.Size = new System.Drawing.Size(204, 17); this.checkBoxAllowUserAppFolderInstall.Size = new System.Drawing.Size(204, 17);
@ -1388,7 +1390,7 @@ namespace SebWindowsConfig
// //
this.checkBoxAllowSiri.AutoSize = true; this.checkBoxAllowSiri.AutoSize = true;
this.checkBoxAllowSiri.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.checkBoxAllowSiri.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.checkBoxAllowSiri.Location = new System.Drawing.Point(15, 83); this.checkBoxAllowSiri.Location = new System.Drawing.Point(15, 86);
this.checkBoxAllowSiri.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1); this.checkBoxAllowSiri.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
this.checkBoxAllowSiri.Name = "checkBoxAllowSiri"; this.checkBoxAllowSiri.Name = "checkBoxAllowSiri";
this.checkBoxAllowSiri.Size = new System.Drawing.Size(100, 17); this.checkBoxAllowSiri.Size = new System.Drawing.Size(100, 17);
@ -1404,7 +1406,7 @@ namespace SebWindowsConfig
// //
this.checkBoxForceAppFolderInstall.AutoSize = true; this.checkBoxForceAppFolderInstall.AutoSize = true;
this.checkBoxForceAppFolderInstall.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.checkBoxForceAppFolderInstall.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.checkBoxForceAppFolderInstall.Location = new System.Drawing.Point(15, 64); this.checkBoxForceAppFolderInstall.Location = new System.Drawing.Point(15, 67);
this.checkBoxForceAppFolderInstall.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1); this.checkBoxForceAppFolderInstall.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
this.checkBoxForceAppFolderInstall.Name = "checkBoxForceAppFolderInstall"; this.checkBoxForceAppFolderInstall.Name = "checkBoxForceAppFolderInstall";
this.checkBoxForceAppFolderInstall.Size = new System.Drawing.Size(205, 17); this.checkBoxForceAppFolderInstall.Size = new System.Drawing.Size(205, 17);
@ -1418,7 +1420,7 @@ namespace SebWindowsConfig
// //
this.checkBoxEnableAppSwitcherCheck.AutoSize = true; this.checkBoxEnableAppSwitcherCheck.AutoSize = true;
this.checkBoxEnableAppSwitcherCheck.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.checkBoxEnableAppSwitcherCheck.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.checkBoxEnableAppSwitcherCheck.Location = new System.Drawing.Point(15, 43); this.checkBoxEnableAppSwitcherCheck.Location = new System.Drawing.Point(15, 46);
this.checkBoxEnableAppSwitcherCheck.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1); this.checkBoxEnableAppSwitcherCheck.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
this.checkBoxEnableAppSwitcherCheck.Name = "checkBoxEnableAppSwitcherCheck"; this.checkBoxEnableAppSwitcherCheck.Name = "checkBoxEnableAppSwitcherCheck";
this.checkBoxEnableAppSwitcherCheck.Size = new System.Drawing.Size(220, 17); this.checkBoxEnableAppSwitcherCheck.Size = new System.Drawing.Size(220, 17);
@ -1437,7 +1439,7 @@ namespace SebWindowsConfig
this.groupBox10.Controls.Add(this.textBoxLogDirectoryWin); this.groupBox10.Controls.Add(this.textBoxLogDirectoryWin);
this.groupBox10.Controls.Add(this.label4); this.groupBox10.Controls.Add(this.label4);
this.groupBox10.Controls.Add(this.checkBoxUseStandardDirectory); this.groupBox10.Controls.Add(this.checkBoxUseStandardDirectory);
this.groupBox10.Location = new System.Drawing.Point(583, 259); this.groupBox10.Location = new System.Drawing.Point(23, 381);
this.groupBox10.Name = "groupBox10"; this.groupBox10.Name = "groupBox10";
this.groupBox10.Size = new System.Drawing.Size(555, 142); this.groupBox10.Size = new System.Drawing.Size(555, 142);
this.groupBox10.TabIndex = 95; this.groupBox10.TabIndex = 95;
@ -1517,7 +1519,7 @@ namespace SebWindowsConfig
// //
this.checkBoxEnableScreenCapture.AutoSize = true; this.checkBoxEnableScreenCapture.AutoSize = true;
this.checkBoxEnableScreenCapture.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.checkBoxEnableScreenCapture.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.checkBoxEnableScreenCapture.Location = new System.Drawing.Point(328, 259); this.checkBoxEnableScreenCapture.Location = new System.Drawing.Point(328, 278);
this.checkBoxEnableScreenCapture.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1); this.checkBoxEnableScreenCapture.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
this.checkBoxEnableScreenCapture.Name = "checkBoxEnableScreenCapture"; this.checkBoxEnableScreenCapture.Name = "checkBoxEnableScreenCapture";
this.checkBoxEnableScreenCapture.Size = new System.Drawing.Size(191, 17); this.checkBoxEnableScreenCapture.Size = new System.Drawing.Size(191, 17);
@ -1592,7 +1594,7 @@ namespace SebWindowsConfig
// //
this.checkBoxAllowVirtualMachine.AutoSize = true; this.checkBoxAllowVirtualMachine.AutoSize = true;
this.checkBoxAllowVirtualMachine.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.checkBoxAllowVirtualMachine.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.checkBoxAllowVirtualMachine.Location = new System.Drawing.Point(328, 297); this.checkBoxAllowVirtualMachine.Location = new System.Drawing.Point(328, 316);
this.checkBoxAllowVirtualMachine.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1); this.checkBoxAllowVirtualMachine.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
this.checkBoxAllowVirtualMachine.Name = "checkBoxAllowVirtualMachine"; this.checkBoxAllowVirtualMachine.Name = "checkBoxAllowVirtualMachine";
this.checkBoxAllowVirtualMachine.Size = new System.Drawing.Size(185, 17); this.checkBoxAllowVirtualMachine.Size = new System.Drawing.Size(185, 17);
@ -1828,8 +1830,8 @@ namespace SebWindowsConfig
// //
// Type // Type
// //
dataGridViewCellStyle1.BackColor = System.Drawing.Color.Silver; dataGridViewCellStyle3.BackColor = System.Drawing.Color.Silver;
this.Type.DefaultCellStyle = dataGridViewCellStyle1; this.Type.DefaultCellStyle = dataGridViewCellStyle3;
this.Type.HeaderText = "Type"; this.Type.HeaderText = "Type";
this.Type.Name = "Type"; this.Type.Name = "Type";
this.Type.ReadOnly = true; this.Type.ReadOnly = true;
@ -4530,8 +4532,8 @@ namespace SebWindowsConfig
// spellCheckerDictionaryFilesColumn // spellCheckerDictionaryFilesColumn
// //
this.spellCheckerDictionaryFilesColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; this.spellCheckerDictionaryFilesColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.True; dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.spellCheckerDictionaryFilesColumn.DefaultCellStyle = dataGridViewCellStyle2; this.spellCheckerDictionaryFilesColumn.DefaultCellStyle = dataGridViewCellStyle4;
this.spellCheckerDictionaryFilesColumn.HeaderText = "Files"; this.spellCheckerDictionaryFilesColumn.HeaderText = "Files";
this.spellCheckerDictionaryFilesColumn.Name = "spellCheckerDictionaryFilesColumn"; this.spellCheckerDictionaryFilesColumn.Name = "spellCheckerDictionaryFilesColumn";
this.spellCheckerDictionaryFilesColumn.ReadOnly = true; this.spellCheckerDictionaryFilesColumn.ReadOnly = true;
@ -5928,6 +5930,17 @@ namespace SebWindowsConfig
this.applyAndStartSEBToolStripMenuItem.Visible = false; this.applyAndStartSEBToolStripMenuItem.Visible = false;
this.applyAndStartSEBToolStripMenuItem.Click += new System.EventHandler(this.applyAndStartSEBToolStripMenuItem_Click); this.applyAndStartSEBToolStripMenuItem.Click += new System.EventHandler(this.applyAndStartSEBToolStripMenuItem_Click);
// //
// checkBoxEnforceBuiltinDisplay
//
this.checkBoxEnforceBuiltinDisplay.AutoSize = true;
this.checkBoxEnforceBuiltinDisplay.Location = new System.Drawing.Point(617, 286);
this.checkBoxEnforceBuiltinDisplay.Name = "checkBoxEnforceBuiltinDisplay";
this.checkBoxEnforceBuiltinDisplay.Size = new System.Drawing.Size(193, 17);
this.checkBoxEnforceBuiltinDisplay.TabIndex = 107;
this.checkBoxEnforceBuiltinDisplay.Text = "Allow only internal displays (laptops)";
this.checkBoxEnforceBuiltinDisplay.UseVisualStyleBackColor = true;
this.checkBoxEnforceBuiltinDisplay.CheckedChanged += new System.EventHandler(this.checkBoxEnforceBuiltinDisplay_CheckedChanged);
//
// SebWindowsConfigForm // SebWindowsConfigForm
// //
this.AllowDrop = true; this.AllowDrop = true;
@ -6485,6 +6498,7 @@ namespace SebWindowsConfig
private System.Windows.Forms.DataGridViewComboBoxColumn dataGridViewComboBoxColumn1; private System.Windows.Forms.DataGridViewComboBoxColumn dataGridViewComboBoxColumn1;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1; private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2; private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2;
private System.Windows.Forms.CheckBox checkBoxEnforceBuiltinDisplay;
} }
} }

View file

@ -812,7 +812,7 @@ namespace SebWindowsConfig
checkBoxAllowDisplayMirroring.Checked = (Boolean)SEBSettings.settingsCurrent[SEBSettings.KeyAllowDisplayMirroring]; checkBoxAllowDisplayMirroring.Checked = (Boolean)SEBSettings.settingsCurrent[SEBSettings.KeyAllowDisplayMirroring];
comboBoxAllowedDisplaysMaxNumber.Text = (String)SEBSettings.settingsCurrent[SEBSettings.KeyAllowedDisplaysMaxNumber].ToString(); comboBoxAllowedDisplaysMaxNumber.Text = (String)SEBSettings.settingsCurrent[SEBSettings.KeyAllowedDisplaysMaxNumber].ToString();
checkBoxAllowedDisplayBuiltin.Checked = (Boolean)SEBSettings.settingsCurrent[SEBSettings.KeyAllowedDisplayBuiltin]; checkBoxAllowedDisplayBuiltin.Checked = (Boolean)SEBSettings.settingsCurrent[SEBSettings.KeyAllowedDisplayBuiltin];
checkBoxEnforceBuiltinDisplay.Checked = (Boolean)SEBSettings.settingsCurrent[SEBSettings.KeyAllowedDisplayBuiltinEnforce];
// Group "Registry" // Group "Registry"
checkBoxInsideSebEnableSwitchUser.Checked = (Boolean)SEBSettings.settingsCurrent[SEBSettings.KeyInsideSebEnableSwitchUser]; checkBoxInsideSebEnableSwitchUser.Checked = (Boolean)SEBSettings.settingsCurrent[SEBSettings.KeyInsideSebEnableSwitchUser];
@ -4625,5 +4625,10 @@ namespace SebWindowsConfig
{ {
SEBSettings.settingsCurrent[SEBSettings.KeyNewBrowserWindowUrlPolicy] = comboBoxUrlPolicyNewWindow.SelectedIndex; SEBSettings.settingsCurrent[SEBSettings.KeyNewBrowserWindowUrlPolicy] = comboBoxUrlPolicyNewWindow.SelectedIndex;
} }
private void checkBoxEnforceBuiltinDisplay_CheckedChanged(object sender, EventArgs e)
{
SEBSettings.settingsCurrent[SEBSettings.KeyAllowedDisplayBuiltinEnforce] = checkBoxEnforceBuiltinDisplay.Checked;
}
} }
} }

View file

@ -131,7 +131,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAi ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAi
1gAAAk1TRnQBSQFMAgEBDAEAAagBCwGoAQsBIAEAASABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAGA 1gAAAk1TRnQBSQFMAgEBDAEAAcABCwHAAQsBIAEAASABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAGA
AwABgAMAAQEBAAEgBwABAf8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A 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/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A0QABjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGO /wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A0QABjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGO
@ -159,8 +159,8 @@
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wNUAe4QAAMyAVEDTQH6A00B+gNNAfoDTQH6A00B+gNNAfoDTQH6A00B+gNNAfoDTQH6 Af8DAAH/AwAB/wNUAe4QAAMyAVEDTQH6A00B+gNNAfoDTQH6A00B+gNNAfoDTQH6A00B+gNNAfoDTQH6
A00B+gNNAfoDTQH6A00B+gNNAfoDTQH6A00B+gNNAfoDTQH6A00B+gNNAfoDTQH6AzYBWTQAAzIBUANc A00B+gNNAfoDTQH6A00B+gNNAfoDTQH6A00B+gNNAfoDTQH6A00B+gNNAfoDTQH6AzYBWTQAAzIBUANc
Ad8BsQGvAa0B/wGlAaIBoQH/AZIBjwGOAf8BhgGDAYIB/wGAATgBNwH/AYABOAE3Af8BgAE4ATcB/wGA Ad8BsQGvAa0B/wGlAaIBoQH/AZIBjwGOAf8BhgGDAYIB/wGAATUBNAH/AYABNQE0Af8BgAE1ATQB/wGA
ATgBNwH/AYABOAE3Af8BigGHAYYB/wGWAZMBkgH/AaUBogGgAf8BpgGjAaEB/wNUAa8DFwEgGAABjgGL ATUBNAH/AYABNQE0Af8BigGHAYYB/wGWAZMBkgH/AaUBogGgAf8BpgGjAaEB/wNUAa8DFwEgGAABjgGL
AQAB/wGOAYsBAAH/AbsBuQEAAf8C/gH9Af8C/gH9Af8C/gH9Af8C9AHmAf8BwgHAAQAB/wL+Af0B/wL+ AQAB/wGOAYsBAAH/AbsBuQEAAf8C/gH9Af8C/gH9Af8C/gH9Af8C9AHmAf8BwgHAAQAB/wL+Af0B/wL+
Af0B/wL+Af0B/wLwAd0B/wHGAcQBAAH/Av4B/QH/Av4B/QH/Av4B/QH/AekB6AHOAf8BqwGoAQAB/wGP Af0B/wL+Af0B/wLwAd0B/wHGAcQBAAH/Av4B/QH/Av4B/QH/Av4B/QH/AekB6AHOAf8BqwGoAQAB/wGP
AYwBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA AYwBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA
@ -168,16 +168,16 @@
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/xAA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/xAA
AzQBVFj/AzgBXCwAAwwBEANRAZ8BtQGyAbAB/wGpAaYBpAH/AZIBjwGNAf8BhAGBAYAB/wGRAY4BjAH/ AzQBVFj/AzgBXCwAAwwBEANRAZ8BtQGyAbAB/wGpAaYBpAH/AZIBjwGNAf8BhAGBAYAB/wGRAY4BjAH/
AZkBlgGUAf8BjwGMAYoB/wGEAYEBgAH/AYABOAE3Af8BgAE4ATcB/wGAATgBNwH/AYABOAE3Af8BgAE4 AZkBlgGUAf8BjwGMAYoB/wGEAYEBgAH/AYABNQE0Af8BgAE1ATQB/wGAATUBNAH/AYABNQE0Af8BgAE1
ATcB/wGAATgBNwH/AZEBjgGNAf8BpAGhAZ8B/wNiAe8DMgFQFAABjgGLAQAB/wGOAYsBAAH/AbsBuQEA ATQB/wGAATUBNAH/AZEBjgGNAf8BpAGhAZ8B/wNiAe8DMgFQFAABjgGLAQAB/wGOAYsBAAH/AbsBuQEA
Af8MAAL1AegB/wHCAcABAAH/DAAC8QHfAf8BxgHEAQAB/wwAAeoB6QHPAf8B0gHRAZoB/wG+AbwBAAH/ Af8MAAL1AegB/wHCAcABAAH/DAAC8QHfAf8BxgHEAQAB/wwAAeoB6QHPAf8B0gHRAZoB/wG+AbwBAAH/
AY8BjAEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGL AY8BjAEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGL
AQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8DAAH/AwAB/wMAAf8DmgH/ AQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8DAAH/AwAB/wMAAf8DmgH/
A6IB/wOiAf8DogH/A6IB/wOiAf8DogH/A6IB/wOiAf8DogH/A6IB/wOiAf8DogH/A6IB/wOiAf8DogH/ A6IB/wOiAf8DogH/A6IB/wOiAf8DogH/A6IB/wOiAf8DogH/A6IB/wOiAf8DogH/A6IB/wOiAf8DogH/
A6IB/wOiAf8DogH/A6IB/wOiAf8DogH/A6IB/wOiAf8DogH/A5oB/wMAAf8DAAH/AwAB/xAAAzMBU1j/ A6IB/wOiAf8DogH/A6IB/wOiAf8DogH/A6IB/wOiAf8DogH/A5oB/wMAAf8DAAH/AwAB/xAAAzMBU1j/
AzcBWygAAwwBEANcAc8BtwG0AbIB/wGfAZwBmwH/AYsBiAGHAf8BiQGGAYQB/wGYAZUBkwH/AakBpgGk AzcBWygAAwwBEANcAc8BtwG0AbIB/wGfAZwBmwH/AYsBiAGHAf8BiQGGAYQB/wGYAZUBkwH/AakBpgGk
Af8BpwGkAaIB/wGkAaEBnwH/AaIBnwGdAf8BlgGTAZEB/wGFAYIBgQH/AYABOAE3Af8BgAE4ATcB/wGA Af8BpwGkAaIB/wGkAaEBnwH/AaIBnwGdAf8BlgGTAZEB/wGFAYIBgQH/AYABNQE0Af8BgAE1ATQB/wGA
ATgBNwH/AYABOAE3Af8BgAE4ATcB/wGCAToBOQH/AZ0BmgGYAf8BpQGiAaAB/wM6AWAQAAGOAYsBAAH/ ATUBNAH/AYABNQE0Af8BgAE1ATQB/wGCATcBNgH/AZ0BmgGYAf8BpQGiAaAB/wM6AWAQAAGOAYsBAAH/
AY4BiwEAAf8BuwG5AQAB/wwAAvUB6AH/AcIBwAEAAf8MAALxAd8B/wHGAcQBAAH/DAAB6gHpAc8B/wHS AY4BiwEAAf8BuwG5AQAB/wwAAvUB6AH/AcIBwAEAAf8MAALxAd8B/wHGAcQBAAH/DAAB6gHpAc8B/wHS
AdEBmgH/Ad0B3AGyAf8BxQHDAQAB/wGPAYwBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA AdEBmgH/Ad0B3AGyAf8BxQHDAQAB/wGPAYwBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA
Af8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wMA Af8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wMA
@ -185,7 +185,7 @@
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DkwH/A6IB/wMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DkwH/A6IB/wMA
Af8DAAH/EAADMwFTWP8DNwFbKAADXAHPAbcBtAGyAf8BmwGYAZYB/wGQAY0BiwH/AY0BigGJAf8BiwGI Af8DAAH/EAADMwFTWP8DNwFbKAADXAHPAbcBtAGyAf8BmwGYAZYB/wGQAY0BiwH/AY0BigGJAf8BiwGI
AYcB/wGoAaUBowH/AaoBpwGlAf8BpwGkAaIB/wGmAaMBoQH/AaMBoAGeAf8BogGfAZ0B/wGdAZoBmAH/ AYcB/wGoAaUBowH/AaoBpwGlAf8BpwGkAaIB/wGmAaMBoQH/AaMBoAGeAf8BogGfAZ0B/wGdAZoBmAH/
AY0BigGJAf8BgQE5ATgB/wGAATgBNwH/AYABOAE3Af8BgAE4ATcB/wGAATgBNwH/AYABOAE3Af8BmAGV AY0BigGJAf8BgQE2ATUB/wGAATUBNAH/AYABNQE0Af8BgAE1ATQB/wGAATUBNAH/AYABNQE0Af8BmAGV
AZMB/wGlAaIBoAH/AzoBYAwAAY4BiwEAAf8BjgGLAQAB/wG7AbkBAAH/DAAC9QHoAf8BwgHAAQAB/wwA AZMB/wGlAaIBoAH/AzoBYAwAAY4BiwEAAf8BjgGLAQAB/wG7AbkBAAH/DAAC9QHoAf8BwgHAAQAB/wwA
AvEB3wH/AcYBxAEAAf8MAAHqAekBzwH/AdIB0QGaAf8B3QHcAbIB/wHdAdwBsgH/Ac8BzgGSAf8BjgGL AvEB3wH/AcYBxAEAAf8MAAHqAekBzwH/AdIB0QGaAf8B3QHcAbIB/wHdAdwBsgH/Ac8BzgGSAf8BjgGL
AQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/ AQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/
@ -194,7 +194,7 @@
AwAB/wMAAf8DAAH/AwAB/wMAAf8DkwH/A5oB/wMAAf8QAAMzAVNY/wM3AVskAANMAY8BuwG4AbcB/wGh AwAB/wMAAf8DAAH/AwAB/wMAAf8DkwH/A5oB/wMAAf8QAAMzAVNY/wM3AVskAANMAY8BuwG4AbcB/wGh
AZ4BnAH/AZQBkQGPAf8BkgGPAY0B/wGQAY0BiwH/AY0BigGJAf8BqgGnAaUB/wGqAacBpQH/AagBpQGj AZ4BnAH/AZQBkQGPAf8BkgGPAY0B/wGQAY0BiwH/AY0BigGJAf8BqgGnAaUB/wGqAacBpQH/AagBpQGj
Af8BpwGkAaIB/wGkAaEBnwH/AaMBoAGeAf8BoQGeAZwB/wGhAZ4BnAH/AZ4BmwGZAf8BkQGOAYwB/wGC Af8BpwGkAaIB/wGkAaEBnwH/AaMBoAGeAf8BoQGeAZwB/wGhAZ4BnAH/AZ4BmwGZAf8BkQGOAYwB/wGC
AToBOQH/AYABOAE3Af8BgAE4ATcB/wGAATgBNwH/AYABOAE3Af8BmAGVAZMB/wGlAaIBoAH/AyEBMAgA ATcBNgH/AYABNQE0Af8BgAE1ATQB/wGAATUBNAH/AYABNQE0Af8BmAGVAZMB/wGlAaIBoAH/AyEBMAgA
AY4BiwEAAf8BjgGLAQAB/wGfAZwBAAH/AbgBtgEAAf8BuAG2AQAB/wG4AbYBAAH/AbQBsgEAAf8BoQGf AY4BiwEAAf8BjgGLAQAB/wGfAZwBAAH/AbgBtgEAAf8BuAG2AQAB/wG4AbYBAAH/AbQBsgEAAf8BoQGf
AQAB/wG4AbYBAAH/AbgBtgEAAf8BuAG2AQAB/wGyAbABAAH/AacBpAEAAf8BvgG9AQAB/wG+Ab0BAAH/ AQAB/wG4AbYBAAH/AbgBtgEAAf8BuAG2AQAB/wGyAbABAAH/AacBpAEAAf8BvgG9AQAB/wG+Ab0BAAH/
Ab4BvQEAAf8BuAG2AQAB/wHQAc8BlQH/Ad0B3AGyAf8B3QHcAbIB/wLqAdAB/wGOAYsBAAH/AY4BiwEA Ab4BvQEAAf8BuAG2AQAB/wHQAc8BlQH/Ad0B3AGyAf8B3QHcAbIB/wLqAdAB/wGOAYsBAAH/AY4BiwEA
@ -204,7 +204,7 @@
Af8DAAH/AwAB/wMAAf8DogH/AwAB/xAAAzMBU1j/AzcBWyAAAyoBQAG8AboBuAH/AasBqAGnAf8BmAGV Af8DAAH/AwAB/wMAAf8DogH/AwAB/xAAAzMBU1j/AzcBWyAAAyoBQAG8AboBuAH/AasBqAGnAf8BmAGV
AZMB/wGWAZMBkQH/AZQBkQGPAf8BkgGPAY0B/wGQAY0BiwH/AasBqAGmAf8BqwGoAaYB/wGpAaYBpAH/ AZMB/wGWAZMBkQH/AZQBkQGPAf8BkgGPAY0B/wGQAY0BiwH/AasBqAGmAf8BqwGoAaYB/wGpAaYBpAH/
AacBpAGiAf8BpQGiAaAB/wGjAaABngH/AaEBngGcAf8BoQGeAZwB/wGhAZ4BnAH/AaEBngGcAf8BmwGY AacBpAGiAf8BpQGiAaAB/wGjAaABngH/AaEBngGcAf8BoQGeAZwB/wGhAZ4BnAH/AaEBngGcAf8BmwGY
AZYB/wGBATkBOAH/AYABOAE3Af8BgAE4ATcB/wGAATgBNwH/AYIBOgE5Af8BoQGeAZ0B/wNcAc8IAAGO AZYB/wGBATYBNQH/AYABNQE0Af8BgAE1ATQB/wGAATUBNAH/AYIBNwE2Af8BoQGeAZ0B/wNcAc8IAAGO
AYsBAAH/AY4BiwEAAf8BuwG5AQAB/wwAAvUB6AH/AcIBwAEAAf8MAALxAd8B/wGzAbEBAAH/AuYBxwH/ AYsBAAH/AY4BiwEAAf8BuwG5AQAB/wwAAvUB6AH/AcIBwAEAAf8MAALxAd8B/wGzAbEBAAH/AuYBxwH/
Ae0B7AHWAf8B7QHsAdYB/wHtAewB1gH/AcQBwgEAAf8BzAHLAYwB/wHdAdwBsgH/AuoB0AH/AY4BiwEA Ae0B7AHWAf8B7QHsAdYB/wHtAewB1gH/AcQBwgEAAf8BzAHLAYwB/wHdAdwBsgH/AuoB0AH/AY4BiwEA
Af8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGO Af8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGO
@ -213,16 +213,16 @@
AwAB/wMAAf8DogH/AwAB/xAAAzMBU1j/AzcBWyAAA1kBvwG6AbcBtQH/AZ0BmgGYAf8BmwGYAZYB/wGY AwAB/wMAAf8DogH/AwAB/xAAAzMBU1j/AzcBWyAAA1kBvwG6AbcBtQH/AZ0BmgGYAf8BmwGYAZYB/wGY
AZUBkwH/AZYBkwGRAf8BlAGRAY8B/wGSAY8BjQH/AagBpQGjAf8BnQGaAZkB/wGqAacBpQH/AagBpQGj AZUBkwH/AZYBkwGRAf8BlAGRAY8B/wGSAY8BjQH/AagBpQGjAf8BnQGaAZkB/wGqAacBpQH/AagBpQGj
Af8BpgGjAaEB/wGkAaEBnwH/AaIBnwGdAf8BoQGeAZwB/wGhAZ4BnAH/AaEBngGcAf8BoQGeAZwB/wGF Af8BpgGjAaEB/wGkAaEBnwH/AaIBnwGdAf8BoQGeAZwB/wGhAZ4BnAH/AaEBngGcAf8BoQGeAZwB/wGF
AYIBgAH/AYABOAE3Af8BgAE4ATcB/wGAATgBNwH/AYABOAE3Af8BigGHAYYB/wGmAaMBoQH/AzoBYAQA AYIBgAH/AYABNQE0Af8BgAE1ATQB/wGAATUBNAH/AYABNQE0Af8BigGHAYYB/wGmAaMBoQH/AzoBYAQA
AY4BiwEAAf8BjgGLAQAB/wG7AbkBAAH/DAAC9QHoAf8BwgHAAQAB/wwAAvEB3wH/AcwBywGNAf8B0wHS AY4BiwEAAf8BjgGLAQAB/wG7AbkBAAH/DAAC9QHoAf8BwgHAAQAB/wwAAvEB3wH/AcwBywGNAf8B0wHS
AZwB/wHuAe0B2AH/Ae4B7QHYAf8B7gHtAdgB/wHuAe0B2AH/AacBpAEAAf8ByQHIAYUB/wLqAdAB/wGO AZwB/wHuAe0B2AH/Ae4B7QHYAf8B7gHtAdgB/wHuAe0B2AH/AacBpAEAAf8ByQHIAYUB/wLqAdAB/wGO
AYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA AYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA
Af8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8DAAH/A6IB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA Af8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8DAAH/A6IB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DyAH/CAAD4wH/A6AB/wOtAf8IAAPIAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wMAAf8DyAH/CAAD4wH/A6AB/wOtAf8IAAPIAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DogH/AwAB/xAAAzMBU1j/AzcBWxwAAyoBQAHAAb0BvAH/AawBqQGoAf8BnwGc Af8DAAH/AwAB/wMAAf8DogH/AwAB/xAAAzMBU1j/AzcBWxwAAyoBQAHAAb0BvAH/AawBqQGoAf8BnwGc
AZoB/wGdAZoBmAH/AZsBmAGWAf8BmAGVAZMB/wExAS8BLQH/AwAB/wMAAf8DAAH/ATQBMQEwAf8BqQGm AZoB/wGdAZoBmAH/AZsBmAGWAf8BmAGVAZMB/wEuASwBKgH/AwAB/wMAAf8DAAH/ATEBLgEtAf8BqQGm
AaQB/wGnAaQBogH/AaUBogGgAf8BowGgAZ4B/wGhAZ4BnAH/AaEBngGcAf8BoQGeAZwB/wGhAZ4BnAH/ AaQB/wGnAaQBogH/AaUBogGgAf8BowGgAZ4B/wGhAZ4BnAH/AaEBngGcAf8BoQGeAZwB/wGhAZ4BnAH/
AYUBggGBAf8BgAE4ATcB/wGAATgBNwH/AYABOAE3Af8BgAE4ATcB/wGAATgBNwH/AZ0BmgGZAf8DXAHf AYUBggGBAf8BgAE1ATQB/wGAATUBNAH/AYABNQE0Af8BgAE1ATQB/wGAATUBNAH/AZ0BmgGZAf8DXAHf
BAABjgGLAQAB/wGOAYsBAAH/AbsBuQEAAf8MAAL1AegB/wHCAcABAAH/DAAC8QHfAf8BzAHLAY0B/wHb BAABjgGLAQAB/wGOAYsBAAH/AbsBuQEAAf8MAAL1AegB/wHCAcABAAH/DAAC8QHfAf8BzAHLAY0B/wHb
AdoBrgH/EAABugG4AQAB/wHMAcsBjAH/AdYB1QGkAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGL AdoBrgH/EAABugG4AQAB/wHMAcsBjAH/AdYB1QGkAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGL
AQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/ AQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/
@ -230,9 +230,9 @@
Af8DAAH/AwAB/wgAA5EB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A6IB/wMAAf8QAAMz Af8DAAH/AwAB/wgAA5EB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A6IB/wMAAf8QAAMz
AVMI/wP+Af8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D/gH/ AVMI/wP+Af8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D/gH/
A/4B/wP+Af8D/gH/A/4B/wP+Bf8DNwFbHAADUQGfAb0BuwG5Af8BpAGhAZ8B/wGiAZ8BnQH/AZ8BnAGa A/4B/wP+Af8D/gH/A/4B/wP+Bf8DNwFbHAADUQGfAb0BuwG5Af8BpAGhAZ8B/wGiAZ8BnQH/AZ8BnAGa
Af8BnQGaAZgB/wGbAZgBlgH/AwAB/wMAAf8DAAH/AwAB/wEUAR0BIgH/AaoBpwGlAf8BqAGlAaMB/wGm Af8BnQGaAZgB/wGbAZgBlgH/AwAB/wMAAf8DAAH/AwAB/wERARoBHwH/AaoBpwGlAf8BqAGlAaMB/wGm
AaMBoQH/AaQBoQGfAf8BogGfAZ0B/wGhAZ4BnAH/AaEBngGcAf8BngGbAZkB/wGAATgBNwH/AYABOAE3 AaMBoQH/AaQBoQGfAf8BogGfAZ0B/wGhAZ4BnAH/AaEBngGcAf8BngGbAZkB/wGAATUBNAH/AYABNQE0
Af8BgAE4ATcB/wGAATgBNwH/AYABOAE3Af8BgAE4ATcB/wGMAYkBiAH/AacBpAGiAf8DIQEwAY4BiwEA Af8BgAE1ATQB/wGAATUBNAH/AYABNQE0Af8BgAE1ATQB/wGMAYkBiAH/AacBpAGiAf8DIQEwAY4BiwEA
Af8BjgGLAQAB/wG7AbkBAAH/DAAC9QHoAf8BwgHAAQAB/wwAAvEB3wH/AcwBywGNAf8B2wHaAa4B/xAA Af8BjgGLAQAB/wG7AbkBAAH/DAAC9QHoAf8BwgHAAQAB/wwAAvEB3wH/AcwBywGNAf8B2wHaAa4B/xAA
AboBuAEAAf8C3QGzAf8B1AHTAZ4B/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA AboBuAEAAf8C3QGzAf8B1AHTAZ4B/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA
Af8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8DAAH/A6IB/wMA Af8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8DAAH/A6IB/wMA
@ -240,9 +240,9 @@
Af8DugH/BAADwAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DogH/AwAB/xAAAzMBUwT/ Af8DugH/BAADwAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DogH/AwAB/xAAAzMBUwT/
A/4B/wP9Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wP9Af8D/QH/ A/4B/wP9Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wP9Af8D/QH/
A/0B/wP9Af8D/QH/A/0B/wP9Bf8DNwFbHAADXAHfAbYBtAGyAf8BpgGjAaEB/wGkAaEBnwH/AaIBnwGd A/0B/wP9Af8D/QH/A/0B/wP9Bf8DNwFbHAADXAHfAbYBtAGyAf8BpgGjAaEB/wGkAaEBnwH/AaIBnwGd
Af8BnwGcAZoB/wGdAZoBmAH/ARUBEwESAf8DAAH/AQABjwG4Af8BAAGPAb0B/wEdAY0BpAH/AasBqAGm Af8BnwGcAZoB/wGdAZoBmAH/ARIBEAEPAf8DAAH/AQABjwG4Af8BAAGPAb0B/wEaAY0BpAH/AasBqAGm
Af8BqQGmAaQB/wGnAaQBogH/AaUBogGgAf8BowGgAZ4B/wGhAZ4BnAH/AaEBngGcAf8BjwGMAYoB/wGE Af8BqQGmAaQB/wGnAaQBogH/AaUBogGgAf8BowGgAZ4B/wGhAZ4BnAH/AaEBngGcAf8BjwGMAYoB/wGE
AYEBgAH/AYQBgQGAAf8BgAE4ATcB/wGAATgBNwH/AYABOAE3Af8BgAE4ATcB/wGAATgBNwH/AagBpQGj AYEBgAH/AYQBgQGAAf8BgAE1ATQB/wGAATUBNAH/AYABNQE0Af8BgAE1ATQB/wGAATUBNAH/AagBpQGj
Af8DRwGAAY4BiwEAAf8BjgGLAQAB/wGfAZwBAAH/AbgBtgEAAf8BuAG2AQAB/wG4AbYBAAH/AbQBsgEA Af8DRwGAAY4BiwEAAf8BjgGLAQAB/wGfAZwBAAH/AbgBtgEAAf8BuAG2AQAB/wG4AbYBAAH/AbQBsgEA
Af8BpAGhAQAB/wHLAcoBiwH/AcsBygGLAf8BywHKAYsB/wHIAccBgwH/Ab8BvgEAAf8B2wHaAa0B/xAA Af8BpAGhAQAB/wHLAcoBiwH/AcsBygGLAf8BywHKAYsB/wHIAccBgwH/Ab8BvgEAAf8B2wHaAa0B/xAA
AboBuAEAAf8C3QGzAf8C6gHQAf8BjgGLAQAB/wGRAY4BAAH/AcwBywGMAf8BlwGUAQAB/wGOAYsBAAH/ AboBuAEAAf8C3QGzAf8C6gHQAf8BjgGLAQAB/wGRAY4BAAH/AcwBywGMAf8BlwGUAQAB/wGOAYsBAAH/
@ -251,10 +251,10 @@
Af8DnAH/BAADzgH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DogH/AwAB/xAAAzMBUwP+ Af8DnAH/BAADzgH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DogH/AwAB/xAAAzMBUwP+
Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wP9 Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wP9
Af8D/QH/A/0B/wP9Af8D/QH/A/0F/wM3AVsYAAMMARABxAHBAcAB/wGyAa8BrQH/AakBpgGkAf8BpgGj Af8D/QH/A/0B/wP9Af8D/QH/A/0F/wM3AVsYAAMMARABxAHBAcAB/wGyAa8BrQH/AakBpgGkAf8BpgGj
AaEB/wGkAaEBnwH/AaIBnwGdAf8BnwGcAZoB/wGDAYABOQH/AwAB/wEEAaQBygH/AQABkAG9Af8BHQGN AaEB/wGkAaEBnwH/AaIBnwGdAf8BnwGcAZoB/wGDAYABNgH/AwAB/wEBAaQBygH/AQABkAG9Af8BGgGN
AaQB/wGsAakBpwH/AaoBpwGlAf8BqAGlAaMB/wGmAaMBoQH/AaQBoQGfAf8BngGbAZkB/wGRAY4BjQH/ AaQB/wGsAakBpwH/AaoBpwGlAf8BqAGlAaMB/wGmAaMBoQH/AaQBoQGfAf8BngGbAZkB/wGRAY4BjQH/
AZQBkQGPAf8BoQGeAZwB/wGgAZ0BmwH/AY8BjAGKAf8BgAE4ATcB/wGAATgBNwH/AYABOAE3Af8BgAE4 AZQBkQGPAf8BoQGeAZwB/wGgAZ0BmwH/AY8BjAGKAf8BgAE1ATQB/wGAATUBNAH/AYABNQE0Af8BgAE1
ATcB/wGfAZwBmgH/A1QBrwGOAYsBAAH/AY4BiwEAAf8BuwG5AQAB/wwAAvUB6AH/AbkBtgEAAf8B1AHT ATQB/wGfAZwBmgH/A1QBrwGOAYsBAAH/AY4BiwEAAf8BuwG5AQAB/wwAAvUB6AH/AbkBtgEAAf8B1AHT
AZ4B/wHZAdgBqAH/AdkB2AGoAf8B2QHYAagB/wHFAcQBAAH/AaQBoQEAAf8BxQHDAQAB/wHFAcMBAAH/ AZ4B/wHZAdgBqAH/AdkB2AGoAf8B2QHYAagB/wHFAcQBAAH/AaQBoQEAAf8BxQHDAQAB/wHFAcMBAAH/
AcUBwwEAAf8BxQHDAQAB/wG4AbYBAAH/At0BswH/AuoB0AH/AZEBjgEAAf8C3AGxAf8EAAHrAeoB0QH/ AcUBwwEAAf8BxQHDAQAB/wG4AbYBAAH/At0BswH/AuoB0AH/AZEBjgEAAf8C3AGxAf8EAAHrAeoB0QH/
AZcBlAEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8DAAH/ AZcBlAEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8DAAH/
@ -262,10 +262,10 @@
AwAB/wMAAf8DAAH/A9wB/wQAA7MB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A6IB/wMA AwAB/wMAAf8DAAH/A9wB/wQAA7MB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A6IB/wMA
Af8QAAMzAVMD/QH/A/0B/wP8Af8D/AH/A/wB/wP8Af8D/AH/A/wB/wP8Af8D/AH/A/wB/wP8Af8D/AH/ Af8QAAMzAVMD/QH/A/0B/wP8Af8D/AH/A/wB/wP8Af8D/AH/A/wB/wP8Af8D/AH/A/wB/wP8Af8D/AH/
A/wB/wP8Af8D/AH/A/wB/wP8Af8D/AH/A/wB/wP8Bf8DNwFbGAADKgFAAcQBwgHBAf8BvgG7AboB/wG2 A/wB/wP8Af8D/AH/A/wB/wP8Af8D/AH/A/wB/wP8Bf8DNwFbGAADKgFAAcQBwgHBAf8BvgG7AboB/wG2
AbMBsQH/AasBqAGmAf8BpgGjAaEB/wGkAaEBnwH/AaIBnwGdAf8BnwGcAZoB/wEKAQgBBwH/AQABgwGZ AbMBsQH/AasBqAGmAf8BpgGjAaEB/wGkAaEBnwH/AaIBnwGdAf8BnwGcAZoB/wEHAQUBBAH/AQABgwGZ
Af8BAAGmAcoB/wEeAZIBpwH/Aa0BqgGoAf8BqwGoAaYB/wGlAaIBoAH/AZgBlQGTAf8BjwGMAYsB/wGJ Af8BAAGmAcoB/wEbAZIBpwH/Aa0BqgGoAf8BqwGoAaYB/wGlAaIBoAH/AZgBlQGTAf8BjwGMAYsB/wGJ
AYYBhAH/AZEBjgGNAf8BoQGeAZwB/wGhAZ4BnAH/AaEBngGcAf8BnwGcAZoB/wGBATkBOAH/AYABOAE3 AYYBhAH/AZEBjgGNAf8BoQGeAZwB/wGhAZ4BnAH/AaEBngGcAf8BnwGcAZoB/wGBATYBNQH/AYABNQE0
Af8BgAE4ATcB/wGAATgBNwH/AZUBkgGQAf8DWQG/AY4BiwEAAf8BjgGLAQAB/wG7AbkBAAH/DAAC9QHo Af8BgAE1ATQB/wGAATUBNAH/AZUBkgGQAf8DWQG/AY4BiwEAAf8BjgGLAQAB/wG7AbkBAAH/DAAC9QHo
Af8ByAHGAYMB/wHWAdUBowH/AvIB4gH/AvIB4QH/AvIB4QH/AvIB4QH/Aa4BrAEAAf8B2wHaAa0B/wL4 Af8ByAHGAYMB/wHWAdUBowH/AvIB4gH/AvIB4QH/AvIB4QH/AvIB4QH/Aa4BrAEAAf8B2wHaAa0B/wL4
Ae8B/wL4Ae8B/wL4Ae8B/wHWAdUBowH/AcUBxAEAAf8B4AHfAbkB/wHcAdsBsQH/DAAB6wHqAdEB/wGX Ae8B/wL4Ae8B/wL4Ae8B/wHWAdUBowH/AcUBxAEAAf8B4AHfAbkB/wHcAdsBsQH/DAAB6wHqAdEB/wGX
AZQBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wMAAf8DoQH/AwAB/wMA AZQBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wMAAf8DoQH/AwAB/wMA
@ -273,10 +273,10 @@
Af8LAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DoQH/AwAB/xAAAzMBUwP8Af8D+wH/ Af8LAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DoQH/AwAB/xAAAzMBUwP8Af8D+wH/
A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/ A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/
A/oB/wP6Af8D+gH/A/oB/wP+Af8DNwFbGAADKgFAAcUBwwHCAf8BxAHBAcAB/wHCAcABvgH/Ab4BuwG6 A/oB/wP6Af8D+gH/A/oB/wP+Af8DNwFbGAADKgFAAcUBwwHCAf8BxAHBAcAB/wHCAcABvgH/Ab4BuwG6
Af8BqgGnAaUB/wGmAaMBoQH/AaQBoQGfAf8BpAGhAZ8B/wGfAZwBmwH/AQABGAEjAf8BAwG9AdoB/wEg Af8BqgGnAaUB/wGmAaMBoQH/AaQBoQGfAf8BpAGhAZ8B/wGfAZwBmwH/AQABFQEgAf8BAAG9AdoB/wEd
AZ4BrwH/Aa4BqwGpAf8BogGfAZ0B/wGSAY8BjQH/AZQBkQGPAf8BlAGRAZAB/wGLAYgBhwH/AZ4BmwGZ AZ4BrwH/Aa4BqwGpAf8BogGfAZ0B/wGSAY8BjQH/AZQBkQGPAf8BlAGRAZAB/wGLAYgBhwH/AZ4BmwGZ
Af8BoQGeAZwB/wGhAZ4BnAH/AaEBngGcAf8BoQGeAZwB/wGGAYMBggH/AYABOAE3Af8BgAE4ATcB/wGA Af8BoQGeAZwB/wGhAZ4BnAH/AaEBngGcAf8BoQGeAZwB/wGGAYMBggH/AYABNQE0Af8BgAE1ATQB/wGA
ATgBNwH/AZUBkgGRAf8DYgHvAY4BiwEAAf8BjgGLAQAB/wG7AbkBAAH/DAAC9QHoAf8ByAHGAYMB/wHZ ATUBNAH/AZUBkgGRAf8DYgHvAY4BiwEAAf8BjgGLAQAB/wG7AbkBAAH/DAAC9QHoAf8ByAHGAYMB/wHZ
AdgBqQH/EAABvgG8AQAB/wHTAdIBnAH/AcwBygGLAf8B2wHaAa4B/wHbAdoBrgH/AdsB2gGuAf8BvwG+ AdgBqQH/EAABvgG8AQAB/wHTAdIBnAH/AcwBygGLAf8B2wHaAa4B/wHbAdoBrgH/AdsB2gGuAf8BvwG+
AQAB/wG7AboBAAH/Av4B/AH/EAABugG4AQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/ AQAB/wG7AboBAAH/Av4B/AH/EAABugG4AQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/
AY4BiwEAAf8DAAH/A50B/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AY4BiwEAAf8DAAH/A50B/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
@ -284,19 +284,19 @@
Af8DnQH/AwAB/xAAAzMBUwP6Af8D+QH/A/kB/wP5Af8D+QH/A/kB/wP5Af8D+QH/A/kB/wP5Af8D+QH/ Af8DnQH/AwAB/xAAAzMBUwP6Af8D+QH/A/kB/wP5Af8D+QH/A/kB/wP5Af8D+QH/A/kB/wP5Af8D+QH/
A/kB/wP5Af8D+QH/A/kB/wP5Af8D+QH/A/kB/wP5Af8D+QH/A/kB/wP9Af8DNwFbGAADKgFAAccBxQHD A/kB/wP5Af8D+QH/A/kB/wP5Af8D+QH/A/kB/wP5Af8D+QH/A/kB/wP9Af8DNwFbGAADKgFAAccBxQHD
Af8BxQHDAcIB/wHDAcABvwH/Ab0CuwH/Aa8BrgGwAf8BrAGqAagB/wGmAaMBoQH/AagBpQGjAf8BtwG0 Af8BxQHDAcIB/wHDAcABvwH/Ab0CuwH/Aa8BrgGwAf8BrAGqAagB/wGmAaMBoQH/AagBpQGjAf8BtwG0
AbIB/wEUARwBHQH/AQABxAHfAf8BCQGpAb4B/wGOAaEBpgH/AZYBkwGRAf8BlAGRAY8B/wGZAZYBlAH/ AbIB/wERARkBGgH/AQABxAHfAf8BBgGpAb4B/wGOAaEBpgH/AZYBkwGRAf8BlAGRAY8B/wGZAZYBlAH/
AacBpAGiAf8BmwGYAZYB/wGjAaABngH/AaEBngGcAf8BoQGeAZwB/wGhAZ4BnAH/AaEBngGcAf8BhgGD AacBpAGiAf8BmwGYAZYB/wGjAaABngH/AaEBngGcAf8BoQGeAZwB/wGhAZ4BnAH/AaEBngGcAf8BhgGD
AYIB/wGAATgBNwH/AYABOAE3Af8BgAE4ATcB/wGWAZMBkQH/AasBqAGmAf8BjgGLAQAB/wGOAYsBAAH/ AYIB/wGAATUBNAH/AYABNQE0Af8BgAE1ATQB/wGWAZMBkQH/AasBqAGmAf8BjgGLAQAB/wGOAYsBAAH/
AbsBuQEAAf8MAAL1AegB/wHIAcYBgwH/AdkB2AGoAf8QAAG+AbwBAAH/AdYB1QGiAf8B6AHnAcoB/wwA AbsBuQEAAf8MAAL1AegB/wHIAcYBgwH/AdkB2AGoAf8QAAG+AbwBAAH/AdYB1QGiAf8B6AHnAcoB/wwA
AdsB2gGuAf8B1wHWAaUB/wG2AbQBAAH/Av4B/AH/CAABwwHBAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGL AdsB2gGuAf8B1wHWAaUB/wG2AbQBAAH/Av4B/AH/CAABwwHBAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGL
AQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wMAAf8DmAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wMAAf8DmAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wOwAf8D6wH/CAADngH/AwAB/wMAAf8DAAH/AwAB/wMA AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wOwAf8D6wH/CAADngH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wOYAf8DAAH/EAADMwFTA/kB/wP5Af8D+AH/A/gB/wP4Af8D+AH/ Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wOYAf8DAAH/EAADMwFTA/kB/wP5Af8D+AH/A/gB/wP4Af8D+AH/
A/gB/wP4Af8D+AH/A/gB/wP4Af8D+AH/A/gB/wP4Af8D+AH/A/gB/wP4Af8D+AH/A/gB/wP4Af8D+AH/ A/gB/wP4Af8D+AH/A/gB/wP4Af8D+AH/A/gB/wP4Af8D+AH/A/gB/wP4Af8D+AH/A/gB/wP4Af8D+AH/
A/wB/wM3AVsYAAMqAUABqAHAAcUB/wE6AbIBwAH/AQgBogG8Af8BAAGaAbwB/wEAAZcBugH/ASsBqQG5 A/wB/wM3AVsYAAMqAUABqAHAAcUB/wE3AbIBwAH/AQUBogG8Af8BAAGaAbwB/wEAAZcBugH/ASgBqQG5
Af8BrgGrAakB/wGrAagBpgH/AbgBtQGzAf8BOgE3ATYB/wEAAY8BoQH/AQABvwHbAf8BAAGiAcEB/wEu Af8BrgGrAakB/wGrAagBpgH/AbgBtQGzAf8BNwE0ATMB/wEAAY8BoQH/AQABvwHbAf8BAAGiAcEB/wEr
AZEBnQH/AaABnQGbAf8BnwGcAZoB/wGmAaMBoQH/AaYBowGhAf8BpAGhAZ8B/wGiAZ8BnQH/AaEBngGc AZEBnQH/AaABnQGbAf8BnwGcAZoB/wGmAaMBoQH/AaYBowGhAf8BpAGhAZ8B/wGiAZ8BnQH/AaEBngGc
Af8BoQGeAZwB/wGhAZ4BnAH/AYgBhQGEAf8BgAE4ATcB/wGAATgBNwH/AYABOAE3Af8BlgGTAZIB/wNZ Af8BoQGeAZwB/wGhAZ4BnAH/AYgBhQGEAf8BgAE1ATQB/wGAATUBNAH/AYABNQE0Af8BlgGTAZIB/wNZ
Ab8BjgGLAQAB/wGOAYsBAAH/AZcBlAEAAf8BugG4AQAB/wG9AbwBAAH/Ab0BvAEAAf8BuwG6AQAB/wHG Ab8BjgGLAQAB/wGOAYsBAAH/AZcBlAEAAf8BugG4AQAB/wG9AbwBAAH/Ab0BvAEAAf8BuwG6AQAB/wHG
AcQBAAH/AdkB2AGoAf8QAAG+AbwBAAH/AdYB1QGiAf8C5wHKAf8MAAHbAdoBrgH/AuoB0AH/AY4BiwEA AcQBAAH/AdkB2AGoAf8QAAG+AbwBAAH/AdYB1QGiAf8C5wHKAf8MAAHbAdoBrgH/AuoB0AH/AY4BiwEA
Af8BtgG0AQAB/wH+Af0B/AH/AcMBwgEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGO Af8BtgG0AQAB/wH+Af0B/AH/AcMBwgEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGO
@ -304,10 +304,10 @@
Af8DAAH/AwAB/wMAAf8DAAH/A7AB/wgAA9UB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ Af8DAAH/AwAB/wMAAf8DAAH/A7AB/wgAA9UB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/AwAB/wOUAf8DAAH/EAADMwFTA/gB/wP3Af8D9gH/A/YB/wP2Af8D9gH/A/YB/wP2 AwAB/wMAAf8DAAH/AwAB/wOUAf8DAAH/EAADMwFTA/gB/wP3Af8D9gH/A/YB/wP2Af8D9gH/A/YB/wP2
Af8D9gH/A/YB/wP2Af8D9gH/A/YB/wP2Af8D9gH/A/YB/wP2Af8D9gH/A/YB/wP2Af8D9gH/A/oB/wM3 Af8D9gH/A/YB/wP2Af8D9gH/A/YB/wP2Af8D9gH/A/YB/wP2Af8D9gH/A/YB/wP2Af8D9gH/A/oB/wM3
AVsQAAMyAVADVAGvAVgCYgHvAQABmgG8Af8BAAGmAcYB/wEAAbgB1AH/AREBxgHfAf8BEAHCAdwB/wEA AVsQAAMyAVADVAGvAVgCYgHvAQABmgG8Af8BAAGmAcYB/wEAAbgB1AH/AQ4BxgHfAf8BDQHCAdwB/wEA
AZoBuAH/AboBuAG3Af8BuQG2AbUB/wG1AbMBsgH/ASoBhAGKAf8BAAGEAZwB/wEAAbsB1wH/AQABrgHP AZoBuAH/AboBuAG3Af8BuQG2AbUB/wG1AbMBsgH/AScBhAGKAf8BAAGEAZwB/wEAAbsB1wH/AQABrgHP
Af8BAAGVAb4B/wE6AZQBngH/AaoBpwGlAf8BqQGmAaQB/wGnAaQBogH/AaUBogGgAf8BowGgAZ4B/wGh Af8BAAGVAb4B/wE3AZQBngH/AaoBpwGlAf8BqQGmAaQB/wGnAaQBogH/AaUBogGgAf8BowGgAZ4B/wGh
AZ4BnAH/AaEBngGcAf8BoAGdAZsB/wGGAYMBggH/AYIBOgE5Af8BgAE4ATcB/wGAATgBNwH/AaIBnwGe AZ4BnAH/AaEBngGcAf8BoAGdAZsB/wGGAYMBggH/AYIBNwE2Af8BgAE1ATQB/wGAATUBNAH/AaIBnwGe
Af8DWQG/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/Aa4BrAEAAf8B3gHdAbQB/wHeAd0BtAH/Ad4B3QG0 Af8DWQG/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/Aa4BrAEAAf8B3gHdAbQB/wHeAd0BtAH/Ad4B3QG0
Af8BzwHOAZMB/wGpAacBAAH/Ab4BvAEAAf8BvgG8AQAB/wG+AbwBAAH/Ab4BvAEAAf8BtgG0AQAB/wHW Af8BzwHOAZMB/wGpAacBAAH/Ab4BvAEAAf8BvgG8AQAB/wG+AbwBAAH/Ab4BvAEAAf8BtgG0AQAB/wHW
AdUBogH/AucBygH/DAAB2wHaAa4B/wLqAdAB/wGOAYsBAAH/AY4BiwEAAf8BoQGeAQAB/wGOAYsBAAH/ AdUBogH/AucBygH/DAAB2wHaAa4B/wLqAdAB/wGOAYsBAAH/AY4BiwEAAf8BoQGeAQAB/wGOAYsBAAH/
@ -316,10 +316,10 @@
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A48B/wMAAf8QAAMz AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A48B/wMAAf8QAAMz
AVMD9gH/A/UB/wP1Af8D9QH/A/UB/wP1Af8D9QH/A/UB/wP1Af8D9QH/A/UB/wP1Af8D9QH/A/UB/wP1 AVMD9gH/A/UB/wP1Af8D9QH/A/UB/wP1Af8D9QH/A/UB/wP1Af8D9QH/A/UB/wP1Af8D9QH/A/UB/wP1
Af8D9QH/A/UB/wP1Af8D9QH/A/UB/wP1Af8D+QH/AzcBWxEAAZABvwH/AQABjAG3Af8BAAGyAdIB/wEA Af8D9QH/A/UB/wP1Af8D9QH/A/UB/wP1Af8D+QH/AzcBWxEAAZABvwH/AQABjAG3Af8BAAGyAdIB/wEA
AccB4QH/AREByQHhAf8BgQHHAdcB/wGaAcQBzAH/ASQBygHhAf8BAAGhAcIB/wElAZ0BsQH/AR4BmwGy AccB4QH/AQ4ByQHhAf8BgQHHAdcB/wGaAcQBzAH/ASEBygHhAf8BAAGhAcIB/wEiAZ0BsQH/ARsBmwGy
Af8BAAGWAbYB/wEAAaABwgH/AQABrgHMAf8BAAG4AdYB/wEAAbMB0wH/AQABmgHBAf8BCwGIAaUB/wGr Af8BAAGWAbYB/wEAAaABwgH/AQABrgHMAf8BAAG4AdYB/wEAAbMB0wH/AQABmgHBAf8BCAGIAaUB/wGr
AagBpgH/AaoBpwGlAf8BpwGkAaIB/wGmAaMBoQH/AaMBoAGeAf8BogGfAZ0B/wGhAZ4BnAH/AZ4BmwGZ AagBpgH/AaoBpwGlAf8BpwGkAaIB/wGmAaMBoQH/AaMBoAGeAf8BogGfAZ0B/wGhAZ4BnAH/AZ4BmwGZ
Af8BhwGEAYIB/wGEAYEBgAH/AYIBOgE5Af8BgAE4ATcB/wGsAakBpwH/A0cBgAGOAYsBAAH/AY4BiwEA Af8BhwGEAYIB/wGEAYEBgAH/AYIBNwE2Af8BgAE1ATQB/wGsAakBpwH/A0cBgAGOAYsBAAH/AY4BiwEA
Af8BjgGLAQAB/wGOAYsBAAH/Aa0BqwEAAf8C9gHsAf8C+QHxAf8C+QHxAf8B6wHqAdEB/wHVAdQBoQH/ Af8BjgGLAQAB/wGOAYsBAAH/Aa0BqwEAAf8C9gHsAf8C+QHxAf8C+QHxAf8B6wHqAdEB/wHVAdQBoQH/
AvkB8QH/AvkB8QH/AvkB8QH/AecB5gHJAf8BtgG0AQAB/wHKAckBhgH/AdoB2QGrAf8B2gHZAasB/wHa AvkB8QH/AvkB8QH/AvkB8QH/AecB5gHJAf8BtgG0AQAB/wHKAckBhgH/AdoB2QGrAf8B2gHZAasB/wHa
AdkBqwH/AcQBwwEAAf8B6gHpAc8B/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA AdkBqwH/AcQBwwEAAf8B6gHpAc8B/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA
@ -328,8 +328,8 @@
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DigH/AwAB/xAAAzMBUwP1Af8D9QH/A/QB/wP0 AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DigH/AwAB/xAAAzMBUwP1Af8D9QH/A/QB/wP0
Af8D9AH/A/QB/wP0Af8D9AH/A/QB/wP0Af8D9AH/A/QB/wP0Af8D9AH/A/QB/wP0Af8D9AH/A/QB/wP0 Af8D9AH/A/QB/wP0Af8D9AH/A/QB/wP0Af8D9AH/A/QB/wP0Af8D9AH/A/QB/wP0Af8D9AH/A/QB/wP0
Af8D9AH/A/QB/wP3Af8DNwFbEAABWAJiAe8BAAGeAcUB/wFXAlwB3wNZAb8ByQHHAcYB/wHHAcUBwwH/ Af8D9AH/A/QB/wP3Af8DNwFbEAABWAJiAe8BAAGeAcUB/wFXAlwB3wNZAb8ByQHHAcYB/wHHAcUBwwH/
AcQBwgHBAf8BgQHGAdYB/wEJAbwB1gH/AQABogHDAf8BAAGuAc0B/wEAAbgB1QH/AQABugHXAf8BAAG6 AcQBwgHBAf8BgQHGAdYB/wEGAbwB1gH/AQABogHDAf8BAAGuAc0B/wEAAbgB1QH/AQABugHXAf8BAAG6
AdcB/wEAAboB1wH/AQABtQHVAf8BAAGhAccB/wEBAYsBrQH/AasBqAGmAf8BoQGeAZwB/wGpAaYBpAH/ AdcB/wEAAboB1wH/AQABtQHVAf8BAAGhAccB/wEAAYsBrQH/AasBqAGmAf8BoQGeAZwB/wGpAaYBpAH/
AaMBoAGeAf8BnAGZAZcB/wGbAZgBlgH/AZwBmQGXAf8BjwGMAYsB/wGJAYYBhAH/AYcBhAGCAf8BhAGB AaMBoAGeAf8BnAGZAZcB/wGbAZgBlgH/AZwBmQGXAf8BjwGMAYsB/wGJAYYBhAH/AYcBhAGCAf8BhAGB
AYAB/wGRAY4BjQH/AbABrQGrAf8DIQEwAY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGL AYAB/wGRAY4BjQH/AbABrQGrAf8DIQEwAY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGL
AQAB/wGcAZoBAAH/Ad8B3gG2Af8B4wHiAb8B/wHjAeIBvwH/Ad8B3gG2Af8BvwG9AQAB/wHjAeIBvwH/ AQAB/wGcAZoBAAH/Ad8B3gG2Af8B4wHiAb8B/wHjAeIBvwH/Ad8B3gG2Af8BvwG9AQAB/wHjAeIBvwH/
@ -339,9 +339,9 @@
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A9UB/xwAA/MB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A9UB/xwAA/MB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DhQH/AwAB/xAAAzMBUwP0Af8D8wH/A/IB/wPyAf8D8gH/A/IB/wPyAf8D8gH/ Af8DAAH/AwAB/wMAAf8DhQH/AwAB/xAAAzMBUwP0Af8D8wH/A/IB/wPyAf8D8gH/A/IB/wPyAf8D8gH/
A/IB/wPyAf8D8gH/A/IB/wPyAf8D8gH/A/IB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPzAf8DNwFb A/IB/wPyAf8D8gH/A/IB/wPyAf8D8gH/A/IB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPzAf8DNwFb
EAADUQGgAQQBqQHOAf8BWgJdAdMDMgFQAcsByQHIAf8ByAHGAcQB/wHFAcMBwgH/AZgBwgHLAf8BIQHI EAADUQGgAQEBqQHOAf8BWgJdAdMDMgFQAcsByQHIAf8ByAHGAcQB/wHFAcMBwgH/AZgBwgHLAf8BHgHI
AeAB/wEAAbsB2QH/AQABuwHYAf8BAAG7AdgB/wEAAbwB2QH/AQABwAHbAf8BAgHFAd8B/wEGAcEB3QH/ AeAB/wEAAbsB2QH/AQABuwHYAf8BAAG7AdgB/wEAAbwB2QH/AQABwAHbAf8BAAHFAd8B/wEDAcEB3QH/
AQABlQG2Af8BAgEvAYsB/wGeAZsBmQH/AZsBmAGWAf8BoAGdAZsB/wGWAZMBkQH/AZQBkQGPAf8BkgGP AQABlQG2Af8BAAEsAYsB/wGeAZsBmQH/AZsBmAGWAf8BoAGdAZsB/wGWAZMBkQH/AZQBkQGPAf8BkgGP
AY0B/wGQAY0BiwH/AY0BigGJAf8BiwGIAYcB/wGJAYYBhAH/AYcBhAGCAf8BoQGeAZwB/wNcAd8EAAGO AY0B/wGQAY0BiwH/AY0BigGJAf8BiwGIAYcB/wGJAYYBhAH/AYcBhAGCAf8BoQGeAZwB/wNcAd8EAAGO
AYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGdAZoBAAH/AaUBowEA AYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGdAZoBAAH/AaUBowEA
Af8BpQGjAQAB/wGlAaMBAAH/AZwBmQEAAf8BowGhAQAB/wGlAaMBAAH/AaUBowEAAf8BpQGjAQAB/wGb Af8BpQGjAQAB/wGlAaMBAAH/AZwBmQEAAf8BowGhAQAB/wGlAaMBAAH/AaUBowEAAf8BpQGjAQAB/wGb
@ -350,9 +350,9 @@
AY4BiwEAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A5gB/yQAA74B/wMA AY4BiwEAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A5gB/yQAA74B/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/EAADMwFTA/IB/wPxAf8D8QH/ Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/EAADMwFTA/IB/wPxAf8D8QH/
A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8AH/A+0B/wPqAf8D6AH/ A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8AH/A+0B/wPqAf8D6AH/
A+gB/wPnAf8D5gH/A+cB/wM4AVwQAAM6AWABHQG0AdcB/wEAAZYBugH/AxwBJwNcAd8BygHIAccB/wHG A+gB/wPnAf8D5gH/A+cB/wM4AVwQAAM6AWABGgG0AdcB/wEAAZYBugH/AxwBJwNcAd8BygHIAccB/wHG
AcQBwwH/AbsBwgHDAf8BIAHKAeEB/wEAAb4B2gH/AQABwQHdAf8BDwHHAeAB/wERAcgB4QH/ARoBwgHX AcQBwwH/AbsBwgHDAf8BHQHKAeEB/wEAAb4B2gH/AQABwQHdAf8BDAHHAeAB/wEOAcgB4QH/ARcBwgHX
Af8BFAGbAagB/wMAAf8DAAH/AYQBggGAAf8BpQGiAaAB/wGqAacBpQH/AaoBpwGlAf8BoAGdAZsB/wGW Af8BEQGbAagB/wMAAf8DAAH/AYQBggGAAf8BpQGiAaAB/wGqAacBpQH/AaoBpwGlAf8BoAGdAZsB/wGW
AZMBkQH/AZQBkQGPAf8BkgGPAY0B/wGQAY0BiwH/AY0BigGJAf8BiwGIAYcB/wGRAY4BjAH/AbMBsAGu AZMBkQH/AZQBkQGPAf8BkgGPAY0B/wGQAY0BiwH/AY0BigGJAf8BiwGIAYcB/wGRAY4BjAH/AbMBsAGu
Af8DRwGABAABjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGL Af8DRwGABAABjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGL
AQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/ AQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/
@ -361,8 +361,8 @@
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A9oB/ysAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A9oB/ysAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/EAADMwFTA/EB/wPxAf8D8AH/A/AB/wPwAf8D8AH/ Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/EAADMwFTA/EB/wPxAf8D8AH/A/AB/wPwAf8D8AH/
A/AB/wPwAf8D8AH/A/AB/wPwAf8D8AH/A/AB/wPvAf8D7AH/A+QB/wPYAf8D0AH/A88B/wPQAf8DzAH/ A/AB/wPwAf8D8AH/A/AB/wPwAf8D8AH/A/AB/wPvAf8D7AH/A+QB/wPYAf8D0AH/A88B/wPQAf8DzAH/
A8gB/wM1AVcQAAMMARABJwG3AdoB/wEAAaEBxQH/A0MBdwMyAVABywHJAcgB/wHJAccBxQH/AcUBwwHC A8gB/wM1AVcQAAMMARABJAG3AdoB/wEAAaEBxQH/A0MBdwMyAVABywHJAcgB/wHJAccBxQH/AcUBwwHC
Af8BNQHGAdcB/wEAAb8B2wH/AQoBsgHMAf8BjgG+AccB/wGpAbkBvAH/AbkBtwG1Af8BtwG0AbIB/wGk Af8BMgHGAdcB/wEAAb8B2wH/AQcBsgHMAf8BjgG+AccB/wGpAbkBvAH/AbkBtwG1Af8BtwG0AbIB/wGk
AaIBoAH/AasBqAGmAf8BsQGvAa0B/wGvAawBqgH/Aa0BqgGoAf8BqwGoAaYB/wGiAZ8BnQH/AZgBlQGT AaIBoAH/AasBqAGmAf8BsQGvAa0B/wGvAawBqgH/Aa0BqgGoAf8BqwGoAaYB/wGiAZ8BnQH/AZgBlQGT
Af8BlgGTAZEB/wGUAZEBjwH/AZIBjwGNAf8BkAGNAYsB/wGNAYoBiQH/Aa0BqgGoAf8DXAHfAwwBEAQA Af8BlgGTAZEB/wGUAZEBjwH/AZIBjwGNAf8BkAGNAYsB/wGNAYoBiQH/Aa0BqgGoAf8DXAHfAwwBEAQA
AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGL AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGL
@ -371,8 +371,8 @@
AfkB/wGdAZsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8DAAH/AwAB/wMAAf8DAAH/ AfkB/wGdAZsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8DAAH/AwAB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/LwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/LwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
AwAB/wMAAf8QAAMzAVMD8AH/A+8B/wPuAf8D7gH/A+4B/wPuAf8D7gH/A+4B/wPuAf8D7gH/A+4B/wPu AwAB/wMAAf8QAAMzAVMD8AH/A+8B/wPuAf8D7gH/A+4B/wPuAf8D7gH/A+4B/wPuAf8D7gH/A+4B/wPu
Af8D7gH/A+0B/wPoAf8D1gH/A7gB/wOnAf8DogH/A54B/wOeAf8DYQHmAxQBGxQAA1QBrwEXAbAB0wH/ Af8D7gH/A+0B/wPoAf8D1gH/A7gB/wOnAf8DogH/A54B/wOeAf8DYQHmAxQBGxQAA1QBrwEUAbAB0wH/
AVoCXQHTBAADVAGvAcsByQHIAf8BxwHFAcQB/wGTAcMBzAH/AQMBwwHeAf8BAAGaAboB/wG9AbsBugH/ AVoCXQHTBAADVAGvAcsByQHIAf8BxwHFAcQB/wGTAcMBzAH/AQABwwHeAf8BAAGaAboB/wG9AbsBugH/
AbwBugG4Af8BugG3AbYB/wG4AbYBtAH/AbYBswGyAf8BtAGyAbAB/wGyAa8BrQH/AbABrQGrAf8BrgGr AbwBugG4Af8BugG3AbYB/wG4AbYBtAH/AbYBswGyAf8BtAGyAbAB/wGyAa8BrQH/AbABrQGrAf8BrgGr
AakB/wGrAagBpgH/AZ4BmwGZAf8BmwGYAZYB/wGYAZUBkwH/AZYBkwGRAf8BlAGRAY8B/wGSAY8BjQH/ AakB/wGrAagBpgH/AZ4BmwGZAf8BmwGYAZYB/wGYAZUBkwH/AZYBkwGRAf8BlAGRAY8B/wGSAY8BjQH/
AagBpQGjAf8BtQGzAbEB/wMqAUAIAAGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA AagBpQGjAf8BtQGzAbEB/wMqAUAIAAGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA
@ -382,8 +382,8 @@
AY4BiwEAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AY4BiwEAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/AwAB/xAAAzMBUwPuAf8D7QH/A+0B/wPtAf8D7QH/A+0B/wPtAf8D7QH/A+0B/wPt AwAB/wMAAf8DAAH/AwAB/xAAAzMBUwPuAf8D7QH/A+0B/wPtAf8D7QH/A+0B/wPtAf8D7QH/A+0B/wPt
Af8D7QH/A+0B/wPtAf8D7AH/A+MB/wPKAf8DnQH/A4MB/wOGAf8DmAH/A2IB7wMnATsYAAM6AWABLQG6 Af8D7QH/A+0B/wPtAf8D7AH/A+MB/wPKAf8DnQH/A4MB/wOGAf8DmAH/A2IB7wMnATsYAAM6AWABKgG6
Ad0B/wEAAZMBugH/AxoBJAMMARADXAHPAY0BuAHEAf8BAgGlAcAB/wEAAbkB1gH/AQABngG+Af8BmAG2 Ad0B/wEAAZMBugH/AxoBJAMMARADXAHPAY0BuAHEAf8BAAGlAcAB/wEAAbkB1gH/AQABngG+Af8BmAG2
Ab0B/wG9AbsBuQH/Ab0BugG5Af8BuQG3AbUB/wG3AbQBsgH/AbUBsgGxAf8BswGwAa4B/wGxAa8BrQH/ Ab0B/wG9AbsBuQH/Ab0BugG5Af8BuQG3AbUB/wG3AbQBsgH/AbUBsgGxAf8BswGwAa4B/wGxAa8BrQH/
Aa0BqgGoAf8BogGfAZ0B/wGfAZwBmgH/AZ0BmgGYAf8BmwGYAZYB/wGYAZUBkwH/AZYBkwGRAf8BpAGh Aa0BqgGoAf8BogGfAZ0B/wGfAZwBmgH/AZ0BmgGYAf8BmwGYAZYB/wGYAZUBkwH/AZYBkwGRAf8BpAGh
AZ8B/wG4AbUBswH/A0cBgAwAAY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGO AZ8B/wG4AbUBswH/A0cBgAwAAY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGO
@ -393,7 +393,7 @@
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/LwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/LwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8QAAMzAVMD7QH/A+0B/wPsAf8D7AH/A+wB/wPsAf8D7AH/ Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8QAAMzAVMD7QH/A+0B/wPsAf8D7AH/A+wB/wPsAf8D7AH/
A+wB/wPsAf8D7AH/A+wB/wPsAf8D7AH/A+sB/wPfAf8DyQH/A+0B/wPwAf8D8QH/A2cB8gMrAUIcAAMM A+wB/wPsAf8D7AH/A+wB/wPsAf8D7AH/A+sB/wPfAf8DyQH/A+0B/wPwAf8D8QH/A2cB8gMrAUIcAAMM
ARABOAHBAeIB/wEKAZ4BxwH/AVgCWgHAA1EBogEAAZgBuwH/AQABowHEAf8BAAG1AdMB/wEAAcIB3gH/ ARABNQHBAeIB/wEHAZ4BxwH/AVgCWgHAA1EBogEAAZgBuwH/AQABowHEAf8BAAG1AdMB/wEAAcIB3gH/
AQABsQHQAf8BoQG3Ab0B/wG+AbwBugH/Ab0BuwG5Af8BvQG6AbkB/wG6AbcBtQH/AbYBswGxAf8BsgGv AQABsQHQAf8BoQG3Ab0B/wG+AbwBugH/Ab0BuwG5Af8BvQG6AbkB/wG6AbcBtQH/AbYBswGxAf8BsgGv
Aa0B/wGuAasBqQH/AaYBowGhAf8BpAGhAZ8B/wGiAZ8BnQH/AZ8BnAGaAf8BnQGaAZgB/wGdAZoBmAH/ Aa0B/wGuAasBqQH/AaYBowGhAf8BpAGhAZ8B/wGiAZ8BnQH/AZ8BnAGaAf8BnQGaAZgB/wGdAZoBmAH/
Aa4BqwGpAf8BuQG3AbUB/wNRAZ8QAAGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA Aa4BqwGpAf8BuQG3AbUB/wNRAZ8QAAGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA
@ -403,8 +403,8 @@
AYsBAAH/AY4BiwEAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA AYsBAAH/AY4BiwEAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/xAAAzMBUwPsAf8D7AH/A+sB/wPrAf8D6wH/A+sB/wPrAf8D6wH/ Af8DAAH/AwAB/wMAAf8DAAH/AwAB/xAAAzMBUwPsAf8D7AH/A+sB/wPrAf8D6wH/A+sB/wPrAf8D6wH/
A+sB/wPrAf8D6wH/A+sB/wPrAf8D6QH/A9wB/wPHAf8D/gX/A2cB8gMsAUQkAANcAc8BJQG2AdsB/wEE A+sB/wPrAf8D6wH/A+sB/wPrAf8D6QH/A9wB/wPHAf8D/gX/A2cB8gMsAUQkAANcAc8BIgG2AdsB/wEB
AZcBwgH/AQIBngHGAf8BCwGxAdQB/wEXAb0B3AH/AR4BwAHbAf8BOQHCAdQB/wGjAcIByQH/AcIBwAG+ AZcBwgH/AQABngHGAf8BCAGxAdQB/wEUAb0B3AH/ARsBwAHbAf8BNgHCAdQB/wGjAcIByQH/AcIBwAG+
Af8BvwG8AbsB/wG9AbsBuQH/AbsBuAG3Af8BugG3AbUB/wG0AbEBrwH/Aa0BqgGoAf8BqwGoAaYB/wGp Af8BvwG8AbsB/wG9AbsBuQH/AbsBuAG3Af8BugG3AbUB/wG0AbEBrwH/Aa0BqgGoAf8BqwGoAaYB/wGp
AaYBpAH/AaYBowGhAf8BpAGhAZ8B/wGiAZ8BnQH/AacBpAGiAf8BuAG2AbQB/wG8AbkBuAH/A0ABcBQA AaYBpAH/AaYBowGhAf8BpAGhAZ8B/wGiAZ8BnQH/AacBpAGiAf8BuAG2AbQB/wG8AbkBuAH/A0ABcBQA
AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGL AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGL
@ -414,8 +414,8 @@
AY4BiwEAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AY4BiwEAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/AwAB/xAAAzMBUwPqAf8D6gH/A+kB/wPpAf8D6QH/A+kB/wPpAf8D6QH/A+kB/wPp AwAB/wMAAf8DAAH/AwAB/xAAAzMBUwPqAf8D6gH/A+kB/wPpAf8D6QH/A+kB/wPpAf8D6QH/A+kB/wPp
Af8D6QH/A+kB/wPpAf8D5gH/A9gB/wPGAf8D+AH/A2cB8gMtAUUoAANAAXABiwHKAegB/wE0Ab8B4QH/ Af8D6QH/A+kB/wPpAf8D5gH/A9gB/wPGAf8D+AH/A2cB8gMtAUUoAANAAXABiwHKAegB/wExAb8B4QH/
ATABuwHeAf8DVAGvAzoBYAMMARADRwGAA2IB7wHLAckByAH/AcYBxAHDAf8BwQG/Ab0B/wG8AbkBuAH/ AS0BuwHeAf8DVAGvAzoBYAMMARADRwGAA2IB7wHLAckByAH/AcYBxAHDAf8BwQG/Ab0B/wG8AbkBuAH/
AboBtwG2Af8BuQG2AbQB/wGvAawBqgH/Aa0BqgGoAf8BqwGoAaYB/wGsAakBpwH/AbABrQGsAf8BuwG4 AboBtwG2Af8BuQG2AbQB/wGvAawBqgH/Aa0BqgGoAf8BqwGoAaYB/wGsAakBpwH/AbABrQGsAf8BuwG4
AbYB/wG/AbwBuwH/A1wBzwMhATAYAAGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA AbYB/wG/AbwBuwH/A1wBzwMhATAYAAGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA
Af8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGO Af8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGO
@ -1053,6 +1053,9 @@
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value> <value>17, 17</value>
</metadata> </metadata>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<data name="labelSebServiceIgnore.Text" xml:space="preserve"> <data name="labelSebServiceIgnore.Text" xml:space="preserve">
<value>IMPORTANT: The SEB Service changes aspects of the system configuration, e.g. to lock down the security screen (CTRL+ALT+DEL). Some anti-virus software providers might falsely identify its operations as malicious, thus it is not recommended to use the SEB Service in uncontrolled environments (e.g. BYOD).</value> <value>IMPORTANT: The SEB Service changes aspects of the system configuration, e.g. to lock down the security screen (CTRL+ALT+DEL). Some anti-virus software providers might falsely identify its operations as malicious, thus it is not recommended to use the SEB Service in uncontrolled environments (e.g. BYOD).</value>
</data> </data>
@ -1066,12 +1069,36 @@
<metadata name="dataGridViewTextBoxColumnName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="dataGridViewTextBoxColumnName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>
<metadata name="Type.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumnName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewCheckBoxColumnProtocolEnable.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="dataGridViewCheckBoxColumnProtocolEnable.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>
<metadata name="dataGridViewTextBoxColumnProtocolType.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="dataGridViewTextBoxColumnProtocolType.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>
<metadata name="dataGridViewCheckBoxColumnProtocolEnable.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumnProtocolType.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Active.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="OS.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Executable.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Title.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Active.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="Active.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>
@ -1093,6 +1120,12 @@
<metadata name="ArgumentParameter.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="ArgumentParameter.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>
<metadata name="ArgumentActive.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ArgumentParameter.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="checkBoxPermittedProcessAllowUser.ToolTip" xml:space="preserve"> <data name="checkBoxPermittedProcessAllowUser.ToolTip" xml:space="preserve">
<value>Allow locating third party applications with a file dialog if it cannot be found at the paths specified. Only applications matching other criteria specified (like Original Name, executable) are accepted.</value> <value>Allow locating third party applications with a file dialog if it cannot be found at the paths specified. Only applications matching other criteria specified (like Original Name, executable) are accepted.</value>
</data> </data>
@ -1108,6 +1141,18 @@
<metadata name="dataGridViewTextBoxColumn2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="dataGridViewTextBoxColumn2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>
<metadata name="dataGridViewCheckBoxColumn1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewComboBoxColumn1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="label23.Text" xml:space="preserve"> <data name="label23.Text" xml:space="preserve">
<value>The seb(s):// link to the config file can contain an additional query string, separated from the main URL by '?' or '??' (if the URL itself doesn't contain a query). SEB will then append this query string to the Start URL.</value> <value>The seb(s):// link to the config file can contain an additional query string, separated from the main URL by '?' or '??' (if the URL itself doesn't contain a query). SEB will then append this query string to the Start URL.</value>
</data> </data>
@ -1140,6 +1185,15 @@ IMPORTANT: Always copy the key(s) as a last step, after the configuration file w
<metadata name="spellCheckerDictionaryFilesColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="spellCheckerDictionaryFilesColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>
<metadata name="spellCheckerDictionaryEnabledColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="spellCheckerDictionaryLocaleColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="spellCheckerDictionaryFilesColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="radioButtonTouchOptimized.ToolTip" xml:space="preserve"> <data name="radioButtonTouchOptimized.ToolTip" xml:space="preserve">
<value>To be used on Windows tablets. In Window 10, Tablet Mode needs to be activated. Not working with the Create New Desktop kiosk mode, you have to reconfigure the SEB client settings to Disable Explorer Shell.</value> <value>To be used on Windows tablets. In Window 10, Tablet Mode needs to be activated. Not working with the Create New Desktop kiosk mode, you have to reconfigure the SEB client settings to Disable Explorer Shell.</value>
</data> </data>