Generated.PowerShell.Commands/SwaggerPathCommands/Restore-AzsBackup.ps1
<#
Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT License. See License.txt in the project root for license information. #> <# .SYNOPSIS Restore a backup. .DESCRIPTION Restore a backup. .PARAMETER ResourceGroupName Name of the resource group. .PARAMETER Name Name of the backup. .PARAMETER Location Name of location to backup. .PARAMETER ResourceId The resource id. .PARAMETER RoleName Name of the role to restore. .PARAMETER DecryptionCertPath Path to the decryption cert file with private key (.pfx). .PARAMETER DecryptionCertPassword Password of the decryption cert. .PARAMETER AsJob Run asynchronous as a job and return the job object. .PARAMETER Force Don't ask for confirmation. .EXAMPLE Restore-AzsBackup -Name $backupResourceName -DecryptionCertPath $decryptionCertPath -DecryptionCertPassword $decryptionCertPassword Restore from an Azure Stack backup. #> function Restore-AzsBackup { [CmdletBinding(DefaultParameterSetName = 'Backups_Restore', SupportsShouldProcess = $true)] param( [Parameter(Mandatory = $false, ParameterSetName = 'Backups_Restore')] [ValidateLength(1, 90)] [System.String] $ResourceGroupName, [Parameter(Mandatory = $true, ParameterSetName = 'Backups_Restore')] [ValidateNotNullOrEmpty()] [System.String] $Name, [Parameter(Mandatory = $false, ParameterSetName = 'Backups_Restore')] [System.String] $Location, [Parameter(Mandatory = $false, ParameterSetName = 'Backups_Restore')] [Parameter(Mandatory = $false, ParameterSetName = 'ResourceId')] [System.String] $RoleName = "", [Parameter(Mandatory = $true, ParameterSetName = 'Backups_Restore')] [Parameter(Mandatory = $true, ParameterSetName = 'ResourceId')] [System.String] $DecryptionCertPath, [Parameter(Mandatory = $true, ParameterSetName = 'Backups_Restore')] [Parameter(Mandatory = $true, ParameterSetName = 'ResourceId')] [securestring] $DecryptionCertPassword, [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true, ParameterSetName = 'ResourceId')] [Alias('id')] [ValidateNotNullOrEmpty()] [System.String] $ResourceId, [Parameter(Mandatory = $false)] [switch] $AsJob, [Parameter(Mandatory = $false)] [switch] $Force ) Begin { Initialize-PSSwaggerDependencies -Azure $tracerObject = $null if (('continue' -eq $DebugPreference) -or ('inquire' -eq $DebugPreference)) { $oldDebugPreference = $global:DebugPreference $global:DebugPreference = "continue" $tracerObject = New-PSSwaggerClientTracing Register-PSSwaggerClientTracing -TracerObject $tracerObject } } Process { if ( 'ResourceId' -eq $PsCmdlet.ParameterSetName) { $GetArmResourceIdParameterValue_params = @{ IdTemplate = '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroup}/providers/Microsoft.Backup.Admin/backupLocations/{location}/backups/{backup}' } $GetArmResourceIdParameterValue_params['Id'] = $ResourceId $ArmResourceIdParameterValues = Get-ArmResourceIdParameterValue @GetArmResourceIdParameterValue_params $ResourceGroupName = $ArmResourceIdParameterValues['resourceGroup'] $Location = $ArmResourceIdParameterValues['location'] $Name = $ArmResourceIdParameterValues['backup'] } else { $Name = Get-ResourceNameSuffix -ResourceName $Name if ([System.String]::IsNullOrEmpty($Location)) { $Location = (Get-AzureRMLocation).Location } } # Should process if ($PSCmdlet.ShouldProcess("$Name" , "Restore from backup at location $Location")) { if ($Force.IsPresent -or $PSCmdlet.ShouldContinue("Restore from backup at location $($Location)?", "Performing operation restore using backup $Name.")) { $NewServiceClient_params = @{ FullClientTypeName = 'Microsoft.AzureStack.Management.Backup.Admin.BackupAdminClient' } $GlobalParameterHashtable = @{} $NewServiceClient_params['GlobalParameterHashtable'] = $GlobalParameterHashtable $GlobalParameterHashtable['SubscriptionId'] = $null if ($PSBoundParameters.ContainsKey('SubscriptionId')) { $GlobalParameterHashtable['SubscriptionId'] = $PSBoundParameters['SubscriptionId'] } $BackupAdminClient = New-ServiceClient @NewServiceClient_params if ([System.String]::IsNullOrEmpty($ResourceGroupName)) { $ResourceGroupName = "System.$($Location)" } $RestoreOptions = New-Object -TypeName 'Microsoft.AzureStack.Management.Backup.Admin.Models.RestoreOptions' if (!(Test-Path $DecryptionCertPath)) { throw "The specified decryption cert $DecryptionCertPath does not exist" } $decryptionCertBytes = [System.IO.File]::ReadAllBytes($DecryptionCertPath) $decryptionCertBase64 = [System.Convert]::ToBase64String($decryptionCertBytes) $RestoreOptions.RoleName = $RoleName $RestoreOptions.DecryptionCertBase64 = $decryptionCertBase64 $RestoreOptions.DecryptionCertPassword = ConvertTo-String -SecureString $DecryptionCertPassword if ('Backups_Restore' -eq $PsCmdlet.ParameterSetName -or 'ResourceId' -eq $PsCmdlet.ParameterSetName) { Write-Verbose -Message 'Performing operation RestoreWithHttpMessagesAsync on $BackupAdminClient.' $TaskResult = $BackupAdminClient.Backups.RestoreWithHttpMessagesAsync($Location, $ResourceGroupName, $Name, $RestoreOptions) } else { Write-Verbose -Message 'Failed to map parameter set to operation method.' throw 'Module failed to find operation to execute.' } Write-Verbose -Message "Waiting for the operation to complete." $PSSwaggerJobScriptBlock = { [CmdletBinding()] param( [Parameter(Mandatory = $true)] [System.Threading.Tasks.Task] $TaskResult, [Parameter(Mandatory = $true)] [System.String] $TaskHelperFilePath ) if ($TaskResult) { . $TaskHelperFilePath $GetTaskResult_params = @{ TaskResult = $TaskResult } Get-TaskResult @GetTaskResult_params } } $PSCommonParameters = Get-PSCommonParameter -CallerPSBoundParameters $PSBoundParameters $TaskHelperFilePath = Join-Path -Path $ExecutionContext.SessionState.Module.ModuleBase -ChildPath 'Get-TaskResult.ps1' if ($AsJob) { $ScriptBlockParameters = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,object]' $ScriptBlockParameters['TaskResult'] = $TaskResult $ScriptBlockParameters['AsJob'] = $true $ScriptBlockParameters['TaskHelperFilePath'] = $TaskHelperFilePath $PSCommonParameters.GetEnumerator() | ForEach-Object { $ScriptBlockParameters[$_.Name] = $_.Value } Start-PSSwaggerJobHelper -ScriptBlock $PSSwaggerJobScriptBlock ` -CallerPSBoundParameters $ScriptBlockParameters ` -CallerPSCmdlet $PSCmdlet ` @PSCommonParameters } else { Invoke-Command -ScriptBlock $PSSwaggerJobScriptBlock ` -ArgumentList $TaskResult, $TaskHelperFilePath ` @PSCommonParameters } } } } End { if ($tracerObject) { $global:DebugPreference = $oldDebugPreference Unregister-PSSwaggerClientTracing -TracerObject $tracerObject } } } function ConvertTo-String { param( [SecureString]$SecureString ) $Ptr = [System.Runtime.InteropServices.Marshal]::SecureStringToCoTaskMemUnicode($SecureString) $Result = [System.Runtime.InteropServices.Marshal]::PtrToStringUni($Ptr) [System.Runtime.InteropServices.Marshal]::ZeroFreeCoTaskMemUnicode($Ptr) $Result } # SIG # Begin signature block # MIIkbwYJKoZIhvcNAQcCoIIkYDCCJFwCAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDZ3CDBb04rYW7D # 9a6hU/kAd0nMzffvRDYausCAGoE3OKCCDYEwggX/MIID56ADAgECAhMzAAABUZ6N # j0Bxow5BAAAAAAFRMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p # bmcgUENBIDIwMTEwHhcNMTkwNTAyMjEzNzQ2WhcNMjAwNTAyMjEzNzQ2WjB0MQsw # CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u # ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB # AQCVWsaGaUcdNB7xVcNmdfZiVBhYFGcn8KMqxgNIvOZWNH9JYQLuhHhmJ5RWISy1 # oey3zTuxqLbkHAdmbeU8NFMo49Pv71MgIS9IG/EtqwOH7upan+lIq6NOcw5fO6Os # +12R0Q28MzGn+3y7F2mKDnopVu0sEufy453gxz16M8bAw4+QXuv7+fR9WzRJ2CpU # 62wQKYiFQMfew6Vh5fuPoXloN3k6+Qlz7zgcT4YRmxzx7jMVpP/uvK6sZcBxQ3Wg # B/WkyXHgxaY19IAzLq2QiPiX2YryiR5EsYBq35BP7U15DlZtpSs2wIYTkkDBxhPJ # IDJgowZu5GyhHdqrst3OjkSRAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE # AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUV4Iarkq57esagu6FUBb270Zijc8w # UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1 # ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDU0MTM1MB8GA1UdIwQYMBaAFEhu # ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu # bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w # Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3 # Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx # MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAWg+A # rS4Anq7KrogslIQnoMHSXUPr/RqOIhJX+32ObuY3MFvdlRElbSsSJxrRy/OCCZdS # se+f2AqQ+F/2aYwBDmUQbeMB8n0pYLZnOPifqe78RBH2fVZsvXxyfizbHubWWoUf # NW/FJlZlLXwJmF3BoL8E2p09K3hagwz/otcKtQ1+Q4+DaOYXWleqJrJUsnHs9UiL # crVF0leL/Q1V5bshob2OTlZq0qzSdrMDLWdhyrUOxnZ+ojZ7UdTY4VnCuogbZ9Zs # 9syJbg7ZUS9SVgYkowRsWv5jV4lbqTD+tG4FzhOwcRQwdb6A8zp2Nnd+s7VdCuYF # sGgI41ucD8oxVfcAMjF9YX5N2s4mltkqnUe3/htVrnxKKDAwSYliaux2L7gKw+bD # 1kEZ/5ozLRnJ3jjDkomTrPctokY/KaZ1qub0NUnmOKH+3xUK/plWJK8BOQYuU7gK # YH7Yy9WSKNlP7pKj6i417+3Na/frInjnBkKRCJ/eYTvBH+s5guezpfQWtU4bNo/j # 8Qw2vpTQ9w7flhH78Rmwd319+YTmhv7TcxDbWlyteaj4RK2wk3pY1oSz2JPE5PNu # Nmd9Gmf6oePZgy7Ii9JLLq8SnULV7b+IP0UXRY9q+GdRjM2AEX6msZvvPCIoG0aY # HQu9wZsKEK2jqvWi8/xdeeeSI9FN6K1w4oVQM4Mwggd6MIIFYqADAgECAgphDpDS # AAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK # V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 # IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0 # ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5MDlaFw0yNjA3MDgyMTA5MDla # MH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS # ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMT # H01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwggIiMA0GCSqGSIb3DQEB # AQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQTTS68rZYIZ9CGypr6VpQqrgG # OBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULTiQ15ZId+lGAkbK+eSZzpaF7S # 35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYSL+erCFDPs0S3XdjELgN1q2jz # y23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494HDdVceaVJKecNvqATd76UPe/7 # 4ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZPrGMXeiJT4Qa8qEvWeSQOy2u # M1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5bmR/U7qcD60ZI4TL9LoDho33 # X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGSrhwjp6lm7GEfauEoSZ1fiOIl # XdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADhvKwCgl/bwBWzvRvUVUvnOaEP # 6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON7E1JMKerjt/sW5+v/N2wZuLB # l4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xcv3coKPHtbcMojyyPQDdPweGF # RInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqwiBfenk70lrC8RqBsmNLg1oiM # CwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFEhuZOVQ # BdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud # DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHItOgIxkEO5FAVO # 4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwubWljcm9zb2Z0 # LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y # Mi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vd3d3Lm1p # Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y # Mi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGCNy4DMIGDMD8GCCsGAQUFBwIB # FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2RvY3MvcHJpbWFyeWNw # cy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AcABvAGwAaQBjAHkA # XwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAGfyhqWY # 4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4sPvjDctFtg/6+P+gKyju/R6mj # 82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKLUtCw/WvjPgcuKZvmPRul1LUd # d5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7pKkFDJvtaPpoLpWgKj8qa1hJ # Yx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft0N3zDq+ZKJeYTQ49C/IIidYf # wzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4MnEnGn+x9Cf43iw6IGmYslmJ # aG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxvFX1Fp3blQCplo8NdUmKGwx1j # NpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG0QaxdR8UvmFhtfDcxhsEvt9B # xw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf0AApxbGbpT9Fdx41xtKiop96 # eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkYS//WsyNodeav+vyL6wuA6mk7 # r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrvQQqxP/uozKRdwaGIm1dxVk5I # RcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIWRDCCFkACAQEwgZUwfjELMAkG # A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx # HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z # b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAVGejY9AcaMOQQAAAAABUTAN # BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor # BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQggOsXtsuV # lw241aKNj1ZFE73GInSCGASKHKo4fcwnzQowQgYKKwYBBAGCNwIBDDE0MDKgFIAS # AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN # BgkqhkiG9w0BAQEFAASCAQBBtqGYY032T8+sWCcJ+ipFkV6oO7XgEnJqybFr6aw0 # EarFmn6DhGvbHCjpAKtu9PKoqZnSuzolqQBiH17H+r4DtqdGNLYYc2006PjudFHJ # G1CrC0Q6qlucJiUv3Fyyhxm7SBpqGYQ3DI6boKEB7hu8pvB7xk6MzmyImRJ0/jyR # A6ZYvPJrz/uO5+DLUqUck8HLi1DUQOJJXiJ0192ycw2LVDAJ/Far2suik+HUZeqX # SKW4eaWZ3+NwX+ITLBK0fJXjKyJqQkRRDzalHls9S3+sbLyehe72+Mhj+xolXhz2 # qmOeTS0bP5jDTue2EIZCJ4aUGCtn+PSlVbox3ZyfVlOfoYITzjCCE8oGCisGAQQB # gjcDAwExghO6MIITtgYJKoZIhvcNAQcCoIITpzCCE6MCAQMxDzANBglghkgBZQME # AgEFADCCAVcGCyqGSIb3DQEJEAEEoIIBRgSCAUIwggE+AgEBBgorBgEEAYRZCgMB # MDEwDQYJYIZIAWUDBAIBBQAEICaRVqsUXJawcATaHt8bWUpNsFoUrekfcc1cQicV # LLeaAgZdsHrC1mwYEjIwMTkxMTE5MTkxODIzLjkxWjAHAgEBgAIB9KCB1KSB0TCB # zjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl # ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEpMCcGA1UECxMg # TWljcm9zb2Z0IE9wZXJhdGlvbnMgUHVlcnRvIFJpY28xJjAkBgNVBAsTHVRoYWxl # cyBUU1MgRVNOOjk4RkQtQzYxRS1FNjQxMSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt # ZS1TdGFtcCBTZXJ2aWNloIIPHzCCBPUwggPdoAMCAQICEzMAAAD74JQPFEGE28UA # AAAAAPswDQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh # c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD # b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw # MTAwHhcNMTkwOTA2MjA0MTA2WhcNMjAxMjA0MjA0MTA2WjCBzjELMAkGA1UEBhMC # VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV # BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEpMCcGA1UECxMgTWljcm9zb2Z0IE9w # ZXJhdGlvbnMgUHVlcnRvIFJpY28xJjAkBgNVBAsTHVRoYWxlcyBUU1MgRVNOOjk4 # RkQtQzYxRS1FNjQxMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2 # aWNlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoCFj7knwdeWYBVT7 # vRYftObgZygBZDPMrLMtiBCMv6ZWJMZ7mnTNvAXj1klx1eDBCQMz+4DaPzGPSivL # ZSHkJ58Nb8BQfP1HaqQh7kBuNuMsAOAIqDpTdICVZ/Pw2go0TzG7ZTL/zOksNxVz # SPDgHfoqrpiObzFdyzLGM5ttpXMiJyXbduy4mCSQIPWxq2FIEWvANURhAeTxHVjC # AUTw0H+eCn7g/TasCa42lxzXAE7K9PIRtLyXWaKswWFP1VsN+03qzXN3QyWn4eun # lTQ0Y/BL6YQeKW+NptjrssErcFktiCZRyK1Xjpeie0EIG/0r7mg+2lGt1s9W7aB7 # ZMc15wIDAQABo4IBGzCCARcwHQYDVR0OBBYEFJA8AO870sSLmhbqXJEySokPq02M # MB8GA1UdIwQYMBaAFNVjOlyKMZDzQ3t8RhvFM2hahW1VMFYGA1UdHwRPME0wS6BJ # oEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01p # Y1RpbVN0YVBDQV8yMDEwLTA3LTAxLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYB # BQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljVGlt # U3RhUENBXzIwMTAtMDctMDEuY3J0MAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYI # KwYBBQUHAwgwDQYJKoZIhvcNAQELBQADggEBAEPawadF+hdY0YJ6oCHD5IzKnzNJ # LvMWQ6gacfwhC1ctjbAx7N1oPc7w1UHb7UniN/KDDteIGQVC3jSL7znHyKD6hSdm # XUX5/eXpMpsIsh4CWm99FPZRIsc77g8hRf3BhWKo4XsVeU/YMkL/WBr9saEXmZwr # GVw+jgFaTxy47cEKNdps0Kzmgds0dV/FQj3FUphQE3cY0OX7vaPnRsTXUmDxmBXA # jZLLDWPtSILtkdjNnsYI3K4ffP2oYhdaCvo1v+KXmk9+w5ZEjVtBsvT+hz9DhM/2 # 2qG8KLntP7n01jP7fcoAbHRKCEsFyDqCtQrIjpyA1/585Rv8VBH7w+HZIDIwggZx # MIIEWaADAgECAgphCYEqAAAAAAACMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQG # EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG # A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQg # Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0xMDA3MDEyMTM2NTVa # Fw0yNTA3MDEyMTQ2NTVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n # dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y # YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIIB # IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqR0NvHcRijog7PwTl/X6f2mU # a3RUENWlCgCChfvtfGhLLF/Fw+Vhwna3PmYrW/AVUycEMR9BGxqVHc4JE458YTBZ # sTBED/FgiIRUQwzXTbg4CLNC3ZOs1nMwVyaCo0UN0Or1R4HNvyRgMlhgRvJYR4Yy # hB50YWeRX4FUsc+TTJLBxKZd0WETbijGGvmGgLvfYfxGwScdJGcSchohiq9LZIlQ # YrFd/XcfPfBXday9ikJNQFHRD5wGPmd/9WbAA5ZEfu/QS/1u5ZrKsajyeioKMfDa # TgaRtogINeh4HLDpmc085y9Euqf03GS9pAHBIAmTeM38vMDJRF1eFpwBBU8iTQID # AQABo4IB5jCCAeIwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFNVjOlyKMZDz # Q3t8RhvFM2hahW1VMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQE # AwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQ # W9fOmhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNv # bS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBa # BggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0 # LmNvbS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MIGgBgNV # HSABAf8EgZUwgZIwgY8GCSsGAQQBgjcuAzCBgTA9BggrBgEFBQcCARYxaHR0cDov # L3d3dy5taWNyb3NvZnQuY29tL1BLSS9kb2NzL0NQUy9kZWZhdWx0Lmh0bTBABggr # BgEFBQcCAjA0HjIgHQBMAGUAZwBhAGwAXwBQAG8AbABpAGMAeQBfAFMAdABhAHQA # ZQBtAGUAbgB0AC4gHTANBgkqhkiG9w0BAQsFAAOCAgEAB+aIUQ3ixuCYP4FxAz2d # o6Ehb7Prpsz1Mb7PBeKp/vpXbRkws8LFZslq3/Xn8Hi9x6ieJeP5vO1rVFcIK1GC # RBL7uVOMzPRgEop2zEBAQZvcXBf/XPleFzWYJFZLdO9CEMivv3/Gf/I3fVo/HPKZ # eUqRUgCvOA8X9S95gWXZqbVr5MfO9sp6AG9LMEQkIjzP7QOllo9ZKby2/QThcJ8y # Sif9Va8v/rbljjO7Yl+a21dA6fHOmWaQjP9qYn/dxUoLkSbiOewZSnFjnXshbcOc # o6I8+n99lmqQeKZt0uGc+R38ONiU9MalCpaGpL2eGq4EQoO4tYCbIjggtSXlZOz3 # 9L9+Y1klD3ouOVd2onGqBooPiRa6YacRy5rYDkeagMXQzafQ732D8OE7cQnfXXSY # Ighh2rBQHm+98eEA3+cxB6STOvdlR3jo+KhIq/fecn5ha293qYHLpwmsObvsxsvY # grRyzR30uIUBHoD7G4kqVDmyW9rIDVWZeodzOwjmmC3qjeAzLhIp9cAvVCch98is # TtoouLGp25ayp0Kiyc8ZQU3ghvkqmqMRZjDTu3QyS99je/WZii8bxyGvWbWu3EQ8 # l1Bx16HSxVXjad5XwdHeMMD9zOZN+w2/XU/pnR4ZOC+8z1gFLu8NoFA12u8JJxzV # s341Hgi62jbb01+P3nSISRKhggOtMIIClQIBATCB/qGB1KSB0TCBzjELMAkGA1UE # BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc # BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEpMCcGA1UECxMgTWljcm9zb2Z0 # IE9wZXJhdGlvbnMgUHVlcnRvIFJpY28xJjAkBgNVBAsTHVRoYWxlcyBUU1MgRVNO # Ojk4RkQtQzYxRS1FNjQxMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBT # ZXJ2aWNloiUKAQEwCQYFKw4DAhoFAAMVABX0748JRngodMIy65cEr/rOv0IxoIHe # MIHbpIHYMIHVMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G # A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSkw # JwYDVQQLEyBNaWNyb3NvZnQgT3BlcmF0aW9ucyBQdWVydG8gUmljbzEnMCUGA1UE # CxMebkNpcGhlciBOVFMgRVNOOjRERTktMEM1RS0zRTA5MSswKQYDVQQDEyJNaWNy # b3NvZnQgVGltZSBTb3VyY2UgTWFzdGVyIENsb2NrMA0GCSqGSIb3DQEBBQUAAgUA # 4X30hDAiGA8yMDE5MTExOTEyNTYzNloYDzIwMTkxMTIwMTI1NjM2WjB0MDoGCisG # AQQBhFkKBAExLDAqMAoCBQDhffSEAgEAMAcCAQACAgIaMAcCAQACAhytMAoCBQDh # f0YEAgEAMDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwGgCjAIAgEAAgMW # 42ChCjAIAgEAAgMHoSAwDQYJKoZIhvcNAQEFBQADggEBAJQjdc0NWXHjyFCwkQC1 # xUi4WJxHy9j91AvXw9FhdZQJosFdQecA3l82KrukyAr1f0q8bKPOObMzmsV0SbM8 # amjvSO5YoRf825UY/cvgIjArIzeuwjIFcRCYv30MbzBpJSMRTX0p6V0ve6hg7D6d # QO8EXJXHfU+1TBmly88aZGP7lRdwChEy6ATJDPmUMHOREwD5lApcZLP42dncT8Y/ # uv50Ar1pnen39FrJvPngpbbNkposM2K55RY5/GNSq2jZB+5gXODZiN69NWYo+SNN # kmngG2K52Mj9AOnLh5EdsePwvKZ1jXleaaJ02Il/gtxnLCdLY0ArxSFJx+C7IVAK # XW8xggMNMIIDCQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu # Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv # cmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAIT # MwAAAPvglA8UQYTbxQAAAAAA+zANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcN # AQkDMQ0GCyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCCX9j7Sm0F8WXAqQB7v # Ok1HI65f0BenK8JD4KlUwRWT6zCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0E # IG7x9CMM4nrIfJH/D7+6oJJwWusF4kutcM70Gkwruv7dMIGYMIGApH4wfDELMAkG # A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx # HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9z # b2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAD74JQPFEGE28UAAAAAAPswIgQg # k/NO1+pSjoNWKRnoLMlb6j6paOjKcgD4bLIB+qeCVlkwDQYJKoZIhvcNAQELBQAE # ggEAbTNqDiEoD8hTsVnzliew+IrbmcznlMbjeMulFxYAb2coHg+KbfS7BuTCT/8R # fP7GsulYoBYtuEG3sxTk0FtrfpTcOJT9WmjRAi/Awngml4P8KPecKHKL2ZFjVPdR # s7wF+RblRePwSLs6NB/7vCe+uYlRZTvGcQHMbFlconhPsO7gQi0hjLjHlLitTDQR # H5MBYc3cfH+CbrszEHPB/Chlq3vY63SkNc6Mp0cSacyawV7yZS5aXClCxzfk1ELD # mXMbbdS/3RYIwJLqi5TigKRGaFUYAhK+jJ1f8iN7kgY5pFxrz000ujH4fm/uljJk # LjAJufMapcX6MQU0WHPBlhnNuw== # SIG # End signature block |