custom/Approve-ZNInboundRuleReview.ps1

<#
.Synopsis
Approve a "pending review" rule with or without changes
.Description
Approve a "pending review" rule with or without changes

.Link
https://github.com/zeronetworks/zero-powershell/zeronetworks/Approve-ZNInboundRuleReview
#>

function Approve-ZNInboundRuleReview {
    [OutputType([ZeroNetworks.PowerShell.Cmdlets.Api.Models.Any])]
    [CmdletBinding(DefaultParameterSetName = 'ApproveExpanded', PositionalBinding = $false, SupportsShouldProcess, ConfirmImpact = 'Medium')]
    param(
        [Parameter(ParameterSetName = 'ApproveExpanded')]
        [Parameter(ParameterSetName = 'ApproveWithChangesExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Path')]
        [System.String]
        # Account Name
        ${AccountName},
        
        [Parameter(ParameterSetName = 'ApproveExpanded', Mandatory)]
        [Parameter(ParameterSetName = 'ApproveWithChangesExpanded', Mandatory)]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Path')]
        [System.String]
        # rule Id
        ${RuleId},

        [Parameter(ParameterSetName = 'ApproveWithChangesExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [System.String]
        # Comments
        ${Details},
        
        [Parameter(ParameterSetName = 'ApproveWithChangesExpanded', Mandatory)]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [ValidateSet('HumanTrafficCoveredByMFA', 'TightenRuleScope', 'MissingPortOrProcess', 'AffectedEntitiesContainedInAnExisitingGroup', 'RedundantRule', 'TrafficShouldBeBlocked', 'Other')]
        # Review Reason int32
        ${Reason},
        
        [Parameter(ParameterSetName = 'ApproveWithChangesExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [int32]
        # Action
        ${Action},
        
        [Parameter(ParameterSetName = 'ApproveWithChangesExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [System.String]
        # the rule description.
        ${Description},
        #[-RuleInfoDescription <String>]
        
        [Parameter(ParameterSetName = 'ApproveWithChangesExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [string[]]
        # excluded destination asset(s).
        ${ExcludedLocalIdsList},
        #[-RuleInfoExcludedLocalIdsList <String[]>]
        
        [Parameter(ParameterSetName = 'ApproveWithChangesExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [Int64]
        # when the rule should expiry.
        ${ExpiresAt},
        #[-RuleInfoExpiresAt <Int64>]

        [Parameter(ParameterSetName = 'ApproveWithChangesExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [int32]
        # ip sec configuration
        ${IpSecOpt},

        [Parameter(ParameterSetName = 'ApproveWithChangesExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [System.String]
        # The Destination asset(s).
        ${LocalEntityId},
        #[-RuleInfoLocalEntityId <String>]

        [Parameter(ParameterSetName = 'ApproveWithChangesExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [System.String[]]
        # the destination process paths.
        ${LocalProcessesList},
        #[-RuleInfoLocalProcessesList <String[]>]
        
        [Parameter(ParameterSetName = 'ApproveWithChangesExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Models.IPortsListItem[]]
        # the destination ports and protocols.
        ${PortsList},
        #[-RuleInfoPortsList <IPortsListItem[]>]
         
        [Parameter(ParameterSetName = 'ApproveWithChangesExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [string[]]
        # the source asset(s).
        ${RemoteEntityIdsList},
        #[-RuleInfoRemoteEntityIdsList <String[]>]
         
        [Parameter(ParameterSetName = 'ApproveWithChangesExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [int32]
        # the rule state.
        ${State},

        [Parameter()]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Runtime')]
        [System.Management.Automation.SwitchParameter]
        # Run the command as a job
        ${AsJob},

        [Parameter(DontShow)]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Runtime')]
        [System.Management.Automation.SwitchParameter]
        # Wait for .NET debugger to attach
        ${Break},

        [Parameter(DontShow)]
        [ValidateNotNull()]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Runtime')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Runtime.SendAsyncStep[]]
        # SendAsync Pipeline Steps to be appended to the front of the pipeline
        ${HttpPipelineAppend},

        [Parameter(DontShow)]
        [ValidateNotNull()]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Runtime')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Runtime.SendAsyncStep[]]
        # SendAsync Pipeline Steps to be prepended to the front of the pipeline
        ${HttpPipelinePrepend},

        [Parameter()]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Runtime')]
        [System.Management.Automation.SwitchParameter]
        # Run the command asynchronously
        ${NoWait},

        [Parameter(DontShow)]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Runtime')]
        [System.Uri]
        # The URI for the proxy server to use
        ${Proxy},

        [Parameter(DontShow)]
        [ValidateNotNull()]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Runtime')]
        [System.Management.Automation.PSCredential]
        # Credentials for a proxy server to use for the remote call
        ${ProxyCredential},

        [Parameter(DontShow)]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Runtime')]
        [System.Management.Automation.SwitchParameter]
        # Use the default credentials for the proxy
        ${ProxyUseDefaultCredentials}
    )

    process {
        try {
            #handle based on paramtersetname
            switch ($PsCmdlet.ParameterSetName) {
                "ApproveExpanded" {
                    ZeroNetworks.internal\Approve-ZNInboundRulesReview @PSBoundParameters
                }
                "ApproveWithChangesExpanded" {
                    #Handle Get
                    $ruleId = $PSBoundParameters['RuleId'].ToString()
                    $rule = ZeroNetworks\Get-ZNInboundRule -RuleId $ruleId
                    
                    $ruleReview = [ZeroNetworks.PowerShell.Cmdlets.Api.Models.RuleReviewApproveWithChanges]::new()

                    if ($PSBoundParameters['Reason']) {
                        if ($PSBoundParameters['Reason'] -eq 'Other') {
                            if (!$PSBoundParameters['Details']) {
                                Write-Error "You must provide Details if Reason is Other"
                            }
                        }
                        switch ($PSBoundParameters['Reason']) {
                            'HumanTrafficCoveredByMFA' { $intReason = 1 }
                            'TightenRuleScope' { $intReason = 2 }
                            'MissingPortOrProcess' { $intReason = 3 }
                            'AffectedEntitiesContainedInAnExisitingGroup' { $intReason = 4 }
                            'RedundantRule' { $intReason = 5 }
                            'TrafficShouldBeBlocked' { $intReason = 6 }
                            "Other" { $intReason = 7 }
                        }
                        $ruleReview.ReviewReason = $intReason
                        $null = $PSBoundParameters.Remove('Reason')
                    }

                    if ($PSBoundParameters['Details']) {
                        $ruleReview.ReviewDetails = $PSBoundParameters['Details']
                        $null = $PSBoundParameters.Remove('Details')
                    }

                    $ruleReview.RuleInfoDirection = 1

                    if ($PSBoundParameters['Action']) {
                        $ruleReview.RuleInfoAction = $PSBoundParameters['Action']
                        $null = $PSBoundParameters.Remove('Action')
                    }
                    else {
                        $ruleReview.RuleInfoAction = $rule.ItemAction
                        $null = $PSBoundParameters.Remove('Action')
                    }

                    if ($PSBoundParameters['Description']) {
                        $ruleReview.RuleInfoDescription = $PSBoundParameters['Description']
                        $null = $PSBoundParameters.Remove('Description')
                    }
                    else {
                        $ruleReview.RuleInfoDescription = $rule.ItemDescription
                        $null = $PSBoundParameters.Remove('Description')
                    }

                    if ($PSBoundParameters['ExcludedLocalIdsList']) {
                        $ruleReview.RuleInfoExcludedLocalIdsList = $PSBoundParameters['ExcludedLocalIdsList']
                        $null = $PSBoundParameters.Remove('ExcludedLocalIdsList')
                    }
                    else {
                        $ruleReview.RuleInfoExcludedLocalIdsList = $rule.ItemExcludedLocalIdsList
                        $null = $PSBoundParameters.Remove('ExcludedLocalIdsList')
                    }

                    if ($PSBoundParameters['ExpiresAt']) {
                        $ruleReview.RuleInfoExpiresAt = $PSBoundParameters['ExpiresAt']
                        $null = $PSBoundParameters.Remove('ExpiresAt')
                    }
                    else {
                        $ruleReview.RuleInfoExpiresAt = $rule.ItemExpiresAt
                        $null = $PSBoundParameters.Remove('ExpiresAt')
                    }
                    
                    if ($PSBoundParameters['IpSecOpt']) {
                        $ruleReview.RuleInfoIpSecOpt = $PSBoundParameters['IpSecOpt']
                        $null = $PSBoundParameters.Remove('IpSecOpt')
                    }
                    else {
                        $ruleReview.RuleInfoIpSecOpt = $rule.ItemIpSecOpt
                        $null = $PSBoundParameters.Remove('IpSecOpt')
                    }
                    
                    if ($PSBoundParameters['LocalEntityId']) {
                        $ruleReview.RuleInfoLocalEntityId = $PSBoundParameters['LocalEntityId']
                        $null = $PSBoundParameters.Remove('LocalEntityId')
                    }
                    else {
                        $ruleReview.RuleInfoLocalEntityId = $rule.ItemLocalEntityId
                        $null = $PSBoundParameters.Remove('LocalEntityId')
                    }
                    
                    if ($PSBoundParameters['LocalProcessesList']) {
                        $ruleReview.RuleInfoLocalProcessesList = $PSBoundParameters['LocalProcessesList']
                        $null = $PSBoundParameters.Remove('LocalProcessesList')
                    }
                    else {
                        $ruleReview.RuleInfoLocalProcessesList = $rule.ItemLocalProcessesList
                        $null = $PSBoundParameters.Remove('LocalProcessesList')
                    }

                    if ($PSBoundParameters['PortsList']) {
                        $ruleReview.RuleInfoPortsList = $PSBoundParameters['PortsList']
                        $null = $PSBoundParameters.Remove('PortsList')
                    }
                    else {
                        $ruleReview.RuleInfoPortsList = $rule.ItemPortsList
                        $null = $PSBoundParameters.Remove('PortsList')
                    }
                    
                    if ($PSBoundParameters['RemoteEntityIdsList']) {
                        $ruleReview.RuleInfoRemoteEntityIdsList = $PSBoundParameters['RemoteEntityIdsList']
                        $null = $PSBoundParameters.Remove('RemoteEntityIdsList')
                    }
                    else {
                        $ruleReview.RuleInfoRemoteEntityIdsList = $rule.ItemRemoteEntityIdsList
                        $null = $PSBoundParameters.Remove('RemoteEntityIdsList')
                    }
                    
                    if ($PSBoundParameters['State']) {
                        $ruleReview.RuleInfoState = $PSBoundParameters['State']
                        $null = $PSBoundParameters.Remove('State')
                    }
                    else {
                        $ruleReview.RuleInfoState = 1
                        $null = $PSBoundParameters.Remove('State')
                    }

                    $null = $PSBoundParameters.Add('Body', $ruleReview)
                    ZeroNetworks.internal\Approve-ZNInboundRulesReview @PSBoundParameters
                }
            }
        }
        catch {
            throw
        }
    }
}
# SIG # Begin signature block
# MII9NgYJKoZIhvcNAQcCoII9JzCCPSMCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDGHK5pZsF20Jtg
# 2HrTQiVu1xWcfGQAihKOxxJfMGTG76CCIfgwggXMMIIDtKADAgECAhBUmNLR1FsZ
# lUgTecgRwIeZMA0GCSqGSIb3DQEBDAUAMHcxCzAJBgNVBAYTAlVTMR4wHAYDVQQK
# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xSDBGBgNVBAMTP01pY3Jvc29mdCBJZGVu
# dGl0eSBWZXJpZmljYXRpb24gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAy
# MDAeFw0yMDA0MTYxODM2MTZaFw00NTA0MTYxODQ0NDBaMHcxCzAJBgNVBAYTAlVT
# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xSDBGBgNVBAMTP01pY3Jv
# c29mdCBJZGVudGl0eSBWZXJpZmljYXRpb24gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRo
# b3JpdHkgMjAyMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALORKgeD
# Bmf9np3gx8C3pOZCBH8Ppttf+9Va10Wg+3cL8IDzpm1aTXlT2KCGhFdFIMeiVPvH
# or+Kx24186IVxC9O40qFlkkN/76Z2BT2vCcH7kKbK/ULkgbk/WkTZaiRcvKYhOuD
# PQ7k13ESSCHLDe32R0m3m/nJxxe2hE//uKya13NnSYXjhr03QNAlhtTetcJtYmrV
# qXi8LW9J+eVsFBT9FMfTZRY33stuvF4pjf1imxUs1gXmuYkyM6Nix9fWUmcIxC70
# ViueC4fM7Ke0pqrrBc0ZV6U6CwQnHJFnni1iLS8evtrAIMsEGcoz+4m+mOJyoHI1
# vnnhnINv5G0Xb5DzPQCGdTiO0OBJmrvb0/gwytVXiGhNctO/bX9x2P29Da6SZEi3
# W295JrXNm5UhhNHvDzI9e1eM80UHTHzgXhgONXaLbZ7LNnSrBfjgc10yVpRnlyUK
# xjU9lJfnwUSLgP3B+PR0GeUw9gb7IVc+BhyLaxWGJ0l7gpPKWeh1R+g/OPTHU3mg
# trTiXFHvvV84wRPmeAyVWi7FQFkozA8kwOy6CXcjmTimthzax7ogttc32H83rwjj
# O3HbbnMbfZlysOSGM1l0tRYAe1BtxoYT2v3EOYI9JACaYNq6lMAFUSw0rFCZE4e7
# swWAsk0wAly4JoNdtGNz764jlU9gKL431VulAgMBAAGjVDBSMA4GA1UdDwEB/wQE
# AwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTIftJqhSobyhmYBAcnz1AQ
# T2ioojAQBgkrBgEEAYI3FQEEAwIBADANBgkqhkiG9w0BAQwFAAOCAgEAr2rd5hnn
# LZRDGU7L6VCVZKUDkQKL4jaAOxWiUsIWGbZqWl10QzD0m/9gdAmxIR6QFm3FJI9c
# Zohj9E/MffISTEAQiwGf2qnIrvKVG8+dBetJPnSgaFvlVixlHIJ+U9pW2UYXeZJF
# xBA2CFIpF8svpvJ+1Gkkih6PsHMNzBxKq7Kq7aeRYwFkIqgyuH4yKLNncy2RtNwx
# AQv3Rwqm8ddK7VZgxCwIo3tAsLx0J1KH1r6I3TeKiW5niB31yV2g/rarOoDXGpc8
# FzYiQR6sTdWD5jw4vU8w6VSp07YEwzJ2YbuwGMUrGLPAgNW3lbBeUU0i/OxYqujY
# lLSlLu2S3ucYfCFX3VVj979tzR/SpncocMfiWzpbCNJbTsgAlrPhgzavhgplXHT2
# 6ux6anSg8Evu75SjrFDyh+3XOjCDyft9V77l4/hByuVkrrOj7FjshZrM77nq81YY
# uVxzmq/FdxeDWds3GhhyVKVB0rYjdaNDmuV3fJZ5t0GNv+zcgKCf0Xd1WF81E+Al
# GmcLfc4l+gcK5GEh2NQc5QfGNpn0ltDGFf5Ozdeui53bFv0ExpK91IjmqaOqu/dk
# ODtfzAzQNb50GQOmxapMomE2gj4d8yu8l13bS3g7LfU772Aj6PXsCyM2la+YZr9T
# 03u4aUoqlmZpxJTG9F9urJh4iIAGXKKy7aIwggapMIIEkaADAgECAhMzAAHCQ42w
# bFHDieGxAAAAAcJDMA0GCSqGSIb3DQEBDAUAMFoxCzAJBgNVBAYTAlVTMR4wHAYD
# VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKzApBgNVBAMTIk1pY3Jvc29mdCBJ
# RCBWZXJpZmllZCBDUyBBT0MgQ0EgMDQwHhcNMjYwNjA2MTgyNDE4WhcNMjYwNjA5
# MTgyNDE4WjBrMQswCQYDVQQGEwJJTDERMA8GA1UECBMIVGVsIEF2aXYxETAPBgNV
# BAcTCFRlbCBBdml2MRowGAYDVQQKExFaZXJvIE5ldHdvcmtzIEx0ZDEaMBgGA1UE
# AxMRWmVybyBOZXR3b3JrcyBMdGQwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGK
# AoIBgQC4KQX4iIWHTQ0tlRyrx3DIIi1wa4HfZtEG92IHWNIFCWl6wuzgPfYtXdH7
# DrqbUHexasGb3SuqwN4BkMHRn+Uyo15PNaIOqryk946yg7HxawDxoF1qhqmUcETC
# 3oB2Eoy6Kd49eHAdxmZarE0EQ0Q3WxYNYlFtG1jt8zNnicYaFcxTn4HsB7eotmm5
# ddMMjqpR9xGTrha1mWQkiZSHC0MCz+VEpUKkTB6VxHRKI36nz5m0X89GJNrUCJkM
# qWLl5MO4VO0lRFaj6DUaLMNxNgzcATwh+DkDJcMxQkM4Xy/doG0q9R58B/xkMw3q
# JfSzi759ijMjcc0g2UEYecha/pN7BjHM1T5ybY3fElM8GHvjAtCJn0oLqJuDA97T
# p1BkWA3hFky++NinjIKTHp8wJ9DAcRJGL9PPoTfqC4SfhVrQG++7WzMHabA/SDl/
# QYvpwhszqXySQhRitEvmWj4R6kPDKYi7zxQF/pKjVBQAsVxmOinv1BVxTfYAdfVe
# cHvnth0CAwEAAaOCAdUwggHRMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeA
# MDwGA1UdJQQ1MDMGCisGAQQBgjdhAQAGCCsGAQUFBwMDBhsrBgEEAYI3YYGwosY4
# g9jRjh+BtaSjBsGi+2swHQYDVR0OBBYEFNZ584bB6Y44WM0/ukTwgcAH0hLCMB8G
# A1UdIwQYMBaAFGslQd77a3z9GIAKLX+Pdl2qcz24MGcGA1UdHwRgMF4wXKBaoFiG
# Vmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy
# MElEJTIwVmVyaWZpZWQlMjBDUyUyMEFPQyUyMENBJTIwMDQuY3JsMHQGCCsGAQUF
# BwEBBGgwZjBkBggrBgEFBQcwAoZYaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3Br
# aW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBJRCUyMFZlcmlmaWVkJTIwQ1MlMjBBT0Ml
# MjBDQSUyMDA0LmNydDBUBgNVHSAETTBLMEkGBFUdIAAwQTA/BggrBgEFBQcCARYz
# aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnku
# aHRtMA0GCSqGSIb3DQEBDAUAA4ICAQCuzvQIdyccOoEfp0nk7EwABjcTHSL1Pj7y
# We4zZUYgz9WMxpKEJ5x0GM5IG1Sj5+SKQk8LGkIzR9AttMZK6ykzfnNU9QT1XUjX
# RULN30tzoTO6n9gUC5xaXQe5g/rg786KW3UC4lEw8FaiVgFlhTf5X38aGhOoB7rE
# vf0GEzsk3Ju/SFrT53973GDL7LlymUy2AVg6bKK3QYdKiZRePhm2X0f4nWounY9m
# SkARALpPyFRC1TdHogqrJrVUqaqxNU6u0j9/ywTHMJxpwHHIO68W9CJzE8hZnz9M
# X5J8EMPf9xd0M2YkqSyfXLRs0pSGN1wQUwJTSPhLiQJCTlfYFGpdlbjHmOUVfuRT
# Us9mfPhE9Im7+TbgbtVs2VvfnE4HJypQ3NkVX1pc+3dOe722JmokVM4bDWuhQxNB
# Zw0Q/tZ1+4mWC1svC145Cn0FJjPZLpVPrpOxO9OyrRKj445Pw+V12L+dGi1j5HUA
# eO/mJx2gmll1TEk3Jdlz/Zqo8Ya+rq87M5Xzxp2ZbWBRz1+7QzrvMvKFtoP4MjNa
# 018/aO4O3hNZ3zuIJK8mN7Y3ZFgLSM5tcNE/j1t7HDkjA7XKJ5yNiTs5fkLBX0dP
# JJxxiNSfFrwif31cl/tJ+8mQDLiu8fQCVW1Yg0lLTNQc8AzHovXKH0khntEMzzxS
# SuysF1aSujCCBqkwggSRoAMCAQICEzMAAcJDjbBsUcOJ4bEAAAABwkMwDQYJKoZI
# hvcNAQEMBQAwWjELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
# b3JhdGlvbjErMCkGA1UEAxMiTWljcm9zb2Z0IElEIFZlcmlmaWVkIENTIEFPQyBD
# QSAwNDAeFw0yNjA2MDYxODI0MThaFw0yNjA2MDkxODI0MThaMGsxCzAJBgNVBAYT
# AklMMREwDwYDVQQIEwhUZWwgQXZpdjERMA8GA1UEBxMIVGVsIEF2aXYxGjAYBgNV
# BAoTEVplcm8gTmV0d29ya3MgTHRkMRowGAYDVQQDExFaZXJvIE5ldHdvcmtzIEx0
# ZDCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBALgpBfiIhYdNDS2VHKvH
# cMgiLXBrgd9m0Qb3YgdY0gUJaXrC7OA99i1d0fsOuptQd7FqwZvdK6rA3gGQwdGf
# 5TKjXk81og6qvKT3jrKDsfFrAPGgXWqGqZRwRMLegHYSjLop3j14cB3GZlqsTQRD
# RDdbFg1iUW0bWO3zM2eJxhoVzFOfgewHt6i2abl10wyOqlH3EZOuFrWZZCSJlIcL
# QwLP5USlQqRMHpXEdEojfqfPmbRfz0Yk2tQImQypYuXkw7hU7SVEVqPoNRosw3E2
# DNwBPCH4OQMlwzFCQzhfL92gbSr1HnwH/GQzDeol9LOLvn2KMyNxzSDZQRh5yFr+
# k3sGMczVPnJtjd8SUzwYe+MC0ImfSguom4MD3tOnUGRYDeEWTL742KeMgpMenzAn
# 0MBxEkYv08+hN+oLhJ+FWtAb77tbMwdpsD9IOX9Bi+nCGzOpfJJCFGK0S+ZaPhHq
# Q8MpiLvPFAX+kqNUFACxXGY6Ke/UFXFN9gB19V5we+e2HQIDAQABo4IB1TCCAdEw
# DAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCB4AwPAYDVR0lBDUwMwYKKwYBBAGC
# N2EBAAYIKwYBBQUHAwMGGysGAQQBgjdhgbCixjiD2NGOH4G1pKMGwaL7azAdBgNV
# HQ4EFgQU1nnzhsHpjjhYzT+6RPCBwAfSEsIwHwYDVR0jBBgwFoAUayVB3vtrfP0Y
# gAotf492XapzPbgwZwYDVR0fBGAwXjBcoFqgWIZWaHR0cDovL3d3dy5taWNyb3Nv
# ZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwSUQlMjBWZXJpZmllZCUyMENT
# JTIwQU9DJTIwQ0ElMjAwNC5jcmwwdAYIKwYBBQUHAQEEaDBmMGQGCCsGAQUFBzAC
# hlhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29m
# dCUyMElEJTIwVmVyaWZpZWQlMjBDUyUyMEFPQyUyMENBJTIwMDQuY3J0MFQGA1Ud
# IARNMEswSQYEVR0gADBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29m
# dC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9yeS5odG0wDQYJKoZIhvcNAQEMBQAD
# ggIBAK7O9Ah3Jxw6gR+nSeTsTAAGNxMdIvU+PvJZ7jNlRiDP1YzGkoQnnHQYzkgb
# VKPn5IpCTwsaQjNH0C20xkrrKTN+c1T1BPVdSNdFQs3fS3OhM7qf2BQLnFpdB7mD
# +uDvzopbdQLiUTDwVqJWAWWFN/lffxoaE6gHusS9/QYTOyTcm79IWtPnf3vcYMvs
# uXKZTLYBWDpsordBh0qJlF4+GbZfR/idai6dj2ZKQBEAuk/IVELVN0eiCqsmtVSp
# qrE1Tq7SP3/LBMcwnGnAccg7rxb0InMTyFmfP0xfknwQw9/3F3QzZiSpLJ9ctGzS
# lIY3XBBTAlNI+EuJAkJOV9gUal2VuMeY5RV+5FNSz2Z8+ET0ibv5NuBu1WzZW9+c
# TgcnKlDc2RVfWlz7d057vbYmaiRUzhsNa6FDE0FnDRD+1nX7iZYLWy8LXjkKfQUm
# M9kulU+uk7E707KtEqPjjk/D5XXYv50aLWPkdQB47+YnHaCaWXVMSTcl2XP9mqjx
# hr6urzszlfPGnZltYFHPX7tDOu8y8oW2g/gyM1rTXz9o7g7eE1nfO4gkryY3tjdk
# WAtIzm1w0T+PW3scOSMDtconnI2JOzl+QsFfR08knHGI1J8WvCJ/fVyX+0n7yZAM
# uK7x9AJVbViDSUtM1BzwDMei9cofSSGe0QzPPFJK7KwXVpK6MIIHKDCCBRCgAwIB
# AgITMwAAABYxko2SAmV7mgAAAAAAFjANBgkqhkiG9w0BAQwFADBjMQswCQYDVQQG
# EwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTQwMgYDVQQDEytN
# aWNyb3NvZnQgSUQgVmVyaWZpZWQgQ29kZSBTaWduaW5nIFBDQSAyMDIxMB4XDTI2
# MDMyNjE4MTEyOVoXDTMxMDMyNjE4MTEyOVowWjELMAkGA1UEBhMCVVMxHjAcBgNV
# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjErMCkGA1UEAxMiTWljcm9zb2Z0IElE
# IFZlcmlmaWVkIENTIEFPQyBDQSAwNDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC
# AgoCggIBAMpV+sjb6Akwz/RtDk5Uo1284BLMttRQy9e5/5WXtga6h89pkdWjeAwc
# XmKdP4YxKkhx8hn2q1dTVQbryvLy81tC04vg2bfSJ9emojX4HKIBYs7VhPRafMbt
# c866hN55aw1m/kWaPEKxF4Fm/LPLMLJdlu7URB8nFZMfh5tTC0CJb2uox/14OP/B
# iGIR8214lXdkV6JsPbO0Iev0mEV133tducIeBChMipzTZfnGVEq1QYFr7460cEGO
# In+7AGfNOSq7gWOlmNB4m2uZ1r66vUJPaN+VYgH/Kmfu7tX229b3Alsli38fYS0n
# QY41bElntMS7yNY+Kd047eXM8/tS3NL+ZUNX3ge5xZqW2aytrrNIbwGgQnzsgzxB
# Jvu9+b87jUWFiRS/z1YiPkRLY7iTHKIxJ973kIyK8K5itE/aEq/Ht6A8ytaAMMGT
# EwuCspk72FE1Qyby+TfDlv1KiAc7IlWHHIWbxoVd8jGCoMXhLSDhuFuGfOWOZKUI
# uW6YxlxcUYOOkXa02gC7dUYUZi0e1NI1Uq9mmAHdvjKdqgORs9/5aDjnbeO3hWd5
# qwGBmELWytkjY0KcIEF+CMurTimoQoBYSiHJbYrb0pKSQe+3lVoTVpzdi36jKI7M
# xLnu1fBAMksa8uD85cU7RU29zMOd18h9dgTEH9pvY+4xLB3lUgE7AgMBAAGjggHc
# MIIB2DAOBgNVHQ8BAf8EBAMCAYYwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYE
# FGslQd77a3z9GIAKLX+Pdl2qcz24MFQGA1UdIARNMEswSQYEVR0gADBBMD8GCCsG
# AQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVw
# b3NpdG9yeS5odG0wGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwEgYDVR0TAQH/
# BAgwBgEB/wIBADAfBgNVHSMEGDAWgBTZQSmwDw9jbO9p1/XNKZ6kSGow5jBwBgNV
# HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny
# bC9NaWNyb3NvZnQlMjBJRCUyMFZlcmlmaWVkJTIwQ29kZSUyMFNpZ25pbmclMjBQ
# Q0ElMjAyMDIxLmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6
# Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwSUQl
# MjBWZXJpZmllZCUyMENvZGUlMjBTaWduaW5nJTIwUENBJTIwMjAyMS5jcnQwDQYJ
# KoZIhvcNAQEMBQADggIBAAbVUF5UdNVEGWOVxkPciIzHA/IyNDIs1oSdW7mY4Oba
# FEEl8fwawEsBOascBzwXjuOaTkKelQ+IiC4JvDpn8pWPgOyiKrbbw1Iswt7AV8Yy
# uLu7A0YshILlxyny9R0AMMQixLZ0T5Aj07CQOm/de5QPt36ECBwtVww6XUCx8Rm2
# xl6eEa9JhSub8W4urQGoQYv0Zczlz4ej2ryj5Wf9L4ZZA3bL6CRE7XmzSQjTmdSm
# r904PiuL2uBWzq2KkR3RhmoaAP4Jk2JplasNM5Bs0+dx3YX2o6xRrbSaJiu6hPk/
# AkBoj5BCJMTZkl4wk6Q6nOFNSCpUxnBmJ0RRkoKq51p5ADTxbCeRAx8rIfNpTyPj
# xQtxTiFTC8yy/t9K6s570YB1FAI+8XxZxIrmgMd7xVUkzi2/oooKb3UeovH0lqYG
# BEjpHZJ9jee7boQbOe7SsKD/vr3PzFabg9VwLZlovpWUpWoWnU2w3xiozJ/m35ts
# ZVvT2egUpwkb9TDIaXFGZAGV94FRDHn/K2XNnOwSeGskX19MB+N7yPc51fmUSd49
# MVAtGW/NkUGpRech5Aq/d8dCML2bZ+j9nTUMgj+qnd3wuEZVRbQEIbTh9HAck0fy
# KqoIb+qh8y/6TKbYDEEOcfM2BGMvrQk4WIGCK6u8uFhA2EH3kpaiMUDqyFCeCCQx
# MIIHnjCCBYagAwIBAgITMwAAAAeHozSje6WOHAAAAAAABzANBgkqhkiG9w0BAQwF
# ADB3MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
# MUgwRgYDVQQDEz9NaWNyb3NvZnQgSWRlbnRpdHkgVmVyaWZpY2F0aW9uIFJvb3Qg
# Q2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMjAwHhcNMjEwNDAxMjAwNTIwWhcNMzYw
# NDAxMjAxNTIwWjBjMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENv
# cnBvcmF0aW9uMTQwMgYDVQQDEytNaWNyb3NvZnQgSUQgVmVyaWZpZWQgQ29kZSBT
# aWduaW5nIFBDQSAyMDIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
# svDArxmIKOLdVHpMSWxpCFUJtFL/ekr4weslKPdnF3cpTeuV8veqtmKVgok2rO0D
# 05BpyvUDCg1wdsoEtuxACEGcgHfjPF/nZsOkg7c0mV8hpMT/GvB4uhDvWXMIeQPs
# DgCzUGzTvoi76YDpxDOxhgf8JuXWJzBDoLrmtThX01CE1TCCvH2sZD/+Hz3RDwl2
# MsvDSdX5rJDYVuR3bjaj2QfzZFmwfccTKqMAHlrz4B7ac8g9zyxlTpkTuJGtFnLB
# GasoOnn5NyYlf0xF9/bjVRo4Gzg2Yc7KR7yhTVNiuTGH5h4eB9ajm1OCShIyhrKq
# gOkc4smz6obxO+HxKeJ9bYmPf6KLXVNLz8UaeARo0BatvJ82sLr2gqlFBdj1sYfq
# Of00Qm/3B4XGFPDK/H04kteZEZsBRc3VT2d/iVd7OTLpSH9yCORV3oIZQB/Qr4nD
# 4YT/lWkhVtw2v2s0TnRJubL/hFMIQa86rcaGMhNsJrhysLNNMeBhiMezU1s5zpus
# f54qlYu2v5sZ5zL0KvBDLHtL8F9gn6jOy3v7Jm0bbBHjrW5yQW7S36ALAt03QDpw
# W1JG1Hxu/FUXJbBO2AwwVG4Fre+ZQ5Od8ouwt59FpBxVOBGfN4vN2m3fZx1gqn52
# GvaiBz6ozorgIEjn+PhUXILhAV5Q/ZgCJ0u2+ldFGjcCAwEAAaOCAjUwggIxMA4G
# A1UdDwEB/wQEAwIBhjAQBgkrBgEEAYI3FQEEAwIBADAdBgNVHQ4EFgQU2UEpsA8P
# Y2zvadf1zSmepEhqMOYwVAYDVR0gBE0wSzBJBgRVHSAAMEEwPwYIKwYBBQUHAgEW
# M2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5
# Lmh0bTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAPBgNVHRMBAf8EBTADAQH/
# MB8GA1UdIwQYMBaAFMh+0mqFKhvKGZgEByfPUBBPaKiiMIGEBgNVHR8EfTB7MHmg
# d6B1hnNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3Nv
# ZnQlMjBJZGVudGl0eSUyMFZlcmlmaWNhdGlvbiUyMFJvb3QlMjBDZXJ0aWZpY2F0
# ZSUyMEF1dGhvcml0eSUyMDIwMjAuY3JsMIHDBggrBgEFBQcBAQSBtjCBszCBgQYI
# KwYBBQUHMAKGdWh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMv
# TWljcm9zb2Z0JTIwSWRlbnRpdHklMjBWZXJpZmljYXRpb24lMjBSb290JTIwQ2Vy
# dGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDIwLmNydDAtBggrBgEFBQcwAYYhaHR0
# cDovL29uZW9jc3AubWljcm9zb2Z0LmNvbS9vY3NwMA0GCSqGSIb3DQEBDAUAA4IC
# AQB/JSqe/tSr6t1mCttXI0y6XmyQ41uGWzl9xw+WYhvOL47BV09Dgfnm/tU4ieeZ
# 7NAR5bguorTCNr58HOcA1tcsHQqt0wJsdClsu8bpQD9e/al+lUgTUJEV80Xhco7x
# dgRrehbyhUf4pkeAhBEjABvIUpD2LKPho5Z4DPCT5/0TlK02nlPwUbv9URREhVYC
# tsDM+31OFU3fDV8BmQXv5hT2RurVsJHZgP4y26dJDVF+3pcbtvh7R6NEDuYHYihf
# mE2HdQRq5jRvLE1Eb59PYwISFCX2DaLZ+zpU4bX0I16ntKq4poGOFaaKtjIA1vRE
# lItaOKcwtc04CBrXSfyL2Op6mvNIxTk4OaswIkTXbFL81ZKGD+24uMCwo/pLNhn7
# VHLfnxlMVzHQVL+bHa9KhTyzwdG/L6uderJQn0cGpLQMStUuNDArxW2wF16QGZ1N
# tBWgKA8Kqv48M8HfFqNifN6+zt6J0GwzvU8g0rYGgTZR8zDEIJfeZxwWDHpSxB5F
# J1VVU1LIAtB7o9PXbjXzGifaIMYTzU4YKt4vMNwwBmetQDHhdAtTPplOXrnI9SI6
# HeTtjDD3iUN/7ygbahmYOHk7VB7fwT4ze+ErCbMh6gHV1UuXPiLciloNxH6K4aMf
# ZN1oLVk6YFeIJEokuPgNPa6EnTiOL60cPqfny+Fq8UiuZzGCGpQwghqQAgEBMHEw
# WjELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEr
# MCkGA1UEAxMiTWljcm9zb2Z0IElEIFZlcmlmaWVkIENTIEFPQyBDQSAwNAITMwAB
# wkONsGxRw4nhsQAAAAHCQzANBglghkgBZQMEAgEFAKBeMBAGCisGAQQBgjcCAQwx
# AjAAMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMC8GCSqGSIb3DQEJBDEiBCAs
# jrH5wcPw55FG1YYzvDeel+Ys9jhMV8QIUX/lQl/BXDANBgkqhkiG9w0BAQEFAASC
# AYCejvPHS6/m0VWVsmqNuOcux+uIdd5qMBvFaKtyYr8YZaXxq07++jE+bGxMIqVD
# 6B1Njk9FoN66WP9Dva41SkIzXi9a4ua7nRjdNEbtlL7mO6vTJYwVz3W6upMltd1b
# bFeuhezS7Mc6tBnpBymoP2JsRtesJqug/Gw79OvgJWC/LtBLKbo8MtJH2u0ThgDI
# HVo/EpRbcz70Bt8XbLDEiSL3/kTlG3m9kwnm0bnqKhzzs/F2O1QIM7YkjDN6I949
# gM98Y1OlJBcfe95DuYGRHEPhb3auUSz+eIyEJnYj43okxvsN1cLhbKTGjCi8ErFT
# lzIA0q1ZhsSY2f4rLZt/CIBjdOxKBj0sKfjuwDP7at+kMh9lcUZ5kMVJQTZzLS8d
# KmrMreBHatDNnVsk2lrOZKiBHMy/YGxpIAmyaNX+p+9UEd6wan3C+wr47s7Jko8u
# /fEXMdbs79BhCnLyw8WxMHWPJnhCNs2AKankDr2M0V0qAWErXVeCt5vi80XS0nB5
# YRChghgUMIIYEAYKKwYBBAGCNwMDATGCGAAwghf8BgkqhkiG9w0BBwKgghftMIIX
# 6QIBAzEPMA0GCWCGSAFlAwQCAQUAMIIBYgYLKoZIhvcNAQkQAQSgggFRBIIBTTCC
# AUkCAQEGCisGAQQBhFkKAwEwMTANBglghkgBZQMEAgEFAAQg9PxdOQDyWLU+JRR5
# 8038vTkMQR/5grfRvU6aEiR/1igCBmnogWH/bRgTMjAyNjA2MDgxNjQ4MTUuNzg1
# WjAEgAIB9KCB4aSB3jCB2zELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0
# b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh
# dGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEnMCUG
# A1UECxMeblNoaWVsZCBUU1MgRVNOOjdEMDAtMDVFMC1EOTQ3MTUwMwYDVQQDEyxN
# aWNyb3NvZnQgUHVibGljIFJTQSBUaW1lIFN0YW1waW5nIEF1dGhvcml0eaCCDyEw
# ggeCMIIFaqADAgECAhMzAAAABeXPD/9mLsmHAAAAAAAFMA0GCSqGSIb3DQEBDAUA
# MHcxCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
# SDBGBgNVBAMTP01pY3Jvc29mdCBJZGVudGl0eSBWZXJpZmljYXRpb24gUm9vdCBD
# ZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAyMDAeFw0yMDExMTkyMDMyMzFaFw0zNTEx
# MTkyMDQyMzFaMGExCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y
# cG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBQdWJsaWMgUlNBIFRpbWVzdGFt
# cGluZyBDQSAyMDIwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnnzn
# UmP94MWfBX1jtQYioxwe1+eXM9ETBb1lRkd3kcFdcG9/sqtDlwxKoVIcaqDb+omF
# io5DHC4RBcbyQHjXCwMk/l3TOYtgoBjxnG/eViS4sOx8y4gSq8Zg49REAf5huXhI
# kQRKe3Qxs8Sgp02KHAznEa/Ssah8nWo5hJM1xznkRsFPu6rfDHeZeG1Wa1wISvlk
# pOQooTULFm809Z0ZYlQ8Lp7i5F9YciFlyAKwn6yjN/kR4fkquUWfGmMopNq/B8U/
# pdoZkZZQbxNlqJOiBGgCWpx69uKqKhTPVi3gVErnc/qi+dR8A2MiAz0kN0nh7SqI
# NGbmw5OIRC0EsZ31WF3Uxp3GgZwetEKxLms73KG/Z+MkeuaVDQQheangOEMGJ4pQ
# ZH55ngI0Tdy1bi69INBV5Kn2HVJo9XxRYR/JPGAaM6xGl57Ei95HUw9NV/uC3yFj
# rhc087qLJQawSC3xzY/EXzsT4I7sDbxOmM2rl4uKK6eEpurRduOQ2hTkmG1hSuWY
# BunFGNv21Kt4N20AKmbeuSnGnsBCd2cjRKG79+TX+sTehawOoxfeOO/jR7wo3liw
# kGdzPJYHgnJ54UxbckF914AqHOiEV7xTnD1a69w/UTxwjEugpIPMIIE67SFZ2PMo
# 27xjlLAHWW3l1CEAFjLNHd3EQ79PUr8FUXetXr0CAwEAAaOCAhswggIXMA4GA1Ud
# DwEB/wQEAwIBhjAQBgkrBgEEAYI3FQEEAwIBADAdBgNVHQ4EFgQUa2koOjUvSGNA
# z3vYr0npPtk92yEwVAYDVR0gBE0wSzBJBgRVHSAAMEEwPwYIKwYBBQUHAgEWM2h0
# dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0
# bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMA
# QTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFMh+0mqFKhvKGZgEByfPUBBP
# aKiiMIGEBgNVHR8EfTB7MHmgd6B1hnNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v
# cGtpb3BzL2NybC9NaWNyb3NvZnQlMjBJZGVudGl0eSUyMFZlcmlmaWNhdGlvbiUy
# MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMjAuY3JsMIGUBggr
# BgEFBQcBAQSBhzCBhDCBgQYIKwYBBQUHMAKGdWh0dHA6Ly93d3cubWljcm9zb2Z0
# LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwSWRlbnRpdHklMjBWZXJpZmlj
# YXRpb24lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDIwLmNy
# dDANBgkqhkiG9w0BAQwFAAOCAgEAX4h2x35ttVoVdedMeGj6TuHYRJklFaW4sTQ5
# r+k77iB79cSLNe+GzRjv4pVjJviceW6AF6ycWoEYR0LYhaa0ozJLU5Yi+LCmcrdo
# vkl53DNt4EXs87KDogYb9eGEndSpZ5ZM74LNvVzY0/nPISHz0Xva71QjD4h+8z2X
# MOZzY7YQ0Psw+etyNZ1CesufU211rLslLKsO8F2aBs2cIo1k+aHOhrw9xw6JCWON
# NboZ497mwYW5EfN0W3zL5s3ad4Xtm7yFM7Ujrhc0aqy3xL7D5FR2J7x9cLWMq7eb
# 0oYioXhqV2tgFqbKHeDick+P8tHYIFovIP7YG4ZkJWag1H91KlELGWi3SLv10o4K
# Gag42pswjybTi4toQcC/irAodDW8HNtX+cbz0sMptFJK+KObAnDFHEsukxD+7jFf
# EV9Hh/+CSxKRsmnuiovCWIOb+H7DRon9TlxydiFhvu88o0w35JkNbJxTk4MhF/Kg
# aXn0GxdH8elEa2Imq45gaa8D+mTm8LWVydt4ytxYP/bqjN49D9NZ81coE6aQWm88
# TwIf4R4YZbOpMKN0CyejaPNN41LGXHeCUMYmBx3PkP8ADHD1J2Cr/6tjuOOCztfp
# +o9Nc+ZoIAkpUcA/X2gSMkgHAPUvIdtoSAHEUKiBhI6JQivRepyvWcl+JYbYbBh7
# pmgAXVswggeXMIIFf6ADAgECAhMzAAAAVdndaSYo+fjiAAAAAABVMA0GCSqGSIb3
# DQEBDAUAMGExCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y
# YXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBQdWJsaWMgUlNBIFRpbWVzdGFtcGlu
# ZyBDQSAyMDIwMB4XDTI1MTAyMzIwNDY0OVoXDTI2MTAyMjIwNDY0OVowgdsxCzAJ
# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k
# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jv
# c29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT
# Tjo3RDAwLTA1RTAtRDk0NzE1MDMGA1UEAxMsTWljcm9zb2Z0IFB1YmxpYyBSU0Eg
# VGltZSBTdGFtcGluZyBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
# ggIKAoICAQC9uR+SHllIs/QwJRZp9rD8pmhVm72JDHyvknCFm92tSLzpSMIIVA42
# NBqesjEYX2FEYhktBnnSAessL7h+lQQl9/m3ThXAHJYLb9tY66To2ZpOH0mk9kNw
# bM1H3lCWvKN8SO2X6DGPXbM08R0AM+mVV/O3xxhFYUHH8Vt9yHTyTo/2nuNfarWM
# U9tTFZgn7E7IYLVoqEMZjlv7zAvf2/qoLQcUjH+/fL5t6n5oReigrxWh5Yr6zN9o
# WNejxhNy9DxQvizO70cVO5k2/q++gnsm76jlpOPnWymH7T4VdbfxOUv+sMF3mJrv
# 2OyQu054dsOORuWOKXDN6BzG/2Lj0XTlmtL/kQtkIJjVVqo7sQ4spVrHF0A7mjLW
# 9vQHHRlFVfWbEWNjNrLYQLTnWTrIYkebnzLWh7YgpFr9IzX4FMax7q8c2LlDZ3lm
# ehH0A4BQMPAkgipEjitnPYxKKeHXVatdMb26sXa6jJ3lV77yHF6z0AF4/Y9hAqVd
# hMDG91p5qcNND+/Cacz7JNxbOtWbzhnfxdUXDgbun9k1naexy+/q6u7YB69dzJXW
# 3yFruJaaGGBNYE0GtWK4OVzeI+87PZJU9s96qHJj81fA1kICBzYfmk7O27ozBDEM
# iO17dcz8WQoHEeh9LZps1P/Qcb7Fm0WpQkNrGBslrqU3XOHuymO5DwIDAQABo4IB
# yzCCAccwHQYDVR0OBBYEFFYEXxBt3AgD8Mi/qckWysHXrGW2MB8GA1UdIwQYMBaA
# FGtpKDo1L0hjQM972K9J6T7ZPdshMGwGA1UdHwRlMGMwYaBfoF2GW2h0dHA6Ly93
# d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFB1YmxpYyUy
# MFJTQSUyMFRpbWVzdGFtcGluZyUyMENBJTIwMjAyMC5jcmwweQYIKwYBBQUHAQEE
# bTBrMGkGCCsGAQUFBzAChl1odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz
# L2NlcnRzL01pY3Jvc29mdCUyMFB1YmxpYyUyMFJTQSUyMFRpbWVzdGFtcGluZyUy
# MENBJTIwMjAyMC5jcnQwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEF
# BQcDCDAOBgNVHQ8BAf8EBAMCB4AwZgYDVR0gBF8wXTBRBgwrBgEEAYI3TIN9AQEw
# QTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9E
# b2NzL1JlcG9zaXRvcnkuaHRtMAgGBmeBDAEEAjANBgkqhkiG9w0BAQwFAAOCAgEA
# Uh7hklR72pQpxZ5bKlyEHnx9cT9kha/YPlc/n+T+0HssI30G+Y1JUpndV5yVAz3v
# zB8S+690xBJS/pjbRuggzwMrUrUhT1w/bUwbQTGIfFqqOuKR/apt+tciKngR/e/Z
# s1gpDELE3dJzOnVJfQfu6orYvk6F8MSJd/XmKi7mGH4Q9pqqnj1zM1CkkM5H+98m
# CFRz+pyyUM+GgJmlnHxvY4O/LAZA1fCqVuyYJLbi4aYSRDdQfklR43pz3XJqxVyF
# LvyuIyubpH1mkCI7ml80owZTYwubUDemnT3wNxsVMBz3keHpC+SH//bwX9d7ZswV
# voMvtLDRk73m/SC/RlPIl/FL8sLF+tp4Qgj0VIU4oAwSnXM0VKza57QYaMG33IQQ
# xTC/Gr0TEXPRpnNibyK8l99+khUOdf/6tVFNhzEiRDIViyUiFiVYX1KMLDmvj2pq
# SMxE2Hxb07tpqiiVJVmV5BmMa3QrwnMyXKnqGnaVtbpepHHZw4dtvEkPGYQ3OiEZ
# TOIjXeUjaDYF/mqJt8Lhso1Gkmj2VsTwdRtjSomITy7dJTx4NBrJI9c4SEmPFEJD
# DA696NiYEbk/sJyRA0FKeeXXb4UpEqA+iPQy/7Pk4yGP3PYy2luccsCR6nSh1AKU
# TLIIb+5Hm0rmtbqZkfk6rnpRZLQ0jo1XUkZLsmuLqMUxggdGMIIHQgIBATB4MGEx
# CzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xMjAw
# BgNVBAMTKU1pY3Jvc29mdCBQdWJsaWMgUlNBIFRpbWVzdGFtcGluZyBDQSAyMDIw
# AhMzAAAAVdndaSYo+fjiAAAAAABVMA0GCWCGSAFlAwQCAQUAoIIEnzARBgsqhkiG
# 9w0BCRACDzECBQAwGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMBwGCSqGSIb3
# DQEJBTEPFw0yNjA2MDgxNjQ4MTVaMC8GCSqGSIb3DQEJBDEiBCCSBL7ezPQ4WXSC
# ysnJpzeCYaHMjstim2fjLaxtFTBN3zCBuQYLKoZIhvcNAQkQAi8xgakwgaYwgaMw
# gaAEINi5PJdkhmK7v33+/g9qqyZ5LMHGHSuqRiruxhhq+P7NMHwwZaRjMGExCzAJ
# BgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xMjAwBgNV
# BAMTKU1pY3Jvc29mdCBQdWJsaWMgUlNBIFRpbWVzdGFtcGluZyBDQSAyMDIwAhMz
# AAAAVdndaSYo+fjiAAAAAABVMIIDYQYLKoZIhvcNAQkQAhIxggNQMIIDTKGCA0gw
# ggNEMIICLAIBATCCAQmhgeGkgd4wgdsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpX
# YXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQg
# Q29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlv
# bnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjo3RDAwLTA1RTAtRDk0NzE1MDMG
# A1UEAxMsTWljcm9zb2Z0IFB1YmxpYyBSU0EgVGltZSBTdGFtcGluZyBBdXRob3Jp
# dHmiIwoBATAHBgUrDgMCGgMVAB07VAGCZb+24FlXkQaOF+xXhw3qoGcwZaRjMGEx
# CzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xMjAw
# BgNVBAMTKU1pY3Jvc29mdCBQdWJsaWMgUlNBIFRpbWVzdGFtcGluZyBDQSAyMDIw
# MA0GCSqGSIb3DQEBCwUAAgUA7dD18DAiGA8yMDI2MDYwODA4MDQwMFoYDzIwMjYw
# NjA5MDgwNDAwWjB3MD0GCisGAQQBhFkKBAExLzAtMAoCBQDt0PXwAgEAMAoCAQAC
# Ah62AgH/MAcCAQACAhJWMAoCBQDt0kdwAgEAMDYGCisGAQQBhFkKBAIxKDAmMAwG
# CisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZIhvcNAQEL
# BQADggEBAKwvjQMrcp4mxWxN8/890/+nByP05/D5ZzojJbngxht13/O/Cx5RlMlB
# dNHvd4d7aEdwlL43u1LKDItYyKQxbkt1s4YutGxyQrmNu0btlrf81LP4xJI7tuO9
# 85kCmEC8tElUTpOMqy/f1oFuz8DPmAjVuAA9u/trjfUtBn1Uzvsp4hazhM26RrJa
# NIF8GJad2Ucmk5jFUKfukmCkzRRhDBncnChkh8W5dJmaALbY1pnUzo+dQZiVC/cb
# 2YN370rgtuAxsMJoom7oi2lVYPlatEgjUBm77/iFXwQqhrufvYeCiEwVmvTsXLum
# OFM8e/I1bQRRR7zfnGh/hc5sZdNTmTAwDQYJKoZIhvcNAQEBBQAEggIAlNyjwpvi
# W0OUjqXDU2gDDtme5w5tQ1FgEihKlzlifiIMXmSr7n/sgJqfxN1wOGwr2WY1MN5B
# CXhyV5shNx2RpYatqBAii7mQm11u+Ly1MZNH6xeleoHp78fjg2Fyiy7mvdkLPt7o
# rbejxtJ/aglsT/LOC2jb8rWSMOs0x3f5s6RlpEUInKWf+ARfToAUVEl6UuJ5RoGA
# O62y1eAMsjWbCqjA6LAXyoD316Trgr7vOPesRIITNtJCUPuqimyEQvLgkEVo6enK
# dn0O41Jh68E/JSBYlmXmj0TtImpyeSSfsPN105tZD5cWYSNetXgqyUuVIlqFSoq1
# VuFAmDBxJQ+JdFG3IT/delNZxmaBnSkH3Yyv6IGjrQCOWmFTgfzQ+FLJBt59nrIn
# 22p1HWSQemc9DVX3+YHs2KQA+wX1Daw8VVKs498XdUNoDXPV+/p9SD8THaqaaIZA
# abwsgHd70Sx4F6XxsJHSAB167kfzhYIcyQg8cy/LZe0i1Ak83mCz8fiydzLwgRDA
# hg0G/G7BuxoUHhPlKBCID6FsEzLkJtxyDuNSzWkrkj0X1T1jouuVubpPJ2mIqw5I
# ZaGwjAP6O/K67rq+mFQt/qXXpmMj2cEWSPpZlOUOz26AiJaBkxYLY5ArsnGsFabv
# nXp9wdCI/UDWzP4OVP7CtCePzptetKBYlJY=
# SIG # End signature block