From 95942899261c3f9f3d2762075df6b0a8f2f30335 Mon Sep 17 00:00:00 2001 From: Scott Hart Date: Fri, 21 Aug 2026 08:52:07 -0400 Subject: [PATCH 1/5] feat(ftp): generate library --- CHANGELOG.md | 1 + README.md | 3 +++ ci/etc/expected_install_directories | 6 ++++++ cmake/GoogleCloudCppFeatures.cmake | 1 + external/googleapis/update_libraries.sh | 1 + generator/generator_config.textproto | 10 ++++++++++ libraries.bzl | 1 + 7 files changed, 23 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 85cf4adf3c821..52e28fcfb4429 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ for details on updating existing applications using v1.x.y or v2.x.y. We are happy to announce the following GA libraries. Unless specifically noted, the APIs in these libraries are stable, and are ready for production use. +- [Cloud FTP API](/google/cloud/ftp/README.md) - [Workload Identity API](/google/cloud/workloadidentity/README.md) ## v3.8.0 - 2026-08 diff --git a/README.md b/README.md index 5566f86157d88..d6d0d80edec21 100644 --- a/README.md +++ b/README.md @@ -305,6 +305,9 @@ See each library's `README.md` file for more information about: - [Financial Services API](google/cloud/financialservices/README.md) [[quickstart]](google/cloud/financialservices/quickstart/README.md) [[reference]](https://cloud.google.com/cpp/docs/reference/financialservices/latest) +- [Cloud FTP API](google/cloud/ftp/README.md) + [[quickstart]](google/cloud/ftp/quickstart/README.md) + [[reference]](https://cloud.google.com/cpp/docs/reference/ftp/latest) - [Cloud Functions API](google/cloud/functions/README.md) [[quickstart]](google/cloud/functions/quickstart/README.md) [[reference]](https://cloud.google.com/cpp/docs/reference/functions/latest) diff --git a/ci/etc/expected_install_directories b/ci/etc/expected_install_directories index 864bc139c2061..532f6e2771152 100644 --- a/ci/etc/expected_install_directories +++ b/ci/etc/expected_install_directories @@ -785,6 +785,10 @@ ./include/google/cloud/financialservices/v1 ./include/google/cloud/financialservices/v1/internal ./include/google/cloud/financialservices/v1/mocks +./include/google/cloud/ftp +./include/google/cloud/ftp/v1 +./include/google/cloud/ftp/v1/internal +./include/google/cloud/ftp/v1/mocks ./include/google/cloud/functions ./include/google/cloud/functions/v1 ./include/google/cloud/functions/v1/internal @@ -1439,6 +1443,8 @@ ./lib64/cmake/google_cloud_cpp_filestore_mocks ./lib64/cmake/google_cloud_cpp_financialservices ./lib64/cmake/google_cloud_cpp_financialservices_mocks +./lib64/cmake/google_cloud_cpp_ftp +./lib64/cmake/google_cloud_cpp_ftp_mocks ./lib64/cmake/google_cloud_cpp_functions ./lib64/cmake/google_cloud_cpp_functions_mocks ./lib64/cmake/google_cloud_cpp_geminidataanalytics diff --git a/cmake/GoogleCloudCppFeatures.cmake b/cmake/GoogleCloudCppFeatures.cmake index 44e2d506e3ead..fd0608de8d025 100644 --- a/cmake/GoogleCloudCppFeatures.cmake +++ b/cmake/GoogleCloudCppFeatures.cmake @@ -108,6 +108,7 @@ set(GOOGLE_CLOUD_CPP_GA_LIBRARIES "eventarc" "filestore" "financialservices" + "ftp" "functions" "geminidataanalytics" "gkebackup" diff --git a/external/googleapis/update_libraries.sh b/external/googleapis/update_libraries.sh index 898d25fce465f..2ad2874b29d2a 100755 --- a/external/googleapis/update_libraries.sh +++ b/external/googleapis/update_libraries.sh @@ -161,6 +161,7 @@ declare -A -r LIBRARIES=( )" ["filestore"]="@googleapis//google/cloud/filestore/v1:filestore_cc_grpc" ["financialservices"]="@googleapis//google/cloud/financialservices/v1:financialservices_cc_grpc" + ["ftp"]="@googleapis//google/cloud/ftp/v1:ftp_cc_grpc" ["functions"]="$( printf ",%s" \ "@googleapis//google/cloud/functions/v1:functions_cc_grpc" \ diff --git a/generator/generator_config.textproto b/generator/generator_config.textproto index 21697fd84f4eb..f5a28cc50d01e 100644 --- a/generator/generator_config.textproto +++ b/generator/generator_config.textproto @@ -2649,6 +2649,16 @@ service { retryable_status_codes: ["kUnavailable"] } +# Ftp +service { + service_proto_path: "google/cloud/ftp/v1/service.proto" + product_path: "google/cloud/ftp/v1" + initial_copyright_year: "2026" + retryable_status_codes: ["kUnavailable"] + generate_rest_transport: true + generate_grpc_transport: false +} + # Functions service { service_proto_path: "google/cloud/functions/v1/functions.proto" diff --git a/libraries.bzl b/libraries.bzl index c25f8adee6e7d..11d5f63548028 100644 --- a/libraries.bzl +++ b/libraries.bzl @@ -169,6 +169,7 @@ GOOGLE_CLOUD_CPP_GA_LIBRARIES = [ "eventarc", "filestore", "financialservices", + "ftp", "functions", "geminidataanalytics", "gkebackup", From 6250b6cd39e0ff913796ca8b0ac7c5396a4cfb4b Mon Sep 17 00:00:00 2001 From: Scott Hart Date: Fri, 21 Aug 2026 08:53:51 -0400 Subject: [PATCH 2/5] generated library --- google/cloud/ftp/BUILD.bazel | 35 + google/cloud/ftp/CMakeLists.txt | 32 + google/cloud/ftp/README.md | 60 + .../cloud/ftp/doc/environment-variables.dox | 49 + google/cloud/ftp/doc/main.dox | 49 + google/cloud/ftp/doc/options.dox | 10 + .../cloud/ftp/doc/override-authentication.dox | 35 + google/cloud/ftp/doc/override-endpoint.dox | 25 + .../cloud/ftp/doc/override-retry-policies.dox | 108 ++ .../ftp/doc/override-universe-domain.dox | 24 + google/cloud/ftp/quickstart/.bazelrc | 29 + google/cloud/ftp/quickstart/BUILD.bazel | 25 + google/cloud/ftp/quickstart/CMakeLists.txt | 35 + google/cloud/ftp/quickstart/Makefile | 35 + google/cloud/ftp/quickstart/README.md | 135 ++ google/cloud/ftp/quickstart/WORKSPACE.bazel | 53 + google/cloud/ftp/quickstart/quickstart.cc | 41 + google/cloud/ftp/v1/.repo-metadata.json | 14 + google/cloud/ftp/v1/cloud_ftp_client.cc | 467 +++++ google/cloud/ftp/v1/cloud_ftp_client.h | 1615 +++++++++++++++++ google/cloud/ftp/v1/cloud_ftp_connection.cc | 266 +++ google/cloud/ftp/v1/cloud_ftp_connection.h | 294 +++ ...cloud_ftp_connection_idempotency_policy.cc | 135 ++ .../cloud_ftp_connection_idempotency_policy.h | 104 ++ google/cloud/ftp/v1/cloud_ftp_options.h | 86 + .../cloud/ftp/v1/cloud_ftp_rest_connection.cc | 55 + .../cloud/ftp/v1/cloud_ftp_rest_connection.h | 64 + .../v1/internal/cloud_ftp_option_defaults.cc | 74 + .../v1/internal/cloud_ftp_option_defaults.h | 37 + .../cloud_ftp_rest_connection_impl.cc | 943 ++++++++++ .../internal/cloud_ftp_rest_connection_impl.h | 191 ++ .../cloud_ftp_rest_logging_decorator.cc | 421 +++++ .../cloud_ftp_rest_logging_decorator.h | 206 +++ .../cloud_ftp_rest_metadata_decorator.cc | 290 +++ .../cloud_ftp_rest_metadata_decorator.h | 215 +++ .../ftp/v1/internal/cloud_ftp_rest_stub.cc | 617 +++++++ .../ftp/v1/internal/cloud_ftp_rest_stub.h | 363 ++++ .../internal/cloud_ftp_rest_stub_factory.cc | 56 + .../v1/internal/cloud_ftp_rest_stub_factory.h | 40 + .../ftp/v1/internal/cloud_ftp_retry_traits.h | 43 + .../ftp/v1/internal/cloud_ftp_sources.cc | 31 + .../internal/cloud_ftp_tracing_connection.cc | 315 ++++ .../internal/cloud_ftp_tracing_connection.h | 168 ++ .../ftp/v1/mocks/mock_cloud_ftp_connection.h | 372 ++++ .../v1/samples/cloud_ftp_client_samples.cc | 218 +++ 45 files changed, 8480 insertions(+) create mode 100644 google/cloud/ftp/BUILD.bazel create mode 100644 google/cloud/ftp/CMakeLists.txt create mode 100644 google/cloud/ftp/README.md create mode 100644 google/cloud/ftp/doc/environment-variables.dox create mode 100644 google/cloud/ftp/doc/main.dox create mode 100644 google/cloud/ftp/doc/options.dox create mode 100644 google/cloud/ftp/doc/override-authentication.dox create mode 100644 google/cloud/ftp/doc/override-endpoint.dox create mode 100644 google/cloud/ftp/doc/override-retry-policies.dox create mode 100644 google/cloud/ftp/doc/override-universe-domain.dox create mode 100644 google/cloud/ftp/quickstart/.bazelrc create mode 100644 google/cloud/ftp/quickstart/BUILD.bazel create mode 100644 google/cloud/ftp/quickstart/CMakeLists.txt create mode 100644 google/cloud/ftp/quickstart/Makefile create mode 100644 google/cloud/ftp/quickstart/README.md create mode 100644 google/cloud/ftp/quickstart/WORKSPACE.bazel create mode 100644 google/cloud/ftp/quickstart/quickstart.cc create mode 100644 google/cloud/ftp/v1/.repo-metadata.json create mode 100644 google/cloud/ftp/v1/cloud_ftp_client.cc create mode 100644 google/cloud/ftp/v1/cloud_ftp_client.h create mode 100644 google/cloud/ftp/v1/cloud_ftp_connection.cc create mode 100644 google/cloud/ftp/v1/cloud_ftp_connection.h create mode 100644 google/cloud/ftp/v1/cloud_ftp_connection_idempotency_policy.cc create mode 100644 google/cloud/ftp/v1/cloud_ftp_connection_idempotency_policy.h create mode 100644 google/cloud/ftp/v1/cloud_ftp_options.h create mode 100644 google/cloud/ftp/v1/cloud_ftp_rest_connection.cc create mode 100644 google/cloud/ftp/v1/cloud_ftp_rest_connection.h create mode 100644 google/cloud/ftp/v1/internal/cloud_ftp_option_defaults.cc create mode 100644 google/cloud/ftp/v1/internal/cloud_ftp_option_defaults.h create mode 100644 google/cloud/ftp/v1/internal/cloud_ftp_rest_connection_impl.cc create mode 100644 google/cloud/ftp/v1/internal/cloud_ftp_rest_connection_impl.h create mode 100644 google/cloud/ftp/v1/internal/cloud_ftp_rest_logging_decorator.cc create mode 100644 google/cloud/ftp/v1/internal/cloud_ftp_rest_logging_decorator.h create mode 100644 google/cloud/ftp/v1/internal/cloud_ftp_rest_metadata_decorator.cc create mode 100644 google/cloud/ftp/v1/internal/cloud_ftp_rest_metadata_decorator.h create mode 100644 google/cloud/ftp/v1/internal/cloud_ftp_rest_stub.cc create mode 100644 google/cloud/ftp/v1/internal/cloud_ftp_rest_stub.h create mode 100644 google/cloud/ftp/v1/internal/cloud_ftp_rest_stub_factory.cc create mode 100644 google/cloud/ftp/v1/internal/cloud_ftp_rest_stub_factory.h create mode 100644 google/cloud/ftp/v1/internal/cloud_ftp_retry_traits.h create mode 100644 google/cloud/ftp/v1/internal/cloud_ftp_sources.cc create mode 100644 google/cloud/ftp/v1/internal/cloud_ftp_tracing_connection.cc create mode 100644 google/cloud/ftp/v1/internal/cloud_ftp_tracing_connection.h create mode 100644 google/cloud/ftp/v1/mocks/mock_cloud_ftp_connection.h create mode 100644 google/cloud/ftp/v1/samples/cloud_ftp_client_samples.cc diff --git a/google/cloud/ftp/BUILD.bazel b/google/cloud/ftp/BUILD.bazel new file mode 100644 index 0000000000000..9a465bfab5758 --- /dev/null +++ b/google/cloud/ftp/BUILD.bazel @@ -0,0 +1,35 @@ +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +load("//bazel:gapic.bzl", "cc_gapic_library") + +package(default_visibility = ["//visibility:private"]) + +licenses(["notice"]) # Apache 2.0 + +service_dirs = ["v1/"] + +googleapis_deps = [ + "@googleapis//google/cloud/ftp/v1:ftp_cc_proto", +] + +cc_gapic_library( + name = "ftp", + additional_deps = [ + "//google/cloud:google_cloud_cpp_rest_internal", + "//google/cloud:google_cloud_cpp_rest_protobuf_internal", + ], + googleapis_deps = googleapis_deps, + service_dirs = service_dirs, +) diff --git a/google/cloud/ftp/CMakeLists.txt b/google/cloud/ftp/CMakeLists.txt new file mode 100644 index 0000000000000..2dc56ca7b15f9 --- /dev/null +++ b/google/cloud/ftp/CMakeLists.txt @@ -0,0 +1,32 @@ +# ~~~ +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ~~~ + +include(GoogleCloudCppLibrary) + +google_cloud_cpp_add_gapic_library(ftp "Cloud FTP API" REST_TRANSPORT + SERVICE_DIRS "v1/") + +if (BUILD_TESTING AND GOOGLE_CLOUD_CPP_ENABLE_CXX_EXCEPTIONS) + add_executable(ftp_quickstart "quickstart/quickstart.cc") + target_link_libraries(ftp_quickstart PRIVATE google-cloud-cpp::ftp) + google_cloud_cpp_add_common_options(ftp_quickstart) + add_test( + NAME ftp_quickstart + COMMAND cmake -P "${PROJECT_SOURCE_DIR}/cmake/quickstart-runner.cmake" + $ GOOGLE_CLOUD_PROJECT) + set_tests_properties(ftp_quickstart + PROPERTIES LABELS "integration-test;quickstart") +endif () diff --git a/google/cloud/ftp/README.md b/google/cloud/ftp/README.md new file mode 100644 index 0000000000000..fb8b2ec007870 --- /dev/null +++ b/google/cloud/ftp/README.md @@ -0,0 +1,60 @@ +# Cloud FTP API C++ Client Library + +This directory contains an idiomatic C++ client library for the +[Cloud FTP API][cloud-service-docs]. + +A managed, cloud-native solution to move data in and out of Google Cloud by +using SSH File Transfer Protocol (SFTP). + +While this library is **GA**, please note that the Google Cloud C++ client +libraries do **not** follow [Semantic Versioning](https://semver.org/). + +## Quickstart + +The [quickstart/](quickstart/README.md) directory contains a minimal environment +to get started using this client library in a larger project. The following +"Hello World" program is used in this quickstart, and should give you a taste of +this library. + + + +```cc +#include "google/cloud/ftp/v1/cloud_ftp_client.h" +#include "google/cloud/location.h" +#include + +int main(int argc, char* argv[]) try { + if (argc != 2) { + std::cerr << "Usage: " << argv[0] << " project-id\n"; + return 1; + } + + auto const location = google::cloud::Location(argv[1], "-"); + + namespace ftp = ::google::cloud::ftp_v1; + auto client = ftp::CloudFtpClient(ftp::MakeCloudFtpConnectionRest()); + + for (auto const& server : client.ListServers(location.FullName())) { + if (!server) throw std::move(server).status(); + std::cout << server->DebugString() << "\n"; + } + + return 0; +} catch (google::cloud::Status const& status) { + std::cerr << "google::cloud::Status thrown: " << status << "\n"; + return 1; +} +``` + + + +## More Information + +- Official documentation about the [Cloud FTP API][cloud-service-docs] service +- [Reference doxygen documentation][doxygen-link] for each release of this + client library +- Detailed header comments in our [public `.h`][source-link] files + +[cloud-service-docs]: https://docs.cloud.google.com/cloud-ftp +[doxygen-link]: https://cloud.google.com/cpp/docs/reference/ftp/latest/ +[source-link]: https://github.com/googleapis/google-cloud-cpp/tree/main/google/cloud/ftp diff --git a/google/cloud/ftp/doc/environment-variables.dox b/google/cloud/ftp/doc/environment-variables.dox new file mode 100644 index 0000000000000..1d7e0268f1c0d --- /dev/null +++ b/google/cloud/ftp/doc/environment-variables.dox @@ -0,0 +1,49 @@ +/*! +@page ftp-env Environment Variables + +A number of environment variables can be used to configure the behavior of +the library. There are also functions to configure this behavior in code. The +environment variables are convenient when troubleshooting problems. + +@section ftp-env-endpoint Endpoint Overrides + + + +- `GOOGLE_CLOUD_CPP_CLOUD_FTP_ENDPOINT=...` overrides the + `EndpointOption` (which defaults to "ftp.googleapis.com") + used by `MakeCloudFtpConnection()`. + + + +@see google::cloud::EndpointOption + +@section ftp-env-logging Logging + +`GOOGLE_CLOUD_CPP_ENABLE_TRACING=rpc`: turns on tracing for most gRPC +calls. The library injects an additional Stub decorator that prints each gRPC +request and response. Unless you have configured your own logging backend, +you should also set `GOOGLE_CLOUD_CPP_ENABLE_CLOG` to produce any output on +the program's console. + +@see google::cloud::LoggingComponentsOption + +`GOOGLE_CLOUD_CPP_TRACING_OPTIONS=...`: modifies the behavior of gRPC tracing, +including whether messages will be output on multiple lines, or whether +string/bytes fields will be truncated. + +@see google::cloud::GrpcTracingOptionsOption + +`GOOGLE_CLOUD_CPP_ENABLE_CLOG=yes`: turns on logging in the library, basically +the library always "logs" but the logging infrastructure has no backend to +actually print anything until the application sets a backend or they set this +environment variable. + +@see google::cloud::LogBackend +@see google::cloud::LogSink + +@section ftp-env-project Setting the Default Project + +`GOOGLE_CLOUD_PROJECT=...`: is used in examples and integration tests to +configure the GCP project. This has no effect in the library. + +*/ diff --git a/google/cloud/ftp/doc/main.dox b/google/cloud/ftp/doc/main.dox new file mode 100644 index 0000000000000..d673e0e37e988 --- /dev/null +++ b/google/cloud/ftp/doc/main.dox @@ -0,0 +1,49 @@ +/*! + +@mainpage Cloud FTP API C++ Client Library + +An idiomatic C++ client library for the [Cloud FTP API][cloud-service-docs]. + +A managed, cloud-native solution to move data in and out of Google Cloud by +using SSH File Transfer Protocol (SFTP). + +While this library is **GA**, please note that the Google Cloud C++ client libraries do **not** follow +[Semantic Versioning](https://semver.org/). + +@tableofcontents{HTML:2} + +## Quickstart + +The following shows the code that you'll run in the +`google/cloud/ftp/quickstart/` directory, +which should give you a taste of the Cloud FTP API C++ client library API. + +@snippet quickstart.cc all + +## Main classes + + +The main class in this library is +[`ftp_v1::CloudFtpClient`](@ref google::cloud::ftp_v1::CloudFtpClient). All RPCs are exposed +as member functions of this class. Other classes provide helpers, configuration +parameters, and infrastructure to mock +[`ftp_v1::CloudFtpClient`](@ref google::cloud::ftp_v1::CloudFtpClient) when testing your +application. + + +## More Information + +- @ref common-error-handling - describes how the library reports errors. +- @ref ftp-override-endpoint - describes how to override the default + endpoint. +- @ref ftp-override-authentication - describes how to change the + authentication credentials used by the library. +- @ref ftp-override-retry - describes how to change the default retry + policies. +- @ref ftp-env - describes environment variables that can configure the + behavior of the library. +- @ref ftp-override-universe-domain - describes how to override the default universe domain. + +[cloud-service-docs]: https://docs.cloud.google.com/cloud-ftp + +*/ diff --git a/google/cloud/ftp/doc/options.dox b/google/cloud/ftp/doc/options.dox new file mode 100644 index 0000000000000..9ef84982794b6 --- /dev/null +++ b/google/cloud/ftp/doc/options.dox @@ -0,0 +1,10 @@ +/*! +@defgroup google-cloud-ftp-options Cloud FTP API Configuration Options + +This library uses the same mechanism (`google::cloud::Options`) and the common +[options](@ref options) as all other C++ client libraries for its configuration. +Some `*Option` classes, which are only used in this library, are documented in +this page. + +@see @ref options - for an overview of client library configuration. +*/ diff --git a/google/cloud/ftp/doc/override-authentication.dox b/google/cloud/ftp/doc/override-authentication.dox new file mode 100644 index 0000000000000..50a07fed1df3b --- /dev/null +++ b/google/cloud/ftp/doc/override-authentication.dox @@ -0,0 +1,35 @@ +/*! +@page ftp-override-authentication How to Override the Authentication Credentials + +Unless otherwise configured, the client libraries use +[Application Default Credentials] to authenticate with Google Cloud Services. +While this works for most applications, in some cases you may need to override +this default. You can do so by providing the +[UnifiedCredentialsOption](@ref google::cloud::UnifiedCredentialsOption) +The following example shows how to explicitly load a service account key file: + + +@snippet cloud_ftp_client_samples.cc with-service-account + + + +Keep in mind that we chose this as an example because it is relatively easy to +understand. Consult the [Best practices for managing service account keys] +guide for more details. + +@see @ref guac - for more information on the factory functions to create +`google::cloud::Credentials` objects. + +[Best practices for managing service account keys]: https://cloud.google.com/iam/docs/best-practices-for-managing-service-account-keys +[Application Default Credentials]: https://cloud.google.com/docs/authentication#adc + +*/ + +// + +/*! @page ftp_v1::CloudFtpClient-service-account-snippet Override ftp_v1::CloudFtpClient Authentication Defaults + +@snippet google/cloud/ftp/v1/samples/cloud_ftp_client_samples.cc with-service-account + +*/ +// diff --git a/google/cloud/ftp/doc/override-endpoint.dox b/google/cloud/ftp/doc/override-endpoint.dox new file mode 100644 index 0000000000000..a78fe114a52d5 --- /dev/null +++ b/google/cloud/ftp/doc/override-endpoint.dox @@ -0,0 +1,25 @@ +/*! +@page ftp-override-endpoint How to Override the Default Endpoint + +In some cases, you may need to override the default endpoint used by the client +library. Use the +[EndpointOption](@ref google::cloud::EndpointOption) when initializing the +client library to change this default. + + +For example, this will override the default endpoint for `ftp_v1::CloudFtpClient`: + +@snippet cloud_ftp_client_samples.cc set-client-endpoint + + + +*/ + +// + +/*! @page ftp_v1::CloudFtpClient-endpoint-snippet Override ftp_v1::CloudFtpClient Endpoint Configuration + +@snippet google/cloud/ftp/v1/samples/cloud_ftp_client_samples.cc set-client-endpoint + +*/ +// diff --git a/google/cloud/ftp/doc/override-retry-policies.dox b/google/cloud/ftp/doc/override-retry-policies.dox new file mode 100644 index 0000000000000..e7b50375262cd --- /dev/null +++ b/google/cloud/ftp/doc/override-retry-policies.dox @@ -0,0 +1,108 @@ +/*! +@page ftp-override-retry Override Retry, Backoff, and Idempotency Policies + +When it is safe to do so, the library automatically retries requests that fail +due to a transient error. The library then uses [exponential backoff] to backoff +before trying again. Which operations are considered safe to retry, which +errors are treated as transient failures, the details of the exponential backoff +algorithm, and for how long the library retries are all configurable via +policies. + +This document provides examples showing how to override the default policies. + +The policies can be set when the `*Connection` object is created. The library +provides default policies for any policy that is not set. The application can +also override some (or all) policies when the `*Client` object is created. This +can be useful if multiple `*Client` objects share the same `*Connection` object, +but you want different retry behavior in some of the clients. Finally, the +application can override some retry policies when calling a specific member +function. + +The library uses three different options to control the retry loop. The options +have per-client names. + +@section ftp-override-retry-retry-policy Configuring the transient errors and retry duration + +The `*RetryPolicyOption` controls: + +- Which errors are to be treated as transient errors. +- How long the library will keep retrying transient errors. + +You can provide your own class for this option. The library also provides two +built-in policies: + +- `*LimitedErrorCountRetryPolicy`: stops retrying after a specified number + of transient errors. +- `*LimitedTimeRetryPolicy`: stops retrying after a specified time. + +Note that a library may have more than one version of these classes. Their name +match the `*Client` and `*Connection` object they are intended to be used +with. Some `*Client` objects treat different error codes as transient errors. +In most cases, only [kUnavailable](@ref google::cloud::StatusCode) is treated +as a transient error. + +@section ftp-override-retry-backoff-policy Controlling the backoff algorithm + +The `*BackoffPolicyOption` controls how long the client library will wait +before retrying a request that failed with a transient error. You can provide +your own class for this option. + +The only built-in backoff policy is +[`ExponentialBackoffPolicy`](@ref google::cloud::ExponentialBackoffPolicy). +This class implements a truncated exponential backoff algorithm, with jitter. +In summary, it doubles the current backoff time after each failure. The actual +backoff time for an RPC is chosen at random, but never exceeds the current +backoff. The current backoff is doubled after each failure, but never exceeds +(or is "truncated") if it reaches a prescribed maximum. + +@section ftp-override-retry-idempotency-policy Controlling which operations are retryable + +The `*IdempotencyPolicyOption` controls which requests are retryable, as some +requests are never safe to retry. + +Only one built-in idempotency policy is provided by the library. The name +matches the name of the client it is intended for. For example, `FooBarClient` +will use `FooBarIdempotencyPolicy`. This policy is very conservative. + +@section ftp-override-retry-example Example + + +For example, this will override the retry policies for `ftp_v1::CloudFtpClient`: + +@snippet cloud_ftp_client_samples.cc set-retry-policy + +This assumes you have created a custom idempotency policy. Such as: + +@snippet cloud_ftp_client_samples.cc custom-idempotency-policy + +This will override the polling policies for `ftp_v1::CloudFtpClient` + +@snippet cloud_ftp_client_samples.cc set-polling-policy + + + + +@section ftp-override-retry-more-information More Information + +@see google::cloud::Options +@see google::cloud::BackoffPolicy +@see google::cloud::ExponentialBackoffPolicy + +[exponential backoff]: https://en.wikipedia.org/wiki/Exponential_backoff + +*/ + +// + +/*! @page ftp_v1::CloudFtpClient-retry-snippet Override ftp_v1::CloudFtpClient Retry Policies + +This shows how to override the retry policies for ftp_v1::CloudFtpClient: + +@snippet google/cloud/ftp/v1/samples/cloud_ftp_client_samples.cc set-retry-policy + +Assuming you have created a custom idempotency policy. Such as: + +@snippet google/cloud/ftp/v1/samples/cloud_ftp_client_samples.cc custom-idempotency-policy + +*/ +// diff --git a/google/cloud/ftp/doc/override-universe-domain.dox b/google/cloud/ftp/doc/override-universe-domain.dox new file mode 100644 index 0000000000000..f6830b56da146 --- /dev/null +++ b/google/cloud/ftp/doc/override-universe-domain.dox @@ -0,0 +1,24 @@ +/*! +@page ftp-override-universe-domain How to Override the Default Universe Domain + +In some cases, you may need to override the default universe domain used by the +client library. Use `AddUniverseDomainOption` when initializing the client +library to change this default. + + +For example, this will override the default universe domain for `ftp_v1::CloudFtpClient`: + +@snippet cloud_ftp_client_samples.cc set-client-universe-domain + + + +*/ + +// + +/*! @page ftp_v1::CloudFtpClient-universe-domain-snippet Override ftp_v1::CloudFtpClient Universe Domain + +@snippet google/cloud/ftp/v1/samples/cloud_ftp_client_samples.cc set-client-universe-domain + +*/ +// diff --git a/google/cloud/ftp/quickstart/.bazelrc b/google/cloud/ftp/quickstart/.bazelrc new file mode 100644 index 0000000000000..e88672558bca1 --- /dev/null +++ b/google/cloud/ftp/quickstart/.bazelrc @@ -0,0 +1,29 @@ +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Use host-OS-specific config lines from bazelrc files. +build --enable_platform_specific_config=true + +# The project requires C++ >= 17. +build:linux --cxxopt=-std=c++17 +build:macos --cxxopt=-std=c++17 +# Protobuf and gRPC require (or soon will require) C++17 to compile the "host" +# targets, such as protoc and the grpc plugin. +build:linux --host_cxxopt=-std=c++17 +build:macos --host_cxxopt=-std=c++17 + +# Do not create the convenience links. They are inconvenient when the build +# runs inside a docker image or if one builds a quickstart and then builds +# the project separately. +build --experimental_convenience_symlinks=ignore diff --git a/google/cloud/ftp/quickstart/BUILD.bazel b/google/cloud/ftp/quickstart/BUILD.bazel new file mode 100644 index 0000000000000..970598716b39f --- /dev/null +++ b/google/cloud/ftp/quickstart/BUILD.bazel @@ -0,0 +1,25 @@ +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +licenses(["notice"]) # Apache 2.0 + +cc_binary( + name = "quickstart", + srcs = [ + "quickstart.cc", + ], + deps = [ + "@google_cloud_cpp//:ftp", + ], +) diff --git a/google/cloud/ftp/quickstart/CMakeLists.txt b/google/cloud/ftp/quickstart/CMakeLists.txt new file mode 100644 index 0000000000000..75e7c6526872d --- /dev/null +++ b/google/cloud/ftp/quickstart/CMakeLists.txt @@ -0,0 +1,35 @@ +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + +# This file shows how to use the Cloud FTP API C++ client library from a larger +# CMake project. + +cmake_minimum_required(VERSION 3.22...3.31) +project(google-cloud-cpp-ftp-quickstart CXX) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +find_package(google_cloud_cpp_ftp REQUIRED) + +# MSVC requires some additional code to select the correct runtime library +if (VCPKG_TARGET_TRIPLET MATCHES "-static$") + set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") +else () + set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>DLL") +endif () + +# Define your targets. +add_executable(quickstart quickstart.cc) +target_link_libraries(quickstart google-cloud-cpp::ftp) diff --git a/google/cloud/ftp/quickstart/Makefile b/google/cloud/ftp/quickstart/Makefile new file mode 100644 index 0000000000000..7293dec02096a --- /dev/null +++ b/google/cloud/ftp/quickstart/Makefile @@ -0,0 +1,35 @@ +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This is a minimal Makefile to show how to use the Cloud FTP API C++ client +# for developers who use make(1) as their build system. + +# The CXX, CXXFLAGS and CXXLD variables are hard-coded. These values work for +# our tests, but applications would typically make them configurable parameters. +CXX=g++ +CXXFLAGS=-std=c++17 +CXXLD=$(CXX) +BIN=. + +all: $(BIN)/quickstart + +# Configuration variables to compile and link against the Cloud FTP API C++ +# client library. +CLIENT_MODULE := google_cloud_cpp_ftp +CLIENT_CXXFLAGS := $(shell pkg-config $(CLIENT_MODULE) --cflags) +CLIENT_CXXLDFLAGS := $(shell pkg-config $(CLIENT_MODULE) --libs-only-L) +CLIENT_LIBS := $(shell pkg-config $(CLIENT_MODULE) --libs-only-l) + +$(BIN)/quickstart: quickstart.cc + $(CXXLD) $(CXXFLAGS) $(CLIENT_CXXFLAGS) $(CLIENT_CXXLDFLAGS) -o $@ $^ $(CLIENT_LIBS) diff --git a/google/cloud/ftp/quickstart/README.md b/google/cloud/ftp/quickstart/README.md new file mode 100644 index 0000000000000..c9f6261a6ff58 --- /dev/null +++ b/google/cloud/ftp/quickstart/README.md @@ -0,0 +1,135 @@ +# HOWTO: using the Cloud FTP API C++ client in your project + +This directory contains small examples showing how to use the Cloud FTP API C++ +client library in your own project. These instructions assume that you have some +experience as a C++ developer and that you have a working C++ toolchain +(compiler, linker, etc.) installed on your platform. + +- Packaging maintainers or developers who prefer to install the library in a + fixed directory (such as `/usr/local` or `/opt`) should consult the + [packaging guide](/doc/packaging.md). +- Developers who prefer using a package manager such as + [vcpkg](https://vcpkg.io), or [Conda](https://conda.io), should follow the + instructions for their package manager. +- Developers wanting to use the libraries as part of a larger CMake or Bazel + project should consult the current document. Note that there are similar + documents for each library in their corresponding directories. +- Developers wanting to compile the library just to run some examples or tests + should consult the + [building and installing](/README.md#building-and-installing) section of the + top-level README file. +- Contributors and developers to `google-cloud-cpp` should consult the guide to + [set up a development workstation][howto-setup-dev-workstation]. + +## Before you begin + +To run the quickstart examples you will need a working Google Cloud Platform +(GCP) project. + +## Configuring authentication for the C++ Client Library + +Like most Google Cloud Platform (GCP) services, Cloud FTP API requires that your +application authenticates with the service before accessing any data. If you are +not familiar with GCP authentication please take this opportunity to review the +[Authentication methods at Google][authentication-quickstart]. + +## Using with Bazel + +> :warning: If you are using Windows or macOS there are additional instructions +> at the end of this document. + +1. Install Bazel using [the instructions][bazel-install] from the `bazel.build` + website. + +1. Compile this example using Bazel: + + ```bash + cd $HOME/google-cloud-cpp/google/cloud/ftp/quickstart + bazel build ... + ``` + + Note that Bazel automatically downloads and compiles all dependencies of the + project. As it is often the case with C++ libraries, compiling these + dependencies may take several minutes. + +1. Run the example, changing the placeholder(s) to appropriate values: + + ```bash + bazel run :quickstart -- [...] + ``` + +## Using with CMake + +> :warning: If you are using Windows or macOS there are additional instructions +> at the end of this document. + +1. Install CMake. The package managers for most Linux distributions include a + package for CMake. Likewise, you can install CMake on Windows using a package + manager such as [chocolatey][choco-cmake-link], and on macOS using + [homebrew][homebrew-cmake-link]. You can also obtain the software directly + from the [cmake.org](https://cmake.org/download/). + +1. Install the dependencies with your favorite tools. As an example, if you use + [vcpkg](https://github.com/Microsoft/vcpkg.git): + + ```bash + cd $HOME/vcpkg + ./vcpkg install google-cloud-cpp[core,ftp] + ``` + + Note that, as it is often the case with C++ libraries, compiling these + dependencies may take several minutes. + +1. Configure CMake, if necessary, configure the directory where you installed + the dependencies: + + ```bash + cd $HOME/google-cloud-cpp/google/cloud/ftp/quickstart + cmake -S . -B .build -DCMAKE_TOOLCHAIN_FILE=$HOME/vcpkg/scripts/buildsystems/vcpkg.cmake + cmake --build .build + ``` + +1. Run the example, changing the placeholder(s) to appropriate values: + + ```bash + .build/quickstart [...] + ``` + +## Platform Specific Notes + +### macOS + +gRPC [requires][grpc-roots-pem-bug] an environment variable to configure the +trust store for SSL certificates, you can download and configure this using: + +```bash +curl -Lo roots.pem https://pki.google.com/roots.pem +export GRPC_DEFAULT_SSL_ROOTS_FILE_PATH="$PWD/roots.pem" +``` + +### Windows + +Bazel tends to create very long file names and paths. You may need to use a +short directory to store the build output, such as `c:\b`, and instruct Bazel to +use it via: + +```shell +bazel --output_user_root=c:\b build ... +``` + +gRPC [requires][grpc-roots-pem-bug] an environment variable to configure the +trust store for SSL certificates, you can download and configure this using: + +```console +@powershell -NoProfile -ExecutionPolicy unrestricted -Command ^ + (new-object System.Net.WebClient).Downloadfile( ^ + 'https://pki.google.com/roots.pem', 'roots.pem') +set GRPC_DEFAULT_SSL_ROOTS_FILE_PATH=%cd%\roots.pem +``` + +[authentication-quickstart]: https://cloud.google.com/docs/authentication/client-libraries "Authenticate for using client libraries" +[bazel-install]: https://docs.bazel.build/versions/main/install.html +[choco-cmake-link]: https://chocolatey.org/packages/cmake +[grpc-roots-pem-bug]: https://github.com/grpc/grpc/issues/16571 +[homebrew-cmake-link]: https://formulae.brew.sh/formula/cmake +[howto-setup-dev-workstation]: /doc/contributor/howto-guide-setup-development-workstation.md diff --git a/google/cloud/ftp/quickstart/WORKSPACE.bazel b/google/cloud/ftp/quickstart/WORKSPACE.bazel new file mode 100644 index 0000000000000..00952813423c4 --- /dev/null +++ b/google/cloud/ftp/quickstart/WORKSPACE.bazel @@ -0,0 +1,53 @@ +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# A minimal WORKSPACE file showing how to use the Cloud FTP API +# C++ client library in Bazel-based projects. +workspace(name = "qs") + +# Add the necessary Starlark functions to fetch google-cloud-cpp. +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") + +# Fetch the Google Cloud C++ libraries. +# NOTE: Update this version and SHA256 as needed. +http_archive( + name = "google_cloud_cpp", + sha256 = "d0a3a670f468ddd059ffb39780df958b3ffaca12ebcae63193072b759b95add2", + strip_prefix = "google-cloud-cpp-3.8.0", + url = "https://github.com/googleapis/google-cloud-cpp/archive/v3.8.0.tar.gz", +) + +load("@google_cloud_cpp//bazel:workspace0.bzl", "gl_cpp_workspace0") + +gl_cpp_workspace0() + +load("@google_cloud_cpp//bazel:workspace1.bzl", "gl_cpp_workspace1") + +gl_cpp_workspace1() + +load("@google_cloud_cpp//bazel:workspace2.bzl", "gl_cpp_workspace2") + +gl_cpp_workspace2() + +load("@google_cloud_cpp//bazel:workspace3.bzl", "gl_cpp_workspace3") + +gl_cpp_workspace3() + +load("@google_cloud_cpp//bazel:workspace4.bzl", "gl_cpp_workspace4") + +gl_cpp_workspace4() + +load("@google_cloud_cpp//bazel:workspace5.bzl", "gl_cpp_workspace5") + +gl_cpp_workspace5() diff --git a/google/cloud/ftp/quickstart/quickstart.cc b/google/cloud/ftp/quickstart/quickstart.cc new file mode 100644 index 0000000000000..2f3a9285925e0 --- /dev/null +++ b/google/cloud/ftp/quickstart/quickstart.cc @@ -0,0 +1,41 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//! [all] +#include "google/cloud/ftp/v1/cloud_ftp_client.h" +#include "google/cloud/location.h" +#include + +int main(int argc, char* argv[]) try { + if (argc != 2) { + std::cerr << "Usage: " << argv[0] << " project-id\n"; + return 1; + } + + auto const location = google::cloud::Location(argv[1], "-"); + + namespace ftp = ::google::cloud::ftp_v1; + auto client = ftp::CloudFtpClient(ftp::MakeCloudFtpConnectionRest()); + + for (auto const& server : client.ListServers(location.FullName())) { + if (!server) throw std::move(server).status(); + std::cout << server->DebugString() << "\n"; + } + + return 0; +} catch (google::cloud::Status const& status) { + std::cerr << "google::cloud::Status thrown: " << status << "\n"; + return 1; +} +//! [all] diff --git a/google/cloud/ftp/v1/.repo-metadata.json b/google/cloud/ftp/v1/.repo-metadata.json new file mode 100644 index 0000000000000..476b244026ee5 --- /dev/null +++ b/google/cloud/ftp/v1/.repo-metadata.json @@ -0,0 +1,14 @@ +{ + "api_id": "ftp.googleapis.com", + "api_shortname": "ftp", + "client_documentation": "https://cloud.google.com/cpp/docs/reference/ftp/latest", + "distribution_name": "google-cloud-cpp", + "issue_tracker": "https://issuetracker.google.com/issues?q=componentid:1088719%20status=open", + "language": "cpp", + "library_type": "GAPIC_AUTO", + "name_pretty": "Cloud FTP API", + "product_documentation": "https://docs.cloud.google.com/cloud-ftp", + "release_level": "stable", + "repo": "googleapis/google-cloud-cpp", + "requires_billing": true +} diff --git a/google/cloud/ftp/v1/cloud_ftp_client.cc b/google/cloud/ftp/v1/cloud_ftp_client.cc new file mode 100644 index 0000000000000..1ac0faec977cf --- /dev/null +++ b/google/cloud/ftp/v1/cloud_ftp_client.cc @@ -0,0 +1,467 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/ftp/v1/service.proto + +#include "google/cloud/ftp/v1/cloud_ftp_client.h" +#include +#include + +namespace google { +namespace cloud { +namespace ftp_v1 { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +CloudFtpClient::CloudFtpClient(std::shared_ptr connection, + Options opts) + : connection_(std::move(connection)), + options_( + internal::MergeOptions(std::move(opts), connection_->options())) {} +CloudFtpClient::~CloudFtpClient() = default; + +StreamRange CloudFtpClient::ListServers( + std::string const& parent, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::ftp::v1::ListServersRequest request; + request.set_parent(parent); + return connection_->ListServers(request); +} + +StreamRange CloudFtpClient::ListServers( + google::cloud::ftp::v1::ListServersRequest request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ListServers(std::move(request)); +} + +StatusOr CloudFtpClient::GetServer( + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::ftp::v1::GetServerRequest request; + request.set_name(name); + return connection_->GetServer(request); +} + +StatusOr CloudFtpClient::GetServer( + google::cloud::ftp::v1::GetServerRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->GetServer(request); +} + +future> CloudFtpClient::CreateServer( + std::string const& parent, google::cloud::ftp::v1::Server const& server, + std::string const& server_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::ftp::v1::CreateServerRequest request; + request.set_parent(parent); + *request.mutable_server() = server; + request.set_server_id(server_id); + return connection_->CreateServer(request); +} + +StatusOr CloudFtpClient::CreateServer( + NoAwaitTag, std::string const& parent, + google::cloud::ftp::v1::Server const& server, std::string const& server_id, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::ftp::v1::CreateServerRequest request; + request.set_parent(parent); + *request.mutable_server() = server; + request.set_server_id(server_id); + return connection_->CreateServer(NoAwaitTag{}, request); +} + +future> CloudFtpClient::CreateServer( + google::cloud::ftp::v1::CreateServerRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateServer(request); +} + +StatusOr CloudFtpClient::CreateServer( + NoAwaitTag, google::cloud::ftp::v1::CreateServerRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateServer(NoAwaitTag{}, request); +} + +future> CloudFtpClient::CreateServer( + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateServer(operation); +} + +future> CloudFtpClient::UpdateServer( + google::cloud::ftp::v1::Server const& server, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::ftp::v1::UpdateServerRequest request; + *request.mutable_server() = server; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateServer(request); +} + +StatusOr CloudFtpClient::UpdateServer( + NoAwaitTag, google::cloud::ftp::v1::Server const& server, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::ftp::v1::UpdateServerRequest request; + *request.mutable_server() = server; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateServer(NoAwaitTag{}, request); +} + +future> CloudFtpClient::UpdateServer( + google::cloud::ftp::v1::UpdateServerRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateServer(request); +} + +StatusOr CloudFtpClient::UpdateServer( + NoAwaitTag, google::cloud::ftp::v1::UpdateServerRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateServer(NoAwaitTag{}, request); +} + +future> CloudFtpClient::UpdateServer( + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateServer(operation); +} + +future> +CloudFtpClient::DeleteServer(std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::ftp::v1::DeleteServerRequest request; + request.set_name(name); + return connection_->DeleteServer(request); +} + +StatusOr CloudFtpClient::DeleteServer( + NoAwaitTag, std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::ftp::v1::DeleteServerRequest request; + request.set_name(name); + return connection_->DeleteServer(NoAwaitTag{}, request); +} + +future> +CloudFtpClient::DeleteServer( + google::cloud::ftp::v1::DeleteServerRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteServer(request); +} + +StatusOr CloudFtpClient::DeleteServer( + NoAwaitTag, google::cloud::ftp::v1::DeleteServerRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteServer(NoAwaitTag{}, request); +} + +future> +CloudFtpClient::DeleteServer(google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteServer(operation); +} + +StreamRange CloudFtpClient::ListUsers( + std::string const& parent, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::ftp::v1::ListUsersRequest request; + request.set_parent(parent); + return connection_->ListUsers(request); +} + +StreamRange CloudFtpClient::ListUsers( + google::cloud::ftp::v1::ListUsersRequest request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ListUsers(std::move(request)); +} + +StatusOr CloudFtpClient::GetUser( + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::ftp::v1::GetUserRequest request; + request.set_name(name); + return connection_->GetUser(request); +} + +StatusOr CloudFtpClient::GetUser( + google::cloud::ftp::v1::GetUserRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->GetUser(request); +} + +future> CloudFtpClient::CreateUser( + std::string const& parent, google::cloud::ftp::v1::User const& user, + std::string const& user_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::ftp::v1::CreateUserRequest request; + request.set_parent(parent); + *request.mutable_user() = user; + request.set_user_id(user_id); + return connection_->CreateUser(request); +} + +StatusOr CloudFtpClient::CreateUser( + NoAwaitTag, std::string const& parent, + google::cloud::ftp::v1::User const& user, std::string const& user_id, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::ftp::v1::CreateUserRequest request; + request.set_parent(parent); + *request.mutable_user() = user; + request.set_user_id(user_id); + return connection_->CreateUser(NoAwaitTag{}, request); +} + +future> CloudFtpClient::CreateUser( + google::cloud::ftp::v1::CreateUserRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateUser(request); +} + +StatusOr CloudFtpClient::CreateUser( + NoAwaitTag, google::cloud::ftp::v1::CreateUserRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateUser(NoAwaitTag{}, request); +} + +future> CloudFtpClient::CreateUser( + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateUser(operation); +} + +future> CloudFtpClient::UpdateUser( + google::cloud::ftp::v1::User const& user, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::ftp::v1::UpdateUserRequest request; + *request.mutable_user() = user; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateUser(request); +} + +StatusOr CloudFtpClient::UpdateUser( + NoAwaitTag, google::cloud::ftp::v1::User const& user, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::ftp::v1::UpdateUserRequest request; + *request.mutable_user() = user; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateUser(NoAwaitTag{}, request); +} + +future> CloudFtpClient::UpdateUser( + google::cloud::ftp::v1::UpdateUserRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateUser(request); +} + +StatusOr CloudFtpClient::UpdateUser( + NoAwaitTag, google::cloud::ftp::v1::UpdateUserRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateUser(NoAwaitTag{}, request); +} + +future> CloudFtpClient::UpdateUser( + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateUser(operation); +} + +future> +CloudFtpClient::DeleteUser(std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::ftp::v1::DeleteUserRequest request; + request.set_name(name); + return connection_->DeleteUser(request); +} + +StatusOr CloudFtpClient::DeleteUser( + NoAwaitTag, std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::ftp::v1::DeleteUserRequest request; + request.set_name(name); + return connection_->DeleteUser(NoAwaitTag{}, request); +} + +future> +CloudFtpClient::DeleteUser( + google::cloud::ftp::v1::DeleteUserRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteUser(request); +} + +StatusOr CloudFtpClient::DeleteUser( + NoAwaitTag, google::cloud::ftp::v1::DeleteUserRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteUser(NoAwaitTag{}, request); +} + +future> +CloudFtpClient::DeleteUser(google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteUser(operation); +} + +future> CloudFtpClient::StartServer( + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::ftp::v1::StartServerRequest request; + request.set_name(name); + return connection_->StartServer(request); +} + +StatusOr CloudFtpClient::StartServer( + NoAwaitTag, std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::ftp::v1::StartServerRequest request; + request.set_name(name); + return connection_->StartServer(NoAwaitTag{}, request); +} + +future> CloudFtpClient::StartServer( + google::cloud::ftp::v1::StartServerRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartServer(request); +} + +StatusOr CloudFtpClient::StartServer( + NoAwaitTag, google::cloud::ftp::v1::StartServerRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartServer(NoAwaitTag{}, request); +} + +future> CloudFtpClient::StartServer( + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartServer(operation); +} + +future> CloudFtpClient::StopServer( + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::ftp::v1::StopServerRequest request; + request.set_name(name); + return connection_->StopServer(request); +} + +StatusOr CloudFtpClient::StopServer( + NoAwaitTag, std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::ftp::v1::StopServerRequest request; + request.set_name(name); + return connection_->StopServer(NoAwaitTag{}, request); +} + +future> CloudFtpClient::StopServer( + google::cloud::ftp::v1::StopServerRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopServer(request); +} + +StatusOr CloudFtpClient::StopServer( + NoAwaitTag, google::cloud::ftp::v1::StopServerRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopServer(NoAwaitTag{}, request); +} + +future> CloudFtpClient::StopServer( + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopServer(operation); +} + +StreamRange CloudFtpClient::ListLocations( + google::cloud::location::ListLocationsRequest request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ListLocations(std::move(request)); +} + +StatusOr CloudFtpClient::GetLocation( + google::cloud::location::GetLocationRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->GetLocation(request); +} + +StreamRange CloudFtpClient::ListOperations( + std::string const& name, std::string const& filter, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::longrunning::ListOperationsRequest request; + request.set_name(name); + request.set_filter(filter); + return connection_->ListOperations(request); +} + +StreamRange CloudFtpClient::ListOperations( + google::longrunning::ListOperationsRequest request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ListOperations(std::move(request)); +} + +StatusOr CloudFtpClient::GetOperation( + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::longrunning::GetOperationRequest request; + request.set_name(name); + return connection_->GetOperation(request); +} + +StatusOr CloudFtpClient::GetOperation( + google::longrunning::GetOperationRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->GetOperation(request); +} + +Status CloudFtpClient::DeleteOperation(std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::longrunning::DeleteOperationRequest request; + request.set_name(name); + return connection_->DeleteOperation(request); +} + +Status CloudFtpClient::DeleteOperation( + google::longrunning::DeleteOperationRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteOperation(request); +} + +Status CloudFtpClient::CancelOperation(std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::longrunning::CancelOperationRequest request; + request.set_name(name); + return connection_->CancelOperation(request); +} + +Status CloudFtpClient::CancelOperation( + google::longrunning::CancelOperationRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CancelOperation(request); +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace ftp_v1 +} // namespace cloud +} // namespace google diff --git a/google/cloud/ftp/v1/cloud_ftp_client.h b/google/cloud/ftp/v1/cloud_ftp_client.h new file mode 100644 index 0000000000000..99b70a66761f6 --- /dev/null +++ b/google/cloud/ftp/v1/cloud_ftp_client.h @@ -0,0 +1,1615 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/ftp/v1/service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_CLOUD_FTP_CLIENT_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_CLOUD_FTP_CLIENT_H + +#include "google/cloud/ftp/v1/cloud_ftp_rest_connection.h" +#include "google/cloud/future.h" +#include "google/cloud/no_await_tag.h" +#include "google/cloud/options.h" +#include "google/cloud/polling_policy.h" +#include "google/cloud/status_or.h" +#include "google/cloud/version.h" +#include "google/longrunning/operations.grpc.pb.h" +#include +#include +#include + +namespace google { +namespace cloud { +namespace ftp_v1 { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +/// +/// Service describing handlers for resources +/// +/// @par Equality +/// +/// Instances of this class created via copy-construction or copy-assignment +/// always compare equal. Instances created with equal +/// `std::shared_ptr<*Connection>` objects compare equal. Objects that compare +/// equal share the same underlying resources. +/// +/// @par Performance +/// +/// Creating a new instance of this class is a relatively expensive operation, +/// new objects establish new connections to the service. In contrast, +/// copy-construction, move-construction, and the corresponding assignment +/// operations are relatively efficient as the copies share all underlying +/// resources. +/// +/// @par Thread Safety +/// +/// Concurrent access to different instances of this class, even if they compare +/// equal, is guaranteed to work. Two or more threads operating on the same +/// instance of this class is not guaranteed to work. Since copy-construction +/// and move-construction is a relatively efficient operation, consider using +/// such a copy when using this class from multiple threads. +/// +class CloudFtpClient { + public: + explicit CloudFtpClient(std::shared_ptr connection, + Options opts = {}); + ~CloudFtpClient(); + + ///@{ + /// @name Copy and move support + CloudFtpClient(CloudFtpClient const&) = default; + CloudFtpClient& operator=(CloudFtpClient const&) = default; + CloudFtpClient(CloudFtpClient&&) = default; + CloudFtpClient& operator=(CloudFtpClient&&) = default; + ///@} + + ///@{ + /// @name Equality + friend bool operator==(CloudFtpClient const& a, CloudFtpClient const& b) { + return a.connection_ == b.connection_; + } + friend bool operator!=(CloudFtpClient const& a, CloudFtpClient const& b) { + return !(a == b); + } + ///@} + + // clang-format off + /// + /// Lists Servers in a given project and location. + /// + /// @param parent Required. Parent value for ListServersRequest + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return a [StreamRange](@ref google::cloud::StreamRange) + /// to iterate of the results. See the documentation of this type for + /// details. In brief, this class has `begin()` and `end()` member + /// functions returning a iterator class meeting the + /// [input iterator requirements]. The value type for this iterator is a + /// [`StatusOr`] as the iteration may fail even after some values are + /// retrieved successfully, for example, if there is a network disconnect. + /// An empty set of results does not indicate an error, it indicates + /// that there are no resources meeting the request criteria. + /// On a successful iteration the `StatusOr` contains elements of type + /// [google.cloud.ftp.v1.Server], or rather, + /// the C++ class generated by Protobuf from that type. Please consult the + /// Protobuf documentation for details on the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.ftp.v1.ListServersRequest]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L429} + /// [google.cloud.ftp.v1.Server]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L337} + /// + // clang-format on + StreamRange ListServers( + std::string const& parent, Options opts = {}); + + // clang-format off + /// + /// Lists Servers in a given project and location. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.ftp.v1.ListServersRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return a [StreamRange](@ref google::cloud::StreamRange) + /// to iterate of the results. See the documentation of this type for + /// details. In brief, this class has `begin()` and `end()` member + /// functions returning a iterator class meeting the + /// [input iterator requirements]. The value type for this iterator is a + /// [`StatusOr`] as the iteration may fail even after some values are + /// retrieved successfully, for example, if there is a network disconnect. + /// An empty set of results does not indicate an error, it indicates + /// that there are no resources meeting the request criteria. + /// On a successful iteration the `StatusOr` contains elements of type + /// [google.cloud.ftp.v1.Server], or rather, + /// the C++ class generated by Protobuf from that type. Please consult the + /// Protobuf documentation for details on the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.ftp.v1.ListServersRequest]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L429} + /// [google.cloud.ftp.v1.Server]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L337} + /// + // clang-format on + StreamRange ListServers( + google::cloud::ftp::v1::ListServersRequest request, Options opts = {}); + + // clang-format off + /// + /// Gets details of a single Server. + /// + /// @param name Required. Name of the resource + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.cloud.ftp.v1.Server]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.ftp.v1.GetServerRequest]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L469} + /// [google.cloud.ftp.v1.Server]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L337} + /// + // clang-format on + StatusOr GetServer(std::string const& name, + Options opts = {}); + + // clang-format off + /// + /// Gets details of a single Server. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.ftp.v1.GetServerRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.cloud.ftp.v1.Server]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.ftp.v1.GetServerRequest]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L469} + /// [google.cloud.ftp.v1.Server]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L337} + /// + // clang-format on + StatusOr GetServer( + google::cloud::ftp::v1::GetServerRequest const& request, + Options opts = {}); + + // clang-format off + /// + /// Creates a new Server in a given project and location. + /// + /// @param parent Required. Value for parent. + /// @param server Required. The resource being created + /// @param server_id Required. A unique ID for the server. Must start with a lowercase letter, + /// and end with a lowercase letter or number. Can contain lowercase letters, + /// numbers, and hyphens. Maximum length is 30 characters. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return A [`future`] that becomes satisfied when the LRO + /// ([Long Running Operation]) completes or the polling policy in effect + /// for this call is exhausted. The future is satisfied with an error if + /// the LRO completes with an error or the polling policy is exhausted. + /// In this case the [`StatusOr`] returned by the future contains the + /// error. If the LRO completes successfully the value of the future + /// contains the LRO's result. For this RPC the result is a + /// [google.cloud.ftp.v1.Server] proto message. + /// The C++ class representing this message is created by Protobuf, using + /// the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [Long Running Operation]: https://google.aip.dev/151 + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.ftp.v1.CreateServerRequest]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L481} + /// [google.cloud.ftp.v1.Server]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L337} + /// + // clang-format on + future> CreateServer( + std::string const& parent, google::cloud::ftp::v1::Server const& server, + std::string const& server_id, Options opts = {}); + + // clang-format off + /// + /// @copybrief CreateServer + /// + /// Specifying the [`NoAwaitTag`] immediately returns the + /// [`google::longrunning::Operation`] that corresponds to the Long Running + /// Operation that has been started. No polling for operation status occurs. + /// + /// [`NoAwaitTag`]: @ref google::cloud::NoAwaitTag + /// + // clang-format on + StatusOr CreateServer( + NoAwaitTag, std::string const& parent, + google::cloud::ftp::v1::Server const& server, + std::string const& server_id, Options opts = {}); + + // clang-format off + /// + /// Creates a new Server in a given project and location. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.ftp.v1.CreateServerRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return A [`future`] that becomes satisfied when the LRO + /// ([Long Running Operation]) completes or the polling policy in effect + /// for this call is exhausted. The future is satisfied with an error if + /// the LRO completes with an error or the polling policy is exhausted. + /// In this case the [`StatusOr`] returned by the future contains the + /// error. If the LRO completes successfully the value of the future + /// contains the LRO's result. For this RPC the result is a + /// [google.cloud.ftp.v1.Server] proto message. + /// The C++ class representing this message is created by Protobuf, using + /// the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [Long Running Operation]: https://google.aip.dev/151 + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.ftp.v1.CreateServerRequest]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L481} + /// [google.cloud.ftp.v1.Server]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L337} + /// + // clang-format on + future> CreateServer( + google::cloud::ftp::v1::CreateServerRequest const& request, + Options opts = {}); + + // clang-format off + /// + /// @copybrief CreateServer + /// + /// Specifying the [`NoAwaitTag`] immediately returns the + /// [`google::longrunning::Operation`] that corresponds to the Long Running + /// Operation that has been started. No polling for operation status occurs. + /// + /// [`NoAwaitTag`]: @ref google::cloud::NoAwaitTag + /// + // clang-format on + StatusOr CreateServer( + NoAwaitTag, google::cloud::ftp::v1::CreateServerRequest const& request, + Options opts = {}); + + // clang-format off + /// + /// @copybrief CreateServer + /// + /// This method accepts a `google::longrunning::Operation` that corresponds + /// to a previously started Long Running Operation (LRO) and polls the status + /// of the LRO in the background. + /// + // clang-format on + future> CreateServer( + google::longrunning::Operation const& operation, Options opts = {}); + + // clang-format off + /// + /// Updates the parameters of a single Server. + /// + /// @param server Required. The resource being updated + /// @param update_mask Optional. Field mask is used to specify the fields to be overwritten in the + /// Server resource by the update. + /// The fields specified in the update_mask are relative to the resource, not + /// the full request. A field will be overwritten if it is in the mask. If the + /// user does not provide a mask then all fields present in the request will be + /// overwritten. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return A [`future`] that becomes satisfied when the LRO + /// ([Long Running Operation]) completes or the polling policy in effect + /// for this call is exhausted. The future is satisfied with an error if + /// the LRO completes with an error or the polling policy is exhausted. + /// In this case the [`StatusOr`] returned by the future contains the + /// error. If the LRO completes successfully the value of the future + /// contains the LRO's result. For this RPC the result is a + /// [google.cloud.ftp.v1.Server] proto message. + /// The C++ class representing this message is created by Protobuf, using + /// the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [Long Running Operation]: https://google.aip.dev/151 + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.ftp.v1.Server]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L337} + /// [google.cloud.ftp.v1.UpdateServerRequest]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L518} + /// + // clang-format on + future> UpdateServer( + google::cloud::ftp::v1::Server const& server, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + + // clang-format off + /// + /// @copybrief UpdateServer + /// + /// Specifying the [`NoAwaitTag`] immediately returns the + /// [`google::longrunning::Operation`] that corresponds to the Long Running + /// Operation that has been started. No polling for operation status occurs. + /// + /// [`NoAwaitTag`]: @ref google::cloud::NoAwaitTag + /// + // clang-format on + StatusOr UpdateServer( + NoAwaitTag, google::cloud::ftp::v1::Server const& server, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + + // clang-format off + /// + /// Updates the parameters of a single Server. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.ftp.v1.UpdateServerRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return A [`future`] that becomes satisfied when the LRO + /// ([Long Running Operation]) completes or the polling policy in effect + /// for this call is exhausted. The future is satisfied with an error if + /// the LRO completes with an error or the polling policy is exhausted. + /// In this case the [`StatusOr`] returned by the future contains the + /// error. If the LRO completes successfully the value of the future + /// contains the LRO's result. For this RPC the result is a + /// [google.cloud.ftp.v1.Server] proto message. + /// The C++ class representing this message is created by Protobuf, using + /// the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [Long Running Operation]: https://google.aip.dev/151 + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.ftp.v1.Server]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L337} + /// [google.cloud.ftp.v1.UpdateServerRequest]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L518} + /// + // clang-format on + future> UpdateServer( + google::cloud::ftp::v1::UpdateServerRequest const& request, + Options opts = {}); + + // clang-format off + /// + /// @copybrief UpdateServer + /// + /// Specifying the [`NoAwaitTag`] immediately returns the + /// [`google::longrunning::Operation`] that corresponds to the Long Running + /// Operation that has been started. No polling for operation status occurs. + /// + /// [`NoAwaitTag`]: @ref google::cloud::NoAwaitTag + /// + // clang-format on + StatusOr UpdateServer( + NoAwaitTag, google::cloud::ftp::v1::UpdateServerRequest const& request, + Options opts = {}); + + // clang-format off + /// + /// @copybrief UpdateServer + /// + /// This method accepts a `google::longrunning::Operation` that corresponds + /// to a previously started Long Running Operation (LRO) and polls the status + /// of the LRO in the background. + /// + // clang-format on + future> UpdateServer( + google::longrunning::Operation const& operation, Options opts = {}); + + // clang-format off + /// + /// Deletes a single Server. + /// + /// @param name Required. Name of the resource + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return A [`future`] that becomes satisfied when the LRO + /// ([Long Running Operation]) completes or the polling policy in effect + /// for this call is exhausted. The future is satisfied with an error if + /// the LRO completes with an error or the polling policy is exhausted. + /// In this case the [`StatusOr`] returned by the future contains the + /// error. If the LRO completes successfully the value of the future + /// contains the LRO's result. For this RPC the result is a + /// [google.cloud.ftp.v1.OperationMetadata] proto message. + /// The C++ class representing this message is created by Protobuf, using + /// the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [Long Running Operation]: https://google.aip.dev/151 + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.ftp.v1.DeleteServerRequest]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L555} + /// [google.cloud.ftp.v1.OperationMetadata]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L826} + /// + // clang-format on + future> DeleteServer( + std::string const& name, Options opts = {}); + + // clang-format off + /// + /// @copybrief DeleteServer + /// + /// Specifying the [`NoAwaitTag`] immediately returns the + /// [`google::longrunning::Operation`] that corresponds to the Long Running + /// Operation that has been started. No polling for operation status occurs. + /// + /// [`NoAwaitTag`]: @ref google::cloud::NoAwaitTag + /// + // clang-format on + StatusOr DeleteServer(NoAwaitTag, + std::string const& name, + Options opts = {}); + + // clang-format off + /// + /// Deletes a single Server. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.ftp.v1.DeleteServerRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return A [`future`] that becomes satisfied when the LRO + /// ([Long Running Operation]) completes or the polling policy in effect + /// for this call is exhausted. The future is satisfied with an error if + /// the LRO completes with an error or the polling policy is exhausted. + /// In this case the [`StatusOr`] returned by the future contains the + /// error. If the LRO completes successfully the value of the future + /// contains the LRO's result. For this RPC the result is a + /// [google.cloud.ftp.v1.OperationMetadata] proto message. + /// The C++ class representing this message is created by Protobuf, using + /// the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [Long Running Operation]: https://google.aip.dev/151 + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.ftp.v1.DeleteServerRequest]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L555} + /// [google.cloud.ftp.v1.OperationMetadata]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L826} + /// + // clang-format on + future> DeleteServer( + google::cloud::ftp::v1::DeleteServerRequest const& request, + Options opts = {}); + + // clang-format off + /// + /// @copybrief DeleteServer + /// + /// Specifying the [`NoAwaitTag`] immediately returns the + /// [`google::longrunning::Operation`] that corresponds to the Long Running + /// Operation that has been started. No polling for operation status occurs. + /// + /// [`NoAwaitTag`]: @ref google::cloud::NoAwaitTag + /// + // clang-format on + StatusOr DeleteServer( + NoAwaitTag, google::cloud::ftp::v1::DeleteServerRequest const& request, + Options opts = {}); + + // clang-format off + /// + /// @copybrief DeleteServer + /// + /// This method accepts a `google::longrunning::Operation` that corresponds + /// to a previously started Long Running Operation (LRO) and polls the status + /// of the LRO in the background. + /// + // clang-format on + future> DeleteServer( + google::longrunning::Operation const& operation, Options opts = {}); + + // clang-format off + /// + /// Lists Users in a given project and location. + /// + /// @param parent Required. Parent value for ListUsersRequest + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return a [StreamRange](@ref google::cloud::StreamRange) + /// to iterate of the results. See the documentation of this type for + /// details. In brief, this class has `begin()` and `end()` member + /// functions returning a iterator class meeting the + /// [input iterator requirements]. The value type for this iterator is a + /// [`StatusOr`] as the iteration may fail even after some values are + /// retrieved successfully, for example, if there is a network disconnect. + /// An empty set of results does not indicate an error, it indicates + /// that there are no resources meeting the request criteria. + /// On a successful iteration the `StatusOr` contains elements of type + /// [google.cloud.ftp.v1.User], or rather, + /// the C++ class generated by Protobuf from that type. Please consult the + /// Protobuf documentation for details on the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.ftp.v1.ListUsersRequest]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L672} + /// [google.cloud.ftp.v1.User]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L607} + /// + // clang-format on + StreamRange ListUsers(std::string const& parent, + Options opts = {}); + + // clang-format off + /// + /// Lists Users in a given project and location. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.ftp.v1.ListUsersRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return a [StreamRange](@ref google::cloud::StreamRange) + /// to iterate of the results. See the documentation of this type for + /// details. In brief, this class has `begin()` and `end()` member + /// functions returning a iterator class meeting the + /// [input iterator requirements]. The value type for this iterator is a + /// [`StatusOr`] as the iteration may fail even after some values are + /// retrieved successfully, for example, if there is a network disconnect. + /// An empty set of results does not indicate an error, it indicates + /// that there are no resources meeting the request criteria. + /// On a successful iteration the `StatusOr` contains elements of type + /// [google.cloud.ftp.v1.User], or rather, + /// the C++ class generated by Protobuf from that type. Please consult the + /// Protobuf documentation for details on the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.ftp.v1.ListUsersRequest]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L672} + /// [google.cloud.ftp.v1.User]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L607} + /// + // clang-format on + StreamRange ListUsers( + google::cloud::ftp::v1::ListUsersRequest request, Options opts = {}); + + // clang-format off + /// + /// Gets details of a single User. + /// + /// @param name Required. Name of the resource + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.cloud.ftp.v1.User]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.ftp.v1.GetUserRequest]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L711} + /// [google.cloud.ftp.v1.User]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L607} + /// + // clang-format on + StatusOr GetUser(std::string const& name, + Options opts = {}); + + // clang-format off + /// + /// Gets details of a single User. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.ftp.v1.GetUserRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.cloud.ftp.v1.User]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.ftp.v1.GetUserRequest]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L711} + /// [google.cloud.ftp.v1.User]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L607} + /// + // clang-format on + StatusOr GetUser( + google::cloud::ftp::v1::GetUserRequest const& request, Options opts = {}); + + // clang-format off + /// + /// Creates a new User in a given project and location and Server. + /// + /// @param parent Required. Value for parent. + /// @param user Required. The resource being created + /// @param user_id Required. A unique user ID for the SFTP user. The user ID must start with a + /// lowercase letter and can include lowercase letters, numbers, or hyphens. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return A [`future`] that becomes satisfied when the LRO + /// ([Long Running Operation]) completes or the polling policy in effect + /// for this call is exhausted. The future is satisfied with an error if + /// the LRO completes with an error or the polling policy is exhausted. + /// In this case the [`StatusOr`] returned by the future contains the + /// error. If the LRO completes successfully the value of the future + /// contains the LRO's result. For this RPC the result is a + /// [google.cloud.ftp.v1.User] proto message. + /// The C++ class representing this message is created by Protobuf, using + /// the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [Long Running Operation]: https://google.aip.dev/151 + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.ftp.v1.CreateUserRequest]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L723} + /// [google.cloud.ftp.v1.User]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L607} + /// + // clang-format on + future> CreateUser( + std::string const& parent, google::cloud::ftp::v1::User const& user, + std::string const& user_id, Options opts = {}); + + // clang-format off + /// + /// @copybrief CreateUser + /// + /// Specifying the [`NoAwaitTag`] immediately returns the + /// [`google::longrunning::Operation`] that corresponds to the Long Running + /// Operation that has been started. No polling for operation status occurs. + /// + /// [`NoAwaitTag`]: @ref google::cloud::NoAwaitTag + /// + // clang-format on + StatusOr CreateUser( + NoAwaitTag, std::string const& parent, + google::cloud::ftp::v1::User const& user, std::string const& user_id, + Options opts = {}); + + // clang-format off + /// + /// Creates a new User in a given project and location and Server. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.ftp.v1.CreateUserRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return A [`future`] that becomes satisfied when the LRO + /// ([Long Running Operation]) completes or the polling policy in effect + /// for this call is exhausted. The future is satisfied with an error if + /// the LRO completes with an error or the polling policy is exhausted. + /// In this case the [`StatusOr`] returned by the future contains the + /// error. If the LRO completes successfully the value of the future + /// contains the LRO's result. For this RPC the result is a + /// [google.cloud.ftp.v1.User] proto message. + /// The C++ class representing this message is created by Protobuf, using + /// the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [Long Running Operation]: https://google.aip.dev/151 + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.ftp.v1.CreateUserRequest]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L723} + /// [google.cloud.ftp.v1.User]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L607} + /// + // clang-format on + future> CreateUser( + google::cloud::ftp::v1::CreateUserRequest const& request, + Options opts = {}); + + // clang-format off + /// + /// @copybrief CreateUser + /// + /// Specifying the [`NoAwaitTag`] immediately returns the + /// [`google::longrunning::Operation`] that corresponds to the Long Running + /// Operation that has been started. No polling for operation status occurs. + /// + /// [`NoAwaitTag`]: @ref google::cloud::NoAwaitTag + /// + // clang-format on + StatusOr CreateUser( + NoAwaitTag, google::cloud::ftp::v1::CreateUserRequest const& request, + Options opts = {}); + + // clang-format off + /// + /// @copybrief CreateUser + /// + /// This method accepts a `google::longrunning::Operation` that corresponds + /// to a previously started Long Running Operation (LRO) and polls the status + /// of the LRO in the background. + /// + // clang-format on + future> CreateUser( + google::longrunning::Operation const& operation, Options opts = {}); + + // clang-format off + /// + /// Updates the parameters of a single User. + /// + /// @param user Required. The resource being updated + /// @param update_mask Optional. Field mask is used to specify the fields to be overwritten in the + /// User resource by the update. + /// The fields specified in the update_mask are relative to the resource, not + /// the full request. A field will be overwritten if it is in the mask. If the + /// user does not provide a mask then all fields present in the request will be + /// overwritten. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return A [`future`] that becomes satisfied when the LRO + /// ([Long Running Operation]) completes or the polling policy in effect + /// for this call is exhausted. The future is satisfied with an error if + /// the LRO completes with an error or the polling policy is exhausted. + /// In this case the [`StatusOr`] returned by the future contains the + /// error. If the LRO completes successfully the value of the future + /// contains the LRO's result. For this RPC the result is a + /// [google.cloud.ftp.v1.User] proto message. + /// The C++ class representing this message is created by Protobuf, using + /// the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [Long Running Operation]: https://google.aip.dev/151 + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.ftp.v1.UpdateUserRequest]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L757} + /// [google.cloud.ftp.v1.User]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L607} + /// + // clang-format on + future> UpdateUser( + google::cloud::ftp::v1::User const& user, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + + // clang-format off + /// + /// @copybrief UpdateUser + /// + /// Specifying the [`NoAwaitTag`] immediately returns the + /// [`google::longrunning::Operation`] that corresponds to the Long Running + /// Operation that has been started. No polling for operation status occurs. + /// + /// [`NoAwaitTag`]: @ref google::cloud::NoAwaitTag + /// + // clang-format on + StatusOr UpdateUser( + NoAwaitTag, google::cloud::ftp::v1::User const& user, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + + // clang-format off + /// + /// Updates the parameters of a single User. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.ftp.v1.UpdateUserRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return A [`future`] that becomes satisfied when the LRO + /// ([Long Running Operation]) completes or the polling policy in effect + /// for this call is exhausted. The future is satisfied with an error if + /// the LRO completes with an error or the polling policy is exhausted. + /// In this case the [`StatusOr`] returned by the future contains the + /// error. If the LRO completes successfully the value of the future + /// contains the LRO's result. For this RPC the result is a + /// [google.cloud.ftp.v1.User] proto message. + /// The C++ class representing this message is created by Protobuf, using + /// the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [Long Running Operation]: https://google.aip.dev/151 + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.ftp.v1.UpdateUserRequest]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L757} + /// [google.cloud.ftp.v1.User]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L607} + /// + // clang-format on + future> UpdateUser( + google::cloud::ftp::v1::UpdateUserRequest const& request, + Options opts = {}); + + // clang-format off + /// + /// @copybrief UpdateUser + /// + /// Specifying the [`NoAwaitTag`] immediately returns the + /// [`google::longrunning::Operation`] that corresponds to the Long Running + /// Operation that has been started. No polling for operation status occurs. + /// + /// [`NoAwaitTag`]: @ref google::cloud::NoAwaitTag + /// + // clang-format on + StatusOr UpdateUser( + NoAwaitTag, google::cloud::ftp::v1::UpdateUserRequest const& request, + Options opts = {}); + + // clang-format off + /// + /// @copybrief UpdateUser + /// + /// This method accepts a `google::longrunning::Operation` that corresponds + /// to a previously started Long Running Operation (LRO) and polls the status + /// of the LRO in the background. + /// + // clang-format on + future> UpdateUser( + google::longrunning::Operation const& operation, Options opts = {}); + + // clang-format off + /// + /// Deletes a single User. + /// + /// @param name Required. Name of the resource + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return A [`future`] that becomes satisfied when the LRO + /// ([Long Running Operation]) completes or the polling policy in effect + /// for this call is exhausted. The future is satisfied with an error if + /// the LRO completes with an error or the polling policy is exhausted. + /// In this case the [`StatusOr`] returned by the future contains the + /// error. If the LRO completes successfully the value of the future + /// contains the LRO's result. For this RPC the result is a + /// [google.cloud.ftp.v1.OperationMetadata] proto message. + /// The C++ class representing this message is created by Protobuf, using + /// the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [Long Running Operation]: https://google.aip.dev/151 + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.ftp.v1.DeleteUserRequest]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L772} + /// [google.cloud.ftp.v1.OperationMetadata]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L826} + /// + // clang-format on + future> DeleteUser( + std::string const& name, Options opts = {}); + + // clang-format off + /// + /// @copybrief DeleteUser + /// + /// Specifying the [`NoAwaitTag`] immediately returns the + /// [`google::longrunning::Operation`] that corresponds to the Long Running + /// Operation that has been started. No polling for operation status occurs. + /// + /// [`NoAwaitTag`]: @ref google::cloud::NoAwaitTag + /// + // clang-format on + StatusOr DeleteUser(NoAwaitTag, + std::string const& name, + Options opts = {}); + + // clang-format off + /// + /// Deletes a single User. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.ftp.v1.DeleteUserRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return A [`future`] that becomes satisfied when the LRO + /// ([Long Running Operation]) completes or the polling policy in effect + /// for this call is exhausted. The future is satisfied with an error if + /// the LRO completes with an error or the polling policy is exhausted. + /// In this case the [`StatusOr`] returned by the future contains the + /// error. If the LRO completes successfully the value of the future + /// contains the LRO's result. For this RPC the result is a + /// [google.cloud.ftp.v1.OperationMetadata] proto message. + /// The C++ class representing this message is created by Protobuf, using + /// the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [Long Running Operation]: https://google.aip.dev/151 + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.ftp.v1.DeleteUserRequest]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L772} + /// [google.cloud.ftp.v1.OperationMetadata]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L826} + /// + // clang-format on + future> DeleteUser( + google::cloud::ftp::v1::DeleteUserRequest const& request, + Options opts = {}); + + // clang-format off + /// + /// @copybrief DeleteUser + /// + /// Specifying the [`NoAwaitTag`] immediately returns the + /// [`google::longrunning::Operation`] that corresponds to the Long Running + /// Operation that has been started. No polling for operation status occurs. + /// + /// [`NoAwaitTag`]: @ref google::cloud::NoAwaitTag + /// + // clang-format on + StatusOr DeleteUser( + NoAwaitTag, google::cloud::ftp::v1::DeleteUserRequest const& request, + Options opts = {}); + + // clang-format off + /// + /// @copybrief DeleteUser + /// + /// This method accepts a `google::longrunning::Operation` that corresponds + /// to a previously started Long Running Operation (LRO) and polls the status + /// of the LRO in the background. + /// + // clang-format on + future> DeleteUser( + google::longrunning::Operation const& operation, Options opts = {}); + + // clang-format off + /// + /// Starts a stopping/stopped Server. + /// + /// @param name Required. Name of the resource + /// Format: `projects/{project}/locations/{location}/servers/{server}` + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return A [`future`] that becomes satisfied when the LRO + /// ([Long Running Operation]) completes or the polling policy in effect + /// for this call is exhausted. The future is satisfied with an error if + /// the LRO completes with an error or the polling policy is exhausted. + /// In this case the [`StatusOr`] returned by the future contains the + /// error. If the LRO completes successfully the value of the future + /// contains the LRO's result. For this RPC the result is a + /// [google.cloud.ftp.v1.Server] proto message. + /// The C++ class representing this message is created by Protobuf, using + /// the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [Long Running Operation]: https://google.aip.dev/151 + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.ftp.v1.Server]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L337} + /// [google.cloud.ftp.v1.StartServerRequest]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L784} + /// + // clang-format on + future> StartServer( + std::string const& name, Options opts = {}); + + // clang-format off + /// + /// @copybrief StartServer + /// + /// Specifying the [`NoAwaitTag`] immediately returns the + /// [`google::longrunning::Operation`] that corresponds to the Long Running + /// Operation that has been started. No polling for operation status occurs. + /// + /// [`NoAwaitTag`]: @ref google::cloud::NoAwaitTag + /// + // clang-format on + StatusOr StartServer(NoAwaitTag, + std::string const& name, + Options opts = {}); + + // clang-format off + /// + /// Starts a stopping/stopped Server. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.ftp.v1.StartServerRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return A [`future`] that becomes satisfied when the LRO + /// ([Long Running Operation]) completes or the polling policy in effect + /// for this call is exhausted. The future is satisfied with an error if + /// the LRO completes with an error or the polling policy is exhausted. + /// In this case the [`StatusOr`] returned by the future contains the + /// error. If the LRO completes successfully the value of the future + /// contains the LRO's result. For this RPC the result is a + /// [google.cloud.ftp.v1.Server] proto message. + /// The C++ class representing this message is created by Protobuf, using + /// the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [Long Running Operation]: https://google.aip.dev/151 + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.ftp.v1.Server]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L337} + /// [google.cloud.ftp.v1.StartServerRequest]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L784} + /// + // clang-format on + future> StartServer( + google::cloud::ftp::v1::StartServerRequest const& request, + Options opts = {}); + + // clang-format off + /// + /// @copybrief StartServer + /// + /// Specifying the [`NoAwaitTag`] immediately returns the + /// [`google::longrunning::Operation`] that corresponds to the Long Running + /// Operation that has been started. No polling for operation status occurs. + /// + /// [`NoAwaitTag`]: @ref google::cloud::NoAwaitTag + /// + // clang-format on + StatusOr StartServer( + NoAwaitTag, google::cloud::ftp::v1::StartServerRequest const& request, + Options opts = {}); + + // clang-format off + /// + /// @copybrief StartServer + /// + /// This method accepts a `google::longrunning::Operation` that corresponds + /// to a previously started Long Running Operation (LRO) and polls the status + /// of the LRO in the background. + /// + // clang-format on + future> StartServer( + google::longrunning::Operation const& operation, Options opts = {}); + + // clang-format off + /// + /// Stops an active Server. + /// + /// @param name Required. Name of the resource. + /// Format: `projects/{project}/locations/{location}/servers/{server}` + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return A [`future`] that becomes satisfied when the LRO + /// ([Long Running Operation]) completes or the polling policy in effect + /// for this call is exhausted. The future is satisfied with an error if + /// the LRO completes with an error or the polling policy is exhausted. + /// In this case the [`StatusOr`] returned by the future contains the + /// error. If the LRO completes successfully the value of the future + /// contains the LRO's result. For this RPC the result is a + /// [google.cloud.ftp.v1.Server] proto message. + /// The C++ class representing this message is created by Protobuf, using + /// the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [Long Running Operation]: https://google.aip.dev/151 + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.ftp.v1.Server]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L337} + /// [google.cloud.ftp.v1.StopServerRequest]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L794} + /// + // clang-format on + future> StopServer( + std::string const& name, Options opts = {}); + + // clang-format off + /// + /// @copybrief StopServer + /// + /// Specifying the [`NoAwaitTag`] immediately returns the + /// [`google::longrunning::Operation`] that corresponds to the Long Running + /// Operation that has been started. No polling for operation status occurs. + /// + /// [`NoAwaitTag`]: @ref google::cloud::NoAwaitTag + /// + // clang-format on + StatusOr StopServer(NoAwaitTag, + std::string const& name, + Options opts = {}); + + // clang-format off + /// + /// Stops an active Server. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.ftp.v1.StopServerRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return A [`future`] that becomes satisfied when the LRO + /// ([Long Running Operation]) completes or the polling policy in effect + /// for this call is exhausted. The future is satisfied with an error if + /// the LRO completes with an error or the polling policy is exhausted. + /// In this case the [`StatusOr`] returned by the future contains the + /// error. If the LRO completes successfully the value of the future + /// contains the LRO's result. For this RPC the result is a + /// [google.cloud.ftp.v1.Server] proto message. + /// The C++ class representing this message is created by Protobuf, using + /// the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [Long Running Operation]: https://google.aip.dev/151 + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.ftp.v1.Server]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L337} + /// [google.cloud.ftp.v1.StopServerRequest]: @googleapis_reference_link{google/cloud/ftp/v1/service.proto#L794} + /// + // clang-format on + future> StopServer( + google::cloud::ftp::v1::StopServerRequest const& request, + Options opts = {}); + + // clang-format off + /// + /// @copybrief StopServer + /// + /// Specifying the [`NoAwaitTag`] immediately returns the + /// [`google::longrunning::Operation`] that corresponds to the Long Running + /// Operation that has been started. No polling for operation status occurs. + /// + /// [`NoAwaitTag`]: @ref google::cloud::NoAwaitTag + /// + // clang-format on + StatusOr StopServer( + NoAwaitTag, google::cloud::ftp::v1::StopServerRequest const& request, + Options opts = {}); + + // clang-format off + /// + /// @copybrief StopServer + /// + /// This method accepts a `google::longrunning::Operation` that corresponds + /// to a previously started Long Running Operation (LRO) and polls the status + /// of the LRO in the background. + /// + // clang-format on + future> StopServer( + google::longrunning::Operation const& operation, Options opts = {}); + + // clang-format off + /// + /// Lists information about the supported locations for this service. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.location.ListLocationsRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return a [StreamRange](@ref google::cloud::StreamRange) + /// to iterate of the results. See the documentation of this type for + /// details. In brief, this class has `begin()` and `end()` member + /// functions returning a iterator class meeting the + /// [input iterator requirements]. The value type for this iterator is a + /// [`StatusOr`] as the iteration may fail even after some values are + /// retrieved successfully, for example, if there is a network disconnect. + /// An empty set of results does not indicate an error, it indicates + /// that there are no resources meeting the request criteria. + /// On a successful iteration the `StatusOr` contains elements of type + /// [google.cloud.location.Location], or rather, + /// the C++ class generated by Protobuf from that type. Please consult the + /// Protobuf documentation for details on the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.location.ListLocationsRequest]: @googleapis_reference_link{google/cloud/location/locations.proto#L58} + /// [google.cloud.location.Location]: @googleapis_reference_link{google/cloud/location/locations.proto#L88} + /// + // clang-format on + StreamRange ListLocations( + google::cloud::location::ListLocationsRequest request, Options opts = {}); + + // clang-format off + /// + /// Gets information about a location. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.location.GetLocationRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.cloud.location.Location]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.location.GetLocationRequest]: @googleapis_reference_link{google/cloud/location/locations.proto#L82} + /// [google.cloud.location.Location]: @googleapis_reference_link{google/cloud/location/locations.proto#L88} + /// + // clang-format on + StatusOr GetLocation( + google::cloud::location::GetLocationRequest const& request, + Options opts = {}); + + // clang-format off + /// + /// Lists operations that match the specified filter in the request. If the + /// server doesn't support this method, it returns `UNIMPLEMENTED`. + /// + /// @param name The name of the operation's parent resource. + /// @param filter The standard list filter. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return a [StreamRange](@ref google::cloud::StreamRange) + /// to iterate of the results. See the documentation of this type for + /// details. In brief, this class has `begin()` and `end()` member + /// functions returning a iterator class meeting the + /// [input iterator requirements]. The value type for this iterator is a + /// [`StatusOr`] as the iteration may fail even after some values are + /// retrieved successfully, for example, if there is a network disconnect. + /// An empty set of results does not indicate an error, it indicates + /// that there are no resources meeting the request criteria. + /// On a successful iteration the `StatusOr` contains elements of type + /// [google.longrunning.Operation], or rather, + /// the C++ class generated by Protobuf from that type. Please consult the + /// Protobuf documentation for details on the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.longrunning.ListOperationsRequest]: @googleapis_reference_link{google/longrunning/operations.proto#L167} + /// [google.longrunning.Operation]: @googleapis_reference_link{google/longrunning/operations.proto#L121} + /// + // clang-format on + StreamRange ListOperations( + std::string const& name, std::string const& filter, Options opts = {}); + + // clang-format off + /// + /// Lists operations that match the specified filter in the request. If the + /// server doesn't support this method, it returns `UNIMPLEMENTED`. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.longrunning.ListOperationsRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return a [StreamRange](@ref google::cloud::StreamRange) + /// to iterate of the results. See the documentation of this type for + /// details. In brief, this class has `begin()` and `end()` member + /// functions returning a iterator class meeting the + /// [input iterator requirements]. The value type for this iterator is a + /// [`StatusOr`] as the iteration may fail even after some values are + /// retrieved successfully, for example, if there is a network disconnect. + /// An empty set of results does not indicate an error, it indicates + /// that there are no resources meeting the request criteria. + /// On a successful iteration the `StatusOr` contains elements of type + /// [google.longrunning.Operation], or rather, + /// the C++ class generated by Protobuf from that type. Please consult the + /// Protobuf documentation for details on the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.longrunning.ListOperationsRequest]: @googleapis_reference_link{google/longrunning/operations.proto#L167} + /// [google.longrunning.Operation]: @googleapis_reference_link{google/longrunning/operations.proto#L121} + /// + // clang-format on + StreamRange ListOperations( + google::longrunning::ListOperationsRequest request, Options opts = {}); + + // clang-format off + /// + /// Gets the latest state of a long-running operation. Clients can use this + /// method to poll the operation result at intervals as recommended by the API + /// service. + /// + /// @param name The name of the operation resource. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.longrunning.Operation]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.longrunning.GetOperationRequest]: @googleapis_reference_link{google/longrunning/operations.proto#L160} + /// [google.longrunning.Operation]: @googleapis_reference_link{google/longrunning/operations.proto#L121} + /// + // clang-format on + StatusOr GetOperation(std::string const& name, + Options opts = {}); + + // clang-format off + /// + /// Gets the latest state of a long-running operation. Clients can use this + /// method to poll the operation result at intervals as recommended by the API + /// service. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.longrunning.GetOperationRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.longrunning.Operation]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.longrunning.GetOperationRequest]: @googleapis_reference_link{google/longrunning/operations.proto#L160} + /// [google.longrunning.Operation]: @googleapis_reference_link{google/longrunning/operations.proto#L121} + /// + // clang-format on + StatusOr GetOperation( + google::longrunning::GetOperationRequest const& request, + Options opts = {}); + + // clang-format off + /// + /// Deletes a long-running operation. This method indicates that the client is + /// no longer interested in the operation result. It does not cancel the + /// operation. If the server doesn't support this method, it returns + /// `google.rpc.Code.UNIMPLEMENTED`. + /// + /// @param name The name of the operation resource to be deleted. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return a [`Status`] object. If the request failed, the + /// status contains the details of the failure. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.longrunning.DeleteOperationRequest]: @googleapis_reference_link{google/longrunning/operations.proto#L219} + /// + // clang-format on + Status DeleteOperation(std::string const& name, Options opts = {}); + + // clang-format off + /// + /// Deletes a long-running operation. This method indicates that the client is + /// no longer interested in the operation result. It does not cancel the + /// operation. If the server doesn't support this method, it returns + /// `google.rpc.Code.UNIMPLEMENTED`. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.longrunning.DeleteOperationRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return a [`Status`] object. If the request failed, the + /// status contains the details of the failure. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.longrunning.DeleteOperationRequest]: @googleapis_reference_link{google/longrunning/operations.proto#L219} + /// + // clang-format on + Status DeleteOperation( + google::longrunning::DeleteOperationRequest const& request, + Options opts = {}); + + // clang-format off + /// + /// Starts asynchronous cancellation on a long-running operation. The server + /// makes a best effort to cancel the operation, but success is not + /// guaranteed. If the server doesn't support this method, it returns + /// `google.rpc.Code.UNIMPLEMENTED`. Clients can use + /// [Operations.GetOperation][google.longrunning.Operations.GetOperation] or + /// other methods to check whether the cancellation succeeded or whether the + /// operation completed despite cancellation. On successful cancellation, + /// the operation is not deleted; instead, it becomes an operation with + /// an [Operation.error][google.longrunning.Operation.error] value with a + /// [google.rpc.Status.code][google.rpc.Status.code] of `1`, corresponding to + /// `Code.CANCELLED`. + /// + /// @param name The name of the operation resource to be cancelled. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return a [`Status`] object. If the request failed, the + /// status contains the details of the failure. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.longrunning.CancelOperationRequest]: @googleapis_reference_link{google/longrunning/operations.proto#L212} + /// [google.longrunning.Operation.error]: @googleapis_reference_link{google/longrunning/operations.proto#L144} + /// [google.longrunning.Operations.GetOperation]: @googleapis_reference_link{google/longrunning/operations.proto#L70} + /// [google.rpc.Status.code]: @googleapis_reference_link{google/rpc/status.proto#L37} + /// + // clang-format on + Status CancelOperation(std::string const& name, Options opts = {}); + + // clang-format off + /// + /// Starts asynchronous cancellation on a long-running operation. The server + /// makes a best effort to cancel the operation, but success is not + /// guaranteed. If the server doesn't support this method, it returns + /// `google.rpc.Code.UNIMPLEMENTED`. Clients can use + /// [Operations.GetOperation][google.longrunning.Operations.GetOperation] or + /// other methods to check whether the cancellation succeeded or whether the + /// operation completed despite cancellation. On successful cancellation, + /// the operation is not deleted; instead, it becomes an operation with + /// an [Operation.error][google.longrunning.Operation.error] value with a + /// [google.rpc.Status.code][google.rpc.Status.code] of `1`, corresponding to + /// `Code.CANCELLED`. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.longrunning.CancelOperationRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return a [`Status`] object. If the request failed, the + /// status contains the details of the failure. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.longrunning.CancelOperationRequest]: @googleapis_reference_link{google/longrunning/operations.proto#L212} + /// [google.longrunning.Operation.error]: @googleapis_reference_link{google/longrunning/operations.proto#L144} + /// [google.longrunning.Operations.GetOperation]: @googleapis_reference_link{google/longrunning/operations.proto#L70} + /// [google.rpc.Status.code]: @googleapis_reference_link{google/rpc/status.proto#L37} + /// + // clang-format on + Status CancelOperation( + google::longrunning::CancelOperationRequest const& request, + Options opts = {}); + + private: + std::shared_ptr connection_; + Options options_; +}; + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace ftp_v1 +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_CLOUD_FTP_CLIENT_H diff --git a/google/cloud/ftp/v1/cloud_ftp_connection.cc b/google/cloud/ftp/v1/cloud_ftp_connection.cc new file mode 100644 index 0000000000000..27aecc4e2c8c8 --- /dev/null +++ b/google/cloud/ftp/v1/cloud_ftp_connection.cc @@ -0,0 +1,266 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/ftp/v1/service.proto + +#include "google/cloud/ftp/v1/cloud_ftp_connection.h" +#include "google/cloud/ftp/v1/cloud_ftp_options.h" +#include "google/cloud/ftp/v1/internal/cloud_ftp_option_defaults.h" +#include "google/cloud/ftp/v1/internal/cloud_ftp_tracing_connection.h" +#include "google/cloud/background_threads.h" +#include "google/cloud/common_options.h" +#include "google/cloud/credentials.h" +#include "google/cloud/grpc_options.h" +#include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/unified_grpc_credentials.h" +#include +#include + +namespace google { +namespace cloud { +namespace ftp_v1 { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +CloudFtpConnection::~CloudFtpConnection() = default; + +StreamRange CloudFtpConnection::ListServers( + google::cloud::ftp::v1:: + ListServersRequest) { // NOLINT(performance-unnecessary-value-param) + return google::cloud::internal::MakeUnimplementedPaginationRange< + StreamRange>(); +} + +StatusOr CloudFtpConnection::GetServer( + google::cloud::ftp::v1::GetServerRequest const&) { + return Status(StatusCode::kUnimplemented, "not implemented"); +} + +future> +CloudFtpConnection::CreateServer( + google::cloud::ftp::v1::CreateServerRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr CloudFtpConnection::CreateServer( + NoAwaitTag, google::cloud::ftp::v1::CreateServerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudFtpConnection::CreateServer(google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudFtpConnection::UpdateServer( + google::cloud::ftp::v1::UpdateServerRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr CloudFtpConnection::UpdateServer( + NoAwaitTag, google::cloud::ftp::v1::UpdateServerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudFtpConnection::UpdateServer(google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudFtpConnection::DeleteServer( + google::cloud::ftp::v1::DeleteServerRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr CloudFtpConnection::DeleteServer( + NoAwaitTag, google::cloud::ftp::v1::DeleteServerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudFtpConnection::DeleteServer(google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StreamRange CloudFtpConnection::ListUsers( + google::cloud::ftp::v1:: + ListUsersRequest) { // NOLINT(performance-unnecessary-value-param) + return google::cloud::internal::MakeUnimplementedPaginationRange< + StreamRange>(); +} + +StatusOr CloudFtpConnection::GetUser( + google::cloud::ftp::v1::GetUserRequest const&) { + return Status(StatusCode::kUnimplemented, "not implemented"); +} + +future> CloudFtpConnection::CreateUser( + google::cloud::ftp::v1::CreateUserRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr CloudFtpConnection::CreateUser( + NoAwaitTag, google::cloud::ftp::v1::CreateUserRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> CloudFtpConnection::CreateUser( + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> CloudFtpConnection::UpdateUser( + google::cloud::ftp::v1::UpdateUserRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr CloudFtpConnection::UpdateUser( + NoAwaitTag, google::cloud::ftp::v1::UpdateUserRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> CloudFtpConnection::UpdateUser( + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudFtpConnection::DeleteUser( + google::cloud::ftp::v1::DeleteUserRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr CloudFtpConnection::DeleteUser( + NoAwaitTag, google::cloud::ftp::v1::DeleteUserRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudFtpConnection::DeleteUser(google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudFtpConnection::StartServer( + google::cloud::ftp::v1::StartServerRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr CloudFtpConnection::StartServer( + NoAwaitTag, google::cloud::ftp::v1::StartServerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudFtpConnection::StartServer(google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> CloudFtpConnection::StopServer( + google::cloud::ftp::v1::StopServerRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr CloudFtpConnection::StopServer( + NoAwaitTag, google::cloud::ftp::v1::StopServerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> CloudFtpConnection::StopServer( + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StreamRange +CloudFtpConnection::ListLocations( + google::cloud::location:: + ListLocationsRequest) { // NOLINT(performance-unnecessary-value-param) + return google::cloud::internal::MakeUnimplementedPaginationRange< + StreamRange>(); +} + +StatusOr CloudFtpConnection::GetLocation( + google::cloud::location::GetLocationRequest const&) { + return Status(StatusCode::kUnimplemented, "not implemented"); +} + +StreamRange CloudFtpConnection::ListOperations( + google::longrunning:: + ListOperationsRequest) { // NOLINT(performance-unnecessary-value-param) + return google::cloud::internal::MakeUnimplementedPaginationRange< + StreamRange>(); +} + +StatusOr CloudFtpConnection::GetOperation( + google::longrunning::GetOperationRequest const&) { + return Status(StatusCode::kUnimplemented, "not implemented"); +} + +Status CloudFtpConnection::DeleteOperation( + google::longrunning::DeleteOperationRequest const&) { + return Status(StatusCode::kUnimplemented, "not implemented"); +} + +Status CloudFtpConnection::CancelOperation( + google::longrunning::CancelOperationRequest const&) { + return Status(StatusCode::kUnimplemented, "not implemented"); +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace ftp_v1 +} // namespace cloud +} // namespace google diff --git a/google/cloud/ftp/v1/cloud_ftp_connection.h b/google/cloud/ftp/v1/cloud_ftp_connection.h new file mode 100644 index 0000000000000..92e1bbe95cb59 --- /dev/null +++ b/google/cloud/ftp/v1/cloud_ftp_connection.h @@ -0,0 +1,294 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/ftp/v1/service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_CLOUD_FTP_CONNECTION_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_CLOUD_FTP_CONNECTION_H + +#include "google/cloud/ftp/v1/cloud_ftp_connection_idempotency_policy.h" +#include "google/cloud/ftp/v1/internal/cloud_ftp_retry_traits.h" +#include "google/cloud/ftp/v1/service.pb.h" +#include "google/cloud/backoff_policy.h" +#include "google/cloud/future.h" +#include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" +#include "google/cloud/options.h" +#include "google/cloud/polling_policy.h" +#include "google/cloud/status_or.h" +#include "google/cloud/stream_range.h" +#include "google/cloud/version.h" +#include "google/longrunning/operations.grpc.pb.h" +#include + +namespace google { +namespace cloud { +namespace ftp_v1 { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +/// The retry policy for `CloudFtpConnection`. +class CloudFtpRetryPolicy : public ::google::cloud::RetryPolicy { + public: + /// Creates a new instance of the policy, reset to the initial state. + virtual std::unique_ptr clone() const = 0; +}; + +/** + * A retry policy for `CloudFtpConnection` based on counting errors. + * + * This policy stops retrying if: + * - An RPC returns a non-transient error. + * - More than a prescribed number of transient failures is detected. + * + * In this class the following status codes are treated as transient errors: + * - [`kUnavailable`](@ref google::cloud::StatusCode) + */ +class CloudFtpLimitedErrorCountRetryPolicy : public CloudFtpRetryPolicy { + public: + /** + * Create an instance that tolerates up to @p maximum_failures transient + * errors. + * + * @note Disable the retry loop by providing an instance of this policy with + * @p maximum_failures == 0. + */ + explicit CloudFtpLimitedErrorCountRetryPolicy(int maximum_failures) + : impl_(maximum_failures) {} + + CloudFtpLimitedErrorCountRetryPolicy( + CloudFtpLimitedErrorCountRetryPolicy&& rhs) noexcept + : CloudFtpLimitedErrorCountRetryPolicy(rhs.maximum_failures()) {} + CloudFtpLimitedErrorCountRetryPolicy( + CloudFtpLimitedErrorCountRetryPolicy const& rhs) noexcept + : CloudFtpLimitedErrorCountRetryPolicy(rhs.maximum_failures()) {} + + int maximum_failures() const { return impl_.maximum_failures(); } + + bool OnFailure(Status const& status) override { + return impl_.OnFailure(status); + } + bool IsExhausted() const override { return impl_.IsExhausted(); } + bool IsPermanentFailure(Status const& status) const override { + return impl_.IsPermanentFailure(status); + } + std::unique_ptr clone() const override { + return std::make_unique( + maximum_failures()); + } + + // This is provided only for backwards compatibility. + using BaseType = CloudFtpRetryPolicy; + + private: + google::cloud::internal::LimitedErrorCountRetryPolicy< + ftp_v1_internal::CloudFtpRetryTraits> + impl_; +}; + +/** + * A retry policy for `CloudFtpConnection` based on elapsed time. + * + * This policy stops retrying if: + * - An RPC returns a non-transient error. + * - The elapsed time in the retry loop exceeds a prescribed duration. + * + * In this class the following status codes are treated as transient errors: + * - [`kUnavailable`](@ref google::cloud::StatusCode) + */ +class CloudFtpLimitedTimeRetryPolicy : public CloudFtpRetryPolicy { + public: + /** + * Constructor given a `std::chrono::duration<>` object. + * + * @tparam DurationRep a placeholder to match the `Rep` tparam for @p + * duration's type. The semantics of this template parameter are + * documented in `std::chrono::duration<>`. In brief, the underlying + * arithmetic type used to store the number of ticks. For our purposes it + * is simply a formal parameter. + * @tparam DurationPeriod a placeholder to match the `Period` tparam for @p + * duration's type. The semantics of this template parameter are + * documented in `std::chrono::duration<>`. In brief, the length of the + * tick in seconds, expressed as a `std::ratio<>`. For our purposes it is + * simply a formal parameter. + * @param maximum_duration the maximum time allowed before the policy expires. + * While the application can express this time in any units they desire, + * the class truncates to milliseconds. + * + * @see https://en.cppreference.com/w/cpp/chrono/duration for more information + * about `std::chrono::duration`. + */ + template + explicit CloudFtpLimitedTimeRetryPolicy( + std::chrono::duration maximum_duration) + : impl_(maximum_duration) {} + + CloudFtpLimitedTimeRetryPolicy(CloudFtpLimitedTimeRetryPolicy&& rhs) noexcept + : CloudFtpLimitedTimeRetryPolicy(rhs.maximum_duration()) {} + CloudFtpLimitedTimeRetryPolicy( + CloudFtpLimitedTimeRetryPolicy const& rhs) noexcept + : CloudFtpLimitedTimeRetryPolicy(rhs.maximum_duration()) {} + + std::chrono::milliseconds maximum_duration() const { + return impl_.maximum_duration(); + } + + bool OnFailure(Status const& status) override { + return impl_.OnFailure(status); + } + bool IsExhausted() const override { return impl_.IsExhausted(); } + bool IsPermanentFailure(Status const& status) const override { + return impl_.IsPermanentFailure(status); + } + std::unique_ptr clone() const override { + return std::make_unique(maximum_duration()); + } + + // This is provided only for backwards compatibility. + using BaseType = CloudFtpRetryPolicy; + + private: + google::cloud::internal::LimitedTimeRetryPolicy< + ftp_v1_internal::CloudFtpRetryTraits> + impl_; +}; + +/** + * The `CloudFtpConnection` object for `CloudFtpClient`. + * + * This interface defines virtual methods for each of the user-facing overload + * sets in `CloudFtpClient`. This allows users to inject custom behavior + * (e.g., with a Google Mock object) when writing tests that use objects of type + * `CloudFtpClient`. + * + * To create a concrete instance, see `MakeCloudFtpConnection()`. + * + * For mocking, see `ftp_v1_mocks::MockCloudFtpConnection`. + */ +class CloudFtpConnection { + public: + virtual ~CloudFtpConnection() = 0; + + virtual Options options() { return Options{}; } + + virtual StreamRange ListServers( + google::cloud::ftp::v1::ListServersRequest request); + + virtual StatusOr GetServer( + google::cloud::ftp::v1::GetServerRequest const& request); + + virtual future> CreateServer( + google::cloud::ftp::v1::CreateServerRequest const& request); + + virtual StatusOr CreateServer( + NoAwaitTag, google::cloud::ftp::v1::CreateServerRequest const& request); + + virtual future> CreateServer( + google::longrunning::Operation const& operation); + + virtual future> UpdateServer( + google::cloud::ftp::v1::UpdateServerRequest const& request); + + virtual StatusOr UpdateServer( + NoAwaitTag, google::cloud::ftp::v1::UpdateServerRequest const& request); + + virtual future> UpdateServer( + google::longrunning::Operation const& operation); + + virtual future> + DeleteServer(google::cloud::ftp::v1::DeleteServerRequest const& request); + + virtual StatusOr DeleteServer( + NoAwaitTag, google::cloud::ftp::v1::DeleteServerRequest const& request); + + virtual future> + DeleteServer(google::longrunning::Operation const& operation); + + virtual StreamRange ListUsers( + google::cloud::ftp::v1::ListUsersRequest request); + + virtual StatusOr GetUser( + google::cloud::ftp::v1::GetUserRequest const& request); + + virtual future> CreateUser( + google::cloud::ftp::v1::CreateUserRequest const& request); + + virtual StatusOr CreateUser( + NoAwaitTag, google::cloud::ftp::v1::CreateUserRequest const& request); + + virtual future> CreateUser( + google::longrunning::Operation const& operation); + + virtual future> UpdateUser( + google::cloud::ftp::v1::UpdateUserRequest const& request); + + virtual StatusOr UpdateUser( + NoAwaitTag, google::cloud::ftp::v1::UpdateUserRequest const& request); + + virtual future> UpdateUser( + google::longrunning::Operation const& operation); + + virtual future> + DeleteUser(google::cloud::ftp::v1::DeleteUserRequest const& request); + + virtual StatusOr DeleteUser( + NoAwaitTag, google::cloud::ftp::v1::DeleteUserRequest const& request); + + virtual future> + DeleteUser(google::longrunning::Operation const& operation); + + virtual future> StartServer( + google::cloud::ftp::v1::StartServerRequest const& request); + + virtual StatusOr StartServer( + NoAwaitTag, google::cloud::ftp::v1::StartServerRequest const& request); + + virtual future> StartServer( + google::longrunning::Operation const& operation); + + virtual future> StopServer( + google::cloud::ftp::v1::StopServerRequest const& request); + + virtual StatusOr StopServer( + NoAwaitTag, google::cloud::ftp::v1::StopServerRequest const& request); + + virtual future> StopServer( + google::longrunning::Operation const& operation); + + virtual StreamRange ListLocations( + google::cloud::location::ListLocationsRequest request); + + virtual StatusOr GetLocation( + google::cloud::location::GetLocationRequest const& request); + + virtual StreamRange ListOperations( + google::longrunning::ListOperationsRequest request); + + virtual StatusOr GetOperation( + google::longrunning::GetOperationRequest const& request); + + virtual Status DeleteOperation( + google::longrunning::DeleteOperationRequest const& request); + + virtual Status CancelOperation( + google::longrunning::CancelOperationRequest const& request); +}; + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace ftp_v1 +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_CLOUD_FTP_CONNECTION_H diff --git a/google/cloud/ftp/v1/cloud_ftp_connection_idempotency_policy.cc b/google/cloud/ftp/v1/cloud_ftp_connection_idempotency_policy.cc new file mode 100644 index 0000000000000..e825f66030cf7 --- /dev/null +++ b/google/cloud/ftp/v1/cloud_ftp_connection_idempotency_policy.cc @@ -0,0 +1,135 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/ftp/v1/service.proto + +#include "google/cloud/ftp/v1/cloud_ftp_connection_idempotency_policy.h" +#include + +namespace google { +namespace cloud { +namespace ftp_v1 { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +using ::google::cloud::Idempotency; + +CloudFtpConnectionIdempotencyPolicy::~CloudFtpConnectionIdempotencyPolicy() = + default; + +std::unique_ptr +CloudFtpConnectionIdempotencyPolicy::clone() const { + return std::make_unique(*this); +} + +Idempotency CloudFtpConnectionIdempotencyPolicy::ListServers( + google::cloud::ftp::v1::ListServersRequest) { // NOLINT + return Idempotency::kIdempotent; +} + +Idempotency CloudFtpConnectionIdempotencyPolicy::GetServer( + google::cloud::ftp::v1::GetServerRequest const&) { + return Idempotency::kIdempotent; +} + +Idempotency CloudFtpConnectionIdempotencyPolicy::CreateServer( + google::cloud::ftp::v1::CreateServerRequest const&) { + return Idempotency::kNonIdempotent; +} + +Idempotency CloudFtpConnectionIdempotencyPolicy::UpdateServer( + google::cloud::ftp::v1::UpdateServerRequest const&) { + return Idempotency::kNonIdempotent; +} + +Idempotency CloudFtpConnectionIdempotencyPolicy::DeleteServer( + google::cloud::ftp::v1::DeleteServerRequest const&) { + return Idempotency::kNonIdempotent; +} + +Idempotency CloudFtpConnectionIdempotencyPolicy::ListUsers( + google::cloud::ftp::v1::ListUsersRequest) { // NOLINT + return Idempotency::kIdempotent; +} + +Idempotency CloudFtpConnectionIdempotencyPolicy::GetUser( + google::cloud::ftp::v1::GetUserRequest const&) { + return Idempotency::kIdempotent; +} + +Idempotency CloudFtpConnectionIdempotencyPolicy::CreateUser( + google::cloud::ftp::v1::CreateUserRequest const&) { + return Idempotency::kNonIdempotent; +} + +Idempotency CloudFtpConnectionIdempotencyPolicy::UpdateUser( + google::cloud::ftp::v1::UpdateUserRequest const&) { + return Idempotency::kNonIdempotent; +} + +Idempotency CloudFtpConnectionIdempotencyPolicy::DeleteUser( + google::cloud::ftp::v1::DeleteUserRequest const&) { + return Idempotency::kNonIdempotent; +} + +Idempotency CloudFtpConnectionIdempotencyPolicy::StartServer( + google::cloud::ftp::v1::StartServerRequest const&) { + return Idempotency::kNonIdempotent; +} + +Idempotency CloudFtpConnectionIdempotencyPolicy::StopServer( + google::cloud::ftp::v1::StopServerRequest const&) { + return Idempotency::kNonIdempotent; +} + +Idempotency CloudFtpConnectionIdempotencyPolicy::ListLocations( + google::cloud::location::ListLocationsRequest) { // NOLINT + return Idempotency::kIdempotent; +} + +Idempotency CloudFtpConnectionIdempotencyPolicy::GetLocation( + google::cloud::location::GetLocationRequest const&) { + return Idempotency::kIdempotent; +} + +Idempotency CloudFtpConnectionIdempotencyPolicy::ListOperations( + google::longrunning::ListOperationsRequest) { // NOLINT + return Idempotency::kIdempotent; +} + +Idempotency CloudFtpConnectionIdempotencyPolicy::GetOperation( + google::longrunning::GetOperationRequest const&) { + return Idempotency::kIdempotent; +} + +Idempotency CloudFtpConnectionIdempotencyPolicy::DeleteOperation( + google::longrunning::DeleteOperationRequest const&) { + return Idempotency::kNonIdempotent; +} + +Idempotency CloudFtpConnectionIdempotencyPolicy::CancelOperation( + google::longrunning::CancelOperationRequest const&) { + return Idempotency::kNonIdempotent; +} + +std::unique_ptr +MakeDefaultCloudFtpConnectionIdempotencyPolicy() { + return std::make_unique(); +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace ftp_v1 +} // namespace cloud +} // namespace google diff --git a/google/cloud/ftp/v1/cloud_ftp_connection_idempotency_policy.h b/google/cloud/ftp/v1/cloud_ftp_connection_idempotency_policy.h new file mode 100644 index 0000000000000..a64a0309873b4 --- /dev/null +++ b/google/cloud/ftp/v1/cloud_ftp_connection_idempotency_policy.h @@ -0,0 +1,104 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/ftp/v1/service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_CLOUD_FTP_CONNECTION_IDEMPOTENCY_POLICY_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_CLOUD_FTP_CONNECTION_IDEMPOTENCY_POLICY_H + +#include "google/cloud/ftp/v1/service.pb.h" +#include "google/cloud/location/locations.pb.h" +#include "google/cloud/idempotency.h" +#include "google/cloud/version.h" +#include "google/longrunning/operations.pb.h" +#include + +namespace google { +namespace cloud { +namespace ftp_v1 { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +class CloudFtpConnectionIdempotencyPolicy { + public: + virtual ~CloudFtpConnectionIdempotencyPolicy(); + + /// Create a new copy of this object. + virtual std::unique_ptr clone() const; + + virtual google::cloud::Idempotency ListServers( + google::cloud::ftp::v1::ListServersRequest request); + + virtual google::cloud::Idempotency GetServer( + google::cloud::ftp::v1::GetServerRequest const& request); + + virtual google::cloud::Idempotency CreateServer( + google::cloud::ftp::v1::CreateServerRequest const& request); + + virtual google::cloud::Idempotency UpdateServer( + google::cloud::ftp::v1::UpdateServerRequest const& request); + + virtual google::cloud::Idempotency DeleteServer( + google::cloud::ftp::v1::DeleteServerRequest const& request); + + virtual google::cloud::Idempotency ListUsers( + google::cloud::ftp::v1::ListUsersRequest request); + + virtual google::cloud::Idempotency GetUser( + google::cloud::ftp::v1::GetUserRequest const& request); + + virtual google::cloud::Idempotency CreateUser( + google::cloud::ftp::v1::CreateUserRequest const& request); + + virtual google::cloud::Idempotency UpdateUser( + google::cloud::ftp::v1::UpdateUserRequest const& request); + + virtual google::cloud::Idempotency DeleteUser( + google::cloud::ftp::v1::DeleteUserRequest const& request); + + virtual google::cloud::Idempotency StartServer( + google::cloud::ftp::v1::StartServerRequest const& request); + + virtual google::cloud::Idempotency StopServer( + google::cloud::ftp::v1::StopServerRequest const& request); + + virtual google::cloud::Idempotency ListLocations( + google::cloud::location::ListLocationsRequest request); + + virtual google::cloud::Idempotency GetLocation( + google::cloud::location::GetLocationRequest const& request); + + virtual google::cloud::Idempotency ListOperations( + google::longrunning::ListOperationsRequest request); + + virtual google::cloud::Idempotency GetOperation( + google::longrunning::GetOperationRequest const& request); + + virtual google::cloud::Idempotency DeleteOperation( + google::longrunning::DeleteOperationRequest const& request); + + virtual google::cloud::Idempotency CancelOperation( + google::longrunning::CancelOperationRequest const& request); +}; + +std::unique_ptr +MakeDefaultCloudFtpConnectionIdempotencyPolicy(); + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace ftp_v1 +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_CLOUD_FTP_CONNECTION_IDEMPOTENCY_POLICY_H diff --git a/google/cloud/ftp/v1/cloud_ftp_options.h b/google/cloud/ftp/v1/cloud_ftp_options.h new file mode 100644 index 0000000000000..9f07054559e79 --- /dev/null +++ b/google/cloud/ftp/v1/cloud_ftp_options.h @@ -0,0 +1,86 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/ftp/v1/service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_CLOUD_FTP_OPTIONS_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_CLOUD_FTP_OPTIONS_H + +#include "google/cloud/ftp/v1/cloud_ftp_connection.h" +#include "google/cloud/ftp/v1/cloud_ftp_connection_idempotency_policy.h" +#include "google/cloud/backoff_policy.h" +#include "google/cloud/options.h" +#include "google/cloud/version.h" +#include + +namespace google { +namespace cloud { +namespace ftp_v1 { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +/** + * Use with `google::cloud::Options` to configure the retry policy. + * + * @ingroup google-cloud-ftp-options + */ +struct CloudFtpRetryPolicyOption { + using Type = std::shared_ptr; +}; + +/** + * Use with `google::cloud::Options` to configure the backoff policy. + * + * @ingroup google-cloud-ftp-options + */ +struct CloudFtpBackoffPolicyOption { + using Type = std::shared_ptr; +}; + +/** + * Use with `google::cloud::Options` to configure which operations are retried. + * + * @ingroup google-cloud-ftp-options + */ +struct CloudFtpConnectionIdempotencyPolicyOption { + using Type = std::shared_ptr; +}; + +/** + * Use with `google::cloud::Options` to configure the long-running operations + * polling policy. + * + * @ingroup google-cloud-ftp-options + */ +struct CloudFtpPollingPolicyOption { + using Type = std::shared_ptr; +}; + +/** + * The options applicable to CloudFtp. + * + * @ingroup google-cloud-ftp-options + */ +using CloudFtpPolicyOptionList = + OptionList; + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace ftp_v1 +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_CLOUD_FTP_OPTIONS_H diff --git a/google/cloud/ftp/v1/cloud_ftp_rest_connection.cc b/google/cloud/ftp/v1/cloud_ftp_rest_connection.cc new file mode 100644 index 0000000000000..d3ee99e49ef62 --- /dev/null +++ b/google/cloud/ftp/v1/cloud_ftp_rest_connection.cc @@ -0,0 +1,55 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/ftp/v1/service.proto + +#include "google/cloud/ftp/v1/cloud_ftp_rest_connection.h" +#include "google/cloud/ftp/v1/cloud_ftp_options.h" +#include "google/cloud/ftp/v1/internal/cloud_ftp_option_defaults.h" +#include "google/cloud/ftp/v1/internal/cloud_ftp_rest_connection_impl.h" +#include "google/cloud/ftp/v1/internal/cloud_ftp_rest_stub_factory.h" +#include "google/cloud/ftp/v1/internal/cloud_ftp_tracing_connection.h" +#include "google/cloud/common_options.h" +#include "google/cloud/credentials.h" +#include "google/cloud/internal/rest_background_threads_impl.h" +#include "google/cloud/internal/rest_options.h" +#include +#include + +namespace google { +namespace cloud { +namespace ftp_v1 { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +std::shared_ptr MakeCloudFtpConnectionRest( + Options options) { + internal::CheckExpectedOptions< + CommonOptionList, RestOptionList, UnifiedCredentialsOptionList, + rest_internal::TargetApiVersionOption, CloudFtpPolicyOptionList>( + options, __func__); + options = ftp_v1_internal::CloudFtpDefaultOptions(std::move(options)); + auto background = std::make_unique< + rest_internal::AutomaticallyCreatedRestBackgroundThreads>(); + auto stub = ftp_v1_internal::CreateDefaultCloudFtpRestStub(options); + return ftp_v1_internal::MakeCloudFtpTracingConnection( + std::make_shared( + std::move(background), std::move(stub), std::move(options))); +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace ftp_v1 +} // namespace cloud +} // namespace google diff --git a/google/cloud/ftp/v1/cloud_ftp_rest_connection.h b/google/cloud/ftp/v1/cloud_ftp_rest_connection.h new file mode 100644 index 0000000000000..2901fae2b611f --- /dev/null +++ b/google/cloud/ftp/v1/cloud_ftp_rest_connection.h @@ -0,0 +1,64 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/ftp/v1/service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_CLOUD_FTP_REST_CONNECTION_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_CLOUD_FTP_REST_CONNECTION_H + +#include "google/cloud/ftp/v1/cloud_ftp_connection.h" +#include "google/cloud/options.h" +#include "google/cloud/version.h" +#include + +namespace google { +namespace cloud { +namespace ftp_v1 { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +/** + * A factory function to construct an object of type `CloudFtpConnection` + * that uses REST over HTTP as transport in lieu of gRPC. REST transport should + * only be used for services that do not support gRPC or if the existing network + * configuration precludes using gRPC. + * + * The returned connection object should not be used directly; instead it + * should be passed as an argument to the constructor of CloudFtpClient. + * + * The optional @p options argument may be used to configure aspects of the + * returned `CloudFtpConnection`. Expected options are any of the types in + * the following option lists: + * + * - `google::cloud::CommonOptionList` + * - `google::cloud::RestOptionList` + * - `google::cloud::UnifiedCredentialsOptionList` + * - `google::cloud::ftp_v1::CloudFtpPolicyOptionList` + * + * @note Unexpected options will be ignored. To log unexpected options instead, + * set `GOOGLE_CLOUD_CPP_ENABLE_CLOG=yes` in the environment. + * + * @param options (optional) Configure the `CloudFtpConnection` created by + * this function. + */ +std::shared_ptr MakeCloudFtpConnectionRest( + Options options = {}); + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace ftp_v1 +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_CLOUD_FTP_REST_CONNECTION_H diff --git a/google/cloud/ftp/v1/internal/cloud_ftp_option_defaults.cc b/google/cloud/ftp/v1/internal/cloud_ftp_option_defaults.cc new file mode 100644 index 0000000000000..9272a13068e2c --- /dev/null +++ b/google/cloud/ftp/v1/internal/cloud_ftp_option_defaults.cc @@ -0,0 +1,74 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/ftp/v1/service.proto + +#include "google/cloud/ftp/v1/internal/cloud_ftp_option_defaults.h" +#include "google/cloud/ftp/v1/cloud_ftp_connection.h" +#include "google/cloud/ftp/v1/cloud_ftp_options.h" +#include "google/cloud/internal/populate_common_options.h" +#include "google/cloud/internal/populate_grpc_options.h" +#include +#include + +namespace google { +namespace cloud { +namespace ftp_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +namespace { +auto constexpr kBackoffScaling = 2.0; +} // namespace + +Options CloudFtpDefaultOptions(Options options) { + options = internal::PopulateCommonOptions( + std::move(options), "GOOGLE_CLOUD_CPP_CLOUD_FTP_ENDPOINT", "", + "GOOGLE_CLOUD_CPP_CLOUD_FTP_AUTHORITY", "ftp.googleapis.com"); + options = internal::PopulateGrpcOptions(std::move(options)); + if (!options.has()) { + options.set( + ftp_v1::CloudFtpLimitedTimeRetryPolicy(std::chrono::minutes(10)) + .clone()); + } + if (!options.has()) { + options.set( + ExponentialBackoffPolicy( + std::chrono::seconds(0), std::chrono::seconds(1), + std::chrono::minutes(5), kBackoffScaling, kBackoffScaling) + .clone()); + } + if (!options.has()) { + options.set( + GenericPollingPolicy( + options.get()->clone(), + ExponentialBackoffPolicy(std::chrono::seconds(1), + std::chrono::minutes(5), kBackoffScaling) + .clone()) + .clone()); + } + if (!options.has()) { + options.set( + ftp_v1::MakeDefaultCloudFtpConnectionIdempotencyPolicy()); + } + + return options; +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace ftp_v1_internal +} // namespace cloud +} // namespace google diff --git a/google/cloud/ftp/v1/internal/cloud_ftp_option_defaults.h b/google/cloud/ftp/v1/internal/cloud_ftp_option_defaults.h new file mode 100644 index 0000000000000..d123de06adf7b --- /dev/null +++ b/google/cloud/ftp/v1/internal/cloud_ftp_option_defaults.h @@ -0,0 +1,37 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/ftp/v1/service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_INTERNAL_CLOUD_FTP_OPTION_DEFAULTS_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_INTERNAL_CLOUD_FTP_OPTION_DEFAULTS_H + +#include "google/cloud/options.h" +#include "google/cloud/version.h" + +namespace google { +namespace cloud { +namespace ftp_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +Options CloudFtpDefaultOptions(Options options); + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace ftp_v1_internal +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_INTERNAL_CLOUD_FTP_OPTION_DEFAULTS_H diff --git a/google/cloud/ftp/v1/internal/cloud_ftp_rest_connection_impl.cc b/google/cloud/ftp/v1/internal/cloud_ftp_rest_connection_impl.cc new file mode 100644 index 0000000000000..ee35408cb36a2 --- /dev/null +++ b/google/cloud/ftp/v1/internal/cloud_ftp_rest_connection_impl.cc @@ -0,0 +1,943 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/ftp/v1/service.proto + +#include "google/cloud/ftp/v1/internal/cloud_ftp_rest_connection_impl.h" +#include "google/cloud/ftp/v1/internal/cloud_ftp_rest_stub_factory.h" +#include "google/cloud/common_options.h" +#include "google/cloud/credentials.h" +#include "google/cloud/internal/async_rest_long_running_operation.h" +#include "google/cloud/internal/extract_long_running_result.h" +#include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_retry_loop.h" +#include "google/cloud/rest_options.h" +#include +#include + +namespace google { +namespace cloud { +namespace ftp_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +CloudFtpRestConnectionImpl::CloudFtpRestConnectionImpl( + std::unique_ptr background, + std::shared_ptr stub, Options options) + : background_(std::move(background)), + stub_(std::move(stub)), + options_(internal::MergeOptions(std::move(options), + CloudFtpConnection::options())) {} + +StreamRange +CloudFtpRestConnectionImpl::ListServers( + google::cloud::ftp::v1::ListServersRequest request) { + request.clear_page_token(); + auto current = google::cloud::internal::SaveCurrentOptions(); + auto idempotency = idempotency_policy(*current)->ListServers(request); + char const* function_name = __func__; + return google::cloud::internal::MakePaginationRange< + StreamRange>( + current, std::move(request), + [idempotency, function_name, stub = stub_, + retry = + std::shared_ptr(retry_policy(*current)), + backoff = std::shared_ptr(backoff_policy(*current))]( + Options const& options, + google::cloud::ftp::v1::ListServersRequest const& r) { + return google::cloud::rest_internal::RestRetryLoop( + retry->clone(), backoff->clone(), idempotency, + [stub](rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::ListServersRequest const& request) { + return stub->ListServers(rest_context, options, request); + }, + options, r, function_name); + }, + [](google::cloud::ftp::v1::ListServersResponse r) { + std::vector result(r.servers().size()); + auto& messages = *r.mutable_servers(); + std::move(messages.begin(), messages.end(), result.begin()); + return result; + }); +} + +StatusOr CloudFtpRestConnectionImpl::GetServer( + google::cloud::ftp::v1::GetServerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->GetServer(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::GetServerRequest const& request) { + return stub_->GetServer(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +CloudFtpRestConnectionImpl::CreateServer( + google::cloud::ftp::v1::CreateServerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::ftp::v1::Server>( + background_->cq(), current, request, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::CreateServerRequest const& request) { + return stub->AsyncCreateServer(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::ftp::v1::Server>, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateServer(request), + polling_policy(*current), __func__); +} + +StatusOr +CloudFtpRestConnectionImpl::CreateServer( + NoAwaitTag, google::cloud::ftp::v1::CreateServerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateServer(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::CreateServerRequest const& request) { + return stub_->CreateServer(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +CloudFtpRestConnectionImpl::CreateServer( + google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateServer", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::ftp::v1::Server>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::ftp::v1::Server>, + polling_policy(*current), __func__); +} + +future> +CloudFtpRestConnectionImpl::UpdateServer( + google::cloud::ftp::v1::UpdateServerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::ftp::v1::Server>( + background_->cq(), current, request, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::UpdateServerRequest const& request) { + return stub->AsyncUpdateServer(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::ftp::v1::Server>, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateServer(request), + polling_policy(*current), __func__); +} + +StatusOr +CloudFtpRestConnectionImpl::UpdateServer( + NoAwaitTag, google::cloud::ftp::v1::UpdateServerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateServer(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::UpdateServerRequest const& request) { + return stub_->UpdateServer(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +CloudFtpRestConnectionImpl::UpdateServer( + google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateServer", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::ftp::v1::Server>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::ftp::v1::Server>, + polling_policy(*current), __func__); +} + +future> +CloudFtpRestConnectionImpl::DeleteServer( + google::cloud::ftp::v1::DeleteServerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::ftp::v1::OperationMetadata>( + background_->cq(), current, request, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::DeleteServerRequest const& request) { + return stub->AsyncDeleteServer(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::ftp::v1::OperationMetadata>, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteServer(request), + polling_policy(*current), __func__); +} + +StatusOr +CloudFtpRestConnectionImpl::DeleteServer( + NoAwaitTag, google::cloud::ftp::v1::DeleteServerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteServer(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::DeleteServerRequest const& request) { + return stub_->DeleteServer(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +CloudFtpRestConnectionImpl::DeleteServer( + google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteServer", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::ftp::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::ftp::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + +StreamRange CloudFtpRestConnectionImpl::ListUsers( + google::cloud::ftp::v1::ListUsersRequest request) { + request.clear_page_token(); + auto current = google::cloud::internal::SaveCurrentOptions(); + auto idempotency = idempotency_policy(*current)->ListUsers(request); + char const* function_name = __func__; + return google::cloud::internal::MakePaginationRange< + StreamRange>( + current, std::move(request), + [idempotency, function_name, stub = stub_, + retry = + std::shared_ptr(retry_policy(*current)), + backoff = std::shared_ptr(backoff_policy(*current))]( + Options const& options, + google::cloud::ftp::v1::ListUsersRequest const& r) { + return google::cloud::rest_internal::RestRetryLoop( + retry->clone(), backoff->clone(), idempotency, + [stub](rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::ListUsersRequest const& request) { + return stub->ListUsers(rest_context, options, request); + }, + options, r, function_name); + }, + [](google::cloud::ftp::v1::ListUsersResponse r) { + std::vector result(r.users().size()); + auto& messages = *r.mutable_users(); + std::move(messages.begin(), messages.end(), result.begin()); + return result; + }); +} + +StatusOr CloudFtpRestConnectionImpl::GetUser( + google::cloud::ftp::v1::GetUserRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->GetUser(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::GetUserRequest const& request) { + return stub_->GetUser(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +CloudFtpRestConnectionImpl::CreateUser( + google::cloud::ftp::v1::CreateUserRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::ftp::v1::User>( + background_->cq(), current, request, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::CreateUserRequest const& request) { + return stub->AsyncCreateUser(cq, std::move(context), std::move(options), + request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::ftp::v1::User>, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateUser(request), + polling_policy(*current), __func__); +} + +StatusOr CloudFtpRestConnectionImpl::CreateUser( + NoAwaitTag, google::cloud::ftp::v1::CreateUserRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateUser(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::CreateUserRequest const& request) { + return stub_->CreateUser(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +CloudFtpRestConnectionImpl::CreateUser( + google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateUser", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::ftp::v1::User>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::ftp::v1::User>, + polling_policy(*current), __func__); +} + +future> +CloudFtpRestConnectionImpl::UpdateUser( + google::cloud::ftp::v1::UpdateUserRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::ftp::v1::User>( + background_->cq(), current, request, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::UpdateUserRequest const& request) { + return stub->AsyncUpdateUser(cq, std::move(context), std::move(options), + request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::ftp::v1::User>, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateUser(request), + polling_policy(*current), __func__); +} + +StatusOr CloudFtpRestConnectionImpl::UpdateUser( + NoAwaitTag, google::cloud::ftp::v1::UpdateUserRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateUser(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::UpdateUserRequest const& request) { + return stub_->UpdateUser(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +CloudFtpRestConnectionImpl::UpdateUser( + google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateUser", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::ftp::v1::User>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::ftp::v1::User>, + polling_policy(*current), __func__); +} + +future> +CloudFtpRestConnectionImpl::DeleteUser( + google::cloud::ftp::v1::DeleteUserRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::ftp::v1::OperationMetadata>( + background_->cq(), current, request, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::DeleteUserRequest const& request) { + return stub->AsyncDeleteUser(cq, std::move(context), std::move(options), + request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::ftp::v1::OperationMetadata>, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteUser(request), + polling_policy(*current), __func__); +} + +StatusOr CloudFtpRestConnectionImpl::DeleteUser( + NoAwaitTag, google::cloud::ftp::v1::DeleteUserRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteUser(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::DeleteUserRequest const& request) { + return stub_->DeleteUser(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +CloudFtpRestConnectionImpl::DeleteUser( + google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteUser", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::ftp::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::ftp::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + +future> +CloudFtpRestConnectionImpl::StartServer( + google::cloud::ftp::v1::StartServerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::ftp::v1::Server>( + background_->cq(), current, request, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::StartServerRequest const& request) { + return stub->AsyncStartServer(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::ftp::v1::Server>, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StartServer(request), + polling_policy(*current), __func__); +} + +StatusOr +CloudFtpRestConnectionImpl::StartServer( + NoAwaitTag, google::cloud::ftp::v1::StartServerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StartServer(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::StartServerRequest const& request) { + return stub_->StartServer(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +CloudFtpRestConnectionImpl::StartServer( + google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to StartServer", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::ftp::v1::Server>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::ftp::v1::Server>, + polling_policy(*current), __func__); +} + +future> +CloudFtpRestConnectionImpl::StopServer( + google::cloud::ftp::v1::StopServerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::ftp::v1::Server>( + background_->cq(), current, request, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::StopServerRequest const& request) { + return stub->AsyncStopServer(cq, std::move(context), std::move(options), + request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::ftp::v1::Server>, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StopServer(request), + polling_policy(*current), __func__); +} + +StatusOr CloudFtpRestConnectionImpl::StopServer( + NoAwaitTag, google::cloud::ftp::v1::StopServerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StopServer(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::StopServerRequest const& request) { + return stub_->StopServer(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +CloudFtpRestConnectionImpl::StopServer( + google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to StopServer", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::ftp::v1::Server>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::ftp::v1::Server>, + polling_policy(*current), __func__); +} + +StreamRange +CloudFtpRestConnectionImpl::ListLocations( + google::cloud::location::ListLocationsRequest request) { + request.clear_page_token(); + auto current = google::cloud::internal::SaveCurrentOptions(); + auto idempotency = idempotency_policy(*current)->ListLocations(request); + char const* function_name = __func__; + return google::cloud::internal::MakePaginationRange< + StreamRange>( + current, std::move(request), + [idempotency, function_name, stub = stub_, + retry = + std::shared_ptr(retry_policy(*current)), + backoff = std::shared_ptr(backoff_policy(*current))]( + Options const& options, + google::cloud::location::ListLocationsRequest const& r) { + return google::cloud::rest_internal::RestRetryLoop( + retry->clone(), backoff->clone(), idempotency, + [stub]( + rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::location::ListLocationsRequest const& request) { + return stub->ListLocations(rest_context, options, request); + }, + options, r, function_name); + }, + [](google::cloud::location::ListLocationsResponse r) { + std::vector result( + r.locations().size()); + auto& messages = *r.mutable_locations(); + std::move(messages.begin(), messages.end(), result.begin()); + return result; + }); +} + +StatusOr +CloudFtpRestConnectionImpl::GetLocation( + google::cloud::location::GetLocationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->GetLocation(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::location::GetLocationRequest const& request) { + return stub_->GetLocation(rest_context, options, request); + }, + *current, request, __func__); +} + +StreamRange +CloudFtpRestConnectionImpl::ListOperations( + google::longrunning::ListOperationsRequest request) { + request.clear_page_token(); + auto current = google::cloud::internal::SaveCurrentOptions(); + auto idempotency = idempotency_policy(*current)->ListOperations(request); + char const* function_name = __func__; + return google::cloud::internal::MakePaginationRange< + StreamRange>( + current, std::move(request), + [idempotency, function_name, stub = stub_, + retry = + std::shared_ptr(retry_policy(*current)), + backoff = std::shared_ptr(backoff_policy(*current))]( + Options const& options, + google::longrunning::ListOperationsRequest const& r) { + return google::cloud::rest_internal::RestRetryLoop( + retry->clone(), backoff->clone(), idempotency, + [stub](rest_internal::RestContext& rest_context, + Options const& options, + google::longrunning::ListOperationsRequest const& request) { + return stub->ListOperations(rest_context, options, request); + }, + options, r, function_name); + }, + [](google::longrunning::ListOperationsResponse r) { + std::vector result( + r.operations().size()); + auto& messages = *r.mutable_operations(); + std::move(messages.begin(), messages.end(), result.begin()); + return result; + }); +} + +StatusOr +CloudFtpRestConnectionImpl::GetOperation( + google::longrunning::GetOperationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->GetOperation(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::longrunning::GetOperationRequest const& request) { + return stub_->GetOperation(rest_context, options, request); + }, + *current, request, __func__); +} + +Status CloudFtpRestConnectionImpl::DeleteOperation( + google::longrunning::DeleteOperationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteOperation(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::longrunning::DeleteOperationRequest const& request) { + return stub_->DeleteOperation(rest_context, options, request); + }, + *current, request, __func__); +} + +Status CloudFtpRestConnectionImpl::CancelOperation( + google::longrunning::CancelOperationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CancelOperation(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::longrunning::CancelOperationRequest const& request) { + return stub_->CancelOperation(rest_context, options, request); + }, + *current, request, __func__); +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace ftp_v1_internal +} // namespace cloud +} // namespace google diff --git a/google/cloud/ftp/v1/internal/cloud_ftp_rest_connection_impl.h b/google/cloud/ftp/v1/internal/cloud_ftp_rest_connection_impl.h new file mode 100644 index 0000000000000..089096c744b7a --- /dev/null +++ b/google/cloud/ftp/v1/internal/cloud_ftp_rest_connection_impl.h @@ -0,0 +1,191 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/ftp/v1/service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_INTERNAL_CLOUD_FTP_REST_CONNECTION_IMPL_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_INTERNAL_CLOUD_FTP_REST_CONNECTION_IMPL_H + +#include "google/cloud/ftp/v1/cloud_ftp_connection.h" +#include "google/cloud/ftp/v1/cloud_ftp_connection_idempotency_policy.h" +#include "google/cloud/ftp/v1/cloud_ftp_options.h" +#include "google/cloud/ftp/v1/internal/cloud_ftp_rest_stub.h" +#include "google/cloud/ftp/v1/internal/cloud_ftp_retry_traits.h" +#include "google/cloud/background_threads.h" +#include "google/cloud/backoff_policy.h" +#include "google/cloud/options.h" +#include "google/cloud/status_or.h" +#include "google/cloud/stream_range.h" +#include "google/cloud/version.h" +#include "google/longrunning/operations.pb.h" +#include + +namespace google { +namespace cloud { +namespace ftp_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +class CloudFtpRestConnectionImpl : public ftp_v1::CloudFtpConnection { + public: + ~CloudFtpRestConnectionImpl() override = default; + + CloudFtpRestConnectionImpl( + std::unique_ptr background, + std::shared_ptr stub, Options options); + + Options options() override { return options_; } + + StreamRange ListServers( + google::cloud::ftp::v1::ListServersRequest request) override; + + StatusOr GetServer( + google::cloud::ftp::v1::GetServerRequest const& request) override; + + future> CreateServer( + google::cloud::ftp::v1::CreateServerRequest const& request) override; + + StatusOr CreateServer( + NoAwaitTag, + google::cloud::ftp::v1::CreateServerRequest const& request) override; + + future> CreateServer( + google::longrunning::Operation const& operation) override; + + future> UpdateServer( + google::cloud::ftp::v1::UpdateServerRequest const& request) override; + + StatusOr UpdateServer( + NoAwaitTag, + google::cloud::ftp::v1::UpdateServerRequest const& request) override; + + future> UpdateServer( + google::longrunning::Operation const& operation) override; + + future> DeleteServer( + google::cloud::ftp::v1::DeleteServerRequest const& request) override; + + StatusOr DeleteServer( + NoAwaitTag, + google::cloud::ftp::v1::DeleteServerRequest const& request) override; + + future> DeleteServer( + google::longrunning::Operation const& operation) override; + + StreamRange ListUsers( + google::cloud::ftp::v1::ListUsersRequest request) override; + + StatusOr GetUser( + google::cloud::ftp::v1::GetUserRequest const& request) override; + + future> CreateUser( + google::cloud::ftp::v1::CreateUserRequest const& request) override; + + StatusOr CreateUser( + NoAwaitTag, + google::cloud::ftp::v1::CreateUserRequest const& request) override; + + future> CreateUser( + google::longrunning::Operation const& operation) override; + + future> UpdateUser( + google::cloud::ftp::v1::UpdateUserRequest const& request) override; + + StatusOr UpdateUser( + NoAwaitTag, + google::cloud::ftp::v1::UpdateUserRequest const& request) override; + + future> UpdateUser( + google::longrunning::Operation const& operation) override; + + future> DeleteUser( + google::cloud::ftp::v1::DeleteUserRequest const& request) override; + + StatusOr DeleteUser( + NoAwaitTag, + google::cloud::ftp::v1::DeleteUserRequest const& request) override; + + future> DeleteUser( + google::longrunning::Operation const& operation) override; + + future> StartServer( + google::cloud::ftp::v1::StartServerRequest const& request) override; + + StatusOr StartServer( + NoAwaitTag, + google::cloud::ftp::v1::StartServerRequest const& request) override; + + future> StartServer( + google::longrunning::Operation const& operation) override; + + future> StopServer( + google::cloud::ftp::v1::StopServerRequest const& request) override; + + StatusOr StopServer( + NoAwaitTag, + google::cloud::ftp::v1::StopServerRequest const& request) override; + + future> StopServer( + google::longrunning::Operation const& operation) override; + + StreamRange ListLocations( + google::cloud::location::ListLocationsRequest request) override; + + StatusOr GetLocation( + google::cloud::location::GetLocationRequest const& request) override; + + StreamRange ListOperations( + google::longrunning::ListOperationsRequest request) override; + + StatusOr GetOperation( + google::longrunning::GetOperationRequest const& request) override; + + Status DeleteOperation( + google::longrunning::DeleteOperationRequest const& request) override; + + Status CancelOperation( + google::longrunning::CancelOperationRequest const& request) override; + + private: + static std::unique_ptr retry_policy( + Options const& options) { + return options.get()->clone(); + } + + static std::unique_ptr backoff_policy(Options const& options) { + return options.get()->clone(); + } + + static std::unique_ptr + idempotency_policy(Options const& options) { + return options.get() + ->clone(); + } + + static std::unique_ptr polling_policy(Options const& options) { + return options.get()->clone(); + } + + std::unique_ptr background_; + std::shared_ptr stub_; + Options options_; +}; + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace ftp_v1_internal +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_INTERNAL_CLOUD_FTP_REST_CONNECTION_IMPL_H diff --git a/google/cloud/ftp/v1/internal/cloud_ftp_rest_logging_decorator.cc b/google/cloud/ftp/v1/internal/cloud_ftp_rest_logging_decorator.cc new file mode 100644 index 0000000000000..b4217d95d40d8 --- /dev/null +++ b/google/cloud/ftp/v1/internal/cloud_ftp_rest_logging_decorator.cc @@ -0,0 +1,421 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/ftp/v1/service.proto + +#include "google/cloud/ftp/v1/internal/cloud_ftp_rest_logging_decorator.h" +#include "google/cloud/internal/log_wrapper.h" +#include "google/cloud/status_or.h" +#include +#include + +namespace google { +namespace cloud { +namespace ftp_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +CloudFtpRestLogging::CloudFtpRestLogging( + std::shared_ptr child, TracingOptions tracing_options, + std::set components) + : child_(std::move(child)), + tracing_options_(std::move(tracing_options)), + components_(std::move(components)) {} + +StatusOr +CloudFtpRestLogging::ListServers( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::ListServersRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::ListServersRequest const& request) { + return child_->ListServers(rest_context, options, request); + }, + rest_context, options, request, __func__, tracing_options_); +} + +StatusOr CloudFtpRestLogging::GetServer( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::GetServerRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::GetServerRequest const& request) { + return child_->GetServer(rest_context, options, request); + }, + rest_context, options, request, __func__, tracing_options_); +} + +future> +CloudFtpRestLogging::AsyncCreateServer( + CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::CreateServerRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::CreateServerRequest const& request) { + return child_->AsyncCreateServer(cq, std::move(rest_context), + std::move(options), request); + }, + cq, std::move(rest_context), std::move(options), request, __func__, + tracing_options_); +} + +StatusOr CloudFtpRestLogging::CreateServer( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::CreateServerRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::CreateServerRequest const& request) { + return child_->CreateServer(rest_context, options, request); + }, + rest_context, options, request, __func__, tracing_options_); +} + +future> +CloudFtpRestLogging::AsyncUpdateServer( + CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::UpdateServerRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::UpdateServerRequest const& request) { + return child_->AsyncUpdateServer(cq, std::move(rest_context), + std::move(options), request); + }, + cq, std::move(rest_context), std::move(options), request, __func__, + tracing_options_); +} + +StatusOr CloudFtpRestLogging::UpdateServer( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::UpdateServerRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::UpdateServerRequest const& request) { + return child_->UpdateServer(rest_context, options, request); + }, + rest_context, options, request, __func__, tracing_options_); +} + +future> +CloudFtpRestLogging::AsyncDeleteServer( + CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::DeleteServerRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::DeleteServerRequest const& request) { + return child_->AsyncDeleteServer(cq, std::move(rest_context), + std::move(options), request); + }, + cq, std::move(rest_context), std::move(options), request, __func__, + tracing_options_); +} + +StatusOr CloudFtpRestLogging::DeleteServer( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::DeleteServerRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::DeleteServerRequest const& request) { + return child_->DeleteServer(rest_context, options, request); + }, + rest_context, options, request, __func__, tracing_options_); +} + +StatusOr +CloudFtpRestLogging::ListUsers( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::ListUsersRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::ListUsersRequest const& request) { + return child_->ListUsers(rest_context, options, request); + }, + rest_context, options, request, __func__, tracing_options_); +} + +StatusOr CloudFtpRestLogging::GetUser( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::GetUserRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::GetUserRequest const& request) { + return child_->GetUser(rest_context, options, request); + }, + rest_context, options, request, __func__, tracing_options_); +} + +future> +CloudFtpRestLogging::AsyncCreateUser( + CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::CreateUserRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::CreateUserRequest const& request) { + return child_->AsyncCreateUser(cq, std::move(rest_context), + std::move(options), request); + }, + cq, std::move(rest_context), std::move(options), request, __func__, + tracing_options_); +} + +StatusOr CloudFtpRestLogging::CreateUser( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::CreateUserRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::CreateUserRequest const& request) { + return child_->CreateUser(rest_context, options, request); + }, + rest_context, options, request, __func__, tracing_options_); +} + +future> +CloudFtpRestLogging::AsyncUpdateUser( + CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::UpdateUserRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::UpdateUserRequest const& request) { + return child_->AsyncUpdateUser(cq, std::move(rest_context), + std::move(options), request); + }, + cq, std::move(rest_context), std::move(options), request, __func__, + tracing_options_); +} + +StatusOr CloudFtpRestLogging::UpdateUser( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::UpdateUserRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::UpdateUserRequest const& request) { + return child_->UpdateUser(rest_context, options, request); + }, + rest_context, options, request, __func__, tracing_options_); +} + +future> +CloudFtpRestLogging::AsyncDeleteUser( + CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::DeleteUserRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::DeleteUserRequest const& request) { + return child_->AsyncDeleteUser(cq, std::move(rest_context), + std::move(options), request); + }, + cq, std::move(rest_context), std::move(options), request, __func__, + tracing_options_); +} + +StatusOr CloudFtpRestLogging::DeleteUser( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::DeleteUserRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::DeleteUserRequest const& request) { + return child_->DeleteUser(rest_context, options, request); + }, + rest_context, options, request, __func__, tracing_options_); +} + +future> +CloudFtpRestLogging::AsyncStartServer( + CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::StartServerRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::StartServerRequest const& request) { + return child_->AsyncStartServer(cq, std::move(rest_context), + std::move(options), request); + }, + cq, std::move(rest_context), std::move(options), request, __func__, + tracing_options_); +} + +StatusOr CloudFtpRestLogging::StartServer( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::StartServerRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::StartServerRequest const& request) { + return child_->StartServer(rest_context, options, request); + }, + rest_context, options, request, __func__, tracing_options_); +} + +future> +CloudFtpRestLogging::AsyncStopServer( + CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::StopServerRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::StopServerRequest const& request) { + return child_->AsyncStopServer(cq, std::move(rest_context), + std::move(options), request); + }, + cq, std::move(rest_context), std::move(options), request, __func__, + tracing_options_); +} + +StatusOr CloudFtpRestLogging::StopServer( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::StopServerRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::StopServerRequest const& request) { + return child_->StopServer(rest_context, options, request); + }, + rest_context, options, request, __func__, tracing_options_); +} + +StatusOr +CloudFtpRestLogging::ListLocations( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::location::ListLocationsRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::location::ListLocationsRequest const& request) { + return child_->ListLocations(rest_context, options, request); + }, + rest_context, options, request, __func__, tracing_options_); +} + +StatusOr CloudFtpRestLogging::GetLocation( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::location::GetLocationRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::location::GetLocationRequest const& request) { + return child_->GetLocation(rest_context, options, request); + }, + rest_context, options, request, __func__, tracing_options_); +} + +StatusOr +CloudFtpRestLogging::ListOperations( + rest_internal::RestContext& rest_context, Options const& options, + google::longrunning::ListOperationsRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](rest_internal::RestContext& rest_context, Options const& options, + google::longrunning::ListOperationsRequest const& request) { + return child_->ListOperations(rest_context, options, request); + }, + rest_context, options, request, __func__, tracing_options_); +} + +StatusOr CloudFtpRestLogging::GetOperation( + rest_internal::RestContext& rest_context, Options const& options, + google::longrunning::GetOperationRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](rest_internal::RestContext& rest_context, Options const& options, + google::longrunning::GetOperationRequest const& request) { + return child_->GetOperation(rest_context, options, request); + }, + rest_context, options, request, __func__, tracing_options_); +} + +Status CloudFtpRestLogging::DeleteOperation( + rest_internal::RestContext& rest_context, Options const& options, + google::longrunning::DeleteOperationRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](rest_internal::RestContext& rest_context, Options const& options, + google::longrunning::DeleteOperationRequest const& request) { + return child_->DeleteOperation(rest_context, options, request); + }, + rest_context, options, request, __func__, tracing_options_); +} + +Status CloudFtpRestLogging::CancelOperation( + rest_internal::RestContext& rest_context, Options const& options, + google::longrunning::CancelOperationRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](rest_internal::RestContext& rest_context, Options const& options, + google::longrunning::CancelOperationRequest const& request) { + return child_->CancelOperation(rest_context, options, request); + }, + rest_context, options, request, __func__, tracing_options_); +} + +future> +CloudFtpRestLogging::AsyncGetOperation( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return child_->AsyncGetOperation(cq, std::move(rest_context), + std::move(options), request); + }, + cq, std::move(rest_context), std::move(options), request, __func__, + tracing_options_); +} + +future CloudFtpRestLogging::AsyncCancelOperation( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return child_->AsyncCancelOperation(cq, std::move(rest_context), + std::move(options), request); + }, + cq, std::move(rest_context), std::move(options), request, __func__, + tracing_options_); +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace ftp_v1_internal +} // namespace cloud +} // namespace google diff --git a/google/cloud/ftp/v1/internal/cloud_ftp_rest_logging_decorator.h b/google/cloud/ftp/v1/internal/cloud_ftp_rest_logging_decorator.h new file mode 100644 index 0000000000000..fcffbb5b014d3 --- /dev/null +++ b/google/cloud/ftp/v1/internal/cloud_ftp_rest_logging_decorator.h @@ -0,0 +1,206 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/ftp/v1/service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_INTERNAL_CLOUD_FTP_REST_LOGGING_DECORATOR_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_INTERNAL_CLOUD_FTP_REST_LOGGING_DECORATOR_H + +#include "google/cloud/ftp/v1/internal/cloud_ftp_rest_stub.h" +#include "google/cloud/ftp/v1/service.pb.h" +#include "google/cloud/future.h" +#include "google/cloud/internal/rest_context.h" +#include "google/cloud/tracing_options.h" +#include "google/cloud/version.h" +#include "google/longrunning/operations.pb.h" +#include +#include +#include + +namespace google { +namespace cloud { +namespace ftp_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +class CloudFtpRestLogging : public CloudFtpRestStub { + public: + ~CloudFtpRestLogging() override = default; + CloudFtpRestLogging(std::shared_ptr child, + TracingOptions tracing_options, + std::set components); + + StatusOr ListServers( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::ListServersRequest const& request) override; + + StatusOr GetServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::GetServerRequest const& request) override; + + future> AsyncCreateServer( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::CreateServerRequest const& request) override; + + StatusOr CreateServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::CreateServerRequest const& request) override; + + future> AsyncUpdateServer( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::UpdateServerRequest const& request) override; + + StatusOr UpdateServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::UpdateServerRequest const& request) override; + + future> AsyncDeleteServer( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::DeleteServerRequest const& request) override; + + StatusOr DeleteServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::DeleteServerRequest const& request) override; + + StatusOr ListUsers( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::ListUsersRequest const& request) override; + + StatusOr GetUser( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::GetUserRequest const& request) override; + + future> AsyncCreateUser( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::CreateUserRequest const& request) override; + + StatusOr CreateUser( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::CreateUserRequest const& request) override; + + future> AsyncUpdateUser( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::UpdateUserRequest const& request) override; + + StatusOr UpdateUser( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::UpdateUserRequest const& request) override; + + future> AsyncDeleteUser( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::DeleteUserRequest const& request) override; + + StatusOr DeleteUser( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::DeleteUserRequest const& request) override; + + future> AsyncStartServer( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::StartServerRequest const& request) override; + + StatusOr StartServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::StartServerRequest const& request) override; + + future> AsyncStopServer( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::StopServerRequest const& request) override; + + StatusOr StopServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::StopServerRequest const& request) override; + + StatusOr ListLocations( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::location::ListLocationsRequest const& request) override; + + StatusOr GetLocation( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::location::GetLocationRequest const& request) override; + + StatusOr ListOperations( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::longrunning::ListOperationsRequest const& request) override; + + StatusOr GetOperation( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::longrunning::GetOperationRequest const& request) override; + + Status DeleteOperation( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::longrunning::DeleteOperationRequest const& request) override; + + Status CancelOperation( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::longrunning::CancelOperationRequest const& request) override; + + future> AsyncGetOperation( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) override; + + future AsyncCancelOperation( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) override; + + private: + std::shared_ptr child_; + TracingOptions tracing_options_; + std::set components_; +}; + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace ftp_v1_internal +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_INTERNAL_CLOUD_FTP_REST_LOGGING_DECORATOR_H diff --git a/google/cloud/ftp/v1/internal/cloud_ftp_rest_metadata_decorator.cc b/google/cloud/ftp/v1/internal/cloud_ftp_rest_metadata_decorator.cc new file mode 100644 index 0000000000000..fbd461cc5df9a --- /dev/null +++ b/google/cloud/ftp/v1/internal/cloud_ftp_rest_metadata_decorator.cc @@ -0,0 +1,290 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/ftp/v1/service.proto + +#include "google/cloud/ftp/v1/internal/cloud_ftp_rest_metadata_decorator.h" +#include "google/cloud/internal/api_client_header.h" +#include "google/cloud/internal/rest_set_metadata.h" +#include "google/cloud/status_or.h" +#include "absl/strings/str_cat.h" +#include "absl/strings/str_format.h" +#include +#include + +namespace google { +namespace cloud { +namespace ftp_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +CloudFtpRestMetadata::CloudFtpRestMetadata( + std::shared_ptr child, std::string api_client_header) + : child_(std::move(child)), + api_client_header_( + api_client_header.empty() + ? google::cloud::internal::GeneratedLibClientHeader() + : std::move(api_client_header)) {} + +StatusOr +CloudFtpRestMetadata::ListServers( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::ListServersRequest const& request) { + SetMetadata(rest_context, options); + return child_->ListServers(rest_context, options, request); +} + +StatusOr CloudFtpRestMetadata::GetServer( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::GetServerRequest const& request) { + SetMetadata(rest_context, options); + return child_->GetServer(rest_context, options, request); +} + +future> +CloudFtpRestMetadata::AsyncCreateServer( + CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::CreateServerRequest const& request) { + SetMetadata(*rest_context, *options); + return child_->AsyncCreateServer(cq, std::move(rest_context), + std::move(options), request); +} + +StatusOr CloudFtpRestMetadata::CreateServer( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::CreateServerRequest const& request) { + SetMetadata(rest_context, options); + return child_->CreateServer(rest_context, options, request); +} + +future> +CloudFtpRestMetadata::AsyncUpdateServer( + CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::UpdateServerRequest const& request) { + SetMetadata(*rest_context, *options); + return child_->AsyncUpdateServer(cq, std::move(rest_context), + std::move(options), request); +} + +StatusOr CloudFtpRestMetadata::UpdateServer( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::UpdateServerRequest const& request) { + SetMetadata(rest_context, options); + return child_->UpdateServer(rest_context, options, request); +} + +future> +CloudFtpRestMetadata::AsyncDeleteServer( + CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::DeleteServerRequest const& request) { + SetMetadata(*rest_context, *options); + return child_->AsyncDeleteServer(cq, std::move(rest_context), + std::move(options), request); +} + +StatusOr CloudFtpRestMetadata::DeleteServer( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::DeleteServerRequest const& request) { + SetMetadata(rest_context, options); + return child_->DeleteServer(rest_context, options, request); +} + +StatusOr +CloudFtpRestMetadata::ListUsers( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::ListUsersRequest const& request) { + SetMetadata(rest_context, options); + return child_->ListUsers(rest_context, options, request); +} + +StatusOr CloudFtpRestMetadata::GetUser( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::GetUserRequest const& request) { + SetMetadata(rest_context, options); + return child_->GetUser(rest_context, options, request); +} + +future> +CloudFtpRestMetadata::AsyncCreateUser( + CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::CreateUserRequest const& request) { + SetMetadata(*rest_context, *options); + return child_->AsyncCreateUser(cq, std::move(rest_context), + std::move(options), request); +} + +StatusOr CloudFtpRestMetadata::CreateUser( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::CreateUserRequest const& request) { + SetMetadata(rest_context, options); + return child_->CreateUser(rest_context, options, request); +} + +future> +CloudFtpRestMetadata::AsyncUpdateUser( + CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::UpdateUserRequest const& request) { + SetMetadata(*rest_context, *options); + return child_->AsyncUpdateUser(cq, std::move(rest_context), + std::move(options), request); +} + +StatusOr CloudFtpRestMetadata::UpdateUser( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::UpdateUserRequest const& request) { + SetMetadata(rest_context, options); + return child_->UpdateUser(rest_context, options, request); +} + +future> +CloudFtpRestMetadata::AsyncDeleteUser( + CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::DeleteUserRequest const& request) { + SetMetadata(*rest_context, *options); + return child_->AsyncDeleteUser(cq, std::move(rest_context), + std::move(options), request); +} + +StatusOr CloudFtpRestMetadata::DeleteUser( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::DeleteUserRequest const& request) { + SetMetadata(rest_context, options); + return child_->DeleteUser(rest_context, options, request); +} + +future> +CloudFtpRestMetadata::AsyncStartServer( + CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::StartServerRequest const& request) { + SetMetadata(*rest_context, *options); + return child_->AsyncStartServer(cq, std::move(rest_context), + std::move(options), request); +} + +StatusOr CloudFtpRestMetadata::StartServer( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::StartServerRequest const& request) { + SetMetadata(rest_context, options); + return child_->StartServer(rest_context, options, request); +} + +future> +CloudFtpRestMetadata::AsyncStopServer( + CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::StopServerRequest const& request) { + SetMetadata(*rest_context, *options); + return child_->AsyncStopServer(cq, std::move(rest_context), + std::move(options), request); +} + +StatusOr CloudFtpRestMetadata::StopServer( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::ftp::v1::StopServerRequest const& request) { + SetMetadata(rest_context, options); + return child_->StopServer(rest_context, options, request); +} + +StatusOr +CloudFtpRestMetadata::ListLocations( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::location::ListLocationsRequest const& request) { + SetMetadata(rest_context, options); + return child_->ListLocations(rest_context, options, request); +} + +StatusOr CloudFtpRestMetadata::GetLocation( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::location::GetLocationRequest const& request) { + SetMetadata(rest_context, options); + return child_->GetLocation(rest_context, options, request); +} + +StatusOr +CloudFtpRestMetadata::ListOperations( + rest_internal::RestContext& rest_context, Options const& options, + google::longrunning::ListOperationsRequest const& request) { + SetMetadata(rest_context, options); + return child_->ListOperations(rest_context, options, request); +} + +StatusOr CloudFtpRestMetadata::GetOperation( + rest_internal::RestContext& rest_context, Options const& options, + google::longrunning::GetOperationRequest const& request) { + SetMetadata(rest_context, options); + return child_->GetOperation(rest_context, options, request); +} + +Status CloudFtpRestMetadata::DeleteOperation( + rest_internal::RestContext& rest_context, Options const& options, + google::longrunning::DeleteOperationRequest const& request) { + SetMetadata(rest_context, options); + return child_->DeleteOperation(rest_context, options, request); +} + +Status CloudFtpRestMetadata::CancelOperation( + rest_internal::RestContext& rest_context, Options const& options, + google::longrunning::CancelOperationRequest const& request) { + SetMetadata(rest_context, options); + return child_->CancelOperation(rest_context, options, request); +} + +future> +CloudFtpRestMetadata::AsyncGetOperation( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + SetMetadata(*rest_context, *options); + return child_->AsyncGetOperation(cq, std::move(rest_context), + std::move(options), request); +} + +future CloudFtpRestMetadata::AsyncCancelOperation( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + SetMetadata(*rest_context, *options); + return child_->AsyncCancelOperation(cq, std::move(rest_context), + std::move(options), request); +} + +void CloudFtpRestMetadata::SetMetadata(rest_internal::RestContext& rest_context, + Options const& options, + std::vector const& params) { + google::cloud::rest_internal::SetMetadata(rest_context, options, params, + api_client_header_); +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace ftp_v1_internal +} // namespace cloud +} // namespace google diff --git a/google/cloud/ftp/v1/internal/cloud_ftp_rest_metadata_decorator.h b/google/cloud/ftp/v1/internal/cloud_ftp_rest_metadata_decorator.h new file mode 100644 index 0000000000000..b847f7238372e --- /dev/null +++ b/google/cloud/ftp/v1/internal/cloud_ftp_rest_metadata_decorator.h @@ -0,0 +1,215 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/ftp/v1/service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_INTERNAL_CLOUD_FTP_REST_METADATA_DECORATOR_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_INTERNAL_CLOUD_FTP_REST_METADATA_DECORATOR_H + +#include "google/cloud/ftp/v1/internal/cloud_ftp_rest_stub.h" +#include "google/cloud/ftp/v1/service.pb.h" +#include "google/cloud/future.h" +#include "google/cloud/rest_options.h" +#include "google/cloud/version.h" +#include "google/longrunning/operations.pb.h" +#include +#include + +namespace google { +namespace cloud { +namespace ftp_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +class CloudFtpRestMetadata : public CloudFtpRestStub { + public: + ~CloudFtpRestMetadata() override = default; + explicit CloudFtpRestMetadata(std::shared_ptr child, + std::string api_client_header = ""); + + StatusOr ListServers( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::ListServersRequest const& request) override; + + StatusOr GetServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::GetServerRequest const& request) override; + + google::cloud::future> + AsyncCreateServer( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::CreateServerRequest const& request) override; + + StatusOr CreateServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::CreateServerRequest const& request) override; + + google::cloud::future> + AsyncUpdateServer( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::UpdateServerRequest const& request) override; + + StatusOr UpdateServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::UpdateServerRequest const& request) override; + + google::cloud::future> + AsyncDeleteServer( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::DeleteServerRequest const& request) override; + + StatusOr DeleteServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::DeleteServerRequest const& request) override; + + StatusOr ListUsers( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::ListUsersRequest const& request) override; + + StatusOr GetUser( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::GetUserRequest const& request) override; + + google::cloud::future> + AsyncCreateUser( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::CreateUserRequest const& request) override; + + StatusOr CreateUser( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::CreateUserRequest const& request) override; + + google::cloud::future> + AsyncUpdateUser( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::UpdateUserRequest const& request) override; + + StatusOr UpdateUser( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::UpdateUserRequest const& request) override; + + google::cloud::future> + AsyncDeleteUser( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::DeleteUserRequest const& request) override; + + StatusOr DeleteUser( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::DeleteUserRequest const& request) override; + + google::cloud::future> + AsyncStartServer( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::StartServerRequest const& request) override; + + StatusOr StartServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::StartServerRequest const& request) override; + + google::cloud::future> + AsyncStopServer( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::StopServerRequest const& request) override; + + StatusOr StopServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::StopServerRequest const& request) override; + + StatusOr ListLocations( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::location::ListLocationsRequest const& request) override; + + StatusOr GetLocation( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::location::GetLocationRequest const& request) override; + + StatusOr ListOperations( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::longrunning::ListOperationsRequest const& request) override; + + StatusOr GetOperation( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::longrunning::GetOperationRequest const& request) override; + + Status DeleteOperation( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::longrunning::DeleteOperationRequest const& request) override; + + Status CancelOperation( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::longrunning::CancelOperationRequest const& request) override; + + google::cloud::future> + AsyncGetOperation( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) override; + + google::cloud::future AsyncCancelOperation( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) override; + + private: + void SetMetadata(rest_internal::RestContext& rest_context, + Options const& options, + std::vector const& params = {}); + + std::shared_ptr child_; + std::string api_client_header_; +}; + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace ftp_v1_internal +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_INTERNAL_CLOUD_FTP_REST_METADATA_DECORATOR_H diff --git a/google/cloud/ftp/v1/internal/cloud_ftp_rest_stub.cc b/google/cloud/ftp/v1/internal/cloud_ftp_rest_stub.cc new file mode 100644 index 0000000000000..1b3f5fe8be84e --- /dev/null +++ b/google/cloud/ftp/v1/internal/cloud_ftp_rest_stub.cc @@ -0,0 +1,617 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/ftp/v1/service.proto + +#include "google/cloud/ftp/v1/internal/cloud_ftp_rest_stub.h" +#include "google/cloud/ftp/v1/service.pb.h" +#include "google/cloud/common_options.h" +#include "google/cloud/internal/rest_stub_helpers.h" +#include "google/cloud/status_or.h" +#include "absl/strings/str_cat.h" +#include "google/longrunning/operations.pb.h" +#include +#include + +namespace google { +namespace cloud { +namespace ftp_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +DefaultCloudFtpRestStub::DefaultCloudFtpRestStub(Options options) + : service_(rest_internal::MakePooledRestClient( + options.get(), options)), + operations_(rest_internal::MakePooledRestClient( + options.get(), options)), + options_(std::move(options)) {} + +DefaultCloudFtpRestStub::DefaultCloudFtpRestStub( + std::shared_ptr service, + std::shared_ptr operations, Options options) + : service_(std::move(service)), + operations_(std::move(operations)), + options_(std::move(options)) {} + +StatusOr +DefaultCloudFtpRestStub::ListServers( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::ListServersRequest const& request) { + std::vector> query_params; + query_params.push_back({"page_size", std::to_string(request.page_size())}); + query_params.push_back({"page_token", request.page_token()}); + query_params.push_back({"filter", request.filter()}); + query_params.push_back({"order_by", request.order_by()}); + query_params.push_back({"view", std::to_string(request.view())}); + query_params = + rest_internal::TrimEmptyQueryParameters(std::move(query_params)); + return rest_internal::Get( + *service_, rest_context, request, false, + absl::StrCat("/", rest_internal::DetermineApiVersion("v1", options), "/", + request.parent(), "/", "servers"), + std::move(query_params)); +} + +StatusOr DefaultCloudFtpRestStub::GetServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::GetServerRequest const& request) { + std::vector> query_params; + query_params.push_back({"view", std::to_string(request.view())}); + query_params = + rest_internal::TrimEmptyQueryParameters(std::move(query_params)); + return rest_internal::Get( + *service_, rest_context, request, false, + absl::StrCat("/", rest_internal::DetermineApiVersion("v1", options), "/", + request.name()), + std::move(query_params)); +} + +future> +DefaultCloudFtpRestStub::AsyncCreateServer( + CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::CreateServerRequest const& request) { + promise> p; + future> f = p.get_future(); + std::thread t{ + [](auto p, auto service, auto request, auto rest_context, auto options) { + std::vector> query_params; + query_params.push_back({"server_id", request.server_id()}); + query_params.push_back({"request_id", request.request_id()}); + query_params = + rest_internal::TrimEmptyQueryParameters(std::move(query_params)); + p.set_value(rest_internal::Post( + *service, *rest_context, request.server(), false, + absl::StrCat("/", + rest_internal::DetermineApiVersion("v1", *options), + "/", request.parent(), "/", "servers"), + std::move(query_params))); + }, + std::move(p), + service_, + request, + std::move(rest_context), + std::move(options)}; + return f.then([t = std::move(t), cq](auto f) mutable { + cq.RunAsync([t = std::move(t)]() mutable { t.join(); }); + return f.get(); + }); +} + +StatusOr DefaultCloudFtpRestStub::CreateServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::CreateServerRequest const& request) { + std::vector> query_params; + query_params.push_back({"server_id", request.server_id()}); + query_params.push_back({"request_id", request.request_id()}); + query_params = + rest_internal::TrimEmptyQueryParameters(std::move(query_params)); + return rest_internal::Post( + *service_, rest_context, request.server(), false, + absl::StrCat("/", rest_internal::DetermineApiVersion("v1", options), "/", + request.parent(), "/", "servers"), + std::move(query_params)); +} + +future> +DefaultCloudFtpRestStub::AsyncUpdateServer( + CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::UpdateServerRequest const& request) { + promise> p; + future> f = p.get_future(); + std::thread t{ + [](auto p, auto service, auto request, auto rest_context, auto options) { + std::vector> query_params; + query_params.push_back({"request_id", request.request_id()}); + query_params = + rest_internal::TrimEmptyQueryParameters(std::move(query_params)); + p.set_value(rest_internal::Patch( + *service, *rest_context, request.server(), false, + absl::StrCat("/", + rest_internal::DetermineApiVersion("v1", *options), + "/", request.server().name()), + std::move(query_params))); + }, + std::move(p), + service_, + request, + std::move(rest_context), + std::move(options)}; + return f.then([t = std::move(t), cq](auto f) mutable { + cq.RunAsync([t = std::move(t)]() mutable { t.join(); }); + return f.get(); + }); +} + +StatusOr DefaultCloudFtpRestStub::UpdateServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::UpdateServerRequest const& request) { + std::vector> query_params; + query_params.push_back({"request_id", request.request_id()}); + query_params = + rest_internal::TrimEmptyQueryParameters(std::move(query_params)); + return rest_internal::Patch( + *service_, rest_context, request.server(), false, + absl::StrCat("/", rest_internal::DetermineApiVersion("v1", options), "/", + request.server().name()), + std::move(query_params)); +} + +future> +DefaultCloudFtpRestStub::AsyncDeleteServer( + CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::DeleteServerRequest const& request) { + promise> p; + future> f = p.get_future(); + std::thread t{ + [](auto p, auto service, auto request, auto rest_context, auto options) { + std::vector> query_params; + p.set_value(rest_internal::Delete( + *service, *rest_context, request, false, + absl::StrCat("/", + rest_internal::DetermineApiVersion("v1", *options), + "/", request.name()), + std::move(query_params))); + }, + std::move(p), + service_, + request, + std::move(rest_context), + std::move(options)}; + return f.then([t = std::move(t), cq](auto f) mutable { + cq.RunAsync([t = std::move(t)]() mutable { t.join(); }); + return f.get(); + }); +} + +StatusOr DefaultCloudFtpRestStub::DeleteServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::DeleteServerRequest const& request) { + std::vector> query_params; + return rest_internal::Delete( + *service_, rest_context, request, false, + absl::StrCat("/", rest_internal::DetermineApiVersion("v1", options), "/", + request.name()), + std::move(query_params)); +} + +StatusOr +DefaultCloudFtpRestStub::ListUsers( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::ListUsersRequest const& request) { + std::vector> query_params; + query_params.push_back({"page_size", std::to_string(request.page_size())}); + query_params.push_back({"page_token", request.page_token()}); + query_params.push_back({"filter", request.filter()}); + query_params.push_back({"order_by", request.order_by()}); + query_params.push_back({"view", std::to_string(request.view())}); + query_params = + rest_internal::TrimEmptyQueryParameters(std::move(query_params)); + return rest_internal::Get( + *service_, rest_context, request, false, + absl::StrCat("/", rest_internal::DetermineApiVersion("v1", options), "/", + request.parent(), "/", "users"), + std::move(query_params)); +} + +StatusOr DefaultCloudFtpRestStub::GetUser( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::GetUserRequest const& request) { + std::vector> query_params; + query_params.push_back({"view", std::to_string(request.view())}); + query_params = + rest_internal::TrimEmptyQueryParameters(std::move(query_params)); + return rest_internal::Get( + *service_, rest_context, request, false, + absl::StrCat("/", rest_internal::DetermineApiVersion("v1", options), "/", + request.name()), + std::move(query_params)); +} + +future> +DefaultCloudFtpRestStub::AsyncCreateUser( + CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::CreateUserRequest const& request) { + promise> p; + future> f = p.get_future(); + std::thread t{ + [](auto p, auto service, auto request, auto rest_context, auto options) { + std::vector> query_params; + query_params.push_back({"user_id", request.user_id()}); + query_params.push_back({"request_id", request.request_id()}); + query_params = + rest_internal::TrimEmptyQueryParameters(std::move(query_params)); + p.set_value(rest_internal::Post( + *service, *rest_context, request.user(), false, + absl::StrCat("/", + rest_internal::DetermineApiVersion("v1", *options), + "/", request.parent(), "/", "users"), + std::move(query_params))); + }, + std::move(p), + service_, + request, + std::move(rest_context), + std::move(options)}; + return f.then([t = std::move(t), cq](auto f) mutable { + cq.RunAsync([t = std::move(t)]() mutable { t.join(); }); + return f.get(); + }); +} + +StatusOr DefaultCloudFtpRestStub::CreateUser( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::CreateUserRequest const& request) { + std::vector> query_params; + query_params.push_back({"user_id", request.user_id()}); + query_params.push_back({"request_id", request.request_id()}); + query_params = + rest_internal::TrimEmptyQueryParameters(std::move(query_params)); + return rest_internal::Post( + *service_, rest_context, request.user(), false, + absl::StrCat("/", rest_internal::DetermineApiVersion("v1", options), "/", + request.parent(), "/", "users"), + std::move(query_params)); +} + +future> +DefaultCloudFtpRestStub::AsyncUpdateUser( + CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::UpdateUserRequest const& request) { + promise> p; + future> f = p.get_future(); + std::thread t{ + [](auto p, auto service, auto request, auto rest_context, auto options) { + std::vector> query_params; + p.set_value(rest_internal::Patch( + *service, *rest_context, request.user(), false, + absl::StrCat("/", + rest_internal::DetermineApiVersion("v1", *options), + "/", request.user().name()), + std::move(query_params))); + }, + std::move(p), + service_, + request, + std::move(rest_context), + std::move(options)}; + return f.then([t = std::move(t), cq](auto f) mutable { + cq.RunAsync([t = std::move(t)]() mutable { t.join(); }); + return f.get(); + }); +} + +StatusOr DefaultCloudFtpRestStub::UpdateUser( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::UpdateUserRequest const& request) { + std::vector> query_params; + return rest_internal::Patch( + *service_, rest_context, request.user(), false, + absl::StrCat("/", rest_internal::DetermineApiVersion("v1", options), "/", + request.user().name()), + std::move(query_params)); +} + +future> +DefaultCloudFtpRestStub::AsyncDeleteUser( + CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::DeleteUserRequest const& request) { + promise> p; + future> f = p.get_future(); + std::thread t{ + [](auto p, auto service, auto request, auto rest_context, auto options) { + std::vector> query_params; + query_params.push_back({"force", (request.force() ? "1" : "0")}); + query_params = + rest_internal::TrimEmptyQueryParameters(std::move(query_params)); + p.set_value(rest_internal::Delete( + *service, *rest_context, request, false, + absl::StrCat("/", + rest_internal::DetermineApiVersion("v1", *options), + "/", request.name()), + std::move(query_params))); + }, + std::move(p), + service_, + request, + std::move(rest_context), + std::move(options)}; + return f.then([t = std::move(t), cq](auto f) mutable { + cq.RunAsync([t = std::move(t)]() mutable { t.join(); }); + return f.get(); + }); +} + +StatusOr DefaultCloudFtpRestStub::DeleteUser( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::DeleteUserRequest const& request) { + std::vector> query_params; + query_params.push_back({"force", (request.force() ? "1" : "0")}); + query_params = + rest_internal::TrimEmptyQueryParameters(std::move(query_params)); + return rest_internal::Delete( + *service_, rest_context, request, false, + absl::StrCat("/", rest_internal::DetermineApiVersion("v1", options), "/", + request.name()), + std::move(query_params)); +} + +future> +DefaultCloudFtpRestStub::AsyncStartServer( + CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::StartServerRequest const& request) { + promise> p; + future> f = p.get_future(); + std::thread t{ + [](auto p, auto service, auto request, auto rest_context, auto options) { + std::vector> query_params; + p.set_value(rest_internal::Post( + *service, *rest_context, request, false, + absl::StrCat("/", + rest_internal::DetermineApiVersion("v1", *options), + "/", request.name(), ":start"), + std::move(query_params))); + }, + std::move(p), + service_, + request, + std::move(rest_context), + std::move(options)}; + return f.then([t = std::move(t), cq](auto f) mutable { + cq.RunAsync([t = std::move(t)]() mutable { t.join(); }); + return f.get(); + }); +} + +StatusOr DefaultCloudFtpRestStub::StartServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::StartServerRequest const& request) { + std::vector> query_params; + return rest_internal::Post( + *service_, rest_context, request, false, + absl::StrCat("/", rest_internal::DetermineApiVersion("v1", options), "/", + request.name(), ":start"), + std::move(query_params)); +} + +future> +DefaultCloudFtpRestStub::AsyncStopServer( + CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::StopServerRequest const& request) { + promise> p; + future> f = p.get_future(); + std::thread t{ + [](auto p, auto service, auto request, auto rest_context, auto options) { + std::vector> query_params; + p.set_value(rest_internal::Post( + *service, *rest_context, request, false, + absl::StrCat("/", + rest_internal::DetermineApiVersion("v1", *options), + "/", request.name(), ":stop"), + std::move(query_params))); + }, + std::move(p), + service_, + request, + std::move(rest_context), + std::move(options)}; + return f.then([t = std::move(t), cq](auto f) mutable { + cq.RunAsync([t = std::move(t)]() mutable { t.join(); }); + return f.get(); + }); +} + +StatusOr DefaultCloudFtpRestStub::StopServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::StopServerRequest const& request) { + std::vector> query_params; + return rest_internal::Post( + *service_, rest_context, request, false, + absl::StrCat("/", rest_internal::DetermineApiVersion("v1", options), "/", + request.name(), ":stop"), + std::move(query_params)); +} + +StatusOr +DefaultCloudFtpRestStub::ListLocations( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::location::ListLocationsRequest const& request) { + std::vector> query_params; + query_params.push_back({"filter", request.filter()}); + query_params.push_back({"page_size", std::to_string(request.page_size())}); + query_params.push_back({"page_token", request.page_token()}); + query_params = + rest_internal::TrimEmptyQueryParameters(std::move(query_params)); + return rest_internal::Get( + *service_, rest_context, request, false, + absl::StrCat("/", rest_internal::DetermineApiVersion("v1", options), "/", + request.name(), "/", "locations"), + std::move(query_params)); +} + +StatusOr +DefaultCloudFtpRestStub::GetLocation( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::location::GetLocationRequest const& request) { + std::vector> query_params; + return rest_internal::Get( + *service_, rest_context, request, false, + absl::StrCat("/", rest_internal::DetermineApiVersion("v1", options), "/", + request.name()), + std::move(query_params)); +} + +StatusOr +DefaultCloudFtpRestStub::ListOperations( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::longrunning::ListOperationsRequest const& request) { + std::vector> query_params; + query_params.push_back({"filter", request.filter()}); + query_params.push_back({"page_size", std::to_string(request.page_size())}); + query_params.push_back({"page_token", request.page_token()}); + query_params = + rest_internal::TrimEmptyQueryParameters(std::move(query_params)); + return rest_internal::Get( + *service_, rest_context, request, false, + absl::StrCat("/", rest_internal::DetermineApiVersion("v1", options), "/", + request.name(), "/", "operations"), + std::move(query_params)); +} + +StatusOr DefaultCloudFtpRestStub::GetOperation( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::longrunning::GetOperationRequest const& request) { + std::vector> query_params; + return rest_internal::Get( + *service_, rest_context, request, false, + absl::StrCat("/", rest_internal::DetermineApiVersion("v1", options), "/", + request.name()), + std::move(query_params)); +} + +Status DefaultCloudFtpRestStub::DeleteOperation( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::longrunning::DeleteOperationRequest const& request) { + std::vector> query_params; + return rest_internal::Delete( + *service_, rest_context, request, false, + absl::StrCat("/", rest_internal::DetermineApiVersion("v1", options), "/", + request.name()), + std::move(query_params)); +} + +Status DefaultCloudFtpRestStub::CancelOperation( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::longrunning::CancelOperationRequest const& request) { + std::vector> query_params; + return rest_internal::Post( + *service_, rest_context, request, false, + absl::StrCat("/", rest_internal::DetermineApiVersion("v1", options), "/", + request.name(), ":cancel"), + std::move(query_params)); +} + +future> +DefaultCloudFtpRestStub::AsyncGetOperation( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + promise> p; + future> f = p.get_future(); + std::thread t{ + [](auto p, auto operations, auto request, auto rest_context, + auto options) { + p.set_value(rest_internal::Get( + *operations, *rest_context, request, false, + absl::StrCat("/", + rest_internal::DetermineApiVersion("v1", *options), + "/", request.name()))); + }, + std::move(p), + operations_, + request, + std::move(rest_context), + std::move(options)}; + return f.then([t = std::move(t), cq](auto f) mutable { + cq.RunAsync([t = std::move(t)]() mutable { t.join(); }); + return f.get(); + }); +} + +future DefaultCloudFtpRestStub::AsyncCancelOperation( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + promise> p; + future> f = p.get_future(); + std::thread t{ + [](auto p, auto operations, auto request, auto rest_context, + auto options) { + p.set_value(rest_internal::Post( + *operations, *rest_context, request, false, + absl::StrCat("/", + rest_internal::DetermineApiVersion("v1", *options), + "/", request.name(), ":cancel"))); + }, + std::move(p), + operations_, + request, + std::move(rest_context), + std::move(options)}; + return f.then([t = std::move(t), cq](auto f) mutable { + cq.RunAsync([t = std::move(t)]() mutable { t.join(); }); + return f.get().status(); + }); +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace ftp_v1_internal +} // namespace cloud +} // namespace google diff --git a/google/cloud/ftp/v1/internal/cloud_ftp_rest_stub.h b/google/cloud/ftp/v1/internal/cloud_ftp_rest_stub.h new file mode 100644 index 0000000000000..b0ca39a41cde8 --- /dev/null +++ b/google/cloud/ftp/v1/internal/cloud_ftp_rest_stub.h @@ -0,0 +1,363 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/ftp/v1/service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_INTERNAL_CLOUD_FTP_REST_STUB_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_INTERNAL_CLOUD_FTP_REST_STUB_H + +#include "google/cloud/ftp/v1/service.pb.h" +#include "google/cloud/location/locations.pb.h" +#include "google/cloud/completion_queue.h" +#include "google/cloud/internal/rest_client.h" +#include "google/cloud/internal/rest_context.h" +#include "google/cloud/status_or.h" +#include "google/cloud/version.h" +#include "google/longrunning/operations.pb.h" +#include + +namespace google { +namespace cloud { +namespace ftp_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +class CloudFtpRestStub { + public: + virtual ~CloudFtpRestStub() = default; + + virtual StatusOr ListServers( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::ListServersRequest const& request) = 0; + + virtual StatusOr GetServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::GetServerRequest const& request) = 0; + + virtual future> AsyncCreateServer( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::CreateServerRequest const& request) = 0; + + virtual StatusOr CreateServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::CreateServerRequest const& request) = 0; + + virtual future> AsyncUpdateServer( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::UpdateServerRequest const& request) = 0; + + virtual StatusOr UpdateServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::UpdateServerRequest const& request) = 0; + + virtual future> AsyncDeleteServer( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::DeleteServerRequest const& request) = 0; + + virtual StatusOr DeleteServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::DeleteServerRequest const& request) = 0; + + virtual StatusOr ListUsers( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::ListUsersRequest const& request) = 0; + + virtual StatusOr GetUser( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::GetUserRequest const& request) = 0; + + virtual future> AsyncCreateUser( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::CreateUserRequest const& request) = 0; + + virtual StatusOr CreateUser( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::CreateUserRequest const& request) = 0; + + virtual future> AsyncUpdateUser( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::UpdateUserRequest const& request) = 0; + + virtual StatusOr UpdateUser( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::UpdateUserRequest const& request) = 0; + + virtual future> AsyncDeleteUser( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::DeleteUserRequest const& request) = 0; + + virtual StatusOr DeleteUser( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::DeleteUserRequest const& request) = 0; + + virtual future> AsyncStartServer( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::StartServerRequest const& request) = 0; + + virtual StatusOr StartServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::StartServerRequest const& request) = 0; + + virtual future> AsyncStopServer( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::StopServerRequest const& request) = 0; + + virtual StatusOr StopServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::StopServerRequest const& request) = 0; + + virtual StatusOr + ListLocations( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::location::ListLocationsRequest const& request) = 0; + + virtual StatusOr GetLocation( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::location::GetLocationRequest const& request) = 0; + + virtual StatusOr ListOperations( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::longrunning::ListOperationsRequest const& request) = 0; + + virtual StatusOr GetOperation( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::longrunning::GetOperationRequest const& request) = 0; + + virtual Status DeleteOperation( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::longrunning::DeleteOperationRequest const& request) = 0; + + virtual Status CancelOperation( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::longrunning::CancelOperationRequest const& request) = 0; + + virtual future> AsyncGetOperation( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) = 0; + + virtual future AsyncCancelOperation( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) = 0; +}; + +class DefaultCloudFtpRestStub : public CloudFtpRestStub { + public: + ~DefaultCloudFtpRestStub() override = default; + + explicit DefaultCloudFtpRestStub(Options options); + DefaultCloudFtpRestStub(std::shared_ptr service, + std::shared_ptr operations, + Options options); + + StatusOr ListServers( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::ListServersRequest const& request) override; + + StatusOr GetServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::GetServerRequest const& request) override; + + future> AsyncCreateServer( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::CreateServerRequest const& request) override; + + StatusOr CreateServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::CreateServerRequest const& request) override; + + future> AsyncUpdateServer( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::UpdateServerRequest const& request) override; + + StatusOr UpdateServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::UpdateServerRequest const& request) override; + + future> AsyncDeleteServer( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::DeleteServerRequest const& request) override; + + StatusOr DeleteServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::DeleteServerRequest const& request) override; + + StatusOr ListUsers( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::ListUsersRequest const& request) override; + + StatusOr GetUser( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::GetUserRequest const& request) override; + + future> AsyncCreateUser( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::CreateUserRequest const& request) override; + + StatusOr CreateUser( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::CreateUserRequest const& request) override; + + future> AsyncUpdateUser( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::UpdateUserRequest const& request) override; + + StatusOr UpdateUser( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::UpdateUserRequest const& request) override; + + future> AsyncDeleteUser( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::DeleteUserRequest const& request) override; + + StatusOr DeleteUser( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::DeleteUserRequest const& request) override; + + future> AsyncStartServer( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::StartServerRequest const& request) override; + + StatusOr StartServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::StartServerRequest const& request) override; + + future> AsyncStopServer( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::ftp::v1::StopServerRequest const& request) override; + + StatusOr StopServer( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::ftp::v1::StopServerRequest const& request) override; + + StatusOr ListLocations( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::location::ListLocationsRequest const& request) override; + + StatusOr GetLocation( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::location::GetLocationRequest const& request) override; + + StatusOr ListOperations( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::longrunning::ListOperationsRequest const& request) override; + + StatusOr GetOperation( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::longrunning::GetOperationRequest const& request) override; + + Status DeleteOperation( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::longrunning::DeleteOperationRequest const& request) override; + + Status CancelOperation( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::longrunning::CancelOperationRequest const& request) override; + + future> AsyncGetOperation( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) override; + + future AsyncCancelOperation( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) override; + + private: + std::shared_ptr service_; + std::shared_ptr operations_; + Options options_; +}; + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace ftp_v1_internal +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_INTERNAL_CLOUD_FTP_REST_STUB_H diff --git a/google/cloud/ftp/v1/internal/cloud_ftp_rest_stub_factory.cc b/google/cloud/ftp/v1/internal/cloud_ftp_rest_stub_factory.cc new file mode 100644 index 0000000000000..8d0077c72007c --- /dev/null +++ b/google/cloud/ftp/v1/internal/cloud_ftp_rest_stub_factory.cc @@ -0,0 +1,56 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/ftp/v1/service.proto + +#include "google/cloud/ftp/v1/internal/cloud_ftp_rest_stub_factory.h" +#include "google/cloud/ftp/v1/internal/cloud_ftp_rest_logging_decorator.h" +#include "google/cloud/ftp/v1/internal/cloud_ftp_rest_metadata_decorator.h" +#include "google/cloud/ftp/v1/internal/cloud_ftp_rest_stub.h" +#include "google/cloud/common_options.h" +#include "google/cloud/internal/algorithm.h" +#include "google/cloud/internal/populate_rest_options.h" +#include "google/cloud/log.h" +#include "google/cloud/options.h" +#include "google/cloud/rest_options.h" +#include "absl/strings/match.h" +#include +#include + +namespace google { +namespace cloud { +namespace ftp_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +std::shared_ptr CreateDefaultCloudFtpRestStub( + Options const& options) { + auto opts = internal::PopulateRestOptions(options); + std::shared_ptr stub = + std::make_shared(std::move(opts)); + stub = std::make_shared(std::move(stub)); + if (internal::Contains(options.get(), "rpc")) { + GCP_LOG(INFO) << "Enabled logging for REST rpc calls"; + stub = std::make_shared( + std::move(stub), options.get(), + options.get()); + } + return stub; +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace ftp_v1_internal +} // namespace cloud +} // namespace google diff --git a/google/cloud/ftp/v1/internal/cloud_ftp_rest_stub_factory.h b/google/cloud/ftp/v1/internal/cloud_ftp_rest_stub_factory.h new file mode 100644 index 0000000000000..bc90b986df5f3 --- /dev/null +++ b/google/cloud/ftp/v1/internal/cloud_ftp_rest_stub_factory.h @@ -0,0 +1,40 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/ftp/v1/service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_INTERNAL_CLOUD_FTP_REST_STUB_FACTORY_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_INTERNAL_CLOUD_FTP_REST_STUB_FACTORY_H + +#include "google/cloud/ftp/v1/internal/cloud_ftp_rest_stub.h" +#include "google/cloud/options.h" +#include "google/cloud/version.h" +#include + +namespace google { +namespace cloud { +namespace ftp_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +std::shared_ptr CreateDefaultCloudFtpRestStub( + Options const& options); + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace ftp_v1_internal +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_INTERNAL_CLOUD_FTP_REST_STUB_FACTORY_H diff --git a/google/cloud/ftp/v1/internal/cloud_ftp_retry_traits.h b/google/cloud/ftp/v1/internal/cloud_ftp_retry_traits.h new file mode 100644 index 0000000000000..9729eec7399e8 --- /dev/null +++ b/google/cloud/ftp/v1/internal/cloud_ftp_retry_traits.h @@ -0,0 +1,43 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/ftp/v1/service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_INTERNAL_CLOUD_FTP_RETRY_TRAITS_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_INTERNAL_CLOUD_FTP_RETRY_TRAITS_H + +#include "google/cloud/status.h" +#include "google/cloud/version.h" + +namespace google { +namespace cloud { +namespace ftp_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +/// Define the gRPC status code semantics for retrying requests. +struct CloudFtpRetryTraits { + static bool IsPermanentFailure(google::cloud::Status const& status) { + return status.code() != StatusCode::kOk && + status.code() != StatusCode::kUnavailable; + } +}; + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace ftp_v1_internal +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_INTERNAL_CLOUD_FTP_RETRY_TRAITS_H diff --git a/google/cloud/ftp/v1/internal/cloud_ftp_sources.cc b/google/cloud/ftp/v1/internal/cloud_ftp_sources.cc new file mode 100644 index 0000000000000..c9441db23bae8 --- /dev/null +++ b/google/cloud/ftp/v1/internal/cloud_ftp_sources.cc @@ -0,0 +1,31 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/ftp/v1/service.proto + +// NOLINTBEGIN(bugprone-suspicious-include) +#include "google/cloud/ftp/v1/cloud_ftp_client.cc" +#include "google/cloud/ftp/v1/cloud_ftp_connection.cc" +#include "google/cloud/ftp/v1/cloud_ftp_connection_idempotency_policy.cc" +#include "google/cloud/ftp/v1/cloud_ftp_rest_connection.cc" +#include "google/cloud/ftp/v1/internal/cloud_ftp_option_defaults.cc" +#include "google/cloud/ftp/v1/internal/cloud_ftp_rest_connection_impl.cc" +#include "google/cloud/ftp/v1/internal/cloud_ftp_rest_logging_decorator.cc" +#include "google/cloud/ftp/v1/internal/cloud_ftp_rest_metadata_decorator.cc" +#include "google/cloud/ftp/v1/internal/cloud_ftp_rest_stub.cc" +#include "google/cloud/ftp/v1/internal/cloud_ftp_rest_stub_factory.cc" +#include "google/cloud/ftp/v1/internal/cloud_ftp_tracing_connection.cc" +// NOLINTEND(bugprone-suspicious-include) diff --git a/google/cloud/ftp/v1/internal/cloud_ftp_tracing_connection.cc b/google/cloud/ftp/v1/internal/cloud_ftp_tracing_connection.cc new file mode 100644 index 0000000000000..4b679a48170d1 --- /dev/null +++ b/google/cloud/ftp/v1/internal/cloud_ftp_tracing_connection.cc @@ -0,0 +1,315 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/ftp/v1/service.proto + +#include "google/cloud/ftp/v1/internal/cloud_ftp_tracing_connection.h" +#include "google/cloud/internal/opentelemetry.h" +#include "google/cloud/internal/traced_stream_range.h" +#include +#include + +namespace google { +namespace cloud { +namespace ftp_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +CloudFtpTracingConnection::CloudFtpTracingConnection( + std::shared_ptr child) + : child_(std::move(child)) {} + +StreamRange +CloudFtpTracingConnection::ListServers( + google::cloud::ftp::v1::ListServersRequest request) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::ListServers"); + internal::OTelScope scope(span); + auto sr = child_->ListServers(std::move(request)); + return internal::MakeTracedStreamRange( + std::move(span), std::move(sr)); +} + +StatusOr CloudFtpTracingConnection::GetServer( + google::cloud::ftp::v1::GetServerRequest const& request) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::GetServer"); + auto scope = opentelemetry::trace::Scope(span); + return internal::EndSpan(*span, child_->GetServer(request)); +} + +future> +CloudFtpTracingConnection::CreateServer( + google::cloud::ftp::v1::CreateServerRequest const& request) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::CreateServer"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateServer(request)); +} + +StatusOr +CloudFtpTracingConnection::CreateServer( + NoAwaitTag, google::cloud::ftp::v1::CreateServerRequest const& request) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::CreateServer"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan(*span, child_->CreateServer(NoAwaitTag{}, request)); +} + +future> +CloudFtpTracingConnection::CreateServer( + google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::CreateServer"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateServer(operation)); +} + +future> +CloudFtpTracingConnection::UpdateServer( + google::cloud::ftp::v1::UpdateServerRequest const& request) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::UpdateServer"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateServer(request)); +} + +StatusOr +CloudFtpTracingConnection::UpdateServer( + NoAwaitTag, google::cloud::ftp::v1::UpdateServerRequest const& request) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::UpdateServer"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan(*span, child_->UpdateServer(NoAwaitTag{}, request)); +} + +future> +CloudFtpTracingConnection::UpdateServer( + google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::UpdateServer"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateServer(operation)); +} + +future> +CloudFtpTracingConnection::DeleteServer( + google::cloud::ftp::v1::DeleteServerRequest const& request) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::DeleteServer"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteServer(request)); +} + +StatusOr +CloudFtpTracingConnection::DeleteServer( + NoAwaitTag, google::cloud::ftp::v1::DeleteServerRequest const& request) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::DeleteServer"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan(*span, child_->DeleteServer(NoAwaitTag{}, request)); +} + +future> +CloudFtpTracingConnection::DeleteServer( + google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::DeleteServer"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteServer(operation)); +} + +StreamRange CloudFtpTracingConnection::ListUsers( + google::cloud::ftp::v1::ListUsersRequest request) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::ListUsers"); + internal::OTelScope scope(span); + auto sr = child_->ListUsers(std::move(request)); + return internal::MakeTracedStreamRange( + std::move(span), std::move(sr)); +} + +StatusOr CloudFtpTracingConnection::GetUser( + google::cloud::ftp::v1::GetUserRequest const& request) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::GetUser"); + auto scope = opentelemetry::trace::Scope(span); + return internal::EndSpan(*span, child_->GetUser(request)); +} + +future> +CloudFtpTracingConnection::CreateUser( + google::cloud::ftp::v1::CreateUserRequest const& request) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::CreateUser"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateUser(request)); +} + +StatusOr CloudFtpTracingConnection::CreateUser( + NoAwaitTag, google::cloud::ftp::v1::CreateUserRequest const& request) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::CreateUser"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan(*span, child_->CreateUser(NoAwaitTag{}, request)); +} + +future> +CloudFtpTracingConnection::CreateUser( + google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::CreateUser"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateUser(operation)); +} + +future> +CloudFtpTracingConnection::UpdateUser( + google::cloud::ftp::v1::UpdateUserRequest const& request) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::UpdateUser"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateUser(request)); +} + +StatusOr CloudFtpTracingConnection::UpdateUser( + NoAwaitTag, google::cloud::ftp::v1::UpdateUserRequest const& request) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::UpdateUser"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan(*span, child_->UpdateUser(NoAwaitTag{}, request)); +} + +future> +CloudFtpTracingConnection::UpdateUser( + google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::UpdateUser"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateUser(operation)); +} + +future> +CloudFtpTracingConnection::DeleteUser( + google::cloud::ftp::v1::DeleteUserRequest const& request) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::DeleteUser"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteUser(request)); +} + +StatusOr CloudFtpTracingConnection::DeleteUser( + NoAwaitTag, google::cloud::ftp::v1::DeleteUserRequest const& request) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::DeleteUser"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan(*span, child_->DeleteUser(NoAwaitTag{}, request)); +} + +future> +CloudFtpTracingConnection::DeleteUser( + google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::DeleteUser"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteUser(operation)); +} + +future> +CloudFtpTracingConnection::StartServer( + google::cloud::ftp::v1::StartServerRequest const& request) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::StartServer"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->StartServer(request)); +} + +StatusOr CloudFtpTracingConnection::StartServer( + NoAwaitTag, google::cloud::ftp::v1::StartServerRequest const& request) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::StartServer"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan(*span, child_->StartServer(NoAwaitTag{}, request)); +} + +future> +CloudFtpTracingConnection::StartServer( + google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::StartServer"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->StartServer(operation)); +} + +future> +CloudFtpTracingConnection::StopServer( + google::cloud::ftp::v1::StopServerRequest const& request) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::StopServer"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->StopServer(request)); +} + +StatusOr CloudFtpTracingConnection::StopServer( + NoAwaitTag, google::cloud::ftp::v1::StopServerRequest const& request) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::StopServer"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan(*span, child_->StopServer(NoAwaitTag{}, request)); +} + +future> +CloudFtpTracingConnection::StopServer( + google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::StopServer"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->StopServer(operation)); +} + +StreamRange +CloudFtpTracingConnection::ListLocations( + google::cloud::location::ListLocationsRequest request) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::ListLocations"); + internal::OTelScope scope(span); + auto sr = child_->ListLocations(std::move(request)); + return internal::MakeTracedStreamRange( + std::move(span), std::move(sr)); +} + +StatusOr +CloudFtpTracingConnection::GetLocation( + google::cloud::location::GetLocationRequest const& request) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::GetLocation"); + auto scope = opentelemetry::trace::Scope(span); + return internal::EndSpan(*span, child_->GetLocation(request)); +} + +StreamRange +CloudFtpTracingConnection::ListOperations( + google::longrunning::ListOperationsRequest request) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::ListOperations"); + internal::OTelScope scope(span); + auto sr = child_->ListOperations(std::move(request)); + return internal::MakeTracedStreamRange( + std::move(span), std::move(sr)); +} + +StatusOr +CloudFtpTracingConnection::GetOperation( + google::longrunning::GetOperationRequest const& request) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::GetOperation"); + auto scope = opentelemetry::trace::Scope(span); + return internal::EndSpan(*span, child_->GetOperation(request)); +} + +Status CloudFtpTracingConnection::DeleteOperation( + google::longrunning::DeleteOperationRequest const& request) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::DeleteOperation"); + auto scope = opentelemetry::trace::Scope(span); + return internal::EndSpan(*span, child_->DeleteOperation(request)); +} + +Status CloudFtpTracingConnection::CancelOperation( + google::longrunning::CancelOperationRequest const& request) { + auto span = internal::MakeSpan("ftp_v1::CloudFtpConnection::CancelOperation"); + auto scope = opentelemetry::trace::Scope(span); + return internal::EndSpan(*span, child_->CancelOperation(request)); +} + +std::shared_ptr MakeCloudFtpTracingConnection( + std::shared_ptr conn) { + if (internal::TracingEnabled(conn->options())) { + conn = std::make_shared(std::move(conn)); + } + return conn; +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace ftp_v1_internal +} // namespace cloud +} // namespace google diff --git a/google/cloud/ftp/v1/internal/cloud_ftp_tracing_connection.h b/google/cloud/ftp/v1/internal/cloud_ftp_tracing_connection.h new file mode 100644 index 0000000000000..95fe0c30d0319 --- /dev/null +++ b/google/cloud/ftp/v1/internal/cloud_ftp_tracing_connection.h @@ -0,0 +1,168 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/ftp/v1/service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_INTERNAL_CLOUD_FTP_TRACING_CONNECTION_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_INTERNAL_CLOUD_FTP_TRACING_CONNECTION_H + +#include "google/cloud/ftp/v1/cloud_ftp_connection.h" +#include "google/cloud/version.h" +#include + +namespace google { +namespace cloud { +namespace ftp_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +class CloudFtpTracingConnection : public ftp_v1::CloudFtpConnection { + public: + ~CloudFtpTracingConnection() override = default; + + explicit CloudFtpTracingConnection( + std::shared_ptr child); + + Options options() override { return child_->options(); } + + StreamRange ListServers( + google::cloud::ftp::v1::ListServersRequest request) override; + + StatusOr GetServer( + google::cloud::ftp::v1::GetServerRequest const& request) override; + + future> CreateServer( + google::cloud::ftp::v1::CreateServerRequest const& request) override; + + StatusOr CreateServer( + NoAwaitTag, + google::cloud::ftp::v1::CreateServerRequest const& request) override; + + future> CreateServer( + google::longrunning::Operation const& operation) override; + + future> UpdateServer( + google::cloud::ftp::v1::UpdateServerRequest const& request) override; + + StatusOr UpdateServer( + NoAwaitTag, + google::cloud::ftp::v1::UpdateServerRequest const& request) override; + + future> UpdateServer( + google::longrunning::Operation const& operation) override; + + future> DeleteServer( + google::cloud::ftp::v1::DeleteServerRequest const& request) override; + + StatusOr DeleteServer( + NoAwaitTag, + google::cloud::ftp::v1::DeleteServerRequest const& request) override; + + future> DeleteServer( + google::longrunning::Operation const& operation) override; + + StreamRange ListUsers( + google::cloud::ftp::v1::ListUsersRequest request) override; + + StatusOr GetUser( + google::cloud::ftp::v1::GetUserRequest const& request) override; + + future> CreateUser( + google::cloud::ftp::v1::CreateUserRequest const& request) override; + + StatusOr CreateUser( + NoAwaitTag, + google::cloud::ftp::v1::CreateUserRequest const& request) override; + + future> CreateUser( + google::longrunning::Operation const& operation) override; + + future> UpdateUser( + google::cloud::ftp::v1::UpdateUserRequest const& request) override; + + StatusOr UpdateUser( + NoAwaitTag, + google::cloud::ftp::v1::UpdateUserRequest const& request) override; + + future> UpdateUser( + google::longrunning::Operation const& operation) override; + + future> DeleteUser( + google::cloud::ftp::v1::DeleteUserRequest const& request) override; + + StatusOr DeleteUser( + NoAwaitTag, + google::cloud::ftp::v1::DeleteUserRequest const& request) override; + + future> DeleteUser( + google::longrunning::Operation const& operation) override; + + future> StartServer( + google::cloud::ftp::v1::StartServerRequest const& request) override; + + StatusOr StartServer( + NoAwaitTag, + google::cloud::ftp::v1::StartServerRequest const& request) override; + + future> StartServer( + google::longrunning::Operation const& operation) override; + + future> StopServer( + google::cloud::ftp::v1::StopServerRequest const& request) override; + + StatusOr StopServer( + NoAwaitTag, + google::cloud::ftp::v1::StopServerRequest const& request) override; + + future> StopServer( + google::longrunning::Operation const& operation) override; + + StreamRange ListLocations( + google::cloud::location::ListLocationsRequest request) override; + + StatusOr GetLocation( + google::cloud::location::GetLocationRequest const& request) override; + + StreamRange ListOperations( + google::longrunning::ListOperationsRequest request) override; + + StatusOr GetOperation( + google::longrunning::GetOperationRequest const& request) override; + + Status DeleteOperation( + google::longrunning::DeleteOperationRequest const& request) override; + + Status CancelOperation( + google::longrunning::CancelOperationRequest const& request) override; + + private: + std::shared_ptr child_; +}; + +/** + * Conditionally applies the tracing decorator to the given connection. + * + * The connection is only decorated if tracing is enabled (as determined by the + * connection's options). + */ +std::shared_ptr MakeCloudFtpTracingConnection( + std::shared_ptr conn); + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace ftp_v1_internal +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_INTERNAL_CLOUD_FTP_TRACING_CONNECTION_H diff --git a/google/cloud/ftp/v1/mocks/mock_cloud_ftp_connection.h b/google/cloud/ftp/v1/mocks/mock_cloud_ftp_connection.h new file mode 100644 index 0000000000000..5d774eb7a34ed --- /dev/null +++ b/google/cloud/ftp/v1/mocks/mock_cloud_ftp_connection.h @@ -0,0 +1,372 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/ftp/v1/service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_MOCKS_MOCK_CLOUD_FTP_CONNECTION_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_MOCKS_MOCK_CLOUD_FTP_CONNECTION_H + +#include "google/cloud/ftp/v1/cloud_ftp_connection.h" +#include + +namespace google { +namespace cloud { +namespace ftp_v1_mocks { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +/** + * A class to mock `CloudFtpConnection`. + * + * Application developers may want to test their code with simulated responses, + * including errors, from an object of type `CloudFtpClient`. To do so, + * construct an object of type `CloudFtpClient` with an instance of this + * class. Then use the Google Test framework functions to program the behavior + * of this mock. + * + * @see [This example][bq-mock] for how to test your application with GoogleTest. + * While the example showcases types from the BigQuery library, the underlying + * principles apply for any pair of `*Client` and `*Connection`. + * + * [bq-mock]: @cloud_cpp_docs_link{bigquery,bigquery-read-mock} + */ +class MockCloudFtpConnection : public ftp_v1::CloudFtpConnection { + public: + MOCK_METHOD(Options, options, (), (override)); + + MOCK_METHOD((StreamRange), ListServers, + (google::cloud::ftp::v1::ListServersRequest request), (override)); + + MOCK_METHOD(StatusOr, GetServer, + (google::cloud::ftp::v1::GetServerRequest const& request), + (override)); + + /// To disambiguate calls, use: + /// + /// @code + /// using ::testing::_; + /// using ::testing::Matcher; + /// EXPECT_CALL(*mock, + /// CreateServer(Matcher(_))) + /// @endcode + MOCK_METHOD(future>, CreateServer, + (google::cloud::ftp::v1::CreateServerRequest const& request), + (override)); + + /// To disambiguate calls, use: + /// + /// @code + /// using ::testing::_; + /// EXPECT_CALL(*mock, CreateServer(_, _)) + /// @endcode + MOCK_METHOD(StatusOr, CreateServer, + (NoAwaitTag, + google::cloud::ftp::v1::CreateServerRequest const& request), + (override)); + + /// To disambiguate calls, use: + /// + /// @code + /// using ::testing::_; + /// using ::testing::Matcher; + /// EXPECT_CALL(*mock, CreateServer(Matcher(_))) + /// @endcode + MOCK_METHOD(future>, CreateServer, + (google::longrunning::Operation const& operation), (override)); + + /// To disambiguate calls, use: + /// + /// @code + /// using ::testing::_; + /// using ::testing::Matcher; + /// EXPECT_CALL(*mock, + /// UpdateServer(Matcher(_))) + /// @endcode + MOCK_METHOD(future>, UpdateServer, + (google::cloud::ftp::v1::UpdateServerRequest const& request), + (override)); + + /// To disambiguate calls, use: + /// + /// @code + /// using ::testing::_; + /// EXPECT_CALL(*mock, UpdateServer(_, _)) + /// @endcode + MOCK_METHOD(StatusOr, UpdateServer, + (NoAwaitTag, + google::cloud::ftp::v1::UpdateServerRequest const& request), + (override)); + + /// To disambiguate calls, use: + /// + /// @code + /// using ::testing::_; + /// using ::testing::Matcher; + /// EXPECT_CALL(*mock, UpdateServer(Matcher(_))) + /// @endcode + MOCK_METHOD(future>, UpdateServer, + (google::longrunning::Operation const& operation), (override)); + + /// To disambiguate calls, use: + /// + /// @code + /// using ::testing::_; + /// using ::testing::Matcher; + /// EXPECT_CALL(*mock, + /// DeleteServer(Matcher(_))) + /// @endcode + MOCK_METHOD(future>, + DeleteServer, + (google::cloud::ftp::v1::DeleteServerRequest const& request), + (override)); + + /// To disambiguate calls, use: + /// + /// @code + /// using ::testing::_; + /// EXPECT_CALL(*mock, DeleteServer(_, _)) + /// @endcode + MOCK_METHOD(StatusOr, DeleteServer, + (NoAwaitTag, + google::cloud::ftp::v1::DeleteServerRequest const& request), + (override)); + + /// To disambiguate calls, use: + /// + /// @code + /// using ::testing::_; + /// using ::testing::Matcher; + /// EXPECT_CALL(*mock, DeleteServer(Matcher(_))) + /// @endcode + MOCK_METHOD(future>, + DeleteServer, (google::longrunning::Operation const& operation), + (override)); + + MOCK_METHOD((StreamRange), ListUsers, + (google::cloud::ftp::v1::ListUsersRequest request), (override)); + + MOCK_METHOD(StatusOr, GetUser, + (google::cloud::ftp::v1::GetUserRequest const& request), + (override)); + + /// To disambiguate calls, use: + /// + /// @code + /// using ::testing::_; + /// using ::testing::Matcher; + /// EXPECT_CALL(*mock, + /// CreateUser(Matcher(_))) + /// @endcode + MOCK_METHOD(future>, CreateUser, + (google::cloud::ftp::v1::CreateUserRequest const& request), + (override)); + + /// To disambiguate calls, use: + /// + /// @code + /// using ::testing::_; + /// EXPECT_CALL(*mock, CreateUser(_, _)) + /// @endcode + MOCK_METHOD(StatusOr, CreateUser, + (NoAwaitTag, + google::cloud::ftp::v1::CreateUserRequest const& request), + (override)); + + /// To disambiguate calls, use: + /// + /// @code + /// using ::testing::_; + /// using ::testing::Matcher; + /// EXPECT_CALL(*mock, CreateUser(Matcher(_))) + /// @endcode + MOCK_METHOD(future>, CreateUser, + (google::longrunning::Operation const& operation), (override)); + + /// To disambiguate calls, use: + /// + /// @code + /// using ::testing::_; + /// using ::testing::Matcher; + /// EXPECT_CALL(*mock, + /// UpdateUser(Matcher(_))) + /// @endcode + MOCK_METHOD(future>, UpdateUser, + (google::cloud::ftp::v1::UpdateUserRequest const& request), + (override)); + + /// To disambiguate calls, use: + /// + /// @code + /// using ::testing::_; + /// EXPECT_CALL(*mock, UpdateUser(_, _)) + /// @endcode + MOCK_METHOD(StatusOr, UpdateUser, + (NoAwaitTag, + google::cloud::ftp::v1::UpdateUserRequest const& request), + (override)); + + /// To disambiguate calls, use: + /// + /// @code + /// using ::testing::_; + /// using ::testing::Matcher; + /// EXPECT_CALL(*mock, UpdateUser(Matcher(_))) + /// @endcode + MOCK_METHOD(future>, UpdateUser, + (google::longrunning::Operation const& operation), (override)); + + /// To disambiguate calls, use: + /// + /// @code + /// using ::testing::_; + /// using ::testing::Matcher; + /// EXPECT_CALL(*mock, + /// DeleteUser(Matcher(_))) + /// @endcode + MOCK_METHOD(future>, + DeleteUser, + (google::cloud::ftp::v1::DeleteUserRequest const& request), + (override)); + + /// To disambiguate calls, use: + /// + /// @code + /// using ::testing::_; + /// EXPECT_CALL(*mock, DeleteUser(_, _)) + /// @endcode + MOCK_METHOD(StatusOr, DeleteUser, + (NoAwaitTag, + google::cloud::ftp::v1::DeleteUserRequest const& request), + (override)); + + /// To disambiguate calls, use: + /// + /// @code + /// using ::testing::_; + /// using ::testing::Matcher; + /// EXPECT_CALL(*mock, DeleteUser(Matcher(_))) + /// @endcode + MOCK_METHOD(future>, + DeleteUser, (google::longrunning::Operation const& operation), + (override)); + + /// To disambiguate calls, use: + /// + /// @code + /// using ::testing::_; + /// using ::testing::Matcher; + /// EXPECT_CALL(*mock, + /// StartServer(Matcher(_))) + /// @endcode + MOCK_METHOD(future>, StartServer, + (google::cloud::ftp::v1::StartServerRequest const& request), + (override)); + + /// To disambiguate calls, use: + /// + /// @code + /// using ::testing::_; + /// EXPECT_CALL(*mock, StartServer(_, _)) + /// @endcode + MOCK_METHOD(StatusOr, StartServer, + (NoAwaitTag, + google::cloud::ftp::v1::StartServerRequest const& request), + (override)); + + /// To disambiguate calls, use: + /// + /// @code + /// using ::testing::_; + /// using ::testing::Matcher; + /// EXPECT_CALL(*mock, StartServer(Matcher(_))) + /// @endcode + MOCK_METHOD(future>, StartServer, + (google::longrunning::Operation const& operation), (override)); + + /// To disambiguate calls, use: + /// + /// @code + /// using ::testing::_; + /// using ::testing::Matcher; + /// EXPECT_CALL(*mock, + /// StopServer(Matcher(_))) + /// @endcode + MOCK_METHOD(future>, StopServer, + (google::cloud::ftp::v1::StopServerRequest const& request), + (override)); + + /// To disambiguate calls, use: + /// + /// @code + /// using ::testing::_; + /// EXPECT_CALL(*mock, StopServer(_, _)) + /// @endcode + MOCK_METHOD(StatusOr, StopServer, + (NoAwaitTag, + google::cloud::ftp::v1::StopServerRequest const& request), + (override)); + + /// To disambiguate calls, use: + /// + /// @code + /// using ::testing::_; + /// using ::testing::Matcher; + /// EXPECT_CALL(*mock, StopServer(Matcher(_))) + /// @endcode + MOCK_METHOD(future>, StopServer, + (google::longrunning::Operation const& operation), (override)); + + MOCK_METHOD((StreamRange), ListLocations, + (google::cloud::location::ListLocationsRequest request), + (override)); + + MOCK_METHOD(StatusOr, GetLocation, + (google::cloud::location::GetLocationRequest const& request), + (override)); + + MOCK_METHOD((StreamRange), ListOperations, + (google::longrunning::ListOperationsRequest request), (override)); + + MOCK_METHOD(StatusOr, GetOperation, + (google::longrunning::GetOperationRequest const& request), + (override)); + + MOCK_METHOD(Status, DeleteOperation, + (google::longrunning::DeleteOperationRequest const& request), + (override)); + + MOCK_METHOD(Status, CancelOperation, + (google::longrunning::CancelOperationRequest const& request), + (override)); +}; + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace ftp_v1_mocks +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FTP_V1_MOCKS_MOCK_CLOUD_FTP_CONNECTION_H diff --git a/google/cloud/ftp/v1/samples/cloud_ftp_client_samples.cc b/google/cloud/ftp/v1/samples/cloud_ftp_client_samples.cc new file mode 100644 index 0000000000000..8d83e5d340f67 --- /dev/null +++ b/google/cloud/ftp/v1/samples/cloud_ftp_client_samples.cc @@ -0,0 +1,218 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/ftp/v1/service.proto + +#include "google/cloud/ftp/v1/cloud_ftp_client.h" +#include "google/cloud/ftp/v1/cloud_ftp_connection_idempotency_policy.h" +#include "google/cloud/ftp/v1/cloud_ftp_options.h" +#include "google/cloud/common_options.h" +#include "google/cloud/credentials.h" +#include "google/cloud/internal/getenv.h" +#include "google/cloud/polling_policy.h" +#include "google/cloud/testing_util/example_driver.h" +#include "google/cloud/universe_domain.h" +#include +#include +#include +#include + +// clang-format off +// main-dox-marker: ftp_v1::CloudFtpClient +// lro-marker: true +// clang-format on +namespace { + +void SetClientEndpoint(std::vector const& argv) { + if (!argv.empty()) { + throw google::cloud::testing_util::Usage{"set-client-endpoint"}; + } + //! [set-client-endpoint] + // This configuration is common with Private Google Access: + // https://cloud.google.com/vpc/docs/private-google-access + auto options = google::cloud::Options{}.set( + "private.googleapis.com"); + auto vpc_client = google::cloud::ftp_v1::CloudFtpClient( + google::cloud::ftp_v1::MakeCloudFtpConnectionRest(options)); + //! [set-client-endpoint] +} + +void SetClientUniverseDomain(std::vector const& argv) { + if (!argv.empty()) { + throw google::cloud::testing_util::Usage{"set-client-universe-domain"}; + } + //! [set-client-universe-domain] + google::cloud::Options options; + + // AddUniverseDomainOption interrogates the UnifiedCredentialsOption, if set, + // in the provided Options for the Universe Domain associated with the + // credentials and adds it to the set of Options. + // If no UnifiedCredentialsOption is set, GoogleDefaultCredentials are used. + auto ud_options = google::cloud::AddUniverseDomainOption(std::move(options)); + + if (!ud_options.ok()) throw std::move(ud_options).status(); + auto ud_client = google::cloud::ftp_v1::CloudFtpClient( + google::cloud::ftp_v1::MakeCloudFtpConnectionRest(*ud_options)); + //! [set-client-universe-domain] +} + +//! [custom-idempotency-policy] +class CustomIdempotencyPolicy + : public google::cloud::ftp_v1::CloudFtpConnectionIdempotencyPolicy { + public: + ~CustomIdempotencyPolicy() override = default; + std::unique_ptr + clone() const override { + return std::make_unique(*this); + } + // Override inherited functions to define as needed. +}; +//! [custom-idempotency-policy] + +void SetRetryPolicy(std::vector const& argv) { + if (!argv.empty()) { + throw google::cloud::testing_util::Usage{"set-client-retry-policy"}; + } + //! [set-retry-policy] + auto options = + google::cloud::Options{} + .set< + google::cloud::ftp_v1::CloudFtpConnectionIdempotencyPolicyOption>( + CustomIdempotencyPolicy().clone()) + .set( + google::cloud::ftp_v1::CloudFtpLimitedErrorCountRetryPolicy(3) + .clone()) + .set( + google::cloud::ExponentialBackoffPolicy( + /*initial_delay=*/std::chrono::milliseconds(200), + /*maximum_delay=*/std::chrono::seconds(45), + /*scaling=*/2.0) + .clone()); + auto connection = google::cloud::ftp_v1::MakeCloudFtpConnectionRest(options); + + // c1 and c2 share the same retry policies + auto c1 = google::cloud::ftp_v1::CloudFtpClient(connection); + auto c2 = google::cloud::ftp_v1::CloudFtpClient(connection); + + // You can override any of the policies in a new client. This new client + // will share the policies from c1 (or c2) *except* for the retry policy. + auto c3 = google::cloud::ftp_v1::CloudFtpClient( + connection, google::cloud::Options{} + .set( + google::cloud::ftp_v1::CloudFtpLimitedTimeRetryPolicy( + std::chrono::minutes(5)) + .clone())); + + // You can also override the policies in a single call: + // c3.SomeRpc(..., google::cloud::Options{} + // .set( + // google::cloud::ftp_v1::CloudFtpLimitedErrorCountRetryPolicy(10).clone())); + //! [set-retry-policy] +} + +void SetPollingPolicy(std::vector const& argv) { + if (!argv.empty()) { + throw google::cloud::testing_util::Usage{"set-client-policy-policy"}; + } + //! [set-polling-policy] + + // The polling policy controls how the client waits for long-running + // operations. `GenericPollingPolicy<>` combines existing policies. + // In this case, keep polling until the operation completes (with success + // or error) or 45 minutes, whichever happens first. Initially pause for + // 10 seconds between polling requests, increasing the pause by a factor + // of 4 until it becomes 2 minutes. + auto options = + google::cloud::Options{} + .set( + google::cloud::GenericPollingPolicy< + google::cloud::ftp_v1::CloudFtpRetryPolicyOption::Type, + google::cloud::ftp_v1::CloudFtpBackoffPolicyOption::Type>( + google::cloud::ftp_v1::CloudFtpLimitedTimeRetryPolicy( + /*maximum_duration=*/std::chrono::minutes(45)) + .clone(), + google::cloud::ExponentialBackoffPolicy( + /*initial_delay=*/std::chrono::seconds(10), + /*maximum_delay=*/std::chrono::minutes(2), + /*scaling=*/4.0) + .clone()) + .clone()); + + auto connection = google::cloud::ftp_v1::MakeCloudFtpConnectionRest(options); + + // c1 and c2 share the same polling policies. + auto c1 = google::cloud::ftp_v1::CloudFtpClient(connection); + auto c2 = google::cloud::ftp_v1::CloudFtpClient(connection); + //! [set-polling-policy] +} + +void WithServiceAccount(std::vector const& argv) { + if (argv.size() != 1 || argv[0] == "--help") { + throw google::cloud::testing_util::Usage{"with-service-account "}; + } + //! [with-service-account] + [](std::string const& keyfile) { + auto is = std::ifstream(keyfile); + is.exceptions(std::ios::badbit); // Minimal error handling in examples + auto contents = std::string(std::istreambuf_iterator(is.rdbuf()), {}); + auto options = + google::cloud::Options{}.set( + google::cloud::MakeServiceAccountCredentials(contents)); + return google::cloud::ftp_v1::CloudFtpClient( + google::cloud::ftp_v1::MakeCloudFtpConnectionRest(options)); + } + //! [with-service-account] + (argv.at(0)); +} + +void AutoRun(std::vector const& argv) { + namespace examples = ::google::cloud::testing_util; + using ::google::cloud::internal::GetEnv; + if (!argv.empty()) throw examples::Usage{"auto"}; + examples::CheckEnvironmentVariablesAreSet( + {"GOOGLE_CLOUD_CPP_TEST_SERVICE_ACCOUNT_KEYFILE"}); + auto const keyfile = + GetEnv("GOOGLE_CLOUD_CPP_TEST_SERVICE_ACCOUNT_KEYFILE").value(); + + std::cout << "\nRunning SetClientEndpoint() example" << std::endl; + SetClientEndpoint({}); + + std::cout << "\nRunning SetRetryPolicy() example" << std::endl; + SetRetryPolicy({}); + + std::cout << "\nRunning SetPollingPolicy() example" << std::endl; + SetPollingPolicy({}); + + std::cout << "\nRunning WithServiceAccount() example" << std::endl; + WithServiceAccount({keyfile}); + + std::cout << "\nRunning SetClientUniverseDomain() example" << std::endl; + SetClientUniverseDomain({}); +} + +} // namespace + +int main(int argc, char* argv[]) { // NOLINT(bugprone-exception-escape) + google::cloud::testing_util::Example example({ + {"set-client-endpoint", SetClientEndpoint}, + {"set-retry-policy", SetRetryPolicy}, + {"set-polling-policy", SetPollingPolicy}, + {"with-service-account", WithServiceAccount}, + {"set-client-universe-domain", SetClientUniverseDomain}, + {"auto", AutoRun}, + }); + return example.Run(argc, argv); +} From 04f01f570cf6008d69efc55af26035ca244f7eec Mon Sep 17 00:00:00 2001 From: Scott Hart Date: Fri, 21 Aug 2026 08:54:05 -0400 Subject: [PATCH 3/5] add abi dump --- .../google_cloud_cpp_ftp.expected.abi.dump.gz | Bin 0 -> 756879 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 ci/abi-dumps/google_cloud_cpp_ftp.expected.abi.dump.gz diff --git a/ci/abi-dumps/google_cloud_cpp_ftp.expected.abi.dump.gz b/ci/abi-dumps/google_cloud_cpp_ftp.expected.abi.dump.gz new file mode 100644 index 0000000000000000000000000000000000000000..f9d98dfede4b5379abd66e05ddf4237fb42723b4 GIT binary patch literal 756879 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≺v6^*!QJ8-Gcu7FxzBQhAiHteLr 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

M!AM)2`r63WUa-y;F@=5rq8w6wJB-+aEnnbhwjk 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≠m~S*GL+-k*DL$CGthO))A&Npf665s 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�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

Hvi% zB*tJh)rZy~mn*wXRZTFG(FEgV7Ypq_Z7_wvV;gx?dAlGO)=4Q|I&!zsRVDTh40vix z{zufk1ku$u4cLXedGtEAVL&a%Ox;C(3dfFb58%VXXZITtx0^_^)`PUY6`{g}Z|v=y z;r;Y2wy*aR7xRl3=0NJ##M5zB`Oy-G5x2tFOL%WL9Fiu3wbgspgr4Lm#_FFz$_OqH z3+~HK1vq?GC?i**2*5WG&&$jrH4u#xOxne!hhJnv3C4U&jUhFb* zPbFd09m#`_(UumQQt(V(WUG7hA8M{P8A!?bMQv_`xsTDu=S55!tK1}POiwiVM2$XT z76S6Z+6Ai({&9|Fh?l4Fe<3feU^h~pDT~gU4BvC?UyZ$LCHrmcG9>b)L=?EAB5%5! zq+LQ6zF3Y<$&1IE5mz>nh|O zYw)&B%OL*y6EgunrFgVkK)AT&c(**m128}+-fkH}w)!jqfugN<%uW6GFgNfTV15m7 z>#pQZ5E27b&k?9LV963k{{kg`JCL^=9=W1W$dWyEM_Me)F(kY2 z-&Md^h=d@wS+|V|6rZj8>-#&Ipiz?bH7Vu#hS5SDwAFGJoVQ(t_XFXQ?6(CMb=e;` z+P9ec7h;0s>SxmabW2Z|DYX$PbwZO&6S?ZgcTu0**PK!;`-J^U!eiFB_ylk4RTMj2 zl&bgf&HJ-0VsTE(ZOqwOVtx%zBU1s30s^hC5QF?J!hr0E>3i$KhAnJd3T0jUD-nZSOhjB&*=Oa~{`_;Ppi{InVzBE#r!4$q;V?gm^@g1d?QcV*q^)lg! zlWRu65UvyR!yx1$>|ee@#@`Dzr_3j| zKzW4Jn*%Dpu5|yjt2X6nirV-9>H-VRi1$@M0mT1Qn=Mqyglb{P1syB`BgPcRY0=s)u+v&1qCC>%}W4>QiG$q%RBNPJ^BiRR@Yrsy<;vq3<0(!*qc zBl(%8X`i4FL!A)188iKpoC_7vl z9RWmv)*JmS+*XJKOf=BQ?F$>&lOuZJSJ5($<$41{%VT;Y;8x}$MnzhnSubeOwX{*y zcz6B8Zh4g$MyuFXemLdgAagLS*!}nRdQ{d@7o8#d8uuBiF2lFH-s9gA_Y+UlEf>m2 zQmA^_%T~{e|1>#&(&On8D(arR3s2r1pQm=BI`e-_Gp!PDTzXDx#^cnh7H8udUD-d7 zKdpUd*8cj?r0s4T5cUFE_^4h^Wg8@29G-h9f2zLk{*qpTT1QlHzib0q$X}E`-wk2C zv8}?ajf1VO$M7-rKmA)jdRM-6zHN{DEAG!-TUvJ4f0GB-dhuieYQe`_%{!#|9o3K)jW0b^o}tLkmX+F$}C@H0`{=>UMgVxo$7R zB2qUf4 z!65KxUySFOzvr2)0tJZ<%*%6qq+6giH4AR%3tpvS(KHEqpUeH!>y%x}t^WOX4&AVS z(P?b`>EHc9xb%fUaVf)!5#U;?;8+5OakQX>W6|-Xx{~wcbz_KrHv6S}?#8TdR>pL@ znk)JsXG&3R4s^f`*gFB-!AuXG#P~KWD1AZGn~FoX1L|eII^wE*X<3q#DwBvG6N^j z$r#bj*s-BrC|1#`{A|pP4srZ;%}2%jc-;qwIlZinzostwMcxA8k-~snlL3cY1hA8` zIV}U%Uv>6Wn%&yH-mV7zw#|Kce0G<$)xCOpUe=jaWp`ueg23S>N9FD#og_oz+FNc} zs1H0mTaU%c$xWg{LU%zwU5}Lv))v-I9}Km%H-1)^_04^Hd@a(IZti+YbJbWm!kZ@cRSNG4I}NdY#`)Riu-VhB?X3_|`(xSapQW@9AjK zMd|l}!W_trQ{Kuuj4ZrUcIVs=7lqC?H&_-xBh>W0 zuIY8^{YPnz91(&XU|INIeF=qdj z6Kjn=6SwrisJM#F@&2xsi+P_H4EnanMlmx=V&_8JpP{laU(lh1YKaDA9Op%)D z=3xLTz)`%cqS$2c{tFZvf7dwD_9Gx!Rx_swu$*tk04(Q~G@@-Meyphy=+`_}iyY=d zzwi723XoQ))Nr6+q8{&BECL-hF%4xQ?@wS@FOb00V+z(eSYAkkd(L~7C*`#wHv<6 zkQJEnHQH8tS}`(m**t|vN~*cJdI1xvo&Z7wxXz)1rIv-db=Qo%w!4i62W6FxDyJwI zZlN`VP#ApH8?5W!0`2$jv@SBM)PUQJ^jYn(cIk=C3 zf0?;ogvw%sP`!rsu^2NmH9=B-p;!`E=7xkhRdIC^w?4Vjp(|2oNQm`0`{V6`{pnjE zCtP>%M*OG&2Idfq-u{mooq;jU=l)=;+N*bDVymtF{d2piZLa5YnVx<~-L2_w25@M= zE?dIO0Cw5pe|8yd0KH-~zqqlyI;llrL*k6RNhYZ>l@EeYel)+?)Ct?;>FsPd-^R=m zf(b%`f~dAC_^;RN1?tZB3tRigH>oRNalm`XlGvrK1fmB9=W1YE@S~0cuA;Ezf9tOz z3Se+X2)6&9^~I4xL0Ei5?aM47`H9cjo1UX$1Z#Q!_OmZ3dPd*S&o zVQ>GyC3DU7b$NL+RW-&B3n@eo%+6I~t{4@H4NItSDGrq1MH4{gfD&mREtgJaRo+k< zM@^7mpqOxqLLkkE5wn~<4f~&+7Q<02MD_Q~O=5X?iuK)|;`*>5Gu^#9x@4N4;YGSC zi~2ophipjyfD|bvjl?|9Rvm|2xtRXa2%KE-bYb6glQH&I)N>$vXw61KbPM{@C&KKWdqCtv|xoHczg_)^D zY!}2PA-`H#=O17S`vrW??-2y5g!k)+K-3R&_GH{7HC*kci_J>T9r;nP*4em=Nk3#q8^$mlA{UrdBWeLA1slfT1yShZnBP&X%?J+O=2w(Qs zJA7u}3s6YL+hw`rBQdJTRb^NlRAOCnfhqfg(p*sLuA{>e?V!U7hOy8=!XhYEfo3gH zKGbdU%G#RROs7E9>?xX=)ZGV-bJW%qXT^s+;|}p9I#D&J>pSwsD8p|9HUJT>L2zd! z(rL$q%9!1sR0ypJA$>^^DF_?q!B4$2I}wJONr5xMfYsNGXo=Y#Txty*=)6#RteJno zx7Hy&+T|azfV=^MEVXM_*Y~fL)L4H|g+z`DdY=b&2w=Ey#!XIf>c9j|IzE*#Y$I)% zuR?@-bAwLoN9w}ffYI60+YhUt&Vx}c^k8MN>szC7{`#t;Y2gst#9?lQcVIXk3&j;^ zJI@roi(ndRC6|rxO79|$J5qhn>>8@Ps%$D~h&9L!B6U~fD%YOBd@5tLuixUPHjjmB z=MuOr>*F;iN*}&!V z`%pX!{#5*+m+SgKJY$nfI=z2V7?RWRH!YRqjcqrfN{Tpb=QUM$PKu&ESbvdLrE68M zk2hM4Di1Miy#=u>{(Qk#VEB6e;-kz>i8Y6TIi{1ZegjfDT$7J>!Y(0?Gb3d4D;9&64p=4=3TfTxf`$wQgf6Er zea{xUJ4D8Q_5x*hJEE8h=*%1(wHmt<%wXs<_W{U2@ZLT8JJAK@0DCU*?Cs=2=;;6z zIGMFYNa@MnN!_ z-rY3dfgll7YhS89EQp63^b1Hw9jwE3`ffKkxf6arcM%x5)kZE-nxO0^n=^90Yj$j) zj{fLUr88_up-fErwVM*zXdH?)wjwdgo|px40WAlg9L8Rv{~71#b9shMA<7g5Pru$9ZCPjn zjD_;vP2G=kz(UbBMAXken{0Mn5|Km~x`d~r+v%8IxJghwp2(Hl)5+efGs|jMP{57A z8yl*cpo^{E)|nww-i>L&qAlK?Azy9)di94a4yi-H*23>X=q|yKf_-7ZeG;2X#oYeN zEq;qNUhXUQ>o)RE}r|YL>bxX7NlNI+SbB=O@ z9^#n3>h%wrWDmw&5jlw`bmBdKR%Vg?4sI%9nP*pa33>M%W_{ATy19O4?`L%@oP$ve zrW{jDuvk{TV)ck)+aXS2G0C1#*qpGLGi!zdmwK}epk1(A)kK9 z-YL02ZDDOL%P7DDXTj~(Eat)Qeus8&%)n|x&_4)g)W)E&O4G{Twn(FmgC3h}#-LzQ zl2Dg_QBn)-UIT$iVwrhIWLS4qh?&=!oF+X1owrn8mop}vwS$jy<4&fcV2aq`3zJ6! zTr2wy>?r3IoycwEJ^?oi}(u}AJ3jLLQD9WJs!H=W*YtOL$?{)nP+2X#q_99~s~p^j6U(v41l2_Sz|d}YGFq4HX2yxIk4wC!!=b7wn8ikOQkr*y!D`L z14`?r*~xbpEH33Sj0zd`59bkrE|3zAqcp*!lSsQTm1KiX9e*#| z`8Q9FigeNBQ8E{};$LD~{z9g7?^S#&4*OZ7666b>56!`v5+{NI0s9aO88>LU#sr) zMXDLh`Xm|fR5#ph2wtPWH00|Ah<`%JcBvzvhfDk$sRE_sR}8^w#HHEIDk7qkIwUWG zl4ZFVso02O;@bISzabL*65RpkF34K*JSqY&JF2`ftyK`Vt4ed-tEimk<(h>v>Sh*a zSsMCV>BqS()N})pE2V2mqQ+K_Twap51~I<(=K4}?5hg}L>bbtY*7Q`wVsu@Dj9%lh zOYoN8+whJx!)_2oF#uFupE@DX6Q13`;1<=R(_-IKsAb6pJ^kRwF_){-ss~{96DBSW ze~`%aAw2Fc3avP@VHPNEyzYa}roS3Q(fR{ax3C0R@VOFJj=V&4KpWAtBCIZ^W1@cN2PE4TnxO6ZbrG193##-4rVG7VQ-H8J#hG z@crBzxpld|UltjS7(YNS|F`XT(YI{&3}SrEn}|F?9HsRa^$#!3%V+ zu_x;MePGyIXG-;P03g7?5%Ubja=o|Tr@UH`yrvEy)+y^D>6QF}}V1?mcaLj<(-5T4%Wk(j-E@6Vd--6{Pkl6(h^41yK7RZpd15&|iq9H`|kMujp; z*6SrUS*J}IrMZSsAcuJ2q)SRaE&xJ;1|3n4Pz2>|sVlqCl#@_ixQXtQl@||U3h@TM zkUEehxx&MUOkGY4Z_w#+vO@1chW)S#51yeNv22Ux7NxMgBY z;Hf^?!PK-SrYRrS1lNCTU^86MB5|f@kFJP6%V$qsc*3z~DKC-@tsg9zjjod_lW(nf z$ahah_v<4kMmPm6lU|JKyCV#BP+bZ%73aU}bZ#X6a)rzxkT7yV&5i@ir0bVub&}VH z9fF)Mo=a4H=ThRrGRIKV)!q+Ymz0eXERr-O6TiuH=Fl+b#*dvYJ;)3AjTeG6oRftl z^ZP1k;e)N_+nvM?y*>94?2P^=b8!6sWe(4z+EB=suFIwwrWdw)3-j!EV{#{vJmv#MrNv7U6g6Iihn#K@w;J_Vm7Dj2=M!e(|>AkYG(d7dk6^r zFM9y)2zfxv9vuG}K~B6piN5IS%VKLfeniYZd{7Bp4CQh!5H5If;`L*~S2GJa0q#AM5qrsf~ZG+zoOO*c8GAtr?m!l5WO< zeYOxo{KlYVk2!}o%b&S{pYYi_>^474CBbp2{jvk&cLhnk162vC3(fSF;9=kz=BUSl ziVnpJ6Pf#^*7zRd8cKjK|p{jCE)sjlbVAji%h5BKif1u8f=`;OV?WXD;M-H!Q$ zqSsPlNi?N9?Q(BW=j@tA!}^OZeVT0L*7bHb8r~<@>`OEsq3AJJjy$+CBLJ168I90R21qa)K`A8S z$^+~^JZPh!s2l=E**0g5BZ-^N9_2R<$FuryxiK0?Y;qdM%Rd*AVwCv2XT|`n1pq7S zKF4U4NO%^rhAf?zX?R%Tq~z2=F=c=6kiw>2c{wfOWwGw#0&iVyNVQX-Hjp+s;&zCS zAEBn|LQd?~^c%PWUxJH=EY_m*Br3GpfZJj z5<0)k=j3zNSPVs`OOZzx>%f0*l3oFTa&bzRm@)BALd=+~wb|rf+Wl@#_*m95EM+W}H>eGCl!piP^cojxsuT zoW3(iCDMTKFPY#g_1$euobk7GgyHYJR_f)XmHwxnV0lZ1kyk4-LGofro zXY|g$?P7Y#Vq?XQ8uesS69H{1uE~<*(O_)?KBvmG$PK|zGezzW5p4(pAL~EsJU;ke z73+26;haJ8Q$kt;V^Mx*GeLwdi;S&xyD}6cC0XktT7otZQ;wQQs>&S9M_KvRYfN7cq~(5XfEYr2$Rja7 z%kn0(k~W^C={1sx4$S;Ecjho5B7OsHz|SDMVBwrA-o z@9s8IL=u3&o?@?%;{`#H4l&{mXpGz1bNUzPNq{Q^-{zg55y6mmM6{>%jhp3yD=*YV z#EvlT=#?GbV4G*EEa9A2e5RbCl&jky$c-+NUXso%TehQwK48y!&guccAe)m~4frOq&&oxSXBvs3xHe)3f_K0C~zndt3hQ?PQiM5>kd44ssbxCwhR zWWQoDJrm)u@=?#U?A@V=F^otej2+xd5^I>8`2%&*DV}f6`yBrizb03LpK%5c$-Oe6 z#F}0mI*CFOck8Yp@Yhr|qT6%;Wyo631~BKbh6Tld=g<*{5rqAEdVp&?_k$0aAu_DMIy4Q@4WJ^hG&hPI6q8WsYd(^>6!Uvm;(%=XA|{@F z^>s!o&UcvQ?wUhmACJLgo~>aKYmCd?Rc?gMDU;qI;ZNQ52ycBpi;jJB7Ot`;#M&_& ziaUJ1!TgF1{G&GDhS_XcueSpvUE=qV(MO2#Vp|Bb%*w}R<#2&=B<(uCGbLu&Q5fL1 z`63{V*4c{e=^V48s>m_*{|OR7Kd3-7-hBddMm&Y#;pJ&AV204uFYNU{tmL8swm%Hp z!4?<-wCsxcE@J^+)Y%x)Q)j|EQ=R#e8pB8 zgL6pQHj<30@?59V15Q{ThtKokf>v5g&F|u!{-KGl`W^x#EXEa2a(FR zJPy;&-X+;8gmdVWu23Bp~vGnWVHyKcgSkwq9+sT)U3(=pxEXVFl!Pk z`1-fH!rxgW<}D|2qLrYW18^g&ytou*lMULw9fq*U}D(%gPw3<*dvZ+UYXry%7psewvu|JJ4+<`H8$l;_p&I?H5gPx01(Y zfvhw~!DIi*w%=e&*sZ1@`rMFze@r?kqKqF@&Sy#7K+S^$_ib}bdP#1sHFQHg0ES>; zc~8-j^7msF1Q?hr&Z(ty4@7#iwt3*)*1sTFbME?*tVp%_TN`ejam0on~J~I zTU~V7UEN!p4@xU`w&ZzQ~7YrnsrF|RxNlBfk#bdUQ(=*cJo8sbNhkIO{ej?G@d$*tt@Ms`>^ zuJ5fn{T?JznM?pnPaQ}B_QU3OZC$)8F*gLrs;Y^cd)`!t0XSC33L{vcbw`eEkYPlK zFTt}J$m)YuFgNDH4#uoqJo*bO(;6y-d*s@6L@Y0Sk>a@CxiK3A5y;-Xl%`qO$3uAz zhMWvN-`wDsxOZYVYD#46go^B=6dDhh3RKp_XT-V~xgh>^zr;Y%2ZK%T+e!@=Mk{-o zzqfnzAl^kVvn95TTAV#seU7VuULaQi479nSCQl6$HklLgj4s4KJuwbO!WAx<) znuyv~<5tonw$ZU#V|5*%E6e{dlWF875U+U=%i{jXnfM)o-lh1&5=h(2y-2L(j-hWd zHJ~E5-Twm$`AEBw+Z})Ce3g05+l7p&@(u=!jCKJ3lyT8>9q?S!N#i2PAb;&SBK&TU z2c0NQRfl-XD$*V!BEQ>^l7aFMYN=&aJo_Yk2#j6tKEKhEAuTAD$AmFFCfqaxUs6dn@C=Xf%b~vv^7W`1*-YzvX^5e2^aJ0wM?3 zPa*uvmtQb2zFx@pr5sdO7^7sUm%F~!?^5OtW&4>9Q37(;eRlY zvJo%lnJMoLcw!9T1AJUZIiaRX(|GmXu?)5W7sKj#rcQ zv>DuN^SShp7$(@ycx{>_JnoiCZO5vAYT*usod8g7GfRnhKEl?NON@whN1i^80+Pk= zfx1==0`uUdP{?iibTSO6#jT2VW!?u4aHdl%1DqdGCcmvD3&o;fO^yAUbi%2wQWzpm z<6a!jCs09~V(G8E6*_a{{A6MH@?6zA`>S>fpX4lE=Yx~eWg9+k;s{>0ypr2%Ll96* z3(yLbgf6JFF~9Tk@PF!HZYo&wg{qZ*Sa^;?tW1QY9s9t4Nvg^=2_&cybYsd}|7Gc% zn626H!R^+#Dh(cf*zUiB0i+)|K^DQp^#TX6T@LQZpk#4P7|U7!s>pg_0|EL+4rI0p zw`lrNU{GMX{L+F^bzGCc`BqfVPQvxkB6TImqzv-(?hCaOnXb8PGta^RO|@O_2GQ~= z+iOnjlOE0{nEtywSpc78anr~greU6dguD7iIADE{)pMb_`O4`i@Q`TPU%+U*NPuT` zBWy%j1TVE>d{MojlJI@fSo5;9QX24%>VxAr!Id!=Zy=lRr>L}9mWVw)%Ic}h9rZNw z;;#n#o6o;j*U;)&7!x!%sG*9_(1~|eXQ-2yu7n4~{X%Vl7^uzz%{awx2}mP3)u=Zc zUT8<5w#8p)k!!3Xq~=oAgvhMqt`GFu?!w#BiT}$OSgQa`AIL%k;l7Ck?G`thYSpf{ zK`GlquTqW9_TE&}a>7t!h&blv)@`tHs+4jcbiwwl>W*3aT=4Wi8mKX!2L_6J+g_9P z_pb*JXS`DN_gU%o>+js-!+C&JN&-siQjt_&3crx#WAP_#_QxFjd9yRo)zEi#XE1B} zTa6C=f@y}Qh!+wGL_voLW&2y%&sh>OD;f_x+6t~ZI9m?7Lt8C@->;FWPs_W5E znz^^hNIhR>!YI*l8{$giO%>?7{AiMsBr=02lFlI-AGC-cw8|kGt(fK}%6{sl=Vl+Y zJu2sxl7Qc#$v&?d;j+Ii=x(458;>NSX9#Ej4ZaMb<(_6WRnZE{XN(G`c$K;eO3Kx^ z>(vY-EVk26tZ5tQ!Kpi@sH`PKILlDaeYtd|iB>VXs`Dc12C9?uOS*X@wr8K)^nzw| zQ%Ibe;M8;CGyr&9iFRdPqa0wloNfjFIYDba zOlb5I`|S5cK!w^NYNB7qd97>!7o;Y|4PIq@SkW=D6b=|#UjIexz0kd z=8=gCbMNFnP>+vZ4EOpXW+T0G5jul2N2wf-}D~9yO)Y zUhHOk9Y@S?R+v!ZB8Sj)<7q=pJavLWtt6JY==UTt2caO!^|3h!MQ9btcF`$BrXlQ4 z6`58d$1pB35t$gjXY!dnivnCvad7P<%d%UI+uGOjxg!o!l7>v}o7(Wj(~efR>SnIq zPobcQ`l`6s>at7_I7I|PaAGkToW$aVM~5i|TJy_-J3k&-N&P=))exJ*Yn5*C7R5NO z19iFpzio061>6KHr)u>?umg{g<({d?`5tqsxId7t2EQlM_@jn=WWwB9fXS05X;NZ2(ojy&=Txx&{R=Pb?rTNRi28@cf; z+{C2pmD#PIE88%evKt80`P~APp>Kwx3rpqeN>O3n2N!Xtk^hVrcm6GfPePPz=6a8R znO)Zh7*;{tiYE@rJMg-ue0g=Vwa)x1Vww5MrKH>~OMZ(YRKJbFymb>Xr@ zS&@hby#>Th1@auk&ejv{MO4#{imq|F-V><7sR%2TFxvafRF-hO&Ob1CaxX%-+UPw@}+zAgij)G`Fz1}Z?P zf`N+7iL*|H0;RBs*37AUi2YM>)2ImXj+Kl^r+4kJnq#)l;;gFrlXXjAj!FW`sj=bi z#7)!VoCg&g+gN~c@|)@g9VBdAweD9ehPXCa%BmL4@Rdc6pQW(kg2}`F{lAu>c+%*_ zcs_@+sz~t*5EIppJ8@|9iZ!6tT=g`d)V?QE8Ypp)#r|ESu0juN3NBykcjPAoZb(J< zx%hBNY@*u!}z_8T+?N(vOCN6}@fW1A3&Uc^OeL-;HMZwrv|G>&VV zRrjds(~~T&0@P=s=>hH+~j2Il5guUVW$H&!yoFQv$u+kIORk0(k_0n1S5Y@(zES=!;Ef6^JDCL3@0RzaM0j*q(X z*wUH{ORy+xw82`*uD!aAQB~+iO5oJZJESCG9;B4^!YiaHP~r+^)fY)4NR|O6kFApy z4Wu{L3LS!_N()~vS6o!StLXy0PyNYj-}+ros|GoU0|1=~yNGl(Z}iN!NWxE*9Md<4 z7aRX~DNCxBw!n4%8OmHnO+iV2h}eENvb4PBxc?g}BRx%ZQLk&tK2cB8%Hheg@t<2n z{*e=7qV=2~YT^hFvg4)^l0-EwYUW*-zxO!thQu3E?y%TY&xQ;8!i_znovp>!J&P+5wgzG;!r=1^#k|pkm>LtcB&PRHhqcdD~%o;H|z$3!1K`ZrpY$mSXc-OfnW4*U4 zuS$t#B4CjhiA-US(bab_gMW)K&hg{`Vav)Yy~a@iUl%d?!WrAu-R7eXJ;{+&ayG@- zS#llsnm->tu2#zCo$?X`BOu)!!mnd_ZM2aaWSc<_53wC^Gy*lF5EK`Rs$g3M(;Qg# zCB}z-u{yq=^b4pW5K>InX^+S=(0M|UV}-;=CvvVyK_hn`E15sQTFRVr-kZ}om(p>V zVFv6wuOT5@Pl_O20`Y;Q-$Fi9ePbqtfH)#Lp~PB@*W}*i)|Kqd{d!p32XUg7hIbLY zSD9jj(7%RXG`)VfgRgNbT2-Zyv)_yt=(<=|b}_nDWy7vZq^H042VYd3lUdZ5gu6(V ziqhjBy~wef*>?3u?f};G#$bjKEiU%w-p@1^a;9a(Q^tG+@~5jdSW+qcAV<(Ei5s9b zi^wY!))jGy6JLBSZ4B+IrawD4OC^E`j_Bmo%Dshg5jyHmNP~_DIGb-hGKqFtse?GH z*L`Y+2{se3O#kt*$fJLj;ff&wL*ve!X{`KeABu&>M&98!(mfWFP$n0+RQQ^o(dloG z)9x5MSh6qDEBM#nXuajy-t%7^GTj5rWp3SYyg#w7h;uYdGl|2PZp?WSI3;@JNT>QB z6}&mJ(uv)`u#Md4&jSnJhN3`|_S)*d9loeKpWZ>nxjzNWi4#@jMSH5j4sp(O?OLLH zVMj^0c(9zP4z=+s(Z#P!LCa|;*qIzgOpYH>ry2Td+(>pr zybHJSLH1AxNHlnB)sQ0ca^j%|yG!b@rXewm{>9)O<9l6!GA)G?myP3vyn&`GzB~O& z81X+|ZP>7c3zrwY9N(V$0%g4eJ$xq85Zzh4Zo@X_QO++Gc(W|ln+?y$+GF&#yhrXg z=<@gB>(3keCKo(gEVA=Cx8`4@9h*oJCvCHGV$a`4Cl@pki6G=fH{J7n|m-I?|)?zV#u#;2;;ID*T zuFJbjAjg85j}tq@IZH4r1JWyAaW7CV^7$PFOzX<{0%))0924CKU+WGCQK(j(Mv40)u<<$QbfA7Y1}X=F z=Scw(x09%CO}~yCe`5XSKtFs1BR~3BSoxN^_qKSrV)T3M2muq+V<<-?}4H%axUDiMA3hJ%5P zbVBjshhEegK(XEC8E8fAeYJL|S1#gk7wMsyS$9N8zIOajv1pZ!+NFOi+yt<=VSx1n z6G>PexlY{q+m~neDKucX6!L>SVdk!!KcR09x<(&Pe;sH@Go?e$qv)uYa|jSAtNZ{M zNqJA^`!9||$trkwiFQqY`h&)pc4();6b_zS zdIE&=-jziA4Lz5M4w`-t$g<-N-2Nj$SwTrCrmn$dZFB7AI$3S66zNWqq=w4M<08ZX zhfAp|x*ZSrm36=RSMBQ}z~pcZ&n`&Z8c3nBgy zq165eo@(r<6z+D6gTMP7yx`VvawONW?mY(8HMD$vi*?>GD0n3&a^bd;u+5jM;^Bv@ zcWf@&%cZp95+HR*+@D6*Uta{+CL(IyO@Lk3iu*^I4Pn#2au=mc8Q{R%IBtX6_vJ{g4ml3~Gbm}@vSxy|Qpa#r;;8yF-o+}F zf9E7&^Q%+zlBwa4R428|nQWP4sDUM_rA6~nrPdrLMJP@?P2!p-hNoP}iPYn7(%19Y zeoo16M$+#8T(YiO0n1gT^3s^OL*PBx?eOIGK5%wao>?b6;lvcoiZ_yQP3L~Bzss#L z0KZ`-Y-^-K=XUUMnr)8wlW>9&!WK`#fZG(QyqZ_eMO8A#re9!mV+B((R89fr+Djr9 z{NJEJ-sXGc^+&(Col*1qxCM8b&0}_$bL3g*r!`JZd`vD;mc(BbjC2sy&F}~UBknyA zJoTcv2~oH{OJ$61e%x85sC7x<9P=XSIIJPFoMC_P%t1G+Ro?CS@EBP6&b&$kV10_f@oECxcd>cGd~Rb3o3<-f?SP zjkvRP){EF4DhtvDlD&MHc>g6NoXWBYA99v(5(*xB2!{!?{v#?}0XH#IbPEN-cH30j z-!Kp-_IK)zn#Bk6#qYz)t=*|B;?Hzb1;uyla+!l0?yaA|w<_5y8Q!jn_Nhrmm~IEV0{Fs>wr2c*bL+=hPO1w7iO3M%L0|G<* zR*`#&_BsLi1@m`D4#O@-^LASxqIYE(ek{#go|&wzhRqQbHp%8qFV!(NzsXAXkyI}K zZ{QVO5GZkrfG&ILIMDhQ5zA)`#DFxxz-FyD=!{X$h1B)zD3gxe;g zGHC;;2Avg23{IR$a=NxXyXn7BZgf|vUAe0VxH8*{OA3VI4&oBuM_LL(2kK8nQSP^s z&#)tEnS-H5@0>PkAM`ggTn`4F;U``Iaf{If^*o6$dCzFLh`QL*qAGTC1d&lPTLCLM48e@g@oBev9L8HTo;cqE(k!Q!)wuabu}urtvGWC19j0 zda@Lu#{(Pwo>i}~+=3ir6_nK?fPryn@IA^N;r$2_#U)@o!$YXI#|KpS2>oCW?l#(n#1|bzBW96yqVxUQK|deF z>x6`@d5l*T3%+=Rpq9`M;StD#5+o1@YTMB74l>a+*ha&LLAr8Cm8M|s7>pSWGW94m z#Kr5=u1pJyS`Ib^O3~4g$N{G6p^a$evMJ&S|6LbX1(N+g7DJNRin2>du$eFAovNBS zh1c`)QycuMo*jf?g2E4{bF>guOIAHLrRcR<2=bO=kR0D$cR5nDh14MtEn{5E88G%s z8zdT$sEl(*Xlz245mhX~V?_p|gyM)#6`|uM-Ze=woZwj%vW>BCwBsCmCx$Mh_pbDU z&U0{neA4Jp;U)>0(SNg-p2r~|w&j$1`XI?vnR13u{6Gm?dl7#8txw^> zI&iklTa10_35G(GJK7VD8IEH38ti<$_sG2G{9&NzlOyNz3xsloTB-A$0!9cLBw1zU z!5R+p54t}DM{F|s$z0@ecv(cFj)kLOtwvF6dq&^o-tOp<6R>BrLOMyzyfi-Ye0|TW zrvGUnD*Lw2zz&dh2y0~_8SV-Y@53NXJorgTF@oD%cD55CO&=-Hg;Hk^?&uwQ>dtBM z_{#GgahrX;^j4kJI$zwWtKi+qgGT~2md))_%vsR{?ofF{?2i7}S$<74*vu2^?f7<| z$LD(yi1j@D9G<tQQ zlH<_4RiK@}5ItkNg%O`sd{bVQRxM`MsUd#SG2rF$hLq1GMCNHmxgVVMCW{4$fDM*i z)_XO>b3rbLa{sizfUkT4fkrV~LujxY``AP7$*vc=%*;@Gd)z-06_6T4y->;yG6(n)s6Zna(Q zR;DP`4XRA@mA>y76WscR1 zOf%;$RiM5Z&^@|LD#?&ecxM4!>Gx|sXDW}!`f0BMcyJsY>Z#t8hiNEL+2+~`(3g~J z0e95RY|6=eZq(FWEtKqfu=E!elc_ebn-Yq4Xz=dWj4M^&3(e*6`j^GCbS&2?XmxbX zf$sDUp%l!>9Fx=t8*&DUtxRT#suv9LIQm8($0wEJ6yNCTPCA4W98 z$WxsE$Rxq=HByp4NUC9vkL6|EEPgr48<_hth;S9_(RqRMR$mSRGo$>F_Q$OqB;9gT zI~DP{42#UySm93Px=o9~R4Kly2B%ACXEw%)d{zCI#JuiAb!JN{rHR!N{&l(J=$x?O zb2*Niq5-mb&Lq`1dYS7>02v9&al~E&-!CNeZeqC2>=zi*%L6L+jP_BDvAS}uc}a}3 zmLjlc3V(=EnqjnX6}C!agxAg*WS`tF+Ao2rWn#;XbJ8WL%XBd<8r^NN8xg=f%vcS2 zEH2%`Wsxy;2~XoDt;mK+H@H?giT_|&_7{O%LS@8`AQvLD@RT3&XGzPCLcIZnpdfP&mkB4eOzqJlLas6AuEtP_Es7%U2 zKd$wzrYQ8kwg|Vf2H!;Cu1E|1%+R_azZ10ZRne0fwf_>8UmbF&(fStQ{I0&!Lqxts z7ZxAx1w|8gRqM@t4!wOp+>n%x9}IKqDsg6RJ$ClyNmxGrg&{=NEgK5tO7oT%2oS`#^W#$Wpqpx+CD&+>YUEv)WMZxFP;U=Y?aYy0x97MFRS8R8)YZqO=Sc7ra*1!)hHBS&gLVb4HrMBVsuR9~(I0_=2y0iKxn z^#q72?Gjo@>b2o|8kBG6spNo{+e5ATvx0-%abuF?zq&X^>teGPSmi$nqpGY%v3ToF zu~d`{BWbM0B^Fb~3NwR00X<>eNoF9O)@0JfI^v)7>UD4RH&b;V&Z%e`VU@GABs;%e zil%FUg!-7uXY~hTA8J?MPIAhlHNjz0w8`;{&w_5YQO5sVK*Pz-=@W5eOcs1f`>!yw z$ut?^aK+e)zf#c(K4=cNPx?VM^u13|4Lv9k{4|IE!4(7eGWZ%J}ELaZBC*sQLY!Z>`o^(h|yK!GDzokB^WH`7-Wb3caWs}1cMvPL~aLMuO44^}IG;g>~Q zJ;DQb0Z8^qdBzXCAxi2;_Qx`xRJN~dd%@GOL@)fLC2j|JLwS!?vU%=fz%#FV$inLL z$^)<_*K$&xicii2+M)_&1dwQvHU6N0ODPqi6ho*=P-Cwh{B?fPQ0G!swYz1?N$fhb z1nUGT0ZipOZCwy)``v>7Zw&Ms@18#<*; zoHKI-hd0}|T!nMBX=##rt9j=(SR2gKB^@h9fun6MBRY)KrK*E{`_xmoxze0T{Gmn# zPkE=XbQC?t=$`5gj+9Yi<@VG99z~&FJn$j}h2-1xO9Usw|1b&5!noTXkxgI9Y)is- zT2%;Xeyx0LPrA`oi!VV4&h4e}+n&}89z;M9Zu+j{=$k`H!1IzA4}n4D#t+dYAP+NQ zB3mjEB<{HOMO1Fc7Ia4v=)(M^R#l52_cwwa_9!w~0bj+L-x`b`xiu1!hq+U^-;Li; z)nmAHl)p}!bIBfv`HoO+H=;wQy8x5GjEq4Jvyvye9G>JCRqXEkme&eZpThI>V$W4iaoU>>)X6aC?iy zMsH9zk)U?NC3nj5B6jO`7j%F{LS6QUMESfJ_8#>g({`XZYTZPD)b3xAt~GB%UT)R< zqhwTWUr_*WwJf8_U#zD|Q_NTEc~)%`Aqw}3M~96tUk^O<$KGKFTBGwIEu+tPaa<_@ z=j`81c-KJ3K%-{a-fG9wpLIuKPoH^RU;mWIR3fQ8scj?1!g9u#!x4NecYI`5Vp}kH z&r7PciBqO)Na`h;_k?xCjZz6@vpk5V9No~dht1E(TNZZ_$`JB59IEz+k-LTpt0&Rn zdKMjlHbs9$X2izug#J5^N)C?ZdYC9uYJrcm7H6wFS@)g(E?2O$?33C4l3*Z_$CA~l zae$9QFaVv!N}<{|crEWKFa_7Gn4j#cMMYM-%1sW;pCm;u$hTM_Npq3COb?C#NS)r% z_nx6|n45K$@mDWZrDZtXt9!LZF(HRC_m?RU>5dE?VTe@zy~ZbLHYhA7M646~Gq(96 zd&@G?3TYN1eamcm%`Ly9!cWKe<7mxtdv_jCQO*zG0@l$0%=_^z!I5VFDcB3t)>N6M z3i>$L2bqvLS0$xF`#zRy2=Kqgry8yHKnkWA)+C2& zCEv_ITTOnIUUt+7Z{iX?Jao6A)Eu==2jHHwPbSSiiTI}wrNk_3(vMEr<9Q1>;MnLO zR-f^A&bWvwEPH8>)9D@++K~i3LcsBkTReO5X-K0r{0VBVZZ15&=xN0CIKP@SQ5_7z zk=d2rcPAa5l;vLs3JqvC8P5{6j2YE{^+>r1Lx;$_vffK0$W;%MuCmeRxx! zXiTni@>2(!RXewWLCo%}{VW2jopfp#n3P{FpTpy}mPYqBzz<-Ws_is8D)Xj-rYf4R zrCCQW2vNM5Td?|BuIo=#w|ft=fG3&ZbdE#!-UcF_gpbr(qOZK%b?*c!Tdm0V3R(-U zdONv|rLk%c>t?Oh^Xd|tpw`ULj8HMZcEvid;B^wQNKm_iporTbk)rd!^#(Gd`@ObI zOW7B0p^exvAsZ_WHjjCT$eOI}4}aJ3606^$KrPptQUTd{7~@^Y5}oJ#WAm$$c<*&`iVlC2{RnTH-q2DaB~INuQ7PQp||O&?PFp zyQI+qos=W=kihX~Q_27(E9Q2=*M8R{Yt&l_Y^ew{a4N2#lh3fdQ!3q#RIiE8E?pnk zTB0v!96=|eX)#F;E=r_4i@xUxvxKib&wNN_y`tMeJS??;f89O$!O!VvE-UCV$d)`P z9cQTbcMu2ufiIGIJj_(yUW>Mp_)s>%Dgs~9B@~72<@Ua^YbrjBM2``3T%rwTA3pVrmIQ8Q6fgirbn#J_`|9;%JwUvI>aA^8VfAnnltGi0d*$S z!l5A9_jDYKE~s&-fQ87*3>rGeG#^hVs2D`%2jwI%Wrw73pU zAMBASF;pys*P~l)u$YX9eM{l<4CKW3wdk`y4e+aCBb|jo=+MpR(^vGFtwNFod^*>h z(?ae#Sn3?(r_4L0t*5F8u>Twpu5>Jn0;9SC6=4zO;aXEf+~qa{F*`s@!X$9G#0_wL z?C$o2#BsUn@;ySKMV?Vs^OO>ua_J+i`Ye^x#Y-5Wf$DcU;E7%1MvxeER|Uvdp5Ej$ zch7`r6bIXbETTPxhNg0I;7OMGGfeiWB|ny7v~_-qpC7M508ZtEnf^^MmB%Wzy^tZ5 z=ghazsi^oup9~|3GI-rt)_C*p1#g|{ql*%qU>XWF%bGTrhotc15$MiUFXkzO?|iAD zupgY8F+j_QRaKn-|3!xmXcUbWI8&(Nb7x7iQ}2~JaD7E56roG#LFo>xEHGHGC;&LX zaZA9u2z_8Rybk1>oo~!%(qFE3^X1g-Z53Mk{PV1``e}$Oty5>uvxoUD0)4ptEFT*xf0e9%=e~!eLi+o^SNv`9MS*L? zc>z`BM+cnaevBH#V>QKu*I&FwzPKV3maI+bV5eK>g+<4BJu)PlmEt*S9kegS=`3Z> z)L`LUu3d$e>`eO`4$Iwuu7c*%4b_7hn2nf~X1qCYH+q$7{a?Yop8$u4WuC+!nzDcc zFcf%5)DA>X8qKPk(ltxUcq2zoqw|rDipua_Mun3J7bte(88Co z=s$BnCpBQxA?9_l<9I9U5tIhBiTE6~vB%g5#qstc~hY8>!O-|79pxi@3;K7XNaMeb&v9Mq4$BWnP2GMsY}=UGO9+(a&NY2 z@K@vGxr5({_!%<0ThWqZ;AKTTwik)?yOjR_+@fTNI4>N|5ZC# zQCD(d9rmSxo$oIsV&{u1#&vEiOrz+~U=3mIFYL&u-LD$V8=mf$0W>!T6y=|OSOR71 zmY)ybif?T=EyQIYZ$c=dz%wDbOAYnZW4{&DA7b_@F-ZtuQ)uMR||SncQG#9vx=^ve;HS!lDTtZ1|5sapBChe;EHZ zK(?bv`8{u4My1`zt3U1Nbdq~idSmUSs(7Vei%$U5JU|e*SlSdXCarHB&vee4&WKl7 zQaWFY6QJ~16gGd&J5)<5ykp+R{il+483TQ$yiwIhm-#pO~Me zUgtm?l)JK4rJLjbO-rqPGQJBcw}c>(Q!aj3Zm;5P!H_to`5)=tPqRfU;%5h;j($~j zn$$cXX`mnBF`yIzK@+@$trc3oRoV?LEl6)ZWIPr9Dg5lTaxCp)-E+ z!#dvkg{r3d$Vc;WxT@y3@@DR>yba5Pso zo_@0TncyCv`jNo8=^bY{D~a{g*Z%D0apA+3RFx2>sQ`B= zdJZ{qe4N2ytIV}9y+>eHF#en zpw|UqYbi8E8&-D){!6AD|I0WlqLL(?qWgFGTvdu`x&d=;XJ$n;Qc;Z4sH$ zl)4p^02m1hk9dN*k^cryqg{Nh%S-y{EwI$S{!vTNjcZdEcyhrixJl55dy# zXV&7Jw|(>iSGc;&DPnXE1Mo?8x}H=L#1vZAMWD-m>5Mci8a-tFa}PGeoff6K)Vff( zO9%AxIfH6G*2a+vz?+9uf`_wadidBAi8{`9((-hC$t^lYRTR?&?Kc>xB$Pvh*8Gb{Pd%j>^#O@jF^>J+4Y&K)TK;z zP^#XY5iA^fTvI&sh7q$kMht2gFECn!i3g1qQI|->m@`3d6tA-X`^HC>mr=J>@wrHw z?qVG{xn7<2+t0IB-~HdYdTUPC!=j2}Q$1LSZmA8a4tAD`-Bb*L;3VnM}^e9%eX!uq0qm#GFaAr8jhD==k-KLUIg^8 zoLaTDlb5-qUMOONCL4W(gamIZ<$#+&N^h7n&`r*}9Z z;f8YW@o$a4l34YbLOh$Z)aVFD(i@Z-C!ZZ8Di>DCWKq`F{uZa&nn_!PC zcJ^U&8R%)-tPLy>bz0Ot(7~T;)55Ggzr^anF1HCF;d7m=i%7=)j3!NaJFbBSbU1k1Oz>FMq_H{Xjw$eSyi`LeqQT0iwD=24a;xeTuluqX z_E;|K{MCZdvV5F)2)YhP;eJz+Pa%}@l4m}y+$kxEt3Xz&s3eUxj-?0sGKdC)46oZ% z+%X-@P!Ckkb^y?y+UXb*X{)nSBMF70X3&c>#~qi)ZtO9!KeMaA$}zoa3cuaoWmWaN zF<)NHjB=VXpbxj+yD4zbYx~@kbO`*&qE-r$*V>ObETB*dk`bN3jHq6_BQH^O#q8w6 zjX!{F8lFd{maxzjP#1t!jhruR_l(y9zU%6RB?e44CS$;fLUkmn8uk@`V@c3Z_QH44 z{^PJPeaj+`VVh*(nSSFaJSR&7E1r=&Slg=F33nA0 zr|BoD3tOv?%pyB)uT=4iXtdf+G}(*d_ZFn(_ROuS(tWhaaEWn;HqI7QVX_=-^r5?b zX7SSr#S4LaSwJ!t&cqEQga$X7dzc7H+U`fPFPe@naF@bIe`eqSQdyU^{{Rf;P+>+N9Pf_~_ zn&$7H#M2_wT}hx%>0&3wq`1E6@^CyXC{3_IKf7=^oDjcliu+gE`1l235=*e1+-}it ziyK--ww03V8sYpISyw}6$UtCBF2lO%4vxv37PJWXQaQul3QQEbJMIWKsRkq#PKR~G zhx`h=07(9AEcaGA?f1BmDYTTw%Ni9gL$rLGr?WsL8sZYwZS8yNb)6~2_P)FGUaCXf zM5saoGj1e;A!;QPCcM@$U`<5{_#acs0Qm*C6EP}*MM}1;5%Z7Y7A!w2@kevgtaX!p zV8?t`L~bywjR*0nn)el|9Y{M#gmSzwj11|vf3{bM=erK2W>_hYXisY;&KU;t#TXz( z;pI55rV)3xD}^bu!JMP%!`(hl;?@4g6RNTSiP0k^6`|lKrF{@QIhdbwOTYM>veg66 zCKx9KCuaSUn!s|4Q;Qm1r=bEWoen)|+I{(fW+5g)*%k5}xA-3%7iUw&>XMK{yczwx zS7cUX3yCdileMy)Z$ArPfJcrZm#$M{7faTJM%X}1hq>F0_3}%d$IwBUtQEc3Kxgwa zbk@>Xk4`;_cYW~#Eg)e@Eq}x)+B#9-^USVGs52lZp=#(~)u;7GyG-m1%%j$qx>QN- zgw(=`o(?_vG7SFU(7*pk0p#CtL+PBN4$l&)P-YbCZo$(r^@Iz)k$F-#G|J_uu!se+ zk?SZNv{^>Q{h?*pLD%q!#}L_e3h0l|CsDsKnE-s12*ijrVKo}nKyEi+h!ZOI^r^8J zRNlY7K7c5k!}ca-&s7hl36F`7B+`p8RQ`US84&ojw!kD7G2sLc5_F(v8Rax%Eu=)^ zC4{Ty<_KJDXC!0O)#$kU`_Py1=&dOT5uEaxhKHFrB{02T7vuZW*ApxjVECi7p$cpA zG+O;xM{6X=c!HgbfCua;l{e!7d@uW`@~`)OQ)CQYq;82d9Fz@))e$*v+>(Ch#VxmP z6|4w~uii?-XDhtUNrf!OKl;yWd}`eio^Fkf#B-cA`2rlwJr-Q%XegG9ep;ats*IF8 zqpJr8qXVr9LZ@6TW6QD~F+|@LAt}2iHOX)z4o|F*egQ+~Gj-=twX0)<<2Nja9b*er z`<+1zDJW}JjpHO7mSLm{%}9`s<_VkBw)NTm9GmnT7(<_(qVTb_gw$81EXr8Gcnn`k zf~xO10fc8~s@xbt2m`{`WemGdx`}jXxPVTtwPuj}r3f2Z-%xbvkte}fkThQB6008k zSu(PI^0{HUz*Qk>*GWApXE`7TI^m!CW!iX|v@VllsNb^68eOJKNvJR zfo;UD`5snSrs|kggnBwinTQsy(AOFNwu$FPLP)eYCDtyPA!oY!O$X5D%QT-$gF@Di zEw{Jr=UoJAN&?mtZMxdZ$AMEKXULw^1$%FcY!iiiLJ{`eID-P@cHNJ9p4d6AxHVR5 zQ0rVpwEym7S{^wRNs{@$AASFKCo_Ren_87Qgf7Q9VTFRN{)B@^`$>ed(jpv&ZY>cA zFZ+`q5Fw~dNPwNfQ!#(G1I0Sb_h!+m7QcSyvgKxO^r$s`auk;P)XUr#Bz^H!ic8Rb zXK9sEy0ns0K$Wooq`~N;r&10ahuqf@rC2TK>x`X&f##_7wS3nV3jAlockn#9p7!MB zj=PzyqVhl-?Mq?&nRysAKIT}QFFJY@`SYYHP595EWR4jZi;Inc1MF9_I8{P3K^1iW zd@rv*Kgfg`YuDjZwfQT(Q9TT`jyYfdxA5hP-{gr305#~A7ZzU1H!F@QmR-)Rh*RO_ z(|a9kPE8f@)c2K)w9V?LuY!Nw=TkYw)ZUnQizW%DIBTY%prf+qjt2s4bxGdt~L*Tu0_h#Mv{K9c%DgiX_uq!@IQSr$%RXHnxSf~{$f zU%59dw%9?OhG7WXMhOC5tblt-m>q0eT?2?z$jX$14k{r}(wWr8$U5(nhl)S+8$_Xw z-|8|^g&kzt_v5sW2ipBRgB!$R%9Z(9G~GrulU3#-8DmKTn2-j+axIv8FyOgmACjf; z0##2+7%J0t(1l|TCtMzr#m}u*uocLLs(YG}b0*>S*M8rVAteRkOGgBWq8kEF8wdi+ zzV|4Co@s<|L9Nw>nN(okquki9llVe1GR^Hq^r z=Tz-T*QQ?G{qg#F(JX_Lim6gx#v&cK40v2!{hK=+5S91-qQOrDlF)ka|W z>&S3577-d+@YR7b!66zL59O(K&6eq8Et93P{j% zuWlt+7v|Ok{A_VXcBQP)!F8q{d1G*Hmth^9uOwdY7QbVUk6D*~v@-0?SswQEq{`Q&S`2 z+fX_a^lO;@t}lKFFGV~|2)|O(YZU#}CSlfNVi9;hL@j;lMAk(U>AGtYKk#=OyfY~R zp%iJ>mY~(#7V(y0rai1m3eVl^>}|$7Y5I2ZZCErbwQOgKhhdd$uW8dN5TBXxD%r2HGnCoP%>c~YA}~N!WlZ{X#c-h9Q7{K_P<4X3w|H;HF;}%u>oJlBLS(27yIxpK#BGp=AK%M-RQ60e7wgONr zp3jx49fVaH%yrugBi~fr-4p={|Lj5`l4_=t7OAb?%~Hj)-B=A8L%bF8`lwzco6*w; zd7?MfNUic}`y_lNpYuLgy?i`A^N$p6a^17FErDI~zv%u-Uf~K;Jjbx3`VT~QGy87} z*|ihw)gHd?Gx2bfGs=RcJufDt?OiXT09bCkCQKpn3If$UI)j_=amf4UZz z0VZq<*P+I2a!JWO)n^zJ`^0WZDxbldprwH`Pxt{|p4-q`upg$WCf9#~n2!y=M3j}; zdS=Y;8KxSs^MFD*chp8VG*su7)S5z;z{xms=aT3y&>Tq&Yr^cQ_x(h+TWf~$vCHfg zuZKRR@7r^Ma%chytr@k&`!hZUqydFgCE-58lVI_PmXEPd)i0VxxJ|rnVPrZ{G3p~1yU)lP)0qyqAFmFDi^0b?U!OzuTw^Ig1&~;_( zeuQQNCD|bDj1m&#V1y^976)fh!LG!Oa|F3HbjxM_9+=a|6^o^u5O03{sPQd?&lpp^ z@x&2{41y;i-N?6uqXQ6oDO#9H;4H@9LynwZ8Q({)H1MP7@yLi*tN6C38b5aqmst|{ z_c5Z*AZMYHcy{;cW5TT-2<)QO7gC=J4AE0yah9DF@c?1>}^~<+IoBxg% z$!aQ82OJufXn&vnT6HamihVk9@HIn}vVU_jTNyJEOg$}BWl_}+c!YTpuMslBWrDI?J+f+%IXBf)7GfS_3xfUN53Rt8cp_uQJh~gi=a%UemTb4bK#sazv^6 zS}wa}%q>RVX{rfxv{kd1KS`oV|ErB9Q0XPO+T3Ia$F)lz_y1sIZh5v=Dw$Hz-XL$z z-IY*qw-xm(!9x`um+A!ZzvhiVg)nATINW3p%DvJnw!dI%zY21ZFKmUa;(@DV1}iLX z8be(C6+L`Y!Eb41UWpkm$%9jvDENfa2A8Bw=T51=%F36KUYm07dfSBhMH9{6 z;-ve39@MSR-a{x(pyeE6i;C`cWrhZyRlhM z*x7B88h;ZuRqkJY?-kn5|!j7LX-bX?r?9BM9(t z!Xk3J{HsNH=Z(r3ht}Ib4`L2ZE5|)X88Tg9Ms@GsMDc1O2skB-y8;(FfTqZqtjH{J z0n5#_Zx3(xpd>E=F&`CITL?Jy7SBeqTaYk*yWnn%c!MoB{W1l&79XcDmd5DU79Vpe zk^l+IJOC>IQTQ9%yEAP6b%rNPit=@5%y})KJGqcHB9fE|Q|s$A9A1L% z(&GEnt1P7j=XfkMZ5*iJ(z==q@5%X|I&CV6Zrz)F_v4)NF`*a5m;?T=e{Vm@_3e@o z?Tpo6*AliK{%AelJa*3@KkYzoCojGDwHJVAPL1yEhLuP((>3z@%Z&z5lD8B1V0~#) z#K!jOrsoX)&^xD8;)b{}Mz7W1#lDld-Ty}k%@bFgu+Ci^pa8JFP~tTvF6>v^%tJtS zJ%xW$(i}|F-VMw4ATLsY)>sHK$48frAlBS|1!v%U*`4?u0&dl5YR6^oZ`I}WKt~7S zr6xPD6z_y&-BcbBnQ*Q_<&0`8RV69o!;{)lm5i%&Hf)Q>pQKprCEOW9fG*sg_h3l` zCKb-!AEPp<-{%y>rp>{F*4@;qn(cVR8(OD zwk~oiue=pw)ADf5ycby@-rWgM26=N}L$r(HekzzASNdg+qx1ZUw+dP|$p<-$r#OXm zaBR*o|4}2);Of54(+9+B)cbhoFk?N+Gciqce z0{qQOsbSQRSsI_KnT?}L^O6Nm3<>~T9eUWJcH{5d^YZhtL;e`cNR{TisnT-$+xZ8p z{?w;Q>ioqCX|u>AC>=VNBk>ln%3M_7Nm#kJvOQUW^?j5vZP@%Qv}3b+p9e(U_?2oL zw8rn_KQq62-k0JK;5_p;u}Nq$#;h@Odb9L=_MUfDonYSL#~+}Z9%?$cTF0*gZg7IY z4ggg$T*>KYBxWE><^gcR`^Hv6HFGe*g0)hu;@YKCTT)zvy~{1QN^&`6%~IOoLw?px zo@Vi(#Kd`|(n({CkD``_rw+W%oVMYYI>dCxx(w|A&A?Naj7K{}IJB*rE4TKE&Z$Ii zF`M*$j4w8u^#5Y&ouev!!#3=U$*#$^ZQHhO8&gf3Y`b>0ZQHKNc9UzqJ-_$;-tYT= zuhm+6?VkI&uj@FEb7+s}08y`PhKmlyZm&gc9rINt-{GjosueDr8J7P4ImUXPi#BF)9iWqM~fiW~pMcM8rj4(Fq z3s^!FZ6F{~kx=+e1hnbu&d%-9%>S`?k+=qDe=t!AFQ|^PyUa`Vr!5Y+9TUoJC-90L z1%URHeb;5H#!n9$Z2|``;ue7h{7hL|^f0{a8y%#F0+<4=a<@zCh=YzP(~~F=JzQP^ z_P3Y&yK%-((b~k1QzB=`(hd`9&)gaBr5Y>pjMx0}S9Z=fH80g}JJnl%NJv(Fa`bUy zq~A&pv@KVMe;IItdg&c#fyJESvQ$INzmsyzU?+UMm$XZIF zq7{3wum0Hv#Y}=VQ>vXyGR18S3=as+-5KHY0$H5qu(&$S6#(Gt|HFPe9(}V)uaBWP zeBcQ(my=u_8`FEP+y-5rDU8H!RUCfj*U!sX$Nwr-8_l?v<6BV1@fq7Uq9zzg`3?OU z?tJ_E?i>F$x67yT{^x>-3(M6Ps`=n|mr<|VG2y*jI29@AS&u#t+0w8!HUd*6$_iX( z+#d4K{91Ixd3T^bExN7Pw~jpBWfAbngAhZ$d@s$Gx|9MGw=?@7dZje_Wc?Ih%Co6( zgwTI*sSpSi=M_8Fn`ByqbWY{r4GT>cA>54MUDY5R0Nm=KW%p~CJJz@8P{vtTxX5ChH=CK47Gbdx;UmO*Dv$}Qo$f$8fgb1L_ihvQL-JwBAH z>G}1UN=Em|s-8GQ+977i@Wyd9-@uZ&R{cv%;IB;D;Tw;uJ2=|*2#EeB`5BZR^;%tH zb%%-{?|72>Hf#nx+lA*6?GU7Um0yjIW{acF?@s|stf?f#gLb1~-2uNv33clGL+01- zDdEVa!xBqv{aPZiehT!@_tZKw-g$T&rYaPy&-<|xsS*CDnN)W#W(#(WpJ38joQqZX zG3-vpMsi8_U@lF@P;owk;*2OMvTn~25g<~zNGf<=414PJ=mJin_y8&-(vuU<| zfAVVrS~SH!*eislrBK5t9p`;}5R)hPL%wd-a1zA7QW38Et0ljHIiG*6N4;o! z_^uSf;rsupFlq^p0>02s{wLwnT=)vZgZN{Da9lVB&r^<7gfIyq%Hj-ZJc9uf! znP2XkveXY?3}Qj+!ujiY?}pC+?!;dh0S*hQDj=%YU%GGt-pu>a+}jShjoQn1bUK&= z2Iz!C08{m3Ip?v42jgeLj~P~5#afb`f*UVMbJ%q1PR?d}8WpQ>-WRd^V=|mfI;USawVq z)WR)&PUWv70C29KhE-})?3@uz=>lD-Iak3{{*(cngiUoswfL)Ofz1vY-LXe{!lLWY zs3e-vX#Bi%1JMGFF5_Q+#wYfg_A%8zdtG4pR@jbEmc)DR@Q_0ch39S4rE^C~^AHp~ zvs+(8@u0yvf=%4;Y?)tT@gr4F{VI7KfP2hJ7S;K0McJWqpx(YmIT`n(atEXUvNB%! zY(aUD@e-3Sn*7h7xKqlR>S9YXT)#vGV$U?L*CXHGpzzd}_*R=4(N7MlL+w)!&jAtJ z`_!_Mua5JBEcy;a(JOL|0c-hx++&uCx$N#o_IC@(^u^Y}4{qq<2=CUr-U@W{$+uz- ztrYdy^R921JX>YW4A{PO1qqIk1xz$KIGg5KolCY;qm!5#e-(0y;(mnRLbWCx<{f$W zk^2u>gDe4P;CYb?2+N8U$i^YUOx`h>zHS+8zN>%gP+Z(!%maBjtW{Oa zTwcUM8*{xLYzNyS);>(WIdZLhcEwKYCZV6InHX@#%YgxFU)|1u2W{{VwQzh`I`EBO z9xk}NNR~|UCZRv;2QF@!Xxg8&JS&Cz`)yj0m6X_nnj2@BIRG(+yc)*s; zi}E3NK<^LBM)^<7*6Wd3*VFZE$5ny|2Cpa0GWmK&=GQQ!sb#FaLAg+J&LEH?`@)OS zEA5m&-MInGMh;D1P1v#JfOKo;?YHiO^~frt9Z&+D5|Zi#r*iam+0g;F1r1so3>xt zI?l)1OUB#W^Eb5%htHA~*%jdktwTl$zY0t{MRf4eCgb)*ZsJ3mXpDPO#jXY2geud= z7!%ry>C&i(w}Qu8#lL_MXs|lhviOadF(sld&*-F(+eP+DG2i8yL3faYY`f2O)90gK z<}KMa50JmGLhP_TBARrfD<;*M=?fk34W-T|le@SS|MT#VNLW=yqHZ+y)Jj7m9EtbV z!D79iFRW#ooNv@K^8MXE%o@=~ z7ZizQnvZRy-JqVFHTu=s*Mlofzd`&?igEm(_jhKVTbmfq0i)&&k@tYjS5Sq1cPnYacg|~k!kM7K5cFE$u*T--}f}FQ3{1eWdu^bwNKP>Je7?v4| zc+%>+>lNu*?A~Sfe{^V`*g6uv`R)!je zuLGa=O-K!;WX?&g=96B!uJyjlraKs(>!XObAH2o$ek29B%}+#`;h0ayoS1QQW)3n+ zVJceSXa8OdO~)7!`;+IR2&|gsSxD~ zU=cvWI}_QePA_j4aST5A(&D|qh8PE^H>__}a$O37{oEL?65P?Cs)V8+tjjN1d$7pu za}owuaqsWY!EV=Z5iF0_tDd>ZUsAh{t%JWbTAVpWsSs=~MO{zW_{|29fKPi*h7yM% z?A#b4o1D%Q2UHF4j5zjRIi#qN(_{O9UuC?$l$h1NQSau#)Q}tyj0h^Z?%#a*W}Q?lEt++L1qqr-7kH!GkB)gZ{h4mmp$!t)|*vK$r4med7GaJ%q>3;?8bigqm=ee zc$*DZMJqU}ACB0WM=a`!K^NNvOd{2trlt&#Y4TT`D18_O9*cr*x`*b@6l@6zpD4wi zp5aZ9)8rg0%^86IQAWxUQ=a#S)K=!+*32QZE?(456ytwR;gB`K)l!qjD(Al zzHu|L+mS+eM!Lh!nV@(@lt$lk_8yk4)&KOk)v$vz(bg=PP^(Kq+U=yy}jJ&A>>G%ce? z7;|ZR{k{bBB@&u?wR4oq5`(T}ulVH2ADN8-c2oFG<$6;7x5mSY3g&R_dVQvkj^^yY zSw7N^zfqAQg9{Zv6Y(|)loS3?&J;CGpXOrmpfSLvciXS$H`~{dgoL!%15e^EeeJC_ zW*=JDIfi98j=~RZTrVYIXvx}Tyoq`7pMJ+q)qc}e8RDzHJ9u{7 z`MCYGAL3eZ?U7$Jf72>@H1(ZyY6k2>r(mhC^?*u5*mXJ0$#gj|bhW-~5XLWuRr3lc zrf0+}XOl+d0rxMpGH6DRwiJX+k4^&jPLE&9-2<+sSOB!|R=Wx+OM!6A>1B5grgWn) zuqyjZKTuPAmH0oe(k%?JEh!6=DgQx(hzA^+md3V-;H-A#;%}s$ zQITmkg`z_9Cz337c>U-;4{12N+SN+A@ zx>EagtHV(he|XyPUugmB^p7cWMe2RPmMw2?ioyMVA~_wE)f63Z#ST1#qcJ|~<1i=( ziRM}6?1sA0_T&ev_55#(aE`EQQ6$v+&h)TJ3u93M#fTD(|G^;$nxn9V@`t(tZ4L_d z5}~SW?s~`l?BwsrgunFo@#%;6V6nf|rOYXtl?eWwg8~3s69aeTxB8SM*FiC_XH8=} z8M8M^n3T)L^Y)f6oLa0oiuw(6Z&73j#N1QUTm271<`kacOF4|py>OPHmM_0h-I1H3@SnV@on zbm~eb3_YSod{?Hlh12#fg(JqOz2HLlZG>UoFH-Yel|WG;crtoM2HApK|yo zzhVa!*+*nM5SvhBZ1UeoSHu@M(xqKSQ7DsTnR)$3T)50%PawoudqM(M#09iysfS4;9@E9`4AT$=0Zwp3^aCj?t;d2F{7h1o5+YA#wGnw&i5wuqlY+U=3+ zC~ojHzc-CcF}(e<5LKAbD@3fHN7(1tD;8jos^8EVS=(#Ko2W4}Jc1~Ffmb7NQN2F$ zE|J=IwFS1maTEg9y0~I~uZ7&@JJXHEV4%~)QaqPEv&--Z=jBzyXd^;yw@_n|2!p-| zSd=YuZ=MjiWMO)t8z=KaOlhme(nL9)<}2-Il-lTt$4}&(Acn!H{v4`hQ#OHtE#GJg zWE|kNj&|)I@*q6e=eCo215Z2Jm0=d7yRH22#L6d)fY6H=;F0=W%H^HCLMC3+C2gQ_nm3R6!VQihgI`C zQy9@nfX26h?YE(gz;BHv*q>~Ld+xK}`m`-|0FT2Dj?l8pL(m&S-2woFrD?`cgyfiN z@duY&E*SJsn!YtkFnl4?R38lq(*}u_qo1am4=K$Wr$NW?bF{XC|0*OdhKH6bKU3}N zW{D-g=ApIqxx;)Y5F`y!VVNF%!bk;g%VuN^z0^)h6vxlH-2SCd7n&d)H-k8F*xNNR zi`|pwy3eOO&$qj21|d}_C!6P|5y%Bjopv;cx|}_nWM!Z(%40>D08Gj4F;?rK4%LOJ z_;R{Wa}BEe=}A?&Iq4wd%sRilF+0+_(FdGw>&}Z{4I&(q>5>F03`)3w(uE+s zVckYwH<5I;8TIJw2e|;zq-%FP`Y`Zy>BnxvT}&l8kQaAiCZLzto3S_|EP<4ksbE|d zER3#lJn)1~z8+!vDDwIW&k^v_2C=rx2gVAx9=z|fyUCRAn~hpIX6iJ2b$|$Lk?0{CB;$?!Y2c{)9smrq$PAvesD5IBFg^Z98^B_=5z$`BJOo zs+^sFmPrmTEvoPp5Vv;wUKU^A?sqQjbIy#WH*O zuk4v5Alcx(pm1MYa}-E?r1+D35-I3eS=Id?wczc_qUmLwDmYqcrG0ySR8`IG6Zh>Y zacc9g*Y14bJ#xlPKlJJ>OE3q#YY#3GcI%6NAA?8Q^osQ*Cg2bMBS@HKTWVbxwIiMG zgLQqnyo*Yk25| zoczY64HOy4BUJM8eHi$kLe3%B!=R?_+G^muZ9Qr~zh58tz5ufz}~=A3GPrGlZGWtGuJTP@R$%;Sz)L8-r_=$E6a{ z`mN$a2<8eqqb{UW8pvwd4Y)WpZBb(|x?dNPlsf%MTv6($V41bB6iw@P=!qjmi2q+2 z^8-J8$nuS`XI@lDH*0hm1KeuO1QN@|)55mvuKV>?{i(6Fe>)=iwJ z{*TZ`D1{X^=%Rz7wlylpP*`}{U`_GQc!=wdRvY;} zVaK_nWHG%}iB_*lIiDZYvkP_{x^|W3q0fHddx%R#A8Ed>f1YO8o@!HgI^tZ> zN3@7`~%(I&@WHp&Ov)uFV$f;=Khjy*J+;b3?=(FpHQ~)h0oL~L)1&9aQP=`#&gI` z8}aCFTS4mQMgGH7Sa#yU5JH+UjS_sz~xAFtQXC@oCpG z(?%aChqA4vS-iq+dJlHl7s4>lOE}exkBjQe=`?9O^VRC5?-8xJp1EMC4~ROvU=VMN zO?y47z4oAQDt%v4R5CLBH+~3UWH#Y!TxWDf`K#Gt!m`*U^SM$w`7swe6m(?vRaZ;c z>T#Keo#SoX6VPzDt9u-ev3@qXEBJ=)n9J~46Ogq|GI8+89Qgu1xhki7r5Ld8pL9Qq zd9<7J7bU6fglq!sYg6BJ`<3t$>)l+L;@tx>H{7dPdS~bAE6O{2Jg)Qa{w)91-w%Wc z_dAe2LJytmm2h42HRgExWIvvTr;u=dt0@FTcKM;LzD=#Berw>>jCO5@?Ny?`uLs3p z4*=7c>Os0dun;=RW2SW(wvuRUY%1{x4^-LqT546BG77BVPj*nSG+XlY*X;y`Dvh|Z!+$y!=SnS;=WQ-qC$_ekeqZW)0a-JY(1T9qNAZ=N-}5$N{8 zmc&m3`Rigme0u4v0Ca2-@ZVe}9?D^_vDlJA~`_`?!WkyD2%l z#vlrRi7Epy-KxeiHbhq>J%WjGHMh%wWlaK0#KdwHiKpMg$shv{zcsK`7TQRlZsO=@ z0hcqFOn7!aVX4B?>h3i_J$`=0jLl5Xz0IDTltCfTreODO?p`T_`ZCje^DaPtZ{DFj z`5sU2_#mA`rmq8+Tp$&{}W0L9Y_`FKg(SuJYzWtdUHLNK-9BjqviAa>_ zC+U9|P36B(8FzCMqOW&`OMv7%2*{b6=l)<+LXWoo67&wt7Yys=bHr1d=xH<#202jA4SU8{my42efyPp8hh;txDuPNhO4qW=cK?u~#p|6OfQHucd+ z8ToqwwelA&`_e4#+l^@)MOyKcf^Q6|Td6wwcH<$mASX z_4ueu_WPJX=K&{ora9ld4t@W6L=3JWDN{40yg)Xi#8DB_ULX*RxcluGA(RGM z^RzpF(iIha*el0sV_-WCJWIWr=ps%gO{|GeHgjxts>0n}2B9q4}P(OaAImR1Swx&w0w}`+q60<)U{r#g*$y*nXXe7?4v2|=K)FmIt4xgad4>l*@jyT!hd)Zs`0~Eqc za5wg>s%LoAEo-nF))RORf=loWD{5xs2E|O0E=TCpq@~MpmpKufk`=lNP@%K}_8N-5 z^#=6U*lGJM3MrJvN%H_e8i&$g&M7_;X|ODC<9LFdC}5L89sEIpF!QxFH#S4wYR_Kibf(nR999E@wQ49lI&&ct>OJ#7YqUK93{;AXTrFpu} z;Z_33+}>K-W1wsNe*7&D4n`4B|1uH%_rb*=Wuw<@{hJO3mMbWPV)GxRg7vT-#6RS^ z!^8I$UI)CvuAi=dQ`IElvNL!z(c>eq#%evm@tCL&p!yU<>hGtRCmg&J18W&ta4{o0 zB~-k)%Fons==ARPuy1}flBN=oN9%Ui7A{%C*np8IY+ewjt#qbzX~S|USx0Cb58?AF z%Lms?pkN$X*}D8m#LEK}9k}?Veh30jwKlg1n5Q2U=Lmm5ceV;{7+O*`R2+U@w*wCJ z6-8sXkCRAojd4!#GLEtk?GS(Q$gk+06@wiwYQJ`# zed1x3SmVi=DSiXxN*Qm9Ej)Mcc|_}F)Y;4(t9AGmrk4}lDo^jFS4sNM+xv^49?)N6 z_1G6?DATYLJh0!`ndf}?m0a*=J^akF$zHr8IN0zAUumSR<8Tq016;OpuMpj~$gD0X zM-jFe-GeCTr{0`h9e!sKxO9{r$O);k(7f$#azV5IC8djW`q}!Twt&Dv6*8Eb^U9Y( zPTCg9NkroHn1s|RVcc-ggus+-vFIF@|J6J>8Yx1B!KbQ&P80!ll)kDSGYwxxlM8=zS^1riW(w)#Y^g*EGMo5R4UOgjF7~)Ty`YH zJzSZU0xCh4s-R%~;iZ0NE$LuVWV3u0d+AmLd?3%AU>z_?x9yqx-)r%UBBOIp^kOi0 z%I*Ja&lBz1AalHF`5#vE-zM*?tbx@C7ZADq(dW>2E4HoPk4r_k#y9NU5V0a&6pz7; zHo6`yZSI4;srgpphs%fK>Z6%z8X880XVD#Wz%AP--~SkYj*@jXxY??x$nL}s2eIsT zrj};iWWd}Kllm{hgz^04u?kYkaqvdrF^b7+0yypDGI7L{#1newoQ++3=&s8m^^kNP z3Nki5u$X;DFpfT{l)Q}Ii@- zgIyUE8FO{13IjN*2+*UYls#!BZdYe{Od)Hg;CgJkojgk_sb4w$Xg1Yu8>aVnP+_n? ztS`hNRX}%Il9$OY^E?%43X9x8*)G@88(DSrr$r8%&1b%$YV#%TFTGH{(YuMJ0@vF> z$Ll0P#*gsASahZyt2Dbs%+yAz^{^P;7a1?mW!6Fp{*d9dEXa7ewK3Nj9Z=M}l@p%j zE8_VQcHSM&JTKu82kVTYzXCMx=iicb&r7|;%heYVh+E2B5&yX2xOf3bV zY8D)hoUKj&UmTk;uT=XBk1+ieGxXg;Qw^G|?`BDN3bb)t1t7aKm{TSzW=$@1R23QJ zo(L26IuC$8TAM6XLiEN?e9=g)C2t2@(7oOEu|GTn=^)psVY!4-Q%w#8hWM{G_?3)L zpm#a^U{Gbc#PZ1)Fp`-V2sDeLFnbkIO(~lril>5x{2i4>H3bq!2ha6yvBS$+@+tU- zd@^*n*HT#hv;%~xjI=-|skcb;#WzrG*=(YhKc8pU)9dl;`Jt3cG8$W7%WUnIpfw5I zoRydY&Ai?N>R}!ZCqGan@mxV{SWHPf9#c+ct2kgoxwEIw2H-t~qn@EsB&j`x+U``S zEw>u@OsVH0Dm!$r0KOUFQ;bQ6?_)f-$Bv^_!_Xt`UqLKFx`t_h$Jz3-xP5)~o!IT; zdDeSn{@ zC%9`DeGrf1+af3D=dvfym|cM|q1o3I;vVzl{ELL7Fu-;blVbq=lTR#4J7U$>Bd~vCV!tkdX%r$%sYmFV-=J&@~=w{_3*+y_T16`6@QlGQKz*{z;jK8LV$JqW{7-3iY3DO6@$%lO?83CAl zq#KCR)TLpgSNY@*gu14aH11r3YM)>|9UL*K3pYD0KDj0(Axtj5OH)U+Um5ospE=|9 z{z^O?I3xPjOXZ{KU+mrTg~@NpIL`lWe*bj+Az0aD+{}M?Turo5+M!VN(+sgw%BK{R zEyz3axN?z6Pe}2m@b2NudT@D*6%={VOEFjA;1PFGVn~GEM@=~T-XcPi=Mk{#+Fu=Exz4l6gaF<$bs=^> z5xvdgKjvY2N#ls_>W`b};bL^rp(F#J-~&dJ9P6Uk^K*i~U~xEgFQ}s-6HUQ;pivH` z6UD>&Uw1kIIpgIhl{DeH?zF}Ds(T`%cLYjpMYc)qeO`bm((!J$LpzHx)4Vc za+9qH;Lt3~4-FAiZ@iIz_k)Aj&}lgGsq-unmUB|dx?XABqjFDth=;`6#Z<=;*%pdZ zEumiE;o}6uo|?hrK!huT*1`E=hG6EV@{r8%M$o0aQh(x+>_U@G%X4 zD1;Al_PS~Lfy?7#vMQo|Le`GSAa@eOZ#!JQ4-614L8|aBzee!%Gn@Y7G0}1kl@Zb>% zgv=(;55j>(%=d??=OaWKS(!o+n%tfZfSO!(PVpWV?vW(>$=gL&;V|MS3O|ZwIRb(D zs(EV7>VX!+vqo)^@+||m3_%+g!G5fUpFD_|6(9UNWVU#JtTlI&@~vNrJr*B!Zra|B z-P6T2B{-5ARiZjQ?F3o((!TYdt7trp>$8f^nG}`JdTIpesOmG6E8dsC^tP#=(fSeh1>q{I6923{`L-JLKt z#S;s(ho6%8`YJt9Ara1#&gm$TwJ3ay^4&<@_ECmSKl>W`R6%8a`^OPMEEA|oD;&Wj zV~+CH*P>W9Zq6FRT;{iRD6wus;5nk?{(rr% zD`~W{8GtGTtf9R|%)5ilPVR@m-5qDV1KF%)WC1&^TNWU)^oi+dZqB?=6 zzYO|J!ZKNZFI7>nHm7fRgK`Crv@@qIhVQu}SGM%|zMfANqaq($=bDpsW?gd~L13%dse3EJFC9b|}YMr#RcQ z8Yj2R=HD1@Uq6k8)B6Xhas87f;Hx2`H?CEjqcMkYtyd$aud@k)%~DJ`2AVv}0T~l% z_Y?mOsth!1%c2mZUD}Sq7YwgOzii>zu3u7Z5J_Ius{a|5H4B`T)nO(&B*Qi6RHu=Z zn^*VcZeuPSly$z56)HP8B4=_}Tt{^GO)H%4iu587Ll&v302*ojnXdXz6TFUv+(>hV1tw$U+cBjsk+{SIW%kOM?Vv?il^|VTvG^8C*zbkKdyw^LDuTTiP;c|`MC-!C)_~n)vZ3q?7fuGt`?RJ^5aBtR{MnBb z#uErC7S_P9lnq>yP+h{7b0z6)LH5@9*jh7)V+YWsZL$vT2DRG6 zRH5bxZ{Q~fkdkVB*;fBH15MhJjf+`B2Azbx{IJ-wyBd9;k-B9Z`in+JvWv_4meRoS z$FuP@wU@}nJjeH(Q)Q$`(=xZ~s67*AlE6R$3R9O*Gnj$z; zer#iMq%gybd5k!9_jO7DUN|@Rh?x~Pr`~Uw^dpfTORf7R^I6(k(5(yP`$8@Wl5VPL zp9O5e*kE4bhdKP(pmBscd#ow;aoq?8B+^_4VEn(SA^VjLK54>}w`kbLc_jj)4BenL`W!yk0o(BpCC*6VrEYD{^JO z1#*SVOdLY$iQ(uga5FT`@h7Hi6v*H7;{*2$^-F9Ah5^m20a8KVvEie?OCg3x54~&` znc5upe%P1?tOY^=aFRn#hLs>UU%K6l#WT4aO%@X0uE@mOWg}X}xGQsN@qW$cIT<;M z%&-{#SD^?*$C+g&%H|q#=$5&JfC8K8Sb`DbjFjzxSG|>ua6-iQkS~ zo9aBKLJ`6B{Upmj-a7B-5^>h?=4v~QPPZJOBsrJ+p!y|+_$C)*P4||-1LAKXNk)Fz zc#9%jnVojJ)H>|gLi^|wj5fM}fDe75RbijuPwb>A2SREFq^Glt+I}_n#u9I}xYYGl znl*B>c5Ji(Js~~M?)w*Dc;GSHjjEOSu<7Tp3w@B!g3|Gati~6FWODb+p(xXhC+^vc z6mL`yK=59fYg&`{=$%%iN>9TP!sEX83?eYoI;ADe*eKYvdy%FKH&dXjxrQNvGG3C= z1AWEYFKFaVUwAqvB$O^{3Bd!cA*ns-|go`FWgQ5#z{5Ls( zarpu3@{+LVh(SI{qi=+wczq=&XQ-C;$yIaug*|EV#`R>2tVXyRU?gLV+poms7MD#FZv*X8CDLPwxMYV~!iYD0UL?cMyODj9T5A%ENV@xRtgvt)WG9@AJOl zEqWxpxN@~QR(-lCUrYd|#+rB)N_`U(ISbq^!t9W?HC1T{>ARD5(J#`Ktm+<^zJ&+> zLM&49-7K9NL*X6jZGu(lhfpSSJnBPa(Z5W@T|~5>1$)hHdXpG+41NpSHEm*W8<42X zN*e7@<;-2%UqEv=MJjV}OQtV#kP+0T#jkc_;9JRAfW;#dAVIapt94_F`T)>U*UCsr zYUo_(c~!Ain`#Rwo>XNTiR4Ex+T#M>gN{CWhT6dZBSS2v!IAY(ix4f1ZvPihmk}mB z&3kVx=2-+;Cv74Oz^OPaxhl-pKm6IcK|o`KWJ?3Sl)IFp-H5>EVOj3g^xFgiOZ^1( zkZeID%^Vz>`Fk78Ex&_%+%*)_MR7nPLX~(FLKq%n1tSvk+rTxn$+&IURtu;uV>}l) z8UH0E6}UPrL5=?>gb9dj464EJvg)0CKRL~AA=%HX&&M>KxuWk;JB*89M%~J;&-{z?NY9ExYhJE9gKpNNC=TKfFCB%dnUI9hcy$;dbfU zrti~pJWfe`P8SRyu6S-BBWxg4Q2EOs9l~;Q;8yFJVoxQs;zGE|vlI_B;kI?Rb3t9t z>oy&#CwYHy-yMy>9tRji#mtB~29|%w5s#(X>sj++Zp60(UiN*vh!>^hn1Oxl|B$vO z*2-VP7gH?jhy;MZv%r3u_@GFgRbK5L{;GwQOd;D~6*RArz{<|M!PWsdH;UtgDiRP)>qSf3^L^&sEe`sutz!jWuF|7`1muo)sO}^y`QOKkD0!$FnS`O==y@kEh zC%mC15X1GVP(#Q)K`+F*ob7Gum_88&{u_@DtMO3QoO7vg^LGd!0{%pVzxp(ch*=8x z?gCCWkYBQ+MEuwWuT^i(2@+pG9*EXzR5^CIrr^GGIL?o4XQ~(OTbw-yle|v4oUcxq zuPE-yf?B>egQ=;gUm3m@(s9&IV8;v;f;>}g*%qUof{>R=HnRcD9AWTF9fq8+9W<6r zDx|m@Mksw@=ECGaZbJ!e9A0=j$-(uLxrDOVm0bvYPRb;n~E0aVik(Gi`UeS;t7Yr za@xWBY6DBK7t*U)snazqGC;e!=p%kJQ z@@Kd$jBzVI#~Z2c=ZSH~PrXJ9AAF4;bs8FOvaI6^XB)zfs20vdEd?1ypT)#I&aCVk zNd(0+8akdbtuOS}r$rI0#PE~k31}*`d%`T#X=BRoZ-sdg5@`5&NW}p6$n1f7Wc$cP zce)P<5Kp|(S~&G^I5%!69_dB>L3QP!no=ylf$^B^hL@MqW`R?nV)f--n-|FG_%!v0Uv`hr{CV{muXYvI{tKxND)DS?i((%___nwB9>9kR!n`>eYp;f;xu@;&&*+Sg6F(Z#=|G8J zFiGKu2GuIsWaknVe^?C{1yiJlgngS*%%6%=724AaLr=ADnUWV&IL%v3A${XXlV$dW zVa&_>sbPJ`dnyxiKw&7i>ezh-Ko?rvp z^3q8-h9wymQ2;T)=H;CRBh&_2Y zG+a~hb_9Km?okU%6*JRs>AMsS82a#+6bBv`25NHcjw+Xa2`7@5_dtecQsAc))$4vP z|0;u8F1ApR4ny|Ct>u=5y2;{BCY-;2Rp2@t$L$fcvvYh*lRLo@oXuTz7H}CR3OBgL za}vn05Dbn$tAsLqT-Tjb-jp?Jdzr`FvDiTRQPx9}gU`wJS9UI;^FQ5ked8EVx9kxN zeegSQKO?f~5ZK7PSQt3pas(9?_p=?B``a3gw6tR!<{&+jh&u-nlYT&j6-B+VAN)J) zj`D0;d9!i$TIqd4kWu>}X6jWT=QG1dd66=N8@}czEdXWtOoleZ)QS?>frMh;LhdI# z24@mR8auC{cXLDI8ObWkWI-OYk*6A-{H90Q`rAZhO0~V;SNoJA{Iq%n78pdTp-er; z!eA4P*paWKA-1S=_lYl5((b`($gkNN$Qsy` zVQ202EJod|t_vXa<4w2K#K$|wag&}sQbQHVqCVCmuyN|_zR_r+vJLin8|b@)DYZ#( zDhs>G%Cbdf?<-}m_+hZ$;mblIMfBGZsHO0qIK$}OWn1)=sv%ZX8h%vqQrGKS26iF$=h|yMDaHoxFr$lV zkUfy}uV%*fVXr`nU1q|1K$j?6&@9oTc_4)jxMxj0Tl)5}l#C|j?BbzZaLbCzg|KBE zl1pL588PqY-N}elAx2K*=-C7mDv8@zo=JCp$SlJ?Hbv-D7-dQz=1Eh(M_Al`T^?}g zTb$*vXe6S%`Rmuk;nnu(&2>@e2QktcZS|-6kLf)TWO1}=c)yTPL8VHHC;e(MmLYsDSY!w2Ut#1Fud$^yxt zXi0d&T!)YsbbG47g($tGM* zW7z3g|5&^xaPmDB)WJt+_D58RjOJ-M+h6&rB(Ob?(~T`n^PsrzQB*^!k~;Kk6lm7v zxKdh}{cH&r-yHWyl~9OB?9b#lr!2hh&0$5btlXH2l?+Vp7psLeewB>x&fBVJw;`ai zvSW!$<`tM^*>`+AbL_=l#Cj*zUXU5OJaZXLTikG8Oee9wzvnPcIFJAz;8y+FrzF~p#k>8ESpQL%|AI|gn|+wFJCuOXwNH9`GEaC3(eOl{QQGKe@+fvFiI zqa8^&jD46Nm1f1kc9k6QGAT3Xg3x|#IL2nS>9+KvN}4A>m+phjd2`2cL4mk4LE*K5 zFO>!&c0UZ8Gk4#k-(ZXL9EgiM5TK8Fw-F7Gs@P=G9-b8w~iPIthbIO&ht~-jXl!E{vzyro=OaD z^QE|#=gu=JffSCy$D%WcwUj6$MX7#qDgW_h5Z^=z8Uq(Hc6mxM&#z<>9+@uKQ+eXJu$F|e4(Q(DLI<{@6 zVov&;Gykl)n7OZ27hhGa+RxtmefHn|gqThApNu!rWNfp9PD4uPb0`ci{5)r2W^L<2 z*i{+k@3ka1Hf-N%kbXlTe*!OAg!b40}t3j z`EREzbRm8D+t_8a`@sf;qvm$Q9ij25__(c{IST_s!MWI)C`#TWgV_^N2~h?oP)r{}jZyo!L{fh-Y<>bqa8eHE;8uHS{8E;XP7 zJBN80Hbba@RMlmf#IgZ0$f^sM#tPxOfYzQ&{ii>oj{9}!-xAeX5E!A0@e${YJluE> z8FEU6giJ+QQH21AQN}}Fw!Md_NxpiYT%5lZ^n8h%pUM|C1U0kkE?7!spO$4q+Pv_Y z5s`K9OKw1A3;0Jm6Q@Q_8$}YBoe6tU3g3^pyD~!4CRS)v&?9%0y^Uz?Sz9h~Fr^FM z1v3c6oJqT4Ghm(Pqz-b5<33Rw2diO4yO1d1sVg0Wc-Ps{KgSaDqvntTxYj7z4&AiI+8dknWX3yW(l(>GUlyDv_-P$}nv8?=Aks`10ZyTE(_W4~he)p5(HCxYEm%ia{ z_zF*o-}dXMBzyP7eN^_?vGB zLwyFp+jXW^IrbUivEtxghwNs7^Y!04MD`|3c;3Eyht2j8zpb`Q%$s5d2< ze81^FJ9%P=Ypn*)e2eZ2VW=^r!NBuNLOuf)rn<{&(o5KD2yqCA5CZi6-UP#M1wBau zF0|pqKuoUp?fS*NZ;Q*y$IC0cZ=1f6w%am~Y@>T2fqyOwK7L7G;`9ec6W{@ISR3CW zg^5Z=QYtA(TtND@#ZKc~sYwZO^V-qbzPF<9fsWL=FS+>;oepL{gV-Op2n@tk8W@>O zo(b+f8?5yAhuJn}`M*{l1uqV-6&Jqy@MCd%4UkH$)e7meHo_{E^P6z!VDhbGo_N^+ z3ukdqkO_jAVQ&zof8o1g7pQYrXeSpO?4K6Sj!GHkwWsrgH$?_(%QD;jeUFm*Z#Fy7 z>3s%?oA8V`1s_>DM8%oU9NUGuKkxaYM3Q&UdwA$71z3f0n5;OAfZY*DqWUhHNOhuX zk)27DGJ)e{>$oJ56po->=*qIK)V~77K)pnmBB!Xk)$h*cEnQb}3VvQq^b2|!_OK=O zq+WA~&JEKOpxq~5TfIO$HCmUs?}1r+IxR7YN8k_=4&?g?rCix)Lt8@D3t7r`@$;`F zr|9HgeW$TE-0AUsUEic-U+gaxcT3S zfE>oViOXI;=T_0aJlZ6tc$&)^vkCS&q&|SkL`<@;0NnA}EaRpX=(M&DcU6^^#@S`8 zOEcMg;jeOh-kgKA;C9jPIrRQ=2nr8J3yJTlXb1j-Zz~Q5-F(cIPVEAg6veStbIT1D z`_>q;Q+EWq4IyKhn+OSXf*G4g6T)F6-kGYGdd&y{Ds+ut1S+(vBBJ+S`vwR!?!HE= zNW|_zJ6jdReugV}-}+K5JQcGRfS_EJOc3e46q2s&j8g#)jJ&|ubK!i_mp%ggUrSK^ z)T+WVaUyFx9Qtcc-*Q4B%4+Pu_f6-;YLTJ00VIy7!!_m<5#oAy?JLb=`H1P@xHbET zf!$@|SI2co;&C8~AyHRPtp={Tl3TS2BaI~oyhyfFu>~zb;LNKa(>x|>_1RW3TSCw< z#W0AGf(vNOJ0PU&*x@^xkWw5DgPh>>^#F_4hrE`&Jvk^u7*tMm&~y1j`af(V6r(uo zD+_4xyN02%<0?S+B;_34CGf}CoFB;!ulda8A9Aluz~EQOx9#!!G>qC0h2IV*Z)C3% zHCiuEb*l=`ZP~ZUeWG>dQyE`bQgVxR&!*hl>sL}84SyhuQC1U8#r1Q02~`0W@Lc8n zum5X}@q{2Ye2~ge`}y9#WsXyTLbFp-m#>|M`Ce*3F53eVtbgTagIv?7yTer5nmbY1 zk1k9>ea$J)C&sJX+-C7FMdG=-Yv0sa7?87E{`@U3@=d3aV5e`G=h+@hJu~M`4cS1c z0V0{A%Y-L72#o%+h#>7>=c)STFFP0-b z2bMO5HnNP*Fun}(`nWyj2Z-pLaLpV870oaWSVbXE!x^MS18fNm@)C808vjmjlxQp% z7fRJ~I@zD!KjBnjOOEiGF6h_~pUU^uS&f?M@0912jqVscBOmWVQxTi;m8rGnK-J)= z0)HcqnX@OJA+T++feEU@y7EVIr8yDCq)wfwY5bs!%&<>CtC4%GV(JY+aTlW_iA6fb zGKL5nW3Aj43j}N94&d+zCiRmR;#b%!= zzaYzKVabbi);q_QU}FB2&NF`qp~8+GLQsA>9I1)sDSMi3jocKqiK=xPxHEvgV7-BN zg(_@2de#~vg3D)1^;-X_I8%6}av`&f-%Bi6xXwsg`|- zdKSiI@?-eu{aszgel9RCsO& zN*gn)FPOsWzq4BhC}=h;&Hv7BsfaB9`Z~KsLqdmA{ev@1Y}I>q6D|4>rjzRSd}`m9 zYH4^%9&Ap~6c@9h2&r0oh3#sN>Op6@dgm~;ULNDsV-bSo1EG%i1tSi5kS3DpawjRx zl6{U<7P|*WnZIpUw8mFbgOp|COR5*@^S+bG&4%#TR_uAw?jV5^jfR#EPd%QuB*^;` z4ojOx(vyD$iEp<}#r&+2mwsnaV|ZSM0|{u{+S0ts^(*p^#G z>gM9Uwfs9-`k^*77$&ijQI#FyMU3r<72E!0%7Suq z+H2oZ+9&~Bx;kmDI9+`7TxMF8)b}L_m^MkHopAgf$s~QU;}?PI?`=ol1D&jJ2ggL) zz*|W*91^cZcmXcZw=At~p|$T{X}EWKm+8VTH|)Uu*kw}a^xX{I)zm-IluJvA>j*9w zu%LoC#;bHD0C%0os6gR@Ym;*<7K_FwE1n|EBO3^`bTccIPxylpvUCQr4?_f2A* zVNN|$^I6Z_I09Lw1iL8x*A`mG)k|k)Pz`Hdm(miU%dNMRi(F@0l*Hr*E*x)A)Ay@@aA>bO9K_Qzy~$zn|wL2DDGaE zQXuHrsw9AQ(Y8F~D;CEb@q)RfQOSyz=!!_^1*YQK!Us-Q^VQL@WG<&D_aAX88Y)EI z(uD;+)yrZnbR=P}F4pjuoQFCDRl-0l49WdBVN?zg`h#Q`VR5D-dEWa7$0V4;e(6le z=IE2YwPJOUKEJ}#n^VA*T9_Me(SulpU&l#SD8jtU56p`yjrtTRFp;+TJqW>Y&(6PW z`|UpAV(SY9fgJ#hOs+bVc|3OQy{A7!sV7e0Mga57`~J{@wTXWwsj|JTFB91p3W}Tm z4+X&y=D)&4`@R1$SUfmjJUAdzjqcSt1>oT-|1gNj%)mCho=)M!>?66Ink@~N;;b_9 znr2DI#8%=cz6gMw;qr`@x)9q@GpX|JX-^>3Gu%`^8t43e=lFt$aHO7qn|U*lEa*&=X`(*9|RYo}+H0}(83BY+`{ z!fi!qdQsb_EP3_F6>wHx@N0YVv7kgdsnB_p12+D?#dbn4l8SzF zTbp@6iUCU+f$+?G2J>;OQmsl0Dqs+inXD``=-%>yTWLsr8nLG|`b0Ax_Fd+rA)Mg& zD>PDf#LAGTY1*g)S%d_E-1z=AoDa&Gy!)3Lae}N3JvR9l8WE#{*8}mWmeBj<470b` z4mz2ZY{#FQ7bjvdckmSbLr9Xwi_*4h0(T_g-Z2*Mc!N3H&~5}Rl(VKX>eiVa>wGeG zu=!i;y%h6s0X@BmT{I+SnLcS*DZ6xquD9V&!k?q$U>8AOMs1agzvk>R(rRy)iF6Z_ z^<)ByX{4{=ZZ{Zm!-z)63BO7@^(G?kSMmGBl7*3pWy@3YNsiOfwyVaQnfe)s8I+d9 zbVtPYcmM_>`>E4NON&^v+V&&)QA+3`x~RX(V0g$cypT3oXqHLbcj4&g%<7^wqN#wE zjqB)6xIz@9NEsr~ohy6xOq!d_fhqrnkVdhTdwa7D(FMaUcoW@z44nBE&(0k@Z^|O& z-VJ0L7@cNs!4>Qy4FoXd%e8zCAx|j?{$lx8d|Eh&@pug~IEV)cN`Kh_B5z|2UcAl~#ekd2SZV40t_lO!6~6VZ zGOj*MYR=&!^1p>-M_}m|m5tdGi!7ZC!zhQGt1AZe#zqmUx#iIz!DKb#ckU zl&*JCydp}TFmNx|gqV%F!tiL+EI8+fs&8l@NPQ$w~lKh1BT5 zvEZA!ZUvq`Yn zht^wWaopG0g*I6te*@s{JgbbtC?C4bLoN63_d2QDW_POYs!Mvf}SD74;yRkOH9usI#tzv!{#Db zo5%ktw0&gLcel_57dOw3xU#8!HCKLg1sJ162<|O#cs@3c$dGj0#AbGHbb+?$yV|zF z_<5X5Js6BXb3RPJ(M(p7`2qWF-MS-lyXkkY_UsZSY(K*^LS8=`9QY#;o_EJ zTP-mh)j4?;crK3wH=Y`2RJ+I@uPId40G^5tLK**>bqWKyH#>4}U3%mhd2ug`f_MqA zy65tlr<5zj2W?XEIninFhn~UBf zq^M)IuyyA{2DDovh|#F+)O(hM(GYJTIQE zYZ34ftn(xzbHZWU)1#J!YW&M!@e()X2(0VDcJrjYweRDs6yPPC19LFBE7-jSqvE1) zvDHcE+WSm+VK5jA?^Iqw_>-uJ@3nNaIRn3?Prpzu)z^_>$#}*`RjL}CpVzaA8^Ft* z(av0y5su$zAqEXQfqgRt=g)?9@M|%qMARgB50RkrYtZC5YS*IroAR|up1n6y2py6% zQiMjW8?eEsk-98CQJpNAU1mSvdt9#!N5;sk^e15RZ!}jI-9$Z2-jK@FB<-XLj+Yz2 z%Aq7*(x9;;g3x#2IvIi4WIJds41jko_nQ<8f3Q*w;CVQ)KeJ|fb}UnGgsU+1*6AgC z)-_3#V#X`fS4}_3jwtC7i4x+3a*25?MW=|kg`;60SGKZ=D90QrH(u1m73*Ga==zq2 zxU^uh>gf7GZQCMZd%5Ps-w%BNU#$XbmfY3~-XQqxB4yv~Q*(8yl3I}$3Sz0=KaF^=dI6ysZqR;nd z$MpAU#DUX<(=ENVW*y8>=xGE0c2O9->tMnN>c` zG=l}PQT85m%z$q!c_-5P86&d=?l1O9sQiZT8^yg1>(c?M&bhFJK>VCVnV$X>t9MM0 z_tr6NtnNp@>_a|d`cyK0^Bbs<{rlD}G%FAaqu2^&^qz6_!&0Pka`yYDzeb0PhA(62 zd-UVeEqlV16gBQmPrr78n@@Y>ccJ(c0Q*An4fo9XbSbX_e~&IGCzs;&_3k`BZeHlh zW9P-y#WPZ`R+}8TnL;$U7b-#qjkAH@U39Xw`TRJ86;^&bALI4x!qyq*;-=N6tH6Bw z9XY=okA$;NY?yeONEo`6t$?X-Qm%xAE>P)nW2XxFTWCS%F)?keQ-un%Q?Tgu-X!zS z=>| z=~3eTFI(6~awANf@xMAX|GGNw|GGMPm8~|nqKrj!*|-Rf#I5CLp-(#bn=E!>2`mM$ z)PvS0R7oDUMo-VhlkOLnxSzBcPuk$F-EXKCJ?z1Xkja{;1@|!gSQ+hm!g-LRqSN4q z>G{K~Yu_$I2zetKTj{&kl6M8Sgi<}R3b1||Gh5H}N6#f^P$}3~V)is#aZrE;FR;QK zv`#`W%6&v`;zR%Xt45Bbc7|`yrC<0O3nvdmCuEL}m8*B)-}Q zYv<|i6!|^28P?X)WBFmhX=H@m4zr*Mfh#{hcej4}mqG|7HalrWiuk=#yLoD2JNj?# z0;-af{kxHbcI8&hWm`O=J1gA2lmK#TsL+P8GV_t4IO-ca3tZ0-%%;am6bWZjqXDi& z=~^lhkn(}Y>?*F8Woc%{*jnO1eS8)g7m8&dM)Evn{fCUa6uBLI>qP~Ml(%U@mXE4z z4wd4r&XhWJ-5!v+P{h)aR<=(bc9T2{x8Uo2D(QJhydJ$lxfK54+@z{dYX1=gOcOz0 z-#1-JQnj|kE~=XXns0p(_xsfCs8iEFw;uS{o3^{cP7TV4TG?ZaPe?i;8^|^E%J%SL zt3JBUKbj0*N{HGTCUOIgz~=9kgGs30h?_=0hgOng))LJ|_g}OVe+O(D<7`1AnO2?| zz=!Y()0o01!6!w*a+ApaGVf{7-IBXy&H8|#7b`fCB*~_XqZ8=MKyDv?q1;xgS2n0w zRe>5mfCPJt096bgQ@}f(u+<^rVKFL5y_Z7jqlJp4*5R#;(z}v|wANZ)Io(ENwU#P6 zC5$r*@|G+Iy!||Dcv4s2nV?R|Z!E~UU20?ZuuA|-pt67UMOQRJM!Lbr~? zto&m=;z}rcJkmy0NSwaPOx+_ag9*#FXD-RR@9MbEz}lJF>8d4Kh)k@hg91HsB(6W7|&is zvYy+VO#t0G3#=nl?x+uG+mY1We$t6q^&rZsWfr_iw;HI=oK$1{hRAv7W{NvT9AO z?@Eqp+};KvYQRf-uT#Z97Y@gfVzFo2Q428XdEh<&G;gc8k_HO8>Pi|>DJY)9t0?4a z&6Mq@Kpb1fYcb-~a70MnX5I|$(U+u9e#slAaAEEbAqV+pbt&bbktlTkf(ke9d9ZlG z+Lxwqjs9!ohh0Y42HD$t_Rm!KAI?+w$9a|*M=V}N@m;vz6R>Asp9eP6p@|awA#+K2 zHUP0WLc@mAhNhbPikWhz@*D09SjqLo5=g=rQ)xlH0NW8Y@G2%TrAj)f*~I>Juonby zY8Y2x&S|m>Nz7=9km({QFNZDID8o&f8Izc1>keJEN+$wt@=1X12 zqAhz&aid1Jsrqs;rVJzD3JWb4QbSS$L;?DBYdS|vXy*qBc^-NzTDB>xuIcVxQF)9L zjAc$20R)$!QN*wSWc#3|NNbC_ycOB9UH3Fys|O6!45SX9U&MMH@=MP=o3;HT1rxZ3 zRBD;o!l%Nq9Fdz#%Y#~&-9OedjoP59|C+2XMsHp@Bo(1PdZkw%(9F5^&<_+BB+R{) z9bN_1x^feI5K)|~5lpX95u6y5x#$K!!I3a_H7=kt8?n7dP@h`pU}x1A*CIuh4FC& zxN_p%HnFY2MGD;7u^#>J*d@;@BnyK-s)z^^>7~-dPEcLDUTu4|&e?@cCxdm>SrE(N zZs=AF*+aU3wr1?VVhyX4lynGj#1EY2cQj&82`0)@XIE=@XlM|_#{AUGfG)2EyT`Co z-28+8g*$WH*_uQa{w>F3X~J)kouF>VH%c)hBykmwFVMY;t^XlAb?&L69qB`Ut|sFP z9;JbQ+C&x)Rj6(ymOW%3cjL{~OM+FxI`Tl&gY;T;th3nf6a*2xq?97&N{HB$;LN1X zc?YL~kEaBvS%T_cMxZ(v1Tm>E4@n$9TwQ1<0BoE;24=i04ci|(dH`}LJ`#4bir`ZR zD$TdctQ92uFX1$HXXL1mM&X2U+Q-#5^GHsXX~C?*jb^f4R~#xd4YqV*GB}d)RD;Jb zKMbz5rAU0on|i^4u*C0gwQIk0L1$vvorIn(YG1M3kftwG?@hh4Ttg8}Bvxl8JpbT> z*b#ED3bXK}ZKh1paD7_cr(kx~u20_+f7fZY6d3-!q>_V#*=HtMNaA7{eh|sPRrMkh z;+d+=K&wC7qZ+74K|NH8a@&S`e6L8Yh)SvFu+|{TT&;4-gAPyc_x}qT#~6CNOzZy- zYB=KkLyh}T+^!Q@hHmKs+W&(Z0ibAQKB_%Sy+h2mPdxlW-_dDB&D@7M>|E?CnTP7j zga+r7n`oMbabU-Ldh?*XijE`FYol7j5$|5YGHXdrHsaa^@voh6e>ShF06Vj z<)`OJB~#3=EN(^>!26|5y);@Xa}{@3r3H%(mf1YPlye)4UCFQmVD0h%40xS1i$iiE zXF*@Q@x!4V6StMI57{bYJ1sD(rp>qLQKmQEa*Ph7i~C}{eRO2)gGWDA}4z8 z|ImiT4YGI5o~~vuE7crkY+ywNn|@WngmZ_H*PGq7-5tdWb4;mZpgwp0{N&DYZgHED)%1&wLNmEx8gllC;EqkybmSPKn(G}vXA<5;zIEzS>IVU^p; zs9JGCfHqL*y&n()EA@DWB#^k}8moQ;` z@EmK+>wBx%>yF3F=L&^q)KxT>0aJd=Mr0&Zi<8bwOUAq)X z#`g`*pr3`Z$wr7YYWk?dKccH-pG3%Dy2iw7`$8qHR*|HCFTwzs?QzCu0yq zUEY1$rmTj0qc^$k(J4DpqlmYfWr$Uqzg7Qm#sWhA<~V6eI~2bn&PbkkSVesRv@~DR2+(D^o0&;Rb1=^6; zkKWub=s*QmHBg^N_UP_ewtWwCl*2DEgGG2*kv+N>%fMwFhs$qZV=UbXL@i^cGqxtV zy$rh)eWBXVb~JLaNO~M&V^2YoIEM(G1DLAnCD)45fF$294M#y|lCBZv0aFolTv(IkOIf;@+zr1(o z3@&#bk$xa-Q@@y`lw4F>b7G)h|4Ovd(04GR8tgZWbXrZ3cB8)TgvJ!IPX=p$5ef8O zowXd=QWNCEOjGd<4UH{4M-tD<&mDfP61h;Z{PisF`$eu>6Cl)X$l0B)r|^7mI-D^eCM|dkKN-gmBE+S!EdR zlHpdVHY??8)fZ8D8C*EwZ|Qsh#g+{r2lH$S)#@sf0F1StOi%`#2k(eO05j%H{8%fpel@zQe<00id>loX4yzD8zr&?}I?=!J$lkp+a)! zBZHy1#?NIK#tFw>K>R?~g67UHd%)a(;vj-5R*eU0pnjH%;wQu*{aoD?3*)+uYx@F@ zTs9ifaI{^CDGqAYQ;;wTR~ekmV5H^OuKnV^psOR&6l8mmIv!Nh2lyOkn>^07^R!xH zAPa?Fv$5|5Mbk`rR9acZ7OH0IwAXJooqh~!oa3>F*7CHp{)4tBzxO5`Q_b5%Q~~ERay$ zA)(r=2Y;_G|BT}eZ5pO*29D3#E5OIJw(x`F8n2o+_cX-sStO)tj+r;Z(_Gb^Am%IV z0|1jSCxQXYodKJ+N?IFl9PMq2<1XNOSY8q;b#2p9?A_&YRHsFrl<8x6bXTfd$^hu(8yo2fe<6#pKiNp?(5gZZJ8c!U zSZZ1;tf{-7q9?gj_dYMYbh?~Rn?D2RCt^b=dPo!K`bbgJR(-(}?^sg8{`j-qcbzXilw;|87aIYqO*{=pOOdci^(vi-oAo zK>D@HgRtHUc)Wo~*&dnJ)Bp~Blz~BG*WJc=G2Zm`n`7e5a~IcHC-ee!`hc44Oss2p z*PeW(a~M8JrfF5^!j_1US%(GT{CYIMTjpGEfR$0rww>sQStZp`SGNdOzFXud=Giq& zqgLUqAz7j6-T~=B%)i=l(v;%QxF{{N%}fHs2$&z&+#0k>8P|*F1zbdc*-Xm=SyWcdr zOf2FlWsu}P0n#~cI+#*S29y+N=h{8lt4pj(y49+WtdJ3~^ydrA5kFrV(MrXp{0GJb zwXT^NPGD^R%zAZ>%v>6xCK9u2J)NU+-SY8Vi>=FWIkM_o>@bb+1Q=;rBK9T&xc}$? zNk$uJT3H6a=WV3#nZ}K*a#j0tzRS>s#%&tzXsj;qlIumXCcqD1H^Btc}c{jch%^Ln}++c3_>63Vp z@l-py!fTtzck*^8c(wf5+3p?A`6~7tncl+;jtB3ao{GmqIN+g{rm+q;>baTkl6qZ^YQsR+vt)OZ?DYAOy_+rbR@RH5 z!;gqw#%;i_oL4hhLPM^3_ai_@tW`Hm6GQtnbOu5<@qy7VQKTU$zESG>D|h16P$idW zTK4N@u)j?>+Ks#>#u<5{`nJg{hGsLNjVtg-hb8ZS(DrF9{y448gh#+K4bACXYKv?PH z{`^B(i03DZSIx*?1nrsC!>;GwWKRAo&bh@F1(}`>q_yEoQ30KTD_zKoJz=7U*=DH- zdCytQIxsD!K7whC7E903Quk{wLN1k$Tq}_gw!*G)d!B!>a9eX*Dsw5&q#w@z7!rD4 zLW-PgFivvy)Wus>VCS1?BvXimX=R~#-XksF>Vu1~D#r~AB3}DR#y1=_H$|K}7Bh<} zkAN~kX&JcW8-9IKyJq@W$&O3r|atljg(g)j6H~{&w#cnmc!d$m$59)c!@||E7i-I z(YBTrwZlubsbB+ZkhrER)s=n^b-+r`Bghfb>-)@4g0W^)U&ROB%xF5>DxF6Y$4f8V zKtShoCiSe!8-jer^HM#*X2$PTr)-~ItiodPz1TLh*6?+mAE$wpaWDC5X!v^0+6Eu@ z76O!bL$rqi8ubv5PYwharx+9%-Stjgncy9m+k}sz z1N?jqOI`9@AD;Ia*6^bJ!9 zQwjLyjwo-aq2(^aO1kfkdjz*7;T zDOLvV{=73$RMcyzGG7Bl0TYY@^%p_b@KXg-~rl}47fgT{3H%g&nzY#dPWYv zBT}q-Nd5$Z*@7n?cvI37NdATuTgbPm%5MzKTclnz>UeKJA|L8b)p9BjA|^o*N6<%E z)Bz?r2o*-z#HHZL*|`A9;_O^{qD)LH1%SPkDonvQ>F9W)&n|;x8dcB$LX;(Nhfkro zfGQj%wq2pFBX*w=5QCmcx!fiKZBxl6g0c4afRN~;_&vrM5K7CaqD63RWW~Y6Xz0)R zk3w=zRvAjwG8mD>89C;beOk36oYjns$t*1iIC7tjKRHDzPNut zaEtXa=;zq@zx=8TPWZF;9KM}%YKg;Vh@W%LSyg-N7XEKRpH_pHEl;DbVIB<%n;UlS zQkiTl-qN?{W_2FsSv`#28T6R46h(jiCzEQP1-n5zlhfIhI~yLjApn?hxQ$1Ts6^0c#Vy=YW5RB-9h ziQ5NaUxmqbpNi_eZ9}OCS{0C-PORV%EcKwA33GVw^O9O}O19tCdpCEO1x0#G=a)m2 zD+4rpQ~;|ik}LtGO(jpD8iNK*H!U^+eVjjCgXus`R4qvqXaqxiPG{+$AA6C)8p*T0MJhsh8-Wu7e4Fb9tHLovp1s5BXdE$kSyeoy z7cL#Z;IliTdOUgm->1zcewj5b@i2MQGK#~rV0tn`t*sNCU@iS9H3VMz7GJ#TBIU%^ zU@CE7Qo>9;LfBf^=m6BJT7|NzBU*+dp9gIG4Tfjm{o-7ne#D7?56a7%qu_ z+Pz-aD%>Vg4!l>DrfSfo*|CXL2|Ln&dvztBw1mbbuCnCh;HVxmN^y_)n}9}lG< zoH|i4VEe*_#^KxgqB9<}ps}rrL<&u@Bt${V#kI=pHHIx?ivPS6(oLd3mP##>VO7+m zYa~p`G*k zwtL}x*bLdfXXzr;Nr*iBC=wZ+@Fi$ieqmE}OzrmZGQk*DP&+9-xifrG98UNL+{i0_#| ztTaAsbt-0;8=<|W#G^zP7r8{Ey%Q%t^N><-FdHL3gIg%>mMY1Tpxe9uhtJwhI;Zl= z=<&ia4?Gwd)mxMtG}~(ho&m`>T+}d6gV71dljG_r1?QnE`UYUWBSp|uuv$+f7%x1| zS4TLQOPmfO_XrKyY6eLTRtoYNOz1Q|JY^o)3|VZ!=W^TfvY~A}qz-r=f!HnDu#4pJ z$wP6u^FzCObkQD!(g_d-j7{jq@$eP9!lzF%Y_Njbr`LsozB1hV84r?V1y6WV@I){b zrVymZx)oImf`qvK%-o(m$8))>()FL8i1vc=vHW3i#s*rmKMN(dO=l$oQBt^ZsYB#> zkq4TN(0@PF2AZ2&D*K}d*nc&3oo_`SHI6L?iM-#f1`=+*9|A62pMY6D~t zlMJI@%Dq8!Z+vUR_T)9NISRCZo8HF;Y^29+Osj+cIGVMN-w40WeBCuoMh%@oBGPv9 zjgnum#jU=gGv$Z?nlrkLL8?)0%^4-t=EfPvO@txu-UoSJ>ZGt#Oof?~yBwEW5GEwp-s!t9~77siVyY-YGi? zXSk8SPdn28_cw((as|$cH64-EdF4^ThCE%5tKMFQ4(Y3x{&j&?2hilbt_3-ann`ON z$?%MOL~DJRT@|h2$xLA$Kchp?KIG=~00DvSE6?ik7aRcJ_uO7vq_E*_o1h<%r`*u%uS2Jnr1mC^ zZ%o>D=T^@A&rJxA!rp6!Pg4)lY=7Hh!Mhzvss26Y{(L<~wy9h0J_qj87@Ma0cO9&c z`x_8oFWo%f_}G5lY(;jra&B#844oZSAswt`2Hg5Q_Q5f`=G5t5aC&p?htVh8=zRLt zwQLP2Mqkt4dUSTnWmpa+w4o`mgv+;Ny z`CXM(iu&j`qsRDOO4PYmfJww^fOhf2Su9=t7hOnpaHDshKJp%5{d_Y270e&EXD>O? zVQ7B)%_h-e5??#z4Y7&2Mp6&8z~UT(m6RmNNSU!#*WYYD7bb!A6c0N_%p&Y z2y0?W{qe3;6d#%w&{XD$yC5d5+5oh;W!0hNw=%?ou)iN!_aM-P33oXUVTmh96SX1a zk0M5bvz-bS$JOxAwBx!1KHP}buba~y^rBDI=T*+xnC7+o5s1SXn?$!j+&z+~ssa)9 zXY&v;c)BYx>bx@U_v&|=Na**9sK{th(z4HW`^n+lEFNnuE%>Wuw8(1jk|Hw~#v))U zm3)=VZW_kW)>SRNxAeqCLuWq(XQQ~m+ejkgIn*9~W)P=2+=&ugUbpRzgP%w_%F{+y zW#Doef1*f&;6A)yL&%yo?ryTyu1uib($^QT z`0x!aZd1^_{lNIfuR(q`%c_O%`K9eo7|ug_`MG7v7wnb43g7bpsixBvHasTb!F?S> zvY!Q~3FF5FN~EKrtjGl6k2&-`W7g+R)@Zu%dUZ(dC+!Tiync@DCOW$iNs-58yk2}P zl#xcjhD*8Qd~?2>^l49o2R(OkIt9bJs!r?v$odQr6ThfwdB(tC2i#E9cLGY9tvwky zT`oYV*hE4hiP-|tBy})yz~w#lurbY3eCIGH22dcZK+CS0Iia&`D{r`1dV}Er8KIKq zSaH>d;e0Vx42AnAx4Bk_0P4TXPDL0vCSltv`5N%2qFW#-OM$%8gtvNkwi2b7fcjrM zVYlX6K%y6ouGjc;VBGT#(D>&4gF>$>ZqBU!*)=VBLUn6#QK(}}-~wBx*8lTL)ageT z_pNM7-6YXCssQxPuK1IK-$60nhDoWUpO+WU{>_n`(|HXSf6rQHy=Z3joaBS~QOzfb z5z|0lem&@3{T>~HJb?jP*>70gH?MOMi}BK1RU$le2&lI1ykA#lEx3ctiO>PCReOa$ zg2E3krtndb_qUt(FUQy3(@m$O+-yD65W7N0ANaPKo33pw1B>zC37w{MAZgV> z7^p4DrJzY~6{c##Ya{uV62>{ZSzkEa>4mLt=^eo*-GoY_NAns96NeW5-1L*gT;Ek# znZzIIC|nk`gKYuiT5r19DqlWFcQ=qA*p2>fW^4p;o%D@0MK#^$0fVf+Y^xT9)gbsp z)A*EjPnd0n-FK)e+f4>7LGc5k_be>ZSjZ^|Tg7f+RKe?^P;T^^y^$Xyf5Jf>+UrPt zaI?*a#ua$kGDp}&Mx*n%MehEFXRNHm;0)4Ue;3vFTg92}=Xh}rMUYsG^%a#WH44|3 zBqTbEqmXlif1;4#32-b(fm$5^{B+xstiQ3#M01EY%d+HtB3A{8gceU1zVSijH6uX_ z7AhZLr9!-;2A%9$gM_&iw1l+kd+^kQ`D#m##6Qed9k9zSh3J(gyM|u1YO)09;h?4>VPb}M2=e5V z<)$<_9~gtlr0&DwSAhZAc3!|h;RLbP6t|cPQdv4l8oy(YW8W;uy|{_*6&hS&NN#4_ zPyv)P1hw2;V!A@1Qgj6zvdPXTZq=5tRX(fSixP|9op71=WG8FOhVYa^ClaU5T-3~2E&A#c z#W1oqpcHCC{b2B)R>TxaHQM9z6lzi_U<7M2k_H~nEt$3V=b*6(a8pBU8I`!UPJ^g0 z^J18l#Z;liwpV>J?S`~T#)?q9ZTNCp{mixq;l!4rgKzj0n;g;;m_IZ2$0mcyyS&Gl zv2B$54g02{e&^a`jWkGJX6Bz$o|}hzoiP&lyb@ za^$>5{HPT>XlNnR@gU2$C;4Vxdn(H@;+KK9Um=47HU(>Img=eIw$FaXJBW%@+f}Y* zia&3YPjSHnhlr=AsfIhzC62hG39`~fHPzSDt2veR!qDED#xuMoQJ97#s}Eo?K#Z`n z5~b|jzv?-sZ4bIPeaM$B31(a-@p5=RUYPH6vvNB+HhSeKHnXL%t`_ZQNr+*P+=-8C zK)<@!*9elERA_5%;59&4yr8M7PZ)?SSR10+`drB_54(a{SlmL5Rgyn>;&n` z=h>@|tI$$i)V9~*5qD231$6x=2;&=tU{Mv)OaI<3uBZ@0TjsQLpAgdC!omm97grgG z9{*Brjc0H$-O!hz3^?o?C!+X)y_Q#(#Y!37+AW&N5URSoq{2Hj@(jgD#%W&Pa%Z~4 z?SP#zRAibiN}CXrKi5H_R$}c7o_+Y8L34(_d{R85JR8!v&g0zzKr|i3n6B(`@>>(R z(ezZf6%4#jy0$4Z8(W+atlUZ3K3}jvD`M0-4GwQ*(Ph#QCzq7cig}I&d~gA~Fvpa%i=_$JDvDT+7@_XZ z$&X#asao|jlCiD~g^|Q=$i6Wd4|TZgi`UOeOhh-2u$r?644qY2&mijkKzi%2WZ4p^ z0!tyu&2&a6#3p`9AH*YGTS&uSd_w|}G9s+3#Rkd1 zI;=%PkYHZ4_SuWF$~Y~%p4>sNy7!v*N{tG2g|{rT$ms!i_7vphY_sW8saVGI+gY?n;Un4tFI z9?sWWI(o0EW(HwY3T%{+|BI({jIJ}<+IDQVv7I!wZQHhO8;xySjT+l-lO5Z(t#9|7 z^M3!5{MaKIBhNF}ob$S`MK%d0<-dc9Mgmf*Y;&uU_5F_$U-tD`cx`mG@%KR!kY7|k zM_d)J0r20%x)|2KXpPLB^K<@KXe3vS#lUm*j~1U5BRxv$XdSE=E;R($Un!>5dJ)JT z*)mZ&kYvzJ^N3hI%h+0B)`dL{YZBPs5r1uzhPb~+9{`=6?V9zy#(B6dM~f$WAGb0& zsl=8DZs&h zQPe4tBQNzVN6aew-d162LTNf$Tl3=sCVEa6u3g><=iUtfd#NH2mGu)${syf6ZhlRJ zTv>pQk!qKF#3clx@vBJ}+6^uLtSuOV@?-lGT>kD;@mzNA z;Qj+7Uu_m!^^jXNT(;e>sCIQHyjZmbF4&o?@;y$Er4H~&&7!-_JYvWO>irA&3W~Ri z<_eVyH_M~>nmY&%tB;^X$+ur`J z>o%!w85oYQ=yP0=IK3J%Q`@e~;4RViCC$=mZeOYIIwHeMH#maK2WNz?HB^St4x?y8 zs%d;~U3O zSI(Pj3yUe2%TPF(uIY{<$dmmBv~z^6nF>-=x3XhTBK6ZuS_8jJ{HkHc7C8a_WU!Wr z%e%zo5dy8w&VqM4@)~4B1~ba!9}~o+|83LmsqT_HOLvR@vCSxtriZJ&2=X5p1cqN# z35t)xItKs^>XXO|+)iL-n%@D*T|tz)|M_RYbz1wR>e44{5i2AB#e5S%2(Nr+eQN%; z`jw^hMmGe$EmT{iPQ|L2Nk#$@cWZpF;vsNdnTjmck8S&Xfd-JqL<7Rh$FlIRGcG#= z5tBzxM#L)i*YkCJe7pME1z4o?(qV);5Vb4SsC?OUsGu)2345zIZI-0|m3_AEtWF5@ zNx7@vi_&neU&B~+3?0(jv2+0EQ}$H-V;m`_1VoEQlNt&D8}kjOGzH7=N*lQ-r|GOa7Zvxo5|SyPoS*EzFzw?s^qL;hj=Uh{Q2in;f(@fl%GMecxbbk&KGfpXV2SKI5{+e8QNT8#a4o-kpnS)rU3i&sG5=2CL7@N}ct z8&egM-hW^M%NO6Twhey!q+#Rs6@p~}-u=$wm0#-{jrd{F!^q?Y-A4lVb-qu;D@TNP zgGa-=Zyz!p?->pr2kspX3}dMZy<5zqOyf&y_r1vD#4m?qV&zV7=?;nHz8@RIJl6&j zc(uGQSzmV>dKV1be7AFRbHwoi4oL_Au^-C*9X3N)qw=kpM z3eoSM} z4{y>;G0n(~oql*WN3l=egku-BdiMcC8!P0>Q|PMl&GH2*3i1n8^{4d- z;}Uc5wxlR^U_=1E0WC(hRHTJxor9jX{aQ;0NU%ciDfGFh42HaE?#w4{ca{96)~1h~n)ute}9_T0?52Fk^%4k^2um9j5rWGmt5Ybd7 z8htX6*8ARL>F&C4!ilwj{o(z7Fq|{9Hfi_rL6BQ>Ct>dr;w;6choGKBs?nh$Uxglb zts9$kQ4p(K=t90=5H*Nadr@UECHp-EC85~*^w)ruMiKnCC9d|Cc$yTH*aoTlmlrF_ z6O(rsoI6d0Cht`YOG+!c_Pg<>xZ-_+Ob#(G(-Vxa%8btPkaJS5)DYX%-GHS>+4{Ju zY;lO)n!+;FVXfM0&Z5>Wy#}JaBrB)~BHH2VX zgz{#=&HCwrd!g9o+9f2-+C`pdH+zj?m2s5$zDBx3x5bJ`sNA8A&ex;d0%89-`nKf& zC2r2|S|@+yngaMexmt`sT=qGlq#Z>_-ow_&_$h(|zR*n`^r{Ev0IP4fAgJIYQ!}04 zMUKgiE-9QK7u3bQBy3G2@L;WQVt${LQXWzK zL9bQ2V#LSPm}2TPV}BPoAobqhTYBLB^z8=XgYRv0e`DhzfJgoB8TSc0&b@bPyUDSy zo?R+t-r?G(lkHZ9tl83gSMS!L7TXMHovT_VXzynJ4nyP{^Za>-lf%5_ zhNAih=%(I9;bPF0ffhsLH!xo3Bt7`c}x4^qrvJ|SY}D59zSgc_#q`Up*zDnoC8VH2mX12 z*x9Fyl-qZZqs*9;lql+T@2`xDv}m!FuRH!tTmI2W0fADd$J<=%sb>g^)~}Sqd9NP~ z^>&y`MFlNO-vdo9&eVe6Ax4`Juv*I-+wKVYrnV?DRo9~PxUAvovoeyR2S*P~;P*Xg zYCto!*koxgkcW9E6@18ftP~iw)+Nt)lC4V+X?;_Tc3O~+R;c(hQgS(+lQ*|1KmU8c zWu`tB`PzF(SI+IUE1m9ZK8D;bfGYH>fU}9RC(wCOn-yk0-ZLh#Pm%^ zC@r?nEV9RUP7YrWGetVjO*pZ=8SmT(W%)K8`GP8T#%0=#i3xce1lpY1CqDfmj&(^GFcdOu3A9LUIB}ja^r{r=tb!7>@He=G$kK2r;_%w{ zKKVhE9#sVtp6+YR{K*5C1MJ2@gYtN#G~S9Jr*Q~%wHflQd%4ssN=Zx;MtuTb%KWpe zaQH_%`?+KzO2RjJb(jZcoa2*R-IP-#!jn-bJ7LUVnTN=%XrNvr(jF| zo3$Df2S${DD9IXbx^zhXwgx3?8ig(Qeh*b>l#u%)Mv$8~S|v;({%&7*L0dT(qQm!N zl0?F}#sL88r2rWdYY*eR#~gqbV>A@IXPdxglp>kXp5z;tv32L*H8 z&Wf7R0K``)7K#`0tb$Bme}Af&lq4t+o_u+QWKnn*k1Jiwj0c{I_k})vQ~B|GkCjnL zFWhpmG9{>6|LDf-(uP5+UG)`0bwf#cVa7GZ&h>m!hvGLYdSrU?&x&Vp=s?>f;$uIm zkROo77%hzW_I@X^P!!i!Q;DhhC6*ycsZ5Z1Sk5E&iOX+^?GZ;YJPRKZ@avBvFpx=> z5E+qZJs!-CirQvGk*UAwXeG1@&jxVJPBOnGzg$eEn5Bh&IaIyp98N*~j^V-Q^+-bj zRM_*u2G369PTw3BxE-D}5VX&VV^~OSuM|fGcCwhI`RbQfGh?%AwWJKydFV1i34_RA z-pQ%9(8JYrmH4zM{D}FvB7$6-u>-a zGLBb`@>QDeoc@)-^44By9xFg7b*)vYC3X8k2j&);tjXbxcM8Bm=ELTQu5djDxKqQd72&zf1822}e^ zUJmB^XLQcZ03)ofMwS8u`&j&j2J8!sGYdswdIXs&jFH4M*#&1czoGNg%^!JrfVG3^i)16u9>ACoLgJsTDk*rQBFd zZV1lQk`B+_#afeL{a(i|2hSJjg1J5P6c2WzE))ja6(DxwaBCN&rY3Lvo}GyHrOkwU zk`DTa^|C&o&Rlcr_7HjEX;*(ewM(0zn$FI8_Xr6!8Jb<&bK$5@B^{BivEV0DY89#$ z9W(J=do2y$XWKoZImmx$UcXe+c(32yRE42A*_$2&Y;mOCQvZC}!j(#ezYaikv?4y1 zfmz3f?^hJx{skSOuo#Er`=r)nI#udO822Nmo-=Hw+WFI?Nt#_M5068#d+S#wxUMY7 zSHii6?0XXOFy?dQk~}Zti&yqp_exp(3bEYM$)52Ii_2gC4X2rdH8JsW^e~kx z?I#hPA1+dOp?BZuzwq_qg1y zdn2E=88iiDodu4{E3KKOlbCVwEll<-IC!x~)&(mN$X$6u+LA6ao+fm&V&^x>)fBsM z7Z6(5t5gyrVs`2b!P^R;+2a=1PqZD7%*`!*XC75W$A3*C|D;YD-RxGI^$drFq_XiC z@lFVyHF6*MRIL9qO6H^PY-9WIko`2$v03ssqD|ocrm~|FbA&_$k63Q`V=PTb{>t&t z+DDjB7r4bbs(4UW*{2X4QB7d5WGORZR25p*a(W5!0uyOEn@Ie@H)-u}bVT&_uD~kH zJbO+xWn#vV?zJpwt3fs0c@Lni>MfzI{q(>@2E+yixXKYVr&O5AXQVpWql?$ zY%^smV~c=0LW6p{_OBZrSNoQ?@@g2Wa~9Fzs0z-afT4E7(W}ylfK**bg18j@mY6Z>kys|l(K_gGpCf%Jr%j)>Xna-hTbdrsi z98~#?(+Fmm%X*ZFvxvs<4R`d~YV^LoV-KsUZi_jtKVzN~YBY?2qC{`abQNN+s+j73 zshO^n|8OUhWWb<6M$N+BA!LHSU45rN8oOj|tZcfYCq<~(-ux;!2eC0kvk;q;taB_! zp%z8lS@4}olkH_R=`|&()+i&hV^mA*0HGc3TVw3u&^%D~Q0KrYe#ybfnGlYvFb-ah&_a&ufo$ry(qvTUYKeLv0yf6rZ@if0D@O zE$>Lip+8dYZfggh2}{>fG^H#^XP)x0)k-N^PVNx=C7h#bar=vcVENt9gQ++8IALT( zrYVL4S1BTJQ0N!|>qm80L!`H3q`XJ!KK=GL21OX80y&TNv=DbnI7HIAm@0b!-7|^U z4`+rlaJU24%Tm(zPiF=oFB!NOzY+cCUMCj%k@{e4f6C^ zt;7mr>9!9)Zhlb%Yq!#_RYkTxiMBy)l%&E}4Qvs?cEa^um-f2c3m*{A(i%K} zEKJnYbo^^(i0Kzo>nC>xHs`6e*#QETnon#Gqu0eJnl-ELT0~Zj%@DdK1lxw#@t|}@ z%Gp%&pC10j{6DWy-i!7@d(%p`s?+&z*HK#C9eC1W4c#gbP8-KI<=)yt<*r30U?}lm zI*4VBzZ%o+4(`HZgpmmeh_wqwRZ^>#Dns)Cir6t%#QV8yfH`;|+@`OlrC7TGbZd2T zkq~;V=McCjO|OpM&|+?sYb@(Lu$J!X$60u7$CT-dAe9wi;oWDIs^cJ&Ec>{AbL*b| z9Xmp+SM=jA`H9ILr*<^e1$sLL_oVu=MPzdk@ZxKCG2xA2$pmO5IyOME$x2%w>58BN z11{mlbehvj+v6yAK$8H)ZQ>~5nMv>SpKhl20&FUAw&9OmHGJ9|X(uHWrotKNJd0qD zUEN_qUF(t~zJ&-puRKKkXZ=>CNl>>mghr(^zqE=jrRvw$zqrkK7RtEIT|}Zsu2I+8 zheX0|&%wxTSa>}sAacM1uyWF2MCq!5K_b3hs4_2i5KKO=I3C|m^)|*3SKA1OtZgkF z4fdS13~Vd>VLh-d*U%*Su^1@d3LRi7s2w7CU5vp7v)mmmRKWXH6BnP)?-$|uW-Fd! zmcRL0_XFC|RQ}4bNZ7%Kh&jC{nazMQri<3G-U8a~)iuU~&G)Ru9i3}B$ve%pnppj# zcy{kt1u3KZdPr(-6_2Yjc@lDVa(Ih1LwHK)>#`@Obk@`rSf%YfEbpqzy~V)u;bNSG zZnARF6%1!M@ZU{dW=rBnsnP8Xd)W3|E%r2Amulk<4DCuMe;XfV-=CSb`Mad-0R-yG zrR&LjR!*tKW`j?(t}|}Lw~c973u{8}CkX4FFOPRS zMh(w5R_VPJ5n{((ic*(g(J;JW#&)}1ipQ&ly!*fL1{gR@qS>J7dxx~FRK7+(fDQYl z^&4QL^VBhgf3tg6TU(f~ylWcVpoT&WPO=VCU{;j^63rW9DyyOe<6T(`#cOwoTawE` z#=>9Pd4F>;g+(9?x*(22I{O7y#L;I34KoP2LRk#ch`RV;p#upN7m{5OM~X_#gYc}I z(rj&P$%n>#ts*fEWphL~qDeD>WF1#hrh;|$8&){rvE&Yk0LzrEM($*FkTXE+M@!+E zj8KQLN<}3s!gMf{P_sGMJiXJP>~mChBw!TmHmnkRS~{ka*IyC1_2}@d*^P^TDBs0{ z=c8>OJN_fWipIbTi|5JJst=1?TC|MB2u5pok8bFS3qqN2mIXpk(FYZELMwG)hWY;M zX1EXjdIqU=;q+K?xH<`p0S!kq^oBk3y#dPG8}|M9vT8_XyV(T%({faNpETZNZt(HR ztCP(r@RErRp+=Zm*{zoX;tF@xW@|?kEyPz}aLDV9sAq1GViyfw37Rj={$A9--Gb(szcgsPw#UZ6 zu?GIO6yb}>mmNI}99-wfEgO8&Z23vvo*%Scn0NasAzIH=)+FhoTQljVuOPY=KtD`~0e>{8Lea{mSe&nJ+=?R2JCOJqS8aquQk(2PI*PLI#S+HFX0K zXUEc$@f39QA#@P(tkpy?gv#P5Gbs#p&>7kpYm}V*yhED*oW;O6Cd{;AZ)_T~znHE; zBq%^0o+wzTyeknWd?bQtR&wT}oI=ql_e@+%^LXz{PxVXA!u4 z`J%kc1JgxQA22v=Rk$U_=aNni)9|Jw-AG*{th!+Vi&(Ev$)ONZNd>jgrLIdAyO2WT z9{8^;Rk#^SHp3PUK}|qGzC8t+Acjr2x!V}2!ND&vCKkQ>K)gBZq zwbRYQjtAJ`IR@i0(pB?|&AeIwpZ#~ZOraJ6iQKAH5w--L*epV06ev{efVuID!-z@^ zK@l_4+7kz}5KQMMkNaoAofO6s7&!QjkSFJ#W|rO{M0<}DgT8M~`e~Xc=Gpwhe=9Ol zU~y(1MIgB|MDS1V+`k{${A>`+KO?N`O**y|DS&EoM+5I0`%cum8SB_r5`&v1Jhip* z;tZ{&fqu1U1cV}$IEHV%TCqtqa9r`h&&A{dA}r*38Ap0yn(1_3V0 z=bb}Od=i5mrZfOHMyKx;wtl)TdxaeFXkc9A{_5T6e~=K~OP%WlFJ#oZ;1+8-6!u$!tsWdbe0R9{@cT#sP-S@s;|y7q7DD{ogXFw+-X)6LTkh8t!W(5w z92XQHbP?o?njo5T%<^Ehl#t(JChi+$0=w@!5VrUWagD8fI1(B}LF?%pC=zE?0Bl7E zc>Fds@R^NYQ4y;!1BcP-w4I15>;0&~r0RDsUrE%3#T98=mQsI_bKNfc_bsQkBrQ1o z?Z-daELCiIz7%oIv&l$ zr8~vi5{e5tazO{v@vH?4TNzX(kgoMUX!1~aImxRhIbfGo|(_OqjoNH1=Q$Dfp1%z&Y^?dI$qu)1(^j1Y%gd;CrZev4bGTi|~&X z5W?KGD`|;J#JuH?PUb?|ecV}#xJJe!Xu{smUA{CCYKdVP+GRD^i>je#Okn~|@b1s_ z*l805m;oU-{NRD|Q+wHq2}_MKVTDfSSXXZyaefbpk!HZz1RQ*Iu)XR=vJ;)7vx9E2 zRd_*rE6(D7j1bGzv1hIZX!;E6Ta|}TvIPVxpuNzz3uAjv_aHlpR7jo07_ z&HnYldG2$c2uHKXjSTYz&G|`UwVwD@`MpfiO@QccY3iPa3u2UdRlnJm4YzTN%Xj^ZBrnf_4oL=h6B`vj^gD31BK7WS{+9q;!TTmbVghP;EC5)z(qfsti_LxeNYJ3t;!&fObn| zc~;xT5f&3GX=FxEh z#3{xcq^uOuZMf!-ohV>RDF#@DXo`yA;P94DvA9NrAA5Ln@M*FP<3%XE4$$n!N`Qg@ z5W@d22ylnw6;%U5cmELt#AipcKEpjHk7R-$!cBZxKK0y5gw*0&S_2k1c4)Th3Vsm8 z$6o61upjTH*asL^i)#TnvtQ>wAvM(0AMufgB)aRFwNBMzQj4#ix_o&)5wfd^VJSma zJe9v~!^ZmYbtfFLh;jEYW7Y|mCk8(K%U0GkLp1SG=R&lBdb1jX&H|O4z6O*;q7xEx9D7{ zXCjt}Ne)?x(PY&3N6Pu+Z@d$pSE5ZT_8vqt0?B^hByVav@&AE$RnG}E9Dwkyo)aiK z9dLevV{H-LhmK?D3Kh2;?%4Y+ND9S3FPH_kBx75!Oe%!9j4)i1^ZM8)Zosu_k0{6} zFuKRe5oN|u5^+g^0#p7?7jh$$z<;quv4R1AfaQeh9S6 zL=)7RzZRnY`XrQ}>}?QA56a7fznOtCVWFIw!wb#8-w-g@q?IB`#_us-P;N-x;Gok2 zO?P8mz|kmIERjsM3VR;Z^c5yCH;h+hj)1Rdttajx**i7+unx$y`(%XSz3+P-(7dOy z#Nq@SyXOnT41(U6l1mUngR#aru1pc*RY2fHL$)$*B4|-ehG;m2vMgi@=L^yS_KM69mU;M4 zrUsGByedT8CS_oVUaRb5JlRqvkKBHnpP2x5i?xI%UB31zFE~5!m7EQh5Cc(cM~$;J zq`bu~HJ4^v#Uu%NgEP{)urXw8?c*seZdbkOJUSG`F%~$OZMN#1v7d`WArHt%B_x{9 zPb!rFDI8TZfN4ih1T2C(5(XX@=~EBy*jU=mJ~_=dZ%j# zqy5dIm+t;pcojxhy4RYJ2JG?3W4~TF_JhI1E zrf89j{b1TM{{wxw#GoRP8v@5k_He}icO(C8=pcBkP1_fe8K-gAa6(c)^HlBQ9PAy{ zJOp;z0P$Y6>XZ;swfRW-P=vO_~%r#i_t7l)|0Yx6&>mo&TUlHE|JlQ@TGI z73bKBX5saHT)G{qLR4OOS>#n$r7~vz=kQr`zPy*^Xff~{JUZwKM(8U=b|;x!=Y_#= zXW1x6SbUyPX7l+KJ)yp{Qo?U}wHP~763g(2yj_ zC!A=zqb_?LET{Wh3m5ItC$kd;lUUP5)1EsyIBQimwj`1BC8saGv#aQzo9 z>(=gY`;@Y=^qTOc32@Lhv%pc6uZ8o_tx1+0Dnd&}YPSEPKNue$^7rY~1}4@FmFyI5 z$r^6G#+^r?Q%3hPKH4?K;)XjS#*qI^=3ekY`2n_* zZusPvPQ|IMGCT7#uOK?<^4o*^T`i@PBTrs{8sIs(N1%B0=B=I}(M==!>3X|uD?Kla zsex__hbx+a)jTPE=narc zCtU9J{nF@~3NSyt6{(~P*dW)^{e{}*_LBeTJLF8a_b>Ou4jb_LkF#rUFx=iPw+C={ z-zX?3MC7z0;&Xh@A=tM5tT=et4BpEo})& zKF54-yq(+}Jz)lY@3=j(p;}CQ4pA_9YiM#_TLbg)HwuoqD+6H^-V>ZmbBJj4nq~t%ri6tva4y=+0W;T% z2;TZ);s|qBNA{_bs3-`Yu}g?(*fKK%Vt%Hw2cFS#1uI+F4pX4F<<^Y~ZmD?w-cfLT z*n705_rfyDcukkq?N8#(UblJ5_q7yo&`E-{QD&uV3-KN~yr#CAZsc`VS2yIPNAl`W zOFFp+e=x2=umT7Do@?;@nw~=G?x*PWs2tvsWQdbR{%RcQV2%i@S4E(tSfLizu`69Z z`4R8=LV35lMNs!~ldnELXP-^^BVE;bdmnvtF=5hS8hkwBmYfxy5Ad_31k42{6SSd1{4Ijj%Gx;M#V%TxDN?e$5- zJn^8r1v*sMCZg(3#pj&1ZAx#%Rfvp$n={jLYKtEPmCgSu2&FSb-~7zq9IId`hY2Og>SZ`iO4mfOtHK+nLeSGbpK#XDG?Ohrc9d5jzvPxBW<79i<)klv97ycM4R0CL zgj{)idtso^`A+`&4t7djQ5Slw=M#eh`Z(f5kCjNY&#BY@B6FkzBWbyvOC-`bN8gE^UQvHN1?9L6I5-(TsPb z>Tvd7ckH{Qt6ontmlSYfa$*iK1bJ(|;lBQ(E)+8o%_WSW15nZ-|2|&#PvL58M==60 z6k}kIg6_4Qhj`x< zYwg#=j54d}cp7Uw-XV-x8Du_BBaq87YcH`BKVT1?4-)Rm1NX*NzyIUPB^0#nWyeCWF$MMb_6I>Cv>I_f#Ra7fAf4&9hX=r|dF3xBe2k zWwThd&@BU;46)<5I9aBK<$({1(<6z#YNBaFvUuxJyD7^*j(V#o`;}t*DCMC5B4kcs z4E2HIb9ETm)_0wL{aY`FfqSs@Rxcx%Q?ZPVipLh1xjPZU^h$hR)I%(l-g2<1v&12C zuGp#8gt=p1!eicgz~TDL1jh{bk+r2xhc;vsLM3Nin~sr(#Tisdle|a7`@Jw%K?h+u%!h!bXVi&H(GkZpEG{$)Lq`bGMfg@=I>YR2E4>gq3k(1@Hm!`4ePqK zuMqz3h1>RAk%CB@XXQdjrGiLX&iHGKM5EYp!@#fE5!}3YBvzrTh~sJ%^Z)=9iOFos zpWvTL7`q_$Z3CrO+X)kL(yCTG&%Ij(*((& zC~)AiT9LB)$ZU9I(;V4!SZJ%n1a1eRmV?DeLZINun)k2V%;lcwFqd1#p-thfBWpxuW2;( z!pr-GdflPWdEN%v276XjJ&Q#5J!Pb`X9ffR8OTy*%#HyCBYK5(J)j>QbCDr%c+?S} zg*-&7{>OR9;-V7ynMa%%nO;XCQ^gN+_AYbMeyfx#og*v9ZVFV#Dc1Q-L>doLbdxOg zi6ye=-~Z)?ZPwx{XRo!C^EVI>iMvX68`C>9ocYQguQA-^1mks~?##0atX;UILl?AT zhp-0S(Q1$RwhZ(B``%ll4~0HE(VGsF!1tW~`3o?ztX)%?bp?&fP}Do3Gm0!RtndUo#wc*ixmJ2V4u(EKXMZpUI{9z~EDD zzu;@z`&lH(;%uKw>*FrFKbdj*03J|kOuIEC5=D%_Q{xINa)Vzpr`?SwXyE%$h$U!|!>oNE$X8>AT}4A^8D z>>Ynf9Nrv;k&SRT_KlI3?QDKuF`(c1DPDms#&tZJ?txl0UfRkK?z2(xHPhm zN@E-Z7?s~{BLK?#9@PZjIPI0QybQ!VRJ?6$v~p@&6h_tDJL-xa=jeI5roUVNsM77n zGU|?5?*275`bB9#52;7P5xU}TT9ykZ!#(|VXt0`@6>dkt48QimVIhe)oV$~4 zgqPUJar@8Lur>IBuZO!Hg@bh`1jb-wu*1pE$^h3l$T+{Eo} zOYLrxP0*RFoLNwqJ8a5H&vnw$i2fCW?SL3{6q4a1(dw+}LXnP9U~w0bgX$foxuPvX zz4|P8eWf6P#j%`KRjsbD`z8fpWJaP^%@f%Fq;i<=WztS$d*_znZCN`O8xOW9JT^6t_YdGwQ>HdbS{!c?<;K*8PNg7YGgZJ-Tz#l_$-`+$GV2NvF)7Y z6T2gE4#erCq#xvPV!?T?fI!$8bM~&>6FW=|+axV52=&EVoIBk4Pcu44YL~4NT?8An>Gw z2dmR1lbZH zy#CMXFs6|7ysinkw{(;1**-Lx!p!V=RL!9TVGuwJB3M;KU)vTzLv3aGlxBT{UFqV(ggp0vSBYs6*|O4N)zt@eHI5&E zlfPG>%x2Lz2P~79*4oSFoiQ)dv={<}U-z|>>knt6Xfb|n$2ti-xTl!QptawmYpW6n zEs@9E5at9GK-AH3VAd63B5Syh!Z6gui+}JNhU;N*J}`BRvluNW;;{ju=#1caSybCh zU(TD7@0t8%Efv-v{wi0Nd+>!3xNY-U_;K5JUR80cxj-T+dTa26;1p)`&PlZZ-E)qg_&gRdm!)CzlVdQG4!40FOk~+W7)2 z)Juwvd5OmDUBZNwpic8Ng1O4Gm(csgzutDR*z3Vwo&SzD__~BD8_y)Y>aY!U4dr>< z@|w$n_faIx2PZBIAN1SALQ;k{HEP04Y3qBom1eVd1#4_|H;Y`Gw^RjESiO5C|F@Yi z@iE?1Ou7iuvHVe#LO7|RZSTQ=x@GS&{mJCz;qkFGk~-9(jrDobpVjCHl8aSCXFD+G zi<=ZqUz=L-oRRqxT7eF69&t#1om@YM>S%9%iD0)^SsNTG1cHR{dH^batS=>FaQT4X9v;F{Lc{5HF$iD9L<5@$d7%aid1y4ta>$ew!^pef38Ln&|u9fF>L1B0W-9U&f=4a>1B zqU$mvo7(S{_-pR{q?KpXM|jA}s4A(wF^&(Qg)!-feJL3Sb{nx_M z2MsbmZ{?}vzb}7yO1P8}nQZ!(#YMZ9!NnVTo)vVF9>fH-K;%iKO!UshscPVu6w<{Q z%$bh&pZ{+_aiUzzfNwQ+rR!COy4)xixC%-DP32mTcU#fL1wYaUDZB)jtSz&cl5Q|c zY5>}1R}I~YiF^B}CFwufFW#a})T|eNYTL!Wg z2I)HZeInj|bCT#2exZr|i^d%0{?A9s;(qjmxBh%|)_1ceP`FzqSQ82FOetr(W`F#L z-Qi5oMG8|)zWR740mGhGw4*vz9;6PIOFK9ea~fL4R^aPP6D4F{Vz%KMrW}W_32$(o z<`IY#=H`nK=A*{r9+KYDZwXHOsKw5^J%995%T_u@3$OTf4{1$`v4PLP2VF~+2!$5JI5)9X@Kfg!ah3s|=ir6vB`_c|nHDsJ0PH*O zN-v`QBIZuAlpt27uj|3rzRg1WhST((QXT>pKzShZQ2Af;eRv~{jvLbUwo zya*=X4}1UL$>0Wz)sX(B?@ClvI-el?MiCR<_|uy6fn1Ck=Of!COFVwvj-{DOYpv`! zs*iNN^S-B=NUKam^4r4YH-IvJDOFfo^n1EFHdK7!H0#{e{y*rwu*2?|MqMJ_7N8+U z^0A52J*c3L+|75uTQE))0R7#YOTh$D4)d8rlzP%Qo=~B-H^!F6lfEb`wBKa56Snh` zcNBh~ugu4pw`>xipnMw)sbzM}SAHbVNU1F{1GSSj2%-%iZXxWAP^%xsh*ol=EsJxu zj@oZl25z|Zl@@B`E@I59ZG*fpPp1Yz3Mlu_Xn9K_{DL<$H#Be+S2&^yDC7)w>^q~> zod{&S0e`l`!Xv2Pu!^@%-|itjt2&mVU{m2$NHsvhR`mWKQ|H)N*|v4-*k;AHZQC{~ zwr$&XQnBrdZKI-!Z5wr0?S0NY?>|@{=9;6=(VqUaeW6xyAW-iMY)C=HZNGfY_#UnI$77IHeV(Zn!vdlStqAyi#kh6E*1~3P(i|yV8;IF1(w2ZoO2~Y3&(T znDFSISOJ}Kl;ogC*(Y3D#1o0230Xs8g`%c{$3hElmXKOT+6sxx!rbvUnUm1;2$@#w!)oZC#8h#uYFNga0B zpSbjdy2?!+$O|X*mlXEyncauu5v%zge5Jz~O#j3VXnZwFTIbfgCW=v4X!2Uk|8#Eo z+xQw);ffiaTc6ag_~DD$Sn1&^XbuX zGB^k*_oJtad_&}!1tTy07x>^Ah^%Kd<$2<-Q4Dfet)9d8R!Hn{g_xm0@f*FgTT8#| z-a2W5Mo|ofIN?T+E%Z5_jC>snJ6TY^1!(%9+cc!Tg}=(!%%%+K;5L3h4G?#AH+}m` ziQIgMY$9oYI*w6z0So3TQz+~Nl&-;2p9md_+{E#-o=Y`&Va96ttTz55i4=H@c|PnW z403UW0=Ltpt{2T8TIYR42+OL^3mh`h|NjUuU}U&v>F00jaR~}Y zo?tYQ(I}?yw+~~kl@#;5fqYYHKO$t-Z`;9yBo#cultM*dBjbNnkxs9?PUc`!la{lq zyER&rtbRLU-XboywuG(Jt$7jFK`0ky18E7-QQ)BRZPuKt_Q_l-kgPR(j|$>tL35IE zT(b|0C*~b?saU z_`*C*LY{TI5&Ow*Bf`+2?GVZ#|4@c8RtZCjtJ9Tl7${T4rh79&%lT+*r-zp%-uI2ZA;PK&62D(^MdZPl20L$C1%kPX#p;+t7eeHsN6>os~&glke(sZBNveQ^XLZstCV za@ECN3quNEms_wU$?sNd-Rcp>^kpMopmnq-$N(MiN8vAm3fTIcoU(fxF+V)TQ$K?G zxqnblPDU>U{$V3}LHyPBZLHEHVoc-`&Z|Ul(WOST5#f#9$Lm8?=^X ze|>+}Tz=eZ#j+|K%nzoVAcMwC(mcp5GW+D*9;1S?&?iH^zO#EJ_97|=B144qD z2CuNoX-2bhQ}GIx@a&de*JcT)t*Dc$7m1~X^4B6zg1zhQ!~-g29^cAeA}j9_f&=cKjOMw3*rJodf&~;v+ra=)Z6o9iS04U>L`^PX4u}$yfwoZTOc#ls2 z2+U)9I8uMFzCD#P#nW!8Ia41&aOX#%Ttd2iQ0CM_`#21Q&46f!IfSAHUNriD{ap?a z{qf!DL%NZObu44?XT>W*S7>z7wM~LKeZg_6!$|7-^Qk z3z(hD+dqL@_S8V3Y;)ObD9SlHmf-^|3OGYzMM%u+)Um>IV!^e$kgHF@${TUSzLgsl z#Pb|oxj`C~taFQQm5;BWm}DUW#R|NsXOgkyUHX4c!6MxFxc!%0`DAIpG!S$< z@I!&|^dC~5d8(0gO;p%|q_F+BNdFDPm+~?)rI~jp4Et^#HZ)%TlXG~j^HV%u5G1?1 zuK?seAInkaK_XO-wD*g1RB7vPP`uM^j{8R;)Zbn`{dn_-&|R1q3rI-mQE$SK(Ch>e^(UU0d}6pWBzz z$ltuQ-|qBAvH%@a4s z1#W0*uuP4tX1Y&)@68*exQwrVy^VfGf6g~^OXR-8!oTjCuQZ6@WVa@dKYhyj2&Nr- z5qXJi;;kidm%v*F;2Ala077&IGj{acH$B=Uxd9=#q+7-P3~*?T*^W~CfnT=Eo<6?^ z69T1FpO<`Ky8>W3yDxBS8F>}^#eJQqWjw^GrF)KKb;0eFJGK8JVOAB<>Tj#3DU#<3 z1<=AF(h^kx!$AX6h?S8C%~!RG&JdM*%3zKb0DvG$hI(|f0nLVwuDkaR=R(?37*i&1 z#rY_KDCH5%+q(V%WV^|ctH-fZ%e%LS)>G3C@kRD&4Nq8i%gZYDBkDMupFWwpugQi>r{=+V87Z}!{Et7r58=bOW$C_oykap^ce8C` zb%(um2wGEE*M0ybCH{~4$8`5Ni0`7ur%jZQmb=(sy%%R!D?Ip5nT-IQ?NY-Rc~&+! z`we_2ut%ECI6E|mD>$_Y%9yRX$|Xy9Kr55GiQBw$en^Vna|J*8D+&8-32qgbF)wXRV(%Q6JRDpcOQ2cP1-cbCN+1PDNM zu9?la$h=%|qxukZx@x$SyA)RH42XHnr7*oxn_0PF_mY;Wu+bg3RFHbU&T%+k2ZHpQmkZHP0#(ihs&c^6AzVZn5Kvk!ngmkI$p!2*}aIwJ(` zG5!WTbGs}l$WiGf4&242Om$x57=VF|4Qb(t8VlMdFtG;|cP$G7`OV5HNV(OZ+7m$< zZ^4Htpil5w4!xl;t+Rp%s0+vSg&W4>Q5^8Ie<_Xevx;Czsn-Fik17KiYiJCly1iHK z=26RWe_I4eQ9~@l^X^9@ml{EnVgUFd(Cx^PITCTSBqQ4`9Se*5t%nq_qfNGi&X>4S z!KzRyEO$))zSurNyoJYJMCcL0$Tsd=FD8v~5ueqAdFnONoZ-ezrv{H+EegvS1TMgZ z!bF8{%_FSS@(l1cw66kDjl#ySlMW&;VdDbQumtvDouxIcV7Y3viKUR~mMkeOG+SVJ zQ{ULsfG9CUT^jA+3pdBKU#8(qpRs=O;=hOjom(@Et%OIF`=b&-dB*q=(}bi6p# zT218EH{c|PIxAoYZBG+|eiWGI#ii=aI*9ZAKI~a*Ul>k-(a4>b;o085KGda2iijeK zno^v%fY!djazpYCYa)*gA<~x@`9u@^L?C2gQjrEcT`$c+WYyFFKBzlG!oe!MN7(KtG1;B??yI)CF{Po~5^N-Eel?C@A^ zf^Ytz|7{yNHE)kf+YNk&YVXBJ9XP%sP#-aJHtA-n(gYcy4-A>We-4!ij-g_dZ~S4=H4(WJTXBke5t4&ByiVAK!(^SiG>(O zg|tUoY;)%Xd;Jh1?keFP)j-XprF_5V^^=~G)-C1dWQZl4&8|s85jx5cVU80l)s~>z z<M3(hi_fJ)uf)7KysS1#JSzI(gmgS{CbUA9mT;ZiJ3X8|bP)Hy- zNva_9Ql@-}?;I(I3#y#mtgC0(5*G4+mwi-E@ zk0LqgeHG;lG#kGqCqB?t&uHx(CXAA%;>B-C`e>8I7mz-I5W^@DKB$+;x@aRx4KMy% zB!=BckV*)=C~0_upYzCiexFuZ(Zk0cz53!)=78I*=Sc>~QhX=KbJ)~HoL7Mhh2ks8 z9nLu687N!oiC|Ebuh51)~rcyn3>YeU;D!EEqhyt@rS7pj%k3kzqPh zdN+h!dVJP1?PTd+@upu45o4#{=%DJ<%8z)C(l~t%V`Y^!d;n&2kC(a0&^QhAs?Q`B+LnEvTxO#rU|8-O+4A zYQ^7ZQKY`$j&_N1^lRYrNi%-HHdsUDm*%ywm?9L%gcocyXTxJFFJuhnQz;{#VJLLu z@w;k9Ui9Oy@7E!Ftd6+UUZq30)SN$>VA9`ODRMf7v56oTx7L@T08JhH83Ur1@woZs z29RSNth3O#--2YuBk4&EN&;DPM)M9burrjz7~!RQ?%!OcSJX?SGfWf6qW37opI2}LjAD1<_MdrF#^?1v)` zAgv)ERa$uEEC^h-ld!{&BT9L8Sj{YA8lGblm$CU7Y!G$IKYm9kb0?A}uYmkOF~{hL zVRg~ISL$)!ei&Ql?^}g+MZ+$k=1wB=g9|EPAs!XDVM&e0^T@n?( z`SC}hf;%Pqz4HB!bo%^d-_DDjggxYLh|IX=r-RO6H+G$QZ>1{g#j&Y-g z-!_OB68LwUMz>S7A1iq7FsllGk`9=D+_<{n%~-nl>vqcv@wMiYYB2fMn&JrMoBQM@ zS83ADHshw6`6Rk2hXn?+>xHVTs}E9b@u5NN(2eb9i!Oo*X*x{_ab|1PM}KG6`ABQT zr@#yejDHxCh=rV$=aC}Vmzdj%^eS9lWT#Vnb)f4$hf-OeJ7zz7DCLglg;y(x`Wev= z7A7@zN`i0#Iv>{x1B#d}cW? z+z$X!yhKjIC*D57A#RYmgBg!JA2Pz)kxJgzS22d3{bam~KuY=rxOBy_bEqxDQ?5?y zMZ<|TOqm_G>}CxU!s77~kFfRUJ=;_|RCJwGD@F-#)4geofbd#(YT@^9)TOs6?Fz|{ ze8{X;rmH|6UpW`bRpjC;%T1giaLq+tY-wmRkx}8!L!!Qp1o%Db%d9YxS--lZ3jeXJ zo$@garUHOsx9k9;*uTNK9=nw8pSG73eQYPiLP&frN92fRo4mEo=N?M z!(LsE%SgrS^)s)=lOMEma(Ts`=UirSc%7aga_|2IiRS`s+D=rvPG1r`L^t4%FXY07 zGpW$ZNkL56=19O(!Kw&Da`qtpmUh#0y0ZXH_<$~glkH5=98FlG9Rhe_w9rPj(WW^S z@Ay(<#Re5Tjs_c#OW;5!zQ3;jB#U(OLZoO4-nj#?hU%nnKyO=-TBFn*cQfr?`j?Fa z(YEm97a*C5%k|5m)v$o#^3!;=tT0e>s%Y&mqI^0Zd65+Iu0O+B2UYkA56f`dEaB;*Zwew~nAZ6# zBK@LL9%h4BNVS!)8=6icM*aZ#s<_a4#k~A98Qw+iWmB@sscqgk1`2vDSwTw!J zmML2C8Go#Cz+%{bmI4bH-H#PT1#_!cHEK=E>d_tL_|%(g)%yT)MYzfU$Pjp^gWCYF z09VT9@CEq<>$RPP&jEO+0mcWSSm!n!(v3EIzkB!-%t)&2Gf#iYum}H>ylfi*=UFid z3fS+G!m!02%=1sY4$R1i+0X&5@DB$WC`3Ee9Du0`CTH{oT9nop9L+eECb9O(Q-@%Y zp8>EA?5ppzWdDR;cb(rkUr zk)QT0lOaY!j2qiLpWjCeodlCSX5dthp!cDbop4EwIfK~7I2RXBlO8a)2i&t{_K$M# zf;_vlA+YTl^BmgVF4zgO!1Iw-9?Cr=l!uj(0=dXH;{kz6il5MGCLlLzH zSYt!OdZv`YPl~B%_^Y9DgZ8@!w6byl0pD|~6bc>wEpb(LxLbi3EnfZzR$I}d0WQQQ zFOE&eUXX|ohZ;1wnVuoD@keFF}$u)mpC9#@Yol}iBr8_C$IxD2hdizf8)0%sceYTurt^0F0h%DKU zB4_ClTsa)@Yuf4_uSQ4XoQ)Mw*+)4;l67w=njee5#nf64Wy_3 z<~XCnhodbJ(#tsXSaOQU#H#_ZcFM|8$585{qV_Q!N8bGknHQ%o<%D_2IS_g@gIjr+ zyJQBh8|wZIOE~wz*NAk)e3=rSG!~67guCI@#5&l-bc9UpV^E zH)?+4FWa`J;^TF06f|Ou?yw&Ne`rt(eSqrEy@ldv-eQh}?*&%as3o=nS07!v3eC+J zyjAw=hN)J}|14-N`*F}Z7gi2B7B0(H*syd`0=bZ^A5IAVq+2?u{_{c$WsDup5;{K> z2v)~XSu%horWtV4YiFwAk8-0Y@D06#he7s^%@bcT@&W|REw<+>cqJUCcmcLN&Bt^q$ulF zq4rDt)-lu6)Nf)hrkE)_dut$8D(~o-(+odQp5iu(JYd+;)7Vj2(IPUMvIn6)%b#K` zUh*-Sy6!zda0FWHvMuMK!JYCeuiRUVMVVqarIaw+b+T%d%q+^}lfLAyVYY>r7Xi3( z+5|`1?ewHZi0h3|3sC7o>O`crhD%H{d;UJ&aS|G%z408`mv?m3#>nZ!!W_U1@2Wqx zX2qyU--bq}*b|&L@Icv{>NKW-sW&^DYX{5W?z)0PD($3il5B}bwVD07ScSC+)h9t7 zQRB!+M6n?0a6Tu(V(~WnOa@tnwo5hE`lhCF0Zj-_$lBa*sc}qUR~-oLPaObC!|cY< z_s&5w+Dk}@41j?&EA>N!RW$X3T*hw4gG8c8SA^u_JyMiL4WSJsZ1~0NY=p0-=;kzP>c+735F=#5X1ejjcE#SVVQ&A?-O|FjH7SA0QJU$_ zZ|(Wm-=xH9T&KPROH@Onl@ywMR_Pzra=Lie3HOK!`Yf2=foar!u?yc~F8f>4^15v~L+_qqq z?%b9;FuU-x9_@Vlt&4jdY0A^GFL&+%*#mi{+Fc2NlSYF{fhwaemmXdO(*E=k5>w1W zs=cWz-2dbMBUf))gzH;7KNl=*M~zwpo9!m$Qdy_ku^V$IC*oRq6k!14LQG}puFo2c zOxY;gB;O^I{NpQ$F#2+h(_e&<+xAu9Ot$n-bPad6g9wqTku6B$9LE`_xH?JkG9gUG z5EIBtkCikpXpegsPzIg$WgH4A%nUb%klcaJ?6$SYju^!b)Kod7A0SvKC>|8;e^Og- z61P>-J7A0*plAqzL`k*)!(px5aXPNcsSL2m4=CQYFQxmHXDK+}M1$Enr&*+JFf|7( z^?G|TO!>=o@|BJ38Tk#B$0yj1s3ZBTy9w=#=qhu);Bg1hWV@rL@>yvdbeF#)urpMiW(Yl`Tr=C8P_+n5vSM z3Gt?{f6_bk?D(c$DEZrQIA_@7Uu#$_!jpRDXXup1SDu);92+Gq@&oe0L zq5(~=BMx!RX#B+KeSY5{r8>O~ly>M^cLSj6?AZD)Pr$fR*NH>?t5l#(Wf z9;o&s$i9YJOf>dSU5i3$uTYWZ2?6FFG3#D|D{2*w0z@gnBD*q%jlq45Vme;?v)*nb z***kXVTag(r?eP|*_`n`L+=dpDqT1`U)!6@-D0;OW#M1Zp9+aI{B1^vAb)j2TUw*T89vgFLlXqF1{z)rV}-nVf=WFPyn)@=#jo{FQ15S-~*S9gM=u5OgVt=Tg=TS#|l_p;~#I~&JN<{ z5mKVQL`;G%ovES^?bkpjOf*%h&bCQfrt%!-5+=&eX>Vg@?C(wmi+s3@Q@DuaC`_IE z)`a^v`8u@P_zSzwqKzqO<^G}h0|~xpcxFCW9-eeFZ^7OX>g7`73a}{x@V!SLg$g?D z;#c8qLJN<>EEmO^Vh?ys9+yYic*`KCMkh4;T=cVxz4U4J(p*Sc9jike3_G6`+T`?q z1Fwv^Ja(wQ+7j_je#e~MNs3gDgOg+{)hWH~fp!zBO*Yda=I;h!xVf=SaJ#SexkJgH z`~Uqys}!!08%3!IWa{i4^Q6E{b{8!88S+Dwknk#1|}Nsp}ADIp$w7UgGY)&Akx_xDdg zuL?gIl^6PxivoVv*geEQ&g+!Kzs_qQylU6znO9G1d3%5G8;~6w7it8D4@o_8Y;6{| zfY)>a{L8RGX#m6wjNh-?n9#ZLm!mK=eYS(hPer7eZ!cHjcV0wyUSKO!N>ag^C#-o# z)b-i)H$;s%kaC0z#w+te|9qG>85W@ZH+!fC#0&m=|HKQ561N=BM@O5vmS{hw1+Kre zwoi$~W$I3C%80t{T5-1@>*cd#10X#owJkQ9Y_(v!kZe0(eEGyS%RJ0+J9Qo}%CBO) z$=1Kq^WMm9Vz~=7*A?t0pU0r8l~r;jp=N;7mrzvDT1_?|iFTffig`sKbP+90yL3Fk zO!5=QpVfAE_V96Rwz!Ko)-{ncx-qj|5~+Sz7j1LK{dfyA1UV(%3ll!Xm0Iu{n7f<* z3;}N@$>u44%hz;cB4H(h$#((xF}CH-@4GpOtU`*9xVYf6#U&|=W{DHoyFfzIVF7U_ zO!K4XX1j-6b8kZLjr0`5y=J-76K7AxPM-rNjf5+=`K4Vfh{$Q4D(a|Zs^TFUsO$G~ly zx9*|AEQjkypjMwG=;sL1r|0ac@?u%Smh?z+$p>Im%-xE&Do#km))ALnE}@0M@WoBJ zfFz{mj~Xh1nwso%4;#&{5>xMa(aGcjT2a${V0C&lKnkOpn%0XFR@v5f3I#x9z5Wqm zG*31a9x1EhWVHrI2hv<4Go+9EZAZHD*Z2AW(hw@+Z!(~hbbwy*G`U$9y_GD*#I4yS z6&t=4Sfcq?x-9!c>61lujL~O2ljM6qo>l9$Ij?qYlxTyZpDS@7k6?>XdVmPgqnNms zDKM6s*x)Jc8cu)H->0O;=O7eyN2`DAJ+CE!A3<`i!_gS>Y%MyzlA{NEgV7@KOW2qm ze=UF?#B!J()ySp=V?io^4utUJRXDY1$RDso3<0qysNw`7tOA85d_uwmR|FU>k8l-3 zK@n_Z!f{a%r70RdAUc)d=1E{?$|w&KXl?lVd&ntozzQY{z2N#C%gCSne6{ZCf8*aw zfA5B$Z{-zuaJ(cDk?(JZS}+4@J>!o_$`RKA0QJo+h|SAr7C+mCOFS6aJKRHMQVLz{ z{3)x#G`@b`tXJf;stOXQG7z?N5o zu%X1SQ4hj_uW;-U`9TPc166tGg{-2v;cSvx$I%4-L%lz9c;ke&3F4sl<)yJCLh_xOB zyU;??gXh&wq#BH=>p)MZoN!*YSz09Q5w1i&0k4zYM=s5E`FcVXw+Q?x$QxVBx^niy zQ>;{I8l(}Oh$C-E`m>SH1a5Q8@6vvyzb3{@6L{ZI^^d`3-C&I}>*T77H zfnubPar2_ULao(|@u9lzeSIb-Id9<3SJ|@0-V7^;i%`P~T^33;U2!-}d%Z<{01_<} zh|9gcVf^7jaAny#xcQ<%7X(pnB_R8Pz5rxj*dR!DW#>q;(9!>7Uli*?mR_Ki0gbrEFrC?h8k9BBdW}7 zzU0~L%|OUJU_4k(K35hzSor$r(71&y!$*cO%yDb3Ew~kK50E#c@>gWSj~?l1n_1EHEOcA}=I!4Vak^pnUZKj!!ZF8`75D+S zTU-60jDhuafqC*m90IzVO2!7-Tv6M9^H%3G+Q#iSh4^E8Q>!wx z9ebZ)TutQn+%4#XxLTy}?|+R)h=6JsjOn(cp|z_zS2@g1!@aTEqAG)3aeOEAE=|Vs z&y-@W$Q6M+&kV(#b8Y?(%Q^>TlU=4|Jr|m9ZNhWRL)obE!{7exBR;U6Db~ATZyEjP zou1vOhERY*Iaq}U{5=GgZvQ7a8v6uDj;uDOy?=Euz0ROC_+t6( zEh=ZCgrfOq+%e&>idP>&u%EgC25Eaqq!2_>sK}5lDK6f3Hu!m3x6{0S-sXU|+{faA zOJv&pC#QF@adp^d`gol6pbiq92Y#JL`|p_1j|EXbd>{G((Nt&9M}Gb9#(CWz>Y}&Q z7)vLDrGy%E$1J)l4yll+u6%OmD$JS;7vIJ;01~WMgoVe|LLZ4UcT!ep6&PsW8}&5o z*{KrgOd~tRTYL#O)ScgvS$uKu&*gkg7yw{r3gQ9Xq7$dPPxKchaV|J`2TnFxpMh_z zsNK9bhp|;U6S|HYHQgX8)=HN7mYRI{GO1!}R8j_L1LowCsGtfLy-LkF z)k@XGc(Wm-rIM)4@-yXO`VxfXU=7zyBPsd)D!K#Ko^{9`>~CT5BZVH{*gNc(H8S@i z+AAScClzQ=c_2D4yCNpV_Xw9|P}g3AdHUYzp$hFrn zU_|IE(o1?G@UA60R8M4ET0<6;xO_#bC22v#jEvACzfDdSQCAnJh9;FnJc^ZEz$}<# z*0r4~R2^8hO((llIAqs_&B8dTO>MD)Y-nsjF5hSY9;8)9NIupI06mv_ONol1lhQzn ziU}<@lA_45BB8#GtM~2oMgDd{+>OOR@q5dH_)WLfY;EX>E^jBWFZ{aGXdiq(>Vs4+ ze8nW*E{tJwB;YZ!lAZ~n2&3MgAO=TD0Sx%G%8agclfKUx3S#{_btBFLAcxduV?Tz3%kU7Aumb| zSyrZNHSz$vSI4seH{KGvoSF(WO_%P%oGwi2h-QM+!#69_r$l^Y38rDwxE+w3>NYz6 z(ngn-I7~rp80fzOI60=TOn zFpu5|O}68lcr>U~SuC!#%3L6CaY-yrFYmPM#E`hJoZgsr+|r~uG)G+ATS)v9s2jW% zs#*NG{4Mu|laRQwU~a=?vyTzf<%cJ-C;S9m6eiA{3gmMFBFp0KUb!omp+M7k>2A`A z(}0fX&xml%VeLw2EEBz?Gkm{tl2f@pDXVEH!2c{MRNYc@HCIOh3oC5CL?}pXRU!Nx5vOw!XNW*8McV0XU_~5_8RZ*rdVLnqWgp7@#=soP}KGBx3fHK zv=tVT42i&3P2s=c=^k;)0Gt)*B{0)I`s$O-C*EkEn=fRkVQ>^@BpoMQRc?x#KCRov zo+qtt)f1DXotc+N9Nt6Wqw;esWoL#NPD^Im9}sy?lJT~3UyLNol_!cm2gXb3fS)LU z6VdcU{&K*lG@8!g_yC>9fzYh>BB0%0C|cg<5BqAK3~*s2rt6P&E-zE~VMVyjH>D&J z2_}e`1t}c?5E4-ZYM{f+EG`Ox2ZHEr;DQi8T&q2Y!(xXsWO+D~MDDyV^d>C-g+ zo*-ceHis@LdS`zW)&>9L^5;lcq6`VvwVdvZ3*~QC8Io&NSlovdTpspczz;I4A+8ETZ4jIb~onVRIZBWJ0e_xYuMV+uP!`IcUO1DOMs6K>2Kb zljf}*f%kkv1{k<>;q4+)bu&=Ysbab33*>2^1SJ$g*VL8usP$2dy;|p{v||v74@v-x zSHWB{DQ}Zu5fsHQS19r@iQaomN)n38D^-H!s~L2@%d5Xhs@=%>c(9w>$%Uy!n1y-x zhAvx6$=Q~?MIdVNKDIgwnB4y2jpE-VbwS6{XKaT$K=pU8$}~ropjZt^4>CJO(kRCn zFifE$8Fi;b+G&xqLug`}9vgKYc@tPTHi;nt!0rXGljb6;fEdvOqzqpLv^Eyr9Ilj; zD1eBTAjfi6*4wP^q1pVGWEsbj)stW5VZr-iK|OjV|423Ig${Dl_RT+o_l3kTl}y@sA@UP(SK?Nr3SStY_I-z`Snyz7P{I5qo1nH9LL8o+ z#*f98`;14A@aE|ROqkBe-1oske7BhEbO(ZlaUMJfgH}B+?oDY^3Tj9@$x%M2FTV~j za66+wjfktjHC8<+*X;4CH>68d;?t?T@4Xz1qx`y!WDm$CScCw`iu6D&a8}tU z)6TK@%j*KQ)eJ7Sfw+T4E~HAQ$W1SIDilCW?EbZUM&1sX?HU@g+vN78{?YJ^Z!~yJ zs=~k1d$7^JUH1N}`!nI5lfGrY$f|X8Zu_>lXm@`#vk=x08uk%356?H6Eq{HnUHD)3 zXU%Ifnv;lRa#ZUsNq55Eu?GtlG4)yriveSt+*5iX$K<^Pjy!neGhyh@jt*EN*5g2U zV*D*yoqjVN>TgXk?BAMU5{yw~|KI%yBe-4VcBySKHQb_td0$U!0?)Oukv|8U!4G2; zDhTQjQ(jVfD90&`{@jjD2MkvNxY@93E)PN+1yQpaXVNcy9!|Q@EWuabHx6I^I}7*y zZx&t&7FKoTYgxq8&Leo^G`G5W%%_NDk*UW_saYTrI*u3j=9ycvsJk3+_tyv3=M4j# zbptgVBmlgupbLA;_NCd$JHkGYK8QO~6F&HSAjV#y&yG`b;?EiNm-L=MB>mn7rI#$? z{N1^R_{;HS(){M%+w@+Vy`=F2ZMj)Y?og$+SCdwH$&=kwr--Sa0NqYsM+ZmldHftN zHBdN!;ihAxx*&Pa@PZPq6N3*fXNsb6qAsJ8l1np=CUcvSON(dHO1Ufdg4$iZk|YAl z+{h1;PmyY~G*v~SYbU6Qfq_mEf-|{I!1GQK4`F?!i2{U}%rk8RarkzHMlMeX&%@uZ z_FUb10o_W6a6|hE@f+mjT}MCK;=3Biq%{6?sn}bD*Q(KstC=fv`klL)B$*%_F$hNkwFNt-BsM?D*J*2U!7$!hX7h?#n7@9Fwl{i^X-W$AH= zxi+Lph8=+*QGt6sXMHx zf_ElC2lTDUKa;Wh3A9IIFax*(1L^bWLv$1^lVDm|*V6ltqPiU)r9ilT0RFjE3c@_q zrJ-4PWvJ>CM$>;@ z$0{|C*cQ!4j~rr);Kj;ZbQgIeCP?|BFkx=Pu-5w|m%N&)Nuvsb>IL@SYublw0U0UY z7?Ks;ZBUA7bV|b~X5Sdsxm7ks0>kUF6rW8-!CR%WWgE3)+xQ{jZC9B&s zYWm%f-^h&DYtF%C2Z%G^W+e3*h8EF6dIEa(RKbXG8mrAkIh!oG{;U}k=xOnT4 zrev|ykEbGY(MLR^iXqdf3?gTLANNIR?#P)2 zLcRbG#EF?EW@nqPqG_d9PjGO1A8coVxfiz)88bMu&=-um%EHrAJHJpMMmnO9=~A!F z*h1~BJT@F4tr{{wzz|Tsy+S&4f3UkZ$)rGH(@=P{nLY=2=Y&))tmPQ?+4&tsv}Y?v zNVuf^iLS24%v^DQMDmm4jDQ~TQ>fC8ma)ey!f4m|Gx>!UgAD`K*TQD%2CK03{W0_} zq=lp$#jfZryL1uuAF{w(4Q3(t5mZzFZ2PcaygdfyE&z9%d_*PN%o1GY=MUD}1L}g7 z-Y*y9EJYVooM>5GMtMjJnWR!h-taYl`9~KHB*RYfkyKtcoG_1PA$JVQ(fw{k5pdN3;>4oan884U56ZdY4uJ z3U0R_&SMB~ai|nLUk~W(+ATGwaeI9#WP%p(MWDK$O{Z=5+gm><@!3wn7CwJjOzC z9cw@P=f_p8KNXi-As6`I`1BH^ap8H{ChG;4T7=J;>fQw%MJ<9YRt$cdAJ8>j&38$1 zp5U6*c{B{(qK74h;eM$ayJyzurE06UQm3jJ=1OpmC_fZ~H4Mx3mbCM^D;e=btnl1? zl-co)aPS*_j$2wxt1sez8GfGC3nXLKbdnc$9xMv-JE>nNMO)G_24M7=_?S>4Kgjun z%AH{4L(`@l(F2Co0Rmnk(2q7hiJ9al53_pN{L>Z2`?p0dLw`CT(KG#d z-zpKEgwBxn(;_L3%So8AVsJ`ej*_ycPsYGt%>8H-bnh7eX{CDPSLq+`-UxO7T@ZVQ+PIR_du>37K7PPw)%nERa?~QcQQ?=Zv}1ZX}XN=F-enIt2mKLxPrc8R)O;( z!^Hed%fORkt@Lrl;MlSL02YDRDyMT!0nCm1Y?{M$PT{eT2k|Wxs3cYKp%oc+r=74Xe597TcLmgb zNu5T5Ww#oVG?OXkm(|$x4pLXzA**`S(6z`M5P7pWO!7jhLReKFIdm8`5LQ5>sQi?( zs1rQ_7XgP(2k%z6m2b{lVHGsGk-2-oD#*4(d*9wWWL_h1$GeW(=t}75-m{kI6-`L$ z_HxLgHqeQXucXcN6fPEI5>y!Pw`rxDOBz;jUD# zA+b{&#e~9?9b`-Z-6**(sJcTvo1Hc7VWZol_?jt$kkCN&Kz}b!;33aIvNi|uIG;b(}scF6CR2wP3cQ( zVbkT2#y4GSL?5$30tulxtmV`I<^v?r_7+qD0?RXu-untqwz3bLrphyqhGcbGtz1Z?mQ3ldNtLg1~=nuuo22C`>a&Oot1bFpZ)r=>Jd(B|A8xaB+|vGP>7$JB9h_ z^IMCh@U&o53DcIt_*H42OgC?TTF82!Re=YzFqw`FHGURiK~$pDG{AVK>Se42gePFh zQDgRTZzqbi&nufA<4@)Rz(+J14gj}Iex#Q@;Q@G2uH@zWFWXLe=hBc4{@;gV1+~8L zB$${SONk9FYIMc*y&4KkkK{aq& zaVY4~hHrY$;~V?w&vIkve{z-V!fEAkefuiJlZMq%gr0!2UoebIq;2=Z?V}ir%o;!>jeQU%Z`x_@ik5_{->tTR9k1f z)KiYh;#~nR=w*A4{sto?Kk%P%7N2sbYQwv^MnVITHkSA%pDbPcfNZJr_TS+<(dDQ= zK(e!Uh$`3&gG{rQYykL})ZM}2|D)@z!s1xBa9tp{6Wk%VyK8U=?$Wrsy95Xl+}+*X zo#5^ScXxL?&75oPwfDujrl{_&s($((-#^Ct`Zxe=mZyvi@RM#n33Nr>yE+meuZzTH z14>COAN5-OaYhadq#)j*pMRz3-mU&ZVFLn^udIgv@=92{3nWsk5nw3;)@c&<7OKeG z%i>MMa{JhGm@yt@ zcsF%sSL}_t(j7$P^aC&DAm;#nn<3Aux@FmjQ&E6(?Rm@TTrG-ri7?}&aU(5W zxxAQR5L!bqgB=rO$0Zkov^d4n6A>qA(Y1HURU66SxXNC#$|8FYcnU zv5vmU1Pg;g1P#04PuH=lq5?ZU9inRH1z`)^iS+s!P9UTPGtby+%JZhD8)xKn_!!pa zA%;{UoV_B>4=RQvY^P;x9hf3HerSxxDk^3wE*s5DO>a|7qLwwCq8pJ}t{84YSfm3x z?M2016JIajhyNi_wzF`=tviV8f~QfhAIY^92?m&7mbd2p8Ua-`kyW&~N_zYFI9ob; z^({~0i*GNR>zAYaCiv66>4~H>YrBJ^=C*YK+a_E(XnF1fOEL25Kewby>BMMXb!UvV zrG4=2qTv5nj|>ec}D9yS^ew!4JU>rN%pdh%W9n!@HiK=rs-7=F7zHxxHqJ8s9%R%GVZq zV%=hD_QG#dblW}3_ivlM*<1aJlM2j*-Lpu`rWKgycVqYovB4zS!J98{it^$Gn+X`U zL9XVpTC!UK_6;Q#czZ)W=S}UMF_Qe+$`YvfP&``Zi9n@n7dA(&c>S&>~_|=c&u9W?t!0huCAlgXo%ZuG6 zRCNHSjlUH4(M&YvISSS3Iq6jMZfK>4Z`ECkU&sAsEzwefUaMDpUyI|M!DMz4Nqg-Q z5gvgXvYQGabzp~PHbdot5Ffxy0=}$;11YUV{~cA(`m@)*pDa|=C;N@C$&7z6Z9yp$ z5w@>ibVo3NQ(iCcVIB=bgI%WBgHMzQBhHW)ig@F5UseT{Y-`Qs<5(zr_|E!%(3wwL z{nswS@M}hwAa=ePMZpu(S^lR(OOh*JnzcSm$OP6pnHSJZ(RcdLoWcF$>`a8F&+!bfIHoRN^TQhwZwh*^7 z>*{KTrjN=?F6+8gyQFIy>CYm~DRw^#2MGU0s(H*!U5A*OK)_2uI!4*w;_r`3td>&btqfn z)=p@G@`%IOQi7A`&3+N^no7ZdHK0f~icJ7uPyJ}-X`6+T_zo zMs+~ur>dgtl1#Sc4>9ASYDO)g^}VNV9=LknBmgcnhvQ5MXsMsWuakTjglq>|D8QBY zXlN%VtrxSjGi~`bkEugIr&jI<+9W`qC#KL;|AJ!GD5%=T$$87evmIUQid(vY;Zjz&Kbx{bj=&kdc)M~(!G{8^D8xWvi=|+HYARklD%G!=fK7DG&Vm5J8kTRwHgK2M z-b49OIizK-=}Nd|sCmvVuw~A7&B7LNykd57bf+pYfjU^wQzSK3kh3SzThK{2lFtwC zd=w!rJW8@Tz5U5+>(A{ml^V~X=Qi8~DU%$G@>02Agxg|MYjqO6WI32YpRA{wRH%2_ zGsu-oJiR#te->C#Xjb>q`#CJa0vr*)lY)>CQLC+=iSCT;Hv-sdCRQ4AQK-$sj!`rm zXpU}QlbumUg=A!XNzEa$jOdrZX^e`6g9z^rpk@S&UjAXpVpxI1n}zDfS4(eSPfUv} zR51KAi5AAzz7D^ZQ>rVrrO8gvTZ2GyDdGq}{qS@j0#WzVx-Q`vU_ruiCVnCOmK#4^ zZYsw{?Z}kl5MSP$Xqk;V44?z`8}evydT3wkd-8}YuF3)!@$4uJ%7}{=>tOA+R>EX? zy0*q2oO#@x0nNn^8nFW#9c?=wuWKAXp{}Y#7^To3su33cu$2z`dMbCu;4j-8jz%h9 z5=6g77udy=jEr?59>vNcw9>m3ZY7NMWj#p$vAXs)!XDFvD6CVzY}#F8CyWh#*$#ex zpQQR7iLdU5YbN%qLwgt~9L^rt#yF+kAMjOIA=+Ef0vxv@x+S{pdH!6t;n=`<7jpKq zzipR&=N_%)A6(*=z43g%iHlYlt)1Fz5D}YTLRb*gI`dOOsxr6N>qvj2B63m)Iby<` zMd|<6)E2^G3})CzT>I;vL66tO8p4rl=UQD_AL*s2w&-djm#%+g5+5qd4k@bzaP*h?Qu2U-u$J1Mdz>s$R9V0vux#E z3;3HDOt5cyr_;wpuzwjRw1!;Q5lQpIb)p~heKq8$8uJCEnZB5X_gxV_smb0;vP!c_ z8R3gRKFd7m%zLJN-(O#CZ(~8|U1aRw26Z;&B4ChH3%eoR;v!V4oX2PMvrj3%;`NGh zFUxa5uOs}pBi=}OlH})nFpTA+SjyxQ;n~k6&A2RzJDHWRcgRG7F(QjO=shc?`Iw2L zX*=ffqvfXW3s5VF{E_Hoe@+)dU2r5tn`Yz&Tf47GaIv5e%EH%+L@SBc*&TpX)+#}| zFeg>Sprm*}Tg<4UZdvfq2@D|GE>%8puadGydZX{*Loi!pm+Uc#rx!SN&E*nNl^c?Q@BPmX;0C(80 z2h4O8nsPa&D}FF1eJ2ro!iO31V?(PL``^}ok7L;5g-8956)<#t3^G<(JF+My@+55XJBKkgxr;gx0GPC1Cf?ZrJ|Y-&6F?T3qTp+@7YuOgn$>3uTwLg^d=Q9s@a$+4D* z1%<}=Xh zK$poi#tDKu`I|VEVeB9EomcFu7u}sdA>G|z5oG-HyH#WN?u?(v!`#c&4v>C3J)jwO z_GD^S!zQ%i*Pt#5oVE0g3?$PDYugkLd$}qB?eE~Au@0KiJi_JcT~^P7wm9PBC!_DM z*(@W}&LqlUFiJto0Q&8HOe{97K3*VB2U(p;K z{mrHjg%|hl2XUTX)0ZQIGy8a880b$}AsH!$P%Qa;P3L9jc{^WzXyB5S`AeJ&3W=!$ zhdr*c=xE+cktVuKENkB^71{Q~wu@9Q3uQT6tmT8wJFeg`$qcj0s*%YE-hglVthbkc z_(yGa>8hs1{FbYi8iAAwTq*%hucObhZ|&1unaoH94Z{4ypga{iUK68{#R6W`)=k67;vHop}7i51>_X^R3@ z`piqw#nfC7!lt-ZVGM+lmT#6 zp5GtFPi3z#n3N<2IjHheK7{|72U7Ie@Hu>ErnuF;djA33))0rN4qI6A2DR#((ftRY z0g>0LBX+7*H9PnM1oC^vy*}P?VE%lAozCCT)pglcT zHukJ^E~~8U3gf=*)*-qZpqLAR9$~!Vv$+FolR9BkJiew*G{X(TCCXXh@8J0ZQlk>Q zLSKKq&&@XwM;zB9$hbs>#lIxyF;d58H#KRCo_8M*Yk+X;vhrpLA56aBy2|EZG1*9b zX01&o|K2P{LE0z4O+1adt4S+}tMk%>`N?EjZn}GtqO=fJ4IlaKFsiGr(9AmHae!}C ziX)iAUc60cE&sw?oC#sQ)C#Kzm&XfZugcGPXQkXB7CVr|Az8mcHp`kb z0zRaCHs@G@GYr*d(}Pg9(6HNstwCUW!MB-u=W1ySG z7Xw%DQnx;+7Z1vieNC4Uoq;HdD!wX%fnIRyN?Iyw8rPR<7#AXbL`h)K&tyJN=_0|b z6FRxp7~VRVKRr0}N4Lo>gGG4pfSe0GHRR5=GP28mSY@xK?=R7Kv9|F_H^-JwNW+=z z^p0N!8+wPk*@B%Cc%uoTF;gq4-ulAVg{U?f#fk-xC5%WUrj>4)UgJ^V$)XWR zX}p?b;m`AJO(fu~)48lP*K>l|kM&Mq2*s8A#i7kFT@WJ_^Htgma8m4xJV<2t{p zfXn(_T=wVf&NEX4*ALX*g~~DvADJ-z?yvBeL%*z{g1#J@lAPzC5IpHbu+P#tWoRB^ zgb67=o8`}%(ydl<+L>;pHQxv@!O6`2QQ_30T&)XF`aW+zSJ??Q^?mtg+|Wjx$5 zXb~a=SK+~GZ1Q|o2cestu4R~=zKOWr*9SK-!mk> zpqw$qU<44zzECGhq&YTU@yjL+i&2d1UU9tqh=0Pc0Z;1*sTC^7*|I=lclOq_Yxo;m z+CBYT2n-C)hS?jipUFLB4N)d68pv`OixDY;J0UVTBvEj?v}IzRF&p*^5j1~!X@602 zk7Bl{IEY7WOX#_N2GsbVZhYvMV30_I#FC$HvS<&o(B3sAWg;G$Zhxue1x|CA{RK{Q zu)s`t9;!t232lg(ROVph(h zHEUf(bm?#AwZ^qb5L#;Y&!ro?Wy{xhT73KQ=+*jLlv8>#yc_0tJY`DO;(O$(q)H<- z5j+^Jf5c51r7}$6xg8J+V^!3=MI7MteE_02zZ>_3GH3eb+DJP018MisH7^j6A1TchL zdKlwI#)VJ})CBo*^JSl72Vp~xYjgj4akJxU4Gt=?i50YcfXb)Q`%R8U!5rhib%3hD zq%Cbi`K~O;cRCnbWn3X)X+NeRGh%QhoId!`uvX1-q>S!(bF}k&I%o?{vFoX=E!eG2 zj_7yTy0N!72H!)&=(4M|++KBkk@nw2<2L3&kB;(Mlg6HhDXkt@fTH<^_!-sID~9(a zCvM2p_!JbGIa}*eik|IZ;pA`z#IJhBNMq1lw67aTxC*K|hpou>sP{m@dIgT@wb)pIxx+3$ zd(+;gFn!ZrWmd{InMOr47~M>Nv%K6M;pGKv2iPERy*FNQ8pZo9Y>su_(!t4%-oLS$ zmgeeOsE>tf!gRZOtcoKwUg7eqWnen+FxN|9T@3#*+nqUfq5@+9(tF&LKuloV2a(Cq zqyi+vk81T&VM+eXz3ml4$PQxKGkjW~hqF=V<5Bd}6kk%rd*p5iychBU89!>dp+w%s=*zFH=3Ds` zy+QWqvOkgC;qW>@Y!sN7)Eg1tlsUlUl;{WKX0zrOz62>qF>$Cf`R2OP?{=)YSI_C` z7}6v-`3m_vDTiPiLN}4LAtPE0$!DoU`*4AtIk>GYVYcrX>wKWk5?!7>&dL*UclDk< z^$5KP(X(?ePRgE|{0eiw;0dj|PgZaakM#0@Xw^U`1PDw%O4U&L$Cw$5Sj5P(iQj5j zvsZ=(QLR^bmKs7VsyZ`NV6)ck0 zpNaq;&)~Eq9i3(iSQjuem=2!?VcW(sCf->Qq4`2nPaWt~TM_yzev>9d`EAUwwZ>$o zDEfyBxmjtm#X?h$DW(%P_+uUt7D|&1(B$uRyTC>sC&_9&wK_9QjJrQF!ECh0e(_j* zVg6oUXu~kx?ep1=fJprsD)`B+b^pDzwS?khpeac^fM=bcRFbf)-gxNE%Kw@cZi!4G z0I|9w`PRf%uzGX;)cm9TyoLZl*H>F>3%rMi#*Bz=Yyy@s>3j(y_Ox*7by%R{^$1Jo zC3}+5CUOCB;9KbAn;{gxP@X?X{yLBt6#;980E?^PN=3*`NTk6p_~j8op>Py{nL$K% zy9Lsd)4F6Qo{~@hJ2Tx}VDRgNZ`Sc7!YxgJ&UJ z$D!IZ(ptDQYPTO;VX$->osRN%Oa+%yEHT*f&4EQt0;GsRoJeXC$eTFFHMQ9vA`>GR z%t{_;P$6zdvd&e1>vAF}0uCud9PEM2c>5rt-XHU`G_}b?K+%=zVJpVabgrqPbPO^m zZqhJSr&x3;qwtO6TTw!mH>&`lLXE->hO`Pfr~u}dM$>{MPop7ZzG;J7Ebw_u!R{#F z{#A-`8l1QkrXM&t7RtA7yQkWx1EY{3T?ir&wH^g6F9G~U$GkxYP?`+-;UEYncS+m-pj-bzrQyaq8TJq#SUR+eufBCvWldKsxCw_+fJu}6|fV2HLcDumXC?93lIFXN^jtqS|lzLHpg^Zo=l5<#V={K z$DA!_(=}+IMrn`yjRjss?I=G!5icYH%ot_UEBt_7`C>y*E|SXzOkWE)Q#5Yhdm=Df zxLC)YzBM-@&yO_GR2}FYh>Hx%G4-_>w79b`bLj&Ju^+=#tY?;$0@;-qcsfM9&O@f^ z`Bj<(`|PjeR#FOb`8)!vpk4dM3}+ottE$dNNvlvE?u*t^K)hrd;-O-T-!;4JSyole2~THborkPfJqn(@l$Iy@g5F^t8~>K;3#^KXsM z&K}w0>}z@;dKCua^G%x#Q3C0%v1)ql1f8FX2efs6bwH0EVr|E3@YDHRsFOsujW%*Q za(%tEnT@?28yMdtk%3~fEqq-=#bwVsVTszky-f9|RBFwMs?y&azP;*O?FYYE>r1E2 zlc`c6k55H}w<2W43n$+fg;I*2PQWyurS7O9O(vw+9fb_~b^e#8Pv6W&5#QE`34A>> zB9+LVSDL-zq+-^Do0QEm_7DuNZS!F0udrj_b8C0+1cC6FO3oCx@ZrzeX{uOiP)RSX zl|Br-oqb7pa82QAlC>e|lE)hH0We$C&PMuluHbgfX5*t#5peR_%pgpV)a*=3hniEu zeE{uW_gMQuJw+j^j2P%CM7SL>25>**Ies{kU3oPd+5;n*Sc(_J%BkMMAemYCK&X0! z%fHA>@`;yhGa>txb#l0_fslWrF;*dFdgoRHHM*c@0jYz>{1v>Aqloehf~T1#ts0r+ z_0<=>ruVaw4lN}YOe=I6x0$9Vw=owip4#)SPY;7+9zsYxo%Vwefoma%?fFP)=j5sK zLMg|Uq^#$~*@NqlTfpg*i?+MCJoI1KMrx&nzRKO53R_0$-`v;z^|4M5 zP$8U*z z;((%x09XD%>xDv;oC-LPPhgt{)X1+@kN?;+N4ewLBXSdYRj96W98UKC+qR)UKwA8dDU@$0ML4 zB~kiQMest0iF&x=%N>;J%&yE06;Rjah=U3GnyI!ja66#F<;OayY15b z&Dnk3+uyRuMXl!;i--Fqbyee5#itEDekba7Ib1TYnaEx3-$souT&|&nod!9rl`yl4 z7gACP{Lr{s-bxuD6YWU4{;C9at7&61b0}`(mT&{u8({8E+-IJD8(9^NEQ9_Q(Bz?s zHv6=`e$Xsk*DqB<%!i6KpP1E8uk)KGUeT={Cyv_+x5}^^cF{9IV{8hoxSAfL?5?*) zFA%c&P(e$Y3bvjWY%>Y2gBB15EAa>LgY{P2(eldtKox4`ZD5NH%WRsa$zVijYgI}W zwfL#wvHqrvXJGlSaO?X6afnNcT}~+lZ~pOaRh?t_KgDhuX;*4d1{vPU_GhI0WJw$|7A%&XoDeML zoZP)N5$8+5;c8Do@gJ3u zG$Lsc)!KF>R1H+?Pl{$g?!R^IsXYm^IW@2bQ|hsHV+ao>6wvoSY|E`KzH&Mm z3gf$aE;8#gK;x@Fhb;qgRPRS}3-oM7kTtJauGxv1(H24B3!DH zos)oqVWes;_aCHc?m=SRNB(M(a78b~ZtzH;>6wHsxY1k!C4WG6rH4WDvc9kDE^?vK z(lFgdAaVr-bkZav9@IE&)wwSYfyN%LI;(LPAwL5LtTm(mI0$3zwyotp;o0iQxpV)9 zNWzKGn9|2c1kEaP+{3r;r7aOsZV%{YUfp^?40F>&xb=`2OA0V;bjI5H-5P24sE9JP z@dOu-67HhG%~z<6fi(`(N*f$6`P)VPkT%ykSUtF)y0rFKc%Bbq1(f2?09&L9^l{)6 zqs-^Hhk=rL`oN|TBAVG=s~?5DVX^PeUlHoNSGFF$MwIb^GxU+Txh$%I*aW&yRGAL7 zyfqPLoR6X)x8~X6p|QV1T9UOE1*?8az~K6>%it^4g89E!TR<0dl#LG7yF%n~eZL6B z<4f(Z-Gew>SEuw6DYOst+>unK%e(r|n6+Yh1DX9V>UR|1kIvF1S_TnW5AG3P+H|KP z?se>EH{R4>?5~_krQ(+UhRZS2IJ{z3*+q`a<49^_Ir@4YDxn+jGLv2$v-wT6`fx2f zJRU~bcHffg8&(>voVGOe8I@ItLvbxvzFH=Vs5br)zXrC?rqm2P1ZuEDn7JJnYV^C8 z3-KhdZ}kxJ@f1cxX5!BxDVwcavYu*K^{$_A7AjXW4%Y{gq?fjatCgAE;Mpdh`=s^a zcuTUkfv+xAr2b74Y^Y4vl+!M8k-n5DP9?@~v;*4ZG`rbIl#aiYnqwLs6~nN#uB20m zH>h=Tesir=b5745SKec?F692H%&vs!z!$XV5rkA~Rip}uMI)LEVHQ5S32Uy%4wD&6 zB3OE_yG^Tsj*P;fgHB**)C;Mv>#msqMDk%UJQW(nqwf5Zl(q9WP3~Blm3r-xycG4m zXI-4rTAyf|4cVRm1|R&7&??^Oo>LxuX(#W5X1;z;;DuXmPx+#2<$>}+0E|A?!Zn)N zqHT15JpXIpu=B757YqVygrsjp#>J%86|K{b%+{5}WKt;R+EOOM`6zLO4Q($;a&Ziq z+{yu|!4>E%^4vl>AV`rX2uQUYl-EY?bBykvkkAbjlG6*l_f$n@ef%w=X=Skfn?hM5 zvMl`8x%j}`2*emQDDG7+Q9BD_?KxVLT1S! zdTZ@_Grk>g*`$ETq8d2oHFb_VumToV7M+cH4*H4mkgof{{|(%Zr-U;;+^ww@W=pbwb? zu0}0E8lQN?fWHu(5R$)jt`1tyXisP_ua^i*|F%_dTn0FQtl9;A;!LPCyFs{`t3y|D zU-!d-8gn+*!>2ppYtnche|DK4chw3XzC6o`!844u9y$YQ1y9AVSawOe{oO{X_CP{s zT{nFPO`~~yfD4~cL^3Co8qv{=pd3$ghFQ9mh8`>ff$`TVwf5q*6`&%%!`ed%?BOrl zw3}>BjB&i|o=k>i&a(5v6ZvQS>(wFCe*gh(=v)M*un#l1G`iBps=ZQ0!M|uVJ9rvh zcyeoB^XQyp#PsuV+%ppRgPJ;4VvP9UG5knuDB#*2kj zpW7?6U+WGy;H}koynFGdTv{U_J2FggRK@P7BT@==1*CQci!Fch8iG&Bbsw`$#Tn!@ z<3mo}$u*Ur*u1HN_K&F@nk@&7cV$Uly>NT4zo$%Lbgv+T6lDUO^TJG%o3{u3%8JYZ zb+%BT7Vnj*P^P~eJRMr?2p6Kv$3Rsy#V6n@rUn{9DZ>jfHNgT4Z@$0_A*ah)=kW?| z{XPyYS}fMaB8<&7Z0KzFT?eNbhZ)~}kp5wIv#(J)CT#60AJ&C@#E~6%M)5X)xn?k9 z`$(1CC>-q-miv}-xe13JY>1E0*f1@hy{W%m0zc^#z2{v;L3x;`PzS-fUPRpS+Ki95YH#X4EZOGEx|DWu91OIK;)z!XL z=0l;?>Vr~3yj`!$P57S0Tv2B#6@T`l4)ET~3OEaFn39KJa1>s+>p3Fj2l8;^=x{~_ zc*sWKHBKYw6%;X4>cJ=lP}Q9WDMr05%GP5-om9Oi$X`Ai1`tx_+2?V&^DA5uj$7vM z=~h`QG}NtW>`Zx>hw6lLoIocmUii^Knq_3P&TNz+8<%4X+@r18H+&vkv2QY#UtxbL zQ!%GBKhen!r`l3Q(x`_1V(zMhS+DX)OJ(m`E0(}ywWRc7q+GqLSFz2>2~}B;f3!|5 zQmVCf5gXcLqtYD#8LnW(jm^`w-7ubUW#8H0!@4{@kru8JW_bnBbB`_9wl+?^T z6Vwh|nX8{a7Zc?!t1!IEF|Z$hK_X=1X^Uaqh z1nJz(0=ER_0Lag=%SOIk06>Twb z$+#eC{iI~AV8zg~eIw=&CCN_x1_?ZH{dx8>1xB%~=^f9!wDE56A^KPC{PMHoS;5gX zZG!k6Shkk(WMSlDVP5R0P}reEAn|6+tB;Q_BxQ8k99Z_1Q#7E>cW$cRgD(2$B}e|d zu```K%Hf#&uJQ)*E)=9&(vUI-_)$I1V_sivwmXF|m=Y!S^~*dA?6YH>I)-u)4(T#( zz&wDol>+=M?szf{Mht6yGq7@7OP*$9J>)&u28PnUB=2e%>Z0CwBht8Sx$KWO*Ylc-&W(73Lg)8{b{FGqu@+7;&qj29(9^^Tc#-xctE53I#BM?5 zAC9eRmuIq z?=T)>*1#KrQ<*+OF`@*6FA(2CuEB`9QR&=&Ol_Yd53NJ&nwE+f*s2hN*ga=HoHG;K zSa7gWKP^v|IAcD%!diA?3qN~n+J;G99kCS_0X90fvT9;Ge_&N>J{#Lu;ac4|EkA5= zQg6gJ&QfOmB!%8Tt7$z5j){tbm1Ui?3=FE5?D237U3~c7ufdRMl{dzf=O$0Q-_5g( zJPW&Br3=Wb7LTwa&ZAD)Q&n+b>!;Ntceqh!$^@neqD_PJIdvnBgK{MBl&y*B>T7Fp z5T~JGXW8Fw{U9@QG9_7Mh(xm zJz@>Swg-!}-@khMfXZla27KI~o-VX$0SWpVYB3UEL691P&&teZ!BtpOB*v_?C z#C-4k7Y)Oj)AgU6dUofZoOF_y!Nc$In7_ZHTMl4T9BymoDTJCe8O?|| z5PmUAOhl*WG>25!Uuh7)hYTk1nN!~jhDSmz=UiqNL)J`Vi9MyK|NUWzm0x2BJ*$mb zI0{QE_yT2bsPGWewLr2>zN!F@rv!CGlR5w@xq?r|PF$tZ!$+ve=dqWKkvU(SsOr8E zj|m5Vk=6s31ytW`)B{s$cLxOI6-nr@k*qTMxmX-^?GA!Ds@Yjb?$yIr1@_fycp7A! zlZO}MwKX@P;%17TDiA=c8e7=^1TP#hY#2o&{5E z^`7w{(%t(3?h(0o!zJOl^6VQLh5Gtw7gDoK#fv48X~{u+VuOIsym|okVo9Cyz@nT&g)lbJmy zC0nN&k9{$Jvy-CkhH^n`u_Eh=Pom1dLpdJkYAByfpA0@5Dz1nPJQSk()?;~hQ>Fh6 zc0A0~))lEs)w(gEvE|O30$HWLS0I8?IDNPmI@v? z%I`U1tyV=g=I&>ik_;2Vy{E@1O@p_M*KhJi@HS1ItbtzMWZ+q#*P6$<(82U*oX%DY z7jID&XPCjbO3oy!XGx;n5&YItO)TGpR+l^!yGI16j1Q#s@DZjY_-eU$jQ#?poqE+G z7W6eN9vJY~LFK{?qdVm>G(>_J|9Uf>ah+)eZS6?Z_g!)>RQT&iSnU^V=F(KLm_Ej5 z#KfN!Q_ghJQaPsj(yavJJ;u)=au?ZBaTYq2FZI_BzWaM5?`#(F{v}~THx5iMPGZl^ z;wDZt+PgdAc*UszR)$2w^by)+-e!eXH3#mS>iSn3M;(LNtF9@El zgg%0BGzW1G+v>Jx-eEnrpaA3RZ~oa+ajrw3Vl;oMef;` zoeP5sh@%`WWa;ux(W>0&4o}Q}rAK|}4VLx_%`aE(pr1=|9VWD4RbLSGmQt=-kmD3k zJ2+%D>qTz)L%?XGSTvUs~YkR7P7#!0}iYUs;YcF z4$+RA$~F#n8W1d_x)s}%agz-Go`;qUK8gB%gzC*oo@qa|Ui~ug-(Q2{(ZLenfA0Z{ zH7fp*`Q-#9m<+~h(n|2J;i_6}R(d2a#8C~-*ZyQ9rYK-g@D$1j#0OV-%jkVQyrF#x zThSsXDzW<~uc8kj!0jw^1sqzZ7E$>m0J?GuTH9lgxJbK9HiTWA2-7ywYOU8S0=^W4 z3>5&;ix>(tW%^gr3CC1e(x}l-X3wLT_beCIUHl5e%?mE3}{ff1C*PbUsSp$1HtuF zN12N#V_~S*de*ao4-A;OjIA$LQs08F|BKyOPiEb{kmUu|K8VBU^RzuqkUKTD3{=175}Dl8dK8k z8D3=_ilAltt6jC3?`V{bc8Rp|yXj?R&Povd}#SuPVjIFtT$f*A~R>GJ|#-&-M-ZWe%;vn~Kq z+juOGX?6_H?gVyWRax2bx8-VT6uII33?|e7X%O^s=oKBw@z7*`v*gNIcz3UIjvy!D z$GP4z4@e!vC59ix>s6cBkj=V&*{t>%l{e1q`ld0WX>6z9WnYopWg|i34)!XHJD_Uu zF1#9b{|%mh3e)iQD!1fS{D(F@E&Jyd9@rOpajqGxOPwmILXt+bp*3N#OX$qRtj*+* zqh+tdtDAfTM=@c3%59s-%i>q^{mH#N7foG^ zXKzs0HH8bZ+@VY@q~GbPSH$@r(<+r6j$JN?3{y!lLpF%3y|zL=Uf5BAp9AeQIP7?d zt2QTFU!sSjY(Ii1@t(4D3~s#AaA_E8)w=Vh%8CfjI#RF`5Uy47_>SYBlJOt({SWV~ zxk26uq!(SeoKurDev@EU?V_l#{wkgc#?!5)0XhQiv~ba6_=+Ty7w6N1^CaDElKhA9 zwl8YSglo;A* zKAv2p;rHtAwql*TBr8bv3Hnk{dHysyjOYs9(6xs2ZZt@3;f#*JFeSQP)uPv%eZ+P?fiAIia2toFuD*Q;8m zXP3-uK5|Hw>hP>h8pY8y1T#01w5lz>x3`2XzV*Ab<4LjQwIAP%7!{v2{+$pi@3-yJ zm4KZeH+G)L9rWEpMMXN8eq0gxZE$oe#2Wgo0%*-rTV4iO;uM0*W|Y-=R{O(yQv;3K zgh1zjL!mrub3~!jvadzg5$AJ=Sns31cFL|_9!)(ZSVAK#pxUopCW6tNEe;LIrb6zv zYNrYaP(QM8v_yXE_50P-j5E@POMmc5TnOAb{cn;`xks%1@e(c4_IjL98^E!6b9~3T z-mdu6{T}<|?S9R6fp*%2qF?2iUuU{*^>3%1uIuaCgK@A?LF?`*);r7ahU~U*Pv;_k z7mvr##rd{V+IybU-*<)RNKQ0`_N{9K@85qg}l0IO(z)3~?K9=V_~i?quB zRK}fqmSx()H)9qoD}nrE#ubg&&;>B^sys%Sv5m_agi13OKN8lzv+?@8tZf*V3r-iR zJ?2RbZ}iF7+Dq+Q!I5}tl{0=d^~ms*_+5W=CN0|PtI@mp>(6Fo(4Q5vVuN`$c%QWW zqj;;)yVs}4fLnaW$6c4hUwMzf(q84_v$O}kDH-@*o;Z-Ud7tGaquXZ%g}?a6%g}xS zhu8fK7t)RO(Ar|z!Zq((#{A!!N4*+1GxM@_Az`wzO2aGQCirgS)(zkUP|2xLZ{I9wCiI3J-;ZzGJ0mP-&z)etvzJWS^=)IZqStmoSl{u3|_ZfBlb z096&h`(E?!edo;K(JDJb=qjCRl2MZLOz-%-&(0wRe7L;feT&lAOAh2UQKhJ+Cp*DKh^zzZh-aA#th>e81`&%)s@EE`oSfw z|D<2s7@yCu%EIRhQ}@`U1@Wu^Z(VJ0m5U><*5@mK2495{{a=I!w?D7ae`6`S$t-JA z4YM|2ECsd$oLtaqM`7WKG&CHW`0Q(wCI`j^1@Ckw&ox;Zv_3i)H(601mXr05k#AkQ z&VVg!Vj_g0WWfqErmRq~CvWjm9_a;G=vv#a=8K;)gt~~SOzUxl!)5uQD}&T?1pzt1 z1@w2y-LT)s8M7)FT`{NB_;+LZ=99F=4!vzE)5_nsmVFL zTvp3nFKiP0psN}wI@v-d{C*~v_cAH>ska*pxUc^bb=fR4ihvIlEPNj^ri{*r)XFe_ z5K|C1S8RZocVHG(LnMCAgm{SJP1~G25!pI*ZY1=}47Zg;$^#BBWGhW zx*S8?Z9jnC|E(dz7gE>y!q=0Fh+fKVcV3L|kK7wso2MT+;^?rSaHyGeN#1cj3y}!C3ZT4iB`bp0`-jIjfw;8pVh(Gp8tH*v%G|9pq%YIot zU3qx=|1pR6oTLsP8#)~8?N8<0@HD94ed-p(d4alxf*;EM!~fGQh>Wg%0&qp72e5(iXX-97n z@7L;kV(00U1RcKoIrNE}a@KuaTtQkBuw5uyK)gTPi41%VW|dPNv~d%Zdovkt@4SfS zyMu^XSZMK(g!9LmTTq=Rlyl9^wGf9E>9)kn^@1#DEJ2jLNub})FUKuQmpXLsj5xWu zm~TV5ZPQ}2J=9;J`7!D3RweEZ!gD)l7AzgtC3~!nc78AaRzJPO!@Bx%C0EMTj0#fj zd1-qF!Y3xG^6{7Xk5)EAefiOnj@~css-eJj@o^v;62v5HE^j-^o>yiSnoRfWdm(Ze!Fi%BCG>y z{N$(uMc-S1y-B9P?p1FzYJ03F`8BuZyfF!kazxHqzev%ka{Cm}u5xHIQxNT@4Y6N3 zq6B0Bd<03YIP;dwsUF+fc8HM2o`GL$iqp_7WTQs#6(WUbj6Ffsfa)6b<+VE4xjpl> z>F^U|=WS>6FbHU8Kjk8sgXsKTI+zfadwRd4OR*IuiZvoVn@PPSU1aDXk1RRSI_Cot!Q{Bs0=k_QZFR1_jQ$w{_H5JfqrOesx+rR94FG&$}oS`Qx8 zc$Vqq3$AhUtNl_;&8)EfhJzGse|Irb$yhc}6S zH9OMfxSt(C+Y}ii!Da$x6NlqFGh`pqd~j1A1eW3sN=ucCK{Tz=7@Qvo0}KP+UgS;D z|LAzZ_1=Jsim?ucgp16i5iec4!rVc~_WyXL@Wsu?n)`U<3q}W`<19L>&^?#YUfzSbig8 z^$EpLrOp{DtdhSN&6hs%qj)CJaL+E(pWq->ulH2r%EEuz>*s7zdiOYoXS` z$_XNu@s_F5j;uJ^F>QIku2Lr8;NL&#VXy-yAhwggJGoMP%6Y&WdC6Fds6pyOn zflE{St9C=pW8`GXtH}kd8md!u6*^I+71o5T(EQ>+H;;y=;so4*WmHBAU{lddy(Y?q zjnbf@3xh5rvuz^wF}N)2JBIOLXhDwzX|WcWqf%zNm_C2v%Ll6 z0K$a@6JlILt?0zM5+G^;*-w!xzzk zfdy=Qwu%$)91OyJboq45n9VVn5)6iW>|A2I#2)-{YS6K<1Tjfjw_*jD>?Hf%#yCXB zST#J^y_X%T&Q?segAj5U{7{N3DV^!z1i?CNm)Q5lnj;4OThM-38DlhZ#@IqmQHP?h z6ndyH0!Rb{#wG7~TQw8gdCH7Am?h%~jO-}EqIn;fa1Q09k-p0D)VC(x)0~yrF50fU zc)w9b7fZlk!x4bT9(nS6QUN!<9b%;kgO{SKJSAw9NiEEfzKrX7q&#&|7qk;TeigRQ zTDmfqQ#O!IG8g&UIwiK#^zlGMP{bdH=fuK(~qL_ZmwMhLb}@1H-yCndhscpoH=JxDnO zfG|v4DY@^sp>2wa&MLQmSDv!MYETHKvyrc%tdyN>&;1ej=%bj&1(SNqsP zFCm>N@)pq1IG7`fWY4W@wcaq@1JP`9rh>g?;Z#z59vF92(SS3p{_jS#`bG45OrU5|#fR>)i%Kn=!yDrVG?>*q28B)L zlb8ra>R;oAZWf~6QR8k@=hRxrSyUJI%Ow^3Qzv@#YtI|$rE!k^wHU62>YJ|3oXB?V z^36J1zTv<1D81jrGOCoxeMEF<$;40JtW`AuG(TMQFa5fYAgj=T(1vZMA~7#@fta&l zBZHOSU9m;wu7uP4KWE@&J2rSnCl?WM^M{;Xy=@pi(bLBTxD&BD9~(dsdE$cTuN6~r zV)u7a*j}7{E=*mWeWDgFD|ZMcfpl^wi%N^5Fqx%phy*jqlq8 zNwIiadE%{X<<+Cz6?5Y4dEDVNrTofQF%}cc91REwPNGLeo{8bf*Xhk;r~&S_QLKoz zQR3wt(b$&-C7q&=(V`adb>_Lvzwy1>X9h0(xtFzMUjvh7lF)skR|pKIwJ#BVU%NNY zDDXkl02&Wl19wC7x8VZ%`boZvv(Z6x8t04V`DM{h)GBeq?ysNRt0h;ftv@L?-ClZ= zOhyi6VMKw_HNC+K1;bs)Md9(J!gqs}dRJxd&$2w0zO1#Gn z&a!6JD`j{u#pW+V)g3ZUs>S4$Y#XJv=FejHjV)Rt`X=!YE4;NITa?=cl{xLEX^_uu z&p9RFtHL-?tVw@^3Rr|fR#Qx79QfX6;A&JhpF37B3X|IRodra~i3A@Sw35ShE)T_AyB z0`#R}`!IAOmHc3bX;k;tY!4JIwD6}v8->pOzSG0V;)ieieDoPi0QrXL-ho91#u(3? zoT)?i1DMI*6HB~pc78i${>+kp_0*Q{iUPqTLDeM6*Gy|DllYGscCUeXF<4}z5C zfdvf4i0hcm*f#Ds0Z7|Xxit>JrMX_V=$bo|zTwelCPt${iD4)7I;`W7=_iB0f^G9R zK%mY~?$Ag`vD?$}oj+VhXxEt{+|wne@HG9!>56h{9txpLV=~6gnU`o_P^g)YngBs8!`q$n(X?~(SC6YBFI8iu;g8LH z%i%e)^Y3><3;*cFH|llK>S9XBCf%x=?2cFU-;M!Rg6N>HE-%-WSGcZ0mD-Ym_UObe zDXxuCy-M5K6L8+cehhyEz9C*(&)SC|CR|#GhQm2Z)u3obT^&~{DBI{0U(yG2L$8gN zfXs-ax6pzc%yWisOBtcM^Tv^0u&;sIu!F*$q?3QjXG5tz?h;rFD!RU4+Y3CUL(arL z;Rr!=g3e634n#WZ#~EdeJrw#n=Au#|){?g0^IK~oT#Y2lX8ODNE0S1zGOL7`Ry)r⋙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

c)Q0E2(~|F3>IbIB)nSH~%4 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 Date: Fri, 21 Aug 2026 09:07:34 -0400 Subject: [PATCH 4/5] fix update_libraries.sh --- external/googleapis/update_libraries.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/googleapis/update_libraries.sh b/external/googleapis/update_libraries.sh index 2ad2874b29d2a..e6d3414698d11 100755 --- a/external/googleapis/update_libraries.sh +++ b/external/googleapis/update_libraries.sh @@ -161,7 +161,7 @@ declare -A -r LIBRARIES=( )" ["filestore"]="@googleapis//google/cloud/filestore/v1:filestore_cc_grpc" ["financialservices"]="@googleapis//google/cloud/financialservices/v1:financialservices_cc_grpc" - ["ftp"]="@googleapis//google/cloud/ftp/v1:ftp_cc_grpc" + ["ftp"]="@googleapis//google/cloud/ftp/v1:ftp_cc_proto" ["functions"]="$( printf ",%s" \ "@googleapis//google/cloud/functions/v1:functions_cc_grpc" \ From 07b34e2b83f6e735988145bb74affc19336e6f1c Mon Sep 17 00:00:00 2001 From: Scott Hart Date: Fri, 21 Aug 2026 09:16:59 -0400 Subject: [PATCH 5/5] add proto deps and list --- external/googleapis/protodeps/ftp.deps | 9 +++++++++ external/googleapis/protolists/ftp.list | 1 + 2 files changed, 10 insertions(+) create mode 100644 external/googleapis/protodeps/ftp.deps create mode 100644 external/googleapis/protolists/ftp.list diff --git a/external/googleapis/protodeps/ftp.deps b/external/googleapis/protodeps/ftp.deps new file mode 100644 index 0000000000000..ce4eebcf1a3ab --- /dev/null +++ b/external/googleapis/protodeps/ftp.deps @@ -0,0 +1,9 @@ +@googleapis//google/api:annotations_proto +@googleapis//google/api:client_proto +@googleapis//google/api:field_behavior_proto +@googleapis//google/api:field_info_proto +@googleapis//google/api:http_proto +@googleapis//google/api:launch_stage_proto +@googleapis//google/api:resource_proto +@googleapis//google/longrunning:operations_proto +@googleapis//google/rpc:status_proto diff --git a/external/googleapis/protolists/ftp.list b/external/googleapis/protolists/ftp.list new file mode 100644 index 0000000000000..d8fe9a46521a4 --- /dev/null +++ b/external/googleapis/protolists/ftp.list @@ -0,0 +1 @@ +@googleapis//google/cloud/ftp/v1:service.proto