ShowLicense.ps1
Add-Type @'
public class AsyncPipeline { public System.Management.Automation.PowerShell Pipeline ; public System.IAsyncResult AsyncResult ; } '@ function Create-ThreadPool { [Cmdletbinding()] Param ( [Parameter(Position=0,Mandatory=$true)][int]$PoolSize, [Parameter(Position=1,Mandatory=$False)][Switch]$MTA ) $pool = [RunspaceFactory]::CreateRunspacePool(1, $PoolSize) If(!$MTA) { $pool.ApartmentState = 'STA' } $pool.Open() return $pool } function Start-ThreadScriptBlock { [Cmdletbinding()] Param ( [Parameter(Position=0,Mandatory=$True)]$ThreadPool, [Parameter(Position=1,Mandatory=$True)][ScriptBlock]$ScriptBlock, [Parameter(Position=2,Mandatory=$False)][Object[]]$Parameters ) $Pipeline = [System.Management.Automation.PowerShell]::Create() $Pipeline.RunspacePool = $ThreadPool $Pipeline.AddScript($ScriptBlock) | Out-Null Foreach($Arg in $Parameters) { $Pipeline.AddArgument($Arg) | Out-Null } $AsyncResult = $Pipeline.BeginInvoke() $Output = New-Object AsyncPipeline $Output.Pipeline = $Pipeline $Output.AsyncResult = $AsyncResult $Output } function Get-ThreadPipelines { [Cmdletbinding()] Param ( [Parameter(Position=0,Mandatory=$True)][AsyncPipeline[]]$Pipelines, [Parameter(Position=1,Mandatory=$false)][Switch]$ShowProgress ) # incrementing for Write-Progress $i = 1 foreach($Pipeline in $Pipelines) { try { $Pipeline.Pipeline.EndInvoke($Pipeline.AsyncResult) If($Pipeline.Pipeline.Streams.Error) { Throw $Pipeline.Pipeline.Streams.Error } } catch { $_ } $Pipeline.Pipeline.Dispose() $i++ } } $ThreadPipes = @() $poolsize = 1 $thispool = Create-ThreadPool $poolsize $t = { Param($path) [void] [System.Reflection.Assembly]::LoadWithPartialName('System.Drawing') [void] [System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms') $mod = "HPRESTCmdlets" $RegPath = 'HKCU:\Software\Hewlett-Packard\PowerShell\Modules\' + $mod $PropLicense = 'LicenseShown' $PropPath = 'InstallPath' $PropVersion = 'ModuleVersion' #check to see if the registry path and entry are present if (-not $(Test-Path $RegPath) -or ` $(Get-ItemProperty -Path $RegPath -Name $PropLicense -ErrorAction SilentlyContinue).$PropLicense -ne 'True') { #no so show the license and create the key [void] [System.Reflection.Assembly]::LoadWithPartialName('System.Drawing') [void] [System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms') ################################################ $objForm = New-Object System.Windows.Forms.Form $objForm.Text = $mod + ' License' $objForm.Size = New-Object System.Drawing.Size(762,660) $objForm.StartPosition = 'CenterScreen' $objForm.KeyPreview = $True $x = 'Cancel' $OKButton = New-Object System.Windows.Forms.Button $OKButton.Location = New-Object System.Drawing.Size(75,582) $OKButton.Size = New-Object System.Drawing.Size(75,23) $OKButton.Text = 'Agree' $OKButton.Add_Click({$global:x='Agree';$objForm.Close()}) $objForm.Controls.Add($OKButton) $objLabel = New-Object System.Windows.Forms.Label $objLabel.Font = New-Object System.Drawing.Font('SansSerif',15) $objLabel.Location = New-Object System.Drawing.Size(10,20) $objLabel.Size = New-Object System.Drawing.Size(700,30) $objLabel.Text = 'By using this module you agree to these license terms:' $objForm.Controls.Add($objLabel) $link='' $objRTFTextBox = New-Object System.Windows.Forms.RichTextBox $objRTFTextBox.Location = New-Object System.Drawing.Size(10,60) $objRTFTextBox.Size = New-Object System.Drawing.Size(728,500) $eulapath = $path + '\' + $mod + 'License.rtf' $objRTFTextBox.LoadFile($eulapath) $objRTFTextBox.ReadOnly = $True $objRTFTextBox.DetectUrls = $True $objRTFTextBox.Add_LinkClicked({$global:link = $_.LinkText; start $_.LinkText}) $objForm.Controls.Add($objRTFTextBox) $objForm.Topmost = $True $size = New-Object System.Drawing.Size(0,0) #Home key grabs window size $objForm.Add_KeyDown({if ($_.KeyCode -eq 'Home') { $global:size.Height = $global:objForm.Size.Height $global:size.Width = $global:objForm.Size.Width $_.Handled = $True } }) $objForm.ControlBox = $false $objForm.FormBorderStyle = [System.Windows.Forms.FormBorderStyle]::FixedDialog $objForm.Add_Shown({$objForm.Activate()}) [void] $objForm.ShowDialog() #create the path first $newpath = '' $pathitems = $RegPath.Split('\') foreach ($pathitem in $pathitems) { if ($pathitem -notmatch ':') { $newpath += '\' + $pathitem if (-not $(Test-Path $newpath)) { New-Item -Path $newpath | Out-Null } } else { $newpath = $pathitem } } $modInfoPath = $path + '\'+ $mod + '_2f9b1ca0-2031-45c0-9d82-a432014abfdf_ModuleInfo.xml' $xmlLocal = [xml](Get-Content -Path "$modInfoPath") $currVersionString = $xmlLocal.ModuleInfo.Version.ToString() #create the property New-ItemProperty -Path $RegPath -Name $PropLicense -PropertyType String -Value $true | Out-Null New-ItemProperty -Path $RegPath -Name $PropPath -PropertyType String -Value $path | Out-Null New-ItemProperty -Path $RegPath -Name $PropVersion -PropertyType String -Value $currVersionString | Out-Null } } #end of $t scriptblock $ThreadPipes += Start-ThreadScriptBlock -ThreadPool $thispool -ScriptBlock $t -Parameters $PSScriptRoot.ToString() if ($VerbosePreference -eq 'Continue') { $rstList = Get-ThreadPipelines -Pipelines $ThreadPipes -ShowProgress } else { $rstList = Get-ThreadPipelines -Pipelines $ThreadPipes } $thispool.Close() $thispool.Dispose() # SIG # Begin signature block # MIIY+wYJKoZIhvcNAQcCoIIY7DCCGOgCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB # gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR # AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUqua3F+h7buNVTVnx9CjnRhJr # ErGgghPzMIID7jCCA1egAwIBAgIQfpPr+3zGTlnqS5p31Ab8OzANBgkqhkiG9w0B # AQUFADCBizELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIG # A1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEdMBsGA1UECxMUVGhh # d3RlIENlcnRpZmljYXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcg # Q0EwHhcNMTIxMjIxMDAwMDAwWhcNMjAxMjMwMjM1OTU5WjBeMQswCQYDVQQGEwJV # UzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xMDAuBgNVBAMTJ1N5bWFu # dGVjIFRpbWUgU3RhbXBpbmcgU2VydmljZXMgQ0EgLSBHMjCCASIwDQYJKoZIhvcN # AQEBBQADggEPADCCAQoCggEBALGss0lUS5ccEgrYJXmRIlcqb9y4JsRDc2vCvy5Q # WvsUwnaOQwElQ7Sh4kX06Ld7w3TMIte0lAAC903tv7S3RCRrzV9FO9FEzkMScxeC # i2m0K8uZHqxyGyZNcR+xMd37UWECU6aq9UksBXhFpS+JzueZ5/6M4lc/PcaS3Er4 # ezPkeQr78HWIQZz/xQNRmarXbJ+TaYdlKYOFwmAUxMjJOxTawIHwHw103pIiq8r3 # +3R8J+b3Sht/p8OeLa6K6qbmqicWfWH3mHERvOJQoUvlXfrlDqcsn6plINPYlujI # fKVOSET/GeJEB5IL12iEgF1qeGRFzWBGflTBE3zFefHJwXECAwEAAaOB+jCB9zAd # BgNVHQ4EFgQUX5r1blzMzHSa1N197z/b7EyALt0wMgYIKwYBBQUHAQEEJjAkMCIG # CCsGAQUFBzABhhZodHRwOi8vb2NzcC50aGF3dGUuY29tMBIGA1UdEwEB/wQIMAYB # Af8CAQAwPwYDVR0fBDgwNjA0oDKgMIYuaHR0cDovL2NybC50aGF3dGUuY29tL1Ro # YXd0ZVRpbWVzdGFtcGluZ0NBLmNybDATBgNVHSUEDDAKBggrBgEFBQcDCDAOBgNV # HQ8BAf8EBAMCAQYwKAYDVR0RBCEwH6QdMBsxGTAXBgNVBAMTEFRpbWVTdGFtcC0y # MDQ4LTEwDQYJKoZIhvcNAQEFBQADgYEAAwmbj3nvf1kwqu9otfrjCR27T4IGXTdf # plKfFo3qHJIJRG71betYfDDo+WmNI3MLEm9Hqa45EfgqsZuwGsOO61mWAK3ODE2y # 0DGmCFwqevzieh1XTKhlGOl5QGIllm7HxzdqgyEIjkHq3dlXPx13SYcqFgZepjhq # IhKjURmDfrYwggSjMIIDi6ADAgECAhAOz/Q4yP6/NW4E2GqYGxpQMA0GCSqGSIb3 # DQEBBQUAMF4xCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRTeW1hbnRlYyBDb3Jwb3Jh # dGlvbjEwMC4GA1UEAxMnU3ltYW50ZWMgVGltZSBTdGFtcGluZyBTZXJ2aWNlcyBD # QSAtIEcyMB4XDTEyMTAxODAwMDAwMFoXDTIwMTIyOTIzNTk1OVowYjELMAkGA1UE # BhMCVVMxHTAbBgNVBAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMTQwMgYDVQQDEytT # eW1hbnRlYyBUaW1lIFN0YW1waW5nIFNlcnZpY2VzIFNpZ25lciAtIEc0MIIBIjAN # BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAomMLOUS4uyOnREm7Dv+h8GEKU5Ow # mNutLA9KxW7/hjxTVQ8VzgQ/K/2plpbZvmF5C1vJTIZ25eBDSyKV7sIrQ8Gf2Gi0 # jkBP7oU4uRHFI/JkWPAVMm9OV6GuiKQC1yoezUvh3WPVF4kyW7BemVqonShQDhfu # ltthO0VRHc8SVguSR/yrrvZmPUescHLnkudfzRC5xINklBm9JYDh6NIipdC6Anqh # d5NbZcPuF3S8QYYq3AhMjJKMkS2ed0QfaNaodHfbDlsyi1aLM73ZY8hJnTrFxeoz # C9Lxoxv0i77Zs1eLO94Ep3oisiSuLsdwxb5OgyYI+wu9qU+ZCOEQKHKqzQIDAQAB # o4IBVzCCAVMwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAO # BgNVHQ8BAf8EBAMCB4AwcwYIKwYBBQUHAQEEZzBlMCoGCCsGAQUFBzABhh5odHRw # Oi8vdHMtb2NzcC53cy5zeW1hbnRlYy5jb20wNwYIKwYBBQUHMAKGK2h0dHA6Ly90 # cy1haWEud3Muc3ltYW50ZWMuY29tL3Rzcy1jYS1nMi5jZXIwPAYDVR0fBDUwMzAx # oC+gLYYraHR0cDovL3RzLWNybC53cy5zeW1hbnRlYy5jb20vdHNzLWNhLWcyLmNy # bDAoBgNVHREEITAfpB0wGzEZMBcGA1UEAxMQVGltZVN0YW1wLTIwNDgtMjAdBgNV # HQ4EFgQURsZpow5KFB7VTNpSYxc/Xja8DeYwHwYDVR0jBBgwFoAUX5r1blzMzHSa # 1N197z/b7EyALt0wDQYJKoZIhvcNAQEFBQADggEBAHg7tJEqAEzwj2IwN3ijhCcH # bxiy3iXcoNSUA6qGTiWfmkADHN3O43nLIWgG2rYytG2/9CwmYzPkSWRtDebDZw73 # BaQ1bHyJFsbpst+y6d0gxnEPzZV03LZc3r03H0N45ni1zSgEIKOq8UvEiCmRDoDR # EfzdXHZuT14ORUZBbg2w6jiasTraCXEQ/Bx5tIB7rGn0/Zy2DBYr8X9bCT2bW+IW # yhOBbQAuOA2oKY8s4bL0WqkBrxWcLC9JG9siu8P+eJRRw4axgohd8D20UaF5Mysu # e7ncIAkTcetqGVvP6KUwVyyJST+5z3/Jvz4iaGNTmr1pdKzFHTx/kuDDvBzYBHUw # ggVIMIIEMKADAgECAhBqJba6oqOIHrqYnJL4yw+NMA0GCSqGSIb3DQEBBQUAMIG0 # MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsT # FlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBh # dCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhIChjKTEwMS4wLAYDVQQDEyVW # ZXJpU2lnbiBDbGFzcyAzIENvZGUgU2lnbmluZyAyMDEwIENBMB4XDTE0MDYyNTAw # MDAwMFoXDTE2MDcyNDIzNTk1OVowejELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNh # bGlmb3JuaWExEjAQBgNVBAcTCVBhbG8gQWx0bzEgMB4GA1UEChQXSGV3bGV0dC1Q # YWNrYXJkIENvbXBhbnkxIDAeBgNVBAMUF0hld2xldHQtUGFja2FyZCBDb21wYW55 # MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvZW91eEe8mEoae5frPX+ # WBFsHw7bkrECc3UANelrP89ZRW64IjR2S/dCUnIpqbMfDXSohVNy/9j8E+Ga8n1M # wC/IMKigMGRk0AdqjkTML6YhGv5lUFP/c8YOiyEGhx+N/0joXFo8YeN+9xGE82UR # MGhWJAZjDls+I7VQcCs7UpBuV0egu0tOzufDIgqvWUyTqWAu+lAHsmdS90P+vi82 # Jfv5rEYS6Y1ca2CPMJm7HniDl54QK1By2JEAb5m97VNqyuYKC69D+xDW1GIdGPfr # v3Ko7NAE5yWg8W8bfIxC5dS+GNh/0alWz1Ke23Uu6Mah+fgO62wxzSd8r1g2VBnw # NQIDAQABo4IBjTCCAYkwCQYDVR0TBAIwADAOBgNVHQ8BAf8EBAMCB4AwKwYDVR0f # BCQwIjAgoB6gHIYaaHR0cDovL3NmLnN5bWNiLmNvbS9zZi5jcmwwZgYDVR0gBF8w # XTBbBgtghkgBhvhFAQcXAzBMMCMGCCsGAQUFBwIBFhdodHRwczovL2Quc3ltY2Iu # Y29tL2NwczAlBggrBgEFBQcCAjAZFhdodHRwczovL2Quc3ltY2IuY29tL3JwYTAT # BgNVHSUEDDAKBggrBgEFBQcDAzBXBggrBgEFBQcBAQRLMEkwHwYIKwYBBQUHMAGG # E2h0dHA6Ly9zZi5zeW1jZC5jb20wJgYIKwYBBQUHMAKGGmh0dHA6Ly9zZi5zeW1j # Yi5jb20vc2YuY3J0MB8GA1UdIwQYMBaAFM+Zqep7JvRLyY6P1/AFJu/j0qedMB0G # A1UdDgQWBBSxY0RmDskHVeL3426xzdgBWbGuFDARBglghkgBhvhCAQEEBAMCBBAw # FgYKKwYBBAGCNwIBGwQIMAYBAQABAf8wDQYJKoZIhvcNAQEFBQADggEBAKoA6naf # BZ3b4qJVW21/IRNtWounIheL5YD5B5aYaQcPZ3I44gwz5jH90C8DTAvsjUn+NWpO # gLQ53XcskrY8VSUD8eXfK7M8wTmkTuKZBCaX1l/ejt6nnNfzrGHlGwTa2la98Y6d # IaMwV6+Hv36gQq/Dh6IdjsjNgFExPOc34AsP/yMK89s3PlHphVEXu7C4/CqPzq1n # 9l/j/2IOJLoKVDeGjvcuD9rtAoeqowChPmKWjdHmjXNd/PKFdlo085yMWZLuZWHj # KGgddvWJqnRNCti1WrztJUPS4kGTvsuu0sK9eXOK+VKE+uHxIc6bIyZJAJxS3uPw # jmnBQuPnl1RDZHwwggYKMIIE8qADAgECAhBSAOWqJVb8GobtlsnUSzPHMA0GCSqG # SIb3DQEBBQUAMIHKMQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIElu # Yy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShj # KSAyMDA2IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkx # RTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlm # aWNhdGlvbiBBdXRob3JpdHkgLSBHNTAeFw0xMDAyMDgwMDAwMDBaFw0yMDAyMDcy # MzU5NTlaMIG0MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4x # HzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1z # IG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhIChjKTEwMS4w # LAYDVQQDEyVWZXJpU2lnbiBDbGFzcyAzIENvZGUgU2lnbmluZyAyMDEwIENBMIIB # IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9SNLXqXXirsy6dRX9+/kxyZ+ # rRmY/qidfZT2NmsQ13WBMH8EaH/LK3UezR0IjN9plKc3o5x7gOCZ4e43TV/OOxTu # htTQ9Sc1vCULOKeMY50Xowilq7D7zWpigkzVIdob2fHjhDuKKk+FW5ABT8mndhB/ # JwN8vq5+fcHd+QW8G0icaefApDw8QQA+35blxeSUcdZVAccAJkpAPLWhJqkMp22A # jpAle8+/PxzrL5b65Yd3xrVWsno7VDBTG99iNP8e0fRakyiF5UwXTn5b/aSTmX/f # ze+kde/vFfZH5/gZctguNBqmtKdMfr27Tww9V/Ew1qY2jtaAdtcZLqXNfjQtiQID # AQABo4IB/jCCAfowEgYDVR0TAQH/BAgwBgEB/wIBADBwBgNVHSAEaTBnMGUGC2CG # SAGG+EUBBxcDMFYwKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZlcmlzaWduLmNv # bS9jcHMwKgYIKwYBBQUHAgIwHhocaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3Jw # YTAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1h # Z2UvZ2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0 # cDovL2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nby5naWYwNAYDVR0fBC0wKzApoCeg # JYYjaHR0cDovL2NybC52ZXJpc2lnbi5jb20vcGNhMy1nNS5jcmwwNAYIKwYBBQUH # AQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC52ZXJpc2lnbi5jb20wHQYD # VR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMDMCgGA1UdEQQhMB+kHTAbMRkwFwYD # VQQDExBWZXJpU2lnbk1QS0ktMi04MB0GA1UdDgQWBBTPmanqeyb0S8mOj9fwBSbv # 49KnnTAfBgNVHSMEGDAWgBR/02Wnwt3su/AwCfNDOfoCrzMxMzANBgkqhkiG9w0B # AQUFAAOCAQEAViLmNKTEYctIuQGtVqhkD9mMkcS7zAzlrXqgIn/fRzhKLWzRf3Ea # fOxwqbHwT+QPDFP6FV7+dJhJJIWBJhyRFEewTGOMu6E01MZF6A2FJnMD0KmMZG3c # cZLmRQVgFVlROfxYFGv+1KTteWsIDEFy5zciBgm+I+k/RJoe6WGdzLGQXPw90o2s # Qj1lNtS0PUAoj5sQzyMmzEsgy5AfXYxMNMo82OU31m+lIL006ybZrg3nxZr3obQh # kTNvhuhYuyV8dA5Y/nUbYz/OMXybjxuWnsVTdoRbnK2R+qztk7pdyCFTwoJTY68S # DVCHERs9VFKWiiycPZIaCJoFLseTpUiR0zGCBHIwggRuAgEBMIHJMIG0MQswCQYD # VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT # aWduIFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRw # czovL3d3dy52ZXJpc2lnbi5jb20vcnBhIChjKTEwMS4wLAYDVQQDEyVWZXJpU2ln # biBDbGFzcyAzIENvZGUgU2lnbmluZyAyMDEwIENBAhBqJba6oqOIHrqYnJL4yw+N # MAkGBSsOAwIaBQCgcDAQBgorBgEEAYI3AgEMMQIwADAZBgkqhkiG9w0BCQMxDAYK # KwYBBAGCNwIBBDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAjBgkqhkiG # 9w0BCQQxFgQU+3oiL1pUiqPK+bjqEhE6BcRSfywwDQYJKoZIhvcNAQEBBQAEggEA # ChZMk2pYWwM/F4ME/cqfRxYc8ieQhbZiVBsYlUIa+RCgEQGC5mETNf3fVfcvVBEo # OzdS6kIktl9CAnrJqk9xnMv2YP22icAtoeR+OSsdLskHvkHx147UefaxzFZh4Poe # /YoCQ6phMOGnVMf1YxEfZ5hfX1EYL7UFix+S1npIbuNUeWUwXd9dsZRr+1IQ/nni # /cwvxSR7XFsp0eZVB13UgxOgLYgmFJV5zMG6eiBId7NnkQmV2mMF+EOmUDC+ULc9 # 2mGWqvNPUVn68kFH753e30EJYJouvd6QE9u80bUx5ielFIc9Kc0F8zHYKEGik/8d # bBDBXH0Loni3FIeoGV0F66GCAgswggIHBgkqhkiG9w0BCQYxggH4MIIB9AIBATBy # MF4xCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRTeW1hbnRlYyBDb3Jwb3JhdGlvbjEw # MC4GA1UEAxMnU3ltYW50ZWMgVGltZSBTdGFtcGluZyBTZXJ2aWNlcyBDQSAtIEcy # AhAOz/Q4yP6/NW4E2GqYGxpQMAkGBSsOAwIaBQCgXTAYBgkqhkiG9w0BCQMxCwYJ # KoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xNTEwMTQxNjQ4MzhaMCMGCSqGSIb3 # DQEJBDEWBBQ6ZahAx/Ww0+xHekBKCA4W2Av51zANBgkqhkiG9w0BAQEFAASCAQAA # 3ihcSYm865n+kWexNTUmxbHvcrZVfWaGXsv7WqFJDAdrJXSc9vaLR7mgRGy7IEkm # VGf6mIcC6UkxtFRdJyIf3l239Nwt0cEZfjyAw7DnyWSJtztS0dgGsHWmUb1RzR1P # FzgIaE/qbZt+iOBnDJ13utpZrRPNWvytxlwogASXotHPG4vQL68qlbHn/8eN7iSn # 4/XLgppIUf2EqWk11325QoMTSEW4kPzVwxUqA8DC6U13Dlavc8GfJuuJsp/QFVpb # onhjdIioR8AeO3oKXo2ywSBIs/WJwQOgDTlQS5Uw1vZVRR2XNAL5MErTRBUYLoGo # LmZUGH6ji/BBPqgqi+pB # SIG # End signature block |