Set-StrictMode -Version Latest InModuleScope Pester { Describe "Write nunit test results (Legacy)" { Setup -Dir "Results" It "should write a successful test result" { #create state $TestResults = New-PesterState -Path TestDrive:\ $testResults.EnterDescribe('Mocked Describe') $TestResults.AddTestResult("Successful testcase","Passed",(New-TimeSpan -Seconds 1)) #export and validate the file $testFile = "$TestDrive\Results\Tests.xml" Export-NunitReport $testResults $testFile -LegacyFormat $xmlResult = [xml] (Get-Content $testFile) $xmlTestCase = $xmlResult.'test-results'.'test-suite'.'results'.'test-suite'.'results'.'test-case' $xmlTestCase.name | Should Be "Successful testcase" $xmlTestCase.result | Should Be "Success" $xmlTestCase.time | Should Be "1" } It "should write a failed test result" { #create state $TestResults = New-PesterState -Path TestDrive:\ $testResults.EnterDescribe('Mocked Describe') $time = [TimeSpan]::FromSeconds(2.5) $TestResults.AddTestResult("Failed testcase","Failed",$time,'Assert failed: "Expected: Test. But was: Testing"','at line: 28 in C:\Pester\Result.Tests.ps1') #export and validate the file $testFile = "$TestDrive\Results\Tests.xml" Export-NunitReport $testResults $testFile -LegacyFormat $xmlResult = [xml] (Get-Content $testFile) $xmlTestCase = $xmlResult.'test-results'.'test-suite'.'results'.'test-suite'.'results'.'test-case' $xmlTestCase.name | Should Be "Failed testcase" $xmlTestCase.result | Should Be "Failure" $xmlTestCase.time | Should Be "2.5" $xmlTestCase.failure.message | Should Be 'Assert failed: "Expected: Test. But was: Testing"' $xmlTestCase.failure.'stack-trace' | Should Be 'at line: 28 in C:\Pester\Result.Tests.ps1' } It "should write the test summary" { #create state $TestResults = New-PesterState -Path TestDrive:\ $testResults.EnterDescribe('Mocked Describe') $TestResults.AddTestResult("Testcase","Passed",(New-TimeSpan -Seconds 1)) #export and validate the file $testFile = "$TestDrive\Results\Tests.xml" Export-NunitReport $testResults $testFile -LegacyFormat $xmlResult = [xml] (Get-Content $testFile) $xmlTestResult = $xmlResult.'test-results' $xmlTestResult.total | Should Be 1 $xmlTestResult.failures | Should Be 0 $xmlTestResult.date | Should Be $true $xmlTestResult.time | Should Be $true } it "should write the test-suite information" { #create state $TestResults = New-PesterState -Path TestDrive:\ $testResults.EnterDescribe('Mocked Describe') $TestResults.AddTestResult("Successful testcase","Passed",[timespan]10000000) #1.0 seconds $TestResults.AddTestResult("Successful testcase","Passed",[timespan]11000000) #1.1 seconds #export and validate the file $testFile = "$TestDrive\Results\Tests.xml" Export-NunitReport $testResults $testFile -LegacyFormat $xmlResult = [xml] (Get-Content $testFile) $xmlTestResult = $xmlResult.'test-results'.'test-suite'.results.'test-suite' $description = $null if ($xmlTestResult.PSObject.Properties['description']) { $description = $xmlTestResult.description } $xmlTestResult.type | Should Be "Powershell" $xmlTestResult.name | Should Be "Mocked Describe" $description | Should BeNullOrEmpty $xmlTestResult.result | Should Be "Success" $xmlTestResult.success | Should Be "True" $xmlTestResult.time | Should Be 2.1 } it "should write two test-suite elements for two describes" { #create state $TestResults = New-PesterState -Path TestDrive:\ $testResults.EnterDescribe('Describe #1') $TestResults.AddTestResult("Successful testcase","Passed",(New-TimeSpan -Seconds 1)) $TestResults.LeaveDescribe() $testResults.EnterDescribe('Describe #2') $TestResults.AddTestResult("Failed testcase","Failed",(New-TimeSpan -Seconds 2)) #export and validate the file $testFile = "$TestDrive\Results\Tests.xml" Export-NunitReport $testResults $testFile -LegacyFormat $xmlResult = [xml] (Get-Content $testFile) $xmlTestSuite1 = $xmlResult.'test-results'.'test-suite'.results.'test-suite'[0] $description = $null if ($xmlTestSuite1.PSObject.Properties['description']) { $description = $xmlTestSuite1.description } $xmlTestSuite1.name | Should Be "Describe #1" $description | Should BeNullOrEmpty $xmlTestSuite1.result | Should Be "Success" $xmlTestSuite1.success | Should Be "True" $xmlTestSuite1.time | Should Be 1.0 $xmlTestSuite2 = $xmlResult.'test-results'.'test-suite'.results.'test-suite'[1] $description = $null if ($xmlTestSuite2.PSObject.Properties['description']) { $description = $xmlTestSuite2.description } $xmlTestSuite2.name | Should Be "Describe #2" $description | Should BeNullOrEmpty $xmlTestSuite2.result | Should Be "Failure" $xmlTestSuite2.success | Should Be "False" $xmlTestSuite2.time | Should Be 2.0 } it "should write parent results in tree correctly" { #create state $TestResults = New-PesterState -Path TestDrive:\ $testResults.EnterDescribe('Failed') $TestResults.AddTestResult("Failed","Failed") $TestResults.AddTestResult("Skipped","Skipped") $TestResults.AddTestResult("Pending","Pending") $TestResults.AddTestResult("Passed","Passed") $TestResults.LeaveDescribe() $testResults.EnterDescribe('Skipped') $TestResults.AddTestResult("Skipped","Skipped") $TestResults.AddTestResult("Pending","Pending") $TestResults.AddTestResult("Passed","Passed") $TestResults.LeaveDescribe() $testResults.EnterDescribe('Pending') $TestResults.AddTestResult("Pending","Pending") $TestResults.AddTestResult("Passed","Passed") $TestResults.LeaveDescribe() $testResults.EnterDescribe('Passed') $TestResults.AddTestResult("Passed","Passed") $TestResults.LeaveDescribe() #export and validate the file $testFile = "$TestDrive\Results\Tests.xml" Export-NunitReport $testResults $testFile $xmlResult = [xml] (Get-Content $testFile) $xmlTestSuite1 = $xmlResult.'test-results'.'test-suite'.results.'test-suite'[0] $xmlTestSuite1.name | Should Be "Failed" $xmlTestSuite1.result | Should Be "Failure" $xmlTestSuite1.success | Should Be "False" $xmlTestSuite2 = $xmlResult.'test-results'.'test-suite'.results.'test-suite'[1] $xmlTestSuite2.name | Should Be "Skipped" $xmlTestSuite2.result | Should Be "Ignored" $xmlTestSuite2.success | Should Be "True" $xmlTestSuite3 = $xmlResult.'test-results'.'test-suite'.results.'test-suite'[2] $xmlTestSuite3.name | Should Be "Pending" $xmlTestSuite3.result | Should Be "Inconclusive" $xmlTestSuite3.success | Should Be "True" $xmlTestSuite4 = $xmlResult.'test-results'.'test-suite'.results.'test-suite'[3] $xmlTestSuite4.name | Should Be "Passed" $xmlTestSuite4.result | Should Be "Success" $xmlTestSuite4.success | Should Be "True" } it "should write the environment information" { $state = New-PesterState "." $testFile = "$TestDrive\Results\Tests.xml" Export-NunitReport $state $testFile -LegacyFormat $xmlResult = [xml] (Get-Content $testFile) $xmlEnvironment = $xmlResult.'test-results'.'environment' $xmlEnvironment.'os-Version' | Should Be $true $xmlEnvironment.platform | Should Be $true $xmlEnvironment.cwd | Should Be (Get-Location).Path if ($env:Username) { $xmlEnvironment.user | Should Be $env:Username } $xmlEnvironment.'machine-name' | Should Be $env:ComputerName } it "Should validate test results against the nunit 2.5 schema" { #create state $TestResults = New-PesterState -Path TestDrive:\ $testResults.EnterDescribe('Describe #1') $TestResults.AddTestResult("Successful testcase","Passed",(New-TimeSpan -Seconds 1)) $TestResults.LeaveDescribe() $testResults.EnterDescribe('Describe #2') $TestResults.AddTestResult("Failed testcase","Failed",(New-TimeSpan -Seconds 2)) #export and validate the file $testFile = "$TestDrive\Results\Tests.xml" Export-NunitReport $testResults $testFile -LegacyFormat $xml = [xml] (Get-Content $testFile) $schemePath = (Get-Module -Name Pester).Path | Split-Path | Join-Path -ChildPath "nunit_schema_2.5.xsd" $xml.Schemas.Add($null,$schemePath) > $null { $xml.Validate({throw $args.Exception }) } | Should Not Throw } it "handles special characters in block descriptions well -!@#$%^&*()_+`1234567890[];'',./""- " { #create state $TestResults = New-PesterState -Path TestDrive:\ $testResults.EnterDescribe('Describe -!@#$%^&*()_+`1234567890[];'',./"- #1') $TestResults.AddTestResult("Successful testcase -!@#$%^&*()_+`1234567890[];'',./""-","Passed",(New-TimeSpan -Seconds 1)) $TestResults.LeaveDescribe() #export and validate the file $testFile = "$TestDrive\Results\Tests.xml" Export-NunitReport $testResults $testFile -LegacyFormat $xml = [xml] (Get-Content $testFile) $schemePath = (Get-Module -Name Pester).Path | Split-Path | Join-Path -ChildPath "nunit_schema_2.5.xsd" $xml.Schemas.Add($null,$schemePath) > $null { $xml.Validate({throw $args.Exception }) } | Should Not Throw } Context 'Exporting Parameterized Tests (New Legacy)' { #create state $TestResults = New-PesterState -Path TestDrive:\ $testResults.EnterDescribe('Mocked Describe') $TestResults.AddTestResult( 'Parameterized Testcase One', 'Passed', (New-TimeSpan -Seconds 1), $null, $null, 'Parameterized Testcase ', @{ Parameter = 'One' } ) $TestResults.AddTestResult( 'Parameterized Testcase ', 'Failed', (New-TimeSpan -Seconds 1), 'Assert failed: "Expected: Test. But was: Testing"', 'at line: 28 in C:\Pester\Result.Tests.ps1', 'Parameterized Testcase ', @{ Parameter = 'Two' } ) #export and validate the file $testFile = "$TestDrive\Results\Tests.xml" Export-NunitReport $testResults $testFile -LegacyFormat $xmlResult = [xml] (Get-Content $testFile) It 'should write parameterized test results correctly' { $xmlTestSuite = $xmlResult.'test-results'.'test-suite'.'results'.'test-suite'.'results'.'test-suite' $description = $null if ($xmlTestSuite.PSObject.Properties['description']) { $description = $xmlTestSuite.description } $xmlTestSuite.name | Should Be 'Parameterized Testcase ' $description | Should BeNullOrEmpty $xmlTestSuite.type | Should Be 'ParameterizedTest' $xmlTestSuite.result | Should Be 'Failure' $xmlTestSuite.success | Should Be 'False' $xmlTestSuite.time | Should Be '2' foreach ($testCase in $xmlTestSuite.results.'test-case') { $testCase.Name | Should Match '^Parameterized Testcase (One|)$' $testCase.time | Should Be 1 } } it 'Should validate test results against the nunit 2.5 schema' { $schemaPath = (Get-Module -Name Pester).Path | Split-Path | Join-Path -ChildPath "nunit_schema_2.5.xsd" $null = $xmlResult.Schemas.Add($null,$schemaPath) { $xmlResult.Validate({throw $args.Exception }) } | Should Not Throw } } } Describe "Write nunit test results (Newer format)" { Setup -Dir "Results" It "should write a successful test result" { #create state $TestResults = New-PesterState -Path TestDrive:\ $testResults.EnterDescribe('Mocked Describe') $TestResults.AddTestResult("Successful testcase",'Passed',(New-TimeSpan -Seconds 1)) #export and validate the file $testFile = "$TestDrive\Results\Tests.xml" Export-NunitReport $testResults $testFile $xmlResult = [xml] (Get-Content $testFile) $xmlTestCase = $xmlResult.'test-results'.'test-suite'.'results'.'test-suite'.'results'.'test-case' $xmlTestCase.name | Should Be "Mocked Describe.Successful testcase" $xmlTestCase.result | Should Be "Success" $xmlTestCase.time | Should Be "1" } It "should write a failed test result" { #create state $TestResults = New-PesterState -Path TestDrive:\ $testResults.EnterDescribe('Mocked Describe') $time = [TimeSpan]25000000 #2.5 seconds $TestResults.AddTestResult("Failed testcase",'Failed',$time,'Assert failed: "Expected: Test. But was: Testing"','at line: 28 in C:\Pester\Result.Tests.ps1') #export and validate the file $testFile = "$TestDrive\Results\Tests.xml" Export-NunitReport $testResults $testFile $xmlResult = [xml] (Get-Content $testFile) $xmlTestCase = $xmlResult.'test-results'.'test-suite'.'results'.'test-suite'.'results'.'test-case' $xmlTestCase.name | Should Be "Mocked Describe.Failed testcase" $xmlTestCase.result | Should Be "Failure" $xmlTestCase.time | Should Be "2.5" $xmlTestCase.failure.message | Should Be 'Assert failed: "Expected: Test. But was: Testing"' $xmlTestCase.failure.'stack-trace' | Should Be 'at line: 28 in C:\Pester\Result.Tests.ps1' } It "should write the test summary" { #create state $TestResults = New-PesterState -Path TestDrive:\ $testResults.EnterDescribe('Mocked Describe') $TestResults.AddTestResult("Testcase",'Passed',(New-TimeSpan -Seconds 1)) #export and validate the file $testFile = "$TestDrive\Results\Tests.xml" Export-NunitReport $testResults $testFile $xmlResult = [xml] (Get-Content $testFile) $xmlTestResult = $xmlResult.'test-results' $xmlTestResult.total | Should Be 1 $xmlTestResult.failures | Should Be 0 $xmlTestResult.date | Should Be $true $xmlTestResult.time | Should Be $true } it "should write the test-suite information" { #create state $TestResults = New-PesterState -Path TestDrive:\ $testResults.EnterDescribe('Mocked Describe') $TestResults.AddTestResult("Successful testcase",'Passed',[timespan]10000000) #1.0 seconds $TestResults.AddTestResult("Successful testcase",'Passed',[timespan]11000000) #1.1 seconds #export and validate the file $testFile = "$TestDrive\Results\Tests.xml" Export-NunitReport $testResults $testFile $xmlResult = [xml] (Get-Content $testFile) $xmlTestResult = $xmlResult.'test-results'.'test-suite'.results.'test-suite' $xmlTestResult.type | Should Be "TestFixture" $xmlTestResult.name | Should Be "Mocked Describe" $xmlTestResult.description | Should Be "Mocked Describe" $xmlTestResult.result | Should Be "Success" $xmlTestResult.success | Should Be "True" $xmlTestResult.time | Should Be 2.1 } it "should write two test-suite elements for two describes" { #create state $TestResults = New-PesterState -Path TestDrive:\ $testResults.EnterDescribe('Describe #1') $TestResults.AddTestResult("Successful testcase",'Passed',(New-TimeSpan -Seconds 1)) $TestResults.LeaveDescribe() $testResults.EnterDescribe('Describe #2') $TestResults.AddTestResult("Failed testcase",'Failed',(New-TimeSpan -Seconds 2)) #export and validate the file $testFile = "$TestDrive\Results\Tests.xml" Export-NunitReport $testResults $testFile $xmlResult = [xml] (Get-Content $testFile) $xmlTestSuite1 = $xmlResult.'test-results'.'test-suite'.results.'test-suite'[0] $xmlTestSuite1.name | Should Be "Describe #1" $xmlTestSuite1.description | Should Be "Describe #1" $xmlTestSuite1.result | Should Be "Success" $xmlTestSuite1.success | Should Be "True" $xmlTestSuite1.time | Should Be 1.0 $xmlTestSuite2 = $xmlResult.'test-results'.'test-suite'.results.'test-suite'[1] $xmlTestSuite2.name | Should Be "Describe #2" $xmlTestSuite2.description | Should Be "Describe #2" $xmlTestSuite2.result | Should Be "Failure" $xmlTestSuite2.success | Should Be "False" $xmlTestSuite2.time | Should Be 2.0 } it "should write the environment information" { $state = New-PesterState "." $testFile = "$TestDrive\Results\Tests.xml" Export-NunitReport $state $testFile $xmlResult = [xml] (Get-Content $testFile) $xmlEnvironment = $xmlResult.'test-results'.'environment' $xmlEnvironment.'os-Version' | Should Be $true $xmlEnvironment.platform | Should Be $true $xmlEnvironment.cwd | Should Be (Get-Location).Path if ($env:Username) { $xmlEnvironment.user | Should Be $env:Username } $xmlEnvironment.'machine-name' | Should Be $env:ComputerName } it "Should validate test results against the nunit 2.5 schema" { #create state $TestResults = New-PesterState -Path TestDrive:\ $testResults.EnterDescribe('Describe #1') $TestResults.AddTestResult("Successful testcase",'Passed',(New-TimeSpan -Seconds 1)) $TestResults.LeaveDescribe() $testResults.EnterDescribe('Describe #2') $TestResults.AddTestResult("Failed testcase",'Failed',(New-TimeSpan -Seconds 2)) #export and validate the file $testFile = "$TestDrive\Results\Tests.xml" Export-NunitReport $testResults $testFile $xml = [xml] (Get-Content $testFile) $schemePath = (Get-Module -Name Pester).Path | Split-Path | Join-Path -ChildPath "nunit_schema_2.5.xsd" $xml.Schemas.Add($null,$schemePath) > $null { $xml.Validate({throw $args.Exception }) } | Should Not Throw } it "handles special characters in block descriptions well -!@#$%^&*()_+`1234567890[];'',./""- " { #create state $TestResults = New-PesterState -Path TestDrive:\ $testResults.EnterDescribe('Describe -!@#$%^&*()_+`1234567890[];'',./"- #1') $TestResults.AddTestResult("Successful testcase -!@#$%^&*()_+`1234567890[];'',./""-",'Passed',(New-TimeSpan -Seconds 1)) $TestResults.LeaveDescribe() #export and validate the file $testFile = "$TestDrive\Results\Tests.xml" Export-NunitReport $testResults $testFile $xml = [xml] (Get-Content $testFile) $schemePath = (Get-Module -Name Pester).Path | Split-Path | Join-Path -ChildPath "nunit_schema_2.5.xsd" $xml.Schemas.Add($null,$schemePath) > $null { $xml.Validate({throw $args.Exception }) } | Should Not Throw } Context 'Exporting Parameterized Tests (Newer format)' { #create state $TestResults = New-PesterState -Path TestDrive:\ $testResults.EnterDescribe('Mocked Describe') $TestResults.AddTestResult( 'Parameterized Testcase One', 'Passed', (New-TimeSpan -Seconds 1), $null, $null, 'Parameterized Testcase ', @{Parameter = 'One'} ) $parameters = New-Object System.Collections.Specialized.OrderedDictionary $parameters.Add('StringParameter', 'Two') $parameters.Add('NullParameter', $null) $parameters.Add('NumberParameter', -42.67) $TestResults.AddTestResult( 'Parameterized Testcase ', 'Failed', (New-TimeSpan -Seconds 1), 'Assert failed: "Expected: Test. But was: Testing"', 'at line: 28 in C:\Pester\Result.Tests.ps1', 'Parameterized Testcase ', $parameters ) #export and validate the file $testFile = "$TestDrive\Results\Tests.xml" Export-NunitReport $testResults $testFile $xmlResult = [xml] (Get-Content $testFile) It 'should write parameterized test results correctly' { $xmlTestSuite = $xmlResult.'test-results'.'test-suite'.'results'.'test-suite'.'results'.'test-suite' $xmlTestSuite.name | Should Be 'Mocked Describe.Parameterized Testcase ' $xmlTestSuite.description | Should Be 'Parameterized Testcase ' $xmlTestSuite.type | Should Be 'ParameterizedTest' $xmlTestSuite.result | Should Be 'Failure' $xmlTestSuite.success | Should Be 'False' $xmlTestSuite.time | Should Be '2' $testCase1 = $xmlTestSuite.results.'test-case'[0] $testCase2 = $xmlTestSuite.results.'test-case'[1] $testCase1.Name | Should Be 'Mocked Describe.Parameterized Testcase One' $testCase1.Time | Should Be 1 $testCase2.Name | Should Be 'Mocked Describe.Parameterized Testcase ("Two",null,-42.67)' $testCase2.Time | Should Be 1 } it 'Should validate test results against the nunit 2.5 schema' { $schemaPath = (Get-Module -Name Pester).Path | Split-Path | Join-Path -ChildPath "nunit_schema_2.5.xsd" $null = $xmlResult.Schemas.Add($null,$schemaPath) { $xmlResult.Validate({throw $args.Exception }) } | Should Not Throw } } } Describe "Get-TestTime" { function Using-Culture { param ( [Parameter(Mandatory = $true, ValueFromPipeline = $true)] [ScriptBlock]$ScriptBlock, [System.Globalization.CultureInfo]$Culture='en-US' ) $oldCulture = [System.Threading.Thread]::CurrentThread.CurrentCulture try { [System.Threading.Thread]::CurrentThread.CurrentCulture = $Culture $ExecutionContext.InvokeCommand.InvokeScript($ScriptBlock) } finally { [System.Threading.Thread]::CurrentThread.CurrentCulture = $oldCulture } } It "output is culture agnostic" { #on cs-CZ, de-DE and other systems where decimal separator is ",". value [double]3.5 is output as 3,5 #this makes some of the tests fail, it could also leak to the nUnit report if the time was output $TestResult = New-Object -TypeName psObject -Property @{ Time = [timespan]35000000 } #3.5 seconds #using the string formatter here to know how the string will be output to screen $Result = { Get-TestTime -Tests $TestResult | Out-String -Stream } | Using-Culture -Culture de-DE $Result | Should Be "3.5" } It "Time is measured in seconds with 0,1 millisecond as lowest value" { $TestResult = New-Object -TypeName psObject -Property @{ Time = [timespan]1000 } Get-TestTime -Tests $TestResult | Should Be 0.0001 $TestResult = New-Object -TypeName psObject -Property @{ Time = [timespan]100 } Get-TestTime -Tests $TestResult | Should Be 0 $TestResult = New-Object -TypeName psObject -Property @{ Time = [timespan]1234567 } Get-TestTime -Tests $TestResult | Should Be 0.1235 } } Describe "GetFullPath" { It "Resolves non existing path correctly" { pushd TestDrive:\ $p = GetFullPath notexistingfile.txt popd $p | Should Be (Join-Path $TestDrive notexistingfile.txt) } It "Resolves existing path correctly" { pushd TestDrive:\ New-Item -ItemType File -Name existingfile.txt $p = GetFullPath existingfile.txt popd $p | Should Be (Join-Path $TestDrive existingfile.txt) } It "Resolves full path correctly" { GetFullPath C:\Windows\System32\notepad.exe | Should Be C:\Windows\System32\notepad.exe } } } # SIG # Begin signature block # MIInVwYJKoZIhvcNAQcCoIInSDCCJ0QCAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBKD7WI8pBtccjL # Ep1BJK+QbNkIDGYkDdkUBOY1i/oaFaCCC8MwggXaMIIEwqADAgECAhMzAAABP8rF # KBkLiTVYAAAAAAE/MA0GCSqGSIb3DQEBCwUAMIGOMQswCQYDVQQGEwJVUzETMBEG # A1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWlj # cm9zb2Z0IENvcnBvcmF0aW9uMTgwNgYDVQQDEy9NaWNyb3NvZnQgV2luZG93cyBU # aGlyZCBQYXJ0eSBDb21wb25lbnQgQ0EgMjAxMjAeFw0yNTExMTMxOTU5NDJaFw0y # NjExMTAxOTU5NDJaMIGEMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv # bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0 # aW9uMS4wLAYDVQQDEyVNaWNyb3NvZnQgV2luZG93cyAzcmQgcGFydHkgQ29tcG9u # ZW50MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA2Zy0BnZmL5lF9IDS # IFBJ81NqCWCPLo2bRGJObUnrlezQw+FWEDU9+poMEyRjgbgafifNKY4TJ3e9Od4p # q56xMXBcGYVIe546gz4p68MQG4iXqqSBB4kk5jwk5U7igTCfZIga6PFElV6Wm7kv # Bdw14NVgdJZZDdmIc9TdaWbxrxAda9IMjZNQYfJZ/WVinf0mPnYM2hQwj4Gl4DGC # 0/KO6U+ayXHAtcS9qj2UJYB7rCyteNydGWHaMa5B8fzOpSNS3ioJfYcBwSjfcBRD # pemnEb5BcIF10FVuNA4foeMz5emIZaGGl8XxVC9K79Xwkc571Sv899qEdYP8ZFW9 # yVXY8l1ptvk4nD52nq9ld4HjWA+FHmhbhKggbjEVymQee7fOgEWKE3Uc73YnTMGf # TXzDwH9jYip5fwls08LWs0HCINu/iA/OG/vm1jrJdK5wcBgX2B0fZPdwgLTEgs0R # rSIyv9WucI0S6XffXJuUH+lziAX7RmCPhy5kZR1R3LB0GnBlAgMBAAGjggG3MIIB # szATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUt3RSDxhJIhKufhwaOyWL # 3nMDoeUwVAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5k # IE9wZXJhdGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwODA5KzUwNjIzOTAfBgNV # HSMEGDAWgBRhcaeHr/9p1SF2T1KTKAC+eRKrhDB0BgNVHR8EbTBrMGmgZ6BlhmNo # dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBX # aW5kb3dzJTIwVGhpcmQlMjBQYXJ0eSUyMENvbXBvbmVudCUyMENBJTIwMjAxMi5j # cmwwgYEGCCsGAQUFBwEBBHUwczBxBggrBgEFBQcwAoZlaHR0cDovL3d3dy5taWNy # b3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBXaW5kb3dzJTIwVGhp # cmQlMjBQYXJ0eSUyMENvbXBvbmVudCUyMENBJTIwMjAxMi5jcnQwDAYDVR0TAQH/ # BAIwADANBgkqhkiG9w0BAQsFAAOCAQEAk+iGdVNjQ2VMiNXhflILGybQmTUMM+qd # BZ3KErdJ9wkVTN/fMukvmp9y1iF8Sz1NUqDNqiKLofcL0XukOu5W3zAofFlAs2tR # vf0ArWKgRP5gjpqXeo3xWRM/1LBYTDhwDmylfh36AnfErB+aHyoIr9an+2KqeIqj # 5VvFPgwJ1n6ZTXZMhjvYnIol/P+vwVroo2XKwbOL1/c79xRj7X8Lqw+7sVoIA9/P # ytqdSDV1ClBjltkRpdgwvbSDPzycfvN8V5pPFfkrqrcIHjaL2pe76nqRsEIPqiVQ # SmqiaJV6iprCSDGJYC4/4EMLIDZ4uf+m0XHW3Qzlr7RLlMdsJKny7jCCBeEwggPJ # oAMCAQICCmELqsEAAAAAAAkwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVT # MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK # ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290 # IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDEwMB4XDTEyMDQxODIzNDgzOFoXDTI3 # MDQxODIzNTgzOFowgY4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u # MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp # b24xODA2BgNVBAMTL01pY3Jvc29mdCBXaW5kb3dzIFRoaXJkIFBhcnR5IENvbXBv # bmVudCBDQSAyMDEyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo5ww # hAmnYy7PCkfw6iT5ozAgD15XMSaBmjEHslDUzmcJCGUKWqVLrtXtEC7npZm1n2gv # mItYAqwgtCnEcb0oHKX9PJtk5MXr32ElvPDuaL/Rp8t+KgKBTmRcDFOGeVcZN2G3 # mPkMoE4iWZv5Gy1nPCc8VpBm4/1/ZX0Phr01R+iKzPTajulqTqunVeyiiR7VM0VT # y/med73NLPkFuH90AR3o+xjhQ9EN6arcN2+9/rgP7R1NAUZOCqz8gujsVoMTjjoB # 7RRkdOpksmYQtmhtyHAAfVBILj1D7uAklcbNjsf9uOSVz91++5VeoQHNQ7EH16Qw # 7puGGipuwQtZonRviwIDAQABo4IBQzCCAT8wEAYJKwYBBAGCNxUBBAMCAQAwHQYD # VR0OBBYEFGFxp4ev/2nVIXZPUpMoAL55EquEMBkGCSsGAQQBgjcUAgQMHgoAUwB1 # AGIAQwBBMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaA # FNX2VsuP6KJcYmjRPZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9j # cmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8y # MDEwLTA2LTIzLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6 # Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAt # MDYtMjMuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBaimfazNX9DSZBd78KRni0s94S # aSt3I8JlLwFf0gP0YbpQnS6MOXLzbD5qsR52bey384LczLvFaXAoc2YXP1Tr7gEW # SMRG2RuAroE6jQ95bWiwnuotPznTyjh+vV58CG4Z3MbC9DgzaGHiUkeD4QABVtK6 # y4eCBTEKQYtO539fX+1f0zktReuiE7/9HsKYQXFhFl/ICnAlfFlpMSTkcecKuwQX # 959yHsnSuxq+PQL+CQyyQ7RZGplTk5YhX+DWtyYBQpU2rCf9vvSFd2g9GL30vpiI # IhGGUhbzRewDlxBwh6NwQ3E828mGAxcM9XNbxn3hXGTt18VI1+0y4tGq08+n9ldO # Yfl362fyiLPeANoDj9CKNDc+HdhiuNKx8+Evi3I7gZZ8b/zsZnZyYBsk8qCJbVtt # AC7vKN2GhwXCtLnlvmTCKvJKFVyY4sQnhf9S42J+D7ICC9dmxwqy0z0gBBRQMlmD # Cn2b7Vo4EgFSui9eIHKOSvH953ECjDvhB77Jc/TdR9i077SkszC5iT52yrkAmFZ+ # q+qKuKXQOKtpdxMLFC/pqkEf97q9Ois0iu4Kq2PmY/eIJI4gDSs7nePCSVKsnx8O # OTtd1G5QauZ9UjqqfDMVKQ0mXgFYp06pPXqEb3Q/YJ/kMk82AK9tcdM+pkZlX4F0 # 8f7BcdpMoEFagt3xHzGCGuowghrmAgEBMIGmMIGOMQswCQYDVQQGEwJVUzETMBEG # A1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWlj # cm9zb2Z0IENvcnBvcmF0aW9uMTgwNgYDVQQDEy9NaWNyb3NvZnQgV2luZG93cyBU # aGlyZCBQYXJ0eSBDb21wb25lbnQgQ0EgMjAxMgITMwAAAT/KxSgZC4k1WAAAAAAB # PzANBglghkgBZQMEAgEFAKCB+jAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAv # BgkqhkiG9w0BCQQxIgQgC0Ks46ZT58jpdBsRRqtdYH41Ska1tmmHIJ/c2UqMR8Aw # UAYKKwYBBAGCNwoDHDFCDEA4MDM4NjJEM0Y0NUYxRUQ0RDRDMTY1QkE2MDE3RTdE # QkQwMEUxRkVDQTBFNTE1MkM5QTQ0RDk0RDY5RjU3RTNCMFoGCisGAQQBgjcCAQwx # TDBKoCSAIgBNAGkAYwByAG8AcwBvAGYAdAAgAFcAaQBuAGQAbwB3AHOhIoAgaHR0 # cDovL3d3dy5taWNyb3NvZnQuY29tL3dpbmRvd3MwDQYJKoZIhvcNAQEBBQAEggGA # XMIoLkaJH9s7TKYcGvzI37T0yhMn3JZC2c9m11y1wMhVCQqTxOZXOXHbf0SzD7ed # 4E3wWfW++2KLOrrMqsZbZcRqtQeBc4w4V3f1GTsx794kZ+5c2BxGvQp/nzg69Wfg # TTjLLU97cuwXdaHghBjvAJluIwDrWVTc9D65LD1zV4UlXrMlz0QYUPleRLIycPtV # 7I/1ABYX3IrfKHmmpCkO4NJO19I/dpZpSylpB1eSEAx8cjC0S47vovqr2hUs15ov # 0lDupqQP/XoB2gOuXIjbO7D2+mObVLU30lqa8ORYwiZd4nbFUTc8fy0aSy/fTMSz # qZVq7yKW3+g85088LnR4a6r9Y//95zM1vcaogt+hYvDGhS8EWiDhvPVMkpINwB3j # C8C95EYZ6D82TK9A5XhfXawgvqN2mQYt+6lPbyTf5Fm2mBz1h6oYjXVNI7kWu7yN # 3zGvrm2eNyRYFY/dmLcmTnNv+kryjs9ol13uVUS/xF/cW75q+ZIxQTopALoG4c8S # oYIXlzCCF5MGCisGAQQBgjcDAwExgheDMIIXfwYJKoZIhvcNAQcCoIIXcDCCF2wC # AQMxDzANBglghkgBZQMEAgEFADCCAVIGCyqGSIb3DQEJEAEEoIIBQQSCAT0wggE5 # AgEBBgorBgEEAYRZCgMBMDEwDQYJYIZIAWUDBAIBBQAEIIfb7pNEJdPLOpMTAv/b # E0V+GUkkve9SAGB9axdRIHUiAgZp57G2IWcYEzIwMjYwNTA2MTU0OTQ2Ljg2Nlow # BIACAfSggdGkgc4wgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u # MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp # b24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJzAlBgNV # BAsTHm5TaGllbGQgVFNTIEVTTjo4OTAwLTA1RTAtRDk0NzElMCMGA1UEAxMcTWlj # cm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEe0wggcgMIIFCKADAgECAhMzAAAC # IkHS9qr/yLX/AAEAAAIiMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMw # EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN # aWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0 # YW1wIFBDQSAyMDEwMB4XDTI2MDIxOTE5Mzk1NloXDTI3MDUxNzE5Mzk1Nlowgcsx # CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt # b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1p # Y3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNT # IEVTTjo4OTAwLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3Rh # bXAgU2VydmljZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALW54om6 # Qi5SwAAmj8BjkNlGoftuGC/sJYY2UR1tEaghOt0Tpayfns1o27UFN2MFsVy/tF+L # G17TH4dG9dKqwP5Z5Jf/r/L3ATQzP7FE9MYhjbQrtpANrrw7LNXJR5QLKnJkL+Bb # /fK079k6dT0fauLvuQk/wAGurLLVTFf86x4SC8eyPzKKRZPQBG2uNZtcwcXNI6jm # FBx9SYxcqpZbPr43T5TKeEbLWf52hbhZmCkfxjlbuGlKiRaPUz8u7jCLejoPP29V # a6RyBQUaMsCXhhmk6FqHse6IL9qVciYxB/wLcDyr/r/WEWh4hkHhQaTLDEH85JM5 # Kwvr7f2kOrMzsKA6l/hXv32Q33jIz25ckjlP9KIDkx0hkiERbT5uHzlGoOHlhbf+ # hq/nhE/HDk4+UfrhBXoomSXQUgSUxWgs2jxRZFBwwPXv3HtYBKMLouxo1nvIrSpw # RIiwvXCJCZ19AHFyqsUKkhB+eZAWQ6n0jJdRarNry2anPwTppeD1vV6IBPc9VOCs # 6U+L+FhkJ8/Ff/qMa3I+PLUKLA6YlqaiGZJT/8I4B6d9FPYbYcxFSkJfXOz4CYOZ # 1AzVdFpvhhIAssCUPMYKyAjvuee4mOhcCWIma/s1+u9YBwDkqoJQ5ZDqRI+3mvbw # x8pdYkmlJe0V5L8yQPMnL+IlFXIdwXL8H4y3AgMBAAGjggFJMIIBRTAdBgNVHQ4E # FgQUWQfAagMnllsQSK7wqy2K6ypqjNAwHwYDVR0jBBgwFoAUn6cVXQBeYl2D9OXS # ZacbUzUZ6XIwXwYDVR0fBFgwVjBUoFKgUIZOaHR0cDovL3d3dy5taWNyb3NvZnQu # Y29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIw # MTAoMSkuY3JsMGwGCCsGAQUFBwEBBGAwXjBcBggrBgEFBQcwAoZQaHR0cDovL3d3 # dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUaW1lLVN0 # YW1wJTIwUENBJTIwMjAxMCgxKS5jcnQwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8E # DDAKBggrBgEFBQcDCDAOBgNVHQ8BAf8EBAMCB4AwDQYJKoZIhvcNAQELBQADggIB # AGIAz6equnAbb23FJe/jaj4KxN7YLhuhpF8WO70lpaQtMfCrumSc040vef5QbfH8 # HTzcQpeIVisCa6XsFMcIZdTrf/FGxnbCPdmZHQDh32d/2xoIlWbiO49UUFqL+iS0 # 45gfaP7X7MzvTCg3mieAH+m/LtfwB9jokHhc+9vzRDPt9jl511ufCPODWxmFQ8Vt # tzB5Z4AIg2vOoUrraYx5cqaG258ytqiiAl4ld9ZjfHj+lu5uAQ1Pf6ldPrnbTcI8 # X2R90oTsYoAhFjLfGQFMO8V3x25+M6kKffycrqoyVW2cGMOFZAbQ8zcT+jEGzlQG # sjqkFiSYge1uOJ8Oq4dP5OFpVXvEdzoiehJzdo3Nfj0kdSBCa68N0yMuRthd4DT/ # WrkjFKDZT7JxkE68CLe51k8qEDlXM4ON/+5y7+8W1ethxGSYYo3eO6Norf/IxmLY # m7k0QvchJaivCntGN5mD4kwgrR+iy5WP5gKbmvrgsf8P1AkMCP5d9lo14V2/3Qrk # DRBFEY/+mgH3JMhWMReP+4nOnwvgN3jiwCq6oM6Id2QuDF8ryc+qkJJY9n0b5EI+ # bzmj1wB/EQ22tK47BynIrPGxEJgIv48rj73yiuK30RUn8sugJ4b6MuWPQpoPhDLq # xl7itYyvVutAuixMFk3AWdfE2MicJYF3SLuKzXJNL/ipMIIHcTCCBVmgAwIBAgIT # MwAAABXF52ueAptJmQAAAAAAFTANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMC # VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV # BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJv # b3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMjEwOTMwMTgyMjI1WhcN # MzAwOTMwMTgzMjI1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv # bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0 # aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCAiIw # DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOThpkzntHIhC3miy9ckeb0O1YLT # /e6cBwfSqWxOdcjKNVf2AX9sSuDivbk+F2Az/1xPx2b3lVNxWuJ+Slr+uDZnhUYj # DLWNE893MsAQGOhgfWpSg0S3po5GawcU88V29YZQ3MFEyHFcUTE3oAo4bo3t1w/Y # JlN8OWECesSq/XJprx2rrPY2vjUmZNqYO7oaezOtgFt+jBAcnVL+tuhiJdxqD89d # 9P6OU8/W7IVWTe/dvI2k45GPsjksUZzpcGkNyjYtcI4xyDUoveO0hyTD4MmPfrVU # j9z6BVWYbWg7mka97aSueik3rMvrg0XnRm7KMtXAhjBcTyziYrLNueKNiOSWrAFK # u75xqRdbZ2De+JKRHh09/SDPc31BmkZ1zcRfNN0Sidb9pSB9fvzZnkXftnIv231f # gLrbqn427DZM9ituqBJR6L8FA6PRc6ZNN3SUHDSCD/AQ8rdHGO2n6Jl8P0zbr17C # 89XYcz1DTsEzOUyOArxCaC4Q6oRRRuLRvWoYWmEBc8pnol7XKHYC4jMYctenIPDC # +hIK12NvDMk2ZItboKaDIV1fMHSRlJTYuVD5C4lh8zYGNRiER9vcG9H9stQcxWv2 # XFJRXRLbJbqvUAV6bMURHXLvjflSxIUXk8A8FdsaN8cIFRg/eKtFtvUeh17aj54W # cmnGrnu3tz5q4i6tAgMBAAGjggHdMIIB2TASBgkrBgEEAYI3FQEEBQIDAQABMCMG # CSsGAQQBgjcVAgQWBBQqp1L+ZMSavoKRPEY1Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cV # XQBeYl2D9OXSZacbUzUZ6XIwXAYDVR0gBFUwUzBRBgwrBgEEAYI3TIN9AQEwQTA/ # BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2Nz # L1JlcG9zaXRvcnkuaHRtMBMGA1UdJQQMMAoGCCsGAQUFBwMIMBkGCSsGAQQBgjcU # AgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8G # A1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJoEeG # RWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jv # b0NlckF1dF8yMDEwLTA2LTIzLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUH # MAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljUm9vQ2Vy # QXV0XzIwMTAtMDYtMjMuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCdVX38Kq3hLB9n # ATEkW+Geckv8qW/qXBS2Pk5HZHixBpOXPTEztTnXwnE2P9pkbHzQdTltuw8x5MKP # +2zRoZQYIu7pZmc6U03dmLq2HnjYNi6cqYJWAAOwBb6J6Gngugnue99qb74py27Y # P0h1AdkY3m2CDPVtI1TkeFN1JFe53Z/zjj3G82jfZfakVqr3lbYoVSfQJL1AoL8Z # thISEV09J+BAljis9/kpicO8F7BUhUKz/AyeixmJ5/ALaoHCgRlCGVJ1ijbCHcNh # cy4sa3tuPywJeBTpkbKpW99Jo3QMvOyRgNI95ko+ZjtPu4b6MhrZlvSP9pEB9s7G # dP32THJvEKt1MMU0sHrYUP4KWN1APMdUbZ1jdEgssU5HLcEUBHG/ZPkkvnNtyo4J # vbMBV0lUZNlz138eW0QBjloZkWsNn6Qo3GcZKCS6OEuabvshVGtqRRFHqfG3rsjo # iV5PndLQTHa1V1QJsWkBRH58oWFsc/4Ku+xBZj1p/cvBQUl+fpO+y/g75LcVv7TO # PqUxUYS8vwLBgqJ7Fx0ViY1w/ue10CgaiQuPNtq6TPmb/wrpNPgkNWcr4A245oyZ # 1uEi6vAnQj0llOZ0dFtq0Z4+7X6gMTN9vMvpe784cETRkPHIqzqKOghif9lwY1NN # je6CbaUFEMFxBmoQtB1VM1izoXBm8qGCA1AwggI4AgEBMIH5oYHRpIHOMIHLMQsw # CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u # ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNy # b3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBF # U046ODkwMC0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1w # IFNlcnZpY2WiIwoBATAHBgUrDgMCGgMVALvJxdVnHduwOkmSvtW5yCmSyjO4oIGD # MIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNV # BAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQG # A1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwDQYJKoZIhvcNAQEL # BQACBQDtpUuvMCIYDzIwMjYwNTA2MDUxMDA3WhgPMjAyNjA1MDcwNTEwMDdaMHcw # PQYKKwYBBAGEWQoEATEvMC0wCgIFAO2lS68CAQAwCgIBAAICBj0CAf8wBwIBAAIC # EyowCgIFAO2mnS8CAQAwNgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoDAqAK # MAgCAQACAwehIKEKMAgCAQACAwGGoDANBgkqhkiG9w0BAQsFAAOCAQEANqSk/+1k # a2f1Twz6Ttmrj0+zKdfcq/fTRDiBc5P2vgbzlidqQc/19pp9flHwSd2W1osGDrBl # FDldr5KQBIbTO7hUrIlJu/gRK0DBjwFj/Yvy3FGSHfyanAUnFflt0oCibhm2v7Qy # 8mmeCOUlu4L8Ug99fS6l2lSe4/+41VIQprkUClsED8+/Gz7cBHFoIfB91wiOwIDu # +/Hv32BGEYKiJh0MDIav3EPOWGOTL9HIl5szUCUATI1mUB+3SYyzH7Lfc9TtcZ3y # biQS8PfABaGGWnH27li/CETD2Kmv3Qzbv5xzsjOFCn/TtNDbMSO6wvzvnOhgCHrN # uROtorHwpszNhjGCBA0wggQJAgEBMIGTMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQI # EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv # ZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBD # QSAyMDEwAhMzAAACIkHS9qr/yLX/AAEAAAIiMA0GCWCGSAFlAwQCAQUAoIIBSjAa # BgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEIEpZUPCH # K36cP407JJMGquKRRGko+KDBIHO/P2/+HeZTMIH6BgsqhkiG9w0BCRACLzGB6jCB # 5zCB5DCBvQQgBWBdAQoE58aCM2ySYM6ZtwQg6ccY3AD5BxG58NHkCRMwgZgwgYCk # fjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH # UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD # Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAiJB0vaq/8i1/wAB # AAACIjAiBCB/9y65EABFUYjGjbSJ2q80tMsL6gTLpM1hL3cLTJquwDANBgkqhkiG # 9w0BAQsFAASCAgASkTAudeVrdMq+cH9Qjh/n3NMVcgRsJ6xqTkiBYU4+/Fkn53E3 # X9m5g5om/L5eRHSzBfMHhyHIT8sVqzF1Xbw+XZ/RSjCcfEbx9OzkOEd2ZXRKX+J3 # kr+fxMJ5eOA1uqquL8+JWGAaYYSH1NGba49X7An10WxelhGxdYrD6j9GL5G53923 # FD3bJBgu7c7ge1V6nbR0uMS3rqMJli43fxK36YchpGiwDfxpH4CiAsoUIKqP1sN6 # Izt2W3MWU1L7izSf59yvlIHrUlKBjqJvdEKzFdyq4jrqpr6M4XKEFeiBQmgsf0HE # QYACiKFfE/ZFSH5/M6hTIE/i+WkqiNixjAtKpBfGvC+K//NiR3sDFT81PwaAEOzc # re1D5i3hu+6HMEOlEkrh8m7nRZql+sVpux0o8afXBv4vk4YU8UjXx5ceOZji+qHi # neortqMxQPrJ9Xsh1+armWv6XdlcbS1GvfsD7aYY2+7ZBRzW+K/K+KXd/U3InfUQ # GIFGZb63x/rHRqHnhnmN5fyfJ7bxFfWfAEFiNi4D3xB/m27/PhvOYkcXzaXCbO6/ # Sb9NM10bF0W/3aItv6oM74bkFiiQr85sX00eDYb1T6jor8GuJUSyrpXCgd5Dj0bO # xSiTI8W2MPg1hX1gU6SusF9eXuIVnfpNLL5vm7vuQGaYk30HYf8E7VlYkA== # SIG # End signature block x

Windows NT KPTV 6.2 build 9200 (Windows Server 2012 Datacenter Edition) i586