<component id="37" name="Dynamics CRM Team Members" 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_78df5b73d2cd4966acb399b320668d2d.vbproj")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("Microsoft")> 
<Assembly: AssemblyProduct("ScriptComponent_78df5b73d2cd4966acb399b320668d2d.vbproj")> 
<Assembly: AssemblyCopyright("Copyright @ Microsoft 2014")> 
<Assembly: AssemblyTrademark("")> 
<Assembly: CLSCompliant(True)> 

<Assembly: ComVisible(False)> 

'The following GUID is for the ID of the typelib if this project is exposed to COM
<Assembly: Guid("005521a3-60fc-4de0-8ab4-9b94f9b99936")> 

' 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[\scriptcomponent_78df5b73d2cd4966acb399b320668d2d.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_78df5b73d2cd4966acb399b320668d2d.vbproj</RootNamespace>
    <AssemblyName>ScriptComponent_78df5b73d2cd4966acb399b320668d2d.vbproj</AssemblyName>
    <StartupObject>
    </StartupObject>
    <OptionExplicit>On</OptionExplicit>
    <OptionCompare>Binary</OptionCompare>
    <OptionStrict>Off</OptionStrict>
    <OptionInfer>On</OptionInfer>
    <ProjectGuid>{E7A3B73A-9670-4BD1-9226-268E27C30E8A}</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><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-2013 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.Web.Services.Protocols

Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
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


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


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub Input_ProcessInputRow(ByVal Row As InputBuffer)
        Try
            Dim teamId As Guid = New Guid(Row.Buffer(m_tiIndex).ToString())
            Dim memberId As Guid = New Guid(Row.Buffer(m_miIndex).ToString())

            If Not m_service2011 Is Nothing Then
                ' CRM 2011
                Dim req As New CRM2011.OrganizationRequest
                req.RequestName = m_requestName
                req("TeamId") = teamId
                req("MemberIds") = New Guid() {memberId}

                ' Execute action.
                Call m_service2011.Execute(req)
            ElseIf Not m_service4 Is Nothing Then
                ' CRM 4.0

                ' Execute action.
                Select Case Me.Action
                    Case ActionTypes.Add
                        Dim addReq As New CRM4.AddMembersTeamRequest
                        addReq.TeamId = teamId
                        addReq.MemberIds = New Guid() {memberId}
                        Call m_service4.Execute(addReq)

                    Case ActionTypes.Remove
                        Dim removeReq As New CRM4.RemoveMembersTeamRequest
                        removeReq.TeamId = teamId
                        removeReq.MemberIds = New Guid() {memberId}
                        Call m_service4.Execute(removeReq)

                    Case Else
                        Throw New ApplicationException("Unhandled action type.")
                End Select
            Else
                ' CRM 3.0

                ' Execute action.
                Select Case Me.Action
                    Case ActionTypes.Add
                        Dim addReq As New CRM3.AddMembersTeamRequest
                        addReq.TeamId = teamId
                        addReq.MemberIds = New Guid() {memberId}
                        Call m_service3.Execute(addReq)

                    Case ActionTypes.Remove
                        Dim removeReq As New CRM3.RemoveMembersTeamRequest
                        removeReq.TeamId = teamId
                        removeReq.MemberIds = New Guid() {memberId}
                        Call m_service3.Execute(removeReq)

                    Case Else
                        Throw New ApplicationException("Unhandled action type.")
                End Select
            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

        ' Setup request for CRM 2011.
        Select Case Me.Action
            Case ActionTypes.Add
                m_requestName = "AddMembersTeam"

            Case ActionTypes.Remove
                m_requestName = "RemoveMembersTeam"

            Case Else
                Throw New ApplicationException("Unhandled action type.")
        End Select

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

        ' Get input column indexes.
        inputCol = GetInputColumn_("TeamId")
        m_tiIndex = Me.HostComponent.BufferManager.FindColumnByLineageID( _
            input.Buffer, _
            inputCol.LineageID)

        inputCol = GetInputColumn_("MemberId")
        m_miIndex = Me.HostComponent.BufferManager.FindColumnByLineageID( _
            input.Buffer, _
            inputCol.LineageID)
    End Sub ' PreExecute


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

        Call m_connection.Close()
        m_tiIndex = -1
        m_miIndex = -1
    End Sub ' PostExecute


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

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

            Dim input As IDTSInput100 = Me.ComponentMetaData.InputCollection(0)
            If input.IsAttached AndAlso input.InputColumnCollection.Count < 2 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

            result = True
        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

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

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

        Dim column As IDTSExternalMetadataColumn100

        ' Setup team id column.
        column = input.ExternalMetadataColumnCollection.[New]()
        column.Name = "TeamId"
        column.DataType = DataType.DT_GUID

        ' Setup member id column.
        column = input.ExternalMetadataColumnCollection.[New]()
        column.Name = "MemberId"
        column.DataType = DataType.DT_GUID
    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


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select action.")> _
    <DefaultValue(ActionTypes.Add)> _
    Public Property Action() As ActionTypes
        Get
            Action = m_action
        End Get
        Set(ByVal value As ActionTypes)
            m_action = value
        End Set
    End Property    ' Action
#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 Team Members", _
            message, _
            String.Empty, _
            0, _
            cancel)
    End Sub ' FireError_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetInputColumn_(ByVal externalName As String) As IDTSInputColumn100
        Dim result As IDTSInputColumn100 = Nothing
        Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)
        Dim extColumn As IDTSExternalMetadataColumn100 = input.ExternalMetadataColumnCollection(externalName)

        ' Find input column for specified external column.
        For Each inputCol As IDTSInputColumn100 In input.InputColumnCollection
            If inputCol.ExternalMetadataColumnID = extColumn.ID Then
                ' Found input column.
                result = inputCol
                Exit For
            End If
        Next

        If result Is Nothing Then
            Throw New Exception("Input column not found.")
        End If

        GetInputColumn_ = result
    End Function    ' GetInputColumn_
#End Region ' Internals


#Region "Attributes"
    Enum ActionTypes
        Add
        Remove
    End Enum    ' ActionTypes

    Private m_crmConnection As String
    Private m_action As ActionTypes

    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_requestName As String
    Private m_tiIndex As Integer
    Private m_miIndex As Integer
#End Region ' Attributes

End Class   ' ScriptMain
]]></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_78df5b73d2cd4966acb399b320668d2d.vbproj.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
BgBoCVUJCgCnCYAJCgC/CRMAJgD0CdcJBgApCgkKBgBHCvIBBgBrCvIBCgCEChMABgDICqkKBgDc
CvIBEgDjCtEDBgDwCvIBHgAGC2MGHgA1C2MGHgBgC2MGHgB9C2MGHgDAC2MGBgDvC/IBIgD0CwIH
IgAIDFcHIgAeDFcHIgAIDIoHIgAeDIoHKgBpDEsMBgB3DPIBIgClDAIHIgDbDFcHIgDkDFcHBgDs
DPIBIgDbDIoHIgDkDIoHCgABDYAJLgAoDR0NBgCLDfIBFgCRDdEDHgC1DWMGHgAjDmMGHgB8DmMG
HgCaDmMGGgAJD0cFBgBCDy8PBgCOD/IBEgCiD9EDDgDrD8kPDgADEMkPJgAfEOIIJgA1EOIIDgBK
EMkPBgBwEF4QBgCXEIYQBgCqEFUJBgATEQkKBgAzEQkKBgBREV4QBgBuEakKBgB8EV4QBgCXEV4Q
BgCyEV4QBgDLEV4QBgDkEV4QBgABEl4QAAAAAAEAAAAAAAEAAQAAAAAAKQA3AAUAAQABAAAAAABy
ADcACQABAAIAAAEQAH0ANwANAAEAAwAFAQAAhwAAAA0ABQAIAAUBAACVAAAADQAFAA8AAQAAALAA
vAAdAAYAEQABAAAA9AC8ACkABgAWAAEAAAACAbwADQAIABoAAQAAAA4BvAANAAkAHAABAAAAGAG8
ACAACgAdAAIBAAAjAQAARQATACoAAAAAAC8BOwENABYAKgAAARAAgAG8AFEAGAAuADEAFAIgADEA
PQItADEAXwI6ADEAhAJHACEAYAOQAAYAAgHHAAYADgHLAAEAFAXcAAEAFAXcAAEAvAYMAQEAzAYP
AQEA5AYTAQEASQcXAQEAfwcbAQEAqAcfAQEAswcMAQEAwQcjAQEAywcjAQYG8wcjAVaA+wcPAVaA
/wcPAREAJwg5AREAUAg9AREAwwhbAREAywhfAQghAAAAAAYYxQETAAEAECEAAAAABhjFARMAAQAY
IQAAAAARGAACFwABAEQhAAAAABMIBwIbAAEAXCEAAAAAEwgtAigAAQB0IQAAAAATCFYCNQABAIwh
AAAAABMIdAJCAAEApCEAAAAARgK6AmMAAQDAIQAAAABGAsMCaAACANQhAAAAAIMA1AJsAAIA7CEA
AAAARgLcAnEAAgAAIgAAAAARAOUCeAACABwiAAAAAAEAAwOAAAMAOCIAAAAABhjFARMABABAIgAA
AAADCBcDiwAEAHQiAAAAAAYYxQETAAQAiCIAAAAABhjFAa8ABACYIgAAAABGClQEuQAIAKwiAAAA
AEYKawS5AAgAwCIAAAAAhgCDBL4ACADYIgAAAACGAIsEvgAIAPAiAAAAAAYYxQETAAgAECMAAAAA
RgLSBM8ACABAIwAAAABGA+cE1gAKAFQjAAAAAEYD+gTWAAsAWCMAAAAABhjFAeAADABoIwAAAAAG
CIgF5gANAJQjAAAAAAYYxQHgAA0ApCMAAAAABhjFARMADgCsIwAAAABGAvoE1gAOAAwmAAAAAEYC
qAUTAA8ATCcAAAAARgKzBRMADwBwJwAAAAAGAL8F8AAPABwoAAAAAEYC0wUTABAAxCgAAAAABgiI
BXEAEADcKAAAAAAGCOgF9gAQAOgoAAAAAAYIAAb7ABEAACkAAAAABggLBgABEQAMKQAAAAABCBYG
uQASACwpAAAAAAEALAb2ABIAWCkAAAAAAQCfBgYBEwAAKgAAAAADGMUBEwAUAAgqAAAAABYIXAhB
ARQARCoAAAAAFghwCEYBFABYKgAAAAAWCHwISwEUAGAqAAAAABEYAAIXABUAdCoAAAAABhjFARMA
FQB8KgAAAAAWCNgIYgEVAAAAAQDBAgAAAQD6AgAAAQD6AgAAAQAyBAAAAgA8BAAAAwBFBAAABABN
BAAAAQDfBAAAAgBNBAAAAQBNBAAAAQAQBQAAAQAyBAAAAQAyBAAAAQAQBQAAAQDIBQAAAQD6BQAA
AQD6BQAAAQA3BgAAAQCvBgAAAQCICAkAxQETAKkAxQFsAbkAxQF7AREAxQETAMEAxQETACQAxQET
ACwAxQETADQAxQETADwAxQETACQAFwOLACwAFwOLADQAFwOLADwAFwOLAMkAxQETANEAxQETANkA
xQH2AOEAOAoPAhkAugJjABkAwwJoACkAWQocAhkA3AJxAPEAdQosAhkAxQETAPkAxQE8AkQAYAOQ
AEwA2AiLAEwAnwq5AkwAxQETAAEBxQHGAjkAxQGvABEBgwS+ABEBiwS+ABkBxQHGAlEAxQETAEEA
HwvWAiEBTAvcAikBbQviAjEBdgtoACEBoAvpAjkBbQvvAkEB2QvmADkAgQz7AkkAbQsAA0kBxQH2
AFEBxQETAFEBjAz2AFEBnAwFA3EAugwLA1kBxQETAFkBwgwUA1kBzQwbA3kAugwjA2EBxQETAGEB
wgwUA2EBzQwbA6EBxQH2AGkBxQETAGkBwgwUA2kBzQwbA4EAugwsA3EBxQETAHEBwgwUA3EBzQwb
A7kBDQ01A3kBMA08A8EBOw1xALkBSA0XAIEBWg1xAEEAqAUTAFkAZg1oA2kAeA0TAGkAgA0AA4EB
xQH2AFEAow1tA9EByg1zAzEBgQxoAGEA3A1oANkB6g15A0EAswUTAGkAAA4TAAkBBg6KAzEBFA6+
ADEBQA6PA+EBWg5oAEEBZA72AFEA0wUTACkBWg5oADEBwg6gA/EB5w7GAuEB8g4TAPEB8g4TAPEB
/A6mA+kBAA/2AOkBEg+sAwkBHw8MASEBJQ/IA/EBbQvTA+EBTg/aAwECXA/gA2EAaA9oAOkBdgto
AAEChQ++AAkCmg8TABECxQETABkCxQETACECxQH2ACkCxQEEBDECxQH2ADkCxQH2ACkAeRBqBJEA
xQFwBKEAxQETAEkCnxCNBEkCpRCNBFECxQETAFkCxQEEBGECxQETAGkCxQH2AHECxQH2AHkCxQH2
AIECxQH2AIkCxQH2AJECxQH2AJkCxQH2AKECxQH2AAgAUAAvAQgAVAA0ASkAgwDJAS4A2wNZBS4A
0wMcBS4A6wMcBS4AywP8BC4AqwOgBC4A4wPLAi4AswO/BC4AowOXBC4AuwPMBC4A6wDLAi4AwwPL
Ai4ACwH2BEAAKwA0AUAAEwByAUMAEwByAUMAGwCBAUkAgwDnAWMAEwByAWMAGwCBAWkAgwDaAYAA
KwA0AYMAGwCBAYMAewA0AYMAcwA0AYkAgwD7AaAAKwA0AaMAwwBEAqMAEwByAcAAKwA0AcMA6wDL
AsMAEwByAeAAKwA0AeMACwHLAgABEwByAQABKwA0AQMBCwHLAiABEwByASABKwA0ASkBawMmBCkB
YwM9BEABEwByAUABKwA0AUkBYwMSBEkBWwMJBGABEwByAWABKwA0AWMBCwHLAmMBUwP2A2MBQwM0
AWMBSwM0AYABKwA0AYkBEwCEBKABKwA0AakBEwCEBMABKwA0AcABEwByAckBmwM0AeABKwA0AQAC
EwByAQACKwA0AUADCwHLAoADCwHLArUBugG/AcQBFAIYAiMCKAI3AjcCvwLRAtECFAIUAvYCQgN/
A5UDswMoArwDwQMUAuQDeAR/BJIEBAABAAYABQAHAAYACQAIAAsACQANAAwADgAOAAAA6QFPAAAA
ogJUAAAAUQJZAAAArgJeAAAAagOYAAAAlwTCAAAAqgTCAAAAmgXrAAAAmgUmAQAA1QcqAQAA3AfC
AAAAFwhRAQAAjghWAQAAiAhnAQIABAADAAIABQAFAAIABgAHAAIABwAJAAIADwALAAIAEgANAAIA
EwAPAAIAGwARAAIAIwATAAEAJAATAAIAJQAVAAEAJgAVAAIAJwAXAAIAKwAZAAIALAAbAAEALQAb
AAIAMAAdAHUAdQCIAJkBoAGnAa4BpgKtAgSAAAABAAAAAAAAAAAAAAAAALwAAAACAAAAAAAAAAAA
AAABAAoAAAAAAAgAAAAAAAAAAAAAAAoAEwAAAAAAAQAAAAAAAAAAAAAAnQB2AwAAAAAKAAAAAAAA
AAAAAACmALQDAAAAAAoAAAAAAAAAAAAAAKYAAgQAAAAACgAAAAAAAAAAAAAApgAkBQAAAAAKAAAA
AAAAAAAAAACmAD8GAAAAAAEAAAAAAAAAAAAAAJ0A8QYAAAAAAgAAAAAAAAAAAAAAAQDyAQAAAAAC
AAAAAAAAAAAAAAAKADcMAAAAAAIAAAAAAAAAAAAAAAEAHQ0AAAAAAAAAAAEAAADHEAAABQAEAAYA
BAAMAAsAAAAQAAwA+AIAABAAGQD4AgAAAAAbAPgCLQAyAi0AtAIAAAA8TW9kdWxlPgBtc2Nvcmxp
YgBNaWNyb3NvZnQuVmlzdWFsQmFzaWMATXlBcHBsaWNhdGlvbgBTY3JpcHRDb21wb25lbnRfNzhk
ZjViNzNkMmNkNDk2NmFjYjM5OWIzMjA2NjhkMmQudmJwcm9qLk15AE15Q29tcHV0ZXIATXlQcm9q
ZWN0AE15V2ViU2VydmljZXMAVGhyZWFkU2FmZU9iamVjdFByb3ZpZGVyYDEASW5wdXRCdWZmZXIA
U2NyaXB0Q29tcG9uZW50Xzc4ZGY1YjczZDJjZDQ5NjZhY2IzOTliMzIwNjY4ZDJkLnZicHJvagBV
c2VyQ29tcG9uZW50AENvbm5lY3Rpb25zAFZhcmlhYmxlcwBTY3JpcHRNYWluAEFjdGlvblR5cGVz
AE15UmVzb3VyY2VzAFNjcmlwdENvbXBvbmVudF83OGRmNWI3M2QyY2Q0OTY2YWNiMzk5YjMyMDY2
OGQyZC52YnByb2ouTXkuUmVzb3VyY2VzAE15U2V0dGluZ3MATWljcm9zb2Z0LlZpc3VhbEJhc2lj
LkFwcGxpY2F0aW9uU2VydmljZXMAQXBwbGljYXRpb25CYXNlAC5jdG9yAE1pY3Jvc29mdC5WaXN1
YWxCYXNpYy5EZXZpY2VzAENvbXB1dGVyAFN5c3RlbQBPYmplY3QALmNjdG9yAGdldF9Db21wdXRl
cgBtX0NvbXB1dGVyT2JqZWN0UHJvdmlkZXIAZ2V0X0FwcGxpY2F0aW9uAG1fQXBwT2JqZWN0UHJv
dmlkZXIAVXNlcgBnZXRfVXNlcgBtX1VzZXJPYmplY3RQcm92aWRlcgBnZXRfV2ViU2VydmljZXMA
bV9NeVdlYlNlcnZpY2VzT2JqZWN0UHJvdmlkZXIAQXBwbGljYXRpb24AV2ViU2VydmljZXMARXF1
YWxzAG8AR2V0SGFzaENvZGUAVHlwZQBHZXRUeXBlAFRvU3RyaW5nAENyZWF0ZV9fSW5zdGFuY2Vf
XwBUAGluc3RhbmNlAERpc3Bvc2VfX0luc3RhbmNlX18AZ2V0X0dldEluc3RhbmNlAE1pY3Jvc29m
dC5WaXN1YWxCYXNpYy5NeVNlcnZpY2VzLkludGVybmFsAENvbnRleHRWYWx1ZWAxAG1fQ29udGV4
dABHZXRJbnN0YW5jZQBDb3p5Um9jLlNTSVNQbHVzLjIwMDgAQ296eVJvYy5TcWxTZXJ2ZXIuU1NJ
UwBTY3JpcHRCdWZmZXJQbHVzAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuVHhTY3JpcHQATWljcm9zb2Z0
LlNxbFNlcnZlci5EdHMuUGlwZWxpbmUAU2NyaXB0Q29tcG9uZW50AE1pY3Jvc29mdC5TcWxTZXJ2
ZXIuUGlwZWxpbmVIb3N0AFBpcGVsaW5lQnVmZmVyAENvbXBvbmVudABPYmplY3RJRABJc0lucHV0
AEJ1ZmZlcgBnZXRfU3RhdGljSW5wdXRDb2x1bW5zAGdldF9TdGF0aWNPdXRwdXRDb2x1bW5zAE5l
eHRSb3cARW5kT2ZSb3dzZXQAU3RhdGljSW5wdXRDb2x1bW5zAFN0YXRpY091dHB1dENvbHVtbnMA
U2NyaXB0Q29tcG9uZW50UGx1cwBQcm9jZXNzSW5wdXQASW5wdXRJRABJbnB1dF9Qcm9jZXNzSW5w
dXQASW5wdXRfUHJvY2Vzc0lucHV0Um93AFJvdwBQYXJlbnRDb21wb25lbnQATWljcm9zb2Z0LlNx
bFNlcnZlci5EVFNSdW50aW1lV3JhcABNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5SdW50aW1lLldy
YXBwZXIASURUU0Nvbm5lY3Rpb25NYW5hZ2VyMTAwAGdldF9Dcm1Db25uZWN0aW9uAENybUNvbm5l
Y3Rpb24AUHJlRXhlY3V0ZQBQb3N0RXhlY3V0ZQBWYWxpZGF0ZQBlcnJNZXNzYWdlAFJlaW5pdGlh
bGl6ZU1ldGFEYXRhAHNldF9Dcm1Db25uZWN0aW9uAHZhbHVlAGdldF9BY3Rpb24Ac2V0X0FjdGlv
bgBnZXRfQ3JtQ29ubmVjdGlvblR5cGUARmlyZUVycm9yXwBtZXNzYWdlAE1pY3Jvc29mdC5TcWxT
ZXJ2ZXIuRFRTUGlwZWxpbmVXcmFwAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlBpcGVsaW5lLldy
YXBwZXIASURUU0lucHV0Q29sdW1uMTAwAEdldElucHV0Q29sdW1uXwBleHRlcm5hbE5hbWUAbV9j
cm1Db25uZWN0aW9uAG1fYWN0aW9uAElDcm1Db25uZWN0aW9uAG1fY29ubmVjdGlvbgBDb3p5Um9j
LkR5bmFtaWNzAENvenlSb2MuRHluYW1pY3MuQ3JtMjAxMS5Pcmdhbml6YXRpb25TZXJ2aWNlAE9y
Z2FuaXphdGlvblNlcnZpY2VDbGllbnQAbV9zZXJ2aWNlMjAxMQBDb3p5Um9jLkR5bmFtaWNzLkNy
bS5TZXJ2aWNlAENybVNlcnZpY2UAbV9zZXJ2aWNlNABDb3p5Um9jLkR5bmFtaWNzLkNybTMuU2Vy
dmljZQBtX3NlcnZpY2UzAG1fcmVxdWVzdE5hbWUAbV90aUluZGV4AG1fbWlJbmRleABBY3Rpb24A
Q3JtQ29ubmVjdGlvblR5cGUARW51bQB2YWx1ZV9fAEFkZABSZW1vdmUAU3lzdGVtLlJlc291cmNl
cwBSZXNvdXJjZU1hbmFnZXIAX3Jlc01ncgBTeXN0ZW0uR2xvYmFsaXphdGlvbgBDdWx0dXJlSW5m
bwBfcmVzQ3VsdHVyZQBnZXRfUmVzb3VyY2VNYW5hZ2VyAGdldF9DdWx0dXJlAHNldF9DdWx0dXJl
AFZhbHVlAEN1bHR1cmUAU3lzdGVtLkNvbmZpZ3VyYXRpb24AQXBwbGljYXRpb25TZXR0aW5nc0Jh
c2UAbV9WYWx1ZQBtX1N5bmNPYmplY3QAZ2V0X1ZhbHVlAFN5c3RlbS5Db21wb25lbnRNb2RlbABF
ZGl0b3JCcm93c2FibGVBdHRyaWJ1dGUARWRpdG9yQnJvd3NhYmxlU3RhdGUAU3lzdGVtLkNvZGVE
b20uQ29tcGlsZXIAR2VuZXJhdGVkQ29kZUF0dHJpYnV0ZQBTeXN0ZW0uRGlhZ25vc3RpY3MARGVi
dWdnZXJIaWRkZW5BdHRyaWJ1dGUATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkNvbXBpbGVyU2Vydmlj
ZXMAU3RhbmRhcmRNb2R1bGVBdHRyaWJ1dGUASGlkZU1vZHVsZU5hbWVBdHRyaWJ1dGUAU3lzdGVt
LkNvbXBvbmVudE1vZGVsLkRlc2lnbgBIZWxwS2V5d29yZEF0dHJpYnV0ZQBTeXN0ZW0uUnVudGlt
ZS5Db21waWxlclNlcnZpY2VzAFJ1bnRpbWVIZWxwZXJzAEdldE9iamVjdFZhbHVlAFJ1bnRpbWVU
eXBlSGFuZGxlAEdldFR5cGVGcm9tSGFuZGxlAEFjdGl2YXRvcgBDcmVhdGVJbnN0YW5jZQBNeUdy
b3VwQ29sbGVjdGlvbkF0dHJpYnV0ZQBzZXRfVmFsdWUAU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNl
cnZpY2VzAENvbVZpc2libGVBdHRyaWJ1dGUAU3RyaW5nAFNjcmlwdEJ1ZmZlcgBDTFNDb21wbGlh
bnRBdHRyaWJ1dGUASURUU0NvbXBvbmVudE1ldGFEYXRhMTAwAGdldF9Db21wb25lbnRNZXRhRGF0
YQBJRFRTSW5wdXRDb2xsZWN0aW9uMTAwAGdldF9JbnB1dENvbGxlY3Rpb24ASURUU0lucHV0MTAw
AGdldF9JdGVtAGdldF9JRABJRFRTUnVudGltZUNvbm5lY3Rpb25Db2xsZWN0aW9uMTAwAGdldF9S
dW50aW1lQ29ubmVjdGlvbkNvbGxlY3Rpb24ASURUU1J1bnRpbWVDb25uZWN0aW9uMTAwAGdldF9D
b25uZWN0aW9uTWFuYWdlcgBHdWlkAE9yZ2FuaXphdGlvblJlcXVlc3QAQWRkTWVtYmVyc1RlYW1S
ZXF1ZXN0AFJlbW92ZU1lbWJlcnNUZWFtUmVxdWVzdABTeXN0ZW0uV2ViLlNlcnZpY2VzAFN5c3Rl
bS5XZWIuU2VydmljZXMuUHJvdG9jb2xzAFNvYXBFeGNlcHRpb24ARXhjZXB0aW9uAGdldF9CdWZm
ZXIAc2V0X1JlcXVlc3ROYW1lAHNldF9JdGVtAE9yZ2FuaXphdGlvblJlc3BvbnNlAEV4ZWN1dGUA
c2V0X1RlYW1JZABzZXRfTWVtYmVySWRzAFJlc3BvbnNlAFJlcXVlc3QAQXBwbGljYXRpb25FeGNl
cHRpb24AUHJvamVjdERhdGEAU2V0UHJvamVjdEVycm9yAFN5c3RlbS5YbWwAWG1sTm9kZQBnZXRf
RGV0YWlsAGdldF9Jbm5lclhtbABDbGVhclByb2plY3RFcnJvcgBnZXRfTWVzc2FnZQBBY3F1aXJl
Q29ubmVjdGlvbgBDb25uZWN0AEdldFNlcnZpY2UASW50MzIAUGlwZWxpbmVDb21wb25lbnQAZ2V0
X0hvc3RDb21wb25lbnQASURUU0J1ZmZlck1hbmFnZXIxMDAAZ2V0X0J1ZmZlck1hbmFnZXIAZ2V0
X0xpbmVhZ2VJRABGaW5kQ29sdW1uQnlMaW5lYWdlSUQAQ2xvc2UASXNOdWxsT3JFbXB0eQBnZXRf
SXNBdHRhY2hlZABJRFRTSW5wdXRDb2x1bW5Db2xsZWN0aW9uMTAwAGdldF9JbnB1dENvbHVtbkNv
bGxlY3Rpb24AZ2V0X0NvdW50AHNldF9Db25uZWN0aW9uTWFuYWdlcklEAElEVFNFeHRlcm5hbE1l
dGFkYXRhQ29sdW1uMTAwAElEVFNFeHRlcm5hbE1ldGFkYXRhQ29sdW1uQ29sbGVjdGlvbjEwMABn
ZXRfRXh0ZXJuYWxNZXRhZGF0YUNvbHVtbkNvbGxlY3Rpb24Ac2V0X0lzVXNlZABSZW1vdmVBbGwA
TmV3AHNldF9OYW1lAERhdGFUeXBlAHNldF9EYXRhVHlwZQBFbXB0eQBGaXJlRXJyb3IAU3lzdGVt
LkNvbGxlY3Rpb25zAElFbnVtZXJhdG9yAEdldEVudW1lcmF0b3IAZ2V0X0N1cnJlbnQAZ2V0X0V4
dGVybmFsTWV0YWRhdGFDb2x1bW5JRABNb3ZlTmV4dABJRGlzcG9zYWJsZQBEaXNwb3NlAFNTSVNT
Y3JpcHRDb21wb25lbnRFbnRyeVBvaW50QXR0cmlidXRlAENvenlSb2MuU3FsU2VydmVyLlNTSVMu
QXR0cmlidXRlcwBDb2x1bW5NYXBwaW5nc0F0dHJpYnV0ZQBWYWxpZGF0ZVByb3BlcnRpZXNBdHRy
aWJ1dGUARGVmYXVsdFZhbHVlQXR0cmlidXRlAERlc2NyaXB0aW9uQXR0cmlidXRlAENvbm5lY3Rp
b25BdHRyaWJ1dGUAU3lzdGVtLlJlZmxlY3Rpb24AQXNzZW1ibHkAZ2V0X0Fzc2VtYmx5AFN5c3Rl
bS5UaHJlYWRpbmcATW9uaXRvcgBFbnRlcgBFeGl0AERlYnVnZ2VyTm9uVXNlckNvZGVBdHRyaWJ1
dGUAU2NyaXB0Q29tcG9uZW50Xzc4ZGY1YjczZDJjZDQ5NjZhY2IzOTliMzIwNjY4ZDJkLnZicHJv
ai5SZXNvdXJjZXMucmVzb3VyY2VzAENvbXBpbGF0aW9uUmVsYXhhdGlvbnNBdHRyaWJ1dGUAUnVu
dGltZUNvbXBhdGliaWxpdHlBdHRyaWJ1dGUAQXNzZW1ibHlGaWxlVmVyc2lvbkF0dHJpYnV0ZQBH
dWlkQXR0cmlidXRlAEFzc2VtYmx5VHJhZGVtYXJrQXR0cmlidXRlAEFzc2VtYmx5Q29weXJpZ2h0
QXR0cmlidXRlAEFzc2VtYmx5UHJvZHVjdEF0dHJpYnV0ZQBBc3NlbWJseUNvbXBhbnlBdHRyaWJ1
dGUAQXNzZW1ibHlEZXNjcmlwdGlvbkF0dHJpYnV0ZQBBc3NlbWJseVRpdGxlQXR0cmlidXRlAFNj
cmlwdENvbXBvbmVudF83OGRmNWI3M2QyY2Q0OTY2YWNiMzk5YjMyMDY2OGQyZC52YnByb2ouZGxs
AAALSQBuAHAAdQB0AAAbQwByAG0AQwBvAG4AbgBlAGMAdABpAG8AbgAADVQAZQBhAG0ASQBkAAAT
TQBlAG0AYgBlAHIASQBkAHMAAC1VAG4AaABhAG4AZABsAGUAZAAgAGEAYwB0AGkAbwBuACAAdAB5
AHAAZQAuAAAzVQBuAGgAYQBuAGQAbABlAGQAIABzAGUAcgB2AGkAYwBlACAAbwBiAGoAZQBjAHQA
LgAAHUEAZABkAE0AZQBtAGIAZQByAHMAVABlAGEAbQAAI1IAZQBtAG8AdgBlAE0AZQBtAGIAZQBy
AHMAVABlAGEAbQAAEU0AZQBtAGIAZQByAEkAZAAAP1MAZQBsAGUAYwB0ACAARAB5AG4AYQBtAGkA
YwBzACAAQwBSAE0AIABDAG8AbgBuAGUAYwB0AGkAbwBuAC4AACVNAGEAcAAgAGkAbgBwAHUAdAAg
AGMAbwBsAHUAbQBuAHMALgAAFU4AbwAgAGkAbgBwAHUAdABzAC4AABlEAFkATgBBAE0ASQBDAFMA
LQBDAFIATQABM0QAeQBuAGEAbQBpAGMAcwAgAEMAUgBNACAAVABlAGEAbQAgAE0AZQBtAGIAZQBy
AHMAAC9JAG4AcAB1AHQAIABjAG8AbAB1AG0AbgAgAG4AbwB0ACAAZgBvAHUAbgBkAC4AADFNAHkA
LgBSAGUAcwBvAHUAcgBjAGUAcwAuAE0AeQBSAGUAcwBvAHUAcgBjAGUAcwAAAAAAXNkViYLFUEGU
rVt9Ieut7QAIt3pcVhk04IkIsD9ffxHVCjoDIAABAwAAAQQAABIMBwYVEhgBEgwEAAASCAcGFRIY
ARIIBAAAEhEHBhUSGAESEQQAABIUBwYVEhgBEhQECAASDAQIABIIBAgAEhEECAASFAQgAQIcAyAA
CAQgABIVAyAADgIeAAcQAQEeAB4ABzABAQEQHgACEwAEIAATAAcGFRIZARMABCgAEwAIFs9JC7gM
NOoIiYRdzYCAzJEJIAQBEiEIAhIlBCAAHQ4DIAACBCgAHQ4DBhIkAwYSKAYgAgEIEiUFIAEBEhwD
BhIhBSABARIhBCAAEi0EKAASLQUgAQIQDgQgAQEOBCAAETAFIAEBETAFIAESMQ4CBg4DBhEwAwYS
NQMGEjkDBhI9AwYSQQIGCAMoAA4EKAARMAQAAAAABAEAAAADBhJJAwYSTQQAABJJBAAAEk0FAAEB
Ek0ECAASSQQIABJNAwYSOAIGHAQAABI4BAgAEjgFIAEBEVkIAQABAAAAAAAFIAIBDg4XAQAKTXlU
ZW1wbGF0ZQc4LjAuMC4wAAAGFRIYARIMBhUSGAESCAYVEhgBEhEGFRIYARIUBAcBEgwEBwESCAQH
ARIRBAcBEhQQAQALTXkuQ29tcHV0ZXIAAAwBAAdNeS5Vc2VyAAATAQAOTXkuQXBwbGljYXRpb24A
ABMBAA5NeS5XZWJTZXJ2aWNlcwAABAABHBwDBwECAwcBCAYAARIVEXUEBwESFQMHAQ4FEAEAHgAE
CgEeAAQHAR4AByAEAQ4ODg5hAQA0U3lzdGVtLldlYi5TZXJ2aWNlcy5Qcm90b2NvbHMuU29hcEh0
dHBDbGllbnRQcm90b2NvbBJDcmVhdGVfX0luc3RhbmNlX18TRGlzcG9zZV9fSW5zdGFuY2VfXwAA
AAYVEhgBEwAGFRIZARMABAoBEwAFIAEBEwAGBwITABMABCABAQIFAQAAAAAEBwEdDgUgABKAkQUg
ABKAlQYgARKAmRwFIAASgJ0GIAESgKEcBAcBEi0EIAASJQQgARwIBSACAQ4cCCABEoDFEoCpBiAB
ARGApQcgAQEdEYClCCABEoDJEoDNCCABEoDVEoDZBgABARKAwQUgABKA4SUHDBGApRGApRKAqRKA
rRKAsRKAtRKAuRKAvRKAwR0RgKURMBEwBCABHBwFIAASgOkFIAASgO0FIAIICAgKBwQSgJkSMRwR
MAQAAQIOBSAAEoDxCgcEAgISgJkSgMEFIAASgPkFIAASgPUGIAEBEYD9CAcCEoD1EoCZBAcBETAG
BwIdDh0OCiAGAQgODg4IEAIGIAESgPUcBSAAEoEBAyAAHBEHBhKA9RIxEoCZEjESMRKBAQ0BAAhW
YWxpZGF0ZQAABCABAQgIAQAAAAAAAAATAQAOU2VsZWN0IGFjdGlvbi4AABYBABFDcm1Db25uZWN0
aW9uVHlwZQAALAEAJ1NlbGVjdCBEeW5hbWljcyBDUk0gQ29ubmVjdGlvbiBNYW5hZ2VyLgAABSAA
EoEhByACAQ4SgSEGBwISSRJJBAcBEk0IAQACAAAAAAAEAAEBHAQHARI4CAEACAAAAAAAHgEAAQBU
AhZXcmFwTm9uRXhjZXB0aW9uVGhyb3dzAQwBAAcxLjAuMC4wAAApAQAkMDA1NTIxYTMtNjBmYy00
ZGUwLThhYjQtOWI5NGY5Yjk5OTM2AAAFAQABAAAfAQAaQ29weXJpZ2h0IEAgTWljcm9zb2Z0IDIw
MTQAADwBADdTY3JpcHRDb21wb25lbnRfNzhkZjViNzNkMmNkNDk2NmFjYjM5OWIzMjA2NjhkMmQu
dmJwcm9qAAAOAQAJTWljcm9zb2Z0AAAEUwAAAAAAAAAAAAAeUwAAACAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAEFMAAAAAAAAAAAAAAABfQ29yRGxsTWFpbgBtc2NvcmVlLmRsbAAAAAAA/yUAIEAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAMAAAAoAACADgAA
AEgAAIAQAAAAYAAAgAAAAAAAAAAAAAAAAAAAAgACAAAAeAAAgAMAAACQAACAAAAAAAAAAAAAAAAA
AAABAAB/AACoAACAAAAAAAAAAAAAAAAAAAABAAEAAADAAACAAAAAAAAAAAAAAAAAAAABAAAAAADY
AAAAAAAAAAAAAAAAAAAAAAABAAAAAADoAAAAAAAAAAAAAAAAAAAAAAABAAAAAAD4AAAAAAAAAAAA
AAAAAAAAAAABAAAAAAAIAQAAgGUAAOgCAAAAAAAAAAAAAGhoAAAoAQAAAAAAAAAAAACQaQAAIgAA
AAAAAAAAAAAAGGEAAGgEAAAAAAAAAAAAAGgENAAAAFYAUwBfAFYARQBSAFMASQBPAE4AXwBJAE4A
RgBPAAAAAAC9BO/+AAABAAAAAQAAAAAAAAABAAAAAAA/AAAAAAAAAAQAAAACAAAAAAAAAAAAAAAA
AAAARAAAAAEAVgBhAHIARgBpAGwAZQBJAG4AZgBvAAAAAAAkAAQAAABUAHIAYQBuAHMAbABhAHQA
aQBvAG4AAAAAAAAAsATIAwAAAQBTAHQAcgBpAG4AZwBGAGkAbABlAEkAbgBmAG8AAACkAwAAAQAw
ADAAMAAwADAANABiADAAAAA0AAoAAQBDAG8AbQBwAGEAbgB5AE4AYQBtAGUAAAAAAE0AaQBjAHIA
bwBzAG8AZgB0AAAAmAA4AAEARgBpAGwAZQBEAGUAcwBjAHIAaQBwAHQAaQBvAG4AAAAAAFMAYwBy
AGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8ANwA4AGQAZgA1AGIANwAzAGQAMgBjAGQANAA5ADYA
NgBhAGMAYgAzADkAOQBiADMAMgAwADYANgA4AGQAMgBkAC4AdgBiAHAAcgBvAGoAAAAwAAgAAQBG
AGkAbABlAFYAZQByAHMAaQBvAG4AAAAAADEALgAwAC4AMAAuADAAAACYADwAAQBJAG4AdABlAHIA
bgBhAGwATgBhAG0AZQAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8ANwA4AGQAZgA1
AGIANwAzAGQAMgBjAGQANAA5ADYANgBhAGMAYgAzADkAOQBiADMAMgAwADYANgA4AGQAMgBkAC4A
dgBiAHAAcgBvAGoALgBkAGwAbAAAAFwAGwABAEwAZQBnAGEAbABDAG8AcAB5AHIAaQBnAGgAdAAA
AEMAbwBwAHkAcgBpAGcAaAB0ACAAQAAgAE0AaQBjAHIAbwBzAG8AZgB0ACAAMgAwADEANAAAAAAA
oAA8AAEATwByAGkAZwBpAG4AYQBsAEYAaQBsAGUAbgBhAG0AZQAAAFMAYwByAGkAcAB0AEMAbwBt
AHAAbwBuAGUAbgB0AF8ANwA4AGQAZgA1AGIANwAzAGQAMgBjAGQANAA5ADYANgBhAGMAYgAzADkA
OQBiADMAMgAwADYANgA4AGQAMgBkAC4AdgBiAHAAcgBvAGoALgBkAGwAbAAAAJAAOAABAFAAcgBv
AGQAdQBjAHQATgBhAG0AZQAAAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABvAG4AZQBuAHQAXwA3ADgA
ZABmADUAYgA3ADMAZAAyAGMAZAA0ADkANgA2AGEAYwBiADMAOQA5AGIAMwAyADAANgA2ADgAZAAy
AGQALgB2AGIAcAByAG8AagAAADQACAABAFAAcgBvAGQAdQBjAHQAVgBlAHIAcwBpAG8AbgAAADEA
LgAwAC4AMAAuADAAAAA4AAgAAQBBAHMAcwBlAG0AYgBsAHkAIABWAGUAcgBzAGkAbwBuAAAAMQAu
ADAALgAwAC4AMAAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/
//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAB3d3d3d3d3d3d3d3d3d3AERERERERERERERERERERwBP/////////////////0
cAT/////////////////9HAE//////////////////RwBP/////////////////0cAT/////////
////////9HAE//////////////////RwBP/////////////////0cAT/////////////////9HAE
//////////////////RwBP/////////////////0cAT/////////////////9HAE////////////
//////RwBP/////////////////0cAT/////////////////9HAE//////////////////RwBP//
///////////////0cAT/////////////////9HAE//////////////////RwBIiIiIiIiIiIiIiI
iIiEcARERERERERERERERERERHAETExMTExMTExMTs7OSXRwBMzMzMzMzMzMzMzMzMzEAABERERE
REREREREREREQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD/////////////////////wAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAA
AYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAD
wAAAB////////////////ygAAAAQAAAAIAAAAAEABAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
AAD///8AAAAAAAAAAAAHd3d3d3d3d0RERERERERHT///////+EdP///////4R0////////hHT///
////+EdP///////4R0////////hHT///////+EdP///////4R0iIiIiIiIhHTMzMzMzMzEfERERE
REREwAAAAAAAAAAAAAAAAAAAAAD//wAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEAAP//AAD//wAAAAABAAIAICAQAAEABADoAgAAAgAQEBAAAQAEACgB
AAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAMAAAAMDMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]></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="125" 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_78df5b73d2cd4966acb399b320668d2d</property>
<property id="126" 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="64" 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">
<externalMetadataColumn id="66" name="TeamId" description="" precision="0" scale="0" length="0" dataType="guid" codePage="0" mappedColumnId="0" />
<externalMetadataColumn id="67" name="MemberId" description="" precision="0" scale="0" length="0" dataType="guid" codePage="0" mappedColumnId="0" /></externalMetadataColumns></input>
</inputs>
</component>