New-PSSentinelOneApiRequest.ps1
Function New-PSSentinelOneApiRequest { <# .SYNOPSIS Create SentineOne API request. .PARAMETER ApiToken Authorization token. .PARAMETER Method Rest API method. .PARAMETER Uri API uri. .PARAMETER Headers Use own headers. .PARAMETER Body Hashtable or JSON body. .EXAMPLE $Body = @{ filter = @{ computerName = $ComputerName ids = @($ComputerId) } } $Params = @{ Uri = "https://euce1-103.sentinelone.net/web/api/v2.1/agents/actions/decommission" Method = "POST" Body = ($Body | ConvertTo-Json) ApiToken = $ApiToken } $Request = New-PSSentinelOneApiRequest @Params .EXAMPLE $Body = @{ tenant = $true } $Params = @{ Uri = "https://euce1-103.sentinelone.net/web/api/v2.1/restrictions" Method = "GET" Body = $Body ApiToken = $ApiToken } $Request = New-PSSentinelOneApiRequest @Params .NOTES Author: Michal Gajda #> [CmdletBinding()] [OutputType([System.Collections.Hashtable])] param ( [Parameter(Mandatory = $true,ParameterSetName="ApiToken")] [String]$ApiToken, [Parameter(Mandatory = $true)] [ValidateSet("GET", "POST", "PUT", "DELETE")] [String]$Method, [Parameter(Mandatory = $true)] [String]$Uri, [Parameter(Mandatory = $true,ParameterSetName="Headers")] [Hashtable]$Headers, [Parameter()] $Body ) #Load assembly System.Web Add-Type -AssemblyName System.Web $UriRequest = [System.UriBuilder]$Uri #Build request headers if(!$Headers) { $Headers = @{} $Headers.Add("Authorization","ApiToken $ApiToken") } #Build core request $Request = @{} $Request.Add("Method",$Method) $Request.Add("Headers",$Headers) Write-Debug "Method: $Method" #Build request params if($Body) { if($Method -eq "GET") { #For GET method $QueryString = [System.Web.HttpUtility]::ParseQueryString($UriRequest.Query) ForEach($Item in $Body.GetEnumerator()) { if($null -eq $QueryString[$Item.Name]) { #Add new param $QueryString.Add($Item.Name, $Item.Value) } else { #Set overwrite exist param $QueryString.Set($Item.Name, $Item.Value) } } $UriRequest.Query = $QueryString.ToString() Write-Debug "Params: $($QueryString.ToString())" } else { #For non GET methods if($Body -is "Hashtable") { $Body = $Body | ConvertTo-Json } $Request.Add("Body",$Body) $Request.Add("ContentType", "application/json") Write-Debug "Params: $Body" } } #Build Uri $Request.Add("Uri",$UriRequest.Uri.OriginalString) Write-Verbose $UriRequest.Uri.OriginalString return $Request } # SIG # Begin signature block # MIIuIwYJKoZIhvcNAQcCoIIuFDCCLhACAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB # gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR # AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUuNuLPicqtTyCsU3EwnqOovOa # YkKggiZ6MIIFyTCCBLGgAwIBAgIQG7WPJSrfIwBJKMmuPX7tJzANBgkqhkiG9w0B # AQwFADB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dp # ZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 # MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMB4XDTIxMDUzMTA2 # NDMwNloXDTI5MDkxNzA2NDMwNlowgYAxCzAJBgNVBAYTAlBMMSIwIAYDVQQKExlV # bml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlm # aWNhdGlvbiBBdXRob3JpdHkxJDAiBgNVBAMTG0NlcnR1bSBUcnVzdGVkIE5ldHdv # cmsgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL35ePjm1YAM # ZJ2GG5ZkZz8iOh51AX3v+1xnjMnMXGupkea5QuUgS5vam3u5mV3Zm4BL14RAKyfT # 6Lowuz4JGqdJle8rQCTCl8en7psl76gKAJeFWqqd3CnJ4jUH63BNStbBs1a4oUE4 # m9H7MX+P4F/hsT8PjhZJYNcGjRj5qiYQqyrT0NFnjRtGvkcw1S5y0cVj2udjeUR+ # S2MkiYYuND8pTFKLKqfA4pEoibnAW/kd2ecnrf+aApfBxlCSmwIsvam5NFkKv4RK # /9/+s5/r2Z7gmCPspmt3FirbzK07HKSH3EZzXhliaEVX5JCCQrtC1vBh4MGjPWaj # XfQY7ojJjRdFKZkydQIx7ikmyGsC5rViRX83FVojaInUPt5OJ7DwQAy8TRfLTaKz # HtAGWt32k89XdZn1+oYaZ3izv5b+NNy951JW5bPldXvXQZEF3F1p45UNQ7n8g5Y5 # lXtsgFpPE3LG130pekS6UqQq1UFGCSD+IqC2WzCNvIkM1ddw+IdS/drvrFEuB7NO # /tAJ2nDvmPpW5m3btVdL3OUsJRXIni54TvjanJ6GLMpX8xrlyJKLGoKWesO8UBJp # 2A5aRos66yb6I8m2sIG+QgCk+Nb+MC7H0kb25Y51/fLMudCHW8wGEGC7gzW3Xmfe # R+yZSPGkoRX+rYxijjlVTzkWubFjnf+3AgMBAAGjggE+MIIBOjAPBgNVHRMBAf8E # BTADAQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAfBgNVHSMEGDAW # gBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYwLwYDVR0fBCgw # JjAkoCKgIIYeaHR0cDovL2NybC5jZXJ0dW0ucGwvY3RuY2EuY3JsMGsGCCsGAQUF # BwEBBF8wXTAoBggrBgEFBQcwAYYcaHR0cDovL3N1YmNhLm9jc3AtY2VydHVtLmNv # bTAxBggrBgEFBQcwAoYlaHR0cDovL3JlcG9zaXRvcnkuY2VydHVtLnBsL2N0bmNh # LmNlcjA5BgNVHSAEMjAwMC4GBFUdIAAwJjAkBggrBgEFBQcCARYYaHR0cDovL3d3 # dy5jZXJ0dW0ucGwvQ1BTMA0GCSqGSIb3DQEBDAUAA4IBAQBRwqFYFiIQi/yGMdTC # MtNc+EuiL2o+TfirCB7t1ej65wgN7LfGHg6ydQV6sQv613RqAAYfpM6q8mt92BHA # EQjUDk1hxTqo+rHh45jq4mP9QfWTfQ28XZI7kZplutBfTL5MjWgDEBbV8dAEioUz # +TfnWy4maUI8us281HrpTZ3a50P7Y1KAhQTEJZVV8H6nnwHFWyj44M6GcKYnOzn7 # OC6YU2UidS3X9t0iIpGW691o7T+jGZfTOyWI7DYSPal+zgKNBZqSpyduRbKcYoY3 # DaQzjteoTtBKF0NMxfGnbNIeWGwUUX6KVKH27595el2BmhaQD+G78UoA+fndvu2q # 7M4KMIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0F # ADCBgDELMAkGA1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVz # IFMuQS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEk # MCIGA1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29yayBDQSAyMCIYDzIwMTExMDA2 # MDgzOTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQTDEiMCAGA1UE # ChMZVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENl # cnRpZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBO # ZXR3b3JrIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj4 # 5tWADGSdhhuWZGc/IjoedQF97/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eE # QCsn0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+oCgCXhVqqndwpyeI1B+twTUrWwbNW # uKFBOJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40bRr5HMNUuctHFY9rn # Y3lEfktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2puTRZ # Cr+ESv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDB # oz1mo130GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0X # y02isx7QBlrd9pPPV3WZ9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5 # /IOWOZV7bIBaTxNyxtd9KXpEulKkKtVBRgkg/iKgtlswjbyJDNXXcPiHUv3a76xR # LgezTv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pyehizKV/Ma5ciSixqClnrD # vFASadgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vMBhBgu4M1 # t15n3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8E # BTADAQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8E # BAMCAQYwDQYJKoZIhvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtP # U2sQF/xlhMcQSZDe28cmk4gmb3DWAl45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1i # HkTfCVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuAL55MYIR4PSFk1vtBHxgP58l1 # cb29XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMoclm2q8KMZiYc # dywmdjWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tM # pkT/WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVhe # O/jbAoJnwTnbw3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqA # nksqP/ujmv5zMnHCnsZy4YpoJ/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+ # D4Kob7a6bINDd82Kkhehnlt4Fj1F4jNy3eFmypnTycUm/Q1oBEauttmbjL4ZvrHG # 8hnjXALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLXis7VmFxWlgPF7ncG # Nf/P5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7zAYs # psbiDrW5viSPMIIGlTCCBH2gAwIBAgIRAPFkJYwJtuJ74g4yYI5L9KgwDQYJKoZI # hvcNAQEMBQAwVjELMAkGA1UEBhMCUEwxITAfBgNVBAoTGEFzc2VjbyBEYXRhIFN5 # c3RlbXMgUy5BLjEkMCIGA1UEAxMbQ2VydHVtIFRpbWVzdGFtcGluZyAyMDIxIENB # MB4XDTIxMDUxOTA1NDI0NloXDTMyMDUxODA1NDI0NlowUDELMAkGA1UEBhMCUEwx # ITAfBgNVBAoMGEFzc2VjbyBEYXRhIFN5c3RlbXMgUy5BLjEeMBwGA1UEAwwVQ2Vy # dHVtIFRpbWVzdGFtcCAyMDIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC # AgEA1WG+gAC93YRj7hJlmB14VItG+saRFhq6PR58vjQY9ui/eIJiPJDjVWHbtgs/ # QX7ZIsr5OPtzBQ65KL2WUPFg3Jhl5bV+MQMDwHI1xG14BGdHsRD+QHtm5MCpU4sl # FwmqtA/SRGiubeCqu6x+653SneZF+ygEXDBVhDfopFdXIBpSoKpiUk5NAb24G3Ou # 6KJSIbaIXBJLWWRbreVScUydTirEUdxVJjfuEKwJNESL+HcNmeLFopam3QWgUv+Y # ai7efLKbYjkZMZ4o6991Z74iz9vsG1skDOZPwIKyo/JZOgOQvFf3UoY+pf06qkTM # pBgCjpougnLxm1A4mzypI5cZQC3eJhyxbo1qBPdRonClCn1ZC7BaqZW/3Tz10I8N # kwpmWwHoA0JbAKaZ3YvVFGcR7z3K8sstBModcuBp+179bxMJ8AYrGYwe9jMvJM1E # NII8T9ur4QZLxdgonNep1QB8chjj5tGNL+5RZnEsmFVoNSeemGW/kACWQi+wSfQg # UiaQFzRsXDVETdG2gAZWUx5922wTzgYTkmPb2xsC9+JzpkxaURuZj+h0FV3PxDvX # I/OemvWrngxss9oXJTCGYoxhGua8GnBrT8NR81qYDQDiNuAoQwUUPGJg9tyDda5i # 5cwjLEWfcBWCLzQ7TCVTEkIAtPl0ARTznuvZD8MYDzTeAgsCAwEAAaOCAWIwggFe # MAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFMVHEk5yV7ZEFGuIcRoUrDG5P7oIMB8G # A1UdIwQYMBaAFL5UAi+/QGxzQ86sCSVOnkNEGu7gMA4GA1UdDwEB/wQEAwIHgDAW # BgNVHSUBAf8EDDAKBggrBgEFBQcDCDAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8v # Y3JsLmNlcnR1bS5wbC9jdHNjYTIwMjEuY3JsMG8GCCsGAQUFBwEBBGMwYTAoBggr # BgEFBQcwAYYcaHR0cDovL3N1YmNhLm9jc3AtY2VydHVtLmNvbTA1BggrBgEFBQcw # AoYpaHR0cDovL3JlcG9zaXRvcnkuY2VydHVtLnBsL2N0c2NhMjAyMS5jZXIwQAYD # VR0gBDkwNzA1BgsqhGgBhvZ3AgUBCzAmMCQGCCsGAQUFBwIBFhhodHRwOi8vd3d3 # LmNlcnR1bS5wbC9DUFMwDQYJKoZIhvcNAQEMBQADggIBADdzzDC3wl+J5qp0rB1N # q2YRP3ZKq3UmC7yN1PYuPYcbPovvaKOZiZeLqzy2SdMSM+gewhxQTVvXRcIGoZxT # F4k+0Jz7meQgMHy//Qn7AC913Z0tAFpZfuyEqJkaPHedW36Rx7dz948fQuiJodQO # 9yUqfdAqtDaj6pxH5a1cWF/rGGtkjvbxrETGLIVO7sxNVeXGFlqBVDGgx6cELh+A # zV4mTug+3/EBlp1zR17ukt0pWmAxuGKMe0iFtbUL9I7JJhdb3TX6MVQMpkBkXTS7 # BswF5+jjwFIsNcUOjNaqYyuFJyk1IhSX74A1209XL62LCa8mwf+NbKPg7ALdMoys # W6UuYj+0qcch7J3IdFXCOeLCH9Cuun+CyRqHAaQ0ym1NQDqtzrx21aiO1cKrPkxg # ru0yqq0y9jUE0QwMR5LKOxbR/ONUdgNpb2EhQ3xsfOwdTbz1mFN5mPxkbJkMfkYA # PD5f+zb6e2QGPgFPJg1a9il6xT+Lp6bMFQUJR8bSDsc+o3sn3SyBtqBSZZd4qXAE # h2r/6G2BLfxdRkZSfphSELSg2ncVAZn4UZYCIGLxBLbiRhER7sXzA9uoy5osbvEk # zxkUXKPkeQXYLvqhW58pin7lzuLEfeiWKmjjsYpXDf8a+5rNd4ku8KgDaXdrcSmY # z8t8HVp4lUHLi+8glw9rhHNtMIIGuTCCBKGgAwIBAgIRAJmjgAomVTtlq9xuhKaz # 6jkwDQYJKoZIhvcNAQEMBQAwgYAxCzAJBgNVBAYTAlBMMSIwIAYDVQQKExlVbml6 # ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNh # dGlvbiBBdXRob3JpdHkxJDAiBgNVBAMTG0NlcnR1bSBUcnVzdGVkIE5ldHdvcmsg # Q0EgMjAeFw0yMTA1MTkwNTMyMThaFw0zNjA1MTgwNTMyMThaMFYxCzAJBgNVBAYT # AlBMMSEwHwYDVQQKExhBc3NlY28gRGF0YSBTeXN0ZW1zIFMuQS4xJDAiBgNVBAMT # G0NlcnR1bSBDb2RlIFNpZ25pbmcgMjAyMSBDQTCCAiIwDQYJKoZIhvcNAQEBBQAD # ggIPADCCAgoCggIBAJ0jzwQwIzvBRiznM3M+Y116dbq+XE26vest+L7k5n5TeJkg # H4Cyk74IL9uP61olRsxsU/WBAElTMNQI/HsE0uCJ3VPLO1UufnY0qDHG7yCnJOvo # SNbIbMpT+Cci75scCx7UsKK1fcJo4TXetu4du2vEXa09Tx/bndCBfp47zJNsamzU # yD7J1rcNxOw5g6FJg0ImIv7nCeNn3B6gZG28WAwe0mDqLrvU49chyKIc7gvCjan3 # GH+2eP4mYJASflBTQ3HOs6JGdriSMVoD1lzBJobtYDF4L/GhlLEXWgrVQ9m0pW37 # KuwYqpY42grp/kSYE4BUQrbLgBMNKRvfhQPskDfZ/5GbTCyvlqPN+0OEDmYGKlVk # OMenDO/xtMrMINRJS5SY+jWCi8PRHAVxO0xdx8m2bWL4/ZQ1dp0/JhUpHEpABMc3 # eKax8GI1F03mSJVV6o/nmmKqDE6TK34eTAgDiBuZJzeEPyR7rq30yOVw2DvetlmW # ssewAhX+cnSaaBKMEj9O2GgYkPJ16Q5Da1APYO6n/6wpCm1qUOW6Ln1J6tVImDyA # B5Xs3+JriasaiJ7P5KpXeiVV/HIsW3ej85A6cGaOEpQA2gotiUqZSkoQUjQ9+hPx # DVb/Lqz0tMjp6RuLSKARsVQgETwoNQZ8jCeKwSQHDkpwFndfCceZ/OfCUqjxAgMB # AAGjggFVMIIBUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTddF1MANt7n6B0 # yrFu9zzAMsBwzTAfBgNVHSMEGDAWgBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNV # HQ8BAf8EBAMCAQYwEwYDVR0lBAwwCgYIKwYBBQUHAwMwMAYDVR0fBCkwJzAloCOg # IYYfaHR0cDovL2NybC5jZXJ0dW0ucGwvY3RuY2EyLmNybDBsBggrBgEFBQcBAQRg # MF4wKAYIKwYBBQUHMAGGHGh0dHA6Ly9zdWJjYS5vY3NwLWNlcnR1bS5jb20wMgYI # KwYBBQUHMAKGJmh0dHA6Ly9yZXBvc2l0b3J5LmNlcnR1bS5wbC9jdG5jYTIuY2Vy # MDkGA1UdIAQyMDAwLgYEVR0gADAmMCQGCCsGAQUFBwIBFhhodHRwOi8vd3d3LmNl # cnR1bS5wbC9DUFMwDQYJKoZIhvcNAQEMBQADggIBAHWIWA/lj1AomlOfEOxD/PQ7 # bcmahmJ9l0Q4SZC+j/v09CD2csX8Yl7pmJQETIMEcy0VErSZePdC/eAvSxhd7488 # x/Cat4ke+AUZZDtfCd8yHZgikGuS8mePCHyAiU2VSXgoQ1MrkMuqxg8S1FALDtHq # nizYS1bIMOv8znyJjZQESp9RT+6NH024/IqTRsRwSLrYkbFq4VjNn/KV3Xd8dpmy # QiirZdrONoPSlCRxCIi54vQcqKiFLpeBm5S0IoDtLoIe21kSw5tAnWPazS6sgN2o # XvFpcVVpMcq0C4x/CLSNe0XckmmGsl9z4UUguAJtf+5gE8GVsEg/ge3jHGTYaZ/M # yfujE8hOmKBAUkVa7NMxRSB1EdPFpNIpEn/pSHuSL+kWN/2xQBJaDFPr1AX0qLgk # XmcEi6PFnaw5T17UdIInA58rTu3mefNuzUtse4AgYmxEmJDodf8NbVcU6VdjWtz0 # e58WFZT7tST6EWQmx/OoHPelE77lojq7lpsjhDCzhhp4kfsfszxf9g2hoCtltXhC # X6NqsqwTT7xe8LgMkH4hVy8L1h2pqGLT2aNCx7h/F95/QvsTeGGjY7dssMzq/rSs # hFQKLZ8lPb8hFTmiGDJNyHga5hZ59IGynk08mHhBFM/0MLeBzlAQq1utNjQprztZ # 5vv/NJy8ua9AGbwkMWkOMIIGuTCCBKGgAwIBAgIRAOf/acc7Nc5LkSbYdHxopYcw # DQYJKoZIhvcNAQEMBQAwgYAxCzAJBgNVBAYTAlBMMSIwIAYDVQQKExlVbml6ZXRv # IFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv # biBBdXRob3JpdHkxJDAiBgNVBAMTG0NlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0Eg # MjAeFw0yMTA1MTkwNTMyMDdaFw0zNjA1MTgwNTMyMDdaMFYxCzAJBgNVBAYTAlBM # MSEwHwYDVQQKExhBc3NlY28gRGF0YSBTeXN0ZW1zIFMuQS4xJDAiBgNVBAMTG0Nl # cnR1bSBUaW1lc3RhbXBpbmcgMjAyMSBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP # ADCCAgoCggIBAOkSHwQ17bldesWmlUG+imV/TnfRbSV102aO2/hhKH9/t4NAoVoi # pzu0ePujH67y8iwlmWuhqRR4xLeLdPxolEL55CzgUXQaq+Qzr5Zk7ySbNl/GZloF # iYwuzwWS2AVgLPLCZd5DV8QTF+V57Y6lsdWTrrl5dEeMfsxhkjM2eOXabwfLy6UH # 2ZHzAv9bS/SmMo1PobSx+vHWST7c4aiwVRvvJY2dWRYpTipLEu/XqQnqhUngFJtn # jExqTokt4HyzOsr2/AYOm8YOcoJQxgvc26+LAfXHiBkbQkBdTfHak4DP3UlYolIC # ZHL+XSzSXlsRgqiWD4MypWGU4A13xiHmaRBZowS8FET+QAbMiqBaHDM3Y6wohW07 # yZ/mw9ZKu/KmVIAEBhrXesxifPB+DTyeWNkeCGq4IlgJr/Ecr1px6/1QPtj66yvX # l3uauzPPGEXUk6vUym6nZyE1IGXI45uGVI7XqvCt99WuD9LNop9Kd1LmzBGGvxuc # Oo0lj1M3IRi8FimAX3krunSDguC5HgD75nWcUgdZVjm/R81VmaDPEP25Wj+C1rei # cY5CPckLGBjHQqsJe7jJz1CJXBMUtZs10cVKMEK3n/xD2ku5GFWhx0K6eFwe50xL # UIZD9GfT7s/5/MyBZ1Ep8Q6H+GMuudDwF0mJitk3G8g6EzZprfMQMc3DAgMBAAGj # ggFVMIIBUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS+VAIvv0Bsc0POrAkl # Tp5DRBru4DAfBgNVHSMEGDAWgBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8B # Af8EBAMCAQYwEwYDVR0lBAwwCgYIKwYBBQUHAwgwMAYDVR0fBCkwJzAloCOgIYYf # aHR0cDovL2NybC5jZXJ0dW0ucGwvY3RuY2EyLmNybDBsBggrBgEFBQcBAQRgMF4w # KAYIKwYBBQUHMAGGHGh0dHA6Ly9zdWJjYS5vY3NwLWNlcnR1bS5jb20wMgYIKwYB # BQUHMAKGJmh0dHA6Ly9yZXBvc2l0b3J5LmNlcnR1bS5wbC9jdG5jYTIuY2VyMDkG # A1UdIAQyMDAwLgYEVR0gADAmMCQGCCsGAQUFBwIBFhhodHRwOi8vd3d3LmNlcnR1 # bS5wbC9DUFMwDQYJKoZIhvcNAQEMBQADggIBALiTWXfJTBX9lAcIoKd6oCzwQZOf # ARQkt0OmiQ390yEqMrStHmpfycggfPGlBHdMDDYhHDVTGyvY+WIbdsIWpJ1BNRt9 # pOrpXe8HMR5sOu71AWOqUqfEIXaHWOEs0UWmVs8mJb4lKclOHV8oSoR0p3GCX2tV # O+XF8Qnt7E6fbkwZt3/AY/C5KYzFElU7TCeqBLuSagmM0X3Op56EVIMM/xlWRaDg # Rna0hLQze5mYHJGv7UuTCOO3wC1bzeZWdlPJOw5v4U1/AljsNLgWZaGRFuBwdF62 # t6hOKs86v+jPIMqFPwxNJN/ou22DqzpP+7TyYNbDocrThlEN9D2xvvtBXyYqA7jh # YY/fW9edUqhZUmkUGM++Mvz9lyT/nBdfaKqM5otK0U5H8hCSL4SGfjOVyBWbbZlU # IE8X6XycDBRRKEK0q5JTsaZksoKabFAyRKJYgtObwS1UPoDGcmGirwSeGMQTJSh+ # WR5EXZaEWJVA6ZZPBlGvjgjFYaQ0kLq1OitbmuXZmX7Z70ks9h/elK0A8wOg8oiN # Vd3o1bb59ms1QF4OjZ45rkWfsGuz8ctB9/leCuKzkx5Rt1WAOsXy7E7pws+9k+jr # ePrZKw2DnmlNaT19QgX2I+hFtvhC6uOhj/CgjVEA4q1i1OJzpoAmre7zdEg+kZcF # IkrDHgokA5mcIMK1MIIGwDCCBKigAwIBAgIQPy8Gn1xriJ6aZcVTBnSWFTANBgkq # hkiG9w0BAQsFADBWMQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEg # U3lzdGVtcyBTLkEuMSQwIgYDVQQDExtDZXJ0dW0gQ29kZSBTaWduaW5nIDIwMjEg # Q0EwHhcNMjIwNDE0MDkyMTM4WhcNMjUwNDEzMDkyMTM3WjBmMQswCQYDVQQGEwJQ # TDERMA8GA1UEBwwIV2Fyc3phd2ExITAfBgNVBAoMGFBvd2VyQ2xvdWRzIE1pY2hh # bCBHYWpkYTEhMB8GA1UEAwwYUG93ZXJDbG91ZHMgTWljaGFsIEdhamRhMIICIjAN # BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnrfsZFuBAlS9Q0o/cXMBg3t8k615 # 3Crjv1LB0Iwxt8EyhDGSbpAvIB15zypa7YPR9yrXRvS+eQPseeVQpeSqWsuAE68Q # FCnbOQembttmqHt7XqV5WkJPDzvmrr7U/q9HMyb0wO/8Oxb5uVfbSQUzskV9GbBs # qYn6L/LGRYIS/aVUAanPmgFsfxbIPLNSUoIMeYjkkJS78cS2/e5oaSwxcaG4Kp3W # 4wqrizBFeXKmOvjg4VSQQBB+ONuVJDBFZF+dIONjxaB3nv2QOPuWjMfEX/btaQOs # lar3B6CcF47qLtq/8erLPm/UnFMr1CHI16JMgLU7cq1DsBNo1g7854Wz5pbYZ9pc # 7LOsgGk03q8k4HFdH/J4bNkBaGvE2TBYv3zYy/KK1rKav9GdR8DTZA9TIdgeiZw/ # 7pzst34++zAYTJ1s0lUxx/mWAxsGA7IJlG3/Ig+jLxBsy8Isj/N4i+q73LJErCja # HDwdS8qUz/k77hhiHZkIXjX49WNprOujv7Dtu/vSQOI1sTRRUEOmUyE05e333/dW # 6M3ioyPghO8WwLTg5vhrIte2K4YHlFZNWKVTiowYZ144zCfTIfglVn8QKxLPwNGW # R813gAmJsWjLKPIV1ORUglEzLeDI8TxWps+fXtH/fKii5FXxYqEKlPw/ydruP/lB # SXoM2YPd2+og/tUCAwEAAaOCAXgwggF0MAwGA1UdEwEB/wQCMAAwPQYDVR0fBDYw # NDAyoDCgLoYsaHR0cDovL2Njc2NhMjAyMS5jcmwuY2VydHVtLnBsL2Njc2NhMjAy # MS5jcmwwcwYIKwYBBQUHAQEEZzBlMCwGCCsGAQUFBzABhiBodHRwOi8vY2NzY2Ey # MDIxLm9jc3AtY2VydHVtLmNvbTA1BggrBgEFBQcwAoYpaHR0cDovL3JlcG9zaXRv # cnkuY2VydHVtLnBsL2Njc2NhMjAyMS5jZXIwHwYDVR0jBBgwFoAU3XRdTADbe5+g # dMqxbvc8wDLAcM0wHQYDVR0OBBYEFHXAKAmHZQwSjH6oseE9xCBAAeUxMEsGA1Ud # IAREMEIwCAYGZ4EMAQQBMDYGCyqEaAGG9ncCBQEEMCcwJQYIKwYBBQUHAgEWGWh0 # dHBzOi8vd3d3LmNlcnR1bS5wbC9DUFMwEwYDVR0lBAwwCgYIKwYBBQUHAwMwDgYD # VR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQAV8SrARS4ygM/Qr1TNkL+v # uDMlACQ091rNovvah1LHcBpK3V7yDu8/hV8YTyNOF8HGTTXI4ckGOjCDsQ1iFXCd # 0ITtC0nLmQnjuN2UizK5DclwW2hwsliBlNUJQ5twIfLqNBzF3BAwJmlAdXNgJOAE # X07p05Uj/uHHe3NzL5meLTkHBykyhXdEQBaWvcpxHfw6AF6wAnQzwHN3JRMz328O # YyRsG7PTcrJOUsojSgkLTAJ2J6hkX0ZC42+97TTx9TO1J1KpxFQKrPreuGu0AiFE # g0iCExhAeG4ZRVCLsAIXpGY+8jyKz8L9k2PKuwpcjeGzk0qYYfyRkwZVvXYEjxeW # 0Anlu7N4wIIC58+MYN3qI2bkj4V2HS+QMdGMmmaF6tytgrz9P0mGYdMU6e+ZzSOt # LVfQ7KKSP8ppAcH2BUu+ypnpaIbLdgQIwkZiTSw2SSuur1F5WqwDYY4C+Qf1lMsS # LjzWn+jwvQM1s9Rh8TW3jVAmYIw/cJaSCwx+YLGHYpgIU74H7VMjCr8i+NqylaRm # VvS/P7/f/r65H/un8bnx8YJLLHAB9EKqH8fvmJauGUNj86ayPWATS5JsLkkIX/iH # U/48LtnGFDfW7jmSaN/UbRbFS0DBnxbpYjd0gFbXxTftn+MLEbad6uwZZcAuJHuC # nbZHnSzVBT1I9dGgRpEmnDGCBxMwggcPAgEBMGowVjELMAkGA1UEBhMCUEwxITAf # BgNVBAoTGEFzc2VjbyBEYXRhIFN5c3RlbXMgUy5BLjEkMCIGA1UEAxMbQ2VydHVt # IENvZGUgU2lnbmluZyAyMDIxIENBAhA/LwafXGuInpplxVMGdJYVMAkGBSsOAwIa # BQCgeDAYBgorBgEEAYI3AgEMMQowCKACgAChAoAAMBkGCSqGSIb3DQEJAzEMBgor # BgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3 # DQEJBDEWBBRrGPFoA7/EfMmeCedvJ4HXw3hfcTANBgkqhkiG9w0BAQEFAASCAgBZ # zC5nJW+H6/nKwCKwPjYs6rBC5jHm+ozQ7Gn+no2u/a9wqGFikrRky5lrb/1QzYHd # 4HjaUZEYmCT94Q2+40rbLanAJ+uI0nrcxK3cdjOFiCx78A7K01n9klwYOm3EdM85 # je4JtxQD0j9jS3SH3qKbKFhFTM+sPOR5mxzqrz+rJLDLoiplt7kG9AU4NL2512Hg # ljvI+Gc5HIvZlcicITLArimaZTDZe+ChgkFoqZlS/XbCFwV7EC1W6kV2PzutvNtQ # Jib6egVhavw+TMOZBwdX8brvAZuRh/mziGVhE4wZFXBPvSW4aTnx7qipBto1pAbN # EGgaTNJD1nJjSDf01XrQMrOvI0QWG32wD2caAd2b3s0YrtDfSqugOOyugcyCnQOw # Vsjynj68ZxF17nOZ7gyZJynUF8Fr1Hny2DHst4fgIdAwoFvpXMzP0/Yz9p+P+ZG9 # 9C/hm1NZ5NCMXvKh/cXGPjd0EpTfPjhkV0QANlU0VL1berJLjLIp0YTaY9vQyeFN # ClGnkbyKDbOp1id1ZRWdf2D//9xM2PpNP88QYwdSEmSF2zTJDq4ywVkbtLol3Aau # 4XlQpl/o5FG3x7yAUl2OsT3hh5aWBOxVH7BcMjQBz/UMLIiw32RtMMAu8Dm03QF3 # j/TyBlDh6Tmj3Y5V2dd09rmQhqVD4QEUZCUAt17kdqGCBAQwggQABgkqhkiG9w0B # CQYxggPxMIID7QIBATBrMFYxCzAJBgNVBAYTAlBMMSEwHwYDVQQKExhBc3NlY28g # RGF0YSBTeXN0ZW1zIFMuQS4xJDAiBgNVBAMTG0NlcnR1bSBUaW1lc3RhbXBpbmcg # MjAyMSBDQQIRAPFkJYwJtuJ74g4yYI5L9KgwDQYJYIZIAWUDBAICBQCgggFXMBoG # CSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjIwNDE0 # MTI0MzA1WjA3BgsqhkiG9w0BCRACLzEoMCYwJDAiBCAbWb/o5XcrrPZDu3mstI6B # WHhPIcVUrhNHbToaPgXF0zA/BgkqhkiG9w0BCQQxMgQwIaw85+tICtUkYZ2b4puN # Ay+Di2u1LS961Nzobbk3Nuaw2rSip+FHyexo1e5VZxOHMIGgBgsqhkiG9w0BCRAC # DDGBkDCBjTCBijCBhwQU0xHGlTEbjOc/1bVTGKzfWYrhmxMwbzBapFgwVjELMAkG # A1UEBhMCUEwxITAfBgNVBAoTGEFzc2VjbyBEYXRhIFN5c3RlbXMgUy5BLjEkMCIG # A1UEAxMbQ2VydHVtIFRpbWVzdGFtcGluZyAyMDIxIENBAhEA8WQljAm24nviDjJg # jkv0qDANBgkqhkiG9w0BAQEFAASCAgCZNYaR3X/JNM0pH3PbKacx4aelCYt1CjJ0 # ilLnH6xSgD0dc+Jl13Bb0wilQ7mo0tM34gyYNLcRckNMxn+Gyz+H/7Axe34rFc8N # wyb0ehPeCBtvqiYS24kpef3DVHap0wCuZPWacFm55ieOcVQlXbqED3x+0ekISOe9 # v8Rb9WstDSj8ubIT1qhKWLjhooYYtG9betP88dXhAlxX8lKdWdl4DCXOCSSzJtMH # e1B3AXvVpR9uuIbK/NmFIQlvIZu1OxEvqtCgqE3tVU99secmtwInr10np4j2rhel # nHITFs3GpDxugD/odxrO25O+ssdkMInVxz9WhvfFFw9NBDMcbL+pcYm9LS4rHax9 # 14+kAHU41ELj4gpQk79awyv/tj68px1nSbslnEEAV+M5DviK4igfl21h2bHs7pnW # 8trKr0a6Bpp0L/wG8uy4af7rZZ2ngkUO9v1gYlWK1+eq4my8Idhp5rqugxgXFwJD # f7EdktZg4G1ZnhFNVakf6sKRD/HrNeIqjkg0JtoC23dP7FXDzeVugTKjduw07nCW # hIIB/HPBzkqo761nzPYfbeyoCxn8Us4droun1DZe9EBeY6liEtg+yWQ4NjDXdPDF # Nv5QNvSVIC9N4HJJ8RuGSnx0MhAOq1b9RjQ4qHrYYzOVYFCD522dedQJJlsl78aM # sE1Y7Y+Efw== # SIG # End signature block |