<component id="1" name="Dynamics CRM Incident 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="5" name="SourceCode" dataType="System.String" state="cdata" isArray="true" description="Stores the source code of the component" typeConverter="NOTBROWSABLE" UITypeEditor="" containsID="false" expressionType="None"><arrayElements arrayElementCount="18"><arrayElement dataType="System.String"><![CDATA[\my project\settings.designer.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA['------------------------------------------------------------------------------
' <autogenerated>
'     This code was generated by a tool.
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </autogenerated>
'------------------------------------------------------------------------------

Option Strict Off
Option Explicit On



Partial Friend NotInheritable Class MySettings
    Inherits System.Configuration.ApplicationSettingsBase

    Private Shared m_Value As MySettings

    Private Shared m_SyncObject As Object = New Object

    <System.Diagnostics.DebuggerNonUserCode()> _
    Public Shared ReadOnly Property Value() As MySettings
        Get
            If (MySettings.m_Value Is Nothing) Then
                System.Threading.Monitor.Enter(MySettings.m_SyncObject)
                If (MySettings.m_Value Is Nothing) Then
                    Try
                        MySettings.m_Value = New MySettings
                    Finally
                        System.Threading.Monitor.Exit(MySettings.m_SyncObject)
                    End Try
                End If
            End If
            Return MySettings.m_Value
        End Get
    End Property
End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\scriptcomponent_82cf52728b294a71aa89a04d7f7b1fe1.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_82cf52728b294a71aa89a04d7f7b1fe1.vbproj</RootNamespace>
    <AssemblyName>ScriptComponent_82cf52728b294a71aa89a04d7f7b1fe1.vbproj</AssemblyName>
    <StartupObject>
    </StartupObject>
    <OptionExplicit>On</OptionExplicit>
    <OptionCompare>Binary</OptionCompare>
    <OptionStrict>Off</OptionStrict>
    <OptionInfer>On</OptionInfer>
    <ProjectGuid>{EB31B939-4C0B-42C6-B383-8CAA033837EB}</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\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\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_82cf52728b294a71aa89a04d7f7b1fe1.vbproj")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("Microsoft")> 
<Assembly: AssemblyProduct("ScriptComponent_82cf52728b294a71aa89a04d7f7b1fe1.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("b3467dac-d5d5-4361-a37b-0c841cf1469c")> 

' 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\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 Incident As String = "incident"
        Public Const IncidentResolution As String = "incidentresolution"
        Public Const IncidentState As String = "incidentstatecode"
        Public Const IncidentStatus As String = "incidentstatuscode"
        Public Const ReferenceType As String = "ReferenceType"
        Public Const IncidentId As String = "incidentid"
    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_resolutionEntity = m_connection.ConstructEntity(Consts.IncidentResolution)

        ' 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.IncidentState Then
                m_stateIdx = colIndex
            ElseIf extColumn.Name = Consts.IncidentStatus Then
                m_statusIdx = colIndex
            Else
                Dim refType As String = CStr(extColumn.CustomPropertyCollection(Consts.ReferenceType).Value)
                Call m_resolutionEntity.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.IncidentState + " not mapped.")
        End If
    End Sub ' PreExecute


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

        Call m_connection.Close()
        m_resolutionEntity = 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 incidentresolution 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.IncidentResolution)
        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 incident state column.
        extColumn = input.ExternalMetadataColumnCollection.[New]()
        extColumn.Name = Consts.IncidentState
        extColumn.DataType = DataType.DT_I4

        ' Include incident status column.
        extColumn = input.ExternalMetadataColumnCollection.[New]()
        extColumn.Name = Consts.IncidentStatus
        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 Incident 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_resolutionEntity.SetAttributeValue(entityIndex, value)
                entityIndex += 1
            End If
        Next

        If state < 0 OrElse state > 2 Then
            Throw New Exception("Unhandled incident 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, 2
                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.Incident
                entityRef.Id = New Guid(m_resolutionEntity.GetAttributeValue(Consts.IncidentId).ToString())
                req("EntityMoniker") = entityRef

            Case 1
                req.RequestName = "CloseIncident"
                req("IncidentResolution") = m_resolutionEntity.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.IncidentState)
            Case CRM4.IncidentState.Active, CRM4.IncidentState.Canceled
                Dim stateReq As CRM4.SetStateDynamicEntityRequest = New CRM4.SetStateDynamicEntityRequest()

                ' Setup state.
                stateReq.State = CStr(CType(state, CRM4.IncidentState))

                ' Setup status.
                stateReq.Status = status

                ' Setup entity.
                Dim moniker As CRM4.Moniker = New CRM4.Moniker()
                moniker.Name = Consts.Incident
                moniker.Id = New Guid(m_resolutionEntity.GetAttributeValue(Consts.IncidentId).ToString())
                stateReq.Entity = moniker

                req = stateReq

            Case CRM4.IncidentState.Resolved
                Dim closeReq As CRM4.CloseIncidentRequest = New CRM4.CloseIncidentRequest()
                closeReq.Status = status
                closeReq.IncidentResolution = CType( _
                    m_resolutionEntity.ConstructDynamicEntity(), _
                    CRM4.BusinessEntity)

                req = closeReq
        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.IncidentState)
            Case CRM3.IncidentState.Active, CRM3.IncidentState.Canceled
                Dim stateReq As CRM3.SetStateDynamicEntityRequest = New CRM3.SetStateDynamicEntityRequest()

                ' Setup state.
                stateReq.State = CStr(CType(state, CRM4.IncidentState))

                ' Setup status.
                stateReq.Status = status

                ' Setup entity.
                Dim moniker As CRM3.Moniker = New CRM3.Moniker()
                moniker.Name = Consts.Incident
                moniker.Id = New Guid(m_resolutionEntity.GetAttributeValue(Consts.IncidentId).ToString())
                stateReq.Entity = moniker

                req = stateReq

            Case CRM3.IncidentState.Resolved
                Dim closeReq As CRM3.CloseIncidentRequest = New CRM3.CloseIncidentRequest()
                closeReq.Status = status
                closeReq.IncidentResolution = CType( _
                    m_resolutionEntity.ConstructDynamicEntity(), _
                    CRM3.BusinessEntity)

                req = closeReq
        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_resolutionEntity 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></arrayElements></property>
<property id="6" name="BinaryCode" dataType="System.String" state="cdata" isArray="true" description="Stores the binary representation of the component" typeConverter="NOTBROWSABLE" UITypeEditor="" containsID="false" expressionType="None"><arrayElements arrayElementCount="2"><arrayElement dataType="System.String"><![CDATA[\bin\scriptcomponent_82cf52728b294a71aa89a04d7f7b1fe1.vbproj.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
AARveAAACnRPAAABb48AAAoRBQoCew4AAAQGb5AAAAomKgAAHgIoFwAACioeAigXAAAKKhMwAgAt
AAAAHAAAEX4ZAAAELSByCwMAcNANAAACKBQAAApvlgAACnOXAAAKCweAGQAABH4ZAAAEKgAAABMw
AQAGAAAAHQAAEX4aAAAEKgAAHgKAGgAABCpCcxcAAAooEQAACoAcAAAEKgAAAB4CKJgAAAoqGzAB
AD8AAAAeAAARfhsAAAQtMn4cAAAEKBEAAAoomQAACn4bAAAELRxzMQAABoAbAAAE3hB+HAAABCgR
AAAKKJoAAArcfhsAAAQqAAEMAAACAB0ADCkAEAAAAAFCU0pCAQABAAAAAAAMAAAAdjIuMC41MDcy
NwAAAAAFAGwAAAA4DwAAI34AAKQPAAC4FAAAI1N0cmluZ3MAAAAAXCQAAEADAAAjVVMAnCcAABAA
AAAjR1VJRAAAAKwnAACcBgAAI0Jsb2IAAAAAAAAAAgAAAVcdogkJDwAAAPoBMwAWAAABAAAAYgAA
AA4AAAAcAAAAMgAAABgAAAClAAAABgAAAD0AAAAeAAAABwAAAA0AAAAPAAAACQAAAAEAAAAMAAAA
AQAAAAMAAAADAAAAAgAAAAAAehQBAAAAAAAKALABhgEKAOQBxgEGAPQB7QEKAEwChgEGAMoC7QEK
AEwDIgMOAJ4DhwMSAO0DzAMWAB4EzAMOALkEhwMaAGoFQgUOAHQGhwMeAM4GoQYeABMH9gYeABMH
KQcOAFIHhwMGAAcI9gcGADQIHwgiAJsIhggiAOgI0ggiAAEJ0ggiAC4JFgkGAFgJRQkKAJcJcAkK
AK8JEwAiAOQJxwkGABkK+QkGADcK7QEGAFsK7QEKAHQKEwAGALgKmQoGAMwK7QESANMKzAMGAOAK
7QEmAEMLGgsmAHILGgsmAJ0LGgsmALoLGgsmAP0LGgsqAF4MQAwGAGwM7QEKAIEMcAkuAKgMnQwm
AOYMGgsmAAQNGgsGADwN7QEmAFINGgsmAJMNGgsKABQOcAkmACwOGgsmAGkOGgsKAH8OcAkWAJoO
zAMmAL4OGgsGAB0P7QEOAFkPhwMyAKYPhg8yAAIBhg8aABYQQgUWAKQQzAMGALkQ7QEeANsQoQYe
AOoQoQYeAP4QoQYGAA4R7QEeAGwRoQYeAIkR9gYeAJER9gYeAJkR9gYeALYR9gYeAMAH9gYeAOsR
9gYeABES9gYeAIkRKQceAJERKQceAJkRKQceALYRKQceAMAHKQceAOsRKQceABESKQcSABoSzAMO
AGMSQRIOAH8SQRIOAJcSQRIiAKsS0ggGANISwBIGAPkS6BIGAAwTRQkGAHUT+QkGAJUT+QkGALMT
wBIGANATmQoGAN4TwBIGAPkTwBIGABQUwBIGAC0UwBIGAEYUwBIGAGMUwBIAAAAAAQAAAAAAAQAB
AAAAAAApADcABQABAAEAAAAAAHIANwAJAAEAAgAAARAAfQA3AA0AAQADAAUBAACHAAAADQAFAAgA
BQEAAJUAAAANAAUADwABAAAAsAC8AB0ABgARAAEAAAD0ALwAKQAGABYAAQAAAAIBvAANAAgAGgAB
AAAADgG8AA0ACQAcAAEAAAAYAbwAIAAKAB0AAwAAACMBAAANABMAKwAAAAAAKgE2AQ0AGQAsAAAB
EAB7AbwATQAbADAAMQAPAiAAMQA4Ai0AMQBaAjoAMQB/AkcAIQBbA5AABgACAccABgAOAcsAAQAP
BdwAAQAPBdwAAQBkBgwBAQCDBg8BAQDoBhMBAQAeBxcBAQBHBxsBAQBdBx8BAQBwByMBAQB7BycB
AQCGBycBVoCkBwwBVoCtBwwBVoDABwwBVoDOBwwBVoDdBwwBVoDrBwwBEQAXCNwBEQBACOABEQCz
CP4BEQC7CAICCCEAAAAABhjAARMAAQAQIQAAAAAGGMABEwABABghAAAAABEY+wEXAAEARCEAAAAA
EwgCAhsAAQBcIQAAAAATCCgCKAABAHQhAAAAABMIUQI1AAEAjCEAAAAAEwhvAkIAAQCkIQAAAABG
ArUCYwABAMAhAAAAAEYCvgJoAAIA1CEAAAAAgwDPAmwAAgDsIQAAAABGAtcCcQACAAAiAAAAABEA
4AJ4AAIAHCIAAAAAAQD+AoAAAwA4IgAAAAAGGMABEwAEAEAiAAAAAAMIEgOLAAQAdCIAAAAABhjA
ARMABACIIgAAAAAGGMABrwAEAJgiAAAAAEYKTwS5AAgArCIAAAAARgpmBLkACADAIgAAAACGAH4E
vgAIANgiAAAAAIYAhgS+AAgA8CIAAAAABhjAARMACAAQIwAAAABGAs0EzwAIAEAjAAAAAEYD4gTW
AAoAVCMAAAAARgP1BNYACwBYIwAAAAAGGMAB4AAMAGgjAAAAAAYIgwXmAA0AlCMAAAAABhjAAeAA
DQCkIwAAAAAGGMABEwAOALwjAAAAAEYC9QTWAA4AWCQAAAAARgKjBRMADwAcJgAAAABGAq4FEwAP
AEwmAAAAAAYAugXwAA8A+CYAAAAARgLOBRMAEACoKAAAAAAGCIMFcQAQAMAoAAAAAAYI4wX2ABAA
zCgAAAAAAQj7BbkAEQDsKAAAAAABABEG9gARABgpAAAAAAEAJAb7ABIA5CkAAAAAAQBDBgYBFQDU
KgAAAAABAFAGBgEWAJwrAAAAAAEAWgYGARcAZCwAAAAABhjAARMAGABsLAAAAAADGMABEwAYAHQs
AAAAABYITAjkARgAsCwAAAAAFghgCOkBGADELAAAAAAWCGwI7gEYAMwsAAAAABEY+wEXABkA4CwA
AAAABhjAARMAGQDoLAAAAAAWCMgIBQIZAAAAAQC8AgAAAQD1AgAAAQD1AgAAAQAtBAAAAgA3BAAA
AwBABAAABABIBAAAAQDaBAAAAgBIBAAAAQBIBAAAAQALBQAAAQAtBAAAAQAtBAAAAQALBQAAAQDD
BQAAAQD1BQAAAQAcBgAAAQAvBgAAAgA2BgAAAwA8BgAAAQAvBgAAAQAvBgAAAQAvBgAAAQB4CAkA
wAETAKEAwAEPArEAwAEeAhEAwAETALkAwAETACQAwAETACwAwAETADQAwAETADwAwAETACQAEgOL
ACwAEgOLADQAEgOLADwAEgOLAMEAwAETAMkAwAETANEAwAH2ANkAKAq3AhkAtQJjABkAvgJoACkA
SQrEAhkA1wJxAOkAZQrUAhkAwAETAPEAwAHkAkQAWwOQAEwAyAiLAEwAjwphA0wAwAETAPkAwAFu
AzkAwAGvAAkBfgS+AAkBhgS+ABEBwAFuA1EAwAETAEEAXAt+AxkBiQuEAyEBqguKAykBswtoABkB
3QuRAzEBqguXAzkBFgzmADkAdgyjA1EBjQyoA0EBsAyvA1kBuwxxAFEByAwXAEkB2gxxAEEAowUT
AFkAFw2+A2EAKQ0TAGEAMQ3DA0kBwAH2AGEAQg3IAykBbw3OA3kBiQ1oAHkBqgvUAykBuw3bA2kB
4A1oAIEB/Q3hA2EBCw5xAIkBHg7oA2EBTA7vA5EBqgv1A5kByAj8A6EB1wIABIEAiw4FBFEArA4L
BKkB0w4RBCkBdgxoAGkB5Q5oALEB8w4XBEEArgUTAGEACQ8TAAEBDw8uBLkBwAH2ACkBMg++ADkB
QQ/2AFEAzgUTACEBiQ1oAFEAuA8+BNEBqgtEBMkBFw2+A2EAzg9LBIEB4g9uA3kB7Q8TAIEB7Q8T
AIEB9w9TBMEBCw5xAGEB+w/2AMEBBBBoAGEBHxBZBMEBLBBoAGEBNxBgBMEBQhBoAGEBUBBgBMEB
XhBoAGEBaBBgBGEBchBgBJEB9w9lBJkB+w/2AMEBfxBxAJkBjwprBAEBjRAMARkBkxCUBEkAnRCf
BEkAqgvDA0kArxCkBOkBwRCpBIEAyRCuBPkBwAETAPEBwAETAPEBjwpgBPkBExG9BPkBHBH2AAEC
wAETAAECLBH2AIEAPBHDBAkCwAH2AAECThHIBIEAVRH8A2kAgRHPBCkCwAETAKEB1wLqBCkCyxH2
ACkC1RFgBCECwAETACEC+w/2ACECThHIBCkC4BHvBDECwAETADEC1RFgBDEC+hH2BHEAgRH9BGEC
wAETAGECyxH2AGEC1RFgBFkCwAETAFkC+w/2AFkCThHIBGEC4BEdBWkCwAETAGkC1RFgBGkC+hEk
BXkAgRErBYkCwAETAJECwAH2AJkCwAETAKECwAH2AKkCwAH2ACkA2xKdBYkAwAGjBZkAwAETALkC
ARPABbkCBxPABcECwAETAMkCwAFgBNECwAETANkCwAH2AOECwAH2AOkCwAH2APECwAH2APkCwAH2
AAEDwAH2AAkDwAH2ABEDwAH2AA4ATAAuAQ4AUAA/AQ4AVABkAQ4AWACHAQ4AXACsAQ4AYADHASkA
gwCZAi4AAwVzAy4AGwWMBi4ACwEpBi4AIwVzAy4AKwVPBi4A6wBzAy4ACwUvBi4AEwVPBi4A4wTK
BS4A6wTTBS4A8wTyBS4A+wT/BUAAKwA8AkAAEwAVAkMAGwAkAkMAEwAVAkkAgwBxAmMAGwAkAmMA
EwAVAmkAgwCqAoAAKwA8AoMAGwAkAoMAcwA8AoMAewA8AokAgwCFAqAAKwA8AqMAEwAVAqMAwwDs
AsAAKwA8AsMAEwAVAsMA6wBzA+AAKwA8AuMACwFzAwABEwAVAgABKwA8AgMBCwFzAyABEwAVAiAB
KwA8AikBowRZBSkBqwRwBUABKwA8AkABEwAVAmABEwAVAmABKwA8AmMBkwRLBWMBmwQ8AmMBiwQ8
AmMBCwFzA2kBEwC3BYABKwA8AokBEwC3BaABKwA8AqkB2wQ8AsABKwA8AsABEwAVAuABKwA8AgAC
EwAVAgACKwA8AkADCwFzA4ADCwFzA10CYgJnAmwCvALAAssC0ALfAt8CZwN5A3kDvAK8Ap4DtQMd
BDMEcATQAo0EvAK0BNgEBgU0BasFsgXFBQQAAQAGAAUABwAGAAkACAALAAkADQALAA4ADQAAAOQB
TwAAAJ0CVAAAAEwCWQAAAKkCXgAAAGUDmAAAAJIEwgAAAKUEwgAAAJUF6wAAAJUFKgEAAJIHwgAA
AAcI9AEAAH4I+QEAAHgICgICAAQAAwACAAUABQACAAYABwACAAcACQACAA8ACwACABIADQACABMA
DwACABsAEQACACMAEwABACQAEwACACUAFQACAC0AFwACAC4AGQABAC8AGQACADIAGwB1AHUAiABB
AkgCTwJWAk4DVQMEgAAAAQAAAAAAAAAAAAAAAAC8AAAAAgAAAAAAAAAAAAAAAQAKAAAAAAAIAAAA
AAAAAAAAAAAKABMAAAAAAAEAAAAAAAAAAAAAAJ0AcQMAAAAACgAAAAAAAAAAAAAApgCvAwAAAAAK
AAAAAAAAAAAAAACmAP0DAAAAAAoAAAAAAAAAAAAAAKYAHwUAAAAAAQAAAAAAAAAAAAAAnQCQBgAA
AAACAAAAAAAAAAAAAAABAO0BAAAAAAoAAAAAAAAAAAAAAKYA9goAAAAAAgAAAAAAAAAAAAAACgAs
DAAAAAACAAAAAAAAAAAAAAABAJ0MAAAAAAoAAAAAAAAAAAAAAKYAZw8AAAAAAAAAAAEAAAApEwAA
BQAEAAYABAAMAAsAAAAQAAwA8wIAABAAGQDzAgAAAAAbAPMCLQDaAi0AXAMAAAA8TW9kdWxlPgBt
c2NvcmxpYgBNaWNyb3NvZnQuVmlzdWFsQmFzaWMATXlBcHBsaWNhdGlvbgBTY3JpcHRDb21wb25l
bnRfODJjZjUyNzI4YjI5NGE3MWFhODlhMDRkN2Y3YjFmZTEudmJwcm9qLk15AE15Q29tcHV0ZXIA
TXlQcm9qZWN0AE15V2ViU2VydmljZXMAVGhyZWFkU2FmZU9iamVjdFByb3ZpZGVyYDEASW5wdXRC
dWZmZXIAU2NyaXB0Q29tcG9uZW50XzgyY2Y1MjcyOGIyOTRhNzFhYTg5YTA0ZDdmN2IxZmUxLnZi
cHJvagBVc2VyQ29tcG9uZW50AENvbm5lY3Rpb25zAFZhcmlhYmxlcwBTY3JpcHRNYWluAENvbnN0
cwBNeVJlc291cmNlcwBTY3JpcHRDb21wb25lbnRfODJjZjUyNzI4YjI5NGE3MWFhODlhMDRkN2Y3
YjFmZTEudmJwcm9qLk15LlJlc291cmNlcwBNeVNldHRpbmdzAE1pY3Jvc29mdC5WaXN1YWxCYXNp
Yy5BcHBsaWNhdGlvblNlcnZpY2VzAEFwcGxpY2F0aW9uQmFzZQAuY3RvcgBNaWNyb3NvZnQuVmlz
dWFsQmFzaWMuRGV2aWNlcwBDb21wdXRlcgBTeXN0ZW0AT2JqZWN0AC5jY3RvcgBnZXRfQ29tcHV0
ZXIAbV9Db21wdXRlck9iamVjdFByb3ZpZGVyAGdldF9BcHBsaWNhdGlvbgBtX0FwcE9iamVjdFBy
b3ZpZGVyAFVzZXIAZ2V0X1VzZXIAbV9Vc2VyT2JqZWN0UHJvdmlkZXIAZ2V0X1dlYlNlcnZpY2Vz
AG1fTXlXZWJTZXJ2aWNlc09iamVjdFByb3ZpZGVyAEFwcGxpY2F0aW9uAFdlYlNlcnZpY2VzAEVx
dWFscwBvAEdldEhhc2hDb2RlAFR5cGUAR2V0VHlwZQBUb1N0cmluZwBDcmVhdGVfX0luc3RhbmNl
X18AVABpbnN0YW5jZQBEaXNwb3NlX19JbnN0YW5jZV9fAGdldF9HZXRJbnN0YW5jZQBNaWNyb3Nv
ZnQuVmlzdWFsQmFzaWMuTXlTZXJ2aWNlcy5JbnRlcm5hbABDb250ZXh0VmFsdWVgMQBtX0NvbnRl
eHQAR2V0SW5zdGFuY2UAQ296eVJvYy5TU0lTUGx1cy4yMDA4AENvenlSb2MuU3FsU2VydmVyLlNT
SVMAU2NyaXB0QnVmZmVyUGx1cwBNaWNyb3NvZnQuU3FsU2VydmVyLlR4U2NyaXB0AE1pY3Jvc29m
dC5TcWxTZXJ2ZXIuRHRzLlBpcGVsaW5lAFNjcmlwdENvbXBvbmVudABNaWNyb3NvZnQuU3FsU2Vy
dmVyLlBpcGVsaW5lSG9zdABQaXBlbGluZUJ1ZmZlcgBDb21wb25lbnQAT2JqZWN0SUQASXNJbnB1
dABCdWZmZXIAZ2V0X1N0YXRpY0lucHV0Q29sdW1ucwBnZXRfU3RhdGljT3V0cHV0Q29sdW1ucwBO
ZXh0Um93AEVuZE9mUm93c2V0AFN0YXRpY0lucHV0Q29sdW1ucwBTdGF0aWNPdXRwdXRDb2x1bW5z
AFNjcmlwdENvbXBvbmVudFBsdXMAUHJvY2Vzc0lucHV0AElucHV0SUQASW5wdXRfUHJvY2Vzc0lu
cHV0AElucHV0X1Byb2Nlc3NJbnB1dFJvdwBSb3cAUGFyZW50Q29tcG9uZW50AE1pY3Jvc29mdC5T
cWxTZXJ2ZXIuRFRTUnVudGltZVdyYXAATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUnVudGltZS5X
cmFwcGVyAElEVFNDb25uZWN0aW9uTWFuYWdlcjEwMABnZXRfQ3JtQ29ubmVjdGlvbgBDcm1Db25u
ZWN0aW9uAFByZUV4ZWN1dGUAUG9zdEV4ZWN1dGUAVmFsaWRhdGUAZXJyTWVzc2FnZQBSZWluaXRp
YWxpemVNZXRhRGF0YQBzZXRfQ3JtQ29ubmVjdGlvbgB2YWx1ZQBnZXRfQ3JtQ29ubmVjdGlvblR5
cGUARmlyZUVycm9yXwBtZXNzYWdlAEdldFZhbHVlc18AYnVmZmVyAHN0YXRlAHN0YXR1cwBQcm9j
ZXNzMjAxMV8AUHJvY2VzczRfAFByb2Nlc3MzXwBtX2NybUNvbm5lY3Rpb24ASUNybUNvbm5lY3Rp
b24AbV9jb25uZWN0aW9uAENvenlSb2MuRHluYW1pY3MAQ296eVJvYy5EeW5hbWljcy5Dcm0yMDEx
Lk9yZ2FuaXphdGlvblNlcnZpY2UAT3JnYW5pemF0aW9uU2VydmljZUNsaWVudABtX3NlcnZpY2Uy
MDExAENvenlSb2MuRHluYW1pY3MuQ3JtLlNlcnZpY2UAQ3JtU2VydmljZQBtX3NlcnZpY2U0AENv
enlSb2MuRHluYW1pY3MuQ3JtMy5TZXJ2aWNlAG1fc2VydmljZTMASUNybUVudGl0eQBtX3Jlc29s
dXRpb25FbnRpdHkAbV9pbnB1dElkeABtX3N0YXRlSWR4AG1fc3RhdHVzSWR4AENybUNvbm5lY3Rp
b25UeXBlAEluY2lkZW50AEluY2lkZW50UmVzb2x1dGlvbgBJbmNpZGVudFN0YXRlAEluY2lkZW50
U3RhdHVzAFJlZmVyZW5jZVR5cGUASW5jaWRlbnRJZABTeXN0ZW0uUmVzb3VyY2VzAFJlc291cmNl
TWFuYWdlcgBfcmVzTWdyAFN5c3RlbS5HbG9iYWxpemF0aW9uAEN1bHR1cmVJbmZvAF9yZXNDdWx0
dXJlAGdldF9SZXNvdXJjZU1hbmFnZXIAZ2V0X0N1bHR1cmUAc2V0X0N1bHR1cmUAVmFsdWUAQ3Vs
dHVyZQBTeXN0ZW0uQ29uZmlndXJhdGlvbgBBcHBsaWNhdGlvblNldHRpbmdzQmFzZQBtX1ZhbHVl
AG1fU3luY09iamVjdABnZXRfVmFsdWUAU3lzdGVtLkNvbXBvbmVudE1vZGVsAEVkaXRvckJyb3dz
YWJsZUF0dHJpYnV0ZQBFZGl0b3JCcm93c2FibGVTdGF0ZQBTeXN0ZW0uQ29kZURvbS5Db21waWxl
cgBHZW5lcmF0ZWRDb2RlQXR0cmlidXRlAFN5c3RlbS5EaWFnbm9zdGljcwBEZWJ1Z2dlckhpZGRl
bkF0dHJpYnV0ZQBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuQ29tcGlsZXJTZXJ2aWNlcwBTdGFuZGFy
ZE1vZHVsZUF0dHJpYnV0ZQBIaWRlTW9kdWxlTmFtZUF0dHJpYnV0ZQBTeXN0ZW0uQ29tcG9uZW50
TW9kZWwuRGVzaWduAEhlbHBLZXl3b3JkQXR0cmlidXRlAFN5c3RlbS5SdW50aW1lLkNvbXBpbGVy
U2VydmljZXMAUnVudGltZUhlbHBlcnMAR2V0T2JqZWN0VmFsdWUAUnVudGltZVR5cGVIYW5kbGUA
R2V0VHlwZUZyb21IYW5kbGUAQWN0aXZhdG9yAENyZWF0ZUluc3RhbmNlAE15R3JvdXBDb2xsZWN0
aW9uQXR0cmlidXRlAHNldF9WYWx1ZQBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMAQ29t
VmlzaWJsZUF0dHJpYnV0ZQBTdHJpbmcAU2NyaXB0QnVmZmVyAENMU0NvbXBsaWFudEF0dHJpYnV0
ZQBNaWNyb3NvZnQuU3FsU2VydmVyLkRUU1BpcGVsaW5lV3JhcABNaWNyb3NvZnQuU3FsU2VydmVy
LkR0cy5QaXBlbGluZS5XcmFwcGVyAElEVFNDb21wb25lbnRNZXRhRGF0YTEwMABnZXRfQ29tcG9u
ZW50TWV0YURhdGEASURUU0lucHV0Q29sbGVjdGlvbjEwMABnZXRfSW5wdXRDb2xsZWN0aW9uAElE
VFNJbnB1dDEwMABnZXRfSXRlbQBnZXRfSUQASURUU1J1bnRpbWVDb25uZWN0aW9uQ29sbGVjdGlv
bjEwMABnZXRfUnVudGltZUNvbm5lY3Rpb25Db2xsZWN0aW9uAElEVFNSdW50aW1lQ29ubmVjdGlv
bjEwMABnZXRfQ29ubmVjdGlvbk1hbmFnZXIAU3lzdGVtLldlYi5TZXJ2aWNlcwBTeXN0ZW0uV2Vi
LlNlcnZpY2VzLlByb3RvY29scwBTb2FwRXhjZXB0aW9uAEV4Y2VwdGlvbgBnZXRfQnVmZmVyAFBy
b2plY3REYXRhAFNldFByb2plY3RFcnJvcgBTeXN0ZW0uWG1sAFhtbE5vZGUAZ2V0X0RldGFpbABn
ZXRfSW5uZXJYbWwAQ2xlYXJQcm9qZWN0RXJyb3IAZ2V0X01lc3NhZ2UASURUU0V4dGVybmFsTWV0
YWRhdGFDb2x1bW4xMDAASURUU0lucHV0Q29sdW1uMTAwAEFjcXVpcmVDb25uZWN0aW9uAENvbm5l
Y3QAR2V0U2VydmljZQBJbnQzMgBDb25zdHJ1Y3RFbnRpdHkASURUU0lucHV0Q29sdW1uQ29sbGVj
dGlvbjEwMABnZXRfSW5wdXRDb2x1bW5Db2xsZWN0aW9uAGdldF9Db3VudABJRFRTRXh0ZXJuYWxN
ZXRhZGF0YUNvbHVtbkNvbGxlY3Rpb24xMDAAZ2V0X0V4dGVybmFsTWV0YWRhdGFDb2x1bW5Db2xs
ZWN0aW9uAGdldF9FeHRlcm5hbE1ldGFkYXRhQ29sdW1uSUQAR2V0T2JqZWN0QnlJRABnZXRfTmFt
ZQBPcGVyYXRvcnMAQ29tcGFyZVN0cmluZwBJRFRTQ3VzdG9tUHJvcGVydHlDb2xsZWN0aW9uMTAw
AGdldF9DdXN0b21Qcm9wZXJ0eUNvbGxlY3Rpb24ASURUU0N1c3RvbVByb3BlcnR5MTAwAENvbnZl
cnNpb25zAFNldHVwQXR0cmlidXRlAFBpcGVsaW5lQ29tcG9uZW50AGdldF9Ib3N0Q29tcG9uZW50
AElEVFNCdWZmZXJNYW5hZ2VyMTAwAGdldF9CdWZmZXJNYW5hZ2VyAGdldF9MaW5lYWdlSUQARmlu
ZENvbHVtbkJ5TGluZWFnZUlEAENsb3NlAElzTnVsbE9yRW1wdHkAQXBwbGljYXRpb25FeGNlcHRp
b24AZ2V0X0lzQXR0YWNoZWQAc2V0X0Nvbm5lY3Rpb25NYW5hZ2VySUQASUNybUF0dHJpYnV0ZQBN
aWNyb3NvZnQuU3FsU2VydmVyLk1hbmFnZWREVFMATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUnVu
dGltZQBDb25uZWN0aW9uTWFuYWdlcgBnZXRfRGVzaWduQ29ubmVjdGlvbnMAR2V0RW50aXR5QXR0
cmlidXRlcwBzZXRfSXNVc2VkAFJlbW92ZUFsbABOZXcAc2V0X05hbWUAZ2V0X0F0dHJpYnV0ZVR5
cGUARGF0YVR5cGUAc2V0X0RhdGFUeXBlAGdldF9MZW5ndGgAc2V0X0xlbmd0aABnZXRfUHJlY2lz
aW9uAHNldF9QcmVjaXNpb24AZ2V0X1NjYWxlAHNldF9TY2FsZQBzZXRfQ29kZVBhZ2UAZ2V0X1Jl
ZmVyZW5jZQBFbXB0eQBGaXJlRXJyb3IASXNOdWxsAEJsb2JDb2x1bW4AR2V0U3RyaW5nAENvbnZl
cnQAVG9JbnQzMgBTZXRBdHRyaWJ1dGVWYWx1ZQBPcHRpb25TZXRWYWx1ZQBPcmdhbml6YXRpb25S
ZXF1ZXN0AEVudGl0eVJlZmVyZW5jZQBHdWlkAHNldF9JdGVtAHNldF9SZXF1ZXN0TmFtZQBzZXRf
TG9naWNhbE5hbWUAR2V0QXR0cmlidXRlVmFsdWUAc2V0X0lkAENvbnN0cnVjdER5bmFtaWNFbnRp
dHkAT3JnYW5pemF0aW9uUmVzcG9uc2UARXhlY3V0ZQBSZXF1ZXN0AE1vbmlrZXIAU2V0U3RhdGVE
eW5hbWljRW50aXR5UmVxdWVzdABDbG9zZUluY2lkZW50UmVxdWVzdABzZXRfU3RhdGUAc2V0X1N0
YXR1cwBzZXRfRW50aXR5AEJ1c2luZXNzRW50aXR5AHNldF9JbmNpZGVudFJlc29sdXRpb24AUmVz
cG9uc2UAU1NJU1NjcmlwdENvbXBvbmVudEVudHJ5UG9pbnRBdHRyaWJ1dGUAQ296eVJvYy5TcWxT
ZXJ2ZXIuU1NJUy5BdHRyaWJ1dGVzAFZhbGlkYXRlUHJvcGVydGllc0F0dHJpYnV0ZQBDb2x1bW5N
YXBwaW5nc0F0dHJpYnV0ZQBDb25uZWN0aW9uQXR0cmlidXRlAERlc2NyaXB0aW9uQXR0cmlidXRl
AFN5c3RlbS5SZWZsZWN0aW9uAEFzc2VtYmx5AGdldF9Bc3NlbWJseQBTeXN0ZW0uVGhyZWFkaW5n
AE1vbml0b3IARW50ZXIARXhpdABEZWJ1Z2dlck5vblVzZXJDb2RlQXR0cmlidXRlAFNjcmlwdENv
bXBvbmVudF84MmNmNTI3MjhiMjk0YTcxYWE4OWEwNGQ3ZjdiMWZlMS52YnByb2ouUmVzb3VyY2Vz
LnJlc291cmNlcwBDb21waWxhdGlvblJlbGF4YXRpb25zQXR0cmlidXRlAFJ1bnRpbWVDb21wYXRp
YmlsaXR5QXR0cmlidXRlAEFzc2VtYmx5RmlsZVZlcnNpb25BdHRyaWJ1dGUAR3VpZEF0dHJpYnV0
ZQBBc3NlbWJseVRyYWRlbWFya0F0dHJpYnV0ZQBBc3NlbWJseUNvcHlyaWdodEF0dHJpYnV0ZQBB
c3NlbWJseVByb2R1Y3RBdHRyaWJ1dGUAQXNzZW1ibHlDb21wYW55QXR0cmlidXRlAEFzc2VtYmx5
RGVzY3JpcHRpb25BdHRyaWJ1dGUAQXNzZW1ibHlUaXRsZUF0dHJpYnV0ZQBTY3JpcHRDb21wb25l
bnRfODJjZjUyNzI4YjI5NGE3MWFhODlhMDRkN2Y3YjFmZTEudmJwcm9qLmRsbAAAAAALSQBuAHAA
dQB0AAAbQwByAG0AQwBvAG4AbgBlAGMAdABpAG8AbgAAM1UAbgBoAGEAbgBkAGwAZQBkACAAcwBl
AHIAdgBpAGMAZQAgAG8AYgBqAGUAYwB0AC4AACVpAG4AYwBpAGQAZQBuAHQAcgBlAHMAbwBsAHUA
dABpAG8AbgAAI2kAbgBjAGkAZABlAG4AdABzAHQAYQB0AGUAYwBvAGQAZQAAJWkAbgBjAGkAZABl
AG4AdABzAHQAYQB0AHUAcwBjAG8AZABlAAAbUgBlAGYAZQByAGUAbgBjAGUAVAB5AHAAZQAAO2kA
bgBjAGkAZABlAG4AdABzAHQAYQB0AGUAYwBvAGQAZQAgAG4AbwB0ACAAbQBhAHAAcABlAGQALgAA
P1MAZQBsAGUAYwB0ACAARAB5AG4AYQBtAGkAYwBzACAAQwBSAE0AIABjAG8AbgBuAGUAYwB0AGkA
bwBuAC4AACVNAGEAcAAgAGkAbgBwAHUAdAAgAGMAbwBsAHUAbQBuAHMALgAAFU4AbwAgAGkAbgBw
AHUAdABzAC4AADFDAG8AbgBuAGUAYwB0AGkAbwBuACAAbgBvAHQAIABzAGUAbABlAGMAdABlAGQA
LgAAGUQAWQBOAEEATQBJAEMAUwAtAEMAUgBNAAE3RAB5AG4AYQBtAGkAYwBzACAAQwBSAE0AIABJ
AG4AYwBpAGQAZQBuAHQAIABTAHQAYQB0AGUAADNVAG4AaABhAG4AZABsAGUAZAAgAGkAbgBjAGkA
ZABlAG4AdAAgAHMAdABhAHQAZQAuAAANUwB0AGEAdAB1AHMAABFTAGUAdABTAHQAYQB0AGUAAAtT
AHQAYQB0AGUAABFpAG4AYwBpAGQAZQBuAHQAABVpAG4AYwBpAGQAZQBuAHQAaQBkAAAbRQBuAHQA
aQB0AHkATQBvAG4AaQBrAGUAcgAAG0MAbABvAHMAZQBJAG4AYwBpAGQAZQBuAHQAACVJAG4AYwBp
AGQAZQBuAHQAUgBlAHMAbwBsAHUAdABpAG8AbgAAMU0AeQAuAFIAZQBzAG8AdQByAGMAZQBzAC4A
TQB5AFIAZQBzAG8AdQByAGMAZQBzAAAAAAB9X3Bj63+iQpi7cRT5vZulAAi3elxWGTTgiQiwP19/
EdUKOgMgAAEDAAABBAAAEgwHBhUSGAESDAQAABIIBwYVEhgBEggEAAASEQcGFRIYARIRBAAAEhQH
BhUSGAESFAQIABIMBAgAEggECAASEQQIABIUBCABAhwDIAAIBCAAEhUDIAAOAh4ABxABAR4AHgAH
MAEBARAeAAITAAQgABMABwYVEhkBEwAEKAATAAgWz0kLuAw06giJhF3NgIDMkQkgBAESIQgCEiUE
IAAdDgMgAAIEKAAdDgMGEiQDBhIoBiACAQgSJQUgAQESHAMGEiEFIAEBEiEEIAASLQQoABItBSAB
AhAOBCABAQ4KIAMBEBIlEAgQCAUgAQESJQIGDgMGEjEDBhI1AwYSOQMGEj0DBhJBAwYdCAIGCAMo
AA4QaQBuAGMAaQBkAGUAbgB0ACRpAG4AYwBpAGQAZQBuAHQAcgBlAHMAbwBsAHUAdABpAG8AbgAi
aQBuAGMAaQBkAGUAbgB0AHMAdABhAHQAZQBjAG8AZABlACRpAG4AYwBpAGQAZQBuAHQAcwB0AGEA
dAB1AHMAYwBvAGQAZQAaUgBlAGYAZQByAGUAbgBjAGUAVAB5AHAAZQAUaQBuAGMAaQBkAGUAbgB0
AGkAZAADBhJFAwYSSQQAABJFBAAAEkkFAAEBEkkECAASRQQIABJJAwYSOAIGHAQAABI4BAgAEjgF
IAEBEVUIAQABAAAAAAAFIAIBDg4XAQAKTXlUZW1wbGF0ZQc4LjAuMC4wAAAEAQAAAAYVEhgBEgwG
FRIYARIIBhUSGAESEQYVEhgBEhQEBwESDAQHARIIBAcBEhEEBwESFBMBAA5NeS5BcHBsaWNhdGlv
bgAAEwEADk15LldlYlNlcnZpY2VzAAAQAQALTXkuQ29tcHV0ZXIAAAwBAAdNeS5Vc2VyAAAEAAEc
HAMHAQIDBwEIBgABEhURcQQHARIVAwcBDgUQAQAeAAQKAR4ABAcBHgAHIAQBDg4ODmEBADRTeXN0
ZW0uV2ViLlNlcnZpY2VzLlByb3RvY29scy5Tb2FwSHR0cENsaWVudFByb3RvY29sEkNyZWF0ZV9f
SW5zdGFuY2VfXxNEaXNwb3NlX19JbnN0YW5jZV9fAAAABhUSGAETAAYVEhkBEwAECgETAAUgAQET
AAYHAhMAEwAEIAEBAgUBAAAAAAQHAR0OBSAAEoCNBSAAEoCRBiABEoCVHAUgABKAmQYgARKAnRwE
BwESLQQgABIlBgABARKApQUgABKArQgHAhKAoRKApQQgARwcBCABHAgFIAESQQ4FIAASgL0GIAES
gLUcBSAAEoDBBiABEoCxCAYAAwgODgIFIAASgMkGIAESgM0cAyAAHAQAAQ4cBSACCA4OBSAAEoDV
BSAAEoDZBSACCAgIEAcICBKAlRwIEoCxEoC1DggEAAECDgoHBAICEoCVEoClBSAAEoDpBiABEoDl
HAcgAR0SgOEOBSAAEoCxBiABARGA7QQgAQEIBSAAEoDNBCABARwcBwkdEoDhEjESgLESgJUSgOUS
gOESgM0IHRKA4QYHAh0OHQ4KIAYBCA4ODggQAgQgAQIIBCABDggEAAEIHAUgAgEIHAgHBggICAgc
CAUgAgEOHAQgARwOBiABARGBBQggARKBCRKA/REHBxKA+RKA/QgIEoEBCBGBBQQAAQ4IBiABARKB
EQYgAQESgSEIIAESgSUSgQ0WBwgSgQ0ICBKBERKBFRKBGRGBHRGBBQYgAQESgS0GIAEBEoE9CCAB
EoFBEoEpFgcIEoEpCAgSgS0SgTESgTURgTkRgQUNAQAIVmFsaWRhdGUAABYBABFDcm1Db25uZWN0
aW9uVHlwZQAALAEAJ1NlbGVjdCBEeW5hbWljcyBDUk0gQ29ubmVjdGlvbiBNYW5hZ2VyLgAABSAA
EoFZByACAQ4SgVkGBwISRRJFBAcBEkkIAQACAAAAAAAEAAEBHAQHARI4CAEACAAAAAAAHgEAAQBU
AhZXcmFwTm9uRXhjZXB0aW9uVGhyb3dzAQwBAAcxLjAuMC4wAAApAQAkYjM0NjdkYWMtZDVkNS00
MzYxLWEzN2ItMGM4NDFjZjE0NjljAAAFAQABAAAfAQAaQ29weXJpZ2h0IEAgTWljcm9zb2Z0IDIw
MTIAADwBADdTY3JpcHRDb21wb25lbnRfODJjZjUyNzI4YjI5NGE3MWFhODlhMDRkN2Y3YjFmZTEu
dmJwcm9qAAAOAQAJTWljcm9zb2Z0AAAAtFsAAAAAAAAAAAAAzlsAAAAgAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAMBbAAAAAAAAAAAAAAAAX0NvckRsbE1haW4AbXNjb3JlZS5kbGwAAAAAAP8lACBAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAwAAACgAAIAOAAAASAAA
gBAAAABgAACAAAAAAAAAAAAAAAAAAAACAAIAAAB4AACAAwAAAJAAAIAAAAAAAAAAAAAAAAAAAAEA
AH8AAKgAAIAAAAAAAAAAAAAAAAAAAAEAAQAAAMAAAIAAAAAAAAAAAAAAAAAAAAEAAAAAANgAAAAA
AAAAAAAAAAAAAAAAAAEAAAAAAOgAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAPgAAAAAAAAAAAAAAAAA
AAAAAAEAAAAAAAgBAACAZQAA6AIAAAAAAAAAAAAAaGgAACgBAAAAAAAAAAAAAJBpAAAiAAAAAAAA
AAAAAAAYYQAAaAQAAAAAAAAAAAAAaAQ0AAAAVgBTAF8AVgBFAFIAUwBJAE8ATgBfAEkATgBGAE8A
AAAAAL0E7/4AAAEAAAABAAAAAAAAAAEAAAAAAD8AAAAAAAAABAAAAAIAAAAAAAAAAAAAAAAAAABE
AAAAAQBWAGEAcgBGAGkAbABlAEkAbgBmAG8AAAAAACQABAAAAFQAcgBhAG4AcwBsAGEAdABpAG8A
bgAAAAAAAACwBMgDAAABAFMAdAByAGkAbgBnAEYAaQBsAGUASQBuAGYAbwAAAKQDAAABADAAMAAw
ADAAMAA0AGIAMAAAADQACgABAEMAbwBtAHAAYQBuAHkATgBhAG0AZQAAAAAATQBpAGMAcgBvAHMA
bwBmAHQAAACYADgAAQBGAGkAbABlAEQAZQBzAGMAcgBpAHAAdABpAG8AbgAAAAAAUwBjAHIAaQBw
AHQAQwBvAG0AcABvAG4AZQBuAHQAXwA4ADIAYwBmADUAMgA3ADIAOABiADIAOQA0AGEANwAxAGEA
YQA4ADkAYQAwADQAZAA3AGYANwBiADEAZgBlADEALgB2AGIAcAByAG8AagAAADAACAABAEYAaQBs
AGUAVgBlAHIAcwBpAG8AbgAAAAAAMQAuADAALgAwAC4AMAAAAJgAPAABAEkAbgB0AGUAcgBuAGEA
bABOAGEAbQBlAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABvAG4AZQBuAHQAXwA4ADIAYwBmADUAMgA3
ADIAOABiADIAOQA0AGEANwAxAGEAYQA4ADkAYQAwADQAZAA3AGYANwBiADEAZgBlADEALgB2AGIA
cAByAG8AagAuAGQAbABsAAAAXAAbAAEATABlAGcAYQBsAEMAbwBwAHkAcgBpAGcAaAB0AAAAQwBv
AHAAeQByAGkAZwBoAHQAIABAACAATQBpAGMAcgBvAHMAbwBmAHQAIAAyADAAMQAyAAAAAACgADwA
AQBPAHIAaQBnAGkAbgBhAGwARgBpAGwAZQBuAGEAbQBlAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABv
AG4AZQBuAHQAXwA4ADIAYwBmADUAMgA3ADIAOABiADIAOQA0AGEANwAxAGEAYQA4ADkAYQAwADQA
ZAA3AGYANwBiADEAZgBlADEALgB2AGIAcAByAG8AagAuAGQAbABsAAAAkAA4AAEAUAByAG8AZAB1
AGMAdABOAGEAbQBlAAAAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfADgAMgBjAGYA
NQAyADcAMgA4AGIAMgA5ADQAYQA3ADEAYQBhADgAOQBhADAANABkADcAZgA3AGIAMQBmAGUAMQAu
AHYAYgBwAHIAbwBqAAAANAAIAAEAUAByAG8AZAB1AGMAdABWAGUAcgBzAGkAbwBuAAAAMQAuADAA
LgAwAC4AMAAAADgACAABAEEAcwBzAGUAbQBiAGwAeQAgAFYAZQByAHMAaQBvAG4AAAAxAC4AMAAu
ADAALgAwAAAAKAAAACAAAABAAAAAAQAEAAAAAACAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAA
AIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAHd3d3d3d3d3d3d3d3d3cARERERERERERERERERERHAE//////////////////RwBP//
///////////////0cAT/////////////////9HAE//////////////////RwBP//////////////
///0cAT/////////////////9HAE//////////////////RwBP/////////////////0cAT/////
////////////9HAE//////////////////RwBP/////////////////0cAT/////////////////
9HAE//////////////////RwBP/////////////////0cAT/////////////////9HAE////////
//////////RwBP/////////////////0cAT/////////////////9HAEiIiIiIiIiIiIiIiIiIRw
BEREREREREREREREREREcARMTExMTExMTExOzs5JdHAEzMzMzMzMzMzMzMzMzMQAAERERERERERE
RERERERAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//
///////////////////AAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAA
AYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAPAAAAH
////////////////KAAAABAAAAAgAAAAAQAEAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP//
/wAAAAAAAAAAAAd3d3d3d3d3REREREREREdP///////4R0////////hHT///////+EdP///////4
R0////////hHT///////+EdP///////4R0////////hHSIiIiIiIiEdMzMzMzMzMR8RERERERETA
AAAAAAAAAAAAAAAAAAAAAP//AACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAQAA//8AAP//AAAAAAEAAgAgIBAAAQAEAOgCAAACABAQEAABAAQAKAEAAAMA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAwAAADgOwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAA=]]></arrayElement></arrayElements></property>
<property id="13" name="UserComponentTypeName" dataType="System.String" state="default" isArray="false" description="" typeConverter="" UITypeEditor="" containsID="false" expressionType="None">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2008, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea</property>
<property id="339" 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_82cf52728b294a71aa89a04d7f7b1fe1</property>
<property id="340" 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="26" name="CrmConnection" description="" connectionManagerID="{EB1EB761-DB8F-4F1C-96A3-1EF8BB8AE919}" /></connections>
<inputs>
<input id="3" name="Input" description="" hasSideEffects="true" dangling="false" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed"><externalMetadataColumns isUsed="True" /></input>
</inputs>
</component>