<component id="2" name="Google Data Source" 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="3" 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.

' The following resources were used as a reference:
' http://code.google.com/apis/gdata/docs/2.0/reference.html

Imports System
Imports System.ComponentModel
Imports System.Xml
Imports System.IO
Imports System.Collections
Imports System.Net

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


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<SortProperties(New String() { _
    "Service", "BaseUrl", _
    "IsUsernameVariable", "Username", "UsernameVariable", _
    "IsPasswordVariable", "Password", "PasswordVariable", _
    "ProxyUrl", "ProxyUser", "ProxyPassword", _
    "BatchSize", "IsQueryVariable", "Query", "QueryVariable"})> _
<FilterProperties("GetProperties")> _
<ValidateProperties("Validate")> _
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Sub New()
        ' Setup Google services list.
        m_serviceList = New Hashtable()
        With m_serviceList
            Call .Add("analytics", "https://www.google.com/analytics/feeds/data")
            Call .Add("apps", "https://apps-apis.google.com/a/feeds/")
            Call .Add("blogger", "")
            Call .Add("cl", "")
            Call .Add("codesearch", "")
            Call .Add("cp", "http://www.google.com/m8/feeds/contacts/")
            Call .Add("gbase", "http://www.google.com/base/")
            Call .Add("health", "https://www.google.com/health/feeds/")
            Call .Add("lh2", "http://picasaweb.google.com/data/feed/api/user/")
            Call .Add("weaver", "https://www.google.com/h9/feeds/")
            Call .Add("wise", "http://spreadsheets.google.com/feeds/")
            Call .Add("writely", "http://docs.google.com/feeds/default/private/full")
            Call .Add("youtube", "http://gdata.youtube.com/feeds/api/")
        End With
    End Sub


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub CreateNewOutputRows()
        Dim userStr As String = Me.Username
        If Me.IsUsernameVariable Then
            ' Username is contained in variable.
            userStr = CStr(GetVariable_(Me.UsernameVariable))
        End If

        Dim passStr As String = Me.Password
        If Me.IsPasswordVariable Then
            ' Password is contained in variable.
            passStr = CStr(GetVariable_(Me.PasswordVariable))
        End If

        ' Setup service.
        Dim service As Service = New Service(Me.Service, "CozyRoc Google Data Source")
        Call service.setUserCredentials(userStr, passStr)

        If Not String.IsNullOrEmpty(Me.ProxyUrl) Then
            ' Setup proxy.
            Dim proxy As WebProxy = New WebProxy(Me.BaseUrl)
            If String.IsNullOrEmpty(Me.ProxyUser) Then
                proxy.UseDefaultCredentials = False
                proxy.Credentials = New NetworkCredential(Me.ProxyUser, Me.Password)
            End If

            Dim rf As GDataRequestFactory = CType(service.RequestFactory, GDataRequestFactory)
            rf.Proxy = proxy
        End If

        Dim queryStr As String = Me.Query
        If Me.IsQueryVariable Then
            ' Query is contained in variable.
            queryStr = CStr(GetVariable_(Me.QueryVariable))
        End If

        Call FireInformation_(String.Format("Execute query: {0}", queryStr))

        ' Setup query object.
        Dim query As FeedQuery = New FeedQuery(Me.BaseUrl)
        query.NumberToRetrieve = Me.BatchSize
        query.ExtraParameters = queryStr

        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)

                    With Me.OutputBuffer
                        Call .AddRow()

                        .id = entry.Id.Uri.Content
                        .title = entry.Title.Text
                        .content = entry.Content.Content
                        .updated = entry.Updated

                        ' Setup links.
                        .link = GetLinks_(entry)

                        ' Setup authors.
                        .author = GetAuthors_(entry)

                        ' Setup extensions.
                        .extensions = GetExtensions_(entry)
                    End With
                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
    End Sub ' CreateNewOutputRows


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

        Call result.Add("Service")
        Call result.Add("BaseUrl")

        Call result.Add("IsUsernameVariable")
        Call result.Add(IIf(Me.IsUsernameVariable, "UsernameVariable", "Username"))

        Call result.Add("IsPasswordVariable")
        Call result.Add(IIf(Me.IsPasswordVariable, "PasswordVariable", "Password"))

        Call result.Add("ProxyUrl")
        Call result.Add("ProxyUser")
        Call result.Add("ProxyPassword")
        Call result.Add("BatchSize")

        Call result.Add("IsQueryVariable")
        Call result.Add(IIf(Me.IsQueryVariable, "QueryVariable", "Query"))

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


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

        Try
            If String.IsNullOrEmpty(Me.Service) Then
                Throw New ApplicationException("Select Google service.")
            End If

            If String.IsNullOrEmpty(Me.BaseUrl) Then
                Throw New ApplicationException("Specify base URL.")
            End If

            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

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

        Validate = result
    End Function    'Validate


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Function GetServices() As String()
        Dim result As String() = New String(m_serviceList.Count - 1) {}
        Call m_serviceList.Keys.CopyTo(result, 0)
        GetServices = result
    End Function    ' GetServices


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("	Service")> _
    <Description("Select Google service.")> _
    <List("GetServices")> _
    <RefreshProperties(RefreshProperties.All)> _
    Public Property Service() As String
        Get
            Service = m_service
        End Get
        Set(ByVal value As String)
            If m_service <> value Then
                m_service = value

                ' Setup base URL from service.
                Me.BaseUrl = CStr(m_serviceList(m_service))
            End If
        End Set
    End Property    ' Service


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("	Service")> _
    <Description("Specify base URL.")> _
    Public Property BaseUrl() As String
        Get
            BaseUrl = m_baseUrl
        End Get
        Set(ByVal value As String)
            m_baseUrl = value
        End Set
    End Property    ' BaseUrl


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("	Service")> _
    <Description("Specifies if Username property references package variable.")> _
    <RefreshProperties(RefreshProperties.All)> _
    Public Property IsUsernameVariable() As Boolean
        Get
            IsUsernameVariable = m_isUserVar
        End Get
        Set(ByVal value As Boolean)
            If m_isUserVar <> value Then
                m_isUserVar = value
                m_username = String.Empty
            End If
        End Set
    End Property    ' IsUsernameVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("	Service")> _
    <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


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("	Service")> _
    <Description("Specifies variable containing username.")> _
    <Variable()> _
    Public Property UsernameVariable() As String
        Get
            UsernameVariable = Me.Username
        End Get
        Set(ByVal value As String)
            Me.Username = value
        End Set
    End Property    ' UsernameVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("	Service")> _
    <Description("Specifies if Password property references package variable.")> _
    <RefreshProperties(RefreshProperties.All)> _
    Public Property IsPasswordVariable() As Boolean
        Get
            IsPasswordVariable = m_isPassVar
        End Get
        Set(ByVal value As Boolean)
            If m_isPassVar <> value Then
                m_isPassVar = value
                m_password = String.Empty
            End If
        End Set
    End Property    ' IsPasswordVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("	Service")> _
    <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


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("	Service")> _
    <Description("Specifies variable containing password.")> _
    <Variable()> _
    Public Property PasswordVariable() As String
        Get
            PasswordVariable = Me.Password
        End Get
        Set(ByVal value As String)
            Me.Password = value
        End Set
    End Property    ' PasswordVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Proxy")> _
    <Description("Specify proxy server URL (optional).")> _
    Public Property ProxyUrl() As String
        Get
            ProxyUrl = m_proxyUrl
        End Get
        Set(ByVal value As String)
            m_proxyUrl = value
        End Set
    End Property    ' ProxyUrl


    <Category("Proxy")> _
    <Description("Specify proxy user name (optional).")> _
    Public Property ProxyUser() As String
        Get
            ProxyUser = m_proxyUser
        End Get
        Set(ByVal value As String)
            m_proxyUser = value
        End Set
    End Property    ' ProxyUser


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Proxy")> _
    <Description("Specify proxy password (optional).")> _
    <PasswordPropertyText(True)> _
    Public Property ProxyPassword() As String
        Get
            ProxyPassword = m_proxyPassword
        End Get
        Set(ByVal value As String)
            m_proxyPassword = value
        End Set
    End Property    ' ProxyPassword


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Query")> _
    <Description("Specify batch number of rows to get.")> _
    <DefaultValue(100)> _
    Public Property BatchSize() As Integer
        Get
            BatchSize = m_batchSize
        End Get
        Set(ByVal value As Integer)
            m_batchSize = value
        End Set
    End Property    ' BatchSize


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Query")> _
    <Description("Specifies if Query property references package variable.")> _
    <RefreshProperties(RefreshProperties.All)> _
    Public Property IsQueryVariable() As Boolean
        Get
            IsQueryVariable = m_isQueryVar
        End Get
        Set(ByVal value As Boolean)
            If m_isQueryVar <> value Then
                m_isQueryVar = value
                m_query = String.Empty
            End If
        End Set
    End Property    ' IsQueryVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Query")> _
    <Description("Specify query string with parameters.")> _
    <TextDialog("Enter query")> _
    Public Property Query() As String
        Get
            Query = m_query
        End Get
        Set(ByVal value As String)
            m_query = value
        End Set
    End Property    ' Query


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Query")> _
    <Description("Specifies variable containing query.")> _
    <Variable()> _
    Public Property QueryVariable() As String
        Get
            QueryVariable = Me.Query
        End Get
        Set(ByVal value As String)
            Me.Query = value
        End Set
    End Property    ' QueryVariable
#End Region ' Properties


#Region "Internals"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetLinks_(ByVal entry As AtomEntry) As String
        Dim result As String = String.Empty

        For Each link As AtomLink In entry.Links
            If Not String.IsNullOrEmpty(result) Then
                result += vbCrLf
            End If

            result += link.HRef.Content
        Next

        GetLinks_ = result
    End Function    ' GetLinks_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetAuthors_(ByVal entry As AtomEntry) As String
        Dim result As String = String.Empty

        For Each person As AtomPerson In entry.Authors
            If Not String.IsNullOrEmpty(result) Then
                result += vbCrLf
            End If

            result += person.Email
        Next

        GetAuthors_ = result
    End Function    ' GetAuthors_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetExtensions_(ByVal entry As AtomEntry) As String
        Dim result As String = String.Empty

        For Each extension As XmlExtension In entry.ExtensionElements
            result += extension.Node.OuterXml
        Next

        If Not String.IsNullOrEmpty(result) Then
            ' Wrap result in start/end tag to create valid XML fragment.
            result = "<extension>" + result + "</extension>"
        End If

        GetExtensions_ = result
    End Function    ' GetExtensions_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetVariable_(ByVal varName As String) As Object
        Dim result As Object

        Dim vars As IDTSVariables100 = Nothing
        Call MyBase.VariableDispenser.LockOneForRead(varName, vars)
        Try
            result = vars(varName).Value
        Finally
            Call vars.Unlock()
        End Try

        GetVariable_ = result
    End Function    ' GetVariable_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    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, _
            "Google Data Source", _
            message, _
            String.Empty, _
            0, _
            cancel)
    End Sub ' FireError_
#End Region ' Internals


#Region "Attributes"
    Private m_service As String
    Private m_baseUrl As String
    Private m_isUserVar As Boolean
    Private m_username As String
    Private m_isPassVar As Boolean
    Private m_password As String

    Private m_proxyUrl As String
    Private m_proxyUser As String
    Private m_proxyPassword As String

    Private m_batchSize As Integer
    Private m_isQueryVar As Boolean
    Private m_query As String

    Private m_serviceList As Hashtable
#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 OutputBuffer
    Inherits ScriptBufferPlus

    Public Sub New(ByVal Component As ScriptComponent, ByVal ObjectID As Integer, ByVal IsInput As Boolean, ByVal Buffer As PipelineBuffer, ByVal OutputMap As OutputNameMap)
        MyBase.New(Component, ObjectID, IsInput, Buffer, OutputMap)
    End Sub

    Public Overrides ReadOnly Property StaticInputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public WriteOnly Property [title]() As String
        Set
            Me(0) = Value
        End Set
    End Property
    Public WriteOnly Property [title_IsNull] As Boolean
        Set
            If (value)
                SetNull(0)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [link]() As String
        Set
            Me(1) = Value
        End Set
    End Property
    Public WriteOnly Property [link_IsNull] As Boolean
        Set
            If (value)
                SetNull(1)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [content]() As String
        Set
            Me(2) = Value
        End Set
    End Property
    Public WriteOnly Property [content_IsNull] As Boolean
        Set
            If (value)
                SetNull(2)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [author]() As String
        Set
            Me(3) = Value
        End Set
    End Property
    Public WriteOnly Property [author_IsNull] As Boolean
        Set
            If (value)
                SetNull(3)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [id]() As String
        Set
            Me(4) = Value
        End Set
    End Property
    Public WriteOnly Property [id_IsNull] As Boolean
        Set
            If (value)
                SetNull(4)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [updated]() As DateTime
        Set
            Me(5) = Value
        End Set
    End Property
    Public WriteOnly Property [updated_IsNull] As Boolean
        Set
            If (value)
                SetNull(5)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [extensions]() As String
        Set
            Me(6) = Value
        End Set
    End Property
    Public WriteOnly Property [extensions_IsNull] As Boolean
        Set
            If (value)
                SetNull(6)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {"title", "link", "content", "author", "id", "updated", "extensions"}
        End Get
    End Property

    Public Overloads Sub AddRow()
        MyBase.AddRow()
    End Sub

    Public Overloads Sub SetEndOfRowset()
        MyBase.SetEndOfRowset()
    End Sub

    Public Overloads Function EndOfRowset() As Boolean
        EndOfRowset = MyBase.EndOfRowset
    End Function

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[ScriptComponent_6fdc68d8fdd0420d9bab2d80f34c59ec.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>{05F396A1-9B39-4CC1-BB40-24B4E88E118E}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>My Project</AppDesignerFolder>
    <RootNamespace>ScriptComponent_6fdc68d8fdd0420d9bab2d80f34c59ec</RootNamespace>
    <AssemblyName>ScriptComponent_6fdc68d8fdd0420d9bab2d80f34c59ec</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="Google.GData.Client, Version=1.6.0.0, Culture=neutral, PublicKeyToken=04a59ca9b0273830, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files (x86)\Microsoft SQL Server\110\SDK\Assemblies\Google.GData.Client.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="System.Xml" />
  </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;vstadebug053d5d66-bbac-4865-a1d1-7155ce127ef9/75c77fa4-6dab-456d-a0b9-f6b1f14af6f1&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 OutputBuffer As OutputBuffer

    Public Overridable Sub FinishOutputs()
    End Sub

    Private Sub MarkOutputsFinished()

        If OutputBuffer IsNot Nothing Then
            OutputBuffer.SetEndOfRowset
            OutputBuffer = Nothing
        End If

    End Sub

    Public Overrides Sub PrimeOutput(ByVal Outputs As Integer, ByVal OutputIDs() As Integer, ByVal Buffers() As PipelineBuffer, ByVal OutputMap As OutputNameMap)

        For I As Integer = 0 To Outputs - 1
            If OutputIDs(I) = GetOutputID(OutputMap, "Output") Then
                OutputBuffer = New OutputBuffer(Me, OutputIDs(I), False, Buffers(I), OutputMap)
            End If
        Next

        CreateNewOutputRows()

        FinishOutputs()
        MarkOutputsFinished()

    End Sub

    Public Overridable Sub CreateNewOutputRows()
    End Sub

End Class

Public Class Connections

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

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>{ECFA2F62-5F7E-4E79-A3F5-391C9F43BB45}</msb:ProjectId>
		<msb:NoContent>Reference;Import;Folder</msb:NoContent>
		<msb:Language>msBuild</msb:Language>
		<msb:DisplayName>ScriptComponent_6fdc68d8fdd0420d9bab2d80f34c59ec</msb:DisplayName>
		<msb:CodeName>ScriptComponent_6fdc68d8fdd0420d9bab2d80f34c59ec</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_6fdc68d8fdd0420d9bab2d80f34c59ec.vbproj"/>
	</msb:ItemGroup>
</c:Project>]]></arrayElement></arrayElements></property><property id="4" name="BinaryCode" state="cdata" dataType="System.String" isArray="true" description="Stores the binary representation of the component" typeConverter="NOTBROWSABLE"><arrayElements arrayElementCount="2"><arrayElement dataType="System.String"><![CDATA[ScriptComponent_6fdc68d8fdd0420d9bab2d80f34c59ec.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
GAQAAAEAGAQAAAEAGAQAAAEAGAQAAAEAGAQAAAEAGAQAAAEAGAQAAAEAGAQAAAEAGAQAAAEAGAQA
AAEAGgYAAAIAIgYAAAMALAYAAAQA7QMAAAEAywMAAAEAywMAAAEAbwYAAAEAngYAAAEAngYAAAEA
ngYAAAEAngYAAAEAngYAAAEAngYAAAEAngYAAAEAngYAAAEAngYAAAEAngYAAAEAngYAAAEAngYA
AAEAngYAAAEAngYAAAEAngYAAAEAnggAAAEAnggAAAEAnggAAAEAzAgAAAEA5QgAAAEA5QgJAFAB
EwB5AFABOAGJAFABRwERAFABEwCRAFABEwAkAFABEwAsAFABEwA0AFABEwA8AFABEwAkAKICiwAs
AKICiwA0AKICiwA8AKICiwCZAFABEwChAFABEwCpAFABwACxALwL4QEZAEUCYwAZAE4CaAApAN0L
7gEZAGcCcQDBAPkL/gEZAFABEwDJAFABDgJEAOsCkABMACMMiwBMAC0MiwJMAFABEwDRAFABxQA5
AFABrwA5AHEMpQI5AHoMDgHhAFABwADpAP4EEwDpAAUFEwDpABQF0ADxAFABxQBhAFABEwBBAL8M
sgJxAFABEwBxAMsMvgIpAWcCyQIBAVABRwEBASANRwHZADMNzgIJAVABwAAJAUENxQAxAVABRwEJ
AXoN0wIBAZ8N2gIRAbwN4ALZAMYN5wL5AFABwAD5AM0NDgH5AOINwAABAVIK7QIZAQoO9QJUACsO
aABZATUOAwNpAEUOCQNxAWEODwN5AWkOcQBpAIcOFQOBAZEOcQBpAGkOGwOJAWkOcQBpAKYOIQMZ
AbIOcQD5AMAOaAD5AM8ODgGZAeoOJwMhAfoOcQCZAQYPFwChAVABEwChAcsMTgOpAS4PUwOhATgP
WgO5AVABwABxACsOaABxAGEPdQPBAWoPewPJAXsPgwNxADUOigPZAIkPJwFpANQPjwNkAN4PngNs
AOwPiwDZAPgPsQPRAf8PDwPxARQQ0AD5ASkQEwBpAFEQxwN0AN4PngN8AOwPiwABAl0QcQAhArwQ
7wMpAt4P9QOEAOwPiwARAuUQCQQxAu4QcQDZAPgPDwRBAHARJgRJAoYRLARBAjUONQRRAiMMPARB
AqUREwBBABISSARZAigSTgRZAjgSTgRhAlABEwBpAlABwABxAlABwAB5AlABegSBAlABEwCJAlAB
wACRAlABwACZAlABxQChAlABowWxAlABwAC5AlABDgHBAlABwADJAlABDgHRAlABEwDZAlABwAAp
AIMAwwEuANMDJQguANsDLgguAOMDTQhAACsAZgFAABMAPgFDABsATQFDABMAPgFJAIMAmwFjABMA
PgFjABsATQFpAIMA1AGAACsAZgGDABsATQGDAHMAZgGDAHsAZgGJAIMArwGgACsAZgGjABMAPgGj
AMMAFgLAACsAZgHDABMAPgHDAOsAmgLgACsAZgHjACsBmgIAASsAZgEAARMAPgEDASsBmgIgASsA
ZgEgARMAPgFAARMAPgFAASsAZgFgARMAPgFgASsAZgFjAYsDgARjAXMDZgFjAYMDZwRjAXsDWQRj
ASsBmgKAASsAZgGgASsAZgHAARMAPgHAASsAZgHgASsAZgEAAisAZgEAAhMAPgHJArsDKAfJApsD
OQfJAqMDcAXJArMDPgHpAqMDcAXpApsDTQYJA6MDcAUJA5sD5AcJA7MDPgEpA5sDiAcpA6MDcAVJ
A5MDZgFJA6MDcAVJA5sDQwVpA5sDqgVpA7MDPgFpA6MDcAWJA6MDcAWJA5sDhAWJA6sDfgWpA5MD
ZgGpA6MDcAWpA5sD6wXJA5sDGAbJA6MDQgbpA6MDQgbpA5sDZAYJBKMDQgYJBJsDjQYJBKsDfgUp
BJsDXgcpBMMDVQcpBKMD8wZJBKMD8wZJBLMDPgFJBJsDtQZpBMsDqAdpBKMD8wZpBJsDuQeJBJMD
ZgGJBJsD/gaJBKMD8wZABSsBmgJgBSsBmgKHAYwBkQGWAeYB6gH1AfoBCQIJApECoAKrAuYBuQLE
Ai4DZQNtA6sC+gH6AeYB+gH6AeYB+gH6AfoB+gH6AeoB5gH6AfoBtwPfAxYEQATmAeYBBAABAAYA
BQAHAAYACwAWAAAAdAFPAAAALQJUAAAA3AFZAAAAOQJeAAAA9QKYAAAAIAXUAAAAMwXZAAAAOQXd
AAAARgXZAAAASwXdAAAAVwXZAAAAXwXdAAAAbgXZAAAAdQXdAAAAgwXZAAAAhgXdAAAAkAXhAAAA
mAXdAAAApwXZAAAAsgXdAAAAxAXUAAAArQnZAAAAtQnZAAAAvQndAAAA0AnZAAAA2QnZAAAA6gnd
AAAA/QnZAAAABgrZAAAAFwrZAAAAIArZAAAAKgrZAAAAOAo0AQAAQgrdAAAAUgrZAAAAWArZAAIA
BAADAAIABQAFAAIABgAHAAIABwAJAAIADwALAAIAEgANAAEAEwAPAAEAFAARAAEAFQATAAEAFgAV
AAEAFwAXAAEAGAAZAAEAGQAbAAEAGgAdAAEAGwAfAAEAHAAhAAEAHQAjAAEAHgAlAAEAHwAnAAEA
IAApAAIAIQArAAIAMQAtAAEAMgAtAAIAMwAvAAEANAAvAAIANQAxAAEANgAxAAEAOAAzAAIANwAz
AAIAOQA1AAEAOgA1AAIAOwA3AAEAPAA3AAEAPgA5AAIAPQA5AAIAPwA7AAEAQAA7AAEAQgA9AAIA
QQA9AAEARAA/AAIAQwA/AAIARQBBAAEARgBBAAEASABDAAIARwBDAAIASQBFAAEASgBFAAIASwBH
AAEATABHAAIATQBJAAEATgBJAHUAdQCIAGsBcgF5AYABeAJ/AvsCYgOVA6gDzQPWAwAEBIAAAAAA
AAAAAAAAAAAAAAAAtgAAAAQAAAAAAAAAAAAAAAEACgAAAAAACgAAAAAAAAAAAAAACgATAAAAAAAB
AAAAAAAAAAAAAACdAAEDAAAAAAsAAAAAAAAAAAAAAKYAPwMAAAAACwAAAAAAAAAAAAAApgCNAwAA
AAABAAYAAAAAAAAAAAATAXYIAAAAAAQAAAAAAAAAAAAAAAEAfQEAAAAAAgAAAAAAAAAAAAAAAQB9
AQAAAAACAAAAAAAAAAAAAAABAAoAAAAAAAQAAAAAAAAAAAAAAAEA0hAAAAAAAgAAAAAAAAAAAAAA
AQDSEAAAAAALAAAAAAAAAAAAAACmAPsQAAAAAAsAAAAAAAAAAAAAAKYArBEAAAAABQAEAAYABAAA
ABAADACDAgAAEAAZAIMCAAAAABsAgwItAAQCLQCGAgAAADxNb2R1bGU+AG1zY29ybGliAE1pY3Jv
c29mdC5WaXN1YWxCYXNpYwBNeUFwcGxpY2F0aW9uAFNjcmlwdENvbXBvbmVudF82ZmRjNjhkOGZk
ZDA0MjBkOWJhYjJkODBmMzRjNTllYy5NeQBNeUNvbXB1dGVyAE15UHJvamVjdABNeVdlYlNlcnZp
Y2VzAFRocmVhZFNhZmVPYmplY3RQcm92aWRlcmAxAE91dHB1dEJ1ZmZlcgBTY3JpcHRDb21wb25l
bnRfNmZkYzY4ZDhmZGQwNDIwZDliYWIyZDgwZjM0YzU5ZWMAVXNlckNvbXBvbmVudABDb25uZWN0
aW9ucwBWYXJpYWJsZXMAU2NyaXB0TWFpbgBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuQXBwbGljYXRp
b25TZXJ2aWNlcwBBcHBsaWNhdGlvbkJhc2UALmN0b3IATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkRl
dmljZXMAQ29tcHV0ZXIAU3lzdGVtAE9iamVjdAAuY2N0b3IAZ2V0X0NvbXB1dGVyAG1fQ29tcHV0
ZXJPYmplY3RQcm92aWRlcgBnZXRfQXBwbGljYXRpb24AbV9BcHBPYmplY3RQcm92aWRlcgBVc2Vy
AGdldF9Vc2VyAG1fVXNlck9iamVjdFByb3ZpZGVyAGdldF9XZWJTZXJ2aWNlcwBtX015V2ViU2Vy
dmljZXNPYmplY3RQcm92aWRlcgBBcHBsaWNhdGlvbgBXZWJTZXJ2aWNlcwBFcXVhbHMAbwBHZXRI
YXNoQ29kZQBUeXBlAEdldFR5cGUAVG9TdHJpbmcAQ3JlYXRlX19JbnN0YW5jZV9fAFQAaW5zdGFu
Y2UARGlzcG9zZV9fSW5zdGFuY2VfXwBnZXRfR2V0SW5zdGFuY2UATWljcm9zb2Z0LlZpc3VhbEJh
c2ljLk15U2VydmljZXMuSW50ZXJuYWwAQ29udGV4dFZhbHVlYDEAbV9Db250ZXh0AEdldEluc3Rh
bmNlAENvenlSb2MuU1NJU1BsdXMuMjAxMgBDb3p5Um9jLlNxbFNlcnZlci5TU0lTAFNjcmlwdEJ1
ZmZlclBsdXMATWljcm9zb2Z0LlNxbFNlcnZlci5UeFNjcmlwdABNaWNyb3NvZnQuU3FsU2VydmVy
LkR0cy5QaXBlbGluZQBTY3JpcHRDb21wb25lbnQATWljcm9zb2Z0LlNxbFNlcnZlci5QaXBlbGlu
ZUhvc3QAUGlwZWxpbmVCdWZmZXIAT3V0cHV0TmFtZU1hcABDb21wb25lbnQAT2JqZWN0SUQASXNJ
bnB1dABCdWZmZXIAT3V0cHV0TWFwAGdldF9TdGF0aWNJbnB1dENvbHVtbnMAc2V0X3RpdGxlAFZh
bHVlAHNldF90aXRsZV9Jc051bGwAc2V0X2xpbmsAc2V0X2xpbmtfSXNOdWxsAHNldF9jb250ZW50
AHNldF9jb250ZW50X0lzTnVsbABzZXRfYXV0aG9yAHNldF9hdXRob3JfSXNOdWxsAHNldF9pZABz
ZXRfaWRfSXNOdWxsAERhdGVUaW1lAHNldF91cGRhdGVkAHNldF91cGRhdGVkX0lzTnVsbABzZXRf
ZXh0ZW5zaW9ucwBzZXRfZXh0ZW5zaW9uc19Jc051bGwAZ2V0X1N0YXRpY091dHB1dENvbHVtbnMA
QWRkUm93AFNldEVuZE9mUm93c2V0AEVuZE9mUm93c2V0AFN0YXRpY0lucHV0Q29sdW1ucwB0aXRs
ZQB0aXRsZV9Jc051bGwAbGluawBsaW5rX0lzTnVsbABjb250ZW50AGNvbnRlbnRfSXNOdWxsAGF1
dGhvcgBhdXRob3JfSXNOdWxsAGlkAGlkX0lzTnVsbAB1cGRhdGVkAHVwZGF0ZWRfSXNOdWxsAGV4
dGVuc2lvbnMAZXh0ZW5zaW9uc19Jc051bGwAU3RhdGljT3V0cHV0Q29sdW1ucwBTY3JpcHRDb21w
b25lbnRQbHVzAEZpbmlzaE91dHB1dHMATWFya091dHB1dHNGaW5pc2hlZABQcmltZU91dHB1dABP
dXRwdXRzAE91dHB1dElEcwBCdWZmZXJzAENyZWF0ZU5ld091dHB1dFJvd3MAUGFyZW50Q29tcG9u
ZW50AEdldFByb3BlcnRpZXMAVmFsaWRhdGUAZXJyTWVzc2FnZQBHZXRTZXJ2aWNlcwBnZXRfU2Vy
dmljZQBzZXRfU2VydmljZQB2YWx1ZQBnZXRfQmFzZVVybABzZXRfQmFzZVVybABnZXRfSXNVc2Vy
bmFtZVZhcmlhYmxlAHNldF9Jc1VzZXJuYW1lVmFyaWFibGUAZ2V0X1VzZXJuYW1lAHNldF9Vc2Vy
bmFtZQBnZXRfVXNlcm5hbWVWYXJpYWJsZQBzZXRfVXNlcm5hbWVWYXJpYWJsZQBnZXRfSXNQYXNz
d29yZFZhcmlhYmxlAHNldF9Jc1Bhc3N3b3JkVmFyaWFibGUAZ2V0X1Bhc3N3b3JkAHNldF9QYXNz
d29yZABnZXRfUGFzc3dvcmRWYXJpYWJsZQBzZXRfUGFzc3dvcmRWYXJpYWJsZQBnZXRfUHJveHlV
cmwAc2V0X1Byb3h5VXJsAGdldF9Qcm94eVVzZXIAc2V0X1Byb3h5VXNlcgBnZXRfUHJveHlQYXNz
d29yZABzZXRfUHJveHlQYXNzd29yZABnZXRfQmF0Y2hTaXplAHNldF9CYXRjaFNpemUAZ2V0X0lz
UXVlcnlWYXJpYWJsZQBzZXRfSXNRdWVyeVZhcmlhYmxlAGdldF9RdWVyeQBzZXRfUXVlcnkAZ2V0
X1F1ZXJ5VmFyaWFibGUAc2V0X1F1ZXJ5VmFyaWFibGUAR29vZ2xlLkdEYXRhLkNsaWVudABBdG9t
RW50cnkAR2V0TGlua3NfAGVudHJ5AEdldEF1dGhvcnNfAEdldEV4dGVuc2lvbnNfAEdldFZhcmlh
YmxlXwB2YXJOYW1lAEZpcmVJbmZvcm1hdGlvbl8AbWVzc2FnZQBGaXJlRXJyb3JfAG1fc2Vydmlj
ZQBtX2Jhc2VVcmwAbV9pc1VzZXJWYXIAbV91c2VybmFtZQBtX2lzUGFzc1ZhcgBtX3Bhc3N3b3Jk
AG1fcHJveHlVcmwAbV9wcm94eVVzZXIAbV9wcm94eVBhc3N3b3JkAG1fYmF0Y2hTaXplAG1faXNR
dWVyeVZhcgBtX3F1ZXJ5AFN5c3RlbS5Db2xsZWN0aW9ucwBIYXNodGFibGUAbV9zZXJ2aWNlTGlz
dABTZXJ2aWNlAEJhc2VVcmwASXNVc2VybmFtZVZhcmlhYmxlAFVzZXJuYW1lAFVzZXJuYW1lVmFy
aWFibGUASXNQYXNzd29yZFZhcmlhYmxlAFBhc3N3b3JkAFBhc3N3b3JkVmFyaWFibGUAUHJveHlV
cmwAUHJveHlVc2VyAFByb3h5UGFzc3dvcmQAQmF0Y2hTaXplAElzUXVlcnlWYXJpYWJsZQBRdWVy
eQBRdWVyeVZhcmlhYmxlAFN5c3RlbS5Db21wb25lbnRNb2RlbABFZGl0b3JCcm93c2FibGVBdHRy
aWJ1dGUARWRpdG9yQnJvd3NhYmxlU3RhdGUAU3lzdGVtLkNvZGVEb20uQ29tcGlsZXIAR2VuZXJh
dGVkQ29kZUF0dHJpYnV0ZQBTeXN0ZW0uRGlhZ25vc3RpY3MARGVidWdnZXJIaWRkZW5BdHRyaWJ1
dGUATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkNvbXBpbGVyU2VydmljZXMAU3RhbmRhcmRNb2R1bGVB
dHRyaWJ1dGUASGlkZU1vZHVsZU5hbWVBdHRyaWJ1dGUAU3lzdGVtLkNvbXBvbmVudE1vZGVsLkRl
c2lnbgBIZWxwS2V5d29yZEF0dHJpYnV0ZQBTeXN0ZW0uUnVudGltZS5Db21waWxlclNlcnZpY2Vz
AFJ1bnRpbWVIZWxwZXJzAEdldE9iamVjdFZhbHVlAFJ1bnRpbWVUeXBlSGFuZGxlAEdldFR5cGVG
cm9tSGFuZGxlAEFjdGl2YXRvcgBDcmVhdGVJbnN0YW5jZQBNeUdyb3VwQ29sbGVjdGlvbkF0dHJp
YnV0ZQBnZXRfVmFsdWUAc2V0X1ZhbHVlAFN5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcwBD
b21WaXNpYmxlQXR0cmlidXRlAFN0cmluZwBzZXRfSXRlbQBTZXROdWxsAEludmFsaWRPcGVyYXRp
b25FeGNlcHRpb24AU2NyaXB0QnVmZmVyAENMU0NvbXBsaWFudEF0dHJpYnV0ZQBHZXRPdXRwdXRJ
RABBZGQARmVlZFF1ZXJ5AFN5c3RlbS5OZXQAV2ViUHJveHkAR0RhdGFSZXF1ZXN0RmFjdG9yeQBB
dG9tRmVlZABFeGNlcHRpb24AQ29udmVyc2lvbnMAc2V0VXNlckNyZWRlbnRpYWxzAElzTnVsbE9y
RW1wdHkAc2V0X1VzZURlZmF1bHRDcmVkZW50aWFscwBOZXR3b3JrQ3JlZGVudGlhbABJQ3JlZGVu
dGlhbHMAc2V0X0NyZWRlbnRpYWxzAElHRGF0YVJlcXVlc3RGYWN0b3J5AGdldF9SZXF1ZXN0RmFj
dG9yeQBJV2ViUHJveHkAc2V0X1Byb3h5AEZvcm1hdABzZXRfTnVtYmVyVG9SZXRyaWV2ZQBzZXRf
RXh0cmFQYXJhbWV0ZXJzAEF0b21FbnRyeUNvbGxlY3Rpb24AZ2V0X0VudHJpZXMAQXRvbUNvbGxl
Y3Rpb25CYXNlYDEAZ2V0X0NvdW50AGdldF9JdGVtAEF0b21JZABnZXRfSWQAQXRvbUJhc2VMaW5r
AEF0b21VcmkAZ2V0X1VyaQBnZXRfQ29udGVudABBdG9tVGV4dENvbnN0cnVjdABnZXRfVGl0bGUA
Z2V0X1RleHQAQXRvbUNvbnRlbnQAZ2V0X1VwZGF0ZWQAZ2V0X05leHRDaHVuawBnZXRfU3RhcnRJ
bmRleABzZXRfU3RhcnRJbmRleABQcm9qZWN0RGF0YQBTZXRQcm9qZWN0RXJyb3IAZ2V0X01lc3Nh
Z2UAQ2xlYXJQcm9qZWN0RXJyb3IAQXJyYXlMaXN0AEludGVyYWN0aW9uAElJZgBBcnJheQBUb0Fy
cmF5AEFwcGxpY2F0aW9uRXhjZXB0aW9uAElDb2xsZWN0aW9uAGdldF9LZXlzAENvcHlUbwBPcGVy
YXRvcnMAQ29tcGFyZVN0cmluZwBFbXB0eQBBdG9tTGluawBTeXN0ZW0uQ29sbGVjdGlvbnMuR2Vu
ZXJpYwBJRW51bWVyYXRvcmAxAEF0b21MaW5rQ29sbGVjdGlvbgBnZXRfTGlua3MAR2V0RW51bWVy
YXRvcgBnZXRfQ3VycmVudABDb25jYXQAZ2V0X0hSZWYASUVudW1lcmF0b3IATW92ZU5leHQASURp
c3Bvc2FibGUARGlzcG9zZQBBdG9tUGVyc29uAEF0b21QZXJzb25Db2xsZWN0aW9uAGdldF9BdXRo
b3JzAGdldF9FbWFpbABHb29nbGUuR0RhdGEuRXh0ZW5zaW9ucwBYbWxFeHRlbnNpb24ASUV4dGVu
c2lvbkVsZW1lbnRGYWN0b3J5AEF0b21CYXNlAEV4dGVuc2lvbkxpc3QAZ2V0X0V4dGVuc2lvbkVs
ZW1lbnRzAFN5c3RlbS5YbWwAWG1sTm9kZQBnZXRfTm9kZQBnZXRfT3V0ZXJYbWwATWljcm9zb2Z0
LlNxbFNlcnZlci5EVFNSdW50aW1lV3JhcABNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5SdW50aW1l
LldyYXBwZXIASURUU1ZhcmlhYmxlczEwMABJRFRTVmFyaWFibGVEaXNwZW5zZXIxMDAAZ2V0X1Zh
cmlhYmxlRGlzcGVuc2VyAExvY2tPbmVGb3JSZWFkAElEVFNWYXJpYWJsZTEwMABVbmxvY2sATWlj
cm9zb2Z0LlNxbFNlcnZlci5EVFNQaXBlbGluZVdyYXAATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMu
UGlwZWxpbmUuV3JhcHBlcgBJRFRTQ29tcG9uZW50TWV0YURhdGExMDAAZ2V0X0NvbXBvbmVudE1l
dGFEYXRhAEZpcmVJbmZvcm1hdGlvbgBGaXJlRXJyb3IAU1NJU1NjcmlwdENvbXBvbmVudEVudHJ5
UG9pbnRBdHRyaWJ1dGUAQ296eVJvYy5TcWxTZXJ2ZXIuU1NJUy5BdHRyaWJ1dGVzAFZhbGlkYXRl
UHJvcGVydGllc0F0dHJpYnV0ZQBGaWx0ZXJQcm9wZXJ0aWVzQXR0cmlidXRlAFNvcnRQcm9wZXJ0
aWVzQXR0cmlidXRlAFZhcmlhYmxlQXR0cmlidXRlAERlc2NyaXB0aW9uQXR0cmlidXRlAENhdGVn
b3J5QXR0cmlidXRlAFBhc3N3b3JkUHJvcGVydHlUZXh0QXR0cmlidXRlAFJlZnJlc2hQcm9wZXJ0
aWVzQXR0cmlidXRlAFJlZnJlc2hQcm9wZXJ0aWVzAExpc3RBdHRyaWJ1dGUARGVmYXVsdFZhbHVl
QXR0cmlidXRlAFRleHREaWFsb2dBdHRyaWJ1dGUAQ29tcGlsYXRpb25SZWxheGF0aW9uc0F0dHJp
YnV0ZQBSdW50aW1lQ29tcGF0aWJpbGl0eUF0dHJpYnV0ZQBTeXN0ZW0uUnVudGltZS5WZXJzaW9u
aW5nAFRhcmdldEZyYW1ld29ya0F0dHJpYnV0ZQBTY3JpcHRDb21wb25lbnRfNmZkYzY4ZDhmZGQw
NDIwZDliYWIyZDgwZjM0YzU5ZWMuZGxsAAAAgJtJAHMATgB1AGwAbAAgAHAAcgBvAHAAZQByAHQA
eQAgAGMAYQBuAG4AbwB0ACAAYgBlACAAcwBlAHQAIAB0AG8AIABGAGEAbABzAGUALgAgAEEAcwBz
AGkAZwBuACAAYQAgAHYAYQBsAHUAZQAgAHQAbwAgAHQAaABlACAAYwBvAGwAdQBtAG4AIABpAG4A
cwB0AGUAYQBkAC4AAAt0AGkAdABsAGUAAAlsAGkAbgBrAAAPYwBvAG4AdABlAG4AdAAADWEAdQB0
AGgAbwByAAAFaQBkAAAPdQBwAGQAYQB0AGUAZAAAFWUAeAB0AGUAbgBzAGkAbwBuAHMAAA1PAHUA
dABwAHUAdAAAE2EAbgBhAGwAeQB0AGkAYwBzAABXaAB0AHQAcABzADoALwAvAHcAdwB3AC4AZwBv
AG8AZwBsAGUALgBjAG8AbQAvAGEAbgBhAGwAeQB0AGkAYwBzAC8AZgBlAGUAZABzAC8AZABhAHQA
YQAACWEAcABwAHMAAEtoAHQAdABwAHMAOgAvAC8AYQBwAHAAcwAtAGEAcABpAHMALgBnAG8AbwBn
AGwAZQAuAGMAbwBtAC8AYQAvAGYAZQBlAGQAcwAvAAEPYgBsAG8AZwBnAGUAcgAAAQAFYwBsAAAV
YwBvAGQAZQBzAGUAYQByAGMAaAAABWMAcAAAUWgAdAB0AHAAOgAvAC8AdwB3AHcALgBnAG8AbwBn
AGwAZQAuAGMAbwBtAC8AbQA4AC8AZgBlAGUAZABzAC8AYwBvAG4AdABhAGMAdABzAC8AAAtnAGIA
YQBzAGUAADdoAHQAdABwADoALwAvAHcAdwB3AC4AZwBvAG8AZwBsAGUALgBjAG8AbQAvAGIAYQBz
AGUALwAADWgAZQBhAGwAdABoAABJaAB0AHQAcABzADoALwAvAHcAdwB3AC4AZwBvAG8AZwBsAGUA
LgBjAG8AbQAvAGgAZQBhAGwAdABoAC8AZgBlAGUAZABzAC8AAAdsAGgAMgAAX2gAdAB0AHAAOgAv
AC8AcABpAGMAYQBzAGEAdwBlAGIALgBnAG8AbwBnAGwAZQAuAGMAbwBtAC8AZABhAHQAYQAvAGYA
ZQBlAGQALwBhAHAAaQAvAHUAcwBlAHIALwAADXcAZQBhAHYAZQByAABBaAB0AHQAcABzADoALwAv
AHcAdwB3AC4AZwBvAG8AZwBsAGUALgBjAG8AbQAvAGgAOQAvAGYAZQBlAGQAcwAvAAAJdwBpAHMA
ZQAAS2gAdAB0AHAAOgAvAC8AcwBwAHIAZQBhAGQAcwBoAGUAZQB0AHMALgBnAG8AbwBnAGwAZQAu
AGMAbwBtAC8AZgBlAGUAZABzAC8AAA93AHIAaQB0AGUAbAB5AABjaAB0AHQAcAA6AC8ALwBkAG8A
YwBzAC4AZwBvAG8AZwBsAGUALgBjAG8AbQAvAGYAZQBlAGQAcwAvAGQAZQBmAGEAdQBsAHQALwBw
AHIAaQB2AGEAdABlAC8AZgB1AGwAbAAAD3kAbwB1AHQAdQBiAGUAAEdoAHQAdABwADoALwAvAGcA
ZABhAHQAYQAuAHkAbwB1AHQAdQBiAGUALgBjAG8AbQAvAGYAZQBlAGQAcwAvAGEAcABpAC8AADVD
AG8AegB5AFIAbwBjACAARwBvAG8AZwBsAGUAIABEAGEAdABhACAAUwBvAHUAcgBjAGUAACVFAHgA
ZQBjAHUAdABlACAAcQB1AGUAcgB5ADoAIAB7ADAAfQAAD1MAZQByAHYAaQBjAGUAAA9CAGEAcwBl
AFUAcgBsAAAlSQBzAFUAcwBlAHIAbgBhAG0AZQBWAGEAcgBpAGEAYgBsAGUAACFVAHMAZQByAG4A
YQBtAGUAVgBhAHIAaQBhAGIAbABlAAARVQBzAGUAcgBuAGEAbQBlAAAlSQBzAFAAYQBzAHMAdwBv
AHIAZABWAGEAcgBpAGEAYgBsAGUAACFQAGEAcwBzAHcAbwByAGQAVgBhAHIAaQBhAGIAbABlAAAR
UABhAHMAcwB3AG8AcgBkAAARUAByAG8AeAB5AFUAcgBsAAATUAByAG8AeAB5AFUAcwBlAHIAABtQ
AHIAbwB4AHkAUABhAHMAcwB3AG8AcgBkAAATQgBhAHQAYwBoAFMAaQB6AGUAAB9JAHMAUQB1AGUA
cgB5AFYAYQByAGkAYQBiAGwAZQAAG1EAdQBlAHIAeQBWAGEAcgBpAGEAYgBsAGUAAAtRAHUAZQBy
AHkAAC1TAGUAbABlAGMAdAAgAEcAbwBvAGcAbABlACAAcwBlAHIAdgBpAGMAZQAuAAAjUwBwAGUA
YwBpAGYAeQAgAGIAYQBzAGUAIABVAFIATAAuAAA1UwBwAGUAYwBpAGYAeQAgAHMAZQByAHYAaQBj
AGUAIAB1AHMAZQByACAAbgBhAG0AZQAuAAAzUwBwAGUAYwBpAGYAeQAgAHMAZQByAHYAaQBjAGUA
IABwAGEAcwBzAHcAbwByAGQALgAABQ0ACgAAFzwAZQB4AHQAZQBuAHMAaQBvAG4APgAAGTwALwBl
AHgAdABlAG4AcwBpAG8AbgA+AAAlRwBvAG8AZwBsAGUAIABEAGEAdABhACAAUwBvAHUAcgBjAGUA
AAAAf/EoPf/nAkSppD32zu+yDAAIt3pcVhk04IkIsD9ffxHVCjoDIAABAwAAAQQAABIMBwYVEhgB
EgwEAAASCAcGFRIYARIIBAAAEhEHBhUSGAESEQQAABIUBwYVEhgBEhQECAASDAQIABIIBAgAEhEE
CAASFAQgAQIcAyAACAQgABIVAyAADgIeAAcQAQEeAB4ABzABAQEQHgACEwAEIAATAAcGFRIZARMA
BCgAEwAIFs9JC7gMNOoIiYRdzYCAzJELIAUBEiEIAhIlEikEIAAdDgQgAQEOBCABAQIFIAEBES0D
IAACBCgAHQ4DKAAOAygAAgQoABEtAwYSJAMGEigDBhIcCyAEAQgdCB0SJRIpAwYSIQUgAQESIQUg
AQIQDgQgAQEICASlnKmwJzgwBSABDhI1BCABHA4CBg4CBgICBggDBhI5AygACAUgAQERQQgBAAEA
AAAAAAUgAgEODhgBAApNeVRlbXBsYXRlCDEwLjAuMC4wAAAEAQAAAAYVEhgBEgwGFRIYARIIBhUS
GAESEQYVEhgBEhQEBwESDAQHARIIBAcBEhEEBwESFBMBAA5NeS5BcHBsaWNhdGlvbgAAEwEADk15
LldlYlNlcnZpY2VzAAAQAQALTXkuQ29tcHV0ZXIAAAwBAAdNeS5Vc2VyAAAEAAEcHAMHAQIDBwEI
BgABEhURXQQHARIVAwcBDgUQAQAeAAQKAR4ABAcBHgAHIAQBDg4ODmEBADRTeXN0ZW0uV2ViLlNl
cnZpY2VzLlByb3RvY29scy5Tb2FwSHR0cENsaWVudFByb3RvY29sEkNyZWF0ZV9fSW5zdGFuY2Vf
XxNEaXNwb3NlX19JbnN0YW5jZV9fAAAABhUSGAETAAYVEhkBEwAECgETAAUgAQETAAgHAxMAEwAT
AAUBAAAAAAQHAR0OBSACAQgcBgcCHQ4dDgYAAggSKQ4EBwIICAUgAgEcHAQHARI5BAABDhwEAAEC
DgYgAQESgJ0FIAASgKEGIAEBEoCpBQACDg4cByABEoCNEn0FIAASgK0HFRKAsQESNQUgARI1CAUg
ABKAtQUgABKAvQUgABKAwQUgABKAxQUgABGAyQYAAQESgJEfBw8OEn0OEoCBDhKAhRKAiRKAjQgS
NQgSgJEIEhwSfQQgAQgcBgADHAIcHAcgARKA2RIVAh0OBwcCHQ4SgNEHBwMCAhKAkQUgABKA4Qcg
AgESgNkIBgADCA4OAgQgARwcBSAAEoDxCBUSgLEBEoDpCSAAFRKA9QETAAgVEoDtARKA6QUAAg4O
Dg8HBA4OEoDpFRKA7QESgOkFIAASgQUIFRKAsQESgQEIFRKA7QESgQEPBwQODhKBARUSgO0BEoEB
BSAAEoEVCiAAFRKA9QESgQ0IFRKA7QESgQ0FIAASgR0GAAMODg4ODwcEDg4SgQkVEoDtARKBDQUg
ABKBJQggAgEOEBKBIQYgARKBKRwDIAAcBwcDHBwSgSEFIAASgS0KIAYBCA4ODggQAg0BAAhWYWxp
ZGF0ZQAAEgEADUdldFByb3BlcnRpZXMAAAUgAQEdDoDBAQAPAAAAB1NlcnZpY2UHQmFzZVVybBJJ
c1VzZXJuYW1lVmFyaWFibGUIVXNlcm5hbWUQVXNlcm5hbWVWYXJpYWJsZRJJc1Bhc3N3b3JkVmFy
aWFibGUIUGFzc3dvcmQQUGFzc3dvcmRWYXJpYWJsZQhQcm94eVVybAlQcm94eVVzZXINUHJveHlQ
YXNzd29yZAlCYXRjaFNpemUPSXNRdWVyeVZhcmlhYmxlBVF1ZXJ5DVF1ZXJ5VmFyaWFibGUAACwB
ACdTcGVjaWZpZXMgdmFyaWFibGUgY29udGFpbmluZyB1c2VybmFtZS4AAA0BAAgJU2VydmljZQAA
BQEAAQAAHgEAGVNwZWNpZnkgc2VydmljZSBwYXNzd29yZC4AAAYgAQERgVVAAQA7U3BlY2lmaWVz
IGlmIFBhc3N3b3JkIHByb3BlcnR5IHJlZmVyZW5jZXMgcGFja2FnZSB2YXJpYWJsZS4AACwBACdT
cGVjaWZpZXMgdmFyaWFibGUgY29udGFpbmluZyBwYXNzd29yZC4AACkBACRTcGVjaWZ5IHByb3h5
IHNlcnZlciBVUkwgKG9wdGlvbmFsKS4AAAoBAAVQcm94eQAAFgEAEVNwZWNpZnkgYmFzZSBVUkwu
AAAoAQAjU3BlY2lmeSBwcm94eSB1c2VyIG5hbWUgKG9wdGlvbmFsKS4AACcBACJTcGVjaWZ5IHBy
b3h5IHBhc3N3b3JkIChvcHRpb25hbCkuAAA9AQA4U3BlY2lmaWVzIGlmIFF1ZXJ5IHByb3BlcnR5
IHJlZmVyZW5jZXMgcGFja2FnZSB2YXJpYWJsZS4AAAoBAAVRdWVyeQAAKQEAJFNwZWNpZmllcyB2
YXJpYWJsZSBjb250YWluaW5nIHF1ZXJ5LgAAEAEAC0dldFNlcnZpY2VzAAAbAQAWU2VsZWN0IEdv
b2dsZSBzZXJ2aWNlLgAACAEAZAAAAAAAKQEAJFNwZWNpZnkgYmF0Y2ggbnVtYmVyIG9mIHJvd3Mg
dG8gZ2V0LgAAHwEAGlNwZWNpZnkgc2VydmljZSB1c2VyIG5hbWUuAAAQAQALRW50ZXIgcXVlcnkA
ACoBACVTcGVjaWZ5IHF1ZXJ5IHN0cmluZyB3aXRoIHBhcmFtZXRlcnMuAABAAQA7U3BlY2lmaWVz
IGlmIFVzZXJuYW1lIHByb3BlcnR5IHJlZmVyZW5jZXMgcGFja2FnZSB2YXJpYWJsZS4AAAgBAAgA
AAAAAB4BAAEAVAIWV3JhcE5vbkV4Y2VwdGlvblRocm93cwFHAQAaLk5FVEZyYW1ld29yayxWZXJz
aW9uPXY0LjABAFQOFEZyYW1ld29ya0Rpc3BsYXlOYW1lEC5ORVQgRnJhbWV3b3JrIDQAAABkZQAA
AAAAAAAAAAB+ZQAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcGUAAAAAAAAAAAAAAABfQ29yRGxs
TWFpbgBtc2NvcmVlLmRsbAAAAAAA/yUAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABABAAAAAYAACAAAAAAAAAAAAAAAAA
AAABAAEAAAAwAACAAAAAAAAAAAAAAAAAAAABAAAAAABIAAAAWIAAAOwCAAAAAAAAAAAAAOwCNAAA
AFYAUwBfAFYARQBSAFMASQBPAE4AXwBJAE4ARgBPAAAAAAC9BO/+AAABAAAAAAAAAAAAAAAAAAAA
AAA/AAAAAAAAAAQAAAACAAAAAAAAAAAAAAAAAAAARAAAAAEAVgBhAHIARgBpAGwAZQBJAG4AZgBv
AAAAAAAkAAQAAABUAHIAYQBuAHMAbABhAHQAaQBvAG4AAAAAAAAAsARMAgAAAQBTAHQAcgBpAG4A
ZwBGAGkAbABlAEkAbgBmAG8AAAAoAgAAAQAwADAAMAAwADAANABiADAAAAAsAAIAAQBGAGkAbABl
AEQAZQBzAGMAcgBpAHAAdABpAG8AbgAAAAAAIAAAADAACAABAEYAaQBsAGUAVgBlAHIAcwBpAG8A
bgAAAAAAMAAuADAALgAwAC4AMAAAAIwANQABAEkAbgB0AGUAcgBuAGEAbABOAGEAbQBlAAAAUwBj
AHIAaQBwAHQAQwBvAG0AcABvAG4AZQBuAHQAXwA2AGYAZABjADYAOABkADgAZgBkAGQAMAA0ADIA
MABkADkAYgBhAGIAMgBkADgAMABmADMANABjADUAOQBlAGMALgBkAGwAbAAAAAAAKAACAAEATABl
AGcAYQBsAEMAbwBwAHkAcgBpAGcAaAB0AAAAIAAAAJQANQABAE8AcgBpAGcAaQBuAGEAbABGAGkA
bABlAG4AYQBtAGUAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfADYAZgBkAGMANgA4
AGQAOABmAGQAZAAwADQAMgAwAGQAOQBiAGEAYgAyAGQAOAAwAGYAMwA0AGMANQA5AGUAYwAuAGQA
bABsAAAAAAA0AAgAAQBQAHIAbwBkAHUAYwB0AFYAZQByAHMAaQBvAG4AAAAwAC4AMAAuADAALgAw
AAAAOAAIAAEAQQBzAHMAZQBtAGIAbAB5ACAAVgBlAHIAcwBpAG8AbgAAADAALgAwAC4AMAAuADAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAABgAAAMAAAAkDUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA]]></arrayElement></arrayElements></property><property id="9" name="UserComponentTypeName" dataType="System.String">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2012, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea</property><property id="11" name="VSTAProjectName" dataType="System.String" description="Specifies the name of the Microsoft Visual Studio Tools for Applications project. Project names must be unique within a package." typeConverter="NOTBROWSABLE">ScriptComponent_6fdc68d8fdd0420d9bab2d80f34c59ec</property><property id="12" name="ScriptLanguage" dataType="System.String" description="Specifies the programming language used by the script." typeConverter="Microsoft.SqlServer.VSTAHosting.ScriptingLanguages, Microsoft.SqlServer.VSTAScriptingLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">VisualBasic</property></properties><outputs><output id="14" name="Output" hasSideEffects="true"><outputColumns><outputColumn id="15" name="title" description="The title of the item." lineageId="15" length="100" dataType="wstr" /><outputColumn id="16" name="link" description="The URL of the item." lineageId="16" length="500" dataType="wstr" /><outputColumn id="17" name="content" description="The item synopsis." lineageId="17" length="4000" dataType="wstr" /><outputColumn id="18" name="author" description="Email address of the author of the item." lineageId="18" length="254" dataType="wstr" /><outputColumn id="19" name="id" description="A string that uniquely identifies the item." lineageId="19" length="500" dataType="wstr" /><outputColumn id="20" name="updated" description="Indicates when the item was published." lineageId="20" dataType="dbTimeStamp" /><outputColumn id="21" name="extensions" lineageId="21" length="4000" dataType="wstr" /></outputColumns><externalMetadataColumns /></output></outputs></component>