private/TranscriptLog.ps1

<#
.Synopsis
Functions for managing transcription logging.
 
.Description
The Start-TranscriptLog function initiates transcription logging, checking for existing log files and updating filenames if necessary. The Stop-TranscriptLog function terminates transcription logging.
 
.Functions
- Start-TranscriptLog:
  Initiates transcription logging with options to specify CommandType and OutputFile.
  Parameters:
    - CommandType: Mandatory parameter indicating the type of command being executed.
    - OutputFile: Optional parameter defining the output file for logging. Defaults to CommandType if not provided.
 
- Stop-TranscriptLog:
  Terminates transcription logging.
 
.Notes
The functions handle file naming, counter increments for existing files, and error logging in case of issues during transcription initiation.
 
Example Usage:
$logfile = Start-TranscriptLog -CommandType "MyCommand"
# Perform script operations
Stop-TranscriptLog
#>


function Start-TranscriptLog {
    param(
        [Parameter(Mandatory=$true)]
        [string]
        $CommandType,

        # Output File Location for logging
        [Parameter(Mandatory=$false)]
        [string]
        $OutputFile,

        [parameter(Mandatory=$false)]
        [string]
        $ConnectionId


    )
    
    if ([string]::IsNullOrEmpty($OutputFile)) {
        if([string]::IsNullOrEmpty($ConnectionId)){
            $OutputFile = $CommandType
        }
        else{
            $OutputFile = $ConnectionId
        }
        
    }

    try{
        # Check if the file already exists
        $counter = 0
        while (Test-Path ($OutputFile+'.log')) {
            # File already exists, increment counter and update the filename
            $counter++
            $OutputFile = "$OutputFile($counter)"
        }

        #start logging
        Start-Transcript -Path "$OutputFile.log" | Out-Host
    }
    catch{
        Write-Error "Cannot start logging transcription. skipping Transcription. Error - $($_)"
        return $CommandType
    }
    return $OutputFile

}

function Stop-TranscriptLog {
    try{
        Stop-Transcript
    }
    catch{
        Write-Error "Cannot stop logging transcription. Error - $($_)"
    }
    
}
# SIG # Begin signature block
# MIIodAYJKoZIhvcNAQcCoIIoZTCCKGECAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDOrCP0534xzUFD
# IMixJhLV/ir5KaJtHw5pJV3xSC5W86CCDYUwggYDMIID66ADAgECAhMzAAADri01
# 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/Xmfwb1tbWrJUnMTDXpQzTGCGkUwghpBAgEBMIGVMH4x
# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p
# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAOuLTVRyFOPVR0AAAAA
# A64wDQYJYIZIAWUDBAIBBQCggeYwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw
# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIGUl
# Ia/foAfn27WB/VBkM1H+K1UahaKvBV9x7Lgf/KzEMHoGCisGAQQBgjcCAQwxbDBq
# oEyASgBNAGkAYwByAG8AcwBvAGYAdAAuAEcAcgBhAHAAaAAuAEMAbwBuAG4AZQBj
# AHQAbwByAHMALgBDAG0AZABsAGUAdAAuAGQAbABsoRqAGGh0dHA6Ly93d3cubWlj
# cm9zb2Z0LmNvbTANBgkqhkiG9w0BAQEFAASCAQDITwdykb0hYoN+FWtUTQfXDhEA
# U8sqQZmhfPpjkghN+pngsGIrlIkIGchEa7Puhr6mBwuKZaW1bMNwwqBS5hzOkvkq
# gjYiZg/xXKnUH4/FUCAS15kFTfB3rgD42EQQjI9TPwjGs/XZ2ZTBpYiuZJU6EZda
# mCCOTTdrUEgWHOo0XTe/MUDCzbop+0El8K3UZPqqhMRw5VPHIy9hu8KNb+PUuGq9
# kFdSCniTTWzbIp2gZe4yRjZc3PacPL1HPW7AaSRoCkfuq1vigaVg/9Jc4Aik5HTa
# cE3/pT30ypo/3e6wztPhb/shuIo93kVq10kEi2MUwL2FbxJEyUJ7ZwhCy1JroYIX
# lzCCF5MGCisGAQQBgjcDAwExgheDMIIXfwYJKoZIhvcNAQcCoIIXcDCCF2wCAQMx
# DzANBglghkgBZQMEAgEFADCCAVIGCyqGSIb3DQEJEAEEoIIBQQSCAT0wggE5AgEB
# BgorBgEEAYRZCgMBMDEwDQYJYIZIAWUDBAIBBQAEIDBeObyRE9s9NloVctdr7j+F
# x8yWhBiCH5ssmHXZE7BmAgZl/GoVsasYEzIwMjQwNDAyMDc0NDIxLjgwOVowBIAC
# AfSggdGkgc4wgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw
# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
# JTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsT
# Hm5TaGllbGQgVFNTIEVTTjozNzAzLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z
# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEe0wggcgMIIFCKADAgECAhMzAAAB6pok
# ctVZP2FjAAEAAAHqMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w
# IFBDQSAyMDEwMB4XDTIzMTIwNjE4NDUzMFoXDTI1MDMwNTE4NDUzMFowgcsxCzAJ
# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k
# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jv
# c29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT
# TjozNzAzLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg
# U2VydmljZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALULX/FIPyAH
# 1fsu52ijatZvaSypoXrlC0mRtCmaxzobhuDkw6/pY/+4nhc4m8pf9zW3R6PihYGp
# 0YPpVuNdfhPQp/KVO6WvMq2DGfFmHurW4PQPL/DkbQMkM9vqjFCvPq8xXZnfL1nG
# N9moGcN+oaif/hUMedmF1qzbay9ILkYfLCxDYn3Qwzsvh5xjxOcsjzmRddNURJvT
# 23Eva0cxisH4ocLLTx2zfpqfshw4Z9GaEdsWg9rmib1galUpLzF5PsQDBbtZtcv+
# Wjmn0pFEiMCWwEEcPVN0YG5ysYLdNBdJOn2zsOOS+80W5RrQEqzPpSIIvEkZBJmF
# 3aI4lMR8nV/FiTadjpIIqxX5Wa1XlqI/Nj+xagVjnjb7POsA+vh6Wu+v24HpyL8p
# yL/8Q4RFkRRME9cwT+Jr63yOtPbLe6DXkxIJW6E6w2ua5kXBpEKtEQPTLPhX3CUx
# MYcglbnmI0zcc9UknX285K+sI/2WwRwTBZkhDUULI86eQzV+zvzzR1qEBrlSY+oy
# TlYQrHMM9WnTzVflFDocZVTPpl2BDSNxPn0Qb4IoM9EPqbHyi/MilL+v/AQc8q3m
# Q6FiuPJAddz0ocpNZ9ekBWPVLKq3lfiev4yl65u/438+NAQ+vSJgkONLMmuoguEG
# zmnK1vq/JHwdRUyn6YADiteM7Dja+Qd9AgMBAAGjggFJMIIBRTAdBgNVHQ4EFgQU
# K4FFJaJR5ukXQFTUxMhyiwVuWV4wHwYDVR0jBBgwFoAUn6cVXQBeYl2D9OXSZacb
# UzUZ6XIwXwYDVR0fBFgwVjBUoFKgUIZOaHR0cDovL3d3dy5taWNyb3NvZnQuY29t
# L3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAo
# MSkuY3JsMGwGCCsGAQUFBwEBBGAwXjBcBggrBgEFBQcwAoZQaHR0cDovL3d3dy5t
# aWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1w
# JTIwUENBJTIwMjAxMCgxKS5jcnQwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8EDDAK
# BggrBgEFBQcDCDAOBgNVHQ8BAf8EBAMCB4AwDQYJKoZIhvcNAQELBQADggIBACiD
# rVZeP37+fFVtfcbfsqC/Kg0Ce67bDcehZmPcfRgJ5Ddv0pJlOFVOFbiIVwesqeEU
# wFtclfi5AjneQ5ZJpYJpXfELOelG3dzj+BKfd287/UY/cwmSkl+CjnoKBL3Ms6I/
# fWR+alR0+p6RlviK8xHoug9vkc2WrRZsGnMVu2xOM2tPJ+qpyoDBzqv30N/ZRBOo
# NrS/PCkDwLGICDYqVs/IzAE49yv2ElPywalf9mEsOHXV1lxtQDNcejVEmitJJ+1V
# r2EtafPEbMQZp89TAuagROKE4YuohCUKm+v3geJqTQarTBjqV25RCOT+XFngTMDD
# 9wYx6TwndB2I1Ly726NiHUHs0uvq3ciCV9JwNXdt1VZ63WK1NSgpVEsiK9EPABPt
# 1EfXcKrfaPYkbkFi79eK1ETxx3NomYNUHNiGU+X1Be8L7qpHwjo0g3/33XhtOr9L
# iDoUXh/V2LFTETiqV9Q8yLEavQW3j9LQ/h/CaGz5YdGfrY8HiPfMIeLEokKxGf0h
# HcTEFApB0yLlq6KoHrFAEANR/4XuFIpl9sDywVIWt4tKqG+P6pRAXzg1zG5rGlsl
# ZWmw7XwgvhBu3jkLP9AxrsSYwY2ftrwwze5NA6VDLS7pz+OrXXWLUmoyNrJNx5Bk
# 0wEwzkQxzkOvmbdPhsOP1ZM0uA/xIV7cSpNpZUw5MIIHcTCCBVmgAwIBAgITMwAA
# ABXF52ueAptJmQAAAAAAFTANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMx
# EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT
# FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3Qg
# Q2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMjEwOTMwMTgyMjI1WhcNMzAw
# OTMwMTgzMjI1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ
# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
# MSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJ
# KoZIhvcNAQEBBQADggIPADCCAgoCggIBAOThpkzntHIhC3miy9ckeb0O1YLT/e6c
# BwfSqWxOdcjKNVf2AX9sSuDivbk+F2Az/1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWN
# E893MsAQGOhgfWpSg0S3po5GawcU88V29YZQ3MFEyHFcUTE3oAo4bo3t1w/YJlN8
# OWECesSq/XJprx2rrPY2vjUmZNqYO7oaezOtgFt+jBAcnVL+tuhiJdxqD89d9P6O
# U8/W7IVWTe/dvI2k45GPsjksUZzpcGkNyjYtcI4xyDUoveO0hyTD4MmPfrVUj9z6
# BVWYbWg7mka97aSueik3rMvrg0XnRm7KMtXAhjBcTyziYrLNueKNiOSWrAFKu75x
# qRdbZ2De+JKRHh09/SDPc31BmkZ1zcRfNN0Sidb9pSB9fvzZnkXftnIv231fgLrb
# qn427DZM9ituqBJR6L8FA6PRc6ZNN3SUHDSCD/AQ8rdHGO2n6Jl8P0zbr17C89XY
# cz1DTsEzOUyOArxCaC4Q6oRRRuLRvWoYWmEBc8pnol7XKHYC4jMYctenIPDC+hIK
# 12NvDMk2ZItboKaDIV1fMHSRlJTYuVD5C4lh8zYGNRiER9vcG9H9stQcxWv2XFJR
# XRLbJbqvUAV6bMURHXLvjflSxIUXk8A8FdsaN8cIFRg/eKtFtvUeh17aj54WcmnG
# rnu3tz5q4i6tAgMBAAGjggHdMIIB2TASBgkrBgEEAYI3FQEEBQIDAQABMCMGCSsG
# AQQBgjcVAgQWBBQqp1L+ZMSavoKRPEY1Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBe
# Yl2D9OXSZacbUzUZ6XIwXAYDVR0gBFUwUzBRBgwrBgEEAYI3TIN9AQEwQTA/Bggr
# BgEFBQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1Jl
# cG9zaXRvcnkuaHRtMBMGA1UdJQQMMAoGCCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQM
# HgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1Ud
# IwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0
# dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0Nl
# ckF1dF8yMDEwLTA2LTIzLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKG
# Pmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0
# XzIwMTAtMDYtMjMuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEk
# W+Geckv8qW/qXBS2Pk5HZHixBpOXPTEztTnXwnE2P9pkbHzQdTltuw8x5MKP+2zR
# oZQYIu7pZmc6U03dmLq2HnjYNi6cqYJWAAOwBb6J6Gngugnue99qb74py27YP0h1
# AdkY3m2CDPVtI1TkeFN1JFe53Z/zjj3G82jfZfakVqr3lbYoVSfQJL1AoL8ZthIS
# EV09J+BAljis9/kpicO8F7BUhUKz/AyeixmJ5/ALaoHCgRlCGVJ1ijbCHcNhcy4s
# a3tuPywJeBTpkbKpW99Jo3QMvOyRgNI95ko+ZjtPu4b6MhrZlvSP9pEB9s7GdP32
# THJvEKt1MMU0sHrYUP4KWN1APMdUbZ1jdEgssU5HLcEUBHG/ZPkkvnNtyo4JvbMB
# V0lUZNlz138eW0QBjloZkWsNn6Qo3GcZKCS6OEuabvshVGtqRRFHqfG3rsjoiV5P
# ndLQTHa1V1QJsWkBRH58oWFsc/4Ku+xBZj1p/cvBQUl+fpO+y/g75LcVv7TOPqUx
# UYS8vwLBgqJ7Fx0ViY1w/ue10CgaiQuPNtq6TPmb/wrpNPgkNWcr4A245oyZ1uEi
# 6vAnQj0llOZ0dFtq0Z4+7X6gMTN9vMvpe784cETRkPHIqzqKOghif9lwY1NNje6C
# baUFEMFxBmoQtB1VM1izoXBm8qGCA1AwggI4AgEBMIH5oYHRpIHOMIHLMQswCQYD
# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe
# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3Nv
# ZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046
# MzcwMy0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNl
# cnZpY2WiIwoBATAHBgUrDgMCGgMVAInbHtxB+OlGyQnxQYhy04KSYSSPoIGDMIGA
# pH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT
# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE
# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwDQYJKoZIhvcNAQELBQAC
# BQDpthCiMCIYDzIwMjQwNDAyMDUwNTM4WhgPMjAyNDA0MDMwNTA1MzhaMHcwPQYK
# KwYBBAGEWQoEATEvMC0wCgIFAOm2EKICAQAwCgIBAAICLWACAf8wBwIBAAICEqYw
# CgIFAOm3YiICAQAwNgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoDAqAKMAgC
# AQACAwehIKEKMAgCAQACAwGGoDANBgkqhkiG9w0BAQsFAAOCAQEAa8rmD7HZlFm8
# QCe1iGEnK/XivanmW+doYRUJS1II+TIhNnKF1aSltGcKwIel/WkDaQmz6cpD9LPt
# /WGttuvs0yNdXqHs/z79Y5GFS8Wues/6aV0paX6lH63saPzmR+whyr33n5ouWjUi
# 8k2M+t01PfTOF146XtwL9zlpravgJwBSXrdfGONDb6rXmHu1ggdbLiA2S02GKOj7
# jcGOSeXTQon9VIGiyMoiXTbRB8xjqp40C3KLPXjOIZ+izP6ujPp602SEoD0cI+zR
# vN5hwu0Bcly31e4AL1udovEQmtv40DxdFJBtQT+LiEBPC9NcaZGj4LjwEBgdpSjJ
# wT/mdvriiTGCBA0wggQJAgEBMIGTMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpX
# YXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQg
# Q29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAy
# MDEwAhMzAAAB6pokctVZP2FjAAEAAAHqMA0GCWCGSAFlAwQCAQUAoIIBSjAaBgkq
# hkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEIBa6Lb3nNncL
# FzaGyh1iDFNRuXunqm4vZkSv0tWlZNi0MIH6BgsqhkiG9w0BCRACLzGB6jCB5zCB
# 5DCBvQQgKY+h1eNkNHiLCDSW0sA1cGHkbW4qooi+ryyMp6S4ZngwgZgwgYCkfjB8
# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk
# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1N
# aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAeqaJHLVWT9hYwABAAAB
# 6jAiBCA5+67zo/KbtRmx6y7ElZBXLqMpLvZdaMeHr6kMP60XjzANBgkqhkiG9w0B
# AQsFAASCAgCc00mGGwJ/Bwq4Nr8dxndZX6QtFfQ3j89ybr8ZN9B50DFtLx6hAOso
# UGRc2ycztOhdQUxBaCaBI5UVPfuZd0uTNgJl4FvGic4E67lIaILICg67c/Efbyky
# UsrpeCJHJugSNcsPWlXW0udtuVs7MjC4t/kkLblvOvzy1D8TfjLMVf04Bk6OmxZO
# 5fy4pKGO424ZmPmd8s8A69mAix7txUPMt6nKKDeCUWR7E6jlTFzPGwWEi8h+zFFc
# crHlNNSj1MZzys0Vn6EVVvekJ9RgB5XumNbO82u27j6m56KZKWtDVnEpxlFtwpgD
# xi/1IhchyE7drIVuXomVUrvFNd/dm1Y6zhHGjgksGd30NfMqt9z2xg1m8zgkujIY
# ax5zLUX4+tzl9f7MnKMbDPRBVdefjYRzyXl8egM7eRuuOnNHMaSw/x9HiF8ESUpO
# q44Pc884aZfjhEbc7326l/FWrmlzUbb0OugIEb6WC6KlWvZw4htxeh+9A5lhaYO/
# 1ZK50cxfQN7hLc5OFkUtr8zhTtIav1zyvMLN86pToOZoPExvgMu1FCqWiiSNktTY
# t3DatPiYQPPAcCfPWWTiN5O75QmFf7ABXyckslSxCL3sA9gHv+gbyYE7nxufFuFj
# se3bts8+UrIVgNtQ/3xX/Ds+f/bZlzrWrTMQ/R1bv3mJUciPuwc6uQ==
# SIG # End signature block