<component id="37" name="Dynamics CRM Opportunity State" componentClassID="{2E42D45B-F83C-400F-8D77-61DDE6A7DF29}" description="Executes a custom script." localeId="1033" usesDispositions="false" validateExternalMetadata="True" version="4" pipelineVersion="0" contactInfo="Executes a custom script.;Microsoft Corporation;Microsoft SqlServer v9; © 2004 Microsoft Corporation; All Rights Reserved; http://www.microsoft.com/sql/support;0">
<properties>
<property id="41" name="SourceCode" dataType="System.String" state="cdata" isArray="true" description="Stores the source code of the component" typeConverter="NOTBROWSABLE" UITypeEditor="" containsID="false" expressionType="None"><arrayElements arrayElementCount="18"><arrayElement dataType="System.String"><![CDATA[\my project\settings.designer.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA['------------------------------------------------------------------------------
' <autogenerated>
'     This code was generated by a tool.
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </autogenerated>
'------------------------------------------------------------------------------

Option Strict Off
Option Explicit On



Partial Friend NotInheritable Class MySettings
    Inherits System.Configuration.ApplicationSettingsBase

    Private Shared m_Value As MySettings

    Private Shared m_SyncObject As Object = New Object

    <System.Diagnostics.DebuggerNonUserCode()> _
    Public Shared ReadOnly Property Value() As MySettings
        Get
            If (MySettings.m_Value Is Nothing) Then
                System.Threading.Monitor.Enter(MySettings.m_SyncObject)
                If (MySettings.m_Value Is Nothing) Then
                    Try
                        MySettings.m_Value = New MySettings
                    Finally
                        System.Threading.Monitor.Exit(MySettings.m_SyncObject)
                    End Try
                End If
            End If
            Return MySettings.m_Value
        End Get
    End Property
End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\my project\assemblyinfo.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices

' General Information about an assembly is controlled through the following 
' set of attributes. Change these attribute values to modify the information
' associated with an assembly.

' Review the values of the assembly attributes

<Assembly: AssemblyTitle("ScriptComponent_9745e92176eb4102bf453925359014c3.vbproj")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("Microsoft")> 
<Assembly: AssemblyProduct("ScriptComponent_9745e92176eb4102bf453925359014c3.vbproj")> 
<Assembly: AssemblyCopyright("Copyright @ Microsoft 2012")> 
<Assembly: AssemblyTrademark("")> 
<Assembly: CLSCompliant(True)> 

<Assembly: ComVisible(False)> 

'The following GUID is for the ID of the typelib if this project is exposed to COM
<Assembly: Guid("8bbd4082-c20c-4695-ac1b-eb181c1d001e")> 

' Version information for an assembly consists of the following four values:
'
'      Major Version
'      Minor Version 
'      Build Number
'      Revision
'
' You can specify all the values or you can default the Build and Revision Numbers 
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>

<Assembly: AssemblyVersion("1.0.0.0")> 
<Assembly: AssemblyFileVersion("1.0.0.0")> 
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\my project\settings.settings]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version='1.0' encoding='iso-8859-1'?>
<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)" GeneratedClassNamespace="" GeneratedClassName="MySettings">
  <Profiles>
    <Profile Name="(Default)" />
  </Profiles>
  <Settings />
</SettingsFile>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\bufferwrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services buffer wrappers
' This module defines classes for accessing data flow buffers
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!


Option Strict Off   ' This allows usage of PipelineBuffer typed accessors.

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class InputBuffer
    Inherits ScriptBufferPlus

    Public Sub New(ByVal Component As ScriptComponent, ByVal ObjectID As Integer, ByVal IsInput As Boolean, ByVal Buffer As PipelineBuffer)
        MyBase.New(Component, ObjectID, IsInput, Buffer)
    End Sub

    Public Overrides ReadOnly Property StaticInputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public Overloads Function NextRow() As Boolean
        NextRow = MyBase.NextRow()
    End Function

    Public Overloads Function EndOfRowset() As Boolean
        EndOfRowset = MyBase.EndOfRowset
    End Function

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\my project\resources.designer.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA['------------------------------------------------------------------------------
' <autogenerated>
'     This code was generated by a tool.
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </autogenerated>
'------------------------------------------------------------------------------

Option Strict Off
Option Explicit On


Namespace My.Resources
    
    '''<summary>
    '''   A strongly-typed resource class, for looking up localized strings, etc.
    '''</summary>
    'This class was auto-generated by the Strongly Typed Resource Builder
    'class via a tool like ResGen or Visual Studio.NET.
    'To add or remove a member, edit your .ResX file then rerun ResGen
    'with the /str option, or rebuild your VS project.
    Class MyResources
        
        Private Shared _resMgr As System.Resources.ResourceManager
        
        Private Shared _resCulture As System.Globalization.CultureInfo
        
        Friend Sub New()
            MyBase.New
        End Sub
        
        '''<summary>
        '''   Returns the cached ResourceManager instance used by this class.
        '''</summary>
        <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)>  _
        Public Shared ReadOnly Property ResourceManager() As System.Resources.ResourceManager
            Get
                If (_resMgr Is Nothing) Then
                    Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("My.Resources.MyResources", GetType(MyResources).Assembly)
                    _resMgr = temp
                End If
                Return _resMgr
            End Get
        End Property
        
        '''<summary>
        '''   Overrides the current thread's CurrentUICulture property for all
        '''   resource lookups using this strongly typed resource class.
        '''</summary>
        <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)>  _
        Public Shared Property Culture() As System.Globalization.CultureInfo
            Get
                Return _resCulture
            End Get
            Set
                _resCulture = value
            End Set
        End Property
    End Class
End Namespace
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\componentwrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services component wrapper
' This module defines the base class for your component
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class UserComponent
    Inherits ScriptComponentPlus

    Public Connections As New Connections(Me)
    Public Variables As New Variables(Me)

    Public Overrides Sub ProcessInput(ByVal InputID As Integer, ByVal Buffer As PipelineBuffer)

        If InputID = MyBase.ComponentMetaData.InputCollection("Input").ID Then
            Input_ProcessInput(New InputBuffer(Me, InputID, True, Buffer))
        End If

    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[\my project\resources.resx]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\main.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' COZYROC SQL Server Integration Services user script component
'
' Copyright (c) 2006-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[\scriptcomponent_9745e92176eb4102bf453925359014c3.vbproj]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <!-- This section defines project-level properties.

       Configuration - Specifies whether the default configuration is Release or Debug.
       Platform - Specifies what CPU the output of this project can run on.
       OutputType - Must be "Library" for VSTA.
       NoStandardLibraries - Set to "false" for VSTA.
       RootNamespace - In C#, this specifies the namespace given to new files.
                       In Visual Basic, all objects are wrapped in this namespace at runtime.
       AssemblyName - Name of the output assembly.
  -->
  <PropertyGroup>
    <ProjectTypeGuids>{A860303F-1F3F-4691-B57E-529FC101A107};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <OutputType>Library</OutputType>
    <RootNamespace>ScriptComponent_9745e92176eb4102bf453925359014c3.vbproj</RootNamespace>
    <AssemblyName>ScriptComponent_9745e92176eb4102bf453925359014c3.vbproj</AssemblyName>
    <StartupObject>
    </StartupObject>
    <OptionExplicit>On</OptionExplicit>
    <OptionCompare>Binary</OptionCompare>
    <OptionStrict>Off</OptionStrict>
    <OptionInfer>On</OptionInfer>
    <ProjectGuid>{35395EE6-016B-4A9E-B4DF-8ECA79A1E8D5}</ProjectGuid>
  </PropertyGroup>
  <!-- This section defines properties that are set when the "Debug" configuration is
       selected.

       DebugSymbols - If true, create symbols (.pdb). If false, do not create symbols.
       Optimize - If true, optimize the build output. If false, do not optimize.
       OutputPath - Output path of the project relative to the project file.
       EnableUnmanagedDebugging - If true, starting the debugger will attach both managed and unmanaged debuggers.
       DefineConstants - Constants defined for the preprocessor.
       Warning Level - Warning level for the compiler.
  -->
  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <DefineConstants>
    </DefineConstants>
    <DefineDebug>true</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <DebugSymbols>true</DebugSymbols>
    <Optimize>false</Optimize>
    <OutputPath>bin\</OutputPath>
    <RegisterForComInterop>false</RegisterForComInterop>
    <RemoveIntegerChecks>false</RemoveIntegerChecks>
    <NoWarn>42016,42017,42018,42019,42032</NoWarn>
  </PropertyGroup>
  <!-- This section defines properties that are set when the "Release" configuration is
       selected.

       DebugSymbols - If true, create symbols (.pdb). If false, do not create symbols.
       Optimize - If true, optimize the build output. If false, do not optimize.
       OutputPath - Output path of the project relative to the project file.
       EnableUnmanagedDebugging - If true, starting the debugger will attach both managed and unmanaged debuggers.
       DefineConstants - Constants defined for the preprocessor.
       Warning Level - Warning level for the compiler.
  -->
  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
    <DefineConstants>
    </DefineConstants>
    <DefineDebug>false</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <DebugSymbols>false</DebugSymbols>
    <Optimize>true</Optimize>
    <OutputPath>bin\</OutputPath>
    <RegisterForComInterop>false</RegisterForComInterop>
    <RemoveIntegerChecks>false</RemoveIntegerChecks>
    <NoWarn>42016,42017,42018,42019,42032</NoWarn>
  </PropertyGroup>
  <!-- This section enables pre- and post-build steps. However,
       it is recommended that MSBuild tasks be used instead of these properties.
  -->
  <PropertyGroup>
    <PreBuildEvent>
    </PreBuildEvent>
    <PostBuildEvent>
    </PostBuildEvent>
  </PropertyGroup>
  <!-- This sections specifies references for the project. -->
  <ItemGroup>
    <Reference Include="CozyRoc.Dynamics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL" />
    <Reference Include="CozyRoc.SSISPlus.2008, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL" />
    <Reference Include="Microsoft.SqlServer.ManagedDTS, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL" />
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Web.Services" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
    <Reference Include="Microsoft.SqlServer.TxScript, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
  </ItemGroup>
  <!-- Visual Basic supports Importing namespaces (equivalent to using statements in C#).-->
  <ItemGroup>
    <Import Include="Microsoft.VisualBasic" />
    <Import Include="System" />
    <Import Include="System.Collections" />
    <Import Include="System.Data" />
    <Import Include="System.Diagnostics" />
    <Import Include="System.Windows.Forms" />
  </ItemGroup>
  <!-- This section defines the user source files that are part of the
       project.

       Compile - Specifies a source file to compile.
       EmbeddedResource - Specifies a .resx file for embedded resources.
       None - Specifies a file that is not to be passed to the compiler (for instance,
              a text file or XML file).
       AppDesigner - Specifies the directory where the application properties files can
                     be found.
  -->
  <ItemGroup>
    <AppDesigner Include="My Project\" />
    <Compile Include="BufferWrapper.vb" />
    <Compile Include="ComponentWrapper.vb" />
    <Compile Include="main.vb" />
    <Compile Include="My Project\AssemblyInfo.vb">
      <SubType>Code</SubType>
    </Compile>
    <EmbeddedResource Include="My Project\Resources.resx">
      <Generator>VbMyResourcesResXFileCodeGenerator</Generator>
      <LastGenOutput>Resources.Designer.vb</LastGenOutput>
      <CustomToolNamespace>My.Resources</CustomToolNamespace>
    </EmbeddedResource>
    <Compile Include="My Project\Resources.Designer.vb">
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
      <DependentUpon>Resources.resx</DependentUpon>
      <SubType>Code</SubType>
    </Compile>
    <None Include="My Project\Settings.settings">
      <Generator>SettingsSingleFileGenerator</Generator>
      <LastGenOutput>Settings.Designer.vb</LastGenOutput>
    </None>
    <Compile Include="My Project\Settings.Designer.vb">
      <AutoGen>True</AutoGen>
      <DependentUpon>Settings.settings</DependentUpon>
      <SubType>Code</SubType>
    </Compile>
    <!-- Include the default configuration information and metadata files for the add-in.
         These files are copied to the build output directory when the project is
         built, and the path to the configuration file is passed to add-in on the command
         line when debugging.
    -->
  </ItemGroup>
  <!-- Include the build rules for a VB project.-->
  <Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
  <!-- This section defines VSTA properties that describe the host-changable project properties. -->
  <ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{A860303F-1F3F-4691-B57E-529FC101A107}">
        <ProjectProperties HostName="VSTAHostName" HostPackage="{C1B21C64-9E6F-4923-A89D-9F958503C1CE}" ApplicationType="usd" Language="vb" TemplatesPath="" />
        <Host Name="SSIS_ScriptComponent" />
        <ProjectClient>
          <HostIdentifier>SSIS_ScriptComponent</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
</Project>]]></arrayElement></arrayElements></property>
<property id="42" name="BinaryCode" dataType="System.String" state="cdata" isArray="true" description="Stores the binary representation of the component" typeConverter="NOTBROWSABLE" UITypeEditor="" containsID="false" expressionType="None"><arrayElements arrayElementCount="2"><arrayElement dataType="System.String"><![CDATA[\bin\scriptcomponent_9745e92176eb4102bf453925359014c3.vbproj.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
nwIAcG+MAAAKCRIIAnsPAAAEcrcCAHBvdQAACm8VAAAKKHYAAAoRCG+NAAAKEQQJb44AAAoRBAor
VHOPAAAKEwURBQhvkAAAChEFAnsPAAAEb3gAAAp0UQAAAW+RAAAKEQUKKylzkgAAChMGEQYIb5MA
AAoRBgJ7DwAABG94AAAKdFEAAAFvlAAAChEGCgJ7DgAABAZvlQAACiYqHgIoFwAACioeAigXAAAK
KhMwAgAtAAAAHAAAEX4ZAAAELSByWQMAcNANAAACKBQAAApvmwAACnOcAAAKCweAGQAABH4ZAAAE
KgAAABMwAQAGAAAAHQAAEX4aAAAEKgAAHgKAGgAABCpCcxcAAAooEQAACoAcAAAEKgAAAB4CKJ0A
AAoqGzABAD8AAAAeAAARfhsAAAQtMn4cAAAEKBEAAAoongAACn4bAAAELRxzMQAABoAbAAAE3hB+
HAAABCgRAAAKKJ8AAArcfhsAAAQqAAEMAAACAB0ADCkAEAAAAAFCU0pCAQABAAAAAAAMAAAAdjIu
MC41MDcyNwAAAAAFAGwAAABkDwAAI34AANAPAADUFAAAI1N0cmluZ3MAAAAApCQAAIwDAAAjVVMA
MCgAABAAAAAjR1VJRAAAAEAoAACwBgAAI0Jsb2IAAAAAAAAAAgAAAVcdogkJDwAAAPoBMwAWAAAB
AAAAZAAAAA4AAAAcAAAAMgAAABgAAACqAAAABgAAAD0AAAAeAAAABwAAAA0AAAAPAAAACQAAAAEA
AAAMAAAAAQAAAAMAAAADAAAAAgAAAAAAlRQBAAAAAAAKALABhgEKAOQBxgEGAPQB7QEKAEwChgEG
AMoC7QEKAEwDIgMOAJ4DhwMSAO0DzAMWAB4EzAMOALkEhwMaAGoFQgUOAHQGhwMeAM4GoQYeABMH
9gYeABMHKQcOAFIHhwMGAAwI+wcGADkIJAgiAKAIiwgiAO0I1wgiAAYJ1wgiADMJGwkGAF0JSgkK
AJwJdQkKALQJEwAiAOkJzAkGAB4K/gkGADwK7QEGAGAK7QEKAHkKEwAGAL0KngoGANEK7QESANgK
zAMGAOUK7QEmAEgLHwsmAHcLHwsmAKILHwsmAL8LHwsmAAIMHwsqAGMMRQwGAHEM7QEKAIYMdQku
AK0MogwmAOsMHwsmAAkNHwsGAEEN7QEmAFcNHwsmAJgNHwsKABkOdQkmADEOHwsmAG4OHwsKAIQO
dQkWAJ8OzAMmAMMOHwsGACIP7QEOAF4PhwMyAKsPiw8yAAIBiw8aABsQQgUWAKkQzAMGAL4Q7QEe
AOAQoQYeAO8QoQYeAAMRoQYGABMR7QEeAHERoQYeAI4R9gYeAJYR9gYeAJ4R9gYeALsR9gYeANER
9gYeALwH9gYeAAgS9gYeACwS9gYeAI4RKQceAJYRKQceAJ4RKQceALsRKQceANERKQceALwHKQce
AAgSKQceACwSKQcSADUSzAMOAH4SXBIOAJoSXBIOALISXBIiAMYS1wgGAO0S2xIGABQTAxMGACcT
SgkGAJAT/gkGALAT/gkGAM4T2xIGAOsTngoGAPkT2xIGABQU2xIGAC8U2xIGAEgU2xIGAGEU2xIG
AH4U2xIAAAAAAQAAAAAAAQABAAAAAAApADcABQABAAEAAAAAAHIANwAJAAEAAgAAARAAfQA3AA0A
AQADAAUBAACHAAAADQAFAAgABQEAAJUAAAANAAUADwABAAAAsAC8AB0ABgARAAEAAAD0ALwAKQAG
ABYAAQAAAAIBvAANAAgAGgABAAAADgG8AA0ACQAcAAEAAAAYAbwAIAAKAB0AAwAAACMBAAANABMA
KwAAAAAAKgE2AQ0AGQAsAAABEAB7AbwATQAbADAAMQAPAiAAMQA4Ai0AMQBaAjoAMQB/AkcAIQBb
A5AABgACAccABgAOAcsAAQAPBdwAAQAPBdwAAQBkBgwBAQCDBg8BAQDoBhMBAQAeBxcBAQBHBxsB
AQBdBx8BAQBrByMBAQB2BycBAQCBBycBVoCfBwwBVoCrBwwBVoC8BwwBVoDNBwwBVoDfBwwBVoDt
BwwBEQAcCPABEQBFCPQBEQC4CBICEQDACBYCCCEAAAAABhjAARMAAQAQIQAAAAAGGMABEwABABgh
AAAAABEY+wEXAAEARCEAAAAAEwgCAhsAAQBcIQAAAAATCCgCKAABAHQhAAAAABMIUQI1AAEAjCEA
AAAAEwhvAkIAAQCkIQAAAABGArUCYwABAMAhAAAAAEYCvgJoAAIA1CEAAAAAgwDPAmwAAgDsIQAA
AABGAtcCcQACAAAiAAAAABEA4AJ4AAIAHCIAAAAAAQD+AoAAAwA4IgAAAAAGGMABEwAEAEAiAAAA
AAMIEgOLAAQAdCIAAAAABhjAARMABACIIgAAAAAGGMABrwAEAJgiAAAAAEYKTwS5AAgArCIAAAAA
RgpmBLkACADAIgAAAACGAH4EvgAIANgiAAAAAIYAhgS+AAgA8CIAAAAABhjAARMACAAQIwAAAABG
As0EzwAIAEAjAAAAAEYD4gTWAAoAVCMAAAAARgP1BNYACwBYIwAAAAAGGMAB4AAMAGgjAAAAAAYI
gwXmAA0AlCMAAAAABhjAAeAADQCkIwAAAAAGGMABEwAOALwjAAAAAEYC9QTWAA4AWCQAAAAARgKj
BRMADwAcJgAAAABGAq4FEwAPAEwmAAAAAAYAugXwAA8A+CYAAAAARgLOBRMAEACoKAAAAAAGCIMF
cQAQAMAoAAAAAAYI4wX2ABAAzCgAAAAAAQj7BbkAEQDsKAAAAAABABEG9gARABgpAAAAAAEAJAb7
ABIA5CkAAAAAAQBDBgYBFQD8KgAAAAABAFAGBgEWAOwrAAAAAAEAWgYGARcA3CwAAAAABhjAARMA
GADkLAAAAAADGMABEwAYAOwsAAAAABYIUQj4ARgAKC0AAAAAFghlCP0BGAA8LQAAAAAWCHEIAgIY
AEQtAAAAABEY+wEXABkAWC0AAAAABhjAARMAGQBgLQAAAAAWCM0IGQIZAAAAAQC8AgAAAQD1AgAA
AQD1AgAAAQAtBAAAAgA3BAAAAwBABAAABABIBAAAAQDaBAAAAgBIBAAAAQBIBAAAAQALBQAAAQAt
BAAAAQAtBAAAAQALBQAAAQDDBQAAAQD1BQAAAQAcBgAAAQAvBgAAAgA2BgAAAwA8BgAAAQAvBgAA
AQAvBgAAAQAvBgAAAQB9CAkAwAETAKEAwAEjArEAwAEyAhEAwAETALkAwAETACQAwAETACwAwAET
ADQAwAETADwAwAETACQAEgOLACwAEgOLADQAEgOLADwAEgOLAMEAwAETAMkAwAETANEAwAH2ANkA
LQrLAhkAtQJjABkAvgJoACkATgrYAhkA1wJxAOkAagroAhkAwAETAPEAwAH4AkQAWwOQAEwAzQiL
AEwAlAp1A0wAwAETAPkAwAGCAzkAwAGvAAkBfgS+AAkBhgS+ABEBwAGCA1EAwAETAEEAYQuSAxkB
jguYAyEBrwueAykBuAtoABkB4gulAzEBrwurAzkBGwzmADkAewy3A1EBkgy8A0EBtQzDA1kBwAxx
AFEBzQwXAEkB3wxxAEEAowUTAFkAHA3SA2EALg0TAGEANg3XA0kBwAH2AGEARw3cAykBdA3iA3kB
jg1oAHkBrwvoAykBwA3vA2kB5Q1oAIEBAg71A2EBEA5xAIkBIw78A2EBUQ4DBJEBrwsJBJkBzQgQ
BKEB1wIUBIEAkA4ZBFEAsQ4fBKkB2A4lBCkBewxoAGkB6g5oALEB+A4rBEEArgUTAGEADg8TAAEB
FA9CBLkBwAH2ACkBNw++ADkBRg/2AFEAzgUTACEBjg1oAFEAvQ9SBNEBrwtYBMkBHA3SA2EA0w9f
BIEB5w+CA3kB8g8TAIEB8g8TAIEB/A9nBMEBEA5xAGEBABD2AMEBCRBoAGEBJBBtBMEBMRBoAGEB
PBB0BMEBRxBoAGEBVRB0BMEBYxBoAGEBbRB0BGEBdxB0BJEB/A95BJkBABD2AMEBhBBxAJkBlAp/
BAEBkhAMARkBmBCoBEkAohCzBEkArwvXA0kAtBC4BOkBxhC9BIEAzhDCBPkBwAETAPEBwAETAPEB
lAp0BPkBGBHRBPkBIRH2AAECwAETAAECMRH2AIEAQRHXBAkCwAH2AAECUxHcBIEAWhEQBGkAhhHj
BCkCwAETACkC6BH2ACkC8hF0BCECwAETACECABD2ACECUxHcBCkC/RH+BDECwAETADEC8hF0BDEC
FxIFBTkCwAETADkC8hF0BDkCFxIFBXEAhhEMBWkCwAETAGkC6BH2AGkC8hF0BGECwAETAGECABD2
AGECUxHcBGkC/REvBXECwAETAHEC8hF0BHECFxI2BXkCwAETAHkC8hF0BHkCFxI2BXkAhhE9BZkC
wAETAKECwAH2AKkCwAETALECwAH2ALkCwAH2ACkA9hKyBYkAwAG4BZkAwAETAMkCHBPVBckCIhPV
BdECwAETANkCwAF0BOECwAETAOkCwAH2APECwAH2APkCwAH2AAEDwAH2AAkDwAH2ABEDwAH2ABkD
wAH2ACEDwAH2AA4ATAAuAQ4AUABFAQ4AVABmAQ4AWACPAQ4AXAC6AQ4AYADVASkAgwCtAi4AKwWH
Ay4AQwWhBi4ASwWHAy4A6wCHAy4AMwVEBi4AOwVkBi4ACwE+Bi4AUwVkBi4ACwXfBS4AEwXoBS4A
GwUHBi4AIwUUBkAAEwApAkAAKwBQAkMAGwA4AkMAEwApAkkAgwCFAmMAGwA4AmMAEwApAmkAgwC+
AoAAKwBQAoMAewBQAoMAGwA4AoMAcwBQAokAgwCZAqAAKwBQAqMAwwAAA6MAEwApAsAAKwBQAsMA
EwApAsMA6wCHA+AAKwBQAuMACwGHAwABEwApAgABKwBQAgMBCwGHAyABEwApAiABKwBQAikB0wSF
BSkBywRuBUABKwBQAkABEwApAmABKwBQAmABEwApAmMBwwRQAmMBCwGHA2MBswRQAmMBuwRgBWkB
EwDMBYABKwBQAokBEwDMBaABKwBQAqkBAwVQAsABKwBQAsABEwApAuABKwBQAgACEwApAgACKwBQ
AkADCwGHA4ADCwGHA3ECdgJ7AoAC0ALUAt8C5ALzAvMCewONA40D0ALQArIDyQMxBEcEhATkAqEE
0ALIBOwEFQVGBcAFxwXaBQQAAQAGAAUABwAGAAkACAALAAkADQALAA4ADQAAAOQBTwAAAJ0CVAAA
AEwCWQAAAKkCXgAAAGUDmAAAAJIEwgAAAKUEwgAAAJUF6wAAAJUFKgEAAI0HwgAAAAwICAIAAIMI
DQIAAH0IHgICAAQAAwACAAUABQACAAYABwACAAcACQACAA8ACwACABIADQACABMADwACABsAEQAC
ACMAEwABACQAEwACACUAFQACAC0AFwACAC4AGQABAC8AGQACADIAGwB1AHUAiABVAlwCYwJqAmID
aQMEgAAAAQAAAAAAAAAAAAAAAAC8AAAAAgAAAAAAAAAAAAAAAQAKAAAAAAAIAAAAAAAAAAAAAAAK
ABMAAAAAAAEAAAAAAAAAAAAAAJ0AcQMAAAAACgAAAAAAAAAAAAAApgCvAwAAAAAKAAAAAAAAAAAA
AACmAP0DAAAAAAoAAAAAAAAAAAAAAKYAHwUAAAAAAQAAAAAAAAAAAAAAnQCQBgAAAAACAAAAAAAA
AAAAAAABAO0BAAAAAAoAAAAAAAAAAAAAAKYA+woAAAAAAgAAAAAAAAAAAAAACgAxDAAAAAACAAAA
AAAAAAAAAAABAKIMAAAAAAoAAAAAAAAAAAAAAKYAbA8AAAAAAAAAAAEAAABEEwAABQAEAAYABAAM
AAsAAAAQAAwA8wIAABAAGQDzAgAAAAAbAPMCLQDuAi0AcAMAAAAAADxNb2R1bGU+AG1zY29ybGli
AE1pY3Jvc29mdC5WaXN1YWxCYXNpYwBNeUFwcGxpY2F0aW9uAFNjcmlwdENvbXBvbmVudF85NzQ1
ZTkyMTc2ZWI0MTAyYmY0NTM5MjUzNTkwMTRjMy52YnByb2ouTXkATXlDb21wdXRlcgBNeVByb2pl
Y3QATXlXZWJTZXJ2aWNlcwBUaHJlYWRTYWZlT2JqZWN0UHJvdmlkZXJgMQBJbnB1dEJ1ZmZlcgBT
Y3JpcHRDb21wb25lbnRfOTc0NWU5MjE3NmViNDEwMmJmNDUzOTI1MzU5MDE0YzMudmJwcm9qAFVz
ZXJDb21wb25lbnQAQ29ubmVjdGlvbnMAVmFyaWFibGVzAFNjcmlwdE1haW4AQ29uc3RzAE15UmVz
b3VyY2VzAFNjcmlwdENvbXBvbmVudF85NzQ1ZTkyMTc2ZWI0MTAyYmY0NTM5MjUzNTkwMTRjMy52
YnByb2ouTXkuUmVzb3VyY2VzAE15U2V0dGluZ3MATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkFwcGxp
Y2F0aW9uU2VydmljZXMAQXBwbGljYXRpb25CYXNlAC5jdG9yAE1pY3Jvc29mdC5WaXN1YWxCYXNp
Yy5EZXZpY2VzAENvbXB1dGVyAFN5c3RlbQBPYmplY3QALmNjdG9yAGdldF9Db21wdXRlcgBtX0Nv
bXB1dGVyT2JqZWN0UHJvdmlkZXIAZ2V0X0FwcGxpY2F0aW9uAG1fQXBwT2JqZWN0UHJvdmlkZXIA
VXNlcgBnZXRfVXNlcgBtX1VzZXJPYmplY3RQcm92aWRlcgBnZXRfV2ViU2VydmljZXMAbV9NeVdl
YlNlcnZpY2VzT2JqZWN0UHJvdmlkZXIAQXBwbGljYXRpb24AV2ViU2VydmljZXMARXF1YWxzAG8A
R2V0SGFzaENvZGUAVHlwZQBHZXRUeXBlAFRvU3RyaW5nAENyZWF0ZV9fSW5zdGFuY2VfXwBUAGlu
c3RhbmNlAERpc3Bvc2VfX0luc3RhbmNlX18AZ2V0X0dldEluc3RhbmNlAE1pY3Jvc29mdC5WaXN1
YWxCYXNpYy5NeVNlcnZpY2VzLkludGVybmFsAENvbnRleHRWYWx1ZWAxAG1fQ29udGV4dABHZXRJ
bnN0YW5jZQBDb3p5Um9jLlNTSVNQbHVzLjIwMDgAQ296eVJvYy5TcWxTZXJ2ZXIuU1NJUwBTY3Jp
cHRCdWZmZXJQbHVzAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuVHhTY3JpcHQATWljcm9zb2Z0LlNxbFNl
cnZlci5EdHMuUGlwZWxpbmUAU2NyaXB0Q29tcG9uZW50AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuUGlw
ZWxpbmVIb3N0AFBpcGVsaW5lQnVmZmVyAENvbXBvbmVudABPYmplY3RJRABJc0lucHV0AEJ1ZmZl
cgBnZXRfU3RhdGljSW5wdXRDb2x1bW5zAGdldF9TdGF0aWNPdXRwdXRDb2x1bW5zAE5leHRSb3cA
RW5kT2ZSb3dzZXQAU3RhdGljSW5wdXRDb2x1bW5zAFN0YXRpY091dHB1dENvbHVtbnMAU2NyaXB0
Q29tcG9uZW50UGx1cwBQcm9jZXNzSW5wdXQASW5wdXRJRABJbnB1dF9Qcm9jZXNzSW5wdXQASW5w
dXRfUHJvY2Vzc0lucHV0Um93AFJvdwBQYXJlbnRDb21wb25lbnQATWljcm9zb2Z0LlNxbFNlcnZl
ci5EVFNSdW50aW1lV3JhcABNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5SdW50aW1lLldyYXBwZXIA
SURUU0Nvbm5lY3Rpb25NYW5hZ2VyMTAwAGdldF9Dcm1Db25uZWN0aW9uAENybUNvbm5lY3Rpb24A
UHJlRXhlY3V0ZQBQb3N0RXhlY3V0ZQBWYWxpZGF0ZQBlcnJNZXNzYWdlAFJlaW5pdGlhbGl6ZU1l
dGFEYXRhAHNldF9Dcm1Db25uZWN0aW9uAHZhbHVlAGdldF9Dcm1Db25uZWN0aW9uVHlwZQBGaXJl
RXJyb3JfAG1lc3NhZ2UAR2V0VmFsdWVzXwBidWZmZXIAc3RhdGUAc3RhdHVzAFByb2Nlc3MyMDEx
XwBQcm9jZXNzNF8AUHJvY2VzczNfAG1fY3JtQ29ubmVjdGlvbgBJQ3JtQ29ubmVjdGlvbgBtX2Nv
bm5lY3Rpb24AQ296eVJvYy5EeW5hbWljcwBDb3p5Um9jLkR5bmFtaWNzLkNybTIwMTEuT3JnYW5p
emF0aW9uU2VydmljZQBPcmdhbml6YXRpb25TZXJ2aWNlQ2xpZW50AG1fc2VydmljZTIwMTEAQ296
eVJvYy5EeW5hbWljcy5Dcm0uU2VydmljZQBDcm1TZXJ2aWNlAG1fc2VydmljZTQAQ296eVJvYy5E
eW5hbWljcy5Dcm0zLlNlcnZpY2UAbV9zZXJ2aWNlMwBJQ3JtRW50aXR5AG1fY2xvc2VFbnRpdHkA
bV9pbnB1dElkeABtX3N0YXRlSWR4AG1fc3RhdHVzSWR4AENybUNvbm5lY3Rpb25UeXBlAE9wcG9y
dHVuaXR5AE9wcG9ydHVuaXR5Q2xvc2UAT3Bwb3J0dW5pdHlTdGF0ZQBPcHBvcnR1bml0eVN0YXR1
cwBSZWZlcmVuY2VUeXBlAE9wcG9ydHVuaXR5SWQAU3lzdGVtLlJlc291cmNlcwBSZXNvdXJjZU1h
bmFnZXIAX3Jlc01ncgBTeXN0ZW0uR2xvYmFsaXphdGlvbgBDdWx0dXJlSW5mbwBfcmVzQ3VsdHVy
ZQBnZXRfUmVzb3VyY2VNYW5hZ2VyAGdldF9DdWx0dXJlAHNldF9DdWx0dXJlAFZhbHVlAEN1bHR1
cmUAU3lzdGVtLkNvbmZpZ3VyYXRpb24AQXBwbGljYXRpb25TZXR0aW5nc0Jhc2UAbV9WYWx1ZQBt
X1N5bmNPYmplY3QAZ2V0X1ZhbHVlAFN5c3RlbS5Db21wb25lbnRNb2RlbABFZGl0b3JCcm93c2Fi
bGVBdHRyaWJ1dGUARWRpdG9yQnJvd3NhYmxlU3RhdGUAU3lzdGVtLkNvZGVEb20uQ29tcGlsZXIA
R2VuZXJhdGVkQ29kZUF0dHJpYnV0ZQBTeXN0ZW0uRGlhZ25vc3RpY3MARGVidWdnZXJIaWRkZW5B
dHRyaWJ1dGUATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkNvbXBpbGVyU2VydmljZXMAU3RhbmRhcmRN
b2R1bGVBdHRyaWJ1dGUASGlkZU1vZHVsZU5hbWVBdHRyaWJ1dGUAU3lzdGVtLkNvbXBvbmVudE1v
ZGVsLkRlc2lnbgBIZWxwS2V5d29yZEF0dHJpYnV0ZQBTeXN0ZW0uUnVudGltZS5Db21waWxlclNl
cnZpY2VzAFJ1bnRpbWVIZWxwZXJzAEdldE9iamVjdFZhbHVlAFJ1bnRpbWVUeXBlSGFuZGxlAEdl
dFR5cGVGcm9tSGFuZGxlAEFjdGl2YXRvcgBDcmVhdGVJbnN0YW5jZQBNeUdyb3VwQ29sbGVjdGlv
bkF0dHJpYnV0ZQBzZXRfVmFsdWUAU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzAENvbVZp
c2libGVBdHRyaWJ1dGUAU3RyaW5nAFNjcmlwdEJ1ZmZlcgBDTFNDb21wbGlhbnRBdHRyaWJ1dGUA
TWljcm9zb2Z0LlNxbFNlcnZlci5EVFNQaXBlbGluZVdyYXAATWljcm9zb2Z0LlNxbFNlcnZlci5E
dHMuUGlwZWxpbmUuV3JhcHBlcgBJRFRTQ29tcG9uZW50TWV0YURhdGExMDAAZ2V0X0NvbXBvbmVu
dE1ldGFEYXRhAElEVFNJbnB1dENvbGxlY3Rpb24xMDAAZ2V0X0lucHV0Q29sbGVjdGlvbgBJRFRT
SW5wdXQxMDAAZ2V0X0l0ZW0AZ2V0X0lEAElEVFNSdW50aW1lQ29ubmVjdGlvbkNvbGxlY3Rpb24x
MDAAZ2V0X1J1bnRpbWVDb25uZWN0aW9uQ29sbGVjdGlvbgBJRFRTUnVudGltZUNvbm5lY3Rpb24x
MDAAZ2V0X0Nvbm5lY3Rpb25NYW5hZ2VyAFN5c3RlbS5XZWIuU2VydmljZXMAU3lzdGVtLldlYi5T
ZXJ2aWNlcy5Qcm90b2NvbHMAU29hcEV4Y2VwdGlvbgBFeGNlcHRpb24AZ2V0X0J1ZmZlcgBQcm9q
ZWN0RGF0YQBTZXRQcm9qZWN0RXJyb3IAU3lzdGVtLlhtbABYbWxOb2RlAGdldF9EZXRhaWwAZ2V0
X0lubmVyWG1sAENsZWFyUHJvamVjdEVycm9yAGdldF9NZXNzYWdlAElEVFNFeHRlcm5hbE1ldGFk
YXRhQ29sdW1uMTAwAElEVFNJbnB1dENvbHVtbjEwMABBY3F1aXJlQ29ubmVjdGlvbgBDb25uZWN0
AEdldFNlcnZpY2UASW50MzIAQ29uc3RydWN0RW50aXR5AElEVFNJbnB1dENvbHVtbkNvbGxlY3Rp
b24xMDAAZ2V0X0lucHV0Q29sdW1uQ29sbGVjdGlvbgBnZXRfQ291bnQASURUU0V4dGVybmFsTWV0
YWRhdGFDb2x1bW5Db2xsZWN0aW9uMTAwAGdldF9FeHRlcm5hbE1ldGFkYXRhQ29sdW1uQ29sbGVj
dGlvbgBnZXRfRXh0ZXJuYWxNZXRhZGF0YUNvbHVtbklEAEdldE9iamVjdEJ5SUQAZ2V0X05hbWUA
T3BlcmF0b3JzAENvbXBhcmVTdHJpbmcASURUU0N1c3RvbVByb3BlcnR5Q29sbGVjdGlvbjEwMABn
ZXRfQ3VzdG9tUHJvcGVydHlDb2xsZWN0aW9uAElEVFNDdXN0b21Qcm9wZXJ0eTEwMABDb252ZXJz
aW9ucwBTZXR1cEF0dHJpYnV0ZQBQaXBlbGluZUNvbXBvbmVudABnZXRfSG9zdENvbXBvbmVudABJ
RFRTQnVmZmVyTWFuYWdlcjEwMABnZXRfQnVmZmVyTWFuYWdlcgBnZXRfTGluZWFnZUlEAEZpbmRD
b2x1bW5CeUxpbmVhZ2VJRABDbG9zZQBJc051bGxPckVtcHR5AEFwcGxpY2F0aW9uRXhjZXB0aW9u
AGdldF9Jc0F0dGFjaGVkAHNldF9Db25uZWN0aW9uTWFuYWdlcklEAElDcm1BdHRyaWJ1dGUATWlj
cm9zb2Z0LlNxbFNlcnZlci5NYW5hZ2VkRFRTAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlJ1bnRp
bWUAQ29ubmVjdGlvbk1hbmFnZXIAZ2V0X0Rlc2lnbkNvbm5lY3Rpb25zAEdldEVudGl0eUF0dHJp
YnV0ZXMAc2V0X0lzVXNlZABSZW1vdmVBbGwATmV3AHNldF9OYW1lAGdldF9BdHRyaWJ1dGVUeXBl
AERhdGFUeXBlAHNldF9EYXRhVHlwZQBnZXRfTGVuZ3RoAHNldF9MZW5ndGgAZ2V0X1ByZWNpc2lv
bgBzZXRfUHJlY2lzaW9uAGdldF9TY2FsZQBzZXRfU2NhbGUAc2V0X0NvZGVQYWdlAGdldF9SZWZl
cmVuY2UARW1wdHkARmlyZUVycm9yAElzTnVsbABCbG9iQ29sdW1uAEdldFN0cmluZwBDb252ZXJ0
AFRvSW50MzIAU2V0QXR0cmlidXRlVmFsdWUAT3B0aW9uU2V0VmFsdWUAT3JnYW5pemF0aW9uUmVx
dWVzdABFbnRpdHlSZWZlcmVuY2UAR3VpZABzZXRfSXRlbQBzZXRfUmVxdWVzdE5hbWUAc2V0X0xv
Z2ljYWxOYW1lAEdldEF0dHJpYnV0ZVZhbHVlAHNldF9JZABDb25zdHJ1Y3REeW5hbWljRW50aXR5
AE9yZ2FuaXphdGlvblJlc3BvbnNlAEV4ZWN1dGUAUmVxdWVzdABNb25pa2VyAFNldFN0YXRlRHlu
YW1pY0VudGl0eVJlcXVlc3QAV2luT3Bwb3J0dW5pdHlSZXF1ZXN0AExvc2VPcHBvcnR1bml0eVJl
cXVlc3QAc2V0X1N0YXRlAHNldF9TdGF0dXMAc2V0X0VudGl0eQBCdXNpbmVzc0VudGl0eQBzZXRf
T3Bwb3J0dW5pdHlDbG9zZQBSZXNwb25zZQBTU0lTU2NyaXB0Q29tcG9uZW50RW50cnlQb2ludEF0
dHJpYnV0ZQBDb3p5Um9jLlNxbFNlcnZlci5TU0lTLkF0dHJpYnV0ZXMAVmFsaWRhdGVQcm9wZXJ0
aWVzQXR0cmlidXRlAENvbHVtbk1hcHBpbmdzQXR0cmlidXRlAENvbm5lY3Rpb25BdHRyaWJ1dGUA
RGVzY3JpcHRpb25BdHRyaWJ1dGUAU3lzdGVtLlJlZmxlY3Rpb24AQXNzZW1ibHkAZ2V0X0Fzc2Vt
Ymx5AFN5c3RlbS5UaHJlYWRpbmcATW9uaXRvcgBFbnRlcgBFeGl0AERlYnVnZ2VyTm9uVXNlckNv
ZGVBdHRyaWJ1dGUAU2NyaXB0Q29tcG9uZW50Xzk3NDVlOTIxNzZlYjQxMDJiZjQ1MzkyNTM1OTAx
NGMzLnZicHJvai5SZXNvdXJjZXMucmVzb3VyY2VzAENvbXBpbGF0aW9uUmVsYXhhdGlvbnNBdHRy
aWJ1dGUAUnVudGltZUNvbXBhdGliaWxpdHlBdHRyaWJ1dGUAQXNzZW1ibHlGaWxlVmVyc2lvbkF0
dHJpYnV0ZQBHdWlkQXR0cmlidXRlAEFzc2VtYmx5VHJhZGVtYXJrQXR0cmlidXRlAEFzc2VtYmx5
Q29weXJpZ2h0QXR0cmlidXRlAEFzc2VtYmx5UHJvZHVjdEF0dHJpYnV0ZQBBc3NlbWJseUNvbXBh
bnlBdHRyaWJ1dGUAQXNzZW1ibHlEZXNjcmlwdGlvbkF0dHJpYnV0ZQBBc3NlbWJseVRpdGxlQXR0
cmlidXRlAFNjcmlwdENvbXBvbmVudF85NzQ1ZTkyMTc2ZWI0MTAyYmY0NTM5MjUzNTkwMTRjMy52
YnByb2ouZGxsAAAAAAALSQBuAHAAdQB0AAAbQwByAG0AQwBvAG4AbgBlAGMAdABpAG8AbgAAM1UA
bgBoAGEAbgBkAGwAZQBkACAAcwBlAHIAdgBpAGMAZQAgAG8AYgBqAGUAYwB0AC4AACFvAHAAcABv
AHIAdAB1AG4AaQB0AHkAYwBsAG8AcwBlAAApbwBwAHAAbwByAHQAdQBuAGkAdAB5AHMAdABhAHQA
ZQBjAG8AZABlAAArbwBwAHAAbwByAHQAdQBuAGkAdAB5AHMAdABhAHQAdQBzAGMAbwBkAGUAABtS
AGUAZgBlAHIAZQBuAGMAZQBUAHkAcABlAABBbwBwAHAAbwByAHQAdQBuAGkAdAB5AHMAdABhAHQA
ZQBjAG8AZABlACAAbgBvAHQAIABtAGEAcABwAGUAZAAuAAA/UwBlAGwAZQBjAHQAIABEAHkAbgBh
AG0AaQBjAHMAIABDAFIATQAgAGMAbwBuAG4AZQBjAHQAaQBvAG4ALgAAJU0AYQBwACAAaQBuAHAA
dQB0ACAAYwBvAGwAdQBtAG4AcwAuAAAVTgBvACAAaQBuAHAAdQB0AHMALgAAMUMAbwBuAG4AZQBj
AHQAaQBvAG4AIABuAG8AdAAgAHMAZQBsAGUAYwB0AGUAZAAuAAAZRABZAE4AQQBNAEkAQwBTAC0A
QwBSAE0AAT1EAHkAbgBhAG0AaQBjAHMAIABDAFIATQAgAE8AcABwAG8AcgB0AHUAbgBpAHQAeQAg
AFMAdABhAHQAZQAAOVUAbgBoAGEAbgBkAGwAZQBkACAAbwBwAHAAbwByAHQAdQBuAGkAdAB5ACAA
cwB0AGEAdABlAC4AAA1TAHQAYQB0AHUAcwAAEVMAZQB0AFMAdABhAHQAZQAAC1MAdABhAHQAZQAA
F28AcABwAG8AcgB0AHUAbgBpAHQAeQAAG28AcABwAG8AcgB0AHUAbgBpAHQAeQBpAGQAABtFAG4A
dABpAHQAeQBNAG8AbgBpAGsAZQByAAAdVwBpAG4ATwBwAHAAbwByAHQAdQBuAGkAdAB5AAAhTwBw
AHAAbwByAHQAdQBuAGkAdAB5AEMAbABvAHMAZQAAH0wAbwBzAGUATwBwAHAAbwByAHQAdQBuAGkA
dAB5AAAJTwBwAGUAbgAAMU0AeQAuAFIAZQBzAG8AdQByAGMAZQBzAC4ATQB5AFIAZQBzAG8AdQBy
AGMAZQBzAAAAZzOaqW3tM0OInqNsTVLviAAIt3pcVhk04IkIsD9ffxHVCjoDIAABAwAAAQQAABIM
BwYVEhgBEgwEAAASCAcGFRIYARIIBAAAEhEHBhUSGAESEQQAABIUBwYVEhgBEhQECAASDAQIABII
BAgAEhEECAASFAQgAQIcAyAACAQgABIVAyAADgIeAAcQAQEeAB4ABzABAQEQHgACEwAEIAATAAcG
FRIZARMABCgAEwAIFs9JC7gMNOoIiYRdzYCAzJEJIAQBEiEIAhIlBCAAHQ4DIAACBCgAHQ4DBhIk
AwYSKAYgAgEIEiUFIAEBEhwDBhIhBSABARIhBCAAEi0EKAASLQUgAQIQDgQgAQEOCiADARASJRAI
EAgFIAEBEiUCBg4DBhIxAwYSNQMGEjkDBhI9AwYSQQMGHQgCBggDKAAOFm8AcABwAG8AcgB0AHUA
bgBpAHQAeQAgbwBwAHAAbwByAHQAdQBuAGkAdAB5AGMAbABvAHMAZQAobwBwAHAAbwByAHQAdQBu
AGkAdAB5AHMAdABhAHQAZQBjAG8AZABlACpvAHAAcABvAHIAdAB1AG4AaQB0AHkAcwB0AGEAdAB1
AHMAYwBvAGQAZQAaUgBlAGYAZQByAGUAbgBjAGUAVAB5AHAAZQAabwBwAHAAbwByAHQAdQBuAGkA
dAB5AGkAZAADBhJFAwYSSQQAABJFBAAAEkkFAAEBEkkECAASRQQIABJJAwYSOAIGHAQAABI4BAgA
EjgFIAEBEVUIAQABAAAAAAAFIAIBDg4XAQAKTXlUZW1wbGF0ZQc4LjAuMC4wAAAEAQAAAAYVEhgB
EgwGFRIYARIIBhUSGAESEQYVEhgBEhQEBwESDAQHARIIBAcBEhEEBwESFBMBAA5NeS5BcHBsaWNh
dGlvbgAAEwEADk15LldlYlNlcnZpY2VzAAAQAQALTXkuQ29tcHV0ZXIAAAwBAAdNeS5Vc2VyAAAE
AAEcHAMHAQIDBwEIBgABEhURcQQHARIVAwcBDgUQAQAeAAQKAR4ABAcBHgAHIAQBDg4ODmEBADRT
eXN0ZW0uV2ViLlNlcnZpY2VzLlByb3RvY29scy5Tb2FwSHR0cENsaWVudFByb3RvY29sEkNyZWF0
ZV9fSW5zdGFuY2VfXxNEaXNwb3NlX19JbnN0YW5jZV9fAAAABhUSGAETAAYVEhkBEwAECgETAAUg
AQETAAYHAhMAEwAEIAEBAgUBAAAAAAQHAR0OBSAAEoCNBSAAEoCRBiABEoCVHAUgABKAmQYgARKA
nRwEBwESLQQgABIlBgABARKApQUgABKArQgHAhKAoRKApQQgARwcBCABHAgFIAESQQ4FIAASgL0G
IAESgLUcBSAAEoDBBiABEoCxCAYAAwgODgIFIAASgMkGIAESgM0cAyAAHAQAAQ4cBSACCA4OBSAA
EoDVBSAAEoDZBSACCAgIEAcICBKAlRwIEoCxEoC1DggEAAECDgoHBAICEoCVEoClBSAAEoDpBiAB
EoDlHAcgAR0SgOEOBSAAEoCxBiABARGA7QQgAQEIBSAAEoDNBCABARwcBwkdEoDhEjESgLESgJUS
gOUSgOESgM0IHRKA4QYHAh0OHQ4KIAYBCA4ODggQAgQgAQIIBCABDggEAAEIHAUgAgEIHAgHBggI
CAgcCAUgAgEOHAQgARwOBiABARGBBQggARKBCRKA/REHBxKA+RKA/QgIEoEBCBGBBQYgAQESgREG
IAEBEoElCCABEoEpEoENGQcJEoENCAgSgRESgRUSgRkSgR0RgSERgQUGIAEBEoExBiABARKBRQgg
ARKBSRKBLRkHCRKBLQgIEoExEoE1EoE5EoE9EYFBEYEFDQEACFZhbGlkYXRlAAAWAQARQ3JtQ29u
bmVjdGlvblR5cGUAACwBACdTZWxlY3QgRHluYW1pY3MgQ1JNIENvbm5lY3Rpb24gTWFuYWdlci4A
AAUgABKBYQcgAgEOEoFhBgcCEkUSRQQHARJJCAEAAgAAAAAABAABARwEBwESOAgBAAgAAAAAAB4B
AAEAVAIWV3JhcE5vbkV4Y2VwdGlvblRocm93cwEMAQAHMS4wLjAuMAAAKQEAJDhiYmQ0MDgyLWMy
MGMtNDY5NS1hYzFiLWViMTgxYzFkMDAxZQAABQEAAQAAHwEAGkNvcHlyaWdodCBAIE1pY3Jvc29m
dCAyMDEyAAA8AQA3U2NyaXB0Q29tcG9uZW50Xzk3NDVlOTIxNzZlYjQxMDJiZjQ1MzkyNTM1OTAx
NGMzLnZicHJvagAADgEACU1pY3Jvc29mdAAA1FwAAAAAAAAAAAAA7lwAAAAgAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAOBcAAAAAAAAAAAAAAAAX0NvckRsbE1haW4AbXNjb3JlZS5kbGwAAAAAAP8lACBA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwADAAAAKAAAgA4AAABIAACA
EAAAAGAAAIAAAAAAAAAAAAAAAAAAAAIAAgAAAHgAAIADAAAAkAAAgAAAAAAAAAAAAAAAAAAAAQAA
fwAAqAAAgAAAAAAAAAAAAAAAAAAAAQABAAAAwAAAgAAAAAAAAAAAAAAAAAAAAQAAAAAA2AAAAAAA
AAAAAAAAAAAAAAAAAQAAAAAA6AAAAAAAAAAAAAAAAAAAAAAAAQAAAAAA+AAAAAAAAAAAAAAAAAAA
AAAAAQAAAAAACAEAAIBlAADoAgAAAAAAAAAAAABoaAAAKAEAAAAAAAAAAAAAkGkAACIAAAAAAAAA
AAAAABhhAABoBAAAAAAAAAAAAABoBDQAAABWAFMAXwBWAEUAUgBTAEkATwBOAF8ASQBOAEYATwAA
AAAAvQTv/gAAAQAAAAEAAAAAAAAAAQAAAAAAPwAAAAAAAAAEAAAAAgAAAAAAAAAAAAAAAAAAAEQA
AAABAFYAYQByAEYAaQBsAGUASQBuAGYAbwAAAAAAJAAEAAAAVAByAGEAbgBzAGwAYQB0AGkAbwBu
AAAAAAAAALAEyAMAAAEAUwB0AHIAaQBuAGcARgBpAGwAZQBJAG4AZgBvAAAApAMAAAEAMAAwADAA
MAAwADQAYgAwAAAANAAKAAEAQwBvAG0AcABhAG4AeQBOAGEAbQBlAAAAAABNAGkAYwByAG8AcwBv
AGYAdAAAAJgAOAABAEYAaQBsAGUARABlAHMAYwByAGkAcAB0AGkAbwBuAAAAAABTAGMAcgBpAHAA
dABDAG8AbQBwAG8AbgBlAG4AdABfADkANwA0ADUAZQA5ADIAMQA3ADYAZQBiADQAMQAwADIAYgBm
ADQANQAzADkAMgA1ADMANQA5ADAAMQA0AGMAMwAuAHYAYgBwAHIAbwBqAAAAMAAIAAEARgBpAGwA
ZQBWAGUAcgBzAGkAbwBuAAAAAAAxAC4AMAAuADAALgAwAAAAmAA8AAEASQBuAHQAZQByAG4AYQBs
AE4AYQBtAGUAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfADkANwA0ADUAZQA5ADIA
MQA3ADYAZQBiADQAMQAwADIAYgBmADQANQAzADkAMgA1ADMANQA5ADAAMQA0AGMAMwAuAHYAYgBw
AHIAbwBqAC4AZABsAGwAAABcABsAAQBMAGUAZwBhAGwAQwBvAHAAeQByAGkAZwBoAHQAAABDAG8A
cAB5AHIAaQBnAGgAdAAgAEAAIABNAGkAYwByAG8AcwBvAGYAdAAgADIAMAAxADIAAAAAAKAAPAAB
AE8AcgBpAGcAaQBuAGEAbABGAGkAbABlAG4AYQBtAGUAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8A
bgBlAG4AdABfADkANwA0ADUAZQA5ADIAMQA3ADYAZQBiADQAMQAwADIAYgBmADQANQAzADkAMgA1
ADMANQA5ADAAMQA0AGMAMwAuAHYAYgBwAHIAbwBqAC4AZABsAGwAAACQADgAAQBQAHIAbwBkAHUA
YwB0AE4AYQBtAGUAAAAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8AOQA3ADQANQBl
ADkAMgAxADcANgBlAGIANAAxADAAMgBiAGYANAA1ADMAOQAyADUAMwA1ADkAMAAxADQAYwAzAC4A
dgBiAHAAcgBvAGoAAAA0AAgAAQBQAHIAbwBkAHUAYwB0AFYAZQByAHMAaQBvAG4AAAAxAC4AMAAu
ADAALgAwAAAAOAAIAAEAQQBzAHMAZQBtAGIAbAB5ACAAVgBlAHIAcwBpAG8AbgAAADEALgAwAC4A
MAAuADAAAAAoAAAAIAAAAEAAAAABAAQAAAAAAIACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAA
gAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAd3d3d3d3d3d3d3d3d3dwBEREREREREREREREREREcAT/////////////////9HAE////
//////////////RwBP/////////////////0cAT/////////////////9HAE////////////////
//RwBP/////////////////0cAT/////////////////9HAE//////////////////RwBP//////
///////////0cAT/////////////////9HAE//////////////////RwBP/////////////////0
cAT/////////////////9HAE//////////////////RwBP/////////////////0cAT/////////
////////9HAE//////////////////RwBP/////////////////0cASIiIiIiIiIiIiIiIiIhHAE
RERERERERERERERERERwBExMTExMTExMTE7Ozkl0cATMzMzMzMzMzMzMzMzMxAAARERERERERERE
REREREAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////
/////////////////8AAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAB
gAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAA8AAAAf/
//////////////8oAAAAEAAAACAAAAABAAQAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
gAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////
AAAAAAAAAAAAB3d3d3d3d3dERERERERER0////////hHT///////+EdP///////4R0////////hH
T///////+EdP///////4R0////////hHT///////+EdIiIiIiIiIR0zMzMzMzMxHxERERERERMAA
AAAAAAAAAAAAAAAAAAAA//8AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAABAAD//wAA//8AAAAAAQACACAgEAABAAQA6AIAAAIAEBAQAAEABAAoAQAAAwAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAADAAAAAA9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAA==]]></arrayElement></arrayElements></property>
<property id="49" name="UserComponentTypeName" dataType="System.String" state="default" isArray="false" description="" typeConverter="" UITypeEditor="" containsID="false" expressionType="None">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2008, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea</property>
<property id="673" name="VSTAProjectName" dataType="System.String" state="default" isArray="false" description="Specifies the name of the Microsoft Visual Studio Tools for Applications project. Project names must be unique within a package." typeConverter="NOTBROWSABLE" UITypeEditor="" containsID="false" expressionType="None">ScriptComponent_9745e92176eb4102bf453925359014c3</property>
<property id="674" name="ScriptLanguage" dataType="System.String" state="default" isArray="false" description="Specifies the programming language used by the script." typeConverter="Microsoft.SqlServer.VSTAHosting.ScriptingLanguages, Microsoft.SqlServer.VSTAScriptingLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" UITypeEditor="" containsID="false" expressionType="None">VisualBasic</property></properties>
<connections>
<connection id="63" name="CrmConnection" description="" connectionManagerID="{9cab3e7c-579f-4fad-9af8-fc4294e51641}" /></connections>
<inputs>
<input id="39" name="Input" description="" hasSideEffects="true" dangling="false" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed"><externalMetadataColumns isUsed="True" /></input>
</inputs>
</component>