<component id="1" name="Profiler Trace Source" 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="5" 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_bd09eb48a8dc4dc18010cf2a314b1aad.vbproj")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("Microsoft")> 
<Assembly: AssemblyProduct("ScriptComponent_bd09eb48a8dc4dc18010cf2a314b1aad.vbproj")> 
<Assembly: AssemblyCopyright("Copyright @ Microsoft 2010")> 
<Assembly: AssemblyTrademark("")> 
<Assembly: CLSCompliant(True)> 

<Assembly: ComVisible(False)> 

'The following GUID is for the ID of the typelib if this project is exposed to COM
<Assembly: Guid("273a2991-b60f-4c58-a79e-9377360761d2")> 

' 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[\scriptcomponent_bd09eb48a8dc4dc18010cf2a314b1aad.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_bd09eb48a8dc4dc18010cf2a314b1aad.vbproj</RootNamespace>
    <AssemblyName>ScriptComponent_bd09eb48a8dc4dc18010cf2a314b1aad.vbproj</AssemblyName>
    <StartupObject>
    </StartupObject>
    <OptionExplicit>On</OptionExplicit>
    <OptionCompare>Binary</OptionCompare>
    <OptionStrict>Off</OptionStrict>
    <OptionInfer>On</OptionInfer>
    <ProjectGuid>{A6CDAB53-8F56-4A7E-8CF7-F62E24A36EB5}</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.ConnectionInfo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL" />
    <Reference Include="Microsoft.SqlServer.ConnectionInfoExtended, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL" />
    <Reference Include="Microsoft.SqlServer.ManagedDTS, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL" />
    <Reference Include="Microsoft.SqlServer.Management.Sdk.Sfc, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL" />
    <Reference Include="Microsoft.SqlServer.Smo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL" />
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
    <Reference Include="Microsoft.SqlServer.TxScript, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
  </ItemGroup>
  <!-- Visual Basic supports Importing namespaces (equivalent to using statements in C#).-->
  <ItemGroup>
    <Import Include="Microsoft.VisualBasic" />
    <Import Include="System" />
    <Import Include="System.Collections" />
    <Import Include="System.Data" />
    <Import Include="System.Diagnostics" />
    <Import Include="System.Windows.Forms" />
  </ItemGroup>
  <!-- This section defines the user source files that are part of the
       project.

       Compile - Specifies a source file to compile.
       EmbeddedResource - Specifies a .resx file for embedded resources.
       None - Specifies a file that is not to be passed to the compiler (for instance,
              a text file or XML file).
       AppDesigner - Specifies the directory where the application properties files can
                     be found.
  -->
  <ItemGroup>
    <AppDesigner Include="My Project\" />
    <Compile Include="BufferWrapper.vb" />
    <Compile Include="ComponentWrapper.vb" />
    <Compile Include="main.vb" />
    <Compile Include="My Project\AssemblyInfo.vb">
      <SubType>Code</SubType>
    </Compile>
    <EmbeddedResource Include="My Project\Resources.resx">
      <Generator>VbMyResourcesResXFileCodeGenerator</Generator>
      <LastGenOutput>Resources.Designer.vb</LastGenOutput>
      <CustomToolNamespace>My.Resources</CustomToolNamespace>
    </EmbeddedResource>
    <Compile Include="My Project\Resources.Designer.vb">
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
      <DependentUpon>Resources.resx</DependentUpon>
      <SubType>Code</SubType>
    </Compile>
    <None Include="My Project\Settings.settings">
      <Generator>SettingsSingleFileGenerator</Generator>
      <LastGenOutput>Settings.Designer.vb</LastGenOutput>
    </None>
    <Compile Include="My Project\Settings.Designer.vb">
      <AutoGen>True</AutoGen>
      <DependentUpon>Settings.settings</DependentUpon>
      <SubType>Code</SubType>
    </Compile>
    <!-- Include the default configuration information and metadata files for the add-in.
         These files are copied to the build output directory when the project is
         built, and the path to the configuration file is passed to add-in on the command
         line when debugging.
    -->
  </ItemGroup>
  <!-- Include the build rules for a VB project.-->
  <Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
  <!-- This section defines VSTA properties that describe the host-changable project properties. -->
  <ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{A860303F-1F3F-4691-B57E-529FC101A107}">
        <ProjectProperties HostName="VSTAHostName" HostPackage="{C1B21C64-9E6F-4923-A89D-9F958503C1CE}" ApplicationType="usd" Language="vb" TemplatesPath="" />
        <Host Name="SSIS_ScriptComponent" />
        <ProjectClient>
          <HostIdentifier>SSIS_ScriptComponent</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
</Project>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\bufferwrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services buffer wrappers
' This module defines classes for accessing data flow buffers
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!


Option Strict Off   ' This allows usage of PipelineBuffer typed accessors.

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class 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[\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

    Public ReadOnly Property TraceSource() As IDTSConnectionManager100
        Get
            Return ParentComponent.ComponentMetaData.RuntimeConnectionCollection("TraceSource").ConnectionManager
        End Get
    End Property

    Public ReadOnly Property TraceProfile() As IDTSConnectionManager100
        Get
            Return ParentComponent.ComponentMetaData.RuntimeConnectionCollection("TraceProfile").ConnectionManager
        End Get
    End Property

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-2009 CozyRoc LLC
' 
' Permission is hereby granted, free of charge, to any person
' obtaining a copy of this software and associated documentation
' files (the "Software"), to deal in the Software without
' restriction, including without limitation the rights to use,
' copy, modify, merge, publish, distribute, sublicense, and/or sell
' copies of the Software, and to permit persons to whom the
' Software is furnished to do so, subject to the following
' conditions:
' 
' The above copyright notice and this permission notice shall be
' included in all copies or substantial portions of the Software.
' 
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
' EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
' OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
' NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
' HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
' WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
' FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
' OTHER DEALINGS IN THE SOFTWARE.

Imports System
Imports System.ComponentModel
Imports System.Data
Imports System.Reflection
Imports System.Diagnostics
Imports System.Collections

Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports Microsoft.SqlServer.Management.Common
Imports Microsoft.SqlServer.Management.Smo
Imports Microsoft.SqlServer.Management.Trace
Imports CozyRoc.SqlServer.SSIS
Imports CozyRoc.SqlServer.SSIS.Attributes


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<SortProperties(New String() {"Source", "File", "Server", "Database", "Table", "Profile"})> _
<FilterProperties("GetProperties")> _
<ValidateProperties("ValidateUI")> _
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent


    Public Enum TraceTypes
        File
        Table
        Server
    End Enum    ' TraceTypes


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub CreateNewOutputRows()
        Dim colsCount As Integer = m_bufIdx.Length

        Do While m_traceReader.Read()
            Call Me.OutputBuffer.AddRow()

            For colIndex As Integer = 0 To colsCount - 1
                Dim bufIndex As Integer = m_bufIdx(colIndex)
                Dim value As Object = m_traceReader(m_readerIdx(colIndex))

                If value Is Nothing Then
                    Call Me.OutputBuffer.Buffer.SetNull(bufIndex)
                Else
                    Me.OutputBuffer.Buffer(bufIndex) = value
                End If
            Next
        Loop

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


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

        m_traceReader = GetTraceReader_()

        ' Initialize column indexes.
        Dim schemaTable As DataTable = m_traceReader.GetSchemaTable()
        Dim output As IDTSOutput100 = Me.ComponentMetaData.OutputCollection(0)
        Dim colsCount As Integer = output.OutputColumnCollection.Count
        m_bufIdx = New Integer(colsCount - 1) {}
        m_readerIdx = New Integer(colsCount - 1) {}
        For colIndex As Integer = 0 To colsCount - 1
            Dim column As IDTSOutputColumn100 = output.OutputColumnCollection(colIndex)

            ' Setup buffer index.
            m_bufIdx(colIndex) = Me.HostComponent.BufferManager.FindColumnByLineageID( _
                output.Buffer, _
                column.LineageID)

            ' Setup reader index.
            Dim columnIndex As Integer = FindColumn_(schemaTable.Rows, column.Name)
            m_readerIdx(colIndex) = columnIndex
        Next

        Call schemaTable.Dispose()
    End Sub ' PreExecute


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

        If Not m_traceReader Is Nothing Then
            Call m_traceReader.Close()
            m_traceReader = Nothing
        End If
    End Sub ' PostExecute


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

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

        ' Load columns from schema.
        Dim traceReader As IDataReader = GetTraceReader_()
        Try
            Dim schemaTable As DataTable = traceReader.GetSchemaTable()
            Dim colsCount As Integer = schemaTable.Rows.Count
            For colIndex As Integer = 0 To colsCount - 1
                Dim columnRow As DataRow = schemaTable.Rows(colIndex)

                Dim columnName As String = CStr(columnRow("ColumnName"))

                ' Get column info.
                Dim dtsType As Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType = _
                    Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_EMPTY
                Dim length As Integer
                Dim precision As Integer
                Dim scale As Integer
                Dim codePage As Integer
                GetTypeFromDataRow_( _
                    columnRow, _
                    dtsType, _
                    length, _
                    precision, _
                    scale, _
                    codePage)

                ' Setup output column.
                Dim column As IDTSOutputColumn100 = output.OutputColumnCollection.New()
                column.Name = columnName
                Call column.SetDataTypeProperties(dtsType, length, precision, scale, codePage)
            Next

            Call schemaTable.Dispose()
        Finally
            If Not traceReader Is Nothing Then
                Call traceReader.Close()
            End If
        End Try
    End Sub ' ReinitializeMetaData


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Returns list of current properties based on current state.
    Public Function GetProperties() As String()
        Dim result As New ArrayList

        ' Base properties.
        Call result.Add("Source")

        Select Case Me.Source
            Case TraceTypes.File
                Call result.Add("File")

            Case TraceTypes.Table
                Call result.Add("Server")
                Call result.Add("Database")
                Call result.Add("Table")

            Case TraceTypes.Server
                Call result.Add("Server")
                Call result.Add("Profile")
        End Select

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



    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Function Validate() As DTSValidationStatus
        Dim result As DTSValidationStatus = MyBase.Validate()

        If result = DTSValidationStatus.VS_ISVALID Then
            Dim errMessage As String
            If Not ValidateUI(errMessage) Then
                Dim cancel As Boolean
                Call Me.ComponentMetaData.FireError(0, "Profile Trace", errMessage, String.Empty, 0, cancel)
            ElseIf Me.ComponentMetaData.OutputCollection(0).OutputColumnCollection.Count = 0 Then
                ' Have to load new metadata.
                result = DTSValidationStatus.VS_NEEDSNEWMETADATA
            End If
        End If

        Validate = result
    End Function    ' Validate


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

        Try
            ' Store connection information in the runtime connection collection, too.
            ' Cannot directly use RuntimeConnectionCollection in the property get/set
            ' because of issues with multi-threading.

            Select Case Me.Source
                Case TraceTypes.File
                    If String.IsNullOrEmpty(Me.File) Then
                        Throw New ApplicationException("Specify trace file connection.")
                    End If

                    Me.ComponentMetaData.RuntimeConnectionCollection("TraceSource").ConnectionManagerID = Me.File
                    ' This is not used. Just set it to avoid validation issues.
                    Me.ComponentMetaData.RuntimeConnectionCollection("TraceProfile").ConnectionManagerID = Me.File

                Case TraceTypes.Table
                    If String.IsNullOrEmpty(Me.Server) Then
                        Throw New ApplicationException("Select SQL Server connection.")
                    ElseIf String.IsNullOrEmpty(Me.Table) Then
                        Throw New ApplicationException("Select trace table.")
                    End If

                    Me.ComponentMetaData.RuntimeConnectionCollection("TraceSource").ConnectionManagerID = Me.Server
                    ' This is not used. Just set it to avoid validation issues.
                    Me.ComponentMetaData.RuntimeConnectionCollection("TraceProfile").ConnectionManagerID = Me.Server

                Case TraceTypes.Server
                    If String.IsNullOrEmpty(Me.Server) Then
                        Throw New ApplicationException("Select SQL Server connection.")
                    ElseIf String.IsNullOrEmpty(Me.Profile) Then
                        Throw New ApplicationException("Select trace profile file connection.")
                    End If

                    Me.ComponentMetaData.RuntimeConnectionCollection("TraceSource").ConnectionManagerID = Me.Server
                    Me.ComponentMetaData.RuntimeConnectionCollection("TraceProfile").ConnectionManagerID = Me.Profile
            End Select

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

        ValidateUI = result
    End Function    'ValidateUI


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Get list of databases for selected SQL server.
    Public Function GetDatabases() As String()
        Dim result As ArrayList = New ArrayList()

        Dim server As Server = CType( _
            Me.DesignConnections(Me.Server).AcquireConnection(Nothing), _
            Server)
        Dim dbCount As Integer = server.Databases.Count
        For dbIndex As Integer = 0 To dbCount - 1
            Call result.Add(server.Databases(dbIndex).Name)
        Next

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


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Get list of tables for selected database.
    Public Function GetTables() As String()
        Dim result As ArrayList = New ArrayList()

        Dim server As Server = CType( _
            Me.DesignConnections(Me.Server).AcquireConnection(Nothing), _
            Server)
        Dim database As Database = server.Databases(Me.Database)
        Dim tblCount As Integer = database.Tables.Count
        For tblIndex As Integer = 0 To tblCount - 1
            Call result.Add(database.Tables(tblIndex).ToString())
        Next

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


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("	Trace")> _
    <Description("Select trace type.")> _
    <RefreshProperties(RefreshProperties.All)> _
    Public Property Source() As TraceTypes
        Get
            Source = m_traceType
        End Get
        Set(ByVal value As TraceTypes)
            If m_traceType <> value Then
                m_traceType = value

                m_traceSource = String.Empty
                m_traceParam1 = String.Empty
                m_traceParam2 = String.Empty
            End If
        End Set
    End Property    ' Source


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Settings")> _
    <Description("Select file connection to SQL Server Profile trace (.trc).")> _
    <Connection("FileConnectionType", True)> _
    Public Property File() As String
        Get
            File = m_traceSource
        End Get
        Set(ByVal value As String)
            m_traceSource = value
        End Set
    End Property    ' File


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Settings")> _
    <Description("Select connection to SQL Server.")> _
    <Connection("SMOConnectionType", True)> _
    Public Property Server() As String
        Get
            Server = m_traceSource
        End Get
        Set(ByVal value As String)
            m_traceSource = value
        End Set
    End Property    ' Server


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Settings")> _
    <Description("Select database.")> _
    <List("GetDatabases")> _
    Public Property Database() As String
        Get
            Database = m_traceParam1
        End Get
        Set(ByVal value As String)
            m_traceParam1 = value
        End Set
    End Property    ' Database


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Settings")> _
    <Description("Select table.")> _
    <List("GetTables")> _
    Public Property Table() As String
        Get
            Table = m_traceParam2
        End Get
        Set(ByVal value As String)
            m_traceParam2 = value
        End Set
    End Property    ' Table


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Connection("FileConnectionType", True)> _
    <Category("Settings")> _
    <Description("Select file connection to SQL Server Profiler trace profile (.tdf).")> _
    Public Property Profile() As String
        Get
            Profile = m_traceParam1
        End Get
        Set(ByVal value As String)
            m_traceParam1 = value
        End Set
    End Property    ' Profile
#End Region ' Properties


#Region "Internals"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private ReadOnly Property SMOConnectionType() As String()
        Get
            SMOConnectionType = New String() {"SMOServer"}
        End Get
    End Property    ' SMOConnectionType


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private ReadOnly Property FileConnectionType() As String()
        Get
            FileConnectionType = New String() {"FILE"}
        End Get
    End Property    ' FileConnectionType


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Get SSIS type from specified DataRow.
    Private Sub GetTypeFromDataRow_( _
        ByVal dataRow As DataRow, _
        ByRef dtsType As Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType, _
        ByRef length As Integer, _
        ByRef precision As Integer, _
        ByRef scale As Integer, _
        ByRef codePage As Integer)

        ' Get type.
        Dim type As Type = CType(dataRow("DataType"), Type)
        dtsType = CType( _
            GetType(PipelineComponent).InvokeMember( _
                "DataRecordTypeToBufferType", _
                BindingFlags.InvokeMethod Or BindingFlags.NonPublic Or BindingFlags.Static, _
                Nothing, _
                Nothing, _
                New Object() {type}), _
                Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType)
        If Not TypeOf dataRow("IsLong") Is DBNull Then
            Select Case dtsType
                Case Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_WSTR
                    dtsType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_NTEXT

                Case Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR
                    dtsType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_TEXT

                Case Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_BYTES
                    dtsType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_IMAGE
            End Select
        End If

        ' Get length.
        length = 0
        Select Case dtsType
            Case Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_WSTR, _
                Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR, _
                Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_BYTES, _
                Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_IMAGE, _
                Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_NTEXT, _
                Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_TEXT

                length = CInt(dataRow.Item("ColumnSize"))
                If length > 4000 Then
                    ' Length is more than the maximum in SSIS. Limit to 4000.
                    length = 4000
                End If

        End Select

        ' Get precision and scale.
        If dtsType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_BYREF_DECIMAL OrElse _
           dtsType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_NUMERIC Then

            If dataRow.IsNull("NumericPrecision") Then
                precision = &H1D
            Else
                precision = Convert.ToInt16(dataRow("NumericPrecision"))
            End If

            If dataRow.IsNull("NumericScale") Then
                scale = 0
            Else
                scale = Convert.ToInt16(dataRow("NumericScale"))
            End If

            If scale = &HFF Then
                scale = 0
            End If
        End If

        ' Get code page.
        codePage = 0
        If dtsType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR Then
            codePage = -1
        End If
    End Sub ' GetTypeFromDataRow_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Find column index in DataRowCollection
    Private Function FindColumn_( _
        ByVal rows As DataRowCollection, _
        ByVal columnName As String) As Integer

        Dim result As Integer = -1

        Dim rowsCount As Integer = rows.Count
        For rowIndex As Integer = 0 To rowsCount - 1
            If columnName = CStr(rows(rowIndex)("ColumnName")) Then
                ' Found column.
                result = rowIndex
                Exit For
            End If
        Next

        Call Debug.Assert(result <> -1)

        FindColumn_ = result
    End Function    ' FindColumn_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Get IDataReader based on selected trace type.
    Private Function GetTraceReader_() As IDataReader
        Dim result As IDataReader

        Dim errMessage As String
        If Not ValidateUI(errMessage) Then
            ' Task doesn't validate.
            Return Nothing
        End If

        Select Case Me.Source
            Case TraceTypes.File
                Dim traceFile As TraceFile = New TraceFile()
                Dim traceFilename As String = CStr(Me.Connections.TraceSource.AcquireConnection(Nothing))
                traceFile.InitializeAsReader(traceFilename)
                result = traceFile

            Case TraceTypes.Table
                ' Get SQL connection info.
                Dim server As Server = CType( _
                    Me.Connections.TraceSource.AcquireConnection(Nothing), _
                    Server)
                Dim sci As SqlConnectionInfo = New SqlConnectionInfo( _
                    server.ConnectionContext, _
                    ConnectionType.Sql)
                sci.DatabaseName = Me.Database

                ' Get trace table and owner separate.
                Dim owner As String
                Dim table As String
                Call GetOwnerTable_(Me.Table, owner, table)

                ' Setup trace table.
                Dim traceTable As TraceTable = New TraceTable()
                traceTable.InitializeAsReader(sci, table, owner)
                result = traceTable

            Case TraceTypes.Server
                ' Get SQL connection info.
                Dim server As Server = CType( _
                    Me.Connections.TraceSource.AcquireConnection(Nothing), _
                    Server)
                Dim sci As SqlConnectionInfo = New SqlConnectionInfo( _
                    server.ConnectionContext, _
                    ConnectionType.Sql)

                ' Get trace profile name.
                Dim traceProfile As String = CStr(Me.Connections.TraceProfile.AcquireConnection(Nothing))

                ' Setup trace server.
                Dim traceServer As TraceServer = New TraceServer()
                Call traceServer.InitializeAsReader(sci, traceProfile)
                result = traceServer
        End Select

        GetTraceReader_ = result
    End Function    ' GetTraceReader_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Get owner and table in separate fields.
    Private Sub GetOwnerTable_( _
        ByVal tableCombo As String, _
        ByRef owner As String, _
        ByRef table As String)

        Dim combo As String() = tableCombo.Split( _
            New String() {"].["}, _
            2, _
            StringSplitOptions.None)
        owner = combo(0).Substring(1)
        table = combo(1).Substring(0, combo(1).Length - 1)
    End Sub ' GetOwnerTable_
#End Region ' Internals


#Region "Attributes"
    Private m_traceType As TraceTypes = TraceTypes.File
    Private m_traceSource As String
    Private m_traceParam1 As String
    Private m_traceParam2 As String

    Private m_traceReader As IDataReader
    Private m_bufIdx As Integer()
    Private m_readerIdx As Integer()
#End Region ' Attributes
End Class   ' ScriptMain
]]></arrayElement></arrayElements></property>
<property id="6" 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_bd09eb48a8dc4dc18010cf2a314b1aad.vbproj.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
aW5ncwAAAAAkJgAAuAIAACNVUwDcKAAAEAAAACNHVUlEAAAA7CgAAKwHAAAjQmxvYgAAAAAAAAAC
AAABVx2iCQkPAAAA+gEzABYAAAEAAABlAAAADgAAABkAAABCAAAAHwAAAIoAAAADAAAATgAAACgA
AAAHAAAAFAAAABsAAAAKAAAAAQAAAA0AAAABAAAAAwAAAAMAAAACAAAAAADsFAEAAAAAAAoAtQGL
AQoA6QHLAQYA+QHyAQoAUQKLAQYAzwLyAQoAUQMnAw4AowOMAxIA8gPRAxYAIwTRAw4AzASMAxoA
lwVvBR4AcQZIBiIAfgdyBxoAhgdvBSIA0wdyByIAAQhyBwYA6wjyAQYACQn4CAYANgkhCSYAnQmI
CSYA6gnUCSYAAwrUCSYAMAoYCgYAWgpHCgoAmQpyCgoAsQoTACYA5grJCgYAGwv7CgYAOQvyAQYA
XQvyAQoAdgsTAAYAugubCwYAzgvyARIA1QvRAwYA4gvyAR4A+AtIBh4AJwxIBh4AVAxIBh4AcgxI
Bh4AtQxIBiIA5AxyByIAEQ1yBx4AGw1IBgYAPg3yAR4ARA1IBhYAhw3RAx4Aqw1IBiYACA7UCQoA
OA5yCgYAeg5nDgYAiA7yAQYApg7yAQYAvg7yAQoA6w5yCioAqAg9Dy4AAwF/Dy4AtQ9/DyoA2Q89
DyoA+g89DyoArwg9DyoADBA9DyoAGxA9DyoAuAg9DyoANhA9DwYAVRBDEAYAYhBDEAYAgBDyAQYA
jhDyAQoAnhByCjIABhHhEDYAWREzETIAaxHhEDIAdhHhEDYAlREzETYAvBEzETYAyxEzETYA9hEz
EQYACRLyARIANxLRAw4AgBJeEg4AnBJeEg4AthJeEg4AzhJeEiYA4hLUCSYA9xLUCSYACRPUCSYA
JBPUCQ4ANhNeEgYARBNDEAYAaxNaEwYAfhNHCgYA5xP7CgYABxT7CgYAJRRDEAYAQhSbCwYAUBRD
EAYAaxRDEAYAhhRDEAYAnxRDEAYAuBRDEAYA1RRDEAAAAAABAAAAAAABAAEAAAAAACkANwAFAAEA
AQAAAAAAcgA3AAkAAQACAAABEAB9ADcADQABAAMABQEAAIcAAAANAAUACAAFAQAAlQAAAA0ABQAP
AAEAAACwAL0AHQAGABEAAQAAAPUAvQApAAYAFwABAAAAAwG9AA0ACQAcAAEAAAAPAb0ADQAKAB8A
AQAAABkBvQAgAAsAIAACAQAAJAEAAEUAEgA8AAAAAAAvATsBDQAWADwAAAEQAIABvQBRABgAQAAx
ABQCIAAxAD0CLQAxAF8COgAxAIQCRwAhAGADkAAGAAMBxwAGAA8BywAGALAAzwABADwF3QABADwF
3QABAEMIMgEBAE8INgEBAF0INgEBAGsINgEBAHkIOQEBAIcIPQEBAJAIPQEGBvAISgFWgKMIMgFW
gLgIMgFWgKgIMgERABkJXAERAEIJYAERALUJfgERAL0JggEIIQAAAAAGGMUBEwABABAhAAAAAAYY
xQETAAEAGCEAAAAAERgAAhcAAQBEIQAAAAATCAcCGwABAFwhAAAAABMILQIoAAEAdCEAAAAAEwhW
AjUAAQCMIQAAAAATCHQCQgABAKQhAAAAAEYCugJjAAEAwCEAAAAARgLDAmgAAgDUIQAAAACDANQC
bAACAOwhAAAAAEYC3AJxAAIAACIAAAAAEQDlAngAAgAcIgAAAAABAAMDgAADADgiAAAAAAYYxQET
AAQAQCIAAAAAAwgXA4sABAB0IgAAAAAGGMUBEwAEAIgiAAAAAAYYxQGvAAQAmCIAAAAARgpUBLkA
CACsIgAAAABGCmsEuQAIAMAiAAAAAIYAgwQTAAgAyCIAAAAAhgCKBBMACADQIgAAAACGAJkEvgAI
AOgiAAAAAAYYxQETAAgACCMAAAAARgPgBBMACAAMIwAAAAABAO4EEwAIACgjAAAAAEYCAgXTAAgA
jCMAAAAARgMoBRMACwCQIwAAAAAGGMUB4QALAKAjAAAAAAYIsAXnAAwAzCMAAAAABgjABecADAD4
IwAAAAAGGMUB4QAMAAgkAAAAAAYYxQETAA0AGCQAAAAARgIoBRMADQC0JAAAAABGAuoFEwANAJQl
AAAAAEYC9QUTAA0AuCUAAAAARgIBBhMADQCgJgAAAAAGABYGuQANADwnAAAAAEYChQbxAA0ApCcA
AAAABgCOBvYADQBIKQAAAAAGAKQGuQAOAMgpAAAAAAYAsQa5AA4AXCoAAAAABgi7BvwADgB0KgAA
AAAGCMYGAQEOAKgqAAAAAAYI1wZxAA8AwCoAAAAABgjgBgcBDwDMKgAAAAAGCOkGcQAQAOQqAAAA
AAYI9AYHARAA8CoAAAAABgj/BnEAEQAIKwAAAAAGCAwHBwERABQrAAAAAAYIGQdxABIALCsAAAAA
BggjBwcBEgA4KwAAAAAGCC0HcQATAFArAAAAAAYIOQcHARMAXCsAAAAAAQhFB7kAFAB8KwAAAAAB
CFsHuQAUAJwrAAAAAAEAjwcMARQAEC0AAAAAAQDlBx0BGgBgLQAAAAABAA0IJAEcAHguAAAAAAEA
HQgpARwAwC4AAAAAAxjFARMAHwDILgAAAAAWCE4JZAEfAAQvAAAAABYIYglpAR8AGC8AAAAAFghu
CW4BHwAgLwAAAAARGAACFwAgADQvAAAAAAYYxQETACAAPC8AAAAAFgjKCYUBIAAAAAEAwQIAAAEA
+gIAAAEA+gIAAAEAMgQAAAIAPAQAAAMARQQAAAQATQQAAAEADgUAAAIAFgUAAAMAIAUAAAEAMgQA
AAEAMgQAAAEAmQYAAAEA0QYAAAEA0QYAAAEA0QYAAAEA0QYAAAEA0QYAAAEA0QYAAAEAowcAAAIA
qwcAAAMAswcAAAQAugcAAAUAxAcAAAYAygcAAAEA8QcAAAIA9gcAAAEALAgAAAIANwgAAAMAPQgA
AAEAegkJAMUBEwCpAMUBjwG5AMUBngERAMUBEwDBAMUBEwAkAMUBEwAsAMUBEwA0AMUBEwA8AMUB
EwAkABcDiwAsABcDiwA0ABcDiwA8ABcDiwDJAMUBEwDRAMUBEwDZAMUBBwHhACoLMgIZALoCYwAZ
AMMCaAApAEsLPwIZANwCcQDxAGcLTwIZAMUBEwD5AMUBXwJEAGADkABMAMoJiwBMAJEL3AJMAMUB
EwABAcUB6QI5AMUBrwARAYMEEwARAYoEEwARAZkEvgAZAcUB6QJRAMUBEwBBABEM+QIhAT8M/wIp
AWIMBQMxAWsMaAAhAZUMEQM5AWIMFwNBAc4M5wBJAWIMIwM5APAMKANJAPsMLQNJAAMNMgOBAAwN
vgBBAOoFEwCBAC8NQAMxAWINRgNpAX0NaABpAWIMTANRAJkNUwNxAcANWQMxAfAMaABZAdINaAB5
AeANXwNRAfYNZQNZAf8NcQCBASAOEwBBAPUFEwCBACgOEwBRAAEGEwBpAS4OEwB5AH0NaAB5AGIM
egNpAGIMgAOJAdwChQNpAUQOigNZAUgOBwFZAVEOkAORAcUBEwCRAYQOtAORAY4OuQNRAIUG8QAJ
AZYONgEhAZwOzgMJAbAO4gOpAcUBBwFBAdMOBwGxAfcO5wOhAQcPcQCxARMPFwBRAJ8P+APBAWIM
/gPJAccPBQS5AewPCgTZAX0NaADRAWIMEATpAf8NcQDRAWIMJQThASsQLATxAWIMMgQBAtwCcQAp
AGkQVgSJAXYQZARpAIcQaQQhApYQbgQpAqgQfgQxAsUBEwBZAMcPBQQxAoIRBwG5AaYRjQQ5AsUB
kwRhAuURBwFBAsUBEwBBAoIRnQRJAsUBEwBJAoIRpgQJARwS0QQJASIS3AQJASwSaAAJASIS4QR5
AsUBEwCBAsUBBwGJAsUBBwGRAsUBCgWZAsUBQwWhAsUBBwGpAsUBBwGxAsUBlQXBAsUBBwEpAE0T
rAaRAMUBsgahAMUBEwDRAnMTzwbRAnkTzwbZAsUBEwDhAsUBLQPpAsUBEwDxAsUBBwH5AsUBBwEB
A8UBBwEJA8UBBwERA8UBBwEZA8UBBwEhA8UBBwEpA8UBBwEIAEwATQEIAFAAUgEIAFQAVwEpAIMA
7AEuADMEPgcuAEMEmwcuACsE7gIuAFMEXgcuAOsA7gIuADsEXgcuAEsE7gIuABMBOAcuAAsE2QYu
ABME4gYuABsEAQcuACMEDgdAACsAUgFAABMAlQFDABMAlQFDABsApAFJAIMACgJjABsApAFjABMA
lQFpAIMA/QGAACsAUgGDAHMAUgGDABsApAGDAHsAUgGJAIMAHgKgACsAUgGjAMMAZwKjABMAlQHA
ACsAUgHDABMAlQHDAOsA7gLgACsAUgHjABMB7gIAARMAlQEAASsAUgEDARMB7gIgASsAUgEgARMA
lQFAARMAlQFAASsAUgFJAbsDnAVJAcsDlQFJAcMDtAVgARMAlQFgASsAUgFjAasDEAVjARMB7gJj
AZMDUgFjAZsD5wRjAaMD9wRpAbMDMQZpAcMDhwVpAbsDSgaAASsAUgGJAcMDhwWJAbsDYQWJAbMD
SQWgASsAUgGpAcMDhwWpAbsD0gWpAdMDwAXAASsAUgHAARMAlQHJAbsDmQbJAdMDigbJAcMDhwXg
ASsAUgHpAbMDMQbpAcMDhwXpAbsD6AUAAhMAlQEAAisAUgFJAhMAxgZpAhMAxgaJAgMEUgGAAxMB
7gLgAxMB7gLYAd0B4gHnATcCOwJGAksCWgJaAuIC9AL0AjcCDAMeAx4DOANqA5oDxAPZA+4DFwQ5
BEoESwJLAksCSwJLAk8ETwRzBIUErgRPBLoGwQbUBgQAAQAGAAUABwAGAAkACAALAAoADQASAA4A
FAAAAOkBTwAAAKICVAAAAFECWQAAAK4CXgAAAGoDmAAAAKUEwgAAALgEwgAAANEF7AAAAN0F7AAA
AJwIQQEAAKMIRgEAAKgIRgEAAK8IRgEAALgIRgEAAL4IRgEAAMYIwgAAANgIwgAAAAkJdAEAAIAJ
eQEAAHoJigECAAQAAwACAAUABQACAAYABwACAAcACQACAA8ACwACABIADQACABMADwACAB0AEQAC
AB4AEwACACoAFQABACsAFQACACwAFwABAC0AFwACAC4AGQABAC8AGQABADEAGwACADAAGwACADIA
HQABADMAHQABADUAHwACADQAHwACADYAIQACADcAIwACAD0AJQACAD4AJwABAD8AJwACAEIAKQB1
AHUAiAC8AcMBygHRAckC0ALBAwSAAAABAAAAAAAAAAAAAAAAAL0AAAACAAAAAAAAAAAAAAABAAoA
AAAAAAgAAAAAAAAAAAAAAAoAEwAAAAAAAQAAAAAAAAAAAAAAnQB2AwAAAAAKAAAAAAAAAAAAAACm
ALQDAAAAAAoAAAAAAAAAAAAAAKYAAgQAAAAACgAAAAAAAAAAAAAApgBMBQAAAAAKAAAAAAAAAAAA
AACmACQGAAAAAAIAAAAAAAAAAAAAAAEAcgcAAAAAAgAAAAAAAAAAAAAAAQDyAQAAAAAKAAAAAAAA
AAAAAACmACUPAAAAAAoAAAAAAAAAAAAAAKYAYA8AAAAACgAAAAAAAAAAAAAApgC2EAAAAAAKAAAA
AAAAAAAAAACmABARAAAAAAAAAAABAAAAmxMAAAUABAAGAAQADAALAAAAEAAMAPgCAAAQABkA+AIA
AAAAGwD4Ai0AVQItANcCAAAAPE1vZHVsZT4AbXNjb3JsaWIATWljcm9zb2Z0LlZpc3VhbEJhc2lj
AE15QXBwbGljYXRpb24AU2NyaXB0Q29tcG9uZW50X2JkMDllYjQ4YThkYzRkYzE4MDEwY2YyYTMx
NGIxYWFkLnZicHJvai5NeQBNeUNvbXB1dGVyAE15UHJvamVjdABNeVdlYlNlcnZpY2VzAFRocmVh
ZFNhZmVPYmplY3RQcm92aWRlcmAxAE91dHB1dEJ1ZmZlcgBTY3JpcHRDb21wb25lbnRfYmQwOWVi
NDhhOGRjNGRjMTgwMTBjZjJhMzE0YjFhYWQudmJwcm9qAFVzZXJDb21wb25lbnQAQ29ubmVjdGlv
bnMAVmFyaWFibGVzAFNjcmlwdE1haW4AVHJhY2VUeXBlcwBNeVJlc291cmNlcwBTY3JpcHRDb21w
b25lbnRfYmQwOWViNDhhOGRjNGRjMTgwMTBjZjJhMzE0YjFhYWQudmJwcm9qLk15LlJlc291cmNl
cwBNeVNldHRpbmdzAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5BcHBsaWNhdGlvblNlcnZpY2VzAEFw
cGxpY2F0aW9uQmFzZQAuY3RvcgBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuRGV2aWNlcwBDb21wdXRl
cgBTeXN0ZW0AT2JqZWN0AC5jY3RvcgBnZXRfQ29tcHV0ZXIAbV9Db21wdXRlck9iamVjdFByb3Zp
ZGVyAGdldF9BcHBsaWNhdGlvbgBtX0FwcE9iamVjdFByb3ZpZGVyAFVzZXIAZ2V0X1VzZXIAbV9V
c2VyT2JqZWN0UHJvdmlkZXIAZ2V0X1dlYlNlcnZpY2VzAG1fTXlXZWJTZXJ2aWNlc09iamVjdFBy
b3ZpZGVyAEFwcGxpY2F0aW9uAFdlYlNlcnZpY2VzAEVxdWFscwBvAEdldEhhc2hDb2RlAFR5cGUA
R2V0VHlwZQBUb1N0cmluZwBDcmVhdGVfX0luc3RhbmNlX18AVABpbnN0YW5jZQBEaXNwb3NlX19J
bnN0YW5jZV9fAGdldF9HZXRJbnN0YW5jZQBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuTXlTZXJ2aWNl
cy5JbnRlcm5hbABDb250ZXh0VmFsdWVgMQBtX0NvbnRleHQAR2V0SW5zdGFuY2UAQ296eVJvYy5T
U0lTUGx1cy4yMDA4AENvenlSb2MuU3FsU2VydmVyLlNTSVMAU2NyaXB0QnVmZmVyUGx1cwBNaWNy
b3NvZnQuU3FsU2VydmVyLlR4U2NyaXB0AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlBpcGVsaW5l
AFNjcmlwdENvbXBvbmVudABNaWNyb3NvZnQuU3FsU2VydmVyLlBpcGVsaW5lSG9zdABQaXBlbGlu
ZUJ1ZmZlcgBDb21wb25lbnQAT2JqZWN0SUQASXNJbnB1dABCdWZmZXIAZ2V0X1N0YXRpY0lucHV0
Q29sdW1ucwBnZXRfU3RhdGljT3V0cHV0Q29sdW1ucwBBZGRSb3cAU2V0RW5kT2ZSb3dzZXQARW5k
T2ZSb3dzZXQAU3RhdGljSW5wdXRDb2x1bW5zAFN0YXRpY091dHB1dENvbHVtbnMAU2NyaXB0Q29t
cG9uZW50UGx1cwBGaW5pc2hPdXRwdXRzAE1hcmtPdXRwdXRzRmluaXNoZWQAUHJpbWVPdXRwdXQA
T3V0cHV0cwBPdXRwdXRJRHMAQnVmZmVycwBDcmVhdGVOZXdPdXRwdXRSb3dzAFBhcmVudENvbXBv
bmVudABNaWNyb3NvZnQuU3FsU2VydmVyLkRUU1J1bnRpbWVXcmFwAE1pY3Jvc29mdC5TcWxTZXJ2
ZXIuRHRzLlJ1bnRpbWUuV3JhcHBlcgBJRFRTQ29ubmVjdGlvbk1hbmFnZXIxMDAAZ2V0X1RyYWNl
U291cmNlAGdldF9UcmFjZVByb2ZpbGUAVHJhY2VTb3VyY2UAVHJhY2VQcm9maWxlAFByZUV4ZWN1
dGUAUG9zdEV4ZWN1dGUAUmVpbml0aWFsaXplTWV0YURhdGEAR2V0UHJvcGVydGllcwBNaWNyb3Nv
ZnQuU3FsU2VydmVyLkRUU1BpcGVsaW5lV3JhcABNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5QaXBl
bGluZS5XcmFwcGVyAERUU1ZhbGlkYXRpb25TdGF0dXMAVmFsaWRhdGUAVmFsaWRhdGVVSQBlcnJN
ZXNzYWdlAEdldERhdGFiYXNlcwBHZXRUYWJsZXMAZ2V0X1NvdXJjZQBzZXRfU291cmNlAHZhbHVl
AGdldF9GaWxlAHNldF9GaWxlAGdldF9TZXJ2ZXIAc2V0X1NlcnZlcgBnZXRfRGF0YWJhc2UAc2V0
X0RhdGFiYXNlAGdldF9UYWJsZQBzZXRfVGFibGUAZ2V0X1Byb2ZpbGUAc2V0X1Byb2ZpbGUAZ2V0
X1NNT0Nvbm5lY3Rpb25UeXBlAGdldF9GaWxlQ29ubmVjdGlvblR5cGUAU3lzdGVtLkRhdGEARGF0
YVJvdwBEYXRhVHlwZQBHZXRUeXBlRnJvbURhdGFSb3dfAGRhdGFSb3cAZHRzVHlwZQBsZW5ndGgA
cHJlY2lzaW9uAHNjYWxlAGNvZGVQYWdlAERhdGFSb3dDb2xsZWN0aW9uAEZpbmRDb2x1bW5fAHJv
d3MAY29sdW1uTmFtZQBJRGF0YVJlYWRlcgBHZXRUcmFjZVJlYWRlcl8AR2V0T3duZXJUYWJsZV8A
dGFibGVDb21ibwBvd25lcgB0YWJsZQBtX3RyYWNlVHlwZQBtX3RyYWNlU291cmNlAG1fdHJhY2VQ
YXJhbTEAbV90cmFjZVBhcmFtMgBtX3RyYWNlUmVhZGVyAG1fYnVmSWR4AG1fcmVhZGVySWR4AFNv
dXJjZQBGaWxlAFNlcnZlcgBEYXRhYmFzZQBUYWJsZQBQcm9maWxlAFNNT0Nvbm5lY3Rpb25UeXBl
AEZpbGVDb25uZWN0aW9uVHlwZQBFbnVtAHZhbHVlX18AU3lzdGVtLlJlc291cmNlcwBSZXNvdXJj
ZU1hbmFnZXIAX3Jlc01ncgBTeXN0ZW0uR2xvYmFsaXphdGlvbgBDdWx0dXJlSW5mbwBfcmVzQ3Vs
dHVyZQBnZXRfUmVzb3VyY2VNYW5hZ2VyAGdldF9DdWx0dXJlAHNldF9DdWx0dXJlAFZhbHVlAEN1
bHR1cmUAU3lzdGVtLkNvbmZpZ3VyYXRpb24AQXBwbGljYXRpb25TZXR0aW5nc0Jhc2UAbV9WYWx1
ZQBtX1N5bmNPYmplY3QAZ2V0X1ZhbHVlAFN5c3RlbS5Db21wb25lbnRNb2RlbABFZGl0b3JCcm93
c2FibGVBdHRyaWJ1dGUARWRpdG9yQnJvd3NhYmxlU3RhdGUAU3lzdGVtLkNvZGVEb20uQ29tcGls
ZXIAR2VuZXJhdGVkQ29kZUF0dHJpYnV0ZQBTeXN0ZW0uRGlhZ25vc3RpY3MARGVidWdnZXJIaWRk
ZW5BdHRyaWJ1dGUATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkNvbXBpbGVyU2VydmljZXMAU3RhbmRh
cmRNb2R1bGVBdHRyaWJ1dGUASGlkZU1vZHVsZU5hbWVBdHRyaWJ1dGUAU3lzdGVtLkNvbXBvbmVu
dE1vZGVsLkRlc2lnbgBIZWxwS2V5d29yZEF0dHJpYnV0ZQBTeXN0ZW0uUnVudGltZS5Db21waWxl
clNlcnZpY2VzAFJ1bnRpbWVIZWxwZXJzAEdldE9iamVjdFZhbHVlAFJ1bnRpbWVUeXBlSGFuZGxl
AEdldFR5cGVGcm9tSGFuZGxlAEFjdGl2YXRvcgBDcmVhdGVJbnN0YW5jZQBNeUdyb3VwQ29sbGVj
dGlvbkF0dHJpYnV0ZQBzZXRfVmFsdWUAU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzAENv
bVZpc2libGVBdHRyaWJ1dGUAU3RyaW5nAFNjcmlwdEJ1ZmZlcgBDTFNDb21wbGlhbnRBdHRyaWJ1
dGUASURUU0NvbXBvbmVudE1ldGFEYXRhMTAwAGdldF9Db21wb25lbnRNZXRhRGF0YQBJRFRTT3V0
cHV0Q29sbGVjdGlvbjEwMABnZXRfT3V0cHV0Q29sbGVjdGlvbgBJRFRTT3V0cHV0MTAwAGdldF9J
dGVtAGdldF9JRABJRFRTUnVudGltZUNvbm5lY3Rpb25Db2xsZWN0aW9uMTAwAGdldF9SdW50aW1l
Q29ubmVjdGlvbkNvbGxlY3Rpb24ASURUU1J1bnRpbWVDb25uZWN0aW9uMTAwAGdldF9Db25uZWN0
aW9uTWFuYWdlcgBJRGF0YVJlY29yZABnZXRfQnVmZmVyAFNldE51bGwAc2V0X0l0ZW0AUmVhZABE
YXRhVGFibGUASURUU091dHB1dENvbHVtbjEwMABHZXRTY2hlbWFUYWJsZQBJbnQzMgBJRFRTT3V0
cHV0Q29sdW1uQ29sbGVjdGlvbjEwMABnZXRfT3V0cHV0Q29sdW1uQ29sbGVjdGlvbgBnZXRfQ291
bnQAUGlwZWxpbmVDb21wb25lbnQAZ2V0X0hvc3RDb21wb25lbnQASURUU0J1ZmZlck1hbmFnZXIx
MDAAZ2V0X0J1ZmZlck1hbmFnZXIAZ2V0X0xpbmVhZ2VJRABGaW5kQ29sdW1uQnlMaW5lYWdlSUQA
Z2V0X1Jvd3MAZ2V0X05hbWUATWFyc2hhbEJ5VmFsdWVDb21wb25lbnQARGlzcG9zZQBDbG9zZQBS
ZW1vdmVBbGwAQ29udmVyc2lvbnMATmV3AHNldF9OYW1lAFNldERhdGFUeXBlUHJvcGVydGllcwBT
eXN0ZW0uQ29sbGVjdGlvbnMAQXJyYXlMaXN0AEFkZABBcnJheQBUb0FycmF5AEVtcHR5AEZpcmVF
cnJvcgBFeGNlcHRpb24ASXNOdWxsT3JFbXB0eQBBcHBsaWNhdGlvbkV4Y2VwdGlvbgBzZXRfQ29u
bmVjdGlvbk1hbmFnZXJJRABQcm9qZWN0RGF0YQBTZXRQcm9qZWN0RXJyb3IAZ2V0X01lc3NhZ2UA
Q2xlYXJQcm9qZWN0RXJyb3IATWljcm9zb2Z0LlNxbFNlcnZlci5TbW8ATWljcm9zb2Z0LlNxbFNl
cnZlci5NYW5hZ2VtZW50LlNtbwBNaWNyb3NvZnQuU3FsU2VydmVyLk1hbmFnZWREVFMATWljcm9z
b2Z0LlNxbFNlcnZlci5EdHMuUnVudGltZQBnZXRfRGVzaWduQ29ubmVjdGlvbnMAQ29ubmVjdGlv
bk1hbmFnZXIAQWNxdWlyZUNvbm5lY3Rpb24ARGF0YWJhc2VDb2xsZWN0aW9uAGdldF9EYXRhYmFz
ZXMAU21vQ29sbGVjdGlvbkJhc2UATmFtZWRTbW9PYmplY3QAVGFibGVDb2xsZWN0aW9uAGdldF9U
YWJsZXMAU3FsU21vT2JqZWN0AFN5c3RlbS5SZWZsZWN0aW9uAEJpbmRpbmdGbGFncwBCaW5kZXIA
SW52b2tlTWVtYmVyAFRvSW50ZWdlcgBEQk51bGwASXNOdWxsAENvbnZlcnQAVG9JbnQxNgBPcGVy
YXRvcnMAQ29tcGFyZVN0cmluZwBNaWNyb3NvZnQuU3FsU2VydmVyLkNvbm5lY3Rpb25JbmZvRXh0
ZW5kZWQATWljcm9zb2Z0LlNxbFNlcnZlci5NYW5hZ2VtZW50LlRyYWNlAFRyYWNlRmlsZQBNaWNy
b3NvZnQuU3FsU2VydmVyLkNvbm5lY3Rpb25JbmZvAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuTWFuYWdl
bWVudC5Db21tb24AU3FsQ29ubmVjdGlvbkluZm8AVHJhY2VUYWJsZQBUcmFjZVNlcnZlcgBJbml0
aWFsaXplQXNSZWFkZXIAU2VydmVyQ29ubmVjdGlvbgBnZXRfQ29ubmVjdGlvbkNvbnRleHQAQ29u
bmVjdGlvblR5cGUAU3FsT2xhcENvbm5lY3Rpb25JbmZvQmFzZQBzZXRfRGF0YWJhc2VOYW1lAENv
bm5lY3Rpb25JbmZvQmFzZQBTdHJpbmdTcGxpdE9wdGlvbnMAU3BsaXQAU3Vic3RyaW5nAGdldF9M
ZW5ndGgAU1NJU1NjcmlwdENvbXBvbmVudEVudHJ5UG9pbnRBdHRyaWJ1dGUAQ296eVJvYy5TcWxT
ZXJ2ZXIuU1NJUy5BdHRyaWJ1dGVzAFZhbGlkYXRlUHJvcGVydGllc0F0dHJpYnV0ZQBGaWx0ZXJQ
cm9wZXJ0aWVzQXR0cmlidXRlAFNvcnRQcm9wZXJ0aWVzQXR0cmlidXRlAENvbm5lY3Rpb25BdHRy
aWJ1dGUARGVzY3JpcHRpb25BdHRyaWJ1dGUAQ2F0ZWdvcnlBdHRyaWJ1dGUAUmVmcmVzaFByb3Bl
cnRpZXNBdHRyaWJ1dGUAUmVmcmVzaFByb3BlcnRpZXMATGlzdEF0dHJpYnV0ZQBBc3NlbWJseQBn
ZXRfQXNzZW1ibHkAU3lzdGVtLlRocmVhZGluZwBNb25pdG9yAEVudGVyAEV4aXQARGVidWdnZXJO
b25Vc2VyQ29kZUF0dHJpYnV0ZQBTY3JpcHRDb21wb25lbnRfYmQwOWViNDhhOGRjNGRjMTgwMTBj
ZjJhMzE0YjFhYWQudmJwcm9qLlJlc291cmNlcy5yZXNvdXJjZXMAQ29tcGlsYXRpb25SZWxheGF0
aW9uc0F0dHJpYnV0ZQBSdW50aW1lQ29tcGF0aWJpbGl0eUF0dHJpYnV0ZQBBc3NlbWJseUZpbGVW
ZXJzaW9uQXR0cmlidXRlAEd1aWRBdHRyaWJ1dGUAQXNzZW1ibHlUcmFkZW1hcmtBdHRyaWJ1dGUA
QXNzZW1ibHlDb3B5cmlnaHRBdHRyaWJ1dGUAQXNzZW1ibHlQcm9kdWN0QXR0cmlidXRlAEFzc2Vt
Ymx5Q29tcGFueUF0dHJpYnV0ZQBBc3NlbWJseURlc2NyaXB0aW9uQXR0cmlidXRlAEFzc2VtYmx5
VGl0bGVBdHRyaWJ1dGUAU2NyaXB0Q29tcG9uZW50X2JkMDllYjQ4YThkYzRkYzE4MDEwY2YyYTMx
NGIxYWFkLnZicHJvai5kbGwAAA1PAHUAdABwAHUAdAAAF1QAcgBhAGMAZQBTAG8AdQByAGMAZQAA
GVQAcgBhAGMAZQBQAHIAbwBmAGkAbABlAAAVQwBvAGwAdQBtAG4ATgBhAG0AZQAADVMAbwB1AHIA
YwBlAAAJRgBpAGwAZQAADVMAZQByAHYAZQByAAARRABhAHQAYQBiAGEAcwBlAAALVABhAGIAbABl
AAAPUAByAG8AZgBpAGwAZQAAG1AAcgBvAGYAaQBsAGUAIABUAHIAYQBjAGUAAD1TAHAAZQBjAGkA
ZgB5ACAAdAByAGEAYwBlACAAZgBpAGwAZQAgAGMAbwBuAG4AZQBjAHQAaQBvAG4ALgAAO1MAZQBs
AGUAYwB0ACAAUwBRAEwAIABTAGUAcgB2AGUAcgAgAGMAbwBuAG4AZQBjAHQAaQBvAG4ALgAAJ1MA
ZQBsAGUAYwB0ACAAdAByAGEAYwBlACAAdABhAGIAbABlAC4AAEtTAGUAbABlAGMAdAAgAHQAcgBh
AGMAZQAgAHAAcgBvAGYAaQBsAGUAIABmAGkAbABlACAAYwBvAG4AbgBlAGMAdABpAG8AbgAuAAAT
UwBNAE8AUwBlAHIAdgBlAHIAAAlGAEkATABFAAARRABhAHQAYQBUAHkAcABlAAA1RABhAHQAYQBS
AGUAYwBvAHIAZABUAHkAcABlAFQAbwBCAHUAZgBmAGUAcgBUAHkAcABlAAANSQBzAEwAbwBuAGcA
ABVDAG8AbAB1AG0AbgBTAGkAegBlAAAhTgB1AG0AZQByAGkAYwBQAHIAZQBjAGkAcwBpAG8AbgAA
GU4AdQBtAGUAcgBpAGMAUwBjAGEAbABlAAAHXQAuAFsAADFNAHkALgBSAGUAcwBvAHUAcgBjAGUA
cwAuAE0AeQBSAGUAcwBvAHUAcgBjAGUAcwAAAAAAWYBH26DpxEWcrC8evu8zOAAIt3pcVhk04IkI
sD9ffxHVCjoDIAABAwAAAQQAABIMBwYVEhgBEgwEAAASCAcGFRIYARIIBAAAEhEHBhUSGAESEQQA
ABIUBwYVEhgBEhQECAASDAQIABIIBAgAEhEECAASFAQgAQIcAyAACAQgABIVAyAADgIeAAcQAQEe
AB4ABzABAQEQHgACEwAEIAATAAcGFRIZARMABCgAEwAIFs9JC7gMNOoIiYRdzYCAzJEJIAQBEiEI
AhIlBCAAHQ4DIAACBCgAHQ4DBhIkAwYSKAMGEhwJIAMBCB0IHRIlAwYSIQUgAQESIQQgABItBCgA
Ei0EIAARMQUgAQIQDgQgABEwBSABAREwBCABAQ4QIAYBEjUQETkQCBAIEAgQCAYgAggSPQ4EIAAS
QQggAwEOEA4QDgMGETACBg4DBhJBAwYdCAQoABEwAygADgIGCAQAAAAABAEAAAAEAgAAAAMGEkkD
BhJNBAAAEkkEAAASTQUAAQESTQQIABJJBAgAEk0DBhI4AgYcBAAAEjgECAASOAUgAQERWQgBAAEA
AAAAAAUgAgEODhcBAApNeVRlbXBsYXRlBzguMC4wLjAAAAYVEhgBEgwGFRIYARIIBhUSGAESEQYV
EhgBEhQEBwESDAQHARIIBAcBEhEEBwESFBABAAtNeS5Db21wdXRlcgAADAEAB015LlVzZXIAABMB
AA5NeS5BcHBsaWNhdGlvbgAAEwEADk15LldlYlNlcnZpY2VzAAAEAAEcHAMHAQIDBwEIBgABEhUR
dQQHARIVAwcBDgUQAQAeAAQKAR4ABAcBHgAHIAQBDg4ODmEBADRTeXN0ZW0uV2ViLlNlcnZpY2Vz
LlByb3RvY29scy5Tb2FwSHR0cENsaWVudFByb3RvY29sEkNyZWF0ZV9fSW5zdGFuY2VfXxNEaXNw
b3NlX19JbnN0YW5jZV9fAAAABhUSGAETAAYVEhkBEwAECgETAAUgAQETAAYHAhMAEwAEIAEBAgUB
AAAAAAQHAR0OBSAAEoCRBSAAEoCVBiABEoCZHAQHAggIBSAAEoCdBiABEoChHAQHARItBCABHAgE
IAASJQQgAQEIBSACAQgcBwcFCAgIHAgFIAASgKkFIAASgLUGIAESgK0cBSAAEoC5BSAAEoC9BSAC
CAgIBCAAEj0PBwcIEoCZEoCpCBKArQgIBSABEjUIBCABHA4EAAEOHAUgABKArQkgBQEROQgICAgZ
Bw4SgJkSQQgSgKkICBKArQ4SNRE5CAgICAQgAQgcByABEoDNEhUCHQ4JBwMdDhKAyREwCiAGAQgO
Dg4IEAIIBwQRMRExDgIEAAECDgYAAQESgNEJBwQCAhKA0REwBSAAEoDhBiABEoDlHAQgARwcBSAA
EoDpBiABEoDxCA0HBggdDhKAyRKA3QgIBiABEoDxDgUgABKA+QYgARKA/QgQBwcSgPEdDhKAyRKA
3QgICAQHAREwBgcCHQ4dDg0gBRwOEYEFEoEJHB0cBAABCBwEIAECDgQAAQYcCgcEEhUdHBE5ETkG
AAMIDg4CBwcFCAgICAgFIAASgSkJIAIBEoEpEYEtCCADARKBNQ4OByACARKBNQ4iBw8OEkESQRKB
GQ4OEoEdEoDdDhKBIRKBHRKA3Q4SgSURMAogAx0OHQ4IEYE5BCABDggFIAIOCAgPAQAKVmFsaWRh
dGVVSQAAEgEADUdldFByb3BlcnRpZXMAAAUgAQEdDjIBAAYAAAAGU291cmNlBEZpbGUGU2VydmVy
CERhdGFiYXNlBVRhYmxlB1Byb2ZpbGUAAAUgAgEOAhcBABFTTU9Db25uZWN0aW9uVHlwZQEAACUB
ACBTZWxlY3QgY29ubmVjdGlvbiB0byBTUUwgU2VydmVyLgAADQEACFNldHRpbmdzAAAGIAEBEYFd
FwEAElNlbGVjdCB0cmFjZSB0eXBlLgAACwEABglUcmFjZQAAEQEADEdldERhdGFiYXNlcwAAFQEA
EFNlbGVjdCBkYXRhYmFzZS4AAEgBAENTZWxlY3QgZmlsZSBjb25uZWN0aW9uIHRvIFNRTCBTZXJ2
ZXIgUHJvZmlsZXIgdHJhY2UgcHJvZmlsZSAoLnRkZikuAAAYAQASRmlsZUNvbm5lY3Rpb25UeXBl
AQAAPwEAOlNlbGVjdCBmaWxlIGNvbm5lY3Rpb24gdG8gU1FMIFNlcnZlciBQcm9maWxlIHRyYWNl
ICgudHJjKS4AAA4BAAlHZXRUYWJsZXMAABIBAA1TZWxlY3QgdGFibGUuAAAFIAASgWUHIAIBDhKB
ZQYHAhJJEkkEBwESTQgBAAIAAAAAAAQAAQEcBAcBEjgIAQAIAAAAAAAeAQABAFQCFldyYXBOb25F
eGNlcHRpb25UaHJvd3MBDAEABzEuMC4wLjAAACkBACQyNzNhMjk5MS1iNjBmLTRjNTgtYTc5ZS05
Mzc3MzYwNzYxZDIAAAUBAAEAAB8BABpDb3B5cmlnaHQgQCBNaWNyb3NvZnQgMjAxMAAAPAEAN1Nj
cmlwdENvbXBvbmVudF9iZDA5ZWI0OGE4ZGM0ZGMxODAxMGNmMmEzMTRiMWFhZC52YnByb2oAAA4B
AAlNaWNyb3NvZnQAAAAAWGAAAAAAAAAAAAAAbmAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBg
AAAAAAAAAABfQ29yRGxsTWFpbgBtc2NvcmVlLmRsbAAAAAAA/yUAIEAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAwAAACgAAIAOAAAASAAAgBAA
AABgAACAAAAAAAAAAAAAAAAAAAACAAIAAAB4AACAAwAAAJAAAIAAAAAAAAAAAAAAAAAAAAEAAH8A
AKgAAIAAAAAAAAAAAAAAAAAAAAEAAQAAAMAAAIAAAAAAAAAAAAAAAAAAAAEAAAAAANgAAAAAAAAA
AAAAAAAAAAAAAAEAAAAAAOgAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAPgAAAAAAAAAAAAAAAAAAAAA
AAEAAAAAAAgBAACAhQAA6AIAAAAAAAAAAAAAaIgAACgBAAAAAAAAAAAAAJCJAAAiAAAAAAAAAAAA
AAAYgQAAaAQAAAAAAAAAAAAAaAQ0AAAAVgBTAF8AVgBFAFIAUwBJAE8ATgBfAEkATgBGAE8AAAAA
AL0E7/4AAAEAAAABAAAAAAAAAAEAAAAAAD8AAAAAAAAABAAAAAIAAAAAAAAAAAAAAAAAAABEAAAA
AQBWAGEAcgBGAGkAbABlAEkAbgBmAG8AAAAAACQABAAAAFQAcgBhAG4AcwBsAGEAdABpAG8AbgAA
AAAAAACwBMgDAAABAFMAdAByAGkAbgBnAEYAaQBsAGUASQBuAGYAbwAAAKQDAAABADAAMAAwADAA
MAA0AGIAMAAAADQACgABAEMAbwBtAHAAYQBuAHkATgBhAG0AZQAAAAAATQBpAGMAcgBvAHMAbwBm
AHQAAACYADgAAQBGAGkAbABlAEQAZQBzAGMAcgBpAHAAdABpAG8AbgAAAAAAUwBjAHIAaQBwAHQA
QwBvAG0AcABvAG4AZQBuAHQAXwBiAGQAMAA5AGUAYgA0ADgAYQA4AGQAYwA0AGQAYwAxADgAMAAx
ADAAYwBmADIAYQAzADEANABiADEAYQBhAGQALgB2AGIAcAByAG8AagAAADAACAABAEYAaQBsAGUA
VgBlAHIAcwBpAG8AbgAAAAAAMQAuADAALgAwAC4AMAAAAJgAPAABAEkAbgB0AGUAcgBuAGEAbABO
AGEAbQBlAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABvAG4AZQBuAHQAXwBiAGQAMAA5AGUAYgA0ADgA
YQA4AGQAYwA0AGQAYwAxADgAMAAxADAAYwBmADIAYQAzADEANABiADEAYQBhAGQALgB2AGIAcABy
AG8AagAuAGQAbABsAAAAXAAbAAEATABlAGcAYQBsAEMAbwBwAHkAcgBpAGcAaAB0AAAAQwBvAHAA
eQByAGkAZwBoAHQAIABAACAATQBpAGMAcgBvAHMAbwBmAHQAIAAyADAAMQAwAAAAAACgADwAAQBP
AHIAaQBnAGkAbgBhAGwARgBpAGwAZQBuAGEAbQBlAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABvAG4A
ZQBuAHQAXwBiAGQAMAA5AGUAYgA0ADgAYQA4AGQAYwA0AGQAYwAxADgAMAAxADAAYwBmADIAYQAz
ADEANABiADEAYQBhAGQALgB2AGIAcAByAG8AagAuAGQAbABsAAAAkAA4AAEAUAByAG8AZAB1AGMA
dABOAGEAbQBlAAAAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfAGIAZAAwADkAZQBi
ADQAOABhADgAZABjADQAZABjADEAOAAwADEAMABjAGYAMgBhADMAMQA0AGIAMQBhAGEAZAAuAHYA
YgBwAHIAbwBqAAAANAAIAAEAUAByAG8AZAB1AGMAdABWAGUAcgBzAGkAbwBuAAAAMQAuADAALgAw
AC4AMAAAADgACAABAEEAcwBzAGUAbQBiAGwAeQAgAFYAZQByAHMAaQBvAG4AAAAxAC4AMAAuADAA
LgAwAAAAKAAAACAAAABAAAAAAQAEAAAAAACAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAA
AACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAHd3d3d3d3d3d3d3d3d3cARERERERERERERERERERHAE//////////////////RwBP//////
///////////0cAT/////////////////9HAE//////////////////RwBP/////////////////0
cAT/////////////////9HAE//////////////////RwBP/////////////////0cAT/////////
////////9HAE//////////////////RwBP/////////////////0cAT/////////////////9HAE
//////////////////RwBP/////////////////0cAT/////////////////9HAE////////////
//////RwBP/////////////////0cAT/////////////////9HAEiIiIiIiIiIiIiIiIiIRwBERE
REREREREREREREREcARMTExMTExMTExOzs5JdHAEzMzMzMzMzMzMzMzMzMQAAERERERERERERERE
RERAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////
///////////////AAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAA
AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAPAAAAH////
////////////KAAAABAAAAAgAAAAAQAEAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAA
AIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAA
AAAAAAAAAAd3d3d3d3d3REREREREREdP///////4R0////////hHT///////+EdP///////4R0//
//////hHT///////+EdP///////4R0////////hHSIiIiIiIiEdMzMzMzMzMR8RERERERETAAAAA
AAAAAAAAAAAAAAAAAP//AACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAQAA//8AAP//AAAAAAEAAgAgIBAAAQAEAOgCAAACABAQEAABAAQAKAEAAAMAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAGAAAAwAAACAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAA=]]></arrayElement></arrayElements></property>
<property id="13" 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="1724" 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_bd09eb48a8dc4dc18010cf2a314b1aad</property>
<property id="1725" 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>
<connections>
<connection id="74" name="TraceSource" description="" connectionManagerID="{A7802D09-49A3-4F91-A2E0-6D03AA2C4012}" />
<connection id="73" name="TraceProfile" description="" connectionManagerID="{A7802D09-49A3-4F91-A2E0-6D03AA2C4012}" /></connections>
<outputs>
<output id="4" 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">
<externalMetadataColumn id="371" name="EventClass" description="" precision="0" scale="0" length="0" dataType="nText" codePage="0" mappedColumnId="0" />
<externalMetadataColumn id="373" name="TextData" description="" precision="0" scale="0" length="0" dataType="nText" codePage="0" mappedColumnId="0" />
<externalMetadataColumn id="375" name="ApplicationName" description="" precision="0" scale="0" length="0" dataType="nText" codePage="0" mappedColumnId="0" />
<externalMetadataColumn id="377" name="NTUserName" description="" precision="0" scale="0" length="0" dataType="nText" codePage="0" mappedColumnId="0" />
<externalMetadataColumn id="379" name="LoginName" description="" precision="0" scale="0" length="0" dataType="nText" codePage="0" mappedColumnId="0" />
<externalMetadataColumn id="381" name="CPU" description="" precision="0" scale="0" length="0" dataType="i4" codePage="0" mappedColumnId="0" />
<externalMetadataColumn id="383" name="Reads" description="" precision="0" scale="0" length="0" dataType="i8" codePage="0" mappedColumnId="0" />
<externalMetadataColumn id="385" name="Writes" description="" precision="0" scale="0" length="0" dataType="i8" codePage="0" mappedColumnId="0" />
<externalMetadataColumn id="387" name="Duration" description="" precision="0" scale="0" length="0" dataType="i8" codePage="0" mappedColumnId="0" />
<externalMetadataColumn id="389" name="ClientProcessID" description="" precision="0" scale="0" length="0" dataType="i4" codePage="0" mappedColumnId="0" />
<externalMetadataColumn id="391" name="SPID" description="" precision="0" scale="0" length="0" dataType="i4" codePage="0" mappedColumnId="0" />
<externalMetadataColumn id="393" name="StartTime" description="" precision="0" scale="0" length="0" dataType="dbTimeStamp" codePage="0" mappedColumnId="0" />
<externalMetadataColumn id="395" name="EndTime" description="" precision="0" scale="0" length="0" dataType="dbTimeStamp" codePage="0" mappedColumnId="0" />
<externalMetadataColumn id="397" name="BinaryData" description="" precision="0" scale="0" length="0" dataType="bytes" codePage="0" mappedColumnId="0" /></externalMetadataColumns></output>
</outputs>
</component>