<component id="2" name="Dynamics CRM Opportunity State" componentClassID="Microsoft.ManagedComponentHost" description="Executes a custom script." localeId="1033" version="10" 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-2012 COZYROC LLC
' 
' Permission is hereby granted, free of charge, to any person
' obtaining a copy of this software and associated documentation
' files (the "Software"), to deal in the Software without
' restriction, including without limitation the rights to use,
' copy, modify, merge, publish, distribute, sublicense, and/or sell
' copies of the Software, and to permit persons to whom the
' Software is furnished to do so, subject to the following
' conditions:
' 
' The above copyright notice and this permission notice shall be
' included in all copies or substantial portions of the Software.
' 
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
' EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
' OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
' NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
' HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
' WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
' FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
' OTHER DEALINGS IN THE SOFTWARE.

Imports System
Imports System.ComponentModel
Imports System.Collections
Imports System.Web.Services.Protocols

Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS
Imports CozyRoc.SqlServer.SSIS.Attributes
Imports CRM2011 = CozyRoc.Dynamics.Crm2011.OrganizationService
Imports CRM4 = CozyRoc.Dynamics.Crm.Service
Imports CRM3 = CozyRoc.Dynamics.Crm3.Service


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


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Class Consts
        Public Const Opportunity As String = "opportunity"
        Public Const OpportunityClose As String = "opportunityclose"
        Public Const OpportunityState As String = "opportunitystatecode"
        Public Const OpportunityStatus As String = "opportunitystatuscode"
        Public Const ReferenceType As String = "ReferenceType"
        Public Const OpportunityId As String = "opportunityid"
    End Class


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub Input_ProcessInputRow(ByVal Row As InputBuffer)
        Try
            If Not m_service2011 Is Nothing Then
                Call Process2011_(Row.Buffer)
            ElseIf Not m_service4 Is Nothing Then
                Call Process4_(Row.Buffer)
            Else
                Call Process3_(Row.Buffer)
            End If
        Catch ex As SoapException
            Call FireError_(ex.Detail.InnerXml)
        Catch ex As Exception
            Call FireError_(ex.Message)
        End Try
    End Sub ' Input_ProcessInputRow


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

        ' Setup CRM service.
        m_connection = CType( _
            Me.Connections.CrmConnection.AcquireConnection(Nothing), _
            ICrmConnection)
        Call m_connection.Connect()

        Dim service As Object = m_connection.GetService(0)   ' 0 - CRM Service

        m_service2011 = TryCast(service, CRM2011.OrganizationServiceClient)
        If m_service2011 Is Nothing Then
            m_service4 = TryCast(service, CRM4.CrmService)
            If m_service4 Is Nothing Then
                m_service3 = TryCast(service, CRM3.CrmService)
                If m_service3 Is Nothing Then
                    Throw New Exception("Unhandled service object.")
                End If
            End If
        End If

        Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)
        m_closeEntity = m_connection.ConstructEntity(Consts.OpportunityClose)

        ' Get input column indexes.
        Dim colsCount As Integer = input.InputColumnCollection.Count
        m_inputIdx = New Integer(colsCount - 1) {}
        For colIndex As Integer = 0 To colsCount - 1
            Dim inputCol As IDTSInputColumn100 = Input.InputColumnCollection(colIndex)

            Dim extColumn As IDTSExternalMetadataColumn100 = Input.ExternalMetadataColumnCollection.GetObjectByID( _
                    inputCol.ExternalMetadataColumnID)

            If extColumn.Name = Consts.OpportunityState Then
                m_stateIdx = colIndex
            ElseIf extColumn.Name = Consts.OpportunityStatus Then
                m_statusIdx = colIndex
            Else
                Dim refType As String = CStr(extColumn.CustomPropertyCollection(Consts.ReferenceType).Value)
                Call m_closeEntity.SetupAttribute(extColumn.Name, refType)
            End If

            m_inputIdx(colIndex) = MyBase.HostComponent.BufferManager.FindColumnByLineageID( _
                input.Buffer, _
                inputCol.LineageID)
        Next

        If m_stateIdx = -1 Then
            Throw New Exception(Consts.OpportunityState + " not mapped.")
        End If
    End Sub ' PreExecute


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

        Call m_connection.Close()
        m_closeEntity = Nothing
        m_inputIdx = Nothing
        m_stateIdx = -1
        m_statusIdx = -1
    End Sub ' PostExecute


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

        Try
            If String.IsNullOrEmpty(Me.CrmConnection) Then
                Throw New ApplicationException("Select Dynamics CRM connection.")
            End If

            Dim input As IDTSInput100 = Me.ComponentMetaData.InputCollection(0)
            If input.IsAttached AndAlso input.InputColumnCollection.Count = 0 Then
                Throw New Exception("Map input columns.")
            End If

            ' Store connection information in the runtime connection collection, too.
            ' Cannot directly use RuntimeConnectionCollection in the property get/set
            ' because of issues with multi-threading.
            Me.ComponentMetaData.RuntimeConnectionCollection("CrmConnection").ConnectionManagerID = Me.CrmConnection
        Catch ex As Exception
            result = False
            errMessage = ex.Message
        End Try

        Validate = result
    End Function    'Validate


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

        If MyBase.ComponentMetaData.InputCollection.Count = 0 Then
            ' At least one input must exist.
            Throw New Exception("No inputs.")
        End If

        If String.IsNullOrEmpty(Me.CrmConnection) Then
            Throw New Exception("Connection not selected.")
        End If

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

        ' Get opportunityclose attributes.
        Dim connection As ICrmConnection = Nothing
        Dim attributes As ICrmAttribute()
        Try
            Dim manager As ConnectionManager = Me.DesignConnections(Me.CrmConnection)
            connection = CType(manager.AcquireConnection(Nothing), ICrmConnection)
            Call connection.Connect()

            attributes = connection.GetEntityAttributes(Consts.OpportunityClose)
        Finally
            If Not connection Is Nothing Then
                Call connection.Close()
            End If
        End Try

        ' Cleanup.
        input.ExternalMetadataColumnCollection.IsUsed = True
        Call input.InputColumnCollection.RemoveAll()
        Call input.ExternalMetadataColumnCollection.RemoveAll()

        Dim extColumn As IDTSExternalMetadataColumn100

        ' Setup column metadata.
        For Each attribute As ICrmAttribute In attributes
            extColumn = input.ExternalMetadataColumnCollection.[New]()
            extColumn.Name = attribute.Name
            extColumn.DataType = CType(attribute.AttributeType, DataType)
            extColumn.Length = attribute.Length
            extColumn.Precision = attribute.Precision
            extColumn.Scale = attribute.Scale
            extColumn.CodePage = 0

            ' Setup reference type property.
            Dim prop As IDTSCustomProperty100 = extColumn.CustomPropertyCollection.[New]()
            prop.Name = Consts.ReferenceType
            prop.Value = attribute.Reference
        Next

        ' Include opportunity state column.
        extColumn = input.ExternalMetadataColumnCollection.[New]()
        extColumn.Name = Consts.OpportunityState
        extColumn.DataType = DataType.DT_I4

        ' Include opportunity status column.
        extColumn = input.ExternalMetadataColumnCollection.[New]()
        extColumn.Name = Consts.OpportunityStatus
        extColumn.DataType = DataType.DT_I4
    End Sub ' ReinitializeMetaData


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select Dynamics CRM Connection Manager.")> _
    <Connection("CrmConnectionType")> _
    Public Property CrmConnection() As String
        Get
            CrmConnection = m_crmConnection
        End Get
        Set(ByVal value As String)
            m_crmConnection = value
        End Set
    End Property    ' CrmConnection
#End Region ' Properties


#Region "Internals"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private ReadOnly Property CrmConnectionType() As String()
        Get
            CrmConnectionType = New String() {"DYNAMICS-CRM"}
        End Get
    End Property    ' CrmConnectionType


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub FireError_(ByVal message As String)
        Dim cancel As Boolean = False
        Call MyBase.ComponentMetaData.FireError( _
            0, _
            "Dynamics CRM Opportunity State", _
            message, _
            String.Empty, _
            0, _
            cancel)
    End Sub ' FireError_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub GetValues_( _
        ByRef buffer As PipelineBuffer, _
        ByRef state As Integer, _
        ByRef status As Integer)

        state = -1
        status = -1

        Dim entityIndex As Integer = 0
        Dim colsCount As Integer = m_inputIdx.Length
        For colIndex As Integer = 0 To colsCount - 1
            Dim bufIndex As Integer = m_inputIdx(colIndex)

            ' Get value.
            Dim value As Object = Nothing
            If Not buffer.IsNull(bufIndex) Then
                value = buffer(bufIndex)

                If TypeOf value Is BlobColumn Then
                    value = buffer.GetString(bufIndex)
                End If
            End If

            If colIndex = m_stateIdx Then
                state = Convert.ToInt32(value)
            ElseIf colIndex = m_statusIdx Then
                status = Convert.ToInt32(value)
            Else
                m_closeEntity.SetAttributeValue(entityIndex, value)
                entityIndex += 1
            End If
        Next

        If state < 0 OrElse state > 2 Then
            Throw New Exception("Unhandled opportunity state.")
        End If
    End Sub ' GetValues_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub Process2011_(ByVal buffer As PipelineBuffer)
        Dim req As CRM2011.OrganizationRequest = New CRM2011.OrganizationRequest()

        Dim state, status As Integer
        Call GetValues_(buffer, state, status)

        Dim osv As CRM2011.OptionSetValue

        ' Setup status.
        osv = New CRM2011.OptionSetValue()
        osv.Value = status
        req("Status") = osv

        Select Case state
            Case 0
                req.RequestName = "SetState"

                ' Setup state.
                osv = New CRM2011.OptionSetValue()
                osv.Value = state
                req("State") = osv

                ' Setup entity
                Dim entityRef As CRM2011.EntityReference = New CRM2011.EntityReference()
                entityRef.LogicalName = Consts.Opportunity
                entityRef.Id = New Guid(m_closeEntity.GetAttributeValue(Consts.OpportunityId).ToString())
                req("EntityMoniker") = entityRef

            Case 1
                req.RequestName = "WinOpportunity"
                req("OpportunityClose") = m_closeEntity.ConstructDynamicEntity()
            Case 2
                req.RequestName = "LoseOpportunity"
                req("OpportunityClose") = m_closeEntity.ConstructDynamicEntity()
        End Select

        Call m_service2011.Execute(req)
    End Sub ' Process2011_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub Process4_(ByVal buffer As PipelineBuffer)
        Dim req As CRM4.Request = Nothing

        Dim state, status As Integer
        Call GetValues_(buffer, state, status)

        Select Case CType(state, CRM4.OpportunityState)
            Case CRM4.OpportunityState.Open
                Dim stateReq As CRM4.SetStateDynamicEntityRequest = New CRM4.SetStateDynamicEntityRequest()

                ' Setup state.
                stateReq.State = "Open"

                ' Setup status.
                stateReq.Status = status

                ' Setup entity.
                Dim moniker As CRM4.Moniker = New CRM4.Moniker()
                moniker.Name = Consts.Opportunity
                moniker.Id = New Guid(m_closeEntity.GetAttributeValue(Consts.OpportunityId).ToString())
                stateReq.Entity = moniker

                req = stateReq

            Case CRM4.OpportunityState.Won
                Dim winReq As CRM4.WinOpportunityRequest = New CRM4.WinOpportunityRequest()
                winReq.Status = status
                winReq.OpportunityClose = CType( _
                    m_closeEntity.ConstructDynamicEntity(), _
                    CRM4.BusinessEntity)

                req = winReq

            Case CRM4.OpportunityState.Lost
                Dim loseReq As CRM4.LoseOpportunityRequest = New CRM4.LoseOpportunityRequest()
                loseReq.Status = status
                loseReq.OpportunityClose = CType( _
                    m_closeEntity.ConstructDynamicEntity(), _
                    CRM4.BusinessEntity)

                req = loseReq
        End Select

        Call m_service4.Execute(req)
    End Sub ' Process4_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub Process3_(ByVal buffer As PipelineBuffer)
        Dim req As CRM3.Request = Nothing

        Dim state, status As Integer
        Call GetValues_(buffer, state, status)

        Select Case CType(state, CRM3.OpportunityState)
            Case CRM3.OpportunityState.Open
                Dim stateReq As CRM3.SetStateDynamicEntityRequest = New CRM3.SetStateDynamicEntityRequest()

                ' Setup state.
                stateReq.State = "Open"

                ' Setup status.
                stateReq.Status = status

                ' Setup entity.
                Dim moniker As CRM3.Moniker = New CRM3.Moniker()
                moniker.Name = Consts.Opportunity
                moniker.Id = New Guid(m_closeEntity.GetAttributeValue(Consts.OpportunityId).ToString())
                stateReq.Entity = moniker

                req = stateReq

            Case CRM3.OpportunityState.Won
                Dim winReq As CRM3.WinOpportunityRequest = New CRM3.WinOpportunityRequest()
                winReq.Status = status
                winReq.OpportunityClose = CType( _
                    m_closeEntity.ConstructDynamicEntity(), _
                    CRM3.BusinessEntity)

                req = winReq

            Case CRM3.OpportunityState.Lost
                Dim loseReq As CRM3.LoseOpportunityRequest = New CRM3.LoseOpportunityRequest()
                loseReq.Status = status
                loseReq.OpportunityClose = CType( _
                    m_closeEntity.ConstructDynamicEntity(), _
                    CRM3.BusinessEntity)

                req = loseReq
        End Select

        Call m_service3.Execute(req)
    End Sub ' Process3_
#End Region ' Internals


#Region "Attributes"
    Private m_crmConnection As String

    Private m_connection As ICrmConnection
    Private m_service2011 As CRM2011.OrganizationServiceClient
    Private m_service4 As CRM4.CrmService
    Private m_service3 As CRM3.CrmService
    Private m_closeEntity As ICrmEntity
    Private m_inputIdx() As Integer
    Private m_stateIdx As Integer = -1
    Private m_statusIdx As Integer = -1
#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 InputBuffer
    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 Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public Overloads Function NextRow() As Boolean
        NextRow = MyBase.NextRow()
    End Function

    Public Overloads Function EndOfRowset() As Boolean
        EndOfRowset = MyBase.EndOfRowset
    End Function

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[ScriptComponent_9648c45aa14e4c9cb42ff789bc2f3fc1.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>{898FE6DD-703B-4150-938F-03E407297544}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>My Project</AppDesignerFolder>
    <RootNamespace>ScriptComponent_ffa3ca46f57a4a838fb5af55c1fd8058</RootNamespace>
    <AssemblyName>ScriptComponent_ffa3ca46f57a4a838fb5af55c1fd8058</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.2016, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files (x86)\Microsoft SQL Server\130\SDK\Assemblies\CozyRoc.SSISPlus.2016.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=13.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=13.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=13.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=13.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="Microsoft.SqlServer.ManagedDTS" />
    <Reference Include="CozyRoc.Dynamics" />
    <Reference Include="System.Web.Services" />
    <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="" />
        <Host Name="SSIS_SC110" />
        <ProjectClient>
          <HostIdentifier>SSIS_SC130</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 Overrides Sub ProcessInput(ByVal InputID As Integer, ByVal InputName As String, ByVal Buffer As PipelineBuffer, ByVal OutputMap As OutputNameMap)

        If InputID = MyBase.ComponentMetaData.InputCollection("Input").ID Then
            Input_ProcessInput(New InputBuffer(Me, InputID, True, Buffer, OutputMap))
        End If

    End Sub

    Public Overridable Sub Input_ProcessInput(ByVal Buffer As InputBuffer)

        While Buffer.NextRow()
            Input_ProcessInputRow(Buffer)
        End While

    End Sub

    Public Overridable Sub Input_ProcessInputRow(ByVal Row As InputBuffer)

    End Sub

End Class

Public Class Connections

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

    Public ReadOnly Property CrmConnection() As IDTSConnectionManager100
        Get
            Return ParentComponent.ComponentMetaData.RuntimeConnectionCollection("CrmConnection").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:NoContent>Reference;Import;Folder</msb:NoContent>
		<msb:ProjectId>{2FA443D0-0C01-4463-BE98-7554272A4463}</msb:ProjectId>
		<msb:CodeName>ScriptComponent_9648c45aa14e4c9cb42ff789bc2f3fc1</msb:CodeName>
		<msb:Language>msBuild</msb:Language>
		<msb:DisplayName>ScriptComponent_9648c45aa14e4c9cb42ff789bc2f3fc1</msb:DisplayName>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:Folder Include="My Project\"/>
		<msb:File Include="ComponentWrapper.vb"/>
		<msb:File Include="ScriptMain.vb"/>
		<msb:File Include="BufferWrapper.vb"/>
		<msb:Project Include="ScriptComponent_9648c45aa14e4c9cb42ff789bc2f3fc1.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_ffa3ca46f57a4a838fb5af55c1fd8058.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
CgBhBxEOCgBFBxEODgCvBzEFBgCZB3MJCgCJCnkCEgBLD98DEgDUA7cDEgDUA5kDCgA+EXkCFgDu
Ck4OBgDyCnMJBgAmD3MJGgAxAWcMGgA4AGcMGgAaAGcMCgDMBnkCHgDICzEFEgDmD98DEgBSCN8D
EgBNBN8DEgA8ELcDEgD/BbcDEgAfDLcDEgA8EJkDEgD/BZkDEgAfDJkDIgAhB+IICgANBxEOCgDd
DnkCDgCVDzEFDgD+CjEFCgDuDnkCJgADAT8MIgArBicMIgDqBeIIIgBWBuIIKgCdBWgNKgCoDBgN
BgDaBgUNKgCDBrENKgCbBk8DKgCUDGgNKgDyBk8DBgCYBXMJBgBvBpINKgBiAbgIIgAWBnoJKgA6
A7ENLgBpBEkJBgC9DtgNGgABAGcMGgCzAGcMBgCOAXMJGgBzAGcMGgBLAGcMKgDMDrENGgDKAGcM
GgA+AWcMKgCbDrENHgBlDzEFGgAcAWcMBgCbCHMJBgDZCnMJGgCQAGcMGgDqAGcMMgCxDhEFMgD7
CxEFJgBWBT8MHgCiCTEFBgDeD3MJBgCUA3MJEgCtBd8DEgAnELcDEgARELcDEgBJEbcDEgD6D7cD
EgC5BbcDEgAnEJkDEgAREJkDEgBJEZkDEgD6D5kDEgC5BZkDDgDXCzEFBgCxBHMJBgDdDHMJAAAA
APEBAAAAAAEAAQABAAAAlwnAARAAAQABAAEAAADkC8ABiQAKAA8AAQAAAHcPwAGVAAoAFAABAAAA
sQ7AAUUADAAYAAEAAAAHDsABRQANABoAAAAAANkJzhCpAA4AGwAAAAAApgzOEK0ADgAcAAABEAAt
D84QRQAOAB0AAwAAANYOAABFABIAIgAFAQAAWg0AAEUAGAAjAAUBAABxAQAARQAYACoAAQC8CjwB
AQDMCjQDAQBUATgDAQCfATwDAQCUAUADAQAwEUQDAQDDEEgDAQCsEEwDAQC3EEwDBgCxDk8DBgAH
DlMDAQCFD1cDAQCFD1cDMQCGC1wDMQBdC2QDMQBxC2wDMQCfC3UDVoACETwBVoDGBTwBVoD/BTwB
VoANDzwBVoBfBTwBVoBsAzwBIQCAEC8CUCAAAAAABhjnDAYAAQBoIAAAAADGAo4QfQMBAAQhAAAA
AMYC9AcGAAIAyiIAAAAAxgL/BwYAAgD8IgAAAAAGANcFgwMCAKgjAAAAAMYCDwMGAAMARCUAAAAA
BgiYCkcAAwBZJQAAAAAGCKoKEAADAGQlAAAAAAEIfwWJAwQAhCUAAAAAAQD5AhAABACwJQAAAAAB
AAQDjgMFAHgmAAAAAAEAsQKZAwgAjCcAAAAAAQDIApkDCQBsKAAAAAABAL4CmQMKAEspAAAAAAYY
5wzMAQsAWikAAAAAxgpsDokDEABaKQAAAADGCoMOiQMQAGQpAAAAAIYApBDjABAAfCkAAAAAhgA/
D+MAEACRKQAAAAAGGOcMBgAQALEpAAAAAMYCcxCfAxAA4SkAAAAARgNtEH0DFAD0KQAAAABGA44Q
fQMVAPYpAAAAAAYY5wyqAxYABSoAAAAABgiYCtoBFwAmKgAAAAAGGOcMqgMXADUqAAAAAAYY5wwG
ABgAPSoAAAAABhjnDAYAGABFKgAAAAATCJkMsQMYAFEqAAAAABMIyQm2AxgAXSoAAAAAEwiQDLsD
GABpKgAAAAATCEoNwQMYAHUqAAAAABEY7QxLABgAnyoAAAAABhjnDAYAGACnKgAAAADGAkcOAgIY
ALUqAAAAAMYCXQSKABkAvSoAAAAAgwCVBcYDGQDJKgAAAADGAo8IRwAZANQqAAAAABEA5gLMAxkA
9CoAAAAAAQDSAtQDGgCfKgAAAAAGGOcMBgAbAAArAAAAAAMIJgTnARsANCsAAAAABhjnDAYAGwAA
AAEAqBAAAAEAigQAAAEAYQgAAAEAlQQAAAEA8AsAAAIAEAYAAAMAHw8AAAEA8AsAAAEA8AsAAAEA
8AsAAAEArQ8AAAIAWgIAAAMAZRAAAAQA6QsAAAUADAsAAAEAYwIAAAIABwUAAAMA6QsAAAQADAsA
AAEA6QsAAAEAqBAAAAEArQ8AAAEArQ8AAAEA/AoAAAEANgQAAAEANgQJAOcMAQARAOcMBgAZAOcM
CgApAOcMEAAxAOcMBgA5AOcMEABBAOcMBgBJAOcMFQABAecMEAAJAecMEAA5AecMGgBJAecMIABh
AecMBgBpAecMBgBxAecMBgCBAecMJwCRAecMFQChAecMEAARAb0LNgCpAc0MOwB5APgIQQCxAVQJ
RwCpAbsMSwCBAH4ERwAZAfQHBgAxAXcKXQBRADcPBgBRAAwEYgC5AUMIZwCBAOcMEAAZASQDbADB
AUYKcgDJAWEJeABRAFgRfgCRAAwKhADZAbcPigDZAWEJjgCRAOcJlACZACUCigDhAWsCmgChANUE
RwDpAYEIoAChAFoKpwDxAWEJrQD5AQsItAABAo8IuABxADYHvQApAaUPwwAJAg0MyQCRAL0LigCZ
AAECigARAg8CzwAZAf8HBgBRANEFBgAZAmgR3gAhAucMEACRAHoD4wDBASYK5wApAmEJ7QAxAkIC
EAApAQ8DBgDJAbcPigApAacOBAE5AmEJCgFBAncKXQBRADMOEQHhAYkDFQDZAQMJBgDhAQMJBgDh
AYoQGAGpANUERwChAN4EEACpAG0FigChAFIFHQGpAKIIigChAK0IAQCpAK0JigChALsJAQCpAJ0E
igChAKcEAQChAHEEAQDxAYoQJAH5Ad4EEACpAD8ERwD5ARUIKgEZAnARPAHBAbEMPwGxAEIJUgGx
AGEJYgCxAJgIVwFZAowBXAFxADEIYQG5AOcMBgDBAOcMBgDBABUIAQC5AGoJcgG5APcEEADJAOcM
BgDJAOcEEABxAB8IeAGJAI8IRwBhAucMEADJAGUDfQFxABkRtABZAAMIhAFxAucMBgBxAuAFEABx
AgIPAQDhAOcMBgDhAN4EEADhAGUDfQFxAg4RlwF5AucMBgB5AgIPAQB5AsIFnQGJAucMBgCJAgIP
AQCJAsIFnQFhAAMIpAGZAucMBgCZAuAFEACZAgIPAQD5AOcMBgD5AN4EEAD5AGUDfQGZAg4RtwGh
AucMBgChAgIPAQChAsIFvQGxAucMBgCxAgIPAQCxAsIFvQFpAAMIxAERAecMzAHBAqQQ4wDBAj8P
4wApAecMBgCRAPoBigCJAOcMBgAxAvcL2gFRAecMBgBZAecMBgAMACYE5wEUACYE5wEcACYE5wEk
ACYE5wEMAOcMBgAUAOcMBgAcAOcMBgAkAOcMBgCJAEcOAgKJAF0EigCJAcMEBwLRAhcEGAI0AIAQ
LwI8AAsI5wE8ABUISAI8AOcMBgAOAEgAcgIOAEwAiQIOAFAAqgIOAFQA0wIOAFgA/gIOAFwAGQMp
AEsAGwUpAFMASAUuAAsABQQuABMADgQuABsALQQuACMANgRDACsAhARDADMAkgRDADsAhARDAEMA
fgRjAEMAfgSDAEMAfgTJAJMAXwXjAFsAoATjAGMAiQTpAJMAcAUDAVsAoAQDAWMAiQQJAZMAhAUj
AXMAhAQjAXsAhAQjAVsAoAQpAZMAkQVjAWMAiQRjAYMAuQSDAWMAiQSDAYsAfgQAA0MAfgRAA0MA
fgSAA2sAhASAA2MAiQSgA2sAhATAA2sAhATgA2sAhAQABGsAhARgBGMAiQRgBGsAhASABGMAiQSA
BGsAhASgBGMAiQSgBGsAhATABGMAiQTABGsAhATgBGsAhAQABWsAhAQgBWsAhAQgBWMAiQRABWsA
hARgBWsAhARgBWMAiQQvAE8A1QD0AC8BMwE4AUoBZwGMAawBEAIjAgIAAQADAAMABQAFAAkABgAM
AAoAAACuCtwDAACDBeADAABwDuADAACHDuADAACuCuUDAACoDOsDAADbCfADAACUDPUDAABcDfsD
AAAqBAAEAgAHAAMAAQAIAAMAAgAJAAUAAgAQAAcAAgARAAkAAgAZAAsAAgAdAA0AAgAeAA8AAgAf
ABEAAgAgABMAAgAqABUA4AHsAfMB+wEVAigCOAJAAgSAAAAAAAAAAAAAAAAAAAAAAMABAAAEAAAA
AAAAAAAAAABOAkYDAAAAAAEAAAAAAAAAAAAAAFcCqgEAAAAADQAAAAAAAAAAAAAAYALBDwAAAAAB
AAAAAAAAAAAAAABXAvQMAAAAAAQAAAAAAAAAAAAAAGkCNg0AAAAADQAAAAAAAAAAAAAAYAI5CwAA
AAANAAAAAAAAAAAAAABgAkQQAAAAAAQAAAAAAAAAAAAAAE4CcwkAAAAADQAAAAAAAAAAAAAAYAIW
CwAAAAAKAAAAAAAAAAAAAABpAk8DAAAAAAQAAAAAAAAAAAAAAE4CSQkAAAAADQAAAAAAAAAAAAAA
YAKQAgAAAAAKAAIACwAJAAwACQAAABAAGACvAgAAEABPAK8CAAAAAFEArwI1AR4CNQFDAgAAAElE
VFNDb21wb25lbnRNZXRhRGF0YTEwMABJRFRTRXh0ZXJuYWxNZXRhZGF0YUNvbHVtbjEwMABJRFRT
SW5wdXRDb2x1bW4xMDAASURUU0V4dGVybmFsTWV0YWRhdGFDb2x1bW5Db2xsZWN0aW9uMTAwAElE
VFNJbnB1dENvbHVtbkNvbGxlY3Rpb24xMDAASURUU1J1bnRpbWVDb25uZWN0aW9uQ29sbGVjdGlv
bjEwMABJRFRTSW5wdXRDb2xsZWN0aW9uMTAwAElEVFNDdXN0b21Qcm9wZXJ0eUNvbGxlY3Rpb24x
MDAASURUU1J1bnRpbWVDb25uZWN0aW9uMTAwAElEVFNDb25uZWN0aW9uTWFuYWdlcjEwMABJRFRT
QnVmZmVyTWFuYWdlcjEwMABJRFRTSW5wdXQxMDAASURUU0N1c3RvbVByb3BlcnR5MTAwAG1fc2Vy
dmljZTIwMTEAQ29udGV4dFZhbHVlYDEAVGhyZWFkU2FmZU9iamVjdFByb3ZpZGVyYDEAVG9JbnQz
MgBtX3NlcnZpY2UzAG1fc2VydmljZTQAQ296eVJvYy5TU0lTUGx1cy4yMDE2AFNjcmlwdENvbXBv
bmVudF9mZmEzY2E0NmY1N2E0YTgzOGZiNWFmNTVjMWZkODA1OAA8TW9kdWxlPgBnZXRfSUQAZ2V0
X0xpbmVhZ2VJRABGaW5kQ29sdW1uQnlMaW5lYWdlSUQAZ2V0X0V4dGVybmFsTWV0YWRhdGFDb2x1
bW5JRABzZXRfQ29ubmVjdGlvbk1hbmFnZXJJRABPYmplY3RJRABJbnB1dElEAEdldE9iamVjdEJ5
SUQAQ296eVJvYy5TcWxTZXJ2ZXIuU1NJUwBNaWNyb3NvZnQuU3FsU2VydmVyLk1hbmFnZWREVFMA
VABQcm9jZXNzMjAxMV8AUHJvY2VzczNfAFByb2Nlc3M0XwBEaXNwb3NlX19JbnN0YW5jZV9fAENy
ZWF0ZV9fSW5zdGFuY2VfXwBGaXJlRXJyb3JfAEdldFZhbHVlc18AUmVpbml0aWFsaXplTWV0YURh
dGEAZ2V0X0NvbXBvbmVudE1ldGFEYXRhAFByb2plY3REYXRhAG1zY29ybGliAE1pY3Jvc29mdC5W
aXN1YWxCYXNpYwBzZXRfSWQAT3Bwb3J0dW5pdHlJZABnZXRfSXNBdHRhY2hlZABzZXRfSXNVc2Vk
AEd1aWQAQ296eVJvYy5EeW5hbWljcy5Dcm0zLlNlcnZpY2UAQ296eVJvYy5EeW5hbWljcy5Dcm0u
U2VydmljZQBDcm1TZXJ2aWNlAENvenlSb2MuRHluYW1pY3MuQ3JtMjAxMS5Pcmdhbml6YXRpb25T
ZXJ2aWNlAEdldFNlcnZpY2UAQ3JlYXRlSW5zdGFuY2UAZ2V0X0dldEluc3RhbmNlAGluc3RhbmNl
AGdldF9SZWZlcmVuY2UARW50aXR5UmVmZXJlbmNlAEdldEhhc2hDb2RlAFhtbE5vZGUAc2V0X0Nv
ZGVQYWdlAGdldF9NZXNzYWdlAGVyck1lc3NhZ2UAbWVzc2FnZQBnZXRfU2NhbGUAc2V0X1NjYWxl
AFJ1bnRpbWVUeXBlSGFuZGxlAEdldFR5cGVGcm9tSGFuZGxlAGdldF9OYW1lAHNldF9OYW1lAHNl
dF9Mb2dpY2FsTmFtZQBzZXRfUmVxdWVzdE5hbWUASW5wdXROYW1lAE1pY3Jvc29mdC5TcWxTZXJ2
ZXIuRHRzLlJ1bnRpbWUATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUGlwZWxpbmUAc2V0X0RhdGFU
eXBlAFJlZmVyZW5jZVR5cGUAZ2V0X0F0dHJpYnV0ZVR5cGUAZ2V0X0NybUNvbm5lY3Rpb25UeXBl
AEdldFR5cGUAQXBwbGljYXRpb25CYXNlAE9yZ2FuaXphdGlvblJlc3BvbnNlAHNldF9PcHBvcnR1
bml0eUNsb3NlAFZhbGlkYXRlAHNldF9TdGF0ZQBFZGl0b3JCcm93c2FibGVTdGF0ZQBPcHBvcnR1
bml0eVN0YXRlAHN0YXRlAEhlbHBLZXl3b3JkQXR0cmlidXRlAEdlbmVyYXRlZENvZGVBdHRyaWJ1
dGUARGVidWdnYWJsZUF0dHJpYnV0ZQBFZGl0b3JCcm93c2FibGVBdHRyaWJ1dGUAQ29tVmlzaWJs
ZUF0dHJpYnV0ZQBTdGFuZGFyZE1vZHVsZUF0dHJpYnV0ZQBIaWRlTW9kdWxlTmFtZUF0dHJpYnV0
ZQBUYXJnZXRGcmFtZXdvcmtBdHRyaWJ1dGUASUNybUF0dHJpYnV0ZQBEZWJ1Z2dlckhpZGRlbkF0
dHJpYnV0ZQBNeUdyb3VwQ29sbGVjdGlvbkF0dHJpYnV0ZQBDb25uZWN0aW9uQXR0cmlidXRlAERl
c2NyaXB0aW9uQXR0cmlidXRlAFNldHVwQXR0cmlidXRlAFZhbGlkYXRlUHJvcGVydGllc0F0dHJp
YnV0ZQBDb2x1bW5NYXBwaW5nc0F0dHJpYnV0ZQBDb21waWxhdGlvblJlbGF4YXRpb25zQXR0cmli
dXRlAENMU0NvbXBsaWFudEF0dHJpYnV0ZQBTU0lTU2NyaXB0Q29tcG9uZW50RW50cnlQb2ludEF0
dHJpYnV0ZQBSdW50aW1lQ29tcGF0aWJpbGl0eUF0dHJpYnV0ZQBQcmVFeGVjdXRlAFBvc3RFeGVj
dXRlAGdldF9WYWx1ZQBzZXRfVmFsdWUAR2V0QXR0cmlidXRlVmFsdWUAU2V0QXR0cmlidXRlVmFs
dWUAR2V0T2JqZWN0VmFsdWUAT3B0aW9uU2V0VmFsdWUAdmFsdWUAU3lzdGVtLlJ1bnRpbWUuVmVy
c2lvbmluZwBDb21wYXJlU3RyaW5nAFRvU3RyaW5nAEdldFN0cmluZwBnZXRfTGVuZ3RoAHNldF9M
ZW5ndGgATWljcm9zb2Z0LlZpc3VhbEJhc2ljLk15U2VydmljZXMuSW50ZXJuYWwAU3lzdGVtLkNv
bXBvbmVudE1vZGVsAGdldF9EZXRhaWwAUmVtb3ZlQWxsAFNjcmlwdENvbXBvbmVudF9mZmEzY2E0
NmY1N2E0YTgzOGZiNWFmNTVjMWZkODA1OC5kbGwASXNOdWxsAFN5c3RlbS5YbWwAZ2V0X0lubmVy
WG1sAGdldF9JdGVtAHNldF9JdGVtAFN5c3RlbQBTeXN0ZW0uQ29tcG9uZW50TW9kZWwuRGVzaWdu
AFNjcmlwdE1haW4AQmxvYkNvbHVtbgBnZXRfUHJlY2lzaW9uAHNldF9QcmVjaXNpb24AZ2V0X0Fw
cGxpY2F0aW9uAE15QXBwbGljYXRpb24AZ2V0X0V4dGVybmFsTWV0YWRhdGFDb2x1bW5Db2xsZWN0
aW9uAGdldF9JbnB1dENvbHVtbkNvbGxlY3Rpb24AZ2V0X1J1bnRpbWVDb25uZWN0aW9uQ29sbGVj
dGlvbgBnZXRfSW5wdXRDb2xsZWN0aW9uAGdldF9DdXN0b21Qcm9wZXJ0eUNvbGxlY3Rpb24AQWNx
dWlyZUNvbm5lY3Rpb24ASUNybUNvbm5lY3Rpb24AZ2V0X0NybUNvbm5lY3Rpb24Ac2V0X0NybUNv
bm5lY3Rpb24AbV9jcm1Db25uZWN0aW9uAG1fY29ubmVjdGlvbgBBcHBsaWNhdGlvbkV4Y2VwdGlv
bgBTb2FwRXhjZXB0aW9uAG8AT3V0cHV0TmFtZU1hcABPdXRwdXRNYXAATWljcm9zb2Z0LlNxbFNl
cnZlci5EVFNSdW50aW1lV3JhcABNaWNyb3NvZnQuU3FsU2VydmVyLkRUU1BpcGVsaW5lV3JhcABt
X0FwcE9iamVjdFByb3ZpZGVyAG1fVXNlck9iamVjdFByb3ZpZGVyAG1fQ29tcHV0ZXJPYmplY3RQ
cm92aWRlcgBtX015V2ViU2VydmljZXNPYmplY3RQcm92aWRlcgBnZXRfQnVmZmVyAFBpcGVsaW5l
QnVmZmVyAFNjcmlwdEJ1ZmZlcgBJbnB1dEJ1ZmZlcgBidWZmZXIAZ2V0X0Nvbm5lY3Rpb25NYW5h
Z2VyAGdldF9CdWZmZXJNYW5hZ2VyAE1vbmlrZXIAU3lzdGVtLkNvZGVEb20uQ29tcGlsZXIATWlj
cm9zb2Z0LlNxbFNlcnZlci5EdHMuUnVudGltZS5XcmFwcGVyAE1pY3Jvc29mdC5TcWxTZXJ2ZXIu
RHRzLlBpcGVsaW5lLldyYXBwZXIAZ2V0X1VzZXIAZ2V0X0NvbXB1dGVyAE15Q29tcHV0ZXIARmly
ZUVycm9yAENsZWFyUHJvamVjdEVycm9yAFNldFByb2plY3RFcnJvcgBBY3RpdmF0b3IALmN0b3IA
LmNjdG9yAENvenlSb2MuRHluYW1pY3MAU3lzdGVtLkRpYWdub3N0aWNzAE1pY3Jvc29mdC5WaXN1
YWxCYXNpYy5EZXZpY2VzAFN5c3RlbS5XZWIuU2VydmljZXMAZ2V0X1dlYlNlcnZpY2VzAE15V2Vi
U2VydmljZXMATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkFwcGxpY2F0aW9uU2VydmljZXMAU3lzdGVt
LlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5Db21waWxlclNl
cnZpY2VzAFN5c3RlbS5SdW50aW1lLkNvbXBpbGVyU2VydmljZXMARGVidWdnaW5nTW9kZXMAVmFy
aWFibGVzAENvenlSb2MuU3FsU2VydmVyLlNTSVMuQXR0cmlidXRlcwBHZXRFbnRpdHlBdHRyaWJ1
dGVzAEVxdWFscwBTeXN0ZW0uV2ViLlNlcnZpY2VzLlByb3RvY29scwBnZXRfU3RhdGljSW5wdXRD
b2x1bW5zAGdldF9TdGF0aWNPdXRwdXRDb2x1bW5zAENvbnZlcnNpb25zAGdldF9EZXNpZ25Db25u
ZWN0aW9ucwBSdW50aW1lSGVscGVycwBPcGVyYXRvcnMAQ29uc3RzAFNjcmlwdEJ1ZmZlclBsdXMA
U2NyaXB0Q29tcG9uZW50UGx1cwBzZXRfU3RhdHVzAE9wcG9ydHVuaXR5U3RhdHVzAHN0YXR1cwBP
YmplY3QATXlQcm9qZWN0AENvbm5lY3QARW5kT2ZSb3dzZXQAT3JnYW5pemF0aW9uU2VydmljZUNs
aWVudABQaXBlbGluZUNvbXBvbmVudABVc2VyQ29tcG9uZW50AFBhcmVudENvbXBvbmVudABTY3Jp
cHRDb21wb25lbnQAZ2V0X0hvc3RDb21wb25lbnQAZ2V0X0NvdW50AE1pY3Jvc29mdC5TcWxTZXJ2
ZXIuVHhTY3JpcHQAQ29udmVydABPcmdhbml6YXRpb25SZXF1ZXN0AExvc2VPcHBvcnR1bml0eVJl
cXVlc3QAV2luT3Bwb3J0dW5pdHlSZXF1ZXN0AFNldFN0YXRlRHluYW1pY0VudGl0eVJlcXVlc3QA
TWljcm9zb2Z0LlNxbFNlcnZlci5QaXBlbGluZUhvc3QASXNJbnB1dABJbnB1dF9Qcm9jZXNzSW5w
dXQAbV9Db250ZXh0AE5ldwBJbnB1dF9Qcm9jZXNzSW5wdXRSb3cATmV4dFJvdwBtX3N0YXRlSWR4
AG1fc3RhdHVzSWR4AG1faW5wdXRJZHgAU2NyaXB0Q29tcG9uZW50X2ZmYTNjYTQ2ZjU3YTRhODM4
ZmI1YWY1NWMxZmQ4MDU4Lk15AE9wcG9ydHVuaXR5AHNldF9FbnRpdHkAQ29uc3RydWN0RHluYW1p
Y0VudGl0eQBtX2Nsb3NlRW50aXR5AElDcm1FbnRpdHkAQnVzaW5lc3NFbnRpdHkAQ29uc3RydWN0
RW50aXR5AElzTnVsbE9yRW1wdHkAAAAAM1UAbgBoAGEAbgBkAGwAZQBkACAAcwBlAHIAdgBpAGMA
ZQAgAG8AYgBqAGUAYwB0AC4AACFvAHAAcABvAHIAdAB1AG4AaQB0AHkAYwBsAG8AcwBlAAApbwBw
AHAAbwByAHQAdQBuAGkAdAB5AHMAdABhAHQAZQBjAG8AZABlAAArbwBwAHAAbwByAHQAdQBuAGkA
dAB5AHMAdABhAHQAdQBzAGMAbwBkAGUAABtSAGUAZgBlAHIAZQBuAGMAZQBUAHkAcABlAABBbwBw
AHAAbwByAHQAdQBuAGkAdAB5AHMAdABhAHQAZQBjAG8AZABlACAAbgBvAHQAIABtAGEAcABwAGUA
ZAAuAAA/UwBlAGwAZQBjAHQAIABEAHkAbgBhAG0AaQBjAHMAIABDAFIATQAgAGMAbwBuAG4AZQBj
AHQAaQBvAG4ALgAAJU0AYQBwACAAaQBuAHAAdQB0ACAAYwBvAGwAdQBtAG4AcwAuAAAbQwByAG0A
QwBvAG4AbgBlAGMAdABpAG8AbgAAFU4AbwAgAGkAbgBwAHUAdABzAC4AADFDAG8AbgBuAGUAYwB0
AGkAbwBuACAAbgBvAHQAIABzAGUAbABlAGMAdABlAGQALgAAGUQAWQBOAEEATQBJAEMAUwAtAEMA
UgBNAAE9RAB5AG4AYQBtAGkAYwBzACAAQwBSAE0AIABPAHAAcABvAHIAdAB1AG4AaQB0AHkAIABT
AHQAYQB0AGUAADlVAG4AaABhAG4AZABsAGUAZAAgAG8AcABwAG8AcgB0AHUAbgBpAHQAeQAgAHMA
dABhAHQAZQAuAAANUwB0AGEAdAB1AHMAABFTAGUAdABTAHQAYQB0AGUAAAtTAHQAYQB0AGUAABdv
AHAAcABvAHIAdAB1AG4AaQB0AHkAABtvAHAAcABvAHIAdAB1AG4AaQB0AHkAaQBkAAAbRQBuAHQA
aQB0AHkATQBvAG4AaQBrAGUAcgAAHVcAaQBuAE8AcABwAG8AcgB0AHUAbgBpAHQAeQAAIU8AcABw
AG8AcgB0AHUAbgBpAHQAeQBDAGwAbwBzAGUAAB9MAG8AcwBlAE8AcABwAG8AcgB0AHUAbgBpAHQA
eQAACU8AcABlAG4AAAtJAG4AcAB1AHQAAAAAAGFwtTOCUNFBkwHAckOzT6YABCABAQgDIAABBSAB
ARERBCABAQ4EIAEBAgUgAgEODgYgAQERgKEHIAQBDg4ODgYHAhI9EkEEIAASWQUAAQESQQUgABKA
2QMgAA4DAAABDQcIHBJJCAgIEk0SUQ4EIAEcHAQgARwIBAABHBwFIAASgOEFIAASgOUFIAESSRwF
IAESOQ4FIAASgO0DIAAIBSABEk0cBSAAEoDxBSABElEIBgADCA4OAgUgABKA+QYgARKA/RwDIAAc
BAABDhwFIAIIDg4FIAASgQUFIAASgQkFIAIICAgIBwQCAhJJEkEEAAECDgMgAAIFIAASgRUGIAES
gRkcDwcGEkkSKR0SVR0SVQgSVQUgABKBHQYgARKBIRwGIAEdElUOBCAAElEGIAEBEYElBSAAEoD9
BCABARwDBwEOBAcBHQ4DBwECAgYOCiAGAQgODg4IEAIHBwUICAgIHAQgAQIIBCABDggEAAEIHAUg
AgEIHAoHBRJdCAgSYRJlBSACAQ4cBCABHA4GIAEBEYExByABEoE1El0KBwUSaQgIEW0ScQUgAQES
cQYgAQESgUEHIAESgUkSaQoHBRJ1CAgReRJ9BSABARJ9BiABARKBVQcgARKBXRJ1DSAFARKAjQgC
ElkSgJEFIAASgJkGFRIwARIgBCAAEwAGFRIwARIcBxUSMAESgL0GFRIwARIsBCABAhwIAAESgMUR
gWUEBwEeAAIeAAUQAQAeAAQKAR4ABAcBEwAGFRIwARMACAYVEoDNARMABxUSgM0BEwACEwAECgET
AAUgAQETAAi3elxWGTTgiQgWz0kLuAw06giJhF3NgIDMkQiwP19/EdUKOhZvAHAAcABvAHIAdAB1
AG4AaQB0AHkAIG8AcABwAG8AcgB0AHUAbgBpAHQAeQBjAGwAbwBzAGUAKG8AcABwAG8AcgB0AHUA
bgBpAHQAeQBzAHQAYQB0AGUAYwBvAGQAZQAqbwBwAHAAbwByAHQAdQBuAGkAdAB5AHMAdABhAHQA
dQBzAGMAbwBkAGUAGlIAZQBmAGUAcgBlAG4AYwBlAFQAeQBwAGUAGm8AcABwAG8AcgB0AHUAbgBp
AHQAeQBpAGQAAwYSKQMGEi0DBhIxAwYSNQMGEjkDBh0IAgYIAwYSFAMGEhgEBhKAjQcGFRIwARIg
BwYVEjABEhwIBhUSMAESgL0HBhUSMAESLAUgAQESDAUgAQIQDgQgAB0OCiADARASWRAIEAgFIAEB
ElkKIAQBCA4SWRKAkQYgAQESgI0EAAASIAQAABIcBQAAEoC9BAAAEiwFIAASgMUHEAEBHgAeAAcw
AQEBEB4AAygADgQoAB0OBSgAEoCZBAgAEiAECAASHAUIABKAvQQIABIsBCgAEwAIAQAIAAAAAAAe
AQABAFQCFldyYXBOb25FeGNlcHRpb25UaHJvd3MBCAEAAgAAAAAARwEAGi5ORVRGcmFtZXdvcmss
VmVyc2lvbj12NC4wAQBUDhRGcmFtZXdvcmtEaXNwbGF5TmFtZRAuTkVUIEZyYW1ld29yayA0BQEA
AAAABAEAAAAIAQABAAAAAAANAQAIVmFsaWRhdGUAABgBAApNeVRlbXBsYXRlCDExLjAuMC4wAABh
AQA0U3lzdGVtLldlYi5TZXJ2aWNlcy5Qcm90b2NvbHMuU29hcEh0dHBDbGllbnRQcm90b2NvbBJD
cmVhdGVfX0luc3RhbmNlX18TRGlzcG9zZV9fSW5zdGFuY2VfXwAAACwBACdTZWxlY3QgRHluYW1p
Y3MgQ1JNIENvbm5lY3Rpb24gTWFuYWdlci4AABYBABFDcm1Db25uZWN0aW9uVHlwZQAAEAEAC015
LkNvbXB1dGVyAAATAQAOTXkuQXBwbGljYXRpb24AAAwBAAdNeS5Vc2VyAAATAQAOTXkuV2ViU2Vy
dmljZXMAAAAAABRUAAAAAAAAAAAAAC5UAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgVAAAAAAA
AAAAAAAAAF9Db3JEbGxNYWluAG1zY29yZWUuZGxsAAAAAAD/JQAgABAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAEAAAABgAAIAAAAAA
AAAAAAAAAAAAAAEAAQAAADAAAIAAAAAAAAAAAAAAAAAAAAEAAAAAAEgAAABYYAAA7AIAAAAAAAAA
AAAA7AI0AAAAVgBTAF8AVgBFAFIAUwBJAE8ATgBfAEkATgBGAE8AAAAAAL0E7/4AAAEAAAAAAAAA
AAAAAAAAAAAAAD8AAAAAAAAABAAAAAIAAAAAAAAAAAAAAAAAAABEAAAAAQBWAGEAcgBGAGkAbABl
AEkAbgBmAG8AAAAAACQABAAAAFQAcgBhAG4AcwBsAGEAdABpAG8AbgAAAAAAAACwBEwCAAABAFMA
dAByAGkAbgBnAEYAaQBsAGUASQBuAGYAbwAAACgCAAABADAAMAAwADAAMAA0AGIAMAAAACwAAgAB
AEYAaQBsAGUARABlAHMAYwByAGkAcAB0AGkAbwBuAAAAAAAgAAAAMAAIAAEARgBpAGwAZQBWAGUA
cgBzAGkAbwBuAAAAAAAwAC4AMAAuADAALgAwAAAAigA1AAEASQBuAHQAZQByAG4AYQBsAE4AYQBt
AGUAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfAGYAZgBhADMAYwBhADQANgBmADUA
NwBhADQAYQA4ADMAOABmAGIANQBhAGYANQA1AGMAMQBmAGQAOAAwADUAOAAuAGQAbABsAAAAAAAo
AAIAAQBMAGUAZwBhAGwAQwBvAHAAeQByAGkAZwBoAHQAAAAgAAAAkgA1AAEATwByAGkAZwBpAG4A
YQBsAEYAaQBsAGUAbgBhAG0AZQAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8AZgBm
AGEAMwBjAGEANAA2AGYANQA3AGEANABhADgAMwA4AGYAYgA1AGEAZgA1ADUAYwAxAGYAZAA4ADAA
NQA4AC4AZABsAGwAAAAAADQACAABAFAAcgBvAGQAdQBjAHQAVgBlAHIAcwBpAG8AbgAAADAALgAw
AC4AMAAuADAAAAA4AAgAAQBBAHMAcwBlAG0AYgBsAHkAIABWAGUAcgBzAGkAbwBuAAAAMAAuADAA
LgAwAC4AMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAwAAABANAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=]]></arrayElement></arrayElements></property><property id="9" name="UserComponentTypeName" dataType="System.String">CozyRoc.ScriptComponentHostPlus</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_9648c45aa14e4c9cb42ff789bc2f3fc1</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=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">VisualBasic</property></properties><connections><connection id="15" name="CrmConnection" connectionManagerID="{EB1EB761-DB8F-4F1C-96A3-1EF8BB8AE919}" /></connections><inputs><input id="16" name="Input" hasSideEffects="true"><externalMetadataColumns isUsed="True" /></input></inputs></component>