xml/dbatools.Types.ps1xml

<?xml version="1.0" encoding="utf-8" ?>
<Types>
<!--Microsoft.SqlServer.Management.Smo.Database -->
<Type>
<Name>Microsoft.SqlServer.Management.Smo.Database</Name>
<Members>
<ScriptMethod>
<Name>Query</Name>
<Script>
param (
    $Query,
    $AllTables = $false
)
 
# ExecuteWithResults does not run on a private connection: the execution manager of a database is the
# connection context of the parent server, which belongs to the caller. It issues a USE and never switches
# back, so the previous database is put back here. See #10555.
$connectionContext = $this.Parent.ConnectionContext
$previousDatabase = $connectionContext.CurrentDatabase
 
try {
    if ($AllTables) { ($this.ExecuteWithResults($Query)).Tables }
    else { ($this.ExecuteWithResults($Query)).Tables[0] }
} finally {
    # The comparison is case sensitive on purpose. Database names use the collation of the instance, so
    # on a case sensitive instance AppDb and appdb are two different databases, and -ne would report
    # them as equal and skip the restore. It cannot restore needlessly: both sides are read from the
    # same property, so the same database always spells itself the same way.
    if ($previousDatabase -and $connectionContext.CurrentDatabase -cne $previousDatabase) {
        $escapedDatabase = $previousDatabase.Replace("]", "]]")
        try {
            $null = $connectionContext.ExecuteNonQuery("USE [$escapedDatabase]")
        } catch {
            # Putting the database back is housekeeping and must never become the outcome of the call.
            # A query that makes the previous database unreachable - taking it offline, dropping it,
            # renaming it, revoking access - would otherwise throw here although it succeeded, and the
            # caller would read that as "it did not run" and might do it a second time. A query that
            # failed would have its own error replaced by this one, which is just as misleading.
            # Write-Warning obeys the caller's $WarningPreference, and Stop turns it into a terminating
            # error - which would hand the outcome of the call back to the housekeeping, the very thing
            # this catch exists to prevent. Inquire stops just as dead where nobody can answer it. Only
            # those two are neutralised, and only for this one call: a caller that asked for silence
            # still gets silence, which passing -WarningAction Continue would have taken away.
            if ($WarningPreference -notin "SilentlyContinue", "Continue") { $WarningPreference = "Continue" }
            Write-Warning "The database context could not be restored to [$previousDatabase]: $($_.Exception.Message)"
        }
    }
}
</Script>
</ScriptMethod>
<ScriptMethod>
<Name>Invoke</Name>
<Script>
param (
    $Command
)
 
# See the comment on Query above: this leaves the connection of the caller in this database, so the
# previous database is put back afterwards. See #10555.
$connectionContext = $this.Parent.ConnectionContext
$previousDatabase = $connectionContext.CurrentDatabase
 
try {
    $this.ExecuteNonQuery($Command)
} finally {
    # See the comment on Query above for why this is case sensitive and why a failing restore only warns.
    if ($previousDatabase -and $connectionContext.CurrentDatabase -cne $previousDatabase) {
        $escapedDatabase = $previousDatabase.Replace("]", "]]")
        try {
            $null = $connectionContext.ExecuteNonQuery("USE [$escapedDatabase]")
        } catch {
            # See the comment on Query above for why the warning preference is neutralised first.
            if ($WarningPreference -notin "SilentlyContinue", "Continue") { $WarningPreference = "Continue" }
            Write-Warning "The database context could not be restored to [$previousDatabase]: $($_.Exception.Message)"
        }
    }
}
</Script>
</ScriptMethod>
</Members>
</Type>
 
<!--Microsoft.SqlServer.Management.Smo.Server -->
<Type>
<Name>Microsoft.SqlServer.Management.Smo.Server</Name>
<Members>
<ScriptMethod>
<Name>Query</Name>
<Script>
param (
    [string]$Query,
    [string]$Database,
    [bool]$AllTables
)
 
try {
    if ($Database) {
        # Going through the database object leaves the connection of the caller in that database, so the
        # previous database is put back afterwards. This does not go through Database.Query, so it needs the
        # same treatment of its own. See #10555.
        $connectionContext = $this.ConnectionContext
        $previousDatabase = $connectionContext.CurrentDatabase
        try {
            $dataSet = $this.Databases[$Database].ExecuteWithResults($Query)
        } finally {
            # See the comment on Database.Query for why this is case sensitive and why a failing restore only warns.
            if ($previousDatabase -and $connectionContext.CurrentDatabase -cne $previousDatabase) {
                $escapedDatabase = $previousDatabase.Replace("]", "]]")
                try {
                    $null = $connectionContext.ExecuteNonQuery("USE [$escapedDatabase]")
                } catch {
                    # See the comment on Database.Query for why the warning preference is neutralised first.
                    if ($WarningPreference -notin "SilentlyContinue", "Continue") { $WarningPreference = "Continue" }
                    Write-Warning "The database context could not be restored to [$previousDatabase]: $($_.Exception.Message)"
                }
            }
        }
    } else {
        $dataSet = $this.ConnectionContext.ExecuteWithResults($Query)
    }
    if ($AllTables) {
        $dataSet.Tables
    } else {
        $dataSet.Tables[0]
    }
} catch {
    $message = ''
    $innerException = $_.Exception.InnerException
    while ($innerException.InnerException) {
        $message += $innerException.Message
        $innerException = $innerException.InnerException
    }
    $message += $innerException.Message
    throw $message
}
</Script>
</ScriptMethod>
<ScriptMethod>
<Name>Invoke</Name>
<Script>
param (
    [string]$Command,
    [string]$Database
)
 
try {
    if ($Database) {
        # See the comment on Query above: this does not go through Database.Invoke either, so the previous
        # database is put back here as well. See #10555.
        $connectionContext = $this.ConnectionContext
        $previousDatabase = $connectionContext.CurrentDatabase
        try {
            $this.Databases[$Database].ExecuteNonQuery($Command)
        } finally {
            # See the comment on Database.Query for why this is case sensitive and why a failing restore only warns.
            if ($previousDatabase -and $connectionContext.CurrentDatabase -cne $previousDatabase) {
                $escapedDatabase = $previousDatabase.Replace("]", "]]")
                try {
                    $null = $connectionContext.ExecuteNonQuery("USE [$escapedDatabase]")
                } catch {
                    # See the comment on Database.Query for why the warning preference is neutralised first.
                    if ($WarningPreference -notin "SilentlyContinue", "Continue") { $WarningPreference = "Continue" }
                    Write-Warning "The database context could not be restored to [$previousDatabase]: $($_.Exception.Message)"
                }
            }
        }
    } else {
        $this.ConnectionContext.ExecuteNonQuery($Command)
    }
} catch {
    $message = ''
    $innerException = $_.Exception.InnerException
    while ($innerException.InnerException) {
        $message += $innerException.Message
        $innerException = $innerException.InnerException
    }
    $message += $innerException.Message
    throw $message
}
</Script>
</ScriptMethod>
</Members>
</Type>
<Type>
<Name>Dataplat.Dbatools.dbaSystem.DbatoolsException</Name>
<Members>
<MemberSet>
<Name>PSStandardMembers</Name>
<Members>
<NoteProperty>
<Name>SerializationDepth</Name>
<Value>2</Value>
</NoteProperty>
</Members>
</MemberSet>
</Members>
</Type>
<Type>
<Name>Dataplat.Dbatools.dbaSystem.DbatoolsExceptionRecord</Name>
<Members>
<MemberSet>
<Name>PSStandardMembers</Name>
<Members>
<NoteProperty>
<Name>SerializationDepth</Name>
<Value>2</Value>
</NoteProperty>
</Members>
</MemberSet>
</Members>
</Type>
</Types>
<!-- SIG # Begin signature block -->
<!-- MIItYwYJKoZIhvcNAQcCoIItVDCCLVACAQMxDTALBglghkgBZQMEAgEwewYKKwYB -->
<!-- BAGCNwIBBKBtBGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -->
<!-- KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDhZCIp048T2b7k -->
<!-- p6QPlQcdfYVGqZekWLYbcbV/cUTbYaCCFWUwggaTMIIEe6ADAgECAhMzAAYzD5v/ -->
<!-- iZ2s6Qv8AAAABjMPMA0GCSqGSIb3DQEBDAUAMFoxCzAJBgNVBAYTAlVTMR4wHAYD -->
<!-- VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKzApBgNVBAMTIk1pY3Jvc29mdCBJ -->
<!-- RCBWZXJpZmllZCBDUyBFT0MgQ0EgMDQwHhcNMjYwOTE1MDYwMTAxWhcNMjYwOTE4 -->
<!-- MDYwMTAxWjBXMQswCQYDVQQGEwJVUzERMA8GA1UECBMIVmlyZ2luaWExDzANBgNV -->
<!-- BAcTBlZpZW5uYTERMA8GA1UEChMIZGJhdG9vbHMxETAPBgNVBAMTCGRiYXRvb2xz -->
<!-- MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAr4aaea8sBCP7oYtzyv8j -->
<!-- cWzjovepD6cmgtaO9w8wclwoZYmbHY/zOPv50TADUFktRjg+gbITeAKXa0wbJ73W -->
<!-- Lbb0uThTyEBgqyMOXZVtozRzJfgDbsIV2sb3WOEQEeP1igEPfOaAR1PwmqpZiyN0 -->
<!-- T6J728NIkMghOutUQchBKhuafBVFuDqhM1lTrL+gqRTfDrtS1b2UwYIfZEuo2BSt -->
<!-- mXqQz+5/4Yc9be1B7ta243FzEB7GhhLrg8J3PvsE0LSOgjbKNKiiFNpdQr17dmn4 -->
<!-- W+J2yrl1gUuiMtXZCdxfJJYL9yObeQbxmAYkiPlgfM1DlnLvz4WkFjmihfW5nN3t -->
<!-- nlBspzRai6dlUd/DwDn0fftmn3hBavJ6guVlMVTjCUKIkFvWdQ7JsgFDZ2B2KHnS -->
<!-- hbi/+FSbUYAwg1aUU00U6zovWy2slsLSzLWeobhRm1djv7nzcXF5LHNbPFn+CUzC -->
<!-- 3hT/OTDRZu4bgC7/mXWRWH30LLUcwIIvRYz+9vIndCP9AgMBAAGjggHTMIIBzzAM -->
<!-- BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDA6BgNVHSUEMzAxBgorBgEEAYI3 -->
<!-- YQEABggrBgEFBQcDAwYZKwYBBAGCN2H5+cEspPS4DoOuxLIcm56wGDAdBgNVHQ4E -->
<!-- FgQUHNdUHgxd14fLhGkjCU3Ci47DgS0wHwYDVR0jBBgwFoAUmvFUd3UMhxY3RqCs -->
<!-- 3nn59H/BeOkwZwYDVR0fBGAwXjBcoFqgWIZWaHR0cDovL3d3dy5taWNyb3NvZnQu -->
<!-- Y29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwSUQlMjBWZXJpZmllZCUyMENTJTIw -->
<!-- RU9DJTIwQ0ElMjAwNC5jcmwwdAYIKwYBBQUHAQEEaDBmMGQGCCsGAQUFBzAChlho -->
<!-- dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUy -->
<!-- MElEJTIwVmVyaWZpZWQlMjBDUyUyMEVPQyUyMENBJTIwMDQuY3J0MFQGA1UdIARN -->
<!-- MEswSQYEVR0gADBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -->
<!-- b20vcGtpb3BzL0RvY3MvUmVwb3NpdG9yeS5odG0wDQYJKoZIhvcNAQEMBQADggIB -->
<!-- AHE0HJscMcw1iPBZSTqYQo1trie2J/IWqmsEeGB1XktLTksynglC8cHF4VqwCnF+ -->
<!-- 5fPraqpZpcVieMZptHRY+7AurCTPTuLF83gAN+WudruSR0ETkR30RrsKf5vo9MVA -->
<!-- uTP/E4yfMffn02fcGIuoPseEEssm8pYU9+8+9CadUZdCOwQ8n3MT6lb/0TdZ2ef5 -->
<!-- ew+DOpgd94vHdGq+aDh2h0CPrzQhoGZ5RqMr0fdaijcEch9/9xNuj3ddkooIyk6G -->
<!-- D3Q6sNp71ECxOvPxHWrsW7E9QCh5lcxUk4hvy5BxCYgJPmiJ0RHCoVf9n8Wf35h3 -->
<!-- InJRUN4FaHBd97YS6KVhCraKcSvUv1lPhSxBo6YKXjS5EoNQ/X7ZKoc+sFpOud8c -->
<!-- OzjX01pgvw3ls5QzDRhmop0WqUj0ZSe9liPoQQs5Gx7r8ciCHL6ST4SvD8uc2FhV -->
<!-- 3pN6Lu7BTzMdzKjgeamRoxkdoKVfBCSpjRBX40N1Do7cWfj9w0VzVMpqh8LutYpD -->
<!-- yuCLfGoGwe/Luvzlo78ZIpz1SX0RECUPAbyvnSnvQex/WBDAmSvm+gBCNTRX2EIK -->
<!-- YRdn2ixZjJm6tvQXKXpGy+1LShj4CrAKP9ChW21hhfM+H3o/agPF4+veRqBm2HeQ -->
<!-- kzbTXAPfwZ5ejxykneiI2zNZodz/dsrvBCCnrjWm26KQMIIHKDCCBRCgAwIBAgIT -->
<!-- MwAAABcnRQkLi4evxgAAAAAAFzANBgkqhkiG9w0BAQwFADBjMQswCQYDVQQGEwJV -->
<!-- UzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTQwMgYDVQQDEytNaWNy -->
<!-- b3NvZnQgSUQgVmVyaWZpZWQgQ29kZSBTaWduaW5nIFBDQSAyMDIxMB4XDTI2MDMy -->
<!-- NjE4MTEzMVoXDTMxMDMyNjE4MTEzMVowWjELMAkGA1UEBhMCVVMxHjAcBgNVBAoT -->
<!-- FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjErMCkGA1UEAxMiTWljcm9zb2Z0IElEIFZl -->
<!-- cmlmaWVkIENTIEVPQyBDQSAwNDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC -->
<!-- ggIBAILHZP4DD2YqAZXMn5OrQ8yfj0beK0ixilvHsKUtJEcV7VEQt09xnWwipY6G -->
<!-- xJ/LrLKoRqkKUYf0l70VcDVxCBm++lBuSD5AidUuv/QQ+tUELCsz3qVtEjY/E14L -->
<!-- Bcb0uzJbaEbopCCKe0OY0IGjjOkMivfvumVV1KWJmbpQHusfCa8GdHTZBPq2eupa -->
<!-- raKHMHqVElVMTO6HQ5p/Mgx4ydgzT7H697kQ4sd1+Kr4deIx/0lvtgse1iDIciIk -->
<!-- DttNYuoVIsZpOHtmVvFuwtcD3U46ugSm/s6PMW67e2SkL0V+UDgOnYS6rj6o+bFS -->
<!-- p8an5NfSAtEmn00k7PMguNxMPeuQUUVvFS/XHKDpq+K8UMu2goGEzZN3Xfy6YTWk -->
<!-- 05pxqe5Ji08ch5AeYHqFoWLrhq8sEvBNMCb9FuK3zrRwVdHvbCr7lCHiFKZ7Meop -->
<!-- cRFY+lUF74A+sngipz5o94yYiSgJZlA7bYecs0VQVJeOLDIhuC+Uf8sgAkSpNp9P -->
<!-- PENmAqGUtTvOvqDCyrdY2lxhAjo27FafCHdVUMPIXuidCoqzkuXtuV5U3RjxW+qA -->
<!-- TjmmnIFu/Co39G6fl8wIJHPdpgxjSRmEo73Z4/u3jMepnltAwCBnS0TY/P+NvTCL -->
<!-- KRQX89yg6qqTe9UuJENiy3q93cYQw3MylRS9By8Ebjr4I4hvAgMBAAGjggHcMIIB -->
<!-- 2DAOBgNVHQ8BAf8EBAMCAYYwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFJrx -->
<!-- VHd1DIcWN0agrN55+fR/wXjpMFQGA1UdIARNMEswSQYEVR0gADBBMD8GCCsGAQUF -->
<!-- BwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3Np -->
<!-- dG9yeS5odG0wGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwEgYDVR0TAQH/BAgw -->
<!-- BgEB/wIBADAfBgNVHSMEGDAWgBTZQSmwDw9jbO9p1/XNKZ6kSGow5jBwBgNVHR8E -->
<!-- aTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9N -->
<!-- aWNyb3NvZnQlMjBJRCUyMFZlcmlmaWVkJTIwQ29kZSUyMFNpZ25pbmclMjBQQ0El -->
<!-- MjAyMDIxLmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6Ly93 -->
<!-- d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwSUQlMjBW -->
<!-- ZXJpZmllZCUyMENvZGUlMjBTaWduaW5nJTIwUENBJTIwMjAyMS5jcnQwDQYJKoZI -->
<!-- hvcNAQEMBQADggIBAJB1Whn9TSbfyXaIppkWWzFq+m2mg4vJpHVr1krZNIXWQ6cU -->
<!-- mEwOx7oqQKCy96iISNdNVzpe3zogoefvo2TmpkHQFe/aIxFDaCIAmZi9lyay2hmp -->
<!-- 8HYzcp3nCcmFQk60X9voeypJ6VjqeGsXTrOivWUOYNCLEFlwsH3NHX5EpCyjWN6Q -->
<!-- 3Fi5ST4do3eTVLnuqTQ7/9huTBTSYQsJbTg3m8gIxnHlPlzs2r/u4u9tWEJ0Pt/Z -->
<!-- tmkDhTu86QHWigHgBoRHemOgnQxp3ksXKLo1r2n1m7+Gst46NTkUi1LljGyq+V9f -->
<!-- EBOEnXvoKaRiy0pGbK1IdnsmEpF9Xp71l+2T84Nv8IrikZUBWqw5/jffttAas4cc -->
<!-- JDci832CadS4OHwl29uF6hY8fEg3UYHmxSJjnzi1c3vF0PwsJKxGom9Dx7treBlZ -->
<!-- OBWK6BGzVBar43Qb02N7okeU3UKMl6GB74fk8aS0mNr6O4YSvQ/66RKRwvqppnEV -->
<!-- BOHdIMjvWW9b77duX8TN3pI7w31R3D6t6jK9EcLJOJKymVlBIFNUl0+ajeoKka7I -->
<!-- cW0+jkIGff8U9OKol3cz0Eeiop3Qb0qaDp8ZwC8XCcs1cDaSi/vbvBGWMvfKl+ov -->
<!-- uIBP9ienG6XpHAdGVw5/10MaDVFG+v3Y0/8JZVchvryB5Hau9T82x+a2MXXAMIIH -->
<!-- njCCBYagAwIBAgITMwAAAAeHozSje6WOHAAAAAAABzANBgkqhkiG9w0BAQwFADB3 -->
<!-- MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMUgw -->
<!-- RgYDVQQDEz9NaWNyb3NvZnQgSWRlbnRpdHkgVmVyaWZpY2F0aW9uIFJvb3QgQ2Vy -->
<!-- dGlmaWNhdGUgQXV0aG9yaXR5IDIwMjAwHhcNMjEwNDAxMjAwNTIwWhcNMzYwNDAx -->
<!-- MjAxNTIwWjBjMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv -->
<!-- cmF0aW9uMTQwMgYDVQQDEytNaWNyb3NvZnQgSUQgVmVyaWZpZWQgQ29kZSBTaWdu -->
<!-- aW5nIFBDQSAyMDIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsvDA -->
<!-- rxmIKOLdVHpMSWxpCFUJtFL/ekr4weslKPdnF3cpTeuV8veqtmKVgok2rO0D05Bp -->
<!-- yvUDCg1wdsoEtuxACEGcgHfjPF/nZsOkg7c0mV8hpMT/GvB4uhDvWXMIeQPsDgCz -->
<!-- UGzTvoi76YDpxDOxhgf8JuXWJzBDoLrmtThX01CE1TCCvH2sZD/+Hz3RDwl2MsvD -->
<!-- SdX5rJDYVuR3bjaj2QfzZFmwfccTKqMAHlrz4B7ac8g9zyxlTpkTuJGtFnLBGaso -->
<!-- Onn5NyYlf0xF9/bjVRo4Gzg2Yc7KR7yhTVNiuTGH5h4eB9ajm1OCShIyhrKqgOkc -->
<!-- 4smz6obxO+HxKeJ9bYmPf6KLXVNLz8UaeARo0BatvJ82sLr2gqlFBdj1sYfqOf00 -->
<!-- Qm/3B4XGFPDK/H04kteZEZsBRc3VT2d/iVd7OTLpSH9yCORV3oIZQB/Qr4nD4YT/ -->
<!-- lWkhVtw2v2s0TnRJubL/hFMIQa86rcaGMhNsJrhysLNNMeBhiMezU1s5zpusf54q -->
<!-- lYu2v5sZ5zL0KvBDLHtL8F9gn6jOy3v7Jm0bbBHjrW5yQW7S36ALAt03QDpwW1JG -->
<!-- 1Hxu/FUXJbBO2AwwVG4Fre+ZQ5Od8ouwt59FpBxVOBGfN4vN2m3fZx1gqn52Gvai -->
<!-- Bz6ozorgIEjn+PhUXILhAV5Q/ZgCJ0u2+ldFGjcCAwEAAaOCAjUwggIxMA4GA1Ud -->
<!-- DwEB/wQEAwIBhjAQBgkrBgEEAYI3FQEEAwIBADAdBgNVHQ4EFgQU2UEpsA8PY2zv -->
<!-- adf1zSmepEhqMOYwVAYDVR0gBE0wSzBJBgRVHSAAMEEwPwYIKwYBBQUHAgEWM2h0 -->
<!-- dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0 -->
<!-- bTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAPBgNVHRMBAf8EBTADAQH/MB8G -->
<!-- A1UdIwQYMBaAFMh+0mqFKhvKGZgEByfPUBBPaKiiMIGEBgNVHR8EfTB7MHmgd6B1 -->
<!-- hnNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQl -->
<!-- MjBJZGVudGl0eSUyMFZlcmlmaWNhdGlvbiUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUy -->
<!-- MEF1dGhvcml0eSUyMDIwMjAuY3JsMIHDBggrBgEFBQcBAQSBtjCBszCBgQYIKwYB -->
<!-- BQUHMAKGdWh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWlj -->
<!-- cm9zb2Z0JTIwSWRlbnRpdHklMjBWZXJpZmljYXRpb24lMjBSb290JTIwQ2VydGlm -->
<!-- aWNhdGUlMjBBdXRob3JpdHklMjAyMDIwLmNydDAtBggrBgEFBQcwAYYhaHR0cDov -->
<!-- L29uZW9jc3AubWljcm9zb2Z0LmNvbS9vY3NwMA0GCSqGSIb3DQEBDAUAA4ICAQB/ -->
<!-- JSqe/tSr6t1mCttXI0y6XmyQ41uGWzl9xw+WYhvOL47BV09Dgfnm/tU4ieeZ7NAR -->
<!-- 5bguorTCNr58HOcA1tcsHQqt0wJsdClsu8bpQD9e/al+lUgTUJEV80Xhco7xdgRr -->
<!-- ehbyhUf4pkeAhBEjABvIUpD2LKPho5Z4DPCT5/0TlK02nlPwUbv9URREhVYCtsDM -->
<!-- +31OFU3fDV8BmQXv5hT2RurVsJHZgP4y26dJDVF+3pcbtvh7R6NEDuYHYihfmE2H -->
<!-- dQRq5jRvLE1Eb59PYwISFCX2DaLZ+zpU4bX0I16ntKq4poGOFaaKtjIA1vRElIta -->
<!-- OKcwtc04CBrXSfyL2Op6mvNIxTk4OaswIkTXbFL81ZKGD+24uMCwo/pLNhn7VHLf -->
<!-- nxlMVzHQVL+bHa9KhTyzwdG/L6uderJQn0cGpLQMStUuNDArxW2wF16QGZ1NtBWg -->
<!-- KA8Kqv48M8HfFqNifN6+zt6J0GwzvU8g0rYGgTZR8zDEIJfeZxwWDHpSxB5FJ1VV -->
<!-- U1LIAtB7o9PXbjXzGifaIMYTzU4YKt4vMNwwBmetQDHhdAtTPplOXrnI9SI6HeTt -->
<!-- jDD3iUN/7ygbahmYOHk7VB7fwT4ze+ErCbMh6gHV1UuXPiLciloNxH6K4aMfZN1o -->
<!-- LVk6YFeIJEokuPgNPa6EnTiOL60cPqfny+Fq8UiuZzGCF1QwghdQAgEBMHEwWjEL -->
<!-- MAkGA1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjErMCkG -->
<!-- A1UEAxMiTWljcm9zb2Z0IElEIFZlcmlmaWVkIENTIEVPQyBDQSAwNAITMwAGMw+b -->
<!-- /4mdrOkL/AAAAAYzDzALBglghkgBZQMEAgGgfDAQBgorBgEEAYI3AgEMMQIwADAZ -->
<!-- BgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3AgELMQ4wDAYKKwYB -->
<!-- BAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQg0S3bGrBkrNbWgjW8u89Vt7Q6L/OwVbca -->
<!-- vIuG/LQPd+YwCwYJKoZIhvcNAQEBBIIBgEgLTtUKsGKxBS/empQQARWN127ROPCb -->
<!-- LM2zrJi2i7KC2YKovLrnaTkbejdDco/53CHL2nZ4lHmiKGMoLgPY+6fcJXSGRmDh -->
<!-- lRYnpzRg5FSPJoaEMIWeQAdIy/zks6ycCH7utzRWVsEFgDBcRxnECzlnf9AlZewl -->
<!-- bkBL5bbIgCdf05AZtOk0sTOIUaXjsuO18RMzhcvspKXq7XK7PHhkuv/y9FeECLLC -->
<!-- NGBbdk8XmZMJo3DdjkWHDDmnId/5ys4bIP4QmEhPCAOEdwBZxdbfXYbTfkFvalWB -->
<!-- rmxT8VskuTD8G6uyQO8BxQjOjvJ6mJubCvgp3wEIHoq33mFh414fE7Hrxol8UOrH -->
<!-- DF/UsD5u06lxhImeHlqbc/tJl4HLw36BoKGoNm3mk62GazJsIJUmFKxy70qSXd5l -->
<!-- 4sAkyv49n5bx6ArHMT+G7u1Tl2fQU9Qz0c/i8OpoX7DLO9BugrTZpkdMnWA25Tt8 -->
<!-- mLWUT8e3oQt+VWn13EGf3uu9mhdPOB39NKGCFLowghS2BgorBgEEAYI3AwMBMYIU -->
<!-- pjCCFKIGCSqGSIb3DQEHAqCCFJMwghSPAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFy -->
<!-- BgsqhkiG9w0BCRABBKCCAWEEggFdMIIBWQIBAQYKKwYBBAGEWQoDATAxMA0GCWCG -->
<!-- SAFlAwQCAQUABCDnVlHhGjlX1v3cYGvygy7mjwzssf1PUigGCjROFyPtJQIGapqx -->
<!-- UKw4GBEyMDI2MDkxNjE4NTgxMS4yWjAEgAIB9AIITFr84gXlkmKggemkgeYwgeMx -->
<!-- CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -->
<!-- b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1p -->
<!-- Y3Jvc29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNo -->
<!-- aWVsZCBUU1MgRVNOOjdCMUEtMDVFMC1EOTQ3MTUwMwYDVQQDEyxNaWNyb3NvZnQg -->
<!-- UHVibGljIFJTQSBUaW1lIFN0YW1waW5nIEF1dGhvcml0eaCCDykwggeCMIIFaqAD -->
<!-- AgECAhMzAAAABeXPD/9mLsmHAAAAAAAFMA0GCSqGSIb3DQEBDAUAMHcxCzAJBgNV -->
<!-- BAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xSDBGBgNVBAMT -->
<!-- P01pY3Jvc29mdCBJZGVudGl0eSBWZXJpZmljYXRpb24gUm9vdCBDZXJ0aWZpY2F0 -->
<!-- ZSBBdXRob3JpdHkgMjAyMDAeFw0yMDExMTkyMDMyMzFaFw0zNTExMTkyMDQyMzFa -->
<!-- MGExCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -->
<!-- MjAwBgNVBAMTKU1pY3Jvc29mdCBQdWJsaWMgUlNBIFRpbWVzdGFtcGluZyBDQSAy -->
<!-- MDIwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnnznUmP94MWfBX1j -->
<!-- tQYioxwe1+eXM9ETBb1lRkd3kcFdcG9/sqtDlwxKoVIcaqDb+omFio5DHC4RBcby -->
<!-- QHjXCwMk/l3TOYtgoBjxnG/eViS4sOx8y4gSq8Zg49REAf5huXhIkQRKe3Qxs8Sg -->
<!-- p02KHAznEa/Ssah8nWo5hJM1xznkRsFPu6rfDHeZeG1Wa1wISvlkpOQooTULFm80 -->
<!-- 9Z0ZYlQ8Lp7i5F9YciFlyAKwn6yjN/kR4fkquUWfGmMopNq/B8U/pdoZkZZQbxNl -->
<!-- qJOiBGgCWpx69uKqKhTPVi3gVErnc/qi+dR8A2MiAz0kN0nh7SqINGbmw5OIRC0E -->
<!-- sZ31WF3Uxp3GgZwetEKxLms73KG/Z+MkeuaVDQQheangOEMGJ4pQZH55ngI0Tdy1 -->
<!-- bi69INBV5Kn2HVJo9XxRYR/JPGAaM6xGl57Ei95HUw9NV/uC3yFjrhc087qLJQaw -->
<!-- SC3xzY/EXzsT4I7sDbxOmM2rl4uKK6eEpurRduOQ2hTkmG1hSuWYBunFGNv21Kt4 -->
<!-- N20AKmbeuSnGnsBCd2cjRKG79+TX+sTehawOoxfeOO/jR7wo3liwkGdzPJYHgnJ5 -->
<!-- 4UxbckF914AqHOiEV7xTnD1a69w/UTxwjEugpIPMIIE67SFZ2PMo27xjlLAHWW3l -->
<!-- 1CEAFjLNHd3EQ79PUr8FUXetXr0CAwEAAaOCAhswggIXMA4GA1UdDwEB/wQEAwIB -->
<!-- hjAQBgkrBgEEAYI3FQEEAwIBADAdBgNVHQ4EFgQUa2koOjUvSGNAz3vYr0npPtk9 -->
<!-- 2yEwVAYDVR0gBE0wSzBJBgRVHSAAMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cu -->
<!-- bWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUE -->
<!-- DDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAPBgNVHRMB -->
<!-- Af8EBTADAQH/MB8GA1UdIwQYMBaAFMh+0mqFKhvKGZgEByfPUBBPaKiiMIGEBgNV -->
<!-- HR8EfTB7MHmgd6B1hnNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny -->
<!-- bC9NaWNyb3NvZnQlMjBJZGVudGl0eSUyMFZlcmlmaWNhdGlvbiUyMFJvb3QlMjBD -->
<!-- ZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMjAuY3JsMIGUBggrBgEFBQcBAQSB -->
<!-- hzCBhDCBgQYIKwYBBQUHMAKGdWh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lv -->
<!-- cHMvY2VydHMvTWljcm9zb2Z0JTIwSWRlbnRpdHklMjBWZXJpZmljYXRpb24lMjBS -->
<!-- b290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDIwLmNydDANBgkqhkiG -->
<!-- 9w0BAQwFAAOCAgEAX4h2x35ttVoVdedMeGj6TuHYRJklFaW4sTQ5r+k77iB79cSL -->
<!-- Ne+GzRjv4pVjJviceW6AF6ycWoEYR0LYhaa0ozJLU5Yi+LCmcrdovkl53DNt4EXs -->
<!-- 87KDogYb9eGEndSpZ5ZM74LNvVzY0/nPISHz0Xva71QjD4h+8z2XMOZzY7YQ0Psw -->
<!-- +etyNZ1CesufU211rLslLKsO8F2aBs2cIo1k+aHOhrw9xw6JCWONNboZ497mwYW5 -->
<!-- EfN0W3zL5s3ad4Xtm7yFM7Ujrhc0aqy3xL7D5FR2J7x9cLWMq7eb0oYioXhqV2tg -->
<!-- FqbKHeDick+P8tHYIFovIP7YG4ZkJWag1H91KlELGWi3SLv10o4KGag42pswjybT -->
<!-- i4toQcC/irAodDW8HNtX+cbz0sMptFJK+KObAnDFHEsukxD+7jFfEV9Hh/+CSxKR -->
<!-- smnuiovCWIOb+H7DRon9TlxydiFhvu88o0w35JkNbJxTk4MhF/KgaXn0GxdH8elE -->
<!-- a2Imq45gaa8D+mTm8LWVydt4ytxYP/bqjN49D9NZ81coE6aQWm88TwIf4R4YZbOp -->
<!-- MKN0CyejaPNN41LGXHeCUMYmBx3PkP8ADHD1J2Cr/6tjuOOCztfp+o9Nc+ZoIAkp -->
<!-- UcA/X2gSMkgHAPUvIdtoSAHEUKiBhI6JQivRepyvWcl+JYbYbBh7pmgAXVswggef -->
<!-- MIIFh6ADAgECAhMzAAAAWXzacemNXvXAAAAAAABZMA0GCSqGSIb3DQEBDAUAMGEx -->
<!-- CzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xMjAw -->
<!-- BgNVBAMTKU1pY3Jvc29mdCBQdWJsaWMgUlNBIFRpbWVzdGFtcGluZyBDQSAyMDIw -->
<!-- MB4XDTI2MDEwODE4NTkwMVoXDTI3MDEwNzE4NTkwMVowgeMxCzAJBgNVBAYTAlVT -->
<!-- MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -->
<!-- ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVs -->
<!-- YW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNO -->
<!-- OjdCMUEtMDVFMC1EOTQ3MTUwMwYDVQQDEyxNaWNyb3NvZnQgUHVibGljIFJTQSBU -->
<!-- aW1lIFN0YW1waW5nIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC -->
<!-- AgoCggIBAKYu5/40eEX+hT+5jFa146bid3dA4LnXYntvkP3CGw4LGARFhnvLMSJ/ -->
<!-- VtsubzDaeFnm7yb2KSM70WmHQprdCVqpvUH7l0uB4jNw7urLoAR9kKHLE0VlMlDS -->
<!-- tDSxUBI3qwsdrjvdmvV0k+9/njuDEiSlzJTf7Dowd1K3bO4beRyaFhR+Y8tymECO -->
<!-- qlOAffYrG2wZdVM51+QSBSe+PEykr8C6OnnqSipuF8fZvCb6/huk0Zm6ZwsaixSH -->
<!-- IAT2IEGvS7c63Im8jV3a8R0K6i2yiw0NNlnTSpwy/Zfv7iwsLBwhfbjBTn+XOl6m -->
<!-- PzDXQQ3V+SRP9xXbGKOsBTxzGid7aKAHw3o4Ahl9UGWLH9kNP3VUokE6JYkjlfpu -->
<!-- UGZ6gQyqDewfxD4VoYIlopt4HZ0xQvqajuJx+cr8LR/IZ56gLLmwyMzde5+vtjBo -->
<!-- ilry/gSZwVGwgkvkIgpKPBQHGsSB0y3szr7Y7wEb6v0yZal1XUvWnnz3inTaSWsC -->
<!-- FrLPVwVmXy3ncY5/d25VpOkht+m697GWNbvsNOhAOHRaftE9j/hhkoM6RsyJfBLn -->
<!-- hqMcA/wcavf5oj5NeyRQdGZeLKcls9csKS3sBUzPidxx2iiNH9CPaDq/bLJEOXas -->
<!-- YohXMnRinu+fUk81s8VO7DQSF6ffn5oqSHoV8lf1Ax6u+kdShb8BAgMBAAGjggHL -->
<!-- MIIBxzAdBgNVHQ4EFgQUj5bnC18D0vlnSRhCOiODGGuXNnYwHwYDVR0jBBgwFoAU -->
<!-- a2koOjUvSGNAz3vYr0npPtk92yEwbAYDVR0fBGUwYzBhoF+gXYZbaHR0cDovL3d3 -->
<!-- dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwUHVibGljJTIw -->
<!-- UlNBJTIwVGltZXN0YW1waW5nJTIwQ0ElMjAyMDIwLmNybDB5BggrBgEFBQcBAQRt -->
<!-- MGswaQYIKwYBBQUHMAKGXWh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv -->
<!-- Y2VydHMvTWljcm9zb2Z0JTIwUHVibGljJTIwUlNBJTIwVGltZXN0YW1waW5nJTIw -->
<!-- Q0ElMjAyMDIwLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -->
<!-- BwMIMA4GA1UdDwEB/wQEAwIHgDBmBgNVHSAEXzBdMFEGDCsGAQQBgjdMg30BATBB -->
<!-- MD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0Rv -->
<!-- Y3MvUmVwb3NpdG9yeS5odG0wCAYGZ4EMAQQCMA0GCSqGSIb3DQEBDAUAA4ICAQBE -->
<!-- MhzC/ZcjpG/zURE7z2Yp5vrUxUjsE5Xa3t/2RGvESwvbmsk3bLHhSFAajgo2XQ8x -->
<!-- oGDP3sUhKCLPeICSbkVv6V8sSp8fJ8Jos6yrawf2YVis8tcV+OO7U9S6JGPQzpmP -->
<!-- ncfzQc4ne1fqZ4+HiKabIDEoFdddQT2Egkk9fzxCY/EZ52avJ27dSfrI/IDmyn9V -->
<!-- 10O3iQpg2F+C9vNTrk7nVgoDoHa9+Q3pYr0IHGnSmt5irgGT436zo5WnXP8FxMhs -->
<!-- wH1aiyiSZiVzhor10C9C52cP3C8/PEoMKUXstLjoPO0TMkeW/1Fr186KXD45QRgB -->
<!-- o0xImgtWTdzWFnlD+p7+iDBIuSrNcRXDRYuq/aYZaDhWSI0SYdPIWVh5XvXuWA31 -->
<!-- a8oQ0SO+oPa3Nk80k0864wiiyJ1KsbSnaaefg9vspeghrpY8ljCwxfCUtx5HQRNg -->
<!-- AJOI8IKACK4d014Mk0hlRO0lQVRHegqIg29K6Xqkc360W2ZJGUcstlKokkVj6KAH -->
<!-- jGyrLRPzepYfiZUJq4gXyxbpvKb1XJ2FN2682aUoNXo9RyRK1ch0f66k6+yj88kz -->
<!-- vuC7+vJWtNDs/UpIM6Hhm0kU64JUJ7MMEQcAc7kpft7Gm7YeRK+oKgqUgYXCfmzb -->
<!-- X8nJXJZnPa8ADWVsIqsuNAxCI0CZXkULofqo5Be6zzGCA9QwggPQAgEBMHgwYTEL -->
<!-- MAkGA1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAG -->
<!-- A1UEAxMpTWljcm9zb2Z0IFB1YmxpYyBSU0EgVGltZXN0YW1waW5nIENBIDIwMjAC -->
<!-- EzMAAABZfNpx6Y1e9cAAAAAAAFkwDQYJYIZIAWUDBAIBBQCgggEtMBoGCSqGSIb3 -->
<!-- DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgLQZYxm+Bzl54+I5u -->
<!-- Q7QUUK8Rvq948FU0S0evK4+ubWgwgd0GCyqGSIb3DQEJEAIvMYHNMIHKMIHHMIGg -->
<!-- BCDLRbqx24bpscXEJ+Hjj9xrcUVw7R8OyyMfSB2YGK3+vDB8MGWkYzBhMQswCQYD -->
<!-- VQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQD -->
<!-- EylNaWNyb3NvZnQgUHVibGljIFJTQSBUaW1lc3RhbXBpbmcgQ0EgMjAyMAITMwAA -->
<!-- AFl82nHpjV71wAAAAAAAWTAiBCDTAzFk4Rl+hgzXvVd6RWuJPFoEic+gRtbZRO32 -->
<!-- 7UClmjANBgkqhkiG9w0BAQsFAASCAgBs6YQAKarGL476jBpBGhSKDzOQrhXpoW6C -->
<!-- ElYno9RdVlZW+PJrvWyuodsX6R+1Db0JkCuL3hrD0QBnEBi1c7LQF9ICVz8WKFks -->
<!-- yJloBTbzYhq7CxfUharvMZKQ1Mr9gKIkoj1FMY+gc2gpuQoBMXbMR+0tOQlf9Gr0 -->
<!-- f4y9nHerIuQtpDgoN682eHscY3epymi7UHL03tzR8a7Qn24VIp1NMtZghxaR2ABe -->
<!-- Izn2tGyNgsQSWUYKubTf0x56TWnC/8BEQ/pnUEqhuzTjIdZ1j5XUptAybA8hd/tZ -->
<!-- Nc6HzJak5oBjb9fY1x5sQ+sYvqPvvwotL/Vgr3pWzdRilCO3xeCTQu/nCJRp004G -->
<!-- aTQ1KQ8405G37zT44883HlDwUne5ZsEV11rJWsW6aCgV9YXh5UFf6UGexdOUjW0/ -->
<!-- 9UHkN51YjyLJyoZDpPcmPeJcGhkXWZZ8uV1gHTXYf6KPBMNGzyAQDCMRsCLPGOPo -->
<!-- V7QSn3njj4V7ouJYlzyj1XEYIDiL5ZgIT3hA9UMqt7ow0OtQynGoFKFh3NGjPEll -->
<!-- I5myjgPP1tAMPMvQDwJSTsFoFXX13wrP8WaJrGFWwyZ0NFfc7q0Q8RWVw8Z/FPJV -->
<!-- Nuplhc0rjVFQfbsek1Y18jzbYURq6Dy1FY5U0RjaYy8LNZlO4KnkGQ4+HL15ahn1 -->
<!-- WhD7qSq9ig== -->
<!-- SIG # End signature block -->