<component id="419" name="Split" 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="423" 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_946f5164af91439fadfea81b2e4f1106.vbproj")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("Microsoft")> 
<Assembly: AssemblyProduct("ScriptComponent_946f5164af91439fadfea81b2e4f1106.vbproj")> 
<Assembly: AssemblyCopyright("Copyright @ Microsoft 2014")> 
<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("d78683d0-2aac-4a43-8c44-49791d5e634c")> 

' 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 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

<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 Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public Overloads Sub AddRow()
        MyBase.AddRow()
    End Sub

    Public Overloads Sub SetEndOfRowset()
        MyBase.SetEndOfRowset()
    End Sub

    Public Overloads Function EndOfRowset() As Boolean
        EndOfRowset = MyBase.EndOfRowset
    End Function

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\scriptcomponent_946f5164af91439fadfea81b2e4f1106.vbproj]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<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_946f5164af91439fadfea81b2e4f1106.vbproj</RootNamespace>
    <AssemblyName>ScriptComponent_946f5164af91439fadfea81b2e4f1106.vbproj</AssemblyName>
    <StartupObject>
    </StartupObject>
    <OptionExplicit>On</OptionExplicit>
    <OptionCompare>Binary</OptionCompare>
    <OptionStrict>Off</OptionStrict>
    <OptionInfer>On</OptionInfer>
    <ProjectGuid>{6E1470A4-EA16-4B9B-9D11-906F9FA18E4E}</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.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

    Dim InputsFinished As Integer = 0

    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

        If Buffer.EndOfRowset Then
            InputsFinished = InputsFinished + 1
            If InputsFinished = 0 Then
                FinishOutputs()
                MarkOutputsFinished()
            End If
        End If

    End Sub

    Public Overridable Sub FinishOutputs()
    End Sub

    Private Sub MarkOutputsFinished()

        If OutputBuffer IsNot Nothing Then
            OutputBuffer.SetEndOfRowset
            OutputBuffer = Nothing
        End If

    End Sub

    Public Overrides Sub PrimeOutput(ByVal Outputs As Integer, ByVal OutputIDs() As Integer, ByVal Buffers() As PipelineBuffer)

        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()

    End Sub

    Public Overridable Sub CreateNewOutputRows()
    End Sub

    Public Overridable Sub Input_ProcessInput(ByVal Buffer As InputBuffer)

        While Buffer.NextRow()
            Input_ProcessInputRow(Buffer)
        End While

    End Sub

    Public Overridable Sub Input_ProcessInputRow(ByVal Row As InputBuffer)

    End Sub

End Class

Public Class Connections

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

End Class

Public Class Variables

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\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-2014 CozyRoc LLC
' 
' Permission is hereby granted, free of charge, to any person
' obtaining a copy of this software and associated documentation
' files (the "Software"), to deal in the Software without
' restriction, including without limitation the rights to use,
' copy, modify, merge, publish, distribute, sublicense, and/or sell
' copies of the Software, and to permit persons to whom the
' Software is furnished to do so, subject to the following
' conditions:
' 
' The above copyright notice and this permission notice shall be
' included in all copies or substantial portions of the Software.
' 
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
' EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
' OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
' NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
' HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
' WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
' FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
' OTHER DEALINGS IN THE SOFTWARE.

Imports System
Imports System.ComponentModel
Imports System.Text.RegularExpressions
Imports System.Collections

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


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


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

        While Buffer.NextRow()
            Dim splitValue() As String = New String() {}
            If Not Buffer.IsNull(m_splitIndex) Then
                splitValue = Buffer.GetString(m_splitIndex).Split(m_splitChars)
            End If
            Dim splitCount As Integer = splitValue.Length

            For splitItem As Integer = 0 To splitCount - 1
                Call MyBase.OutputBuffer.AddRow()

                For Each pair As DictionaryEntry In m_colsIndex
                    Dim iIndex As Integer = CInt(pair.Key)
                    Dim oIndex As Integer = CInt(pair.Value)

                    If iIndex <> m_splitIndex Then
                        Dim value As Object = Buffer(iIndex)
                        If TypeOf value Is BlobColumn Then
                            value = Buffer.GetString(iIndex)
                        End If

                        If value Is Nothing Then
                            Call MyBase.OutputBuffer.Buffer.SetNull(oIndex)
                        Else
                            MyBase.OutputBuffer.Buffer(oIndex) = value
                        End If
                    Else
                        ' Set current split value.
                        MyBase.OutputBuffer.Buffer(oIndex) = splitValue(splitItem)
                    End If
                Next
            Next
        End While

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


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

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

        ' Find split column index.
        m_splitIndex = MyBase.HostComponent.BufferManager.FindColumnByLineageID( _
            input.Buffer, _
            input.InputColumnCollection(Me.SplitColumn).LineageID)

        ' Get split chars.
        m_splitChars = Regex.Unescape(Me.SplitSymbol).ToCharArray()

        ' Find columns index from input to output.
        Dim colsCount As Integer = input.InputColumnCollection.Count
        m_colsIndex = New Hashtable()
        For colIndex As Integer = 0 To colsCount - 1
            Dim inColumn As IDTSInputColumn100 = input.InputColumnCollection(colIndex)

            Dim inIndex As Integer = MyBase.HostComponent.BufferManager.FindColumnByLineageID( _
                input.Buffer, _
                inColumn.LineageID)

            Dim outIndex As Integer = MyBase.HostComponent.BufferManager.FindColumnByLineageID( _
                output.Buffer, _
                output.OutputColumnCollection(inColumn.Name).LineageID)

            ' Set input -> output column index.
            m_colsIndex(inIndex) = outIndex
        Next
    End Sub ' PreExecute


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

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

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

                Throw New Exception("Select split column.")
            ElseIf String.IsNullOrEmpty(Me.SplitSymbol) Then
                Throw New Exception("Specify split symbol.")
            End If
        Catch ex As Exception
            result = False
            errMessage = ex.Message
        End Try

        Validate = result
    End Function    'Validate


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

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

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

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

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

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

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

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


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

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


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select input split column.")> _
    <InputVirtualColumn()> _
    Public Property SplitColumn() As String
        Get
            SplitColumn = m_splitColumn
        End Get
        Set(ByVal value As String)
            m_splitColumn = value
        End Set
    End Property    ' SplitColumn


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specify split symbol.")> _
    Public Property SplitSymbol() As String
        Get
            SplitSymbol = m_splitSymbol
        End Get
        Set(ByVal value As String)
            m_splitSymbol = value
        End Set
    End Property    ' SplitSymbol
#End Region ' Properties


#Region "Internals"

#End Region ' Internals


#Region "Attributes"
    Private m_splitColumn As String
    Private m_splitSymbol As String

    Private m_splitIndex As Integer
    Private m_splitChars() As Char
    Private m_colsIndex As Hashtable
#End Region ' Attributes
End Class   ' ScriptMain
]]></arrayElement></arrayElements></property>
<property id="424" 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_946f5164af91439fadfea81b2e4f1106.vbproj.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
b2MAAAoRCG9kAAAKb2UAAAoUEwgRBBfWEwQRBBEHMYgqAAAAEzACAEgAAAAAAAAAAgMoZgAACgIo
JQAACm8mAAAKFowpAAABbycAAApvPwAACm9WAAAKAiglAAAKbyoAAAoWjCkAAAFvKwAACm9IAAAK
b1cAAAoqEzABAAkAAAAYAAARAnsMAAAECgYqAAAAIgIDfQwAAAQqAAAAEzABAAkAAAAZAAARAnsN
AAAECgYqAAAAIgIDfQ0AAAQqAAAAHgIoFwAACioTMAIALQAAABoAABF+EQAABC0gcnEAAHDQDQAA
AigUAAAKb2sAAApzbAAACgsHgBEAAAR+EQAABCoAAAATMAEABgAAABsAABF+EgAABCoAAB4CgBIA
AAQqQnMXAAAKKBEAAAqAFAAABCoAAAAeAihtAAAKKhswAQA/AAAAHAAAEX4TAAAELTJ+FAAABCgR
AAAKKG4AAAp+EwAABC0cczUAAAaAEwAABN4QfhQAAAQoEQAACihvAAAK3H4TAAAEKgABDAAAAgAd
AAwpABAAAAABQlNKQgEAAQAAAAAADAAAAHYyLjAuNTA3MjcAAAAABQBsAAAAWA0AACN+AADEDQAA
VBEAACNTdHJpbmdzAAAAABgfAACkAAAAI1VTALwfAAAQAAAAI0dVSUQAAADMHwAALAUAACNCbG9i
AAAAAAAAAAIAAAFXFaIJCQ8AAAD6ATMAFgAAAQAAAEkAAAAOAAAAFAAAADYAAAAcAAAAegAAAD4A
AAAcAAAABwAAAA4AAAARAAAACQAAAAEAAAAIAAAAAQAAAAIAAAADAAAAAgAAAAAAFhEBAAAAAAAK
ALYBjAEKAOoBzAEGAPoB8wEKAFICjAEGANAC8wEKAFIDKAMOAKQDjQMSAPMD0gMWACQE0gMOANUE
jQMGAIQGcQYGAMMGsgYGAPAG2wYaAFcHQgcaAKQHjgcaAL0HjgcaAOoH0gcGABQIAQgKAFMILAgK
AGsIEwAaAKAIgwgGANUItQgGAPMI8wEGABcJ8wEKADAJEwAGAHQJVQkGAIgJ8wESAI8J0gMGAJwJ
8wEeAP8J1gkeAC4K1gkeAFkK1gkeAIYK1gkeALMK1gkGAMEKcQYGANEKcQYGAAwLcQYKACwLLAgW
AEIL0gMeAHIL1gkGAIUL8wEWAIsL0gMeAK8L1gkeANYL1gkaAFAMMQweAHUM1gkeALcM1gkeAMsM
1gkGAN8M8wEeAPkM1gkKAEwNLAgeAIYN1gkeAJ8N1gkeAN0N1gkeAPgN1gkiAGoOQg4SAMYO0gMO
AA8P7Q4aACsPjgcOAEAP7Q4GAG4PXA8GAJUPhA8GAKgPAQgGABEQtQgGADEQtQgGAE8QXA8GAGwQ
VQkGAHoQXA8GAJUQXA8GALAQXA8GAMkQXA8GAOIQXA8GAP8QXA8AAAAAAQAAAAAAAQABAAAAAAAp
ADcABQABAAEAAAAAAHIANwAJAAEAAgAAARAAfQA3AA0AAQADAAUBAACHAAAADQAFAAgABQEAAJUA
AAANAAUADwABAAAAsAC8AB0ABgARAAEAAAD0ALwAHQAGABYAAQAAAAEBvAApAAYAHAABAAAADwG8
AA0ACgAkAAEAAAAbAbwADQALACUAAQAAACUBvAAkAAwAJgAAAAAAMAE8AQ0AEQAwAAABEACBAbwA
OQATADQAMQAVAiAAMQA+Ai0AMQBgAjoAMQCFAkcAIQBhA5AABgAPAccABgAbAcsABgD0AM8AAQDp
BNMAAQCWBe0AAQCWBe0AAQA7BgcBAQBJBgcBAQBXBtMAAQBkBgoBAQCOBg4BEQDTBhYBEQD8BhoB
EQBvBzgBEQB3BzwBCCEAAAAABhjGARMAAQAQIQAAAAAGGMYBEwABABghAAAAABEYAQIXAAEARCEA
AAAAEwgIAhsAAQBcIQAAAAATCC4CKAABAHQhAAAAABMIVwI1AAEAjCEAAAAAEwh1AkIAAQCkIQAA
AABGArsCYwABAMAhAAAAAEYCxAJoAAIA1CEAAAAAgwDVAmwAAgDsIQAAAABGAt0CcQACAAAiAAAA
ABEA5gJ4AAIAHCIAAAAAAQAEA4AAAwA4IgAAAAAGGMYBEwAEAEAiAAAAAAMIGAOLAAQAdCIAAAAA
BhjGARMABACIIgAAAAAGGMYBrwAEAJgiAAAAAEYKVQS5AAgArCIAAAAARgpsBLkACADAIgAAAACG
AIQEvgAIANgiAAAAAIYAjAS+AAgA8CIAAAAABhjGAa8ACAAAIwAAAABGClUEuQAMABQjAAAAAEYK
bAS5AAwAKCMAAAAAhgC/BBMADAAwIwAAAACGAMYEEwAMADgjAAAAAIYAjAS+AAwAUCMAAAAABhjG
ARMADAB4IwAAAABGAvgE1gAMANwjAAAAAEYDDQUTAA4A4CMAAAAAAQAbBRMADgD8IwAAAABGAi8F
3QAOAFQkAAAAAEYDVQUTABEAWCQAAAAARgNpBecAEQBsJAAAAABGA3wF5wASAHAkAAAAAAYYxgHx
ABMAgCQAAAAABhjGAfEAFACQJAAAAAAGGMYBEwAVAJgkAAAAAEYC+ATWABUA5CUAAAAARgKmBRMA
FwAUJwAAAAAGALEF9wAXALAnAAAAAEYCxQX9ABgA1CgAAAAARgLhBf0AGQAoKQAAAAAGCPUFcQAa
AEApAAAAAAYIBQYCARoATCkAAAAABggbBnEAGwBkKQAAAAAGCCsGAgEbAHApAAAAAAMYxgETABwA
eCkAAAAAFggIBx4BHAC0KQAAAAAWCBwHIwEcAMgpAAAAABYIKAcoARwA0CkAAAAAERgBAhcAHQDk
KQAAAAAGGMYBEwAdAOwpAAAAABYIhAc/AR0AAAABAMICAAABAPsCAAABAPsCAAABADMEAAACAD0E
AAADAEYEAAAEAE4EAAABADMEAAACAD0EAAADAEYEAAAEAE4EAAABAAUFAAACAE4EAAABADsFAAAC
AEMFAAADAE0FAAABAE4EAAABAJIFAAABADMEAAABADMEAAABAAUFAAACAE4EAAABALoFAAABANkF
AAABANkFAAABABUGAAABABUGAAABADQHCQDGARMAeQDGAUkBiQDGAVgBEQDGARMAkQDGARMAJADG
ARMALADGARMANADGARMAPADGARMAJAAYA4sALAAYA4sANAAYA4sAPAAYA4sAmQDGARMAoQDGARMA
qQDGAQIBsQDkCPEBGQC7AmMAGQDEAmgAKQAFCf4BGQDdAnEAwQAhCQ4CGQDGARMAyQDGAR4CRABh
A5AATACEB4sATABLCZsCTADGARMA0QDGAagCOQDGAa8A4QCEBL4A4QCMBL4A6QDGAagC4QC/BBMA
4QDGBBMAUQDGARMAQQAYCrgC8QBFCr0C+QBmCsICAQFvCmgASQB2Cr4A8QCeCskCCQFmCs8CEQFv
CmgASQDnCtsCSQDuCuAC2QD4CuUCWQD+CuwCKQEYC/ICGQEkC/ICMQE4C/YCGQGEB/ICSQBmCvsC
OQBNCwADSQBYC/0ASQBgCwUDKQFpC74ASQCEBL4AQQCmBRMAUQCdCx8DUQHECyUDAQFNC2gAAQHz
CysDYQFmCjEDQQENDGgAWQEbDDgDaQFWDD4D2QBfDEMDYQFrDGgAWQDGARMAEQFNC2gAEQGTDEgD
QQGuDHEAcQFmCk4DeQENDGgAWQBgC1UDAQHpDGwDgQEdDXIDkQFrDGgA2QA+DXgDiQHGAQIBmQFY
DX0DiQFoDXEAmQF0DRcAUQDFBf0AYQG5DRMAcQG5DRMA+QDDDZID8QDRDZkDkQFmCp8DqQENDGgA
sQEFDqYDcQESDrQDqQGuDHEAeQEWDgIBqQFzDroDqQGADmgAqQGLDmgAqQGZDmgAqQGjDmgAeQGw
DsADUQDhBf0AyQHGARMA0QHGAQIB2QHGAQIB4QHGARMAKQB3DywEYQDGATIEcQDGARMA8QGdD08E
8QGjD08E+QHGARMAAQLGAf0ACQLGARMAEQLGAQIBGQLGAQIBIQLGAQIBKQLGAQIBMQLGAQIBOQLG
AQIBQQLGAQIBSQLGAQIBKQCDAL8BLgCrA60CLgDDAxsFLgALAbgELgDLA60CLgDTA94ELgDrAK0C
LgCzA74ELgC7A94ELgCLA1kELgCTA2IELgCbA4EELgCjA44EQAArAHYBQAATAE8BQwAbAF4BQwAT
AE8BSQCDAN0BYwAbAF4BYwATAE8BaQCDANABgAArAHYBgwBzAHYBgwAbAF4BgwB7AHYBiQCDAKsB
oAArAHYBowATAE8BowDDACYCwAArAHYBwwATAE8BwwDrAK0C4AArAHYB4wALAa0CAAETAE8BAAEr
AHYBAwELAa0CIAErAHYBIAETAE8BIwELAa0CQAErAHYBQAETAE8BSQFTA3YBSQFLAwwEYAErAHYB
YAETAE8BaQFLA/EDgAErAHYBgwE7A3YBgwFDA+MDgwELAa0CiQETAEYEoAErAHYBqQETAEYEwAET
AE8BwAErAHYByQGDA3YB4AErAHYBAAITAE8BAAIrAHYBgAQLAa0CoAQLAa0ClwGcAaEBpgH2AfoB
BQIKAhkCGQKhArMCswL2AfYBswKzAvYB1gILA1sDhAPLAwoCCgI6BEEEVAQEAAEABgAFAAcABgAI
AAgADAAKAA0ADAAOAA4AAADqAU8AAACjAlQAAABSAlkAAACvAl4AAABrA5gAAACYBMIAAACrBMIA
AACYBMIAAACrBMIAAACaBhIBAACmBhIBAADDBi4BAAA6BzMBAAA0B0QBAgAEAAMAAgAFAAUAAgAG
AAcAAgAHAAkAAgAPAAsAAgASAA0AAgATAA8AAgAXABEAAgAYABMAAgAsABUAAQAtABUAAQAvABcA
AgAuABcAAgAxABkAAgAyABsAAQAzABsAAgA2AB0AdQB1AIgAewGCAYkBkAGIAo8CBIAAAAEAAAAA
AAAAAAAAAAAAvAAAAAIAAAAAAAAAAAAAAAEACgAAAAAACAAAAAAAAAAAAAAACgATAAAAAAABAAAA
AAAAAAAAAACdAHcDAAAAAAoAAAAAAAAAAAAAAKYAtQMAAAAACgAAAAAAAAAAAAAApgADBAAAAAAC
AAAAAAAAAAAAAAABAPMBAAAAAAoAAAAAAAAAAAAAAKYAsgkAAAAACgAAAAAAAAAAAAAApgAfDgAA
AAAAAAAAAQAAAMUPAAAFAAQABgAEAAAAEAAMAPkCAAAQABkA+QIAAAAAGwD5Ai0AFAItAJYCAAAA
PE1vZHVsZT4AbXNjb3JsaWIATWljcm9zb2Z0LlZpc3VhbEJhc2ljAE15QXBwbGljYXRpb24AU2Ny
aXB0Q29tcG9uZW50Xzk0NmY1MTY0YWY5MTQzOWZhZGZlYTgxYjJlNGYxMTA2LnZicHJvai5NeQBN
eUNvbXB1dGVyAE15UHJvamVjdABNeVdlYlNlcnZpY2VzAFRocmVhZFNhZmVPYmplY3RQcm92aWRl
cmAxAElucHV0QnVmZmVyAFNjcmlwdENvbXBvbmVudF85NDZmNTE2NGFmOTE0MzlmYWRmZWE4MWIy
ZTRmMTEwNi52YnByb2oAT3V0cHV0QnVmZmVyAFVzZXJDb21wb25lbnQAQ29ubmVjdGlvbnMAVmFy
aWFibGVzAFNjcmlwdE1haW4ATXlSZXNvdXJjZXMAU2NyaXB0Q29tcG9uZW50Xzk0NmY1MTY0YWY5
MTQzOWZhZGZlYTgxYjJlNGYxMTA2LnZicHJvai5NeS5SZXNvdXJjZXMATXlTZXR0aW5ncwBNaWNy
b3NvZnQuVmlzdWFsQmFzaWMuQXBwbGljYXRpb25TZXJ2aWNlcwBBcHBsaWNhdGlvbkJhc2UALmN0
b3IATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkRldmljZXMAQ29tcHV0ZXIAU3lzdGVtAE9iamVjdAAu
Y2N0b3IAZ2V0X0NvbXB1dGVyAG1fQ29tcHV0ZXJPYmplY3RQcm92aWRlcgBnZXRfQXBwbGljYXRp
b24AbV9BcHBPYmplY3RQcm92aWRlcgBVc2VyAGdldF9Vc2VyAG1fVXNlck9iamVjdFByb3ZpZGVy
AGdldF9XZWJTZXJ2aWNlcwBtX015V2ViU2VydmljZXNPYmplY3RQcm92aWRlcgBBcHBsaWNhdGlv
bgBXZWJTZXJ2aWNlcwBFcXVhbHMAbwBHZXRIYXNoQ29kZQBUeXBlAEdldFR5cGUAVG9TdHJpbmcA
Q3JlYXRlX19JbnN0YW5jZV9fAFQAaW5zdGFuY2UARGlzcG9zZV9fSW5zdGFuY2VfXwBnZXRfR2V0
SW5zdGFuY2UATWljcm9zb2Z0LlZpc3VhbEJhc2ljLk15U2VydmljZXMuSW50ZXJuYWwAQ29udGV4
dFZhbHVlYDEAbV9Db250ZXh0AEdldEluc3RhbmNlAENvenlSb2MuU1NJU1BsdXMuMjAwOABDb3p5
Um9jLlNxbFNlcnZlci5TU0lTAFNjcmlwdEJ1ZmZlclBsdXMATWljcm9zb2Z0LlNxbFNlcnZlci5U
eFNjcmlwdABNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5QaXBlbGluZQBTY3JpcHRDb21wb25lbnQA
TWljcm9zb2Z0LlNxbFNlcnZlci5QaXBlbGluZUhvc3QAUGlwZWxpbmVCdWZmZXIAQ29tcG9uZW50
AE9iamVjdElEAElzSW5wdXQAQnVmZmVyAGdldF9TdGF0aWNJbnB1dENvbHVtbnMAZ2V0X1N0YXRp
Y091dHB1dENvbHVtbnMATmV4dFJvdwBFbmRPZlJvd3NldABTdGF0aWNJbnB1dENvbHVtbnMAU3Rh
dGljT3V0cHV0Q29sdW1ucwBBZGRSb3cAU2V0RW5kT2ZSb3dzZXQAU2NyaXB0Q29tcG9uZW50UGx1
cwBJbnB1dHNGaW5pc2hlZABQcm9jZXNzSW5wdXQASW5wdXRJRABGaW5pc2hPdXRwdXRzAE1hcmtP
dXRwdXRzRmluaXNoZWQAUHJpbWVPdXRwdXQAT3V0cHV0cwBPdXRwdXRJRHMAQnVmZmVycwBDcmVh
dGVOZXdPdXRwdXRSb3dzAElucHV0X1Byb2Nlc3NJbnB1dABJbnB1dF9Qcm9jZXNzSW5wdXRSb3cA
Um93AFBhcmVudENvbXBvbmVudABQcmVFeGVjdXRlAFZhbGlkYXRlAGVyck1lc3NhZ2UAT25JbnB1
dFBhdGhBdHRhY2hlZABpbnB1dElEAE9uSW5wdXRQYXRoRGV0YWNoZWQAZ2V0X1NwbGl0Q29sdW1u
AHNldF9TcGxpdENvbHVtbgB2YWx1ZQBnZXRfU3BsaXRTeW1ib2wAc2V0X1NwbGl0U3ltYm9sAG1f
c3BsaXRDb2x1bW4AbV9zcGxpdFN5bWJvbABtX3NwbGl0SW5kZXgAbV9zcGxpdENoYXJzAFN5c3Rl
bS5Db2xsZWN0aW9ucwBIYXNodGFibGUAbV9jb2xzSW5kZXgAU3BsaXRDb2x1bW4AU3BsaXRTeW1i
b2wAU3lzdGVtLlJlc291cmNlcwBSZXNvdXJjZU1hbmFnZXIAX3Jlc01ncgBTeXN0ZW0uR2xvYmFs
aXphdGlvbgBDdWx0dXJlSW5mbwBfcmVzQ3VsdHVyZQBnZXRfUmVzb3VyY2VNYW5hZ2VyAGdldF9D
dWx0dXJlAHNldF9DdWx0dXJlAFZhbHVlAEN1bHR1cmUAU3lzdGVtLkNvbmZpZ3VyYXRpb24AQXBw
bGljYXRpb25TZXR0aW5nc0Jhc2UAbV9WYWx1ZQBtX1N5bmNPYmplY3QAZ2V0X1ZhbHVlAFN5c3Rl
bS5Db21wb25lbnRNb2RlbABFZGl0b3JCcm93c2FibGVBdHRyaWJ1dGUARWRpdG9yQnJvd3NhYmxl
U3RhdGUAU3lzdGVtLkNvZGVEb20uQ29tcGlsZXIAR2VuZXJhdGVkQ29kZUF0dHJpYnV0ZQBTeXN0
ZW0uRGlhZ25vc3RpY3MARGVidWdnZXJIaWRkZW5BdHRyaWJ1dGUATWljcm9zb2Z0LlZpc3VhbEJh
c2ljLkNvbXBpbGVyU2VydmljZXMAU3RhbmRhcmRNb2R1bGVBdHRyaWJ1dGUASGlkZU1vZHVsZU5h
bWVBdHRyaWJ1dGUAU3lzdGVtLkNvbXBvbmVudE1vZGVsLkRlc2lnbgBIZWxwS2V5d29yZEF0dHJp
YnV0ZQBTeXN0ZW0uUnVudGltZS5Db21waWxlclNlcnZpY2VzAFJ1bnRpbWVIZWxwZXJzAEdldE9i
amVjdFZhbHVlAFJ1bnRpbWVUeXBlSGFuZGxlAEdldFR5cGVGcm9tSGFuZGxlAEFjdGl2YXRvcgBD
cmVhdGVJbnN0YW5jZQBNeUdyb3VwQ29sbGVjdGlvbkF0dHJpYnV0ZQBzZXRfVmFsdWUAU3lzdGVt
LlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzAENvbVZpc2libGVBdHRyaWJ1dGUAU3RyaW5nAFNjcmlw
dEJ1ZmZlcgBDTFNDb21wbGlhbnRBdHRyaWJ1dGUATWljcm9zb2Z0LlNxbFNlcnZlci5EVFNQaXBl
bGluZVdyYXAATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUGlwZWxpbmUuV3JhcHBlcgBJRFRTQ29t
cG9uZW50TWV0YURhdGExMDAAZ2V0X0NvbXBvbmVudE1ldGFEYXRhAElEVFNJbnB1dENvbGxlY3Rp
b24xMDAAZ2V0X0lucHV0Q29sbGVjdGlvbgBJRFRTSW5wdXQxMDAAZ2V0X0l0ZW0AZ2V0X0lEAGdl
dF9FbmRPZlJvd3NldABJRFRTT3V0cHV0Q29sbGVjdGlvbjEwMABnZXRfT3V0cHV0Q29sbGVjdGlv
bgBJRFRTT3V0cHV0MTAwAERpY3Rpb25hcnlFbnRyeQBJRGljdGlvbmFyeUVudW1lcmF0b3IASXNO
dWxsAEdldFN0cmluZwBTcGxpdABHZXRFbnVtZXJhdG9yAElFbnVtZXJhdG9yAGdldF9DdXJyZW50
AGdldF9LZXkAQ29udmVyc2lvbnMAVG9JbnRlZ2VyAEJsb2JDb2x1bW4AZ2V0X0J1ZmZlcgBTZXRO
dWxsAHNldF9JdGVtAE1vdmVOZXh0AElEVFNJbnB1dENvbHVtbjEwMABJbnQzMgBQaXBlbGluZUNv
bXBvbmVudABnZXRfSG9zdENvbXBvbmVudABJRFRTQnVmZmVyTWFuYWdlcjEwMABnZXRfQnVmZmVy
TWFuYWdlcgBJRFRTSW5wdXRDb2x1bW5Db2xsZWN0aW9uMTAwAGdldF9JbnB1dENvbHVtbkNvbGxl
Y3Rpb24AZ2V0X0xpbmVhZ2VJRABGaW5kQ29sdW1uQnlMaW5lYWdlSUQAU3lzdGVtLlRleHQuUmVn
dWxhckV4cHJlc3Npb25zAFJlZ2V4AFVuZXNjYXBlAFRvQ2hhckFycmF5AGdldF9Db3VudABJRFRT
T3V0cHV0Q29sdW1uQ29sbGVjdGlvbjEwMABnZXRfT3V0cHV0Q29sdW1uQ29sbGVjdGlvbgBnZXRf
TmFtZQBJRFRTT3V0cHV0Q29sdW1uMTAwAElEVFNWaXJ0dWFsSW5wdXQxMDAARXhjZXB0aW9uAEdl
dFZpcnR1YWxJbnB1dABJRFRTVmlydHVhbElucHV0Q29sdW1uQ29sbGVjdGlvbjEwMABnZXRfVmly
dHVhbElucHV0Q29sdW1uQ29sbGVjdGlvbgBJc051bGxPckVtcHR5AFByb2plY3REYXRhAFNldFBy
b2plY3RFcnJvcgBnZXRfTWVzc2FnZQBDbGVhclByb2plY3RFcnJvcgBDTWFuYWdlZENvbXBvbmVu
dFdyYXBwZXIASURUU1ZpcnR1YWxJbnB1dENvbHVtbjEwMABSZW1vdmVBbGwAR2V0T2JqZWN0QnlJ
RABJbnN0YW50aWF0ZQBJRFRTRGVzaWdudGltZUNvbXBvbmVudDEwMABEVFNVc2FnZVR5cGUAU2V0
VXNhZ2VUeXBlAE5ldwBzZXRfTmFtZQBNaWNyb3NvZnQuU3FsU2VydmVyLkRUU1J1bnRpbWVXcmFw
AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlJ1bnRpbWUuV3JhcHBlcgBEYXRhVHlwZQBnZXRfRGF0
YVR5cGUAZ2V0X0xlbmd0aABnZXRfUHJlY2lzaW9uAGdldF9TY2FsZQBnZXRfQ29kZVBhZ2UAU2V0
RGF0YVR5cGVQcm9wZXJ0aWVzAFNTSVNTY3JpcHRDb21wb25lbnRFbnRyeVBvaW50QXR0cmlidXRl
AENvenlSb2MuU3FsU2VydmVyLlNTSVMuQXR0cmlidXRlcwBWYWxpZGF0ZVByb3BlcnRpZXNBdHRy
aWJ1dGUARGVzY3JpcHRpb25BdHRyaWJ1dGUASW5wdXRWaXJ0dWFsQ29sdW1uQXR0cmlidXRlAFN5
c3RlbS5SZWZsZWN0aW9uAEFzc2VtYmx5AGdldF9Bc3NlbWJseQBTeXN0ZW0uVGhyZWFkaW5nAE1v
bml0b3IARW50ZXIARXhpdABEZWJ1Z2dlck5vblVzZXJDb2RlQXR0cmlidXRlAFNjcmlwdENvbXBv
bmVudF85NDZmNTE2NGFmOTE0MzlmYWRmZWE4MWIyZTRmMTEwNi52YnByb2ouUmVzb3VyY2VzLnJl
c291cmNlcwBDb21waWxhdGlvblJlbGF4YXRpb25zQXR0cmlidXRlAFJ1bnRpbWVDb21wYXRpYmls
aXR5QXR0cmlidXRlAEFzc2VtYmx5RmlsZVZlcnNpb25BdHRyaWJ1dGUAR3VpZEF0dHJpYnV0ZQBB
c3NlbWJseVRyYWRlbWFya0F0dHJpYnV0ZQBBc3NlbWJseUNvcHlyaWdodEF0dHJpYnV0ZQBBc3Nl
bWJseVByb2R1Y3RBdHRyaWJ1dGUAQXNzZW1ibHlDb21wYW55QXR0cmlidXRlAEFzc2VtYmx5RGVz
Y3JpcHRpb25BdHRyaWJ1dGUAQXNzZW1ibHlUaXRsZUF0dHJpYnV0ZQBTY3JpcHRDb21wb25lbnRf
OTQ2ZjUxNjRhZjkxNDM5ZmFkZmVhODFiMmU0ZjExMDYudmJwcm9qLmRsbAAAAAALSQBuAHAAdQB0
AAANTwB1AHQAcAB1AHQAAClTAGUAbABlAGMAdAAgAHMAcABsAGkAdAAgAGMAbwBsAHUAbQBuAC4A
ACtTAHAAZQBjAGkAZgB5ACAAcwBwAGwAaQB0ACAAcwB5AG0AYgBvAGwALgAAMU0AeQAuAFIAZQBz
AG8AdQByAGMAZQBzAC4ATQB5AFIAZQBzAG8AdQByAGMAZQBzAAAA4Vkc9bKUT0iNwz3y/4oPHgAI
t3pcVhk04IkIsD9ffxHVCjoDIAABAwAAAQQAABIMBwYVEhgBEgwEAAASCAcGFRIYARIIBAAAEhEH
BhUSGAESEQQAABIUBwYVEhgBEhQECAASDAQIABIIBAgAEhEECAASFAQgAQIcAyAACAQgABIVAyAA
DgIeAAcQAQEeAB4ABzABAQEQHgACEwAEIAATAAcGFRIZARMABCgAEwAIFs9JC7gMNOoIiYRdzYCA
zJEJIAQBEiEIAhIlBCAAHQ4DIAACBCgAHQ4DBhIoAwYSLAMGEiACBggGIAIBCBIlCSADAQgdCB0S
JQUgAQESHAMGEiEFIAEBEiEFIAECEA4EIAEBCAQgAQEOAgYOAwYdAwMGEi0DKAAOAwYSMQMGEjUE
AAASMQQAABI1BQABARI1BAgAEjEECAASNQMGEjgCBhwEAAASOAQIABI4BSABARFBCAEAAQAAAAAA
BSACAQ4OFwEACk15VGVtcGxhdGUHOC4wLjAuMAAABAEAAAAGFRIYARIMBhUSGAESCAYVEhgBEhEG
FRIYARIUBAcBEgwEBwESCAQHARIRBAcBEhQTAQAOTXkuV2ViU2VydmljZXMAABABAAtNeS5Db21w
dXRlcgAADAEAB015LlVzZXIAABMBAA5NeS5BcHBsaWNhdGlvbgAABAABHBwDBwECAwcBCAYAARIV
EV0EBwESFQMHAQ4FEAEAHgAECgEeAAQHAR4AByAEAQ4ODg5hAQA0U3lzdGVtLldlYi5TZXJ2aWNl
cy5Qcm90b2NvbHMuU29hcEh0dHBDbGllbnRQcm90b2NvbBJDcmVhdGVfX0luc3RhbmNlX18TRGlz
cG9zZV9fSW5zdGFuY2VfXwAAAAYVEhgBEwAGFRIZARMABAoBEwAFIAEBEwAGBwITABMABCABAQIF
AQAAAAAEBwEdDgQgABJ5BCAAEn0GIAESgIEcBSAAEoCFBiABEoCJHAQHAggIBCABAggEIAEOCAYg
AR0OHQMFIAASgJEDIAAcBAABCBwEIAEcCAQgABIlBSACAQgcEwcKCB0OCAgIEYCNHAgSgJERgI0F
IAASgKkFIAASgK0FIAASgLEGIAESgKEcBSACCAgIBAABDg4EIAAdAwUgABKAuQYgARKAvRwFIAIB
HBwQBwgIEoCBEoCJCBKAoQgICAUgABKAwQUgABKAyQQAAQIOBgABARKAxQ0HBQICEoCBEoDBEoDF
BiABEoCBCAUgABKA0QYgARKA1RwNIAQSgKEIEoDBCBGA3QUgABKAvQUgABGA4QogBQERgOEICAgI
FwcJCBKA0RKAuRKAwQgSgNUSgL0IEoDVDQEACFZhbGlkYXRlAAAaAQAVU3BlY2lmeSBzcGxpdCBz
eW1ib2wuAAAfAQAaU2VsZWN0IGlucHV0IHNwbGl0IGNvbHVtbi4AAAUgABKA9QcgAgEOEoD1BgcC
EjESMQQHARI1CAEAAgAAAAAABAABARwEBwESOAgBAAgAAAAAAB4BAAEAVAIWV3JhcE5vbkV4Y2Vw
dGlvblRocm93cwEMAQAHMS4wLjAuMAAAKQEAJGQ3ODY4M2QwLTJhYWMtNGE0My04YzQ0LTQ5Nzkx
ZDVlNjM0YwAABQEAAQAAHwEAGkNvcHlyaWdodCBAIE1pY3Jvc29mdCAyMDE0AAA8AQA3U2NyaXB0
Q29tcG9uZW50Xzk0NmY1MTY0YWY5MTQzOWZhZGZlYTgxYjJlNGYxMTA2LnZicHJvagAADgEACU1p
Y3Jvc29mdAAAAABoTwAAAAAAAAAAAAB+TwAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcE8AAAAA
AAAAAF9Db3JEbGxNYWluAG1zY29yZWUuZGxsAAAAAAD/JQAgQAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAwAAACgAAIAO
AAAASAAAgBAAAABgAACAAAAAAAAAAAAAAAAAAAACAAIAAAB4AACAAwAAAJAAAIAAAAAAAAAAAAAA
AAAAAAEAAH8AAKgAAIAAAAAAAAAAAAAAAAAAAAEAAQAAAMAAAIAAAAAAAAAAAAAAAAAAAAEAAAAA
ANgAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAOgAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAPgAAAAAAAAA
AAAAAAAAAAAAAAEAAAAAAAgBAACAZQAA6AIAAAAAAAAAAAAAaGgAACgBAAAAAAAAAAAAAJBpAAAi
AAAAAAAAAAAAAAAYYQAAaAQAAAAAAAAAAAAAaAQ0AAAAVgBTAF8AVgBFAFIAUwBJAE8ATgBfAEkA
TgBGAE8AAAAAAL0E7/4AAAEAAAABAAAAAAAAAAEAAAAAAD8AAAAAAAAABAAAAAIAAAAAAAAAAAAA
AAAAAABEAAAAAQBWAGEAcgBGAGkAbABlAEkAbgBmAG8AAAAAACQABAAAAFQAcgBhAG4AcwBsAGEA
dABpAG8AbgAAAAAAAACwBMgDAAABAFMAdAByAGkAbgBnAEYAaQBsAGUASQBuAGYAbwAAAKQDAAAB
ADAAMAAwADAAMAA0AGIAMAAAADQACgABAEMAbwBtAHAAYQBuAHkATgBhAG0AZQAAAAAATQBpAGMA
cgBvAHMAbwBmAHQAAACYADgAAQBGAGkAbABlAEQAZQBzAGMAcgBpAHAAdABpAG8AbgAAAAAAUwBj
AHIAaQBwAHQAQwBvAG0AcABvAG4AZQBuAHQAXwA5ADQANgBmADUAMQA2ADQAYQBmADkAMQA0ADMA
OQBmAGEAZABmAGUAYQA4ADEAYgAyAGUANABmADEAMQAwADYALgB2AGIAcAByAG8AagAAADAACAAB
AEYAaQBsAGUAVgBlAHIAcwBpAG8AbgAAAAAAMQAuADAALgAwAC4AMAAAAJgAPAABAEkAbgB0AGUA
cgBuAGEAbABOAGEAbQBlAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABvAG4AZQBuAHQAXwA5ADQANgBm
ADUAMQA2ADQAYQBmADkAMQA0ADMAOQBmAGEAZABmAGUAYQA4ADEAYgAyAGUANABmADEAMQAwADYA
LgB2AGIAcAByAG8AagAuAGQAbABsAAAAXAAbAAEATABlAGcAYQBsAEMAbwBwAHkAcgBpAGcAaAB0
AAAAQwBvAHAAeQByAGkAZwBoAHQAIABAACAATQBpAGMAcgBvAHMAbwBmAHQAIAAyADAAMQA0AAAA
AACgADwAAQBPAHIAaQBnAGkAbgBhAGwARgBpAGwAZQBuAGEAbQBlAAAAUwBjAHIAaQBwAHQAQwBv
AG0AcABvAG4AZQBuAHQAXwA5ADQANgBmADUAMQA2ADQAYQBmADkAMQA0ADMAOQBmAGEAZABmAGUA
YQA4ADEAYgAyAGUANABmADEAMQAwADYALgB2AGIAcAByAG8AagAuAGQAbABsAAAAkAA4AAEAUABy
AG8AZAB1AGMAdABOAGEAbQBlAAAAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfADkA
NAA2AGYANQAxADYANABhAGYAOQAxADQAMwA5AGYAYQBkAGYAZQBhADgAMQBiADIAZQA0AGYAMQAx
ADAANgAuAHYAYgBwAHIAbwBqAAAANAAIAAEAUAByAG8AZAB1AGMAdABWAGUAcgBzAGkAbwBuAAAA
MQAuADAALgAwAC4AMAAAADgACAABAEEAcwBzAGUAbQBiAGwAeQAgAFYAZQByAHMAaQBvAG4AAAAx
AC4AMAAuADAALgAwAAAAKAAAACAAAABAAAAAAQAEAAAAAACAAgAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8A
AP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAHd3d3d3d3d3d3d3d3d3cARERERERERERERERERERHAE////////////////
//RwBP/////////////////0cAT/////////////////9HAE//////////////////RwBP//////
///////////0cAT/////////////////9HAE//////////////////RwBP/////////////////0
cAT/////////////////9HAE//////////////////RwBP/////////////////0cAT/////////
////////9HAE//////////////////RwBP/////////////////0cAT/////////////////9HAE
//////////////////RwBP/////////////////0cAT/////////////////9HAEiIiIiIiIiIiI
iIiIiIRwBEREREREREREREREREREcARMTExMTExMTExOzs5JdHAEzMzMzMzMzMzMzMzMzMQAAERE
RERERERERERERERAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAP/////////////////////AAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGA
AAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAA
AAPAAAAH////////////////KAAAABAAAAAgAAAAAQAEAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A
//8AAP///wAAAAAAAAAAAAd3d3d3d3d3REREREREREdP///////4R0////////hHT///////+EdP
///////4R0////////hHT///////+EdP///////4R0////////hHSIiIiIiIiEdMzMzMzMzMR8RE
RERERETAAAAAAAAAAAAAAAAAAAAAAP//AACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAQAA//8AAP//AAAAAAEAAgAgIBAAAQAEAOgCAAACABAQEAABAAQA
KAEAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAwAAACQPwAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=]]></arrayElement></arrayElements></property>
<property id="431" 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="966" 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_946f5164af91439fadfea81b2e4f1106</property>
<property id="967" 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="444" name="Input" description="" hasSideEffects="true" dangling="false" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed"><externalMetadataColumns isUsed="False" /></input>
</inputs>
<outputs>
<output id="445" 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>