<component id="1" name="Script Component Plus" componentClassID="{874F7595-FB5F-40FF-96AF-FBFF8250E3EF}" description="Executes a custom script" localeId="1033" version="7" 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" state="cdata" dataType="System.String" isArray="true" description="Stores the source code of the component" typeConverter="NOTBROWSABLE"><arrayElements arrayElementCount="15"><arrayElement dataType="System.String"><![CDATA[ScriptMain.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-2010 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.Text
Imports System.Collections
Imports System.IO

Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS.Attributes
Imports Google.GData.Client


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<ColumnMappings()> _
<SortProperties(New String() {"Username", "Password", "IsPrivateMap", "MapName"})> _
<ValidateProperties("Validate")> _
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Constants
    Const MapsUrl As String = "http://maps.google.com/maps/feeds/maps/default/full"
    Const AclService As String = "http://schemas.google.com/acl/2007#accessControlList"
    Private DataColumn As String() = New String() {"Name", "Latitude", "Longitude", "Description"}


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub Input_ProcessInputRow(ByVal Row As InputBuffer)
        With Row
            ' Setup row.
            Dim data As String = String.Empty
            Dim colsCount As Integer = DataColumn.Length
            For colIndex As Integer = 0 To colsCount - 1
                If Not String.IsNullOrEmpty(data) Then
                    data += ","
                End If

                Dim column As String = Row.Buffer(m_inputIndexes(colIndex)).ToString().Replace("""", """""")

                data += String.Format("""{0}""", column)
            Next

            Call m_sbData.AppendLine(data)
        End With
    End Sub ' Input_ProcessInputRow


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

        Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)
        Dim extCols As IDTSExternalMetadataColumnCollection100 = input.ExternalMetadataColumnCollection

        ' Setup dynamic input columns indexes.
        Dim colsCount As Integer = DataColumn.Length
        m_inputIndexes = New Integer(colsCount - 1) {}
        Dim header() As String = New String(colsCount - 1) {}
        For colIndex As Integer = 0 To colsCount - 1
            Dim column As IDTSInputColumn100 = input.InputColumnCollection(colIndex)
            Dim extColumn As IDTSExternalMetadataColumn100 = extCols.GetObjectByID( _
                column.ExternalMetadataColumnID)

            header(colIndex) = extColumn.Name.ToLower()
            m_inputIndexes(colIndex) = Me.HostComponent.BufferManager.FindColumnByLineageID( _
                input.Buffer, _
                column.LineageID)
        Next

        m_sbData = New StringBuilder()
        Call m_sbData.AppendLine(String.Join(",", header))
    End Sub ' PreExecute


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

        ' Setup service.
        Dim service As Service = New Service("local", "CozyRoc Create Google Map")
        Call service.setUserCredentials(Me.Username, Me.Password)

        Try
            ' Retrieve maps list.
            Dim mapsList As ArrayList = GetMaps_(service)

            ' Remove existing destination map (if found).
            Dim mapId As String = GetMapId_(mapsList, Me.MapName)
            If Not String.IsNullOrEmpty(mapId) Then
                ' Delete previous map.
                Call service.Delete(New Uri(mapId))
            End If

            ' Insert map.
            Dim content As String = m_sbData.ToString()
            Dim mapEntry As AtomEntry = service.Insert( _
                New Uri(MapsUrl), _
                New MemoryStream(Encoding.UTF8.GetBytes(content)), _
                "text/csv", _
                Me.MapName)

            If Me.IsPrivateMap Then
                ' Make map private.
                Dim aclLink As AtomLink = mapEntry.Links.FindService(AclService, Nothing)
                Call service.Delete(New Uri(aclLink.HRef.Content + "/default"))
            End If
        Catch ex As Exception
            Call FireError_(ex.Message)
        End Try
    End Sub ' PostExecute


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

        Try
            If String.IsNullOrEmpty(Me.Username) Then
                Throw New ApplicationException("Specify service user name.")
            End If

            If String.IsNullOrEmpty(Me.Password) Then
                Throw New ApplicationException("Specify service password.")
            End If

            If String.IsNullOrEmpty(Me.MapName) Then
                Throw New ApplicationException("Specify destination map name.")
            End If

            Dim input As IDTSInput100 = Me.ComponentMetaData.InputCollection(0)
            If input.IsAttached AndAlso input.InputColumnCollection.Count < DataColumn.Length Then
                Throw New Exception("Map input columns.")
            End If
        Catch ex As Exception
            result = False
            errMessage = ex.Message
        End Try

        Validate = result
    End Function    'Validate


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

        If MyBase.ComponentMetaData.InputCollection.Count = 0 Then
            ' At least one input must exist.
            Throw New Exception("No inputs.")
        End If

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

        ' Cleanup.
        input.ExternalMetadataColumnCollection.IsUsed = True
        Call input.InputColumnCollection.RemoveAll()
        Call input.ExternalMetadataColumnCollection.RemoveAll()

        ' Setup columns.
        Call AddColumn_(input, DataColumn(0), 10)
        Call AddColumn_(input, DataColumn(1), 10)
        Call AddColumn_(input, DataColumn(2), 10)
        Call AddColumn_(input, DataColumn(3), 250)
    End Sub ' ReinitializeMetaData


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specify service user name.")> _
    Public Property Username() As String
        Get
            Username = m_username
        End Get
        Set(ByVal value As String)
            m_username = value
        End Set
    End Property    ' Username


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specify service password.")> _
    <PasswordPropertyText(True)> _
    Public Property Password() As String
        Get
            Password = m_password
        End Get
        Set(ByVal value As String)
            m_password = value
        End Set
    End Property    ' Password


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specify if map should be private.")> _
    <DefaultValue(True)> _
    Public Property IsPrivateMap() As Boolean
        Get
            IsPrivateMap = m_isPrivateMap
        End Get
        Set(ByVal value As Boolean)
            m_isPrivateMap = value
        End Set
    End Property    ' IsPrivateMap


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specify destination map.")> _
    Public Property MapName() As String
        Get
            MapName = m_mapName
        End Get
        Set(ByVal value As String)
            m_mapName = value
        End Set
    End Property    ' MapName
#End Region ' Properties


#Region "Internals"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub FireInformation_(ByVal message As String)
        Dim fireAgain As Boolean = False
        Call MyBase.ComponentMetaData.FireInformation( _
            0, _
            "Google Data Source", _
            message, _
            String.Empty, _
            0, _
            fireAgain)
    End Sub ' FireInformation_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub FireError_(ByVal message As String)
        Dim cancel As Boolean = False
        Call MyBase.ComponentMetaData.FireError( _
            0, _
            "Create Google Map", _
            message, _
            String.Empty, _
            0, _
            cancel)
    End Sub ' FireError_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub AddColumn_(ByVal input As IDTSInput100, ByVal name As String, ByVal length As Integer)
        Dim column As IDTSExternalMetadataColumn100 = input.ExternalMetadataColumnCollection.[New]()
        column.Name = name
        column.DataType = DataType.DT_WSTR
        column.Length = length
    End Sub ' AddColumn_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetMaps_(ByVal service As Service) As ArrayList
        Dim result As ArrayList = New ArrayList

        Dim query As FeedQuery = New FeedQuery(MapsUrl)
        query.NumberToRetrieve = 100

        Try

            Dim feed As AtomFeed = service.Query(query)
            While True
                Dim itemsCount As Integer = feed.Entries.Count
                For itemIndex As Integer = 0 To itemsCount - 1
                    Dim entry As AtomEntry = feed.Entries(itemIndex)
                    Call result.Add(entry)
                Next

                If String.IsNullOrEmpty(feed.NextChunk) Then
                    ' No more data to retrieve.
                    Exit While
                End If

                ' Setup next query iteration.
                query.StartIndex += itemsCount
                feed = service.Query(query)
            End While
        Catch ex As Exception
            Call FireError_(ex.Message)
        End Try

        GetMaps_ = result
    End Function    ' GetMaps_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetMapId_(ByVal mapsList As ArrayList, ByVal mapName As String) As String
        Dim result As String = String.Empty

        Dim itemsCount As Integer = mapsList.Count
        For itemIndex As Integer = 0 To itemsCount - 1
            Dim entry As AtomEntry = CType(mapsList(itemIndex), AtomEntry)
            If entry.Title.Text = mapName Then
                ' Found map.
                result = entry.EditUri.Content
                Exit For
            End If
        Next

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


#Region "Attributes"
    Private m_username As String
    Private m_password As String
    Private m_isPrivateMap As Boolean
    Private m_mapName As String

    Private m_sbData As StringBuilder
    Private m_inputIndexes() As Integer
#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[ScriptComponent_85b40e08fd3e4c90b5fd30ea5f5dfa1b.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">
  <PropertyGroup>
    <ProjectTypeGuids>{30D016F9-3734-4E33-A861-5E7D899E18F3};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>8.0.30703</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{156F98C9-7B00-45CF-B9C9-52A209966B3F}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>My Project</AppDesignerFolder>
    <RootNamespace>ScriptComponent_85b40e08fd3e4c90b5fd30ea5f5dfa1b</RootNamespace>
    <AssemblyName>ScriptComponent_85b40e08fd3e4c90b5fd30ea5f5dfa1b</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>.\bin\Debug\</OutputPath>
    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
    <DefineDebug>true</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
    <DebugSymbols>false</DebugSymbols>
    <Optimize>true</Optimize>
    <OutputPath>.\bin\Release\</OutputPath>
    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
    <DefineDebug>false</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <!-- This sections specifies references for the project. -->
  <ItemGroup>
    <Reference Include="CozyRoc.SSISPlus.2012, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files (x86)\Microsoft SQL Server\110\SDK\Assemblies\CozyRoc.SSISPlus.2012.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
    <Reference Include="Microsoft.SqlServer.TxScript, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="Google.GData.Client" />
  </ItemGroup>
  <!-- Visual Basic supports Importing namespaces (equivalent to using statements in C#).-->
  <ItemGroup>
    <Import Include="Microsoft.VisualBasic" />
    <Import Include="System" />
    <Import Include="System.Collections" />
    <Import Include="System.Data" />
    <Import Include="System.Diagnostics" />
    <Import Include="System.Windows.Forms" />
  </ItemGroup>
  <ItemGroup>
    <AppDesigner Include="My Project\" />
  </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;vstadebuga1781b27-f3e8-411b-9f72-8249813a8a61/7791f112-015e-4817-aae4-242b6ffc713d&quot;" />
        <Host Name="SSIS_SC110" />
        <ProjectClient>
          <HostIdentifier>SSIS_SC110</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
  <ItemGroup>
    <Compile Include="ScriptMain.vb" />
    <Compile Include="BufferWrapper.vb" />
    <Compile Include="ComponentWrapper.vb" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="My Project\" />
  </ItemGroup>
  <PropertyGroup>
    <OptionCompare>Binary</OptionCompare>
  </PropertyGroup>
  <PropertyGroup>
    <OptionExplicit>On</OptionExplicit>
  </PropertyGroup>
  <PropertyGroup>
    <OptionStrict>On</OptionStrict>
  </PropertyGroup>
</Project>]]></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[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:ProjectId>{CFC8EF19-6CB5-4D4F-83ED-DD0027E258EA}</msb:ProjectId>
		<msb:NoContent>Reference;Import;Folder</msb:NoContent>
		<msb:Language>msBuild</msb:Language>
		<msb:DisplayName>ScriptComponent_85b40e08fd3e4c90b5fd30ea5f5dfa1b</msb:DisplayName>
		<msb:CodeName>ScriptComponent_85b40e08fd3e4c90b5fd30ea5f5dfa1b</msb:CodeName>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:File Include="ScriptMain.vb"/>
		<msb:File Include="ComponentWrapper.vb"/>
		<msb:File Include="BufferWrapper.vb"/>
		<msb:Folder Include="My Project\"/>
		<msb:Project Include="ScriptComponent_85b40e08fd3e4c90b5fd30ea5f5dfa1b.vbproj"/>
	</msb:ItemGroup>
</c:Project>]]></arrayElement></arrayElements></property><property id="6" name="BinaryCode" state="cdata" dataType="System.String" isArray="true" description="Stores the binary representation of the component" typeConverter="NOTBROWSABLE"><arrayElements arrayElementCount="2"><arrayElement dataType="System.String"><![CDATA[ScriptComponent_85b40e08fd3e4c90b5fd30ea5f5dfa1b.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
EwcCEQdvTQAACm8rAAAGKE4AAAreAAgKBioAAAEQAAAAABkAcYoAHCoAAAETMAMAWAAAAB4AABF+
JwAACgwDb2kAAAoLFgcX2hMFEwQrNwMRBG9qAAAKdCgAAAENCW9rAAAKb2wAAAoEFihtAAAKFjMO
CW9uAAAKb0sAAAoMKwwRBBfWEwQRBBEFMcMICgYqQlNKQgEAAQAAAAAADAAAAHY0LjAuMzAzMTkA
AAAABQBsAAAAhAwAACN+AADwDAAAoA8AACNTdHJpbmdzAAAAAJAcAADUAgAAI1VTAGQfAAAQAAAA
I0dVSUQAAAB0HwAAFAYAACNCbG9iAAAAAAAAAAIAAAFXHaIJCQ4AAAD6JTMAFgAAAQAAAEUAAAAL
AAAAEgAAAC4AAAAeAAAAeAAAAAIAAAA2AAAAHgAAAAQAAAALAAAADwAAAAoAAAABAAAACwAAAAIA
AAADAAAAAgAAAAAAaQ8BAAAAAAAKAD8BFQEKAHMBVQEGAIMBfAEKANsBFQEGAFkCfAEKANsCsQIO
AC0DFgMSAHwDWwMWAK0DWwMSALwDWwMOAGAEFgMaABMG6gUGAFAGPQYeAG4GWgYGAN0G0QYiAEAH
KgciAFkHKgciAIYHbgcGALAHnQcKAO8HyAcKAAcIEwAiADwIHwgGAHEIUQgGAI8IfAEGALMIfAEK
AMwIEwAGABoJ+wgGAC4JfAESADUJWwMGAEIJfAEaAFgJ6gUaAIcJ6gUaAAIK6gUaACoK6gUaAD0K
6gUGAFsKfAEaAIYK6gUWAPkKWwMaAB0L6gUeAG0LWgYeAHcLWgYGAIALfAEiAJ0LfAEmAJ0LfAEG
AKgL0QYGAM0LwwsGANoLwwsqANoLwwseAOgLWgYeABEMWgYKAC4MyAcGAGgMfAEuAB0N9QweAD4N
WgYeAEgNWgYeAGwNWgYeAIwNWgYeANENWgYKAPYNyAcSABoOWwMOAGMOQQ4OAH8OQQ4OAJcOQQ4i
AK8OKgciAMUOKgciANoOKgcGAPgOUQgGABgPUQgGAFAPNg8AAAAAAQAAAAAAAQABAAAAAAApADcA
BQABAAEAAAAAAGsANwAJAAEAAgAAARAAdgA3AA0AAQADAAUBAACAAAAADQAFAAgABQEAAI4AAAAN
AAUADwABAAAAqQC1AB0ABgARAAEAAADmALUALQAGABYAAQAAAPQAtQANAAgAGgABAAAAAAG1AA0A
CQAbAAEAAAAKAbUAIAAKABwAMQCeASAAMQDHAS0AMQDpAToAMQAOAkcAIQDqApAABgD0AMkABgAA
Ac0AAQDABOEAAQDABOEAUYDQBOsAUYDYBOsAAQDjBL4BAQCiBusAAQCtBusAAQC4BvEBAQDHBusA
AQDrBvQBAQD0BvgBUCAAAAAABhhPARMAAQBYIAAAAAAGGE8BEwABAGAgAAAAABEYigEXAAEAjCAA
AAAAEwiRARsAAQCkIAAAAAATCLcBKAABALwgAAAAABMI4AE1AAEA1CAAAAAAEwj+AUIAAQDsIAAA
AABGAkQCYwABAAghAAAAAEYCTQJoAAIAHCEAAAAAgwBeAmwAAgA0IQAAAABGAmYCcQACAEghAAAA
ABEAbwJ4AAIAZCEAAAAAAQCNAoAAAwCAIQAAAAAGGE8BEwAEAIghAAAAAAMIoQKLAAQAvCEAAAAA
BhhPARMABADQIQAAAAAGGE8BrwAEAOAhAAAAAEYK9gO7AAkA9CEAAAAARgoNBLsACQAIIgAAAACG
ACUEwAAJACAiAAAAAIYALQTAAAkAOCIAAAAABhhPARMACQBYIgAAAABGAnQE0QAJAIgiAAAAAEYD
kwTbAA0AnCIAAAAARgOmBNsADgCgIgAAAAAGGE8B5QAPALAiAAAAAAYYTwHlABAAwCIAAAAABhhP
ARMAEQAEIwAAAABGAqYE2wARAJQjAAAAAEYC7gQTABIAfCQAAAAARgL5BBMAEgCAJQAAAAAGAAUF
wgESAEQmAAAAAEYCGQUTABMA+CYAAAAABgguBXEAEwAQJwAAAAAGCDsFyAETABwnAAAAAAYITgVx
ABQANCcAAAAABghbBcgBFABAJwAAAAAGCGgFwAAVAFgnAAAAAAYIeQXNARUAZCcAAAAABgiKBXEA
FgB8JwAAAAAGCJYFyAEWAIgnAAAAAAEAogXIARcAtCcAAAAAAQC7BcgBGADgJwAAAAABACAG0gEZ
ABQoAAAAAAEAdgbjARwA3CgAAAAAAQCHBuoBHQAAAAEASwIAAAEAhAIAAAEAhAIAAAEAygMAAAIA
1AMAAAMA3QMAAAQA5QMAAAUA7AMAAAEAgQQAAAIAiQQAAAMA5QMAAAQA7AMAAAEA5QMAAAEAvAQA
AAEAygMAAAEAygMAAAEAvAQAAAEADgUAAAEASAUAAAEASAUAAAEASAUAAAEASAUAAAEAswUAAAEA
swUAAAEAKwYAAAIAMQYAAAMANgYAAAEAfwYAAAEAkQYAAAIAmgYJAE8BEwCBAE8BBAKRAE8BEwIR
AE8BEwCZAE8BEwAkAE8BEwAsAE8BEwA0AE8BEwA8AE8BEwAkAKECiwAsAKECiwA0AKECiwA8AKEC
iwChAE8BEwCpAE8BEwCxAE8ByAG5AIAIrQIZAEQCYwAZAE0CaAApAKEIugIZAGYCcQDJAL0IygIZ
AE8BEwDRAE8B2gJEAOoCkABMAOcIiwBMAPEIVwNMAE8BEwDZAE8BzQE5AE8BrwDpACUEwADpAC0E
wADxAE8BzQFZAE8BEwBBAHEJcQP5AJ4JdgMBAbIJfANhALsJaADhAMIJ6wDhAMgJggPhANYJhwM5
AN0JjQNJALIJkgPhAOgJlwPhAPAJnQN5APcJowNBAO4EEwBhAGEKswNhAKMKuQMpAbIJvwMRAb0K
aAAJAdoKxgMZAegKcQDhAPEKcQBZAAsLzQMxATIL0wNhAN0JaAARAUQLaAA5AVIL2QN5AE8BEwDh
AGgL3wNBAPkEEwBxAE8BEwJxAIoLEwJZAU8ByAFxAKEL+QN5AGYCcQBpAbELAARpAboLBgRxAU8B
DARxAOELEgRBAfsLIASJAQUMJgRJARkMLgSRASIMcQCZAToMNARRAUoMcQCZAVYMFwChAU8ByAFh
AH0MwAApAYwMaABRAU8ByAFZABkFEwABAYwMaAAJAZYMzQEpAaEMEwAJAaEMEwD5AKsMXAT5ALsM
XAQJAcUMZwQZAckMyAEZASYNbQQZATMNdARpAE8BEwCxAU8ByAGxAVENdARxAGYNfwS5AYANiARU
AIwMaADBAbIJlwRpAKENngS5AaUNcQCxAbMNaACxAcINdARpAIwMaABpALIJkgNBAeMNvATRAe0N
cQDZAQAOwgRBAQ4OLgThAU8BEwDpAU8ByAHxAU8B4gT5AU8BEwABAk8BzQEJAk8ByAERAk8BzQEZ
Ak8BdAQhAk8BEwApAk8ByAEOACgA7gAOACwAVQEpAIMAjwIuAMMDygUuALMDogUuALsDqwVAACsA
MgJAABMACgJDABsAGQJDABMACgJJAIMAZwJjABMACgJjABsAGQJpAIMAoAKAACsAMgKDABsAGQKD
AHMAMgKDAHsAMgKJAIMAewKgACsAMgKjABMACgKjAMMA4gLAACsAMgLDABMACgLDAOsAZgPgACsA
MgLjAAsBZgMAASsAMgIAARMACgIDAQsBZgMJAaMDRQUgARMACgIgASsAMgIpAasDGAUpAaMDZQVA
ASsAMgJAARMACgJJAZsDGAVJAaMDHgVgASsAMgJgARMACgJjAZMDMgJjAYsD6ARjAYMD1ARjAXsD
MgJjAQsBZgNpAaMDhAWAASsAMgKgASsAMgLAASsAMgLAARMACgLgASsAMgIAAisAMgIAAhMACgJA
AwsBZgNgAwsBZgNTAlgCXQJiArICtgLBAsYC1QLVAl0DbANsA7ICsgJsA6kD5gM7BE0EVwTGAsYC
sgLGArICsgJ5BKMEyQQEAAEABgAFAAcABgALAAgAAABzAU8AAAAsAlQAAADbAVkAAAA4Al4AAAD0
ApgAAAA5BMQAAABMBMQAAAADB/wBAAAMB/wBAAAVBwACAAAiB/wBAgAEAAMAAgAFAAUAAgAGAAcA
AgAHAAkAAgAPAAsAAgASAA0AAgATAA8AAgAiABEAAQAjABEAAgAkABMAAQAlABMAAgAmABUAAQAn
ABUAAgAoABcAAQApABcAdQB1AIgANwI+AkUCTAJEA0sDjgQEgAAAAAAAAAAAAAAAAAAAAAC1AAAA
BAAAAAAAAAAAAAAAAQAKAAAAAAAKAAAAAAAAAAAAAAAKABMAAAAAAAEAAAAAAAAAAAAAAJ0AAAMA
AAAACwAAAAAAAAAAAAAApgA+AwAAAAALAAAAAAAAAAAAAACmAIwDAAAAAAsAAAAAAAAAAAAAAKYA
xgUAAAAAAQAGAAAAAAAAAAAA2gFaBgAAAAAEAAAAAAAAAAAAAAABAHwBAAAAAAIAAAAAAAAAAAAA
AAEAfAEAAAAAAgAAAAAAAAAAAAAAAQAKAAAAAAALAAAAAAAAAAAAAACmANIMAAAAAAUABAAGAAQA
AAAQAAwAggIAABAAGQCCAgAAAAAbAIICLQDQAi0AUgMAAAAAADxNb2R1bGU+AG1zY29ybGliAE1p
Y3Jvc29mdC5WaXN1YWxCYXNpYwBNeUFwcGxpY2F0aW9uAFNjcmlwdENvbXBvbmVudF84NWI0MGUw
OGZkM2U0YzkwYjVmZDMwZWE1ZjVkZmExYi5NeQBNeUNvbXB1dGVyAE15UHJvamVjdABNeVdlYlNl
cnZpY2VzAFRocmVhZFNhZmVPYmplY3RQcm92aWRlcmAxAElucHV0QnVmZmVyAFNjcmlwdENvbXBv
bmVudF84NWI0MGUwOGZkM2U0YzkwYjVmZDMwZWE1ZjVkZmExYgBVc2VyQ29tcG9uZW50AENvbm5l
Y3Rpb25zAFZhcmlhYmxlcwBTY3JpcHRNYWluAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5BcHBsaWNh
dGlvblNlcnZpY2VzAEFwcGxpY2F0aW9uQmFzZQAuY3RvcgBNaWNyb3NvZnQuVmlzdWFsQmFzaWMu
RGV2aWNlcwBDb21wdXRlcgBTeXN0ZW0AT2JqZWN0AC5jY3RvcgBnZXRfQ29tcHV0ZXIAbV9Db21w
dXRlck9iamVjdFByb3ZpZGVyAGdldF9BcHBsaWNhdGlvbgBtX0FwcE9iamVjdFByb3ZpZGVyAFVz
ZXIAZ2V0X1VzZXIAbV9Vc2VyT2JqZWN0UHJvdmlkZXIAZ2V0X1dlYlNlcnZpY2VzAG1fTXlXZWJT
ZXJ2aWNlc09iamVjdFByb3ZpZGVyAEFwcGxpY2F0aW9uAFdlYlNlcnZpY2VzAEVxdWFscwBvAEdl
dEhhc2hDb2RlAFR5cGUAR2V0VHlwZQBUb1N0cmluZwBDcmVhdGVfX0luc3RhbmNlX18AVABpbnN0
YW5jZQBEaXNwb3NlX19JbnN0YW5jZV9fAGdldF9HZXRJbnN0YW5jZQBNaWNyb3NvZnQuVmlzdWFs
QmFzaWMuTXlTZXJ2aWNlcy5JbnRlcm5hbABDb250ZXh0VmFsdWVgMQBtX0NvbnRleHQAR2V0SW5z
dGFuY2UAQ296eVJvYy5TU0lTUGx1cy4yMDEyAENvenlSb2MuU3FsU2VydmVyLlNTSVMAU2NyaXB0
QnVmZmVyUGx1cwBNaWNyb3NvZnQuU3FsU2VydmVyLlR4U2NyaXB0AE1pY3Jvc29mdC5TcWxTZXJ2
ZXIuRHRzLlBpcGVsaW5lAFNjcmlwdENvbXBvbmVudABNaWNyb3NvZnQuU3FsU2VydmVyLlBpcGVs
aW5lSG9zdABQaXBlbGluZUJ1ZmZlcgBPdXRwdXROYW1lTWFwAENvbXBvbmVudABPYmplY3RJRABJ
c0lucHV0AEJ1ZmZlcgBPdXRwdXRNYXAAZ2V0X1N0YXRpY0lucHV0Q29sdW1ucwBnZXRfU3RhdGlj
T3V0cHV0Q29sdW1ucwBOZXh0Um93AEVuZE9mUm93c2V0AFN0YXRpY0lucHV0Q29sdW1ucwBTdGF0
aWNPdXRwdXRDb2x1bW5zAFNjcmlwdENvbXBvbmVudFBsdXMAUHJvY2Vzc0lucHV0AElucHV0SUQA
SW5wdXROYW1lAElucHV0X1Byb2Nlc3NJbnB1dABJbnB1dF9Qcm9jZXNzSW5wdXRSb3cAUm93AFBh
cmVudENvbXBvbmVudABNYXBzVXJsAEFjbFNlcnZpY2UARGF0YUNvbHVtbgBQcmVFeGVjdXRlAFBv
c3RFeGVjdXRlAFZhbGlkYXRlAGVyck1lc3NhZ2UAUmVpbml0aWFsaXplTWV0YURhdGEAZ2V0X1Vz
ZXJuYW1lAHNldF9Vc2VybmFtZQB2YWx1ZQBnZXRfUGFzc3dvcmQAc2V0X1Bhc3N3b3JkAGdldF9J
c1ByaXZhdGVNYXAAc2V0X0lzUHJpdmF0ZU1hcABnZXRfTWFwTmFtZQBzZXRfTWFwTmFtZQBGaXJl
SW5mb3JtYXRpb25fAG1lc3NhZ2UARmlyZUVycm9yXwBNaWNyb3NvZnQuU3FsU2VydmVyLkRUU1Bp
cGVsaW5lV3JhcABNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5QaXBlbGluZS5XcmFwcGVyAElEVFNJ
bnB1dDEwMABBZGRDb2x1bW5fAGlucHV0AG5hbWUAbGVuZ3RoAFN5c3RlbS5Db2xsZWN0aW9ucwBB
cnJheUxpc3QAR29vZ2xlLkdEYXRhLkNsaWVudABTZXJ2aWNlAEdldE1hcHNfAHNlcnZpY2UAR2V0
TWFwSWRfAG1hcHNMaXN0AG1hcE5hbWUAbV91c2VybmFtZQBtX3Bhc3N3b3JkAG1faXNQcml2YXRl
TWFwAG1fbWFwTmFtZQBTeXN0ZW0uVGV4dABTdHJpbmdCdWlsZGVyAG1fc2JEYXRhAG1faW5wdXRJ
bmRleGVzAFVzZXJuYW1lAFBhc3N3b3JkAElzUHJpdmF0ZU1hcABNYXBOYW1lAFN5c3RlbS5Db21w
b25lbnRNb2RlbABFZGl0b3JCcm93c2FibGVBdHRyaWJ1dGUARWRpdG9yQnJvd3NhYmxlU3RhdGUA
U3lzdGVtLkNvZGVEb20uQ29tcGlsZXIAR2VuZXJhdGVkQ29kZUF0dHJpYnV0ZQBTeXN0ZW0uRGlh
Z25vc3RpY3MARGVidWdnZXJIaWRkZW5BdHRyaWJ1dGUATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkNv
bXBpbGVyU2VydmljZXMAU3RhbmRhcmRNb2R1bGVBdHRyaWJ1dGUASGlkZU1vZHVsZU5hbWVBdHRy
aWJ1dGUAU3lzdGVtLkNvbXBvbmVudE1vZGVsLkRlc2lnbgBIZWxwS2V5d29yZEF0dHJpYnV0ZQBT
eXN0ZW0uUnVudGltZS5Db21waWxlclNlcnZpY2VzAFJ1bnRpbWVIZWxwZXJzAEdldE9iamVjdFZh
bHVlAFJ1bnRpbWVUeXBlSGFuZGxlAEdldFR5cGVGcm9tSGFuZGxlAEFjdGl2YXRvcgBDcmVhdGVJ
bnN0YW5jZQBNeUdyb3VwQ29sbGVjdGlvbkF0dHJpYnV0ZQBnZXRfVmFsdWUAc2V0X1ZhbHVlAFN5
c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcwBDb21WaXNpYmxlQXR0cmlidXRlAFN0cmluZwBT
Y3JpcHRCdWZmZXIAQ0xTQ29tcGxpYW50QXR0cmlidXRlAElEVFNDb21wb25lbnRNZXRhRGF0YTEw
MABnZXRfQ29tcG9uZW50TWV0YURhdGEASURUU0lucHV0Q29sbGVjdGlvbjEwMABnZXRfSW5wdXRD
b2xsZWN0aW9uAGdldF9JdGVtAGdldF9JRABFbXB0eQBJc051bGxPckVtcHR5AENvbmNhdABnZXRf
QnVmZmVyAFJlcGxhY2UARm9ybWF0AEFwcGVuZExpbmUASURUU0V4dGVybmFsTWV0YWRhdGFDb2x1
bW5Db2xsZWN0aW9uMTAwAElEVFNJbnB1dENvbHVtbjEwMABJRFRTRXh0ZXJuYWxNZXRhZGF0YUNv
bHVtbjEwMABJbnQzMgBnZXRfRXh0ZXJuYWxNZXRhZGF0YUNvbHVtbkNvbGxlY3Rpb24ASURUU0lu
cHV0Q29sdW1uQ29sbGVjdGlvbjEwMABnZXRfSW5wdXRDb2x1bW5Db2xsZWN0aW9uAGdldF9FeHRl
cm5hbE1ldGFkYXRhQ29sdW1uSUQAR2V0T2JqZWN0QnlJRABnZXRfTmFtZQBUb0xvd2VyAFBpcGVs
aW5lQ29tcG9uZW50AGdldF9Ib3N0Q29tcG9uZW50AElEVFNCdWZmZXJNYW5hZ2VyMTAwAGdldF9C
dWZmZXJNYW5hZ2VyAGdldF9MaW5lYWdlSUQARmluZENvbHVtbkJ5TGluZWFnZUlEAEpvaW4AQXRv
bUVudHJ5AEF0b21MaW5rAEV4Y2VwdGlvbgBzZXRVc2VyQ3JlZGVudGlhbHMAVXJpAERlbGV0ZQBF
bmNvZGluZwBnZXRfVVRGOABHZXRCeXRlcwBTeXN0ZW0uSU8ATWVtb3J5U3RyZWFtAFN0cmVhbQBJ
bnNlcnQAQXRvbUxpbmtDb2xsZWN0aW9uAGdldF9MaW5rcwBGaW5kU2VydmljZQBBdG9tVXJpAGdl
dF9IUmVmAGdldF9Db250ZW50AFByb2plY3REYXRhAFNldFByb2plY3RFcnJvcgBnZXRfTWVzc2Fn
ZQBDbGVhclByb2plY3RFcnJvcgBBcHBsaWNhdGlvbkV4Y2VwdGlvbgBnZXRfSXNBdHRhY2hlZABn
ZXRfQ291bnQAc2V0X0lzVXNlZABSZW1vdmVBbGwARmlyZUluZm9ybWF0aW9uAEZpcmVFcnJvcgBO
ZXcAc2V0X05hbWUATWljcm9zb2Z0LlNxbFNlcnZlci5EVFNSdW50aW1lV3JhcABNaWNyb3NvZnQu
U3FsU2VydmVyLkR0cy5SdW50aW1lLldyYXBwZXIARGF0YVR5cGUAc2V0X0RhdGFUeXBlAHNldF9M
ZW5ndGgARmVlZFF1ZXJ5AEF0b21GZWVkAHNldF9OdW1iZXJUb1JldHJpZXZlAFF1ZXJ5AEF0b21F
bnRyeUNvbGxlY3Rpb24AZ2V0X0VudHJpZXMAQXRvbUNvbGxlY3Rpb25CYXNlYDEAQWRkAGdldF9O
ZXh0Q2h1bmsAZ2V0X1N0YXJ0SW5kZXgAc2V0X1N0YXJ0SW5kZXgAQXRvbVRleHRDb25zdHJ1Y3QA
Z2V0X1RpdGxlAGdldF9UZXh0AE9wZXJhdG9ycwBDb21wYXJlU3RyaW5nAGdldF9FZGl0VXJpAFNT
SVNTY3JpcHRDb21wb25lbnRFbnRyeVBvaW50QXR0cmlidXRlAENvenlSb2MuU3FsU2VydmVyLlNT
SVMuQXR0cmlidXRlcwBWYWxpZGF0ZVByb3BlcnRpZXNBdHRyaWJ1dGUAU29ydFByb3BlcnRpZXNB
dHRyaWJ1dGUAQ29sdW1uTWFwcGluZ3NBdHRyaWJ1dGUARGVmYXVsdFZhbHVlQXR0cmlidXRlAERl
c2NyaXB0aW9uQXR0cmlidXRlAFBhc3N3b3JkUHJvcGVydHlUZXh0QXR0cmlidXRlAENvbXBpbGF0
aW9uUmVsYXhhdGlvbnNBdHRyaWJ1dGUAUnVudGltZUNvbXBhdGliaWxpdHlBdHRyaWJ1dGUAU3lz
dGVtLlJ1bnRpbWUuVmVyc2lvbmluZwBUYXJnZXRGcmFtZXdvcmtBdHRyaWJ1dGUAU2NyaXB0Q29t
cG9uZW50Xzg1YjQwZTA4ZmQzZTRjOTBiNWZkMzBlYTVmNWRmYTFiLmRsbAAAAAALSQBuAHAAdQB0
AAAJTgBhAG0AZQAAEUwAYQB0AGkAdAB1AGQAZQAAE0wAbwBuAGcAaQB0AHUAZABlAAAXRABlAHMA
YwByAGkAcAB0AGkAbwBuAAADLAAAAyIAAAUiACIAAAsiAHsAMAB9ACIAAAtsAG8AYwBhAGwAADND
AG8AegB5AFIAbwBjACAAQwByAGUAYQB0AGUAIABHAG8AbwBnAGwAZQAgAE0AYQBwAABnaAB0AHQA
cAA6AC8ALwBtAGEAcABzAC4AZwBvAG8AZwBsAGUALgBjAG8AbQAvAG0AYQBwAHMALwBmAGUAZQBk
AHMALwBtAGEAcABzAC8AZABlAGYAYQB1AGwAdAAvAGYAdQBsAGwAABF0AGUAeAB0AC8AYwBzAHYA
AGloAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBnAG8AbwBnAGwAZQAuAGMAbwBtAC8AYQBj
AGwALwAyADAAMAA3ACMAYQBjAGMAZQBzAHMAQwBvAG4AdAByAG8AbABMAGkAcwB0AAARLwBkAGUA
ZgBhAHUAbAB0AAA1UwBwAGUAYwBpAGYAeQAgAHMAZQByAHYAaQBjAGUAIAB1AHMAZQByACAAbgBh
AG0AZQAuAAAzUwBwAGUAYwBpAGYAeQAgAHMAZQByAHYAaQBjAGUAIABwAGEAcwBzAHcAbwByAGQA
LgAAO1MAcABlAGMAaQBmAHkAIABkAGUAcwB0AGkAbgBhAHQAaQBvAG4AIABtAGEAcAAgAG4AYQBt
AGUALgAAJU0AYQBwACAAaQBuAHAAdQB0ACAAYwBvAGwAdQBtAG4AcwAuAAAVTgBvACAAaQBuAHAA
dQB0AHMALgAAJUcAbwBvAGcAbABlACAARABhAHQAYQAgAFMAbwB1AHIAYwBlAAAjQwByAGUAYQB0
AGUAIABHAG8AbwBnAGwAZQAgAE0AYQBwAAAAAAD+owq966TtTavZD0Ij/XGFAAi3elxWGTTgiQiw
P19/EdUKOgMgAAEDAAABBAAAEgwHBhUSGAESDAQAABIIBwYVEhgBEggEAAASEQcGFRIYARIRBAAA
EhQHBhUSGAESFAQIABIMBAgAEggECAASEQQIABIUBCABAhwDIAAIBCAAEhUDIAAOAh4ABxABAR4A
HgAHMAEBARAeAAITAAQgABMABwYVEhkBEwAEKAATAAgWz0kLuAw06giJhF3NgIDMkQsgBQESIQgC
EiUSKQQgAB0OAyAAAgQoAB0OAwYSJAMGEigJIAQBCA4SJRIpBSABARIcAwYSIQUgAQESIQIGDmZo
AHQAdABwADoALwAvAG0AYQBwAHMALgBnAG8AbwBnAGwAZQAuAGMAbwBtAC8AbQBhAHAAcwAvAGYA
ZQBlAGQAcwAvAG0AYQBwAHMALwBkAGUAZgBhAHUAbAB0AC8AZgB1AGwAbABoaAB0AHQAcAA6AC8A
LwBzAGMAaABlAG0AYQBzAC4AZwBvAG8AZwBsAGUALgBjAG8AbQAvAGEAYwBsAC8AMgAwADAANwAj
AGEAYwBjAGUAcwBzAEMAbwBuAHQAcgBvAGwATABpAHMAdAADBh0OBSABAhAOBCABAQ4EIAEBAgcg
AwESMQ4ICASlnKmwJzgwBiABEjUSOQYgAg4SNQ4CBgIDBhI9AwYdCAMoAA4DKAACBSABARFFCAEA
AQAAAAAABSACAQ4OGAEACk15VGVtcGxhdGUIMTAuMC4wLjAAAAQBAAAABhUSGAESDAYVEhgBEggG
FRIYARIRBhUSGAESFAQHARIMBAcBEggEBwESEQQHARIUEwEADk15LkFwcGxpY2F0aW9uAAATAQAO
TXkuV2ViU2VydmljZXMAABABAAtNeS5Db21wdXRlcgAADAEAB015LlVzZXIAAAQAARwcAwcBAgMH
AQgGAAESFRFhBAcBEhUDBwEOBRABAB4ABAoBHgAEBwEeAAcgBAEODg4OYQEANFN5c3RlbS5XZWIu
U2VydmljZXMuUHJvdG9jb2xzLlNvYXBIdHRwQ2xpZW50UHJvdG9jb2wSQ3JlYXRlX19JbnN0YW5j
ZV9fE0Rpc3Bvc2VfX0luc3RhbmNlX18AAAAGFRIYARMABhUSGQETAAQKARMABSABARMACAcDEwAT
ABMABQEAAAAABAcBHQ4EIAASfQUgABKAgQUgARIxHAQAAQIOBQACDg4OBCAAEiUEIAEcCAUgAg4O
DgUAAg4OHAUgARI9DgkHBggOCA4SHAgFIAASgIUFIAASgJUGIAESgIkcBiABEoCNCAUgABKAmQUg
ABKAnQUgAggICAYAAg4OHQ4SBwgIEoCFHQ4SMQgSgIkSgI0IBiABARKAsQUAABKAtQUgAR0FDgUg
AQEdBQ0gBBKAoRKAsRKAwQ4OBSAAEoDFByACEoClDg4FIAASgMkGAAEBEoCpEQcHEjkOEoChDhI1
EoClEoCpCQcEAgISMRKAqQQHARIxCiAGAQgODg4IEAIFIAASgI0GIAEBEYDVBCABAQgFBwESgI0I
IAESgN0SgNkFIAASgOEIFRKA5QESgKEGIAESgKEIBCABCBwYBwoSNRKA2RI1EoDdCBKAoQgSgKkI
EoDZBSAAEoDpBgADCA4OAgoHBg4IDhKAoQgIDQEACFZhbGlkYXRlAAAFIAEBHQ4vAQAEAAAACFVz
ZXJuYW1lCFBhc3N3b3JkDElzUHJpdmF0ZU1hcAdNYXBOYW1lAAAFAQABAAAmAQAhU3BlY2lmeSBp
ZiBtYXAgc2hvdWxkIGJlIHByaXZhdGUuAAAfAQAaU3BlY2lmeSBzZXJ2aWNlIHVzZXIgbmFtZS4A
AB4BABlTcGVjaWZ5IHNlcnZpY2UgcGFzc3dvcmQuAAAdAQAYU3BlY2lmeSBkZXN0aW5hdGlvbiBt
YXAuAAAIAQAIAAAAAAAeAQABAFQCFldyYXBOb25FeGNlcHRpb25UaHJvd3MBRwEAGi5ORVRGcmFt
ZXdvcmssVmVyc2lvbj12NC4wAQBUDhRGcmFtZXdvcmtEaXNwbGF5TmFtZRAuTkVUIEZyYW1ld29y
ayA0AADwTgAAAAAAAAAAAAAOTwAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE8AAAAAAAAAAAAA
AAAAAAAAX0NvckRsbE1haW4AbXNjb3JlZS5kbGwAAAAAAP8lACBAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAEAAAABgAAIAA
AAAAAAAAAAAAAAAAAAEAAQAAADAAAIAAAAAAAAAAAAAAAAAAAAEAAAAAAEgAAABYYAAA7AIAAAAA
AAAAAAAA7AI0AAAAVgBTAF8AVgBFAFIAUwBJAE8ATgBfAEkATgBGAE8AAAAAAL0E7/4AAAEAAAAA
AAAAAAAAAAAAAAAAAD8AAAAAAAAABAAAAAIAAAAAAAAAAAAAAAAAAABEAAAAAQBWAGEAcgBGAGkA
bABlAEkAbgBmAG8AAAAAACQABAAAAFQAcgBhAG4AcwBsAGEAdABpAG8AbgAAAAAAAACwBEwCAAAB
AFMAdAByAGkAbgBnAEYAaQBsAGUASQBuAGYAbwAAACgCAAABADAAMAAwADAAMAA0AGIAMAAAACwA
AgABAEYAaQBsAGUARABlAHMAYwByAGkAcAB0AGkAbwBuAAAAAAAgAAAAMAAIAAEARgBpAGwAZQBW
AGUAcgBzAGkAbwBuAAAAAAAwAC4AMAAuADAALgAwAAAAjAA1AAEASQBuAHQAZQByAG4AYQBsAE4A
YQBtAGUAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfADgANQBiADQAMABlADAAOABm
AGQAMwBlADQAYwA5ADAAYgA1AGYAZAAzADAAZQBhADUAZgA1AGQAZgBhADEAYgAuAGQAbABsAAAA
AAAoAAIAAQBMAGUAZwBhAGwAQwBvAHAAeQByAGkAZwBoAHQAAAAgAAAAlAA1AAEATwByAGkAZwBp
AG4AYQBsAEYAaQBsAGUAbgBhAG0AZQAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8A
OAA1AGIANAAwAGUAMAA4AGYAZAAzAGUANABjADkAMABiADUAZgBkADMAMABlAGEANQBmADUAZABm
AGEAMQBiAC4AZABsAGwAAAAAADQACAABAFAAcgBvAGQAdQBjAHQAVgBlAHIAcwBpAG8AbgAAADAA
LgAwAC4AMAAuADAAAAA4AAgAAQBBAHMAcwBlAG0AYgBsAHkAIABWAGUAcgBzAGkAbwBuAAAAMAAu
ADAALgAwAC4AMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAwAAAAgPwAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=]]></arrayElement></arrayElements></property><property id="7" name="VSTAProjectName" dataType="System.String" description="Specifies the name of the Microsoft Visual Studio Tools for Applications project. Project names must be unique within a package." typeConverter="NOTBROWSABLE">ScriptComponent_85b40e08fd3e4c90b5fd30ea5f5dfa1b</property><property id="8" name="ScriptLanguage" dataType="System.String" description="Specifies the programming language used by the script." typeConverter="Microsoft.SqlServer.VSTAHosting.ScriptingLanguages, Microsoft.SqlServer.VSTAScriptingLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">VisualBasic</property><property id="15" name="UserComponentTypeName" dataType="System.String">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2012, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea</property></properties><inputs><input id="16" name="Input" hasSideEffects="true"><externalMetadataColumns isUsed="True"><externalMetadataColumn id="17" name="Name" dataType="wstr" length="10" /><externalMetadataColumn id="18" name="Latitude" dataType="wstr" length="10" /><externalMetadataColumn id="19" name="Longitude" dataType="wstr" length="10" /><externalMetadataColumn id="20" name="Description" dataType="wstr" length="250" /></externalMetadataColumns></input></inputs></component>