<component id="29" name="Counter" componentClassID="{2E42D45B-F83C-400F-8D77-61DDE6A7DF29}" description="Executes a custom script." localeId="1033" usesDispositions="false" validateExternalMetadata="True" version="4" pipelineVersion="0" 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="33" name="SourceCode" dataType="System.String" state="cdata" isArray="true" description="Stores the source code of the component" typeConverter="NOTBROWSABLE" UITypeEditor="" containsID="false" expressionType="None"><arrayElements arrayElementCount="18"><arrayElement dataType="System.String"><![CDATA[\my project\settings.designer.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA['------------------------------------------------------------------------------
' <autogenerated>
'     This code was generated by a tool.
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </autogenerated>
'------------------------------------------------------------------------------

Option Strict Off
Option Explicit On



Partial Friend NotInheritable Class MySettings
    Inherits System.Configuration.ApplicationSettingsBase

    Private Shared m_Value As MySettings

    Private Shared m_SyncObject As Object = New Object

    <System.Diagnostics.DebuggerNonUserCode()> _
    Public Shared ReadOnly Property Value() As MySettings
        Get
            If (MySettings.m_Value Is Nothing) Then
                System.Threading.Monitor.Enter(MySettings.m_SyncObject)
                If (MySettings.m_Value Is Nothing) Then
                    Try
                        MySettings.m_Value = New MySettings
                    Finally
                        System.Threading.Monitor.Exit(MySettings.m_SyncObject)
                    End Try
                End If
            End If
            Return MySettings.m_Value
        End Get
    End Property
End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\my project\assemblyinfo.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices

' General Information about an assembly is controlled through the following 
' set of attributes. Change these attribute values to modify the information
' associated with an assembly.

' Review the values of the assembly attributes

<Assembly: AssemblyTitle("ScriptComponent_9fc6ff41fb074860a5fd549533fef498.vbproj")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("Microsoft")> 
<Assembly: AssemblyProduct("ScriptComponent_9fc6ff41fb074860a5fd549533fef498.vbproj")> 
<Assembly: AssemblyCopyright("Copyright @ Microsoft 2010")> 
<Assembly: AssemblyTrademark("")> 
<Assembly: CLSCompliant(True)> 

<Assembly: ComVisible(False)> 

'The following GUID is for the ID of the typelib if this project is exposed to COM
<Assembly: Guid("110b0872-aaf7-4458-a930-7307040e8e33")> 

' Version information for an assembly consists of the following four values:
'
'      Major Version
'      Minor Version 
'      Build Number
'      Revision
'
' You can specify all the values or you can default the Build and Revision Numbers 
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>

<Assembly: AssemblyVersion("1.0.0.0")> 
<Assembly: AssemblyFileVersion("1.0.0.0")> 
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\scriptcomponent_9fc6ff41fb074860a5fd549533fef498.vbproj]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <!-- This section defines project-level properties.

       Configuration - Specifies whether the default configuration is Release or Debug.
       Platform - Specifies what CPU the output of this project can run on.
       OutputType - Must be "Library" for VSTA.
       NoStandardLibraries - Set to "false" for VSTA.
       RootNamespace - In C#, this specifies the namespace given to new files.
                       In Visual Basic, all objects are wrapped in this namespace at runtime.
       AssemblyName - Name of the output assembly.
  -->
  <PropertyGroup>
    <ProjectTypeGuids>{A860303F-1F3F-4691-B57E-529FC101A107};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <OutputType>Library</OutputType>
    <RootNamespace>ScriptComponent_9fc6ff41fb074860a5fd549533fef498.vbproj</RootNamespace>
    <AssemblyName>ScriptComponent_9fc6ff41fb074860a5fd549533fef498.vbproj</AssemblyName>
    <StartupObject>
    </StartupObject>
    <OptionExplicit>On</OptionExplicit>
    <OptionCompare>Binary</OptionCompare>
    <OptionStrict>Off</OptionStrict>
    <OptionInfer>On</OptionInfer>
    <ProjectGuid>{2FC4904B-27AE-42FD-A359-529CCB09F663}</ProjectGuid>
  </PropertyGroup>
  <!-- This section defines properties that are set when the "Debug" configuration is
       selected.

       DebugSymbols - If true, create symbols (.pdb). If false, do not create symbols.
       Optimize - If true, optimize the build output. If false, do not optimize.
       OutputPath - Output path of the project relative to the project file.
       EnableUnmanagedDebugging - If true, starting the debugger will attach both managed and unmanaged debuggers.
       DefineConstants - Constants defined for the preprocessor.
       Warning Level - Warning level for the compiler.
  -->
  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <DefineConstants>
    </DefineConstants>
    <DefineDebug>true</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <DebugSymbols>true</DebugSymbols>
    <Optimize>false</Optimize>
    <OutputPath>bin\</OutputPath>
    <RegisterForComInterop>false</RegisterForComInterop>
    <RemoveIntegerChecks>false</RemoveIntegerChecks>
    <NoWarn>42016,42017,42018,42019,42032</NoWarn>
  </PropertyGroup>
  <!-- This section defines properties that are set when the "Release" configuration is
       selected.

       DebugSymbols - If true, create symbols (.pdb). If false, do not create symbols.
       Optimize - If true, optimize the build output. If false, do not optimize.
       OutputPath - Output path of the project relative to the project file.
       EnableUnmanagedDebugging - If true, starting the debugger will attach both managed and unmanaged debuggers.
       DefineConstants - Constants defined for the preprocessor.
       Warning Level - Warning level for the compiler.
  -->
  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
    <DefineConstants>
    </DefineConstants>
    <DefineDebug>false</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <DebugSymbols>false</DebugSymbols>
    <Optimize>true</Optimize>
    <OutputPath>bin\</OutputPath>
    <RegisterForComInterop>false</RegisterForComInterop>
    <RemoveIntegerChecks>false</RemoveIntegerChecks>
    <NoWarn>42016,42017,42018,42019,42032</NoWarn>
  </PropertyGroup>
  <!-- This section enables pre- and post-build steps. However,
       it is recommended that MSBuild tasks be used instead of these properties.
  -->
  <PropertyGroup>
    <PreBuildEvent>
    </PreBuildEvent>
    <PostBuildEvent>
    </PostBuildEvent>
  </PropertyGroup>
  <!-- This sections specifies references for the project. -->
  <ItemGroup>
    <Reference Include="CozyRoc.SSISPlus.2008, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL" />
    <Reference Include="Microsoft.SqlServer.ManagedDTS, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL" />
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
    <Reference Include="Microsoft.SqlServer.TxScript, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
  </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>
  <!-- This section defines the user source files that are part of the
       project.

       Compile - Specifies a source file to compile.
       EmbeddedResource - Specifies a .resx file for embedded resources.
       None - Specifies a file that is not to be passed to the compiler (for instance,
              a text file or XML file).
       AppDesigner - Specifies the directory where the application properties files can
                     be found.
  -->
  <ItemGroup>
    <AppDesigner Include="My Project\" />
    <Compile Include="BufferWrapper.vb" />
    <Compile Include="ComponentWrapper.vb" />
    <Compile Include="main.vb" />
    <Compile Include="My Project\AssemblyInfo.vb">
      <SubType>Code</SubType>
    </Compile>
    <EmbeddedResource Include="My Project\Resources.resx">
      <Generator>VbMyResourcesResXFileCodeGenerator</Generator>
      <LastGenOutput>Resources.Designer.vb</LastGenOutput>
      <CustomToolNamespace>My.Resources</CustomToolNamespace>
    </EmbeddedResource>
    <Compile Include="My Project\Resources.Designer.vb">
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
      <DependentUpon>Resources.resx</DependentUpon>
      <SubType>Code</SubType>
    </Compile>
    <None Include="My Project\Settings.settings">
      <Generator>SettingsSingleFileGenerator</Generator>
      <LastGenOutput>Settings.Designer.vb</LastGenOutput>
    </None>
    <Compile Include="My Project\Settings.Designer.vb">
      <AutoGen>True</AutoGen>
      <DependentUpon>Settings.settings</DependentUpon>
      <SubType>Code</SubType>
    </Compile>
    <!-- Include the default configuration information and metadata files for the add-in.
         These files are copied to the build output directory when the project is
         built, and the path to the configuration file is passed to add-in on the command
         line when debugging.
    -->
  </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="{A860303F-1F3F-4691-B57E-529FC101A107}">
        <ProjectProperties HostName="VSTAHostName" HostPackage="{C1B21C64-9E6F-4923-A89D-9F958503C1CE}" ApplicationType="usd" Language="vb" TemplatesPath="" />
        <Host Name="SSIS_ScriptComponent" />
        <ProjectClient>
          <HostIdentifier>SSIS_ScriptComponent</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
</Project>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\bufferwrapper.vb]]></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)
        MyBase.New(Component, ObjectID, IsInput, Buffer)
    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[\my project\resources.designer.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA['------------------------------------------------------------------------------
' <autogenerated>
'     This code was generated by a tool.
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </autogenerated>
'------------------------------------------------------------------------------

Option Strict Off
Option Explicit On


Namespace My.Resources
    
    '''<summary>
    '''   A strongly-typed resource class, for looking up localized strings, etc.
    '''</summary>
    'This class was auto-generated by the Strongly Typed Resource Builder
    'class via a tool like ResGen or Visual Studio.NET.
    'To add or remove a member, edit your .ResX file then rerun ResGen
    'with the /str option, or rebuild your VS project.
    Class MyResources
        
        Private Shared _resMgr As System.Resources.ResourceManager
        
        Private Shared _resCulture As System.Globalization.CultureInfo
        
        Friend Sub New()
            MyBase.New
        End Sub
        
        '''<summary>
        '''   Returns the cached ResourceManager instance used by this class.
        '''</summary>
        <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)>  _
        Public Shared ReadOnly Property ResourceManager() As System.Resources.ResourceManager
            Get
                If (_resMgr Is Nothing) Then
                    Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("My.Resources.MyResources", GetType(MyResources).Assembly)
                    _resMgr = temp
                End If
                Return _resMgr
            End Get
        End Property
        
        '''<summary>
        '''   Overrides the current thread's CurrentUICulture property for all
        '''   resource lookups using this strongly typed resource class.
        '''</summary>
        <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)>  _
        Public Shared Property Culture() As System.Globalization.CultureInfo
            Get
                Return _resCulture
            End Get
            Set
                _resCulture = value
            End Set
        End Property
    End Class
End Namespace
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\componentwrapper.vb]]></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 Buffer As PipelineBuffer)

        If InputID = MyBase.ComponentMetaData.InputCollection("Input").ID Then
            Input_ProcessInput(New InputBuffer(Me, InputID, True, Buffer))
        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[\my project\resources.resx]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\my project\settings.settings]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version='1.0' encoding='iso-8859-1'?>
<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)" GeneratedClassNamespace="" GeneratedClassName="MySettings">
  <Profiles>
    <Profile Name="(Default)" />
  </Profiles>
  <Settings />
</SettingsFile>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\main.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' CozyRoc SQL Server Integration Services user script component
'
' Copyright (c) 2006-2009 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 Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS.Attributes


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<SortProperties(New String() {"CounterStart", "CounterOutputColumn"})> _
<ValidateProperties("Validate")> _
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub Input_ProcessInputRow(ByVal Row As InputBuffer)
        Row.Buffer.Item(m_counterIndex) = m_counter
        m_counter += 1
    End Sub ' Input_ProcessInputRow


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

        ' Load counter start.
        Dim vars As IDTSVariables100
        Me.VariableDispenser.LockOneForRead(Me.CounterStart, vars)
        Try
            m_counter = CInt(vars(Me.CounterStart).Value)
        Finally
            Call vars.Unlock()
        End Try

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

        ' Find counter column index.
        m_counterIndex = Me.HostComponent.BufferManager.FindColumnByLineageID( _
            input.Buffer, _
            output.OutputColumnCollection(Me.CounterOutputColumn).LineageID)
    End Sub ' PreExecute


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

        Try
            If String.IsNullOrEmpty(Me.CounterStart) Then
                Throw New ApplicationException("Select counter start variable.")
            End If

            If String.IsNullOrEmpty(Me.CounterOutputColumn) Then
                Throw New ApplicationException("Specify output column for counter.")
            End If

            ' Setup counter output column.
            Dim output As IDTSOutput100 = Me.ComponentMetaData.OutputCollection(0)

            Try
                Dim column As IDTSOutputColumn100 = output.OutputColumnCollection(Me.CounterOutputColumn)
            Catch ex As Exception
                ' Doesn't exist. Create it.
                Call output.OutputColumnCollection.RemoveAll()

                Dim counterColumn As IDTSOutputColumn100 = output.OutputColumnCollection.[New]()
                counterColumn.Name = Me.CounterOutputColumn
                counterColumn.SetDataTypeProperties(DataType.DT_I4, 0, 0, 0, 0)
            End Try

            result = True
        Catch ex As Exception
            result = False
            errMessage = ex.Message
        End Try

        Validate = result
    End Function    'Validate


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select variable containing counter start.")> _
    <Variable()> _
    Public Property CounterStart() As String
        Get
            CounterStart = m_counterStart
        End Get
        Set(ByVal value As String)
            m_counterStart = value
        End Set
    End Property    ' CounterStart


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specify counter output column name.")> _
    <DefaultValue("CounterColumn")> _
    Public Property CounterOutputColumn() As String
        Get
            CounterOutputColumn = m_counterColumn
        End Get
        Set(ByVal value As String)
            m_counterColumn = value
        End Set
    End Property    ' CounterOutputColumn
#End Region ' Properties


#Region "Attributes"
    Private m_counterStart As String
    Private m_counterColumn As String

    Private m_counter As Integer
    Private m_counterIndex As Integer
#End Region ' Attributes
End Class   ' ScriptMain
]]></arrayElement></arrayElements></property>
<property id="34" name="BinaryCode" dataType="System.String" state="cdata" isArray="true" description="Stores the binary representation of the component" typeConverter="NOTBROWSABLE" UITypeEditor="" containsID="false" expressionType="None"><arrayElements arrayElementCount="2"><arrayElement dataType="System.String"><![CDATA[\bin\scriptcomponent_9fc6ff41fb074860a5fd549533fef498.vbproj.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
b0EAAApRKEAAAAreAAYLByoAAAABGAAAAABHABRbAEArAAABAAAAAJ+fABorAAABEzABAAkAAAAS
AAARAnsKAAAECgYqAAAAIgIDfQoAAAQqAAAAEzABAAkAAAATAAARAnsLAAAECgYqAAAAIgIDfQsA
AAQqAAAAHgIoFwAACioTMAIALQAAABQAABF+DgAABC0gcpEAAHDQDAAAAigUAAAKb0gAAApzSQAA
CgsHgA4AAAR+DgAABCoAAAATMAEABgAAABUAABF+DwAABCoAAB4CgA8AAAQqQnMXAAAKKBEAAAqA
EQAABCoAAAAeAihKAAAKKhswAQA/AAAAFgAAEX4QAAAELTJ+EQAABCgRAAAKKEsAAAp+EAAABC0c
cykAAAaAEAAABN4QfhEAAAQoEQAACihMAAAK3H4QAAAEKgABDAAAAgAdAAwpABAAAAABQlNKQgEA
AQAAAAAADAAAAHYyLjAuNTA3MjcAAAAABQBsAAAAMAsAACN+AACcCwAA1A4AACNTdHJpbmdzAAAA
AHAaAADEAAAAI1VTADQbAAAQAAAAI0dVSUQAAABEGwAA7AQAACNCbG9iAAAAAAAAAAIAAAFXFaIJ
CQ8AAAD6ATMAFgAAAQAAAEEAAAANAAAAEQAAACoAAAASAAAAVwAAAD8AAAAWAAAABgAAAAwAAAAP
AAAACQAAAAEAAAAIAAAAAQAAAAIAAAADAAAAAgAAAAAAlQ4BAAAAAAAKAKkBfwEKAN0BvwEGAO0B
5gEKAEUCfwEGAMMC5gEKAEUDGwMOAJcDgAMSAOYDxQMWABcExQMOALIEgAMGAPkF6AUGACYGEQYa
AI0GeAYaANoGxAYaAPMGxAYaACAHCAcGAEoHNwcKAIkHYgcKAKEHEwAaANYHuQcGAAsI6wcGACkI
5gEGAE0I5gEKAGYIEwAGAKoIiwgGAL4I5gESAMUIxQMGANII5gEeADUJDAkeAGQJDAkeAI8JDAkG
ALcJ5gEeAMYJDAkiAB8K9wkiADAK9wkiAG4K9wkKAH4KYgceAJsKDAkWAMgKxQMeAOwKDAkeABML
DAkeAEwLDAkGAIQL5gEGAJwL5gEKALELYgciAOQL9wkSACEMxQMOAGoMSAwOAIYMSAwOAJ4MSAwa
ALAMxAYaAMUMxAYGAO0M2wwGABQNAw0GACcNNwcGAJAN6wcGALAN6wcGAM4N2wwGAOsNiwgGAPkN
2wwGABQO2wwGAC8O2wwGAEgO2wwGAGEO2wwGAH4O2wwAAAAAAQAAAAAAAQABAAAAAAApADcABQAB
AAEAAAAAAHIANwAJAAEAAgAAARAAfQA3AA0AAQADAAUBAACHAAAADQAFAAgABQEAAJUAAAANAAUA
DwABAAAAsAC8AB0ABgARAAEAAAD0ALwAKQAGABYAAQAAAAIBvAANAAgAGgABAAAADgG8AA0ACQAb
AAEAAAAYAbwAIAAKABwAAAAAACMBLwENAA4AJAAAARAAdAG8ADUAEAAoADEACAIgADEAMQItADEA
UwI6ADEAeAJHACEAVAOQAAYAAgHHAAYADgHLAAEACAXcAAEACAXcAAEAjwXxAAEAngXxAAEArgX0
AAEAuAX0ABEACQb7ABEAMgb/ABEApQYdAREArQYhAQghAAAAAAYYuQETAAEAECEAAAAABhi5ARMA
AQAYIQAAAAARGPQBFwABAEQhAAAAABMI+wEbAAEAXCEAAAAAEwghAigAAQB0IQAAAAATCEoCNQAB
AIwhAAAAABMIaAJCAAEApCEAAAAARgKuAmMAAQDAIQAAAABGArcCaAACANQhAAAAAIMAyAJsAAIA
7CEAAAAARgLQAnEAAgAAIgAAAAARANkCeAACABwiAAAAAAEA9wKAAAMAOCIAAAAABhi5ARMABABA
IgAAAAADCAsDiwAEAHQiAAAAAAYYuQETAAQAiCIAAAAABhi5Aa8ABACYIgAAAABGCkgEuQAIAKwi
AAAAAEYKXwS5AAgAwCIAAAAAhgB3BL4ACADYIgAAAACGAH8EvgAIAPAiAAAAAAYYuQETAAgAECMA
AAAARgLGBM8ACABAIwAAAABGA9sE1gAKAFQjAAAAAEYD7gTWAAsAWCMAAAAABhi5AeAADABoIwAA
AAAGGLkB4AANAHgjAAAAAAYYuQETAA4AgCMAAAAARgLuBNYADgCsIwAAAABGAhgFEwAPAGgkAAAA
AAYAIwXmAA8AUCUAAAAABgg3BXEAEABoJQAAAAAGCEgF7AAQAHQlAAAAAAYIXwVxABEAjCUAAAAA
Bgh3BewAEQCYJQAAAAADGLkBEwASAKAlAAAAABYIPgYDARIA3CUAAAAAFghSBggBEgDwJQAAAAAW
CF4GDQESAPglAAAAABEY9AEXABMADCYAAAAABhi5ARMAEwAUJgAAAAAWCLoGJAETAAAAAQC1AgAA
AQDuAgAAAQDuAgAAAQAmBAAAAgAwBAAAAwA5BAAABABBBAAAAQDTBAAAAgBBBAAAAQBBBAAAAQAE
BQAAAQAmBAAAAQAmBAAAAQAEBQAAAQAsBQAAAQBZBQAAAQBZBQAAAQBqBgkAuQETAHEAuQEuAYEA
uQE9AREAuQETAIkAuQETACQAuQETACwAuQETADQAuQETADwAuQETACQACwOLACwACwOLADQACwOL
ADwACwOLAJEAuQETAJkAuQETAKEAuQHsAKkAGgjWARkArgJjABkAtwJoACkAOwjjARkA0AJxALkA
VwjzARkAuQETAMEAuQEDAkQAVAOQAEwAugaLAEwAgQiAAkwAuQETAMkAuQGNAjkAuQGvANkAdwS+
ANkAfwS+AOEAuQGNAlEAuQETAEEATgmdAukAewmiAvEAnAmnAvkApQloADkArAmtAkkAvQmyAkEA
GAUTAEEASQq4AhkBXwq+AhEBnAnHAiEBugbOAikBigrSAhEBlAoTAOkAswrXAjEBnAndAlEA2grk
AjkBAQvqAvkArAloAAkBMQvwAkkBnAn2AlEBYAtoAEEBbgv9AtEAjgsOA2EBuQHsAGkBvQsTA0kB
zQsTAEkB1wsaA1EB2wvsAFEB7QsgA2kBAwwXAFkBFQxxAHkBuQETAIEBuQHsAIkBuQFNA5EBuQET
AJkBuQHsAKEBuQHsACkA9gzoA1kAuQHuA2kAuQETALEBHA0LBLEBIg0LBLkBuQETAMEBuQEVBMkB
uQETANEBuQHsANkBuQHsAOEBuQHsAOkBuQHsAPEBuQHsAPkBuQHsAAECuQHsAAkCuQHsACkAgwCk
AS4AswKSAi4AowKfBC4AewIjBC4AgwJCBC4AmwJ/BC4AqwLcBC4AcwIaBC4AuwKfBC4AiwJPBC4A
6wCSAi4ACwF5BC4AkwKSAkAAKwBbAUAAEwA0AUMAEwA0AUMAGwBDAUkAgwCQAWMAEwA0AWMAGwBD
AWkAgwC1AYAAKwBbAYMAGwBDAYMAewBbAYMAcwBbAYkAgwDCAaAAKwBbAaMAEwA0AaMAwwALAsAA
KwBbAcMA6wCSAsMAEwA0AeAAKwBbAeMACwGSAgABEwA0AQABKwBbAQMBCwGSAgkBKwJbAQkBMwJ9
AyABKwBbASABEwA0ASkBOwKsAykBMwK/A0ABKwBbAUABEwA0AUkBEwACBGABEwA0AWABKwBbAWMB
CwGSAmMBIwJTA2MBEwJbAWMBGwI/A2kBEwACBIABKwBbAYkBawJbAaABKwBbAcABEwA0AcABKwBb
AeABKwBbAQACKwBbAQACEwA0AUADCwGSAmADCwGSAnwBgQGGAYsB2wHfAeoB7wH+Af4BhgKYApgC
2wHbAQMDKwPvAe8B9gP9AxAEBAABAAYABQAHAAYACwAIAAwACgANAAwAAADdAU8AAACWAlQAAABF
AlkAAACiAl4AAABeA5gAAACLBMIAAACeBMIAAADHBfcAAADUBfcAAAD5BRMBAABwBhgBAABqBikB
AgAEAAMAAgAFAAUAAgAGAAcAAgAHAAkAAgAPAAsAAgASAA0AAgATAA8AAgAgABEAAQAhABEAAgAi
ABMAAQAjABMAAgAlABUAAgAmABcAAQAnABcAAgAqABkAdQB1AIgAYAFnAW4BdQFtAnQCBIAAAAEA
AAAAAAAAAAAAAAAAvAAAAAIAAAAAAAAAAAAAAAEACgAAAAAACAAAAAAAAAAAAAAACgATAAAAAAAB
AAAAAAAAAAAAAACdAGoDAAAAAAoAAAAAAAAAAAAAAKYAqAMAAAAACgAAAAAAAAAAAAAApgD2AwAA
AAACAAAAAAAAAAAAAAABAOYBAAAAAAoAAAAAAAAAAAAAAKYA6AgAAAAACgAAAAAAAAAAAAAApgDU
CQAAAAAAAAAAAQAAAEQNAAAFAAQABgAEAAAAEAAMAOwCAAAQABkA7AIAAAAAGwDsAi0A+QEtAHsC
AAAAPE1vZHVsZT4AbXNjb3JsaWIATWljcm9zb2Z0LlZpc3VhbEJhc2ljAE15QXBwbGljYXRpb24A
U2NyaXB0Q29tcG9uZW50XzlmYzZmZjQxZmIwNzQ4NjBhNWZkNTQ5NTMzZmVmNDk4LnZicHJvai5N
eQBNeUNvbXB1dGVyAE15UHJvamVjdABNeVdlYlNlcnZpY2VzAFRocmVhZFNhZmVPYmplY3RQcm92
aWRlcmAxAElucHV0QnVmZmVyAFNjcmlwdENvbXBvbmVudF85ZmM2ZmY0MWZiMDc0ODYwYTVmZDU0
OTUzM2ZlZjQ5OC52YnByb2oAVXNlckNvbXBvbmVudABDb25uZWN0aW9ucwBWYXJpYWJsZXMAU2Ny
aXB0TWFpbgBNeVJlc291cmNlcwBTY3JpcHRDb21wb25lbnRfOWZjNmZmNDFmYjA3NDg2MGE1ZmQ1
NDk1MzNmZWY0OTgudmJwcm9qLk15LlJlc291cmNlcwBNeVNldHRpbmdzAE1pY3Jvc29mdC5WaXN1
YWxCYXNpYy5BcHBsaWNhdGlvblNlcnZpY2VzAEFwcGxpY2F0aW9uQmFzZQAuY3RvcgBNaWNyb3Nv
ZnQuVmlzdWFsQmFzaWMuRGV2aWNlcwBDb21wdXRlcgBTeXN0ZW0AT2JqZWN0AC5jY3RvcgBnZXRf
Q29tcHV0ZXIAbV9Db21wdXRlck9iamVjdFByb3ZpZGVyAGdldF9BcHBsaWNhdGlvbgBtX0FwcE9i
amVjdFByb3ZpZGVyAFVzZXIAZ2V0X1VzZXIAbV9Vc2VyT2JqZWN0UHJvdmlkZXIAZ2V0X1dlYlNl
cnZpY2VzAG1fTXlXZWJTZXJ2aWNlc09iamVjdFByb3ZpZGVyAEFwcGxpY2F0aW9uAFdlYlNlcnZp
Y2VzAEVxdWFscwBvAEdldEhhc2hDb2RlAFR5cGUAR2V0VHlwZQBUb1N0cmluZwBDcmVhdGVfX0lu
c3RhbmNlX18AVABpbnN0YW5jZQBEaXNwb3NlX19JbnN0YW5jZV9fAGdldF9HZXRJbnN0YW5jZQBN
aWNyb3NvZnQuVmlzdWFsQmFzaWMuTXlTZXJ2aWNlcy5JbnRlcm5hbABDb250ZXh0VmFsdWVgMQBt
X0NvbnRleHQAR2V0SW5zdGFuY2UAQ296eVJvYy5TU0lTUGx1cy4yMDA4AENvenlSb2MuU3FsU2Vy
dmVyLlNTSVMAU2NyaXB0QnVmZmVyUGx1cwBNaWNyb3NvZnQuU3FsU2VydmVyLlR4U2NyaXB0AE1p
Y3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlBpcGVsaW5lAFNjcmlwdENvbXBvbmVudABNaWNyb3NvZnQu
U3FsU2VydmVyLlBpcGVsaW5lSG9zdABQaXBlbGluZUJ1ZmZlcgBDb21wb25lbnQAT2JqZWN0SUQA
SXNJbnB1dABCdWZmZXIAZ2V0X1N0YXRpY0lucHV0Q29sdW1ucwBnZXRfU3RhdGljT3V0cHV0Q29s
dW1ucwBOZXh0Um93AEVuZE9mUm93c2V0AFN0YXRpY0lucHV0Q29sdW1ucwBTdGF0aWNPdXRwdXRD
b2x1bW5zAFNjcmlwdENvbXBvbmVudFBsdXMAUHJvY2Vzc0lucHV0AElucHV0SUQASW5wdXRfUHJv
Y2Vzc0lucHV0AElucHV0X1Byb2Nlc3NJbnB1dFJvdwBSb3cAUGFyZW50Q29tcG9uZW50AFByZUV4
ZWN1dGUAVmFsaWRhdGUAZXJyTWVzc2FnZQBnZXRfQ291bnRlclN0YXJ0AHNldF9Db3VudGVyU3Rh
cnQAdmFsdWUAZ2V0X0NvdW50ZXJPdXRwdXRDb2x1bW4Ac2V0X0NvdW50ZXJPdXRwdXRDb2x1bW4A
bV9jb3VudGVyU3RhcnQAbV9jb3VudGVyQ29sdW1uAG1fY291bnRlcgBtX2NvdW50ZXJJbmRleABD
b3VudGVyU3RhcnQAQ291bnRlck91dHB1dENvbHVtbgBTeXN0ZW0uUmVzb3VyY2VzAFJlc291cmNl
TWFuYWdlcgBfcmVzTWdyAFN5c3RlbS5HbG9iYWxpemF0aW9uAEN1bHR1cmVJbmZvAF9yZXNDdWx0
dXJlAGdldF9SZXNvdXJjZU1hbmFnZXIAZ2V0X0N1bHR1cmUAc2V0X0N1bHR1cmUAVmFsdWUAQ3Vs
dHVyZQBTeXN0ZW0uQ29uZmlndXJhdGlvbgBBcHBsaWNhdGlvblNldHRpbmdzQmFzZQBtX1ZhbHVl
AG1fU3luY09iamVjdABnZXRfVmFsdWUAU3lzdGVtLkNvbXBvbmVudE1vZGVsAEVkaXRvckJyb3dz
YWJsZUF0dHJpYnV0ZQBFZGl0b3JCcm93c2FibGVTdGF0ZQBTeXN0ZW0uQ29kZURvbS5Db21waWxl
cgBHZW5lcmF0ZWRDb2RlQXR0cmlidXRlAFN5c3RlbS5EaWFnbm9zdGljcwBEZWJ1Z2dlckhpZGRl
bkF0dHJpYnV0ZQBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuQ29tcGlsZXJTZXJ2aWNlcwBTdGFuZGFy
ZE1vZHVsZUF0dHJpYnV0ZQBIaWRlTW9kdWxlTmFtZUF0dHJpYnV0ZQBTeXN0ZW0uQ29tcG9uZW50
TW9kZWwuRGVzaWduAEhlbHBLZXl3b3JkQXR0cmlidXRlAFN5c3RlbS5SdW50aW1lLkNvbXBpbGVy
U2VydmljZXMAUnVudGltZUhlbHBlcnMAR2V0T2JqZWN0VmFsdWUAUnVudGltZVR5cGVIYW5kbGUA
R2V0VHlwZUZyb21IYW5kbGUAQWN0aXZhdG9yAENyZWF0ZUluc3RhbmNlAE15R3JvdXBDb2xsZWN0
aW9uQXR0cmlidXRlAHNldF9WYWx1ZQBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMAQ29t
VmlzaWJsZUF0dHJpYnV0ZQBTdHJpbmcAU2NyaXB0QnVmZmVyAENMU0NvbXBsaWFudEF0dHJpYnV0
ZQBNaWNyb3NvZnQuU3FsU2VydmVyLkRUU1BpcGVsaW5lV3JhcABNaWNyb3NvZnQuU3FsU2VydmVy
LkR0cy5QaXBlbGluZS5XcmFwcGVyAElEVFNDb21wb25lbnRNZXRhRGF0YTEwMABnZXRfQ29tcG9u
ZW50TWV0YURhdGEASURUU0lucHV0Q29sbGVjdGlvbjEwMABnZXRfSW5wdXRDb2xsZWN0aW9uAElE
VFNJbnB1dDEwMABnZXRfSXRlbQBnZXRfSUQAZ2V0X0J1ZmZlcgBJbnQzMgBzZXRfSXRlbQBJRFRT
T3V0cHV0MTAwAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRFRTUnVudGltZVdyYXAATWljcm9zb2Z0LlNx
bFNlcnZlci5EdHMuUnVudGltZS5XcmFwcGVyAElEVFNWYXJpYWJsZXMxMDAASURUU1ZhcmlhYmxl
RGlzcGVuc2VyMTAwAGdldF9WYXJpYWJsZURpc3BlbnNlcgBMb2NrT25lRm9yUmVhZABJRFRTVmFy
aWFibGUxMDAAQ29udmVyc2lvbnMAVG9JbnRlZ2VyAFVubG9jawBJRFRTT3V0cHV0Q29sbGVjdGlv
bjEwMABnZXRfT3V0cHV0Q29sbGVjdGlvbgBQaXBlbGluZUNvbXBvbmVudABnZXRfSG9zdENvbXBv
bmVudABJRFRTQnVmZmVyTWFuYWdlcjEwMABnZXRfQnVmZmVyTWFuYWdlcgBJRFRTT3V0cHV0Q29s
dW1uQ29sbGVjdGlvbjEwMABnZXRfT3V0cHV0Q29sdW1uQ29sbGVjdGlvbgBJRFRTT3V0cHV0Q29s
dW1uMTAwAGdldF9MaW5lYWdlSUQARmluZENvbHVtbkJ5TGluZWFnZUlEAEV4Y2VwdGlvbgBJc051
bGxPckVtcHR5AEFwcGxpY2F0aW9uRXhjZXB0aW9uAFByb2plY3REYXRhAFNldFByb2plY3RFcnJv
cgBSZW1vdmVBbGwATmV3AHNldF9OYW1lAERhdGFUeXBlAFNldERhdGFUeXBlUHJvcGVydGllcwBD
bGVhclByb2plY3RFcnJvcgBnZXRfTWVzc2FnZQBTU0lTU2NyaXB0Q29tcG9uZW50RW50cnlQb2lu
dEF0dHJpYnV0ZQBDb3p5Um9jLlNxbFNlcnZlci5TU0lTLkF0dHJpYnV0ZXMAVmFsaWRhdGVQcm9w
ZXJ0aWVzQXR0cmlidXRlAFNvcnRQcm9wZXJ0aWVzQXR0cmlidXRlAFZhcmlhYmxlQXR0cmlidXRl
AERlc2NyaXB0aW9uQXR0cmlidXRlAERlZmF1bHRWYWx1ZUF0dHJpYnV0ZQBTeXN0ZW0uUmVmbGVj
dGlvbgBBc3NlbWJseQBnZXRfQXNzZW1ibHkAU3lzdGVtLlRocmVhZGluZwBNb25pdG9yAEVudGVy
AEV4aXQARGVidWdnZXJOb25Vc2VyQ29kZUF0dHJpYnV0ZQBTY3JpcHRDb21wb25lbnRfOWZjNmZm
NDFmYjA3NDg2MGE1ZmQ1NDk1MzNmZWY0OTgudmJwcm9qLlJlc291cmNlcy5yZXNvdXJjZXMAQ29t
cGlsYXRpb25SZWxheGF0aW9uc0F0dHJpYnV0ZQBSdW50aW1lQ29tcGF0aWJpbGl0eUF0dHJpYnV0
ZQBBc3NlbWJseUZpbGVWZXJzaW9uQXR0cmlidXRlAEd1aWRBdHRyaWJ1dGUAQXNzZW1ibHlUcmFk
ZW1hcmtBdHRyaWJ1dGUAQXNzZW1ibHlDb3B5cmlnaHRBdHRyaWJ1dGUAQXNzZW1ibHlQcm9kdWN0
QXR0cmlidXRlAEFzc2VtYmx5Q29tcGFueUF0dHJpYnV0ZQBBc3NlbWJseURlc2NyaXB0aW9uQXR0
cmlidXRlAEFzc2VtYmx5VGl0bGVBdHRyaWJ1dGUAU2NyaXB0Q29tcG9uZW50XzlmYzZmZjQxZmIw
NzQ4NjBhNWZkNTQ5NTMzZmVmNDk4LnZicHJvai5kbGwAAAAAAAtJAG4AcAB1AHQAAD1TAGUAbABl
AGMAdAAgAGMAbwB1AG4AdABlAHIAIABzAHQAYQByAHQAIAB2AGEAcgBpAGEAYgBsAGUALgAARVMA
cABlAGMAaQBmAHkAIABvAHUAdABwAHUAdAAgAGMAbwBsAHUAbQBuACAAZgBvAHIAIABjAG8AdQBu
AHQAZQByAC4AADFNAHkALgBSAGUAcwBvAHUAcgBjAGUAcwAuAE0AeQBSAGUAcwBvAHUAcgBjAGUA
cwAAAPDujJAgjahPvXaKBtkqhw4ACLd6XFYZNOCJCLA/X38R1Qo6AyAAAQMAAAEEAAASDAcGFRIY
ARIMBAAAEggHBhUSGAESCAQAABIRBwYVEhgBEhEEAAASFAcGFRIYARIUBAgAEgwECAASCAQIABIR
BAgAEhQEIAECHAMgAAgEIAASFQMgAA4CHgAHEAEBHgAeAAcwAQEBEB4AAhMABCAAEwAHBhUSGQET
AAQoABMACBbPSQu4DDTqCImEXc2AgMyRCSAEARIhCAISJQQgAB0OAyAAAgQoAB0OAwYSJAMGEigG
IAIBCBIlBSABARIcAwYSIQUgAQESIQUgAQIQDgQgAQEOAgYOAgYIAygADgMGEi0DBhIxBAAAEi0E
AAASMQUAAQESMQQIABItBAgAEjEDBhI0AgYcBAAAEjQECAASNAUgAQERPQgBAAEAAAAAAAUgAgEO
DhcBAApNeVRlbXBsYXRlBzguMC4wLjAAAAQBAAAABhUSGAESDAYVEhgBEggGFRIYARIRBhUSGAES
FAQHARIMBAcBEggEBwESEQQHARIUEwEADk15LkFwcGxpY2F0aW9uAAAQAQALTXkuQ29tcHV0ZXIA
AAwBAAdNeS5Vc2VyAAATAQAOTXkuV2ViU2VydmljZXMAAAQAARwcAwcBAgMHAQgGAAESFRFZBAcB
EhUDBwEOBRABAB4ABAoBHgAEBwEeAAcgBAEODg4OYQEANFN5c3RlbS5XZWIuU2VydmljZXMuUHJv
dG9jb2xzLlNvYXBIdHRwQ2xpZW50UHJvdG9jb2wSQ3JlYXRlX19JbnN0YW5jZV9fE0Rpc3Bvc2Vf
X0luc3RhbmNlX18AAAAGFRIYARMABhUSGQETAAQKARMABSABARMABgcCEwATAAQgAQECBQEAAAAA
BAcBHQ4EIAASdQQgABJ5BSABEn0cBCAAEiUFIAIBCBwFIAASgI0IIAIBDhASgIkGIAESgJEcAyAA
HAQAAQgcBSAAEoCZBiABEoCFHAUgABKAnQUgABKAoQUgABKApQYgARKAqRwFIAIICAgKBwMSfRKA
hRKAiQQAAQIOBgABARKArQUgABKAqQogBQERgLkICAgIEwcHAgISgIUSgKkSgKkSgK0SgK0NAQAI
VmFsaWRhdGUAAAUgAQEdDikBAAIAAAAMQ291bnRlclN0YXJ0E0NvdW50ZXJPdXRwdXRDb2x1bW4A
AC4BAClTZWxlY3QgdmFyaWFibGUgY29udGFpbmluZyBjb3VudGVyIHN0YXJ0LgAAEgEADUNvdW50
ZXJDb2x1bW4AACgBACNTcGVjaWZ5IGNvdW50ZXIgb3V0cHV0IGNvbHVtbiBuYW1lLgAABSAAEoDV
ByACAQ4SgNUGBwISLRItBAcBEjEIAQACAAAAAAAEAAEBHAQHARI0BCABAQgIAQAIAAAAAAAeAQAB
AFQCFldyYXBOb25FeGNlcHRpb25UaHJvd3MBDAEABzEuMC4wLjAAACkBACQxMTBiMDg3Mi1hYWY3
LTQ0NTgtYTkzMC03MzA3MDQwZThlMzMAAAUBAAEAAB8BABpDb3B5cmlnaHQgQCBNaWNyb3NvZnQg
MjAxMAAAPAEAN1NjcmlwdENvbXBvbmVudF85ZmM2ZmY0MWZiMDc0ODYwYTVmZDU0OTUzM2ZlZjQ5
OC52YnByb2oAAA4BAAlNaWNyb3NvZnQAAADIRgAAAAAAAAAAAADeRgAAACAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAA0EYAAAAAAAAAAF9Db3JEbGxNYWluAG1zY29yZWUuZGxsAAAAAAD/JQAgQAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAMAAAAo
AACADgAAAEgAAIAQAAAAYAAAgAAAAAAAAAAAAAAAAAAAAgACAAAAeAAAgAMAAACQAACAAAAAAAAA
AAAAAAAAAAABAAB/AACoAACAAAAAAAAAAAAAAAAAAAABAAEAAADAAACAAAAAAAAAAAAAAAAAAAAB
AAAAAADYAAAAAAAAAAAAAAAAAAAAAAABAAAAAADoAAAAAAAAAAAAAAAAAAAAAAABAAAAAAD4AAAA
AAAAAAAAAAAAAAAAAAABAAAAAAAIAQAAgGUAAOgCAAAAAAAAAAAAAGhoAAAoAQAAAAAAAAAAAACQ
aQAAIgAAAAAAAAAAAAAAGGEAAGgEAAAAAAAAAAAAAGgENAAAAFYAUwBfAFYARQBSAFMASQBPAE4A
XwBJAE4ARgBPAAAAAAC9BO/+AAABAAAAAQAAAAAAAAABAAAAAAA/AAAAAAAAAAQAAAACAAAAAAAA
AAAAAAAAAAAARAAAAAEAVgBhAHIARgBpAGwAZQBJAG4AZgBvAAAAAAAkAAQAAABUAHIAYQBuAHMA
bABhAHQAaQBvAG4AAAAAAAAAsATIAwAAAQBTAHQAcgBpAG4AZwBGAGkAbABlAEkAbgBmAG8AAACk
AwAAAQAwADAAMAAwADAANABiADAAAAA0AAoAAQBDAG8AbQBwAGEAbgB5AE4AYQBtAGUAAAAAAE0A
aQBjAHIAbwBzAG8AZgB0AAAAmAA4AAEARgBpAGwAZQBEAGUAcwBjAHIAaQBwAHQAaQBvAG4AAAAA
AFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8AOQBmAGMANgBmAGYANAAxAGYAYgAwADcA
NAA4ADYAMABhADUAZgBkADUANAA5ADUAMwAzAGYAZQBmADQAOQA4AC4AdgBiAHAAcgBvAGoAAAAw
AAgAAQBGAGkAbABlAFYAZQByAHMAaQBvAG4AAAAAADEALgAwAC4AMAAuADAAAACYADwAAQBJAG4A
dABlAHIAbgBhAGwATgBhAG0AZQAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8AOQBm
AGMANgBmAGYANAAxAGYAYgAwADcANAA4ADYAMABhADUAZgBkADUANAA5ADUAMwAzAGYAZQBmADQA
OQA4AC4AdgBiAHAAcgBvAGoALgBkAGwAbAAAAFwAGwABAEwAZQBnAGEAbABDAG8AcAB5AHIAaQBn
AGgAdAAAAEMAbwBwAHkAcgBpAGcAaAB0ACAAQAAgAE0AaQBjAHIAbwBzAG8AZgB0ACAAMgAwADEA
MAAAAAAAoAA8AAEATwByAGkAZwBpAG4AYQBsAEYAaQBsAGUAbgBhAG0AZQAAAFMAYwByAGkAcAB0
AEMAbwBtAHAAbwBuAGUAbgB0AF8AOQBmAGMANgBmAGYANAAxAGYAYgAwADcANAA4ADYAMABhADUA
ZgBkADUANAA5ADUAMwAzAGYAZQBmADQAOQA4AC4AdgBiAHAAcgBvAGoALgBkAGwAbAAAAJAAOAAB
AFAAcgBvAGQAdQBjAHQATgBhAG0AZQAAAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABvAG4AZQBuAHQA
XwA5AGYAYwA2AGYAZgA0ADEAZgBiADAANwA0ADgANgAwAGEANQBmAGQANQA0ADkANQAzADMAZgBl
AGYANAA5ADgALgB2AGIAcAByAG8AagAAADQACAABAFAAcgBvAGQAdQBjAHQAVgBlAHIAcwBpAG8A
bgAAADEALgAwAC4AMAAuADAAAAA4AAgAAQBBAHMAcwBlAG0AYgBsAHkAIABWAGUAcgBzAGkAbwBu
AAAAMQAuADAALgAwAC4AMAAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/
AP//AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAB3d3d3d3d3d3d3d3d3d3AERERERERERERERERERERwBP//////////
///////0cAT/////////////////9HAE//////////////////RwBP/////////////////0cAT/
////////////////9HAE//////////////////RwBP/////////////////0cAT/////////////
////9HAE//////////////////RwBP/////////////////0cAT/////////////////9HAE////
//////////////RwBP/////////////////0cAT/////////////////9HAE////////////////
//RwBP/////////////////0cAT/////////////////9HAE//////////////////RwBIiIiIiI
iIiIiIiIiIiEcARERERERERERERERERERHAETExMTExMTExMTs7OSXRwBMzMzMzMzMzMzMzMzMzE
AABEREREREREREREREREQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAD/////////////////////wAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGA
AAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAA
AAGAAAADwAAAB////////////////ygAAAAQAAAAIAAAAAEABAAAAAAAwAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA
/wD/AP//AAD///8AAAAAAAAAAAAHd3d3d3d3d0RERERERERHT///////+EdP///////4R0//////
//hHT///////+EdP///////4R0////////hHT///////+EdP///////4R0iIiIiIiIhHTMzMzMzM
zEfEREREREREwAAAAAAAAAAAAAAAAAAAAAD//wAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAP//AAD//wAAAAABAAIAICAQAAEABADoAgAAAgAQEBAA
AQAEACgBAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAMAAAA8DYAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]></arrayElement></arrayElements></property>
<property id="41" name="UserComponentTypeName" dataType="System.String" state="default" isArray="false" description="" typeConverter="" UITypeEditor="" containsID="false" expressionType="None">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2008, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea</property>
<property id="459" name="VSTAProjectName" dataType="System.String" state="default" isArray="false" description="Specifies the name of the Microsoft Visual Studio Tools for Applications project. Project names must be unique within a package." typeConverter="NOTBROWSABLE" UITypeEditor="" containsID="false" expressionType="None">ScriptComponent_9fc6ff41fb074860a5fd549533fef498</property>
<property id="460" name="ScriptLanguage" dataType="System.String" state="default" isArray="false" description="Specifies the programming language used by the script." typeConverter="Microsoft.SqlServer.VSTAHosting.ScriptingLanguages, Microsoft.SqlServer.VSTAScriptingLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" UITypeEditor="" containsID="false" expressionType="None">VisualBasic</property></properties>
<inputs>
<input id="31" name="Input" description="" hasSideEffects="true" dangling="false" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed"><externalMetadataColumns isUsed="False" /></input>
</inputs>
<outputs>
<output id="32" name="Output" description="" exclusionGroup="0" synchronousInputId="31" deleteOutputOnPathDetached="false" hasSideEffects="false" dangling="false" isErrorOut="false" isSorted="false" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed"><externalMetadataColumns isUsed="False" /></output>
</outputs>
</component>