Created
April 15, 2024 11:17
-
-
Save SkipToTheEndpoint/806892e1a013698e1acbb6fbf9ddbbe8 to your computer and use it in GitHub Desktop.
HardwareConfigurationRemediateScript
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #============================================================================================================================= | |
| # | |
| # Script Name: HardwareConfigurationRemediateScript.ps1 | |
| # Description: Purpose of this script is to remediate HardwareConfiguration policy. | |
| # | |
| #============================================================================================================================= | |
| # Define Variables | |
| param( | |
| [Parameter(Mandatory=$true)] | |
| [string] | |
| $fileName, | |
| [Parameter(Mandatory=$true)] | |
| [string] | |
| $newPolicyVersion, | |
| [Parameter(Mandatory=$true)] | |
| [string] | |
| $policyId, | |
| [Parameter(Mandatory=$true)] | |
| [string] | |
| $fileToWriteContent | |
| ) | |
| $fileName = $fileName.Trim("`"'") | |
| $newPolicyVersion = $newPolicyVersion.Trim("`"'") | |
| $policyId = $policyId.Trim("`"'") | |
| $newPolicyVersionInt = [int]$newPolicyVersion | |
| $fileToWriteContent = $fileToWriteContent.Trim("`"'") | |
| $intuneHardwareConfigPolicyVersionPath = "HKLM:\SOFTWARE\Microsoft\IntuneManagementExtension\HardwareConfig" | |
| $statusValueName = "Status" | |
| $versionName = "PolicyVersion" | |
| $agentMsgName = "AgentErrMsg" | |
| $destPathName = "ConfigFileDropPath" | |
| $biosLockedStateName = "IsBiosLocked" | |
| $biosLockedPasswordKeyName = "BiosLockedPasswordGuidKey" | |
| $metadataChangeDetectedName = "IsMetadataChangeDetected" | |
| $destinationPath = "$Env:WinDir\IMECache\HardwareConfiguration" | |
| $sourcePath = "$Env:WinDir\IMECache\HealthScripts" | |
| #####COMMON HELPER FUNCTIONS##### | |
| function Test-RegPathExists | |
| { | |
| param( | |
| [Parameter(Mandatory=$true)] | |
| [string] | |
| $RegPath | |
| ) | |
| if(Test-Path -Path $RegPath -PathType Container) | |
| { | |
| return $true | |
| } | |
| else | |
| { | |
| return $false | |
| } | |
| } | |
| function Test-RegValueExists | |
| { | |
| param( | |
| [Parameter(Mandatory=$true)] | |
| [string] | |
| $RegPath, | |
| [Parameter(Mandatory=$true)] | |
| [string] | |
| $ValueName | |
| ) | |
| if(Test-RegPathExists -RegPath $RegPath) | |
| { | |
| $propertyList = Get-ItemProperty -Path $RegPath | |
| if($propertyList) | |
| { | |
| if(Get-Member -InputObject $propertyList -Name $ValueName) | |
| { | |
| return $true | |
| } | |
| } | |
| } | |
| return $false | |
| } | |
| function Test-AgentInstalled | |
| { | |
| param( | |
| [Parameter(Mandatory=$true)] | |
| [string] | |
| $RegPath, | |
| [Parameter(Mandatory=$true)] | |
| [string] | |
| $ValueName, | |
| [Parameter(Mandatory=$false)] | |
| [string] | |
| $ExpectedValue | |
| ) | |
| if(Test-RegValueExists -RegPath $RegPath -ValueName $ValueName) | |
| { | |
| if($ExpectedValue) | |
| { | |
| $value = Get-ItemPropertyValue -Path $RegPath -Name $ValueName | |
| if($value -eq $ExpectedValue) | |
| { | |
| return $true | |
| } | |
| } | |
| else | |
| { | |
| return $true | |
| } | |
| } | |
| return $false | |
| } | |
| function ExitWithStatus | |
| { | |
| param( | |
| [Parameter(Mandatory=$true)] | |
| [int] | |
| $ExitCode | |
| ) | |
| #$host.SetShouldExit($ExitCode) #non-zero means remediation needed | |
| exit $ExitCode #TODO: uncomment when ready to use | |
| } | |
| #####END COMMON HELPER FUNCTIONS##### | |
| $hardwareConfigPolicyVersionFullPath = (Join-Path -Path $intuneHardwareConfigPolicyVersionPath -ChildPath $policyId).ToString() | |
| if (Test-RegValueExists -RegPath $hardwareConfigPolicyVersionFullPath -ValueName $statusValueName) | |
| { | |
| $currentStatus = Get-ItemPropertyValue -Path $hardwareConfigPolicyVersionFullPath -Name $statusValueName | |
| } | |
| #$filePresent = (Get-ChildItem $destinationPath -File | MeasureObject).Count -ne 0 | |
| $curVersion = -1 | |
| if (Test-RegValueExists -RegPath $hardwareConfigPolicyVersionFullPath -ValueName $versionName) | |
| { | |
| $curVersion = Get-ItemPropertyValue -Path $hardwareConfigPolicyVersionFullPath -Name $versionName | |
| } | |
| $isMetadataChangeDetected = "false" | |
| if(Test-RegValueExists -RegPath $intuneHardwareConfigPolicyVersionPath -ValueName $metadataChangeDetectedName) | |
| { | |
| $isMetadataChangeDetected = Get-ItemPropertyValue -Path $intuneHardwareConfigPolicyVersionPath -Name $metadataChangeDetectedName | |
| } | |
| #private function decls | |
| function CopyConfigFilesAndVersion() | |
| { | |
| # copy config and metadata files under policyid subdirectory | |
| # We always keep latest version of config and metadata files in the shared folder | |
| $fileDestinationPath = (Join-Path -Path $destinationPath -ChildPath $policyId).ToString() | |
| #ensure target directory exists | |
| if ((Test-Path -Path $fileDestinationPath -PathType Container) -eq $false) | |
| { | |
| New-Item -ItemType Directory -Path $fileDestinationPath | |
| $destAcl = Get-Acl -Path $fileDestinationPath | |
| $sysRule = New-Object System.Security.AccessControl.FileSystemAccessRule("NT AUTHORITY\SYSTEM","Modify","Allow") | |
| $usrRule = New-Object System.Security.AccessControl.FileSystemAccessRule("BUILTIN\Users","ReadData","Allow") | |
| $destAcl.SetAccessRule($sysRule) | |
| $usrDeny = New-Object System.Security.AccessControl.FileSystemAccessRule("BUILTIN\Users","ReadAndExecute","Allow") | |
| $destAcl.RemoveAccessRule($usrDeny) | |
| $destAcl.SetAccessRule($usrRule) | |
| $destAcl.SetAccessRuleProtection($true, $false) | |
| Set-Acl -Path $fileDestinationPath -AclObject $destAcl | |
| } | |
| else | |
| { | |
| # if the files already exists in the policy folder (That means, OEM Agent not processed previous version files), | |
| # then delete old version files. | |
| Get-ChildItem -Path $fileDestinationPath -File | Remove-Item -Verbose | |
| } | |
| $prefix = [System.IO.Path]::GetRandomFileName().Substring(0,8) | |
| # copy metadata | |
| $folderName = $policyId + "_" + $newPolicyVersion | |
| $uniqueMetadataFileName = ($prefix + "_metadata.json") | |
| $metadataDestinationfile = (Join-Path -Path $fileDestinationPath -ChildPath $uniqueMetadataFileName).ToString() | |
| Copy-Item -Path([IO.Path]::Combine($sourcePath, $folderName, "metadata.json")).ToString() -Destination $metadataDestinationfile | |
| #write blob | |
| $fileNameToWrite = $prefix + "_" + $fileName | |
| $contentsToWrite = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($fileToWriteContent)) | |
| $destinationfile = (Join-Path -Path $fileDestinationPath -ChildPath $fileNameToWrite).ToString() | |
| Set-Content -Path $destinationfile -Value $contentsToWrite -NoNewline | |
| #registry flag settings | |
| if (Test-RegValueExists -RegPath $hardwareConfigPolicyVersionFullPath -ValueName $versionName) | |
| { | |
| Set-ItemProperty -Path $hardwareConfigPolicyVersionFullPath -Name $versionName -Value $newPolicyVersion -Force | |
| Set-ItemProperty -Path $hardwareConfigPolicyVersionFullPath -Name $destPathName -Value $fileDestinationPath -Force | |
| } | |
| else | |
| { | |
| if ((Test-RegPathExists -RegPath $hardwareConfigPolicyVersionFullPath) -eq $false) | |
| { | |
| New-Item -Path $hardwareConfigPolicyVersionFullPath -Force | |
| } | |
| New-ItemProperty -Path $hardwareConfigPolicyVersionFullPath -Name $versionName -Value $newPolicyVersion -PropertyType Dword -Force | |
| New-ItemProperty -Path $hardwareConfigPolicyVersionFullPath -Name $destPathName -Value $fileDestinationPath -PropertyType String -Force | |
| } | |
| } | |
| function SetState() | |
| { | |
| param( | |
| [Parameter(Mandatory =$false)] | |
| [string] | |
| $newVal | |
| ) | |
| if (Test-RegValueExists -RegPath $hardwareConfigPolicyVersionFullPath -ValueName $statusValueName) | |
| { | |
| Set-ItemProperty -Path $hardwareConfigPolicyVersionFullPath -Name $statusValueName -Value $newVal -Force | |
| #reset the flag to false. | |
| Set-ItemProperty -Path $intuneHardwareConfigPolicyVersionPath -Name $metadataChangeDetectedName -Value "false" -Force | |
| } | |
| else | |
| { | |
| if ((Test-RegPathExists -RegPath $hardwareConfigPolicyVersionFullPath) -eq $false) | |
| { | |
| New-Item -Path $hardwareConfigPolicyVersionFullPath -Force | |
| } | |
| New-ItemProperty -Path $hardwareConfigPolicyVersionFullPath -Name $statusValueName -Value $newVal -PropertyType String -Force | |
| } | |
| #Create bios locked state registry value if it doesn't exist. | |
| if(!(Test-RegValueExists -RegPath $intuneHardwareConfigPolicyVersionPath -ValueName $biosLockedStateName)) | |
| { | |
| New-ItemProperty -Path $intuneHardwareConfigPolicyVersionPath -Name $biosLockedStateName -Value "false" -PropertyType String -Force | |
| } | |
| #Create bios locked password key registry value if it doesn't exist. | |
| if(!(Test-RegValueExists -RegPath $intuneHardwareConfigPolicyVersionPath -ValueName $biosLockedPasswordKeyName)) | |
| { | |
| New-ItemProperty -Path $intuneHardwareConfigPolicyVersionPath -Name $biosLockedPasswordKeyName -Value "" -PropertyType String -Force | |
| } | |
| #Create metadata change detect registry value if it doesn't exist. | |
| if(!(Test-RegValueExists -RegPath $intuneHardwareConfigPolicyVersionPath -ValueName $metadataChangeDetectedName)) | |
| { | |
| New-ItemProperty -Path $intuneHardwareConfigPolicyVersionPath -Name $metadataChangeDetectedName -Value "false" -PropertyType String -Force | |
| } | |
| } | |
| #only need to update if version is newer or metadata has changed or current state is failed | |
| if ((($currentStatus -eq "Failed") -or ($currentStatus -eq "Error")) -and ($newPolicyVersionInt -ge $curVersion)) | |
| { | |
| # Clear agent error message | |
| if (Test-RegValueExists -RegPath $hardwareConfigPolicyVersionFullPath -ValueName $agentMsgName) | |
| { | |
| Set-ItemProperty -Path $hardwareConfigPolicyVersionFullPath -Name $agentMsgName -Value "" -Force | |
| } | |
| # retry policy | |
| if ($newPolicyVersionInt -ge $curVersion) | |
| { | |
| CopyConfigFilesAndVersion | |
| SetState("Pending"); | |
| } | |
| } | |
| elseif(($newPolicyVersionInt -gt $curVersion) -or $isMetadataChangeDetected -eq "true") | |
| { | |
| CopyConfigFilesAndVersion | |
| SetState("Pending"); | |
| } | |
| ExitWithStatus -ExitCode 0 | |
| # SIG # Begin signature block | |
| # MIIn5gYJKoZIhvcNAQcCoIIn1zCCJ9MCAQExDzANBglghkgBZQMEAgEFADB5Bgor | |
| # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG | |
| # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCLHpKZI3U0AA7J | |
| # ujxOQSZ6Z6dIF2fBy1Jb0DWiU/ZSIqCCDYUwggYDMIID66ADAgECAhMzAAADri01 | |
| # UchTj1UdAAAAAAOuMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD | |
| # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy | |
| # b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p | |
| # bmcgUENBIDIwMTEwHhcNMjMxMTE2MTkwODU5WhcNMjQxMTE0MTkwODU5WjB0MQsw | |
| # CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u | |
| # ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy | |
| # b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB | |
| # AQD0IPymNjfDEKg+YyE6SjDvJwKW1+pieqTjAY0CnOHZ1Nj5irGjNZPMlQ4HfxXG | |
| # yAVCZcEWE4x2sZgam872R1s0+TAelOtbqFmoW4suJHAYoTHhkznNVKpscm5fZ899 | |
| # QnReZv5WtWwbD8HAFXbPPStW2JKCqPcZ54Y6wbuWV9bKtKPImqbkMcTejTgEAj82 | |
| # 6GQc6/Th66Koka8cUIvz59e/IP04DGrh9wkq2jIFvQ8EDegw1B4KyJTIs76+hmpV | |
| # M5SwBZjRs3liOQrierkNVo11WuujB3kBf2CbPoP9MlOyyezqkMIbTRj4OHeKlamd | |
| # WaSFhwHLJRIQpfc8sLwOSIBBAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE | |
| # AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUhx/vdKmXhwc4WiWXbsf0I53h8T8w | |
| # VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh | |
| # dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMTgzNjAfBgNVHSMEGDAW | |
| # gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v | |
| # d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw | |
| # MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov | |
| # L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx | |
| # XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB | |
| # AGrJYDUS7s8o0yNprGXRXuAnRcHKxSjFmW4wclcUTYsQZkhnbMwthWM6cAYb/h2W | |
| # 5GNKtlmj/y/CThe3y/o0EH2h+jwfU/9eJ0fK1ZO/2WD0xi777qU+a7l8KjMPdwjY | |
| # 0tk9bYEGEZfYPRHy1AGPQVuZlG4i5ymJDsMrcIcqV8pxzsw/yk/O4y/nlOjHz4oV | |
| # APU0br5t9tgD8E08GSDi3I6H57Ftod9w26h0MlQiOr10Xqhr5iPLS7SlQwj8HW37 | |
| # ybqsmjQpKhmWul6xiXSNGGm36GarHy4Q1egYlxhlUnk3ZKSr3QtWIo1GGL03hT57 | |
| # xzjL25fKiZQX/q+II8nuG5M0Qmjvl6Egltr4hZ3e3FQRzRHfLoNPq3ELpxbWdH8t | |
| # Nuj0j/x9Crnfwbki8n57mJKI5JVWRWTSLmbTcDDLkTZlJLg9V1BIJwXGY3i2kR9i | |
| # 5HsADL8YlW0gMWVSlKB1eiSlK6LmFi0rVH16dde+j5T/EaQtFz6qngN7d1lvO7uk | |
| # 6rtX+MLKG4LDRsQgBTi6sIYiKntMjoYFHMPvI/OMUip5ljtLitVbkFGfagSqmbxK | |
| # 7rJMhC8wiTzHanBg1Rrbff1niBbnFbbV4UDmYumjs1FIpFCazk6AADXxoKCo5TsO | |
| # zSHqr9gHgGYQC2hMyX9MGLIpowYCURx3L7kUiGbOiMwaMIIHejCCBWKgAwIBAgIK | |
| # YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV | |
| # BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv | |
| # c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm | |
| # aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw | |
| # OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE | |
| # BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD | |
| # VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG | |
| # 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la | |
| # UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc | |
| # 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D | |
| # dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ | |
| # lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk | |
| # kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 | |
| # A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd | |
| # X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL | |
| # 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd | |
| # sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 | |
| # T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS | |
| # 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI | |
| # bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL | |
| # BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD | |
| # uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv | |
| # c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf | |
| # MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 | |
| # dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf | |
| # MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF | |
| # BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h | |
| # cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA | |
| # YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn | |
| # 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 | |
| # v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b | |
| # pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ | |
| # KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy | |
| # CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp | |
| # mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi | |
| # hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb | |
| # BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS | |
| # oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL | |
| # gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX | |
| # cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGbcwghmzAgEBMIGVMH4x | |
| # CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt | |
| # b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p | |
| # Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAOuLTVRyFOPVR0AAAAA | |
| # A64wDQYJYIZIAWUDBAIBBQCggcYwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw | |
| # HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIJh/ | |
| # rj3w9OwUJLAXx8zC18rgAoqQXrWZUFjyRsIQmJUBMFoGCisGAQQBgjcCAQwxTDBK | |
| # oCyAKgBNAGkAYwByAG8AcwBvAGYAdAAgAEMAbwByAHAAbwByAGEAdABpAG8AbqEa | |
| # gBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEBBQAEggEASlY9 | |
| # 6zU3GK872cE/xab3jeES+ezwUIOTbsbdfpMud1YXQQdXfAMO52WFX/9rqRQRpIFh | |
| # bSGqhY1H6pgB3FGZbqD4kAwFcAX3x1cYYi4ERYtIVhNlm8h5Ail3VPR2HCfujhvo | |
| # ZKR5pGAMqDfDxPcloY4pcW8Z+VWkXXTxXdScedZ7MGFljetSqlTv0G5y1jKwd3oZ | |
| # SV3sq3qKDYpxF1Yl/N5tVypS6zod6B4b9+DxRbJA8sw8kcbde/Ij03MvshKdjokb | |
| # d1ikD+bzdJ26c/oFUg5LtoOd7vw7ahEzAuQOCajVYb4RDdDKwnO4HxWUJN7ndwq3 | |
| # CqXfBlvu20v/JNDpnKGCFykwghclBgorBgEEAYI3AwMBMYIXFTCCFxEGCSqGSIb3 | |
| # DQEHAqCCFwIwghb+AgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFZBgsqhkiG9w0BCRAB | |
| # BKCCAUgEggFEMIIBQAIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFlAwQCAQUABCDd | |
| # 0KY+hDc2gu1vL6WGstCTXTc+tnntkUHjwZm+KwK0jAIGZdXhbeDUGBMyMDI0MDIy | |
| # OTIxMzAwNC42NzhaMASAAgH0oIHYpIHVMIHSMQswCQYDVQQGEwJVUzETMBEGA1UE | |
| # CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z | |
| # b2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVy | |
| # YXRpb25zIExpbWl0ZWQxJjAkBgNVBAsTHVRoYWxlcyBUU1MgRVNOOjJBRDQtNEI5 | |
| # Mi1GQTAxMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloIIR | |
| # eDCCBycwggUPoAMCAQICEzMAAAHenkielp8oRD0AAQAAAd4wDQYJKoZIhvcNAQEL | |
| # BQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT | |
| # B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE | |
| # AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwHhcNMjMxMDEyMTkwNzEy | |
| # WhcNMjUwMTEwMTkwNzEyWjCB0jELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp | |
| # bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw | |
| # b3JhdGlvbjEtMCsGA1UECxMkTWljcm9zb2Z0IElyZWxhbmQgT3BlcmF0aW9ucyBM | |
| # aW1pdGVkMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjoyQUQ0LTRCOTItRkEwMTEl | |
| # MCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCCAiIwDQYJKoZI | |
| # hvcNAQEBBQADggIPADCCAgoCggIBALSB9ByF9UIDhA6xFrOniw/xsDl8sSi9rOCO | |
| # XSSO4VMQjnNGAo5VHx0iijMEMH9LY2SUIBkVQS0Ml6kR+TagkUPbaEpwjhQ1mprh | |
| # RgJT/jlSnic42VDAo0en4JI6xnXoAoWoKySY8/ROIKdpphgI7OJb4XHk1P3sX2pN | |
| # Z32LDY1ktchK1/hWyPlblaXAHRu0E3ynvwrS8/bcorANO6DjuysyS9zUmr+w3H3A | |
| # EvSgs2ReuLj2pkBcfW1UPCFudLd7IPZ2RC4odQcEPnY12jypYPnS6yZAs0pLpq0K | |
| # RFUyB1x6x6OU73sudiHON16mE0l6LLT9OmGo0S94Bxg3N/3aE6fUbnVoemVc7FkF | |
| # Lum8KkZcbQ7cOHSAWGJxdCvo5OtUtRdSqf85FklCXIIkg4sm7nM9TktUVfO0kp6k | |
| # x7mysgD0Qrxx6/5oaqnwOTWLNzK+BCi1G7nUD1pteuXvQp8fE1KpTjnG/1OJeehw | |
| # KNNPjGt98V0BmogZTe3SxBkOeOQyLA++5Hyg/L68pe+DrZoZPXJaGU/iBiFmL+ul | |
| # /Oi3d83zLAHlHQmH/VGNBfRwP+ixvqhyk/EebwuXVJY+rTyfbRfuh9n0AaMhhNxx | |
| # g6tGKyZS4EAEiDxrF9mAZEy8e8rf6dlKIX5d3aQLo9fDda1ZTOw+XAcAvj2/N3DL | |
| # VGZlHnHlAgMBAAGjggFJMIIBRTAdBgNVHQ4EFgQUazAmbxseaapgdxzK8Os+naPQ | |
| # EsgwHwYDVR0jBBgwFoAUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXwYDVR0fBFgwVjBU | |
| # oFKgUIZOaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9z | |
| # b2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3JsMGwGCCsGAQUFBwEB | |
| # BGAwXjBcBggrBgEFBQcwAoZQaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9w | |
| # cy9jZXJ0cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5j | |
| # cnQwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAOBgNVHQ8B | |
| # Af8EBAMCB4AwDQYJKoZIhvcNAQELBQADggIBAOKUwHsXDacGOvUIgs5HDgPs0LZ1 | |
| # qyHS6C6wfKlLaD36tZfbWt1x+GMiazSuy+GsxiVHzkhMW+FqK8gruLQWN/sOCX+f | |
| # GUgT9LT21cRIpcZj4/ZFIvwtkBcsCz1XEUsXYOSJUPitY7E8bbldmmhYZ29p+XQp | |
| # IcsG/q+YjkqBW9mw0ru1MfxMTQs9MTDiD28gAVGrPA3NykiSChvdqS7VX+/LcEz9 | |
| # Ubzto/w28WA8HOCHqBTbDRHmiP7MIj+SQmI9VIayYsIGRjvelmNa0OvbU9CJSz/N | |
| # fMEgf2NHMZUYW8KqWEjIjPfHIKxWlNMYhuWfWRSHZCKyIANA0aJL4soHQtzzZ2Mn | |
| # NfjYY851wHYjGgwUj/hlLRgQO5S30Zx78GqBKfylp25aOWJ/qPhC+DXM2gXajIXb | |
| # l+jpGcVANwtFFujCJRdZbeH1R+Q41FjgBg4m3OTFDGot5DSuVkQgjku7pOVPtldE | |
| # 46QlDg/2WhPpTQxXH64sP1GfkAwUtt6rrZM/PCwRG6girYmnTRLLsicBhoYLh+EE | |
| # FjVviXAGTk6pnu8jx/4WPWu0jsz7yFzg82/FMqCk9wK3LvyLAyDHN+FxbHAxtgwa | |
| # d7oLQPM0WGERdB1umPCIiYsSf/j79EqHdoNwQYROVm+ZX10RX3n6bRmAnskeNhi0 | |
| # wnVaeVogLMdGD+nqMIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJmQAAAAAAFTAN | |
| # BgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0 | |
| # b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh | |
| # dGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9y | |
| # aXR5IDIwMTAwHhcNMjEwOTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1WjB8MQswCQYD | |
| # VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe | |
| # MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3Nv | |
| # ZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC | |
| # AgoCggIBAOThpkzntHIhC3miy9ckeb0O1YLT/e6cBwfSqWxOdcjKNVf2AX9sSuDi | |
| # vbk+F2Az/1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQGOhgfWpSg0S3po5G | |
| # awcU88V29YZQ3MFEyHFcUTE3oAo4bo3t1w/YJlN8OWECesSq/XJprx2rrPY2vjUm | |
| # ZNqYO7oaezOtgFt+jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/dvI2k45GPsjks | |
| # UZzpcGkNyjYtcI4xyDUoveO0hyTD4MmPfrVUj9z6BVWYbWg7mka97aSueik3rMvr | |
| # g0XnRm7KMtXAhjBcTyziYrLNueKNiOSWrAFKu75xqRdbZ2De+JKRHh09/SDPc31B | |
| # mkZ1zcRfNN0Sidb9pSB9fvzZnkXftnIv231fgLrbqn427DZM9ituqBJR6L8FA6PR | |
| # c6ZNN3SUHDSCD/AQ8rdHGO2n6Jl8P0zbr17C89XYcz1DTsEzOUyOArxCaC4Q6oRR | |
| # RuLRvWoYWmEBc8pnol7XKHYC4jMYctenIPDC+hIK12NvDMk2ZItboKaDIV1fMHSR | |
| # lJTYuVD5C4lh8zYGNRiER9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6bMURHXLvjflS | |
| # xIUXk8A8FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3tz5q4i6tAgMBAAGjggHd | |
| # MIIB2TASBgkrBgEEAYI3FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQWBBQqp1L+ZMSa | |
| # voKRPEY1Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXAYD | |
| # VR0gBFUwUzBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3 | |
| # dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMBMGA1Ud | |
| # JQQMMAoGCCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud | |
| # DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjR | |
| # PZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0 | |
| # LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNy | |
| # bDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9z | |
| # b2Z0LmNvbS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MA0G | |
| # CSqGSIb3DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Geckv8qW/qXBS2Pk5HZHix | |
| # BpOXPTEztTnXwnE2P9pkbHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6U03dmLq2HnjY | |
| # Ni6cqYJWAAOwBb6J6Gngugnue99qb74py27YP0h1AdkY3m2CDPVtI1TkeFN1JFe5 | |
| # 3Z/zjj3G82jfZfakVqr3lbYoVSfQJL1AoL8ZthISEV09J+BAljis9/kpicO8F7BU | |
| # hUKz/AyeixmJ5/ALaoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTpkbKpW99Jo3QM | |
| # vOyRgNI95ko+ZjtPu4b6MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0sHrYUP4KWN1A | |
| # PMdUbZ1jdEgssU5HLcEUBHG/ZPkkvnNtyo4JvbMBV0lUZNlz138eW0QBjloZkWsN | |
| # n6Qo3GcZKCS6OEuabvshVGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJsWkBRH58oWFs | |
| # c/4Ku+xBZj1p/cvBQUl+fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7Fx0ViY1w/ue1 | |
| # 0CgaiQuPNtq6TPmb/wrpNPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0dFtq0Z4+7X6g | |
| # MTN9vMvpe784cETRkPHIqzqKOghif9lwY1NNje6CbaUFEMFxBmoQtB1VM1izoXBm | |
| # 8qGCAtQwggI9AgEBMIIBAKGB2KSB1TCB0jELMAkGA1UEBhMCVVMxEzARBgNVBAgT | |
| # Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m | |
| # dCBDb3Jwb3JhdGlvbjEtMCsGA1UECxMkTWljcm9zb2Z0IElyZWxhbmQgT3BlcmF0 | |
| # aW9ucyBMaW1pdGVkMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjoyQUQ0LTRCOTIt | |
| # RkEwMTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEB | |
| # MAcGBSsOAwIaAxUAaKBSisy4y86pl8Xy22CJZExE2vOggYMwgYCkfjB8MQswCQYD | |
| # VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe | |
| # MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3Nv | |
| # ZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIFAOmK66kwIhgP | |
| # MjAyNDAyMjkxOTQwMjVaGA8yMDI0MDMwMTE5NDAyNVowdDA6BgorBgEEAYRZCgQB | |
| # MSwwKjAKAgUA6YrrqQIBADAHAgEAAgIO4zAHAgEAAgIRljAKAgUA6Yw9KQIBADA2 | |
| # BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIB | |
| # AAIDAYagMA0GCSqGSIb3DQEBBQUAA4GBACHo0aG9p0Bd+CEBEQ2uwBj757S4KFlX | |
| # eqQU+NiyLL8IUg0KuUY6q19sQpnAGduj8esuo6wJzPHlkAAiHJUXo3zQLXnai5h7 | |
| # Xyky4oVQL8oPM/shuM8C698dlEsuKN8ubHY+qkMJkIMRQLFZWEKdRJ06bMEbxsew | |
| # lbW1ReXoybKwMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT | |
| # Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m | |
| # dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB | |
| # IDIwMTACEzMAAAHenkielp8oRD0AAQAAAd4wDQYJYIZIAWUDBAIBBQCgggFKMBoG | |
| # CSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgE2IG7Zt/ | |
| # x0Mte5l2lZtDniaspSYgV3w7iZygRklnGlIwgfoGCyqGSIb3DQEJEAIvMYHqMIHn | |
| # MIHkMIG9BCCOPiOfDcFeEBBJAn/mC3MgrT5w/U2z81LYD44Hc34dezCBmDCBgKR+ | |
| # MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS | |
| # ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMT | |
| # HU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB3p5InpafKEQ9AAEA | |
| # AAHeMCIEIHiD7bQdyLeEP623nbSdp9QBmPBTEgT/V7z+oreQ219vMA0GCSqGSIb3 | |
| # DQEBCwUABIICAB7DYreqNfDYqxdX2AqnsE9ZLpkj6tx0xDGbRTNTJKwXxBcrQ6nz | |
| # UfZCeCAkysOshmtV/gsTjQZ5za9rq6EfDCVs+TPnxXyRVvx9xAYtTRU35wXCEeYZ | |
| # hvKdbCpwWRMx9fxjG5E4f+gcXQXtk0lFRkCzZl4VXW6OUgpVWcwfnc9ZxJZWozWw | |
| # ueguIFqQ4kJUmi+YhxCYpS40AoK8QaKBu2dWmnvY+GPeFZOLbJeVL14ZqtlBVsnW | |
| # qdSZQUBseXb+LFC327og4E5KTePWlzNkNS/J8Y3ytlZjM6lUVOyh1d7evS6Y1JlO | |
| # XDJSY1Bp97PWjlm59mkbKK9GsGWmsePbtM3DTP7zSUrhBp4xtyB1UPZVa/RJLYFh | |
| # fd2D+IWVVZYjpdxdUubK8bOYUxk5lOApqHCEjh+7GRTNgXRLYxANz1l2iOWP8MYq | |
| # TvjiUsuev9+lehMG6RqThRuGd64yyNvN7LfjtluvVYdLszWHBNrX8Igjsc5cKICk | |
| # ammIyK93pbqext2j+Q4HdxIwS/w202GwO0UvuEQgF7bP1lK/9S6A/6+8KGN6wpI6 | |
| # SxLvJOGOB5yZjyYGBJU4fr2vJ3ZnnTEQnhgK1sRXWJv1wSyGtvL7wgFEyIMxf6YC | |
| # Y2JZ+eCChIqTbbYPT3l6jnO4AhMbi1tS955nLs48YoTnZ1EUfkY+JweE | |
| # SIG # End signature block |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment