Includes the BMAD install config, the initiative ticket tree, the portal context-resources scripts, and the .gitignore change that tracks BMAD files (generated _bmad/render/ is ignored). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Sk72AxLwQnYttF6VFSxQLt
293 lines
16 KiB
PowerShell
293 lines
16 KiB
PowerShell
# Set-LocalAccountPicture.ps1
|
|
# User Configuration → Windows Settings → Scripts → Logon
|
|
# Reads photo from AD for small sizes, high quality version from fileshare for large sizes
|
|
# Writes all image sizes to C:\ProgramData\AccountPictures\<SID>\ and updates registry
|
|
|
|
[CmdletBinding(SupportsShouldProcess=$true)]
|
|
Param()
|
|
|
|
function Test-Null($InputObject) { return !([bool]$InputObject) }
|
|
|
|
function ResizeImage {
|
|
param(
|
|
[String]$ImagePath,
|
|
[Int]$Quality = 90,
|
|
[Int]$targetSize,
|
|
[String]$OutputLocation
|
|
)
|
|
Add-Type -AssemblyName "System.Drawing"
|
|
|
|
$img = [System.Drawing.Image]::FromFile($ImagePath)
|
|
|
|
$ImageEncoder = [System.Drawing.Imaging.Encoder]::Quality
|
|
$encoderParams = New-Object System.Drawing.Imaging.EncoderParameters(1)
|
|
$encoderParams.Param[0] = New-Object System.Drawing.Imaging.EncoderParameter($ImageEncoder, $Quality)
|
|
$Codec = [System.Drawing.Imaging.ImageCodecInfo]::GetImageEncoders() | Where-Object { $_.MimeType -eq 'image/jpeg' }
|
|
|
|
$ratioX = $targetSize / $img.Width
|
|
$ratioY = $targetSize / $img.Height
|
|
$ratio = if ($ratioX -le $ratioY) { $ratioX } else { $ratioY }
|
|
|
|
$newWidth = [int]($img.Width * $ratio)
|
|
$newHeight = [int]($img.Height * $ratio)
|
|
|
|
$bmpResized = New-Object System.Drawing.Bitmap($newWidth, $newHeight)
|
|
$graph = [System.Drawing.Graphics]::FromImage($bmpResized)
|
|
$graph.InterpolationMode = [System.Drawing.Drawing2D.InterpolationMode]::HighQualityBicubic
|
|
$graph.Clear([System.Drawing.Color]::White)
|
|
$graph.DrawImage($img, 0, 0, $newWidth, $newHeight)
|
|
|
|
$bmpResized.Save($OutputLocation, $Codec, $encoderParams)
|
|
$bmpResized.Dispose()
|
|
$img.Dispose()
|
|
}
|
|
|
|
# Resolve current user and SID
|
|
$user = ([ADSISearcher]"(&(objectCategory=User)(SAMAccountName=$env:USERNAME))").FindOne().Properties
|
|
$user_photo = $user.thumbnailphoto
|
|
$user_sid = [System.Security.Principal.WindowsIdentity]::GetCurrent().User.Value
|
|
|
|
Write-Host "Updating account picture for $($user.displayname) ($env:USERNAME)..."
|
|
|
|
# Fallback to default image from fileshare if AD has no photo
|
|
If ((Test-Null $user_photo) -eq $true) {
|
|
Write-Host "No AD photo found, loading default from fileshare."
|
|
$defaultPath = "\\192.168.190.40\DC_data\ProfilePictures\default\default.jpg"
|
|
if (Test-Path $defaultPath) {
|
|
$user_photo = [System.IO.File]::ReadAllBytes($defaultPath)
|
|
} else {
|
|
Write-Error "No AD photo and no default image found. Aborting."
|
|
exit 1
|
|
}
|
|
}
|
|
|
|
# Paths
|
|
$image_sizes = @(32, 40, 48, 96, 192, 200, 240, 448)
|
|
$image_base = "C:\ProgramData\AccountPictures"
|
|
$dir = "$image_base\$user_sid"
|
|
$hqPath = "\\192.168.190.40\DC_data\ProfilePictures\processed\${env:USERNAME}_448.jpg"
|
|
$useHQ = Test-Path $hqPath
|
|
|
|
# Registry
|
|
$reg_key = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\$user_sid"
|
|
If ((Test-Path $reg_key) -eq $false) { New-Item -Path $reg_key -Force | Out-Null }
|
|
New-ItemProperty -Path $reg_key -Name "SourceId" -Value 0 -Force | Out-Null
|
|
|
|
$hkcu_key = "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture"
|
|
If ((Test-Path $hkcu_key) -eq $false) { New-Item -Path $hkcu_key -Force | Out-Null }
|
|
|
|
ForEach ($size in $image_sizes) {
|
|
$path = "$roamingDir\Image${size}.jpg"
|
|
New-ItemProperty -Path $hkcu_key -Name "Image$size" -Value $path -Force | Out-Null
|
|
}
|
|
|
|
# Clear stale cache
|
|
If (Test-Path $dir) {
|
|
Get-ChildItem $dir -ErrorAction SilentlyContinue | Remove-Item -Force
|
|
}
|
|
|
|
# Save images and write registry entries
|
|
ForEach ($size in $image_sizes) {
|
|
If ((Test-Path -Path $dir) -eq $false) { $(mkdir $dir).Attributes = "Hidden" }
|
|
|
|
$file_name = "Image${size}.jpg"
|
|
$pathtmp = "$dir\_$file_name"
|
|
$path = "$dir\$file_name"
|
|
|
|
# Large sizes use the high quality 448px fileshare version to avoid upscaling artefacts
|
|
# Small sizes use the AD thumbnail which is sufficient at those dimensions
|
|
if ($size -ge 192 -and $useHQ) {
|
|
Copy-Item $hqPath $path -Force
|
|
Write-Host " Saving: $file_name (HQ from fileshare)"
|
|
} else {
|
|
$user_photo | Set-Content -Path $pathtmp -Encoding Byte -Force
|
|
ResizeImage -ImagePath $pathtmp -targetSize $size -OutputLocation $path
|
|
Remove-Item $pathtmp
|
|
Write-Host " Saving: $file_name (from AD)"
|
|
}
|
|
|
|
New-ItemProperty -Path $reg_key -Name "Image$size" -Value $path -Force | Out-Null
|
|
}
|
|
|
|
$roamingDir = "C:\Users\$env:USERNAME\AppData\Roaming\Microsoft\Windows\AccountPictures"
|
|
New-Item -ItemType Directory -Force -Path $roamingDir | Out-Null
|
|
|
|
ForEach ($size in $image_sizes) {
|
|
$src = "$dir\Image${size}.jpg"
|
|
$dest = "$roamingDir\Image${size}.jpg"
|
|
if (Test-Path $src) {
|
|
Copy-Item $src $dest -Force
|
|
Write-Host " Copied to roaming: Image${size}.jpg"
|
|
}
|
|
}
|
|
|
|
Write-Host "Done."
|
|
# SIG # Begin signature block
|
|
# MIIe7gYJKoZIhvcNAQcCoIIe3zCCHtsCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
|
|
# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
|
|
# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUvJUdLTHvXRlrD/lB0q3PTF/J
|
|
# lHugghkyMIIGFDCCA/ygAwIBAgIQeiOu2lNplg+RyD5c9MfjPzANBgkqhkiG9w0B
|
|
# AQwFADBXMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMS4w
|
|
# LAYDVQQDEyVTZWN0aWdvIFB1YmxpYyBUaW1lIFN0YW1waW5nIFJvb3QgUjQ2MB4X
|
|
# DTIxMDMyMjAwMDAwMFoXDTM2MDMyMTIzNTk1OVowVTELMAkGA1UEBhMCR0IxGDAW
|
|
# BgNVBAoTD1NlY3RpZ28gTGltaXRlZDEsMCoGA1UEAxMjU2VjdGlnbyBQdWJsaWMg
|
|
# VGltZSBTdGFtcGluZyBDQSBSMzYwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGK
|
|
# AoIBgQDNmNhDQatugivs9jN+JjTkiYzT7yISgFQ+7yavjA6Bg+OiIjPm/N/t3nC7
|
|
# wYUrUlY3mFyI32t2o6Ft3EtxJXCc5MmZQZ8AxCbh5c6WzeJDB9qkQVa46xiYEpc8
|
|
# 1KnBkAWgsaXnLURoYZzksHIzzCNxtIXnb9njZholGw9djnjkTdAA83abEOHQ4ujO
|
|
# GIaBhPXG2NdV8TNgFWZ9BojlAvflxNMCOwkCnzlH4oCw5+4v1nssWeN1y4+RlaOy
|
|
# wwRMUi54fr2vFsU5QPrgb6tSjvEUh1EC4M29YGy/SIYM8ZpHadmVjbi3Pl8hJiTW
|
|
# w9jiCKv31pcAaeijS9fc6R7DgyyLIGflmdQMwrNRxCulVq8ZpysiSYNi79tw5RHW
|
|
# ZUEhnRfs/hsp/fwkXsynu1jcsUX+HuG8FLa2BNheUPtOcgw+vHJcJ8HnJCrcUWhd
|
|
# Fczf8O+pDiyGhVYX+bDDP3GhGS7TmKmGnbZ9N+MpEhWmbiAVPbgkqykSkzyYVr15
|
|
# OApZYK8CAwEAAaOCAVwwggFYMB8GA1UdIwQYMBaAFPZ3at0//QET/xahbIICL9AK
|
|
# PRQlMB0GA1UdDgQWBBRfWO1MMXqiYUKNUoC6s2GXGaIymzAOBgNVHQ8BAf8EBAMC
|
|
# AYYwEgYDVR0TAQH/BAgwBgEB/wIBADATBgNVHSUEDDAKBggrBgEFBQcDCDARBgNV
|
|
# HSAECjAIMAYGBFUdIAAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL2NybC5zZWN0
|
|
# aWdvLmNvbS9TZWN0aWdvUHVibGljVGltZVN0YW1waW5nUm9vdFI0Ni5jcmwwfAYI
|
|
# KwYBBQUHAQEEcDBuMEcGCCsGAQUFBzAChjtodHRwOi8vY3J0LnNlY3RpZ28uY29t
|
|
# L1NlY3RpZ29QdWJsaWNUaW1lU3RhbXBpbmdSb290UjQ2LnA3YzAjBggrBgEFBQcw
|
|
# AYYXaHR0cDovL29jc3Auc2VjdGlnby5jb20wDQYJKoZIhvcNAQEMBQADggIBABLX
|
|
# eyCtDjVYDJ6BHSVY/UwtZ3Svx2ImIfZVVGnGoUaGdltoX4hDskBMZx5NY5L6SCcw
|
|
# DMZhHOmbyMhyOVJDwm1yrKYqGDHWzpwVkFJ+996jKKAXyIIaUf5JVKjccev3w16m
|
|
# NIUlNTkpJEor7edVJZiRJVCAmWAaHcw9zP0hY3gj+fWp8MbOocI9Zn78xvm9XKGB
|
|
# p6rEs9sEiq/pwzvg2/KjXE2yWUQIkms6+yslCRqNXPjEnBnxuUB1fm6bPAV+Tsr/
|
|
# Qrd+mOCJemo06ldon4pJFbQd0TQVIMLv5koklInHvyaf6vATJP4DfPtKzSBPkKlO
|
|
# tyaFTAjD2Nu+di5hErEVVaMqSVbfPzd6kNXOhYm23EWm6N2s2ZHCHVhlUgHaC4AC
|
|
# MRCgXjYfQEDtYEK54dUwPJXV7icz0rgCzs9VI29DwsjVZFpO4ZIVR33LwXyPDbYF
|
|
# kLqYmgHjR3tKVkhh9qKV2WCmBuC27pIOx6TYvyqiYbntinmpOqh/QPAnhDgexKG9
|
|
# GX/n1PggkGi9HCapZp8fRwg8RftwS21Ln61euBG0yONM6noD2XQPrFwpm3GcuqJM
|
|
# f0o8LLrFkSLRQNwxPDDkWXhW+gZswbaiie5fd/W2ygcto78XCSPfFWveUOSZ5SqK
|
|
# 95tBO8aTHmEa4lpJVD7HrTEn9jb1EGvxOb1cnn0CMIIGKjCCBRKgAwIBAgITdQAA
|
|
# AA+pTsONn8YiVAAAAAAADzANBgkqhkiG9w0BAQsFADBHMRUwEwYKCZImiZPyLGQB
|
|
# GRYFbG9jYWwxGDAWBgoJkiaJk/IsZAEZFghwaW5nLW1lZTEUMBIGA1UEAxMLcGlu
|
|
# Zy1tZWUtQ0EwHhcNMjYwNDA5MDczOTM2WhcNMjcwNDA5MDczOTM2WjB8MRUwEwYK
|
|
# CZImiZPyLGQBGRYFbG9jYWwxGDAWBgoJkiaJk/IsZAEZFghwaW5nLW1lZTEVMBMG
|
|
# A1UECxMMT3JnYW5pc2F0aW9uMRcwFQYDVQQLEw5BZG1pbmlzdHJhdGlvbjEZMBcG
|
|
# A1UEAxMQSVQgQWRtaW5pc3RyYXRvcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
|
|
# AQoCggEBALCk9syN/9zSWis5l6RKd+Twg6GnkBhwkUn5LDwdALKc5bImd7rLCF9j
|
|
# +m6zWNEq4Lrl8382PSFLnCnXRd0MeecmMBRXEryLktcnl2OgFPiu87fodptBYRBp
|
|
# LpUyHB0XeJlT+plHgURfFIJ8vZwvNP+i0Ai1xmcKdlmUH3PQRVTg5QaH0kzHYPgf
|
|
# BNhsWXRujCjg23sR0sZ2seAUOX3KVfiGFyZswHF09MlxJPq05QR8TBTfK1InuTaT
|
|
# 1is38tCKEkANQjVt4yZ8KYV0YuM897oEZvtnwJEMDNP75H/3uZoIJ0v0dfUyjMHN
|
|
# DfKdt0aDxZpPTT9iICZl3EMveAN+l70CAwEAAaOCAtgwggLUMD0GCSsGAQQBgjcV
|
|
# BwQwMC4GJisGAQQBgjcVCIPqtkCCy4lzgsWRF4Xw1Q+BwbsoQISyshCFqrN4AgFk
|
|
# AgEGMBMGA1UdJQQMMAoGCCsGAQUFBwMDMA4GA1UdDwEB/wQEAwIHgDAbBgkrBgEE
|
|
# AYI3FQoEDjAMMAoGCCsGAQUFBwMDMB0GA1UdDgQWBBTroFoeAJDNgwWOwbsoP6+h
|
|
# n09ftjAfBgNVHSMEGDAWgBTgQNNlwwWCz4c1/FnAOF+J5D5/0DCByAYDVR0fBIHA
|
|
# MIG9MIG6oIG3oIG0hoGxbGRhcDovLy9DTj1waW5nLW1lZS1DQSxDTj1EQzEsQ049
|
|
# Q0RQLENOPVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNv
|
|
# bmZpZ3VyYXRpb24sREM9cGluZy1tZWUsREM9bG9jYWw/Y2VydGlmaWNhdGVSZXZv
|
|
# Y2F0aW9uTGlzdD9iYXNlP29iamVjdENsYXNzPWNSTERpc3RyaWJ1dGlvblBvaW50
|
|
# MIHABggrBgEFBQcBAQSBszCBsDCBrQYIKwYBBQUHMAKGgaBsZGFwOi8vL0NOPXBp
|
|
# bmctbWVlLUNBLENOPUFJQSxDTj1QdWJsaWMlMjBLZXklMjBTZXJ2aWNlcyxDTj1T
|
|
# ZXJ2aWNlcyxDTj1Db25maWd1cmF0aW9uLERDPXBpbmctbWVlLERDPWxvY2FsP2NB
|
|
# Q2VydGlmaWNhdGU/YmFzZT9vYmplY3RDbGFzcz1jZXJ0aWZpY2F0aW9uQXV0aG9y
|
|
# aXR5MDIGA1UdEQQrMCmgJwYKKwYBBAGCNxQCA6AZDBdpdC1hZG1pbkBwaW5nLW1l
|
|
# ZS5sb2NhbDBPBgkrBgEEAYI3GQIEQjBAoD4GCisGAQQBgjcZAgGgMAQuUy0xLTUt
|
|
# MjEtMzIxMTQ3Njk4My0xNjY0MTg4ODMzLTM5MDgzNjg2MDMtMTEwNDANBgkqhkiG
|
|
# 9w0BAQsFAAOCAQEAw+wwNb8CIqJaqpTzGgJ8TfS3Wt1y9qlNEWCfdyKjl3LbH7HU
|
|
# uJmXFrUiygxyWlDtHbD5bah4JlLprv/wSkAN8c3DqxGxTB06orLZNRXH/plR6R69
|
|
# wRD23GrxTGcP66iIRUnpDCiX+tXlRyQnxtb/7OPFSy1B/NYC6re74M7fV3cZ6/lU
|
|
# gxy0aLzwCWjgfzJvJMTDSsWJKKIHpdIktR2EhCkCdWJay+8j2SAmT+IG8i/MAXrc
|
|
# 6wmc4p/O17eAx0sx22hw6JPiA9TNFLfSGrPSzUjX3SD3OuoxPnJNpM4GY4kte5Hs
|
|
# lIQ8+KnsCf2oBsk7AciBlLTEuOshD7rtTom9hzCCBmIwggTKoAMCAQICEQCkKTtu
|
|
# Ht3XpzQIh616TrckMA0GCSqGSIb3DQEBDAUAMFUxCzAJBgNVBAYTAkdCMRgwFgYD
|
|
# VQQKEw9TZWN0aWdvIExpbWl0ZWQxLDAqBgNVBAMTI1NlY3RpZ28gUHVibGljIFRp
|
|
# bWUgU3RhbXBpbmcgQ0EgUjM2MB4XDTI1MDMyNzAwMDAwMFoXDTM2MDMyMTIzNTk1
|
|
# OVowcjELMAkGA1UEBhMCR0IxFzAVBgNVBAgTDldlc3QgWW9ya3NoaXJlMRgwFgYD
|
|
# VQQKEw9TZWN0aWdvIExpbWl0ZWQxMDAuBgNVBAMTJ1NlY3RpZ28gUHVibGljIFRp
|
|
# bWUgU3RhbXBpbmcgU2lnbmVyIFIzNjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC
|
|
# AgoCggIBANOElfRupFN48j0QS3gSBzzclIFTZ2Gsn7BjsmBF659/kpA2Ey7NXK3M
|
|
# P6JdrMBNU8wdmkf+SSIyjX++UAYWtg3Y/uDRDyg8RxHeHRJ+0U1jHEyH5uPdk1tt
|
|
# iPC3x/gOxIc9P7Gn3OgW7DQc4x07exZ4DX4XyaGDq5LoEmk/BdCM1IelVMKB3WA6
|
|
# YpZ/XYdJ9JueOXeQObSQ/dohQCGyh0FhmwkDWKZaqQBWrBwZ++zqlt+z/QYTgEnZ
|
|
# o6dyIo2IhXXANFkCHutL8765NBxvolXMFWY8/reTnFxk3MajgM5NX6wzWdWsPJxY
|
|
# RhLxtJLSUJJ5yWRNw+NBqH1ezvFs4GgJ2ZqFJ+Dwqbx9+rw+F2gBdgo4j7CVomP4
|
|
# 9sS7CbqsdybbiOGpB9DJhs5QVMpYV73TVV3IwLiBHBECrTgUfZVOMF0KSEq2zk/L
|
|
# sfvehswavE3W4aBXJmGjgWSpcDz+6TqeTM8f1DIcgQPdz0IYgnT3yFTgiDbFGOFN
|
|
# t6eCidxdR6j9x+kpcN5RwApy4pRhE10YOV/xafBvKpRuWPjOPWRBlKdm53kS2aMh
|
|
# 08spx7xSEqXn4QQldCnUWRz3Lki+TgBlpwYwJUbR77DAayNwAANE7taBrz2v+Mnn
|
|
# ogMrvvct0iwvfIA1W8kp155Lo44SIfqGmrbJP6Mn+Udr3MR2oWozAgMBAAGjggGO
|
|
# MIIBijAfBgNVHSMEGDAWgBRfWO1MMXqiYUKNUoC6s2GXGaIymzAdBgNVHQ4EFgQU
|
|
# iGGMoSo3ZIEoYKGbMdCM/SwCzk8wDgYDVR0PAQH/BAQDAgbAMAwGA1UdEwEB/wQC
|
|
# MAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwSgYDVR0gBEMwQTA1BgwrBgEEAbIx
|
|
# AQIBAwgwJTAjBggrBgEFBQcCARYXaHR0cHM6Ly9zZWN0aWdvLmNvbS9DUFMwCAYG
|
|
# Z4EMAQQCMEoGA1UdHwRDMEEwP6A9oDuGOWh0dHA6Ly9jcmwuc2VjdGlnby5jb20v
|
|
# U2VjdGlnb1B1YmxpY1RpbWVTdGFtcGluZ0NBUjM2LmNybDB6BggrBgEFBQcBAQRu
|
|
# MGwwRQYIKwYBBQUHMAKGOWh0dHA6Ly9jcnQuc2VjdGlnby5jb20vU2VjdGlnb1B1
|
|
# YmxpY1RpbWVTdGFtcGluZ0NBUjM2LmNydDAjBggrBgEFBQcwAYYXaHR0cDovL29j
|
|
# c3Auc2VjdGlnby5jb20wDQYJKoZIhvcNAQEMBQADggGBAAKBPqSGclEh+WWpLj1S
|
|
# iuHlm8xLE0SThI2yLuq+75s11y6SceBchpnKpxWaGtXc8dya1Aq3RuW//y3wMThs
|
|
# vT4fSba2AoSWlR67rA4fTYGMIhgzocsids0ct/pHaocLVJSwnTYxY2pE0hPoZAvR
|
|
# ebctbsTqENmZHyOVjOFlwN2R3DRweFeNs4uyZN5LRJ5EnVYlcTOq3bl1tI5poru9
|
|
# WaQRWQ4eynXp7Pj0Fz4DKr86HYECRJMWiDjeV0QqAcQMFsIjJtrYTw7mU81qf4FB
|
|
# c4u4swphLeKRNyn9DDrd3HIMJ+CpdhSHEGleeZ5I79YDg3B3A/fmVY2GaMik1Vm+
|
|
# FajEMv4/EN2mmHf4zkOuhYZNzVm4NrWJeY4UAriLBOeVYODdA1GxFr1ycbcUEGlU
|
|
# ecc4RCPgYySs4d00NNuicR4a9n7idJlevAJbha/arIYMEuUqTeRRbWkhJwMKmb9y
|
|
# EvppRudKyu1t6l21sIuIZqcpVH8oLWCxHS0LpDRF9Y4jijCCBoIwggRqoAMCAQIC
|
|
# EDbCsL18Gzrno7PdNsvJdWgwDQYJKoZIhvcNAQEMBQAwgYgxCzAJBgNVBAYTAlVT
|
|
# MRMwEQYDVQQIEwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtKZXJzZXkgQ2l0eTEeMBwG
|
|
# A1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYDVQQDEyVVU0VSVHJ1c3Qg
|
|
# UlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTIxMDMyMjAwMDAwMFoXDTM4
|
|
# MDExODIzNTk1OVowVzELMAkGA1UEBhMCR0IxGDAWBgNVBAoTD1NlY3RpZ28gTGlt
|
|
# aXRlZDEuMCwGA1UEAxMlU2VjdGlnbyBQdWJsaWMgVGltZSBTdGFtcGluZyBSb290
|
|
# IFI0NjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIid2LlFZ50d3ei5
|
|
# JoGaVFTAfEkFm8xaFQ/ZlBBEtEFAgXcUmanU5HYsyAhTXiDQkiUvpVdYqZ1uYoZE
|
|
# MgtHES1l1Cc6HaqZzEbOOp6YiTx63ywTon434aXVydmhx7Dx4IBrAou7hNGsKioI
|
|
# BPy5GMN7KmgYmuu4f92sKKjbxqohUSfjk1mJlAjthgF7Hjx4vvyVDQGsd5KarLW5
|
|
# d73E3ThobSkob2SL48LpUR/O627pDchxll+bTSv1gASn/hp6IuHJorEu6EopoB1C
|
|
# NFp/+HpTXeNARXUmdRMKbnXWflq+/g36NJXB35ZvxQw6zid61qmrlD/IbKJA6COw
|
|
# /8lFSPQwBP1ityZdwuCysCKZ9ZjczMqbUcLFyq6KdOpuzVDR3ZUwxDKL1wCAxgL2
|
|
# Mpz7eZbrb/JWXiOcNzDpQsmwGQ6Stw8tTCqPumhLRPb7YkzM8/6NnWH3T9ClmcGS
|
|
# F22LEyJYNWCHrQqYubNeKolzqUbCqhSqmr/UdUeb49zYHr7ALL8bAJyPDmubNqMt
|
|
# uaobKASBqP84uhqcRY/pjnYd+V5/dcu9ieERjiRKKsxCG1t6tG9oj7liwPddXEcY
|
|
# GOUiWLm742st50jGwTzxbMpepmOP1mLnJskvZaN5e45NuzAHteORlsSuDt5t4BBR
|
|
# CJL+5EZnnw0ezntk9R8QJyAkL6/bAgMBAAGjggEWMIIBEjAfBgNVHSMEGDAWgBRT
|
|
# eb9aqitKz1SA4dibwJ3ysgNmyzAdBgNVHQ4EFgQU9ndq3T/9ARP/FqFsggIv0Ao9
|
|
# FCUwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wEwYDVR0lBAwwCgYI
|
|
# KwYBBQUHAwgwEQYDVR0gBAowCDAGBgRVHSAAMFAGA1UdHwRJMEcwRaBDoEGGP2h0
|
|
# dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9u
|
|
# QXV0aG9yaXR5LmNybDA1BggrBgEFBQcBAQQpMCcwJQYIKwYBBQUHMAGGGWh0dHA6
|
|
# Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQEMBQADggIBAA6+ZUHtaES4
|
|
# 5aHF1BGH5Lc7JYzrftrIF5Ht2PFDxKKFOct/awAEWgHQMVHol9ZLSyd/pYMbaC0I
|
|
# Z+XBW9xhdkkmUV/KbUOiL7g98M/yzRyqUOZ1/IY7Ay0YbMniIibJrPcgFp73WDnR
|
|
# DKtVutShPSZQZAdtFwXnuiWl8eFARK3PmLqEm9UsVX+55DbVIz33Mbhba0HUTEYv
|
|
# 3yJ1fwKGxPBsP/MgTECimh7eXomvMm0/GPxX2uhwCcs/YLxDnBdVVlxvDjHjO1cu
|
|
# wbOpkiJGHmLXXVNbsdXUC2xBrq9fLrfe8IBsA4hopwsCj8hTuwKXJlSTrZcPRVSc
|
|
# cP5i9U28gZ7OMzoJGlxZ5384OKm0r568Mo9TYrqzKeKZgFo0fj2/0iHbj55hc20j
|
|
# fxvK3mQi+H7xpbzxZOFGm/yVQkpo+ffv5gdhp+hv1GDsvJOtJinJmgGbBFZIThbq
|
|
# I+MHvAmMmkfb3fTxmSkop2mSJL1Y2x/955S29Gu0gSJIkc3z30vU/iXrMpWx2tS7
|
|
# UVfVP+5tKuzGtgkP7d/doqDrLF1u6Ci3TpjAZdeLLlRQZm867eVeXED58LXd1Dk6
|
|
# UvaAhvmWYXoiLz4JA5gPBcz7J311uahxCweNxE+xxxR3kT0WKzASo5G/PyDez6NH
|
|
# dIUKBeE3jDPs2ACc6CkJ1Sji4PKWVT0/MYIFJjCCBSICAQEwXjBHMRUwEwYKCZIm
|
|
# iZPyLGQBGRYFbG9jYWwxGDAWBgoJkiaJk/IsZAEZFghwaW5nLW1lZTEUMBIGA1UE
|
|
# AxMLcGluZy1tZWUtQ0ECE3UAAAAPqU7DjZ/GIlQAAAAAAA8wCQYFKw4DAhoFAKB4
|
|
# MBgGCisGAQQBgjcCAQwxCjAIoAKAAKECgAAwGQYJKoZIhvcNAQkDMQwGCisGAQQB
|
|
# gjcCAQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkE
|
|
# MRYEFK/5vTVDCyD7/3i8WUMcey1C4jGtMA0GCSqGSIb3DQEBAQUABIIBABDd/jJ+
|
|
# PjUrJWZP6Kh3IXnCSFB7auT80HPa/UawEIb1d6WCkjOG70IrYl65w/COpuJJJpj7
|
|
# G5k5TS1ftRK9K1+l6uOIEzwvpmJOgZa1yntB95nktO4PUD7obuKkQjOGILOUm8fr
|
|
# b3qPf9ZmG9yAoXNLFPbpHOB0eeZOl/jQ5mLypq7KfrBcxRfK4QHhqcal2Eliy5Gp
|
|
# A6ZrU8OLp5FYDuR4Qcip4a5t6IqhsDLhstVepy9fQS1q9n7yulrhcri63pK04prg
|
|
# wAsRQJloP07rx0uJiKixKryyUbywjwbVwadeXMg5f+jiVpTTF75u8UX6kLq0mK1j
|
|
# 1q/f7zTuGjLB1AmhggMjMIIDHwYJKoZIhvcNAQkGMYIDEDCCAwwCAQEwajBVMQsw
|
|
# CQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMSwwKgYDVQQDEyNT
|
|
# ZWN0aWdvIFB1YmxpYyBUaW1lIFN0YW1waW5nIENBIFIzNgIRAKQpO24e3denNAiH
|
|
# rXpOtyQwDQYJYIZIAWUDBAICBQCgeTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcB
|
|
# MBwGCSqGSIb3DQEJBTEPFw0yNjA0MTkxMjE1MzZaMD8GCSqGSIb3DQEJBDEyBDB4
|
|
# WgFHFhwQabbJNUfnozIcOjN/t1j2dfO/tTYpYPFgNfJEhcpdRHQRQT63B/ykny0w
|
|
# DQYJKoZIhvcNAQEBBQAEggIAVvj8SGhYF7rYzs6Bfr2en5yN52cPOhW3JYP/JJ6w
|
|
# 26GVz9BBwOYNtZZFHp5QQVJqAarMpXKYXz1oHjmPpjwi7e7uxhoJJpT+LlQmHxaS
|
|
# SErwE2r2A23lvvqybN9tV/e96nUUojtScYuz0mgHL8DakU7trtDDMnBoZ+0U3d89
|
|
# y83yOpEY652YTA75YXILRRx16Yfq4AWoBXhY7T9y/7lDcYqGEhFzFyLlrI99QOwl
|
|
# 57+q7f6BDQjCZTMsQkT8F6btGTu3kIcc7GoRNiN2hKvcCE0G3CIddSPPJhg64B9t
|
|
# MOUBqhA9DfeFq9iMWRbYYKUizxmHpJZQ+dlRtRHehmV73HdRa3/QmUVLIiaY2TGP
|
|
# ePB0YqmpBp+oVnuCAS/pzEtvMSygl6sgz4lr5x2zyQM8uPHaDIzum7N49YA2+ly0
|
|
# RVgzZOIE/ztoHa5qbHcVPqug5Z7pZhU6gba21wj7l9EIhyV16iPQorML/4YWkvCe
|
|
# hYaTbin/KfA2pKwRNiUGYVomYwEMLpd4Ce8iOgsAMrwKfhalqzXLoJiEbnEyv5vl
|
|
# 0Rb3K6Lz3FmP6MZLPLvnxAxwlsI8zsgtTKiSq2wYMrjfehwfzSOol+fHjh2JbRwy
|
|
# tZW/tY9+sYvF/pT1VDZSKOxsKZT6wc3etEq8cKerfbn9qFEJcMEeRSbF1kFOUjix
|
|
# 0tA=
|
|
# SIG # End signature block
|