<component id="2" name="Profiler Trace Source" componentClassID="{874F7595-FB5F-40FF-96AF-FBFF8250E3EF}" description="Executes a custom script." localeId="1033" version="7" contactInfo="Executes a custom script.;Microsoft Corporation;Microsoft SqlServer v9; © 2004 Microsoft Corporation; All Rights Reserved; http://www.microsoft.com/sql/support;0"><properties><property id="3" name="SourceCode" state="cdata" dataType="System.String" isArray="true" description="Stores the source code of the component" typeConverter="NOTBROWSABLE"><arrayElements arrayElementCount="15"><arrayElement dataType="System.String"><![CDATA[ScriptMain.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' CozyRoc SQL Server Integration Services user script component
'
' Copyright (c) 2006-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 = String.Empty
            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")> _
    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")> _
    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


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Settings")> _
    <Description("Select file connection to SQL Server Profiler trace profile (.tdf).")> _
    <Connection("FileConnectionType")> _
    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 = Nothing

        Dim errMessage As String = String.Empty
        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 = String.Empty
                Dim table As String = String.Empty
                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><arrayElement dataType="System.String"><![CDATA[BufferWrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services buffer wrappers
' This module defines classes for accessing data flow buffers
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!


Option Strict Off   ' This allows usage of PipelineBuffer typed accessors.

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class OutputBuffer
    Inherits ScriptBufferPlus

    Public Sub New(ByVal Component As ScriptComponent, ByVal ObjectID As Integer, ByVal IsInput As Boolean, ByVal Buffer As PipelineBuffer, ByVal OutputMap As OutputNameMap)
        MyBase.New(Component, ObjectID, IsInput, Buffer, OutputMap)
    End Sub

    Public Overrides ReadOnly Property StaticInputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public WriteOnly Property [EventClass]() As String
        Set
            Me(0) = Value
        End Set
    End Property
    Public WriteOnly Property [EventClass_IsNull] As Boolean
        Set
            If (value)
                SetNull(0)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [TextData]() As String
        Set
            Me(1) = Value
        End Set
    End Property
    Public WriteOnly Property [TextData_IsNull] As Boolean
        Set
            If (value)
                SetNull(1)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [ApplicationName]() As String
        Set
            Me(2) = Value
        End Set
    End Property
    Public WriteOnly Property [ApplicationName_IsNull] As Boolean
        Set
            If (value)
                SetNull(2)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [NTUserName]() As String
        Set
            Me(3) = Value
        End Set
    End Property
    Public WriteOnly Property [NTUserName_IsNull] As Boolean
        Set
            If (value)
                SetNull(3)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [LoginName]() As String
        Set
            Me(4) = Value
        End Set
    End Property
    Public WriteOnly Property [LoginName_IsNull] As Boolean
        Set
            If (value)
                SetNull(4)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [CPU]() As Int32
        Set
            Me(5) = Value
        End Set
    End Property
    Public WriteOnly Property [CPU_IsNull] As Boolean
        Set
            If (value)
                SetNull(5)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [Reads]() As Int64
        Set
            Me(6) = Value
        End Set
    End Property
    Public WriteOnly Property [Reads_IsNull] As Boolean
        Set
            If (value)
                SetNull(6)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [Writes]() As Int64
        Set
            Me(7) = Value
        End Set
    End Property
    Public WriteOnly Property [Writes_IsNull] As Boolean
        Set
            If (value)
                SetNull(7)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [Duration]() As Int64
        Set
            Me(8) = Value
        End Set
    End Property
    Public WriteOnly Property [Duration_IsNull] As Boolean
        Set
            If (value)
                SetNull(8)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [ClientProcessID]() As Int32
        Set
            Me(9) = Value
        End Set
    End Property
    Public WriteOnly Property [ClientProcessID_IsNull] As Boolean
        Set
            If (value)
                SetNull(9)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [SPID]() As Int32
        Set
            Me(10) = Value
        End Set
    End Property
    Public WriteOnly Property [SPID_IsNull] As Boolean
        Set
            If (value)
                SetNull(10)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [StartTime]() As DateTime
        Set
            Me(11) = Value
        End Set
    End Property
    Public WriteOnly Property [StartTime_IsNull] As Boolean
        Set
            If (value)
                SetNull(11)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [EndTime]() As DateTime
        Set
            Me(12) = Value
        End Set
    End Property
    Public WriteOnly Property [EndTime_IsNull] As Boolean
        Set
            If (value)
                SetNull(12)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [BinaryData]() As Byte()
        Set
            Me(13) = Value
        End Set
    End Property
    Public WriteOnly Property [BinaryData_IsNull] As Boolean
        Set
            If (value)
                SetNull(13)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {"EventClass", "TextData", "ApplicationName", "NTUserName", "LoginName", "CPU", "Reads", "Writes", "Duration", "ClientProcessID", "SPID", "StartTime", "EndTime", "BinaryData"}
        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_bd09eb48a8dc4dc18010cf2a314b1aad.vbproj]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF16LE]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="utf-16"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ProjectTypeGuids>{30D016F9-3734-4E33-A861-5E7D899E18F3};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>8.0.30703</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{C8B9E9E1-67D0-41CE-A128-8A56FF5EA127}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>My Project</AppDesignerFolder>
    <RootNamespace>ScriptComponent_bd09eb48a8dc4dc18010cf2a314b1aad</RootNamespace>
    <AssemblyName>ScriptComponent_bd09eb48a8dc4dc18010cf2a314b1aad</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>.\bin\Debug\</OutputPath>
    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
    <DefineDebug>true</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
    <DebugSymbols>false</DebugSymbols>
    <Optimize>true</Optimize>
    <OutputPath>.\bin\Release\</OutputPath>
    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
    <DefineDebug>false</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <!-- This sections specifies references for the project. -->
  <ItemGroup>
    <Reference Include="CozyRoc.SSISPlus.2012, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files (x86)\Microsoft SQL Server\110\SDK\Assemblies\CozyRoc.SSISPlus.2012.dll</HintPath>
    </Reference>
    <Reference Include="Microsoft.SqlServer.ConnectionInfoExtended, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files (x86)\Microsoft SQL Server\110\SDK\Assemblies\Microsoft.SqlServer.ConnectionInfoExtended.dll</HintPath>
    </Reference>
    <Reference Include="Microsoft.SqlServer.ManagedDTS, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.SqlServer.ManagedDTS\v4.0_11.0.0.0__89845dcd8080cc91\Microsoft.SqlServer.ManagedDTS.dll</HintPath>
    </Reference>
    <Reference Include="Microsoft.SqlServer.Management.Sdk.Sfc, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files (x86)\Microsoft SQL Server\110\SDK\Assemblies\Microsoft.SqlServer.Management.Sdk.Sfc.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
    <Reference Include="Microsoft.SqlServer.TxScript, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="Microsoft.SqlServer.ConnectionInfo" />
    <Reference Include="Microsoft.SqlServer.Smo" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <!-- Visual Basic supports Importing namespaces (equivalent to using statements in C#).-->
  <ItemGroup>
    <Import Include="Microsoft.VisualBasic" />
    <Import Include="System" />
    <Import Include="System.Collections" />
    <Import Include="System.Data" />
    <Import Include="System.Diagnostics" />
    <Import Include="System.Windows.Forms" />
  </ItemGroup>
  <ItemGroup>
    <AppDesigner Include="My Project\" />
  </ItemGroup>
  <!-- Include the build rules for a VB project.-->
  <Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
  <!-- This section defines VSTA properties that describe the host-changable project properties. -->
  <ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{30D016F9-3734-4E33-A861-5E7D899E18F3}">
        <ProjectProperties HostName="VSTAHostName" HostPackage="{B3A685AA-7EAF-4BC6-9940-57959FA5AC07}" ApplicationType="usd" Language="vb" TemplatesPath="" DebugInfoExeName="devenv.exe" DebugInfoCommandLine="/vstaHostDebugUri:&quot;vstadebug43c8649e-eada-48f8-bb88-2a6cda6d41a7/9a551b7e-765e-48c6-8d97-33b273244de4&quot;" />
        <Host Name="SSIS_SC110" />
        <ProjectClient>
          <HostIdentifier>SSIS_SC110</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
  <ItemGroup>
    <Compile Include="ScriptMain.vb" />
    <Compile Include="BufferWrapper.vb" />
    <Compile Include="ComponentWrapper.vb" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="My Project\" />
  </ItemGroup>
  <PropertyGroup>
    <OptionCompare>Binary</OptionCompare>
  </PropertyGroup>
  <PropertyGroup>
    <OptionExplicit>On</OptionExplicit>
  </PropertyGroup>
  <PropertyGroup>
    <OptionStrict>On</OptionStrict>
  </PropertyGroup>
</Project>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[ComponentWrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services component wrapper
' This module defines the base class for your component
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class UserComponent
    Inherits ScriptComponentPlus

    Public Connections As New Connections(Me)
    Public Variables As New Variables(Me)

    Public 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, ByVal OutputMap As OutputNameMap)

        For I As Integer = 0 To Outputs - 1
            If OutputIDs(I) = GetOutputID(OutputMap, "Output") Then
                OutputBuffer = New OutputBuffer(Me, OutputIDs(I), False, Buffers(I), OutputMap)
            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[Project]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF16LE]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<c:Project xmlns:c="http://schemas.microsoft.com/codeprojectml/2010/08/main" xmlns:msb="http://schemas.microsoft.com/developer/msbuild/2003" runtimeVersion="4.0" schemaVersion="1.0">
	<msb:PropertyGroup>
		<msb:Language>msBuild</msb:Language>
		<msb:NoContent>Reference;Import;Folder</msb:NoContent>
		<msb:ProjectId>{DBCB87CB-8272-48B5-97A5-23F53A40E6A1}</msb:ProjectId>
		<msb:DisplayName>ScriptComponent_bd09eb48a8dc4dc18010cf2a314b1aad</msb:DisplayName>
		<msb:CodeName>ScriptComponent_bd09eb48a8dc4dc18010cf2a314b1aad</msb:CodeName>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:Folder Include="My Project\"/>
		<msb:File Include="ScriptMain.vb"/>
		<msb:File Include="BufferWrapper.vb"/>
		<msb:File Include="ComponentWrapper.vb"/>
		<msb:Project Include="ScriptComponent_bd09eb48a8dc4dc18010cf2a314b1aad.vbproj"/>
	</msb:ItemGroup>
</c:Project>]]></arrayElement></arrayElements></property><property id="4" name="BinaryCode" state="cdata" dataType="System.String" isArray="true" description="Stores the binary representation of the component" typeConverter="NOTBROWSABLE"><arrayElements arrayElementCount="2"><arrayElement dataType="System.String"><![CDATA[ScriptComponent_bd09eb48a8dc4dc18010cf2a314b1aad.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
OAXFABoAbCMAAAAABghMBcoAGwB8IwAAAAAGCGAFxQAcAJgjAAAAAAYIewXKAB0AqCMAAAAABgiE
BcUAHgDEIwAAAAAGCJ0F1AAfANQjAAAAAAYIqwXFACAA8CMAAAAABgjABdQAIQAAJAAAAAAGCMwF
xQAiABwkAAAAAAYI3wXaACMAKCQAAAAABgjuBcUAJABEJAAAAABGCgQGuwAlANAkAAAAAIYAHAYT
ACUA2CQAAAAAhgAjBhMAJQDgJAAAAACGADIG4AAlAPgkAAAAAAYYWwETACUAGCUAAAAARgPlBxMA
JQAcJQAAAAABAPMHEwAlADglAAAAAEYCBwgPASUAkCUAAAAARgMtCBMAKQCUJQAAAAAGGFsBHwEp
AKQlAAAAAAYItQglASoA0CUAAAAABgjFCCUBKgD8JQAAAAAGGFsBHwEqAAwmAAAAAAYYWwETACsA
HCYAAAAARgItCBMAKwC4JgAAAABGAu8IEwArAJgnAAAAAEYC+ggTACsAvCcAAAAARgIGCRMAKwCk
KAAAAAAGABsJuwArAEApAAAAAEYCigkvASsArCkAAAAABgCTCTQBKwBQKwAAAAAGAKkJuwAsANAr
AAAAAAYAtgm7ACwAZCwAAAAABgjACToBLAB8LAAAAAAGCMsJPwEsALAsAAAAAAYI3AlxAC0AyCwA
AAAABgjlCcAALQDULAAAAAAGCO4JcQAuAOwsAAAAAAYI+QnAAC4A+CwAAAAABggECnEALwAQLQAA
AAAGCBEKwAAvABwtAAAAAAYIHgpxADAANC0AAAAABggoCsAAMABALQAAAAAGCDIKcQAxAFgtAAAA
AAYIPgrAADEAZC0AAAAAAQhKCrsAMgCELQAAAAABCGAKuwAyAKQtAAAAAAEAlApFATIAGC8AAAAA
AQDqClYBOABoLwAAAAABABILXQE6AJQwAAAAAAEAIgtiAToAAAABAFcCAAABAJACAAABAJACAAAB
ANYDAAACAOADAAADAOkDAAAEAPEDAAAFAPgDAAABACgEAAABACgEAAABACgEAAABACgEAAABACgE
AAABACgEAAABACgEAAABACgEAAABACgEAAABACgEAAABACgEAAABACgEAAABACgEAAABACgEAAAB
ACgEAAABACgEAAABACgEAAABACgEAAABACgEAAABACgEAAABACgEAAABACgEAAABACgEAAABACgE
AAABACgEAAABACgEAAABACgEAAABACgEAAABABMIAAACABsIAAADACUIAAAEAPgDAAABANYDAAAB
ANYDAAABAJ4JAAABANYJAAABANYJAAABANYJAAABANYJAAABANYJAAABANYJAAABAKgKAAACALAK
AAADALgKAAAEAL8KAAAFAMkKAAAGAM8KAAABAPYKAAACAPsKAAABADELAAACADwLAAADAEILCQBb
ARMAoQBbAZEBsQBbAaABEQBbARMAuQBbARMAJABbARMALABbARMANABbARMAPABbARMAJACtAosA
LACtAosANACtAosAPACtAosAwQBbARMAyQBbARMA0QBbAcAA2QBTDTUCGQBQAmMAGQBZAmgAKQB0
DUICGQByAnEA6QCQDVICGQBbARMA8QBbAWICRAD2ApAATAC6DYsATADEDd8CTABbARMA+QBbAcUA
OQBbAa8AOQAIDvkCOQARDsoACQFbAcAAIQEcBhMAIQEjBhMAIQEyBuAAKQFbAcUAYQBbARMAQQBi
DgYDQQCHDhIDMQHADhgDOQH5Dh4DQQECDyUBSQH5DioDOQAkDy8DSQARDsoASQAIDvkCkQAvD+AA
QQDvCBMAkQBgDzwDMQGHD0IDaQH5DkgDUQG6D08DcQHVD2gAcQH5DlUDYQDxD1wDeQEYEGIDUQEk
D2gAYQEqEGgAgQE4EGgDWQFOEG4DYQFXEHEAiQF4EBMAQQD6CBMAkQCAEBMAYQAGCRMAcQGGEBMA
iQDVD2gAiQD5DoMDeQD5DokDkQFyAo4DcQGcEJMDYQGgEMAAYQGpEJkDmQFbARMAmQHcEL0DmQHm
EMIDYQCKCS8BAQHuEG8BMQH0ENcDAQEIEesDsQFbAcAAQQErEcAAuQFPEfADqQFfEXEAuQFrERcA
YQD3EQEEyQH5DgcE0QEfEg4EwQFEEhME4QHVD2gA2QH5DhkE6QFXEHEA2QH5Di4E6QF0EjUE8QH5
DjsEAQJyAnEAKQCyElgEkQG/EmYEeQDQEmsEIQLfEnAEKQLxEoAEMQJbARMAaQAfEg4EMQLLE8AA
wQHvE48EOQJbAZUEYQIuFMAAQQJbARMAQQLLE58ESQJbARMASQLLE6gEAQFlFNMEAQFrFN4EAQF1
FGgAAQFrFOMEeQJbARMAgQJbAcAAiQJbAcAAkQJbAQwFmQJbAcAAoQJbAcAAqQJbAcAAsQJbAcAA
uQJbAXsGyQJbAcoA0QJbARMA2QJbAcAACABMAIIBCABQAIcBCABUAIwBKQCDAO8BLgDzA6YGLgD7
A68GLgADBM4GQAATAJcBQAArAIcBQwAbAKYBQwATAJcBSQCDACECYwAbAKYBYwATAJcBaQCDABQC
gAArAIcBgwAbAKYBgwB7AIcBgwBzAIcBiQCDAAACoAArAIcBowDDAGoCowATAJcBwAArAIcBwwAT
AJcBwwDrAO4C4AArAIcB4wArAe4CAAErAIcBAAETAJcBAwErAe4CIAErAIcBIAETAJcBQAETAJcB
QAErAIcBYAETAJcBYAErAIcBYwG7A/kEYwGzA+kEYwHDAxIFYwErAe4CYwGrA4cBgAErAIcBoAEr
AIcBwAETAJcBwAErAIcB4AErAIcBAAIrAIcBAAITAJcByQTrA5cByQTbA5oGyQTTA4IG6QTjA3sF
6QTTA9wF6QTbA20FCQXjAxwGCQXbA20FCQXTAzMGKQXLA0UFKQXTA1cFKQXbA20FSQXbA20FSQXL
A1kGSQXTA2gGaQXbA20FaQXjA3sFaQXTA5MFAAcrAe4CYAcrAe4C2wHgAeUB6gE6Aj4CSQJOAl0C
XQLlAvQC/wI6Ag0DJQMlAzQDcwOjA80D4gP3AyAEQgRTBE4CTgJOAk4CTgL/Av8CdQSHBLAE/wIE
AAEABgAFAAcABgAJACQACwAmAAAAfwFPAAAAOAJUAAAA5wFZAAAARAJeAAAAAAOYAAAAPgbkAAAA
UQbpAAAAXAbtAAAAbgbpAAAAdwbtAAAAhwbpAAAAlwbtAAAArgbpAAAAuQbtAAAAywbpAAAA1Qbt
AAAA5gbxAAAA6gbtAAAA9Qb1AAAA+wbtAAAACAf1AAAADwftAAAAHQf1AAAAJgftAAAANgfxAAAA
RgftAAAAXQfxAAAAYgftAAAAbgf5AAAAeAftAAAAiQf5AAAAkQftAAAAoAf+AAAAqwftAAAAvQfk
AAAA1ggqAQAA4ggqAQAAoQt6AQAAqAvpAAAArQvpAAAAtAvpAAAAvQvpAAAAwwvpAAAAywvkAAAA
3QvkAAIABAADAAIABQAFAAIABgAHAAIABwAJAAIADwALAAIAEgANAAEAEwAPAAEAFAARAAEAFQAT
AAEAFgAVAAEAFwAXAAEAGAAZAAEAGQAbAAEAGgAdAAEAGwAfAAEAHAAhAAEAHQAjAAEAHgAlAAEA
HwAnAAEAIAApAAEAIQArAAEAIgAtAAEAIwAvAAEAJAAxAAEAJQAzAAEAJgA1AAEAJwA3AAEAKAA5
AAEAKQA7AAEAKgA9AAEAKwA/AAEALABBAAEALQBDAAEALgBFAAIALwBHAAIAOQBJAAIAOgBLAAEA
RwBNAAIARgBNAAEASQBPAAIASABPAAIASgBRAAEASwBRAAEATQBTAAIATABTAAIATgBVAAEATwBV
AAIAUABXAAEAUQBXAAIAUgBZAAIAUwBbAHUAdQCIAL8BxgHNAdQBzALTAsoDBIAAAAAAAAAAAAAA
AAAAAAAAtgAAAAQAAAAAAAAAAAAAAAEACgAAAAAACgAAAAAAAAAAAAAACgATAAAAAAABAAAAAAAA
AAAAAACdAAwDAAAAAAsAAAAAAAAAAAAAAKYASgMAAAAACwAAAAAAAAAAAAAApgCYAwAAAAALAAAA
AAAAAAAAAACmAFEIAAAAAAsAAAAAAAAAAAAAAKYAKQkAAAAABAAAAAAAAAAAAAAAAQB3CgAAAAAE
AAAAAAAAAAAAAAABAIgBAAAAAAsAAAAAAAAAAAAAAKYAfREAAAAACwAAAAAAAAAAAAAApgC4EQAA
AAALAAAAAAAAAAAAAACmAP8SAAAAAAsAAAAAAAAAAAAAAKYAWRMAAAAABQAEAAYABAAMAAsAAAAQ
AAwAjgIAABAAGQCOAgAAAAAbAI4CLQBYAi0A2gIAAAA8TW9kdWxlPgBtc2NvcmxpYgBNaWNyb3Nv
ZnQuVmlzdWFsQmFzaWMATXlBcHBsaWNhdGlvbgBTY3JpcHRDb21wb25lbnRfYmQwOWViNDhhOGRj
NGRjMTgwMTBjZjJhMzE0YjFhYWQuTXkATXlDb21wdXRlcgBNeVByb2plY3QATXlXZWJTZXJ2aWNl
cwBUaHJlYWRTYWZlT2JqZWN0UHJvdmlkZXJgMQBPdXRwdXRCdWZmZXIAU2NyaXB0Q29tcG9uZW50
X2JkMDllYjQ4YThkYzRkYzE4MDEwY2YyYTMxNGIxYWFkAFVzZXJDb21wb25lbnQAQ29ubmVjdGlv
bnMAVmFyaWFibGVzAFNjcmlwdE1haW4AVHJhY2VUeXBlcwBNaWNyb3NvZnQuVmlzdWFsQmFzaWMu
QXBwbGljYXRpb25TZXJ2aWNlcwBBcHBsaWNhdGlvbkJhc2UALmN0b3IATWljcm9zb2Z0LlZpc3Vh
bEJhc2ljLkRldmljZXMAQ29tcHV0ZXIAU3lzdGVtAE9iamVjdAAuY2N0b3IAZ2V0X0NvbXB1dGVy
AG1fQ29tcHV0ZXJPYmplY3RQcm92aWRlcgBnZXRfQXBwbGljYXRpb24AbV9BcHBPYmplY3RQcm92
aWRlcgBVc2VyAGdldF9Vc2VyAG1fVXNlck9iamVjdFByb3ZpZGVyAGdldF9XZWJTZXJ2aWNlcwBt
X015V2ViU2VydmljZXNPYmplY3RQcm92aWRlcgBBcHBsaWNhdGlvbgBXZWJTZXJ2aWNlcwBFcXVh
bHMAbwBHZXRIYXNoQ29kZQBUeXBlAEdldFR5cGUAVG9TdHJpbmcAQ3JlYXRlX19JbnN0YW5jZV9f
AFQAaW5zdGFuY2UARGlzcG9zZV9fSW5zdGFuY2VfXwBnZXRfR2V0SW5zdGFuY2UATWljcm9zb2Z0
LlZpc3VhbEJhc2ljLk15U2VydmljZXMuSW50ZXJuYWwAQ29udGV4dFZhbHVlYDEAbV9Db250ZXh0
AEdldEluc3RhbmNlAENvenlSb2MuU1NJU1BsdXMuMjAxMgBDb3p5Um9jLlNxbFNlcnZlci5TU0lT
AFNjcmlwdEJ1ZmZlclBsdXMATWljcm9zb2Z0LlNxbFNlcnZlci5UeFNjcmlwdABNaWNyb3NvZnQu
U3FsU2VydmVyLkR0cy5QaXBlbGluZQBTY3JpcHRDb21wb25lbnQATWljcm9zb2Z0LlNxbFNlcnZl
ci5QaXBlbGluZUhvc3QAUGlwZWxpbmVCdWZmZXIAT3V0cHV0TmFtZU1hcABDb21wb25lbnQAT2Jq
ZWN0SUQASXNJbnB1dABCdWZmZXIAT3V0cHV0TWFwAGdldF9TdGF0aWNJbnB1dENvbHVtbnMAc2V0
X0V2ZW50Q2xhc3MAVmFsdWUAc2V0X0V2ZW50Q2xhc3NfSXNOdWxsAHNldF9UZXh0RGF0YQBzZXRf
VGV4dERhdGFfSXNOdWxsAHNldF9BcHBsaWNhdGlvbk5hbWUAc2V0X0FwcGxpY2F0aW9uTmFtZV9J
c051bGwAc2V0X05UVXNlck5hbWUAc2V0X05UVXNlck5hbWVfSXNOdWxsAHNldF9Mb2dpbk5hbWUA
c2V0X0xvZ2luTmFtZV9Jc051bGwAc2V0X0NQVQBzZXRfQ1BVX0lzTnVsbABzZXRfUmVhZHMAc2V0
X1JlYWRzX0lzTnVsbABzZXRfV3JpdGVzAHNldF9Xcml0ZXNfSXNOdWxsAHNldF9EdXJhdGlvbgBz
ZXRfRHVyYXRpb25fSXNOdWxsAHNldF9DbGllbnRQcm9jZXNzSUQAc2V0X0NsaWVudFByb2Nlc3NJ
RF9Jc051bGwAc2V0X1NQSUQAc2V0X1NQSURfSXNOdWxsAERhdGVUaW1lAHNldF9TdGFydFRpbWUA
c2V0X1N0YXJ0VGltZV9Jc051bGwAc2V0X0VuZFRpbWUAc2V0X0VuZFRpbWVfSXNOdWxsAHNldF9C
aW5hcnlEYXRhAHNldF9CaW5hcnlEYXRhX0lzTnVsbABnZXRfU3RhdGljT3V0cHV0Q29sdW1ucwBB
ZGRSb3cAU2V0RW5kT2ZSb3dzZXQARW5kT2ZSb3dzZXQAU3RhdGljSW5wdXRDb2x1bW5zAEV2ZW50
Q2xhc3MARXZlbnRDbGFzc19Jc051bGwAVGV4dERhdGEAVGV4dERhdGFfSXNOdWxsAEFwcGxpY2F0
aW9uTmFtZQBBcHBsaWNhdGlvbk5hbWVfSXNOdWxsAE5UVXNlck5hbWUATlRVc2VyTmFtZV9Jc051
bGwATG9naW5OYW1lAExvZ2luTmFtZV9Jc051bGwAQ1BVAENQVV9Jc051bGwAUmVhZHMAUmVhZHNf
SXNOdWxsAFdyaXRlcwBXcml0ZXNfSXNOdWxsAER1cmF0aW9uAER1cmF0aW9uX0lzTnVsbABDbGll
bnRQcm9jZXNzSUQAQ2xpZW50UHJvY2Vzc0lEX0lzTnVsbABTUElEAFNQSURfSXNOdWxsAFN0YXJ0
VGltZQBTdGFydFRpbWVfSXNOdWxsAEVuZFRpbWUARW5kVGltZV9Jc051bGwAQmluYXJ5RGF0YQBC
aW5hcnlEYXRhX0lzTnVsbABTdGF0aWNPdXRwdXRDb2x1bW5zAFNjcmlwdENvbXBvbmVudFBsdXMA
RmluaXNoT3V0cHV0cwBNYXJrT3V0cHV0c0ZpbmlzaGVkAFByaW1lT3V0cHV0AE91dHB1dHMAT3V0
cHV0SURzAEJ1ZmZlcnMAQ3JlYXRlTmV3T3V0cHV0Um93cwBQYXJlbnRDb21wb25lbnQATWljcm9z
b2Z0LlNxbFNlcnZlci5EVFNSdW50aW1lV3JhcABNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5SdW50
aW1lLldyYXBwZXIASURUU0Nvbm5lY3Rpb25NYW5hZ2VyMTAwAGdldF9UcmFjZVNvdXJjZQBnZXRf
VHJhY2VQcm9maWxlAFRyYWNlU291cmNlAFRyYWNlUHJvZmlsZQBQcmVFeGVjdXRlAFBvc3RFeGVj
dXRlAFJlaW5pdGlhbGl6ZU1ldGFEYXRhAEdldFByb3BlcnRpZXMATWljcm9zb2Z0LlNxbFNlcnZl
ci5EVFNQaXBlbGluZVdyYXAATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUGlwZWxpbmUuV3JhcHBl
cgBEVFNWYWxpZGF0aW9uU3RhdHVzAFZhbGlkYXRlAFZhbGlkYXRlVUkAZXJyTWVzc2FnZQBHZXRE
YXRhYmFzZXMAR2V0VGFibGVzAGdldF9Tb3VyY2UAc2V0X1NvdXJjZQB2YWx1ZQBnZXRfRmlsZQBz
ZXRfRmlsZQBnZXRfU2VydmVyAHNldF9TZXJ2ZXIAZ2V0X0RhdGFiYXNlAHNldF9EYXRhYmFzZQBn
ZXRfVGFibGUAc2V0X1RhYmxlAGdldF9Qcm9maWxlAHNldF9Qcm9maWxlAGdldF9TTU9Db25uZWN0
aW9uVHlwZQBnZXRfRmlsZUNvbm5lY3Rpb25UeXBlAFN5c3RlbS5EYXRhAERhdGFSb3cARGF0YVR5
cGUAR2V0VHlwZUZyb21EYXRhUm93XwBkYXRhUm93AGR0c1R5cGUAbGVuZ3RoAHByZWNpc2lvbgBz
Y2FsZQBjb2RlUGFnZQBEYXRhUm93Q29sbGVjdGlvbgBGaW5kQ29sdW1uXwByb3dzAGNvbHVtbk5h
bWUASURhdGFSZWFkZXIAR2V0VHJhY2VSZWFkZXJfAEdldE93bmVyVGFibGVfAHRhYmxlQ29tYm8A
b3duZXIAdGFibGUAbV90cmFjZVR5cGUAbV90cmFjZVNvdXJjZQBtX3RyYWNlUGFyYW0xAG1fdHJh
Y2VQYXJhbTIAbV90cmFjZVJlYWRlcgBtX2J1ZklkeABtX3JlYWRlcklkeABTb3VyY2UARmlsZQBT
ZXJ2ZXIARGF0YWJhc2UAVGFibGUAUHJvZmlsZQBTTU9Db25uZWN0aW9uVHlwZQBGaWxlQ29ubmVj
dGlvblR5cGUARW51bQB2YWx1ZV9fAFN5c3RlbS5Db21wb25lbnRNb2RlbABFZGl0b3JCcm93c2Fi
bGVBdHRyaWJ1dGUARWRpdG9yQnJvd3NhYmxlU3RhdGUAU3lzdGVtLkNvZGVEb20uQ29tcGlsZXIA
R2VuZXJhdGVkQ29kZUF0dHJpYnV0ZQBTeXN0ZW0uRGlhZ25vc3RpY3MARGVidWdnZXJIaWRkZW5B
dHRyaWJ1dGUATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkNvbXBpbGVyU2VydmljZXMAU3RhbmRhcmRN
b2R1bGVBdHRyaWJ1dGUASGlkZU1vZHVsZU5hbWVBdHRyaWJ1dGUAU3lzdGVtLkNvbXBvbmVudE1v
ZGVsLkRlc2lnbgBIZWxwS2V5d29yZEF0dHJpYnV0ZQBTeXN0ZW0uUnVudGltZS5Db21waWxlclNl
cnZpY2VzAFJ1bnRpbWVIZWxwZXJzAEdldE9iamVjdFZhbHVlAFJ1bnRpbWVUeXBlSGFuZGxlAEdl
dFR5cGVGcm9tSGFuZGxlAEFjdGl2YXRvcgBDcmVhdGVJbnN0YW5jZQBNeUdyb3VwQ29sbGVjdGlv
bkF0dHJpYnV0ZQBnZXRfVmFsdWUAc2V0X1ZhbHVlAFN5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2
aWNlcwBDb21WaXNpYmxlQXR0cmlidXRlAFN0cmluZwBzZXRfSXRlbQBTZXROdWxsAEludmFsaWRP
cGVyYXRpb25FeGNlcHRpb24ASW50MzIASW50NjQAU2NyaXB0QnVmZmVyAENMU0NvbXBsaWFudEF0
dHJpYnV0ZQBHZXRPdXRwdXRJRABJRFRTQ29tcG9uZW50TWV0YURhdGExMDAAZ2V0X0NvbXBvbmVu
dE1ldGFEYXRhAElEVFNSdW50aW1lQ29ubmVjdGlvbkNvbGxlY3Rpb24xMDAAZ2V0X1J1bnRpbWVD
b25uZWN0aW9uQ29sbGVjdGlvbgBJRFRTUnVudGltZUNvbm5lY3Rpb24xMDAAZ2V0X0l0ZW0AZ2V0
X0Nvbm5lY3Rpb25NYW5hZ2VyAElEYXRhUmVjb3JkAGdldF9CdWZmZXIAUmVhZABJRFRTT3V0cHV0
MTAwAERhdGFUYWJsZQBJRFRTT3V0cHV0Q29sdW1uMTAwAEdldFNjaGVtYVRhYmxlAElEVFNPdXRw
dXRDb2xsZWN0aW9uMTAwAGdldF9PdXRwdXRDb2xsZWN0aW9uAElEVFNPdXRwdXRDb2x1bW5Db2xs
ZWN0aW9uMTAwAGdldF9PdXRwdXRDb2x1bW5Db2xsZWN0aW9uAGdldF9Db3VudABQaXBlbGluZUNv
bXBvbmVudABnZXRfSG9zdENvbXBvbmVudABJRFRTQnVmZmVyTWFuYWdlcjEwMABnZXRfQnVmZmVy
TWFuYWdlcgBnZXRfTGluZWFnZUlEAEZpbmRDb2x1bW5CeUxpbmVhZ2VJRABnZXRfUm93cwBnZXRf
TmFtZQBNYXJzaGFsQnlWYWx1ZUNvbXBvbmVudABEaXNwb3NlAENsb3NlAFJlbW92ZUFsbABDb252
ZXJzaW9ucwBOZXcAc2V0X05hbWUAU2V0RGF0YVR5cGVQcm9wZXJ0aWVzAFN5c3RlbS5Db2xsZWN0
aW9ucwBBcnJheUxpc3QAQWRkAEFycmF5AFRvQXJyYXkARW1wdHkARmlyZUVycm9yAEV4Y2VwdGlv
bgBJc051bGxPckVtcHR5AEFwcGxpY2F0aW9uRXhjZXB0aW9uAHNldF9Db25uZWN0aW9uTWFuYWdl
cklEAFByb2plY3REYXRhAFNldFByb2plY3RFcnJvcgBnZXRfTWVzc2FnZQBDbGVhclByb2plY3RF
cnJvcgBNaWNyb3NvZnQuU3FsU2VydmVyLlNtbwBNaWNyb3NvZnQuU3FsU2VydmVyLk1hbmFnZW1l
bnQuU21vAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuTWFuYWdlZERUUwBNaWNyb3NvZnQuU3FsU2VydmVy
LkR0cy5SdW50aW1lAGdldF9EZXNpZ25Db25uZWN0aW9ucwBDb25uZWN0aW9uTWFuYWdlcgBBY3F1
aXJlQ29ubmVjdGlvbgBEYXRhYmFzZUNvbGxlY3Rpb24AZ2V0X0RhdGFiYXNlcwBTbW9Db2xsZWN0
aW9uQmFzZQBUYWJsZUNvbGxlY3Rpb24AZ2V0X1RhYmxlcwBTcWxTbW9PYmplY3QAU3lzdGVtLlJl
ZmxlY3Rpb24AQmluZGluZ0ZsYWdzAEJpbmRlcgBJbnZva2VNZW1iZXIAVG9JbnRlZ2VyAERCTnVs
bABJc051bGwAQ29udmVydABUb0ludDE2AE9wZXJhdG9ycwBDb21wYXJlU3RyaW5nAE1pY3Jvc29m
dC5TcWxTZXJ2ZXIuQ29ubmVjdGlvbkluZm9FeHRlbmRlZABNaWNyb3NvZnQuU3FsU2VydmVyLk1h
bmFnZW1lbnQuVHJhY2UAVHJhY2VGaWxlAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuQ29ubmVjdGlvbklu
Zm8ATWljcm9zb2Z0LlNxbFNlcnZlci5NYW5hZ2VtZW50LkNvbW1vbgBTcWxDb25uZWN0aW9uSW5m
bwBUcmFjZVRhYmxlAFRyYWNlU2VydmVyAEluaXRpYWxpemVBc1JlYWRlcgBTZXJ2ZXJDb25uZWN0
aW9uAGdldF9Db25uZWN0aW9uQ29udGV4dABDb25uZWN0aW9uVHlwZQBTcWxPbGFwQ29ubmVjdGlv
bkluZm9CYXNlAHNldF9EYXRhYmFzZU5hbWUAQ29ubmVjdGlvbkluZm9CYXNlAFN0cmluZ1NwbGl0
T3B0aW9ucwBTcGxpdABTdWJzdHJpbmcAZ2V0X0xlbmd0aABTU0lTU2NyaXB0Q29tcG9uZW50RW50
cnlQb2ludEF0dHJpYnV0ZQBDb3p5Um9jLlNxbFNlcnZlci5TU0lTLkF0dHJpYnV0ZXMAVmFsaWRh
dGVQcm9wZXJ0aWVzQXR0cmlidXRlAEZpbHRlclByb3BlcnRpZXNBdHRyaWJ1dGUAU29ydFByb3Bl
cnRpZXNBdHRyaWJ1dGUATGlzdEF0dHJpYnV0ZQBEZXNjcmlwdGlvbkF0dHJpYnV0ZQBDYXRlZ29y
eUF0dHJpYnV0ZQBDb25uZWN0aW9uQXR0cmlidXRlAFJlZnJlc2hQcm9wZXJ0aWVzQXR0cmlidXRl
AFJlZnJlc2hQcm9wZXJ0aWVzAENvbXBpbGF0aW9uUmVsYXhhdGlvbnNBdHRyaWJ1dGUAUnVudGlt
ZUNvbXBhdGliaWxpdHlBdHRyaWJ1dGUAU3lzdGVtLlJ1bnRpbWUuVmVyc2lvbmluZwBUYXJnZXRG
cmFtZXdvcmtBdHRyaWJ1dGUAU2NyaXB0Q29tcG9uZW50X2JkMDllYjQ4YThkYzRkYzE4MDEwY2Yy
YTMxNGIxYWFkLmRsbAAAAICbSQBzAE4AdQBsAGwAIABwAHIAbwBwAGUAcgB0AHkAIABjAGEAbgBu
AG8AdAAgAGIAZQAgAHMAZQB0ACAAdABvACAARgBhAGwAcwBlAC4AIABBAHMAcwBpAGcAbgAgAGEA
IAB2AGEAbAB1AGUAIAB0AG8AIAB0AGgAZQAgAGMAbwBsAHUAbQBuACAAaQBuAHMAdABlAGEAZAAu
AAAVRQB2AGUAbgB0AEMAbABhAHMAcwAAEVQAZQB4AHQARABhAHQAYQAAH0EAcABwAGwAaQBjAGEA
dABpAG8AbgBOAGEAbQBlAAAVTgBUAFUAcwBlAHIATgBhAG0AZQAAE0wAbwBnAGkAbgBOAGEAbQBl
AAAHQwBQAFUAAAtSAGUAYQBkAHMAAA1XAHIAaQB0AGUAcwAAEUQAdQByAGEAdABpAG8AbgAAH0MA
bABpAGUAbgB0AFAAcgBvAGMAZQBzAHMASQBEAAAJUwBQAEkARAAAE1MAdABhAHIAdABUAGkAbQBl
AAAPRQBuAGQAVABpAG0AZQAAFUIAaQBuAGEAcgB5AEQAYQB0AGEAAA1PAHUAdABwAHUAdAAAF1QA
cgBhAGMAZQBTAG8AdQByAGMAZQAAGVQAcgBhAGMAZQBQAHIAbwBmAGkAbABlAAAVQwBvAGwAdQBt
AG4ATgBhAG0AZQAADVMAbwB1AHIAYwBlAAAJRgBpAGwAZQAADVMAZQByAHYAZQByAAARRABhAHQA
YQBiAGEAcwBlAAALVABhAGIAbABlAAAPUAByAG8AZgBpAGwAZQAAG1AAcgBvAGYAaQBsAGUAIABU
AHIAYQBjAGUAAD1TAHAAZQBjAGkAZgB5ACAAdAByAGEAYwBlACAAZgBpAGwAZQAgAGMAbwBuAG4A
ZQBjAHQAaQBvAG4ALgAAO1MAZQBsAGUAYwB0ACAAUwBRAEwAIABTAGUAcgB2AGUAcgAgAGMAbwBu
AG4AZQBjAHQAaQBvAG4ALgAAJ1MAZQBsAGUAYwB0ACAAdAByAGEAYwBlACAAdABhAGIAbABlAC4A
AEtTAGUAbABlAGMAdAAgAHQAcgBhAGMAZQAgAHAAcgBvAGYAaQBsAGUAIABmAGkAbABlACAAYwBv
AG4AbgBlAGMAdABpAG8AbgAuAAATUwBNAE8AUwBlAHIAdgBlAHIAAAlGAEkATABFAAARRABhAHQA
YQBUAHkAcABlAAA1RABhAHQAYQBSAGUAYwBvAHIAZABUAHkAcABlAFQAbwBCAHUAZgBmAGUAcgBU
AHkAcABlAAANSQBzAEwAbwBuAGcAABVDAG8AbAB1AG0AbgBTAGkAegBlAAAhTgB1AG0AZQByAGkA
YwBQAHIAZQBjAGkAcwBpAG8AbgAAGU4AdQBtAGUAcgBpAGMAUwBjAGEAbABlAAAHXQAuAFsAAAAA
XoVFeik4+0+r9K85Dx0GxAAIt3pcVhk04IkIsD9ffxHVCjoDIAABAwAAAQQAABIMBwYVEhgBEgwE
AAASCAcGFRIYARIIBAAAEhEHBhUSGAESEQQAABIUBwYVEhgBEhQECAASDAQIABIIBAgAEhEECAAS
FAQgAQIcAyAACAQgABIVAyAADgIeAAcQAQEeAB4ABzABAQEQHgACEwAEIAATAAcGFRIZARMABCgA
EwAIFs9JC7gMNOoIiYRdzYCAzJELIAUBEiEIAhIlEikEIAAdDgQgAQEOBCABAQIEIAEBCAQgAQEK
BSABAREtBSABAR0FAyAAAgQoAB0OAygADgMoAAIDKAAIAygACgQoABEtBCgAHQUDBhIkAwYSKAMG
EhwLIAQBCB0IHRIlEikDBhIhBSABARIhBCAAEjUEKAASNQQgABE5BSABAhAOBCAAETAFIAEBETAQ
IAYBEj0QEUEQCBAIEAgQCAYgAggSRQ4EIAASSQggAwEOEA4QDgMGETACBg4DBhJJAwYdCAQoABEw
AgYIBAAAAAAEAQAAAAQCAAAABSABARFVCAEAAQAAAAAABSACAQ4OGAEACk15VGVtcGxhdGUIMTAu
MC4wLjAAAAYVEhgBEgwGFRIYARIIBhUSGAESEQYVEhgBEhQEBwESDAQHARIIBAcBEhEEBwESFBAB
AAtNeS5Db21wdXRlcgAAEwEADk15LldlYlNlcnZpY2VzAAAMAQAHTXkuVXNlcgAAEwEADk15LkFw
cGxpY2F0aW9uAAAEAAEcHAMHAQIDBwEIBgABEhURcQQHARIVAwcBDgUQAQAeAAQKAR4ABAcBHgAH
IAQBDg4ODmEBADRTeXN0ZW0uV2ViLlNlcnZpY2VzLlByb3RvY29scy5Tb2FwSHR0cENsaWVudFBy
b3RvY29sEkNyZWF0ZV9fSW5zdGFuY2VfXxNEaXNwb3NlX19JbnN0YW5jZV9fAAAABhUSGAETAAYV
EhkBEwAECgETAAUgAQETAAgHAxMAEwATAAUBAAAAAAQHAR0OBSACAQgcBgcCHQ4dDgYAAggSKQ4E
BwIICAUgABKAmQUgABKAnQYgARKAoRwEBwESNQQgARwIBCAAEiUHBwUICAgcCAUgABKArQUgABKA
tQYgARKAqRwFIAASgLkGIAESgLEcBSAAEoC9BSAAEoDBBSACCAgIBCAAEkUPBwcIEoCpEoCtCBKA
sQgIBSABEj0IBCABHA4EAAEOHAUgABKAsQkgBQERQQgICAgZBw4SgKkSSQgSgK0ICBKAsQ4SPRFB
CAgICAQgAQgcByABEoDREhUCHQ4JBwMdDhKAzREwCiAGAQgODg4IEAIIBwQRORE5DgIEAAECDgYA
AQESgNUJBwQCAhKA1REwBSAAEoDlBiABEoDpHAQgARwcBSAAEoDtBiABEoD1CA0HBggdDhKAzRKA
4QgIBiABEoD1DgUgABKA+QYgARKA/QgQBwcSgPUdDhKAzRKA4QgICAQHAREwDSAFHA4RgQUSgQkc
HRwEAAEIHAQgAQIOBAABBhwKBwQSFR0cEUERQQYAAwgODgIHBwUICAgICAUgABKBKQkgAgESgSkR
gS0IIAMBEoE1Dg4HIAIBEoE1DiIHDw4SSRJJEoEZDg4SgR0SgOEOEoEhEoEdEoDhDhKBJREwCiAD
HQ4dDggRgTkEIAEOCAUgAg4ICA8BAApWYWxpZGF0ZVVJAAASAQANR2V0UHJvcGVydGllcwAABSAB
AR0OMgEABgAAAAZTb3VyY2UERmlsZQZTZXJ2ZXIIRGF0YWJhc2UFVGFibGUHUHJvZmlsZQAAEQEA
DEdldERhdGFiYXNlcwAAFQEAEFNlbGVjdCBkYXRhYmFzZS4AAA0BAAhTZXR0aW5ncwAAFwEAEkZp
bGVDb25uZWN0aW9uVHlwZQAASAEAQ1NlbGVjdCBmaWxlIGNvbm5lY3Rpb24gdG8gU1FMIFNlcnZl
ciBQcm9maWxlciB0cmFjZSBwcm9maWxlICgudGRmKS4AAD8BADpTZWxlY3QgZmlsZSBjb25uZWN0
aW9uIHRvIFNRTCBTZXJ2ZXIgUHJvZmlsZSB0cmFjZSAoLnRyYykuAAAWAQARU01PQ29ubmVjdGlv
blR5cGUAACUBACBTZWxlY3QgY29ubmVjdGlvbiB0byBTUUwgU2VydmVyLgAADgEACUdldFRhYmxl
cwAAEgEADVNlbGVjdCB0YWJsZS4AAAYgAQERgWEXAQASU2VsZWN0IHRyYWNlIHR5cGUuAAALAQAG
CVRyYWNlAAAIAQAIAAAAAAAeAQABAFQCFldyYXBOb25FeGNlcHRpb25UaHJvd3MBRwEAGi5ORVRG
cmFtZXdvcmssVmVyc2lvbj12NC4wAQBUDhRGcmFtZXdvcmtEaXNwbGF5TmFtZRAuTkVUIEZyYW1l
d29yayA0AABwZQAAAAAAAAAAAACOZQAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgGUAAAAAAAAA
AAAAAAAAAAAAX0NvckRsbE1haW4AbXNjb3JlZS5kbGwAAAAAAP8lACBAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABABAAAAAYAACAAAAAAAAAAAAAAAAA
AAABAAEAAAAwAACAAAAAAAAAAAAAAAAAAAABAAAAAABIAAAAWIAAAOwCAAAAAAAAAAAAAOwCNAAA
AFYAUwBfAFYARQBSAFMASQBPAE4AXwBJAE4ARgBPAAAAAAC9BO/+AAABAAAAAAAAAAAAAAAAAAAA
AAA/AAAAAAAAAAQAAAACAAAAAAAAAAAAAAAAAAAARAAAAAEAVgBhAHIARgBpAGwAZQBJAG4AZgBv
AAAAAAAkAAQAAABUAHIAYQBuAHMAbABhAHQAaQBvAG4AAAAAAAAAsARMAgAAAQBTAHQAcgBpAG4A
ZwBGAGkAbABlAEkAbgBmAG8AAAAoAgAAAQAwADAAMAAwADAANABiADAAAAAsAAIAAQBGAGkAbABl
AEQAZQBzAGMAcgBpAHAAdABpAG8AbgAAAAAAIAAAADAACAABAEYAaQBsAGUAVgBlAHIAcwBpAG8A
bgAAAAAAMAAuADAALgAwAC4AMAAAAIwANQABAEkAbgB0AGUAcgBuAGEAbABOAGEAbQBlAAAAUwBj
AHIAaQBwAHQAQwBvAG0AcABvAG4AZQBuAHQAXwBiAGQAMAA5AGUAYgA0ADgAYQA4AGQAYwA0AGQA
YwAxADgAMAAxADAAYwBmADIAYQAzADEANABiADEAYQBhAGQALgBkAGwAbAAAAAAAKAACAAEATABl
AGcAYQBsAEMAbwBwAHkAcgBpAGcAaAB0AAAAIAAAAJQANQABAE8AcgBpAGcAaQBuAGEAbABGAGkA
bABlAG4AYQBtAGUAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfAGIAZAAwADkAZQBi
ADQAOABhADgAZABjADQAZABjADEAOAAwADEAMABjAGYAMgBhADMAMQA0AGIAMQBhAGEAZAAuAGQA
bABsAAAAAAA0AAgAAQBQAHIAbwBkAHUAYwB0AFYAZQByAHMAaQBvAG4AAAAwAC4AMAAuADAALgAw
AAAAOAAIAAEAQQBzAHMAZQBtAGIAbAB5ACAAVgBlAHIAcwBpAG8AbgAAADAALgAwAC4AMAAuADAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAABgAAAMAAAAoDUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA]]></arrayElement></arrayElements></property><property id="9" name="UserComponentTypeName" dataType="System.String">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2012, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea</property><property id="11" name="VSTAProjectName" dataType="System.String" description="Specifies the name of the Microsoft Visual Studio Tools for Applications project. Project names must be unique within a package." typeConverter="NOTBROWSABLE">ScriptComponent_bd09eb48a8dc4dc18010cf2a314b1aad</property><property id="12" name="ScriptLanguage" dataType="System.String" description="Specifies the programming language used by the script." typeConverter="Microsoft.SqlServer.VSTAHosting.ScriptingLanguages, Microsoft.SqlServer.VSTAScriptingLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">VisualBasic</property></properties><connections><connection id="14" name="TraceSource" connectionManagerID="{F4599D3E-558F-4094-A23A-008167F1E285}" /><connection id="15" name="TraceProfile" connectionManagerID="{F4599D3E-558F-4094-A23A-008167F1E285}" /></connections><outputs><output id="16" name="Output" hasSideEffects="true"><outputColumns><outputColumn id="17" name="EventClass" lineageId="17" length="4000" dataType="wstr" /><outputColumn id="18" name="TextData" lineageId="18" length="4000" dataType="wstr" /><outputColumn id="19" name="ApplicationName" lineageId="19" length="4000" dataType="wstr" /><outputColumn id="20" name="NTUserName" lineageId="20" length="4000" dataType="wstr" /><outputColumn id="21" name="LoginName" lineageId="21" length="4000" dataType="wstr" /><outputColumn id="22" name="CPU" lineageId="22" dataType="i4" /><outputColumn id="23" name="Reads" lineageId="23" dataType="i8" /><outputColumn id="24" name="Writes" lineageId="24" dataType="i8" /><outputColumn id="25" name="Duration" lineageId="25" dataType="i8" /><outputColumn id="26" name="ClientProcessID" lineageId="26" dataType="i4" /><outputColumn id="27" name="SPID" lineageId="27" dataType="i4" /><outputColumn id="28" name="StartTime" lineageId="28" dataType="dbTimeStamp" /><outputColumn id="29" name="EndTime" lineageId="29" dataType="dbTimeStamp" /><outputColumn id="30" name="BinaryData" lineageId="30" length="4000" dataType="bytes" /></outputColumns><externalMetadataColumns><externalMetadataColumn id="31" name="EventClass" dataType="nText" /><externalMetadataColumn id="32" name="TextData" dataType="nText" /><externalMetadataColumn id="33" name="ApplicationName" dataType="nText" /><externalMetadataColumn id="34" name="NTUserName" dataType="nText" /><externalMetadataColumn id="35" name="LoginName" dataType="nText" /><externalMetadataColumn id="36" name="CPU" dataType="i4" /><externalMetadataColumn id="37" name="Reads" dataType="i8" /><externalMetadataColumn id="38" name="Writes" dataType="i8" /><externalMetadataColumn id="39" name="Duration" dataType="i8" /><externalMetadataColumn id="40" name="ClientProcessID" dataType="i4" /><externalMetadataColumn id="41" name="SPID" dataType="i4" /><externalMetadataColumn id="42" name="StartTime" dataType="dbTimeStamp" /><externalMetadataColumn id="43" name="EndTime" dataType="dbTimeStamp" /><externalMetadataColumn id="44" name="BinaryData" dataType="bytes" /></externalMetadataColumns></output></outputs></component>