PublishModules.ps1

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

param(
    [Parameter(Mandatory = $false, Position = 0)]
    [string] $buildConfig,
    [Parameter(Mandatory = $false, Position = 1)]
    [string] $scope,
    [Parameter(Mandatory = $false, Position = 2)]
    [string] $apiKey,
    [Parameter(Mandatory = $false, Position = 3)]
    [string] $repositoryLocation
)

if ([string]::IsNullOrEmpty($buildConfig))
{
    Write-Verbose "Setting build configuration to 'Release'"
    $buildConfig = "Release"
}

if ([string]::IsNullOrEmpty($repositoryLocation))
{
    Write-Verbose "Setting repository location to 'https://www.powershellgallery.com/api/v2/'"  
    $repositoryLocation = "https://www.powershellgallery.com/api/v2/"
}

if ([string]::IsNullOrEmpty($scope))
{
    Write-Verbose "Default scope to all"
    $scope = 'All'  
}

Write-Host "Publishing $scope package(and its dependencies)" 

$packageFolder = "$PSScriptRoot\..\src\Package"

$repo = Get-PSRepository | where { $_.SourceLocation -eq $repositoryLocation }
if ($repo -ne $null) {
    $repoName = $repo.Name
} else {
    $repoName = $(New-Guid).ToString()
    Register-PSRepository -Name $repoName -SourceLocation $repositoryLocation -PublishLocation $repositoryLocation/package -InstallationPolicy Trusted
}

$resourceManagerRootFolder = "$packageFolder"
$publishToLocal = test-path $repositoryLocation
if (($scope -eq 'All') -or $publishToLocal ) {
    # If we publish 'All' or to local folder, publish AzureActiveDirectory first, becasue it is the common dependency
    Write-Host "Publishing profile module"
    Publish-Module -Name "$resourceManagerRootFolder\AzureAD.psd1" -NuGetApiKey $apiKey -Repository $repoName -Tags ("Azure") -LicenseUri "http://aka.ms/azps-license"
    Write-Host "Published active directory module"
}
# SIG # Begin signature block
# MIIkEwYJKoZIhvcNAQcCoIIkBDCCJAACAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBAB55qlh6Ldn5c
# M7zWt9qLwm5wXkYpS52IKLJTGMb2R6CCDY4wggYMMIID9KADAgECAhMzAAAAUIdr
# 9343iErHAAAAAABQMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p
# bmcgUENBIDIwMTEwHhcNMTUwNTA1MjAxOTA0WhcNMTYwODA1MjAxOTA0WjB0MQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
# AQCaIoYmGMao9+4o9C5pYpDSaOU1vM5aOB726p+Fz6HmQrSv9P2/WhemKYpX/H2t
# +g0SjGG/GuZ7aJQvk6Bjs+roneH8aqR1vNs5AuivwJTET1wcRQhiba2ThELg/p81
# PwZudPtH94kUikbrLQ8fp8IBMUPTpONPG7xwSZK+3zWLoMy7UcCTXdKq2IojIHN0
# SqKRltQMXuAxQndcJDevnaVL+uUAA5yu1BxtLmRTumcbYM9rZCbLg3n1yRiLAgEv
# Su0iZ/dSU4Hkfm6G8K61lgYhhzU9255p0+qafmXssedwnHNShNRUQqUMEzmKIMGV
# /fQ43zpGoouwcaxi3KDYtk1bAgMBAAGjggGLMIIBhzArBgNVHSUEJDAiBggrBgEF
# BQcDAwYKKwYBBAGCN0wIAQYKKwYBBAGCN0wTATAdBgNVHQ4EFgQUlaRuhqyxAVqM
# 0OtUyvQIL2BnhnUwUQYDVR0RBEowSKRGMEQxDTALBgNVBAsTBE1PUFIxMzAxBgNV
# BAUTKjU0ODE2KzFmODQ4NWU1LWY5YzUtNDRmZC04Y2U3LTlmZDFmODVjYzM3ZDAf
# BgNVHSMEGDAWgBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BF
# hkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQ
# Q0EyMDExXzIwMTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcw
# AoZFaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RT
# aWdQQ0EyMDExXzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcN
# AQELBQADggIBAKI24bgJ1nULmiTYNSzydzSEniceVdoCZpXUpdjuql17KkehUjXY
# lXd4pCLhSzaRi6Jhu+ZblU4t0Eqp0fvW4nFq+qxoMSrgkGy8B+uSHvgggXBIazvZ
# 6HqDEapUYIqn3rxBUiZQEVRAhRK0uaVJ18RT5zHkn0pKsPM2Hs3E3JmHyt0sZLnq
# UKYsgibrsfJxLh5BuY+BdGX7xXo0Ev5bqTJbPYQSwa46TqdWJu0sGg/nnZ9R5KNj
# pYlXVDtYFD7UGvTdnfzd8NSdGOv8lPqLISnYjAD0QwRYWkVxn+Dlkfog+QAgStpP
# SUJvHUg3d7GjIkoMnkoLqq3SmYa5hwLTi2/modvW+s3cViCnCYA6XXwSs71dX6HW
# 36EkukWbkUJA8C3Ww92Lqnd2QWXoUZPCUKoG65PEHVaWynuC0gMastTN/IIVFTg0
# KYprflx1qGelPmHzL70xYNiZ0OaFEp3Lv5M+YgOeS3xo8AxoqjT1hug2zJxAL8ai
# GEMXnaOflgxAzxFyXZpkeuxTuYZICMPq/whS39FVR7ix1DjcDtkNNn6H46q/xxOf
# JXtkBZ6TayIGaXvzve3c2+HhQASPJdTeburaygIvYQLPKHUNKBtdkWZJCwvSiAxd
# +kQ96ZaAC7v+nDJ77h3FPMsin54kI80J8ZXMePgX4obfJpkuXbjUA2piMIIHejCC
# BWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMC
# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV
# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJv
# b3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcN
# MjYwNzA4MjEwOTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv
# bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0
# aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIIC
# IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2
# WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSH
# fpRgJGyvnkmc6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQ
# z7NEt13YxC4Ddato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHml
# SSnnDb6gE3e+lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3o
# iU+EGvKhL1nkkDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6
# nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6ep
# ZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf
# 28AVs70b1FVL5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCn
# q47f7Fufr/zdsGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx
# 7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O
# 9JawvEagbJjS4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0G
# A1UdDgQWBBRIbmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMA
# dQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAW
# gBRyLToCMZBDuRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8v
# Y3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQy
# MDExXzIwMTFfMDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZC
# aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQy
# MDExXzIwMTFfMDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCB
# gzA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9k
# b2NzL3ByaW1hcnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABf
# AHAAbwBsAGkAYwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEB
# CwUAA4ICAQBn8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LR
# bYP+vj/oCso7v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r
# 4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb
# 7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6v
# mSiXmE0OPQvyCInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/
# sfQn+N4sOiBpmLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad2
# 5UAqZaPDXVJihsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUf
# FL5hYbXw3MYbBL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWx
# m6U/RXceNcbSoqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMj
# aHXmr/r8i+sLgOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7
# qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCFdswghXX
# AgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD
# VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAm
# BgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAABQh2v3
# fjeISscAAAAAAFAwDQYJYIZIAWUDBAIBBQCggcYwGQYJKoZIhvcNAQkDMQwGCisG
# AQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcN
# AQkEMSIEIJUNHbiDYXVXPdlETce/xf7cxO28yhmWSDJebEXun4t8MFoGCisGAQQB
# gjcCAQwxTDBKoCaAJABQAHUAYgBsAGkAcwBoAE0AbwBkAHUAbABlAHMALgBwAHMA
# MaEggB5odHRwOi8vd3d3Lk1pY3Jvc29mdE9ubGluZS5jb20wDQYJKoZIhvcNAQEB
# BQAEggEAQiyZxbhDjlfkblFrvB2/wKdA3Vq9h7GunJzE3t6bTB/p3gMRb86CGFWx
# zVZnOlnS44J/cU3Z/A3qz6942Gdb0aOjRmhJ9HSrg0M/zAn9C7vM6uQCJ0sgi7MN
# 7HrkNCIm8rqEXcO2DxuWHpAxNMuNMU9WmcRKJEro2rvOM+aUKB4SocSaFrhAYRfM
# +MvkGJaHTF6+fUKxBd1jOWQ4x9YDYM6z4lTDxqZ6LzOS3yoa8US+J3x62sGFH5Bd
# WCSb8fR59OoCTwp+FN0zsMjWRsDy0cE1zWTIUve9jbqvqLwTjqwxYVfwfhHNofKx
# Tp4yk7l0o5xYCUIeB9ttHglnsbPX8KGCE00wghNJBgorBgEEAYI3AwMBMYITOTCC
# EzUGCSqGSIb3DQEHAqCCEyYwghMiAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggE9Bgsq
# hkiG9w0BCRABBKCCASwEggEoMIIBJAIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl
# AwQCAQUABCBQTgXvKNmgjKK8A7kJD43lRkHP0c9417WQ6Px9qZKycgIGVnL+fQgY
# GBMyMDE2MDEyMjAxMzkxOS43MTNaMAcCAQGAAgH0oIG5pIG2MIGzMQswCQYDVQQG
# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG
# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMQ0wCwYDVQQLEwRNT1BSMScwJQYD
# VQQLEx5uQ2lwaGVyIERTRSBFU046QkJFQy0zMENBLTJEQkUxJTAjBgNVBAMTHE1p
# Y3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wggg7QMIIGcTCCBFmgAwIBAgIKYQmB
# KgAAAAAAAjANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m
# dCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNh
# dGUgQXV0aG9yaXR5IDIwMTAwHhcNMTAwNzAxMjEzNjU1WhcNMjUwNzAxMjE0NjU1
# WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD
# Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCASIwDQYJKoZIhvcNAQEB
# BQADggEPADCCAQoCggEBAKkdDbx3EYo6IOz8E5f1+n9plGt0VBDVpQoAgoX77Xxo
# SyxfxcPlYcJ2tz5mK1vwFVMnBDEfQRsalR3OCROOfGEwWbEwRA/xYIiEVEMM1024
# OAizQt2TrNZzMFcmgqNFDdDq9UeBzb8kYDJYYEbyWEeGMoQedGFnkV+BVLHPk0yS
# wcSmXdFhE24oxhr5hoC732H8RsEnHSRnEnIaIYqvS2SJUGKxXf13Hz3wV3WsvYpC
# TUBR0Q+cBj5nf/VmwAOWRH7v0Ev9buWayrGo8noqCjHw2k4GkbaICDXoeByw6ZnN
# POcvRLqn9NxkvaQBwSAJk3jN/LzAyURdXhacAQVPIk0CAwEAAaOCAeYwggHiMBAG
# CSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBTVYzpcijGQ80N7fEYbxTNoWoVtVTAZ
# BgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/
# BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8E
# TzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9k
# dWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBM
# MEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRz
# L01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDCBoAYDVR0gAQH/BIGVMIGSMIGP
# BgkrBgEEAYI3LgMwgYEwPQYIKwYBBQUHAgEWMWh0dHA6Ly93d3cubWljcm9zb2Z0
# LmNvbS9QS0kvZG9jcy9DUFMvZGVmYXVsdC5odG0wQAYIKwYBBQUHAgIwNB4yIB0A
# TABlAGcAYQBsAF8AUABvAGwAaQBjAHkAXwBTAHQAYQB0AGUAbQBlAG4AdAAuIB0w
# DQYJKoZIhvcNAQELBQADggIBAAfmiFEN4sbgmD+BcQM9naOhIW+z66bM9TG+zwXi
# qf76V20ZMLPCxWbJat/15/B4vceoniXj+bzta1RXCCtRgkQS+7lTjMz0YBKKdsxA
# QEGb3FwX/1z5Xhc1mCRWS3TvQhDIr79/xn/yN31aPxzymXlKkVIArzgPF/UveYFl
# 2am1a+THzvbKegBvSzBEJCI8z+0DpZaPWSm8tv0E4XCfMkon/VWvL/625Y4zu2Jf
# mttXQOnxzplmkIz/amJ/3cVKC5Em4jnsGUpxY517IW3DnKOiPPp/fZZqkHimbdLh
# nPkd/DjYlPTGpQqWhqS9nhquBEKDuLWAmyI4ILUl5WTs9/S/fmNZJQ96LjlXdqJx
# qgaKD4kWumGnEcua2A5HmoDF0M2n0O99g/DhO3EJ3110mCIIYdqwUB5vvfHhAN/n
# MQekkzr3ZUd46PioSKv33nJ+YWtvd6mBy6cJrDm77MbL2IK0cs0d9LiFAR6A+xuJ
# KlQ5slvayA1VmXqHczsI5pgt6o3gMy4SKfXAL1QnIffIrE7aKLixqduWsqdCosnP
# GUFN4Ib5KpqjEWYw07t0MkvfY3v1mYovG8chr1m1rtxEPJdQcdeh0sVV42neV8HR
# 3jDA/czmTfsNv11P6Z0eGTgvvM9YBS7vDaBQNdrvCScc1bN+NR4Iuto229Nfj950
# iEkSMIIE2jCCA8KgAwIBAgITMwAAAIMoFt5mvLbb2AAAAAAAgzANBgkqhkiG9w0B
# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE
# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD
# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0xNTEwMjgyMDQw
# MTZaFw0xNzAxMjgyMDQwMTZaMIGzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz
# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv
# cnBvcmF0aW9uMQ0wCwYDVQQLEwRNT1BSMScwJQYDVQQLEx5uQ2lwaGVyIERTRSBF
# U046QkJFQy0zMENBLTJEQkUxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1w
# IFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsgDFTfB/z
# b3Da4bBAZtUbxhd/hvc6DBfH6M6Ag64NiOnIHkJ2/KnrZQ8JwDSiZrmvHeMqD3Y9
# TmTXz3CoWRbReT4wmelqMLB5+22JwqBSy0zGu62lISgUe6d9LrouYdTAqMr2Vu/o
# PNq3AmcVYvdHfUrweWoWZrwQvI1r809UB20WRjfsy2snhesN0LL7utYoxWdriPMG
# IdgCZz72/hd5V7c2StmNlGWhl8xXDuqqeG+UeNJKUCECV9YwbpUYI3okrq7jhD9W
# 3WgGaUKLMGaeqZNDlZQ9SbGpLwmFDigVcquwcfBg/HaOtVxNibUtVpKW+f8q0yXw
# KZNbjigeVgWRAgMBAAGjggEbMIIBFzAdBgNVHQ4EFgQUnkDJnhJQDMfal31fnl83
# 2wQSnCswHwYDVR0jBBgwFoAU1WM6XIoxkPNDe3xGG8UzaFqFbVUwVgYDVR0fBE8w
# TTBLoEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVj
# dHMvTWljVGltU3RhUENBXzIwMTAtMDctMDEuY3JsMFoGCCsGAQUFBwEBBE4wTDBK
# BggrBgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9N
# aWNUaW1TdGFQQ0FfMjAxMC0wNy0wMS5jcnQwDAYDVR0TAQH/BAIwADATBgNVHSUE
# DDAKBggrBgEFBQcDCDANBgkqhkiG9w0BAQsFAAOCAQEAByq1zwZDgtDAHie1pSEl
# usdmegsQVJ3BIZnoKPk8d6h2D1aXJCCvlVxksRxw+5/LT25Zu9QPqE529LUtWdKq
# xKDEIn34cG/+P4078rV/FAFOJXxLAstzynvl6MI3bkWY5yhOBJq1AeeKdllCCbkD
# aAUhrfYElqOlAFvZLfohqzDVmkVYoao9VOsdq2ClJhFqEvVm96DFWGdcuafWKtPf
# DKo00pydRlGBH5RiWJxIBM0Z4n7D6ZqtOal8OR43CWJ+tU4zGDy3yKPO+22FlfHN
# v0l0NTBvLp/q2VD7mpAQ/CCrwOjNUlrmnZqqIekX2lz8c21jI6xkCjyhB58uL95A
# TaGCA3kwggJhAgEBMIHjoYG5pIG2MIGzMQswCQYDVQQGEwJVUzETMBEGA1UECBMK
# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
# IENvcnBvcmF0aW9uMQ0wCwYDVQQLEwRNT1BSMScwJQYDVQQLEx5uQ2lwaGVyIERT
# RSBFU046QkJFQy0zMENBLTJEQkUxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0
# YW1wIFNlcnZpY2WiJQoBATAJBgUrDgMCGgUAAxUA3BPwHTLKxPofZ9cfcgR2d+Cw
# J0aggcIwgb+kgbwwgbkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u
# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp
# b24xDTALBgNVBAsTBE1PUFIxJzAlBgNVBAsTHm5DaXBoZXIgTlRTIEVTTjo1N0Y2
# LUMxRTAtNTU0QzErMCkGA1UEAxMiTWljcm9zb2Z0IFRpbWUgU291cmNlIE1hc3Rl
# ciBDbG9jazANBgkqhkiG9w0BAQUFAAIFANpL9b4wIhgPMjAxNjAxMjIwMDI2Mzha
# GA8yMDE2MDEyMzAwMjYzOFowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA2kv1vgIB
# ADAKAgEAAgIMYAIB/zAHAgEAAgIYcTAKAgUA2k1HPgIBADA2BgorBgEEAYRZCgQC
# MSgwJjAMBgorBgEEAYRZCgMBoAowCAIBAAIDFuNgoQowCAIBAAIDB6EgMA0GCSqG
# SIb3DQEBBQUAA4IBAQC2yuqsiDPXyvUekqkhxM/3/JDqEZufTZZbXlBVLXXnZ2D9
# KiYA6VgfNngKZvrU+DIs925hR9dAOha7eB7BhbXYebCj7k04ROsCgmVe4/hWkdPT
# l3mtMsMDBI7pU+cOpVgYvh4eXQzZNy5VxK53NUUotJxrTu781oRD9Im/j5SvvBco
# mSNkslLSMELNv5zuaj0IlQmLRYHy4dgQvVsHGM2xDmKDzyIjbrGCrw/m7+UN2aBI
# lvRbYRjAA8q0zb2Z0K2LVil0fBSKiaUghjQxzBZ/2UMlQUF8aRhGyHF7ojVY81F2
# 4HlQUQqRjkXPVFe7l27dHfHiugEgcTmc7fYbcW+jMYIC9TCCAvECAQEwgZMwfDEL
# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWlj
# cm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAACDKBbeZry229gAAAAAAIMw
# DQYJYIZIAWUDBAIBBQCgggEyMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAv
# BgkqhkiG9w0BCQQxIgQgvwAidEzqv8ZluJ1cxNNt6aGbfIuiiHScizQTwEGFyPgw
# geIGCyqGSIb3DQEJEAIMMYHSMIHPMIHMMIGxBBTcE/AdMsrE+h9n1x9yBHZ34LAn
# RjCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw
# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
# JjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAAgygW
# 3ma8ttvYAAAAAACDMBYEFKHo5D1Ttkbtv2nY0FfmS62u8TGNMA0GCSqGSIb3DQEB
# CwUABIIBAJgujWv5AdRmsFasj3dSxb52pDBqsq6oUAcOWhjj3fBMsz4dKd7t5Dtb
# dTZZ+G+/rIn5qq0lhZVp9mw5GZnuVJQP93a265mfUmuKm/DDGornzVfDm143Ci0k
# AVtGvjSm4XMENsT9vtsVhxCzZ/D6UKu9GCW2NgCB2cR4jAg++fdDiOLDVEE0IPF3
# AhRIgOnWkS9ULGmbttDyssWQETl3V2Myf13JONun7XSo+3INBclTChFabnYJj8HO
# J0ClM4g/ZlQaJBehsvyTS1VBmyB0t0Xg4tMz9dE2JSBd99JzEkyRPCQ7aN4dUXlB
# Zbzfuo8F87STkmYJ/yqdGNA4OtemDa4=
# SIG # End signature block