Merge pull request #10 from bmg002/Issue4

Fix Issue 4 - Woohoo!! RDP signing is now a thing!
This commit is contained in:
kimmknight 2019-11-13 23:07:22 +11:00 committed by GitHub
commit bbce209a94
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 1084 additions and 311 deletions

View File

@ -0,0 +1,13 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:4.0.30319.42000
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<MySubMain>false</MySubMain>
<SingleInstance>false</SingleInstance>
<ShutdownMode>0</ShutdownMode>
<EnableVisualStyles>true</EnableVisualStyles>
<AuthenticationMode>0</AuthenticationMode>
<ApplicationType>1</ApplicationType>
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
</MyApplicationData>

View File

@ -0,0 +1,35 @@
Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices
' General Information about an assembly is controlled through the following
' set of attributes. Change these attribute values to modify the information
' associated with an assembly.
' Review the values of the assembly attributes
<Assembly: AssemblyTitle("RDPSign")>
<Assembly: AssemblyDescription("")>
<Assembly: AssemblyCompany("")>
<Assembly: AssemblyProduct("RDPSign")>
<Assembly: AssemblyCopyright("Copyright © 2019")>
<Assembly: AssemblyTrademark("")>
<Assembly: ComVisible(False)>
'The following GUID is for the ID of the typelib if this project is exposed to COM
<Assembly: Guid("2510197e-8ea9-4570-bc9c-74d4efd9424c")>
' Version information for an assembly consists of the following four values:
'
' Major Version
' Minor Version
' Build Number
' Revision
'
' You can specify all the values or you can default the Build and Revision Numbers
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.0.0.0")>
<Assembly: AssemblyFileVersion("1.0.0.0")>

63
RDPSign/My Project/Resources.Designer.vb generated Normal file
View File

@ -0,0 +1,63 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:4.0.30319.42000
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Imports System
Namespace My.Resources
'This class was auto-generated by the StronglyTypedResourceBuilder
'class via a tool like ResGen or Visual Studio.
'To add or remove a member, edit your .ResX file then rerun ResGen
'with the /str option, or rebuild your VS project.
'''<summary>
''' A strongly-typed resource class, for looking up localized strings, etc.
'''</summary>
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0"), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
Friend Module Resources
Private resourceMan As Global.System.Resources.ResourceManager
Private resourceCulture As Global.System.Globalization.CultureInfo
'''<summary>
''' Returns the cached ResourceManager instance used by this class.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
Get
If Object.ReferenceEquals(resourceMan, Nothing) Then
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("RDPSign.Resources", GetType(Resources).Assembly)
resourceMan = temp
End If
Return resourceMan
End Get
End Property
'''<summary>
''' Overrides the current thread's CurrentUICulture property for all
''' resource lookups using this strongly typed resource class.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend Property Culture() As Global.System.Globalization.CultureInfo
Get
Return resourceCulture
End Get
Set
resourceCulture = value
End Set
End Property
End Module
End Namespace

View File

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

73
RDPSign/My Project/Settings.Designer.vb generated Normal file
View File

@ -0,0 +1,73 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:4.0.30319.42000
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Namespace My
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.3.0.0"), _
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Partial Friend NotInheritable Class MySettings
Inherits Global.System.Configuration.ApplicationSettingsBase
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
#Region "My.Settings Auto-Save Functionality"
#If _MyType = "WindowsForms" Then
Private Shared addedHandler As Boolean
Private Shared addedHandlerLockObject As New Object
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
If My.Application.SaveMySettingsOnExit Then
My.Settings.Save()
End If
End Sub
#End If
#End Region
Public Shared ReadOnly Property [Default]() As MySettings
Get
#If _MyType = "WindowsForms" Then
If Not addedHandler Then
SyncLock addedHandlerLockObject
If Not addedHandler Then
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
addedHandler = True
End If
End SyncLock
End If
#End If
Return defaultInstance
End Get
End Property
End Class
End Namespace
Namespace My
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
Friend Module MySettingsProperty
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
Friend ReadOnly Property Settings() As Global.RDPSign.My.MySettings
Get
Return Global.RDPSign.My.MySettings.Default
End Get
End Property
End Module
End Namespace

View File

@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

140
RDPSign/RDPSign.vb Normal file
View File

@ -0,0 +1,140 @@
Imports System.Windows.Forms
Public Class RDPSign
Public ErrorNumber As Integer = 0
Public ErrorString As String = ""
Sub main()
End Sub
''' <summary>
''' Get all Certificate friendly names
''' </summary>
''' <returns>String array of Certificate friendly names</returns>
Function GetCertificateFriendlyName()
Dim CertStoreLM As Security.Cryptography.X509Certificates.X509Store
Dim CertStoreCU As Security.Cryptography.X509Certificates.X509Store
CertStoreLM = GetCertificateStoreLM()
CertStoreCU = GetCertificateStoreCU()
Dim FriendlyNames(CertStoreLM.Certificates.Count + CertStoreCU.Certificates.Count) As String
Dim Counter As Integer = 0
For Each Certificate In CertStoreLM.Certificates
If Certificate.FriendlyName IsNot "" Then
FriendlyNames(Counter) = Certificate.FriendlyName
Counter = Counter + 1
End If
Next
For Each Certificate In CertStoreCU.Certificates
If Certificate.FriendlyName IsNot "" Then
FriendlyNames(Counter) = Certificate.FriendlyName
Counter = Counter + 1
End If
Next
Array.Resize(FriendlyNames, Counter)
Return FriendlyNames
End Function
''' <summary>
''' Open the Local Machine certificate store and return it to the calling function/sub
''' </summary>
''' <returns>Certificate Store</returns>
Function GetCertificateStoreLM()
Dim CertStore As New Security.Cryptography.X509Certificates.X509Store(Security.Cryptography.X509Certificates.StoreLocation.LocalMachine)
CertStore.Open(Security.Cryptography.X509Certificates.OpenFlags.ReadOnly)
Return CertStore
End Function
''' <summary>
''' Open the Current User certificate store and return it to the calling function/sub
''' </summary>
''' <returns>Certificate Store</returns>
Function GetCertificateStoreCU()
Dim CertStore As New Security.Cryptography.X509Certificates.X509Store(Security.Cryptography.X509Certificates.StoreLocation.CurrentUser)
CertStore.Open(Security.Cryptography.X509Certificates.OpenFlags.ReadOnly)
Return CertStore
End Function
''' <summary>
''' Given a friendly name, find and return the associated thumbprint
''' </summary>
''' <param name="FriendlyName">String of the Friendly Name of a certificate</param>
''' <returns>String of the thumbprint of the certificate</returns>
Function GetThumbprint(FriendlyName As String)
Dim Thumbprint As String
Dim CertStoreLM As Security.Cryptography.X509Certificates.X509Store
CertStoreLM = GetCertificateStoreLM()
For Each certificate In CertStoreLM.Certificates
If certificate.FriendlyName = FriendlyName Then
Thumbprint = certificate.Thumbprint
CertStoreLM.Close()
Return Thumbprint
End If
Next
CertStoreLM.Close()
Dim CertStoreCU As Security.Cryptography.X509Certificates.X509Store
CertStoreCU = GetCertificateStoreCU()
For Each certificate In CertStoreCU.Certificates
If certificate.FriendlyName = FriendlyName Then
Thumbprint = certificate.Thumbprint
CertStoreCU.Close()
Return Thumbprint
End If
Next
' We could get here if something went wrong such as Certificate was removed from certificate store after it was loaded into the application
' return an invalid thumbprint
Return "0000"
End Function
''' <summary>
''' Sign an RDP file and make a backup of the unsigned one if requested
''' </summary>
''' <param name="Thumbprint">Thumbprint used to sign RDP file</param>
''' <param name="RDPFileLocation">Location of RDP file</param>
''' <param name="CreateBackup">Boolean indicating if a backup should be created or not</param>
Sub SignRDP(Thumbprint As String, RDPFileLocation As String, CreateBackup As Boolean)
If Thumbprint = "0000" Then
'Invalid thumbprint, this should be handled on the application side, but just as a safety, return without doing any work if invalid thumbprint sent
Return
End If
If CreateBackup Then
Dim BackupFile = System.IO.Path.GetDirectoryName(RDPFileLocation) & "\" & System.IO.Path.GetFileNameWithoutExtension(RDPFileLocation) & "-Unsigned.rdp"
System.IO.File.Copy(RDPFileLocation, BackupFile, True) 'backup file with overwrite
End If
'If we get here, we should be good to run the command to sign the RDP file.
Dim Command As String = GetSysDir() & "\rdpsign.exe"
If My.Computer.FileSystem.FileExists(Command) Then
Dim Arguments As String
Dim FileVersionInfo As FileVersionInfo = FileVersionInfo.GetVersionInfo(Command)
' On my windows 10 computer, the argument is /sha256 instead of /sha1. /sha1 doesn't work.
' On my windows 10 computer, the Product parts come in at 10.0.18362.1
' On a Windows Server 2008 R2 server I have access to, the argument is /sha1.
' On a Windows Server 2008 R2 server I have access to, the Product parts come in at 6.1.7601.17514 which is lower than the windows 10 ones.
' I do not have other versions of windows to test, so will need external testing for this.
' Not sure where the version number switches over, but also not sure how to determine which method to use otherwise
If (FileVersionInfo.ProductMajorPart >= 10) Then
Arguments = " /sha256 " & Thumbprint & " """ & RDPFileLocation & """"
Else
Arguments = " /sha1 " & Thumbprint & " """ & RDPFileLocation & """"
End If
Dim StartInfo As New ProcessStartInfo
StartInfo.FileName = Command
StartInfo.Arguments = Arguments
StartInfo.WindowStyle = ProcessWindowStyle.Hidden
Process.Start(StartInfo)
Else
MessageBox.Show("RDPSign executable not found:" & vbNewLine & vbNewLine & Command, My.Application.Info.AssemblyName, MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
End Sub
Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Function GetSysDir() As String
Return Environment.SystemDirectory.ToString
End Function
End Class

107
RDPSign/RDPSign.vbproj Normal file
View File

@ -0,0 +1,107 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{57DABB69-B1D3-445F-91E7-B0412ABAC218}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>RDPSign</RootNamespace>
<AssemblyName>RDPSign</AssemblyName>
<FileAlignment>512</FileAlignment>
<MyType>Windows</MyType>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<Deterministic>true</Deterministic>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>bin\Debug\</OutputPath>
<DocumentationFile>RDPSign.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DocumentationFile>RDPSign.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
</PropertyGroup>
<PropertyGroup>
<OptionExplicit>On</OptionExplicit>
</PropertyGroup>
<PropertyGroup>
<OptionCompare>Binary</OptionCompare>
</PropertyGroup>
<PropertyGroup>
<OptionStrict>Off</OptionStrict>
</PropertyGroup>
<PropertyGroup>
<OptionInfer>On</OptionInfer>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Security" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Net.Http" />
</ItemGroup>
<ItemGroup>
<Import Include="Microsoft.VisualBasic" />
<Import Include="System" />
<Import Include="System.Collections" />
<Import Include="System.Collections.Generic" />
<Import Include="System.Data" />
<Import Include="System.Diagnostics" />
<Import Include="System.Linq" />
<Import Include="System.Xml.Linq" />
<Import Include="System.Threading.Tasks" />
</ItemGroup>
<ItemGroup>
<Compile Include="My Project\AssemblyInfo.vb" />
<Compile Include="My Project\Application.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Application.myapp</DependentUpon>
</Compile>
<Compile Include="My Project\Resources.Designer.vb">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="My Project\Settings.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<Compile Include="RDPSign.vb" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="My Project\Resources.resx">
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
<CustomToolNamespace>My.Resources</CustomToolNamespace>
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="My Project\Application.myapp">
<Generator>MyApplicationCodeGenerator</Generator>
<LastGenOutput>Application.Designer.vb</LastGenOutput>
</None>
<None Include="My Project\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<CustomToolNamespace>My</CustomToolNamespace>
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
</None>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
</Project>

View File

@ -67,6 +67,15 @@
<setting name="SavedDisableFTA" serializeAs="String"> <setting name="SavedDisableFTA" serializeAs="String">
<value>False</value> <value>False</value>
</setting> </setting>
<setting name="SavedSignRDP" serializeAs="String">
<value>False</value>
</setting>
<setting name="SavedSignedAndUnsigned" serializeAs="String">
<value>False</value>
</setting>
<setting name="SavedCertSelected" serializeAs="String">
<value>0</value>
</setting>
</RemoteApp_Tool.My.MySettings> </RemoteApp_Tool.My.MySettings>
</userSettings> </userSettings>
</configuration> </configuration>

View File

@ -15,7 +15,7 @@ Option Explicit On
Namespace My Namespace My
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _ <Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0"), _ Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.3.0.0"), _
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _ Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Partial Friend NotInheritable Class MySettings Partial Friend NotInheritable Class MySettings
Inherits Global.System.Configuration.ApplicationSettingsBase Inherits Global.System.Configuration.ApplicationSettingsBase
@ -29,7 +29,7 @@ Namespace My
Private Shared addedHandlerLockObject As New Object Private Shared addedHandlerLockObject As New Object
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _ <Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
If My.Application.SaveMySettingsOnExit Then If My.Application.SaveMySettingsOnExit Then
My.Settings.Save() My.Settings.Save()
End If End If
@ -281,6 +281,42 @@ Namespace My
Me("SavedDisableFTA") = value Me("SavedDisableFTA") = value
End Set End Set
End Property End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("False")> _
Public Property SavedSignRDP() As Boolean
Get
Return CType(Me("SavedSignRDP"),Boolean)
End Get
Set
Me("SavedSignRDP") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("False")> _
Public Property SavedSignedAndUnsigned() As Boolean
Get
Return CType(Me("SavedSignedAndUnsigned"),Boolean)
End Get
Set
Me("SavedSignedAndUnsigned") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("0")> _
Public Property SavedCertSelected() As Integer
Get
Return CType(Me("SavedCertSelected"),Integer)
End Get
Set
Me("SavedCertSelected") = value
End Set
End Property
End Class End Class
End Namespace End Namespace

View File

@ -59,5 +59,14 @@
<Setting Name="SavedDisableFTA" Type="System.Boolean" Scope="User"> <Setting Name="SavedDisableFTA" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value> <Value Profile="(Default)">False</Value>
</Setting> </Setting>
<Setting Name="SavedSignRDP" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="SavedSignedAndUnsigned" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="SavedCertSelected" Type="System.Int32" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
</Settings> </Settings>
</SettingsFile> </SettingsFile>

View File

@ -1,9 +1,12 @@
 
Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Express 2012 for Windows Desktop # Visual Studio Version 16
VisualStudioVersion = 16.0.29424.173
MinimumVisualStudioVersion = 10.0.40219.1
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "RemoteApp Tool", "RemoteApp Tool.vbproj", "{2D140FE4-0794-43AC-BE7B-9D918B3F9C61}" Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "RemoteApp Tool", "RemoteApp Tool.vbproj", "{2D140FE4-0794-43AC-BE7B-9D918B3F9C61}"
ProjectSection(ProjectDependencies) = postProject ProjectSection(ProjectDependencies) = postProject
{785B6808-B2FE-4C18-9D63-6DAB46482374} = {785B6808-B2FE-4C18-9D63-6DAB46482374} {785B6808-B2FE-4C18-9D63-6DAB46482374} = {785B6808-B2FE-4C18-9D63-6DAB46482374}
{57DABB69-B1D3-445F-91E7-B0412ABAC218} = {57DABB69-B1D3-445F-91E7-B0412ABAC218}
{E1CB5F9C-230F-4967-8F19-335F8E4A4906} = {E1CB5F9C-230F-4967-8F19-335F8E4A4906} {E1CB5F9C-230F-4967-8F19-335F8E4A4906} = {E1CB5F9C-230F-4967-8F19-335F8E4A4906}
{258307D5-A407-4622-BF1A-BDCA8E3D2FAA} = {258307D5-A407-4622-BF1A-BDCA8E3D2FAA} {258307D5-A407-4622-BF1A-BDCA8E3D2FAA} = {258307D5-A407-4622-BF1A-BDCA8E3D2FAA}
EndProjectSection EndProjectSection
@ -19,6 +22,8 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "RDP2MSI", "..\RDP2MSI\RDP2M
EndProject EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "RDPFileLib", "..\RDPFileLib\RDPFileLib.vbproj", "{258307D5-A407-4622-BF1A-BDCA8E3D2FAA}" Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "RDPFileLib", "..\RDPFileLib\RDPFileLib.vbproj", "{258307D5-A407-4622-BF1A-BDCA8E3D2FAA}"
EndProject EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "RDPSign", "..\RDPSign\RDPSign.vbproj", "{57DABB69-B1D3-445F-91E7-B0412ABAC218}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
@ -45,8 +50,15 @@ Global
{258307D5-A407-4622-BF1A-BDCA8E3D2FAA}.Debug|Any CPU.Build.0 = Debug|Any CPU {258307D5-A407-4622-BF1A-BDCA8E3D2FAA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{258307D5-A407-4622-BF1A-BDCA8E3D2FAA}.Release|Any CPU.ActiveCfg = Release|Any CPU {258307D5-A407-4622-BF1A-BDCA8E3D2FAA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{258307D5-A407-4622-BF1A-BDCA8E3D2FAA}.Release|Any CPU.Build.0 = Release|Any CPU {258307D5-A407-4622-BF1A-BDCA8E3D2FAA}.Release|Any CPU.Build.0 = Release|Any CPU
{57DABB69-B1D3-445F-91E7-B0412ABAC218}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{57DABB69-B1D3-445F-91E7-B0412ABAC218}.Debug|Any CPU.Build.0 = Debug|Any CPU
{57DABB69-B1D3-445F-91E7-B0412ABAC218}.Release|Any CPU.ActiveCfg = Release|Any CPU
{57DABB69-B1D3-445F-91E7-B0412ABAC218}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {A28F1460-A9C1-44A4-A7C9-D8C210745F31}
EndGlobalSection
EndGlobal EndGlobal

View File

@ -276,6 +276,10 @@
<Project>{258307d5-a407-4622-bf1a-bdca8e3d2faa}</Project> <Project>{258307d5-a407-4622-bf1a-bdca8e3d2faa}</Project>
<Name>RDPFileLib</Name> <Name>RDPFileLib</Name>
</ProjectReference> </ProjectReference>
<ProjectReference Include="..\RDPSign\RDPSign.vbproj">
<Project>{57dabb69-b1d3-445f-91e7-b0412abac218}</Project>
<Name>RDPSign</Name>
</ProjectReference>
<ProjectReference Include="..\RemoteAppLib\RemoteAppLib.vbproj"> <ProjectReference Include="..\RemoteAppLib\RemoteAppLib.vbproj">
<Project>{785b6808-b2fe-4c18-9d63-6dab46482374}</Project> <Project>{785b6808-b2fe-4c18-9d63-6dab46482374}</Project>
<Name>RemoteAppLib</Name> <Name>RemoteAppLib</Name>

View File

@ -67,16 +67,23 @@ Partial Class RemoteAppCreateClientConnection
Me.FileTypesGroupBox = New System.Windows.Forms.GroupBox() Me.FileTypesGroupBox = New System.Windows.Forms.GroupBox()
Me.FTACountLabel = New System.Windows.Forms.Label() Me.FTACountLabel = New System.Windows.Forms.Label()
Me.DisabledFTACheckBox = New System.Windows.Forms.CheckBox() Me.DisabledFTACheckBox = New System.Windows.Forms.CheckBox()
Me.GroupBoxSignRDP = New System.Windows.Forms.GroupBox()
Me.CheckBoxCreateSignedAndUnsigned = New System.Windows.Forms.CheckBox()
Me.CertificateComboBox = New System.Windows.Forms.ComboBox()
Me.CertificateLabel = New System.Windows.Forms.Label()
Me.CheckBoxSignRDPEnabled = New System.Windows.Forms.CheckBox()
Me.ServerGroupBox.SuspendLayout() Me.ServerGroupBox.SuspendLayout()
Me.RDGWGroupBox.SuspendLayout() Me.RDGWGroupBox.SuspendLayout()
Me.ClientConnectionGroupBox.SuspendLayout() Me.ClientConnectionGroupBox.SuspendLayout()
Me.MSIGroupBox.SuspendLayout() Me.MSIGroupBox.SuspendLayout()
Me.Panel1.SuspendLayout() Me.Panel1.SuspendLayout()
Me.FileTypesGroupBox.SuspendLayout() Me.FileTypesGroupBox.SuspendLayout()
Me.GroupBoxSignRDP.SuspendLayout()
Me.SuspendLayout() Me.SuspendLayout()
' '
'EditAfterSave 'EditAfterSave
' '
Me.EditAfterSave.BackColor = System.Drawing.Color.Transparent
Me.EditAfterSave.ImageIndex = 2 Me.EditAfterSave.ImageIndex = 2
Me.EditAfterSave.ImageList = Me.SmallerIcons Me.EditAfterSave.ImageList = Me.SmallerIcons
Me.EditAfterSave.Location = New System.Drawing.Point(313, 13) Me.EditAfterSave.Location = New System.Drawing.Point(313, 13)
@ -85,7 +92,7 @@ Partial Class RemoteAppCreateClientConnection
Me.EditAfterSave.TabIndex = 2 Me.EditAfterSave.TabIndex = 2
Me.EditAfterSave.Text = "Manually edit RDP file" Me.EditAfterSave.Text = "Manually edit RDP file"
Me.EditAfterSave.TextImageRelation = System.Windows.Forms.TextImageRelation.TextBeforeImage Me.EditAfterSave.TextImageRelation = System.Windows.Forms.TextImageRelation.TextBeforeImage
Me.EditAfterSave.UseVisualStyleBackColor = True Me.EditAfterSave.UseVisualStyleBackColor = False
' '
'SmallerIcons 'SmallerIcons
' '
@ -107,10 +114,10 @@ Partial Class RemoteAppCreateClientConnection
Me.CreateButton.Font = New System.Drawing.Font("Segoe UI", 9.0!) Me.CreateButton.Font = New System.Drawing.Font("Segoe UI", 9.0!)
Me.CreateButton.ImageIndex = 6 Me.CreateButton.ImageIndex = 6
Me.CreateButton.ImageList = Me.SmallerIcons Me.CreateButton.ImageList = Me.SmallerIcons
Me.CreateButton.Location = New System.Drawing.Point(416, 482) Me.CreateButton.Location = New System.Drawing.Point(416, 555)
Me.CreateButton.Name = "CreateButton" Me.CreateButton.Name = "CreateButton"
Me.CreateButton.Size = New System.Drawing.Size(80, 29) Me.CreateButton.Size = New System.Drawing.Size(80, 29)
Me.CreateButton.TabIndex = 8 Me.CreateButton.TabIndex = 9
Me.CreateButton.Text = "Create..." Me.CreateButton.Text = "Create..."
Me.CreateButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText Me.CreateButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText
Me.CreateButton.UseVisualStyleBackColor = False Me.CreateButton.UseVisualStyleBackColor = False
@ -128,10 +135,10 @@ Partial Class RemoteAppCreateClientConnection
Me.CancelEditButton.Font = New System.Drawing.Font("Segoe UI", 9.0!) Me.CancelEditButton.Font = New System.Drawing.Font("Segoe UI", 9.0!)
Me.CancelEditButton.ImageIndex = 4 Me.CancelEditButton.ImageIndex = 4
Me.CancelEditButton.ImageList = Me.SmallerIcons Me.CancelEditButton.ImageList = Me.SmallerIcons
Me.CancelEditButton.Location = New System.Drawing.Point(343, 482) Me.CancelEditButton.Location = New System.Drawing.Point(343, 555)
Me.CancelEditButton.Name = "CancelEditButton" Me.CancelEditButton.Name = "CancelEditButton"
Me.CancelEditButton.Size = New System.Drawing.Size(67, 29) Me.CancelEditButton.Size = New System.Drawing.Size(67, 29)
Me.CancelEditButton.TabIndex = 7 Me.CancelEditButton.TabIndex = 8
Me.CancelEditButton.Text = "Cancel" Me.CancelEditButton.Text = "Cancel"
Me.CancelEditButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText Me.CancelEditButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText
Me.CancelEditButton.UseVisualStyleBackColor = False Me.CancelEditButton.UseVisualStyleBackColor = False
@ -158,7 +165,7 @@ Partial Class RemoteAppCreateClientConnection
Me.Label13.Location = New System.Drawing.Point(7, 54) Me.Label13.Location = New System.Drawing.Point(7, 54)
Me.Label13.Name = "Label13" Me.Label13.Name = "Label13"
Me.Label13.Size = New System.Drawing.Size(101, 15) Me.Label13.Size = New System.Drawing.Size(101, 15)
Me.Label13.TabIndex = 104 Me.Label13.TabIndex = 4
Me.Label13.Text = "Alternative server:" Me.Label13.Text = "Alternative server:"
' '
'Label14 'Label14
@ -167,7 +174,7 @@ Partial Class RemoteAppCreateClientConnection
Me.Label14.Location = New System.Drawing.Point(382, 25) Me.Label14.Location = New System.Drawing.Point(382, 25)
Me.Label14.Name = "Label14" Me.Label14.Name = "Label14"
Me.Label14.Size = New System.Drawing.Size(32, 15) Me.Label14.Size = New System.Drawing.Size(32, 15)
Me.Label14.TabIndex = 105 Me.Label14.TabIndex = 2
Me.Label14.Text = "Port:" Me.Label14.Text = "Port:"
' '
'Label12 'Label12
@ -176,7 +183,7 @@ Partial Class RemoteAppCreateClientConnection
Me.Label12.Location = New System.Drawing.Point(7, 25) Me.Label12.Location = New System.Drawing.Point(7, 25)
Me.Label12.Name = "Label12" Me.Label12.Name = "Label12"
Me.Label12.Size = New System.Drawing.Size(85, 15) Me.Label12.Size = New System.Drawing.Size(85, 15)
Me.Label12.TabIndex = 106 Me.Label12.TabIndex = 0
Me.Label12.Text = "Server address:" Me.Label12.Text = "Server address:"
' '
'ServerPort 'ServerPort
@ -184,7 +191,7 @@ Partial Class RemoteAppCreateClientConnection
Me.ServerPort.Location = New System.Drawing.Point(420, 22) Me.ServerPort.Location = New System.Drawing.Point(420, 22)
Me.ServerPort.Name = "ServerPort" Me.ServerPort.Name = "ServerPort"
Me.ServerPort.Size = New System.Drawing.Size(53, 23) Me.ServerPort.Size = New System.Drawing.Size(53, 23)
Me.ServerPort.TabIndex = 1 Me.ServerPort.TabIndex = 3
Me.ServerPort.Text = "3389" Me.ServerPort.Text = "3389"
' '
'AltServerAddress 'AltServerAddress
@ -192,14 +199,14 @@ Partial Class RemoteAppCreateClientConnection
Me.AltServerAddress.Location = New System.Drawing.Point(121, 51) Me.AltServerAddress.Location = New System.Drawing.Point(121, 51)
Me.AltServerAddress.Name = "AltServerAddress" Me.AltServerAddress.Name = "AltServerAddress"
Me.AltServerAddress.Size = New System.Drawing.Size(352, 23) Me.AltServerAddress.Size = New System.Drawing.Size(352, 23)
Me.AltServerAddress.TabIndex = 2 Me.AltServerAddress.TabIndex = 5
' '
'ServerAddress 'ServerAddress
' '
Me.ServerAddress.Location = New System.Drawing.Point(121, 22) Me.ServerAddress.Location = New System.Drawing.Point(121, 22)
Me.ServerAddress.Name = "ServerAddress" Me.ServerAddress.Name = "ServerAddress"
Me.ServerAddress.Size = New System.Drawing.Size(255, 23) Me.ServerAddress.Size = New System.Drawing.Size(255, 23)
Me.ServerAddress.TabIndex = 0 Me.ServerAddress.TabIndex = 1
' '
'RDGWGroupBox 'RDGWGroupBox
' '
@ -222,7 +229,7 @@ Partial Class RemoteAppCreateClientConnection
Me.AttemptDirectCheckBox.Location = New System.Drawing.Point(10, 76) Me.AttemptDirectCheckBox.Location = New System.Drawing.Point(10, 76)
Me.AttemptDirectCheckBox.Name = "AttemptDirectCheckBox" Me.AttemptDirectCheckBox.Name = "AttemptDirectCheckBox"
Me.AttemptDirectCheckBox.Size = New System.Drawing.Size(326, 19) Me.AttemptDirectCheckBox.Size = New System.Drawing.Size(326, 19)
Me.AttemptDirectCheckBox.TabIndex = 2 Me.AttemptDirectCheckBox.TabIndex = 3
Me.AttemptDirectCheckBox.Text = "Only use RD Gateway if direct connection is unsuccessful" Me.AttemptDirectCheckBox.Text = "Only use RD Gateway if direct connection is unsuccessful"
Me.AttemptDirectCheckBox.UseVisualStyleBackColor = True Me.AttemptDirectCheckBox.UseVisualStyleBackColor = True
' '
@ -243,7 +250,7 @@ Partial Class RemoteAppCreateClientConnection
Me.RDGWLabel.Location = New System.Drawing.Point(7, 50) Me.RDGWLabel.Location = New System.Drawing.Point(7, 50)
Me.RDGWLabel.Name = "RDGWLabel" Me.RDGWLabel.Name = "RDGWLabel"
Me.RDGWLabel.Size = New System.Drawing.Size(116, 15) Me.RDGWLabel.Size = New System.Drawing.Size(116, 15)
Me.RDGWLabel.TabIndex = 110 Me.RDGWLabel.TabIndex = 1
Me.RDGWLabel.Text = "RD Gateway address:" Me.RDGWLabel.Text = "RD Gateway address:"
' '
'GatewayAddress 'GatewayAddress
@ -252,7 +259,7 @@ Partial Class RemoteAppCreateClientConnection
Me.GatewayAddress.Location = New System.Drawing.Point(145, 47) Me.GatewayAddress.Location = New System.Drawing.Point(145, 47)
Me.GatewayAddress.Name = "GatewayAddress" Me.GatewayAddress.Name = "GatewayAddress"
Me.GatewayAddress.Size = New System.Drawing.Size(328, 23) Me.GatewayAddress.Size = New System.Drawing.Size(328, 23)
Me.GatewayAddress.TabIndex = 1 Me.GatewayAddress.TabIndex = 2
' '
'ClientConnectionGroupBox 'ClientConnectionGroupBox
' '
@ -293,6 +300,7 @@ Partial Class RemoteAppCreateClientConnection
' '
'CreateRAWebIcon 'CreateRAWebIcon
' '
Me.CreateRAWebIcon.BackColor = System.Drawing.Color.Transparent
Me.CreateRAWebIcon.ImageIndex = 5 Me.CreateRAWebIcon.ImageIndex = 5
Me.CreateRAWebIcon.ImageList = Me.SmallerIcons Me.CreateRAWebIcon.ImageList = Me.SmallerIcons
Me.CreateRAWebIcon.Location = New System.Drawing.Point(313, 36) Me.CreateRAWebIcon.Location = New System.Drawing.Point(313, 36)
@ -301,7 +309,7 @@ Partial Class RemoteAppCreateClientConnection
Me.CreateRAWebIcon.TabIndex = 3 Me.CreateRAWebIcon.TabIndex = 3
Me.CreateRAWebIcon.Text = "Create icon files" Me.CreateRAWebIcon.Text = "Create icon files"
Me.CreateRAWebIcon.TextImageRelation = System.Windows.Forms.TextImageRelation.TextBeforeImage Me.CreateRAWebIcon.TextImageRelation = System.Windows.Forms.TextImageRelation.TextBeforeImage
Me.CreateRAWebIcon.UseVisualStyleBackColor = True Me.CreateRAWebIcon.UseVisualStyleBackColor = False
' '
'FTAButton 'FTAButton
' '
@ -311,7 +319,7 @@ Partial Class RemoteAppCreateClientConnection
Me.FTAButton.Location = New System.Drawing.Point(301, 22) Me.FTAButton.Location = New System.Drawing.Point(301, 22)
Me.FTAButton.Name = "FTAButton" Me.FTAButton.Name = "FTAButton"
Me.FTAButton.Size = New System.Drawing.Size(172, 29) Me.FTAButton.Size = New System.Drawing.Size(172, 29)
Me.FTAButton.TabIndex = 1 Me.FTAButton.TabIndex = 2
Me.FTAButton.Text = "File type associations..." Me.FTAButton.Text = "File type associations..."
Me.FTAButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText Me.FTAButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText
Me.FTAButton.UseVisualStyleBackColor = False Me.FTAButton.UseVisualStyleBackColor = False
@ -367,7 +375,7 @@ Partial Class RemoteAppCreateClientConnection
Me.Panel1.Location = New System.Drawing.Point(89, 76) Me.Panel1.Location = New System.Drawing.Point(89, 76)
Me.Panel1.Name = "Panel1" Me.Panel1.Name = "Panel1"
Me.Panel1.Size = New System.Drawing.Size(200, 26) Me.Panel1.Size = New System.Drawing.Size(200, 26)
Me.Panel1.TabIndex = 112 Me.Panel1.TabIndex = 9
' '
'PerMachineRadioButton 'PerMachineRadioButton
' '
@ -489,10 +497,10 @@ Partial Class RemoteAppCreateClientConnection
Me.ResetButton.Font = New System.Drawing.Font("Segoe UI", 9.0!) Me.ResetButton.Font = New System.Drawing.Font("Segoe UI", 9.0!)
Me.ResetButton.ImageIndex = 3 Me.ResetButton.ImageIndex = 3
Me.ResetButton.ImageList = Me.SmallerIcons Me.ResetButton.ImageList = Me.SmallerIcons
Me.ResetButton.Location = New System.Drawing.Point(126, 482) Me.ResetButton.Location = New System.Drawing.Point(126, 555)
Me.ResetButton.Name = "ResetButton" Me.ResetButton.Name = "ResetButton"
Me.ResetButton.Size = New System.Drawing.Size(121, 29) Me.ResetButton.Size = New System.Drawing.Size(121, 29)
Me.ResetButton.TabIndex = 6 Me.ResetButton.TabIndex = 7
Me.ResetButton.Text = "Reset to default" Me.ResetButton.Text = "Reset to default"
Me.ResetButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText Me.ResetButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText
Me.ResetButton.UseVisualStyleBackColor = False Me.ResetButton.UseVisualStyleBackColor = False
@ -504,10 +512,10 @@ Partial Class RemoteAppCreateClientConnection
Me.SaveButton.Font = New System.Drawing.Font("Segoe UI", 9.0!) Me.SaveButton.Font = New System.Drawing.Font("Segoe UI", 9.0!)
Me.SaveButton.ImageIndex = 0 Me.SaveButton.ImageIndex = 0
Me.SaveButton.ImageList = Me.SmallerIcons Me.SaveButton.ImageList = Me.SmallerIcons
Me.SaveButton.Location = New System.Drawing.Point(12, 482) Me.SaveButton.Location = New System.Drawing.Point(12, 555)
Me.SaveButton.Name = "SaveButton" Me.SaveButton.Name = "SaveButton"
Me.SaveButton.Size = New System.Drawing.Size(108, 29) Me.SaveButton.Size = New System.Drawing.Size(108, 29)
Me.SaveButton.TabIndex = 5 Me.SaveButton.TabIndex = 6
Me.SaveButton.Text = "Save settings" Me.SaveButton.Text = "Save settings"
Me.SaveButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText Me.SaveButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText
Me.SaveButton.UseVisualStyleBackColor = False Me.SaveButton.UseVisualStyleBackColor = False
@ -530,7 +538,7 @@ Partial Class RemoteAppCreateClientConnection
Me.FTACountLabel.Location = New System.Drawing.Point(154, 29) Me.FTACountLabel.Location = New System.Drawing.Point(154, 29)
Me.FTACountLabel.Name = "FTACountLabel" Me.FTACountLabel.Name = "FTACountLabel"
Me.FTACountLabel.Size = New System.Drawing.Size(52, 15) Me.FTACountLabel.Size = New System.Drawing.Size(52, 15)
Me.FTACountLabel.TabIndex = 2 Me.FTACountLabel.TabIndex = 1
Me.FTACountLabel.Text = "Count: 0" Me.FTACountLabel.Text = "Count: 0"
' '
'DisabledFTACheckBox 'DisabledFTACheckBox
@ -543,6 +551,58 @@ Partial Class RemoteAppCreateClientConnection
Me.DisabledFTACheckBox.Text = "Disabled" Me.DisabledFTACheckBox.Text = "Disabled"
Me.DisabledFTACheckBox.UseVisualStyleBackColor = True Me.DisabledFTACheckBox.UseVisualStyleBackColor = True
' '
'GroupBoxSignRDP
'
Me.GroupBoxSignRDP.Controls.Add(Me.CheckBoxCreateSignedAndUnsigned)
Me.GroupBoxSignRDP.Controls.Add(Me.CertificateComboBox)
Me.GroupBoxSignRDP.Controls.Add(Me.CertificateLabel)
Me.GroupBoxSignRDP.Controls.Add(Me.CheckBoxSignRDPEnabled)
Me.GroupBoxSignRDP.Location = New System.Drawing.Point(12, 477)
Me.GroupBoxSignRDP.Name = "GroupBoxSignRDP"
Me.GroupBoxSignRDP.Size = New System.Drawing.Size(482, 68)
Me.GroupBoxSignRDP.TabIndex = 5
Me.GroupBoxSignRDP.TabStop = False
Me.GroupBoxSignRDP.Text = "Digital Signing"
'
'CheckBoxCreateSignedAndUnsigned
'
Me.CheckBoxCreateSignedAndUnsigned.AutoSize = True
Me.CheckBoxCreateSignedAndUnsigned.Location = New System.Drawing.Point(10, 41)
Me.CheckBoxCreateSignedAndUnsigned.Name = "CheckBoxCreateSignedAndUnsigned"
Me.CheckBoxCreateSignedAndUnsigned.Size = New System.Drawing.Size(175, 19)
Me.CheckBoxCreateSignedAndUnsigned.TabIndex = 1
Me.CheckBoxCreateSignedAndUnsigned.Text = "Create Signed and Unsigned"
Me.CheckBoxCreateSignedAndUnsigned.UseVisualStyleBackColor = True
'
'CertificateComboBox
'
Me.CertificateComboBox.BackColor = System.Drawing.Color.WhiteSmoke
Me.CertificateComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.CertificateComboBox.FormattingEnabled = True
Me.CertificateComboBox.Location = New System.Drawing.Point(282, 25)
Me.CertificateComboBox.Name = "CertificateComboBox"
Me.CertificateComboBox.Size = New System.Drawing.Size(191, 23)
Me.CertificateComboBox.TabIndex = 3
'
'CertificateLabel
'
Me.CertificateLabel.AutoSize = True
Me.CertificateLabel.Location = New System.Drawing.Point(212, 28)
Me.CertificateLabel.Name = "CertificateLabel"
Me.CertificateLabel.Size = New System.Drawing.Size(64, 15)
Me.CertificateLabel.TabIndex = 2
Me.CertificateLabel.Text = "Certificate:"
'
'CheckBoxSignRDPEnabled
'
Me.CheckBoxSignRDPEnabled.AutoSize = True
Me.CheckBoxSignRDPEnabled.Location = New System.Drawing.Point(10, 22)
Me.CheckBoxSignRDPEnabled.Name = "CheckBoxSignRDPEnabled"
Me.CheckBoxSignRDPEnabled.Size = New System.Drawing.Size(93, 19)
Me.CheckBoxSignRDPEnabled.TabIndex = 0
Me.CheckBoxSignRDPEnabled.Text = "Sign RDP file"
Me.CheckBoxSignRDPEnabled.UseVisualStyleBackColor = True
'
'RemoteAppCreateClientConnection 'RemoteAppCreateClientConnection
' '
Me.AcceptButton = Me.CreateButton Me.AcceptButton = Me.CreateButton
@ -550,7 +610,8 @@ Partial Class RemoteAppCreateClientConnection
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.BackColor = System.Drawing.Color.White Me.BackColor = System.Drawing.Color.White
Me.CancelButton = Me.CancelEditButton Me.CancelButton = Me.CancelEditButton
Me.ClientSize = New System.Drawing.Size(507, 523) Me.ClientSize = New System.Drawing.Size(507, 596)
Me.Controls.Add(Me.GroupBoxSignRDP)
Me.Controls.Add(Me.FileTypesGroupBox) Me.Controls.Add(Me.FileTypesGroupBox)
Me.Controls.Add(Me.MSIGroupBox) Me.Controls.Add(Me.MSIGroupBox)
Me.Controls.Add(Me.ClientConnectionGroupBox) Me.Controls.Add(Me.ClientConnectionGroupBox)
@ -579,6 +640,8 @@ Partial Class RemoteAppCreateClientConnection
Me.Panel1.PerformLayout() Me.Panel1.PerformLayout()
Me.FileTypesGroupBox.ResumeLayout(False) Me.FileTypesGroupBox.ResumeLayout(False)
Me.FileTypesGroupBox.PerformLayout() Me.FileTypesGroupBox.PerformLayout()
Me.GroupBoxSignRDP.ResumeLayout(False)
Me.GroupBoxSignRDP.PerformLayout()
Me.ResumeLayout(False) Me.ResumeLayout(False)
End Sub End Sub
@ -625,4 +688,9 @@ Partial Class RemoteAppCreateClientConnection
Friend WithEvents FileTypesGroupBox As System.Windows.Forms.GroupBox Friend WithEvents FileTypesGroupBox As System.Windows.Forms.GroupBox
Friend WithEvents DisabledFTACheckBox As System.Windows.Forms.CheckBox Friend WithEvents DisabledFTACheckBox As System.Windows.Forms.CheckBox
Friend WithEvents FTACountLabel As System.Windows.Forms.Label Friend WithEvents FTACountLabel As System.Windows.Forms.Label
Friend WithEvents GroupBoxSignRDP As GroupBox
Friend WithEvents CheckBoxSignRDPEnabled As CheckBox
Friend WithEvents CertificateComboBox As ComboBox
Friend WithEvents CertificateLabel As Label
Friend WithEvents CheckBoxCreateSignedAndUnsigned As CheckBox
End Class End Class

View File

@ -124,152 +124,152 @@
<value> <value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD2 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADW
IQAAAk1TRnQBSQFMAgEBBwEAAdABAQHQAQEBEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA IQAAAk1TRnQBSQFMAgEBBwEAAQgBAgEIAQIBEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABIAMAAQEBAAEgBgABIF4AAyABLwMjATMDIwEzAyMBMwMjATMDIwEzAyMBMwMjATMDIwEzAxkBIysA AwABIAMAAQEBAAEgBgABIF4AAyABLwMjATMDIwEzAyMBMwMjATMDIwEzAyMBMwMjATMDIwEzAxkBIysA
AQEDQgF0A1gBwQNYAe8DWAHvA1gBwQNCAXQDAAEBUAADKgFBAwYBCBgAAwYBCAMqAUEUAAMIAQsBagFh AQEDQgF0A1gBwQNYAe8DWAHvA1gBwQNCAXQDAAEBUAADKgFBAwYBCBgAAwYBCAMqAUEUAAMIAQsBYQFd
AVQB8AG2AYQBPgH/AbUBgwE6Af8BtgGCATkB/wG2AYIBOQH/AbYBggE5Af8BtgGCATkB/wG1AYMBOgH/ AVQB8AG2AYQBNwH/AbUBgwEzAf8BtgGCATIB/wG2AYIBMgH/AbYBggEyAf8BtgGCATIB/wG1AYMBMwH/
AbYBhAE+Af8CWgFYAcAnAAEBA1oBwAOLAf8BuQK6Af8D3AH/A9kB/wO1Af8BhgKHAf8DWgHAAwABAUgA AbYBhAE3Af8CWgFYAcAnAAEBA1oBwAOLAf8BuQK6Af8D3AH/A9kB/wO1Af8BhgKHAf8DWgHAAwABAUgA
AyoBQQFAAT0B8gH/AkABwQH9AwYBCBAAAwYBCAIrAbUB/AEiASAB6gH/AyoBQRAAAykBPwG2AYQBPiH/ AyoBQQE5ATYB8gH/AkABuAH9AwYBCBAAAwYBCAIrAaYB/AEbARkB6gH/AyoBQRAAAykBPwG2AYQBNyH/
AbYBhAE+Af8YAAG5Ar8B/wG5Ar8B/wGyArcB/wGLAY0BjgH/AY0BjgGNAf8BxQHgAcsB/wHOAeMB0gH/ AbYBhAE3Af8YAAG5Ar8B/wG5Ar8B/wGyArcB/wGLAY0BjgH/AY0BjgGNAf8BxQHgAcsB/wHOAeMB0gH/
Ae4C7wH/AewB7QHsAf8B6gLpAf8D5wH/A4cB/wNCAXREAAMqAUEBSQFHAfUB/wFUAVIB+gH/AUkBRgH2 Ae4C7wH/AewB7QHsAf8B6gLpAf8D5wH/A4cB/wNCAXREAAMqAUEBQgFAAfUB/wFNAUsB+gH/AUIBPwH2
Af8BMgExAbkB/AMGAQgIAAMGAQgCKwG2AfwBMgEwAfEB/wE9ATsB9gH/ASIBIAHqAf8DKgFBDAADJwE7 Af8CKwGrAfwDBgEICAADBgEIAisBpwH8ASsBKQHxAf8BNgE0AfYB/wEbARkB6gH/AyoBQQwAAycBOwG1
AbUBgwE6Bf8BAAExAfIB/wEDAVcB8wH/ARYBmgH2Af8BGgGmAfgB/wEJAWYB9AH/AQABLAHyBf8BtQGD AYMBMwX/AQABKgHyAf8BAAFQAfMB/wEPAZoB9gH/ARMBpgH4Af8BAgFfAfQB/wEAASUB8gX/AbUBgwEz
AToB/xgAA0cBggPYAf8BzQHUAdUB/wFvAXABcQH/A8MB/wFdAbkBbAH/AQABjgEUAf8B3QHrAeAB/wPx Af8YAANHAYID2AH/Ac0B1AHVAf8BaAFpAWoB/wPDAf8BVgG5AWUB/wEAAY4BDQH/Ad0B6wHgAf8D8QH/
Af8B1wHlAdoB/wHfAecB4QH/ArcBuAH/A1gBwUQAAx4BKwFMAUkB9gH/AVYBUwH6Af8BYgFhAv8BSgFH AdcB5QHaAf8B3wHnAeEB/wK3AbgB/wNYAcFEAAMeASsBRQFCAfYB/wFPAUwB+gH/AVsBWgL/AUMBQAH2
AfYB/wEyATEBuQH8AwYBCAMGAQgCKwG3AfwBOAE2AfIB/wFUAVMC/wE7ATkB9AH/ASABHgHpAf8DHgEr Af8CKwGrAfwDBgEIAwYBCAIrAakB/AExAS8B8gH/AU0BTAL/ATQBMgH0Af8BGQEXAekB/wMeASsMAAMk
DAADJAE2AbYBgwE6Bf8BHAFDAfIB/wEmAWoB8gH/AR8BkwH0Af8BIwGaAfQB/wEWAWgB8QH/AQABLwHw ATYBtgGDATMF/wEVATwB8gH/AR8BYwHyAf8BGAGTAfQB/wEcAZoB9AH/AQ8BYQHxAf8BAAEoAfAF/wG2
Bf8BtgGDATkB/wMjATMDIwEzAxkBIxAAAyQBNgNHAYIDUQH/A+wB/wP7Af8BEwGYASkB/wFIAbABWQH/ AYMBMgH/AyMBMwMjATMDGQEjEAADJAE2A0cBggNKAf8D7AH/A/sB/wEMAZgBIgH/AUEBsAFSAf8D9QH/
A/UB/wEAAZABGAH/AVABsQFgAf8B3gHfAd4B/wNYAe9IAAMeASsBTAFKAfYB/wFXAVQB+gH/AWUBYgL/ AQABkAERAf8BSQGxAVkB/wHeAd8B3gH/A1gB70gAAx4BKwFFAUMB9gH/AVABTQH6Af8BXgFbAv8BRAFC
AUsBSQH2Af8BMwEyAbkB/AJAAcAB/QFBAT4B9AH/AVkBWAL/AUEBPwH1Af8BJwElAesB/wMeASsIAAMZ AfYB/wEsASsBqwH8AkABuAH9AToBNwH0Af8BUgFRAv8BOgE4AfUB/wEgAR4B6wH/Ax4BKwgAAxkEIwEz
BCMBMwMxAU8BtgGDAToD/wH8Af8BEAEwAfAB/wFCAXAB8gH/AUMBkwH0Af8BKAGDAfIB/wEMAU4B8AH/ AzEBTwG2AYMBMwP/AfwB/wEJASkB8AH/ATsBaQHyAf8BPAGTAfQB/wEhAYMB8gH/AQUBRwHwAf8BAAEd
AQABJAHwA/8B+wH/AbUBgAE2Af8BtQGDAT0B/wG2AYQBPwH/AloBWAHAA0gBhgG+AsQB/wG8AsEB/wG5 AfAD/wH7Af8BtQGAAS8B/wG1AYMBNgH/AbYBhAE4Af8CWgFYAcADSAGGAb4CxAH/AbwCwQH/AbkBvQG+
Ab0BvgH/AbcBugG7Af8BtAK4Af8DUgH/A+4B/wFiAb0BcAH/AQkBlAEgAf8B5QHxAeYB/wEAAZABFwH/ Af8BtwG6AbsB/wG0ArgB/wNLAf8D7gH/AVsBvQFpAf8BAgGUARkB/wHlAfEB5gH/AQABkAEQAf8BEAGa
ARcBmgEtAf8B6QHvAeoB/wPiAf8DWAHvTAADHgErAU0BSwH2Af8BWAFVAfoB/wFlAWMC/wFkAWEC/wFh ASYB/wHpAe8B6gH/A+IB/wNYAe9MAAMeASsBRgFEAfYB/wFRAU4B+gH/AV4BXAL/AV0BWgL/AVoBWAL/
AV8C/wFfAV0C/wFIAUYB9wH/ATABLgHuAf8DHgErDAACWgFYAcABtQGFAUAB/wG1AYQBPwH/AbUBggE3 AVgBVgL/AUEBPwH3Af8BKQEnAe4B/wMeASsMAAJaAVgBwAG1AYUBOQH/AbUBhAE4Af8BtQGCATAD/wH7
A/8B+wH/AQEBFQHuAf8BMQFTAfAB/wFOAYUB8wH/AWUBlQH0Af8BgwGaAfYB/wGAAY0B+QP/AfkB/wG1 Af8BAAEOAe4B/wEqAUwB8AH/AUcBhQHzAf8BXgGVAfQB/wGDAZoB9gH/AYABjQH5A/8B+QH/AbUBZgEq
AW0BMQn/AbYBhAE+Af8BygHSAdMB/wHJAdIB0wH/AckB0AHTAf8ByAHRAdIB/wHHAdAB0QH/AcYB0AHR Cf8BtgGEATcB/wHKAdIB0wH/AckB0gHTAf8ByQHQAdMB/wHIAdEB0gH/AccB0AHRAf8BxgHQAdEB/wFo
Af8BbwJyAf8DxgH/Ac8B6QHUAf8B5gH0AekB/wH9Av4B/wHLAeYBzwH/AQABjQESAf8BVAG1AWQB/wHA AmsB/wPGAf8BzwHpAdQB/wHmAfQB6QH/Af0C/gH/AcsB5gHPAf8BAAGNAQsB/wFNAbUBXQH/AcABwQHA
AcEBwAH/A1gBwVAAAx4BKwFOAUwB9wH/AWoBZwL/AUoBRwL/AUgBRQL/AWMBYQL/ATkBNwHwAf8DHgEr Af8DWAHBUAADHgErAUcBRQH3Af8BYwFgAv8BQwFAAv8BQQE+Av8BXAFaAv8BMgEwAfAB/wMeASsQAAG1
EAABtQGEAT8F/wH2AfAB6QH/AbIBcAE0A/8B/QH/AgAB7AH/AR4BMQHtAf8BOgFRAfAB/wFNAWQB8gH/ AYQBOAX/AfYB8AHpAf8BsgFpAS0D/wH9Af8CAAHsAf8BFwEqAe0B/wEzAUoB8AH/AUYBXQHyAf8BVgFl
AV0BbAH0Af8BYwFmAfYD/wH8Af8BvAFtATEB/wEAAa4BgAX/AbYBggE8Af8BygHSAdQB/wGsAq8B/wGG AfQB/wFcAV8B9gP/AfwB/wG8AWYBKgH/AQABrgGABf8BtgGCATUB/wHKAdIB1AH/AawCrwH/AYYCAAH/
AgAB/wGLAgAB/wGHAgAB/wGLAgAB/wGGAh0B/wOQAf8B8gH5AfMJ/wH+Af8B/gH/AcsB5wHRAf8BqwHR AYsCAAH/AYcCAAH/AYsCAAH/AYYCFgH/A5AB/wHyAfkB8wn/Af4B/wH+Af8BywHnAdEB/wGrAdEBsgH/
AbIB/wOPAf8DQgF0UAADBgEIAUoBSQHKAf0BbgFqAv8BTwFMAv8BTAFJAv8BZwFlAv8CQAHDAf0DBgEI A48B/wNCAXRQAAMGAQgBQwFCAbsB/QFnAWMC/wFIAUUC/wFFAUIC/wFgAV4C/wJAAbkB/QMGAQgQAAG0
EAABtAGCATwF/wHnAZsBJgH/AbEBcAE3Bf8CAAHtAf8CAAHuAf8BGAEfAfAB/wEuATYB8gH/AUEBQwH1 AYIBNQX/AecBmwEfAf8BsQFpATAF/wIAAe0B/wIAAe4B/wERARgB8AH/AScBLwHyAf8BOgE8AfUB/wFI
Af8BTwFOAfcF/wHAAW4BNAH/AQABrQGBBf8BtgGCATwB/wHMAdMB1QH/AaoBrAGtAf8BmwEcARIB/wGc AUcB9wX/AcABZwEtAf8BAAGtAYEF/wG2AYIBNQH/AcwB0wHVAf8BqgGsAa0B/wGbARUBCwH/AZwBGQEN
ASABFAH/AZsBCAEAAf8BqAEIAQAB/wGyAQoBAAH/AZwBcgFtAf8DkAH/A8YB/wPuAf8D7gH/A8YB/wOQ Af8BmwEBAQAB/wGoAQEBAAH/AbIBAwEAAf8BnAFrAWYB/wOQAf8DxgH/A+4B/wPuAf8DxgH/A5AB/wNa
Af8DWgHAAwABAUwAAwYBCAFXAVMBvQH8AWEBXgH7Af8BgAFvAv8BbwFsAv8BbQFqAv8BagFoAv8BTwFN AcADAAEBTAADBgEIAUsBRQGvAfwBWgFXAfsB/wGAAWgC/wFoAWUC/wFmAWMC/wFjAWEC/wFIAUYB9wH/
AfcB/wE1ATMBuQH8AwYBCAwAAbMBggE9Bf8B5gGeAS8B/wGvAYABPQP/AfYD/wHtA/8B6wP/AeoD/wHq AS4BLAGrAfwDBgEIDAABswGCATYF/wHmAZ4BKAH/Aa8BgAE2A/8B9gP/Ae0D/wHrA/8B6gP/AeoD/wHq
A/8B6gP/AewD/wHzAf8BwgFuATUB/wEAAasBbwX/AbYBggE8Af8BzAHTAdUB/wGoAqoB/wGlATQBKgH/ A/8B7AP/AfMB/wHCAWcBLgH/AQABqwFoBf8BtgGCATUB/wHMAdMB1QH/AagCqgH/AaUBLQEjAf8BnwEY
AZ8BHwEUAf8BowEHAQAB/wGyAQoBAAH/AcABEAEAAf8B3wFqAVgB/wG3AYoBggH/AYgBZgFiAf8BWAFS AQ0B/wGjAgAB/wGyAQMBAAH/AcABCQEAAf8B3wFjAVEB/wG3AYoBggH/AYgBXwFbAf8BUQFLAUoB/wFQ
AVEB/wFXAVEBTwH/AXECdAH/AY8CkAH/AwABAUwAAwYBCAFfAVwBvwH8AWgBZQH9Af8BhgGCAv8BZwFk AUoBSAH/AWoCbQH/AY8CkAH/AwABAUwAAwYBCAFYAVUBsQH8AWEBXgH9Af8BhgGCAv8BYAFdAfwB/wFO
AfwB/wFVAVMB+AH/AVEBTgH3Af8BXgFbAfoB/wFsAWoC/wFRAU4B9wH/ATUBNAG5AfwDBgEICAABswGC AUwB+AH/AUoBRwH3Af8BVwFUAfoB/wFlAWMC/wFKAUcB9wH/AS4BLQGrAfwDBgEICAABswGCATYF/wHy
AT0F/wHyAaEBIgH/Ab0BiwFGAf8BrwGAAT8B/wGvAXABOQH/AbABbwE3Af8BrwFuATUB/wGxAW4BMwH/ AaEBGwH/Ab0BiwE/Af8BrwGAATgB/wGvAWkBMgH/AbABaAEwAf8BrwFnAS4B/wGxAWcBLAH/AbcBaQEv
AbcBcAE2Af8BvQFwATYB/wHBAW8BNgH/AaYBnwFjAf8BZgHTAb0F/wG1AYIBPAH/Ac4B1AHVAf8BogKk Af8BvQFpAS8B/wHBAWgBLwH/AaYBnwFcAf8BXwHTAb0F/wG1AYIBNQH/Ac4B1AHVAf8BogKkAf8BrAE0
Af8BrAE7ATIB/wGhARIBBQH/Aa0BBgEAAf8BvgENAQAB/wHPAR0BAwH/AfABmgGLAf8B9wG0AagB/wH5 ASsB/wGhAQsBAAH/Aa0CAAH/Ab4BBgEAAf8BzwEWAQAB/wHwAZoBiwH/AfcBtAGoAf8B+QGuAZ4B/wH+
Aa4BngH/Af4BtQGnAf8B+AGlAZIB/wHCAc4BzwH/AaoCrAH/TAADBgEIAVcBVAHSAf0BbgFrAf4B/wGK AbUBpwH/AfgBpQGSAf8BwgHOAc8B/wGqAqwB/0wAAwYBCAFPAU0BvgH9AWcBZAH+Af8BigGHAv8BZgFj
AYcC/wFtAWoB/QH/AV0BWgH7Af8DHgErAx4BKwFSAU8B+AH/AV8BXQH6Af8BbgFrAv8BUgFQAfcB/wE2 Af0B/wFWAVMB+wH/Ax4BKwMeASsBSwFIAfgB/wFYAVYB+gH/AWcBZAL/AUsBSQH3Af8BLwEtAawB/AME
ATQBugH8AwQBBQQAAbMBggE9Bf8B8QGXAQ0B/wH4AbIBQwH/Af0BwQFjAf8B/gHKAYIB/wH+Ac4BigH/ AQUEAAGzAYIBNgX/AfEBlwEGAf8B+AGyATwB/wH9AcEBXAH/Af4BygGCAf8B/gHOAYoB/wH9AcsBhQX/
Af0BywGFBf8BvAFwATkB/wEeAcABoAH/AT4ByAGqAf8BVAHJAa8B/wFcAcoBsAX/AbUBgQE7Af8BzQHU AbwBaQEyAf8BFwHAAaAB/wE3AcgBqgH/AU0ByQGvAf8BVQHKAbAF/wG1AYEBNAH/Ac0B1AHWAf8BoQKj
AdYB/wGhAqMB/wGoASIBGAH/AasBCgEAAf8BwgEQAQAB/wHVAQ8BAAH/AeoBNwEaAf8B/gHBAbQC/wHK Af8BqAEbAREB/wGrAQMBAAH/AcIBCQEAAf8B1QEIAQAB/wHqATABEwH/Af4BwQG0Av8BygG9Av8ByQG4
Ab0C/wHJAbgC/wHPAcAB/wH8Ab8BqwH/AcMBzgHPAf8BrAGuAa8B/0wAAxYBHwFrAWgC/wGBAW8C/wGB Av8BzwHAAf8B/AG/AasB/wHDAc4BzwH/AawBrgGvAf9MAAMWAR8BZAFhAv8BgQFoAv8BgQFoAf4B/wFe
AW8B/gH/AWUBYgH9Af8DHgErCAADHgErAVMBUAH4Af8BYAFeAfsB/wFvAW0C/wFTAVAB+AH/A0ABbwMB AVsB/QH/Ax4BKwgAAx4BKwFMAUkB+AH/AVkBVwH7Af8BaAFmAv8BTAFJAfgB/wNAAW8DAQECAbMBgwE2
AQIBswGDAT0F/wHsAYoBAAH/AfEBoQEnAf8B9QGxAUYB/wH2AbkBVwH/AfcBvwFjAf8B9gG/AWMF/wG6 Bf8B7AGKAQAB/wHxAaEBIAH/AfUBsQE/Af8B9gG5AVAB/wH3Ab8BXAH/AfYBvwFcBf8BugFmAS4B/wEA
AW0BNQH/AQUBrwGLAf8BJQG2AZMB/wE6AboBnQH/AUoBwQGlBf8BtQGCATwB/wHOAdQB1gH/AaACoQH/ Aa8BiwH/AR4BtgGTAf8BMwG6AZ0B/wFDAcEBpQX/AbUBggE1Af8BzgHUAdYB/wGgAqEB/wGoAgAB/wG5
AagBBQEAAf8BuQEJAQAB/wHQARgBAAH/AeIBDgEAAf8B+AFhAUwC/wHmAeAC/wHgAdgC/wHlAdwC/wHr AQIBAAH/AdABEQEAAf8B4gEHAQAB/wH4AVoBRQL/AeYB4AL/AeAB2AL/AeUB3AL/AesB4gH/Af0B1QHI
AeIB/wH9AdUByAH/AcQBzgHQAf8BrwKyAf9QAAMWAR8BawFoAv8BagFnAf4B/wMeASsQAAMeASsBVQFS Af8BxAHOAdAB/wGvArIB/1AAAxYBHwFkAWEC/wFjAWAB/gH/Ax4BKxAAAx4BKwFOAUsB+AH/AVQBUgH5
AfgB/wFbAVkB+QH/AVMBUgFTAagDHQEpBAABtAGDAT4F/wHpAW4BAAH/Ae0BjwEAAf8B7wGeAR0B/wHx Af8BUwFSAVMBqAMdASkEAAG0AYMBNwX/AekBZwEAAf8B7QGPAQAB/wHvAZ4BFgH/AfEBqAEsAf8B8wGv
AagBMwH/AfMBrwFCAf8B9AG1AU8F/wG0AW0BNQP/AfsD/wH2A/8B8wP/AfID/wH4Af8BtQGEAUAB/wHO ATsB/wH0AbUBSAX/AbQBZgEuA/8B+wP/AfYD/wHzA/8B8gP/AfgB/wG1AYQBOQH/Ac4B1AHWAf8BoAKh
AdQB1gH/AaACoQH/Aa0CAAH/AcQBAwEAAf8B2gEGAQAB/wHyAQoBAAL/AYgBYAL/AdQBvgL/AcYBqgL/ Af8BrQIAAf8BxAIAAf8B2gIAAf8B8gEDAQAC/wGIAVkC/wHUAb4C/wHGAaoC/wHEAaYC/wHAAZ8B/wH7
AcQBpgL/AcABnwH/AfsBrwGNAf8BxQHOAdAB/wGxAbQBtQH/VAADFgEfAx4BKxgAAx4BKwNAAW8DKQE+ Aa8BjQH/AcUBzgHQAf8BsQG0AbUB/1QAAxYBHwMeASsYAAMeASsDQAFvAykBPggAAbUBhQE6A/8B/AP/
CAABtQGFAUED/wH8A/8B/Qf/Af4D/wH8A/8B+gP/AfcD/wH5Af8BtAGCATwB/wG2AYQBPwH/AbYBgwE9 Af0H/wH+A/8B/AP/AfoD/wH3A/8B+QH/AbQBggE1Af8BtgGEATgB/wG2AYMBNgH/AbUBggE2Af8BtQGD
Af8BtQGCAT0B/wG1AYMBPQH/AbUBhAFAAf8DVQGwAc4B1AHWAf8BoAKhAf8BoAKhAf8BoAKhAf8BoQGi ATYB/wG1AYQBOQH/A1UBsAHOAdQB1gH/AaACoQH/AaACoQH/AaACoQH/AaEBogGjAf8BowKlAf8BpQKn
AaMB/wGjAqUB/wGlAqcB/wGsAq8B/wGvArEB/wGxAbQBtQH/AbQCuAH/AbYBuwG8Af8BxQHPAdEB/wGz Af8BrAKvAf8BrwKxAf8BsQG0AbUB/wG0ArgB/wG2AbsBvAH/AcUBzwHRAf8BswG3AbgB/3gAAwcBCgwA
AbcBuAH/eAADBwEKDAABaAFiAVgB7wG1AYUBQQH/AbMBgwE/Af8BswGDAT8B/wGzAYMBPwH/AbMBgwE+ AmIBWAHvAbUBhQE6Af8BswGDATgB/wGzAYMBOAH/AbMBgwE4Af8BswGDATcB/wGzAYMBNwH/AbMBgwE3
Af8BswGDAT4B/wGzAYMBPgH/AbUBhAFAAf8CZAFcAecYAANDAXgBzgHUAdYB/wHOAdQB1gH/Ac4B1AHW Af8BtQGEATkB/wJkAVwB5xgAA0MBeAHOAdQB1gH/Ac4B1AHWAf8BzgHUAdYB/wHNAdQB1gH/Ac0B0wHV
Af8BzQHUAdYB/wHNAdMB1QH/Ac0B0wHVAf8BygHSAdQB/wHKAdIB0wH/AckB0QHTAf8ByAHRAdIB/wHH Af8BzQHTAdUB/wHKAdIB1AH/AcoB0gHTAf8ByQHRAdMB/wHIAdEB0gH/AccB0AHRAf8BxgHPAdEB/wNO
AdAB0QH/AcYBzwHRAf8DTgGVTAADHwEtAzABSwMvAUoDLwFKAy8BSQMyAVEDNgFZAzYBWQM2AVkDNgFZ AZVMAAMfAS0DMAFLAy8BSgMvAUoDLwFJAzIBUQM2AVkDNgFZAzYBWQM2AVkDNgFZAzUBVwMxAU4DJgE5
AzYBWQM1AVcDMQFOAyYBOQsAAf8DAAH/AwAB/wsAAf8DAAH/AwAB/wMAAf8DAAH/GAADFAEcAyABLgMg CwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/wMAAf8YAAMUARwDIAEuAyABLgMgAS4BGwEeASoB/wNZ
AS4DIAEuASIBJQExAf8DWQHHA0IBdAM3AVsDNQFYAzMBUgMvAUoDKwFCAyABLgMUARxIAANSAaQE/wH1 AccDQgF0AzcBWwM1AVgDMwFSAy8BSgMrAUIDIAEuAxQBHEgAA1IBpAT/AfUB9AHzAf8B9gH1AfQF/wE9
AfQB8wH/AfYB9QH0Bf8BRAFDAUUB/wEbARoBHQX/AfsC+gH/AvsB+gH/AfsC+gX/ApYBlwH/A1oB2AgA ATwBPgH/ARQBEwEWBf8B+wL6Af8C+wH6Af8B+wL6Bf8ClgGXAf8DWgHYCAADhgH/A8AB/wMAAf8DAAH/
A4YB/wPAAf8DAAH/AwAB/wOGCf8DwAH/AQAD/wEAAf8BAAH/AwAB/xgAAeIBuAGZAf8B4gG5AZgB/wHi A4YJ/wPAAf8BAAP/AQAB/wEAAf8DAAH/GAAB4gG4AZkB/wHiAbkBmAH/AeIBuAGZAf8BSAFXAZ0B/wFA
AbgBmQH/AU8BXgGdAf8BRwFXAZIB/wFDAVIBkgH/ATIBVQGeAf8BygGsAZgB/wHiAbgBmAH/AeIBuQGZ AVABkgH/ATwBSwGSAf8BKwFOAZ4B/wHKAawBmAH/AeIBuAGYAf8B4gG5AZkB/wHiAbkBmAH/AeIBuAGY
Af8B4gG5AZgB/wHiAbgBmAH/GAADDAEQA0QBewJdAVoBygFiAVkBQAH1AWIBXgE2AfYCXAFZAcwDRQF9 Af8YAAMMARADRAF7Al0BWgHKAlkBQgH1AWIBXgFBAfYCXAFZAcwDRQF9Aw0BERQAA1ABngH7AfoB+QH/
Aw0BERQAA1ABngH7AfoB+QH/Ae4C7QH/AfAB7wHuAf8B/gH9AfwB/wFDAUIBRAH/ARoBGQEbAf8C8AHv Ae4C7QH/AfAB7wHuAf8B/gH9AfwB/wE8ATsBPQH/ARMBEgEUAf8C8AHvAf8C6AHnAf8C6AHnAf8C6AHn
Af8C6AHnAf8C6AHnAf8C6AHnAf8B9QH0AfMB/wGPAY4BjwH/A1oB5AgAA4YB/wPAAf8DAAH/A4YB/wPA Af8B9QH0AfMB/wGPAY4BjwH/A1oB5AgAA4YB/wPAAf8DAAH/A4YB/wPAAf8DwAX/A8AB/wEAAf8BAAH/
Af8DwAX/A8AB/wEAAf8BAAH/A8AB/wPAAf8DAAH/FAAB4wG7AZsB/wH4AeABvgH/AfgB4AG+Af8BmwGf A8AB/wPAAf8DAAH/FAAB4wG7AZsB/wH4AeABvgH/AfgB4AG+Af8BmwGfAa4B/wFUAWYBqQH/AUIBXgGg
Aa4B/wFbAW0BqQH/AUkBZQGgAf8BAAFcAbAB/wEAAWUBvwH/AfgB4QG+Af8B+AHgAb8B/wH4AeEBvgH/ Af8BAAFVAbAB/wEAAV4BvwH/AfgB4QG+Af8B+AHgAb8B/wH4AeEBvgH/AeMBugGaAf8UAAM0AVQCXQFO
AeMBugGaAf8UAAM0AVQCXQFNAfABgAFWAQEB/wGAAVYBAQH/AYABVgEBAf8BgAFWAQEB/wGAAVYBAQH/ AfABgAFPAQAB/wGAAU8BAAH/AYABTwEAAf8BgAFPAQAB/wGAAU8BAAH/Al8BTAHzAlgBVgHBAyEBMBAA
AWQBXwFKAfMCWAFWAcEDIQEwEAADUAGeAfsC+gH/Ae8B7gHtAf8C8AHvAf8B/gH9AfwB/wGGAYQBhQH/ A1ABngH7AvoB/wHvAe4B7QH/AvAB7wH/Af4B/QH8Af8BhgGEAYUB/wEgAR8BIAH/AvUB9AH/Au0B7AH/
AScBJgEnAf8C9QH0Af8C7QHsAf8C7QHsAf8B7gHtAewB/wL6AfkB/wGUAZMBlAH/A1sB4QgAA4YB/wPA Au0B7AH/Ae4B7QHsAf8C+gH5Af8BlAGTAZQB/wNbAeEIAAOGAf8DwAH/AwAB/wOGAf8DwAH/A8AB/wPA
Af8DAAH/A4YB/wPAAf8DwAH/A8AB/wMAAf8BAAH/AQAD/wEAA/8BAAH/AwAB/xQAAeQBvQGcAf8B+AHh Af8DAAH/AQAB/wEAA/8BAAP/AQAB/wMAAf8UAAHkAb0BnAH/AfgB4QG/Af8B8wHWAbIB/wHCAbgBrgH/
Ab8B/wHzAdYBsgH/AcIBuAGuAf8BSAFoAawB/wEaAcAB+AH/AQABlwHXAf8BAAFnAdQB/wEAAWcBwQH/ AUEBYQGsAf8BEwHAAfgB/wEAAZcB1wH/AQABYAHUAf8BAAFgAcEB/wHzAdYBsgH/AfgB4QG/Af8B5AG9
AfMB1gGyAf8B+AHhAb8B/wHkAb0BnQH/EAADNAFUAYQBWQECAf8BhwFcAQMB/wGHAVwBAwH/AYcBXAED AZ0B/xAAAzQBVAGEAVIBAAH/AYcBVQEAAf8BhwFVAQAB/wGHAVUBAAH/AYcBVQEAAf8BfwFrARIB/gJd
Af8BhwFcAQMB/wF/AWsBEgH+AWEBXQFOAfACWgFXAcUDSwGOAjUBNAFVAwoBDQwAA1ABngH9AfwB+wH/ AU4B8AJaAVcBxQNLAY4CNQE0AVUDCgENDAADUAGeAf0B/AH7Af8C8AHvAf8B8gLxAf8B/gL9Af8BkgGQ
AvAB7wH/AfIC8QH/Af4C/QH/AZIBkAGRAf8BGQEXARgB/wGsAasBqgH/AawBqwGqAf8BrAGrAaoB/wGq AZEB/wESARABEQH/AawBqwGqAf8BrAGrAaoB/wGsAasBqgH/AaoCqQH/Aa0BrAGrAf8BKgEoASkB/wNb
AqkB/wGtAawBqwH/ATEBLwEwAf8DWwHhCAADhgH/A8AB/wMAAf8DhgH/A8AB/wPAA/8BAAH/AwAB/wMA AeEIAAOGAf8DwAH/AwAB/wOGAf8DwAH/A8AD/wEAAf8DAAH/AwAB/wPAAf8DwAH/AwAB/xQAAeYBwAGf
Af8DwAH/A8AB/wMAAf8UAAHmAcABnwH/AfgB4gHBAf8B2QG+AZ0B/wHZAb4BngH/AZYBpwGrAf8BAAFj Af8B+AHiAcEB/wHZAb4BnQH/AdkBvgGeAf8BlgGnAasB/wEAAVwBxAH/AQ4B0wL/AQABswHuAf8BAAFg
AcQB/wEVAdMC/wEAAbMB7gH/AQABZwHUAf8BAAFpAcIB/wH4AeEBwAH/AeYBwAGfAf8MAAMNARIBYQFd AdQB/wEAAWIBwgH/AfgB4QHAAf8B5gHAAZ8B/wwAAw0BEgJdAU4B8AGQAVwBAAH/AZABXAEAAf8BkAFc
AU4B8AGQAWMBBgH/AZABYwEGAf8BkAFjAQYB/wGZAWoBBgH/AZYBaAEEAf8BZgFgAVkB6wJZAVYBvgNI AQAB/wGZAWMBAAH/AZYBYQEAAf8CYAFZAesCWQFWAb4DSAGGAjEBMAFNAxQBHAMBAQIMAANQAZ4B/gL9
AYYCMQEwAU0DFAEcAwEBAgwAA1ABngH+Av0B/wHyAfEB8AH/AvMB8gL/Av4B/wGdApwB/wEQAg4B/wEd Af8B8gHxAfAB/wLzAfIC/wL+Af8BnQKcAf8BCQIHAf8BFgEUARMB/wEYARUBFAH/ARgCFQH/ARUCEwH/
ARsBGgH/AR8BHAEbAf8BHwIcAf8BHAIaAf8BFAISAf8BBgEEAQYB/wNbAeEIAAOGBf8DAAH/A4YD/wEA AQ0CCwH/AwAB/wNbAeEIAAOGBf8DAAH/A4YD/wEAAf8DwAP/AQAB/wEAB/8DwAH/A8AB/wMAAf8DAAH/
Af8DwAP/AQAB/wEAB/8DwAH/A8AB/wMAAf8DAAH/AwAB/wwAAecBwwGiAf8B+AHjAcIB/wH2Ad0BugH/ AwAB/wwAAecBwwGiAf8B+AHjAcIB/wH2Ad0BugH/AfgB4wHDAf8B+AHjAcIB/wG2AcUBwwH/AQABXAHE
AfgB4wHDAf8B+AHjAcIB/wG2AcUBwwH/AQABYwHEAf8BFQHTAv8BFgHGAfYB/wEAAWcB1AH/AQABbQHK Af8BDgHTAv8BDwHGAfYB/wEAAWAB1AH/AQABZgHKAf8B6AHDAaIB/wMAAQEIAANFAX0BmQFjAQAB/wGZ
Af8B6AHDAaIB/wMAAQEIAANFAX0BmQFqAQcB/wGZAWsBCAH/AZoBawEIAf8BbgFkAVEB8QM7AWMDDQER AWQBAQH/AZoBZAEBAf8CZAFTAfEDOwFjAw0BEQMKAQ0DJAE1AysBQgMQARYDAAEBEAADUAGeAv8B/gH/
AwoBDQMkATUDKwFCAxABFgMAAQEQAANQAZ4C/wH+Af8B8wLyAf8C9AHzA/8B/gH/AaMCogH/ARsBGAEX AfMC8gH/AvQB8wP/Af4B/wGjAqIB/wEUAREBEAH/ATwBOgE4Af8BzwHOAc0B/wHHAcUBxAH/AakBpwGm
Af8BQwFBAT8B/wHPAc4BzQH/AccBxQHEAf8BqQGnAaYB/wGdAZsBmgH/AYsBiQGKAf8DWwHhCAADhgX/ Af8BnQGbAZoB/wGLAYkBigH/A1sB4QgAA4YF/wMAAf8DwAH/A4YD/wEAA/8BAAH/AQAL/wMAAf8DwAH/
AwAB/wPAAf8DhgP/AQAD/wEAAf8BAAv/AwAB/wPAAf8DwAH/A8AB/wMAAf8IAAHqAcYBpAH/AfgB5AHE A8AB/wPAAf8DAAH/CAAB6gHGAaQB/wH4AeQBxAH/AdwBwgGkAf8B3AHEAaYB/wHcAcQBpgH/AdwBxQGm
Af8B3AHCAaQB/wHcAcQBpgH/AdwBxAGmAf8B3AHFAaYB/wGhAa4BrwH/AQABYwHEAf8BmAHsAv8BFgHG Af8BoQGuAa8B/wEAAVwBxAH/AZgB7AL/AQ8BxgH2Af8BAAFgAdQB/wJoAV8B/wMoATwIAAJcAVoBzQGj
AfYB/wEAAWcB1AH/Am8BZgH/AygBPAgAAlwBWgHNAaMBggELAf8BowGCAQsB/wGlAYMBCgH/AzsBYxAA AYIBBAH/AaMBggEEAf8BpQGDAQMB/wM7AWMQAAMEAQUYAANQAZ4E/wH0AvMB/wP1Bf8BqAGmAaUB/wEM
AwQBBRgAA1ABngT/AfQC8wH/A/UF/wGoAaYBpQH/ARMCEAH/ATUCNAH/AeYC5QH/AfEC8AH/AacBpgGl AgkB/wEuAi0B/wHmAuUB/wHxAvAB/wGnAaYBpQH/ATYBMwEyAf8BmgKYAf8DXAHnCAADhgX/AwAB/wPA
Af8BPQE6ATkB/wGaApgB/wNcAecIAAOGBf8DAAH/A8AB/wPAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wOG Af8DwAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DhgH/A4YB/wOGAf8DwAH/AwAB/wgAAewBygGoAf8B+AHl
Af8DhgH/A4YB/wPAAf8DAAH/CAAB7AHKAagB/wH4AeUBxgH/AfkB5AHGAf8B+QHlAcUB/wH5AeQBxgH/ AcYB/wH5AeQBxgH/AfkB5QHFAf8B+QHkAcYB/wH4AeQBxgH/AfcB4wHFAf8BvAHIAcYB/wEAAVwBxAH/
AfgB5AHGAf8B9wHjAcUB/wG8AcgBxgH/AQABYwHEAf8BlgHqAf4B/wK3AawB/wFfAWABUgH/Am8BZgH/ AZYB6gH+Af8CtwGsAf8BWAFZAUsB/wJoAV8B/wgAAWYBWQFCAfUBrgGLAQYB/wGuAYsBBgH/AZ8BaAEB
CAABbQFiAUIB9QGuAYsBDQH/Aa4BiwENAf8BnwFvAQgB/wMNAREsAANQAZ4E/wL1AfQB/wL3AfYF/wGs Af8DDQERLAADUAGeBP8C9QH0Af8C9wH2Bf8BrAKqAf8BEQEPAQ4B/wEvAS0BLgH/Ac8BzQHMAf8B1AHS
AqoB/wEYARYBFQH/ATYBNAE1Af8BzwHNAcwB/wHUAdIB0QH/AbQCsgH/AaoBpwGmAf8DagH5A1cBvQgA AdEB/wG0ArIB/wGqAacBpgH/A2oB+QNXAb0IAAOGAf8DhgH/AwAB/wPAAf8DwAH/A4YB/wOGAf8DhgH/
A4YB/wOGAf8DAAH/A8AB/wPAAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wPAAf8DAAH/ A4YB/wOGAf8DhgH/A4YB/wOGAf8DwAH/AwAB/wgAAe4BzQGrAf8B+AHmAccB/wHfAcgBqgH/Ad4ByAGq
CAAB7gHNAasB/wH4AeYBxwH/Ad8ByAGqAf8B3gHIAaoB/wHfAcgBqwH/Ad8BxwGrAf8B2wHDAaYB/wHa Af8B3wHIAasB/wHfAccBqwH/AdsBwwGmAf8B2gHCAaQB/wGrAbABqwH/AY4BjwGEAf8B4AHiAdMB/wKJ
AcIBpAH/AasBsAGrAf8BjgGPAYQB/wHgAeIB0wH/AokBcAH/AQgBVgHeAf8BVQFcAWYB6gQAAW8BZAFC AWkB/wEBAU8B3gH/AVUBXAFeAeoEAAFoAVkBQgH1AbkBlAEJAf8BuQGUAQkB/wGnAYQBAwH/Aw0BEQgA
AfUBuQGUARAB/wG5AZQBEAH/AacBhAEKAf8DDQERCAADTAGSAakBhgEKAf8BowGCAQkB/wGjAYIBCQH/ A0wBkgGpAYYBAwH/AaMBggECAf8BowGCAQIB/wGjAYIBAgH/AaMBggECAf8BYgFfAUwB8wgAA1ABngT/
AaMBggEJAf8BowGCAQkB/wFtAV8BSgHzCAADUAGeBP8B9wL2Af8D+AH/A/oB/wPwAf8B6gLpAf8D8AH/ AfcC9gH/A/gB/wP6Af8D8AH/AeoC6QH/A/AB/wP3Af8D9gH/AvoB+QH/A1gBuQMXASADBwEJBAADhgn/
A/cB/wP2Af8C+gH5Af8DWAG5AxcBIAMHAQkEAAOGCf8DhgH/A8AB/wPAAf8DhgH/A8AB/wPAAf8DwAH/ A4YB/wPAAf8DwAH/A4YB/wPAAf8DwAH/A8AB/wPAAf8DwAH/A8AB/wPAAf8DhgH/AwAB/wgAAfAB0AGt
A8AB/wPAAf8DwAH/A8AB/wOGAf8DAAH/CAAB8AHQAa0B/wH5AeYByQH/AfgB5gHJAf8B+QHmAckB/wH5 Af8B+QHmAckB/wH4AeYByQH/AfkB5gHJAf8B+QHmAckB/wH3AeUByQH/AfAB2QG9Af8B6QHPAbMB/wHo
AeYByQH/AfcB5QHJAf8B8AHZAb0B/wHpAc8BswH/AegBzgGyAf8BzAG5Aa8B/wKJAXAB/wFFAZYB6gH/ Ac4BsgH/AcwBuQGvAf8CiQFpAf8BPgGWAeoB/wEsAYUB4AH/AVoCXQHTBAACXAFaAc0BwwGcAQsB/wHD
ATMBhQHgAf8BWgJdAdMEAAJcAVoBzQHDAZwBEgH/AcMBnAESAf8BvwGYAREB/wM7AWMIAAMMARACWwFY AZwBCwH/Ab8BmAEKAf8DOwFjCAADDAEQAlsBWALLAaIBDQH/AcMBnAELAf8BwwGcAQsB/wHDAZwBCwH/
AssBogEUAf8BwwGcARIB/wHDAZwBEgH/AcMBnAESAf8BqQGGAQoB/wgAA1ABngT/AvgB9wH/A/kB/wP6 AakBhgEDAf8IAANQAZ4E/wL4AfcB/wP5Af8D+gH/Av4B/RX/A1YBqxAAA4YB/wOGAf8DhgH/A4YB/wPA
Af8C/gH9Ff8DVgGrEAADhgH/A4YB/wOGAf8DhgH/A8AB/wOGAf8BzAI+Av8BzAE+Af8BzAGZAQsB/wHM Af8DhgH/AcwCNwL/AcwBNwH/AcwBmQEEAf8BzAGZAQAC/wE3AQQB/wHMATcBBAX/A4YB/wMAAf8IAAHx
AZkBAAL/AT4BCwH/AcwBPgELBf8DhgH/AwAB/wgAAfEB0wGxAf8B+QHnAcsB/wHiAcwBsAH/AeIBywGv AdMBsQH/AfkB5wHLAf8B4gHMAbAB/wHiAcsBrwH/AeEBzAGvAf8B4QHKAa8B/wHXAb4BoQH/AdUBugGc
Af8B4QHMAa8B/wHhAcoBrwH/AdcBvgGhAf8B1QG6AZwB/wHUAbkBnQH/AdQBuQGdAf8BtgGvAbQB/wFl Af8B1AG5AZ0B/wHUAbkBnQH/AbYBrwG0Af8BXgGSAcQB/wNIAYYIAAJGAUUBfgHSAagBDgH/Ac0BpAEO
AZIBxAH/A0gBhggAAkYBRQF+AdIBqAEVAf8BzQGkARUB/wHNAaQBFQH/AXIBawFTAfEDOwFjAw0BEQMN Af8BzQGkAQ4B/wFnAWQBUwHxAzsBYwMNAREDDQERA0EBcgG/AZgBCQH/Ac0BpAEOAf8BzQGkAQ4B/wHN
AREDQQFyAb8BmAEQAf8BzQGkARUB/wHNAaQBFQH/Ac0BpAEVAf8BsAGMAQwB/wgAA1ABngT/AvkB+AH/ AaQBDgH/AbABjAEFAf8IAANQAZ4E/wL5AfgB/wP6Af8D/AH/A/0B/wP+Bf8B/AL9Af8B9AL1Af8D+gH/
A/oB/wP8Af8D/QH/A/4F/wH8Av0B/wH0AvUB/wP6Af8DVgGzGAADhgn/A4YB/wHMAj4D/wE+Av8BzAE+ A1YBsxgAA4YJ/wOGAf8BzAI3A/8BNwL/AcwBNwH/AcwBmQEEAf8BzAGZAQAC/wE3AQQF/wOGAf8DAAH/
Af8BzAGZAQsB/wHMAZkBAAL/AT4BCwX/A4YB/wMAAf8IAAHzAdcBtAH/AfkB5wHMAf8B+AHnAcwB/wH5 CAAB8wHXAbQB/wH5AecBzAH/AfgB5wHMAf8B+QHoAcwB/wH5AegBzAH/AfcB5QHKAf8B5wHPAbUB/wHy
AegBzAH/AfkB6AHMAf8B9wHlAcoB/wHnAc8BtQH/AfIB3gHGAf8B8wHgAcgB/wH3AegB0wH/A1oBxQHv Ad4BxgH/AfMB4AHIAf8B9wHoAdMB/wNaAcUB7wHQAa4B/wMBAQIDAAEBBAADDwEUAWEBXQFOAfAB2AGt
AdABrgH/AwEBAgMAAQEEAAMPARQBagFmAU4B8AHYAa0BFwH/AdcBrAEXAf8B1wGsARcB/wHRAacBFQH/ ARAB/wHXAawBEAH/AdcBrAEQAf8B0QGnAQ4B/wG9AZcBCAH/Ab0BlwEIAf8B0QGnAQ4B/wHXAawBEAH/
Ab0BlwEPAf8BvQGXAQ8B/wHRAacBFQH/AdcBrAEXAf8B1wGsARcB/wHXAawBFwH/AdcBrAEXAf8BtgGR AdcBrAEQAf8B1wGsARAB/wHXAawBEAH/AbYBkQEGAf8IAANQAZ4E/wP6Af8D/AH/A/0B/wP+Bf8B/gH/
AQ0B/wgAA1ABngT/A/oB/wP8Af8D/QH/A/4F/wH+Af8B/gH/A+oB/wLXAdgB/wHdAt4B/wM7AWQcAAOG Af4B/wPqAf8C1wHYAf8B3QLeAf8DOwFkHAADhgH/A4YB/wOGAf8BzAI3A/8BNwP/ATcC/wHMATcB/wHM
Af8DhgH/A4YB/wHMAj4D/wE+A/8BPgL/AcwBPgH/AcwBmQELAf8BzAGZAQAF/wOGAf8DAAH/CAAB9AHZ AZkBBAH/AcwBmQEABf8DhgH/AwAB/wgAAfQB2QG1Af8B+QHoAc0B/wHkAc8BtAH/AeQBzwG0Af8B5AHP
AbUB/wH5AegBzQH/AeQBzwG0Af8B5AHPAbQB/wHkAc8BtAH/AeMBzgGzAf8B3QHGAakB/wH5AegBzgH/ AbQB/wHjAc4BswH/Ad0BxgGpAf8B+QHoAc4B/wH5AegBzgH/A1wBzAHxAdMBsQH/AyYBOBAAAjUBNAFV
AfkB6AHOAf8DXAHMAfEB0wGxAf8DJgE4EAACNQE0AVUB2wGxARcB/wHfAbMBGQH/Ad4BswEZAf8B3gGz AdsBsQEQAf8B3wGzARIB/wHeAbMBEgH/Ad4BswESAf8B3gGzARIB/wHeAbMBEgH/Ad4BswESAf8B3gGz
ARkB/wHeAbMBGQH/Ad4BswEZAf8B3gGzARkB/wHeAbMBGQH/Ad8BswEZAf8B3AGyARcB/wHmAboBGwH/ ARIB/wHfAbMBEgH/AdwBsgEQAf8B5gG6ARQB/wG7AZUBCAH/CAADUAGeBP8D/AH/A/0J/wP9Af8C+gH7
AbsBlQEPAf8IAANQAZ4E/wP8Af8D/Qn/A/0B/wL6AfsB/wHrAuwB/wL6AfsB/wNCAXMoAAOGAf8BzAI+ Af8B6wLsAf8C+gH7Af8DQgFzKAADhgH/AcwCNwL/AcwBNwP/ATcD/wE3Av8BzAE3Af8BzAGZAQQF/wOG
Av8BzAE+A/8BPgP/AT4C/wHMAT4B/wHMAZkBCwX/A4YB/wMAAf8IAAH2AdsBuAH/AfkB6QHPAf8B+QHp Af8DAAH/CAAB9gHbAbgB/wH5AekBzwH/AfkB6QHOAf8B+QHoAc4B/wH4AegBzgH/AfYB5QHMAf8B7gHa
Ac4B/wH5AegBzgH/AfgB6AHOAf8B9gHlAcwB/wHuAdoBvwH/AfkB6AHOAf8DYAHeAfQB2QG1Af8DJgE4 Ab8B/wH5AegBzgH/A2AB3gH0AdkBtQH/AyYBOBgAAjUBNAFVAWMBXQFOAfAB7QHCARYB/wHmAbkBFAH/
GAACNQE0AVUBbAFoAU4B8AHtAcIBHQH/AeYBuQEbAf8B5gG4ARsB/wHmAbgBGwH/AeYBuQEbAf8B7QHC AeYBuAEUAf8B5gG4ARQB/wHmAbkBFAH/Ae0BwgEWAf8BawFkAVMB8QI6ATkBYAJbAVgBywHHAaABCwH/
AR0B/wF3AW8BUwHxAjoBOQFgAlsBWAHLAccBoAESAf8IAANUAaYc/wHrAuwB/wNCAXMsAAOGAf8BzAI+ CAADVAGmHP8B6wLsAf8DQgFzLAADhgH/AcwCNwH/AcwBNwEEAf8BzAE3AQQB/wHMATcBBAH/AcwBNwEE
Af8BzAE+AQsB/wHMAT4BCwH/AcwBPgELAf8BzAE+AQsB/wHMAT4BCwX/A4YB/wMAAf8IAAH3Ad0BugH/ Af8BzAE3AQQF/wOGAf8DAAH/CAAB9wHdAboB/wH5AekBzwH/AfkB6QHPAf8B+QHpAc8B/wH5AekBzwH/
AfkB6QHPAf8B+QHpAc8B/wH5AekBzwH/AfkB6QHPAf8B9wHmAc0B/wHtAdgBvQH/AfkB6AHOAf8B9wHd AfcB5gHNAf8B7QHYAb0B/wH5AegBzgH/AfcB3QG4Af8DJgE4IAADDAEQA0UBfQJcAVkBzAF+AXkBPgH4
AbgB/wMmATggAAMMARADRQF9AlwBWQHMAZIBggE+AfgBkAGIATsB+QJeAVwBzgJGAUUBfgMNARIEAAMM AYgBgQFBAfkCXgFcAc4CRgFFAX4DDQESBAADDAEQA0wBkggAAyYEOAFcAzgBXAM4AVwDOAFcAzgBXAM4
ARADTAGSCAADJgQ4AVwDOAFcAzgBXAM4AVwDOAFcAzgBXAM4AVwDKQE/MAADhgH/A9cB/wPXAf8D1wH/ AVwDOAFcAykBPzAAA4YB/wPXAf8D1wH/A9cB/wPXAf8D1wH/A9cB/wPXAf8DhgH/AwAB/wgAAfgB3wG7
A9cB/wPXAf8D1wH/A9cB/wOGAf8DAAH/CAAB+AHfAbsB/wH4Ad8BuwH/AfgB3wG7Af8B+AHfAbsB/wH4 Af8B+AHfAbsB/wH4Ad8BuwH/AfgB3wG7Af8B+AHfAbsB/wH4Ad8BuwH/AfgB3wG7Af8B+AHfAbsB/wMm
Ad8BuwH/AfgB3wG7Af8B+AHfAbsB/wH4Ad8BuwH/AyYBOFQAAUIBTQE+BwABPgMAASgDAAFAAwABIAMA AThUAAFCAU0BPgcAAT4DAAEoAwABQAMAASADAAEBAQABAQYAAQEWAAP/AQAC/wHgAQcB/gEBAgAC5wHA
AQEBAAEBBgABARYAA/8BAAL/AeABBwH+AQECAALnAcABBwH8AwACwwHAAQcB4AMAAoEBwAEHAeADAAGA AQcB/AMAAsMBwAEHAeADAAKBAcABBwHgAwABgAEBAcABAAHwAwABwAEDBgAB4AEHBgAB8AEPBgAB8AEP
AQEBwAEAAfADAAHAAQMGAAHgAQcGAAHwAQ8GAAHwAQ8GAAHgAQcDAAEBAgABwAEDAwABAwIAAYABAQMA BgAB4AEHAwABAQIAAcABAwMAAQMCAAGAAQEDAAEDAgABgQGAAwABAwIAAcMBwQMAAQMCAAHnAeMDAAED
AQMCAAGBAYADAAEDAgABwwHBAwABAwIAAecB4wMAAQMCAAH/AfcBAAE/AQABAwIAAYABAQGMAR8BgAEB AgAB/wH3AQABPwEAAQMCAAGAAQEBjAEfAYABAQL/AYABAQGAAQ8BwAEDAfABDwGAAQEBgAEHAcABAwHg
Av8BgAEBAYABDwHAAQMB8AEPAYABAQGAAQcBwAEDAeABBwGAAQEBgAEHAcABAwHAAQMBgAEBAYABBwHA AQcBgAEBAYABBwHAAQMBwAEDAYABAQGAAQcBwAEDAYABAwGAAQEBgAEBAcABAQGAAQcBgAEBAYABAAHA
AQMBgAEDAYABAQGAAQEBwAEBAYABBwGAAQEBgAEAAcABAQGDAd8BgAEBAYABAAHAAQEBgwH/AYABAQGA AQEBgwHfAYABAQGAAQABwAEBAYMB/wGAAQEBgAEAAcABAAGDAQEBgAEBAgABwAEAAYMBAQGAAQcBgAEA
AQABwAEAAYMBAQGAAQECAAHAAQABgwEBAYABBwGAAQABwAEBAYABAQGAAQcB4AEAAcABAAGAAQEBgAEH AcABAQGAAQEBgAEHAeABAAHAAQABgAEBAYABBwHwAQABwAEDAcABAQGAAQ8B/AEAAcABBwHgAQEBgAEf
AfABAAHAAQMBwAEBAYABDwH8AQABwAEHAeABAQGAAR8B/AEAAcABDwHwAQkBgAE/AfwBAAHAAR8C/ws= AfwBAAHAAQ8B8AEJAYABPwH8AQABwAEfAv8L
</value> </value>
</data> </data>
<metadata name="FileSaveRDP.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="FileSaveRDP.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">

View File

@ -8,9 +8,12 @@ Public Class RemoteAppCreateClientConnection
RemoteApp = SelectedRemoteApp RemoteApp = SelectedRemoteApp
Dim rdpSign As New RDPSign.RDPSign
Dim RemoteAppShortName = RemoteApp.Name Dim RemoteAppShortName = RemoteApp.Name
Me.Text = "Create Client Connection for " & RemoteAppShortName Me.Text = "Create Client Connection for " & RemoteAppShortName
CertificateComboBox.Items.AddRange(rdpSign.GetCertificateFriendlyName)
SetCCWindowSettings() SetCCWindowSettings()
If Me.ServerAddress.Text = "" Then Me.ServerAddress.Text = System.Net.Dns.GetHostName If Me.ServerAddress.Text = "" Then Me.ServerAddress.Text = System.Net.Dns.GetHostName
@ -31,6 +34,12 @@ Public Class RemoteAppCreateClientConnection
MSIRadioButton.Text = "MSI installer (requires WiX Toolset)" MSIRadioButton.Text = "MSI installer (requires WiX Toolset)"
End If End If
If Not My.Computer.FileSystem.FileExists(GetSysDir() & "\rdpsign.exe") Then
GroupBoxSignRDP.Enabled = False
GroupBoxSignRDP.Text += " (requires rdpsign.exe)"
GroupBoxSignRDP.Tag = "noexe"
End If
If Not RemoteApp.FileTypeAssociations Is Nothing Then _ If Not RemoteApp.FileTypeAssociations Is Nothing Then _
FTACountLabel.Text = "Count: " & RemoteApp.FileTypeAssociations.Count FTACountLabel.Text = "Count: " & RemoteApp.FileTypeAssociations.Count
@ -59,6 +68,9 @@ Public Class RemoteAppCreateClientConnection
My.Settings.SavedCreateRAWebIcon = False My.Settings.SavedCreateRAWebIcon = False
My.Settings.SavedMSIPerUser = False My.Settings.SavedMSIPerUser = False
My.Settings.SavedDisableFTA = False My.Settings.SavedDisableFTA = False
My.Settings.SavedSignRDP = False
My.Settings.SavedSignedAndUnsigned = False
My.Settings.SavedCertSelected = 0
End Sub End Sub
Sub SaveCCWindowSettings() Sub SaveCCWindowSettings()
@ -78,6 +90,9 @@ Public Class RemoteAppCreateClientConnection
My.Settings.SavedCreateRAWebIcon = CreateRAWebIcon.Checked My.Settings.SavedCreateRAWebIcon = CreateRAWebIcon.Checked
My.Settings.SavedMSIPerUser = PerUserRadioButton.Checked My.Settings.SavedMSIPerUser = PerUserRadioButton.Checked
My.Settings.SavedDisableFTA = DisabledFTACheckBox.Checked My.Settings.SavedDisableFTA = DisabledFTACheckBox.Checked
My.Settings.SavedSignRDP = CheckBoxSignRDPEnabled.Checked
My.Settings.SavedSignedAndUnsigned = CheckBoxCreateSignedAndUnsigned.Checked
My.Settings.SavedCertSelected = CertificateComboBox.SelectedIndex
End Sub End Sub
Sub SetCCWindowSettings() Sub SetCCWindowSettings()
@ -116,6 +131,20 @@ Public Class RemoteAppCreateClientConnection
PerMachineRadioButton.Checked = False PerMachineRadioButton.Checked = False
PerUserRadioButton.Checked = True PerUserRadioButton.Checked = True
End If End If
CheckBoxSignRDPEnabled.Checked = My.Settings.SavedSignRDP
CertificateComboBox.Enabled = My.Settings.SavedSignRDP
CheckBoxCreateSignedAndUnsigned.Checked = My.Settings.SavedSignedAndUnsigned
If CertificateComboBox.Items.Count >= (My.Settings.SavedCertSelected + 1) Then
CertificateComboBox.SelectedIndex() = My.Settings.SavedCertSelected
ElseIf CertificateComboBox.Items.Count > 0 Then
CertificateComboBox.SelectedIndex() = 0
ElseIf Not GroupBoxSignRDP.Tag = "noexe" Then
GroupBoxSignRDP.Text += " (No certificates found)"
GroupBoxSignRDP.Enabled = False
End If
End Sub End Sub
Private Sub UseRDGatewayCheckBox_CheckedChanged(sender As Object, e As EventArgs) Handles UseRDGatewayCheckBox.CheckedChanged Private Sub UseRDGatewayCheckBox_CheckedChanged(sender As Object, e As EventArgs) Handles UseRDGatewayCheckBox.CheckedChanged
@ -137,8 +166,11 @@ Public Class RemoteAppCreateClientConnection
If RDPRadioButton.Checked Then If RDPRadioButton.Checked Then
CreateButton.ImageIndex = 6 CreateButton.ImageIndex = 6
CheckBoxCreateSignedAndUnsigned.Enabled = True
Else Else
CreateButton.ImageIndex = 1 CreateButton.ImageIndex = 1
CheckBoxCreateSignedAndUnsigned.Enabled = False
CheckBoxCreateSignedAndUnsigned.Checked = False
End If End If
End Sub End Sub
@ -147,15 +179,20 @@ Public Class RemoteAppCreateClientConnection
Dim MSIPath = "" Dim MSIPath = ""
Dim TempMSIPath = "" Dim TempMSIPath = ""
If CheckBoxSignRDPEnabled.Checked And CertificateComboBox.SelectedItem = "" Then
MessageBox.Show("You must select a certificate to sign the RDP file.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return
End If
If DisabledFTACheckBox.Checked And Not RemoteApp.FileTypeAssociations Is Nothing Then RemoteApp.FileTypeAssociations.Clear() If DisabledFTACheckBox.Checked And Not RemoteApp.FileTypeAssociations Is Nothing Then RemoteApp.FileTypeAssociations.Clear()
If RDPRadioButton.Checked Then If RDPRadioButton.Checked Then
FileSaveRDP.FileName = RemoteApp.Name FileSaveRDP.FileName = RemoteApp.Name
If Not FileSaveRDP.ShowDialog() = Windows.Forms.DialogResult.OK Then Exit Sub If Not FileSaveRDP.ShowDialog() = Windows.Forms.DialogResult.OK Then Return
RDPPath = FileSaveRDP.FileName RDPPath = FileSaveRDP.FileName
Else Else
FileSaveMSI.FileName = RemoteApp.Name FileSaveMSI.FileName = RemoteApp.Name
If Not FileSaveMSI.ShowDialog() = Windows.Forms.DialogResult.OK Then Exit Sub If Not FileSaveMSI.ShowDialog() = Windows.Forms.DialogResult.OK Then Return
MSIPath = FileSaveMSI.FileName MSIPath = FileSaveMSI.FileName
RDPPath = Environment.GetEnvironmentVariable("TEMP") & "\" & RemoteApp.Name & ".rdp" RDPPath = Environment.GetEnvironmentVariable("TEMP") & "\" & RemoteApp.Name & ".rdp"
TempMSIPath = Environment.GetEnvironmentVariable("TEMP") & "\" & RemoteApp.Name & ".msi" TempMSIPath = Environment.GetEnvironmentVariable("TEMP") & "\" & RemoteApp.Name & ".msi"
@ -186,6 +223,7 @@ Public Class RemoteAppCreateClientConnection
ExtractFTIcon(ProductFileName, FTA) ExtractFTIcon(ProductFileName, FTA)
Next Next
End If End If
Me.Close()
Else Else
'!!!!!!! If it's an MSI '!!!!!!! If it's an MSI
Dim RDP As New RDP2MSIlib.RDP Dim RDP As New RDP2MSIlib.RDP
@ -222,9 +260,8 @@ Public Class RemoteAppCreateClientConnection
RDP.CreateMSI(MSIPath) RDP.CreateMSI(MSIPath)
DeleteFiles(FilesToDelete) DeleteFiles(FilesToDelete)
End If
Me.Close() Me.Close()
End If
End Sub End Sub
Private Sub ExtractFTIcon(ProductFileName As String, FTA As RemoteAppLib.FileTypeAssociation) Private Sub ExtractFTIcon(ProductFileName As String, FTA As RemoteAppLib.FileTypeAssociation)
@ -285,6 +322,12 @@ Public Class RemoteAppCreateClientConnection
RDPfile.SaveRDPfile(RDPPath) RDPfile.SaveRDPfile(RDPPath)
If CheckBoxSignRDPEnabled.Checked Then
Dim rdpSign As New RDPSign.RDPSign
Dim Thumbprint As String = rdpSign.GetThumbprint(CertificateComboBox.Text)
rdpSign.SignRDP(Thumbprint, RDPPath, CheckBoxCreateSignedAndUnsigned.Checked)
End If
End Sub End Sub
Private Function GetFlatFileTypesList(AppName As String, Optional Delim As String = ",") As String Private Function GetFlatFileTypesList(AppName As String, Optional Delim As String = ",") As String
@ -306,7 +349,7 @@ Public Class RemoteAppCreateClientConnection
End Function End Function
Private Sub FTAButton_Click(sender As Object, e As EventArgs) Handles FTAButton.Click Private Sub FTAButton_Click(sender As Object, e As EventArgs) Handles FTAButton.Click
MessageBox.Show(Me, "Changes made here to File Type Associations are for this client connection only and will not be saved for next time." & vbCrLf & vbCrLf & _ MessageBox.Show(Me, "Changes made here to File Type Associations are for this client connection only and will not be saved for next time." & vbCrLf & vbCrLf &
"To make permanent changes to the File Type Associations for this RemoteApp, edit the RemoteApp.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information) "To make permanent changes to the File Type Associations for this RemoteApp, edit the RemoteApp.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
RemoteApp = RemoteAppFileTypeAssociation.EditFileTypes(RemoteApp) RemoteApp = RemoteAppFileTypeAssociation.EditFileTypes(RemoteApp)
If Not RemoteApp.FileTypeAssociations Is Nothing Then _ If Not RemoteApp.FileTypeAssociations Is Nothing Then _
@ -354,4 +397,31 @@ Public Class RemoteAppCreateClientConnection
End If End If
End Sub End Sub
Private Sub CheckBoxSignRDPEnabled_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBoxSignRDPEnabled.CheckedChanged
CertificateComboBox.Enabled = CheckBoxSignRDPEnabled.Checked
If (EditAfterSave.Checked And CheckBoxSignRDPEnabled.Checked) Then
If MessageBox.Show("You have selected ""Sign RDP file"" and ""Manually edit RDP file""." & vbCrLf & vbCrLf & "If you save any changes to a signed RDP file it will stop working." & vbCrLf & vbCrLf & "Are you sure you want the RDP file to be signed?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = DialogResult.Yes Then
CheckBoxSignRDPEnabled.Checked = True
Else
CheckBoxSignRDPEnabled.Checked = False
End If
End If
End Sub
Private Sub EditAfterSave_CheckedChanged(sender As Object, e As EventArgs) Handles EditAfterSave.CheckedChanged
If (EditAfterSave.Checked And CheckBoxSignRDPEnabled.Checked) Then
If MessageBox.Show("You have selected ""Sign RDP file"" and ""Manually edit RDP file""." & vbCrLf & vbCrLf & "If you save any changes to a signed RDP file it will stop working." & vbCrLf & vbCrLf & "Are you sure you want to edit after saving?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = DialogResult.Yes Then
EditAfterSave.Checked = True
Else
EditAfterSave.Checked = False
End If
End If
End Sub
Private Sub CheckBoxCreateSignedAndUnsigned_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBoxCreateSignedAndUnsigned.CheckedChanged
If CheckBoxCreateSignedAndUnsigned.Checked = True Then
CheckBoxSignRDPEnabled.Checked = True
End If
End Sub
End Class End Class

View File

@ -151,7 +151,7 @@ Partial Class RemoteAppEditWindow
Me.Label11.Font = New System.Drawing.Font("Segoe UI", 9.0!) Me.Label11.Font = New System.Drawing.Font("Segoe UI", 9.0!)
Me.Label11.Location = New System.Drawing.Point(243, 103) Me.Label11.Location = New System.Drawing.Point(243, 103)
Me.Label11.Name = "Label11" Me.Label11.Name = "Label11"
Me.Label11.Size = New System.Drawing.Size(64, 15) Me.Label11.Size = New System.Drawing.Size(65, 15)
Me.Label11.TabIndex = 13 Me.Label11.TabIndex = 13
Me.Label11.Text = "Icon Index:" Me.Label11.Text = "Icon Index:"
' '
@ -160,7 +160,7 @@ Partial Class RemoteAppEditWindow
Me.Label10.AutoSize = True Me.Label10.AutoSize = True
Me.Label10.Location = New System.Drawing.Point(232, 160) Me.Label10.Location = New System.Drawing.Point(232, 160)
Me.Label10.Name = "Label10" Me.Label10.Name = "Label10"
Me.Label10.Size = New System.Drawing.Size(83, 15) Me.Label10.Size = New System.Drawing.Size(82, 15)
Me.Label10.TabIndex = 21 Me.Label10.TabIndex = 21
Me.Label10.Text = "TSWebAccess:" Me.Label10.Text = "TSWebAccess:"
' '

View File

@ -125,152 +125,152 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAg ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAg
JAAAAk1TRnQBSQFMAgEBCQEAAUgBAQFIAQEBEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA JAAAAk1TRnQBSQFMAgEBCQEAAVABAQFQAQEBEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABMAMAAQEBAAEgBgABMP8AHwADKgFBAwYBCBgAAwYBCAMqAUHUAAMqAUEBQAE9AfIB/wJAAcEB/QMG AwABMAMAAQEBAAEgBgABMP8AHwADKgFBAwYBCBgAAwYBCAMqAUHUAAMqAUEBPwE8AfIB/wJAAb4B/QMG
AQgQAAMGAQgCKwG1AfwBIgEgAeoB/wMqAUHMAAMqAUEBSQFHAfUB/wFUAVIB+gH/AUkBRgH2Af8BMgEx AQgQAAMGAQgCKwGzAfwBIQEfAeoB/wMqAUHMAAMqAUEBSAFGAfUB/wFTAVEB+gH/AUgBRQH2Af8BMQEw
AbkB/AMGAQgIAAMGAQgCKwG2AfwBMgEwAfEB/wE9ATsB9gH/ASIBIAHqAf8DKgFByAADHgErAUwBSQH2 AbcB/AMGAQgIAAMGAQgCKwG0AfwBMQEvAfEB/wE8AToB9gH/ASEBHwHqAf8DKgFByAADHgErAUsBSAH2
Af8BVgFTAfoB/wFiAWEC/wFKAUcB9gH/ATIBMQG5AfwDBgEIAwYBCAIrAbcB/AE4ATYB8gH/AVQBUwL/ Af8BVQFSAfoB/wFhAWAC/wFJAUYB9gH/ATEBMAG3AfwDBgEIAwYBCAIrAbUB/AE3ATUB8gH/AVMBUgL/
ATsBOQH0Af8BIAEeAekB/wMeASvMAAMeASsBTAFKAfYB/wFXAVQB+gH/AWUBYgL/AUsBSQH2Af8BMwEy AToBOAH0Af8BHwEdAekB/wMeASvMAAMeASsBSwFJAfYB/wFWAVMB+gH/AWQBYQL/AUoBSAH2Af8BMgEx
AbkB/AJAAcAB/QFBAT4B9AH/AVkBWAL/AUEBPwH1Af8BJwElAesB/wMeASvUAAMeASsBTQFLAfYB/wFY AbcB/AJAAb4B/QFAAT0B9AH/AVgBVwL/AUABPgH1Af8BJgEkAesB/wMeASvUAAMeASsBTAFKAfYB/wFX
AVUB+gH/AWUBYwL/AWQBYQL/AWEBXwL/AV8BXQL/AUgBRgH3Af8BMAEuAe4B/wMeASvcAAMeASsBTgFM AVQB+gH/AWQBYgL/AWMBYAL/AWABXgL/AV4BXAL/AUcBRQH3Af8BLwEtAe4B/wMeASvcAAMeASsBTQFL
AfcB/wFqAWcC/wFKAUcC/wFIAUUC/wFjAWEC/wE5ATcB8AH/Ax4BK+AAAwYBCAFKAUkBygH9AW4BagL/ AfcB/wFpAWYC/wFJAUYC/wFHAUQC/wFiAWAC/wE4ATYB8AH/Ax4BK+AAAwYBCAFJAUgBxwH9AW0BaQL/
AU8BTAL/AUwBSQL/AWcBZQL/AkABwwH9AwYBCNwAAwYBCAFXAVMBvQH8AWEBXgH7Af8BgAFvAv8BbwFs AU4BSwL/AUsBSAL/AWYBZAL/AkABwAH9AwYBCNwAAwYBCAFWAVEBuwH8AWABXQH7Af8BgAFuAv8BbgFr
Av8BbQFqAv8BagFoAv8BTwFNAfcB/wE1ATMBuQH8AwYBCNQAAwYBCAFfAVwBvwH8AWgBZQH9Af8BhgGC Av8BbAFpAv8BaQFnAv8BTgFMAfcB/wE0ATIBtwH8AwYBCNQAAwYBCAFeAVsBvQH8AWcBZAH9Af8BhgGC
Av8BZwFkAfwB/wFVAVMB+AH/AVEBTgH3Af8BXgFbAfoB/wFsAWoC/wFRAU4B9wH/ATUBNAG5AfwDBgEI Av8BZgFjAfwB/wFUAVIB+AH/AVABTQH3Af8BXQFaAfoB/wFrAWkC/wFQAU0B9wH/ATQBMwG3AfwDBgEI
zAADBgEIAVcBVAHSAf0BbgFrAf4B/wGKAYcC/wFtAWoB/QH/AV0BWgH7Af8DHgErAx4BKwFSAU8B+AH/ zAADBgEIAVUBUwHPAf0BbQFqAf4B/wGKAYcC/wFsAWkB/QH/AVwBWQH7Af8DHgErAx4BKwFRAU4B+AH/
AV8BXQH6Af8BbgFrAv8BUgFQAfcB/wE2ATQBugH8AwQBBcgAAxYBHwFrAWgC/wGBAW8C/wGBAW8B/gH/ AV4BXAH6Af8BbQFqAv8BUQFPAfcB/wE1ATMBuAH8AwQBBcgAAxYBHwFqAWcC/wGBAW4C/wGBAW4B/gH/
AWUBYgH9Af8DHgErCAADHgErAVMBUAH4Af8BYAFeAfsB/wFvAW0C/wFTAVAB+AH/A0ABbwMBAQLIAAMW AWQBYQH9Af8DHgErCAADHgErAVIBTwH4Af8BXwFdAfsB/wFuAWwC/wFSAU8B+AH/A0ABbwMBAQLIAAMW
AR8BawFoAv8BagFnAf4B/wMeASsQAAMeASsBVQFSAfgB/wFbAVkB+QH/AVMBUgFTAagDHQEp0AADFgEf AR8BagFnAv8BaQFmAf4B/wMeASsQAAMeASsBVAFRAfgB/wFaAVgB+QH/AVMBUgFTAagDHQEp0AADFgEf
Ax4BKxgAAx4BKwNAAW8DKQE++AADBwEK2AADIAEvAyMBMwMjATMDIwEzAyMBMwMjATMDIwEzAyMBMwMj Ax4BKxgAAx4BKwNAAW8DKQE++AADBwEK2AADIAEvAyMBMwMjATMDIwEzAyMBMwMjATMDIwEzAyMBMwMj
ATMDGQEjGAADIAEvAyMBMwMjATMDIwEzAyMBMwMjATMDIwEzAyMBMwMjATMDGQEjUAADFAEcAyABLgMg ATMDGQEjGAADIAEvAyMBMwMjATMDIwEzAyMBMwMjATMDIwEzAyMBMwMjATMDGQEjUAADFAEcAyABLgMg
AS4DIAEuASIBJQExAf8DWQHHA0IBdAM3AVsDNQFYAzMBUgMvAUoDKwFCAyABLgMUARwMAAMIAQsBaQFf AS4DIAEuASEBJAEwAf8DWQHHA0IBdAM3AVsDNQFYAzMBUgMvAUoDKwFCAyABLgMUARwMAAMIAQsBaAFd
AVQB8AG2AYQBPQH/AbUBgwE5Af8BtgGCATgB/wG2AYIBOAH/AbYBggE4Af8BtgGCATgB/wG1AYMBOQH/ AVQB8AG2AYQBPAH/AbUBgwE4Af8BtgGCATcB/wG2AYIBNwH/AbYBggE3Af8BtgGCATcB/wG1AYMBOAH/
AbYBhAE9Af8CWgFYAcAUAAMIAQsBaQFfAVQB8AG1AYQBPQH/AbUBgQE6Af8BtgGBAToB/wG2AYEBOgH/ AbYBhAE8Af8CWgFYAcAUAAMIAQsBaAFdAVQB8AG1AYQBPAH/AbUBgQE5Af8BtgGBATkB/wG2AYEBOQH/
AbYBgQE6Af8BtgGBAToB/wG1AYEBOgH/AbUBhAE9Af8CWgFYAcBUAAHiAbgBmQH/AeIBuQGYAf8B4gG4 AbYBgQE5Af8BtgGBATkB/wG1AYEBOQH/AbUBhAE8Af8CWgFYAcBUAAHiAbgBmQH/AeIBuQGYAf8B4gG4
AZkB/wFPAV4BnQH/AUcBVwGSAf8BQwFSAZIB/wEyAVUBngH/AcoBrAGYAf8B4gG4AZgB/wHiAbkBmQH/ AZkB/wFOAV0BnQH/AUYBVgGSAf8BQgFRAZIB/wExAVQBngH/AcoBrAGYAf8B4gG4AZgB/wHiAbkBmQH/
AeIBuQGYAf8B4gG4AZgB/xAAAykBPwG2AYQBPSH/AbYBhAE9Af8UAAMpAT8BtQGEAT0h/wG1AYQBPQH/ AeIBuQGYAf8B4gG4AZgB/xAAAykBPwG2AYQBPCH/AbYBhAE8Af8UAAMpAT8BtQGEATwh/wG1AYQBPAH/
GAADEgEYA00BlQMAAf8EAAMBAQIIAAMBAQIcAAHjAbsBmwH/AfgB4AG+Af8B+AHgAb4B/wGbAZ8BrgH/ GAADEgEYA00BlQMAAf8EAAMBAQIIAAMBAQIcAAHjAbsBmwH/AfgB4AG+Af8B+AHgAb4B/wGbAZ8BrgH/
AVsBbQGpAf8BSQFlAaAB/wEAAVwBsAH/AQABZQG/Af8B+AHhAb4B/wH4AeABvwH/AfgB4QG+Af8B4wG6 AVoBbAGpAf8BSAFkAaAB/wEAAVsBsAH/AQABZAG/Af8B+AHhAb4B/wH4AeABvwH/AfgB4QG+Af8B4wG6
AZoB/xAAAycBOwG1AYMBOQX/AQABMAHyAf8BAgFWAfMB/wEVAZoB9gH/ARkBpgH4Af8BCAFlAfQB/wEA AZoB/xAAAycBOwG1AYMBOAX/AQABLwHyAf8BAQFVAfMB/wEUAZoB9gH/ARgBpgH4Af8BBwFkAfQB/wEA
ASsB8gX/AbUBgwE5Af8UAAMnATsBtQGCATsF/wEMAaMBZgH/ARcBpgFqAf8BGQGnAWwB/wEbAagBbAH/ ASoB8gX/AbUBgwE4Af8UAAMnATsBtQGCAToF/wELAaMBZQH/ARYBpgFpAf8BGAGnAWsB/wEaAagBawH/
ARoBqQFrAf8BDgGlAWcF/wG1AYIBOwH/EAADHAEoA0gBhQMzAfYDAAH/AwAB/zAAAeQBvQGcAf8B+AHh ARkBqQFqAf8BDQGlAWYF/wG1AYIBOgH/EAADHAEoA0gBhQM0AfYDAAH/AwAB/zAAAeQBvQGcAf8B+AHh
Ab8B/wHzAdYBsgH/AcIBuAGuAf8BSAFoAawB/wEaAcAB+AH/AQABlwHXAf8BAAFnAdQB/wEAAWcBwQH/ Ab8B/wHzAdYBsgH/AcIBuAGuAf8BRwFnAawB/wEZAcAB+AH/AQABlwHXAf8BAAFmAdQB/wEAAWYBwQH/
AfMB1gGyAf8B+AHhAb8B/wHkAb0BnQH/EAADJAE2AbYBgwE5Bf8BGwFCAfIB/wElAWkB8gH/AR4BkwH0 AfMB1gGyAf8B+AHhAb8B/wHkAb0BnQH/EAADJAE2AbYBgwE4Bf8BGgFBAfIB/wEkAWgB8gH/AR0BkwH0
Af8BIgGaAfQB/wEVAWcB8QH/AQABLgHwBf8BtgGDATgB/wMjATMDIwEzAxkBIwgAAyQBNgG1AYEBOwX/ Af8BIQGaAfQB/wEUAWYB8QH/AQABLQHwBf8BtgGDATcB/wMjATMDIwEzAxkBIwgAAyQBNgG1AYEBOgX/
AR4BvQGNAf8BKAG/AZIB/wEtAcEBlAH/ATUBxgGWAf8BEwFMAYwB/wEpAcMBjwX/AbUBgQE6Af8DIwEz AR0BvQGNAf8BJwG/AZIB/wEsAcEBlAH/ATQBxgGWAf8BEgFLAYwB/wEoAcMBjwX/AbUBgQE5Af8DIwEz
AyMBMwMZASMEAAMmAfkDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/xQA AyMBMwMZASMEAAMnAfkDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/xQA
AeYBwAGfAf8B+AHiAcEB/wHZAb4BnQH/AdkBvgGeAf8BlgGnAasB/wEAAWMBxAH/ARUB0wL/AQABswHu AeYBwAGfAf8B+AHiAcEB/wHZAb4BnQH/AdkBvgGeAf8BlgGnAasB/wEAAWIBxAH/ARQB0wL/AQABswHu
Af8BAAFnAdQB/wEAAWkBwgH/AfgB4QHAAf8B5gHAAZ8B/wgAAxkEIwEzAzEBTwG2AYMBOQP/AfwB/wEP Af8BAAFmAdQB/wEAAWgBwgH/AfgB4QHAAf8B5gHAAZ8B/wgAAxkEIwEzAzEBTwG2AYMBOAP/AfwB/wEO
AS8B8AH/AUEBbwHyAf8BQgGTAfQB/wEnAYMB8gH/AQsBTQHwAf8BAAEjAfAD/wH7Af8BtQGAATUB/wG1 AS4B8AH/AUABbgHyAf8BQQGTAfQB/wEmAYMB8gH/AQoBTAHwAf8BAAEiAfAD/wH7Af8BtQGAATQB/wG1
AYMBPAH/AbYBhAE+Af8CWgFYAcADGQQjATMDMQFPAbQBgQE6Bv8B4QGoAv8B4wGtAv8B5gGwAf8BxAHO AYMBOwH/AbYBhAE9Af8CWgFYAcADGQQjATMDMQFPAbQBgQE5Bv8B4QGoAv8B4wGtAv8B5gGwAf8BxAHO
AZ8B/wEKAYYBgAH/AcABzAGZBf8BtAFvATYB/wG1AYMBPAH/AbYBhAE+Af8CWgFYAcAEAAMHAQkDQAFx AZ8B/wEJAYYBgAH/AcABzAGZBf8BtAFuATUB/wG1AYMBOwH/AbYBhAE9Af8CWgFYAcAEAAMHAQkDQAFx
AyYB+QMAAf8DAAH/GwAB/xQAAecBwwGiAf8B+AHjAcIB/wH2Ad0BugH/AfgB4wHDAf8B+AHjAcIB/wG2 AycB+QMAAf8DAAH/GwAB/xQAAecBwwGiAf8B+AHjAcIB/wH2Ad0BugH/AfgB4wHDAf8B+AHjAcIB/wG2
AcUBwwH/AQABYwHEAf8BFQHTAv8BFgHGAfYB/wEAAWcB1AH/AQABbQHKAf8B6AHDAaIB/wMAAQEEAAJa AcUBwwH/AQABYgHEAf8BFAHTAv8BFQHGAfYB/wEAAWYB1AH/AQABbAHKAf8B6AHDAaIB/wMAAQEEAAJa
AVgBwAG1AYUBPwH/AbUBhAE+Af8BtQGCATYD/wH7Af8BAAEUAe4B/wEwAVIB8AH/AU0BhQHzAf8BZAGV AVgBwAG1AYUBPgH/AbUBhAE9Af8BtQGCATUD/wH7Af8BAAETAe4B/wEvAVEB8AH/AUwBhQHzAf8BYwGV
AfQB/wGDAZoB9gH/AYABjQH5A/8B+QH/AbUBbAEwCf8BtgGEAT0B/wJaAVgBwAG2AYUBPwH/AbYBhAE+ AfQB/wGDAZoB9gH/AYABjQH5A/8B+QH/AbUBawEvCf8BtgGEATwB/wJaAVgBwAG2AYUBPgH/AbYBhAE9
Af8BswFvATcG/wHZAZQC/wHbAZoC/wHeAaAB/wEEAZ8BggH/ARIBogGDAf8BBAGdAW0F/wG1AWsBMQn/ Af8BswFuATYG/wHZAZQC/wHbAZoC/wHeAaAB/wEDAZ8BggH/AREBogGDAf8BAwGdAWwF/wG1AWoBMAn/
AbUBhAE9Af8MAAMLAQ8DSAGFAwAB/xsAAf8UAAHqAcYBpAH/AfgB5AHEAf8B3AHCAaQB/wHcAcQBpgH/ AbUBhAE8Af8MAAMLAQ8DSAGFAwAB/xsAAf8UAAHqAcYBpAH/AfgB5AHEAf8B3AHCAaQB/wHcAcQBpgH/
AdwBxAGmAf8B3AHFAaYB/wGhAa4BrwH/AQABYwHEAf8BmAHsAv8BFgHGAfYB/wEAAWcB1AH/Am8BZgH/ AdwBxAGmAf8B3AHFAaYB/wGhAa4BrwH/AQABYgHEAf8BmAHsAv8BFQHGAfYB/wEAAWYB1AH/Am4BZQH/
AygBPAQAAbUBhAE+Bf8B9gHwAekB/wGyAW8BMwP/Af0B/wIAAewB/wEdATAB7QH/ATkBUAHwAf8BTAFj AygBPAQAAbUBhAE9Bf8B9gHwAekB/wGyAW4BMgP/Af0B/wIAAewB/wEcAS8B7QH/ATgBTwHwAf8BSwFi
AfIB/wFcAWsB9AH/AWIBZQH2A/8B/AH/AbwBbAEwAf8BAAGuAYAF/wG2AYIBOwH/AbYBhAE+Bf8B/AHv AfIB/wFbAWoB9AH/AWEBZAH2A/8B/AH/AbwBawEvAf8BAAGuAYAF/wG2AYIBOgH/AbYBhAE9Bf8B/AHv
AecB/wG0AWwBMgX/AQQBuAL/AWcBxQHfAv8B1wGNAf8BOgGvAYsB/wESAakBiwH/ATkBrQGGBf8BugFr AecB/wG0AWsBMQX/AQMBuAL/AWYBxQHfAv8B1wGNAf8BOQGvAYsB/wERAakBiwH/ATgBrQGGBf8BugFq
ATIB/wEFAacBbAX/AbUBggE7Af8zAAH/FAAB7AHKAagB/wH4AeUBxgH/AfkB5AHGAf8B+QHlAcUB/wH5 ATEB/wEEAacBawX/AbUBggE6Af8zAAH/FAAB7AHKAagB/wH4AeUBxgH/AfkB5AHGAf8B+QHlAcUB/wH5
AeQBxgH/AfgB5AHGAf8B9wHjAcUB/wG8AcgBxgH/AQABYwHEAf8BlgHqAf4B/wK3AawB/wFfAWABUgH/ AeQBxgH/AfgB5AHGAf8B9wHjAcUB/wG8AcgBxgH/AQABYgHEAf8BlgHqAf4B/wK3AawB/wFeAV8BUQH/
Am8BZgH/BAABtAGCATsF/wHnAZsBJQH/AbEBbwE2Bf8CAAHtAf8CAAHuAf8BFwEeAfAB/wEtATUB8gH/ Am4BZQH/BAABtAGCAToF/wHnAZsBJAH/AbEBbgE1Bf8CAAHtAf8CAAHuAf8BFgEdAfAB/wEsATQB8gH/
AUABQgH1Af8BTgFNAfcF/wHAAW0BMwH/AQABrQGBBf8BtgGCATsB/wG1AYIBOwX/ASwBnQFgAf8BtwFs AT8BQQH1Af8BTQFMAfcF/wHAAWwBMgH/AQABrQGBBf8BtgGCAToB/wG1AYIBOgX/ASsBnQFfAf8BtwFr
ATMF/wFqAccB0AH/AQwByQP/Ac0BagH/AccBwwGFAf8BBwGvAZQB/wHGAcIBgQX/AbsBbAEzAf8BHAHC ATIF/wFpAccB0AH/AQsByQP/Ac0BaQH/AccBwwGFAf8BBgGvAZQB/wHGAcIBgQX/AbsBawEyAf8BGwHC
AZMF/wG1AYEBOwH/FwABARsAAf8UAAHuAc0BqwH/AfgB5gHHAf8B3wHIAaoB/wHeAcgBqgH/Ad8ByAGr AZMF/wG1AYEBOgH/FwABARsAAf8UAAHuAc0BqwH/AfgB5gHHAf8B3wHIAaoB/wHeAcgBqgH/Ad8ByAGr
Af8B3wHHAasB/wHbAcMBpgH/AdoBwgGkAf8BqwGwAasB/wGOAY8BhAH/AeAB4gHTAf8CiQFwAf8BCAFW Af8B3wHHAasB/wHbAcMBpgH/AdoBwgGkAf8BqwGwAasB/wGOAY8BhAH/AeAB4gHTAf8CiQFvAf8BBwFV
Ad4B/wFVAVwBZgHqAbMBggE8Bf8B5gGeAS4B/wGvAYABPAP/AfYD/wHtA/8B6wP/AeoD/wHqA/8B6gP/ Ad4B/wFVAVwBZQHqAbMBggE7Bf8B5gGeAS0B/wGvAYABOwP/AfYD/wHtA/8B6wP/AeoD/wHqA/8B6gP/
AewD/wHzAf8BwgFtATQB/wEAAasBbgX/AbYBggE7Af8BtAGCATsF/wE5Aa8BbwH/AbYBbQE2A/8B9AL/ AewD/wHzAf8BwgFsATMB/wEAAasBbQX/AbYBggE6Af8BtAGCAToF/wE4Aa8BbgH/AbYBbAE1A/8B9AL/
Af4B7QL/Af4B7QL/Af4B8gL/Af4B9AP/AfQC/wH+AfQD/wH3Af8BvQFuATYB/wGzAcsBnAX/AbUBggE7 Af4B7QL/Af4B7QL/Af4B8gL/Af4B9AP/AfQC/wH+AfQD/wH3Af8BvQFtATUB/wGzAcsBnAX/AbUBggE6
Af8zAAH/FAAB8AHQAa0B/wH5AeYByQH/AfgB5gHJAf8B+QHmAckB/wH5AeYByQH/AfcB5QHJAf8B8AHZ Af8zAAH/FAAB8AHQAa0B/wH5AeYByQH/AfgB5gHJAf8B+QHmAckB/wH5AeYByQH/AfcB5QHJAf8B8AHZ
Ab0B/wHpAc8BswH/AegBzgGyAf8BzAG5Aa8B/wKJAXAB/wFFAZYB6gH/ATMBhQHgAf8BWgJdAdMBswGC Ab0B/wHpAc8BswH/AegBzgGyAf8BzAG5Aa8B/wKJAW8B/wFEAZYB6gH/ATIBhQHgAf8BWgJdAdMBswGC
ATwF/wHyAaEBIQH/Ab0BiwFFAf8BrwGAAT4B/wGvAW8BOAH/AbABbgE2Af8BrwFtATQB/wGxAW0BMgH/ ATsF/wHyAaEBIAH/Ab0BiwFEAf8BrwGAAT0B/wGvAW4BNwH/AbABbQE1Af8BrwFsATMB/wGxAWwBMQH/
AbcBbwE1Af8BvQFvATUB/wHBAW4BNQH/AaYBnwFiAf8BZQHTAb0F/wG1AYIBOwH/AbQBgQE7Bv8B3wGl AbcBbgE0Af8BvQFuATQB/wHBAW0BNAH/AaYBnwFhAf8BZAHTAb0F/wG1AYIBOgH/AbQBgQE6Bv8B3wGl
Af8BwwGQAUoB/wG0AWwBNgH/Ab0BbgE2Af8BwQFuATYB/wG8AW0BNAH/AbQBbAE0Af8BsgFuATYB/wG0 Af8BwwGQAUkB/wG0AWsBNQH/Ab0BbQE1Af8BwQFtATUB/wG8AWwBMwH/AbQBawEzAf8BsgFtATUB/wG0
AW4BNwH/Ab4BbwE4Af8BhAGOAVIB/wEAAZ4BbwX/AbUBggE7Af8bAAEBEwABAQMAAf8UAAHxAdMBsQH/ AW0BNgH/Ab4BbgE3Af8BhAGOAVEB/wEAAZ4BbgX/AbUBggE6Af8bAAEBEwABAQMAAf8UAAHxAdMBsQH/
AfkB5wHLAf8B4gHMAbAB/wHiAcsBrwH/AeEBzAGvAf8B4QHKAa8B/wHXAb4BoQH/AdUBugGcAf8B1AG5 AfkB5wHLAf8B4gHMAbAB/wHiAcsBrwH/AeEBzAGvAf8B4QHKAa8B/wHXAb4BoQH/AdUBugGcAf8B1AG5
AZ0B/wHUAbkBnQH/AbYBrwG0Af8BZQGSAcQB/wNIAYYEAAGzAYIBPAX/AfEBlwEMAf8B+AGyAUIB/wH9 AZ0B/wHUAbkBnQH/AbYBrwG0Af8BZAGSAcQB/wNIAYYEAAGzAYIBOwX/AfEBlwELAf8B+AGyAUEB/wH9
AcEBYgH/Af4BygGCAf8B/gHOAYoB/wH9AcsBhQX/AbwBbwE4Af8BHQHAAaAB/wE9AcgBqgH/AVMByQGv AcEBYQH/Af4BygGCAf8B/gHOAYoB/wH9AcsBhQX/AbwBbgE3Af8BHAHAAaAB/wE8AcgBqgH/AVIByQGv
Af8BWwHKAbAF/wG1AYEBOgH/AbQBgQE6Bv8B2wGXAv8B3wGeAv8B5AGmAf8BAAGjAYcB/wEJAaQBiAH/ Af8BWgHKAbAF/wG1AYEBOQH/AbQBgQE5Bv8B2wGXAv8B3wGeAv8B5AGmAf8BAAGjAYcB/wEIAaQBiAH/
AQABoQGDBf8BsgFuATgC/wHgAZsB/wEyAbMBkQH/AQoBqgGOAf8BNgGtAYYF/wG1AYIBOwH/MwAB/xQA AQABoQGDBf8BsgFtATcC/wHgAZsB/wExAbMBkQH/AQkBqgGOAf8BNQGtAYYF/wG1AYIBOgH/MwAB/xQA
AfMB1wG0Af8B+QHnAcwB/wH4AecBzAH/AfkB6AHMAf8B+QHoAcwB/wH3AeUBygH/AecBzwG1Af8B8gHe AfMB1wG0Af8B+QHnAcwB/wH4AecBzAH/AfkB6AHMAf8B+QHoAcwB/wH3AeUBygH/AecBzwG1Af8B8gHe
AcYB/wHzAeAByAH/AfcB6AHTAf8DWgHFAe8B0AGuAf8DAQECAwABAQGzAYMBPAX/AewBigEAAf8B8QGh AcYB/wHzAeAByAH/AfcB6AHTAf8DWgHFAe8B0AGuAf8DAQECAwABAQGzAYMBOwX/AewBigEAAf8B8QGh
ASYB/wH1AbEBRQH/AfYBuQFWAf8B9wG/AWIB/wH2Ab8BYgX/AboBbAE0Af8BBAGvAYsB/wEkAbYBkwH/ ASUB/wH1AbEBRAH/AfYBuQFVAf8B9wG/AWEB/wH2Ab8BYQX/AboBawEzAf8BAwGvAYsB/wEjAbYBkwH/
ATkBugGdAf8BSQHBAaUF/wG1AYIBOwH/AbUBgQE6Bf8BBQG5Av8BaAHGAeAC/wHZAY4B/wE5AbABjAH/ ATgBugGdAf8BSAHBAaUF/wG1AYIBOgH/AbUBgQE5Bf8BBAG5Av8BZwHGAeAC/wHZAY4B/wE4AbABjAH/
AREBqgGMAf8BOAGuAYcF/wGwAWsBNAL/AdQBhgH/AsUBiAH/AQYBrwGUAf8BxgHCAYEF/wG0AYIBOwH/ ARABqgGMAf8BNwGuAYcF/wGwAWoBMwL/AdQBhgH/AsUBiAH/AQUBrwGUAf8BxgHCAYEF/wG0AYIBOgH/
SAAB9AHZAbUB/wH5AegBzQH/AeQBzwG0Af8B5AHPAbQB/wHkAc8BtAH/AeMBzgGzAf8B3QHGAakB/wH5 SAAB9AHZAbUB/wH5AegBzQH/AeQBzwG0Af8B5AHPAbQB/wHkAc8BtAH/AeMBzgGzAf8B3QHGAakB/wH5
AegBzgH/AfkB6AHOAf8DXAHMAfEB0wGxAf8DJgE4CAABtAGDAT0F/wHpAW0BAAH/Ae0BjwEAAf8B7wGe AegBzgH/AfkB6AHOAf8DXAHMAfEB0wGxAf8DJgE4CAABtAGDATwF/wHpAWwBAAH/Ae0BjwEAAf8B7wGe
ARwB/wHxAagBMgH/AfMBrwFBAf8B9AG1AU4F/wG0AWwBNAP/AfsD/wH2A/8B8wP/AfID/wH4Af8BtQGE ARsB/wHxAagBMQH/AfMBrwFAAf8B9AG1AU0F/wG0AWsBMwP/AfsD/wH2A/8B8wP/AfID/wH4Af8BtQGE
AT8B/wG1AYIBOwX/AWoBxwHQAf8BDAHJA/8BzQFqAf8BxwHDAYUB/wEHAa8BlAH/AcYBwgGBBf8BrwFr AT4B/wG1AYIBOgX/AWkBxwHQAf8BCwHJA/8BzQFpAf8BxwHDAYUB/wEGAa8BlAH/AcYBwgGBBf8BrwFq
ATQD/wH7A/8B9wP/AfUD/wH0A/8B+QH/AbUBhAE/Af9IAAH2AdsBuAH/AfkB6QHPAf8B+QHpAc4B/wH5 ATMD/wH7A/8B9wP/AfUD/wH0A/8B+QH/AbUBhAE+Af9IAAH2AdsBuAH/AfkB6QHPAf8B+QHpAc4B/wH5
AegBzgH/AfgB6AHOAf8B9gHlAcwB/wHuAdoBvwH/AfkB6AHOAf8DYAHeAfQB2QG1Af8DJgE4DAABtQGF AegBzgH/AfgB6AHOAf8B9gHlAcwB/wHuAdoBvwH/AfkB6AHOAf8DYAHeAfQB2QG1Af8DJgE4DAABtQGF
AUAD/wH8A/8B/Qf/Af4D/wH8A/8B+gP/AfcD/wH5Af8BtAGCATsB/wG2AYQBPgH/AbYBgwE8Af8BtQGC AT8D/wH8A/8B/Qf/Af4D/wH8A/8B+gP/AfcD/wH5Af8BtAGCAToB/wG2AYQBPQH/AbYBgwE7Af8BtQGC
ATwB/wG1AYMBPAH/AbUBhAE/Af8DVQGwAbUBhAE+A/8B9wL/Af4B7gL/Af4B7wL/Af4B8wP/AfUD/wH1 ATsB/wG1AYMBOwH/AbUBhAE+Af8DVQGwAbUBhAE9A/8B9wL/Af4B7gL/Af4B7wL/Af4B8wP/AfUD/wH1
A/8B9AP/AfgB/wGzAYIBOwH/AbQBhAE+Af8BtAGDAT0B/wG1AYIBPAH/AbQBgwE8Af8BtQGEAT8B/wNV A/8B9AP/AfgB/wGzAYIBOgH/AbQBhAE9Af8BtAGDATwB/wG1AYIBOwH/AbQBgwE7Af8BtQGEAT4B/wNV
AbBIAAH3Ad0BugH/AfkB6QHPAf8B+QHpAc8B/wH5AekBzwH/AfkB6QHPAf8B9wHmAc0B/wHtAdgBvQH/ AbBIAAH3Ad0BugH/AfkB6QHPAf8B+QHpAc8B/wH5AekBzwH/AfkB6QHPAf8B9wHmAc0B/wHtAdgBvQH/
AfkB6AHOAf8B9wHdAbgB/wMmATgQAAFmAWIBWAHvAbUBhQFAAf8BswGDAT4B/wGzAYMBPgH/AbMBgwE+ AfkB6AHOAf8B9wHdAbgB/wMmATgQAAFlAWIBWAHvAbUBhQE/Af8BswGDAT0B/wGzAYMBPQH/AbMBgwE9
Af8BswGDAT0B/wGzAYMBPQH/AbMBgwE9Af8BtQGEAT8B/wJkAVwB5xgAAWYBYgFYAe8BtQGEAT8B/wG1 Af8BswGDATwB/wGzAYMBPAH/AbMBgwE8Af8BtQGEAT4B/wJkAVwB5xgAAWUBYgFYAe8BtQGEAT4B/wG1
AYIBOwH/AbUBggE7Af8BtAGCATwB/wG0AYIBPAH/AbUBggE8Af8BtAGDATwB/wG1AYQBPwH/AmQBXAHn AYIBOgH/AbUBggE6Af8BtAGCATsB/wG0AYIBOwH/AbUBggE7Af8BtAGDATsB/wG1AYQBPgH/AmQBXAHn
YAAB+AHfAbsB/wH4Ad8BuwH/AfgB3wG7Af8B+AHfAbsB/wH4Ad8BuwH/AfgB3wG7Af8B+AHfAbsB/wH4 YAAB+AHfAbsB/wH4Ad8BuwH/AfgB3wG7Af8B+AHfAbsB/wH4Ad8BuwH/AfgB3wG7Af8B+AHfAbsB/wH4
Ad8BuwH/AyYBODwAAwUBBwNCAXQDAgEDEAADIwEzARoBUAGWAf8BFwFSAZMB/wEaAVABlQH/ARoBUQGT Ad8BuwH/AyYBODwAAwUBBwNCAXQDAgEDEAADIwEzARkBTwGWAf8BFgFRAZMB/wEZAU8BlQH/ARkBUAGT
Af8BGQFRAZUB/wEaAVEBkwH/yAADRQF9AVsCXgHQAwwBEBAAARsBUQGWAf8BTgG9Ad8B/wFRAbwB4QH/ Af8BGAFQAZUB/wEZAVABkwH/yAADRQF9AVsCXgHQAwwBEBAAARoBUAGWAf8BTQG9Ad8B/wFQAbwB4QH/
AU4BvgHcAf8BUwG+AeEB/wFMAb0B3wH/AZsB2gHuAf8BIAFRAZgB/wEdAVABlwH/AR8BVgGYAf8BHQFU AU0BvgHcAf8BUgG+AeEB/wFLAb0B3wH/AZsB2gHuAf8BHwFQAZgB/wEcAU8BlwH/AR4BVQGYAf8BHAFT
AZYB/wEaAVIBlAH/AyMBM6wAA1ABnQEAAb8C/wFZAmcB8gMYASIQAAEgAVIBlQH/AU0BvwHfAf8BUAG+ AZYB/wEZAVEBlAH/AyMBM6wAA1ABnQEAAb8C/wFZAmcB8gMYASIQAAEfAVEBlQH/AUwBvwHfAf8BTwG+
Ad8B/wFRAb8B4QH/AU8BvgHgAf8BTgG/AeEB/wGgAdkB8gH/ASkBjwG7Af8BjAG+AdIB/wFHAbEBzAH/ Ad8B/wFQAb8B4QH/AU4BvgHgAf8BTQG/AeEB/wGgAdkB8gH/ASgBjwG7Af8BjAG+AdIB/wFGAbEBzAH/
ATkBpwHJAf8BSAHIAeMB/wEtAZQBtgH/A0UBfUQAA1IBqQHDAY4BWAH/AcABiwFWAf8BvgGIAVQB/wG7 ATgBpwHJAf8BRwHIAeMB/wEsAZQBtgH/A0UBfUQAA1IBqQHDAY4BVwH/AcABiwFVAf8BvgGIAVMB/wG7
AYUBUQH/AbkBgwFPAf8BtAFuAUwB/wGyAWwBSgH/AbEBawFIAf8BrgFpAUcB/wGtAWYBRgH/AasBZQFE AYUBUAH/AbkBgwFOAf8BtAFtAUsB/wGyAWsBSQH/AbEBagFHAf8BrgFoAUYB/wGtAWUBRQH/AasBZAFD
Af8BqQFjAUMB/wGpAWEBQQH/A1IBqRAAA1EBogFSAlMBqAM9AWkDIQEwAxQBGwNVAbUBAAHGAv8BAAHF Af8BqQFiAUIB/wGpAWABQAH/A1IBqRAAA1EBogFSAlMBqAM9AWkDIQEwAxQBGwNVAbUBAAHGAv8BAAHF
Av8BXAJhAdwDFAEcAwYBCAwAARwBVgGTAf8BUAG+Ad8B/wFOAcEB3gH/AVIBvwHdAf8BUwG+AeEB/wFU Av8BXAJhAdwDFAEcAwYBCAwAARsBVQGTAf8BTwG+Ad8B/wFNAcEB3gH/AVEBvwHdAf8BUgG+AeEB/wFT
AbsB3QH/AZ0B2gHuAf8BLQGXAbYB/wFYAb8B3gH/AU8BuAHVAf8BRAGrAc4B/wFRAb0B5AH/ATABkgG5 AbsB3QH/AZ0B2gHuAf8BLAGXAbYB/wFXAb8B3gH/AU4BuAHVAf8BQwGrAc4B/wFQAb0B5AH/AS8BkgG5
Af8DOAFcAyMBMwgAA8AB/wNLAf8DwAH/BAADwAH/A0sB/wPAAf8EAAPAAf8DSwH/A8AB/wwAAcgBkgFc Af8DOAFcAyMBMwgAA8AB/wNKAf8DwAH/BAADwAH/A0oB/wPAAf8EAAPAAf8DSgH/A8AB/wwAAcgBkgFb
Bf8BxwHIAv8BxwHIBv8B1QHtAdgB/wHVAe0B2AX/A+gB/wPpBf8D6gH/A+sF/wGpAWIBQQH/EAADQAFw Bf8BxwHIAv8BxwHIBv8B1QHtAdgB/wHVAe0B2AX/A+gB/wPpBf8D6gH/A+sF/wGpAWEBQAH/EAADQAFw
AQcB1wL/AQYB2AL/AQABxwH+Af8BTgJdAfABAQHLAf4B/wEAAcgB/QH/AQAByAL/AVwCXgHOAwoBDgML AQYB1wL/AQUB2AL/AQABxwH+Af8BTgJdAfABAAHLAf4B/wEAAcgB/QH/AQAByAL/AVwCXgHOAwoBDgML
AQ8DAwEECAABHgFSAZcB/wFVAbwB3gH/AVQBvgHdAf8BVQG/Ad4B/wFVAb0B3AH/AYcByQHiAf8BpQHg AQ8DAwEECAABHQFRAZcB/wFUAbwB3gH/AVMBvgHdAf8BVAG/Ad4B/wFUAb0B3AH/AYcByQHiAf8BpQHg
AfQB/wErAZkBuwH/AYYByAHhAf8BhAHAAd4B/wFTAbsB1wH/AYoBzwHqAf8BLAGWAb0B/wMjATMMAANL AfQB/wEqAZkBuwH/AYYByAHhAf8BhAHAAd4B/wFSAbsB1wH/AYoBzwHqAf8BKwGWAb0B/wMjATMMAANK
Af8DAAH/A0sB/wQAA0sB/wMAAf8DSwH/BAADSwH/AwAB/wNLAf8MAAHKAZQBXgX/AVsBXwH+Af8BWwFf Af8DAAH/A0oB/wQAA0oB/wMAAf8DSgH/BAADSgH/AwAB/wNKAf8MAAHKAZQBXQX/AVoBXgH+Af8BWgFe
Af4B/wP8Af8BkAHPAZkB/wGQAc8BmQH/A/wB/wPRAf8D0QH/A/sB/wPRAf8D0QX/AaoBYwFDAf8QAAMg Af4B/wP8Af8BkAHPAZkB/wGQAc8BmQH/A/wB/wPRAf8D0QH/A/sB/wPRAf8D0QX/AaoBYgFCAf8QAAMg
AS8BCgHSAf0B/wEKAdEB/QH/AQoB0gH+Af8BCQHSAv8BBgHNAf0B/wEDAcwB/QH/AQABzQL/A1YBtgQA AS8BCQHSAf0B/wEJAdEB/QH/AQkB0gH+Af8BCAHSAv8BBQHNAf0B/wECAcwB/QH/AQABzQL/A1YBtgQA
AwgBCwMEAQYDAAEBBAABHwFXAZcB/wFYAcgB5AH/AYEBxgHnAf8BWAHFAeIB/wGAAcoB5AH/AZQB0wHv AwgBCwMEAQYDAAEBBAABHgFWAZcB/wFXAcgB5AH/AYEBxgHnAf8BVwHFAeIB/wGAAcoB5AH/AZQB0wHv
Af8BrgHjAfgB/wEzAZ0BvgH/AYsBzQHmAf8BjAHMAeUB/wGJAcYB4AH/AZcB2gHvAf8BMwGaAb0B/xAA Af8BrgHjAfgB/wEyAZ0BvgH/AYsBzQHmAf8BjAHMAeUB/wGJAcYB4AH/AZcB2gHvAf8BMgGaAb0B/xAA
A8AB/wNLAf8DwAH/BAADwAH/A0sB/wPAAf8EAAPAAf8DSwH/A8AB/wwAAcwBlwFfBf8D/gH/A/0B/wP9 A8AB/wNKAf8DwAH/BAADwAH/A0oB/wPAAf8EAAPAAf8DSgH/A8AB/wwAAcwBlwFeBf8D/gH/A/0B/wP9
Af8D/QH/A/wB/wP8Af8D/AH/A/wB/wP7Af8D+wH/A/sF/wGsAWUBRAH/EAADBAEFAV4CYQHaAQ4B1gH9 Af8D/QH/A/wB/wP8Af8D/AH/A/wB/wP7Af8D+wH/A/sF/wGsAWQBQwH/EAADBAEFAV4CYQHaAQ0B1gH9
Af8BDwHWAf0B/wENAdQB/QH/AQsB0gH9Af8BCAHQAf0B/wEGAdEB/gH/AVgCYQHmAyoBQAsAAQEEAAEh Af8BDgHWAf0B/wEMAdQB/QH/AQoB0gH9Af8BBwHQAf0B/wEFAdEB/gH/AVgCYQHmAyoBQAsAAQEEAAEg
AVgBmgH/AYsB0AHrAf8BjQHQAesB/wGNAdEB6AH/AY4B0QHoAf8BpAHcAfUB/wGyAecB9AH/AckB9wL/ AVcBmgH/AYsB0AHrAf8BjQHQAesB/wGNAdEB6AH/AY4B0QHoAf8BpAHcAfUB/wGyAecB9AH/AckB9wL/
AT0BowG/Af8BpgHZAfMB/wGWAc8B6AH/AawB6QHrAf8BOQGeAcIB/0gAAdEBnAFjBf8B6wGwAVAB/wHr ATwBowG/Af8BpgHZAfMB/wGWAc8B6AH/AawB6QHrAf8BOAGeAcIB/0gAAdEBnAFiBf8B6wGwAU8B/wHr
AbABUAH/A/4B/wPRAf8D0QH/A/0B/wFjAaoC/wFjAaoC/wP8Af8BVwHVAfAB/wFXAdUB8AX/AbABagFI AbABTwH/A/4B/wPRAf8D0QH/A/0B/wFiAaoC/wFiAaoC/wP8Af8BVgHVAfAB/wFWAdUB8AX/AbABaQFH
Af8UAANWAbQBHwHeAf0B/wESAdoB/QH/ARMB2QH9Af8BEAHXAf0B/wENAdQB/QH/AQoB0QH9Af8BCAHS Af8UAANWAbQBHgHeAf0B/wERAdoB/QH/ARIB2QH9Af8BDwHXAf0B/wEMAdQB/QH/AQkB0QH9Af8BBwHS
Av8BAQHTAv8DSwGOAwoBDQgAASMBggGdAf8BoQHaAfMB/wGmAdwB8wH/AacB3QH0Af8BpgHcAfUB/wGq Av8BAAHTAv8DSwGOAwoBDQgAASIBggGdAf8BoQHaAfMB/wGmAdwB8wH/AacB3QH0Af8BpgHcAfUB/wGq
AeMB+AH/AcUB7wL/Ac0B9gL/AUYBpgHFAf8BrwHjAfAB/wGsAecB+wH/AUIBowHGAf9MAAHUAZ4BZQX/ AeMB+AH/AcUB7wL/Ac0B9gL/AUUBpgHFAf8BrwHjAfAB/wGsAecB+wH/AUEBowHGAf9MAAHUAZ4BZAX/
AesBsAFQAf8B6wGwAVAF/wPRAf8D0QH/A/4B/wFjAaoC/wFjAaoC/wP9Af8BVwHVAfAB/wFXAdUB8AX/ AesBsAFPAf8B6wGwAU8F/wPRAf8D0QH/A/4B/wFiAaoC/wFiAaoC/wP9Af8BVgHVAfAB/wFWAdUB8AX/
AbIBbAFKAf8QAANKAYoBhQHrAf4B/wGDAesB/gH/AR8B4AH9Af8BFgHdAf0B/wEWAdsB/QH/ARIB2AH9 AbIBawFJAf8QAANKAYoBhQHrAf4B/wGDAesB/gH/AR4B4AH9Af8BFQHdAf0B/wEVAdsB/QH/AREB2AH9
Af8BCwHVAf0B/wEKAdEB/QH/ARMB1AL/ASsB8gL/AVYCWAHBAwoBDQQAASUBggGgAf8BsQHjAfcB/wG2 Af8BCgHVAf0B/wEJAdEB/QH/ARIB1AL/ASoB8gL/AVYCWAHBAwoBDQQAASQBggGgAf8BsQHjAfcB/wG2
AeAB9wH/AbEB4AH2Af8BtAHjAfkB/wGxAeYB+gH/AcIB7wH8Af8B0AH7Af4B/wFJAa4BxgH/AbgB5QH6 AeAB9wH/AbEB4AH2Af8BtAHjAfkB/wGxAeYB+gH/AcIB7wH8Af8B0AH7Af4B/wFIAa4BxgH/AbgB5QH6
Af8BwwHyAv8BSgGqAckB/0wAAdUBoAFmFf8D/gH/A/4B/wP+Af8D/QH/A/0B/wP9Af8D/QX/AbUBbgFM Af8BwwHyAv8BSQGqAckB/0wAAdUBoAFlFf8D/gH/A/4B/wP+Af8D/QH/A/0B/wP9Af8D/QX/AbUBbQFL
Af8MAAM1AVYBXAFwAXIB+AGZAfEB/gH/AbYB9QH+Af8BUAHqAf4B/wEYAeAB/QH/ARoB3wH9Af8BGAHc Af8MAAM1AVYBXAFvAXEB+AGZAfEB/gH/AbYB9QH+Af8BTwHqAf4B/wEXAeAB/QH/ARkB3wH9Af8BFwHc
Af0B/wEsAd4B/QH/ATEB5QH+Af8BVwJaAb0DLAFEAwcBCgMAAQEEAAEsAYgBowH/AbsB7QH5Af8BvQHw Af0B/wErAd4B/QH/ATAB5QH+Af8BVwJaAb0DLAFEAwcBCgMAAQEEAAErAYgBowH/AbsB7QH5Af8BvQHw
AfoB/wG8Ae4B+gH/AcMB7QH6Af8BxQHzAfoB/wHBAfIB/AH/AdQB+gH+Af8BgQG4Ac0B/wHKAesB+wH/ AfoB/wG8Ae4B+gH/AcMB7QH6Af8BxQHzAfoB/wHBAfIB/AH/AdQB+gH+Af8BgQG4Ac0B/wHKAesB+wH/
AcoB9AL/AYMBugHPAf9MAAHYAaIBaQX/A9EB/wPRBf8B6wGwAVAB/wHrAbABUAX/AZABzwGZAf8BkAHP AcoB9AL/AYMBugHPAf9MAAHYAaIBaAX/A9EB/wPRBf8B6wGwAU8B/wHrAbABTwX/AZABzwGZAf8BkAHP
AZkB/wP+Af8D0QH/A9EF/wG3AYEBTgH/CAADCgEOAVgCXgHdAZMB8wH+Af8BrwH1Af4B/wGyAfUC/wGd AZkB/wP+Af8D0QH/A9EF/wG3AYEBTQH/CAADCgEOAVgCXgHdAZMB8wH+Af8BrwH1Af4B/wGyAfUC/wGd
AfIC/wGgAfEB/gH/AR4B5AH9Af8BKgHdAfwB/wFaAl0BygMyAVEPAAEBBAABMgGIAacB/wHFAewB+gH/ AfIC/wGgAfEB/gH/AR0B5AH9Af8BKQHdAfwB/wFaAl0BygMyAVEPAAEBBAABMQGIAacB/wHFAewB+gH/
AcQB7wH4Af8BwwHtAfkB/wHDAewB+wH/AcUB9wH9Af8ByQHwAf4B/wHXAfwB+gH/AY0BuwHdAf8B1QHw AcQB7wH4Af8BwwHtAfkB/wHDAewB+wH/AcUB9wH9Af8ByQHwAf4B/wHXAfwB+gH/AY0BuwHdAf8B1QHw
Af4B/wHSAfgB/QH/AYYBvAHVAf9MAAHZAaMBaQX/A9EB/wPRBf8B6wGwAVAB/wHrAbABUAX/AZABzwGZ Af4B/wHSAfgB/QH/AYYBvAHVAf9MAAHZAaMBaAX/A9EB/wPRBf8B6wGwAU8B/wHrAbABTwX/AZABzwGZ
Af8BkAHPAZkB/wP+Af8D0QH/A9EF/wG6AYUBUAH/CAABQQJCAXMDYQHhA1sBxgNVAbADTAGTA14BzgHt Af8BkAHPAZkB/wP+Af8D0QH/A9EF/wG6AYUBTwH/CAABQQJCAXMDYQHhA1sBxgNVAbADTAGTA14BzgHt
Af0C/wGJAfEC/wElAdIB+AH/Ay4BRxgAATIBiQGlAf8ByAH3Av8BzwH5Av8B0wH3Af0B/wHTAfsC/wHV Af0C/wGJAfEC/wEkAdIB+AH/Ay4BRxgAATEBiQGlAf8ByAH3Av8BzwH5Av8B0wH3Af0B/wHTAfsC/wHV
AfgB/AH/AdwB+gL/AeAB+AH+Af8BiQHCAdcB/wHTAe0B/QH/AdUB9gL/AZQBvgHVAf9MAAHbAaQBajX/ AfgB/AH/AdwB+gL/AeAB+AH+Af8BiQHCAdcB/wHTAe0B/QH/AdUB9gL/AZQBvgHVAf9MAAHbAaQBaTX/
Ab0BhwFTAf8cAAMcAScBawJ6AfkByQH5Av8BWgJhAeQDBgEIGAABMgGMAaYB/wFHAacBxgH/AUQBqQHH Ab0BhwFSAf8cAAMcAScBagJ3AfkByQH5Av8BWgJhAeQDBgEIGAABMQGMAaYB/wFGAacBxgH/AUMBqQHH
Af8BSAGmAcUB/wFSAawBzAH/AVgBuwHTAf8BigG9AdEB/wGQAcEB1wH/AdgB8wH9Af8B0gHyAfgB/wHd Af8BRwGmAcUB/wFRAawBzAH/AVcBuwHTAf8BigG9AdEB/wGQAcEB1wH/AdgB8wH9Af8B0gHyAfgB/wHd
AfoC/wGUAcMB2AH/TAAB3AGnAWsB/wHcAacBawH/AdwBpwFrAf8B3AGnAWsB/wHcAacBawH/AdwBpwFr AfoC/wGUAcMB2AH/TAAB3AGnAWoB/wHcAacBagH/AdwBpwFqAf8B3AGnAWoB/wHcAacBagH/AdwBpwFq
Af8B3AGnAWsB/wHcAacBawH/AdwBpwFrAf8B3AGnAWsB/wHcAacBawH/AdwBpwFrAf8B3AGnAWsB/wHc Af8B3AGnAWoB/wHcAacBagH/AdwBpwFqAf8B3AGnAWoB/wHcAacBagH/AdwBpwFqAf8B3AGnAWoB/wHc
AacBawH/AcABiwFWAf8gAAM9AWgBpQHoAfsB/wFNAk4BlRwAAyMBMwE7AZIBqgH/AdIB9QL/AdUB+QL/ AacBagH/AcABiwFVAf8gAAM9AWgBpQHoAfsB/wFNAk4BlRwAAyMBMwE6AZIBqgH/AdIB9QL/AdUB+QL/
AdMB+QH9Af8B3gH7Av8B3wH5Av8B3QH2Av8B5AH6Av8B3gH9AfwB/wHdAfwB+wH/AZcBwwHaAf9MAAG5 AdMB+QH9Af8B3gH7Av8B3wH5Av8B3QH2Av8B5AH6Av8B3gH9AfwB/wHdAfwB+wH/AZcBwwHaAf9MAAG4
AagBhQH9AegBuQGSAf8B6AG5AZIB/wHoAbkBkgH/AegBuQGSAf8B6AG5AZIB/wHoAbkBkgH/AegBuQGS AagBhQH9AegBuQGSAf8B6AG5AZIB/wHoAbkBkgH/AegBuQGSAf8B6AG5AZIB/wHoAbkBkgH/AegBuQGS
Af8B6AG5AZIB/wHoAbkBkgH/AegBuQGSAf8B6AG5AZIB/wHoAbkBkgH/AegBuQGSAf8BsAGQAVIB/SQA Af8B6AG5AZIB/wHoAbkBkgH/AegBuQGSAf8B6AG5AZIB/wHoAbkBkgH/AegBuQGSAf8BrwGQAVEB/SQA
A1YBtAMtAUUgAAMjATMBSwGsAckB/wFSAbABywH/AVYBswHRAf8BjgG+AdYB/wGRAcQB2AH/AZ0BxgHd A1YBtAMtAUUgAAMjATMBSgGsAckB/wFRAbABywH/AVUBswHRAf8BjgG+AdYB/wGRAcQB2AH/AZ0BxgHd
Af8BmgHHAdwB/wGYAckB3wH/AZsBxgHZAf8DIwEzTAADPgFrAX0BcwFlAfQB3AGnAWsB/wHcAaYBagH/ Af8BmgHHAdwB/wGYAckB3wH/AZsBxgHZAf8DIwEzTAADPgFrAXsBcAFlAfQB3AGnAWoB/wHcAaYBaQH/
AdoBpAFqAf8B2AGiAWkB/wHVAaABZgH/AdQBngFlAf8B0gGdAWMB/wHPAZoBYgH/Ac4BmQFgAf8BywGW AdoBpAFpAf8B2AGiAWgB/wHVAaABZQH/AdQBngFkAf8B0gGdAWIB/wHPAZoBYQH/Ac4BmQFfAf8BywGW
AV8B/wHJAZQBXAH/AXkBagFlAfQDPgFrJAADGgElAw0BEdgAAUIBTQE+BwABPgMAASgDAAFAAwABMAMA AV4B/wHJAZQBWwH/AXcBZwFlAfQDPgFrJAADGgElAw0BEdgAAUIBTQE+BwABPgMAASgDAAFAAwABMAMA
AQEBAAEBBQABgAEBFgAD/wEAAv8GAALnBgACwwYAAoEGAAGAAQEGAAHAAQMGAAHgAQcGAAHwAQ8GAAHw AQEBAAEBBQABgAEBFgAD/wEAAv8GAALnBgACwwYAAoEGAAGAAQEGAAHAAQMGAAHgAQcGAAHwAQ8GAAHw
AQ8GAAHgAQcGAAHAAQMGAAGAAQEGAAGBAYAGAAHDAcEGAAHnAeMGAAH/AfcGAAHgAQcB4AEHAv8BgAEB AQ8GAAHgAQcGAAHAAQMGAAGAAQEGAAGBAYAGAAHDAcEGAAHnAeMGAAH/AfcGAAHgAQcB4AEHAv8BgAEB
AcABBwHAAQcC/wHAAQMBwAEHAcABBwHiAd8BwAEDAcABBwHAAQcBgwH/AcABAwHAAQABwAEAAYABBwHA AcABBwHAAQcC/wHAAQMBwAEHAcABBwHiAd8BwAEDAcABBwHAAQcBgwH/AcABAwHAAQABwAEAAYABBwHA