<component id="16" name="Timezone" componentClassID="Microsoft.ManagedComponentHost" description="Executes a custom script." localeId="1033" version="9" contactInfo="Executes a custom script.;Microsoft Corporation;Microsoft SqlServer v9; © 2004 Microsoft Corporation; All Rights Reserved; http://www.microsoft.com/sql/support;0"><properties><property id="17" name="SourceCode" state="cdata" dataType="System.String" isArray="true" description="Stores the source code of the component" typeConverter="NOTBROWSABLE"><arrayElements arrayElementCount="30"><arrayElement dataType="System.String"><![CDATA[scriptcomponent_dabdc273a51b4faa88704ad79ae2721e.vbproj]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF16LE]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="utf-16"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <!-- This section defines project-level properties.

       Configuration - Specifies whether the default configuration is Release or Debug.
       Platform - Specifies what CPU the output of this project can run on.
       OutputType - Must be "Library" for VSTA.
       NoStandardLibraries - Set to "false" for VSTA.
       RootNamespace - In C#, this specifies the namespace given to new files.
                       In Visual Basic, all objects are wrapped in this namespace at runtime.
       AssemblyName - Name of the output assembly.
  -->
  <PropertyGroup>
    <ProjectTypeGuids>{30D016F9-3734-4E33-A861-5E7D899E18F3};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <OutputType>Library</OutputType>
    <RootNamespace>ScriptComponent_dabdc273a51b4faa88704ad79ae2721e.vbproj</RootNamespace>
    <AssemblyName>SC_F8D292A28B8E4AE2A7276DF27E97BB9A</AssemblyName>
    <StartupObject>
    </StartupObject>
    <OptionExplicit>On</OptionExplicit>
    <OptionCompare>Binary</OptionCompare>
    <OptionStrict>Off</OptionStrict>
    <OptionInfer>On</OptionInfer>
    <ProjectGuid>{2A545211-C6A6-4BB6-8F8F-5AEE5C20F7D7}</ProjectGuid>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
  </PropertyGroup>
  <!-- This section defines properties that are set when the "Debug" configuration is
       selected.

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

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

       Compile - Specifies a source file to compile.
       EmbeddedResource - Specifies a .resx file for embedded resources.
       None - Specifies a file that is not to be passed to the compiler (for instance,
              a text file or XML file).
       AppDesigner - Specifies the directory where the application properties files can
                     be found.
  -->
  <ItemGroup>
    <AppDesigner Include="My Project\" />
    <Compile Include="BufferWrapper.vb" />
    <Compile Include="ComponentWrapper.vb" />
    <Compile Include="main.vb" />
    <Compile Include="My Project\AssemblyInfo.vb">
      <SubType>Code</SubType>
    </Compile>
    <EmbeddedResource Include="My Project\Resources.resx">
      <Generator>VbMyResourcesResXFileCodeGenerator</Generator>
      <LastGenOutput>Resources.Designer.vb</LastGenOutput>
      <CustomToolNamespace>My.Resources</CustomToolNamespace>
    </EmbeddedResource>
    <Compile Include="My Project\Resources.Designer.vb">
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
      <DependentUpon>Resources.resx</DependentUpon>
      <SubType>Code</SubType>
    </Compile>
    <None Include="My Project\Settings.settings">
      <Generator>SettingsSingleFileGenerator</Generator>
      <LastGenOutput>Settings.Designer.vb</LastGenOutput>
    </None>
    <Compile Include="My Project\Settings.Designer.vb">
      <AutoGen>True</AutoGen>
      <DependentUpon>Settings.settings</DependentUpon>
      <SubType>Code</SubType>
    </Compile>
    <!-- Include the default configuration information and metadata files for the add-in.
         These files are copied to the build output directory when the project is
         built, and the path to the configuration file is passed to add-in on the command
         line when debugging.
    -->
  </ItemGroup>
  <!-- Include the build rules for a VB project.-->
  <Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
  <!-- This section defines VSTA properties that describe the host-changable project properties. -->
  <ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{30D016F9-3734-4E33-A861-5E7D899E18F3}">
        <ProjectProperties HostName="VSTAHostName" HostPackage="{B3A685AA-7EAF-4BC6-9940-57959FA5AC07}" ApplicationType="usd" Language="vb" TemplatesPath="" DebugInfoExeName="devenv.exe" DebugInfoCommandLine="/vstaHostDebugUri:&quot;vstadebug4ecaffdb-d2f0-4ba4-b07f-78a4fd318f0f/994039b1-6491-4431-afbe-269dd038e60f&quot;" />
        <Host Name="SSIS_ScriptComponent" />
        <ProjectClient>
          <HostIdentifier>SSIS_SC120</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
  <PropertyGroup>
    <TargetFrameworkProfile>
    </TargetFrameworkProfile>
  </PropertyGroup>
</Project>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[My Project\AssemblyInfo.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices

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

' Review the values of the assembly attributes

<Assembly: AssemblyTitle("ScriptComponent_dabdc273a51b4faa88704ad79ae2721e.vbproj")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("Microsoft")> 
<Assembly: AssemblyProduct("ScriptComponent_dabdc273a51b4faa88704ad79ae2721e.vbproj")> 
<Assembly: AssemblyCopyright("Copyright @ Microsoft 2018")> 
<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("51c58a44-7015-4b4c-9d73-b46a69a5b9c7")> 

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

<Assembly: AssemblyVersion("1.0.0.0")> 
<Assembly: AssemblyFileVersion("1.0.0.0")> 
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[ComponentWrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services component wrapper
' This module defines the base class for your component
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class UserComponent
    Inherits ScriptComponentPlus

    Public Connections As New Connections(Me)
    Public Variables As New Variables(Me)

    Public Overrides Sub ProcessInput(ByVal InputID As Integer, ByVal InputName As String, ByVal Buffer As PipelineBuffer, ByVal OutputMap As OutputNameMap)

        If InputID = MyBase.ComponentMetaData.InputCollection("Input").ID Then
            Input_ProcessInput(New InputBuffer(Me, InputID, True, Buffer, OutputMap))
        End If

    End Sub

    Public Overridable Sub Input_ProcessInput(ByVal Buffer As InputBuffer)

        While Buffer.NextRow()
            Input_ProcessInputRow(Buffer)
        End While

    End Sub

    Public Overridable Sub Input_ProcessInputRow(ByVal Row As InputBuffer)

    End Sub

End Class

Public Class Connections

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

End Class

Public Class Variables

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[main.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' COZYROC SQL Server Integration Services user script component
'
' Copyright (c) 2006-2018 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 CozyRoc.SqlServer.SSIS.Attributes


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<SortProperties(New String() {"TimeColumns", "InputZone", "OutputZone"})> _
<ValidateProperties("Validate")> _
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent


    Private Class Consts
        Public Const ColumnSeparator As String = "," + vbLf
        Public Const LocalTime As String = "[Local Time]"
    End Class   ' Consts


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub Input_ProcessInputRow(ByVal Row As InputBuffer)
        Dim colsCount As Integer = m_colIdx.Length
        For colIndex As Integer = 0 To colsCount - 1
            Dim bufIndex As Integer = m_colIdx(colIndex)
            If Not Row.Buffer.IsNull(bufIndex) Then
                Row.Buffer(bufIndex) = TimeZoneInfo.ConvertTime( _
                    CType(Row.Buffer(bufIndex), DateTime), _
                    m_inTZI, _
                    m_outTZI)
            End If
        Next
    End Sub ' Input_ProcessInputRow


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

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

        ' Setup dynamic time columns indexes.
        Dim colsCount As Integer = input.InputColumnCollection.Count
        m_colIdx = New Integer(colsCount - 1) {}
        For colIndex As Integer = 0 To colsCount - 1
            m_colIdx(colIndex) = Me.HostComponent.BufferManager.FindColumnByLineageID( _
                input.Buffer, _
                input.InputColumnCollection(colIndex).LineageID)
        Next

        ' Get input and output time zones.
        m_inTZI = GetTimeZoneInfo_(m_inputZone)
        m_outTZI = GetTimeZoneInfo_(m_outputZone)
    End Sub ' PreExecute


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

        m_colIdx = Nothing
    End Sub ' PostExecute


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

        Try
            If String.IsNullOrEmpty(Me.TimeColumns) Then
                Throw New ApplicationException("Select time columns.")
            End If

            If String.IsNullOrEmpty(Me.InputZone) Then
                Throw New Exception("Select input time zone.")
            End If

            If String.IsNullOrEmpty(Me.OutputZone) Then
                Throw New Exception("Select output time zone.")
            End If

            ' Setup input columns based on selection.
            Dim selectedCols() As String = CStr(Me.TimeColumns).Split( _
                New String() {Consts.ColumnSeparator}, _
                StringSplitOptions.None)
            Dim input As IDTSInput100 = Me.ComponentMetaData.InputCollection(0)
            Dim virtInput As IDTSVirtualInput100 = input.GetVirtualInput()

            Call input.InputColumnCollection.RemoveAll()

            For Each col As String In selectedCols
                If Not String.IsNullOrEmpty(col) Then
                    Dim virtColumn As IDTSVirtualInputColumn100 = virtInput.VirtualInputColumnCollection(col)
                    Call virtInput.SetUsageType(virtColumn.LineageID, DTSUsageType.UT_READWRITE)
                End If
            Next

            result = True
        Catch ex As Exception
            result = False
            errMessage = ex.Message
        End Try

        Validate = result
    End Function    'Validate


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Returns list of available time zones.
    Public Function GetZones() As Object()
        Dim result As New ArrayList
        Call result.Add(Consts.LocalTime)

        For Each tzi As TimeZoneInfo In TimeZoneInfo.GetSystemTimeZones()
            Call result.Add(tzi.DisplayName)
        Next

        GetZones = result.ToArray()
    End Function    ' GetZones


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select time columns.")> _
    <InputVirtualColumn("", False)> _
    Public Property TimeColumns() As String
        Get
            TimeColumns = m_cols
        End Get
        Set(ByVal value As String)
            m_cols = value
        End Set
    End Property    ' TimeColumns


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select input time zone.")> _
    <List("GetZones")> _
    Public Property InputZone() As String
        Get
            InputZone = GetDisplayNameFromId_(m_inputZone)
        End Get
        Set(ByVal value As String)
            m_inputZone = GetIdFromDisplayName_(value)
        End Set
    End Property    ' InputZone


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select output time zone.")> _
    <List("GetZones")> _
    Public Property OutputZone() As String
        Get
            OutputZone = GetDisplayNameFromId_(m_outputZone)
        End Get
        Set(ByVal value As String)
            m_outputZone = GetIdFromDisplayName_(value)
        End Set
    End Property    ' OutputZone
#End Region ' Properties


#Region "Internals"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub FireError_(ByVal message As String)
        Dim cancel As Boolean = False
        Call MyBase.ComponentMetaData.FireError( _
            0, _
            "Time Zone", _
            message, _
            String.Empty, _
            0, _
            cancel)
    End Sub ' FireError_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetDisplayNameFromId_(ByVal id As String) As String
        Dim result As String = id

        If Not String.IsNullOrEmpty(id) AndAlso _
            id <> Consts.LocalTime Then

            For Each tzi As TimeZoneInfo In TimeZoneInfo.GetSystemTimeZones()
                If tzi.Id.Equals(id) Then
                    ' Found zone
                    result = tzi.DisplayName
                    Exit For
                End If
            Next
        End If

        GetDisplayNameFromId_ = result
    End Function    ' GetDisplayNameFromId_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetIdFromDisplayName_(ByVal displayName As String) As String
        Dim result As String = displayName

        If Not String.IsNullOrEmpty(displayName) AndAlso _
            displayName <> Consts.LocalTime Then

            For Each tzi As TimeZoneInfo In TimeZoneInfo.GetSystemTimeZones()
                If tzi.DisplayName.Equals(displayName) Then
                    ' Found zone
                    result = tzi.Id
                    Exit For
                End If
            Next
        End If

        GetIdFromDisplayName_ = result
    End Function    ' GetIdFromDisplayName_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetTimeZoneInfo_(ByVal zoneID As String) As TimeZoneInfo
        Dim result As TimeZoneInfo = TimeZoneInfo.Local

        If zoneID <> Consts.LocalTime Then
            result = TimeZoneInfo.FindSystemTimeZoneById(zoneID)
        End If

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


#Region "Attributes"
    Private m_cols As String
    Private m_inputZone As String = TimeZoneInfo.Local.Id
    Private m_outputZone As String

    Private m_colIdx() As Integer
    Private m_inTZI As TimeZoneInfo
    Private m_outTZI As TimeZoneInfo
#End Region ' Attributes
End Class   ' ScriptMain
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[BufferWrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services buffer wrappers
' This module defines classes for accessing data flow buffers
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!


Option Strict Off   ' This allows usage of PipelineBuffer typed accessors.

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class InputBuffer
    Inherits ScriptBufferPlus

    Public Sub New(ByVal Component As ScriptComponent, ByVal ObjectID As Integer, ByVal IsInput As Boolean, ByVal Buffer As PipelineBuffer, ByVal OutputMap As OutputNameMap)
        MyBase.New(Component, ObjectID, IsInput, Buffer, OutputMap)
    End Sub

    Public Overrides ReadOnly Property StaticInputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public Overloads Function NextRow() As Boolean
        NextRow = MyBase.NextRow()
    End Function

    Public Overloads Function EndOfRowset() As Boolean
        EndOfRowset = MyBase.EndOfRowset
    End Function

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[My Project\Settings.settings]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version='1.0' encoding='iso-8859-1'?>
<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)" GeneratedClassNamespace="" GeneratedClassName="MySettings">
  <Profiles>
    <Profile Name="(Default)" />
  </Profiles>
  <Settings />
</SettingsFile>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[My Project\Settings.Designer.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA['------------------------------------------------------------------------------
' <autogenerated>
'     This code was generated by a tool.
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </autogenerated>
'------------------------------------------------------------------------------

Option Strict Off
Option Explicit On



Partial Friend NotInheritable Class MySettings
    Inherits System.Configuration.ApplicationSettingsBase

    Private Shared m_Value As MySettings

    Private Shared m_SyncObject As Object = New Object

    <System.Diagnostics.DebuggerNonUserCode()> _
    Public Shared ReadOnly Property Value() As MySettings
        Get
            If (MySettings.m_Value Is Nothing) Then
                System.Threading.Monitor.Enter(MySettings.m_SyncObject)
                If (MySettings.m_Value Is Nothing) Then
                    Try
                        MySettings.m_Value = New MySettings
                    Finally
                        System.Threading.Monitor.Exit(MySettings.m_SyncObject)
                    End Try
                End If
            End If
            Return MySettings.m_Value
        End Get
    End Property
End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[Project]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF16LE]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<c:Project xmlns:c="http://schemas.microsoft.com/codeprojectml/2010/08/main" xmlns:msb="http://schemas.microsoft.com/developer/msbuild/2003" runtimeVersion="4.0" schemaVersion="1.0">
	<msb:PropertyGroup>
		<msb:Language>msBuild</msb:Language>
		<msb:CodeName>scriptcomponent_dabdc273a51b4faa88704ad79ae2721e</msb:CodeName>
		<msb:NoContent>Reference;Import;Folder</msb:NoContent>
		<msb:ProjectId>{F433D5CB-307E-4F51-9425-ADA738D370F6}</msb:ProjectId>
		<msb:DisplayName>scriptcomponent_dabdc273a51b4faa88704ad79ae2721e</msb:DisplayName>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:File Include="BufferWrapper.vb"/>
		<msb:File Include="main.vb"/>
		<msb:File Include="My Project\Settings.Designer.vb"/>
		<msb:File Include="ComponentWrapper.vb"/>
		<msb:File Include="My Project\Resources.resx"/>
		<msb:File Include="My Project\AssemblyInfo.vb"/>
		<msb:File Include="My Project\Resources.Designer.vb"/>
		<msb:File Include="My Project\Settings.settings"/>
		<msb:Project Include="scriptcomponent_dabdc273a51b4faa88704ad79ae2721e.vbproj"/>
	</msb:ItemGroup>
</c:Project>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[My Project\Resources.resx]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[My Project\Resources.Designer.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA['------------------------------------------------------------------------------
' <autogenerated>
'     This code was generated by a tool.
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </autogenerated>
'------------------------------------------------------------------------------

Option Strict Off
Option Explicit On


Namespace My.Resources
    
    '''<summary>
    '''   A strongly-typed resource class, for looking up localized strings, etc.
    '''</summary>
    'This class was auto-generated by the Strongly Typed Resource Builder
    'class via a tool like ResGen or Visual Studio.NET.
    'To add or remove a member, edit your .ResX file then rerun ResGen
    'with the /str option, or rebuild your VS project.
    Class MyResources
        
        Private Shared _resMgr As System.Resources.ResourceManager
        
        Private Shared _resCulture As System.Globalization.CultureInfo
        
        Friend Sub New()
            MyBase.New
        End Sub
        
        '''<summary>
        '''   Returns the cached ResourceManager instance used by this class.
        '''</summary>
        <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)>  _
        Public Shared ReadOnly Property ResourceManager() As System.Resources.ResourceManager
            Get
                If (_resMgr Is Nothing) Then
                    Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("My.Resources.MyResources", GetType(MyResources).Assembly)
                    _resMgr = temp
                End If
                Return _resMgr
            End Get
        End Property
        
        '''<summary>
        '''   Overrides the current thread's CurrentUICulture property for all
        '''   resource lookups using this strongly typed resource class.
        '''</summary>
        <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)>  _
        Public Shared Property Culture() As System.Globalization.CultureInfo
            Get
                Return _resCulture
            End Get
            Set
                _resCulture = value
            End Set
        End Property
    End Class
End Namespace
]]></arrayElement></arrayElements></property><property id="18" name="BinaryCode" state="cdata" dataType="System.String" isArray="true" description="Stores the binary representation of the component" typeConverter="NOTBROWSABLE"><arrayElements arrayElementCount="2"><arrayElement dataType="System.String"><![CDATA[SC_F8D292A28B8E4AE2A7276DF27E97BB9A.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAgAAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1v
ZGUuDQ0KJAAAAAAAAABQRQAATAEDAAn79VoAAAAAAAAAAOAAIiALAVAAAC4AAAAIAAAAAAAAkkwA
AAAgAAAAYAAAAAAAEAAgAAAAAgAABAAAAAAAAAAEAAAAAAAAAACgAAAAAgAAAAAAAAMAQIUAABAA
ABAAAAAAEAAAEAAAAAAAABAAAAAAAAAAAAAAAEBMAABPAAAAAGAAALwEAAAAAAAAAAAAAAAAAAAA
AAAAAIAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAIAAACAAAAAAAAAAAAAAACCAAAEgAAAAAAAAAAAAAAC50ZXh0AAAAmCwAAAAgAAAALgAAAAIA
AAAAAAAAAAAAAAAAACAAAGAucnNyYwAAALwEAAAAYAAAAAYAAAAwAAAAAAAAAAAAAAAAAABAAABA
LnJlbG9jAAAMAAAAAIAAAAACAAAANgAAAAAAAAAAAAAAAAAAQAAAQgAAAAAAAAAAAAAAAAAAAAB0
TAAAAAAAAEgAAAACAAUAVCcAADQkAAABAAAAAAAAAIhLAAC4AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4CKB0AAAoqHgIoHgAACiqmcx8AAAqAAQAABHMgAAAKgAIA
AARzIQAACoADAAAEcyIAAAqABAAABCoufgEAAARvIwAACioufgIAAARvJAAACioufgMAAARvJQAA
CioufgQAAARvJgAACioeAignAAAKKq5+BQAABC0ecgEAAHDQBQAAAigoAAAKbykAAApzKgAACoAF
AAAEfgUAAAQqGn4GAAAEKh4CgAYAAAQqOgIDBAUOBA4FKCsAAAoqHhaNNgAAASoTMAEACQAAAAEA
ABECKCwAAAoKBioAAAATMAEACQAAAAEAABECKC0AAAoKBip+AiguAAAKAgJzFQAABn0HAAAEAgJz
FgAABn0IAAAEKr4DAigvAAAKbzAAAApyMwAAcG8xAAAKbzIAAAozEQICAxcFDgRzDAAABm8TAAAG
KkorBwIDbxQAAAYDbw8AAAYt8SoGKjoCKCcAAAoCA30JAAAEKjoCKCcAAAoCA30KAAAEKl4CKBEA
AAYCKDMAAApvNAAACn0MAAAEKhMwBQBiAAAAAgAAEQJ7DgAABI5pF9oKFgsrTgJ7DgAABAeUDANv
NQAACghvNgAACi0zA281AAAKCANvNQAACghvNwAACig4AAAKAnsPAAAEAnsQAAAEKDkAAAqMOwAA
AW86AAAKBxfWCwcGMa4qAAATMAYAogAAAAMAABECKDsAAAoCKC8AAApvMAAAChaMPAAAAW8xAAAK
CgZvPAAACm89AAAKCwIHF9oX1o08AAABfQ4AAAQHF9oMFg0rOAJ7DgAABAkCKD4AAApvPwAACgZv
QAAACgZvPAAACgmMPAAAAW9BAAAKb0IAAApvQwAACp4JF9YNCQgxxAICAnsMAAAEKCYAAAZ9DwAA
BAICAnsNAAAEKCYAAAZ9EAAABCo6AihEAAAKAhR9DgAABCoAAAAbMAUA6wAAAAQAABECKB0AAAYo
RQAACiwLcj8AAHBzRgAACnoCKB8AAAYoRQAACiwLcmkAAHBzRwAACnoCKCEAAAYoRQAACiwLcpkA
AHBzRwAACnoCKB0AAAYXjTYAAAElFnLLAABwohZvSAAACgIoLwAACm8wAAAKFow8AAABbzEAAAol
b0kAAAoMbzwAAApvSgAACg0WEwQrMwkRBJoTBREFKEUAAAotHghvSwAAChEFb0wAAAoTBggRBm9N
AAAKF29OAAAKJhEEF9YTBBEECY5pMsYXC94aJShPAAAKEwcWCwMRB29QAAAKUShRAAAK3gAHCgYq
AAEQAAAAAAAAzc0AGiwAAAEbMAIAUAAAAAUAABFzUgAACgsHctEAAHBvUwAACiYoVAAACm9VAAAK
DCsUCG9WAAAKDQcJb1cAAApvUwAACiYIb1gAAAot5N4KCCwGCG9ZAAAK3AdvWgAACgoGKgEQAAAC
ABIAKz0ACgAAAAATMAEACQAAAAYAABECewsAAAQKBioiAgN9CwAABCoAABMwAgAPAAAABgAAEQIC
ewwAAAQoJAAABgoGKjoCAgMoJQAABn0MAAAEKgAAEzACAA8AAAAGAAARAgJ7DQAABCgkAAAGCgYq
OgICAyglAAAGfQ0AAAQqAAATMAcAHQAAAAEAABEWCgIoLwAAChZy6wAAcAN+WwAAChYSAG9cAAAK
KgAAABswAwBbAAAABwAAEQMLAyhFAAAKLU0DctEAAHAWKF0AAAosPyhUAAAKb1UAAAoMKx4Ib1YA
AAoNCW80AAAKA29eAAAKLAkJb1cAAAoL3hQIb1gAAAot2t4KCCwGCG9ZAAAK3AcKBioAARAAAAIA
GAA1TQAKAAAAABswAwBbAAAABwAAEQMLAyhFAAAKLU0DctEAAHAWKF0AAAosPyhUAAAKb1UAAAoM
Kx4Ib1YAAAoNCW9XAAAKA29eAAAKLAkJbzQAAAoL3hQIb1gAAAot2t4KCCwGCG9ZAAAK3AcKBioA
ARAAAAIAGAA1TQAKAAAAABMwAwAfAAAACAAAESgzAAAKCwNy0QAAcBYoXQAACiwHAyhfAAAKCwcK
BipCcycAAAooYAAACoASAAAEKh4CKGEAAAoqGzABAD8AAAAAAAAAfhEAAAQtMn4SAAAEKGAAAAoo
YgAACn4RAAAELRxzKAAABoARAAAE3hB+EgAABChgAAAKKGMAAArcfhEAAAQqAAEQAAACAB0ADCkA
EAAAAAA2AgMoYAAACihkAAAKKh4CKGUAAAoqLtAMAAACKCgAAAoqHgIoZgAACioAABMwAQAUAAAA
CQAAEQKMBwAAGy0IKAEAACsKKwICCgYqIgP+FQcAABsqAAAAEzACACgAAAAKAAARAntoAAAKb2kA
AAoKBowKAAAbLRIoAgAAKwoCe2gAAAoGb2oAAAoGKkoCKCcAAAoCc2sAAAp9aAAACioAQlNKQgEA
AQAAAAAADAAAAHY0LjAuMzAzMTkAAAAABQBsAAAA1AwAACN+AABADQAADBAAACNTdHJpbmdzAAAA
AEwdAAAAAQAAI1VTAEweAAAQAAAAI0dVSUQAAABcHgAA2AUAACNCbG9iAAAAAAAAAAIAAAFXHaIJ
CQ8AAAD6ATMAFgAAAQAAAEwAAAAOAAAAFQAAADMAAAAaAAAAawAAAAIAAABDAAAACgAAAAYAAAAN
AAAAEQAAAAoAAAABAAAABwAAAAEAAAADAAAAAwAAAAIAAAAAAHoIAQAAAAAABgBvBloMBgAnB1oM
BgD2BJsLDwAoDQAABgA3BTIJBgAeBjIJBgAOBzIJBgCPBjIJBgCoBjIJBgB+BTIJBgDDBrsIBgAj
BRQMBgCfBBQMBgDmBTIJBgCZBZ4HCgDCBLYKCgCKBFoICgAKBVoIDgBKBOoLDgAVC64LBgCyBZsL
DgBOBTMMDgBmBY0CBgBwDrsIDgD7CuoLDgADBo0CBgAhBLsIDgDVABEICgCtBMIIBgCUCnoMBgC1
CR0JEgBFDr8BFgDIDpADGgBoCpADFgDBCZADEgBWDr8BEgBXBl0NEgA7Bl0NFgDZBpADBgCoCbsI
HgC0AM4KHgDBAM4KHgAtAM4KBgCeCbsIBgAdD/MNBgAUAXICCgAmBloIEgDKBV0NEgAAB10NCgBa
BAgJBgDZBJsLBgAnA7sIBgD0DzIJBgDIB7sIFgB3CpADHgABAM4KHgCIAM4KDgDnDTMMBgBxA7sI
BgAiAbsIHgBHAM4KGgCYDpADHgCfAM4KHgAaAM4KBgCTCbsIBgASDrsIHgBkAM4KHgAEBM4KDgBd
AjMMBgDkADsIBgBiC/MNBgAbA7sIDgA0DjMMBgAlDloMBgCTC40HBgB8C7sIAAAAAD4BAAAAAAEA
AQAAAAAA+gitD00AAQABAAAAAAATC60PUQABAAIAAAEQAHcOrQ9hAAEAAwAAAAAA0AyLDGEABQAI
AAEAAACECs8HgQAHAAwAAQAAAKoOzweRAAcAEQABAAAABg7PB2EACQAVAAEAAAA3Dc8HYQAKABYA
AQAAAN8IzwccAAsAFwAAARAAfw3PB8kAEQAnAAUBAADcCwAAYQATACoABQEAAPkAAABhABMAMQAD
AAAAPg4AAGEAFAAzADEAJgpZAjEA/QlhAjEAEQppAjEAPwpxAhEAHgt5AhEAPgR9AgYABg6BAgYA
Nw2FAgEAuA6JAgEAuA6JAgEAkQ2SAQEAzQOSAQEA9wOSAQEApA+OAgEArgGSAgEAtgGSAhEAXAeX
AhEAag6bAiEAfA/6AVaAUguSAVaAegOSAVAgAAAAAAYYhgsGAAEAWCAAAAAABhiGCwYAAQBgIAAA
AAARGIwLRgEBAIogAAAAABMIBgueAgEAliAAAAAAEwjqCKMCAQCiIAAAAAATCPcKqAIBAK4gAAAA
ABMIzAutAgEAuiAAAAAAAxiGCwYAAQDCIAAAAAAWCJAKsgIBAO4gAAAAABYIJgS3AgEA9SAAAAAA
FggyBLwCAQD9IAAAAAAGGIYLcQACAAwhAAAAAMYKuA3CAgcADCEAAAAAxgrPDcICBwAUIQAAAACG
AJwPhAAHACwhAAAAAIYAgQ6EAAcAQSEAAAAABhiGCwYABwBhIQAAAADGAmYPxwIHAJEhAAAAAEYD
YA/TAgsApCEAAAAARgOGD9MCDACmIQAAAAAGGIYL2QINALUhAAAAAAYYhgvZAg4AxCEAAAAABhiG
CwYADwDcIQAAAADGAoYP0wIPAEwiAAAAAMYCRQcGABAA+iIAAAAAxgJQBwYAEAAMIwAAAAAGAIEE
4AIQABQkAAAAAAYAVA2JAREAgCQAAAAABgiYDaUAEQCVJAAAAAAGCKgNEAARAKAkAAAAAAYIsQOl
ABIAuyQAAAAABgi/AxAAEgDMJAAAAAAGCNkDpQATAOckAAAAAAYI6AMQABMA+CQAAAAAAQA8AhAA
FAAkJQAAAAABAP8B5gIVAJwlAAAAAAEAFQLmAhYAFCYAAAAAAQArAusCFwA/JgAAAAARGIwLRgEY
AFAmAAAAAAYYhgsGABgAWCYAAAAAFghkB/ICGAC0JgAAAADGAooN1gEYAMImAAAAAMYC8AKbABkA
yiYAAAAAgwAeBPcCGQDWJgAAAADGAsYHpQAZAOAmAAAAABEA7AH8AhkAACcAAAAAAQDYAQQDGgC6
IAAAAAAGGIYLBgAbAAwnAAAAAAMI1wJWABsAQCcAAAAABhiGCwYAGwC6IAAAAAAGGIYLBgAbAAAA
AQCBBwAAAQDgDgAAAgCdAQAAAwBYDwAABACJCgAABQDPCQAAAQCmAQAAAgBLAwAAAwCJCgAABADP
CQAAAQCJCgAAAQCgDwAAAQDgDgAAAQDgDgAAAQCgDwAAAQAIAwAAAQCHBwAAAQCHBwAAAQCHBwAA
AQATAwAAAQDFAgAAAQBlAwAAAQCWAQAAAQC/CQAAAQDnAgAAAQDnAgkAhgsBABEAhgsGABkAhgsK
ACkAhgsQADEAhgsQADkAhgsQAEEAhgsQAEkAhgsQAFEAhgsQAFkAhgsVAGEAhgsVAGkAhgsQAHEA
hgsQAHkAhgsQAIEAhgsaAJEAhgsgAKkAhgsGALEAhgsGALkAhgsGANEAhgsmAOkAhgsQACkBhgsu
ADEBhgsQADkBhgsGAHkBhgsQAIEBhgs0AIkBhgsQAJkBhgsGAJkAhgsGAKEAhgsGAAwAhgsGABQA
hgsGABwAhgsGACQAhgsGAAwA1wJWABQA1wJWABwA1wJWACQA1wJWAMEAhgsGANkAOQNbANkA8A9j
APEAhgtpAAEBhgtxALkBnA+EALkBgQ6EACEBhgsGAAkBRwKIAMEBfwmOAMkBqQiUAEkBawGbAEEB
BwifAEEBowKlAAEBXQqvABEBogi1ABEBqQi6ANEBegS/AEEBhAPGABEBsgjVAAkBRQcGAEkBRAnk
AOkB9g6bACEB2A7qAPEBpArwAEkBXQqbAOkBqQj2AAECcgGbAPkBgAH9AAkBUAcGALEB/Q8VAQkC
hgsQAGEBhgsQALEBjQ4aAUkBSA8kAekBcAgGAFEBXgkqARkCqQgwAVkBcgGbAFEBEQQ3ASkCQgs/
AWEB/AKlACkCMAtGAWkBhgsGAGkBwQJdAUEBQQ1iASwAbgt2ATQA6g5WAEEBVQOlADkCcw+EAEEC
cgQGAGkB6A+JAbEBBRCSAcEBJguVAUkCuAewAbEBig23AUEBqgLFAVECeAfMAZEBhgsGAFkCAAvR
AVkCkw7RAcEAig3WAcEA8AKbAMEAxgelAGECyALjAUQAfA/6AUwAZAdWAEwAbgcRAkwAhgsGAA4A
UAA7Ag4AVABAAikAqwAmBS4ACwA9Ay4AEwBGAy4AGwBlAy4AIwBuAy4AKwCrAy4AMwCxAy4AOwBu
Ay4AQwDAAy4ASwCrAy4AUwDgAy4AWwCrAy4AYwDmAy4AawAQBC4AcwAdBEAAiwBlBEAAgwBqBEMA
ewBzBEMAgwBqBEkAqwA3BWMAewBzBGMAgwBqBGkAqwBLBYAAiwBlBIMAkwBlBIMAmwBlBIMAewBz
BIkAqwBYBaAAiwBlBKkAgwBlA8AAiwBlBMMAUwCrA8kAgwBlA+AAiwBlBOMAUwCrAykBywBsBSkB
0wCGBUMBswCMBEMBuwC2BEMBwwBlBEMBUwCrA0kBywCNBUkB2wCqBWkBywC4BWkB2wCqBYMBgwBq
BIMBowDEBIkB4wBlBKMBgwBqBKMBWwCrA6ACUwCrA8ACUwCrA0AFgwBqBEAFiwBlBGAFgwBqBGAF
iwBlBIAFgwBqBIAFiwBlBKAFgwBqBKAFiwBlBMAFiwBlBOAFiwBlBAAGiwBlBAAGgwBqBCAGiwBl
BEAGiwBlBEAGgwBqBIAAqQDbAAMBSgGOAaABvAHbAe4BBAABAAUABQAGAAcACgAJAAsADAANAA0A
AAAVCwwDAAD8CBEDAAD7ChYDAADeCxsDAACUCiADAABCBCUDAAC8DSoDAADTDSoDAACsDS8DAADD
Ay8DAADsAy8DAACBBzMDAADbAjgDAgAEAAMAAgAFAAUAAgAGAAcAAgAHAAkAAgAJAAsAAgAKAA0A
AQALAA0AAgANAA8AAgAOABEAAgAdABMAAQAeABMAAgAfABUAAQAgABUAAgAhABcAAQAiABcAAgAp
ABkAAgAxABsAOgBBAEgATwBtAYAB4AHzAQICCQIEgAAAAQAAAAAAAAAAAAAAAABHAQAABAAAAAAA
AAAAAAAAFwJpAgAAAAAEAAAAAAAAAAAAAAAXArsIAAAAAAoAAAAAAAAAAAAAACACjQIAAAAAAQAA
AAAAAAAAAAAAKQIoAQAAAAAMAAAAAAAAAAAAAAAyAgAPAAAAAAwAAAAAAAAAAAAAADICJw8AAAAA
DAAAAAAAAAAAAAAAMgLZCQAAAAAAAAAAAQAAANwMAAAMAAQADQAEAA4ACgAAABAAGgDWAQAAEABd
ANYBAAAAAF8A1gHPAOkBzwAMAgAAAAAASURUU0NvbXBvbmVudE1ldGFEYXRhMTAwAElEVFNJbnB1
dENvbHVtbjEwMABJRFRTVmlydHVhbElucHV0Q29sdW1uMTAwAElEVFNJbnB1dENvbHVtbkNvbGxl
Y3Rpb24xMDAASURUU1ZpcnR1YWxJbnB1dENvbHVtbkNvbGxlY3Rpb24xMDAASURUU0lucHV0Q29s
bGVjdGlvbjEwMABJRFRTQnVmZmVyTWFuYWdlcjEwMABJRFRTSW5wdXQxMDAASURUU1ZpcnR1YWxJ
bnB1dDEwMABDb250ZXh0VmFsdWVgMQBSZWFkT25seUNvbGxlY3Rpb25gMQBUaHJlYWRTYWZlT2Jq
ZWN0UHJvdmlkZXJgMQBJRW51bWVyYXRvcmAxAEludDMyAENvenlSb2MuU1NJU1BsdXMuMjAxNAA8
TW9kdWxlPgBTQ19GOEQyOTJBMjhCOEU0QUUyQTcyNzZERjI3RTk3QkI5QQBnZXRfSUQAZ2V0X0xp
bmVhZ2VJRABGaW5kQ29sdW1uQnlMaW5lYWdlSUQAem9uZUlEAE9iamVjdElEAElucHV0SUQAbV9p
blRaSQBtX291dFRaSQBDb3p5Um9jLlNxbFNlcnZlci5TU0lTAFQARGlzcG9zZV9fSW5zdGFuY2Vf
XwBDcmVhdGVfX0luc3RhbmNlX18AR2V0RGlzcGxheU5hbWVGcm9tSWRfAEdldElkRnJvbURpc3Bs
YXlOYW1lXwBHZXRUaW1lWm9uZUluZm9fAEZpcmVFcnJvcl8AZ2V0X0NvbXBvbmVudE1ldGFEYXRh
AFByb2plY3REYXRhAG1zY29ybGliAFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljAE1pY3Jvc29m
dC5WaXN1YWxCYXNpYwBnZXRfSWQARmluZFN5c3RlbVRpbWVab25lQnlJZABBZGQAaWQAQ3JlYXRl
SW5zdGFuY2UAZ2V0X0dldEluc3RhbmNlAGluc3RhbmNlAEdldEhhc2hDb2RlAGdldF9NZXNzYWdl
AGVyck1lc3NhZ2UAbWVzc2FnZQBJRGlzcG9zYWJsZQBSdW50aW1lVHlwZUhhbmRsZQBHZXRUeXBl
RnJvbUhhbmRsZQBJbnB1dE5hbWUAZ2V0X0Rpc3BsYXlOYW1lAGRpc3BsYXlOYW1lAERhdGVUaW1l
AExvY2FsVGltZQBDb252ZXJ0VGltZQBNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5QaXBlbGluZQBn
ZXRfSW5wdXRab25lAHNldF9JbnB1dFpvbmUAbV9pbnB1dFpvbmUAZ2V0X091dHB1dFpvbmUAc2V0
X091dHB1dFpvbmUAbV9vdXRwdXRab25lAERUU1VzYWdlVHlwZQBTZXRVc2FnZVR5cGUAR2V0VHlw
ZQBnZXRfQ3VsdHVyZQBzZXRfQ3VsdHVyZQBfcmVzQ3VsdHVyZQBBcHBsaWNhdGlvbkJhc2UAQXBw
bGljYXRpb25TZXR0aW5nc0Jhc2UARGlzcG9zZQBUb0RhdGUAVmFsaWRhdGUARWRpdG9yQnJvd3Nh
YmxlU3RhdGUAR3VpZEF0dHJpYnV0ZQBIZWxwS2V5d29yZEF0dHJpYnV0ZQBHZW5lcmF0ZWRDb2Rl
QXR0cmlidXRlAERlYnVnZ2VyTm9uVXNlckNvZGVBdHRyaWJ1dGUARGVidWdnYWJsZUF0dHJpYnV0
ZQBFZGl0b3JCcm93c2FibGVBdHRyaWJ1dGUAQ29tVmlzaWJsZUF0dHJpYnV0ZQBBc3NlbWJseVRp
dGxlQXR0cmlidXRlAFN0YW5kYXJkTW9kdWxlQXR0cmlidXRlAEhpZGVNb2R1bGVOYW1lQXR0cmli
dXRlAEFzc2VtYmx5VHJhZGVtYXJrQXR0cmlidXRlAFRhcmdldEZyYW1ld29ya0F0dHJpYnV0ZQBE
ZWJ1Z2dlckhpZGRlbkF0dHJpYnV0ZQBJbnB1dFZpcnR1YWxDb2x1bW5BdHRyaWJ1dGUAQXNzZW1i
bHlGaWxlVmVyc2lvbkF0dHJpYnV0ZQBNeUdyb3VwQ29sbGVjdGlvbkF0dHJpYnV0ZQBBc3NlbWJs
eURlc2NyaXB0aW9uQXR0cmlidXRlAFZhbGlkYXRlUHJvcGVydGllc0F0dHJpYnV0ZQBTb3J0UHJv
cGVydGllc0F0dHJpYnV0ZQBDb21waWxhdGlvblJlbGF4YXRpb25zQXR0cmlidXRlAEFzc2VtYmx5
UHJvZHVjdEF0dHJpYnV0ZQBBc3NlbWJseUNvcHlyaWdodEF0dHJpYnV0ZQBDTFNDb21wbGlhbnRB
dHRyaWJ1dGUAU1NJU1NjcmlwdENvbXBvbmVudEVudHJ5UG9pbnRBdHRyaWJ1dGUATGlzdEF0dHJp
YnV0ZQBBc3NlbWJseUNvbXBhbnlBdHRyaWJ1dGUAUnVudGltZUNvbXBhdGliaWxpdHlBdHRyaWJ1
dGUAUHJlRXhlY3V0ZQBQb3N0RXhlY3V0ZQBtX1ZhbHVlAGdldF9WYWx1ZQBzZXRfVmFsdWUAR2V0
T2JqZWN0VmFsdWUAdmFsdWUAU3lzdGVtLlRocmVhZGluZwBTeXN0ZW0uUnVudGltZS5WZXJzaW9u
aW5nAENvbXBhcmVTdHJpbmcAVG9TdHJpbmcAU2NyaXB0Q29tcG9uZW50X2RhYmRjMjczYTUxYjRm
YWE4ODcwNGFkNzlhZTI3MjFlLnZicHJvagBnZXRfTG9jYWwATWljcm9zb2Z0LlZpc3VhbEJhc2lj
Lk15U2VydmljZXMuSW50ZXJuYWwAU3lzdGVtLkNvbGxlY3Rpb25zLk9iamVjdE1vZGVsAFN5c3Rl
bS5Db21wb25lbnRNb2RlbABSZW1vdmVBbGwAU0NfRjhEMjkyQTI4QjhFNEFFMkE3Mjc2REYyN0U5
N0JCOUEuZGxsAElzTnVsbABnZXRfSXRlbQBzZXRfSXRlbQBTeXN0ZW0AU3lzdGVtLkNvbXBvbmVu
dE1vZGVsLkRlc2lnbgBTY3JpcHRNYWluAGdldF9BcHBsaWNhdGlvbgBNeUFwcGxpY2F0aW9uAFN5
c3RlbS5Db25maWd1cmF0aW9uAFN5c3RlbS5HbG9iYWxpemF0aW9uAFN5c3RlbS5SZWZsZWN0aW9u
AGdldF9JbnB1dENvbHVtbkNvbGxlY3Rpb24AZ2V0X1ZpcnR1YWxJbnB1dENvbHVtbkNvbGxlY3Rp
b24AZ2V0X0lucHV0Q29sbGVjdGlvbgBBcHBsaWNhdGlvbkV4Y2VwdGlvbgBUaW1lWm9uZUluZm8A
Q3VsdHVyZUluZm8AT3V0cHV0TmFtZU1hcABPdXRwdXRNYXAATWljcm9zb2Z0LlNxbFNlcnZlci5E
VFNQaXBlbGluZVdyYXAAbV9BcHBPYmplY3RQcm92aWRlcgBtX1VzZXJPYmplY3RQcm92aWRlcgBt
X0NvbXB1dGVyT2JqZWN0UHJvdmlkZXIAbV9NeVdlYlNlcnZpY2VzT2JqZWN0UHJvdmlkZXIAZ2V0
X0J1ZmZlcgBQaXBlbGluZUJ1ZmZlcgBTY3JpcHRCdWZmZXIASW5wdXRCdWZmZXIAZ2V0X1Jlc291
cmNlTWFuYWdlcgBnZXRfQnVmZmVyTWFuYWdlcgBTeXN0ZW0uQ29kZURvbS5Db21waWxlcgBNaWNy
b3NvZnQuU3FsU2VydmVyLkR0cy5QaXBlbGluZS5XcmFwcGVyAGdldF9Vc2VyAEVudGVyAGdldF9D
b21wdXRlcgBNeUNvbXB1dGVyAF9yZXNNZ3IARmlyZUVycm9yAENsZWFyUHJvamVjdEVycm9yAFNl
dFByb2plY3RFcnJvcgBDb2x1bW5TZXBhcmF0b3IASUVudW1lcmF0b3IAR2V0RW51bWVyYXRvcgBB
Y3RpdmF0b3IALmN0b3IALmNjdG9yAE1vbml0b3IAU3lzdGVtLkRpYWdub3N0aWNzAE1pY3Jvc29m
dC5WaXN1YWxCYXNpYy5EZXZpY2VzAGdldF9XZWJTZXJ2aWNlcwBNeVdlYlNlcnZpY2VzAE1pY3Jv
c29mdC5WaXN1YWxCYXNpYy5BcHBsaWNhdGlvblNlcnZpY2VzAFN5c3RlbS5SdW50aW1lLkludGVy
b3BTZXJ2aWNlcwBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuQ29tcGlsZXJTZXJ2aWNlcwBTeXN0ZW0u
UnVudGltZS5Db21waWxlclNlcnZpY2VzAFN5c3RlbS5SZXNvdXJjZXMAU2NyaXB0Q29tcG9uZW50
X2RhYmRjMjczYTUxYjRmYWE4ODcwNGFkNzlhZTI3MjFlLnZicHJvai5NeS5SZXNvdXJjZXMATXlS
ZXNvdXJjZXMAU2NyaXB0Q29tcG9uZW50X2RhYmRjMjczYTUxYjRmYWE4ODcwNGFkNzlhZTI3MjFl
LnZicHJvai5SZXNvdXJjZXMucmVzb3VyY2VzAERlYnVnZ2luZ01vZGVzAFZhcmlhYmxlcwBHZXRT
eXN0ZW1UaW1lWm9uZXMAR2V0Wm9uZXMAQ296eVJvYy5TcWxTZXJ2ZXIuU1NJUy5BdHRyaWJ1dGVz
AE15U2V0dGluZ3MARXF1YWxzAG1fY29scwBnZXRfVGltZUNvbHVtbnMAc2V0X1RpbWVDb2x1bW5z
AGdldF9TdGF0aWNJbnB1dENvbHVtbnMAZ2V0X1N0YXRpY091dHB1dENvbHVtbnMAQ29udmVyc2lv
bnMAU3lzdGVtLkNvbGxlY3Rpb25zAENvbm5lY3Rpb25zAFN0cmluZ1NwbGl0T3B0aW9ucwBSdW50
aW1lSGVscGVycwBPcGVyYXRvcnMAQ29uc3RzAFNjcmlwdEJ1ZmZlclBsdXMAU2NyaXB0Q29tcG9u
ZW50UGx1cwBtX1N5bmNPYmplY3QATXlQcm9qZWN0AEVuZE9mUm93c2V0AFNwbGl0AEV4aXQAUGlw
ZWxpbmVDb21wb25lbnQAVXNlckNvbXBvbmVudABQYXJlbnRDb21wb25lbnQAU2NyaXB0Q29tcG9u
ZW50AGdldF9Ib3N0Q29tcG9uZW50AGdldF9DdXJyZW50AGdldF9Db3VudABNaWNyb3NvZnQuU3Fs
U2VydmVyLlR4U2NyaXB0AEFycmF5TGlzdABNaWNyb3NvZnQuU3FsU2VydmVyLlBpcGVsaW5lSG9z
dABHZXRWaXJ0dWFsSW5wdXQASXNJbnB1dABJbnB1dF9Qcm9jZXNzSW5wdXQATW92ZU5leHQAbV9D
b250ZXh0AElucHV0X1Byb2Nlc3NJbnB1dFJvdwBOZXh0Um93AG1fY29sSWR4AFNjcmlwdENvbXBv
bmVudF9kYWJkYzI3M2E1MWI0ZmFhODg3MDRhZDc5YWUyNzIxZS52YnByb2ouTXkAVG9BcnJheQBn
ZXRfQXNzZW1ibHkASXNOdWxsT3JFbXB0eQAAADFNAHkALgBSAGUAcwBvAHUAcgBjAGUAcwAuAE0A
eQBSAGUAcwBvAHUAcgBjAGUAcwAAC0kAbgBwAHUAdAAAKVMAZQBsAGUAYwB0ACAAdABpAG0AZQAg
AGMAbwBsAHUAbQBuAHMALgAAL1MAZQBsAGUAYwB0ACAAaQBuAHAAdQB0ACAAdABpAG0AZQAgAHoA
bwBuAGUALgAAMVMAZQBsAGUAYwB0ACAAbwB1AHQAcAB1AHQAIAB0AGkAbQBlACAAegBvAG4AZQAu
AAAFLAAKAAAZWwBMAG8AYwBhAGwAIABUAGkAbQBlAF0AABNUAGkAbQBlACAAWgBvAG4AZQAAABUm
yR8L4mhBremdJIM6PiQABCABAQgDIAABBSABARERBCABAQ4EIAEBAgUgAgEODgUgAQERRQcgBAEO
Dg4OBSABAR0OBSACAQ4CBhUSNAESDAYVEjQBEggGFRI0ARJlBhUSNAESMAQgABMABwABEm0RgNEF
IAASgNUHIAIBDhKA1Q4gBQESgIUIAhKAiRKAjQMHAQIDIAACBSAAEoDhBSAAEoDlBiABEoClHAMg
AAgFAAASgKEDIAAOBQcDCAgIBSAAEoCJBCABAggEIAEcCAYAARGA7RwOAAMRgO0RgO0SgKESgKEF
IAIBCBwIBwQSgKUICAgFIAASgPUFIAASgPkFIAASgP0GIAESgQEcBSACCAgIEQcIAgISgKkdDggO
EoCtEoCxBAABAg4JIAIdDh0OEYEJBSAAEoCpBSAAEoENBiABEoCtHAcgAggIEYERBgABARKAsQMA
AAESBwQdHBKAtRUSgLkBEoChEoChBCABCBwKAAAVEoEZARKAoQgVEoEZARKAoQkgABUSgLkBEwAI
FRKAuQESgKEEIAAdHAMHAQ4CBg4KIAYBCA4ODggQAg8HBA4OFRKAuQESgKESgKEGAAMIDg4CBCAB
Ag4IBwISgKESgKEGAAESgKEOBAABHBwEAAEBHAQgAQIcBAcBHgACHgAFEAEAHgAECgEeAAQHARMA
BhUSNAETAAcGFRJxARMABhUScQETAAITAAQKARMABSABARMACLd6XFYZNOCJCLA/X38R1Qo6CBbP
SQu4DDTqCImEXc2AgMyRBCwACgAYWwBMAG8AYwBhAGwAIABUAGkAbQBlAF0ABwYVEjQBEgwHBhUS
NAESCAcGFRI0ARJlBwYVEjQBEjADBhJ5AwYSfQMGEiADBhIkBAYSgIUDBh0IBAYSgKEDBhIsAgYc
BAAAEgwEAAASCAQAABJlBAAAEjAEAAASeQQAABJ9BQABARJ9BCAAHQ4LIAQBCA4SgIkSgI0FIAEB
EhgGIAEBEoCFBSABAhAOBCABDg4GIAESgKEOBAAAEiwEIAASbQcQAQEeAB4ABzABAQEQHgAECAAS
DAQIABIIBAgAEmUECAASMAQIABJ5BAgAEn0EKAAdDgMoAA4ECAASLAQoABMACAEACAAAAAAAHgEA
AQBUAhZXcmFwTm9uRXhjZXB0aW9uVGhyb3dzAQgBAAIAAAAAADwBADdTY3JpcHRDb21wb25lbnRf
ZGFiZGMyNzNhNTFiNGZhYTg4NzA0YWQ3OWFlMjcyMWUudmJwcm9qAAAFAQAAAAAOAQAJTWljcm9z
b2Z0AAAfAQAaQ29weXJpZ2h0IEAgTWljcm9zb2Z0IDIwMTgAAAUBAAEAACkBACQ1MWM1OGE0NC03
MDE1LTRiNGMtOWQ3My1iNDZhNjlhNWI5YzcAAAwBAAcxLjAuMC4wAABHAQAaLk5FVEZyYW1ld29y
ayxWZXJzaW9uPXY0LjABAFQOFEZyYW1ld29ya0Rpc3BsYXlOYW1lEC5ORVQgRnJhbWV3b3JrIDQE
AQAAAAgBAAEAAAAAABgBAApNeVRlbXBsYXRlCDExLjAuMC4wAAApAQADAAAAC1RpbWVDb2x1bW5z
CUlucHV0Wm9uZQpPdXRwdXRab25lAAANAQAIVmFsaWRhdGUAAGEBADRTeXN0ZW0uV2ViLlNlcnZp
Y2VzLlByb3RvY29scy5Tb2FwSHR0cENsaWVudFByb3RvY29sEkNyZWF0ZV9fSW5zdGFuY2VfXxNE
aXNwb3NlX19JbnN0YW5jZV9fAAAAEAEAC015LkNvbXB1dGVyAAATAQAOTXkuQXBwbGljYXRpb24A
AAwBAAdNeS5Vc2VyAAATAQAOTXkuV2ViU2VydmljZXMAABkBABRTZWxlY3QgdGltZSBjb2x1bW5z
LgAABgEAAAAAABwBABdTZWxlY3QgaW5wdXQgdGltZSB6b25lLgAADQEACEdldFpvbmVzAAAdAQAY
U2VsZWN0IG91dHB1dCB0aW1lIHpvbmUuAAAAALQAAADOyu++AQAAAJEAAABsU3lzdGVtLlJlc291
cmNlcy5SZXNvdXJjZVJlYWRlciwgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1u
ZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5I1N5c3RlbS5SZXNvdXJjZXMu
UnVudGltZVJlc291cmNlU2V0AgAAAAAAAAAAAAAAUEFEUEFEULQAAABoTAAAAAAAAAAAAACCTAAA
ACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdEwAAAAAAAAAAAAAAABfQ29yRGxsTWFpbgBtc2NvcmVl
LmRsbAAAAAAA/yUAIAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABABAAAAAYAACA
AAAAAAAAAAAAAAAAAAABAAEAAAAwAACAAAAAAAAAAAAAAAAAAAABAAAAAABIAAAAWGAAAGAEAAAA
AAAAAAAAAGAENAAAAFYAUwBfAFYARQBSAFMASQBPAE4AXwBJAE4ARgBPAAAAAAC9BO/+AAABAAAA
AQAAAAAAAAABAAAAAAA/AAAAAAAAAAQAAAACAAAAAAAAAAAAAAAAAAAARAAAAAEAVgBhAHIARgBp
AGwAZQBJAG4AZgBvAAAAAAAkAAQAAABUAHIAYQBuAHMAbABhAHQAaQBvAG4AAAAAAAAAsATAAwAA
AQBTAHQAcgBpAG4AZwBGAGkAbABlAEkAbgBmAG8AAACcAwAAAQAwADAAMAAwADAANABiADAAAAAa
AAEAAQBDAG8AbQBtAGUAbgB0AHMAAAAAAAAANAAKAAEAQwBvAG0AcABhAG4AeQBOAGEAbQBlAAAA
AABNAGkAYwByAG8AcwBvAGYAdAAAAJgAOAABAEYAaQBsAGUARABlAHMAYwByAGkAcAB0AGkAbwBu
AAAAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfAGQAYQBiAGQAYwAyADcAMwBhADUA
MQBiADQAZgBhAGEAOAA4ADcAMAA0AGEAZAA3ADkAYQBlADIANwAyADEAZQAuAHYAYgBwAHIAbwBq
AAAAMAAIAAEARgBpAGwAZQBWAGUAcgBzAGkAbwBuAAAAAAAxAC4AMAAuADAALgAwAAAAcAAoAAEA
SQBuAHQAZQByAG4AYQBsAE4AYQBtAGUAAABTAEMAXwBGADgARAAyADkAMgBBADIAOABCADgARQA0
AEEARQAyAEEANwAyADcANgBEAEYAMgA3AEUAOQA3AEIAQgA5AEEALgBkAGwAbAAAAFoAGwABAEwA
ZQBnAGEAbABDAG8AcAB5AHIAaQBnAGgAdAAAAEMAbwBwAHkAcgBpAGcAaAB0ACAAQAAgAE0AaQBj
AHIAbwBzAG8AZgB0ACAAMgAwADEAOAAAAAAAKgABAAEATABlAGcAYQBsAFQAcgBhAGQAZQBtAGEA
cgBrAHMAAAAAAAAAAAB4ACgAAQBPAHIAaQBnAGkAbgBhAGwARgBpAGwAZQBuAGEAbQBlAAAAUwBD
AF8ARgA4AEQAMgA5ADIAQQAyADgAQgA4AEUANABBAEUAMgBBADcAMgA3ADYARABGADIANwBFADkA
NwBCAEIAOQBBAC4AZABsAGwAAACQADgAAQBQAHIAbwBkAHUAYwB0AE4AYQBtAGUAAAAAAFMAYwBy
AGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8AZABhAGIAZABjADIANwAzAGEANQAxAGIANABmAGEA
YQA4ADgANwAwADQAYQBkADcAOQBhAGUAMgA3ADIAMQBlAC4AdgBiAHAAcgBvAGoAAAA0AAgAAQBQ
AHIAbwBkAHUAYwB0AFYAZQByAHMAaQBvAG4AAAAxAC4AMAAuADAALgAwAAAAOAAIAAEAQQBzAHMA
ZQBtAGIAbAB5ACAAVgBlAHIAcwBpAG8AbgAAADEALgAwAC4AMAAuADAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAwAAACUPAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=]]></arrayElement></arrayElements></property><property id="23" name="UserComponentTypeName" dataType="System.String">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2014, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea</property><property id="25" name="VSTAProjectName" dataType="System.String" description="Specifies the name of the Microsoft Visual Studio Tools for Applications project. Project names must be unique within a package." typeConverter="NOTBROWSABLE">SC_f8d292a28b8e4ae2a7276df27e97bb9a</property><property id="26" name="ScriptLanguage" dataType="System.String" description="Specifies the programming language used by the script." typeConverter="Microsoft.SqlServer.VSTAHosting.ScriptingLanguages, Microsoft.SqlServer.VSTAScriptingLib, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">VisualBasic</property></properties><inputs><input id="27" name="Input" hasSideEffects="true"><externalMetadataColumns /></input></inputs><outputs><output id="30" name="Output" synchronousInputId="27"><externalMetadataColumns /></output></outputs></component>