Checks/check-DLP.ps1

using module "..\CAMP.psm1"

class DLP : CAMPCheck {
    <#
     
        
    #>

    $SIT = $null
    $RemediationPolicyName = $null

    DLP($InfoParams) {
        $this.Control = $InfoParams["Control"]
        $this.ParentArea = $InfoParams["ParentArea"]
        $this.Area = $InfoParams["Area"]
        $this.Name = $InfoParams["Name"]
        $this.RemediationPolicyName = $InfoParams["RemediationPolicyName"]
        $this.PassText = $InfoParams["PassText"]
        $this.FailRecommendation = $InfoParams["FailRecommendation"]
        $this.Importance = $InfoParams["Importance"]
        $this.CheckType = [CheckType]::ObjectPropertyValue
        $this.ObjectType = "DLP Policy"
        $this.ItemName = "Sensitive Information Type"
        $this.DataType = "Remarks"
        $this.SIT = $InfoParams["SIT"]
        $this.Links = $InfoParams["Links"]
    
    }

    <#
     
        RESULTS
     
    #>


    GetResults($Config) {
        if (($Config["GetDlpComplianceRule"] -eq "Error") -or ($Config["GetDlpCompliancePolicy"] -eq "Error")) {
            $this.Completed = $false
        }
        else {
            if(($null -eq $($this.SIT)) -or ($($this.SIT) -eq ""))
            {
                $this.ExpandResults = $false
                $CheckNameDisplay = $this.RemediationPolicyName
                $CheckNameDisplayString = $CheckNameDisplay.Substring(5)     
                $this.Importance += "<div><span style='color:#cc9900;'>Note&nbsp;:&nbsp;</span>We currently do not support SITs for DLP policies for $CheckNameDisplayString for the geolocations for which this report is generated. Please review your DLP policies to ensure you are protected.</div>"
                $ConfigObject = [CAMPCheckConfig]::new()
                $ConfigObject.SetResult([CAMPConfigLevel]::Recommendation, "Pass")   
                $this.AddConfig($ConfigObject)
                

            }
            else
            {
            $SensitiveTypes = @{}
            foreach ($SIT in $this.SIT) {
                $SensitiveTypes[$SIT] = $null
            }
            $UtilityFiles = Get-ChildItem "$PSScriptRoot\..\Utilities"

            ForEach ($UtilityFile in $UtilityFiles) {
                . $UtilityFile.FullName
            }
            $Name = "$($this.RemediationPolicyName)"
            if ($Name.length -gt 60) { $Name = $Name.substring(0, 60) }

            $LogFile = $this.LogFile
            $ConfigObjectList = Get-DLPPolicyValidation -SensitiveTypes $SensitiveTypes -Config $Config -Name $Name -LogFile $LogFile
            Foreach ($ConfigObject in $ConfigObjectList) {
                $this.AddConfig($ConfigObject)
            }
            
            $hasRemediation = $this.Config | Where-Object { $_.RemediationAction -ne ''}
            if ($($hasremediation.count) -gt 0)
            {
                $this.CAMPRemediationInfo = New-Object -TypeName CAMPRemediationInfo -Property @{
                    RemediationAvailable = $True
                    RemediationText      = "You need to connect to Security & Compliance Center PowerShell to execute the below commands. Please follow steps defined in <a href = 'https://docs.microsoft.com/en-us/powershell/exchange/connect-to-scc-powershell?view=exchange-ps'> Connect to Security & Compliance Center PowerShell</a>."
                }
            }
            $this.ExpandResults = $True
        }
        $this.Completed = $True
    }
        
    }

}
# SIG # Begin signature block
# MIIlugYJKoZIhvcNAQcCoIIlqzCCJacCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBmTOBx3M/flStT
# 7S6UQSe+5wV/SXez8bWH5qLNoaCINKCCC5YwggT7MIID46ADAgECAhMzAAAE4qOH
# mdFtQCqWAAEAAATiMA0GCSqGSIb3DQEBCwUAMHkxCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBUZXN0aW5nIFBD
# QSAyMDEwMB4XDTIxMDkwMjE5MjYyN1oXDTIyMDkwMTE5MjYyN1owfDELMAkGA1UE
# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc
# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdQ29kZSBTaWdu
# IFRlc3QgKERPIE5PVCBUUlVTVCkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
# AoIBAQC08O5FqM6i91zE1YIK4epCwArU+0xTEScHJ0Vfy32sK+Xf3dM/vHm1iLfc
# 7hhDNwVxfHvaHgjNYC2Qr2cff4F40aShGrc6xyIdmcSiygICYGQrF7FWKQ4thEdX
# HuAMiuVYZQ9Jo+vxOXRJTSa3zsFFrbkCOgun7Vu9UeFxOQT1ByNomsxky0gCRu+P
# YdaqnbOyxNsnCDaGUUHp+D1EpBv4Cdrgy9o359Z4nFUyUm4MVMjpG6jC2n8dPonw
# hAcbjIvyJzA1v88jVCMfDrHt0AkIHN69J4wahtOrJeERgXjklilV0hMRwkVkfpnJ
# 18aw7NqWsDi4ekmBd2EL6d+HljzNAgMBAAGjggF3MIIBczATBgNVHSUEDDAKBggr
# BgEFBQcDAzAdBgNVHQ4EFgQUCekP9tRzR3NLSbCNG+oPPWd/nuYwRQYDVR0RBD4w
# PKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEWMBQGA1UEBRMN
# MjMwMDcyKzQ2NzYwNTAfBgNVHSMEGDAWgBS/ZaKrb3WjTkWWVwXPOYf0wBUcHDBc
# BgNVHR8EVTBTMFGgT6BNhktodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz
# L2NybC9NaWNyb3NvZnQlMjBUZXN0aW5nJTIwUENBJTIwMjAxMCgxKS5jcmwwaQYI
# KwYBBQUHAQEEXTBbMFkGCCsGAQUFBzAChk1odHRwOi8vd3d3Lm1pY3Jvc29mdC5j
# b20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRlc3RpbmclMjBQQ0ElMjAyMDEw
# KDEpLmNydDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCTxe9mJYSi
# GUIIw4imC+gePdQLAeeMTTa8Uwa406/66Su7fVZTGNFMpLwofA1WfxvAX4+5+U+J
# aFJod4KyAdUngWtPlyPmkR0kXQ6mTxvqMFEih/s0mRyW6dHMHrCezmY//89C5zau
# E3LBcI4gqAQ2ZabPxj2+j6+Er8StKv07PigCuM4M16DIQUAY6kNgnate4WoiiQSu
# mXhMiwtUh6jgSnTpOqpNfXk+YJxNoqHH8qqyW7FcQ88jyoxM4LYdAQVN3eYD7eJn
# xfW2nWIbDRaZpBkv9N1t8yObWcyC/YrRLuq3QLqpll20Y1eFsm+gypEoiERqpPUT
# 3p7K5897ABKoMIIGkzCCBHugAwIBAgITMwAAAC01ekaIyQdx2AAAAAAALTANBgkq
# hkiG9w0BAQsFADCBkDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x
# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv
# bjE6MDgGA1UEAxMxTWljcm9zb2Z0IFRlc3RpbmcgUm9vdCBDZXJ0aWZpY2F0ZSBB
# dXRob3JpdHkgMjAxMDAeFw0yMDEyMTAyMDQzMjBaFw0zNTA2MTcyMTA0MTFaMHkx
# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1p
# Y3Jvc29mdCBUZXN0aW5nIFBDQSAyMDEwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
# MIIBCgKCAQEAvzxggau+7P/XF2PypkLRE2KcsBfOukYaeyIuVXOaVLnG1NHKmP53
# Rw2OnfBezPhU7/LPKtRi8ak0CgTXxQWG8hD1TdOWCGaF2wJ9GNzieiOnmildrnkY
# zwxj8Br/gampQz+pC7lR8bNIOvxELl8RxVY6/8oOzYgIwf3H1fU+7+pOG3KLI71F
# N54fcMGnybggc+3zbD2LIQXPdxL+odwH6Q1beAlsMlUQR9A3yMf3+nP+RjTkVhao
# N2RT1jX7w4C2jraGkaEQ1sFK9uN61BEKst4unhCX4IGuEl2IAV3MpMQoUpxg8Arm
# iK9L6VeK7KMPNx4p9l0h09faXQ7JTtuNbQIDAQABo4IB+jCCAfYwDgYDVR0PAQH/
# BAQDAgGGMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFOqfXzO2
# 0F+erestpsECu0A4y+e1MB0GA1UdDgQWBBS/ZaKrb3WjTkWWVwXPOYf0wBUcHDBU
# BgNVHSAETTBLMEkGBFUdIAAwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNy
# b3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMBkGCSsGAQQBgjcU
# AgQMHgoAUwB1AGIAQwBBMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUowEE
# fjCIM+u5MZzK64V2Z/xltNEwWQYDVR0fBFIwUDBOoEygSoZIaHR0cDovL2NybC5t
# aWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljVGVzUm9vQ2VyQXV0XzIw
# MTAtMDYtMTcuY3JsMIGNBggrBgEFBQcBAQSBgDB+ME0GCCsGAQUFBzAChkFodHRw
# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Rlc1Jvb0NlckF1dF8y
# MDEwLTA2LTE3LmNydDAtBggrBgEFBQcwAYYhaHR0cDovL29uZW9jc3AubWljcm9z
# b2Z0LmNvbS9vY3NwMA0GCSqGSIb3DQEBCwUAA4ICAQAntNCFsp7MD6QqU3PVbdrX
# MQDI9v9jyPYBEbUYktrctPmvJuj8Snm9wWewiAN5Zc81NQVYjuKDBpb1un4SWVCb
# 4PDVPZ0J87tGzYe9dOJ30EYGeiIaaStkLLmLOYAM6oInIqIwVyIk2SE/q2lGt8Ov
# wcZevNmPkVYjk6nyJi5EdvS6ciPRmW9bRWRT4pWU8bZIQL938LE4lHOQAixrAQiW
# es5Szp2U85E0nLdaDr5w/I28J/Z1+4zW1Nao1prVCOqrosnoNUfVf1kvswfW3FY2
# l1PiAYp8sGyO57GaztXdBoEOBcDLedfcPra9+NLdEF36NkE0g+9dbokFY7KxhUJ8
# WpMiCmN4yj9LKFLvQbctGMJJY9EwHFifm2pgaiaafKF1Gyz+NruJzEEgpysMo/f9
# AVBQ/qCdPQQGEWp3QDIaef4ts9QTx+RmDKCBDMTFLgFmmhbtUY0JWjLkKn7soz/L
# IcDUle/p5TiFD4VhfZnAcvYQHXfuslnyp+yuhWzASnAQNnOIO6fc1JFIwkDkcM+k
# /TspfAajzHooSAwXkrOWrjRDV6wI0YzMVHrEyQ0hZ5NnIXbL3lrTkOPjf3NBu1na
# SNEaySduStDbFVjV3TXoENEnZiugJKYSwmhzoYHM1ngipN5rNdqJiK5ukp6E8LDz
# i3l5/7XctJQY3+ZgHDJosjGCGXowghl2AgEBMIGQMHkxCzAJBgNVBAYTAlVTMRMw
# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN
# aWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBUZXN0aW5n
# IFBDQSAyMDEwAhMzAAAE4qOHmdFtQCqWAAEAAATiMA0GCWCGSAFlAwQCAQUAoIGu
# MBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgor
# BgEEAYI3AgEVMC8GCSqGSIb3DQEJBDEiBCCV5g495ZNgfmuql+huRlM5nXzg4PJu
# QTg+Gcdx7BezzTBCBgorBgEEAYI3AgEMMTQwMqAUgBIATQBpAGMAcgBvAHMAbwBm
# AHShGoAYaHR0cDovL3d3dy5taWNyb3NvZnQuY29tMA0GCSqGSIb3DQEBAQUABIIB
# AD1hLQ8GXdAVBmC+3L1/TEwi86Jba6r3JDXuPuZM7mt1egeSLouK2DrCgnktL7aV
# 5g2AIJqOChpUeXvqE6Ak0CwxLU3VmpclMyfz8CRSk8q63QNKa1DkfUW2B0bvsCH9
# PCVbXa5aHEP3FTfbaSRVjF1m2GE9vx06z/dXPE/gcck79PZEvhhIrBduaMr3WbWN
# H95e4NCpJzGjd6/thjX9aMWscF8A4iWvKyv7pDV4R62HJVW8k0cdUcq6a0mQjKMm
# 5rCfCCf1N8zYXlPw5vLhB0l9LFiNOJ+J1cED37MXWBfsExAGo9SNxHDNjfTNEP4z
# JDFEYkzEXO9eX2hEcMtQ+PahghcJMIIXBQYKKwYBBAGCNwMDATGCFvUwghbxBgkq
# hkiG9w0BBwKgghbiMIIW3gIBAzEPMA0GCWCGSAFlAwQCAQUAMIIBVQYLKoZIhvcN
# AQkQAQSgggFEBIIBQDCCATwCAQEGCisGAQQBhFkKAwEwMTANBglghkgBZQMEAgEF
# AAQgrffuLcZVisxQpgRhwPDjCHZyQQFNAUw6z9Vbhh1aSqcCBmKEr/+AgRgTMjAy
# MjA2MTAxMDA1MDEuNTMzWjAEgAIB9KCB1KSB0TCBzjELMAkGA1UEBhMCVVMxEzAR
# BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1p
# Y3Jvc29mdCBDb3Jwb3JhdGlvbjEpMCcGA1UECxMgTWljcm9zb2Z0IE9wZXJhdGlv
# bnMgUHVlcnRvIFJpY28xJjAkBgNVBAsTHVRoYWxlcyBUU1MgRVNOOjg5N0EtRTM1
# Ni0xNzAxMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloIIR
# XDCCBxAwggT4oAMCAQICEzMAAAGrCQnvq2PU6KkAAQAAAaswDQYJKoZIhvcNAQEL
# BQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT
# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE
# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwHhcNMjIwMzAyMTg1MTI4
# WhcNMjMwNTExMTg1MTI4WjCBzjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
# b3JhdGlvbjEpMCcGA1UECxMgTWljcm9zb2Z0IE9wZXJhdGlvbnMgUHVlcnRvIFJp
# Y28xJjAkBgNVBAsTHVRoYWxlcyBUU1MgRVNOOjg5N0EtRTM1Ni0xNzAxMSUwIwYD
# VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0B
# AQEFAAOCAg8AMIICCgKCAgEAyZ1LWjl16EBJSyxwurLHbCb9aKs1R+qQYHKYMi1j
# MSegq2SGt3vA2wmziD4G4ze4FfzVac7bvSWSsLR7WaYOpC3jbROZvyXCyNAozqYR
# o1Ah9cOuietU3drDWXH1sB/tVkQDeQcWqXpgA7eSNDo9+0DiJUdfclW/3ye2ORu2
# rMp4kxo1Z3x0FoAPdEKWIyhqNMMZvJg0pO/EGFYgvInxZh0n80EOmo/NCX6nGbpl
# lVJ4FAAg65tmNTS9+kQLEcLm8jUSuupqkb7SgGGE436CWVWSU8BZm/aK/SaCMJOP
# tg0pfvIvbHZO+u8dWrkY81rl81unLf23ly+KJiox/VFlVlxx2v7a8CmTmJvlrg7x
# KICA9JTBgag7BtkbWiceKPQBM8uSApR+Bo/MV93kllJtGXZeDfjv8uNZAtH4qMDI
# AIVvTpupbO8e1AlM0PxjSPljZIGdIKpXbM0dJW2zj5pR+RSGwpL4YBdLePldSBgD
# tIw2iDvo2eyzmXTWcRfuwcN1jKRiHO5AoWtPvRdVNl5fbm1IF/LdVpzNh3UlIj/3
# A4apsVTnY3KuWwDWqKbE6Gy52zs/Gj6M7dGNX+QL4AQ6hVpcN2aKexzc+2UEJWH+
# yBiej0BTKZuVJGZ57WDCWeVknS6Icoj2rYcWBlYzXTI8bmBW3SmteckWLVbGaaD4
# Ef8CAwEAAaOCATYwggEyMB0GA1UdDgQWBBQUW87yjV41xIIhBky+oZ900v6mqjAf
# BgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQ
# hk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQl
# MjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBe
# MFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Nl
# cnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAM
# BgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEBCwUA
# A4ICAQDKS5SBNzUoyzMyCwduGCOAQa/90IcV/RvL30LjlJHvvT+50I016qVPrXQS
# HPXfEYVTodyL5MtQ9SeG9SdK7PvGSJZGu7lGNlmZKicRW/yelrfPVC95R+eC3KLQ
# l3qqVLKSgRUnq0O5HUrD3FT3K+2FlaFCz/KbI7CH6bG3QL3Bt4sn3Z6va9z2XLXa
# kXFsI0Mn6ZDu/nbSEC+t5apnTYY4mHDRHhzWI/f2I0HMc6jP4Ow7SxiPCFrP0eu9
# gwTM4PUwl0s9Z9QWxn/+JN3ePMTKSTTZaOdk3Mh7YQ1+ZD8puUZcd5J7wliqKZMX
# GXmR4x8tQQuMCHSaFDW8sIlnbQHALg7nsSDvI79i4Gej7hGtXQIPaCngE7XQoVbZ
# JD8yG9FYrsduBLoHO3vSuQh5JS2julGQcyqueG5shNxd12TLoa1mybAzeG+pe5K0
# x5TVbk03ccDzKmM8t39uiZ8bH3oe7Dw6t+1xC+Tu2F027gmEDIpRdQ/t0owIl+s5
# 2mWDSPW0TRqIT6kNNJBWY/MZ7MIvjayXI8lVem7jHETSGkAKva5rQse/8sHpFXkL
# gI7gyz+l9qX/8Xc76Ell7mLF6/Mo2RddvE85rVH5Iitb+sdkzpEgMtMnFMYUMzWF
# APJp8a71L9ru6aS+KWAEc3Fl+TQhgTtFFYlwbuiJj4UZ3HVyzTCCB3EwggVZoAMC
# AQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNV
# BAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4w
# HAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29m
# dCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIy
# NVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
# b3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAw
# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9
# DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2
# Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N
# 7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXc
# ag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJ
# j361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjk
# lqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37Zy
# L9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M
# 269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLX
# pyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLU
# HMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode
# 2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEA
# ATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYE
# FJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEB
# MEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv
# RG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEE
# AYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB
# /zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEug
# SaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9N
# aWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsG
# AQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jv
# b0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt
# 4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsP
# MeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++
# Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9
# QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2
# wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aR
# AfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5z
# bcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nx
# t67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3
# Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+AN
# uOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/Z
# cGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggLPMIICOAIBATCB/KGB1KSB0TCB
# zjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl
# ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEpMCcGA1UECxMg
# TWljcm9zb2Z0IE9wZXJhdGlvbnMgUHVlcnRvIFJpY28xJjAkBgNVBAsTHVRoYWxl
# cyBUU1MgRVNOOjg5N0EtRTM1Ni0xNzAxMSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt
# ZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQBbqHr/bhYKjtZnPoIRUB4v
# O1yYPqCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u
# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp
# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqG
# SIb3DQEBBQUAAgUA5k1/8jAiGA8yMDIyMDYxMDEyMzE0NloYDzIwMjIwNjExMTIz
# MTQ2WjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDmTX/yAgEAMAcCAQACAg0kMAcC
# AQACAhFiMAoCBQDmTtFyAgEAMDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkK
# AwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZIhvcNAQEFBQADgYEAlFOF
# RvLNv9hUwqInQhkQlmSWHvAZwbKCdkzbcVsTVZp0btCY/17V3QgRAh0TBS2Os2vR
# pmT95C8cw+g+A4c7dSX/+GVnDJQg+osVzsp/PqCNOvhmx1+teSJlUfWWTYAXZV1J
# 9vfnOLMoAB+U/pGPWDKfmRSmxaQQY8WxUiZtgykxggQNMIIECQIBATCBkzB8MQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy
# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAasJCe+rY9ToqQABAAABqzAN
# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G
# CSqGSIb3DQEJBDEiBCD7mRTMuHjJzSqAp+dQlahQ8rsZiESEkQst49S2i12/rjCB
# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIA4cr/qwhWARVJUPcCu+To7JAq9H
# EUcrKtpTNs3X8ApXMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh
# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD
# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw
# MTACEzMAAAGrCQnvq2PU6KkAAQAAAaswIgQgmddJkbDCeeBoA9qYthoU6uz/Jg58
# HvHDtnllEfnXG6cwDQYJKoZIhvcNAQELBQAEggIAMUtMY2SkNOlJoVHmd3zTly3j
# MnrABjMs1ktdGLAubvDqwOeyhsx11ErfU12k3ZlBh0TJrCae+Ow7R11oXzI+ulzT
# Y3cOXwmG/zfnQHWr604tdTjDhqtj+08NsSbS63ldvOAhLpi/9STCoT/hUy1w+rBV
# D5JDdf4mCz2nDs9Plc7UffOh1+v2PpNGc8rxUHPZW/hDFxToQrSnfStP/GnN0TLq
# gFyZMOn/59QnVtONgyOYcFp9CT+7Yj2dM+dpAD+6F6UMiV18cyX7KA050ZTWf2Gl
# JFDqs8+e4TXGtSxSdpjHM8P/hli4mvl87YylyV9E3XW+QKVybnTfwn/Oqw0HKQxt
# IbQ1pVD2KSLapEhIlcdkhWh3cUzIriAPq3FqkbDPjRpkf0fCk+qfppeVkebLagzb
# ZmRQiTdpACN7Vn+UvAxLJvcMT+dn434zm22U6ScFGdi4VpV7Jr6Olt/DVx5Ebom0
# re+dPgvKUYm/EtdX2Dko3aVBm3k5bFpu23sYmGP94SQknFQ+WrxE4NhHu+oaqum+
# NzIVonZp8EdvYmWsZaVisUESKF0lBEWPpSSNigH4zJGUm3SD2EAYal1z4HkGdixQ
# 2McWmpGNbwKo6s+D7j7h9RLyTXNsie7I7VHab4T617OinugU94FxJ38Ytt+uHl4Q
# 5n2b/ECF0yB/EGu3D0w=
# SIG # End signature block