custom/Approve-ZNAssetOutboundBlockRuleReview.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/Approve-ZNAssetOutboundBlockRuleReview #> function Approve-ZNAssetOutboundBlockRuleReview { [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] # Asset Id ${AssetId}, [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')] [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')] [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-ZNAssetOutboundBlockRulesReview @PSBoundParameters } "ApproveWithChangesExpanded" { #Handle Get $ruleId = $PSBoundParameters['RuleId'].ToString() $rule = ZeroNetworks\Get-ZNOutboundBlockRule -RuleId $ruleId $rule = $rule.Item $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.RuleInfoAction = 2 $ruleReview.RuleInfoDirection = 2 if ($PSBoundParameters['Description']) { $ruleReview.RuleInfoDescription = $PSBoundParameters['Description'] $null = $PSBoundParameters.Remove('Description') } else { $ruleReview.RuleInfoDescription = $rule.Description $null = $PSBoundParameters.Remove('Description') } if ($PSBoundParameters['ExcludedLocalIdsList']) { $ruleReview.RuleInfoExcludedLocalIdsList = $PSBoundParameters['ExcludedLocalIdsList'] $null = $PSBoundParameters.Remove('ExcludedLocalIdsList') } else { $ruleReview.RuleInfoExcludedLocalIdsList = $rule.ExcludedLocalIdsList $null = $PSBoundParameters.Remove('ExcludedLocalIdsList') } if ($PSBoundParameters['ExpiresAt']) { $ruleReview.RuleInfoExpiresAt = $PSBoundParameters['ExpiresAt'] $null = $PSBoundParameters.Remove('ExpiresAt') } else { $ruleReview.RuleInfoExpiresAt = $rule.ExpiresAt $null = $PSBoundParameters.Remove('ExpiresAt') } if ($PSBoundParameters['LocalEntityId']) { $ruleReview.RuleInfoLocalEntityId = $PSBoundParameters['LocalEntityId'] $null = $PSBoundParameters.Remove('LocalEntityId') } else { $ruleReview.RuleInfoLocalEntityId = $rule.LocalEntityId $null = $PSBoundParameters.Remove('LocalEntityId') } if ($PSBoundParameters['LocalProcessesList']) { $ruleReview.RuleInfoLocalProcessesList = $PSBoundParameters['LocalProcessesList'] $null = $PSBoundParameters.Remove('LocalProcessesList') } else { $ruleReview.RuleInfoLocalProcessesList = $rule.LocalProcessesList $null = $PSBoundParameters.Remove('LocalProcessesList') } if ($PSBoundParameters['PortsList']) { $ruleReview.RuleInfoPortsList = $PSBoundParameters['PortsList'] $null = $PSBoundParameters.Remove('PortsList') } else { $ruleReview.RuleInfoPortsList = $rule.PortsList $null = $PSBoundParameters.Remove('PortsList') } if ($PSBoundParameters['RemoteEntityIdsList']) { $ruleReview.RuleInfoRemoteEntityIdsList = $PSBoundParameters['RemoteEntityIdsList'] $null = $PSBoundParameters.Remove('RemoteEntityIdsList') } else { $ruleReview.RuleInfoRemoteEntityIdsList = $rule.RemoteEntityIdsList $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-ZNAssetOutboundBlockRulesReview @PSBoundParameters } } } catch { throw } } } # SIG # Begin signature block # MIIk6wYJKoZIhvcNAQcCoIIk3DCCJNgCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB # gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR # AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUm3MTgKV+5kP3b/ZubGQQl247 # CJOggh7wMIIFjTCCBHWgAwIBAgIQDpsYjvnQLefv21DiCEAYWjANBgkqhkiG9w0B # AQwFADBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYD # VQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVk # IElEIFJvb3QgQ0EwHhcNMjIwODAxMDAwMDAwWhcNMzExMTA5MjM1OTU5WjBiMQsw # CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu # ZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQw # ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz # 7MKnJS7JIT3yithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS # 5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7 # bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfI # SKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jH # trHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14 # Ztk6MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2 # h4mXaXpI8OCiEhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt # 6zPZxd9LBADMfRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPR # iQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ER # ElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4K # Jpn15GkvmB0t9dmpsh3lGwIDAQABo4IBOjCCATYwDwYDVR0TAQH/BAUwAwEB/zAd # BgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wHwYDVR0jBBgwFoAUReuir/SS # y4IxLVGLp6chnfNtyA8wDgYDVR0PAQH/BAQDAgGGMHkGCCsGAQUFBwEBBG0wazAk # BggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEMGCCsGAQUFBzAC # hjdodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVkSURS # b290Q0EuY3J0MEUGA1UdHwQ+MDwwOqA4oDaGNGh0dHA6Ly9jcmwzLmRpZ2ljZXJ0 # LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwEQYDVR0gBAowCDAGBgRV # HSAAMA0GCSqGSIb3DQEBDAUAA4IBAQBwoL9DXFXnOF+go3QbPbYW1/e/Vwe9mqyh # hyzshV6pGrsi+IcaaVQi7aSId229GhT0E0p6Ly23OO/0/4C5+KH38nLeJLxSA8hO # 0Cre+i1Wz/n096wwepqLsl7Uz9FDRJtDIeuWcqFItJnLnU+nBgMTdydE1Od/6Fmo # 8L8vC6bp8jQ87PcDx4eo0kxAGTVGamlUsLihVo7spNU96LHc/RzY9HdaXFSMb++h # UD38dglohJ9vytsgjTVgHAIDyyCwrFigDkBjxZgiwbJZ9VVrzyerbHbObyMt9H5x # aiNrIv8SuFQtJ37YOtnwtoeW/VvRXKwYw02fc7cBqZ9Xql4o4rmUMIIFvTCCBKWg # AwIBAgIRAKVrLshF28LU6jgQ695aLeswDQYJKoZIhvcNAQELBQAwgZExCzAJBgNV # BAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1Nh # bGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMTcwNQYDVQQDEy5DT01P # RE8gUlNBIEV4dGVuZGVkIFZhbGlkYXRpb24gQ29kZSBTaWduaW5nIENBMB4XDTIx # MDUwMzAwMDAwMFoXDTI0MDUwMjIzNTk1OVowgaYxEjAQBgNVBAUTCTUxNjAxNjE1 # MTETMBEGCysGAQQBgjc8AgEDEwJJTDEdMBsGA1UEDxMUUHJpdmF0ZSBPcmdhbml6 # YXRpb24xCzAJBgNVBAYTAklMMRcwFQYDVQQHDA5UZWwgQXZpdiBKYWZmYTEaMBgG # A1UECgwRWkVSTyBORVRXT1JLUyBMVEQxGjAYBgNVBAMMEVpFUk8gTkVUV09SS1Mg # TFREMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAw0YQg9iPdpEEAIdi # yzXHNEIZsMnTpshRJEzhU7sdJDO63FJSZ5LbaEhMAyPHQdpzonS+H2gD4WNkU6T3 # rqNqgHKL/LJ5nbIYDHfp7nQarW8z5NTCv9KU3yL98nGUiU1YffxApTSH5G14URuh # owWQ1AqUr8L2rnsTNI+CpQqYtNmTOQz8PlpXMl+lj8VQOG8PWbXRWVq3Ul+7XVs1 # et7h4/DFJql+22Ke2Mw15Cl+GpW5Mbq1TQppUOtWG5BRkhHV59xkoiATIPRYm8i+ # TOvmMXyqIMmZAKEK/UEy3zgnWltUTpJm1t3HzSCTzYicCMWA13JjyJ7N4ekUVMEl # mxzOTQIDAQABo4IB9zCCAfMwHwYDVR0jBBgwFoAU34/zIAzpyqYE2FtYNyo9q0bc # g0kwHQYDVR0OBBYEFIuSUX5+e/XI2sryOvgN2dkucdfNMA4GA1UdDwEB/wQEAwIH # gDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMDMBEGCWCGSAGG+EIB # AQQEAwIEEDBJBgNVHSAEQjBAMDUGDCsGAQQBsjEBAgEGATAlMCMGCCsGAQUFBwIB # FhdodHRwczovL3NlY3RpZ28uY29tL0NQUzAHBgVngQwBAzBVBgNVHR8ETjBMMEqg # SKBGhkRodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9SU0FFeHRlbmRlZFZh # bGlkYXRpb25Db2RlU2lnbmluZ0NBLmNybDCBhgYIKwYBBQUHAQEEejB4MFAGCCsG # AQUFBzAChkRodHRwOi8vY3J0LmNvbW9kb2NhLmNvbS9DT01PRE9SU0FFeHRlbmRl # ZFZhbGlkYXRpb25Db2RlU2lnbmluZ0NBLmNydDAkBggrBgEFBQcwAYYYaHR0cDov # L29jc3AuY29tb2RvY2EuY29tMEAGA1UdEQQ5MDegHAYIKwYBBQUHCAOgEDAODAxJ # TC01MTYwMTYxNTGBF2Rldm9wc0B6ZXJvbmV0d29ya3MuY29tMA0GCSqGSIb3DQEB # CwUAA4IBAQBz7cosu+mtqpM5yyJ8AF6MLxs9l3FsQXwucpOK0oXJGUymgV7eghNT # zL1XT71/AAHHGK1/y43A0Yqqeptb5oYaABvor1M9TnytA0XWl67pi+5C4YZAY/mG # pH4aiL8fsLbaaTVFuz+a5g7wHgE2U6yN2lEbqs/xJgD9ytMSG7bp30Zf5W2tmCSd # qiSiSME/l/ta9YICeiDvz89K0heaKrmUmYYoHbqZOz8taGn00bREz6SG5uJ7YJdg # 5ZTjzicIxJT1lwpsRJjcR80H8oL4S8fFkZgLcrCamZ0hVF77RJ3voODYwym/Zee4 # k8+C1wGQ8Gcjrq0QG5iN7uMAEDQD3+cKMIIGIjCCBAqgAwIBAgIQbdRy6wKuBAbj # 3YQ/X+FF4TANBgkqhkiG9w0BAQwFADCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgT # EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR # Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNh # dGlvbiBBdXRob3JpdHkwHhcNMTQxMjAzMDAwMDAwWhcNMjkxMjAyMjM1OTU5WjCB # kTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G # A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxNzA1BgNV # BAMTLkNPTU9ETyBSU0EgRXh0ZW5kZWQgVmFsaWRhdGlvbiBDb2RlIFNpZ25pbmcg # Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCK/b1D8D3IVR/zWYrw # WrTck9FkFUqKhKUtyyb44EU4o7kBxU8TCFnQMVTKzZBhoz4s8k0VXNTuw2oil0jR # BkM0CZnJzzDEn0T9VpzuzOeDuYHNyNoLHBJI/2+i7MR1ywlwz1Hlu4ufqr14Bn2V # 1mGB9tpTx6ydswC6HtS+QGIJmYM9Rd1NZZUEzPz6x1t64i4MPVU1VzVIiYnyuVal # S1AbHN6YkL3zLtyIqfF1m6g+ogXZQbXvd60XwFr1o9tNn9HEsXuDte4QlCsucq6+ # 75UpnFJixSxtIvd9RHoQX2OTaU3ZfbKasU61Wb//hfu9rOzhK6bjLCzo2W7bX00X # eMtTAgMBAAGjggF+MIIBejAfBgNVHSMEGDAWgBS7r34CPfqm8TyEjq3uOJjs2TIy # 1DAdBgNVHQ4EFgQU34/zIAzpyqYE2FtYNyo9q0bcg0kwDgYDVR0PAQH/BAQDAgGG # MBIGA1UdEwEB/wQIMAYBAf8CAQAwEwYDVR0lBAwwCgYIKwYBBQUHAwMwPgYDVR0g # BDcwNTAzBgRVHSAAMCswKQYIKwYBBQUHAgEWHWh0dHBzOi8vc2VjdXJlLmNvbW9k # by5jb20vQ1BTMEwGA1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9jcmwuY29tb2RvY2Eu # Y29tL0NPTU9ET1JTQUNlcnRpZmljYXRpb25BdXRob3JpdHkuY3JsMHEGCCsGAQUF # BwEBBGUwYzA7BggrBgEFBQcwAoYvaHR0cDovL2NydC5jb21vZG9jYS5jb20vQ09N # T0RPUlNBQWRkVHJ1c3RDQS5jcnQwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmNv # bW9kb2NhLmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAZk7stxZ3bxHoG11qTtnyi2yx # VihAi8AxxJlIIz34DuiAl+9tIAsfE8SG+xc0FeGOVPfCuABzFeAo2dq6+oJUwvfr # v8M20DCf5aEclN/vfOj2LHiirM8mahWhFTHWMTSYvVNPxISDo8SWXD3Y/tb5VP9n # k234PitrLKIIfFZIgTIYsm6skMHb5N45i4blxxhAWaTflke6sn+x+FcPhYB0OA46 # WGIe/lLj5q5TCYb+j5vbVlbMB7CJwQTxUwtsb3fssh/s9ltAQ2APG6sYVLQQBI74 # DunLg7F68jROalRM6YMq6bAwJRzOYo4O64XmKf6xSuPyrjyR9UyhvsgXDly7Qk3j # GoqSzT4gft3pdbHqH3RcnlTClDeyYd0HFll/loAW4Jm10m6wySMGFazRI/Qzi851 # 8MGG0//hLvqQT/5G+bvbT7u3/tENKwTx0tGVhSyKLriFVvLDhFKh6TOx61DIobCf # 48OLOoee51XT0200FzANaCIL1bntczVyw+2nN83jQ65FzTS/KMqHYu1DpK/6yzHL # IVhhRl62xnqmHlMqqPhcUR86WhAPKMDkdIt0xgSq+EsmKAoyidudKmBxasOWTha5 # Y79hlWeMSy67sE6D6U0x5Y4nIvU8JntEkdPUWvDTfPQ4vhSamQ6LsVvq5IsPEZ13 # QoIcXDrU2quIL41XMFQwggauMIIElqADAgECAhAHNje3JFR82Ees/ShmKl5bMA0G # CSqGSIb3DQEBCwUAMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJ # bmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lDZXJ0 # IFRydXN0ZWQgUm9vdCBHNDAeFw0yMjAzMjMwMDAwMDBaFw0zNzAzMjIyMzU5NTla # MGMxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjE7MDkGA1UE # AxMyRGlnaUNlcnQgVHJ1c3RlZCBHNCBSU0E0MDk2IFNIQTI1NiBUaW1lU3RhbXBp # bmcgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDGhjUGSbPBPXJJ # UVXHJQPE8pE3qZdRodbSg9GeTKJtoLDMg/la9hGhRBVCX6SI82j6ffOciQt/nR+e # DzMfUBMLJnOWbfhXqAJ9/UO0hNoR8XOxs+4rgISKIhjf69o9xBd/qxkrPkLcZ47q # UT3w1lbU5ygt69OxtXXnHwZljZQp09nsad/ZkIdGAHvbREGJ3HxqV3rwN3mfXazL # 6IRktFLydkf3YYMZ3V+0VAshaG43IbtArF+y3kp9zvU5EmfvDqVjbOSmxR3NNg1c # 1eYbqMFkdECnwHLFuk4fsbVYTXn+149zk6wsOeKlSNbwsDETqVcplicu9Yemj052 # FVUmcJgmf6AaRyBD40NjgHt1biclkJg6OBGz9vae5jtb7IHeIhTZgirHkr+g3uM+ # onP65x9abJTyUpURK1h0QCirc0PO30qhHGs4xSnzyqqWc0Jon7ZGs506o9UD4L/w # ojzKQtwYSH8UNM/STKvvmz3+DrhkKvp1KCRB7UK/BZxmSVJQ9FHzNklNiyDSLFc1 # eSuo80VgvCONWPfcYd6T/jnA+bIwpUzX6ZhKWD7TA4j+s4/TXkt2ElGTyYwMO1uK # IqjBJgj5FBASA31fI7tk42PgpuE+9sJ0sj8eCXbsq11GdeJgo1gJASgADoRU7s7p # XcheMBK9Rp6103a50g5rmQzSM7TNsQIDAQABo4IBXTCCAVkwEgYDVR0TAQH/BAgw # BgEB/wIBADAdBgNVHQ4EFgQUuhbZbU2FL3MpdpovdYxqII+eyG8wHwYDVR0jBBgw # FoAU7NfjgtJxXWRM3y5nP+e6mK4cD08wDgYDVR0PAQH/BAQDAgGGMBMGA1UdJQQM # MAoGCCsGAQUFBwMIMHcGCCsGAQUFBwEBBGswaTAkBggrBgEFBQcwAYYYaHR0cDov # L29jc3AuZGlnaWNlcnQuY29tMEEGCCsGAQUFBzAChjVodHRwOi8vY2FjZXJ0cy5k # aWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNydDBDBgNVHR8EPDA6 # MDigNqA0hjJodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVk # Um9vdEc0LmNybDAgBgNVHSAEGTAXMAgGBmeBDAEEAjALBglghkgBhv1sBwEwDQYJ # KoZIhvcNAQELBQADggIBAH1ZjsCTtm+YqUQiAX5m1tghQuGwGC4QTRPPMFPOvxj7 # x1Bd4ksp+3CKDaopafxpwc8dB+k+YMjYC+VcW9dth/qEICU0MWfNthKWb8RQTGId # DAiCqBa9qVbPFXONASIlzpVpP0d3+3J0FNf/q0+KLHqrhc1DX+1gtqpPkWaeLJ7g # iqzl/Yy8ZCaHbJK9nXzQcAp876i8dU+6WvepELJd6f8oVInw1YpxdmXazPByoyP6 # wCeCRK6ZJxurJB4mwbfeKuv2nrF5mYGjVoarCkXJ38SNoOeY+/umnXKvxMfBwWpx # 2cYTgAnEtp/Nh4cku0+jSbl3ZpHxcpzpSwJSpzd+k1OsOx0ISQ+UzTl63f8lY5kn # LD0/a6fxZsNBzU+2QJshIUDQtxMkzdwdeDrknq3lNHGS1yZr5Dhzq6YBT70/O3it # TK37xJV77QpfMzmHQXh6OOmc4d0j/R0o08f56PGYX/sr2H7yRp11LB4nLCbbbxV7 # HhmLNriT1ObyF5lZynDwN7+YAN8gFk8n+2BnFqFmut1VwDophrCYoCvtlUG3OtUV # mDG0YgkPCr2B2RP+v6TR81fZvAT6gt4y3wSJ8ADNXcL50CN/AAvkdgIm2fBldkKm # KYcJRyvmfxqkhQ/8mJb2VVQrH4D6wPIOK+XW+6kvRBVK5xMOHds3OBqhK/bt1nz8 # MIIGwjCCBKqgAwIBAgIQBUSv85SdCDmmv9s/X+VhFjANBgkqhkiG9w0BAQsFADBj # MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xOzA5BgNVBAMT # MkRpZ2lDZXJ0IFRydXN0ZWQgRzQgUlNBNDA5NiBTSEEyNTYgVGltZVN0YW1waW5n # IENBMB4XDTIzMDcxNDAwMDAwMFoXDTM0MTAxMzIzNTk1OVowSDELMAkGA1UEBhMC # VVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMSAwHgYDVQQDExdEaWdpQ2VydCBU # aW1lc3RhbXAgMjAyMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKNT # RYcdg45brD5UsyPgz5/X5dLnXaEOCdwvSKOXejsqnGfcYhVYwamTEafNqrJq3RAp # ih5iY2nTWJw1cb86l+uUUI8cIOrHmjsvlmbjaedp/lvD1isgHMGXlLSlUIHyz8sH # pjBoyoNC2vx/CSSUpIIa2mq62DvKXd4ZGIX7ReoNYWyd/nFexAaaPPDFLnkPG2ZS # 48jWPl/aQ9OE9dDH9kgtXkV1lnX+3RChG4PBuOZSlbVH13gpOWvgeFmX40QrStWV # zu8IF+qCZE3/I+PKhu60pCFkcOvV5aDaY7Mu6QXuqvYk9R28mxyyt1/f8O52fTGZ # ZUdVnUokL6wrl76f5P17cz4y7lI0+9S769SgLDSb495uZBkHNwGRDxy1Uc2qTGaD # iGhiu7xBG3gZbeTZD+BYQfvYsSzhUa+0rRUGFOpiCBPTaR58ZE2dD9/O0V6MqqtQ # FcmzyrzXxDtoRKOlO0L9c33u3Qr/eTQQfqZcClhMAD6FaXXHg2TWdc2PEnZWpST6 # 18RrIbroHzSYLzrqawGw9/sqhux7UjipmAmhcbJsca8+uG+W1eEQE/5hRwqM/vC2 # x9XH3mwk8L9CgsqgcT2ckpMEtGlwJw1Pt7U20clfCKRwo+wK8REuZODLIivK8SgT # IUlRfgZm0zu++uuRONhRB8qUt+JQofM604qDy0B7AgMBAAGjggGLMIIBhzAOBgNV # HQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcD # CDAgBgNVHSAEGTAXMAgGBmeBDAEEAjALBglghkgBhv1sBwEwHwYDVR0jBBgwFoAU # uhbZbU2FL3MpdpovdYxqII+eyG8wHQYDVR0OBBYEFKW27xPn783QZKHVVqllMaPe # 1eNJMFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9E # aWdpQ2VydFRydXN0ZWRHNFJTQTQwOTZTSEEyNTZUaW1lU3RhbXBpbmdDQS5jcmww # gZAGCCsGAQUFBwEBBIGDMIGAMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdp # Y2VydC5jb20wWAYIKwYBBQUHMAKGTGh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNv # bS9EaWdpQ2VydFRydXN0ZWRHNFJTQTQwOTZTSEEyNTZUaW1lU3RhbXBpbmdDQS5j # cnQwDQYJKoZIhvcNAQELBQADggIBAIEa1t6gqbWYF7xwjU+KPGic2CX/yyzkzepd # IpLsjCICqbjPgKjZ5+PF7SaCinEvGN1Ott5s1+FgnCvt7T1IjrhrunxdvcJhN2hJ # d6PrkKoS1yeF844ektrCQDifXcigLiV4JZ0qBXqEKZi2V3mP2yZWK7Dzp703DNiY # dk9WuVLCtp04qYHnbUFcjGnRuSvExnvPnPp44pMadqJpddNQ5EQSviANnqlE0Pjl # SXcIWiHFtM+YlRpUurm8wWkZus8W8oM3NG6wQSbd3lqXTzON1I13fXVFoaVYJmoD # Rd7ZULVQjK9WvUzF4UbFKNOt50MAcN7MmJ4ZiQPq1JE3701S88lgIcRWR+3aEUuM # MsOI5ljitts++V+wQtaP4xeR0arAVeOGv6wnLEHQmjNKqDbUuXKWfpd5OEhfysLc # PTLfddY2Z1qJ+Panx+VPNTwAvb6cKmx5AdzaROY63jg7B145WPR8czFVoIARyxQM # fq68/qTreWWqaNYiyjvrmoI1VygWy2nyMpqy0tg6uLFGhmu6F/3Ed2wVbK6rr3M6 # 6ElGt9V/zLY4wNjsHPW2obhDLN9OTH0eaHDAdwrUAuBcYLso/zjlUlrWrBciI070 # 7NMX+1Br/wd3H3GXREHJuEbTbDJ8WC9nR2XlG3O2mflrLAZG70Ee8PBf4NvZrZCA # RK+AEEGKMYIFZTCCBWECAQEwgacwgZExCzAJBgNVBAYTAkdCMRswGQYDVQQIExJH # cmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNP # TU9ETyBDQSBMaW1pdGVkMTcwNQYDVQQDEy5DT01PRE8gUlNBIEV4dGVuZGVkIFZh # bGlkYXRpb24gQ29kZSBTaWduaW5nIENBAhEApWsuyEXbwtTqOBDr3lot6zAJBgUr # DgMCGgUAoHAwEAYKKwYBBAGCNwIBDDECMAAwGQYJKoZIhvcNAQkDMQwGCisGAQQB # gjcCAQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkE # MRYEFKfjLi6YGTx+E+inp2tgZ+y/xSAhMA0GCSqGSIb3DQEBAQUABIIBAKb9+IKS # ByAUmUVHLCVUAtoq2ebeoUiDNdPUKn1qVu9NGRcYCdN5q1VTmX0P+yDtsDNV6XOi # rKCIFhxJJKcLsrP4rkStoE/ccOrx9SkuahY7wLrb206TWhKu/ptBJqY+Yoollq8J # T/L4xiIpg81F0FjT3kjqxWQuzDRvBIixvxt+7o0gFvFgNhFDFhs368S+pZQ7Jk2L # 6OSBLrL+a7H9BEPo8LGwhrwEKPqzqjnpc58SCfST3NSTP72RlWsLd2puukV2HMH6 # EbVtsX563iL6OZIy0/fJuXAU/kMoDn3ZwL8TGGvV4btNJHeJ2CV2PGW5OR5la7sm # xSntRTgHVFY8VXShggMgMIIDHAYJKoZIhvcNAQkGMYIDDTCCAwkCAQEwdzBjMQsw # CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xOzA5BgNVBAMTMkRp # Z2lDZXJ0IFRydXN0ZWQgRzQgUlNBNDA5NiBTSEEyNTYgVGltZVN0YW1waW5nIENB # AhAFRK/zlJ0IOaa/2z9f5WEWMA0GCWCGSAFlAwQCAQUAoGkwGAYJKoZIhvcNAQkD # MQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMjQwMzE3MDk0MzIyWjAvBgkq # hkiG9w0BCQQxIgQgt5LH4pD6pDNhOJKfFg2mDSp4qHGjGVTT9QZvr05KnjgwDQYJ # KoZIhvcNAQEBBQAEggIAdumuOB5VtmtkKNEoY3lHOr7AbM1DYjS083eO3YaFwHVq # z2f/WK5BLdsFdNyjJo1l9gNXyewSuz7rXAurTilpSNBdn68AgS8VeMcVUM+k3adf # ukgkFaQSruLPkv7q5q2UDZp2tC80tjHMD9b68E+JR8Ffsz6JZdKq1249A9mQTnwH # rDGChH/RfIEGi9FCtU5C4CJzb7oRKrQ/Y1XUoF4qW54Ktfq86geL7h+07BfwNNhm # WYdTcZBQIbJ8XFg7LH91p3oO949gx2vbPbOspjnivLfm8M/GPqbRbQF3iIZIk695 # 56Df0QxCz7CaHjnLoi8KcZLggRJ3+hfx2SSsBc+bRRjHnFiNeG2X2+ScC+DDaApH # F0j/FFMcrrPSLcpltS6ahY7ov5KdaX+LX502W76aA1siaLK36i3KHZ+pHUx9XOTk # D4gVgzgojF+6aJPqVTGSgzBXM2xC5iqjWtexXGn9XIe/f3Yn8Gp8/HqJhGIutu/F # NFFdQLpFl77FSmNwYwo3Xjanp4VFlJGaIzuVqxKYsNwTe/X7b5daw/ur/9XzFpa4 # D/Nw77Mr4t/pB9Qma9WBsgWre2r5YDwXI/JyLPl6UyjiFh/CKOrZG76d0FfvHztj # lLI2sr3qUzfSwCNMZe718JdTpW9Gigz4ibZtbHynpMNlGH5rqp54EFFiUsjJb54= # SIG # End signature block |