Misc/helperX86.psm1

# Helper functions to be used across resources

Function New-DellEventLog{
[CmdletBinding()]
    param( 
            [Parameter (Mandatory=$false)][System.string] $LogName="DellClientBIOS PowerShell",
            [Parameter (Mandatory=$false)][System.string] $SourceName="DellBIOSProvider DSC"
         )

         $CustomLog = Get-EventLog -list | Where-object { $_.logdisplayname -eq $LogName}
         if (! $CustomLog) {
             $ErrorActionPreference = "Continue"
             try{
                 New-EventLog -LogName $LogName -Source $SourceName
                 Write-EventLog -LogName $LogName -Source $SourceName -EntryType Information -EventID 0 -Message "DellBIOSProvider DSC started."
             }
         
             catch [System.Security.SecurityException] {
              Write-Error "Error: Run as elevated user. Unable to write or read to event logs."
            }
         }
         

}

Function Write-DellEventLog{

[CmdletBinding()]
  [OutputType([int])]
    param(
       [Parameter (Mandatory=$false)] [System.string]$LogName="DellClientBIOS PowerShell",
       [Parameter (Mandatory=$false)] [System.string] $SourceName = "DellBIOSProvider DSC",
       [Parameter (Mandatory=$false)] [System.Int16] $EventID=0,
       [Parameter (Mandatory=$false)] [System.String] $EntryType='Information',
       [Parameter(Mandatory=$true)]   [string]$Message
    )

     $CustomLog = Get-EventLog -list | Where-object { $_.logdisplayname -eq $LogName}
         if (! $CustomLog) {
            New-DellEventLog
         }
    Write-EventLog -LogName $LogName -Source $SourceName -EntryType $EntryType -EventID $EventID -Message $Message


}

function Confirm-DellPSDrive{
 [CmdletBinding()]

    # Check if DellBIOSProvider module has already been loaded into the PS session

    $DellPSProvider = Get-Module -name DellBIOSProviderX86

    if ( !$DellPSProvider)
    {
        Write-Verbose "Drive DellSmbios is not found. Importing DellBiosProviderX86."
        import-module -name DellBiosProviderX86 -verbose -force -ErrorVariable errorInModule
        If ($errorInModule)
        {
             $Message = �Module DellBiosProviderX86 failed to import. Errors returned: $($errorInModule.exception.message)
             Throw $Message
        }
        else {
            return $false # Module was not already loaded
        }
    }
    else
    {
        return $true}
}


function CheckModuleLoaded{
 [CmdletBinding()]

    # Check if DellBIOSProvider module has already been loaded into the PS session

    $DellPSProvider = Get-Module -name DellBIOSProviderX86

    if ( !$DellPSProvider)
    {
            return $false # Module was not already loaded
    }
    else
    {
        return $true
    }
}
# SIG # Begin signature block
# MIIqwgYJKoZIhvcNAQcCoIIqszCCKq8CAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDkXoDdWJENxz4M
# 45BpFsabPKXfRbkbW+MjvPpPm+OabqCCElwwggXfMIIEx6ADAgECAhBOQOQ3VO3m
# jAAAAABR05R/MA0GCSqGSIb3DQEBCwUAMIG+MQswCQYDVQQGEwJVUzEWMBQGA1UE
# ChMNRW50cnVzdCwgSW5jLjEoMCYGA1UECxMfU2VlIHd3dy5lbnRydXN0Lm5ldC9s
# ZWdhbC10ZXJtczE5MDcGA1UECxMwKGMpIDIwMDkgRW50cnVzdCwgSW5jLiAtIGZv
# ciBhdXRob3JpemVkIHVzZSBvbmx5MTIwMAYDVQQDEylFbnRydXN0IFJvb3QgQ2Vy
# dGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjAeFw0yMTA1MDcxNTQzNDVaFw0zMDEx
# MDcxNjEzNDVaMGkxCzAJBgNVBAYTAlVTMRYwFAYDVQQKDA1FbnRydXN0LCBJbmMu
# MUIwQAYDVQQDDDlFbnRydXN0IENvZGUgU2lnbmluZyBSb290IENlcnRpZmljYXRp
# b24gQXV0aG9yaXR5IC0gQ1NCUjEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
# AoICAQCngY/3FEW2YkPy2K7TJV5IT1G/xX2fUBw10dZ+YSqUGW0nRqSmGl33VFFq
# gCLGqGZ1TVSDyV5oG6v2W2Swra0gvVTvRmttAudFrnX2joq5Mi6LuHccUk15iF+l
# OhjJUCyXJy2/2gB9Y3/vMuxGh2Pbmp/DWiE2e/mb1cqgbnIs/OHxnnBNCFYVb5Cr
# +0i6udfBgniFZS5/tcnA4hS3NxFBBuKK4Kj25X62eAUBw2DtTwdBLgoTSeOQm3/d
# vfqsv2RR0VybtPVc51z/O5uloBrXfQmywrf/bhy8yH3m6Sv8crMU6UpVEoScRCV1
# HfYq8E+lID1oJethl3wP5bY9867DwRG8G47M4EcwXkIAhnHjWKwGymUfe5SmS1dn
# DH5erXhnW1XjXuvH2OxMbobL89z4n4eqclgSD32m+PhCOTs8LOQyTUmM4OEAwjig
# nPqEPkHcblauxhpb9GdoBQHNG7+uh7ydU/Yu6LZr5JnexU+HWKjSZR7IH9Vybu5Z
# HFc7CXKd18q3kMbNe0WSkUIDTH0/yvKquMIOhvMQn0YupGaGaFpoGHApOBGAYGuK
# Q6NzbOOzazf/5p1nAZKG3y9I0ftQYNVc/iHTAUJj/u9wtBfAj6ju08FLXxLq/f0u
# DodEYOOp9MIYo+P9zgyEIg3zp3jak/PbOM+5LzPG/wc8Xr5F0wIDAQABo4IBKzCC
# AScwDgYDVR0PAQH/BAQDAgGGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0lBBYw
# FAYIKwYBBQUHAwMGCCsGAQUFBwMIMDsGA1UdIAQ0MDIwMAYEVR0gADAoMCYGCCsG
# AQUFBwIBFhpodHRwOi8vd3d3LmVudHJ1c3QubmV0L3JwYTAzBggrBgEFBQcBAQQn
# MCUwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLmVudHJ1c3QubmV0MDAGA1UdHwQp
# MCcwJaAjoCGGH2h0dHA6Ly9jcmwuZW50cnVzdC5uZXQvZzJjYS5jcmwwHQYDVR0O
# BBYEFIK61j2Xzp/PceiSN6/9s7VpNVfPMB8GA1UdIwQYMBaAFGpyJnrQHu995ztp
# UdRsjZ+QEmarMA0GCSqGSIb3DQEBCwUAA4IBAQAfXkEEtoNwJFMsVXMdZTrA7LR7
# BJheWTgTCaRZlEJeUL9PbG4lIJCTWEAN9Rm0Yu4kXsIBWBUCHRAJb6jU+5J+Nzg+
# LxR9jx1DNmSzZhNfFMylcfdbIUvGl77clfxwfREc0yHd0CQ5KcX+Chqlz3t57jpv
# 3ty/6RHdFoMI0yyNf02oFHkvBWFSOOtg8xRofcuyiq3AlFzkJg4sit1Gw87kVlHF
# VuOFuE2bRXKLB/GK+0m4X9HyloFdaVIk8Qgj0tYjD+uL136LwZNr+vFie1jpUJuX
# bheIDeHGQ5jXgWG2hZ1H7LGerj8gO0Od2KIc4NR8CMKvdgb4YmZ6tvf6yK81MIIG
# ATCCA+mgAwIBAgIQKcjO4K8g4fYFFpiqGB6UiDANBgkqhkiG9w0BAQ0FADBPMQsw
# CQYDVQQGEwJVUzEWMBQGA1UEChMNRW50cnVzdCwgSW5jLjEoMCYGA1UEAxMfRW50
# cnVzdCBDb2RlIFNpZ25pbmcgQ0EgLSBPVkNTMjAeFw0yMzA5MjExNTMxMjZaFw0y
# NDA5MjExNTMxMjVaMH4xCzAJBgNVBAYTAlVTMQ4wDAYDVQQIEwVUZXhhczETMBEG
# A1UEBxMKUm91bmQgUm9jazERMA8GA1UEChMIRGVsbCBJbmMxJDAiBgNVBAsTG0RV
# UCBDbGllbnQgQ3JlYXRpb24gU2VydmljZTERMA8GA1UEAxMIRGVsbCBJbmMwggGi
# MA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCMaBhwV7jJkdmP+tXH06aqD1fq
# fge3rGr6hGz+V/ifIReHg8LxzLxOspMPj6t8IpXRcpkV3tt3fg793FCg4jfSWVmR
# inwVJOHD8bR6XUNfLbtS/1M/PsSQijNKdSbL1nDKcIF5JfeN6CgkdU9AateJGLKF
# Qc9YUgbNnnwlrHWjQmV78Cu4TDz7dOxjrwnRMTXe9wPL+38nwRZYOo97bBYmtTjW
# LGfZOfg3e9DypJykJ1kQqGUa9O5PLAfvQb+NOi8gSpn3+XkliY29xx0ocQQrGDG8
# +KzfjXjGArElKBwjVirQaLhpBeeaWuDNeKTcJOzYL9Sh9IzVNpuBPwiImin5Za7S
# KwyEPlPAsFgCduEsKCoWq67MPx0z7bGRPwp5Y03KZGJUDxQAG+PlI3jvjFZiZ6YB
# Xi4TStiisY6t0Ol5kpE2lKHp3Pt/9iam1x7/y0EiQtkMXTuep1qdc3Waa7s0jEDD
# 3/T4AknlkfhROxP85xaii32M9In0Tqr1hPm3pqsCAwEAAaOCASgwggEkMAwGA1Ud
# EwEB/wQCMAAwHQYDVR0OBBYEFBFKGdzeU/CRsp0sA1HLF7oe6ORSMB8GA1UdIwQY
# MBaAFO+funmwc/IlHnicA1KcG1OE3o3tMGcGCCsGAQUFBwEBBFswWTAjBggrBgEF
# BQcwAYYXaHR0cDovL29jc3AuZW50cnVzdC5uZXQwMgYIKwYBBQUHMAKGJmh0dHA6
# Ly9haWEuZW50cnVzdC5uZXQvb3ZjczItY2hhaW4ucDdjMDEGA1UdHwQqMCgwJqAk
# oCKGIGh0dHA6Ly9jcmwuZW50cnVzdC5uZXQvb3ZjczIuY3JsMA4GA1UdDwEB/wQE
# AwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzATBgNVHSAEDDAKMAgGBmeBDAEEATAN
# BgkqhkiG9w0BAQ0FAAOCAgEAGtZRY5WmdTQbQGP/Nx77+u6udEUQn40GDjXPfT4j
# nVlhJ99N35giv1mWstRXxOqY7YauotNcUNzep1d8oV5/YKc7+x0s/ZwuNQmLtVyb
# VSrDy7DJiYNle/4am6GDefIUMMWgr8BGY8n/LdDVfL9Gir72V+HOe2N4cVnti0Ti
# U9/1ebEdhKd/a0awP+mh8EZG7OJ41A1JkPc4rjsh3yfQi5AQ4P1RF1hSgudkZpQI
# 8051WnnwjStKEWA2uiX3x2z63TvrPtdaJoYbtIniUx9ZVg3373sV8StFwPcyPzqX
# 9Eod7Goj4D+Vg3bB73jjG+miuykSjxNHVnhNB7EnCVffnsD5hJHRXGRCZvof59id
# NhpkuF0G4ZIYDrAF06HvJ4kxyGZCiNi6oJxfyndhG4FsCPI4XiE0n1N25lx1GeJZ
# tgRH7okPBMOu3rYTQDH2+g85yNBwap18EC7XDTyi7H/Ih616pG9ca9Xv4MsptRU9
# 6UXqPemiXG9TbuEsBWgu6YYx0qBMlIT+bqDbghkpeXrF/zRjDBAD9p38VHnqay3B
# r4RTbap/gUMQzgD2P2f6axjAg3yZaXab1qtI7VZptyXmVK7nRPwXCZmTR6SnxCaS
# 7gD2GtIZiCiztpBq6zJEQhS39BQoXVV0bQ7k+m1ZX2VW0z8Ld54PZlbc8vnP1YcA
# iyowggZwMIIEWKADAgECAhBx71V0rzVUw1osafZvS2vNMA0GCSqGSIb3DQEBDQUA
# MGkxCzAJBgNVBAYTAlVTMRYwFAYDVQQKDA1FbnRydXN0LCBJbmMuMUIwQAYDVQQD
# DDlFbnRydXN0IENvZGUgU2lnbmluZyBSb290IENlcnRpZmljYXRpb24gQXV0aG9y
# aXR5IC0gQ1NCUjEwHhcNMjEwNTA3MTkyMDQ1WhcNNDAxMjI5MjM1OTAwWjBPMQsw
# CQYDVQQGEwJVUzEWMBQGA1UEChMNRW50cnVzdCwgSW5jLjEoMCYGA1UEAxMfRW50
# cnVzdCBDb2RlIFNpZ25pbmcgQ0EgLSBPVkNTMjCCAiIwDQYJKoZIhvcNAQEBBQAD
# ggIPADCCAgoCggIBAJ6ZdhcanlYXCGMsk02DYYQzNAK22WKg3sIOuSBMyFedD91U
# Ww0M1gHdL0jhkQnh28gVBIK2e/DY1jA7GXFw+6iml/YpXaQMqfRTPlfbDE5u/Hbb
# XyTpql9D45PnDs/KJbzETDALWg/mBvTlbgyZZlhPg2HCc3xcIm8BRcUP90BPZEvQ
# FwqpDh4CL6GPTPJnUNs+5J/CTz906zGk0JTQmbwwkglqyyTNoth2UtBOdZhPZFrS
# XoP0WMBdanXE2D9kOosUDdh24eq5a+cRcEkROGMTbvHG+r0QRTUH5nYV0HUWqsJD
# V/6r/mNzRiKguPPkx3BGCfmpN0Gas0tsH3Byowf2NZJ0EWRu+QLVwJKV8ZdZfg3u
# oiXycVW4m42/ze6u3fsM564yTlCNod/Rc7/Bzn912qu/0K2COMXniO2ibTqGEbfX
# sOGoizsMQReaX+RbmMidAJ/3c9LD6Z8Fh3khg9YL7dHMCJ/g8cXJWLpTX9SHsYtZ
# qNJezWnQPvrEOQmvtLXt5zz6IofWc/kXlWrDHPVVeF/U+gvAWz+MeBUOWkw6buUm
# mNAnzCDfwIY7eo1lRn7ZYV6p9K4+1PyvRcc6s4UESovICV2zewIoWeOGfYCiWEBm
# YuA4VYOrnylBJrq76dhk+La7KHPNFUrXnnPjZkyxUZ2BI4vIhneytiw3InAhAgMB
# AAGjggEsMIIBKDASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTvn7p5sHPy
# JR54nANSnBtThN6N7TAfBgNVHSMEGDAWgBSCutY9l86fz3Hokjev/bO1aTVXzzAz
# BggrBgEFBQcBAQQnMCUwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLmVudHJ1c3Qu
# bmV0MDEGA1UdHwQqMCgwJqAkoCKGIGh0dHA6Ly9jcmwuZW50cnVzdC5uZXQvY3Ni
# cjEuY3JsMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEFBQcDAzBFBgNV
# HSAEPjA8MDAGBFUdIAAwKDAmBggrBgEFBQcCARYaaHR0cDovL3d3dy5lbnRydXN0
# Lm5ldC9ycGEwCAYGZ4EMAQQBMA0GCSqGSIb3DQEBDQUAA4ICAQBe84aZNcF57vAQ
# r9eSQ9KF0FvgmKDgcVHJFMtQmmAOsAQmSbHP6bqbCKHaQ13UbyOiufhAx0f+TQEL
# SJA/yNxqtD5TNSi+QEpHhWoed0DMgH9htDxPeajmo6agfkSGcb8SG5WBcvcNpdDe
# Z5/Gorjxavn8/nRmxmTmeT1qA2FOSx/MIGLLAhjsY+1+cT+WugteaCJn7B/A0gUW
# ZrGypOr8xZWjjRKl9Y3vGyDNmffnMvNZcR/dlOZ55VIjEFYq/Fk4v795JZJqx/2r
# Z3dxsQR9Na0UwT6o/CMXVggYfNd6ImuRasw1RW1PO51DnQW4nfP8NCFcBBgyVzg0
# wcqDI0amiCMhxn4UgKux77sLrAk/7lORMbPiVESqtX0wPCwjnOg/o1jqQAgXoyBf
# esAM26r/AxYDDXRkIpqUXjA1dhP10+Hj4AfK2epFiEacVNUQ4vMyCUC251wXMv7M
# r+ttz2A8dfPuXGBAVRu1Wa9yI2hNnHQEDBDJr1Bbpw1mD5blmpXgIKIa0LDuOEme
# KmeekZZsmNvEEG1gfB5uSOe2fq8zBxJx772VO76pg9RCfbenNNdfhpG1r1ZY2lV9
# F73bvM1kQRWNMVEGT7Qusos9nPNN41gDVMysiPhSPE5LRgklGf8V56eYRi59uurj
# 43z/+bkZlb52uQ15sgJRGkrIn4jCQzGCF7wwghe4AgEBMGMwTzELMAkGA1UEBhMC
# VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAMTH0VudHJ1c3QgQ29k
# ZSBTaWduaW5nIENBIC0gT1ZDUzICECnIzuCvIOH2BRaYqhgelIgwDQYJYIZIAWUD
# BAIBBQCgfDAQBgorBgEEAYI3AgEMMQIwADAZBgkqhkiG9w0BCQMxDAYKKwYBBAGC
# NwIBBDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQx
# IgQgMbuv9OAh2A2eQjhqPT/MktcQQ53lHrwVowHK+3bgR/owDQYJKoZIhvcNAQEB
# BQAEggGAC5qB340ODOEnYSTtF2Dkm4jXZwBxqSdb+Ei5g0Rl3zu2JcmSuWStPlAF
# IrhrZpSADzS1asmRQSeqHWGdHWmhUy7u69nUsN98bP8rgRHwEGaUfkqvyyTBAGfv
# dUaocs5YnCF/Bamh2kK4cRmpeFbcCbEhbhxXBKOLULC31SfIu1NNgz3ybw16h46O
# bC8IVZJxbQ+0VbBfAuMaZztvQsUDbJvy7g7/bvyqGDYg+lTb9QBw2p1dGbE1GAOD
# o8Yjf1BbsNv6sX9tM/ncGKKR7ES+Bq1ILHl2R5apms3EYuyQ1dDfUgNH1H2Bcva+
# HmUiZeEWoCMlw0qV+8d8Au8xziV0EtR/5R9QsvQKnP2vLndgBpLaQYTixQJibTAt
# d/A9EQcBcG9ILBAgEIE5VA5LmHvYRZivexFCcLlei0Utdrj4dB2UqPUZNb710Kd6
# CWAATmrsm9jnr3gMxYct1LDbXPu15LCbxYVDhfAoPhHKBLU7JCHEJ9eR95zAsY/9
# Lzkws8DJoYIVLDCCFSgGCisGAQQBgjcDAwExghUYMIIVFAYJKoZIhvcNAQcCoIIV
# BTCCFQECAQMxDTALBglghkgBZQMEAgEwgfQGCyqGSIb3DQEJEAEEoIHkBIHhMIHe
# AgEBBgpghkgBhvpsCgMFMDEwDQYJYIZIAWUDBAIBBQAEIJ6mDEOgLmG63w+TNGQe
# TmB9l6BtwUy7z383Voy7kct2AgkA9/12IEZZusAYDzIwMjQwMzE5MTEwMDQxWjAD
# AgEBoHmkdzB1MQswCQYDVQQGEwJDQTEQMA4GA1UECBMHT250YXJpbzEPMA0GA1UE
# BxMGT3R0YXdhMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSswKQYDVQQDEyJFbnRy
# dXN0IFRpbWVzdGFtcCBBdXRob3JpdHkgLSBUU0ExoIIPWDCCBCowggMSoAMCAQIC
# BDhj3vgwDQYJKoZIhvcNAQEFBQAwgbQxFDASBgNVBAoTC0VudHJ1c3QubmV0MUAw
# PgYDVQQLFDd3d3cuZW50cnVzdC5uZXQvQ1BTXzIwNDggaW5jb3JwLiBieSByZWYu
# IChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBM
# aW1pdGVkMTMwMQYDVQQDEypFbnRydXN0Lm5ldCBDZXJ0aWZpY2F0aW9uIEF1dGhv
# cml0eSAoMjA0OCkwHhcNOTkxMjI0MTc1MDUxWhcNMjkwNzI0MTQxNTEyWjCBtDEU
# MBIGA1UEChMLRW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9D
# UFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsT
# HChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3Qu
# bmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTCCASIwDQYJKoZIhvcN
# AQEBBQADggEPADCCAQoCggEBAK1NS6kShrLqoyAHFRZkKitL0b8LSk2O7YB2pWe3
# eEDAc0LIaMDbUyvdXrh2mDWTixqdfBM6Dh9btx7P5SQUHrGBqY19uMxrSwPxAgzc
# q6VAJAB/dJShnQgps4gL9Yd3nVXN5MN+12pkq4UUhpVblzJQbz3IumYM4/y9uEnB
# dolJGf3AqL2Jo2cvxp+8cRlguC3pLMmQdmZ7lOKveNZlU1081pyyzykD+S+kULLU
# SM4FMlWK/bJkTA7kmAd123/fuQhVYIUwKfl7SKRphuM1Px6GXXp6Fb3vAI4VIlQX
# AJAmk7wOSWiRv/hH052VQsEOTd9vJs/DGCFiZkNw1tXAB+ECAwEAAaNCMEAwDgYD
# VR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFXkgdERgL7Y
# ibkIozH5oSQJFrlwMA0GCSqGSIb3DQEBBQUAA4IBAQA7m49WmzDnU5l8enmnTZfX
# GZWQ+wYfyjN8RmOPlmYk+kAbISfK5nJz8k/+MZn9yAxMaFPGgIITmPq2rdpdPfHO
# bvYVEZSCDO4/la8Rqw/XL94fA49XLB7Ju5oaRJXrGE+mH819VxAvmwQJWoS1btgd
# OuHWntFseV55HBTF49BMkztlPO3fPb6m5ZUaw7UZw71eW7v/I+9oGcsSkydcAy1v
# MNAethqs3lr30aqoJ6b+eYHEeZkzV7oSsKngQmyTylbe/m2ECwiLfo3q15ghxvPn
# PHkvXpzRTBWN4ewiN8yaQwuX3ICQjbNnm29ICBVWz7/xK3xemnbpWZDFfIM1EWVR
# MIIFEzCCA/ugAwIBAgIMWNoT/wAAAABRzg33MA0GCSqGSIb3DQEBCwUAMIG0MRQw
# EgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3LmVudHJ1c3QubmV0L0NQ
# U18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc
# KGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u
# ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMB4XDTE1MDcyMjE5MDI1
# NFoXDTI5MDYyMjE5MzI1NFowgbIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRy
# dXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2FsLXRl
# cm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhv
# cml6ZWQgdXNlIG9ubHkxJjAkBgNVBAMTHUVudHJ1c3QgVGltZXN0YW1waW5nIENB
# IC0gVFMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2SPmFKTofEuF
# cVj7+IHmcotdRsOIAB840Irh1m5WMOWv2mRQfcITOfu9ZrTahPuD0Cgfy3boYFBp
# m/POTxPiwT7B3xLLMqP4XkQiDsw66Y1JuWB0yN5UPUFeQ18oRqmmt8oQKyK8W01b
# jBdlEob9LHfVxaCMysKD4EdXfOdwrmJFJzEYCtTApBhVUvdgxgRLs91oMm4QHzQR
# uBJ4ZPHuqeD347EijzRaZcuK9OFFUHTfk5emNObQTDufN0lSp1NOny5nXO2W/KW/
# dFGI46qOvdmxL19QMBb0UWAia5nL/+FUO7n7RDilCDkjm2lH+jzE0Oeq30ay7PKK
# GawpsjiVdQIDAQABo4IBIzCCAR8wEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8B
# Af8EBAMCAQYwOwYDVR0gBDQwMjAwBgRVHSAAMCgwJgYIKwYBBQUHAgEWGmh0dHA6
# Ly93d3cuZW50cnVzdC5uZXQvcnBhMDMGCCsGAQUFBwEBBCcwJTAjBggrBgEFBQcw
# AYYXaHR0cDovL29jc3AuZW50cnVzdC5uZXQwMgYDVR0fBCswKTAnoCWgI4YhaHR0
# cDovL2NybC5lbnRydXN0Lm5ldC8yMDQ4Y2EuY3JsMBMGA1UdJQQMMAoGCCsGAQUF
# BwMIMB0GA1UdDgQWBBTDwnHSe9doBa47OZs0JQxiA8dXaDAfBgNVHSMEGDAWgBRV
# 5IHREYC+2Im5CKMx+aEkCRa5cDANBgkqhkiG9w0BAQsFAAOCAQEAHSTnmnRbqnD8
# sQ4xRdcsAH9mOiugmjSqrGNtifmf3w13/SQj/E+ct2+P8/QftsH91hzEjIhmwWON
# uld307gaHshRrcxgNhqHaijqEWXezDwsjHS36FBD08wo6BVsESqfFJUpyQVXtWc2
# 6Dypg+9BwSEW0373LRFHZnZgghJpjHZVcw/fL0td6Wwj+Af2tX3WaUWcWH1hLvx4
# S0NOiZFGRCygU6hFofYWWLuRE/JLxd8LwOeuKXq9RbPncDDnNI7revbTtdHeaxOZ
# RrOL0k2TdbXxb7/cACjCJb+856NlNOw/DR2XjPqqiCKkGDXbBY524xDIKY9j0K6s
# GNnaxJ9REjCCBg8wggT3oAMCAQICEAfXE1PaJWG0YemQR4pMzgQwDQYJKoZIhvcN
# AQELBQAwgbIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgw
# JgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQL
# EzAoYykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9u
# bHkxJjAkBgNVBAMTHUVudHJ1c3QgVGltZXN0YW1waW5nIENBIC0gVFMxMB4XDTI0
# MDExOTE2NDYyOFoXDTI5MDYwMTAwMDAwMFowdTELMAkGA1UEBhMCQ0ExEDAOBgNV
# BAgTB09udGFyaW8xDzANBgNVBAcTBk90dGF3YTEWMBQGA1UEChMNRW50cnVzdCwg
# SW5jLjErMCkGA1UEAxMiRW50cnVzdCBUaW1lc3RhbXAgQXV0aG9yaXR5IC0gVFNB
# MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMeSOEE5/6A/X01Nipcx
# 45uHw3gFaTYLUrOqg12w0r1+voOgX16el/PbNRep+dsVYnzK9sXJNBXiEaWSsS7g
# aVRdDiu+VcYBjIVjskktNV/lTkPEcQuktB40Tf9FyP5P4TDo6WVsa2XTvtQsaNCt
# BJtqudBU+zUAkDHG2GhqXa/qftD5nRPvzp1jZEJyB4X7BjGL450LptUy21KlTgw8
# wcCa0X8Cd2MTzfM9PB4CSzaG4AS0eHfkmy/hiSregl3r5Brcjbp7pJ+Pjmx16wPg
# gAS/sQkc+mF6s5uBtwvJEwp47Qj2zKZfQkcSOkd4dv682pk/ZOs3XirfUuKZsP3v
# hMqROqKwp7G2Vhw/RPh+ke94piT+3ike+PX3UX+2eC2HtL0AucYe4OjhE+7uX9de
# 7qR8dWDOoTWQWMKrtUhDe+nHd4mJi8ahjGmXz256Q/70X/tj5STq3+AQkKcSkMwb
# rQiK0Y2FIKJuoYsWJ5Ux089uAymfRMInCKy39IlNN+QliVpTLFMNghRzxuzFsNmH
# 2JsS7iY6X5cvcMkweKFaSm3SSEoPVWp+9lvih1/aERt3vhpe90gKmHEMfa4qgX2y
# npFgDtHZajASiuSa7KZLb4UGSRAOhUg/LuYUz1rjTzgqr9cxALwslpWSrXPPehxR
# y/4t6cAuWA4KFWXLiHsyG2ANAgMBAAGjggFbMIIBVzAMBgNVHRMBAf8EAjAAMB0G
# A1UdDgQWBBRDaB9vnyLQ+F8J9/y45SPGjgdCkjAfBgNVHSMEGDAWgBTDwnHSe9do
# Ba47OZs0JQxiA8dXaDBoBggrBgEFBQcBAQRcMFowIwYIKwYBBQUHMAGGF2h0dHA6
# Ly9vY3NwLmVudHJ1c3QubmV0MDMGCCsGAQUFBzAChidodHRwOi8vYWlhLmVudHJ1
# c3QubmV0L3RzMS1jaGFpbjI1Ni5jZXIwMQYDVR0fBCowKDAmoCSgIoYgaHR0cDov
# L2NybC5lbnRydXN0Lm5ldC90czFjYS5jcmwwDgYDVR0PAQH/BAQDAgeAMBYGA1Ud
# JQEB/wQMMAoGCCsGAQUFBwMIMEIGA1UdIAQ7MDkwNwYKYIZIAYb6bAoBBzApMCcG
# CCsGAQUFBwIBFhtodHRwczovL3d3dy5lbnRydXN0Lm5ldC9ycGEwDQYJKoZIhvcN
# AQELBQADggEBAL6w3P28+man/CMd89lXYvQk3x0v+VjLyswMfc9uh/Vuglor3uNf
# xs4a5AivjgQBHv8C+AVTuKhihXuZq0V72aqxF4PRKX6TIeg2iEIhOPv7DYHJw4qM
# yipeZq/5nPSNfBL7em06irAA9ztwpQ+7tVOp4cYpJurcEkovXVoEuKrjhwt9yJ4G
# /mlmS46n9L4wyaXikKGogQ0+RyGSUF0y5PJWz6mUIbswwncYEZomrvHiPi/8P4kz
# N12U590axeXMZmz6AM6W4oDt+CynxWgTaXwERK0I1fmrya0XZtUvC1fwm89cHqsN
# J0Zp/qi3BSWO4LIVM0pfupyL0CgJPLWFsuExggSYMIIElAIBATCBxzCBsjELMAkG
# A1UEBhMCVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3
# d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDE1IEVu
# dHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEmMCQGA1UEAxMd
# RW50cnVzdCBUaW1lc3RhbXBpbmcgQ0EgLSBUUzECEAfXE1PaJWG0YemQR4pMzgQw
# CwYJYIZIAWUDBAIBoIIBpTAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJ
# KoZIhvcNAQkFMQ8XDTI0MDMxOTExMDA0MVowKQYJKoZIhvcNAQk0MRwwGjALBglg
# hkgBZQMEAgGhCwYJKoZIhvcNAQELMC8GCSqGSIb3DQEJBDEiBCD5fpZIGd3mcTlv
# uplKUkUiYplZdWd6XD1i165Ydqa0iTCCAQsGCyqGSIb3DQEJEAIvMYH7MIH4MIH1
# MIHyBCAoSfcxGNdBRQVhc80+7Mu9U0teDvD6BhaNsOJzSQPujzCBzTCBuKSBtTCB
# sjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsT
# H1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAy
# MDE1IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEmMCQG
# A1UEAxMdRW50cnVzdCBUaW1lc3RhbXBpbmcgQ0EgLSBUUzECEAfXE1PaJWG0YemQ
# R4pMzgQwCwYJKoZIhvcNAQELBIICADC+cb4JHVDaI77+vapq8ZjAQJwAUQD7gPAb
# uwhxVBS0XWlJy0wmts+pOYo53bqCI6IcCkTdJ80xCZWiEEMc0/DLwBDa5NV6Rt4T
# gWOlB0MQWKdgj7Ts+23Nyvho05JxH+a0M8CyCguBh+Bk9ccibQTfxEC85jN9idaK
# KIASF1jxsReKSmkDsf8BpeX5TO2syte66RXPHvcYuxFR+Zodoum7B78x4GqGhV6i
# 4QXwbUNiFyRc7BZa/9hXMgL/+a5I+jZHZTwZHiupshn+TM3vHjwnPxOyJr6XJ4PP
# YagnQjFSsjto1Z+std0++dIcbICPufj/sJCe8om7Y1uYd2q5ZU36KIaY930fU43p
# YCQom24zDwCbJsjRBlLSU16f9qqUmN1M22XKl9obniJHq4k055rImcq6SP6ZGkhU
# dQqjSKOeMgIkhDkvBaZtxuCj0xOlZRMHptIoDr5wjuL61HfUYXmpxkG6Qmd1iu7d
# N7+1hasU9ybJWra3N+GwDJNSmUWZXLeLIuq+7D5ZeAuuw3mKLeLfymoxS0gJMiDR
# w6wxETnYnBclEbWshhHGH7VxYgANZzU2nz4TSyrBaCCEc0cTgjSI9OuSufOpkhoU
# EmGmBZwPZj2IzNQvOSfMNA5erAoBMd6i7KmcHx93FoPOW02QR8vBgrm+B1pLWc0o
# hrqU0ydq
# SIG # End signature block