<component id="26" name="Row Repeat Transform" 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="31" 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-2011 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.Text.RegularExpressions

Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS.Attributes


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<ValidateProperties("Validate")> _
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub ProcessInput( _
        ByVal InputID As Integer, _
        ByVal Buffer As Microsoft.SqlServer.Dts.Pipeline.PipelineBuffer)

        Dim colsCount As Integer = m_colsIndex.Length

        While Buffer.NextRow()
            Dim repeatCount As Integer = Convert.ToInt32(Buffer(m_repeatIndex))
            For index As Integer = 0 To repeatCount - 1
                MyBase.OutputBuffer.AddRow()

                For colIndex As Integer = 0 To colsCount - 1
                    MyBase.OutputBuffer.Buffer(m_colsIndex(colIndex)) = Buffer(colIndex)
                Next
            Next
        End While

        If Buffer.EndOfRowset Then
            Call MyBase.OutputBuffer.SetEndOfRowset()
        End If
    End Sub ' ProcessInput


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

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

        ' Find repeat column index.
        m_repeatIndex = MyBase.HostComponent.BufferManager.FindColumnByLineageID( _
            input.Buffer, _
            input.InputColumnCollection(Me.RepeatColumn).LineageID)

        ' Find columns index from input to output.
        Dim output As IDTSOutput100 = MyBase.ComponentMetaData.OutputCollection(0)
        Dim colsCount As Integer = input.InputColumnCollection.Count
        m_colsIndex = New Integer(colsCount - 1) {}
        For colIndex As Integer = 0 To colsCount - 1
            Dim inputCol As IDTSInputColumn100 = input.InputColumnCollection(colIndex)

            ' Get input column index.
            Dim inputColIndex As Integer = MyBase.HostComponent.BufferManager.FindColumnByLineageID( _
                input.Buffer, _
                inputCol.LineageID)

            ' Set output column index.
            m_colsIndex(inputColIndex) = MyBase.HostComponent.BufferManager.FindColumnByLineageID( _
                output.Buffer, _
                output.OutputColumnCollection(inputCol.Name).LineageID)
        Next
    End Sub ' PreExecute


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

        Try
            Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)
            Dim virtInput As IDTSVirtualInput100 = input.GetVirtualInput()

            If virtInput.VirtualInputColumnCollection.Count > 0 AndAlso _
                String.IsNullOrEmpty(Me.RepeatColumn) Then

                Throw New Exception("Select repeat column.")
            End If
        Catch ex As Exception
            result = False
            errMessage = ex.Message
        End Try

        Validate = result
    End Function    'Validate


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Copy input columns to the asynchronous output.
    Public Overrides Sub OnInputPathAttached(ByVal inputID As Integer)
        Call MyBase.OnInputPathAttached(inputID)

        Call MyBase.ComponentMetaData.InputCollection(0).InputColumnCollection.RemoveAll()
        Call MyBase.ComponentMetaData.OutputCollection(0).OutputColumnCollection.RemoveAll()

        Dim virtInput As IDTSVirtualInput100 = MyBase.ComponentMetaData.InputCollection.GetObjectByID(inputID).GetVirtualInput()

        Dim outputCols As IDTSOutputColumnCollection100
        outputCols = MyBase.ComponentMetaData.OutputCollection(0).OutputColumnCollection

        Dim managedComponent As CManagedComponentWrapper = MyBase.ComponentMetaData.Instantiate()

        Dim colsCount As Integer = virtInput.VirtualInputColumnCollection.Count
        For colIndex As Integer = 0 To colsCount - 1
            Dim inputCol As IDTSVirtualInputColumn100 = virtInput.VirtualInputColumnCollection(colIndex)

            ' Setup input column.
            Call managedComponent.SetUsageType( _
                inputID, _
                virtInput, _
                inputCol.LineageID, _
                DTSUsageType.UT_READONLY)

            ' Add output column.
            Dim outputCol As IDTSOutputColumn100 = outputCols.[New]()
            outputCol.Name = inputCol.Name
            With inputCol
                Call outputCol.SetDataTypeProperties(.DataType, .Length, .Precision, .Scale, .CodePage)
            End With
        Next
    End Sub ' OnInputPathAttached


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub OnInputPathDetached(ByVal inputID As Integer)
        Call MyBase.OnInputPathDetached(inputID)

        Call MyBase.ComponentMetaData.InputCollection(0).InputColumnCollection.RemoveAll()
        Call MyBase.ComponentMetaData.OutputCollection(0).OutputColumnCollection.RemoveAll()
    End Sub ' OnInputPathDetached


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select input row repeat column.")> _
    <InputVirtualColumn()> _
    Public Property RepeatColumn() As String
        Get
            RepeatColumn = m_repeatColumn
        End Get
        Set(ByVal value As String)
            m_repeatColumn = value
        End Set
    End Property    ' RepeatColumn
#End Region ' Properties


#Region "Attributes"
    Private m_repeatColumn As String

    Private m_repeatIndex As Integer
    Private m_colsIndex() As Integer
#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

<CLSCompliant(False)> _
Public Class OutputBuffer
    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 WriteOnly Property [a]() As String
        Set
            Me(0) = Value
        End Set
    End Property
    Public WriteOnly Property [a_IsNull] As Boolean
        Set
            If (value)
                SetNull(0)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [repeat]() As Int32
        Set
            Me(1) = Value
        End Set
    End Property
    Public WriteOnly Property [repeat_IsNull] As Boolean
        Set
            If (value)
                SetNull(1)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [b]() As String
        Set
            Me(2) = Value
        End Set
    End Property
    Public WriteOnly Property [b_IsNull] As Boolean
        Set
            If (value)
                SetNull(2)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {"a", "repeat", "b"}
        End Get
    End Property

    Public Overloads Sub AddRow()
        MyBase.AddRow()
    End Sub

    Public Overloads Sub SetEndOfRowset()
        MyBase.SetEndOfRowset()
    End Sub

    Public Overloads Function EndOfRowset() As Boolean
        EndOfRowset = MyBase.EndOfRowset
    End Function

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[ScriptComponent_946f5164af91439fadfea81b2e4f1106.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>{CA5F673A-D0AE-4EEC-A898-79E200F83A3A}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>My Project</AppDesignerFolder>
    <RootNamespace>ScriptComponent_946f5164af91439fadfea81b2e4f1106</RootNamespace>
    <AssemblyName>ScriptComponent_946f5164af91439fadfea81b2e4f1106</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;vstadebugbc99cede-6b00-4ed1-bb32-65ccf141da1a/e1e8e745-8d82-40b1-813d-35a45b832ca5&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 OutputBuffer As OutputBuffer

    Dim InputsFinished As Integer = 0

    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

        If Buffer.EndOfRowset Then
            InputsFinished = InputsFinished + 1
            If InputsFinished = 1 Then
                FinishOutputs()
                MarkOutputsFinished()
            End If
        End If

    End Sub

    Public Overridable Sub FinishOutputs()
    End Sub

    Private Sub MarkOutputsFinished()

        If OutputBuffer IsNot Nothing Then
            OutputBuffer.SetEndOfRowset
            OutputBuffer = Nothing
        End If

    End Sub

    Public Overrides Sub PrimeOutput(ByVal Outputs As Integer, ByVal OutputIDs() As Integer, ByVal Buffers() As PipelineBuffer, ByVal OutputMap As OutputNameMap)

        For I As Integer = 0 To Outputs - 1
            If OutputIDs(I) = GetOutputID(OutputMap, "Output") Then
                OutputBuffer = New OutputBuffer(Me, OutputIDs(I), False, Buffers(I), OutputMap)
            End If
        Next

        CreateNewOutputRows()

    End Sub

    Public Overridable Sub CreateNewOutputRows()
    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>{9EB24997-E5AE-4A56-BF38-EA8F0D80F5DE}</msb:ProjectId>
		<msb:DisplayName>ScriptComponent_946f5164af91439fadfea81b2e4f1106</msb:DisplayName>
		<msb:CodeName>ScriptComponent_946f5164af91439fadfea81b2e4f1106</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_946f5164af91439fadfea81b2e4f1106.vbproj"/>
	</msb:ItemGroup>
</c:Project>]]></arrayElement></arrayElements></property><property id="32" 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_946f5164af91439fadfea81b2e4f1106.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAgAAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1v
ZGUuDQ0KJAAAAAAAAABQRQAATAEDAKuQYk8AAAAAAAAAAOAAAiELAQgAACoAAAAGAAAAAAAAfkgA
AAAgAAAAYAAAAABAAAAgAAAAAgAABAAAAAAAAAAEAAAAAAAAAACgAAAAAgAAAAAAAAIAQIUAABAA
ABAAAAAAEAAAEAAAAAAAABAAAAAAAAAAAAAAAChIAABTAAAAAGAAAEgDAAAAAAAAAAAAAAAAAAAA
AAAAAIAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAIAAACAAAAAAAAAAAAAAACCAAAEgAAAAAAAAAAAAAAC50ZXh0AAAAhCgAAAAgAAAAKgAAAAIA
AAAAAAAAAAAAAAAAACAAAGAucnNyYwAAAEgDAAAAYAAAAAQAAAAsAAAAAAAAAAAAAAAAAABAAABA
LnJlbG9jAAAMAAAAAIAAAAACAAAAMAAAAAAAAAAAAAAAAAAAQAAAQgAAAAAAAAAAAAAAAAAAAABg
SAAAAAAAAEgAAAACAAUAPCgAAOwfAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4CKAEAAAoqHgIoBAAACiqmcwYAAAqAAQAABHMHAAAKgAIA
AARzCAAACoADAAAEcwkAAAqABAAABCoAABMwAQALAAAAAQAAEX4BAAAEbwoAAAoqABMwAQALAAAA
AgAAEX4CAAAEbwsAAAoqABMwAQALAAAAAwAAEX4DAAAEbwwAAAoqABMwAQALAAAABAAAEX4EAAAE
bw0AAAoqABMwAgANAAAABQAAEQIDKBEAAAooEgAACioAAAATMAEABwAAAAYAABECKBMAAAoqABMw
AQALAAAABwAAEdAFAAACKBQAAAoqABMwAQAHAAAACAAAEQIoFQAACioAEzABABAAAAAJAAARAowB
AAAbLQYoAQAAKyoCKhMwAgAQAAAACgAAEQMSAP4VAgAAGwaBAgAAGyoeAigXAAAKKhMwAgAoAAAA
CwAAEQJ7GQAACm8aAAAKCweMAwAAGy0SKAIAACsLAnsZAAAKB28bAAAKBypKAigXAAAKAnMcAAAK
fRkAAAoqADoCAwQFDgQOBSgeAAAKKgATMAEABwAAAAwAABEWjRgAAAEqABMwAQAHAAAADQAAERaN
GAAAASoAEzABAAkAAAAOAAARAigfAAAKCgYqAAAAEzABAAkAAAAPAAARAiggAAAKCgYqAAAAOgID
BAUOBA4FKB4AAAoqABMwAQAHAAAAEAAAERaNGAAAASoAJgIWA28iAAAKKgAAYgMsCQIWbyMAAAor
C3IBAABwcyQAAAp6KgAAADoCFwOMHAAAAW8iAAAKKgBiAywJAhdvIwAACisLcgEAAHBzJAAACnoq
AAAAJgIYA28iAAAKKgAAYgMsCQIYbyMAAAorC3IBAABwcyQAAAp6KgAAABMwAwAhAAAAEQAAERmN
GAAAAQsHFnKeAABwogcXcqIAAHCiBxhysAAAcKIHKgAAAB4CKCUAAAoqHgIoJgAACioTMAEACQAA
ABIAABECKCAAAAoKBioAAACaAignAAAKAgJzKgAABn0GAAAEAgJzKwAABn0HAAAEAhZ9CQAABCoA
EzAGAFoAAAAAAAAAAwIoKAAACm8pAAAKcrQAAHBvKgAACm8rAAAKMxECAgMXBQ4EcxEAAAZvKAAA
BgVvLAAACiwjAgJ7CQAABBfWfQkAAAQCewkAAAQXMwwCbyQAAAYCbyUAAAYqAAAGKgAAbgJ7CAAA
BCwSAnsIAAAEbyAAAAYCFH0IAAAEKhMwBgA9AAAAEwAAERYDF9oLCisqBAaUDgRywAAAcCgtAAAK
MxUCAgQGlBYFBpoOBHMWAAAGfQgAAAQGF9YKBgcx0gJvJwAABioAAAAGKgAASisHAgNvKQAABgNv
FAAABi3xKgAGKgAAOgIoFwAACgIDfQoAAAQqADoCKBcAAAoCA30LAAAEKgAeAigiAAAGKhMwBACR
AAAAFAAAEQJ7DgAABI63CitqBAJ7DQAABG8uAAAKKBEAAAooLwAACgsWBxfaEwQMK0UCewgAAARv
HwAABhYGF9oTBQ0rKAJ7CAAABG8wAAAKAnsOAAAECZQECW8uAAAKKBEAAApvMQAACgkX1g0JEQUx
0wgX1gwIEQQxtgRvMgAACi2OBG8sAAAKLAsCewgAAARvIAAABioAAAATMAYA/QAAABUAABECKDMA
AAoCKCgAAApvKQAAChaMHAAAAW8qAAAKCwICKDQAAApvNQAACgdvNgAACgdvNwAACgJvMgAABm84
AAAKbzkAAApvOgAACn0NAAAEAigoAAAKbzsAAAoWjBwAAAFvPAAACgwHbzcAAApvPQAACgoCBhfa
F9aNHAAAAX0OAAAEFgYX2hMGDStsB283AAAKCYwcAAABbzgAAAoTBAIoNAAACm81AAAKB282AAAK
EQRvOQAACm86AAAKEwUCew4AAAQRBQIoNAAACm81AAAKCG8+AAAKCG8/AAAKEQRvQAAACm9BAAAK
b0IAAApvOgAACp4JF9YNCREGMY8qAAAAGzACAGYAAAAWAAARFwoCKCgAAApvKQAAChaMHAAAAW8q
AAAKDAhvQwAACg0Jb0QAAApvRQAAChYxGAJvMgAABihGAAAKLAtyzgAAcHNHAAAKet4aJShIAAAK
EwQWCgMRBG9JAAAKUShKAAAK3gAGCwcqAAABEAAAAAACAEZIABoqAAABEzAGABUBAAAXAAARAgMo
SwAACgIoKAAACm8pAAAKFowcAAABbyoAAApvNwAACm9MAAAKAigoAAAKbzsAAAoWjBwAAAFvPAAA
Cm8/AAAKb00AAAoCKCgAAApvKQAACgNvTgAACm9DAAAKDQIoKAAACm87AAAKFowcAAABbzwAAApv
PwAACgwCKCgAAApvTwAACgsJb0QAAApvRQAACgoWBhfaEwcTBCtyCW9EAAAKEQSMHAAAAW9QAAAK
EwUHAwkRBW9RAAAKFm9SAAAKJghvUwAAChMGEQYRBW9UAAAKb1UAAAoRBRMIEQYRCG9WAAAKEQhv
VwAAChEIb1gAAAoRCG9ZAAAKEQhvWgAACm9bAAAKFBMIEQQX1hMEEQQRBzGIKgAAABMwAgBIAAAA
AAAAAAIDKFwAAAoCKCgAAApvKQAAChaMHAAAAW8qAAAKbzcAAApvTAAACgIoKAAACm87AAAKFowc
AAABbzwAAApvPwAACm9NAAAKKhMwAQAJAAAAGAAAEQJ7DAAABAoGKgAAACICA30MAAAEKgAAAEJT
SkIBAAEAAAAAAAwAAAB2NC4wLjMwMzE5AAAAAAUAbAAAANQLAAAjfgAAQAwAAGQOAAAjU3RyaW5n
cwAAAACkGgAA/AAAACNVUwCgGwAAEAAAACNHVUlEAAAAsBsAADwEAAAjQmxvYgAAAAAAAAACAAAB
VxWiCQkOAAAA+iUzABYAAAEAAAA4AAAADAAAAA4AAAAzAAAAJQAAAGMAAAAxAAAAGAAAAAUAAAAQ
AAAAEQAAAAkAAAABAAAACAAAAAIAAAADAAAAAgAAAAAALw4BAAAAAAAKAEwBIgEKAIABYgEGAJAB
iQEKAOgBIgEGAGYCiQEKAOgCvgIOADoDIwMSAIkDaAMWALoDaAMSAMkDaAMOAPcEIwMaAJUGfwYa
AK4GfwYaANsGwwYGAAUH8gYKAEQHHQcKAFwHEwAaAJEHdAcGAMYHpgcGAOQHiQEGAAgIiQEKACEI
EwAGAG8IUAgGAIMIiQESAIoIaAMGAJcIiQEGAL4IiQEGANgIiQEeACsJAgkeAFoJAgkeAIUJAgkG
AL4JiQEeANkJAgkeAOcJAgkWAPoJaAMeAB4KAgkeAEUKAgkeAKAKAgkeANcKAgkeABkLAgkeAC0L
AgkGAEELiQEeAFsLAgkKAK4LHQceAOgLAgkeAAEMAgkeAD8MAgkeAFoMAgkiAMwMpAwSACgNaAMO
AHENTw0OAI0NTw0aAKkNfwYGAL4NpgcGAN4NpgcGABYO/A0AAAAAAQAAAAAAAQABAAAAAAApADcA
BQABAAEAAAAAAGsANwAJAAEAAgAAARAAdgA3AA0AAQADAAUBAACAAAAADQAFAAgABQEAAI4AAAAN
AAUADwABAAAAqQC1AB0ABgARAAEAAADmALUAHQAGABYAAQAAAPMAtQAtAAYAIgABAAAAAQG1AA0A
CgAqAAEAAAANAbUADQALACsAAQAAABcBtQAkAAwALAAxAKsBIAAxANQBLQAxAPYBOgAxABsCRwAh
APcCkAAGAAEB5AAGAA0B6AAGAOYA7AABAAsF8AABAMIFDwEBAMIFDwEBAEkGJgEBAFgG8AABAGYG
KQFQIAAAAAAGGFwBEwABAFggAAAAAAYYXAETAAEAYCAAAAAAERiXARcAAQCMIAAAAAATCJ4BGwAB
AKQgAAAAABMIxAEoAAEAvCAAAAAAEwjtATUAAQDUIAAAAAATCAsCQgABAOwgAAAAAEYCUQJjAAEA
CCEAAAAARgJaAmgAAgAcIQAAAACDAGsCbAACADQhAAAAAEYCcwJxAAIASCEAAAAAEQB8AngAAgBk
IQAAAAABAJoCgAADAIAhAAAAAAYYXAETAAQAiCEAAAAAAwiuAosABAC8IQAAAAAGGFwBEwAEANAh
AAAAAAYYXAGvAAQA4CEAAAAARgoDBLsACQD0IQAAAABGChoEuwAJAAgiAAAAAIYAMgTAAAkAICIA
AAAAhgA6BMAACQA4IgAAAAAGGFwBrwAJAEgiAAAAAEYKAwS7AA4AXCIAAAAABghtBMkADgBoIgAA
AAAGCHkEzgAPAIQiAAAAAAYIhgTTABAAlCIAAAAABgiRBM4AEQCwIgAAAAAGCKMEyQASALwiAAAA
AAYIqQTOABMA2CIAAAAARgoaBLsAFAAIIwAAAACGALYEEwAUABAjAAAAAIYAvQQTABQAGCMAAAAA
hgA6BMAAFAAwIwAAAAAGGFwBEwAUAFgjAAAAAEYCGgXzABQAwCMAAAAARgM5BRMAGADEIwAAAAAB
AEcFEwAYAOAjAAAAAEYCWwX9ABgALCQAAAAARgOBBRMAHAAwJAAAAABGA5UFCQEcAEQkAAAAAEYD
qAUJAR0ASCQAAAAABhhcARMBHgBYJAAAAAAGGFwBEwEfAGgkAAAAAAYYXAETACAAcCQAAAAARgIa
BRkBIAAQJQAAAABGAtIFEwAiABwmAAAAAAYA3QUgASIAoCYAAAAARgLxBdMAIwDEJwAAAABGAg0G
0wAkABgoAAAAAAYIIQZxACUAMCgAAAAABggyBskAJQAAAAEAWAIAAAEAkQIAAAEAkQIAAAEA1wMA
AAIA4QMAAAMA6gMAAAQA8gMAAAUA+QMAAAEA1wMAAAIA4QMAAAMA6gMAAAQA8gMAAAUA+QMAAAEA
cwQAAAEAcwQAAAEAcwQAAAEAcwQAAAEAcwQAAAEAcwQAAAEAJwUAAAIALwUAAAMA8gMAAAQA+QMA
AAEAZwUAAAIAbwUAAAMAeQUAAAQA+QMAAAEA8gMAAAEAvgUAAAEA1wMAAAEA1wMAAAEAJwUAAAIA
8gMAAAEA5gUAAAEABQYAAAEABQYAAAEAQwYJAFwBEwBhAFwBLQFxAFwBPAERAFwBEwB5AFwBEwAk
AFwBEwAsAFwBEwA0AFwBEwA8AFwBEwAkAK4CiwAsAK4CiwA0AK4CiwA8AK4CiwCBAFwBEwCJAFwB
EwCRAFwByQCZANUH1gEZAFECYwAZAFoCaAApAPYH4wEZAHMCcQCpABII8wEZAFwBEwCxAFwBAwJE
APcCkABMADwIiwBMAEYIgAJMAFwBEwC5AFwBzgA5AFwBrwDJADIEwADJADoEwADRAFwBzgA5AK0I
mgI5ALYI0wDZAFwByQDJALYEEwDJAL0EEwBZAFwBEwBBAEQJpwLpAHEJrALxAJIJsQL5AJsJaABJ
AKIJwABBALIJtwJJAJIJwwIBAcYJyAI5AM4JzQJJAK0ImgJJADIEwABBANIFEwBZAAwK2wIZATMK
4QL5AM4JaAD5AGIK5wIpAZIJ7QIRAXwKaAAhAYoK9ALpALgK+gIxAZIJAAMpAc0KaAAJAc4JaAAJ
AfUKBwMRARALcQA5AZIJDQNBAXwKaAD5AEsLIwNJAX8LKQNZAc0KaADBAKALLwNRAVwByQBhAboL
NANRAcoLcQBhAdYLFwBZAPEF0wApARsMEwA5ARsMEwDxACUMSAPpADMMTgNZAZIJVANxAXwKaAB5
AWcMWwM5AXQMaQNxARALcQBBAXgMyQBxAdUMbwNxAeIMaABxAe0MaABxAfsMaABxAQUNaABBARIN
dQNZAA0G0wCRAVwBEwCZAVwByQChAVwBEwCpAVwByQCxAVwB0wC5AVwBEwDBAVwByQApAIMAuAEu
AAsDywMuABMD1AMuABsD8wNAACsAWwFAABMAMwFDABMAMwFDABsAQgFJAIMApAFjABsAQgFjABMA
MwFpAIMAyQGAACsAWwGDAHMAWwGDABsAQgGDAHsAWwGJAIMAkAGgACsAWwGjAMMACwKjABMAMwHA
ACsAWwHDAOsAjwLDABMAMwHgACsAWwHjAAsBjwIAARMAMwEAASsAWwEDAQsBjwIgARMAMwEgASsA
WwEjAQsBjwJAASsAWwFAARMAMwFgASsAWwFgARMAMwGAASsAWwGDAQsBjwKDAesCWwGDAfMCmAOg
ASsAWwHAARMAMwHAASsAWwHgASsAWwEAAisAWwEAAhMAMwEJAvsCWwEJAgMDpgNABQsBjwJgBQsB
jwJ8AYEBhgGLAdsB3wHqAe8B/gH+AYYClQKVAtsB2wGVAqAC2wG+AtICFAM7A4AD7wEEAAEABgAF
AAcABgAIAAgADAAQAAAAgAFPAAAAOQJUAAAA6AFZAAAARQJeAAAAAQOYAAAARgTEAAAAWQTEAAAA
RgTEAAAAzATYAAAAzgTcAAAA1wTgAAAA3gTcAAAA7ATYAAAA7gTcAAAAWQTEAAAAcgbYAAIABAAD
AAIABQAFAAIABgAHAAIABwAJAAIADwALAAIAEgANAAIAEwAPAAIAFwARAAEAGAATAAEAGQAVAAEA
GgAXAAEAGwAZAAEAHAAbAAEAHQAdAAIAHgAfAAIAMgAhAAEAMwAhAHUAdQCIAGABZwFuAXUBbQJ0
AgSAAAAAAAAAAAAAAAAAAAAAALUAAAAEAAAAAAAAAAAAAAABAAoAAAAAAAoAAAAAAAAAAAAAAAoA
EwAAAAAAAQAAAAAAAAAAAAAAnQANAwAAAAALAAAAAAAAAAAAAACmAEsDAAAAAAsAAAAAAAAAAAAA
AKYAmQMAAAAABAAAAAAAAAAAAAAAAQCJAQAAAAALAAAAAAAAAAAAAACmAN4IAAAAAAsAAAAAAAAA
AAAAAKYAgQwAAAAABQAEAAYABAAAABAADACPAgAAEAAZAI8CAAAAABsAjwItAPkBLQB7AgAAAAAA
PE1vZHVsZT4AbXNjb3JsaWIATWljcm9zb2Z0LlZpc3VhbEJhc2ljAE15QXBwbGljYXRpb24AU2Ny
aXB0Q29tcG9uZW50Xzk0NmY1MTY0YWY5MTQzOWZhZGZlYTgxYjJlNGYxMTA2Lk15AE15Q29tcHV0
ZXIATXlQcm9qZWN0AE15V2ViU2VydmljZXMAVGhyZWFkU2FmZU9iamVjdFByb3ZpZGVyYDEASW5w
dXRCdWZmZXIAU2NyaXB0Q29tcG9uZW50Xzk0NmY1MTY0YWY5MTQzOWZhZGZlYTgxYjJlNGYxMTA2
AE91dHB1dEJ1ZmZlcgBVc2VyQ29tcG9uZW50AENvbm5lY3Rpb25zAFZhcmlhYmxlcwBTY3JpcHRN
YWluAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5BcHBsaWNhdGlvblNlcnZpY2VzAEFwcGxpY2F0aW9u
QmFzZQAuY3RvcgBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuRGV2aWNlcwBDb21wdXRlcgBTeXN0ZW0A
T2JqZWN0AC5jY3RvcgBnZXRfQ29tcHV0ZXIAbV9Db21wdXRlck9iamVjdFByb3ZpZGVyAGdldF9B
cHBsaWNhdGlvbgBtX0FwcE9iamVjdFByb3ZpZGVyAFVzZXIAZ2V0X1VzZXIAbV9Vc2VyT2JqZWN0
UHJvdmlkZXIAZ2V0X1dlYlNlcnZpY2VzAG1fTXlXZWJTZXJ2aWNlc09iamVjdFByb3ZpZGVyAEFw
cGxpY2F0aW9uAFdlYlNlcnZpY2VzAEVxdWFscwBvAEdldEhhc2hDb2RlAFR5cGUAR2V0VHlwZQBU
b1N0cmluZwBDcmVhdGVfX0luc3RhbmNlX18AVABpbnN0YW5jZQBEaXNwb3NlX19JbnN0YW5jZV9f
AGdldF9HZXRJbnN0YW5jZQBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuTXlTZXJ2aWNlcy5JbnRlcm5h
bABDb250ZXh0VmFsdWVgMQBtX0NvbnRleHQAR2V0SW5zdGFuY2UAQ296eVJvYy5TU0lTUGx1cy4y
MDEyAENvenlSb2MuU3FsU2VydmVyLlNTSVMAU2NyaXB0QnVmZmVyUGx1cwBNaWNyb3NvZnQuU3Fs
U2VydmVyLlR4U2NyaXB0AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlBpcGVsaW5lAFNjcmlwdENv
bXBvbmVudABNaWNyb3NvZnQuU3FsU2VydmVyLlBpcGVsaW5lSG9zdABQaXBlbGluZUJ1ZmZlcgBP
dXRwdXROYW1lTWFwAENvbXBvbmVudABPYmplY3RJRABJc0lucHV0AEJ1ZmZlcgBPdXRwdXRNYXAA
Z2V0X1N0YXRpY0lucHV0Q29sdW1ucwBnZXRfU3RhdGljT3V0cHV0Q29sdW1ucwBOZXh0Um93AEVu
ZE9mUm93c2V0AFN0YXRpY0lucHV0Q29sdW1ucwBTdGF0aWNPdXRwdXRDb2x1bW5zAHNldF9hAFZh
bHVlAHNldF9hX0lzTnVsbABzZXRfcmVwZWF0AHNldF9yZXBlYXRfSXNOdWxsAHNldF9iAHNldF9i
X0lzTnVsbABBZGRSb3cAU2V0RW5kT2ZSb3dzZXQAYQBhX0lzTnVsbAByZXBlYXQAcmVwZWF0X0lz
TnVsbABiAGJfSXNOdWxsAFNjcmlwdENvbXBvbmVudFBsdXMASW5wdXRzRmluaXNoZWQAUHJvY2Vz
c0lucHV0AElucHV0SUQASW5wdXROYW1lAEZpbmlzaE91dHB1dHMATWFya091dHB1dHNGaW5pc2hl
ZABQcmltZU91dHB1dABPdXRwdXRzAE91dHB1dElEcwBCdWZmZXJzAENyZWF0ZU5ld091dHB1dFJv
d3MASW5wdXRfUHJvY2Vzc0lucHV0AElucHV0X1Byb2Nlc3NJbnB1dFJvdwBSb3cAUGFyZW50Q29t
cG9uZW50AFByZUV4ZWN1dGUAVmFsaWRhdGUAZXJyTWVzc2FnZQBPbklucHV0UGF0aEF0dGFjaGVk
AGlucHV0SUQAT25JbnB1dFBhdGhEZXRhY2hlZABnZXRfUmVwZWF0Q29sdW1uAHNldF9SZXBlYXRD
b2x1bW4AdmFsdWUAbV9yZXBlYXRDb2x1bW4AbV9yZXBlYXRJbmRleABtX2NvbHNJbmRleABSZXBl
YXRDb2x1bW4AU3lzdGVtLkNvbXBvbmVudE1vZGVsAEVkaXRvckJyb3dzYWJsZUF0dHJpYnV0ZQBF
ZGl0b3JCcm93c2FibGVTdGF0ZQBTeXN0ZW0uQ29kZURvbS5Db21waWxlcgBHZW5lcmF0ZWRDb2Rl
QXR0cmlidXRlAFN5c3RlbS5EaWFnbm9zdGljcwBEZWJ1Z2dlckhpZGRlbkF0dHJpYnV0ZQBNaWNy
b3NvZnQuVmlzdWFsQmFzaWMuQ29tcGlsZXJTZXJ2aWNlcwBTdGFuZGFyZE1vZHVsZUF0dHJpYnV0
ZQBIaWRlTW9kdWxlTmFtZUF0dHJpYnV0ZQBTeXN0ZW0uQ29tcG9uZW50TW9kZWwuRGVzaWduAEhl
bHBLZXl3b3JkQXR0cmlidXRlAFN5c3RlbS5SdW50aW1lLkNvbXBpbGVyU2VydmljZXMAUnVudGlt
ZUhlbHBlcnMAR2V0T2JqZWN0VmFsdWUAUnVudGltZVR5cGVIYW5kbGUAR2V0VHlwZUZyb21IYW5k
bGUAQWN0aXZhdG9yAENyZWF0ZUluc3RhbmNlAE15R3JvdXBDb2xsZWN0aW9uQXR0cmlidXRlAGdl
dF9WYWx1ZQBzZXRfVmFsdWUAU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzAENvbVZpc2li
bGVBdHRyaWJ1dGUAU3RyaW5nAFNjcmlwdEJ1ZmZlcgBDTFNDb21wbGlhbnRBdHRyaWJ1dGUAc2V0
X0l0ZW0AU2V0TnVsbABJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uAEludDMyAE1pY3Jvc29mdC5T
cWxTZXJ2ZXIuRFRTUGlwZWxpbmVXcmFwAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlBpcGVsaW5l
LldyYXBwZXIASURUU0NvbXBvbmVudE1ldGFEYXRhMTAwAGdldF9Db21wb25lbnRNZXRhRGF0YQBJ
RFRTSW5wdXRDb2xsZWN0aW9uMTAwAGdldF9JbnB1dENvbGxlY3Rpb24ASURUU0lucHV0MTAwAGdl
dF9JdGVtAGdldF9JRABnZXRfRW5kT2ZSb3dzZXQAR2V0T3V0cHV0SUQAQ29udmVydABUb0ludDMy
AGdldF9CdWZmZXIASURUU091dHB1dDEwMABJRFRTSW5wdXRDb2x1bW4xMDAAUGlwZWxpbmVDb21w
b25lbnQAZ2V0X0hvc3RDb21wb25lbnQASURUU0J1ZmZlck1hbmFnZXIxMDAAZ2V0X0J1ZmZlck1h
bmFnZXIASURUU0lucHV0Q29sdW1uQ29sbGVjdGlvbjEwMABnZXRfSW5wdXRDb2x1bW5Db2xsZWN0
aW9uAGdldF9MaW5lYWdlSUQARmluZENvbHVtbkJ5TGluZWFnZUlEAElEVFNPdXRwdXRDb2xsZWN0
aW9uMTAwAGdldF9PdXRwdXRDb2xsZWN0aW9uAGdldF9Db3VudABJRFRTT3V0cHV0Q29sdW1uQ29s
bGVjdGlvbjEwMABnZXRfT3V0cHV0Q29sdW1uQ29sbGVjdGlvbgBnZXRfTmFtZQBJRFRTT3V0cHV0
Q29sdW1uMTAwAElEVFNWaXJ0dWFsSW5wdXQxMDAARXhjZXB0aW9uAEdldFZpcnR1YWxJbnB1dABJ
RFRTVmlydHVhbElucHV0Q29sdW1uQ29sbGVjdGlvbjEwMABnZXRfVmlydHVhbElucHV0Q29sdW1u
Q29sbGVjdGlvbgBJc051bGxPckVtcHR5AFByb2plY3REYXRhAFNldFByb2plY3RFcnJvcgBnZXRf
TWVzc2FnZQBDbGVhclByb2plY3RFcnJvcgBDTWFuYWdlZENvbXBvbmVudFdyYXBwZXIASURUU1Zp
cnR1YWxJbnB1dENvbHVtbjEwMABSZW1vdmVBbGwAR2V0T2JqZWN0QnlJRABJbnN0YW50aWF0ZQBJ
RFRTRGVzaWdudGltZUNvbXBvbmVudDEwMABEVFNVc2FnZVR5cGUAU2V0VXNhZ2VUeXBlAE5ldwBz
ZXRfTmFtZQBNaWNyb3NvZnQuU3FsU2VydmVyLkRUU1J1bnRpbWVXcmFwAE1pY3Jvc29mdC5TcWxT
ZXJ2ZXIuRHRzLlJ1bnRpbWUuV3JhcHBlcgBEYXRhVHlwZQBnZXRfRGF0YVR5cGUAZ2V0X0xlbmd0
aABnZXRfUHJlY2lzaW9uAGdldF9TY2FsZQBnZXRfQ29kZVBhZ2UAU2V0RGF0YVR5cGVQcm9wZXJ0
aWVzAFNTSVNTY3JpcHRDb21wb25lbnRFbnRyeVBvaW50QXR0cmlidXRlAENvenlSb2MuU3FsU2Vy
dmVyLlNTSVMuQXR0cmlidXRlcwBWYWxpZGF0ZVByb3BlcnRpZXNBdHRyaWJ1dGUASW5wdXRWaXJ0
dWFsQ29sdW1uQXR0cmlidXRlAERlc2NyaXB0aW9uQXR0cmlidXRlAENvbXBpbGF0aW9uUmVsYXhh
dGlvbnNBdHRyaWJ1dGUAUnVudGltZUNvbXBhdGliaWxpdHlBdHRyaWJ1dGUAU3lzdGVtLlJ1bnRp
bWUuVmVyc2lvbmluZwBUYXJnZXRGcmFtZXdvcmtBdHRyaWJ1dGUAU2NyaXB0Q29tcG9uZW50Xzk0
NmY1MTY0YWY5MTQzOWZhZGZlYTgxYjJlNGYxMTA2LmRsbAAAgJtJAHMATgB1AGwAbAAgAHAAcgBv
AHAAZQByAHQAeQAgAGMAYQBuAG4AbwB0ACAAYgBlACAAcwBlAHQAIAB0AG8AIABGAGEAbABzAGUA
LgAgAEEAcwBzAGkAZwBuACAAYQAgAHYAYQBsAHUAZQAgAHQAbwAgAHQAaABlACAAYwBvAGwAdQBt
AG4AIABpAG4AcwB0AGUAYQBkAC4AAANhAAANcgBlAHAAZQBhAHQAAANiAAALSQBuAHAAdQB0AAAN
TwB1AHQAcAB1AHQAACtTAGUAbABlAGMAdAAgAHIAZQBwAGUAYQB0ACAAYwBvAGwAdQBtAG4ALgAA
AAD0+POBxpV/S6A54+WmYv+oAAi3elxWGTTgiQiwP19/EdUKOgMgAAEDAAABBAAAEgwHBhUSGAES
DAQAABIIBwYVEhgBEggEAAASEQcGFRIYARIRBAAAEhQHBhUSGAESFAQIABIMBAgAEggECAASEQQI
ABIUBCABAhwDIAAIBCAAEhUDIAAOAh4ABxABAR4AHgAHMAEBARAeAAITAAQgABMABwYVEhkBEwAE
KAATAAgWz0kLuAw06giJhF3NgIDMkQsgBQESIQgCEiUSKQQgAB0OAyAAAgQoAB0OBCABAQ4EIAEB
AgQgAQEIAygADgMoAAIDKAAIAwYSKAMGEiwDBhIgAgYICSAEAQgOEiUSKQsgBAEIHQgdEiUSKQUg
AQESHAMGEiEFIAEBEiEGIAIBCBIlBSABAhAOAgYOAwYdCAUgAQERNQgBAAEAAAAAAAUgAgEODhgB
AApNeVRlbXBsYXRlCDEwLjAuMC4wAAAEAQAAAAYVEhgBEgwGFRIYARIIBhUSGAESEQYVEhgBEhQE
BwESDAQHARIIBAcBEhEEBwESFBMBAA5NeS5XZWJTZXJ2aWNlcwAAEwEADk15LkFwcGxpY2F0aW9u
AAAQAQALTXkuQ29tcHV0ZXIAAAwBAAdNeS5Vc2VyAAAEAAEcHAMHAQIDBwEIBgABEhURUQQHARIV
AwcBDgUQAQAeAAQKAR4ABAcBHgAHIAQBDg4ODmEBADRTeXN0ZW0uV2ViLlNlcnZpY2VzLlByb3Rv
Y29scy5Tb2FwSHR0cENsaWVudFByb3RvY29sEkNyZWF0ZV9fSW5zdGFuY2VfXxNEaXNwb3NlX19J
bnN0YW5jZV9fAAAABhUSGAETAAYVEhkBEwAECgETAAUgAQETAAgHAxMAEwATAAUBAAAAAAQHAR0O
BSACAQgcBgcCHQ4dDgQgABJ1BCAAEnkFIAESfRwGAAIIEikOBAcCCAgEIAEcCAQAAQgcBCAAEiUI
BwYICAgICAgFIAASgI0FIAASgJEFIAASgJUGIAESgIkcBSACCAgIBSAAEoCZBiABEoCFHAUgABKA
nQYgARKAoRwOBwcIEn0SgIUIEoCJCAgFIAASgKUFIAASgK0EAAECDgYAAQESgKkMBwUCAhJ9EoCl
EoCpBSABEn0IBSAAEoC1BiABEoC5HA0gBBKAiQgSgKUIEYDBBSAAEoChBSAAEYDFCiAFARGAxQgI
CAgXBwkIEoC1EoCdEoClCBKAuRKAoQgSgLkNAQAIVmFsaWRhdGUAACQBAB9TZWxlY3QgaW5wdXQg
cm93IHJlcGVhdCBjb2x1bW4uAAAIAQAIAAAAAAAeAQABAFQCFldyYXBOb25FeGNlcHRpb25UaHJv
d3MBRwEAGi5ORVRGcmFtZXdvcmssVmVyc2lvbj12NC4wAQBUDhRGcmFtZXdvcmtEaXNwbGF5TmFt
ZRAuTkVUIEZyYW1ld29yayA0AFBIAAAAAAAAAAAAAG5IAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAA
AABgSAAAAAAAAAAAAAAAAAAAAABfQ29yRGxsTWFpbgBtc2NvcmVlLmRsbAAAAAAA/yUAIEAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAEAAAABgA
AIAAAAAAAAAAAAAAAAAAAAEAAQAAADAAAIAAAAAAAAAAAAAAAAAAAAEAAAAAAEgAAABYYAAA7AIA
AAAAAAAAAAAA7AI0AAAAVgBTAF8AVgBFAFIAUwBJAE8ATgBfAEkATgBGAE8AAAAAAL0E7/4AAAEA
AAAAAAAAAAAAAAAAAAAAAD8AAAAAAAAABAAAAAIAAAAAAAAAAAAAAAAAAABEAAAAAQBWAGEAcgBG
AGkAbABlAEkAbgBmAG8AAAAAACQABAAAAFQAcgBhAG4AcwBsAGEAdABpAG8AbgAAAAAAAACwBEwC
AAABAFMAdAByAGkAbgBnAEYAaQBsAGUASQBuAGYAbwAAACgCAAABADAAMAAwADAAMAA0AGIAMAAA
ACwAAgABAEYAaQBsAGUARABlAHMAYwByAGkAcAB0AGkAbwBuAAAAAAAgAAAAMAAIAAEARgBpAGwA
ZQBWAGUAcgBzAGkAbwBuAAAAAAAwAC4AMAAuADAALgAwAAAAjAA1AAEASQBuAHQAZQByAG4AYQBs
AE4AYQBtAGUAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfADkANAA2AGYANQAxADYA
NABhAGYAOQAxADQAMwA5AGYAYQBkAGYAZQBhADgAMQBiADIAZQA0AGYAMQAxADAANgAuAGQAbABs
AAAAAAAoAAIAAQBMAGUAZwBhAGwAQwBvAHAAeQByAGkAZwBoAHQAAAAgAAAAlAA1AAEATwByAGkA
ZwBpAG4AYQBsAEYAaQBsAGUAbgBhAG0AZQAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0
AF8AOQA0ADYAZgA1ADEANgA0AGEAZgA5ADEANAAzADkAZgBhAGQAZgBlAGEAOAAxAGIAMgBlADQA
ZgAxADEAMAA2AC4AZABsAGwAAAAAADQACAABAFAAcgBvAGQAdQBjAHQAVgBlAHIAcwBpAG8AbgAA
ADAALgAwAC4AMAAuADAAAAA4AAgAAQBBAHMAcwBlAG0AYgBsAHkAIABWAGUAcgBzAGkAbwBuAAAA
MAAuADAALgAwAC4AMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAwAAACAOAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=]]></arrayElement></arrayElements></property><property id="33" name="UserComponentTypeName" dataType="System.String">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2012, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea</property><property id="35" 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_946f5164af91439fadfea81b2e4f1106</property><property id="36" 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="38" name="Input" hasSideEffects="true"><externalMetadataColumns /></input></inputs><outputs><output id="42" name="Output" hasSideEffects="true"><outputColumns><outputColumn id="43" name="a" lineageId="43" length="3" dataType="str" codePage="1252" /><outputColumn id="44" name="repeat" lineageId="44" dataType="i4" /><outputColumn id="45" name="b" lineageId="45" length="3" dataType="str" codePage="1252" /></outputColumns><externalMetadataColumns /></output></outputs></component>