<component id="1" name="Script Component Plus" 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="25" 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_78bf37d4cd214105a7ebe71356c2f851.vbproj")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("Microsoft")> 
<Assembly: AssemblyProduct("ScriptComponent_78bf37d4cd214105a7ebe71356c2f851.vbproj")> 
<Assembly: AssemblyCopyright("Copyright @ Microsoft 2011")> 
<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("5a00287c-141f-469a-bad0-4758c5aefa1a")> 

' 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[\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[\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 OutputBuffer
    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 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 [b]() As String
        Set
            Me(1) = Value
        End Set
    End Property
    Public WriteOnly Property [b_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 Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {"a", "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[\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 OutputBuffer As OutputBuffer

    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)

        For I As Integer = 0 To Outputs - 1
            If OutputIDs(I) = MyBase.ComponentMetaData.OutputCollection("Output").ID Then
                OutputBuffer = New OutputBuffer(Me, OutputIDs(I), False, Buffers(I))
            End If
        Next

        CreateNewOutputRows()

        FinishOutputs()
        MarkOutputsFinished()

    End Sub

    Public Overridable Sub CreateNewOutputRows()
    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[\scriptcomponent_78bf37d4cd214105a7ebe71356c2f851.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_78bf37d4cd214105a7ebe71356c2f851.vbproj</RootNamespace>
    <AssemblyName>ScriptComponent_78bf37d4cd214105a7ebe71356c2f851.vbproj</AssemblyName>
    <StartupObject>
    </StartupObject>
    <OptionExplicit>On</OptionExplicit>
    <OptionCompare>Binary</OptionCompare>
    <OptionStrict>Off</OptionStrict>
    <OptionInfer>On</OptionInfer>
    <ProjectGuid>{2950EDBB-C080-4C5B-ACBB-BB2DDCB00DD2}</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[\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[\main.vb]]></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.Collections

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


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


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub CreateNewOutputRows()
        Dim colsIdx As Hashtable = GetColumnsIdx_()

        ' Get rows.
        Dim rows() As String = GetRows_(Me.Data)
        Dim rowsCount As Integer = rows.Length

        ' Get column names.
        Dim columns() As String = GetColumns_(rows(0))
        Dim colsCount As Integer = columns.Length

        For rowIndex As Integer = 1 To rowsCount - 1    ' First row is column names.
            Call Me.OutputBuffer.AddRow()

            Dim data() As String = GetColumns_(rows(rowIndex))
            For colIndex As Integer = 0 To colsCount - 1
                If colIndex >= data.Length Then
                    ' This line ends earlier
                    Exit For
                End If

                Dim value As String = data(colIndex)
                Dim bufIndex As Integer = CInt(colsIdx(columns(colIndex)))

                If String.IsNullOrEmpty(value) Then
                    Call Me.OutputBuffer.Buffer.SetNull(bufIndex)
                Else
                    Me.OutputBuffer.Buffer(bufIndex) = value
                End If
            Next
        Next

        Call Me.OutputBuffer.SetEndOfRowset()
    End Sub ' CreateNewOutputRows


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

        Try
            If String.IsNullOrEmpty(Me.Data) Then
                Throw New Exception("Specify data.")
            End If

            Dim output As IDTSOutput100 = MyBase.ComponentMetaData.OutputCollection(0)
            If output.OutputColumnCollection.Count = 0 Then
                ' Setup collection output columns.
                Call SetupOutputColumns_()
            End If
        Catch ex As Exception
            result = False
            errMessage = ex.Message
        End Try

        Validate = result
    End Function    ' Validate


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specify input test data.")> _
    <TextDialog("Specify test data.")> _
    Public Property Data() As String
        Get
            Data = m_data
        End Get
        Set(ByVal value As String)
            If m_data <> value Then
                If Not String.IsNullOrEmpty(m_data) Then
                    If GetRows_(m_data)(0) <> GetRows_(value)(0) Then
                        ' Force output columns to be setup.
                        If Me.ComponentMetaData.OutputCollection.Count > 0 Then
                            Dim output As IDTSOutput100 = Me.ComponentMetaData.OutputCollection(0)
                            Call output.OutputColumnCollection.RemoveAll()
                        End If
                    End If
                End If

                m_data = value
            End If
        End Set
    End Property    ' Data


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specify column delimiter.")> _
    Public Property ColumnDelimiter() As String
        Get
            ColumnDelimiter = m_colDelimiter
        End Get
        Set(ByVal value As String)
            m_colDelimiter = value
        End Set
    End Property    ' ColumnDelimiter
#End Region ' Properties


#Region "Internals"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub SetupOutputColumns_()
        ' First line in test data defines column names.
        Dim columns() As String = GetColumns_(GetRows_(Me.Data)(0))

        Dim output As IDTSOutput100 = MyBase.ComponentMetaData.OutputCollection(0)
        Call output.OutputColumnCollection.RemoveAll()

        For Each column As String In columns
            Dim outColumn As IDTSOutputColumn100 = output.OutputColumnCollection.[New]()
            outColumn.Name = column.Trim()
            Call outColumn.SetDataTypeProperties(DataType.DT_WSTR, 250, 0, 0, 0)
        Next
    End Sub ' SetupOutputColumns_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Setup column name -> buffer index map.
    Private Function GetColumnsIdx_() As Hashtable
        Dim result As Hashtable = New Hashtable

        Dim output As IDTSOutput100 = Me.ComponentMetaData.OutputCollection(0)
        Dim colsCount As Integer = output.OutputColumnCollection.Count
        For colIndex As Integer = 0 To colsCount - 1
            Dim column As IDTSOutputColumn100 = output.OutputColumnCollection(colIndex)

            ' Setup buffer index.
            Call result.Add( _
                column.Name, _
                Me.HostComponent.BufferManager.FindColumnByLineageID( _
                    output.Buffer, _
                    column.LineageID))
        Next

        GetColumnsIdx_ = result
    End Function    ' GetColumnsIdx_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetRows_(ByVal data As String) As String()
        GetRows_ = data.Split(New String() {vbLf}, StringSplitOptions.RemoveEmptyEntries)
    End Function    ' GetRows_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetColumns_(ByVal row As String) As String()
        GetColumns_ = row.Split(New String() {Me.ColumnDelimiter}, StringSplitOptions.None)
    End Function    ' GetColumns_
#End Region ' Internals


#Region "Attributes"
    Private m_data As String
    Private m_colDelimiter As String
#End Region ' Attributes
End Class   ' ScriptMain
]]></arrayElement></arrayElements></property>
<property id="26" 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_78bf37d4cd214105a7ebe71356c2f851.vbproj.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
bAwAAOwOAAAjU3RyaW5ncwAAAABYGwAACAEAACNVUwBgHAAAEAAAACNHVUlEAAAAcBwAAAAFAAAj
QmxvYgAAAAAAAAACAAABVxWiCQkPAAAA+gEzABYAAAEAAAA+AAAADQAAABAAAAAzAAAAFgAAAFwA
AAA+AAAAGwAAAAYAAAAQAAAAEwAAAAkAAAABAAAACAAAAAEAAAACAAAAAwAAAAIAAAAAAK8OAQAA
AAAACgCqAYABCgDeAcABBgDuAecBCgBGAoABBgDEAucBCgBGAxwDDgCYA4EDEgDnA8YDFgAYBMYD
DgADBYEDBgD+BesFBgBxBmAGBgCeBokGGgD/BuoGGgBMBzYHGgBlBzYHGgCSB3oHBgC8B6kHCgD7
B9QHCgATCBMAGgBICCsIBgB9CF0IBgCbCOcBBgC/COcBCgDYCBMABgAcCf0IBgAwCecBBgBICecB
EgBiCcYDBgBvCecBHgDSCakJHgABCqkJHgAuCqkJCgBMCtQHBgB7CucBBgCFCucBHgCLCqkJCgDO
CtQHCgAIC9QHHgAqC6kJIgCbC3MLFgDDC8YDHgDnC6kJBgA2DOcBEgBPDMYDDgCYDHYMDgC0DHYM
GgDMDDYHDgDhDHYMBgAHDfUMBgAuDR0NBgBBDakHBgCqDV0IBgDKDV0IBgDoDfUMBgAFDv0IBgAT
DvUMBgAuDvUMBgBJDvUMBgBiDvUMBgB7DvUMBgCYDvUMAAAAAAEAAAAAAAEAAQAAAAAAKQA3AAUA
AQABAAAAAAByADcACQABAAIAAAEQAH0ANwANAAEAAwAFAQAAhwAAAA0ABQAIAAUBAACVAAAADQAF
AA8AAQAAALAAvQAdAAYAEQABAAAA9QC9ACkABgAbAAEAAAADAb0ADQAJACAAAQAAAA8BvQANAAoA
IQABAAAAGQG9ACAACwAiAAAAAAAkATABDQANAC0AAAEQAHUBvQA5AA8AMQAxAAkCIAAxADICLQAx
AFQCOgAxAHkCRwAhAFUDkAAGAAMB2QAGAA8B3QAGALAA4QABAHMF7wABAHMF7wABADUGCgEBADwG
CgERAIEGDQERAKoGEQERABcHLwERAB8HMwEIIQAAAAAGGLoBEwABABAhAAAAAAYYugETAAEAGCEA
AAAAERj1ARcAAQBEIQAAAAATCPwBGwABAFwhAAAAABMIIgIoAAEAdCEAAAAAEwhLAjUAAQCMIQAA
AAATCGkCQgABAKQhAAAAAEYCrwJjAAEAwCEAAAAARgK4AmgAAgDUIQAAAACDAMkCbAACAOwhAAAA
AEYC0QJxAAIAACIAAAAAEQDaAngAAgAcIgAAAAABAPgCgAADADgiAAAAAAYYugETAAQAQCIAAAAA
AwgMA4sABAB0IgAAAAAGGLoBEwAEAIgiAAAAAAYYugGvAAQAmCIAAAAARgpJBLkACACsIgAAAAAG
CGAEvgAIALgiAAAAAAYIbATDAAkA1CIAAAAABgh5BL4ACgDgIgAAAAAGCH8EwwALAPwiAAAAAEYK
jAS5AAwAJCMAAAAAhgCkBBMADAAsIwAAAACGAKsEEwAMADQjAAAAAIYAugTIAAwATCMAAAAABhi6
ARMADABsIwAAAABGAxcFEwAMAHAjAAAAAAEAJQUTAAwAjCMAAAAARgI5BeUADADwIwAAAABGA18F
EwAPAPQjAAAAAAYYugHzAA8ABCQAAAAABhi6AfMAEAAUJAAAAAAGGLoBEwARABwkAAAAAEYCXwUT
ABEA+CQAAAAABgCDBfkAEQB4JQAAAAAGCJcFcQASAJAlAAAAAAYIoAW+ABIAGCYAAAAABgivBXEA
EwAwJgAAAAAGCMMFvgATADwmAAAAAAEA1wUTABQAyCYAAAAAAQAIBv8AFABcJwAAAAABABcGBAEU
AIQnAAAAAAEAJQYEARUArCcAAAAAAxi6ARMAFgC0JwAAAAAWCLYGFQEWAPAnAAAAABYIygYaARYA
BCgAAAAAFgjWBh8BFgAMKAAAAAARGPUBFwAXACAoAAAAAAYYugETABcAKCgAAAAAFggsBzYBFwAA
AAEAtgIAAAEA7wIAAAEA7wIAAAEAJwQAAAIAMQQAAAMAOgQAAAQAQgQAAAEAZgQAAAEAZgQAAAEA
ZgQAAAEAZgQAAAEARQUAAAIATQUAAAMAVwUAAAEAJwQAAAEAJwQAAAEAjAUAAAEAqQUAAAEAqQUA
AAEAIAYAAAEAMQYAAAEAZgQJALoBEwB5ALoBQAGJALoBTwERALoBEwCRALoBEwAkALoBEwAsALoB
EwA0ALoBEwA8ALoBEwAkAAwDiwAsAAwDiwA0AAwDiwA8AAwDiwCZALoBEwChALoBEwCpALoBvgCx
AIwI6AEZAK8CYwAZALgCaAApAK0I9QEZANECcQDBAMkIBQIZALoBEwDJALoBFQJEAFUDkABMACwH
iwBMAPMIkgJMALoBEwDRALoBwwA5ALoBrwA5ADcJqgI5AEAJsALhALoBvgDpAKQEEwDpAKsEEwDp
ALoEyADxALoBwwBRALoBEwBBAOsJvAL5ABkKwQIBATwKxwIJAUUKaABZADwK0wIRAVgK2ALZAGIK
3QI5AHAK4gJJAEAJsAJJADcJqgIZAboBvgAJAakK+gIpAcQKaAAxAdoKAAMZAeoKcQAxAfYKFwA5
ARILEgMBAcQKaAApASALEwApAT4LHwPZAEILcQBBAUcLvgBBAaQLJQNZALoBEwApATwKPwNBAboL
cQBRANULRgNRAfwLTAMJAXAKaABBAQ4MaABZARwMUgNZADIMWAPZAEkMbgNpAboBEwBxAboBvgB5
AboBhgOBAboBvgCJAboBvgApABAN/wNhALoBBQRxALoBEwCZATYNIgSZATwNIgShAboBEwCpAboB
sAKxAboBEwC5AboBvgDBAboBvgDJAboBvgDRAboBvgDZAboBvgDhAboBvgDpAboBvgDxAboBvgAp
AIMAtgEuAMMCkQQuANsCnwIuALsCnwIuAOMCsQQuAOsAnwIuAMsCsQQuANMC7gQuACsBiwQuAJsC
LAQuAKMCNQQuAKsCVAQuALMCYQRAACsAbQFAABMARgFDABMARgFDABsAVQFJAIMA1AFjABsAVQFj
ABMARgFpAIMAxwGAACsAbQGDAHMAbQGDABsAVQGDAHsAbQGJAIMAogGgACsAbQGjABMARgGjAMMA
HQLAACsAbQHDAOsAnwLDABMARgHgACsAbQHjACsBnwIAARMARgEAASsAbQEDASsBnwIgARMARgEg
ASsAbQFAASsAbQFAARMARgFgASsAbQFgARMARgFjASsBnwJjAUsCeANjAVMCjANjAUMCbQGAASsA
bQGJAWMCyQOJAVsC4QOgASsAbQGpAVsCqgPAARMARgHAASsAbQHJARMAGQTgASsAbQHpARMAGQQA
AhMARgEAAisAbQEJApMCbQEABCsBnwIgBCsBnwKOAZMBmAGdAe0B8QH8AQECEAIQApgCpQK1Au0B
zgLnAgcDAQIZAwECMANeA7UCtQINBBQEJwQEAAEABgAFAAcABgALAAwADAAOAA0AEAAAAN4BTwAA
AJcCVAAAAEYCWQAAAKMCXgAAAF8DmAAAAMYEzAAAANkE0QAAANsE1QAAAOQE0QAAAOYE1QAAAO8E
zAAAAEsG0QAAAFAG0QAAAHEGJQEAAOIGKgEAAGYEOwECAAQAAwACAAUABQACAAYABwACAAcACQAC
AA8ACwACABIADQABABMADwABABQAEQABABUAEwABABYAFQACABcAFwACACUAGQABACYAGQABACgA
GwACACcAGwACAC4AHQACAC8AHwABADAAHwACADMAIQB1AHUAiAByAXkBgAGHAX8ChgIEgAAAAQAA
AAAAAAAAAAAAAAC9AAAAAgAAAAAAAAAAAAAAAQAKAAAAAAAIAAAAAAAAAAAAAAAKABMAAAAAAAEA
AAAAAAAAAAAAAJ0AawMAAAAACgAAAAAAAAAAAAAApgCpAwAAAAAKAAAAAAAAAAAAAACmAPcDAAAA
AAIAAAAAAAAAAAAAAAEA5wEAAAAACgAAAAAAAAAAAAAApgCFCQAAAAAKAAAAAAAAAAAAAACmAFAL
AAAAAAAAAAABAAAAXg0AAAUABAAGAAQAAAAQAAwA7QIAABAAGQDtAgAAAAAbAO0CLQALAi0AjQIA
AAA8TW9kdWxlPgBtc2NvcmxpYgBNaWNyb3NvZnQuVmlzdWFsQmFzaWMATXlBcHBsaWNhdGlvbgBT
Y3JpcHRDb21wb25lbnRfNzhiZjM3ZDRjZDIxNDEwNWE3ZWJlNzEzNTZjMmY4NTEudmJwcm9qLk15
AE15Q29tcHV0ZXIATXlQcm9qZWN0AE15V2ViU2VydmljZXMAVGhyZWFkU2FmZU9iamVjdFByb3Zp
ZGVyYDEAT3V0cHV0QnVmZmVyAFNjcmlwdENvbXBvbmVudF83OGJmMzdkNGNkMjE0MTA1YTdlYmU3
MTM1NmMyZjg1MS52YnByb2oAVXNlckNvbXBvbmVudABDb25uZWN0aW9ucwBWYXJpYWJsZXMAU2Ny
aXB0TWFpbgBNeVJlc291cmNlcwBTY3JpcHRDb21wb25lbnRfNzhiZjM3ZDRjZDIxNDEwNWE3ZWJl
NzEzNTZjMmY4NTEudmJwcm9qLk15LlJlc291cmNlcwBNeVNldHRpbmdzAE1pY3Jvc29mdC5WaXN1
YWxCYXNpYy5BcHBsaWNhdGlvblNlcnZpY2VzAEFwcGxpY2F0aW9uQmFzZQAuY3RvcgBNaWNyb3Nv
ZnQuVmlzdWFsQmFzaWMuRGV2aWNlcwBDb21wdXRlcgBTeXN0ZW0AT2JqZWN0AC5jY3RvcgBnZXRf
Q29tcHV0ZXIAbV9Db21wdXRlck9iamVjdFByb3ZpZGVyAGdldF9BcHBsaWNhdGlvbgBtX0FwcE9i
amVjdFByb3ZpZGVyAFVzZXIAZ2V0X1VzZXIAbV9Vc2VyT2JqZWN0UHJvdmlkZXIAZ2V0X1dlYlNl
cnZpY2VzAG1fTXlXZWJTZXJ2aWNlc09iamVjdFByb3ZpZGVyAEFwcGxpY2F0aW9uAFdlYlNlcnZp
Y2VzAEVxdWFscwBvAEdldEhhc2hDb2RlAFR5cGUAR2V0VHlwZQBUb1N0cmluZwBDcmVhdGVfX0lu
c3RhbmNlX18AVABpbnN0YW5jZQBEaXNwb3NlX19JbnN0YW5jZV9fAGdldF9HZXRJbnN0YW5jZQBN
aWNyb3NvZnQuVmlzdWFsQmFzaWMuTXlTZXJ2aWNlcy5JbnRlcm5hbABDb250ZXh0VmFsdWVgMQBt
X0NvbnRleHQAR2V0SW5zdGFuY2UAQ296eVJvYy5TU0lTUGx1cy4yMDA4AENvenlSb2MuU3FsU2Vy
dmVyLlNTSVMAU2NyaXB0QnVmZmVyUGx1cwBNaWNyb3NvZnQuU3FsU2VydmVyLlR4U2NyaXB0AE1p
Y3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlBpcGVsaW5lAFNjcmlwdENvbXBvbmVudABNaWNyb3NvZnQu
U3FsU2VydmVyLlBpcGVsaW5lSG9zdABQaXBlbGluZUJ1ZmZlcgBDb21wb25lbnQAT2JqZWN0SUQA
SXNJbnB1dABCdWZmZXIAZ2V0X1N0YXRpY0lucHV0Q29sdW1ucwBzZXRfYQBWYWx1ZQBzZXRfYV9J
c051bGwAc2V0X2IAc2V0X2JfSXNOdWxsAGdldF9TdGF0aWNPdXRwdXRDb2x1bW5zAEFkZFJvdwBT
ZXRFbmRPZlJvd3NldABFbmRPZlJvd3NldABTdGF0aWNJbnB1dENvbHVtbnMAYQBhX0lzTnVsbABi
AGJfSXNOdWxsAFN0YXRpY091dHB1dENvbHVtbnMAU2NyaXB0Q29tcG9uZW50UGx1cwBGaW5pc2hP
dXRwdXRzAE1hcmtPdXRwdXRzRmluaXNoZWQAUHJpbWVPdXRwdXQAT3V0cHV0cwBPdXRwdXRJRHMA
QnVmZmVycwBDcmVhdGVOZXdPdXRwdXRSb3dzAFBhcmVudENvbXBvbmVudABWYWxpZGF0ZQBlcnJN
ZXNzYWdlAGdldF9EYXRhAHNldF9EYXRhAHZhbHVlAGdldF9Db2x1bW5EZWxpbWl0ZXIAc2V0X0Nv
bHVtbkRlbGltaXRlcgBTZXR1cE91dHB1dENvbHVtbnNfAFN5c3RlbS5Db2xsZWN0aW9ucwBIYXNo
dGFibGUAR2V0Q29sdW1uc0lkeF8AR2V0Um93c18AZGF0YQBHZXRDb2x1bW5zXwByb3cAbV9kYXRh
AG1fY29sRGVsaW1pdGVyAERhdGEAQ29sdW1uRGVsaW1pdGVyAFN5c3RlbS5SZXNvdXJjZXMAUmVz
b3VyY2VNYW5hZ2VyAF9yZXNNZ3IAU3lzdGVtLkdsb2JhbGl6YXRpb24AQ3VsdHVyZUluZm8AX3Jl
c0N1bHR1cmUAZ2V0X1Jlc291cmNlTWFuYWdlcgBnZXRfQ3VsdHVyZQBzZXRfQ3VsdHVyZQBDdWx0
dXJlAFN5c3RlbS5Db25maWd1cmF0aW9uAEFwcGxpY2F0aW9uU2V0dGluZ3NCYXNlAG1fVmFsdWUA
bV9TeW5jT2JqZWN0AGdldF9WYWx1ZQBTeXN0ZW0uQ29tcG9uZW50TW9kZWwARWRpdG9yQnJvd3Nh
YmxlQXR0cmlidXRlAEVkaXRvckJyb3dzYWJsZVN0YXRlAFN5c3RlbS5Db2RlRG9tLkNvbXBpbGVy
AEdlbmVyYXRlZENvZGVBdHRyaWJ1dGUAU3lzdGVtLkRpYWdub3N0aWNzAERlYnVnZ2VySGlkZGVu
QXR0cmlidXRlAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5Db21waWxlclNlcnZpY2VzAFN0YW5kYXJk
TW9kdWxlQXR0cmlidXRlAEhpZGVNb2R1bGVOYW1lQXR0cmlidXRlAFN5c3RlbS5Db21wb25lbnRN
b2RlbC5EZXNpZ24ASGVscEtleXdvcmRBdHRyaWJ1dGUAU3lzdGVtLlJ1bnRpbWUuQ29tcGlsZXJT
ZXJ2aWNlcwBSdW50aW1lSGVscGVycwBHZXRPYmplY3RWYWx1ZQBSdW50aW1lVHlwZUhhbmRsZQBH
ZXRUeXBlRnJvbUhhbmRsZQBBY3RpdmF0b3IAQ3JlYXRlSW5zdGFuY2UATXlHcm91cENvbGxlY3Rp
b25BdHRyaWJ1dGUAc2V0X1ZhbHVlAFN5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcwBDb21W
aXNpYmxlQXR0cmlidXRlAFN0cmluZwBzZXRfSXRlbQBTZXROdWxsAEludmFsaWRPcGVyYXRpb25F
eGNlcHRpb24AU2NyaXB0QnVmZmVyAENMU0NvbXBsaWFudEF0dHJpYnV0ZQBNaWNyb3NvZnQuU3Fs
U2VydmVyLkRUU1BpcGVsaW5lV3JhcABNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5QaXBlbGluZS5X
cmFwcGVyAElEVFNDb21wb25lbnRNZXRhRGF0YTEwMABnZXRfQ29tcG9uZW50TWV0YURhdGEASURU
U091dHB1dENvbGxlY3Rpb24xMDAAZ2V0X091dHB1dENvbGxlY3Rpb24ASURUU091dHB1dDEwMABn
ZXRfSXRlbQBnZXRfSUQAQ29udmVyc2lvbnMAVG9JbnRlZ2VyAElzTnVsbE9yRW1wdHkAZ2V0X0J1
ZmZlcgBFeGNlcHRpb24ASW50MzIASURUU091dHB1dENvbHVtbkNvbGxlY3Rpb24xMDAAZ2V0X091
dHB1dENvbHVtbkNvbGxlY3Rpb24AZ2V0X0NvdW50AFByb2plY3REYXRhAFNldFByb2plY3RFcnJv
cgBnZXRfTWVzc2FnZQBDbGVhclByb2plY3RFcnJvcgBPcGVyYXRvcnMAQ29tcGFyZVN0cmluZwBS
ZW1vdmVBbGwASURUU091dHB1dENvbHVtbjEwMABOZXcAVHJpbQBzZXRfTmFtZQBNaWNyb3NvZnQu
U3FsU2VydmVyLkRUU1J1bnRpbWVXcmFwAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlJ1bnRpbWUu
V3JhcHBlcgBEYXRhVHlwZQBTZXREYXRhVHlwZVByb3BlcnRpZXMAZ2V0X05hbWUAUGlwZWxpbmVD
b21wb25lbnQAZ2V0X0hvc3RDb21wb25lbnQASURUU0J1ZmZlck1hbmFnZXIxMDAAZ2V0X0J1ZmZl
ck1hbmFnZXIAZ2V0X0xpbmVhZ2VJRABGaW5kQ29sdW1uQnlMaW5lYWdlSUQAQWRkAFN0cmluZ1Nw
bGl0T3B0aW9ucwBTcGxpdABTU0lTU2NyaXB0Q29tcG9uZW50RW50cnlQb2ludEF0dHJpYnV0ZQBD
b3p5Um9jLlNxbFNlcnZlci5TU0lTLkF0dHJpYnV0ZXMAVmFsaWRhdGVQcm9wZXJ0aWVzQXR0cmli
dXRlAFNvcnRQcm9wZXJ0aWVzQXR0cmlidXRlAERlc2NyaXB0aW9uQXR0cmlidXRlAFRleHREaWFs
b2dBdHRyaWJ1dGUAU3lzdGVtLlJlZmxlY3Rpb24AQXNzZW1ibHkAZ2V0X0Fzc2VtYmx5AFN5c3Rl
bS5UaHJlYWRpbmcATW9uaXRvcgBFbnRlcgBFeGl0AERlYnVnZ2VyTm9uVXNlckNvZGVBdHRyaWJ1
dGUAU2NyaXB0Q29tcG9uZW50Xzc4YmYzN2Q0Y2QyMTQxMDVhN2ViZTcxMzU2YzJmODUxLnZicHJv
ai5SZXNvdXJjZXMucmVzb3VyY2VzAENvbXBpbGF0aW9uUmVsYXhhdGlvbnNBdHRyaWJ1dGUAUnVu
dGltZUNvbXBhdGliaWxpdHlBdHRyaWJ1dGUAQXNzZW1ibHlGaWxlVmVyc2lvbkF0dHJpYnV0ZQBH
dWlkQXR0cmlidXRlAEFzc2VtYmx5VHJhZGVtYXJrQXR0cmlidXRlAEFzc2VtYmx5Q29weXJpZ2h0
QXR0cmlidXRlAEFzc2VtYmx5UHJvZHVjdEF0dHJpYnV0ZQBBc3NlbWJseUNvbXBhbnlBdHRyaWJ1
dGUAQXNzZW1ibHlEZXNjcmlwdGlvbkF0dHJpYnV0ZQBBc3NlbWJseVRpdGxlQXR0cmlidXRlAFNj
cmlwdENvbXBvbmVudF83OGJmMzdkNGNkMjE0MTA1YTdlYmU3MTM1NmMyZjg1MS52YnByb2ouZGxs
AAAAgJtJAHMATgB1AGwAbAAgAHAAcgBvAHAAZQByAHQAeQAgAGMAYQBuAG4AbwB0ACAAYgBlACAA
cwBlAHQAIAB0AG8AIABGAGEAbABzAGUALgAgAEEAcwBzAGkAZwBuACAAYQAgAHYAYQBsAHUAZQAg
AHQAbwAgAHQAaABlACAAYwBvAGwAdQBtAG4AIABpAG4AcwB0AGUAYQBkAC4AAANhAAADYgAADU8A
dQB0AHAAdQB0AAAbUwBwAGUAYwBpAGYAeQAgAGQAYQB0AGEALgAAAwoAADFNAHkALgBSAGUAcwBv
AHUAcgBjAGUAcwAuAE0AeQBSAGUAcwBvAHUAcgBjAGUAcwAAAAAlQO47JTxBSbdJbutvkq95AAi3
elxWGTTgiQiwP19/EdUKOgMgAAEDAAABBAAAEgwHBhUSGAESDAQAABIIBwYVEhgBEggEAAASEQcG
FRIYARIRBAAAEhQHBhUSGAESFAQIABIMBAgAEggECAASEQQIABIUBCABAhwDIAAIBCAAEhUDIAAO
Ah4ABxABAR4AHgAHMAEBARAeAAITAAQgABMABwYVEhkBEwAEKAATAAgWz0kLuAw06giJhF3NgIDM
kQkgBAESIQgCEiUEIAAdDgQgAQEOBCABAQIDIAACBCgAHQ4DKAAOAygAAgMGEiQDBhIoAwYSHAkg
AwEIHQgdEiUDBhIhBSABARIhBSABAhAOBCAAEi0FIAEdDg4CBg4DBhIxAwYSNQQAABIxBAAAEjUF
AAEBEjUECAASMQQIABI1AwYSNAIGHAQAABI0BAgAEjQFIAEBEUEIAQABAAAAAAAFIAIBDg4XAQAK
TXlUZW1wbGF0ZQc4LjAuMC4wAAAEAQAAAAYVEhgBEgwGFRIYARIIBhUSGAESEQYVEhgBEhQEBwES
DAQHARIIBAcBEhEEBwESFBMBAA5NeS5XZWJTZXJ2aWNlcwAAEAEAC015LkNvbXB1dGVyAAAMAQAH
TXkuVXNlcgAAEwEADk15LkFwcGxpY2F0aW9uAAAEAAEcHAMHAQIDBwEIBgABEhURXQQHARIVAwcB
DgUQAQAeAAQKAR4ABAcBHgAHIAQBDg4ODmEBADRTeXN0ZW0uV2ViLlNlcnZpY2VzLlByb3RvY29s
cy5Tb2FwSHR0cENsaWVudFByb3RvY29sEkNyZWF0ZV9fSW5zdGFuY2VfXxNEaXNwb3NlX19JbnN0
YW5jZV9fAAAABhUSGAETAAYVEhkBEwAECgETAAUgAQETAAYHAhMAEwAFAQAAAAAEBwEdDgUgAgEI
HAQgAQEIBgcCHQ4dDgQgABJ9BSAAEoCBBiABEoCFHAQHAggIBCABHBwEAAEIHAQAAQIOBCAAEiUS
BwwIEi0dDh0OCB0OCAgIDggIBSAAEoCVBgABARKAjQoHBAICEoCFEoCNBgADCA4OAgUHARKAhQUg
ABKAoQogBQERgKUICAgIDgcGHQ4SgIUOEoChCB0OBiABEoChHAUgABKAqQUgABKArQUgAggICAUg
AgEcHA8HBwgSLRKAhRItCBKAoQgJIAIdDh0OEYCxDQEACFZhbGlkYXRlAAAFIAEBHQ4dAQACAAAA
BERhdGEPQ29sdW1uRGVsaW1pdGVyAAAeAQAZU3BlY2lmeSBjb2x1bW4gZGVsaW1pdGVyLgAAFwEA
ElNwZWNpZnkgdGVzdCBkYXRhLgAAHQEAGFNwZWNpZnkgaW5wdXQgdGVzdCBkYXRhLgAABSAAEoDJ
ByACAQ4SgMkGBwISMRIxBAcBEjUIAQACAAAAAAAEAAEBHAQHARI0CAEACAAAAAAAHgEAAQBUAhZX
cmFwTm9uRXhjZXB0aW9uVGhyb3dzAQwBAAcxLjAuMC4wAAApAQAkNWEwMDI4N2MtMTQxZi00Njlh
LWJhZDAtNDc1OGM1YWVmYTFhAAAFAQABAAAfAQAaQ29weXJpZ2h0IEAgTWljcm9zb2Z0IDIwMTEA
ADwBADdTY3JpcHRDb21wb25lbnRfNzhiZjM3ZDRjZDIxNDEwNWE3ZWJlNzEzNTZjMmY4NTEudmJw
cm9qAAAOAQAJTWljcm9zb2Z0AAAAAAAcSgAAAAAAAAAAAAA+SgAAACAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAMEoAAAAAAAAAAAAAAAAAAAAAAAAAAF9Db3JEbGxNYWluAG1zY29yZWUuZGxsAAAAAAD/
JQAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwADAAAAKAAA
gA4AAABIAACAEAAAAGAAAIAAAAAAAAAAAAAAAAAAAAIAAgAAAHgAAIADAAAAkAAAgAAAAAAAAAAA
AAAAAAAAAQAAfwAAqAAAgAAAAAAAAAAAAAAAAAAAAQABAAAAwAAAgAAAAAAAAAAAAAAAAAAAAQAA
AAAA2AAAAAAAAAAAAAAAAAAAAAAAAQAAAAAA6AAAAAAAAAAAAAAAAAAAAAAAAQAAAAAA+AAAAAAA
AAAAAAAAAAAAAAAAAQAAAAAACAEAAIBlAADoAgAAAAAAAAAAAABoaAAAKAEAAAAAAAAAAAAAkGkA
ACIAAAAAAAAAAAAAABhhAABoBAAAAAAAAAAAAABoBDQAAABWAFMAXwBWAEUAUgBTAEkATwBOAF8A
SQBOAEYATwAAAAAAvQTv/gAAAQAAAAEAAAAAAAAAAQAAAAAAPwAAAAAAAAAEAAAAAgAAAAAAAAAA
AAAAAAAAAEQAAAABAFYAYQByAEYAaQBsAGUASQBuAGYAbwAAAAAAJAAEAAAAVAByAGEAbgBzAGwA
YQB0AGkAbwBuAAAAAAAAALAEyAMAAAEAUwB0AHIAaQBuAGcARgBpAGwAZQBJAG4AZgBvAAAApAMA
AAEAMAAwADAAMAAwADQAYgAwAAAANAAKAAEAQwBvAG0AcABhAG4AeQBOAGEAbQBlAAAAAABNAGkA
YwByAG8AcwBvAGYAdAAAAJgAOAABAEYAaQBsAGUARABlAHMAYwByAGkAcAB0AGkAbwBuAAAAAABT
AGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfADcAOABiAGYAMwA3AGQANABjAGQAMgAxADQA
MQAwADUAYQA3AGUAYgBlADcAMQAzADUANgBjADIAZgA4ADUAMQAuAHYAYgBwAHIAbwBqAAAAMAAI
AAEARgBpAGwAZQBWAGUAcgBzAGkAbwBuAAAAAAAxAC4AMAAuADAALgAwAAAAmAA8AAEASQBuAHQA
ZQByAG4AYQBsAE4AYQBtAGUAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfADcAOABi
AGYAMwA3AGQANABjAGQAMgAxADQAMQAwADUAYQA3AGUAYgBlADcAMQAzADUANgBjADIAZgA4ADUA
MQAuAHYAYgBwAHIAbwBqAC4AZABsAGwAAABcABsAAQBMAGUAZwBhAGwAQwBvAHAAeQByAGkAZwBo
AHQAAABDAG8AcAB5AHIAaQBnAGgAdAAgAEAAIABNAGkAYwByAG8AcwBvAGYAdAAgADIAMAAxADEA
AAAAAKAAPAABAE8AcgBpAGcAaQBuAGEAbABGAGkAbABlAG4AYQBtAGUAAABTAGMAcgBpAHAAdABD
AG8AbQBwAG8AbgBlAG4AdABfADcAOABiAGYAMwA3AGQANABjAGQAMgAxADQAMQAwADUAYQA3AGUA
YgBlADcAMQAzADUANgBjADIAZgA4ADUAMQAuAHYAYgBwAHIAbwBqAC4AZABsAGwAAACQADgAAQBQ
AHIAbwBkAHUAYwB0AE4AYQBtAGUAAAAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8A
NwA4AGIAZgAzADcAZAA0AGMAZAAyADEANAAxADAANQBhADcAZQBiAGUANwAxADMANQA2AGMAMgBm
ADgANQAxAC4AdgBiAHAAcgBvAGoAAAA0AAgAAQBQAHIAbwBkAHUAYwB0AFYAZQByAHMAaQBvAG4A
AAAxAC4AMAAuADAALgAwAAAAOAAIAAEAQQBzAHMAZQBtAGIAbAB5ACAAVgBlAHIAcwBpAG8AbgAA
ADEALgAwAC4AMAAuADAAAAAoAAAAIAAAAEAAAAABAAQAAAAAAIACAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD/
/wAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAd3d3d3d3d3d3d3d3d3dwBEREREREREREREREREREcAT/////////////
////9HAE//////////////////RwBP/////////////////0cAT/////////////////9HAE////
//////////////RwBP/////////////////0cAT/////////////////9HAE////////////////
//RwBP/////////////////0cAT/////////////////9HAE//////////////////RwBP//////
///////////0cAT/////////////////9HAE//////////////////RwBP/////////////////0
cAT/////////////////9HAE//////////////////RwBP/////////////////0cASIiIiIiIiI
iIiIiIiIhHAERERERERERERERERERERwBExMTExMTExMTE7Ozkl0cATMzMzMzMzMzMzMzMzMxAAA
REREREREREREREREREAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA/////////////////////8AAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAA
AYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAB
gAAAA8AAAAf///////////////8oAAAAEAAAACAAAAABAAQAAAAAAMAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A
/wD//wAA////AAAAAAAAAAAAB3d3d3d3d3dERERERERER0////////hHT///////+EdP///////4
R0////////hHT///////+EdP///////4R0////////hHT///////+EdIiIiIiIiIR0zMzMzMzMxH
xERERERERMAAAAAAAAAAAAAAAAAAAAAA//8AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAABAAD//wAA//8AAAAAAQACACAgEAABAAQA6AIAAAIAEBAQAAEA
BAAoAQAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADAAAAFA6AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==]]></arrayElement></arrayElements></property>
<property id="29" 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="856" 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_78bf37d4cd214105a7ebe71356c2f851</property>
<property id="857" 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>
<outputs>
<output id="30" name="Output" description="" exclusionGroup="0" synchronousInputId="0" deleteOutputOnPathDetached="false" hasSideEffects="true" dangling="false" isErrorOut="false" isSorted="false" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed"><externalMetadataColumns isUsed="False" /></output>
</outputs>
</component>