<?xml version="1.0"?>
<ScriptProject Name="ScriptTask_f47258745fb84b2fb86e6b6d90b8ed05" VSTAMajorVersion="3" VSTAMinorVersion="0" Language="VisualBasic">
  <ProjectItem Name="ScriptMain.vb" Encoding="UTF8">
<![CDATA[Option Explicit On

' Microsoft SQL Server Integration Services Script Task
'
' Copyright (c) 2008 CozyRoc LLC
' 
' Permission is hereby granted, free of charge, to any person
' obtaining a copy of this software and associated documentation
' files (the "Software"), to deal in the Software without
' restriction, including without limitation the rights to use,
' copy, modify, merge, publish, distribute, sublicense, and/or sell
' copies of the Software, and to permit persons to whom the
' Software is furnished to do so, subject to the following
' conditions:
' 
' The above copyright notice and this permission notice shall be
' included in all copies or substantial portions of the Software.
' 
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
' EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
' OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
' NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
' HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
' WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
' FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
' OTHER DEALINGS IN THE SOFTWARE.

Imports System
Imports System.ComponentModel
Imports System.Collections
Imports System.IO

Imports Microsoft.SqlServer.Dts.Runtime
Imports CozyRoc.SqlServer.SSIS
Imports CozyRoc.SqlServer.SSIS.Attributes


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<SortProperties(New String() {"FtpConnection", "RemoteFile", "CheckLocal", "LocalFile", "CheckSize", "CheckTime"})> _
<FilterProperties("GetProperties")> _
<ValidateProperties("Validate")> _
<Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute> _
<System.CLSCompliantAttribute(False)> _
Partial Public Class ScriptMain
	Inherits Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase

	Enum ScriptResults
		Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success
		Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
	End Enum

    ' The execution engine calls this method when the task executes.
    ' To access the object model, use the Dts object. Connections, variables, events,
    ' and logging features are available as static members of the Dts class.
    ' Before returning from this method, set the value of Dts.TaskResult to indicate success or failure.
    ' 
    ' To open Code and Text Editor Help, press F1.
    ' To open Object Browser, press Ctrl+Alt+J.


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Sub Main()
        Dim result As Integer
        Dim connection As ISshClientConnection = Nothing
        Dim ftpClient As IFtpClient
        Dim fireAgain As Boolean
        Dim remoteFile As IFileInfo()

        Try
            ' Get FTP client.
            ftpClient = GetFtpClient_(Dts.Connections(Me.FtpConnection).AcquireConnection(Nothing))

            remoteFile = ftpClient.GetListing(Me.RemoteFile, False, False)
            If FileExists_(remoteFile) Then
                Call Dts.Events.FireInformation( _
                    0, _
                    String.Empty, _
                    String.Format("'{0}' remote file found.", Me.RemoteFile), _
                    String.Empty, _
                    0, _
                    fireAgain)
                result = ScriptResults.Success
            Else
                Call Dts.Events.FireInformation( _
                    0, _
                    String.Empty, _
                    String.Format("'{0}' remote file not found.", Me.RemoteFile), _
                    String.Empty, _
                    0, _
                    fireAgain)
                result = ScriptResults.Failure
            End If
        Catch ex As Exception
            result = ScriptResults.Failure
            Call Dts.Events.FireError(0, String.Empty, ex.Message, String.Empty, 0)
        Finally
            If Not connection Is Nothing Then
                Call connection.Close()
            End If
        End Try

        Dts.TaskResult = result
    End Sub ' Main


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Function GetProperties() As String()
        Dim result As New ArrayList()

        ' Include base settings.
        Call result.Add("FtpConnection")
        Call result.Add("RemoteFile")
        Call result.Add("CheckLocal")

        If Me.CheckLocal Then
            ' Include local file settings.
            Call result.Add("LocalFile")
            Call result.Add("CheckSize")
            Call result.Add("CheckTime")
        End If

        Return CType(result.ToArray(GetType(String)), String())
    End Function    ' GetProperties


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Function Validate(ByRef errMessage As String) As Boolean
        Dim result As Boolean

        If Len(Me.FtpConnection) = 0 Then
            errMessage = "Please specify SSH connection."
        ElseIf Len(Me.RemoteFile) = 0 Then
            errMessage = "Please specify remote file to check."
        ElseIf Me.CheckLocal AndAlso Len(Me.LocalFile) = 0 Then
            errMessage = "Please specify local file."
        Else
            result = True
        End If

        Validate = result
    End Function    'Validate


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Connection("FtpConnectionType")> _
    <Category("	Remote")> _
    <Description("Specifies SSH connection to remote server.")> _
    Public Property FtpConnection() As String
        Get
            FtpConnection = m_ftpConnection
        End Get
        Set(ByVal value As String)
            m_ftpConnection = value
        End Set
    End Property    ' FtpConnection


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <FtpRemoteBrowserDialog("FtpConnection", True)> _
    <Category("	Remote")> _
    <Description("Specifies remote file to check for existence.")> _
    Public Property RemoteFile() As String
        Get
            RemoteFile = m_remote
        End Get
        Set(ByVal value As String)
            m_remote = value
        End Set
    End Property    ' RemoteFile


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Local")> _
    <Description("Specifies to compare local file against remote file.")> _
    <RefreshProperties(RefreshProperties.All)> _
    Public Property CheckLocal() As Boolean
        Get
            CheckLocal = m_checkLocal
        End Get
        Set(ByVal value As Boolean)
            m_checkLocal = value
        End Set
    End Property    ' CheckLocal


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Connection("FileConnectionType")> _
    <Category("Local")> _
    <Description("Specifies local file to compare remote.")> _
    Public Property LocalFile() As String
        Get
            LocalFile = m_local
        End Get
        Set(ByVal value As String)
            m_local = value
        End Set
    End Property    ' LocalFile


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Local")> _
    <Description("Specifies to check file size.")> _
    Public Property CheckSize() As Boolean
        Get
            CheckSize = m_checkSize
        End Get
        Set(ByVal value As Boolean)
            m_checkSize = value
        End Set
    End Property    ' CheckSize


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Local")> _
    <Description("Specifies to check file time.")> _
    Public Property CheckTime() As Boolean
        Get
            CheckTime = m_checkTime
        End Get
        Set(ByVal value As Boolean)
            m_checkTime = value
        End Set
    End Property    ' CheckTime
#End Region ' Properties


#Region "Internals"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private ReadOnly Property FtpConnectionType() As String()
        Get
            FtpConnectionType = New String() {"SSH", "FTPS"}
        End Get
    End Property    ' FtpConnectionType


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private ReadOnly Property FileConnectionType() As String
        Get
            FileConnectionType = "FILE"
        End Get
    End Property    ' FileConnectionType


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Get IFtpClient interface from specified SSIS connection.
    Private Function GetFtpClient_(ByVal connection As Object) As IFtpClient
        Dim result As IFtpClient

        If TypeOf connection Is ISshClientConnection Then
            result = CType((CType(connection, ISshClientConnection).Connect("sftp")), IFtpClient)
        ElseIf TypeOf connection Is IFtpsClientConnection Then
            result = CType(CType(connection, IFtpsClientConnection).Connect(), IFtpClient)
        Else
            Throw New Exception("Unhandled FTP connection type.")
        End If

        GetFtpClient_ = result
    End Function    ' GetFtpClient_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Validate specified connection is the expected type.
    Private Function ValidateConnection_( _
        ByVal managerName As String, _
        ByVal expectedType As String) As Boolean

        Dim result As Boolean
        Dim manager As ConnectionManager

        If Not String.IsNullOrEmpty(managerName) Then
            manager = Dts.Connections(managerName)
            If manager.CreationName = expectedType Then
                result = True
            Else
                ' Doesn't match expected type.
                Dts.Events.FireError( _
                    0, _
                    String.Empty, _
                    String.Format( _
                        "'{0}' connection is not '{1}' type.", _
                        managerName, _
                        expectedType), _
                    String.Empty, _
                    0)
            End If
        End If

        ValidateConnection_ = result
    End Function    ' ValidateConnection_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Retrieves file path from specified file connection manager.
    Private Function GetConnectionFile_(ByVal managerName As String) As String
        Dim result As String = String.Empty
        Dim manager As ConnectionManager
        Dim fileConnection As Object

        If ValidateConnection_(managerName, "FILE") Then
            manager = Dts.Connections(managerName)

            fileConnection = manager.AcquireConnection(Nothing)
            If Not fileConnection Is Nothing Then
                result = fileConnection.ToString()
            Else
                Dts.Events.FireError( _
                    0, _
                    String.Empty, _
                    String.Format("''{0}' connection file doesn't exist.", managerName), _
                    String.Empty, _
                    0)
            End If
        End If

        GetConnectionFile_ = result
    End Function    ' GetConnectionFile_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function FileExists_(ByVal remoteFiles As IFileInfo()) As Boolean
        Dim result As Boolean
        Dim remoteFile As IFileInfo
        Dim fileName As String
        Dim localFileInfo As FileInfo
        Dim remoteTime As Date
        Dim localTime As Date

        If remoteFiles.Length > 0 Then
            remoteFile = remoteFiles(0)
            fileName = remoteFile.FullName

            If fileName = Me.RemoteFile Then
                If Me.CheckLocal Then
                    ' Check additional properties against local file.
                    localFileInfo = New FileInfo(GetConnectionFile_(Me.LocalFile))

                    If Me.CheckSize Then
                        ' Check remote size against local.
                        result = (remoteFile.Size = localFileInfo.Length)
                    End If

                    If result AndAlso Me.CheckTime Then
                        ' Check remote modified time against local.
                        remoteTime = remoteFile.ModifiedTime

                        ' Get local modification time without milliseconds.
                        localTime = localFileInfo.LastWriteTime
                        localTime = localTime.AddTicks(-(localTime.Ticks Mod 10000000))

                        result = (remoteTime = localTime)
                    End If
                Else
                    ' File check is complete.
                    result = True
                End If
            End If
        End If

        FileExists_ = result
    End Function    ' FileExists_
#End Region ' Internals


#Region "Attributes"
    Private m_ftpConnection As String
    Private m_remote As String
    Private m_checkLocal As Boolean = False
    Private m_local As String
    Private m_checkSize As Boolean = True
    Private m_checkTime As Boolean = True
#End Region ' Attributes
End Class   ' ScriptMain]]></ProjectItem>
  <ProjectItem Name="ScriptTask_f47258745fb84b2fb86e6b6d90b8ed05.vbproj" Encoding="UTF16LE">
<![CDATA[<?xml version="1.0" encoding="utf-16"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ProjectTypeGuids>{30D016F9-3734-4E33-A861-5E7D899E18F3};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>8.0.30703</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{A5BAF843-C563-4F70-B46E-FB654AE36C6E}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>My Project</AppDesignerFolder>
    <RootNamespace>ScriptTask_f47258745fb84b2fb86e6b6d90b8ed05</RootNamespace>
    <AssemblyName>ScriptTask_f47258745fb84b2fb86e6b6d90b8ed05</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>.\bin\Debug\</OutputPath>
    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
    <DefineDebug>true</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
    <DebugSymbols>false</DebugSymbols>
    <Optimize>true</Optimize>
    <OutputPath>.\bin\Release\</OutputPath>
    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
    <DefineDebug>false</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="CozyRoc.SSISPlus.2012, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files (x86)\Microsoft SQL Server\110\SDK\Assemblies\CozyRoc.SSISPlus.2012.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
    <Reference Include="Microsoft.SqlServer.ManagedDTS, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.ScriptTask, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="System" />
    <Reference Include="System.Data" />
  </ItemGroup>
  <ItemGroup>
    <Import Include="Microsoft.VisualBasic" />
    <Import Include="System" />
    <Import Include="System.Collections" />
    <Import Include="System.Data" />
    <Import Include="System.Diagnostics" />
    <Import Include="System.Windows.Forms" />
  </ItemGroup>
  <ItemGroup>
    <AppDesigner Include="My Project\" />
  </ItemGroup>
  <!-- Include the build rules for a VB project.-->
  <Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
  <ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{30D016F9-3734-4E33-A861-5E7D899E18F3}">
        <ProjectProperties HostName="VSTAHostName" HostPackage="{B3A685AA-7EAF-4BC6-9940-57959FA5AC07}" ApplicationType="usd" Language="vb" TemplatesPath="" DebugInfoExeName="devenv.exe" DebugInfoCommandLine="/vstaHostDebugUri:&quot;vstadebug838a3246-f9c7-4892-b271-b23a0f3cf393/02190004-dd32-4b57-9632-ba60eb778b19&quot;" />
        <Host Name="ScriptTask" />
        <ProjectClient>
          <HostIdentifier>SSIS_ST110</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
  <ItemGroup>
    <Compile Include="ScriptMain.vb" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="My Project\" />
  </ItemGroup>
  <PropertyGroup>
    <OptionCompare>Binary</OptionCompare>
  </PropertyGroup>
  <PropertyGroup>
    <OptionExplicit>On</OptionExplicit>
  </PropertyGroup>
  <PropertyGroup>
    <OptionStrict>On</OptionStrict>
  </PropertyGroup>
</Project>]]></ProjectItem>
  <ProjectItem Name="Project" Encoding="UTF16LE">
<![CDATA[<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<c:Project xmlns:c="http://schemas.microsoft.com/codeprojectml/2010/08/main" xmlns:msb="http://schemas.microsoft.com/developer/msbuild/2003" runtimeVersion="4.0" schemaVersion="1.0">
	<msb:PropertyGroup>
		<msb:ProjectId>{CDB81DF8-4EF7-4464-9CD0-80B3665956BC}</msb:ProjectId>
		<msb:NoContent>Reference;Import;Folder</msb:NoContent>
		<msb:Language>msBuild</msb:Language>
		<msb:DisplayName>ScriptTask_f47258745fb84b2fb86e6b6d90b8ed05</msb:DisplayName>
		<msb:CodeName>ScriptTask_f47258745fb84b2fb86e6b6d90b8ed05</msb:CodeName>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:File Include="ScriptMain.vb"/>
		<msb:Folder Include="My Project\"/>
		<msb:Project Include="ScriptTask_f47258745fb84b2fb86e6b6d90b8ed05.vbproj"/>
	</msb:ItemGroup>
</c:Project>]]></ProjectItem>
  <BinaryItem Name="ScriptTask_f47258745fb84b2fb86e6b6d90b8ed05.dll">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
dAgAAAELKyYDdSIAAAEsEwN0IgAAAW8zAAAKdAgAAAELKwty1QEAcHM0AAAKegcKBioAABMwBgBb
AAAAGAAAEQMoNQAACi1PAm8fAAAKbyAAAAoDbyEAAAoKBm82AAAKBBYoNwAAChYzBBcLKykCbx8A
AApvJAAAChZ+JQAACnITAgBwAwQoOAAACn4lAAAKFm8qAAAKJgcMCCoAEzAGAGsAAAAZAAARfiUA
AAoNAgNywQEAcG8kAAAGLFMCbx8AAApvIAAACgNvIQAACgwIFG8iAAAKKBEAAAoKBiwJBm8VAAAK
DSsoAm8fAAAKbyQAAAoWfiUAAApyWwIAcAMoJgAACn4lAAAKFm8qAAAKJgkLByoAEzAEAKUAAAAa
AAARA463Fj6XAAAAAxaaEwQRBG85AAAKCwcCbxcAAAYWKDcAAAoWM3oCbxkAAAYsbwICbxsAAAZv
JQAABnM6AAAKDAJvHQAABiwREQRvOwAACghvPAAACv4BEwYRBixDAm8fAAAGLDsRBG89AAAKEwUI
bz4AAAoNEgMWahIDKD8AAAoggJaYAGpd2ihAAAAKDREFCShBAAAKFv4BEwYrAxcTBhEGCgYqAAAA
QlNKQgEAAQAAAAAADAAAAHY0LjAuMzAzMTkAAAAABQBsAAAA8AkAACN+AABcCgAAHAwAACNTdHJp
bmdzAAAAAHgWAACoAgAAI1VTACAZAAAQAAAAI0dVSUQAAAAwGQAAoAUAACNCbG9iAAAAAAAAAAIA
AAFXHaIJCQ4AAAD6JTMAFgAAAQAAADQAAAAIAAAADgAAACYAAAAPAAAATgAAAAIAAAA8AAAAGgAA
AAMAAAANAAAAEwAAAAoAAAABAAAABgAAAAMAAAADAAAAAgAAAAAA6gsBAAAAAAAKABMB6QAKAEcB
KQEGAFcBUAEKAK8B6QAGAC0CUAEKAK8ChQIOABwD8wISAHMEXAQSANcEXAQGAKYFUAEWANkFwwUW
APIFwwUWAB8GBwYGAEkGNgYKAIgGYQYKAKAGEwAWANUGuAYGAAoH6gYGACgHUAEGAEwHUAEKAGUH
EwAGALMHlAcSAMcHXAQGANwHUAEOAOYH8wIaAD8IHwgaAFsIHwgOAJMI8wIGALIIUAEKANYIYQYG
AEIJLwkGAFAJUAEKAF4JEwASAHIJXAQKAKcJYQYGAMkJvwkGANIJUAEGAA0KvwkGAEkKUAEOAF8K
8wISAKMKgQoSAL8KgQoSANkKgQoWAPEKwwUWAAwLwwUWAB4LwwUWADMLwwUSAEULgQoSAFkLgQoG
AHkL6gYGAJkL6gYGANELtwsAAAAAAQAAAAAAAQABAAAAAAApADcABQABAAEAAAAAAGYANwAJAAEA
AgAAARAAcQA3AA0AAQADAAUBAAB7AAAADQAFAAgABQEAAIkAAAANAAUADwABAAAApACvAB0ABgAR
AAIBAADbAAAAKQAMACcAMQByASAAMQCbAS0AMQC9AToAMQDiAUcAIQC+ApAAAQD5BOAAAQAJBeAA
AQASBeMAAQAfBeAAAQAnBeMAAQAzBeMABgarBfMAVoCzBfYAVoC7BfYAUCAAAAAABhgjARMAAQBY
IAAAAAAGGCMBEwABAGAgAAAAABEYXgEXAAEAjCAAAAAAEwhlARsAAQCkIAAAAAATCIsBKAABALwg
AAAAABMItAE1AAEA1CAAAAAAEwjSAUIAAQDsIAAAAABGAhgCYwABAAghAAAAAEYCIQJoAAIAHCEA
AAAAgwAyAmwAAgA0IQAAAABGAjoCcQACAEghAAAAABEAQwJ4AAIAZCEAAAAAAQBhAoAAAwCAIQAA
AAAGGCMBEwAEAIghAAAAAAMIdQKLAAQAvCEAAAAABhgjARMABADQIQAAAAAGGCMBEwAEAPAhAAAA
AAYAOAMTAAQAECMAAAAABgA9A6YABACIIwAAAAAGAEsDqwAEAOgjAAAAAAYIXwNxAAUAACQAAAAA
BghxA7EABQAMJAAAAAAGCIkDcQAGACQkAAAAAAYImAOxAAYAMCQAAAAABginA7YABwBIJAAAAAAG
CLYDugAHAFQkAAAAAAYIxQNxAAgAbCQAAAAABgjTA7EACAB4JAAAAAAGCOEDtgAJAJAkAAAAAAYI
7wO6AAkAnCQAAAAABgj9A7YACgC0JAAAAAAGCAsEugAKAMAkAAAAAAEIGQSmAAsA6CQAAAAAAQgv
BHEACwD8JAAAAAABAH4EyAALAFQlAAAAAAEAlwTOAAwAvCUAAAAAAQDEBNQADgA0JgAAAAABAOEE
2QAPAAAAAQAfAgAAAQBYAgAAAQBYAgAAAQBUAwAAAQCDAwAAAQCDAwAAAQCDAwAAAQCDAwAAAQCD
AwAAAQCDAwAAAQCMBAAAAQCrBAAAAgC3BAAAAQCrBAAAAQDtBAkAIwETAFkAIwEEAWkAIwETAREA
IwETAHEAIwETACQAIwETACwAIwETADQAIwETADwAIwETACQAdQKLACwAdQKLADQAdQKLADwAdQKL
AHkAIwETAIEAIwETAIkAIwGxAJEAGQeoARkAGAJjABkAIQJoACkAOge1ARkAOgJxAKEAVgfFARkA
IwETAKkAIwHVAUQAvgKQAEwAgAeLAEwAigdSAkwAIwETALEAIwG6ADkAIwETADkA+AdnAskASwhs
AtEAbQhxAtkAdgh3AkEAiAh8AskApwiFAukAuQjgAOkAvwiKAuEAxgiQAvEA4gibAsEA8ghxAOEA
/gihAvEACAkXALkAGgkTAMkAIAmqAvkAIwETAPkATAm9AvkAVgnCAgkBZgnUArkAagnlAhEBagnq
AsEAIwGxAOkAiAn1AtkAlglxABkBsQn6AukAvwgBA0kA2wlxACEBIwGxAEkA6AkXAyEB8QkXA0kA
/AkbAzEBHAobAykBLgoXAykBOAohAykBQQooAzkBIwG6AEEBIwETAEkBIwGxAFEBIwGxAFkBIwFk
A2EBIwG1A3EBIwGxAHkBIwGxAIEBIwGxAIkBIwGpBJEBIwGqApkBIwETAKEBIwGxAAgANAD6AAgA
OAD/ACkAgwBiAS4AYwItBS4AawI2BS4AcwJVBUAAEwAKAUAAKwD/AEMAGwAZAUMAEwAKAUkAgwCU
AWMAEwAKAWMAGwAZAWkAgwCHAYAAKwD/AIMAewD/AIMAcwD/AIMAGwAZAYkAgwBzAaAAKwD/AKMA
wwDdAaMAEwAKAcAAKwD/AMMAEwAKAcMA6wBhAskAQwLmBMkASwKcBMkAUwIWBeAAKwD/AOMAMwJq
A+MAIwJDA+MAEwJhAuMAGwL/AOMAKwJRA+kAWwKvBOkASwKcBOkAQwJpBAABKwD/AAABEwAKAQkB
QwK8AwkBOwIKAQkBSwL2AyABKwD/ACABEwAKASkBSwL2AykBUwIuBCkBQwIBBEABKwD/AEABEwAK
AUkBQwJGBEkBSwL2A2ABKwD/AGABEwAKAWkBSwL2A2kBQwLDBIABKwD/AKABKwD/AMABEwAKAcAB
KwD/AOABKwD/AAACEwAKAQACKwD/AE4BUwFYAV0BrQGxAbwBwQHQAdABWAKvAs0C2QLBAcEBrQHB
Aa0BrQHeAsEB7gIIAw8DMgMEAAEABgAFAAcABgAAAEcBTwAAAAACVAAAAK8BWQAAAAwCXgAAAMgC
mAAAAD8F5gAAAE0F5gAAAFgF6gAAAGMF5gAAAG0F6gAAAHcF6gAAAIEF7gAAAJMF5gACAAQAAwAC
AAUABQACAAYABwACAAcACQACAA8ACwACABUADQABABYADQACABcADwABABgADwACABkAEQABABoA
EQACABsAEwABABwAEwABAB4AFQACAB0AFQABACAAFwACAB8AFwACACEAGQACACIAGwB1AHUAiAAy
ATkBQAFHAT8CRgLKAgSAAAAAAAAAAAAAAAAAAAAAAK8AAAAEAAAAAAAAAAAAAAABAAoAAAAAAAoA
AAAAAAAAAAAAAAoAEwAAAAAACwAAAAAAAAAAAAAAnQDUAgAAAAABAAAAAAAAAAAAAAC/AEYEAAAA
AAQAAAAAAAAAAAAAAAEAUAEAAAAACwAAAAAAAAAAAAAAnQAACAAAAAAFAAQABgAEAAgABwAAABAA
DABWAgAAEAAZAFYCAAAAABsAVgItAMsBLQBNAgAAADxNb2R1bGU+AG1zY29ybGliAE1pY3Jvc29m
dC5WaXN1YWxCYXNpYwBNeUFwcGxpY2F0aW9uAFNjcmlwdFRhc2tfZjQ3MjU4NzQ1ZmI4NGIyZmI4
NmU2YjZkOTBiOGVkMDUuTXkATXlDb21wdXRlcgBNeVByb2plY3QATXlXZWJTZXJ2aWNlcwBUaHJl
YWRTYWZlT2JqZWN0UHJvdmlkZXJgMQBTY3JpcHRNYWluAFNjcmlwdFRhc2tfZjQ3MjU4NzQ1ZmI4
NGIyZmI4NmU2YjZkOTBiOGVkMDUAU2NyaXB0UmVzdWx0cwBNaWNyb3NvZnQuVmlzdWFsQmFzaWMu
QXBwbGljYXRpb25TZXJ2aWNlcwBBcHBsaWNhdGlvbkJhc2UALmN0b3IATWljcm9zb2Z0LlZpc3Vh
bEJhc2ljLkRldmljZXMAQ29tcHV0ZXIAU3lzdGVtAE9iamVjdAAuY2N0b3IAZ2V0X0NvbXB1dGVy
AG1fQ29tcHV0ZXJPYmplY3RQcm92aWRlcgBnZXRfQXBwbGljYXRpb24AbV9BcHBPYmplY3RQcm92
aWRlcgBVc2VyAGdldF9Vc2VyAG1fVXNlck9iamVjdFByb3ZpZGVyAGdldF9XZWJTZXJ2aWNlcwBt
X015V2ViU2VydmljZXNPYmplY3RQcm92aWRlcgBBcHBsaWNhdGlvbgBXZWJTZXJ2aWNlcwBFcXVh
bHMAbwBHZXRIYXNoQ29kZQBUeXBlAEdldFR5cGUAVG9TdHJpbmcAQ3JlYXRlX19JbnN0YW5jZV9f
AFQAaW5zdGFuY2UARGlzcG9zZV9fSW5zdGFuY2VfXwBnZXRfR2V0SW5zdGFuY2UATWljcm9zb2Z0
LlZpc3VhbEJhc2ljLk15U2VydmljZXMuSW50ZXJuYWwAQ29udGV4dFZhbHVlYDEAbV9Db250ZXh0
AEdldEluc3RhbmNlAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuU2NyaXB0VGFzawBNaWNyb3NvZnQuU3Fs
U2VydmVyLkR0cy5UYXNrcy5TY3JpcHRUYXNrAFZTVEFSVFNjcmlwdE9iamVjdE1vZGVsQmFzZQBN
YWluAEdldFByb3BlcnRpZXMAVmFsaWRhdGUAZXJyTWVzc2FnZQBnZXRfRnRwQ29ubmVjdGlvbgBz
ZXRfRnRwQ29ubmVjdGlvbgB2YWx1ZQBnZXRfUmVtb3RlRmlsZQBzZXRfUmVtb3RlRmlsZQBnZXRf
Q2hlY2tMb2NhbABzZXRfQ2hlY2tMb2NhbABnZXRfTG9jYWxGaWxlAHNldF9Mb2NhbEZpbGUAZ2V0
X0NoZWNrU2l6ZQBzZXRfQ2hlY2tTaXplAGdldF9DaGVja1RpbWUAc2V0X0NoZWNrVGltZQBnZXRf
RnRwQ29ubmVjdGlvblR5cGUAZ2V0X0ZpbGVDb25uZWN0aW9uVHlwZQBDb3p5Um9jLlNTSVNQbHVz
LjIwMTIAQ296eVJvYy5TcWxTZXJ2ZXIuU1NJUwBJRnRwQ2xpZW50AEdldEZ0cENsaWVudF8AY29u
bmVjdGlvbgBWYWxpZGF0ZUNvbm5lY3Rpb25fAG1hbmFnZXJOYW1lAGV4cGVjdGVkVHlwZQBHZXRD
b25uZWN0aW9uRmlsZV8ASUZpbGVJbmZvAEZpbGVFeGlzdHNfAHJlbW90ZUZpbGVzAG1fZnRwQ29u
bmVjdGlvbgBtX3JlbW90ZQBtX2NoZWNrTG9jYWwAbV9sb2NhbABtX2NoZWNrU2l6ZQBtX2NoZWNr
VGltZQBGdHBDb25uZWN0aW9uAFJlbW90ZUZpbGUAQ2hlY2tMb2NhbABMb2NhbEZpbGUAQ2hlY2tT
aXplAENoZWNrVGltZQBGdHBDb25uZWN0aW9uVHlwZQBGaWxlQ29ubmVjdGlvblR5cGUARW51bQB2
YWx1ZV9fAFN1Y2Nlc3MARmFpbHVyZQBTeXN0ZW0uQ29tcG9uZW50TW9kZWwARWRpdG9yQnJvd3Nh
YmxlQXR0cmlidXRlAEVkaXRvckJyb3dzYWJsZVN0YXRlAFN5c3RlbS5Db2RlRG9tLkNvbXBpbGVy
AEdlbmVyYXRlZENvZGVBdHRyaWJ1dGUAU3lzdGVtLkRpYWdub3N0aWNzAERlYnVnZ2VySGlkZGVu
QXR0cmlidXRlAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5Db21waWxlclNlcnZpY2VzAFN0YW5kYXJk
TW9kdWxlQXR0cmlidXRlAEhpZGVNb2R1bGVOYW1lQXR0cmlidXRlAFN5c3RlbS5Db21wb25lbnRN
b2RlbC5EZXNpZ24ASGVscEtleXdvcmRBdHRyaWJ1dGUAU3lzdGVtLlJ1bnRpbWUuQ29tcGlsZXJT
ZXJ2aWNlcwBSdW50aW1lSGVscGVycwBHZXRPYmplY3RWYWx1ZQBSdW50aW1lVHlwZUhhbmRsZQBH
ZXRUeXBlRnJvbUhhbmRsZQBBY3RpdmF0b3IAQ3JlYXRlSW5zdGFuY2UATXlHcm91cENvbGxlY3Rp
b25BdHRyaWJ1dGUAZ2V0X1ZhbHVlAHNldF9WYWx1ZQBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2Vy
dmljZXMAQ29tVmlzaWJsZUF0dHJpYnV0ZQBJU3NoQ2xpZW50Q29ubmVjdGlvbgBFeGNlcHRpb24A
U2NyaXB0T2JqZWN0TW9kZWwAZ2V0X0R0cwBNaWNyb3NvZnQuU3FsU2VydmVyLk1hbmFnZWREVFMA
TWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUnVudGltZQBDb25uZWN0aW9ucwBnZXRfQ29ubmVjdGlv
bnMAQ29ubmVjdGlvbk1hbmFnZXIAZ2V0X0l0ZW0AQWNxdWlyZUNvbm5lY3Rpb24AR2V0TGlzdGlu
ZwBFdmVudHNPYmplY3RXcmFwcGVyAGdldF9FdmVudHMAU3RyaW5nAEVtcHR5AEZvcm1hdABGaXJl
SW5mb3JtYXRpb24AUHJvamVjdERhdGEAU2V0UHJvamVjdEVycm9yAGdldF9NZXNzYWdlAEZpcmVF
cnJvcgBDbGVhclByb2plY3RFcnJvcgBDbG9zZQBzZXRfVGFza1Jlc3VsdABTeXN0ZW0uQ29sbGVj
dGlvbnMAQXJyYXlMaXN0AEFkZABBcnJheQBUb0FycmF5AFN0cmluZ3MATGVuAENvbm5lY3QASUZ0
cHNDbGllbnRDb25uZWN0aW9uAElzTnVsbE9yRW1wdHkAZ2V0X0NyZWF0aW9uTmFtZQBPcGVyYXRv
cnMAQ29tcGFyZVN0cmluZwBTeXN0ZW0uSU8ARmlsZUluZm8ARGF0ZVRpbWUAZ2V0X0Z1bGxOYW1l
AGdldF9TaXplAGdldF9MZW5ndGgAZ2V0X01vZGlmaWVkVGltZQBGaWxlU3lzdGVtSW5mbwBnZXRf
TGFzdFdyaXRlVGltZQBnZXRfVGlja3MAQWRkVGlja3MAQ29tcGFyZQBDTFNDb21wbGlhbnRBdHRy
aWJ1dGUAU1NJU1NjcmlwdFRhc2tFbnRyeVBvaW50QXR0cmlidXRlAENvenlSb2MuU3FsU2VydmVy
LlNTSVMuQXR0cmlidXRlcwBWYWxpZGF0ZVByb3BlcnRpZXNBdHRyaWJ1dGUARmlsdGVyUHJvcGVy
dGllc0F0dHJpYnV0ZQBTb3J0UHJvcGVydGllc0F0dHJpYnV0ZQBSZWZyZXNoUHJvcGVydGllc0F0
dHJpYnV0ZQBSZWZyZXNoUHJvcGVydGllcwBEZXNjcmlwdGlvbkF0dHJpYnV0ZQBDYXRlZ29yeUF0
dHJpYnV0ZQBDb25uZWN0aW9uQXR0cmlidXRlAEZ0cFJlbW90ZUJyb3dzZXJEaWFsb2dBdHRyaWJ1
dGUAQ29tcGlsYXRpb25SZWxheGF0aW9uc0F0dHJpYnV0ZQBSdW50aW1lQ29tcGF0aWJpbGl0eUF0
dHJpYnV0ZQBTeXN0ZW0uUnVudGltZS5WZXJzaW9uaW5nAFRhcmdldEZyYW1ld29ya0F0dHJpYnV0
ZQBTY3JpcHRUYXNrX2Y0NzI1ODc0NWZiODRiMmZiODZlNmI2ZDkwYjhlZDA1LmRsbAAAAAAxJwB7
ADAAfQAnACAAcgBlAG0AbwB0AGUAIABmAGkAbABlACAAZgBvAHUAbgBkAC4AATknAHsAMAB9ACcA
IAByAGUAbQBvAHQAZQAgAGYAaQBsAGUAIABuAG8AdAAgAGYAbwB1AG4AZAAuAAEbRgB0AHAAQwBv
AG4AbgBlAGMAdABpAG8AbgAAFVIAZQBtAG8AdABlAEYAaQBsAGUAABVDAGgAZQBjAGsATABvAGMA
YQBsAAATTABvAGMAYQBsAEYAaQBsAGUAABNDAGgAZQBjAGsAUwBpAHoAZQAAE0MAaABlAGMAawBU
AGkAbQBlAAA9UABsAGUAYQBzAGUAIABzAHAAZQBjAGkAZgB5ACAAUwBTAEgAIABjAG8AbgBuAGUA
YwB0AGkAbwBuAC4AAElQAGwAZQBhAHMAZQAgAHMAcABlAGMAaQBmAHkAIAByAGUAbQBvAHQAZQAg
AGYAaQBsAGUAIAB0AG8AIABjAGgAZQBjAGsALgAANVAAbABlAGEAcwBlACAAcwBwAGUAYwBpAGYA
eQAgAGwAbwBjAGEAbAAgAGYAaQBsAGUALgAAB1MAUwBIAAAJRgBUAFAAUwAACUYASQBMAEUAAAlz
AGYAdABwAAA9VQBuAGgAYQBuAGQAbABlAGQAIABGAFQAUAAgAGMAbwBuAG4AZQBjAHQAaQBvAG4A
IAB0AHkAcABlAC4AAEcnAHsAMAB9ACcAIABjAG8AbgBuAGUAYwB0AGkAbwBuACAAaQBzACAAbgBv
AHQAIAAnAHsAMQB9ACcAIAB0AHkAcABlAC4AAUsnACcAewAwAH0AJwAgAGMAbwBuAG4AZQBjAHQA
aQBvAG4AIABmAGkAbABlACAAZABvAGUAcwBuACcAdAAgAGUAeABpAHMAdAAuAAEAvJPAeoIEW0KY
n2css4p4GwAIt3pcVhk04IkIsD9ffxHVCjoDIAABAwAAAQQAABIMBwYVEhgBEgwEAAASCAcGFRIY
ARIIBAAAEhEHBhUSGAESEQQAABIUBwYVEhgBEhQECAASDAQIABIIBAgAEhEECAASFAQgAQIcAyAA
CAQgABIVAyAADgIeAAcQAQEeAB4ABzABAQEQHgACEwAEIAATAAcGFRIZARMABCgAEwAIiYRdzYCA
zJEEIAAdDgUgAQIQDgQgAQEOAyAAAgQgAQECCBbPSQu4DDTqBSABEiEcBSACAg4OBCABDg4GIAEC
HRIlAgYOAgYCAygADgMoAAIEKAAdDgIGCAMGESAEAAAAAAQBAAAABSABARExCAEAAQAAAAAABSAC
AQ4OGAEACk15VGVtcGxhdGUIMTAuMC4wLjAAAAYVEhgBEgwGFRIYARIIBhUSGAESEQYVEhgBEhQE
BwESDAQHARIIBAcBEhEEBwESFBABAAtNeS5Db21wdXRlcgAAEwEADk15LldlYlNlcnZpY2VzAAAM
AQAHTXkuVXNlcgAAEwEADk15LkFwcGxpY2F0aW9uAAAEAAEcHAMHAQIDBwEIBgABEhURTQQHARIV
AwcBDgUQAQAeAAQKAR4ABAcBHgAHIAQBDg4ODmEBADRTeXN0ZW0uV2ViLlNlcnZpY2VzLlByb3Rv
Y29scy5Tb2FwSHR0cENsaWVudFByb3RvY29sEkNyZWF0ZV9fSW5zdGFuY2VfXxNEaXNwb3NlX19J
bnN0YW5jZV9fAAAABhUSGAETAAYVEhkBEwAECgETAAUgAQETAAgHAxMAEwATAAUBAAAAAAQgABJl
BCAAEmkFIAESbRwEIAEcHAggAx0SJQ4CAgQgABJxBQACDg4cCiAGAQgODg4IEAIFAAEBEmEIIAUC
CA4ODggEIAEBCA0HBhJdAhIhHRIlCBJhBCABCBwHIAESgIESFQIdDgYHAh0OEn0EAAEIDgQHAgIC
BgcCHQ4dDgQgARwOAyAAHAYHAhIhEiEEAAECDgYAAwgODgIGAAMODhwcBgcDEm0CAgcHBBwOEm0O
AyAACgUgABGAlQYgARGAlQoJAAIIEYCVEYCVEAcHAg4SgJERgJUSJRGAlQINAQAIVmFsaWRhdGUA
ABIBAA1HZXRQcm9wZXJ0aWVzAAAFIAEBHQ5KAQAGAAAADUZ0cENvbm5lY3Rpb24KUmVtb3RlRmls
ZQpDaGVja0xvY2FsCUxvY2FsRmlsZQlDaGVja1NpemUJQ2hlY2tUaW1lAAAGIAEBEYC1OQEANFNw
ZWNpZmllcyB0byBjb21wYXJlIGxvY2FsIGZpbGUgYWdhaW5zdCByZW1vdGUgZmlsZS4AAAoBAAVM
b2NhbAAALAEAJ1NwZWNpZmllcyBsb2NhbCBmaWxlIHRvIGNvbXBhcmUgcmVtb3RlLgAAFwEAEkZp
bGVDb25uZWN0aW9uVHlwZQAAIgEAHVNwZWNpZmllcyB0byBjaGVjayBmaWxlIHNpemUuAAAyAQAt
U3BlY2lmaWVzIHJlbW90ZSBmaWxlIHRvIGNoZWNrIGZvciBleGlzdGVuY2UuAAAMAQAHCVJlbW90
ZQAABSACAQ4CEwEADUZ0cENvbm5lY3Rpb24BAAAiAQAdU3BlY2lmaWVzIHRvIGNoZWNrIGZpbGUg
dGltZS4AAC8BACpTcGVjaWZpZXMgU1NIIGNvbm5lY3Rpb24gdG8gcmVtb3RlIHNlcnZlci4AABYB
ABFGdHBDb25uZWN0aW9uVHlwZQAACAEACAAAAAAAHgEAAQBUAhZXcmFwTm9uRXhjZXB0aW9uVGhy
b3dzAUcBABouTkVURnJhbWV3b3JrLFZlcnNpb249djQuMAEAVA4URnJhbWV3b3JrRGlzcGxheU5h
bWUQLk5FVCBGcmFtZXdvcmsgNAAAAOBFAAAAAAAAAAAAAP5FAAAAIAAAAAAAAAAAAAAAAAAAAAAA
AAAAAADwRQAAAAAAAAAAAAAAAAAAAABfQ29yRGxsTWFpbgBtc2NvcmVlLmRsbAAAAAAA/yUAIEAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABABAAAAAY
AACAAAAAAAAAAAAAAAAAAAABAAEAAAAwAACAAAAAAAAAAAAAAAAAAAABAAAAAABIAAAAWGAAANQC
AAAAAAAAAAAAANQCNAAAAFYAUwBfAFYARQBSAFMASQBPAE4AXwBJAE4ARgBPAAAAAAC9BO/+AAAB
AAAAAAAAAAAAAAAAAAAAAAA/AAAAAAAAAAQAAAACAAAAAAAAAAAAAAAAAAAARAAAAAEAVgBhAHIA
RgBpAGwAZQBJAG4AZgBvAAAAAAAkAAQAAABUAHIAYQBuAHMAbABhAHQAaQBvAG4AAAAAAAAAsAQ0
AgAAAQBTAHQAcgBpAG4AZwBGAGkAbABlAEkAbgBmAG8AAAAQAgAAAQAwADAAMAAwADAANABiADAA
AAAsAAIAAQBGAGkAbABlAEQAZQBzAGMAcgBpAHAAdABpAG8AbgAAAAAAIAAAADAACAABAEYAaQBs
AGUAVgBlAHIAcwBpAG8AbgAAAAAAMAAuADAALgAwAC4AMAAAAIAAMAABAEkAbgB0AGUAcgBuAGEA
bABOAGEAbQBlAAAAUwBjAHIAaQBwAHQAVABhAHMAawBfAGYANAA3ADIANQA4ADcANAA1AGYAYgA4
ADQAYgAyAGYAYgA4ADYAZQA2AGIANgBkADkAMABiADgAZQBkADAANQAuAGQAbABsAAAAKAACAAEA
TABlAGcAYQBsAEMAbwBwAHkAcgBpAGcAaAB0AAAAIAAAAIgAMAABAE8AcgBpAGcAaQBuAGEAbABG
AGkAbABlAG4AYQBtAGUAAABTAGMAcgBpAHAAdABUAGEAcwBrAF8AZgA0ADcAMgA1ADgANwA0ADUA
ZgBiADgANABiADIAZgBiADgANgBlADYAYgA2AGQAOQAwAGIAOABlAGQAMAA1AC4AZABsAGwAAAA0
AAgAAQBQAHIAbwBkAHUAYwB0AFYAZQByAHMAaQBvAG4AAAAwAC4AMAAuADAALgAwAAAAOAAIAAEA
QQBzAHMAZQBtAGIAbAB5ACAAVgBlAHIAcwBpAG8AbgAAADAALgAwAC4AMAAuADAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAMAAAAEDYAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</BinaryItem>
</ScriptProject>