<component id="2" name="Dynamics CRM Quote To Sales Order" componentClassID="Microsoft.ManagedComponentHost" description="Executes a custom script." localeId="1033" version="9" contactInfo="Executes a custom script.;Microsoft Corporation;Microsoft SqlServer v9; © 2004 Microsoft Corporation; All Rights Reserved; http://www.microsoft.com/sql/support;0"><properties><property id="3" name="SourceCode" state="cdata" dataType="System.String" isArray="true" description="Stores the source code of the component" typeConverter="NOTBROWSABLE"><arrayElements arrayElementCount="30"><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("ScriptComponent_3fe65a1a026e44d09602cd9524772938.vbproj")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("Microsoft")> 
<Assembly: AssemblyProduct("ScriptComponent_3fe65a1a026e44d09602cd9524772938.vbproj")> 
<Assembly: AssemblyCopyright("Copyright @ Microsoft 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("b2ee5dfc-aa58-4bf5-b794-e359d4c0bfbc")> 

' 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[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


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


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub Input_ProcessInputRow(ByVal Row As InputBuffer)
        Try
            Dim 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[scriptcomponent_3fe65a1a026e44d09602cd9524772938.vbproj]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF16LE]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="utf-16"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <!-- 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>{30D016F9-3734-4E33-A861-5E7D899E18F3};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <OutputType>Library</OutputType>
    <RootNamespace>ScriptComponent_3fe65a1a026e44d09602cd9524772938.vbproj</RootNamespace>
    <AssemblyName>ScriptComponent_3fe65a1a026e44d09602cd9524772938.vbproj</AssemblyName>
    <StartupObject>
    </StartupObject>
    <OptionExplicit>On</OptionExplicit>
    <OptionCompare>Binary</OptionCompare>
    <OptionStrict>Off</OptionStrict>
    <OptionInfer>On</OptionInfer>
    <ProjectGuid>{53E8FF77-DB78-4A5D-8BD3-FD31D359A042}</ProjectGuid>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <TargetFrameworkProfile>
    </TargetFrameworkProfile>
  </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,42353,42354,42355</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,42353,42354,42355</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="Microsoft.SqlServer.ManagedDTS, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.SqlServer.ManagedDTS\v4.0_12.0.0.0__89845dcd8080cc91\Microsoft.SqlServer.ManagedDTS.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=12.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91">
      <Private>False</Private>
    </Reference>
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=12.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91">
      <Private>False</Private>
    </Reference>
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=12.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91">
      <Private>False</Private>
    </Reference>
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=12.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91">
      <Private>False</Private>
    </Reference>
    <Reference Include="CozyRoc.SSISPlus.2014, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea">
      <Private>False</Private>
    </Reference>
  </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="{30D016F9-3734-4E33-A861-5E7D899E18F3}">
        <ProjectProperties HostName="VSTAHostName" HostPackage="{B3A685AA-7EAF-4BC6-9940-57959FA5AC07}" ApplicationType="usd" Language="vb" TemplatesPath="" />
        <Host Name="SSIS_ScriptComponent" />
        <ProjectClient>
          <HostIdentifier>SSIS_SC120</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
</Project>]]></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[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[Project]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF16LE]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<c:Project xmlns:c="http://schemas.microsoft.com/codeprojectml/2010/08/main" xmlns:msb="http://schemas.microsoft.com/developer/msbuild/2003" runtimeVersion="4.0" schemaVersion="1.0">
	<msb:PropertyGroup>
		<msb:Language>msBuild</msb:Language>
		<msb:CodeName>scriptcomponent_3fe65a1a026e44d09602cd9524772938</msb:CodeName>
		<msb:DisplayName>scriptcomponent_3fe65a1a026e44d09602cd9524772938</msb:DisplayName>
		<msb:ProjectId>{7BF730B4-3940-4143-B41E-92062EAD6C38}</msb:ProjectId>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:Project Include="scriptcomponent_3fe65a1a026e44d09602cd9524772938.vbproj"/>
		<msb:File Include="BufferWrapper.vb"/>
		<msb:File Include="main.vb"/>
		<msb:File Include="My Project\Settings.Designer.vb"/>
		<msb:File Include="ComponentWrapper.vb"/>
		<msb:File Include="My Project\Resources.resx"/>
		<msb:File Include="My Project\AssemblyInfo.vb"/>
		<msb:File Include="My Project\Resources.Designer.vb"/>
		<msb:File Include="My Project\Settings.settings"/>
	</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="4" name="BinaryCode" state="cdata" dataType="System.String" isArray="true" description="Stores the binary representation of the component" typeConverter="NOTBROWSABLE"><arrayElements arrayElementCount="2"><arrayElement dataType="System.String"><![CDATA[ScriptComponent_3fe65a1a026e44d09602cd9524772938.vbproj.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAgAAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1v
ZGUuDQ0KJAAAAAAAAABQRQAATAEDAFQKYFgAAAAAAAAAAOAAAiELAQsAADYAAAAIAAAAAAAALlQA
AAAgAAAAYAAAAAAAEAAgAAAAAgAABAAAAAAAAAAEAAAAAAAAAACgAAAAAgAAAAAAAAIAQIUAABAA
ABAAAAAAEAAAEAAAAAAAABAAAAAAAAAAAAAAANhTAABTAAAAAGAAAMAEAAAAAAAAAAAAAAAAAAAA
AAAAAIAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAIAAACAAAAAAAAAAAAAAACCAAAEgAAAAAAAAAAAAAAC50ZXh0AAAANDQAAAAgAAAANgAAAAIA
AAAAAAAAAAAAAAAAACAAAGAucnNyYwAAAMAEAAAAYAAAAAYAAAA4AAAAAAAAAAAAAAAAAABAAABA
LnJlbG9jAAAMAAAAAIAAAAACAAAAPgAAAAAAAAAAAAAAAAAAQAAAQgAAAAAAAAAAAAAAAAAAAAAQ
VAAAAAAAAEgAAAACAAUAzCoAAAwpAAABAAAAAAAAABQqAAC4AAAAAAAAAAAAAAAAAAAAAAAAAAAA
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+AAD0DQAAlBIAACNTdHJpbmdzAAAAAIggAADkAgAAI1VTAGwjAAAQAAAAI0dV
SUQAAAB8IwAAkAUAACNCbG9iAAAAAAAAAAIAAAFXFaIJCQ8AAAD6JTMAFgAAAQAAAE8AAAANAAAA
FQAAADIAAAAbAAAAeQAAAD4AAAAcAAAABwAAAA8AAAARAAAACQAAAAEAAAAMAAAAAQAAAAIAAAAD
AAAAAgAAAAAAVxIBAAAAAAAKAKkBfwEKAN0BvwEGAO0B5gEKAEUCfwEGAMMC5gEKAEUDGwMOAJcD
gAMSAOYDxQMWABcExQMSACYExQMGAHcE5gEOAB8FgAMaANoFsgUeAOEGuAYOAGMHTgciALoHjQcG
AD0ILAgGAGoIVQgmAMsItggmABgJAgkmADEJAgkmAF4JRgkGAIgJdQkKAMcJoAkKAN8JEwAmABQK
9wkGAEkKKQoGAGcK5gEGAIsK5gEKAKQKEwAGAOgKyQoGAPwK5gEGABQL5gESAC4LxQMGADsL5gEe
AFELuAYeAIALuAYeAKsLuAYeAMgLuAYeAAsMuAYiADoMjQciAE4MjQciAGMMjQciAGoMjQcqAKsM
jQwGALkM5gEGAN4M5gEGAOYM5gEuAHcE5gEKABENoAkyADgNLQ0GAK8N5gEeANwNuAYeAAQOuAYe
AFwOuAYaAKoOsgUGAO4O2w4GADoP5gEWAE4PxQMeAHIPuAYSAMQPxQMOAA0Q6w8OACUQ6w8OAEEQ
6w8mAFUQAgkGAHwQahAGAKMQkhAGALYQdQkGAB8RKQoGAD8RKQoGAHcRXREGAJARahAGAK0RyQoG
ALsRahAGANYRahAGAPERahAGAAoSahAGACMSahAGAEASahAAAAAAAQAAAAAAAQABAAAAAAApADcA
BQABAAEAAAAAAHIANwAJAAEAAgAAARAAfQA3AA0AAQADAAUBAACHAAAADQAFAAgABQEAAJUAAAAN
AAUADwABAAAAsAC8AB0ABgARAAEAAAD0ALwAMQAGABgAAQAAAAIBvAANAAgAHAABAAAADgG8AA0A
CQAeAAEAAAAYAbwAIAAKAB8AAAAAACMBLwENABIALAAAARAAdAG8AE0AFAAwADEACAIgADEAMQIt
ADEAUwI6ADEAeAJHACEAVAOQAAYAAgHdAAYADgHhAAEAfwX1AAEAfwX1AAEAPgcmAQEAbwcpAQEA
1ActAQEA3gcxAQEA6AcxAQEA8wcxAQEAAQgxAQEADAgxAREATQg4AREAdgg8AREA4whaAREA6whe
AVAgAAAAAAYYuQETAAEAWCAAAAAABhi5ARMAAQBgIAAAAAARGPQBFwABAIwgAAAAABMI+wEbAAEA
pCAAAAAAEwghAigAAQC8IAAAAAATCEoCNQABANQgAAAAABMIaAJCAAEA7CAAAAAARgKuAmMAAQAI
IQAAAABGArcCaAACABwhAAAAAIMAyAJsAAIANCEAAAAARgLQAnEAAgBIIQAAAAARANkCeAACAGQh
AAAAAAEA9wKAAAMAgCEAAAAABhi5ARMABACIIQAAAAADCAsDiwAEALwhAAAAAAYYuQETAAQA0CEA
AAAABhi5Aa8ABADgIQAAAABGCmAEuwAJAPQhAAAAAAYIfATAAAkABCIAAAAABgiTBMYACgAgIgAA
AABGCqsEuwALAEAiAAAAAIYAwwTLAAsAWCIAAAAAhgDLBMsACwBwIgAAAAAGGLkBEwALAJAiAAAA
AEYCMwXlAAsAwCIAAAAARgNSBe8ADwDUIgAAAABGA2UF7wAQANgiAAAAAAYYuQH5ABEA6CIAAAAA
BgjzBf8AEgAUIwAAAAAGGLkB+QASACQjAAAAAAYYuQETABMALCMAAAAARgJlBe8AEwD0JAAAAABG
AhMGEwAUAJwlAAAAAEYCHgYTABQA1CUAAAAABgAqBgkBFACIJgAAAABGAj4GEwAVAKwnAAAAAAYI
8wVxABUAxCcAAAAABghTBg8BFQDQJwAAAAABCGsGuwAWAPAnAAAAAAEAgQYPARYAHCgAAAAAAQD0
BhQBFwC0KAAAAAABABEHGgEYAAgpAAAAAAEAIQcfARkAPCkAAAAAAxi5ARMAGwBEKQAAAAAWCIII
QAEbAIApAAAAABYIlghFARsAlCkAAAAAFgiiCEoBGwCcKQAAAAARGPQBFwAcALApAAAAAAYYuQET
ABwAuCkAAAAAFgj4CGEBHAAAAAEAtQIAAAEA7gIAAAEA7gIAAAEANAQAAAIAPgQAAAMARwQAAAQA
TwQAAAUAVgQAAAEAjQQAAAEAjQQAAAEAQAUAAAIASAUAAAMATwQAAAQAVgQAAAEATwQAAAEAewUA
AAEANAQAAAEANAQAAAEAewUAAAEAMwYAAAEAZQYAAAEAjAYAAAEABAcAAAEABAcAAAEAMQcAAAIA
OAcAAAEAjQQJALkBEwChALkBawGxALkBegERALkBEwC5ALkBEwAkALkBEwAsALkBEwA0ALkBEwA8
ALkBEwAkAAsDiwAsAAsDiwA0AAsDiwA8AAsDiwDBALkBEwDJALkBEwDRALkBDwHZAFgKFAIZAK4C
YwAZALcCaAApAHkKIQIZANACcQDpAJUKMQIZALkBEwDxALkBQQJEAFQDkABMAPgIiwBMAL8KvgJM
ALkBEwD5ALkBxgA5ALkBrwA5AAML2AI5AAwL3gIJAbkBDwERAcMEywARAcsEywAZAbkBxgBhALkB
EwBBAGoL6gIhAZcL8AIpAbgL9gIxAcELaAAhAesL/QI5AbgLAwNBASQM/wBJAbkBEwBJAcMMDwE5
ANMMDwNJALgLFAN5AdACGQNZALkBDwFJAQMLHgN5Ae8MJANhAbkBEwB5AfoMKwNhAb8K3gKBAAIN
MANRAbgLOQNZAQoNPgORAR0NRANpAUANSwOZAUsNcQCRAVgNFwBxAWoNcQBBABMGEwBpAHYNawN5
AIgNEwB5AJANFANBAB4GEwB5AJsNEwABAaENcANxAbkBDwExAbUNywBBAcQNDwFhAD4GEwApAfoN
aAAxASwOggOxAVEOxgAxAXkOiAO5AZMOEwCxAZMOEwCxAZ0OjgOpAaEODwGpAbMOlAOpAcAO3gIB
AcsOJgEhAdEOpAOxAbgLrwO5AfoOtgPJAQgPvANxABQPaACpAcELaADJATEPywDRAUYPEwBhAGAP
0gPZAYcP2AMxAdMMaABxAJkPaADhAacP3gNJAL0P7gPpAbkBEwDxAbkBEwD5AbkBDwEBArkBDwEJ
ArkBDwEpAIUQSgSJALkBUASZALkBEwAZAqsQbQQZArEQbQQhArkBEwApArkB3gIxArkBEwA5ArkB
DwFBArkBDwFJArkBDwFRArkBDwFZArkBDwFhArkBDwFpArkBDwFxArkBDwF5ArkBDwEpAIMA4gEu
AKMDzQIuALsDgQUuAMMDzQIuACMBHgUuAMsDRAUuAJsD9AQuAKsDJAUuALMDRAUuAOsAzQIuAHsD
dwQuAIMDgAQuAIsDnwQuAJMD5wRAACsAmQFAABMAcQFDABMAcQFDABsAgAFJAIMAzgFjABsAgAFj
ABMAcQFpAIMA8wGAACsAmQGDAHMAmQGDABsAgAGDAHsAmQGJAIMAAAKgACsAmQGjABMAcQGjAMMA
SQLAACsAmQHDAOsAzQLDABMAcQHgACsAmQHjACMBzQIAARMAcQEAASsAmQEDASMBzQIgARMAcQEg
ASsAmQFAASsAmQFAARMAcQFgARMAcQFgASsAmQFjATMD+ANjASMBzQJjASsDmQFjASMDmQFpATsD
BgRpAUMDHQSAASsAmQGgASsAmQGpARMAZATAASsAmQHAARMAcQHJARMAZATgASsAmQHpAXMDmQEA
AhMAcQEAAisAmQGAAyMBzQLAAyMBzQK6Ab8BxAHJARkCHQIoAi0CPAI8AsQC0wLjAhkCGQIKA1ED
dQObAy0C4wIZAsAD5APzA1gEXwRyBAQAAQAGAAUABwAGAAkACgALAAsADAANAA0ADwAAAN0BTwAA
AJYCVAAAAEUCWQAAAKICXgAAAF4DmAAAANcEzwAAAOoE1AAAAPcE2QAAAAsFzwAAAAUGBAEAAAUG
NAEAABoIzwAAAD0IUAEAAK4IVQEAAI0EZgECAAQAAwACAAUABQACAAYABwACAAcACQACAA8ACwAC
ABIADQABABMADwABABQAEQACABUAEwACAB0AFQACACUAFwABACYAFwACACcAGQACAC0AGwACAC4A
HQABAC8AHQACADIAHwB1AHUAiACeAaUBrAGzAasCsgIEgAAAAQAAAAAAAAAAAAAAAAC8AAAABAAA
AAAAAAAAAAAAAQAKAAAAAAAKAAAAAAAAAAAAAAAKABMAAAAAAAEAAAAAAAAAAAAAAJ0AagMAAAAA
DAAAAAAAAAAAAAAApgCoAwAAAAAMAAAAAAAAAAAAAACmAPYDAAAAAAwAAAAAAAAAAAAAAKYAjwUA
AAAADAAAAAAAAAAAAAAApgCUBgAAAAABAAAAAAAAAAAAAACdAHwHAAAAAAQAAAAAAAAAAAAAAAEA
5gEAAAAABAAAAAAAAAAAAAAACgB5DAAAAAACAAAAAAAAAAAAAAABAAoAAAAAAAQAAAAAAAAAAAAA
AAEALQ0AAAAAAAAAAAEAAADTEAAABQAEAAYABAAAABAADADsAgAAEAAZAOwCAAAAABsA7AItADcC
LQC5AgAAAAAAPE1vZHVsZT4AbXNjb3JsaWIATWljcm9zb2Z0LlZpc3VhbEJhc2ljAE15QXBwbGlj
YXRpb24AU2NyaXB0Q29tcG9uZW50XzNmZTY1YTFhMDI2ZTQ0ZDA5NjAyY2Q5NTI0NzcyOTM4LnZi
cHJvai5NeQBNeUNvbXB1dGVyAE15UHJvamVjdABNeVdlYlNlcnZpY2VzAFRocmVhZFNhZmVPYmpl
Y3RQcm92aWRlcmAxAElucHV0QnVmZmVyAFNjcmlwdENvbXBvbmVudF8zZmU2NWExYTAyNmU0NGQw
OTYwMmNkOTUyNDc3MjkzOC52YnByb2oAVXNlckNvbXBvbmVudABDb25uZWN0aW9ucwBWYXJpYWJs
ZXMAU2NyaXB0TWFpbgBNeVJlc291cmNlcwBTY3JpcHRDb21wb25lbnRfM2ZlNjVhMWEwMjZlNDRk
MDk2MDJjZDk1MjQ3NzI5MzgudmJwcm9qLk15LlJlc291cmNlcwBNeVNldHRpbmdzAE1pY3Jvc29m
dC5WaXN1YWxCYXNpYy5BcHBsaWNhdGlvblNlcnZpY2VzAEFwcGxpY2F0aW9uQmFzZQAuY3RvcgBN
aWNyb3NvZnQuVmlzdWFsQmFzaWMuRGV2aWNlcwBDb21wdXRlcgBTeXN0ZW0AT2JqZWN0AC5jY3Rv
cgBnZXRfQ29tcHV0ZXIAbV9Db21wdXRlck9iamVjdFByb3ZpZGVyAGdldF9BcHBsaWNhdGlvbgBt
X0FwcE9iamVjdFByb3ZpZGVyAFVzZXIAZ2V0X1VzZXIAbV9Vc2VyT2JqZWN0UHJvdmlkZXIAZ2V0
X1dlYlNlcnZpY2VzAG1fTXlXZWJTZXJ2aWNlc09iamVjdFByb3ZpZGVyAEFwcGxpY2F0aW9uAFdl
YlNlcnZpY2VzAEVxdWFscwBvAEdldEhhc2hDb2RlAFR5cGUAR2V0VHlwZQBUb1N0cmluZwBDcmVh
dGVfX0luc3RhbmNlX18AVABpbnN0YW5jZQBEaXNwb3NlX19JbnN0YW5jZV9fAGdldF9HZXRJbnN0
YW5jZQBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuTXlTZXJ2aWNlcy5JbnRlcm5hbABDb250ZXh0VmFs
dWVgMQBtX0NvbnRleHQAR2V0SW5zdGFuY2UAQ296eVJvYy5TU0lTUGx1cy4yMDE0AENvenlSb2Mu
U3FsU2VydmVyLlNTSVMAU2NyaXB0QnVmZmVyUGx1cwBNaWNyb3NvZnQuU3FsU2VydmVyLlR4U2Ny
aXB0AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlBpcGVsaW5lAFNjcmlwdENvbXBvbmVudABNaWNy
b3NvZnQuU3FsU2VydmVyLlBpcGVsaW5lSG9zdABQaXBlbGluZUJ1ZmZlcgBPdXRwdXROYW1lTWFw
AENvbXBvbmVudABPYmplY3RJRABJc0lucHV0AEJ1ZmZlcgBPdXRwdXRNYXAAZ2V0X1N0YXRpY0lu
cHV0Q29sdW1ucwBHdWlkAHNldF9TYWxlc09yZGVySWQAVmFsdWUAc2V0X1NhbGVzT3JkZXJJZF9J
c051bGwAZ2V0X1N0YXRpY091dHB1dENvbHVtbnMATmV4dFJvdwBFbmRPZlJvd3NldABTdGF0aWNJ
bnB1dENvbHVtbnMAU2FsZXNPcmRlcklkAFNhbGVzT3JkZXJJZF9Jc051bGwAU3RhdGljT3V0cHV0
Q29sdW1ucwBTY3JpcHRDb21wb25lbnRQbHVzAFByb2Nlc3NJbnB1dABJbnB1dElEAElucHV0TmFt
ZQBJbnB1dF9Qcm9jZXNzSW5wdXQASW5wdXRfUHJvY2Vzc0lucHV0Um93AFJvdwBQYXJlbnRDb21w
b25lbnQATWljcm9zb2Z0LlNxbFNlcnZlci5EVFNSdW50aW1lV3JhcABNaWNyb3NvZnQuU3FsU2Vy
dmVyLkR0cy5SdW50aW1lLldyYXBwZXIASURUU0Nvbm5lY3Rpb25NYW5hZ2VyMTAwAGdldF9Dcm1D
b25uZWN0aW9uAENybUNvbm5lY3Rpb24AUHJlRXhlY3V0ZQBQb3N0RXhlY3V0ZQBWYWxpZGF0ZQBl
cnJNZXNzYWdlAFJlaW5pdGlhbGl6ZU1ldGFEYXRhAHNldF9Dcm1Db25uZWN0aW9uAHZhbHVlAGdl
dF9Dcm1Db25uZWN0aW9uVHlwZQBGaXJlRXJyb3JfAG1lc3NhZ2UATWljcm9zb2Z0LlNxbFNlcnZl
ci5EVFNQaXBlbGluZVdyYXAATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUGlwZWxpbmUuV3JhcHBl
cgBJRFRTSW5wdXRDb2x1bW4xMDAAR2V0SW5wdXRDb2x1bW5fAGV4dGVybmFsTmFtZQBHZXRDb2x1
bW5JbmRleF8AR2V0QnVmZmVyVmFsdWVfAGJ1ZmZlcgBpbmRleABtX2NybUNvbm5lY3Rpb24AQ296
eVJvYy5EeW5hbWljcy5Dcm0ASUNvbm5lY3Rpb24AbV9jb25uZWN0aW9uAENvenlSb2MuRHluYW1p
Y3MAQ296eVJvYy5EeW5hbWljcy5Dcm0yMDExLk9yZ2FuaXphdGlvblNlcnZpY2UAT3JnYW5pemF0
aW9uU2VydmljZUNsaWVudABtX3NlcnZpY2UAbV9xaUluZGV4AG1fcWNkSW5kZXgAbV9xY2Rlc2NJ
bmRleABtX3Fjc0luZGV4AG1fcWNzdWJqSW5kZXgAQ3JtQ29ubmVjdGlvblR5cGUAU3lzdGVtLlJl
c291cmNlcwBSZXNvdXJjZU1hbmFnZXIAX3Jlc01ncgBTeXN0ZW0uR2xvYmFsaXphdGlvbgBDdWx0
dXJlSW5mbwBfcmVzQ3VsdHVyZQBnZXRfUmVzb3VyY2VNYW5hZ2VyAGdldF9DdWx0dXJlAHNldF9D
dWx0dXJlAEN1bHR1cmUAU3lzdGVtLkNvbmZpZ3VyYXRpb24AQXBwbGljYXRpb25TZXR0aW5nc0Jh
c2UAbV9WYWx1ZQBtX1N5bmNPYmplY3QAZ2V0X1ZhbHVlAFN5c3RlbS5Db21wb25lbnRNb2RlbABF
ZGl0b3JCcm93c2FibGVBdHRyaWJ1dGUARWRpdG9yQnJvd3NhYmxlU3RhdGUAU3lzdGVtLkNvZGVE
b20uQ29tcGlsZXIAR2VuZXJhdGVkQ29kZUF0dHJpYnV0ZQBTeXN0ZW0uRGlhZ25vc3RpY3MARGVi
dWdnZXJIaWRkZW5BdHRyaWJ1dGUATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkNvbXBpbGVyU2Vydmlj
ZXMAU3RhbmRhcmRNb2R1bGVBdHRyaWJ1dGUASGlkZU1vZHVsZU5hbWVBdHRyaWJ1dGUAU3lzdGVt
LkNvbXBvbmVudE1vZGVsLkRlc2lnbgBIZWxwS2V5d29yZEF0dHJpYnV0ZQBTeXN0ZW0uUnVudGlt
ZS5Db21waWxlclNlcnZpY2VzAFJ1bnRpbWVIZWxwZXJzAEdldE9iamVjdFZhbHVlAFJ1bnRpbWVU
eXBlSGFuZGxlAEdldFR5cGVGcm9tSGFuZGxlAEFjdGl2YXRvcgBDcmVhdGVJbnN0YW5jZQBNeUdy
b3VwQ29sbGVjdGlvbkF0dHJpYnV0ZQBzZXRfVmFsdWUAU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNl
cnZpY2VzAENvbVZpc2libGVBdHRyaWJ1dGUAU3RyaW5nAHNldF9JdGVtAFNldE51bGwASW52YWxp
ZE9wZXJhdGlvbkV4Y2VwdGlvbgBTY3JpcHRCdWZmZXIAQ0xTQ29tcGxpYW50QXR0cmlidXRlAElE
VFNDb21wb25lbnRNZXRhRGF0YTEwMABnZXRfQ29tcG9uZW50TWV0YURhdGEASURUU0lucHV0Q29s
bGVjdGlvbjEwMABnZXRfSW5wdXRDb2xsZWN0aW9uAElEVFNJbnB1dDEwMABnZXRfSXRlbQBnZXRf
SUQASURUU1J1bnRpbWVDb25uZWN0aW9uQ29sbGVjdGlvbjEwMABnZXRfUnVudGltZUNvbm5lY3Rp
b25Db2xsZWN0aW9uAElEVFNSdW50aW1lQ29ubmVjdGlvbjEwMABnZXRfQ29ubmVjdGlvbk1hbmFn
ZXIAT3JnYW5pemF0aW9uUmVxdWVzdABPcmdhbml6YXRpb25SZXNwb25zZQBFbnRpdHkAT3B0aW9u
U2V0VmFsdWUAU3lzdGVtLldlYi5TZXJ2aWNlcwBTeXN0ZW0uV2ViLlNlcnZpY2VzLlByb3RvY29s
cwBTb2FwRXhjZXB0aW9uAEV4Y2VwdGlvbgBzZXRfUmVxdWVzdE5hbWUAZ2V0X0J1ZmZlcgBDb252
ZXJ0AERhdGVUaW1lAFRvRGF0ZVRpbWUAVG9JbnQzMgBFeGVjdXRlAGdldF9JZABQcm9qZWN0RGF0
YQBTZXRQcm9qZWN0RXJyb3IAU3lzdGVtLlhtbABYbWxOb2RlAGdldF9EZXRhaWwAZ2V0X0lubmVy
WG1sAENsZWFyUHJvamVjdEVycm9yAGdldF9NZXNzYWdlAEFjcXVpcmVDb25uZWN0aW9uAENvbm5l
Y3QAR2V0U2VydmljZQBDbG9zZQBJc051bGxPckVtcHR5AEludDMyAGdldF9Jc0F0dGFjaGVkAHNl
dF9Db25uZWN0aW9uTWFuYWdlcklEAElEVFNFeHRlcm5hbE1ldGFkYXRhQ29sdW1uMTAwAGdldF9D
b3VudABJRFRTRXh0ZXJuYWxNZXRhZGF0YUNvbHVtbkNvbGxlY3Rpb24xMDAAZ2V0X0V4dGVybmFs
TWV0YWRhdGFDb2x1bW5Db2xsZWN0aW9uAHNldF9Jc1VzZWQASURUU0lucHV0Q29sdW1uQ29sbGVj
dGlvbjEwMABnZXRfSW5wdXRDb2x1bW5Db2xsZWN0aW9uAFJlbW92ZUFsbABOZXcAc2V0X05hbWUA
RGF0YVR5cGUAc2V0X0RhdGFUeXBlAHNldF9MZW5ndGgARW1wdHkARmlyZUVycm9yAFN5c3RlbS5D
b2xsZWN0aW9ucwBJRW51bWVyYXRvcgBHZXRFbnVtZXJhdG9yAGdldF9DdXJyZW50AGdldF9FeHRl
cm5hbE1ldGFkYXRhQ29sdW1uSUQATW92ZU5leHQASURpc3Bvc2FibGUARGlzcG9zZQBQaXBlbGlu
ZUNvbXBvbmVudABnZXRfSG9zdENvbXBvbmVudABJRFRTQnVmZmVyTWFuYWdlcjEwMABnZXRfQnVm
ZmVyTWFuYWdlcgBnZXRfTGluZWFnZUlEAEZpbmRDb2x1bW5CeUxpbmVhZ2VJRABJc051bGwAU1NJ
U1NjcmlwdENvbXBvbmVudEVudHJ5UG9pbnRBdHRyaWJ1dGUAQ296eVJvYy5TcWxTZXJ2ZXIuU1NJ
Uy5BdHRyaWJ1dGVzAENvbHVtbk1hcHBpbmdzQXR0cmlidXRlAFZhbGlkYXRlUHJvcGVydGllc0F0
dHJpYnV0ZQBDb25uZWN0aW9uQXR0cmlidXRlAERlc2NyaXB0aW9uQXR0cmlidXRlAFN5c3RlbS5S
ZWZsZWN0aW9uAEFzc2VtYmx5AGdldF9Bc3NlbWJseQBTeXN0ZW0uVGhyZWFkaW5nAE1vbml0b3IA
RW50ZXIARXhpdABEZWJ1Z2dlck5vblVzZXJDb2RlQXR0cmlidXRlAFNjcmlwdENvbXBvbmVudF8z
ZmU2NWExYTAyNmU0NGQwOTYwMmNkOTUyNDc3MjkzOC52YnByb2ouUmVzb3VyY2VzLnJlc291cmNl
cwBDb21waWxhdGlvblJlbGF4YXRpb25zQXR0cmlidXRlAFJ1bnRpbWVDb21wYXRpYmlsaXR5QXR0
cmlidXRlAFN5c3RlbS5SdW50aW1lLlZlcnNpb25pbmcAVGFyZ2V0RnJhbWV3b3JrQXR0cmlidXRl
AEFzc2VtYmx5RmlsZVZlcnNpb25BdHRyaWJ1dGUAR3VpZEF0dHJpYnV0ZQBBc3NlbWJseVRyYWRl
bWFya0F0dHJpYnV0ZQBBc3NlbWJseUNvcHlyaWdodEF0dHJpYnV0ZQBBc3NlbWJseVByb2R1Y3RB
dHRyaWJ1dGUAQXNzZW1ibHlDb21wYW55QXR0cmlidXRlAEFzc2VtYmx5RGVzY3JpcHRpb25BdHRy
aWJ1dGUAQXNzZW1ibHlUaXRsZUF0dHJpYnV0ZQBTY3JpcHRDb21wb25lbnRfM2ZlNjVhMWEwMjZl
NDRkMDk2MDJjZDk1MjQ3NzI5MzgudmJwcm9qLmRsbAAAAICbSQBzAE4AdQBsAGwAIABwAHIAbwBw
AGUAcgB0AHkAIABjAGEAbgBuAG8AdAAgAGIAZQAgAHMAZQB0ACAAdABvACAARgBhAGwAcwBlAC4A
IABBAHMAcwBpAGcAbgAgAGEAIAB2AGEAbAB1AGUAIAB0AG8AIAB0AGgAZQAgAGMAbwBsAHUAbQBu
ACAAaQBuAHMAdABlAGEAZAAuAAAZUwBhAGwAZQBzAE8AcgBkAGUAcgBJAGQAAAtJAG4AcAB1AHQA
ABtDAHIAbQBDAG8AbgBuAGUAYwB0AGkAbwBuAAAxQwBvAG4AdgBlAHIAdABRAHUAbwB0AGUAVABv
AFMAYQBsAGUAcwBPAHIAZABlAHIAAA9RAHUAbwB0AGUASQBkAAAdUQB1AG8AdABlAEMAbABvAHMA
ZQBEAGEAdABlAAArUQB1AG8AdABlAEMAbABvAHMAZQBEAGUAcwBjAHIAaQBwAHQAaQBvAG4AACFR
AHUAbwB0AGUAQwBsAG8AcwBlAFMAdABhAHQAdQBzAAAjUQB1AG8AdABlAEMAbABvAHMAZQBTAHUA
YgBqAGUAYwB0AAANRQBuAHQAaQB0AHkAAD9TAGUAbABlAGMAdAAgAEQAeQBuAGEAbQBpAGMAcwAg
AEMAUgBNACAAQwBvAG4AbgBlAGMAdABpAG8AbgAuAAA7UQB1AG8AdABlAEkAZAAgAGMAbwBsAHUA
bQBuACAAaQBzACAAbgBvAHQAIABtAGEAcABwAGUAZAAuAAAVTgBvACAAaQBuAHAAdQB0AHMALgAA
GUQAWQBOAEEATQBJAEMAUwAtAEMAUgBNAAFDRAB5AG4AYQBtAGkAYwBzACAAQwBSAE0AIABRAHUA
bwB0AGUAIABUAG8AIABTAGEAbABlAHMAIABPAHIAZABlAHIAADFNAHkALgBSAGUAcwBvAHUAcgBj
AGUAcwAuAE0AeQBSAGUAcwBvAHUAcgBjAGUAcwAAAACRXsTQKktuQorWMA20dkEhAAi3elxWGTTg
iQiwP19/EdUKOgMgAAEDAAABBAAAEgwHBhUSGAESDAQAABIIBwYVEhgBEggEAAASEQcGFRIYARIR
BAAAEhQHBhUSGAESFAQIABIMBAgAEggECAASEQQIABIUBCABAhwDIAAIBCAAEhUDIAAOAh4ABxAB
AR4AHgAHMAEBARAeAAITAAQgABMABwYVEhkBEwAEKAATAAgWz0kLuAw06giJhF3NgIDMkQsgBQES
IQgCEiUSKQQgAB0OBSABAREtBCABAQIDIAACBCgAHQ4EKAARLQMoAAIDBhIkAwYSKAkgBAEIDhIl
EikFIAEBEhwDBhIhBSABARIhBCAAEjUEKAASNQUgAQIQDgQgAQEOBSABEjkOBCABCA4GIAIcEiUI
AgYOAwYSPQMGEkECBggDKAAOAwYSRQMGEkkEAAASRQQAABJJBQABARJJBAgAEkUECAASSQMGEjQC
BhwEAAASNAQIABI0BSABARFVCAEAAQAAAAAABSACAQ4OGAEACk15VGVtcGxhdGUIMTAuMC4wLjAA
AAQBAAAABhUSGAESDAYVEhgBEggGFRIYARIRBhUSGAESFAQHARIMBAcBEggEBwESEQQHARIUEwEA
Dk15LkFwcGxpY2F0aW9uAAAQAQALTXkuQ29tcHV0ZXIAAAwBAAdNeS5Vc2VyAAATAQAOTXkuV2Vi
U2VydmljZXMAAAQAARwcAwcBAgMHAQgGAAESFRFxBAcBEhUDBwEOBRABAB4ABAoBHgAEBwEeAAcg
BAEODg4OYQEANFN5c3RlbS5XZWIuU2VydmljZXMuUHJvdG9jb2xzLlNvYXBIdHRwQ2xpZW50UHJv
dG9jb2wSQ3JlYXRlX19JbnN0YW5jZV9fE0Rpc3Bvc2VfX0luc3RhbmNlX18AAAAGFRIYARMABhUS
GQETAAQKARMABSABARMACAcDEwATABMABQEAAAAABAcBHQ4FIAIBCBwEIAEBCAYHAh0OHQ4FIAAS
gJEFIAASgJUGIAESgJkcBSAAEoCdBiABEoChHAQHARI1BCAAEiUEIAEcCAQAAQ4cBSACAQ4cBgAB
EYDBHAQAAQgcCCABEoCpEoClBCABHA4FIAARgMUGAAEBEoC5BSAAEoDNGQcJEoClEoCpEoCtHBKA
sRKAtRKAuREtES0EIAEcHAQAAQIODAcFAgISgJkSORKAuQUgABKA2QUgABKA3QUgABKA1QYgAQER
gOEIBwISgNUSgJkKIAYBCA4ODggQAgYgARKA1RwFIAASgOUDIAAcEQcGEoDVEjkSgJkSORI5EoDl
BSAAEoDtBSAAEoDxBSACCAgICQcECBKAmRI5CAQgAQIIBAcCHBwNAQAIVmFsaWRhdGUAABYBABFD
cm1Db25uZWN0aW9uVHlwZQAALAEAJ1NlbGVjdCBEeW5hbWljcyBDUk0gQ29ubmVjdGlvbiBNYW5h
Z2VyLgAABSAAEoEJByACAQ4SgQkGBwISRRJFBAcBEkkIAQACAAAAAAAEAAEBHAQHARI0CAEACAAA
AAAAHgEAAQBUAhZXcmFwTm9uRXhjZXB0aW9uVGhyb3dzAUcBABouTkVURnJhbWV3b3JrLFZlcnNp
b249djQuMAEAVA4URnJhbWV3b3JrRGlzcGxheU5hbWUQLk5FVCBGcmFtZXdvcmsgNAwBAAcxLjAu
MC4wAAApAQAkYjJlZTVkZmMtYWE1OC00YmY1LWI3OTQtZTM1OWQ0YzBiZmJjAAAFAQABAAAfAQAa
Q29weXJpZ2h0IEAgTWljcm9zb2Z0IDIwMTYAADwBADdTY3JpcHRDb21wb25lbnRfM2ZlNjVhMWEw
MjZlNDRkMDk2MDJjZDk1MjQ3NzI5MzgudmJwcm9qAAAOAQAJTWljcm9zb2Z0AAAAVAAAAAAAAAAA
AAAeVAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEFQAAAAAAAAAAAAAAAAAAAAAX0NvckRsbE1h
aW4AbXNjb3JlZS5kbGwAAAAAAP8lACAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAEAAAABgAAIAAAAAA
AAAAAAAAAAAAAAEAAQAAADAAAIAAAAAAAAAAAAAAAAAAAAEAAAAAAEgAAABYYAAAaAQAAAAAAAAA
AAAAaAQ0AAAAVgBTAF8AVgBFAFIAUwBJAE8ATgBfAEkATgBGAE8AAAAAAL0E7/4AAAEAAAABAAAA
AAAAAAEAAAAAAD8AAAAAAAAABAAAAAIAAAAAAAAAAAAAAAAAAABEAAAAAQBWAGEAcgBGAGkAbABl
AEkAbgBmAG8AAAAAACQABAAAAFQAcgBhAG4AcwBsAGEAdABpAG8AbgAAAAAAAACwBMgDAAABAFMA
dAByAGkAbgBnAEYAaQBsAGUASQBuAGYAbwAAAKQDAAABADAAMAAwADAAMAA0AGIAMAAAADQACgAB
AEMAbwBtAHAAYQBuAHkATgBhAG0AZQAAAAAATQBpAGMAcgBvAHMAbwBmAHQAAACYADgAAQBGAGkA
bABlAEQAZQBzAGMAcgBpAHAAdABpAG8AbgAAAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABvAG4AZQBu
AHQAXwAzAGYAZQA2ADUAYQAxAGEAMAAyADYAZQA0ADQAZAAwADkANgAwADIAYwBkADkANQAyADQA
NwA3ADIAOQAzADgALgB2AGIAcAByAG8AagAAADAACAABAEYAaQBsAGUAVgBlAHIAcwBpAG8AbgAA
AAAAMQAuADAALgAwAC4AMAAAAJgAPAABAEkAbgB0AGUAcgBuAGEAbABOAGEAbQBlAAAAUwBjAHIA
aQBwAHQAQwBvAG0AcABvAG4AZQBuAHQAXwAzAGYAZQA2ADUAYQAxAGEAMAAyADYAZQA0ADQAZAAw
ADkANgAwADIAYwBkADkANQAyADQANwA3ADIAOQAzADgALgB2AGIAcAByAG8AagAuAGQAbABsAAAA
XAAbAAEATABlAGcAYQBsAEMAbwBwAHkAcgBpAGcAaAB0AAAAQwBvAHAAeQByAGkAZwBoAHQAIABA
ACAATQBpAGMAcgBvAHMAbwBmAHQAIAAyADAAMQA2AAAAAACgADwAAQBPAHIAaQBnAGkAbgBhAGwA
RgBpAGwAZQBuAGEAbQBlAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABvAG4AZQBuAHQAXwAzAGYAZQA2
ADUAYQAxAGEAMAAyADYAZQA0ADQAZAAwADkANgAwADIAYwBkADkANQAyADQANwA3ADIAOQAzADgA
LgB2AGIAcAByAG8AagAuAGQAbABsAAAAkAA4AAEAUAByAG8AZAB1AGMAdABOAGEAbQBlAAAAAABT
AGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfADMAZgBlADYANQBhADEAYQAwADIANgBlADQA
NABkADAAOQA2ADAAMgBjAGQAOQA1ADIANAA3ADcAMgA5ADMAOAAuAHYAYgBwAHIAbwBqAAAANAAI
AAEAUAByAG8AZAB1AGMAdABWAGUAcgBzAGkAbwBuAAAAMQAuADAALgAwAC4AMAAAADgACAABAEEA
cwBzAGUAbQBiAGwAeQAgAFYAZQByAHMAaQBvAG4AAAAxAC4AMAAuADAALgAwAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAADAAAADA0AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==]]></arrayElement></arrayElements></property><property id="9" name="UserComponentTypeName" dataType="System.String">CozyRoc.ScriptComponentHostPlus</property><property id="11" name="VSTAProjectName" dataType="System.String" description="Specifies the name of the Microsoft Visual Studio Tools for Applications project. Project names must be unique within a package." typeConverter="NOTBROWSABLE">ScriptComponent_3fe65a1a026e44d09602cd9524772938</property><property id="12" name="ScriptLanguage" dataType="System.String" description="Specifies the programming language used by the script." typeConverter="Microsoft.SqlServer.VSTAHosting.ScriptingLanguages, Microsoft.SqlServer.VSTAScriptingLib, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">VisualBasic</property></properties><connections><connection id="14" name="CrmConnection" connectionManagerID="{6370E56E-72D5-402B-BF52-9E27F473654A}" /></connections><inputs><input id="15" name="Input" hasSideEffects="true"><externalMetadataColumns isUsed="True"><externalMetadataColumn id="16" name="QuoteId" dataType="guid" /><externalMetadataColumn id="17" name="QuoteCloseDate" dataType="dbTimeStamp" /><externalMetadataColumn id="18" name="QuoteCloseDescription" dataType="wstr" length="1000" /><externalMetadataColumn id="19" name="QuoteCloseStatus" dataType="i4" /><externalMetadataColumn id="20" name="QuoteCloseSubject" dataType="wstr" length="250" /></externalMetadataColumns></input></inputs><outputs><output id="21" name="Output" synchronousInputId="15"><outputColumns><outputColumn id="22" name="SalesOrderId" lineageId="22" dataType="guid" /></outputColumns><externalMetadataColumns /></output></outputs></component>