<component id="2" name="Null" componentClassID="Microsoft.ManagedComponentHost" description="Executes a custom script." localeId="1033" version="9" 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-2013 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 System.Collections

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


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<SortProperties(New String() { _
    "InputColumns", "Action", _
    "IsReplaceValueVariable", "ReplaceValue", "ReplaceValueVariable", _
    "IsMatchValueVariable", "MatchValue", "MatchValueVariable"})> _
<ValidateProperties("Validate")> _
<FilterProperties("GetProperties")> _
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent


    Private Const ColumnSeparator As String = "," + vbLf


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub Input_ProcessInputRow(ByVal Row As InputBuffer)
        Try
            Dim colsCount As Integer = m_inputIdx.Length
            For colIndex As Integer = 0 To colsCount - 1
                Dim bufIndex As Integer = m_inputIdx(colIndex)
                Dim dt As DataType = m_inputTypes(colIndex)

                ' Get input value.
                Dim inputValue As String = Nothing
                If Not Row.Buffer.IsNull(bufIndex) Then
                    Select Case dt
                        Case DataType.DT_TEXT, DataType.DT_NTEXT
                            inputValue = Row.Buffer.GetString(bufIndex).Trim()

                        Case Else
                            inputValue = Row.Buffer(bufIndex).ToString().Trim()
                    End Select
                End If

                Dim outputValue As String = inputValue
                Select Case Me.Action
                    Case ActionTypes.IsNull
                        If inputValue Is Nothing Then
                            ' NULL value. Replace with value.
                            outputValue = m_replaceValue
                        End If

                    Case ActionTypes.SetNull
                        If Not inputValue Is Nothing AndAlso _
                            m_matchValue.Contains(inputValue) Then
                            ' Value match. Replace with NULL.
                            outputValue = Nothing
                        End If
                End Select

                If outputValue = inputValue Then
                    ' No need to replace.
                    Continue For
                End If

                ' Replace value.
                If outputValue Is Nothing Then
                    Call Row.Buffer.SetNull(bufIndex)
                Else
                    Select Case dt
                        Case DataType.DT_TEXT, DataType.DT_NTEXT
                            Call Row.Buffer.SetString(bufIndex, outputValue)

                        Case DataType.DT_DATE
                            Row.Buffer(bufIndex) = Convert.ToDateTime(outputValue)

                        Case DataType.DT_GUID
                            Row.Buffer(bufIndex) = New Guid(outputValue)

                        Case Else
                            Row.Buffer(bufIndex) = outputValue
                    End Select
                End If
            Next
        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)

        ' Setup dynamic input columns indexes.
        Dim colsCount As Integer = input.InputColumnCollection.Count
        m_inputIdx = New Integer(colsCount - 1) {}
        m_inputTypes = New DataType(colsCount - 1) {}
        For colIndex As Integer = 0 To colsCount - 1
            Dim inputCol As IDTSInputColumn100 = input.InputColumnCollection(colIndex)
            m_inputIdx(colIndex) = Me.HostComponent.BufferManager.FindColumnByLineageID( _
                input.Buffer, _
                inputCol.LineageID)
            m_inputTypes(colIndex) = inputCol.DataType
        Next

        Dim actionValue As String = m_value
        If m_isValueVar Then
            ' Action value is contained in variable.
            actionValue = GetVariable_(actionValue).ToString()
        End If

        If Me.Action = ActionTypes.IsNull Then
            ' Setup replace value.
            m_replaceValue = Regex.Unescape(actionValue)
        Else
            ' Setup match value.
            m_matchValue = New Hashtable()
            Dim valueList() As String = CStr(actionValue).Split( _
                New String() {vbLf}, _
                StringSplitOptions.None)
            For Each matchValue As String In valueList
                If Not String.IsNullOrEmpty(matchValue) Then
                    matchValue = Regex.Unescape(matchValue)
                End If

                m_matchValue(matchValue) = Nothing
            Next
        End If
    End Sub ' PreExecute


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

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

            ' Setup input columns based on selection.
            Dim selectedCols() As String = CStr(Me.InputColumns).Split( _
                New String() {ColumnSeparator}, _
                StringSplitOptions.RemoveEmptyEntries)
            Dim virtInput As IDTSVirtualInput100 = input.GetVirtualInput()

            Call input.InputColumnCollection.RemoveAll()

            For Each col As String In selectedCols
                Dim virtColumn As IDTSVirtualInputColumn100 = virtInput.VirtualInputColumnCollection(col)
                Call virtInput.SetUsageType(virtColumn.LineageID, DTSUsageType.UT_READWRITE)
            Next

            result = True
        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

        ' Setup static.
        Call result.Add("InputColumns")
        Call result.Add("Action")

        ' Setup dynamic.
        Select Case Me.Action
            Case ActionTypes.IsNull
                Call result.Add("IsReplaceValueVariable")
                Call result.Add(IIf(Me.IsReplaceValueVariable, "ReplaceValueVariable", "ReplaceValue"))

            Case ActionTypes.SetNull
                Call result.Add("IsMatchValueVariable")
                Call result.Add(IIf(Me.IsMatchValueVariable, "MatchValueVariable", "MatchValue"))
        End Select

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


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

        ' Initialize with all string columns selected.
        Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)
        Dim virtInput As IDTSVirtualInput100 = input.GetVirtualInput()
        For Each column As IDTSVirtualInputColumn100 In virtInput.VirtualInputColumnCollection
            If column.DataType <> DataType.DT_STR AndAlso _
                column.DataType <> DataType.DT_WSTR AndAlso _
                column.DataType <> DataType.DT_TEXT AndAlso _
                column.DataType <> DataType.DT_NTEXT Then

                Continue For
            End If

            ' String column.
            Call virtInput.SetUsageType(column.LineageID, DTSUsageType.UT_READWRITE)
        Next
    End Sub ' OnInputPathAttached


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

        Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)
        Call input.InputColumnCollection.RemoveAll()
    End Sub


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select input columns you want to process.")> _
    <InputVirtualColumn("", False)> _
    Public Property InputColumns() As String
        Get
            InputColumns = m_inputCols
        End Get
        Set(ByVal value As String)
            Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)
            If input.IsAttached Then
                If String.IsNullOrEmpty(value) Then
                    ' Setup based on input columns collection.
                    value = GetInputCols_()
                End If
            Else
                ' Reset when no input is attached.
                value = String.Empty
            End If

            m_inputCols = value
        End Set
    End Property    ' InputColumns


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select action.")> _
    <RefreshProperties(RefreshProperties.All)> _
    Public Property Action() As ActionTypes
        Get
            Action = m_action
        End Get
        Set(ByVal value As ActionTypes)
            If m_action <> value Then
                m_action = value
                m_value = String.Empty
            End If
        End Set
    End Property    ' Action


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specifies if ReplaceValue property references package variable.")> _
    <RefreshProperties(RefreshProperties.All)> _
    <NonEssential()> _
    Public Property IsReplaceValueVariable() As Boolean
        Get
            IsReplaceValueVariable = m_isValueVar
        End Get
        Set(ByVal value As Boolean)
            If m_isValueVar <> value Then
                m_isValueVar = value
                m_value = String.Empty
            End If
        End Set
    End Property    ' IsReplaceValueVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specify replace value when input is NULL.")> _
    Public Property ReplaceValue() As String
        Get
            ReplaceValue = m_value
        End Get
        Set(ByVal value As String)
            m_value = value
        End Set
    End Property    ' ReplaceValue


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specifies variable containing replace value.")> _
    <Variable()> _
    Public Property ReplaceValueVariable() As String
        Get
            ReplaceValueVariable = m_value
        End Get
        Set(ByVal value As String)
            m_value = value
        End Set
    End Property    ' ReplaceValueVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specifies if MatchValue property references package variable.")> _
    <RefreshProperties(RefreshProperties.All)> _
    <NonEssential()> _
    Public Property IsMatchValueVariable() As Boolean
        Get
            IsMatchValueVariable = m_isValueVar
        End Get
        Set(ByVal value As Boolean)
            If m_isValueVar <> value Then
                m_isValueVar = value
                m_value = String.Empty
            End If
        End Set
    End Property    ' IsMatchValueVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specify match value to replace with NULL. Multiple match values are separated with newline.")> _
    <TextDialog("Specify match value.")> _
    Public Property MatchValue() As String
        Get
            MatchValue = m_value
        End Get
        Set(ByVal value As String)
            m_value = value
        End Set
    End Property    ' MatchValue


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specifies variable containing match value.")> _
    <Variable()> _
    Public Property MatchValueVariable() As String
        Get
            MatchValueVariable = m_value
        End Get
        Set(ByVal value As String)
            m_value = value
        End Set
    End Property    ' MatchValueVariable
#End Region ' Properties


#Region "Internals"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub FireError_(ByVal message As String)
        Dim cancel As Boolean
        Call Me.ComponentMetaData.FireError( _
            0, _
            "Null Transformation", _
            message, _
            String.Empty, _
            0, _
            cancel)
    End Sub ' FireError_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetVariable_(ByVal varName As String) As Object
        Dim result As Object
        Dim vars As IDTSVariables100 = Nothing

        Call Me.VariableDispenser.LockOneForRead(varName, vars)
        Try
            result = vars(varName).Value
        Finally
            Call vars.Unlock()
        End Try

        GetVariable_ = result
    End Function    ' GetVariable_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetInputCols_() As String
        Dim result As String = String.Empty

        Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)
        For Each column As IDTSInputColumn100 In input.InputColumnCollection
            If Not String.IsNullOrEmpty(result) Then
                result += ColumnSeparator
            End If

            result += column.Name
        Next

        GetInputCols_ = result
    End Function    ' GetInputCols_
#End Region ' Internals


#Region "Attributes"
    Public Enum ActionTypes
        IsNull
        SetNull
    End Enum    ' ActionTypes

    Private m_inputCols As String = String.Empty
    Private m_action As ActionTypes = ActionTypes.IsNull
    Private m_isValueVar As Boolean
    Private m_value As String
    Private m_inputIdx() As Integer
    Private m_inputTypes() As DataType
    Private m_replaceValue As String
    Private m_matchValue As Hashtable
#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_e52963cf4d394e2c80bfd3c9df07cdd7.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>{205A2432-756C-4C6F-91FC-905BB20C5D6F}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>My Project</AppDesignerFolder>
    <RootNamespace>ScriptComponent_e52963cf4d394e2c80bfd3c9df07cdd7</RootNamespace>
    <AssemblyName>ScriptComponent_e52963cf4d394e2c80bfd3c9df07cdd7</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <OptionCompare>Binary</OptionCompare>
    <OptionExplicit>On</OptionExplicit>
    <OptionStrict>On</OptionStrict>
  </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.2014, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files (x86)\Microsoft SQL Server\120\SDK\Assemblies\CozyRoc.SSISPlus.2014.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=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="System">
      <Private>False</Private>
    </Reference>
    <Reference Include="System.Data">
      <Private>False</Private>
    </Reference>
    <Reference Include="Microsoft.SqlServer.ManagedDTS">
      <Private>False</Private>
    </Reference>
  </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="" />
        <Host Name="SSIS_SC120" />
        <ProjectClient>
          <HostIdentifier>SSIS_SC120</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>
</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:CodeName>ScriptComponent_e52963cf4d394e2c80bfd3c9df07cdd7</msb:CodeName>
		<msb:DisplayName>ScriptComponent_e52963cf4d394e2c80bfd3c9df07cdd7</msb:DisplayName>
		<msb:ProjectId>{C525FC11-2959-4F0D-840F-D51FEF3CE5B7}</msb:ProjectId>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:Project Include="ScriptComponent_e52963cf4d394e2c80bfd3c9df07cdd7.vbproj"/>
		<msb:Folder Include="My Project\"/>
		<msb:File Include="ScriptMain.vb"/>
		<msb:File Include="ComponentWrapper.vb"/>
		<msb:File Include="BufferWrapper.vb"/>
	</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_e52963cf4d394e2c80bfd3c9df07cdd7.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
RgKABNEACQCIIgAAAABGA58E2wANAJwiAAAAAEYDsgTbAA4AoCIAAAAABhhbAeUADwCwIgAAAAAG
GFsB5QAQAMAiAAAAAAYYWwETABEA3CIAAAAARgKyBNsAEQCEJAAAAABGAuwEEwASAMwlAAAAAAYA
9wTzABIAlCYAAAAABgALBbsAEwBIJwAAAABGAhkF+QATAAQoAAAAAEYCNQX5ABQAPCgAAAAABghJ
BXEAFQBUKAAAAAAGCFoF/gAVAKAoAAAAAAYIcQUDARYAuCgAAAAABgh8BQgBFgDYKAAAAAAGCIcF
wAAXAPAoAAAAAAYIogUOARcAECkAAAAABgi9BXEAGAAoKQAAAAAGCM4F/gAYADQpAAAAAAYI3wVx
ABkATCkAAAAABgj4Bf4AGQBYKQAAAAAGCBEGwAAaAHApAAAAAAYIKgYOARoAkCkAAAAABghDBnEA
GwCoKQAAAAAGCFIG/gAbALQpAAAAAAYIYQZxABwAzCkAAAAABgh4Bv4AHADYKQAAAAABAI8G/gAd
AAAqAAAAAAEAogYTAR4AUCoAAAAAAQC3BnEAHwAAAAEAVwIAAAEAkAIAAAEAkAIAAAEA1gMAAAIA
4AMAAAMA6QMAAAQA8QMAAAUA+AMAAAEAjQQAAAIAlQQAAAMA8QMAAAQA+AMAAAEA8QMAAAEAyAQA
AAEA1gMAAAEA1gMAAAEAyAQAAAEAAAUAAAEALQUAAAEALQUAAAEAawUAAAEAawUAAAEAawUAAAEA
awUAAAEAawUAAAEAawUAAAEAawUAAAEAawUAAAEAmgYAAAEArwYJAFsBEwB5AFsBRgGJAFsBVQER
AFsBEwCRAFsBEwAkAFsBEwAsAFsBEwA0AFsBEwA8AFsBEwAkAK0CiwAsAK0CiwA0AK0CiwA8AK0C
iwCZAFsBEwChAFsBEwCpAFsB/gCxAIYJ6gEZAFACYwAZAFkCaAApAKcJ9wEZAHICcQDBAMMJBwIZ
AFsBEwDJAFsBFwJEAPYCkABMAO0JiwBMAPcJlAJMAFsBEwDRAFsBDgE5AFsBrwDhADEEwADhADkE
wADpAFsBDgFZAFsBEwBBAMQKrgLxAPEKswL5ABILuAIBARsLaADZACIL6wA5ADcLvwJJACEIxAJJ
AEILyQLZAEwLcQBJABILzgJpAFELYwAZAWQL0wJJACgI+QBJAHIL2gIhAY0L4AJJAJgL5wIRAVsB
/gAxAa0L7QIJAb0LcQAxAckLFwBBAOwEEwABAREMCwNJASsMaABJARILEQNZAEcMGANRAW4MHgMB
ATcLaAA5AYAMaABZAY4MJAM5AaQMKgNhAdYMLwNpAFsBEwDZAPIMNAPZAPgMPgNpAJgLQwMBATQN
XgNJAUQNEwBxAXINZAOBARILagN5AYAMaABxAaANcQORAVsBEwCRAbcNkgOZAccNlwORAdENngNZ
ABkF+QCBAeUNswOpAfMNuQN5AaQMKgOpAf8NwACxARQOEwBZADUF+QABARwOwADxACsO1wNBAF8O
4gPBAXUO6AO5ARIL8QPJAe0JuQO5AZQOEwBJAeUNswPZAJsOAAQ5AaIOcQDRAVsBEwDZAVsB/gDh
AVsB/gDpAVsBNQTxAVsBEwD5AVsBxQQJAlsB/gARAlsB/gAZAlsBEwAhAlsBdAYpAlsB+QAxAlsB
EwA5AlsB/gAOACgA7gAIAFAAPAEIAFQAQQEpAIMApAEuAFsDsAYuAGMDuQYuAGsD2AZAACsAQQFA
ABMATAFDABsAWwFDABMATAFJAIMA1gFjABsAWwFjABMATAFpAIMAtQGAACsAQQGDAHMAQQGDABsA
WwGDAHsAQQGJAIMAwgGgACsAQQGjAMMAHwKjABMATAHAACsAQQHDABMATAHDAOsAowLgACsAQQHj
AAsBowIAARMATAEAASsAQQEDAQsBowIJATsDgQYJAVMDegYgASsAQQEgARMATAEpATMDTAEpATsD
zwVAASsAQQFAARMATAFJATMDTAFJATsDzARJASsDQQFgASsAQQFgARMATAFjARsDJwRjAQsDQQFj
AQsBowJjASMDOwRjARMDFARpATsD4wWAASsAQQGJAUsDQQGJATsDEgagASsAQQGpATsDEQWpASsD
QQGpATMDTAHAARMATAHAASsAQQHJAUMDVAXJATsDbgXgASsAQQHpATsDRAbpAUsDQQEAAhMATAEA
AisAQQFAAwsBowJgAwsBowKQAZUBmgGfAe8B8wH+AQMCEgISApoCqQKpAu8B7wH0AkkDeQOpA70D
zAMDAswD0gPvAQMCAwLvAQMCAwLvAfgDBgQEAAEABgAFAAcABgALAAgAAAB/AU8AAAA4AlQAAADn
AVkAAABEAl4AAAAAA5gAAABFBMQAAABYBMQAAACUBywBAAChBzABAACoBzUBAAC/BywBAADMBywB
AADhBzUBAAD2BywBAAABCCwBAgAEAAMAAgAFAAUAAgAGAAcAAgAHAAkAAgAPAAsAAgASAA0AAgAT
AA8AAQAkABEAAgAjABEAAgAlABMAAQAmABMAAgAnABUAAQAoABUAAQAqABcAAgApABcAAgArABkA
AQAsABkAAgAtABsAAQAuABsAAQAwAB0AAgAvAB0AAgAxAB8AAQAyAB8AdQB1AIgAdAF7AYIBiQGB
AogCpgMEgAAAAAAAAAAAAAAAAAAAAAC1AAAABAAAAAAAAAAAAAAAAQAKAAAAAAAKAAAAAAAAAAAA
AAAKABMAAAAAAAEAAAAAAAAAAAAAAJ0ADAMAAAAADAAAAAAAAAAAAAAApgBKAwAAAAAMAAAAAAAA
AAAAAACmAJgDAAAAAAwAAAAAAAAAAAAAAKYA+gYAAAAABAAAAAAAAAAAAAAAAQCIAQAAAAAMAAAA
AAAAAAAAAACmAF4KAAAAAAUABAAGAAQADAALAAAAEAAMAI4CAAAQABkAjgIAAAAAGwCOAi0ADQIt
AI8CAAAAPE1vZHVsZT4AbXNjb3JsaWIATWljcm9zb2Z0LlZpc3VhbEJhc2ljAE15QXBwbGljYXRp
b24AU2NyaXB0Q29tcG9uZW50X2U1Mjk2M2NmNGQzOTRlMmM4MGJmZDNjOWRmMDdjZGQ3Lk15AE15
Q29tcHV0ZXIATXlQcm9qZWN0AE15V2ViU2VydmljZXMAVGhyZWFkU2FmZU9iamVjdFByb3ZpZGVy
YDEASW5wdXRCdWZmZXIAU2NyaXB0Q29tcG9uZW50X2U1Mjk2M2NmNGQzOTRlMmM4MGJmZDNjOWRm
MDdjZGQ3AFVzZXJDb21wb25lbnQAQ29ubmVjdGlvbnMAVmFyaWFibGVzAFNjcmlwdE1haW4AQWN0
aW9uVHlwZXMATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkFwcGxpY2F0aW9uU2VydmljZXMAQXBwbGlj
YXRpb25CYXNlAC5jdG9yAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5EZXZpY2VzAENvbXB1dGVyAFN5
c3RlbQBPYmplY3QALmNjdG9yAGdldF9Db21wdXRlcgBtX0NvbXB1dGVyT2JqZWN0UHJvdmlkZXIA
Z2V0X0FwcGxpY2F0aW9uAG1fQXBwT2JqZWN0UHJvdmlkZXIAVXNlcgBnZXRfVXNlcgBtX1VzZXJP
YmplY3RQcm92aWRlcgBnZXRfV2ViU2VydmljZXMAbV9NeVdlYlNlcnZpY2VzT2JqZWN0UHJvdmlk
ZXIAQXBwbGljYXRpb24AV2ViU2VydmljZXMARXF1YWxzAG8AR2V0SGFzaENvZGUAVHlwZQBHZXRU
eXBlAFRvU3RyaW5nAENyZWF0ZV9fSW5zdGFuY2VfXwBUAGluc3RhbmNlAERpc3Bvc2VfX0luc3Rh
bmNlX18AZ2V0X0dldEluc3RhbmNlAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5NeVNlcnZpY2VzLklu
dGVybmFsAENvbnRleHRWYWx1ZWAxAG1fQ29udGV4dABHZXRJbnN0YW5jZQBDb3p5Um9jLlNTSVNQ
bHVzLjIwMTQAQ296eVJvYy5TcWxTZXJ2ZXIuU1NJUwBTY3JpcHRCdWZmZXJQbHVzAE1pY3Jvc29m
dC5TcWxTZXJ2ZXIuVHhTY3JpcHQATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUGlwZWxpbmUAU2Ny
aXB0Q29tcG9uZW50AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuUGlwZWxpbmVIb3N0AFBpcGVsaW5lQnVm
ZmVyAE91dHB1dE5hbWVNYXAAQ29tcG9uZW50AE9iamVjdElEAElzSW5wdXQAQnVmZmVyAE91dHB1
dE1hcABnZXRfU3RhdGljSW5wdXRDb2x1bW5zAGdldF9TdGF0aWNPdXRwdXRDb2x1bW5zAE5leHRS
b3cARW5kT2ZSb3dzZXQAU3RhdGljSW5wdXRDb2x1bW5zAFN0YXRpY091dHB1dENvbHVtbnMAU2Ny
aXB0Q29tcG9uZW50UGx1cwBQcm9jZXNzSW5wdXQASW5wdXRJRABJbnB1dE5hbWUASW5wdXRfUHJv
Y2Vzc0lucHV0AElucHV0X1Byb2Nlc3NJbnB1dFJvdwBSb3cAUGFyZW50Q29tcG9uZW50AENvbHVt
blNlcGFyYXRvcgBQcmVFeGVjdXRlAFZhbGlkYXRlAGVyck1lc3NhZ2UAR2V0UHJvcGVydGllcwBP
bklucHV0UGF0aEF0dGFjaGVkAGlucHV0SUQAT25JbnB1dFBhdGhEZXRhY2hlZABnZXRfSW5wdXRD
b2x1bW5zAHNldF9JbnB1dENvbHVtbnMAdmFsdWUAZ2V0X0FjdGlvbgBzZXRfQWN0aW9uAGdldF9J
c1JlcGxhY2VWYWx1ZVZhcmlhYmxlAHNldF9Jc1JlcGxhY2VWYWx1ZVZhcmlhYmxlAGdldF9SZXBs
YWNlVmFsdWUAc2V0X1JlcGxhY2VWYWx1ZQBnZXRfUmVwbGFjZVZhbHVlVmFyaWFibGUAc2V0X1Jl
cGxhY2VWYWx1ZVZhcmlhYmxlAGdldF9Jc01hdGNoVmFsdWVWYXJpYWJsZQBzZXRfSXNNYXRjaFZh
bHVlVmFyaWFibGUAZ2V0X01hdGNoVmFsdWUAc2V0X01hdGNoVmFsdWUAZ2V0X01hdGNoVmFsdWVW
YXJpYWJsZQBzZXRfTWF0Y2hWYWx1ZVZhcmlhYmxlAEZpcmVFcnJvcl8AbWVzc2FnZQBHZXRWYXJp
YWJsZV8AdmFyTmFtZQBHZXRJbnB1dENvbHNfAG1faW5wdXRDb2xzAG1fYWN0aW9uAG1faXNWYWx1
ZVZhcgBtX3ZhbHVlAG1faW5wdXRJZHgATWljcm9zb2Z0LlNxbFNlcnZlci5EVFNSdW50aW1lV3Jh
cABNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5SdW50aW1lLldyYXBwZXIARGF0YVR5cGUAbV9pbnB1
dFR5cGVzAG1fcmVwbGFjZVZhbHVlAFN5c3RlbS5Db2xsZWN0aW9ucwBIYXNodGFibGUAbV9tYXRj
aFZhbHVlAElucHV0Q29sdW1ucwBBY3Rpb24ASXNSZXBsYWNlVmFsdWVWYXJpYWJsZQBSZXBsYWNl
VmFsdWUAUmVwbGFjZVZhbHVlVmFyaWFibGUASXNNYXRjaFZhbHVlVmFyaWFibGUATWF0Y2hWYWx1
ZQBNYXRjaFZhbHVlVmFyaWFibGUARW51bQB2YWx1ZV9fAElzTnVsbABTZXROdWxsAFN5c3RlbS5D
b21wb25lbnRNb2RlbABFZGl0b3JCcm93c2FibGVBdHRyaWJ1dGUARWRpdG9yQnJvd3NhYmxlU3Rh
dGUAU3lzdGVtLkNvZGVEb20uQ29tcGlsZXIAR2VuZXJhdGVkQ29kZUF0dHJpYnV0ZQBTeXN0ZW0u
RGlhZ25vc3RpY3MARGVidWdnZXJIaWRkZW5BdHRyaWJ1dGUATWljcm9zb2Z0LlZpc3VhbEJhc2lj
LkNvbXBpbGVyU2VydmljZXMAU3RhbmRhcmRNb2R1bGVBdHRyaWJ1dGUASGlkZU1vZHVsZU5hbWVB
dHRyaWJ1dGUAU3lzdGVtLkNvbXBvbmVudE1vZGVsLkRlc2lnbgBIZWxwS2V5d29yZEF0dHJpYnV0
ZQBTeXN0ZW0uUnVudGltZS5Db21waWxlclNlcnZpY2VzAFJ1bnRpbWVIZWxwZXJzAEdldE9iamVj
dFZhbHVlAFJ1bnRpbWVUeXBlSGFuZGxlAEdldFR5cGVGcm9tSGFuZGxlAEFjdGl2YXRvcgBDcmVh
dGVJbnN0YW5jZQBNeUdyb3VwQ29sbGVjdGlvbkF0dHJpYnV0ZQBnZXRfVmFsdWUAc2V0X1ZhbHVl
AFN5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcwBDb21WaXNpYmxlQXR0cmlidXRlAFN0cmlu
ZwBTY3JpcHRCdWZmZXIAQ0xTQ29tcGxpYW50QXR0cmlidXRlAE1pY3Jvc29mdC5TcWxTZXJ2ZXIu
RFRTUGlwZWxpbmVXcmFwAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlBpcGVsaW5lLldyYXBwZXIA
SURUU0NvbXBvbmVudE1ldGFEYXRhMTAwAGdldF9Db21wb25lbnRNZXRhRGF0YQBJRFRTSW5wdXRD
b2xsZWN0aW9uMTAwAGdldF9JbnB1dENvbGxlY3Rpb24ASURUU0lucHV0MTAwAGdldF9JdGVtAGdl
dF9JRABFbXB0eQBFeGNlcHRpb24AR3VpZABnZXRfQnVmZmVyAEdldFN0cmluZwBUcmltAENvbnRh
aW5zAE9wZXJhdG9ycwBDb21wYXJlU3RyaW5nAFNldFN0cmluZwBDb252ZXJ0AERhdGVUaW1lAFRv
RGF0ZVRpbWUAc2V0X0l0ZW0AUHJvamVjdERhdGEAU2V0UHJvamVjdEVycm9yAGdldF9NZXNzYWdl
AENsZWFyUHJvamVjdEVycm9yAElEVFNJbnB1dENvbHVtbjEwMABJbnQzMgBJRFRTSW5wdXRDb2x1
bW5Db2xsZWN0aW9uMTAwAGdldF9JbnB1dENvbHVtbkNvbGxlY3Rpb24AZ2V0X0NvdW50AFBpcGVs
aW5lQ29tcG9uZW50AGdldF9Ib3N0Q29tcG9uZW50AElEVFNCdWZmZXJNYW5hZ2VyMTAwAGdldF9C
dWZmZXJNYW5hZ2VyAGdldF9MaW5lYWdlSUQARmluZENvbHVtbkJ5TGluZWFnZUlEAGdldF9EYXRh
VHlwZQBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnMAUmVnZXgAVW5lc2NhcGUAU3RyaW5n
U3BsaXRPcHRpb25zAFNwbGl0AElzTnVsbE9yRW1wdHkASURUU1ZpcnR1YWxJbnB1dDEwMABJRFRT
VmlydHVhbElucHV0Q29sdW1uMTAwAEdldFZpcnR1YWxJbnB1dABSZW1vdmVBbGwASURUU1ZpcnR1
YWxJbnB1dENvbHVtbkNvbGxlY3Rpb24xMDAAZ2V0X1ZpcnR1YWxJbnB1dENvbHVtbkNvbGxlY3Rp
b24ARFRTVXNhZ2VUeXBlAFNldFVzYWdlVHlwZQBBcnJheUxpc3QAQWRkAEludGVyYWN0aW9uAElJ
ZgBBcnJheQBUb0FycmF5AElFbnVtZXJhdG9yAEdldEVudW1lcmF0b3IAZ2V0X0N1cnJlbnQATW92
ZU5leHQASURpc3Bvc2FibGUARGlzcG9zZQBnZXRfSXNBdHRhY2hlZABGaXJlRXJyb3IASURUU1Zh
cmlhYmxlczEwMABJRFRTVmFyaWFibGVEaXNwZW5zZXIxMDAAZ2V0X1ZhcmlhYmxlRGlzcGVuc2Vy
AExvY2tPbmVGb3JSZWFkAElEVFNWYXJpYWJsZTEwMABVbmxvY2sAQ29uY2F0AGdldF9OYW1lAFNT
SVNTY3JpcHRDb21wb25lbnRFbnRyeVBvaW50QXR0cmlidXRlAENvenlSb2MuU3FsU2VydmVyLlNT
SVMuQXR0cmlidXRlcwBGaWx0ZXJQcm9wZXJ0aWVzQXR0cmlidXRlAFZhbGlkYXRlUHJvcGVydGll
c0F0dHJpYnV0ZQBTb3J0UHJvcGVydGllc0F0dHJpYnV0ZQBOb25Fc3NlbnRpYWxBdHRyaWJ1dGUA
UmVmcmVzaFByb3BlcnRpZXNBdHRyaWJ1dGUAUmVmcmVzaFByb3BlcnRpZXMARGVzY3JpcHRpb25B
dHRyaWJ1dGUAVGV4dERpYWxvZ0F0dHJpYnV0ZQBWYXJpYWJsZUF0dHJpYnV0ZQBJbnB1dFZpcnR1
YWxDb2x1bW5BdHRyaWJ1dGUAQ29tcGlsYXRpb25SZWxheGF0aW9uc0F0dHJpYnV0ZQBSdW50aW1l
Q29tcGF0aWJpbGl0eUF0dHJpYnV0ZQBTeXN0ZW0uUnVudGltZS5WZXJzaW9uaW5nAFRhcmdldEZy
YW1ld29ya0F0dHJpYnV0ZQBTY3JpcHRDb21wb25lbnRfZTUyOTYzY2Y0ZDM5NGUyYzgwYmZkM2M5
ZGYwN2NkZDcuZGxsAAAAAAtJAG4AcAB1AHQAAAMKAAAFLAAKAAAZSQBuAHAAdQB0AEMAbwBsAHUA
bQBuAHMAAA1BAGMAdABpAG8AbgAALUkAcwBSAGUAcABsAGEAYwBlAFYAYQBsAHUAZQBWAGEAcgBp
AGEAYgBsAGUAAClSAGUAcABsAGEAYwBlAFYAYQBsAHUAZQBWAGEAcgBpAGEAYgBsAGUAABlSAGUA
cABsAGEAYwBlAFYAYQBsAHUAZQAAKUkAcwBNAGEAdABjAGgAVgBhAGwAdQBlAFYAYQByAGkAYQBi
AGwAZQAAJU0AYQB0AGMAaABWAGEAbAB1AGUAVgBhAHIAaQBhAGIAbABlAAAVTQBhAHQAYwBoAFYA
YQBsAHUAZQAAJ04AdQBsAGwAIABUAHIAYQBuAHMAZgBvAHIAbQBhAHQAaQBvAG4AAAAB/mJdt+gP
Q5M0lXtWFvWJAAi3elxWGTTgiQiwP19/EdUKOgMgAAEDAAABBAAAEgwHBhUSGAESDAQAABIIBwYV
EhgBEggEAAASEQcGFRIYARIRBAAAEhQHBhUSGAESFAQIABIMBAgAEggECAASEQQIABIUBCABAhwD
IAAIBCAAEhUDIAAOAh4ABxABAR4AHgAHMAEBARAeAAITAAQgABMABwYVEhkBEwAEKAATAAgWz0kL
uAw06giJhF3NgIDMkQsgBQESIQgCEiUSKQQgAB0OAyAAAgQoAB0OAwYSJAMGEigJIAQBCA4SJRIp
BSABARIcAwYSIQUgAQESIQIGDgQsAAoABSABAhAOBCABAQgEIAEBDgQgABEwBSABAREwBCABAQIE
IAEcDgMGETACBgIDBh0IBAYdETEDBhI1AygADgQoABEwAygAAgIGCAQAAAAABAEAAAAFIAEBEUEI
AQABAAAAAAAFIAIBDg4YAQAKTXlUZW1wbGF0ZQgxMC4wLjAuMAAABhUSGAESDAYVEhgBEggGFRIY
ARIRBhUSGAESFAQHARIMBAcBEggEBwESEQQHARIUEAEAC015LkNvbXB1dGVyAAAMAQAHTXkuVXNl
cgAAEwEADk15LldlYlNlcnZpY2VzAAATAQAOTXkuQXBwbGljYXRpb24AAAQAARwcAwcBAgMHAQgG
AAESFRFdBAcBEhUDBwEOBRABAB4ABAoBHgAEBwEeAAcgBAEODg4OYQEANFN5c3RlbS5XZWIuU2Vy
dmljZXMuUHJvdG9jb2xzLlNvYXBIdHRwQ2xpZW50UHJvdG9jb2wSQ3JlYXRlX19JbnN0YW5jZV9f
E0Rpc3Bvc2VfX0luc3RhbmNlX18AAAAGFRIYARMABhUSGQETAAQKARMABSABARMACAcDEwATABMA
BQEAAAAABAcBHQ4EIAASeQQgABJ9BiABEoCBHAQgABIlBCABAggEIAEOCAQgARwIBgADCA4OAgUg
AgEIDgYAARGAlQ4FIAIBCBwGAAEBEoCFFgcMCAgIETEODhKAhQgRMREwETERgIkFIAASgKUGIAES
gJ0cBSAAEoCpBSAAEoCtBSACCAgIBCAAETEEAAEODgkgAh0OHQ4RgLUEAAECDgUgAgEcHBQHCw4I
EoCBCBKAnR0ODggdDggdDgUgABKAuQUgABKAwQYgARKAvRwHIAIICBGAxRgHCwICEoCBHQ4SgLkO
EoC9EoCFHQ4IHQ4EIAEIHAYAAxwCHBwHIAESgNESFQIdDgkHAx0OEoDJETAFIAASgNUDIAAcDgcE
EoCBEoC5EoC9EoDVBQcBEoCBBAcBETAKIAYBCA4ODggQAgUgABKA4QggAgEOEBKA3QYgARKA5RwH
BwMcHBKA3QUAAg4ODg0HBQ4SgIEOEoCdEoDVEgEADUdldFByb3BlcnRpZXMAAA0BAAhWYWxpZGF0
ZQAABSABAR0OgIgBAAgAAAAMSW5wdXRDb2x1bW5zBkFjdGlvbhZJc1JlcGxhY2VWYWx1ZVZhcmlh
YmxlDFJlcGxhY2VWYWx1ZRRSZXBsYWNlVmFsdWVWYXJpYWJsZRRJc01hdGNoVmFsdWVWYXJpYWJs
ZQpNYXRjaFZhbHVlEk1hdGNoVmFsdWVWYXJpYWJsZQAABiABARGBAUQBAD9TcGVjaWZpZXMgaWYg
UmVwbGFjZVZhbHVlIHByb3BlcnR5IHJlZmVyZW5jZXMgcGFja2FnZSB2YXJpYWJsZS4AAEIBAD1T
cGVjaWZpZXMgaWYgTWF0Y2hWYWx1ZSBwcm9wZXJ0eSByZWZlcmVuY2VzIHBhY2thZ2UgdmFyaWFi
bGUuAAAZAQAUU3BlY2lmeSBtYXRjaCB2YWx1ZS4AAGABAFtTcGVjaWZ5IG1hdGNoIHZhbHVlIHRv
IHJlcGxhY2Ugd2l0aCBOVUxMLiBNdWx0aXBsZSBtYXRjaCB2YWx1ZXMgYXJlIHNlcGFyYXRlZCB3
aXRoIG5ld2xpbmUuAAATAQAOU2VsZWN0IGFjdGlvbi4AAC4BAClTcGVjaWZ5IHJlcGxhY2UgdmFs
dWUgd2hlbiBpbnB1dCBpcyBOVUxMLgAAMQEALFNwZWNpZmllcyB2YXJpYWJsZSBjb250YWluaW5n
IHJlcGxhY2UgdmFsdWUuAAAvAQAqU3BlY2lmaWVzIHZhcmlhYmxlIGNvbnRhaW5pbmcgbWF0Y2gg
dmFsdWUuAAAFIAIBDgIGAQAAAAAALgEAKVNlbGVjdCBpbnB1dCBjb2x1bW5zIHlvdSB3YW50IHRv
IHByb2Nlc3MuAAAIAQAIAAAAAAAeAQABAFQCFldyYXBOb25FeGNlcHRpb25UaHJvd3MBRwEAGi5O
RVRGcmFtZXdvcmssVmVyc2lvbj12NC4wAQBUDhRGcmFtZXdvcmtEaXNwbGF5TmFtZRAuTkVUIEZy
YW1ld29yayA0oFEAAAAAAAAAAAAAvlEAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAALBRAAAAAAAA
AAAAAAAAAAAAAF9Db3JEbGxNYWluAG1zY29yZWUuZGxsAAAAAAD/JQAgABAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAQAAAAGAAAgAAA
AAAAAAAAAAAAAAAAAQABAAAAMAAAgAAAAAAAAAAAAAAAAAAAAQAAAAAASAAAAFhgAADsAgAAAAAA
AAAAAADsAjQAAABWAFMAXwBWAEUAUgBTAEkATwBOAF8ASQBOAEYATwAAAAAAvQTv/gAAAQAAAAAA
AAAAAAAAAAAAAAAAPwAAAAAAAAAEAAAAAgAAAAAAAAAAAAAAAAAAAEQAAAABAFYAYQByAEYAaQBs
AGUASQBuAGYAbwAAAAAAJAAEAAAAVAByAGEAbgBzAGwAYQB0AGkAbwBuAAAAAAAAALAETAIAAAEA
UwB0AHIAaQBuAGcARgBpAGwAZQBJAG4AZgBvAAAAKAIAAAEAMAAwADAAMAAwADQAYgAwAAAALAAC
AAEARgBpAGwAZQBEAGUAcwBjAHIAaQBwAHQAaQBvAG4AAAAAACAAAAAwAAgAAQBGAGkAbABlAFYA
ZQByAHMAaQBvAG4AAAAAADAALgAwAC4AMAAuADAAAACMADUAAQBJAG4AdABlAHIAbgBhAGwATgBh
AG0AZQAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8AZQA1ADIAOQA2ADMAYwBmADQA
ZAAzADkANABlADIAYwA4ADAAYgBmAGQAMwBjADkAZABmADAANwBjAGQAZAA3AC4AZABsAGwAAAAA
ACgAAgABAEwAZQBnAGEAbABDAG8AcAB5AHIAaQBnAGgAdAAAACAAAACUADUAAQBPAHIAaQBnAGkA
bgBhAGwARgBpAGwAZQBuAGEAbQBlAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABvAG4AZQBuAHQAXwBl
ADUAMgA5ADYAMwBjAGYANABkADMAOQA0AGUAMgBjADgAMABiAGYAZAAzAGMAOQBkAGYAMAA3AGMA
ZABkADcALgBkAGwAbAAAAAAANAAIAAEAUAByAG8AZAB1AGMAdABWAGUAcgBzAGkAbwBuAAAAMAAu
ADAALgAwAC4AMAAAADgACAABAEEAcwBzAGUAbQBiAGwAeQAgAFYAZQByAHMAaQBvAG4AAAAwAC4A
MAAuADAALgAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAADAAAANAxAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==]]></arrayElement></arrayElements></property><property id="9" name="UserComponentTypeName" dataType="System.String">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2014, 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_e52963cf4d394e2c80bfd3c9df07cdd7</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=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">VisualBasic</property></properties><inputs><input id="14" name="Input" hasSideEffects="true"></input></inputs><outputs><output id="18" name="Output" synchronousInputId="14"><externalMetadataColumns /></output></outputs></component>