#
# This script handles common telemetry tasks for Install.ps1 and Add-AppDevPackage.ps1.
#

function IsVsTelemetryRegOptOutSet()
{
    $VsTelemetryRegOptOutKeys = @(
        "HKLM:\SOFTWARE\Policies\Microsoft\VisualStudio\SQM",
        "HKLM:\SOFTWARE\Wow6432Node\Microsoft\VSCommon\16.0\SQM",
        "HKLM:\SOFTWARE\Microsoft\VSCommon\16.0\SQM",
        "HKLM:\SOFTWARE\Wow6432Node\Microsoft\VSCommon\17.0\SQM",
        "HKLM:\SOFTWARE\Microsoft\VSCommon\17.0\SQM"
    )

    foreach ($optOutKey in $VsTelemetryRegOptOutKeys)
    {
        if (Test-Path $optOutKey)
        {
            # If any of these keys have the DWORD value OptIn set to 0 that means that the user
            # has explicitly opted out of logging telemetry from Visual Studio.
            $val = (Get-ItemProperty $optOutKey)."OptIn"
            if ($val -eq 0)
            {
                return $true
            }
        }
    }

    return $false
}

try
{
    $TelemetryOptedOut = IsVsTelemetryRegOptOutSet
    if (!$TelemetryOptedOut)
    {
        $TelemetryAssembliesFolder = $args[0]
        $EventName = $args[1]
        $ReturnCode = $args[2]
        $ProcessorArchitecture = $args[3]

        foreach ($file in Get-ChildItem $TelemetryAssembliesFolder -Filter "*.dll")
        {
            [Reflection.Assembly]::LoadFile((Join-Path $TelemetryAssembliesFolder $file)) | Out-Null
        }

        [Microsoft.VisualStudio.Telemetry.TelemetryService]::DefaultSession.IsOptedIn = $True
        [Microsoft.VisualStudio.Telemetry.TelemetryService]::DefaultSession.Start()

        $TelEvent = New-Object "Microsoft.VisualStudio.Telemetry.TelemetryEvent" -ArgumentList $EventName
        if ($null -ne $ReturnCode)
        {
            $TelEvent.Properties["VS.DesignTools.SideLoadingScript.ReturnCode"] = $ReturnCode
        }

        if ($null -ne $ProcessorArchitecture)
        {
            $TelEvent.Properties["VS.DesignTools.SideLoadingScript.ProcessorArchitecture"] = $ProcessorArchitecture
        }

        [Microsoft.VisualStudio.Telemetry.TelemetryService]::DefaultSession.PostEvent($TelEvent)
        [Microsoft.VisualStudio.Telemetry.TelemetryService]::DefaultSession.Dispose()
    }
}
catch
{
    # Ignore telemetry errors
}
# SIG # Begin signature block
# MIIpagYJKoZIhvcNAQcCoIIpWzCCKVcCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBs5RUy/PKaA/U5
# /+cdRqsBJInUnLtOhcpeK3MamAG/SqCCDdYwgga9MIIEpaADAgECAhMzAAAAHEif
# gd+hsLd3AAAAAAAcMA0GCSqGSIb3DQEBDAUAMIGIMQswCQYDVQQGEwJVUzETMBEG
# A1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWlj
# cm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0
# aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yNDA4MDgyMTM2MjNaFw0zNTA2MjMy
# MjA0MDFaMF8xCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y
# YXRpb24xMDAuBgNVBAMTJ01pY3Jvc29mdCBXaW5kb3dzIENvZGUgU2lnbmluZyBQ
# Q0EgMjAyNDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJp9a30nwXYq
# Lq7j1TT/zCtt7vxU+CCj+7BkifS/B2gXKGU7OV9SXRJGP1yFs5p6jpsYi4cYzF56
# AV0AEmmEjV8wT2lvPU5BhN3wV30HqYPIYEj5P3WXf0kXD9fvjUf1GAtXEriJ8w7A
# LNaVEm9Rs4ePA0ZsYHaCbU5kBUJQDXv76hafOcQgdFCA3I3zYtfzX2vOwx87uDOa
# CuyKORZih9c3zTf+TLC5QYLyhVMBnDXEHDOrvaw92DSyIqpdgRWpufzqDFy1egVj
# koXZhb+9pZ9heUzNXTXhOoXzexh6YzAL4flBWm+Bc1hQyESenEvBJznV+25u3h77
# jjgMUY44+WXQ4u9qddDe/U5SeAaKRvvibmi4z7QRpLvZsla0CPiOUGz00Do5sfkC
# 0EwlsSzfM3+8A9rsyFVOgWDVPzt98OJP2EoaEOq8GE9GCoN2i7/4C2FCwff1BSCT
# JWZO1Wcr2MteJE6UxGV+ihA8nN51YPKD2dYGoewrXvRzC/1HoUeSvlZf0mf9GHEt
# vvkbJVRRo6PBf0md5t87Vb1mM/fIp1eypyaxmXkgpcBwuylsOq2kSVOJ5wBPoaEs
# sJkeMcKnEuuu++UKdDHlS0DtsYjN0QnOucvTdSsdvhzKOSjJF3XVqr9f2C945LXT
# 5rxKIHUIEDBcNYU6BKDDH6rfpKOOCSilAgMBAAGjggFGMIIBQjAOBgNVHQ8BAf8E
# BAMCAYYwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFB6C3w7XjLPXAjSDDtqr
# rWW5r7jsMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMA8GA1UdEwEB/wQFMAMB
# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL
# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv
# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr
# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS
# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQEMBQADggIBAENf+N8/
# u+mUjDtc9btoA52RBc0XVDSBMQBMqxu56hXHBwuctUWs1XBqDDMIFCHu9c6Y/UF+
# TN8EIgjnujApKYmHP4f4EM3ARSmlzrpF5ozOJx0BA5FUv1jmpdf/2ZbqpvCxlxv/
# G1R4KjrSmmqPHzs6igw3b7RTbj7BxIS8fOIkwYWQhB2fLjlg+3HSrDGPFIhpIJWV
# amMIR7a72OGonjdf45rspwqIHuynZU4avy9ruB/Rhhbwm+fMb8BMecIaTmkohx/E
# ZZ5GNWcN6oTYW3G2BM3B3YznWkl9t4shP60fMue+2ksdHGWSE8EVTdSmGUdj0jrU
# c46lGVFJISF3/MxcxnlNeP1Khyr+ZzT4Ets/I7mufpaLnLalzMR2zIuhGOAWWswe
# sbjtFzkVUFgDR2SW903I0XKlbPEA6q8epHGJ9roxh85nsEKcBNUw4Scp68KCqSpF
# BaKiyV1skd+l8U50WNePMb9Bzz0OfASal8v5sQG+DW01kN+I+RKUIbM5I50wJjiH
# ymQFNDsbobFx9I95mCEEPU7fUZ3VT/HOUVbkmX7ltIC/eQAu5GO8fu+ceETMybvb
# oxUM4dYNC+PzooUxfmC0DuKRwB21bX9+acuIBkxIm4Ed3O19w1VLoA7UNOUuJ7z6
# NQ2W/+q7cnfOPl2QVL4qlgCblUT2vmQpllV3MIIHETCCBPmgAwIBAgITMwAAASPV
# jwJDBgPuLgAAAAABIzANBgkqhkiG9w0BAQwFADBfMQswCQYDVQQGEwJVUzEeMBwG
# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTAwLgYDVQQDEydNaWNyb3NvZnQg
# V2luZG93cyBDb2RlIFNpZ25pbmcgUENBIDIwMjQwHhcNMjYwMzA1MTk1ODI2WhcN
# MjcwMzAzMTk1ODI2WjB0MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv
# bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0
# aW9uMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24wggIiMA0GCSqGSIb3
# DQEBAQUAA4ICDwAwggIKAoICAQDRofDhyqNp9ilU2DM6Ctcq1F931sSAyfMEmR3c
# E/fpq4C15SQYoNRfyQ1YXmcjtfWjaAB4Dsqr+po0Q6IXSERF31/leCtiRtPrS8/1
# T9FA9AeOUTaFYyqHRz1M4MVeTwu89ZHo9xR26SVQmOHbFWLinZzlBV9WUJxfz0TN
# MdWwAXzxnY9nln8Fn3Y0BnCXU8V3wjeCCAxoqM0v2gPG25eNn665gv7Zt3zh3vQY
# hDkb48hXJPi4DvCrpBVwCd0Iv2Sgt4qftn5STyqhdu5WWqva+pk+Sa71Db9OAy6b
# L640bGmzlUek1LAP97Ey8exl0c9azmLEQB97q4JRvhCSeejBM96a8Y6ccrrfhg/h
# ZJEOka1eIDJxCuKdZaWCec0v+V7oI3RStJu1BEcF9d4FQaDSaWDAbDxqXUm1fHUJ
# 9Xqky1yftpTfKFw3/gqsyXV44PE7EVHwwTCAGE5Z+skXRt4HEHuIhcOGxIFbH3nA
# l5KvFxopRs2zExvh2WheW8Pu79sr3baamlQA2v4k9FqJl4k1RfwO5e0/9CKyDZ6c
# ck/lV8zHM7PJtNtQUHc1FoyZ78GSlX6UFiJxDWzUzPbIHMcV4PSBV8/O7bs5h/bx
# r3B4PxjIpWUztZhzXBhU9vhUjQgOX5ZLV7bmSJ+IrxtaN+5w2Nsewt9N+mfUUFyK
# Av38uQIDAQABo4IBrzCCAaswDgYDVR0PAQH/BAQDAgeAMB8GA1UdJQQYMBYGCisG
# AQQBgjc9BgEGCCsGAQUFBwMDMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFNlj7H2k
# ZtpiMmz55wigojWkWZZSMEUGA1UdEQQ+MDykOjA4MR4wHAYDVQQLExVNaWNyb3Nv
# ZnQgQ29ycG9yYXRpb24xFjAUBgNVBAUTDTIzMDg2NSs1MDY5NTYwHwYDVR0jBBgw
# FoAUHoLfDteMs9cCNIMO2qutZbmvuOwwagYDVR0fBGMwYTBfoF2gW4ZZaHR0cDov
# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwV2luZG93
# cyUyMENvZGUlMjBTaWduaW5nJTIwUENBJTIwMjAyNC5jcmwwdwYIKwYBBQUHAQEE
# azBpMGcGCCsGAQUFBzAChltodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz
# L2NlcnRzL01pY3Jvc29mdCUyMFdpbmRvd3MlMjBDb2RlJTIwU2lnbmluZyUyMFBD
# QSUyMDIwMjQuY3J0MA0GCSqGSIb3DQEBDAUAA4ICAQAu6aVarz1Rb5/9eAD9oHOw
# QS4jDknbBYnDwLcgMy/h995knuPL6/5K0XSUICUrjU3/bL56UD1tVwXsRehrHMkR
# kgOMQk+7eH+Xvp6cyyTxwgIM7xy5YSf3VmJD3GI87lkGUqPFFOqGWjzZc3e/UQU7
# VbN4Elh4zJeKOdokXNuE3a5U1lAr1hnD6WpfIHO2nzGUHVSXDLMktWKMO89pMgLh
# 6BXHdx1cAth+ugl86sdXC+VxCQJ28a2JvNq5RQcEBEuqSISe3/YRWYRTSLqhn8ea
# v4lK4n+3fnAy2bmz76Z7UJ92X5KgTaHD+r8cvXmssFH3UbOj6EtE+c4SPNaFdIUW
# GJyZBhLbThhlh1QlbTg0X47GhI89qZ/lxuYeEDYbPGaDry/KpMoUQxU+l49iQ6zd
# kWSPGczB4ZDVRSrkDqz2K70tIvFaz8YfMhzTy5hhMNGvonCcguaFTgUsxr+OrvGC
# WadOV/pZ3BcRafKvBDX+ney3HFcUByI3VPzIU7saoUbcujqTVA6GeNSybo8AI+71
# 9omBObyf2lriZb9a2/oVe5SiKhH/BDQVn+14Q26UxrUA/8zVOlzJS5eJQYhkHM9h
# /Y2Nnmr2xLtFN0vW/aad7i104dVRaTLMBzbKIlCBOruBjM87frQc2Ncfb5Kme4u9
# o6GQVZf3kVy+p8uv8YgnQTGCGuowghrmAgEBMHYwXzELMAkGA1UEBhMCVVMxHjAc
# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEwMC4GA1UEAxMnTWljcm9zb2Z0
# IFdpbmRvd3MgQ29kZSBTaWduaW5nIFBDQSAyMDI0AhMzAAABI9WPAkMGA+4uAAAA
# AAEjMA0GCWCGSAFlAwQCAQUAoIGuMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEE
# MBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMC8GCSqGSIb3DQEJBDEiBCAN
# SiN/A9m3PfXxWvXOr5Y6vf4QWtWaOKTWzL+fiYGStDBCBgorBgEEAYI3AgEMMTQw
# MqAUgBIATQBpAGMAcgBvAHMAbwBmAHShGoAYaHR0cDovL3d3dy5taWNyb3NvZnQu
# Y29tMA0GCSqGSIb3DQEBAQUABIICAA1vVJb/cNs37vi025umveMVAIWD+LSq1XPp
# UwQHMcxrbQOdYn6qAAbzhwXJxlTE6I40+rJB913s4oH7tnk7Sq/IQH1c2axqQ5jY
# qhRpexy2QVtOAglP0e9S+bCo4Y2S5IWiPN1MUYZawrOw/3DQ+Pav8zQCSDtySFWH
# XbrI9tkk5woSpaUlPnkK/RME3Opcq83i992HtX5zmPEBhhIubGde1yBBGyRQNQkM
# 8aw7fAMcOsiIEPZzoVhgWnMePARqVoWGxSXUGbMrwhN1DxgDvFmV6k1h829JbLom
# MMWE7XMTB+xNd5fMbb9NainI6CCHbeSvsTGjikASqIHMjfVY+TYcgQ9nOQ6mzZkR
# k+qO2NePyFXkgZ0pDbOrWklz/hlJFPyi+gJr3XreXOvnpgukJdkw/ZMFZH0QhDJM
# i4/mYThnVUe2fTZ/1CQfHXjC7Mucol88n2SchaJJBOVMDB1gVijZOhgAlvxSZFkJ
# /vx0bH9wS8Gwe9XDt7s8H6Bd9b2+8TlxpujPoUcYKpA6fsoKkjyz9gRHVGUKblRJ
# Tz7WZA3x4W6o50DTu6kEMjJVJ/UkLccHAs7FMTu4cUugWF4WYpsJVLthLgMoxZU5
# 8CPj8w8CnOukFXXaH8siuOwSGJE/bQlzRMtxGLMJ9t26sP5GtFZ2H8SwWpAItxj7
# bLR6tQT6oYIXlDCCF5AGCisGAQQBgjcDAwExgheAMIIXfAYJKoZIhvcNAQcCoIIX
# bTCCF2kCAQMxDzANBglghkgBZQMEAgEFADCCAVIGCyqGSIb3DQEJEAEEoIIBQQSC
# AT0wggE5AgEBBgorBgEEAYRZCgMBMDEwDQYJYIZIAWUDBAIBBQAEIE/gqG4bUuKq
# m7yuTO6Ru9m00WfD/TLIt9qVzmfcPzymAgZqF0/zHjQYEzIwMjYwNTI4MjA0MjU3
# Ljc5N1owBIACAfSggdGkgc4wgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo
# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y
# cG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMx
# JzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjpFMDAyLTA1RTAtRDk0NzElMCMGA1UE
# AxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEeowggcgMIIFCKADAgEC
# AhMzAAACKQ7VZCq0l/IaAAEAAAIpMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYT
# AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYD
# VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBU
# aW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI2MDIxOTE5NDAwN1oXDTI3MDUxNzE5NDAw
# N1owgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH
# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNV
# BAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGll
# bGQgVFNTIEVTTjpFMDAyLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRp
# bWUtU3RhbXAgU2VydmljZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
# AJ4i0WrjPWgJhKZRmalgOxslYS777Vttz8zPs9rcjRlfkQ435aKsHQW+caXIVFTK
# XM7lMldl9TxAU85T3k/VjU5nwn6q4Dkb4BZIE6v/jyxyXSz1EGmqBMyr+VvKoHPg
# Iya9VHZB68CBWnhrWFuY6b0bthZ7Lrw3kXmtINhXTAyWDgjLxhG4WBE3Z4GlVe30
# i8VoWYGdAtl+jbYpncvw9YQdSFdTl0s5JmhN+qpD8H515bnoAIyeceM/Fm76zMeF
# kwtSsxZOCz0nsKfwO16VwqP1oz7Rmru2RIMcKvCjp4JJ/DdyWS1dFGt2axxxqXxE
# IOI0UWBmzKnAXZoYAXqSDjX5CX62Femc4xQfiY8IAllanTMNajCwr9ijmMcvWlP8
# CBsvcWgDLhxuE4jg9vV5AUb6NPuyRLYX9v5kAJQDUQNnzfQr4G7TLD4WlIbLy2l3
# WzOTdxRiMinMgbjPegU2aJIk3xh013hIewRHkOSzlvGIpum+Z+s4Df2NNvsRbZNP
# vJJaAkhJ+9N7O4uZCxNVLM2y9qlWUeETbMGoPDjT2e862K0IVueGFc19q3Nvb4Z/
# a1fazpgFrXnUIL/z56Ym+96BdtY253Ni3xwVGibQ9n58lGGEF91KoKqvxB44YnxV
# iWbEVerHVJ0NKRMJKCmyyQapnCH/q6YDWDgvvN4YE2eBAgMBAAGjggFJMIIBRTAd
# BgNVHQ4EFgQUJ01FpIv0BbxC9pDbVaNEBco3gzswHwYDVR0jBBgwFoAUn6cVXQBe
# Yl2D9OXSZacbUzUZ6XIwXwYDVR0fBFgwVjBUoFKgUIZOaHR0cDovL3d3dy5taWNy
# b3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBD
# QSUyMDIwMTAoMSkuY3JsMGwGCCsGAQUFBwEBBGAwXjBcBggrBgEFBQcwAoZQaHR0
# cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBU
# aW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcnQwDAYDVR0TAQH/BAIwADAWBgNV
# HSUBAf8EDDAKBggrBgEFBQcDCDAOBgNVHQ8BAf8EBAMCB4AwDQYJKoZIhvcNAQEL
# BQADggIBAD3BzvaV/9zMOGnT1Pc8YAw5CHGX/HTiOkTu3f0V6pBKfZSnoNXOGDCf
# MKpjc0iEu1Rpat3s3G+uFkNxr4njHO+tFA08d5FCmclV4ezJO7neBMGVQHVNEjo6
# dm38BWZH2gwn80E6oH535I5vw/HrNGBHCTrawWQ6QHmWKD8MydgR5H9qZb0d2jy9
# dwqZpr8NtI4AdJ19kW36Koxl82WQQ6fvX9EApM2/hCmr/YWFyMwyZKQiGyEF0FUH
# RWOaTAV+FVR/lNO4sn2wNHgTIK85kncHqDsjDpaNDHJyPCR/OxUxOl+6wnlLB04c
# vzIY9Zk54+PBrwhJdazqSJUr/pLT8lVvUunGnJgpERCOdT/k55wq3Y5eUd3AVZmv
# ACL3xE9lroQTFxv8sYt/XS00eO7V5OWiFjSPM1lDQEOBK4xmAxT7wQSO0xAwgOeU
# 8YRQ43ssdccfQovQUDTU8RZVkquv8tQ664NM0XPDnjcU8yniCQIgWUp1G5yJHUhc
# 6T5ex7quP20kViBWf7jgEei7ZdB7lFffR5/cBBZrSbHIYOonMaxXdfn5s1B4xXzy
# Ja6Uk+rmyCcYb078fX8cfgew71koZf9asmlCYW5CtM5Hj1eO95oLTFoWYaw2D5GF
# u0PmpOSf4hIO/DQgn8T9Vc13P/JaCiXqvnTuFPywAy6meGQXa7DUMIIHcTCCBVmg
# AwIBAgITMwAAABXF52ueAptJmQAAAAAAFTANBgkqhkiG9w0BAQsFADCBiDELMAkG
# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx
# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9z
# b2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMjEwOTMwMTgy
# MjI1WhcNMzAwOTMwMTgzMjI1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz
# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv
# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx
# MDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOThpkzntHIhC3miy9ck
# eb0O1YLT/e6cBwfSqWxOdcjKNVf2AX9sSuDivbk+F2Az/1xPx2b3lVNxWuJ+Slr+
# uDZnhUYjDLWNE893MsAQGOhgfWpSg0S3po5GawcU88V29YZQ3MFEyHFcUTE3oAo4
# bo3t1w/YJlN8OWECesSq/XJprx2rrPY2vjUmZNqYO7oaezOtgFt+jBAcnVL+tuhi
# JdxqD89d9P6OU8/W7IVWTe/dvI2k45GPsjksUZzpcGkNyjYtcI4xyDUoveO0hyTD
# 4MmPfrVUj9z6BVWYbWg7mka97aSueik3rMvrg0XnRm7KMtXAhjBcTyziYrLNueKN
# iOSWrAFKu75xqRdbZ2De+JKRHh09/SDPc31BmkZ1zcRfNN0Sidb9pSB9fvzZnkXf
# tnIv231fgLrbqn427DZM9ituqBJR6L8FA6PRc6ZNN3SUHDSCD/AQ8rdHGO2n6Jl8
# P0zbr17C89XYcz1DTsEzOUyOArxCaC4Q6oRRRuLRvWoYWmEBc8pnol7XKHYC4jMY
# ctenIPDC+hIK12NvDMk2ZItboKaDIV1fMHSRlJTYuVD5C4lh8zYGNRiER9vcG9H9
# stQcxWv2XFJRXRLbJbqvUAV6bMURHXLvjflSxIUXk8A8FdsaN8cIFRg/eKtFtvUe
# h17aj54WcmnGrnu3tz5q4i6tAgMBAAGjggHdMIIB2TASBgkrBgEEAYI3FQEEBQID
# AQABMCMGCSsGAQQBgjcVAgQWBBQqp1L+ZMSavoKRPEY1Kc8Q/y8E7jAdBgNVHQ4E
# FgQUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXAYDVR0gBFUwUzBRBgwrBgEEAYI3TIN9
# AQEwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9w
# cy9Eb2NzL1JlcG9zaXRvcnkuaHRtMBMGA1UdJQQMMAoGCCsGAQUFBwMIMBkGCSsG
# AQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTAD
# AQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fOmhjEMFYGA1UdHwRPME0w
# S6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3Rz
# L01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBaBggrBgEFBQcBAQROMEwwSgYI
# KwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWlj
# Um9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCdVX38
# Kq3hLB9nATEkW+Geckv8qW/qXBS2Pk5HZHixBpOXPTEztTnXwnE2P9pkbHzQdTlt
# uw8x5MKP+2zRoZQYIu7pZmc6U03dmLq2HnjYNi6cqYJWAAOwBb6J6Gngugnue99q
# b74py27YP0h1AdkY3m2CDPVtI1TkeFN1JFe53Z/zjj3G82jfZfakVqr3lbYoVSfQ
# JL1AoL8ZthISEV09J+BAljis9/kpicO8F7BUhUKz/AyeixmJ5/ALaoHCgRlCGVJ1
# ijbCHcNhcy4sa3tuPywJeBTpkbKpW99Jo3QMvOyRgNI95ko+ZjtPu4b6MhrZlvSP
# 9pEB9s7GdP32THJvEKt1MMU0sHrYUP4KWN1APMdUbZ1jdEgssU5HLcEUBHG/ZPkk
# vnNtyo4JvbMBV0lUZNlz138eW0QBjloZkWsNn6Qo3GcZKCS6OEuabvshVGtqRRFH
# qfG3rsjoiV5PndLQTHa1V1QJsWkBRH58oWFsc/4Ku+xBZj1p/cvBQUl+fpO+y/g7
# 5LcVv7TOPqUxUYS8vwLBgqJ7Fx0ViY1w/ue10CgaiQuPNtq6TPmb/wrpNPgkNWcr
# 4A245oyZ1uEi6vAnQj0llOZ0dFtq0Z4+7X6gMTN9vMvpe784cETRkPHIqzqKOghi
# f9lwY1NNje6CbaUFEMFxBmoQtB1VM1izoXBm8qGCA00wggI1AgEBMIH5oYHRpIHO
# MIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQL
# ExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxk
# IFRTUyBFU046RTAwMi0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1l
# LVN0YW1wIFNlcnZpY2WiIwoBATAHBgUrDgMCGgMVALe/2JI7bbGhvtnE3l1cISr7
# 0i//oIGDMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x
# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv
# bjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwDQYJKoZI
# hvcNAQELBQACBQDtwx/KMCIYDzIwMjYwNTI4MjAxMDUwWhgPMjAyNjA1MjkyMDEw
# NTBaMHQwOgYKKwYBBAGEWQoEATEsMCowCgIFAO3DH8oCAQAwBwIBAAICAqMwBwIB
# AAICE08wCgIFAO3EcUoCAQAwNgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoD
# AqAKMAgCAQACAwehIKEKMAgCAQACAwGGoDANBgkqhkiG9w0BAQsFAAOCAQEAPr07
# +NuLuJlPHJAF/LEjAEdw4TKtNHWkJllA9nhgyT44F+rOOAqZD3lRQ1NLHxLD1R5s
# 0yWiZOhk4f9FcBX5GhKhphegMXfpMY+sbvrweXNSz2R+AWn5ZcyprracprcJrpMQ
# 7Wz75WsE81OEvnti2ZQHzubDV5AWD5uSCCWEXHYk5TYOkOcmeF4tteOKA8tDCOzX
# +Y60jc8IjOaGC8sGuLtS8DsA+Jwkr9fJqZDZENASQA5dj+tTYyd4pr5q8dZYdPzQ
# JicEFIMK5mqBrhJ0Oo856atvR/b00OBUYChC7B+6lsz+s+8ISaYVSVSKuBH2emY5
# AepNE41a+MrN3Bi4VDGCBA0wggQJAgEBMIGTMHwxCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w
# IFBDQSAyMDEwAhMzAAACKQ7VZCq0l/IaAAEAAAIpMA0GCWCGSAFlAwQCAQUAoIIB
# SjAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEIAZQ
# k+AL9jRaxCqbshZnZ6g4REt4y6iBsPyCuoDsJ8WCMIH6BgsqhkiG9w0BCRACLzGB
# 6jCB5zCB5DCBvQQgt8o98SK28P+VK8S6bGo+SR44S2CSYoURUy56X2g6upIwgZgw
# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE
# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD
# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAikO1WQqtJfy
# GgABAAACKTAiBCBCEO3uv2mXY5LnRYsLC/uwCfBfAomrpkOhqK1S7ugQbzANBgkq
# hkiG9w0BAQsFAASCAgAfZsiuAMHOBQFtsuoLeoPPry9ZBaHJFjWw3KNLNbJXDPbv
# ZDazRioqfffBDZUId5uCOSQOpo80wEo3hPhtC+BpQ3paXQ+j5yRazcYBSGdAFm2T
# DIRQy1/WJnOEvYFqz/9boLjxqYWPAoYSmNaaispochPDLh/dW2BJphlGCHHZ96+L
# SLQM/p6fI7U/licWvgjiQ4WquG0NVgEcee8VDpOmGBQadtrpIVu+5fBNPPJjBY/l
# 9fLFF7yY7Lgg7P38QJXdVhsLiAx4arMP/t0gekJoVyJDGkik7W8nTWjRILPD1FOI
# 6087eVRUYI20Q2OBiTv+SAPkqmDuDkhc26/Ftp0VLPyNBzclFPSzQl2tBOQD6kAS
# MO2NUkVBMJPKYqXVCga+lA95bOsntPyxpgSy6jLd02Xch/F8nWSVhMp5CbkgG4QA
# ySHnlLUkE8wkxUehlp5lJzDXCrcwWA9ymVfN3LR6u9tjxZ6D0CWxplgRzzYeh30R
# 2S9ppsXahhAH+bX4wcbiZPyadgnoKtk/5/+vay1u7lfOkoxoN5eLEHljjY2ZLCkc
# nquu5G9rn8MFCu3sn60yd+Yw8A9uNqbRI7oC/u6w4D47lUabrS4B4SQSuf0YSHm4
# LnPJkEOqK2rLxo6IWiO2GV9OM2LRI4gDUbihdot3ViPmTumxES2PPEZtSMochw==
# SIG # End signature block
