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">
<value>False</value>
</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>
</userSettings>
</configuration>

View File

@ -15,7 +15,7 @@ Option Explicit On
Namespace My
<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)> _
Partial Friend NotInheritable Class MySettings
Inherits Global.System.Configuration.ApplicationSettingsBase
@ -29,7 +29,7 @@ Namespace My
Private Shared addedHandlerLockObject As New Object
<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
My.Settings.Save()
End If
@ -281,6 +281,42 @@ Namespace My
Me("SavedDisableFTA") = value
End Set
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 Namespace

View File

@ -59,5 +59,14 @@
<Setting Name="SavedDisableFTA" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</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>
</SettingsFile>

View File

@ -1,9 +1,12 @@

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}"
ProjectSection(ProjectDependencies) = postProject
{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}
{258307D5-A407-4622-BF1A-BDCA8E3D2FAA} = {258307D5-A407-4622-BF1A-BDCA8E3D2FAA}
EndProjectSection
@ -19,6 +22,8 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "RDP2MSI", "..\RDP2MSI\RDP2M
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "RDPFileLib", "..\RDPFileLib\RDPFileLib.vbproj", "{258307D5-A407-4622-BF1A-BDCA8E3D2FAA}"
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "RDPSign", "..\RDPSign\RDPSign.vbproj", "{57DABB69-B1D3-445F-91E7-B0412ABAC218}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
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}.Release|Any CPU.ActiveCfg = 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
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {A28F1460-A9C1-44A4-A7C9-D8C210745F31}
EndGlobalSection
EndGlobal

View File

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

View File

@ -67,16 +67,23 @@ Partial Class RemoteAppCreateClientConnection
Me.FileTypesGroupBox = New System.Windows.Forms.GroupBox()
Me.FTACountLabel = New System.Windows.Forms.Label()
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.RDGWGroupBox.SuspendLayout()
Me.ClientConnectionGroupBox.SuspendLayout()
Me.MSIGroupBox.SuspendLayout()
Me.Panel1.SuspendLayout()
Me.FileTypesGroupBox.SuspendLayout()
Me.GroupBoxSignRDP.SuspendLayout()
Me.SuspendLayout()
'
'EditAfterSave
'
Me.EditAfterSave.BackColor = System.Drawing.Color.Transparent
Me.EditAfterSave.ImageIndex = 2
Me.EditAfterSave.ImageList = Me.SmallerIcons
Me.EditAfterSave.Location = New System.Drawing.Point(313, 13)
@ -85,7 +92,7 @@ Partial Class RemoteAppCreateClientConnection
Me.EditAfterSave.TabIndex = 2
Me.EditAfterSave.Text = "Manually edit RDP file"
Me.EditAfterSave.TextImageRelation = System.Windows.Forms.TextImageRelation.TextBeforeImage
Me.EditAfterSave.UseVisualStyleBackColor = True
Me.EditAfterSave.UseVisualStyleBackColor = False
'
'SmallerIcons
'
@ -107,10 +114,10 @@ Partial Class RemoteAppCreateClientConnection
Me.CreateButton.Font = New System.Drawing.Font("Segoe UI", 9.0!)
Me.CreateButton.ImageIndex = 6
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.Size = New System.Drawing.Size(80, 29)
Me.CreateButton.TabIndex = 8
Me.CreateButton.TabIndex = 9
Me.CreateButton.Text = "Create..."
Me.CreateButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText
Me.CreateButton.UseVisualStyleBackColor = False
@ -128,10 +135,10 @@ Partial Class RemoteAppCreateClientConnection
Me.CancelEditButton.Font = New System.Drawing.Font("Segoe UI", 9.0!)
Me.CancelEditButton.ImageIndex = 4
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.Size = New System.Drawing.Size(67, 29)
Me.CancelEditButton.TabIndex = 7
Me.CancelEditButton.TabIndex = 8
Me.CancelEditButton.Text = "Cancel"
Me.CancelEditButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText
Me.CancelEditButton.UseVisualStyleBackColor = False
@ -158,7 +165,7 @@ Partial Class RemoteAppCreateClientConnection
Me.Label13.Location = New System.Drawing.Point(7, 54)
Me.Label13.Name = "Label13"
Me.Label13.Size = New System.Drawing.Size(101, 15)
Me.Label13.TabIndex = 104
Me.Label13.TabIndex = 4
Me.Label13.Text = "Alternative server:"
'
'Label14
@ -167,7 +174,7 @@ Partial Class RemoteAppCreateClientConnection
Me.Label14.Location = New System.Drawing.Point(382, 25)
Me.Label14.Name = "Label14"
Me.Label14.Size = New System.Drawing.Size(32, 15)
Me.Label14.TabIndex = 105
Me.Label14.TabIndex = 2
Me.Label14.Text = "Port:"
'
'Label12
@ -176,7 +183,7 @@ Partial Class RemoteAppCreateClientConnection
Me.Label12.Location = New System.Drawing.Point(7, 25)
Me.Label12.Name = "Label12"
Me.Label12.Size = New System.Drawing.Size(85, 15)
Me.Label12.TabIndex = 106
Me.Label12.TabIndex = 0
Me.Label12.Text = "Server address:"
'
'ServerPort
@ -184,7 +191,7 @@ Partial Class RemoteAppCreateClientConnection
Me.ServerPort.Location = New System.Drawing.Point(420, 22)
Me.ServerPort.Name = "ServerPort"
Me.ServerPort.Size = New System.Drawing.Size(53, 23)
Me.ServerPort.TabIndex = 1
Me.ServerPort.TabIndex = 3
Me.ServerPort.Text = "3389"
'
'AltServerAddress
@ -192,14 +199,14 @@ Partial Class RemoteAppCreateClientConnection
Me.AltServerAddress.Location = New System.Drawing.Point(121, 51)
Me.AltServerAddress.Name = "AltServerAddress"
Me.AltServerAddress.Size = New System.Drawing.Size(352, 23)
Me.AltServerAddress.TabIndex = 2
Me.AltServerAddress.TabIndex = 5
'
'ServerAddress
'
Me.ServerAddress.Location = New System.Drawing.Point(121, 22)
Me.ServerAddress.Name = "ServerAddress"
Me.ServerAddress.Size = New System.Drawing.Size(255, 23)
Me.ServerAddress.TabIndex = 0
Me.ServerAddress.TabIndex = 1
'
'RDGWGroupBox
'
@ -222,7 +229,7 @@ Partial Class RemoteAppCreateClientConnection
Me.AttemptDirectCheckBox.Location = New System.Drawing.Point(10, 76)
Me.AttemptDirectCheckBox.Name = "AttemptDirectCheckBox"
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.UseVisualStyleBackColor = True
'
@ -243,7 +250,7 @@ Partial Class RemoteAppCreateClientConnection
Me.RDGWLabel.Location = New System.Drawing.Point(7, 50)
Me.RDGWLabel.Name = "RDGWLabel"
Me.RDGWLabel.Size = New System.Drawing.Size(116, 15)
Me.RDGWLabel.TabIndex = 110
Me.RDGWLabel.TabIndex = 1
Me.RDGWLabel.Text = "RD Gateway address:"
'
'GatewayAddress
@ -252,7 +259,7 @@ Partial Class RemoteAppCreateClientConnection
Me.GatewayAddress.Location = New System.Drawing.Point(145, 47)
Me.GatewayAddress.Name = "GatewayAddress"
Me.GatewayAddress.Size = New System.Drawing.Size(328, 23)
Me.GatewayAddress.TabIndex = 1
Me.GatewayAddress.TabIndex = 2
'
'ClientConnectionGroupBox
'
@ -293,6 +300,7 @@ Partial Class RemoteAppCreateClientConnection
'
'CreateRAWebIcon
'
Me.CreateRAWebIcon.BackColor = System.Drawing.Color.Transparent
Me.CreateRAWebIcon.ImageIndex = 5
Me.CreateRAWebIcon.ImageList = Me.SmallerIcons
Me.CreateRAWebIcon.Location = New System.Drawing.Point(313, 36)
@ -301,7 +309,7 @@ Partial Class RemoteAppCreateClientConnection
Me.CreateRAWebIcon.TabIndex = 3
Me.CreateRAWebIcon.Text = "Create icon files"
Me.CreateRAWebIcon.TextImageRelation = System.Windows.Forms.TextImageRelation.TextBeforeImage
Me.CreateRAWebIcon.UseVisualStyleBackColor = True
Me.CreateRAWebIcon.UseVisualStyleBackColor = False
'
'FTAButton
'
@ -311,7 +319,7 @@ Partial Class RemoteAppCreateClientConnection
Me.FTAButton.Location = New System.Drawing.Point(301, 22)
Me.FTAButton.Name = "FTAButton"
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.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText
Me.FTAButton.UseVisualStyleBackColor = False
@ -367,7 +375,7 @@ Partial Class RemoteAppCreateClientConnection
Me.Panel1.Location = New System.Drawing.Point(89, 76)
Me.Panel1.Name = "Panel1"
Me.Panel1.Size = New System.Drawing.Size(200, 26)
Me.Panel1.TabIndex = 112
Me.Panel1.TabIndex = 9
'
'PerMachineRadioButton
'
@ -489,10 +497,10 @@ Partial Class RemoteAppCreateClientConnection
Me.ResetButton.Font = New System.Drawing.Font("Segoe UI", 9.0!)
Me.ResetButton.ImageIndex = 3
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.Size = New System.Drawing.Size(121, 29)
Me.ResetButton.TabIndex = 6
Me.ResetButton.TabIndex = 7
Me.ResetButton.Text = "Reset to default"
Me.ResetButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText
Me.ResetButton.UseVisualStyleBackColor = False
@ -504,10 +512,10 @@ Partial Class RemoteAppCreateClientConnection
Me.SaveButton.Font = New System.Drawing.Font("Segoe UI", 9.0!)
Me.SaveButton.ImageIndex = 0
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.Size = New System.Drawing.Size(108, 29)
Me.SaveButton.TabIndex = 5
Me.SaveButton.TabIndex = 6
Me.SaveButton.Text = "Save settings"
Me.SaveButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText
Me.SaveButton.UseVisualStyleBackColor = False
@ -530,7 +538,7 @@ Partial Class RemoteAppCreateClientConnection
Me.FTACountLabel.Location = New System.Drawing.Point(154, 29)
Me.FTACountLabel.Name = "FTACountLabel"
Me.FTACountLabel.Size = New System.Drawing.Size(52, 15)
Me.FTACountLabel.TabIndex = 2
Me.FTACountLabel.TabIndex = 1
Me.FTACountLabel.Text = "Count: 0"
'
'DisabledFTACheckBox
@ -543,6 +551,58 @@ Partial Class RemoteAppCreateClientConnection
Me.DisabledFTACheckBox.Text = "Disabled"
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
'
Me.AcceptButton = Me.CreateButton
@ -550,7 +610,8 @@ Partial Class RemoteAppCreateClientConnection
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.BackColor = System.Drawing.Color.White
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.MSIGroupBox)
Me.Controls.Add(Me.ClientConnectionGroupBox)
@ -579,6 +640,8 @@ Partial Class RemoteAppCreateClientConnection
Me.Panel1.PerformLayout()
Me.FileTypesGroupBox.ResumeLayout(False)
Me.FileTypesGroupBox.PerformLayout()
Me.GroupBoxSignRDP.ResumeLayout(False)
Me.GroupBoxSignRDP.PerformLayout()
Me.ResumeLayout(False)
End Sub
@ -625,4 +688,9 @@ Partial Class RemoteAppCreateClientConnection
Friend WithEvents FileTypesGroupBox As System.Windows.Forms.GroupBox
Friend WithEvents DisabledFTACheckBox As System.Windows.Forms.CheckBox
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

View File

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

View File

@ -151,7 +151,7 @@ Partial Class RemoteAppEditWindow
Me.Label11.Font = New System.Drawing.Font("Segoe UI", 9.0!)
Me.Label11.Location = New System.Drawing.Point(243, 103)
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.Text = "Icon Index:"
'
@ -160,7 +160,7 @@ Partial Class RemoteAppEditWindow
Me.Label10.AutoSize = True
Me.Label10.Location = New System.Drawing.Point(232, 160)
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.Text = "TSWebAccess:"
'

View File

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