<component id="1" name="Dynamics CRM Quote To Sales Order" componentClassID="{874F7595-FB5F-40FF-96AF-FBFF8250E3EF}" description="Includes and runs custom script code. For example, apply a business rule that limits the range of valid values in an &quot;income&quot; column or add values in two columns and calculate the average of the sum." localeId="1033" version="7" contactInfo="Includes and runs custom script code. For example, apply a business rule that limits the range of valid values in an &quot;income&quot; column or add values in two columns and calculate the average of the sum.;Microsoft Corporation; Microsoft SQL Server; Microsoft Corporation; All Rights Reserved; http://www.microsoft.com/sql/support;7"><properties><property id="5" name="SourceCode" state="cdata" dataType="System.String" isArray="true" description="Stores the source code of the component" typeConverter="NOTBROWSABLE"><arrayElements arrayElementCount="30"><arrayElement dataType="System.String"><![CDATA[main.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' COZYROC SQL Server Integration Services user script component
'
' Copyright (c) 2006-2016 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 CozyRoc.Dynamics.Crm
Imports CozyRoc.Dynamics.Crm2011.OrganizationService


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute()> _
<CLSCompliant(False)> _
<ValidateProperties("Validate")> _
<ColumnMappings()> _
Public Class ScriptMain
    Inherits UserComponent


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub Input_ProcessInputRow(ByVal Row As InputBuffer)
        Try
            Dim req As New OrganizationRequest
            req.RequestName = "ConvertQuoteToSalesOrder"

            ' Setup QuoteId.
            req("QuoteId") = New Guid(Convert.ToString(Row.Buffer(m_qiIndex)))

            Dim value As Object

            value = GetBufferValue_(Row.Buffer, m_qcdIndex)
            If Not value Is Nothing Then
                req("QuoteCloseDate") = Convert.ToDateTime(value)
            End If

            value = GetBufferValue_(Row.Buffer, m_qcdescIndex)
            If Not value Is Nothing Then
                req("QuoteCloseDescription") = Convert.ToString(value)
            End If

            value = GetBufferValue_(Row.Buffer, m_qcsIndex)
            If Not value Is Nothing Then
                Dim qcs As New OptionSetValue()
                qcs.Value = Convert.ToInt32(value)
                req("QuoteCloseStatus") = qcs
            End If

            value = GetBufferValue_(Row.Buffer, m_qcsubjIndex)
            If Not value Is Nothing Then
                req("QuoteCloseSubject") = Convert.ToString(value)
            End If

            ' Execute action.
            Dim res As OrganizationResponse = m_service.Execute(req)
            Dim salesOrder As Entity = CType(res("Entity"), Entity)
            Row.SalesOrderId = salesOrder.Id
        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),  _
            IConnection)
        Call m_connection.Connect()

        m_service = CType(m_connection.GetService(0), OrganizationServiceClient)   ' 0 - CRM Service

        ' Get input column indexes.
        m_qiIndex = GetColumnIndex_("QuoteId")
        m_qcdIndex = GetColumnIndex_("QuoteCloseDate")
        m_qcdescIndex = GetColumnIndex_("QuoteCloseDescription")
        m_qcsIndex = GetColumnIndex_("QuoteCloseStatus")
        m_qcsubjIndex = GetColumnIndex_("QuoteCloseSubject")
    End Sub ' PreExecute


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub PostExecute()
        Call MyBase.PostExecute()

        Call m_connection.Close()
        m_qiIndex = -1
        m_qcdIndex = -1
        m_qcdescIndex = -1
        m_qcsIndex = -1
        m_qcsubjIndex = -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 = MyBase.ComponentMetaData.InputCollection(0)
            If input.IsAttached Then
                Dim inputCol As IDTSInputColumn100 = Nothing

                inputCol = GetInputColumn_("QuoteId")
                If inputCol Is Nothing Then
                    Throw New Exception("QuoteId column is not mapped.")
                End If
            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 QuoteId column.
        column = input.ExternalMetadataColumnCollection.[New]()
        column.Name = "QuoteId"
        column.DataType = DataType.DT_GUID

        ' Setup QuoteCloseDate column.
        column = input.ExternalMetadataColumnCollection.[New]()
        column.Name = "QuoteCloseDate"
        column.DataType = DataType.DT_DBTIMESTAMP

        ' Setup QuoteCloseDescription column.
        column = input.ExternalMetadataColumnCollection.[New]()
        column.Name = "QuoteCloseDescription"
        column.DataType = DataType.DT_WSTR
        column.Length = 1000

        ' Setup QuoteCloseStatus column.
        column = input.ExternalMetadataColumnCollection.[New]()
        column.Name = "QuoteCloseStatus"
        column.DataType = DataType.DT_I4

        ' Setup QuoteCloseSubject column.
        column = input.ExternalMetadataColumnCollection.[New]()
        column.Name = "QuoteCloseSubject"
        column.DataType = DataType.DT_WSTR
        column.Length = 250
    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 Quote To Sales Order", _
            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

        GetInputColumn_ = result
    End Function    ' GetInputColumn_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetColumnIndex_(ByVal externalName As String) As Integer
        Dim result As Integer = -1

        Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)
        Dim inputCol As IDTSInputColumn100 = GetInputColumn_(externalName)
        If Not inputCol Is Nothing Then
            result = Me.HostComponent.BufferManager.FindColumnByLineageID( _
                input.Buffer, _
                inputCol.LineageID)
        End If

        GetColumnIndex_ = result
    End Function    ' GetColumnIndex_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetBufferValue_( _
        ByVal buffer As Microsoft.SqlServer.Dts.Pipeline.PipelineBuffer, _
        ByVal index As Integer) As Object

        Dim result As Object = Nothing

        If index <> -1 AndAlso Not buffer.IsNull(index) Then
            result = buffer(index)
        End If

        GetBufferValue_ = result
    End Function    ' GetBufferValue_
#End Region ' Internals


#Region "Attributes"
    Private m_crmConnection As String

    Private m_connection As IConnection
    Private m_service As OrganizationServiceClient
    Private m_qiIndex As Integer
    Private m_qcdIndex As Integer
    Private m_qcdescIndex As Integer
    Private m_qcsIndex As Integer
    Private m_qcsubjIndex As Integer
#End Region ' Attributes

End Class   ' ScriptMain
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[My Project\AssemblyInfo.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></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("SC_ebf58c0ea11a43ef9055fa175baa2ad7")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("")> 
<Assembly: AssemblyProduct("SC_ebf58c0ea11a43ef9055fa175baa2ad7")> 
<Assembly: AssemblyCopyright("Copyright @  2016")> 
<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("836c6a81-6c4b-4fc9-ad13-9cc8062349b6")> 

' 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[ComponentWrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services component wrapper
' This module defines the base class for your component
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class UserComponent
    Inherits ScriptComponentPlus

    Public Connections As New Connections(Me)
    Public Variables As New Variables(Me)

    Public Overrides Sub ProcessInput(ByVal InputID As Integer, ByVal InputName As String, ByVal Buffer As PipelineBuffer, ByVal OutputMap As OutputNameMap)

        If InputID = MyBase.ComponentMetaData.InputCollection("Input").ID Then
            Input_ProcessInput(New InputBuffer(Me, InputID, True, Buffer, OutputMap))
        End If

    End Sub

    Public Overridable Sub Input_ProcessInput(ByVal Buffer As InputBuffer)

        While Buffer.NextRow()
            Input_ProcessInputRow(Buffer)
        End While

    End Sub

    Public Overridable Sub Input_ProcessInputRow(ByVal Row As InputBuffer)

    End Sub

End Class

Public Class Connections

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

    Public ReadOnly Property CrmConnection() As IDTSConnectionManager100
        Get
            Return ParentComponent.ComponentMetaData.RuntimeConnectionCollection("CrmConnection").ConnectionManager
        End Get
    End Property

End Class

Public Class Variables

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[SC_ebf58c0ea11a43ef9055fa175baa2ad7.vbproj]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ProjectTypeGuids>{30D016F9-3734-4E33-A861-5E7D899E18F3};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>8.0.30703</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{81B89165-A905-43B4-80AE-05F7444280AB}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>My Project</AppDesignerFolder>
    <RootNamespace>SC_ebf58c0ea11a43ef9055fa175baa2ad7</RootNamespace>
    <AssemblyName>SC_ebf58c0ea11a43ef9055fa175baa2ad7</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>.\bin\Debug\</OutputPath>
    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
    <DefineDebug>true</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
    <DebugSymbols>false</DebugSymbols>
    <Optimize>true</Optimize>
    <OutputPath>.\bin\Release\</OutputPath>
    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
    <DefineDebug>false</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <!-- This sections specifies references for the project. -->
  <ItemGroup>
    <Reference Include="CozyRoc.Dynamics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files (x86)\Microsoft SQL Server\110\SDK\Assemblies\CozyRoc.Dynamics.dll</HintPath>
    </Reference>
    <Reference Include="CozyRoc.SSISPlus.2012, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files (x86)\Microsoft SQL Server\110\SDK\Assemblies\CozyRoc.SSISPlus.2012.dll</HintPath>
    </Reference>
    <Reference Include="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=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Compile Include="main.vb" />
    <Compile Include="BufferWrapper.vb" />
    <Compile Include="ComponentWrapper.vb" />
  </ItemGroup>
  <!-- Visual Basic supports Importing namespaces (equivalent to using statements in C#).-->
  <ItemGroup>
    <Import Include="Microsoft.VisualBasic" />
    <Import Include="System" />
    <Import Include="System.Collections" />
    <Import Include="System.Data" />
    <Import Include="System.Diagnostics" />
    <Import Include="System.Windows.Forms" />
  </ItemGroup>
  <ItemGroup>
    <AppDesigner Include="My Project\" />
    <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>
  </ItemGroup>
  <!-- Include the build rules for a VB project.-->
  <Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
  <!-- This section defines VSTA properties that describe the host-changable project properties. -->
  <ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{30D016F9-3734-4E33-A861-5E7D899E18F3}">
        <ProjectProperties HostName="VSTAHostName" HostPackage="{B3A685AA-7EAF-4BC6-9940-57959FA5AC07}" ApplicationType="usd" Language="vb" TemplatesPath="" DebugInfoExeName="devenv.exe" DebugInfoCommandLine="/vstaHostDebugUri:&quot;vstadebug4741af5b-a0a6-45ae-9de2-9677cfb05e3c/98874b3c-845f-4819-86a9-388092d0e11d&quot;" />
        <Host Name="SSIS_SC110" />
        <ProjectClient>
          <HostIdentifier>SSIS_SC110</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
</Project>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[My Project\Settings.settings]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></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[My Project\Settings.Designer.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></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[BufferWrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services buffer wrappers
' This module defines classes for accessing data flow buffers
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!


Option Strict Off   ' This allows usage of PipelineBuffer typed accessors.

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class InputBuffer
    Inherits ScriptBufferPlus

    Public Sub New(ByVal Component As ScriptComponent, ByVal ObjectID As Integer, ByVal IsInput As Boolean, ByVal Buffer As PipelineBuffer, ByVal OutputMap As OutputNameMap)
        MyBase.New(Component, ObjectID, IsInput, Buffer, OutputMap)
    End Sub

    Public Overrides ReadOnly Property StaticInputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public WriteOnly Property [SalesOrderId]() As Guid
        Set
            Me(0) = Value
        End Set
    End Property
    Public WriteOnly Property [SalesOrderId_IsNull] As Boolean
        Set
            If (value)
                SetNull(0)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {"SalesOrderId"}
        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[Project]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF16LE]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<c:Project xmlns:c="http://schemas.microsoft.com/codeprojectml/2010/08/main" xmlns:msb="http://schemas.microsoft.com/developer/msbuild/2003" runtimeVersion="3.0" schemaVersion="1.0">
	<msb:PropertyGroup>
		<msb:CodeName>SC_ebf58c0ea11a43ef9055fa175baa2ad7</msb:CodeName>
		<msb:DisplayName>SC_ebf58c0ea11a43ef9055fa175baa2ad7</msb:DisplayName>
		<msb:ProjectId>{A25991A8-5E0C-41F0-A72A-627DC9814E1D}</msb:ProjectId>
		<msb:Language>msBuild</msb:Language>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:Project Include="SC_ebf58c0ea11a43ef9055fa175baa2ad7.vbproj"/>
		<msb:File Include="My Project\Settings.Designer.vb"/>
		<msb:File Include="My Project\Resources.Designer.vb"/>
		<msb:File Include="My Project\AssemblyInfo.vb"/>
		<msb:File Include="My Project\Resources.resx"/>
		<msb:File Include="My Project\Settings.settings"/>
		<msb:File Include="main.vb"/>
		<msb:File Include="ComponentWrapper.vb"/>
		<msb:File Include="BufferWrapper.vb"/>
	</msb:ItemGroup>
</c:Project>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[My Project\Resources.resx]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></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[My Project\Resources.Designer.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></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></arrayElements></property><property id="6" name="BinaryCode" state="cdata" dataType="System.String" isArray="true" description="Stores the binary representation of the component" typeConverter="NOTBROWSABLE"><arrayElements arrayElementCount="2"><arrayElement dataType="System.String"><![CDATA[SC_ebf58c0ea11a43ef9055fa175baa2ad7.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAgAAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1v
ZGUuDQ0KJAAAAAAAAABQRQAATAEDALP7X1gAAAAAAAAAAOAAAiELAQsAADQAAAAGAAAAAAAAnlMA
AAAgAAAAYAAAAAAAEAAgAAAAAgAABAAAAAAAAAAEAAAAAAAAAACgAAAAAgAAAAAAAAIAQIUAABAA
ABAAAAAAEAAAEAAAAAAAABAAAAAAAAAAAAAAAEhTAABTAAAAAGAAANgDAAAAAAAAAAAAAAAAAAAA
AAAAAIAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAIAAACAAAAAAAAAAAAAAACCAAAEgAAAAAAAAAAAAAAC50ZXh0AAAApDMAAAAgAAAANAAAAAIA
AAAAAAAAAAAAAAAAACAAAGAucnNyYwAAANgDAAAAYAAAAAQAAAA2AAAAAAAAAAAAAAAAAABAAABA
LnJlbG9jAAAMAAAAAIAAAAACAAAAOgAAAAAAAAAAAAAAAAAAQAAAQgAAAAAAAAAAAAAAAAAAAACA
UwAAAAAAAEgAAAACAAUAzCoAAHwoAAABAAAAAAAAABQqAAC4AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4CKAEAAAoqHgIoBAAACiqmcwYAAAqAAQAABHMHAAAKgAIA
AARzCAAACoADAAAEcwkAAAqABAAABCoAABMwAQALAAAAAQAAEX4BAAAEbwoAAAoqABMwAQALAAAA
AgAAEX4CAAAEbwsAAAoqABMwAQALAAAAAwAAEX4DAAAEbwwAAAoqABMwAQALAAAABAAAEX4EAAAE
bw0AAAoqABMwAgANAAAABQAAEQIDKBEAAAooEgAACioAAAATMAEABwAAAAYAABECKBMAAAoqABMw
AQALAAAABwAAEdAFAAACKBQAAAoqABMwAQAHAAAACAAAEQIoFQAACioAEzABABAAAAAJAAARAowB
AAAbLQYoAQAAKyoCKhMwAgAQAAAACgAAEQMSAP4VAgAAGwaBAgAAGyoeAigXAAAKKhMwAgAoAAAA
CwAAEQJ7GQAACm8aAAAKCweMAwAAGy0SKAIAACsLAnsZAAAKB28bAAAKBypKAigXAAAKAnMcAAAK
fRkAAAoqADoCAwQFDgQOBSgeAAAKKgATMAEABwAAAAwAABEWjSAAAAEqADoCFgOMCwAAAW8fAAAK
KgBiAywJAhZvIAAACisLcgEAAHBzIQAACnoqAAAAEzADABEAAAANAAARF40gAAABCwcWcp4AAHCi
ByoAAAATMAEACQAAAA4AABECKCIAAAoKBioAAAATMAEACQAAAA8AABECKCMAAAoKBioAAAB+Aigl
AAAKAgJzHAAABn0GAAAEAgJzHgAABn0HAAAEKr4DAigmAAAKbycAAApyuAAAcG8oAAAKbykAAAoz
EQICAxcFDgRzEQAABm8aAAAGKkorBwIDbxsAAAYDbxYAAAYt8SoABioAADoCKBcAAAoCA30IAAAE
KgATMAIAIAAAABAAABECewgAAARvJgAACm8qAAAKcsQAAHBvKwAACm8sAAAKKjoCKBcAAAoCA30J
AAAEKgAeAigYAAAGKhswBQCIAQAAEQAAEXMtAAAKCgZy4AAAcG8uAAAKBnISAQBwEgcDby8AAAoC
ew0AAARvMAAACigRAAAKKDEAAAooMgAAChEHjAsAAAFvMwAACgIDby8AAAoCew4AAARvKwAABigR
AAAKDQksGwZyIgEAcAkoEQAACig0AAAKjDAAAAFvMwAACgIDby8AAAoCew8AAARvKwAABigRAAAK
DQksFgZyQAEAcAkoEQAACigxAAAKbzMAAAoCA28vAAAKAnsQAAAEbysAAAYoEQAACg0JLCZzNQAA
ChMEEQQJKBEAAAooNgAACm83AAAKBnJsAQBwEQRvMwAACgIDby8AAAoCexEAAARvKwAABigRAAAK
DQksFgZyjgEAcAkoEQAACigxAAAKbzMAAAoCewwAAAQGbzgAAAoLB3KyAQBwbzkAAAp0KwAAAQwD
CG86AAAKbxMAAAbePSUoOwAAChMFAhEFbzwAAApvPQAACm8oAAAGKD4AAAreHCUoOwAAChMGAhEG
bz8AAApvKAAABig+AAAK3gAqQTQAAAAAAAAAAAAASgEAAEoBAAAhAAAALQAAAQAAAAAAAAAASgEA
AGsBAAAcAAAALgAAARMwAwCaAAAAAAAAAAIoQAAACgICewYAAARvHQAABhRvQQAACnQPAAABfQsA
AAQCewsAAARvQgAACgICewsAAAQWb0MAAAp0EAAAAX0MAAAEAgJyEgEAcG8qAAAGfQ0AAAQCAnIi
AQBwbyoAAAZ9DgAABAICckABAHBvKgAABn0PAAAEAgJybAEAcG8qAAAGfRAAAAQCAnKOAQBwbyoA
AAZ9EQAABCoAANYCKEQAAAoCewsAAARvRQAACgIVfQ0AAAQCFX0OAAAEAhV9DwAABAIVfRAAAAQC
FX0RAAAEKgAAGzACAJUAAAASAAARAm8lAAAGKEYAAAosC3LAAQBwc0cAAAp6AigmAAAKbycAAAoW
jDQAAAFvKAAACgwIb0gAAAosHBQNAnISAQBwbykAAAYNCS0LcgACAHBzRwAACnoCbyYAAApvKgAA
CnLEAABwbysAAAoCbyUAAAZvSQAAChcK3holKDsAAAoTBBYKAxEEbz8AAApRKD4AAAreAAYLByoA
AAABEAAAAAAAAHd3ABouAAABEzACABcBAAATAAARAihKAAAKAigmAAAKbycAAApvSwAAChYzC3I8
AgBwc0cAAAp6AigmAAAKbycAAAoWjDQAAAFvKAAACgsHb0wAAAoXb00AAAoHb04AAApvTwAACgdv
TAAACm9QAAAKB29MAAAKb1EAAAoKBnISAQBwb1IAAAoGH0hvUwAACgdvTAAACm9RAAAKCgZyIgEA
cG9SAAAKBiCHAAAAb1MAAAoHb0wAAApvUQAACgoGckABAHBvUgAACgYgggAAAG9TAAAKBiDoAwAA
b1QAAAoHb0wAAApvUQAACgoGcmwBAHBvUgAACgYZb1MAAAoHb0wAAApvUQAACgoGco4BAHBvUgAA
CgYgggAAAG9TAAAKBiD6AAAAb1QAAAoqABMwAQAJAAAAFAAAEQJ7CgAABAoGKgAAACICA30KAAAE
KgAAABMwAwATAAAAFQAAEReNIAAAAQsHFnJSAgBwogcKBioAEzAHAB0AAAAWAAARFgoCKCYAAAoW
cmwCAHADflUAAAoWEgBvVgAACioAAAAbMAIAfAAAABcAABEUDQIoJgAACm8nAAAKFow0AAABbygA
AAoMCG9MAAAKA29XAAAKCghvTgAACm9YAAAKEwUrIhEFb1kAAAp0DgAAARMEEQRvWgAACgZvWwAA
CjMFEQQN3iERBW9cAAAKLdXeFhEFdToAAAEsDBEFdToAAAFvXQAACtwJCwcqARAAAAIAJgA8YgAW
AAAAABMwAwBFAAAAGAAAERUNAigmAAAKbycAAAoWjDQAAAFvKAAACgsCA28pAAAGDAgsHQJvXgAA
Cm9fAAAKB29gAAAKCG9hAAAKb2IAAAoNCQoGKgAAABMwAgAlAAAAGQAAERQLBBUuFgMEb2MAAAot
DQMEbzAAAAooEQAACgsHKBEAAAoKBioAAAAeAigXAAAKKhMwAgAtAAAAGgAAEX4SAAAELSBysAIA
cNAMAAACKBQAAApvaQAACnNqAAAKCweAEgAABH4SAAAEKgAAABMwAQAGAAAAGwAAEX4TAAAEKgAA
HgKAEwAABCpCcxcAAAooEQAACoAVAAAEKgAAAB4CKGsAAAoqGzABAD8AAAAcAAARfhQAAAQtMn4V
AAAEKBEAAAoobAAACn4UAAAELRxzMQAABoAUAAAE3hB+FQAABCgRAAAKKG0AAArcfhQAAAQqAAEQ
AAACAB0ADCkAEAAAAAC0AAAAzsrvvgEAAACRAAAAbFN5c3RlbS5SZXNvdXJjZXMuUmVzb3VyY2VS
ZWFkZXIsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGlj
S2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OSNTeXN0ZW0uUmVzb3VyY2VzLlJ1bnRpbWVSZXNvdXJj
ZVNldAIAAAAAAAAAAAAAAFBBRFBBRFC0AAAAQlNKQgEAAQAAAAAADAAAAHY0LjAuMzAzMTkAAAAA
BQBsAAAAiA0AACN+AAD0DQAAMBIAACNTdHJpbmdzAAAAACQgAADkAgAAI1VTAAgjAAAQAAAAI0dV
SUQAAAAYIwAAZAUAACNCbG9iAAAAAAAAAAIAAAFXFaIJCQ8AAAD6JTMAFgAAAQAAAE8AAAANAAAA
FQAAADIAAAAbAAAAeQAAAD4AAAAcAAAABwAAAA8AAAARAAAACQAAAAEAAAAMAAAAAQAAAAIAAAAD
AAAAAgAAAAAABxIBAAAAAAAKAG0BQwEKAKEBgwEGALEBqgEKAAkCQwEGAIcCqgEKAAkD3wIOAFsD
RAMSAKoDiQMWANsDiQMSAOoDiQMGADsEqgEOAOMERAMaAJ4FdgUeAKUGfAYOACcHEgciAH4HUQcG
AAEI8AcGAC4IGQgmAI8IeggmANwIxggmAPUIxggmACIJCgkGAEwJOQkKAIsJZAkKAKMJEwAmANgJ
uwkGAA0K7QkGACsKqgEGAE8KqgEKAGgKEwAGAKwKjQoGAMAKqgEGANgKqgESAPIKiQMGAP8KqgEe
ABULfAYeAEQLfAYeAG8LfAYeAIwLfAYeAM8LfAYiAP4LUQciABIMUQciACcMUQciAC4MUQcqAG8M
UQwGAH0MqgEGAKIMqgEGAKoMqgEuADsEqgEKANUMZAkyAPwM8QwGAHMNqgEeAKANfAYeAMgNfAYe
ACAOfAYaAG4OdgUGALIOnw4GAP4OqgEWABIPiQMeADYPfAYOAKoPiA8OAMIPiA8SAN4PiQMOAAUQ
iA8mABkQxggGAEAQLhAGAGcQVhAGAHoQOQkGAM8Q7QkGAO8Q7QkGACcRDREGAEARLhAGAF0RjQoG
AGsRLhAGAIYRLhAGAKERLhAGALoRLhAGANMRLhAGAPARLhAAAAAAAQAAAAAAAQABAAAAAAApADcA
BQABAAEAAAAAAF4ANwAJAAEAAgAAARAAaQA3AA0AAQADAAUBAABzAAAADQAFAAgABQEAAIEAAAAN
AAUADwABAAAAnACoAB0ABgARAAEAAADMAKgAMQAGABgAAQAAANoAqAANAAgAHAABAAAA5gCoAA0A
CQAeAAEAAADwAKgAIAAKAB8AAAAAAPsABwENABIALAAAARAAOAGoAE0AFAAwADEAzAEgADEA9QEt
ADEAFwI6ADEAPAJHACEAGAOQAAYA2gDdAAYA5gDhAAEAQwX1AAEAQwX1AAEAAgcmAQEAMwcpAQEA
mActAQEAogcxAQEArAcxAQEAtwcxAQEAxQcxAQEA0AcxAREAEQg4AREAOgg8AREApwhaAREArwhe
AVAgAAAAAAYYfQETAAEAWCAAAAAABhh9ARMAAQBgIAAAAAARGLgBFwABAIwgAAAAABMIvwEbAAEA
pCAAAAAAEwjlASgAAQC8IAAAAAATCA4CNQABANQgAAAAABMILAJCAAEA7CAAAAAARgJyAmMAAQAI
IQAAAABGAnsCaAACABwhAAAAAIMAjAJsAAIANCEAAAAARgKUAnEAAgBIIQAAAAARAJ0CeAACAGQh
AAAAAAEAuwKAAAMAgCEAAAAABhh9ARMABACIIQAAAAADCM8CiwAEALwhAAAAAAYYfQETAAQA0CEA
AAAABhh9Aa8ABADgIQAAAABGCiQEuwAJAPQhAAAAAAYIQATAAAkABCIAAAAABghXBMYACgAgIgAA
AABGCm8EuwALAEAiAAAAAIYAhwTLAAsAWCIAAAAAhgCPBMsACwBwIgAAAAAGGH0BEwALAJAiAAAA
AEYC9wTlAAsAwCIAAAAARgMWBe8ADwDUIgAAAABGAykF7wAQANgiAAAAAAYYfQH5ABEA6CIAAAAA
Bgi3Bf8AEgAUIwAAAAAGGH0B+QASACQjAAAAAAYYfQETABMALCMAAAAARgIpBe8AEwD0JAAAAABG
AtcFEwAUAJwlAAAAAEYC4gUTABQA1CUAAAAABgDuBQkBFACIJgAAAABGAgIGEwAVAKwnAAAAAAYI
twVxABUAxCcAAAAABggXBg8BFQDQJwAAAAABCC8GuwAWAPAnAAAAAAEARQYPARYAHCgAAAAAAQC4
BhQBFwC0KAAAAAABANUGGgEYAAgpAAAAAAEA5QYfARkAPCkAAAAAAxh9ARMAGwBEKQAAAAAWCEYI
QAEbAIApAAAAABYIWghFARsAlCkAAAAAFghmCEoBGwCcKQAAAAARGLgBFwAcALApAAAAAAYYfQET
ABwAuCkAAAAAFgi8CGEBHAAAAAEAeQIAAAEAsgIAAAEAsgIAAAEA+AMAAAIAAgQAAAMACwQAAAQA
EwQAAAUAGgQAAAEAUQQAAAEAUQQAAAEABAUAAAIADAUAAAMAEwQAAAQAGgQAAAEAEwQAAAEAPwUA
AAEA+AMAAAEA+AMAAAEAPwUAAAEA9wUAAAEAKQYAAAEAUAYAAAEAyAYAAAEAyAYAAAEA9QYAAAIA
/AYAAAEAUQQJAH0BEwChAH0BawGxAH0BegERAH0BEwC5AH0BEwAkAH0BEwAsAH0BEwA0AH0BEwA8
AH0BEwAkAM8CiwAsAM8CiwA0AM8CiwA8AM8CiwDBAH0BEwDJAH0BEwDRAH0BDwHZABwKFAIZAHIC
YwAZAHsCaAApAD0KIQIZAJQCcQDpAFkKMQIZAH0BEwDxAH0BQQJEABgDkABMALwIiwBMAIMKvgJM
AH0BEwD5AH0BxgA5AH0BrwA5AMcK2AI5ANAK3gIJAX0BDwERAYcEywARAY8EywAZAX0BxgBhAH0B
EwBBAC4L6gIhAVsL8AIpAXwL9gIxAYULaAAhAa8L/QI5AXwLAwNBAegL/wBJAX0BEwBJAYcMDwE5
AJcMDwNJAHwLFAN5AZQCGQNZAH0BDwFJAccKHgN5AbMMJANhAX0BEwB5Ab4MKwNhAYMK3gKBAMYM
MANRAXwLOQNZAc4MPgORAeEMRANpAQQNSwOZAQ8NcQCRARwNFwBxAS4NcQBBANcFEwBpADoNawN5
AEwNEwB5AFQNFANBAOIFEwB5AF8NEwABAWUNcANxAX0BDwExAXkNywBBAYgNDwFhAAIGEwApAb4N
aAAxAfANggOxARUOxgAxAT0OiAO5AVcOEwCxAVcOEwCxAWEOjgOpAWUODwGpAXcOlAOpAYQO3gIB
AY8OJgEhAZUOpAOxAXwLrwO5Ab4OtgPJAcwOvANxANgOaACpAYULaADJAfUOywDRAQoPEwBhACQP
0gPZAUsP2AMxAZcMaABxAF0PaADhAWsP3gNJAIEP7gPpAX0BEwDxAX0BDwH5AX0BEwABAn0BDwEJ
An0BDwEpAEkQSgSJAH0BUASZAH0BEwAZAm8QbQQZAnUQbQQhAn0BEwApAn0B3gIxAn0BEwA5An0B
DwFBAn0BDwFJAn0BDwFRAn0BDwFZAn0BDwFhAn0BDwFpAn0BDwFxAn0BDwF5An0BDwEpAIMA9gEu
ALMDOwUuAMsDOwUuAKsDJAUuAIMDgAQuAIsDnwQuAKMDzQIuAMMDzQIuAHsDdwQuALsDzQIuAJMD
5wQuAJsD9AQuAOsAzQIuACMBHgVAACsAmQFAABMAcQFDABMAcQFDABsAgAFJAIMAzgFjABMAcQFj
ABsAgAFpAIMABwKAACsAmQGDAHsAmQGDAHMAmQGDABsAgAGJAIMA4gGgACsAmQGjAMMASQKjABMA
cQHAACsAmQHDABMAcQHDAOsAzQLgACsAmQHjACMBzQIAARMAcQEAASsAmQEDASMBzQIgASsAmQEg
ARMAcQFAARMAcQFAASsAmQFgASsAmQFgARMAcQFjASMDmQFjASsD+ANjATMDmQFjASMBzQJpAUMD
HQRpATsDBgSAASsAmQGgASsAmQGpARMAZATAASsAmQHAARMAcQHJARMAZATgASsAmQHpAXMDmQEA
AhMAcQEAAisAmQGAAyMBzQLAAyMBzQK6Ab8BxAHJARkCHQIoAi0CPAI8AsQC0wLjAhkCGQIKA1ED
dQObAy0C4wIZAsAD5APzA1gEXwRyBAQAAQAGAAUABwAGAAkACgALAAsADAANAA0ADwAAAKEBTwAA
AFoCVAAAAAkCWQAAAGYCXgAAACIDmAAAAJsEzwAAAK4E1AAAALsE2QAAAM8EzwAAAMkFBAEAAMkF
NAEAAN4HzwAAAAEIUAEAAHIIVQEAAFEEZgECAAQAAwACAAUABQACAAYABwACAAcACQACAA8ACwAC
ABIADQABABMADwABABQAEQACABUAEwACAB0AFQACACUAFwABACYAFwACACcAGQACAC0AGwACAC4A
HQABAC8AHQACADIAHwB1AHUAiACeAaUBrAGzAasCsgIEgAAAAQAAAAAAAAAAAAAAAACoAAAABAAA
AAAAAAAAAAAAAQAKAAAAAAAKAAAAAAAAAAAAAAAKABMAAAAAAAEAAAAAAAAAAAAAAJ0ALgMAAAAA
CwAAAAAAAAAAAAAApgBsAwAAAAALAAAAAAAAAAAAAACmALoDAAAAAAsAAAAAAAAAAAAAAKYAUwUA
AAAACwAAAAAAAAAAAAAApgBYBgAAAAABAAAAAAAAAAAAAACdAEAHAAAAAAQAAAAAAAAAAAAAAAEA
qgEAAAAABAAAAAAAAAAAAAAACgA9DAAAAAACAAAAAAAAAAAAAAABAAoAAAAAAAQAAAAAAAAAAAAA
AAEA8QwAAAAAAAAAAAEAAACXEAAABQAEAAYABAAAABAADACwAgAAEAAZALACAAAAABsAsAItADcC
LQC5AgAAAAAAPE1vZHVsZT4AbXNjb3JsaWIATWljcm9zb2Z0LlZpc3VhbEJhc2ljAE15QXBwbGlj
YXRpb24AU0NfZWJmNThjMGVhMTFhNDNlZjkwNTVmYTE3NWJhYTJhZDcuTXkATXlDb21wdXRlcgBN
eVByb2plY3QATXlXZWJTZXJ2aWNlcwBUaHJlYWRTYWZlT2JqZWN0UHJvdmlkZXJgMQBJbnB1dEJ1
ZmZlcgBTQ19lYmY1OGMwZWExMWE0M2VmOTA1NWZhMTc1YmFhMmFkNwBVc2VyQ29tcG9uZW50AENv
bm5lY3Rpb25zAFZhcmlhYmxlcwBTY3JpcHRNYWluAE15UmVzb3VyY2VzAFNDX2ViZjU4YzBlYTEx
YTQzZWY5MDU1ZmExNzViYWEyYWQ3Lk15LlJlc291cmNlcwBNeVNldHRpbmdzAE1pY3Jvc29mdC5W
aXN1YWxCYXNpYy5BcHBsaWNhdGlvblNlcnZpY2VzAEFwcGxpY2F0aW9uQmFzZQAuY3RvcgBNaWNy
b3NvZnQuVmlzdWFsQmFzaWMuRGV2aWNlcwBDb21wdXRlcgBTeXN0ZW0AT2JqZWN0AC5jY3RvcgBn
ZXRfQ29tcHV0ZXIAbV9Db21wdXRlck9iamVjdFByb3ZpZGVyAGdldF9BcHBsaWNhdGlvbgBtX0Fw
cE9iamVjdFByb3ZpZGVyAFVzZXIAZ2V0X1VzZXIAbV9Vc2VyT2JqZWN0UHJvdmlkZXIAZ2V0X1dl
YlNlcnZpY2VzAG1fTXlXZWJTZXJ2aWNlc09iamVjdFByb3ZpZGVyAEFwcGxpY2F0aW9uAFdlYlNl
cnZpY2VzAEVxdWFscwBvAEdldEhhc2hDb2RlAFR5cGUAR2V0VHlwZQBUb1N0cmluZwBDcmVhdGVf
X0luc3RhbmNlX18AVABpbnN0YW5jZQBEaXNwb3NlX19JbnN0YW5jZV9fAGdldF9HZXRJbnN0YW5j
ZQBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuTXlTZXJ2aWNlcy5JbnRlcm5hbABDb250ZXh0VmFsdWVg
MQBtX0NvbnRleHQAR2V0SW5zdGFuY2UAQ296eVJvYy5TU0lTUGx1cy4yMDEyAENvenlSb2MuU3Fs
U2VydmVyLlNTSVMAU2NyaXB0QnVmZmVyUGx1cwBNaWNyb3NvZnQuU3FsU2VydmVyLlR4U2NyaXB0
AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlBpcGVsaW5lAFNjcmlwdENvbXBvbmVudABNaWNyb3Nv
ZnQuU3FsU2VydmVyLlBpcGVsaW5lSG9zdABQaXBlbGluZUJ1ZmZlcgBPdXRwdXROYW1lTWFwAENv
bXBvbmVudABPYmplY3RJRABJc0lucHV0AEJ1ZmZlcgBPdXRwdXRNYXAAZ2V0X1N0YXRpY0lucHV0
Q29sdW1ucwBHdWlkAHNldF9TYWxlc09yZGVySWQAVmFsdWUAc2V0X1NhbGVzT3JkZXJJZF9Jc051
bGwAZ2V0X1N0YXRpY091dHB1dENvbHVtbnMATmV4dFJvdwBFbmRPZlJvd3NldABTdGF0aWNJbnB1
dENvbHVtbnMAU2FsZXNPcmRlcklkAFNhbGVzT3JkZXJJZF9Jc051bGwAU3RhdGljT3V0cHV0Q29s
dW1ucwBTY3JpcHRDb21wb25lbnRQbHVzAFByb2Nlc3NJbnB1dABJbnB1dElEAElucHV0TmFtZQBJ
bnB1dF9Qcm9jZXNzSW5wdXQASW5wdXRfUHJvY2Vzc0lucHV0Um93AFJvdwBQYXJlbnRDb21wb25l
bnQATWljcm9zb2Z0LlNxbFNlcnZlci5EVFNSdW50aW1lV3JhcABNaWNyb3NvZnQuU3FsU2VydmVy
LkR0cy5SdW50aW1lLldyYXBwZXIASURUU0Nvbm5lY3Rpb25NYW5hZ2VyMTAwAGdldF9Dcm1Db25u
ZWN0aW9uAENybUNvbm5lY3Rpb24AUHJlRXhlY3V0ZQBQb3N0RXhlY3V0ZQBWYWxpZGF0ZQBlcnJN
ZXNzYWdlAFJlaW5pdGlhbGl6ZU1ldGFEYXRhAHNldF9Dcm1Db25uZWN0aW9uAHZhbHVlAGdldF9D
cm1Db25uZWN0aW9uVHlwZQBGaXJlRXJyb3JfAG1lc3NhZ2UATWljcm9zb2Z0LlNxbFNlcnZlci5E
VFNQaXBlbGluZVdyYXAATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUGlwZWxpbmUuV3JhcHBlcgBJ
RFRTSW5wdXRDb2x1bW4xMDAAR2V0SW5wdXRDb2x1bW5fAGV4dGVybmFsTmFtZQBHZXRDb2x1bW5J
bmRleF8AR2V0QnVmZmVyVmFsdWVfAGJ1ZmZlcgBpbmRleABtX2NybUNvbm5lY3Rpb24AQ296eVJv
Yy5EeW5hbWljcy5Dcm0ASUNvbm5lY3Rpb24AbV9jb25uZWN0aW9uAENvenlSb2MuRHluYW1pY3MA
Q296eVJvYy5EeW5hbWljcy5Dcm0yMDExLk9yZ2FuaXphdGlvblNlcnZpY2UAT3JnYW5pemF0aW9u
U2VydmljZUNsaWVudABtX3NlcnZpY2UAbV9xaUluZGV4AG1fcWNkSW5kZXgAbV9xY2Rlc2NJbmRl
eABtX3Fjc0luZGV4AG1fcWNzdWJqSW5kZXgAQ3JtQ29ubmVjdGlvblR5cGUAU3lzdGVtLlJlc291
cmNlcwBSZXNvdXJjZU1hbmFnZXIAX3Jlc01ncgBTeXN0ZW0uR2xvYmFsaXphdGlvbgBDdWx0dXJl
SW5mbwBfcmVzQ3VsdHVyZQBnZXRfUmVzb3VyY2VNYW5hZ2VyAGdldF9DdWx0dXJlAHNldF9DdWx0
dXJlAEN1bHR1cmUAU3lzdGVtLkNvbmZpZ3VyYXRpb24AQXBwbGljYXRpb25TZXR0aW5nc0Jhc2UA
bV9WYWx1ZQBtX1N5bmNPYmplY3QAZ2V0X1ZhbHVlAFN5c3RlbS5Db21wb25lbnRNb2RlbABFZGl0
b3JCcm93c2FibGVBdHRyaWJ1dGUARWRpdG9yQnJvd3NhYmxlU3RhdGUAU3lzdGVtLkNvZGVEb20u
Q29tcGlsZXIAR2VuZXJhdGVkQ29kZUF0dHJpYnV0ZQBTeXN0ZW0uRGlhZ25vc3RpY3MARGVidWdn
ZXJIaWRkZW5BdHRyaWJ1dGUATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkNvbXBpbGVyU2VydmljZXMA
U3RhbmRhcmRNb2R1bGVBdHRyaWJ1dGUASGlkZU1vZHVsZU5hbWVBdHRyaWJ1dGUAU3lzdGVtLkNv
bXBvbmVudE1vZGVsLkRlc2lnbgBIZWxwS2V5d29yZEF0dHJpYnV0ZQBTeXN0ZW0uUnVudGltZS5D
b21waWxlclNlcnZpY2VzAFJ1bnRpbWVIZWxwZXJzAEdldE9iamVjdFZhbHVlAFJ1bnRpbWVUeXBl
SGFuZGxlAEdldFR5cGVGcm9tSGFuZGxlAEFjdGl2YXRvcgBDcmVhdGVJbnN0YW5jZQBNeUdyb3Vw
Q29sbGVjdGlvbkF0dHJpYnV0ZQBzZXRfVmFsdWUAU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZp
Y2VzAENvbVZpc2libGVBdHRyaWJ1dGUAU3RyaW5nAHNldF9JdGVtAFNldE51bGwASW52YWxpZE9w
ZXJhdGlvbkV4Y2VwdGlvbgBTY3JpcHRCdWZmZXIAQ0xTQ29tcGxpYW50QXR0cmlidXRlAElEVFND
b21wb25lbnRNZXRhRGF0YTEwMABnZXRfQ29tcG9uZW50TWV0YURhdGEASURUU0lucHV0Q29sbGVj
dGlvbjEwMABnZXRfSW5wdXRDb2xsZWN0aW9uAElEVFNJbnB1dDEwMABnZXRfSXRlbQBnZXRfSUQA
SURUU1J1bnRpbWVDb25uZWN0aW9uQ29sbGVjdGlvbjEwMABnZXRfUnVudGltZUNvbm5lY3Rpb25D
b2xsZWN0aW9uAElEVFNSdW50aW1lQ29ubmVjdGlvbjEwMABnZXRfQ29ubmVjdGlvbk1hbmFnZXIA
T3JnYW5pemF0aW9uUmVxdWVzdABPcmdhbml6YXRpb25SZXNwb25zZQBFbnRpdHkAT3B0aW9uU2V0
VmFsdWUAU3lzdGVtLldlYi5TZXJ2aWNlcwBTeXN0ZW0uV2ViLlNlcnZpY2VzLlByb3RvY29scwBT
b2FwRXhjZXB0aW9uAEV4Y2VwdGlvbgBzZXRfUmVxdWVzdE5hbWUAZ2V0X0J1ZmZlcgBDb252ZXJ0
AERhdGVUaW1lAFRvRGF0ZVRpbWUAVG9JbnQzMgBFeGVjdXRlAGdldF9JZABQcm9qZWN0RGF0YQBT
ZXRQcm9qZWN0RXJyb3IAU3lzdGVtLlhtbABYbWxOb2RlAGdldF9EZXRhaWwAZ2V0X0lubmVyWG1s
AENsZWFyUHJvamVjdEVycm9yAGdldF9NZXNzYWdlAEFjcXVpcmVDb25uZWN0aW9uAENvbm5lY3QA
R2V0U2VydmljZQBDbG9zZQBJc051bGxPckVtcHR5AEludDMyAGdldF9Jc0F0dGFjaGVkAHNldF9D
b25uZWN0aW9uTWFuYWdlcklEAElEVFNFeHRlcm5hbE1ldGFkYXRhQ29sdW1uMTAwAGdldF9Db3Vu
dABJRFRTRXh0ZXJuYWxNZXRhZGF0YUNvbHVtbkNvbGxlY3Rpb24xMDAAZ2V0X0V4dGVybmFsTWV0
YWRhdGFDb2x1bW5Db2xsZWN0aW9uAHNldF9Jc1VzZWQASURUU0lucHV0Q29sdW1uQ29sbGVjdGlv
bjEwMABnZXRfSW5wdXRDb2x1bW5Db2xsZWN0aW9uAFJlbW92ZUFsbABOZXcAc2V0X05hbWUARGF0
YVR5cGUAc2V0X0RhdGFUeXBlAHNldF9MZW5ndGgARW1wdHkARmlyZUVycm9yAFN5c3RlbS5Db2xs
ZWN0aW9ucwBJRW51bWVyYXRvcgBHZXRFbnVtZXJhdG9yAGdldF9DdXJyZW50AGdldF9FeHRlcm5h
bE1ldGFkYXRhQ29sdW1uSUQATW92ZU5leHQASURpc3Bvc2FibGUARGlzcG9zZQBQaXBlbGluZUNv
bXBvbmVudABnZXRfSG9zdENvbXBvbmVudABJRFRTQnVmZmVyTWFuYWdlcjEwMABnZXRfQnVmZmVy
TWFuYWdlcgBnZXRfTGluZWFnZUlEAEZpbmRDb2x1bW5CeUxpbmVhZ2VJRABJc051bGwAQ296eVJv
Yy5TcWxTZXJ2ZXIuU1NJUy5BdHRyaWJ1dGVzAENvbHVtbk1hcHBpbmdzQXR0cmlidXRlAFZhbGlk
YXRlUHJvcGVydGllc0F0dHJpYnV0ZQBTU0lTU2NyaXB0Q29tcG9uZW50RW50cnlQb2ludEF0dHJp
YnV0ZQBDb25uZWN0aW9uQXR0cmlidXRlAERlc2NyaXB0aW9uQXR0cmlidXRlAFN5c3RlbS5SZWZs
ZWN0aW9uAEFzc2VtYmx5AGdldF9Bc3NlbWJseQBTeXN0ZW0uVGhyZWFkaW5nAE1vbml0b3IARW50
ZXIARXhpdABEZWJ1Z2dlck5vblVzZXJDb2RlQXR0cmlidXRlAFNDX2ViZjU4YzBlYTExYTQzZWY5
MDU1ZmExNzViYWEyYWQ3LlJlc291cmNlcy5yZXNvdXJjZXMAQ29tcGlsYXRpb25SZWxheGF0aW9u
c0F0dHJpYnV0ZQBSdW50aW1lQ29tcGF0aWJpbGl0eUF0dHJpYnV0ZQBTeXN0ZW0uUnVudGltZS5W
ZXJzaW9uaW5nAFRhcmdldEZyYW1ld29ya0F0dHJpYnV0ZQBBc3NlbWJseUZpbGVWZXJzaW9uQXR0
cmlidXRlAEd1aWRBdHRyaWJ1dGUAQXNzZW1ibHlUcmFkZW1hcmtBdHRyaWJ1dGUAQXNzZW1ibHlD
b3B5cmlnaHRBdHRyaWJ1dGUAQXNzZW1ibHlQcm9kdWN0QXR0cmlidXRlAEFzc2VtYmx5Q29tcGFu
eUF0dHJpYnV0ZQBBc3NlbWJseURlc2NyaXB0aW9uQXR0cmlidXRlAEFzc2VtYmx5VGl0bGVBdHRy
aWJ1dGUAU0NfZWJmNThjMGVhMTFhNDNlZjkwNTVmYTE3NWJhYTJhZDcuZGxsAAAAgJtJAHMATgB1
AGwAbAAgAHAAcgBvAHAAZQByAHQAeQAgAGMAYQBuAG4AbwB0ACAAYgBlACAAcwBlAHQAIAB0AG8A
IABGAGEAbABzAGUALgAgAEEAcwBzAGkAZwBuACAAYQAgAHYAYQBsAHUAZQAgAHQAbwAgAHQAaABl
ACAAYwBvAGwAdQBtAG4AIABpAG4AcwB0AGUAYQBkAC4AABlTAGEAbABlAHMATwByAGQAZQByAEkA
ZAAAC0kAbgBwAHUAdAAAG0MAcgBtAEMAbwBuAG4AZQBjAHQAaQBvAG4AADFDAG8AbgB2AGUAcgB0
AFEAdQBvAHQAZQBUAG8AUwBhAGwAZQBzAE8AcgBkAGUAcgAAD1EAdQBvAHQAZQBJAGQAAB1RAHUA
bwB0AGUAQwBsAG8AcwBlAEQAYQB0AGUAACtRAHUAbwB0AGUAQwBsAG8AcwBlAEQAZQBzAGMAcgBp
AHAAdABpAG8AbgAAIVEAdQBvAHQAZQBDAGwAbwBzAGUAUwB0AGEAdAB1AHMAACNRAHUAbwB0AGUA
QwBsAG8AcwBlAFMAdQBiAGoAZQBjAHQAAA1FAG4AdABpAHQAeQAAP1MAZQBsAGUAYwB0ACAARAB5
AG4AYQBtAGkAYwBzACAAQwBSAE0AIABDAG8AbgBuAGUAYwB0AGkAbwBuAC4AADtRAHUAbwB0AGUA
SQBkACAAYwBvAGwAdQBtAG4AIABpAHMAIABuAG8AdAAgAG0AYQBwAHAAZQBkAC4AABVOAG8AIABp
AG4AcAB1AHQAcwAuAAAZRABZAE4AQQBNAEkAQwBTAC0AQwBSAE0AAUNEAHkAbgBhAG0AaQBjAHMA
IABDAFIATQAgAFEAdQBvAHQAZQAgAFQAbwAgAFMAYQBsAGUAcwAgAE8AcgBkAGUAcgAAMU0AeQAu
AFIAZQBzAG8AdQByAGMAZQBzAC4ATQB5AFIAZQBzAG8AdQByAGMAZQBzAAAAAFHF3xatvEZLubmP
RevGVnsACLd6XFYZNOCJCLA/X38R1Qo6AyAAAQMAAAEEAAASDAcGFRIYARIMBAAAEggHBhUSGAES
CAQAABIRBwYVEhgBEhEEAAASFAcGFRIYARIUBAgAEgwECAASCAQIABIRBAgAEhQEIAECHAMgAAgE
IAASFQMgAA4CHgAHEAEBHgAeAAcwAQEBEB4AAhMABCAAEwAHBhUSGQETAAQoABMACBbPSQu4DDTq
CImEXc2AgMyRCyAFARIhCAISJRIpBCAAHQ4FIAEBES0EIAEBAgMgAAIEKAAdDgQoABEtAygAAgMG
EiQDBhIoCSAEAQgOEiUSKQUgAQESHAMGEiEFIAEBEiEEIAASNQQoABI1BSABAhAOBCABAQ4FIAES
OQ4EIAEIDgYgAhwSJQgCBg4DBhI9AwYSQQIGCAMoAA4DBhJFAwYSSQQAABJFBAAAEkkFAAEBEkkE
CAASRQQIABJJAwYSNAIGHAQAABI0BAgAEjQFIAEBEVUIAQABAAAAAAAFIAIBDg4YAQAKTXlUZW1w
bGF0ZQgxMC4wLjAuMAAABAEAAAAGFRIYARIMBhUSGAESCAYVEhgBEhEGFRIYARIUBAcBEgwEBwES
CAQHARIRBAcBEhQTAQAOTXkuQXBwbGljYXRpb24AABMBAA5NeS5XZWJTZXJ2aWNlcwAAEAEAC015
LkNvbXB1dGVyAAAMAQAHTXkuVXNlcgAABAABHBwDBwECAwcBCAYAARIVEXEEBwESFQMHAQ4FEAEA
HgAECgEeAAQHAR4AByAEAQ4ODg5hAQA0U3lzdGVtLldlYi5TZXJ2aWNlcy5Qcm90b2NvbHMuU29h
cEh0dHBDbGllbnRQcm90b2NvbBJDcmVhdGVfX0luc3RhbmNlX18TRGlzcG9zZV9fSW5zdGFuY2Vf
XwAAAAYVEhgBEwAGFRIZARMABAoBEwAFIAEBEwAIBwMTABMAEwAFAQAAAAAEBwEdDgUgAgEIHAQg
AQEIBgcCHQ4dDgUgABKAkQUgABKAlQYgARKAmRwFIAASgJ0GIAESgKEcBAcBEjUEIAASJQQgARwI
BAABDhwFIAIBDhwGAAERgMEcBAABCBwIIAESgKkSgKUEIAEcDgUgABGAxQYAAQESgLkFIAASgM0Z
BwkSgKUSgKkSgK0cEoCxEoC1EoC5ES0RLQQgARwcBAABAg4MBwUCAhKAmRI5EoC5BSAAEoDZBSAA
EoDdBSAAEoDVBiABARGA4QgHAhKA1RKAmQogBgEIDg4OCBACBiABEoDVHAUgABKA5QMgABwRBwYS
gNUSORKAmRI5EjkSgOUFIAASgO0FIAASgPEFIAIICAgJBwQIEoCZEjkIBCABAggEBwIcHA0BAAhW
YWxpZGF0ZQAAFgEAEUNybUNvbm5lY3Rpb25UeXBlAAAsAQAnU2VsZWN0IER5bmFtaWNzIENSTSBD
b25uZWN0aW9uIE1hbmFnZXIuAAAFIAASgQkHIAIBDhKBCQYHAhJFEkUEBwESSQgBAAIAAAAAAAQA
AQEcBAcBEjQIAQAIAAAAAAAeAQABAFQCFldyYXBOb25FeGNlcHRpb25UaHJvd3MBRwEAGi5ORVRG
cmFtZXdvcmssVmVyc2lvbj12NC4wAQBUDhRGcmFtZXdvcmtEaXNwbGF5TmFtZRAuTkVUIEZyYW1l
d29yayA0DAEABzEuMC4wLjAAACkBACQ4MzZjNmE4MS02YzRiLTRmYzktYWQxMy05Y2M4MDYyMzQ5
YjYAAAUBAAEAABYBABFDb3B5cmlnaHQgQCAgMjAxNgAAKAEAI1NDX2ViZjU4YzBlYTExYTQzZWY5
MDU1ZmExNzViYWEyYWQ3AABwUwAAAAAAAAAAAACOUwAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
gFMAAAAAAAAAAAAAAAAAAAAAX0NvckRsbE1haW4AbXNjb3JlZS5kbGwAAAAAAP8lACAAEAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABABAAAAAYAACAAAAA
AAAAAAAAAAAAAAABAAEAAAAwAACAAAAAAAAAAAAAAAAAAAABAAAAAABIAAAAWGAAAIADAAAAAAAA
AAAAAIADNAAAAFYAUwBfAFYARQBSAFMASQBPAE4AXwBJAE4ARgBPAAAAAAC9BO/+AAABAAAAAQAA
AAAAAAABAAAAAAA/AAAAAAAAAAQAAAACAAAAAAAAAAAAAAAAAAAARAAAAAEAVgBhAHIARgBpAGwA
ZQBJAG4AZgBvAAAAAAAkAAQAAABUAHIAYQBuAHMAbABhAHQAaQBvAG4AAAAAAAAAsATgAgAAAQBT
AHQAcgBpAG4AZwBGAGkAbABlAEkAbgBmAG8AAAC8AgAAAQAwADAAMAAwADAANABiADAAAABwACQA
AQBGAGkAbABlAEQAZQBzAGMAcgBpAHAAdABpAG8AbgAAAAAAUwBDAF8AZQBiAGYANQA4AGMAMABl
AGEAMQAxAGEANAAzAGUAZgA5ADAANQA1AGYAYQAxADcANQBiAGEAYQAyAGEAZAA3AAAAMAAIAAEA
RgBpAGwAZQBWAGUAcgBzAGkAbwBuAAAAAAAxAC4AMAAuADAALgAwAAAAcAAoAAEASQBuAHQAZQBy
AG4AYQBsAE4AYQBtAGUAAABTAEMAXwBlAGIAZgA1ADgAYwAwAGUAYQAxADEAYQA0ADMAZQBmADkA
MAA1ADUAZgBhADEANwA1AGIAYQBhADIAYQBkADcALgBkAGwAbAAAAEgAEgABAEwAZQBnAGEAbABD
AG8AcAB5AHIAaQBnAGgAdAAAAEMAbwBwAHkAcgBpAGcAaAB0ACAAQAAgACAAMgAwADEANgAAAHgA
KAABAE8AcgBpAGcAaQBuAGEAbABGAGkAbABlAG4AYQBtAGUAAABTAEMAXwBlAGIAZgA1ADgAYwAw
AGUAYQAxADEAYQA0ADMAZQBmADkAMAA1ADUAZgBhADEANwA1AGIAYQBhADIAYQBkADcALgBkAGwA
bAAAAGgAJAABAFAAcgBvAGQAdQBjAHQATgBhAG0AZQAAAAAAUwBDAF8AZQBiAGYANQA4AGMAMABl
AGEAMQAxAGEANAAzAGUAZgA5ADAANQA1AGYAYQAxADcANQBiAGEAYQAyAGEAZAA3AAAANAAIAAEA
UAByAG8AZAB1AGMAdABWAGUAcgBzAGkAbwBuAAAAMQAuADAALgAwAC4AMAAAADgACAABAEEAcwBz
AGUAbQBiAGwAeQAgAFYAZQByAHMAaQBvAG4AAAAxAC4AMAAuADAALgAwAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAMAAAAoDMAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]></arrayElement></arrayElements></property><property id="7" name="VSTAProjectName" dataType="System.String" description="Specifies the name of the Microsoft Visual Studio Tools for Applications project. Project names must be unique within a package." typeConverter="NOTBROWSABLE">SC_ebf58c0ea11a43ef9055fa175baa2ad7</property><property id="8" name="ScriptLanguage" dataType="System.String" description="Specifies the programming language used by the script." typeConverter="Microsoft.SqlServer.VSTAHosting.ScriptingLanguages, Microsoft.SqlServer.VSTAScriptingLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">VisualBasic</property><property id="15" name="UserComponentTypeName" dataType="System.String">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2012, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea</property></properties><connections><connection id="16" name="CrmConnection" connectionManagerID="{43808767-2912-4FA7-8948-CDE6683A348E}" /></connections><inputs><input id="3" name="Input" hasSideEffects="true"><externalMetadataColumns isUsed="True"><externalMetadataColumn id="20" name="QuoteId" dataType="guid" /><externalMetadataColumn id="21" name="QuoteCloseDate" dataType="dbTimeStamp" /><externalMetadataColumn id="22" name="QuoteCloseDescription" dataType="wstr" length="1000" /><externalMetadataColumn id="23" name="QuoteCloseStatus" dataType="i4" /><externalMetadataColumn id="24" name="QuoteCloseSubject" dataType="wstr" length="250" /></externalMetadataColumns></input></inputs><outputs><output id="4" name="Output" synchronousInputId="3"><outputColumns><outputColumn id="17" name="SalesOrderId" lineageId="17" dataType="guid" /></outputColumns><externalMetadataColumns /></output></outputs></component>