public/ValidateAuthAndSchema.ps1
# Test auth, upsert (for non auth code flows), preview <# .Synopsis Script to test connection authentication using the GCS API. .Description This script test the connection authentication by calling the GCS API and stores the result in a JSON file. .Parameter ConnectionId Mandatory parameter specifying the ConnectionId for which the authentication metadata is to be upserted. .Parameter Path Mandatory parameter specifying the path. .Parameter AuthenticationKind Mandatory parameter specifying the authentication kind. .Parameter Username Optional parameter specifying the username. Required if the authentication kind is basic or Windows. .Parameter Password Optional parameter specifying the password. Required if the authentication kind is basic or Windows. .Parameter ClientId Optional parameter specifying the client id. Required if the authentication kind is oauth2 or oauth2.client_credentials. .Parameter ClientSecret Optional parameter specifying the client secret. Required if the authentication kind is oauth2 or oauth2.client_credentials. .Parameter OAuthNonce Optional parameter specifying the OAuth nonce. Required if the authentication kind is oauth2. .Parameter AdminInputs Optional parameter specifying the admin inputs. Required if the connector is an OpenApi connector. .Parameter AuthEndpoint Optional parameter specifying the auth endpoint. Required if the connector is an OpenApi connector and the authentication kind is oauth2 or oauth2.client_credentials. .Parameter TokenEndpoint Optional parameter specifying the token endpoint. Required if the connector is an OpenApi connector and the authentication kind is oauth2 or oauth2.client_credentials. .Parameter RefreshEndpoint Optional parameter specifying the refresh endpoint. Required if the connector is an OpenApi connector and the authentication kind is oauth2 or oauth2.client_credentials. .Parameter Scope Optional parameter specifying the scope. Required if the connector is an OpenApi connector and the authentication kind is oauth2 or oauth2.client_credentials. .Parameter Resource Optional parameter specifying the resource. Required if the connector is an OpenApi connector and the authentication kind is oauth2.client_credentials. .Parameter OutputFile Optional parameter specifying the output file location for logging. If not provided, the default filename based on the command type and timestamp will be used. .Parameter TenantId Optional parameter specifying the TenantId for which the connection information is to be retrieved. .Parameter Torus Optional switch parameter to indicate if Torus is being used. #> function ValidateAuthAndSchema { param( # Connection Id [Parameter(Mandatory=$true)] [string] $ConnectionId, # Path [Parameter(Mandatory=$true)] [string] $DatasourcePath, # Authentication kind [Parameter(Mandatory=$true)] [string] $AuthenticationKind ) try{ switch ($AuthenticationKind) { "basic" { $Username = Read-Host "Username" $PasswordSecureString = Read-Host "Password" -AsSecureString $bstr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($PasswordSecureString) $Password = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($bstr) [System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($bstr) } "oauth2.client_credentials" { $ClientId = Read-Host "Client id" $ClientSecret = Read-Host "Client secret" $TokenEndpoint = Read-Host "Token endpoint" $Scope = Read-Host "Scopes (Press enter if there are no scope options)" $Resource = Read-Host "Resources (Press enter if there are no resource options)" } } $OAuthNonce = 165 Test-Authentication -ConnectionId $ConnectionId -Path $DatasourcePath -AuthenticationKind $AuthenticationKind -Username $Username -Password $Password -ClientId $ClientId -ClientSecret $ClientSecret -OAuthNonce $OAuthNonce -TokenEndpoint $TokenEndpoint -Scope $Scope -Resource $Resource Write-Host "Test auth succeeded" if($AuthenticationKind -ne "oauth2" -and $AuthenticationKind -ne "oauth2.client_credentials"){ Upsert-Authentication -ConnectionId $ConnectionId -Path $DatasourcePath -AuthenticationKind $AuthenticationKind -Username $Username -Password $Password -ClientId $ClientId -ClientSecret $ClientSecret -TokenEndpoint $TokenEndpoint -Scope $Scope -Resource $Resource } $PreviewOutputFile = "PreviewData_$($ConnectionId)" Write-Host "Generating preview" Evaluate-PreviewData -ConnectionId $ConnectionId -OutputFile $PreviewOutputFile } catch{ Write-Error "Error happend while execution ValidateAuthAndSchema. Error = $_" } } # SIG # Begin signature block # MIIoBgYJKoZIhvcNAQcCoIIn9zCCJ/MCAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCACBBsLZ2orZZNM # M2wRsOScuureESWjec39I1hGakNf16CCDYUwggYDMIID66ADAgECAhMzAAADri01 # UchTj1UdAAAAAAOuMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p # bmcgUENBIDIwMTEwHhcNMjMxMTE2MTkwODU5WhcNMjQxMTE0MTkwODU5WjB0MQsw # CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u # ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB # AQD0IPymNjfDEKg+YyE6SjDvJwKW1+pieqTjAY0CnOHZ1Nj5irGjNZPMlQ4HfxXG # yAVCZcEWE4x2sZgam872R1s0+TAelOtbqFmoW4suJHAYoTHhkznNVKpscm5fZ899 # QnReZv5WtWwbD8HAFXbPPStW2JKCqPcZ54Y6wbuWV9bKtKPImqbkMcTejTgEAj82 # 6GQc6/Th66Koka8cUIvz59e/IP04DGrh9wkq2jIFvQ8EDegw1B4KyJTIs76+hmpV # M5SwBZjRs3liOQrierkNVo11WuujB3kBf2CbPoP9MlOyyezqkMIbTRj4OHeKlamd # WaSFhwHLJRIQpfc8sLwOSIBBAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE # AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUhx/vdKmXhwc4WiWXbsf0I53h8T8w # VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh # dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMTgzNjAfBgNVHSMEGDAW # gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v # d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw # MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov # L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx # XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB # AGrJYDUS7s8o0yNprGXRXuAnRcHKxSjFmW4wclcUTYsQZkhnbMwthWM6cAYb/h2W # 5GNKtlmj/y/CThe3y/o0EH2h+jwfU/9eJ0fK1ZO/2WD0xi777qU+a7l8KjMPdwjY # 0tk9bYEGEZfYPRHy1AGPQVuZlG4i5ymJDsMrcIcqV8pxzsw/yk/O4y/nlOjHz4oV # APU0br5t9tgD8E08GSDi3I6H57Ftod9w26h0MlQiOr10Xqhr5iPLS7SlQwj8HW37 # ybqsmjQpKhmWul6xiXSNGGm36GarHy4Q1egYlxhlUnk3ZKSr3QtWIo1GGL03hT57 # xzjL25fKiZQX/q+II8nuG5M0Qmjvl6Egltr4hZ3e3FQRzRHfLoNPq3ELpxbWdH8t # Nuj0j/x9Crnfwbki8n57mJKI5JVWRWTSLmbTcDDLkTZlJLg9V1BIJwXGY3i2kR9i # 5HsADL8YlW0gMWVSlKB1eiSlK6LmFi0rVH16dde+j5T/EaQtFz6qngN7d1lvO7uk # 6rtX+MLKG4LDRsQgBTi6sIYiKntMjoYFHMPvI/OMUip5ljtLitVbkFGfagSqmbxK # 7rJMhC8wiTzHanBg1Rrbff1niBbnFbbV4UDmYumjs1FIpFCazk6AADXxoKCo5TsO # zSHqr9gHgGYQC2hMyX9MGLIpowYCURx3L7kUiGbOiMwaMIIHejCCBWKgAwIBAgIK # YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV # BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv # c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm # aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw # OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE # BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD # VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG # 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la # UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc # 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D # dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ # lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk # kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 # A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd # X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL # 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd # sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 # T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS # 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI # bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL # BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD # uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv # c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf # MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 # dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf # MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF # BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h # cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA # YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn # 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 # v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b # pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ # KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy # CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp # mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi # hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb # BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS # oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL # gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX # cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGdcwghnTAgEBMIGVMH4x # CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt # b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p # Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAOuLTVRyFOPVR0AAAAA # A64wDQYJYIZIAWUDBAIBBQCggeYwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw # HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIMT4 # 9g9m/iLRbm2x8nSYY61y8t9yMbvwSb6Cc0ktCxeEMHoGCisGAQQBgjcCAQwxbDBq # oEyASgBNAGkAYwByAG8AcwBvAGYAdAAuAEcAcgBhAHAAaAAuAEMAbwBuAG4AZQBj # AHQAbwByAHMALgBDAG0AZABsAGUAdAAuAGQAbABsoRqAGGh0dHA6Ly93d3cubWlj # cm9zb2Z0LmNvbTANBgkqhkiG9w0BAQEFAASCAQDqF47m3G4R6RpL+T6ZUe7Xq/LW # OrE8zS0DRqZlrr1p2MBcruP7uHdPXZkAJBIHHqScFaSdqimgPluHru3iJlH9E6wj # E/6//x7irppVE0LLqWQexGgkV0YHIy/ZR8NPoR6Nc9dmWueXN5rzYVOYIuhbdix/ # fiB1JBLHGwr3jHrTmeCoy/ihSUv/bqE9cGNRDIvK9ZSqe+E3FDHxVTCDxU0FqcPd # AcgosXXHjfN8ZN/WsBINJxgIXX+e4Fg8TGjZdKMPnR6xa0h9CMV2lSEOqmtNSKG0 # VuYy16OPPEc+1t6qDcyMeiMlVNXc3N6CN4xxsZqcuGoLzfCsmCxBaLzQmO59oYIX # KTCCFyUGCisGAQQBgjcDAwExghcVMIIXEQYJKoZIhvcNAQcCoIIXAjCCFv4CAQMx # DzANBglghkgBZQMEAgEFADCCAVkGCyqGSIb3DQEJEAEEoIIBSASCAUQwggFAAgEB # BgorBgEEAYRZCgMBMDEwDQYJYIZIAWUDBAIBBQAEIEqtzFS9kRnMcY6BrAy7tjue # EP+Rifw+iAVJjfOGRHHMAgZmVxWPqiIYEzIwMjQwNjA1MDQwNjE0LjgyMlowBIAC # AfSggdikgdUwgdIxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw # DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x # LTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEm # MCQGA1UECxMdVGhhbGVzIFRTUyBFU046OEQ0MS00QkY3LUIzQjcxJTAjBgNVBAMT # HE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WgghF4MIIHJzCCBQ+gAwIBAgIT # MwAAAePfvZuaHGiDIgABAAAB4zANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJV # UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE # ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGlt # ZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEwMTIxOTA3MjlaFw0yNTAxMTAxOTA3Mjla # MIHSMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH # UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL # EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJjAkBgNVBAsT # HVRoYWxlcyBUU1MgRVNOOjhENDEtNEJGNy1CM0I3MSUwIwYDVQQDExxNaWNyb3Nv # ZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC # CgKCAgEAvqQNaB5Gn5/FIFQPo3/K4QmleCDMF40bkoHwz0BshZ4SiQmA6CGUyDwm # aqQ2wHhaXU0RdHtwvq+U8KxYYsyHKqaxxC7fr/yHZvHpNTgzx1VkR3pXhT6X2Cm1 # 75UX3WQ4jfl86onp5AMzBIFDlz0SU8VSKNMDvNXtjk9FitLgUv2nj3hOJ0KkEQfk # 3oA7m7zA0D+Mo73hmR+OC7uwsXxJR2tzUZE0STYX3UvenFH7fYWy5BNmLyGq2sWk # Q5HFvJKCJAE/dwft8+V43U3KeExF/pPtcLUvQ9HIrL0xnpMFau7Yd5aK+TEi57Wc # tBv87+fSPZBV3jZl/QCtcH9WrniBDwki9QfRxu/JYzw+iaEWLqrYXuF7jeOGvHK+ # fVeLWnAc5WxsfbpjEMpNbGXbSF9At3PPhFVOjxwVEx1ALGUqRKehw9ap9X/gfkA9 # I9eTSvwJz9wya9reDgS+6kXgSttI7RQ2cJG/tQPGVIaLCIaSafLneaq0Bns0t4+E # W3B/GnoBMiiOXwleOvf5udBZQIMJ3k5qnnh8Z4ZhTwrE6iGbPrTgGBPXh7exFYAG # lb6hdhILIVDdJlDf8s1NVvL0Q2y4SHZQhApZTuW/tyGsGscIPDSMz5bA6NhRLtjE # wCFpLI5qGlu50Au9FRelCEQsWg7q07H/rqHOqCNJM4Rjem7joEUCAwEAAaOCAUkw # ggFFMB0GA1UdDgQWBBSxrg1mvjUVt6Fnxj56nabZiJipAzAfBgNVHSMEGDAWgBSf # pxVdAF5iXYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3 # Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1w # JTIwUENBJTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAC # hlBodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29m # dCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAA # MBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG # 9w0BAQsFAAOCAgEAt76bLqnU08wRbW3vRrxjaEbGPqyINK6UYCzhTGaR/PEwCJzi # PT4ZM9sfGTX3eZDQVE9r121tFtp7NXQYuQSxRZMYXa0/pawN2Xn+UPjBRDvoCsU5 # 6dwKkrmy8TSw7QXKGskdnEwsI5yW93q8Ag86RkBiKEEf9FdzHNuKWI4Kv//fDtES # ewu46n/u+VckCwbOYl6wE//QRGrGMq509a4EbP+p1GUm06Xme/01mTIuKDgPmHL2 # nYRzXNqi2IuIecn2aWwkRxQOFiPw+dicmOOwLG/7InNqjZpQeIhDMxsWr4zTxzy4 # ER/6zfthtlDtcAXHB7YRUkBTClaOa0ndvfNJZMyYVa6cWvZouTq9V5LS7UzIR8S/ # 7RsOT43eOawLBsuQz0VoOLurYe1SffPqTsCcRNzbx0C8t/+KipStVhPAGttEfhdU # US9ohD6Lt6wNCJxZbV0IMD8nfE6gIQJXrzrXWOuJqN91WDyjRan4UKDkIBS2yWA4 # W6JhQuBzGerOSY/aLnxkRrSubgtnKYcHOwgxTTIya5WYCRjFt0QOLleqVki6k+mq # YPr98uMPi5vRIQS206mDSenStr8w0J+/+1WEm3PnCCIQgpf6zhqRrAt9j7XrEMHr # g2bQegaz8bLzbe6UibgbKtRyk1nGde8To5kyMj9XUCBICDxT+F4xa5lNZVQwggdx # MIIFWaADAgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGI # MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk # bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylN # aWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5 # MzAxODIyMjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQI # EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv # ZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBD # QSAyMDEwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciEL # eaLL1yR5vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa # 4n5KWv64NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxR # MTegCjhuje3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEByd # Uv626GIl3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi9 # 47SHJMPgyY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJi # ss254o2I5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+ # /NmeRd+2ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY # 7afomXw/TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtco # dgLiMxhy16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH # 29wb0f2y1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94 # q0W29R6HXtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcV # AQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0G # A1UdDgQWBBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQB # gjdMg30BATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v # cGtpb3BzL0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgw # GQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB # /wQFMAMBAf8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0f # BE8wTTBLoEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJv # ZHVjdHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4w # TDBKBggrBgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0 # cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIB # AJ1VffwqreEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRs # fNB1OW27DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6 # Ce5732pvvinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveV # tihVJ9AkvUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKB # GUIZUnWKNsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoy # GtmW9I/2kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQE # cb9k+SS+c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFU # a2pFEUep8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+ # k77L+DvktxW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0 # +CQ1ZyvgDbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cir # Ooo6CGJ/2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIC1DCCAj0CAQEwggEA # oYHYpIHVMIHSMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G # A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0w # KwYDVQQLEyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJjAk # BgNVBAsTHVRoYWxlcyBUU1MgRVNOOjhENDEtNEJGNy1CM0I3MSUwIwYDVQQDExxN # aWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQA9iJe7 # w5FDiG8py4TsYrQI6DFaeqCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQI # EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv # ZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBD # QSAyMDEwMA0GCSqGSIb3DQEBBQUAAgUA6gok1TAiGA8yMDI0MDYwNTA3NDIxM1oY # DzIwMjQwNjA2MDc0MjEzWjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDqCiTVAgEA # MAcCAQACAgTDMAcCAQACAiiPMAoCBQDqC3ZVAgEAMDYGCisGAQQBhFkKBAIxKDAm # MAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZIhvcN # AQEFBQADgYEAV2mQWE5pIXcpK6KoKFzEblnQRr+FZVxZPmlBAl82qpKOAteUlQf4 # VJWL8/MKFNfXoizqyU2Ab/GouFY4HWk2vw1ZGiDiN4XCUj9sR6fn91RPLbnEN+Gn # cZInUofCu1mxmGaf0Pe8kWmbH0XSnKZCpEml2464ravjpSXpMKDeT4UxggQNMIIE # CQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G # A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYw # JAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAePfvZua # HGiDIgABAAAB4zANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqG # SIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCDsm2ZAdJHyUyr53WaljO5fVjmJnF0B # YqToDMvZfRP2NjCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIDPUI6vlsP5k # 90SBCNa9wha4MlxBt2Crw12PTHIy5iYqMIGYMIGApH4wfDELMAkGA1UEBhMCVVMx # EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT # FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUt # U3RhbXAgUENBIDIwMTACEzMAAAHj372bmhxogyIAAQAAAeMwIgQgQ4S5BC10qteE # v26u2S+fzBTGpUBr/i0XVDqO8O/lLZcwDQYJKoZIhvcNAQELBQAEggIAPxlfK/fn # gj5FJIy4p8pTw0ge4724lTiQ7fZTz3qwA6ge7gVOlCVjAdWBj1G5xH3iJPMZD47b # 9jPxmMIfd+q7o+9dNmBzDlJtaBwcroUgX3JXb9K1sxMAJ9mmrzcoXjm3cMbjy2QI # os1ScWbae9UngzCXIbr8EAYYAKkaUL3QiSWCmx6SqI4IDeYa3ahYyfoxoOIbtXm1 # OrEBNtHnWvr7shZsOg60ECTYVO91SYUnXBBDmiT/3o3g5KumeyjonmpTOk9EJXBU # wVvsCGMthYaRb3GEC8bs9IlEE0A3IyQZX8cvXLt9TmS+aE82tyY6Ikks3Uq/kpck # fR7W0xRAwDNkUELvKTOLwpF+/JVXqKaT5mIuxZhCZ7deEu9DsbEkXZ9GH/nSG877 # MZh3ZMpnxAPOaMYDvsVQwCU1gmaxW3x1ccT7B5S+cyJzUmgbC3rhR1Zt3xsm8vc8 # nScZkNR5ZDFCnw8vvTMse/IRDt6sJAhOKunsdKFCND+hV4ttuqV+lQxRTW/8+vsb # DuAzB3ficLYirQA2i88B2y8eo3gMlEQVeEilSp0yAJNyqrUpHRVZ6lXoIAV68BXh # lsNLFYJnHuhEXkf9LpfUVbrK5BZIRchPG33NgFeYN+/uZm8hqwOUOCfJKNiQmv0N # fdQAIs26Sgxm65eme2ud0fmKfUEVYyVUMHo= # SIG # End signature block |