Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
$workingDir = 'C:\Scripts\SearchPst'
. "$workingDir\Utilities\DbUtilities.ps1"
. "$workingDir\Utilities\Utilities.ps1"
try { SoEOpen }
catch {
throw "Cannot open DB Connection"
exit
}
# Query for all potential clients
# $qry = 'select * from COMP_2015_Logon_Clients'
# Query for machines with found .pst files
# $qry = 'select a.Id, a.DNSHostName ' +
# 'from COMP_Psts_Completion c ' +
# 'inner join COMP_Accounts a ' +
# 'on c.ComputerId = a.Id ' +
# 'where c.HadErrors = 0'
# Don't remember what was special about the date 7/30/15??
# $qry = 'select distinct a.Id, a.DNSHostName ' +
# 'from COMP_Psts_Completion c ' +
# 'inner join COMP_Accounts a on c.ComputerId = a.Id ' +
# 'where c.HadErrors = 0 '
# 'and Date < ''7/30/15'' ' +
# 'and c.ComputerId not in ( ' +
# 'select ComputerId ' +
# 'from COMP_Psts_Completion ' +
# 'where Date > ''7/30/15'' ' +
# ')'
# Query for computers that could not be remoted into on a previous run
$qry = 'select a.Id, a.DNSHostName ' +
'from COMP_Psts_Completion c ' +
'inner join COMP_Accounts a on c.ComputerId = a.id ' +
'where HadErrors = 1 ' +
'and Message = ''PSRemotingTransportException'' '
$clients = SoEQuery $qry | Get-PsObjects
# Progress reporting during script execution
$progress = @{
Queue = 0
TotalClients = $clients.Count
TotalExe = 0
TotalResults = 0
}
# Remote code
$code = {
param($computerName)
$result = Invoke-Command -ComputerName $computerName -ScriptBlock {
$drives = Get-WmiObject -Class Win32_LogicalDisk | ?{$_.DriveType -eq 3}
foreach($drive in $drives) {
Get-ChildItem -Path "$($drive.DeviceID)\" -Recurse -Filter *.pst | select FullName, Length, CreationTime, LastWriteTime
}
}
$result
}
# Create thread pool
$rsp = [runspacefactory]::CreateRunspacePool(1, 32)
$rsp.Open()
$jobs = New-Object System.Collections.ArrayList
# Throw all jobs into the pool
foreach($client in $clients) {
$ps = [powershell]::Create()
$ps.RunspacePool = $rsp
$ps.AddScript($code).AddArgument($client.DNSHostName) | Out-Null
$job = "" | select handle, ps, id
$job.handle = $ps.BeginInvoke()
$job.ps = $ps
$job.id = $client.Id
$jobs.Add($job) | Out-Null
}
$results = @()
$resultsTable = 'COMP_Psts'
$resultsqryPrefix = "insert into $resultsTable (ComputerId, Path, Size, Creation, LastWrite) values "
$completionTable = 'COMP_Psts_Completion'
$completionQryPrefix = "insert into $completionTable (ComputerId, HadErrors, Message) values "
$cycle = Get-Date
Clear-Host
while ($jobs.Count -gt 0) {
$progress.Queue = $jobs.Count
# collect results
foreach($job in $jobs | ?{$_.handle.IsCompleted -eq $true}) {
$retVal = $job.ps.EndInvoke($job.handle)
$qry = $completionQryPrefix + "(" +
"$($job.id), " +
"'" + ($job.ps.HadErrors | Get-Bit) + "', " +
"'" + ($job.ps.Streams.Error.CategoryInfo.Reason | Quote-Sql) + "'" +
")"
SoEUpdate $qry
if ($retVal.Count -gt 0) {
$results += $retVal
$progress.TotalResults += $retVal.Count
}
$job.ps.Dispose()
$progress.TotalExe++
$jobs.Remove($job)
}
if ($results.Count -gt 0) {
$values = @()
$id = $clients | ?{$_.DNSHostName -eq $results[0].PSComputerName} | select -ExpandProperty Id
foreach ($result in $results) {
$values += "(" +
$id + ", " +
"'" + ($result.FullName | Quote-Sql) + "', " +
$result.Length + ", " +
"'" + ($result.CreationTime | Get-DateTime) + "'," +
"'" + ($result.LastWriteTime | Get-DateTime) + "'" +
")"
}
$qry = $resultsqryPrefix + ($values -join ", ")
SoEUpdate $qry
$results = @()
}
$cycleTime = New-TimeSpan $cycle
if ($cycleTime.Seconds -gt 15) {
Clear-Host
$progress | ft
}
Start-Sleep -Seconds 1
}
SoEClose
# SIG # Begin signature block
# MIIaswYJKoZIhvcNAQcCoIIapDCCGqACAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUd2E/MnmCLF3PXsdtzWb2j+Mz
# FMSgghWhMIIElDCCA3ygAwIBAgIRAJ/qyBGw8WJHpfwg2AUjrOYwDQYJKoZIhvcN
# AQEFBQAwgZUxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJVVDEXMBUGA1UEBxMOU2Fs
# dCBMYWtlIENpdHkxHjAcBgNVBAoTFVRoZSBVU0VSVFJVU1QgTmV0d29yazEhMB8G
# A1UECxMYaHR0cDovL3d3dy51c2VydHJ1c3QuY29tMR0wGwYDVQQDExRVVE4tVVNF
# UkZpcnN0LU9iamVjdDAeFw0xNTA1MDUwMDAwMDBaFw0xNTEyMzEyMzU5NTlaMH4x
# CzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNV
# BAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMSQwIgYDVQQD
# ExtDT01PRE8gVGltZSBTdGFtcGluZyBTaWduZXIwggEiMA0GCSqGSIb3DQEBAQUA
# A4IBDwAwggEKAoIBAQC8NaA2cCKBEcOyg7nTKMY2zSVrqXuyHPabUZzvNfTtCI5e
# OAj4dzwKQuDzcNyj18r1TAvP/yKcCn5o1gmiKoR7pp20qcEz4u8fF0jKOs1G5sWq
# d73jd5r6R1NAKFlDk/GkgervgLVPpwjOum68ynYMl2RZhiS7PYKQqFWxktOgpwWs
# n1MlCBBHmc2Y3mjltFB4o68BzFlDWOR2bn6sx+KeH0+wRy3IDKNJJ4B1jLsGkWUP
# kJv0utGByFxq7BTpJQm/Ixb0lUZAQCG7g5b9hh96yA0QjqL4GQdYf5+9NwJg8qTp
# nUQ/MAXkp3CZUZroF/FVyrJhiWVGp2ryWEZ+qqAHAgMBAAGjgfQwgfEwHwYDVR0j
# BBgwFoAU2u1kdBScFDyr3ZmpvVsoTYs8ydgwHQYDVR0OBBYEFC4tsApEStOHwAIH
# zpd9UGIg/Q+DMA4GA1UdDwEB/wQEAwIGwDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB
# /wQMMAoGCCsGAQUFBwMIMEIGA1UdHwQ7MDkwN6A1oDOGMWh0dHA6Ly9jcmwudXNl
# cnRydXN0LmNvbS9VVE4tVVNFUkZpcnN0LU9iamVjdC5jcmwwNQYIKwYBBQUHAQEE
# KTAnMCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC51c2VydHJ1c3QuY29tMA0GCSqG
# SIb3DQEBBQUAA4IBAQANu61gERu18A3M5kg6ej4OM9wcuerWIP6jTdDMdk7oGNh5
# 39NPmkJkI4opcoo6bGamPDoXqHBFZcZzw9DOiVT7rGkPWLAZy4affrl+61GSv5vd
# 69Fl8CV7iHzevaXItRRRvMCBMIqFOHvmef5nVZOH/k/ojQ7t83KStcKJgG3RWeMd
# DeqxOO4DnQAZpashm3nDzMI+aH69yU1pTbRkUfuyKHTiU4nOnfqt4tvOq3t+BkR0
# /QqjybenMM1J0pJk8SKmuChFdHnpp847M/mDUJR9aMAdScdgeHo8ZCbVvvoKbeQe
# 4QlTj6nFI6zHnWFCIfAsFnFJOxCvLG8a5jHxFP1sMIIFdzCCBF+gAwIBAgIQE+oo
# cFv07O0MNmMJgGFDNjANBgkqhkiG9w0BAQwFADBvMQswCQYDVQQGEwJTRTEUMBIG
# A1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRU
# UCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4X
# DTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowgYgxCzAJBgNVBAYTAlVTMRMw
# EQYDVQQIEwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtKZXJzZXkgQ2l0eTEeMBwGA1UE
# ChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYDVQQDEyVVU0VSVHJ1c3QgUlNB
# IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
# MIICCgKCAgEAgBJlFzYOw9sIs9CsVw127c0n00ytUINh4qogTQktZAnczomfzD2p
# 7PbPwdzx07HWezcoEStH2jnGvDoZtF+mvX2do2NCtnbyqTsrkfjib9DsFiCQCT7i
# 6HTJGLSR1GJk23+jBvGIGGqQIjy8/hPwhxR79uQfjtTkUcYRZ0YIUcuGFFQ/vDP+
# fmyc/xadGL1RjjWmp2bIcmfbIWax1Jt4A8BQOujM8Ny8nkz+rwWWNR9XWrf/zvk9
# tyy29lTdyOcSOk2uTIq3XJq0tyA9yn8iNK5+O2hmAUTnAU5GU5szYPeUvlM3kHND
# 8zLDU+/bqv50TmnHa4xgk97Exwzf4TKuzJM7UXiVZ4vuPVb+DNBpDxsP8yUmazNt
# 925H+nND5X4OpWaxKXwyhGNVicQNwZNUMBkTrNN9N6frXTpsNVzbQdcS2qlJC9/Y
# gIoJk2KOtWbPJYjNhLixP6Q5D9kCnusSTJV882sFqV4Wg8y4Z+LoE53MW4LTTLPt
# W//e5XOsIzstAL81VXQJSdhJWBp/kjbmUZIO8yZ9HE0XvMnsQybQv0FfQKlERPSZ
# 51eHnlAfV1SoPv10Yy+xUGUJ5lhCLkMaTLTwJUdZ+gQek9QmRkpQgbLevni3/GcV
# 4clXhB4PY9bpYrrWX1Uu6lzGKAgEJTm4Diup8kyXHAc/DVL17e8vgg8CAwEAAaOB
# 9DCB8TAfBgNVHSMEGDAWgBStvZh6NLQm9/rEJlTvA73gJMtUGjAdBgNVHQ4EFgQU
# U3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF
# MAMBAf8wEQYDVR0gBAowCDAGBgRVHSAAMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6
# Ly9jcmwudXNlcnRydXN0LmNvbS9BZGRUcnVzdEV4dGVybmFsQ0FSb290LmNybDA1
# BggrBgEFBQcBAQQpMCcwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnVzZXJ0cnVz
# dC5jb20wDQYJKoZIhvcNAQEMBQADggEBAJNl9jeDlQ9ew4IcH9Z35zyKwKoJ8OkL
# JvHgwmp1ocd5yblSYMgpEg7wrQPWCcR23+WmgZWnRtqCV6mVksW2jwMibDN3wXsy
# F24HzloUQToFJBv2FAY7qCUkDrvMKnXduXBBP3zQYzYhBx9G/2CkkeFnvN4ffhkU
# yWNnkepnB2u0j4vAbkN9w6GAbLIevFOFfdyQoaS8Le9Gclc1Bb+7RrtubTeZtv8j
# kpHGbkD4jylW6l/VXxRTrPBPYer3IsynVgviuDQfJtl7GQVoP7o81DgGotPmjw7j
# tHFtQELFhLRAlSv0ZaBIefYdgWOWnU914Ph85I6p0fKtirOMxyHNwu8wggWbMIIE
# g6ADAgECAhEA2U11ZS/Rb399BhmeAJdADTANBgkqhkiG9w0BAQsFADB8MQswCQYD
# VQQGEwJVUzELMAkGA1UECBMCTUkxEjAQBgNVBAcTCUFubiBBcmJvcjESMBAGA1UE
# ChMJSW50ZXJuZXQyMREwDwYDVQQLEwhJbkNvbW1vbjElMCMGA1UEAxMcSW5Db21t
# b24gUlNBIENvZGUgU2lnbmluZyBDQTAeFw0xNTA0MjcwMDAwMDBaFw0xODA0MjYy
# MzU5NTlaMIGxMQswCQYDVQQGEwJVUzEOMAwGA1UEEQwFMDYyNjkxFDASBgNVBAgM
# C0Nvbm5lY3RpY3V0MQ8wDQYDVQQHDAZTdG9ycnMxDTALBgNVBAkMBEVOR1IxIjAg
# BgNVBAoMGVVuaXZlcnNpdHkgb2YgQ29ubmVjdGljdXQxFDASBgNVBAsMC0VuZ2lu
# ZWVyaW5nMSIwIAYDVQQDDBlVbml2ZXJzaXR5IG9mIENvbm5lY3RpY3V0MIIBIjAN
# BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsmdDriz6JVjmxywPaOFxH0mbdNiZ
# JFmeTrv88eNZ+65l9F3CQoTkSdiCXJqvOOwOaujq9d6xm0Bkrt93cTF6f6bD6+5x
# SCYnhoQS7ITjBVRMjcEodqgCjybhQOhQbH72xgh0qfqY4q3+NMnORmSjuBlRs/LY
# D9oxNk2oNpvyNElDySclnM8eKWo2p7h6D4BkLKsDMYp7Y0Zd1rYrtXIlwZ4Y5Ol7
# nFdrMQN7Ie9xzuOi0lxc9kVWV6lksaVTRHIVZIJpxZnTbGr0nZxQkCMEX27negXy
# QyxZrRlD5DRxPKTeRW0EAzxHuzy6u4XuCS+UwpTM30IFCCtV0Zk/1KttdQIDAQAB
# o4IB4DCCAdwwHwYDVR0jBBgwFoAUrjUjF///Bj2cUOCMJGUzHnAQiKIwHQYDVR0O
# BBYEFJKErZgxtEdzO+ITHB5HLLjUWTmqMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMB
# Af8EAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMDMBEGCWCGSAGG+EIBAQQEAwIEEDBm
# BgNVHSAEXzBdMFsGDCsGAQQBriMBBAMCATBLMEkGCCsGAQUFBwIBFj1odHRwczov
# L3d3dy5pbmNvbW1vbi5vcmcvY2VydC9yZXBvc2l0b3J5L2Nwc19jb2RlX3NpZ25p
# bmcucGRmMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9jcmwuaW5jb21tb24tcnNh
# Lm9yZy9JbkNvbW1vblJTQUNvZGVTaWduaW5nQ0EuY3JsMH4GCCsGAQUFBwEBBHIw
# cDBEBggrBgEFBQcwAoY4aHR0cDovL2NydC5pbmNvbW1vbi1yc2Eub3JnL0luQ29t
# bW9uUlNBQ29kZVNpZ25pbmdDQS5jcnQwKAYIKwYBBQUHMAGGHGh0dHA6Ly9vY3Nw
# LmluY29tbW9uLXJzYS5vcmcwIQYDVR0RBBowGIEWZWNzLWhibEBlbmdyLnVjb25u
# LmVkdTANBgkqhkiG9w0BAQsFAAOCAQEAY9HLgxa1CubqNB83mrxy/pKI+Efpxz32
# piISaXHQUIbV1jDI/+X3QMw+g/Q5hr2Uglp1XIWB94ws7rx0vYrqqhOvgJSmeS/2
# ChEtmMXOXyHCD+IUindiayVNlBheq1LLo6Yvo/xIPk+F4Pdi9GZJBnQqJ0b6nlKq
# un+YqcfOOB4Q92Gtbh5aWdAUhF6T3HB0cGWMX2m16dAIfyhJa3O5BOuva7DG7xBW
# x8ofkTvucxL5FiG+ipvTJ5xoK4OetJHTOywQ+sfLWsfLmkE6nXjfwNuP3SpGQAon
# dwJbjonvODiS6wiPMVWA4A2RlxnUntmGOZXUv2Jkp4+mNSeDeKF2xzCCBeswggPT
# oAMCAQICEGXh4uPV3lBFhfMmJIAF4tQwDQYJKoZIhvcNAQENBQAwgYgxCzAJBgNV
# BAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtKZXJzZXkgQ2l0
# eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYDVQQDEyVVU0VS
# VHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTE0MDkxOTAwMDAw
# MFoXDTI0MDkxODIzNTk1OVowfDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk1JMRIw
# EAYDVQQHEwlBbm4gQXJib3IxEjAQBgNVBAoTCUludGVybmV0MjERMA8GA1UECxMI
# SW5Db21tb24xJTAjBgNVBAMTHEluQ29tbW9uIFJTQSBDb2RlIFNpZ25pbmcgQ0Ew
# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDAoC+LHnq7anWs+D7co7o5
# Isrzo3bkv30wJ+a605gyViNcBoaXDYDo7aKBNesL9l5+qT5oc/2d1Gd5zqrqaLcZ
# 2xx2OlmHXV6Zx6GyuKmEcwzMq4dGHGrH7zklvqfd2iw1cDYdIi4gO93jHA4/NJ/l
# ff5VgFsGfIJXhFXzOPvyDDapuV6yxYFHI30SgaDAASg+A/k4l6OtAvICaP3VAav1
# 1VFNUNMXIkblcxjgOuQ3d1HInn1Sik+A3Ca5wEzK/FH6EAkRelcqc8TgISpswlS9
# HD6D+FupLPH623jP2YmabaP/Dac/fkxWI9YJvuGlHYsHxb/j31iq76SvgssF+AoJ
# AgMBAAGjggFaMIIBVjAfBgNVHSMEGDAWgBRTeb9aqitKz1SA4dibwJ3ysgNmyzAd
# BgNVHQ4EFgQUrjUjF///Bj2cUOCMJGUzHnAQiKIwDgYDVR0PAQH/BAQDAgGGMBIG
# A1UdEwEB/wQIMAYBAf8CAQAwEwYDVR0lBAwwCgYIKwYBBQUHAwMwEQYDVR0gBAow
# CDAGBgRVHSAAMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNlcnRydXN0
# LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDB2Bggr
# BgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6Ly9jcnQudXNlcnRydXN0LmNv
# bS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAlBggrBgEFBQcwAYYZaHR0cDov
# L29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQ0FAAOCAgEARiy2f2pOJWa9
# nGqmqtCevQ+uTjX88DgnwcedBMmCNNuG4RP3wZaNMEQT0jXtefdXXJOmEldtq3mX
# wSZk38lcy8M2om2TI6HbqjACa+q4wIXWkqJBbK4MOWXFH0wQKnrEXjCcfUxyzhZ4
# s6tA/L4LmRYTmCD/srpz0bVU3AuSX+mj05E+WPEop4WE+D35OLcnMcjFbst3KWN9
# 9xxaK40VHnX8EkcBkipQPDcuyt1hbOCDjHTq2Ay84R/SchN6WkVPGpW8y0mGc59l
# ul1dlDmjVOynF9MRU5ACynTkdQ0JfKHOeVUuvQlo2Qzt52CTn3OZ1NtIZ0yrxm26
# 7pXKuK86UxI9aZrLkyO/BPO42itvAG/QMv7tzJkGns1hmi74OgZ3WUVk3SNTkixA
# qCbf7TSmecnrtyt0XB/P/xurcyFOIo5YRvTgVPc5lWn6PO9oKEdYtDyBsI5GAKVp
# mrUfdqojsl5GRYQQSnpO/hYBWyv+LsuhdTvaA5vwIDM8WrAjgTFx2vGnQjg5dsQI
# eUOpTixMierCUzCh+bF47i73jX3qoiolCX7xLKSXTpWS2oy7HzgjDdlAsfTwnwto
# n5YNTJxzg6NjrUjsUbEIORtJB/eeld5EWbQgGfwaJb5NEOTonZckUtYS1VmaFugW
# UEuhSWodQIq7RA6FT/4AQ6qdj3yPbNExggR8MIIEeAIBATCBkTB8MQswCQYDVQQG
# EwJVUzELMAkGA1UECBMCTUkxEjAQBgNVBAcTCUFubiBBcmJvcjESMBAGA1UEChMJ
# SW50ZXJuZXQyMREwDwYDVQQLEwhJbkNvbW1vbjElMCMGA1UEAxMcSW5Db21tb24g
# UlNBIENvZGUgU2lnbmluZyBDQQIRANlNdWUv0W9/fQYZngCXQA0wCQYFKw4DAhoF
# AKB4MBgGCisGAQQBgjcCAQwxCjAIoAKAAKECgAAwGQYJKoZIhvcNAQkDMQwGCisG
# AQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwIwYJKoZIhvcN
# AQkEMRYEFLg/sZ1b8IWvJtPLXI2yWnuzLp3ZMA0GCSqGSIb3DQEBAQUABIIBAF2D
# AQDKsxa9LXsxMwBzYatL8OCNRWk6IQZmeiYXFE1HLq7NLL5aca2vvMYdl1QNSCM8
# /Om1CXLWlA7UQdLVHHeSMtvhmIEZwURzpU/rMbGQ7i+RLG2peimDgH0noimTT/Kd
# vStUwfsxwU+7c4iyx1mVeGjtmGKJDYdiiJy7eBx1JYWfohglcYBjUL+HS/zh+RKF
# fX6LUYrki5ARU/Ig2W4MkJAJjOmFX3oomEjQwX2VAhIKrzKBECBPBWeyliU4C1l7
# tcd5u8KrKyANfx72SsLt0Yh+tMaioK3sbUh46/cZM/oeJMHfGcf+57HAi43qRWlg
# SErENGRFQwulOP6Gwr+hggJFMIICQQYJKoZIhvcNAQkGMYICMjCCAi4CAQAwgasw
# gZUxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJVVDEXMBUGA1UEBxMOU2FsdCBMYWtl
# IENpdHkxHjAcBgNVBAoTFVRoZSBVU0VSVFJVU1QgTmV0d29yazEhMB8GA1UECxMY
# aHR0cDovL3d3dy51c2VydHJ1c3QuY29tMR0wGwYDVQQDExRVVE4tVVNFUkZpcnN0
# LU9iamVjdAIRAJ/qyBGw8WJHpfwg2AUjrOYwCQYFKw4DAhoFAKBdMBgGCSqGSIb3
# DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTE1MDgyNTE5MjMxNVow
# IwYJKoZIhvcNAQkEMRYEFDGTh2uZgAXwTpDUWa0vCGe9TCmLMA0GCSqGSIb3DQEB
# AQUABIIBACEuOlRRZF/VN3EN8yKEk7sSmF1NvZIMpsDBgAAIilGgIuMdw/fDkfVb
# MnWWCtqBDrq1jMyZ6dtyDi/X1R9c8K8XjjJxjIyDe34uAo4ftn3fORixuH+BkhQO
# Y1OKbzmTZ5K8Bb/edvBrMiim4XjovDF5aYkguCCkCduBHH36ZPQUKd4Ljsno/WCI
# nGB6jFJbBntghAkMduAvnf7FIbQIo4MED1H47hOIjcfOM7jMrA98O6RPQaphM0YF
# tqAcxKuJdk7rzzWgZLnAUEDHgziBYNcvFJPXEknQXOoF5VJd6AKHN2EwaRRqt30u
# rKXNpPjOQ4K1LQWVwsMBWbCytZZFDO4=
# SIG # End signature block