<component id="2" name="Dictionary Destination" componentClassID="{874F7595-FB5F-40FF-96AF-FBFF8250E3EF}" description="Executes a custom script." localeId="1033" version="7" contactInfo="Executes a custom script.;Microsoft Corporation;Microsoft SqlServer v9; © 2004 Microsoft Corporation; All Rights Reserved; http://www.microsoft.com/sql/support;0"><properties><property id="3" name="SourceCode" state="cdata" dataType="System.String" isArray="true" description="Stores the source code of the component" typeConverter="NOTBROWSABLE"><arrayElements arrayElementCount="15"><arrayElement dataType="System.String"><![CDATA[ScriptMain.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' CozyRoc SQL Server Integration Services user script component
'
' Copyright (c) 2006-2010 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 Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS
Imports CozyRoc.SqlServer.SSIS.Attributes


<ValidateProperties("Validate")> _
<FilterProperties("GetProperties")> _
<SortProperties(New String() { _
    "KeyColumn", "ValueColumn", _
    "IsResultCache", "ResultVariable", "ResultCache"})> _
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub Input_ProcessInputRow(ByVal Row As InputBuffer)
        Dim key As Object = Row.Buffer(m_keyIndex)

        Dim keyArray As Byte() = TryCast(key, Byte())
        If Not keyArray Is Nothing Then
            ' Key value is byte array. Transform to base64.
            key = Convert.ToBase64String(keyArray)
        End If

        Try
            Call m_dictionary.Add(key, Row.Buffer(m_valueIndex))
        Catch ex As Exception
            Call FireError_(ex.Message)
        End Try
    End Sub ' Input_ProcessInputRow


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub PreExecute()
        Call MyBase.PreExecute()

        Dim input As IDTSInput100 = Me.ComponentMetaData.InputCollection(0)

        ' Find key column index.
        m_keyIndex = Me.HostComponent.BufferManager.FindColumnByLineageID( _
            input.Buffer, _
            input.InputColumnCollection(Me.KeyColumn).LineageID)

        ' Find value column index.
        m_valueIndex = Me.HostComponent.BufferManager.FindColumnByLineageID( _
            input.Buffer, _
            input.InputColumnCollection(Me.ValueColumn).LineageID)

        If Me.IsResultCache Then
            ' Acquire distributed cache.
            m_connection = CType( _
                Me.ComponentMetaData.RuntimeConnectionCollection("Cache").ConnectionManager.AcquireConnection(Nothing), _
                ICacheConnection)
            m_dictionary = CType(m_connection.Connect(), IDictionary)
        Else
            ' Setup dictionary object.
            Dim vars As IDTSVariables100 = Nothing
            Call Me.VariableDispenser.LockOneForWrite(Me.ResultVariable, vars)
            Try
                Try
                    m_dictionary = CType(vars(Me.ResultVariable).Value, IDictionary)
                Catch ex As Exception
                    ' Dictionary not yet initialized.
                    m_dictionary = New Hashtable()
                    vars(Me.ResultVariable).Value = m_dictionary
                End Try
            Finally
                Call vars.Unlock()
            End Try
        End If
    End Sub ' PreExecute


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub PostExecute()
        Call MyBase.PostExecute()

        m_keyIndex = -1
        m_valueIndex = -1
        m_dictionary = Nothing

        If Not m_connection Is Nothing Then
            Call m_connection.Close()
            m_connection = Nothing
        End If
    End Sub ' PostExecute


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Function Validate(ByRef errMessage As String) As Boolean
        Dim result As Boolean = True

        Try
            If String.IsNullOrEmpty(Me.KeyColumn) Then
                Throw New Exception("Select key column.")
            ElseIf String.IsNullOrEmpty(Me.ValueColumn) Then
                Throw New Exception("Select value column.")
            ElseIf String.IsNullOrEmpty(m_result) Then
                Throw New Exception("Select result.")
            Else
                Dim managedComponent As CManagedComponentWrapper = Me.ComponentMetaData.Instantiate()
                Dim input As IDTSInput100 = Me.ComponentMetaData.InputCollection(0)
                Dim virtInput As IDTSVirtualInput100 = input.GetVirtualInput()

                Call input.InputColumnCollection.RemoveAll()

                ' Setup selected key column.
                Dim keyColumn As IDTSInputColumn100 = managedComponent.SetUsageType( _
                    input.ID, _
                    virtInput, _
                    virtInput.VirtualInputColumnCollection(Me.KeyColumn).LineageID, _
                    DTSUsageType.UT_READONLY)

                ' Setup selected value column.
                Dim valueColumn As IDTSInputColumn100 = managedComponent.SetUsageType( _
                    input.ID, _
                    virtInput, _
                    virtInput.VirtualInputColumnCollection(Me.ValueColumn).LineageID, _
                    DTSUsageType.UT_READONLY)

                If Me.IsResultCache Then
                    Dim conn As IDTSRuntimeConnection100 = Me.ComponentMetaData.RuntimeConnectionCollection.[New]()
                    conn.Name = "Cache"
                    conn.ConnectionManagerID = Me.ResultCache
                Else
                    Call Me.ComponentMetaData.RuntimeConnectionCollection.RemoveAll()
                End If
            End If
        Catch ex As Exception
            result = False
            errMessage = ex.Message
        End Try

        Validate = result
    End Function    'Validate


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Returns list of current properties based on current state.
    Public Function GetProperties() As String()
        Dim result As New ArrayList

        ' Base properties.
        Call result.Add("KeyColumn")
        Call result.Add("ValueColumn")
        Call result.Add("IsResultCache")

        Call result.Add(IIf(Me.IsResultCache, "ResultCache", "ResultVariable"))

        Return CType(result.ToArray(GetType(String)), String())
    End Function    ' GetProperties


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select key column.")> _
    <Category("Input")> _
    <InputVirtualColumn()> _
    Public Property KeyColumn() As String
        Get
            KeyColumn = m_keyColumn
        End Get
        Set(ByVal value As String)
            m_keyColumn = value
        End Set
    End Property    ' KeyColumn


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select value column.")> _
    <Category("Input")> _
    <InputVirtualColumn()> _
    Public Property ValueColumn() As String
        Get
            ValueColumn = m_valueColumn
        End Get
        Set(ByVal value As String)
            m_valueColumn = value
        End Set
    End Property    ' ValueColumn


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specifies if Result property references Distributed Cache.")> _
    <Category("Result")> _
    <RefreshProperties(RefreshProperties.All)> _
    Public Property IsResultCache() As Boolean
        Get
            IsResultCache = m_isResultCache
        End Get
        Set(ByVal value As Boolean)
            m_isResultCache = value
            m_result = String.Empty
        End Set
    End Property    ' IsResultCache


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select variable with dictionary object.")> _
    <Category("Result")> _
    <Variable()> _
    Public Property ResultVariable() As String
        Get
            ResultVariable = m_result
        End Get
        Set(ByVal value As String)
            m_result = value
        End Set
    End Property    ' ResultVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select Distributed Cache.")> _
    <Category("Result")> _
    <Connection("CacheConnectionType")> _
    Public Property ResultCache() As String
        Get
            ResultCache = m_result
        End Get
        Set(ByVal value As String)
            m_result = value
        End Set
    End Property    ' ResultCache
#End Region ' Properties


#Region "Internals"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private ReadOnly Property CacheConnectionType() As String()
        Get
            CacheConnectionType = New String() {"CACHE+"}
        End Get
    End Property    ' CacheConnectionType


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub FireError_(ByVal message As String)
        Dim cancel As Boolean = False
        Call MyBase.ComponentMetaData.FireError( _
            0, _
            "Dictionary Destination", _
            message, _
            String.Empty, _
            0, _
            cancel)
    End Sub ' FireError_
#End Region ' Internals


#Region "Attributes"
    Private m_keyColumn As String
    Private m_valueColumn As String
    Private m_isResultCache As Boolean
    Private m_result As String

    Private m_keyIndex As Integer
    Private m_valueIndex As Integer
    Private m_dictionary As IDictionary
    Private m_connection As ICacheConnection
#End Region ' Attributes
End Class   ' ScriptMain
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[BufferWrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services buffer wrappers
' This module defines classes for accessing data flow buffers
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!


Option Strict Off   ' This allows usage of PipelineBuffer typed accessors.

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class InputBuffer
    Inherits ScriptBufferPlus

    Public Sub New(ByVal Component As ScriptComponent, ByVal ObjectID As Integer, ByVal IsInput As Boolean, ByVal Buffer As PipelineBuffer, ByVal OutputMap As OutputNameMap)
        MyBase.New(Component, ObjectID, IsInput, Buffer, OutputMap)
    End Sub

    Public Overrides ReadOnly Property StaticInputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public Overloads Function NextRow() As Boolean
        NextRow = MyBase.NextRow()
    End Function

    Public Overloads Function EndOfRowset() As Boolean
        EndOfRowset = MyBase.EndOfRowset
    End Function

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[ScriptComponent_6c68f9432c9a4de8b29402396d88cf94.vbproj]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF16LE]]></arrayElement><arrayElement dataType="System.String"><![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>{0A055E3C-0CAF-4E75-9DE6-556C55D27FD6}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>My Project</AppDesignerFolder>
    <RootNamespace>ScriptComponent_6c68f9432c9a4de8b29402396d88cf94</RootNamespace>
    <AssemblyName>ScriptComponent_6c68f9432c9a4de8b29402396d88cf94</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>
  <!-- This sections specifies references for the project. -->
  <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.TxScript, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="System" />
    <Reference Include="System.Data" />
  </ItemGroup>
  <!-- Visual Basic supports Importing namespaces (equivalent to using statements in C#).-->
  <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" />
  <!-- This section defines VSTA properties that describe the host-changable project properties. -->
  <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;vstadebug3a452033-63b1-4b9f-a09f-e7706189da70/8ce299de-920b-46d5-9f4f-f93d88f3cb2a&quot;" />
        <Host Name="SSIS_SC110" />
        <ProjectClient>
          <HostIdentifier>SSIS_SC110</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
  <ItemGroup>
    <Compile Include="ScriptMain.vb" />
    <Compile Include="BufferWrapper.vb" />
    <Compile Include="ComponentWrapper.vb" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="My Project\" />
  </ItemGroup>
  <PropertyGroup>
    <OptionCompare>Binary</OptionCompare>
  </PropertyGroup>
  <PropertyGroup>
    <OptionExplicit>On</OptionExplicit>
  </PropertyGroup>
  <PropertyGroup>
    <OptionStrict>On</OptionStrict>
  </PropertyGroup>
</Project>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[ComponentWrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services component wrapper
' This module defines the base class for your component
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class UserComponent
    Inherits ScriptComponentPlus

    Public Connections As New Connections(Me)
    Public Variables As New Variables(Me)

    Public Overrides Sub ProcessInput(ByVal InputID As Integer, ByVal InputName As String, ByVal Buffer As PipelineBuffer, ByVal OutputMap As OutputNameMap)

        If InputID = MyBase.ComponentMetaData.InputCollection("Input").ID Then
            Input_ProcessInput(New InputBuffer(Me, InputID, True, Buffer, OutputMap))
        End If

    End Sub

    Public Overridable Sub Input_ProcessInput(ByVal Buffer As InputBuffer)

        While Buffer.NextRow()
            Input_ProcessInputRow(Buffer)
        End While

    End Sub

    Public Overridable Sub Input_ProcessInputRow(ByVal Row As InputBuffer)

    End Sub

End Class

Public Class Connections

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

End Class

Public Class Variables

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[Project]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF16LE]]></arrayElement><arrayElement dataType="System.String"><![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:Language>msBuild</msb:Language>
		<msb:NoContent>Reference;Import;Folder</msb:NoContent>
		<msb:ProjectId>{0013C7C7-F02C-4483-ADB5-C0D83DBAD0BD}</msb:ProjectId>
		<msb:DisplayName>ScriptComponent_6c68f9432c9a4de8b29402396d88cf94</msb:DisplayName>
		<msb:CodeName>ScriptComponent_6c68f9432c9a4de8b29402396d88cf94</msb:CodeName>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:Folder Include="My Project\"/>
		<msb:File Include="ScriptMain.vb"/>
		<msb:File Include="BufferWrapper.vb"/>
		<msb:File Include="ComponentWrapper.vb"/>
		<msb:Project Include="ScriptComponent_6c68f9432c9a4de8b29402396d88cf94.vbproj"/>
	</msb:ItemGroup>
</c:Project>]]></arrayElement></arrayElements></property><property id="4" name="BinaryCode" state="cdata" dataType="System.String" isArray="true" description="Stores the binary representation of the component" typeConverter="NOTBROWSABLE"><arrayElements arrayElementCount="2"><arrayElement dataType="System.String"><![CDATA[ScriptComponent_6c68f9432c9a4de8b29402396d88cf94.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
WQJ8AQoA2wKxAg4ALQMWAxIAfANbAxYArQNbAxIAvANbAw4AYAQWAwYAPgYrBg4AVwYWAxoA3gbI
BhoA9wbIBhoAJAcMBwYATgc7BwoAjQdmBwoApQcTABoA2ge9BwYADwjvBwYALQh8AQYAUQh8AQoA
aggTAAYAuAiZCAYAzAh8ARIA0whbAwYA4Ah8AR4AQwkaCR4AcgkaCR4AnQkaCQYAugl8AQYAzwl8
AQoA6glmByIAbwpHCgYAgAp8ARYAhgpbAx4AqgoaCR4A0QoaCR4ACAsaCR4APwsaCR4AggsaCSIA
mwtHCiIA5AtHCiIAIwxHCgYAMwwrBh4ASgwaCR4AYwwaCR4AqwwaCR4A8AwaCR4ACg0aCR4AJQ0a
CQYAZA0rBgoAbg0TAAYAfg18ARIAnA1bAw4A5Q3DDQ4A/Q3DDQ4AFw7DDQ4AMw7DDRoATw7IBhoA
YQ7IBhoAdg7IBhoAkQ7IBg4Aow7DDQ4Atw7DDQYAyQ7vBwYA6Q7vBwYAIQ8HDwAAAAABAAAAAAAB
AAEAAAAAACkANwAFAAEAAQAAAAAAawA3AAkAAQACAAABEAB2ADcADQABAAMABQEAAIAAAAANAAUA
CAAFAQAAjgAAAA0ABQAPAAEAAACpALUAHQAGABEAAQAAAOYAtQAtAAYAFgABAAAA9AC1AA0ACAAa
AAEAAAAAAbUADQAJABsAAQAAAAoBtQAgAAoAHAAxAJ4BIAAxAMcBLQAxAOkBOgAxAA4CRwAhAOoC
kAAGAPQAyQAGAAABzQABAMAE4QABAMAE4QABAOAF+wABAOwF+wABAPoF/gABAAoG+wABABMGAQEB
AB4GAQEBAEoGBAEBAGgGCAFQIAAAAAAGGE8BEwABAFggAAAAAAYYTwETAAEAYCAAAAAAERiKARcA
AQCMIAAAAAATCJEBGwABAKQgAAAAABMItwEoAAEAvCAAAAAAEwjgATUAAQDUIAAAAAATCP4BQgAB
AOwgAAAAAEYCRAJjAAEACCEAAAAARgJNAmgAAgAcIQAAAACDAF4CbAACADQhAAAAAEYCZgJxAAIA
SCEAAAAAEQBvAngAAgBkIQAAAAABAI0CgAADAIAhAAAAAAYYTwETAAQAiCEAAAAAAwihAosABAC8
IQAAAAAGGE8BEwAEANAhAAAAAAYYTwGvAAQA4CEAAAAARgr2A7sACQD0IQAAAABGCg0EuwAJAAgi
AAAAAIYAJQTAAAkAICIAAAAAhgAtBMAACQA4IgAAAAAGGE8BEwAJAFgiAAAAAEYCdATRAAkAiCIA
AAAARgOTBNsADQCcIgAAAABGA6YE2wAOAKAiAAAAAAYYTwHlAA8AsCIAAAAABhhPAeUAEADAIgAA
AAAGGE8BEwARAMgiAAAAAEYCpgTbABEAUCMAAAAARgLQBBMAEgCwJAAAAABGAtsEEwASAOgkAAAA
AAYA5wTrABIASCYAAAAABgD7BLsAEwC4JgAAAAAGCAkFcQATANAmAAAAAAYIFwXxABMA3CYAAAAA
BggrBXEAFAD0JgAAAAAGCDsF8QAUAAAnAAAAAAYISwXAABUAGCcAAAAABghdBfYAFQAsJwAAAAAG
CG8FcQAWAEQnAAAAAAYIggXxABYAUCcAAAAABgiVBXEAFwBoJwAAAAAGCKUF8QAXAHQnAAAAAAEI
tQW7ABgAlCcAAAAAAQDNBfEAGAAAAAEASwIAAAEAhAIAAAEAhAIAAAEAygMAAAIA1AMAAAMA3QMA
AAQA5QMAAAUA7AMAAAEAgQQAAAIAiQQAAAMA5QMAAAQA7AMAAAEA5QMAAAEAvAQAAAEAygMAAAEA
ygMAAAEAvAQAAAEA8AQAAAEAJQUAAAEAJQUAAAEAJQUAAAEAJQUAAAEAJQUAAAEA2AUJAE8BEwBx
AE8BFAGBAE8BIwERAE8BEwCJAE8BEwAkAE8BEwAsAE8BEwA0AE8BEwA8AE8BEwAkAKECiwAsAKEC
iwA0AKECiwA8AKECiwCRAE8BEwCZAE8BEwChAE8B8QCpAB4IvQEZAEQCYwAZAE0CaAApAD8IygEZ
AGYCcQC5AFsI2gEZAE8BEwDBAE8B6gFEAOoCkABMAIUIiwBMAI8IZwJMAE8BEwDJAE8B9gA5AE8B
rwDZACUEwADZAC0EwADhAE8B9gBZAE8BEwBBAFwJgQLpAIkJhgLxAKoJiwL5ALMJaAA5AMQJkQJJ
AKoJlgIJAdcJngJhAOYJpAIRAfYJqgIBAQYKcQARARIKFwBBANAEEwBZAJgKugIpAb8KwAL5AMQJ
aAD5AO4KxgI5AaoJzAJBARsLaAAxASkL0wLpAGIL2QJJAaoJ3wJRAbQL5gJZAcoL7AJpANwL8QJB
AP0L9QJhARMM+wIZAaoJBANpAYUI8QJxAU8BEwBpAY8ICwMZAT0MEwBBANsEEwBpAEQMEwDRAHcM
GwMBAU8B8QDpAIUMIAP5AJEMJgM5AaEMEwCBAc8MLAOJAaoJMgORARsLaACZATINOQNJAT8NRwNR
AUMN8QBRAUwN8QBJAaEMEwCpAU8BEwCpAeYJZgOxAXoNawOpAYQNcgPRAIwN+wDpAJINjAPBAU8B
EwDJAU8BlwPRAU8B8QDZAU8B8QDhAU8BEwDpAU8B8QDxAU8B8QD5AU8BQwQJAk8B8QARAk8BEwAZ
Ak8B+wQhAk8BEwApAk8B8QApAIMAnwEuAAsDAAUuABsDKAUuABMDCQVAACsAQgFAABMAGgFDABsA
KQFDABMAGgFJAIMAiwFjABMAGgFjABsAKQFpAIMAsAGAACsAQgGDAHMAQgGDABsAKQGDAHsAQgGJ
AIMAdwGgACsAQgGjAMMA8gGjABMAGgHAACsAQgHDAOsAdgLDABMAGgHgACsAQgHjAAsBdgIAARMA
GgEAASsAQgEDAQsBdgIJAdsCQgEJAeMCBgQJAesCEQQgARMAGgEgASsAQgEpAdsCQgEpAeMCBgQp
AesCKQRAARMAGgFAASsAQgFJAfMCGgFJAeMCSgRJAesCVgRgASsAQgFgARMAGgFjAcMCnQNjAdMC
+ANjAQsBdgJjAbsCQgFjAcsC5QNpAQMDQgFpAeMCSgRpAesCzgSAASsAQgGJAfsClgSJAesCrwSJ
AeMCSgSgASsAQgHAASsAQgHAARMAGgHgASsAQgEAAhMAGgEAAisAQgFAAwsBdgJgAwsBdgJjAWgB
bQFyAcIBxgHRAdYB5QHlAW0CfAJ8AsIBwgGxAhADTQN9A9YB1gHCAdYB1gGFA8IBBAABAAYABQAH
AAYACwAIAAAAcwFPAAAALAJUAAAA2wFZAAAAOAJeAAAA9AKYAAAAOQTEAAAATATEAAAAdQYMAQAA
fwYMAQAAiwYQAQAAmQYMAQAAqAYMAQAAtAbEAAIABAADAAIABQAFAAIABgAHAAIABwAJAAIADwAL
AAIAEgANAAIAEwAPAAEAIwARAAIAIgARAAIAJAATAAEAJQATAAEAJwAVAAIAJgAVAAEAKQAXAAIA
KAAXAAIAKgAZAAEAKwAZAAIALAAbAHUAdQCIAEcBTgFVAVwBVAJbApsCegMEgAAAAAAAAAAAAAAA
AAAAAAC1AAAABAAAAAAAAAAAAAAAAQAKAAAAAAAKAAAAAAAAAAAAAAAKABMAAAAAAAEAAAAAAAAA
AAAAAJ0AAAMAAAAACwAAAAAAAAAAAAAApgA+AwAAAAALAAAAAAAAAAAAAACmAIwDAAAAAAQAAAAA
AAAAAAAAAAEAfAEAAAAACwAAAAAAAAAAAAAApgD2CAAAAAALAAAAAAAAAAAAAACmACQKAAAAAAUA
BAAGAAQAAAAQAAwAggIAABAAGQCCAgAAAAAbAIICLQDgAS0AYgIAAAAAADxNb2R1bGU+AG1zY29y
bGliAE1pY3Jvc29mdC5WaXN1YWxCYXNpYwBNeUFwcGxpY2F0aW9uAFNjcmlwdENvbXBvbmVudF82
YzY4Zjk0MzJjOWE0ZGU4YjI5NDAyMzk2ZDg4Y2Y5NC5NeQBNeUNvbXB1dGVyAE15UHJvamVjdABN
eVdlYlNlcnZpY2VzAFRocmVhZFNhZmVPYmplY3RQcm92aWRlcmAxAElucHV0QnVmZmVyAFNjcmlw
dENvbXBvbmVudF82YzY4Zjk0MzJjOWE0ZGU4YjI5NDAyMzk2ZDg4Y2Y5NABVc2VyQ29tcG9uZW50
AENvbm5lY3Rpb25zAFZhcmlhYmxlcwBTY3JpcHRNYWluAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5B
cHBsaWNhdGlvblNlcnZpY2VzAEFwcGxpY2F0aW9uQmFzZQAuY3RvcgBNaWNyb3NvZnQuVmlzdWFs
QmFzaWMuRGV2aWNlcwBDb21wdXRlcgBTeXN0ZW0AT2JqZWN0AC5jY3RvcgBnZXRfQ29tcHV0ZXIA
bV9Db21wdXRlck9iamVjdFByb3ZpZGVyAGdldF9BcHBsaWNhdGlvbgBtX0FwcE9iamVjdFByb3Zp
ZGVyAFVzZXIAZ2V0X1VzZXIAbV9Vc2VyT2JqZWN0UHJvdmlkZXIAZ2V0X1dlYlNlcnZpY2VzAG1f
TXlXZWJTZXJ2aWNlc09iamVjdFByb3ZpZGVyAEFwcGxpY2F0aW9uAFdlYlNlcnZpY2VzAEVxdWFs
cwBvAEdldEhhc2hDb2RlAFR5cGUAR2V0VHlwZQBUb1N0cmluZwBDcmVhdGVfX0luc3RhbmNlX18A
VABpbnN0YW5jZQBEaXNwb3NlX19JbnN0YW5jZV9fAGdldF9HZXRJbnN0YW5jZQBNaWNyb3NvZnQu
VmlzdWFsQmFzaWMuTXlTZXJ2aWNlcy5JbnRlcm5hbABDb250ZXh0VmFsdWVgMQBtX0NvbnRleHQA
R2V0SW5zdGFuY2UAQ296eVJvYy5TU0lTUGx1cy4yMDEyAENvenlSb2MuU3FsU2VydmVyLlNTSVMA
U2NyaXB0QnVmZmVyUGx1cwBNaWNyb3NvZnQuU3FsU2VydmVyLlR4U2NyaXB0AE1pY3Jvc29mdC5T
cWxTZXJ2ZXIuRHRzLlBpcGVsaW5lAFNjcmlwdENvbXBvbmVudABNaWNyb3NvZnQuU3FsU2VydmVy
LlBpcGVsaW5lSG9zdABQaXBlbGluZUJ1ZmZlcgBPdXRwdXROYW1lTWFwAENvbXBvbmVudABPYmpl
Y3RJRABJc0lucHV0AEJ1ZmZlcgBPdXRwdXRNYXAAZ2V0X1N0YXRpY0lucHV0Q29sdW1ucwBnZXRf
U3RhdGljT3V0cHV0Q29sdW1ucwBOZXh0Um93AEVuZE9mUm93c2V0AFN0YXRpY0lucHV0Q29sdW1u
cwBTdGF0aWNPdXRwdXRDb2x1bW5zAFNjcmlwdENvbXBvbmVudFBsdXMAUHJvY2Vzc0lucHV0AElu
cHV0SUQASW5wdXROYW1lAElucHV0X1Byb2Nlc3NJbnB1dABJbnB1dF9Qcm9jZXNzSW5wdXRSb3cA
Um93AFBhcmVudENvbXBvbmVudABQcmVFeGVjdXRlAFBvc3RFeGVjdXRlAFZhbGlkYXRlAGVyck1l
c3NhZ2UAR2V0UHJvcGVydGllcwBnZXRfS2V5Q29sdW1uAHNldF9LZXlDb2x1bW4AdmFsdWUAZ2V0
X1ZhbHVlQ29sdW1uAHNldF9WYWx1ZUNvbHVtbgBnZXRfSXNSZXN1bHRDYWNoZQBzZXRfSXNSZXN1
bHRDYWNoZQBnZXRfUmVzdWx0VmFyaWFibGUAc2V0X1Jlc3VsdFZhcmlhYmxlAGdldF9SZXN1bHRD
YWNoZQBzZXRfUmVzdWx0Q2FjaGUAZ2V0X0NhY2hlQ29ubmVjdGlvblR5cGUARmlyZUVycm9yXwBt
ZXNzYWdlAG1fa2V5Q29sdW1uAG1fdmFsdWVDb2x1bW4AbV9pc1Jlc3VsdENhY2hlAG1fcmVzdWx0
AG1fa2V5SW5kZXgAbV92YWx1ZUluZGV4AFN5c3RlbS5Db2xsZWN0aW9ucwBJRGljdGlvbmFyeQBt
X2RpY3Rpb25hcnkASUNhY2hlQ29ubmVjdGlvbgBtX2Nvbm5lY3Rpb24AS2V5Q29sdW1uAFZhbHVl
Q29sdW1uAElzUmVzdWx0Q2FjaGUAUmVzdWx0VmFyaWFibGUAUmVzdWx0Q2FjaGUAQ2FjaGVDb25u
ZWN0aW9uVHlwZQBTeXN0ZW0uQ29tcG9uZW50TW9kZWwARWRpdG9yQnJvd3NhYmxlQXR0cmlidXRl
AEVkaXRvckJyb3dzYWJsZVN0YXRlAFN5c3RlbS5Db2RlRG9tLkNvbXBpbGVyAEdlbmVyYXRlZENv
ZGVBdHRyaWJ1dGUAU3lzdGVtLkRpYWdub3N0aWNzAERlYnVnZ2VySGlkZGVuQXR0cmlidXRlAE1p
Y3Jvc29mdC5WaXN1YWxCYXNpYy5Db21waWxlclNlcnZpY2VzAFN0YW5kYXJkTW9kdWxlQXR0cmli
dXRlAEhpZGVNb2R1bGVOYW1lQXR0cmlidXRlAFN5c3RlbS5Db21wb25lbnRNb2RlbC5EZXNpZ24A
SGVscEtleXdvcmRBdHRyaWJ1dGUAU3lzdGVtLlJ1bnRpbWUuQ29tcGlsZXJTZXJ2aWNlcwBSdW50
aW1lSGVscGVycwBHZXRPYmplY3RWYWx1ZQBSdW50aW1lVHlwZUhhbmRsZQBHZXRUeXBlRnJvbUhh
bmRsZQBBY3RpdmF0b3IAQ3JlYXRlSW5zdGFuY2UATXlHcm91cENvbGxlY3Rpb25BdHRyaWJ1dGUA
Z2V0X1ZhbHVlAHNldF9WYWx1ZQBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMAQ29tVmlz
aWJsZUF0dHJpYnV0ZQBTdHJpbmcAU2NyaXB0QnVmZmVyAENMU0NvbXBsaWFudEF0dHJpYnV0ZQBN
aWNyb3NvZnQuU3FsU2VydmVyLkRUU1BpcGVsaW5lV3JhcABNaWNyb3NvZnQuU3FsU2VydmVyLkR0
cy5QaXBlbGluZS5XcmFwcGVyAElEVFNDb21wb25lbnRNZXRhRGF0YTEwMABnZXRfQ29tcG9uZW50
TWV0YURhdGEASURUU0lucHV0Q29sbGVjdGlvbjEwMABnZXRfSW5wdXRDb2xsZWN0aW9uAElEVFNJ
bnB1dDEwMABnZXRfSXRlbQBnZXRfSUQARXhjZXB0aW9uAGdldF9CdWZmZXIAQ29udmVydABUb0Jh
c2U2NFN0cmluZwBBZGQAUHJvamVjdERhdGEAU2V0UHJvamVjdEVycm9yAGdldF9NZXNzYWdlAENs
ZWFyUHJvamVjdEVycm9yAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRFRTUnVudGltZVdyYXAATWljcm9z
b2Z0LlNxbFNlcnZlci5EdHMuUnVudGltZS5XcmFwcGVyAElEVFNWYXJpYWJsZXMxMDAASW50MzIA
UGlwZWxpbmVDb21wb25lbnQAZ2V0X0hvc3RDb21wb25lbnQASURUU0J1ZmZlck1hbmFnZXIxMDAA
Z2V0X0J1ZmZlck1hbmFnZXIASURUU0lucHV0Q29sdW1uQ29sbGVjdGlvbjEwMABnZXRfSW5wdXRD
b2x1bW5Db2xsZWN0aW9uAElEVFNJbnB1dENvbHVtbjEwMABnZXRfTGluZWFnZUlEAEZpbmRDb2x1
bW5CeUxpbmVhZ2VJRABJRFRTUnVudGltZUNvbm5lY3Rpb25Db2xsZWN0aW9uMTAwAGdldF9SdW50
aW1lQ29ubmVjdGlvbkNvbGxlY3Rpb24ASURUU1J1bnRpbWVDb25uZWN0aW9uMTAwAElEVFNDb25u
ZWN0aW9uTWFuYWdlcjEwMABnZXRfQ29ubmVjdGlvbk1hbmFnZXIAQWNxdWlyZUNvbm5lY3Rpb24A
Q29ubmVjdABJRFRTVmFyaWFibGVEaXNwZW5zZXIxMDAAZ2V0X1ZhcmlhYmxlRGlzcGVuc2VyAExv
Y2tPbmVGb3JXcml0ZQBJRFRTVmFyaWFibGUxMDAASGFzaHRhYmxlAFVubG9jawBDbG9zZQBDTWFu
YWdlZENvbXBvbmVudFdyYXBwZXIASURUU1ZpcnR1YWxJbnB1dDEwMABJc051bGxPckVtcHR5AElu
c3RhbnRpYXRlAEdldFZpcnR1YWxJbnB1dABSZW1vdmVBbGwASURUU1ZpcnR1YWxJbnB1dENvbHVt
bkNvbGxlY3Rpb24xMDAAZ2V0X1ZpcnR1YWxJbnB1dENvbHVtbkNvbGxlY3Rpb24ASURUU1ZpcnR1
YWxJbnB1dENvbHVtbjEwMABJRFRTRGVzaWdudGltZUNvbXBvbmVudDEwMABEVFNVc2FnZVR5cGUA
U2V0VXNhZ2VUeXBlAE5ldwBzZXRfTmFtZQBzZXRfQ29ubmVjdGlvbk1hbmFnZXJJRABBcnJheUxp
c3QASW50ZXJhY3Rpb24ASUlmAEFycmF5AFRvQXJyYXkARW1wdHkARmlyZUVycm9yAFNTSVNTY3Jp
cHRDb21wb25lbnRFbnRyeVBvaW50QXR0cmlidXRlAENvenlSb2MuU3FsU2VydmVyLlNTSVMuQXR0
cmlidXRlcwBTb3J0UHJvcGVydGllc0F0dHJpYnV0ZQBGaWx0ZXJQcm9wZXJ0aWVzQXR0cmlidXRl
AFZhbGlkYXRlUHJvcGVydGllc0F0dHJpYnV0ZQBJbnB1dFZpcnR1YWxDb2x1bW5BdHRyaWJ1dGUA
Q2F0ZWdvcnlBdHRyaWJ1dGUARGVzY3JpcHRpb25BdHRyaWJ1dGUAUmVmcmVzaFByb3BlcnRpZXNB
dHRyaWJ1dGUAUmVmcmVzaFByb3BlcnRpZXMAQ29ubmVjdGlvbkF0dHJpYnV0ZQBWYXJpYWJsZUF0
dHJpYnV0ZQBDb21waWxhdGlvblJlbGF4YXRpb25zQXR0cmlidXRlAFJ1bnRpbWVDb21wYXRpYmls
aXR5QXR0cmlidXRlAFN5c3RlbS5SdW50aW1lLlZlcnNpb25pbmcAVGFyZ2V0RnJhbWV3b3JrQXR0
cmlidXRlAFNjcmlwdENvbXBvbmVudF82YzY4Zjk0MzJjOWE0ZGU4YjI5NDAyMzk2ZDg4Y2Y5NC5k
bGwAAAALSQBuAHAAdQB0AAALQwBhAGMAaABlAAAlUwBlAGwAZQBjAHQAIABrAGUAeQAgAGMAbwBs
AHUAbQBuAC4AAClTAGUAbABlAGMAdAAgAHYAYQBsAHUAZQAgAGMAbwBsAHUAbQBuAC4AAB1TAGUA
bABlAGMAdAAgAHIAZQBzAHUAbAB0AC4AABNLAGUAeQBDAG8AbAB1AG0AbgAAF1YAYQBsAHUAZQBD
AG8AbAB1AG0AbgAAG0kAcwBSAGUAcwB1AGwAdABDAGEAYwBoAGUAABdSAGUAcwB1AGwAdABDAGEA
YwBoAGUAAB1SAGUAcwB1AGwAdABWAGEAcgBpAGEAYgBsAGUAAA1DAEEAQwBIAEUAKwAALUQAaQBj
AHQAaQBvAG4AYQByAHkAIABEAGUAcwB0AGkAbgBhAHQAaQBvAG4AAAAAAPpnegklJYdOqNler06U
xWsACLd6XFYZNOCJCLA/X38R1Qo6AyAAAQMAAAEEAAASDAcGFRIYARIMBAAAEggHBhUSGAESCAQA
ABIRBwYVEhgBEhEEAAASFAcGFRIYARIUBAgAEgwECAASCAQIABIRBAgAEhQEIAECHAMgAAgEIAAS
FQMgAA4CHgAHEAEBHgAeAAcwAQEBEB4AAhMABCAAEwAHBhUSGQETAAQoABMACBbPSQu4DDTqCImE
Xc2AgMyRCyAFARIhCAISJRIpBCAAHQ4DIAACBCgAHQ4DBhIkAwYSKAkgBAEIDhIlEikFIAEBEhwD
BhIhBSABARIhBSABAhAOBCABAQ4EIAEBAgIGDgIGAgIGCAMGEjEDBhI1AygADgMoAAIFIAEBET0I
AQABAAAAAAAFIAIBDg4YAQAKTXlUZW1wbGF0ZQgxMC4wLjAuMAAABAEAAAAGFRIYARIMBhUSGAES
CAYVEhgBEhEGFRIYARIUBAcBEgwEBwESCAQHARIRBAcBEhQTAQAOTXkuV2ViU2VydmljZXMAABMB
AA5NeS5BcHBsaWNhdGlvbgAAEAEAC015LkNvbXB1dGVyAAAMAQAHTXkuVXNlcgAABAABHBwDBwEC
AwcBCAYAARIVEVkEBwESFQMHAQ4FEAEAHgAECgEeAAQHAR4AByAEAQ4ODg5hAQA0U3lzdGVtLldl
Yi5TZXJ2aWNlcy5Qcm90b2NvbHMuU29hcEh0dHBDbGllbnRQcm90b2NvbBJDcmVhdGVfX0luc3Rh
bmNlX18TRGlzcG9zZV9fSW5zdGFuY2VfXwAAAAYVEhgBEwAGFRIZARMABAoBEwAFIAEBEwAIBwMT
ABMAEwAFAQAAAAAEBwEdDgQgABJ1BCAAEnkFIAESfRwEIAASJQQgARwIAh0FBQABDh0FBSACARwc
BgABARKAgQgHAxwdBRKAgQUgABKAlQUgABKAmQUgABKAnQYgARKAoRwFIAIICAgFIAASgKUGIAES
gKkcBSAAEoCtBCABHBwDIAAcBSAAEoCxCCACAQ4QEoCNBiABEoC1HAQgAQEcCgcDEn0SgI0SgIEE
AAECDgUgABKAvQUgABKAwQUgABKAxQYgARKAyRwNIAQSgKEIEoDBCBGA0QUgABKAqRgHCQICEn0S
gKESgL0SgKESgMESgKkSgIEEIAEIHAYAAxwCHBwHIAESgN0SFQIdDgcHAh0OEoDVBgcCHQ4dDgog
BgEIDg4OCBACBSABAR0ORwEABQAAAAlLZXlDb2x1bW4LVmFsdWVDb2x1bW4NSXNSZXN1bHRDYWNo
ZQ5SZXN1bHRWYXJpYWJsZQtSZXN1bHRDYWNoZQAAEgEADUdldFByb3BlcnRpZXMAAA0BAAhWYWxp
ZGF0ZQAACgEABUlucHV0AAAXAQASU2VsZWN0IGtleSBjb2x1bW4uAAAZAQAUU2VsZWN0IHZhbHVl
IGNvbHVtbi4AAAYgAQERgQELAQAGUmVzdWx0AAA/AQA6U3BlY2lmaWVzIGlmIFJlc3VsdCBwcm9w
ZXJ0eSByZWZlcmVuY2VzIERpc3RyaWJ1dGVkIENhY2hlLgAAGAEAE0NhY2hlQ29ubmVjdGlvblR5
cGUAAB4BABlTZWxlY3QgRGlzdHJpYnV0ZWQgQ2FjaGUuAAAsAQAnU2VsZWN0IHZhcmlhYmxlIHdp
dGggZGljdGlvbmFyeSBvYmplY3QuAAAEIAEBCAgBAAgAAAAAAB4BAAEAVAIWV3JhcE5vbkV4Y2Vw
dGlvblRocm93cwFHAQAaLk5FVEZyYW1ld29yayxWZXJzaW9uPXY0LjABAFQOFEZyYW1ld29ya0Rp
c3BsYXlOYW1lEC5ORVQgRnJhbWV3b3JrIDRYSgAAAAAAAAAAAABuSgAAACAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAYEoAAAAAAAAAAF9Db3JEbGxNYWluAG1zY29yZWUuZGxsAAAAAAD/JQAgQAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAQAAAAGAAA
gAAAAAAAAAAAAAAAAAAAAQABAAAAMAAAgAAAAAAAAAAAAAAAAAAAAQAAAAAASAAAAFhgAADsAgAA
AAAAAAAAAADsAjQAAABWAFMAXwBWAEUAUgBTAEkATwBOAF8ASQBOAEYATwAAAAAAvQTv/gAAAQAA
AAAAAAAAAAAAAAAAAAAAPwAAAAAAAAAEAAAAAgAAAAAAAAAAAAAAAAAAAEQAAAABAFYAYQByAEYA
aQBsAGUASQBuAGYAbwAAAAAAJAAEAAAAVAByAGEAbgBzAGwAYQB0AGkAbwBuAAAAAAAAALAETAIA
AAEAUwB0AHIAaQBuAGcARgBpAGwAZQBJAG4AZgBvAAAAKAIAAAEAMAAwADAAMAAwADQAYgAwAAAA
LAACAAEARgBpAGwAZQBEAGUAcwBjAHIAaQBwAHQAaQBvAG4AAAAAACAAAAAwAAgAAQBGAGkAbABl
AFYAZQByAHMAaQBvAG4AAAAAADAALgAwAC4AMAAuADAAAACMADUAAQBJAG4AdABlAHIAbgBhAGwA
TgBhAG0AZQAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8ANgBjADYAOABmADkANAAz
ADIAYwA5AGEANABkAGUAOABiADIAOQA0ADAAMgAzADkANgBkADgAOABjAGYAOQA0AC4AZABsAGwA
AAAAACgAAgABAEwAZQBnAGEAbABDAG8AcAB5AHIAaQBnAGgAdAAAACAAAACUADUAAQBPAHIAaQBn
AGkAbgBhAGwARgBpAGwAZQBuAGEAbQBlAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABvAG4AZQBuAHQA
XwA2AGMANgA4AGYAOQA0ADMAMgBjADkAYQA0AGQAZQA4AGIAMgA5ADQAMAAyADMAOQA2AGQAOAA4
AGMAZgA5ADQALgBkAGwAbAAAAAAANAAIAAEAUAByAG8AZAB1AGMAdABWAGUAcgBzAGkAbwBuAAAA
MAAuADAALgAwAC4AMAAAADgACAABAEEAcwBzAGUAbQBiAGwAeQAgAFYAZQByAHMAaQBvAG4AAAAw
AC4AMAAuADAALgAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADAAAAIA6AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==]]></arrayElement></arrayElements></property><property id="9" name="UserComponentTypeName" dataType="System.String">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2012, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea</property><property id="11" name="VSTAProjectName" dataType="System.String" description="Specifies the name of the Microsoft Visual Studio Tools for Applications project. Project names must be unique within a package." typeConverter="NOTBROWSABLE">ScriptComponent_6c68f9432c9a4de8b29402396d88cf94</property><property id="12" name="ScriptLanguage" dataType="System.String" description="Specifies the programming language used by the script." typeConverter="Microsoft.SqlServer.VSTAHosting.ScriptingLanguages, Microsoft.SqlServer.VSTAScriptingLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">VisualBasic</property></properties><inputs><input id="13" name="Input" hasSideEffects="true"></input></inputs></component>