<component id="1" name="Dynamics CRM Atttributes Source" componentClassID="{2E42D45B-F83C-400F-8D77-61DDE6A7DF29}" description="Executes a custom script." localeId="1033" usesDispositions="false" validateExternalMetadata="True" version="4" pipelineVersion="0" contactInfo="Executes a custom script.;Microsoft Corporation;Microsoft SqlServer v9; © 2004 Microsoft Corporation; All Rights Reserved; http://www.microsoft.com/sql/support;0">
<properties>
<property id="5" name="SourceCode" dataType="System.String" state="cdata" isArray="true" description="Stores the source code of the component" typeConverter="NOTBROWSABLE" UITypeEditor="" containsID="false" expressionType="None"><arrayElements arrayElementCount="18"><arrayElement dataType="System.String"><![CDATA[\scriptcomponent_d48bb4504fbc41c48797b5ca1ad22150.vbproj]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <!-- This section defines project-level properties.

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

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

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

       Compile - Specifies a source file to compile.
       EmbeddedResource - Specifies a .resx file for embedded resources.
       None - Specifies a file that is not to be passed to the compiler (for instance,
              a text file or XML file).
       AppDesigner - Specifies the directory where the application properties files can
                     be found.
  -->
  <ItemGroup>
    <AppDesigner Include="My Project\" />
    <Compile Include="BufferWrapper.vb" />
    <Compile Include="ComponentWrapper.vb" />
    <Compile Include="main.vb" />
    <Compile Include="My Project\AssemblyInfo.vb">
      <SubType>Code</SubType>
    </Compile>
    <EmbeddedResource Include="My Project\Resources.resx">
      <Generator>VbMyResourcesResXFileCodeGenerator</Generator>
      <LastGenOutput>Resources.Designer.vb</LastGenOutput>
      <CustomToolNamespace>My.Resources</CustomToolNamespace>
    </EmbeddedResource>
    <Compile Include="My Project\Resources.Designer.vb">
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
      <DependentUpon>Resources.resx</DependentUpon>
      <SubType>Code</SubType>
    </Compile>
    <None Include="My Project\Settings.settings">
      <Generator>SettingsSingleFileGenerator</Generator>
      <LastGenOutput>Settings.Designer.vb</LastGenOutput>
    </None>
    <Compile Include="My Project\Settings.Designer.vb">
      <AutoGen>True</AutoGen>
      <DependentUpon>Settings.settings</DependentUpon>
      <SubType>Code</SubType>
    </Compile>
    <!-- Include the default configuration information and metadata files for the add-in.
         These files are copied to the build output directory when the project is
         built, and the path to the configuration file is passed to add-in on the command
         line when debugging.
    -->
  </ItemGroup>
  <!-- Include the build rules for a VB project.-->
  <Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
  <!-- This section defines VSTA properties that describe the host-changable project properties. -->
  <ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{A860303F-1F3F-4691-B57E-529FC101A107}">
        <ProjectProperties HostName="VSTAHostName" HostPackage="{C1B21C64-9E6F-4923-A89D-9F958503C1CE}" ApplicationType="usd" Language="vb" TemplatesPath="" />
        <Host Name="SSIS_ScriptComponent" />
        <ProjectClient>
          <HostIdentifier>SSIS_ScriptComponent</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
</Project>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\my project\assemblyinfo.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices

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

' Review the values of the assembly attributes

<Assembly: AssemblyTitle("ScriptComponent_d48bb4504fbc41c48797b5ca1ad22150.vbproj")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("Microsoft")> 
<Assembly: AssemblyProduct("ScriptComponent_d48bb4504fbc41c48797b5ca1ad22150.vbproj")> 
<Assembly: AssemblyCopyright("Copyright @ Microsoft 2013")> 
<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("21e8ebec-0685-4a3c-abe6-2cf38770fd43")> 

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

<Assembly: AssemblyVersion("1.0.0.0")> 
<Assembly: AssemblyFileVersion("1.0.0.0")> 
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\my project\settings.settings]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version='1.0' encoding='iso-8859-1'?>
<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)" GeneratedClassNamespace="" GeneratedClassName="MySettings">
  <Profiles>
    <Profile Name="(Default)" />
  </Profiles>
  <Settings />
</SettingsFile>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\bufferwrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services buffer wrappers
' This module defines classes for accessing data flow buffers
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!


Option Strict Off   ' This allows usage of PipelineBuffer typed accessors.

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class OutputBuffer
    Inherits ScriptBufferPlus

    Public Sub New(ByVal Component As ScriptComponent, ByVal ObjectID As Integer, ByVal IsInput As Boolean, ByVal Buffer As PipelineBuffer)
        MyBase.New(Component, ObjectID, IsInput, Buffer)
    End Sub

    Public Overrides ReadOnly Property StaticInputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public WriteOnly Property [AttributeOf]() As String
        Set
            Me(0) = Value
        End Set
    End Property
    Public WriteOnly Property [AttributeOf_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 WriteOnly Property [AttributeType]() As String
        Set
            Me(1) = Value
        End Set
    End Property
    Public WriteOnly Property [AttributeType_IsNull] As Boolean
        Set
            If (value)
                SetNull(1)
            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 WriteOnly Property [CanBeSecuredForCreate]() As Boolean
        Set
            Me(2) = Value
        End Set
    End Property
    Public WriteOnly Property [CanBeSecuredForCreate_IsNull] As Boolean
        Set
            If (value)
                SetNull(2)
            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 WriteOnly Property [CanBeSecuredForRead]() As Boolean
        Set
            Me(3) = Value
        End Set
    End Property
    Public WriteOnly Property [CanBeSecuredForRead_IsNull] As Boolean
        Set
            If (value)
                SetNull(3)
            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 WriteOnly Property [CanBeSecuredForUpdate]() As Boolean
        Set
            Me(4) = Value
        End Set
    End Property
    Public WriteOnly Property [CanBeSecuredForUpdate_IsNull] As Boolean
        Set
            If (value)
                SetNull(4)
            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 WriteOnly Property [CanModifyAdditionalSettings]() As Boolean
        Set
            Me(5) = Value
        End Set
    End Property
    Public WriteOnly Property [CanModifyAdditionalSettings_IsNull] As Boolean
        Set
            If (value)
                SetNull(5)
            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 WriteOnly Property [ColumnNumber]() As Int32
        Set
            Me(6) = Value
        End Set
    End Property
    Public WriteOnly Property [ColumnNumber_IsNull] As Boolean
        Set
            If (value)
                SetNull(6)
            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 WriteOnly Property [DeprecatedVersion]() As String
        Set
            Me(7) = Value
        End Set
    End Property
    Public WriteOnly Property [DeprecatedVersion_IsNull] As Boolean
        Set
            If (value)
                SetNull(7)
            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 WriteOnly Property [Description]() As String
        Set
            Me(8) = Value
        End Set
    End Property
    Public WriteOnly Property [Description_IsNull] As Boolean
        Set
            If (value)
                SetNull(8)
            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 WriteOnly Property [DisplayName]() As String
        Set
            Me(9) = Value
        End Set
    End Property
    Public WriteOnly Property [DisplayName_IsNull] As Boolean
        Set
            If (value)
                SetNull(9)
            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 WriteOnly Property [EntityLogicalName]() As String
        Set
            Me(10) = Value
        End Set
    End Property
    Public WriteOnly Property [EntityLogicalName_IsNull] As Boolean
        Set
            If (value)
                SetNull(10)
            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 WriteOnly Property [IsAuditEnabled]() As Boolean
        Set
            Me(11) = Value
        End Set
    End Property
    Public WriteOnly Property [IsAuditEnabled_IsNull] As Boolean
        Set
            If (value)
                SetNull(11)
            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 WriteOnly Property [IsCustomAttribute]() As Boolean
        Set
            Me(12) = Value
        End Set
    End Property
    Public WriteOnly Property [IsCustomAttribute_IsNull] As Boolean
        Set
            If (value)
                SetNull(12)
            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 WriteOnly Property [IsCustomizable]() As Boolean
        Set
            Me(13) = Value
        End Set
    End Property
    Public WriteOnly Property [IsCustomizable_IsNull] As Boolean
        Set
            If (value)
                SetNull(13)
            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 WriteOnly Property [IsManaged]() As Boolean
        Set
            Me(14) = Value
        End Set
    End Property
    Public WriteOnly Property [IsManaged_IsNull] As Boolean
        Set
            If (value)
                SetNull(14)
            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 WriteOnly Property [IsPrimaryId]() As Boolean
        Set
            Me(15) = Value
        End Set
    End Property
    Public WriteOnly Property [IsPrimaryId_IsNull] As Boolean
        Set
            If (value)
                SetNull(15)
            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 WriteOnly Property [IsPrimaryName]() As Boolean
        Set
            Me(16) = Value
        End Set
    End Property
    Public WriteOnly Property [IsPrimaryName_IsNull] As Boolean
        Set
            If (value)
                SetNull(16)
            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 WriteOnly Property [IsRenameable]() As Boolean
        Set
            Me(17) = Value
        End Set
    End Property
    Public WriteOnly Property [IsRenameable_IsNull] As Boolean
        Set
            If (value)
                SetNull(17)
            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 WriteOnly Property [IsSecured]() As Boolean
        Set
            Me(18) = Value
        End Set
    End Property
    Public WriteOnly Property [IsSecured_IsNull] As Boolean
        Set
            If (value)
                SetNull(18)
            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 WriteOnly Property [IsValidForAdvancedFind]() As Boolean
        Set
            Me(19) = Value
        End Set
    End Property
    Public WriteOnly Property [IsValidForAdvancedFind_IsNull] As Boolean
        Set
            If (value)
                SetNull(19)
            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 WriteOnly Property [IsValidForCreate]() As Boolean
        Set
            Me(20) = Value
        End Set
    End Property
    Public WriteOnly Property [IsValidForCreate_IsNull] As Boolean
        Set
            If (value)
                SetNull(20)
            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 WriteOnly Property [IsValidForRead]() As Boolean
        Set
            Me(21) = Value
        End Set
    End Property
    Public WriteOnly Property [IsValidForRead_IsNull] As Boolean
        Set
            If (value)
                SetNull(21)
            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 WriteOnly Property [IsValidForUpdate]() As Boolean
        Set
            Me(22) = Value
        End Set
    End Property
    Public WriteOnly Property [IsValidForUpdate_IsNull] As Boolean
        Set
            If (value)
                SetNull(22)
            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 WriteOnly Property [LinkedAttributeId]() As Guid
        Set
            Me(23) = Value
        End Set
    End Property
    Public WriteOnly Property [LinkedAttributeId_IsNull] As Boolean
        Set
            If (value)
                SetNull(23)
            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 WriteOnly Property [LogicalName]() As String
        Set
            Me(24) = Value
        End Set
    End Property
    Public WriteOnly Property [LogicalName_IsNull] As Boolean
        Set
            If (value)
                SetNull(24)
            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 WriteOnly Property [RequiredLevel]() As String
        Set
            Me(25) = Value
        End Set
    End Property
    Public WriteOnly Property [RequiredLevel_IsNull] As Boolean
        Set
            If (value)
                SetNull(25)
            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 WriteOnly Property [SchemaName]() As String
        Set
            Me(26) = Value
        End Set
    End Property
    Public WriteOnly Property [SchemaName_IsNull] As Boolean
        Set
            If (value)
                SetNull(26)
            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() {"AttributeOf", "AttributeType", "CanBeSecuredForCreate", "CanBeSecuredForRead", "CanBeSecuredForUpdate", "CanModifyAdditionalSettings", "ColumnNumber", "DeprecatedVersion", "Description", "DisplayName", "EntityLogicalName", "IsAuditEnabled", "IsCustomAttribute", "IsCustomizable", "IsManaged", "IsPrimaryId", "IsPrimaryName", "IsRenameable", "IsSecured", "IsValidForAdvancedFind", "IsValidForCreate", "IsValidForRead", "IsValidForUpdate", "LinkedAttributeId", "LogicalName", "RequiredLevel", "SchemaName"}
        End Get
    End Property

    Public Overloads Sub AddRow()
        MyBase.AddRow()
    End Sub

    Public Overloads Sub SetEndOfRowset()
        MyBase.SetEndOfRowset()
    End Sub

    Public Overloads Function EndOfRowset() As Boolean
        EndOfRowset = MyBase.EndOfRowset
    End Function

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\my project\settings.designer.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA['------------------------------------------------------------------------------
' <autogenerated>
'     This code was generated by a tool.
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </autogenerated>
'------------------------------------------------------------------------------

Option Strict Off
Option Explicit On



Partial Friend NotInheritable Class MySettings
    Inherits System.Configuration.ApplicationSettingsBase

    Private Shared m_Value As MySettings

    Private Shared m_SyncObject As Object = New Object

    <System.Diagnostics.DebuggerNonUserCode()> _
    Public Shared ReadOnly Property Value() As MySettings
        Get
            If (MySettings.m_Value Is Nothing) Then
                System.Threading.Monitor.Enter(MySettings.m_SyncObject)
                If (MySettings.m_Value Is Nothing) Then
                    Try
                        MySettings.m_Value = New MySettings
                    Finally
                        System.Threading.Monitor.Exit(MySettings.m_SyncObject)
                    End Try
                End If
            End If
            Return MySettings.m_Value
        End Get
    End Property
End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\my project\resources.designer.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA['------------------------------------------------------------------------------
' <autogenerated>
'     This code was generated by a tool.
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </autogenerated>
'------------------------------------------------------------------------------

Option Strict Off
Option Explicit On


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

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\main.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' COZYROC SQL Server Integration Services user script component
'
' Copyright (c) 2006-2013 COZYROC LLC
' 
' Permission is hereby granted, free of charge, to any person
' obtaining a copy of this software and associated documentation
' files (the "Software"), to deal in the Software without
' restriction, including without limitation the rights to use,
' copy, modify, merge, publish, distribute, sublicense, and/or sell
' copies of the Software, and to permit persons to whom the
' Software is furnished to do so, subject to the following
' conditions:
' 
' The above copyright notice and this permission notice shall be
' included in all copies or substantial portions of the Software.
' 
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
' EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
' OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
' NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
' HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
' WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
' FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
' OTHER DEALINGS IN THE SOFTWARE.

Imports System
Imports System.ComponentModel
Imports System.Collections

Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS
Imports CozyRoc.SqlServer.SSIS.Attributes
Imports CRM2011 = CozyRoc.Dynamics.Crm2011.OrganizationService
Imports CRM4 = CozyRoc.Dynamics.Crm.Service
Imports Meta4 = CozyRoc.Dynamics.Crm.MetadataService
Imports CRM3 = CozyRoc.Dynamics.Crm3.Service
Imports Meta3 = CozyRoc.Dynamics.Crm3.MetadataService


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<SortProperties(New String() { _
    "CrmConnection", _
    "IsEntityVariable", "Entity", "EntityVariable"})> _
<ValidateProperties("Validate")> _
<FilterProperties("GetProperties")> _
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub CreateNewOutputRows()
        ' Get entity.
        Dim entity As String
        If Me.IsEntityVariable Then
            entity = GetVariable_(Me.Entity).ToString()
        Else
            entity = Me.Entity
        End If

        ' Retrieve entity metadata.
        Dim connection As ICrmConnection = CType( _
            Me.Connections.CrmConnection.AcquireConnection(Nothing), _
            ICrmConnection)
        Try
            Call connection.Connect()

            Dim service As Object = connection.GetService(0)   ' 0 - CRM Service
            Dim service2011 As CRM2011.OrganizationServiceClient = TryCast( _
                service, _
                CRM2011.OrganizationServiceClient)
            Dim service4 As CRM4.CrmService = TryCast(service, CRM4.CrmService)
            Dim service3 As CRM3.CrmService = TryCast(service, CRM3.CrmService)

            If Not service2011 Is Nothing Then
                ' CRM 2011.
                Call Process2011_(service2011, entity)
            ElseIf Not service4 Is Nothing Then
                ' Will use metadata service.
                Dim meta4 As Meta4.MetadataService = CType( _
                    connection.GetService(1), _
                    Meta4.MetadataService)
                Call Process4_(meta4, entity)
            ElseIf Not service3 Is Nothing Then
                ' Will use metadata service.
                Dim meta3 As Meta3.MetadataService = CType( _
                    connection.GetService(1), _
                    Meta3.MetadataService)
                Call Process3_(meta3, entity)
            Else
                Throw New Exception("Unhandled service object.")
            End If
        Catch ex As Exception
            Call FireError_(ex.Message)
        Finally
            Call connection.Close()
        End Try
    End Sub ' CreateNewOutputRows


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

            If String.IsNullOrEmpty(Me.Entity) Then
                Throw New Exception("Select Dynamics CRM Entity.")
            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


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Returns list of entities in the currently selected Dynamics CRM connection.
    Public Function GetEntityList() As String()
        Dim result() As String

        Dim connection As ICrmConnection = CType( _
            Me.DesignConnections(Me.CrmConnection).AcquireConnection(Nothing), _
            ICrmConnection)
        Call connection.Connect()

        Try
            result = connection.GetEntityList(2)  ' 2 - Read
            Call Array.Sort(result)
        Finally
            Call connection.Close()
        End Try

        GetEntityList = result
    End Function    ' GetEntityList


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Returns list of current properties based on current state.
    Public Function GetProperties() As String()
        Dim result As New ArrayList

        ' Setup static.
        Call result.Add("CrmConnection")

        ' Setup dynamic.
        Call result.Add("IsEntityVariable")
        Call result.Add(IIf(Me.IsEntityVariable, "EntityVariable", "Entity"))

        Return CType(result.ToArray(GetType(String)), String())
    End Function    ' GetProperties


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select Dynamics CRM Connection Manager.")> _
    <Connection("CrmConnectionType")> _
    Public Property CrmConnection() As String
        Get
            CrmConnection = m_crmConnection
        End Get
        Set(ByVal value As String)
            m_crmConnection = value
        End Set
    End Property    ' CrmConnection


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specifies if Entity property references package variable.")> _
    <RefreshProperties(RefreshProperties.All)> _
    <NonEssential()> _
    Public Property IsEntityVariable() As Boolean
        Get
            IsEntityVariable = m_isEntityVar
        End Get
        Set(ByVal value As Boolean)
            If m_isEntityVar <> value Then
                m_isEntityVar = value
                m_entity = String.Empty
            End If
        End Set
    End Property    ' IsEntityVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select Dynamics CRM entity.")> _
    <List("GetEntityList")> _
    Public Property Entity() As String
        Get
            Entity = m_entity
        End Get
        Set(ByVal value As String)
            m_entity = value
        End Set
    End Property    ' Entity


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specifies variable containing entity.")> _
    <Variable()> _
    Public Property EntityVariable() As String
        Get
            EntityVariable = m_entity
        End Get
        Set(ByVal value As String)
            m_entity = value
        End Set
    End Property    ' EntityVariable
#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 Attributes Source", _
            message, _
            String.Empty, _
            0, _
            cancel)
    End Sub ' FireError_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetVariable_(ByVal varName As String) As Object
        Dim result As Object
        Dim vars As IDTSVariables100 = Nothing

        Call Me.VariableDispenser.LockOneForRead(varName, vars)
        Try
            result = vars(varName).Value
        Finally
            Call vars.Unlock()
        End Try

        GetVariable_ = result
    End Function    ' GetVariable_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub Process2011_( _
        ByVal service As CRM2011.OrganizationServiceClient, _
        ByVal entity As String)

        Dim req As New CRM2011.OrganizationRequest()
        req.RequestName = "RetrieveEntity"
        req("LogicalName") = entity
        req("MetadataId") = New Guid()
        req("RetrieveAsIfPublished") = False
        req("EntityFilters") = CRM2011.EntityFilters.Attributes
        Dim res As CRM2011.OrganizationResponse = service.Execute(req)
        Dim entityMeta As CRM2011.EntityMetadata = CType( _
            res("EntityMetadata"), _
            CRM2011.EntityMetadata)

        For Each attr As CRM2011.AttributeMetadata In entityMeta.Attributes
            With MyBase.OutputBuffer
                Call .AddRow()

                .AttributeOf = attr.AttributeOf

                If attr.AttributeType.HasValue Then
                    .AttributeType = attr.AttributeType.Value.ToString()
                End If

                If attr.CanBeSecuredForCreate.HasValue Then
                    .CanBeSecuredForCreate = attr.CanBeSecuredForCreate.Value
                End If

                If attr.CanBeSecuredForRead.HasValue Then
                    .CanBeSecuredForRead = attr.CanBeSecuredForRead.Value
                End If

                If attr.CanBeSecuredForUpdate.HasValue Then
                    .CanBeSecuredForUpdate = attr.CanBeSecuredForUpdate.Value
                End If

                .CanModifyAdditionalSettings = attr.CanModifyAdditionalSettings.Value

                If attr.ColumnNumber.HasValue Then
                    .ColumnNumber = attr.ColumnNumber.Value
                End If

                .DeprecatedVersion = attr.DeprecatedVersion

                If attr.Description.LocalizedLabels.Count > 0 Then
                    .Description = attr.Description.LocalizedLabels(0).Label
                End If

                If attr.DisplayName.LocalizedLabels.Count > 0 Then
                    .DisplayName = attr.DisplayName.LocalizedLabels(0).Label
                End If

                .EntityLogicalName = attr.EntityLogicalName
                .IsAuditEnabled = attr.IsAuditEnabled.Value

                If attr.IsCustomAttribute.HasValue Then
                    .IsCustomAttribute = attr.IsCustomAttribute.Value
                End If

                .IsCustomizable = attr.IsCustomizable.Value

                If attr.IsManaged.HasValue Then
                    .IsManaged = attr.IsManaged.Value
                End If

                If attr.IsPrimaryId.HasValue Then
                    .IsPrimaryId = attr.IsPrimaryId.Value
                End If

                If attr.IsPrimaryName.HasValue Then
                    .IsPrimaryName = attr.IsPrimaryName.Value
                End If

                .IsRenameable = attr.IsRenameable.Value

                If attr.IsSecured.HasValue Then
                    .IsSecured = attr.IsSecured.Value
                End If

                .IsValidForAdvancedFind = attr.IsValidForAdvancedFind.Value

                If attr.IsValidForCreate.HasValue Then
                    .IsValidForCreate = attr.IsValidForCreate.Value
                End If

                If attr.IsValidForRead.HasValue Then
                    .IsValidForRead = attr.IsValidForRead.Value
                End If

                If attr.IsValidForUpdate.HasValue Then
                    .IsValidForUpdate = attr.IsValidForUpdate.Value
                End If

                If attr.LinkedAttributeId.HasValue Then
                    .LinkedAttributeId = attr.LinkedAttributeId.Value
                End If

                .LogicalName = attr.LogicalName
                .RequiredLevel = attr.RequiredLevel.Value.ToString()
                .SchemaName = attr.SchemaName
            End With
        Next
    End Sub ' Process2011_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub Process4_( _
        ByVal service As Meta4.MetadataService, _
        ByVal entity As String)

        Dim req As New Meta4.RetrieveEntityRequest
        req.LogicalName = Me.Entity
        req.EntityItems = Meta4.EntityItems.IncludeAttributes
        Dim res As Meta4.RetrieveEntityResponse = CType( _
            service.Execute(req), _
            Meta4.RetrieveEntityResponse)

        For Each attr As Meta4.AttributeMetadata In res.EntityMetadata.Attributes
            With MyBase.OutputBuffer
                Call .AddRow()

                .AttributeOf = attr.AttributeOf

                If Not attr.AttributeType.IsNull Then
                    .AttributeType = attr.AttributeType.Value.ToString()
                End If

                If attr.Description.LocLabels.Length > 0 Then
                    .Description = attr.Description.LocLabels(0).Label
                End If

                If attr.DisplayName.LocLabels.Length > 0 Then
                    .DisplayName = attr.DisplayName.LocLabels(0).Label
                End If

                .EntityLogicalName = attr.EntityLogicalName

                If Not attr.IsCustomField.IsNull Then
                    .IsCustomAttribute = attr.IsCustomField.Value
                End If

                .LogicalName = attr.LogicalName

                If Not attr.RequiredLevel.IsNull Then
                    .RequiredLevel = attr.RequiredLevel.Value.ToString()
                End If

                .SchemaName = attr.SchemaName

                If Not attr.ValidForCreate.IsNull Then
                    .IsValidForCreate = attr.ValidForCreate.Value
                End If

                If Not attr.ValidForRead.IsNull Then
                    .IsValidForRead = attr.ValidForRead.Value
                End If

                If Not attr.ValidForUpdate.IsNull Then
                    .IsValidForUpdate = attr.ValidForUpdate.Value
                End If
            End With
        Next
    End Sub ' Process4_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub Process3_( _
        ByVal service As Meta3.MetadataService, _
        ByVal entity As String)

        Dim entityMeta As Meta3.EntityMetadata = service.RetrieveEntityMetadata( _
            entity, _
            CozyRoc.Dynamics.Crm3.MetadataService.EntityFlags.IncludeAttributes)

        For Each attr As Meta3.AttributeMetadata In entityMeta.Attributes
            With MyBase.OutputBuffer
                Call .AddRow()

                .AttributeOf = attr.AttributeOf
                .AttributeType = attr.Type.ToString()
                .Description = attr.Description
                .DisplayName = attr.DisplayName
                .IsCustomAttribute = attr.IsCustomField
                .LogicalName = attr.Name
                .RequiredLevel = attr.RequiredLevel.ToString()
                .IsValidForCreate = attr.ValidForCreate
                .IsValidForRead = attr.ValidForRead
                .IsValidForUpdate = attr.ValidForUpdate
            End With
        Next
    End Sub ' Process3_
#End Region ' Internals


#Region "Attributes"
    Private m_crmConnection As String
    Private m_isEntityVar As Boolean
    Private m_entity As String
#End Region ' Attributes

End Class   ' CreateNewOutputRows
]]></arrayElement></arrayElements></property>
<property id="6" name="BinaryCode" dataType="System.String" state="cdata" isArray="true" description="Stores the binary representation of the component" typeConverter="NOTBROWSABLE" UITypeEditor="" containsID="false" expressionType="None"><arrayElements arrayElementCount="2"><arrayElement dataType="System.String"><![CDATA[\bin\scriptcomponent_d48bb4504fbc41c48797b5ca1ad22150.vbproj.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
AAAKbz8AAAYUEwQIF9YMCAmOtz9H////KgAAAB4CKBcAAAoqEzACAC0AAAAfAAARfg4AAAQtIHIG
BgBw0AwAAAIoFAAACm+nAAAKc6gAAAoLB4AOAAAEfg4AAAQqAAAAEzABAAYAAAAgAAARfg8AAAQq
AAAeAoAPAAAEKkJzFwAACigRAAAKgBEAAAQqAAAAHgIoqQAACiobMAEAPwAAACEAABF+EAAABC0y
fhEAAAQoEQAACiiqAAAKfhAAAAQtHHNtAAAGgBAAAATeEH4RAAAEKBEAAAooqwAACtx+EAAABCoA
AQwAAAIAHQAMKQAQAAAAAUJTSkIBAAEAAAAAAAwAAAB2Mi4wLjUwNzI3AAAAAAUAbAAAAPwWAAAj
fgAAaBcAAMgfAAAjU3RyaW5ncwAAAAAwNwAAOAYAACNVUwBoPQAAEAAAACNHVUlEAAAAeD0AAGgH
AAAjQmxvYgAAAAAAAAACAAABVxWiCQkPAAAA+gEzABYAAAEAAABzAAAADQAAABEAAABuAAAAUAAA
ALYAAABFAAAAIQAAAAcAAABGAAAASwAAAA8AAAABAAAACgAAAAEAAAACAAAAAwAAAAMAAAAAAIsf
AQAAAAAACgCqAYABCgDeAcABBgDuAecBCgBGAoABBgDEAucBCgBGAxwDDgCYA4EDEgDnA8YDFgAY
BMYDBgCjCOcBDgDCDYEDGgCNDmUOHgDwD8MPHgBLECYQHgBLEGUQBgAGEfUQBgAzER4RIgCUEX8R
IgDhEcsRIgD6EcsRIgAnEg8SBgBREj4SCgCQEmkSCgCoEhMAIgDdEsASBgASE/ISBgAwE+cBBgBU
E+cBCgBtExMABgCxE5ITBgDFE+cBBgDdE+cBBgD3E+cBBgD/E+cBEgAFFMYDBgASFOcBJgB1FEwU
JgCkFEwUJgDRFEwUJgDvFEwUJgAyFUwUDgBhFYEDHgCOFXAVHgCOFZkVBgC2FecBCgDlFWkSKgAD
AWoWKgCgFmoWBgCyFucBBgDQFr0WCgDeFhMAGgAGF2UOGgAXF2UOGgBVF2UOHgBsF8MPHgB7F8MP
HgCPF8MPHgCkF8MPBgC2F+cBHgDBF8MPHgDjF8MPBgA3GOcBHgCIGMMPHgC/GMMPHgD9GMMPHgAT
GcMPBgBbGUAZHgBiGcMPHgC0GsMPHgDsGsMPHgASG8MPHgA4GyYQHgBOGyYQHgCkFyYQHgBlGyYQ
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
RQD8KwAAAAAGCDgPcQBGABQsAAAAAAYIQw++AEYAICwAAAAABghOD3EARwA4LAAAAAAGCGEPvgBH
AEQsAAAAAAEIdA+5AEgAZCwAAAAAAQCKD74ASACQLAAAAAABAJ0PHQFJAOAsAAAAAAEAChAiAUoA
3DAAAAAAAQBbECkBTACcMgAAAAABAIsQMAFOAHwzAAAAAAMYugETAFAAhDMAAAAAFghLEUUBUADA
MwAAAAAWCF8RSgFQANQzAAAAABYIaxFPAVAA3DMAAAAAERj1ARcAUQDwMwAAAAAGGLoBEwBRAPgz
AAAAABYIwRFmAVEAAAABALYCAAABAO8CAAABAO8CAAABACcEAAACADEEAAADADoEAAAEAEIEAAAB
AHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAE
AAABAHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAEAAAB
AHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAE
AAABAHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAEAAAB
AHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAE
AAABAHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAEAAABAHAEAAABAAQOAAACAAwOAAADABYOAAAB
ACcEAAABACcEAAABAM8OAAABAAgPAAABAAgPAAABAAgPAAABAAgPAAABAJUPAAABAKoPAAABABcQ
AAACAB8QAAABABcQAAACAB8QAAABABcQAAACAB8QAAABAHAECQC6ARMAmQC6AXABqQC6AX8BEQC6
ARMAsQC6ARMAJAC6ARMALAC6ARMANAC6ARMAPAC6ARMAJAAMA4sALAAMA4sANAAMA4sAPAAMA4sA
uQC6ARMAwQC6ARMAyQC6Ab4A0QAhExgCGQCvAmMAGQC4AmgAKQBCEyUCGQDRAnEA4QBeEzUCGQC6
ARMA6QC6AUUCRABVA5AATADBEYsATACIE8ICTAC6ARMA8QC6AcMAOQC6Aa8AOQDME9oCOQDVE8gA
AQG6Ab4AGQFqCRMAGQFxCRMAGQGACdMAIQG6AcMAWQC6ARMAQQCOFOcCKQG8FO0CMQHfFPMCOQHo
FGgAKQESFf8CQQHfFAUDSQFLFQ0BYQDAFREDUQHSFRMAUQHaFRYDaQG6Ab4AcQHxFRsDaQEBFnEA
cQENFhcAUQEfFhMA+QAlFjkDSQEzFr4AWQCKFkYDeQHfFEwDgQHAFREDUQHaDlMDiQG4FlkDkQG6
ARMAkQHaFm8DmQHqFnQDkQHuFnsD+QD2FjcBKQH8Fo4DQQAwF5kDqQFGF58DoQHfFKgDsQHBEa8D
oQFlFxMAwQG6ARMAwQHTF74AwQHME7sDaQDxF8EDyQHfFB0BuQH5F8oD0QEIGHEA0QEYGNEDXAAq
GNMAXADBEYsA8QHRAnEA0QE8GOUDZAAqGNMAZADBEYsA0QFWGOUD0QFuGOUD0QGfGPUDAQLBEdMA
0QHWGPsDbAAqGNMAbADBEYsA0QHnGHEA0QEDGQsECQIsGREEdABxGWgAdADfFCAEIQJ7GXEA0QGF
GQsE0QGVGXEA0QGrGfUD0QG+GeUD0QHUGfUD0QHnGeUD0QH1GeUD0QEFGuUD0QEXGvUD0QEoGuUD
0QE2GvUD0QFRGuUD0QFmGuUD0QF5GuUD0QGOGiYEfAAqGNMAfADBEYsA0QGkGnEA0QHaGjgEMQLB
ET4E0QEpG3EAQQK6ARMAQQLbCL4AQQJxG5IEcQDxF5kESQKwG6IEcQL5F6gEUQIIGHEAUQIYGK8E
gQLgG9MAeQLBEbUEUQIDGbsEkQL9G8EEmQJ7GXEAUQKFGbsEUQKVGXEAUQIWHMgEoQLgG9MAoQLB
EdMAUQKkGnEAUQLaGs4EqQLBEdQEUQIpG3EAUQJCHMgEUQJVHMgEUQJmHMgEeQCFHO0EuQL5F/cE
wQIIGHEAwQKcHP4EwQIDGXEAwQKFGXEAwQIWHNMAwQKlHHEAwQLaGgQFwQJCHNMAwQJVHNMAwQJm
HNMA4QK6ARMA6QK6Ab4A8QK6Ab4A+QK6ATsFAQO6Ab4ACQO6Ab4AEQO6ARMAGQO6AcMFKQO6ARMA
MQO6Ab4AKQDsHWgGgQC6AW4GkQC6ARMAQQMSHosGQQMYHosGSQO6ARMAUQO6AcgAWQO6ARMAYQO6
Ab4AaQO6Ab4AcQO6Ab4AeQO6Ab4AgQO6Ab4AiQO6Ab4AkQO6Ab4AmQO6Ab4AKQCDANIBLgCbBRoH
LgCTBfoGLgCrBc8CLgCzBRoHLgCLBc8CLgCjBVcHLgBrBZUGLgBzBZ4GLgB7Bb0GLgCDBcoGLgDr
AM8CLgArAfQGQAArAJ0BQAATAHYBQwATAHYBQwAbAIUBSQCDAPABYwATAHYBYwAbAIUBaQCDAOMB
gAArAJ0BgwAbAIUBgwB7AJ0BgwBzAJ0BiQCDAAQCoAArAJ0BowDDAE0CowATAHYBwAArAJ0BwwDr
AM8CwwATAHYB4AArAJ0B4wArAc8CAAErAJ0BAAETAHYBAwErAc8CIAETAHYBIAErAJ0BQAErAJ0B
QAETAHYBYAETAHYBYAErAJ0BYwH7BC0FYwHzBBoFYwEDBUEFYwHrBJ0BYwErAc8CgAErAJ0BoAEr
AJ0BwAErAJ0BwAETAHYB4AErAJ0BAAIrAJ0BAAITAHYB6QcTBZYF6QcLBX8FCQgbBZ0BCQgjBXYB
CQgTBcoFKQgzBTQGKQgTBUcGSQgrBZ0BSQgTBQkGiQgTAIIGqQgTAIIGyQhjBZ0BQAorAc8CgAor
Ac8CvgHDAcgBzQEdAiECLAIxAkACQALIAtUC4AIdAvoCDAMiAz4DZQOGAzECHQIxAjEC4AIdArMD
RATaBAoFdgZ9BpAGBAABAAYABQAHAAYACQA+AAsAPwAMAEQADQBGAAAA3gFPAAAAlwJUAAAARgJZ
AAAAowJeAAAAXwOYAAAAjAnXAAAAnwncAAAAqwngAAAAvgncAAAAzAngAAAA4QngAAAA9wngAAAA
FArgAAAAKArgAAAAQwrgAAAAWQrgAAAAdgrgAAAAkgrgAAAAtQrkAAAAwgrgAAAA1grcAAAA6Arg
AAAAAQvcAAAADQvgAAAAIAvcAAAALAvgAAAAPwvcAAAAUQvgAAAAagvgAAAAeQvgAAAAjwvgAAAA
oQvgAAAAugvgAAAAyQvgAAAA3wvgAAAA6QvgAAAA+gvgAAAABgzgAAAAGQzgAAAAJwzgAAAAPAzg
AAAASQzgAAAAXQzgAAAAZwzgAAAAeAzgAAAAjwzgAAAArQzgAAAAvgzgAAAA1gzgAAAA5QzgAAAA
+wzgAAAADA3gAAAAJA3oAAAANg3gAAAATw3cAAAAWw3gAAAAbg3cAAAAfA3gAAAAkQ3cAAAAnA3g
AAAArg3XAAAAuA4SAQAAuA7cAAAAvBDgAAAAzRDcAAAA1BDcAAAA4xDXAAAABhFVAQAAdxFaAQAA
cARrAQIABAADAAIABQAFAAIABgAHAAIABwAJAAIADwALAAIAEgANAAEAEwAPAAEAFAARAAEAFQAT
AAEAFgAVAAEAFwAXAAEAGAAZAAEAGQAbAAEAGgAdAAEAGwAfAAEAHAAhAAEAHQAjAAEAHgAlAAEA
HwAnAAEAIAApAAEAIQArAAEAIgAtAAEAIwAvAAEAJAAxAAEAJQAzAAEAJgA1AAEAJwA3AAEAKAA5
AAEAKQA7AAEAKgA9AAEAKwA/AAEALABBAAEALQBDAAEALgBFAAEALwBHAAEAMABJAAEAMQBLAAEA
MgBNAAEAMwBPAAEANABRAAEANQBTAAEANgBVAAEANwBXAAEAOABZAAEAOQBbAAEAOgBdAAEAOwBf
AAEAPABhAAEAPQBjAAEAPgBlAAEAPwBnAAEAQABpAAEAQQBrAAEAQgBtAAEAQwBvAAEARABxAAEA
RQBzAAEARgB1AAEARwB3AAEASAB5AAIASQB7AAIAUwB9AAIAWgB/AAEAWwB/AAEAXQCBAAIAXACB
AAIAXgCDAAEAXwCDAAEAYQCFAAIAYACFAAIAYgCHAAIAaQCJAAIAagCLAAEAawCLAAIAbgCNAHUA
dQCIAKIBqQGwAbcBrwK2AoMD3APuAwQEFwQwBASAAAABAAAAAAAAAAAAAAAAAL0AAAACAAAAAAAA
AAAAAAABAAoAAAAAAAgAAAAAAAAAAAAAAAoAEwAAAAAAAQAAAAAAAAAAAAAAnQBrAwAAAAAKAAAA
AAAAAAAAAACmAKkDAAAAAAoAAAAAAAAAAAAAAKYA9wMAAAAACgAAAAAAAAAAAAAApgBCDgAAAAAB
AAAAAAAAAAAAAACdALIPAAAAAAIAAAAAAAAAAAAAAAEA5wEAAAAACgAAAAAAAAAAAAAApgAoFAAA
AAAKAAAAAAAAAAAAAACmAEsWAAAAAAAAAAABAAAAOh4AAAUABAAGAAQAAAAQAAwA7QIAABAAGQDt
AgAAAAAbAO0CLQA7Ai0AvQJ5AGEDAAAAPE1vZHVsZT4AbXNjb3JsaWIATWljcm9zb2Z0LlZpc3Vh
bEJhc2ljAE15QXBwbGljYXRpb24AU2NyaXB0Q29tcG9uZW50X2Q0OGJiNDUwNGZiYzQxYzQ4Nzk3
YjVjYTFhZDIyMTUwLnZicHJvai5NeQBNeUNvbXB1dGVyAE15UHJvamVjdABNeVdlYlNlcnZpY2Vz
AFRocmVhZFNhZmVPYmplY3RQcm92aWRlcmAxAE91dHB1dEJ1ZmZlcgBTY3JpcHRDb21wb25lbnRf
ZDQ4YmI0NTA0ZmJjNDFjNDg3OTdiNWNhMWFkMjIxNTAudmJwcm9qAFVzZXJDb21wb25lbnQAQ29u
bmVjdGlvbnMAVmFyaWFibGVzAFNjcmlwdE1haW4ATXlSZXNvdXJjZXMAU2NyaXB0Q29tcG9uZW50
X2Q0OGJiNDUwNGZiYzQxYzQ4Nzk3YjVjYTFhZDIyMTUwLnZicHJvai5NeS5SZXNvdXJjZXMATXlT
ZXR0aW5ncwBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuQXBwbGljYXRpb25TZXJ2aWNlcwBBcHBsaWNh
dGlvbkJhc2UALmN0b3IATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkRldmljZXMAQ29tcHV0ZXIAU3lz
dGVtAE9iamVjdAAuY2N0b3IAZ2V0X0NvbXB1dGVyAG1fQ29tcHV0ZXJPYmplY3RQcm92aWRlcgBn
ZXRfQXBwbGljYXRpb24AbV9BcHBPYmplY3RQcm92aWRlcgBVc2VyAGdldF9Vc2VyAG1fVXNlck9i
amVjdFByb3ZpZGVyAGdldF9XZWJTZXJ2aWNlcwBtX015V2ViU2VydmljZXNPYmplY3RQcm92aWRl
cgBBcHBsaWNhdGlvbgBXZWJTZXJ2aWNlcwBFcXVhbHMAbwBHZXRIYXNoQ29kZQBUeXBlAEdldFR5
cGUAVG9TdHJpbmcAQ3JlYXRlX19JbnN0YW5jZV9fAFQAaW5zdGFuY2UARGlzcG9zZV9fSW5zdGFu
Y2VfXwBnZXRfR2V0SW5zdGFuY2UATWljcm9zb2Z0LlZpc3VhbEJhc2ljLk15U2VydmljZXMuSW50
ZXJuYWwAQ29udGV4dFZhbHVlYDEAbV9Db250ZXh0AEdldEluc3RhbmNlAENvenlSb2MuU1NJU1Bs
dXMuMjAwOABDb3p5Um9jLlNxbFNlcnZlci5TU0lTAFNjcmlwdEJ1ZmZlclBsdXMATWljcm9zb2Z0
LlNxbFNlcnZlci5UeFNjcmlwdABNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5QaXBlbGluZQBTY3Jp
cHRDb21wb25lbnQATWljcm9zb2Z0LlNxbFNlcnZlci5QaXBlbGluZUhvc3QAUGlwZWxpbmVCdWZm
ZXIAQ29tcG9uZW50AE9iamVjdElEAElzSW5wdXQAQnVmZmVyAGdldF9TdGF0aWNJbnB1dENvbHVt
bnMAc2V0X0F0dHJpYnV0ZU9mAFZhbHVlAHNldF9BdHRyaWJ1dGVPZl9Jc051bGwAc2V0X0F0dHJp
YnV0ZVR5cGUAc2V0X0F0dHJpYnV0ZVR5cGVfSXNOdWxsAHNldF9DYW5CZVNlY3VyZWRGb3JDcmVh
dGUAc2V0X0NhbkJlU2VjdXJlZEZvckNyZWF0ZV9Jc051bGwAc2V0X0NhbkJlU2VjdXJlZEZvclJl
YWQAc2V0X0NhbkJlU2VjdXJlZEZvclJlYWRfSXNOdWxsAHNldF9DYW5CZVNlY3VyZWRGb3JVcGRh
dGUAc2V0X0NhbkJlU2VjdXJlZEZvclVwZGF0ZV9Jc051bGwAc2V0X0Nhbk1vZGlmeUFkZGl0aW9u
YWxTZXR0aW5ncwBzZXRfQ2FuTW9kaWZ5QWRkaXRpb25hbFNldHRpbmdzX0lzTnVsbABzZXRfQ29s
dW1uTnVtYmVyAHNldF9Db2x1bW5OdW1iZXJfSXNOdWxsAHNldF9EZXByZWNhdGVkVmVyc2lvbgBz
ZXRfRGVwcmVjYXRlZFZlcnNpb25fSXNOdWxsAHNldF9EZXNjcmlwdGlvbgBzZXRfRGVzY3JpcHRp
b25fSXNOdWxsAHNldF9EaXNwbGF5TmFtZQBzZXRfRGlzcGxheU5hbWVfSXNOdWxsAHNldF9FbnRp
dHlMb2dpY2FsTmFtZQBzZXRfRW50aXR5TG9naWNhbE5hbWVfSXNOdWxsAHNldF9Jc0F1ZGl0RW5h
YmxlZABzZXRfSXNBdWRpdEVuYWJsZWRfSXNOdWxsAHNldF9Jc0N1c3RvbUF0dHJpYnV0ZQBzZXRf
SXNDdXN0b21BdHRyaWJ1dGVfSXNOdWxsAHNldF9Jc0N1c3RvbWl6YWJsZQBzZXRfSXNDdXN0b21p
emFibGVfSXNOdWxsAHNldF9Jc01hbmFnZWQAc2V0X0lzTWFuYWdlZF9Jc051bGwAc2V0X0lzUHJp
bWFyeUlkAHNldF9Jc1ByaW1hcnlJZF9Jc051bGwAc2V0X0lzUHJpbWFyeU5hbWUAc2V0X0lzUHJp
bWFyeU5hbWVfSXNOdWxsAHNldF9Jc1JlbmFtZWFibGUAc2V0X0lzUmVuYW1lYWJsZV9Jc051bGwA
c2V0X0lzU2VjdXJlZABzZXRfSXNTZWN1cmVkX0lzTnVsbABzZXRfSXNWYWxpZEZvckFkdmFuY2Vk
RmluZABzZXRfSXNWYWxpZEZvckFkdmFuY2VkRmluZF9Jc051bGwAc2V0X0lzVmFsaWRGb3JDcmVh
dGUAc2V0X0lzVmFsaWRGb3JDcmVhdGVfSXNOdWxsAHNldF9Jc1ZhbGlkRm9yUmVhZABzZXRfSXNW
YWxpZEZvclJlYWRfSXNOdWxsAHNldF9Jc1ZhbGlkRm9yVXBkYXRlAHNldF9Jc1ZhbGlkRm9yVXBk
YXRlX0lzTnVsbABHdWlkAHNldF9MaW5rZWRBdHRyaWJ1dGVJZABzZXRfTGlua2VkQXR0cmlidXRl
SWRfSXNOdWxsAHNldF9Mb2dpY2FsTmFtZQBzZXRfTG9naWNhbE5hbWVfSXNOdWxsAHNldF9SZXF1
aXJlZExldmVsAHNldF9SZXF1aXJlZExldmVsX0lzTnVsbABzZXRfU2NoZW1hTmFtZQBzZXRfU2No
ZW1hTmFtZV9Jc051bGwAZ2V0X1N0YXRpY091dHB1dENvbHVtbnMAQWRkUm93AFNldEVuZE9mUm93
c2V0AEVuZE9mUm93c2V0AFN0YXRpY0lucHV0Q29sdW1ucwBBdHRyaWJ1dGVPZgBBdHRyaWJ1dGVP
Zl9Jc051bGwAQXR0cmlidXRlVHlwZQBBdHRyaWJ1dGVUeXBlX0lzTnVsbABDYW5CZVNlY3VyZWRG
b3JDcmVhdGUAQ2FuQmVTZWN1cmVkRm9yQ3JlYXRlX0lzTnVsbABDYW5CZVNlY3VyZWRGb3JSZWFk
AENhbkJlU2VjdXJlZEZvclJlYWRfSXNOdWxsAENhbkJlU2VjdXJlZEZvclVwZGF0ZQBDYW5CZVNl
Y3VyZWRGb3JVcGRhdGVfSXNOdWxsAENhbk1vZGlmeUFkZGl0aW9uYWxTZXR0aW5ncwBDYW5Nb2Rp
ZnlBZGRpdGlvbmFsU2V0dGluZ3NfSXNOdWxsAENvbHVtbk51bWJlcgBDb2x1bW5OdW1iZXJfSXNO
dWxsAERlcHJlY2F0ZWRWZXJzaW9uAERlcHJlY2F0ZWRWZXJzaW9uX0lzTnVsbABEZXNjcmlwdGlv
bgBEZXNjcmlwdGlvbl9Jc051bGwARGlzcGxheU5hbWUARGlzcGxheU5hbWVfSXNOdWxsAEVudGl0
eUxvZ2ljYWxOYW1lAEVudGl0eUxvZ2ljYWxOYW1lX0lzTnVsbABJc0F1ZGl0RW5hYmxlZABJc0F1
ZGl0RW5hYmxlZF9Jc051bGwASXNDdXN0b21BdHRyaWJ1dGUASXNDdXN0b21BdHRyaWJ1dGVfSXNO
dWxsAElzQ3VzdG9taXphYmxlAElzQ3VzdG9taXphYmxlX0lzTnVsbABJc01hbmFnZWQASXNNYW5h
Z2VkX0lzTnVsbABJc1ByaW1hcnlJZABJc1ByaW1hcnlJZF9Jc051bGwASXNQcmltYXJ5TmFtZQBJ
c1ByaW1hcnlOYW1lX0lzTnVsbABJc1JlbmFtZWFibGUASXNSZW5hbWVhYmxlX0lzTnVsbABJc1Nl
Y3VyZWQASXNTZWN1cmVkX0lzTnVsbABJc1ZhbGlkRm9yQWR2YW5jZWRGaW5kAElzVmFsaWRGb3JB
ZHZhbmNlZEZpbmRfSXNOdWxsAElzVmFsaWRGb3JDcmVhdGUASXNWYWxpZEZvckNyZWF0ZV9Jc051
bGwASXNWYWxpZEZvclJlYWQASXNWYWxpZEZvclJlYWRfSXNOdWxsAElzVmFsaWRGb3JVcGRhdGUA
SXNWYWxpZEZvclVwZGF0ZV9Jc051bGwATGlua2VkQXR0cmlidXRlSWQATGlua2VkQXR0cmlidXRl
SWRfSXNOdWxsAExvZ2ljYWxOYW1lAExvZ2ljYWxOYW1lX0lzTnVsbABSZXF1aXJlZExldmVsAFJl
cXVpcmVkTGV2ZWxfSXNOdWxsAFNjaGVtYU5hbWUAU2NoZW1hTmFtZV9Jc051bGwAU3RhdGljT3V0
cHV0Q29sdW1ucwBTY3JpcHRDb21wb25lbnRQbHVzAEZpbmlzaE91dHB1dHMATWFya091dHB1dHNG
aW5pc2hlZABQcmltZU91dHB1dABPdXRwdXRzAE91dHB1dElEcwBCdWZmZXJzAENyZWF0ZU5ld091
dHB1dFJvd3MAUGFyZW50Q29tcG9uZW50AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRFRTUnVudGltZVdy
YXAATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUnVudGltZS5XcmFwcGVyAElEVFNDb25uZWN0aW9u
TWFuYWdlcjEwMABnZXRfQ3JtQ29ubmVjdGlvbgBDcm1Db25uZWN0aW9uAFZhbGlkYXRlAGVyck1l
c3NhZ2UAR2V0RW50aXR5TGlzdABHZXRQcm9wZXJ0aWVzAHNldF9Dcm1Db25uZWN0aW9uAHZhbHVl
AGdldF9Jc0VudGl0eVZhcmlhYmxlAHNldF9Jc0VudGl0eVZhcmlhYmxlAGdldF9FbnRpdHkAc2V0
X0VudGl0eQBnZXRfRW50aXR5VmFyaWFibGUAc2V0X0VudGl0eVZhcmlhYmxlAGdldF9Dcm1Db25u
ZWN0aW9uVHlwZQBGaXJlRXJyb3JfAG1lc3NhZ2UAR2V0VmFyaWFibGVfAHZhck5hbWUAQ296eVJv
Yy5EeW5hbWljcwBDb3p5Um9jLkR5bmFtaWNzLkNybTIwMTEuT3JnYW5pemF0aW9uU2VydmljZQBP
cmdhbml6YXRpb25TZXJ2aWNlQ2xpZW50AFByb2Nlc3MyMDExXwBzZXJ2aWNlAGVudGl0eQBDb3p5
Um9jLkR5bmFtaWNzLkNybS5NZXRhZGF0YVNlcnZpY2UATWV0YWRhdGFTZXJ2aWNlAFByb2Nlc3M0
XwBDb3p5Um9jLkR5bmFtaWNzLkNybTMuTWV0YWRhdGFTZXJ2aWNlAFByb2Nlc3MzXwBtX2NybUNv
bm5lY3Rpb24AbV9pc0VudGl0eVZhcgBtX2VudGl0eQBJc0VudGl0eVZhcmlhYmxlAEVudGl0eQBF
bnRpdHlWYXJpYWJsZQBDcm1Db25uZWN0aW9uVHlwZQBTeXN0ZW0uUmVzb3VyY2VzAFJlc291cmNl
TWFuYWdlcgBfcmVzTWdyAFN5c3RlbS5HbG9iYWxpemF0aW9uAEN1bHR1cmVJbmZvAF9yZXNDdWx0
dXJlAGdldF9SZXNvdXJjZU1hbmFnZXIAZ2V0X0N1bHR1cmUAc2V0X0N1bHR1cmUAQ3VsdHVyZQBT
eXN0ZW0uQ29uZmlndXJhdGlvbgBBcHBsaWNhdGlvblNldHRpbmdzQmFzZQBtX1ZhbHVlAG1fU3lu
Y09iamVjdABnZXRfVmFsdWUAU3lzdGVtLkNvbXBvbmVudE1vZGVsAEVkaXRvckJyb3dzYWJsZUF0
dHJpYnV0ZQBFZGl0b3JCcm93c2FibGVTdGF0ZQBTeXN0ZW0uQ29kZURvbS5Db21waWxlcgBHZW5l
cmF0ZWRDb2RlQXR0cmlidXRlAFN5c3RlbS5EaWFnbm9zdGljcwBEZWJ1Z2dlckhpZGRlbkF0dHJp
YnV0ZQBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuQ29tcGlsZXJTZXJ2aWNlcwBTdGFuZGFyZE1vZHVs
ZUF0dHJpYnV0ZQBIaWRlTW9kdWxlTmFtZUF0dHJpYnV0ZQBTeXN0ZW0uQ29tcG9uZW50TW9kZWwu
RGVzaWduAEhlbHBLZXl3b3JkQXR0cmlidXRlAFN5c3RlbS5SdW50aW1lLkNvbXBpbGVyU2Vydmlj
ZXMAUnVudGltZUhlbHBlcnMAR2V0T2JqZWN0VmFsdWUAUnVudGltZVR5cGVIYW5kbGUAR2V0VHlw
ZUZyb21IYW5kbGUAQWN0aXZhdG9yAENyZWF0ZUluc3RhbmNlAE15R3JvdXBDb2xsZWN0aW9uQXR0
cmlidXRlAHNldF9WYWx1ZQBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMAQ29tVmlzaWJs
ZUF0dHJpYnV0ZQBTdHJpbmcAc2V0X0l0ZW0AU2V0TnVsbABJbnZhbGlkT3BlcmF0aW9uRXhjZXB0
aW9uAEJvb2xlYW4ASW50MzIAU2NyaXB0QnVmZmVyAENMU0NvbXBsaWFudEF0dHJpYnV0ZQBNaWNy
b3NvZnQuU3FsU2VydmVyLkRUU1BpcGVsaW5lV3JhcABNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5Q
aXBlbGluZS5XcmFwcGVyAElEVFNDb21wb25lbnRNZXRhRGF0YTEwMABnZXRfQ29tcG9uZW50TWV0
YURhdGEASURUU091dHB1dENvbGxlY3Rpb24xMDAAZ2V0X091dHB1dENvbGxlY3Rpb24ASURUU091
dHB1dDEwMABnZXRfSXRlbQBnZXRfSUQASURUU1J1bnRpbWVDb25uZWN0aW9uQ29sbGVjdGlvbjEw
MABnZXRfUnVudGltZUNvbm5lY3Rpb25Db2xsZWN0aW9uAElEVFNSdW50aW1lQ29ubmVjdGlvbjEw
MABnZXRfQ29ubmVjdGlvbk1hbmFnZXIASUNybUNvbm5lY3Rpb24AQ296eVJvYy5EeW5hbWljcy5D
cm0zLlNlcnZpY2UAQ3JtU2VydmljZQBDb3p5Um9jLkR5bmFtaWNzLkNybS5TZXJ2aWNlAEV4Y2Vw
dGlvbgBBY3F1aXJlQ29ubmVjdGlvbgBDb25uZWN0AEdldFNlcnZpY2UAUHJvamVjdERhdGEAU2V0
UHJvamVjdEVycm9yAGdldF9NZXNzYWdlAENsZWFyUHJvamVjdEVycm9yAENsb3NlAElzTnVsbE9y
RW1wdHkAc2V0X0Nvbm5lY3Rpb25NYW5hZ2VySUQATWljcm9zb2Z0LlNxbFNlcnZlci5NYW5hZ2Vk
RFRTAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlJ1bnRpbWUAZ2V0X0Rlc2lnbkNvbm5lY3Rpb25z
AENvbm5lY3Rpb25NYW5hZ2VyAEFycmF5AFNvcnQAU3lzdGVtLkNvbGxlY3Rpb25zAEFycmF5TGlz
dABBZGQASW50ZXJhY3Rpb24ASUlmAFRvQXJyYXkARW1wdHkARmlyZUVycm9yAElEVFNWYXJpYWJs
ZXMxMDAASURUU1ZhcmlhYmxlRGlzcGVuc2VyMTAwAGdldF9WYXJpYWJsZURpc3BlbnNlcgBMb2Nr
T25lRm9yUmVhZABJRFRTVmFyaWFibGUxMDAAVW5sb2NrAEVudGl0eU1ldGFkYXRhAE9yZ2FuaXph
dGlvblJlcXVlc3QAT3JnYW5pemF0aW9uUmVzcG9uc2UAQXR0cmlidXRlTWV0YWRhdGEATnVsbGFi
bGVgMQBBdHRyaWJ1dGVUeXBlQ29kZQBzZXRfUmVxdWVzdE5hbWUARW50aXR5RmlsdGVycwBFeGVj
dXRlAGdldF9BdHRyaWJ1dGVzAGdldF9BdHRyaWJ1dGVPZgBnZXRfQXR0cmlidXRlVHlwZQBnZXRf
SGFzVmFsdWUARW51bQBnZXRfQ2FuQmVTZWN1cmVkRm9yQ3JlYXRlAGdldF9DYW5CZVNlY3VyZWRG
b3JSZWFkAGdldF9DYW5CZVNlY3VyZWRGb3JVcGRhdGUAQm9vbGVhbk1hbmFnZWRQcm9wZXJ0eQBn
ZXRfQ2FuTW9kaWZ5QWRkaXRpb25hbFNldHRpbmdzAE1hbmFnZWRQcm9wZXJ0eWJvb2xlYW4AZ2V0
X0NvbHVtbk51bWJlcgBnZXRfRGVwcmVjYXRlZFZlcnNpb24ATGFiZWwAZ2V0X0Rlc2NyaXB0aW9u
AExvY2FsaXplZExhYmVsQ29sbGVjdGlvbgBnZXRfTG9jYWxpemVkTGFiZWxzAFN5c3RlbS5Db2xs
ZWN0aW9ucy5HZW5lcmljAExpc3RgMQBMb2NhbGl6ZWRMYWJlbABnZXRfQ291bnQAZ2V0X0xhYmVs
AGdldF9EaXNwbGF5TmFtZQBnZXRfRW50aXR5TG9naWNhbE5hbWUAZ2V0X0lzQXVkaXRFbmFibGVk
AGdldF9Jc0N1c3RvbUF0dHJpYnV0ZQBnZXRfSXNDdXN0b21pemFibGUAZ2V0X0lzTWFuYWdlZABn
ZXRfSXNQcmltYXJ5SWQAZ2V0X0lzUHJpbWFyeU5hbWUAZ2V0X0lzUmVuYW1lYWJsZQBnZXRfSXNT
ZWN1cmVkAGdldF9Jc1ZhbGlkRm9yQWR2YW5jZWRGaW5kAGdldF9Jc1ZhbGlkRm9yQ3JlYXRlAGdl
dF9Jc1ZhbGlkRm9yUmVhZABnZXRfSXNWYWxpZEZvclVwZGF0ZQBnZXRfTGlua2VkQXR0cmlidXRl
SWQAZ2V0X0xvZ2ljYWxOYW1lAEF0dHJpYnV0ZVJlcXVpcmVkTGV2ZWxNYW5hZ2VkUHJvcGVydHkA
Z2V0X1JlcXVpcmVkTGV2ZWwATWFuYWdlZFByb3BlcnR5QXR0cmlidXRlUmVxdWlyZWRMZXZlbABB
dHRyaWJ1dGVSZXF1aXJlZExldmVsAGdldF9TY2hlbWFOYW1lAFJldHJpZXZlRW50aXR5UmVxdWVz
dABSZXRyaWV2ZUVudGl0eVJlc3BvbnNlAEVudGl0eUl0ZW1zAHNldF9FbnRpdHlJdGVtcwBNZXRh
ZGF0YVNlcnZpY2VSZXNwb25zZQBNZXRhZGF0YVNlcnZpY2VSZXF1ZXN0AGdldF9FbnRpdHlNZXRh
ZGF0YQBDcm1BdHRyaWJ1dGVUeXBlAENybU51bGxhYmxlAGdldF9Jc051bGwAQ3JtTGFiZWwATG9j
TGFiZWwAZ2V0X0xvY0xhYmVscwBDcm1Cb29sZWFuAGdldF9Jc0N1c3RvbUZpZWxkAENybUF0dHJp
YnV0ZVJlcXVpcmVkTGV2ZWwAZ2V0X1ZhbGlkRm9yQ3JlYXRlAGdldF9WYWxpZEZvclJlYWQAZ2V0
X1ZhbGlkRm9yVXBkYXRlAEVudGl0eUZsYWdzAFJldHJpZXZlRW50aXR5TWV0YWRhdGEAZ2V0X1R5
cGUAZ2V0X05hbWUAU1NJU1NjcmlwdENvbXBvbmVudEVudHJ5UG9pbnRBdHRyaWJ1dGUAQ296eVJv
Yy5TcWxTZXJ2ZXIuU1NJUy5BdHRyaWJ1dGVzAEZpbHRlclByb3BlcnRpZXNBdHRyaWJ1dGUAVmFs
aWRhdGVQcm9wZXJ0aWVzQXR0cmlidXRlAFNvcnRQcm9wZXJ0aWVzQXR0cmlidXRlAENvbm5lY3Rp
b25BdHRyaWJ1dGUARGVzY3JpcHRpb25BdHRyaWJ1dGUATm9uRXNzZW50aWFsQXR0cmlidXRlAFJl
ZnJlc2hQcm9wZXJ0aWVzQXR0cmlidXRlAFJlZnJlc2hQcm9wZXJ0aWVzAFZhcmlhYmxlQXR0cmli
dXRlAExpc3RBdHRyaWJ1dGUAU3lzdGVtLlJlZmxlY3Rpb24AQXNzZW1ibHkAZ2V0X0Fzc2VtYmx5
AFN5c3RlbS5UaHJlYWRpbmcATW9uaXRvcgBFbnRlcgBFeGl0AERlYnVnZ2VyTm9uVXNlckNvZGVB
dHRyaWJ1dGUAU2NyaXB0Q29tcG9uZW50X2Q0OGJiNDUwNGZiYzQxYzQ4Nzk3YjVjYTFhZDIyMTUw
LnZicHJvai5SZXNvdXJjZXMucmVzb3VyY2VzAENvbXBpbGF0aW9uUmVsYXhhdGlvbnNBdHRyaWJ1
dGUAUnVudGltZUNvbXBhdGliaWxpdHlBdHRyaWJ1dGUAQXNzZW1ibHlGaWxlVmVyc2lvbkF0dHJp
YnV0ZQBHdWlkQXR0cmlidXRlAEFzc2VtYmx5VHJhZGVtYXJrQXR0cmlidXRlAEFzc2VtYmx5Q29w
eXJpZ2h0QXR0cmlidXRlAEFzc2VtYmx5UHJvZHVjdEF0dHJpYnV0ZQBBc3NlbWJseUNvbXBhbnlB
dHRyaWJ1dGUAQXNzZW1ibHlEZXNjcmlwdGlvbkF0dHJpYnV0ZQBBc3NlbWJseVRpdGxlQXR0cmli
dXRlAFNjcmlwdENvbXBvbmVudF9kNDhiYjQ1MDRmYmM0MWM0ODc5N2I1Y2ExYWQyMjE1MC52YnBy
b2ouZGxsAAAAgJtJAHMATgB1AGwAbAAgAHAAcgBvAHAAZQByAHQAeQAgAGMAYQBuAG4AbwB0ACAA
YgBlACAAcwBlAHQAIAB0AG8AIABGAGEAbABzAGUALgAgAEEAcwBzAGkAZwBuACAAYQAgAHYAYQBs
AHUAZQAgAHQAbwAgAHQAaABlACAAYwBvAGwAdQBtAG4AIABpAG4AcwB0AGUAYQBkAC4AABdBAHQA
dAByAGkAYgB1AHQAZQBPAGYAABtBAHQAdAByAGkAYgB1AHQAZQBUAHkAcABlAAArQwBhAG4AQgBl
AFMAZQBjAHUAcgBlAGQARgBvAHIAQwByAGUAYQB0AGUAACdDAGEAbgBCAGUAUwBlAGMAdQByAGUA
ZABGAG8AcgBSAGUAYQBkAAArQwBhAG4AQgBlAFMAZQBjAHUAcgBlAGQARgBvAHIAVQBwAGQAYQB0
AGUAADdDAGEAbgBNAG8AZABpAGYAeQBBAGQAZABpAHQAaQBvAG4AYQBsAFMAZQB0AHQAaQBuAGcA
cwAAGUMAbwBsAHUAbQBuAE4AdQBtAGIAZQByAAAjRABlAHAAcgBlAGMAYQB0AGUAZABWAGUAcgBz
AGkAbwBuAAAXRABlAHMAYwByAGkAcAB0AGkAbwBuAAAXRABpAHMAcABsAGEAeQBOAGEAbQBlAAAj
RQBuAHQAaQB0AHkATABvAGcAaQBjAGEAbABOAGEAbQBlAAAdSQBzAEEAdQBkAGkAdABFAG4AYQBi
AGwAZQBkAAAjSQBzAEMAdQBzAHQAbwBtAEEAdAB0AHIAaQBiAHUAdABlAAAdSQBzAEMAdQBzAHQA
bwBtAGkAegBhAGIAbABlAAATSQBzAE0AYQBuAGEAZwBlAGQAABdJAHMAUAByAGkAbQBhAHIAeQBJ
AGQAABtJAHMAUAByAGkAbQBhAHIAeQBOAGEAbQBlAAAZSQBzAFIAZQBuAGEAbQBlAGEAYgBsAGUA
ABNJAHMAUwBlAGMAdQByAGUAZAAALUkAcwBWAGEAbABpAGQARgBvAHIAQQBkAHYAYQBuAGMAZQBk
AEYAaQBuAGQAACFJAHMAVgBhAGwAaQBkAEYAbwByAEMAcgBlAGEAdABlAAAdSQBzAFYAYQBsAGkA
ZABGAG8AcgBSAGUAYQBkAAAhSQBzAFYAYQBsAGkAZABGAG8AcgBVAHAAZABhAHQAZQAAI0wAaQBu
AGsAZQBkAEEAdAB0AHIAaQBiAHUAdABlAEkAZAAAF0wAbwBnAGkAYwBhAGwATgBhAG0AZQAAG1IA
ZQBxAHUAaQByAGUAZABMAGUAdgBlAGwAABVTAGMAaABlAG0AYQBOAGEAbQBlAAANTwB1AHQAcAB1
AHQAABtDAHIAbQBDAG8AbgBuAGUAYwB0AGkAbwBuAAAzVQBuAGgAYQBuAGQAbABlAGQAIABzAGUA
cgB2AGkAYwBlACAAbwBiAGoAZQBjAHQALgAAP1MAZQBsAGUAYwB0ACAARAB5AG4AYQBtAGkAYwBz
ACAAQwBSAE0AIABDAG8AbgBuAGUAYwB0AGkAbwBuAC4AADdTAGUAbABlAGMAdAAgAEQAeQBuAGEA
bQBpAGMAcwAgAEMAUgBNACAARQBuAHQAaQB0AHkALgAAIUkAcwBFAG4AdABpAHQAeQBWAGEAcgBp
AGEAYgBsAGUAAB1FAG4AdABpAHQAeQBWAGEAcgBpAGEAYgBsAGUAAA1FAG4AdABpAHQAeQAAGUQA
WQBOAEEATQBJAEMAUwAtAEMAUgBNAAE9RAB5AG4AYQBtAGkAYwBzACAAQwBSAE0AIABBAHQAdABy
AGkAYgB1AHQAZQBzACAAUwBvAHUAcgBjAGUAAB1SAGUAdAByAGkAZQB2AGUARQBuAHQAaQB0AHkA
ABVNAGUAdABhAGQAYQB0AGEASQBkAAArUgBlAHQAcgBpAGUAdgBlAEEAcwBJAGYAUAB1AGIAbABp
AHMAaABlAGQAABtFAG4AdABpAHQAeQBGAGkAbAB0AGUAcgBzAAAdRQBuAHQAaQB0AHkATQBlAHQA
YQBkAGEAdABhAAAxTQB5AC4AUgBlAHMAbwB1AHIAYwBlAHMALgBNAHkAUgBlAHMAbwB1AHIAYwBl
AHMAAKqYM5i8SmRKggKv7u2oAdAACLd6XFYZNOCJCLA/X38R1Qo6AyAAAQMAAAEEAAASDAcGFRIY
ARIMBAAAEggHBhUSGAESCAQAABIRBwYVEhgBEhEEAAASFAcGFRIYARIUBAgAEgwECAASCAQIABIR
BAgAEhQEIAECHAMgAAgEIAASFQMgAA4CHgAHEAEBHgAeAAcwAQEBEB4AAhMABCAAEwAHBhUSGQET
AAQoABMACBbPSQu4DDTqCImEXc2AgMyRCSAEARIhCAISJQQgAB0OBCABAQ4EIAEBAgQgAQEIBSAB
AREpAyAAAgQoAB0OAygADgMoAAIDKAAIBCgAESkDBhIkAwYSKAMGEhwJIAMBCB0IHRIlAwYSIQUg
AQESIQQgABIxBCgAEjEFIAECEA4EIAEcDgYgAgESNQ4GIAIBEjkOBiACARI9DgIGDgIGAgMGEkED
BhJFBAAAEkEEAAASRQUAAQESRQQIABJBBAgAEkUDBhI0AgYcBAAAEjQECAASNAUgAQERUQgBAAEA
AAAAAAUgAgEODhcBAApNeVRlbXBsYXRlBzguMC4wLjAAAAQBAAAABhUSGAESDAYVEhgBEggGFRIY
ARIRBhUSGAESFAQHARIMBAcBEggEBwESEQQHARIUEAEAC015LkNvbXB1dGVyAAAMAQAHTXkuVXNl
cgAAEwEADk15LkFwcGxpY2F0aW9uAAATAQAOTXkuV2ViU2VydmljZXMAAAQAARwcAwcBAgMHAQgG
AAESFRFtBAcBEhUDBwEOBRABAB4ABAoBHgAEBwEeAAcgBAEODg4OYQEANFN5c3RlbS5XZWIuU2Vy
dmljZXMuUHJvdG9jb2xzLlNvYXBIdHRwQ2xpZW50UHJvdG9jb2wSQ3JlYXRlX19JbnN0YW5jZV9f
E0Rpc3Bvc2VfX0luc3RhbmNlX18AAAAGFRIYARMABhUSGQETAAQKARMABSABARMABgcCEwATAAUB
AAAAAAQHAR0OBSACAQgcBgcCHQ4dDgUgABKAlQUgABKAmQYgARKAnRwEBwIICAUgABKAoQYgARKA
pRwEBwESMQQgARwcBCABHAgGAAEBEoC1FgcJEoCpDhwSNRKArRKAsRI5Ej0SgLUEAAECDgcHAwIC
EoC1BSAAEoC9BiABEoDBHAUgAR0OCAcQAQEBHR4AAwoBDgkHAxKAqR0OHQ4EIAEIHAYAAxwCHBwH
IAESgMUSFQIdDgcHAh0OEoDJCiAGAQgODg4IEAIFIAASgNUIIAIBDhASgNEGIAESgNkcAyAAHAcH
AxwcEoDRBSACAQ4cCCABEoDlEoDhBiAAHRKA6QogABURgO0BEYDxCBURgO0BEYDxCCAAFRGA7QEC
BhURgO0BAgUgABKA/QggABURgO0BCAYVEYDtAQgFIAASgQUFIAASgQkIFRKBDQESgREFIAETAAgJ
IAAVEYDtAREpBxURgO0BESkFIAASgRUFIAARgR1NBxASgN0SgOESgOUSgOkRKQgdEoDpEhwVEYDt
ARGA8RURgO0BEYDxFRGA7QECFRGA7QECFRGA7QEIFRGA7QEIFRGA7QERKRURgO0BESkGIAEBEYEt
CCABEoExEoE1BSAAEoE5BiAAHRKBKQUgABKBPQUgABGBRQUgABKBSQYgAB0SgU0FIAASgVEFIAAS
gVUFIAARgVkSBwYSgSESgSUSgSkIHRKBKRIcCSACEoFdDhGBZQYgAB0SgWEFIAARgWkFIAARgW0P
BwUSgV0SgWEIHRKBYRIcEgEADUdldFByb3BlcnRpZXMAAA0BAAhWYWxpZGF0ZQAABSABAR0OPQEA
BAAAAA1Dcm1Db25uZWN0aW9uEElzRW50aXR5VmFyaWFibGUGRW50aXR5DkVudGl0eVZhcmlhYmxl
AAAWAQARQ3JtQ29ubmVjdGlvblR5cGUAACwBACdTZWxlY3QgRHluYW1pY3MgQ1JNIENvbm5lY3Rp
b24gTWFuYWdlci4AAAYgAQERgZE+AQA5U3BlY2lmaWVzIGlmIEVudGl0eSBwcm9wZXJ0eSByZWZl
cmVuY2VzIHBhY2thZ2UgdmFyaWFibGUuAAAqAQAlU3BlY2lmaWVzIHZhcmlhYmxlIGNvbnRhaW5p
bmcgZW50aXR5LgAAEgEADUdldEVudGl0eUxpc3QAACABABtTZWxlY3QgRHluYW1pY3MgQ1JNIGVu
dGl0eS4AAAUgABKBnQcgAgEOEoGdBgcCEkESQQQHARJFCAEAAgAAAAAABAABARwEBwESNAgBAAgA
AAAAAB4BAAEAVAIWV3JhcE5vbkV4Y2VwdGlvblRocm93cwEMAQAHMS4wLjAuMAAAKQEAJDIxZThl
YmVjLTA2ODUtNGEzYy1hYmU2LTJjZjM4NzcwZmQ0MwAABQEAAQAAHwEAGkNvcHlyaWdodCBAIE1p
Y3Jvc29mdCAyMDEzAAA8AQA3U2NyaXB0Q29tcG9uZW50X2Q0OGJiNDUwNGZiYzQxYzQ4Nzk3YjVj
YTFhZDIyMTUwLnZicHJvagAADgEACU1pY3Jvc29mdAAAAABceQAAAAAAAAAAAAB+eQAAACAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAcHkAAAAAAAAAAAAAAAAAAAAAAAAAAF9Db3JEbGxNYWluAG1zY29y
ZWUuZGxsAAAAAAD/JQAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAwAAACgAAIAOAAAASAAAgBAAAABgAACAAAAAAAAA
AAAAAAAAAAACAAIAAAB4AACAAwAAAJAAAIAAAAAAAAAAAAAAAAAAAAEAAH8AAKgAAIAAAAAAAAAA
AAAAAAAAAAEAAQAAAMAAAIAAAAAAAAAAAAAAAAAAAAEAAAAAANgAAAAAAAAAAAAAAAAAAAAAAAEA
AAAAAOgAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAPgAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAgBAACA
hQAA6AIAAAAAAAAAAAAAaIgAACgBAAAAAAAAAAAAAJCJAAAiAAAAAAAAAAAAAAAYgQAAaAQAAAAA
AAAAAAAAaAQ0AAAAVgBTAF8AVgBFAFIAUwBJAE8ATgBfAEkATgBGAE8AAAAAAL0E7/4AAAEAAAAB
AAAAAAAAAAEAAAAAAD8AAAAAAAAABAAAAAIAAAAAAAAAAAAAAAAAAABEAAAAAQBWAGEAcgBGAGkA
bABlAEkAbgBmAG8AAAAAACQABAAAAFQAcgBhAG4AcwBsAGEAdABpAG8AbgAAAAAAAACwBMgDAAAB
AFMAdAByAGkAbgBnAEYAaQBsAGUASQBuAGYAbwAAAKQDAAABADAAMAAwADAAMAA0AGIAMAAAADQA
CgABAEMAbwBtAHAAYQBuAHkATgBhAG0AZQAAAAAATQBpAGMAcgBvAHMAbwBmAHQAAACYADgAAQBG
AGkAbABlAEQAZQBzAGMAcgBpAHAAdABpAG8AbgAAAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABvAG4A
ZQBuAHQAXwBkADQAOABiAGIANAA1ADAANABmAGIAYwA0ADEAYwA0ADgANwA5ADcAYgA1AGMAYQAx
AGEAZAAyADIAMQA1ADAALgB2AGIAcAByAG8AagAAADAACAABAEYAaQBsAGUAVgBlAHIAcwBpAG8A
bgAAAAAAMQAuADAALgAwAC4AMAAAAJgAPAABAEkAbgB0AGUAcgBuAGEAbABOAGEAbQBlAAAAUwBj
AHIAaQBwAHQAQwBvAG0AcABvAG4AZQBuAHQAXwBkADQAOABiAGIANAA1ADAANABmAGIAYwA0ADEA
YwA0ADgANwA5ADcAYgA1AGMAYQAxAGEAZAAyADIAMQA1ADAALgB2AGIAcAByAG8AagAuAGQAbABs
AAAAXAAbAAEATABlAGcAYQBsAEMAbwBwAHkAcgBpAGcAaAB0AAAAQwBvAHAAeQByAGkAZwBoAHQA
IABAACAATQBpAGMAcgBvAHMAbwBmAHQAIAAyADAAMQAzAAAAAACgADwAAQBPAHIAaQBnAGkAbgBh
AGwARgBpAGwAZQBuAGEAbQBlAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABvAG4AZQBuAHQAXwBkADQA
OABiAGIANAA1ADAANABmAGIAYwA0ADEAYwA0ADgANwA5ADcAYgA1AGMAYQAxAGEAZAAyADIAMQA1
ADAALgB2AGIAcAByAG8AagAuAGQAbABsAAAAkAA4AAEAUAByAG8AZAB1AGMAdABOAGEAbQBlAAAA
AABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfAGQANAA4AGIAYgA0ADUAMAA0AGYAYgBj
ADQAMQBjADQAOAA3ADkANwBiADUAYwBhADEAYQBkADIAMgAxADUAMAAuAHYAYgBwAHIAbwBqAAAA
NAAIAAEAUAByAG8AZAB1AGMAdABWAGUAcgBzAGkAbwBuAAAAMQAuADAALgAwAC4AMAAAADgACAAB
AEEAcwBzAGUAbQBiAGwAeQAgAFYAZQByAHMAaQBvAG4AAAAxAC4AMAAuADAALgAwAAAAKAAAACAA
AABAAAAAAQAEAAAAAACAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACA
AICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHd3d3d3d3d3
d3d3d3d3cARERERERERERERERERERHAE//////////////////RwBP/////////////////0cAT/
////////////////9HAE//////////////////RwBP/////////////////0cAT/////////////
////9HAE//////////////////RwBP/////////////////0cAT/////////////////9HAE////
//////////////RwBP/////////////////0cAT/////////////////9HAE////////////////
//RwBP/////////////////0cAT/////////////////9HAE//////////////////RwBP//////
///////////0cAT/////////////////9HAEiIiIiIiIiIiIiIiIiIRwBERERERERERERERERERE
cARMTExMTExMTExOzs5JdHAEzMzMzMzMzMzMzMzMzMQAAERERERERERERERERERAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/////////////////////A
AAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAA
AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAPAAAAH////////////////KAAA
ABAAAAAgAAAAAQAEAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAA
gACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAd3d3d3
d3d3REREREREREdP///////4R0////////hHT///////+EdP///////4R0////////hHT///////
+EdP///////4R0////////hHSIiIiIiIiEdMzMzMzMzMR8RERERERETAAAAAAAAAAAAAAAAAAAAA
AP//AACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA
//8AAP//AAAAAAEAAgAgIBAAAQAEAOgCAAACABAQEAABAAQAKAEAAAMAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAHAAAAwAAACQOQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAA=]]></arrayElement></arrayElements></property>
<property id="13" name="UserComponentTypeName" dataType="System.String" state="default" isArray="false" description="" typeConverter="" UITypeEditor="" containsID="false" expressionType="None">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2008, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea</property>
<property id="126" name="VSTAProjectName" dataType="System.String" state="default" isArray="false" description="Specifies the name of the Microsoft Visual Studio Tools for Applications project. Project names must be unique within a package." typeConverter="NOTBROWSABLE" UITypeEditor="" containsID="false" expressionType="None">ScriptComponent_d48bb4504fbc41c48797b5ca1ad22150</property>
<property id="127" name="ScriptLanguage" dataType="System.String" state="default" isArray="false" description="Specifies the programming language used by the script." typeConverter="Microsoft.SqlServer.VSTAHosting.ScriptingLanguages, Microsoft.SqlServer.VSTAScriptingLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" UITypeEditor="" containsID="false" expressionType="None">VisualBasic</property></properties>
<connections>
<connection id="91" name="CrmConnection" description="" connectionManagerID="{9cab3e7c-579f-4fad-9af8-fc4294e51641}" /></connections>
<outputs>
<output id="4" name="Output" description="" exclusionGroup="0" synchronousInputId="0" deleteOutputOnPathDetached="false" hasSideEffects="true" dangling="false" isErrorOut="false" isSorted="false" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed"><outputColumns>
<outputColumn id="25" name="AttributeOf" description="" lineageId="25" precision="0" scale="0" length="250" dataType="wstr" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="26" name="AttributeType" description="" lineageId="26" precision="0" scale="0" length="50" dataType="wstr" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="27" name="CanBeSecuredForCreate" description="" lineageId="27" precision="0" scale="0" length="0" dataType="bool" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="28" name="CanBeSecuredForRead" description="" lineageId="28" precision="0" scale="0" length="0" dataType="bool" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="29" name="CanBeSecuredForUpdate" description="" lineageId="29" precision="0" scale="0" length="0" dataType="bool" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="30" name="CanModifyAdditionalSettings" description="" lineageId="30" precision="0" scale="0" length="0" dataType="bool" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="31" name="ColumnNumber" description="" lineageId="31" precision="0" scale="0" length="0" dataType="i4" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="32" name="DeprecatedVersion" description="" lineageId="32" precision="0" scale="0" length="50" dataType="wstr" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="33" name="Description" description="" lineageId="33" precision="0" scale="0" length="250" dataType="wstr" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="34" name="DisplayName" description="" lineageId="34" precision="0" scale="0" length="250" dataType="wstr" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="35" name="EntityLogicalName" description="" lineageId="35" precision="0" scale="0" length="250" dataType="wstr" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="36" name="IsAuditEnabled" description="" lineageId="36" precision="0" scale="0" length="0" dataType="bool" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="37" name="IsCustomAttribute" description="" lineageId="37" precision="0" scale="0" length="0" dataType="bool" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="38" name="IsCustomizable" description="" lineageId="38" precision="0" scale="0" length="0" dataType="bool" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="39" name="IsManaged" description="" lineageId="39" precision="0" scale="0" length="0" dataType="bool" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="40" name="IsPrimaryId" description="" lineageId="40" precision="0" scale="0" length="0" dataType="bool" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="41" name="IsPrimaryName" description="" lineageId="41" precision="0" scale="0" length="0" dataType="bool" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="42" name="IsRenameable" description="" lineageId="42" precision="0" scale="0" length="0" dataType="bool" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="43" name="IsSecured" description="" lineageId="43" precision="0" scale="0" length="0" dataType="bool" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="44" name="IsValidForAdvancedFind" description="" lineageId="44" precision="0" scale="0" length="0" dataType="bool" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="45" name="IsValidForCreate" description="" lineageId="45" precision="0" scale="0" length="0" dataType="bool" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="46" name="IsValidForRead" description="" lineageId="46" precision="0" scale="0" length="0" dataType="bool" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="47" name="IsValidForUpdate" description="" lineageId="47" precision="0" scale="0" length="0" dataType="bool" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="48" name="LinkedAttributeId" description="" lineageId="48" precision="0" scale="0" length="0" dataType="guid" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="49" name="LogicalName" description="" lineageId="49" precision="0" scale="0" length="250" dataType="wstr" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="50" name="RequiredLevel" description="" lineageId="50" precision="0" scale="0" length="50" dataType="wstr" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="51" name="SchemaName" description="" lineageId="51" precision="0" scale="0" length="250" dataType="wstr" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" /></outputColumns><externalMetadataColumns isUsed="False" /></output>
</outputs>
</component>