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', 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 # MIIsLAYJKoZIhvcNAQcCoIIsHTCCLBkCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB # gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR # AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUcX3adYG+sGMfAZ6fW2gJ0yyi # PSOggiVuMIIFbzCCBFegAwIBAgIQSPyTtGBVlI02p8mKidaUFjANBgkqhkiG9w0B # AQwFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVy # MRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEh # MB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTIxMDUyNTAwMDAw # MFoXDTI4MTIzMTIzNTk1OVowVjELMAkGA1UEBhMCR0IxGDAWBgNVBAoTD1NlY3Rp # Z28gTGltaXRlZDEtMCsGA1UEAxMkU2VjdGlnbyBQdWJsaWMgQ29kZSBTaWduaW5n # IFJvb3QgUjQ2MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjeeUEiIE # JHQu/xYjApKKtq42haxH1CORKz7cfeIxoFFvrISR41KKteKW3tCHYySJiv/vEpM7 # fbu2ir29BX8nm2tl06UMabG8STma8W1uquSggyfamg0rUOlLW7O4ZDakfko9qXGr # YbNzszwLDO/bM1flvjQ345cbXf0fEj2CA3bm+z9m0pQxafptszSswXp43JJQ8mTH # qi0Eq8Nq6uAvp6fcbtfo/9ohq0C/ue4NnsbZnpnvxt4fqQx2sycgoda6/YDnAdLv # 64IplXCN/7sVz/7RDzaiLk8ykHRGa0c1E3cFM09jLrgt4b9lpwRrGNhx+swI8m2J # mRCxrds+LOSqGLDGBwF1Z95t6WNjHjZ/aYm+qkU+blpfj6Fby50whjDoA7NAxg0P # OM1nqFOI+rgwZfpvx+cdsYN0aT6sxGg7seZnM5q2COCABUhA7vaCZEao9XOwBpXy # bGWfv1VbHJxXGsd4RnxwqpQbghesh+m2yQ6BHEDWFhcp/FycGCvqRfXvvdVnTyhe # Be6QTHrnxvTQ/PrNPjJGEyA2igTqt6oHRpwNkzoJZplYXCmjuQymMDg80EY2NXyc # uu7D1fkKdvp+BRtAypI16dV60bV/AK6pkKrFfwGcELEW/MxuGNxvYv6mUKe4e7id # FT/+IAx1yCJaE5UZkADpGtXChvHjjuxf9OUCAwEAAaOCARIwggEOMB8GA1UdIwQY # MBaAFKARCiM+lvEH7OKvKe+CpX/QMKS0MB0GA1UdDgQWBBQy65Ka/zWWSC8oQEJw # IDaRXBeF5jAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zATBgNVHSUE # DDAKBggrBgEFBQcDAzAbBgNVHSAEFDASMAYGBFUdIAAwCAYGZ4EMAQQBMEMGA1Ud # HwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL0FBQUNlcnRpZmlj # YXRlU2VydmljZXMuY3JsMDQGCCsGAQUFBwEBBCgwJjAkBggrBgEFBQcwAYYYaHR0 # cDovL29jc3AuY29tb2RvY2EuY29tMA0GCSqGSIb3DQEBDAUAA4IBAQASv6Hvi3Sa # mES4aUa1qyQKDKSKZ7g6gb9Fin1SB6iNH04hhTmja14tIIa/ELiueTtTzbT72ES+ # BtlcY2fUQBaHRIZyKtYyFfUSg8L54V0RQGf2QidyxSPiAjgaTCDi2wH3zUZPJqJ8 # ZsBRNraJAlTH/Fj7bADu/pimLpWhDFMpH2/YGaZPnvesCepdgsaLr4CnvYFIUoQx # 2jLsFeSmTD1sOXPUC4U5IOCFGmjhp0g4qdE2JXfBjRkWxYhMZn0vY86Y6GnfrDyo # XZ3JHFuu2PMvdM+4fvbXg50RlmKarkUT2n/cR/vfw1Kf5gZV6Z2M8jpiUbzsJA8p # 1FiAhORFe1rYMIIFjTCCBHWgAwIBAgIQDpsYjvnQLefv21DiCEAYWjANBgkqhkiG # 9w0BAQwFADBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkw # FwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1 # cmVkIElEIFJvb3QgQ0EwHhcNMjIwODAxMDAwMDAwWhcNMzExMTA5MjM1OTU5WjBi # MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 # d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg # RzQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAi # MGkz7MKnJS7JIT3yithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnny # yhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE # 5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm # 7nfISKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5 # w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsD # dV14Ztk6MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1Z # XUJ2h4mXaXpI8OCiEhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS0 # 0mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hk # pjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m8 # 00ERElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+i # sX4KJpn15GkvmB0t9dmpsh3lGwIDAQABo4IBOjCCATYwDwYDVR0TAQH/BAUwAwEB # /zAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wHwYDVR0jBBgwFoAUReui # r/SSy4IxLVGLp6chnfNtyA8wDgYDVR0PAQH/BAQDAgGGMHkGCCsGAQUFBwEBBG0w # azAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEMGCCsGAQUF # BzAChjdodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVk # SURSb290Q0EuY3J0MEUGA1UdHwQ+MDwwOqA4oDaGNGh0dHA6Ly9jcmwzLmRpZ2lj # ZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwEQYDVR0gBAowCDAG # BgRVHSAAMA0GCSqGSIb3DQEBDAUAA4IBAQBwoL9DXFXnOF+go3QbPbYW1/e/Vwe9 # mqyhhyzshV6pGrsi+IcaaVQi7aSId229GhT0E0p6Ly23OO/0/4C5+KH38nLeJLxS # A8hO0Cre+i1Wz/n096wwepqLsl7Uz9FDRJtDIeuWcqFItJnLnU+nBgMTdydE1Od/ # 6Fmo8L8vC6bp8jQ87PcDx4eo0kxAGTVGamlUsLihVo7spNU96LHc/RzY9HdaXFSM # b++hUD38dglohJ9vytsgjTVgHAIDyyCwrFigDkBjxZgiwbJZ9VVrzyerbHbObyMt # 9H5xaiNrIv8SuFQtJ37YOtnwtoeW/VvRXKwYw02fc7cBqZ9Xql4o4rmUMIIGHDCC # BASgAwIBAgIQM9cIqJFAUxnipbvTObmtbjANBgkqhkiG9w0BAQwFADBWMQswCQYD # VQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMS0wKwYDVQQDEyRTZWN0 # aWdvIFB1YmxpYyBDb2RlIFNpZ25pbmcgUm9vdCBSNDYwHhcNMjEwMzIyMDAwMDAw # WhcNMzYwMzIxMjM1OTU5WjBXMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGln # byBMaW1pdGVkMS4wLAYDVQQDEyVTZWN0aWdvIFB1YmxpYyBDb2RlIFNpZ25pbmcg # Q0EgRVYgUjM2MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAu9H+HrdC # W3j1kKeuLIPxjSHTMIaFe9/TzdkWS6yFxbsBz+KMKBFyBHYsgcWrEnpASsUQ6IEU # ORtfTwf2MDAwfzUl5cBzPUAJlOio+Os5C1XVtgyLHif43j4iwb/vZe5z7mXdKN27 # H32bMn+3mVUXqrJJqDwQajrDIbKZqEPXO4KoGWG1PmpaXbi8nhPQCp71W49pOGjq # pR9byiPuC+280B5DQ26wU4zCcypEMW6+j7jGAva7ggQVeQxSIOiYJ3Fh7y/k+AL7 # M1m19MNV59/2CCKuttEJWewBn3OJt0NP1fLZvVZZCd23F/bEdIC6h0asBtvbBA3V # TrrujAk0GZUb5nATBCXfj7jXhDOMbKYM62i6lU98ROjUaY0lecMh8TV3+E+2ElWV # 0FboGALV7nnIhqFp8RtOlBNqB2Lw0GuZpZdQnhwzoR7uYYsFaByO9e4mkIPW/nGF # p5ryDRQ+NrUSrXd1esznRjZqkFPLxpRx3gc6IfnWMmfgnG5UhqBkoIPLAgMBAAGj # ggFjMIIBXzAfBgNVHSMEGDAWgBQy65Ka/zWWSC8oQEJwIDaRXBeF5jAdBgNVHQ4E # FgQUgTKSQSsozUbIxKLGKjkS7EipPxQwDgYDVR0PAQH/BAQDAgGGMBIGA1UdEwEB # /wQIMAYBAf8CAQAwEwYDVR0lBAwwCgYIKwYBBQUHAwMwGgYDVR0gBBMwETAGBgRV # HSAAMAcGBWeBDAEDMEsGA1UdHwREMEIwQKA+oDyGOmh0dHA6Ly9jcmwuc2VjdGln # by5jb20vU2VjdGlnb1B1YmxpY0NvZGVTaWduaW5nUm9vdFI0Ni5jcmwwewYIKwYB # BQUHAQEEbzBtMEYGCCsGAQUFBzAChjpodHRwOi8vY3J0LnNlY3RpZ28uY29tL1Nl # Y3RpZ29QdWJsaWNDb2RlU2lnbmluZ1Jvb3RSNDYucDdjMCMGCCsGAQUFBzABhhdo # dHRwOi8vb2NzcC5zZWN0aWdvLmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAXzas+/n2 # cloUt/ALHd7Y/ZcB0v0B7pkthuj2t/A5/9aBSlqnQkoKLRWd5pT9xWlKstdL8RYS # TPa+kGZliy101KsI92oRAwh3fL5p4bDbnySJA9beXKTgsta0z+M41bltzCfWzmQR # 6BBydtP54OksielJ07OXlgYK4fYKyEGakV2B2DZ3mMqAQZeo+JE/Y5+qzVRUS4Dq # 9Rdm05Rx/Z79RzHj6RqGHdO+INI/sVJfspO9jJUJmHKPlQH0mEOlSvsUJqqdNr9y # sPzcvYQN7O00qF6VKzgWYwV12fYxLhVr4pSyKtJ0NbWYmqP++CsvthdLJ2xa5rl2 # XtqG3atk1mrqgxiIGzGC9YizlCXAIS8IaQLjTLtMKhEw64F5BuFBlSrUIPYLk+R8 # dgydHSZrX4QB9iqZza/ex/DkGKJOmy8qDGamknUmvtlANRNvrqY3GnrorRxRYwcq # VgZs7X4Y9uPsZHOmbQg2i68Pma51axcrwk1qw1FGQVbpj8KN/xNxm9rtntOfq+VF # phLFFFpSQZejBgAIxeYc6ieCPDvb5kbE7y0ANRPNNn2d5aonCAXMzsA2DksZT9Bj # mm2/xSlTMSLbdVB3htDy+GruawYbPoUjK5fIfnqZQQzdWH8OqMMSPTo1m+CdLIwX # gVREqHodmJ2Wf1lYplRl/1FCC/hH68/45b8wggauMIIElqADAgECAhAHNje3JFR8 # 2Ees/ShmKl5bMA0GCSqGSIb3DQEBCwUAMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQK # EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNV # BAMTGERpZ2lDZXJ0IFRydXN0ZWQgUm9vdCBHNDAeFw0yMjAzMjMwMDAwMDBaFw0z # NzAzMjIyMzU5NTlaMGMxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwg # SW5jLjE7MDkGA1UEAxMyRGlnaUNlcnQgVHJ1c3RlZCBHNCBSU0E0MDk2IFNIQTI1 # NiBUaW1lU3RhbXBpbmcgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC # AQDGhjUGSbPBPXJJUVXHJQPE8pE3qZdRodbSg9GeTKJtoLDMg/la9hGhRBVCX6SI # 82j6ffOciQt/nR+eDzMfUBMLJnOWbfhXqAJ9/UO0hNoR8XOxs+4rgISKIhjf69o9 # xBd/qxkrPkLcZ47qUT3w1lbU5ygt69OxtXXnHwZljZQp09nsad/ZkIdGAHvbREGJ # 3HxqV3rwN3mfXazL6IRktFLydkf3YYMZ3V+0VAshaG43IbtArF+y3kp9zvU5Emfv # DqVjbOSmxR3NNg1c1eYbqMFkdECnwHLFuk4fsbVYTXn+149zk6wsOeKlSNbwsDET # qVcplicu9Yemj052FVUmcJgmf6AaRyBD40NjgHt1biclkJg6OBGz9vae5jtb7IHe # IhTZgirHkr+g3uM+onP65x9abJTyUpURK1h0QCirc0PO30qhHGs4xSnzyqqWc0Jo # n7ZGs506o9UD4L/wojzKQtwYSH8UNM/STKvvmz3+DrhkKvp1KCRB7UK/BZxmSVJQ # 9FHzNklNiyDSLFc1eSuo80VgvCONWPfcYd6T/jnA+bIwpUzX6ZhKWD7TA4j+s4/T # Xkt2ElGTyYwMO1uKIqjBJgj5FBASA31fI7tk42PgpuE+9sJ0sj8eCXbsq11GdeJg # o1gJASgADoRU7s7pXcheMBK9Rp6103a50g5rmQzSM7TNsQIDAQABo4IBXTCCAVkw # EgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUuhbZbU2FL3MpdpovdYxqII+e # yG8wHwYDVR0jBBgwFoAU7NfjgtJxXWRM3y5nP+e6mK4cD08wDgYDVR0PAQH/BAQD # AgGGMBMGA1UdJQQMMAoGCCsGAQUFBwMIMHcGCCsGAQUFBwEBBGswaTAkBggrBgEF # BQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEEGCCsGAQUFBzAChjVodHRw # Oi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNy # dDBDBgNVHR8EPDA6MDigNqA0hjJodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGln # aUNlcnRUcnVzdGVkUm9vdEc0LmNybDAgBgNVHSAEGTAXMAgGBmeBDAEEAjALBglg # hkgBhv1sBwEwDQYJKoZIhvcNAQELBQADggIBAH1ZjsCTtm+YqUQiAX5m1tghQuGw # GC4QTRPPMFPOvxj7x1Bd4ksp+3CKDaopafxpwc8dB+k+YMjYC+VcW9dth/qEICU0 # MWfNthKWb8RQTGIdDAiCqBa9qVbPFXONASIlzpVpP0d3+3J0FNf/q0+KLHqrhc1D # X+1gtqpPkWaeLJ7giqzl/Yy8ZCaHbJK9nXzQcAp876i8dU+6WvepELJd6f8oVInw # 1YpxdmXazPByoyP6wCeCRK6ZJxurJB4mwbfeKuv2nrF5mYGjVoarCkXJ38SNoOeY # +/umnXKvxMfBwWpx2cYTgAnEtp/Nh4cku0+jSbl3ZpHxcpzpSwJSpzd+k1OsOx0I # SQ+UzTl63f8lY5knLD0/a6fxZsNBzU+2QJshIUDQtxMkzdwdeDrknq3lNHGS1yZr # 5Dhzq6YBT70/O3itTK37xJV77QpfMzmHQXh6OOmc4d0j/R0o08f56PGYX/sr2H7y # Rp11LB4nLCbbbxV7HhmLNriT1ObyF5lZynDwN7+YAN8gFk8n+2BnFqFmut1VwDop # hrCYoCvtlUG3OtUVmDG0YgkPCr2B2RP+v6TR81fZvAT6gt4y3wSJ8ADNXcL50CN/ # AAvkdgIm2fBldkKmKYcJRyvmfxqkhQ/8mJb2VVQrH4D6wPIOK+XW+6kvRBVK5xMO # Hds3OBqhK/bt1nz8MIIGvDCCBKSgAwIBAgIQC65mvFq6f5WHxvnpBOMzBDANBgkq # hkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIElu # Yy4xOzA5BgNVBAMTMkRpZ2lDZXJ0IFRydXN0ZWQgRzQgUlNBNDA5NiBTSEEyNTYg # VGltZVN0YW1waW5nIENBMB4XDTI0MDkyNjAwMDAwMFoXDTM1MTEyNTIzNTk1OVow # QjELMAkGA1UEBhMCVVMxETAPBgNVBAoTCERpZ2lDZXJ0MSAwHgYDVQQDExdEaWdp # Q2VydCBUaW1lc3RhbXAgMjAyNDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC # ggIBAL5qc5/2lSGrljC6W23mWaO16P2RHxjEiDtqmeOlwf0KMCBDEr4IxHRGd7+L # 660x5XltSVhhK64zi9CeC9B6lUdXM0s71EOcRe8+CEJp+3R2O8oo76EO7o5tLusl # xdr9Qq82aKcpA9O//X6QE+AcaU/byaCagLD/GLoUb35SfWHh43rOH3bpLEx7pZ7a # vVnpUVmPvkxT8c2a2yC0WMp8hMu60tZR0ChaV76Nhnj37DEYTX9ReNZ8hIOYe4jl # 7/r419CvEYVIrH6sN00yx49boUuumF9i2T8UuKGn9966fR5X6kgXj3o5WHhHVO+N # BikDO0mlUh902wS/Eeh8F/UFaRp1z5SnROHwSJ+QQRZ1fisD8UTVDSupWJNstVki # qLq+ISTdEjJKGjVfIcsgA4l9cbk8Smlzddh4EfvFrpVNnes4c16Jidj5XiPVdsn5 # n10jxmGpxoMc6iPkoaDhi6JjHd5ibfdp5uzIXp4P0wXkgNs+CO/CacBqU0R4k+8h # 6gYldp4FCMgrXdKWfM4N0u25OEAuEa3JyidxW48jwBqIJqImd93NRxvd1aepSeNe # REXAu2xUDEW8aqzFQDYmr9ZONuc2MhTMizchNULpUEoA6Vva7b1XCB+1rxvbKmLq # fY/M/SdV6mwWTyeVy5Z/JkvMFpnQy5wR14GJcv6dQ4aEKOX5AgMBAAGjggGLMIIB # hzAOBgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggr # BgEFBQcDCDAgBgNVHSAEGTAXMAgGBmeBDAEEAjALBglghkgBhv1sBwEwHwYDVR0j # BBgwFoAUuhbZbU2FL3MpdpovdYxqII+eyG8wHQYDVR0OBBYEFJ9XLAN3DigVkGal # Y17uT5IfdqBbMFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwzLmRpZ2ljZXJ0 # LmNvbS9EaWdpQ2VydFRydXN0ZWRHNFJTQTQwOTZTSEEyNTZUaW1lU3RhbXBpbmdD # QS5jcmwwgZAGCCsGAQUFBwEBBIGDMIGAMCQGCCsGAQUFBzABhhhodHRwOi8vb2Nz # cC5kaWdpY2VydC5jb20wWAYIKwYBBQUHMAKGTGh0dHA6Ly9jYWNlcnRzLmRpZ2lj # ZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRHNFJTQTQwOTZTSEEyNTZUaW1lU3RhbXBp # bmdDQS5jcnQwDQYJKoZIhvcNAQELBQADggIBAD2tHh92mVvjOIQSR9lDkfYR25tO # CB3RKE/P09x7gUsmXqt40ouRl3lj+8QioVYq3igpwrPvBmZdrlWBb0HvqT00nFSX # gmUrDKNSQqGTdpjHsPy+LaalTW0qVjvUBhcHzBMutB6HzeledbDCzFzUy34VarPn # vIWrqVogK0qM8gJhh/+qDEAIdO/KkYesLyTVOoJ4eTq7gj9UFAL1UruJKlTnCVaM # 2UeUUW/8z3fvjxhN6hdT98Vr2FYlCS7Mbb4Hv5swO+aAXxWUm3WpByXtgVQxiBlT # VYzqfLDbe9PpBKDBfk+rabTFDZXoUke7zPgtd7/fvWTlCs30VAGEsshJmLbJ6ZbQ # /xll/HjO9JbNVekBv2Tgem+mLptR7yIrpaidRJXrI+UzB6vAlk/8a1u7cIqV0yef # 4uaZFORNekUgQHTqddmsPCEIYQP7xGxZBIhdmm4bhYsVA6G2WgNFYagLDBzpmk91 # 04WQzYuVNsxyoVLObhx3RugaEGru+SojW4dHPoWrUhftNpFC5H7QEY7MhKRyrBe7 # ucykW7eaCuWBsBb4HOKRFVDcrZgdwaSIqMDiCLg4D+TPVgKx2EgEdeoHNHT9l3ZD # BD+XgbF+23/zBjeCtxz+dL/9NWR6P2eZRi7zcEO1xwcdcqJsyz/JceENc2Sg8h3K # eFUCS7tpFk7CrDqkMIIG1DCCBTygAwIBAgIQSGozlQY7aWLSD92JgcOcYzANBgkq # hkiG9w0BAQsFADBXMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1p # dGVkMS4wLAYDVQQDEyVTZWN0aWdvIFB1YmxpYyBDb2RlIFNpZ25pbmcgQ0EgRVYg # UjM2MB4XDTI0MDUwNjAwMDAwMFoXDTI3MDUwNjIzNTk1OVowgZgxEjAQBgNVBAUT # CTUxNjAxNjE1MTETMBEGCysGAQQBgjc8AgEDEwJJTDEdMBsGA1UEDxMUUHJpdmF0 # ZSBPcmdhbml6YXRpb24xCzAJBgNVBAYTAklMMREwDwYDVQQIDAhUZWwgQXZpdjEW # MBQGA1UECgwNWmVybyBOZXR3b3JrczEWMBQGA1UEAwwNWmVybyBOZXR3b3JrczCC # AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMqdB4K7T+uL7y/ugvCk1VTn # OAP7kcVUZl1biQ8tEAg9aKqDOvu2ouOXpq9ROATJqYz4NAp2ECu0nHiuYjp/zetG # cezadxFRhlViKYj3yrYGLCJzhZwdOt66g2qyFbp1PrSWBW2QasHbtFv0dk7IAAYA # 92O09eOqVgq5/fvdD/p/xbtXwIzw6CBW1a1vELrNBxnGT/JuGLR1FEhrHbXniSS4 # i3BKmtjHOWdrEDPbd0ZOxfUdPb74/ZtWoQrbpYPsu61WJaRgWXdQlhKodsZmmKlG # ppw4VDL/UzYiG1gQlShvFbkowADU3IcEfKj3/xD+ceVv1vpYpYfG1h2G/x2sfQAF # JP3FjsfcXUo0/PAYoMkJMlhtaLXpF8CbO/mAxtOhHVsp26O76lmmeCNPCI6187J5 # 1nYZBwio0LoPWRQy57qe1eC2EYtX4sIMnmgk9h8B8KOAxxWYofysl0lkpQ/Sn39M # kmin3tJuX4lqqgW4jnpdZDX5WcWh06di6KXQTZ6pCH/10a4sqhzwIZ43gCbuZ09q # rzUyqb32ou//XZVoDwgZFIM0ryG+Gp5S2ZSMWmC9JjlX/9ob4m35MdXzfZl1u0/h # pj09cTduTv3thuVmiBvuEMmfmXW450HFE1iIIsKAiZwRovvmE5GRMcJp46QUaSFo # +9BiXzqNHJcfZq2C1Gs9AgMBAAGjggHYMIIB1DAfBgNVHSMEGDAWgBSBMpJBKyjN # RsjEosYqORLsSKk/FDAdBgNVHQ4EFgQUalI4jlFQGsLHuCItVo6TMtTJQnAwDgYD # VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwMw # SQYDVR0gBEIwQDA1BgwrBgEEAbIxAQIBBgEwJTAjBggrBgEFBQcCARYXaHR0cHM6 # Ly9zZWN0aWdvLmNvbS9DUFMwBwYFZ4EMAQMwSwYDVR0fBEQwQjBAoD6gPIY6aHR0 # cDovL2NybC5zZWN0aWdvLmNvbS9TZWN0aWdvUHVibGljQ29kZVNpZ25pbmdDQUVW # UjM2LmNybDB7BggrBgEFBQcBAQRvMG0wRgYIKwYBBQUHMAKGOmh0dHA6Ly9jcnQu # c2VjdGlnby5jb20vU2VjdGlnb1B1YmxpY0NvZGVTaWduaW5nQ0FFVlIzNi5jcnQw # IwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLnNlY3RpZ28uY29tMEoGA1UdEQRDMEGg # HAYIKwYBBQUHCAOgEDAODAxJTC01MTYwMTYxNTGBIWRhbmllbC5sdXBvbmVua29A # emVyb25ldHdvcmtzLmNvbTANBgkqhkiG9w0BAQsFAAOCAYEAdpKwFb6FW2HEMyD2 # wfwlYBcdK2cCBceUyTu5qErfQxjViYhWJw8Jm6G0tdnXqsmdx/s5ygIH3YwE+B8q # nIs49uKI9EnsTWS8Ait1XMYmkCtvFAkJ+oBZqCnj/MmQrE8g48lmUtfygmn0BDeg # 47DVpXo74GdnnGDMtOnYcIC4cJ+clhgLuBePDxdP4T9z/Sb2jdEIMabIYtScWqxf # e9AZ2dkQ7lMgw/U4W8VbnCL0kty1fDWPPiXy6LmkqZhgY4VOwMRIvNOZO0FOHvfs # Jk5BuN3ygkB/bhLgUlLMCyqjN1Q3qd7UMdZYjxEhjrIWDYHMdi6ZrnH7Pc2Wmepn # U5ODwu5vyMY4bVq8s3qPDfIOTgVtWp0E2DfjIINmhlKf0C/GtD57bDj9fchN7MT8 # VypF5VeeV09x+fxi7jyHSLfBzPXwvjmcJFBrkvApK4KjKOA4n0hs91tptsXvhuOE # hbkTllaXtEEYIX1ZrjUseYEOyAKw5AaeuoTJB1wbGcKtTZZIMYIGKDCCBiQCAQEw # azBXMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMS4wLAYD # VQQDEyVTZWN0aWdvIFB1YmxpYyBDb2RlIFNpZ25pbmcgQ0EgRVYgUjM2AhBIajOV # BjtpYtIP3YmBw5xjMAkGBSsOAwIaBQCgcDAQBgorBgEEAYI3AgEMMQIwADAZBgkq # hkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGC # NwIBFTAjBgkqhkiG9w0BCQQxFgQUHxQfg2sQmv4Ong0Sh6pWOvFralcwDQYJKoZI # hvcNAQEBBQAEggIAev0DHTCdDfHbKqDm8m7/p+jsW4tF4MOCKazCpBRZ2Ik3IDgy # dFCBtyhRZ/HbPOuniyF3/euqcYcT5ryuY7p3rfP5O6KTSHcfM74qqaxn7lSrknKE # 8tLWgG7Ulal/FB6CFZT3t5qDYN+krE0D+KNpeaGJ5YXgFGVCFfVuofC/ddEO4oB+ # nk63jMbHszncp90h8jfUv3/1qxMgeLIcZtIMZeJ7YrdE4boSBefki3oiCLtRzKtX # FEEv/DmNQTWIZSkJIXEOI0kO84+3nw7mE46fVk1oeQYegA1BD8L5gbIEGkzAPDOj # YUJy4cmOrP5H4wyGL75lr2/lk6BZzJRg/Okej2dZtptcONBDpafZV7Cz24C4lcFA # on7JnQXP/mIIk1X2l3gTh3uyzy7TvkWmV8dY61Xdm8Nef+SVoHf+4MAvX4GzUu4f # SBUQC2cfKh6X9IOwq1UglkgTaP6+oSxN2e7Re3Lr8PPX0sqpGBaZKGG8S7QMWBAh # PjRrx3l3zTsfeKuC+v86nccFfDFHQqTM6NPnaa2RV2004JLkyusxGvCFisia5KG5 # ALDV49S9xbyXQB2EijC+InAEK3ESFO9ZB0QvryLL1MCHAoC6YhJln/PAQMFkzXCT # BVkGHcXJHVboqcNp+eX1I3Sf4NC1jiT+UR6BLOTcq0kEOzyD7lcvBKZgp3yhggMg # MIIDHAYJKoZIhvcNAQkGMYIDDTCCAwkCAQEwdzBjMQswCQYDVQQGEwJVUzEXMBUG # A1UEChMORGlnaUNlcnQsIEluYy4xOzA5BgNVBAMTMkRpZ2lDZXJ0IFRydXN0ZWQg # RzQgUlNBNDA5NiBTSEEyNTYgVGltZVN0YW1waW5nIENBAhALrma8Wrp/lYfG+ekE # 4zMEMA0GCWCGSAFlAwQCAQUAoGkwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAc # BgkqhkiG9w0BCQUxDxcNMjQxMTI0MDYxNzI2WjAvBgkqhkiG9w0BCQQxIgQgMT3m # wGFCUBWiZAPh9sN6W/8xdbGiEpHdDBtyksSapxMwDQYJKoZIhvcNAQEBBQAEggIA # T+Eq4DLpG/k7q0F2d+C9Q9mtthVbinzwjecq1ykpC88IgQitEBeAtwSwI/PPs4hg # 9ruhV7gyjCJSXXXfD2wHrnkx/XRPi+aZ2z8rYPYRdBqhSDndY1dIYeq/Tr4KiGPv # CvDg5/+3fIzAFoTm1UAK0ytz877Un5/03AV/pQdmbjTuTDsaQxNy0Z0dflQVQrp8 # wOoagZVPS32589+LoiS8jiozW3HtHP7ScgJEkbmbPSTdC7VWuKYPwIGk2h2/WBUt # trVrlAqItLB+JqYLrsJLxtdJ9aVli/N/XR44MwEiZd4v7o5hBG6VswSuckX3m53B # IdrWx0ZKFXr3qHEiWoWnq7+zX8l10aNI1b/Yn6km486AHOBUVvimQe6HczXEogKH # KfZCELollL+2mollCysvGiTO8zD9dVX1EDQLjS7EGr65/u5gW9nXaYFYbEEKU1eP # i9W9j7oj2XLi6v7eMUnozkj7reSD5VX4FoYyrZmrNW1My3U+n8Qm4H0kjRsp8Kut # kVjMm/gUBbajJ/0Hw0Aq41j1ZREWR8vFc5KspXxCqvbxvqYw2buPmxYrgbO0DAyn # f7KBwjqbPdFgzBegxE4mbDAnGPFlEatWHR9V7eGt6ruAvLPuuLdsvoktkZ1rv+E5 # bJ4eS7WpwLRPW4VYiH7gR6/mNiipijSs3piME9Szt5c= # SIG # End signature block |